<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[Freeswitch-trunk][17026] </title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<div id="header">FreeSWITCH Subversion</div>
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://fisheye.freeswitch.org/changelog/FreeSWITCH?cs=17026">17026</a></dd>
<dt>Author</dt> <dd>brian</dd>
<dt>Date</dt> <dd>2010-03-17 11:16:27 -0500 (Wed, 17 Mar 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre> bring the code up to the release tarball</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#freeswitchtrunklibssilkMakefile">freeswitch/trunk/libs/silk/Makefile</a></li>
<li><a href="#freeswitchtrunklibssilkinterfaceSKP_Silk_SDK_APIh">freeswitch/trunk/libs/silk/interface/SKP_Silk_SDK_API.h</a></li>
<li><a href="#freeswitchtrunklibssilkinterfaceSKP_Silk_controlh">freeswitch/trunk/libs/silk/interface/SKP_Silk_control.h</a></li>
<li><a href="#freeswitchtrunklibssilkinterfaceSKP_Silk_errorsh">freeswitch/trunk/libs/silk/interface/SKP_Silk_errors.h</a></li>
<li><a href="#freeswitchtrunklibssilkinterfaceSKP_Silk_typedefh">freeswitch/trunk/libs/silk/interface/SKP_Silk_typedef.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_A2NLSFc">freeswitch/trunk/libs/silk/src/SKP_Silk_A2NLSF.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_CNGc">freeswitch/trunk/libs/silk/src/SKP_Silk_CNG.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_HP_variable_cutoff_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_Inlinesh">freeswitch/trunk/libs/silk/src/SKP_Silk_Inlines.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LBRR_resetc">freeswitch/trunk/libs/silk/src/SKP_Silk_LBRR_reset.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LPC_inv_pred_gainc">freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LPC_stabilizec">freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_stabilize.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LPC_synthesis_filterc">freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LPC_synthesis_order16c">freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LP_variable_cutoffc">freeswitch/trunk/libs/silk/src/SKP_Silk_LP_variable_cutoff.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LSF_cos_tablec">freeswitch/trunk/libs/silk/src/SKP_Silk_LSF_cos_table.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LTP_analysis_filter_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_LTP_scale_ctrl_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_MAc">freeswitch/trunk/libs/silk/src/SKP_Silk_MA.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF2Ac">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF2A_stablec">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A_stable.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_MSVQ_decodec">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_MSVQ_encode_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_sum_error_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_weights_laroiac">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_stabilizec">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_stabilize.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NSQc">freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NSQ_del_decc">freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ_del_dec.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_PLCc">freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_PLCh">freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_SigProc_FIXh">freeswitch/trunk/libs/silk/src/SKP_Silk_SigProc_FIX.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_VADc">freeswitch/trunk/libs/silk/src/SKP_Silk_VAD.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_VQ_nearest_neighbor_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_allpass_intc">freeswitch/trunk/libs/silk/src/SKP_Silk_allpass_int.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_ana_filt_bank_1c">freeswitch/trunk/libs/silk/src/SKP_Silk_ana_filt_bank_1.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_apply_sine_windowc">freeswitch/trunk/libs/silk/src/SKP_Silk_apply_sine_window.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_array_maxabsc">freeswitch/trunk/libs/silk/src/SKP_Silk_array_maxabs.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_autocorrc">freeswitch/trunk/libs/silk/src/SKP_Silk_autocorr.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_biquadc">freeswitch/trunk/libs/silk/src/SKP_Silk_biquad.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_biquad_altc">freeswitch/trunk/libs/silk/src/SKP_Silk_biquad_alt.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_burg_modifiedc">freeswitch/trunk/libs/silk/src/SKP_Silk_burg_modified.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_bwexpanderc">freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_bwexpander_32c">freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander_32.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_code_signsc">freeswitch/trunk/libs/silk/src/SKP_Silk_code_signs.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_common_pitch_est_definesh">freeswitch/trunk/libs/silk/src/SKP_Silk_common_pitch_est_defines.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_control_codec_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_control_codec_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_corrMatrix_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_corrMatrix_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_create_init_destroyc">freeswitch/trunk/libs/silk/src/SKP_Silk_create_init_destroy.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_dec_APIc">freeswitch/trunk/libs/silk/src/SKP_Silk_dec_API.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_corec">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_core.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_framec">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_frame.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_indices_v4c">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_indices_v4.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_parametersc">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_parameters_v4c">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters_v4.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decode_pulsesc">freeswitch/trunk/libs/silk/src/SKP_Silk_decode_pulses.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_decoder_set_fsc">freeswitch/trunk/libs/silk/src/SKP_Silk_decoder_set_fs.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_defineh">freeswitch/trunk/libs/silk/src/SKP_Silk_define.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_define_FIXh">freeswitch/trunk/libs/silk/src/SKP_Silk_define_FIX.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_detect_SWB_inputc">freeswitch/trunk/libs/silk/src/SKP_Silk_detect_SWB_input.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_enc_APIc">freeswitch/trunk/libs/silk/src/SKP_Silk_enc_API.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_encode_frame_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_encode_frame_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_encode_parametersc">freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_encode_parameters_v4c">freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters_v4.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_encode_pulsesc">freeswitch/trunk/libs/silk/src/SKP_Silk_encode_pulses.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_find_LPC_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_find_LPC_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_find_LTP_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_find_LTP_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_find_pitch_lags_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_find_pred_coefs_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_gain_quantc">freeswitch/trunk/libs/silk/src/SKP_Silk_gain_quant.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_init_encoder_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_init_encoder_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_inner_prod_alignedc">freeswitch/trunk/libs/silk/src/SKP_Silk_inner_prod_aligned.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_interpolatec">freeswitch/trunk/libs/silk/src/SKP_Silk_interpolate.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_k2ac">freeswitch/trunk/libs/silk/src/SKP_Silk_k2a.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_k2a_Q16c">freeswitch/trunk/libs/silk/src/SKP_Silk_k2a_Q16.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_lin2logc">freeswitch/trunk/libs/silk/src/SKP_Silk_lin2log.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_log2linc">freeswitch/trunk/libs/silk/src/SKP_Silk_log2lin.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_lowpass_intc">freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_int.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_lowpass_shortc">freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_short.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_macrosh">freeswitch/trunk/libs/silk/src/SKP_Silk_macros.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_mainh">freeswitch/trunk/libs/silk/src/SKP_Silk_main.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_main_FIXh">freeswitch/trunk/libs/silk/src/SKP_Silk_main_FIX.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_noise_shape_analysis_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_perceptual_parameters_FIXh">freeswitch/trunk/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_pitch_analysis_corec">freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_analysis_core.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_pitch_est_definesh">freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_defines.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_pitch_est_tablesc">freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_tables.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_prefilter_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_prefilter_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_process_NLSFs_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_process_gains_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_process_gains_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_pulses_to_bytesc">freeswitch/trunk/libs/silk/src/SKP_Silk_pulses_to_bytes.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_quant_LTP_gains_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_range_coderc">freeswitch/trunk/libs/silk/src/SKP_Silk_range_coder.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_regularize_correlations_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_1_2c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_1_2_coarsec">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarse.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_1_2_coarsestc">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_1_3c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_3.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_2_1_coarsec">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_1_coarse.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_2_3c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_coarsec">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarse.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_coarsestc">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_romc">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_rom.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_3_1c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_1.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_3_2c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_3_2_romc">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2_rom.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_3_4c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_4.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_4_3c">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_4_3.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_resample_romh">freeswitch/trunk/libs/silk/src/SKP_Silk_resample_rom.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_residual_energy16_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy16_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_residual_energy_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_scale_copy_vector16c">freeswitch/trunk/libs/silk/src/SKP_Silk_scale_copy_vector16.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_scale_vectorc">freeswitch/trunk/libs/silk/src/SKP_Silk_scale_vector.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_schurc">freeswitch/trunk/libs/silk/src/SKP_Silk_schur.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_schur64c">freeswitch/trunk/libs/silk/src/SKP_Silk_schur64.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_shell_coderc">freeswitch/trunk/libs/silk/src/SKP_Silk_shell_coder.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_sigm_Q15c">freeswitch/trunk/libs/silk/src/SKP_Silk_sigm_Q15.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_solve_LS_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_solve_LS_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_sortc">freeswitch/trunk/libs/silk/src/SKP_Silk_sort.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_structsh">freeswitch/trunk/libs/silk/src/SKP_Silk_structs.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_structs_FIXh">freeswitch/trunk/libs/silk/src/SKP_Silk_structs_FIX.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_sum_sqr_shiftc">freeswitch/trunk/libs/silk/src/SKP_Silk_sum_sqr_shift.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tablesh">freeswitch/trunk/libs/silk/src/SKP_Silk_tables.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_10c">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_10h">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_16c">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_16h">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_10c">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_10h">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_16c">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_16h">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_gainc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_gain.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_otherc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_other.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_pitch_lagc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pitch_lag.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_pulses_per_blockc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pulses_per_block.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_signc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_sign.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_type_offsetc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_type_offset.c</a></li>
<li><a href="#freeswitchtrunklibssilktestDecoderc">freeswitch/trunk/libs/silk/test/Decoder.c</a></li>
<li><a href="#freeswitchtrunklibssilktestEncoderc">freeswitch/trunk/libs/silk/test/Encoder.c</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#freeswitchtrunklibssilkSilk_SDKsln">freeswitch/trunk/libs/silk/Silk_SDK.sln</a></li>
<li>freeswitch/trunk/libs/silk/doc/</li>
<li><a href="#freeswitchtrunklibssilkdocSILKDataSheetpdf">freeswitch/trunk/libs/silk/doc/SILKDataSheet.pdf</a></li>
<li><a href="#freeswitchtrunklibssilkdocSILK_RTP_PayloadFormatpdf">freeswitch/trunk/libs/silk/doc/SILK_RTP_PayloadFormat.pdf</a></li>
<li><a href="#freeswitchtrunklibssilkdocSILK_SDK_APIpdf">freeswitch/trunk/libs/silk/doc/SILK_SDK_API.pdf</a></li>
<li><a href="#freeswitchtrunklibssilkreadmetxt">freeswitch/trunk/libs/silk/readme.txt</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_rate_distortion_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_LTPc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_LTP.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSilk_FIXvcproj">freeswitch/trunk/libs/silk/src/Silk_FIX.vcproj</a></li>
<li><a href="#freeswitchtrunklibssilktestDec_SDKvcproj">freeswitch/trunk/libs/silk/test/Dec_SDK.vcproj</a></li>
<li><a href="#freeswitchtrunklibssilktestEnc_SDKvcproj">freeswitch/trunk/libs/silk/test/Enc_SDK.vcproj</a></li>
<li><a href="#freeswitchtrunklibssilktestSignalComparevcproj">freeswitch/trunk/libs/silk/test/SignalCompare.vcproj</a></li>
<li><a href="#freeswitchtrunklibssilktestsignalComparec">freeswitch/trunk/libs/silk/test/signalCompare.c</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_nearest_neighbor_FIXc">freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_nearest_neighbor_FIX.c</a></li>
<li><a href="#freeswitchtrunklibssilksrcSKP_Silk_tables_ltpc">freeswitch/trunk/libs/silk/src/SKP_Silk_tables_ltp.c</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="freeswitchtrunklibssilkMakefile"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/Makefile (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/Makefile        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/Makefile        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,108 +1,98 @@
</span><del>-#
-# Makefile for Silk SDK
-#
-# Copyright (c) 2009, Skype Limited
-# All rights reserved.
-#
-
-#Platform detection and settings
-
-BUILD_OS := $(shell uname | sed -e 's/^.*Darwin.*/MacOS-X/ ; s/^.*CYGWIN.*/Windows/')
-
-BUILD_ARCHITECTURE := $(shell uname -m | sed -e 's/i686/i386/')
-
-EXESUFFIX =
-LIBPREFIX = lib
-LIBSUFFIX = .a
-OBJSUFFIX = .o
-
-CC     = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX)
-CXX    = $(TOOLCHAIN_PREFIX)g++$(TOOLCHAIN_SUFFIX)
-AR     = $(TOOLCHAIN_PREFIX)ar
-RANLIB = $(TOOLCHAIN_PREFIX)ranlib
-CP     = $(TOOLCHAIN_PREFIX)cp
-
-cppflags-from-defines   = $(addprefix -D,$(1))
-cppflags-from-includes  = $(addprefix -I,$(1))
-ldflags-from-ldlibdirs  = $(addprefix -L,$(1))
-ldlibs-from-libs                = $(addprefix -l,$(1))
-
-CFLAGS  += -Wall -enable-threads -O3 -fPIC
-
-CFLAGS  += $(call cppflags-from-defines,$(CDEFINES))
-CFLAGS  += $(call cppflags-from-includes,$(CINCLUDES))
-LDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS))
-LDLIBS  += $(call ldlibs-from-libs,$(LIBS))
-
-COMPILE.c.cmdline   = $(CC) -c $(CFLAGS) -o $@ $&lt;
-COMPILE.cpp.cmdline = $(CXX) -c $(CFLAGS) -o $@ $&lt;
-LINK.o              = $(CXX) $(LDPREFLAGS) $(LDFLAGS)
-LINK.o.cmdline      = $(LINK.o) $^ $(LDLIBS) -o $@$(EXESUFFIX)
-
-
-
-
-
-ARCHIVE.cmdline     = $(AR) $(ARFLAGS) $@ $^ &amp;&amp; $(RANLIB) $@
-
-%$(OBJSUFFIX):%.c
-        $(COMPILE.c.cmdline)
-
-%$(OBJSUFFIX):%.cpp
-        $(COMPILE.cpp.cmdline)
-
-# Directives
-
-CINCLUDES += interface src test
-
-# VPATH e.g. VPATH = src:../headers
-VPATH = ./ \
-        interface \
-        src \
-        test
-
-# Variable definitions
-LIB_NAME = SKP_SILK_SDK
-TARGET = $(LIBPREFIX)$(LIB_NAME)$(LIBSUFFIX)
-
-SRCS_C = $(wildcard src/*.c)
-
-OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))
-
-ENCODER_SRCS_C = test/Encoder.c
-ENCODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(ENCODER_SRCS_C))
-
-DECODER_SRCS_C = test/Decoder.c
-DECODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(DECODER_SRCS_C))
-
-SIGNALCMP_SRCS_C = test/signalCompare.c
-SIGNALCMP_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SIGNALCMP_SRCS_C))
-
-LIBS = \
-        $(LIB_NAME)
-
-LDLIBDIRS = ./
-
-# Rules
-default: all
-
-all: $(TARGET) encoder decoder #signalcompare
-
-lib: $(TARGET)
-
-$(TARGET): $(OBJS)
-        $(ARCHIVE.cmdline)
-
-encoder$(EXESUFFIX): $(ENCODER_OBJS)
-        $(LINK.o.cmdline)
-
-decoder$(EXESUFFIX): $(DECODER_OBJS)
-        $(LINK.o.cmdline)
-
-signalcompare$(EXESUFFIX): $(SIGNALCMP_OBJS)
-        $(LINK.o.cmdline)
-
-clean:
-        $(RM) $(TARGET)* $(OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) \
-                $(SIGNALCMP_OBJS) $(TEST_OBJS) \
-                encoder$(EXESUFFIX) decoder$(EXESUFFIX) signalcompare$(EXESUFFIX)
</del><ins>+#                                        
+# Makefile for Silk SDK                        
+#
+# Copyright (c) 2010, Skype Limited
+# All rights reserved.
+#
+
+#Platform detection and settings
+
+BUILD_OS := $(shell uname | sed -e 's/^.*Darwin.*/MacOS-X/ ; s/^.*CYGWIN.*/Windows/')
+
+BUILD_ARCHITECTURE := $(shell uname -m | sed -e 's/i686/i386/')
+
+EXESUFFIX = 
+LIBPREFIX = lib
+LIBSUFFIX = .a
+OBJSUFFIX = .o
+
+CC     = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX)
+AR     = $(TOOLCHAIN_PREFIX)ar
+RANLIB = $(TOOLCHAIN_PREFIX)ranlib
+CP     = $(TOOLCHAIN_PREFIX)cp
+
+cflags-from-defines    = $(addprefix -D,$(1))
+cflags-from-includes   = $(addprefix -I,$(1))
+ldflags-from-ldlibdirs = $(addprefix -L,$(1))
+ldlibs-from-libs       = $(addprefix -l,$(1))
+
+CFLAGS        += -Wall -enable-threads -O3
+
+CFLAGS  += $(call cflags-from-defines,$(CDEFINES))
+CFLAGS  += $(call cflags-from-includes,$(CINCLUDES))
+LDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS))
+LDLIBS  += $(call ldlibs-from-libs,$(LIBS))
+
+COMPILE.c.cmdline   = $(CC) -c $(CFLAGS) -o $@ $&lt;
+LINK.o.cmdline      = $(LINK.o) -lm $^ $(LDLIBS) -o $@$(EXESUFFIX) 
+ARCHIVE.cmdline     = $(AR) $(ARFLAGS) $@ $^ &amp;&amp; $(RANLIB) $@
+
+%$(OBJSUFFIX):%.c
+        $(COMPILE.c.cmdline)
+
+# Directives
+
+CINCLUDES += interface src test
+
+# VPATH e.g. VPATH = src:../headers
+VPATH = ./ \
+        interface \
+        src \
+        test 
+
+# Variable definitions
+LIB_NAME = SKP_SILK_SDK
+TARGET = $(LIBPREFIX)$(LIB_NAME)$(LIBSUFFIX)
+
+SRCS_C = $(wildcard src/*.c)
+
+OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))
+
+ENCODER_SRCS_C = test/Encoder.c
+ENCODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(ENCODER_SRCS_C))
+
+DECODER_SRCS_C = test/Decoder.c
+DECODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(DECODER_SRCS_C))
+
+SIGNALCMP_SRCS_C = test/signalCompare.c
+SIGNALCMP_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SIGNALCMP_SRCS_C))
+
+LIBS = \
+        $(LIB_NAME)
+
+LDLIBDIRS = ./
+
+# Rules
+default: all
+
+all: $(TARGET) encoder decoder signalcompare
+
+lib: $(TARGET)
+
+$(TARGET): $(OBJS)
+        $(ARCHIVE.cmdline)
+
+encoder$(EXESUFFIX): $(ENCODER_OBJS)        
+        $(LINK.o.cmdline)
+
+decoder$(EXESUFFIX): $(DECODER_OBJS)        
+        $(LINK.o.cmdline)
+
+signalcompare$(EXESUFFIX): $(SIGNALCMP_OBJS)        
+        $(LINK.o.cmdline)
+
+clean:
+        $(RM) $(TARGET)* $(OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) \
+                  $(SIGNALCMP_OBJS) $(TEST_OBJS) \
+                  encoder$(EXESUFFIX) decoder$(EXESUFFIX) signalcompare$(EXESUFFIX)
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkSilk_SDKsln"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/Silk_SDK.sln (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/Silk_SDK.sln                                (rev 0)
+++ freeswitch/trunk/libs/silk/Silk_SDK.sln        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project(&quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&quot;) = &quot;Silk_FIX&quot;, &quot;src\Silk_FIX.vcproj&quot;, &quot;{56B91D01-9150-4BBF-AFA1-5B68AB991B76}&quot;
+EndProject
+Project(&quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&quot;) = &quot;Dec_SDK&quot;, &quot;test\Dec_SDK.vcproj&quot;, &quot;{82685D7F-0589-42BD-877C-31A952D53A8E}&quot;
+        ProjectSection(ProjectDependencies) = postProject
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}
+        EndProjectSection
+EndProject
+Project(&quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&quot;) = &quot;SignalCompare&quot;, &quot;test\SignalCompare.vcproj&quot;, &quot;{7FE8F544-9175-40C3-A187-7F15CE9A75D8}&quot;
+EndProject
+Project(&quot;{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}&quot;) = &quot;Enc_SDK&quot;, &quot;test\Enc_SDK.vcproj&quot;, &quot;{6D97A8EF-5724-4D85-8BF4-C583714BBA78}&quot;
+        ProjectSection(ProjectDependencies) = postProject
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}
+        EndProjectSection
+EndProject
+Global
+        GlobalSection(SolutionConfigurationPlatforms) = preSolution
+                Debug|Win32 = Debug|Win32
+                Release|Win32 = Release|Win32
+        EndGlobalSection
+        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Debug|Win32.ActiveCfg = Debug|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Debug|Win32.Build.0 = Debug|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Release|Win32.ActiveCfg = Release|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Release|Win32.Build.0 = Release|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Debug|Win32.ActiveCfg = Debug|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Debug|Win32.Build.0 = Debug|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Release|Win32.ActiveCfg = Release|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Release|Win32.Build.0 = Release|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Debug|Win32.ActiveCfg = Debug|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Debug|Win32.Build.0 = Debug|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Release|Win32.ActiveCfg = Release|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Release|Win32.Build.0 = Release|Win32
+        EndGlobalSection
+        GlobalSection(SolutionProperties) = preSolution
+                HideSolutionNode = FALSE
+        EndGlobalSection
+EndGlobal
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkdocSILKDataSheetpdf"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/doc/SILKDataSheet.pdf (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/doc/SILKDataSheet.pdf                                (rev 0)
+++ freeswitch/trunk/libs/silk/doc/SILKDataSheet.pdf        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,4433 @@
</span><ins>+%PDF-1.4
+%\xB5\xED\xAE\xFB
+3 0 obj
+&lt;&lt; /Length 4 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 2 0 R
+&gt;&gt;
+stream
+x\x9C\xED]\xDBn4\xB9q\xBE律\xD8\xD9\xE6\x99 _        \x90
+ȅ\xE1 \xA9%90\xF4;\xB1\xD7@\xF2\xF8\xA9\xAF$\xA7g\xB43\x9B\x9E\xBD\xB3
+\xADT5\xDDUd\xB1\xCE$\xE7\xFF벞\xEB\x9A\xF7'\xFA\xA3E\xE7*\xFD\xE1\(&gt;\x9D\xFE\xF6\xA7\xD3\xF7/\xEB\xE9O?-)\xA5sM\xFE\xE4
+}\xCA\xE9\xDB)\xE5x\x8E%t\xCCg\xC7\xF8u={\xFA\x9Dj=\xB7ZO\xDE\xC7s\xA9\xED\xB4d\xD7Ύ\xC8b;\xE5\xD8\xCE&gt;\xFB\x8E\xC9%\xD0o\xD7IlL6&quot;R\xFD9\xAE~\xE2k\xBF\xA6\xF3\xEA\xCB)\xA7x^]&gt;\xF9\xCEѝ:W\x89D\xAA\xF1\xECC4\x8C\xCD\xCD\xDE\xDF\xCFu;}\x90\x90r,kjRZ˨y\x97\xCA,\xA3XΩ\xD4YF)\xD3cm\x96\x91b\xFC\xCF5\xE4\x86\x8Fd\xCDa\x91&quot;HD)\x9C\xAB\x8F\x83ٮ\xC9u
+\xCF&quot;j4ܒg)Ư\xEDL\x93ȩ\xF2H}t\xE7L+Թ* \x95Fo\xF8\x8E\xB2\xC9)\x85\xFD\EF1\xFBɦ\xA4\i\xAC\xF4\xFD\xF6B
+\xB4\xE2e\x96Q\xAA\xCD\xCD2R XERG \xA5Fm(n\x92&quot;6\x9E\xAB\x80b0ߐC'a\xF0\x85\x90\xA0\x9D\xF1BH\x82\xF1.\x9EM=\xE7p\x86\x91\x8E\xB6\xE6'!        \xCCB&quot;\x8Di\xB1\xA3trF`7W\x91QM\xB1\xAD0\xB6\xE6\xC9\xDA\xF0G,57ˈ im\xB3\x8C\x8A?w!#ôt\x86\xA9\xB5pNDû|Ni\x91&quot;`jdb\xAEuL\xCE\xE9\x9CH\xF5\x94B'        \x9AF\xBE\x90\x90b`\x9E\x91$\xF3e\x8B\xF7\x89&amp;\x9C\x87\x88f[\xABbъҹ\x85\xDDTED\x8E l\x8D$\x99l\xFE\xA8\xFCo1\xCA&lt;\xB4DKF28\xD3o2i,@&amp;\xED$\xEA\x89(\x95s\xA8\xA5C(\xD3,\x86\xF8\x8E,\xA9\xA5\xFE\xB2\x81B{\xEB0Z }\x90\x97]-\xE7H\xE6\xBF(m\xB7\xCEZ60}\xF9r\xDCO\x97&lt;\x9A_C\x9F\xACF\x89=-m\xAA4&amp;\xFAɑ\xD5
+7\x926P\xA4        +ƹ\xB3\xF7\xFDm\x83\xBAx A\x83L\xAD\xDAۮ\x82K&gt;-F^᭳W\x84\x8DM_ߍ\xFD\xE19\xB7\x880D\x83$ʙ\xE6l\x88\xE8Y\xC9\xE0\xA0`\xBF\xBE\xF2\xAAew\xAE\xA5u\x90G\xB5LZ1\xAB\x9B\xFA\xEB*\xF9\xAD#h\xD8p%\xFA\xBA#\xFD\x853Z\x8C\xBE\xC2[\xE7\xAF\x9D\xBE\xBE\xFDó\xF6i\xB2\x89+x\x9Av\xC7D\xA2\xE1ȗh\xA00\xE5`|\xE5\x9CS\xEE0P\xC3\xCA\xDA#+r\x83\x84\xC1\xCAd\xB2
+k\x89R\xC5\xF9\x85\xB71{\xC2\xC6\xD9I\xEC\xA6\xF2\xB0 \xDC*\x8C%T&amp;\xF0\xED\xD41\xAE\x9EWR\xB1@$\xF1t\xABc\xF3 4Q\xB7\xA6\x93 \x82\x93xi(O~\x8Ec\xB1\x92\xE8\xB02\xD9&amp;\xD1\xC8e
+b\xAD\x9D\x89o\x85~n\x83\xD4\xF7
+^\x8BG\xBD        \xBBVb\xEC\xC39{\xFFf\x985p@s\x8E\x84Oq\x98\xBC\xCCJ^N6T\x83\xC8\xD9\xD3\xC0\xE8\xBDE\xB1\xB1%\xDA\xCB*\xF5\xAD#\xA2\xA4\xFA\xB6\xCB+\xCBcQ\xEAo\x9D\xBBa\xFA\xE8\x94\xC0~\xFCO&lt;B\xEB|fE\xAD)\xD1\xC4;&amp;\xAC$L2KZN\xA5r\x85\xFDl@.\x87 \xAB0V\x9E\xC6?ay\xB9X)tXylC6\x9Ei:J`q\xEE(&lt;\xDE\xC6(\xD3G\xA9 ^\x93Gu\xA5\xB8Q\x88O-\x90@DŽU2\xB2J\xC9F&quot;\xE1\xDFH\xB1s%\xF3\xCA\x86\xFD\xC7L.:\x8DGȷ9\xE4XF\xC2`e\xB2
+Lq\xE4\xF6\xEADB\xE3X\xE7\xD2]\x87b\xFA8\x8D\xC4~*\x8FkA!\xF5\x81\xDDQʋhIZ`\xB2Ș)\xE0\x91\xE2Q\xDFH\xBD)\xF0D\xB2/\xA46
+\x92&quot;\xD6^X0\xA15\xC9V\xF5\xF5+\x83m`\x90m\xE72( 3\xF1q\xF00x\xB31\xF4l\x88\x9D\xC2n\x8F\xAB\xAC\x96;\xD2Dq\x98T\xC00\xE4phaN\x81|g\x94)\xD32\x90\xE8%\xB92*Ш,\xA9\xA3\xC8!\x91 \x9DD\x87\x95\xC960\xF4\xBB\xAEi&quot;\xD1%\xF4upQx\xE3\xB0'l\x9CFb?\x95\xC7U\x80^,$Ux\x98\xE6\x90\xE1u \xC97\x90\xA6R\xC3a\xC6&amp;9\xF1\x9AE\xD7,\xFEڤ4\xAD1(tXyLZ@ʎ89H\xB0\x9D\x87\xCED\xC1m\x8C\xC2\xE8\xE36
+\xBB\x89&lt;\xAE\xE6t2J`v\x86I\x8E3\xA9@\xC5qB\x8ABE2\xFA@,b0\!\xA6\xDE\xC2x$d\xCDz\x94\x84\xC1\xCAd\x98\x92)\xF6\xE5\x89D%\x84L\xDC\xC6(\xF4\xF3\xEE+\xE5}\x83\x97\xC1\xE2\xD1L\xC8\xD3\xFD\x94\xFF\xC2\xB8\xB5p \xB7\xFC\xCEU        \xBB#\\xE0\x8A\xD8\xD9#        \xF1\xB0t\xEEYZ\xC7h7Hh\x9A׹\xF4&lt;\xB0\x8FC16L\xA5\xA0\xE0\xF2\x8B3AG5ke\x8D\x96\xB5C\x91\xA3\xA7mR\xB2\xEA\xEB\x89\xF2\x96\x8C4$J\xF0Q\xF3'u%Ϭ2gq\x82\xF2\xB6\x81][ \x91\xF3\xB9\xADOP\xE0\x88\x9D\xBC\xC1[\xE7ߟ\xB0\xF1\x85\x97\xC1\xE3\xE1&lt; \xB3\xA3.p`\x90P\xE4\x81\xA2QC\x95\xA21\xE7\xE6
+Ð%Y E GB\xBC&gt;\xFE6\xA7\xD41\xE4\xB2\xD1K\xB1\xD7]
+g\x87\xC5\xEB\xB1\x8D1(\xA6\x8FOI\xECg\xF0\xB8\xDD\xC7\xD1}B\!\xBB7 YZ\x89w\xA5 \xBD/\xD85\x8C\xFCn\xE6~Z\x84\x94\x90\x8D\xD8Hܣ\xD9\xC0dւA\x82|9_\xE7\xA2\xF06\xC6aO\xF4\x91\x89\xDDT~\x81\xE9G4\x99\xAC\xB2\xF8v\xEARQJ\xE1&lt;\x95\xD1\xE8P\x9E\x86n\x8FwT\O0\xC2\xC5*I\xE9\xF4\x91u\xE5\xDE^\xA7\xD0\xE1^\xCE\xA6R\x94\xABu&quot;\x81\xDEp\xC6E\xE1\xAD\xC3\xD0A*\x97\xC1\xE2Q\xC3'Ã\xEB\xE4d\x92\xFB?C\x997i\xA8Z\x8B\ˊ]]\x99\xF2RWm)Y\xEB\xAF+\xA4\xE47\x83\xD1R\xA2\xF9꫋-\xAB\xEF\xEB޹+\xA6\x8FN        \xBC ϼr~j\xD1\xF4۩cȥ\xA0\x92p\xB4\xB1\x8EZc\xA9S%BS\xA7\x9CO\xE2\xA6`(5A        d \xEC\xDCh&quot;\xE7tҷ\x97\xEE\xEF\x8DA\xF7\xF7}\xF6\x84
+Q)\xBC \x8Fz=\x8A\x955\xE8\xAAE8|C\x90\xA1`\x91\x8A\x8F\xA1\x97\xC95\xD3ߔ[\xE4#\xE7\xA1wW\xED9\xF2#\x96\xB6        \x83\x95\xC760\xA1\x90\xAA\xB4\x89q\xA8a:\x85\xB71{B\x87\xA9\\x8FG\xBB\-\x8B\xDB\xC5Z%\x84\xFC\x8E!J\xA1\x9D%\xC9I\xAC\xE5+%uuFÑ\x86k\xE1\x98!\xA5/\xBCO\xA1$ V&amp;\xDB\xC0\xA4ȿ        \xF2_\xE8Jv.
+oc\x{184373}\x93\xD8M\xE5t\xFA\xC8
+\xE9\xBBP\xE5\xC0\xAD&gt;Ő_\xC1^I&quot;G\xCC\xFD8\xD5\xDCD\x8E\x9ASP\x85!RAt\xE2\xFA#N\xF7L\x8C\x84\xC1\xCAd\x9B0\xEEdo\x93\xFD\xD2\xE3\xA4\x9D\x83\xC2\xDB\x83=\xD1G\xEDN\xFB&lt;&gt;uO\xC1\xC9E\xEE\x9FDn\xFBtLq'
+\xBA\xB7y\xDCؐTO\x99\x8A./='{\x82\xF29NE\x94B\x87\x95\xC760\x94\x92\xEAO$4i4&amp;=\xAD\xEC\xA3PL\xA5Q\xD8O\xE4a        dJ\xB0\x9F\x80
+&amp;\xF8\xED\xD41l\x84\xFE\x94Whq\x92ԋ\x9Cvjh\xB6\xB9sǽI\xF3\xC5A\xEB\xD9V&amp;\xDB\xC0\xC4H\xE5\\x98H\x90ES\x9Aܙ\xB8\x8DQ\xA2R\xDF7x,U\x81*\xFDkT;uL\x8E\xE4\xBFi,\xD0Y\x93\xA1hI\xB5\x9AW\xC5K}hIT\xB7A\xD1\xFB[\xF7\x96x\xC7P\x94\xD7\xD7)\x9B\xE7^y\xA7\xAE\x88\xAD\xB3VD\x99Q؍\xFD\xE1I\xEB\xFE\xC2w\xB2\xB7\xF2m\xEC?\xA0a^O\x9F\xA7&quot;I\xDC@8\xE7\xD1Zf\xC4\xC3 ]B
+\x90&amp;\x8C2\xFA\xE4\xF1\xADV\xE1]\x8D\xB2\xA6Zyxu-\xCFqi
+\xDC*        j\xB5\xEC\xEC\x94֕+\x80\x82}\x92w\xA0\xA4!S\xDDl0R\xD2\xCA\x87\xFD        򠵀\xA2\xA8\xF4\xF1%\xB5C\xE0b\xBC\xAE\xBC\xB9T(\x83n0+\xEE\xA7\x90pܚ
+\xF4I\xD4@z\x83\xB2[\x9F\xFDY\xEC=1sh\xF4\xF9*L\xD8.        \x87ߠQ\xE4\x84Ժr\xC3\x9C7\x93`k\xC3`.\xA9\xB7\xBD\xC7#\x8E\x950\x85ʓi\x9E\x84ɕ\xB7G\xD07\x86B\x94&quot;ΒR\xEB\xC2R+4C\xB8g\xB4Q(A4}\x95\x95
+\xAE?\xB0\xFAsc
+\x99\xEDi\xF1\xAD\xF2\xA2\xDA\xCCм\x8E,\xC7Rt'&amp;\xCC+\x908\x8D\xF7\x95;&quot;E\x86|\xFD@y&quot;\xCE+P\xA2\xE5\x8A\xD8        \xD9\xB7P
+q\xCD\xE8a\x8E\x98Gbw\xE0\xD1\xE3\x80(Lo\x90\xC0I+\xFB\xB1(I\xB6\xC1K!\x9F+\xCCx\x84\x92I\xAAGΉa\xE4\x92 C+F]\x8E72\xAF\xC9\xD8&amp;\xA6\x98\x9C\xB2P\xA8`JcXC\x87\xE9\x8D ۖ\xFD        ,P\xE6a8\x9E\xA0\x8E[wPVC\x90\xFE(\x8COH\xAE\xAFKH0VۛX\xED\xC5\xA8\x8A\xA9'?AkZ\xB2g\x93\x81rv\x98J4\xD9\xE97\xCCRp\x80\x81 J\xAE\x92V\xADs'T\xE4\x81\xF7\xAC\x83F&lt;0\xF2F\xE2\x86\xDCB        g?\x86($\xD9\xE81DXYJ\x9E\x82T\xAA\xD0h\x91皴Cl\xBC\xBB]\xDA\xF4\xD5Ԕ5Lx*m\xB1\xEC\x98A\xF1\x9E\xA5Godm\xFA\xE0\x8BG:ʯΏ&lt;'c\xAE\xC3c\x90\x86\xCEO@\x9FF\xA0\x87M:\x83^.`(\xB64,=,
+\x990\x9E\xAAx\x94\xE24\xFCsb\x83\xC0A
+\x81`\xB8\xE8\xD9\xFB\xA64\xA7\xA1\xBA\xF4 \xA1\x9A
+;ޥ,\xA8]Xu\xF9\xD8 \xBB\xA6O\xB2+g\xE9\x8A\xD8-AŌ\xEC\xD7\xE0\x8D۟X\x97\xFED\x88\xBCWL\xE5\xCB\x8EbX,Y\xBAg!3
+!\xC8\xDF&lt;        \xC6b0*\xEEȭdÐ3j,-,\x96\x8E\xC0Rp:\x92\x98(=\xC0n\x96\$W\x80\x95\x8B#u\xA1\x8B\xC1\xFBa\xF6\xE4\xF6٠\xFAB&gt;\xB3\xC34\x94\x96\xF7Z\xC3:s-\xC4gZd\xA7KZ,\xFB\x91Jmv\x99I2\x8B&amp;\xA4\xF8\x89\xA6}\xC0A(\xA5\xF4\xE3\xE4.\xFA\xA3I\x9CM\xF6ܨG\xD40\x81\x8F\xF7|k\xC7N\xEF!\xEF|JX\xF2l\x96\x86\xEA\xB4\xBFU o\xE2\xDC\xC0̄.\xC7\xF3y\xFA\xCFc\xBC1\x{11A614} \x92\xE6\xD1\xC8D\xE1kh\xF6ذ\xFA \xCC|\xC2d\x8E&gt;cj bp\xB9\x9C\xBD ƨ\xA9\xB8\xE5@t\x8D\xA1\xDC%=\x93!Ԛ'\xB8\xA3\x811\xBF\xC6\xC9ƌ\!\xF0K*\x8F\x865\x9CQ3\xBD\xE6x}o`\xE6y]
+\x88{%\xB4(\xC8?\xE4\x97*1\xE6 DN\x87\xC3H\xB0Y\x92 `J\xDC        N\xDC\xCA{\x87PV        R
+o\x92\x94\xFA\xB5L\x8FP&amp;I\xC2\xC1. \xB6h\xA7|\xC69\xEA%Sl\x88׃\xF4\x9Ad\xC3\xDDXà\x8B\xA7K\x94
+\xDC';\xB0\xD7QHii\xC6 \x910\xAE̻z\x9D`&gt;%\x82\xF0R\x83g v)\x98x\xDE\xC8l\xF1t\xB83\xB2&quot;\x860\xF6:1L\xDE\xEE\xDE\xCF\xF1\x84t,q\x82\x82p\xF1\xAD#\x92\x9C\x99\xA0\xD2b\xC3:\xA1\x9D\xBE@\xC4h\xD0b\xE3\xA7\x8C\xA6\x98\x80\xEC1\x8C&quot;[Fk?y\xCEO_bY ab\x85l\x9C@!g\xE7\xFC\xD9HP\xD4E\xE621A\xC6\xE7\xA7aP~\x87\xD0\xE5\xC4\xCC ]\xE4w\x85K
+\x8EŔ\xF1q\xA2\xAA\x98\xCF        \xD38G\x84j*\xA3\xC2F\xCE\xC5Nm ^\xF6\\xA7\x81\xB8&amp;\xFA\xD4G\xA2YH_{d        h\xAE\xB2&quot;3\x91I\xCA\x9C4\xA5&amp;\x9EE&gt;\x98`\xF3\x82Գ\x83\xEAy.׈2\xB9\xA0Y˯Y\xF2\xC4\xD9j\x90&lt;\x85fK\x94\xD6\xC3\xE7g\x90`т\xA1\xA8\xFA\xE4\xCCF\xB3n)sj\xA0\x8C\xF9 Al\xD3\xD0|\x95tx&lt;\x919a!
+H \xA9jI\xAA
+\xCE\xB7\xA1\xF2U\x8DA\xFB\x8A\xA6\xC3L\xC1i\xC1f&lt;\xE4\x92uZNG\xA3H -+_
+W\xDA&amp;d\xB4Y\xD2\xE6$ͭO?\x8A\xA2*\xC7\xE5&gt;\xC7C\xD8\xFA \x9C (G        &lt;
+\xD9\xC3+*\x8C\x81\x90\xC3X\xFB#\xB0E\x86\x85B\x85\xC560d\x818\x93\x83q$\xDEg@\xF6Eu9Ŋ\xEC 9\xB8\xA7D\xCDq6\xD64\xFDB\xF9\x83YsB\x98D\x90n%0\xC8\x89\x83T7\xEA        xo`\x9B0\x89K쉄\x9C\xE1\xD3aq\xC0R\xA7a\xFFp&lt;\xC1Ex!\xF3Ō\xF8\xB8X\xE1\xA0!\xA9 \x83\x99\xE2\x98-\xDC3\xF6\x93,ͽM\x84\xC1(\x94\xA2M*L\x95Fu^g\xF7⃿p/\xBC\xF9\xC4N\xCEH\x8CfV\xE0\x82\xC804\x83\xC8;=\x8Dz5\x94\xEEA\x8A\xFC%Z\xE7rX[\xA5X7\x88\xE5\x93ׅ#k\\xB9\x90e\xF1q\xF1k\x918 \xA3\xABު        \x901z.\xED6\xD4;\xC4mM&quot;r\x9C\xC20\xE2\xE1L\x86:        ^\xC6LP\xFCI0bp\xE32\x96\xD7\xC8&gt;\x8Fz\xC85Tv)}\xE6\xA8dZ\x9Ee\xE4D8\x80S\xF1E\xD6\xA1\xBB!\x86\x90\x87\xD1\xFB#I%\xE17 \xBA\x8E\x87dڦ\x87\xE7\xA3i\x9F\xE3!\x9C0\x81՛%Q3\xB6\xC1V\xCDq\x8F\xA8\xB9        \x83\x95\xC9d\xF5\xD0Zz\x988\xFA\xA8u&lt;{\x8CO\xAEKٽ\xD0\xE8\xA7^h\xAC\xB0\xFF\xF5\x95\x83!\xA5η\xAA\xA6Mc\xAB؝j\xD3#U\xD6A\x89v\x98\xA4\xDC8\x86D`\xFE\xEC7\x9D(C\xCE\ s!\xC4'o\xEC\xD3\xD0\xF6\x83_\x80\xBB\xFCd\xC7        \xBEXN (q
+Y\xBA-U\x8EDF\x93p\xE4\xCF gjc\xA0\x94L2]\xD83$q\xE08}\xA3-\xA2dMv\x96 )[a6mk\xA1l\xC5\xD88n\x94\xCAe,B\xBCG\xF6\x88\xACJaЀK\xE8\x88O\x8E$h1-\xFD\x9D*5vA\x88e)\xEC8\xFF\xD8&amp;D&gt;Gi\x98\xA1        \x84z&gt; \x98\xA2'e\x84M\xAD[\xD6\xC0'\xDDP\x8E\xA3^_I8\xF0=0                4\xCDl\xF6        {Ɉ\x9A\x86\xC0I\xF9&amp;\xB1\xF6\xA3\xC8i\x99\x8D9wJ\xC78\x88A\xE4&amp; *\x9BUP\x84O\xAD\x9C\xA91\xD2        Se\xD5\xE0\xCAp\xE4\x91&gt;        y\x98\xF7)Z\x9Eu\xBDQl\xF4G\xB0\xBB|\x82:\xE2\x80\x922/\xDE\xCC\xF3\xAA\xA35Qx\x91\xE1\x93\xF2\xB6\xC6s\xFB\xFBe\x95\x94}p@Gr\xB2i\xF4\x8C\xE18\xF6\xB5\xC3P\xF2*\xD9u\xC7n\x83KW\xB9\xB1s\xDEL\xE9&amp;\xDEb\x88\x8Dvq`\xFAH\x875\xF5\xB6a\x8D\x94\x96Ic'`\x8FXN$\x8D9~U\xC30{FHy\x88\xB8(\xA6g\xC9QzM\x97I\xF3\xAD\xF6\xC7z\xC2\xFF\xFF\xFD_\xFA\xD69
+\x96D\x92\xFF\xFA\xE8\xF7\x8B?\xFDy\xF9\xC3O\xE4\xC5OoK&lt;\xFD\xEB)\xC9\xDEܲ\x9E&amp;\xC3M$t\xBC \x83\xFB[\x9E\xB9\xFB\x88\xED\xB99\xDE:_:ۈ\xEC\x98
+\x83nhc
+;\xBD\xEC!\xB1\xF1\xE0|g\xB9(\xBC٨\xA6\xF7%MV8\x8A\xC7RbMI\xB6\xC1|\xDA6\\xA5\xD5gs)\x80\x8D\xEA\xAE+\x99\xFCN\xC5:\xC4\xFC\xBB\x97\xEF?\xBE[\xBF[I\xF8?\xD2*\x90h-R\xB0\xC0c\xCA\\xC1\x94ȡR\xC2\xE0,\xFC\xB6\xFC\xE17\xEB\xBA:\xFA\xF1\xF4C\xEEc\x8D\xF4\x93\xCE\xF4S\xE8\xA7\xD2O\xD3\xCF^\xE8\xE7U\xFF\xDE\xE8\xE7\x8D~\xDE\xFAχ&quot;_\xE5e\xD0d\x9C\xC2\xF6\x92s\xFAτ\x89\xF0\xEB\xB2{0
+\x97\xF4\xE1&lt;\xC7Ͻ\x81\xC8o\xFFx\xFA\xF1\xF7\xCB?\xFF\xF8\xFF\x95
+J\xAB\xD22N\xDFX\x96\xC3,\xA2\x9C0\xBE\xA4\xFF\xFD\xE9\xC7?\x9F\x8EPF\xA0s\xE8w\__\x8FG\xB7\x96\xB4\xE6\xB6d\xB0@E%\x9F\xB2\xE4ٚ\xBF\xC1\x82\xAAG\xE7R\xB1-\xE6Ф\xF9b\x95\xA1X\xFE\xF0\xC8V%S\xE4]\xAF\xE7\xE0\x8FΡ!\x8Fw\xE8\xF0ܞ\xC30٣\xF3\xC0\xB9\xE1\x95bG\xD8{ pj\xE7\x813lj\xB2\xBF+\xA55\xBD\x82\x9B\x81\xC1\xD7)b\xF3\xB7X\xBD\x98\xC8\xB3\xC9hH\xACذ\xBA\xC1fv\xA0O\xF1'
+M\x8AT\xEE֬\x9E\xA3\xC8i\xE5\xFBU7\xCBaEN\xBC#\xF3U&lt;\x82\xB4\xB6\x83ħX\x87\xAD\xB1\xE4Q\xCF\xEEc]\xE7%\xB2\xD2\xDFM\xFE\xB6e\xE2\xD8\xF6\xB1\x8F:\x8B\x85\xFD\xA0\xEDb]\xD2_U\x83\xA1ɯ\xE3Y~7k\xACsU)\xE7I9v\x81\x93GI\xCC\xDC&amp;J\xF4\xE5\xD1\xFE*\xB8wwC@\xF0\xE4o\xC7C*\xF7,Pv^\xB2\x87\xB7\xA3^\xBB\xE1\xC5\xE3\xD4\xDA\xF5\xF8Y\x94\xC3\xFB\xFDp\xFA\xEBByV+\x85\x9B\xF7\xB8\xD8K\xE5\xDBw(
+\xFF\xF6~\xFA\x8F\xD3_\x96\xBF\x9E\xBE\xFF\xB7\x97\xBF\xFF\xFD\xFDo9m?\x9D\xBE\xFF\xEF|\xFAi\xFB˜\xC4f\xADT5\xD1\xF3\xCBLu6t$Y I\xEF\xFCT\xE9\xF3\xD3\xF7\xFF\xDBN\xFF\xF4_\xA7\xE3VAQ\xFAȸ\xDBs&amp;14CzEx\xAAT\xDDk\xD0\xC0\x91\xFF\xB1*{sاs\xEAgYZ\x9A櫦y\xB1P?\xF8\x90\xDDzG\x85\xEE\x8Dy\xC5\xDE6\xDFc@eO8\x99\xB3-\xB1Ӂ\xE3\x81=\xFF\xB8\xB2\xF2\xF0U`        H&amp;\x99\x99}\xCFSY2G&quot;7\xA8\xD8\xB81\xAB\xA8\xB9.~\xE7c\x8C\xB0\x9D\xB0R\xE5m3K\xC8\xE3&lt;3v*\x98];Έ
+\xCA\xC8W\xBF\xBE\x9C\\xE0\xCB1FE\xC9\xC4\xF8\xD8&amp;_\xD732\xDF \x86\xDBAf8P\xC9\xF5&amp;E\xB55\xE6g\x93z\xD1I\xC1\x8F\xBF\xE4\xB3&quot;\x8AW\xBE\xE8s\xB5L\xEEC4\xBD[(\xFE8\xCA\xD0\x95\xE2\x97\xCBők0b7\xD4
+\xC5\xC95%\xC5\xE5        WW'\\x9C_\x8E\x8A_\xC1\xF9\x9Fskz\xC7F\xCBW\x91}\x85\xBDgs\xEFj\xBFZԺ\x8F\xA9\xFE\\xC5\xC6!^\xFC&quot;\xF6\xEA
+ݶ\xA8\x8B\xC3A?\xB4\xBD\x8D\xCFXlǷ){\xE0ꘈ\xF84\x90^\x8B\xD8\xC1e&quot;\xE4\x9FRC9?\xF3r\xDF~\xCAS\x8AM\x9C$\x85ִ[G\xBC\xB8g\xE6wWX/\xAFY\xB0\x8C_tW.p\x8F\xB2\xC3i\xCEؼ\xDBψ\xB8\xF9\xF2\x84DT\xF5\xD3\xD5[\x8Ai\x91\xD3i\xB9\xB3\x9A\xAA\xEC\xF1y\xA1%\x8F/\xBB\xBD\xC6k\xAF\x89bP\xC5\xCC\xFB\xF4\xF6\xA8Цy\xAD\x9E\x90\xD1\xE6*t\xF7\xE3\xEB\xB0=Kw\x9D\xD9\x8D\xCA\xD3\xE8\xFD\xAB\xD9!L\x86L¿)R+\xFF&gt;\xA6#\xA9\xC7\xF3\xA6\x80c\xBEĄ2\x8D#3\xF8\xD8\xCD \xAC?7\xFA\xE1U\xF0w_\xA0, \x8A\xE0\xEC\xCBr\xDBc&lt;D\x90\xA3\xFB\xF12\x81\xBB\x8F\xC8\xC1.d\xC4vx8\x85\xC7.hF3\xE6\x8Av&gt;L\x97\xDE
+&lt;\xE0\xD5ڲd\x8E\xFB\xA8\x84f6g\xFB\xD1?\xD1g\x87\x9D-x\xA638՝\xB7\xF5\xA2
+,}\xE5Zv\xEE\xCBZJp\xD0Z6\xC4\xF1\x9B_z}\xAE\xB7H\xE9\x8B 
+\xD3\xE9
+\xBD\xAB\xBE]\x9C\ٶ\xB3\x94`\x9Dg?}`\xC1W\xFB\x93\x9C\xAD̈́\xB5m=\x8An\x9A\xE1rx\x8A\xD2q\xC0\xC6H\xA4֮:\xC1\xEF#\x86\x99\xF5\xF3\xE7Y\x87\xBA\xAA\x9B\xB6!V\xF3\xF7i\x8DM:F\xDFR_\x9A\xFD\xD9\xDEqx\x9B&gt;\xB8\xE7A\xBD\xCD9͙d\xBCl\x96\xE2\xA4        \xAER\xF8ȶ\xAC\xBE\xFByF:\xCF\xD2̓0\xB5a\xF8p\x94Z\xC0\xF3\xD1\xE3+\xC2ݴ\xAC\xCAs\xEB\xED-\xB7\x8EZ\xF8Eq\xB6‹\xE4ƪ\x9A\xE0\x99\xC0\xBB~\xF6!/\xF0\x829\xFD\xACb\xCE+\xFB\xB0?\xE8t\xE1\xB4a\xC5\xFFiJ\xE0MLD\xFE\xF6\xF4\x9D;\xC1\xCF-Zij\xB9\xF9\x85\xCBڛ\xAC\xFC\\xED\xEF\xAC\xCB\xC4'\xAB\xBA6\xFB\xF0\x8E\xDDY nBQ\x85\x8A3\xE1\xFBe~9\xB4\xCC\x9Dk\xF4\xAF\xE8^\xDF\xF2.e\xB8=\xE6;\xDB\xF7(\xE3\xAB\x84޵nbY\xEE\xB5:\xEE\xD2\xC7        I\xEC\xE3\xEE%r'\x92ߥ\xDBnJ\xC4\xDF\xDD,\xE4\xFD\x88\xFB\xA0ܻ\xBA\xA2\xCFN&lt;^\x88\xE9\xF7\xF8\xE0\x86ȯ\xB3\xB29\xFE\xEC\xCAv/\xF2\x9B+B\x86Ψ\xE2\x8E,\xEF\xDF&lt;{F8&quot;\xF2\xCD5\xE1\x91] \xBE\x9DQ\x85\xB5\xC0\xB5\x8E,)Օ\xDC\xC9:\xEFR\x8E7\xEC\x8B%\xBFy\xAF\xCBv\x8F\xBA\\xE8\xE7\xAFl\xBBI\xFF\xA0\x95E\x8F\xEF\xC9\xE0\xC4\xEC\xD9r\xC1q\xE2p\xAD\x85O9\xCE\xDDXѹM\xCC)1\xE7@ył\xABL_\xFA\xBAë\xCC\xDF
+|\xDB\xD7q \xC0\xDCA|F\xFB\x86\x9A\x9A3=h&quot;\xEE\xD1\xF1\xE6\xD2\xEE\xCEJַ\xE1\xF2z\x92\x8A|\xE4^\x87\xF3\xECZ^G\xB9\x83\x89#\xAEb߲mgv\xD5kJ\xA88\xB1\xDB\xF46e\xC4\x97\x9Fq&amp;r\xDE\xC1\xAES&gt;\xF9\xA6M\x88&quot;\xF9fO\xD3hor\x9B\xC0r\xD2b8\x9A\xF4\xA1ʼn\x8E\xA57\x8B\xF4\xAE\x85\xE6S&quot;\xBEY\xF6aa_\x85\xE1v+\x9D\xA7KV\xFBE\xAB\x9C&lt;b\xA3Xb\xBAOT\xB9'\xB2\x9A}\xD9vys磺6=\xBE4\xF2s\xB0\xA8\xFDʰB\xDC\xDBH\xBD\x9Bp\xE2t4\xB7\xAEW\x9EKۣi\xA1\\xBF&amp;\x9E\x9F\x90\xE1\xC7_,\xC5\xFE\xF2\x8A\xBES\xEB\xB8\xD7\xC0\xBD\xC7#\xAD\x97ğ\x90\xDE\xC0
+\xA7\xDB2\xB7D\xEDp\x8A\x83\xDBtu/\xF8g$\x9B8s.\x89ž\xF2\xC1\xA2*ק\xB6\xF8\x9B\x82~B\x9D\x86B\xADoj^\xD1Z։\x9B\xF2G5_n\xFE\x85ʬ\xBD\x98~B\x86\xB0\xE2\xB8\xF1W\xF6*\xFA\xD1L\xDFl_\xAFlkr\xE7\xD0\xD7\xDDL\xD0\xD9F\xCB\xE5\xF7\xC39\xA6un\xAE6&quot;\xDAA?\xC7\xDE\xD0\x8F\xBEYq\x99\x8E\xE6\x82\xC9z\xEF_\xCE\xE9\xB06\xE1\xEEH\xBA='\xD3'\xAF\xDE \x99y\xE2r\xECW͢\xF9A        Uލ\xB5\xC2Rs\x82H.\xAD2}\xAE/Lk\xED\x95\xE9\xCD\xF5&gt;p\xF0\xEDY8\xFB\xFA+\x8C\xDC\xE1\xB7T-\xB7F\xCE=\x8D\x83\x9A\x9A|꽌\xDBZ\xF3\xAC\xFC\x9A\xBF)\x89\xC5d_\x9B\xBDΎ\xEF\xEDڲ\xD6\xEB崵il\x86\xC3\xF02u\xAA\xECtE\x9E\xB4}\xDFt
+#u\xB6^\xAB_5\xA7\xE5\x8C\xF5e\x95\xD4\xC7`~.\xE7~\xD7\xEC\xDA\x8C\xE84
+\xB6\xA9x\x9B\xCA:'\xE9\xA2 \xDAU\xB6$\xEF\xBA8\x8A\x9EQ\xE8\xE8N\xD4\xEB\xDA;\xDD}|M\xED{[.w\xD7(        \xD4ł=\xA3\x9FY,g\xBDRY\x9D\xE3\xFDL\xAD\xF1\xAF\xE9?\xC1\xBFbg2e\x9F\xBE\xA0\xEE\x8EG\xA6\xC0\xB7\xBA\xF9d\xDE^\xF6\xF7\xAEܥ\x9C\xCE\xD7 z8#n\x96\x9A}-\x92\xA3\x8BZq\x8B\xCE\xD5\xE8f\xDD\xD5\xDF\xB6\xD5&quot;G+\xBE(\xE4ڌ.\xD2\xE4\xA3\xF8\x82\xFB\xF2\xE7S{\xDB\xD0\xF5\\xDDMUwOH\x84)\xD4\xEB\xC1\x96'\xABy\xA4P\xEFk\xBB\x8A6Oh\xB6R\x90\xD7D\xF8\xB6\xAEoNj\xFA\xC8`\xBFp`OHޢ盪{\xC9L\xDCb\xE8i\xE7\x93\xFDK\xC4\xCD\xCE/l\xFF(\xE5f\xA5ؓ\xBDJ\xC4\xF7\xA4\xE7\xEB|\xE7        c\x8E\xC9\xD2\xCC+\xDD&gt;V\xD2\xE3\x8F&amp;\xC8_\xFA\xAA\x9E\xC8\xDDT\xC8=\xCD\xDF\xCF&quot;\x9CE\xAEg&gt;\x9By\xC3\xF6\xC1\xF8\x8A\xEC\xDB~6\xDC9\xF5y\x97r:_\xB9Y\x98\xE4AQ\x94f;77\xD9)\xA7\xB4G\xAB\\xFE^\xA7k\x95\xEC\xC7I\xEFm8D\xA3/\x84\xE5\xB0O\xE3 ~\xD1\xE3&quot;&lt;\xCE\xC0\xDC\xD8f8'\xF9\x97Wܢ\xC2\xF5\xE0_|\xAA\xC8S2&quot;dK\xBD\x9A\x8F\xA1[K\xBC\x89o\xE7\xCE|\x91\x9F{\xD7m\xACۣ\xD8]\xF2~\xBEv\xB4b\xE0M&gt;\x83xq:\xDCg=\xCD]~\xEE4w\xB2\xE9ϟ\xCF\xEDJ\xCEVS\xD4X\xBE\x97#\x93\xD7\xE4a=rv\xF8x}·2y\xB7N'\xB4\x8A\xEC\x8B\xF0t\x83\x88\x82O|G\xDD/\xB1\x93[v\xB8\xAC\x8E\x86o\x93\xE0\\xF6IX\x8E\xAFnL\xC57dƋNS\xD5\xE9m\xA4\xD7=-N\xF7\xF6\xAFcBr['\xEDf\xF4\xA6\xB8m\xBD\xBCt\xF0j&amp;\x82\xFEq\xAF\x82\xEF\xA9P;\xE1\x89\xD8Q*\xE3\xFD\x88\xA4\xF5\x9C\xA0\xB3]DCY\xFCO\x90\xB8_R\xF2|\xE0\xDC\x9AԧAq\xCF︐\xF4\xE69.\x909Z?\xDFj\xF1k\xBF\xD9\xC2&lt;\xD7\x84\xF7b[\xF4\x8F4\xD4\xE5        ²\xA7$;_6ܦG\xA1\xA7\xA1\x98U\xF55
+\xFA\x99z\xAD\xF9\xD2\xCEm\x9Bd\xE9S8?\x9D_\xE4\x93⇇\xAF-\xCF\xE8\xF9\x9F\xFF\x99n|9\xB3*\x95\xEF\xEE\xBEiW'\xD5'oy\xF46\xBE\x8ED\xAE\xFC\xE0\xDF \xD5qM\x8Bόކ\x9A\xF4\x98\xB9vR\x86;8z5͟\x83XA*y7\xAC \xDA:8L\x8C\xB3\xC2\xE1ޙ\xE0{\xCC*\xDD[B\xB3\xA2\xF0%f\xCDT\xD2ϧw\xE7\xD0\xCEA.\xF3
+\xAE\xF9\x9E\xE3+\xD8Qo%\xE0_V\xD3\xEFE\x98\xE3\xF1\xC1\xDBY\xF8\xDA)m&gt;E|=̮\x91\xFA\xAA+m\xAE'\xE8\xC1m\xB3\xA78\\xDBܓLߛ\xE5K&quot;\xFE\x89\\xF9n\x9B\xF6\xECw\xD2\xE4\xAC\xDF/\x8D\xDF&quot;\x95\x9B,6Տe\xB1\xA8\x8E28\xE72y\xD2\xEE\x9B:A\xF5\xE0\xC1
+\xD1q\x8CLÍ9\xB1ݢ\xB2?z]g\xFA\x87\xC9\xEFҐ\xF7\xB1h\xCF6\xEF\x80o\xE6g\x83\x80u_\xF25\xEBFa\x87܎[8\xBEtT\xA3٥\x953C\xDB\Zu\xA2/\xB4%`\xA8W)\xC5\xF6\xE7#\xF8!\xED&gt;\xE3\x8A-\xBEޝ\x9338 7)\xB9\x8B\xFE\xB2\xE3\xF9\xFE\x9E\xD7\xEF$\xFA^:\x8BU\xC1\xBE\xB4\xA1G\xFC\xBB:i8\xE3\x9Ed\x87\xA2~\xB1õ\xB7\xF8Ev\xF86Y\x83%\xE5&lt;ʣ6\x98=\xBE \xB6p\xED)\xE6\xC5|U\xCFA\xF2z\xE9\x80\xDAd\xAC\xAB}\xDB
+\x9CA\x92 \xA6\xB2U\x92\xDBpp\xB6\xE8\xC8T42#[\xFE\x8E\xC9*\xA2\xC5u;\xB7\xD6%\xB0\x89\xED\x98\xC1\xDA\xFA\x98d\xE0%\x96C\xA3\xC3?v&amp;\xBE\xE1\xDAMܴ\xA2'X.\x98V)\xAB\xAF]\x85\x9B\x8E\xF0\xF5sbۓ\x98J\xAF\xE0\xDA_Ȭ.\x99BRY\xAD\xB8\xF7n\x8A-q\xE4\xDD\xDD\xE7\xB43\x89&amp;&lt;+\xA1@+\xCFi\xA8\xBEv\x93\xB36pi\x90\xAB&gt;s\xF9\xD5 \xC7=C̽\xB7\xFD4πF\xD0\xDB\xEE\xC1\x8F\xF0Aoԇ\xE9F}\xD0\xF5a\xBAQ\xF4F}\x98n\xD4m\x88\xC4\xE9F}Tq\xE2\x95G\x9CxD\xE5\xF3\xB1fJ\xD0l\xDFƘ\xE2\xFE\xCB9&amp;\xFF\x{DD08}y\xA4\xC4\xEF\x91\xE8\xBA\xA1B\x9E\xF3ڃ\xD9\xF64        |=\xF5\xC5\xC1\xDE^m\xCDAhn\xAA\xE88\xBE\xEE_,jWZ\xBF\xF3\x87Q\x89=\xB1\x9EEM\xE2\xE4\xACKµ\xA7\xF5\xE2k\xA7\xB9\xF3@^e=\xC8+\xCE\xC41%rw7\xDEp\x94\x8E\xF7Ǿ\x98\xD1U\xF6x\x99X\xFD\xB0\xFC\x84\xB0\xC5
+endstream
+endobj
+4 0 obj
+   8019
+endobj
+2 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+      /s8 8 0 R
+      /s10 10 0 R
+      /s13 13 0 R
+      /s15 15 0 R
+      /s17 17 0 R
+      /s19 19 0 R
+      /s21 21 0 R
+      /s26 26 0 R
+      /s29 29 0 R
+      /s31 31 0 R
+      /s33 33 0 R
+      /s35 35 0 R
+      /s37 37 0 R
+      /s39 39 0 R
+      /s41 41 0 R
+      /s43 43 0 R
+      /s45 45 0 R
+   &gt;&gt;
+   /Pattern &lt;&lt; /p6 6 0 R /p7 7 0 R &gt;&gt;
+   /XObject &lt;&lt; /x9 9 0 R /x11 11 0 R /x14 14 0 R /x16 16 0 R /x18 18 0 R /x20 20 0 R /x22 22 0 R /x27 27 0 R /x30 30 0 R /x32 32 0 R /x34 34 0 R /x36 36 0 R /x38 38 0 R /x40 40 0 R /x42 42 0 R /x44 44 0 R /x46 46 0 R &gt;&gt;
+   /Font &lt;&lt;
+      /f-0-0 5 0 R
+      /f-1-0 12 0 R
+      /f-2-0 23 0 R
+      /f-3-0 24 0 R
+      /f-4-0 25 0 R
+      /f-5-0 28 0 R
+   &gt;&gt;
+&gt;&gt;
+endobj
+47 0 obj
+&lt;&lt; /Type /Page
+   /Parent 1 0 R
+   /MediaBox [ 0 0 612 792 ]
+   /Contents 3 0 R
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 2 0 R
+&gt;&gt;
+endobj
+48 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.7 /ca 0.7 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+9 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p49 49 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB1T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x93 \xE6
+endstream
+endobj
+50 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 48 0 R
+&gt;&gt;
+endobj
+8 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 50 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+51 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+11 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p52 52 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/05R(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4c\xD4 \xE0
+endstream
+endobj
+53 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 51 0 R
+&gt;&gt;
+endobj
+10 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 53 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+54 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+14 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p55 55 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/05U(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d4 \xE3
+endstream
+endobj
+56 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 54 0 R
+&gt;&gt;
+endobj
+13 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 56 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+57 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+16 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p58 58 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB5P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x94 \xE6
+endstream
+endobj
+59 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 57 0 R
+&gt;&gt;
+endobj
+15 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 59 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+60 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+18 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p61 61 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4c\xD5 \xE0
+endstream
+endobj
+62 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 60 0 R
+&gt;&gt;
+endobj
+17 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 62 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+63 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+20 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p64 64 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03Q(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d5 \xE3
+endstream
+endobj
+65 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 63 0 R
+&gt;&gt;
+endobj
+19 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 65 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+66 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+22 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p67 67 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03W(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x95 \xE6
+endstream
+endobj
+68 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 66 0 R
+&gt;&gt;
+endobj
+21 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 68 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+69 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.7 /ca 0.7 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+27 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p70 70 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4c\xD6 \xE0
+endstream
+endobj
+71 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 69 0 R
+&gt;&gt;
+endobj
+26 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 71 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+72 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+30 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p73 73 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07V(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d6 \xE3
+endstream
+endobj
+74 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 72 0 R
+&gt;&gt;
+endobj
+29 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 74 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+75 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+32 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p76 76 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07S(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x96 \xE6
+endstream
+endobj
+77 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 75 0 R
+&gt;&gt;
+endobj
+31 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 77 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+78 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+34 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p79 79 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB7T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\xF6 \xE9
+endstream
+endobj
+80 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 78 0 R
+&gt;&gt;
+endobj
+33 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 80 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+81 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+36 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p82 82 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB00R(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d7 \xE3
+endstream
+endobj
+83 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 81 0 R
+&gt;&gt;
+endobj
+35 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 83 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+84 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+38 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p85 85 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB00U(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x97 \xE6
+endstream
+endobj
+86 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 84 0 R
+&gt;&gt;
+endobj
+37 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 86 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+87 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+40 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p88 88 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB0\xB0P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\xF7 \xE9
+endstream
+endobj
+89 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 87 0 R
+&gt;&gt;
+endobj
+39 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 89 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+90 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+42 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p91 91 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d8 \xE3
+endstream
+endobj
+92 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 90 0 R
+&gt;&gt;
+endobj
+41 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 92 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+93 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+44 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p94 94 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04Q(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\x98 \xE6
+endstream
+endobj
+95 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 93 0 R
+&gt;&gt;
+endobj
+43 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 95 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+96 0 obj
+&lt;&lt; /Type /XObject
+   /Length 40
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 0.399038 /ca 0.399038 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854.x\xFB3
+endstream
+endobj
+46 0 obj
+&lt;&lt; /Type /XObject
+   /Length 58
+   /Filter /FlateDecode
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Pattern &lt;&lt; /p97 97 0 R &gt;&gt;
+&gt;&gt;
+&gt;&gt;
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04W(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4d\xF8 \xE9
+endstream
+endobj
+98 0 obj
+&lt;&lt; /Type /Mask
+   /S /Alpha
+   /G 96 0 R
+&gt;&gt;
+endobj
+45 0 obj
+&lt;&lt; /Type /ExtGState
+   /SMask 98 0 R
+   /ca 1
+   /CA 1
+   /AIS false
+&gt;&gt;
+endobj
+99 0 obj
+&lt;&lt; /Length 100 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Image
+   /Width 4804
+   /Height 3600
+   /ColorSpace /DeviceRGB
+   /BitsPerComponent 8
+&gt;&gt;
+stream
+x\x9C\xECݻ\xAE\xDB0DQ\xFD\xFFO+E\x9A\x80\x81\xA9\x87Ej\xBCV\xB7+Q,|\xED\x83\xEC;\xACh[U\xF5\xC5@\x88\xEA\xC9\xE0G\xD5!\xAA'\x83U_ \x84\xA8\x9E ~T}1\xA2z2\xF8Q\xF5\xC5@\x82\xEA\xBD`O\xF5\xDD@\x82\xEA\xBD`O\xF5\xDD@\x82\xEA\xBD`O\xF5\xDD@\x82\xEA\xBD`O\xF5\xDD@\x82\xEA\xBD`O\xF5\xDD@\x82\xEA\xBD`O\xF5\xDD\xC0\xEBU\x8FT_\xBC\x9E5d\xB3%\x80l\xB6\x84\x90͖\xB2\xD9@6[Bv8$\xB4%\x80W3$\x80l\xB6\x84\x90͖\xB2\xD9@6[Bv8$\xB4%\x80W3$\x80l\xB6\x84\x90͖\xB2\xD9@6[B\xC8fK\xC1\x87\x84\xB6\x84\xF0j\x86\x84\x90\xED\x91-\xE1\x99\xFF\xDC\xD0,J\xDC\x9E\xDC\xDA@\xAD\xAB\xA3\xBF/'\x84\xAF&gt;\xFE\x8Eo\xBCb\x9C\x9F\xB9\xFDΘn蛮\xFF\xFA$9?s=\xA6\xFB\xF7Y\xE5\xE6\xBC\xEC\x82/@\x9E3\xB7        K\xBA\xE6\x89\xE5&amp;\xBF\xF2\xFF/.\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ep\x93m\xAB\xFA\xC1ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej\x93m \xFB\xB5ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej\x93mk\xFB\xA9ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej\x93m\xCB\xFB\x9Dki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej3m/\xF1#7\xD0LJ)\xA5\x94RnG9\xA4\x94\xB2*?%V8\xA4\x94R\xCA\xC9ٷ\xC8!\xA5\x94r\xA9&lt;\xF9\xE1\xB9ԙ\xA5\x94RJ)\xA5\x94RJ)勲of9\xFC~~҄\xA7,~\x8Fh&amp;\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej3mߙ\xFC\xC4\xC7_\xFF\xCB\xF3&lt;\xAE9\x98\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xA9        ̴\xDDR\xF5\xDC?n\x9Fd\x84\xE6`RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xA6&amp;0\xD3v]\xCC\xD3o\x9Fa\x9C\xE6`RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xA6&amp;0\xD3vE\xF9F\xE3\xC6\xC6i&amp;\xA5\x94RJ)\xB7#\x8BRJY\x95\x87\x9F+RJ)\xE5\xE4\xEC[\xE4\x90RJ\xB9T\x9E\xFC\xF0\\xEA\xCCRJ)\xA5\x94RJ)\xA5\x94\xF2Eٷ\xB3~?\x9F\xF0E\xFD\xFCF\x9C\xE4\xEA\xD3\xC7y\xF6\xBD`_cHx\xF5$\x8F\x9F\xE7\xEA\xA3\xC7y\xF0\xA5௥6nU\xB3;\x8B?\x82\xAD6\x9D+\xD9\xF4\xD9\xC0L\xB6\x84\xFC\xCB\xD73\xA0ϧ
+n\xF0\xE1        \xC08\xFE\xF5        \xF8\xE4\xF0\xF7\xC2\xE3\xBF.=\xD1\xF8\x9E-!d\xB3%\x80x\xB6\x84\x90m\xE6\xB2ϖ`e\xBE\x9E}&gt;%h\xF8\xD3p\x83O\xC6\xF1\xAFO@\xDFᯆ&gt;\x9C\x96,\xF0[B\x88gK\xD9l         \x9B-!\xFB\x89ok\xD5\x8A\xF9\x94\xA0\xE1O\xF0\x87};ȑ䆡(x\xFFS\x8F\xBC\x90
+\xA9\x9A]̤\xBE#0\x9D5 J\xF0(0&lt;\xE8\xE3\xF5        8:.\xDFZ&gt;\xFCC\xF8.-!d\xD3@6-!d\xD3\xF0\xE7\x83\xDB\xDA\xDB\xBC̔`\xE1h(0&lt;\xE8\xE3\xF5        8:.\xDFZ&gt;\xFCC\xF8.-!{2\xEB\xD3\xC0\xF3\xB4\x84\x90MK\xC0\xDF\π=S\x80\x85\xA3\xA0\xC0\xF0\xA0\x8F\xD7'x\xD7\xF1N\xFE\xFA\xCD\xFC\xC9/\xFC\xF0oM\xF8o\x80
+\x8F\xE6\xFE&lt;-!y\x86GsZB\xF8\xA5\xC9\xDD\xDC\xF3ߦ% \xD2\xD8n\xEE\xF9\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;\xC0\xEB\x8E\xD7\xF2W\xEE\xE7\xAF|\xD5\xE7\xD4\xC2\xC0Ef\xA6sZB\xF8\x96\x81\xF5\xDC[\xDF\xF3ÔPK\xC05Ft/~̏\xFE\xF4\xFF\xF0-s\xBAw\xBF\xE4G\xBD\xFB\xBF\x80\x85\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFAC/\xE7\xDC\xD5_\xFF\x86\xD7?\xFA\xFC4\xA3\xFBzI7\xA1\xE3\x9B\xF0
+\xD0\xE7\xA7%ݷz\xBAW\xFE\xE8W\xBE\xA4\xE93\xA0I\xA1\xE9\xFBeU\xF7\xF0\x9F\xFB\xFA\xF74}\xF4)\xC7}?*\xEC\xBA\xFF\xFD\xC7~~ߗ\xF0o\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEBLs\xBC\xA5\xBFk\xD4oo\xFD\xE8\xD3\xD1~Ŵ\xDE\xFD=Ч\xA3\xFC\xA5\x81\xBF\xFA\x81O\x80&gt;=`\xD9̟\xFC\xCCW@\x9F\x8E*\xB0`\xEC\xEF}\xEC\xC3\xF8\xF3\xC1m\xED\xED^fJ\xB0p4\x9E\xF4\xF1\xFA\xF3\xEF\xED}\x86\xFF҇?\xFAtt\x82K\xBD\xF9_\xAD:\x82\xC1Q\x8D\xDE-\xDF        \xDD:\xFA\xC1        i\xDEu \xDD2\xC2\xDC\xFB\xE5\xFF\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB\xC48^\xEF\xE7\xDF\xF3?\xFF        \xC3🴄\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \MKٴ\x84\x90MKٴ\x84\x93\xB9\x9E{\xA6 G@\x81\xE1        @\xAFO\xC0\xC7
+\xC5\xC2W\xD3@6-!d\xD3@6-!\xC0d\xAEg\xC0\x9E)\xC0\xC2\xD1P`x\xD0\xC7\xEB0\xC7qC\xB1\xB0\xC0մ\x84\x90MKٴ\x84\x90MK0\x99\xEB\xB0gJ\xB0p4\x9E\xF4\xF1\xFA\xCCq\xDCP,,p5-!d\xD3@6-!d\xD3L\xE6z\xEC\x99,
+\x86'}\xBC&gt;s7 \xB1o7ʍ*M@y\xFF\x97\x9E\xDD\xF9\xF9|gd\x90DwVS\xE7D\xC6\xEE\xE6F\xD8\xD7B \xD0@\xB04\xB3\x84pof        \xE0\xDE\xCC\xC0\xBD\x99%\xA8\xCC\xE5\xB0\xCFQ\x80N
+/p\xF0`w\x9F\x80:W(,\xB04\xB3\x84pof        \xFE\xE3iwd\x96\xE8h۞,\xCB,!@e.π}\x8E&lt;pj8\xF6\xC2\xA1\xA1B^\xE5\xD6=P\xC7\xE1
+\xE5\xCB\xCB\xC3\xCAEUUUUUUUUUUUUUUUUU\xB5t\xFD+\xD7&quot;PUUUUUUUUUUUU]\xA7DlO\xFA\xF8\xA9\x87_\xA2\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAZ\xB1n?\xFD؆\xCD\xFE\xF5\xDF*\xF1yUUUUUUUUUUUU\xD5\xF2 b{\xD2\xC7O=\xFCUUUUUUUUUUUUUUUUU\xD5Zu6&lt;\xF8e\x8D^UUUUUUUUUUUUu\x91
+\xB1=\xE9\xE3\xA7~\x89\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAj\xA1\xBA\x8D\xFC\xB2\xF9\x{AAAAAA}\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAj\xE1
+\xB1=\xE9\xE3\xA7~\x89\xAA\xAA\xAA\xAA\xAA\xAA:\xA2nG*\xFC\x91\xAA\xAA뙣D\xFC\x8FTUUUgֽ\xB3\xC2/\xFEHUU\xD5\xE1\xF5\xF7o \xCD\xFE\xF5\x97\x94\xD8\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAj\xB4nG~\xCCr\xB8B\xF9r\xC1_X\xA9\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA~Q\xB7\xC4\xF0\xE0\xE7Zdk\xA8\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA%+@\xC4\x{1A43DF}z\xF8%\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAɺ͝&lt;Y\x8BlUUUUUUUUUUUU\xB5R\x88؞\xF4\xF1S\xBFDUUUUUUUUUUUUUUUUU5Y\xB7д\xE0~-\xB2qTUUUUUUUUUUU\xD5J b{\xD2\xC7O=\xFCUUUUUUUUUUUUUUUUU\xD5L\xDD~\xFA\xB1\x85\xA6k\xA9m\xA5\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xA8ۓ&gt;~\xEAᗨ\xAA\xAA\xAA\xAA\xAA\xAA#\xEAv\xA4\xC2\xA9\xAAj\xB0\x9E9J\xC4\xFFHUUUuf\xDD;+\xFCR\xE1\x8FTUU\xBD\xB8n\xA6k\x91m\xA5\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAN\xAFۑ\xB3\xAEP\xBE\\xB0\xC4V\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xFF\xFF\xBF~gۦ\x8F&gt;[\xE3\xDBJUUUUUUUUUUUU-S&quot;\xB6'}\xFC\xD4\xC3/QUUUUUUUUUUUUUUUUU\x9D]\xB7Jӂ\xFB5\xBE\xADTUUUUUUUUUUU\xD52 b{\xD2\xC7O=\xFCUUUUUUUUUUUUUUUUUթu\x9B&gt;\xF8~-\xB2\xE9TUUUUUUUUUUU\xD5h\x88؞\xF4\xF1S\xBFDUUUUUUUUUUUUUUUUUuj\xDDB\xF3\x80\xEF\xD4&quot;\x9BNUUUUUUUUUUUU\x8DV\x80\x88\xEDI?\xF5\xF0KTUUUUU\xD5u;R\xE1\x8FTU5X\xCF%\xE2\xA4\xAA\xAA\xAA:\xB3\xEE\x9D~\xA9\xF0G\xAA\xAA\xAA^PӶ\xD0&lt;\xE0\x9B\xB5ԖTUUUUUUUUUUUU\xD7\xED\xC8\x80YW(_.X\xE2 +UUUUUUUUUUUUUUUUU\xFB\xD6\xED\xA7\xDB\xC4\xC0 k\xA9-\xA9\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA&amp;*@\xC4\x{1A43DF}z\xF8%\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA3\xEAV`\xF0\xCDZdK\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xA1
+\xB1=\xE9\xE3\xA7~\x89\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAꌺ՘|\xA7ْ\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAj\xA8DlO\xFA\xF8\xA9\x87_\xA2\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA:\xBCne\xE6߬\xF1-\xA9\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xE6*@\xC4\x{1A43DF}z\xF8%\xAA\xAA\xAA\xAA\xAA\xAAꈺ\xA9\xF0G\xAA\xAA\xACg\x8E\xF1?RUUU\x9DY\xF7\xCE
+\xBFT\xF8#UUUߪ[\xA5y\xC0wj|K\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAS\xEAv\xE4\xC0,\x87+\x94/,񅕪\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xED\xEA6}\xE2ot-\xB2aUUUUUUUUUUUUչ b{\xD2\xC7O=\xFCUUUUUUUUUUUUUUUUUձu M\xFC\x8D\xABE6\xAC\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA:\xB7DlO\xFA\xF8\xA9\x87_\xA2\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA:\xB6n\xE3G\xFC\xFE\xBB\xE3\xFEC\xBFk\x91
+\xAB\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAAέۓ&gt;~\xEAᗨ\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\x8E\xAD۰\x99\xBEmw\xC4o\xDAHUUUUUUUUUUUU\xEDQ&quot;\xB6'}\xFC\xD4\xC3/QUUUUUUG\xD4\xEDH\x85?RU\xD5`=s\x94\x88\xFF\x91\xAA\xAA\xAA\xEA̺wV\xF8\xA5\xC2\xA9\xAA\xAA\xFAz݆\xCD\xF4\xFD[?&lt;\xFF\xD7\xFFw\x8BlXUUUUUUUUUUUUuXݎ\xFC\x98\xE5p\x85b\xC1\xE4mۤ\xCC\xFC`\xB3\x84@9\xD3&amp;\x9F\x9D\xEF3N\xC0\x9A\xCC\xC1\x81A\xB3\x844c\x96+&gt;x\xEDp\x9FYBd\x96\xA02\x97g\xC0&gt;G        85I\xF1\xC0\x8Br|\xF04K\xC0in\xDDu\xAEP,X\x80?҃~32y;\xC0f        \x80ħ\xF9\xCC\xC0\xD5\xCC@S񩽲\x99\xB9\xE9`
+\xB3\x84pg\xF1\xB9\xBC3s\xAB\xC0f        *sy\xECs\x94\xE0\x81S\xF4\xBE\xBBWN&lt;/\xFC/p_n\xDDu\xAEP,X\xA0\x84\xF4\x84]\xA3\xCC\xFC.`
+\xB3\x84PK|\x92Nf~G0\x85YB\x88\x8F\xCB\xC9Nf~}0\x85YB%&gt;'\xAFe\xE67 S\x98%\xA8\xCC\xE5\xB0\xCFQ\x80N
+\x90|\x93\xABsp\xF0\xBC\xF6?\xC0\xAD\xB9u\xD4q\xB8B\xB1`\x80\x9F\xD2n25\xD3\xF6\x98\xC2,!\xFC'&gt;\xC2&amp;E2m\x80)\xCC\xD0N|NM\xEAg\xDA\xCES\x98%\xE0\x9E\xE2\xC3h\xB2t\xE6\xECT0\x8BYB\x80\xCA\\x9E\xFB%x\xE0\xD4@S\xF1\xA13\xB9c\xBE8x\x8E\xF8pwn\xDDu\xAEP,X\xC8KO\x96I\xBB\xCC\xD9\xFD`\xB3\x84T\x93Ι\xBFO\xC0Df        \x98*&gt;2&amp;R$0\x91YB\xB8-7\xF4Ȋj\x89Ld\x96\xA02\x97g\xC0&gt;G        \xFE0\xC0BP|Kd\xD1Ѓ\xA7\xBA@\xA7-X\xA0 \xC3,L\x9F\xBA\x92\xE6\xB9\xE5\xDEs\x99%\x80Řja\x9C\xF8t\x95tN\xAB\xA63K\xCB0\xDE\xC2%\xE2ST\xD2&lt;\xF6\xE1K6&lt;\xC9,!,\xC0\x90 ϊ\x8FJI\xF3\xD8Ã\xBEb\x96\xA02\x97g\xC0&gt;G        \x80L\xBB\xB0#&gt;%\xCDc\xE7_n\xBB0\x9D\xA7\xBA@\xA7-X \xC2\xC0 \xBF\xC5\xF7i\x9E\x9A\xE2\x9B\xE5N\x80\xCC@Q\xF1\x81c/\x93ſki\x9E\xC57Z\x87\x8D \xC0]\x98%\x80r\xE2\xD3.\xE6_Ɖ\x95&quot;7ߞm\xB7&lt;\xAB1K\xB5ħ]L\xC1\xBC/\xFEe\x89\xF4\xDFԾa\x96\xA02\x97g\xC0&gt;G        \x80\x8A\x8F\xBA\x84yJ\xFC\x91\xE6\xE1\xB7\xF8\xE1\xCB\xE0{\x9E\xEAu\x9C \xB4`\x80        \xE2\xA3.\xC6a\xBE\xDF\xE6&quot;\x8AG\xBEA\xCA3K%\xC4G]\x9A\xC5ķ\xAAo\x8A\x83\xBEYj3K%ħ]:\xCC\xC5\xC47\x9Dȶ\xF2\xBF\xA0\xFA\xE2_\xAE\xAF\x80\xC2\xCC@^|\xDA\xE5f\xD31\xF1\xED#BP\xFC۷P\x92YB\x80\xCA\\x9E\xFB%n&quot;&gt;\xF0\xB2\xE8\x98L| \x88P\x96}\x802&lt;\xD5\xEA85@h\xC1\x83\xC4^\x8A\xCB\xC4?\xA3\xC8\xE6\xC6\xF8\x9A\xEC0\xF0/\xB3\x84\x90\x92\xAA0/\xFF &quot;\x9B\xBB\xDF7e/\x80\xFF1K1\xF1\xE1\xA9Ƀ3\xF1\xBFVds\x97\xBB%\xFB\x98%\x80\xA0\xF8PՈ\xF1\x99\xF8\x9F$\xB2\xB9\x95\xCDW\xECl\xF4f\x96\xA02\x97g\xC0&gt;G        \x80\xB5Ň\xADDV\xBC\xC6\xEE\xC0D\x9E\xEAu\x9C \xB4`\x80\xCB\xC5\xE7\xB0DV         bo\xA0\xB3\x84\xCE\xA9\xA8\xC3        \xC0\x99%\x80\x80\xF8ܖH*$\x98%\x80\x80        \xE3Z\xF1\x911\xE9\x8A1KP\x99\xCB3`\x9F\xA3\xC0\xAA\xE2s^&quot;Wn\xC1u5\xE3\xB8\xFB\xD4q\xB8B\xB1`\x80\x8B\xC5\xE7\xBFD\x9E
+\xEB3K\xB3\xC5G\xC3D&gt;\x80[3KS\xC5GƤyh\xC9,!L%\x93\x80\x99%\xA8\xCC\xE5\xB0\xCFQ`I\xF1)3\xB9S\x80+\xB8\xAE`w\x9F\x80:W(,p\xA5\xF8\xF4\x99,x\x9BYB\x98*&gt;\x98&amp;5#\x99%\x80\xE1\xE2sjR'\x90`\x96\x86\x88ϬI0P\x8CYB\x80\xCA\\x9E\xFB%ʉ\x8F\xB0\xC9\xE4\xB7\xE0\xBA\x80q\xDC}\xEA8\\xA1X\xB0\xC0\x9E\xF88\x9B\x8C\xAC\xCF,!&lt;-&gt;\xDD&amp;\x97n\xCD,!\x9Cv\x93K-\x99%\x80o\xC5\xDF\xE4\xB5@\xC8\xCBw\xA9\xDD\xDEF3KP\x99\xCB3`\x9F\xA3\xC0\xF1989\x80+\xB8\xAE\xE0*\x9F\xEFa\x9F\xBC\xFB\xE4\xCE70\xC1\xE1
+\xC5\xE3r\xEE/&gt;';\x80\xBC|\x87\xDB}q`\xB3\x844\x91\x93\xBF\x8B{\xE1\xFE\xB7[\xE6\xC0Lf        h$&gt;1'pG/\xDCw7\x98\xCC,!7\x9F\x9Ek\xE8\xE4\x85{\xE7\xEE\xB5\xF3\x99%\xA8\xCC\xE5\xB0\xCFQ\xE0[\xF1a\xBA\x86X\x96\xEBj\xDE\xF1\xCC\xDD\xF4?7\x9C\xDCz&quot;\x9F\x8F{\\xC0\xE2\xC3t\xCD-\xB9\xF5\xAC\xC2,! \x8B\xD0\xC9G\xA0w\xDF\x80\x85\x98%`1\xF1\xA19\xF9\xE8\xC7=x`-f        X@|VN\xF6͸
+,\xC7,!@e.π}\x8E\xC0\xCD\xC5\xE7\xE3\xE4|V\xE6\xBA\x80\xB8
+,\xE7\xD4\xA1\xC7\xE5\xCC\x9F\x89\x93͸\xAC\xC8,!a\xF1Q8y3Љ\xFB\xF1\xC0\xA2\xCC\x93\xAB\x9D\xB8+\xAC\xCB,!\x93ħ\xDEdD\xA0w\xE5\x80u\x99%\xA8\xCC\xE5\xB0\xCFQX@|\xD2M\x86\xE0\WpR\xFCƼ\x9BU\xC0;N
+z\\xC0y\xF1\x87\xE82-\xD0F\xFC\xAE\xBC\xDB\xF3\xC0\x9B\xCCp\x81\xF8Ss\x99h#~W\xDEMz\xE0}f        xQ\xFC1\xF9\xD2Y}c@'\xF1\xF3\xEE\xD3\xEF3K\xC0\xE2\x8FƗ\xCEm\xB6-t\xBF1\xEFn=p        \xB3\x84\x95\xB9&lt;\xF69J\x93ğ\x85/\x9D[ng\x80{q]
+\xC0\x8E\xF8]y7\xEC\x80\xAB\x9C \xF4\xB8\xA0\x9B\xF8\xC3\xEF\xA5s\xEF\xCDm\xC4\xEFʻm\\xC8,!ğv/\x9D&amp;\xDF\xC0&quot;\x82\xC7\xCA\xF4G\xE0J\xF1\xF3\xEE\xDC2K\xD0Z\xFC        \xF7\xD2\xE9\xF6\xA5\xAC#x\xB8Lt.\xBF1\xEF\xFE=p-\xB3\x84\xED\xC4i/\x9D\xB6\xDF\xC0R\x82G\xCC\xF4G\xE0\xF1\xF3\xEE\xE2\x973KP\x99\xCB3`\x9F\xA3\xF0\x84\xF83\xEC\xA5\xD3\xFC[XP\xF0\xB8\x99\xFE\xE8\ ~o\xDE\xED|`\xB3\x84\xB7h\xBDt\x8A\xB0^&lt;t\xA6?:\x88ߞwG\xC1,!\xC0\xAD\xC4T/\x9D\x9Al\x80\xE7O'\xE9\x8F\xC0\xBB\xE2\xCF+\xDC\xD71Kp\xF1\x87\xD3\xEBf6 \xC03\x82\xA7\x96\xF4G\xE0-\xC1\xA4\x98%XUlHb\xFD\xAC\xCB\xC68'x\x9AIt^7\xE76\xBC;\xFD@\x8AYB\x80\xCA\\x9E\xFB%\xA0\xA3\xD8`\xC4\xFA\xB9\x9B\xE0H\xF0\x94\x93\xFE\xE8\xBCn\xCA-\xA4?\xCFr\xC7\xE0;f        \xAA\x8B
+C\xAC\x9F۳\x95\xBE&lt;\xFD\xA4?:/\x9A\xFC\xEC\xC2`&gt;\xB3\x84\xC5 \xD6OO6\xC0\xBF\x82\xA7\xA2\xF4G\xE0X\x91\xE7\xD3\xFEC\xBF\x99%\xA8&quot;\xF8\xDCz\xF5\xF0\xE8*xZJt\xFE\x82\xB1\xFFL\xC3\xC3`2\xB3\x84I\xF1'\xD6\xEB\x80\xAE\xD2g\xA0 \x92ބ\xB7\x92\xBF\xDD\xF3\xC6\xF3\x8D9\xFF\x80\xDF\xCCT\xE6\xF2 \xD8\xE7(\xAB\x8A?\xA5^7qj:H\x9F\x8D.Hz\xAC'O\xE7\xB2|q\xF3\xFE\xDA|\xE7\xF0\xE5&quot;\xEF\ \xFDXz\xE1\xC0\xBF\xD2g\xA6 \x92ބu\xE5\xEF\xDD \xCE\xD0O
+\xB0\xCF,!\xC0(\xF1\xA7\xD1\xEB\xBE\x97&gt;K]\x90\xF4&amp;\xCBߠ\xC9e\xDC8d\x96\xE0J\xF1'\xD0\xEB\xCEI\x9F\xB1.Hz̐\xBF S5#6\xC0f        \xDE\xE4\xBCn\xE0y\xE9\xB3\xD7IoB\x80+\xE5ﶬ\x96k\xB7$\xC0yf        *sy\xECs\x94\x80\xA4\xF8c\xE6u\xC3HN
+@\xE93\xD9IoB\x80\xA7\xE5o\xA9\xDC*_ߺ\xED\xB7\x9Cw\xF8r\x91w\x8D\xFEH?W^8p\x9D\xF4Y키7!\xC0\xD7\xF2\xF7Mz\xE4\xF2\x8Dp\x92YB\x80=\xF1\xC7\xC9\xEB\xC6H\x9F\xE1.Hz\xDD\xE5\xEF\x8F\xF4Έo\xE0 \xB3\x84\x8F⏐\xD7
+\x8C\x97&gt;\xDB]\x90\xF4&amp;Z\xC8\xDF\x91o2\xEE\xCB\xD8g\x96\xE0\xA7\xF8c\xE3us\xA5\xCF|$\xBD        \x80\xFB\xC8\xDF\xE9\x90\xE73\xF4K\xD8a\x96\xA02\x97g\xC0&gt;G        xW\xFCQ\xF1\xBA\xA1*\xA7\xA0\x83\xF4Y\xF0\x82\xA47!\xB0\x9E\xFC
+\xB92\xFFܹ\xBF&lt;\xDF9|\xB9ȻF\xC0\xAD\xA4\x9F
+/\xA8!}F\xBC \xE9M\x95\xBFm!S2\xE7\xF8\xCC,!p\xF1G\xC2\xEBʘv\xFE\x9B\xF0\xCC\xDCn@5\xF1{\xFFϜ\x9D\xE03\xB3\x84\xC0=\xC5\xAF( x.\x9C\xF0'\xCDܒ@J\xFC~\xBF\x94̈́=\xE0Kf        \x80\xFB\x88?\xFA]7\x95&gt;\xFE\x93        \xE4\xCCm \x95\xBF\x97! f\xF4\x9E\xF0\xB3\x84\x95\xB9&lt;\xF69J\xC0O\xF1ǽ\xEB\x86;rj\xEAK\x9F\xFFN䛃\xE7\x85\xFF\x89\xECW&lt;+}\xB7B\xE4\xB9|\xE7\xF0\xE5&quot;\xEF\xE5\xC4\xC1\xAE\x98+}\xE6{%&gt;\xCB̯8/cB\xE4\xED\xEC0K\xAC!\xFE\xE4u\xDD\xC0,\xE9s\xDE5\x99\xF0\xE9f~)\xC0\x83\xFC\xDD\x91a\xD8g\x96\xA8+\xFE\xC0u\xE9\xC0`\xE9S\xDD\xC0\x8C\xFE\xBC\x93\xBF)h(Adz\x99%j\x89?g]:0L\xFA$75\xA3\xB7\xC0\xE4\xEFn,A\xA4L\x99%\xA8\xCC\xE5\xB0\xCFQ\x82\xFB\x88?[]:\xF0\xA7\xE0*\xE9\xD3[:_&lt;/\xFC\xFD\xD9/\x96\x93\xBES \xB3܎p\xC6\xE1\xCBE\xDE5\x86\x88?R]:p\xA9\xF4\x89\xAD\Fo\xA5\xC9\xDF/,!G@Z\xE6\xBB%\xC0If        \x80y\xE2OR\x97\$}J[ \xA3\xB7\xDB\xE4oJɯ\xFC\xA5_\xEE\xBD\xC7\x9Cg\x96+\xFEu\xE9\xC0{\xD2g\xB2U3zcN\xDE
+`\xBE\xFC\xF2^\xFA\xA5\xED\xCE p\x9EYB\xE0z\xF1\x87\xA6K^\x95&gt;\x87\xDD*C7\xEF\xFC}F\xC8/\xE0\xA5e\xEC\xEA٭,\xCD,!@e.π}\x8E\xD4V\xBAt\xE0&quot;N
+\xD0J\xFA\xECu\xF7|:x^\xF8˳{&lt;+\xBDJ\x97\x8E\xA9&amp;\xBEA\x96\xD8J@}\x87/y\xD7\xF8V\xFC\xE9\xD2\x80g\xA4\xCF[\xED2\xF4+\x98\xBF\xFF\xC0\xA1\xFCj\Zf!\xF1m\xB5\xEE\xA6\xEA0K&lt;'\xFEdt\xE9\xC09\xE93\x96\x8CMz\xFF\xA0\xAF\xFC\xAAXZ\xE6\xE2\x9B\xF1\x96[\x98\xCC,!p,\xFE4t\xE9\xC0\x91\xF4\xB9Jf'\xBD\xC7p\xF9կ\xF4K\xF1\x8D\xDCjk#\x98%\xBE\xBAt\xE0{鳔\xE4\x93\xDE\xB8\x89\xFCWZ\xA6\xB9\xF8\xF6\xF7\xEF0KP\x99\xCB3`\x9F\xA3׋?\xFB\:P\x80S\x94&gt;?IŤ\xF7JV\x92_\xC7J˰\xC3W\xAC\xEB\xD4\xA1w\x8D\xE0\xC6\xE2O\xA3\x97\xFC%}Z\x92e\x92\xDEU\xA8(\xBF^\x95\x96\xE1\xBE2`]f        \xA0\xA3\xF8\x93\xE9\xA5\xBF\xA4OH\xB2p\xD2;/1\xF9E\xA9\xB4 \x97\xF3U\x8B2K]\xC4T/\xDAK\x9F\x8A\xE4VI\xEF\xCE\x8C\x95_yJ\xCB0\x99\xAFX\x91YB\xB8\xB3\xF8s\xEB\xA5@c铐\xDC&lt;\xE9\x80k\xE4W\x98\xD22\xD4\xE1{\x96c\x96\xA02\x97g\xC0&gt;G        \xBE\x86\xBDt`qN
+\xF0\x9A\xF4\xE9G\xDA%\xBD\xCB\xF0\x84\xFC2RZ\x86%\xD8%\x80\xE5\x9C \xF4\xAE\xD4\xAA\xBDnh&amp;}\xE2q\xF9PN~\xAD(-\xC3
+\xD8U\x80\xB5\x98%\x80\x85\xC5r\xAF\xDAH\x9FrD\xBEH\xFA\x9F@_\xF95\xA1\xB4 \xF7f\xFFb\x96\xE0\xBDnh }\xB2\x91!\xB9߷\xF9\xD7\xD0G~\xE1'-Cg\xF6+`f        `\xF1\xE7\xDF\xEB\x80\xFBJ\x9FcdT:|\xF5\xFE\x81\xDC^~u']\x9F\xD9\xDF\x80U\x98%\xA8\xCC\xE5\xB0\xCFQ\xE2\xE6\xE2\xCF\xC2\xD7
+4\xE6\xD4\xC0\x8D\xA5\xCF.2$\xB7\xDCa\xC6}(\x80\x9E\xF2\xCBWixֹ]\xEBϭ\xFA\xFF\xFDO\xFB!0\xDB\xE1\xCBE\xDE5\x80y\xE2\x8F\xC6\xD7
+\xF7\x92&gt;\xAFȐ4مf~L\x80\xDBȯZ\xA5e\xE0Z'\xF7\xB7\x8F\xFF\xDB\xFE        \xCCg\x96\xC2\xE2O\xCA\xD7
+w\x91&gt;\xA3Ȑ\xB4ݩ\xB2\xA0\xB2\xFCbU\xBA\xA69\xB3~\xAEvZ`\xB3\x84j\xBEnX_\xFA\&quot;C\x92ޭ\xD9A\xF9e\xAA\xB4 Tpf\xCF\xFC\xFC\xFF\xB4?Ә%\x80I\xE2\xD1\xD7
++K\x9FEdHһ\xD51`\xB4\xFC\xEAT\xBA\x8A;\xDC]\xBF\xFC\xFF\xDB\xC9\x809\xCCT\xE6\xF2 \xD8\xE7(\xB1\x80\xF8\xF5u\xBCĩ\x81\xB8\xF4\xF9C\x86$\xBD[\xBD\xC2\xE6\xB8D~Q*]K{؍?ߪ\xFF\xEEֽ\x9D\xED\xF0\xE5&quot;\xEF\xC0s\xE2\xCF\xD7\xD7
+\xABI\x9F9dHһ\xD55l@\x80\xA7䗣\xD22Г\x9D2K\x88?n_7\xAC#}ΐ!I\xEFV\xA3ؤ\x9F\xE5W\xA1\xD25\xC0\xDF\xFC\xA3\x82\xCC\xC0\x8B\xE2\x8F\xDE\xD7
+\xE5\xA5O2$\xE9\xDDj*\xDBh+\xBF\xFE\x94\xAEN\xF2\xEF2KO\x88?\x89_7\x96&gt;IȐ\xA4w\xAB0[\xB8\xBD\xFC\xCASZx\x9FJ@\x90YB\x80\xCA\\x9E\xFB%&amp;\x89?\x98_7\xC0tN
+\x9C\x91&gt;=Ȑ\xA4w\xABr|\xC0=\xE4\x9C\xD25\xC0\x85&gt;ߪw\xEBH9|\xB9Ȃ\x80\x8E\xE2\xE9\xD7
+ŤO 2$\xE9\xDDj\xBE`!\xF9u\xA6t
+ЍYB\xF8#\xFE\xCC~\xDDPF\xFA\x94 C\x92ޭ\xB8F~\x85)]\xF0\x9BYBZ\x8B?\xBF_7\x90&gt;Ȑ\xA4w+ޒ_XJ\xD72K@;\xF1\xC7\xF9\xEB\x80\xA8\xF4i@\x86$\xBD[\xF0\x8A\xFCzR\xBA\xE0f        *sy\xEC{&lt;&amp;8J\xEC\x88?\xDD_7\xC0R\@\xDEI\xFA C\x92ޭ\xF8\x9A\x83'\xF0\x9D\xFCJR\xBA\xB8w\x9F\x80:W(,\xE5x\xE4|R\xFCI\xFF\xBA`\xAE\xF4q_\x86$\xBD[pV~
+)]0\x99YB\x80ex,}F\xFC\xC1\xFF\xBA`\x96\xF4_\x86$\xBD[p \xBFt\x94\xAE\xA8\xC3,!@u]\x8A\xBF\xB0n/}\xAC\x97!I\xEFV|+\xBFh\x94\xAE\xA8\xCF,!@]l\xB0n)}\x94\x97!I\xEFV&lt;ʯ\xA5k\x96f\x96\xA02\x97gЗ'\xDF_\x8A\xBF&quot;\xB0n\x80\x95鏾\x80\xF4\xF1]\x86$\xBD[`\xF5
+5嗈\xD28r\xF7        \xA8\xE3\xD4\xA1 \xC04\x9E\x8B?\x88\xBF.\xB0t\x80[G\xD2\xBD\x9C\xF4a]\x86$\xBD[\x90^J\xE3tc\x96\xA0O\xCD\x8Bo\x87\xA5\xDCN\xF0\x98\x92\xFE\xE8a\xE9\xBA Iz\xB7\xE8+\xBF&amp;\x94\xAE\xE0\x83YB\x80*\xE2Oӳ\xCF\xD4\xE3|\xE9\xB7&lt;\xBE\xA4?\xFAT\xE9C\xB9 Iz\xB7h'\xBF\x94\xC6\xE0\x90YB\x80\xBC\xF8\xF3\xF5\xD4\xF7\xF8\xC7\:@\xC1cM\xFA\xA3\x8F\x92&gt;\x82ː\xA4w+\x80^\xF2\xEB@\xE9\xDEa\x96\xA02\x97g\xD0B\xFC\xB9\xFB\xE4\xE7\xF1\xF1ϵt\x80\x96\x82ǝ\xF4G\xBFF\xFA\xD8-C\x92ޭ\xB8\xABo\xF8R~\xF9'\x8Dp'\xEE&gt;u\x9C \xB4`$\xFE0~Σ\xFA\xF8Y:@{\xC1cP\xFA\xA3\xBF&quot;}Ԗ!I\xEFVw\x96_\xF5I\xE30\x99YB\x80\x98\xF8C\xFA\xA1\xF2\xE3\xF9\xD2\xF8K\xF0x\x94\xFE\xE8\xC7\xD2\xC7k\x92\xF4npO\xF9\xF5\x9Et
+u\x98%Ȉ?\xBC\xF1\x98?\xFE\xA7.\x80o\x8FM\xE9\x8F\xFE(}\xA4\x96!I\xEFV\xB7\x92_\xE6I\xE3P\x9FYB\x80\x8C\xF8C\xFD\xAB\xFF\xC7\xFF\xBC\xA5pB\xF08\xD5\xF6\x83˸dw*\x80{ȯ\xEE\xA4qX\x9AYB\x80\xCA\\x9E\xC1m\xC5\xF6\xBF\xF9r@\xFC\xEFY:O
+\xB3\x9A|L\x97\x99\xBB\xBC\xC3\xEA\x80\x9A\xF2\xEB:\xE9\xAE\xE5\xEEPǩB \x80 \xC5_\x90\xF9xC\xF0\xF8u\xCB%\xE32n\x87\xB8\xB1\xFCrN\x80n\xCCL3@\xA6\xE0\x84\xF4\xA1\xEA\x82t\xF8\x8C\xF2e&amp;\xFC\xB8\x8D\xFC*N&gt;\x98%\x98*\xFEҀ
+\xC0\x93҇\xAD r\xBFO$\x9F\xF9\xD7\xB0\xA2\xFCN\x99%\x98'\xFE&amp;\x81\x8C\xC0҇0\x91/\x92\xFEgP]~\xE5&amp;\x8D\xEF0KP\x99\xCB3\xB8\x9B\xF8KrU.\x92&gt;\x9C\x898\xA9\xC1OV\xDF|\x96_\xB0I\xE3p3\xEE&gt;u\x9C \xB4`x_\xFC\xE5y3\xA4m\xD2.\xE9]\xA0\x9C\xFCRM&amp;3K0I\xFC\xA5y!\x83\xA5sr\xF3\xA4wp\x80*\xF2+4i\xA8\xC3,!\xC0 \xF1\x97\xE4|&amp;J\xF2\xE4VI\xEF\xCEa\xF9\x85\x99\xF4\xD4g\x96`\x86\xF8K \xB2\x80\x90\xF4\xE1ONz\xE7\x88\xC9/ɤq`if        *sy\xF7\xBFA&gt;\xA0\x80\xF4\xA1P\x96IzW\x85\x9B\xB3\xFA((\xBF\x93\xC6\x80k\xB9\xFB\xD4qj\x80Ђ\xE0\xA3_h\x88\xBFW\xB1P\x8AI\xA5b\xD2{%\xC0&lt;\xF95\x98\xF4tc\x96`\xB8ѯ8\xC4߷(\x80\xC2҇H\xC9'\xBD̐_}I\xE3\xCC 7\xFAՇ\xF8\xAB\xB0\x88\xF4\xE1Rf'\xBD\xC7 \x94_tI\xE3g\x98%k\xCE+\xF15*`A\xE9C\xA7\x8CMz\xFF\xB8^~\xAD%\xBD\xBC\xC3,!@e.\xCF\xE0F\xBE-\xF1\xDFѠm\x97&gt;\x8CʕI\xEFM\xC0묾\xE4\x97X\xD2;p3\xEE&gt;u\xAEP,X\xDE2\xE7]\x8A\xF8\xBB\xDE#xI\xFA\x90*\xAF'\xBD\xEF\ \xBF\xB8\x92\xDE&amp;3K0֜7-\xE2\xEF|x\xA7\xE0\x9C\xF4\xF1T^Lz\xC7x]~M%\xBD\xD4a\x96`\xACi\xEFa\xC4\xDF\xF1\x8A        \xC0W\xD2Sy%\xE9\xBD\xE0i\xF9\xA5\x94\xF4\xB0\xB3\x84cM{K#\xFE\xB2\x887N~II幤\xF7\x80\xE7\xE4\xD7Q\xD2;\xC0\xD2\xCCT\xE6\xF2 \xEE`\xCA [\xFC
+o\x9F\xBD\xA5\x8F\xA4r6\xE9=(\xCA\xEA\xA8&amp;\xBF|\x92\xDE\xAE\xE5\xEEP\xC7\xF1\xF4\xA0 \xC0;\xE2\xAF}\xD4 \xC0\xE2҇Q9\x95\xF4n\xB0'\xBFj\x92\xDE2K0P\xFCu\x90RXY\xFA*\xC7I\xEF#_˯\x97\xA4w&gt;\x98%+\xFE\xA6\x88\xF7T^\x92&gt;\x80\xCAA\xD2;\xC0?\xF2\xCB$\xE9\x803\xCC\x8C\x89\xC4k+\xA7\xA5\xA0\xF2mһ\xC0O\xF9Ց\xB4\xC0;\xCCT\xE6\xF2 \xEE \xFEr\x89WX\xBE\x97&gt;z\xCA\xD7I\xEF@;V\xDF\xC0\x83\xFC\xBAHz\xB8w\x9F\x80:N
+Z\xB0\xBC,\xFEމ7Z\xFE\x92&gt;t\xCAI\xEF@S\xF9\xE5\x90\xF4\xC0|f        Ɗ\xBF\x92\xE2e\xA0\xB7\xF4\xB1R\xFEIzw\xDA\xC9/\x84\xA4}\xEA0K0V\xFCU/\xC1\xFD\xA4\x8F\x8F\xF2'\xE9h$\xBF\x92\xDEX\x82YB\x80\xB1\xE2o\xB1x?h }@\x94\x9FI\xEF\xC0\xFD\xE5W&gt;\xD2&gt;K3KP\x99\xCB3\xB8\x83\xF8\xDB-ޛ\xEE(}\x94\xFF\x92\xDE.`\xF5
+\xA5\xE4\xD79\xD2&gt;\xD7r\xF7        \xA8\xE3\xD4\xA1 \xC0;\xE2\xEF\xBEx\x9FX_\xFA\xA8'\xDF&amp;\xBDk\xABʯg\xA4w2K0\\xFC\xB5\xAF\xDAkJ\xE9\xE4Tһ        PZ~\xD1&quot;\xED\xC0\xB3\x84\xC3\xC5_\x97\xF1
+\xB0\x88\xF4\xA1M^Iz\xAF\xF2\xF2+i\xCE0K0C\xFCe\xAF\xE6%\xA5grA\xD2;0O~&quot;\xBD\xC0\x9B\xCCT\xE6\xF2 \xEE#\xFE\x9E\x8D\xB7v\x80\xD2\xC7/\xB9&gt;\xE9}
+\xE0V\xDF\xF0\xB7\xFC2C\xDA\xE0f\xDC}\xEA85@h\xC1\xF0\xA6\xF8\xFB7\xDE\xE6r\xD2\xC7,\x9B\xF4\xFE\xBC&quot;\xBF\x96\x90\xF6`&gt;\xB3\x84\x93\xC4\xDF\xCE\xF1\x960K\xFA8%S\x93\xDE\xDD\x80=\xF95\x83\xB4u\x98%\x98$\xFE֎\xB7\x80a\xD2&amp;I&amp;\xBD\xF7\xE9U\x81\x88\xA5!\xC0&quot;\xCC\xCC\xA7\xC7[A\xC0u\xD2\xC7#\xA9\x92\xF4\x9E]\xE4\xAF\xFE\xA5}X\x9DYB\x80\xCA\\x9E\xC1\xDD\xC4_\xF7\xF1\xC2\xF0\x86\xF4H\x8A&amp;\xBDc\\xC0\xEA\x80R\xF2W\xF9\xD2&gt;\\xCB\xDD'\xA0\x8ES\x84,W\x89\xBF        \xE4-&quot;\xE0\xB4\xF4AG\xD6Hz?\x80%\xE5/\xE5\xA5}h\xC8,!\xC0T񗄼`|/}\x94\x91%\x93\xDEm\xA0\xAE\xFC\xF5\xBA\x88E1K0O\xFC\xCD!o\x9F\xA4.\xED\xB2\xD6wt\xF9\xFE\xB7\x94_iH\xFB\xC0f        承T\xE4m$\xC0\xF0\xE0\xF4,\xFD\x95\xBD\xFF\xC7\xC0m\xE4W\xD2&gt;\xF0&amp;\xB3\x84\x95\xB9&lt;\x83[\x89\xBFl\xE4-%\xE8*}i\x97;}\x83\x97\x80\x9A\xAC\xBE\xF8\x90_Q\x88\xB8\xF4\xB8w\x9F\x80:N
+Z\xB0\xBC)\xFE\x92\xB7\x97\xA0\x93\xF4Q\xA3]n\xFC\x85\x8E\xFEh\x90\x92_HH\xFB\xC0|f        \x86\x8B\xBF\x99\xE4\xAD&amp;h }\xB0h\x97&amp;_\xEȄ        \x97˯\xA4}\xA0\xB3\x84\xC3\xC5_Z\xF2\xB6\xDCQ\xFA\xD1.=\xBF\xEB\xE0\xA7\x80\x93\xF2\xAB\x8B'a\x96`\xAC\xF8\x9BL^\x81\x82\xBBH\xDA%\xFD\x85\xFF\xC7F\x80+\xDFb\x91\xDBVg\x96\xA02\x97g\xB0\xBC\xF8N^\x8D\x82\x95\xA5\xED\x92\xFE¿e\x9B\x8Cf\xF5
+PG~a \xE2\xCC\xC0\xD5\xDC}\xEA85@h\xC1\xF0\x82\xF8kO^\x96\x82\xA5\xBD\x92\xFE\xB6ϲ\x89\xB8\x99\xFCb@\xC4r\x80\x96\xCC\x8C#\xCAKT\xB0\x82\xF4?\xFBvIᯰ\xB9XT~ \xED\xFC\xCD,!\xC0\xF17\xA5\xBC\U\xA5\xFF\xA9\xB7K\xFA \xBF\x80\xAD@e\xF9\x8B~k8\xC7,!\xC0\xF5\xE2\xAFOy\xDD
+*I\xFF o\x97\xF4~=\x80\xB8\xFC\x85\xBE\x88
+\xBC\xCD,!@e.\xCF`I\xF1ת\xBC\x83\xA4\xFFm\xF7J\xFAۮ\xC5$\xC0 &lt;&gt;\xE4\xAF\xEFE\x9Cx\xB8w\x9F\x80:W(,O\x88\xBFk\xE5\xAD,I\xFF\x93n\x97\xF4 \xCB_ЋX\xD5@\x82YB\x80+\xC5_\xC3\xF2\x9E̒\xFE\xC7\xDC.\xE9/\x93\xBF\x88\xB1\x92\x80b\xCC\f\xDA\xDBW\xDE܂\x84\xF4 \x98\xED\x92\xFE\xC2`
+\xF9kw 8X\x84YB\x80kTx%˪
+\xAE\x96~\xB3W\xD2\xDF6ԕ\xBF^\xB1h\x80\xF5\x99%\xA8\xCC\xE5,#\x{12A5A3}\.\xFDbf\xAF\xA4\xBF\xED{rjx\x81\x83'PD\xFE]\xC4Ip\xF7        \xA8\xE3p\x85b\xC1p\xCC+\\xB0\xAC\xF4K\x9A\xED\x92\xFE\xC2 /].bq-\x99%x\x97\xF7\xBA`)\xE9\xB75\xDB%\xFD\x85@F\xFEZ\Ă \xF8\x97YB\x80\xB7x\xE5 V\x90~y\xB3W\xD2\xDF6\xF0\xEC\xDB떣&lt;\x92P\xBF\xFFKW\xF7\x97u\xCB&quot;/`,鄤\xBDW\xFC\x98\x98\xE9vb\xA8\xC1+0N~\xFEV\xEA\xAD\xAE\x90%\xB8\xCFT\x95\xDE\xE2ܫ\xD2W\xBAˏ\xDDJy\xF6^&amp;KP\x99\xF1 \xAAKK\xC0\xE9\x8Dν*}\xB5\xF9\x8E\x9F\x80\xDC&lt;\x81\x9F\xF2\xA3\xB6R~s`E\xDE&gt;u\x9C&gt;\xA1x`\xF8\x9C\xBD1\x88JownW\xE9 m\xE4gk\xA5\xDE
+`&lt;YB\x80;\xEC\x93ABz\xD3s\xAFJ_mxI~\xA4V\xCAsP\x8C,!\xC0\xD3\xEC\x99\xC1(\xE9\xADϽ*}\xB5\xE0i\xF91Z)\xCFR\xC0&lt;d        \x9Ec\xFF zJo\x80\xEEU\xE9\xAB
+\x97\xE4Gg\xA5\xDE
+`v\xB2\x84\x95Ϡ\xA2JKi\xEE, \xBD
+\xBAW\xA5\xAF6#\xF8i\xB8\xC1\xCD\x8A\xC8O\xCCJ\xB9\xE5x\xFB\xD4q\xFA\x84\xE2\x81\xE0/\xFBj\xD0Bz3t\xAFJ_m\xF8G~DV\xEA\xAD6$Kp\x95%6\xB8+\xBD&quot;\xBAW\xA5\xAF6\xA4gb\xA5~\xEF\xC9\b\xB9
+\x9E\x91^ݫ\xD2W\x80}\xE5\xA7a\xA5&lt;\&amp;Kp\x89\xA57\xF8Vzut\xAFJ_m\x{1927C0}\x95z+^$KP\x99\xF1 \xAA\xA8\xBA        \xE7.AVz\x8Dt\xAFJ_m\xA6\xE1\xA7\xE07O\xF8!0\xA8\xCA\xC0z\xBC}\xEA8}B\xF1\xC0\xECΒ\xFC\x96^)ݫ\xD2WVv{ 7\xBF\xB3\x80\xFC\xA4\xAB\xD4[0\x9E,!\xC0wlα\xB7\xF4n\xE9^\x95\xBE\xDA\xB0\x8B\xDBø)\x9E\x89\xE4\xA7[\xA5\xDE
+\x80Rd        \xBEc\xA3\x8Eͤ\xF7L\xF7\xAA\xF4\xD5\x80ݞ\xCA\xEF\xFD\xB7\xA0\xAB\xFCD\xAB\xD4[0 YB\x80/ٴc\xE9\xB5Ӎ*}\xA9\x80;\xB3\xF9\x8D\xFF
+\xB4\x95d\x95z+f'KP\x99\xF1 \x92f\xD8\xC0s\x97\xE0\x9E\xF4\xFE\xE9^\x95\xBE\xDAl\xC7O\xC07\xBE\xFD\xD9\xFE\xF2\xC6\xF9UA[\xF9\xC9U\xA9\xB7\xA09\xAF\xEE\x80:N\x9FP&lt;\xB0;\xB2\x99\xC7Zһ\xA8{U\xFAj\x9F\xBB\xF2C\xFE\xEC\x9E\x95\x9FV\x95z+\xF6$Kpdc\x8F\xF9\xA5\xF7R\xF7\xAA\xF4\xD5\xCE]\xFFi\xBF\x{1DF1C3}\xFC\x90\xAA\xD4[\xC0{\xB2\x84G\xD6\xF8\x98SzGu\xA3J_j\xE0i\xFD&amp;v\x96L\x95z+\xB8H\x96\xE06\xFC\x98Gz_u\xA3J_j\xE0%\xBDg֖F\x95\xFA]\xF0&quot;YB\x80ʌg0\xDAlk\xEE\xBBI/\xAE\xEEU\xE9\xAB
+7\xF9i83:\xB0\x80\xFC\xAA\xD4[\xB0\xAF\xEE\x80:N\x9FP&lt;\xB0\xBB\xB0H=\xE9%ֽ*}\xB5\x80\xF6FL!?t*\xF5V!K\xF0\x8B5AjH\xEF\xB4nT\xE9K
+t7r\xB6\xA0\x8E\xFC\xA0\xA9\xD4\xEF\x80Rd        \xFEcw\x90\x9C\xF4r\xEBF\x95\xBE\xD4\xC0P\xE3\xA7
+\xCBϗJ\xBD\xCCB\x96\xC0Z!\x83\xA5]7\xAA\xF4\xA5bR\xF3\xCD\xE5gJ\xA5~\xCCN\x96\xA02\xE3\x8C0󮡻\xC4,\xD2\xAF{U\xFAjC\x98\x9F\x80\xE9\xF47\xE4\x87H\xA5~4\xE7\xD5=P\xC7\xE9\x8A`qv\xE9#\xBD\xBBQ\xA5/5PNv:\xE1\xF9\xD9Q\xA9\xB7\x80=\xC9[\xB3\x9BH;\xE9e؍*}\xA9\x80\xD2\xF2\xC3\xCA\xF6\xD3J\xFC\xFC+\xF5\xA7\x80\xF7d        \x80}\xD9Y\xE45\xE9\xAD؍*}\xA9\x80i\xE4\x97ߵ\xBC\xF8V\xEAO\xC9\x9B\xB2\xCB\xC8-\xE9%ٍ*}\xA9\x80\xF9\xE4'\x98k
+\xF1Ө\xD4\xCF^'KP\x99\xF1 zYe\xC7\xD1]b\x80\xF4\xC2\xECF\x95\xBE԰?
+\xC0\xCE\xF2Ϳ5\x91\xF8\xB9R\xEAO\xC0z\xBC\xBA\xEA8}B\xF1\xC0,\xC8\xE2#_Ko\xCEnT\xE9K
+,%?\xDC|V\xA5\xC4φR
+\x88\x90%\xB6c'\x92\xA5\xB7h7\xAA\xF4\xA5\x96\x95t\xBE.gC\xED\@)\xB2\x84\xC0^,J\xF2&amp;\xBDQ\xBBK\xA5\xAF3\xB0\x85\xFC\xD0sV{~k\xB5O\xB3\x90%6b\x81rc\xE9\xEDڍ*}\xA9\x80\xED\xE4\xA0\xB3Z\xF8\xAB\xA9}
+X\x80,!@e\xC63hl\x86\xC5\xCA\xE0rh\xAB\xAFPDz\xD3v\xA3J_j\xE0H`7\xF9a\xE8Z\xAD\xF1-\xD44\xE7\xD5=Pǥ\xA1`\x93,\\x97F[}\x85\x94\xF4\xCA\xEDF\x95\xBE\xD4\xBF\xE4#\xA5\xE6,`O\xB2\x84\xC0\xE6Y\xC4 \xEE\x936\xFCä7pw\xA9\xF4u\xF8D~HR\xAAv\xC8\xEB\x9BjA3\xB8j\xDA\xF6\x8Bt\x92\xDE\xC6ݥ\xD2\xD7\xE0\~fR\xAAF\$K\xACo\xAA\xAD\xCD\xE0
+j\xF3\xEF\xD2Dz-w\xA3J_j\x80'\xE4\x87'\xA5\xC6\xC0\xEBd        *3\x9EA\xB3ms\xB7S{|\x9D\xD2+\xBAU\xFAR] \x81\xE4)\xA5\xBA\xB0\xAF\xEE\x80:.=\xB0\x93\x9Ap\xCB3\xB8\xB5\xDA\xE3\xEB\xD4\xFF\xD6[U\xF0\xB4\x92\xAA\x94z\xB9&quot;d        \x80e͹\xFD\h\xED\xF4\x8D\xAA}ͭj\xE45\xA3\xEB\xFC\xD4\xFB\xF3\xD5VP\x8D,!\xB0\xA6i\xB7B\x83\xBB\xAE\xFD\xBET\xF6{\xEDV]\xAF#@V\xD7Aj\xC0\x9FPK\xC0,d        \x805M\xBB*܁]\xE6\x8B\xECVm/@Y]\x87\xAA1E\xCD[ \x90%\xA8\xCCx7ͼE\\x8F\x9D\xFA෪ׯ\xB00$\xB0\xB0\xFE\x93֯;\xA5ڹ\x9A\xF3\xEA\xA8\xE3\xF4        \xC5 0\x99\xC9WK\x83k\xB3s\xEDV\xD5\xFC\x9F\xC0\xA4\xBAN]\xFE\x84*R{\x92%\x96R{\xE54\xBD0\xAB\xA6\xA9&amp;\xFF\xDF\xB0\xAA~sX\xD7W\x83 \x80YB`)\xB5WQӻ\xB4\xAAt\xBD\xFE `\x9Df\xB2~\x9F\xAC\xFA\xC9\xEB(\xBF\xA2\x9AޱU\xB5\xEA\xF5Q;\xCB\xCFsj`\xF0:YB\x80ʌg\xF0\x84VW\xD3\xEB\xB7*\M\xFE|\xCF        \xEC&amp;?\xE4\xA9v\xB0$\xAF\xEE\x80:.=\xB0\xC5M\xB2Қ\xDE\xCCU\xA3\xABտ\xBE\x91\xFBԓ@\x84,!\xB0\x82I\xF6\\xD3\xBB\xAA{5\xFC\xD7\xC0u\xF9AP}(\xAA\x91%\xA67\xCF\xFEkz\x99Wu\xA9\xB6\xFFHxJ~ܾ\x98\x85,!0\xB7\xA9\xF6b\xD3K\xBE\xAAM\xB5\xFDW\xC0m\xF9\xD1p\x9B`\xB2\x84\x95\xCF\xE0\xC4l\xFB\xB2\xE9\xFD_u\xB3\x9A\xFFK\xE8\xC7        \xEC#?&amp;.W\xF4\xE0\xD5=Pǥ\xA1\xA0\xA0        \xF7hӫ\xC1\xEAj\xF5\xB8\xFA\xB4\x92\x9F'/\xF6$K\xCCj\xC2\xE5\xDA\xF4ʰ\xFA\xB2:]q\x9A\xCBώ\x93\xC8S\x9As\xEF6\xBDM\xAC\xFE\xA9NW\x80~\xF2Cd\xBD\x80\x8Bd        \x80\xF9L\xBB\x8C\x9B\xDE2޽\xFA]Y\xC8\x94\xB9\x80\xD7\xC9Tf&lt;\x83O̼\xA4\xDB\xF6X\xBC\xBFK䷛+V׫        P\x93XR~\xB2R,ɫ{\xA0\x8E\xD3',@-3/\xEF6?\xE2~\x9F&lt;i\xF5\xBE\x82 \x961\xFB\x8C'K\xCCd\xF2\x8D\xDE\xDD\xF5ç\xA8\xDEW
+\x80\x94\xFC\xAC٭`&lt;YB`\xF3\xAF\xF3v:\xF4\xAE^\xB0\)\xB2\xF2Cg\xCF\x80YB`K\xAC\xF3\xF6\xFB]?&lt;^c\xAE\xE4\xA7\xCF\xCE)\xB2\x84\x95\xCF\xE0\xAF%\xD6y\xD3k\xCB\xD3԰+\xB0$0\xB5\xFC$ڹؐW\xF7@\x97\x84X\x80\xACU\xD6yӛ\xCBuk\xE4U\xA0\xA0\xFCH:\xA4 H\x96\xA8n\xA1u\xDE\xF4\xE6r\xADy\xE6(+?\x98\x8E*Ȓ%J[k\x9D7\xBD\xBC\xAE\xC1g\x80\xFA\xF2C\xEA\xA8\x808YB\xA0\xAE\xE5\xD6y\xD3\xFBˣk\xFC`\xF9iu`@\xB2\x84\x95\xCF\xD8\xDDr\xEB\xBC\xE9\xE6\xEE9\xAB\xBCg\x80\xEAˏ\xAD\xC3 \x80\x9Dyu\xD4q)@\xE8\x81o\xC5u\xDE\xF4
+s\xFB\x8A\x9CF\xE6\x95a\x87!KT\xB4\xE8:oz\x8B\xB9M\xA5\xCES\xCB\xB2\x89\x80:d        \x80r\xD6]\xE7M/27\xA8\xE0\xD9`R\xF9)6TP\x8A,!Pκ\xEB\xBC\xE9]\xE6\x95=\x81L'?\xC2\xE6
+J\x91%\xA8\xCCxƎ\x96^\xE7M\xEF27\xA8\xEC        \xE0\x94\xA8#?\xBCF ~\xF2\xEA\xA8\xE3R\x80\xD0 0\xC6\xEA\xEB\xBC\xE9u\xE6\x95&gt;\x85\xCC!?\xB9F
+\x92%\xAA\xD8`\x9D7\xBD\xD1ܠҧ\x80\xEA\xF23k\xBA\xA0&amp;YB\xA0\x84=\xD6y\xD3K\xCD
+*}
+\xA8+?\xAD\xD6(\xA8I\x96(a\x8Fu\xDE\xF4Rs\x83J\x9FB\x8Aʏ\xAA5
+ʒ%\xA8\xCCx\xC6.\xB6Y\xE7M\xEF57\xA8\xF4)\xE0\x84/?\xA4~\xF1\x90\xFA\xBB\xF0\x9EW\xF7@\x97\x84X\x80~vZ\xE7M\xAFT7\xA8\xF4)\xA0\x90\xFCxz\xF6\x90\xFA\xBBP\x90,!\x90\xB4\xD3:oz\xA5\xBAM\xA5\xCF&quot;U\xE4g\xD3 \xE3\xF6\xAF@)\xB2\x84@\xD26\xBB\xBC\xE9\xAD\xEAf\x95&gt;\x91\xE4\xE5\xA7\xD2gf\xFF\xF8@\xB2\x84@\xCC6\xEB\xBC\xE9\xC5ꖕ&gt;\x97$\xE5\xE7\xD1[\x83\xFC\xA0YB\x80ʌg\xACl\x9Bu\xDE\xF4bu\xE3J\x9FNN \x81~\xF2\xC3\xE8 S\x85c`O^\xDDu\
+z`ڪ\xB3R\xDCYz\xB7\xBA}\xA5\xCF(\xF91\xF4呿Α@\x8A,!Pj\xAB\xB8\x9B\xF4zu\x97J\x9FT\x86\xCA\xA0\xEDF\xFE\xEB\x9F\xFC\xF3\xE8w$!K\x8CVs\xB1\xB8\xB5\xF4z\xF5\x9DJ\x9F3j\xC9O\xA8\xAD\x87\xFD\x8B\xFEx&lt;\xF7\x9F\x80)\xC8C\xDF-n$\xBDa}\xB3ҧ
+\x80*\xF2\xB3i\xB7I\xFF\xCA\xE7l\xAB&gt;y\xC0d        *3\x9E\xB1\x9AY֋_\x93^\xB2\xBE_\xE93@H\xE0E\xF9\xA9\xB4\xF3\xA4\xFF\xE9\x87\xBCY~\xF6\xBF)\xF8\xF0\xC0\xBC\xBA\xEA8}B\xF1\xC0\xB41\xD1z\xF1 \xD2K\xD6/U\xFA\xE4\x96I\x87\x8C\xF9\xA7\x9F\xFF\xE9\xFF\xBE\xDE\xC3&lt;G\x96d\xC6%\xE3'\xA5\xF7\xAC_\xAD\xF4\xF9 &amp;?\x8C\x8E\xF0\xBF\xFF\xF7\xFEOP\x9C,!0\xC2\xD4{\xC6פW\xADT\xFA\x90C\xEB
+\xF8\xF1\x80d        \x80\xEE\xD6\xDE3~\x93^\xB5nS\xE9\xB3\xC0h\xF9\xB4\xE2t_\xE50\xA0-YB\x80ʌg\xAC`\x83U\xE3\xF4\xB6u\xB3J\x9FH0@\xE5\xA7\xCFJ\xA3\xFDǛ\xA5\x9B'\xADxu\xD4q\xFA\x84\xE2\x81xɪ\xDBƿ\xA5\xAE[V\xFA\0B~\xEE,:\xDA\xFFU\xEDx\xA0        YB\xA0\xA3\xD5\x8E\xD3 ׍+}:\xE8.?t\x96\xEA?Q\xF3\xA8\xE0E\xB2\x84@/\xAB\xEF\xA7w\xAE\xDBW\xFA\x8C\xD0Q~\xDC,7\xD1\xC0^d        \x80.V_;N\xAF]w\xA9\xF4I\xA0\x97\xFC\xACYn\xA2\x80\xED\xC8Tf&lt;cbK\xAF\xD7        \xF7\xB9Kp\xE0\xA78\x88g\xEB\x8D\xF3\x9Fp\xF3\xA0o\x9F\x80:N\x9FP&lt;\xB0O[z\xF9\xB8N\x90\xBE\xCF \xE4`w\xB2\x84@cK\xEF 0\x85xl\xB0\xD8 \xC8M\xAD\xBE,H@q\xF1\xCC`\xBD)\xF8\x8F,!\xD0\xCC\xEA+Ȃ\x84T\xCF \xD6\xE1\x80\xBFd        *3\x9E1\x99\xA5\x91k        \xDD%8\xF0\xD3ۊ\xC7\x8B\xCD\xEF\xCFq\xF3\xA0o\x9F\x80:N\x9FP&lt;\xB0\x97,\xBD\x88\3H?\xA4\x80kd        \x80\x96\xDEE$\xA0\xA6xf\xB0\xD8\xE4|G\x96x\xD5\xD2\xEBȂ\x84\xD4\x8F
+\x9B\xDC\x80\xB2\x84\xC0\xAB\xD6]G$\xA0\xA0xf\xB0\xD8\xD8\&quot;KP\x99\xF1\x8C        \xAC\xBB\x94&lt;E\x90\xD0]\x80?
+\xB0\xB6xf\xB0\xD8\xCCތ\x9B'\xFDx\xFB\xD4q\xFA\x84\xE2\x81\xF8ҺK\xC9\xC36\xAF\x83\xDF\x80\xB9\xC43\x83\x95v\x98F\x9DȞ,!pӺ{ɂ\x84\x94\xCF V\x9A\xD6`&amp;\xA5&quot;{\xB2\x84\xC0M\x8B\xAE&amp; PG&lt;3XlZ\x80\x99T\x8B\xEC\xC9w,\xBA\x9D,H@\xF1\xCC`\x999\xE6S0\xB2'KP\x99\xF1\x8C\xA2]P\x9E1H\xE8.\xC0\x81\x9FXC&lt;3XfH\xC4\xCD\x80~\xBC}\x80m\x9D&gt;\x8C.\xB8~HX\x80\xFF,\xBA\xA3&lt;c\x90\x80\xF5\xC43\x83\x95\x86t\x98U\xCDȞ,!\xF0\x84Ew\x94        \xA8 \x9E,3\xA1\xC0\xC4\xCAF\xF6\xCAPъ\x9Bʂ\x84\xC4\xC53\x835fsXA\xD9\xC8^\xD9\xCAYqYY\x90\x80\xACxf\xB0\xCCl+x6\xAF'K\xC0O\xC63
+YqYy\x81 \xA1\xBB~`.\xF1\xCC`\x8D\xC1&lt;\xCF\xCD\x80~\xBC}\x80\xAD\x9C&gt;d\x9F \xCAPȊ\xFB\xCA         \x98W&lt;3Xc*\x80u\xDC \xCA\xB5,\xB7\xB5,H@P&lt;6X`$\x80\xD5\xC8\xD3[nkY\x90\x80\x94xf\xB0\xC0&lt; \xBA$\x94%\xAAXnqY\x90\x80\x88xf\xB0\xC00kz%H(K\xC0O\xC63–\xDB]^/H\xE8.\xC0\x81\x9F\xA8),0\x8C\x97\xE6\xE6        @?\xDE&gt;\xC0\xF2N\xC7\xFE:\xCFe \xC8[kwy\xBD !\xF5\xC53\x83&amp;qX\x99,!0\xBD\xB56\x98        ,\x9EL\xCF\xE0\xB0\xBE׃\x84\xB2\x84@\xD8ZK̂\x84 \x8F
+\xA6gpX_\x93 \xA1,!\x90\xB4\xD6\xB3 !#\xC53\x83\xE9vqīٓ%\xA8\xCCxF\xC0Z{\xCC\xCB        \xDD%8\xF0\xD3A\xF1\xCC`z\xFA\x9E\x98\x9B'\xFDx\xFB\xAB\xBA2\xED\x9F\xFEg?\&lt;,\xB0\x8B\x85\xB6\x99\x97PG&lt;6(H\xC3\L\xE1U\x8B\xEC\xC9-\xB4\xCD,H\xC0\xF1̠!\x8Ct=\x82W-\xB2'K\xFC\xB2\xD0B\xB3 !\xC43\x83R\x840\x9E,!0\xB7\x85v\x9A         $\x80\xF1\x9E\xCA\xDFU\x8B\xEC\xC9Tf&lt;c\x9CU֚w \xBAKp\xE0\xA7\x88g\xA5\x9Bs\xF3\xA0o\x9F`%\xCFN\xF8\xA7\xFF\xF9\xC1\xCF\x8F\xC7 \xACl\x95\xCD\xE6݂\x84 \xCF J@ʍ\xE4]\xB5Ȟ,!\xECn\x95\xE5fAB\xBA\x8A\xC7         H\x96\x98\xDB*\xCB͂\x84\xF4\xCF J@ֽ\xD8]\xB5Ȟ,!lm\x89\xFDfAB:\x89g         \xEEv\xE6\xAEZdO\x96\xA02\xE3}-\xB1\xE2\xBCy\x90\xD0]\x80?
+\xD0P&lt;3(E8\x8C\x9B'\xFDx\xFB\xB3{e\xAA?\xFD\xEF~.\xB8x&lt;X`5Kl9o$\xA0\x93xfP\x8A\x8A\x90%\xE6\xB6Ģ\xB3 !\xCD\xC53\x83\x82\x84PNji\xBBj\x91=YB\xD8\xCE\x8B΂\x844\xCF J@\xAFG\xED\xAAE\xF6d        `;\xF3\xAF; \xD0V&lt;3(E\xD5\xC8;0~\xB4\x98?\xE1h\xFE\x8DgA\xC2\xF7\xDC%8\xF0\xD37\xC4c\x83\x82\x84qn\x9E\xF4\xE3\xEDL\xAA\xC90\xFA!\x83\x9F .\x8FX\xC1\xFCς\x844\xCF J@A\xADBv\xD5&quot;{\xCFf        \xFB\xF6\x95`S\xF3/= \xD0J&lt;3(E55\xCC\xC1U ֽ\x96\xFFki\xD8W\x80MM\xBE\xFA,H@+\xF1ؠ !\x94\xD50W-X\xF7Z\xFE\xAF\xA5a_v4\xF9\xEA\xB3 !M\xC43\x83R\x84PY\xDB\\xB5`\xDDk\xF9\xBF\x96\xDE\xD2\xE1\xB5Z\xADV\xAB\xD5j\xB7mg*\xA4v\x82\xF6\xD1}\xFB\xB9\xEBW\x88        k]\xC1oNε\xBBD\xA9c\xD6j\xB5Zm\xD7\xF6\xBB_\x857R\xAB\x8D\xB4\x8Ftf\xF0c\xD599\xDAӛg\x85\x83\xD4j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5N\xDA&gt;\xCE\xFC\xCAh&gt;\xC0\x9F~\xE0\xE0炋\xC73\xC0\xFBC:\xA1V\xAB\xD5j\xB5Z\xADV\xAB\xBD\xDF\xF6\xAE\xDE_\xA1\xFB\xF8]u.\x99V\xAB\xD5j\xB5Z\xAD\xB6u\xFBH\xC7?V\x9D\x93\xA3\xD5j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5j#-P\xCD\xE3L\x8Fϼ\xFD\xC9\xF7\&lt;\x9E\xDE\xD2\xE1\xB5Z\xADV\xAB\xD5j\xB5Z\xED\xFD\xB6ku\xFE
+\xC3V\xB9\xBB_\xADV\xAB\xD5j\xB5Zm\xAC-W\x95N\x8EV\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\x8D\xB5@5\x8F3=&gt;\xF3\xF6'\xDFs\xF1xxH\x87#\xD4j\xB5Z\xADV\xAB\xD5j\xB5\xF7\xDA\xFF\xF7}\xAB\xE7W$\xECz\xB4Z\xADV\xAB\xD5j\xB5\x91\xF6\x91\xCE ~\xAC:'G\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5\xC6[\xA0\x94ǙN\xFBʇ\xF7;\x9E\xDE\xD2\xE1\xB5Z\xADV\xAB\xD5j\xB5Z\xED\x9D\xF61j\xBA\xC3W$\xECx\xB4Z\xADV\xAB\xD5j\xB5\x89\xF6\x91\x8E
+~\xAC:'G\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5Vh\x80:g\xFA}\xF2\x8B\x9F\xDF\xE9xxH\x87#\xD4j\xB5Z\xADV\xABݶ}\x9C\xA9p\x90ڢ\xED\xA3\xEF&amp;tׯ0&gt;H\xD8\xEB*\xF4o/\xDE%J\xB3V\xAB\xD5j\xBB\xB6\xDF\xFD*\xBC\xA9p\x90Zm\xE7\xB6\U:9\xDA\xCF\xDBӛg\x85\x83\xD4j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5N\xDA&gt;\xCE\xFC\xD2\xFA
+\xED\xA7O\x83\x9F .\xCF\xEF\xE9p\x84Z\xADV\xAB\xD5j\xB5Z\xAD\xF6\xB9\xF6\xD1}\xBA\xE3W\xE8~\xF4\xBF\xAB\xD4%\xD3j\xB5Z\xADV\xABվ\xDC&gt;ҙ\xC1\x8FU\xE7\xE4h\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5\xDAj-P\xC4\xE3L\xD7\xFDO\xF48\x9E\xDE\xD2\xE1\xB5Z\xADV\xAB\xD5j\xB5Z\xEDs\xEDc\xD6,ᰵ\xEEWA\xAB\xD5j\xB5Z\xADV;\xB0}\xA4c\x83\xAB\xCE\xC9\xD1j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5[\xA0\x82Ǚޟ\xDF\xE4\xAF4?\x9E\xDE\xD2\xE1\xB5Z\xADV\xAB\xD5j\xB5Z\xEDm\xEF\xEA\xF6F        \xBB_\xADV\xAB\xD5j\xB5Z\x{DE36}\U:9Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5Z\xAD\xB6h \xC4=\xCE \xF8\xAD\xFEP\xDB\xE3\xE0\xFD!\x8EP\xAB\xD5j\xB5Z\xADV\xAB\xD5^l\xFF\xDF\xF7\xADn_ap\x90\xB0\xEBU\xD0j\xB5Z\xADV\xABՎi\xE9\xCC\xE0Ǫsr\xB4Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5j\xB5Zm\xF1\x88{\x9C\xF0'Z\xFD\xA1\xB6\xC73\xC0\xFBC:\xA1V\xAB\xD5j\xB5Z\xED\xB6\xED\xE3L\x85\x83\xD4j\xA3\xA3[\x85\xF1AŽWal{\xF1.Q꘵Z\xADV۵\xFD\xEEW\xE1M\x85\x83\xD4j\x9B\xB4\x8Ftl\xF0c\xD599\xDAg\xDBӛg\x85\x83\xD4j\xB5Z\xADV\xAB\xD5j\xB5Z\xADV\xAB\xD5N\xDA&gt;\xCE\xFC\xC6\xCC\xEA\xA7e\xF0s\xC1\xC5\xE3`\xD8W\x80e=\xEEF7&lt;\xEA\xEE\xC7\xFD\xF8$`^\x83\xC6\xC7\xFC\xA4 t1,\xE9V-X\xF7Z\xFE\xAF\xA5a_\xD64\xE7z\xB4 !\xD7\xC53\x83R\x840\xBB\x911\xB7j\xC1:\x89?X\xC1\x9C҂\x84\\x8F
+\xC0d        e        `bsnH pQ&lt;3(Ek\x9C\x9E\xABٓ%\xA8\xCCx\xC6%\xEEI \xB6\xE2.\xC0\x81\x9F\xCF Jn\xC2\xCD\x80~\xBC}\x80:\xC6\xCF\xE7\xA7q\xF0s\xC1\xC5\xE3\xF1\xC0EM\xB8*-H\xC0\xF1ؠ !\xACd|n\xAEZdO\x96&amp;6᪴ !\xA7\xE2\x99A)BXL$7W-\xB2'K\xB3\x9Ap[Z\x90\x80S\xF1ؠ!,&amp;\x9A\xABٓ%\x80)M\xB80-H\xC0\xF7\xE2\xB1AABXO01W-\xB2'KP\x99\xF1\x8C/Ͷ3-H؉\xBB~\x98T&lt;3(E\xB897O\xFA\xF1\xF6        \xE2\x82c\xF9\xE9\x9F\xFC\p\xF1x&lt;\xB0@!\xB3\xADM \xF0\x8DxlP\x90V\x95\x8D\xCBU\x8B\xEC\xC9\xC0df[\x9B$\xE0+\xF1̠!,,\x9E\x95\xABٓ%\x80\x99̶9-H\xC0\xA7\xE2\x99A)BX^&lt;(W-\xB2'K3\x99jZ\x90\x80O\xC5c\x83\x82\x84\xB0\x83g\xA3s\xF5
+&gt;!M\xAE\xCF\xF8\xC7T\xFBӂ\x84c\xB8Kpু\xE2\xE2\x99A)B&gt;\xE5\xE6        @?\xDE&gt;@\xD0\xE9@&gt;\x9D\xC1'\xA4\xC9U\x9E6\xD5
+\xB5 !\xF1̠!\xEC\xA6G\x9A/k\xF0        ir\x80\xE7L\xB5E-H\xC0A&lt;6(H\xEA\x91\xE6\xCB|B\x9A\\xE09\xF3,R \xF0^&lt;3(E\xDB\xEA\x91\xE6\xCB|B\x9A\\xE0        \xF3\xECR \xF0G&lt;3(E\x9B\xEB\x91\xE6\xCB|B\x9A\.2\x9E1\xD1:\xB5 a\x84\xBB~(&quot;$\xE4)n\x9E\xF4\xE3\xED\x9D\xE4\xD3|B\x9A\\xE0\x92y֩        \xF8)\x9E\x94&quot;~\xEA\x91\xE6\xCB|B\x9A\\xE0\xDC&lt;Ղ\x84\xFC\x90&quot;\x8A\xE9\x91\xE6\xCB|B\x9A\\xE0\xDC${\xD5#\x97\xC1[3\xCD\xC5c\x83\x82\x84\xC0A\x8F4_\xD6\xE0\xD2\xE4*'&amp;٫$ \x9E\x94&quot;&gt;\xD5#͗5\xF8\x844\xB9
+\d&lt;\xDB\xD4$\xABՂ\x84\xB8Kpু\x91\xE2\x99A)BZq\xF3\xA0o\x9F`g\xA7O\x83\x9F .\x8Fd\x92\xEDjAB\x80\xCD\xC5c\x83\x82\x84@q\xD5&quot;{\xB2\x84P\xCB ւ\x84;\x8Bg\xA5\x80)T\x8B\xEC\xC9@!3\xECX \xEC,\x94&quot;fQ-\xB2'KṴf-H\xB0\xADxlP\x90\x98K\xB5Ȟ,!@eƳ\x8D̰f-HX\x90\xBB~\xE8!\x9E\x94&quot;\xA477O\xFA\xF1\xF6        vv\xFAD0\xF8\xB9\xE0\xE2\xF1x`\x80\xBE\xCA/[ \xEC)\x94&quot;&amp;U-\xB2'Ky\xE5\xF7\xAD        6\x8F
+S\xABٓ%\x80\xB0\xF6\xAD        \xB6\xCF J \xA8ٓ%\x80\xA4V\xAE        \xB6\x8F
+Jk\xA8ٓ%\xA8\xCCx\xB6\xB8\xAF        \x8Bs\x97\xE0\xC0O\xAF\x88\xC7        Iq\xF3\xA0o\x9F`g\xA7O\x83\x9F .\x8Fh\xAF\xFC\xE2\xB5 !\xC0&amp;\xE2\x99A)B`=\xD5&quot;{\xB2\x84\x90Q~\xF7Z\x90`\xF1ؠ!\xB0\xA4j\x91=YB(\xBF~-H\xB0\x83xlP\x90XX\xB5Ȟ,!\x8CV~\xFDZ\x90`y\xF1̠!\xB0\xBCj\x91=YB\x80ʌgk\xAA\xBD\x84-H8w        \xFC4pE&lt;6(HH5n\x9E\xF4\xE3\xED\xEC\xEC\xF4\x89`\xF0s\xC1\xC5\xE3\xF1\xC0m\xD4^\xC2$X[&lt;3(E\xEC\xA3ZdO\x96Ʃ\xBD\x87-H\xB0\xB0xfP\x8A\xD8M\xB5Ȟ,! R{[\x90`a\xF1ؠ !\xB0\xA1j\x91=YB\xA4\xF06\xB6 !\xC0\xAA\xE2\x99A)B`[\xD5&quot;{\xB2\x84\x95\xCF\xD6Qx![\x90pj\xEE\xF8i\xE0\x8FxfP\x8A\x90\x89\xB8yЏ\xB7O\xB0\xB3\xD3'\x82\xC1\xCF\x8F\xC7 \xDCWx'[\x90`I\xF1ؠ !@\xB5Ȟ,!\xF4Ux'[\x90`=\xF1̠!\xC0O\xD5&quot;{\xB2\x84\xD0Q\xE1\xCDlAB\x80\xC5\xC43\x83R\x84\xEFU\x8B\xEC\xC9@GU\x97\xB3        \x8F
+'KP\x99\xF1lnU\x97\xB3        W\xE2.\xC0\x81\x9F\x86
+\xC53\x83R\x84,\xC0\xCD\x80~\xBC}\xEA8}B\xF1\xC0wT\xDD\xCF$XI&lt;6(E0 YBh\xAFꊶ !\xC02\xE2\xB1AAB\x80\xB9\xC8@{%\xB7\xB4        \xD6\xCF J\xCCH\x96+\xB9\xA8-H\xB0\x86xlP\x8A`R\xB2\x84\x95\xCF\xE6SrW[\x90pa\xEE\xF8iXX&lt;6(H\xC8\xC2\xDC&lt;\xE8\xC7\xDB'\xA0\x8E\xD3',pU\xC9]mAB\x80\xD9\xC53\x83R\x84 \x90%\x80f\xEAml \xCC.\x94&quot;X\x83,!\xB4Qoi[\x90`j\xF1ؠ !\xC0Jd        \xA0\x81zKۂ\x84\xF3\x8Ag\xA5\xD6#KP\x99\xF1l\xF5\xF6\xB6        \xF7\xE1.\xC0\x81\x9F\x86\xC4c\x83R\x84l\xC8\xCD\x80~\xBC}\xEA8}B\xF1\xC0ߩ\xB7\xBD-H0\xA9xlP\x90`a\xB2\x84\xF0\x92b\xDBۂ\x843\x8Ag\xA5\x96'K\xF7[\xE0$\x98Q&lt;6(E\xB0YB\xB8\xA9\xD8\xB7 !\xC0t\xE2\xB1AAB\x80}\xC8Tf&lt;\xAB\xAB\xD8\xB7 \xE1\xB6\xDC%8\xF0\xD30\x8BxfP\x8A\xDEs\xF3\xA0o\x9F\x80:N\x9FP&lt;\xB0\xC0'*mr \xCC%\x94&quot;ؐ,!&lt;\xAD\xD22\xB7 !\xC0D\xE2\xB1AAB\x80m\xC9\xC0s*-s \xCC&quot;\x9E\x94&quot;؜,!&lt;\xA1\xD2&gt;\xB7 !\xC0,\xE2\xB1AABd        *3\x9E\x95Sf\xA5[\x90\x90\x9F\xDC%8\xF0\xD3PM&lt;3(EW\xB8yЏ\xB7O@\xA7O(X\xE0\x972[݂\x84\xF5\xC53\x83R\x84\xBC'K\x97\x94Y\xEC$\xA8/$\xE0@\x96ΕY\xEC$(.\x9E\x94&quot;\xE0S\xB2\x84p\xA2\xCCz\xB7 !@q\xF1ؠ!_\x91%\xA8\xCCxVB\x8D
+oAB&gt;\xE5.\xC0\x81\x9F\x86\x94xlP\x90^\xE1\xE6        @?\xDE&gt;u\x9C&gt;\xA1x``k56\xBC        ʊg\xA5\xB8B\x96\xBETc\xC9[\x90\xA0\xACxlP\x8A\x80\x8Bd        \xE0s5V\xBD        j\x8A\xC7        x\x8A,!|\xAE\xC0\xAA\xB7 !@A\xF1̠!7\xC8Tf&lt;\x8B)\xB0\xED-H\xC8\xEE\xF8i\xE8-\x94&quot;\x84\xDC&lt;\xE8\xC7\xDB'\xA0\x8E\xD3',l\xA7\xC0· !@5\xF1ؠ !\xAF\x90%\x80X\xF8$(%\x9E\x94&quot;\xE0u\xB2\x84\xF0\x8F\xF4ڷ !@)\xF1ؠ!M\xC8\xC0_\xE9\xCDoAB\x80:\xE2\xB1AAB\x92%\xA8\xCCx6Tz\xF3[\x90\x90\xDC%8\xF0\xD3\xD0D&lt;3(E\x83\xB9yЏ\xB7O@\xA7O(X\xD8Bz\xF9[\x90\xA0\x88xlP\x8A\x80d         \xBE.HPA&lt;6(H@?\xB2\x84 H\xB0\xB9xfP\x8A\x80\xDEd        ؝ !\xC0\xDE\xE2\xB1A)B\x90%\xA8\xCCx֝ !\x93s\x97\xE0\xC0O\xC3S\xE2\xB1AAB(\xC2\xCD\x80~\xBC}\xEA8}B\xF1\xC0\xC0\xB2\xA2\xBB\xE0\x82\x84A\xF1̠!\x83\xC9\xB0/AB\x80-\xC5c\x83R\x84\x8C'K\xC0\xA6        \xF6\x8F
+\x90&quot;K\xC0\x8E6\xCA\xBC\xCF J\x90%KP\x99\xF1\xAC AB\xE2.\xC0\x81\x9F\x86O\xC5c\x83R\x84P\x9C\x9B'\xFDx\xFB\xD4q\xFA\x84\xE2\x81\x80ՄV\xC3        Ƌ\xC7        (B\x96\x80\xBDl#\x94&quot;\xA0YB6&quot;H\xB0\x87xlP\x8A\x80jd        ؅ !\xC0\xE2\xB1AABj\x92%\xA8\xCCx\xD6LhG\\x90\x90\xDE\xDC%8\xD8\xFC\xA7!\x94&quot;\x84Im~\xF3\xA0+o\x9F\x80:N\x9FP&lt;\xB0\xB0AB\x80\xA5\xC5c\x83\x82\x84'K\xC0\xFA        \xD6\xCF J0YB'H\xB0\xAExlP\x8A\x80Y\xC8\xB0\xB2ľ\xB8 !\xC0\xF1ؠ !s\x91%\xA8\xCCx\xF6*ABV\xE7.\xC0\xC1?
+\xF1̠!\xACg\x87\x9B')\xDE&gt;u\x9C&gt;\xA1x``V\x82\x84ˉ\xC7\xA5\x98\x94,!k$\x80\xFF\xB1w\xAF;\x92\xDC\xD8F\xDF\xFF\xA9\xCB\xE8iKʮ\xAE̸\x91܇\xE4Z\xE0\xC3֠RA·\x81\xB5ijA!!S\xD3\xB0 !!\xC0B\xE2͠\x8A\x80h        X\xD0\xD8\xD9q!!@?\xF1lPE\xC0\xB4\x84\x959\x9E\xDD!$d'\x9E|\xB3ҫ!\x9E
+        a+=&lt;\xA8\xC6\xD7'\xA0\x8E\xC3\x8A 3\xCC/\xDE \xAAX\x8F\x96\x80u        \xE6\xCFU\x84,IK\xC0&quot;\xC6Α         \x9A\x8Bg\x83BB\xA6%`BB\x80iśA!\xCB\xD3T\xE6xv\x96\x90\x90]yJ\xF0͌\xAF\x86x6\xA8&quot;f|x0 _\x9F\x80:o(.,T'$\x98S&lt;\xB0-!s8P.$h%\xDE \xAA؍\x96\x80\xB9                f\xCFU\x84lHK\xC0Ą\x84S\x89g\x83BB\xB6\xA5%\xA8\xCC\xF1\xEC!!xJ\xF0\x97ʯ\x86x6\xA8&quot;ީ\xFC\xF0`v\xBE&gt;u\xDEP\X\xA8h\xD4p\xB9\x90(\xEE\xF6\xBB\x91\x9F\xFA\xE2٠\x8A\xB4\x84Li\xD4|\xB9\x90\xA8\xECv7\xAC\xAA\x8Bg\x83BB\xF8MK\xC0|\x84\x84?\x9D\x89\xEE\xFDG\xFEB!\xA4h        \x98\x8C\x90\xE0n\xE4r\xC3
+\xBBx68\xE0\xDF\xE6\xA2%\xA8\xCC\xF1\xEC\xBBQS\xE6BBf\xE1)\xB0\xAD\x8F\x87\x8C\xB7\xAF\x85\xA9]0\xF0o\xACʹ\x80~|}\xEA8\xBC\xA1\xB8\xB0PŨA\xF3a\x83\xED\xD9\xED\xE6u#\xA0\xDC
+\xCB\xAF\xEE\x80_\xB4\x84LcȬ\xF9\xB0\xD9\xF6\xEC^\xF3\xBAZҍ)\xEF\xA1\x86\xFC\xBB\xC0\x92\xB4\x84\xCCaȸ\xF9\xB0\xF1\xF6\xEC^S\xAB\xD6\xDF
+:?\xF5\xFF\x80\xB5i        \x98\xC0\x90q\xF3a\xE3\xEDٽ\xA6V\xAD\xC2t~\xEA\xF6\xFB`ZB\x80\xCA\xCF~2t&gt;l\xC2=\xBD\x9B\xAC\xC6S`+\xA5r\xBCA\x87\xA7\xBF\xE0o\xCE\xD5\xF4\xE3\xEBP\xC7\xE1
+Ņ\x80\xB0\xFEC\xE7\xC3&amp;\xDC\xD3[        L\xACN\x947\xF2\x974\xF9\xC1\xC0\x97\x96\x80\xE2\xFAϝrOo%0\xB7&quot;i\xDEȟ\xF1\xF0\xA7\xAF\xB4\x84\xD4\xD5\xF4|؜{z+\x80\xB9Uh\xF4\xC6\xFF\x86?xGK@Q\xFD\xA7χ͹\xA7\xB7\x98[\xBC\xD4K\xFD\x803\xBF
+8IKP\xD9\xD6dz\xCE\xE8\xC3F\xDD\xD3\xFB\xC8\xE2\xB6~J\xEC!\x9E\xECe\xC0\x8F?        \xA09\xE7j\xFA\xF1\xF5        \xA8\xE3\xF0\x86\xE2\xC2@@\xE7\xF4a\xD3\xEE\xE9}\xA6o\xF7J-\xE06-!\xE5t\x9EA6\xED\x9E\xDEG`z\xF1v\xAF\xCE\xD2PK\xE71\xF4a\xEF\xE9}\xA6\xCF\xF7\x8A,\xA0        -!\x85t\x9ED6\xF3\x9E\xDEG`z\xF1\x82\xAF\xC8Z\xD1T\xB6\xDD\xF1\xAC\xE7$\xFA\xB0\x99\xF7\xF4&amp;\xB2\x97\xED\x9EۈG|\xF10\x92s5\xFD\xF8\xFA\xD4qxCqa`\x90\x9E\xC3\xE8\xC3\xC6\xDEӛ\xAC \xDE\xF1eЃ\x96\x80zΣ\x9B|Oo&quot;\xB0\x82xʗ]@'ZB\xF2zΣ\x9B|Oo&quot;\xB0\x82x\xCA\@WZB򺍤~O\xEF \xB0\x88x\xD0Y\xC0ZB\x80ʶ8\x9Eu\x9BJ6\xFF\x9E\xDEA\xB6\xB6\xC5S`\xF1\xA6/\xB2*p\xAE\xA0_\x9F\x80:o(.,t\xD4m*}\xD8\xFC{z\x80Eě\xBE\xF1 IK@L\xB7\xC1\xF4a#\xF0\xE9\xCF\xFA/`&lt;-!\xDDfӇM\xC1\xA7wXG&lt;\xEE\xB9\x80-!}fӇM\xC1\xA7\xB7XG&lt;\xEE\xB6\x80 -!@e\xCB\xCF\xFA\x8C\xA7\x84Oo\xFCg٧\xC06\xE2}ߘP\x9Cs5\xFD\xF8\xFA\xD4qxCqa\xA0\xB1&gt;\xEA\xC3f\xE1\xD3\xDB\xAC#\x9E\xF8\x8DY@ZB\x86\xEA3\xA1&gt;l&gt;\xBD}\xC0R\xE2\x95_\xEFԡ%`\xA8C\xEA\xC3\xC6\xE1\xD3{,%\xFAu]@5ZB\xC6\xE90\xA7&gt;l&quot;&gt;\xBDw\xC0R\xE2\xAD_\xD7\xA4%\xA8l\xA9\xE3Y\x879\xF5a\xF1齃\xB7\x96zJ\xEC$\x9E\xFBuZ\x93r\xAE\xA0_\x9F\x80:o(.,4\xD0aT}\xD8P|z\xEF\x805Ż\xBF\xB6 (NK\xC0\xAD\xA7Շ\xCDŧ7X\\xBC\xC0&amp;\xB4\x84t'$x/^\xAA`ZB\xFA\x89'\x81BBX\x9E\x96\xA0\xB2\xE9\x8FgBB\xE8l\xFA\xA7/\xE2m\xA0\x8Aؖs5\xFD\xF8\xFA\xD4qxCqa\xE0&amp;!!\xC0E\xF1HPE\xAB\xD2Ћ\x90\xE0\xB4x$\xA8%\x80\xB5i        \xE8BHpN&lt;\x94\xC0\xB4\x84\xB4'$8!^\xCA        `ZB\x80ʦ&lt;\x9E                a\xA0)\x9F\xCC\\xBE.\x80e8WЏ\xAFO@\x877\xAEi7\x9E&gt;r&gt;\xBDk\xC0.\xE2`\xDB\xCCBK@K\xEDӅ\x84\xC0b\xE2\xDD_\xA7LAK@3\xEDF\xD2Gο\xA7w
+X_&lt;\xF7\xB0\x80ⴄ\xB4\xD1n}\xE4\xD8{z\xD7\x80\xC5\xC5\xBFa (NKP\xD9LdzFc\xE8#g\xDE\xD3[
+\xCC\xF4\x94\xD8L&lt;\xEE\xB9f\xE7\
+@?\xBE&gt;u\xDEP\X8\xD6h }\xE4\xCC{z\xCB\x80e\xC5˾\xC1 \x98\x82\x96\x80\xA7\x8D\xA1\x8F\x9CyOo\xB0\xA6x\xD6Y\xC0\xB4\x84&lt;\xD2h}\xE4\xC0{z\xCB\x80\xD5\xC4k\xBE\xE0f\xA1%\xE0\xBEF3\xE8#\xDE\xD3[,%\x9E\xF2e0-!@eՏg-f\xD0G\xBC\x87\xB7 :\xA8\xFE\x94XW\xBC\xE3\x8B/\x80\x958WЏ\xAFO@\x877~\xD6b}\xE4\xC0{z\xBF\x80E\xC4#\xBE&quot; \x98\x8B\x96\x80;Z \xA0\x8F\x9CvO\xEF\xB0\x82x\xBEWg\xD3\xD1pY\x8B\xF4\x91\xD3\xEE\xE9\xFD\xA6o\xF7J-`FZB.{&lt;\x80&gt;r\xDA=\xBDY\xC0\xDC\xE2\xE1^\xB5LJKPY\xC5\xE3\xD9\xE3\xF4\x91\xD3\xEE\x81\xFD\x81\xB1*&gt;%V\xAF\xF6j.\x80%9WЏ\xAFO@\x877\xFE\xF3x\xFA|\xE4\xA8{z\xB3\x80Y\xC5{\xBD\xB2 \x98\x97\x96\x80\xB3O\x9F\x8FuOo0\xA5x\xACWyS\xD3pֳ\xE9\xF3\x91\xA3\xEE\xE9\x9D&amp;\xCF\xF4\xEA/`vZBNy6}&gt;r\xD4=\xBDS\xC0L\xE2\x8D\xDE, \x98\x9D\x96\xA0\xB2*dzg\xA3\xE7#\xE7\xDCm\x94Q\xE5)0\xA1x\x9D7\xD1X\x9Es5\xFD\xF8\xFA\xD4qxCqa\xD8ݳ\xD1\xF3\x91s\xEE\xE9\x9D\xE6O\xF3\xE6Z\xC0\xB4\x84|\xF2l\xF4|\xE4\x9C{z\xA7\x80        Ļ\xBC_\x85\xDF,@K\xC0'F\xCFGι\xA7\xB7        \xA8.[\xE4=)\xF8\xEA\xFC`jZB\xDEz0w&gt;r\xC8=\xBDM@i\xD9\xAFI\xBBW\xEA\xC7\x93\xD2T\x96&lt;\x9E=\x98;9\xE4\xDEq`.q\xA4\xBC\xE1^\xB5\xDF\xB0\xE7j\xFA\xF1\xF5        \xA8\xE3\xF0\x86\xE2\xC2\xB0\xA3s\xE7#\x87\xDC\xD3\xDB5\xBE\xBCP\xED\xFCI\xC0D\xB4\x84\xFC\xE0\xEE\xDC\xF9ȹ\xFB\xF4
+\xCEG&amp;{e0-!\xDF\xDD:9z\x9F\xDE#\xA0\x9C\xC1`$֫\xFC\xDB\x80ⴄ\xFC\xE1\xEE\xD0\xF9\xC8\xE9\xFB\xF4\x85DJ\xC0`\xA6W\xFF5i        *}&lt;\xBB;t&gt;r\xBF\xF1\xBF2L\xCE%\xD8Y$\xAC\xD0\xE8M\xF1#\xE6\xE2\
+@?\xBE&gt;u\xDEP\X6rk\xE8|\xE4~z\x83\x80\xB2U`&lt;Л\xE8\xA7uh        \xF8\xB7&amp;\xCEGN\xE2\xA77ȋ\x87\x81EҼ\xF3\xFD\xF7\xFF\x90\xFD\xB5@ZB~\xB95?r?\xBDA@X&lt; \xBC\xB4\xE2\xF2\xFA\x8F]\xFA\xE7\x80Ui        \xB87&quot;/$ƈ\x87\x81\x97V\x85\x9D\xF9\xF6\xCF\xFEG\x80h        *q&lt;\xBB5%/$\x84&quot;\‵\xC5\xC3\xC0K\xAB\xC2\xFE|\xFD\xF0j\xF8\xF1\xA3%\xF8\x83s5\xFD\xF8\xFA\xD4qxCqaX\x9C\x90\xA8'\xAFܨw\xFF\xC0\x8D\xFF\xB0-!\xC0ք\x84@1\xF10p\x96\x8A\xF0_\x9Fɽ\xFF\xB0-!\xC0\xBE\x84\x84@%\xF10p\xBA\x8A\xF0\x8C\x89~*Е\x96`SBB\xA0\x8Cx\xB8^B\xF8\xAF3Ѓ\x96\xA0\xB2\x8E\xC73!!,\xC1%\x98Z&lt; \\xB2&quot;\xFC\xFBU\xE0\xD5pȹ\x80~|}\xEA8\xBC\xA1\xB8\xB0,HHD\xC5\xC3\xC0%+\xC2\xCD\xFE\xFB\x80V\xB4\x84\xDB9\xF10p\x9F\x8A\xF0\xB75\xFE-\x80約{!\xF10p\xB7\x8A\xE0\x95\x96`/BB`\xB8x\xA8&quot;\xD0T\xD6\xF8x&amp;$\x84\xE5\xB8\xC4\xC5\xC5\xC3\xC0
++B\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A \xC0&quot;\x84\x84\xC0@\xF10pÊ\xE0-!\xC0.\xCE\xD3         \x80\xDB\xE2a\xA0\x8A\xE0oZB\x80\xF5                \x80!\xE2a\xA0\x8A\xE0-!\xC0\xFA\x84\x84@g\xF10PB\xF0\x99\x96\xA0\xB2\xC73!!,\xCD%\x88\x8B\xB7\x81*\xC2o\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,}\xC4\xC3@!\xC0%ZB\x80e                \x80\xE2a\xA0\x8A\xE0-!\xC0\xB2\x84\x84@S\xF10PEp\x9B\x96`MBB\xA0\x9Dx\xA8&quot;xHKP\xD9\xF7\xC3\xD8\xC9㙐\xB6\xE1\xF4U\x84Wy5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\x9E\x8C\xCE         \x80\xE2a\xA0\x8A\xA0!-!@!\xC0;\xF10\xF0\xD2\xE0 -!@\xDE\xF0\x99\xFBa)\xBD\xB3\xC05\xF10\xF0\xD2\xE0&lt;-!@Rb\xEC~\xD8_Jo.pA&lt; &lt;\xBF\xB8AK\x90\xBE\xF6\x97\xD2\xFB \xBBp\x89\x9E\x8B\xB7\x81\xE7gx5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\xCB\xCD\xDF\xFBK\xE9-N\x89\xB7\x81\xE7i        \x86ʍ\xE0\xFBK\xE9-\xC4\xC3\xC0K \x80&amp;\xB4\x84\xE3\xE4\xA6\xF0\x87\xFD\xA5\xF4\x9F\xC4\xC3\xC0K \x80\x86\xB4\x84#D\xF1\x87\xFD\xA5\xF4.o\xC5\xC3\xC0K \x80洄\xDDEg\xF1\x87\xFD\xA5\xF4.æ\\xE2\x80C\xF10\xF0\xD2\xE29\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A \xC0#\xD1q\xFCa)\xBD\xCB\xC0\xE2a\xE0\xA5@WZB\x80\x8E\xA2\xF9\xC3\xFERz\x97\x80\xEF\xE2a\xE0\xA5\xC0ZB\x80^҉ߘ\x95\xDEe\xE0\xF9\xC3\xC1\x95\xC00ZB\x80^\xDE ͧg\xF6[\xAE\xF4\xFFɟ N/\xC6\xD3t\xF1~z&gt;=\xBC\xDFl\xA5\xB7\xF8\xC5%\xF8R\xF2'\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A \xC0eg\xE8\xD3#\xFCmVz\x8B\x80_\xF2g\x82\xD3 \x80,-!@cG\x93\xF4\xE9A\xFE+\xBD\xC5@\xFA4peP\x81\x96\xA0\xB1\xA3y\xFA\xF48\x83\x95\xDEb\xD8W\xFEpeP\x87\x96\xA0\xA5S\xF5\xE9\xA1\xFE\xA7+\xBD\xC5\xB0\xA9\xFC!\xE0\xCA\xA0-!@K'f\xEBӣ\xFD\x8FVz\x81\xEF\\xE2`\xF9\xC0\x95E\x9CW\xC0
+\x9E\xF4\xE3\xEBP\xC7\xE1
+Ņ\xE0\xACs\xF6\xE9\xFF\xFB+\xBD\xBF\xB0\x9D\xFC\xEB\xFF\xCA\xA02-!@3\xE7\xE6\xEC\xD3c\xFE7Wzs`/\xF9w\xFF\x95@}ZB\x806NOۧ\x87\xFD\xEF\xAC\xF4\xE6\xC0F\xF2/\xFE\xD3 \x80\x89h        \xDA8=v\x9F\x9E\xFA\xBF\xBC\xD2; \xBBȿ\xF5U\x84\xEB\xD2\xB41g'($\x84ٹ\xC4\xC1\xF2\xAF|\xE1B\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,\xC7\xFE\xAFOO\xF77^\xE9m\x80\xF5\xE5\xDF\xF7*B\x80=h        \xF8g\xC8&gt;=\xE3/$\x80i\xE4_\xF6*B\x80\x9Dh        X\xAE%\x94
+@'\xF9׼\x8A`KZB\x80\xA7^\xEE\xD3\xF3\xFEm\x96~zȿ\xE3\xAF,\xA3%x\xEAe\xEC&gt;=\xF5\xDF`\xA9`..q0\x85\xFC \xFE\xCAbv^
+7xxЏ\xAFO@\x877\x80/\xC3\xF7\xE9\xD9\xFFKK
+\xE5_\xEDW \xD3&lt;\xF52\x82\x9F.,E4\x91\xA9_Y,OK\xF0\xD4\xCB ~\xBAh\xB0t\xF0P\xFEu.!\xE0/ZB\x80\xA7^&amp;\xF2\xD3A@\x83%0\x80\xDB\xF2/r!oh        \x9Ez\x99\xCBOg
+\x96\xCC\xE6\xE2E\xE4_\xE1*B\xFE\xE1\xD5p\x83\x87'\xFD\xF8\xFA\xD4qxCqa8\xF02\x9D\x9F\x8E,\xB1\\x92y\xAB8AK\xF0ȟ3\xFA\xE9D\xA0\xC1R\xC0I\xF9\xD7\xF6\xE9ZB\x80\xA7^&amp;\xF5ӡ@\x83%&lt;\x80C\xF9\xB6\x8A\x80\x8B\xB4\x84O\xBD\xCC\xEB\xB7l\xFA\xBE\xFE\xFE\xEF\xD4@R&lt; \xBC\xB4\xE0\x95\x96੗\xA9\xFD\xB6-\xE1W&quot;'!\xC0\\\xE2`\x8Cxxi\xB19\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A \xC0\x81\x97\xD9\xFD\xE6-\xE1\xD7\xF0\x9CP\x8A\xAF\xE2a\xE0\xA5\xEFh        \x9E\xEA\xDC~\x8D\xCD                \xF0[&lt; TА\x96\xE0\xA9\xFE-\xE1\xD7\xC0\x9CP\x96\xF10PB@sZB\x80\xA7\x86\xB4\x84_\xA3rB};\x8B\xB7\x81*B:\xD1&lt;ճ%\xFC\xEB4\xA6%\xFE\xE0\xAD\xC4\xDB@!\xADx5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\x8Euk        \xF8S\xC3ZB\xD8C\xBC
+T0\x80\x96\xA0\x81\x81-\xE1W\xE7\x9CP\xAE\xC0&gt;\xE2m\xA0\x8A\x80a\xB4\x84
+\xF4h        ?\x96ZBx&quot;\xDE\xAALK\xD0F\xA7\x96\xF0}Eз%\x80E\xC5\xDB@!ZB\x806\xBA\xB6\x84o\x96\x96p\x89\x83\x93\xE2a\xA0\x8A\x90a\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,\xA7\xB4\x8E\xFBN\xFE\x83ZB\xF8,^ZЉ\x96\xA0\x99DK\xD8&lt;'\x941\xB0\x8Cx\xA8&quot;\xA0-!@3\xFE[\xC7/1 ȿP%\x84\xA3%h(\x9D#\xB4h        `f\xF9W\xA9\x8A\x80\x92\xB4\x84
+\xA5\xA3-!l\xC7%\xFE\x95\x89\xAA\xA9\xC1\xAB\xE0O\xFA\xF1\xF5        \xA8\xE3\xF0\x86\xE2\xC2p^:M\xD0\xB0\xA3\xFC\xEBSE@yZB\x80\x86ҁ\x82\x96\x80\xBD\xE4_\x9C*B&amp;\xA1%h(\x9D)h        \xD8E\xFE\x95\xA9&quot;`*ZB\x80\x86ұ\x82\x96\x80\xF5\xE5_\x96*B&amp;\xA4%h(\x9D,h        a;.ql%\xFF\x9AT2\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A \xC0y\xE9pAK\xC0\x82\xF2oG!\xF3\xD34\x94\xCE\xB4\x84,%\xFF^T\xB0
+-!@C\xE9\x88AK\xC0&quot;\xF2oD        !k\xD14\x94\xAE\xB4\x84L/\xFF.T\xB0&quot;-!@C\xE9\xA6AK\xDBq\x89c%\x{1DE0290}%x5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\x9A\xF9_~\x90\xEC\xF5\x94oU\x84,OK0T\xBC%\x80J\xE2m\xA0\x8A\x80Mh        K\xB6\x84PF\xBC
+T\xB0-!\xC0`ZB6oU\x84lHK0\x98\x96h\xC8%\x8E\xB9\xC4\xDB@!;\xF0j\xB8\xC1\xC3\x80~|}\xEA8\xBC\xA1\xB8\xB0\xB4\xA5%`C\xF16PE\xC0洄\x83i        \xD8G&lt; T\xC0oZB\x80\xC1\xB4\x84\xEC J\xE0\x95\x96`0-!k\x8B\xB7\x81*B\xF8\x9B\x96`0-!АK\xA5\xC4\xDB@!|y5\xDC\xE2\xE1        @?\xBE&gt;u\xDEP\X\xDA\xD2\xB0\x9Ex\xA8&quot;\x80ϴ\x84\x83i        XI\xBC
+T\xC0ZB\xE0\x86x\xA8&quot;\x80\xF3\xB4\x84\xC0%\xF16PEWi        *s&lt;&gt;\xF3\x94`\xB0x\xA8&quot;\x84C^
+7xxЏ\xAFO@\x877 \xDE\xAA\xE0        -!\xF0A\xBC
+T\xC0sZB\xE0o\xF10PB
+i        \x80W\xF16PE\xCDi        *s&lt;&gt;󔠭x\xA8&quot;\x84\xE7\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,\xB0\xBCx\xA8&quot;\x80\xAE\xB4\x84\xB0\xB3x\xA8&quot;\x80\xB4\x84\xB0\xA7x\xA8&quot;\x80a\xB4\x84\xB0\x9Bx\xA8&quot;\x80\xC1\xB4\x84\x959\x9E\x9FyJpU\xBC
+TBo^
+7xxЏ\xAFO@\x877X@\xBC
+T@\x90\x96\xD6oU\x84\xA7%\x80%\xC5\xC3@        !ԡ%\x80\xC5\xC4\xDB@!T\xA3%\xA8\xCC\xF1 \xF8\xCCS\x82o\xE2m\xA0\x8A\xE2\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,P_\xBC
+T@eZB\x98Z\xBC
+T@}ZB\x98T\xBC
+T\xC0,\xB4\x840\x9Dx\xA8&quot;\x80\xB9h        *s&lt;&gt;\xF3\x94\xD8P\xBC
+TBq^
+7xxЏ\xAFO@\x877\xA8 \xDE\xAA`^ZB(.\xDE\xAA`vZB(+\xDEJ`
+ZB\xA8&amp;\xDE\xAA`1ZB\x80\xCAπ\xCF&lt;%\xD6oU\x840;\xAF\x80&lt;&lt;\xE8\xC7\xD7'\xA0\x8E\xC3\x8A oU\x84\xB00-!d\xC5\xDB@!,OK)\xF16PE\x9B\xD0\xC0x\xF16PE[\xD1T\xE6x|\xE6)1\xA3x\xA8&quot;\x84\xB5y5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\xA0\x89x\xA8&quot;\x80mi        \xA0\xB7x\xA8&quot;\x80\xCDi        \xA0\x9Fx(!\xBE\xB4\x84\xD0G&lt;T\xFF\xD2T\xE6x|\xE6)QP\xBC
+T\xC2\xE6\xBCn\xF0\xF0\xA0_\x9F\x80:o(.,pF\xBC
+T\xEFh        \xE0\xA1x\xA8&quot;&gt;\xD3\xC0m\xF16PE\x9C\xA1%\x80\xE2m\xA0\x8A8OKP\x99\xE3\xF0\x99\xA7DD\xBC
+Tx5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\xE0\xB7x\xA8&quot;\xEE\xD1\xC0\xA1x\xA8&quot;\x9E\xD0\xC0\xF16PB&lt;\xA7%\x80\xC5\xF3@!Њ\x96\xA02\xC73\xE03O\x89N\xE2y\xA0\x8A\xB8ͫ\xE0O\xFA\xF1\xF5        \xA8\xE3\xF0\x86\xE2\xC2\xC0&amp;\xE2m\xA0\x8A\xE8DK\xF16PEt\xA5%`g\xF16PE \xA0%`O\xF16PE \xA3%\xA8\xCC\xF1 \xF8\xCCS\xE2\x9Ex\xA8&quot;\xFA\xF1j\xB8\xC1\xC3\x80~|}\xEA8\xBC\xA1\xB8\xB0\xB0\x8Cx\xA8&quot;&quot;\xB4\x84\xEC \xDE\xAA\x80 -!k\x8B\xB7\x81B NK\xC0\xAA\xE2y\xA0\x8A(BKP\x99\xE3\xF0\x99\xA7\xC4;\xF1&lt;PE\xA4x5\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\x98H&lt;Ti        X@\xBC
+T\x95i        \x98Z\xBC
+T\xF5i        \x98T\xBC
+T\xB3\xD0T\xE6x|\xB6\xEDS&quot;\xDE\xAA\x81\xB2\xB6}5&lt;\xE1\xE1        @?\xBE&gt;u\xDEP\X\xA8#\xDE\xAA\x80i        \x98B\xBC
+\x94\xF3\xD2P\&lt;T\xB3\xD3PV&lt;Tk\xD0T\xE6x|\xB6\xF0S&quot;\x9E\xAA\x81I-\xFCj\xE8\xC7\xC3\x80~|}\xEA8\xBC\xA1\xB8\xB00R&lt;T\xEB\xD1PD&lt;T\xAB\xD2\x90oU\x84\xC0\xF2\xB4\x84\xA4\xC4\xDB@!\xB0        -!@e\x8Eg\xC07\xDF\xFE\xFF\xFE\xFCS\xA2\xDA#\xDE\xAA\x81U9@\xDC\xE0\xE1        @?\xBE&gt;u\xDEP\X\x8A\xB8]\xB7\x95\xCA\xE2\xE2m\xA0\x8Aؐ\x96`
+\xB7K\xB7:}\\xBC
+\x94\xDB\xD2L\xE1F\xF5V'\x94\x8B\xE7\x81*B`sZB\x80\xFAn\xE4oE\x8A\xB9x\xA8&quot;\xF8\xD2\xD4\xE6x|\x9D\xCD\xF1\xBE?\xE2\xE9\&lt;T{r\x80\xB8\xC1\xC3\x80~|}\xEA8\xBC\xA1\xB8\xB0]m\xE2*4t\xF1&lt;0\xBE\xD5h        *\x9B\xAB\xA4\x8B\xE7\x81*B\x80i        ʚ%\xA9\x8B\xB7\x81*B\x80ϴ\x845M\xD1\xD6\xC5\xDB@!\xC0ZB\x80\xCA\xCF`[\xF5#\xBBx\xA8&quot;\xF8\x91$\xC0
+\x9E\xF4\xE3\xEBP\xC7\xE1
+Ņ`\xBCʩ]\xBC
+T\\xA5%\xFC?\xF6\xEE`Gvۈ\xE8\xFFu\xB2p`8\x9Ag\xA9\x87b\x91\x97\xD5\xE7`N\xBC\xE8Rw\xA1T$pa\x804\xB1\x99\xBB\xED\xD9@B\x801\xB2\x84Q2\xF3w\xDB\xE3\x81R\x84o\xC8\xE4 \xE2m\x8FJ\xBC'K\x90\xCCz\xDF&amp;*\x8E\xB7=(E0\xC0        0\xC0\xF0\xA0\x8E\xDB' \xC7\xE3        Ł`\x8D\x{D87C}\xBF\xCF|\xDBː&quot;\x98K\x96 \xC1\xF6\\xDEY\xFC\x8A,!\xC0vۣy\xFD0@\x96`\xBB\xED\xBD#\xFE&amp;K\x90\xCCz\xDF`{F/\xFF\x80\xCFY \x9E\xD4q\xFB\xE4x&lt;\xA18\xB0\xD4\xD9\xD3 \xFF`
+YB\x80]\xB6'\xF5b\xFF\x98K\x96`\x97푽\xC0?*\xC8l\xB1=\xB5\x97\xF6@YB\x80d\xD63\xE8j{p/\xEA\x80\x89,\x90 O\xEA\xB8}r&lt;\x9EPX\xE6ڞ\xDD\xCB\xF9`
+YB\x80Ŷ'\xF8\xFEXI\x96`\xA5\xED!\xBE\xED\xAC'K\xB0\xCC\xF6\x9F!\xC0w\x92%Hf=\x83N\xB6G\xF9\xA4\xBE\x81`\x80\xE1        @\xB7O@\x8E\xC7\x8A \xC0\xDB}R\x84_K\x96`\x81\xED\x99&gt;B\x80o&amp;KPm{\xB2O\x8A\xE0\xCB\xC9T۞\xEF\x93&quot;\xF8r\xB2\x84ɬg\xD0FY\x82\xEF\xC3@\x8A\x80\xBFX \x9E\xD4q\xFB\xE4x&lt;\xA18\xB0\xCCR\x94\xE0\x93&quot;\xE0\x9E,!\xC0JE!&gt;)Bn\xC8,vz\x96\x80\xE3\xC8l1=\xCD'E\xC0\xBF\x91%Hf=\x83\xDE\xDE\xFA.#A\x8A $\xC0\xC3\x80:n\x9F\x80\x8F'\x80:sc}R\x84\xFC\x91,!\xC0\xF9&gt;YB\xFEH\x96`\xBD\xBA\x88\x9F8!?\xC9,V\x9A\xEF\xAB\xC8J\x9CN\x96 \x99\xF5 \x9A\x99\xEE\xFB\xB7\xD9 N\xF0\xB5,\x90 O\xEA\xB8}r&lt;\x9EPX\xA6X\xEE\xAB\xCB:J\x96`\x81\x95\xE1\xBE\xD2,\xA1D!\xC0\x89d        \xAA\xAD\x8F\xF5\xC9\xF0O\xB2\x84 ,N\xF6        \xF0O\xB2\x84ɬg\xD0I\xF1+\xF0\xFFf\x83 !\xC0ײ@ 0&lt;\xA8\xE3\xF6        \xC8\xF1xBq`\x98\xA28K\xB8\xF4S8\x8B,!\xC02\xA7g        8\x94,!\xC0J\xD5\xFF\xDD@AB~\x92%Xl{*P\x90\xE0\xDB\xC8$\xB3\x9EAKۃ\x81\xB2\x84\x8DY \x9E\xD4q\xFB\xE4x&lt;\xA18\xB0L\xB7=(H\xF0Ud        \xB6؞$\xF8\xB2\x84\xBBl\xCF        
+|        YB\x80]\xB6Ge        \xBE\x84,!@2\xEB\xB4\xB7=-(HЌ`\x80\xE1        @\xB7O@\x8E\xC7\x8A @\xA9\xED\x99AAB\x80\xF6d        \xB6۞$\xE8M\x96`\xBB\xED\xE1AYB\x80\xDEd        l\xCF
+4&amp;K\x90\xCCz_e{\x8A\xD0Ph\xC0        0\xC0\xF0\xA0\x8E\xDB' \xC7\xE3        Ł`AB*\xC8\xE4\x90%\xA0\x82,!@AB\xA6\x93%H#H\xC0\\xB2\x84ɬg\xF0\xB5        c\x81`xP\xC7\xED\x90\xE3\xF1\x84\xE2\xC0\xB0\x9E,!\xC9d$`YB\x80X\x82\x84L!K\x90L\x90\x80\xF7d        \x92Y\xCFYB~\xC5        0\xC0\xF0\xA0\x8E\xDB' \xC7\xE3        Ł`\xAFσ\x81\xFD\x83 !\xB2\x84\xF9&gt; \xFE3T(H\xC0\xDFd        \x8E\xF0I0\xF0\xE7\xFF$\xE0?\xB2\x84\x87\xF8$\xF8\xF3\xFF\x94%\xE0?\xB2\x84٬g\xC0?\xFD\x8C\xFE\x9C
+?\xA7\x84 !\xC0W\xB1@ 0&lt;\xA8\xE3\xF6        \xC8\xF1xBq`\xC8q        \xFBW\xB4'KІC$KІC$KІC$K\x90\xCCz\xDC\xFB9L        \x80/g\x81`xP\xC7\xED\x90\xE3\xF1\x84\xE2\xC0p
+\x876\xFEH\x96z\x93%\x80\xDEd        \xA07YB\x80d\xD63\xE0\x9E)\xC0\x85W\xC0\xC3\x80:n\x9F\x80\x8F'8\x9A,!\xF4&amp;K\xBD\xC9@o\xB2\x84ɬg\xC0=S\x80 \xAF\x80\x86'u\xDC&gt;9O(,p4YB\xE8M\x96z\x93%\x80\xDEd        \x92Yπ{\xA6^
+ O\xEA\xB8}r&lt;\x9EPX\xE0h\xB2\x84Л,!\xF4&amp;K\xBD\xC9$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFB\xE4x&lt;\xA18\xB0\xC0\xD1d        \xA07YB\xE8M\x96z\x93%Hf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        \xC8\xF1xBq`\x80\xA3\xC9@o\xB2\x84Л,!\xF4&amp;K\x90\xCCz\xDC3%\xB8\xF0j`xP\xC7\xED\x90\xE3\xF1\x84\xE2\xC0G\x93%\x80\xDEd        \xA07YB\xE8M\x96 \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB' \xC7\xE3        Ł\x8E&amp;K\xBD\xC9@o\xB2\x84Л,!@2\xEBpϔ\xE0«`\x80\xE1        @\xB7O@\x8E\xC7\x8A M\x96z\x93%\x80\xDEd        \xA07YB\x80d\xD63\xE0\x9E)\xC0\x85W\xC0\xC3\x80:n\x9F\x80\x8F'8\x9A,!\xF4&amp;K\xBD\xC9@o\xB2\x84ɬg\xC0=S\x80 \xAF\x80\x86'u\xDC&gt;9O(,p4YB\xE8M\x96z\x93%\x80\xDEd        \x92Yπ{\xA6^
+ O\xEA\xB8}r&lt;\x9EPX\xE0h\xB2\x84Л,!\xF4&amp;K\xBD\xC9$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFB\xE4x&lt;\xA18\xB0\xC0\xD1d        \xA07YB\xE8M\x96z\x93%Hf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        \xC8\xF1xBq`\x80\xA3\xC9@o\xB2\x84Л,!\xF4&amp;K\x90\xCCz\xDC3%\xB8\xF0j`xP\xC7\xED\x90\xE3\xF1\x84\xE2\xC0G\x93%\x80\xDEd        \xA07YB\xE8M\x96 \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB' \xC7\xE3        Ł\x8E&amp;K\xBD\xC9@o\xB2\x84Л,!@2\xEBpϔ\xE0«`\x80\xE1        @\xB7O@\x8E\xC7\x8A M\x96z\x93%X@\x80\x8B\x8Dd        *\xFC6\xBD%\xCFE\xBD\x90\xCCz\xDC3%\xB8\xF0j`xP\xC7\xED\xC07{\xDCe\xF7\xD3Ё\xAE\x98en\x8AP\xBC\x8BY4\xD0\xCF\xFAlԌ\xB0\xA0\x90U\xB4\xD0îl\xD4h(p\ݳЕε=\xF5ۈ\xD6DEODK\xBA  \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB'\x80j\x8Fׂ\xEC\xB75LW\xF1P\xB4\xA4\xB5\x80\xB3\x84\xC4\xEE\xC6ʘn\xFAsђ\xBEN\x91\x93\xB9{S\xC9ts\x8D\x964p\x84\x9C\xC0\xDD\xCBJ*L|:Z\xD2Q@\xB8\xA8\xB4ݔb*\xCCz@Z\xD2Nɬg\xC0=S\x80 \xAF\x80\x86'u\xDC&gt;\xCC\xF2\xB8Y}(\xAD\x9E
+\xB3\x9E\x91~\xF4+-g7\xB1\x9E&quot;S\x93~4\x90)-d7\xB7\x9E:~t(0a7\xBD\xA4&quot;~t\x90&amp;0aWQR\x9D)\xBF\x9Dh!\x80d\xD63\xE0\x9E)\xC0\x85W\xC0\xC3\x80:n\x9F\x86=\xAERc2\xAB\xAA3巠
+\xFDD\xA9ֽ\xCCF\x95Tj\xD6\xCFA\xFA\xC8Q\x91\xAA{\x9F\x8D\xAA\xAB\xAAԬ\x854\xA2&quot;O7%UZX\x9DY\xBF
+h DE\x9E\xEE}6\xAA\xB4\xAAj\x8E\xA6s\x92Yπ{\xA6^
+ O\xEA\xB8}\xF8\xAD\xC7
+\xEA\xA5\xD8\xC2JM\xFC\x818\x9A\xCET$\xE9\xDEg\xA3\xAA\xABZ`\xEE\xCFġ\xB4
+\xB0]E\x86nJ6jq=\xCB&gt;\x88o\xA3m\x80\xBD*t\xB3\xB2Q[*Y\xFCq|m\xEC57:71\xB5\xB7\x8C-JWz \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB'\x80\xCF=\xEENS$\xB6\xAB\x80\x81g\xA7=l4+.W\x89J\xA8d\xE3GӉ\x9E6\x9A\x92\x95+\x8AA\x85\x94\xB4\xBD\xD00\xC0.SRrE\xA8\x9C¶@\xD8eJJ\xAE(\xFDUXB
+M\xC3$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFB\xF0\x89ǭ\xE9s\xBDkK\xA8\x81\xA3i`\x8B\xF7\xF9\xB8\xD2\xDCSZm9\x95p&quot;\xDDl\xF1&gt;Wz\x9AU\xDB\xC4\xF2r*\xE1D\xBA\xD8\xE2}8\xAE.\xF14\xA5\xB6\xB9\xE6T‰t \xB0Er8\xEE}mF\xC3Yt @2\xEBpϔ\xE0«`\x80\xE1        @\xB7O\xF7\xF7\xA5O\x84\x977\xBD¨b8\x8Bn\xD6{\x8B+\xCD:\xBD\xAF\xAD\xA8Ȩb8\x8Bn\xD6{\x8B+\xCD:\xBD\xAF\xAD\xA8\xC2\xC0\x928\x85V\xD6K\x8EŽ\xAF\xAD\xA8\xC2\xC0\x928\x85V\xD6K\xCEĽ\xAC\xAD\xB4\xC8\xC0\x928\x82VHf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        \xE0\xDE㾴k\x9BzYXu\x91\x81%q\xAD,\xF62Wtz_[i\x85\x99U\x91O\xAB\x8B\xBD ĕ\x9D\xDE\xD7VZafU\xE4\xD3*\xC0bɁ\xB8\x97\xB5U\x99Y\xF9\xB4
+\xB0Xl \xEEea \x8A̬\x8A|Z \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB'\x80\x8F\xCBҮU\xEAea\xF9\xD6F8\xAD,\x88{YX~\x85u\x85N\xAB\x8B\xC5\xE2^\x96_a]a\x84\xD3*\xC0b\x99\x81\xB8\x97U-\xA8\xF0}\x91u\x85N\xAB\x8Be\xE2^V\xB5\xA0\xC2\xF7E\xD6F8\xAD\x90\xCCz\xDC3%\xB8\xF0j`xP\xC7\xED\xC0\x8D\xC7ei\xCB*\xF5\xB2\xAA\xEA\xF2\xA6YZɴ
+\xB0Xf \xEEeU\xD5\xE5M)\xB2\xB46\x92i`\xB1\xC0@\xDC˒\xAA˛Ugim$\xD3*\xC0b\x81\x81\xB8\x97%U\x977\xAB\xCE\xD2\xDAH\xA6U\x80\xC5q/K*\xADmb\x9D\xD5\xE5K\xAB$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFBp\xE3qYZ\xBFJ\xBD,\xA9\xB4\xB6\x89E\x96\x96G2\xAD,\x96\x96\x89{_OQas\xEB,\xAD\x8Dp\xBAX\xECe&amp;nz\xD0\xE9}=E\x85ͭ\xB3\xB46\xC2\xE9`\xBD\xA8X\xDC\xCBb\xEA
+\x9B[gim\x84\xD3-\xC0zQ\xB1\xB8\x97\xC5U5\xBD\xC8\xD2\xF2\xA7[\x92Yπ{\xA6^
+ O\xEA\xB8}\xB8\xF7\xB8/-[\xA8\xDEW2\xBD\xA4\xA2:K\xCB#\x9Cn\xD6\xCBIƽ\xAFdzIEu\x96\x96G8\xDD\xAC\x92\x8C{_\xC6\xF4\x92\xEA\xEA\xAC+\x8F|\xBAX/$7\xA5\x8CYŔ\xD6YZ\xF94 \xB0EB&gt;\xEE}
+\x8B)-\xB2\xAE&lt;\x8E\xA0a\x92Yπ{\xA6^
+ O\xEA\xB8}x\xF4\xB82}b{S*YPg]yA\xC3[L\x89\xC8
+\x87\x9Ef}\xFA\x9BV\xD6YW!G\xD00\xC0\xB3Rrc\xB9\xA7\x89\x9F&gt;V\xC0\xCA&quot;\x8B\xCA\xE3 z\xD8eVV\xEE\xB7ѧ\x89\x9F;\xF0\xE9\xE1_-\xE9`\x97\x89q\xB9\xD3Os?\xF1W\xFE\xCDЛ\x9EHf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        \xE0\x8F[Ә\x95\x9F\xF5o\x97\xF3\x9D\xCC-\x8FCi`\xA3\xE9ѹ\xF5¿\x8AY\xE5q4mlT\x91\x9E[,\xFC\x98\xF23q:mlT\x91\x9E[)\xFC\xC1'\xFERM\xE7{Ud\xE8\x96        \xEA\x89?G\xD39ɬg\xC0=S\x80 \xAF\x80\x86'u\xDC&gt;|\xEEqw\x8A\xFEԳ~ \xD0&lt;\xC0vI\xBA\xC2y֯C\x9AHP\xA6\xAB\x96\xFC\xBC\xB3~z\xD0?@\x82\x8A&lt;]\xA9\xF0\xE7\x9D\xF2\xA3І\xFEBTD\xEA\xEA$?씟\x83N\xB4@2\xEBpϔ\xE0«`\x80\xE1        @\xB7O\x97\xA8\xE1\xFB\xBE&lt;\x9A\xD1B@\x8E\x8A`\xDDt\xE1O:\xA5&lt;\x9A\xD1E@\x94\x8Ax\xDD\ɏ9\xA56\xFA\xD1H@\x9A\x8A\x90\xDD,\xE1\xCF8\xAB&lt;\x9A\xD1H@\xA0\x8A\x9C\xDD{\xE18\xB1&lt;\x9A\xD1Kɬg\xC0=S\x80 \xAF\x80\x86'u\xDC&gt;\xBC\xF7\xB8S\xAD\x97\xFCtk\xA3\xEDĚ\xB8{#\xF9\xD1\xE6\xD6F?:
+H67s7,\xF9\xB9\xA6\xD7F?\x9A
+\xC871y\xAA
+/\x8Ff\xF4p\x84YỐDUxy4\xA3\xB5\x92Yπ{\xA6^
+ O\xEA\xB8}(\xF2\xB8hM\x94\xFC \xA5\xB5я\x8E\xF32\x88\x97\xA4
+/\x8Ff\xF4p\xA87q\xBC\xED\xAA\xF0\xF2hF\xA7\xA7\xCB\xE5\xEDMN\xE5WH'\xFA
+\xE8䔨\x94T+\xC9$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFB\xC0=#+=\xF6\x9B\xF6\x98N\x80\x8B\x95d        \xA07YB\xE8M\x96z\x93%Hf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        \xC8\xF1xBq`\x80\xA3\xC9@o\xB2\x84Л,!\xF4&amp;K\x90\xCCz\xDC3%\xB8\xF0j`xP\xC7\xED\x90\xE3\xF1\x84\xE2\xC0G\x93%\x80\xDEd        \xA07YB\xE8M\x96 \x99\xF5 \xB8gJp\xE1\xD50\xC0\xF0\xA0\x8E\xDB'\x80s=\xEEr\xD6&lt;\x8E\xA3\x93\x80\xAF\xF5&amp;6(\x96\xC5A4-\xF0=*\xA2\x82\xBF\xB5\xFB;\xE0\xE9R\xA0\xB7\x8A&lt;\xE0\xBB\xBF\xBE\x88\xE6Z\xAAH\xFF\xD9\xFDUџ\x9EHf=\xEE\x99\x5 0&lt;\xA8\xE3\xF6        `\xA3\xC7e,\xD6\xEEo\x8E\xB6\xB4&quot;\xD0FE\xBEo\xBD\xDD\xDF&quot;
+iB\xA0\x81\x8AL\xDF^\xBB\xBFQZ\xD1~\xC0\xD1*r|9v\xBB4\xA1\xF1\x80CUd\xF7\xED\xFE\x9A\xE9@\xD7$\xB3\x9E\xF7L        .\xBC\x9E\xD4q\xFBP\xEDq\xE3jf\xF7\xF7\xCD\xD9\xF4p\x96\x8A\xA4\xDEv\xF1\xEC\xBF\xEC\xDB\xCBn\xED:\xC0\xFC\xFFO\xA7ѝ\xBE\xC1\x81}\xAE_\xDBԢ\xEC\xAA\xD9E\xA6Y\xDB50\x91\x8A\xBD\xB9\xA4w\x80)i3`\xA3y3J\xEF\xF3\xD1c\xC0*\x86\xF2\xE6\x95\xDE
+&amp;\xA3\xC1:s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9Fn\xB4{\xB9z\xA7\xF4\xB60\xDDtV1\x85\xF7\xE9\xCDaZ \xE8\xACb\xEFI\xD2\xFB\xC3\xF4\xD0V\xC5\xF0\xDD\xF3\xA4w\x89        h*\xA0\xA7\x8A\xB1\xBB\xA7J\xEF\xDD\xE9(\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80\xED^\xA8XH\xEF\xADi'\xA0\x9B\x8AQ\xBB7H\xEF}\xE9%\xA0\x95\x8A!\xBB\xF7H\xEFMi$\xA0\x8F\x8A\xF1\xBA\xB7I\xEF!\xE9&quot;\xA0\x8F\x8Aٺ\xB7I\xEF!\xE9&quot;\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80 v/Qüs\xFD&lt;\x98:\xA8\xA9\x8B\x8FM=򡘑\xFE:\xA8\x98\xA7k5*\xF5\xF8\xA43\xFD\xC4U ӵ\x9D\x90z\xD5\xC3҄\xE6\xE2*&amp;\xE9\x9A\xCFF\xBD\xF0\x91'\xF5\x8C\x82k\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80\xE3v\xEFNJ?ߖ7?{[\x8F,\xFEԋ\xE0\xAEѭy\xE7\xA1T\xA0\x89\xEFŒk\xA3btk\xC6a(uȪ\xAB\x93\xBD\x98h\xA9\xC0\xF3&lt;lb\xEBC\xAA1^E\xCD\xEE\xC8\x8B\x9E\xEA\x83Z7R\x90an/u\xE7M\xE9\xBFB\x807s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\x8Eؽ5\x9D\x95~\xA0{(\xCB\xB7\xF9\x82\xCE\xCF;rm\xC0\xB3\xCD;\x99UMeJ\xDD[\xDEO\xB4}\xE4a oƙ\xACa\xA7ȍ\x85\xBDEϧ\xB3*\xE0\xF1\xA6\x9B\xC6O\x89nwcIo\xD4\xF0\xC1,        x\x83\x89氂T\xE9Fw\xB3B\xB7g\xAF^r=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9Fv\xED^\x99J?G-U\xBAQ]\xFBoP\xB7\xF5/\xF1\xF9\xF8\xD5K&amp;\x9E\xEA\xC3\xEA\xD6s\x8FZ-x\x89\xCB\xF3V/\x9CxR\xABύ/W\xB7
+j\xB5\xE0%.LZ\xBDy\xDCI\xB9&gt;)T\xAB=\xEA\xB3\xE0=.\x8CY\xBDy\xDCI\xB9&gt;\xACR\x9F=\xEA\xB3\xD6\πmN        \xBC.pxP\xC7\xD7'\x80m\xBB\xF7%\xAA\xBB,^\xA2\xDBt\xB2Y\xDE\xDB-\xC0\x8D\xCEN6\x99uR\xB1k:ԧ\xC36\x9Dl\x96\x97v p\xAF\xB3\x93M\x9D\xBE\xED\x92&amp;ʼno\x93n;;\xD6d\xD0釺]Ч2ٕh`\xB0\xB3cM\x9D~\xA8\xDBY\xADʒ\xDD&amp;\xADЙ\xEB\xB0\xCD)\xC0\x82W\xC0O\xEA\xF8\xFA\xB0a\xF7\xB2\xE46\xF5W\xEAvV\xAB\xB2d\xB7I\xAB\x83\x9Dk2\xE8\xF4C\xDD\xCE\xEAV\x93\xE06i`\xB0\xB3cM\xA6\x9C~)\xDD)\xDDj\xDC&amp;\xAD vv\xACɔ\xD3/\xA5;\xA5[M\x82ۤU\x80\xC1Ύ5\x99r\xFA\xA5t\xC75\xACIpIZ\xA03\xD73`\x9BS\x80\xAF\x80 \x9E\xD4\xF1\xF5        `\xC3\xEEe\xC9U\xEA\xDF(\xDDq
+k\\x92V;;\xD6d\xCA\xE9\x97\xD2װ \xC1m\xD2*\xC0`gǚL9\xFDR\xBA\xE3$\xB8MZ\xEC\xECX\x93)\xA7_Jw\Â\xB7I\xAB\x83\x9Dk2\xE5\xF4K\xE9\x8EkX\x90\xE06i\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80
+\xBB\x97%W\xA9\xA3t\xC7u+Hv\x8F\xB4
+0\xD8ٱ&amp;SN\xBF\x94n^\xD9=\xD2*\xC0`gǚL9\xFDR\xBAye\xF7H\xAB\x83\x9Dk2\xE8\xF4C\xDD\xE6\xDF#\xAD vv\xACɠ\xD3u\x9BT\x87
+\xD2*\x9D\xB9\x9Eۜ,x5\\xE0\xF0\xA0\x8E\xAFOv/KnS\xA5n\x93\xEA\xB0AZ\xEC\xECX\x93A\xA7\xEA6\xA3&amp;\xBB\xF3y\xF3ܥ\xF41\x80V\x8C#]\xA0hsi\xB5A6ύJh\xC5D\xD2Y*6\x97n\xBB\xF3y\xFFܥ\xFAI\x80&gt;L$\x9D\xA5b\xB3\xE8\xB95\x9F\xF7\xCF]~\xB3X\x9B(\x8A\xA2(\x8A\xE2\xCB\xE3\xD7\xF1E\x8A\xA2\x8CG\x8E\x88\xF8&quot;EQőq\xEB\xAD\xF0\x8F\xF8&quot;EQ\xBB\xC5\xE3'g\x9F5\x8B\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xB3į=\xDF\xEF\xB6{_:&quot;\xFD\xE3(Ws\xFD\xF7\xE5\x96\xBA\xC5w\x8F\x9Fl\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2X\xF8\xD3\xD7\xD21\x8Er\xDDR\xFC\xF8\xA6\x94&gt;\xC5)\xDFm~\xA3\x89\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8AbE\xE0O_7I?\xC7j\x95uW\xFD\xB3;R\xF7g}\xB7\xF9\x8D&amp;\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\x80\x85\xAF;\xA4b\x85ʺ\xA5\xFE\xF1\xED\xA8x\x8Ak\xBE\xDB\xFCFEQEQEQEQEQEQEQEQEQEQŊ\xC0\xC2\xD7M\xD2\xCFQK\x95\xE2\xEEڂ\xECF\xDC\xFB\x9F\xF8n\xF3MEQE\xB1O\xFC: \xBEHQ\x83\xF1\xC8_\xA4(\x8A\xA282n\xBD\xFE_\xA4(\x8Ab\xB7x\xFC\xE4\xEC\xB3fQEQEQEQEq\x96\xF8\xB5\xE7\xE0\xF5v\xAFLǥ\xA5\x8Aup\xE3.\xF7\xE2\xF6\xA7\xB8\xEC\xBB\xC7O6QEQEQEQEQEQEQEQEQEQEQ,\x8A,|\xDD'\xFD(U\x94\xA8\x83w!\xB8#EOq\xC1w\x9B\xDFh\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2(\x8A\xA2XX\xFB\xBAO\xFAQ\xEE\xA78Mܸ\xC1\xAD)}\x8AS\xBE\xDB\xFCFEQEQEQEQEQEQEQEQEQEQŊ\xC0\xDA׭\xD2Os'\x95\xE9\xE3޽HmЀ\xA78\xE8\xBB\xCDo4QEQEQEQEQEQEQEQEQEQEQ\xAC\x88\xAC}\xDD-\xFD@\xF7P\x96Vnߎ\xC8\x8Dy\x8A#\xBE\xDB\xFCFEQEQ\xEC\xBF\x88/R\xC5`&lt;rD\xC4)\x8A\xA2(\x8E\x8C[o\x85\xC4)\x8A\xA2\xD8-?9\xFB\xACYEQEQEQEQ\x9C%~\xED\xF9\xE0v/Ng\xA5\xE8S
+\xD2\xCD\xED;٩aO\xB1\xAB\xF41\x80\x9E +\xFDI5\xAAؔ\xF1\x9B5\xF2)\xB6\xD5=#Ж\x91\xA5\xEA0\xB5\xFE\xFB\xD5d\xC0k\xDD8\x875\xE9&lt;\x94
+&lt;L\xC3]\xEB\xB0\xE0\xCD&gt;\xBC\x9Az*\xEA\xCD\xCF\xFE}v\xAD\xC3\xF87\xAEg\xC06\xA7 ^
+8&lt;\xA8\xE3\xEB\xC0)\xBBקϥq酏\xFCZ\xF6.\xBE\x80 \xC3Vפ\xF4\xBF^\xF5\xB0\xFC\x88\xEF]|\xDF'\xECR\xA3R\x8F@\xB6ewP\xFF\x9C\x9Du\xBA\x91\x87b\x8C\xE0\xEA\xA0\x89\xB3\xE3Nu޹~H\xED\xA3\xE8\xCC\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}\xB8f\xF7Ů\xF4\xB2#\xB2\x95\xBA\xE8\xE3\xEC\xC4k\xE9=dGd+u\xD0\xCA١'\xFE\x94\xDE=\xBF\x9B        \xE8\xE6\xEC\xDC?\xD2\xFB\xC6Q\xE3\xF7T/
+\x9D}&quot;\xBDc\x9C0~[\xB5@g\xAEg\xC06\xA7 ^
+8&lt;\xA8\xE3\xEB\xC0\xE7v\xEFT\xFCJ\xEF\xA7
+\xDEY\xB4uv\xEA\x9Dһ\xC4\x837WS\x9D\x9D\x9D\x81z\x9B\xF4\xFEp\xD1\xE0\xFD\xD5W@sgǠ\xDE#\xBD3MMQ\xBA\xC1[\xAC\xB5\x80\xFE\xCENB\xBDAzO\xFA\x9A\xA2z\x83wYwt\xE6zlsJ\xB0\xE0\xD5p\x81\xC3\x80:\xBE&gt;\xDCn\xF7\x8A\xF5*\xE9\xDDhm\x8A\xDEh
+\xCC\xE2\xEC&lt;\xD4S\xA5\xF7\xA1\xBB)j8x\xAF\xF50\x91\xB3#Qϓށ        LQ\xC9\xC1\x8B\xD4f\xC0\\xCENE=F\xBA\xF0Ә\xA2\x9E\x83\xA9\xD9\x80\x9D\x9D\x8D\x9A]\xBA\xDE3\x99\xA2\xA4\x83\xA9\xDF:s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9Fؽt=C\xBA\xCCSj^\xD8\xF1[\xAF\xEB\x80\xA9\x9D\x92\x9AK\xBA\xBA\xB3j^\xDB\xF1\xBB\xAF\xF1\x808;*\xD5_\xBA\xA2sk^\xE4\xF1\xCB\xD3~\xC0c\x9C\x98\xEA)]\xC5'h^\xEA\xF1\xCBӄ\xC0Ü\x9B\xEA#]\xB9Gi[\xF0H3hE\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80voeM\xA4\xEB\xF4L=\x8B\x9F\xEA
+=        &lt;\xDB\xD9)\xAAa҅y\xB8\x9E\xBB\x90j\xCD        \xBC\xC7ى\xAA
+\xE9\xBCH\xB7        6\x89.^\xEB\xEC\x80\xD55\xE9\xA7|\xAFV{\x94홓=\xABi\x80\x87;;ue\xAB\xAD&gt;\x8D\xAC\x93\x86r=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\xA0\x83ݛ\xF9\x80+\xFA\xF15ԭ\xA4\xC3\xA0B|\x86.\xBE\x80V\xCB\x80
+\xA91\xBA\xB3\xB7t\x88\xAF\xC92\xA0\xC8ȱ\xBEk\xABz\x82\xAF\xCFJ\xA0\xC2'\xF3}\xEB&gt;\xFC\xD5\xE3{\xAD\xC0\x82\xEB\xB0\xCD)\xC0\x82W\xC0O\xEA\xF8\xFA\xAD\xEC^ѳ\xBA=~\xF5z\xA0B\xC5 \xE0-&gt;\xFB\x80%@\x85\x8AI\xC0\xF5|\xF01\xAB\x80
+󀗵}\xEAa \x80
+S\x81t~\xE4\x91k\xC0\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}\x80\xCEvo\xEC\xA5\xFA?\xEF\xF8@\x85\x8A9\xC1\x9EczS,\x8AT vЛh\xA9P\xA4bx\xB0\xCF\ތk\x80&quot;O!\xFC5\xF5\xE2\xCF\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}\x80gؽ\xDBOq\xC9?\xFE\xFD\x9FX3K\xCFf\x96\x9E\xCD,!&lt;\x9BYB\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ERL\xC9\xC1\xFE\xB3\x80\x94\xCFg        
+@\xC1\xFE\x95:s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\x8Eؽ5}&quot;\xFDpЈ \xA5b\x84\xD0`\xAC\xF9\x97R*\xC6\xCDI\xC1\x9A\xFF \xA5bN\xF0\xACt
+`\xFF@J\xC5l\xE0\x87\xD2%\x81\xFE:s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\x8Eؽ5e\xA5\xCB\xB7\xD1\xFC@J\xC5`\x91t\xA9\xE0#H\xA9\xFA#]98G\x87)S~㥫\xFBt5\x90R1ٗ\x95\xAE(\xFC\x9DN\xE8\xCC\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}8b\xF7\xD64\xBBt\x81\xE1\xFF\xB4.W1\xC7\xD7M\xBAƼ\x9AvZ\xA9\x98\xE3k(]f\xDEE\x9DU\xCC\xF1u\x93\xAE1ϧ'\x80YT\xCC\xF1u\x93\xAE1Ϥ:s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\xAA\xED޸\x9E!]fB\xE3\xB3\xAB\xE2k(]f&amp;\xA6\xD9\x80\x87\xA9\x98\xE3k(]ff\xA2\xBB\x80\xAB\xE2k(]f\xBA\xD3Q\xC0KT \xF15\x94.3\xE9&quot;\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80\xFEv\xEFlϐ.3-h\x80\x8A!\xBE&gt;\xD2\xD5%O\xCF\xFC\xA9b\x9A/+]Q\xF2\xF4 \xC0\x86\x8A\xE1\xBE\xC1\xD2%$O\xCFT1\xE87@\xBAl\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80\xC7۽\xF2\xF5\x91.yz\xE0s3\x80wI׆&lt;=p\xAF\x8Ay\xC0O\xA4\xEBA\x9E\x9E\xA8S1xV\xBA\xE4\xE9\x80a*Fͅ\xB1K\xCFt\xE6zlsJ\xB0\xE0\xD5p\x81\xC3\x80:\xBE&gt;\xB0k\xF7\xD2x\x97􃒧g\xE2*Fͅ\xF1K\xCF\xB4b\x96\x90\xDB\xE9\x80&amp;n\x9F&quot;4\xC6=T1&lt;h.\x8C=Й\xEB\xB0\xCD)\xC0\x82W\xC0O\xEA\xF8\xFA\xC0\xBFٽ+\xDE.\xFD\xC4\xE4\xE9\x80j\x82\xE6\xC28N\xCFT\xA8\x98
+\xBC&amp;]        \xF2\xF4 \xC0]*&amp;?\x97\xAE
+yzಊѿۥ\x8BD\x9E\x9E\xE8\xCC\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}x\xB0\xDD\xCB^7邑\xA7gvU\x8C\xF8
+\x93.yz`\xADb\xA6/%]K\xF2\xF4 \xC0\x8F\x8A9\xBE\xD2u%O\xCFoV1\xBB\xD7M\xBA\xC6\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80\xCEvokO\x92.6-h\xE0\xF1*f\xF4:Kכv\xB4\xF0H3z\x9D\xA5\xEBMk\xDA        x\x8C\x8A\xBD\xB6\xD2\xC5f&amp;\xBA \x98WŌ^g\xE9z3+\x9DЙ\xEB\xB0\xCD)\xC0\x82W\xC0O\xEA\xF8\xFAPg\xF7\xAE\xF5$\xE9b\xF3\xE8\xAFbL\xAF\xADt\xB1y M\xF4T1\xA6\xD7V\xBA\xD8&lt;\x9C\x86\x9A\xA8\x98\xD1k+]l\xDEEAczm\xA5\x8B\xCD{\xE9U\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xB3K\xFEO\xEB)\xE3{q\xE9\xA2\xC2_hc \xA5b\x94o\xBCta\x9F\xAER*&amp;\xFB\xC6HW\xCE\xD1\xE1@JŔ_\x9Dt\xB5\xE0:\xDDЙ\xEB\xB0\xCD)\xC0\x82W\xC0O\xEA\xF8\xFAp\xC4\xEE\xAD)+]\xB8\x8D\xE6R*?\x94.        \x94\xF0\x8F\xA4T \x9E\x95\xAE\x8C\xE0\xFFH\xA9\x98
+4'k\xFEG\x80\x94\x8A9A\xB3Q\xB0\xE6\xFF\xA03\xD73`\x9BS\x80\xAF\x80 \x9E\xD4\xF1\xF5        \xE0\x88\xDD[\xD3'\xD2\x8D\xF8\xF7R\xCC\xC2\xFE\x95\x80Ã0\x86\xFF, \xE5\xF3YB\x8EH\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9 \xA5bn\x8E\xB5\xF4&gt;\x93\xA7g\x80\x94\x8A\xB99\xD6\xD2\xFBL\x9E\x9ER*\xE6\xE6XK\xEF3yzH\xA9\x98\x9Bc-\xBD\xCF\xE4\xE9\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\x80#voM\xDC&quot;\xBD\xCF\xE4\xE9x6\xB3\x84\xF0lf        \xE0\xD9\xCC\xC0\xB3\x99%\xE8\xCC\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}\xFA\xD8\xFD\x85\xE2 L\xCD,!&lt;\x9BYBx6\xB3\x84\xF0lf        :s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\x80&gt;v\xA1\xF8\xC1S3K\xCFf\x96\x9E\xCD,!&lt;\x9BYB\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\xA0\x8F\xDD_(~\xB0\xC0\xD4\xCC\xC0\xB3\x99%\x80g3K\xCFf\x96\xA03\xD73`\x9BS\x80\xAF\x80 \x9E\xD4\xF1\xF5        \xE8c\xF7\x8A,05\xB3\x84\xF0lf        \xE0\xD9\xCC\xC0\xB3\x99%\xE8\xCC\xF5 \xD8\xE6\x94`\xC1\xAB\xE0\x87'u|}\xFA\xD8\xFD\x85\xE2 L\xCD,!&lt;\x9BYBx6\xB3\x84\xF0lf        :s=\xB69%X\xF0j\xB8\xC0\xE1        @_\x9F\x80&gt;v\xA1\xF8\xC1S3K\xCFf\x96\x9E\xCD,!&lt;\x9BYB\x80\xCE\πmN        \xBC.pxP\xC7\xD7'\xA0\x8F\xDD_(~\xB0\xFC\x87};H\xA1(x\xFF[\xB7wQ\xFA\x999\x84i\xF0`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3@6-!\xC0d\xD63\xE0Δ\xA0\xF04|0&lt;\xE8\xE3\xF7        \x98\xE3y\xA18X`5-!d\xD3@6-!d\xD3Lf=\xEEL        
+O\xC0\xC3\x80&gt;~\x9F\x809\x9E\x8A\x83V\xD3@6-!d\xD3\xC0a\xEF\x8Evs\xC7qt\x81\xE6\xFD_:szr\xA6\xE0vR\xB6\xE8ߦHy-\xF8\x86\xC0\xECHr\xA3&gt;\x99Q\x84X\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\xD6\xE6.!\xAC\xCD]BX\x9B\xBB\x84\x95\xF9&lt;\x8EI        vl
+O\x9E\xE3\xB7O@\xA7\x8A\x86Zs\x97\x80D\x8F\xBF\x807\x9B\xDD\xC1L\xA0u`O\xFCu1\xB0\xAA\xD9 \xC0Z'\xF0\xC4_\xAB\x9A\xDD\xC1L\xA0u\xA8\xCC\xE7pLJ\xB0ck\xB8@x,\xE34\xD2\xFEQ\xA7UI\x9B        @\xD9\xD6        \xC6]\xFA\xF3a\xE0\xA5fw0h\x9DX\xC0] \xACjv0\x81\xD6        \x80&lt;\xF1\xD7\xC5\xC0\xAAfw0h\x9DX\xC0] \xACjv0\x81\xD6        \xA02\x9Fg\xC01)\xC0\x8E\xAD\xE0\xE1        \xD0\xCEit\3\xA5\x85ybP\x80?U\xE8\x92`Х\xBF87\xBB\xDDx\x96.        \x80F\x9E\xF8\x83a\x80/% \xACN\x97@#O\xFC\xC10\xC0\x97\xBF\x92V\xA7K\xA0\x91'\xFE`\xE0\xCB_\xC9\xAB\xD3%T\xE6\xF3 8&amp;%ر5\ &lt;\xDA9\x8Dn\x80k\xA6\xB40O
+\xF0\xA7
+] \xBA\xF4\xC1\xE7f\xB7;\xCF\xD2%\xD0\xC80 \xF0\xE5\xAFd\x80\xD5\xE9\x92h\xC4170H\xFB\xB0\xA5K\xA0\xC7\xDC\xC0 \xED\xC0\x96.        \xA02\x9Fg\xC01)\xC0\x8E\xAD\xE0\xE1        \xD0\xCEitKr\xE0G\x85\xF6A\xCF\xD4Q\xA1K\x80A\x8E\xB9\x80A\xDA\x80-]\x8D8\xE6i\xB6tI4\xE2\x98\xA4}\xD8\xD2%Јcn`\x90\xF6`K\x97P\x99\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%9\xF0\xA3B\xFB\xA0g\xEA\xA8\xD0%\xC0 \xC7\xDC\xC0 \xED\xC0\x96.        \x80Fs\x83\xB4[\xBA$q\xCC
+ \xD2&gt;l\xE9\x92h\xC4170H\xFB\xB0\xA5K\xA8\xCC\xE7pLJ\xB0ck\xB8@x\xB4sݒ\xF8Q\xA1}гuT\xE8\x92`\x90cn`\x90\xF6`K\x97@#\x8E\xB9\x80A\xDA\x80-]\x8D8\xE6i\xB6tI4\xE2\x98\xA4}\xD8\xD2%T\xE6\xF3 8&amp;%ر5\ &lt;\xDA9\x8DnI\xFC\xA8\xD0&gt;\xE8Y\x80:*tI0\xC8170H\xFB\xB0\xA5K\xA0\xC7\xDC\xC0 \xED\xC0\x96.        \x80Fs\x83\xB4[\xBA$q\xCC
+ \xD2&gt;l\xE9\x92*\xF3y\x93\xEC\xD8.\x9E\xED\x9CF\xB7$~Th\xF4,@\xBA$\xE4\x98\xA4}\xD8\xD2%Јcn`\x90\xF6`K\x97@#\x8E\xB9\x80A\xDA\x80-]\x8D8\xE6i\xB6tI\x95\xF9&lt;\x8EI        vl
+O\x80vN\xA3[\x92?*\xB4z\xA0\x8E
+] r\xCC
+ \xD2&gt;l\xE9\x92h\xC4170H\xFB\xB0\xA5K\xA0\xC7\xDC\xC0 \xED\xC0\x96.        \x80Fs\x83\xB4[\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1-\xC9\x80\xDA= PG\x85.        9\xE6i\xB6tI4\xE2\x98\xA4}\xD8\xD2%Јcn`\x90\xF6`K\x97@#\x8E\xB9\x80A\xDA\x80-]@e&gt;πcR\x80[\xC0\xC2\xA0\x9D\xD3\xE8\x96\xE4\xC0\x8F
+탞\xA8\xA3B\x97\x83s\x83\xB4[\xBA$q\xCC
+ \xD2&gt;l\xE9\x92h\xC4170H\xFB\xB0\xA5K\xA0\xC7\xDC\xC0 \xED\xC0\x96.        \xA02\x9Fg\xC01)\xC0\x8E\xAD\xE0\xE1        \xD0\xCEitKr\xE0G\x85\xF6A\xCF\xD4Q\xA1K\x80A\x8E\xB9\x80A\xDA\x80-]\x8D8\xE6i\xB6tI4\xE2\x98\xA4}\xD8\xD2%Јcn`\x90\xF6`K\x97P\x99\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%9\xF0\xA3B\xFB\xA0g\xEA\xA8\xD0%\xC0 \xC7\xDC\xC0 \xED\xC0\x96.        \x80Fs\x83\xB4[\xBA$q\xCC
+ \xD2&gt;l\xE9\x92h\xC4170H\xFB\xB0\xA5K\xA8\xCC\xE7pLJ\xB0ck\xB8@x\xB4sݒ\xB8\x97\xD8\x80\xBE*\xEC\xE3&gt;\x80:*tI0\xC817\xF0\xA8h\xC8&quot;\xA8̮
+\xB0\xA5K\xA0\xC7\xDC\xC0\xED\xA2\xC1r\xD9\xEC\x85\xC0\xEBج\xB6tI4\xE2\x98\xB8Q4R\xEE2{\xDD\xFF%y\xE6\x99\xC3%/
+\x80\x82B{\x81\xEDX\x9E.        \x80Fs\x9F\x8B&amp;\xC9sf\xBF\x89\xFFH\x9Ep\xE6p\xC9K\xA0\xA0\xD0^`;\x96\xA7K\xA8\xCC\xE7pLJ\xB0ck\xB8@x\xB4sݒ8\x8D\x91\x8D^H\xAFᒗ@A\xA1\xBD\xE0\xA1\xED\xC0\xD4Q\xA1K\x80A\x8E\xB9\x81ˢ\x92\xAC\xC5k\xE95\\xF2\xD2((\xB4\xD8\x80\xE5\xE9\x92h\xC417pA4:f\xA9\xFFrz
+\x97\xBC4
+
+\xED\xB6`y\xBA$q\xCC
+DEsc\xBA\xCA\xEF\xA7\xD7p\xC9K\xA0\xA0\xD0^`;\x96\xA7K\xA0\xC7\xDC@H44\x8A(\xFB\x8Az
+\x97\xBC4
+
+\xED\xB6`y\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1-ɁD\xA3\x9A\x82o\xA9\xD7p\xC9K\xA0\xA0\xD0^\xF0\xD0v`\xEA\xA8\xD0%\xC0 \xC7\xDC\xC0\xA0h\\xD4T\xEDE\xF5.yi\xDA l\xC0\xF2tI4\xE2\x98͊\xCAJ\xBD\xAB^\xC3%/
+\x80\x82B{\x81\xEDX\x9E.        \x80Fs\xA7\xA2AQ_\x9D\xD7\xD5k\xB8\xE4\xA5PPh/\xB0\xCB\xD3%Јcn\xE0X4%n\x8C\x91ۇ\xBE6\x8DG\xDFX\xAFᒗ@A\xA1\xBD\xC0v,O\x97P\x99\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%9\xBCY4&quot;\x8D\x8E\xBB&amp;s\xE3\x94&gt;\x9Fg\xAFᒗ@A\xA1\xBD\xE0\xA1\xED\xC0\xD4Q\xA1K\x80A\x8E\xB9\x81ш\xC8I\x8CgUjz\xBD\x86K^\x85\xF6\xDB\xB0&lt;]\x8D8\xE6\xFEM4\x92\xB3\xE2\x93\xE9=:\xCF\xE4        d\x97\xBC4
+
+\xED\xB6`y\xBA$q\xCC
+\xFC)\xB3\x82\xE2\x93y&gt;4\xD5\xE4        d\x97\xBC4
+
+\xED\xB6`y\xBA$q\xCC
+\xFC)#\xE2\xDAT\x97\x89\xB5\xCCž\xEA\xC5\xF0\xA7\xD0^`;\x96\xA7K\xA8\xCC\xE7pLJ\xB0ck\xB8@x\xB4sݒ^(\x9A \xD3\xF3\xE1ڄ\xA7O\xFB\x99\x8B}Ջ\xE0O\xA1\xBD\xE0\xA1\xED\xC0\xD4Q\xA1K\x80A\x8E\xB9\x81ߢ\xC9P!\xAE͹\xC2\xCC?\x94\xB9\xD2\xF7\xBCU\xFEMh/\xB0\xCB\xD3%Јcn\x86\xF8\x9F\xFEe\xA2\xC9P$.L\xBB\xCE\xE4/\xCB\\xE9{\xDE*\xFF&amp;\xB4\xD8\x80\xE5\xE9\x92h\xC417\xFF\xE5\xFF\xFDO}XN4J%Å\xC9W[BT\xE62_\xF2J8\xDA l\xC0\xF2tI4☛\xFF\xB8p\x85Х\xC2uu\x8F\x85\xE8\xFCk\xAEb\\xE62_\xF2J8\xDA l\xC0\xF2tI\x95\xF9&lt;\x8EI        vl
+O\x80vN\xA3[\x92\xAF\xEC\x96+\x84..\xA7{,D\xE7_s\xE32\x97\xF9\x92W
+\xC0\x81\xD0^\xF0\xD0v`\xEA\xA8\xD0%\xC0 \xC7\xDC/\xF5\xD0-B7
+\xFB[#\xA2\xAB\xA8\xBC\x96S\x99k|\xC3\xFB\xE0Xh/\xB0\xCB\xD3%Јc\xEE\xD7I\xB8E\xE8FagkdBt\x95\xD7r*s\x8Dox\x9F \xED\xB6`y\xBA$q\xCC\xFD&quot;ɷ\xDD(\xECi\x99L\x88.\xA4\xF2Z\x8Ee\xAE\xF1
+\xEF\x80c\xA1\xBD\xC0v,O\x97@#\x8E\xB9\xDFb\xE2EB\xD7        [Y&amp;\xA2 \xA9\xBC\x96c\x99k|\xC3\xFB\xE0Xh/\xB0\xCB\xD3%T\xE6\xF3 8&amp;%ر5\ &lt;\xDA9\x8DnI\xBE\x82\xE9        ]'lb\xA5@\x88\xAE\xA5\xF8rd\xAE\xF1
+\xEF\x80c\xA1\xBD\xE0\xA1\xED\xC0\xD4Q\xA1K\x80A\x8E\xB97\xFD\xFE\xA0\x85\xAD,\xD1\xE5\xD4_џ2\xB8\xFC\xCB\xE0Th/\xB0\xCB\xD3%Јc\xEE\x95M\xBF6\xE8:a7\x8BBt9\xF5W\xF4\xA7\xCC.\xFF28\xDA l\xC0\xF2tI4\xE2\x98{Y\xD3/ \xBAN\xD8\xD0b\x81]N\xFD\xFD)s\x81˿LN\x85\xF6\xDB\xB0&lt;]\x8D8\xE6^\xD3\x{12B0AE}\xF6\xB4X D\x97SE\xCA\\xE0\xF2/\x80S\xA1\xBD\xC0v,O\x97P\x99\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%y?\xD3/        \xBAN\xD8\xD6b\x81]N\xFD\xFD)s\x81e_fhb\xB3&amp;        \xB0\x86
+I+\xDE\x80:*tI0\xC81\xF7\x82\xA6\xDFt\x97\xB0\xAD\xF5a\xBD\xFD\x96\xB9\xC0\x9A/34\xAB)3X\x89\xB0\xD8\xD2%Јc\xEE\xD5L\xBF\xE8:ag\xEB”%\x8F\x989\\xF2\xD2n\x9FR\xFE\xF4\xD6#o\xB6tI4\xE2\x98{)\xD3/\xBAN\xD8\4\xEAg”\xE5$\x8F\x989\\xF2\xD2\xEE\x9DO\xF2\xDCV%r\xB6tI4\xE2\x98{ӯ\xBAN\xD8_4dŸ\x92_`\xE6p\xC9K\xBBq2\x99X\x9B\xD4\xD8\xD2%T\xE6\xF3 8&amp;%ر5\ &lt;\xDA9\x8DnI\xDE\xC6\xF4\xFB\x80\xEE\xF6
+\x99\xF0\xA7\xE4\x989\\xF2\xD2\xEE\x9AIڬޠB\xF0J{\xA0\x8E
+] r̽\x88\xE9\x97]'\B4\xC4Ÿ\x92\xDF^\xE6p\xC9K\xBBe9Sx\xD9 \xB0\xA5K\xA0\xC7܋\x98~\xD0]\xC2UD3A,\xFC\x96\xFC\xF62\x87K^\xDA\xE7sH\x98\xC0ۈ_\x80-]\x8D8\xE6^\xC1\xF4k\x80\xAE.$\x9A        \x92\xE1\xB7\xE4W\x979\\xF2\xD2&gt;\x9C\xC0ӓx'         \xB0\xA5K\xA0\xC7\xDC+\x98~\xD0]…D3A8\xFC\x96\xFC\xDE2\x87K^\xDA'\xA3?:\x807\xC2[\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1-ɫ\x9B~\xD0uµD3A&gt;\xFC\x96\xFC\xD22\x87K^\xDA塟\x9BrX\xF8uT\xE8\x92`\x90c\xEE\xF6\xA6\xDF\xFEs\x97p-\xD1L\x90\xBF%\xBF\xAE\xCCᒗvm܇\xE6\xC0Q \xB0\xA5K\xA0\x91f\xC7\xDC\xD3o\xBAy&lt;\xF9τ\xFF\xCEn\x90?\xED:\x92_T\xE6p\xC9K\xBB0\xE8`Kl\xE9\x92h\xA4\xD91\xF7\xF4[]O\xFE3ῳ\xDB\xE4O\xBE\x82\xE4W\x949\\xF2Ң#\xDE&gt;:\xBF        d\x80-]\x8D4;\xE6\x9E~\xAB\xCB\xE3\xC9\xE6\xFC\xA7v\xB3)\xAB\x98%\xF9\xCDdWyi\xF7
+\xC0\xBF\x91\xC9[\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1]+ɧ\xDF\xEA\xF2x\xF2\x9F9\xFF\xA9=e\xCAr\x92%\xBF\x90\xCC\xE1ʎu\xE3\xB8\xAB\xCB\xF6\xA0\x8E
+] jv\xCC=\xFDV\x97Ǔ\xFFL\xFB\xAF\xEDq\xB3\x96\xF6\xB4䗐9\\xDAX\xA1\x81n\ \xA7$3\xC0\x96.        \x80F\x9AsO\xBF\xD5\xE5\xF1\xE4?\xD3\xFEkK5k\x99OH^x\xE6p9c\x85F\xB9qu\x8C\xCE[\xBA$iv\xCC=\xFDV\x97Ǔ\xFF\xCC\xFCn\x8E\x89K\xBEE\xF2b3\x87K+4čK`\x90|\xD8\xD2%\xD0H\xB3c\xEE鷺&lt;\x9E\xFCg\xF2s\x93\xCD]\xFE5\xC9 \xCC\xEE\xE9\xB1B?\xFF\xC6u0NDl\xE9\x92*\xF3y\x93\xEC\xD8.\x9E\xED\x9CFw\xAD$\x9F~\xAB\xCB\xE3\xC9f\x8B\xA6ģf\xBF\x8C!\xC9+\xCA\xEEѱB?\xFC\xC6ER!\xA5m
+@\xBA$\xD4\xEC\x98{\xFA\xAD.\x8F'\xFF) 9f\xBF\x95\x95\xBC\x8A\xCC\xE1\x9E+\xF4\x93o\Q\x82`K\x97@#͎\xB9\xA7\xDF\xEA\xF2x\xF2\x9F\xA2Y\x91l\xF6\xEB\xF9/\xC93\xCFB?\xF9\xAE\xE5p\x81\xAC\xD8\xD2%\xD0H\xB3c\xEE鷺&lt;\x9E\xFC\xA7\x8Ch\L1\xFB%\xFDG\xF2\x843\x87{h\xACЏ\xBDk-\#\xAE\xB6tI4\xD2\xEC\x98{\xFA\xAD.\x8F'\xFF)&amp;\xB3tyE\xBD\x86{b\xAC\xD0ϼk!\&amp;\xB1\xB6tI\x95\xF9&lt;\x8EI        vl
+O\x80vN\xA3\xBBV\x92O\xBF\xD5\xE5\xF1\xE4?%E\xA3c\xA2\xE2/\xA7\xD7p\xB7\x8F\xFA\x81w\xAD\x80OTm;PG\x85.        5;\xE6\x9E~\xAB\xCB\xE3\xC9
+\x8B\xC8De_K\xAF\xE1\xEE+\xF4\xD3\xEEZ\x92\xDB[\xBA$iv\xCC=\xFDV\x97Ǔ\xFF\x94\x8D\x91\x89
+\xBE\x90^\xC3\xDD8V\xE8G\xDD5&gt;'\xBA\xB6tI4\xD2\xEC\x98{\xFA\xAD.\x8F'\xFF\xE9#\x9A'ST{\xBD\x86\xBBk\xAC\xD0Ϲk\xF2\xDCBzl\xE9\x92h\xA4\xD91\xF7\xF4[]O\xFE\xD3P4X\xF2\xD5Y~\xAF\xE1n+\xF4C\xEE\x9A9w\xE0[\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1]+ɧ\xDF\xEA\xF2x\xF2\x9F\xE6\xA2!\x93\xA6Ȓ{
+\xF7\xF9X\xA1\x9Fp״\xB8Q\x85 \xB7quT\xE8\x92`P\xB3c\xEE鷺&lt;\x9E\xFCg!\xD1\xC0yZ\x85e\xF6\xEEñB\xFF\xFC\xAE9p/1\xB0\xA5K\xA0\x91f\xC7\xDC\xD3ouy&lt;\xF9Ϻ\xA2\xF9\xF3\x84\xE9\xEB\xEA5\xDC'c\x85\xFE\xED]\xE0v\x92`K\x97@#͎\xB9\xA7\xDF\xEA\xF2x\xF2\x9Fw\x88fэ殥\xD7p\x97\xC7
+\xFDûf \xC0\x849\xC0\x96.        \x80F\x9AsO\xBF\xD5\xE5\xF1\xE4?\xAF\x8D\xA6M\x9C|\xAFᮍ\xFAW\xF7N\x80\xDBIr\x80-]@e&gt;πcR\x80[\xC0\xC2\xA0\x9D\xD3讕\xE4\xD3ouy&lt;\xF9\xCF\xEBEc\xEA\x9AY\xEE5܅\xB1B\xFF\xE4\xF6        p\xBB
+In\xFB\xEA\xA8\xD0%\xC0\xA0f\xC7\xDC\xD3ouy&lt;\xF9\xD1Țn\xC9\xE3f+\xF4\xFFМ\xB8\x97\xD8\xD2%Јc\xEE\xF6\xA6\xDFtso\x8EI\xA2\xF1\x95\x96oɃf\xEB.\x9F\xBF&quot;n$\xC6\xB6tI4☻\xBD\xE9\xB7\xFF\xDC%d\xAAh\x88%D\\xF2\x88\x99Åƺ\xD1\xE7o        \x80\xBB\xC8p\x80-]\x8D8\xE6^\xC1\xF4 \x80.R@4͞\x8B\xB8\xE43\x87 \x8Du\xAF\xCF_\xB7\xE0\xC0\xEDZw\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1-\xC9\x98~\xD0]Bʈf\xDA\x97&lt;b\xE6p\xA1\xB1\xEE\xF5\xF9\x8B\xE0ܮ\xDD]\xFA\xFDPя\xFF\x8Es\xE0\xB5s/b\xFA5@        \xA9$\x9Al\xF7\xA6\xDC\xC2Åƺ\xDD\xE7\xEF
+\x80\xCFIo\xE0O\xFC\xD6hn\xEB\xD1h\xAA\xE0\x98{\xD3o\xBAKH1\xD1p\xBB1\xE5.4\xD6&gt;]|Ht&lt;\xF1\x9B\xA2&quot;=H\xFD\xC0?s\xAFc\xFAe@        )&amp;\x9Aow]r\xA8\x96]\xDA&gt;]|Ht!O\xFC\x8E\xA8TR|z\xB0\xE5\x98{\xD3\xEF\xBAKH=ш\xBB%\xE8\x92C\xB5\xEC\xD2's\xED_0\x8B\xDC\xC6E;\x88\x95]c\xDA\xC4\xF8\xF8Z\x9B=A`2)\xC0\x8E\xAD\xE0\xE1        \xD0\xCEitK\xF2N\xA6_        t\x91\x90z\xA2)\xF7y\xD0%\x87j٥
+\xCE\xE4\xF2?`\x8A
+\xB9m\xB3\x80\xA2\xED\xC3\xEDj.3gV\xF0'\xC7ܫ\x99~1\xD0EB\x8A\x89\xA6\xDC\xE7A\x97\xAAe\x976&gt;\x8D\xFF9\x99\x846p*\xDA8&lt;\xA7\xE0b\xA6\xFF\xC61\xF7\x82\xA6_t\x91\x90b\x92\x83.9T\xCB.m|\xB7\xFCrHl\xE0؅_\xF5&lt;\xAA\xDAz\x9F\x9Ep̽\xA0\xE97\xDD%\xA4\x98h\xD0}\x98uɡ\x9A9\h\xAC\xD0\xEE\xFA9&lt;Mb\xA2-C\x8ERK~t2p\xCC1\xF7\x9A\xA6_t\x91\xB0\x95\xE5s \xBA\xC0ט\xFC23\x87 \x8D\xFDޟ\xC0C\xC45p \xDA2\xA4\xA9\xB3\xE4\xE7f\xC0o&gt;πcR\x80[\xC0\xC2\xA0\x9D\xD3\xE8\x96\xE4]M\xBF*\xE8&quot;a\xCB\xE7@t\x81\xAE1\xF9ef+:\xF4?\x80\xDBU\xC8j\xD4t\xE1\xD7;\xE3_\xF2\xFE\xF0\xE7:\x85&quot;\xD3\x80\x8E\xB9W6\xFD \x8B\x84M\xBC!2ט\xFC23\x87 \x8Dua܇~,7\x92\xD5\xC0\x9F\xA2\xCD\xC2'-õ\xB1\xEAP*\xCC9\xE6^\xDC\xF4k\x83.v\xF0\x86\xC8\c\xF2\xCB\xCC.4ֵA\xFD\xE1|NP\xBFE;\x85[\x9A\x85)\x83~&gt;\x8D'\xE6\x83s\xBF\xC2\xF4\xFB\x83n\xD6\xF6\x86\xC8\c\xF2\xCB\xCC.4ֵ\x86\xE0R\xF8mb\xA70\xBDI\x99&gt;\xE7\x98\xFB-\$\xE4\xDFEs\xA0cd.0\xF9Mf\x973Vh\x94\xCF@\x88\x94v\xA6\xF7s'\xFD\xA17\xC0\xBF\xF1y\x93\xEC\xD8.\x9E\xED\x9CF\xB7$_\x87\x8B\x84\xFC\x8Bht\x8C\x82\xCC&amp;\xBF\xC9\xCC\xE1r\xC6
+\x8Dr˺W!\xA2\xED PJ\x85\xDF\xE1L\xECSBC?\xFA\xE0\x94c\xEE\xD7q\x8B\x90_\xA29\xD01
+2\x98\xFC&amp;3\x87K+4\xD0\xE7\xEB`\x9C\x88\xB6\xEAt\xB3f\xA2K\xA0\xC7\xDC/\xE5!\xFFm\xF9(\xC8\`\xF2\x9B\xCC\xAE\xECX\x9F\xC0 \xF9 l\x95\xEA\xA6LF\x97@#\x8E\xB9_\xCD-B\xFEO4
+ڥA\xE6\xEA\x92_c\xE6peǺeDFg`\xABTk0\xA5U\xD1%Јcn\xFE\xC3\xC2׋FA\xBB4\xC8\]\xF2k\xCC\xAE\xF2\xD2n\x80S\xC2\xF8G\xC1\xBE J\xBA$\x80\xCA|\x9EǤ;\xB6\x80 \x84'@;\xA7\xD1-\xC9\xDF\xC5·\x8AFA\xBB4\xC8\]\xF2k\xCC\xAE\xF2\xD2\xEE\x80c\x92\xD9vE\xFC\x8DM~\xB72&gt;\xA2\x86\x80\xE9s3\xC4\xFF\xF4\xAB\x8BFA\xAF@H^W\xF2;\xi\xD1o\x80#\x96\x80\xD4l
+\x92\xBB]\x8D8\xE6~DӠQ $\xAF+\xF9.\xBC\xB4 \x83\xDE8.\xCB\xC0\x8F\xB2MA\xF2\xC4tI4\xE2\x98\xF8M\x83F\x81\x90\xBC\xAE\xE4w\xB8\xF0\xD2. z\xEF\xD0\xFC&amp;\x93\x80e\x9B\x82\xE4\x86E\x97@#\x8E\xB9\x81\xD14\xE8\x92        \xF9\x8BJ~\x81 /\xEDڸ\xB7\x8F\xC0\x96@~T\xEE2]@e&gt;πcR\x80[\xC0\xC2\xA0\x9D\xD3\xE8\x96\xE4\xF0\xD1@h \xF9+J~{ /\xEDڸ\xB7\x8F\xC0V\x85@\xB6 @\x95E\x93ٰ \x8E5\xFD\x9D\xC0\xB7cn`#\xF5ca\xCAr.yi\x97\x87~b\xFC\x90\xC6\xC0\x8F\xCAAfâK\xA0\xC7\xDC\xC0?\xA2\x81P&lt;f\xADe\xE1ᒗ\xF6\xC9\xE8OL\x80oi \xFC\x9F\xCAAfâK\xA0\xC7\xDC\xC0V4ʆ\xC3ą,&lt;\\xF2\xD2&gt;\xFD\xA19 \x8A\x80\xEF\xDC\xCBzŧ\xA7K\xA0\xC7\xDC\xC0V4\xCA\xE6\xC3\xC4%$\x8F\x989\\xF2\xD2&gt;\x9C\xC0s\xD3x39 |\xD7\xFEJ88\xBD\xBBf\xA8K\xA8\xCC\xE7pLJ\xB0ck\xB8@x\xB4sݒ\xDE&amp; \xD5&quot;b\xFA\xFC\x93G\xCC.yiN\xE0\xB9i\xBCY\x85\xFE0]\xF1_\xCBd6,\x83cUx-\xE0\x98؉\xC6B\xA9\x94\xA80\xF3\xE4A3\x87K^\xDA\xE7sxt&amp;\xEF$\x84\x80ow        \xE3cUx-\xE0\x98\xF8-\x9A \xB2\xA2Μ\x93\xCD.yi\xB7L\xE3\xE9\xC9\xBC\x8D\xBE\xDD%\x8C\x8FU\xE1\xB5\x80cn\xE0O\xD1p\x98\x98զ\x9A&lt;n\xE6p\xC9K\xBBeOO\xE0m$0\xF0\xED.a|\xAC
+\xAFs\x8A\x86Ôܨ9\xC9\xE4q3\x87K^\xDA]3I\x98\xC0{\x88_\xE0\xBB\xF6]\xC2\xE4\x86E\x97P\x99\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%9\xBCV4\xD2\xA4\xEC\xC4.L\xAF\xD7p\xC9K\xBBk&amp;        \xF3x\x8F
+\xF1+\xF3\x80\xC9\xDDJ\x85.        9\xE6D#\xE2\xA1&lt;)2\x8D'f\xDBk\xB8\xE4\xA5\xDD8\x99\x9C)\xBC\x81\xEC\x8AK\xEEV\xA2]\xD2s\xEEZ s
+{\xE2\xCFZ\xEA\x98\xFE\xC6z
+\x97\xBC\xB4{\xE7\x936+\x80\xB5        ^\xA0\xB2\xFCn%\xDA%=\xE7\xAE\xB00\x87\xD1\xC0\xA9'\xFE\xB2\xA5\x82
+\xAF\xAB\xD7p\xC9K\xBBw&gt;i\xB3X\x9B\xE0*\xCB\xEFV\xA2]\xD2s\xEEZ s
+\x8Cx\xE2\x8F[\xE6*\xF2\xAEz
+\x97\xBC\xB4ۧ\x9491\x80UI]\xA0\xAC)\xADJ\xB4Kz\xCEnVJ\xA5R\xA9T*\x95ʯ&amp;\xA9T*疃)Qj\xCEJ\xA5R\xA9|\xAE&lt;Ua\x92J\xA5RY\xAD        \xCF\xE9\x93T*\x95J\xE5\xB6&lt;\x8D\xEE\x9DoୢqQY\x9D\xD5k\xB8\xE4\xA5\xDD&gt;\xA5\xE4\xB9,\xE9Z\xE4~\xDD\xDA\xC5\xC8y\xE0\xB7Y\xBF\x8AvI\xCF\xD9\xCDJ\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95\xCA\xDF\xE5W\xD07\xF0b\xD1\xC4(\xA8\xDA[\xEA5\\xF2Ҟ\x98U\xF2\xDC\xD6s-r\xBF\xB2z\xE0\x9D&amp;\xFEv(:\xF4sv\xB3R*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5\xF2w\xF9\xF4
+\xBC[44J)\xF8\x8Az
+\x97\xBC\xB4\x87&amp;\x96?=\x80\x95\\xCBۯ\xACx\xA7\x89\xBF\x8AvI\xCF\xD9\xCDJ\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95\xCA\xDF\xE5W\xD07@&lt;:\xA6+\xFBrz
+\x97\xBC\xB4\x87&amp;6e\x86˸\xB6_Y=\xF0Bs)\xFD9\xBBY)\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xF9\xBB\xFC
+\xFA\xF8_\xD1\xF4\x98\xA5\xF8\x9B\xE95\\xF2Ҟ\x9B۔\xAC\xE1Z\xD8~e\xF58\xC0\xABT\xF8\x8DЅ9&lt;d7+\xA5R\xA9T*\x95J\xE5׀
+\x93T*\x95s\xCB\xC1\x94(5g\xA5R\xA9T&gt;W\x9E\xAA0I\xA5R\xA9\xACV\x8E\x84\xE7\xF4I*\x95J\xA5r[\x9EF\xF7\xCE7\xC0F4C2\xB5x'\xBD\x86K^\xDAss\x9B5I\x80\Kگ[\xBB\xF1|_\xFAuP\x91i&lt;d7+\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x97_A\xDF\xBFD\x93\xE4i\x8D\xDEF\xAFᒗ\xF6\xE8\xF4fM\xA0\xBBkI\xFB\x95\xD5\xE3/q\xE1A\xB5\xD7f\xF2\x84ݬ\x94J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9\xFC]~}\xFC\xBBh\xA4\xDCk\xF6\xEA\xFF\xBF\xE49g\x97\xBC\xB4\xA7g8q\x9E}]\x8Bٯ\xACx\x83 \xBFz\xAEw\xB86\x99'\xECf\xA5T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xE5\xEF\xF2+\xE8`@4[&gt;1{\xAD\xF0&quot;׶鯬X[\xC1_!^\x9E\xD2\xEDv\xB3R*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5R\xA9T*\x95J\xA5\xF2w\xF9\xF4
+
+Y\x95]۲\xBF\xB2z`Ue\x97\xF8\xC9\xC4\x95R\xA9T*\x95J\xA5\xF2k@\x85I*\x95ʹ\xE5`J\x94\x9A\xB3R\xA9T*\x9F+OU\x98\xA4R\xA9TV+G\xC2s\xFA$\x95J\xA5R\xB9-O\xA3{\xE7\xE03\xD1ؑ&lt;PǵM\xFC\xEB\xD6.Ɨ\xBCM\xB4\xC9l&gt;\x99۽\x9E^) p
+ \xD2&gt;\x99\xA2=H~K\xF2\xE1 o\x94\xB0X\xBAs
+ \xD2&gt;9\xA2\xDDǬ~\xA4\xE6\xAC\xE0O\x8E\xB9\x80A\xDA A\xB4\xF5\x98،\x94\x9D\xFC\xE6\x98\xA4}m:\xA6w&quot;\x95\xE7\x80\xCF3\xE0\x98\x94`\xC7\xD6p\x81\xF0h\xE74\xBA%9\xF0\xA3B\xFB\xA0g\x80%Eۍ&quot;\xED@\xFD\xC0?s\x83\xB4\xC0\x{D88D}F\xA9\xA4\xC5$\xE0\x87cn`\x90\xF6\xB8W\xB4˨\xD6z4\x9A*8\xE6i\x80\xBBD\xFB\x8B\x9AMG\xBB        \xF0f\x8E\xB9\x80A\xDA\xE0s\xD1΢r\xC7\xD1q\xCE\xEF\xE1\xF3 8&amp;%ر5\ &lt;\xDA9\x8DnI\xFC\xA8\xD0&gt;\xE8Y\xA0\xB5h[Q\xFC\xB3\xBF\xEF\xCCx!\xC7\xDC\xC0 \xEDpY\xB4\xA1h\xD1et\x9F?\xAF\xE2\x98\xA4}.\x88\xB6\x8D\xFA\x8B5V\xC0K8\xE6i\x80\xA8hѫ\xB9Xf!\xBC\x81cn`\x90\xF6\x896\xEDڊŖ\xB0\x9Fg\xC01)\xC0\x8E\xAD\xE0\xE1        \xD0\xCEitKr\xE0G\x85\xF6A\xCF-Dۇ\xA6\xDF\xF6K.
+\x80U9\xE6i\x80\xD1ޡo+\xB1\xF0\xD2X\x8Fcn`\x90\xF68mZ7\xCB/\x80\x958\xE6i\x80cѮ\xA1{\xFB\xF0\x92e\xB0\xC7\xDC\xC0 \xEDp \xDA2,\xD0;\xBCg\xA5\xF9&lt;\x8EI        vl
+O\x80vN\xA3[\x92?*\xB4z\xA8)\xDA/\xAC\xF1\xFF\xB6\xF5Кcn`\x90\xF6\xF8S\xB4YX\xA6ex\xE1\x92\xE8\xCB170H\xFB\xFC\xE9\xB5\xCD\xC2k@G\x8E\xB9\x80A\xDA\xE0\xB77w
+o^;\xED8\xE6i\x80\x9D\x97\xB7        /_&gt;@q&gt;πcR\x80[\xC0\xC2\xA0\x9D\xD3\xE8\x96\xE4\xC0\x8F
+탞J\x99\xDE#\xCCU\xA1K\x80A\x8E\xB9\x80A\xDA`K\x83\xA0K\xA0\xC7\xDC\xC0 \xED\xB0\xA5;\xD0%Јcn`\x90\xF6\xF8\x87\xD6\xE0[\x97@+\xFF\xC3\xDE\xDD\xEE,\x96\xEB\xEA\xDD\xF7ӵ\xCFR\xEF)\xBA\xF2\xE1$vC\xFCm\xE2\xC7\xD4k\xB0\xA2\xB9\x96kn\xA0\x91\xF5\xF8\x87\xBD\xE0\x8F-         7?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xC0K\x86\xF5\xC1\xCEI\xB8S\xF8\x93cK\x80F\xAE\xB9\x80F\xD6\xE0\xC5R\xF0bK\xA0\xD7\xDC@#\xEB\xF0b#x\xB1%P\x88kn\xA0\x91\xF5x\xB1\xBCؒ(\xC457\xD0\xC8\xFA\xFC\xF1 \xE1\x83-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xC0K\x86\xF5\xC1\xCEǹM\xF8G\x86-        \xB9\xE6Y\x80?\xFE'&gt;lI\xE2\x9Ahd}\xFEx\x96\xF0\xC1\x96@!\xAE\xB9\x80F\xD6\xA0w/H\xEBH7B\x801\xAE\xB9\x80F\xD6\xA0w/H\xEBH7B\xA0\x91\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xE0%\xC3\xFA`g\x80\xB3z\x{1C2D0E}t#\xE4P\xE3\x9Ahd}z\x{1C2D0E}t#\xE4P\xE3\x9Ahd}z\x{1C2D0E}t#\xE4P\xE3\x9Ahd}\x80׻dv\xA4!!\x87\xC0\xD7\xDC@#\xEB\xFC\xB8ޥ \xB3#
+        9\x80F~\x9E\x9F\x99\xBC\xF1\xD50\xC0\xF0(\xE7\xEB\xE86\xC9\x80\x97 냝\xEA]
+2;Ґ\x90C`\x8Ckn\xA0\x91\xF5~\\xEFR\x90ّ\x86\x84
+c\s\x8D\xAC\xF0\xE3z\x97\x82̎4$\xE4P\xE3\x9Ahd}\x80׻dv\xA4!!\x87\xC0\xD7\xDC@#\xEB\xC0\x93-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xC0K\x86\xF5\xC1\xCE\xE4\x91aK\x80F\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xE0%\xC3\xFA`g\xF2Ȱ%@#\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xC8\xCC\xCF3\xE03S\x807\xBE\x9E\xE5|\xDD&amp;9\xF0\x92a}\xB0\xB3ydؒ\xA0\x91kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%d\xE6\xE7\xF0\x99)\xC0_
+ O\x80r\xBE\x8En\x93xɰ&gt;\xD8Y\x80&lt;2lI\xD0\xC857\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_G\xB7I\xBCdX\xEC,@\xB6$h\xE4\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$^2\xACv \x8F [4r\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92/\xD6; \x90G\x86-        \xB9\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[@f~\x9E\x9F\x99\xBC\xF1\xD50\xC0\xF0(\xE7\xEB\xE86\xC9\x80\x97 냝\xC8#Ö\x8D\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ(\xC457\xB0_\xEF\xE4):\x82\x86c֍\xFCA\xC2n\x84\x94tDl~\xC1\xBE\xE6\x9Fʆ\xBD:.\xBC\xCF\xEB\
+`\x80-        \x80B\s\xFB\xF5N\x9E\xA2#h8f\xDD\xC8$\xECFHII\xC4v\xE6&gt;w\xF4\xF3\x9AR \xF4*\x9B\xF0\xB6\xBA) \xC0&lt;[@f~\x9E\x9F\x99\xBC\xF1\xD50\xC0\xF0(\xE7\xEB\xE86ɁX\xBDc\xA7\xEE\x9ALZ.\xEFg        \xBBRRB\xB1]\xBA\xC3m\x94b\xE9)i\x85\xF32D\xA8\xD87\xE0V\xB6$h\xE4\x9Aجw\xECԝB\x93I+F\xFE/9[UUN\xB1\xBD\xAA\xEE\x82^\xF3/aO\x84\xE1v\xA5\xFEA\xCC(]&lt;@8[\x85\xB8\xE66\xEB;u\xA7\xD0dҊ\x91\xFFK\xCEVDU\x95\l\xD3\xEA\xAA޷k\xFE\xEC\xA9\xB8]\xC9\xC5~Ê\x96
+\xB0\x88-        \x80B\s;\xF5Μ҃($l\xA1\xBC\xE4lETU\xF9\xC5\xF6\xAD\xA8\xEAM\xBB\xE6\xD3\xDFS\xFFp\xBBJ\x88\xFDD6\xB4\xF7t\xBDkْ(\xC457\xB0S\xEF\xCC)=\x88B\xC2֊\xFCWi\xFBXX        \xB1\xDD+\xA7t\xBBn\xFA\xE8\xF7?ٱb?\x97\xA5\xED=X*\xC0\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92\x81zgN\xE9A\xB6V\xE4\xBFJۇ\xC0ª\x88m`-\xA5\xDBu\xCD羭\xF8ɎU\xFB\xE9\xACk\xEF\x91V
+\xF0W\xB6$h\xE4\x9Aئw\xE0T\x9FE\xBF\x96\xF7\xBF\xA4\xEDC`a\xB5Ķ\xB1\x90\xBA\x8D\xBA\xE6\xDFV\xF9d\xC7
+        \xFCtֵ\xF7H\x91\xDBؒ(\xC457\xB0M\xEF\xC0\xA9&gt;\x8B\xF3V\x89\xFCo\x99\x9B[[-\xB1\x9D\xAC\xA2n\x97\xAE\xF9\xB8\xB7U&gt;ٱZ?\xA0E\xED\xDD_!\xC0N\xB6$
+q\xCD
+l\xD3;p\xAAϢ\xC0\xBCU&quot;\xFF[\xE6&amp;\xC4\xD6VNl3K(ڢ\x9B&gt;\xEEme\x874\xAD\x90\xC0\xCFhE{7\x97\xB0\x99-        \x80B\s{\xF4N\x9B \xC6ѯ\xE5\xFD\xAB\xCCM\x88\xAD\xAD\x9C\xD8f\x96P\xB4K\xD7|\xDC;\xCBiZ-\x81\x9FTx{w\xD6\xB0\x9F-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4@\x88\xDEis\xC18\xFA\xC1\xC8o\x92w \xBC\xBCrb\xFBYB\xC5]\xF3Y\xEF\xAC9\xA4i\xE5D}R\xE1\xED=RÊC\xFE*Ö\x8D\s\xF4\x8E\x9A;&amp;ү\xE5\xFD\xB7\xE4/\xAF\xA2ؖ\xE6W\xAE?7}\xD6; \xEC[!Q\x9FTx{\xB7p\x84-        \x80B\s\xF4\x8E\x9A;&amp;ү\xE5\xFD\xB7\xE4(\xDA\xFF\xE4]M\xAE\sn\xFA\xA0w\x9C\xBF9\xBD\xA6
+\x92\xB3*\x80SlI\xE2\x9Aؠw\xD4\xDC1\x91~0\xF2S\xFE\xF84?aW\x93+ל\x90\x8F\xB8h\x96*g\x85\xE8-\xF8l\x90\x9CU\x9CbK\xA0\xD7\xDC\xC0j\xBDs暡\xF4ky\xDF\xE4\x8FM\xF3\xB356\xB9Z͙\xFFp\x8B\xA9u\\xA0\xDEʏdIX\xC0A\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92\x93z\x87\xCC5C\xA9+\xC8y\xDF\xE4\x8FY\xF3\xF346\xB9B͙\xF9L\xABg\xA9u\\xB8\xDE\xFA7g\xC9PR\x86&gt;\xBCdؒ\xA0\x91kn`\xB5\xDE!s\xCDP\xEA
+rG\xE4\x94\xC8~\xF6\xF4\xF2\xF46\xB3B\x9D\x99\xF9@\xABg\xA9u\xDC
+\xBDv\xC6\xC9V\xC0Y\xB6$
+q\xCD
+,50d\xAE\x99K\xBDA\xAA\xE7}*\x91\xFD\xEC\xE9\x8B$\xE9mf\x85:3\xFCi^\x90\xA5\xD6q\x8B\xF4\xA6\xD8'[=gْ(\xC457\xB0\xD4؄\xB9c.\x{166A1E}\xF7)&lt;\xF5\x8A\xEC]GW\xE9\xFC\x9F\xD1\xE7\x8FNW\xBDU\x89\xE6\x8C}\x8Ewd\xA9x\xE2&quot;\xBDA\xF6$JU \xC0q\xB6$
+q\xCD
+,56a\xEE\x98K\xBD).\x88\xFC\xB2(ux\xF0\xAE\xA3\xC3O_\xAA7Z\xB9\x80\x93Jt\xA6\xAB\xBCk\xB2D\xB9\xFF\xC4uz\xB3lH\x94\xAA\x80\xE3lI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$\x86
+O\x98;FSo\x84\xEAy\xFF\xB1(ux\xF0\xAE\xA3\xC3O_\xAA7Z\xB9\x80\x93Jt\xA6\xAB\xBCk\xB2D\xB9\xFFĥz\xE3\xACN\x94\xA1\x98\xEA\x9F)p\x93 [4r\xCD
+\xAC33^.MJ\xE7\xFDNJ\xC8+\x82w\x9D\xBF\xEDozӕ 8\xA3Dg\xBAʻ&amp;KT\x91\xFBO\\xAA7\xCE\xEAD\xA9\x8A8Ζ@!\xAE\xB9\xC7\xFF\xFC\xBFO\xFB\xD0\xEBttΘ/\x8C\xA6\x81\xD5#\xFF\xE9\x8F0Х\xFD\xA5\xAE8}\xB5\xDEt\xE5NJޙ\x81\xDA\xEE\x88U^׉Gzҫ7\xD1\xD2Py*\xC8\xC0\x96@!\xAE\xB9\x87g        \xD9lr\xBC\0\x9D\xEA/\x9D\xF7e]\xE4\xF0\xD4]G\x87\x9F\xBE\xC1\xF5g$o\xCE@ad        ,\xEFȡK\xF5&amp;Z*O%ؒ(\xC45\xF7\xEF\xF0,!\x9B\xCDϖ\xEA\xD3i\xAC\xFE\xBAy_\xE5]\x91\xBA\xEB\xE8\xCC=\xFF/\xBD+f\x96\xBC3\x85]\x90%\xB0\xBC#\x87.՛hi\xA8&lt;\x95d`K\xC8\xCC\xCF3\xE03S\x807\xBE\x9E\xE5|\xDD&amp;\xF95&lt;K\xC8N!\xB3\xA5\xFAt\xAB\xFFG&quot;\xFC'ᑻ\x8E?}\x83ހ3Kޙ\x81\xC2.\xC8XޑCW\xCB*C%w|\xA6\xC02lI\xD0\xC85\xF7\xEF\xF0,!;\x85̖\xEAj\xAC\xF8\xBAy\xFFx\x960\x9F_\xC88,mg\x86\xAB\xAA'\xB0\xB0\xAEC77dX\x9EPy*\xC8\xC0\x96@!\xAE\xB9\x87g        \xD9)j\xB0\x94P\xC3\xC5\xCD\xFBg\xA8\xF2\xE1.m\xAB6sÿ\xFA\x85\x8C\xC3\xD26g\xB8\xA4\xD2Yb ;u\xEERyB\xE5\xA9 [\x85\xB8\xE6\xFE\x9E%d\x9B\xC0\xC1RzF
+W~}ޱ\xFF*&lt;o\xD7\xD1\xE1\xA7\xEF\xF1 \x87\xA5m\xCEpI\xA5\xB3\xC4v\xEAܥ\xF2\x84\xCAS        @\xB6$
+q\xCD\xFD;&lt;K\xC86\x81\x83\xA5\xF4\x8C\xAE\xFC\xFA\xBCc\xFFUxޮ\xA3\xC3O\xDF\xE32\xCBٜ\xC9z\xEAƉ\xAD\xEAԹK\xE5        \x95\xA7\x80 lI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$\xBF\x86g        \xD9&amp;v\xAAԝQ3\x95_\x9Cw\xEC\xBFZ\x91\xB7\xEB\xE8l\xDDn\xF4 g$l\xCEd=u\xE3Ė\xD4u\xEE\xB6nL\xCA*C%w|\xA6\xC02lI\xD0\xC85\xF7\xEF\xF0,!{\x84O\x95\xBAcj\xA6\xECry7$
+\xDBut\xF8\xE9{\xFCB\xC6        \xFB3YL\xAA,]\xF5Ė\xD4u\xEE\xB6nL\xCA*O%ؒ(\xC45\xF7\xEF\xF0,!{\x84O\x95\xBAcj\xA6\xECry7$
+\xDBut\xF8\xE9{\xFCB\xC6        \xFB3YL\xD1,\xE1%&lt;z\x9D&lt;\xA1\xF2T\x90\x81-        \x80B\s\xFF\xCF\xB2\xC1\xA2\x91RtLM\x96]+\xEF\xEA\x98+\xC2v\x9D\xA7\xD5]~!\xE3\x8Cl\xFD        \xA9\xA4b\x9C\xF0z\xBDN\x9EPy*\xC8\xC0\x96@!\xAE\xB9\xEFp\xF09A\xCF\xF2\xB4h\xA4\x9DT\x935ʻ'fxҮ\xA3\xC3O\xDF\xE32NJ՟\x90J*\xC6        /\xA6\xEB\xE8
+\xAD\x91'ѕ\xEDfK\xC8\xCC\xCF3\xE03S\x807\xBE\x9E\xE5|\xDD&amp;y        ǟ\xF4,!/\x8B\xE6I\xD1I5Ys\xA1\xBC{b\x86'\xED::\xFC\xF4=~!\xE3\xA4T\xFD        \xA9\xA4b\x9C\xF0b\xBA\x8E\xDEЊy\xA9e(\xE6\x82\xCF\xB8F\x86-        \xB9\xE6\xBE\xC3\xF1'=Kȟ\xC5\xF3\xA4⤚\xAF\xB9J\xDE
+W$\xED::C\x9F\xFCB\xC6IyZXC\xAD8+*9{\xFA
+\xA9\xA5*\xE08[\x85\xB8\xE6\xBE\xC3\xF1'=KȟL\xCF&amp;V\xF3\x97Ȼ-cx̮\xA3\xC3O\xDF\xE3\xFA\x80\xF3\xF2\xFC3\xAC\xA1V\x9Cet\x9D\xBE\xB4QR%JU \xC0q\xB6$
+q\xCD}\x87\xE3Oz\x96\x90?\x8B\x9F\xA98\xAC\xE6 .\x91w[\xC6\xF0\x98]G\x87\x9F\xBE\xC1\xF5\xA3$\xE9R`
+\xB5\xE2\xAC(\xA3\xEB\xF4\xA5}\x91-N\xB6zβ%P\x88k\xEE;г\x84l&amp;\xE5\x86UH\xC1\xF9\xF3\xEE        \xB8&quot;f\xD7\xD1g\x9B&lt;\xE6\xFA\x80Q\x92t)\xB0\x86ZqV\x94\xD1u\xFA\xD2&gt;\x84\xC8'[=gْ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_G\xB7I^\xC2\xF1'=KȆaRn^\x85T\x9B&lt;\xEF΀\xE1\xBB\x8E?}\x83\xEBF\xC9Ш\xF0ӏ\xEEg[\xDAu\xFA\xBA&amp;\x84\xE8Ͳ!N\x86z\x8E7\xE0\xB6$h\xE4\x9A\xFBǟ\xF4,!&amp;I\xB9yRm\xF2\xBC;\x86g\xEC::\xFC\xF4
+\xAE\xE8x\xA3\xC2O\xAF'C\x8Bj\x88\x920K’\xB2%PH\xADk\xEE\xE3ϻyy\xED\x9D\xFD\xA3k\xB4m\x92\x9AW\x81\xD5fλ-݊\x8C]G\x9F\xEA\xF0\xB0\xBBӅ;ޫ\xF0ӫ\xC4\xC9P\xC0\xA2B\xF4ٓ%aIْ(\xA4\xD65\xF7񧺼\xBC\xF6\xBF\xCE\xFE\xD15\xDA6I\x8A\x8D\xAC\xA0R\xD3\xE6ݜ.&lt;`\xD7\xD1᧯vw\xBApg{\xB5\xE2\xF4\xFB\xAD+`Q
+\xF3zSl \x92\xB3*\x80SlIR\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8Z\xEC#\xC5FVP\xA9i\xF3nN\xB0\xEB\xE8\xF0ӗ\xEA\x8DV+\xDD
+g{\xB5\xE8\xE8\x89V\x9C\xDE[\xC0\xA2&amp;\xF5Fؙ&quot;maGؒ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_Gw\xAAI~\xFC\xA9./\xAF\xFD\xAF\xB3t-6\x8F\x91J#+\xA8ԴyC\xAA\x8A\xEAҺ\xFAO\xB5w\xC6\xC5\xD1\xD69رE\xE7\xE6\x8F~\xF4X
+\xEB\xCA\xD3[\xFC\xFE
+\xCB\xD3
+\x80 [4\xAAu\xCD}\xFC\xA9./\xAF\xFD\xAF\xB3t-6\x8F\x91BS+\xB0΄y\xF7G O\xD7ut\xF8\xE9\xEB\xF4\xE6*m\xA9\x83[tn\xFE8\xE1G\x8Fհ\xAE\x8C^\xBDe\x9F\x8A\x90\xB96\x80\xFDlIR\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8\xBE\xDA?C
+M\xAD\xC0:\xE6\xDD-&lt;]\xD7\xD1\xE1\xA7/\xD2\xAAJ\xAE
+N5m\xE9\xA1\xC9Ş;\ú2U{\xBC\xFE\xE4\xE5lfK\xA0\x90Z\xD7\xDCǟ\xEA\xF2\xF2\xDA\xFF:\xFBG\xF7ՑRep\x990lT=\x81]Zao\xC7\xF4\xC6)j\xA7S}[zh\xF2D\xB1\xE7װ\xAE\x8C\xC0
+K\xBF\xBFB\x80\x9DlIR\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8\xBE:2C\xAA \xAE\xD8&quot;S\xE5=\x92+&lt;Z\xD7\xD1\xE1\xA7\xC7\xEA\xCDR&quot;\xD4~GZ\xB7\xF4\xC4\xCCq\x9D,\xA3\xB4u= l\xEF\x91&quot;\xB6\xB1%d\xE6\xE7\xF0\x99)\xC0_
+ O\x80r\xBE\x8E\xEET\x93\xFC\xF8S]^^\xFB_g\xFF\xE8&gt;;5@\xAA \xAE\xD8&quot;S\xE5=\x92+&lt;Z\xD7\xD1\xE1\xA7G\xE9M\x91?\xD1AG\xBA\xB7\xF4\xC4\xCCq\x9D,\xA3\xAEu
+\x8Cm\xEF\x91V
+\xF0W\xB6$hT\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8&gt;;8@J̮\xD8
+S\x85
+\xAC$\xB6K+R\xECll\xBB\xDE\xE2\x93\xC7Ib7\x976Qԉ\xF3eT\xB4\xAEu+\xDA{\xB6Z\x80\xD5lIR\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8&gt;;8@J̮\xF0
+\x93\xE4=*&lt;W\xD7\xD1\xE1\xA7o(8s\x96\x9C\xF6\xF7p\xC3qiE\x9D8_F9\xEB\x{2DA8F67}\xEBX˖@!\xB5\xAE\xB9\x8F?\xD5\xE5\xE5\xB5\xFFu\xF6\x8Fӣ\xC4\xEC
+\xAF0I\xDES\xA1\xC2su}\x93\xD86^fs7w_\xA2\xD82jYڴvE\xCBXĖ@!\xB5\xAE\xB9\x8F?\xD5\xE5\xE5\xB5\xFFu\xF6\x8F\xEE\x83\xE3\xD3\xE3x\xB1ƾa\x86\\xB1\xEF\xB6&quot;W\xD7\xD1׈\xED\xE1}v6\xF3\x97\x9A?+\xB0\x92B\x966\xAD]Ѳ\xB1%d\xE6\xE7\xF0\x99)\xC0_
+ O\x80r\xBE\x8E\xEET\x93\xFC\xF8S]^^\xFB_g\xFF\xE8\xFEK\x86ё\xA1\x86\xC0
+\xC3\xDF\xF3x\xA8\xF07 \xD5u\xF4bx\xA5\x9D\xFD\xFC\xE5\x83\xE6\xCF
+\xAC\xA4\xA2\xA5\xDD o\xEF\x91V
+\xF0W\xB6$hT\xEB\x9A\xFB\xF8S]^^\xFB_g\xFF\xE8\xFEK\x86ё\xA1\x86\xC0
+\xC3\xDF\xF3x\xA8\xF07 \xD5u\xF4b\xBBw\xAB\x9D-\xFD\xE5\x83\xE6\xCF
+\xAC\xA4\xAE\xA5= l\xEF\xA9:\xF6\xB0%PH\xADk\xEE\xE3Ouyy\xED\x9D\xFD\xA3\xFB/IFG\x922B\xCA ϳ\xA1\xC2\xDFpE\xA8\xAE\xA3K\x8B\xED\xDB\xF5\xB65\xD6A\xEB\xB4Wr\x81\xD5͜o\xEF\xFE
+v\xB2%PH\xADk\xEE\xE3Ouyy\xED\x9D\xFD\xA3\xFB\xAB&lt;s#O%\xF3\xE5\xADxۃ\x89V\xBCgx\xA2\xAE\xA3\x8B\x8A\xED؏\xD8\xD3\xE1\xCDb\xAADQ\xA1\xA2\x8A\xB9\xC0\xEA~N\xB6wsy\x9Bْ(\xA4\xD65\xF7񧺼\xBC\xF6\xBF\xCE\xFE\xD1\xFDU\x9E\xB9\x91\xA7\x92\xF9\xF2V\xBC\xED\xC1D+\xDE3&lt;Q\xD7\xD1E\xC5v\xECG\xEC\xE9\xF0\xE61U\xA2\xA8PQ\xC5\cuW\x87ۻ\xAD0\x80#lI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3;\xD5$?\xFET\x97\x97\xD7\xFE\xD7\xD9?\xBA\xBFJ57R3Sۊ\xB7=\x95h\xC5{\xAEH\xD4uti\xB1}\xBBޞ\xDEn\xFE\xF8R%\x8A
+U\xCCMV7v\xAC\xBDGjXq(\xC0_eؒ\xA0Q\xADk\xEE\xE3Ouyy\xED\x9D\xFD\xA3\xFB\xB7lC#[=õ-z\xE7#q\xBDml\x9Cޣ\xAB\x8Bm\xDD\xF5V7\xF6\xC8we\xA8\xF9b\xBDJ8Ȗ@!\xB5\xAE\xB9\x8F?\xD5\xE5\xE5\xB5\xFFu\xF6\x8F\xEE߲
+\x8Dl\xF5 ׶蝏\xC4Y\xF4\xB6\xB1qz\x8F\xBECl/\xB6\xBA\xA5G&gt;\xB2+C\xCDs\xA5l\xED]]\xC0Y\xB6$
+\xA9u\xCD}\xFC\xA9./\xAF\xFD\xAF\xB3t\xFF\x96ph$,i\xA0\xB0E\xEF\xBC?΢\xB7
+\x8F\xD3{\xF45b{x\xAB\xD5-=\xF2y%I*\xA4\x9E=%\x85ԙ$Q\xAAb\x8E\xB3%PH\xADk\xEE\xE3Ouyy\xED\x9D\xFD\xA3{\x93sb䬪\xB7\xB0uo\xBE9˺w\x8E\xCA2v\xF4Mb\xDBx\xBC\x99\xC7\xE3,}\xFF#\xA1\x96\xBEyl\xA8\x90z\xF6\x94Ԣ\xB7\xECS\xA1\xF2T\x90\x81-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\xA7\x9A\xE4ǟ\xEA\xF2\xF2\xDA\xFF:\xFBG\xF7&amp;\xE7\xC4\xE8\xAD*ga\xEB\xDE|s\x96u\xEF\x95e\xEC\xE8\xCB\xC4v\xF2l3ó\xF4&amp;\xCA\xF3οj\xB2\x9E\x9DU\xB5\xEB\xADs\xA8 \x95\x8C\xF0&amp;Ö\x8Dj]s\xAA\xCB\xCBk\xFF\xEB\xEC\xDDS\xEF\xB8\xD891r\xB6\xB4\xA4\xCDaם\xB5\xB4K\x81G\xDF\xE7\x9Af\xC6H\x94\xE7\x9D3\xD4d=;\xAB\xD0dO\xAE$e$aK\xA0\xD7\xDCw8\xFE\xBC\xDBMO\xCC\xF1_z\xC7Ef        \xB6\xF4\xFD\xB7Y\xFA\xE6\xF3Af\x8E?}C\xC1;\x85\xD7v$\xC5p\xA2E\xEF|0Ԣ\xB7]j\xBE\xA4mU\x8D\xE9Ͳ!W\x922\x92\xB0%P\x88k\xEE;г\x84\xBF\xA0w\$\x97\xADcK\xDF[\x90\xA5o&gt;d\xE6\xE8\xF0\xD3'\xF5\xBF:QH=\xC7S ':\xFE\xB6\xE1\xA7/z\xDB\xA1\xE6K\xDAVՌ\xDEDK\xA3e\xA8 [\x85\xB8\xE6\xBE\xC3\xF1'=Kx\xBD\xDEY\x91_\xB6\xA6-}\xFF=A\x96\xBEyH\x90\x99\xA3\xC3O\xD1a]\xA8\xF9J\x8EG\x98        u\xF6=\x85\x9A)isa3zC\xAD\x8B\x96\xA1\x80&lt;lI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$/\xE1\xF8\x93\x80\x9E%\xBC^\xEF\xAC\xC8/[\xD3V\xB1!\xC5\xEA\xF7\x9FI1t\xF8\xE9\x81z\x83\xAC5Sä\xA83\xA1ξ\xA7P3%m.lRo\xAEE\xE9\x8E\xD0RÊC\xFE*Ö\x8D\s\xDF\xE1\xF8\x93\x80\x9E%\xBC^\xEF\xAC(!U\xD3V\xB1!\xC5\xEA\xF7\x9FI1t\xF8\xE9\xB1z\xB3\x84\x87.`^T\x84\x99Pg\xDFS\xA8\x99\x9266\xAF7ڊt\xC7 HŖ@!\xAE\xB9\xEFp\xFCI@\xCFޭwPT\x91\xAAoՏ{\xF3=B\x8E?=\o\x9C\xD8\ç\xCF \xA9&gt;T\xEC\xAE ^Fx\x97BtU\xB5\xB3\xB0y\xBD\xD1V\xBC\xB8\xBDlI\xE2\x9A\xFBǟ\xF4,\xE1\xDDzE\xA9\xFA\xB6\xE1\x94lo\xDE{\xC4\xCC)\xF3G\x87\x9F\xBEBo\xA2\xC0\cG\x87\xA9&gt;\xD7\xFEw*\xA4\xAA\xFD\xB5\xCD\xEBM\xF0\xEE\xF6\xF4\xB2%P\x88k\xEE;г\x84w\xEB\x85\xE4\xE9ۆS\xB2\xBDy\xEF3\xA7\xCC~\xFA
+\xBD\x89s\x8D&quot;\xA4\xFE\xF9\\xFB\xDFM\xA8\x90\xAA\xF6\xD76\xAF7]x\xC0\xBB\xDB \xD0˖\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAM\xF2kxN\x901\xBDS\xA2\x96&lt;\xAD\xCByʆ6\xEE\xE9\xD2\xFC\xD1\xE1\xA7/\xD2**\xD7\xC0\xB9QB\xEA\x9Fϵ\xFF݄
+\xA9jm!\xCE\xCC\xD0\xDE\xFB&gt;S\xA0\xAE [4r\xCD\xFD;&lt;KȘ\xDE)QK\x9E\xD6\xED9(\xC3\xDB\x9F2y\xD0\xE4\xD1\xE1\xA7/\xD2**\xDAع!拏\xCA\xF5VK\xC5؟X]\x85m\xAE-\xC4ـ׷\xA0\x8B-        \x80B\s\xFF\xCF2\xA0wDT\x94\xA4{{\xCA\xF0\xB6çL4yt\xF8\xE9\xEB\xF4\xE6
+\x896ph\x94\xF9⣢\xEDy\xA1Z\xB4v\xA4\xBCy\xBDc3^\xDF^\x80.\xB6$
+q\xCD\xFD;&lt;KȀ\xDEQQ\x92\xEE%&lt;hO\xB7ui\xF2\xE8\xF0\xD3\xD7\xE9\xCDm\xE0\xD0(\xF3\xC5GE\xDB\xF3&gt;B\xB5h/\xECHy!f\xFC\x85\xF6\xB4\xB3%P\x88k\xEE\xDF\xE1YB􎈊\x92to\xDBY\xA7\xDEp\xFE\xA0\xF9\xB3f\x8E?}\x9D\xDE\\x85\xA2\xD2Ƅ\x9Fŭ\xB9z ;R^\x88\x83\xA1\xBD\xEDlI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$\xBF\x86g        \xE9\xD5;\xEA\xCA\xD0\xC0mg\x9Dz\xC3\xF9\x83\xE6Ϛ9:\xFC\xF4uzs\x8AvDH'~!%%\xCC\xD5[ؑ\xF2B̘\xA1\xBDW~\xA6@Q\xB6$h\xE4\x9A\xFBwx\x96\x90^u\xE7C\x92\xCAw\xD6~ֶ\xD6\xED\xEC\xD2\xCC\xD1\xE1\xA7/uq\xB4#\xE6;\x99\xF0\xB3\xB82\xD4@m\xA7*\x9Cw0\xE3/\xB4\xA0\x9D-        \x80B\s\xFF\xCFҫ\xEE|\xE8\xAD|Q\xF1\x9B &lt;+g\xD9!\xC7
+~\xFARG;b\xBE\x93        ?\x8B+C
+\xD4v\xAA\xC2y3\xFEB{\xDAْ(\xC45\xF7\xEF\xF0,!]z\x87C\xB6\xF9\x90\xA1\xF8\xCD\x9E\x95\xB3\xEC\x90㆏?}\xA9\x8B\xA31\xD9ɴĭ\xB9\xBAj;Uἃ\xA1\xBD\xEDlI\xE2\x9A\xFBwx\x96\x90.ՇC\x86\xFA7x\xDCΦm\xEE\xD2\xF0\xD1\xE1\xA7/uq\xB4#&amp;;\x99\xF6\x83\xB85WWm\xA7*\x9Cw0\xE3/\xB4\xA0\x9D-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xD7\xF0,!]\xAA\x87\xDE\xFAWD\xD8z\xC8qik\x8E:q\xEC\xE8\xF0ӗ\xBA8\xDA)3\xCDL\xFBA\\xAA\xB7\xBC\x83EN:\x981C{\xAF\xFCL\x80\xA22lI\xD0\xC85\xF7\xEF\xF0,!\xEDz'C\xCE\xE1p&lt;\xC2\xFE\xD3C\x8EK[sԉcG\x87\x9F\xBE\xD4\xC5\xD1Nnf\xE6Oa\xE6I\xE6\\xBD\xD1N9\xE9`\xC6_h/@;[\x85\xB8\xE6\xFE\xED\x8E\xC9p&lt;\xC5\xFE\xD3CN\xDCܮ\xFD];:\xFC\xF4\xA5.\x8Ev\xCAp3\x93
+r,r\xD2\xC1\x8C\xBF\xD0^\x80v\xB6$
+q\xCD
+\xBC\xE9 i'\xC3\xF1 G\x8E\x9E&lt;1s\xC1\x81\x87~\xFARG;e\xB8\x99\xC9?\xB99\xA37`l\xC6\xEB\xDB \xD0Ŗ@!\xAE\xB9\x817\xBDc!\xF3d8\xE4\xC8ѓ'f.8\xF0Ё\xA3\xC3O_\xEA\xE2h\x8D\xF53\xF9\xA70\^\xE6P\xED\xE5\xAFs\xD8ـ׷\xA0\x8B-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xF0kn g\xB39z\xE6\xD0#\x8D:ҥ\x81\xA3\xC3O_\xAA7Z\xADt\xA7 4\xB3D\xFF\xAF\xCC\xD5^\xE1\xF1\xFE\x8F90C{\xEF\xFBL\x80\xBA2lI\xD0\xC857\xF0\xD4;\x92\x8F\x85\xB3q\xF2\x9F\xF5\xEE\xA96\xF6\xDCޣ\xC3O_\xAA7Z\xADt\xA7 4\xB3D\xFF\xAF\xCC\xD5^\xE1\xF1\xFE\xE8M\xF0\xEE\xF6\xF4\xB2%P\x88kn\xE0\xA9w&amp;\xE4 \xE3\xE4?7\xEA?\xDCSm칽G\x87\x9F\xBETo\xB4Z\xE9Nhf\x89\xFE_\x99\xAB\xBD\xC2\xE3\xFDЛ.&lt;\xE0\xDD\xED\xE8eK\xA0\xD7\xDC\xC0\xD3}3\xE1`\xA2Z\xE7֪v\xFF\xD1\xE1\xA7/\xD5\xADV\xBA\x83\xBA\x9AY\xA5\xFFE\xDE\xEAx\xA9\xBDz\xA3\xADHw\xBC\x80TlI\xE2\x9A\xF8G\xEF@(1\x86:\xD8Ɂs\xF3\x97z\xF6\xE8\xF0ӗ\xEA\x8DV+\xDDA]\xFD,\xD4\xFC\xFBr\xB5y\xBC\xD4^\xBD\xD1V\xA4;^@*\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92\xC3\xEF\xE8Uf©P;9pn\xFER\xCF~\xFAjw\xA7;\xA5\xAB\x9F\x85\x9A_\xAE\xF6&quot;\x8F\x97ڥ7עt\xC7 h\xA9aš\x95aK\x80F\xAE\xB9\x81\xDC:N\xE5:\xD8\xCCޣ \x95z\xEA\xE8\xF0\xD3W\xBB;\xDD)]\xFD,\xD4\xFC\xFBr\xB5y\xBC\xD4v\xBD\xA1\xD6E\xCBP@\xB6$
+q\xCD
+\xBC\xF4N\x83B\xE1T\xB4\xB3\xCD\xEC:\xBAD\x9D\xE1\xA7w\xBD&quot;\xFBRw\xA7;\xA8\xB7\xB1U:Y\xAEZնH\xF5Ad\xA8 [\x85\xB8\xE6^\xEE\x9EGҝ\xEDg\xD7\xD1%\xEA ?\xBD\xEB\xE8ٗ\xBA;\xDDA\xBD\x8D\xAD\xD2\xF9\xCBrժ\xF6\xABl\x9FB\x922\x92\xB0%P\x88kn\xE0\xCF\xD5\xFF\xA7\x84/G\x9E\xED\xE7@\xE4\xFCu&lt;zE\xF6\xA5\xEENwPoc\xABt\xFE\xB2\\xB5\xAA\xFD,᧐\xA4 \x80$lI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$\x87_\xD0;
+\xCAM\x83#\x8F\xF7s u\xF2&quot;\xBD(\xFE:w\xA7;\xA8\xB7\xB1U:Y\xAEZ\xD5\xFE\x97\xB4A\x86J\xC6x\x93aK\x80F\xAE\xB9\x81?\xBF1
+\xF6g&lt;\xDE\xD2\xDE\xC8\xF9\x8B&lt;x\xF4\xA2\xF8\xEBܝ\xEE\xAC\xDE\xDEVi\xFBM\xB9\xCA\xFC&amp;\xF9\xA7\x90\xA7\x80 lI\xE2\x9A\xE8\x9DEG\xC1\xFE\x98\xC7[:9y\x91\x8F^\x9D\xBBӝ\xD5\xDB\xDB*m\xBF)W\xB9\x82\xFFQ\xE2#HU \xC0q\xB6$
+q\xCD
+\xF4΁\xA2\xA3`\xCC -H\x9D\xB9ƒG\xAF\xEB\xC0&quot;w\xA7;\xAB\xB7\xB7U\xDA~S\xAEB\xB6}[\x9Cl\xF5\x9CeK\xA0\xD7\xDC\xC0\xEF́\xCDI3t\xB57r\xF2
+\xBD\xAE\x8Bܝ\xEE\xAC\xDE\xDE\xEA\xF95Ѣ\x82T\x94\xB0\xBDJ8Ȗ\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xB8[\xEF(=6\x87\xCD\xD0Ձș+&lt;x\xF4\xBA,қ\xAE\\xC0\xB3\xDA[\xA2\xE1\xD7\xE4
+        RT\xC2\xF6\xA9aš\x95aK\x80F\xAE\xB9\xE1\xC7\xF5\x81\xD2s`s\xD8$]H\x9D\xB6\xBC\x83G/m\xC2
+\xBD\xE9\xCA&lt;k\xA0\xBD%~M\xAE\x90 \xE5lN\xB1%P\x88kn\xF8q\xBF6v\xE6M\xD2\xD8\xDEș\xCB;x\xF4\xD2&amp;\xACЛ\xAE\\xC0\xB3\xDA[\xA2\xE1\xD7\xE4
+        RN\xDA\xF6n+ \xE0[\x85\xB8\xE6\x86_\xD6;.;#'i\xEC@\xE4\xB4\xE5&lt;ziV\xE8MW.\xE0Y\xED\xAD\xD2\xED;r\xCD@\xE5dn\xEF\xCE\xDA\xF6\xB3%P\x88kn\xF8e\xBD\xE0\x82!\xB03r\x9E\xC6\xA4\xCEY\xDB\xC1\xA3W\xF7a\x85ހ34\xD0\xDE\xAD\xBE#\xD7d\x8AZ\xF2\xB7w\x85;ْ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_G\xB7I\xB7\xEA\xFD\xF3\xBFflK\x9D\xA7\xB7\xBD\x91\xD3\xD6v\xF0\xE8\xD5}X\xA17`Ō
+\xB4\xB7D\xAB\xEF\xC85\x99\xA2\x90\xED=RÊC\xFE*Ö\x8D\s\xC3\xCF\xEA\xFD\xF3\xBFfl \x9E\xA7\xB7\x91s\xD6v\xF0\xE8\xD5}X\xA17`Ō
+\xB4\xB7D\x9Fgr\xE5\x896\x99\xA2\x8A*\xED=U'\xC0\xB6$
+q\xCD
+?\xAB\xF7\xCF\xFF\x9A        \xB0-x\xAA\xDE\xA4NX\xD8\xC1\xA37\xB4&quot;\o\xC0\xA21Oko\x89&amp;_\x90k\xE6\xD3)\xA1V{\xCFV \xB0\x9A-        \x80B\s\xC3o\xEA\xFDۿ\xEC\xCFO\xF6T\xED퍜\xB3\xB0\x83GohE\xB8ހu\x93\x9Erk\x87/\xC85!\xBFӭ\xFD\xFF*\xD6 \xB0\x8E-        \x80B\s\xC3o\xEA\xFDۿ\xEC\xCFO\xFCT\xED\x88\x9C\xB0\xB0\x83GohE\xB8ހ\xA5\xC3qk{/\xC85!\xB3\xD3M\xFD?u+X\xC1\x96\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xB8R\xEF\xDF\xFEe\xFE{\xE2gk\xEF\x9E\xD4K\xAB:x\xF4\x9En\x84\xEB\xCDX=\xEFf7\xB6z\xB4\xB1\xFAs:\xDD˿\xC8\xA1b\xDF\x80[eؒ\xA0\x91kn\xF8A\xBD\xF8W\xFE\xEDo\xE8@\xB6\xF7FNX\xD5\xC1\xA3\xF7t#\o\xC6\xEAy7\xBB\xB8\xB1\xD5s\x8D}4y\x9C\xEE\xDF\x97\xC5\x98dK\xA0\xD7\xDC\xF0\x83z\xFF\xF0\xAF\xFC\xDB\xDFЄl\xDEyuU\x8F\xDEӍzcVϻ٭\x8D\xAD\x9Ek\xA0\xFE\xB3N7\xAC\xCF\xDD\xE9zْ(\xC457\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xC0K\x86\xF5\xC1\xCE\xE4\x91aK\x80F\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xE0%\xC3\xFA`g\xF2Ȱ%@#\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xC8\xCC\xCF3\xE03S\x807\xBE\x9E\xE5|\xDD&amp;9\xF0\x92a}\xB0\xB3ydؒ\xA0\x91kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%d\xE6\xE7\xF0\x99)\xC0_
+ O\x80r\xBE\x8En\x93xɰ&gt;\xD8Y\x80&lt;2lI\xD0\xC857\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_G\xB7I\xBCdX\xEC,@\xB6$h\xE4\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$^2\xACv \x8F [4r\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92/\xD6; \x90G\x86-        \xB9\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[@f~\x9E\x9F\x99\xBC\xF1\xD50\xC0\xF0(\xE7\xEB\xE86\xC9\x80\x97 냝\xC8#Ö\x8D\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-         3?π\xCFL        \xDE\xF8j`x\x94\xF3ut\x9B\xE4\xC0K\x86\xF5\xC1\xCE\xE4\x91aK\x80F\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ\x90\x99\x9Fg\xC0g\xA6o|5 0&lt;\xCA\xF9:\xBAMr\xE0%\xC3\xFA`g\xF2Ȱ%@#\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xC8\xCC\xCF3\xE03S\x807\xBE\x9E\xE5|\xDD&amp;9\xF0\x92a}\xB0\xB3ydؒ\xA0\x91kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%d\xE6\xE7\xF0\x99)\xC0_
+ O\x80r\xBE\x8En\x93xɰ&gt;\xD8Y\x80&lt;2lI\xD0\xC857\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$
+q\xCD
+4\xB2&gt;&lt;ْ2\xF3\xF3 \xF8̔\xE0\x8D\xAF\x80\x86'@9_G\xB7I\xBCdX\xEC,@\xB6$h\xE4\x9Ahd}x\xB2%P\x88kn\xA0\x91\xF5\xE0ɖ@!\xAE\xB9\x80F\xD6\x80'[\x85\xB8\xE6Y\x9ElI\x99\xF9y|fJ\xF0\xC6W\xC0\xC3\xA0\x9C\xAF\xA3\xDB$^2\xACv \x8F [4r\xCD
+4\xB2&gt;&lt;ْ(\xC457\xD0\xC8\xFA\xF0dK\xA0\xD7\xDC@#\xEB\xC0\x93-        \x80B\s\x8D\xACO\xB6$\x80\xCC\xFC&lt;&gt;3%x\xE3\xAB`\x80\xE1        P\xCE\xD7\xD1m\x92/\xD6; \x90G\x86-        \xB9\xE6Y\x9ElI\xE2\x9Ahd}x\xB2%P\x88kn\x80\xFFe\xDFޖ\xE5\x86q+\x80\xFE\xFFW;59S#\xDBI\xF1Pk\x95&amp;\x99q \xC4im6\x8A%\xA0\x92\xF1\xA0dJ \xC7\xDC@%\xE3@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9\xF0#\xC2\xF8`f\xE2\x880%@%\xC7\xDC@%\xE3@ɔ@&quot;\x8E\xB9\x80J\xC6\x80\x92)        \x80Ds\x95\x8C%S\x898\xE6*J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\x80\xC63 G\x84)        *9\xE6*J\xA6$q\xCC
+T2&gt;\x94LI$\xE2\x98\xA8d|(\x99\x92H\xC417P\xC9\xF8P2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI\x8C%v \xAF\xFB\xB8@\xA6$\xA8\xE4\x98\x98\xAA5dDf\xD7(\x99\x92H\xC4170\k\xB0t۽P\xF8\x9B5@ɔ@&quot;\x8E\xB9\x81\x81Z#e\x94\xDD\xEB\x80\xAF\xB0G\x94LI$\xE2\x98x\xAF5I\xE6\xD9\xDD        8\x9C\xAD\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ\xB8\xD7# \xECn        +¦\xEC\x97G\x84)        *9\xE6\xBA\xB5\xC8b\xBB\xDB\xB2\x94LI$\xE2\x98\xE8\xD0\xBB\xEC\xEE\x9C\xC6^ P2%\x90\x88cn\xA0Uknl\xB7\xBBap\xBB0@ɔ@&quot;\x8E\xB9\x81&amp;\xAD\xA1\xC4\xEE\xB6\xC0!l\xC1%S@d~\x9E\xF7\xA4\xB6\x80\xC2 \x9D\xC7\xE8\x96\xE4\xC0o\xAD\x89\xCD\xEE\xFE@z6_;&gt;G\x84)        *9\xE6*\xB5\xC6EL\xBB\xBB\xB9\xD9yJ\xA6$q\xCC
+\xD4h͊\xC8v\xF7\xB3\xED\x94LI$\xE2\x98x\xD4\xF1\xED\xEE(de\xCF(\x99\x92H\xC417p\xAF5%\xC6\xC8\xF0[\xF7\x95\xFCf\xC3(\x99\x92&quot;\xF3\xF3 \xB8'%\xB8\xB05t\x9E\xE9&lt;F\xB7$\x87/k\x8D\x88\xA9\xD11\xAA\x98\x81%\xC0\xD7D\xD8p\xED\xF2@\xA6$\xA8\xE4\x98\xB8\xD1k\xE3eU\xB3\xCB\x80\x83\xD9mJ\xA6$q\xCC
+\xFCKk&gt;,Ί7\xE5\xC94\xE8c\xAB(\x99\x92H\xC417?\xBA\xFF\xB6\xBE\xA7j
+\x87]A\xF1\xA6N\x99\xADl\xB5%S\x898\xE6\xE6\xD7\xFF\xBE\xF8\xFB\xEA\xFB\x87\x9C\xA756FD_\xA9b
+:\xD8gJ\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-ɏW\xBEH\xD8\xF4b`߿&quot;\x85\xD6d؞}o/҉\xB0\xCF\xDA\xDC\x808&quot;LIP\xC917\xBEK\xF8\xF8w\xEE\xF8'\xE4Қ \xF2\xA1\xAF\xE6\x95@&quot;6Y\x80\x92)        \x80Ds\xDC_\xDF
+\xBC7\xB0㟐Nk2        \x87\x8E\xB2\xE3)\xD8dJ\xA6$q\xCC\xFDe7o\xFE\xEB\xF5\xC0\xD6\xFF=\xB5\xC6B\xA8d\xE8(&gt;\xDA 2;,@ɔ@&quot;\x8E\xB9?\xAB\xE6E\xC2\xF2\xF5\xC0\xD6\xFF=ye\x8F\x85\xD6\xFAc\xAEb\xB2\xC3\x94LI\x91\xF9yܓ\\xD8:O\x80t\xA3[\x92\x9F\xAA\xFE\xDD\xC0֋\xEC\xB2\xC7Bk\xFD1W1E\xD8am\xEB@\xA6$\xA8\xE4\x98\xFB\x9B\xE6\xBDH\xE8u\xC2\xEC\xCEȄ\xD6UD^ \x84b{(\x99\x92H\xC41\xF7\xCD~\x91\xD0넩\x9D\x91        \xAD\xAB\x88\xBC\xC5\xF6
+P2%\x90\x88c\xEE\xAFY\xF3&quot;\xA1\xD7        \xF3:&amp;Zy-\x87\xED\xA0dJ \xC7\xDC_\xE3]B\xEE\x93        \xAD \x89\xBC\x88\xC3\xF6
+P2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI~\x92\x95/z\x9D0\xA3\x93\xA1u-\xC1\x97AD\xD8^\xED\xE9@\xA6$\xA8\xE4\x98\xFB;ֿH\xE8u\xC2t \x84\xD6\xE5\xC4_lgo(\x99\x92H\xC41\xF7G\xECz\x91\xD0넹\xADˉ\xBF&quot;\xD8\xCE\xDE
+P2%\x90\x88c\xEE\x8F\xF0.!5 \x84\xD6\xE5\xC4_Q餵\xF49\xEFo\xFA\x92\x86kT\xA6\x8D\xD8&gt;”@&quot;\x8E\xB9\xBF`^'L\xE4\xB0@h]N\xF0u,'ź\xEA\xBD\xE9\xC0a\xAD\xF8\xA1!\xC0r\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ&lt;\xBB\xEDoz\x9D0\x91\xC3\xA1u9aWԱ\x90\ \xBC7p\xF9\xD9[\xF1CC\x80\xBD&quot;ċL\xE2\x880%@%\xC7\xDCg\xDB\xFE\xFE\xA0\xD7        s9/\xB2\xAF\xA8\xB5\xFE\xA4\xCB\xFC\x97I\xCB\xCF؊4$la\xAB\xDDR*\xAC\xE4\xA1(\x99\x92H\xC41\xF7ٶ\xBF&lt;\xE8]\xC2\\xCE \x84\xC5+x\xAF\xD6\xCA;\xBC\\xECT \x96\x9F\xA5?\x8EiH\xC0\x92Ɩ\xBA\xBENX\xCFsP2%\x90\x88c\xEE\x83ms\xD0\xEB\x84\xE9\xB4B\xFCLX\xBC\x9CQ\xF7j-\xBB\xDB\xCB\xF5ΰl\xED)\xBA\xF1\xEBĆD\xABgl\x9D\x8B\x8B\x84-&lt;%S\x898\xE6&gt;\xD5\xF6w\xBDN\x98Qk Ȅ\x8B\xF7\xAD\xEB\xF8\xBC\xB7\xB8K7\xB6,\xFFbw\xFE\x9F\xDD\xCD\xF8\x8FP\xEB\x9AQ\xCC\xC0
+\x97\x95{y4J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC93\xDA\xFE\xB6\xA0\xD7        \x93j
+\x99p\xF1\xB2u\xFDe}\xAF\xE2\xAC\xFDO\xBB\x9B\xF1\xBB{\xF0\xFF\xC4Y\xE0\x8CJr\xD5Dx:&lt;\x92@\xA6$\xA8\xE4\x98\xFBH\xDB_\xF4.aR\xAD\x81 .\xDE\xF4\xAD\xAF\xF9m\xE9X\x90\xB5\xFFic7&gt;Ґ8\x95\x8C\xAAmAa\x84\xA7\xA0dJ \xC7\xDC\xE7\xD9\xFE\x9E\xA0\xD7        Sk\xCD\xB1P\xEA\xEE[G\xDBg\x88ߴ\xC54\xE4&quot;\xC8Jǖ1\xA4\xAA\xA9%A4\x80\x92)        \x80Dsf\xFB\x82^'̮5$C\xA9\xAFi}=\x9F$rǶА\x8B\xEB[C\xE4z &amp;\xCF@ɔ@&quot;\x8E\xB9O\xB2\xFD\xDD@\xAF\xA05\x84C\xA9\xA3c\xDD
+\x9F'f\xBB6Ґ\x8BKX\xC3\xFBz&amp;ayFJ\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\xD9\xFEb\xA0w        К        \xF2\xA1\xD4ڮ7ݞ*Z\xAF\xB6Ӑ\x8B XÛJ\x86\x97\xF1ExL&lt;\x9B@\xA6$\xA8\xE4\x98\xFB\xDB\xDF
+\xF4:\xE1Z3AJ\x94Z5\xBC\xBD\xD8w\xA3\x95\x8D\xEA\xAEp\xC8]*\xEF\xA5!\xEB\x97?\xB6\x86\xBE2\x86\xD7)xRJ\xA6$\xC9u̽\xFD\xAD7\x97k\xFD\xB5\xE3A`C\xDD iݐ~\xAE\xBF\xE3\xB2ڶ\xDCTC\xA66$i
+\xEF\xB9xXJ\xA6$\xC9u̽\xFD\xAD.\x97k\xFD\xB5\xE3AfC\xF5[
+lݨn\xBC\xF5\xF0\x92\xF6\xDE]C\xA66doۗ\xB9xXJ\xA6$\xC9u̽\xFD\xAD.\x97k\xFD\xB5\xE9Yl\xCF2\x96\x8Bٴ5\xBC,&amp;B
+2\xBB\x92\x8D\xEC]8\xA4\xE3y(\x99\x92&quot;\xF3\xF3 \xB8'%\xB8\xB05t\x9E\xE9&lt;Fw\xA8$\xDF\xFEV\x97˵\xFE\xDA\xF4\xACͲg=\xAB\x84mT\xDE2\xC6\xF0\xB2
+\x99ZO_\xEFkػj\xC8(\xC2#\xE39\xE2\x880%@\xA5\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_\xFB\xB7鶭m\x9A\xE0\x9D\xD9[L\x9C&gt;\xBC)IC\xA6V\xB5\xBE\x80\xEDK\x86\x8C&lt;2%S\x89\xE4:\xE6\xDE\xFEV\x97˵\xFE\xDA\xF7\xB8-\xB5m\x9DCo\xC5\xDEz\xE2\xF4\xE1MU2\xBB\xB0\x8E\xDE԰}\xBD\x90\x91\xA7\xA0dJ \x91\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_[\x9F\xB8=v\xAE\xF9\x9D\xF8k\xDFUU\xB4&gt;\xBC\xA9MC\xA6\x96\xD7q\xF7\xEE\xF6\xAE\xF2\xF2\xE0\x94LI$\x92\xEB\x98{\xFB[].\xD7\xFAk\xF7C\xB7\xD9\xE6\xF57J\xB1\xD8-\x85\xECCwy2\xBB\xC2ֻ\xF7հ\xE6.p$@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBAC%\xF9\xF6\xB7\xBA\\xAE\xF5\xD7v\xAD)1\xD5\xEEf&lt;Ȳ\xBAŅ\xC5lBw\x85\xEF\xEBԐ\xB4ְ}\x8D\x90W\x84g\xC7 \xC4aJ\x80J\xB9\x8E\xB9\xB7\xBF\xD5\xE5r\xAD\xBF&quot;h
+\x8A5vw\xE5/\xB2,gqya\xFB\xD0]\xA4\x86̮\xB3\xF5\xEE\xADe\xCC\xFBd\xF8\x8F@ɔ@&quot;\xB9\x8E\xB9\xB7\xBF\xD5\xE5r\xAD\xBF\x82h͊\xC5v\xB7\xE7\xBF-aYy\x91\x9B\xD0]\xA7\x86,(\xB5\xB5\x80\xFA2&amp;},|\x87'\xA0dJ \x91\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_q\xB4\xC6\xC5I[\x94\xA2\xD4\xD97\xBB\xC0\xA9\xA5jȚ\x82[ \xA8,c\xC6g§x\x82J\xA6$\xC9u̽\xFD\xAD.\x97k\xFDMkh쒫9)\xAA\x9D}\x97\xB1\xAB\x9BZ\xAA\x86,+\xB8\xB5\x86\xC7J\xC6~|\x93\x87\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݡ\x92|\xFB[].\xD7\xFA+\xA6\xD6\xE8\xD8(~[VV\xF8\xA6ک\xB7\xBE\xBA&gt;r1\xBB!c x\xACd\xE0G\xC1\x97Ex\x8E&lt;\xBC@\xA6$\xA8\x94\xEB\x98{\xFB[].\xD7\xFA+\xB2\xD6\xD9(rC\xD6\xD4\xF6\xBEک\xB7\xBE\xBA&gt;r1\xBB!\xC3k\xB8/f\xD4\xE7\xC0\xC7y\x8EJ\xA6$\xC9u̽\xFD\xAD.\x97k\xFD_k\x8Cl\xB3\xB3\xABX\xF0\xBCϟ\xB1\xBAS\xBB\xD1\xF4\xF9×\xD6gvCf\x94\xF1\xAFz\xDE\xF0ãP2%\x90H\xAEc\xEE\xEDou\xB9\\xEB\xAFDZ\xF3d\x8Bh\x98Z\xCF\xF0\x82'}\xF8\xA4\xD5\xF5ѐ\x8By
+\x99T\xC3_\x8By\xF9ρ\x92\xA7        \xA0dJ \x91\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_\xB5\xCBzq&gt;\xA9\x92IO\xFA\xF0I\xAB\xEB\xA3!\xF32\xAF\x8C?\xEBy\xF3o\x81 O@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBAC%\xF9\xF6\xB7\xBA\\xAE\xF5Wv\xAD!\xB3L\x90\xC5\xCE(c^͓&gt;y\xD2\xD2\xFAh\xC8ż\x86L\xAD\xA4,\xA9\xEF_\xFF\xE1\x81\xF2qD\x98\x92\xA0R\xAEc\xEE\xEDou\xB9\믓\xB4\xCEl\xDB8\xBC\x80\x93
+\xCEՄ\x92\x86\Lj\xC8\xECJޘ\xBA
+8\x80g
+\xA0dJ \x91\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_k͟\xF6\xAEh\xEC\xDD\xFBL*8W.4\xE4&quot;N\xF1\xF5\x95\xBC1{\x90\x9Dg
+\xA0dJ \x91\\xC7\xDC\xDB\xDF\xEAr\xB9\xD6_њEm\\xC5\xC0[w\x9BTs\xAE&amp;\\xCC(^C\xD6\xD3g\xC1 ;\x8F@ɔ@&quot;\xB9\x8E\xB9\xB7\xBF\xD5\xE5r\xAD\xBF\xBE\xA95\x9A^\xDAU\xF6\xA8\xFB\xBE1\xA9\xE6\M\xB8А\x8B
+YSL\xAB\xD9\xC5\xC3&lt;Y%S@d~\x9E\xF7\xA4\xB6\x80\xC2 \x9D\xC7\xE8\x95\xE4\xDB\xDF\xEAr\xB9\xD6_\xB4\xC6T\x9F-\xA5\xB9\xE9{3jNׄ\x92\x86\\xCChȲzBUg\x88\xF0py\xA2\x808&quot;LIP)\xD71\xF7\xF6\xB7\xBA\\xAE\xF5\xA5\xD6\xC8Zn[n\xFAތ\x9A[[\x91\x97\x86\\xF4~
+\xDB\xE4\xAD\xE0\xE1(\x99\x92H\xC41\xF7I\xB6\xBF\xF5\xE6E9Vj\x8D\xAF\xF9\x964Q\x87\xD7\xDCڇ\xD44\xE4\xE2ݗ\xB1VҲ\xE1 \x9E/\x80\x92)        \x80Ds\x9Fd\xFB\x8B\x81\xDE%d\xBD\xD6\x9BqI\xE3tx\xD9M\x98\x9D\x86\\xBC\xFB26\xC8X3\x9C\xC1#P2%\x90\x88c\xEE\xC3l7Ћ\x84\xECҚf3&quot;.i\x9C/\xBB\xE9\xB3Ӑ\x8Bw_\xC66k\x86x\xC4J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\xD3\xD9\xFE\x86\xA0        ٨5\xD3\xC6F\\xD28^v\xD3f\xA7!フm\xD2 g\x88\xF0\x94y\xB4\x808&quot;LIP\xC91\x{1D1DBF}'\xE8EB\xF6jM\xB6Q)\x974N\x87\x97\xDD\xF4\x81\xD9i\xC8Ż/c\xB3\\xD5\xC2&lt;h%S\x898\xE6&gt;\xD2\xF6W\xBDK\xC8v\xAD\xE16$\xE5\x92\xC6\xE9\xF0\xB2\x9B&gt;0;
+\xB9x\xF7e쑫Z8\x80
+\xA0dJ \xC7ܧ\xDA\xFE\xB6\xA0        ٮ5\xDF\xDE]\xD28^v\xD3f\xA7!フ=\x95
+g\xF0\xAC\x94LI$\xE2\x98\xFB`\xDB\xDF\xF4&quot;!۵F\xDCˠK\xA7\xC3\xCBn\xFA\xC0\xEC4\xE4\xE2ݗ\xB1G\xAEj\xE14\x80\x92)         2?π{R\x80 [@\xE1        \x90\xCEctK\xF2Զ\xBF9\xE8EB\xB6kM\xB97A\x974N\x87\x97\xDD\xF4\x81\xD9i\xC8Ż/c\xB3\\xD5\xC2&quot;&lt;h\x9En \x8ESTr\xCC}\xB6\xED/z\x97\x90\xEDZS\xEEM\xD0%\x8D\xD3\xE1e7}`vr\xF1\xEE\xCB\xD8&amp;]\xC1pO@ɔ@&quot;\x8E\xB9\x8F\xB7\xFD\xFDA/\xB2ݲ\xA0K\xA7\xC3\xCBn\xFA\xC0\xEC4\xE4\xE2ݗ\xB1Mƚ\xE11\x80\x92)        \x80Ds\xC1\xF6\xB7}qث5躳.i\x9C/\xBB\xE9\xB3Ӑ\x8Bw_\xC6k\x863x\xC4J\xA6$q\xCC\xFD^$\xE4\xC6\xF19к\xC0\xEE5&amp;m\xE3\xF0\xB2\x93\xF6a
+\xAE\xA9\xA5\xDAcy\xBEJ\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\xCF\xE0]Bn\x9F\xAD \xEC^c\xD26/;i\xE6ѐ\xE1\x9AZ\xAA\xF30V\x84\x87\xCB
+\xC4aJ\x80J\x8E\xB9\xBFË\x84\xFC\xCBr`\xCD\x93\xB6qx\xD9I\xFB0\x8F\x86\x8C\xD5\xD4O\x9D\x87\xE1&lt;\%S\x898\xE6\xFE/\xF2W_ȁ5k\xCC\xD8\xC65g\xEC\xC3T2PS3[\xED^\xE4\xE0\xC9(\x99\x92H\xC41\xF7\xD7x\x91\x90?}!֬1cgԜ\xB1Si\xC8@M\xCD\xEC\xB0{}\x90\x80\xC7
+\xA0dJ \xC7\xDC_\xE3]B\xFEԚ\xA3`\xCD3\xF6pR\xCD\xE9\xFA0\x9B\x86 \xD1\xF4u\xED\xB6{\x95\x9Dg
+\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ\xFC&lt;^$\xE4\xA252F\xC1\x9Afl㤂\xD3\xF5a6
+y\xAF\xA9\x87o\xEC^(D\xE1\x99\xF2 qD\x98\x92\xA0\x92c\xEEo\xF2&quot;!\xA5\xD6\xC8k\x98\xB1\x8D\x93
+Nׇ\xD94䥦\x96\x9D\xEC\xFE\x87\xC0\xBFx\xA0J\xA6$q\xCC\xFDY^$\xA4t|\xACY`\xC66N*8]fӐ\x97\x9Axicǿ\xF5W\x80\x9E&amp;\x80\x92)        \x80Ds\x96w        )\xB5FA\xBA4X\xB3\xBAt=\x9CWp\xAE&gt;,\xA0!o4u\xEF\xCFv\xFCs\xB8\xE1i(\x99\x92H\xC41\xF7\x97տ\xF8\xF3\xBCHx\xB0\xD6(H\x97kV\x97\xAE\x87\xF3\xAA\xCDՇ4\xA4[S\xEB\xFE\xD5\xC3!\xFC\xF0(\x94LI\x91\xF9yܓ\\xD8:O\x80t\xA3[\x92\x9F\xAD\xF2\xC5\xC0\xF2\xA5B/\xA95
+ҥ\xC1\x9Aեk\xE3\xD4R\xF5a
+
+\xE9\xD3Է\x9B\xEEu|\x8E?\xFCU\x84\xE7\xC8\xC3 \xC4aJ\x80J\x8E\xB9\xA9y1\xF0\xCF\xFFӋ\x84\x87i\x8D\x82\\x81\xB0l]\xB9z8\xBB\xD4,}\xB8\x98W\xB6\x86̾\xFB}
+5cEp\xCF@ɔ@&quot;\x8E\xB9\xA9y+\xF0\xCF\xFF\xA7w        \xCFӚ\x89aٺr\xF5pv\xA9Y\xFAp1\xAFl
+\x99z\xEB\x9A\x86 |\x93\x87\xA0dJ \xC7\xDC\xFC\xFA\xF5\xFCJ\xE0\xBF^0\xF4&quot;\xE1IZ\xD3 Q ,[WG7\xB6qv\x91Y\xFAP\x9AZ\xB3\x86̾{M\x9F9|]\x90\x9D'\xA0dJ \xC7\xDC\xFC\xB8%\xB0\xEF\xBF&quot;\x97\xD64Ȓ        +\x95\xA8\x87k\x8A\x8C߇\x8B\xD9kȤ[\xD7\xD0\xF1\xB1×\xD9y\x82J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\xF9\xE5\x85\xC1\xCFh
+\x84\xB1\xB0rE\x89\xB8\xA6\xC8\xADXY\xAD\x86L\xBAuSS?\xBE \xC2\xE3\xE3\x99\xE2\x880%@%\xC7\xDC\xD4\xF0\x97\xFF\x88\xD6@\x88 \x8B\x97\xD3\xD7\xC0\xF5= ۓQ \Pjw\xB52\xE3֭w\xEF\xF8\xFC\xB1 \x84\xD4&lt;;%S\x898榆\xBF\xFCG\xB4B\xF0dX\xBF\x96,
+\x8CܓQk [\xA7\x86 \xBFu\xC7\xDD;n1v\x8D\x90\x9Ag\xA0dJ \xC7\xDC\xD4\xF0\x97\xFF\x8E\xD6L[\xD2}ӕ
+ ޓQ\xCB [\xA7\x86\x8C\xBDo\xF7ݗ\xDD\xCE\xE3\xC1(\x99\x92H\xC4175\xFC忣5\xC2\xE6Ö%\xBC\xE9ޚn\xA9*`\xF6V\xA8!o\xFD\xE6\xEE\xF7\xBBXH\xCASP2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI_\xD3 \xD1&quot;bc\xFDon\xBD\xA6{[\xAA\x8Aي\x8D\xE5i\xC8\xC0[\xBF\xB9\xFB\xE2\xDB\xC11&quot;&lt;5U \x8ESTr\xCC
+\\xB4\xC6B\xA8\x94\xD8[\xF9\xCB\xD6\xCD\xEE\xDE\xC6z\xA2\xB5b{a2\xE4\xD6\xEF\xEF\xBE妐\x9DG\xA0dJ \xC7\xDC\xC0\x9FZ\x93!BVD\xA8\xF9}
+C\xCAX\xDBwX\xD5\xC6[\x9Fݐ\x8Dw\xEF\xB8\xEF؅C:\x9E\x80\x92)        \x80Ds\xD5#N\xA9C*U\xCC\xFB\xC2Ϋ!T=\xDB U\xCFƻ\xF7\xDDz\xE0\xDA! @ɔ@&quot;\x8E\xB9\x81\xBFj
+\x87-\xB9\xADȁ\xF5D(iH\xEF\x8B        RF\x9CJ\x82\x941\xB0\x92\xED}\xD8^\xE4\xE2a(\x99\x92&quot;\xF3\xF3 \xB8'%\xB8\xB05t\x9E\xE9&lt;F\xB7$\x87\xCFj͇e\xA2\xB0\xF5 iH\xB4z\xDE0\xA3'ۋ\x89А\x8D\xB7X\xA4\xE1I\xF1xqD\x98\x92\xA0\x92cn\xE0FkDLʓ e\xEC\xAAs}%{\xA4\xB0\x97\xF7\x9D\xD7
+\xD9{\xF7\x97ę\xE2\xF3\x98\x94LI$\xE2\x98\xB8ך\xB9\xA4\xEB՚\xBB\x8Fmˤ:\x97ݨ\xE6^\xB2r\xED\xA3\xEE\xB9\x88\xCCcP2%\x90\x88cn\xE0QkPd\xA1Q5\xBC-\xD9\xA5!{W=\xEA\xEEYJ\x82\x80&lt;#%S\x898\xE6j\xB4fE|ۻ\xB3\xAB3\xDA\xF2\xBEWi\xC8\xC5\xF6%,`TI\xB3\xAB\x82h&lt; %S@d~\x9E\xF7\xA4\xB6\x80\xC2 \x9D\xC7\xE8\x96\xE4\xC0\x8Fָ\x88,B\x8BvuR[\x86\xB4k
+\xB9ؾ؁\xA4+ \xE2\x88\xF0\x80x*\x808&quot;LIP\xC917P\xAF51\x8Aӟh]\x9Dڙ![LC.&quot;,s`
+\xC3\xCB[SD\xE0\xE9(\x99\x92H\xC417Ф54B        ՜P]\x9Dݙ\xBB\x97\xFEwra\x8Dck^\xDE\xCA
+a/\x8F@ɔ@&quot;\x8E\xB9\x81\xADѱ]\xC0\xB6\xC4i\xE9\x9A\xE6\xDCظ\xF6\xBF\xDAݏ\xC3\xA1\x863\x8A\x84]&lt;%S\x898\xE6\xFA\xB4\xA6\xC7.a{\xA4\xA5+\xFBso\xCB\xF2\xFF\xB4\xBB
+\xFFgw'\xFE+ȢƖ1\xAF\xD4\xF5u\xC2z\x9E \x80\x92)         2?π{R\x80 [@\xE1        \x90\xCEctKr\xE0Fk\x86\xAC\xBC\xEF?\xE1\xA5\xC5ͩ\xB1r\xF9\xB2\xA5!q*\x99T\xEA\xAEja\xA5\x85'\x88#”\x95s\xEF\xB5&amp;\xC9l)\xFA0\xE4C\xBA\xADlK\xAB5\xC8ҍ_5$T1G kx(J\xA6$q\xCC
+ \xD4)c\xED^\xFD\x98w        &gt;j\xE0}\xE3\x98ׁ\x8C\xDD\xF8\x95\xBF!K\x9AW\xF6ޚa6O@ɔ@&quot;\x8E\xB9\x81Z\xB3\xE5\x8D\xDDk\xFD?\xC3\xCB&gt;\xB5Q\xF5\xC6v {7~i\x80x(\x99\x92H\xC4170UkȤ΢yK8\xAFW\xAD\xDEt\xE0\xB0V\xFC\xD0`QP2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI\x8C\xD5;\x89\x92g͢N\xEAX\xB7þ9\xEFi\xB0Le\xE0LMq\xC4aJ\x80J\x8E\xB9F\xA7\xCF\xF8P2%\x90\x88cn\x80Q\xC4)\xC73&gt;\x94LI$\xE2\x98`q
+\xC0\xF1\x8C%S\x898\xE6E\x9Cp&lt;\xE3@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9@%q
+\xC0\xF1&quot;\x8C6Y \x8ESTr\xCC
+0\x8A8\xE0x\xC6\x80\x92)        \x80Ds\x8C&quot;N8\x9E\xF1\xA0dJ \xC7\xDC\xA3\x88S\x8Eg|(\x99\x92H\xC417\xC0(\xE2\x80\xE3J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9*\x89S\x8Ea|\xB0\xC9qD\x98\x92\xA0\x92cn\x80Q\xC4)\xC73&gt;\x94LI$\xE2\x98`q
+\xC0\xF1\x8C%S\x898\xE6E\x9Cp&lt;\xE3@ɔ@&quot;\x8E\xB9F\xA7\xCF\xF8P2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnIPI\x9Cp\xBC\xE3\x83M\x88#”\x95s\x8C&quot;N8\x9E\xF1\xA0dJ \xC7\xDC\xA3\x88S\x8Eg|(\x99\x92H\xC417\xC0(\xE2\x80\xE3J\xA6$q\xCC
+0\x8A8\xE0x\xC6\x80\x92)         2?π{R\x80 [@\xE1        \x90\xCEctKr\x80J\xE2\x80\xE3El\xB2@\xA6$\xA8\xE4\x98`q
+\xC0\xF1\x8C%S\x898\xE6E\x9Cp&lt;\xE3@ɔ@&quot;\x8E\xB9F\xA7\xCF\xF8P2%\x90\x88cn\x80Q\xC4)\xC73&gt;\x94LI\x91\xF9yܓ\\xD8:O\x80t\xA3[\x92T\xA7/\xC2\xF8`\x93\xE2\x880%@%\xC7\xDC\xA3\x88S\x8Eg|(\x99\x92H\xC417\xC0(\xE2\x80\xE3J\xA6$q\xCC
+0\x8A8\xE0x\xC6\x80\x92)        \x80Ds\x8C&quot;N8\x9E\xF1\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ\xA0\x928\xE0x\xC6\x9B,G\x84)        *9\xE6E\x9Cp&lt;\xE3@ɔ@&quot;\x8E\xB9F\xA7\xCF\xF8P2%\x90\x88cn\xA0\x92\xF1\xA0dJ \xC7\xDC@%\xE3@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9\xF0#\xC2\xF8`f\xE2\x880%@%\xC7\xDC@%\xE3@ɔ@&quot;\x8E\xB9\x80J\xC6\x80\x92)        \x80Ds\x95\x8C%S\x898\xE6*J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\x80\xC63 G\x84)        *9\xE6*J\xA6$q\xCC
+T2&gt;\x94LI$\xE2\x98\xA8d|(\x99\x92H\xC417P\xC9\xF8P2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI\xFC\x880&gt;\x98Y\x808&quot;LIP\xC917P\xC9\xF8P2%\x90\x88cn\xA0\x92\xF1\xA0dJ \xC7\xDC@%\xE3@ɔ@&quot;\x8E\xB9\x80J\xC6\x80\x92)         2?π{R\x80 [@\xE1        \x90\xCEctKr\xE0G\x84\xF1\xC1\xCC\xC4aJ\x80J\x8E\xB9\x80J\xC6\x80\x92)        \x80Ds\x95\x8C%S\x898\xE6*J\xA6$q\xCC
+T2&gt;\x94LI\x91\xF9yܓ\\xD8:O\x80t\xA3[\x92?&quot;\x8Cf \x8ESTr\xCC
+T2&gt;\x94LI$\xE2\x98\xA8d|(\x99\x92H\xC417P\xC9\xF8P2%\x90\x88cn\xA0\x92\xF1\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ\xF8a|0\xB3qD\x98\x92\xA0\x92cn\xA0\x92\xF1\xA0dJ \xC7\xDC@%\xE3@ɔ@&quot;\x8E\xB9\x80J\xC6\x80\x92)        \x80Ds\x95\x8C%S@d~\x9E\xF7\xA4\xB6\x80\xC2 \x9D\xC7\xE8\x96\xE4\xC0\x8Fベ\x88#”\x95s\x95\x8C%S\x898\xE6*J\xA6$q\xCC
+T2&gt;\x94LI$\xE2\x98\xA8d|(\x99\x92&quot;\xF3\xF3 \xB8'%\xB8\xB05t\x9E\xE9&lt;F\xB7$~D\xCC,@\xA6$\xA8\xE4\x98\xA8d|(\x99\x92H\xC417P\xC9\xF8P2%\x90\x88cn\xA0\x92\xF1\xA0dJ \xC7\xDC@%\xE3@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9\xF0#\xC2\xF8`f\xE2\x880%@%\xC7\xDC@%\xE3@ɔ@&quot;\x8E\xB9\x80J\xC6\x80\x92)        \x80Ds\x95\x8C%S\x898\xE6*J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\x80\xC63 G\x84)        *9\xE6*J\xA6$q\xCC
+T2&gt;\x94LI$\xE2\x98\xA8d|(\x99\x92H\xC417P\xC9\xF8P2%D\xE6\xE7pOJpak\xE8 &lt;\xD2y\x8CnI\x8C%v \xAF\xFB\xB8@\xA6$\xA8\xE4\x98\x98\xAA5dDf\xD7(\x99\x92H\xC4170\k\xB0t۽P\xF8\x9B5@ɔ@&quot;\x8E\xB9\x81\x81Z#e\x94\xDD\xEB\x80\xAF\xB0G\x94LI$\xE2\x98x\xAF5I\xE6\xD9\xDD        8\x9C\xAD\xA0dJ\x88\xCC\xCF3\xE0\x9E\x94\xE0\xC2\xD6\xD0Ax\xA4\xF3ݒ\xB8\xD7# \xECn        +¦\xEC\x97G\x84)        *9\xE6\xBA\xB5\xC8b\xBB\xDB\xB2\x94LI$\xE2\x98\xE8\xD0\xBB\xEC\xEE\x9C\xC6^ P2%\x90\x88cn\xA0Uknl\xB7\xBBap\xBB0@ɔ@&quot;\x8E\xB9\x81&amp;\xAD\xA1\xC4\xEE\xB6\xC0!l\xC1%S@d~\x9E\xF7\xA4\xB6\x80\xC2 \x9D\xC7\xE8\x96\xE4\xC0o\xAD\x89\xCD\xEE\xFE@z6_;&gt;G\x84)        *9\xE6*\xB5\xC6EL\xBB\xBB\xB9\xD9yJ\xA6$q\xCC
+\xD4h͊\xC8v\xF7\xB3\xED\x94LI$\xE2\x98x\xD4\xF1\xED\xEE(de\xCF(\x99\x92H\xC417p\xAF5%\xC6\xC8\xF0[\xF7\x95\xFCf\xC3(\x99\x92&quot;\xF3\xF3 \xB8'%\xB8\xB05t\x9E\xE9&lt;F\xB7$\x87/k\x8D\x88\xA9\xD11\xAA\x98\x81%\xC0\xD7D\xD8p\xED\xF2@\xA6$\xA8\xE4\x98\xB8\xD1k\xE3eU\xB3\xCB\x80\x83\xD9mJ\xA6$q\xCC
+\xFCKk&gt;,Ί7\xE5\xC94\xE8c\xAB(\x99\x92H\xC417\xF0W\xAD\xE1\xB0+(\xDE\xD4)\xD3\xA0\x95\xAD\xA0dJ \xC7\xDC\xC0_\xB5\x86\xC3ƈ\xE8+U\xAC@\xFB,@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9|Pk2lχ\xBE\x82\xB7\x97
+\xE9D\xD8gm\xEE@\xA6$\xA8\xE4\x98\xF8Sk2Dȇ\xBE\x9A#T\x89\xD8dJ\xA6$q\xCC
+\xFC\xA95\x82\x84CG\xD9q\x8A\x80l\xB2%S\x898\xE6.Zc!T2tm        \x99\xA0dJ \xC7\xDC\xC0E\xF6Xh\xAD?\xE6* &amp;;,@ɔ\x99\x9Fg\xC0=)\xC0\x85\xAD\xA0\x83\xF0H\xE71\xBA%9|M\xF6Xh\xAD?\xE6* \xA6;\xACm\x88#”\x95s\xA532\xA1u\x91\xD7\xA1\xD8^J\xA6$q\xCC
+\x94\xCEȄ\xD6UD^ \x84b{(\x99\x92H\xC417P:&amp;Zy-\x87\xED\xA0dJ \xC7\xDC@\xE9\x98Lh]H\xE4\xB5@\xB6W\x80\x92)         2?π{R\x80 [@\xE1        \x90\xCEctKr\xF8\x8E\x93\xA1u-\xC1\x97AD\xD8^\xED\xE9@\xA6$\xA8\xE4\x98\xF8\xED\xB0@h]N\xFC\xC0v\xF6V\x80\x92)        \x80Ds\xBF\xADˉ\xBF&quot;\xD8\xCE\xDE
+P2%\x90\x88cn\xE0\xB7\xC3\xA1u9aW\x94\xBAx\xB6\x88\xF9=\xF9\xF27\xF9\xCBk\xE7&lt;\x95\xDFg_l\xE0#LI$\xE2\x98\xF8\xED\xB0@h]N\x9CuTv-\xAC\xED\x8B\xF1\xE5o\xF2\x97\xD7\xCE\xF1|\x93J\xA6$\x80\xC8\xFC&lt;\xEEI        .l
+\x84'@:\x8F\xD1-\xC9\xE1; \x84\xD6\xE5l_QG\xC1\xF1պ\xAE/9\xE3^\xA1:ܴ\xC0P\x95\xBF\xF7\xE5\xB5\xF3\xBE\xC0\x9E \x8ESTr\xCC
+\xFCv^ \xA4XQk\x91}\xB6,\xADc\x81_(r콚&gt;\xED}\xF1c\x8B\xE93u        \xDD&gt;\xBBp&gt;\xC8W\xA0dJ \xC7\xDC\xC0o\xE7B\xF0\xB5\x96\xF7\xDE\xE2v,sK\x85\x8B\x8Bx\xAF\xA6\x8FR\xFC\xC0J^\x9A\xB4\x90\x9F]8\x9F\xE5K P2%\x90\x88cn\xE0\xB7\xD6@\x88\x9F        \x91\x97\xD3\xD1\xEDQV.\xB3u\xA5\x8Bk\xDBR\xE4\xA8{5}Ψ\xE2G\x951\xC4\xF0\xB5X;\xD4\xF0u(\x99\x92H\xC417\xF0[k Ȅ&gt;}\x9E!\xE6z\x97U\xB5\xB1\xC8\xF7\xF7j\xFA\x84\xB1\xC5\xACd\x94\xB1+\xB2vx\xE4\x8B
+P2%\xC0\xFF\xB0wG;r\xE38\xE7\xFFz\x8B        r^g\xE2\xB6d\x89&quot;\xE5\xAA7\xB71\xC9V\xD3bk\x8C\x83\xCClπk\xBA'
+4O\x80r&gt;\xB6n\x9Dޣ\xB5!\xE8        :\x8A&lt;O”cBZ\xE4\xC3{5\xFD\xE7Ã\xC9@\x93\xAA\x95\xF8\x97&amp;\xCC
+V\xA9\xAF\x90G\x86)        nr\xCC
+\xFC\xD6\xDA\xB4\x85V}\x9E*[\xD6\xF1,\xF2ɽ\x9A\xFE\xDB\xC1\x8F
+c\xB8!y\xC9\xEE\xB0D\x8ELI\xE2\x988j\xED        \xDA\xC2M\x85\x8D\x94'\xF7\xA9\x91$        \xF2ɽ\x9A\xFE\xDB\xC1\x89a\x92\xE7\xA9\xD5\xCD\xFDK+&amp;\x90\xC5        pdJ\xA0\xC7\xDC\xC0QkO\xD0\xEE\xE8\xABj\xB0$\xE9\xCF #O\x90\xDD\xF7j\xFA3\xEFav\xA5s\xFFҊ\x89be\x99\x92(\xC417p\xD4\xDA4\x87\x8F\xBAK/C&amp;Ő*Ⱦ{5\xFDW\x93\x82\xC3T?\x9Dҹiń\xB0,\x8ELI\x99ٞ\xD7t        N&lt;:h\x9E\xE5|l\xDD:9\xBCJkO\xD0\xAE=\xA9\xE7ˋ0#\x80lAvܫ\xE9?\x99\xFC\xC0f{\xF8\x95\xCE\xFDK+f\xBE k\xD2\xC8#Ô79\xE6\x8EZ{\x82.q\xEDy=oVuԍ\xEE\xDCkj\x86\xDF=a\x90\xAD\xF7j\xFA\xDF\xCF &gt;\xE0\xEECn\xF1\xF1.        \x98\xFB\x9D{\xC1C\xD6$\xC0\x91)        \x80Bjs\x9Fp\xE9\xF2=\x97\x91Z\xDBB\xC2^\x91Īf\xFB\xEC\xD6\xDE=a\x90\xAD\xF7j\xFA\xDFO
+\xBE\xD6\xBBo\x9A$\x8C\x877\x98&gt;\xFCȂ82%PH\xADc\xEE\xAFou\xB9t\xA9\xB5-\xA4\xEDk-\xAF\xDB\xF2\xFA&quot;{\xEB\x9CA6ݫÐ\x82         \xB8\xF4\xAD3\xD0}\xF7\x81\x80?Y\x8DG\xA6$
+\xA9u\xCC\xFD\x95\xE3\xAD.\x97.\xE3/\x83\xB5v\x86\x8F\xE6\xB2D\x9EBe\x88dm\xD9t\xAF\xE5\xA5[\xCF\xC2\xD6&amp;\xFE$\x86\x91\xC0o\x96&quot;\xC0\x91)         3\xDB3\xE0\x9A.\xC0\x89G@\xCD\xA0\x9C\x8F\xAD;U'\xFF\xCA\xF1V\x97K\x97\xF1\x97\xC1Z;\xC3} \x93\x8A\x94\xAA8\xCB?\xAC EHdӽ\x96W,CHK*\x93!\xF1'\xC1L\x8D\x87\x97˰\xAD \x8F S\xDCT\xEB\x98\xFB+\xC7[].]\xC6_\xC6km\xD6&amp;8O\xC2j\xAC
+)O\x92\xD9t\xAF\xB5\xE5\xCARp}\xF2$\xFE$\xA4\x80\xA8x'\xEB\xE0Ȕ@!\xB5\x8E\xB9\xBFr\xBC\xD5\xE5\xD2e\xFCe\xBC\xD6\xE6\xF0\xD0\xDAd\xC7ʙ\xFE\xC2\xCF%[)\x96\xD9t\xAF\x85\x85\xCAUd&lt;\xA9\xEF\x8E*,0\xDE\xC6:82%PH\xADc\xEE\xAFou\xB9t\xB9Dkeuޏd\xCEwUl9\xAB\xB10Ȧ{-\xACR\xC2\xC0bBʖ\xF5\x93؂\xC3\xE3%,B\x80#S\x85\xD4:\xE6\xFE\xCA\xF1V\x97K\x97񗫴\xB6\x88\xE1V\xA0Y\xF2\x97|\x99 \xB2$Ȧ{\xAD*Q\xCE\xC0b\xA2ʖ\xF5\x93\xF0\x96D\xC8\xF6,B\x80#S@f\xB6g\xC05]\x80\x8F\x80\x9A'@9[w\xAAN\xFE\x95\xE3\xAD.\x97.\xE3/j\xEDS\xAD.\xC6%҉2M\x82\x83l\xBAת\xFA\xBC6\xB0\x9CYwG\xB80N6\x96aZ\xF6@\xA6$\xB8\xA9\xD61\xF7W\x8E\xB7\xBA\\xBA\x8C\xBF\\xAB\xB5Q\xC4X]\x95\x94H!\xBE\xD4\xF9kdӽV\xD5'gT\xAD\x81uĖ6\xF1\xEE \xC6ɮ\xAC@\x80#S\x85\xD4:\xE6\xFE\xCA\xF1V\x97K\x97\xF1\x97˵\xF6\x8A`\xAB\xCB\xF3\xAFB1\x87Z\xA2,i \xB2\xA48i\x9B^欻\xE3\*[\xB2\x8ELIR\xEB\x98\xFB+\xC7[].]\xC6_f\xD0\xDA.\x96(T\x9F\xF7\x84Z\xA2,i \xB2\xA42i\xEB\xAF)\xC2\xCCYw\x87\x9A$`vb\xF9\x99\x92(\xA4\xD61\xF7W\x8E\xB7\xBA\\xBA\x8C\xBF̣\xB5i\xAC\x92\xBC,\xC1\xE1\xAD
+\xB8De&quot;\x83l\xBAW|e\xD2\xD6\xE4\x8Cv^j\xC3CM0;\xB1\xFC\x8ELI\x99ٞ\xD7t        N&lt;:h\x9E\xE5|lݩ:\xF9W\x8E\xB7\xBA\\xBA\x8C\xBF̦\xB5u,\x94\xB3 1Q%        \xB8De&quot;\x83l\xBAW|Y2\xC7\xD6\xE4\xF0sjj\xF7\xE5\xFF\x98\xD8U\xD3ڛ\xB4\xFC\xACy \x8F S\xDCT\xEB\x98\xFB+\xC7[].]\xC6_\xE6\xD4\xDA@JU\x8A\xD9\xC1\xDCs\x89\xE2D\xD9t\xAF\xF8\xB2\xA4
+lv\x90\xF9\xB3&gt;)\xF1I\xB1\xA5\xA6\xB5g\xF9\xDB3%PH\xADc\xEE\xAFou\xB9t\x99YkY(I&amp;\x85\xD1*,\xE6ʼn \xB2\xE9^\xC1eI\xD8\xC3P\xC7\xFE\x83\xB3S\xBB\xA9\xCA'\xC5~\x9A֞\xE5lϔ@!\xB5\x8E\xB9\xBFr\xBC\xD5\xE5\xD2e\xFCe        \xAD\xFDd\x89 \x89ψ\xA1CX\xD8%\x8Adӽ\x82k\x926\xB0١V\xC9\xFA\xA4\xD0\xE7\xC5N\x9A\x9E\xB5lϔ@!\xB5\x8E\xB9\xBFr\xBC\xD5\xE5\xD2e\xFCe-\xAD\x8D%\xDE\xC2|\xC7\xDE\xFA\xA1\x98\xC8K\xD4'2Ȧ{\xD7$m`\xB3C\xAD\x92\xF5I\xA1ϋ\x9D4-&lt;k؞)         3\xDB3\xE0\x9A.\xC0\x89G@\xCD\xA0\x9C\x8F\xAD;U'\xFF\xCA\xF1V\x97K\x97\xF1\x97u\xB56\x990\xABrx\xDF\xE7b&quot;/Q\x9F\xC8 \x9B\xEE\\x93\xB4\x81\xCDV4\xEB\xD7~^\xACմ\xF0&amp;\xAD= \xC8#Ô7\xD5:\xE6\xFE\xCA\xF1V\x97K\x97\xF1\x97{hm8\xB3-Ij\xC8MG\x89\x89\xBCD}&quot;\x83L[\x90\xA6\xC0\x82c\x9B\xAAn\xCA\xEF\xFC\xBCX\xAE\xB1UX{\xC0\xE6LIR\xEB\x98\xFB+\xC7[].]\xC6_n\xA9\xB5\xFF\xCC\x9C\xC5\xF3ۍ|\x89E\x99\xB6 i\x9B\xADt֥\x83\xA7\xA8\xA6^a\xED\xDB3%PH\xADc\xEE\xAFou\xB9t\xB9\xBD\xD6^4Pd\xE4Cj5PL\xF0%Jdڂ\xA4
+l\xB6\xD2Y\x97\x9E\xA2\x9Az\x85\xB5lϔ@!\xB5\x8E\xB9\xBFr\xBC\xD5\xE5\xD2e\xFC\xE5۴\xB6\xA6\x87\xC2BU\x9FQb
+U\xA2D\x91A\xA6-H\xDA\xC0f+\x9D\xF5k?5jZu\xB0=S@f\xB6g\xC05]\x80\x8F\x80\x9A'@9[w\xAAN\xFE\x95\xE3\xAD.\x97.\xE3/߬\xB5M\xF5\x89        o`YF        \x88\xBFD\x89&quot;\x83L[\x90\xB4\x81\xCDV:\xEB\xD7~j,Դ\xEA&amp;-&lt;\xAB\xC8#Ô7\xD5:\xE6\xFE\xCA\xF1V\x97K\x97\xF1\x97|kmY\xF7ń4\xB0\xA3\xC4_\xA2D\x91A\xA6-H\xDA\xC0fkJ\xBC\xB4Օf\xC0\x91)        \x80BsE\xB5\xB6\xAF\xFDm\x83\x89E\x99\xB6 i\x9B\xAA)\xEB\xEAV\x9BMXxG\xA6$
+q\xCC
+\x94\xD6\xDA\xC4ƶ\xB8
+\xFAg@
+%\xAAd΂\xE4\x8C*@S\xE2խ.6\x9B\xB0\xF0\x8ELI\xE2\x98\xD8Ck7\xD2\xE26\xE8\x9F)\x94\xA8Rd\x909 \x923\xAAM\x89W\xB7\xBA\xD8l\xC2\xC282%df{\\xD3%8\xF1h\xE8\xA0y\x94\xF3\xB1u\xEB\xE4@!\xAD=\xEDa\x8B۠\xA4P\xA2J\x91A\xE6,HΨ4%^\xDD\xEAb\xB3\x89 \xCFj\xF2\xC80%\xC0M\x8E\xB9\x81\xFD\xB4v\xB6\xEE.\xB7A\xFF H\xA1D\x95&quot;\x83\xCCY\x90\x9CQhJ\xBC\xBA\xD5\xC5f\xC0\x91)        \x80Bs[jmn}]n\x83\xFE\x90B\x89*E\x99\xB3 9\xA3
+Дxu\xAB\x8B\xCD&amp;,&lt;\x80#S\x858\xE6v\xD5\xDA\xDF:\xDD\xFD3 \x85U\x8A 2gArF\xA0)\xF1\xEAV\x9BMXxG\xA6$
+q\xCC
+l\xAC\xB5ŵ6\xBA
+\xFAg@
+%\xAAd΂\xE4\x8C*@S\xE2խ.6\x9B\xB0\xF0\x8ELI\x99ٞ\xD7t        N&lt;:h\x9E\xE5|l\xDD:9PZk\x97kjt\xF4πJT)2Ȝ\xC9U\x80\xA6ī[]l6\x91a\xE1Y\xED@\xA6$\xB8\xC917\xB0\xB7\xD6.\xD7\xD4\xE86\xE8\x9F)\x94\xA8Rd\x909 \x923\xAAM\x89W\xB7\xBA\xD8l\xC2\xC282%P\x88cn`{\xF3\xDD\xFD3 \x85U\x8A 2gArF\xA0)\xF1\xEAV\x9BMXxG\xA6$
+q\xCC
+l\xAF\xB5\xD1\xDD\xEFu\xF4πJT)2Ȝ\xC9U\x80\xA6ī[]l6a\xE1\x99\x92(\xC417\xB0}hM\xF0~\x8E\xD4- \x85U\x8A 2gArF൉C\xB7\xA6o\x8D/\xB0=S@f\xB6g\xC05]\x80\x8F\x80\x9A'@9[\xB7N\xDB۾\xB4&amp;x?\xC7
+\xEA\x90B\x89*E\x99\xB3 9\xA3
+\xF0\xDAġ[ӷf\xD2Ƿ\xC8#Ô79\xE6\xDE\xD0&amp;\xE5X\xBDn1\xF1\x97\xA8Rd\x909 \x923\xAA\xAFM\xBA5}k|q\x80홒(\xC417\xF0\x86&gt;0)\xC7\xEAu\x8B\x89\xBFD\x95&quot;\x83\xCCY\x90\x9CQxm\xE2Э\xE9[\xE3\x8Blϔ@!\x8E\xB9\x817\xF4\x81I9V/]L\xF0\xF9K\xD4\xE1\xF3 s$gT^\x9B8tk\xFA\xD6\xF8\xE2\xDB3%P\x88cn\xA0\xB5Tl\xF3,]\xB7\x98\xE0\xF3\x97\xA8)\xC2\xE7A\xE6,HpRyg\xD6\xD0\xED\xCD\xED\xE0O\xA6$\x80\xCClπk\xBA'
+4O\x80r&gt;\xB6n\x9D\xB6\xD7\xDA*\xB6\x82y        \x96\xAE[L\xF0\xF9K\xD4\xE1\xF3 \xD3$m`\xB3\xBD6q\xE8\xD3\xF4\x95\x99\xF4\xAD\xF1U\xF2\xC80%\xC0M\x8E\xB9\x81\xD6&gt;P\xB1\xCCK\xB0n\xDD\xE6\xD5\xE4ɍ&amp;8)\xC2\xE7A\xA6-H\xDA\xC0f{m\xE2Ч\xE9+\xE3[lϔ@!\x8E\xB9\x81^\xD0
+\xE6%X\xB7na\x91\xE7/QS\x84σL[\x90\xB4\x81\xCD\xF6\xDAġO\xD3WƷ؞)        \x80Bs\xFF\xBC\xE0\xFF\x9Ap^vu\xEBv\xFE\xFA4E\xF8&lt;ȴI\xD8\xEChk%\xCB5}e|k\x80홒(\xC417\xF0\x8Fw        dW\xB7naa'\xAFOSxC\x82L[\x90\xE0:DF\xF6O\xC14}e|k\x80홒2\xB3=\xAE\xE9\x9Cx4t\xD0&lt;\xCA\xF9غurx\x83\xD6VP\xAELͮbݦ\xE4ɽF%8)\xBC!Af.H\xE6غ\xE3\xBCj\x95\xC4!\x83\xE1_\xC01̸)\xC0\x8F2LIp\x93cn\xE0\x9F\xAEש
+5\x84\xD9yU,\xDA\xEC\x9At\xDFkT\x82\x93\xC2d\xE6\x82d\x8Emj\x9CU?)6\xD55-&lt;k؞)        \x80Bs\xDFZ\xBBA\xA1\x860;\xAF\x8Au\x8B 8yq\x9A\xC2۾ \x99c\x9Bg\x95\xC4O\x8A\x86MuM \xCF\xDA\xB6gJ\xA0\xC7\xDC\xC0\xB7\xD6nP\xA8!\xCCΫ\݂\xCE\\x9C\xD6R(\xC8\xDA\xF0\xE6Y&quot;\xF1\x93\x8A1\xB3k\xE0Ȕ@!\x8E\xB9\x81o\xADݠJO\x88I\xAAV݂\xA3\xCD\\x99\xD6Rl_\x90\xFC\xE1\xB5Fx?\xC8\xFC\x89\x9F\x94 \x98m4\xAD=\xCB؞)         3\xDB3\xE0\x9A.\xC0\x89G@\xCD\xA0\x9C\x8F\xAD['\x87\xF7hm%\xDABLF\x85\x8Aj\xDA\xE2\xB46*œ\xD5\xE8 /\x84\x93\xFE\xD9%\x89׍\x96\xCDdX~\xD6&lt;\x90G\x86)        nr\xCC
+\xFC\xD6\xDA򷅰t
+\xD5-&gt;δ\x95i
+lT\x849\xAB\xD1^|\x84S\xC3˜\xF8\x93P\x97G\xCBf,?\x80#S\x858\xE6~km\xC9;Cp.%\x8A\xB6$Ȝ\x95i\x8Dj`\x84        \xAB\xF1$\xC2\xE0 \xA7Ɩ9\xF1\x8Aq\xB2++\xE0Ȕ@!\x8E\xB9\x81\xA3֞\x90\xB69\xC4'R\xA2h\xAB&quot;LX\x96\xD6R \x8C0a5\x9ED\xE4\xEC\xC0\xD2&amp;^4Nve\x99\x92(\xC417p\xD4\xDA\xD2\xF6\x87%)$/\xDA\xC2ز\x95\xA55\x9E\xB1\xE1\xA5*Ő c\xE2l
+\xA9/\xAA\x84\x89\x97\x8B\x90\xEDY\x84G\xA6$\x80\xCClπk\xBA'
+4O\x80r&gt;\xB6n\x9Dަ\xB5-dk \xE3O^\xB1\x85\xB1\xA5*Kk0\xC3\xC3\xCBS\x8AQA\xC6\xC4\xD9R_T1w\xE9\x96&lt;&lt;^&quot;\xC3&quot;\xB4\xF2\x80&lt;2LIp\x93cnव-\xA4\xEA\xCB#O[\xB1\xB5Q\xA5*KG0ccKR\x87\xB1q\xCE\xB55\x98'\xF1D\xDEk\x8F\xC0x\xEB\xE0Ȕ@!\x8E\xB9\x81?\xB5v\x86 \xBD&quot;I\xCC9˵&lt;\xA4&lt;e\xE9\x8Bdl`ˋ0#Ω\xD1vD\xF2$\x98\xE0\xDB͋jvH\xBC\x96\xA5pdJ\xA0\xC7\xDC\xC0\x8FZ\x9B\xC3Ž\x91-\xD4\xE5&lt;\x8Fg\xD70:b\x98\xD8\xDA&quot;\xCC uR\xC01&lt;c\xC9M \xC5\xC3\xCBY\x8AG\xA6$
+q\xCC
+\xFC\xA8\xB59,\xE99\x83LƓHƆ\xF1$\x98\xB5w\x9FՒ
+\x84:#\xE6\xBE\x86İ&lt;\xF7'ä~\xB3\x8ELI\x99ٞ\xD7t        N&lt;:h\x9E\xE5|l\xDD:9\xBCVkk i\xE1\xF2F0*\x9E\x87!=\xB9\xEF\x8CxZCzx\xAF\xE7JTiF\xD1J0*\xF8Q\x86\xD5\xE8+\xE4\x91aJ\x80\x9BsZ[Ĥ~\x92$\x8C\xE0\xD2-\xB9\xEF\xD8&quot;\xAC\x8D\xED\xE1\xEDF\xF2$\xB0\x87\xF7&quot;\xB8VOn7\xB6h\xAB\xC2\xC8S\xF8\x91        pdJ\xA0\xC7\xDC\xC0\xB5\xD6.QK\x89\xBA\xA5\xBAW\x86\x9A \xBFK\xEBY\x87\x87\xF7\xA2)\xE0\xEED\x86\xDC\xE5΍\xE2s\xBFըݹ&lt;dM\x99\x92(\xC417\xF0Qk\xA3\xA8B\xDDNf$gM:\x8B,\xC2㒏\xD1\xF3Bo\xCE\xFDی
+\xC0\x89e        pdJ\xA0\xC7\xDC\xC0\xAD\xBD&quot;?u;ymA:\x8B,\xC2\xE3\x92\xD3\xF6o\xCE\xFDۼ
+\xC0\x91\x95        pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6Ɂo\xAD\xED&quot;3u;ymA\xFA\xA2\x8A\xAC\xC0\xC3{\x8D\xD5y\xB07\xE7\xFEmv\xE0\xB7 \x8B\xD37\xC8#Ô79\xE6\xEEk\xED        \xA9۟^[\x90\xEE\x90&quot;\xD3x\xAFᚂ\xF3\xE6ܿ\xC5T\xBEY\x9FG\xA6$
+q\xCC
+4im\xA9\xA8۟^[\x8D'!E\xA6\xFF\xF0^34\xC5\xE0͹\x8B\xAC\xFCc|\xF8/S\x858\xE6:\xB4\xB6\x8E\xE5V\xEC_\xABk\xF0\x83\xD7V\xE3a&lt;\x91\xB9?\xBC\xD7$M)L\xF5\xE6ܿ\xC5W\xACR\x80#S\x858\xE6\xFA\xB4v\x8FUV\xD7\xE9lu=~Y]\x86\xA5\xCA\xFD\xF9\xBF0)\xF1\x87\xF7\x9A\xA7)\x8BI^\x9E\xFEW\xE2\xE5\xC1\xDE,T\x80#S@f\xB6g\xC05]\x80\x8F\x80\x9A'@9[\xB7N\h\xED!\x91V\xD7\xE6\xAFV&amp;Qe\xF2$&gt;\xEA\xDF\x9E\xF5\xC3{\xCD֔\xCB@\xAB\xF3\xFEת\xDC\xF3T\x80\xD7ʰ\}G\x80&lt;2LIp\x93cn\xE0\xB9\xD6N2\xDB\xEAzܢ2\xBFe\xC8}\xE0?56߇\xF7
+Д\xCE\xAB3\xFE\x8F\x97\xA7\xCF;Y\xB4G\xA6$
+q\xCC
+ \xD4\xDAR\xC6Z\x9D}\xC5\xF9\xB6&lt;\xF7\xE1\xFF`\x92{\x85iJ\xAA\xDB\xEA,\xFF\xEA\xE5\xE9\xF36\x96.\xC0\x91)        \x80Bs3\xB4\xF6\x96'V\xE7:\x80\xFA\xFC\xF6\xE6\xDC70\xF6\xE3+\xF79NJ\xBFPx         \xE0Ȕ@!\x8E\xB9\x81\xA9Z\x9B\xCC\xCB{\x91\xFA|{y\xFAx\xF92~y\xFAl\xCFb82%df{\\xD3%8\xF1h\xE8\xA0y\x94\xF3\xB1u\xEB\xE4\xC0X\xADm\xE7͝G\x89\xBE\xA9@u/_\xC6/O\x9F\xFD\xDC\\xD2S׶/\x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nr\xCC
+\xDCd|82%P\x88cn\xE0&amp;\xE3\xC0\x91)        \x80Bs7\x8ELI\xE2\x98\xB8\xC9\xF8pdJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3(\xE7c\xEB\xD6\xC9\x80o\xC63 \x90G\x86)        nj=\xE6\xB8i\xF5\xB80\x97)        \x80Bf\xFC\xC10\xC0\x97\xBF\x92vgJ\xA0\x900 \xF0\xE5\xAFd\x80ݙ\x92(d\xC6 |\xF9+Y`w\xA6$\x80\xCClπk\xBA'
+4O\x80r&gt;\xB6n\x80&gt;KF\x987\xF8Q\x86)        n\xEA\xFA\x8B`\x80\xCFV\x8F;@a%\xC6
+S\x85\xF4\xFEQ0\xC0\xAB\xC7\xA0\xB0\xE3\x86)        \x80Bz\xFF(\xE0\x83\xD5\xE3PX\x89qÔ@!\xBD \xF0\xC1\xEAq\xA8\xAAʸaJ\xC8\xCC\xF6 \xB8\xA6Kp\xE2\xD1\xD0A\xF3\xD8\xC6ǖ\xF0[\x9EQ%,`\x9E*;\xFF\xB4\xA3\xDC\xD7z\xFC
+\xBC\xD9\xEA        \xD8J\x95\xC4\xE8\x90\x90MpM\x97\xE0ģ\xA0\x83\xE6        \xB0\x9F\xD6\xDE\xBCY\xB6        ev&lt;\xC0&lt;\x85\xF6\xFCF\x80\x84lҀk\xBA'
+4O\x80\xFD\xB4\xF6v\xE0ͲM(\xB3\xE3\xE6)\xB4\xE77\xAA$d\x93\\xD3%8\xF1h\xE8\xA0y짵\xB7o\x96mB\x990O\xA1=\xBFQ !\x9B4\xE0\x9A.\xC0\x89G@\xCD`?\xAD\xBDx\xB3l\xCA\xECx\x80Ij\xED\xF9\x8D*        ٤\xD7t        N&lt;:h\x9E\xFBi\xED\xED\xC0\x9Be\x9BPf\xC7\xCCPn\xCFoTH\xC8&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;\xC0\x94\xDB\xF3U\xB2I\xAE\xE9\x9Cx4t\xD0&lt;\x98ǯO\xB0\xBD\x8A{~\xA3
+@B6i\xC05]\x80\x8F\x80\x9A'\xF3\xF8\xF5        \xF6Vt\xCF_4l\x80\xBD٤\xD7t        N&lt;:h\x9E\xCC\xE3\xD7'\xD8X\xEB\x86?Ϟ\xBFh\xD8{\xB3I\xAE\xE9\x9Cx4t\xD0&lt;\x98ǯO\xB0\xA5֭~\xB6=Ѱ\xF6f\x93\\xD3%8\xF1h\xE8\xA0y0\x8F_\x9F`'\xAD;\xFC\xB4{\xFE\xA2a\xEC\xCD&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;@u\xAD\xBB\xFA{\xFE\xA2a\xEC\xCD&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;@-\xAD{\xF8\xA2{\xFE\xA2a\xEC\xCD&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;@~\xAD\xFB\xF6'V\xE7\xFAKѰ\xF6f\x93\\xD3%8\xF1h\xE8\xA0y0\x8F_\x9F \xBF\xD6}\xFB\xABs\xFD\xA5h\xD8{\xB3I\xAE\xE9\x9Cx4t\xD0&lt;\x98ǯO\x90_\xEB\xBE\xFD\x89չ\xFER4l\x80\xBD٤\xD7t        N&lt;:h\x9E\xCC\xE3\xD7'ȯu\xDF\xFE\xC4\xEA\)6\xC0\xDElҀk\xBA'
+4O\xE6\xF1\xEB\xE4׺obu\xAE\xBF
+`o6i\xC05]\x80\x8F\x80\x9A'\xF3\xF8\xF5        \xF2kݷ?\xB1:\xD7_\x8A\x86
+\xB07\x9B4\xE0\x9A.\xC0\x89G@\xCD\x80y\xFC\xFA\xF9\xB5\xEE۟X\x9D\xEB/E\xC3؛MpM\x97\xE0ģ\xA0\x83\xE6        \xC0&lt;~}\x80\xFCZ\xF7\xEDO\xAC\xCE\xF5\x97\xA2a\xEC\xCD&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;@~\xAD\xFB\xF6'V\xE7\xFAKѰ\xF6f\x93\\xD3%8\xF1h\xE8\xA0y0\x8F_\x9F \xBF\xD6}\xFB\xABs\xFD\xA5h\xD8{\xB3I\xAE\xE9\x9Cx4t\xD0&lt;\x98ǯO\xF0\xB5\xF6\xFCF\x80\x84lҀk\xBA'
+4O\xE6\xF1\xEB\xBCD\xAD=\xBFQ !\x9B4\xE0\x9A.\xC0\x89G@\xCD\x80y\xFC\xFA/Qk\xCFoTH\xC8&amp;
+\xB8\xA6Kp\xE2\xD1\xD0A\xF3`\xBF&gt;\xC0K\xD4\xDA\xF3U\xB2I\xAE\xE9\x9Cx4t\xD0&lt;\x98ǯO\xF0\xB5\xF6\xFCF\x80\x84lҀk\xBA'
+4O\xE6\xF1\xEB\xBCD\xAD=\xBFQ !\x9B4\xE0\x9A.\xC0\x89G@\xCD\x80y\xFC\xFA/Qk\xCF\xDF:\xAA\xAD\xFE\x83b\xA0S\xAD=\xFFԹ\xB8\xB6\xFA\x8A\x80N\xB5\xF6\xFCS\xE7\xE0\xDA\xEA?(:\xD5\xDA\xF3O\x9Dk\x80k\xAB\xFF\xA0\xE8Tk\xCF?u\xAE\xAE\xAD\xFE\x83b\xA0S\xAD=\xFFԹ\xB8\xB6\xFA\x8A\x80N\xB5\xF6\xFCS\xE7\xE0\xDA\xEA?(:\xD5\xDA\xF3O\x9Dk\x80k\xAB\xFF\xA0\xE8Tk\xCF?u\xAE\xAE\xAD\xFE\x83b\xA0\xD3{\xFE\xA9\xF3\xBC\xD0\xEA\xBFF\xDAc\x98:\xC0 \xAD\xFEa`\xA4=\x81\xA9C\xBC\xD0\xEA\xBFF\xDAc\x98:\xC0 \xAD\xFEa`\xA4=\x81\xA9C\xBC\xD0\xEA\xBFF\xDAc\x98:\xC0 \xAD\xFEa`\xA4=\x81\xA9C\xBC\xD0\xEA\xBFF2\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.!\xECͻ\x84\xB07\xEF\xC0޼K{\xF3.! \xF4u\xC3\xEA\x80\xAD\xDC\xD9~؄tPXx\xE2\xFE7ȗ\xA8\x8F\xF2\xE5h\\x93x\xE6\xF2Nۯ\xFC\xBD\xB3\xCB@m\xB8\xC9OI\xC0\x9F\xEE\xEB\x9B \x80!\x9El?\xECC.(,t\xF2\xF5\xF1
+\xBA\xA6\xBC@9\xCF\x97\xDE\xF5\xA7!UUX\xCA\xD9~\xE5o\x9F`
+ \xC0M~J~\xF4dX0&gt;\xC6n?\xECC~۬\xB0\x93\xD2ynUAJ(]: f\xB6=\xCA;#\x8B!\xE2K7\x95^\xBA\xBE\xB0\x93lV\xD8I\xE9&lt;\xB7\xAA \xFC\xCD\xF6\xF4\xF6        .\xB7YaǦ3\xD0\xEA\xC2\xE4\xFF\x85\xC1&amp;\xC0ߌ\x9D\xCC\xC0\xB5y{\x8F\x97\xEFCv-lL^\xE2KQH\xC5\xD2\xC5,\x9B\xB4\xE9\xC7ة\xB6\xB3s\xE9YhRq\xE9\xFA\xDANS\xD8\xF8چ\xE5\xD5*\xB8\xFC\xCD&gt;\xF1\xED\n˪\xCEKꡅ5JH\xFE \x83\x9FM\x80\xBF\x997/\x98\x80\xC5l?^\xB8ٸ\xB0\xC1\xA9\xDDY\x84rj\x95.f\xC1d\xAE@\x80\xFD\xCA\x99Q\x93\x98\xF4\xA1C\xB9\xA5\xF3\x9D\xCD\\x81\x82\xAB\\xD8\xF8\xECn\x8A,?zÇ\xFE\x86\xD7ڸ\xAA1\xA9uXR
+\xA0\x8A̿0L\xFD\xCDdmj\xC0s1#\x83\xD9\xF8\xBC\xF7x\xCF&amp;d\xFB®J\xF0\xA3\xB0
+\x94S\xABtK\xA5D\xA6ڲ\xB6\xF1I\xDD\x90;t\xA8\xB5t\xBE\xAA\xF9\x8B0ê†\xD5va\x82\xD7b\xD2\xE7o\xB6\xFF\xE8\xB7O0\x83\xBD \x9C\xDD}\xC1u
+\xC9\xFC ü_K\x92$&lt;&lt;2\xE0\xE5\x96\xEC=ްY]W/\xEC\xF0\x83B\xA5 X'UJ1\xC9\xC6\xE5]\x9Bڅ\xA9YC\xB7BK7\xE0{Z\xA5c\xAD\xAE\xAB]+k\xAC\xFE\xF0\xA7\xFA\xAB\xF3\xFB\xD7\xEC\x97۾\xAAK\xBC#\xB2@-ia\x98\xF7SI\x9E\x80nKF\x83\xBC\xD6½\xC7\xD1\xEA2\x8C\xB7\xBA\xA2\xBF\xBC!\xC7MM\xBC\xB4\xA5 X!7\xAD\xAE\xC4D\xABK\xFB\xAF\x8DS\xFB\x9BI)\xC3CU\x96n\xC0\x97\xF4\x8E\xD5elu9\xFF\xEF%i\xFEij\xE2\xFC\xCD\xEA\x8F\xFD\xFF\xE4X\xDA\xF6U]\x98\xE0G1\xCAI\xFB äI\xB2\xA5        \xF4Y82\xE0\x85Vo=\xFEcu1FZ]\xCB\xFFxI\x9A'\xF3\xB2.\xADD\xE9f\xAF\x8DV\xAB\xEB1\xC5\xEA\xA2\xFE\xB2wv?\x9A\x942&lt;Qe\xE9\xCE\xFEz6Y]\x8CaV\xF2\xEC=\x99\xCD˚\xBFY\xFD\x99\x9Fɱ\xA8\xD5E}\xF5\xFF\xA3\xEBצ\x8B
+x(\xED/ 3~ə)\xD0a\xF5\xC4\xF0\xCB\xEA2AVo:~\xB0\xBA$c\xAC\xAE\xE2ޓ\xE9o\x93R\xAE.\xE9f/\x8C&gt;kk2\xDC\xEAr\xFE\xC7\xF6        \x9E\xCC\xC8*\xB1tg7;\xAC.\xC9\xABK\xF8\xB3W%\xFBmR\xCA\xFC\xCD\xEA\xFCgr,gu9yI\x9A?\x9A\x9D;PQ\xCE_f\xFC6\xD2!&amp;Y\xA0\xD5\xEAY\xE1?V\x98n\xF5v\xE3\xAFV\xE6\xA9\xD5\xF5\xFB\xABW%\xFBU!M\x92\xBFt\xB3F\xB7\xB5ehu!\xF0\x86\x9E,&lt;\x97\xE9\xCE\xFEbv[[\x96\xE7V\xD7\xEF\xAF^\x95\xECW\xFD\x85T\xCE\xEA\xFC\xAF\xB6O\xF0k\xA3վ\xBA\x90\xFF\xF1\x9ELO\xA6&amp;T\x94\xF3\x86Ὴ&lt;\x90/\xD0d\xD2\xDF\xE0\xFCh\xEA&amp;\xE1\xC9?^}\xF2\xB6\xC2&gt; i\xAA\xF9V\x97\xBFtS?\xF4\x87\xFF\xF8\xDAʌ\x92\xB6\xBCyҜml\xA6\xF0\\xFE\xA5;\xF5\xF7\xE4_[\x96\xE7\xA6\xE6\xFE\xF0\x9FQ\xDB\xE7!\xCD3&lt;Y.L\xFD\xB0\x92,\x86\xED\nRr\xF6IT\xB3\xCD\xCB\xA8(\xE7/ \x93~\xFD\x98\xF4\xCF\xC1v\xF5\xA6ව\xBDǓ\xD5݇\xBC\xB0\xB0ݑ\x9Elu\xF9K\xF9A\xF7\xDDkaqF        H9Ca\xFBb\x8816Sx(\xFF\xD2
+\xFB\xA2\xF5\xDDhae\x8AL6Im\xBB\xC306S.D~@\xAB\xD6C\xD8MW%\xB8\@֩\xAAڗo\x8CyY\xE5\xE4\xFC\x85! \xA4l)M\xC2\xF6\xF3\xE0\x9F[\x82\xD6;݇\xBC\xAD\xB0w\x8F40\xD3=$/ݒ\x8Fx\xC9M\x8ALvam;niT\x9A0D\xFE\xA5\xFFk\xBD\xE3\xC2\xE2t[\x92\xE3\xDA\xC2v\xDC=\xD2\xC0L\xB9\xB0\xE4\xA3        \xBEi|\x8E\xF1w\.,\xDF \x85m\x8D!،\x94\x80\xA2r\xFE\xC2L\xAA\xAC\x80\x9B\xE2w\xF2x\xB3U;\x81\xA6\xFBV܄\xBC\xB0\xB0\xFB}\x88[\xB5H&amp;E\xBC\x923\xD4\xE7\xB9%i.)쮟  \xB7\xE4Z&quot;¦\xFB\xAE*\xCE \u\xEB\xFD&gt;D:\xBCa\xE5/I\xB05\xBB\x81\xB7\x8E\x9F\xE9\xDA\xC2n\xFCQ;i\xFD\xD1&amp;\xE6\xF7\x8D\xF8H\x92$ܴdoj\x80\xD7Z\xB8
+\xB8\xEB\x8A\xFB\x90v\xB3Opc\xABVȤ\xB7  \xC0\xAA\xE3k\xBB\xEB'c5}7W}q\x86W\xA2&gt;}\x96\xE7\xB5$\x80\x9D&gt;A\xFA\xBCa\xE5/̱\xE9\xD6\xC3\xEFiI\x8E \xBB\xF1G        l\xE3\xFE\x8F'\xC1\xBFo,\x89!C\xE2\xC0 w\xEFx\xA1\xFB\x80I{\x80\xE5L\xB2&lt;\xAF%\xEC\xF4        n\xACim\xAC\xFA\xE02Ė\xBCD\xADM-\xF8\xEE\xFB}|0\xDC\xFDo\xE5\xC2/\xCE\xF2\xF0\x960I\x86\xA4\xE2k\xBB\xD3'H\x9F7\xAC\xFC\xE59\xCENp\xB9\x85٭\xBA\xF5\x96\x9F#\xB0\x93\xFB?\x9B\xFF\xBE\xB10\x80\xE5\xB9\xAD[L
+\xFFc\xEF\x90$\xB7\x95 Q\xBE\xFB_Z\xDF\xD6\xF4M\xABUK3 \x99&quot;\xF7&quot;`\x8B\xE2\x98\xE0B        7{o\x81&amp;Ih\xB4~\xB0\xC7lߩ\x89\x8D\x97,'I\xB9\xED\xBDV8o\xFB\xA0\xD0\xE0Řp\xE1$d \xD1 9u'\xD9ޗ\xBDn8\xF9        \xC73,u\xB9\xBD\xEDv-}\xDE&gt;\x87y\xF4\xD0f\xD9\xF3\x8D\xBD\xF6vFl\xBFo\xDFX)\xE7\xAB?'I\x89\x9C:\x8B\x93l\xEF˿?!,*L\x95\x84F+{\xD2\xDEA\x95\xF1k0\xE4\xC2\xC9        \x96\x93\xA4DT\x9D\x95a\xFA\xB2\xD1
+'?\xA4`Ԩkm\xAF\xB6%\xC0y\xFB\x9Cd\xFC\x81\xC9\xE2\xE7{WO\xFCZ\xC2{B`\x8D\x9C\x869IJ\xE4\xD4Y\x9Cd{_\xFE2\xBE\xF5ˎGy\xF8\xA80\xEB\xA7\xF4EH\x9De\x83M(         /\xBAe\xD7\xE6\xA4\xF0\xF7$)\xD5e\xE5lC*\xB3\xCB
+'?\xA7cN\x92Z        \xBD\xD6g8o\x80c &gt;*\xD9\xF2|c\xE3\xD2Q\x80\xB5\xF7\xCB\xD3S3kD}\xEF\x87\xDC \x95\x88*\xB2l\xB09\x95/4\xBE\xCB\xEFv\xB9&lt;\xD29u\xD6$        ) \xEB
+^b\xAFe։
+\xB3~JO\xB6X)\xAD5\x8B\xDDp\xF2\xA3:\x86Y&lt;\xF3\x8FBJ-ΰ\xBD/\xC0/\xFC\xF6\xA9\xC5\xE2g)\x83\xC1\x96=ZI\xC8\xFC\xAB\x9C\xDB\xF5\x9C$\xC0TQ_\xFA\x83aZ܄DY6ؐ\xBE\xF7\xDF\xD9\xEF{FZ\x9C굨&quot; \x9BS\xBC\xA6JdV\x8B
+\xB3~JO\xB6X3ۨʬw\xC3ɏ\xEAX\xDE.AN\xA3\x95I\xFA\xFC\xAB\x91+\xA4&lt;ʶ\xEC\xD1JN\xE0/\x837\xEA~5U\xA2n?\xF3\xBC\x96VdY\x9E\x90\xBE\xF7\xDF\xD9\xEF\xD2z\xAD\xCC3\x9EjK\xB0\xA7Ҋ,ȓS\xBC\xA6Jd\xF6\xBA3\xCFk\x99\xCC6\xB05+\xDDp\xF2\xD3:ֶ\xDBn\xB0ΚF+\x93$\xF4\xF8i\xF0\xA9\xC5\xCA)\xE3\xD9V&gt;Z\xC9I\xFC%\xEAF=\xEA' 0I\xE0\xD7}`\xA4[\xAC\x89U\xF9\x83\xDBZ&quot;\xADԲ&lt;\xF9\xC1\x9EJk\xB1`\xB0Q}a\xB6\xC1k\xAAD`\xAF\xCB#=[aA\xB0\xC0\xD6,s\xC9\xC9O\xEB;\xF6w\xA2\xEA \x86)\xC9R\xE0\xEF\xC6Y,{\x8A\xF2(\xDE\xCA\xE7*\x83a\x96\xE5\xFE\xFB\xD5\x98(\xF8u\xE9\x85\xC0k&quot;EU\xBE\xC1ඖH+\xB5,\xCF\xD3`[\xB2=\x98\xF6T+\xC3&lt;#T\x95\xC0^\x97Gz*\xB6\xC2`\xB0/\xD9[\xB3\xCC%'?\xADc\xEC\xD8\xDFI\xAB\xB3,ONe\x80\xBF\x8C?\xB2X\xF6\xE5Q\xBC\xC5\xCFU\xD2\xF2\xC0\xE5o\xD1\xFDj
+~\xDDFz!\xB0ŚHQ\x95o0\xB8\xAD%\xA2J- \xF3&quot;\xDB\xC6x#2\xF3\xCFNX\xE6\xB9\xA0\xAA\xF6\xBA&lt;\xD2S\xC9\xF9g\x8F7\xB68 \xDCp\xF2\xAB&gt;\xA7P`\xA4\xD7\xBB\xAC\xAC\xB3,ONe\x80?=z^\xB1\xEC)\xCA\xD3W&gt;WI\xCB\x97 \xBCE\x8C\xD4
+\xFC\xBA\x8C\xF4B`\x8B\x91\xD2*\xDF`p[KD\x95Z\xE6E\xB6\x8D\xF1Ft\xCF\xFF…\x95\xB9\xDC\xE0_\xAA\x81\xBD.\x8F\xF4Tr\xFE\xA9\xE3M.\xCE\xC9\xA0\xEA\xE4W}N\xA1\xC0H\xAFvY)\xAD5\xC0Ӈk\x9E\xA2\xEC]\xB1c$\xB8Y\xE6-zf*\xA0J\xE0w}`\xA4[,\x88\xD5\xF7\x83\xDBZ&quot;\xAAԲ0/\xB2m\x8C7\xA2u\xF8w.\xAC\xCC\xE5\xFFR\x95\xECuy\xA4\xA7\x92\xF3Oolkָ\xE1\xE4v\xAC\xAA\x96 \xB3˂Ti\x95\x80˽xX\xB1\xE0\xCA\xF6\xFB\xA6\x80;eޟg\xA6\xAA~\xD7Fz!\xB0łHQ}/1\xB8\xAD%\xA2J- \xF3&quot;\xDB\xC6x\xBF\xD5:\xFCkV\xE6r\x83\xA9J\xF6\xBA&lt;\xD2S\xC9\xF9\xA7\x8E7\xB65k\xDCp\xF2;VUK\x90\xD9eA\xAA\xB4\xCA\xC0\xE5^&lt;\xACX\xF0e\xFB\x8A}S\xC0\x85bo\xCEc\x83%\xBF\xEB#\xBD\xD8bA\xA4\xA8\xBE\x97\xDC\xD6Q\x8Dքi\xEF\xB7\xFA&amp;\xFF\xE2\xCE\xD6\xDCl\xF0/U\x89\xC0^\x97Gz$&lt;\xFF\xD4x\xB1\xADY\xE0\x92\x93\xD81|\xF2\xE3b\x8B,\xD8\xB8ֻ' \xA1l\\xEE\x80`p\x9B؛\xF3\xD8`@\x89\xB4\xEF\xFA\xC1&lt;\xF9\xB7i-\xD6 6\xA7\xEF=\xC6w\xF6\xBB\x9CFk\x92\xBC\x8E\xB77\xE1\xAF\xF5M\xFEŝ\xAD\xB9\xD9\xE0_\xAA\x81\xBD\xD2\xF2,\x9E\xD2#\xE1᧎7\xB98\xB3]r\xF2kVU\xDB.\xB6Ȃ`\x81\xAD\x80;\xBD~L\xB1\xE0\xCA\xC6\xE5\xB7\x89\xBD9 \xE6\x874\x95\xF6]\xE6\x8B;R\x96\xA7ڝ\xD55I^\xC7K&gt;\xEA}\x93qgk\xF8(\xF0\xCF\xDD`\xA4e\xA9\xA2¼\x9Eꄓ\x8B3\xDB%'?\xADfU\xAF\xB1]\x83}\xC9\xD8\xB8Зg\xB3\x9F\x9F\xEC]\xAE&lt;ؖlp\x95\xE4;\xF3\xE4l\xC0wQ\xDF\xF5Qa&gt;\x8A\xEA\xB2&amp;LHY\x9EjwV\xD7$y/\xF6\xA8\xF7M\xFEѝ\xAD\xE1\xA3\xCC?wQ\xA9\xA2¼\x9Eꄓ\x8B3\xDB\xCD'\xA3\x93z%w\x99\x9D-\xB35p\x9B/\xCF(f??ٻ\xDC1\xD9\xE0ɷ\xE5~5\xC0\xD9\xBF\xEB|\xDD\xE7$)\x91SgM\x92\x84\xA6\xBCrP\xC7ìI\xF2:^\xECQo\xFB\xA3\xBE\xFB{e\xFE\xB9L\xB5 XN\x92/\xC2\xF3ϛpxqf ?\xF3N\xFE^'\xF5J.2u\xCE\xC9\xC5\x80{||@1\xF5\xF9ɻ\xE5\xAA֚\x91mc&lt;\xB8A\xF8myx&lt;\xE0\xA3\xC1\xEF\xFA_\xF79IJ\xE4\xD4Y\x93d{M^ 9\xA8\xE3a\xD6$y/\xF6\xB47\x8D\xFDѝ\xAD\xE1\xBB\xCC?w\x83\xA9\xCBI\xF2Ex\xFEyNn\xCDמ\xFC\x8DK\xB5\xE8^dj\xBC\xD8\xD6\xC0=\xBE?\xA0\x98\xFA\xFCd\xE3Z\xE7\xC5\x80\x84ߖ\x87\xC7&gt;\xFC\xAE\x9F\xFD\x8D\x9F\x90\xA1\xD6m\x83-\xF9\xFC\xED\xE3\xBAS\xD4\xD8s\x92\xBC˖|D\x9B\xC6\xFE\xA8\xA4u\xEB}\x87w2\x8F\xFD`\xAA\xD9\xD92\x94H\xAE0u\xC8%\x9F9/\xB3%o\xDC\xE0\xB9\xEAu\xB4+\xDEej\xBC\x92\x8F
+ \xEE\xFBS\x85\x95O'Ÿ\x84\x84\xC7\x80\x84ߖ\x87\xC7\xBE\xFC\xBA\x9F\xF7\xA5\xBF=\xC0$\xDB{\xAD \xF0\xFA\xF3\x85,\x8F\xCDn\xF8\x87uԌ\xE4\xF9yo\xA4Zlk\xF8.\xF6\xA8o\xBF\xB7\xB8\xC4\xD4        \xBF\xFE\xD8G\xBB_\x95\x96\xABy\x96\xBBF»L\x8D\xF7\xFAcSզ\xCES\xF2a\xE5\x89\xF0\xA7\xE1\xF1\xE0\xE1\xB7\xE5\xE1\xF1\x80\xEF\xBF\xEE'}\xEFo\z\xB6\xAB\xFBt\x89\xA7\xC3YP\xE1Z&amp;&lt;\xA8\xF5\xA0
+\x93\xCE!d&gt;O\xF3|l\xB7\xBD/T\x89=\xE1{\xAFA\x97\xFF2S\x87\xFC\xF4c\xED\xFB\xBC\xD8\xDC\xE0\xBC#t\xDEu^gj\xBC\xA7;f\xDC\xE7\xF1\x8DU=:X\xF9 &quot;\xFC\xA1Gx&lt;\xB8A\xF8myx&lt;\xA0\xC4\xE07~\xF9W\xFF\xAEu\x97\xB9g\xB0\xE3K&lt;Ͷ\xB8ȅ\xCCvD\xF7C\xF8=\xF6\xF8\xA2\xA64\x9E\xA4\xB6ாP%\xF9l\xEF\xBAw\xAD{\xA1\xD9C\xFFا\x9B\xFEHѴ8\xC7a\x87\xE7\xD4+&quot;\xBC\xCE\xD4x\xE3;㝢Q\x9D&gt;1X\xF9&quot;\xFCqGx&lt;\xB8A\xFEmy~B\xE0\xBB\xC1o\xFC\xAAo\xFF\xC5\xCBmt\xC3`\xC7Wy\xEF\x85b\xAA#\xBA\xBF/\xB1ǻ\xBF\xB0\xB7\xF5\xFF\xFCi\x82\xFF~\xAA_\x80\x8B\x97c\xEA\x9C\xC7?\xF6ž\xBFP:9z;\xE9\xD8|!\xE47\x9A\x94p\xFC3|T=6 Z᳂\x95\xF2t\xE4'\x80\xB3\xE5ߓ\xE7'\xBE\xFC\xC6\xFF~\xB0f\x957 vd\x95w\xF1^+\xE9u        #\xFD\xAD޻\xE4\xE3\xC5?\xDA\xD8zA\xBB\xAC-\x84\xE9e\xD7\xE0\x9AU\xF8\xBB\xD9s\xF9\xD8w\xFB\xFEZ\xE9\xFC\xE8\xEA\x98s\xFC%\x90_jR‘\\xBAʄ\xE1\x89j\x9F\xAC|\xF2\x90\xFF\x94#?!\xAC\xC5
+y\x8B\x90\xC0w\x83_\xFA\xEFn\xE6}r\xBE\xE3\xFB\xB1\xE0&lt;U\xCFf\x98\xBFvƑ{\x91\xFCQ\xF1ﶴ\xDEeFY\xA8\x95\x98\xA7^\x86\xF3&gt;\x99_[0\xEA/\x9B;U\xED$\xE9\xA5\xFBQ\xB9\xE7\xE4\xB7(5)\xE4\xDB\x9En\xC6 \x80\xE5\x96=sh\xF1p\xA3EH8U\x8B\xF2!\x80\x83\xDF\xFB+\xEDI\x8D\xDDS\xFCg\xB7\xFBKa\xCDS\x99\xE4/sޞ&amp;Z\xBC\xCA\xE2\xD6\xD56\x85r-N\xF2ԋ\xF4\x9D\xBD\xE9nʹg\xEC{\x95\xDAy\xD2E\xF89\x99q\xD4wu\xF9\xAEE\xAFI!\xDFn\xF2
+3\xC6$\x98\xF1X`\xD9\x87O6Z\x84\x80S\xB5\xB8!o(4\xF8\xED\xBF\xC0\xEEI\xDB=\xCE\xFF\xEB\xD4^\xFF\xAA\xB6\xECy\x8C\xF1\x8E9i\xE3\xE1U\x9Eae\xEB\xBD
+\x9BB\xB9F\xC7x\xEAu\xFA\xC8\xEEI\xB4\xB7fړv\xBFJ\xE1&lt;\xE9&quot;\xFC\x84L:\xEA[\xBA|עڤ\x90o\xF7y\x91\x93\xB6\x9B\xF1L`\xD9ӆ\x8F5Z\x84\x80S\xB5\xB8!o\xA85x0\xD5\xEEL\xB1{\xA8\xFFǑ\xA5~\xAD\xBC\xF2I\xCC\xF0\xBF\x9Ct\xCC\xC3?\xAD&lt;ɲ\xD6\xDBU5\x85r\xBD\xCE\xF0\xD4\xEBt\xD0\xEE\xB4\xB7l\xE03v\xBFV\xE1Tɗ&lt;\xF2\xBFkQpRȷ\xBB\xBDΌaMz\xB0\xECQC\x8Bg-B\xC0\xA9Zܐ\xB7        \xCC0xPnw\xEF\xE9N\xEC\xAE.O\xCD\xE8~\xFC\xE9\xB06\x98\xFFE\xEByִN\xF0\xBD)\xCC\xD0\xF1O\xBDT\xBB \xA1\xA3\x953/\xDF\xFDI
+\xC7K\xAC.\xC3\xD9\xFE\xBB5g\x84|\xBB\xE1\xABM)\xB0޼\xE7˞3\xB4x\xA0\xD1&quot;$\x9C\xAA\xC5
+y\x8B\x90\xC0&lt;\x837Uv\xD7]\xE7\x8C\xC1\xAE\x89\xB7`\x89k\x99\xDE?\x9Cw\xB4+\xBC(&gt;Ղ\xD6\xDFc,X\xB6\xE8{zK\xAE\xCAq\xBB붷x\xE6k\xF6}\xC1t\xD7\xE8H\x94\x9C\xE7\x84&quot;%Zt\x9C\xF2\xEDn?[t\xC1@\xF3\x9E,{\xC8\xD0\xE2iF\x8B\x90p\xAA7\xE4-B\x93 \xDE        \xD4\xDA]z\x85c\xBB&gt;R\xDA\xBA3\xBA\xBF;\xF2\\xBD+\xF5\xBD\xF5\x82%歾x\xC5/Ma\x86\xA6G\xF7\xCBe\xF8\xDA\xEEҍ\xAD\xF8\xFA\xBD^\xBC-\xF4:_\xCEp`\x9D\x8FZ\xB4\x9B\xF2\xED&gt;\xBF\xC8\xE2\xE5\x80(S\xFE/{\xC2\xD0\xE2QF\x8B\x90p\xAA7\xE4-B\xE5\xEF\xE6\xD9=\x80Yvϵx\xB0\xBB2\x84\xD4?\x80\xB9\xFD\xE5\xD4\xF5\xAEWa\xDF\xC5\xCB}Y\xF4\xF5r\xDF\xCB~_
+\xB5;\xB7\xAF/\xBD*\xBB\xD0ϖ9\xEF\xDA\xDCw\xEB\x96,M\x9Av'\xE1\xF5\xE9
+\xEF\xF5N\x8B^3B\xEE\xDA\xDFw\xEB\x96,
+\xEC2\xFB\x87ړ\x8D\xEF N\xD5↼EH\xA0\xD0\xE0\xB7\xFF\xBB'Ql\xF78\xFF\xAF\xBD\xA5\x8EY\xFD \xE6\xF6\xC7\xE9奄nW^v\xE5\xA2[
+\x86\xAC\xDF5:\xB7/.\xB7IvO\xA2\x8D\x8D޻\xAD{Wg\xBB \xE1\xBC\x8Eݥ\xE0#-\xCD\xB9w[\xF7\xAE\xAC\xB4\xE0W\xFF\xB2\xC7 -\x9Ec\xB4        \xA7jqC\xDE&quot;$Pe\xF0\xAB\xA5\xDD#\xA9\xB1{\x8A\xFFb}\xAF\x92\xBF\x98\xA3\xAFˇ\xF6\xE2\xFC\xB4\x9Bɗ\x8E\xE5M\x97\xAD\xBE\xAB\xE0\xBB\xF3b\xC0;]\xED\x8B m\xB6\xDD#\x89\xB6}\xB0۷rWq\xF6z\xB1\xEF9\xE0K\xF8F5\xB5\xA83#\xE4\xF6\xDD|`^ `\xB6?\xF9\x97=[h\xF1\xA3EH8U\x8B\xF2!\x80\x83\xDF\xFB\xEB\xED\xCCW\xBB\xE7\xF7\x9FVV\xFB\xBE\xD6\xF7 \xB3\x93tt\xF3О\x9E\x9C\xA6I\xAB\xB9&amp;\xC6ގO3\xCCNO\xB58\xB4O/\xB1e\xF6\x8E%V\xC2H6qWwvy\xBA\xE3i\xBB\xFF%\xBB\xB2\xBFբˌ\x90        \xFB8\x9E!a\x80\xD6\xFC\xDE_\xF6l\xA1\xC5C\x8C!\xE0T-n\xC8[\x84\xBE\xFC\xD2\xDFe\xF7x\xDE\xDB=\xB9\xDFXS\xADj\x98ߓ\xAC\xC9\xD3ȝ{z`ZO#\xB0\xE6\xEC$        \x9F&amp;Y\x93\xE5\x9Fا\xD7b'(d\x989۷k,\xF6t\xA33\xF7\xFDc\x8B\x8E\x95\xA1E\x91\xF2\x909;8\x9E$a#\x80G\x96\xFD\xD2_\xF6`\xA1\xC5\x8C!\xE0T-n\xC8[\x84&gt;\xFC\xC6}'\xF0\xF1\xF3\xFB\xDEo\x9C=\xD8ٟ?#\xCC\xCAH-\xDC6\xB1G\xE7\xE4\x8CQd֜&amp;\xA4\xE3\xA30+#\xC1o\x85\x9F\xD8G\x97Ջ\xD8?\xEFp\xA2D\x8D1j\xE3v
+\x815\x9E\x9F\xF4ޛ\xFE\xBDo\x97\xE2-Z\x94\x87\x8Cj=&amp;a#\x80q+\xE6/{\xB0\xD0\xE2        F\x8B\x90p\xAA7\xE4-B_ ~\xDDW\xDD\xBC^\xAE\xDD-\xC7\xF1\x83\x9D\xF7\xC9\xF3\xF2l        \x96\xEC\xAAq=:!\xC7\xCC!\xB6\xE6\xBCH9\xC7\xF3l        \xFF%\xF9\xB8&gt;\xBA\xA0\xBE\xA7}\xBDܮ\xF9\xE4\xF82\xBAL۲\x8D\xA3`\xAAW\x87\xFD\xA8\xED&gt;\xB8~\x8B
+\xE5!\xD3*L\xD8 `\xD0\xCA\xDF\xF8˞*\xB4x|\xD1&quot;$\x9C\xAA\xC5
+y\x8B\x90\xC0k\x83\xDF\xF5\xE5_\xFD\xEF\xD6mt\xD7a\xB0[\xDC\xD6\xF7\xBBK\xC6\xF5\xEA\x9A8d\xB153SMrOS\xCE{\\xFD\xDD(\xCC\xF9n\xDD-#J\xF0z\\xB7\x8D\xCE4\xE3\xE4\xFF\xC3yhQ\xA1Eȏ\xCE8N\xC0\x9F\xFF\xC0_\xF6T\xA1\xC5\xE3\x8B!\xE0T-n\xC8[\x84\xDE\xFC\xA2\x9F\xF7\xA5\xBF=\xC0$\xDB{m\xB0˅\x95?:~V\xCF/\x85\xA3\xEA\xFF\xFCo        \x9Ff[\xAC\xDC=M9C\xE6Y}t\xCDH\xB8=@\xBE#\xBAyh\xC6r '\xFFNE\x8B\xFC-B~t\xC6q\xFEX\xFE        GV\xACZ\xB7ų\x8B!\xE0T-n\xC8[\x84\xDE\xFC\xA2\x9F\xFAu\xFF(C\x97\x8F\x84:Gv\xC4m}?:xV/.\x81c\xBA\xFF]r\xD9\xE4l\xE5\xEEi\xCA2\xCFj\xC2_\x8CG\xB6Li\x97\x93\xB9y\1\x99\xEE\x9C\xFC\xC7L\xA3E\xFE!\xBF;\xE08\xFC\xEE7\xFE\xFA \x97n\xF1\xEC\xA2EH8U\x8B\xF2!\x80\xBF\xE5\xD7|\xD7G\x85\xF9(\xAAKT\x985n\xEB\xFBѩ\xB3zt\xF2\x8Fi\xFD\xAF\xC2+'g\xABuOSxVǯ\xA0\xC1\xA2\xC2$x4\x90\x9B\xF5\x93\xF9\xB4\xE6\xE4\x8F;c,-·\xF9]\xF7\xB3\xFC\xB1\xE3J8\xB2h\xD5\xD2-\x9E]\xB4        \xA7jqC\xDE&quot;$\xF0\xC2\xE0\xB7\xFC\xB2/\xFA\xF1&lt;\xE1\xF7i-\x8E츫\xCA~tެ\xF8\xFA\xFEVx\xEB\xF0x\xB5\xEEiJw\x81g5\xEDo\xC5x\x9E\xB3/\xEAGs\xB8p&gt;#L\xA9#'\xFF\x85\x86\xD3&quot;|\x8B\x90%\xEEi
+G\xDA\xF5\xA3~\xD9#\x85\xCF.Z\x84\x80S\xB5\xB8!\xCFO\xBC0x\xB2\xF2\xBB&gt;0\xD2 \x81-#\xCDv[\xDF/Nԣ\xA3޽\xEC\xB8\xFC\xE2\xE1\xF1
+\xE5\xEF\xFC)\x{D80E}_;\xCBRFZ\xEC\xD1n\xCE#fՋ\x93\xFFE\xF7\xB5H\x9E\x9F\xB0J\xEB\xB3\x97\xDB\xF8s~\xD9\xF3\x84.\xF2\xC0\xC1\xFCjv\xBCY\xFCE?\x9E*\xF6$3\xFF\x83}䪲3\xA8G\x87\xBCo\xCD\xF2\xEB\xE7'\xACrOS\xBAK;\xA8\x99\xD7\xCEx\xAA\xF3.\xEAG\xDD/\x99\xC9k&amp;ֈ\x93\xFF]\xEBA\xB5H\x9E\x9F\xB0J\xEB\xB3\x97\xDB\xF8s~\xD9\xF3\x84.\xF2\xC0\xD9\xF2\xEF\xC9\xF3O\x8D|\xBF\xEF\xFA\x96O\xCE\xF6[\xC9ᓳ\x95\xBB\xAA\xECG j|\xBB\x9B\xFC(\xF9        \xAB\xDCӔ\xEE\xA2j򅓜m\x92\xF1\xCA7L\xA3\x84\xB9\xB5\xE0\xE4W\xE9&gt;\xAE\xFC\xE4\xF9        \xABt?Kp\xAD\xBD\xBF\xE5W&gt;O\xC8p\x91\x9Fζ\xF2\xCAy\xF1\x80w\xBF\xE2\xB7|\xCB'g\xFB\xAD\xE4\xF0\xC9\xD9f\xB8\xAA\xEC\xAD5~\xAA\xDBU+\x94?\x87\xAB6랦\xB4uP\x93\xFFD$g+7^\xF6\xEC9\xCC`zɜ\xFCr\xAD\x87&gt;&lt;^\xB9\xDB\xFA\xC0\xB6\xFF\x90_\xF9&lt;!\xFC\xD9Ex&lt;\xB8A\xF8myx&lt;\xE0\x9D\xF0\xAF\xF8\xF0x\xBF\x9E&lt;&lt;^\xAD\xAB\xCA~\xD1wP\x83\xC9\xDB\xF5*\xD7b-B\x96\xB8\xA7)\xADEԨ0\xED\xE2U\xACy\xF6\xE61\xC0XN\xFE \xADG\x9E&lt;&lt;^\xB9\xDB\xFA\xC0\xB6\xFF\x8A_\xF9&lt;!\xFC\xD9Ex&lt;\xB8A\xF8myx&lt;\xE0\x9D\xF0\xAF\xF8\xC1x\x817!\xE1\xB1\xFB\xF6\x85{\x9A~\xD4tPㇹK\xA3yZ \xA4E\xC8\xF74\xA5\xB5\xA8\x83\xE6u\xBC\xD6\xD7\xF5x\xC7\xF3\xBA\xAFa\x8C\x99\x9C\xFCIZ0&lt;yx\xBCr\xB7\xF5\x80 \xFE\x9Co\xE4{\xD9e\xC3\xEFn~[xa\xF0\xFB=\xFF$\xED&amp;$?v~\xC2B\xF74\xFD\xA8ݠƏq~\x97e\xF2\xC7r\xCF\xDE\xDDӔ\xD6r\xEA`\x92\x8DWM~\xC2/\xC6۝\xD4z=\xC3L\xE3\xE4\xCF\xD6w\x8C\xE1\xC9\xC3㕻\xAD/`\xF0\xE7|#\xDF\xCB.~\xAFxp\x83\xF0\xDB\xF2\xF0x\xC0 -\xBE\xDF[\x84\xFC\x87\x99[\x84,qOӏz
+j0mx\x8B\xF5\xF2\x87s\xCF\xDEӔ\xD6rjN\x92\xEE!_\xECuLߍ\x8C4\x8A\x93\xBF@\xDFa\x86'\x8FWp\x80\xC1\x9F\xF3\x8D|/\xBBl\xF8\xBD\xE2\xC0
+\xC2o˓\xB3\xEF\x84\xDF~4
+\xF9-2\xB7Y➦5\xD4`\xD4\xD8\xFC\xE5\x8F\xE8\x9E}\xBC\xA7)\xAD\xE5Ԝ$\xDDC&gt;5Xꀦ         6\x87\x93\xBFFߑ\x86'O\xCE6C\xF8v?
+\xFE\x9Co\xE4{\xD9e\xC3oW6\xB8\x84_
+\xC0b\xE1\xB7\x8DB\xFEC\x8B\xCC-B\x96\xB8\xA7\xE9G]5\x9830y\x82\xFCAݳ\x9B\xF74\xA5\xB5\x9C\x83\x9A\x93\xA4{\xC8G\xB5\xEE\xC5xC\x9Cq\xF2[\xEE8\xD8?\x85'O\xCE6C\xF8v?
+\xFE\x9Co\xE4{\xD9e\xC3oW6\xB8G\xEC\x87\xD8`\xC0-\xBE\xE2[\x84\xFC\x87\x99[\x84,qOӏZ j0dZ\xEC\xF9\xB3\xBAgC\xEFiJk95'I\xF7\x90\xE3\xEB\xF4-Ȅs\xF2[dn:\xDB?ņ\x8F
+6υ\x95\xA0\xBB\xC1\x9F\xF3\x8D\x94\xF4]3\xFC\xC1\xE06\xB17\xE7\xB1\xC1\x80/Z|ŷ\xF9-2\xB7Y➦\xE5j0aN\xE0@\xF9\xBBg[\xEFiJk95'I\xF7\x90\x83\xBBt\xAC\x96̜\xB7;\xE9\xE4\xB7H~\xFC\x84\xB7\x84\x8F
+6υ\x95\xA0\xBB\xC1\x9F\xF3\x8D\x94\xF4]3\xFC\xC1\xE06\xB17\xE7\xB1\xC1\x80/Z|ŷ\xF9-2\xB7Y➦\x85j0^H\xDAX\xF9C\xBBgg\xEFiJk95'I\xF7\x90#\x8B\xB4\xEB\x95Ϩ\xF7:\xEC\xE4\xB7\xDFzȱ\xE1c\x83\xCDsae\xE8n\xF0\xE7|#%}\xD7 \xBFE0\xB8M\xEC\xCDyf*\xE0\xA3\xD8{\x8Fv!\xFF\xA1E\xE6!\xBF\xBB\xA4f\x89\xF0Y
+\xC6۞3_\xF8\xE8.\xD9\xDFKjr\x80\x9C\xB3\x9A\x93\xA4{\xC8\x83E5j\xC1\xB4\xB7;\xEC\xE4\xB7h\xD1&quot;\xE4\x89
+\x9F\x99j\x9E؍~a\xF0}#%}\xD7 \xFFi\xB0\xF5\xA9\xE0N\x99?#\xDFe\xDExt \xF9-2\xB7\xF9\xDD%5K$\xCFj0\x9B
+\x91&lt;\xC0{\xF6\xF7\x9E\xA6t\x97sVs\x92t\xF9[\x83-\xBA\xD4i\xC4\xC0\xF7:\xEF\xE4\xB7(\xD2&quot;\xE4/d\xE6\x8C4U\xE6.\xBF6\x{2FE46A}\xCA \x86\xFF4\xD5\xE2Hp\xAD\xC0_
+\x81\x91\x80-\xBE\xE5[\x84\xFC\x87\x99[\x84\xFC%bg5\xCCnJ\x9E\xE1=[|OS\xBA\xCB9\xAB9I\xBA\x87\xFC\xB5\xC1
+-\xBA\xB4c\xE6y\xF2[ti\xF2\xF3F\x9A\xED\xC2\xCAp\x80\xC1_\xF4\x8DTU^0\xFC\xE4Hp\xB3\xC0[\xF4\xB4&lt;@\x95\xC0\x8F\xA6!\xFF\xA1E撐\xF9M\xF3戝\xD5`0[9(y\x8CU\xBB\x9CZ\xF2Ÿr\xCEjN\x92\xEE!m\xB0B~\x91\x9F\xF2K\xE5'&lt;ة'?\xBC\xCE\xACP\x9E'\xB0c\xBB\x84@\xA0\xF5\x8Fb\xA4\xE5\x80\xCB
+\xFEjXy\xA3(x\xE3\xF1.\xE1\xAEx\xFF\xE5\x9E\xC1^R\xF3\x99\xE3Le+\x89f\xD5F\x87\x98\xF0x\xF0w9\xC7u0\x89K\xFB\x8B\xF1!\x87\xF9W\xE1\xBD\xC2\xE3\x9D\xED\xE0\x93\xDE耙\x9E\x9C\xF20i{\xC5b\xAD\xAA0\xB8\xE2\xCAGQa\x80?\xC2\xFEhT\xA0\\xF8w}x\xBC_O^\x97\xC8\xD7`*\xFB\xF8H\xE6&lt; 7:\xFC̄ǃ\xBF\x8B:\xAEQa\xDA\xC51X!\xBC\xC5        \xAF\xEFl\x9F\xFC\xF0^\xE1\xF1E\xB5\x98&amp;\xAA`\xBBx@\xAC-O\xA2eD\x85\xFEu\xA3\x9E\x93\x98!\xEAƣ]\xBC_O^o\xF0s\xB64MΖ)p\6q\x92̑\xEEu\xF2\xC9I\xCE?Eר0\xED\xE2\xFD\xD6`\xFE\xE4
+\xBF\x96\09\xDB\xF1\xCE~x\xB5\xF0x\x83\xA2Z\xCCH2Xp\xCBN%g\xC2my\xAA\xF5(#'        \xF0\x97\xC1_
+ n\xD7Cb\xF3\xE4\xDCx|\x89\xB7%ۯ\xDD3\xD8ؚ\xB1\xC1bN,0\xD21\xD2;\xB8\xD7\xE3\xA9bOl0\xF8WQ'v0̮+(9ۈ\xEE\xF9G\xC4v\x8C
+v\x83\xE3\x87\xDB\xEE\x98\xC9Y\xD0e^\x8C\x90\x82\x8D\x82\xF9\xB6&lt;X\t\xC1\x8D\x90\xC0O!\xB7\xEB!1\x80y\xBF\xEE\xB7|\xE3\xC7q\xCF`3\x9Bf\xA6
+8\xB1\xB4&lt;'I\x9Bm\xF9\xF1\xFC\xC0̚\x8BS\xC1/D\x9D\xD8\xE4+(6ظ\xEE\xF9Gd\xA1\xCCT\xF78~\xF2\x99\xA7\xEB\xB0c\xD2e^\x8C\xCC\xFD\xCALt\xB1\xEB\xC1B\xC8\x8D\x90\xC0O\x83\xB7\xEBS\xEFط\xD6H\xB8\xF1\xF8lq\xAAq\x97 6\xB3ff\xAApiK\xCBs\x98\xA8\xF1\x86y\x94g\xC6g~\x97\x99
+~!\xED\xC4\xC6^D\x99\xA9\xC6u\xCF?(\xF3\xFCd\xA6\xBA\xC4
+\x93\xCF\xECxرO\xA835@B\xC1.\xA9\x80.v=XHx\xA6\xB1=\xF0k{8$\xFCl\xD6\xFF\xDE_\xF9\xD5\xE9\xA9KX3-OiC\x8B
+s\xA4\x90\x8C\xF14\xC9\xF8\xC7.;Hiy`Dڡ
+\xBC\xB4\xA5Z\xE9\xA9\xD6\xE1\xC7\x9E\x9F\xB4&lt;\xB7\xB9d\xF2ig\xEC\xC8c\xBF\xB7\xD4\xEC\xD5\xC7?ٮ\xA5\xE5\xDA\xD9\xF8la\xEF\x93
+\xCFU _\x8B_
+3\x96\xBF\xEBXv\xE6\xB5{U3*L/iC\x8B
+s\xA4\x90+e^\x8C\xF1O^p\x96\xA2\xC2\xC0\xB8\xB4C\xFB\xE8RZ,*\xCCk\xDD\xF3\x8F\x8B:?Qa\xEEt\xC9䣎٩\xC7~o\xA9KGm\T\xA0\xA9\x8D\xCF\xF6&gt;\xD9\xF0PZ\xD8\xF5\xC3a\xEF`\xBD\xF1o\xFF7Qa&gt;\x8A\xEA2/LN͜$E\xCD-'\xC9ٶ_/S\x8C\xF8\xEC㔓\x9E
+&lt;\xB7QTT\x98\xD7Z\x87*g\xCBr\x92\\xEB\x9E\xC9眴\xB3\x8F\xFD\xAEjk\xD6\xCDٻ\x9C$@k{/\xECz\xBE\xE1\xB9
+t1~\xF7^x\xEF'\\xE8\xD1]\xC7\xD4ۀ\x90U\xEElBӄ \xADE\xCD-'\xC9\xD9\xF6^2 V\xB4Č\x8E!\xE0\xB5\xC0s\x9BsM\x85\xC4\xF8\xAE{\xFE\xA7\x8EPB\xAE\x9A|\xC2a;\xFE\xD8oi\xB7rŇ\xE8\x8F'm\xEF\xE3\x85-\x8F8&lt;T\x80^V\xFEpx\xB4\x96_
+p\x98\xA7w3n\xAF\xBEf\xA1\xE7sm9\xD8\xED5\xF7\xAE~\x86\xA8х\xC4\xD8b\xF1F .W&gt;\xF65\xEB&gt;Z\xA5\xBC\xE3\x8B\xB5\xAB\xC3w\x99G\xF7\xE9\x955#\xE1\xE2է.\xB4~z{=ڻػ:\xB9j\xF2\xDBOݮ\x99˕,\xBA~\xA4OW,Y\xF4K\x80\xDA\xD5\x80\xC3l°\xF2A\x87\xE7*\xD0\xD1\xD3;\xF9\xD77\xF3~2\xCBn&lt;B\x96N[\xA8v\xD1\xF5K\xBFX\xAB\xA4\xE9\x96E\x8F5\xBD\x90[\xAC߈\xC1\xAB\x96~\xBA\xDC\xC7_,\xF7\xBD\xE3\xFA\x9A0I\xEC\xE9\xDDx\x89mYz\xEAB\xCBF\x97\xE3\xC5&amp;\xAE\xDCdz\x87\x9F\xE3\xB6\xE1\xEF:{/\x8E\xFD\xFA\xD5/\xF7}\xE95\xAB\x94,Y}ˢ\xC0ٶ?dX\xF6\xC4c\xCD*\xC0 \xB38\xCC\xFE|\xA0\x8Bw\xDFo/\xF7b\xE9e ծ\xBEx\xB9-5/w\xBC\x9C\xE9\xBD\xDE\xD94S\xEBox\xF2B\xDF\xFD\xB2\xF4\xE2\xE5`\xAA\xD8\xD3\xFB\xFAB\xFB\x92v\xF1r/\x96^V*в\xD6/\x86\xFCe\xC5w\xCB\xF1[_\xCE@\x94\xAD\xD7O\xF8݊_b\xAC_\xF1\xF5\xEA\xB3?\xBF|\xF5\x8F1/\xDC#\xE1!\xC3\xEC\x87\xB3?X\xE0ō\xFDoo\xEF_\xA6_
+p\xB0/w\xE3\xB7
+\xB3?\xBF\xB6\xECʵ&gt;&amp;\x99\xFD\xF9j\x9E-g\x80\xB78\xC7\xD4\xFA93\xDF\xFB\xE1\xB3ۭ\xA9Y\xD5\xCA%\xE0\x8F\xDD`\xF2ٟ_[v\xDE'\xE7\xDBR|\xF6*/6\x94A% \xC1\xCA\xD6k\xFBj?\xBF\xE6ٲ\xE8\xA3\xAF?3\xA7ݣH\xB3? \xE49Ì \xAF?sA_\xE0\x85/7\xF9\xB5vO\x98k\xF7\xBD\xC6\xEF-n\xBAx\xB9\x8Dn\xA8Y\xD2\xF1T93\x9CzV\x9AZ\xBFv\xE6\xE3\xEB\xAEtv\xBB\xBF+l
+\xB5\xC2\xCF\xF0\xD4 \xB3\xC4\xE2\xA6G\xCEp\xD0y\xDD_4b\xDC\xEE\xED-sX\xF1]\xBDk\xDDʫE\xB5\xFBW3*\xE7\xC9y\xD40\xF5Q\xC9# \xCA/\xEC\xFE\xAD\xF0\xFF\xDB=`\x85\xDDw\xBF\xB2\xBE\xE6\xFA\xB7\xB8\xA1fa\xC7#\xE5\x8Cq\xEA1Xij\xFDڙ?Zz\x8D\xB3\xDB\xFD]yS(\x94\x8C\xA7^\x9E\xAD\xAFy\xD8\x99:\xD8\xF5\xDE\xD5a\xDC\xEE.sR\xF7\xF2]/\xBBk\xDD\xD9\xCA{\xA5\xFCi^e\xE009O\xA6&gt;-\xB7\xA0)\xF0\xDA\xEE_ ~2\xC0Ev\xDFw\xFC\xBB-\xB7,\xBAXm\xC7̚\xE5ϓ3ɩ'a\xA5\xA9\xF5kg\xFEt\xF5\xD9\xCEn\xF7w\x93\x9AB\x95'y\xEAE\xFAږ\x8E\xC7L\xEF\x85ٳ]\xE9u\xC6\xED\xDE\xE42\xC7ԯ\xDDߧM7.=όRQ\x9A]8I\xD4\x87\xA9\xCFLrj_\xF8\xC9,\xB3\xF1\xC6\xE3_\xED*\xB8k\xDDe\xCA ֜\xD4\xF10!Üz\x9B:\x81ڱ\xBF0ϼj        \xED\xFEnjS(\xD1\xE50O\xBDT_\xD8U\xB0\xFBܾX0\xDE5\xBEa\xD0\xEEM\xAEt\xC6
+7\xF7]ͽ\xAB\xCF0\xA9QN\xC1\x9F\xD6T\x8E\x91\xF6\xCCaꓓ\x90\x8E\xC0w~2ˬ\xBF\xF1\xF8io\xB5\xBD\xABO5\xA9ZT\xC7\xFF\xB9\x952ϩ\x87a\xB1\xA9\xA8\xFB\xEB\xE5f\xF7\xDAX\xED4\x85\xEFz\x9D\xE7\xA9\xD7젽\xD5&amp;}l k&amp;&lt;\xDB\xC7 ڽϕ\x98Cն~阐\xA1\xD0\xD4:\xDB\xDB\xFD\xAB\x95\x95\x803d&gt;v\x98\xFA%\xA1 \xF0\x9D\x9F \xC02+o&lt;Vފt        0ɼ^95\x97u&lt;C\xC8T\xA7\x89ŦN\xA0v\xEC_\x92ZPjc\xBB-5\xE1\xA3v\xA7z\xEAŻq\x93L\x9D\xC6b+\xE7\x9B\x9FA7\xBA\\xEBQ\x94\xECfI\xC1\x90%fw\xD9^0\xA1/p\x80؇S\x9F\xA5lo\x94\xF0{Xi\xC1\xBD\xC7\xE2[\x91^1
+\xCDn\x94\xD0qK\xCD\xEEB;\xF5T,6u\xB5c\xFF\x9E\xE7\xA3eu\xD6WKh
+\xAF5=\xD8S\xAF\xE2-\x98c\xEAL[&lt;\xEA\xCC\xF0 ڲ˓\xF4HI\xF2\xAAj9I\xBEX\xD0bo\xC1\xB4\xCA@k\xC9\xCF\xA6&gt;Q\xD9\xD8 \xA8\xE5'\xB0Ҽ{\x8F\xF5\xB7&quot;9I\xC6\xC3|\xB7\xA6ε[ \xEFԳ\xB1\xD8\xD4        Ԏ\xBD$\xD2\xCA)ui\xD5^h}\xBC\xA7^ы\xEBOJ2u,\x8BmxZl-\xDB\xDF:\x8E\xA50sU\xA9\xB4&lt;\xE1S\xFD\x85y3\xFB}\xE5?\x85\xF0h\xE1\xC7\xB0X\xE1\xEDǮ[\x91\xC0H㩒\xFB[7t\xEC(dΓ\x8E\xC7S'P;\xF6\xDAl\xC9~\xA1\xB6]lMx\xE4\x8Cs~\xC0\xD5=)Ҥ\xC9l1c\xEC\xF3F4)-\x83&amp;m\xEB\x8D\x86S\xB5\xB0Nf\xAA\xC0\xE4\xE3
+;\xB6\xE8 \xB4\xD3\xE5q\x84G+\xC0 \xBF\x80\xC5&lt;\xB7\x9C\xE4\x86\xC1\xDE\xD0\xCEs\xFC5\xEBO\x9C\xCA\xD5\xCDk\xB7)9\xF3\x8E\xFD\xAF\xDD0X\xA7\xA0\x84\xA7+\xC08\xBF\x80\xC5&lt;\xAE\x9C\xE4\x86\xC1\xDE\xD0\xCEs\xFCe\xEBO\x9C\xCA\xD5\xCDkr\xECg\xBBa\xB6N@        X\xE06\xFF\xB6;)\xC0\xEF\x8D\xFFM\xF3\xC7
+\x80{\xF8\xB76\xC0I^\xFC[B\xE28ϻk\xD3\xEC\x9E\xE2\xAF_\xF0T%\xB7\xD7\xEE]-\xF8;\xE3\xAF\xDCOfS\xB9\xA6\xA0\xE4\xC5\xF54\xBB\x87\xFA\xFF8\xAF\xD1%J6.\xCD\xEE\xA1
+\xAC\xF9\x93\xE2o\xDAOfS\xB9\xA6\xA0\xE4\xC5\xF5d\xBB\xEC\x9FtU\xB2q\xC9v\xB5\xE6ψ\xBFc?\x99        \xCC\xE6\xB2\xE0r%/\xAE\xE7\xEB&gt;\xE1\x8D\xF9\xAFU\xB2q\xF9v\x8FȲ쯇\xBF`?\x99        \xCC\xE6\xCA\xE0r%/\xAE7\xD2t\xC2\xEBcS\xB2q]\xEC6a\xE5\xDF
+\xBB~2X\xC0\x95\xC0\xCDJ^\\xEF\xA5\xE3\x84g\xE6\x97p\x99\xC5.\xFC\xD5\xFA\xC9L`7+yq\xBD\xA3^^\x96\x96\xBF\x94l\;\xBB\xA7l\xB3\xF8o\x85?Y?\x99        \xAC\xE1\xFA\xE0Z%/\xAE7\xD5h\xC2\xE7\x89U2\xA8\xA6v\xCF\xFEv6\x91\xF5֟.\xE7\xFC'3\x81e\_ܩ\xE4\xC5\xF5\xD6ZL\xF8\xE0&lt;\xB1J\xD5\xD7\xEE\xF1_\xCD\xB2ؖ\xD3\xE5\x9C\xFFd&amp;\xB0\x8CK \x80;\x95\xBC\xB8\xDE]\xFE\x84\xCE\xABdP\xAD\xEDށ{\xD9&gt;\xDBr\xB4\x9C\xF3\x9F\xCCVr\x95p\xA1\x92\xD7&gt;\xE1\x83\xF3\xC4*Tw\xBB7\xE1R\xF6\x8E\x95v-\xE7\xFC'3\x81\x95\e\\xA8\xE4\xC5\xF5\x84O\xF8\xE0&lt;\xB1Ju\x80\xDD\xFBp#\xC72ϕs\xFE\x93\x99\xC0b.4nS\xF2\xE2\xFA\x92'|p\x9EX%\x83:\xC3\x8E]c\x99\x8D\xE7\xCA9\xFF\xC9L`1\xB7)yq\xFD\xB1&gt;8O\xAC\x92A\x9Da\xF7V\Ǯ\xB1\xC6\xDEC\xE5\x9C\xFFd&amp;\xB0\x9Ek
+\x80\xAB\x94\xBC\xB8~\x92\xCC        \x9C'Vɠ\x8E\xB1{7\xEEb\xCBXc\xEF\xA1r\xCE2X\xCF\xE5\xC0UJ^\?I\xE6\x84\xCE\xABdP'ٽ!\xB1_,\xB0\xFDD9\xE7?\x99        \xAC\xE7r\xE0*%/\xAE&amp;p\xC2\xE7\x89U2\xA8\x93\xECސ\x8B\xD8/fK8Q\xCE\xF9Of[\xB8\xE2\xB8Gɋ\xEB\x87        \x9C\xF0\xC1yb\x95 \xEA0\xBB\xF7\xE46\x8B\xD9\x8E\x93s\xFE\x93\x99\xC0\xAE8\xEEQ\xF2\xE2\xFAy\xD2&amp;|p\x9EX%\x83:\xCC\xEE=\xB9\x85\xCDb\xAA\x90\xE3\xE4\x9C\xFFd&amp;\xB0\x8B\x8B\x80K\x94\xBC\xB8~\x9E\xB4        \x9C'Vɠγ{[\xAE`\xA7\x98*\xE4,9\xE7?\x99        \xEC\xE2\xA2\xE0%/\xAE\xAF|\x93\xB60\xF0\x9A.\xF24U2\xA8\x95\xE3* \xBC\xBD\xCB\xE5\xEC\xF3\xE4\x9C%\xE7\xFC'3\x81\x8D\wܠ\xE4\xC5\xF5]\xAF\xD1\x86O\xA8\xB3\x86\xE1 *Ԯq\x86O\xA8s\xDB\xC4&lt;9\xC99\xFF\xC9L`#\xD77(yq}\xFBk\xB4\x85-\xEALe8\x83J\xB5w\\x85\xEA\xDC\xC361I\xD4Ar\xCE2\xD8ȥ\xC0
+J^\Ox\x87\xB6\xB0HB\x9Dy gPɠ\xB6\x8F\xAB\xB0EB\x9DK\xD8&amp;&amp;\x89:E\xCE\xF9Of{\xB9\xF48^ɋ\xEB!\xEF\xD0vI\xA83\x89\xE1 *T¸
+\x8B\x844:\x9E=b\x86\xB4S\xE4\x9C\xFFd&amp;\xB0\x97\xAB\x80㕼\xB8\x9E\xF3ma\x9D\x90F\xE5LfPɠB\xC6U\xD8%\xA4\xD1\xD9\xEC3\xA4\x9D&quot;\xE7\xFC'3\x81\xED\}\x9C\xAD\xE4\xC5\xF5\xA8h\xCFkT\xCBd\x95 *g\\x85uB\xCCQ.\xF09\xE7?\x99        l\xE7\xE0l%/\xAEG\xBD={^\xA3Z&amp;3\xA8dP9\xE3*\xAC\xD2\xE8`\xF6\x88r\x81G\xC89\xFF\xC9L`; g+yq=\xEA\xED\xD9\xF3\xD52\x99A%\x83\x8AWa\xA3\x9CRG\xB2A\x94 &lt;B\xCE\xF9Of        \\x83\xAC\xE4\xC5\xF5\xB4Wg\xCFkT\xC8d\x95 *j\\x85\x8DrJ\xFD\xF1\xBC\xD7w\xD8\xFDڑ\xA5\xD2d\x9E\x9F\xA9\x8E?{gr\xE7\xCC?\xBAyb+\xE7b/\xAAu\xAC        \xC0\x9D&gt;\xBE.\x9B\xF9\xEA\xECy\x8D
+\x99̠\x92AE\x8D\xAB\xB0\xD1\xC6R\xB5-\xF6v\xF9/G\x96\xFAKI\xBB\xF0\x8Ei2g\xEB \xFC\xB4~&amp;\xE6\xFFµ\xFBxZ
+\xE4\xD4^\xF0ǡ\xFF\xAC#\xAAQN\x92\xCC&lt;\xB1J5\xAE\xC2F\x8BK\xD5&amp;\xCF\xE9\xF5_\x8E)\xF2w%\xA5\xBA\x94\x8D;\xCF\xE4\xAD/\xC9\xF6&quot;\xE4\xB2\xE5Jz\xBA\xE8 +×\xAC\xF5t\xD1\xB5Ż\xCC\xE4\xA4.\xF0w%o\xFF\xA6\xBD7\xD5he\x92\x92\xB5j\x95\xCCp\x8B#\x87ЮTa\xE0\x90\x82\xFD\x97IM\xB7\xF4\x9Dڥ\xA9\xD81\xC6\xEExI\xB0w        \xACX\xB2Ļ\xA5gX\xBBd\x95wKo4\xAFu\x8B\x99\x9C\xD1~*y\xEF7\xED\xBD٨F+\x93\x94\xACU\xABd\x86[9\x84F\xA5
+\xA3~qj\xAF\xBF+︽\xE9\xA4FM\xC50s\xAFKR\xBDN8{Œ\xCF\xFF\xA0\xDC\xEC\xC0%\x9F\xFF%\xC0kZ\xFFV\xF7!\xEC\xCD\xFF\xE5\xFB\xBB\xB2\x81/\xCDF5Z\x99\xA4d\xADZ%3\xDC\xE2\xC8!\xB4(U\xB2\x8Av;\x96\xF7\xEA(yt\x81\xBB\\xE9K\xBCy\x8B\x96|\xF2\xF7\xE5\xA6F-\xF9\xF0\x8F[YyP\xDFilL\xBFP\xF2\xA2o\xDAK\xB3Q\x8DV&amp;)Y\xABV\xC9 \xB78r\xE1\xA5
+\xE3\xCDpjǒ^\xB1k۵\x93&lt;\xB1\xB4\xFD-\xC9\xF31ۤuK&gt;\xB6$I\xB9y9K&gt;\xB9$\xC92[*\x8F\xE8;\x90]\xC9\xE0\xBE\xBF(\xF8\xC6lT\xA3\x95IJ֪U2\xC3-\x8EBr\xA9\xC2lS\x9DW\xB3d\xFB2\xAB\xFD\xA9\xAA`;\xE1\xE3\x8A\xDAܒ0߃\xCDX\xBA\xE43\xAB”\x9B\xB2\xE4c\xAB\xC2,\xB0\xB1︎cY\x9F~\xEB\xFB\x8B\xB2\x81o\xCCF\xD5Y\xA6d\xADZUc\\xEF\xC8!Ė* \xB6\xC0aMo\xD8\xC1\x92\x8E\xED\x84\xCF*jgK\xC2|OU\xBEz\xC9~\xF4ys\x96N,ahS'6i\x86k\xB4\x9B\xCC\xE2\xC00\xE2\xFB\x8B\xB2io̦\xD5Y\xA6d\xADZUc\\xEF\xC8!d\x96*L\xB5\xCCIe\xEF\xD9\xC1\xEFM{        QΞ\x96$)\x89T\xA0\xE4\xD3J|ޢE\xCBڼ\x89\xCD\xE0J\xCB&amp;S5\x9FŁ෾\xBF%\x9B\xF6\xBAlZ\x9D\x95aJ֪U5\xC6\xF5\x8EB`\xA9\xC2H\x8B\xD3\xF7\xAA\xFCX\xB6\x91\xFC\xF9\x84lhI\x8C\xAA&lt;\x85J&gt;\xAA\xD0獚&gt;\xB1\xB4\xA1M\x9AX\xF9\xF4\xD6[0\x99\xC2\xADL #\xBE\xBF%\xF5\xBAl`\x9D\x95aJ֪U5\xC6\xF5\x8EBZ\xA3\xAA&lt;\xBB\x9CQ\xF9\xB6\xFCҷ\x91\xFC\xE1$\xECfI\x86\xAA0\x853)\xF9\x9Cr\xDF\xE73ob\x99C\x9B1\xB1\xDA\xD1\xED2u2\xB5SZ}K6\xEAu\xD9\xC0.+\xF3\x94\xACU\xABp\x92\x8B9\x84\xA8FUa\xF6:\xA0\xF5\x85;\xF8\xBAr#\xF9\x93پ\x95%J\x92L\x8A\xA8dJ\xE5K\x9E|\xF9\xC4
+\xE7\xB6פ\xC9\xCCԚ\xA80\xA8\xE4-ِwe3\xBB\xAC\xCCS\xB2V\xAD\xC2I.v\xDE\xA2\x86\xD9\xEB\x80\xE2w\xEE\xE0\xBB\xD6]\xB4\x98\xC9\xDE},Y\xFD{\x8C\xA9\xA92U\xCD\xCA\xC4\xCCm\xC6df\xCCjMN\xF4\xFDِwe \x8B\xD4vY\x99\xA7d\xADZ\x85\x93\\xEC\xBC!D5* \xB3]\xF7\xE2wnߋ֍\xB4\x98\xC9\xDE},Y\xFDc\x86\xA9\xA9b\x8E뒉\xFD\xCF\xD0\xFEC\xEDX\xE6\x8DkMN\xF4\xFD\xD9\xED\xEF\xCAV\x98Qde\xA4\x92\xB5j\xD5s\xA5\xF3\x86\x90S\xA7*I\x88\xEEݯݾ\xA7\xC5i1\x90\x8D\x9BX\xB2\xF4\x97 \x82%3\xB1\xA7L\xEC\xBFNf\xEA\xC4\xE4\x80A%\xAF\xC8\xEEzQ\xB60\xFC\xBC&quot;+#\x95\xACU\xABv\x98+6\x84\xA8:\x85aB\xB4\xEE~\xF3\xDE=&lt;\xB9m\xB4\x98Ʈ,Y\xF7K\x80eْ\x99\xD8S&amp;\xF6\xAF\xAA\xC62{b r\xC0\xA0\x92WdW\xBE([xM\x8B\x95\xA9J֪U&gt;\xCFeBN\x9D\xC2$9Z׿y\xFB\xDE\xBALc\xCB\x96,\xFAz\xF5\xC5\xF1\x92\x99\xD8 \xC6\x{16FF8F}e\xC1\xD0f\x87\x80q%\xAF\xC8#v\xC2}ws\xC6H\xD78iQ]
+\xC3D\xE9[\xFF\xF2\xBD{u\x8A\xA3u\x99\xC3\xFA\xED+Y\xF1\xDD\xD2[\x863\xB1\xA72ǵ}\x9B\xBE\x8FeM\xFE9`D\xC9\xFB\xB1Lj\x9D\xF0\xC1yb\x95 *a\\x85E\xBEw\xA9
+\xF34\xDB\xDE\xD5O\xA90Oa\xAAwi\xA7.\xFD\xDB\xD5\xDB\xE92\x84\xC5{W\xB2܋u\xD7Ϥ\xA4\xC8ƥ\x93'\xB6=LάBb| \xB32\xF3\xEC\x900\xA8\xE4\xFD\xD83$O\xF8\xE0&lt;\xB1J\xB5}\\x85-J\x8A\xD4\xE6\xF9\x92*$Ƽl\x85y
+S} 9#Ë\xC9
+a\xF1ޕ,\xF7t\xD1-3)\xAF\xA3\xCB\xC4Bb\xCC \xF6%ä)\x95D\x9A\x9DvvHT\xF2~\xEC\xC2'|p\x9EX%\x83\xDA;\xAE\xC2
+UE\xCE\xF3=Lm\xAA\xC2&lt;U\x91\xAA╇\xF9\x98'J\xA3        \xACܸ\x92\xB5\xAD\xB8q&amp;3\xF2G\x85\xB9yb\xDB\xF3\xBC[}\xF6\x88
+S͋:;$ *y?\xB6\xBB\xFC        \x9C'Vɠv\x8D\xAB0|a\x8B\xB4&lt;\xB5\xA9\xAA\xF2TE*\xCCS\xA90[m\x9E\x92H!M`\xD9ƕ,4\xBE\xDC\xF6\x99\xCC \x98jF\xA4\xAAlQ۸\xF4\xECT\x93\xB2\x95眚ƕ\xBC\xDBW\x97        \x9C'VɠV\x8E\xAB0\xF0\xA4Qaf\x8B\xCAS\xA6*\xCFU\xC16jTͮ\x95\xAC2\xB8V\xC8L\xA6\x86O V\x9E\xA7*\xD8Ԅ\xBBbTͤ&lt;ؤl\xBDB\xC0\xA0\xAA\xF7c;j4\xE1\x83\xF3\xC4*\xD41\xA2FZ&amp;9XT\x98\xAA&lt;\xE5\xA9\xF2\xB3mѨ\xFB\x82]+Ybd\xA1\xA8\x99\xCC\xAF&lt;\xCC\xF7H Bn\xC9P;\x93\xC2`S\xE3\xD5\xE6\x9CF\x94\xBC\xDBN\xBB        \x9C'Vɠΐ6Ҫ&lt;\xE5َ S\x95\xA76Ҍx\xF3.ӫ\xF8\xEC-+\xF9\xFC߮8\x93\xE1s\xD6&amp;\xF9\x9EgM\xC8-\xCA\xC7\xD2%^\xA3\x900\xA2\xE4\xE5\xD8^:N\xF8\xE0&lt;\xB1Ju\x86\xA8\x91V\x85I\xCEv^\x98\xC2&lt;\xF3N
+\xB9F\xAF⳷\xAC\xE4\xF3\xBDD\xB9\xAA̳\xF3\xE7$\xACM\xF2=ϲ\x9C\xEBW\x9F1\x96\xC2xSV\x85\x9C\x9A\x95\xBC\xDBQ\xAF        \x9C'Vɠ\x906Ϫ&lt;3\xE2        3;\xCCԐ r\xCE֫\xF8\xD4-+\xF9\xF0_|\xFE$U\xB1\xE4\xC9Y\xE3K\x92\xC5Q\xD7/=i,\xC0b%/\xC7\xF6\xD5e\xC2\xE7\x89U2\xA8\xEE\xE7Y\xA9&lt;\x9E0\xB3\xC3\xCCι&amp;\xEA&lt;\xBDZ\xCFۯ\x92O\xFE\xC5\xE7\x87\xCFdM\xF8\x90\xA8\xB51\xBE$Yu\xFDғ\xC6rU\xC2\xD9!`D\xD5˱\xAD\xE5O\xF8\xE0&lt;\xB1J\xD5W\xE6&lt;\xCBSe\xC6\xCB        \x93\x93dM\xD4ei'\xE9\xD5z\xD2~\x95|\xEC}x\x8B\x99,˟\xB50×\xEB\xD3nYw\xD2X\xAA΋W\x95pvHQ\xF5rlw\xE1&gt;8O\xAC\x92A5;\xCF\xC1\xE3\xE5\x84\xC9I\xB2&amp;겴3\xB4k=c\xBFJ&gt;\xF3_?\xB9\xD1L\x96UH\x88Z\x98\xE1K\x8C\xF0\xB4[=\x8Cp\x8C\xAA\x97c\xCF;\xE1\x83\xF3\xC4*T;\xBB\xA7\xBEG\xDA\xF4r\xC2\xE4$9/m\xB9v\xAD\xCB\xF7\xAB\xE4~l\xBB\x99\xAC\xAC\xB0=\xF0\xF6\xBB\xD2&gt;
+\xBCkݓ\x98Ǩz9\xF6\x99&gt;8O\xAC\x92A5\xB2{\xDE;\xA5\xCD0'LH\x8Cei\xD7g.Ԯr\xF9f\x95|\xE0\xFF\xB6\x80\xAA
+\xCBZl\xBC=@\x8B\xC0\x85\x8B\xBEX\xFD \xE6\xC01\xAA^\x8E=I\xE0\x84\xCE\xABdP-\xEC\x9E\xF4f\x81\x93         cq\xE0ř \xB5\xEB[\xBBY%\x9F\xF6\xBFݻ_\xD5bY\x91큷h\xB8p\xD1/1Z3.\x8EQ\xF5r\xECa\xD2&amp;|p\x9EX%\x83jd\xF7\xBC7\x88\x9DaH\x98\x90\xC7g\xAEҮo\xE1f\x95|\xD4\xFF\xB6\xBEc\x91\xBD\x99\xF7\xAE\xBE1\xF0\xA3̅\x8BVE\xEAȈ8Cɛ\xB1\xE7I\x9B\xF0\xC1yb\x95 \xAA\x97\xDD#_'|\x80!a2\xACϼ%v\x89v}\xAB6\xAB\xE4s\xFE\x97\xB1\xEF\xBB\xECͼw\xF5F\x99\xAB\x9D\xAF\x93\xE0 Uoƞ'j\xC2Ua\xF3\xC4*TG\xBB?K\xA3х\x84IȰ&gt;\xF3\x96\xD8%\xDA\xF5-٬Z\xBBFQ&gt;\x93{2\xEF]\xBDQ\xE6\xAAEפ\xCDd\x9C\xA1\xEA\xCD\xD8#\xE5L\xB8$If\x9EX%\x83jj\xF7\xEC \xB4\x9E[H\x98\x84 \xEB3o\x89]\xA2]ߒ\xCD*\xB7k\xB53\xE9\x98\xF9]\xEC\x8DK\xBFV\x95\xF9Q\xEC\xC2E\xBF\x9B7۩.\xAF\xC01\xAAތ]\xFCrla\xECٍr\x92d\xE6\x89U2\xA8\xD6v\xEF\xC0\x90\xDDC\xFAD\x95
+\x89\xD1\xD1\xF7ѭױo\xD5~\xD5\xDA5\x8Dڙt\xCC\xFC.\xF6ƥ_\xAB\xCA\xFC(v\xE1\xA2\xE5捺\xD6m}8U՛\xB1_\x8E-\xAC0\xA3TH\x8C\xD8&lt;\xB1J\xD5\xDD\xEEM\xF8\xA7\xDD\xF3\xF8\x8D\xA8\x9A        \xFA*\xD9Ǖ:\x96\xADڬr\xBBR5\x93\xA6\xB1\xDF%߸\xF4[bW-:ϤiW\xB9\xA4&amp;ǫz3v\xFB˱\x85EjK\x85Ĉ\xCD\xABdPؽ\x9D6&quot;\xAArB\x86\xBEJ\xF6q\xA5\x8Ee\xAB6\xABܮ\x81Tͤi\xECw\xC9w\xAD\xFBQI\xEC\xA7ɫ]`\xD2\xD8?:\xBB\xF7\xA8z36\xE4\xE5\xD8\xC2:U\xBD2$\xE7\x89U2\xA8\x98\xFF\xB8\xA8\xEE        \xFA*\xD9Ǖ:\x96\xADڬZϤi\xECw\xC9w\xAD\xFBQI\xECɫ\xD6]f\xC6\xF0_;\xB2\xAAz36\xE7\xE5\xD8\xC2F%\xBD2$\xE7\x89U2\xA83\xFB\xA0\xA8!$d\xE8\xABdW\xEAX\xB6j\xB3fh=\x93\xA6\xB1\xDF%ߵ\xEEG%\xB1_$\xAFZw\xB1[\xF0\xC2au\xB8V՛\xB1Q/\xC7\x96\xFA\xDE+!Cr\x9EX%\x83:\x86\x81\x8F\x88EB\x86\xBEJ\xF6q\xA5\x8Ee\xAB6k\x92\xBE3i\xFB]\xF2]\xEB~T\xFB]\xF2\xAA\xA5\xD7+߅]\xA3\xDB\xDD\xF8\xFFڻ\xA3$\xC9m \x89\x82{\xFFKk?d6\xA6լ\xA4j&quot;\x80 \xB0\xDCPx\x99`\xFF\x91\xD6\xF0\xEDRoƶ\xBD\x9Ckq\xB4\xF1\x80\xF2\x9EZ\x91EXW\xB0sj\x84cS\xECV\xB5\x8D\x86\x86{E\xEE\xF1\xA4\x87M]\xD6&gt;\x97\xEE\xE4\xD2\xECg\xE5S\xE7.\x8Ad?.O\x9D&gt;&quot;{#{\xFE\xB8烩\x9F
+ε8\xDAx@yO\xADȢ\xAF+\xD8|l\x8A\xAD͇U\x{D921}\xE1^\x91{&lt;\xE9\xC6aS\x97\xB5ϥ;\xB94\xFBY\xF9Թ\x8B&quot;\xD9+婀\xC1\x8BY\xDAT?\xFC)\xF5fl\xE1˱%\xA3\x8D\x94\xF7Ԋ,jd]\xC1\xF2\xDDSlJ\x9DR\xB5\x96\x86\x86{E\xEE\xF1\xA4\x87M]\xD6V7\xEE\xE4ps*\xFBY\xF9Թ\x8B&quot;ً婆)\xA9\xBB8\xBF\xB1\xF3\xE5\xF0W\xA97c _\x8E-m&lt;\xA0\xBC\xA7VdQ\x83\xEB
+\xF6o\x9A&quot;^8\xAEj3
+
+\xF7\x8A\xDC\xE3I7\x9B\xBA\xAC\xADn\xDC\xC9\xE1\xE6T\xF6\xB3\xF2\xA9sE\xB2\xD7\xCBSS&quot;wq~]\x87\xB3\xE0oRo\xC6\xBEme\xBA\xD9\xD3\xFB{jE5\xBB\xAE\xE0\xF1A\xE2m+R=U\xCBih\xB8W\xE4O\xBAq\xD8\xD4e\xEDv\xDDNN\xB3\x9F\x95O\x9D\xBB(\x92\x9D*OŌ\x88l\xE0\xF0\xA2N6\xC0\xEFRo\xC6v\xBE\xDB0\xDD\xEC\xE9\xFD=\xB5&quot;\x8B\x9A]Wp\x84\xEC \xF1\xB0DzIU\xFBih\xB8W\xE4O\xBAq\xD8\xD4e\xEDv\xDDNN\xB3\x9F\x95O\x9D\xBB(\x92,O\xF5\x8CH-\xE1ؖ\x8E\xC0\xFF+\xF5fl\xE7˱
+\xD3͞\xDE\xDFS+\xB2\xA8\xF1u\xA7H
+\x92MzfSUd?%1\x91\x86{E\xEE\xF1\xA4\x87M]\xD6w\xED\xE4Xm6\xFBY\xF9Թ\x8B&quot;\xD9\xF1\xF2T\xD5y\xD9=\xEC\xDEϙZ\xF8'\xA97c;_\x8Em\x98n\xF6\xF4\xFE\x9EZ\x91E\x8D\xAF+8Ed\x90lO0\xFE\xC0\x87\xB7\xD4\xD0p\xAF\xC8=\x9Et㰩\xCB:㢝\x9CI\x8Dg?+\x9F:wQ${Sy\xAA\xED\xA4{ط\x993\xB5\xF0ORo\xC6v\xBE\xDB0\xDD\xEC\xE9\xFD=\xB5&quot;\x8BjXW\xD5 \xC1\x98l\xED\xF9\xCBc&quot;
+\xF7\x8A\xDC\xE3I7\x9B\xBA\xAC3.\xDAə\xD4x\xF6\xB3\xF2\xA9sE\xB2w\x97\xA7&quot;\xCFغ\x8A\xECB\xA4\xC0\xBFH\xBD\xDB\xF9rl\xC3t\xB3\xA7\xF7\xF7Ԋ,\xAAa]\xC1Agɖ\xB6\xAD\xB4\xC544\xF0\xB9\xAF)\xF2\x8C\x9Dt\xCBNt\xEE\xC8~V&gt;u\xEE\xA2H\xF6\xB1\xF2T\xEDV\xED\xE1@*\xFC\x8Bԛ\xB1\x9D/\xC76L7{zO\xADȢ\xD6dq\x96lI$)\xDB))\x89ih\xE0s7^S\xE4\xFB\xF7\xA1v\xFC\xE6;9\x90Z\x92=u\xEE\x8AH\xF3\xED\xE5;\xDC2\xFE\xEEN\xF8w\xA97c;_\x8Em\x98n\xF6\xF4\xFE\x9EZ\x91E5\xAC+8\xC8\xCA,ٌ\x95\x92}yo\x8Aih\xE0s7^S\xE4\xFB\xF7\x89\xF6\xFDr\xF9Nvw\xF64\xFDX\xA4\xF9|\xF6\xA6)\x82\xAEyw$\xFC\xA7ț\xB1\xB5\xEF\xC76L7{zO\xADȢ\xD6de\x96\x86\x86\xDDyo\x8Aih\xE0s7^S\xE4\xFB\xCFq\xB6\xFEx\xEDNvw\xF64Ϟ\xFE=\xCD\xFF)5Ԣ\xFE\xB7\xC0'&quot;o\xC6־\xDB0\xDD\xEC\xE9\xFD=\xB5&quot;\x8B*Y\xD7\xF8,\xE3g
+_\xD3\xD0\xC0\x87n\xBC\xA6\xF5\xEC\x93YQ\xB8\x93\xAD\x91Uͳ\xA7O\xF3\x8F\xA4l\xDBI!|&quot;\xF2fl\xED\xFB\xB1
+\xD3͞\xDE\xDFS+\xB2\xA8\x92u\x8D\xCF2{\xFA\xB1—Ŕd\xF0\xA1\xEB\xEE(\xF2\x80}2șS\xAAv\xB25\xB2\xAAy\xF6\xF4\xEFi~,5l\xC3N\xFA \xE0\x917c;ߏ
+\x8E\xB62\xDD\xEC\xE9\xFD=\xB5&quot;\x8B*Y\xD7\xF8,\xB3\xA7+|YLI\xBA\xEE\x9A&quot;؇#\x9C&lt;\xABd'\xFB&quot;75\xDFx\xFA`\xF0\xC9\xE6\x88\xE0\xE0#k)\xCF\x80ϥ^\x8E-|?68\xDA\xCAt\xB3\xA7\xF7\xF7Ԋ,\xAAd]\xE3\xB3 }caILI\xBA\xEE\x9A&quot;؇\xFD\xC1\xB3&gt;&lt;\xB1'\xEF\x9E=}0\xF8ds\p        \xC7\xD6R\x9E\x9FK\xBD[\xF8~l\xC9h\xE3\xE5=\xB5&quot;\x8B*Y\xD7\xEC,\x83G_ZXS\x92\xC1\x87\xAE\xBB\xA6\xC8\xF6y|\xEA\xB8:\xB5\x93}\x85\x9B\x82\xC7V\xDE\xBCUp\xBB\xD7R\x9E\x9FK\xBD\xDB\xF6~lp\xAE\xC5\xD1\xC6\xCA{jEU\xB2\xAE\xD9Y\xA6\xCE=\\x8C,\x89\x89dDJ\xF8\xC4uwt\xF8\xE9\x8A\xF7\xEC\xE8\xA9\xC8\x85\x9B\x82\xC7V\xDEZ{Lp-\xFB6S\x9E\x9FK\xBD\xDB\xF6~lp\xAE\xC5\xD1\xC6\xCA{jEU\xB2\xAE\xD9Y\xA6\xCE=\\x8C\xEC\x89\xE9)\xE1?]wG矮ȉώ~M\xE1\xA6ګ\x9AkO\x9E\xB5&quot;ҹ\xB5\xB6\xB9
+~$\xF2rl\xDB+\xB2\xC1\xA1\xD6G(\xEF\xA9YTɺfg\x99:\xF7pa0\xB2'&amp;R\x92\x8A\xE1\xDF]wA\xE7\xADȉ\x8FO?_\xCF\xDBW\xDBа\x92Q\x9Bz\xF2\xACE\x91\xD4}\xB5\xCDm\xF0#\x91\x97c\xAB^\x91
+N\x99\xAB\xA1\xA1\xB9\xA7VdQ%뚝e\xEAܓy\xD9Ȟ\x98HI*\xE6e\xB5;\xDC5\xF2\xC8eE}|\xFA\xE1\xBC\x85;RK2K:SO\x9E\xB5\xAE\xB9\xB6\xB9
+~$\xF2rl\xCF+\xB2\xC1qRs544\xF7Ԋ,\xAAd]\xB3\xB3L\x9D{2/\xF9\xBE\x98`\xCF\xEE\xCE\xA9\xFB\xDC5\xF2\xC8eE]        \xB8:oSjI\xC6ẕ\xCE\xF3\xE7nZˎ\xDA/l\x80\x89\xBC[\xF2\x8Alp\x96\xE0\
+
+\xCD=\xB5&quot;\x8B*Y\xD7\xEC,S\xE7\x9E\xCC\xCBF\xBE/&amp;س\xBB\xF3@\xEA&gt;w\x8D&lt;uY\x91s\x8E\xB5e\xF36u\xF6\x94,\xC6\xEB&lt;\xEC\xA8\xFD\xC26\xF8\x91\xC8˱
+\xAF\xC8\xC9U\x92Q\xDBS+\xB2\xA8\x92u\xCD\xCE2ux\xE4\xFBb\xB2I\x97Fp\xD7ԃ\xF79z\xB1\xE1@؎\xC2xdUL$\xE9@\xE4\xF9\xA3\xE3;\xD9W\xFBUa\xF0@\xE4\xFD\xD8ٷd\x83#\xEC\xAA$\xA3\xB6\xA7VdQ%뚝e\xEA\xDC3a;&quot;\xABbR=\xF1\xAAy\x9B
+\x8F\xB9k\xF0\xC1\xFB\x8A\xBD\x9Eq ,^\x8F\xAC\x8AIUm-\x9C
+\xEEdk\xEAW\x85\xC0\x91\xF7cϿ%\xCC\xDE=QOIgO\xADȢJ\xD65;\xCB\xE0\xD1\xC7֒-\xAC\x8AI\xF5\xEC\x8B\xB7\xC5\xF3λh\xF0\xD9\x{329CF9E}\xB1\xB5jGd[U\xBC'\xB6/o\xAA!\xB2\x90ݩ\xB5a\xFB\xDA\xE0\xA7&quot;\xEFǾUφ#%\xC1\x9ElR\xA7Ԣv5;\xCB\xE0\xD1gv/|k\xCF\xF7\x84
+\xBAh\xF6\xD9+\x8B\x9C)\xD9Z\x95\x8Dl\xEBٽ\xB1ζ\xC1\x8CŅ\xE8\xFC\xC26\xF8\xA9\xC8\xFB\xB1\xAFT\xB5\xE1TL\xAA'\x9B\xD4)\xB5\xA8\x86]\xCD\xCE2{\xFA֞y\xC1\xC2TO0)\x98W\x98\xD4\xE0\xA2\xD9ǯ,)ٔ쬊9\xB9\xB1\xB6\xB0\xF1\x92\xC7 9ٜ\xB7\xA9
+~*\xF2~\xEC+Um8\x93\xEA\xD9\xD6\xE6M[\x9A\x9De\xF6\xF4}1;\xF2vD&amp;-\xE6\xF5\x94\xBAh\xFC\xF1[\x8B\xA4b6%ERf7֓T\xB2\xA5g\xF2\xB2a\xC1\xC2Ma\xF0\xC0\xFA\xFB\xB1\xAFԶᶞ\x91\xF2\xC3޴\x84\xF1Y\x82%
+\xC1\xB0\x91\xD4\xD9\xE3%\xB3\xA7\xDF\xE2\xA2\xF1n-\xD2\xD0ܳ&lt;xt\xED\xC6fKڶ\xF4\xB8gS\xD8zϾ\xC8Mm\xF0@\xE4\xD9\xF7i\xDBp[\xCFH\xF9aoZ\xC2\xF8,\xC1\x80\xF1\xD3#U
+\xC1?\xCD&gt;vR\xEA\xEEܲ\x84\x86\x8B\x8B44\xF7\xD4Z\\xD4n\xEC\xCA\xFE \xE7\xE3\xBC\xF1\x80\x91\xD5mj\x80&quot;\xAFȾL\xE1\x86\xDBzF\xCA{\xD3\xC6g        |س\xEF\xC41=\xEBZ\xCC&gt;vL\xEA\xE2Jܲ\x87\x92\xBB\x8Bd\xA4\x92\xE21\xB5\xD6/\xCE\xC6,\xEA\xAF&quot;\x8FӦ\xD5\xEDk\x80\xD6_\x91}\x99\xCE
+\xB7\xF5\x8C\x94\xF6\xA6%4\xCCl\xA8Ux_\xF1\xEC\xC3mg\xA4.\xAE\xC4-{(\xB9\xBBHF*)\xD3i\xFD־mc\xFFS\xF9\xA8WY\xDFϾ\xBD\xEDk\x80\xD6_\x91}\x93\xDA
+\xB7\xF5\x8C\x94\xF6\xA6%4\xCCl\xA8Ux_;\xB2\xE7햺\xB5*W\xAC\xA2\xE7\xFA&quot;%\x91\xAAxI\xA7ȭ٘]\xFD\xD9Ͼ\xBDm\xCD\x80\x9FZE\xF65\x9A7\\x984R~қ\x96\xD00K\xB0\xA1V\xE7\x95ųO\xB6\xED\xBC\xB2*Wl\xA3\xEA#1\xEBUٌN\xA9+\xB31\xEB\xFA%\xB8\xA2ۗDޒ}\x81\xF2
+&amp;\x8D\x94\x9F\xF4\xB2%4\x8Cl\xE8\xD4y_;\xB2O\xE6\xED\xBC\xAF6W\xEC\xA4\xEA#1\xEBa\xF1\x8C6\xA9\xFB\xB21\xFB%\xBE\xA2캶\xE6\xC0\xEBoɾ@\xFF\x86 \x93F\xCAOz\xD9\xC6        6\xC4E\xF2r\xD7u\xC1\xE9\xC9\xC2\x82\x97թ-m\xF7\xE9YlK\x9D\xF9\x9D\x82\xF7ec\x83\xEB\xDFO|]\xBB \xE0\xA7\xD6ߒ\xBD\xDD.L)?\xE9eK('\x98\x94jK\\xD4\xC0\xA2\xAE\x88\xCC
+\xDET\xAD\xFEʹ]e\xA4g\xB1-xn䧲\x82\x97\xDFX\xE4w\xE2vl\xACv\xD86\xED'\xBB\xAB\x91\xF0#\xEBo\xC9^\xED\x96
+wV\x8D\x94\xF3\xB2%\xF4\x8C,\x89Ȇ-.gdQ\xB7t\xA6Dn\xA7_\xFFr
+o3\x92\xB4\x92&lt;4\xF2SAٛ\xB2\xB1\x86\xBD\x8Dۺ\xA2Ȗv\xC0\xEB/\xCA^\xEA\xAE
+׆\x8D\x94\x9F\xF1\xB2%\xC7Y\x9C([\xB2(\xB6vK3\xBB\xBA\xA53b}؋\x94\xAF\xA8\xF0B#I+y\xD9C#\xBF\xBD%+Zݠ+Vt ~j\xFDE\xD9]\xB7\xE1ڰ\x91\xF23^\xB6\x84\xE08\xEBec\xDB\xB6\xB8\x9C\xF3\x8B\xBA(uQdҋ\x94o\xA9\xF3N#U\x8F \xE3'F~pQ\xF4~l\xACn{\xE7ݲ\x9Fc\x9D\xF0#\x91\xD7z/r醛\xDBF\xCAx\xD9\x82\xE3D\x86\x8A\xF7D\xFA\xB7\xFEx\xED\xA2\xEE\xAA},8\xE6-\xCA\xD5y\xAD\x91\xAADž;N\x8C\xFCf*&amp;nGd\xE47S1\xCC\xCE\xFBSm\xE6d*|.\xF2f\xEF\xAE\xDEpy\xDEH\xF9n\xEF[Bp\xA2\xC8\\xF1\x9E\xF5\xEC3\xA7\xB4-*\x98z\xA0\xF6\x81\xEC\x80wi^W\xED\xE5FžEn:.򳑒\xB8M\x9D\x91\x9F]\xCF8fd\xDE\xEE\xDA\xC9\xC9Z\xF8\xDC\xFA\xBB\xB2\xE5\xA6\xDC\xFB\xB9D&lt;r\xA4|\x9F\xF7-!8Qp\xB4U\x8F\x83O\x9Eճ\xA8l\xE7\xEE\xDA\xD91\xDA]\x9A\xF7\xD6|ő\xB6\x9D\xFBΊ\xFC\xF2b\xC3\xFBj#\xBF\xBC\xD8p\xD8\xE1\x91\xE4\xBAm\x9C\x80E^\xF1m3\xBD\xD4\xFF㢉&quot;\xA9#\xE5;\xBCo        \xC1\x89\xB2\xA3\xED{\x9Cz\xFE\xC4\xF1]\xED\xE8\xDCW\xDB0\xD7E\x9AW\xD7|ˑ\xB6\x9D[ϊ\xFC\xF8J\xC0[\x83#?\xFE\xF8\xF4)g\xA6\xFEܥ{\x98\xCA\x80\xFFy\xD1w\xD0\xF4\xFE\xFE\xDBucF\x82Gʳ޷\x84\xE0D;Fۑ\xF7 r\xEAܩȭ\x9D;j\xC7ǹN\xED˯;\x92\xF7\xD3\xD4E\x8Exv\xF4\xB2#G&lt;8w־\xA9?w\xF5\xF8\x83\xF1+\xBC&gt;\xCDI\xEB/\xF0\xE1\xD3x\xCBZ\xB2\x97\xDB3W9\xCB\xE4w\xD9?\xBD\xC1\xE6X|\xE4\xA0\x9DX&quot;;\xF8-\xCBy\xC1p\xAF\xF1\xBF\xD8\xE2g\xEE\xFA\xA7,\x96r\xFB\xE0b\xFF\x83)\xAE^עȶ\xAF\xD8\xCC\xCB\xC6\x80\x8Bxu\xFF\xF5|\xA3\xB1\x95oa\xF8č\xCFƃg;8\xD1u\xEB\x8A;\xBC\xF03\x9E
+u\xCBt\xBC\x9B/bx\xA5\xC5Ͼ&lt;\xEA\xFC\xCE\xE3\xC0\xBD|\xC3+-~\xF6\xE5Q\xE7w\x9E%\xAE\xE6\xA3\xDEg\xE5\xB3/\x8F:\xBF\xF3,p;\xDF\xC5\xF0&gt;\x8B_~y\xCE\xF9\xCF\xB7\xF3] \xEF\xB3\xF8\xE5\x97眿\xF1 \xF0\xBE\x8E\xE1eV\xBE\xFC\xF2\x90\xF37$\xDE\xC1\xD71\xBC\xCC\xE2\xC7_r\xFE\xCAS\xC0k\xF8@\x867Y\xF9\xF8\xCBC\xCE_y\x8Ax\xDF\xC8\xF0\x8B\xDFy\xC2\xF9\xC5#\xC0\xCB\xF8L\x86\xD7X\xF9\xFE\xCB\xCE/!^ɗ2\xBC\xC3\xE2'`o\xFE\xE4\xF9\xE0\x95|,\xC3;\xAC|\xE6\xF1\xE6O\x9E^\xCC\xF72\xBC\xC0\xE2W`\x9Em\xFE\xF0O        x5\x9F\xCC\xF0+_\x81y\xB6\xF9\x93'\x80w\xF3\xE1 \xB7{\xFC\x98\x9B?yrx=\xCEp\xBB\x95\xC1&lt;\xD8\xFC\xE1\x9F\xF0|;\xC3\xD5\xE6\xC1\xE6\xFF\x94\x80o\xE2\xF3\xEE\xB5\xF2-\x98\xA7\xCF \xDF\xC34\xDC\xEB\xF1\xB7`\x9Ej&lt;0|\xDF\xD1p\xA9ǟ\x83y\xA4\xF1\xC0\xF0\x85|JÍ\xE6y\xFEr\x9E\xBE\x93\xAFi\xB8\xD1\xE3/\xC2&lt;\xCF_Σ\xC0\xD7\xF2M
+\xD7y\xF6E\x98\x87\xF9\xCByT\xF8r\xBE\xA9\xE1.\x8F?
+\xF30-\xCF        \xF8\xB2\x86\xBB&lt;\xFE.̓\xFC\xB5&lt;$\xF0\x87M\xC8U\x9E}\xE6I\xFEZ\x9E\xF8\xC5'6\xDC\xE2٧a\xE3\xAF\xE5        \x80_|b\xC3-\x9E}\xE61\xFEN\xF8\xDAp\x85g_\x87y\x86\xBF\x93g~\xE7[\xFA=\xF8:\xCC3\xFC\x9D&lt;\x97\xF2-!\xBC\x9Bo        \xF8'\xFF \xA8\x9F\xA3G
+endstream
+endobj
+100 0 obj
+   123751
+endobj
+6 0 obj
+&lt;&lt; /Length 101 0 R
+   /PatternType 1
+   /BBox [0 0 4804 3600]
+   /XStep 34248
+   /YStep 34248
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 0.0545379 0 0 0.0541667 52.977215 198.08913 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x99 99 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ q 4804 0 0 3600 0 0 cm /x99 Do Q 
+endstream
+endobj
+101 0 obj
+   35
+endobj
+102 0 obj
+&lt;&lt; /Length 103 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Image
+   /Width 4804
+   /Height 3600
+   /ColorSpace /DeviceRGB
+   /BitsPerComponent 8
+&gt;&gt;
+stream
+x\x9C\xECݻn\xC30DA\xFE\xFFO;\x85\x9B@\x89^\xB6\xC8K\xADf\xBAS\x89beX\xE4\xF5\x80\xB5YU_ \x84\xA8\x9E \xAE\xAA\xBEQ=\U}1\xA2z2\xB8\xAA\xFAb D\xF5dpU\xF5\xC5@\x82\xEA\xBD\xE0\x96\xEA\xBB\x80\xD5{\xC1-\xD5w        \xAA\xF7\x82[\xAA\xEFT\xEF\xB7T\xDF
+$\xA8\xDE n\xA9\xBEHP\xBD\xDCR}7p{\xD5c\xC1\xD5\xD7\xB7g\xCD\xD9l         \x9B-!d\xB3%\x80l\xB6\x84\x90͖\x82\xED        m        \xE0\xD6          \x9B-!d\xB3%\x80l\xB6\x84\x90͖\x82\xED        m        \xE0\xD6          \x9B-!d\xB3%\x80l\xB6\x84\x90͖\xB2\xD9@\xB0\xDD!\xA1-!ܚ!!d\xBBdKx\xE4\x9F\x9A%@\x89\x8F\x80\xF7\x83v\x85P\xEB\xEC\xE8\xEF\xCB        \xE1-F\x85\x97\xBF\xE3/\x80\xC7gn\xCF\xD3u}\xD3\xF9_\x80$\xC7gn\xBD\xC7t\xBF\x9FUn\xCC\xCBN\xF8\xE2\xE49\xB2q\xB0\xA4[&lt;\xB1\xDC\xE0W\xFE\xFB\xE2RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R'0X\x9B\xD5\xAFeq)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)S\xACM\xECiײ8\x80\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xA9         \xD6\xE6\xF6\xA8kY@J)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xCA\xD4k\xD3{ε, \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej#\xB5\x9Bx\xC8
+,&amp;\xA5\x94RJ\xF9o\xEE\x9A\xE1\x90RJ)\xA5\x94RJ\xD9/۞)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xF2\x9D\xDB^\xC0(\xBB\xBF\xCF\xF0\x94\xC9o\xE0\x8B\x83I)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ\x99\x9A\xC0H\xED;\x83\x9Fx\xF9\xEBy\x9E\xCB-&amp;\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej#\xB5\x8FT=\xB7\xC7\xE7\xC3\xC7'\xE9aq0)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)S\xA9\x9D\xF3\xF4\x8F\xCF\xD0\xCF\xE2`RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xA6&amp;0R;\xA3\xFC=\x8E\xF1\xC1\xFAYLJ)\xA5\x94\xF2\xDF\xDC5\xC3!\xA5\x94RJ)\xA5\x94\xB2_\xB6=3RJ)\xA5\x94RJ)\xA5\x94RJ)\xE5;\xB7\xBD\x80Qv\x9F\xF8\xA1~\xFC =Nr\xF6\xE9\xFD\\xFB^\xF0\x9AcHx\xF6$\x97\x9F\xE7\xEC\xA3\xFB\xB9\xF0\xA5\xE0m\xAA\x8D[\xD5\xEC\xCE\xE2\x80`\xB3M\xE7J6}\xB6\x840\x92-!\xC0.\xBFX\x80\x87\xF3Yp\xFE\xA2 \xAC94\xE7\xBB\xF4\xDB\xE1\xD4}\xB0\xC0\xF7l         \x9B-!ij%\x80l#\x97}\xB6\x84\xC0\xED\xF8\xC5&lt;\x9C\xCF&quot;\x80\xBB\xF0]`ۡQ\xDFE\x9Fǟ\xE5\x83\xAEbK\xF1l         \x9B-!d\xB3%X\xE3 \xF0p&gt;\x8B\xE0\x87};I\x92㊁(x\xFF[k\xA7\x95(\xA2\x87\xCCB\xDC\xC0\xCE\xE2
+\xF1\xCD\xA4\xF0\xA2 \xFCը\xEB\xD3@,-!t\xD3@7-!t\xD3\xFC\x89\x8B8\xCE,H\xE1E\xF8\xABQק%\x80XZB(\xF6f֧%\x80\xF7i        \xA0\x9B\x96\xE0\xB8X\x80\xE3\xCC&quot;\x80^t\xE0\xB3F\xC9\xDCG/\xF37\xBFp\xF8\xB76\xFC\xB7\xC0\xD0\xF2h\xEE\xE5\xCF\xD3\xD0gy4\xA7%\x80\xDA\xDCͽ\xFFmZB*\xAD\xED\xE6\xDE\xFF0-!\xC7\xC5g\xA4\xF0\xA2 7\xAA\xE6^\xBF\xCF?\xF2U\xF3?j\xB0dg:\xA7%\x80߲\xB0\x9E\xFB\xD4\xF7|1%\xD4cU@\xF7\xC1\x8F\xF9ҟ~\xE1\xBF~˞\x80\xEE\xB3_\xF2\xA5\xBF\xFE\xF4\xC0\x84\x8B8\xCE,H\xE1E\x96\xB5s\xDF\xEA\xFF\x86\x8F&lt;\xE7\xABݯ\x97t:\xBE
+\xDF\xCF\xF9jI\xF7[=\xDDG\xFE\xE8\xAF|\xC9C\x9F\xF9F\xD3\xF7ê\xEE\xE5?\xF7\xEB\xDF\xF3\xD0g\xC0s\xBE\xF7}\xA9\xB0{\xFA\xDF\xED\xE7?\xF7%C.\xE08\xB3 \x85]\xD8f\xD1}Ϊ\xDF\xFE\xE8\xC7\xC0s\x9EhŶ\xFE\xF4\xF7\xC0s\x9E(h\xE1\xAF~\xE1\x93\xE09O\xF4\x80߶\xF3'\xBF\xF3U\xF0\x9C'\xAA\xC0oX\xFB{_\xFB0\x80?q\xB1ǙE)\xBC\xE8\xC0~\xA3\xAC\xEE\xCB\xE9˟\xCFy\xA2\X\xEA\xED\xFFBx\xD4\xC1\xE0\xAAF/\xE5;\xE0iO\xF4\x83Ҽ\xB8\x80\xA7u$\x84\xFF\xCA\xFDr\xE0, p\x9CY\x90‹.\xD4\xD5w\xBB\xEF\xFC\xF9OX\xFEC\x80\xFF\xA4%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \x808.\xE08\xB3 \x85]`\x8FQ@h\xB0@,-!t\xD3@7-!t\xD3q\,\xC0qf@
+/\xBA\xC0\xA3\x80\xD0`\x80XZB\xE8\xA6%\x80nZB\xE8\xA6%\xE2\xB8X\x80\xE3\xCC&quot;\x80^t\x80=F\xA1\xC1\xB1\xB4\x84\xD0MKݴ\x84\xD0MK\xC4q\xB1ǙE)\xBC\xE8{\x8CB\x83bi        \xA0\x9B\x96\xBAi        \xA0\x9B\x96\x88\xE3b\x8E3\x8BRx\xD1\xF6\x84 \xC4\xD2@7-!t\xD3@7-!\xC7\xC5g\xA4\xF0\xA2 \xEC1
+
+\x88\xA5%\x80nZB\xE8\xA6%\x80nZB \x8E\x8B8\xCE,H\xE1E\xD8c,KKݴ\x84\xD0MKݴ\x84@ p\x9CY\x90‹.\xB0\xC7( 4X \x96\x96\xBAi        \xA0\x9B\x96\xBAi        \xFFa\xEF\x8EvDZ(\x8A\xEA\xFF\xBAS\xEEr\xA7]q$\xDB$/\xB9\xF8\xD0\x83\x8E\x82\x96\x813\x94\xE3 \xB09\x8FEU\xF8D\x98ǥ\xA1(˖\xD6fKk\xB3%\x80\xB5\xD9\xE5x\xC7l\xCEc@&gt;\xD1\xE6qi@\xF8\xD7\xCBÓ\x8B\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xF2JD/\xBA\xD5\xC37\x91RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\x9E&amp;@\xC4\xF1\xA2\xFBW=|)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xE5iD/\xBA\xD5\xC37\x91RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\x9E&amp;@\xC4\xF1\xA2\xFBW=|)\xA5\x94R\xCAay\\x91RJ)\xA5\x94RJ\xD9/O\xCD\xF0&quot;\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xDE\xFE\xE3g\xBFF9}B\xF9\xF6\x81%\xFE`%\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)e\xC5\x888^t\xFF\xAA\x87o&quot;\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5&lt;M\x80\x88\xE3E\xF7\xAFz\xF8&amp;RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\xCA\xD3\x888^t\xFF\xAA\x87o&quot;\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5&lt;M\x80\x88\xE3E\xF7\xAFz\xF8&amp;RJ)\xA5\x94\xC3\xF2\xB8 \xFE&quot;\xA5\x94RJ)\xA5\x94\xB2_\x9E\x9A\xE1EJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\xBC\xFD\xC7\xCF~\x8Cr\xFA\x84\xF2\xEDK\xFC\xC1JJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94Rʊ        q\xBC\xE8\xFEU\xDFDJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJy\x9ANj\xEE_\xF5\xF0M\xA4\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xA7        q\xBC\xE8\xFEU\xDFDJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJy\x9ANj\xEE_\xF5\xF0M\xA4\x94RJ)\x87\xE5qA\xFCEJ)\xA5\x94RJ)e\xBF&lt;5Ë\x94RJ)\xA5\x94RJ)\xA5\x94RJy\xFB\x8F\x9F\xFD\xE5\xF4        \xE5\xDB\x96\xF8\x83\x95\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94 \xE2x\xD1\xFD\xAB\xBE\x89\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xF24&quot;\x8Eݿ\xEA\xE1\x9BH)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)O \xE2x\xD1\xFD\xAB\xBE\x89\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xF24&quot;\x8Eݿ\xEA\xE1\x9BH)\xA5\x94R\xCB\xE3\x82\xF8\x8B\x94RJ)\xA5\x94R\xCA~yj\x86)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xF2\xF6?\xFB0\xCA\xE9ʷ,\xF1+)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)+&amp;@\xC4\xF1\xA2\xFBW=|)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xE5iD/\xBA\xD5\xC37\x91RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94R\x9E&amp;@\xC4\xF1\xA2\xFBW=|)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xE5iD/\xBA\xD5\xC37\x91RJ)\xA5\x96\xC7\xF1)\xA5\x94RJ)\xA5\x94\xFD\xF2\xD4 /RJ)\xA5\x94RJ)\xA5\x94RJ)\xE5\xED?~\xF6 `\x94\xD3',P\x9A-!\xAC͖\xD6fKk\xB3%\xCA\xF1\x8E؜\xC7&quot;\x80*|\xA2 \xCC\xE3Ҁ\xD0 \x94eKk\xB3%\x80\xB5\xD9\xC0\xDAl        \x80r\xBCc6\xE7\xB1\xA0
+\x9F\xE8\xF3\xB84 \xF4\xC0e\xD9\xC0\xDAl        `m\xB6\x84\xB06[B\xA0\xEFX\x80\xCDy,\xA8\xC2'\xBA\xC0&lt;.
+=\xB0@Y\xB6\x84\xB06[BX\x9B-!\xAC͖(\xC7;`s\x8B\xAA\xF0\x89.0\x8FKB,P\x96-!\xAC͖\xD6\xF6t3hKk\xF8=|\xEDD\xF9\x97\x94\x80\xCDy,\xA8\xC2'\xBA@\xDEB\xA3B\x98_\x93        \xA1Q!L\xA8ӊТ\xE2\xAC-
+ b\xF0\x8AТ\xE28\x93~\x81}y,\xA8\xC2'\xBA\xC0\xC1!\xA19!\xF4\x9A@'\xF1\xFD\xA0E!\xF4\x9F
+\x9A@?\xF1\xC1\xA09!0\xC4q&amp;\xFD\xFA\xF2XP\x85Ot\x80\xF6\xE2SAsB\xE8'&gt;4'\x80\xAE\xE2 A[B\xE8'&gt;4'\x80~\xE2\xC3@sB`\xB8\xE3L\xFA\xF4\xE5\xB1\xA0
+\x9F\xE8m\xC4'\x81\xE6\x84\xD0U|hK\xFD\xC4ǀ\xE6\x84\xD0U|        hK\xFD\xC4g\x80\xE6\x84@\xCEq&amp;\xFD\xFA\xF2XP\x85Ot\x80O\xC57\x80\xB6\x84\xD0O|hN]\xC5\xD7\xB6\x84\xD0U\xCFe߷l        `\x9C\xB1+\xC2\xE3\xCB\xFFjNL\xE2\xF9;\x97?o`\x96\xE6\xB1\xA0
+\x9F\xE8\xEF\xB8&quot;\xFC\xBA%\xF4O\xC0 c\x87\x84\xB6\x840T\x87_~HhNw\xB6\x84\xB0\xB6\xF3=[B\xA0\x9C\x9F\xDF\xC0\xDEZ\xAB\xF3XP\x85Ot\x807\x8D\xDD\x8Ez\x80\x9B\xDB=[B\x98\x88-!\xACm\xE0\x96p\xE8\x90Жnl        ~\xFC\x87\x95\xFFy'\xB04\x8FEU\xF8DxG\x9F\xE1\xDE,[B\x8FB\xF0k\xE9\x97Ш~m\xB3%4*`[\xBBm        \x8D
+\xD8Ͷ[B\xA3B\xE0\x8Bgo`\xFE}'\xB04\x8FEU\xF8DxS\x87]^\xB1-\xA1Q!k\xB3%4*`m\x86x巄F\x85\xACĖШ\x80\xE5\xB5^\xDE-\xB8%4*\x80\xD5= \xF3\xE7\x9D \xC0\xD2&lt;T\xE1]\xE0}6w\xCBn        \x8D
+\xA8\xA8\xDB\xE0n\xE5-\xA1Q!\xB5\xF4\\xDB-\xBE%4*\xA0\x84\xF8o\xA5\x8A\xEF\xEF\x96&lt;@Ǚ\xF4 \xE8\xCBc@&gt;\xD1&gt;_\xDE-|`\xF1\xC1\xDD\xB2\xE2S\xBB}D\xC4v,\xBE\xAD\xDB\xF6QǙ\xF4 \xE8\xCBc@&gt;\xD1ڈO\xEA\xE8-&gt;\xA6sn\xFA\x89\xCF蜯z\x88\xE8ޘ\xDA\xC5_ɰ\x9F&gt;\xDF\xCD}\xB2\xB0\x8B\xBF\xA4\xF1?2\xF0\x99\xE3L\xFA\xF4\xE5\xB1\xA0
+\x9F\xE8\xED\xC5s\x9F\xAF\xEA\xE2//\xFB\xE3\xC0\xA9\xF8V\xAEՒ.\xFER\xE7\xB9\xF0 \xBE\x92k\xBB\x9E\x8B\xBF\xEC9/ \x9B\x8B\xEF\xE3z,\xE6\xE2?\xC2\xFC\x97\x80\xDD\xC4\xC7q\x9D&amp;r\xF1\x9F\xA8\xDC\x80g\xD2/\xA0/\x8FEU\xF8Da\xEDY\\xFC\xA7+}\xF5X\xC6S\xB8\xF8\xE8o\x99+        @]\x9Bl\xDF⣿U/,U\xEC3v\x8B\x8F\xFE6\xB9\xCE\xCCi\xABu[|\xF4gT}g\xD2/\xA0/\x8FEU\xF8D\xC8\xDBj\xCB\xFD\xB4\xD5r-&gt;\xFA3*`\xB8\xA7\xFF`\xFA\xDA\xFF\x90z|\xF4gT\xC0(϶\x84O7\x86\x8B\x89\x8F\xFE\x8C
+\xE8l\xF7-\xE1]|\xF4gT\x97\xED\xFB\x8E\xE07\x8FEU\xF8D\x98ǥ\xE1V,\xF1џQ!M\xD9&gt;\xFDЂ-\xE1\xB9\xF8\xE8Ϩ\x80\xD8\xBE &gt;\xFA3*\xE0u\xB6\x84\xFE\x8C
+؛w,\xC0\xE6&lt;T\xE1]`\x97\x84X\x9E\x89\x8F\xFE\x8C
+8cK\xD8F|\xF4gT\xC0\xB6\x84\x8D\xC5GF\x85\xFC\x97-a/\xF1џQ!\xBF\xD9v\xFD\xB0\xEFX\x80\xCDy,\xA8\xC2'\xBA\xC0&lt;.
+=\xB04\xFDlɖ0 &gt;\xFA3*؉-aR|\xF4gT\xB0[\xC2)\xC4GF\x85\xEB\xB2%\x9CK|\xF4gT@ޱ\x9B\xF3XP\x85Ot\x80y\z`/&gt;\xFA3*X\x85-\xE1\xEC\xE2\xA3?\xA3B\x80\xE2l        ˈ\x8F\xFE\x8C
+j\xB2%\xAC'&gt;\xFA3*(Ŗ\xB0\xB0\xF8\xE8Ϩ\x80\xEFX\x80\xCDy,\xA8\xC2'\xBA\xC0&lt;.
+=\xB0L.&gt;\xFA3*\x98\x98-\xE1R\xE2\xA3?\xA3B\x80\xF9\xD8\xAE)&gt;\xFA3*\x98\x86-\xE1\xE2\xE2\xA3?\xA3B\x804[\xC2]\xC4GF\x85\xB4\xE3 \xB09\x8FEU\xF8D\x98ǥ\xA1\x96\x95\xC4GF\x85c\xD9\xEE+&gt;\xFA3*–\x90\xFC\xE8Ϩ\xA0'[B\xFE\xFDt`K\xC87\xE2\xA3?\xA3B~\xE4 \xB09\x8FEU\xF8D\x98ǥ\xA1\x96m\xC5GF\x85\xB3%\xE4\x92\xF8\xE8Ϩ\xE0]\xB6\x84\xBC&amp;&gt;\xFA3*x\x91-!o\x8A\x8F\xFE\x8C
+\xAE\xB1%\xE4S\xF1џQ!\xC0~\xBCc6\xE7\xB1\xA0
+\x9F\xE8\xF3\xB84 \xF4\xC0\xC2\xF1џQ!\xC0wl        i/&gt;\xFA3*\xF8–\x90\x8E\xE2\xA3?\xA3B[Bƈ\x8F\xFE\x8C
+\x80\x8D\xD92T|\xF4gT\xB0\xEFX\x80\xCDy,\xA8\xC2'\xBA\xC0&lt;.
+=\xB0\xD0\|\xF4gTlÖ\x90\xB0\xF8\xE8ϨX\x9D-!\xB3\x88\x8F\xFE\x8C
+\x80E\xD92\x9D\xF8\xE8ϨX\x8B-!\xF3\x8A\x8F\xFE\x8C
+f\xE5 \xB09\x8FEU\xF8D\x98ǥ\xA1\xB2\xE2\xA3?\xA3B\xA02[B*\x89\x8F\xFE\x8C
+\x80\x82l        ))&gt;\xFA3*\xEA\xB0%\xA4\xB6\xF8\xE8Ϩ\x98\x9E-!\x8B\x88\x8F\xFE\x8C
+\xF2\x8E؜\xC7&quot;\x80*|\xA2 \xCC\xE3Ҁ\xD0 \x85\xC4GF\x85\xC0dl        YV|\xF4gT\xCC\xC1\x96\x90\xF5\xC5GF\x85@\x94-!\x89\x8F\xFE\x8C
+\x80[Bv\xFD|\xC6;`s\x8B\xAA\xF0\x89.0\x8FKB,\xAC*&gt;\xFA3*\xFA\xB3%\x84\xFF\x8B\x8F\xFE\x8C
+\x80nl        \xE1?\xE2\xA3?\xA3B\xA05[B\xF8^|\xF4gT\\xDC)\xA5th'&gt;\xFA3*\xF8\x8B\xFF\xF7`s\x8B\xAA\xF0\x89.0\x86-!\xB4\xFD\xB1%\x84.\xE2\xA3?\xA3B\xE0[B\xE8+&gt;\xFA3*\x80\xED\xD9\xC2 \xF1џQ!\xECʖF\x8B\x8F\xFE\x8C
+\x81=g\xD2/\xA0/\x8FEU\xF8DÖb\xE2\xA3?\xA3B؃-!\xE4\xC5GF\x85\xB04[B\x98H|\xF4gT+\xB2%\x84\xC5GF\x85\xB0[B\x98Z|\xF4gT\x94u\x9CI\xBF@\x80\xBE&lt;T\xE1]` [B\xA8!&gt;\xFA3*\x80)\xA5\xA7A
+N\xFA\xC2|\xF2\x97\x9D\xF0\x8A\xF4&quot;\xA8\xC1I_B\x98X\xFE\xB4\xF3.H\x81\x9C\xF4%\x84
+\xF2\xA9\xFD\xF0Dz\xFC\xD3\xE0\xA4/!\x94\x92\xFF\x93\xED.;Τ_ @_\x8B\xAA\xF0\x89.\xF0\xB9\xF4\xE6\xA7\xC1I_B\xA8)\xFF\xB7\xDB\xFF\xBF\xA5\xA7&gt;
+N\xFABq\xF9?\xE2\xFE\xF6\x96^\xF848\xE9K\xAB\xC8\xFF5\xF7?\xB0\xA5\xF4\xB0\xA7\xC1I_BXN\xFEϺ\xFF\x80\x9D\xA4\xF7&lt;
+N\xFAº\xF2\xDF\xFD\xB0\xB7\xE3L\xFA\xF4\xE5\xB1\xA0
+\x9F\xE8\x9FK\xCFx\x9C\xF4%\x84
+\xE4\xFF\xD0\xFBXWz\xBD\xD3\xE0\xA4/!\xEC$\xFF\xDF\xFF\xC0rң\x9D'}        aK\xF9?\xFD\xFEV\x91\xDE\xEA48\xE9K{\xCB\xDF\xFA(\xAE\xE5\xDE\xE6g\xDDv&gt;\xE9K\xFC_\xFC
+8\xC0r\xCE޾\xF8\xC3\xE7\xB1\xA0
+\x9F\xE8\x9Fk9\xB3I         [B\x98M|\xF17\xE0@)-\xD75\xB6\x84\xC0W\xF1\xC5߀\xB4\xD5$\x86\x84\x87-!\xCC/\xBE\xF8p`b-\xB74\xB6\x84\xC0\xCF⋿\xE6\xD3rB\x93\xB6\x84PQ|\xF17\xE0&lt;\xFF\xBFB\xF8\xF3F`i\x8B\xAA\xF0\x89.\xF0\xB9\x96\xCB[B\xE0U\xF1\xC5߀i-3\xB6\x84\xC0\xDB⋿BZ\xEEdB[\xC2ÜV_\xFC
+80V\xCByLnKx?\xE9\xCB        \xB4_\xFC
+80D\xCBU\xCC[\xC2\xDBI_T\xA0\xA9\xF8\xE2o\xC0B\x9E\xBC}\xF9\xF2F`i\x8B\xAA\xF0\x89.\xF0\xB9\x96c\x98i\xB6\x84\xB7\x93\xBE\xB4@k\xF1\xC5߀\xB4\xDC\xC0L\xB6%\xBC\x9F\xF45Z\xCB\xDFW\xFAh\xA7\xE5\xF4e\xD6-\xE1\x{D92F}4\xD0Z\xFE\xBE2\xE4\xC0\xC7Z.^\xE6\xDE\xDEN\xFAz\xE4o-C\xBC+\xBD\x8D\x89\x9D\xF4\x85:\xC8\xDFZ\x86\xA0\x9D'\xFFW_\xFEO\x96\xE6\xB1\xA0
+\x9F\xE8\x9FKOb\xC2'}\xF9\x81&gt;\xF2w\x97!\xAEI/af9\xE9\xDF\xD0G\xFE\xEE2\xE4\xC0\x8F\xD2\x98\xB9N\xFA\xB7t\x93\xBF\xC1 9\xF0\x9D\xF4\xEEeƓ\xFE\x9D=\xE5\xEF1C|\x91\x9E\xBBL}ҿ\xA0\xA7\xFC=f\xC8~t\x9CI\xBF@\x80\xBE&lt;T\xE1]\xE0s\xE9\x95K\x81\x93\xFE\x9D\xE5o3CK\x8F[ʜ\xF4/
+\xE8/\xA7r\xD8Oz\xD3R\xEF\xA4c@\xF9;͐\xC06\xD2S\x96\xAA'\xFD{\x86\xC8\xDFl\x86V\x97^\xB0\xD4&gt;\xE9\xDF0J\xFE~3\xE4\xC0~\x8E3\xE9З\xC7&quot;\x80*|\xA2 |.=\Y\xE4\xA4\x8D\xC0(\xF9\xFB͐\xC0Z\xD2{\x95\xA5N\xFA\x97         \x94\xBF\xE5 9l#=e\xA9wҿ1`\xA0\xFC-g\xC8`u\xE9KՓ\xFE\xBDc\xE5\xEF:C\x8BJWj\x9F\xF4o.\xE3r`        Ǚ\xF4 \xE8\xCBc@&gt;\xD1ƈ\xF1҃\x99\x96? \xB0\x91\xFC\x8Dg\xC8`        \x93\xEC\xEF\xD2k\x99\xF6?\xB0\x8B\xFC\xBDg\xC8\xA0\xB2ٖw\xE9\xB5L\xAF\x9F X_\xFE\xF63\xE4PМ\x9B\xBB\xF4T\xA6\xFB\xAC,\xFBr\xA8c\xF2\xA9]z*3\xE8\xC7֔\xBF
+90\xAB\xE3L\xFA\xF4\xE5\xB1\xA0
+\x9F\xE8c\x94٥w2\xA3^`5\xF9;А\xC0\xAC
+m\xEB\xD2#\x99\xCCO
+,%r\x98L\xC5U]z$\x93\xFCفE\xE4\xEFCCs\xA8\xBB\xA7K/d\xA6\xB8@y\xF9\xFBА\xC0\xF4\x8E\x8D~y\xF9\x91̧g\xF0f\x94\xBF
+90\xD0l\xEFX\xF3XP\x85Ot\x80y\\xA6X\xD2\xF3\x98'r݀\xE9\xE4\xEFFC\x93)\xB1%\xFC\xE7\xA5\xE6\xE71
+N\xF0\xC9ߍ\x86\xE6PhKx\x97\xDE\xC648\xE9KL#Cr\x88\xAA\xB8%\xBCIcڜ\xF4U\xA6\x91\xBF!
+9$\xD4\xDDޤW1mN\xFA*3\xC9ߓ\x86\xF8L\xB9w,my,\xA8\xC2'\xBA\xC0&lt;.
++&lt;\xB0\xA4W1
+N\xFA\x93\xC9ߖ\x86\xFA[fKx\x93\x9EĴ9\xE9\xABL&amp;[r\xE8f\xB1-\xE1]z\xD3\xE0\xA4/!0\x9F\xFC\x9Di\xC8\xA0\xB5U\xB7\x847\xE9=L\x83\x93\xBE\x84\xC0\x94\xF27\xA7!\x80F\xD6\xDEޤ\xC70mN\xFA*S\xCAߜ\x86\xF8˒\xEFX\xAE\xF3XP\x85Ot\x80y\\xAE\xF2\xC0\x92\xC348\xE9K\xCC*rx\xCBV[›\xF4\xA6\xCDI_E`V\xF9\xFBӐ\xC0+6\xDCޤg0mN\xFA*\xCBߢ\x86.\xD8vKx\x97\x9E\xC148\xE9K\xCC-\x97rxΖ\xF0&amp;\xBD\x81is\xD2W\x98[\xFE.5䰇m߱\xDCx,\xA8\xC2'\xBA\xC0&lt;.
+wz`Io`\x9C\xF4%\xA6\x97\xBFQ
+9\xFCaK\xF8\xAD\xF4\xA6\xC1I_B\xA0\x82\xFC\xBDj\xC8؞-\xE1\xD2\xEB\x976'}\x81
+\xF2\xF7\xAA!`W\xB6\x84W\xA4\xD7/
+N\xFAE\xE4oWC\xC0fl        \xAFKO_ڜ\xF4U\x8A\xC8߮\x86\xCA\xF2\x8E؜\xC7&quot;\x80*|\xA2 \xCC\xE3Ҁ\xD0\xCB\xE9\xDDK\x9B\x93\xBE\x8A@\xF9;֐\xB04[·\xA5w/
+N\xFA\xA5\xE4oZC\xC0\x8Al        ?\x94\xBD\xB49\xE9\xAB\x94\x92\xBFi
+9\xF0?\xF6\xEDv7r\I\xA8\xDF\xFF\xA5g1=\xDB\xD5vۥ*R\x8Cd\xF2ğ\xEE\xF6\xC8YX}A\x8D\xE8Β.\xBDLHz\x85\xC0n\xF2\xE7\xAD%؟.\xE1\\xE9\xC6˄\xA4Wl(\xEAZ*q\xC7\xCEc\xC0.\xBC\xD1\xEA\xB8T \xF4\xC0\xF2\xA2t\xDDeN\xD2[6\x94?u-        \xC0nt        o\x95\xAE\xBBLHz\x85\xC0\x9E\xF2g\xAF%؄.\xE1\xE9\xAE˜\xA4\xB7\xEC)\xF6Z\x80\xDAt        WJw]&amp;$\xBDB`[\xF9ؒ\x94\xA4K\xB8^\xBA\xE82!\xE9;˟Ö\x84\x9B\xB9c\xE7\xB1`\xDE\xE8u\*z`\xB9A\xBA\xE52'\xE9-;˟Ö\xA0]¸t\xCBeB\xD2+6\x97?\x8D-        @\x8E.a\xE9\x8A˄\xA4W\xEC/&amp;[\x80\xE5t        KI\xF7[\xE6$\xBDE`\xF93ْ\xAC\xA2KXS\xBA\xDF2!\xE9-\xE4OfK\xC2\xEBܱ\x87\xF3X\xB0 ot\x80:.=\xB0\x84\xA4\xCB-\x92^!\xD0E\xFE|\xB6$\xF7\xD0%\xDCB\xBA\xDC2!\xE9]\xE4\xCFgK0\x95.\xE1F\xD2͖        I\xAFh$J[\x80t        \xB7\x93\xAE\xB5\xCCIz\x8B@#\xF9Sڒ \xD0%\xDCW\xBA\xD62!\xE9\xBD\xE4\xCFjK\xC2/\xEEX\x80\xC3y,؅7\xBA@\x97
+\x84X
+KwZ&amp;$\xBDB\xA0\x9D\xFC\x89mI.\xD3%\xEC!]h\x99\x93\xF4\x81v\xF2'\xB6%xF\x97\xB0\x99t\xA1eB\xD2+:ʟۖ\xE0\xBA\x84-\xA5\xDB,\x92^!\xD0T\xFE\xF4\xB6$\xD2%\xEC-\xDDf\x99\x90\xF4
+\x81\xA6\xF2\xA7\xB7%\xE9\xCB p8\x8FE\xBB\xF0F\xA8\xE3R\x81\xD0\xCB\xE6\xD2U\x96        I\xAF\xE8+\x86[\xE0l\xBA\x84\xE7H\xF7X\xE6$\xBDE\xA0\xAF\xFCnI\xBAj\xFC\xA7\xC0 \xBA\x84J\xF7X&amp;$\xBDB\xA0\xB5\xFCInI6u\xCE_
+S\xE9+]b\x99\x90\xF4
+\x81\xEE\xF2\xE7\xB9%\xD9\xC29)\xDCC\x97\xF0p\xE9˜\xA4\xB7t\x97?\xCF-IA\xE7\xFC\xA5/\xF2&quot;`\xDE\xE8u\xE8\xF2\x9Ft\x83eB\xD2+\x90?\xD5-I\x87\xFC\x99\xB0\x8A.!\x8F\xD2\xF5\x95        I\xAF8C\xFEl\xB7$'\xECΠK\xC8_\xA5\xEB+\x92^!p\x86\xFC\xD9nI\xDA/\xBA\xD3%\xE4\xE9\xEEʄ\xA4W#\xC2[\x92\xC6 \x80\xD6t        y*\xDD\xF4\x81c\xE4OxK\xD2ri\xFB\xF0&quot;`\xDE\xE8u\xE8r]\xBA\xE31!\xE9'ɟ\xF3\x96\xA4ߖ\xA0#]B^\x95\xEExLHz\x85\xC0a\xF2\xA7\xBD%\xE9\xB4hG\x97\x90\xB7\xA5\x9B\x92^!p\x98\xFCioIzlz\xD1%dP\xBA\xEC1!\xE9\xE7ɟ\xF9\x96d\xF7
+@#\xBA\x84L\x91\xEE{LHz\x85\xC0\x91\xF2'\xBF%\xD9\xF7\xAF\xA8ʋ\\x80]x\xA3 ԡK\xC8\\xE9\xD6DŽ\xA4W)\xF2[\x92\xED\xFEX\xE8B\x97\x90;\xA4\xBB\x92^!p\xAA\xFC\xF9O\xFE \xB4\xA0K\xC8}\xD2\xF5\x8F9Io8U\xFE\xFC'\xBF\xFB\xD3%d\x81t        dB\xD2+\x96?\x8A\xAB\xDB\xD3%d\x99tdB\xD2+Ζ? \x80b\xBC\xC8؅7\xBA@\xBA\x84\xAC\x97.\x84LHz\x85\xC0\xD9\xF2g\xC1#;\xD3%$%\xDD        \x99\x90\xF4
+\x81\xE3\xE5O\x84'v\xA6KHV\xBA2!\xE9(\xAE
+lK\x97\x90&quot;\xD2\xFD\x90        I\xAF@\xA9\xF0\xE6\xC0\xB6t        )%\xDD\x99\x90\xF4
+~ɟ\x9B\xA0/rv\xE1\x8D.P\x87.!\xA5\x8B&quot;s\x92\xDE&quot;\xC0/\xF9\xD3a\xAF\xC0\x9Et        \xA9,\xDD\x99\x90\xF4
+~˟[\xF6\xA4KH}\xE9\xDEȄ\xA4W\xF0 R\xDC&lt;\xB0!]B6\x92n\x8FLHz\x85\xF2'\xC5=\xD2%d;\xE9Ʉ\xA4W\xF0\xA7\xFCyq\xAB\xE0E.\xC0.\xBC\xD1\xEA\xD0%dS\xE9&amp;Ʉ\xA4W\xF0E\xFEԸI`7\xBA\x84\xEC.\xDD'\x99\x90\xF4
+\xBEȟkv\xA3KH\xE9VɄ\xA4W\xF07\xF9\xB3c\xC9\xC0nt        \xE9$\xDD-\x99\x93\xF4\xFE&amp;v\xAC؍.!-\xA5K&amp;\x92^!\xC07\xF2'\xC82\xC8\xF1&quot;`\xDE\xE8u\xE8\xD2X\xBAd2!\xE9|/\x8E\xAC\xA8M\x97\x90\xA4&amp;\x92^!\xC0\xF7\xF2\xE7\xC8b\x80zt        9G\xBA[2!\xE9\xFC(\x9A\xAC\xA8A\x97\x90Ӥ[%\x92^!\xC03\xF93e\xC9@\x8E.!\xC7JWJ&amp;$\xBDB\x80\xE5O\x93\x850Ƌ\\x80]x\xA3 ԡK\xC8\xE1\xD2e\x92        I\xAF\xE0\xF9\xE4&amp;\x80\xFB\xE9\xC2\xD2M\x92Ѥ\xF7\xF0E\xFEԸg\xE0\xBA\x84\xF0(] \x99\x90\xF4
+~˟\xF7L\xA2K_\xA5\xAB#\x92^!\x80.\xE1\xEC\xC0]B\xF8A\xBA72!\xE9˟\xFB8\x9E\xB9\xBB\xF0F\xA8C\x97\x9EJ7F&amp;$\xBDB\xE0H\xF9\x93\xDF\x80 t        \xE1\xA2tWdB\xD2+\x93?\xED\x9D\xF8\x86.!\xBC*]\x99\x90\xF4
+\x81c\xE4Ox\xE8\xC2{\xD2\x91        I\xAF8@\xFET'\xBF\xC0\xD9t        aP\xBA2\x9A\xF4\xFE\x80\xD6\xF2'9\xF9[\x80\xFDy\x91 \xB0 ot\x80:t        a\x8At-dB\xD2+\x9Aʟ\xDE\xE4\xC7p]B\x98(]\x99\x90\xF4
+\x81v\xF2'6\xB9\xFA\xD2%\x84;\xA4\xDB \x92^!\xD0E\xFE|&amp;o\x80^t        \xE1&gt;\xE9Ȅ\xA4W\xB4\x90?\x99\xC9X؟.!\xDC-\xDD\x99\x90\xF4
+\x81\xCD\xE5Oc2/@
+^\xE4\xEC\xC2]\xA0]BX&amp;]\xFF\x98\x90\xF4
+\x81m\xE5O`rO؄.!,\x96n}LHz\x85\xC0\x86\xF2\xA7.\xB9?\xA6K)\xE9\xCA\xC7h\xD2\xFBv\x93?o\xC9\xC2P\x8C.!d\xA5\xCB\x92^!\xB0\x89\xFC\xE9JB\xA0]B\xA8 ]\xF3\x98\x90\xF4
+\x81\xE4\xCFUU\xB8\xF8a\xF40\x89\xB9\xBB\xF0F\xA8C\x97JIw&lt;&amp;$\xBDB\xA0\xB6\xFCYjF\xF7-~T=\xC0B\xBA\x84PP\xBA\xDD1!\xE9\x85\xE5OQS\xCBn\xF1\x83\xECn\xA6Ke\xA5{\x92^!PR\xFE\xE4t[\xC1-~\xC0m\xC0l\xBA\x84P_\xBA\xD11!\xE9\xC5\xE4OK\xF7\xD7\xD9\xE2\xC7\xDF&amp;̠K\xBBHw9&amp;$\xBDB\xA0\x92\xFC9ia-\xFE\xE7\xB4        \xF0\x9B\xB9\xBB\xF0F\xA8C\x97\xB6\x93.r\x8C&amp;\xBD?\xA0\x8C\xFC        )QX\x8B\xFFum\xC0+t        aS\xE9
+DŽ\xA4W\x90?\xA5j\xF1\xBF\xB7GxF\x97\xB6\x96.oLHz\x85@\xF9SQ\x8D&gt;Z|=\xC0\xDF\xE8B\xE9\xE6Ƅ\xA4WD\xC5OB\xD5\xC4\xD2#\xFC\xA6K\x9D\xA4;\x92^!\x90\xA3q\xF6\x9D\xFC\xB9\xB9E\xA0/rv\xE1\x8D.P\x87.!\xB4\x94.l\x8C&amp;\xBD? G\xBF\xECg\xF93t\x97F\x97K\xF74&amp;$\xBDB D\x95\xEC\x8A\xFCI\xBAK\xA0K\xED\xA5\x92^!\xA28v]\xFET\xDD%M\xE9\xC29\xD2\xF5\x8CѤ\xF7\xE4舽*\xCEn\x80Ft        \xE14\xE9bƄ\xA4W䨃\xBD!\xDAn(Ƌ\\x80]x\xA3 ԡKgJW2&amp;$\xBDB\xA0\xB7(\xE5O\xDE-pY\x9Dʞ.!.\xDDǘ\x90\xF4
+\xF6\x94?\xB7\xC0\xF7JU\xF6t        \x814
+\x97?\x8Bw        \xC0o\xD5*{\xBA\x84\xC0\xA3tc4\xE9\xFD\xEC/.\xEF\xE0`+{\xBA\x84\xC0W\xE9\xF6ń\xA4W\xDC\xCB\xCB&quot;\xF9\xD3y\x97\xC0l\x8Bv\xE1\x8D.\xEBR[o\xEDs\xC1\xF5C\xF2\xC0\xA7I\xF7.&amp;$\xBDB\x80^\xF2\xE7\xF5\xBA\xABY\xD9\xD3%\x9EJ\x97.F\x93\xDE@G\xF9\xB3{\x8B픭\xEC\x95=0\xA0\x9At\xDDbB\xD2+h*\x82o\xA0\x85\xB2\x95\xBD\xB2Ԕ.ZLHz\x85\xAD\xE5O\xF3-\xEC\xE9վ\x9E.!P_\xBAe1!\xE9\xEFsDz\x87\xFC\x99\xBEK\xE0 \x8FE\xBB\xF0F\x8Er\xA9\xA1\x97{.({`\xC0\xD2\xE5\x8A        I\xAF\xE0 \xF9\xF3}\x97%\xBDW$\xD4%\xB6\x93nV\x8C&amp;\xBD?\x80\x93\xE4\xCF\xFA]\x94\xA1K%ݩ\x98\x90\xF4
+Γ?\xF7\xB7\x90\xF3v\x91P\x97\xD8Z\xBAM1!\xE9\x9C*h`\xA1\x91&quot;\xA1.!\xD0C\xBAJ1\x9A\xF4\xFE\x80o\xB9c9B\xFE:\xD0&quot;4\xE5\xB1`\xDE\xE8@{\x97Zy5\x9E \xCA\xD0F\xBAD1!\xE9/)h`6]B\x80\xAF\xD2
+\x8AѤ\xF7\xC0/\xF9 B\x8B\xC3Ƌ\x84\xBA\x84@c\xE9\xEEĄ\xA4W\xC0o\xF9kB\x97/\x9AR$\xD4%\xDAKW&amp;&amp;$\xBDB\xFE\x94\xBF2t        p\xC1\xD3&quot;^\xB5ʞ.!\x90\x95\xEEK\x8C&amp;\xBD?8\x94;\x9E\xC8_\xBA\x80\xAA&lt;\xEC\xC2]\xE8\xEA\xCA\xDD\xFE\xD3\xFF\xCD\xE2炋\xC7\xE3\x81\xB8U\xBA)1!\xE9\xF0\xBD\xFCU\xA2E\x80_.\xB6\xF0\xAAU\xF6t        \x81:\xD2\x89        I\xAF\x80g\xF2׊\x80S]\xAF\xE0U\xAB\xEC\xE9\xA5 \xA3I\xEF\x80k\xF2W\x8C\x80\x93\xE8L\x97\xAEFLHz\x85\\x96\xBFh\xB4\xB4\xF6R\xFF\xAEZeO\x97\xA8/݋MzА;tt        \xB7\xF1X\xB0 ot\xA0\x93W\xEF\xF0\x9F\xFE\xEF?\&lt;,@\\xBA1\x9A\xF4\xFExK\xFE\xD2%\xB0\xB37\x9Aw\xD5*{\xBA\x84\xC0^\xD2E\x88        I\xAF\x80w\xE5\xAF!]\xBB\xD1%HI\xB7 F\x93\xDE\xC3\xF2\x93\x80\xF2ޫ\xDDU\xAB\xEC\xE9[K\xF7&amp;$\xBDBf\xC8_OZ\xEAy\xBBsW\xAD\xB2\xA7K4\x90n&gt;LHz\x85\xB0w,\x94\x96\xBF\xAA\xB4?\xF2X\xB0 ot`w#w\xF5O\xFFo?\&lt;,\xC0ҵ\x87Ѥ\xF7\xC0l\xF9kK\x8B@\x88.!@e\xE9\xC2Ä\xA4W\xC0
+\xF2\x97\x97.\x80%\xDBv\xD5*{\xBA\x84@c\xE9\xAA\xC3h\xD2\xFB\xE06\xF9\x8BL\x97\xC0=ƫv\xD5*{\xBA\x84@{\xE9\x92\xC3h\xD2\xFB\xE0f\xF9KM\x97\xC0&lt;\xBA\x84\xCB `\xAEt\xBDaB\xD2+\x84Bܱ\xD0Y\xFE\x82\xD3&quot;\xDDy,؅7\xBA\xB0\xA9)7\xF3O\xFF\x91\xC5\xCF\x8F\xC7 \xD0F\xBA\xDB0\x9A\xF4\xFEX(\xD9ixŬ\x92]\xB5\xCAޫ]\xC2\xFB,\xFB\x93\xFEٿQ\xF8\xA1Tp\x9A\xFC\x95\xA7E\xE0G{pՊuc\xFD\xBF\x99\x96\xFD\xC9\xFF\x93\xEE3LHz\x85$\xE4\xAF?-_L\xEC\xC1U+֍\xF5\xFFfZ\xF6'|\x95.3\x8C&amp;\xBD?r\xF2W\xA1\x80\xA9E\xC2+\xFF\xDA\xE2b\xDDX\xFFo\xA6\xC7C\xFAt\x84F\xA3ѸfL\xD7&amp;\xA4\xC8&amp;\x8DƻǏg*\xA4\xD1'_UN\x91\xD4h4\x8DF\xA3\xF1\xC7\xF1gE\xD2h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8D\xCF\xFC\x941\xFD\xFE\xE9?\xB8\xF8\xB9\xE0\xE2\xF1,\xF0xH\x9F\x8E\xD0h4\x8F\xE9\xC3h\xEAl\xD2h4\x8D\xB1q\xE6\x85\xE5\xEC\xF9A\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1\xD8k\xAA\xF9x\xE6\x8E\xF3\xED\xF9=\x8Fg\x81\xC7C\xFAt\x84F\xA3\xD1\xD3Յ\xD1\xD4٤\xD1h4ã\xCCJ\x91\xD4h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8D\xFB\x8F@5\xCF\xDC\xF1o\xBE\xFD/\xBF\xE7\xE2\xF1,\xF0xH\x9F\x8E\xD0h4\x83c\xBA\xB40!E6i4\x8D\xC6*\xA3\xCCH\xA1\xD4h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8D\x8E@)\xCF\xDC\xF4ώ\xFC\xE3\xF7\xCF\x8F\x87\xF4\xE9\x8DF\xA3\xB1˜/-\x8C\xA5\xCE&amp;\x8DF\xA3\xD1Xg\x9Cw\x9D9;e~P\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\xEE2u|&lt;s߿&lt;\xF8\xEF\xDFt&lt; &lt;ҧ#4\x8D\xC6:c\xBA\xAB0!E6i4\x8E\x8C\xCFT8H\xA3q\xBFq\xE6\xD5\xE6\xE0\xD4\xF9A\x8DF\xA3\xD1h4vV\xE4 \x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1\xF8\xF1\xCC?@\xDA}7\xEDO\x9F?\&lt;\x9E\xE9\xD3\x8DFc\xC11]TM\x9DM\x8DF\xA3\xB1\xE28\xE7js|\xEA\xFC\xA0F\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h,6E|&lt;s\xEB?&gt;\xFE\x9F\xB8\xE3xx&lt;\xA4OGh4\x8De\xC7tEa8e6i4\x8Dƺ\xE3\x8C \x8E\xFC\xF3\xB0\xDBZ\xBF\xAF\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4#P\xC1\xC73w\xFF\xFBS\xFE+ӏg\x81\xC7C\xFAt\x84F\xA3\xD1X|L7&amp;\xA4\xC8&amp;\x8DF\xA3\xD1X}\x94Y)\xF2\x83\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA314q\xCF,\xF8O\xCC\xFA\xCD=\x9E\xE9\xD3\x8DF\xE3.c\xBA\x960\x9C2\x9B4\x8DFc\xFDqʕG\xFE]k\x8D\xD4h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8D+G \xEE\xE3\x99\xFF\x89Y\xFF\xA1\xB9dz\xC0\xE3!}:B\xA3\xD1h\xDCk\xCCw\xC6Rg\x93F\xE3\xB7\xFF_\xF6L\x85\x834O']\x85\x8EO\x99\xD4h4\x8DFc\xFD\xF1gE\xD2h4\x8DF\xA3\xD1h4\x8DF\xA3\xD1h4\x8D\xCF\xFC$\xAC\xB9W\xFA_Y\xFC\p\xF1xX\xF6'\xAC\x91\xAE&quot;LHz\x85l+kn\xB0\xAC\xE9V\xADX7\xD6\xFF\x9Biٟ \xB0X\xBA\x870\x9A\xF4\xFE\xD8\\xFER\xD6&quot;̰\xB2\xE6V\xADX\xA7\xF1\xB0F\xBA\x810!\xE9\xB0\xBF\xFCլEx\x97.\xA1.!\xC02\xE9\xFA\xC1h\xD2\xFB\xA0\x8B\xFC5\xADK\xB8fq{\xAEZeO\x97 &quot;\xDD:Mz\x9C\xCE t\x93\xBF\xB2u        p \x8FE\xBB\xF0F\xEAX\xFE\xF4\xBF\xB8\xF8\xB9\xE0\xE2\xF1x`\xB8C\xBAo0!\xE9\xD0N\xFE\xE2\xD6%&lt;Xߛ\xABV\xD9\xD3%\xA8 ]6Mz\xF4\x95\xBFʵ\xC0\xD9&quot;\xBD\xB9j\x95=]B\x80:\xD25\x83Ѥ\xF7@w\xF9k]\x8B&amp;U\x9A\xABV\xD9\xD3%\xA8&amp;]0\x98\x90\xF4
+8@\xFEr\xD7&quot;\xDDs\xD5*{\xBA\x84e\xA5\xDB\xA3I\xEF\x8F\xCEܱ\xC8_\xF4Z؊\xC7&quot;\x80]x\xA3 q\xC1\xDB\xF2\xA7\xFF\xE9\xC5\xCF\x8F\xC7 @J\xBAW0!\xE9p\x92\xFCu\xAFK\xF6\x97\xAD\xCBU\xAB\xEC\xE9\xEC&quot;\xDD(Mz\x9C'\xF5\xEB\x80
+Żr\xD5*{\xBA\x84{Iw        F\x93\xDE\xA7\xCA_\xBB`\xF1\xA2\\xB5ʞ.!\xC0\x8E\xD2-\x82        I\xAF\x80\x83\xE5/\x83]Pثչ\xFA/dʯ\xC0,\xE9
+\xC1h\xD2\xFBcW\xEEX\x80\x99\xF2\xD7\xC3\xD6\xF2X\xB0 ot \xE8R_n+\x8B2\xE5W`\xAEty`4\xE9\xFD\xC0o\xF9\xABb\x8BpG\x9B/k\xF1B\xA6\xFC
+\xDC!]\x98\x90\xF4
+\xE0A\xFE\xC2\xD8&quot;!w\xB4\xF9\xB2/dʯ\xC0\xADҝ\x81Ѥ\xF7_\xE4/\x8F-\xB0\xD0m\xBE\xAC\xC5 \x99\xF2+\xB0@\xBA-0!\xE9\xC0\xDF䯐]p\xA7;\xDA|Y\x8B2\xE5W`\xA5tO`4\xE9\xFDQ\x91;\xA0\x8A\xFCu\xB2K\x80y,؅7\xBAt\xA9/\xB7\x95\xC5 \x99\xF2+\xB0^\xBA!0\x9A\xF4\xFE\xE0\x99\xFCղKf\xB8\xA3͗\xB5x!S~R\xD2݀        I\xAF\xAE\xC9_3[\xE0]w\xB4\xF9\xB2/dʯ@\\xBA0\x9A\xF4\xFE\xE0\xF9+g\x8B\xBC\xE2\x8E6_\xD6\xE2\x85L\xF9(&quot;]        Mz\xF0\xBA\xFC\xF5\xB3E\x9E\xB9\xA3͗\xB5x!S~\xAAI\xF7F\x93\xDE\xAB\xB9c\x9A\xC8_B[\x8E\xE4\xB1`\xDE\xE8\xC0\xC9.\xF6&gt;\&lt;,'H7F\x93\xDE \xC8_H\xBB\xA0\x86j\x95=]B&gt;IF\x93\xDE \xCB_N\xBB \xA7ZeO\x97\x80錄\xFEMz0C\xFE\x8A\xDA%kU\xAB\xEC\xE9\xF0\xB3\xF4w\xFF\xA3I\xEF\xA6\xCA_Z[\xE0~\xD5*{\xBA\x84\\x91\xFE\xE2B\xD2+d&amp;w,\xFF\xCA_][\xF6\xE4\xB1`\xDE\xE8\xC0\xC9.\xF6&gt;\&lt;,\xFC'\xFD\xB9\xFFh\xD2\xFB\x80{䯱-0O\xB5ʞ.!oH\xE8?\x9A\xF4\xFE\xE0N\xF9+m\x8B\x8C\xA9V\xD9\xD3%`D\xFA+\xFFѤ\xF77\xCB_l\xBB\xE0E\xD5*{\xBA\x84\x8CK\xDC?\x9A\xF4\xFE`\x89\xFC%\xB7K.\xA8V\xD9\xD3%`\x96\xF4g\xFD\xA3I\xEF\x8F\xB8c\x95\xBF\xF0v        \x84x,؅7\xBAp\xB2K\x85\xBD\x85\xCF\x8F\xC7 ץ\xBF\xE9Mz\xB0\\xFE\xF2\xDB&quot;\xAAU\xF6t        \xB8I\xFAk\xFEѤ\xF7!\xF9\x8Bp\x8BǫV\xD9\xD3%\xE0V\xE9\xEF\xF8'$\xBDB\xC8\xC9_\x87[8R\xB5ʞ.!k\xA4?\xE2Mz\x90\x96\xBF\xB7p\x8Cj\x95=]BVJ\xBE?\x9A\xF4\xFE\xF8\xEEX\xC2\xF2\xD7\xE4\x80\x8Bv\xE1\x8D.\x9C\xECRao\xE1s\xC1\xC5\xE3\xF1\xC0\xC0\\xE9o\xF7G\x93\xDE\x94\x91\xBF,w        \xD0K\xB5ʞ.!A\xE9O\xF6G\x93\xDE\x93\xBF8w        \xB0\xBFj\x95=]B\xE2\xD2\xEB\x8F&amp;\xBD?()\x89\xEE`O\xD5*{\xBA\x84ԑ\xFER4\xE9\xFD@a\xF9 u\x8B\xFB\xA8V\xD9\xD3%\xA0\x9A\xF47\xFA\xA3I\xEF\xEF\xEEX\xF6\x96\xBF\\xB7g\xF3X\xB0 ot\xE0d\x97
+{ \x9F .\x8FK\x9D?!\xE9\xC0\xF2W\xEC\xEA\xA9V\xD9\xD3%\xA0\xB8\xF4\xA7\xF9\xA3I\xEF\xF6\x91\xBFn\xB7PC\xB5ʞ.![H\x94?\x9A\xF4\xFE`7\xF9\xABw\x97!\xD5*{\xBA\x84\xEC%\xFD9\xFEh\xD2\xFB\x80
+\xE5/\xE0]L\x97\x80\xA5?\xC4Mz\xDBs\xC7p\xAE\xFCe\xBCK؜\xC7&quot;\x80]x\xA3 \xD4q\xA9@\xE8\x81\x80\x92ҟ\xE0\x8F&amp;\xBD?\xD8_\xFEz\xDE&quot;\xC0t        h \xFD\xFD\xFDh\xD2\xFB\x80\xF2\x97\xF4\x9A\xD2%\xA0\x8D\xF4\x97\xF7\xA3I\xEF\xC9_\xD8[hD\x97\x80~ҟݏ&amp;\xBD?\xE8%mo`s\xBA\x84t\x95\xFE\xE0~4\xE9\xFD\x95\xE6\x8E\x807\xE5\xAF\xF0]@\x9A\xC7&quot;\x80]x\xA3 \xD4q\xA9@\xE8\x81\x80m\xA5\xBF\xB3Mz\xD0W\xFE:\xDF%\xC0t        8D\xFA#\xFBѤ\xF7\xAD\xE5/\xF5]T\xA5K\xC0Qҟ׏&amp;\xBD?8C\xFE\x9A\xDF&quot;@%\xBA\x84(\xFDa\xFDh\xD2\xFB\x80\x93\xE4\xAF\xFC-\xA4\xE9p\xB2\xF4W\xF5\xA3I\xEF/\xC6 \xF9\x8B\x8B0\x83\xC7&quot;\x80]x\xA3 \xD4q\xA9@\xE8\x81\x80\xD6\xD2\xDFӏ&amp;\xBD?8R\xFE\xA0E\x80Ut        \xE0\xD2ӏ&amp;\xBD?8U\xFE.\xA0E\x80;\xE9\xC0'\xE9\xCF\xE8G\x93\xDE\x9C-/\xD0%\xC0T\xBA\x84\xF0W\xE9\xAF\xE7G\x93\xDE\xA0W8/\xC00]B\xF8Y\xFA\xD3\xF9Ѥ\xF7w w,\xEC'S\xD0%\xFC\xE2\xB1`\xDE\xE8u\*z`\xE0x\xE9\x8F\xE6G\x93\xDE\xF0\xA7\xFC\xDDA\x8B\x97\xE9\xC0u\xE9\xCF\xE5G\x93\xDE\xF07\xF9{\x84~\xA4KoH+?\x9A\xF4\xFE\x80o\xE4oZ\xF8B\x97ޖ\xFEJ~4\xE9\xFD?\xCA\xDF,\xB4\xF0\x8B.!\x8CK&quot;?\x9A\xF4\xFE^\xE6\x8E\x80\xE3\xE4\xEF\xBA\xA0 \x8FE\xBB\xF0F\xA8\xE3R\x81\xD0 \\x90\xFE2~4\xE9\xFD\xD7\xE4\xEF\xBAN\xA2Ks\xA5\xBF\x89Mz\xC0+\xF2\xF7]\xDD\xE9\xC0M\xD2ď&amp;\xBD?\xE0u\xF9;\x88\x80\x8Et        \xE0V\xE9O\xE1G\x93\xDE\xF0\xAE\xFC}D\x8B@\xBA\x84\xB0@\xFA#\xF8Ѥ\xF7\xF7\x99;xM\xFEn\xA2E*\xF1X\xB0 ot\x80:.=\xB0\xC0$\xE9/\xE0G\x93\xDE0,C\xD1&quot;\xB0]BX/\xFD\xED\xFBh\xD2\xFB&amp;\xC9\xDFVt        \x94\xA7KA\xE9\xAFއ\x92^0U\xFE\xE6\xA2K\xA0$]B\x88K\xEF&gt;\x9Aݗ0\xE5\xF8\xA0\x95\xFC\xFDE\x97@\xBA\x84PD\xFAK\xF7\xD1\xEC\xFB\xE7O\xF9\xF9\xA0\xB3\xFC\x8DF\x8BL\xE5E.\xC0.\xBC\xD1\xEA\xD0%\x80jҟ\xB9\x8Ff\xBB\xBFz\xEE\xCF\xCD\xE5\xEF5Z\x96\xD3%\x80\x9A\xD2\xB8\x8Ff\xA3\xBF\xF7\x8E\x9F\x8E\x90\xBF\xE3hXB\x97\x8AK\xDD&gt;\x94-\xFE\xCC\xFB~;8H\xFE\xBE\xA3E\xE06\xBA\x84\xB0\x85\xF4w\x{D8E9}\xFC.\xF8\xF9\xE0,\xF9[\x8F.\x80yt        `#\xE9\xCF\xD9GS\xF3O[\xF6\xF3\xC0\x89\xF27 ]\xF0'/rv\xE1\x8D.P\x87.!\xEC(\xFD-\xFBP\xAA\xFDE\x8B;8W\xFE6\xA4K\xE0u\xBA\x84\xB0\xAF\xF4W\xEC\xA3)\xF2\xB7\xA4~&gt;8Z\xFEN\xA4K\xE0]B\xD8]\xFA\xFB\xF5\xD1\xC4\xFF\x8A\xEC\xCF\xFC+K\xD2&quot;\xF0=]Bh#\xFD\xF1\xFA\xAEI\xFFn\xC0\x9F\xF2w-\xD2%\x80fҟ\xAD\xEF\x97\xF4/|/\xA7\xD0&quot;@G^\xE4\xEC\xC2]\xA0]B\xE8*\xFD\xCDz\xAB\xA4L@\xAFpR8\x95.!\xF4\x96\xFEZ\xBDI\xD2?#\xF0\xA7\xFC\xDDA\x97p ]B8A\xFA#\xF5\xED\x93\xFE\x80\xEF\xE5\xEF\xBA\x80\xD6t        \xE0(\xE9/\xD4wM\xFAw\xAE\xC9\xDF5t        \xED\xE8\xC0\x81\xD2ߦ\xEF\x97\xF4/\xBC%\xD1&quot;@I^\xE4\xEC\xC2]\xA0]B8V\xFA\xAB\xF4\x9D\x92\xFE\xAD\x80a\xF9\x8A`[\xBA\x84@\xFA\x93\xF4
+\x92\xFE\x89\x80\xA9\xF27-\xC0Vt        \x80\xFF\xA4?F/\x9D\xF4\x8F\xDC&amp;\xA3\xD1&quot;\x94\xA7K|\x92\xFE\xBDbҿ        \xB0D\xFE\xA6\xA3K\xA8G\x97\xF8\xAB\xF4赒\xFE5\x80\xE5\xF27 ]\xDCË\\x80]x\xA3 ԡK\xFC \xFD\xE9y\x95\xA4 *3\xD2%\xE4\xE8W\xA4\xBF;'\xBD~\xA0\x92\xFC\xBDI\x8B\xB0\x96.!p]\xFA\x8B\xF3Xҋ\xAA\xCAߧ\xB4\xF7\xD3%^\x95\xFE\xD6&lt;\x90\xF4\xCA\x80\xE4\xEFYZ\x80{\xE8oKh\xBE.\xE9M\xBB\xC9߿\xB4\xF0=/rv\xE1\x8D.P\x87.!0(\xFD\x89\xF9\x8A\xA4w \xEC,/\xD3% \xD0%fI\~cҫ\xBA\xC8\xDF\xD7t        /\xD2%\xE6JV~K\xD2K:\xCA\xDF\xE3t        \xE8wHP&gt;9\xE9u\xC8\xDF\xF2\xB4\xDF\xD0%n\x95\xFE\x9A|N\xD2[\x93\xBF\xFDih͋\\x80]x\xA3 ԡK\xDC-\xFD\xF9\x84\xA4W,+\xD4&quot;\xC7\xD3%\xEE\x96\xFEp|N\xD2[\xD0+\x9C\x80#\xE9wK,&gt;9\xE9u\xFC\x92\xBF-j\x80c\xE8wK ~K\xD2Kx\x90\xBF9\xEA\x80\xBEt        \x80\xBB\xA5\xBF\xBF1\xE9\xD5|\x91\xBFE\xEA\xA8͋\\x80]x\xA3 ԡK\xDC-\xFD\xF8\x8A\xA4w \xF07\xF9\xBB\xA4.؟.!p\xB7\xF4\x97\xDF\xEB\x92\xDE4\xC0\x8F\xF2\xB7K-\xB0']B\xE0n鯽W'\xBDo\x80 \xF27M-\xB0]B\xE0n\xE9/\xBCcI/\xE0\x9A\xFC}S\x8BԦK\xDC-\xFDUw8\xE9\xF5\xBC&quot;\xF7\xD4&quot;p?/rv\xE1\x8D.P\xC1ot        =\xB5/I\xC9]&quot;\xE9\xE0u\xF9{\xA8.\xC8y\xF8\x9A\xE9\xE56\xA1o\xA0\x80\x97\xA4?ݮ\x95\xF4\xAF\xF0\x96\xFCm\xD4\xFF\xB1w/Kv\xCDE\xF9\xFE/-G\x88\xD2oR\xEC \xCE)\xBBP\xB5V|\xE1\x81'\xEE\xCE\xF6  \x99)\xAE\x80}\xB4\xC7\xF4\xDA!\xA1\xD5'\xE0\xB8z]{\xC6\xD4\x80}3\xB5J.\xF6\xC9\xFA\xD2 W\x84֝\x80\xE3\xEA\xEDyS\xFFe\xCE\xD0wUK\xE0l_n-\xBDpHh\xCB        8\xA8^\xCB~@\xEA?\xC0I\xFA\xC6j\x89\xC0\xDF\xFD\xA7\xE1\xFC?\xC0,|\xD1*\xC7\xF6\x95\x8EZn\x8E\xA8W\xB1\x93\xFAp\xAA\xBE\xBDZ&quot;\xAF{eM\xE9\xD0\xA1\x9D&amp;\xE0\x88z\xFD\xFAa\xA9\xFF\蛬%p\x8C=&amp; Q\xAF\?5\xF5\xDF
+\xE0}\x9F\xB5J&gt;bw        \xA8\xD4;\xD6\xCFN\xFD\xD7\xB8R\xDFm\xAD\x80\xBFYYB\xF5^\xF5
+\xA9\xFF\x86\xD7\xEB{\xAEU\xC2~|\xA7\xFE\xF8\x87/\xBA\xC0\x9Dl*\xADz\x97z\x9D\xD4I\x80\xF5\xCD\xD7vb;        \x98_\xBDc\xFD\xB0\xD4.\x80{\xF5\xFD\xD7\x96f)        x\x84z\xAF\xFA\x91\xA9\xFFh\x85\xBE [&quot;\xC0Z\xEC&quot;O.R\xB7\xFF\xD7O\xF9\xF96\xD5\xF7bKx8+H\xC0\x83\x84\x9D\xCB ?ù\xBF\xC0\x8E\xFAvl\x89\xF0?\xBES\xFF\x80\xFC\xC3]\xE0֎\x80        \x97\xA9~\x98+~\x80\xED\xF4M\xD9*\xA6\x97\xEFY5^\xB6-\xFEH\xD7\xFDR\xDB\xE9[\xB3U\xCC'_,\xB2a\xBC*\xECY\xA6\xFD\xC1n\xF8\xED\xF6\xD2wg\xAB\x98@\xBEId\xB1xCذ\xCC\xFF\xDE\xF6;\xEC\xA5oӖɷ\x87,o\x96\xA7\xFC\x9C7\xFF\xA6{雵%~|\xA7\xFE\xF8\x87/\xBA\xC0E\xF2u!;D\xC0{\xC2n\xE5Y?m\xF5+l\xA4\xEFזp\x99|?\xC8\xEA\xF0\xB6\xB0Uy\xE8\x8F\xDD\xFE\xE2\xBB軶%\x9C'_\xB21\x8C\xFB\x94G\xFF\xF03\xFC\xFA\xBB\xE8{\xB7U \xC87\x80\xAC\x9B\xAB\xBB\xAD\xD1\xD4\xF5x\x94\xBE}[%\xC0+\xF2\x95\x9BA\xC0\x9D~|'\xFE\xF1\xFA\xB6\xEB\xFD\xB4\xA5x\xA4\xBE\x89[%\xBCb\xF2g\xFF\xE3\x8B.p\xA2|\xC7\xC7B\xC0\x9F\xEA\xB6k(u\xF1\x9E\xAC\xEF\xE6\x96\xF0\xBB|\xA9\xC7\xC0\xEA\xCEk4u\xFD\xAEo\xE8\x96G(\xC0\xEA\xF2E\xBB?G\xD4-\xD8P\xEA\xE2,\xA1o\xEB\x96\x8A\xB0\xA5|s\xC7\xCA\xC0K\xEA.l(u\xF1\xD27wKd+*\xB0\xB1\x8B7q~\xB2\xE9\xCC\xE8\xC7w\xEA\xF0\xF5\xCA\xF5h\xEA\xFA\xAC\xA5\xEF\xEFVɒ\xD4
+\xE0\xF9\x9E\xBE\xE8\xE4\xAE_\xBD\xB9\xFC\x96\xD0\xD3\xE0\xF6\xED\xEA3S`E}\x97\xB7J\xA0J\xFC\xED\xE2-\x92\xDF\xFEc'vU.u\xE3F\xF5\xF9\xA9\x8B\xB0\xAE\xBE\xD7[%\x8F\xA3&gt;\xFC\xEB\xE2\xE5\x91\xFE\xEDt\x8B*W\xBBw]\xF8\xE4\xD4\xC5\xD8@\xDF\xF4-\x91ɩ \xBF\xB8xg\xE43\xB6T\xEEЭ\x9F\x93\xBA~{\xE8\xFB\xBE%2\xE0w/\x8C\xDC}HhEx\xC3\xE7\xFF\x84ۗ\xE7\xAB׈\x87R`'}\xF7\xB7Dry&amp;\xA9\xC0\x8AvXt\xAEs٪\x88\x94`.\xF5&amp;\xF1P\xEA\xE2\xEC\xA7\xEF\x97\x88\xBF\x939{C\xC4!!\xC0\xA4\xEAM\xE2\xD1\xD4\xF5\xD8R\xDF\xAE\x92=\xFFLL\xE6\xBCݐ\xAF\xFE\xE1t\xAB(\x93\xA8\xF7\x89\x87R`c}3\xB8J\xB6\xFA\xBB0\x99\x93C&lt;F\xBDR&lt;\x94\xBAx\xDB\xEB[\xC2U\xB2\xC3\x80\xF9\x8C\xAD\x84\xDC\xFA\x8F\x8C\xFB\xB2\x81\xF9\xBB\x89\xD9@\xBDU&lt;\x9A\xBA~&lt;\xE4\x9C\xEDY\xB8\xF2 \xB3\xE8\x9C\xEE\xEDM\x90\xDB        \xB8B\xBD[&lt;\x94\xBAx\xFC\xA2o\x97\xC8b\xA5`J\xEFm\x82\xF8G        Po\xA5.\xE8\x9B\xC4%\xB2Fm\x98\xC9\xD82\xC8}\xB7\x84vO.U/\x8F\xA6\xAE\xE9\xFB\xC4%\xF2\xE8b0\x873\x96An\xBD%\xB4{p\xB5z\xD5x(u\xF1\xF8\\xDF-Jj'm\x82\xDC}Kh\xFD\xF1\xF9?\xAC\xFCo\xC3\xDF\xEAm\xE3\xA1\xD4\xC5\xE0;}\xCF(7\x80wYtƝ\xBD \xDCZB\xB8A\xBDs&lt;\x9A\xBA~з\x8Dr}(\\xB3 \xD2\xDC\xDAC\xB8G\xBDy&lt;\x94\xBAx\xD67\x8FrM\xB8ݕ\xFB \xD9-\xA1m\x80{\xD4\xFB\xC7C\xA9\x8B\xC0\xEB\xFA.R\xCE 7\xBAx$\xBE%\xB4\x90p\x8Fzy4u\xFDxK\xDFH\xCAX\xB8\xD7\xC5\xFB \xFD-\xA1\xB5\xE0k?\xBES\xFF\x80OR7}C\xA9\x8B\xC0\x80\xBE\x9D\x94\xB7\xC0\x8B,\xBA\x83.\xDE\x99\xE2\x96\xD0f
+\xC0m\xEA\xA6o(u\xF1\xD67\x95r8\xDC\xEB\xFA\x95\x90Yn        \xED\xA7ܦn\xFAFS\xD7\x803\xF4}\xA5|nw\xF1J\xC8\\xB7\x84\xB6T\xEET\xF7}C\xA9\x8B\xC0y\xFA\xEER&gt;
+\xB7\xCBwF,\xAA,\xAC\xEE\xFB\x86R\x80\xB3\xF5=\xA6\xFC
+\xF9ڈu\xE0~?\xBES\xFF\x80K\xA9\xFB\xBE\xA1\xD4\xC5\xE02}\xB3\xB9qx\x85E\xE0,\xF9ڈ\xA5\x80\xD4}\xDFh\xEA\xFAp\xA5\xBE\xDF\xDC/\xF2\xB5\x91&lt;ܦn\xFD\x86R\x80\xEB\xF5]\xE7 \x92o\x8E\xE4\xE0Nu\xF77\x94\xBAxܥ\xEF=\xD7
+\x9D|yd\x86p\xA7\xBA\xFBM]?nԷ\x9F\x8B\x80\xDB\xE5;#\xF3Xޏ\xEF\xD4?\xE0v\xEAp(u\xF1\xB8]߄.&gt;b\xD1\xB8B\xBE*2U\xB8Y\xDD\xA5.\x91\xBE]7\)_\x99-ܬnGS\xD7\x80Tߐ\xAEΖ\xAF\x84L\xEEW\xF7\x80C\xA9\x8B\xC0\xFA\xB6t\xE90,\xDF\x996ܯ\xEE\x87R\x80i\xF4\xCD\xE9\xEA\xE0-\xF9\xDE\xC7\xCC\xF0\xE3;\xF5\xC8\xD5=\xE0h\xEA\xFA0\x93\xBE?]=k\xB1\xE8\-_\xF7\x98&lt;$\xEA6p(u\xF1\x98Oߥn\xBE\x93\xAFx\xCCu8\x94\xBAx̪\xEFU\xF7\x98a\xA1#\xDF+\xB1{0\xAD\xBA
+M]?&amp;ַ\xAB\xDB\x80\xBFM\xB2\xBE\x91\xAF\x93X9\x98Y\xDD        \xA5.\xEB\xDB\xD5\xFD\xB0\xB1I\x965\xF2\x9B&amp;\xB0\x92ߩ@\xDEQw\x82C\xA9\x8B\xC0\x94\xFAFu\xEF\xCC\xC1\xA2 p\xA7y\xB63\xF2\xE5 &amp;\x93\xAB\x9B\xC1\xD1\xD4\xF5`&amp;}*\xBF`\xB3\xADc\xE4;#\xF6J\xE6W\xF7\x83C\xA9\x8B\xC0\xFA\xCET&gt;\xC0\xA2&amp;\\xBE\xC8WE\xAC\x93̯\xEE\x87R\x80        \xF4m\xA9 \xC0B\xE6\\xB5\xC87Dl\x91̯\xEE\x87R\x80Tߐ\xCA[x\xB8i+\xF2\xC5\xCB#\xF0,?\xBES\xFF\x80\\xA5n        \x87R\x80B߇\xCAp\xC6Xt\x93/S\xE4+!\xD6F\xA1n        \x87R\x80\xDB\xF5M\xA8\x9C\x80\x878\xB6
+\xF1\xCF\xE6\xE4\xDF\xFFy\xEB\xEAD\xBE        b[\xE0\xEA\x96p(u\xF1\xB8Q\xDF~ʕ\x98\xD8w\xBB?~\xBF%\xFC\xE6\x9C0\xFA!\xA7\xB9\xBA%M]?\xAE\xD7w\x9Drc&amp;\xF3\xF9\xA6Ï\x8Fn        ?\xBD(\xEC~Ή\xC0 \xEA\xAEp(u\xF1\xB8X\xDFrJ\x80\xDAGK
+\xFA\xF3\xD9\xECA\xE4\xEBVB`6\xB5.\xBFw-\xEC\xAA\xEE
+\x87R\x80\xCB\xF4ͦL`W]\x80\xDC\xEF[ ?M&gt;\xF9_6\x8B\xF9\xA2\x87e\x80\xA7\xA8\xBB\xC2\xD1\xD4\xF5\xE0}\x9B)\x93\xE0F\xFF\xEE,|\xFA\x9F9\xF9\xEC?~\xAE9\xE4\xFBv@\xA4n \x87R\x80S\xF5
+\xA6\xCC\x80\xEB\xBDqKX\xFF\xC0\xCF\x93\xA8á\xD4\xC5\xE0&lt;}w)\xCF        \xC0wK\xF8S\xBE\xCAa\xDD\xE0Y\xEA\xDEp4u\xFD\xD67\x95g|\xEB\xCC\x92=p\x86\x87\xDE\xFE\x94op\xD8\xF2\x80\xC4\xE7
+̌ \xB3\xA9\xDBá\xD4\xC5`L\xDFQ\x9E\xFA\x893\xFF\xC1\xF6 \xF04]\x80y&lt;\xFA\x96\xF0\xA7|w\xC3~\xC0\xE3\xD4\xED\xE1P\xEA\xE20\xA0o'/\xFB\xB2\x99\xFF\xA8{\xE0\xB0n        \xCAW6\xACu&lt;N\xDD\x8E\xA6\xAEo\xE9\xC9[&gt;h\xE6?\xFC\x9E\xF8ܷ\xFFr\xFASn        \xCA75ls&lt;Q\xDD!\xA5./\xEA[\xC8\xE2Sf\xFE\xBB\xEC\x80_,vK\xF8S\xBE\xA0a\x89\xE0\x89\xEAq(u\xF1xE\xDF?\xD6_0\xF3\xDFn\xCF{[\xF2\x96\xF0\xA7|/\xC3\xEE\d\xA5\x8E\x85        \xD5\xE2h\xEA\xFApL\xDF9N\xF3\xE12\xFFe\xF7 p\x8B.\xC0&lt;\xBE%\xFC)\xDFȰ\xB5\xF0Pu\x938\x94\xBAxз\x8DS~\xAF\xCC\xFD=l`\xF9[Ÿ\xF2E \xCBU7\x89C\xA9\x8B\xC0w\xFA\x9Eq\xFAϔyA\xF6 \xB0\xA2Mn        \xCA\xF7/\xECh&lt;T\xDD$\x8E\xA6\xAE_\xEA\xC6\xE7|\x9A̫\xB4g\x80%luK\xF8S\xBEva5\xE0\xB9\xEA&gt;q(u\xF1\xF8\\xDE-&gt;T^\xB7=&lt;ӆ\xB7\x84?\xE5\xDB62\xE0m\xFBt,L\xAB\xEE\x87R\x80O\xF89\xA8ﵷ \xF0\x8B.\xC0&lt;\xB6\xBD%\xFC)߳\xB0\x8B\xF0\u\x9F8\x94\xBAx|\xC2\xC7dz\xF4M\xF7\x96&amp;\xB6\xF9-\xE1_\xCF\xD9(`Nu\x9F8\x9A\xBA~|\xC4\xC7\xD3\xF5\xAD\xF7\x96f\xE2\x96\xF0\xA7|\xA5\xC2\xDA\xC0\xD3\xD5\xDD\xE2P\xEA\xE2\xF0\xDF\xAF\xD3\xF7\xE0[H\xB9%\xFCU\xBEIa\xDB\xE0\xE9\xEAnq(u\xF1\xF8\x84\x8BW\xEB\x9B\xF1-\xDC\xCB-\xE1\x9F\xF2
+K\xF05 \xF3\xAB\xBB\xC5\xD1\xD4\xF5\xE0\xBE$ޣo\xC9\xF7 \xACˢ 0\xB7\x84\x9F\xC9W'\xACW,\xA0n\x87R\x80\xC3|+\xBCNߘo\xE0n        \xBF\x96oLتX@\xDD0\xA5.̤\xEFз p\xB7\x84G\xE4\x8B\x96)P7\x8C\xA3\xA9\xEB\xF3\xE9\xFB\xF4-\xBC\xC5-\xE1q\xF9~\x84
+\x805\xD4=\xE3P\xEA\xE2\xC0\xC4\xFA\x86}\xCBǸ%|U\xBEaut,\xAC\xA1\xEE\x87R`w\x9EE\xCF\xD0w\xEE\xFB\xE6\xE3\x8B.0\x8FC\x84,\xC8&quot;,M\xAC\xA1\xEEGS\xD7\xA2o޷ \xF0 \xB7\x84#\xF2=\xBB˨\xDBơ\xD4\xC5\x80\xA7\xE9\xBB\xF8-{sK8._\xB0&quot;\xB0\x8C\xBAmJ]&lt;x\xAC\xBE\x9D\xDF2\xB0\xB7\x84gɷlF,\xA3nGS\xD7\xAEo\xEA\xB7 \xAC\xCE-\xE1\x89\xF2M lB\xC7\xC2&gt;\xEA\xCEq(u\xF1V\xE6Y\xB4\x97\xBE\xBB\xDF2p_t\x80y: \xF4`yE\xBE\xE0`        `1u\xF38\x94\xBAx\xB0\x96\xBE\xC7\xDF2\xB0\xB7\x84\xC9W\xAC?,\xA6nGS\xD7V\xD4w\xFA[\x9E\xC9-\xE1\xA5\xF2\x8D[\xEB\xA9\xFBǡ\xD4\xC5\x80\xA5\xF5-\xFF\x96\x80\x87pKx\x83|\x91\xC1\xB2\xC0z\xEA\xFEq(u\xF1`}\xEF\xBFe`Vn        o\x93\xEF/\xD8q`:\xF8\x9F\xBAM]?\x80\xA7\xF2,\xE2\xFD `\xCB\xB0=_t\x80y: \xF4`9O\xBE\xB6`\xB5`Iu 9\x94\xBAx\xB0\x9F\xFE\xB0e \xE5\x960\x91/,XjXR\xDDB\xA5.l\xACl\xB8\x97[\xC2P\xBE\xA7`\x97`Iu 9\x94\xBAx\xC0C&gt;^\xAF\xB8\x98[\xC2\\xBE\x9E`\x85`Iu 9\x9A\xBA~\xC0\xBF\xFA\xF7\xC1\x96\x80\xB3\xB9%\x9CD\xBE\x95`s\x80ѱ\xC0K\xEA.r(u\xF1&amp;\xE5YD\xA9(l\xCB]`\x87=X\xEE\x92/#XXXU\xDDE\xA5.\xF0\x89\xFE\xB9\xB0e\xE0-n        '\x94\xAF!XUXU\xDDE\x8E\xA6\xAE\xF0\xA5\xFEѰe\xE0\xB7\x84s\xCAWl(\xAC\xADn$\x87R8\xA6=l\xF8\x84[™\xE5\xB6\xD6V\xF7\x92C\xA9\x8B\xBC\xA8Fl\xF8\x97[\xC2\xF9\xE5\x8B\x96\x98\x8D\x8E\xCEU\x{1D28E9}\xEB\xF0,b\xFDcb\xCBp;_t\x80y: \xF4`\x99@\xBE_``yu;9\x94\xBAx\xC0\x98\xFEU\xB1_،[\xC2g\xC97 l,\xAFn'\x87R8C\xFF\xB6\xD82\xAC\xCE-\xE1\xE5 \x96\x96W\xB7\x93\xA3\xA9\xEB\x9C\xA7al\x96\xE3\x96\xF0\xB9\xF2=\xBB;\xA8;ʡ\xD4\xC5.\xD0?5\xB6 \xCF\xE7\x96\xF0\xE9\xF2\xF5+\xDCO\xC7\xF7\xAB;ʡ\xD4\xC58\x9Fg\xFC\xBF\xFEͱe8\xCC]`\x87=X\xA6\x97o
+\xD8,\xD8A\xDDQ\x8E\xA6\xAEp\xBD\xFE\xE5\xB1_x\xB7\x84+\xC9\xF7\xECl\xA2n*\x87R\xB8K\xFF\xFE\xD82\xCC\xCA-\xE1z\xF25\xAB\x9B\xA8\x9Bʡ\xD4\xC5n\xD7?D\xB6 \xD3pK\xB8\xAA|;\xC0\xC0&amp;\xEA\xA6r4u\xFD\x80H\xFF\xD92t\xDC\xAE-_
+\xB08\xC0t,0\xA7\xBA\xAFJ]&lt;\x80\xD7x\xC1\xF9\xFAwɖ؀/\xBA\xC0&lt;z\xB0&lt;Y\xBE`_`+u_9\x94\xBAx\xC04\xFA\xCA~\xE0bn        7\x91\xAF\xD8\xD8J\xDDW\xA5.0\x99\xFE\x99\xB2e8\x9B[­\xE4\x93\xDB\xBB\xA9\xBBˡ\xD4\xC5\xA6\xD4?V\xB6 \xC3\xDCn(\xF8[
+\xD8M\xDD]\xA5.0\xB7\xFEղex\x9D[\xC2m\xE5s~\xBB\xBCM\xC7Uw\x97C\xA9\x8B\xF0\xCF&quot;\x98W\xFF|\xD92\xF3E\x98ǡB\x96u\xE5\xE3}+\xBB\xA9\xBB\xCB\xD1\xD4\xF5\xA5\xC4\xEC&gt;ᖐ\xBF\xB2\xCB\xC0b\xEAs(u\xF1\x80\xEA\x9F2[\x80\xB9%\xE4\xF2y\xBE\x99?\xC0\x86\xEAs(u\xF1\x80'\xEB\xDF4[`cn        \xF9\x8F|\x8Co\xD4\xB0\xA1\xBA\xC1M]?\xE0\xF9\xFA\x97͖؉[B&gt;\x94O\xEFM\xF8\xF8\x82\x8EV\xF7\x98C\xA9\x8Blij\xD6\xD7?q\xB6 \xC0|\xD1\xE6q\xE8\x80ЃeW\xF9\xD0\xDE``Ou\x8F9\x94\xBAx\xC0\x8A\xFA\xB7\xCE~X\x8E[B\xBE\x95\x8F\xEB\x8D\xF4\xF6T\x{1D88E9}\xEB\xAC\xAB\xF1\xEC\x80\xE7sK\xC8A\xF9\x94\xDE$`[u\x9B9\x94\xBAx\xC0\xEA\xFAwϖx \xB7\x84\xBC$\xCE\xE0l\xABn3\x87R\xD8F\xFF\xDA2O\xE0\x96\x90W\xE5ys{t,\xB0\xB3\xBA\xCDM]?`\x9EE\xC0Q\xFD3h\xCB\xFC\xC2]`\x87=X\xF8C&gt;\x877\xAB\xD8\\xDDl\xA5.\xB0\xAB\xFE=\xB4_\xA6ᖐ\xF9ޔ`su\xB39\x94\xBAx\xC0\xF6\xFA\x87\xD1~\xE8\xB8%d\&gt;x7\x9C\xD8\\xDDl\x8E\xA6\xAE\xC0C\xBE\xF5\xAF\x80\xB9%\xE4,\xF9\xBC\xDDL\x80\xBA\xDFJ]&lt;\x80_\xF4\x8F\xA4-p%\xB7\x84\x9C+\xB3\xC5\xEC@\xC7|\xAD\xEE7\x87Rx\xCF&quot;\xE0n\xFDki\xCBK\xF0E\x98ǡB^\x94O\xD7M\xE0\xA8\xFB\xCD\xD1\xD4\xF5\xF8\\xFFf\xDA/\xC3\xDCr\x9D|\xAEn\xF6\xC0_?*\xAC\x8Bp@\xFFx\xDA/\xAFsK\xC8\xD5\xF2q\xBA\x91;\xB9(\xB8G\xFF\x84\xDA2\xB8%\xE4\xF9ݤ\x80\xBF\ܬKm\x80\x8F\xB8%\xE4N\xF9\xF0܀`
+:`P\xDDr\x8E\xA6\xAE\xD0\xF3,\x9E\xAAQm \xE5\x8B.0\x8FC\x84,\x9C*\x9F\x99\x9B\xAB\xF0S\xDDu\xA5.\xC0\xB0\xFEi\xB5_\x80\x8D\xB9%\xA4\x92O\xCBM\xD4\xF8\xA9\xEE:\x87R\xE0&lt;\xFDk\xBF;qKH(\x9F\x90\xA4\xF0?u\xD79\x9A\xBA~\xA7\xEA\x9FY[X\x9A[Br\xF9`\xDC\xF0\x80_ս\xE7P\xEA\xE2\\xA3om`-n        \x99D&gt;73x p\x83\xBA\xF7J]&lt;\xE0r\x9EE\xC0\xEE\xFA\x87ז\xDE\xE2\x8B.0\x8FC\x84,\xDC%\x83\x95\xF0\xAB\xBA\xF7M]?\x80[\xF4ϯ-&lt;\x8D[B&amp;\x94O\xBFM\xC8\xF8\x8F\xBA\xFDJ]&lt;\x80{\xF5\xEF\xB0\xFD&lt;\x81[B\xA6\x95Ͻ\xCD\xC6\xF8\x8F\xBA\xFDJ]&lt;\x80H\xFF \xDB/\xC0\x94\xDC2\xB9|\xDCm$\xC0\xD4\xED\xE7h\xEA\xFAt\xFA7ٖ\xE6\xE0\x96\x90Gȧ\xDC&amp;\xE1Sѱ\x93\xA8;С\xD4\xC5\x86x\x9C\xA3\x9Cm،/\xBA\xC0&lt;z\xB00\x87|\xB8m\xC0\x9F\xEAt(u\xF1fҿҶ p\xB7\x84&lt;N&gt;\xD36\xF7\xE0Ou:\x9A\xBA~\xF3\xE9\xDFj\xFB\xB8\x92[B*\x9Ff\x9Bx\xF0\xA1\xBA        J]&lt;\x80\x89\xF5\x8F\xB6\xFD\x9C\xCA-!\x8F\x96\xB1
+\xBA\xF8P݄\xA5.\xC0\xF4\xFA\xA7ۖƸ%d\xF9\xEC\xDA|\xE0f:\xE0)\xEA&amp;t4u\xFD\x80Oy̥\xC0mx_t\x80y: \xF4`az\xF9\xBC\xDAX\x80/\xD4}\xE8P\xEA\xE2&lt;M\xFF\x92\xDB2\xC0w\xDC\xB2\x92|Lm\x9A
+\xC0\xEA&gt;t(u\xF1\xAB\xD2\xED\xE0#n        YO&gt;\xA06\xC4\xE0 u+:\x9A\xBA~\xD7?\xEC\xF6 \xF07\xB7\x84\xAC*\x9FK\x9B]\xF0\xB5\xBAJ]&lt;\x80%\xF4ϻ-\xBBrK\xC8\xDA\xF2q\xB4\x915\xC0t,\xC0J\xEAnt(u\xF1`_\x9EEk\xEA\xDFy[.\xE6\x8B.0\x8FC\x84,&lt;\&gt;\x856\xA9\xE0ku7:\x94\xBAx\x8B\xEA|[\xD6喐}\xE4\xC3gj\xBEVw\xA3\xA3\xA9\xEB\xB0\xB4\xFEٷ_`-n        \xD9M&gt;v6\x9A\xE0[uC:\x94\xBAx{\xE8\xDF\xFB\xCE-!{ʧ\xCD&amp;\xD2|\xABnH\x87R`'\xFD+p\xCB\xC0Ӹ%dg\xF9\x90\xD9 \xE0=:`+uC:\x9A\xBA~\xB0&amp;\xCF&quot;\xBEҿ\xB7 |\xC2]`\x87=XXZ&gt;[6\xE0\x88\xBA'J]&lt;\x80\x8D\xF5\x8F\xC2-\xF3qK?\xE5#ecg\x8E\xA8{ҡ\xD4\xC5\xE0!\x91\xC5spK\xBFʇ\xC9\xCEQ\x{1E48E9}\xEB\xC0\xBF\xFA7\xE2~\x80\x88[B\xF8\x8F|\x80l\xCE \xC0qu[:\x94\xBAx\xFC\xAE)n\xB8\x8B[B\xF8P&gt;76^\xF8\x82\x8E\xE0?\xEA\xB6t(u\xF1\xE0\x91&lt;\x8B\xB8C\xFFd\xDC2,\xC7]`\x87=X\xD8U&gt;.6Rฺ3M]?\xBE\xD4?\xB7 \x9C\xC7-!|+\x9F\x9B$\xF0\x92\xBA9J]&lt;\x8E\xE9_\x90\xFBƸ%\x84\x83\xF2\xF9\xB02/\xA9\x9Bӡ\xD4\xC5\xE0E\xFDSr\xBF\xC0\x8B\xDC\xC2K\xF2\xB1\xB0\xD11/\xA9\x9B\xD3\xD1\xD4\xF5\xE0-\xFD\x83r\xBF\xC0w\xDC\xC2\xF2i\xB0\x891\xB09 \xC0\xEA\xFEt(u\xF1`:\x9EE&lt;I\xFF\xAC\xDC2L\xC3]`\x87=X\xE0#\xF9ؠ\x80W\xD5\xFD\xE9P\xEA\xE2p\x86\xFE}\xB9e\xC0-! \xCBg\xBF\xE6\xC3\xBC\xAA\xEEOGS\xD7\x80\xF3\xF4\xAF\xCC\xFD\xC0\xAE\xDC\xC2)\xF2\xA9\xAF\xC90o\xA8[ԡ\xD4\xC5\xE0\xFDss\xBF\xB0
+\xB7\x84p\xA2|\xD8k  \xC0\xEAu(u\xF1\xB8R\xFF\xEE\xDC/\xAC\xCB-!\x9C.\x9F\xF1\x9A\xCBӱ\\xA1nQ\x87R\xEE\xE6Y\xC0\x8E\xFA\xD7\xE7\x96`\x98/\xBA\xC0&lt;z\xB0\xC0\xEB\xF2Ѯ\xF1/嗢ԡ\xD4\xC5\xE0.\xFDt\xCB\xF0dn        \xE1R\xF9D\xD7\xD4\x80\xF7\xD4]\xEAP\xEA\xE2p\xBB\xFE1\xBA_x\xB7\x84p\xB5|\x90k\xDE \xC0\xDB\xEA.u(u\xF1\xE8\xF4\xAF\xD2\xFD\xC0\xF4\xDC\xC2=\xF2\xF9\xAD/o\xAB\xD5\xD1\xD4\xF5\xA0ֿM\xF7 \xF3qKw\xCAǶF\xBB\xC0t,\x95\xBAWJ]&lt;8\x93g\xBC\xAF\xA1n\x80\x8D\xF9\xA2 \xCC\xE3\xD0\xA1 \x9C*\x9F֚\xE80\xA2\xEEU\x87R\x80\xC9\xF4O\xD5-@\xC1-!T\xF2!\xADA.#\xEA^u4u\xFD\x98R\xFF`\xDD/\xDC\xC5-!\xB4\xF2\xF1\xAC.\x83\xEAvu(u\xF1\x98[\xFFr\xDD/\\xC6-!\xCC \x9Fʚ\xDC0\xA8nW\x87R\x80\x87蟰\xFB\x80\xF3\xB8%\x84y\xE4\xC3X[\xE0)t,Ӫ\xDB\xD5\xD1\xD4\xF5\x80\xA3&lt;\x8B\xA0׿b\xB7 \xC0\xF9\xA2 \xCC\xE3\xD0\xA1 \xDC(\x9F\xC1\x9A\xD30\xAE\xEEX\x87R\x80ꟳ[\x80W\xB8%\x849\xE5\xA3W\xE3Y\xC6\xD5\xEBP\xEA\xE2\xF0d\xFD\xBBv\xBF\xF0\xB7\x840\xB3|\xE8j0 \xC0\xB8\xBAcM]?\x9E\xAF\xDD\xEE\xFE\xE0\x96\xE6\x97\xCFZ\xCDc8Eݴ\xA5. 韹\xFB\xB7\x84\xF0\xF9\x88\xD5\x98\x87\x8E\xE0\xD1\xEA\xA6u(u\xF1\xE0\x9EE\xB0\x94\xFE\xBD\xBB_n\xE4\x8B.0\x8FC\x84,0\x87|\xACj\xFA
+\xC0Y\xEA\xA6u4u\xFDXT\xFF\xE4\xDD2{pK\x8F\x93OS
+]8Qݷ\xA5.\xAB\xEB߾\xFB`]n        \xE1\xA1\xF29\xAAY+'\xAA[ס\xD4\xC5`\xFD#x\xBF,\xC4-!&lt;Z&gt;&gt;5b\xE0Du\xEB:\x9A\xBA~l\xA6
+\xEF\x80'sK ȧ\xA6&amp;\xAB\xC0\xCDt,˫\xBBס\xD4\xC5` \x9EE\xC0\xFA7\xF1~8\xC0]`\x87=X\xE0        \xF2a\xA9\x81*窻ס\xD4\xC5`o\xFD\xCBx\xCB\xCC\xCD-!,&amp;\x9F\x91\x9A\xA3p\xAE\xBA{J]&lt;\xF8[\xFFD\xDE2\x93qKK\xCAG\xA3Ƨ\x9C\xAB\xEE^GS\xD7~\xD1?\x94\xF7 \xC0\xDC\xC2\xC2\xF2\xA1\xA8\xC1)\xA7\xABء\xD4\xC5\x80\x8F\xF4/\xE6\xFDPpK\xCB\xCBg\xA1\xE6\xA5\xC0\xE9t,\xD4
+\xECP\xEA\xE2\xB0\xCF&quot;\xE0B\xFD\xD3y\xBFK\xF3E\x98ǡBx\xBE|jL
+\xC0\xE9\xEAv4u\xFD\xE0;\xFD\xEBy\xCB\\xC3-!l%\x9F|\x9A\x8Ep\x85\xBA\x87J]&lt;8\xACFo\x80\x93\xB8%\x84
+\xE5OCQ\xAEP\xF7\xB0C\xA9\x8B\xAF\xEB\xDF\xD3\xFB`\x80[B\xD8S&gt;\xE74\xE0&quot;u;\x9A\xBA~\xF0\xAE\xFEU\xBD_^\xE1\x96v\x96\x8F7MA\x81\xF7\xE8X8\xA2nc\x87R\x80\xD9y\xD0?\xAF\xF7 0%_t\x80y: \xF4`\x81\xA5\xE5SM\x93O\xAESw\xB2C\xA9\x8B'\xE9\xD9[\xE0wn        \x81\x9F\xF2a\xA6\x81'ש;\xD9\xD1\xD4\xF5\x80S\xF5O\xED-l\xCF-!\xF0\xAB|\x86i\xCE        \xC0\xA5\xEAfv(u\xF1\xE0\xFD\x9B{\xBF[rK\xFC)\x9F^\x9App\xA9\xBA\x99J]&lt;\xB8X\xFF\xF8\xDE/\xC0\xDC\x9Fɇ\x96\x9B\xC0gt,\x9C\xA2nfGS\xD7\x80\x92g\xB0\x91\xFE        \xBE_\x80S\xF9\xA2 \xCC\xE3\xD0\xA1 l,\x9FU\x9Agp\xB5\xBA\x9FJ]&lt;\xB8W\xFF\xDF/\xC0*\xDCG\xE4#JcL\xAEV\xF7\xB3C\xA9\x8B\x85\xFEE\xBEe\x80\xC7rK\x97O&amp;M/\xB8Z\xDDώ\xA6\xAEt\xFAw\xF9~\xC5-!\xF0\xAA|&amp;in        \xC0
+\xEA\x96v(u\xF1`\xFD}\xBFssK\xBC'EW\xC2\xCEt,ܦni\x87R\x80 y\xBC\xAC\xA9\xEF\xE0o\xBE\xE8\xF38t@\xE8\xC1|&quot;\x9F@\x9ARp\x83\xBA\xA5M]?\x98O\xFF^\xDF/@\xCD-!0(\x9F:Np\x9B\xBA\xABJ]&lt;\x98U\xFFj\xDF2\xC0\xED\xDC\xA7ȇ\x8Df\x92ܦ\xEEj\x87R\xA6\xD7?\xDF\xF7 p \xB7\x84\xC0\x89\xF21\xA3i$\xB7\xA9\xBBڡ\xD4\xC5\x80\xE7\xE8\xDF\xF1\xFB\xB8\x86[B\xE0t\xF9t\xD1\x96\xA7c`uc;\x9A\xBA~\xBCɳ ӿ\xE6\xF7 &lt;\x9C/\xBA\xC0&lt;z\xB0\xAFˇ\x8A\x8Fܩ\xEEm\x87R\xAB\xD6\xEF\xE0]n        \x81K\xE5\xB3D\xF3F\xEET\xF7\xB6C\xA9\x8B\xD7?\xEE\xB7 p\x98[B\xE0\xF9ј\x80;ս\xEDh\xEA\xFA\xC0\xFA'\xFE~\xBE\xE4\x96\xB8M&gt;&lt;4`\xE0fu{;\x94\xBAx\xB0\x96\xFE\xAD\xBF_\x80߹%n\x96\xCF \xCDa:\x9E\xA5no\x87R\x80\x8Fy&lt;^\xFF\xE8\xDF/\xF1E\x98ǡB\xE0l\xF9\xA8\xD08\x80\x9B\xD5\xED\xEDh\xEA\xFA\xC0\xD2\xFA\xA7\xFF~\x80\xFD\xB8%B\xF9\x84\xD0\x80\xFB\xD5\xEEP\xEA\xE2\xC0\xFA[6\xE0\x96\xC8\xE5\x83A\xC3C\xEEWw\xB8C\xA9\x8B;\xE9\xBF\xECX\x94[B`\xF9H\xD0\xD8\x80\xFB\xD5\xEEh\xEA\xFA\xC0~\xFA\xEF\xFBV\xE1\x96\x98J&gt;        4-\x84Gб\xB0\x9E\xBA\xC9J]&lt;\x80y\xF0\x8F\xFE\xC3\xC0~\x80\xF9\xA2 \xCC\xE3\xD0\xA1 p\xA3|\xFAgH@\xA5nr\x87RxΤm\xA5\xC0s\xB8%\xE6\x94\xFD\xCC\xA8\xD4M\xEEh\xEA\xFA\xEB?l\x98\x98[B`f\xF9\xAC\xCF&lt;\x80P\xDD\xEA\xA5.\xF0\xBB\xFEk\xC1~\x80ɸ%\xE6\x97O\xF9Lխ\xEEP\xEA\xE2\x9F\xE8?\xEC\xA8\xB9%\x9E&quot;\xEE\xC2&lt;t,l\xA8nuGS\xD7`5\x9EE\x9C\xAC\xFFx\xB0_؆/\xBA\xC0&lt;z\xB0\xD3\xC8gz\xE6~\xB4\xEAnw(u\xF1\x80c\xFA\xAF\xFB\xAE\xE7\x96x\xA2|\x94g\xDC@\xAB\xEEv\x87RxQ\xFF9a\xBF\xC0\xDCϕO\xF0L\xF9h\xD5\xDD\xEEP\xEA\xE2o\xE9?*\xEC8\x89[B\xE0\xE9\xF2ٝ\xF9\xB9\xBA\xE1J]&lt;`@\xFFia\xBF\xC0\xBB\xDCk\xC8Gv\xC6zp' |\xA8nx\x87R\xE0a&lt;\x8B\x98T\xFF\x8Da\xBF0=_t\x80y: \xF4`&quot;\x9Fԙ\xE6\x90\xABޡ\xD4\xC5N\xD5l\xD8/\xF09\xB7\x84\xC0z\xF2\x9D!\xB9\xBA\xE1M]?\xE0\xFD'\x87\xFD\xBFpK\xAC*\x9F˙\xDD0\x83\xBA\xE7J]&lt;\xE02\xFD\x87\x87\xFD\xC0\xF6\xDC \xCB\xC7q\xA6v\xFFǾ\xBD,Yn\xE3Z\xBD\xFF\xFFӾ\xD1\xEEh\xB7ەY)&gt;6H\xAC{\xE0\xC7 y( P\xA0\x88t\xCD;\x94\xF4\xE6\xEB\xE5;\xFD@?f        \x81\xEB\xC5o\xE1\\xD6\xC1t*\xF8L\xBA\xE6Mz\xFF
+\xF1Z\xC0\xE5\xF2}\x88~`]\xA0\x8EG\x84^X\x80\xF3\xC5/\xDF\\xD0PG\xBA\xF2Jz\xF3\x80\xED\xF2
+\x89~\xE0Ff        \x81V\xE2wn\xEE\xE5\xA8#]\xF9%\xBDy@N\xBE3\xD1/\\xC1,!\xD0P\xFC\xAA\xCDuu\xA4+\xDFѤ\xF7\x88\xCA7'Z\x803\x99%ڊ߰\xB9\x85\xA0\x94t\xF1;\x94\xF4\xE65\xE4\xBB\xFD\xC09\xCC\xCD\xC5\xEF\xD6ܿ\xC1T,\xB0N\xBA\xF8Jz\xF3\xF6\xF1Z\x8F\xE4\xDB\xFD\xC0/tt\x80:
+zan\xBFRs\xED@)\xE9\xE2w4\xE9\xFDJ\xCA7-\xFA\x80J\xCC\xFC%~\x93\xE6\xB6
+\x80j\xD2\xF5\xEFPқԖ\xEF^\xF4 Qf        \xFE!~\x81\xE6\x92
+\x80j\xD2\xF5\xEFPқ\x9C \xDF\xC3h\xF62K\xF0\xA5\xF8\xBD\x99\xBB5\xAAI׿\xA3I\xEFp\x8E|'\xA3_X\xCF,!\xC0o\xC4o\xCCܪ\xC1\x97T,\x90\x95.\x81\x87\x92\xDE&lt;\x809\xBC\xC0V\xF9\x96F\xBF\DG\xA8\xE3\xD1\xA1\xA0\xB7\xF8E\x99\xCB4
+J\x97\xC0CIop\xB2|o\xA3_\x98\xC1,!\xC0\xF1\xCB1whԔ.\x81G\x93\xDE?\xE0|\xF9G\xBF\xF0\xB3\x84\xCF\xC5\xEF\xC4\\x9DPV\xBA
+Jz\xF3\x80\x8B\xE4[\xFD\xC03f        ފ_\x85\xB91\xA0\xACt&lt;\x94\xF4\xE6\xD7\xC97&lt;\xFA\x80\xEF\x99%\xF8L\xFC\xCCE\x9D\xA9X\xA0\xB8t!&lt;\x94\xF4\xE6&lt;\xE2\xB5\x8E\x94\xEF|\xF4 @:\xBA@\x8F\xBD\xB0|#~\xF7\xE5~ \x80\xB2҅\xF0h\xD2\xFB\xDC.\xDF\xFF\xE8\x80\xDE\xCC\x8C\x8B_y\xB9\xA0\xB2t-&lt;\x94\xF4\xE6m\xE4!\xFDЌYB\x80Y\xE27]n\xC3\xA8,] %\xBDy@?\xF9\x8EH\xBF\xDC\xCE,!\xC0\\xF1 .\x97`T\x96\xAE\x85G\x93\xDE?\xA0\xA5|S\xA4_nd\x96`\x85\xF8Ֆ\xEB/\xEE\xA6b\x80 \xA4\xCBᡤ7\xC0k\xF4\x96\xEF\x8E\xF4 \xC0]\xA0\x8EG\x84^X&gt;\xBF\xD1r\xEB@q\xE9rx(\xE9\xCD\xF8S\xBEM\xD2/g2K\xB0Z\xFC&quot;\xCBeť\xCB\xE1Ѥ\xF7\xE0o\xF2͒~8\x84YB\x80=\xE2\xF7W\xEE\xB8\xA8/]%\xBDy_\xC9wM\xFA\xA0*\xB3\x84;ů\xAD\mP_\xBA&quot;Jz\xF3\xBE\x97\xEF\x9D\xF4 @%f        6\x8B\xDFV\xB9\xD4\xE2*\xE8 ]\x8F&amp;\xBD\xC0\xE5\xBC\xE4;(\xFD\xB4\xA4\xA3 \xD4\xF1h\x80\xD0 \xC0l\xF1K*wY\x9C&quot;]%\xBDy\x8F\xE5[)\xFD\xB0\x97YB\x80\xA0\xF8ݔ+,N\x91.\x8A\x87\x92\xDE&lt;\x80\xF7\xF2=\x95~X\xCC,!@\\xFCJʵ\xA7H\xD7ţI\xEF\xC0\xA7\xF2\x9D\x95~\x98\xCD,!@\xF1\x9B(\xB7U$]%\xBDyc\xF2\xFD\x95~\x98\xC1,!@)\xF1;(\xF7TA\xC5\xFC[\xBA4Jz\xF3\x80\xB3y-
+\xC97Z\xFA8\x8A\x8E.PǣB/,{ů\x9E\Op\x90ti&lt;\x9A\xF4\xFEL\x95o\xB7\xF4 \xC03f        ʊ\xDF8\xB9\x95\xE0,\xE9\xEAx(\xE9\xCDX#\xDFw\xE9\x80o\x98%(.~\xD1\xE42
+\x80\xB3\xA4\xAB㡤7`\xB1|\xA6_\xFE\xC3,!\xC0\xE2\xF7K\xEE\xA08K\xBA:Mz\xFF\xD6\xCB\xF7`\xFA\xE8\xCD,!\xC0A\xE27Kn\x9F(B\xC5&lt;\x97.\x90\x87\x92\xDE&lt;\xA0.\xAFE\xC0\x85\xF2͘~\xB6\xD0\xD1\xEAx4@\xE8\x85\xA0\x92\xF8\x85\x92K'\x8E\x93.\x90\x87\x92\xDE&lt;\x80\x84|W\xA6_\x80ۙ%8T\xFC\xC9]\xC7I\xC8CIo@T\xBE=\xD3/\xC0u\xCC-~}\xE4\x8A        \x80\xE3\xA4 \xE4Ѥ\xF7\xA0\x80|\x93\xA6_\x80\xF3\x99%8]\xFC\xCA\xC8\xCD\x87J\xD7\xC8CIo@%\xF9nM\xB3g2Kp\x87\xF8e\x91;%vR\xB1\xA5k䡤7\x88\xF1Z\xF0\xAD|Ϧ_\x80\xDF\xD2\xD1\xEAx4@\xE8\x85\xE0\xF1;&quot;\xF7H*]&amp;\x8F&amp;\xBDU\xE5;7\xFDTe\x96\xE0&gt;\xF1\xAB!\xD7G\x9C+])%\xBDy\xE5\xE5[8\xFD\x94a\x96\xE0V\xF1!\xB7F\x9C+])%\xBDy\xE7\xC8\xF7r\xFA\xC81Kp\xB7\xF8E\x90\xCB&quot;Ε\xAE\x94G\x93\xDE?\x80\xD3\xE4;:\xCD\xECe\x96\xA0\x83\xF8\x90k&quot;\xE6R\xB1\x9B\xA5\x8B塤7X\xC2k\xC0r\xF9\xBEN\xBF\xC0\xA5tt\x80:
+za\xB8B\xFC\xE6\xC7\xEDGK\xCBCIo\xC0\xE1\xF2
+\x9E~f3K\xD0M\xFC\xC2ǥGKˣI\xEF\xC0\xF2m\x9E~\x86\x99%\xE8)~\xCF\xE3.\x80ӥ\xEB塤7\xE0.\xF9~O\xBF\xEF\x99%\xE8,~\xBD\xE3
+\x80ӥ\xEB塤7\xE0R\xF9\xC6O\xB3Ϙ% ~\xB1\xE3\xF2\x87\xB7T,@5\xE9zy4\xE9\xFD^\xF3Zp\x8C|\xEF\xA7_\xA0]\xA0\x8EG\x84^X\x88\xDF\xE7\xB8\xF3\xE0\xE9\x92y(\xE9\xCDh \xDF\xEA\xE0?\xCC\xF0\x97\xF8\x8E\xAB\xEE\x90.\x99\x87\x92\xDE&lt;\x80N\xF2ݠ~\x80\xC6\xCC\xF0\xF1\xAB7&lt;\xDC!]2\x8F&amp;\xBD\xFD\xE4{B\xFD\x9D\x98%\xE0K\xF1;\#]5%\xBDy\x8D\xE5\x9BC\xCD\xB73K\xC0o\xC4\xEFj\xDC\xE7\xF0% p\xA2t\xE1&lt;\x94\xF4\xE6\xFF\xE4\xB5\xA0\x9D|\x8B\xA8_`]\xA0\x8EG\x84^Xz\x8B_Ѹ\xC6\xE0\xE9\xC2y(\xE9\xCD\xE0?\xF2\xBD\xA2~\x80\xF3\x99%\xE0\xA1\xF8͌\xDBn\x92\xAE\x9D\x87\x92\xDE&lt;\xFEW\xBEc\xD4/p \xB3\x84\xBC\xBF\x90qi\xC0Mҵ\xF3Pқ\xC07\xF2\xAD\xA3~\x80\x98%\xE0\xF1{w5\xDC$];%\xBDy\xFC$\xDFC\xEA(\xC9,!\x8B_\xBF\xB8\xA2iK\xC5\)];\x8F&amp;\xBDЋ\xD7&quot;&gt;\x97\xEF$5 \xED\xE9\xE8u&lt; \xF4\xC2\xC0\xF7\xE2/.g\xB8L\xBA|Jz\xF3x#\xDFO\xEA\xC81K\xC0\xF1\xFBw2\&amp;]&gt;%\xBDy|$\xDFX\xEA\xD8\xC8,!ůY\\xC5p\x99t\xF9&lt;\x9A\xF4\xFE0 \xDF^\xEAX\xC9,!\xD3\xC5oW\xDC\xC0p\x9Ft=\x94\xF4\xE60C\xBE\xCF\xD4/0\x95YBV\x88ߨ\xB8x\xB9\x9B\x8Ah+]A%\xBDyp\xAFE\xE4\xE5N\xCD\xC0\xB1tt\x80:
+za\xE0#\xF1\xBBW.\)]A\x8F&amp;\xBD̖\xEF9\xF5 \xBCg\x96\x80\xD5\xE2W(nZ\xB8U\xBA\x88Jz\xF3X&amp;\xDF|\xEAx\xC0,!{\xC4oNܮp\xABt=\x94\xF4\xE6\xB0^\xBE \xD5/\xF0\xB3\x84\xEC\xBF0q\xA9\xC0\xAD\xD2u\xF4h\xD2\xFB\xC0.\xF9^T\xBF\xC0\x9F\xCC\xB0_\xFC\x9E\xC4]\xCA\xE9T,\xBF\x91.\xA5\x87\x92\xDE&lt;8\x86\xD7&quot;\xEE\x91oJ5 \xDB\xE9\xE8u&lt; \xF4\xC2\xC0\xF1\xB7(\,]J%\xBDy\x84\xE4[S\xFD@'f        Ȋ_\x8C\xB8&lt;\xE0b\xE9Rz4\xE9\xFD *ߠ\xEA\xAEf\x96\x80
+\xE2\xF7!\xEEL\xB8[\xBA\x9AJz\xF3\xA8!ߩ\xEA\xEEb\x96\x80:\xE2\xD7 \xAEJ\xB8[\xBA\x9AJz\xF3(&amp;߲\xEAg\x96\x80j\xE2\xB7nH\xEAS\xB1\x8CHWӣI\xEF\x94\xE0\xB5\xFE)߸j\xD3\xD1\xEAx4@\xE8\x85\x80\xED\xE2\xF7\xEEF\xB8^\xBA\xA0Jz\xF3(,߾\xEAN`\x96\x80\xCA\xE2\xD7\xAED\xB8^\xBA\xA0Jz\xF38A\xBE\x8F\xD5/\x94d\x96\x80\xE2\xE2WnB\xE8 ]P%\xBDy%\xDF\xD0\xEAj0K\xC0\xE27.@\xE8 ]P\x8F&amp;\xBD(\xDF\xD6\xEAB\xCCp\x90\xF8\x85\x86{\x8F&quot;T,\xAB\xA5kꡤ7v\xF0Z\xAB\xE4\xFB[\xCDЀ\x8E.PǣB/,T\xBF\xCAp\xDD@\xE9\xB2z(\xE9\xCD\xE0
+\xF9FW\xB3\xB0\x92YB\xBF\xC1p\xCB@\xE9\xB2z4\xE9\xFD\xE0\xF9^W\xBF0\x95YB\x8E\xBF\xB8p\xB9@\xE9\xCAz(\xE9\xCD\xE0:\xF9\xA6W\xBF0\xC6,!\x88\xDFW\xB8\xD3\xA0\x8Fte=\x94\xF4\xE6p\xAF|\xF7\xAB_x\xC9,!׈_S\xB8\xCA\xD8F\xC5\x97\xAE\xACG\x93\xDE?\xE5\xB5\xAA\xCB\xF7\xC0\x9A\xA00]\xA0\x8EG\x84^X8G\xFC\x82\xC2%\xAD\xA4\x8B롤7\x806\xF2Ͱf\xE0+f        \xB8R\xFC^\xC2\xDD\xAD\xA4\x8B롤7\x80f\xF2-\xB1~\xE0Of        \xB8X\xFC:•\xAD\xA4\x8B\xEBѤ\xF7\x80\x96\xF2\x8D\xB1~\xE8\xCA,!׋\xDFB\xB8\xA9\xA0\x9Bt}=\x94\xF4\xE6\xD0[\xBEC\xD6/m\x98%\xA0\x89\xF8\xE5\x83 \x8A\x89T,GH\xD7\xD7CIo\xFC\xC0kt\x91o\x955 \xC0:\xBA@\x8F\xBD\xB0p\x8B\xF8\xB5\x83\xAB        \xBAI\xD7ףI\xEF\xFCM\xBEa\xD6,w1K@7\xF1\xAB7\xF4\x94.\xB1\x87\x92\xDE&lt;\xF8E\xBEm\xD6/\x873K@O\xF1\xF4\x94.\xB1\x87\x92\xDE&lt;\xF8^\xBE\xD6/\xA71K@g\xF1\x8B\xF7\xF4\x94.\xB1G\x93\xDE?\xF8I\xBE\x8B\xD6/\xE5\x99%\x80\xF8}\x82;\x87\xB7T,\xD7H\xDACIo\xADy-\xDEɷӚ\xE0ott\x80:
+za\xA0\x81\xF8M\x82\xDB\xDAJ\xDACIo\xBC\x97\xEF\xAB5 @
+f        \xE0\xEF\xE2.h+]h\x8F&amp;\xBD\xF0\x91|k\xAD_B\xCC\xC0\xAF\xE2\xF7\xEE\xE8,]k%\xBDy0&amp;\xDFc\xEB\x80]\xCC\xC0w\xE2\xD7\xAE\xE8,]k%\xBDy0I\xBE\xD9\xD6/˘%\x80ߋ\xDF\xB8I\xF8\x95\x8A\xA0\x8Ft\xAD=\x94\xF4\xE6q3\xAFE@F\xBE\xEB\xD6,\xC0tt\x80:
+za\xA0\xBD\xF8\xFD\x80;:K\xD7ڣI\xEF\xAC\x91\xEF\xBD5 \xC0\xB3\x84\xF0\\xFCZ\xC0\xD5ͥ\xCB\x{D864}7V\xCAw\xE0\xFA\xE0%\xB3\x84\xF0V\xFC6\xC0\x8Dͥ\xCB\x{D864}7\xB6ȷ\xE2\xFA\xE0'f        \xE03\xF1K4\x97.\xB7G\x93\xDE?\xD8(ߐ\xEB\x80_\x98%\x80\x8F\xC5\xFFm\xEFT,\xFC]\xBA\xE2Jz\xF38\x95\xD7&quot;\xE0l\xF9\xCE\\xB3Q:\xBA@\x8F\xBD\xB0\xC0\xF7\xE2-7\xF0\x87\x89B8W\xBEE\xD7,@Wf        `\x8Ax\xA7߅\xFCq\xF8D\xE1\xFF*\x80?ι\x80\xBF&amp;@f        `\xA2x\x83\xDF%\xFC[\xBA\xEEJz\xF3\xA0\x8C|\xBB\xAE_\x80{\x99%\x80\xE9\xE2}}\xBD\xF8\xB7t\xDD=\x94\xF4\xE6@=\xF9\xBE]\xBF1K\x8B\xC4\xDB\xF9\xB7\xFCU,\xBC\x92\xAE\xBBG\x93\xDE?*\xF2Z\xF0/\xF9\xEE]\xB3\xD1\xD1\xEAx4@\xE8\x85&gt;o\xE4k\xF6\xC0_ҥ\xF7Pқ\xE5\xE5\xDBx\xCD\x9C\xC6,!l\xEF\xDF\xEB\xF1\xC0_ҥ\xF7Pқ\xE7\xC8\xF7\xF3\x9A(\xCF,!lo\xDBk\xED\xC0_ҥ\xF7h\xD2\xFBGɷ\xF4\xFA\xA8\xC7,!l\xEF\xD6\xEB\xE8\xC0ߥ\xAB7Δ\xEF\xED\xF5 P\x80YB\x88\x887\xE9\x8Fn\xE4\xABX\x98.]}%\xBDyx-\x98)\xDF\xE4\xEB\xE8DG\xA8\xE3\xD1\xA1X#ޛ׿\x80\xBFKWߣI\xEF\!\xDF\xEAk`\xB3\x84\xEF\xCA\xEB\xDC\xC0?\xA4 \xF0\xA1\xA47\xEE\x92\xEF\xF95 \xB0\x8CYB\xA8 މ/ް\xFF\xF8O+^\x91.\xC0\x87\x92\xDE&lt;\xB8Q\xBE\xF3\xD7/\xC0&lt;f        \xA0\x8Ex\xBEf\x9F\xFE\xE3\xBF\xEBb\x80)\xD2\xF8PқW˷\xFB`\x96\xAA\x89\xF7\xDDK\xB5\xE7\xBF\xFC\xBBO*\x97        L\x97\xAE\xC1\x87\x92\xDE&lt;&amp;\xD3\xC8\xA8(\xDF\xEC8\x81\x8E.PǣB/,\xB0]\xBC\xDD^\xA4%\xFF\xC1\xDFu{\xC0R\xE92|(\xE9\xCD\x80N\xF2\xC1f~b\x96*\x8B7ڳ\xCD\xF8\xFE\xA8K\xF6H\x97\xE1CIo\xB4\x94o
+6 \xF0 \xB3\x84P_\xBC\xBF\xE9\xC1\xF0G]\xB0Y\xBA Mz\xFF\xA0\xAB|w\xB0_\xB3\x84p\x8Ex[}g\xEB\xFD\xED_t9@V\xBAJz\xF3\xA0\xBD|\x9B\xB0_\xA0%\xB3\x84p\x96x7}Oǽ\xF2\xDA\xE0;\xE9J|(\xE9\xCD\xE3\x8D\\x80\x9B\xE5\xFB\x85\xFD+\xE9\xE8u\x98%\x80ś\xE8K\xEDeO\xA4+\xF1Ѥ\xF7\xF8_\xF9\xAEa\xB3\xC0\xBD\xCC\xC0\xB9\xE2\xED\xF3-\xF6\x9A\xAB\x80\xA4\x8B\xF1\xA1\xA47\xF8F\xBE}\xD8,p\xB3\x84p\xBAx\xD7|bg\xBD\xE0\x92`P\xBAJz\xF3\x80\x9F\xE4\xFB\x88\xCD'3Kw\x887˧4\xD4K-&amp;J\xE3\xA3I\xEF\xF0@\xBE\x95\xD8/p\xB3\x84p\x93x\x8F|\xA4\x8F^g%\xB0N\xBAJz\xF3\xF8/\x8D\~\x96\xEF)\xF6 |EG\xA8\xC3,!\&amp;\xDE\xFF\xAC}^d\xB0G\xBAJz\xF3\x80\x8F䛋\xCD\xF5\x98%\x80+\xC5;\xE2\xAF\xE7\xD6\xFB\xA5\xEB\xF1Ѥ\xF7\x90o16 `\x96.o\x84\x88K\xC5CIo0C\xBE\xD7\xD8,\x90`\x96\xAE\xEF\xD7T\x90\xAE\x8B\x87\x92\xDE&lt;`\x9E|DZ_` \xB3\x84\xD0D\xBC\xED]&lt;PD\xBA4Mz\xFF\xBA\xD0\xC8`\x9F|߱_\xB8\x8B\x8E.P\x87YBh%\xDE\xED\xAE(%] %\xBDy\xC02\xF9d\xB3\xC0&lt;f        \xA0\xA1x\x9F\xBBf\xA0\xA0t\x99&lt;\x94\xF4\xE6\xEB\xE5;\x91\xCD\xCC@[\xF1\xF6v\xC1@M\xE9Jy4\xE9\xFDv\xC9\xF7#\x9B\xDE0K\xCDŻ\xDA\xD5\x95\xA5\xEB塤7\xD8+ߕ\xEC\xF8-\xB3\x84\xC0\xFA\xF7:\xEB%]2%\xBDy\x97\xD0\xC8\xE0&lt;\xF9\xF6d\xBFP\x83\x8E.P\x87YB\xE0/\xF1v\x91\xC0҅\xF3Pқ\xA4\xE5\xFB\x94\xCDf        \x80_Ļ\xD7\xA7H\xD7ΣI\xEFPC\xBE[\xD9,\xB4d\x96\xF8R\xBCi\x9C%]A%\xBDy@1\xF9\xB6e\xB3ЃYB\xE07\xE2\xBDj\x9Drx%]D%\xBDy@I\xF9\xE6e\xBF\xB0\x94r\xCC\xBF\xEFOk\x8D\xC0[\xE9Rz4\xE9\xFD;\x80F.}\xE5[\x98\xFD\xC2gl5P\x8FYB\xE0\x89x[Z;&gt;\x90.\xA8\x87\x92\xDE&lt;\xE0\xF9^f\xB3\xF0#\xFB f\x96x.ސ\xD6\x80\xA4kꡤ78J\xBE\xA9\xD9,\xFC\xC5'0K\xBC\xEFC\xEB|\xC0\xD2e\xF5h\xD2\xFB(\xDF\xDAl\x96\x9El,/\xE0&quot;\xC8,!\xF0\x99x\xFBY\xAB&gt;\x93\xAE\xAF\x87\x92\xDE&lt;\xE0d\xF9g\xB3\\xCF~\xF0\xCC\xDB\xE9-\xF3\\xAC\xE3\xEC#\xE2]g\xEDX\xF8L\xBA\xC4Jz\xF3\xF24r`T\xBE\xD3\xD9/7\xB1\x8D&lt;\xF3\xD1ࠏXȩ\xC6ś\xCDz\xB1\xF0\x99t\x95=\x9A\xF4\xFE\xB7\xC8\xF7;\x9B\xE5hv\x80\xE6N\xEFb\x87
+\x98%\xDE(Ո\x80\x8F\xA5\xCB\x{D864}7\xB8N\xBE\xF1\xD9,\x89\xEF\xD5q;\x90\xB66jư\xA0!/Vq\xCC\x80\xB9\xE2\xBDR-X\xF8X\xBA\xEEJz\xF3\x80{\xE5;\xA0\xCDRS|[N\xD9(\x80R\xB3Q\x9F~n\xDDo\xE1V\xCE\xB0B\xBCW\xAA\xF3
+K\xE0\xA3I\xEFp\xBB|\xB4Y*\x88oB\xE5\xCD\xA8!&gt;\xF5vDk\xA2E\xBF\x88+9]\xC0:\xF1v\xA9\x86+\x8CH\xD7\xE3CIo\xDEZ\xB9PE\xBE\xDA/\x9Er|C\x8A\xA90\xF5v
+ӭ\xF8Q\\xC9\xD1V\x8BwL\xB5Z`D\xBA0Jz\xF3\x80f\xF2m\xD1f\xF1L\xB7\xED@IE\xC6\xEE&gt;[\xC6t\xD3Wr\xAE\x80=\xE2MSMV\x91\xAE\xD0G\x93\xDE?\xA0\xA5|s\xB4Y:?A\x80f\xEA\xCC܍\xACd\xBA\xB9?\x8D+9T\xC06\xF1\xA6\xA9\xF6*\x8CKW\xEBCIo\xD0[\xBEK\xDA,\xAD@'u\xEEW\xB2\xC2\xC4_Ǖ\x9C(`\xB3x\xEBT\x93ƥ\xAB\xF5\xA1\xA47\xE0O\xF9vi\xB3\\xFF\x80(5m7e1+\xCC\xFA\x81\\xC9qv\x8A7M\xF5Y`\xA2t\xB5&gt;\x9A\xF4\xFE}N#n\x93\xEF\x98\xF6˕O\xE0j\xCD\xD5-\xBCR\x9F\xB5\x9Ef\xFDF\xEE\xE3,\xDB\xC4ۥZ\xAD\xB0H\xBA`Jz\xF3~\x91o\x9D6\xCBM\xFBp\xA9jsv׳Ȕ\x9F\xC9}$`\x8Fx\xA3T\xB7VK\xECCIo\xC0\xF7\xF2=T9'7\xAA6d7w=\xEB\x8C\xFFR\xEE\xE3\xAB\xC5[\xA4z\xAE\xB0S\xBA`Jz\xF3\xC87S\xA5v\xEERp\xC2n\xFA\x92\xFF\xA5\xDC\xC7)\x96\x8A7Gu^ &quot;]\xAD\x8F&amp;\xBD\x8F\xE5[\xAAR,)8a\xB7bI\xEBLy
+\xDC\xC4։wF\xF5_ .]\xB0%\xBDy\xDF\xD2\xC8\xBE\x96o\xACJ\x8D\\xE1\xA3\xE1\xB9\xE5\xB3Q\x8BV\xB5Δg\xC15\x9C`\x91xOT \xEAH\xECCIo\xC0\xA7\xF2V        \xE0
++\xEBg\xA3-i\xA9Y\x8F\x83;8?\xC0:\xF1\xB6\xA8F,\x94\x92.\xD8G\x93\xDE?\x801\xF9&gt;\xABl \xC0\xE1VLՍ\xCFF\xAD[\xD5R\xB3
+px\x80\xA5\xE2mQ\xBDX((]\xB3%\xBDy\x93\xE4\xAE\xB22'[1O7e6j\xE9\xC2֙\xF5\\xB8\x80\xC3,o\x8B\xEA\xC8@Y\xE9\x9A}(\xE9\xCD\x98-\xDFym\x93={p\xB2\xF3t\xE3\xB3QKW\xB5\xDAħ\xC3ќ`\xB5x\xFF\xB5H\xF7\xF8R\xBAfMf\xD34r\x80\xA5\xF2\xCDכ\xF3ώ\xEE\xBA\x9C\xE9\xED\xAC\xD3[e\xB6\xD4\xC4\xC4ќ`\x83t 6\xE0G\xE9\xB2}(G\xFF\xFC\xF1\xC5\x97\xCBwa\xEFʶM8ӊI\xBA\xF1٨ի\xDA`\xEEc\xE2P\x8E
+\xB0G\xBC [$\xC0\xEF\xA5k\xF6\xA1\xFA\xC3g=;\xA0\x8B|;\xF6\xF0l\xDBX\x80\xAD\x98\xA1\x9B2\xB5y=\xDB\xFE\xDD86\xC0\xF1.l\xA9\xBF\x97\xAE\xD9Gs\xD6O\x9E\xFE\xF8\x80^\xF2M\xD9Ӳs3\x8E\xB2b\x80n\xD6lTd%\x9B\xFF86\xC06\xF1Fl\xB5?J\x97\xEDC9\xE5\x97.zv@S\xF9\xEEl\xF9\xEC\xDC=\x80\xA3\xCC\x9D\x9B8\x95]F\xE4\x8Fr+g\xD8)ދ-\xE0G\xE9\xB2}(\xF5\xE3\xD2gt\x97oӖ\xCB\x9F\xE6\xCE\xFDsG\x992.\xB7b6*\xBE\x86\xD4\xDF\xE5&gt;\xCE \xB0Y\xBA[4\xC0\x8F\xD2e\xFBh\xCA\xFE\xBA=\x8F ݦ-\x93\x9D\xBBp\x8EY\xE3r+F\xA2*\xAC$\xF8\xA7\xB9\x893lo\xC7V\xF0D\xBArJ\xC1\xB5\xF3\xD9\xFCW\xBEe\xCAΝ8ǔY\xB9EcPE\x96_p`\x80\xFD\xE2\xD9\xE2\x9EHW\xEEC)\xF5s\xF6?;\x80/\xE4{\xB7\xBB\xB2s+1eJn\xD1T\x9D\x85\xC5\xC0 &quot;ޔ\xAD\xE0\x89t\xE5&gt;\x9A
+?$\xF8\xF8\xBE\x95\xEF\xE0.\xCB\xCE\xDFp\x88)Sr\x8B\xA6\x9FJ-\xAC\xC28\x9A\xA4\xC4\xFB\xB2\xA7x&quot;]\xB9%\xBB\xFE\xF4\xA3x \xDFʝ\x96\x9F?͝\xF8\xE71&gt;&quot;\xB7n\xF4\xA9\xD4\xDA*\xAC\x81\xA390@J\xBA/{X\x80'ҕ\xFB\x91I?4\x80\x97\xF2\x8Dձl\xFE\x8D\xE5\x8D\xCF\xC7-\x9D{\xAA\xB6\xB6:+\xE1DN o\xCD\xE0\x89t\xE5~Xҏ `L\xBE\xCF\xFA2;\xC0        Ƈ\xE3\xD6
+=\xCDZ\xDB\xC4\xE5\xD5Y        'rZ\x80\xACxw\xF6\xC4\xA5\x8B\xF7{\x92~\x92\x8F\xE5[\xAA\xBF\xCD\xE6\x9Fp\x82\xF1\xE1\xB8uOS\xD66w\x85uV‰\x9C \xAEH\x836\xDE*\xD6\xEB\x80E\xD2\xC5\xFB
+I?C\x80O\xE5;\xAC\xFF\x9B\xCDk8A\xE5\xE1\xB8\xF1\xB5\xADXa\xA9\xC5p\xA7\x88+ՠ\x8D7\x8Cu|`\x91t\xF1~v\xD2O`\x92t\xC3\xF5ѧ\xB9\xFF&quot;@y\x83cq\xABǝ\xA6,o\xFA
+K-\x86\xB38-@\xA9m\xB5\xF5\xE8\xFB\xC0j\xE9\xE2\xFDԤ\x9F\xC0\x91\x86\xEB\xE6U\x9478\xB7t\xD6i|m\x8BYj1\x9C\xC5i\x8A(ؚ\x8D\xACJ\xF7\xF6H\xD7\xEF\x87%\xFD\xB8V\xDA\xD9pݼ\x80\xF2\xC7\xE2\x96\xCE:\x8D\xAFm\xD1
+ .\x89S8*@\xA5\xFA\xB2\xA9\x85i\xC0N\xE9\xE2\xFD\x98\xA4\xC0Jۺ\xAD\xFBWP^屸\xF1\xB5-Za\xC1%q
+G\xA8c燰ŗ\xA7 ;\xA5\x8B\xF7\x92~D+m\xEB\xB6\xEE_        @y\x95g\xE2׶t\x91\x97\xC4\xA0\x94&quot;}\xD9\xF8
+\x8B\xFCX\xE8&amp;]\xBF\xD7M\xFA\xC9,\xB6\xA5\xDB\xFAç\xB9\xD3\xFF&quot;\xC0        \xCA\xCE\xC4
+.l\xF5&quot; .\x89#8*@5\xAB\xFB\xB2G,\xB2\xE6\xAF\x80&amp;\xD2\xF5{Ť\x9F        \xC0b\xF186\xFF9\x80\xE2\x96:\x8D\xAFm\xE9
+k\xAE\x8A\xFA\xA0\xA0HG\xB6\xD4:\x8F\xF8\xF9p\xB7t\xFD^+\xE9\xA7\xB0X\xF0Ӎ\xCD\xA0\x92\xC1\x81\xB8\xA5\x83N\xE3k[\xBAš\xAB\xA2&gt;G(\xE8\xAC\xE9\x9E^r\xF1M\x80\x8B\xA5K\xF8I?\x80\xF5\xF6\xB1\xB1\xF9\xCF\xD4Sy npm\xABYsU\xD4\xE7\xA85=oy\xFE\xFB\xE2-ҭ_\xF1j\xC0v\xE9&gt;\x9C\xF4\xF6\xAC\x97\xEF\xC5N
+\xC0        \xCA\xC4
+.l\xC3&quot;k\xAE\x8A\xFA\xA0\xAC\x9FZ\x9E\xFF\xADP\xFE\xF6\xF9\xFEh\xBC\xACm \xEB\xA4K\xF8X\xD2\xB0^\xBE;5'(;7\xB8\xB0\xFA+\\xB70\x8AsT\x80ʞ4;\xFD\xD7
+\xCD\xD1x?X\xF3\x96JW\xF1\xBB\x93\xDEo\x80-\xF2\xED\xD8I8Dف\xB8\xC1\x85\xD5_ẅQ\x9C\xA3T\xF6\xA4\xD3\xF9\xEB\xAC\xD3\x8D7\x865\x92`\xA9t        \xBF/\xE9\x9D\xD8&quot;ߎ\x9D\x80C\x94\x88\X\xFD\xAE[\xC59*@q?\xB69\xBF\xFC讀\xA3\xF1\xF6\xB0v2,\x95.\xE1w$\xBD\xC7\xBB\xE4;\xB2\xC38Ǵ\xB8\xC1UmX\xE1\xF8&quot;\xD7-\x8C\xE2\xA0\xBE߷9?\xFB_\xFB\xC5\xFB\xC4\xFA\xCA\xB0Z\xBA\x8A_\x98\xF4\xD6\xEC\x92\xEF\xC8\xE05\xE2W\xB5a\x85\xE3\x8B\\xB70\x8AsT\x80\xE3\xFCZ\xA1T\xB1Ļź\xCB\xB0Z\xBA\x8A_\x9B\xF4\xEE\xAC\x97\xEF\xC5\xE0(\x9FN­\xFDfxpU\xAB\x977e\x91K\xD7Fe\x8E
+p\xBA+\x94x\xDBX\x9BVKW\xF1;\x92\xDEc\x805\xF2\xFDׁ\xA5\xE6@\xDC\xE0\xAAV/o\xCA&quot;\x97\xAE\x8D\xCA\xE0t\xE7V(\xF1\xE6\xB1f3l\x90.\xE4w$\xBD\xC7\xB3\xE5;\xAF\xE04\xE2\x97\xB4zy\xB3ֹtmT\xE6\xA8\xA7\xBB\xA0B\x897\x92u\x9D`\xA9t\xBF5\xE9\xCD\x98$\xDFp}\x80\x88\\xD2\xEA\xE5\xCDZ\xE7ҵQ\x99\xA3\x9C\xEE\x9A
+%\xDEQ\xD6~\x80E\xD2\xF5{&amp;\xE9]\x96o\xB5&gt;\xC0\x99
+\xC4
+.i\xE9\xDA&amp;\xAEs\xF5\xF2(\xCBQ\x8Esw\xC5o-kE\xC0t\xE9\xB2=\x9F\xF4\xF8H\xBE\xBD\xFA8g\xFAh n\xED7ÃKZ\xBA\xB6\x89\x8B\\xBA&lt;*sT
+\x8A7\x985\xA4`\xA2t\xC1^(\xE9G\xF0R\xBE\xB1\xFA Ǫ67\xBE\x9EE \x9B\xBBΥk\xA38\xA7\xA0\xACx\xA7Yg\xA6H\x97\xEA\x93~&amp;\x8F\xE5[\xAA\xBF
+\xC0\xC9g\xE2\xA6:\x8D\xAFg\xD1\xC2\xE6\xAEs\xE9\xDA(\xCEi(.\xDEr֢\x80A\xE9&quot;\xBDz\xD2\xCF\xE0'\xF9N\xEA78_\xA9\xB1\xB8\xC1Ŭ[\xD8\xDCu.]\xC59-G\x88\xF7\x9E\xF5\xAA\xE0c\xE9\xF2\xFC\x98\xA4\xC0\xF7\xF2=\xD4_p\x85Rcq\x83\x8BY\xB4\xAA\xE9\x8B\\xBA&lt;\x8AsZ\x80\xE3t\xAEX\xE2MhMk\xF8@\xBA0?2\xE9\x87\xF0\x95|\xF7\xF4\xCF\\xE4\xA3a\xB8%_\x8F\xAFd\xFA\x92\xADs\xE9\xF2(\xCEi8Q\xBC'\xAD\x81
+ϥK\xF2\xB3\x93~z\xFF+\xDE7\xB8K\x9Dɸ\xF1\x95L_Ңu.]\xC59-\xE7\x8A7\xA7u\xB2\xE0\x89t1~O\xD2O\xE0O\xC1F)\xC0u\x8ALƍ/c\xFA\x92֭s\xDD\xF2\xA8\xCFi8]\xFEs^]m\xF8\xADt
+~aҏ`\xFB\x97*27e\xB3\xB3t\x9DK\x97G} \xC0\xF2\xDF\xF2\xEAp\xC07\xD2\xD5\xF7\xE5I?^\xA0\xB7
+}P\x80\xDBU\x98\x8F_\xC3\xC4\xC5,]\xE4\xBA\xE5q8\x8E\x8A\xE57\xF2_\xF1\xEAv\xC0/\xD2uw\x97\xA4\x9F3\xD0آ\xC6'@\x8D\xC4\xCD\xFC~x\xCA\xA6\xACd\xC3:\xD7-\x8F#80\xF7\xC9«\xF3
+\x93\xAE\xB8\xDB%\xFD\xC0\x80Ʀ\xB49\x9A\x992&quot;\xF7\xF1\xD0Ӭ\xBF&gt;\xB2\x86\x9D\xEB\\xB7B\x8E\xE0\xC0\xDC*\xFF\xFD\xAEF8\xFC)]k\xB7N\xFA\xE1]}\xD0\xD1\xE8j֔\xDCgsO\xFF\xFAg ع\xC8E\xCB\xE3 \xCE \xC0\xDD\xF2_\xEE\xEA\x8B\xD0^\xBAʖ%}
+\xFE\xF4ڕ_\x985+\xF7v\xF4i\xE2\xDF\xFD\xE0\xAF\xDF\xAE\xE4\xCCt\x90\xFFl\xF7e\xE0&amp;\xE9\xFAZ\xFE\x99\xF4\x89\xE0L\x97{8\xFD4\xF7/\xBE\xFA\xD3\xC5w\x86\xBB93\xC0qT,#\xF2\xDF\xEC\xBE        \xDC!]Y˷I
+\xE0~&gt;tx\xE2\xED|\xD3C;\xFF\xD6w\xAEΞ\xCC]\x87rl\xCA\xB0\xFB2p\xB4tA-\x8F\x92&gt;&amp;\xADM\x9Dۯ\xF8V\xCCZGsl\xDA\xCA\xAA\xFB2p\xA8t)-\xEF\x92&gt;/\xAD\x98\x9E۬\xF8LyL\x9Cαh.\xFF\x9D\xEE\xCB\xC0q\xD2E\xB4|\x9E\xF4\xD9\xE8b\xC5\xF4\xDCN\xC5\xF8\xC4'\xC5ќ\xFE0Qi\xA5\xC6\xE5\xD2\xF5~\xC5\xEC?ݬ\x98\xA1ۦ\xF8\xAF\x9E\xF8\x988\x9A\x93GŲN\xFE\xF3ܗ\x80kԜ\x92K\x97\xFC\xB3\xEDHw\xF0\xA1 \xC0so\xA7\x9C\xEA(\xFE\xABg= .\xE0\xF0\xF0\xF9os_.P8.]\xF8W\xCC\xD2#\xD0ЊI\xBA
+\x8A\xFF\xE4YO\x87 8&lt;|)\xFFU\xEE\xCB\xC0\xD1\x88K\xD7\xFE\xB3\xE2H\xF4\xB4b\x98n\xB5ʿw\xD6s\xE1\xCE\xBF\x97\xFF*\xF7M\xE0P\x87\xCE\xC1\xA5\xDF*f֑\xE8i\xC5&lt;\xDDR\xC5\xC25\x9C\x9E\xC8\x8F\xFB2p\x96\xD3g\xDF\xD2o3ecZ1R\xB7N\xE5;\xE5qpG8\x8E\x8A%(\xFF1\xEE\xCB\xC0)\xAEyK\xBF\xCD\xDCM\xE2C\x80\xBCw
+*\xFEcǗ\xC7e!\xDE\xCA\x86\xFB2Pߕcn\xE9W\x81\x8AY\xB7\xDB7Y1X7]\xF1_:ey\\xC6)\xE03\xF9op_*\xBB{\xBA-\xFD6P4v\xE0\+\xC6\xEB\xE6\xAA\xFC3\xA7\xAC\x8D\xFB8H\x8C\xC8}\xFB2PS\x9F\x89\xB6\xF4;A\xC5l~\xA7X1d7K\xF1\xDF8ky\\xC6A`\\xFE\xD3ۗ\x80j\xB2\xA5_ \x8A&amp;\xF58jZ1g7\xAE\xF8\x9C\xB8&lt;.\xE3,\xC7Q\xB1\x94\x95\xFF\xE8\xF6e\xA0\x8E\xE6\xC3k闃\x8AI?`\xBA\x8C{;\xFD\xB4A\xE5_7qm\xDC\xC7q`\xBA\xFCG\xB7oԑ~?\xA8\x98\xF43ț&gt;p7\xA2\xF2O\x9B\xBB6\xEE\xE3D\xB0H\xFE\x8BۗJI\xBF&quot;TL\xFA\x99\xC4̝\xB9\xFBX\xE5\xDF5}m\xDCǡ`\xA9\xFC\xB7\xB6/T\x93~K\xA8\x98\xF43Ș8yWd\xA8\xAA\xF8\xF2\xB8\x8Cs\xC0\xF9m_((\xFD\xA2P4\xE9\xC7\xB0լ\xE1\xBB&quot;Uŗ\xC7e-\xE08*\x96s\xE5?\xB1}\xA8\xC9k\xD1\xE6
+\xBFJ\xFA\x99_\xD0\xD1X\xE4\xD1\xD4$\x95\xC8ҵq \x80\xCD\xF2\xDF׾ PY\xFA\x8D\xA1hҏ`\x87\xC1A\xBC
+\x83Tŗ\xC7e\x9C1&quot;\xF2_־ P_\xFA\xBD\xA1b\xD2\xCF`\xB9\x91q\xBC\xF8U\xF1\xE5q'
+\x80\xA0\xFCg\xB5/!\xFD\xEAP4\xE9\xC7\xB0\xD6gsy\xD9ɩ\xFA+\xE4&amp;\xCE俩}\xE0 \xE9\x88\x8AI?\x80\xE5N\x952\xD5\xC5Nf        \x80\xE3\xA8X.\x96\xFF\xA0\xF6e \xC2k\xD1g\xD2/\x93~&amp;p?]~O\xC5\xC8N?\x9E7\xC7\x80\xCD\xF2_Ӿ p\x9C\xF4kDŤ\x9F        @G\xB8\xD8\xC9,!5忣}\xE0D\xE97\x89\x8AI?`        \xB3\x84T\x96\xFF\x88\xF6e\x80s\xA5\xDF'*&amp;\xFDL\x80i\xCCP_\xFE\xF3ٗ\x8E\x96~\xA5\xA8\x98\xF43F\x99%\x8E\xA3bi+\xFF\xED\xEC\xCB\xC0&quot;^\x8B\xB6I\xBFUM\xFA\xB1\xC0Itt\x80:
+za\xA0\x8C\xFCW\xB3/\xDC!\xFDnQ1\xE9g\xBC`\x96\x80C忚}\xE0\xE9׋\xA2I?\xE0f        8Z\xFE{ٗn\x92~è\x98\xF43\xBEf\x96\x80 \xE4?\x96}\xE02闌\xA2I?\xE0\xBF\xCC\xC7Q\xB1\xF0\x9D\xFCg\xB2/\x9F\xF1ZT\\xFAU\xA3b\xD2\xCFbtt\x80:
+za\xE0\xF9od_\xB8U\xFAm\xA3b\xD2\xCF\xFA2K\xC0\x95\xF2Ⱦ p\xB7\xF4;GŤ\x9F        \xF4b\x96\x80\x8B\xE5?\x8D}\xE0z\xE9׎\x8AI?h\xC1,!\xD7\xCB\xFB2@\xE97\x8F\xA2I?\xB8\x96YB\xE08*&gt;\x96\xFF(\xF6M\xE0;^\x8B\xEE\x93~\xFF\xA8\x98\xF43\x809tt\xCE\xF5h\xD4J\x99\xC7Q\x9Cd\xBA\xC9\xFB2@\xE9\xF7\x8F\xA2I?\xE0r#c\x83Ʋ8\x88C \xFC?\xFBv\xB4ܸ\x8Ek4\xFF\xFFӹ3\x93S\xB9}\xE2\xB4-X&quot;7H\xADUxA\xBF\xB4E0U\x82
+\x80{\xCA\xCF\xC2\xB8\x9Bt\xD21\xD2561bU\xB0*}ܑ[
+\xC0\x9D\xE5a\x8B\xDCP\xBAi\xE9\xB2\x8B\xB1x\x89\xF4\xC1p#.'\xE4G`\x8B\xDCV\xBA\xE9\xE9\x9A\xAD\x8D\xD8\xFE$}T\xECϝ\x96㍅A\xF2\xF3\xAF\xC5පE|Z*\xFC-\xD25\x80_\xF8\xA2 thW\xAA\xA5\xF4ɱ-W\xFE\x94~-@\xBA/\xE9\xE9\x9AI#\xF6\xFB\xE6K\x9F&quot;r        \xE0Q~\xEC\xB5\x9F\x96
+\x8BtM\x80\xA9F\xEC\xF4e\xA5O\x94\xAD\xB8~\xF0D~\xEC\xB5_\xD2\xDDI\xD3H\x97h\xC4_\xE9\xD3e.\xBC\x94x-\xC0\xB7t\x83\xD21\xD25\xAE4bw\xAF\xA1\xF41\xB3\xB7X\x8E7R\xF2Ӯ\xC5`W\xDA&quot;ޓ\xEEQ\x9AF\xBA,l\xCE]\x80\xD1-Dm$}ެ\xCD}\x80\x92\xFC\x9Ck1\xA5;\x95\x8E\x91\xAE        P3bSo        \xE9\x83ga.\xBC!?\xE4Z \x80_\xA5\x9B\x95\xA6\x91. \xF0ˆ\xBD\xB5\xA4+\xC0\x92\3x[~\xBC\xB5O\xA4[\x96\x8E\x91\xAE        \xF0\x8B\xABy+Jׁ\xF5\xB8cpR~\xB6\xB5ϥ\xBB\x96\x8E\x91\xAE        \xF0\x8FKy\xEBJW\x83Ÿ`\xC0r\xBC\xB1\xD0S~\xB0\xB5\xACK[\xC4L\xE9ޥc\xA4k\xC0J|\xD1\xB8Сݧ\xFBI\x97\x85\x95\xB8]p\xAD\xFCTk%J\xB7/#]\xB8\x91[x\xDBH\x87e\xB8Z0B~\xA4\xB5\xA5ۗ\xA6\x91. ln\xC4
+\xDEN\xD2\xF5a
+\xEE\x8C\x93f-@I\xBA\x89\xE9\xE9\x9A\xC0\x86F,\xDF\xED']%\xE0R\xC0h\xF9I\xD6bT\xA5\xFB\x98\xA6\x91. \xEC`\xC4\xDAݮҵ\xA2;7
+X\x8E7\x95\x9Fa-mi\x8Bh.\xDD\xCDt\x8CtM\x88\xF1E\xE0\xA4C\xFBN\xFC!]1Zs\x9D`\xA6\xFCk1ޖnh\x9AF\xBA,\xB0\x8C\xABvw\x90\xAE}\xB9K0_~t\xB5'\xA5ۚ\x8E\x91\xAE        \xB46b\xC9\xEE&gt;\xD2գ)        R\xF2s\xAB\xC58/\xDD\xD94\x8DtY\xA0\x97\xEBuw\x93\xAE!\xB9E\x97Z\xAD\xC0U\xD2\xFDM\xC7H\xD7Z\xB1[w7\xE9ґ[,\xC7 \xBB\xCAO\xACV\x80 m\xFBI\xB78#]\xAE\xE1\x8B.\xC0\xED8Mq\xCF\xDF\xCF\xC6\!h%?\xAEZ \x80 \xA5[\x9C\xA6\x91. \xCC3b\xA5.\xBE6\xB5\xE5C\xB1&quot;\xF7\xCA\xAA\xE0r\xE9F\xA7c\xA4kÍاk\xB5*\xB5\xFDҙ\xFBm\xE5\xA7T\x8B0B\xBA\xD7i\xE9\xB2\xC0\xF5F,ӵݐ\xBA\xD5\xC3҄\xCB\xCD\xE5\xE7S\x8B0N\xBA\xE3\xE9\xE9\x9A\xC0eFl\xD25ߍ\xBA\xE1#/j\x8Fwy\x80\xE5xc\xE1\x9E\xF2é\xC5`m|Z*\xFCK\xA4\xCB\xC0O\xBE\xE8wh\xB5\xE9\x84\xF4\xF3=s\xE7gok\xCB\xC3_\xFA\xC7\xC0\xDD\xE4\xC7R\x8B0A\xBA\xF5\xE9\xE9\x9A@\xD9U\xAB[\xEB\xEEC9\x81&amp;6\xAEŠ\xBFȏ\xA5V`\x8Et\xF7\xD34\xD2e\x80\xD7F\xACn\xAD\xB8 \xE5\xB2Ɲ\x93Z,\xF4S\x80\xF2\xA9\x95\x98)\xDDu\x8CtM\xE0\xAF6\xDB\xD8:\xC9i\xCC7\xE2\xCCVd\x89        &lt;\x91\x9FF-\xC0L\xE9\xA8c\xA4k?\x{DC68}u!2\xCD\xE5Gݹ(\xFD!\xC0\xDEX\xE0W\xF9Q\xD4b\xF06m\xBC'\xDD5\x8DtY6\xE7\x8B.\xC0\x87\x96\x9A*\xD2t
+\xC72\xC1\xE5\x87\xFC\x86\xCE\xCF;\xF3\xB7U\xF9!\xD4bD\xA4\x9B\xA1\x8E\x91\xAE        \xF7\xB5\xEEf\xD6hNf\xA8k\x8F\x{1CCD8F}&lt;\xED\x87o\xCBO\xA0 %\xDD5\x8DtY\xB8\x97w\xB2\xA6q8\x83\x\xB0\x97\xE8\xF9\xD4s~p^~\xF6\xB4Y鮨c\xA4k\xC0\xFE\x96\xDBƚ\xCF]\xEE\xC2#\xBDP\xC3\x9F\xF0\x93\x80 \xE5O\x8B\x97n\x8C\x9AF\xBA,\xECi\xA1=\xAC \xA7t\xA1\xABs\x84n\xCF&gt;\xFA\xF7\xBC\xE4\x8Dޓ\x9F:\xADOh\x8B`\xA6t{\xD41\xD25X\x89/\xBA/\xDAh: \xFDc9\xA5 \x8D;\xC0\xFE\xEA\xF6{\x80\xA1\xF2#\xA7\x95\xE8#\xDD!5\x8DtYX\xDE\xF9\xF5\xAB\x9Bl&lt;9\xA8KL;\xB7\x9E5j\xF5c\x809\xF2æ\xC5h%\xDD$u\x8CtMX\xD2\xDB\xFBV7\xDCxrV\xE7\xCD?\xAEnj\xF5c\x80\x99\xF2\x93\xA6\xC5\xE8&amp;\xDD'5\x8DtYX\xC6\x9BVw^wr\'E\xAAU\x8D\xFA\xFC &quot;?cZ \x80\x86ҭR\xD3H\x97\x80\xEE\xDEX\xB3\xBA\xF3\xBA\x93\xE3:#xJ}j\xD4\xE7\x97\xE4\x8DF\xC8\x98\xE0δE\xD0\\xBAa\xEA\xE9\x9A\xC4\xF8\xA2 \xF0ܡu&amp;/Tpbo\x8BQ\x872/\xCB}o \xDCA~\xBA\xB4\x9D\xA5{\xA6\xA6\x91. \x8DT7\x9B\xEC:9\xB1\xF7t8\x9Fe*^\x96\x9B\xDE\xB8\x95\xFC\i1\xFAKwN#]\xF2\xAA\x9BM\x9D&gt;\xDA[\x9AN\xBCLn \xF0\xAB\xFCPi1\x96\x90n\x9E\x9AF\xBA,Tך,:}qno\xE8s2\xD9_\xE2\xAA\xCF\xE5'J+\xB0\x90t \xD51\xD25`\x9E\xEAZ\x93E\xA7/έ\xAAձd\xCB\xE4\xAA\xCB\xF1\xC6\xF9q\xD2blL[\xFBI\xB7PM#]\x80 \xF8\xA2 \xF0ġ]&amp;oS\x9C[U\xABcɖ\xC9U\x8E\xCB\x92`9\xE9F\xAAc\xA4k\xC0յ&amp;\x8BN_\x9C[U\xB73        \x96\xC9U\xAA\xF2S\xA4\xC5XQ\xBA\x97j\xE9\xB2p\x99\xEAZ\x93-\xA7o\x8E\xAE\xA4ۙ\xCB\xE4\xAA\xEF\xC9Ϗ`]鎪c\xA4k\xC0Yյ&amp;[N\xDF]I\xB73        \x96\xC9U\xCE\xC8\x8F`i馪c\xA4k\xC0\x9B\xAAkM\xB6\x9C\xBE9\xBA\xE3\x9EI\xF0'\xB9*\xC0r\xBC\xB1@C\xF9\xC9\xD1b,M[|Z*\xFCK\xA4\xCB\xF0\x93/\xBAO\xDAe\xF2*\xF5Gw\\xC33        \xFE$W\xB8J~f\xB4{HwW#]^\xAB\xAE5\xD9r\xFA\xE6\xE8\x8Ekx \xC12\xB9*\xC0\xE5\xF23\xA3\x95\xD8F\xBA\xC1j\xE9\xB2\xF0\xBB\xEAZ\x93-\xA7o\x8E,\x93\xAB \x92\x9F-\xC0N\xD2=V\xC7H\xD7\x80\xA9\xAE5\xD9r\xFA\xE6\xE8\x8Ekx \xC12\xB9*\xC0P\xF9Q\xD1bl&amp;\xDDf5\x8DtY\xF8\xAC\xAE5\xD9r\xFA\xE6\xE8\x8Ekx \xC12\xB9*\xC0r\xBC\xB1\xC0\x8A\xF2C\xA2\xC5\xE8L[\xBC-\xDDlu\x8CtM\x80\xCD\xF9\xA2 \xF0ġ]&amp;\xAFR\xBFqt\xC7u;\x90l\x8D\`\x9A\xFC\x84h1v\x95F\xBA,\xF7R]k\xB2\xE5\xF4\xCDѭ+[#W\x98,?Z \x80\xBD\xA5\xBB\xAE\x8E\x91\xAE        \xC0-Tךl9}st\xEB\xCA\xD6\xC8U&quot;\xF2\x83\xA1\xC5\xD8^\xBA\xF1\xEA\xE9\x9A쬺\xD6d\xD1\xE9\x8Bs[W\xBCF\xAE
+\x94\x9F
+-\xC0\xA4{\xAF\xA6\x91. \xC0n\xAAkM\x9D\xBE8\xB7Eu(\x90\xAB,\xC7 l)?Z        \x80,m0S\xBA\xEB\xE9\x9A+\xF1E\xE0\x89C\xBBLަ8\xB7Eu(\x90\xAB\xF4\x91\x9F-\xC0}\xA4;\xB0\xA6\x91. \xC0ªkM\x9D\xBE8\xB75\xA9\xCE\xF9\xCBs\x95\xA1\x8F        ,$?        Z \x80\xBBI\xF7a#]\x80%YGz\x83C[K\xAB\x9D\xBC&lt;\xFA\x98\xC0r\xF2c\xA0\xC5\xB8\xA1t+\xD64\xD2eX\x86\x8D\xA4*'\xB6\x96n\xD59\xAE2\xFAI\x80\xE5@\x8Bp[醬c\xA4kН\x8D\xA4*'\xB6\x8A\x9E\xA59\xAE\xF2\xF5c~\xFC6\xA9T*\x95J\xA5\xD2_\xD3\xE7\x9A\xFCH\xA9Tza\xFA\x9F\xFE,F\x9F\xA3\x93J\xA5R\xA9T\xBAe\xFA\xF1J\x87)\x95J{\xB2\xA6ѪFR\xA9T*\x95J\xA5R\xA9T*\x95J\xA7\xA5\xAF|\xDC\xDB\xCB\xF7\xA5#\xD21\x8F\xE3j\xAE].\xB9B\x97\xF8\xECѲI\xA5R\xA9T*\x95J\xA5Ҷ\xE9G|\xEE\xB3]\x8EN*\x95J\xA5R\xA9T*\x95JSi\xBE3k\xE9\xA2H\xA5R\xA9T*\x95J\xA5R\xA9T*ͦ\xFC\xE9\xE3
+釘\xC7q]r\xF8\xF1\xA2 }\x8A\x92\xCF6=\x9AT*\x95J\xA5R\xA9T*\xED\x9C~\xE4\x87&gt;k\xD1\xE7\xE8\xA4R\xA9T*\x95J\xA5R\xA94\x98\xA6\x9B\xB3\xA6ѪFR\xA9T*\x95J\xA5R\xA9T*\x95J\xE7\xA4\xFC\xE9\xE3&quot;\xE9\xE7\x98\xC1Ye]u\xFEي\x8C{\x8A\xAA\xCF6=\x9AT*\x95J\xA5R\xA9T*]&quot;\xFD\x88O|V\xA2\xD5\xD1I\xA5R\xA9T*\x95J\xA5Ri0M\xF7gM\xA3U\x8D\xA4R\xA9T*\x95J\xA5R\xA9T*\x95M\xF8\xE1\xE3
+釘\xC1Ae]r\xFE\xF1r\x8Cx\x8A\xF7|\xB6\xE9ѤR\xA9T*\x95J\xA5R\xE9B\xE9G|ܳ}\x8EN*\x95J\xA5R\xA9T*\x95J\xE3i\xBAEk\xE9\xA2H\xA5R\xA9T*\x95J\xA5R\xA9T*\x9D\xF0\xC3\xC7E\xD2\xCF1\x96S\x8A\xBB\xAA\xD9B\\xFBg|\xB6\xE9ѤR\xA9T*\x95\xF6O\x9Fk\xF2#\xA5R\xE9\xDCt\xB1\xE8ttR\xA9T*\x95J\xD7K?^\xE9\xF0#\xA5R\xA9\xB4\x94\xA6\xBB\xB4\xA6ѪFR\xA9T*\x95J\xA5R\xA9T*\x95J\xDFK?^\xF9\xB8\xBD\x97\xAFLǥeG\xD4\xC1\x85U\xD6\xE2\xF2\xA7x\xDBg\x8F\x96M*\x95J\xA5R\xA9T*\x95\xAE\x9B~ħ&lt;\x8B\xD1\xE7\xE8\xA4R\xA9T*\x95J\xA5R\xA9\xB4Q\xFA\x9F\xFF\x8E|Q\xA4R\xA9T*\x95J\xA5R\xA9T*\x95^\x97\xF0\xC3\xC7uҏ2\x8A#\xEA\xE0\xC2*+2\xE8)\xDE\xF0٦G\x93J\xA5R\xA9T*\x95J\xA5K\xA7\xF1\xCFb\xF49:\xA9T*\x95J\xA5R\xA9T*m\x95\xA6۵\xA6ѪFR\xA9T*\x95J\xA5R\xA9T*\x95J\xDFHx\xF4q\x9D\xF4\xA3\\xCF\xE14qa!\x82\xA5\xFA%\x9Fmz4\xA9T*\x95J\xA5R\xA9T\xBAA\xFA\xEE,G\x97\xA3\x93J\xA5R\xA9T*\x95J\xA5҆i\xBEi\xEB\xF1\xA2H\xA5R\xA9T*\x95J\xA5R\xA9T*}/\xE0\xD1ǥ\xD2Os%'\xD3ǵ\xB5Hh\xC2S\xF4٦G\x93J\xA5R\xA9T*\x95J\xA5ۤ\xF1\xC9\xCEb\xF49:\xA9T*\x95J\xA5R\xA9T*m\x9A\xFE\xE7\xC4C\xF4\xAA\x91T*\x95J\xA5R\xA9T*\x95J\xA5ҧ)\x8F&gt;\xAE\x96~\xA0k8\x96V./G\xA4Fs\x9E\xE2\x88\xCF6=\x9AT*\x95J\xA5\xD2\xFE\xE9sM~\xA4T*\xED\x94.\x9D\x8EN*\x95J\xA5Ri\xC7\xF4\xE3\x95?R*\x95J'\xA4\xE9\xEE\xADcċ&quot;\x95J\xA5R\xA9T*\x95J\xA5R\xA9\xF4G\xFA\xF1\xCA'\xFF\xF3\xF2ũ*\xFD@g9\x90n.\xAFH\xA4RӞ⥡\x8F        \xF0\xF9\xDFh\xA5\xE0\xA0t\xD74\xD2e(\xB0\xAC\xF4'\xA7\xD1Ј\xA2\xCC/\xD6̧xn\xDC3\xFC)?\xCDY J7pM#]\x80׬,}qK\xEB_\xAF&amp;?`\xB2\xFC(g1(I\xB7q#]\x80g.\xDC\xC3Zt\xCA        l\xA6a\xD5:\xFC\x80\x94\xFCg1\xA8JwrM#]\x80\x9FN.^-\xBDu\xE7g\xBF\x83&gt;U\xEB\xF0J\xBC\xB1\x97\xCBOp\xB89m\xC0\xDB\xD2\xFD\\xC7H\xD76\xE7\x8B.@ɡ\xED\xA6sҏ\xF8\xD3
+\xF9\xB6:\xD4.\xFE\x9Aȏo\x80\xB7\xA5[\xBA\xA6\x91. pwo,[\xBD'\xFD\xA0\xFFu\xAB\x87\xE5K\xBCv\xF1\xD0J~p\xB3\x9C\x94n\xEC:F\xBA&amp;\xC0}Uw\x9DN\xF2\x80L\x96\xAD\xA0\xFB\xF0(?\xB5Y \xCEK\xF7vM#]\xE0^\xAA\xBBN\xF2P\xCC\xAC\xA0\xFB\xF0D~d\xB3\%\xDD\xE1u\x8CtM\x80\xBB\xA8\xAE;\x8Ds\xCF\xDF\xCF\xA9:\xBAB\xC0r\xBC\xB1\xF3\xE5\xE75\x8B\xECM[0S\xBA\xC3k\xE9\xB2\xC02|\xD1xϡ5'\x9EJא&quot;\xA5t\x8B\xCAOj\x80 \xA5\x9B\xBC\xA6\x91. \xB0\xA7\xEA\xC6\x8F\xD25\xE4\x85H)\xDD&quot;\x80\x92\xFC\x98f1\xB8\\xBA\xD5k\xE9\xB2[\xA9.=\xF1\xA7t\xF58d~5]$\x807\xE44\x8B\xC0\xE9n\xAFi\xA4\xCBl\xA2\xBA\xF7ėt\xDD8j~M\xDD%\x80\xB7\xE5\xA73\x8B\xC08鞯c\xA4k,\xAF\xBA\xFAD\xBAb\xCC/\xAB\xEB,\xC7 \xD0M~4\xB3\xC0\xEA\xB4Eͥ۾\xA6\x91. d\xF8\xA2 pޡ\x95'\xFE']+\xCA&amp;W֍\xB8D~(\xB3L\x90n\xFE:F\xBA&amp;\xC0z\xAA P\xF7\x94\xAE\xEF\x98\\\x97
+\xE0Z\xF9\xA1\xCCJ0G\xBA\xFFk\xE9\xB2˨\xEE@\xDDM\xBA&gt;\xBCir}\xDD+\x80\xF2\xE3\x98\xC5`\x9At \xD81\xD25P]\x83\xBA\x8Fte\x9AZ\xE2\xE8&amp;\x97\xD8\xD5'?\x8BY fJw\x81M#]\xA0\xAF\xEA&amp;\xD4\xA4k\xD2\xD7\xA77\xB9\xCAn\xB0o,\xC0r\xF2S\x98\xC5\x9A\xD3\xEC'\xDD6\x8DtY\xE0\xBE\xE8\\xEE\xD0\xD4m\xA4\xAB\xD1\xDA8\xB9\xD0.\xC0\xF9\xCCb\x91n\x9BF\xBA,@#\xD5}\xA8]\xA5\xEB\xD0\xDDg8\xB9\xD6\xEE\xC0L\xF9\xE1\xCBb\x90\x92\xEE\x9BF\xBA,@ Օ\xA8\xFD\xA4+\xB0\x80%Nr\xF2\x8Ft\xCD\xE6\xCBO^\x80\xACt_\xD81\xD25ª[Q\xDBH\xFC2\x968\xCF\xC9?\xD2eHɏ]\x80\xB8tk\xD84\xD2eb\xAA\xBBQ\xABK\x9F\xF7J\x968\xD2\xC9?\xD2}\x96\xE3\x8D\xD8O~\xE6\xB2@\x9C\xB6\x80/\xE9\xB1c\xA4k?\xF9\xA2 0\xC1\xA1\x9D\xA8\xF5\xA5\x8FyI\xCDv~\xE9\xDD:\x80&amp;\xF2\x97\xC5\xA0\x89t\x83\xD84\xD2e\xA6\xAA.I\xAD%}\xBA\xABj~\xB6\xF3\xAB\xEF\xE2\xB4\x92\xB5,\xAD\xA4\xDBĎ\x91\xAE        0OuU\xAA\xBF􉮭\xF9!\xCF\xFFy\xAE@C\xF99\xCBb\xD0M\xBASl\xE9\xB23T\xA6zJ\x9F\xE2\x9A\xF5\xFC\x9F\xE7\xB4\x95\x9F\xB0,=\xA5\xFBŎ\x91\xAE        0\um\xAA\x8F\xF4\xC9m\xA5\xED\x81G.\x83\xAB,\xC7 p7\xF9\xF1\xCAb\xA3i\x8Bx[\xBAel\xE9\xB2\xB03_t:8\xB44\xD5@\xFA\x9C\xF6\xD4\xF3\xF0S\xB7XB~\xB0\xB2t\x96\xEE\x9BF\xBA,\xC0@\xD5-\xAAi\xD2\xB3\xB9\x9EUH]\x97`!\xF9\xA9\xCAb\xD0_\xBAw\xEC\xE9\x9AcU7\xAAFH\x9F\xC1\x8Dt\xABH𒸥+\xCAOUV\x80%\xA4\xDBǦ\x91. 0\u\xC1\xEA=駼\xAFV5\xCAޙ\xE2\x9Dui\xC9\xCFSV\x80\x85\xA4\x9BȎ\x91\xAE        0Uu\xEB\xCAV[}
+\xBFEŋ\xEC&amp;y\xDEX~\xC8S8I[\xC0L\xE9&amp;\xB2i\xA4\xCB\xC02|\xD1\x80-\xCE
+~E?\xFE\xC6\xFD\x92\xBF\x80\xF3\xF2c\x94\xC5`9\xE9V\xB2c\xA4k\xC0k\xF1\xBA\xF8h\xF53\xB8D~\x86\xB2\xAC(\xDDM6\x8DtY\xF8\xAB\xD4]\xF5\xFF\xBA\xC4\xD7\xE4gp\xA1\xFC\xF4d1XW\xBA\xA7\xEC\xE9\x9A\xF0\x8B\x99k}\xEF\xFD_\xA37\xF8\xFA\xFC\xAE\x95\x9D,KK\xB7\x95M#]\xFEqf\xBF\xEF\xE0b\xDD\xC9\xFFb\xF4\xFA^\xABp\x847\x80\x92\xFC\xD0d1\x80\x97\xB4E4\x97\xEE,\x9BF\xBA,d\xF8\xA2 \xADڠ\xCB\xE9\xF6\xF8\xA3\x83\xE4\x87&amp;+\xC0\xD2\xFDe\xD3H\x97\xE0\xBEF\xEC^\xA2\xE1\xB3O\xF8I\x8C\x93\x97\xAC\xDBH\xB7\x98M#]\x80;\xB1        xR\xCF\x9F\xF3\xAB*?+Y v\x92\xEE2;F\xBA&amp;\xF72b\xF0mm\x9Fz\xDA`\xB4\xFC\xA0d1\xD8L\xBA\xD1l\xE9\xB2\xDCˆ\xAD\xC07t~䙿
+\xE0W\xDEX\xAE\x95\x91,\xA0-`K\xE9v\xB3c\xA4k\xC0|\xD1\x80\xCE-\xD4
+\xD3\xFFy\xE7\xFFB&amp;\xC8\xCFG\x80]\xA5;Φ\x91. \xC0\xB6F\xEC        \xF6\\xD3[\xE2G0G~2\xB2\xEC-\xDDwv\x8CtM\xF64ba\xB0ۂ\xDEB?\x809\xF2c\x91\xC5`{\xE9ֳi\xA4\xCB\xB0\x9B˃}\xF6\xF2V\xFC\xCD̑\x9F\x89\xACw\x90\xEE&gt;\x9BF\xBA,\xBB\xD9i\x85\xF0\xDB\xD2?\xB8'o,\x93\xE5&quot;+w\xA0-\x80/\xE9\xB4i\xA4\xCB\xC0\xBF\xF8\xA2 {8\xB4z\xD7\xFE%\xFF\xF8S\xF4\xC6ɏB\x80\xFBH\xF7\xA0M#]z\xB1K\xC0q\xF99\xC8bp7\xE9N\xB4c\xA4k@ v        \xA8\xCAA\x80J7\xA3M#]b\xEC\xF0\x9E\xFC\xF8c1\xB8\xADtK\xDA1\xD25`6\xBB\x84\xC0r\xBC\xB1\xB4\x92\x9F},l@[oKw\xA5M#]\x80\x9D\xF9\xA2 pġ\xA5&amp;NKי&lt;w\x80\xF3\xF2S\x8F\xC5\x80to\xDA1\xD25\xE0\xA6F\xEC\xCD\xF1(]g\xF2\xDC\xAE\x92y,|Z*\xFCK\xA4\xCB\xC0\x8D\x8C؛\xE3Q\xBA\xCE\xE4\xB93\.?\xEFX        \xF8\x92\xEEP\x9BF\xBA,\xECo\xC4\xDE\x8F\xD2u&amp;ϝ`\x90\xFC\xB0c1\xE0[\xBAIm\xE9\xB2\xB0\xA7{s&lt;Jי&lt;wX\x8E7\x80\xB5\xE4\xC7\x8B\xFDi\x8B`\xA6t\x9F\xDA4\xD2eX\x86/\xBAGZj\xE2\xB4t\x9D\xC9sg\x98 ?\xE3X x\x94\xEEV\x9BF\xBA,,o\xC4\xDE\x8F\xD2u&amp;ϝ`\x9A\xFCtc1\xE0W醵i\xA4\xCB\xC0\xAAF\xEC\xCD\xF1(]g\xF2\xDC&amp;ˏ6\x9EH\xB7\xAD#]3bo\x8EG\xE9:\x93\xE7\xCE\x91\x9Fk,&lt;\x97\xEE\\x9BF\xBA,,`\xC4\xDE\x8F\xD2u&amp;ϝ\x96\xE3\x8D`'\xF9\x89\xC6b@\xDA&quot;\xE8/ݿv\x8CtM2|\xD18\xE2\xD0R\xA7\xA5\xEBL\x9E;@\xF9\x89\xC6J\xC0A\xE9\xB6i\xA4\xCB@/#\xF6\xE6x\x94\xAE3y\xEE }\xE4g\x8B\xA5[ئ\x91. -\x8C؛\xE3Q\xBA\xCE\xE4\xB93t\x93d,\x94\xA4٦\x91. 1#\xF6\xE6x\x94\xAE3y\xEE =\xE5G\x8BU\xE9^\xB6i\xA4\xCB\xC0l#\xF6\xE6x\x94\xAE3y\xEE \xB0o,\xB7\x92\x9F_,L\xA0-\x80-\xA5;ڦ\x91. \xC0Y\xBE\xE8qh\xA9\x89\xD3\xD2u&amp;ϝ\xA0\xBF\xFC\xE4b1\xE0m馶i\xA4\xCB\xC0@#\xF6\xE6x\x94\xAE3y\xEE \xABȏ-NJ\xB7\xB6#]\xAE7bo\x8EG\xE9:\x93\xE7\xCE\xB0\x96\xFC\xCCb1\xE0\xBCtw\xDB4\xD2e\xE0#\xF6\xE6x\x94\xAE3y\xEE \x8B\xCA,V\xAE\x92\xEEq;F\xBA&amp;\x9C2bo\x8EG\xE9:\x93\xE7\xCE\xCB\xF1\xC6\xC0\x9F\xF2ӊ\xC5\x80\xF3\xB4E\xC0\x97t\x8F\xDB4\xD2e\xF8_t\x8E8\xB4\xD4\xC4i\xE9:\x93\xE7\xCE\xB0\x81\xFC\x9Cb1\xE0B\xE96\xB7i\xA4\xCB\xC0Q#\xF6\xE6x\x94\xAE3y\xEE \xDB\xC8).\x97nv\x9BF\xBA,&lt;3bo\x8EG\xE9:\x93\xE7\xCE\xB0\x99\xFCxb1`\x84t\xBF\xDB4\xD2e\xE0\xB6\xE4`Yl)?\x9BX '\xDD\xF56\x8DtY\xF8\xC7\xF9]B Pp\x84?%`9\xDEX8.?\x95X 8B[\xBC-\xDD\xF86\x8DtY\x80\x9D\xF9\xA2 pġ\xA5\xA6w\xA5\xF1\xE7\xC0\xF6\xF2#\x89\xC5\x80        \xD2\xEDo\xC7H\xD7\xE0\xA6F\xACZ\x8C\x82G\xFEd\xB8\x8F\xFCHb%`\x8Et\xDC4\xD2e\xB8\x91k\x83\xF6\xA4\xE0\x91\xBF\xEE&amp;?\x8CX \x98&amp;\xDDw\x8CtM\xF67bO\xB0*}0\x83\xBF \xEE)?\x89X \x98)\xDD7\x8DtY\xF64b7\xF0\xA4\xF4\x91\xC0\xFE\x80\xE5xc\xE0B\xF9\xC4b\xC0\xA7\xB6\x98+\xDD
+7\x8DtY\x80e\xF8\xA2 pġ\xA5\xA6\x9C\xF4\xF1\xC0e\~\xC8 &quot;\xD2
+q\xD3H\x97`y#I\x9C\xE2\xC2\xC0\x97\xFC\xE8a1 %\xDD7\x8DtYV5b\xE9o\x8E\xF4\xC9A\x8D\xCA\xCF\xB2ҝq\xD3H\x97`%#\xB6\xFC\xE6K\x9F&quot;\xBC\xE6V\xC0\xA3\xFC\xC4a1 .\xDD7\x8DtY0b\xB3/+}\xA2\xF0;7X\x8E7f\xCAOV\x80\x9B\xD0\xFD\xA5[䦑. \xE0\x8B.\xC0\x87\x96\x9AV\x96&gt;`\xF8\x87\xAB /\xE5g
+\x8BM\xA4[䦑. @S#\xF6\xF8\xBAI\x9F1\xB7\xE6\xBA\xC0A\xF9A\xC3b@+\xE9F\xB9c\xA4k\xD0׈=\xBE\x86\xD2\xC7̽\xB8\x9FP\x92\x9F2,t\x93F\xBA,\xAD\x8D\xD8\xE3\xEB&amp;}\xC6\xECϝ\x807\xE4\xE7 \x8B=\xA5;掑\xAE        @w#\xF6\xF8\xBAI\x9F1{r\x80\xE5xc\xA0\x8F\xFCpa1؃\xB6\xD8R\xBAin\xE9\xB2g\xF9\xA2 0ڡ\x85\xA8\x{1653D9}M\xB8xpR~\xAC\xB0\xD0Y\xBAon\xE9\xB2,`\xC4_C\xE9cfa.\&quot;?SX \xE8/\xDD=7\x8DtY\xD60b\x8F\xAF\xA1\xF41\xB3\xB7 \xAE\x95(\xAC,!\xDD@7\x8DtY\x961b\x89\xAF\xA1\xF41ӝ#\xE4\xA7        \x8B\xABH\xF7\xD0M#]\x80e\x8CX\xE2k(}\xCCt\xE4\xCB\xF1\xC6\xC0B\xF2s\x84\xC5`        \xDA&quot;\x80/\xE96\xBAi\xA4\xCB\xFC\x8B/\xBA\xFDZ\xA9Z_\xFA\x98i\xC1\xB5\x80\xD1\xF2C\x84\xC5\x80夛鎑\xAE        \xC0zF,\xF1\xF5\x91&gt;]\xF2\xDC\x98#?AX XQ\xBA\x9Fn\xE9\xB2\xACg\xC46_V\xFAD\xC9sg`\xA6\xFC\xEC`1`]鮺c\xA4k\xB0\xAA\xCB}\x93\xA5\x8F\x90&lt;w\xE6\xCB\x96\x96n\xAC\x9BF\xBA,\xAB\xB1\xE87A\xFA\xD8\xC8sg\x80\xE5xc`\xF9\x91\xC1bЄ\xB6\xE0m\xE9޺i\xA4\xCB;\xF3E`{\x876\xB2zHy\xEE \xC4\xE5G+{Hw\xD8M#]\x80\xB5\x8D\xD8\xBCJ\xFAl\xC8sg\xA0\x89\xFC\xB0`1`\xE9\xBBi\xA4\xCB\xB0\xBC\xFB\x80g\xA4σ&lt;wZ\xC9O
+v\x92F\xBA,\xCB\xB1X\x95&gt;\xF2\xDCh(?#X \xD8L\xBA\xD5n\xE9\xB2lbĪ\xA0\xBD0^rg\x80\xE5xc\xE0&gt;\xF2\x82\xC5`m\xC0d醻i\xA4\xCBk\xF0E\x80\x97\xEDt]!\xFD\xA0\xE4\xB93\xD0\~4\xB0\xB0\xABt\xCF\xDD4\xD2e\xD8LjB{a|sg`        \xF9\xB9\xC0b\xC0\xDEҝw\xC7H\xD7`+v        \xB9\x9C; \xC9\xB6\x97n\xBE\x9BF\xBA, \xBB|\x8B\xD0^_\xDCXQ~&quot;\xB0p\xE9\xFE\xBBi\xA4\xCB\xB0\x86˃\xF6\xC2\xF8\xC1\x9D\x96\xE3\x8D\xBE\xE5\xC7+\xC0U\xB4E\xFD\xA5\xBB\xF0\xA6\x91. \xF8\xA2 \xC0\xDFZ\xE5\xBAT\xFA\x89\xC9sg`u\xF9A\xC0b\xC0}\xA4\xBB\xF0\xA6\x91. @ƈ
+A{a\xE7\xCE\xC0\xF2S\x80\xC5\x80\xBBI\xF7\xE2M#]\x80\xB1Fl\xBE'}\xE4\xB93\xB0\x93\xFC\xFC_1\xE0\x86\xD2\xEDx\xD3H\x97\xE02#6\xCFK\x9F
+y\xEE \xEC'?\xFCW \xB8\xADtS\xDE4\xD2e\xA8\xB1\xFAw\xB9\xF4!\x91\xE7\xCE\xCB\xF1\xC6\xE5\xC7\xFE\x8A\xC0A\xDA&quot;\x80-\xA5\xFB\xF2\xA6\x91. \x9C\xE5\x8B.\xC0\xC6\xEDbu\x92&gt;0\xF2\xDC\xD8[~\xE6\xAF@\xBA;\xEF\xE9\x9A\xFC׈\xBFi҇G\x9E;7\x91\x9F\xF9\xAB\xF0i\xA9\xF0/\x91. p##v\xFAR\xD2gI\x9E;\xB7\x92\x9F\xF6\xAB\xF0%ݣ7\x8DtY\x80=\x8D\xD8\xE3\xEB }\xAE\xE4\xB93pC\xF9Q\xBFb\xDF\xD2mz\xD3H\x97Xۈݽn\xD2gL\x9E;,\xC7 \%?\xE4W \xBEh\x8B\xF8\x92\xEEԛF\xBA,\xF0/\xBE\xE8tvh\x99j\xE9æ\xD7n.?\xE1W \xE0Q\xBA_o\xE9\xB2\xBD\x8C\xD8\xD1\xEB,}޴\xE3
+\x9F6
+`閽i\xA4\xCBČ\xD8\xD1\xEB,}޴\xE6:\xDF\xF2\x83}\xC5\x9EH7\xEEM#]`\xB8;zm\xA5\x9B\x95\xB8]\xC0\xF9\x91\xBEbϥ{\xF7\xA6\x91. p\x99;z\x9D\xA5ϛU\xB9i\xC0r\xBC\xB1\xC04\xF9\x91\xBEJ܇\xB6\x803\xD2|\xC7H\xD7\x80\x9D\xF9\xA2 0ΡU\xA8]\xA4\x9BM\xB8x\xC0s\xF9y\xBEJ\xA5\x9B\xF8\xA6\x91. \xF0̈5\xBD\xB6҇͆\B\xE0\x88\xFC$_1\x80\x83\xD2M|\xD3H\x97\xF8Lj5\xBD\xB6҇\xCD\xE6\H\xE0\xB8\xFC_1\x80\x92t+\xDF4\xD2e\x80{\xB1\xA3\xD7V\xFA\xB0\xB9\xF7\xA8\xCA\xF0\xA8Jw\xF3M#]\xD8ֈ5\xBD\xB6҇\xCD}\xB9\xAB\xC0r\xBC\xB1@\xF9\xE9\xBDblC[\xC0d鞾i\xA4\xCB\xC0|\xD18\xE2\xD0R\xD3\xCA\xD2 \xFFpu\x803\xF2s{\xC5ޖn\xEB\x9BF\xBA,\xB0\xBC\xEB{q\xE9C\x85_\xB8\xC6\xC0y\xF9\xA1\xBDb'\xA5\x9B\xFB\xA6\x91. ,i\xC4*\xDF|\xE9S\x84\xD7\xDCj\xE0*\xF9q\xBDb\xE7\xA5\xFB\xFB\xA6\x91. \xACd\xC4f\xDF铃7\xB8\~\\xAF\xC0U\xD2]~\xD3H\x97\xBA\xB1\xE57N\xFA\xB4\xE0}n;\xB0o,\xB0\x8A\xFC\xA0^1V\xA1-\xA0\xBFt\x97\xDF4\xD2e \xC0]\x80#-5夏.\xE3\xF2C\xE5\xA7\xF4\x8A\(\xDD\xE87\x8DtY\xA0\x97 \x80'\xA5\x8F\x86\xF0\x87L\x90\xD1+p\xB9t\xBB\xDF4\xD2e\x80\xBCˀU\xE93\x80\xFC]\xD3\xE4\x87\xF3\x8A\x8C\x90\xEE\xF8\x9BF\xBA,3b7О&lt;\xF27L\x96\x9F\xCC+0N\xBA\xEFo\xE9\xB2\xC0T#\xF6\xEDF\xC1#/\xC0r\xBC\xB1\xC0\xF23y\xC5\xE8C[\xC0\x96ҭ\xD3H\x97\x80\xB3|\xD18\xE2\xD0Rӻ\xD2\x8D\xF8\xF3\x82\xF2y\xC5&amp;Hh\xE9\xB2\xC0(\xF6aJ@\xF9i\xBCJs\xA4\xBF4\x8DtY\xE0b\x96aY@\xF9Q\xBCbӤ?4\x8DtY\xE0\xE7w        9&quot;]g\xF2\xDC\xA0\x9B\xFC^1\x80\x99\xD2_\x9AF\xBA,\xF0\xBE{s&lt;Jי&lt;wX\x8E7\xB8\x89\xFC^1\xA6\xD1\xC0\xB7\xF4\x{1C0391}\xAE        \xFF\xE2\x8B.\xC0\x87\x96\x9A8-]g\xF2\xDC\xA0\xB3\xFC\xF8]1\x80\x88\xF4'\x81\xA6\x91. 2bo\x8EG\xE9:\x93\xE7\xCE\xFD\xE5\xEF\x8A\xA4\xA4\xBF
+4\x8DtY\xE0\x99{s&lt;Jי&lt;wXE~\xEA\xAE@V\xFA\xDB@\xD3H\x97~\xB17ǣt\x9D\xC9sg\x80\xB5\xE4\xE7\xED\x8Aĥ?4\x8DtY\xE0#\xF6\xE6x\x94\xAE3y\xEE \xB0o,\xC0\x97\xFC\xBC]%.\xA4-\x803\xD2        \x9AF\xBA,\xDB\xF2E\xE0\x88CKM\x9C\x96\xAE3y\xEE \xB0\xB4\xFC\xA4]1\x80&amp;\xD2        \x9AF\xBA,\xDCш\xBD9\xA5\xEBL\x9E;l ?fW \xA0\x95\x{1270A6}\x91. w1bo\x8EG\xE9:\x93\xE7\xCE\xDB\xC8\xD8\xE8&amp;\xFD\xB5\xA0i\xA4\xCB\xC0\xE6F\xEC\xCD\xF1(]g\xF2\xDC`3\xF9\xE9\xBAb=\xA5\xBF4\x8DtY\xD8Ј\xBD9\xA5\xEBL\x9E;,\xC7 pD~\xAE\xAE\xC7i\x8B`\xB2\xF4g\x83\xA6\x91. \xC0|\xD18\xE2\xD0R\xA7\xA5\xEBL\x9E;l,?TW \xA0\xB3\x{1170E6}\x91. \xCB\xB17ǣt\x9D\xC9sg\x80\xED\xE5'\xEA\x8A\xF4\x97\xFE~\xD04\xD2e`I#\xF6\xE6x\x94\xAE3y\xEE p\xF9q\xBAJKHBh\xE9\xB2\xB0\x92{s&lt;Jי&lt;w\xB8\x9B\xFC,]1\x80U\xA4\xBF&quot;4\x8DtY\xE8n\xC4\xDE\x8F\xD2u&amp;ϝ\x96\xE3\x8D\xB8D~\x8A\xAEߴE\xD0_\xFACB\xD3H\x97 \xC0]\x80#-5qZ\xBA\xCE\xE4\xB93\xC0\x9D\xE5G\xE8\x8A,'\xFD9\xA1i\xA4\xCB@##\xF6\xE6x\x94\xAE3y\xEE @~x\xAE\xC0\x8A\xD2_\x9AF\xBA,\xE4\x8D؛\xE3Q\xBA\xCE\xE4\xB93_\xF2\x93s\xC5֕\xFE\xAE\xD04\xD2e c\xC4\xDE\x8F\xD2u&amp;ϝ\xF8S~f\xAE\xC0\xD2ҟ\x9AF\xBA,L5bo\x8EG\xE9:\x93\xE7\xCE\xCB\xF1\xC6L\x90\x98+p+\xDA&quot;\xD8R\xFA\xEBB\xD3H\x97\xE0,_t\x8E8\xB4\xD4\xC4i\xE9:\x93\xE7\xCE&lt;\x91\x98\xAB\xB0\x87\xF47\x86\xA6\x91. \xC0\xDA\xEC\xBC\x94\x95+\xB0\x87\xF47\x86\xA6\x91. \xC0\x92\xEC\x94\x9F\x93+\xB0\x93\x{1171A6}\x91. \xC02\xEC\x94\xE4'\xE4\x8Al&amp;\xFD\xB1\xA1i\xA4\xCBН]B`9\xDEX\x80\xF2\xE3q\xC5v\xA2-\xBE\xA5?94\x8DtY\xFE\x9F/\xBA@\x875,\xBF\xC9\xC6\xD8U\xFA\xABC\xD3H\x97\xA0\xBB\x84'\xE5\xA7\xE2\x8A\xEC-\xFD\xED\xA1i\xA4\xCBf\x97\xE0\xF9y\xB8b\xDBK~h\xE9\xB2d\xD8%\xB8V~\xAE\xC0\xA4\xBF@4\x8DtY\xA6\xB2K,\xC7 \xB0\x84\xFC0\1\x80\x85h\x8B\x803\xD2!\x9AF\xBA,\xC0\xB6|\xD1\xFA8\xB4@\xA8a\xFE\x8F}{\xDBqK\x96\xFA\xFF_]}\xEC\xF1\xADn\xDAɈ\xDC\ \x81\xB0\xC7%e=\x90\x89 \x9E\x92?\x83[ p\xE9=Di\xD2c8\x8B.!\xC0\xD9\xF27p\x8B\xEE&amp;\xBD\x8D(Mz,G\xD2%\xB8F\xFE\xFAm1\xC0
+\xA5\xA5I\x8F\xE0\xBA\x84Wʟ\xBE-\xB8\xAD\xF4Z\xA24\xE9\xB1&lt;I\x97\xC7 \xB0\x81\xFC\xD1\xDBb\x80*^\x8B\x80\x8B\xA57\xA5I\x8F\x98\xC1F\xE8\xF1P\x81\xD0 \xC0        \xF2o\x8BH\xEF'J\x93 \xC0\xF7t        \xE2\xF2\xE7n+xS*\xFC$\xE9\xB1|J\x97\xA0D\xFE\xD6m1oJ\x85\x9F'=\x80\xBF\xE8T\xC9_\xB9-\xE0\x97\xF4\xA2\xA24\xE9\xB1\xFCG\x97\xC7 p\xF9\xB7\xC5W\xF2Z\xF4K\xEF*J\x93 `\xA3 \xF4x\xA8@\xE8\x85 !߶\x80\xF7\xD2\x8BҤ\xC7܎.!@\xB9\xFCe\xDBb&gt;\x94^Z\x94&amp;=\xE0.t        Fȟ\xB5-\xE0 \xE9\xD5Ei\xD2cv\xA6K0H\xFE\xA0m1_Ko/J\x93 \xB0!]B`O,o\xD3J\x85\xC0\xB1\xBC\xBBJ\xEF0J\x93 \xF0]\xA0\xC7CB/,\x95\xF2\xA7l\x8BxDz\x87Q\x9A\xF4X\x80\xD9t        \xA6\xCB߱-\xE0A\xE95Foғ\xE6\xD1%\xD8C\xFE\x82m1K\xD2ˌҤ\xC7\x8C\xA1K\xB0\x93\xFC\xF9\xDAbV\xA5\xF7\xA5I\x8Fh\xA7K\x8C\xE3\x89\xE0[\xF9۵\xC5K\xBC\xFC\x92\xDEj\x94&amp;=\xE07]\xA0\xC7CB/,\xE5\xAF\xD6\xF0\xB4\xF4b\xA34\xE9\xB1Et        \xF6\x96?Y[ \xC0\x8B\xD2\xEB\x8DҤ\xC7\x84\xE9\xDCD\xFE^m%\xAFKo8J\x93 \x90\xA1Kp+\xF9c\xB5\x95%\xBD\xE7(Mz,\xC0ut        \x80q&lt;\xB1\xBC.\xA6\xB6\xE0O^\x8B^\x91\xDEs\x94&amp;=ؖ\x8D.\xD0\xE3\xA1\xA1\x80\xE5o\xD4p\xAC\xF4\xB6\xA34\xE9\xB1\xA7\xD0%\xB8\xB9\xFCu\xDAb\x97^x\x94&amp;=\xE0H\xBA\x84\xBCi\xFC\xBF\xF4Σ7\xE9\xC9\xAF\xD2%\xE0\x97\xFCQ\xDAbΓ\xDE|\x94&amp;=\xE0I\xBA\x84\xC08\x9EXΖ\xBFH[ ܍\xD7&quot;\x80\x8B\xA5\x97\xA5I\x8Ff\xB0\xD1z&lt;T \xF4\xC2pK\xF9\x8B\xB4\x95\ \xBD)Mz,\xC0\xF7t        \xF8Z\xFEm%\xD7HoAJ\x93 \xF0)]B\x91?D[ \xC0eҋ\x90Ҥ\xC7\xFCE\x97\x80\xC7\xE5O\xD0p\xA5\xF4.\xA44\xE9\xB1\xFF\xD1%\xC6\xF1\xC4\x97\xBF?[ l\xC6k\xC0\xE9\x8DHi\xD2c\x80\xAB\xD9\xE8=*za\xE0\x9D\xFC\xE5\xD9b&quot;\xD2K\x91Ҥ\xC7\xB7\xA3K\xC0+\xF2gg\x8BHI\xEFEz\x93\x9E ܂.!\xAF\xCB\x9C- +\xBD)Mz,\xB03]B\x94?8[        @\zAR\x9A\xF4X`C\xBA\x84\xC08\x9EX\xFA\xE5\xAF\xCDV\xE3x-\xD8UzMR\x9A\xF4X\xE0%6\xBA@\x8F\x87
+\x84^XX\x97\xBF3[ @\x89\xF4\x9A\xA44\xE9\xB1\xC0l\xBA\x84\x9C*d\xB6\x80*\xE9eIi\xD2c\x80yt        \xB8@\xFE\xBCl1m\xD2\xFB\x92Ҥ\xC7c\xE8p\x99\xFCm\xD9b:\xA5\xB7&amp;\xA5I\x8F\xAA\xE9\xE3xb\x98.U\xB6h\xE3\xB5\x80_ҋ\x93Ҥ\xC7\xBF\xD9\xE8=*za\xE0h\xF9\x93\xB2\xC54K\xEFNz\x93\x9E \xB4\xD0% (L\xB6\x80~\xE9
+Ji\xD2c\x800]B\xE4\x8F\xC9V0Bz\x89R\x9A\xF4X C\x97\x80\xF9K\xB2\xC5L\x91ޣ\x94&amp;=\xB8\x8E.!0\x8E'\x80\xED\xE5o\xC8\xF3Z\xC0+ҫ\x94Ҥ\xC7\xC0\xB6lt\x80\xBD\xB0p\xB9\xFC\xD9b\xC6I/TJ\x93 \x9CB\x97\x80f\xF9ӱ\xC5L\x94ީ\x94&amp;=8\x92.!\xFD\xF2wc\x8B\x98+\xBDY)Mz,\xF0*]B\xA6\xC8_\x8C-`\xB4\xF4r\xA54\xE9\xB1\xC0\x93t        \x80q&lt;\xB1\xDC\\xFE\l1p8\xAFE\,\xBD_\xE9Mz2 `\xA3 \xF4x\xA8@\xE8\x85\x80&gt;\xF9[\xB1\x95\xEC!\xBDe)Mz,\xF0=]BF\xCB\x8A-`\xE9-Koғ\x80\x8F\xE9\xB0\x81\xFC\x89\xD8bv\x92޵\x94&amp;=\xF8\x8B.!\xDB\xC8߇-`3\xE9uKi\xD2c\x80\xFF\xE8\xE3xb\xE0k\xF9\xE3\xB0\xC5\xC0*\xAFE\x8C\x90^\xBA\x94&amp;=\xAEf\xA3 \xF4x\xA8@\xE8\x85\x80i\xF2ga\x8B\xD8Uz\xEFR\x9A\xF4X\xB8]B6\x96\xBF        [ \xC0\xDE\xD2ۗҤ\xC7\xC0-\xE8\xB0\xBD\xFC5\xD8b\xB6\x97^\xC0\x94&amp;=v\xA6K\xC0}\xE4\xAF\xC1Vp\xE9Loғ`7\xBA\x84\xC08\x9EXxQ\xFEl1\xF0\xAFE\xEC*\xBD\x86)Mz,\xBC\xC4F\xE8\xF1P\x81\xD0 \xDB\xC9\x81-\xE0&gt;қ\x98ޤ'\xC0`\xBA\x84\xDCY\xFE\xFCk1w\x93\xDEǔ&amp;=\xE6\xD1%\x80\xFC\xED\xD7bn(\xBD\x92)Mz,\x8C\xA1K?\xE4\xBFp[\xE9\xC5Li\xD2c\xA0\x9A.!0\x8E'N\x95?\xF9Z 7\xE4\xB5~I\xEFfJ\x93 \xBF\xD9\xE8=*za\xE0f\xF2\xF7^\x8B \xBD\xA1)Mz,\xB4\xD0%\x80/䏽V\xC0\x9BR\xE1'I\x8F\x800]B\xF8V\xFE\xD2k1\xBC)~\x9E\xF4d\xD0%\x80\xE5o\xBC\xC0/\xE9UMi\xD2c\xE0:\xBA\x84\xC08\x9EX\xC8\xCAx-\x86\xFDx-\x80W\xA4\xB75\xBDIO`O6\xBA@\x8F\x87
+\x84^X\xE0o\xF9Ӯ\xC5\xF0^zgS\x9A\xF4X8\x85.!&lt;-׵&gt;\x94^\xDB\xF4&amp;=\xA3K/\xCA_t-\x80/\xA4\x977\xA5I\x8F\x80W\xE9\xC0!\xF2\xE7\\x8B\xE0k\xE9\xFDMi\xD2c\xE0I\xBA\x84\xC08\x9EX(\x97?\xE7Z        y-\x80륷8\xA5I\x8F`]\xA0\xC7CB/,\xB0(ȵ\x91\xDE\xE2\x94&amp;=\xBE\xA7K\xE7\xC9_q-\x80\xA59\xBDIO\x80\x8F\xE9\xC0\xD9\xF2\xF7[\x8B`Iz\x9DS\x9A\xF4X\xF8\x8B.!\#\xBC\xB5V\xA57:\xBDIO\x807]B`O,\x8C\x96?\xDBZ \x85\xBC\xC0\xE9\xBDNi\xD2c\xB8\x9A\x8D.\xD0\xE3\xA1\xA18T\xFEfk1&lt;-\xBD\xDA\xE9Mz2\xF7\xA2K)\xF9k\xAD\xC5\xF0\xA2\xF4\x82\xA74\xE9\xB1܂.!\xC4寵V\xC0\xEB\xD2;\x9EҤ\xC7\xB03]B(\x91?\xD5Z \x87H\xAFyJ\x93 \xC0nt        \x80q&lt;\xB1\xB0\xB7\xFC\x91\xD6b\xB8\x9E\xD7&quot;\xD8Uz\xD3S\x9A\xF4X^b\xA3 \xF4x\xA8@\xE8\x85\xAE\x95\xBF\xD0Z \xC7J\xEF{J\x93 \xC0`\xBA\x84P+\x9B\xB5\x97^\xF9\x94&amp;=\x80yt        \xA0\\xFE0k1\x9C!\xBD\xF5\xE9Mz23\xE8\xC0\xF9\x93\xAC\xC5p\x9E\xF4\xEE\xA74\xE9\xB1T\xD3%\xC6\xF1\xC4\xC0\x9D\xE5\xEF\xB1\xC3\xBC\xBF\xA4\xD7?\xBDIO\xE0']\xA0\xC7CB/,P&amp;\x8C\xB5.\x90^\x95&amp;=\x80\xBA\x840W\xFEk1\ \xBD*Mz,a\xBA\x840]\xFE k1\&amp;\xBD
+*Mz,\xBA\x84\xB0\x87\xFC\xD6b\xB8RzT\x9A\xF4X\xAE\xA3K\x8C\xE3\x89\xBE\x90\xBF\xBEZ O\xF0Z\xBC(\xBD*Mz,\xC0\x9Elt\x80\xBD\xB0\xC0(\xF9\xBB\xAB\xC5\x91^ \x95&amp;=\x80S\xE8\xC0\xAE\xF2GW\x8B %\xBD\xEAMz2\x87\xD1%\x80\xBD\xE5ϭ@Vz?T\x9A\xF4X^\xA5K7\x91?\xB7Z        q\xE9Qoғx\x86.!0\x8E'xE\xFE\xD0j1\xBC\xE7\xB5\xB8^zKT\x9A\xF4X\x80lt\x80\xBD\xB0\xC0^\xF2WV\x8B\xA0DzQԛ\xF4d\xBE\xA1K\xB7\x95\xBF\xAFZ U\xD2\xEB\xA2Ҥ\xC7\xF01]B\xB8\xB9\xFCq\xD5bh\x93\xDE\x95&amp;=\x80\xBF\xE8o\x85$\xBD7*Mz,o\xBA\x84\xC08\x9EX\xE0&lt;\xF9\x9B\xAA\xC5ܓ\xD7&quot;`\x84\xF4\xEA\xA84\xE9\xB1W\xB3\xD1z&lt;T \xF4\xC2w\x92?\xA8Z \xCD\xD2ۣޤ'܋.!\xF0\x99\xFC5\xD5J\xE8\x97\xDE!\x95&amp;=\xE0t        \x80\xAF\xE5O\xA9V\xC0\xE95Roғ\xB6\xA5K&lt;&quot;D\xB5\xA6Ho\x92J\x93 \xB0]B`O,\x94\xBF\xA0Z̖\xBC\xBBJ/\x93z\x93\x9E \xF0&lt;]\xA0\xC7CB/,\xC0\xF2\xB7S\x8B`\x9C\xF4J\xA94\xE9\xB1\x83\xE9\xCF\xC9N-\x80\x89\xD2[\xA5Ҥ\xC7̣K\xBC&quot;5\xB5\xE6J\xEF\x96J\x93 0\x83.!\xF0\xBA\xFC\xBD\xD4b-\xBD^*Mz,@5]B`O,\xD0,/\xB5\x92\xA1\xBC\xFC\x92\xDE0\xF5&amp;=\xE0']\xA0\xC7CB/,\xC0\x8A\xFC\xA5\xD4J\xD8Cz\xCFT\x9A\xF4X\x80\xBA\x84\xC0I\xF2gR\x8B`\xE9=Soғ\x92t        \x80S\xE5\xA4\xC0N\xD2ۦҤ\xC7\xE8\xC8_G-\xA6\xCA\xD3?O\xDBJ/\x9Cz\x93\x9E p]B`O,0W\xFE.j1
+\xDE\xFF0\xBEU}
+\x80*\xE9\xB5Si\xD2c\x81=9tz&lt;T \xF4\xC2'\xB5\x98\xAA\xEF깿\xC0\x87қ\xA7ޤ'O\x97\x88ȟC-\xA6\xE7[:\xFC\xAF\xF0\xA6W\xF8I\xD2c\xA3Kd\xE5ϡVR\xF2\xCD\xF8W\xF8GzU\x9A\xF4X\x80W\xE9
+\xF2\xB7P+)\xF9BV\xFF
+K\xD2[\xA8ޤ'&lt;C\x97\xC7 l,\xB5\x98\x82\xEF\xE1\xE7\x9BP\xF6\xD8^zU\x9A\xF4X`\x87.@]B\xA0M\xFEj1\x83\xBE^\x94\xDEE\xF5&amp;=\xE0\xBA\x84@\xA7\xFC\xF1\xD3b\xA6|p\x8E\x92\xDEH\x95&amp;=\xE0c\xBA\x84@\xB3\xFC\xE5\xD3bF|^\x8E\x95^J\xF5&amp;=\xE07]B\xA0_\xFE\xE6i1\xFD\x80\x93\xA4WS\xA5I\x8Fx\xD3%\xC6\xF1\xC4\xB7\x95?xZL\xF3\xE0l\xE9\xEDToғ\x81K9tz\xE8\xB3\xE4O\x9DS\xFB\xB9\xB8LzGU\x9A\xF4X\xE0^t        \x80\xA1\xF2\xA7N+\xE9\xFC,\,\xBD\xA6*Mz,p \xBA\x84\xC0h\xF9;\xA7Ŵ}&quot;\xD2k\xAAޤ'\xDB\xD2%6\x90\xBFpZL\xCF@\zYU\x9A\xF4X`7\xBA\x84\xC08\x9EX\x80\xCF\xE4ϛS\xF23P&quot;\xBD(\xEAMz2\xF0&lt;\x87.@]B`3\xF9æ\x81\xA0MzcT\x9A\xF4X`0]B`K\xF9\xAB\xA6i\xA0Szoԛ\xF4d`]B`c\xF9{\xA69\xA0_z\x87T\x9A\xF4X`]B`{\xF9c\xA6!`\x8A\xF4&amp;\xA97\xE9\xC9@/]B`O,\xC0\xD3\xF2\x97L\xF5`\x9C\xF4J\xA94\xE9\xB1\xC0O]\x80\xBA\x84\xC0\xDD\xE4Ϙ\xBA\xC0P\xE9\xC5Ri\xD2c\x80\xBA\x84\xC0=\xE5o\x98Z\xC0\xD2K\xA6Ҥ\xC7I\xBA\x84\xC0\x9D寗*\xC06ҫ\xA6Ҥ\xC7\xBA\x84\xF9ӥ\xBE\xB0\x99\xF4©7\xE9\xC9\xC0Et        \x80q&lt;\xB1'\xC9-\x95\x80]\xA57O\xA5I\x8F\x85=9tz\xE8\xFC)\xB1T\xB6\x97^A\xF5&amp;=8\x9E.!\xC0{\xF9[\xA5\x8Ep\xE9]Ti\xD2c\x80\xC3\xE8|!\xAB\x94w\x93\xDEH\xF5&amp;=x\x89.!\xC0\xB7\xF2WJ\xD1p[\xE9\xD5Ti\xD2c\x80g\xE8\xE3xbR\xF2'J\xA1@zG՛\xF4dh\xE7\xD0\xE8\xA1K\xB0$\x9C\x94\xFC\x92^V\x95&amp;=\xF8\x86.!\xC0\xF2\x97I\x97\xFE\x91^Y\x95&amp;=\xF8\x98.!\xC0\xD3\xF2gI&gt;\x93\xDE]\xF5&amp;=\xF8M\x97\xE0E\xF9\x83\xA4\xF3J\xAF\xB2J\x93 \xBC\xE9\xE3xb:寑\xCE \xACJ\xEF\xB4z\x93\x9E \x97r\xE8\xF4\xD0%8V\xFE\xE9\xE4\xC0\xAA\xF4N\xAB4\xE9\xB1p/\xBA\x84g\xC8\xDF!]x\z\x9B՛\xF4d؟.!\xC0y\xF2H\xD7\x97\xDEf\x95&amp;=\xB6\xA5Kp\xB6\xFC\xF9Q&quot;\xF0\xA0\xF4*\xAB7\xE9\xC9\xB0]B`O,\xC0P\xF9ã\\xE0A\xE9UVi\xD2c\xE1y]\x80\xBA\x84\x97ɟ\x91\xDEc\x95&amp;=\xD3%\xB8F\xFĘ/\xF0\xAD\xF4\xAB7\xE9\xC90\x8C.!\xC0\xF2wE\xF5\x80o\xA5\x97X\xA5I\x8F\x80t        N\x95?$\xF8Zz\x83՛\xF4d\xE8\xA5K\x8C\xE3\x89$94?\xF0\xB5\xF4\xAB4\xE9\xB1\xF0\x93C\xA0\x87.!\xC0I\xF2\xD7B;&gt;\x93\xDE]\xF5&amp;=*\xE8\x9C!t\x83\xC0gһ\xABҤ\xC7@\x92.!\xC0I\xF2\x87Aw
+|(\xBD\xB8\xEAMz2\M\x97\xE0&lt;\xF9{\xA0[&gt;\x94^\\x95&amp;=.\xA2K\x8C\xE3\x89$t\xFB\xC0{\xE9\xADUoғِC\xA0\x87.!\xC0\xA9\xF2\xD7?\xF2\xBF\xC0?\xD2+\xABޤ'\xC0\xF1t        Ζ\xBF\xFB\x91w\x80\xA4WV\xA5I\x8F\x80\xC3\xE8\ \xF1#\x9F\xFE\x94\xDEW\xF5&amp;=^\xA2Kp\x81\xFC\x95\x8F&lt;\xF8Sz_U\x9A\xF4Xx\x86.!0\x8E'`\xA8\xFC}\x8F\xAC~Ho\xAAz\x93\x9EL;\x87.@]B\x80\xCB\xE4\xCFz\xE4\x85\xC0\xE9MUi\xD2c\xE0\xBA\x84W\xCA\xF4\xC8\x807\xA5\xC2ϓ\x9E \xD0%\xB8R\xFE\x88G\x8E\xBC\xE9~\x92\xF4X\xF8M\x97\xE0b\xF9\xF3\x9D\xCF\xD3\xFF\x96\xD2;\xAAޤ'pw\xBA\x84\xC08\x9EX\x80
+\xE4\xAFv&gt;ʠuD\xB8\xB9\xF4\x82\xAA7\xE9\xC9\ʡ \xD0C\x97 &quot;\xAF\xF3w\x86\xFE\xD8S\xC0ͥT\xA5I\x8F\xE0^t        &quot;\xF2g:g\x83\x8F0%\xDCYz;՛\xF4d\xF6\xA7K\x90\x92\xBF\xCE\xF9_v\xFA,\xE3\xC0m\xA5WS\xA5I\x8F`[\xBA\x84A\xF9\xBB\x9C\xF6\xBE\xF1O47\xDCSz/՛\xF4d\xB6\xA2K\x8C\xE3\x89\xD8L\xF6g\xEFO7:\xDCSz/U\x9A\xF4X\x9E\xE7\xD0\xE8\xA1K\x90\x95=\xC1\xB9\xCF'n(\xBD\x94\xEAMz2\xC9Ѥ?:0\x9B.!@\\xEA\xEE\xE4\x86y\x83pC\xE9\xA5Tin8\x8E\xD4G\xF6\xA0K\xD0\xE0\xFA\xA3\x93\xF9\x93\xA3\xB1\xE0n\xD2\xA9\xDE\xDCd
+W~L`?\xBA\x84%\xAE\xBC8\xA9\x95?9n%\xBD\x8E\xEA\xCD\xDE_\xFE\x9Fؘ.!0\x8E'`WW^\x9CL\x91?&lt;\x9An%\xBD\x8E*͖_\xF8y
+\xB8]B\x80ל\x9B \x95\xBF=\x9A\xEE#\xBD\x8B\xEA\xCD6\xDF\xF3\xB1\xB8]B\x80*gߚ\xEC!{46\xDCDzU\x9A\xE9\xDF\xED!??p[\xBA\x84m\xCE;4\xD9R\xFE\xFChl\xB8\x83\xF4\xAA7\xBF\xD21\x80\xD2%hsޡ\xC9\xF6\xF2\xE7Gc\xC0\xA4\xB7P\xA5\xF45\x9E\xF1[܇.!0\x8E'\xE0;\xF9\xF9\xF4\xBF\xFF\xFD&amp;w\x93\xBF@\xB6\x97^A\xF5\xA6\xFC\xDB;\xFB؛.!@\xA7\xAFOF\xFE\xFCcK\xFE\x9E\xF2Hc\xC0\xF6\xD2+\xA8\xD2t~c\x97\xFDV[\xD2%\xA8\xF5ٽ\xC8?\xE6ۿŸ\xF2GHc\xC0\xDE\xD2\xFB\xA7\xDE\xF4|Q\x91_ `\xBA\x84\xB5\xDE_\x8A|\xF8g\x9E\xF8[\xFC\x90?B6\x96^&gt;\xC9KI\xFF\xFA\xBDt        \x9A\xFDy\xF2\xD9x\xE2o\xF1\xA1\xFC\x95\xCF\xCC\xB0\xB1\xF4\xF2I\x96\x93\xFE\x95z\xE9\xE3xb\xEE\xE6\xC7\xFD\xC7\xFF\xF9\xEFk\xD0g\xAFEސ^\x91\xBF\xF8\x99v\x95\xDE&lt;ɣI\xFF\xA6\xBDt        F\xB3\xB8\xBD@\xFE\xFAgl\xD8Rz\xED$_%\xFD\xDB\xF4\xD2%\xCD\xE2\xF6b\xF9K\xA0\xB1`?靓|\x90\xF4/\xD0K\x97`4\x8B۠\xFCU\xD0\xD8\xB0\x9F\xF4\xCEI~&amp;\xFD\x8B\xF4\xD2%\xCD\xE2\xB6D\xFEBhl\xD8Lz\xE1t\xF7\xA4\xE7\xF4\xD2%\xC6\xF1\xC4\xDC\xDC\xFB\xD7 \xAFEm\xF2\xD7Bc\xC0f\xD2 \xA7;&amp;=s\xA0\x97.!\x9C'946\xEC$\xBDm\xBAQңz\xE9\xC05\xF2WDc\xC0N\xD2ۦ͓/\xD0K\x97&quot;\xF2GE3\xC06ҫ\xA6=\x93\x9E*\xD0K\x97\xE2\xF2F3\xC0\xD2{\xA6\xAD\x92&amp;\xD0K\x97\xC7 ps^\x8B\xB6\x97?66\x90^2\x8DOz\x80@/]B\xA8\x95?&lt;\xA6Ko\x98\xCE\xCA\xD9\xF6\xE21\x83\xE8\xC0\xF9#\xA7\xB1`\xBA\xF4\x86\xE9Ȝ\xFD/
+0\x88.!\x8C\x93?xFK\xAF\x97\xC8ٟ\xEB\xE2\x89\x83\xE8\xC0h\xF9㧱`\xB4\xF4z\xE9ɜ\xFDY.\x9E0\x88.!0\x8E'\xE0\xE6\xBC\xF1\x85\xFC!\xD4\xD80Wz\xB7\xB4\x98\x8F6\xBA\xFE\xFFgg4\xD3%\x80-\xA5/\xA2\x80\xB9һ\xA5\xEFs\xF6\x8F}\xF1 \xA2Kw\x90\xBF\x91\x9A\x86J/\x96&gt;\xCD\xD9?\xED\xC5\xDF30\x88.!\xDCM\xFE^jf\x98(\xBDU\xFA7g\xFF\x90\xBD\xC0 \xBA\x84pg\xF9۩\xB1`\x9C\xF4J鿜\xFD\x83]\xFC\x95\x83\xE8\xE3xbn\xCEk\xE7\xC9\xDFQ\x8D
+\xB3\xC46I\x9Flt\xFC'\xB2_,\xD0L\x97x/\xDEΛf\xB9r{t\xC1\xCFp\xE5W̢K|-\xDEΛ\xB9`ct\xC1?}\xE57̢K&lt;.\xDEΛ\xFA\x9D\xBD%\xBA\xE0߽\xF2\xEBf\xD1%\x9Eo\xE7\xCD
+\x9DN] ]\xF3\xEF^\xF6]\xE3\xE8\xE3xbn\xCEk\x9D\xE2\x{DF39}\xA0ǹ\xAB\xA0\xCF7\xBA\xFE+\xD9/h\xA6K.^\xD0\xB2\xD2\xFB\xA1\x92\xFE
+\x80^\xBA\x84\xC0\xA9\xF2\xE7S3\xC0\xF5\xD2;\xA1\x92\xFE
+\x80^\xBA\x84\xC0e\xF2\xA7Tc\xC0\xD2K\xA0\x92\xFE
+\x80^\xBA\x84@D\xFE\xACjl8Iz\xF1s@\xD2_!\xD0K\x97\xC7 ps^\x8B\xD8R\xFE\xC4jl8Pz\xD9s@\xD2_!\xD0K\x97\xA8\x92?\xB7^\x94^\xF0\x90\xF4W\xF4\xD2%j\xE5O\xAF\xC6\x80'\xA4\x97:$\xFD\xBDt        \x80\xF2gXc\xC0\x83ҋ\x9C\x92\xFE
+\x80^\xBA\x84\xC08\xF9\x93\xAC\xB1\xE0 \xE9\xE5\xCDI\x85@/]B`O,\xC0\xCDy-\x82\xF7\xF2Z3\xC0?\xD2 \x9B\x92\xFE
+\x80^\xBA\x84\xC0N\xF2\xD7Z3\xC0\x9B.!\xB05]B`W\xF9˭\xB1\xB8\xA7\xF4V怤\xBFB\xA0\x97.!p\xF9+\xAE\xB1\xB8\x8F\xF4&amp;怤\xBFB\xA0\x97.!p7\xF9\x8B\xAE\xB1 \xB8\x9EIt`6]B`O,\xC0\xCDy-\x82c\xC5\xDByspO\xC1\x95L\xFA\xA3\xB3\xE9\xFCo\xE7\xCD
+\xC0}\xD70\xE9\x8F̦K\xF0^\xBC\x9D77{ \xAE^\xD2\x98M\x97\xE0k\xF1v\xDE\xDC\xEC'\xB8nIt`6]B\x80%\xF1\x82\xDE\xD0\xEC!\xB8bIt`6]B`O,\xC0\xCDy-\x82*\xF1\x82\xDE\xDC ܩ\xA4?:0\x9B.!\xC0!\xE2\x{DF39}$\xB8GIt`6]B\x80\xC3\xC5\xDBysP.\xB8;It`6]B\x80S\xC5\xDBysP(\xB8/It`6]B\x80\xCB\xC4\xDBysP&quot;\xB8#It`6]B`O,\xC0\xCDy-\x82m\xC4\xDBys܋\xA4?:0\x9B.!@\\xBC\x9D77&lt;B\x97\xA0J\xBC\x9D77|F\x97\xA0V\xBC\x9D77\xFCI\x97`\x8AxAonnN\x97\xC7 ps^\x8B\x80\xE2\x{DF39}\xB8\x8C\x8D.\xD0\xE3\xA1\xA1\x80b\xF1v\xDE\xDC܄.!\xC0N\xE2\x{DF39}ؘ.!\xC0\xAE\xE2\x{DF39}،.!\xC0\xC4\xDBys\xB0]B`O,\xC0\xCDy-^o\xE7\xCD
+\xC0]\xA0\xC7CB/,\x9B\x8A\xB7\xF3\xE6`]B~\x88\xB7\xF3\xE6\xA0\x9C.!\x8A\xF4\xE6\xA0\x8D.!ߊ\xB7\xF3\xE6\xA0\x81.!0\x8E'\xE0\xE6\xBCq\xF1v\xDE\xDCwc\xA3 \xF4x\xA8@\xE8\x85\x80\x8F\xC4\xDBysp%]Bo\xE7\xCD
+\xC0\xD9t        \xE0\xFFط\xA3\xC9m] \xA0\xF9\xFF\x9F\xCE\xC5Ap \x93Lw\x8FU%s\x93\xF2Z\xE0c\xBA(9\xDAH`\xBB\xF8t\xDE\xDC\xB8\x83YBn\x9FΛ\xBB\x98%\xC6\xF1\xC5&lt;\x9Cc0Z|:on\xB9\xD1\xFA\xB84@\xE8\xC0\xC0n\xF1鼹\xB0\xCA,!\xC4\xF4\xE6\xC0\x99%\xA0\x9B\xF8t\xDE\xDC\xF8\x92YB:\x8BO\xE7\xCD
+\x80\xB3\x84\xC08\xBEX\x80\x87s,\x9E,&gt;\x9D77\x807\xBA@\x97Xh&amp;&gt;\x9D77\x802K\xC0t\xF1鼹&lt;\x84YBN\x9FΛ\xC0\xC1\xCCp\xAA\xF8t\xDE\xDCc\x96\xC7 \xF0p\x8EE\xEF\x89O\xE7\xCD
+\xE0mnt\x80&gt;.
+:\xB0p\x96\xF8\x80\xDE\xDC&amp;2K\xC0\xC3ŧ\xF3\xE60\x85YBx\x89O\xE7\xCD
+\xA03\xB3\x84\xF0\xA5\xF8t\xDE\xDC\xBA1K\x8C\xE3\x8Bx8\xC7&quot;\x80\x88\xF8t\xDE\xDC\x80's\xA3 \xF4qi\x80Ё\xFE_|:on)f        \xE0m\xF1鼹T2K[ħ\xF3\xE6p7\xB3\x84\xB0]|:onw0K\x8C\xE3\x8Bx8\xC7&quot;\x80\x89\xE2zsFs\xA3 \xF4qi\x80Ё6\x89O\xE7\xCD
+\xE0mf         %&gt;\x9D77\x80%f        \xA0\x83\xF8t\xDE\xDC\xFE\xC8,!t\x9FΛ\xC0\x97\xCC\xE3\xF8bα\xE0i\xE2\xD3ys\xE2\xDC\xE8}\ t`\x80\xE2\xD3ys\xCE,!L\x9FΛ\xF0@f        `\xBA\xF8t\xDE\xDC\x80\x870K\x87\x89\xE8\xCD
+8\x95YB`_,\xC0\xC39\xB0$&gt;\x9D77\xE0snt\x80&gt;.
+:\xB0\xC0|\xF1鼹ә%\x80\x8AO\xE7\xCD
+\x98\xC8,!&lt;\|:on\xC0f        \x80\x97\xF8t\xDE\xDC\x80\xCE\xCC\xE3\xF8bα\x802\xF1鼹\xFFp\xA3 \xF4qi\x80Ё\x9E-&gt;\x9D77\xA0\xB3\x84\xC0\x92\xF8t\xDE\xDC\x80\xB3\x84\xC0'\xE2zsʘ%v\x89O\xE7\xCD
+\xB8\x95YB`_,\xC0\xC390E|:onp 7\xBA@\x97X\x80ħ\xF3\xE6la\x96\xA8\x9FΛ\xF06\xB3\x84@J|:on\xC0\xB3\x84@\xF1鼹d\x96\xC7 \xF0p\x8EE&lt;A|:onЊ]\xA0\x8FK\x84,@H|:ot\xC0?\xCC\x83ħ\xF3\xE6Of\x96*&gt;\x9D77x\xB3\x84\xC0\xE2\xD3ys\x80'0K\x8C\xE3\x8Bx8\xC7&quot;\xF8\xA3\xF8t\xDE\xDC`/7\xBA@\x97X\x80\x99\xE2\xD3ys\x80\x93\x98%&quot;&gt;\x9D77\x98\xCE,!\xF0@\xF1鼹\xC0Df        \x80\x87\x8BO\xE7\xCD
+\xA60K\x8C\xE3\x8Bx8\xC7&quot;\xB8U|:ot\xF0nt\x80&gt;.
+:\xB0\x8F\x9FΛ\xB4b\x96\xE0\x8A\xF8t\xDE\xDC \xCE,!\xC0\xAA\xF8t\xDE\xDC \xC2,!\xC0'\xE2\xD3ys\x802f        \x80q|\xB1\xE7X\x9Dŧ\xF3\xE6\xC0\x91\xDC\xE8}\ t`X\x9FΛlg\x96\xE0n\xF1鼹\xC0f        *ŧ\xF3\xE6o3K\x90\x9F\xCE\g\x96\xC7 \xF0p\x8EEp\xB0\xF8t\xDE\xDC\xE8ɍ.\xD0ǥB\x80Z\xF1鼹\xC0\xEF\xCC4\x9FΛ\xFC\xC3,!\xC0 \xF1鼹\xF0df        \x86\x8AO\xE7\xCD
+\x80\xA71K\x8C\xE3\x8Bx8\xC7&quot;\xE0K\xF1鼹p7\xBA@\x97X\xE6\x88O\xE7\xCD
+\x80S\x99%8X|:on\x9C\xC4,!\xC0Cħ\xF3F\xC0hf        \x9E)&gt;\x9D77\xC61K\x8C\xE3\x8Bx8\xC7&quot;\xE0\xF1鼹\xF07\xBA@\x97X#&gt;\x9D77\xDA2K\xC0w\xE2\xD3ys\xA0\xB3\x84\\x9FΛqf        X\x9FΛf        \x80q|\xB1\xE7Xt\x9FΛ\xC0\xF1\xDC\xE8}\ t`\xE0\x82\xF8t\xDE\xDC\xB8U\xCFY\xC2\xD5UOVsN`U|:ot\xECճG\xF7\x8E\xEEb\xE0T5\xE7&gt;\x9FΛ\x9F\xEB٣{Gw1p\xAA\x9As
+ŧ\xF3\xE6\xC0{z\xF6\xE8\xDE\xD1] \x9C\xAA\xE6\x9CЇ$\xE00\xF1鼹\xF4\xE7F\xE8\xA3g\x8F\xEE\xEA\xAA\x80'\xAB9\xA7P &gt;\x9D77~ֳG\xF7\x8E\xEEb\xE0T5\xE7\x8Aŧ\xF3\xE6\xC0\xEFz\xF6\xE8\xDE\xD1] \x9C\xAA\xE6\x9C@P|:on\xFC\xA3g\x8F\xEE\xDD\xC5\xC0\xA9j\xCE)4\x9FΛ\xC0\x93e{t\xEF\xE8&quot;\xF8K_p4\xDFB/\xF1鼹\xD4p\xA3 \xF4\x91m\xC7]\xCDp\xD1\xDE\xC3 \xFDŧ\xF3Fp\xBCl;\xEE
+\xC3i~x\xBC\xF8t\xDE\xDC\x8E\x94mǽ\xA3a\xE0/
+O\xFC&quot;&gt;\x9D77\x80cd\xDBq\xEFh\xF8K\x93߈O\xE7\xCD
+`\xB4l;\xEE
+\xC3il\x8E\xE6[`\x97\xF8t\xDE\xDC.r\xA3 \xF4\x91m\xC7]\xCDp\xD1\xDE\xC3 NjO\xE7\xCD
+`\x84l;\xEE
+\xC3i`\xE0\xF1鼹\xB4\x95m\xC7\xD5 \\xE4\xF8@D|:on\xADd\xDBq59&gt;\x9FΛ@\\xB6W30p\x91\xE3\xC0\x8Bo!\x80\xE2\xD3y\xA3\x9EÍ.\xD0G\xB67\x9B\xC4\xF1\x80\xCE\xE2\xD3ys\xA8\x91m\xC7\xD5 \\xE4\xF8\xC0\xF1鼹\xDC'ێ\xAB\xB8\xC8\xF1\x80\x89\xE2\xD3ys\xD8+ێ\xAB\xB8\xC8\xF1\x80\xE9\xE2\xD3ys\xF8\\xB6W30p\x91\xE3\xC0\x8Bo!\x80ħ\xF3\xE6\xCC\xE2F\xE8#ێ\x9B\xCD \xE2\xF8\xC0\xA9\xE2\xD3ys\xB8.ێ\xAB\xB8\xC8\xF1\x80'\x88O\xE7\xCD
+\xE0g\xD9v\\xCD\xC0\xC0E\x8E&lt;M|:ot\xFF\x91m\xC7\xD5 \\xE4\xF8\xC0\x93\xC5G\xF3F\xF0w\xBAW30p\x91\xE3\xC0\x8Bo!\xE2\xD3ys\x8A\xB9\xD1\xFAȶ\xE3f\xB3\x838&gt;\xC0\x97\xE2\xD3ys%ێ\xAB\xB8\xC8\xF1\xFE(&gt;\x9D77\xE0x\xD9v\\xCD\xC0\xC0E\x8E\xB0$&gt;\x9D77\xE0H\xD9v\\xCD\xC0\xC0E\x8E\xF0\xB6\xF8t\xDE\xDC\x80cd\xDBq59&gt;\xBC\xF8\xE0\xF1鼹op\xA3 \xF4\x91m\xC7\xCDfq|\x80\xED\xE2\xD3ys\xC6ɶ\xE3j.r|\x80[ŧ\xF3F\xF4\x97m\xC7\xD5 \\xE4\xF8e\xE2\xA3y\xA3zʶ\xE3j.r|\x80\x94\xF8t\xDE\xDC\x80&gt;\xB2\x{DE1A}\x81\x80\x8B^| \x9FΛ&lt;\x93]\xA0\x8Fl;n6;0\x88\xE3t\x9FΛP/ێ\xAB\xB8\xC8\xF1:\x8BO\xE7\xCD
+\xA8\x91m\xC7\xD5 \\xE4\xF8Sħ\xF3\xE6\xDC'ێ\xAB\xB8\xC8\xF1&amp;\x8AO\xE7\xCD
+\xD8+ێ\xAB\xB8\xC8\xF1\xE0ŷCŧ\xF3\xE6s\xB9\xD1\xFAȶ\xE3f\xB3\x838&gt;\xC0I\xE2\xD3y\xA3ސm\xC7\xD5 \\xE4\xF8\xA7\x8A\x8F\xE6\x8D\xB8(ێ\xAB\xB8\xC8\xF1&quot;&gt;\x9D77\xE0\xD9v\\xCD\xC0\xC0E\x8E\xF0@\xF1鼹\xFF\x91m\xC7\xD5 \\xE4\xF8\xF0\xE2[\x80g\x8AO\xE7\xCD
+\x82\xDC\xE8}d\xDBq\xB3\xD9\x80A\x80\x97\xF8t\xDE\xDC౲\x{DE1A}\x81\x80\x8B\x80/ŧ\xF3\xE6\x8F\x92m\xC7\xD5 \\xE4\xF8\xFCQ|:onp\xBCl;\xAEf`\xE0&quot;\xC7`I|:onp\xA4l;\xAEf`\xE0&quot;\xC7\x80\xDFB\xB0*&gt;\x9D7:\xF8\x84]\xA0\x8Fl;n6;0\x88\xE3\xB0E|4ot0W\xB6W30p\x91\xE3\xB0]|4ot0K\xB6W30p\x91\xE3p\xB7\xF8t\xDE\xDC\xA0\xBFl;\xAEf`\xE0&quot;\xC7\xA0R|:on\xD0S\xB6W30p\x91\xE3\xC0\x8Bo!(\x9FΛ\xB8\xD1\xFAȶ\xE3f\xB3\x838&gt;ħ\xF3\xE6Y\xD9v\\xCD\xC0\xC0E\x8E@7\xF1鼹@\xBDl;\xAEf`\xE0&quot;\xC7\xA0\xB3\xF8t\xDE\xDC\xA0F\xB6W30p\x91\xE30E|:otp\x93l;\xAEf`\xE0&quot;\xC7\x80\xDFB0H|4ot\xC0\x8D.\xD0G\xB67\x9B\xC4\xF1\x98.&gt;\x9A7:\xF8P\xB6W30p\x91\xE3p\x98\xF8t\xDE\xDC\xE0
+\xD9v\\xCD\xC0\xC0E\x8E\xC0\xC1\xE2\xD3ys\x80\x8B\xB2\x{DE1A}\x81\x80\x8B\x80\x87\x88O\xE7\xCD
+~\x90m\xC7\xD5 Sv`.\xEFq\x80\xDFB\xF0\xF1鼹Є]\xA0\x8Fl;n6;p\xBC\xD5&quot;\xA3@g\xDE\xDA\xC0\xC3ŧ\xF3\xE6\xA7\xDBq5ۭ\x96\xB7\xA57
+\x8F\xE3e
+\xF0\x9FΛ\x8F\x95m\xC7\xD5 l\xB4ZRvI\xEF\xFB_\x8AW^\x99\xAExk4\xB4\xF4.\xF0:\x9E#&gt;\x9D7:\x9E#ێ\xAB\xF8\xDCj%\xB9O\xFAI\xFCO\xF1\x82+\xD3o
+\x80\x86\x96\xDE^\xC03\xC5G\xF3F\xC0ٲ\x{DE1A}\x81\x81\xAD\x96\x91\x83Ȭt\xC5[\xA0\xA1\xA5w\x81\xD7p6\xDFB\xC0\xF1Ѽ\xD1\xB0\x8B]\xA0\x8Fl;n6;0\xDAj)6\xE2\xB1\xCCJW\xBC5Zzx\xFCG|:on\x9C!ێ\xABx\xC3j\xE9H\xE9\xFFpf\xA5+\xDE
+-\xBD \xBC~\x9FΛse\xDBq5\xABV\xEBF\\xE7\xE73+]\xF1\xD6hh\xE9]\xE0upQ|:on̒m\xC7\xD5 ,Y-M\xB4}D\xB3\xD2o
+\x80\x86\x96\xDE^o\x88O\xE7\xCD
+\x80\xFE\xB2\x{DE1A}\x81\x81\xEBV+F7
+\x9FҬt\xC5[\xA0\xA1\xA5w\x81\xD7p6\xDFB@\x81\xF8t\xDE\xDC\xF8\x95]\xA0\x8Fl;n6;0\xC8j\xB9\xE8\xA9ۃ\x9A\x95\xAExk4\xB4\xF4.\xF0:\xD8(&gt;\x9D77\xFAȶ\xE3j\xAEX\xAD\x9D\xB5zV\xB3\xD2o
+\x80\x86\x96\xDE^7\x89O\xE7\x8D\x80\xA0l;\xAEf`\xE0\x8FV E}׬t\xC5[\xA0\xA1\xA5w\x81\xD7@\x81\xF8h\xDE\xE8(\x96m\xC7\xD5 \xFCl\xB5Jl,#\xDBS\xBF\xB7\x8C[\x9Fجt\xC5[\xA0\xA1\xA5w\x81\xD7@\xB1\xF8h\xDE\xE8(\x90m\xC7\xD5 \xFC`\xB5D\xDCZ:v-f\xE3\x92&gt;_\xE7\xACt\xC5[\xA0\xA1\xA5w\x81\xD7p6\xDFB@\xF1鼹ƍ.\xD0G\xB67\x9Bhn\xB5D\xD4T\x8CW\xD5jy\xB3\xD2o
+\x80\x86\x96\xDE^}ħ\xF3\xE6\xC0F\xD9v\\xCD\xC0\xC0wV\xEBCq\xAD\xF8dy\xB7\xAE\xB3x\x95銷@CK\xEF\xAF\x80\x9E\xE2\xD3ys\xE0C\xD9v\\xCD\xC0\xC0\x97V\x8BC\xAAP|\xB2Λ\x96Z\xBC\x80\xCAt\xC5[\xA0\xA1\xA5w\x81\xD7@\xF1鼹\xF0\x86l;\xAEf`\xE0K\xAB\xC5!X&quot;\xDE[\xEA1e\xADr\xB3\x8Fz\xB0|i\xE9]\xE0u0K|:on\\x94m\xC7\xD5 \xFCn\xB52\xC4\xEB\xC3{ \x8E/{\x8B\xCA\xCD&gt;\xEA\xC1\xF0\xA5\xA5w\x81\xD7p6\xDFB\xC0\xD9\xE2\xD3y\xA3\xE8ƍ.\xD0G\xB67\x9B\xE8i\xB52t\xA8ﭹ\xC3\xCA?T\xB9\xD3\xE7&lt;U\xBE\xB3\xF4.\xF0:8C|4ot\xFC*ێ\xAB\x98K\xFC\xAF\x98\xD5\xCAФ8\xBC\xB1\xEC&gt;\x8B[\xE5N\x9F\xF3T\xF8\xCEһ\xC0\xEB\xE0&lt;\xF1Ѽ\xD1\x90m\xC7\xD5 ̿\xB8\xE9f\xEC \xE1?\xDEX|\xB7-\xAC\xAA\xDC\xE6C)?Xzx\x9C-&gt;\x9A7:\x80gʶ\xE3j\xE6\s\xF3\x8B\xE9eau\xFD=wq]\xE56\xF2H\xF8\xC1һ\xC0\xEB\xE0Q\xE2\xD3ysx\x8El;\xAEf\xE0Gs\xC7\xCDW\xA6\x97\x85\xD5\xF5\xF7\xDC\xC5u\x95\xDB|\xC8#\xE0K\xEF\xAF\xE0l\xBE\x85~\x9FΛ\xC0\xDC\xE8}d\xDBq\xB3ىq\xBB\xCD7Ψ        \xAB\xBB輗?\xAA\xDC\xE3\x9E'?[zx\xF0\xB7\xB9B\x9D\xC0/\xB2\x{DE1A}\x81ǽ6?:\xA3&amp;\xAC\xEE\xA2\xF3^\xFE\xA8r\x8FOx\x9E\xFCl\xE9]\xE0u\xC0ħ\xF3\xE6p\x86l;\xAEf\xE0q\xA3\xCD\xC7ԄՍt\xDE\xCB\xCF*\xF7\xF8\x84\xE7        \xC0ϖ\xDE^\xFC &gt;\x9D77\x80\xB9\xB2\x{DE1A}\x81\x9F\xC2E6\xD7SV7\xD2y/?\xAB\xDC\xE3\x9E'?[zxpQ\xBC\xA9at\x83d\xDBq5?B\xFC\xDA\xDA\xE5\xF5'\x84ս4\xDF\xCE*\xF7\xF8\x84\xE7        \xC0ϖ\xDE^\xC0\xD9| \xDC$\xDE\xDD0:\x80/\xB9\xD1\xFAȶ\xE3f\xB3s\xBB\xF8%\xB5k\xEBQ+\xAB\xDB鿣/Un\xF0\xF8\x87        \xC0-\xBD \xBC\xF8P\xBC\xC7at
+e\xDBq5\x9F,~+\xED\xB6z\x9A\xC3
+\xC2\xEAv\xFA\xEF\xE8K\x95&lt;\xFEa\xF0GK\xEF\xAF6\x8A7;\x8C\xA0\x89l;\xAEf\xE0ců\xA1]RtXAX\xDDN\xFF}\xA9r\x83\xC7?L\xFEh\xE9]\xE0u\xC0}\xE2\x8Dsʶ\xE3j&gt;S\xFC\xDE\xD9\xDD\xF4L\x87\x84\xD5\xED\xF4\xDFї*7x\xFC\xC3\xE0\x8F\x96\xDE^Ԉw@\xCC
+\xA0X\xB6W3\xF0\x81\xE2ͮ\xA4\xC7:\xAC \xACn\xA7\xFF\x8E\xBET\xB9\xC1\xB6sia\xA9E\x9CA\xA5x\xF1-\xD0S\xBCbn\xC0\xC1\xDC\xE8}d\xDBq\xB3ٹE\xFCr\xD95\xF4X\xE7\x84\xF3v\xF4\xBB\xCA
+\xF6|\x98K\xAB\x8A\xAC\xE0$\x8A-\x83\xC4\xDB&quot;\xE6p\x93l;\xAEf\xE0\xD3\xC4o\x93\xDD&gt;Ov^A\x88\xEC\xA88ce\xBA\xE2\xADm_R\xFD\xF2Σ\xDE0T\xBC?bne\xDBq5%~}\xEC\xD2y\xB8Ղп&amp;D\xB6S\x9C\xB12]\xF1\xD6\xF6\xAE\xA7xm\xA7Rr8@\xBCQbt\x9Fȶ\xE3j&gt;G\xFC\xB2\xD8E\xF3|\xABAM\xF8R\xF1\xACLW\xBC\xB5\x8D\x8B\xA9\\xC0\xD9T]\xEF\x98\xC0\xAAl;\xAEf\xE0s\xC4/\x88].ϷZԄ/?\xC0\xCAt\xC5[۵\x92\xB2U&lt;\x81\xC2 \xF0\xE2[\xE0&lt;\xF1\xEE\x89\xD1\x9D\xB9\xD1\xFAȶ\xE3f\xB3\xB3M\xFCF؝\xF2V \x82\xB2\xF0\xA5\xE2\xA7W\x99\xAExk[\x96Q\xB3$\x80\xE7P{x\x88x\xC5\xE8\xBE\x93m\xC7\xD5 |\x88\xF8-\xB0{\xE4S\xAC\xD6e\xE1w\xC5O\xAF2]\xF1\xD6&gt;_C\xC1z\x9EF\xF9\xE0\x99\xE2]s\xF8U\xB6W3\xF0        \xE2׾\xAE\x8F\xB2ZT\x86\xDF?\xBA\xCAt\xC5[\xFBpw/\xE0\x99T`\x88\xB7W\xCC
+ ێ\xAB\xF8\xF1\xAB^W\xC6Y\xAD        \x8A\xC3[e\xBA\xE2\xAD}\x92\xFD֕&lt;\x99&quot; \xBF\x8A\xB7Z\xCC
+x\xA6l;\xAEf\xE0\xF1\xE2w\xBBn\x8AϲZԇ\xDF?\xB4\xCAt\xC5[{;\xF5}\xCB@x\xF1-\xC0\xC4{.\xE6\xDC͍.\xD0G\xB67\x9B\x9D
+\xE2\xF7\xB9n\x87ϲZT\x89\xDF?\xAE\xCAt\xC5[{/\xEFMk\xE0J1\￘p\xB6l;\xEE\xB0f\xE0\xF8}\xA5\xF5\xF8w\xB6A\xFD\xB2\xFB(~P\x95銷\xF6F\xD2;\xC0\xAFTcX\xEF;p\x98l;\xEE\xB0f\xE0\xF8\xA5\xF5\xF8w\xB6M\xFD\xE2;(~D\x95銷\xB6\x9Aq{v~\xA7 \xC0'\xE2=\xA3\x90m\xC7\xD6 \xBF\x94\xA2&gt;2\xFF\xD46\x8B\xEC&quot;\xA5\xF8\xC9T\xA6뼵\xBD\xA9\xF8\x8E\x9A \xBB\xC4\xFBF \x95m\xC7\xD6 \xBF\x88\xA2&gt;2\xFF\xD4\xEE\xD9N\xB1\xE2R\x99\xAEm\xAE\x8Dy\xF8\x99\xB2 \xF0\xE2[\x80\x8D\xE2\xBD        \xA3\xFEȍ.\xD0G\xB67\x9B\xFD\x8D\xE5
+\xF1\xB8\x88\xFDk\xBB]jkw+~\x95\xE9\xCAr-%ڸA\xFEHe\x80\xF1V\x85\xB9\xCDe\xDBq\x875\xC7/\x85\xA8\x8Fؿ\xB6R\xA9mޡx\xE3\x95\xE9jr-eٸ;\xAEP\x9C\xA0X\xBCman@C\xD9v\xDCa\xCD\xC0\xF1KF!\xEA#\xF9.#\xB8\xE5-\x8A7[\x99\xAE \xD7R\x8A\x8D[\xE0&quot;\xF5\x82\xE2- s\x9Aȶ\xE3k\x8E_,
+Q\xE1sa\xD9\x{DFE7}x\x83\x95\xE9\xEEε\xF4\xFB\xF7\xC0uJ44og\x98\x94m\xC7\xD6 \xBFL\xA2&gt;\xD2V\xABĭ\xD2\xE3\x92\xE2U\xA6\xBB5\xD7ҏo\xDCKTi\x80\xDFB\xF4om\x98&lt;\x84]\xA0\x8Fl;n6\xFB\xCB\xE2q\xD1\xC0j\xA1\xA8\x91~*\xDF*\xDEEe\xBA\xFBr-\xFD\xF2\xC6\xB0J\xA1\x80\xE6\xE2m\xA3\xEE\x96m\xC7\xD6 \xBF1\xA2&gt;zX\xAD\xC5ҏ\xE7_\x8AW^\x99\xEE\xBE\K\xBF\xBCk;\xBCA\xAD\x80A\xE2-\xA3\xEE\x90m\xC7\xD6 \xBF%\xA2&gt;\xDAX-\xE9\x87\xF4?\xC5 \xAELwS\xAE\xA5\x9Fݵޣ\\xC0P\xF1\xF6\x87\xD1\xBBd\xDBq\x875\xC7o\x85\xA8\x8FfV\x8BFʔG4+\xDD\xB9\x96~s\xD7Fx\x9B\x8A
+\x88\xB7B\x8C\xF8D\xB6wX3p\xFC6P\x88\xFAhi\xB5t58\xB3\xD2mϵ\xF4\x83\xBBv\xC0'm\x80\xDFB#\xDE17\x98.\xD0G\xB67\x9B\xFD\x8D\xE5
+\xF1\xB8hl\xB5\x80\xB5},\xB3\xD2\xED͵\xF4k\xBB\xB6\xC0\x87\xD4m8[\xBCKbn\xC0\xD9v\xDCa\xCD\xC0\xF1[?!ꣽ\xD52\xD4\xF0\x81\xCCJ\xB71\xD7\xD2O\xEDZ?\x9FS\xBA\xE09\xE2s\xBE\x93m\xC7\xD6 \xBF\xE9\xA2&gt;\xE6X\xAD'ݞìt\xBBr-\xFDή\xC5\xB0\x85\xEA
+\xCF\xF0\xABl;\xEE\xB0f\xE0\xF8\xED\x9E\xF51\xD0ja\xA9\xD7g\xFB\xB3\xD2mɵ\xF4#\xBBV\xC0.
+8落\x90m\xC7\xD6 \xBF\xD1\xA2&gt;\x86[-2e\x9AlyV\xBA\xCFs-\xFD®e\xB0\x91\xF0\xE2[\xFE\xD6\xCB\xF3\xE8\x96\x80I\xDC\xE8}d\xDBq\xB3\xD9\xDFX\xAE\x8F\x8B\x83\xAC\x9C\xBBu\xD8\xE6\xACt\xE6Z\xFA\xF3]k`/e\xF8N\xBC\xC3bt\xF0\xD9v\xDCa\xCD\xC0\xF1k;!\xEA\xE3\\xAB\xF5\xE7\xF1}\xCDJ\xF7I\xAE\xA5\xBFݵ`\xB6S\xC9\x80+\xE2\xDD\xA3\x80\x83e\xDBq\x875ǯꄨ\x8FgX\xADEe\xF72+\xDD۹\x96\xFEp\xD7j\xB8\x83b\xAC\x8Aw^\x8C\x93m\xC7\xD6 \xBF\x9E\xA2&gt;i\xB54}(\xB8\xF8Y\xE9\xDE˵\xF4W{ \xC0v*9\xF0\xA1x#\xC6\xDC\xE0\xD9v\xDCa\xCD\xC0\xF1+9!\xEA\xE3\xF1V\xCB\xD4{R \x9E\x95\xEE\x8D\K\xB2}\xC1l\xA7\x92\xBC\xF8\x80\xCFś2\xE6K\xDC\xE8}d\xDBq\xB3\xD9\xDFX\xAE\x8F ~\xB1Z\xB2&quot;ŭ8oe\xBA\xD5\K\xFF\xFDMk`/e\xB8I\xBCAcn0H\xB6W3\xF0x\xF1\xEBH\x97\x9B\x84\xAC\x96\xAF\xB2\xFAV\x9C\xB42\xDDR\xAE]&gt;Dl\xA4\x8C\xE2
+,s\x80\xE6\xB2\x{DE1A}\x81Nj_A\xBA\xD0$j\xB5\x88\x94\xB8⌕\xE9\x96rm\xF4\xF9S`5(of\x994\x94m\xC7\xD5 |\x82\xF8ͣLX\xADf\xF7\x95\xB8⌕\xE9\x96r\xED\xF5\xF9\x83` \x8A\xF7\xB6\x8C\x80c\x8CngͶ\xE3f\xB3\xB3G\xFC\xAAѕ%m\xACִ;J\q\xC6\xCAtK\xB9\xF6\xFA\xFCA\xB0\x85\xF0\xE2[\xB2\xE2}.\xA3\xE0i\xDC\xE8\xC0t\xAB-\xAC\x9D?\xFE\xB3k\x9E\xF8\xC4\xF8B\xFC\x86\xD1%\x9D\xACV\xB6\xBDU\xEE\xE0tK\xB9\xB6\xFB\xFCY\xF09\xD5h(\xDE\xF62::\xBBc&lt;!\xDB\xE3\x9A]\xEA\xA0\xC5Oⷊ\xEE%if\xB5\xB8m\xACr\xA7[\xCAu\x87\xCFR\xBA\x80\xE6\xE2-0\xA3\xA0\x89;F\x9A4\xBBfW\xD8\xFF\xF9pU\xFC2\xD1E$ַͬ]\x85\xAE\xB8\xA8\xB6\xDD\xDA&gt;\|H\xE9f\x897\xC5\xCC
+\x80\x88;\x86Z\xF5\xBBf\x97\xD7\xFC\xE1\xB0 ~\x81\xE8\xF2\x91~VKܖBW\T\xDBn\xED\xE2b\xDE\xFB+R\xD4m`\xAEx\x83\xCC\xDC\xA8\xB1ڪ\xBAQ\xDB=\x9E\x94\x9D\xCD\xE2\xF7\x86n\xE9g\xB5\xCA}^芋jۭ]\\xC9\xDB@\x84\xBA
+\xF0\xE2[F\x8B\xF7\xCB\xCC
+\x80\x89\xDC\xE8\xC0\xAB}\xAA\xDB\xF5\xDC\xE6I\xD9\xD9/~]\xE8z\x91fV\xAB\xDC煮\xB8\xA8\xB6\xDD\xDA\xF5e|\xF8\xE7TR\xB4\x80\xF3\xC4\xDBg\xE6\xC0\xAB\xAA\xF7i\xB8ٓ\xB2s\x8B\xF8-\xA1\xFBD\x9A).t\xC5E\xB5\xED֮\xAFaˏPC\xC5\xCE蓮\xEFyc\xA6\xE0V\xDD\xF6{Rvn\xBFt\x87H3\xAB\x85\xEE\xC3ZW\T+\xD3-\xE5ZZ\xC0\xAE\xDF\xE0n*6\xF0\xF1Κ\xD1p\xC5joj\x8DV[&gt;);w\x89\xDF\xBA1\xE5\xF8:\xB0\xBA\xC1\xF7X\xFC0+\xD3-\xE5Z;\xF7\xD7\xB8\x89r
+&lt;S\xBC\xD1ft|g\xB57\xB5L\x9F-\x9F\x94\x9D\xC5/]\xCEq|X\xDD\xE0\x87{,~\x98\x95\xE9\x96r\xAD\xA6\xBE\xE37\xD8N\xADx\xF1-\x8F\xEF\xBBnt\xA0\xA7\xD5\xC6ԥ/\xF9\xFC\xBE\x93BvM\xB7\x88\xDF\xFD\xB9\xE2        u\xA0r\x8F\xC5\xB32\xDDR\xAE7\xF2\xDE\xF4\xB3l\xA4V\xFC*ކ3:\x80'[\xEDJ\xFD\xA47\xF5\xBD\7\xB5\xC2f\xD7\xD0\xE1        p\xA3\xF8\x95\x9FK\xC0        \x9EP*\xF7X\xFC0+\xD3-\xE5z/\xE9\xAD?\xC0\xE7j\x80\xC4s\xE6\xF0(\xAB-\xA9[\xBAR#I?_\xC6I\xD9)\xBF\xECs\xE5\xD7\xDB\xEA@\xE5\x8Bfe\xBA\xA5\\xEFe,H\xC0'Ti\x80\x8B\xE2\xAD:s8^\xB0%5\xDE
+\x9B]@|\xFBq\xC7\xC7\xF7V\xEB\xC0\xC4RP\xB9\xC1\xE2'Y\x99\xAE&amp;\xD7R\x96\xCF7\xC0U\xE0
+\xF1Ν\xB9\x9C'ތ\x9A]\xC0R\xF6\xED \xC8f\xA7\x94K=\xBE\xB1Z&amp;\x96\x82\xCA
+?\xC9\xCAt5\xB9\x96\xB2l\xD9\xD7)\xD1/\xBE\x85\x80\xF7ħ\xF3\xE6\xC0\xDB\xDC\xE8@+:Q\xAF\xAFa\xFB2\x96R\x96\x9DWx\xFCf\xB5L,\x95,~\x92\x95\xE9\xCAr-%\xFA|_\\xA7Dl\x9F\xCE\xC0D}\xDAPS+ɶ\xE3f\xB3㶎;\xBETn\xB0\xF8IV\xA6k\x9B\xEB\xF3t\\xA4&gt;\xDC$&gt;\x9A7:\x80)Z\xB5\xA1F\x93m\xC7\xCDf'\xCC\xDD\xFFo\xB5\x8C\xAB\x95\xBB+~\x8C\x95\xE9\xDA\xE6ڒ\x80+g\x80\xF1Ѽ\xD1t֪5\xD2\x9Bm\xC7\xCDf\xA7 \xD7p\x8F\xB7Z
+\xC6U\x83\xCA\xDD?\xC6\xCAt\x9D\xB7\xB6%#\xA48\x8B\x8F\xE6\x8D\xA0\x95\x86
+\xA8\xF5Kʶ\xE3f\xB3ӎ\xB7\xA7Z-\xE3\xAAA\xE5\xEE\x8Ace\xBA\xCE[ە\x80\x9F\xA9\xCC/\xBE\x85\x80z\xF1Ѽ\xD1&lt;\x99]h\xA2a\xEA\xC5%m\\xD5\xF5\x8Cw&lt;\x8Dlv\xC6\xF0\xBF\xFEt\xAB\xA5`VA(\xDEW\xF13&lt;xk\xAB7\xE6\xE0;\xCA2@\xF1鼹D\xF4\xEC&gt;-n\x8BͶ\xE3f\xB3}\xACV\x83A\xA1x_\xC5\xCF\xF0୽\x91tc^\xBE\xA4,\xF4\x9FΛ@\x8D\xB6ݧ\xC5 ˶\xE3f\xB3}\xACV\x83A\xA1x_\xC5\xCF\xF0୽\x91toj~\xA7&amp;\xF4\x9FΛ\xC0}\xDAv\x9Fw\xC6f\xDBq\xB3ف&gt;V\xAB\xC1\x94\x9AP\xBF\xA9\xE2x\xF0\xD6\xDE˻=;\xBFR\x90f\x89O\xE7\xCD
+`\xAFέ\xA7\x95\x9D\xB1\xD9v\xDClv\xA0\x95Ղ0\xA2,\xD4\xEF\xA8\xF8\xE9\xBC\xB5\xF7\xF2n\xCF\xC0\xAFd\x80\xDFB\xC08\xF1\xE9\xBC\xD1\x8C\xE6F:\xE8\xDCzzem\xBB\x96w1\xD7M\xCF$\x9Bhe\xB5 \xF4/ \x91\xED\x9C\xAExko\xA7\xBEc\xFCC58C|4oto\xE8\xDCzZ\xD9\x9Bm\xC7\xCDfZY-\xCD+Cj/\xA7+\xDE\xDA'\xD9\xEFX\xAB\xC6'\x8A\x8F\xE6\x8D\xE0\xA2έ\xA7\x95\x9D\xB1\xD9v\xDClv\xA0\x9B՚ж87rp\xBA\xE2\xAD}\x92\xFD\xA65\xA0\x9C-&gt;\x9A7:\x80\xEF4o=\xAD\^\xB67\x9B\xE8f\xB5&amp;\xB4\xAD\xC1-g\xACLW\xBC\xB5p\xDF2\x9ELx\x8E\xF8h\xDE\xE8~ռﴲ36ێ\x9B\xCD4\xB4Z\xBA\x95\x88\xF8\xFA\x8B3V\xA6+\xDEڇ \xB8oO\xA6\xBC\xF8\x9E&amp;&gt;\x9D77\x8087\xBA׼\xEF\xF4\xCA\xF2v\xAD\xF0b\xAE\x9BK6;\xD0\xD0jYhU%:\xAC\xBC8ie\xBA\xE2\xAD}\xBE\x86[W\xF0L\x8A0\x9B+4W\x8B\x9A\xF7\x9DVv\xC6f\xDBq\xB3ف\x9EV+C\x87Z\xD1g\xCD\xC5I+\xD3om\xCB2\xEE^ \xC0Ө\xC0\xFCG|:on\xC0s4\xEF;\xAD\xEC\x8CͶ\xE3f\xB3m\xAD\x87`\xC5\xE8\xB6\xD4⼕銷\xB6ew/\xE0iT`~\x9FΛp\xB6\xE6}\xA7\x95\x9D\xB1\xD9v\xDClv\xA0\xAD\xD5\xE2\xA9=Y\x9C\xB72]\xF1\xD6v\xAD\xA4`=ϡ\xFCpQ|:ot\xC0a:\xF7\x9Dw\xC6f\xDBq\xB3ف\xCEV\xEBCYi\xBB\xB07\x967+]\xF1\xD6v\xAD\xA4`=ϡ\xFC\xBC\xF8\xB8.&gt;\x9A7:\x80Ϲ\xD1~P\xDC{1\xDDM\x96lv\xA0\xB9\xD5qS=i\xB2\x8C;V;+]\xF1\xD66.\xA6fIO\xA0\xF6\xF0\xA1\xF8h\xDE\xE8\xB6+n\x8B]m\xC7\xCDڵk`\x8AtչW\xFC\x89\xCDJW\xBC\xB5\xBD\xEB)[\xC0\xD9^6\x8A\x8F\xE6\x8D\xE0s\xF5m\xB1\xAB\xED\xB8Y\xBBv
+ \x92.&lt;w\xE9\xF0\xB8f\xA5+\xDE\xDA\xDE\xF5\x94\xAD
+\xE0l
+/7\x89\x8F\xE6\x8D\xE0=\xF5m\xB1\xAB\xED\xB8Y\xBBv
+̒\xAE=\xFB5yV\xB3\xD2om\xFB\x92*p*U\x80\xF1鼹\xFC{\xF7\xB6I\xAE
+T\xFF\xFF\xD3:\xE1\xD3\xF2XݭN\x92 0\xD7
+&gt;\x98vL\xE1RSܕ%\xD0\xFB\xA1\x94\x99\xD8\xD1q\xDC\\x81\x85\xBDd?\x91\xEA4\xAAW\xB8å\x85\xA7t87\x80+\xCD\xB9\xDF\xCE^[[[[[[[\xDB;\xB6\xA4'ikkkkkkkkkkkkkkk{\xC7\xF6#\xFBv^\xDFU\xE4\xB4\xB5M\xDF\xFE\xD3'\xF0&gt;Ov&lt;5 \xC5MX8\xD0N\xF6        \xA0Z\x97z\x85;\ڎ\xAC\xE7p\x9F\xB9#\xF7\xA3̟\x87lmmmmmmmmmmmmmmmmmmmmmmmm\xFBo\xAD\xE9U\xE4\xB4\xB5\xAD\xB5\xDE\xE9cPb\xE8\\x81\x85eBK
+\xB6\xA8W\xB8åmJ\xEC|z7\x99;o?j\xFC\xC8\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6\xB2\xEDG\xFE\x{DF2E}\xAB\xC8;hk[a \xBC\xD3Lj\xC4\xD0\xE9bk\x9A\xCA&gt;\x8A\x86\x95mN\xAFp\x87K۔XJ\x86ט;l?j\xFC\xC8\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6\xE2\xEDG\xF6\xED\xBC֫\xC2;hk\x9B\xB5^\xE8cPn\xF4\\xB1\xB5}e\x9FFO\xEFL\xAFp\x87Kۗ[J\x86w\x98;l?j\xFC\xC8\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6%ۏ\xEC\xABy\xADW\x85w\xD0\xD6\xF6\xE4x\x95\x8FqrH^&gt;\xD0Z\xF6\x99\xF4\x93=\xE9\xEEpi\xFBr\xCBJ\xE0s'\xEDG\x8D?\xD9\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xC6n?HO\xD2\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6#\xFBj^\xEBU\xE1\xB4\xB5
+\xD9\xFE\xD3'\xF0O\x9E&lt;,L\xA4\x91hG\x80\xEE\xB2O\xA6\xEFu\xA3W\xB8åmM/+I\x80\xEE\xE6Nڏ2\xB2\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5\xB5}\xF7֚_5\xDEA[\xDB\xF8-\xF0S\xEAd\x92eG\x80k8\xA0&gt;\x9B\xD0+\xDC\xE1\xD2vg\x98\x98'@_s\xC7\xECG\x8D?\xD9\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xDA\xFE\xE7\xB6VV\xFE;hk\xB5\xDE\xE0cJ\xA9d\xB2ljp\xE7\i\xEE?\xA6?j\xFC\xC8\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6oۏ\xFC\xDBy]W\x91w\xD0\xD6vz \xDC\xEDcV\xC1\x94R\xEC\xEBp%g\xDCd\xEE?\xB2?j\xFC\xC8\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xD6\xF6\xC9\xF6#\xFBv^\xDFU\xE4\xB4\xB5\xDA\xB7\xFAXP6\xB1\xF3\xB6\xB6x'\xF45\xF7\xE25\xFEdkkkkkkk\xBB\xFDx =I[[[[[[[[[[[[[[[[\xDB\xC5\xEDG\xF6\x{DF3E}\xAB\xC8;hk\xFBk\xFBO\x9F\xC0]\x9E&lt;d= \xAC\xE4v\xDE\xEEney|\xE0\xB5\xD2o\xE7\xF5]pL\xFD\xABs\x8Bv\xA0!@M\xE0ӽBW \xA8\xA7˽\xB9ܬj\xF6(\xC8\xE3|\x93~5\xAF\xF5\x80\xA33\xAE\x89S\xAF\xB9\x89\x95m P\x8D\xC7\xF8A\xFAռ\xD6 &amp;\x8CN\xB7\xA6\x8F\xBC\xE6\xE6V\xB93@)\xBE\xF8.\xC0\xCFү\xE6\xB5^\xCB/\xBAp\xA5ѹ\xD6&quot;\x8F\xB9\xD6\xEFP\x84\xC7\x98\x90~5\xAF\xF5\x80oF'ZKM\xBA\xE6&amp;٢E@`Q\xFAռ\xD6 F\xC7Y\xAB͸\xE6\xA6ڨQ@.\x8F+\xFDv^\xDF\xC0ی\xB2֜n\xCDM\xB8]\xBB\x80,`\x9F\xF4\xDBy}wa\xAD&lt;ښ\x9Bsǎ)&lt;&gt;|\xF1]\x80\xAD\xD2o\xE7\xF5]\xF0;\xBF\xE8@k\xA3\xF3\xABſ\xF6\xE7f޷o\xC0a\xE0\xBC\xF4\xDBy\xAD}\x8DN\xAE\xB6g\xCDͿ{\xF7\x80c&lt;&gt;@\xAE\xF4\xABy\xAD]\x8Cά6dͭ\xE2\x8Ex|\x80:ү\xE6\xB5^\x945:\xB0\xDAk\x8A5\xB7\x90k\xDA\xEC\xE6\xF1jJ\xBF\x9A\xD7zP\xC7\xE8\xB4j\xBB\xF9\xD5\xDCr.k&amp;\xB0\x8F\xC7\x80/\xBE PV\xFAռ֋+\xF9EZ\x9DSm\xFA\xDD&gt;\xB7\xA8+[
+\xEC\xE0\xF1zI\xBF\x9A\xD7zp\xCC\xE8\x90jߙ\xD5\xDC\xD2.n,\xCB\xE3\xB4\x96~;\xAF\xEF`\x9F\xD1        \xD5\xD6Ӫ\xB9^\xDF^ \x8A\xC7\xB8F\xFA\x{DF3E} \x80@\xA3\xE3\xA9\xDD\xE7Ts\xCB|I\x93\x80u\xE0J\xE9\xB7\xF3\xFA.V\x8CΦ^0\xA4\x9A[\xE9{\xFA ,\xF2\xF8\xF0\xC5w!n\x95~;\xAF\xF5\xA2&amp;\xBF\xE8@M\xA3\x83\xA9w|\x81ϭ\xF7m\xDD\xA6y|\x80WI\xBF\x9A\xD7z\xF0\x83ѩ\xD4kfSsK~a\xC3\x809\xE0\xB5ү\xE6\xB5^|\xF3ک\xD4\xDC\xC2_\xDBv`\x94\xC7\xE0ӽB\xF7
+ּy$5\xB7\xF67w\xE2\xF1\xF8&amp;\xFDj^\xEB\xF0B/\x9FG\xCD-\xFF\xE5\xCD\x9E\xF3\xF8\xF0\xC5w!\xF8]\xFAռ֋}\xFC\xA2 \xA5\xBC|u\xA8\xFC\xF0\xE4F\xF1\xF8&lt;\x97~;\xAF\xEF\xB8\x95I\xD4\xDCq\xDC\xDC\xE8@#\x809\xE9\xB7\xF3\xFA.&amp;L\xF7M\xC3`7c\xA8\xB9㸹\xD1\x80F&lt;&gt;\xEB\xD2o\xE7\xB5^\xFC\xD3t\xBB4v3\x83\xFA\x99=\x8E\x9Bh\xC4\xE3+\xFDj^\xEB\xC5僚\xA4\xB7p\x80\xD4\xCF\xECq\xDC\xDC\xE8@#\xBE\xF8.\xE1ү\xE6\xB5^\xFC\xF2\x97\xFE\xFC\xE3]\xFD\x803L\x9F~f\x8F\xE3\xE6F\xF1\xF8\x9C\x91~5\xAF\xF5z\xAD\x89\x9Eh#c\xFA\xF4\x97\xDCq\xDC\xDC\xE8@#\x80\xF3ү\xE6\xB5^\xEF1\xD1
+\xDD\x80\x93\x8C\x9E\xFE\x92;\x8Ekx\xC8\xE3\x90+\xFDj^\xEBu\xB1\xD1&amp;h\x9Cg\xF4\xF4\x97\xDCq\\xC3\xC0\xC0C\x80:ү\xE6\xB5^\x97\xD1((\xCE\xDC\xE9\x97\xDCq\\xC3\xC0\xC0C\xBE\xF8.դ\xDF\xCE뻺\xD3\xA8\xCF\xDC\xE9\x97\xDCq\xDC\xDC\xE8@#\x80\xD2o\xE7\xF5]\xEDh \xB4`\xE8\xF4K\xEE8\xAEa`\xE0!\x8F@;\xE9\xB7\xF3Z\xAF\xE2\xB4\xBA0t\xFA%w\xD700\xF0\x90\xC7\xA0\xB5\xF4\xABy\xADWA//\xBA@-+\xA5!A\x8BD\xF1\xF8\#\xFDj^\xEBU\xC1;\xAB\x80\x8EFP\xCBJ\xE9FH\xD0&quot;\xD1\x80F&lt;&gt;|\xF1]n\x92~5\xAF\xF5z\xD5[L@-+\xA5!A\x8BD\xF1\xF8\/\xFDj^\xEB\xF5\x86\xF75:\x80ZVJ7B\x82\x894\xE2\xF1x\x95\xF4\xABy\xAD׭\xEF 0jt\xB5\xAC\x94n\x84-h\xC4\xE3\xF0Z\xE9W\xF3Z\xAF\xCB\xDE\xE0\xB9\xD1\xE9\xD3\xCAR\xB4Ht\xA0\x8F\xBF\xA4_g\xEB\xBB\xEEh;\xF0\xD0\xE8\xF4ie)
+                Z$:Ј\xC7\x80/\xBE _\xD2\xEF\xB5\xF5]\xAD\xFB &lt;1:}ZYJCB\x82\x894\xE2\xF1\xE0g\xE9\xDCZ\xAF^\xBD\x9E\x9D&gt;\xAD,\xA5!!A\x8BD\xF1\xF8\xF0\\xFAe\xB7֫E3\x80\x9D&gt;\xAD,\xA5!!A\x8BD\xF1\xF80'\xFD֛\xB5i?\x9D&gt;\xAD,\xA5!!A\x8BD\xF1\xF8\xB0.\xFD\xFA\x9B\xBB\x9E\xCB\xC75 &lt;\xE4\xF1\xE0\x8B\xEFB@\x88\xF4{p\xD6\xFAx.w\xD700\xF0\x90\xC7\x80}\xD2\xEF\xC4Y\xD3 \xE0\xA1\xDCq\\xC3\xC0\xC0C\xCEH\xBFg\x8D.\x80'r\xC7q
+y|H\x91~Q\xCEz\xB2\xFE)w\xD700\xF0\x90\xC7\x80t\xE97欿-\x80\xCA\xC75 &lt;\xE4\xF1\xE0\x8B\xEFB@\xE9\xB7\xE7\xACo \xE0g\xB9㸆\x81\x80\x87&lt;&gt;\x94\x95~\x8D\xCE\xFA\xB5~\x90;\x8Ekx\xC8\xE3@ \xE9\xF7\xE9^\xBE\xFE&amp;w\xD700\xF0\x90\xC7\x80v\xD2/\xD6\\xBB\xDB\xF07\xB9㸆\x81\x80\x87&lt;&gt;\xB4\x96~\x89\xAF\xC8:\xD0
+\x80?\xCA\xC75 &lt;\xE4\xF1\xE0\x8B\xEFB@w\xE9\xFAR\xD7\xFF\xFE\x9A\xEB:!pR\xEE8nnt\xA0\x8FWʾ\xD9wz\x9D)\xE0w\xB9㸆\x81\x80\x87&lt;&gt;\xBCA\xFA]\xBFcw        \xF7 \xF0G\xB9㸆\x81\x80\x87&lt;&gt;\xBCM\xFA\xBD\xBF\xFD\$\x8E\xC9\xC75 &lt;\xE4\xF1\xE0\xCD\xD2\xEF\xEE\xBB\xEB\xE7!pF\xEE8\xAEa`\xE0!\x8F_|^.\xFD&gt;\xE0\xDA\xFA\xFE\x8B\xAE\x8B\x84\xC0\xB9㸹\xD1\x80F&lt;&gt;\xF0\xBB싁1\x97\xFE\$\xC8\xC75 &lt;\xE4\xF1\x80\x9F\xA5\xDF\\xB9\xF7\xE7!\xB0[\xEE8\xAEa`\xE0!\x8F&lt;\x97~g\xD0]B\xA0\x9A\xDCq\\xC3\xC0\xC0C\x98\x93~\xF0\x9F\xB7\xFFv\N\xF8&amp;w\xD700\xF0\x90\xC7\x80/\xBE L˾K\xF8\x87_t7\xDDO\xF8&amp;w77:Ј\xC7\xC2\xBEK\xB85\x80\x9F\xE5\x8E\xE3\xF2\xF8\xC0V)w        \xDCU\xF8%w\xD700\xF0\x90\xC7\xB6:\x97\xF0\xCCuE\x80_r\xC7q
+y|`\x9F;.\xBAQ\xFC w\xD700\xF0\x90\xC7\x80/\xBE \xC4:p\x91\xF0\xFF\xAF\xEF\xBF\xE6\xBAK\x9C\x94;\x8E\x9Bh\xC4\xE3\xFB\xB8Kx,\xC0\xE5\x8E\xE3\xF2\xF8\xC0V\xC7\xEE\xBAH\xA4\xC8\xC75 &lt;\xE4\xF1\x80\xAD\xCE\xDC%&lt;vc\xE0\x9B\xDCq\\xC3\xC0\xC0Cح\xFB]B\x80\xE4\x8E\xE3\xF2\xF8\xF0\xC5w!\x80}v\xFF\xF7\xBAHd\xC9\xC75 &lt;\xE4\xF1\x803\xD2o\xBAH\xEC\x90;\x8Ekx\xC8\xE3g\xA4_ t\x97\xD8!w\xD700\xF0\x90\xC7\x8EI\xBF\xE8&quot;!.w\xD700\xF0\x90\xC7NJ\xBF!\xE8&quot;!+w\xD700\xF0\x90\xC7\x80/\xBE \x9C\x91~O\xD0EB P\xEE8\xAEa`\xE0!\x8F\x96~U\xD0]B P\xEE8\xAEa`\xE0!\x8F\x9C\x97~[\xD0EB J\xEE8\xAEa`\xE0\xBCѓ\xA7\xE94]fߒP\xB0!)\xA5\x88\xED\xC3\xDC\xD1\xE1k\xFEU9P\xC5D\xAF҅\xF7y\x9F\x8BK\xA0\xB2\xF4;\x83.!r\xC7q
+獞&lt;M\x8F\xA0\xE92\xFB\x96\xFC\x83\x82\xDDI\xA9\x88\xD8\xCE\xDC\xE7\x8E~^\xF3/Ɓ*&amp;zUMx\xDB\xDDT \xBD\xA4\xDFt\x91X\x97;\x8Ek8l\xF4\xD8\xE9{
+-Vڮޟ\xECFHJ\xC5v\xE9w\xB4Q[\xA3\x94\xFE\xAC\xBB\xA0\x80(\xBE \x96~y\xD0]B`]\xEE8\xAEa`\xE0\xB0\xD1c\xA7\xEF)\xB4Xiǒ\xFF\xA6f+\xA2\xB2\xAA)\xB6W\xDD]\xD0\xC0k\xFEM8S\xC2t\xBB\xCA
+#V\xB4N\x80\xEE\xD2\xEF\xBAH,\xCA\xC75 6z\xEC\xF4=\x85+\xEDX\xF2\xDF\xD4lETV\xC5\xC56\xAD\xAF\xEE}\xBB\xE6_\x803\xF9O\xB7\xAB\xB8\xD8\xF7bZӴ\xB8F\xFA-B V\xE4\x8E\xE3N=sZD!\xC56\xAA\xF75[\x95U}\xB1}k\xAA{Ӯy\xF7\xCF\xE4?ݮbߑ\xED\xCD\xCE\x80 \xB9H\xF4\x95;\x8Ek8i\xF4\xCCi}\x85۫\xE4?*ۇ\xC0\xC4Z\x88\xED^;\xAD\xDBu\xD3[&amp;\xF9Ŏ\xB5\xFB\xBElmob\xAA\xDC\xCA]B\xA0\xAF\xDCq\\xC3\xC0\xC0I\xA3gN\xEB\x83(\xA4\xD8^%\xFFQ\xD9&gt;&amp;\xD6El{iݮk\xDE\xF7c\xC9/v\xAC\x8B\xD8wg_{\xB3\xF28\xC0w!\x80D.M\xE5\x8E\xE3\x8E=p\xBA\x9FEo\xAB\xF7o\xCA\xF6!0\xB1^b\xDB\xD8H\xDFF]\xF3\x8E\xCB|\xB1c\x8D\xBE;\xFBڛ\x92$o\xE0&quot;!\xD0Q\xEE8\xAEa`\xE0\x98\xD1\xA7\xFBYXo\x97\x92W\xB9        \xB1\xB9\xF5\xDB\xC9.\xFAv隷\xFBX\xE6\x8B\xEB%\xF0
+\xDA\xD4\xDE\xF3\xF0.\xED\xE4\x8E\xE3\x8E=p\xBA\x9FE\x81\xF5v)\xF9w\x95\x9B\x9B[;\xB1\xCDl\xA1i\x8Bnz\xBB\x8F\xA5ҴFߣ\xED=\x9C\xAF\xE2.!\xD0N\xEE8\xAEa`\xE0\x8C\xD1\xD3\xE6\x82\xE3\xE8m\xF5\xFEQ\xE5&amp;\xC4\xE6\xD6Nl3[hڥk\xDE\xEE\x93i\x874\xAD\x97\xC0w*\xBC\xBD's\xE0\x85\$z\xC9\xC75 \x9C1z\xDA\p\xBD\xB0\xE4o\x8Aw &lt;\xBDvb\xFB\xD9B\xC7]\xF3^\x9F\xCC9\xA4i\xEDD\xBDS\xE1\xED=\x96\xC0y\xBE \xE1&quot;!\xD0H\xEE8\xAEa`\xE0\x80ѣ\xE6\x8E\xE9m\xF5\xFE\xAEx\xC2\xD3\xEB(\xB6\xA5\xF5\xB5\xEB\xCFM\xEF\xF5Ʉ\xFB\xD6H\xD4;\xDE\xDEc\x89\xF0f.]\xE4\x8E\xE3=j\xEE8\x91\xDEV\xEF\xEF\x8Aw\xA0i\xFF\x8Bw\xB5\xB8v͹\xE9\x8D&gt;\x99p\xFD\xE6\x8CfX\xAA\x90\x9AY\xF0r\xEE]\xE4\x8E\xE3=j\xEE8\x91^X\xF2\xD5/\xFF\x82\xE6\xECjq\xED\x9A\xF27\xAD\xA5K\xAC\xA3        \xE7R3+x~1\xF0\xD7\xFF\xE0&quot;!\x90&quot;w\xD700\xB0\xDB\xE89s͡\xF4\xB6z\xBF\xA9_\xFE5ͯ\xD6\xD8\xE2z5g\xFD\xCDmZH\xAFp\x81F3O\xA9\xA5`J\xF0\xCBË\x81\xFF\xBDT\xE8&quot;!pX\xEE8\xAEa``\xB7\xD1C\xE6\x9ACi\xA8\x90 \xEA\xFD\xA6~\xF9\x975\xBFNc\x8BkԜ\x95\xF7\xB4{-\xBD…\xCD\xFFp-S\xC8\xE2\xBB@A\xBF\xF8~\xC1\xFDm\xEB&quot;!pH\xEE8nnt\xE0
+F\x99k\xA5\xA1B\xEE(\xF9K\x8B\xDAs\xA3\xEFP\xA7\xB7\x955\xEA\xCC\xCAڽ\x96^\xE1v-\xE1d9\xD5\xF2\x80\xFFzr+\xF0\xF7\xFF\xA5\xBB\x84\xC01\xB9㸆\x81\x81\xAD&amp;\x99kΥ\xD1B\xBA\xD7\xFB_-jύ\xBEI\x91\xDEV֨3\xD3\xEF\xE6\xB5\xF4
+\xB7\xC9h\xC7ʩ\x96|\xF3\xCF+\x81\xBB`\xE8&quot;!p@\xEE8\xAEa``\xAB\xB9\xE6\x8Esi\xB4\x8A\xEE\xF5\xFEWx\xD5;j
+ݥ\xF3\x9F\xB3\x{1CFCB3}&gt;\xAAEs\xE6\xDE\xC7;j\xE9q\x93\xD1B\xCETT*\xF8\xA3\x9F\xAF\xCE\xFD\x9FB\xE4\x8E\xE3\xB6\x9A;a\xEE8\x97F\xAB\xB8\xA0\xE4_6U^\xF8P\xE8\xF0\xE8[\x8D\x96֮\xC0E-:3\x94\xDE5\xB5D%y&gt;\xE2&gt;\xA3\xB5\xA8\xA8T20\xC1_\xB3\x80D\xB9㸆\x81\x81}\xA6O\x98;\x8E\xA6\xD1\xBA\xD7\xFBeS\xD5\xE1\x85\x85\x8F\xBE\xD5hi\xED
+\Ԣ3C\xE9]SKT\x92\xE7#n5Z\xCE\xEE\x8AJ%\x90\xCBw!\x80.~\xFF\xD7/\xBA@\x96\xDCq\xDC\xDC\xE8\xC0\xDDV\x8E\x97 \x8E\xA6\x89Z\xD7\xFBeG\xC9;
+
+]\xBF\xEDߌV׮\xC0-:3\x94\xDE5\xB5D%y&gt;\xE2V\xA3\xE5쮨T20\xC1_\xB3\x80D\xB9㸆\x81\xDF\xE3\xFE\xFF\xE8$\xAD\xEC\xD2ɱx\xBC\p4M\x94н\xE4\xCF\xF1&amp;\xBAt&gt;\xD5\xD1w\xAD\xAE]\x81\x8B\x8Awf&quot;\xB7;ʉJo(bJOF\x8DV\xB4\xB5\xA8:\x99\xC0\xCD\xE5\x8E\xE3~w        9l\xF1x\xB9\xE0t\x9Aȿu\xBD\xBF\xEC+9\xBC\xEA\xA1\xD0\xE1\xD1\xB8\xBE\xC0ś3\x91\xD8\xB5\xA6\x97t\xABъ\xB6U'\x98\xE3\xAF\xD9@\xA2\xDCq\\xC3\xC0\xEF\xE1.!\x87\xAD\x9F-\xDDO\xA7\xB9\xFC\xFB\xD6\xFB˦zwT=\xBAr\xCF\xFFf\xB4\xC0\x8E5N+ޙ\x89\xC4.\xA8%0\xBD\x94\xA0[\x8DV\xB4\xB5\xA8:\x99@;\xB9㸆\x81\xDF\xC3]BN
+9[\xBA\x9FNs\xF9\xBF\xA4\xE4\x89$\xBC\xE4\xA1\xD0\xE1\xD1-\xB0c\x8Dӊwf&quot;\xB1 j        L/%\xE8nu\x8A\xAA\x93        @:߅\xBA\xF0\x8B.PG\xEE8nntNr\x97\x90\x93BΖ\xEE\xD4\\xF2}\xEB\xFDt\x97\xB0\x9E7\xD48\xADlg\xA6\xB3\xEA^N`bCA7dZ\x9D\xA2\xEAd\xED\xE4\x8E\xE3~w        9)\xEA`i}@M'ߴ\xDEϩ̧\xBBt,\xDB\xCA
+\xFF\xA77\xD48\xADls\xA6Sj]KlbYq\xB7\xAAST\x9DL\xA0\x9D\xDCq\\xC3\xC0\xEF\xE1.!\xC7,\xADϨ\xE9̯\xAFw\xEE\x9F
+\xAFw(tx\xF43\xDEP㴲͙N\xA9u-\xB1\x89e\xC5ݪNQu2\x80vr\xC7q
+\xBF\x87\xBB\x84x\xB0\xB4&gt;\xA3\xA63\xBF\xBE޹*\xBCޡ\xD0\xE1\xD1\xCFxC\x8D\xD3j6g1\x9F\xBE\xE5\xC4f\x95w\xAB:E\xD5\xC9\xDA\xC9\xC75 \xFC\xEErL\xEC\xA9\xD2\xF7\x8CZ\xC9\xFC\xE2z\xE7\xFE\xA9\xF5\x85\xAE\xD6\xED\x87\xDEP㊂\xCDY̧o9\xB1)
+\xC5=֍Eu\x8A\xAA\x93        @:߅\xBA\xF0\x8B.PG\xEE8nntNr\x97\x903\xC2O\x95\xBE\xC7\xD4J\xDA\xED\xEA=Pix\xB1C\xA1ã\x9F\xF1\x86W\xEC\xCFb2\xA5j\xCA'6\xA5\xA1\xB8Ǻ\xB1\xA8NQu2\x80vr\xC7q
+\xBF\x87\xBB\x84\x9C~\xAA\xF4=\xA6V\xD2nW\xEF\x81JË
+\xFD\x8C7Ը\xA2`\x93iZKxJ\x89\xA1\xF7\xA9ST\x9DL\xA0\x9D\xDCq\\xC3\xC0\xEF\xE1.!l:R\x9AS\x8Bi\xF7\xAAww\x99;\x8A
+]\xA7\xD5C\xDEP\xE3\x8Aj\xFD        ɤc9\xE1\xF9$\x86ާNQu2\x80vr\xC7q
+\xDF!\xF1\x9E\xA0\xFB\x86\xFCצ#\xA5\xE9I\xB5\x98s\xA3zϔ^\xE9P\xE8\xF0\xE8g\xBC\xA1\xC6E\xA5\xFA\x92I\xC7r“
+}\xA0!\xEATte{\xE0\x8C\xDCq\\xC3\xC0wH\xBF        \xE8.!\xBFl:O\x9A\x9ET\x8B97\xAA\xF7L\x99\xE1\x95\x85\x8F~\xC6j\T\xAA?!\x99t,'&lt;\x99\xA1\xD0Z\xB1\xAETE\xA5\x92\xC8\xE5\xBB@~\xD1\xEA\xC8\xC7͍N\x94\xF4\x9B\x80\xEE\xF2\xB9\xF9&lt;\xE9xR\xAD\xE7ܥ\xDE5\xEE\xA8t(t\x85&gt;OxC\x8D\x8B\xEA\xB4(0\x87^\xE5\xEC\xC8$7\xFA\xA5**\x95 \xF4\x92;\x8Ek\xF8\xE97\xDD%\xE4\xB3\xD2]\xC2&quot;\x87\xD5z\xC2-\xEA=Vcx\x99C\xA1ã\x9Fq}\x81\xEB\xEA\xFCk\x98C\xAFrv\xA41}k\xA2\x94\xAA\xA8T2\xD0K\xEE8\xAEa\xE0;\xA4\xDFt\x97\x90\xCF\xCD7G:V\xEB        \xB7\xA8\xF7X\x8D\xE1e\x85\x8F~\xC0\xF5F)ҥ\xC0z\x95\xB3#\x8D\xA1\xE8[\xFB\xA2Z9\xD5\xF2\x80Fr\xC7q
+\xDF!\xFD&amp;\xA0\xBB\x848L\xDAV!        ׯ\xF7L\x81;\xCA
+\x9D\xDB\xE49\xD7\xA5H\x97s\xE8UΎ4\x86\xA2o\xEDC\x88j\xE5T\xCB\xC9\xC75 |\x87\xF4\x9B\x80\xEEr\xE00iw^\x85d[\xBCޓ\x86\xD78:&lt;\xFA\xD7\xA5B\xA3£\xA7\xBF\xEF\xB9-\x8A\xBE\xAF        !Fk9PN\xB5|\xF9.Ѕ_t\x80:r\xC7qs\xA3%\xFD&amp;\xA0\xBB\x848IڝW!\xD9\xAF\xF7d\x81\xE15\x85\x8F~\xC0\xF5JoTx\xF4.\xE5TH`SQ
+\xD6R0%\xE8&quot;w\xB7\xD70p\xFA}7\xCB:\xBFr?t;I\x9DW\x81\xD9V\xAE\xF7Xu;j
+\x9D\xD5\xE1iwW.\xBDW\xE1ѻ\x94S!\x81M9\x84-\xE4L-S\x80.r\xC7q{
+\xA7\xDF견\xF3+\xF7C\xF7б\x93\xA4ّ\x94j\xD9zW^\xE0P\xE8\xF0\xE8\xBB\xDD]]\xB8\xDC^\xED\x88~_E\xFBؔú\xD1*\x8ER3+h!w\xB7\xD70p\xFA\xAD.\xCB:\xBFr?tO\x9C&lt;F\x9AYA\xA9\x96\xAD\xF7pu\xE1\x85\x8F\xBE\xD5hi\xBD\xAA\xDB!\xB7W\x9BB\xB7\xA8hG\xF4\xD16\xE5\xB0h\xB4\x84\x93U\x94M \xEA\xCB\xC7\xED5 \x9C~\xAB˲ί\xDC\xDD\x87\x8F\x91NGVP\xAAe\xEB
+\xC9*\xAAK\xFB\xF2\xCFjK\xDB'\xB1c\x9B\xE2\xD6/'&lt;\xF4\\xFBҘ3\x9A\xFC\xF9*\xCA&amp;p\x9E\xEFB]\xF8E\xA8#w77\xFAp\xB6ٷ\xBA,\xEB\xFC\xCA\xFD\xD0=q\xF8itj\xE6Y\xB0\xDE\xF3\xA5\x85W7:&lt;\xFA&gt;\xA3u5*m\xABĎm\x8A[\xBF\x9C\xF0\xD0s9\xECKc\xD4h\xDAY%T\xCE
+\x8A\xCB\xC7\xED5 \x9C~\xAB˲ί\xDC\xDD?\x9D?C\x9DZ\x81y\xAC\xF7|i\xE1\xD5
+\x85\x8F\xBE\xC9hQ]\xEA: \xABi[\x83\xAF(6\xEEt\xFB\xD2ؔmz\xFE\xC5\xD3\x80\xCAr\xC7q{
+\xA7\xDF견\xF3+\xF7C\xF7O)gH\x97\x83+0ɂ\xC5F\xE5إM%\x9C\xEF\xED\x9C\xD1rZuRV߶-^Ql\xDC\xE9\xF6\xA5\x98a\xEB\xE4\xCFge\xE5\x8E\xE3\xF6N\xBF\xD5eY\xE7W\xEE\x87\xEE\x9FRΐ.Wl\x92\xA5\xEAM\xA9+\xBC\xB4\xA1\xD0\xE1\xD1c\x8D\xD6Ң\xA8\xF3RZ\xB75b\xE5r\x83.\xA6\xD1ھ\xB67%I\xA8)w\xB7\xD70p\xFA\xAD.\xCB:\xBFr?t?\xCB:@\xBA\\xB1I\x96\xAA7\xA5\xAE\xF0҆B\x87G\x8F2ZE\xFD\x8A\xA5tok\xC4\xCA\xE5]L\xA3\xAF}
+\x8CmoV\x9E\xF8.Ѕ_t\x80:r\xC7qs\xA3g\x9B}\xAB˲ί\xDC\xDD\xCF\x90gWl\x86\xA5\x8A
+\xCC$\xB6K;\xAA8\xD9\xD8\xE7F\x93/^N\xE7x \ي\xA2&quot;\xAE\xA7\xD1Ѿ\xD6\xEDhon\xB6PJ\xEE8n\xAFa\xE0\xF4[]\x96u~\xE5~\xE8~\x96x\x80\xB48\xBB\xC23,RoVQ\xE1u
+\x85\x8F~ \xE1ʵ\xD4t\xBE\x87•\xAD(*\xE2z\xED\xEC\xEBۦ\xF6f\xE7 \x85\xE4\x8E\xE3\xF6N\xBF\xD5eY\xE7W\xEE\x87\xEEή\xD8$c_\xB0H]\xB1\xAF^\xD7P\xE8\x9BĶ\xF12\x87\xDBx \xDC}Ŧ\xD1\xCB֦=\xD74m\xA8 w\xB7\xD70p\xFA\xAD.\xCB:\xBFr?t?H?=\xD2\x88\xCD0\xF6+\xD4\xFBj;\xEA
+}\x8D\xD8\xDE\xE7d3\xDFh=V`&amp;\x8Dlm\xDAsM\xD3\x80
+r\xC7q{
+\xA7\xDF견\xF3+\xF7C\xF77\x8E\x8E
+9f\xFE\x9A\xE9E\x85\xBF`xQC\xA1\xEF\xDB\xC0+\x9D\xEC\xE7\x9B\xAD\xC7
+̤\xA3\xAD\xDD oon\xB6[\xF9.Ѕ_t\x80:r\xC7qs\xA3g\x9B}\xAB˲ί\xDC\xDD\xDFT8:*\xE4\x98a\xF8k\xA6\xFE\x82\xE1E
+\x85\xBE@l\xF7nu\xB2\xA5o\xB4+0\x93\xBE\xB6\xF60\xB0\xBDYy@A\xB9㸽\x86\x81\xD3ouY\xD6\xF9\x95\xFB\xA1\xFB\x9B&quot;GG\x914B\xD2 \xCDܢ\xC2_pGQC\xA1[\x8B\xED\xDB\xF5\x8E5V\xA0}\x9Egr\x81\xDD\xCD\o\xEF\xF9 \xA0\xAC\xDCq\xDC^\xC3\xC0鷺,\xEB\xFC\xCA\xFD\xD0\xFDQ\x9Ds\xA3N&amp;\xEB\xE9\xEDx\xD9Ċv\xBCfxEC\xA1\x9B\x8A\xED\xD8K\x9C\xE9\xF0\xE17\xB1TEQEE%s\x81\xDD\xFD\l\xEF\xE1\xF4\xA0\xB2\xDCq\xDC^\xC3\xC0鷺,\xEB\xFC\xCA\xFD\xD0\xFDQ\x9Ds\xA3N&amp;\xEB\xE9\xEDx\xD9Ċv\xBCfxEC\xA1\x9B\x8A\xED\xD8K\x9C\xE9\xF0\xE17\xB1TEQEE%s\x8D\xDD]\x9Dn\xEF\xB1\xC4\xA0\xBE\xDCq\xDC^\xC3\xC0鷺,\xEB\xFC\xCA\xFD\xD0\xFDQ\xA9s\xA3T2+\xB9\xEDx٬\x8Av\xBC掊\x86B\xB7۷\xEB\x9D\xE9\xEDᷯTEQEE%s\x93ݍ\x9DkR\xF8.Ѕ_t\x80:r\xC7qs\xA3g\x9B}\xAB˲ί\xDC\xDD\xEF\xAA\xD5\xF2\x99\xCEm\xD3+\xA7\x94\xB3\xE9ec\xCB
+\xDD]l뮷\xBB\xB1)oܕE\xAD's\x9F\x82\xED=\x90t\x91;\x8E\xDBk8\xFDV\x97e\x9D_\xB9\xBA\xDFU;4\xAA\xE53\x9DۦWN)g\xD3\xCBƖ3\xFA\xB1
+\xBC\xD8\xBCeW\xB5\x9E̕\xAA\xB5ww&gt;\xD0H\xEE8n\xAFa\xE0\xF4[]\x96u~\xE5~\xE8~W\xF0\xD0(\x98\xD2Db\x9B^\xF9|9\x9B^6\xBC\x9C\xD1\xD0׈\xED\xE1\xADv\xB74\xE5\xFD*RQlQ!\xF9\x9CI)$\xCF&quot;\x95Jz\xC9\xC7\xED5 \x9C~\xAB˲ί\xDC\xDD75O\x8C\x9AY\x8D&amp;\xB6\xEF\xC5ײj\x99 }\x93\xD86\xA673\xBD\x9C\xAD\xAF\x9FR\xD4\xD6\x8F-*$\x9F3)=1\x9AvVQu2\x80vr\xC7q{
+\xA7\xDF견\xF3+\xF7C\xF7M\xCDc4\xAB\x9A\x89\xED{\xF1õ\xEC{\xE5\xA8Z\xE6B_&amp;\xB6\x93\xB9\xCD \xAFe\xB4\xA2:\xAF\xFC΢\xF39\x99\xD5s\xA3\xF9.\xAAN&amp;\xE9|\xE8\xC2/\xBA@\xB9㸹ч\xB3;\xD5eY\xE7W\xEE\x87\xEE\xBFF\x8F\x8B\x93'F\xCDĶ\xA6t\xB8\xD8}\xB1\xB6v)0\xF4}\xAEifl!\xD5y\xE5w\xB5\x98\xCFɬ&amp;\x8Cr\xA6\xAE&quot;i@G\xB9㸆\x81\xEF\x90~\xDF\xED\xA6s\xFC\xCD\xE8qQY\xC1\x8Em}\xFDc\x85l}\xF1\xF5BVB\x87G?\x90\xF0Ɋ\xC2sK\xA9b\xBA\xA2M\xAF\x9CXԦ\x97\xDDQ\xD4zJDz\x9A3Zˁ\xBA\x8A\xA4\xE5\x8E\xE3\xBEC\xFAM@w        \xDF`\xF4\xB8(\xAEZǶ\xBE\xFE\xB1B\xB6\xBE\xF8z!+\xA1ã/M~wE!\xF9\xA4W1]Q\xFAˆG\xDF\xF4\xB2;\x8AZO\xE9XV+F+\xDAZZ\x85\xA0\xA9\xDCq\\xC3\xC0wH\xBF        \xE8.\xE1\xF5Fϊ\xFA\xAA5m\xEB\xEB\x9F)d닇\xB2:&lt;z\x88\xD1\xF6\xB5\x9EIz        +E徦\xA2VR:\x9C؊Ѣ\xF6\x95V!h*w\xD70\xF0\xD2o\xBAKx\xBDѳ\xA2\xBEjM\xDB\xE2@\xBB_\xA5\x8A\xF5\xD0\xE1\xD1\x8D\xB2\xA3\xA8\x95E\x95\xB0RT\xEEk*j%\xA5É-\xADkSu\xE9        \xD4\xE1\xBB@~\xD1\xEA\xC8\xC7͍N\x94\xF4\x9B\x80\xEE^o\xF4\xACh\xA1T\xD3v\x878P\xC5\xEE\xD7_\xA9b=tx\xF4X\xA3\xB5\x845\x9D\xC0\xBA\xA8V\x8A\xCA}ME\xAD\xA4t8\xB1u\xA3\xA5\xED\xA8.=\xE8+w\xD70\xF0\xD2o\xBAKx\xB7у\xA2\x8BR}\xEBb\xEE\xC5ϔ:&lt;z\xB8\xD1rb뚎\xBE.$\xFF\xF5\xA2b_p_Q\xE1i\x84w)\xC4PV'[7Zڎ/n/\xECf\x98u\xE97\xDD%\xBC\xDB\xE8A\xD1E\xA9\xBE\x88R\xED\xC5GC\xACDY}\x87ъ\xEB\x9A &quot;$\xFF\xF5\xBAο\x9A\xA2B\xB2:\x9Fۺ\xD1\xEA\xC2 \xBC\xBB\xBD\xB0\x95a`֥\xDFt\x97\xF0n\xA3E#u\xFAv J\xB5
+\xB1e=tx\xF4F+
+\xACk.t\x88\x90\xFC\xD7\xEB:\xFFj\x8A
+\xC9\xEA|n\xEBF\xAB /\xF0\xEE\xF6\xC0V\x86\x819\xC3=A挞\xBD\xD4i]\xCD(\xDAx\xA6K\xEB\xA1ão2ZTT]q\xA3\x84\xE4\xBF^\xD7\xF9WSTHV\xE7s \x91[\xE0\xF5\xEDx\xCEw!\x80.\xFC\xA2 ԑ;\x8E\x9B\x9D\x93\xDC%d\xCE\xE8)\xD1K\x9D֝        T\xE1e\xA7\xA3,Z }\x93Ѣ\xA2J\x9B\x8Bb=\xF9\xA8\xBA\xA2^jkE\xB1\xC9\xF6'\xD6Pb\x87s \x91[\xE0\xF5\xED\x80} s\x86\xBB\x84L=&quot;:*ҽ3\x81*\xBC\xECt\x94\xC5@\x8B\xA1ã\xEF3ZWHiA\xA3\xAC'Uڙ\xD7Q\xD4\xCFKIo\xDDh\x81\xB15^\xDF^\xD8'w\xD70\xF0{\xB8KȄ\xD1#\xA2\xA3&quot;\xDD+\xE8L\x8Fui1tx\xF4}F\xEB
+)m&quot;h\x94\xF5\xE4\xA3J;\xF3:\x8Az\xE2yb)\xE9\x85H\xAC\xF1
+\xED\x80Mr\xC7q
+\xBF\x87\xBB\x84L=&quot;:*ҽc\xB1\xB2^p=\xD0z\xAC\x95\xD0\xE1\xD1\xF7\xAD\xABQi)B\xDAX𽸵\xAE\xD1\xC4R\xD2 \x91X\xE3\xDA \x9B\xE4\x8E\xE3~w        5z&gt;\xF4U\xA1\x81\xC7be\xBD\xE0z\xA0\xF5X+\xA1ã\xEF3ZW\xA3\xD2R\x84t\xB2\xE0{\x92R\xC1\xBAFKI/Db\x8Doh/\xC0C\xBE t\xE1]\xA0\x8E\xDCq\xDC\xDC\xE8\x9C\xE4.!\xA3\xFA\x9EE2?\x99Cx\xACc\xAD;٥\x95\xD0\xE1ѷ\xBA\xB8\xB4\xEB\x9D,\xF8^\Y\xD4DnY\xAEK\xAC\xF1
+\xED\x80Mr\xC7q
+\xBF\x87\xBB\x84\x8C\xEA{&gt;\x8Cf\xBE)\xF9\xC3        ƪ\x99vH\xB8\xE9\xD0\xE1ѷ\xBA\xB8\xB4\xEB\x9D,\xF8^\Y\xD4DnY\xAEK\xAC\xF1
+\xED\x80Mr\xC7q
+\xBF\x87\xBB\x84 =\xAA\x9D\x92?\x9C@`\xAC\x9Ai\x87\x84\x9B}\xAB\x8BKK\xB1\xD8ɲoĭu
+喕\xE1\xBA\xC4\xDF\xD0^\xD8$w\xD70\xF0{\xB8KȐ\xEE\x87C\x85\xFC'\xEEd\xD3wi:tx\xF4\xAD..-\xC5b'˾\xB7\xD65\x94[V\x86\xEBk|C{`\x93\xDCq\\xC3\xC0\xEF\xE1.!C\xBA\xA3\xF9\xEF(\xE1|\xF4\x90pes\x8E\x8A8:&lt;\xFAV\x97\x96e\xA5\x99e߈+\x8BM/1\xC9E\x895\xBE\xA1\xBD\xF9.Ѕ_t\x80:r\xC7qs\xA3s\x92\xBB\x84&lt;7z2\xD4&lt;\xD2K8=$\ٜ\xA3&quot;΅\x8F\xBE\xD5ťe\x99nf\xE5wa\xE5_\x92\xCAu\x8D\x96\x96\x95\xE4\xA2\xC4\xDF\xD0^\xD8$w\xD700\xF0\xBB;N\x86\xF4*\xCEG\x89x\xB8]\xE7\xBB4:&lt;\xFAV\x97\x96e\xBA\x99\xC5\xDFu%&amp;\xB9(\xB1\xC67\xB46\xC9\xC75 |3z,\x94=\xD2 I        \xBD\xB1rA'B\x87G\xDF\xEA\xE2ҲL7\xB3\xF8\xBB\xA0\xAE\xC4$W\x8C[\xE3\xF5\xED\x80}r\xC7q
+ߌ \x95O\x86\xDCBRB/F\xAC\x9Cp`Љ\xD0\xE1ѷ\xBA\xB8\xB4Ds\xFD,\xFE.L\xA7W\xB9\xA8\xE7\xE9\xA5\xE79-\xB7\xC0\xEB\xDB \xFBJ\xB9\xE9Xȭ%%\xF4JДF\xA5ti&quot;tx\xF4\xADFK\xEBU]\x96\x89f\xB6\xE8\xFF\x95u=\xCF0\xBD\xFFsr \xBC\xBE\xBD\xCF\xF9.Ѕ_t\x80:r\xC7qs\xA3Ռ\x9E        ŏ\x85\xDCr\xEAǍ\xFA\xCFdw4tx\xF4\xADFK\xEBU]\x96\x89f\xB6\xE8\xFF\x95u=\xCF0\xBD\xFFF\xAB /\xF0\xEE\xF6\xC0V\x86\x81\x81:Fτ\xFA\xC7Bb9\xF5\xE3F\xFD\x83g\xB2\x8D\x8D;:&lt;\xFAV\xA3\xA5\xF5\xAA.\xCBD3[\xF4\xFFʺ\x9Eg\x98\xDE\xFF        \xA3Յxw{`+\xC3\xC0@\xF7\x9D        \x89\xF5\x8A\xDB+\xDB\xF3\xA1ão5ZZ\xAF\xEA
+5\xB3K\xFF'\x92\xBC\xA9\xA8\xF4TG\x8D\x96\xB6\xA3\xBA\xF4\xA0\xAF\xDCq\\xC3\xC0\xC0\x97\xD1\xA1ř\x90XTb''\xE2\xD6O57tx\xF4\xADFK\xEBU]\xA2\xA1~6j\xFE}u=O2=\xD5Q\xA3\xA5\xED\xA8.=\xE8+w\xD700\xF0e\xF4@\xE8r&amp;d\x95\xD8ɉ\xB8\xF5S\xCD
+}\xB7\xBB\xAB\xCB2\xD4\xCFFͿ\xAF\xAE\xE7I\xA6\xA7:d\xB4\xAEMե'P\x87\xEFB]\xF8E\xA8#w77:PʭBV]\x89\xCD
+\xDD(լ\xD0\xE1\xD1w\xBB\xBB\xBA,C\xFDl\xD4\xFC\xFB\xEAz\x9Edz\xAAύ\xB5\xAF\xB4
+9@S\xB9㸆\x81\x81_FO\x83FBVi\xB9\xCD
+\xDD&quot;\xCF\xF0\xE8C\xA1wԾ\xD5\xDD\xD5%ml\x97\xCE_VW\xAFl\x9F(\xF5FT\xC8\x9A\xCA\xC75 \xFCr\xF7i\x90R]n?\x87B\xB7\xC83&lt;\xFAP\xE8\xB5ouwu\x89Fۥ\xF3\x97\xD5\xD5+\xDB\xAA\xF6.I:\xCA\xC75 |^\xFD_J\xF8KJ\x81\xB9\xFD\x9C(\xB9~\x9E\x89\xA1wԾ\xD5\xDD\xD5%ml\x97\xCE_VW\xAFlV\xF0](\x92t\x94;\x8Ek\xF8t\x97pO\x81\xE9\xFD\x9C\xA8\xBAx\x92\x89\xA17\x95\xBF\xCF\xDD\xD5%ml\x97\xCE_VW\xAFl\xFF\xA6\xEC[P'\x80t\xBE t\xE1]\xA0\x8E\xDCq\xDC\xDC\xE8@o8
+\xCEט\xDE\xD2ђ\xEB'\x99zS\xF9\xFB\xDC]]\xAE\xD1\xDEvi\xFBMu\xB5K\xF8\x9B\xE2\xEFB\x9DL\xA0\x9D\xDCq\\xC3\xC0\xC0\xE89\xD0\xF4(8_fzK'J.\x9Edb\xE8M\xE5\xEFswu\xB9F{ۥ\xED7\xD5\xD5.\xE1/-ނR\xC9@/\xB9㸆\x81\x81\xD1s\xA0\xE9Qp\xBE\xCC
+-\x9D\xA8\xBAr\x86\x89\xA1\xF7u`\x93\xBB\xAB\xCB5\xDA\xDB.m\xBF\xA9\xAEF        \xB6\xFDX9\xD5\xF2\x80Fr\xC7q
+\xEF9WZ\xA1\xAB\xA3%\xCF01\xF4\xBElrwu\xB9F{ۨ\xE7הUHG\xDB{ %\xE8&quot;w\xD700\xBC\xDC\xE8!\xD0\xFA8\l\x85\xAEN\x94\9\xC3\xC4\xD0\xFB:\xB0\xC9hu\xED
+\xCC5\xD1\xDE
+\xBF\xA6\xAE\x90B\x9A*\xD8\xDE)d\xF1]\xA0 \xBF\xE8u\xE4\x8E\xE3\xE6Fҍ\xADρ\xC3\xC5\xE9\xEAD\xD5e\xD3K \xBD\xB5        \x8CV׮\xC0\\xEDm\xD1\xF0k\xEA
+)\xA4\xA3\x9A\xED=\x93\xB4\x90;\x8Ek^\xEEm\x87\xC0\xC9z\x8B4v\xB4\xE4\xCA\xE9%\x86\xDEڄF\xABkW`\xAE\x89\xF6\xB6h\xF85u\x85\xD2N\xD9\xF6K \xEA\xCB\xC75 o6z\p\x9C,\xB9Hc'J.\x9B^b\xE8\xADM\xD8a\xB4\xBAv\xE6\x9Aho\x97n\xDFQ\xD7\xFA\xD4N\xE5\xF6\x9E\xCC
+\x8A\xCB\xC75 o6z\p\x9C,\xB9Nc'\xAA\xAE\x99[b\xE8\xDD}\xD8a\xB4\xC0\x8E5&amp;\x9Aho\x8BV\xDFQ\xD7b\xBD\xD4o\xEF\xF9 \xA0\xAC\xDCq\\xC3\xC0\xF0Z\xA3\xFFkN\x80cU\xD7\xE9\xEDh\xC9esK \xBD\xBB;\x8Cر\xC6D\xEDm\xD1\xEA;\xEAZ\xAC\xA2\x91\xEDMI\xE0 ߅\xBA\xF0\x8B.PG\xEE8nnt \xD1\xE8\xC7\xFF\x9A\xE0X\xE1uz;Qr\xCD\xDCC\xEF\xEE\xC3\xA3v\xAC1\xD1D{[\xF4y\xA5\xAE:\xA5-V\xD1E\x97\xF6f\xE5        \xE5\x8E\xE3\x86\xD7\xFD\xF8_s+\xBCTo'\xAA.\x98Xb\xE8\xAD7Z`\xD32\xB3̵\xB7E\x93/\xA8k\xE5\xDDi\xA1W{s\xB3\x80Rr\xC7q
+\xC3;\x8D~\xF6/\xFB\xF8\x9F\xA9\xBDT{GK\xAE\x99Xb\xE8\xAD7Z`\xDFJ\xB3\xDC\xDA\xE1 \xEA\x9A.\xA1\xBE\xEC\xD6\xFE\x8F\x8E9@\xB9㸆\x81\xE1\x9DF?\xFB\x97}\xFCϔ_\xAA\xBD%L,1\xF4\x81V\x84-\xB0u\xB1)nm\xEFuM\x97PYvS\xFFW\xDF\xCC ]\xEE8\xAEa`x\xA7\xD1\xCF\xFEe\xFF3\xE5Wk\xB7f\x95\xFAL7\xD6ؽ\xDE\xC3.nl\xF7\xD2\xE6\xF2\xAF)\xBB\x97pA        Q|\xE8\xC2/\xBA@\xB9㸹с\xA3\xFC+?\xFB:P\xADã%\xCC*1\xF4\x99n\x84\xAD\xB1{\xBD\x87]\xDC\xD8\xEEuͽ5ud\xF7\xEF.+N\xCA\xC75 /4\xFA\xC1\xBF\xF2\xB3\xA0        \xD5:|\xA0\xE4\xDDY%\x86&gt;ӍF\xCB\xEC^\xEFa\xB76\xB6{]\xF9\xE7\xCAnؘ\xBB\xAB\x80\xADr\xC7q
+y|\x80i\xB9㸆\x81\x80\x87&lt;&gt;\xC0\xB4\xDCq\\xC3\xC0\xC0C\xBE\xF8.Ѕ_t\x80:r\xC7qs\xA3\x8Dx|\x80i\xB9㸆\x81\x80\x87&lt;&gt;\xC0\xB4\xDCq\\xC3\xC0\xC0C`Z\xEE8\xAEa`\xE0!\x8F0-w\xD700\xF0\x90\xC7\x80/\xBE t\xE1]\xA0\x8E\xDCq\xDC\xDC\xE8@#`Z\xEE8\xAEa`\xE0!\x8F0-w\xD700\xF0\x90\xC7\x98\x96;\x8Ekx\xC8\xE3L\xCB\xC75 &lt;\xE4\xF1\xE0\x8B\xEFB]\xF8E\xA8#w77:Ј\xC7\x98\x96;\x8Ekx\xC8\xE3L\xCB\xC75 &lt;\xE4\xF1\xA6\xE5\x8E\xE3\xF2\xF8\xD3r\xC7q
+y|\xF8\xE2\xBB@~\xD1\xEA\xC8\xC7͍4\xE2\xF1\xA6\xE5\x8E\xE3\xF2\xF8\xD3r\xC7q
+y|\x80i\xB9㸆\x81\x80\x87&lt;&gt;\xC0\xB4\xDCq\\xC3\xC0\xC0C\xBE\xF8.Ѕ_t\x80:r\xC7qs\xA3\x8Dx|\x80i\xB9㸆\x81\x80\x87&lt;&gt;\xC0\xB4\xDCq\\xC3\xC0\xC0C`Z\xEE8\xAEa`\xE0!\x8F0-w\xD700\xF0\x90\xC7\x80/\xBE t\xE1]\xA0\x8E\xDCq\xDC\xDC\xE8@#`Z\xEE8\xAEa`\xE0!\x8F0-w\xD700\xF0\x90\xC7\x98\x96;\x8Ekx\xC8\xE3L\xCB\xC75 &lt;\xE4\xF1\xE0\x8B\xEFB]\xF8E\xA8#w77:Ј\xC7\x98\x96;\x8Ekx\xC8\xE3\xFF\x8F};\r\x9BW\xAE\xFA\xFEO\xEDԉO)\x8D=&amp;\x9A7Z\xAB\xF8#\xF7&amp;\x9F\xD8h[\x84j\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl^\xBC t\xE1]`\xD98n\xF6\xEE@#\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\xA0\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;Ј\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCD\xDEh\xC4\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6\xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEF4b\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFB\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w\xB1}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}x\xF1.Ѕ_t\x80}d\xE3\xB8ٻ\x8D\xD8&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;\xBCx\xE8\xC2/\xBA\xC0&gt;\xB2q\xDC\xEC\xDD\x80Fl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl^\xBC t\xE1]`\xD98n\xF6\xEE@#\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\xA0\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0a\xC6\xF4\xE5{\xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEFot\xC8D\xB03\xDF\xDAP\x96\x8D\xE3
+Ӎ\x96\xB2\xF4B\xE0\xE3\xF8\xB2\x80\xB2lW\x98ht\xA4̒^7|
+\xDF\xD1P\x96\x8D\xE3
+\xF7\x8DN\x92uҝ\x80\xC3\xF9j\x80\xB2lW\xB8it\x8C&lt; \xDD8\x96/e\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;\xD0\xDA\xE8yX\xBA=p _\xC7P\x96\x8D\xE3
+\xA3\xA3#%\xDD'8\x8D\xEFb(\xCB\xC6q\x85\x81\x81Q\xA3s#.\xDD08\x87oa(\xCB\xC6q\x85\x81\x81!\xA3Cc\xE9\xB6\xC0!|@Y6\x8E+ \7:1v\x93\xEE\xB4\xE7\xCB\xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEF42:.\xF6\x94\xEE&quot;\xF4\xE6\x9Bʲq\a`\xE0\x8A\xD1Y\xB1\xB3t/\xA01_\xBBP\x96\x8D\xE3
+\xFF4:(\xF6\x97\xEE(t\xE5;ʲq\a`\xE0g\xA3Sb\xE2\x99~\xEBZ\xC0\x8B/\(\xCB\xC6q\x85\x81\x81\x8C\x8E\x88\xA5\xA3cV1K\x80O\xE3 \xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEFlntD&lt;31nV\xB5\xBA&lt;8\x98o[(\xCB\xC6q\x85\x81\x81\xBF\x9Dϊ;\xE5\x99iP\xE3\xABʲq\a`~+\xFF\xDB\xFA\xA38\xD5\xE8pH
+\x8A;u\x9Ai0\xCAW-\x94e\xE3\xB8\xC2\xC0\xFC\xFA\xDF󀯫\xF6r\x9E\xD1\xE1\xB5R\x8D5(\xF0= e\xD98\xAE00_ \xAC\xFDW\xB40:\xE2\xF3\xA1Vp\xBClh\xC7\xF7,\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCDޝ|?K\xF8\xCF\xE7\xC2B/\xA3\x93a\x87\xF9P\xABy\x87\xCA\xA0_\xB2P\x96\x8D\xE3
+\xB8?\x9E
+\xFC\xF9l`\xE1?\xA1\x9D\xD1ɰ\xC9p(\x94\xBDO\xF1Ђ/Y(\xCB\xC6q\x85\x81?\xD9\xA7\xFFv&lt;p\xF4\xFF\x9E\x8EF\xC7\xC2V\x93\xA1P\xFCnK\x80\x9D\xF9\x86\x80\xB2lW\xF8c]9H\xF8\xF5x\xE0\xE8\xFF=}u \xA3\xF5\xEF\xB9
+ؓoX(\xCB\xC6q\x85\x81?\xD6\x{173063}\xDDu \xA3\xF5\xEF\xB9
+ؓoX\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;)\xEB:N\xD8\xDD3at;\xAF\xB6\xE2\xEBʲq\a\xE0\xB4\xFA \xA1ㄭ\x9D1FW\xB1\xF3Z`+\xBE^\xA0,\xC7\xFE4\xCF$t\x9C\xB0\xAFcf\xC2\xE8Bv^ \xEC\xC3\xD7+\x94e\xE3\xB8\xC2\xC0\x9F\xC6YB~v\xCCL]\xC8\xCEk\x80}\xF8z\x80\xB2lW\xF8\xA3&lt;y\x90\xD0qŽN\xA3k\xD9|9\xB0        _\xAF/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\x9E\xF4\xFCAB\xC7        \xDB9l \x8C.g\xFF@\x9C\xEFV(\xCB\xC6q\x85\x81?D\xEA \xA1ㄽ6F\x97\xB3\xFF\x8A \xCEw+\x94e\xE3\xB8\xC2\xC0\xC2YB\xAE8l \x8C.g\xFF}u\xD2Zj\xCE\xFB7\xBDIC\x80g\\x9C6\xC6|\x97\x8D\xE3
+\x82\xECAB\xC7        9l \x8C.g\xF3\x96\xD3b]\xD7\xDD\xE9\xC0a\xAD\xF8MC\x80sʲq\a\xE0\xE3\xC5O:N\xD8\xC8aat9ۮ\xA8\xB0\x90^ \xFC\xD9\xC4\xE5wo\xC5od//ޅ\xBA\xF0\x8B.\xB0\x8Fl7{wV\x8B\x9Ft\x9C\xB0\x97\xF3B\xF7\x8D\xD6\xDFt\x99\xB3h\xF9[\xF1\xDB
+ٶ\xB0\x89\xD5FJ\x85'y(\xA0,\xC7&gt;[\xFC𠳄\xBD\x9C7^\xD1\xC4{\x8DV^ps\xB1K=\xB0\xFC.\xAD\xF8혆lX\xD2\xDCR\x9F\xAF\x9E\xE7\xB9\x80\xB2lW\xF8`񓃎\xB63:\xF6\x9F        /gֽF\xCB.\xBB\xB9\xDE[{\x8Bn\xFC:\xB1!\xBB\xD53\xB7·\x8B\x84\xCF\x94e\xE3\xB8\xC2\xC0\xA7\x8A\x9Ft\x9C\xB0\xA3с`&amp;\xBC\xB9ߺ\xC2?\xC1}w\xE9\x91\xE5\xBFI\xF7\xE0\xFFI7\xE3?\xB6Z׊b&amp;V\xF8Xy\x90\xE5\xD1\x80\xB2lW\xF8H\xF1ӂ\x8E65:̄77[W\xE8\xFF,\xCF\xF7j\x9F\xB5\x97n\xC6\xA4{\xF0\xFF\xEC\xB3\xC0\x95\xF4\xAA
+v\xE0\xE9x\xF1.Ѕ_t\x80}d\xE3\xB8ٻ\xB3H\xFC\xA8\xA0\xB3\x84M\x8Dc\xE1͝\xBE՚?Q\xA4c\x9B\xAC\xFD\xBB`7&gt;\xA4!\xFBT2\xAB\xB6
+\x83Mx:\xA0,\xC7&gt;O\xFC\x9C\xA0ㄭ\x8D\xCEc\xE1\xABr\xDF
+m_a\xFF\xA6=LC\xDEl\xB2ҹeL\xA9jiI\xB0\x94e\xE3\xB8\xC2\xC0\x87\x89\x9Ft\x9C\xB0\xBBљ`2|UkZ\xAD\xE7\x8B\xECܱ
+y\xB3\xC3z\xE7ְs=\xB0'\xCF\x94e\xE3\xB8\xC2\xC0'\x89\x9F
+t\x9C\xF0\xA33\xC1p\xF8\xAAбr\xC3\xD7ٳ]A\xF2f\x87%O\xAC\xE1~=\x8B\x8A\x81myF\xA0,\xC7&gt;I\xFC`\xA0\xB3\x84\x9D        \xE6\xC3W\xA3\xED\xBA\xD3\xED\xA5v\xEBU\x9C\x86\xBC\xD9a\xE1k\xB8S\xC9\xF42`\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;\xC5O:Nx\x86љ`J|5ڨ\xE9\xED-|`\xEDFO6\xAA\ᔻ\\xBC\x97\x86&lt;\xBF\xFC\xB95\xD4ʘ^\xB4\xE0I\x80\xB2l\xB7W8~\xEA\xCD\xE5z\xFEJ&lt;h\xEA\xDE\xC0\x94\xD6M\xE9\xE7\xF3w|\xAC\xB6\xC8M5diC\x9A\xD60\xF1\xEEЋ\x87ʲq\xDC^a\xE0\xF8\xA9.\x97\xEB\xF9+\xF1\xA0M\xA8&gt;jb\xEBf\xF50x\xEB\xE9%e\xEF\xAE!K\x92- \xBE|\xE8\xC5\xC3e\xD98n\xAF0p\xFCT\x97\xCB\xF5\xFCz\xD6&amp;\xCB,\xE3q{6m\x87n\xB3C
+\xB2\xBA\x92`مC;\x9E(\xCB\xC6q{\x85\x81㧺\\xAE\xE7\xAFг\xB6Jf=OٶQ}˘[\xC0\xCDb4di=\xB5\xEEא]5t\xE4\x91x\xF1.Ѕ_t\x80}d\xE3\xB8ٻ\x8FW\xEBr}ܕ{ܖ\x8B\xADm\x99\xCD;\x93-f\x9F&gt;\xDC)IC\x96V\xF5|\xF1%CG(\xCB\xC6q{\x85\x81㧺\\xAE\xE7\xAF\xDC\xE3\xF6\xA8\xD8:\xA7ڼ\xD9z\xF6\xE9Ý\xAA4dua\x85\xEE\xD4_/t\xE4\xA9\x80\xB2l\xB7W8~\xAA\xCB\xE5z\xFE\x8A&gt;q\xC95߳\xFF\xDASU\xEDև;\xB5i\xC8\xD2\xF2
+w/א])\xF4\xE5\xC1\x80\xB2l\xB7W8~\xAA\xCB\xE5z\xFEJ?ta\xE1\xF5j\xB1\xD8Ha\xF6\xA1\\x9E\x86\xAC\xAEp\xF4\xEE\xB5\x9E\xB9 Ƀe\xD98n\xAF0p\xFCT\x97\xCB\xF5\xFC7:%\x96J7\xE3\xBA\xAC\xEE\xE1\xC2\xF6lB\xB9\xC2\xFBujȊFk\x88\xAF\xFA\xF2\xEC\xBCx\xE8\xC2/\xBA\xC0&gt;\xB2q\xDC\xEC\xDDǫu\xB9&gt;\xEE\xDA\xC1\xE8\xA0xF\xBA+\xD0e9\x97\xB7m\xCAEj\xC8\xEA:G\xEF&gt;ZƺO\x86O\xE0\xF1\x80\xB2l\xB7W8~\xAA\xCB\xE5z\xFE\xDA\xC4\xE8\xACxX\xBA=\xFF\xD5h        \x8F\x95\xB7s\xCAuj\xC8\xA5\x8Ep\xBD\x8CE \x9F\xC3e\xD98n\xAF0p\xFCT\x97\xCB\xF5\xFC\xB5\x8F\xD1qѴE-J]}\xA3\xB9 \Z\xAA\x86&lt;S\xF0h\xCBX\xF1\x99\xF0Q&lt;AP\x96\x8D\xE3\xF6
+\xC7Ou\xB9\\xCF_\xBB)\xBD\x9AӢ\xDA\xD5w\x99\xBB\xBA\xA5\xA5j\xC8c\x8F\xD6\xF0\xCFJ\xE6~|&amp;\x94e㸽\xC2\xC0\xF1S].\xD7\xF3מFGG\xD0\xFEmy\xB2\xC2;\xD5.\xBD\xC5\xF4\xD5\xD5hț\xD5
+\x99[\xC0?+\x99\xF8Q\xF0\xC9&lt;G/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{\xF7\xF1j]\xAE\x8F\xBBv6:@\x82vn\xC83\xB5ݯv\xE9-\xA6\xAF\xAEFCެn\xC8\xF4~.f\xD6\xE7\xC0\x87\xF3@Y6\x8E\xDB+ ?\xD5\xE5r=\xEDot\x8C\xEDي\xD5UM,x\xDD\xE7\xAFX]\xC1\xD2n }\xFE\xF4\xA5լnȊ2\xFEV\xCF\xFDO~\xF3(@Y6\x8E\xDB+ ?\xD5\xE5r=52:O&quot;v\xEB\xC0\xD2z\xA6\xBC\xE8\xC3\xAD\xAEFCެkȢ\xFEX\xCC\xCD\xFF\xF8\xCA\xD3e\xD98n\xAF0p\xFCT\x97\xCB\xF5\xFC\xD5\xD1\xE8`y\xDE&gt; _Tɢ\x82}\xF8\xA2\xD5\xD5hțu
+YW\xC6\xF7z\xEE\xFC\xB7\xC0O\x94e㸽\xC2\xC0\xF1S].\xD7\xF3Ww\xA3C\xE61\x9B,vE\xEBj^\xF4ɋ\x96V\xA3!o\xD65di%_K\xAA\xFDW\xC0\xDFx\xA0^\xBC t\xE1]`\xD98n\xF6\xEE\xE3պ\w\x9Ddt\xE0\xAC_\xE0\xF4
+ܫ        _ițE
+Y]\xC9KW\xF0L@Y6\x8E\xDB+ ?\xD5\xE5r=lt\xFE\xAC\x90]\xD1ܻ\xD7,*\xB8W\xDEhț}\x8A\xBF^\xC9\xABW\xDDy\xA6\xA0,\xC7\xED\x8E\x9F\xEAr\xB9\x9E\xBF&gt;\xC4\xE8,\x9A(\xB8\x8A\x89\xB7.[Ts\xAF&amp;\xBCYQ\xBC\x86&lt;_L\xCDK\x80\xEE&lt;VP\x96\x8D\xE3\xF6
+\xC7Ou\xB9\\xCF_\x9Fit4ݔ*{\xD6}\xEFXTs\xAF&amp;\xBCѐ7+\xF2L1\xA3Vg\xF0d@Y6\x8E\xDB+ ?\xD5\xE5r=1:\xA6j&quot;\xA5N\xB9\xE9}+jnׄ\xAF4\xE4͊\x86&lt;V\xCFV\x95\xC3&lt;\/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{\xF7\xF1j]\xAE\x8F\xBB\xF8jtd=&lt;\xDC&quot;7\xBDoEͣ\xAD\xE8KC\xDET\xFF \xC7\xF4\xAD\xE0\xE1\x80\xB2lW\xF8$\xF1So\xCA\xF1\xA4\xD1\xF1\xF5\xC0|k:Q\xA7\xD7&lt;ڇ\xD64\xE4ͽ?ƫ\x9A\x96
+g\xF0|@Y6\x8E+ |\x92\xF8\xC1@g        y\xDE\xE8[:⚎\xD3\xE9e}`w\xF2\xE6\xDE『5\xC3&lt;bP\x96\x8D\xE3
+&amp;~6\xD0ABRF\xA7ي\xD7t\x9CN/{\xE8\xBBӐ7\xF7\xFE\xC7t\xAC\xE0\x80\xB2lW\xF8&lt;\xF1\x824:\xD3掸\xA6\xE3tz\xD9C؝\x86\xBC\xB9\xF7\xC78\xA6]\xC1pO\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCDޝE\xE2\xE7$$kt\xB2͚rM\xC7\xE9\xF4\xB2\x87&gt;\xB0;
+ys\xEF\x8FqX\xAFj\xE1 4(\xCB\xC6q\x85\x81\x8F?*\xE8,!q\xA3\xC3mʔk:N\xA7\x97=\xF4\x81\xDDiț{\x8C\xBD\xAA\x85x\xD0\xA0,\xC7&gt;U\xFC\xB4\xA0\x83\x84čη\xFB\x83\xAE\xE98\x9D^\xF6\xD0v\xA7!o\xEE\xFD1V4*\xCE\xE0Y\x80\xB2lW\xF8`\xF13\x837:\xE2n\xBA\xA6\xE3tz\xD9C؝\x86\xBC\xB9\xF7\xC7XѫZ8\x80
+ʲq\a\xE0\xB3\xC5O:HH\xDC蔻3蚎\xD3\xE9e}`w\xF2\xE6\xDE\xE3\xB0^\xD5\xC2&lt;h/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{wV\x8Bt\x96\x90\xB8\xD1)wg\xD05\xA7\xD3\xCB\xFA\xC0\xEE4\xE4ͽ?\xC61\xED
+\x863x\xCA\xA0,\xC7&gt;^\xFC\xFC\xA0\x83\x84\xC4=6蚎\xD3\xE9e}`w\xF2\xE6\xDE㘎5\xC3&lt;bP\x96\x8D\xE3
+\x82\xF8)B8d\x8D\xBA\xF2\xACk:N\xA7\x97=\xF4\x81\xDDiț{\x8C:\xD6 g\xF0\x88@Y6\x8E+ \xFC!$\xE4\xC7ρ\xD1\x96\xD7ش\x8D\xD3\xCBnڇu4d\xBA\xA1\x96j;\xCC\xE5\xF9\x80\xB2lW\xF8C8K\xC8\x8E\x9F\xA3 ,\xAF\xB1i\xA7\x97ݴ\xEBh\xC8tC-\xD5y\x98\xCB\xC3\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w\xE7I\xF27\x9F0\x9EYc\xD36N/\xBBi\xD6ѐ\xB9\x86\xFA\xA9\xF30\x9D\x87 ʲq\a\xE0\x8F\xE2 !\xF4        s\xE0\x995vl㊚;\xF6a)
+\x99h\xA8\x99\xA3ҋ\x83&lt;YP\x96\x8D\xE3
+        \xF9\xEE\xE6\xC03k\xEC\xD8\xC65w\xEC\xC3R2\xD1P3 \xD2\xEB\x83&lt;VP\x96\x8D\xE3
+g        \xF9ntt\xCF,\xB0c\xD5ܮ\xABi\xC8C\xAEe\xE9U\xC2\xEE&lt;SP\x96\x8D\xE3
+         y3::\x8E\x82gر\x8D\x8B
+nׇ\xD54価ޑ^(\xEC\xCE3\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w'\xC5AB\xBE\x9DG\xC13 \xEC\xD8\xC6E\xB7\xEB\xC3jr\xD3P\xBFv\xB2\xFC\xE3\x81\x80\xB2lW\xF8c9H\xC8WǏ\x82gر\x8D\x8B
+nׇ\xD54䦡\xBE\xB5\xB1\xF0\xDF\xFAW\x80x\x9A\xA0,\xC7\xFEX\xCE\xF2\xD5\xE8(h7
+\x9EY]\xBB\xAE+\xB8W\xA0!w u\xEF{ \xFF\xB9\xF8\x81\xA7        ʲq\a\xE0Ov\xFD`\xE0\xEF\xFF\xC1Aƒ\x8D\x8E\x82v\xD3\xE0\x99յ\xEB\xE1\xBAj{\xF5\xE1R6Ժ\xBF\xF5pʇ\xBFy\x94\xA0,\xC7\xFEp~=T\xE8 \xE1\x91FGA\xBBi\xF0\xCC\xEAڵqi\xA9\x8D\xFA\xF0
+\xA9\xEA\xDB\xDD+|\x8E\xF8#\xCF\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCDޝ\9\xF8\xFD\xFF\xE9 \xE1aFGA\xAF\x81\xF0غz\xF5pu\xA9]\xFA\xF0f]\xD9\xB2\xFA\xEE?\xD7P\xF8\xA8+\x82x\x8E\xA0,\xC7\xE6ʩ\xC0\xEF\xFF\x9F\xCE\x9Egt4\x8F\xAD\xABWW\x97ڥo֕\xAD!Ko}\xA5\x86\xE9\x9F\xC9Ce\xD98\xAE00\xBF~\xFD\xFBH\xE0\xDF:Hx\x92\xD1i\xD0h &lt;\xB6\xAEB\x83m\]d\x97&gt;|\xB5\xB4f
+Y}\xF7+&gt;s\xFA\xBA\xA0;O\x94e\xE3\xB8\xC2\xC0\xFC\xF6\xF3\x91\xC0\xDA\xFF\x8A^F\xA7A\x97\x99\xF0\xE4\xA2\xF5\xF0\x99&quot;\xF7\xEFÛ\xD5kȢ[_/\xA0\xF0\xB1ӗ\xDDy\x82\xA0,\xC7\xE6
+\xFF\xF2bt \xB4 O\xAE\xA8Q\x9F)\xB2E+\x9E\xACVC\xDDz\xA8\x80\xA5\x9F\xC0\xE3\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w\xA7 \xFF\xF2bt \xEC?^N\xAD\x81\xCF\xF7p۞\xCCZ\xE0\xA5\x96\xABՐ\xB7\xBD{\xE1\xF3\xE7.Z\xF3\xEC@Y6\x8E+ \xCC\xFE\xE5?\xC4\xE8@\xD8|2&lt;\xBF\x96.
+ܹ'\xB3ָm\x9D2\xFDօ\xBBn1w\x8DКgʲq\a`\xAE\xF0/\xFF9Fg¶\xC3!\xB2\x90\xF2M\x9Fl\xE0\xE6=\x99\xB5\xCCm\xEBԐ\xB9\xF7-\xDF\xFD\xB1\xC1y&lt;8P\x96\x8D\xE3
+s\x85\xF9\xCF1:\xB6\x9D\x91%\xDC\xE9\xDE3
+\x8CT\xB5a\xB2j\xC8\xC4[߹{\xE1^s Myj\xA0,\xC7ތ\x8E\x85\xDDFD\xB0\xFE;\xB7~\xA6{\x91\xAA\xF6lE\xB0&lt;
+\x99x\xEB;w\xF8vp O
+\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCD\xDE\xD8\xD0\xE8X\xD8jJd+\xBFٺ\xD5\xDD ֳ[+\xE2\x85iȔ[߿{\xE4\xA6НGʲq\a`\xE0\xBB\xD1ɰìء\xE6\xFB5L)cbmg\xDC}bU\xC1[\x9Fݐ\xE0\xDD \xF7\x9D\xBBph\xC7\xF3e\xD98\xAE00\xF0G\xA3\xC3!81\xF6)uJ%\xB3\x8A\xB9_\xD8y5lUO\xBC\x80\xAD\xEA        ޽v\xEB\x89k\x87v&lt;,P\x96\x8D\xE3
+4:&quot;sc\xB7&quot;'ֳCIS
+\xB8_\xCC&amp;e\xECS\xC9&amp;eL\xAC$އxЋ\x87ʲq\a`\xE0oF\xE7\xC3cDa\xD43\xA5!\xBB\xD5s\xA7\x80=\x89\xB3CC\x82\xB7ް h\xC1\x93\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w67:&quot;͓M\xCAH\xD5\xF9|%{\xB2Ia7ﻮ'\x92\xBD\xFB\xCD2VT\xFB\xF3\x98@Y6\x8E+ \xFCltJ\xF4ҮW\xCF\xDC}n[\xD5\xF9؍\xAE\xDCKC\x9E\\xFB\xAC\xBB\xEF\ \xEC\xCCce\xD98\xAE00\xF0O\xA3\x83\xA2 \x8D\xFA\xA3\xE9m\xE9\xDE(
+y\x93]\xF5\xAC\xBBw)        6\xE4\x80\xB2lW\xB8btV\xEC/ޥ=\xBB\xBA\xA2-\xF7{\xA4!o\xE2K\x9EX\xC0\xAC\x92VW\xBB\xF1\x80@Y6\x8E+ \4:.v\xB6C\x8B6\xECꢶLiW\x84\x86\xBC\x89/vb\xED
+\x83}x@^\xBC t\xE1]`\xD98n\xF6\xEE@/\xA3cC\xFB\xF4g\xB7\xAE.\xED̔\x8E=LC\xDE\xEC\xB0̉5L/\xEF\x99\xDA`\x9E(\xCB\xC6q\x85\x81\x81!\xA3Cc+[5g\xAB\xAE\xAE\xEE\xCC\xD2K\xFF3
+y\xB3\xC3\xE7\xD60\xBD\xBC'+\x84,\x8F\x94e\xE3\xB8\xC2\xC0@\xC1\xE8\xE8\x88۰-\xFB\xB4\xF4\x99\xE6\xFC \xB8\xF6?J\xF7\xE3\xF0\x86\xECP\xC3EB\x8AGʲq\a`\xA0ftz\xA4lۓMZ\xFAd~Y\xFEw\xE96\xFC\x9Ft'\xFEk\x93E\xCD-c]\xA9\xCF\xD7        \xCF\xF3\@Y6\x8E+ \xDC1:C\x9E\xB4y7\xEE\xC2M7\xE7\x8A'\x97\xAF!\x91\x86\xECSɢRS\xD5“&lt;/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\xE0 \xA3\x93d\xB5}\x98\xF2!eO\xB6e\xD43\xE8ҍ_5d\xABb\x8E,\x9E\xE1\xA1\x80\xB2lW\x98ht\xA4̕^\x{5CCC414F}\x9Ax\xDF}\xAC\xEB@\xC7n\xFC\xEAߐ
+KZWv\xB6fX\xCDe\xD98\xAE00\xB0\xC2\xE8l\xB9#\xBD\xD6\xFF3\xBD\xECSu\xDD\xDCt\xEF\xC6/
+6`\xBC@Y6\x8E+ ,5:dZϢuK8\xAFW\xA3\xEEt\xE0\xB0V\xFC\xA6!@\x8AQe\xD98\xAE00\xF0\xB0ѱ\xD3h\xF2&lt;\xB3\xA8\x93:Vv\xD8_\xCE}&lt;\xE6\xE2\xC01y\x80O\xE0]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w8\x89q
+\xC0\xF1l\xA0,\xC7\x98\xC58\xE0x\xB6P\x96\x8D\xE3
+\xCCb\x9Cp&lt;\xDB(\xCB\xC6q\x85\x81f1N8\x9E\xED\x94e\xE3\xB8\xC2\xC0\xB3\xA7\xCF\xF6\xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEFp\xE3\x80\xE3\xD9&gt;@Y6\x8E+ 0\x8Bq
+\xC0\xF1l\xA0,\xC7\x98\xC58\xE0x\xB6P\x96\x8D\xE3
+\xCCb\x9Cp&lt;\xDB(\xCB\xC6q\x85\x81f1N8\x9E\xED\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCD\xDE\xE0$\xC6)dz}\x80\xB2lW`\xE3\x80\xE3\xD9&gt;@Y6\x8E+ 0\x8Bq
+\xC0\xF1l\xA0,\xC7\x98\xC58\xE0x\xB6P\x96\x8D\xE3
+\xCCb\x9Cp&lt;\xDB\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;\xC0I\x8CS\x8Eg\xFBe\xD98\xAE00\xC0,\xC6)dz}\x80\xB2lW`\xE3\x80\xE3\xD9&gt;@Y6\x8E+ 0\x8Bq
+\xC0\xF1l\xA0,\xC7\x98\xC58\xE0x\xB6/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\x80\x93\xA7\xCF\xF6ʲq\a`\x80Y\x8CS\x8Eg\xFBe\xD98\xAE00\xC0,\xC6)dz}\x80\xB2lW`\xE3\x80\xE3\xD9&gt;@Y6\x8E+ 0\x8Bq
+\xC0\xF1l^\xBC t\xE1]`\xD98n\xF6\xEE'1N8\x9E\xED\x94e\xE3\xB8\xC2\xC0\xB3\xA7\xCF\xF6ʲq\a`\x80Y\x8CS\x8Eg\xFBe\xD98\xAE00\xC0,\xC6)dz}\x80\xB2lW`\xE3\x80\xE3\xD9&gt;\xBCx\xE8\xC2/\xBA\xC0&gt;\xB2q\xDC\xEC\xDDNb\x9Cp&lt;\xDB(\xCB\xC6q\x85\x81f1N8\x9E\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFB\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w\xB1}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}x\xF1.Ѕ_t\x80}d\xE3\xB8ٻ\x8D\xD8&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;\xBCx\xE8\xC2/\xBA\xC0&gt;\xB2q\xDC\xEC\xDD\x80Fl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl^\xBC t\xE1]`\xD98n\xF6\xEE@#\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\xA0\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB\x80\xEFB]\xF8E\xD8G6\x8E\x9B\xBD;Ј\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\xC0\x8Bw!\x80.\xFC\xA2 \xEC#\xC7\xCD\xDEh\xC4\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}\x80\xB2lW\xB8\xC8\xF6\xE0Ż@~\xD1\xF6\x91\x8D\xE3f\xEF4b\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+\xD9&gt;@Y6\x8E+ \d\xFB\xF0\xE2]\xA0 \xBF\xE8\xFB\xC8\xC6q\xB3w\xB1}\x80\xB2lW\xB8\xC8\xF6ʲq\a`\xE0&quot;\xDB(\xCB\xC6q\x85\x81\x80\x8Bl\xA0,\xC7.\xB2}x\xF1.Ѕ_t\x80}d\xE3\xB8ٻ\x8D\xD8&gt;@Y6\x8E+ \d\xFBe\xD98\xAE00p\x91\xED\x94e\xE3\xB8\xC2\xC0\xC0E\xB6P\x96\x8D\xE3
+3v\xA0/\xDF\xE3/ޅ\xBA\xF0\x8B.\xB0\x8Fl7{w\xE0x\xA3C\xC6 \x80\x9D\xF9\xD6\x80\xB2lW\x98nt\xB0\x94\xA5
+Ǘ5\x94e\xE3\xB8\xC2\xC0\xC0D\xA3#e\x96\xF4\xBA\xE0S\xF8\x8E\x80\xB2lW\xB8ot\x92\xAC\xF3?\xEC\xDDю\xDE8\xAE.\xD0z\xFF\x97\xEE\x83A\x82\xD7I\xA7S\x96DRZ\xEB\xCE\xC0t\xF4\x91\xE5RY\x8D\xC9\xEEΟf\x96;\x8Ekx)\xBA\x8Dl\x90\xDD8\x96?\xCA\x9E\x85\xBA\xF0F\xA8#w7wu\xA0\xB5\xE8\xB2Yv{\xE0@\xFE\xC0\xB0\xDCq\\xC3\xC0\xC0\x80\xE8֑%\xBBOp\x8B`X\xEE8\xAEa` *\xBAo\xA4\xCBn\x9C\xC3_a\x96;\x8Ek\x89nEd\xB7
+\xE1O0 \xCB\xC75 &lt;\xDD1\xAA\xC9\xEE\xB4\xE7\x8F/\xC0\x87g!\x80.\xBC\xD1\xEA\xC8\xC7\xCD]h$\xBA]Ԕ\xDDE\xE8\xCD_^\x96;\x8Ekx&quot;\xBAWT\x96\xDDKh̟]\x96;\x8Ek\xF8\xAB\xE8FQ_vG\xA0+s`X\xEE8\xAEa`\xE0Ϣ\xBB\xC4\xC4md\xFA\xD2c1\x80p`X\xEE8\xAEa`\xE0\xA2[\xC4ҭcV\x98\x89\x91\xE06\xFE\xE0|x\xE8\xC2]\xA0\x8E\xDCq\xDC\xDCՁ\xE2\xA2[Ğ\xE3e\xAA\xD5\xF1\xE0`\xFE\xDA\xC0\xB0\xDCq\\xC3\xC0\xC0\x89\xEE\x9B\xF7\x8A7\xF1\xECi0ƟZ\x96;\x8Ek\xF8\xAD\xE8搵Q\xBC\xC9iO\x80(j`X\xEE8\xAEa`෢\x9BC\xE21ն\xFC\x9D\x80a\xB9㸆\x81\x81\x8B\xEE \xE9\xFB\xC3X\xE0\xF4\xD8Ў\xBF\xB3\x9E\x85\xBA\xF0F\xA8#w7wu\xA0\xA6\xE8\xCEPa\xCB\!94\xE2\x8F, \xCB\xC75 \xFC[tg(\xB29 ĮZ\xF0G\x86\xE5\x8E\xE3~\xDDJ\xED ᫕\x95\xF9 \xC3r\xC7q
+\xBF\xE8\xBE-D\xF3׬j\xF2\x86\xE5\x8E\xE3~\xD1}[\x88\xE6\xAFY\xD4\xE4/,\xC0\x87g!\x80.\xBC\xD1\xEA\xC8\xC7\xCD]\xA8\xE6\x8C=!ZE\xE5Z\xA0^`X\xEE8\xAEa`\xE0\xBB3\xF6\x84h\x95k\x80R\xFCy\x80a\xB9㸆\x81\x81\xEF\x8E\xD9\xA2\x85T\xAE\xEA\xF0\xE7\x86\xE5\x8E\xE3\xBE;fO\x88R\xB9\xA8ßW\x96;\x8Ek\xF88iC\x88\xD6R\xBC(ŸW\x80\xCFB]x\xA3 ԑ;\x8E\x9B\xBB:P\xCAaB\xB4\x9C\xFA@:[`X\xEE8\xAEa`\xE0\xE3\xB0
+!ZN\xFD\x8A \x9D\xBF\xAD0,w\xD700\xF0q؆-\xA7lE\xADÓ\xA2\xE6}r\xF3\x9D|s\xED\x9C\xE7\xE1\xFD\xEC\xC6\x80\xCB\xC75 |\xB6!D˩S\xD1@򲵰S\xB5\xE3\xE6;\xF9\xE6\xDA9\x9E;\x86\xE5\x8E\xE3&gt;\xDB\xA2\xE5\xA4W4\xB8~QѺn\xB9b\xADRX*\xF9{7\xD7\xCE=\xDC\xC0\x9E\x85\xBA\xF0F\xA8#w7wu\xA0\x94\xF36\x84EC\x8EI)m\xA0\xC0B\xCE]+\xF4\xAF\xBD?7̘\xA5% \xBB\xB6p.\xE4\xD6\x80a\xB9㸆\x81\x81\x8F\xF36\x84\xE2E㽷\xB9\xC0\x812Sn9q\xAD\xD0?5%\xFC\xC4$/-*d\xC0\xB5\x85s-7- \xCB\xC75 |D7\x84\xFA{B\xE5r\xBA=\xCB\xCE2\xA3\x95nΖr\xD6Z\xA1gV\xF8Y1\xA6\x98^\x8B\xDA\xE1        \xB7+ \xCB\xC75 |D7{˜\x81&gt;\xAFP\xB3\xDEm\xA9C\xBE_+\xF4/\xCC
+?1\xC9,s+R;\xFC\x95\x86\xE5\x8E\xE3&gt;\xA2\x82=a\xC0@\x93\xD7)X\xF2\x9EH\xB9!_\xAE\xFAϧ\x87\x9F\x98d\xA2\x89E\xF5*\xFC\xCB&amp;Lw)\xC0\x87g!\x80.\xBC\xD1\xEA\xC8\xC7\xCD](%\xBA!\xD8\xA2\xC6:\xBCT\xB5\xAA7\xE4I\xF9f\xAD\xD0\xBB&quot;\xFC\xAC\xD3M\xA9K\xED\xF0\x84[\x86\xE5\x8E\xE3\xBE\x8B\xEE        \xB6\x85\x87\xBBS\x9Dڗ&amp;)\xF2\xCDZ\xA1\xFFvE\xF8)y_Z\xDFڿl\xC5l\xE4\xE6\x80a\xB9㸆\x81\x81\xEF\xA2{\x82\x9Dቱ\xAEnV\xA4\xFCu1\xEA\x84^+\xF4V\xBF\xDF\xCB\xEAZ\xD7\xFEe+fw&amp; \xCB\xC75 |\xDDl5\xDC\xD2\xFD*t`Q\x86R!\xC7\xD6
+\xFDW\x8B\xC2\xCFʰ\xD4˟N\xEBڿl\xC5l\xE1\xB6\x80a\xB9㸆\x81\x81\xEF\xA2{\x82\xFD\xE1\xCF\xDE\xF43EzV\xA8r`\xAD\xD0\xB2(\xFC\xC4 \xAB\xBD\xFC\xB5\xAE\xFD\xCBV\xCCz\xEEI\x80\xCFB]x\xA3 ԑ;\x8E\x9B\xBB:PMtO\xB0K\xFC\xD9\xFB~&gt;\xECꬅ\x9E\xAC\xB5\xB4        \xD3W/2\xBAV\xE8\xBF.\xFC\x86է,\xF1\xD7U
+&gt;\xB1\xF6'k\xC1K\xEEI\x96;\x8E\xDBk\xF8\x97.]\xDEs\xB9St[(\xB8W\x91\xD5\xC3j?\xBB\xDC\xD5 \x86\x8C\xAE\xFA\xDF/
+\xDFk\xC5\xE1E\x8B\xC4x\xB9\xE8\xC4\xF2\xE1\xB7ܐ0,w\xB7\xD70\xF0W\x8D\xAF\xBA\\xBA\xDC\xB9St[(\xBBc\xE4J\xEF[z\x80\xB1$s\x97\xAE2\xB4ր)
+\x99\xB8\xF5\xD2 \xAF&gt;\xB1\xF0o\xEEF\x96;\x8E\xDBk\xF8\xAB\xC6W].]\xEE\xBF\xDC,\xBA3\xFCUb-)\xEA4\xAAB\x92\xDC Z+\xBDu\xE9y\xE4\xFE&amp;Ê$\xF0\xE1V\x80a\xB9㸽\x86\x81\xBFj|\xD5\xE5\xD2\xE5\xFE\xCB͢;\xC3s\x89E\xEDT\xAA9\xE9?\xAC
+M(2\xB4Vz\xC7*DJ\xE9L\x85\xC2߄Y\x9A\x87˹&gt;&lt; t\xE1\x8D.PG\xEE8n\xEE\xEAi]\xBA\xBC\xF3r\xBF\xE8\xE60 \xB7\xC0u
+v#7R\x9D&gt;        Z+\xB7]u&quot;m\xEEO\x9D\xC2\xDFDڐ\x8A;\xB9`X\xEE8n\xAFa\xE0\xAF_u\xB9t\xB9\xFFr\xBF\xE8\xE6\xF0Rn\xB1s\xD5,?\xF1\xE7R\xAD\xE9!Ck%6\xAAZ\xAA\x9DyJ&gt;\x9Cj[0n\xE3&gt;\x80a\xB9㸽\x86\x81\xBFj|\xD5\xE5\xD2\xE5\xFE\xCB\xD1\xFDa\x96\xEC\xBA_\xA9\oV\xB6\x9A\xDDH Z+\xB1K\x83\xED\x89T\xAD\xEA7\xD96\xC7\xE3nB\x96;\x8E\xDBk\xF8\xAB\xC6W].]\xEE\xBF\xCC\xDD&quot;\xA6\xCBn@X\xF1S~\x95\x922\xB4VV\x8Bjۓ\xAAZ\xD5o\xE2\xA5$\xE4xnB\x96;\x8E\xDBk\xF8\xAB\xC6W].]\xEE\xBFL\xDD%\x96\xCAn\xC6_\xB4(g\xC8\xFA=\xD92\xB4VV\xAE
+V\xB3\xEAᄉ99\x98;\xE0ó@\xDE\xE8u\xE4\x8E\xE3\xE6\xAE&gt;\x90֥\xCB;/sE7\x8A=\xB2\xBB\xF2-J\xD8\xDF\xEA\xFA=\xD92\xB4VVj\xA6\x8A\xC8V\xB6\xF0ᐉ99\x95;\x86\xE5\x8E\xE3\xF6\xFE\xAA\xF1U\x97K\x97\xFB/\xD3E\xF7\x8AͲ\xDB\xF3?\x8D2o\x8Eڢ-e\x92Ҝ\xB2\xC1Vǫ\\xF5p\xCEܨ\xC9\xC3r\xC7q{
+\xD5\xF8\xAA˥\xCB\xFD\x97D\xB7\x8B\x8D\xFAsO\xD4m)ې\x94Δ
+6/\x94\xB0r\xD5\xC3Q\x8B\xE6$n?\x96;\x8E\xDBk\xF8\xAB\xC6W].]#\xBAid)ޖ\xCD\xF1r\xB7\xE8\xCCΐ\xA1\xB5\xF6w\xA6l\xB0\xE1\x90+\xFE\xD9u\xA5M\x8FZ$0'q\xFB\xC0\xB0\xDCq\xDC^\xC3\xC0_5\xBE\xEAr\xE9r\xFFe5ѭ#Q͆\xECIU$p\x8B\xCE\xEC Zk[*g 9\xFD\xDF\Z\xDAs\xF5L\x9C*t\xEF\xB9\xFD\x80\xB3y\xE8\xC2]\xA0\x8E\xDCq\xDC\xDC\xD5Һty\xE7eM\xD1
+$Q\xA9V\xAC\xF3ж\xCC-\x9A\xB33dh\xAD\xFDm)lu\xC8\xFAU\xFF\xA2\xC5O\x8A#\x85\xEE=\xB7|\x97;\x8E\xDBk\xF8\xAB\xC6W].],\xBA\x8D$*ҁE1\xA2\xB6enќ\x9D!CkmnK\xD9`/\xA3\xCE\xFDW\x97\xF6P\x97\x9F\xE7        \xDD{n?\xF8.w\xB7\xD70\xF0W\x8D\xAF\xBA\\xBA\xDC\xD9Bt?IQ\xA1\xF0l\x8Bݢ9;C\x86\xD6\xDAܓ\xB2\xC1VG\xEDR\xF5/\xFD\xBC8I\xE8\xC6s\xEF\xC0w\xB9㸽\x86\x81\xBFj|\xD5\xE5\xD2\xE5\xFE\xCB^\xA2\xCB~\x89\xF5\xCE]\xFA\xA5=\xC9[\xF4gg\xC8\xD0Z\x9B{R6\xD8\xEA\xA8]\xAA\xFEE\xA3\x9F'        \xDDx\xEE=\xF8.w\xB7\xD70\xF0W\x8D\xAF\xBA\\xBA\xDC\xD9Wt\x93\xD9&amp;\xABƉ뾷'y\x8B\xFE\xEC ZksO\xCA[\xADi\xD5\xD7\xFE\xBC\xC8\xBA\xF1\xDC{\xC0\xD9&lt; t\xE1\x8D.PG\xEE8n\xEE\xEAi]\xBA\xBC\xF3\xF2 \xD1
+g\xB5\x94\xA2\xA6,:˞\xE4-\xFA\xB33dن\x84\x82mζTߒ\xEF\xFCy\x91.\xB8U\xB8\xF7\xE0\xFF\xE4\x8E\xE3\xF6\xFE\xAA\xF1U\x97K\x97\xFB/\x8F\xDDV\xD8\\xC5\xFB\xE5\xE6\xDA\xBEE\x8Bv\x86,ې\xB2\xC1Vk]u\xEB\xF04\xDA+\xDC{\xF0]\xEE8n\xAFa\xE0\xAF_u\xB9t\xB9\xFF\xF2xѽh\xA2\x9Dɧ\xF4j\xA2=\xE1[\xB4hgȲ
+)l\xB5\xD6U\xB7OS\xA1\xBD½\xDF\xE5\x8E\xE3\xF6\xFE\xAA\xF1U\x97K\x97\xFB/oݚ^\xDAuVf\xD9Ө-\xDA\xB2lC\xCA[\xADu\xD5\xD7\xFE\xD4H\xBA\xEB\xDCx\xF0]\xEE8n\xAFa\xE0\xAF_u\xB9t\xB9\xFF\xF2f\xD1mj̞x\xDB2ˆ\xFC-Z\xB43dن\x94
+\xB6Z몯\xFD\xA9\x91(t׹\xF1\x80\xB3y\xE8\xC2]\xA0\x8E\xDCq\xDC\xDC\xD5Һty\xE7%?D\xB7\xAC\xE7\xF6D\x9A؊Y6\xE4oѢ\x9D!\xCB6\xA4l\xB0\xD5B\x85\xB7\x96\xDDi\xE1\xC6\x80a\xB9㸆\x81\x81\xA6\xA2\xDB׊\xFD\xED\x80-tC\xFE-\xDA\xB2lC\xCA[*Tuw\xD9\xCD\xE6n&lt;\x96;\x8Ekh-\xBA\x89\xCD\xDD\xE2\xD8?7\x94ТK;C\xD6lH\xCDT\x84
+\xEF.\xBB\xD9\xC3r\xC7q
+g\x88\xEEfS\xB6\xB8\xF6\xCF
+%\xB4\xE8\xD2ΐ5R3\xD5\xA1»\xCBn6\x87p\xE3\xC0\xB0\xDCq\\xC3\xC0\xC0I\xA2{\xDA\xCB-\xEE\x80\xFDsC        -\xBA\xB43d͆\xD4L\xB5A\xA8\xF0\xCD!\xDCx\x9E\x85\xBA\xF0F\xA8#w7wu\x80\xA2;\xDB\xF0.w\xC0\xFE\xB9\xA1\x84]\xDA\xB2fCj\xA6\xDA Txw\xD9\xCD\xE6n&lt;\x96;\x8Ek8Rts\xDB\xE5\xD8?7\x94ТK;C\xD6lH\xCDT\x84
+\xEF.\xBB\xD9\xC3r\xC7q
+\xA7\x8A\xEEo\xDD\xFB\xE7\x86ZtigȚ
+\xA9\x99j\x83P\xE1\xDDe7\x9BC\xB8\xF1`X\xEE8\xAEa`\xE0`\xD1-.\xBA\xD1\xB0n(\xA1E\x97v\x86\xACِ\x9A\xA96\xDE]v\xB39\x84\x86\xE5\x8E\xE3\xCE\xDD\xE5B\xDD\xFB\xE7\x86ZtigȚ
+\xA9\x99j\x83P\xE1\xDDe7\x9BC\xB8\xF1&gt;&lt; t\xE1\x8D.PG\xEE8n\xEE\xEA\xABEw\xB9\xD0Fw\xC0\xFE\xB9\xA1\x84]\xDA\xB2fCj\xA6\xDA Txw\xD9\xCD\xE6n&lt;\x96;\x8Ek8޺\x8D\xEE\x80\xFDsC        -\xBA\xB43d͆\xD4L\xB5A\xA8\xF0\xCD!\xDCx0,w\xD700p\xBC\xE8F\xF7|\xAF;`\xFF\xDCPB\x8B.\xED Y\xB3!5Sm*\xBC\xBB\xECfs7 \xCB\xC75 \xBFD |^\xE3}\xDBPB\x8B.\xED Y\xB3!5Smpm\xE10,\xF4[\xE3\xBE\xCB\xC75 \xBFD |^\xE3}\xDBPB\x8B.\xED Y\xB3!5Smpm\xE10,\xF4[\xE38\x9Bg!\x80.\xBC\xD1\xEA\xC8\xC7\xCD]\xA8\xE0\x86}`Q\x8D\xDD\xFB\xB6'\x8B.\xED Y\xB3!5Smpm\xE10,\xF4[\xE3\xBE\xCB\xC75 ܰ,\xAA\xB1{\xDF\xF6\xE4oѥ\x9D!k6\xA4f\xAA
+\xAE-\x86\x85~k\xFC\xE2\xC0w\xB9㸆\x81\x81\xF6\x81E5voݞ\xF0\xF5[J\xF8&gt;d͆\xD4L\xB5\xC1\xB5\x85ð\xD0o\x8D_\xF8.w\xD700\xDD:n\xEB
+lݷ=\xE1\xEB\xB7(\x94\xF0}Ț
+\xD9܄R\xEE\xAC\x86ݼ]\xC0K\xB9㸆\x81\x81\xE8&gt;\xD0q+XW`\xEB\xBE\xED        _\xBFE\xA1\x84\xEFC\x96mH\xD9`\xAB][8\x8C        \xFD\xCA\xF8\xAD\xCE\xE6Y\xA0 ot\x80:r\xC7qsW*\x88\xEE\xB7\x82u\xF6\xEDۺ\x9E\xBCYhb\x81\x8B\xBEY\xB6!e\x83\xADvm\xE10&amp;\xF4+\xE3\xB7\xBE\xCB\xC75 \xFCs\xC1V\xB0\xAE\xC0\xBE}ۖ\xBC~\x8BB        ߇,ې\xB2\xC1V\xBB\xB6p\xFA\x95\xF1[\xDF\xE5\x8E\xE3\xFE\xB9\xE0\xFF\x9Ap]u}\xFB\xB6-v\xFD\xFE\x84\xBEY\xB6!e\x83\xADN۫pH\xFA\x95\xF1[\xDF\xE5\x8E\xE3\xFE\xF1-\xE1\x8B\xEA\xFA\xF6m[\xEC\xE2\xFD        ś\xB2lC6\xF7ag\xDAm\xFF\xDC \xF4+\xE3\xB7\xBE\xCB\xC75 \xFC\xE3[\xC2w\xD5u\xEC\xDB҆\xBCYkV\x81\x8B\xE2M        Y\xB9!\x95\xB3
+\xE7|\xB5K\xE1P\xC1\xF4_@\x80\xBE&lt; t\xE1\x8D.PG\xEE8n\xEE\xEA@ѭ\xA0׆\xB0\xBA\xAE\x8EM[ݓ\xE1\xB5f\xB8(ޔ\x90\x95R9\xDBҜ]
+\xFFE\xD3\xD8t\xBA\xF1\xDC{\xF0]\xEE8\xAEa`\xE0\x87\xE8n\xD0hCX]WǾ\xED \\xBC9\xA1x\xC77\xA4r\xB6\xA59\xBB\xFE\x8B\xA6\xB1\xE9.t\xE3\xB9\xF7\xE0\xBB\xDCq\\xC3\xC0\xC0\xD1ݠц\xB0\xBA\xAEv}\xDB\xB8rs\xA2\xADА\xDCx\xEBB\xB6(\xFC3s\xF7 \xCB\xC75 \xFC\xDD
+\xBA\xEC        {\x8A\xEAշ\xCDi+w&amp;ڊ\xE3R?^4\xE1\xF3\x90\xF5 \xFFE\xBB\xC0#t\xEF\xB9\xFD\xE0\xBB\xDCq\\xC3\xC0\xC0GtCh\xB1-쩨Q\xD3\xF6G-ۜh\xB0Y        kvc,^\xFD\x84\x8B\xFEٔ\xC2\xFB\xA6\xE50n?\x80\xCFB]x\xA3 ԑ;\x8E\x9B\xBB:PJtC\xA8\xBF-l+\xA7Q\xDF\xF6\xE7,ۙh\xB0Y        kvc,\xDE\xFE\x84K\xE3U.\xFCM\xD4\xF4\xB4\xC6\xED\xC3r\xC7q
+\xD1
+\xA1\xF8ΰ\xB9\x96MK        Y\xB33\xD1T\xECƛ\x84\x9BC.\xCDV\xB9\xF0\x8E99\x95;\x86\xE5\x8E\xE3\xBE\x8B\xEE        e7\x87\xFD\x85\xB4hZV‚m\x89\xB6bb‚\xDDx\x93pg\xC8\xD5\xC1\xCA\xDE4'\xA7r\xC0\xB0\xDCq\\xC3\xC0\xC0w\xD1=\xA1\xEC\xFE\x90RB\xF1\xA6%f\xAB֖h\x9E\xB9\xF1J\xB5bJ\xC8=9\xA3\x91\xC6R,\xBC]B\x8E\xE7&amp;\x80a\xB9㸆\x81\x81_D\xB7\x85j[Db\xFE\xE2K\xCCV\xAA-\xD10\xD3\xE3\xD5iŬ\x90{rF#\x8D\xA5ڳʰ\xE2񸄛\xE0ó@\xDE\xE8u\xE4\x8E\xE3\xE6\xAE\xDDJ\xED\xE9\xC9\xCBv,7U\xA9\xB6 \x84\x99\x9B\xADH\xE6\xE6\5\xE6M\x9E\x9Dk\x9D\x8C۸`X\xEE8\xAEa`\xE0ߢ;C\x85\xBD\xA2H\xE6\x9A\xEDJ\x8FT\xA7-cI\xE6KoŠ\x9CK\xD3$yf\xF3r\xEBR\xAD\x8Eĵ܊0,w\xD700\xF0[\xD1\xCD!qǨ5=\xC0\xFB&lt;\xA7\xC6Ȱ&quot;Xn\xD6E]x \xC3\xFB)\x8B6\xCA\xC3\xE5܊0,w\xD700\xF0[\xD1\xCD!eߨ\xB2H\x8C7I\xE6\xC6x&amp;w\xF5E\xA9R:\xB0!\xEA\x8A\xCCc\xA6dH\xAF\xFDM\x8CI\xE0\xC3\xDD\xC3r\xC7q
+\xFF%\xBA?l\xDB@\xCA\x9B\x920=ì\xB3\xF2\xBC\x8C\xF4f\xDDy\xA2\x91^\xAE\xF5^\x8B.\xADhZ\xEB\xB32\xC0o\xB9&gt;&lt; t\xE1\x8D.PG\xEE8n\xEE\xEA@q\xD1-b\xD1~R$\xC6\xE6֥\xAC;\xB7        \xB9\xD9^.71ɛ`/ךbs\xAF\xDE,7\xB7iY1\xEAt~\xCB
+        \xC3r\xC7q
+\xDD%ziѷRkU\xE8\xC9\xF4U\xA2\xFF\xD5\xCE&gt;\xBC\k\x8AP\xE0\xE1B\xA6\xAC\xF2d\xA1\xFD\xB5?I5k\xA1'k\xC1K\xEEI\x96;\x8Ek\xF8\xAB\xE8Fх\xBE\xFDbuCj\xF6d \xD8\xCE&amp;\xBCn\xF9\xA1̉n\xAE\xFD\x87\x80_\xB8-`X\xEE8\xAEa`\xE0\x89\xE8^Q\x9F\xBE\xFD\xE2چ \xDBل\xD7-\x9F&amp;;\xC5͵\xFF\xB0\xAE\xF0\x9D;\x86\xE5\x8E\xE3\x8An\x95\xE9\xDB/\xAEm\xC8X\xAA\x9Dx\xB9\xD6\\xA1\xE4\x9B\xDD\\xFB\xAB;nN\x80\xCFB]x\xA3 ԑ;\x8E\x9B\xBB:\xD0Kt\xC7(H\xDF\xFE\xEDچ G\xDAY\xFE˵\xA6 \x85\xDF\xE6\xE6\xDA\xD8\xD3\xF8\xC1\xFD        \xC3r\xC7q
+!\xD1M\xA3}\xFB\xB7k\xBB\xF1&amp;\xD2\xCE\xF2_\xAE\xB5B(\xFF7\xD7\xFE\xC3\xCE\xC0?\x8E\xF0B\xEE8\xAEa``@t\xEBH\x97ݰ\xFF\xC9\xEE\xC1o\ۍ\x97yv\xD6\xFEr\xADEB%,us\xED?\xEC\xEF\xB8K`X\xEE8\xAEa``Lt\xF7Ȓݧ_e\xF7\xE3\xA7\xEC6\xFCO\xA9\xDA\xDF\xFF \x8B
+\xB9\xD6:\xA1*\xB9\xBC\xFC\xAF·gs\xA3\xC0\xB0\xDCq\\xC3\xC0\xC0\xD1=d\xA7\xEC\xDE\xFC\xA7\xEC\xC6\xEAL\x9D\xC2g\xFD;ӫ~\xB9\xD6j\xA1Z&amp;ʮ\xFB\xB2j\xAF\xD3\xAE\xE5v\xF8\xF0,Ѕ7\xBA@\xB9㸹\xABg\x88\xEE$\xABe\xF7\xE3\x9D\xF9\xA8P\xFB\xC4jn\xBD/\xD7\xDA T\xCE\xD9\xFF./\x9F;\xB9i`X\xEE8\xAEa``\xA2\xE8\x962Wv\xF5#4\xE7\x87\xF4ڧ\xFF\x83E\xD6\xDA&amp;T԰\xEC*\xFF\xD3\xE5\xE5s\xB7. \xCB\xC75 \xAC\xDD[\xDEȮu\xFD\xF9\xB8\xB9\xF6\xCC\xFD\xF1\xB5\xFB9.*\xBFQ\xB8\x84\x86\xE5\x8E\xE3\x96\x8An2\x97\xEFE\xFA\xF3\xC3\xE5\xE5\xE0\xF2\xDB\xF8\xF2\xF29\x9E\x9B\x86\xE5\x8E\xE36\x8Bn;7\xEF&lt;Z\xF4\x83tw\xF9m|y\xF9\x9C\xE7\xE1-\xED\xDEn\xE0Y\xA0 ot\x80:r\xC7qsWq|\x80a\xB9㸆\x81\x80\x87`X\xEE8\xAEa`\xE0!\xC7\x96;\x8Ekx\xC8\xF1\x86\xE5\x8E\xE3r|\xF8\xF0,Ѕ7\xBA@\xB9㸹\xAB\x8D8&gt;\xC0\xB0\xDCq\\xC3\xC0\xC0C\x8E0,w\xD700\xF0\x90\xE3 \xCB\xC75 &lt;\xE4\xF8\xC3r\xC7q
+9&gt;|x\xE8\xC2]\xA0\x8E\xDCq\xDC\xDC\xD5\x80F`X\xEE8\xAEa`\xE0!\xC7\x96;\x8Ekx\xC8\xF1\x86\xE5\x8E\xE3r|\x80a\xB9㸆\x81\x80\x87&gt;&lt; t\xE1\x8D.PG\xEE8n\xEE\xEA@#\x8E0,w\xD700\xF0\x90\xE3 \xCB\xC75 &lt;\xE4\xF8\xC3r\xC7q
+9&gt;\xC0\xB0\xDCq\\xC3\xC0\xC0C\x8E\x9E\x85\xBA\xF0F\xA8#w7wu\xA0\xC7\x96;\x8Ekx\xC8\xF1\x86\xE5\x8E\xE3r|\x80a\xB9㸆\x81\x80\x87`X\xEE8\xAEa`\xE0!\xC7\x80\xCFB]x\xA3 ԑ;\x8E\x9B\xBB:Ј\xE3 \xCB\xC75 &lt;\xE4\xF8\xC3r\xC7q
+9&gt;\xC0\xB0\xDCq\\xC3\xC0\xC0C\x8E0,w\xD700\xF0\x90\xE3\xC0\x87g!\x80.\xBC\xD1\xEA\xC8\xC7\xCD]h\xC4\xF1\x86\xE5\x8E\xE3r|\x80a\xB9㸆\x81\x80\x87`X\xEE8\xAEa`\xE0!\xC7\x96;\x8Ekx\xC8\xF1\xE0ó@\xDE\xE8u\xE4\x8E\xE3\xE6\xAE4\xE2\xF8\xC3r\xC7q
+9&gt;\xC0\xB0\xDCq\\xC3\xC0\xC0C\x8E0,w\xD700\xF0\x90\xE3 \xCB\xC75 &lt;\xE4\xF8\xF0\xE1Y\xA0 ot\x80:r\xC7qsWq|\x80a\xB9㸆\x81\x80\x87`X\xEE8\xAEa`\xE0!\xC7\x96;\x8Ekx\xC8\xF1\x86\xE5\x8E\xE3r|\xF8\xF0,Ѕ7\xBA@\xB9\xE3\xB8\xD1\xD5\x9A{x\x80\xD6r\xC7qW |\xF9\x96\xBE\xC9\xC7]10 \xF0\xE5[B\xF8&amp;ww\xC5\xC00\xC0\x97o        \xE0\x9B\xDCq\xDC\xC3_\xBE%\x8E\xE6Y\xA0 ot\x80:r\xC7q\xA3\xAB&lt;4\xF7\xF0\xFF\xA5\xC5\k\xEE8\xEE\xE8P0\xC0_\xCC=\xBC\xC0i1ך;\x8E;: \xF0s/\xF0_Z̵\xE6\x8E\xE3\x8E\xFC\xC5\xDC\xC3 \xFCV\x97\xB9֚\xE3\xB8C\x93\xC2\xC0\xA5\xF6\x9CS\xEA\xF0\x80Ѕ7\xBAp\x83.O\xFE\x8Fs\xB7ǎ\xA6n\xB6\xE7\x9C\xFF\xD6eص\xE6\x8C\xEE\xD0\xF80p\xA9=\xE7\x80t\x93\xBA\xF0F\xEE\xD1虿\xE6Q%\x9A
+\xB8ٞs
+@:\x8FI]x\xA3 \xF7h\xF4\xCC_\xF3\xA8M\xDCl\xCF9 \x9D\xC7$\x80.\xBC\xD1\x80{4z\xE6\xAFyT\x89\xA6n\xB6\xE7\x9C\x90\xCEc@\xDE\xE8\xC0%z=\xF3\xD7&lt;\xAADS7\xDBsNH\xE71        \xA0 ot\xE0\xED\x9E\xF9U\x80.&lt;\xB7\x97s,\xE8\xC2]\xB8A\xBBg~G\xA0 \xCF-\xC0\xE5\x8B\xBA\xF0F\x8E\xD7\xF1\x99\xDFQ\xE8\xC2s p9\xC7&quot;\x80.\xBC\xD1\x80\xB35}\xE6o\xB8\x90\xE7\xE0r\x8EE]x\xA3 \x8B&gt;\xF0\xD7y\xE6o\xB8\x90\xE7\xE0r\x8EE]x\xA3 G\x8A&gt;\xEAW{\xE6o\xB8\x90\xE7\xE0r\x8EE]x\xA3 '\x89&gt;\xE1\x97}\xE6o\xB8\x90\xE7\xE0r\x8EE]x\xA3 \xDDE\x9F\xEA[&lt;\xF37\x8D
+\\xC8s p9\xC7&quot;\x80.\xBC\xD1\x80^\xA2\xCF\xF0M\x9F\xF9\x9B\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8@}\xD1\xE7\xF67\xB2k\xFD\xA9il\xE0B\x9E[\x80\xCB9t\xE1\x8D.\xD4}n#\xBB֟\x9A\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8@}\xD1\xE7\xF67\xB2k\xFD\xA9il\xE0B\x9E[\x80\xCB9t\xE1\x8D.\xD4}n#\xBB֟\x9A\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8@}\xD1\xE7\xF67\xB2k\xFD\xA9il\xE0B\x9E[\x80\xCB9t\xE1\x8D.\xD4}n#\xBB֟\x9A\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8@}\xD1\xE7\xF67\xB2k\xFD\xA9il\xE0B\x9E[\x80\xCB9t\xE1\x8D.\xD4}n#\xBB֟\x9A\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8@}\xD1\xE7\xF67\xB2k\xFD\xA9il\xE0B\x9E[\x80\xCB9t\xE1\x8D.\xD4}n#\xBB֟\x9A\xC6.\xE4\xB9\xB8\x9Cc@\xDE\xE8\xC0%z=\xF3;\xAA]xn.\xE7XЅ7\xBAp\x89^\xCF\xFC\x8E*@\x9E[\x80\xCB9t\xE1\x8D.\\xA2\xD73\xBF\xA3
+Ѕ\xE7\xE0r\x8EE]x\xA3 \x97\xE8\xF5\xCC\xEF\xA8t\xE1\xB9\xB8\x9Cc@\xDE\xE8\xC0%z=\xF3;\xAA]xn.\xE7XЅ7\xBAp\x89^\xCF\xFC\x8E*@\x9E[\x80\xCB9t\xE1\x8D.\\xA2\xD73\xF4\xA8L\x94=P \xEA\xF5̿\xF4\\xFCY\xF6@10\xA8\xD73\xFF\xD2s
+\xF0g\xD9\xC5\xC0\xA0^\xCF\xFCK\xCF5\xC0\x9Fe\x83z=\xF3/=\xD7\x96=P \xEA\xF5̿\xF4\\xFCY\xF6@10\xA8\xD73\xFF\xD2s
+\xF0g\xD9\xC5\xC0\xA0^\xCF\xFCK\xCF5\xC0\x9Fe\x83z=\xF3/=\xD7\x96=P :\xE3\x99\xE9y.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCCt\xC6A`\xE9!.\x94=# \xCC\xE4 g\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xC0\xD9|Kg\xF3-!\x9Cͷ\x84p6\xDF\xFC?\xF6\xEE\xB9\x8EY\xA0\xEFi\xFDؐC\xDF6)
+\x9Ci\xA0 @\xE68\x85\x9A\xD1\xDB\x8E\x80\xB3\xF9o        \xE0l\xFE[B8\x9B\xFF\x96
+\xFD5\xA0;#\xC0\xFF\x8C\xCC-\xEE\xE4R
+\xF0ѷ\xEE\xE1\xDBA]\xDE -\x8E\xE7R
+\xF0\xA9\xAA\xDB\xF8\xB6\xC0l\xB5s\x8B\xC84i\xEF\xF3^w1+l}R\xEAX\xF8\x9D\xDA\xFD\x82\xBD0ɼ\xA1\xC5 Z\xB6        \xFA\xAE\xEEbV\xD8\xF4\xA4\xD4\xE10\xF0;\xF3\xF6 \xF6@\xA15C\x8B\x88\xB2~+4\xA8\xBB\x80\xB6;)uD |a͖\xC1\xDExi\xF1\xD0b\x80B4\xD6] \xC0t۝\x94.8N^&gt;\xF0\xB5\xC5[\xE0\x99\x96\xA1\xC5$\xE8\xDE\xFDVw1\xD3\xEDuR\xBA\xE0d8\xBC\xE0 -[\xE0['\x96\xFF\xE8n\xB8Q\xF7N\xE8+\xDD\xDDL\xB7\xD1I\xE9\x82c\xE1\xFC\x80\xDFi\xDC2\xD88\x83\xBA\x96\xFF\xEA\xEE\xB8N\xF76\xE8+\xDD\xDD̵\xD1I\xE9\xEC\xE1]z&gt;սc\xF8[w
+@\xB4\xEEQ\xE5sݭw\xE9\xDE}\xA5\xBB\x80\xB9v9)\x9D}&lt;\xA8\xBB\xE0s\xDD{\x85\xE9.\xC8\xD5=\xA7\xFCVw1\xC0E\xBA7@_\xE9\xEE`\xAE-NJgKw\xC0M\x9A\xF0m\x80Zo\xA6\x8B?/\xFF\xB8X\xE6\xFD\xFEe\x9E\xEEn&amp;\xDA\xE2\xA4t\xD2\xEF\xA4? ,\xB6`\xAA\xB7k\xDE[0\xB4\xBC|\x96X\xE3\xF1\x9Ee\x81\xEEnf\xD9\xE2\xA4t\xC1\xD1\xEE\xEC\xBFL\xB5l\x9E\xB7q\xFB\xEE Q2K\xB4&lt;\xE0k\xB6*+u\xD70\xCB'\xA5\xCBu\x97=(\xB4~\x92\xB7qX?\xB4$&lt;\xE0#\xBB\x80\xF5\xB6\xB8=\xB2\xFE\x96\xCB\xB5\xBF\xB4 \xF0v
+\xC0\xB7\xB4\x9F:\xB6\xF8Ů`\xB1o]i&lt;\xA7mI\x98_ \xF0S\xE3\xF4n\xE3\x8CK\x98\xC63`\x80\xA9lIV\xFA֥\x91\xC6s\xDA\xC6x\xE1\xCD?\xBA\xEF\xC3\xDB5\x83rƆ\x9C$\xC0\xCDlI\xD6\xBF+\xD2~N\xDB/\xB9\xE0\xA7\xF6\xB9\xBD=\xB0\x85\xA8\x99!* p'\xFB\x80\xA9\xC6\xEF\x87\xE4\x9CӶgk|-abO\xC8\x84\x8B\xC3`\x80y\xECGʍ\xDF        ɼ7\x92,!\xF0\xA9\x90\xEDLB Y\xE0\xB4        \xB8\x87\xFD\xC0{\x83\xD7?\x8B]NB\x8C\xA9\x80O\xE5\x8C\xEB9I\x80@\x81\xA3\xC2`$ 0\x83\x9D\xC03\xE3W&gt;\xDE\xCB\\xDAUI\x80_\xA2\xF629I\x80@\x99s\x82\xE8b'\xF0\xCC\xE0}\x8F\x99\xEB\xCA        \xB3         \xF0KԠ\xB5\x85\xA2\xC4        \xB1\xC1\x80\xE3ى&lt;3xߣDຢ\xC2,\xAE.\x976\xA5\xA7\xE5B\xC4        \x83\xC1 0@9\xDB\x80g\xC6\xEF{\xBC\xB8\xAEk\xF3\xC0\xE572iy\x80\xC9\x82ha\xF0\xCC\xE0e\x8F\x81\x8BJ\x8B\xB4,\.pD\x8C$H\x9E 0\xC0z\xB6!\x8F
+^\xF6(\x91\xB6\xA8ey2#\xC0\xCD2G\xF4\xCCT@\xAF\xE4\xF1\xC0\xF4\xACg\xF0\xD8\xE0e\x8Fi\x8BZ\x96'9\xDC)s&gt;\xCFL\xF4JL/\xC0z\xF6 \x8F
+^\xF6(\x91\xB6\xA8ey\x92S\xC0\x85b\x87\xF3\xD8`@\x97\xF0\xF1 &lt;p${\x80\xC7/{\x94\x88Zњ0[\x80\xDB\xC4\xE7\xB1\xC1\x80.᳁\xE9X\xCF\xE0\xB1\xC1\xCB%\xA2V\xB4&amp;\xCC\xC1\xE06\xB1\xC3\xF9`0\xB8G\xF8``tֳ\xE8uc$*̃`\x8E\xB5`\xB6\xE4\xC9&lt;9\xB0^\xF8``tֳ\xE8uc$*\xCCF\xD9\xE0\xC9c\xB9]\xF0OჁ\xD1X\xCC\xA0]ԍ\x91\x9C$ϲ9\xD6\x80\xA9\xC2\xC7\xF2\xF0x\xC0bჁ\xD1X\xCC\xA0]΍\x91\x9C$;\xC6\x80\x84\x8F\xE5\xE1\xF1\x80Œ\x83\xC1\xB9\xC5\xE8*ـ\xD8\xCB\xBC\x91sʚ\x93d\xC7xp\x83\xF0\xB1&lt;&lt;\xC0/\xE6`\xBD\xC7{\x90\xC1-\x8C\xAD
+\xC0圬\xE6$\xD91\xDC |,\x8F\xF0\x8B\xB9X\xEF\xBB{\x90\xC1\x9D˸\x96UD\xC99P\xCDI\xB2c&lt;\xB8A\xF8X\xE0\xA7\xC1\xA1\xC5\xDC\xD4߃\x8Co[hl\xA0]\xCEQjN\x92\xE3\xC0
+\xF2\xC7\xF2\xFC\x84\x83\x8B\xA1(4\xBE߳\xBC\xD1\xDB@\x97\x9CCԜ$\xFB&amp;\x80\xB3\xE5\xCF\xE4\xF9        \x80\xCB
+\x8E+&amp;\xA0\xD6\xC8d|\xC3R\xA2\xBB\x809'\xA89I\xF6M\xDBb \xDF&quot;$p\xAD\xC1Y\xC5\xC4\x94\xFB\xD6~d\xA5\xEEb\x96
+9;
+\x89q@H8\xD5\xF9!\x80;
+*&amp;`\x86\xEFnIV\xEA\xEE`\x9D\x90\x83Ӑ\x84\x80Sm1\x90o\xB8\xD3\xE0\xA0b\f\xF8֖d\xBD\xEEz        95
+\x89q@H8\xD5\xF9!\x80
+N)\xC6`\x92\xEF\xEEJ\xD6\xEBn`\x85\x90#Ӑ\x84\x80Sm1\x90o\xB8\xCA\xE0|bV\xE6y\xB01i\xD1\xDD\xC0t!\xE7\xA5!1        \xA7\xDAb \xDF&quot;$p\x8F\xC1\xE1ĠL\xF5`o\xF2`ò\xE0\xBB 9,
+\x89q@H8\xD5\xF9!\x80K N&amp;`\xB6gۓ7\xFB\x94ŏ\xD8E\xC8IiH\x8CB\xC0\xA9\xB6ȷ        \xDC`p,1\xA5 t\xEDP\x9E=\xD7\xE68X\xC81iH\x8CB\xC0\xA9\xB6ȷ        \x9Cmp 1\xA2\xCB\xF4\xEEP\xEC\x8F~        9&amp;
+\x89q@H8\xD5\xF9!\x80S
+\x8E&quot;\xE6`\xB1\xF6\xED\x89]\xC0O!g\xA4!1        \xA7\xDAb \xDF&quot;$p\xA4\xC19\xC4p\xAC\x97\xB0=\xB1Q\xF8s\xD35$\xC6!\xE0T[ \xE4[\x8438\x81\x98L\x809\xDB\xDB%\x80\x90Ґ\x84\x80Sm1\x90o8\xC6\xE0\xECa,EmO\xEC\x98\x80˅\x90\x86\xC48 $\x9Cj\x8B\x81|\x8B\x90\xC03        \xD0+m{b\xDF\xDC,\xE4t4$\xC6!\xE0T[ \xE4[\x84v78rH&gt;e\xEB\+\xE4t4$\xC6!\xE0T[ \xE4[\x84\xF658lE\xBE`\+\xE4h4$\xC6!\xE0T[ \xE4[\x84v48f\x98CF\xD8Fw
+9
+\x89q@H8\xD5\xF9!\x80\xED \xCE&amp;\x80A6S\xC0\x9DB\x8EFCbN\xB5\xC5@\xBEEH`#\x83Ӆ\xD9\xE0\xBBl\xA9\x80 \x85\x8D\x86\xC48 $\x9Cj\x8B\x81&lt;?!\xB0\x8B\xC1\xE1\xC7\xEC\xF0\x8C\x8Dp\xA1\x90sѐ\xEFC\xF6&amp;\x80\x83\xD95\xF7\x9C|L\x8F\xD9^
+9
+\x89\xF1&gt;doB8[\xFEL\x9E\x9F72N\x987޳\xC9.\x94s.c\xEB\x84p\xB6\x9C\xFDˎ\xF1\x80p\x83\xB3\x84I\xA0\x8A\xADp\x9B\x9Csќ$;\xC6\x80\x84\x8F\xE5\xE1\xF1\x80d\x83\x83\x841\xA0\x90\xDDp\x9B\x9Csќ$;\xC6\x80\x84\x8F\xE5\xE1\xF1\x80X\x83S\x84\xA0\x96=p\x9B\x9Csќ$;\xC6\x80\x84\x8F\xE5\xE1\xF1\x80@\x83\xF3\x83\xD1`;/\xE069\xE7\xA29Iv\x8C7\xCB\xC3\xE3i\x87C\xC0$\xF6_\xC0mr\xCEEs\x92\xECn&gt;\x96'g\xD2 6&amp;
+\x80y\xEC\xC2\x80\xDB䜋\xE6$y\xAF+\®8\xC3\xE0Tc\x96\x98\xCA^ \xB8MιhN\x92\xC7\xF1\xBA\xB2\xC0=b7\xB1\xC1\x804\x83c\x83A`6\xDB1\xE06Q\xE7\xA2Qa\xB6\xB7\x89\xCEc\x83Qg#\xC06e\xC0m\xA2\xCEE\xA3\xC2l n;\x9C\xC7r  \xE6\x805\xEC\xCB\x80\xDBD\x9D\x8BF\x85\xD9&quot;\xDC&amp;v8\xCFLD\x9Cd  ؚ\x8A:\x8D
+\xF3\xDD`\xEBS\xC0\x9D27\x81\x91\x80(\x833\x8C\xC9`
+\xBB3\xE0BiG\xA3iy\xC6S-\x8E\xD7
+\xDC5F\xA2 N \xC6\x80el\xD0\x80 \xA5\x8D\xA6\xE5Ɍ7 \xD1\xD3\xF2icp\x8C\xFCP~B\x80riG\xA3iy#\xAD\xCC\x97\xDC5\xA4md\x96\x85ҌO/f\xE0ᛠ\xF0x\x93\xA4\x9D\x8E\xE6I\x8B\xB4, \xF0#l#48-\x80\x93\x84\xEF\x83\xC2\xE3Lx:)* \xF0SԠ\x9E\x9348\xB7\x80\xC3$\xB3Lx:)'        \xF0\xCB\xE0\xAEa\xC1\xB8\x88eZ\xAE\xBB!\x8A
+0[\xE0\xE9`\xA4\xA9Bb\x85\x8C\xEB!1\x80XF\xE0Z\x83ǧ\x8B\xB7E\x99\xA9\xD6\xC8&lt; 
+I\xF8hp\\x9F:\xB1\xB7™\x80\x9B%\x9C\xE2\xEE\x92
+`\x8D\xCC҄\x93\xDB\xF6\xC0\xD7z7        \xDB \x9CQ\xB8\xD9\xF8!\xEA\xB2\xCDQZ\x80\xC5b\xCFH{\xCFo\x9D@\xBE-v
+3
+\xEC´\n\xFCw\xC1\xFE(* @\x8B\xD83\xD2\xDE\xF3\xDB\xD8Z\x80\xEA\xDA8\xF4nX\x80-ƏRgo\x91r\x924J&gt;&amp;\xED:\xC5uz \xBB\x9F\xDE x[`\x84i\xE0\xC77Oq'm\x942$H&gt;&amp;m9\xC8ut {Y\xB9q\xF8ֳ\xEC\xE0rF\x80\xDF?V-\xDF.9\xD7\xF8%\xFC\xA4t\xE5q\xAE\xD3c\xD8\xD1w'\xF9\xC7ü-\xF0-\xA6\x80\x9F\x9C\xE2\x96l\x9AZ
+\x90,\xFC\xB0tٹ3\xCC\xDE8\xCC\xFE\xFB\xC0y\xCC\x99\xBA\x8BN\xB0~Wb\xF0\xA9\xFC\xC3\xD2\xD9G\xBB\xB3\xFF&gt;\xB0\xC0\x83\xC1\xFE\x8F\xE3\xFD\xE3\xBFi\xD7\xBC$\xA2t        b\xCD\xC5\xE0k[\x9C\x97\xCE8\xE6}\xFC7\xDB\xDB&gt;\xF5fȯ\xD5\xDDЯ{)\xD3]$p\x8E\xEE\xFD\xCDt\xD7\xB0\xC2.G\xA6S\x84\xBF\xA5\xBB        \xE0s\xDD{\x85\xBFu\xD7D\xE8I\xCAt        \xA5{\x8B\xF3[\xDD\xC5,\xB2˩\xE9\xD43\xE1q\xDD5_\xE9\xDE1\xD82\xEB\x9EJ\xCAt        \x9C\xA6{\x97\xF3\x89\xEEJ\xD6\xD9\xE8\xE0t\xEA\xC9\xF0.%_\xB3e\xDA5$庻Խ\xD1\xF9\x97\xEE2\x96\xDA\xEB\xECt\xEA\xF9\xF0
+#l\x80F\xEBG\x91y\xBA\xBB\xCEԽ\xD7\xF9[w
+\xAB\xEDx|:\xF5\xA08\xF9\xC0[\xA0\xCB\xCA9d\xB6\xEE.\x80\x93\xD9\xEC,\xB6\xE9!\xEA\xD4\xE3\xF0\xB5\x83\xEC\x80 \x86\x90e\xBA\xBBg\xA7\xB0Ҿ\xE7\xA8SύcW
+|\x97-\xB0ؼ\xF1c\xBD\xEE.\x80+\xD8\xE3\xAC\xB1\xFBi\xAAd`\x84\xCD\xB0L\xE1\xE0Ѯ\xBBK\xE0.\xB66S\x9Dq\xAC\xEAd\xBF\xCE
+\xFE\xC820\xCEN \x9C\x8B\xFC\x91cd\x98\xE4\xAFa\xDDI\x99b\xFC\xF0%l\xCA&gt;v\xB9\xFF-\xA1\xEF ܳ;\xA2\xBD\xBA;\x83\x87|\xFF0I\xC9?.\xFF\xC4~\xF1\xB3\xC9\xFF9!\xC0q\x9E]\x8D\xD2]!\x8C\xF2\xC1\xC3$%\xFF\xB8\xFC\xF8\xC9o&amp;?\xF9_R\x80\xC3&lt;\xBB \x9A\xA9\xBBK\xF8\xDF9LR\xF2\x8F\xCB?1\x80\x9F\xFCf\xF2\x8B\xFF18ɳۡ\xE1\xBAK\x85\xCF\xF9\xBCa\x92\x92\\xFE\x89\xFC\xC8\xFE        3S\xBD\xBE\xA8\xF1\xEF!'3\xBF\xF3\xF8vh\xBE\xEEj\xE1\xBF|\xD80I\xC9?.\xFF\xC40\xCF\xFEI\xDFb!\xA7\x96p\xA1gWC7\xD2]0\xFC?\x9F4LR\xF2\x8F\xCB?1\xE0ri\xBF\x967\xFC\xB0o\x91\xFF\xC8\xE6\xEE\xF4\xF8j\xE8^\xBAk\x86\xFF\xF11\xC3$%\xFF\xB8\xFC.\x97\xF3kY\xF8\xAB\x9E\xFC\xF3\xBEQ\xF2\x93j\xB8\xD9\xE3{\xA1\xDB\xE9n\xFC\xB7\x84&lt;\xE1\xB3Q\xD2\xD2%]|*䧲\xF0\xF7|q\xF2\xF6
+|@\xE1&lt;\xBB\xBA\xA9\x9DϘ|6#JZ\xBA\xA4+\x80\x8FB~* \xCCׇ\xFF\xAE\x8D\xA2\xFE\xB4{\xE1\xFC\xB8\xEC\xBF%\xFC\xA9\xBBr\xEE\xE5\xE6\x9F͈\x92\x96.\xE9
+\xE0\xA3\xF6\xDF\xC9Ÿ\xF1\xC6U\x94\xAF\xB77\xE4G\x9B\xB6
+\xC0/\x8Fo\x84n\xAD\xBBu.\xE5\xEB\xE5\x9F͈\x92\x96.\xE9
+\xE0?\xDA' \xC3{R\xBB\xE4\xC6x\xBF\xB3c\xD5\xFC\xD3\xE3\xA1\xBB\xEB.\x9E\xF9ty\xC0g3\xA2\xA4\xA5K\xBA\xF8\xA7\xF6\xC9\xC2\xF0ʗS\xB8\xE4\x96l\xB4W\xD5\xFC\xC7\xE3\xEB\xA0\xE8\xEE\x9E\xEB\xF8ny\xC0g3\xA2\xA4\xA5K\xBA\xF8\xA7\xDE\xC9\xC2_\xEF\xC7jWT\xB5\xEA\xF5\xA9m\xD43=\xBEz\x80\xEE\xEF\x96|6#JZ\xBA\xA4+\x80_z! \xBA_\xAA]WɪWF\xFA\xAE-z\xE0S\x8F\xA1\xBB~\xEE\xE2\xA3\xE5\x9F͈\x92\x96.\xE9
+\xE0\x97\xC6_\xC8\xC2\xDF\xED\x85K{\xBF\xF0ea\x9E٢g&gt;\xF5\xE6.\xE8\xBA\xDF\xF1\xC5\xF2\x80\xCFfDIK\x97t\xF0S\xEF\xCFc\xE1\xEFv\x89\xDAս\\xF5\x9A0\x8F\xE5\xF7 \xC0Y z\x86\xEE7\xC0E|\xB1&lt;\xE0\xB3Q\xD2\xD2%]\xFCx\xF4\xB3\xD9\xFB\xF4
+\xF8f\xE1 b\xBC\xDE3\xBF\xF3\xE6&quot;\xE81\xBA_\xB7\xF0\xB9\xF2\x80\xCFfDIK\x97t\xF0\xA3\xF5\xFF\x94\xB0\xF0\xBB\\xE12/|j\x86*\xB1%\xF0\xB57A\x8F\xD1\xFD\xB8\x85ϕ|6#JZ\xBA\xA4+\x80\xDE\xDF\xC6\xC2_\xECr\x85\xCB|\xB6\xF0\xA9j\xC5\xF6 \xC0\xDE\xDC=I\xF7{\xE0
+\xBEU\xF0ٌ(i钮 \xAE')\\xECw&gt;\xE9ѓ\x96 \xC0\xBD\xB9\xBA\xE0Rha\xBC\xF5\xE1\xE1?|\xAB&lt;\xE0\xB3Q\xD2\xD2%]\x97\xEB\xFDa\x9C\xFAC=\xF5\x8F/X\xF8\xA4G\xCF\xD83_{st\xF1\x8D\xD0¨-\xF9\xC1\x87\xCA&gt;\x9B%-]\xD2p\xB9\xC6_\xC55?\xD1k\x9ER\xBE\xF0\xF2\x87.U2#\xDE\m\xB9Z\xB8%?7\xF3\xA1\xF2\x80\xCFfDIK\x97tܬ\xF7Wq\xE5\x8F\xF3\xCAg\x95$\xA9}\xE8oJ\xDEt\xC9\xBB{y\xB4\xE5:ha\xE6\x96\xFC\ˇ\xCA&gt;\x9B%-]\xD2p\xB3Ɵ\xC4\xF5\xBF\xCC\xEB\x9F\xF88F\xE1\xE3 )\x80Ao\xEE\xF6^-Lޒ\x9F \xF9Py\xC0g3\xA2\xA4\xA5K\xBA\xAE\xD5\xFB\x93\xD8\xF2\xB3\xDC\xF2\xD0\xAA\xB7\xDE\xE3\x86w_8\xC0\xA6^\xDE\xFF\xEC\xBD Z\xBEk        \\xC5W\xCA&gt;\x9B%-]\xD2p\xADޟĮ\xDF\xE4\xAE\xE7\x8E?\xBD\xEAY]\x9E5|\xC6\xDA\xB6\xF3\xE6\xF2g\xFB]\xD0\xC2\xF0]K\xE0*\xBER\xF0ٌ(i钮\x80;\xB5\xFFv\xFD&amp;w=w\xFC\xD1%\xCFj\xF4\xAC\xE1c\x96\xB0\x97\x97\x97?\xDB/\x82\xE6\xEFZ\xF7\xF0\x95\xF2\x80\xCFfDIK\x97tܩ\xF7\xF7\xB0\xF7\xB9\xEB\xE9+\xD7\xD8\xE8Y\xBD'5\xB0\x91\x97\x97?\xDB/\x82\xE6\xEFZ\xF7\xF0\x95\xF2\x80\xCFfDIK\x97tܩ\xF7\xF7\xB0\xF7\xB9\xE5\xE9\x8B\xD7\xD8\xEBYÇ\x95\xB0\x85\x977?n\x81\xB0\x84\xDA1\xF32\xBB\x97\xF3\xDD\xFC[,*\xD0a}\xFAlF\x94\xB4tIW\xB3)\xFC &gt;ȏt\xB2F{\xCFX\xBF\xC6F\xEA=\xB2\x80|/o~&amp;\xDC-\\xC2\xFAUԆoY\xC2T\x875s\xC6*\x95[\xEF\xA9\xEB\xAAU\xD2\xD2%]\xD5*l\xFE\xC8W\xA0\x9F\x8FtҢ\xBD\xD5\xDB\xB4\xAC\xB1уzO\xAD \xDC\xFB\x9B\x9F\xEDW@ \x97\xB0f\xB5\x81ۗ3é\xCD$'/\xC96;\xE4\xD4\xCC-Kq\xD8r&amp;)i钮J~\xE4\xBBX\xD3\xCF^\xE9\xA4QB\x8D\xEDX\xBF\xC0v&gt;\xB8
+\x80X/\xAF}\x86\\xDDe\x859\xA3\xD6U\xE5\xF8Zb3\x97\x9B\x9Ap^\xDA\xDE\xE5,^ˈ\xA9\xEB\x9DGk\xF6|\xE4K\xD1\xCFG:I\x90P`{\x86\x95֯.\xC1\x83\x86\xCF. \xD3\xCBk\x9F!W@\xF3WQ\x98\xF0\x8DI\xAB{\xAF\xBB\x98\x9D\xFE\xF42SMM8/j\xFB\xA2W\xF4;\x93V:\x9Bf+l\xF8\xB1\xEE\xBE\xD2\xDD\xCDߺk\xF8\x97\xEE2\xFE\xD6]C\x84\x84\xDE\xDA3\xAC \xB0~u        4||'\x81\xDE_\xFBL\xB8\xFF\x99\xBC\x8A\xC2lU\xCA\xD7\xF8Fw\xFF\xB2\xC5b#͋7/\xE73\xA7\xAE\xEB\x9F\xCA׸\x86\xE6)\xEC\xB6Dw\xFF\xD5\xDD\xC7'\xBA+\xD1I\x96\x90\xC6\xDA3, \xB0~i9\x94|C-Q^\xDE\xF9 \xB9\xFF\x99\xB9\x8A\xC2T3\xAE\xF4\xB1\xEE&gt;\x91\xBF޴&lt;\x93\xB2M\xCD\xF9\xD2\xC1K\xFB+\xE3\x97\xE1
+\xCCP\xD8j\xB9\xEEn\xFE\xD6]\xC3o\xE9\xE4\xA3\xC6Nz\x85t\xD5cM\x80\x96\xA5\xE5xP\xF2%\xCD\xE4x\xE73\xE1\xF2g\xE0*
+#MU\xB5\xDE\xC3\xFAI^uT\x98\xC1\xA6\x86\xACr\xF0\xAB\x96\xB6\x98\xCAV:\x89~\xFEH'-\xEE\xA4]NK\xED1\xD6X\xBF\xAE(J\xBE\xA7\x80\xEF\xEF|&amp;\\xFEL[Ea\x9EJ\x96|^?\xB1 \x8F
+S\x9Ej^\xC2r\xA7\xAE\xB1d]\xEBi\xA0Va\x9FS\xE9\xE7\x8Ft\xF2ѲN\xE4Tԛd\xCD\xD3/*г\x9E/) \xC4\xFB;\x9F        \x97?\xA3VQf\x99\xF7\xAB&gt;\xB2\x9F̵\xE7$\xA9\x8D45\xE1&lt;\xE7-\xB3\xE4\x{16D9C1}*\x85M.\xA3\xA2\xAF\xE9\xE4\xA3\x9D\x84\xC8)\xA7\xF7M\xADy\xFA\xCA\xC5zV\xF5U\xF4z\xE13\xE1\xE6g\xCE*
+\x93,V\xF2&quot;\xCE\xEB'p\xF9!1
+\xF3\xCCN8\xDBa+\xADz\x89\x8Bi\xA0Da\x8D\x8B\xA9\xE8k:\xF9hj'!Қ\xE9ʳ\xE6\xB9˖\xEEY\xDBWU\xD0\xEB\xFD\x85τ\x9B\x9F!\xAB(\x8CѢ\xEAu\xD6OZ        \xAA\xC2,H\xB8\xC6I\x8B-|\x95+i\xE0\xBD\xC2[\xA8\xE8k:\xF9hR'9\xD2j\xE9ʳ\xE6\xB9k֒\xEFY۷\xB5\xD0\xE8\xFD\x85τ\x9B\x9F        \xAB(\xCCШ\xF0\xA5\x9C\xD4OT        \xEDJ\x92\xACI\xB8\xD21\xEB\xAD}\xA1\xCBh\xE0\xA5\xC2\xA9\xE8k:\xF9\xA8\xBC\x93(i\x9D\xB4\xBC\xA65]\xB0\x90]&lt;.\xFC\xB6\xA2\xBA\x94\\xF8l\xBF\xF6پ\x8A\xC2\xBDj\xDF\xCBI\xFD\xE4\xF4\xF2J
+\x99\x9Ap\xBD3\x96\\xFEZ\xD7\xD0\xC0K\x856R\xD1\xE9\xE4\xA3\xDANr\xB6\xB1\xFE5-{\xE2\xBC%\xEC\xE8M\xED\xB7u\xB0\xDE\xFB۞\xED\xD7&gt; \x97\xF0x\xB5zվ\x9Dc\xCAɩ&quot;\xE1E\x94\xB41/^\x973V]\xFEf\xD7\xD0\xC0\x85\xED\xB5S\xD1\xD7t\xF2Qa'Q2\xDBX\xF9\xA6\x96=kR\xFE}\xBDi\xFE\xB6\xAE\xD6{۳\xFD\xDAg\xE1\x9E\xAD\xA26@\xBB\xE4\xB7\xD3+\xA4\x8D\xF6񾇩\xF1z\xB0\xF0\xEFw
+&lt;VX]}M'\x95t\x92&amp;\xB3\x8A5/k\xCDS\xBE\xF5\xB8Gm\xED\xEA}\xFF\xB75\xB0R\xC9m\xCF\xDE;\x9F\x85Kx\xB6\x8A\xDA        b\xDFN\xAF\x906\xDA\xDF\xC2\xFB\xA6\xC6k\xB7\xFB\xDA\xCB\xDF\xEFx\xA6\xB0\xB7(Z\xFA\x82N&gt;*\xE9$MlS_\xD9\xD4?\xFE\xF8\x89\xAF;\xDB\xCC\xFA\xB7\xC0\xB8\x92۞\xBDw&gt;{\x97P\xF8\xF4\x81\xAF&amp;DB!\xBDo\xE1e \xB6\xDB}\xED3^\xF1x\xA6\xB0\xB7(*\xFA\x9AN&gt;*\xF9Zr$\xF7P\xF8\xD6&amp;)_˼23-~ |K\xC9m\xCF\xC6;\x9F\x85\xF9\x9F-\xA16@\x8E\xC0\xB7\x93 \xA1\x90\xC6W\xF0r\xF9 \x86\xD8z\xF93\xDE\xF2x\xA0\xB0\xB4@\xC9-\xB5\xBF\x9D&lt; \xB0\x91\xF0j\xDF]\xAD\xF2\x85L\xEA0\xDC\xFAw\xC0\xA0\x92\xAB\x9E\x8D&gt; \xF3?XB\xEDӿ\xA6\xF7\xE9\xBD\xF1\xBEH\xD8\xF5\xDCe\x9Dt\xBD\x827 _\x93\xF0[\x81\xA7&gt;\xFA\x8FO_\xDFRa\x9EL%-]\xD2\xD5O\x85\x8D=k\xB2=\xC0\xFA\x96BbD\x85        \x89\xF12L\xA0\xF0j_\\xAD\xF2U̫1\xD9\xE2w\xC0\xB8\x92\xAB\x9E]&gt; \xC3?[By\x80B\xAAXSη\x82\xB5\x98\xA9\xA5\x817\xAB^\x93\xF0q\xD4Ę\x9D\xB00O\xA6\x92\x96.\xE9\xEA\xA7\xC2\xC6^\x98\x93d^\xB6\xF7I
+ü\x8C\xD4 \xB0\x934[4P\xF8\xE2
+\x95/aR{\xF9ֿ\x95\\xF5l\xB9\xF0Y\x98\xFC\xF1z\x9F&gt;5ON\x92\x97\x91r\x92T\x85Y\xBF\xF0\xC7\xEB]\x96\xF0}\xCE\xF20/\xF3\x94g\xAB
+\xAB\xA4\xA5K\xBA\xFA\xF9\x9F\xD0\xE9M\x86I\x91\xA7\xEA}zf'\x81vi\xA0\xF0ݕ\x98~Ru\xF9ֿ\x95\\xF5\\xE1\xB30\xF6\xE3%4&gt;zA\xAA\x90\x81a\xDE\xE4Y\xF6\xF4\x92\x8D?\xAE\xB1\x8Dœ\xB5yJ&quot;\xAB
+\xAB\xA4\xA5K\xBA\xFAq\xFA\xD7^\xAC=\xC0\xBCT\x8F\xB3u=7\xB9\x93@\xBB,\xBF\xF0ŕ(?\xA9\xB7-\xAC# *\xB9\xEA\xB9\xF8\xC2ga\xE67\xF9\xBD&amp;X{\x80\x971#\xADyz\xC9S\x9F\xD5[Ō\x9C\x81\xC1r\x92$+iIW        \x8D\xE5\xC4\xEB}\xFA\xEC`ϲu=wM\xB0I\xD9\xD6\xDBh\xF9U/\xEE\xBD\xB1'\x95\xB6\x85\x96\xF7\xC0\x88\xAA\xAB\x9E\xCBn{~\x99\xBF\xEB\xB9\xF9\xC1\xAA\xBC\x8C\x98j\xC1\xA3K1򠗒s\xA6e\xCBI\x92\xAC\xA4%]\x85\xD4\x92\xB0\xF1ѳ\x83=\x8E\xD7\xF2\xD05\xC1\xA6\xC6[l\xAF\xB5W\xBD\xBB7fd\x9E\xD1\xD5^Z^
+Tr\xCFs\xC1m\xCFœU\xF9\xBB\x9E\xBB,[\xE3\xA3_f\x88
+6\xFB\xD1%\xFF\x8FO)\x9E\xB3*^I\xE1JZ\xBA\xA1\xAB¢\xA6v՞\xB3\xEB\xB9\xC9\xF1ZzL\xBCev\{ɻ[\xB6\xF0I\xF6&lt;-o\x80?*\xB9\xE79\xEF\xB6ga\xBC\xF2\xF0]\xCF
+\xCFV\xF2\xE87\x92\xB3\xCD~t\xC9\xDF\xFF\xFA%\xF2sV%,        #\IK7t\xB5QQ\xBDQ\xBB\x9E\xBB2\xDEw\xAE\xE2\xFAxS\xAE\xB1\xE9«^߂UO\xFA\xB3\xE7\xE9zA|\xAD\xE4\x9E\xE7\xBAz\x9B\xF1N\xAB\xE25&gt;\xFAM\x80\xE4lS]\xF2ǿ\xF8\xFB\x85\xB6\xC8Y\xB2$gH\x8Cp%-\xDFUaK \x8A\xEAM\xDB\xF2\xD0\xF0\x84\xEB\x9F\xF8]\xF9        \xD8w\xE1%\xAFo\xF6\x92'\xFD\xD9#u\xBD#\xBEVr\xCF\xF3]\xBD\xCDx\xA7U\xF1\xBA\x9E\xFB\xF8\xE9+6&gt;}\xEA\xBA~\xF7\xF7k]\x95\xF3}Ԅ \xF9JZ:\xBE\xAB\xEDZj \xDC\xF2\xD0\xF0\x84\xEB\x9F\xF8]\xF9        \xD8}\xE1%/q\xDEb\xA7\xFE\xF1ô\xBF,&gt;Uu\xCFsk]\xBD\x95\xBF\xCD\xF6x%\xCF}\xFC\xF4\xFC\x84\x93\x9E[\xF2g\xF7\xC7\xCB풳*\xEA\xFB\xB4        \xF2\x95\xB4t|W;Vԕ\xB9빋\xAE\xE2w\xBA&gt;\xE1\xBCxk\xB0\xF0\x92\xF78c\xA5{\xD5خ\xFD}\xF0\xA9\xAA{\x9E[\xEB\xEA\xAD\xFCm\xB6\xC7+y\xEE\xB3Gor\xC6sK\xFE\xE6\xA7y\x92ۢ\xBEO\x9B\x90!_IKgw\xB5iE]\xB1\xBB\x9E\x9BL'\xF9Nz)U[\xD57\xAD\xB1Q\xC2[࣪{\x9E\xFB\xEA~\xF5\x9Bi|\xF4!˟[\xF2?\xFE٩\xA4\xDD1C\xBE\x92\x96\xCE\xEEjӊ\xBAb&gt;\x{1FB3CE}\xA5\x93|网\x9C\xEFm\xDF\xBB\xE4\xBC;\xFE\xA9\xEA\x9E禺럢\xAB\x9C\xAA\xE7&gt;xtKήG\x87\xAC\xE5\xB1\xDBҾ\xCF\xDC` %-\x9D\xDDվ\xFD\xB4$\xAFz\xE8\xE3\x81t\x92\xEF\xD4wѾ\xAE:\\xEF\xCD[\xD3*\xC0&lt;U\xF7&lt;7\xD5]\xBD\xC6r\xBA\x9E\xBB\x91\xDA~J\xFE\xDA_\xFE\xA7y\xDB~\x99\xB9=\xC0JZ:\xBB\xAB}\xFBiI^\xF5\xD0\xF7Ir\xE8$\xDF
+\xFD\xB7,\xE7\xB0\xD7x\xFC5*`\xAA\xAA{\x9E;\xEA\xEE\xBEX{?]\xCF\xDDHa?%\xEA\xAF\xE5m˼c\x80-\x94\xB4tpW[\xF7\xD3\xBE\xF0\xA1U\x91\xDA\xE9$\x9F\xCEg\xE8\xEA\xF0\x80\xF7\xF8\x83\xDCh\x8D\xDB)\xB9乣\xEE\xE2+\x85T\xD4\xF5܍T\xF5S\xF2w\xFE\xDA\xF3\xBF        \xDA1\xF3\xCB\xD8\xED\xB6P\xD2\xD2\xC1]\xED^NK\xFE\xAA\x87N\x8A\xD7B'\xE1\xF4&lt;\xC3\xCA\xBF\xC1̗\xF8f9\xE1K\xD8W\xD5%Ͻt\xB7^ \xB0\xA5\xAE\xE7n\xA4\xAA\xA2B\xDB5\xB08pI旱\xDBl\xA1\xA4\xA5\x83\xBBڽ\x9C\x96\xFCU]\x93v\x8D\xEEJ;\x89\xA2\xD8r\xCB
+|\xFC\xEE\x92_呋\xD8]\xD5%ύtW\xFE\xC4Eu=w#U\xD5ګ\x81\x95i\xAB2\xBF\x8C\xDD` %-\xDC\xD5\xEE\xE5\xB4\xE4\xAFzh\x89I\xC5~Ww
+\xFF\xD2]F&quot;e\x96[\xD0\xDE㷖\xFFB[\xC0\xAA.y\xFE_{w\x94W\x8Ep\xEFimL̆Vc\x8D\xE5\xEE\xC7&quot;\x92\x99h\x8AO\xFE&quot;û\xA8\xEE\xFB\xAA\xEB\xF9\x87\x92\xF03Z\xED#RQ\x9C(/-u\x82mEZ:\xB8\xAB\xDD\xCB)ɟ:ä\x9Eu\xB25\xED\xC5\xCDno\xE4ȦK9f\x80\x93\xA4.yn\xA1\xBA\xEC_U\xF7\xF1%\xBBL\xAA\xBA\x89TKq\x97\xAF\xBFFmo\xC1s\xEC)\xD2\xD2\xC1]\xED^NU\xFE\xD4\xDCyf\xB4\xAD\x93M)-nju#\xE7\xF5\xBA`\x85;\xD6np\x98\xD4%\xCF\xE6\xAAk\xFE\xBF\xEA&amp;\xDEP\xB2פڛH\xB5w\xF9\xFAk\xD4\xF6&lt;Ǟ&quot;-\x9D\xDA\xD5͔l\x91\xBA\xC0\xA4\xDAu\xB2]e\xCD\xEBm䤞\xC96\xB3~Ӫ\xFCGJ]\xF2쬺\xE3\xBFTw\xF0Dɂ\x93\xFAo&quot;\xD5\xD2 \x97\xAF\xBF@mo\xC1s\xEC)\xD2ҩ]\x9D\xD1L\xD5\xA9\xB9\xCB\xCC(_'[PQ֤\xDEF\x8EiD\xBC\x9F\x95˖\x848U\xEA\x92gO\xD5\xED\xEE]oɦ\x93\xA2\x89TK3\\xBE\xFE\xB5\xBDϱ\xA7HK\xA7vuF3U[\xA4\xE6.6\xE3tҜr\x82&amp;\x956rF\xE3\xE2--\xDBw}r\x80\x83\xA5.y\xB6R]\xEA_\xAA;(\xD9w\xD2q4\x91ji\x92\xCBן\xAD\xB6\xB7\xE09\xF6i\xE9Ԯ\xCEh\xA6p\x8B\xD4\xE8\xF5⧠\x93\xCEԒ2\xA9\xB4\x91J\x99Qׂ\x95\xC78[\xEA\x92g\xD5]\xFE_u%+O:\x91&amp;R-\xCDs\xF9\xFAS\xD5\xF6&lt;Ǟ&quot;-\x9D\xDA\xD5\xCD\xD4n\x91\x9A^&quot;{:iK!)39\x9D\xAC\x8D\xCD\xDEzef\x80\xE3\xA5.y\xAA\xAE\xF0\xAA\xCBH*Y|ҹ4\x91ji\x9E\xCBן\xAA\xB6\xB7\xE09\xF6i\xE9Ԯ\xCEh\xA6|\x8BT\x80\xC1\x83\xD0I[ڈ\x98\xD1\xD8\xC8\xD1\xCC0\xA9\xBAy\x8B/ p\x83\xD4%\xCFe\xAA \xFBIu7a%\xBBO:\x9A&amp;R-Mu\xF9\xFA\xF3\xD4\xF6&lt;Ǟ&quot;-\x9D\xDA\xD5\xCDt\xD8&quot;\x95\xA1J\xEA,tғ&quot;f\xD45r43\xCC\xE8m\xEA\xE2\xCB\xDC u\xC9\xD3=\xCF`\x93M\x94\xAC?\xE9t\x9AH\xB54\xD5\xE5\xEB\xCFS\xDB[\xF0{\x8A\xB4tjWg4\xD3d\x8BT\x8C*\x91\xB3\xD0IOJ7\xA3\xAE\x91s\x99gR\x81\x93v_\x93\xE0\xA9K\x9E\x97\xDF\xF3 \xD68.\x95\xA7\xA4\x819\xE7\xD3E\xAA\xA5\xD9._\x92\xDAނ\xE7\xD8S\xA4\xA5S\xBB:\xA3\x99V[\xA4”\x884\xA0\x93\x8640.\xDE\xD5ȡ\xCC6\xA9\xC3\xEB/\x88
+p\x8F\xD4%ϛ\xEFy;\x94\x8DTRB\xFApzI\xB54\xDB\xE5\xEBOR\xDB[\xF0{\x8A\xB4tjWg4\xD3m\x8BT\x9E\xA9t\xD2\xCA\xE5돛\xD1\xD5ȡ\xCC6\xA9\xC6\xEB/\x88
+p\x8F\xD4%\xCFk\xEFy |lR\xAA\x92B\xC7\xD2T\xAA\xA5._\x86\xDAނ\xE7\xD8S\xA4\xA5S\xBB:\xA3\x99\x9E[\xA4R\xAD\x97\xEDA'ܼ{D\xBC\xA8\x91YcR\x93\xF1f\xE7\xB8J\xEA\x92\xE7\x9D\xF7&lt;\x83\xEDe\xDB^0bR\xA7\xB1\x81TKk\\xBE~\mo\xC1s\xEC)\xD2ҩ]\x9D\xD1L\xE7-R\xD9V\x9AуNjݼ\xFB\xB8E\x8D\x9C\xC8'N\xFD\xF1\x94H\xC89\xAE\x92\xBA\xE4y\xE7=\xCF`{\xD9z7\x9D\xF8\xEE\xD0\xED\xA4ZZ\xE3\xF2\xF5\xE3j{ \x9EcO\x91\x96N\xED\xEA\x8Cf\xB6\xD8&quot;r\x8D\xA9U\xE8d\xBDk\x8F\x88\xB74r\xAF\x8F[3\xE5\xB1\xF1x B\xDC&amp;u\xC9\xF3\xC2{\x9E\xC1\xEA\xE2}\xAE\x99\xF8\xEE\xD0\xED\xA4ZZ\xA6\xE1\xFA\xD9H[\xD0\xDB+&quot;-\x9D\xDA\xD5\xCD\xEC\xB5E*\xEDTk\xAA\xD0\xC92\xD7.&gt;nFE+\x8Fc\xE5\xACe\xC1\x96\x85\xB8M\xEA\x92\xE7\x85\xF7&lt;\x83\xD5\xC5k\\x9F$2\xF1ݡ\xDBI\xB5\xF4Cu3~\xB3\xD5\xFA\xD9H[\xD0\xDB+&quot;-\x9D\xDA\xD5\xE5\xEC\xBBB0\xF9 \x8B\xDB\xD0\xC9Twn\xAFh\xFDY\xAC\x9F8;՚\x84J]\xF2\xBC\xED\x9Eg\xB0\xB7\x{DB4F}\x99\xF8\xEE\xD0\xED\xA4Z\xFA\xA1\xB7y\xBF\xDCd\xFD`\x9E]\xE8\xED\x91\x96\xEEj\xF7rvϟ\xDD&quot;\xA8\xB6\x9Ddݹ\xF5\xB8\xFD\x94D\xC9\xD0I\x91\xD6\xC4\xB8S\xE4\x92\xE7\x85W=\x9B\xF7\xB6&gt;Xd⃹{        \xB6\xF4CcS\xBC|\xFD`\x9E]\xE8\xED\x91\x96\xEEj\xF7rv\xCF\xFF\xAFRK
+\xAA\xAE\xE1\xAA\xCB\xF8\x9F\xEA\xBAp\xE5q\x93\xFA\xA9:\x85\xAA\xB9\xD9&lt;\xCB\xE2\xDC)r\xC9󶫞\xFDK+\xC9\xFA`\xEEFR\xFD\ׂ\x85
+\xC3\xECb\xBC\xB4z\x8B\xB4tpW\xBB\x97\xB3{\xFE?J-\xA8\x93\xB3;\xF9م+\x8F\x9BTN\xD5)T\xCD\xCD\xE6Y\xE0N\x91K\x9E\xB7]\xF5\xEC\xDFXI\xBC\xC8\xD0s7\x92\xAA\xE8\x8F]\xAD\x99R\xD5@0\xCF\x94\xF6\x8AHKw\xB5{9\xBB\xE7KjY\x9D\x9C\xDDɿ\xBAp\xE5\x93ʩ=\x82\xDA\xE9\x910k\xB2\+r\xC9󶫞\xFD+\x89\xFA`\xEEF9S\xA3_        \xB0r\xD6\xE2Rav\xA1\xB4WDZ:\xB8\xAB\xAD\xFB\xD9:\xFC\x88\xE0\xE2\xC7Ԣ\x93\x9F]\xB8\xF2\x88I\xB5\xD4\xF6_;}&lt;ɚl7K\xDD\xF3\xBC\xEA\xAAg\xFF\xBAJF\x86&gt;\x98\xBBQ\xCE\xD4\xE8W\xA6g\xBD8qY\x91$Q\xDA+&quot;-\x9D\xDDվ\xFD\xEC\x9B&lt;(U\xC2I\xCD\xE8\xE4\xBB W~l^-\xE5\xE5\x97xcY6\x80\x9B\xA5\xEEy\xDEsճ]U        Ss\x8C.\xC9\xD9tj\xDC[CD\x8A$و\xD2^i\xE9\xEC\xAE\xF6\xEDg\xDF\xE43\xA4\xDA8\xA9\x9D|\xBAp\xE5\xC7\xE6uR^~y\x80\xC71\x96e\xB8Y\xEA\x9E\xE7=W=\xFBwI\xF8 dj\xEE\x83ѻ\x84\&lt;72\xEE\xD9\xE8ّƓlDc\xAF\x88\xB4tvW\x9BV\xB4i\xECق\xB5ӌN&gt;\xBC%|\xD9\xD4N\xCA\xCB/\xF08Ʋl7K\xDD\xF3\xBC\xE7\xAAg\xFF\xAE&quot;        \x9F\x85,\xBDE\xC2\xF5\xA3#\x9F\x8D\xEES\xC2\xEE4\xF6\x8AHKgw\xB5iE\xEBc\xAF\x9C5&quot;\x92\xF3Ŵk\xA6\xEC\xD5IO\xAE\xFC\xCC\xD4B\xCA\xCB/\xF08ƚ`\x97\x8B\xDC\xF3\xBC\xEA\xB6g\xFF\xAE&quot;        \x9F\x85L\x8D~6}e\xC2\xC2\xE9%\xFB&gt;\x9B&gt;5\xD2x\x92]\xA8\xEB\x91\x96\x8E\xEFjǖ\xD6^&lt;nD$\xEA+i\xD7L\x89\x88D]\x966\xEE•\x98]Hy\xF9\xE5\xC7X \xE0r\x91{\x9EW\xDD\xF6l\xDEU$\xDE㐵\xD3W&amp;,\x9C^\xB5\xF2\xB3\xE9\xF3\xF2\x8C'\xD9%my\x80-DZ:\xBE\xAB\xEDZ*        \xBCxܠ5i\xD7LI\xD9+m܅+\xBFkv\xE5\xE5\x97xcM0\x80\xCBE\xEEy^u۳yW\x91x\x8FC\xD6N\xEF\xAFdtd\xE8H\x80y\x91Ɠ\xAC\xC99\xB5&lt;\xC0&quot;-\xDFU\xB0\xA5EU\xA5]?qĚ\xA8\x91)\xAF \x8A\xD8(\xEA \xAE\xFC\x96U\x94\x97_\xE0q\x8C5\xC1.\xB9\xE7y\xD5m\xCF\xE6]E⍄,\xB0 [m\x80\xC2\xC5G2\xCC\xC83cY\xCE\xC1\xA8\xE5\xB6i醮6*\xAA*j\xC9\xD0\xC7\xD6D\x8DLyeP\xC4FQg\xB8p\xE5׭\xA9\xA2\xBC\xFC\xF2\x8Fc\xAC        p\xB9\xC8=ϫn{v\xEE*\x92m0d\x87 \xB3\x83\xD5f(_\xFFq\x86a\x93l\xB2C\x86\xFE&quot;-\xDD\xD0U\xB0\xA8\xA9]\xE6,\xFAؚ\xA8\x91)\xAF \x8A\xD8(\xEA \xAE\xFC\xBA5=\xD4\xF6_;}0\xC6\xECT|x\xF1\xBE\xB6]E\x82\x8D\x87\xEC\x90av\xB0\xDA \xE5\xEB\x8FĘ\x91g0\xC9\xECx\xE3        d\xE8/Ғ\xAE\x9A\xD4U\x9E\xB0ptI\xD4e\x83^\x9C5h\x97\x9C\x93ܹ\xF5+\x96\x95P[~\xED\xF4\xC1\xB3S\xF0\xE1\xFD\xC5\xFB\xDA֕
+6\x9E\xB0I\x8CI\x91\xCAct(a$F\xC30S\xB3\x8D\xC7됡\xBFHK\xFB\xAA\xED\xAA\xF9Qf\xC863)\xEA\xB2Ao\x8D\xB1Eȩ\xAE]\xFCg+\xA8\xEA\xBFjn*ɂ`D\xAEz^u\xE1\xB3g]\xA9T\x91\x84}\x92\xCC\xC8S\x9E\xA4I#I\xBA\x85i\xACO\x92\xCER-m\xAA\xBC\xAE\xB6\xE7X#\xD5̼\x9C:Y\x9Cp\x81k\xFF\xC1\xE2\xAA\xFA\xAF\x9A\x9BJ\xB2 \x91\xAB\x9EW]\xF8\xEC\xD6X0O0^\x9F&lt;2dÔ\x88$\x89\x8795R0\xD5x\x92\xCER-m\xAAI]
+O\xB0C\x98\x91Z\x84\xD4ɲx\xCB\\xBB\xF8\xAF_r%C\xE3af r\xD5\xF3\xAA \x9F\xAD \x86\xC9\xC6\xEB\xA9&lt;\xC0\xA4H\xE5چI\xD5'\xC9\xECl\x91H
+e[\xDAN\xAB\xC6\xF6M25\xD5H\x98\xA9\xF1t2;\xD8z\xD7.\xFE;\xEB\xD7|\x8Fc\xAC\x9F8/ϼT|\xB8z\xFDH\xB0\xB4ǽe3\x83\xADIX2w\xB0\x90T\xB6Ry\xE2aލW;\xBDOK\xF1\xCC\xEB-n\xA9\x9B\x9E\x8D5Po$Ҍ`:\x99\x91\xA7\xDCͻ\xFF\xAB\x92\xDD\x9Fƒ0+g\xCD\xCE35\xDE&gt;,\xEDAu\xF1\xE9\x91T\x859\x97,$\xD5I\x87 \x9D\xF3\xF41\xD8LUE\xA9؋-n\xA9\xA5}\xB7\xC5GU\x9ED'\x8F4w\xF9\xFA_U-\xFE\xF8ފ\xB4f\xCA\xFA\xDD'\xE0\xC3[\xC2G\x82\xA5\xBD\xD8Ἁ\xC2t(j\xBD\xF16R\x854\x89\x91\x8A\xD3\xC4\xF81UUL\xBE\xD2►Q\xDAw&gt;\xAA?\xD2\xC9w\xE3\x9FM\xF8T\xB8\xF5\xE3Sx%\xDB\xD4/_|R0&gt;\xBC%|*\xD8[[Z\xFA4^E\xB0\x90&amp;1\x82\x91\xE2y:?\xA6\xAA~\x82\xC9WZ\xDCR7z\xFB\x85\xEF\xEA:\xF9.\xF5\xE5\x94\xD3\xC0\xDFjW~|
+˴]|R0&gt;\xBC%|*\xD8[[\x8A\xFA\xA9&quot;\xD5F\x9F$\xC1T\xF1&lt;\xB5&quot;gTUN6\xFC2\x8B[\xEAFu_\xA5&gt;\xAA#\xCB\xF9\xA4\x93\xEF\x82_NJ\xF8\xA8~K\xF8b\x80*\x9D\xB7\x9E\x97
+\x80\xF1۞w^\xFB \xF6֖\xAE\xFE\x96\xEA!UE\xAB0\xA9T\xD90\xB5&quot;\xA7S\xD8ό\xFC \xAC\xAC\xA8!\xED}\x8A|N\xA7\x96\xF3\x95N\xBEK}3M(\xA1þ\xCFNa\x8D\xCE+O\xCA\xC0\x87\xB7\x84\x82\xD5\xF5\xA4\xA8\xFF\xB4\xFC\xE6Z\x85        \x8B\xE7)9\x9A\xDAr&amp;\xAD0\xDBʊ\xD2ާ\xC8\xE7tp?\xD3\xC9w\xE3\x9Dtsy}\x96}|Su\xDEw^6&gt;\xBC%\xAC..~l \xD8C\xB7&lt;\xC1l\xF1&lt;\x8BE\xA5\xBC\x99y[L\xB5\xB2\xA2\x86\xF8\xB7\xF1.\xE7\x93N\xBE\x8Bt\xD2\xD0\xCDm\xB4\xDA\xF4\xD9A\xCC\xD3|٩\xF1\xBF\xF0y\xF3\xCD\xCF`{A\xA9l7t\xF5\x83\xEC\xFA\xC1\xBA\xE5\xC9f\x8BGZf|\xF7&amp;\xB5L]d\x9E\x955\xA4\xC3\xFF\xF478\x95N\xBE v\xD2͵\x85t\xDB\xF4\xD9A\xCC\xD3|٩\xF1\xBF\xF0y\xF9\xCD\xCF`\x81\xD9`gw\xF5\x83\xEC\xE2\xD9F\x8ANj\xA7\x9A-\xB2u\x93N\xEC2ò~zRc\xAA\x81#\xCB\xF9J'\xDFe;i\xE5\xDAB\xAE\xF9\xEC,fh\xBE\xE6\xD4x|xK8,X\xE0\xB8x\xB0\xB3\xEB\xFA\x9D\xF8\xD6\xD9\xF5F\x9A/l\x9E\xD4\xCAM:Y\xB6N֚rں\xBC\xC9\xE0\xFA\xE7\x95\xF3\x95N\xBE\x9B\xD1I+\xD6\xD2v\xC7gg\x91\xD5\xC7\xD9        \xBF\xF3\xE9\xF2g\xB0\xC3\x93\x82\x9DZ\xD7\xEF\xC4\xF7\x8D\xEF\xDE3Ռ\x84\xF1`3\xA4\x96\xEDS\xC8ʍ\x82֔\xD3\xD6\xCDefw?\xAC\x9CO:\xF9nj'}\XN\xE7\x9FGJ\xFF$ r7\xD5\xFD\xCF`\x8D\xC1\xF2\xA7\xFE\xF8\xD6u\xFDN|\xD3\x8B\xF7L5/a&lt;^Pv\xD3&amp;m\xAC_*bA3\x9D\xDDY錭\x8F)\xE7+\x9D|\xB7\xA6\x93n\xEB\xA7\xFF\x82\xCFNd\xDCۭ                p\xB9\xC8\xF5T\xF7??Z\xDE
+^3e\xBB\xC6~gƎ3Vnl^\xC8x\xBCq\xD9[\xB5Q\xB8ڈٵ4wa\xAB\x93V&gt;\xA3\x9C\xAFt\xF2\xDD\xCAN:\xB8\xAA\xA2-\xB6{p&quot;\x83v\xD9kMN\x80ˍ_\xFBt\xFF\xF3\xAB`\x9F㝯\x9C\xB5E]\xBF3c\xB5y\xFBv\xCE65g&lt;\xE13\xF1\xBD\x9E9~\xC1w\xCD+d Wu;u\xD9wU\x97\xF1\x9D|W\xD5I\xAD{\xBA\xDAk\xB5g\xE7\xF2\xAE\x8D6Z\xE0f\x91{\xAA\xAE\x80~\xACt\xBC\xED\xF5\xDB6\xB6x\xA9y\x9Bvζc\xCEK=vÎ/\x9AQ\xC5F.ix\xC1\x9A\xCFT\xF3\xAB\xEA&gt;\xFER\xDD\xC1\xAF\xAA\xFB\xA8tOc\xDB\xED\xF5\xECh\xDA\xE2^i\xAE\xB9\xAA\xEA
+\xE8w\xC1bGz\xAE\x9A\xFB@0j\x87u\xE6\xED\xD8&lt;ަQ\xAB\x89\xB8j\xD9\xDFɖ\xB0\x9D\xE3{^\xB6\xE0\x88\xAAr\xBE\xAA\xEE\xE0W\xD5}\xFC\xA5\xBA\x83n\xE8mߥ\x9CN\xC3Mw\xCC q\xE3k/\xBCd\x9B-\xED\xDA/\xE1k\xF9\xEE\x86)7\xE3\xCF혏sM9{\xA5\x93Z7t\xB8\xFBF\xCFΨώ\x9B\xC6\x80I\\xAF}`\xF0Z\xB2\xAF\xE2S\x81\xC1?\xBD#\xFFg\xF4\xB3{K:)qv\x9FǬ\xF3\xE0\x98\x9A,8\x92\xBC&lt;&lt;L\xE5J\xED3\xAE%\xF3\x9F
+\x94\xF0o\xF5\xCF\xDE\xED熖t\xB2\xC0\xC1
+\xB6Χ\x8D\x96z\xF0u5\xDC\xE0y1\x89\xB7\x84Mx\xE4\xC5$\xF4\xE1\x9Dq#        }cq\x9Ez\xE7-!@+\x9Ez\xE7!!@7|4\xF2\x90Ч0\x89_yHГ7_D\x8C&lt;$\xF4]\xCC\xE6\xD9\xE3&lt;$\xE8\xCC\xCB/\x8D&lt;$\xF4E\xAC\xE1\xF1#&lt;$\xE8\xCF\xFB/yH\xE8[X\xC90\x9E\xF1\x90`^\x81񌇄\xF1\x8Cw=~H\xE8\xFB(\xE1-\xEF\xF2\x90`;\x9E\x83\xF1\xBA\xC7        }&lt;\xB5\xBC\xE3Elʣ0^\xE1!!\xC0\xD6&lt;
+㏼%؝\xD7a\xFC\xC0CB\x80x \xC6&lt;$8\x83gb\xFC\xABg        }$=y&amp;\xC6/&lt;$8\x8C\xC7b\xFC\xC2CB\x80\xF3x/\xC6'        N\xE5\xD5\xF3\x96\xE0T^\x8D\xF1\xE1!!\xC0\xE9\xBC\xC3CB\x80\xE3y&gt;v3        \xE0\xFF\xF4Y\xA0
+endstream
+endobj
+103 0 obj
+   125425
+endobj
+7 0 obj
+&lt;&lt; /Length 104 0 R
+   /PatternType 1
+   /BBox [0 0 4804 3600]
+   /XStep 34248
+   /YStep 34248
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 0.0545379 0 0 0.0541667 300.803986 198.08913 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x102 102 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ q 4804 0 0 3600 0 0 cm /x102 Do Q 
+endstream
+endobj
+104 0 obj
+   36
+endobj
+106 0 obj
+&lt;&lt; /Length 107 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 105 0 R
+&gt;&gt;
+stream
+x\x9C\xCA=
+\x83@E\xE1\xFE\xAD\xE2n\xC0\xF1\xDD\xF9)6v\xC2\xEB$\x85\x8DV\xD1\xFDC&amp;\xE1\xF0u\xE7#\x8A_ׁqS\xB7\xBCL\xC6}ȃ\x82\xB0]jpU[\xD5\xFA\xDF[\x8B\x85\xF0\x9E\xCEg6\xE4X\
+\x89)\xC3NY\xAA\xCA\xCEw\xA1\x8B\xCF7l\x96\xC9d\x91/\xBB\xF2
+endstream
+endobj
+107 0 obj
+   105
+endobj
+105 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Font &lt;&lt;
+      /f-6-0 108 0 R
+   &gt;&gt;
+&gt;&gt;
+endobj
+49 0 obj
+&lt;&lt; /Length 109 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x106 106 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x106 Do

+endstream
+endobj
+109 0 obj
+   12
+endobj
+111 0 obj
+&lt;&lt; /Length 112 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 110 0 R
+&gt;&gt;
+stream
+x\x9CeP\xBB
+1\xEC\xF7+\xE6 \xD6\xCDe\xF3\xB8\xD6F,\xB4 \x89p&quot;g\xA1\xFE\xBE\xB93\xB9\x80\xB2\xC52\x93af\xB22\x98\xE69`u /Ls\xD8TlX\x9Ct6❥[\xEAp\xA3\xE3        ‚ )v\x9Em\x9F-bd
+w8X1©\xB0\xFA\xC68\xED\xB87\x9A\xB1g\xE9@
+\xE7,RS8\x9Fw\x9C=*c9\xFA\xD0&lt;\x9D\xC9a\x9AMJj\xC1i\xE9U\x88\xC1\xB2U]\x88 \xE7\xF7\xAFa\x81T#\xD3&quot;(\xAD\xC6F̵\xAB]\xF9\xD4\xCF(\xE1J\xA7YӞ&gt;\xA3H\xEC
+endstream
+endobj
+112 0 obj
+   180
+endobj
+110 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+52 0 obj
+&lt;&lt; /Length 113 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x111 111 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x111 Do

+endstream
+endobj
+113 0 obj
+   12
+endobj
+115 0 obj
+&lt;&lt; /Length 116 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 114 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEA\x99*\x9AYꙙ)\xE4*\x98\x9A\xE9[&quot;Dr\x82\xB9\xB9\xCA\xC5
+endstream
+endobj
+116 0 obj
+   78
+endobj
+114 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+55 0 obj
+&lt;&lt; /Length 117 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x115 115 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x115 Do

+endstream
+endobj
+117 0 obj
+   12
+endobj
+119 0 obj
+&lt;&lt; /Length 120 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 118 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\x98\x99\xEB\x99[(\x9A\xEAY+\xE4&quot;,\xCC\xF5,M\x8Dr\x82\xB9\xB9\xDC\xC3
+
+endstream
+endobj
+120 0 obj
+   79
+endobj
+118 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+58 0 obj
+&lt;&lt; /Length 121 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x119 119 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x119 Do

+endstream
+endobj
+121 0 obj
+   12
+endobj
+123 0 obj
+&lt;&lt; /Length 124 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 122 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*[\x98ꙛ)\x9A\xEAY+\xE4&quot;,\xCC\xF5,M\x8Dr\x82\xB9\xB9\xDC6
+endstream
+endobj
+124 0 obj
+   79
+endobj
+122 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+61 0 obj
+&lt;&lt; /Length 125 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x123 123 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x123 Do

+endstream
+endobj
+125 0 obj
+   12
+endobj
+127 0 obj
+&lt;&lt; /Length 128 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 126 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*뙘\x98*\x9A\xEAY+\xE4&quot;,\xCC\xF5,M\x8Dr\x82\xB9\xB9\xDAV\xF4
+endstream
+endobj
+128 0 obj
+   79
+endobj
+126 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+64 0 obj
+&lt;&lt; /Length 129 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x127 127 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x127 Do

+endstream
+endobj
+129 0 obj
+   12
+endobj
+131 0 obj
+&lt;&lt; /Length 132 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 130 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*\x99%\x8D M
+\xF5,\x8Dr\xE1| s=KSc\x85\x85`\xAE@.\xB8c\x8C
+endstream
+endobj
+132 0 obj
+   77
+endobj
+130 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+67 0 obj
+&lt;&lt; /Length 133 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x131 131 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x131 Do

+endstream
+endobj
+133 0 obj
+   12
+endobj
+135 0 obj
+&lt;&lt; /Length 136 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 134 0 R
+&gt;&gt;
+stream
+x\x9C\xCA;
+\x80@ E\xD1&gt;\xABxp&amp;\x93A\x93\xB1l\xEC\x84tba\xA3\x95\x85\xBA\xF0\xC3\xE5t\xF7$\xC6׵#\xAE\x8C\xFD\xA6\xDE)n\x95V\x8C\xDF(q\xB3\xF4o\xB4A\xB6L\xADp\x83F5d\xAD\xE1\xCD-3\xA7\x97t |\xA4\xC1i\xA2\xFD\xB2
+endstream
+endobj
+136 0 obj
+   98
+endobj
+134 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+   /Font &lt;&lt;
+      /f-7-0 137 0 R
+   &gt;&gt;
+&gt;&gt;
+endobj
+70 0 obj
+&lt;&lt; /Length 138 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x135 135 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x135 Do

+endstream
+endobj
+138 0 obj
+   12
+endobj
+140 0 obj
+&lt;&lt; /Length 141 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 139 0 R
+&gt;&gt;
+stream
+x\x9C]\x90\xBDNA \x84{?\xC5&lt;\x81\xB1\xF7\xEC\xFDi\xD3DB\xA2\x80\xA5\x88\xE9:\x8A$E^\x9F;XY.\xE6\x935\xFBB\x8A\xAD\xAE3΂\xF9F\x82\xAD^\x8E\xA1\x95Sʚ+\xEE\xEB\xE8\xE3\xDA\xF4z\x82\xB0\xE0\x8D O\xA8\x89}jȲ\xA2\x86O\xF8d\xDCR
+\xB0\xC0M8\x95\xD0n\xC6^*\xBC9\x97\xAA\xBB&amp;o\xC26\xA1\xEF\xC4\xD4Y\x93~; &quot;\x8DK        Cg˺/\xA4=2XP
+k\xAD;(\x89k\x9D\xC2/\xD4\xD8G=Ȉ\xB4\xFC\xEA\x9F\xCC\xC3m\\xF4\xF7\xEF\xF4\xFF%z\xA6/\xA1G6
+endstream
+endobj
+141 0 obj
+   182
+endobj
+139 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+73 0 obj
+&lt;&lt; /Length 142 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x140 140 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x140 Do

+endstream
+endobj
+142 0 obj
+   12
+endobj
+144 0 obj
+&lt;&lt; /Length 145 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 143 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xB0gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEB[\x98+\x98[\xEA\x99[+\xE4*\x98\x9A\x98\xE8\x98\x9B\xC0Er\x82\xB9\xB9\xEF*F
+endstream
+endobj
+145 0 obj
+   81
+endobj
+143 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+76 0 obj
+&lt;&lt; /Length 146 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x144 144 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x144 Do

+endstream
+endobj
+146 0 obj
+   12
+endobj
+148 0 obj
+&lt;&lt; /Length 149 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 147 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.=S###c \x85r\xA0\x94gqE\xC7*\xE8(\xA4p\x99(\xF8*\xE9Z*\x98\x98\xE9\x9A)\xE4\xC2EL--\xF5̌,r\x82\xB9\xB9C\xB2#
+endstream
+endobj
+149 0 obj
+   86
+endobj
+147 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+79 0 obj
+&lt;&lt; /Length 150 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x148 148 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x148 Do

+endstream
+endobj
+150 0 obj
+   12
+endobj
+152 0 obj
+&lt;&lt; /Length 153 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 151 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xB0gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEB[\x98+\x98X\xEA\x99\x99+\xE4*\x98\x9A\x98\xE8\x98\x9B\xC0Er\x82\xB9\xB9\xED\xE66
+endstream
+endobj
+153 0 obj
+   81
+endobj
+151 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+82 0 obj
+&lt;&lt; /Length 154 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x152 152 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x152 Do

+endstream
+endobj
+154 0 obj
+   12
+endobj
+156 0 obj
+&lt;&lt; /Length 157 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 155 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xB0gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEB[\x98+\x98\x98[\xEA\x9A)\xE4*\x98\x9A\x98\xE8\x98\x9B\xC0Er\x82\xB9\xB9\xEEZ:
+endstream
+endobj
+157 0 obj
+   81
+endobj
+155 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+85 0 obj
+&lt;&lt; /Length 158 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x156 156 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x156 Do

+endstream
+endobj
+158 0 obj
+   12
+endobj
+160 0 obj
+&lt;&lt; /Length 161 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 159 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEB[\x98+\x98\x98X\xEA\x9AX(\xE4*\x98\x9A\x98\xE8\x98\x9B\xC0Er\x82\xB9\xB9ܿ
+endstream
+endobj
+161 0 obj
+   80
+endobj
+159 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+88 0 obj
+&lt;&lt; /Length 162 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x160 160 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x160 Do

+endstream
+endobj
+162 0 obj
+   12
+endobj
+164 0 obj
+&lt;&lt; /Length 165 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 163 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.=S###\x85r\xA0\x94gqE\xC7*\xE8(\xA4p\x99(\xF8*[\xEA[\x98+\x98\x98\xE9\x9A)\xE4\xC2EL--\xF5̌\x8Dr\x82\xB9\xB9E\xDB7
+endstream
+endobj
+165 0 obj
+   86
+endobj
+163 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+91 0 obj
+&lt;&lt; /Length 166 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x164 164 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x164 Do

+endstream
+endobj
+166 0 obj
+   12
+endobj
+168 0 obj
+&lt;&lt; /Length 169 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 167 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.=S### \x85r\xA0\x94gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\x98ꙙ\x9A)\x98\x98\xE9\x9A)\xE4\xC2EL--\xF5\xCC\xCC,r\x82\xB9\xB9F\xA89
+endstream
+endobj
+169 0 obj
+   86
+endobj
+167 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+94 0 obj
+&lt;&lt; /Length 170 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x168 168 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x168 Do

+endstream
+endobj
+170 0 obj
+   12
+endobj
+172 0 obj
+&lt;&lt; /Length 173 0 R
+   /Filter /FlateDecode
+   /Type /XObject
+   /Subtype /Form
+   /BBox [ 0 0 612 792 ]
+   /Group &lt;&lt;
+      /Type /Group
+      /S /Transparency
+      /CS /DeviceRGB
+   &gt;&gt;
+   /Resources 171 0 R
+&gt;&gt;
+stream
+x\x9C+\xE42P\xC1 w\xFDD\x85\xF4b.= \x85r\xA0\xA8gqE\xC7*\xE8(\xA4p\x99(\xF8*\x98\xEB\x9B\x99+\x98\x9AY\xEA)\xE4*\x98\x9A\x98\xE8X\xC2r\x82\xB9\xB9\xCB]\xCE
+endstream
+endobj
+173 0 obj
+   79
+endobj
+171 0 obj
+&lt;&lt;
+   /ExtGState &lt;&lt;
+      /a0 &lt;&lt; /CA 1 /ca 1 &gt;&gt;
+   &gt;&gt;
+&gt;&gt;
+endobj
+97 0 obj
+&lt;&lt; /Length 174 0 R
+   /PatternType 1
+   /BBox [0 0 612 792]
+   /XStep 2808
+   /YStep 2808
+   /TilingType 1
+   /PaintType 1
+   /Matrix [ 1 0 0 1 0 0 ]
+   /Resources &lt;&lt; /XObject &lt;&lt; /x172 172 0 R &gt;&gt; &gt;&gt;
+&gt;&gt;
+stream
+ /x172 Do

+endstream
+endobj
+174 0 obj
+   12
+endobj
+175 0 obj
+&lt;&lt; /Length 176 0 R
+   /Filter /FlateDecode
+   /Length1 6476
+&gt;&gt;
+stream
+x\x9C\x8DX        xSU\xBE\xFF\x9Fso\x96\xEEi\x85\xB6\xB4\xA1\xB9!m\x94\xA6\xB5X`
+-ӦmRp
+Rh\xC1\x84)\x92nRP\xA4ZV!\x8C&quot;6\x87\xE70\x82\x8E\xB8\x8C\x8A:\xCAmZ\x99\xF0QEEY\x9E \xEE\x80\xE8&lt;u\xBEA\xD0暑K\xEF\xFB\x9D\x9B\xB4\xD0\xF7|\xEF\x9B{\xFA\xFB\xEFg\xFFߓ{J\x8C\x88\xE2)H)-\x8B\x9A:h\xF8\xF9հ\xBC T\xB5,[\xA2l\xCFc\xB3\xC7\\xDF1\xD1\xEB+\xFD;\x89LS\xA1\xDF4\xFFƕ\xD7k\xF7\xB5^@쟁\x82\xF6\xB6\xA6֣\xF7:\xB7%\x80\xFE\x8Bv\xD2\xC6&amp;.\x87\xFE_\xD0s\xDB-Ya\x9E(:L\xCE1߸\xB8\xA5        \xDC]O\Դ\xA2C&gt;\x98\xB8zt\xA5㖶\x8E\x99\xFD/~\xFD\xC5k\xC4E]
+Fk&quot;\xB2\xA7\xDAS\xF3@\xC9\xF4\xA3&quot;\xF5\xFD\xE86\xD0\xA4\xC8}\xA4?Q\xE2FL\xE7\xE3&amp;\xFA\x91Q`9\xCF4
+\x944\xCDB\xB1#%\xC7j\xEA\xC3&gt;d\xA7\xB2\x930f\xED3\xE0s\xC1\xFBh\x9F \xBF\xE0\xFC\xC4@\xB4\x9B\x9Ef \xE8i:H/\xB0󨵇z\xA9\x87^\xA1 \xF2\xD0\xFD\xB4\x8A\xEE\xA1\xF5\xE8i,w\xD1L\xEC\xF7\xB0Z\xD1C\xF3Ct\xB1\xD7\xD2j\xDAG\xE9,S\xFB\x82\xD6\xD0:\xE9M\xD4ZGI4\x8A*\xA9\x8E\xD3f6U[J\x8DtJ\xBE\x9DJh*\xDDD,\xA8\xF9\xB4-\xDA6\xEDO\xF4(\xF5J\xAFh?QeQ \xCA\xEDKûڇT\x88\xBF\xA7t\x8Am\x8B{\x96\xDC\xE8%\x88\xC8?\xD2-\xB4S\x9A+3m\xBE\xF6=F`\xA7\xE5\x83L\xD3\xE8\xEB\xE3.\xB4\xDEF\x9F\xB1L\xB6J\xAAF+\x8Fh\xAA\xF6&quot;\xA2\xAC4\x97\xDAi'\xEDc\xE3\xD9dn74jӴ#\x94\x8E&gt;V\xA0\xD5\xA6\xBD(z\x8E\xDEg\x89\x86\xF3ڟ\xB4\xF34\x82
+\xE8j̧\x87\x8E\xB2&gt;\xA9\xFF\xA7\xB5\xFD\xFA\x96f\xD2h\x9A\xCFb\xFAw\xFA+g\xF6&lt;_lH4܆[\xB5\xB7\xB0\x87W\xD1,\x8C\xF6q\xD4\xFCO\xF6_\x8D\xB2FzY\xAEѪ\xB0g\xEB\xE8wb\xB5\xE9%\xFA\x98e\xB1&quot;6\x9D\xCD\xE6\xA3\xF9b\xFE\x80t \x99\xD1\xE3U(\xAD\xB4\xEB}/Z?\xC9\l/O\xE4ǤG\xE4\xA7\xE4\x8C#\xFBOk\xC9\xD8'\xDDG\xA4\xE7Yf\xAA\xB0N\xF6[v\x82}«\xF9&lt;~?#\xDD#?!\xBFaj¬\xAF\xA3E\xB4\x99\x9E\xA2\xEFX\x9B\xC0f\xB0_\xB3v\xB6\x8A\xADg\xBFc;\xD8v\x9C}\xCE+y\xBF\x81\x9F\x93ڥ\x9B\xA5\xE7\xE4*\x94z\xB9S\xBE\xDDp\xA7a\xA3\xF1\xF3~_\xFF\x8B\xFD\xFF\xD1\xFF\x9DV\xAC\xDDI3\x90k1\xFA\xDF\xD3\x98Y/\xA3\xF7PN\xD1f`        ,Eav6\x8B\xFDe5\xDB\xCCf\xBB\xD9\xAC\xBDgg\xD8\xECk\xF6
+\xFB\x81#a\xB9\x91gs;\x85\xE2\xE0\xB7\xF0\xE5\xFC~??\x86r\x9C\xFF\x83_\x902\xA4Q\x92K/M\x92\xFC\xD2b\x8Cj\xBDt7ʳ\xD2\xC7r\x96|Lְ\xCEņ\xED\x86]\x86݆\xA7 /\xCEM\xBF5\x93\xF9\xF5\xF9)\xFF\xA7\x93\xFDԿ\xA1{\xB8\xBFG\xFB\x98\x86c\xB3\xB0
+6\x9A\x84\xD17\xA1,\xC4~oG\xC6\xED\xA17Y&quot;\xD6.\x8B\xE5\xB3r6+3\x8F-d7\xB3X\xC9;\xD8N\xF6\xA8&gt;\xF6g\xD8\xAC\xD2;\xECƜĭ\xFA\x98\xAF\xE4\xE3y\x9F\x8Ero\xE37\xF3\xBB\xF96\xDE\xC3O\xF0\xEF%\x93\x94 \xA5Hå|i\xB24Wj\x93\x96H+\xA5\xED\x92*\xBD.}$\x9D\x91\xBE\x95~D\xD1\xE4x\xD9&amp;\x8F\x92\x9D\xB2K\x9E,ϓ\x97\xCAȟɟ
+\xAF\xFEf\x8C7.2\xDEi\x8C\xBF2\xFD\xC2Tn\xAA3\xCD0\xCD5m5\xED5\xBDe ;ѳ\xF4\xBA\xE4a\xA7\xA5\xB5\x92Wz\x96\xB6\xF0\xB1\xF2~\x94E&gt;ϣViG\xA6\xF2\xDDl\xBF\x8D\xF5\xF0\\xC3
+c/c\xD7\xD0yى\xB5~\x99\xEF\xE2\xDF\xF22i\xABe\xF5\xB4\x90_m\xCD8L~l\x92|\x88\xCE\xCA0\xB7\xA3hy\x851\x91\xAD\xE6猉f\xC4'\xA2ϗ\xA41\xB2Kz\x8DޗN1\x93\xFC} dz v\x96?.\xD5! \x9E\x93\xCB
+&gt;\xB2K\xF7\xD33\xD2\xCD\xEC6z\x96{q\xFE`ބ&lt;\xBE\x86=\x89s\xA1\x81\xB3JI\xFCdQ\x89\xF4        \xDDN7\xF0w\xE9,\xDE\xE3
+\xF4\xD6*ϧ-4\x96\xAD\xA2\xCF\xE81\xBC\xA3
+7\xF3\x8D\xC3٫|\x81◱\xE2\xF2\x98\xDDD\x96\xCB$\xC30\xBA\x83͕v\xCF\xF1\xF7h)\x93\xE3\xE9\xA4\xF4g\x8C\xFEF\x9A&amp;\x9F7\xCCd\xEDxn\xA3;\xE9fm-\xAD4\xF8\xE47\xD8|\x92\xD8lʓO\xE3t[%\xCBv\xF058Uq\xA6\xED\xC5۽\xE7@\xA54
+\x96Ld\xCET\xE4\xC5,\x9C;Q\xEE\xC59!#\x83\xE0\xBF\xA7\xD8Q\xEA16\xF0\xCD7$3\x9C:8\xAE_\xEB\x9FIs\xB4\xC7h\x876\x9FnҶQ!΃\xF5\xDA*\xB4\xB8\x9B\xFEF[i7[\xD7\xFF\xEA\xA0\xBC9'\xD9TC
+?f\xA8\xD1
+y\x88\xBF\xC7\xEB\xF9\xF6\xA1\xFB\x8B\xD5\xCEc\x99\xF4w\x94g\xA0\x94\xF6SH~\x87\xEA\xA9Bۤ\xBD\x8D\xEC\xBE'\xECj\xA6_ѧ\x98\xE5\x97\xE8a\x8A\xD4Gc\xFB\xAF\xE1]Z\x8Dԁ\xF9\x9E\xA2\xDA㚍\xC5S\xBBv#M\xA7\xF4\xA8\xC9@M&amp;\x97\xBBzVC\xA5\xBB\xA2\xFC\x97\x93\xCAJ'N(?nl\xF1Uc\x8A\xAE,,p叾\xE2rg^\xAEc\x94]\xB1匴fg\x8D\xC8\xCCH&gt;체TKJrRbB|\x9C\xD9d4\xC8~\xE0
+\xBC\x8E\x9A\x80\xA2:\xAA\xECtL\x99R(tG M\x97\xAAS\xCD\xD0U        \xE8a\xCA\xD0H7&quot;\xAF\xFF\x91\xEEh\xA4{0\x92Y\x94I4\xA9\xB0@\xF1:\xF5\x88ǡD؜&gt;ț=\xBF\xA2\x9E\xD5\xE5i\xBA|\xB7.'A\xB6\xDBQA\xF1f\xB6{\x95\xAFZ\xB3\xAC=\xE4
+x\xD0\WB|\xB5\xA3\xBA-\xBE\xB0\x80\xBA\xE2 &amp;@R3],\xA3\x9C\xE9\xCF\xF0\x96vq2'aPj\x96\xC3\xE3UG8&lt;b\xAA\x94\xE7mjU\xEBf\xF8\xBC\x9El\xBB\xDD_X\xA0\xB2\xEAG\xB3J\x8E*5ť\x87P\xB5ލj\xACVMz7\xCA1ڨt\xF4\x856E,\xD4p%\xB6:Z\x9B}\xAA\xD4\xE4}\xA4\xBAЯG͸\xF5\xD3̋*O\xAB\xF6\xAD\xBFԛ-\x85\xBC\x99 \xA1\x86B\xEB\xF5\xC1\xBEK\xBDvA\xFD~\xB4\x81\xBA&lt;\xAF&amp;\xAAAכ\xB0\x88\xB5\xF5
+z\xE3\xEB\xFC&gt;\x95\xADC\x97\x8A\x98\x89\x98Ut~m\xAF\xB0*j\x9C\xA3\xCA\xD1Z\xC0\xD6d\x85T\x9A\xB9\xD2\xCE\xCAr\xF7j\xA7)˫\x84|\xBBZ\x91\xED\xF07y\xAC]\xC3(4se\xF7\xB72b\xA8\xA7\xB0\xA0˒]خ䔘\x90\x98t\xA9\xD06\xE8\xD3%=\H\xB53W\x96\x899\xAEFB\xA8J\x8B\x82\x91\xF8\x98\xD3A\xDA&amp;P\xA8e\xC2\xF0\xF8j\xA9\xADؑj\u d)vQ_5\xE4YJ\xE8B8\xCE\xFEc\xA8\xA5)f1\xE6Y\xBE!!\x8A&lt;L5\xF8d\xD5\xE5R\xF3\xF3E\x8A\x98\xAA\xB1\xA7c\xB9\xAE\x8F/,X\xE1G\x87E\xC3\xF2Qֶ\xC9_Z\x84\xE5\xB7\xDB\xC5o\x8C\xB8\xA9\x8A\x9C\xE1\x8B\xEA
+5g\x87\xC9]\xE4\xF2\xAB&lt; &lt;}\x9E᳄'8\xE0\xACp \x93{\xF4\x8F\xC0\xE1\xAA\xD99\xF8\x97bI\xBF\xCC\xDB^\xAA\xB2\xF4\xFF\xC7\xDD\xF5\xD7\xD6;jg\xCC\xF1)\xDEP \xB6\xB6\xB5
+C\xB4\xA8 /&amp;\xA9\x97U\xFB\xA4l\x93x\xB6\xA4{\x91\x94\x8D\x83\xC1B\xF1%\xAAr\xFE\x8CzR\xB7FLfd\xA5naJ\x8Dj        L\x89R\xBC\xDD\xFE/V\x8Ah\xE7E-\x9D]\xAC\xA6Z\xEA\xAA\x97
+ч /1$a\xC0\xF8\xACm\x98
+\xC5\xF1!բ^c\xC8xj\xF0ٕj\x95f\xE1\xCD\xCC\xC3_D\xEB\x9B \xE0\xCFV\xDDX\xB2j\x80\xFC\x8B\x9Ab\xEA\x90\xC0\xEC\x98\xEC\xC7#\xB2\xB3\xB0\xA0](T\xE3PjB\x81PSD 6;\x8B#\xD4\xCB_\xE0/\x84:\xBC\x81\x81ĉh\xFB6f\xAB5\x9B\xFCX\xABvV\x8A\x97\x82SU\x97\x83m\x98\xD1\xE5f\xEA\xE7\xF8zqP64\xF8œ\xF1\xEA@\x95\xBF+&gt;_/\xAE
+n\xDDʅU\x85\xA2\x85j&amp;\xE6f=&gt;\xBB\xD7MԽ\xB2n\xD0\xF5\x96#\xDDf\xB01j\x89\xF0\xA8\xCD2`\xE3\xB0\xC9Q\x9B[\xB7\x89G\x9C1\xD5
+\xBEK\xB3G%\xFD\x85\xD1;\x8A\xB8\xE3ԏ\xFD\xB6y^ʤo\xCC\xD9f\xFD\xEE\xE1O.\xCF\xBC\xF7\xED\x9Eo\xBF\xDF\xF3\xD3| \x99\xA1\xC6!&gt;z\xCF5\x95\xF7_C\xD5\xFA~O\xBFs\xF0\xFEs\xF1\xE1F\x8A~\x9BĞ&quot;J\xDC\xC1*h\xEE_\x9C,\xF8u\x9F\x8D_\xE8$\xDC\xCD$\xE2]
+)\x95\xA3\xA4 :h\x80D6\xD0&quot;`:0\xD8
+\xEC\x8C\x94\xB3,\xD6\x81\xF3\xBA\xC7-e\x84\xB7\x8DuG\xC06\xEA\xAC{\xE1\x8Dź\xDAU\xE7\xEAj\xF7\xB5\xFE(\x9F6#\xCA=WG\xC3J\xA3aW\x8D\x8B\x9A\xAF\xAC\x8A\xF2\xCB \xA2&lt;-\xAF8(x|Rq_e\xBA\x94N\xC7N\xA0\x8C\xBFH)\x8C\xE1 \xE5Ai8\xA9\x97\x8C1\x8B[J\xEB\xCEu\xEF:(\xE1\xF6(q\x89\xE1Fa\xD3\xFA$NJ-\xAE\x8C\xE7?Gid\xE3_\xF2\xB3Q?۝\x9CZ\xBC\xAB\xF2W\xFC \xED?\x83\xF21\xFF\x98\xD6\xF0\xD3XN h\xB0 8\xCEF~\xE5\xCAI~\x92R\xF8GTT\xF3\x80]\xC0A\xE0`\xE2\x81Z\xF8\x87bst*\xE4
+\x80\xF3A-\xFCL\xEB\xD0\xFE&gt;\xA4\xF7\xF9\xFBڛᒉŽ\xBA\xE0*\x8A        \xB6\xBC\x98\x90\x91\xD2ҋ#\xFC\x8D\xF0\x85Ѷ\xFF\xA4[q\xD9\xAC\xC3\xDF&quot;\xC0
+\xD4(@:#\xA4\x90NP\xB8xP#\xEA\x9C@\x9D\xA8sx8Ac7P\x98\xF9\xF10\xBA\x89\xF0cag\x95\xAD2\x9F\xDF\xC5U\xD8Ə\xF0Wt\xFE:Y\xE7\xAF\xF1\x97t\xFE*x\xF8a\xFEr8\xC7F\x95        \xF0\xEAX\xC0-\xE0E\xF0\xF8\xF3ݹi6\xAD2\x95\xC4\xF2\xD8@\x8B\x80
+`:0\xD8
+\xF9A&gt;*\xDCjKC#\xFB\xE90\xDE$\xD3:\x8C6\x93{\xA1\xCD\xED\xACF\x8E)\x828K                d\x97\xB2\xCB\xC9\xDD\xCE\xED;\xA0
+\xE2ܲ
+\x92 \xCE;6A\xC4y\xEBZH\x828o\Ig\xEBBH\x828\xE7̃$\x88sz$\x90\xE0/\xB9\x97\xDBJ\xA6\xDF\xC0\x94\xCA\xBE\xAB\xB4\xAB\xB4\xAB\xB4\x9Cd\xDC\xEEP\xE8\x82,\xC6v_8?+\xB6\xD3\xED\x9Do \xEEc\xC1,8\x93f\xC16\͂kYp ^ǂ.\xB4\xB2` \xBAYp?\x9B\x80\xA52w\xCFu\xA2;\x93\xB3\xE0\xD3,\xD8ɂN\xCCc\xC1\TX\x89;\xC2\xED\xE1\xAB\xC7\xEA̫\xB3\xEEJ\xF1^\x81\xFF\xB2\xBC8c\xB4cE\xEDHk;^\xFB\x83\xA0\xC7M\xD7\xDCRFE\x83G\xE4&gt;\xAA;\xBF&quot;\xAA_YZ\xBC\xB8r
+?\x84\x8A\x87\xB0
+\x87\xE8 c\x83!\x8D\xA1\x91Ch \xB4\x98\xF4\xE7
+0&quot;z\xBEU\xA7)\xA0E@0X\x9C\x8C\xFAp\xCE\x9Cdž\xB8GXQl\xD0Ӆ\xC6\xA1\x88볝\xDB\xDD#-V\x8B\xCB2E\xDAje)9lz\x8E\x96\xC3K(=\xC7_Z\xAA95’\xF6~\x97\xF4\xCF\xEF\x92(\xAE2\x8Eo\xE1[i$6\xE2\xEE\xDF\xBE0\xD2a\xF7\x86\x9D\xFBm\x95\xC3\xD9(GFֱ\x89\xE4dy\xE0\xA8S\xD7Ǔ\xD5,\xF88\xB2\xF2\xA7\xC0\x8B\xC3\xD6٨\x96v\xD8\xF6\xB1dQk\xAF\xED\x82\xF5S\xDB\xD6\x87\xF8\xB9u\xBF\xED%&quot;\xB3\xB0\xEDmX\x9E\xDAk{\xCBz\x97\xEDբ\x88\x96\xCEۧ衽\xD6        \xB6\xA7\xEB\xA1k\xE1\xD8\xB6\xADl\xAF\xED6\xEBd\xDB
+V\xDD\xD1u\\xD7        ͝b\x9B\xE9\x9Cc\x9B\x82\xF6&lt;\xD6f\x9B\xBBm\xEE\xB5UX\xAF\xB3M\x8AF\x8Du\xF6\xDA\xC6`\xAE\xA8\x98\x8F\xC1\x8E\xB6\xEA\x9D:r\xF4g\x95DX\xBB\xBB\xC0\xB4\xDD\xE43M\xC7]\xBB\xD8T`\xB2\x9Bl\xA6\x91\xA6l\xD30s\x9A\xD9bN6'\x9A\xE3\xCDf\xB3\xD1,\x9B\xB9\x99\xCC\xC3&quot;\xDAi\xB7K\xFC\xF6 3\xEA?AFYPY\x97-\\xD0\xD8?\xE283s\\xC8\xD4ˤZ^[_\xC5jվ\xAAmV\xD4o\xEB\x8F\xEF\x83\xA3\x8A\xA9i\xB5T\xDBP\xA5Np\xD5FL\xDAL\xB5\xC4U\xAB\x9A\xEA~\xED\xEBbl\x8BV\x95o\xC0\xEFp\x83/\xC24aZ\x97-\xBE\xFC{\x89\xB1\xD4u\x9B\xB3\xBFb\xDDf\xBF\x9F2ӗUdV\xA4\x95\xA7N\xAC\xF1\xFC         Ĩ\xEB\xE2\x939D\xA9n\xAF\xAD\xF7\xA9O\x8E\xF4\xAB\xC5B\xD0F\xFAk\xD5W\x83^\xF65;\xEF\xF5\xF4\xB2\xAF\xF3\xFBz\xA5r\xF6\xB5w\xA6\xB0K\xE5\xBF\xBF6\xC2f\xEBq\xA4\xB0\xAF\x87\x8C\xF9J\x8F3\xE7\x90&quot;\xE2H1\xE7D\xE3vF\xE3\xF2Pq\xB9\x82!..\x8E\xF2\x{138F38}8=Nf&quot;\xAE\xAB3\xD7\xEB\xE9\xCA\xCD\xD5c2\xEA\xD4c:3\x94Kc\xE7!&amp;/O\x8FI\xD2a=\xE6pzPĨ\xE5z\x88Պ\x90\xAB²Ȫ\x87XY\x962\xFBbHQ,\xE4\xAE\xC1\x90\xBB\xF4\x9E$v1\xC6\x8DI:=\x93t1\xAE\xF5i\xABr\xB9Xw\x99\xBF\xA5Q\\xABoP7.k\xCFT\x83͊\xD2\xD5\xE2\x8Fݷ\x9C\x81\xE6\x96v\xC1\x9B\xDAT\xBF\xA3ͣ\xB68&lt;JWY\xE3ϸ\x85\xBB\xCC\xE1\xE9\xA2Fo\x83\xAF\xAB\xD1\xDD\xE6        \x97\xB9˼\x8E&amp;\x8F\xBF{rݸ\x92!}\xDD5\xD8׸\xBA\x9Fi\xACN46N\xF45\xB9\xE4g\xDC%\xC2=Y\xF4U&quot;\xFA*}MvO\xD6\xFB&quot;=\xC7\xEB|]f\xAA\xF2\xE3+^\xE7\xDD&lt;!\xF9ȶ\xFB\xAB\xD2-\xE5z\xF2\x96\xD93Wg\xEF\xC3\xC9nJ\xC0\xA5&amp;\xE4$@\xB8
++ +\x85 \xEF\x94p%\x8B\xBBs̕\xB9\xBA̞\xBD\x8F펹,0\xA7:\xAAȵdi\xE7R\xCA\xF4.\xF0D\xFF:\xF1\xC0\xB4d\xA9X\xF0(uu\xFE_|^\\x83=\x9DK\x88j\xD5\xFC\xFAZ\xB5߫]&amp;\xAC1%\xB5t\xC0\x96\x90\xE0\xC5\xD7{\xD4x%\x8C\xA5\xC2(I\x83\x81\xC26I\xD8\xE2\xE2b\x81\xFF{\xFF\x97\xC6x\xB5x \x82|7s\xE7\xB0%\xD4\xE9\x97Ԝ\xDA\x8E\xA3\xA0!vIه\xCF%\xF1\xF3\xD0\xE9\xC7;\x99\x8Bu\xB4\xA1\x9B\xA22\x89\xF9`\xC9Ҙ[\x87%1\xAD\x85*\x9D\xCB1\xF8\x88U\xA2\xFF\xE9\xCC\xC9
+endstream
+endobj
+176 0 obj
+   4288
+endobj
+177 0 obj
+&lt;&lt; /Length 178 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x90\xC1\x8A\xC3 \x86\xEF&gt;\xC5\xDBC\xD1\xE4K\xF7\x92C\xBBK\xB3}\xA3cVhF\x99\x98C\xDE~\x8D
+-\xEC\x80\xC2\xCC\xFF\xF2;\xF2\xDC}v\xE4\xC8o\xA6\xC7Γe\x9C\xC3\xC2a\xC0ѓ\xA8j\xB0ޤ\xBD+\xB7\x99t2\xC3\xFD:'\x9C:rA4
+\xC8[\xE7\xC4+&gt;l\xF0(@~\xB1E\xF64\xC2\xE1~~\x89\xF1\x81R%\xDA,\xBA\xFC\xDCEǫ\x9Ed\x81O\x9DͺO\xEB)co\xC7\xCF\xEA\xD2W\xCFH&amp;X\x9C\xA36ȚF\x8D\xCA\xD5B\xE3r\xB5\xC9\xFE\xD3wjp\xE6WsqW٭T\xAD\x8A{\x9Fo\xDC\xF6\xC9W(\xB30\xE7&lt;e%\xC8\xC1\xBE\x96Cܨr\xFE4`pa
+endstream
+endobj
+178 0 obj
+   225
+endobj
+179 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Arial
+   /Flags 4
+   /FontBBox [ -664 -324 2000 1005 ]
+   /ItalicAngle 0
+   /Ascent 905
+   /Descent -211
+   /CapHeight 1005
+   /StemV 80
+   /StemH 80
+   /FontFile2 175 0 R
+&gt;&gt;
+endobj
+180 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Arial
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 179 0 R
+   /W [0 [ 750 277 ]]
+&gt;&gt;
+endobj
+28 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Arial
+   /Encoding /Identity-H
+   /DescendantFonts [ 180 0 R]
+   /ToUnicode 177 0 R
+&gt;&gt;
+endobj
+181 0 obj
+&lt;&lt; /Length 182 0 R
+   /Filter /FlateDecode
+   /Length1 18860
+&gt;&gt;
+stream
+x\x9C\xAD|        |Tս\xFF9\xE7.s\xEF\x9D\xE5Ξd\xB2\xCCL&amp;\xFB$LHfB\xE6\xC8&amp;,        $8$\x81 @\xC2*[\xAA\xB2\xAA\x88\xFB\x8Ek\xB5\xDA\xD71hZQ,\xA2V+j\xB5j\xB5\xAET\xADA\x9ERj!3y\xE7\x9C{'\xB1\xAF\xFD\xBF\xCF\xC8\xDC9\xF7\xDC\xED\x9C\xDF\xF9-\xDF\xDFr \x81-\x80\x9E\xCB;{\x98[N\xCF@\xF9\xEEݷ`\xDD\xCF\xD4&amp;&quot;&amp;^
+\xBC\xFD\xB2\x9EE\xCBK\xA7\xCF\xA0\xEA4\xDE?\xB3hن\xCBN\x95\xFF&gt;\xF7\xBF-^\xD8\xD9\xF5\xFB/\xEF\xB8\x80\xEA\xAFq_\xC9b\xDCa+\xE7\xAF\xA0&amp;\xEFg,^\xBEf}£\xEE[\xF0~-\xDE\xFFbي\x9D\xEF,=\xFA[&amp;\xE2\xFDu\xCB;\xD7\xF7\xA0'\x99O\xF0&gt;y\xBE\xA7g\xD5ž
+ \xFF4\x8C\xF7\x8F\x80&gt;\x88 Vx\x80G\xAB\xF6\xA7x\xC4\xF2
+\xBC\xFA\xC1\xABt3\xB6\xD0k\xF1Z2\xF1\xE2\xB3\xCEn\xE1\xC09\xF2 p\x83|X=\xFC1\xF7w
+$\xF8\xAD\x92\xCE\x96\xD7\xF4\xD6\x90\xC0'\x92\xAC\xB3\xE1ln\xA6\xAE]?\xC78\xC7\xD2n\x9B\x99`v\xF4\x9FR\xCDf\xD4,\x9A\xC9v\x9D\xB8\xC1\x81\x92\x83\xE4
+\x8ARb\xFF\xF0\xD0A\x83\x81oNt0\xB8y@\xAFG͸q\xE2\x80(\xD2\xC6' \xDA8\xA5\x8DF\xDCZ\x9D)gB9ӝ\xCEd\xD2Xre\x9AC\xB6\x92\xCBd'\xB9F\xE6\xC92=&quot;/\xCE0\x9F\xF1\xE3Ϡ?\x89\xB7@x0&lt;\xF1\xFB\xC7\xC2tZv\xA4\xE3y_zFv
+\xAD\xA5%\xC5EN\x9B\xF8ҁ\xC5 \x8A\x8B\x976\xB7sA\xEB\xA5\xE7\xEE\xBF'6\xDC\xD6\xD6\xD9q\xE9\xC8\xDDy\xDF\xF0\x94\xD8\xD0ǟƢP\xF8\xF0C\xA8㲺b\xF6\xF7\xC7&gt;\xE8\x\xD9\xE2 \xA0\xE7\xD0A\xE8]4\xF1\x92h'L\x87\xE5\xB1\xDF\xC5&gt;\x8C\xBD{        \x96\xE2%՘\xF4V&gt;
+$\x82\x95E.E\x96Q\xB3K!s\xECe\xF6\xB5v\xBDi\x82`\xE1\x8C\x89\xB2h\x82\xDE@&amp;\xA87\x90        \xEAyQ\xE4io\xA1ш\xB7.\xD9L\x8A\xD1\jr2\x9B&lt;\xE4\xCE&amp;z\x8D\xA9\xF8\x8C\xA2'יƐ'\xE1\xFD\x93\x8A^\x96\xF9f\x93\x95\xDC\xEF\x9FS\x8C\xE4^&amp;\xB9\x97ig\x92J.\xF5STTUkY \xE1pq\xB4(-
+&quot;\xFA\xFDЗ\x95\xE5K\xE7\xAF\xC3k\xF1Y|\xA1\xE2P\xB0\x931\x81\xB1J
+\xCB\xE1\xCC\xD8\xFE\x81\xDEޣτ\xE6q\xF3D\xDB\xD2k\xB3\xF6Md\x9Eݛ\xF9\xE2
+\xE6\xA9\xC71a\xAE\xE2ާ&lt;\xF9\xA0b\x83\xD5H\xD1K\xC3s\x9C\xD0+B\xF1F\x80\x99C\xC9'3,\x9DK\xE9\xC0R:\xB0\x94\xAC &quot;2g\xD8\xD1\xCBA\xAE\xF8\xC3\x84\xB8\xF1\x99+n\xD1\xEB\xF0\xFE\xC9\x84\xB8q\x86rG\x8F\xDC7\x86)3r;\x84\x91\xF9G&gt;\xF3\xD3\xC9\xE6?A&amp;\xF6\xE2IC&lt;G\xC6g)\x86W\xBD\xF5\x96a`\x80K&lt;r6\x93\x8D\xF9\x80`\xC9\xF0_\x99\xEF\xD8+\x80&lt;\xA9L\x95}\x8D&gt;\xE4\x87\xE9\xA6&lt;gF\xE2x2\x8Dw\x86\xEB`\xA3TmjtNLl\x85ͦ%p\xA1i#\m\xB2\x99\xCD\xF6\xB0\x81\xF5z]aF\x94}
+\xBCO\xA1S\xA6SdFd\x98\xA4\xA1\x8C!\xEB\xAE\xF3%P~OH2'Q {\xA2\x81ȃH\xE5A\xA4\xFB\x87\xBF?H\xAE\xB7\xA6\xC7g6\xE8\xD7ZX$\x8A\xE4;\xB60#\x99D\xB2\xB2\xB3\xB2B\x84\xFF\x9D        mu\xED\xCE⢒Ғ\x92\xD2b\xE6\xBBy\x8F\xB6ox\xB9\xB6\xAE        \xFC\xA3\xE3\xD04\xA9\xE5\xA9\xD9\xF7z\xF2\xA1\xB2u\x81\xDCZ\x874\xB9\xA0hJm\xED\x9Fo\x82V8\xAE$\xFB\xF8\xA4\xDAw^\xF9ݴDG\xC0B\xF5G\xF7\xF0        \xB6\x83݌\xF9\xDF
+\x8E)\xD9Y\xAC\xDFXȖ+\xD2&amp;\xB1
+Ɔ\xB46c\x93\xB3\xDBؑ\xB0޸1\xCD+\xDCn9\xA5\xD2\xC1\xEA\xFB\x87\xBFP\x92(\xB7\xEBuaY4\xBC
+\x99\x9E\x97(\x89𷑶\\xC0\xA3\xEB\xB4RMit\xBDW\xF6\xBA\xBDa/㆔\x8EP&quot;\xB7\x81\xC9\xD6DB%\xAB\x99\xDC\xC6J\xE9fe        
+\xAD\xF4\xB8\x91\x8B\xAD[=qra&amp;(\x8A\x98O\xBA\xF9\xFD\xC5J3x \xC4 !\x9B\xD7\xEELpR
+;0=\xAA\xF6\xB0:\xB2)\xF1tl\xC7\xD0KJ\x82׷\xAC\xFA\xEBX\xA9\xFD\xE8\xF2\xD8W\xB1c\xD0\xFA\x93\xBF?o\xBA\xF5\xB6\xFD\x94\xBC莱\x85\x85s\xF3_\xCD)\x81ЁiW\xFB\xFE\xBB\xBC\x9B\xD8w5\xE6)\xAC\xBB\xB9q\xDCq B\xBF\xA2tn]PW\xA3\x9B\xAE\xEBԭ\xD4\xE9\xD6\xF1P\x86\x88wC\xE4\xAB\xF9\x99\xFCR\xD8\xC1\xF7\xC2\xAC\x95!ˣ6\xD8\xCC#\xA4\x83\xCF@V\xE0!\xD2a^\xA0\xEA7NS\xC0\x8D\xB3\x94\xEFu6B7*6\xB4A\x84\x9F(5D~\x80@\xAEVJ\xDF,B*`\xA0\xA6\xEB\xF5\xB2^\xD1#D\xCFB\x94Ԉ'G\x90\x8D\xA5\x8A\x9F\x8D+x\xDCxOI\x96\x9E\xCC\x91\xA4\xD2\xDC?\xFC\x95M\xDC\xF8\xF6\xB979D\x87\xC6.\x93Ϋ$\xB2\x91\xF3\xBBD&gt;-ee \\xAE\xB0\x96\x95a\xF9\\xB52\xAFbu䅖bn\xDCߣ\xC1bt\xF5!.x\xF6\xF7\xDC\xF1s
+{\x98\xF2\xE2\xC7\xECJ̋zl\xCD\xCE*\xAErS\xD0\xB4\x97;L\xD5\xE6j{\x83S\x90\xC3&quot;\xEB3\x92!N3C\x9Cf\xB8\xF1\xAD\xAA2
+\xC9I\x8A\xC6rCq\x8Aa\x8DC\x89\x98\xA8x\xEFQ\xB6\x80\xCCS\x93`\xA2zh\xE3\xACRI\x89\xB8'INr'\x85\x93V$\xB1V\x96\xF2$%\xA1\x95\xAA6k2\xEF$\xB7\xE6\xC9\x9Er+O\xB9\x95\xEF\x8E)I\xE4ܚ\xA7\x96\x8F\xC3ۭ\x89\xFF\x92fd\x97\x9ABjG\xD9;&amp;x^\xDAٕ\xB1/\xFE6\xFB&amp; \xFE
+&amp;&gt;\xFF\xD8mw&lt;\xFA\xD8\xED\xB7\xFE\x8D\x89}{V@ \xFEW;\xFB\xE6\xDD7\xDF|\xF7\x8Dwߡ\xFA\xEF\xF2\xE1ϙw\xD8\xF5\xA0\xCETf\xF3HLv\xA0\xA4\xE4,1/\xA3H\xACȨ\xA7f\xCC\xE3&quot;Ιޖ\xC0\xAC\xA2\xDC2g\x87\xA7+\xB0\xB0Ⱦ\x91뵬\xF1l\xC8Y\xE3\xDFw\xB7\xBA\xB6\xE7\xDC \xEFL\xD6Sb.\x9B\xC6lI\x87\xE9
+!@zzք43\xECa\x85*9\x9DN?\x81\xBD&amp;BG?\xA1M.\xA5Z.\xA5Znr\x88\xAEL&quot;\x95\xF1D\x89\xB6B% ;\xCE&lt;Ia\x87)\xBE\xA0\xA4Al$\xB6~\xC9\xC0\x9B\xA8\x84\xB5\xE5\xFCjD$=\x95\xBB\xB6\xAE#\xCB\xF9}|9\xBFW\xB2\xE9r\xEE\xC9!w(j\xF5\x868]&lt;\x9D\x93\x9C\xACsQI\xDB4\x9F\xA0+rB[\xCC\xC0f\xBC(\x81\x91\xD5Q1x\xB1Xʨv\x86v\xAA\x9DC\xC5Tل\x82\xD9DSe$\xBA\xF9}\x9D@4\xD90\xEFD\xDF\xDF\xFC\x87\xC9R\xEB{]\x9B\xAF\xCD\xCAZ\x96\xF3\xB3\xD0M\x9B\xCAƏ\xFB\xD5ҮW\xAB\xA5\xDA\xD7,\xDA\xEDϛ\xFC\x99\xFF\xAA)S`\xD5/\x94\xFBޜ\xD4\xD8\xD4R\x95\x9E\x9E(&amp;\x9A\xB2o\xBB\xBCfca\xA0t\xAC\xEF\xA5P]\xE3%5&gt;\x9FӐ(\xA5\xD5\xD5㵾)\xB6\x85a*\xB6\xDB!%\xCB\xF3\xA0\x85@\xAA\xB5\x98&lt;\xAD\xA8 \xAC\xBFc 1-,\x865ȅ
+D\xB0\xF24\x9FV\xB1\x83}6\x8E\x9D\xB8\xF1\xD705\xBA]\x8F\xF9:\xF1\x99\xDC\xDB@;\x947\x99\xE7
+\x8C\x89\xA9\x85\x82lq[\x87\xDC2\x94e\x83\x89.\xB3I\xC3,(̬`z\x861\x90ubF,&gt;\xE3\xD4`\xE4i%\x95&quot;\xCB4\x8A&amp;y\x8A$\xCDd\x9D3\xB9\x88\x8BE\xA4\x93\xBE\xAC(        ck\x8FAN1Q\xEF^o\xE3\xE1\x90f\xFE,^\xB6b\xE8=X{9\xBC'sL\x88\xBD \xDEΜ\xD8\xE1\xB0'M\x9Bx\xF6y*\xCF`\xBD\xB2\xEB\xEB&lt;p\x9BR)        .\xC1/T
+!K\xA5\xB3A\xA8\xB6\xB4        \xB3r\xBB\x85\x8D\x82!5\xD5UG\xA0\xAC\x92\xC9dz\xEB3\xF94$Kn        I\x92\xA9\x9E\x97&lt;\xE9\x9E\xC6T\x98\xDA?\xFC\xB52\x86\x8C=\xD5Iƞj&quot;cO\xA5\xA3N\xB5{\x81'U\xF4\xB87_\xCEw\xE7#\xF1.\xBF\xF9\xE1*\xCAOt^\x91A\x95\x95&quot;ak\xD9` Ba\xE1#?\x9A\x95\xF0\xD4B\xC1,\xCD\Y\x92S\xD9\xC9\xE9d\xB7N\xAD\xAA}񪍟\b\x9A\xF1\xE7\xEE)[\x83\xF9\xA1@\xF0\x96K\xE7&lt;X\xCEl\x89N\xF4\xB7y7\x9C\xDA4\xBE\xBB\xF8\xB7'7g\xBC\xAC\xCB)\xF2\xAFo\x9C\xD6\xED\xC9r'\xD0\xF0\xE3\xB15,\x9B,\xFD5\xB5\xFF\xCB0m&amp;\xF1v`\x88\x94\xCC
+Wa\xCA8O\xA3\xAB*\xA5\xD63\x87_\xCC\xF7\x98E+D.q\xA2\x89\x85BZ'Y\xEC\x88)5+qi%
+U\xFD&quot;W:\xC5\xD0D\xA7*&gt;*\xA7[3\x{D958}\xE4QI\xD4f\xEC[@ձLeV\xA6\xF2zc\xBA;=\x9C\x8E\x92)_%S\xFA&amp;' &quot;D\xC5\xFA\xC9\xDDz7\x81\xAA\x81\x9E)P%,Pu#\xE4N\xC2V\xEFZ62IG)\x9A&amp;z\x97 \x87\xB20^\xAF/D\xD6YF\xD8R\xCCXFA.v\xD2\xC0\xF4\xBEE\xC7\xFE6\xBD\xA6\xFA\xC9\xCE9;\xA6\xAE\x9F\xB2\xB7oǭM\xAD\x9D|         B\xCB\xEE/\x99ڔ\x99
+?;;\x8C~\x96\xEE\xFA\xF3\xCB/\xFEa
+\xC1\xA2 \xC5
+~̇\x90\x81\xF5\xB1Q\xB1r\x87!\xDBЌZ\xBDI\xBCՒL#\xAA\xD4N&amp;\x97\x96\xA6K
+LAP'8\xD6|\x99j;\xEAXQD%\x83\x97Bf+g\x91y\x92^\xBC\x95u\x99`\xD0\xD4\xE3\x89\xDAJ|q@S\x90\xDF\xD0h\xFE5\xE7\xE4\x90\xE2\xA4d_\x89\xA4Bi\xF9v\x9D\x89\\xAE\x8B\x9BO\xDD:\xD0        L9\x87)*:\xC0\x8D\xFF\xA6\xB7#
+\xB8, \x8E\x82E#4'\xF0\x8C60\xE7SkG\xF6)D\x88Kl\xCA\xE5\xBC\xEBp:\xA1*6P\x91\xB0\xA9\xBB^m\x97\xF3Ϛ2륻\xA2\xA7\xE0\xA1\xA8\x9FQ\xBF\xAC\xED\xB6_\xC7\xF6g\xE4\xB6-\xF8\x82\xC8\xE5\x81@voɔ\xF3\xB1\xB3\xC7_\xF9ph\\xBE\xBC\xE2\xB1\xD2*\x8C\xDD\xB3\xFC\xDB\xE7u\xDFR \xB8_AlI}B\xB216Ö\x96\xD6\xBD\xB3\xAD;3I\x8E\xBE\x9D\x9C\x91\xDDEtǶ\xE1\xCF9\xC4}
+\xB1        +\x88\xE3\xB21dYn$\xADDJ\xB6\xBAuҭ\x83\xAE\x83]&quot;[\xBDȸ\x81/Y\xB0\xBBs\x85\x9C\xC4 wF\xA0L(1\x8F\xB3\x85\xDC%y\xF5B\x8D\xB9\xCEV\xE3\xAEϮΛ\x83\xB9\xBD\xD9\xDD\\xB04\xE9\xB2\xE4\x85\xEE\xCB\xFC\x81M\xCEw\x8FgMޚ\x82mV\x9F\xA8\x98̥\xD9\xF0X\9l*\xEF\xF5fS\x89\x92
+\xF2\x927\xC7\xE1\xA2:\xD6E&lt;tY\x97\xC5\xBC.ĝx@\x8EȔ\xD6\xC9E=EH\xEC\xAB\xAA\xA8\xA5)(\xF2%\x86nҬ9\x8Ac\x8Eev\xCEbˢ\x9C
+\x96u9;-\xDBrn\xB3ܑ#EZ\xC7b\x91\x8A\xAFt\\x89e%\xC6R{8b\xB1\xCF[\x98\xA1
+5\x85NM\xAFk\xFA\xE3\xAD\xF7dž\xB7\x9AVœ+\xFB_\xED\\xD0\xF0\xF8\xFC\xA3\xCFŠ\xEF\xEE\x81\xFCBSs\xECo7\xDC\xFB\\xC7\xE5\xEB\xFF&gt;:\xFB\xB1r\xA5\xB6\xA2\xFC\xFBy\x97\xEDZ\xBD`\x9E\xCB\xEE\xB2\xE7\xBD\xF2\xE03\xDFT\xE4U\xDB~\xF5\xE2Hw\x8A)Ǒ\xBFO\x8D\x8BY\xBB˚\xFB5甙L\xC5@~&lt;,K\xAD\x91k\x{DD69}m\xB0En\xB5\xAF\x80KP\x87\xB4P\xFFS\xB8VoAp?&gt;۬s
+\x90-߬ \x88\x97\xD41\x90\x88\xEB\xA2x\x8BC6B#A\xA9\x84\xA6\xC6BO#E\xDF\xC6D&quot;F\xA3كyK\x88⤂\x96ĈԲ\xD9g\xD2\xDC`U\xBC\xB8\xF1\xE2\x84Xs\x83\xBF\x8A;ƪTq\xCBF\xBCQ{\xFF\xFEHY\x99fR&quot;mq\x8AP)\xC3\xB5ݼ1\x9AxF\xBC^H\xA2\xE7\xA5\xCA)\xD5\xCAp\xB7džc\xA6ؗG\xE1\xFD\xDB\xD4N\x9F\xFB\xC0\xEE΂\xA0]ӗ\xC7\xE6];\xB6\xC0\x8F\x9A\xA2}\xDCq_A\xF1]W\xDC\xFFn)|PY\x90\x9E\x9A}\xCD[\x90\xB7\\xF5\xAF        \x9D\xCF`:`\x9D2\xB7E\x82\xE3\xD08\xAEDZ\x81:\x98\\x87ԋz\x98^\xAEG\xD27\x8B-R\x9B\x9E\xE9b\xD60kE\x86\x93#bF,\xF5\xABY\xEA&lt;\xB2\x94\xEA\x805\xB3\xD5\xEC,tXj \xD6:\x92\x9E\xE1\x81\x94FB'di#\xF8o\xB5-\xAA\xE7\xA8V\xBDU&quot;\xA5\xBDA\xF5\x87L\xB2\xC9mj21Z܁\xDA \x8E\xC2sΦ3\xFF\xBF뼯\xE2:臘\xF3\x8C\xFF \xBA\xB7$\xC4\xFD!\xB2B~,R\x82l7\x8B&quot;\xAD\xB8\xB9\xAF\x8B\x85\x91V
+)ad\x88\xAC\xF2\xFA,Ps\x96\xA0\x97;s46]l\xE1!h\x82\xD7\xC1-\xD0\xC61C\xB71K\xCEF\xB9\xE3CG\x98J\xB2O`&gt;\x9B\x8D'LV\xECz&gt;I\xB7Q\xC7 \xCE!rl\xAF\xA1\xF0\xE3\xFB ˤ\xE7\xA0j\xB8\xA9)NUM\xF6(3\x9Di\x86㫸\xEBtF)\xA6`\x9BZ}`R\xADv\xA2;\xB1#]FE\xC6\        !\x92'\xE0\xC6        \x95š\x8FG\x84\xB8\x91\xFFV\x83b\xBD٧\xA87\xFEN\x83'\xC2\xF6\x84Q\xC6|\xD0!\xCD\xD506\xEE\xD8\xCET\x89\x88\x9B\x{1AC425}\xD82\xB0\xB3\xB3\xDA\xBD\xA4\xEF\x85\xB3+\xB9eFݯ674\xBD\xF3:\xFAc\xF4\xEA\xE6
+\xFE\xFC\x9C\xA9\xE5L\xA6\xF1!l\xC0Wa[\xC1\x80bF\xB3\xD1cd \xA2\x8C\xD1\xF1$I\xE6Da\xB4\xBD=\xA5\xE4Pr\xBBb\xEF\xB1#\x83\x8E\xCEQG        \xA2\xA3 %\x88\xCE%\xC6\xE3b\xE2J\xE9\xC9b\x9C &quot;Y \x8D&amp;ej\x88R&lt;\x82D\xA9\x81\xFFTCI;lM&gt;b\xC1\xCE
+\xF6+\xC3eZ(\xB4\xE0\xA03W\xB1C8\xCC*)\xAF\xB1d\xF6\xCA\xF4\xFC\xB2ul~&gt;\xB3G\xA7U\xFD\x95\x8D\xFC\xBC\xAD\x81өr\xFE\xE6\xB1\xCD\xDC)P        \xFA\x95\xDDz=p\xE9\x81\}V \xB7\xA2B\xB2\x8FM\xEA\xF55\xF6I\xE9\x93-\xB0\x95k\xD57\xBA\xF5\x97\xBA+\xD6\xEB\xD7ք6U\xB8\x82\xE3\xABǣ\xF2\xF1iunX`)@\xB9\xF5nq,\x92\x8Dn#\xE6.K\xBD(\xF9\xBC\xA5\x94F\xA5ƕ\xD2pEi\xDA\xA7\x97\x936\xBE\x9450.\xEA0P\xDA1\xF7\x85\xE5\xB0;\x8C wN\x88\x9B\xAFb\xBED#\x9EG\xD8\xF8'-+\x8B\x90\xB9\xAB
+\xF0_\xE0l_h\xC4b\xF9Bq\xC0\xADA\xD6T8\xA1~R\xC3+6\x9F\x9A&amp;7\x9FXޝ?\xA6\xA0\xB8\xA0`K}\xDB\xE4۟\x93\xEB\x9F?\xA1\xFD\xEDvi\xCA\xE0\x8A\xE5O\xAA\xAD\xFC\x8A\xC2\xCD\xE8U\xFF\x95\x8B.{,&lt;yR\xB9\xEF\xF8\xB8\xFA\xBC\xDC\xFC\xEE\xE9MK\xD2\xDC        \xF7n,\x99\xEEr٫'\xF7\x95\xE7\xE4\xF9P\xA2I(\xC6t\x8EbbM}8\xCFA\xD4P        J\x93k`&quot;\x885\x99\xF6\x83H\xC8\xF3\xEBo\xBE\xC1g#\xB0\xAF\xCF\xF5\xDC7@|`\xBB\x92^\xCB\xF4AC\xB9\xB5&lt;1\x98V\xEB\xF4ՆkCbu\x9A\xC1Q'&quot;o#ɪ\xE0c\xFC\xE8%g\xDD\xD3J2U\xA9j\xA8do&amp;q\x88\xE20\xDC\xCBֶ\x913y\xAAly\xEA\xF4\xF3\xB7\xABq\xFDAM\xFC㑌4#\xAFY\xCCV\xAF\xC7
+G;4\xBC\x86\x9E\xBE\xFE\\xEC\xFB\xD8\xE9\x9C\x85&quot;4\xFC#\xF6O_RR\x86oC\xFB\xBCM\xE9I\xCE y\x9Bї\xB1\xB1\x9Dp3܅\xE0\xA6X\xEFГ\xD3߿\xF3\xF6\x8F.\x99v\xC9%\x8D\xF5'w\xDF\xFD\xC6\xCCKf\Bxt'6\xFCĶH*&gt;\x91-\xE2\x89)\x82\x82q\xB9$\xE8\xDB$;\xB6&quot;m\x9AOj\xD02\xD2y3k\xBEi,\x9E\xE28y\x90\xFA\xA5\xCB
+q\xB1:]d\x8E\xE2\xEF        \xEA\x88F\x8B\xB0\xB2Ǝh\xB1\xC5\xF2:\xF0B`}q\xE0\xC84\xF5ȑ\xDB\xD9\xFBo\xBF\xFD\\xBBj\xD9ux&lt;X{1l
+qۨ\xCA:YY;\xA4x\xC6M1=\x90\xAA_7=0nzp\xE3KjzHU\xDDp?\xCA\xD6P\xA1'+@e q\x8F\xD7
+\xCD8\x8A\xBE\xE0\x8E\x9F\xFD ӫ\xD8^\xAF\xA54\xFA\xA7қ$\xB6\xC0K\xB19s\xC4qb\xBD\xB8X\xDC%\xFEI\xD4\xC9P\xD3`ʃ~\xB1 \x96\x89!}\xACk\xF4\x97…\xFAU`\x83`F\x88\xD9\x8FA\x98\xF4\xD8J\xECGz\x89\x91\xAEƖq\xC5Iz\xC4H\x92l\xF4\x80B\xA0\xB6\x89\x84\xA1\x8C\x8A
+ \x9Dc\xFF\xBF\x80 5I2\x8C9'#!\x91с\xC7\xC8v\xF3\xE1\xC3\xB1\x87)\x8A$
+\xAD\\x851U\x80X \xB9\xB5\xB1\xE1\xE8\xFE\x9B\x8FEo\x9E\x8A.B\xB7\xED\x8D\xE9\xB0a\xFD#F\xAB\xA9޻\xAF\xE1
+X\xEFy\xC0\xC7\xCA\xF4&amp;w\x87q oq2K\x86\xA5\x9Cg \x99©\xE1\xB42wWk\xAC15\xA66b\xFD\xD6\xCED\xD87Wl\xB1\xB4'\xCDK\x8E\xA4\xB4\xA7\xB6\xA7u3]\xFCB\xCB|NJ\xB4\xB4\xC6\xD2\xEB\xEAM\xE9M\xCBdTߌ\x9A\xE1/\x94\xB0\xEA\x9B\xE5!\x90R(+2/Ӏ\xDEO\xD6\xD7\xDBr\xD7C\xC1\x8D\xAF\x93\x82'5N\x96P\xD1I\xA47\x89\\xE0\xA4&gt;\x9D\xD3\xE9ٛ.cGab߁\xDD\xE0\xA2@\x84l\xE2\xAE\xE5c\xCE\xF2G(\x8C'X+=U#\x9EW\x81\xAC\xAA3ɟ\x97\xBDaȼ\xE4͹\x87w߱s\xEE[ \x89\xAE\xFB\xB2\xFE\xBC\xEC%
+K?[\xC0x\x8F\xB7h}\xFA\xFD\xDE5W)Uo\xF8\xC6\xF0\x9B曪&amp;\xAC\xAF[\xF2\xBBYX?\x8Au\xB1{\xD8\xCD4ΐ\xAEd\xA12G\x91g\xAAsTyZ\xAC\x8B\xAC?6\xA7H&amp;\x91O\xA8\xB2\xB0.M\xE1E\xBD\xC1G+\xB8q\x86.\xBA=\x99\xEA*-\xF8z&lt;xJe-&gt;\xCAͽ8\xBE{F\xC9U\xE3\xBBj\x80\xC1\x94\xAC\x99[\x83\x9A\xA9\xA1\xB6\x95\xDA\xD1e\x88\xDBf\x89\xB9\xD3' Z\xD4\xF9L&lt;\xEA\xAC&amp;\xAF #&lt;5\xEF2J\x8D\xEE\xFE\x86\x9Ag\xC3\xEFE\xE6YM`\x8C\xC0
+Uh ₀Ј\xA5\xB6\xAA\xB1`\x9DE՛{.\x99R\xB5\xBFk\xF6uu
+\xCFt\xBF\xFC\xF1󻮟\xFEPC\xD3\xEA\xBA{\xFAPŎ\x8F/\xA9\x9F\x9E\x95\xCB\xE7\xFE\xB96\xDC\xFBC\xEC뗏M.\x8Bn\xCFp\xBD\x85y\xBA\xF3\xF4\x8Ce\x{1189EF}\xF5\xC9\xD0\xCE\xD8u\xC9b6\x93\xAD\xAB\xE50\xC8\xD9 ԕ\x8B\x95\xD2T\xD0\xAB\x99j\xB6\x9A\xAF\xD65\x88Ӥ6\xD8̴qͺ6\xB1Y\xBFv0K\xB8\xDD
+\xF12\xBDOF@\xA3B\xA1)\xC2OPm.I/\xE9\&lt;\xC7C~\xE3b9&quot;B\x9E\xDDȮ\xE5ϱ\xB8
+yd\x84\xF4,+\xFDH\xB1w\x8By\x9D;Y(\xC6v#\xCB#\xB24n\xCB^I?RDr\xC8\xB6\xFA\x9A\x8D\xA8z\xBByp\xE4\x9E\xF6A\x8C\xA5\xB1\xA0\xE3?v\xCB`\xECH\xEC\xB9\xF7\xE1\x81X\xD3 ,\x87\x8E\xD5\xC1_\xC5f\xA2Tk\x83G\xDFS\xB1Ν\x98&gt;\xB7`ɃF\xA5H\x84ʀ\xB5\xB0\xCDA\xAC\xDE\xF4`\x88M
+S\xCF1H\x90\xB7\xB0        1 @\x88\x95\xF1ŀ
+`́\x81\xBE\xB5\x8C +j) h\xC3º\x87\x8C\xC5\xF2\xB2\xB7D罍^\xEAcαߞ3q\xE9\x8FS\x9Fu\xBEx?~\xAE\x8C\xE0#\xC5\xCB\xED\xC6 c\xD0Xm\xEC1\xF2\xEAX\x8C\xB5X
+\xBCN4֑\xA4\xEAa5 \xC7qx`\x8C\x96%\x84\x91\x82[F:\x97\xDC\xF8N1Ѭ\x8DG\x8D|#\xB1\xE9\xF8L\x8D&amp;AI3.g\xE3\xC6\xE5\xA4RD\x8D
+\x94y7\xE6&gt;\x8B\xC8Os\xB9Z\xC2C5\xFBTdx:,&gt;\x8Fת\xFE\xA8\xB5\xAC\x98Fn\xB5\xA5!a AU\x9D\xBC\xDDe\xFB1)|\xC4\xC1        \xC1bK\xB1\xD7\xD9\xFD\x8E\x96\xA2\xE3\xFD\xC4D\x9F\x85\xC6&quot;\xF0\xC1L\xED\xD0*t_\xB4\x83\xD0ƅ\xED\xD6&lt;L\xA6\xCE \xFB\x91\xCC^\x85\xC0|\xBCA2h\xCA:Ҫ\xE7ktH%m\x87\xDA\xF1E\xA2\xC4l\xC7d\xE78~3\xBFZ\x87\x98\xA0D]O\x89:\x9D\x85\x92&quot;\xF5`&amp;J&lt;7r\xC4\xD37@Ld\xEC,\x82 P\xAA@\xE8k\xF0}\xC0\xE5|H\xE2\xFC\        7\x8Dk\xE6r\x9B8ץ\xC7\xF3c\x800!\x9Eq\xA4&quot;\\xA6\xFA\xE2\xAA\x8AF&gt;\xAC\xFE \x84ID\xD2a\x8C\x97\xC1\xDC`\x83\x90\x9B\xF7\xE6\x8D\xD1\xCD7\xBE\x84Ҡ\xB09v.v\xDE\xEB\xC4Vh=z?\x9A\x89Y\xEA4\x96\xD1        \x82        ;\xAC\x92D2\xD7\xB9v\xD0\xCEq\x98:\x84\xE3@ B\x9E\x86\xB9 ۮ=\xA8\x8D}\x92\xF0\xF2\xA5h\G\xFCs\xF0\x92\xF2\xD8f\xB3\x81a\x8CP\x8FXq\x9C`\xD0'\xC0$&amp;\x91K\x92\xF4\xB9L\xAE\x90\xAB/GeL*\xC4bi\xBC\xBEa\xD1\xA6\x8A\x93\xA4}3l\xC3\xCC\xD4\xC6\xCDֵ\x8A\xCD\xD2B؍\xB2\xDD\\xB7\xB8\x90x\xF9\xECja\xB3\xB8Jڬc\xB0\xE3\xA7\xEA\xECX\xEE2Գ\xE9_D0\xA2 ?\x96\x9Cr\xE4@5\xBF\xAC\xE5y\xB0
+\xBB\xE7aS\xBB\xA9\xD7\xC4\xF2\x8B\x8C\xE6\x93\xD3S\xDE\xC1\xA5\x8A0\xFE\x83@\xA5\xFFQ\x99\x86\xBA\xEBb?\xF9K\xEC\xC5\xD8k\xEF\xC5ֽ\xCB`\xF0%X
+K1\xDA        \xB0o\x9D\xCB玟\xCBc\xDF&gt;\x97\xC6~\x82yh1\xC6ȩ\xECz\x90\x8A\xE1\xA5\xD5 \xB1\xBE$\xC9\xE1c\xFDV\xC24\xF9t[@\xB7\xAD\xA6\xE9i\x97\xE6/1u\xA4\xAE(\xD8$m\xB4\xF7\xA4nʗ\x90\x90SYhQ,\xC8b\xF1\x8D)0%%1\xECa\xC7N0\xF2\x91Sa\xAA%;\xA4\x8Cx\xD9\xC7ǝ\x9A\x9B\x9D\xAA&lt;5\V͎\x9DP,\xD4|Q\xE1\xD2Bi\xD6\xEC#ղ\xABf\xC2N+j\xD5\xD4H\xF9
+Zf\x8BCĀ\Kc\x92Fr\xC9\x81\2&amp;YO\x82'\xA54IEWO\xAB\xF4)\xAA\x9BN۴nAOSbz\xEAw\xE9%ZƲ5\xF8\xFB|\x8A\xCCO&quot;\x86f͔Q9\xA4^\x97\x859h\x8A0:T\xFDn՘ѴXF\xE9\x8FzY\x8C\x85\xD7b\xDDR\x9FIj\xCE        l\x9Cq\xDB\xCB^\xD3*\xC8\xCB马?\xD8)\x95\xBE\xBEp\xDD\xE3J\xB8Ꙗ/\xAB\xA7w\xAD\xB9b\xC1CWX*\xAD        \xEEcw\xF5\xDESP\xE0R\x95Y\x89        \xE6\xEC\xCCg\xE5\x8C\xEC\xC0\x98\x97\xC5R13\xD8m        \x9D\xCD\x9D\xD30g\xB6\xC0\x97`\xDBg\xDF\x86
+\xEE\xFFV\xCB%4\x95rZ\xD9N#yL*\x93\xF3P.\x93\xC9fq\x82_\x84\xE5\5l\xE0f\xC39l+7[\xBF\xCDg\xBB\x84n\xB1KZ\xAA\xDF\x82V\xB1k\x84M\xE2ji\xA3&gt;\xCD\xE0&quot;\xA2@L \xCD&quot;\xE3\xC2 a\x8D\x97l\xFA\x88\xA2
+\xF0 pQ~Ȣ˼\xDBd\xC6Ұ\xC2\xC4&lt;\x96\x8F(\xE2\xE1\xE31\\x9E\xC6\xC2hzYվWi\xA1\xA7&quot;\xBA8\x9A\xD4\(4X\xE3\xF8\xA1?.86,86\xBE$\xF6\xC1\xAFc\xC7&gt;\xFDU\xEC\xBD^\x85        w\xC1\xB4\xE7\xD9ȹ\x99\xC8Ѓld\xE8^\xA6\x93|\x89\xEE=\x84\xE5f\x8F\x96#\xB2*\xB9A\x92\xCB\x85\x9EjT#78\xCFl\x8C\xDFz\x85M)\x868~\x83\xBFIzA\xC3o&lt;\xC1o\xAA\xAF\xA9\xE1\xB7x\x98$\xE4N+z\xCA\xF4&amp;\x8D㿎ö\xD3q\xD8\xF6\xDD\xFF
+ۄ\xFF\xB6\x8D\xA05\xAD\xFE\xEA?Bk\x81\xB5\x8D\xD5tĩ\xF81\xAC\xD68i\xCAc\x97\xB5\xEF\xAE1\xF4
+4\xEE[q\xF4\xF3篾i\xC6/j1X\xBB\xFB        Tz\xEDGS \xB2\x82\xBC=\xFA\xD6ę\xB1\xD7c'\x8E\xFDaʸ薌\x94WU&lt;r\xE3\x82v\x8C\x9D\x9D0W\xB11\xA7c\xAD\x831\x85*k\xE2\xA0Q\xF8Q}\xF3\xFD\x8F\x84\xF7F\xE7CJ%={Q\x9C\x8F8\xC0\x9A\x{2228951}\x9F\xA4%\x8C\xBEWr\xE8\xE2ܠ\xC6\xFA\xCCZ\x98O
+\xF9]\xEC3\xC6\xC2H8\x98&lt;\xC9_\xE3\xC8
+\xE9\x85F)\xA7Z\xCEHoa\x8C\xFBH\x83\xAE\x88qG\xC2\xC5\xE1\xADѹ&lt;\xFF#\xAE_xP\x8B\xF6Y\xCE\xE7OG\x82]\xB6}\xC0\x9A\x984\xAFa\xDA/\xA6
+ \xCCX\xF0\xE4o\xD1\xE6i۳\xF2r\xA7\x96\xFD\x96\x8Dl\xAE\x9B\xF1ޫ\xF1\xFC{\xAB\x96?\xF8\xB3R8\xDE^\x99\xDA`oHm2͒ʺ\xA4 ЙuH\xA7\x83#\xD2\xC4\xB28T\x87\xB7\xB0\xA3\xEBu\xBE?\xAFY4\xB6\xD7\xFCE&lt;        \x{1D5584}[ᕽa/J\xD2\xD9E\x93Tdq\xC4A-:x2Td1~;\xDC\xF8\x9C\xAE\xB88*]@\x93p\xFB\xD2d\x81\x9A+\x95x\xF3\x8D$        t&amp;\xD8[k&amp;L{㾣G\xE1\xCD۞\xAEm\x8E\xBCVRZ\xB8i\xDE \x8F\xAC\xBF5\xC8f\xE5\x8FN\x986-\xFAG\xEExAa\xD9cۧ\xAD\xCAp'G\xE5v(\x8Cix\x92b\xB6\xD5JdC\xB2\xE8E̅\x88\xC67\xEC,\xE1\x9A f\xE76\xD2J\xC1\xAF\xD4rN\xD0b_Ђ\xDF^\xA6\\xC2\xC5\xE1\xE7i\xCC\x9FQ\xD4M\xC33`zٓѯ\x8FF\xBF\xC6#\xF1\x9E\xFD \xE7\xEDS\xF3C\xCBb\xAD\xEC$,S&gt;PJA\xA5mB^Q\xFE\xF8\xC2j\xB1\xC165\xAF*\xBF\xA1p.\x8Cpm\xCEn\xB8\x8C\xEBvn\xE6z&lt;\x96t\xCE\xEAu\xE4(j\xBDK&lt; pXI&amp;l\xAB\xD3\xE9\xC68f\xA2C'c\x8FƛQD\x93\xE0ָ`Z\xE3\x82I\x8AZ\xD1\xE6|&quot;uH\xA7\xFFYr\xD7\xC5\xF2&quot;wQ\xB8\xF9i񑟊\x9C?9\xD1L\xEE\x92H2\xE4\x99\xE4N\x894\x98H9/\x91\xD6Y$\xD23Io\xB7\x8E\xAD\xD3&quot;\xE6\xCF\xFE\x85aT\xC3#I\xF2L3\xF0^B\xFDaҼ\xF4\x87I\xF3X,v\xBA\xF5\xD1Ҙc]?\xF5\xF9Қ\xEFZ\xECo\xD3'O|\xFA\xD2Ϋ\xEA\xB0Vl\xF8\x99r׾\xAB\xEF\x98\xF1\xF3\xDE\xD8g\xB13I        \x87\xAD\xA11\xB9ٗW_V=        z\xA1n\xCF\xF1\xA9S\xB3s
+\x87\xDEF\x9D驯x&gt;\x8C\xF9k\xC2\xF0W(\xCA\xED\xC9`\x9FRe\xE0\\x953z\xB3n\x82Q/q\xC9\xC9        aFlL\xEDME&amp;pm\xAA`4S\xAA\x9A)-\xCC,\xD12fJ \xB3Kt\xA4PWG
+9-4D\x8Bu\xB5\xA8}\xDC\xD9׍\xE2u)t\xC9\xE9=H\xCE[\xAD|\xD0%\xD0|Ў\x94 kuU2\xCCg\x8AhK \\\xAC\x96|dj\xC9_\xA8\x98D\xE9\xDE\xF3I\x89b
+\xFDd\xEC/\xF7\xF5\xF6\xC0\xABc\x9B\x85D\xE7\xB4\xC61]NI2Y\xFB_A3\xF6‰\xB1g\xF7Ƙ9 \xFC9\x99ɢj#*c]l/\xC65:p\xAD2\x91\xA5\xB5\x87M|\xDF\xC3\xF3&quot;\xA3㒘n2\xACc\xE6\x80\xD9p\xF6%t\x99p.\x96a\xEB\xC0d\xB12\xA0\xC5\xD8[®,;\xE2\x88@
+\xA8Ǯ\xCFF\xC0\x81\xEBDY\x84 kck؅\xECZ\xEC\xCD_)\x98?S\xBDp\xEA\x84SGO\x8B\xBA\xD0qX\x83\xEAl@\xB67\xBA\xE6\xA5\xD7c\x93~g\xC366rV\xDF`\xB3\x87^`*h}\xDE\\x81\xF1~\xA2d#R1|\xA3&amp;\xAAڤfAK\xE5\xB9z!\xF1`U\xE3G'\xD000\xD5\Y\xCD\xC6@\xBAR\x90\xDD\xD2\xC6\xF6|91]\xEAh\x85A\xEAW ࡨ4\xC5\xFA\x8BД\xD7)\xB3\xD8\ \xCB\xF8\xC9l\xCF\xE7re\x9C\xC2M\xE7:\xB0?IHɺ\xC4\xE4\x80lf(e\xEA\xC1f-܈\xC0\xA1\xB5\xD8\xC2A\x86\xD24C\xA3)\xA1( \xAEd2\x8C\x8DYȬeX&amp;\x85\xA5\xAF\xD4a\x87\xC9z:\xA2VQ\x86#P\x95\xC444\xE7\x87\xED\x8DU\xFC&amp;\xFE=l\x83\xB3        pàm;\xB3A\xC5 \xBA\xAC\xDB\xFC\xF0\x98\xD2\xC0d0\xB9\xB6 [n\xB5\xA7:\xEB\xA9&lt;\xDD\xC1L\x98\xE9NM\xAAr\xD2\xD9T\x9AS\xA5\xBA
+ \x94\x82\xA6\x82\x9E\xEE_\x93\xBD\x80\xCC \x81\x90\xBA\x80\xC6%!}\x8D
+Z\xDC\xFA+j\xE3!\xD1p\xBA\x85\xF4\xA4m1\xBE\xA5\x99CH\xA2u~\xBA \xB4\xA4v\x9A3\xF5)2}\xA6L\x9F)\xD3g\xCA\xF4\x99\xB2\xCBLW\x91&lt;\xC7L\x9F\x83\xF7\xDFP\xDD%s\x95d\xAA\xCD\xEF\x90ۛ\xE3\xC07\xCEQۀÊ\x97&lt;\xCA\xECv\xD1Ǹ\xE8c\\xF41.\xFA\x97+%\xCEN)#\x89\xC9zrJ\\xFCS\xE2|\x952\xEBK\xA1\xA9\xB8\xD5US
+M\x84\xA6t\xBA͊y\x8B\x991&quot;#&gt;
+\xB4\x98/\xDC'5\xE7O\x89\xA71I:\xBF\x82\xA6\xED\xB03EsW\xA3\xE1 v\x96,?\x8AnT\x8C\xA3K0:Z\xA67\xEEmdX\xB59\xED.w_\xB0\xEA\xDE\xECUK\xFBG\x9Bk\xB7\xE5\xF8\xF3+*Ӣ!\xB4\xB9~k\x8E\xDF?\x81:\x9A;\x9A\xFFrl\xF6\xC4\xE1\x84\xC5?Ğ\xF0\xFF\x88=-\xA3\xB0\xA7A+J\x8AW\xA7\xC44_ G?\x8A'\x9C\xCF*\xC1Q        g\x8E\x9E\xA1\xFF*\xE3|Uvr\x9EǢt\xE0\xFF@\xE8\xBFE\xA1\x96\xFF\x85b7\xE0U
+\x86R\x9C\xD2Eq
+\xF1\xBDt\x8A\xBF\x9C\xA9t\xA6\x8C\xF7Le\\x93S\xEA=\xA4&gt;\x8FC6Q1\xB1АVʼn\xBBZ\x81\xF7\xAF\xCCZ\xA7wViU\xE3\xFF\xB6N\xCFN\xEB\xF4x\x9Aط^T\x9Dg\xA2\xE9|\xE1\xAB\xD1\xFB\x81\xD0\xFC\xB0H\xFA,\xFFo \xCC\xFE\xAF\xAEgVW\xED[\xD0vM-\x97\xAC\x9F\xFC\xE0c;o\x9A\xF1P\xAC \xB9\xEA\xB0\xFE4\xED\xF9\xA0\xA1\xAE)'\xBBp\xE8Y\xB4ޗ\xF2\xC1\xF3/\xBC9E\xE5\xF9'c]\x8C\x8Cy\xDEZ\x94I&quot;uI0I\x97\xC3\xE4p\x8D\xB0\x96\xA9\xE5u\xED\xB0]\xB7\xAE\xD0\xF5\xC2\xF5h=߫\xB3\xEA 4ld\xA1PHP/&amp;\xA9\xCBSu\x9A\x9B\xDD\xE14\x9F$/)D*4;C\xB2\xF0$-J_N\xD0\xF1\xC8a\xB7\x92\x82(F\xFE\xFC\x89^x\xE2\xF3\xE97\x85+\xEA&amp;T\xDC9-\xD6\xF5
+\xFC\xE0\xBD&quot;\xD5=ۻ)\xF6\xA7\x87~\xFBl˦k\xC88\x9Fò\xF98\xA7\x9CU\xAAsП\xE0\xFB&quot;#\x92\x989LEnc  \xF5\x8A~\x96~        \xDAI\xD9/
+\xC4 \xE2\x9A\xAF#\xC9:\x8F\x9Bd\xEB:\xA4R\xE8J]\xF1*o\xC0\xE81*F$0t ]?\x86\xDAQ-\xFD\xEE\xFDJ\xCF'?x\xA5g\xE4M\x9E\x91w{N\xA8\x92űڛ=\xFFP\x81;nP\xC9\xE2v~\xBCzSM\xCD\xE8\x85\xE3\xD1\xE3Ç7\xFE]M\xE8Ei6\xCF\xEB;\x9F\xCCc\xFF&gt;\xA6l@\xEE\xC1\xE8?\xE1\x97kb\xD7\xF0\xF6!
+D\x87Fj\x95\xCAi\xEE\xF3\x93}LH \xE6̩z\xC0f        \x82\x96\xBC\x91\xDDG\xF8\x84\xED/zC3\x9A\xDFL\xB4F=WM?\xA9\x82\xA1\xE6x\xD7eL\xC5&amp;##0v&lt;\xD77\xFC\xBB\xB4\xE7\x88csr4)\xA1N\xFEH\xDA\xF3\xED-\x8A\x97\xAD\xF4\xAB\xD5^J\xAF\xA5\x98+?M:z\xFD\xF5(z7\x9A\xCD\x8F\xF6\xA3ZL\x8F̧߈\x98\xCF\xC7;\x84\xF1\x98&amp;\xF5L\x8Dp)3K\xE8z\x99A\xD2\xE9\x98        &lt;\x87\x900
+\xAC\xC0`\x87\x97E\xE2n\xBD[ַ\xEBW\xE8{\xF5\xBAZ&quot;\xF5\x9FaCF\x92\xAF\xE4j/\xA3y\xBD!\x90v@/\xF3\xE9\xD0FtM\xF4*fQt\xBA\xF7&amp;t϶\xA1c\x80֬w\xA1A*k\xDDJ\xCF\xF06\xE3\xB0e\xC1,&amp;˖\xE5\x98F\xB1Mq41M\xB6\xA6ö\xACC=L\x8Fm\x9D\xDDa\x85\xACa-\x80\xD60 Y\xF2&gt;Vq$\x8EI8X\xA6\xC6\xC0\xAD\x95\x85\xDDHt\xF6\xE5όh豴\xC4
+&quot;R\xA3\x88}+\xC4\xC27\xED\xAE\xF2        u\xF5\x95ᛦcaD\xB17c\x9EW\xA4\x9A7m\x81)\xBF|\xE6l\xEA}\xB6Nz%\xE6\xA1\xF5\xBC\x87?d\xEF\xE6\xBEI \x94B\xE1\xC8\xC2\xC30\xE2\x87f\xF6k\x8D\x8Cx\xC3o\xA4\xD3$i\xF8\x83\x8E\xE2\xF4`v\xB0\xB8\xDA11\xBD:\xBB\xA6\xB8\xC917\xA9-\xB9\xCD=+\xBD\xDDߚ\xDF&gt;vV\xF1\xAC\xD2a\xBEi\xBEu~R\x87\xAF#{\x9Di\x9DuS\xFE6k*\x8F\xCDz8\x80\xB2\x9CR\x80eR\xA7\x98Q\xA8\x96\x91\`\x836H\xC6\/pfy\xB4R\xF4{\xCA\xE42w\xF2x\x8D4\xD2FM\xA0\xB1\xC8\xCB\xDF6\xCE|\x86\xF8u\x83\xC4񣵟x\x83en\xA5V\x9B\x8B1=)\xFDLk\xCDߙ\x8Fr\xF3\x8B\x98P 7P\xE2\xAB\xF1\xB5\xF8\xBA|wd\xF1.\x8F\x8F\xC9J%\xA2\xF4}R \xAA\x96\x82B;\xF0\xA5g\x90Xo(^\xFA\xA9\xD5Ќ\xBC\xCDB\xD4]\xBC\x9C7{$\xE8{w\xEC\xCDϾ\x8D}\xBC\xE7\xAA\xF5\xAB\xA1\xFD\x8F\x81\xD2O7^{\xF3\xE0Ϸ\xFC\xF4\xFE\xE932\xAF\xA9Z0\xD5=}]\xA0'Ҷ\xFC\xE9\xEBo|\xDE\xFB\xDC08{d\xF3K\xE5\xBCr\xFB\xAA_|\xF4\xF6\xCF)\xE5+\xFAP\xE3\xD2\xDE\xF5\x97\xD5.ɵ\x8E\xB7U펮\xBEt\xC58gV\xFA\xD8_to\xEF\xBBU\xAB\x93y\x84\xE9\xA0ܢ\x8C\xE3\x8DNcYf\xF1\xD8\xE2Һ̪\xB1\x93J\xDBa\x8B\xB1\xC9\xD3\xE4]\xE8];\xD6\xE4br\xEBRm\xB6\x84\xFATFF\xA1:L\xE2\xFC\x80\xD5\xE7V\x91\xE6\x96GJf\xF4jb&lt;z\xA9\xC8Tܭ\xD2=\xE0\x89\xB9\xA5\xC1\x9B\xDB\xC7^\xD4B\xE8R\xAED\xEB\xB1r\xC3P1%_\xD6\xE8`\xB5\x97H\x80.,\xD7\xFDh%\xCD#\xB1?\xBE{\xF9\x81\x9A\x96Hsdt*oʕRV\x96\xBF3 \xB3\\xDA~\xC3\xD49\xAD\xAF\x94\x86\xC7\xF4T6\xDF8
+\xA1\x89ec\x96\x86ox~\xFAi\xEC\xE3\xEAI3\xA1\x{1798F0}芕\xBD\x92\xF1Y99\xF6\xDD\xE7\xC5!_\xA8\xF2\xE9\xEB&quot; &lt;\xF6\x9C&lt;g\xAE{\xEFS\xA1\xFC\xDC'&amp;~&gt;֊\xF4\xFD\xD0$p\\xF1I\
+\x87F^uNH\xE2\xF4zY\xD1`B\xAF%\xD8\xE1\x8Ccg&lt;\x88㌿\xE5\xE9\x8Cc\xA7\x8B\x82C\xB5\xF0\xA8CJ\xE8\xC1F\x97F\xC1\x92h\xCE&quot;\x89x\xE7\x94y\x93\xA8\xB2L\xA2)L\xDAB\xDAK\x87j\xDA?\x89\xAC\x80\x8D\xDC:IG\xEE\x9B\xC4\x9Atc\xF2h\xA0)*\x8A\xBFH\xA09J\xA2\xB4\xE9ۤ\xFA6\xA9\xFD\x87Eb\xA4\xCE9\xDEz\xCBp\xEC9W\xE5K)\xED\xB5s\x9CN\xE3\x97\xF0\xE7\xE4uS\xE9\x85cf\xC3~}JNN\xCE\xCA\xE9\xCC\xD5{U\xB1z\xF8sn2\xF75\xC8+\x94E\xDE\xEE\x84ɢݑ\xE9(qL\xB2\xCF\xE6HsLs\xCDss:\x98N{Z'\xF7\xD8mN\xA7+hEyyYA^r\x82\x95\xF9r&gt;$o\x92\xF2\xC3\xF9+\xF29\x8F\xC3@\xC1\x95\x81\xE6n \x8B\xE9K\xA3\x83\xC4        \xFD\xDA(}k\xF4\xE2\xF7\xA8\xE3\xEF&quot;\x8Df\x9A\xD2bnrikm\xE5\xF5-\xC4\xFE1\xBFc\xD9\xE2\xF9\xED\xD0\xF8\xD0\xFAon\x947}\xBBk\xE5\x93Sj\xA65O\x9A\xFC\xCC\xE2\xEB\xCF.7-K\xCCK\xB0%\xCF\xEDl\x87\x99\xCF\xF7\xC3\xF4\xAE\xCE\xCB\xC6\xD7\xFDmѼ\xBAi
+\x9F\xDFz\xCF'S\xEA\xA7̟\x8F\xE7\xBCo\xF8c.\xDB\xD8T\xF0{%\xD9g\xF5%V2\x95\xE2Tf\xAAx\x85\xED\x8A!\xC5\xC88\xF0Ē\xED\xEEQ\xF6\xFB\x91\xBB\xB4D\x98\x8A&gt;\x9D\xF1j%\x95\x9E(\x8Dz\xBBq\x9D[v\xBB݊\x9B\x91\xED\x86\xFE\xE1?\xAB\xA2\x81\x96\xC1F \xF4\xC5\xD5\xA7\xE2\xF1\xFF\xD3Ԫ\xE2\xBCgX\x9A6\xBA\x82jT\x9Bg\xC51\xFE\xAC H        ks\xB9S\xA6O{m絯O\x99&gt;\xE5\xA87;\xFF\xB6d{\x8F\xA2\x96\xFE\xBBi\xEA\xE4\xFA\xDA_&lt;\xCAlڴ\xE1ڲ\x89U\xAB\xCAnZ\xCE\xEC\xA2螡o\xF1\xDB\xD5X)\xCB\xC2\xE2\xB8\xE7T\xD9\xF00ނ\xE1a3\xD0\xCE\xE0\xC1O\xE9\xEFx\xCA_\xE4zp\xB8Wl\xC5%\x8Cl \xC0L@f`V\xEC5\xCB\xEA         ˪ $\x83\xBC2i\xC0\x8D\x9F\xE3\xC5:\xD02@&amp;\xC8\xD9؂\xE5b&gt;\xF5\x83|Pƀ(cA(\xC6c
+\x81\xAC+ǁ2\xFC\xF84\xDEΝ⎳\x9B\xD9\xF3~\xFE\xEB\xF0DZ\xF5\xB1\xAEX+s3\xBE+\xB7\x82ǰ\xCFx\xBC\xE2\x9F\xF0&lt;\xFD]\xF6\x81\xC3\xE00\xFA\xF33p3x\xFC\xBC\xBE\xE9\xBB\xEC\xBF}\x9C\xB7\x87\xF6&gt;\xBF\xFB\xC1\xD3\xE0\xEE\xDBn\xC0\xBD?'\xFFS\xC3\xC8g\xD8\xAEw\x81\xFB\xC0\x9B0U\xEB;\x82\xECP\xC1\x97\xC0\x80\x8E\xC3\xD5p7\xA6D&gt;\xA8\x97\x82՘\x9E\xDB\xF0\xB8\x8E\xC1\xA9\xB8\xAF\xF75\xE1\xDEU`=\xB8\xF7\xC7\xC0şJЂ\x91S7\xB8&lt;\x81\xCFx\x8E\xF6\xE5\xE1\xDEY\xA0 \xF7\x92&gt;\xF5\xB3l;\xC1\xFD\xE0\xF0 \xD7F&lt;\xB2He\xC9E\x9F\x9F!/\xF2\x825\xE0s|\xE5\xCB\xF0t\xCF\xE8\xB0c&quot;        \xE3\xD5ㄪ\xA3ڂ\xE1\x8F\x88u
+\xFF\x83\x8F\xF9\xE84z\xDDG\xDD`\xAAbj\x9EUZ\x92\x95\xE9\xB6Y\x8D\x8EE\xF9\x9E&gt;&amp;\xB3\x9B\xEA\xCEŻ&lt;5\x8B=\xBB|\xD5\xD5\xF9
+3\xE6\xD4T'{\xBD\xAD\xF9\xDC]\xED\xE9\x83\x9E\x9A\xBE\xC9\xEB'\xEE\xAA!'\xF4Y\xFD}(\xB3\x86|\xBB\xFB\x94k:p\xC3W\xED\xF5z\xF1\xDB\xF9#Xt\xAFu\xE8        \x80\x9F\xB5x\xD6\xF2H\xF2\xEDX\xEC\xE9c\xF1A\xBAI\xC6=\xDAȱ\xC5x\xEB\xAB\xC6\xF8\xD1\xFE \x868\xD97\xB9c׮\xC9&gt;\xCF\xE4]\xBB:\xFB\x87\xB7\xCC\xF7y̾]O44\xEC\xEA\xA9\xE9\xF0\xF4\x81\xA69}\xF7?}Mr\xDF\xE4k[\xFB\xCC\x8B\xE1x&lt;32\x88\xC93愓\xBD|\x97\x86\x99\xBE\x86\xE9ms&lt;5\xBB:\xB4\xFBj=\xE3Խ'\xA8z\xC2wLB\x81;f\xB6\xCD9\x84\x99ڳc֜}\xA2IU\xADOd\xE0csa\xB1Th/&quot;\xBD\xA4\x93\xECx\xC8h\x80x\xD4\xFB\x90@\xCFO&gt;\xA4\xB0\x85ei\xDD_\xD0\xED\xE2},\xE8Gj\x9F9އp\xAB\xF6)\xB4\x8F|0\xA9\xC6a\xA3G\x8D\xBFd\xEC@\xD5
+\xE8r\xBB-\x9F\xBB\xB2]\xAE\xF8;H(K=\xF6\xD3\xEA\\xF2\xDBo\xBC[\xBE3֪\xBFI g\x8A\xF8        \xEA\xEF        \xFA\xD8 \xF9\xC3w\x9E{K\x93\xA6_\xCE\xC6 \xB8\x8B\x9F
+V\xA3\xD7A5*\x8F\xB3~\xB0\x84}t\xE3}\xC0
+\x81c\xEC\xFB\xA0\xF7]\x8E\xBE7qN\xE8\xE4\x9C\xE0v,\xE36\x83c\xDCz\xB0\x8D\xDB\x8E\xF1\xBF\xC5m3x\x82\xE9\x87\xF0\xF1G\xF0\xB9Q\xFC\xBB\x93\x99v\xB2k\xF0\xB1k\xC0\xABx\xFF~|\xDD!vT\xE0\xF6\x9D\xF8;
+_\xEFbw\xE8\xBE\x97\xB2\xAF\x81\xC5\x{35805703}\xEFu\x88}?\xFB$\x96        \xFC,&amp;L\xC0\xD7U\xE2\xF1=C~uǴsȱ\xC0\x93\xB8\xEF9\x9E\xC1\xE7A\xEF\xE3q\x82\x8D\xE4\xF9\xE8\xB9\xE1\xE7\xB9[\xC1j\x8Ca\xC8\xEBBp\xD6\xC3&gt;L\xF4\xF7\xD0{\xCC6\xB6\x90\xCB⚸}\xBCŸѽ.\xFC\x97\xD8!\xA5Ko\xE9gC\x86\xE1a\xC3I\xE38\xE3\xEB\xA65\xF2x\xF9e3o\xBE\xD9b\xB5ZZ\xFBm3\xECV\xFB\xEF\x97;\x9C{2\xAELx-1/\xA9\xC9ev\xBD\x9C\x9C\x96|0eBʖ\x94S\xFB\xD3\xDA\xD2N\xBA\xBBc\xDAڍ\xF3\xB1\xEE^\x8Au8\xC2\xDA4@\xAA\x87&gt;\xC5z\xB3\xB0\x9A\xB6/\xB7\xA8ļϳO\xD9״\xAFgߖ}\xF7\xED\xEB\xDB\xF7\xFA\xBE\x8F\xF6I\x87\xF7\x9Dڇ\x88 \xDB\xF3dBb\x89\xBB\xCA-\xEE\xD4\xD8\xDCތV̂\xF7\xCEz|\x9A&gt;3\x81\x9D1\xD3\xC9Μ\xE1`\xEB\xEBf\xB0\x93\xEBJ\xD9)uEl-\xFEօ\xCA؊p[\xAEd'\x84\xBD\xEC\xA4p*[\x9E\xC1N\xC4_á&quot;\xB6\xA8\xB8\x8B-\xD9Pp \xA5\xB1\xAF?
+\x9E
+\x92\xDA\xE8\xFD2kK\xFA\x87?\xDA\xC0\xEC+!Q\xE3Q.9\xE0\xAAe\xD7\xED߶\xEB\xD4\xFE\xFD\xF4\x8C\xB3\xCA\xF0~1\xA3d\xBF\xBD\x96ݹ\xC3\xC6\xF6,\xEBY\x8F\xE4\xBB\xFF\xB2)\xF78\x93J\x94\xBB\x9D\xC9%\xCAm        \xB8ukBrɶ\xAD6\xB7|\xB5\xBCU\xDE-_/\xEFq_\xED\xDE\xED\xBE&gt;\xB0{\xCB\xD6-;\xAE\xBFa\xCF\xD6=\xDB\xF7쐕+Es\x89\xBCʽ
+)+EC\x89\xBCz\x8EAϋ0|\xF4\x9B\xA3\xC8\xF3;\xE5ẇ`\xBEy&gt;R:\xEF\xEBD\xF2\X`\xB7\xB0\xF9\xF6L\xD6o/c\xF3\xEC66\xD7\xEE`\xDD\xF64\xD6\xEB\x99\xC4z\xEC\xECK\xAE֕&lt;\x85MvU\xB0.;qU\xCAX\xAE\xD5\xEEb-\xF8\xDBc\x87\x8A}\xE2\xA4ٔ\xE7&lt;4ip\x9EopK\x87\xDC&quot;\xFEr
+n\xF67
+n\xE6P\x83=\xDD\xE0\x86\xDC\xE0\xA9\xF7\x91\xE7\xF3܇\x9F\xCDs\xFFFi\xF0\xBA\x9F&gt;\xE4u?u\xD0\xEB~\xFE\xC8 \xC6g?g\xF8\xCDo
+\x87\x9E~\xC6p\xF0\xA9~\x83y`\xCBRm9\x84\xE4\x83Ⴭ{\xB2\xF2\xC1n\xAE\xC0\xCDg\xFE\xE1\xE0\xF0AAKY\xEC\xDFb\xD5\xCE \x84
+\xFB\xE1\xF0\xD6\xEB\xAEK\xED\xBB+\x9F\xBE-\xA9\xAD\xFDh\xC0J\xF6\xC1ݭ}B\xC3L\xAD        (\x8EY\xBDf\xF5j\xFF\x8F|\xFA\x98\x9A&gt;\xBEfqg\xEF\xAB^MvLdDŽ\x95\xB2\xA9\xA6O&amp;m\xD9W\xED\x87}\xF6\x9A\xC5}vܺ\xE8&amp;\xAB\xE3\xFFj\xED\xA0\xFA \xBAk\xEC\x99d,k\xF0\xFF\xE1P\xF3
+endstream
+endobj
+182 0 obj
+   12408
+endobj
+183 0 obj
+&lt;&lt; /Length 184 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x94M\x8B\xDB0@\xEF\xFE:n\x8B-\xC9\xBBe{ɡ4\xED\xB0%9khl\xA38\x87\xFC\xFB\xCAz\xC3jH\xE0e4#=M\xC6\xE5\xDB\xE9\xCBi\x9E6U\xFE\x88\x8B;\x87M\x8D\xD3\xECc\xB8-\xF7\xE8\x82\xC2e\x9A m\x94\x9F\xDC&amp;\x94\xBFݵ_\x8B2%\x9F\xB7-\O\xF3\xB8\x87\x83*\xA6\xE0m\x8B\xF5\xF4\xD9/C\xF8T(\xA5\xCA\xEFч8\xCD\xF5\xF4\xFB\xED\xCCO\xE7\xFB\xBA\xFE        \xD70o\xAA*\x8EG\xE5Ø\xCA}\xED\xD7o\xFD5\xA82'?\x9F|\x8AO\xDB\xE39\xA5\xFD[\xF1\xEB\xB1e2k\x8E\xE4nk\xEFB\xEC\xE7K(Uz\x8E\xEA0\xA6\xE7X\x84\xD9\xFFo:҆ѽ\xF71/\xD7iyU\xD5i\xF9N&amp;S\xDBBz\x85j\xC8B
+\xD4@m&amp;SA5\xF4\xC2J\xD9\xE15S'Uz\xF24d\xB2r\x90\xEC\xE0\xA9RC\x81 4fj\xA8\xA9+\x88\x98?\xE1\xD7QS\xE3\xD7\xC9J\xFC\xACT\xC1\xCF\xE0\xA0\xF1\xB3\xF8i\xF1\xE3^4~5\xBFz\x80\xF0\xB3\xB2~\x9DT\xC1\xAF{\x81\xF0\xB3\x84\x9F\xC5V\xE3Ws/?\x83\x91\xC1\xAF!\xCFH\xFFd\xA5\xF8IL\xFA\xC7Y\x8C\xF4?\x83_\xC3\xC9 ~
+\xBB\xE9\x9FT\x91\xFEI \xBF\x8E\x9B0\xF8\xB5܄?\xFEKF\xFA'\xA7Ư\xC5\xDD\xE0\xD7qj+~\xC4,~-\xF7i\xF1\xAB%&amp;~=\x84\x9F\xE1,?++\xA5\x9C\xC5\xE2\xD7J\x9E\xF4\x8F\xBE[\xFC\x9A&amp;\x8F\x8F\xCC\xC9&gt;H\xFB\xD4L\xA9\xBBǘ4\xBF\xF2d\xEE39\xCD\xE1\xE3\xED\xB1.랕?\xE3\x85 \xAE
+endstream
+endobj
+184 0 obj
+   469
+endobj
+185 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Verdana
+   /Flags 4
+   /FontBBox [ -49 -206 1446 1000 ]
+   /ItalicAngle 0
+   /Ascent 1005
+   /Descent -209
+   /CapHeight 1000
+   /StemV 80
+   /StemH 80
+   /FontFile2 181 0 R
+&gt;&gt;
+endobj
+186 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Verdana
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 185 0 R
+   /W [0 [ 1000 787 351 274 520 595 351 748 606 520 363 635 635 623 685 683 695 842 632 426 635 363 635 420 556 692 635 623 591 635 635 683 454 988 600 818 623 632 603 616 623 394 591 274 591 972 632 623 454 591 751 525 454 635 635 344 698 731 ]]
+&gt;&gt;
+endobj
+12 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Verdana
+   /Encoding /Identity-H
+   /DescendantFonts [ 186 0 R]
+   /ToUnicode 183 0 R
+&gt;&gt;
+endobj
+187 0 obj
+&lt;&lt; /Length 188 0 R
+   /Filter /FlateDecode
+   /Length1 2292
+&gt;&gt;
+stream
+x\x9CmUol[\xD5?\xF7\xBEk\xCFNl?\xA7yI!V\xF2\x9E\xE5\xA9I\xBAtN\xFC\xB2n\xE9\xFC\xDA\xD8&amp;\xE5u\xA2M\x9C\xCAa\x8B\xB0\x93\xAC\xAE!\xA6ɪ\x80\xB6\xCETM1\xA6\xA4)\xB0\xAE\x94\xC2:Ć\xD6!x\xB1;\xD7)
+\xCD\xE8:զiBB+C\xFB\xC3 \xCA&gt;\x94-o\xE7=;PD\x8Ft\xCE=\xE7wν\xF7\xF7\xAE\xEE=TA8\x90F\xC6)\xA8[&gt;@4D\xB7\x8E쟔\xB6?\xB7\x85b|
+\xF5\xC4=\xA9{Ǻv^Y\xC0\xC1\xF8?\xF7\xEE}\xE0\xE5LիX\xFB&quot;\xC6,\xB9;1\xFA\xE6O=`9\x84\x98\x9CD\xA0\xF6\x9B\xD6\x8C0^\x97\x9B\x9Cr\xD6\xD3z\x8C\xAFbl\xDB;&gt;\x92\x80\x83 a\xFCo\x8C\xADc\x89\xA9\xFD!\xF7w\x8C\x971\x96R\xFBv\xA7\xD8\xFDWSn\xFA&gt;P\x83\xECW\xC0\x8Ap\xCEY)C\xDB\xDFz\xF7-\xD3|m\xA3\xB7\xC6[ӌ\x86`\xD5\xF5\xB4&gt;5F@\xC7Bpo\xD6m\xF9 \xF0\x90Q\x96\x88\xD5\xEA\xE0\\/\xB1\xF15b
+\xB5P\x91'&lt;\xEFp9:\xE0r:\xD6\x97D\x83\xDC8\x97\xE28\xCE\xE1v\xD3\xAE\xA8_U\xAAy\xBDz\xBB݌\xAF)\x8D\xD5\xD5\xE85\xB38\xABӉ\xD6\xEDtZ\xD1+p\xED\xAD\xEA\xF8\xB0\xB5u\x93\xBF}\xA8\xBDc\x82\xFF\xF3;\xDA?D\xC6\xDE\xF2
+\xF8\xE5.Y\xEE\xEA\xA8\xF1\xB2\xEE\xFF\xBEC\xE4\x957\x82\xB3\xCD_
+\xB0\xA7\xC9\xC6\xDC?3u­\xDF\xDEr\xFD\xA2\xF9\xBF\xDE\x889v3\xCE-3\x90e\xA2\xE3\x89-\x83\xAE㡕+\xAC\xE0\xAA\xCC4k\x93U\xB0,[\xAE\xB0\xB0!\xEE]\xC02\xFD_\xFA{+S+\xA3+\x83ܓ b\xD5q8%\xB8\x80UY\x80\xF2\xEE\xFB!\x8B\xF0{\xB8Q\x82'\xE1\xF0&amp;\xBC\x86\x9D\x80g\xE1W\xA0}\xA1n\xD6D\x9F\x87_\xC2K\x90\x87yXB,\xC7\xFD\xB9q\x83&gt;\x93qx\x8E\xC2\xD3p\xFED+\xD8H\x99\xC1\xE0\xA0W\xC8\x99\x81h\x83|&amp;\xE0F^\x97\xC9v\xC46#\xB6\xD1}0\x8F#Z\x82\xCB\xF0e\xD9 \xBB`\xF6\xC0}0\x87\xAF\x99X \xA2QE\xD4\xC0\xCAr?&lt;\x8F\xC0\xCF\xE0xy=\x88̎\xC1ɛ\xAC\xF7\xF5R/L\xC2?p\xE6\xE4\xC7\xF4~\xD1 0m\xF0u\x81\xE5\x8Aq\xAAl\xC8&lt;[\xD0\xDFX\xD5?\xC1k&lt;L\xAF\xD1\xE7\xE81x\x99\xEE\x81\xED\x8Ak \xDA%\xDF\xD6,֮q:,\x8C\xB6I\xD7\xF6\x85}\x89dV
+'\xA5\xAC/mhS\xFBb\xE1\x90\xC7\xEB\xDC\xD0&amp;!\x924\x97\xC2Zd\xF2\x96l\xD8(\xD0ִj\xB49l\xE8My4\x8E\x8E/\xE4\xF5z1S\xFBy\xA6\xA8/\xB9!5\xB8W23\xB644\x9E\x944\x86I\xD3x\xA900r\xC98Z_        \xDC\xFFň/\xCFf#&gt;)\x92\x8DgE==\xEC\x93ܾ윪fSḤ\xC1\x8E\x98F\x9FԣE\x8E j\xEEx\x92|\xBF\xCC \xE9\x8B=\xDE\E\xED\xF7\xA9;\xEF\x8AI\xE1l\xBC\xB2n\xF9z9\x9A\xA3\xB0u\xCEG2;\xE7\x92\xE9\xBF+V\xC2K-e\xA2\xB1%\xB4'\xBEupn\xE6b%|&amp;\x8A\x89R5@#\x90\x8CT\x82\xACs\xD4f\xD6{J
+@\xDA\xCC20\xE3\x91&quot;\xB3\xADbF\x8A\xB4\x8C\xB9W1\x8A+c\x8A\x89\x82GE{\xA2\xB1Y\xA3\xDC\xCBo\xE8}B\xF7\xC2F\xF9n\xBE\xFB\xF0\xD8\xCC+u\xE6@h\xBD1\x9D\xA7l\xFAɕ\xC1\xEA'lF\xA5\xDD|\xC7P\x9Eg\xAB^\xE9p\xB4\xE9'?\xFDs\xF5\x95\xF7\xFE\xB9PB\x96z\xA3\xEFa\x8F8\xB8\xBA c\xFF\xFCX\xD0sC;\xBE\xC0\xE6\xF7&gt;\xF6R\x82\xA8\xBE\xA84\xE5\xD6\xFBewN\xCA)\xB9\xB9T.\x9D;\x9D\xD3ro\xE7\xAE\xE6\xAAs\xCB9\x8AWGI\xFDz\xED-\xB2&quot;\xFC.q\xBDs\xE0\xEE:%?\x8D\xBE\xA5;\xFBײ\xBE\xFEz\xD6\xDFW\xC7\xEE\xD8\xD6\xC7&quot;ۺ\xD8\xED\xDB\xFC\xACu[`\xEB\xFA\xD9\xE6\xE0f\x{1AD817}\xF5\xD9\xD6`ۂ\xAA\xA0~\xE6\xEFe\x81N茲\xCE@{\xBB\xF3j\xE7r'6ڏ\xF2g\x9B{el\xC0\xF9\xB3n\x8E)γv^&gt;\xDB\xD0\xCB\xF6\xE7\xE7\x91\xD6r&gt;oV\W\xF4\xBC}\x9D\x9Cz\xD9#\x99Z\x96ڛ\x9A\xA2\xFC\xA9\xBF=K\x95g\xEAo\x95\x95S\xF5Y\xF9\xC9Z\xF4\x8E\xAF\xF5ȇ\xA7kE\xFE?\xCD\xCF\xF0G\xF9Y\xF1\x908#m\x9FIO\xA73G\x8F\xCDN\xCF&gt;&lt;\x9Bᕃv\xB7\xCC\xEF\xF7Q\xE5~\xBBC\xE6Ljt\x99H\xBF%\xC1K_\xA2\xD2\xEB\xCA\xEBx\xA2\x86\xDD\xC3TI\x9CNP\xFE;d\x83P\xC3ڄf\xD6*lb-B-[/\xD41Qhb^\xA9\x87IB7\xFB]C\x985xng\x9E\x86n\xD6 \xF8Y\xD6\xD5&quot;\xDD5B\xABAM        D\xB6\xF4ȼ\xABE+q.\xA9\xA2\xE3\xA2*V-\xAA\xA2ղ\xA0\x8A\xEC\xBC*r%U\xA4\xF3\xAAH
+\xAA\xE7Tq\xE9b\x8B\xB8x\xA1E&lt;\xAF\xECZ\xF0\x8A\xF3%\xAFx\xAE\xE0/.\xFD\xC6ya\xF15\xE7\xC2\xF9W\xA5\xF9W\x85sE\x87{!\xBD@\x95R\xBAD\xF9B\xB0pg\xE1G\xC6\xDA\xD1G\xF7B\xE1\x8F\xBD`\xAB\xB2w1\x87\x93b+\xE2(\xFE{\xE9 )}\xFA\xB1\xC7\xB5\xE3\xF8X\xB4t\xE3`\xD1*6
+\xA2\x91\x99Aͦ\xF6W\0x\x93\xAD7\x8D k\xD6p2\xA1Y}\xA1        #p\x81 \x9B\x88+\xAC\xF1\x86\xCF\xFBB\xADD\xC2IM@\xEFK\x8BL\xACJ\xEBD%Y\xDE\xC84\xF0\xFD\x9B\xEDip\x99D\x8B\xF9\xFF'\xB689
+endstream
+endobj
+188 0 obj
+   1678
+endobj
+189 0 obj
+&lt;&lt; /Length 190 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x90\xC1j\xC30 \x86\xEF~
+\xBBCq\xD2]C`t\x97ڍ\xA5}ǖ3\xC3&quot;\xC59\xE4\x{D9F8}\xA1\x83        l\x90\xFE\xFF3\xBF\xA5\xCF\xDD{G!\x83\xFE\xE4h{\xCC\xE09\xC69.l\xA9\xFA.ؼw嶓IJ ܯsƩ#UӀ\xFEqμ\xC2\xE1\xCD\xC5_\xE8vȁF8\xDC\xCF\xFDc\xD4/)\xFD\xE0\x84\x94\xA1Rm \xBD&lt;w1\xE9j&amp;]\xE0c\xE7Dy=
+\xF6縭        \xE1T\xFA\xFA\xC9F\x87s2\xD9Ј\xAA\xA9\xA4Zh\xBCT\xAB\x90\xDC?}\xA7o\xBF
+w-\xEE\xAAz\xAD\x8B{\x9Fo\xDC\xF6\xC9g(\xBB0K\x9E\xB2\x89d\x8B\x9F\xCBJ1mT9\xBF4\xF7pc
+endstream
+endobj
+190 0 obj
+   225
+endobj
+191 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Verdana
+   /Flags 4
+   /FontBBox [ -49 -206 1446 1000 ]
+   /ItalicAngle 0
+   /Ascent 1005
+   /Descent -209
+   /CapHeight 1000
+   /StemV 80
+   /StemH 80
+   /FontFile2 187 0 R
+&gt;&gt;
+endobj
+192 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Verdana
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 191 0 R
+   /W [0 [ 1000 635 ]]
+&gt;&gt;
+endobj
+23 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Verdana
+   /Encoding /Identity-H
+   /DescendantFonts [ 192 0 R]
+   /ToUnicode 189 0 R
+&gt;&gt;
+endobj
+193 0 obj
+&lt;&lt; /Length 194 0 R
+   /Filter /FlateDecode
+   /Length1 2540
+&gt;&gt;
+stream
+x\x9CuU l\x93\xD7&gt;\xF7\xF9\xB7\x9D_?'i\xE8\xEF\xFCuH\xE7\xE9\x84\xCD%Nb\x87t\xC5)\x8E\xD3\xEC8PC        d$T&lt;&amp;p\xA1 f\xA7l\xAAh7uC\xEAK\xEA\x9D\xFA{\x8D\xB6tڈi        b\x95\xA6UY\xA7!\xB54!uk\x95\x8AU\xA3T\x90\xC4;\xBF\x93\xB0\x8D\xB2k\x9F{\xCF\xE3;\xE7\x9E{\xEE\xE3:H Rl8:\xA57\x9E`&gt;F\xAD?\xF6\xF4\x98\xF4\xD4\xD7m\xFB\xF9Ѷ\x91'\x877Θ\xB8        Ĭxr\xE7\xFEm\xFE\xD6\xFE2b\xDFD\xB9.\xBE5:4Ur\xE0\xE1\xEAV\xC7QQ\xF0%s\xE59\x94\x8A\x8F\xED+,a\xAF\x91P6\xEF\xDC\x8B\xA2MA\xB9e\xEBpt߈\xB4_\xA2\xFC(\xCA\xD2Ȟ\xAD#\xE3Ɂ\xD7Qމ\xF1\xC0\xA8\xC9\xF2\xF8\xC3l5\xB0\xD6mC\x8D\x86A\xD3\x9C\xB6_C\xF2Ad^\xD0p\xD0-0\xF9\xDD\xC0\xE5WUQ\xA3\x8B\xBA\x8C.hE9\xEB\xEBȀ\x8Dڨ;̹\xD9\xC4\\x82\x87;\xE0\xE6@`(\xFB\xFB~d\x88\xBA\xBD\x9A\x92\xA2\x92\xED\xD2X\xC1Xѱ\x82\xEFi\\xFA\xC62oY\x9Fد?UrV\xD4\xAC[\xBB^,)\xE3 \xE5Z\xD3a\xA3\xA5\xDD\xC0Z\x9D\xF9&amp;\xA1ɔ\xFF\xA0DꈛDGj&gt;q\xB9fkkg\xA1u\xF6\xC3\xD9Vc\x91 \x87\x81\xFA:\xF8VS\xA1\xB3auScE-\xA9!M\x8D\xAB\x9D
+E\x96
+\xB9\\xB0\x98 $+\x89\xC5\xCC\xC9\xE5C\xB7_=\xF8\xE3رm\xBF\xFF\xE9י\xB3\xE7&gt;&gt;O\xEE\xC8\xFCd\xE1\xFA\xE7/&gt;\xF0\xC1\xD8\xD1\xED\xBD\xBA\xD6\xEE\x9C:\xF4\xE6'\xAEL\xFFX\xDF\xFA=\x9A\x87\xDF=q\xFE3,\x81s\xEA\xBE\xF1\x97\xB0^f\xB7\x8E0X\x9F\xC6è\xAE\xC0TZ\xEB\xEB\x9C\xD4I\xCF\xCD\xF0\x97n\x95S\xB8\xAFU\x88\xE5\xC1\xA2b\xD9v9\xB6jg\xFF\x88i/\x81m\x96\xA9\xE6%t\xF8\xCB\xE9\|\xF4\xE1-裃\xA7ܝo|\x8F\xE2\xE2w\x85#\xC2\xF3«\xC2ڴ\xF0\xEDE\xE1
+wUsU\xFC\x9BpS0        \xB8C\x8D\xA2\xA8\xF8i\x8E\xE5-\xAB\xE39\x865:\x91\xE3X\x91ժS6|L]\xB5\xD0\xDA܌\xA3\xCB\xE5:\xCE\xD7\xCCg\x8E\xD7̋u\xF7\xD4L\x88SKl\x84NM3\xBD\x9E\xFFsv\xE1\xAB\xF9\xFD\xFC\xA5\xF9J\xE6\xF2|\xCB\xDCm\xE6\x8By#&amp; \xAE\mf \xB9\xB1\xF7[={\xFEPs\x83\xCBf\xB1\x87l\xD6K\xB1\x90;f\xAAF\xF5\xE7\x84*(\xC65\xDAU\xE2Z\xC0
+\x90\xFD\xE9Su\؛\xFD;\xDAa\xE12ʟe\xBF@\xDE\xC8 \x8F\x9F\x81&lt;\xB4\xFF\x8B=y\xDC\xCB`\xC7[PL\xC20\xBBa/\xC4\xFBv N\xC0\xE1\x9C\x86_\xC2;\xB8O\xD3\xF0\x98\x81\xBF\xC2U\xB8\xBD0;\xB9\xB1\xF9\x83\xEE\xF89\x9C\xC9\xE56\x83\xE8\xF7\xE1,&amp;&gt;        \xBF\x80\xF3-\xA7\x88u)\xDAM\xF8'\xC9C\xCD        X\x8F3\x9D\x84]\xEF\xFF\xB5\xEF\xC1\xB4p\xB1v\\xD1լ
+ne\xF7Cq\xF6S\xE6m$\x93L\xFF\xFC\xEB\xB9\xEC\xA6Q\x9FƼ\x94\xCD.TN\xE0ܧ\xD8r\xF6׸\xD6+\x8BV\x8C\xC3\xF9O X\xF6\xE0f\xE0
+\\x84\xB7\xA0\xBA!\x94\xCD˞\x86N\xE6m\xB8Ȟ\x84\xEC, 0G\xF8\xF7\x99g\xD8}$\x85Y,\xB5{j\xB5        \x8A'\xCC&amp;#5L\xAC(\xC8\xCF\xD3O财F\x98\xE09\x96!
+8\x92\xAC7\x99&lt;\xAE\x90*e\x9D\xECQ\xD6\xB8n\xADvH\xDBwT\x81\x94\x94f2\xC9\xF1I F\xAA\xF2\x86\xE4\xA1h\x9F\xC2F\xC3\xD5\x9BMS\x93nDAIt\xF7-\xCA \x96\xFE
+\xDC|UXa&quot;\xAA%\xB3l\xB1\xF4\xA8\x96IJ\xE5\xAE{D\xB6U;@\xF1\xC9#i\xE2k!9\x86\xF1yפ\xF1\xE6\xE5W;\xBC\xB2\x94~\x84\xB3'}\xD1Tid&lt;\xBC\x93\x93\xBCָGRHD\xF2*\xBE\xA7\xE3IoăZ\x85\xB5\xAFJk\xF8
+\xB9*iXs\xAFb\xEB\x92f\x9D\xBCN\x8EJi\x8D\x80Z)\x9D\xCC&amp;\xAEB\x92 \xC95\x92O•\xC6z#~\x9B\xED.x\x8BNJb0\x9A\xBC\xB9&lt;\xCF\xFDC\xD6\xDE\xCD+\xCAW\xA4\xEEc\xF6ɾH2\xE9\x93%_2\xB2h\x95%\x83\x9CLwu%G\xBCI\x81@\x9FBP\x9FI\x95*\xEE\xF1p\x9C\xA0Q\x84EӱUW\xED\xE8z\xBC\xCF\xEB)\xB5\xD9¹Ry\xA54ǫŪ\x88&amp;S\xA5\x91\xE4xKC R34\xE3\x98\xD6\xEB:d\xD5m\xE9\xE6v\xBE\xFB\xBD'vmY\xD1|\x8A\xC5\xDC\xE1~\xE3O\xCF\xECP\xC7\xF4\xAD\xFE3w,s\xF5&amp;m%\x8AZ\xC4/\xDEu\xECŋs\xF4\x97\xEF\xDEN\xE9MK\xFA\xFF4^@\xB7\x86\x98\xC7\xE0\xE7\x81)ޥ\xBEy\xB96\x84\xEA\x90\xFA\xD57V\xFD\xFE\xE5\xBCyV\x82KxJy|; P/\xE2\xD7\xEBYa \xBE#ĝ}k\xDCN\x87\x8B\xE9\xE1C6z\xA8]\xA6^$R\x92\xA9\xB5}mo\x93i\xA6탶km7ڸ\xD2v:娤\xA4\xF7.\xD4\xD3w/T\xD0\xF3H\xA6tUe)\xAD|\xB8\x98&gt;\x8C\xB6G\x90\xAAkꩣ\xA6\x82V!\xADnt\xD0&amp;$'R}C=\xADkXEkV҆\xC6:\xB0\xD2-\xC1B\xBA9\xE8\xA1\xC1\x95\xB4?X@\x9F\xD6\xD3MA#
+\xB5\xB4/\x98G{\x91Bh\xEF        \xEE\xA1\xFD+\xE8\xE3H\xDD~=
+\xF8\xF3\xE93}\xCC_L\xBF\xE3_E\xF5\x97\xD3.\xE4\xD7\xFB\xB4ӿ\x81\xEA\xCB\xF52s\xD4|\xD4\xC2\xE03j1\x98
+\xC9,Y\xAE\x99\xAFYD-~\x82`aĵֵ\xC5L\xCC?\xEAg\xB4l\xC8\x92Cΐ;        .K\xC8j
+yC=\xA1Xh4\xA4a;M\x9D\xAFu\xB2\xB1\xCE\xD1NF+\xF78{:z6\xF6p.\xA7\xBF\xC3ϰ~\x93\xFF5?\x9B\x8BR.J\xE2J\xF1\xB1D\xB4\x8A\x85\xA2Y4\x8A\xB1@\xCCu\xA2(
+&quot;'2&quot;\x88\xE0\xF3\xA9[ eJ\x9E2%Q\xEER21\xE8\x94\x94\xAF6ʓD׽I\xE1\xE5v\xA2\xBB\xA0+\xD8\xFEM\xE6\xD8s\x85\x85\x86\x91\x96\xB4 x1\xE2\xA9\xFAF\xB3\xA6\xFD~/\xBE.)O:\dF\xC7\xF6nݼԏ\xE6\xD8\xD1o:\xE6(\x8C7\xAE #\xB9SE\xC2\xF7J@~\x977Q\xCAQF\x96\x8C\xBBe\xF9_gE\xBD,ʴ\x92\xF1\x84y\x91M [\xBCȺ=\xE1\xE5I\xFEk\xF6\xF5A\xA5\xDF
+endstream
+endobj
+194 0 obj
+   1918
+endobj
+195 0 obj
+&lt;&lt; /Length 196 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x90\xCFj\xC4 \xC6\xEF&gt;\xC5w\x8BI6=\x82\xB0\xEC^r\xE8\x9A\xF6\x8C\x8E\xA9Шs\xC8\xDB׌\xCB:\xA0\xF0s\xE6\xFB\xFC~\xEDo\xBD\xB3        \xF8{\xF4j\xC0\xC6:q\xF1kT#Nֱ\xBAmU\xBA\xDDj\x96\x81\xF1,\xB6%\xE1\xDC;\xE3Y\xD7\xFF\xC8\xCD%\xC5
+\xEDG&lt;2\xE0oQc\xB4n\x82\xC3\xD7u(O\xC3\xC2\xCE\xE8TL\xD0h\xB2݋ \xAFrF\xE0$&gt;\xF5:\xF7m\xDANY\xF67\xF1\xB9\x84\x86\xB8.\x91\x94׸\xA90J7!\xEB\xAA\:\x93K0t\xFA_\xBF-\xAAѨoi\xBA\xCE\xD3U\xF5tD
+Q\xFB\\xE8\Hj \x8D\xE4{w\xD8\xD8\xD7\xF1\x88\xAF\xD6sr\xDAE\xDE\xC3Z\x87\x8F\xB5v\x9D_z,x\xC7
+endstream
+endobj
+196 0 obj
+   243
+endobj
+197 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /LucidaSansUnicode
+   /Flags 4
+   /FontBBox [ -614 -439 1384 1144 ]
+   /ItalicAngle 0
+   /Ascent 1096
+   /Descent -439
+   /CapHeight 1144
+   /StemV 80
+   /StemH 80
+   /FontFile2 193 0 R
+&gt;&gt;
+endobj
+198 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /LucidaSansUnicode
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 197 0 R
+   /W [0 [ 750 538 288 533 652 ]]
+&gt;&gt;
+endobj
+108 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /LucidaSansUnicode
+   /Encoding /Identity-H
+   /DescendantFonts [ 198 0 R]
+   /ToUnicode 195 0 R
+&gt;&gt;
+endobj
+199 0 obj
+&lt;&lt; /Length 200 0 R
+   /Filter /FlateDecode
+   /Length1 17300
+&gt;&gt;
+stream
+x\x9C\xAD{        |\xC7\xD9\xF7\xCC\xEC\xECjW\xB7dI\x96\xE5C\x92\xE5[62\xB6lc0h16\xD8b.\x83m\xB6\xC1pH0g\xB8R\xD3&amp;\xA1        \x90В\xAB\xB9y\xDB7I\xDB8@$nC\x93\x94\x90\xA4iC\x92\xB9/B\x934$y[JS\xB0\xE4\xEF\x99Y\xC98G\xDF\xF6\xFB~\x9F\xEC]\xCFήvg\x9F\xE3\xFF\xFC\x9Fg\xC6#\x84\xF4h+\x90o\xF1\x95]\xBD\xC2\xFCs\xCD\x8D\xFD\xF4\xF6/^\xBF\xD67\x{DF89}\xA1q\xD3·^޻\xF4ʪ\x99\xA7
+\xAA9
+\xC7痮\xD8x\xF9\xFBJ\xE1\xAF\xE1ڟ&quot;T\xFDŲ%]ݿ\xF9\xF8\xB6;\x9A\xF0&amp;\xF4U.\x83\x8E\x94q\xD2
+Ep\x9C\xB3\xECʵlo\xFA\x80\xE31p|z\xC5\xCA\xC5]\xAE9\xF7W3\xE0x\xED\x95]z\xC9a\xE1}8\xDE Ǿ\xDE\xD5Kz7.\xF9\xD3\xF7#D&gt;@\x84
+V\x87$\xA3\xD5!\xC7c\xA1\x88m\xA1\xDFz\x91\xEFF\x97\xFAm~[.\xEC0\ua\xAB\x88.\xB2\xBF\xEC\x83\xD11\xECP2\xA0\x94\xC7AAH\xDAi\xB4\x9E/ \xA1Pyht)vH\x81켊pey\x99K8\xF0\xE6\x{DDFF}\xF1\xC6\x{DDFF}I\xF6\xF3\xBFo\xBC\xDF?\x89\x908F&lt;\x85TU\xA3Ϋ \xEB\xEAu3u]\xBAU:\xDDz        [0\x91\xBC\xD8)\x85\xA5:i\xB6t\xEE\x94\xFAp\xAFd0b*\x91v\xDC&quot;\xA2ò$`*K\x98\xE8\x8E}yXQH 4\xCE6y\xE3\xC2\xA3Qjѥ \xD6g\xB5\x92\xDE0x\xE3}\xB5\xDEb\x81\x96̾\x85\xEC\xEC+(\xCFd\x82\xBD\xD1d\x92Z\x90\x9E}m0X \xAA\x81~1\xB2\xAB\x88\xC4ΐje\xB7\xA4G\x87\xF9-\xA1\xF1\xBAj`\xB7\xA4\xFCb8\xFE\x8C\x9Ff7\x86\xC6_\xB3{\xB3S|ht\x85\xDEz&gt;\x98\xF8\x9C\x85-z\xE90\x9B\xAD\xBAEj&quot;5\xF6\xEAj\xE8\xEAU\xD1(\x8A\xFA\xD8\x9D\xD8\xCA\xC51\x8FM8\x86\xCB\xC9u\xC7\xC4\xF0\x85߈\xA7.\xAA\xF48&quot;\xA8g\xE8 \xED\xA4[\x90y\xD1I5?\x8FM\xA5t\x9C\xA9&amp;km25e\xB5\x9Bf\xB8zL\x9D\xA9L\x9B\xB2̸\xC6\xEB\xB5d\x8CwR\xC3ѡ\x8F\xD446(\x83A\xB1(F\xA3_e\xAF\xE1W\xD9;\xA4:\xAF\x9Ax˃|\V J\xB5\x8EKj\x8F\xDF\xE2\xF7\xFA#~\xC1\x8B\xB9\x800N\xB7\xBB\x99\\xECVv\xBB\xCC\xCE\xD8)\x93\x83\x9D\x9F\xB7\xF6e\xFB6_\xF2\x95\xE1\x85ˢ\xD6s\x9A \xCAC(r\xB6&lt;\x8C\x9C\xB5W\x87Ύ.\x8Db\xBFÕ\xEAr\x95\x97UV\x95;%)\xE0C6+*/\xB3;\xF3\xF3\xF2ْ\x8Ev&gt;7\xA12\xBCg\xEE\xEA?\x8F\xD6w\x9C\xB82\xFEI\xFC$\x9E{\xFF\xEF\x8F\xE1}\xFBo9d$\xE9Ko]Z:\xBF\xF8łJ\\x82\x9D؎k\xE3_\xFE\xAD\xE8\xF7\xBClq.Xo%\x8D&quot;#\xFA\xEB1$\x83\x9EؠP\x98j\xE0\xF6adC\x96\xD8;\xEF`-\x93\x90)\xE3&quot;R(\xE4\xD2&lt;1G\xC2x\x9CX\x87\x9B\xC4y\xB8\x95\xB6\x89\xF3 W\x92E\xB4[\xEEQ\xBA\xF5W6\xE2k\xC8j\xBAVެ\xAC\xD1o2d=\xF0@\x9DG%\xA4X\xA2p9\xC3^/\xB5\x88\xB2AP\x8C\x91D&quot;[$\xAF\x92\xE4\xE1\x9B\xC7\xCDq\xB7\xD9j\x8E\x98W\x9Acy\x97\xDB4\xCE\xF0\xD1B\xE3\x82jR\xA7\x9B\x8F\xF6Z\x93&amp;Z\x90\xEA0-\x89\xD8S\xAB\xA1\xA6\xB4\xC3\x83_
+Q1\xB0\xDF\xF2\\x8ES\xA4\xCA\xF8[?\x8F\xBF\xFF\xE0g\xF1ןy\xA7ށ\xB3\x9E\xA2ы\xF7 \xD1\xC1\xFBit\xF0n\xA1\x8Bm\xCC\xFF\xB7}(\xF1ST\x8A}\xC7P(\xE1b%I_ńu3k\xB9\xCDl\x9F\xCA\xF7.\xBEw\xD9ޡg{\x83&quot;xQ ]vx \xE5w\x8E7'T-WZǤTx+\x8B\xA6\xCA\xF5\xD6Ɣz\xEF\xD4\xFC\xBA\xA2VҒ\xDE\xE2m)\xB9&quot;\xED\xF2\xF4%\xDE˃\x9D\xA1ͮ^o\xAFom\xD1ڒ\xED\x{18089A}\xADU2\xDBI\xD9&lt;4S\xF2\xFBsÙD\xAF7\x87%\xBD\xBF\xC0\xE9q1)y\x8E}\xA1\x99zlN\xE4\xF7(()?\xC4\xCEX\xB8m\xAF-\xB3\x94\xF5\x96\xA5g\xB4\xF5 8\xA2\xF5lLS3K\xB6\xD9@\x98\x93洪\xCEVۼ\x82e\xB6\xA5m\xEB \xAE\xB7m/\xB8\xC5v[\x81&gt;\xDA6\xBAD\x9DtfCmvN~E\xB9\x8B\x82W\x84\xF3\xC0p\xE1\xB7&quot;\x9CS^FS\x9D\x81\xBC0c'7r\xF8\xC9\xCC\xC6\xBF\xDFo|h\x9By.\xF8\xDE\xD1\xBB7=\xBC\xE8ē\xB8\xE6owbi\x89\xB9%\xFE\x97\x9B\xEE\xFEU\xE7F\xF5\xD3Y?\xFEo\xFC\xC0\xBCǩ
+5\xE3\xBE\x\xF9\xAE5\x8BzG\xD1 \xF7?\xF1yM\xF1'
+\xD7-\x8B\xF6d\x98 \x9C\xC55\xDC\xFEB\xF4a\xC9\xB8}A\xAD+ \xC2o(\x82\x82-&amp;/\xCE$^S        \x99J\xF3\xE6\x96\x93M\xD8H\x88\x80=p\xA9\xAC&amp;\xBD\xA0\x97\x89\xA8u\x83\xA5\x92N}\xAF\xE4ˡ\xA0\xC0b\xFBD&amp;\x9FI5Y0r\xFF\xE1p Pf\x93\xF7 \xC1#z\x9Bۇ\xC8 \x98\xE3\xA5\xC8/\x86\xE3\xF3/E\x9CLA\xD08î\xB7ව\xE3fwa\x8D# =\xC4덗\x93#&amp;\xBB
+`\xA3&lt;ՠ3\xA2A\xE7\xEB\xF1\xE3\x9B\xFE\xEE\xA6Ǚ\xE5\xCB\xC7qt\xC0\xA8p\xB4\xDC6O\xFE2\xAEn ޳\xB1\xE2\x8F\xD7ƿ/9=$\xE4\xF2\xEF\xA6}\x80
+:t\x83:\x91\xF2x4C\xEA\x94z%Itb\x9A\x90*NƍB+\x9A\x877
+
+\xD11\xEF=T\xA0\x8Dh2%H T$F\xB2 cL\x81\x82\xB0\x8E\xABي\xB5ʈ2\xD0Tԃ6!ݨX,\xD0ZO\x97\xD0uT\xA4ߓ\xAD\xA7\xA3 \xA2A[ju4\x84\x92\xEF\xD5^E\xC1e\x99\xC3b\xDA[\xFB\xDCK\xF1I\xBF\xC1\xF3p;\x8D^\xD0\xE1\x97i\xFE\xE03B
+\x84yt ƾbA
+\xF2\xE1l5\xB7\x8CT;\xCB|\x93H\xA3\xB3\xD67׾\xD4\xFEyK\x86ެH\xA9\xB56j\xB3TI1\xC9
+\x8D\xF3&lt;L9ҙo$\xE7K\xC9P\xFA\x85\xA6\xBED\xECԂo|v\x98\xA9 i
+\xD5j!{\xB3\xBDّlbNW\xB8\xCEn \xAC-\xF16\xEC=Ƥ\x81\x87
+\xC4\xC8/6&amp;
+Ę4\xD6\xD0 \xC4(\xB1[\xD9(\xD9]\xA0\xF197\xE3N\xFF7 D 2\xC31d{6\xC2\xC2L5\x8B2        ?\xCD\xCBg\xB6\xE1\xAC\xF2b\xC2&lt;\xC0\xD8x\xF0\xA1{/\x9BR{\xA8{ލ\x8DMO\xF4&lt;\xFF\xDES\xBB\xF6\xCC&lt;\xD04cM\xE3\x9D\xFD\xA4f\xE7{\x97M\x9D\x99W/\xFF\xB9.\xD2\xFF]\xFC\xD3\xE7ON\xAE\x8E\xED\xC8\xF1\xBC
+Fq
+\xF6q\x86\xB1CՁk-\x8B،\x9A\xC5\xD4!\xA9&quot;\xC0\x9B\xA2(\x85p\x87\xFD~A\x89\xED%\xBDd\xF4\xA3L\x8F+\x86ޣ\x93\xC0g\x99\x89\x9A[\xE3)\xCD\xE3k\xF6\xD4f4\xF8Z\xA5eR\xAFU\xB1cb\xDD\xCD\xCBY\xB5\xA2\xDE\xE6 L\x8F\x9C\xB6$\xCA,\x8A{\xF1d\xAB\wL5\xAEO\x99\xAB\xD7\xCA{\xB9\xBCQ׫&gt;\xA9T\xB5\x84\xBB\xB8\x85\xAB\xD4\xC2\xD5y\xB3\xA6\xCEt\xAE\xC6t+;\x93\x9E.\xF3\xB0/\x8A\xABAv7\x99\xDFM\xE64@\xE6Wʜ\xC8\\xE1\xB2\xCC\xEE$o\xF3\x85\x8D\xE0A\x9A\xDA\xCA\xCAPRMГ?P\xC1\xD4Dl\xE1\xCA*\xA6$W\xAA\xAD\\xB0q&amp;\xCA\xF44i`f\xFFғ\x99Y_\xF7hW\xEBΦ\x81\x81i\xA6\xDCտs\xFF\x8C\xEB&amp;_\x86\xC3ض\xFB\xED˦\xCD\xC8\xCDǧ/ \x91\xEFf{\xDE|\xFE\xD9\xDFM\xD1\xF0\xF1\xAA\xA1\x85?\xD2
+\xA8\xCFV\xE7IDIw\x92\xB4\xF4&lt;\xA5(\xA7L\xA9ɩU\xA6\xE5,\xA3\xAE\xD9\xFE\xB9\xA19e+\xC5\xAEN_whI\x99c\x93\xD8g[\xEB\xDBX\xB06\xB8 \xEF4m\xF3\xEC(\xF8\xBE=݀\xCC\xEEB\x9A%l\xCD\xF7cr\xC9\xCEΛ\x90Eu \x8C\xECX\xA73L\xBF\x99\xEF Q!Q!Naz\xA7_n.&lt;\xB7\x9E\xB7ef\xEAnPܣ\xEC\xB79\xA9]\xD6P
+\xACϜ\x8E\xFCnb\xBC3᳟ \xD3\xDF\x9Fq$|v\xD8U\xBFL\xBA\xEA\x97j&gt;\xD7\xED\xEE
+K\x85\xB7&quot;R\xD1Q\xD1W!\xEA\|\xAC.v\xB1\xCE\xC3Y\xF5\xF60 \x8CA\xF9\x87\xC7\xC8`04Lf\x87)\xEC\xA2,\2\x8Bjy\x8B\x83.\xF3\x87aR\x95 5E\xA6j\xC10\xD5%\xFC1\xF6Ɩ\xDFMַ\xBD޽冼\xBC߭ط\xB9z옟]\xD1\xFDb\x9D\xBE᷋\x97\xEE- 7x\xED\x94)\xB8\xF6\xB6g\xC6^\x99\xD4&lt;cnmv\xB6[q\x9B\xF3o\xB9\xAA~Si\xA8jt๊\xC6\xE6\xCB\xEA\x97ѭ\xCFj\x9C
+~\xF50(\xFCZ\xF1
+\x9Eݯ\xA6\xE0:\xA2LUD\x90DQ\xEES\xB0r3HdP-\xE6\xD2\xEA\xA4ܒ)W\xE5\x88C\xB9\x9A\xA8&lt;,w\xF6\x89xd\x80{\xF7kn8\xAE
+G\xBA\xC1É\xC86đV\xDC)[~\xF4\xB4X\xA7\x83gw\x8B.\xE0@E\xB9Є\xAF}\xF5U\xE3\xC0\x80\xE8~\xFAB.\x84&amp;\xC41&quot;\xDEF'\xD6\x80\x91\x85Ԓ\xF1)\x8Aʊǖ\xD6)M)ӊj\x8B\x9BJ\xE7\xE3\xA8\xD8\xEE\xEA\xC1+\xC4\xD7\xB1\xD7g\xCB\xED~g\x81\xAA\xD9#7\xCCt\xE6\xE8`\x98\xAA`5ѩ\xB3HX\xF2\xE7\x94q\xC0\xB0'AŞ4;\xD6P5F\xEFA\x92\x9B#\xCA\xCC\xFFQ&lt;\xDFD\x932oY\xA4\x8Cy\xAA\xE4\x92
+\xA6\xBB\xAD\xEC.n\x86&amp;\xB9\xECNn\xCE\xE2\xDC\n\x89\xDD\xC9ͯdm\xD8o= \xEEFN\xA3\x88\xADښ\xC0Y\xC0f\x95\xC1a@ɵ&quot;\xFF%\xABC\xAC\xF8:\xC0T}`\xE2\xF1\xF8\xB9\xB6f\xE9G\x9D\xEC\xEE\xFCN \x90\xD5r\xC7\xC0\x9B\xC9_\xD0um\xA3\xB1\xA0\xE9\xBB\xEA\xAF\xBBm\xD6\xF5\xC5O\xC7ϧ\xA5\xB7W\x8C*̿\xAA\xEE\xF2\xBAI؏u{OM\x9BҜ_P:\xF8ҕ\x9D\xF9҉\x81\xA7&quot;,\xA7n\xD6:t\xE1B5Ep\xBA\x9C뜂\xD5$צP\xB3\x88M\xF2\xB7b\xFA\x97܆X\xCF
+\xDBG:\xFC\xA0\x9A\xCA\xD5@G$\xBB\xD9        \xE7\x8F'\x{1BBA8D}k\x83\xC7\xA6\x9Fpp\xB8\xC9\xEDuw\xBA\x89\xD5\xC0\x85n\xE0\xAA4p2p\xD1&lt;\xA6\xA4͛XVždJ\xBB\x89ك\x81}\xD1Ŀǟh1\xDB\xC4o\xC7\xFFá\x875x\xCC6\xEDL\xFD&amp;\xA9\xB69\xB9\xED\xF1``\xE3l\x9AG\xE9d\xD8v9iǀݝ\xB6\xB0i\xFAOhX\xFC\xE8/ɖ\xE9;\xF2\x8A
+\xA7\x8D\xFC%\x8Dni\x9C\xF5\xFA\x8B\xDCo\x96Al\xCD\xBC\xCF\xC4_\xAE\xB6\xF54\x90\xA6wh\xD0\xCE\xC6U\xCC\xF7%|\xDFf\x9E\x99\xB5\xA0x\xB9\xB93se\xC9f\xFD&amp;Go\xE6\xE6b=\x91 Ɨ\xDAT\xB1\xD9|rs\xCE\xC8pG|t\xF4DY\x8FeK&amp;δ\xE5W\xA8\xC3*\xFBf&lt;v%t\x96i@י=\x81\xD9g\x98R\xA0\xE5\xE6:\xF3$T5x8\xA1\xBCw5)&quot;{\xB7ϩN\xAE-͗nJ\xA0\xB70\x8A\xD9\xFB.\xCF\xC7L\xEC+\xA3d\xF6\x95Q\xE9s\xAAx\xC6C\x91Af\xD72\xB8~y\x8Ad\x90\xB8\xC69\xECx\xD9\xC3\xC0\x8Dð-&lt;B!g\xBF\xBE\xE1j\x9A\xAFA\xA8j\xC3\xC6&quot;-\x84kd\x8BCNUŰ\x9AϹ\N\xC1ƯJ8]\xE6i-\xA1M\xB3ny\xF9\xCA%\x97\xE3\xAC%E\xBD\xE3\xA7\xE9\xD2W\xBD\xB4d\xFD\xC3j\xA4\xF6\x89\xB9\xD7\xCD\xEC^{\xF5\xE2W\xDB\xC6\xDBS\xBD'\xEF軳\xA4\xC4'g\xAAsܩ\xD6\xFC\xDC'-9\xF9\xA1Q7\xAF\x88g\xE2*ё\x92\xDA\xD5\xD2\xD95\x9Dq|\xF0;\xC6\xF1%t\xA3:1\x8FJ\x95\xB4Z\x9AL%\xA9P\xACUq\xA6\xD8)\x8A\xA3\xF6\xD4#\xA1\xE5 cP\x950M\xD6\xE1MDF&quot;Y'`\xD2v\x82\xCE\xF1s\x9F1|\x8An\x94-2\x84a\x89\xB0N\xA0B\x93\xB7\xF0=H
+h\xFE\xB9\xA8V\xE9\x89D\xBF\xC2\xF2\x8B\x96,/g?^\xF3\x8Bx\xE47\xB8\xCFc\xC98$\xE2;\x84\x8D0\x9A' ~]
+\xBCP@ר\xF9c\x99E\xA0\x9Bp\xCB\xFDq7\xD3
+\xC8\xD3iH\xD2Y\xF1p\x80\xC2\xFCz\x9C\xF4Y&lt;쳘'^p\xFC\xE5\xDE\xD8I/\x85'\xAEb\x9A_e1\xE9\xEA\x81ɡŢ\xF0\xA9U\x80c\x94
+Y\xA6g\x9C9l
+;ƹ\x9A\xCCu\xD6:G\x93K\xB6D\xEA\x8Czc\xB2ngL:\x85\x91]8\xD3\xD3Ԅ\xB1&amp;\x89 \x98;\x89;q\xE2\xF5\xC3\xDC        \xBE-縠\x8E\xD7r\x8E4K\x9A7-\x92\xB62\x8D\xDA)]\.v.{\xBAĩ\x8DĽL\xE2\xA1G\xE2\xF4Tb!'\x8D\xDD]\xB2\xF2\xA2
+\xE5E\xCA\xEE)ms\xFF˺\xDDYN`\xF3L\x91؊\xD9Z\xA5
+iyDW\xC5?\xFA\xCB\xD9\xF8\xC78\xF5\xEC_\xB0\xFB\xA9o\xB9\xED\x81o\xDD\xFF\xFF&lt;\xFE \xAE\xC16\xF8:\xFE\xF9k\xAF\xBC\xF2\xDA˯\xFD\x91\xF3\xD2:\x84\xBB\x94\x85\xDC\xE8Yu\xA9\x87\x87c\x8Fʙ\xB4\xA3ڱN\xC0\x84#Nd0O\x90m\xA2IF\x8A\xAA\xC8+\xCD\x875\xC8\xD6\xE0[ܘ;\xB3\xC7bCf\xD5d\xAD2\xBB\x98l\xCD&gt;vg3\xFF\x8Ey\xD8̣ؓ\xCC\xC3\x97\xD9\xCE\xEE\xC75e\x99}\xEC^\xE6\xEB\xD3F&quot;uYYYLk\x84\xC0\xFB9\x94\xC7\xCA&quot;\xB12V\xC0        \xA6\xE7\xF4;\xFD\x80\xDC\xC0m\xB4zq\xAA`\xD7{\xBB\xF36^\x89g\xC7
+\xF4\xF5\x9Dx&quot;\xB2\xA4H\\xA8\xA4\qC\xDE]\x83\x85'\xEF\xCA}\xF6\xF7Fd\xF2\xD8x\xC4\xCBt\xD5a\x90\xD2t\x9Bt\x9D\x8Ah\x83\xCBߞ\x9D\xFF\x96\x80\x{165AA51}\x96o\xC4I\x92@\xDEO\x92\xA6v^-綦EK\xB3\xC6]\xB4\xF9I%DB&gt;\xF4&gt;\xF7:9Q\xD5N\x8C\x92lPNf\xD0\xD0\xF8M\xC82\xBF\x85\x9C \x91\xD0\xF8;\x91\xF2\x8Eԯ\xE1\xEFW2&amp;
+|9\xF2\xD6$&quot;d\x85\xB4\xB6r\xDBp\xD5VN\xE7
+t\xFC|y\xFF3VO\xFA\xDCY\x8D?k\xD8\xD24\xE3\x8F/\x91\xDFǮk\xD9,.\x986N\xA8O\xFA\x84\xC4ĻP::\xA8\xD6E\x8F\x83U7\xC1dЋ\xE9\xE9\xA9Ai\xCE\xEC\xCB$ftC\xA6l\xB2\xF2\x97\xB2r        X9zX\xB9\xAC\xBD\xACcF \xF3m\xD5\xC6$\xA1ㆦ3&amp;\xCA\xF6\xE7\x93e\xFB\xCFT\xA7\xA2\x9C\x86\xF2{\xE8\x98H\xB8\xBCu\xA9L\xBA\x9D_\xB53\xED\x95C\xD6\xF3e`d`_\x91\xF2rne\xD1\xDCċ\x83m\xC1\xCB3;\xBBTG&amp;\xB1\x8AkF?t\xB0\xAFo_\xDF&quot;\xBB]ӛGu\xBB\xF4z\xB3\xFD\xE8 d\xD6]xb\xFCɻ\xE2B\xEB\xE2`An\xBA\xA2\xE5\x86ˇ\xFE,\xFC\x8D^\x8D\xFC\xE8Qu\x9A%\xD0 A\x9Cm.r\xE5\xB8\xC7\xE2
+\xF3XW\x85\xBB7\xEB\xEB\xCCͮ\x89\xEE6\xDCb^\x8E\x97\x987\xE15\xE6\xAB\xD51R\xBF\xDF\xE2\xB2T\xF6\xFE
+݌        ({;\x89`o\xAB\xA3\xB8M\xDDH\xE5\xF175]\xE1\x91Y\x91\xB5j        \xC3+\x85\xD3`\x85;\xB3\xC2\xE0\x99}Cٖ\x9D\x94\xCA\xD9`\xA2U3\\xB0\xE4ٗ&amp;\x96n1L\x91k%h/\xB0ܿ-|\xA0c\xE3\xF3
+\x8D3p\xC9?:\x8FM\xD7\xCF}l\xDE=\xC7=P\xBD&gt;T\xD8\xE0\xD4O.)\x9B\xD2\xD0\xF0\xE6&gt;l\xC7c*\xF3OMj\xF8\xE3KϿ\x96\xE5v\x86lڜ`\xD4j\xF0G;P\xC8d5\xF9L\x82Q\xB14M\xD2[DE\xE6\xD5\xD6D\xE5\xE1 \xB5\x80\xBBr\xA8\x8E^1&amp;,\x81\xCBC\xC7\xDFL\xC7MG\xE7Q\x92!KY\x89R\xD2l\x94a\xB3Qr\x98\xD9(\xFA\xA4d\xB8\xE7@㟚\x88v\xA6|{ŐՁj\xC0dl\xDCa\xC04\x82N\xA6
+\xAB\xF5E͕\xF3\xEEk\xE8}\xA8mtq\xB1\xB0W\xAFL?\xF8g\xFD\xAF\xF6&amp;Q\xA7Žc\x80G{u\xBBZ&amp;\x96q\xCER_\xA9\xB749U\xDF&lt;\xFBR{\x9F\xBC9Ø\xAC\xB9\xE1,U\xD2\xE4D\xCDMb57J$YsK\x8A*\xFF \xE723'\x8C\xE6ӤќK\x86\xBD\xBF\xFD\xAF\xA56\xF9?-\xB5
+W\xD8\xF8\xFFUؾQ`\xFB\xD7\xF55\xAB\xBD~[}\xADyҔ/\xEF\xD8]T\xF3\xC1\x95'&gt;|\xEA\xBA}\xB3\xFE\xBBaƚ\xC6=B\xAAnxwZssI^Xr\xC4^\x9D8;\xFER\xFC\xCC\xC9\xDFMۚ\x93\xF1&quot;J\xDA\xED\xF9\xBBp\xF9\xD7\xF3'\xFC\xFF\x98?\xD9F\xE4O\xC6\xC4D\xC1`r\xC6 \x9E\xD0G2\xA5z7$.\xA8\xE1ABK\xA9.%R\xFF*J|%\x91\xD242\x9C6]ʧ\xF8\xC0\xFF?$R\xFF6\x93\xB2\xFD\x99\xA8\xE2\xC5D*\xF2\xDF\xDFM&quot;8\xF8h\x85\x9A\xE7\xC1E8H*P5\xA9G
+ \x9E6ҍ֢_ lRa.M!$-!\xEB9\x8D(8\x90B&quot;\xF137\xFFg\xC6V\x91=        \x9D\xEAR\x81K\xF1I\xB5I\xC8
+SrR
+\xEB|uy\x8F\xE9\x8E\xE4\xE2\of\x86\x9CZ[\x90M3El͐\xD5\xEC-)-QKf\x94\xF4\x96\x88\xFF\x9A
+\x970\x96\x9E\xCAD\\xBB9)\xE6U \xAC\x85{\xDE8\xA7\xDA8;.\xE5e$\xF2_\xB9\xA21C\xB1 \xA7\xC6|:wYs
+\xFEL \xA6\x85?\xD3Ÿi\xF1X\xB9?\xB1\xE7X\xF9s\xE0\xF8e-ͳ\xE6\xF1\x88\xC9k#Vf\x93\xEC\xF6֤qB\xE3&quot;W.4\x86T?{\x94\xD5\xEB\xE1\x8F\xF1\xF0\xC7x\xF8c&lt;\xFC1OFҌ2\x86\xC9F\xBF8#i=I{\xCAft23\xB4Sk\xA8\x9C\xDCdty\xAD\xAAu\xABU\xB0\x86\xA2\xE7\xBEfO֯\xB3๯XBrM
+\x87W@\xD7\xEA\xE8\xD7
+\x92&lt;۷f\xF0\xA9\x9A\xF5\xE9RL\xCEԹ3\x9B\xEFj\xA8֜~3ć\xAF\xBE;\xF5\xC0G&amp;[\xB6\x8B\x9Bǧ\x8EϊU\x90-S\xB7\x83\xC3i~gKg\xCB;'5\xFB\xAC\xAB\xDB
+\xF1ɀ\xDESoP \xE9\xD8!8t\xE9J\xBE\x90\xAF\xABA\xE3pXӰ֍S\xC6맡&amp;\'\xD4\xD1:\xA9NפL׷\xE3\xA1]lѵ+-\x86\x95\xB8SX.v\xEAV*\x97\x82\xE4)\x95\x9B\x89*_Cz\x81\xB4y\xF4=\x9F\xE0\xE5Sg\x82\x87\x8A\]\xA2\x9B\xE8:6\xBDK\xA1\x8D%b1(\xD5O I0\xC8M\x9B\x8F3\xA9\xA6\x95Ŕ')\xF4{l\xBA+Z\xA6\xCD \x95\xF1\xA9\xA1(OS\xB5I\xAE\xB3ÿ,w\xF4\xF3Y]\x96&gt;\x96c\xBA\xF5,\xA4\xBFz\x8E\xCF8\x8B\xC7\xE1\x9A7\xE3\x8D\xF8g\xF1٤\x84\x94\xC6\xDB\xF1\x8Fc\xAFk\xF21\xD1\xF5\xE2)$\xA2uG\x88@+0\x8B\xD8\xA9)\xDCe\x90΢\xC3ԁ͉\xECQ\xCB\xCA\xF0\xF0\xC2,\xA7\x91\xDCW\x92 \xA0\xF11_\xF8\xC0z8\xC6\xE2҈\x8C\x89`\x963\x8D.\xF5\xFBK\xA3\xEBg\x9D \x89\xA7.\xBC1\x95\xAD9c2\xA3L`\x81j{\xA3}9Yf\xA2\xAE\xB0,\xA4\x86u\xF2z\x84-N\xC4'\x93\x91\x94\ݑ\x8C\x9C\xE7\x92H\xFDI\xB2prNM\xE3h\xBC\xD6k񆼪\xB7\xD3KS:\xFEN\xBA\xE4;\xE9\x86\xDFI''\xE8\xE9gIz\xFAI\xB2P\xFA?\xFC\x9DXC[g\xB2&quot;k\xE4;
+3\xB1\xE8\xA5l\xD0AX\xF4\xF3\xDB\xFCe4\xD5e\xD7i6\xF6Ω\x97x\xF0\x91}\x97_|1\xBE\xAF}\xE3\xB6[\xFCݦ\x8D\xAD'v=\xFE\xF8\x9E߷\xAD\I\xFE\xFCB\xFC\xC8\xFC\xC8\xF1T\xA4\xAA#\xFE\xCC\xFE\xA2\xBE,\xFF\xE2\xB5E\xD5S&gt;ށ\xDBa\xD7v\xCD\xEAع\xAA \xCF%\xA24W\x94u\xA8DˆK\xFFP4X\xABI\x87\xE1;l\xA4\xF1s\xF8*μx?7\xD8\xC0\xBD`7\x89_ \xF8\xC8\xCC &quot;
+\x92\xCD%8m9\xB6q\xE2S\x859\x92ɪ\xF66\x89
+\xA6zssfsV\xA3\xB7C\x88Ҩ8_\x99k\xEBH[\x98\xCD\xE8\xC8\xEC\xC8\xEA\xBA\xA5%\xB6EΕY\xBDd\xAD\xAD\xCFӗї\x95+\x809q|!̮&quot;Z\xF9\xD7j)\x91C\xA5\xD5&quot;Y8\xC3Dk\xB1\xA6\xA6❊e/\x91\xFD.#S\x88\x8B\x99\x8B25\xB9\xB86\xD9\\xBC\x8C\xE6r\xF9\xEEʶ\xF1!\xA0\xCD\xDB\xFCl1R\x94\xED4EثYj\xA0~\xA3|z|\xC4_Q\xC9˽\xE1\x85'\xEA\xE44\x85\xFD\xFA\xE9M\x83\xD6\xE5\xAF\xCC?\xBE\xFB\xB6\xEB翺D?\xE5\xEC\xCA1
+\xE5/o\xBA\xE2\xF4b\xC1\xAA\xFDp\xDB\xE3o\xF4\xAD\xBDV\xAD}90\xF6\xAD_\xB4쫝\xB0\xA1q\xF9\xAF\xE7\xB0\xDA p\xC1m`\xB7E\xE8u\xBC^\xF6\xC8Ay\xBC\a\xEFj\x92\xEBl\xED\xF2\x9C\xC2y\x93l\xCC\xCC\xF44Zr\xBD\xB9j\xAE\x90럚+e\x8B\xDE˦\xD5\xCDS%\xBD/\xDBל\x893\x81穣\xD8 g\xBA\xD8\xCBf\x9A\x99f\xF2\xF9\xB6L\x87\xF92\xC4O\xA0\xBB\x8B-\xC5\xDEb\xA2\xDC\xD4.$\xD7-\xC0\xBB&amp;\x96.D#\xF6곡\xA8\x96]\xA2c#
+ߗ\x90\x98eK\xC9B\xDD6\xAD\xB6\xE1\xD9k7\xBD\x99y֛=S\xB6\x85\x8BK*B\xE1.h\xBD\x9C\xB0561\xD8\xEE\xDFxdڌV\xFCڲ_N\x9C\xDCT\x9E\xF3J\xB8\xB1\xA0,\xB8\xA1yz\x8F/\xCF\xEB6\x92\xA1\x87\xE3k)- W\xFD\x9C\xE3̣\xF1n\xC1&lt;͉檓\xAC\xE8\xD2p\x9A\xAE@(\x9Bq\x83\xD0 6\xEB:p\x87n%^\xA9\xEB\xC3\xC8\xA9Og\xD7al\xDCD\xB1\
+\xDFf\xD3&amp;ay\x9C\xF5ҝ.빳l\xD1P\xB4&amp;Q\x8Fb \x9Eجv\xBEXH'\xA7\xC3\xCE\xE6\x92ˇ\x8F&lt;\xF3\xCC#\xCE\xDC\xA9ij\x9CPs\xFB\xF4x\xF7 \xF8]\?ᅠo|\xB2os\xFCO\x8A\x9F޺\xF9\xD9z\xC6\xE7\xAF\xEE?\xA0jv%\xAE6\x84\x8D\xE3\xEC\xE3\xDC\xE1\xACz\xDCh\xA836ٛ\xDCuYFg\xA3B\xFC\x8D\x82ޒ\xE4\xEF\xFFH\xFE~NM\xE7\xC0\xA4\x95\xAD\xEE\xCAe
+ON\x9B\xFA%F&quot;Rؕ\x9F\xE7\x93x\x86'ݚ\xC3!\xE4l&quot;\xB5?\x9B\xAC*E\xB1\x95\xF8}\xEC\xE5\xFC&gt;;\xA90)\xB1~\x84\xF1\xE8=\xE3_\xC6\xCF\xFD\xE3V\xB0\xF1\xF1\xD2\xD2r;n\xCE\xC9Ns\xE5\xF87v/\xDCB&gt;\x8E\xAF\x8C_\x8F\xB7\xE0]\xF8F\xBC9\xDE7\xF8\xE8\xCC7n\xBF\xF5\xDD˦_vY\xF3\xD4\xCFv\xFF\xE8\xE5ٗͺ\x8C\xE9*
+9\xDD\x80-
+\xE8j\xACS+T\xC8S\x85zy\x810G\xEE\x94\xFB\x84^Y\xAF\xD3        $\x91y\x96\xA9,\x9D\x8Ee\xB7\xC1k\x88: +
+}\x91\\xA7gy 2 \xA4%\xE9\x89B8!\x9B\xF0vb\xBF\xF0\xC1\xE0&amp;\xF2\xFDص\xC2\xD2\xD8jr\xF7\xF7\x85\x8A;\xB7\x9Edcx\xA5\x8B\x8F\xD3\xE8\xA1Z
+?\xC5t\x8E\xFCS=D#\x9Dj¥l\xC9        zH\xBF \xAEH|H\xA7B\xBCK8\x83-\xCA&amp;ԡYs\x9A)\xD9¹
+a\xC4\xC7c\xEF\xFC8\xF6\xF1\xFF\x98\xF8I
+k\xDCC\xFC\xB1w\xB6\x9B\x9C\xE5\xB6٣VK\x82\x94\xE2\x9C)y8O\xC8K\xC9sN\xC1\xAA\xA0\xA6Lq\xCEf\xA4t
+\x9D)\xD1z\xD2+\xF4\xA6\xACw8\xED\x98\xD7!l\x8F\xC0\xF3\xD9z:H0X
+\x9Di\xDF\xC2        \xBFqC73^\xFEu{\xB5\x8E&gt;U\x95\xF6\x8A0aS\xA2\xE0\x92vr\x8Cu\xFA\xE3&amp;4N\xD97\x8C\x97\xD4\xC4_\x89\xFB^\xD0\xD7?\xBBy+\xCEx\xE8.\xD8\xDC\xF7d\xA3\xFE\x85\xB8\x8F\x8F\xFD6RC\xAF!oBp\xABF&lt;\x87@贈^\x91\xB1l\xB2(\x94X[@\xAF\xCCN\x93\x9A{P&quot;\xBE\xDE
+8eE^tQ\x9D-\xE3L\xF0\x86\xB1\xB8:\xB3\xDE\xD2\xE0h\xC8l\xC7s-m\x8E\x95x9\xE9\xD4/1|\xAF3\xD8&gt;W[u\x9E0\xE1H\xB6\x97ZT\x82        \xDDa\x9D\x80E\x99-        T\xFD\x82\xCD        T\xC6\xC4\xE6\x922y\x93\xA1\xCD\xF1\xF4\x84\xAFR3\x99\xAC&gt;7Kf\&lt;,\xA7        
+_)\xE4@\xA291\x8D\xAA\xC5dq8&amp;\x8B\xF2\xF0|jb\xF5\x93\xE4Ī\x8A\xC5ë
+\x83e\xB1 \x80(؜\x83\x8C\x8C\xF2U\x85Q8o\xDAsgf\xA8Y\x886\xF1И\xF2\xB5}k|(n\x8E|߻\xE3p\xC3\xCC\xF9\xF7\xED\xEE*        \xD7\xCF\xF8\xF8\xE4\xC2F\x97ɌX\xBFx*PR~\xC7\xD5\xF7\xBEV\x85\xEFWgg\xA6\xC6~\xEB/)\xBAR\xAB
+\xACzO|\xE2j*`\xC9/\xD5l\x8A\xA8d0\xEC\xA9(UJ3\xA6\xD9\xE7\xE1y\xE2l]\x87\xA1\xD5\xD4j\xEBH\x99\x9Dju2\\xE0I\x89—\x9A\xAEW6:Iz\xD8I\xFCaE\xEF\xB1\xF0wu;\x85\xA4\x84\x84\xE4R6\x81 \xBE\xF6\x8A\xDD&quot;\xCCd#\xAC\xD0\xC1 w&quot;\xB9B\xAFeg9-|\xAE\xC9\xC2kI^k\xB2\xF03\x96e\xF60\xF0\x89&amp;[~@h\xDCZ]v\xA7Ff\xB2s\xF2\xF3HE\xD8^U\x99\x81&quot;eD\xBD[̚ߵ\xB8m\xC1\xC5{\xEF\x8C\xB5\xB7wu.h\xC5\xE2\xED\xF7 M\x89\xBE\xF7A&lt;\x86\xE5\xB7\xDF\xC6:1\xAF;\xFE\xF6ѣ񷺖\\xBEl\xF1b\xEC;v\xFB\x97.Z\xB6&lt;օ\xB3\xF1\xB8\xF8\xAF\xE3o\xC7߈?\x87\xAB\xDCT&lt;vjč\xEA\xFC\xB9z&lt;\x86\x8C+\xF5+I\xA7\xB0R\xEC\xD4\xF7\x81\xF6\x89\xBDzC\x8B2W\xDFn\xBA\x85\xB5\xC2:E\xF5DP$\x82\xE557ʧ\xE2(\xB7ZD\xAD\xB4\x8EΡ\xF0\xD1\xD5\xD3\x91\xF0u\x94\xCCΈe
+\xAF\x9B\x98\xCE\s`ӈ/\xC7HL̹\xB9\xEDj\x99\xE5\xB3\xC5\xEC5\xCF0 \x89y\xF3&quot;\xAC\x98\xA2\xB3\xFE\xDF\xCDO\x92D\xF3\xB3\xD14\xFD/\xB3\x90$\xD6 3 N\x9A\xD3z8L{(\x89\xB6A\xF3`7\xC5\xD16-]\x88\xAEF\xD1Ր\x88\xE1Ăb\xECϟ\x88/Z_r \x9B!$l\xC5)\xA20x\x8B\xB0\xFCBL&lt;5\xF8\xB40t\x80]\xC0
+k\xC4?  کV\x88\x93%\xC9(\x98\x85,[l^\x89ׂ-\xA3\x99\xBF\xB191/@&quot;\xC2J\xA1W\xBE\xE8S.l\xAE\x84\xA9\x9ES3\xB9\xF5fq\x8B\xE5s\x{2095F71}\xC0\x8EJ\xBE\\xB4޶8]\xA8\x9CWy#\xE5 \xCF\xFC \xD2\xFD\x89\xF2%$5\x83\xAF\xE3\xCA\xF8󑽹\xA3*\xE8\xB8\xF4V\xE1\xCCN\xA7#m\xFA\xC4 Oq?\x9C\xEFp\xECH\x8FL\xE8]\xD5OMS\x8E)l\xAA3\xF5\x9A$#%\xA3\xA9X\x83Q\xD2)\xA6F\xB6\xA0㸶2Z\x9D \xC8}3\xF03\x8B\xC5k!:#M\x92(+\xBD\x99\xF9r\x9F^1I\xCD\x9Bi;\xADx\x8E\xA4O$D\x92        \xD1gjO\x840[\xE6\x81(\x93Ǥ#\xF1u$\x89\xC9(\x8DpY&amp;V\xF4\x86\x92rа\xCC^]\xCE%\x92HA\xE3\xC0\xEF˒+c\xF4x\x90\xF1 \xF4p\xB9\xAD\xDCo\xC3\xF4\xD0[\xC7cU\xE4\xD4ѷ\xE2\x8BcO\xE2\xFB\xE3Q|\xFF\xA1ap5\xB9'\xD6\xC9|l$y72CϩN\x96
+\xC1\x84
+\x84R&quot;\x8A\xB2ѐ\x8A\xD3\xB7\x98&amp;\xA7
+\x85B\xB9\xD00\x8ET e4,\xD7(\xE5\xFA\xB1\x86&amp;\xE9\xB2&lt;M\x99\xA4o2\xB4\xE0vJ\xBB8Oצ\xB4\xE8\x97\xE0\xB2\x84\xF6\x88=\xCA\xE6\xA9t\x8D\xBCEY\xAD\xDFbet\xB0\xC5\xD0ȕ ɥ\xD0̽\xA4\x90\xE1\xF5\xD0\x91ǡ\xB0Ԅ\xEA\xA4Mh\x9D$\xA1\xD5\xE0bs\x87\xB9\xCFL\xA5\xA5&amp;\xEBg\xC0v+\x9C\xA3_]\xE2\xCCJ&amp;\xA6Q\xE1Wwc\xFC\x9Aw\xE2\xCF\xC6\xFBz|\xFD \xB8\x87\pd\x9A!\xFA\xEA\xC5b\xF1\xD4\xC5&quot;\xFA\x87\x8BY\xF4}\xB0\xE0\xCDB\x90\x85,\xE5\x99C\xAA\xC2,A+'K\xC9\xFBou=kM\x95\xEAuDQ\xF42\xD94\xC4_R\xF4\xC2`Q\x94\xB6HktD\xEB9\xE99\xF8\x94\xEAU}\xAF^\xD0+zI\xC0\x9BD1\x8D @\xE5\xA0jT\x8B\xDAQZ \xF7AW\xE1\x94^ \x8A\x95\xE2t\xB1E\&quot;nub\xB7^?Ēx\xF3hM\xA4Z\x8Bi\x89        \xE4\xE8\xF1\xE3ǵ?l\xBD+\xAB\xF3E\xFD\xC1/\xB0?cq\xE1+7Ƕ\xDC\xFC\xC9\xC2\xF2\x96\xF8\xC5\xF8|w\xBC \xDC|y#\x96 \xEF\xBEj\xE8\xCE{\xB3Q\xBAN\xAD\x96i-\xA45\xB95\xC1\x8AQ\xD3r\xA7'\x8Dj\xA5\xA9Q\xF7\xAC\xF4^\xBC9\xD7b\xCB,kt6:\xA4\xCCD\xDERaS~\xA4x8r4\xCCԨo\xB5\xA5\xDA[M\x8A\xFD\x8E\xA1ʋW\xFB\xC70;\x9BXj
+Ku\xB5FY\xAE\xA2\x95&amp;y\xEEL/\xA5*\xF6\xAAᙌ0\x9F\xC9Χ\xB3/\xB1`@\xBA\xA7\xAD}~\xFC\xB3c\xE19\xFA̞\x89o]tDt-\xF8aSk.\xFEӊ\xA3\xF5- \x9EWDŽVD\xF6\xFE\xA4R-YQ{\xD9=\x93\xB1 \xD4&gt;\xAAw\xF5\x83\xF1IK:V&gt;S\x9A?p\xEDi\x9C5i\xD2\xEC\xF8\xC5w \x84K\xF2\xDF߱\xA1\xC4\xEB,*p&amp;\xEA&amp;}\xECY\xD0\xC5
+\xC2 \xC3\xC9C\xD1\xE1
+Y\xD0\xC9Hh6\x81-
+xU\xF5\xF0`\xD1m\xB001G\x96\xFF\xA7Ļɸ\xF0i&quot;.\xE8G\x96\xE2y&gt;\xB1\x83A\xA7~6m\xA6\xD5O\xFBb\xB2#\xB6\xF1\x84\xF0\x98\xE8\x8F/菕\xC3\xE05.H\xF7'\xB8\xE0\x9Bj\xE9X\xC7\xF8\xCC&amp;GS\xE6 \xF3\xCB\x8B.-\x8CtV\xD0{\xC5\xD6
+'y\xC4\xE6\xF4\xA1R\xA4\xA2^DG\xFE͗\x97\xFEs&quot;1\x85\x91\x98G\xFD\xE8pb}\xD1'\xDA\xDA\xB4\xD2o\xF1G\xFC$M\xE7P̉IMʰ91\xDB\xF3Yr\xB6G\x82\x92\xBC4&gt;\xE4BPFP\xBF`\xEC\xD2T'~\xEFK\xD4bx\xEA&amp;|_\xAB\xC6\xD0\xFD\xF5\xA6\xBF|ω\xF8\xDBoh\x89\xFE\xB6\xB2\xAAt\xF3\xC2g~\xB2a(\x94O-\x8B\x980}z\xEC\xF7⩒\xD2\xEAwL_\x9D\xE3M\x8F\xFD,*\xED[\xB8        g WY\xA2Z&amp;        z\xA1 ˦+\xF5\xB2\xA1]\xEF\x86ў\x88\x85\xC6k{\x9B\xE7\x89\xD08\x9D\xA4o\xF1$}\xFB\xEC\x8F\x87W/t?Wf\x8D\xC1v\x86\xC0XS\xAA\xBF\xA2\xDC\x80\xFC\x89Us~;\xFC\xF4\xD3d\xDA\xD3O\xDFJ\xEF\xBD\xF5֋0\x9E5C\x8A\x93\xC5OQZ\xA9\xCE\xB1I\x91.\x9C\xAE8\x9C\xB9\xCEJ\xE7$\xC7|\xB9U\xDFj\x9Eo\x9D_\xD0)t9z\xC9zK\xAF#\xC5\xE5\xF2\x84\x{D928}(/,\xE9]hU\xB1\xA5\xB3\xCAB\xA88R\xBC\xB2X\xF49\x8D6t#_+d\\xD4\xDC\xE0h\xE4t#\x9Fm\xFC&amp;GL\xCE9\x8ELW\xAB\xCA\xC5\xC9Um
+\xE3\xF7̽/\xFE\x8FE\x9D+\x96-\xEA\xC0\xA6&gt;\xBFٲ\xF9\xAF\xBBV=:\xA5~zˤ\xC9O,\xDBs\xE1J\xF3
+wQjJ\xFA\xFC\xAE\x9C\xFB\xD4Q\x9C\xDD\xDDu\xF9\xD8ƿ,]\xD88\xBD\xE9\xC3\xFDw\xBE?e\xEA\x94E\x8B\q\xD7\xC1\xFB!_e\xFE\xE8\xD2f\xF6\xAD2\x91eQϓ\x858Lɕ\x8Fl\xCE\xE6\xFF$\x96(\x9E'\xD60\x93\xCD\xE1\xD7jK޵\xA5VZmt\x83\xC9i\xE8 \x93  \x88/\xFEw\xB9\xCBp\xCA2\x9C\xC4|\xC6-YL\xD2&lt;q\x85\xF1\xAB\x96&lt;b.\xA7,I\xF1V1\xB7\xE7\xE7\xD35\x90ڊ\xE3N\xC4\xD2N\x9C &gt;A^\x8B勧bGI_\xDA\xCD׆\xB2yI\x9D'\x8C\xF7\x94f\x8C\xF5M\x9A&lt;\x933\xA6\xFA\xD8\xFAq\x91ب[5Sl̪\x9BC[!\xFEϘ\xFD\xA7\xEB\xC8/\xA8m\xDA:\xB5\xBB\x8E\x9C\x9B\x98,\xF1E\xF6o\xAC7\xF3\xA5\xF2\xFF\xB6\x86\xFCk\x93__D\xD4\xE8߭\xF1\x98\xF7\xD3\xEEg\xCFή\xAB=\xB8\xB8\xFD\xFB
+\xC6\xFE\x81\xCB6L\xBE\xFF\xC1\xEB\xF7\xCD:\xEF&amp;\x9E\xA6F`\xE6\xBDo55\xCE(\xC8/|\x92ld\xBC\xF5\xD43\xAFh\xEBȇޏ\xBF$,\xE0k\xB3*\xD5\#\xBBp.\x83Q\x9E\x8B\x97\xE2\xAB\xF1v\xAC\xC7v&quot;\x84 qfU-\xF6(\xE2\xEC\xE5lt\xC7qX\x8B\xB0 V\xFE3\xF2\xBC\xE4\xF8r@W\xA7\xD5\xE8c\xB0\xFB\x94ϱ\xF9\x8E\x90\xB9XF%\x98\xD5R\xF5L\xE4!\xC1\x84zϢ\x88f\xE5\xF8\xD3\xCF?g\x85]\xB0\x81\xFF\xE7&amp;c\\xEC\xC0fUHDY\xCFc\x86\x86`\x8F\x86\x86\xAC(q\x85\x84\xB6\xF0\xBF\xD5\xFC\xB9\xEC\xFB\x89ЫC2D:=x\x978\xB4\xB2+\xB2!;X\xAB\x9A\xB8 \xC3u\xA34\xE0O\xE9(e\xA2,\x88%&gt;\xE4.j\x93\x8B\xF2P&gt;*@\x85\x80GAT\x8CJ\xD0(\x822\x95\xA1rS\xAA\xCE1Fʒ\xE2\xE2)\xBA\x85F\x85\xB7\xE0\xFEh\xE8\xCFC\xEF\xC57Ļ\xE3m\xC2\xE0\x8E\xEDG\xA2c\xE8\xFA-J~\xD0S\xFC\xEFztG/\xA0\x91\x9F\xEF\xA2\xA0\xA3ߠ\xD7\xD1\xE7\xC3}\xB7\xA2\xBB\xD0C\xA8\xFF+\xD7\xED\xE5\xBD\xD0\xE8\xE7\xE8z=
+};\xD1M\xD0\xFB_\xEC?s\x87?+\xD1\xB4݁\xEEA\xAFp\xE9\xB2\xCF\xD3ā\xB5|\x8C\x8C\xE4^\x83w\x83\x8AQ\xF0\xEA5\xE8;h;\x8C\xEB$\x9E}\xE3\xA1o\xF4\xAEF\xD0\xCD\xD0{ \x9DD\xDF\xFC\x8CGsQh\xE0U\xE8\xB8\xE2W\xBC\xAFz\xE7\xA0n\xE8e}\xDAg\xDAQ\xE7^\xF4\xF4\x8Ck\x8C\xEC&amp;t\xFB\xB7\xDC\xEF\xBB\xC4O\xFC@*?\x84o&gt;\x8FHN\xC0\xFDm\xD5^\x9EbR\xA5Q.[4\xF4B\xF1#$,&quot;\xE7\xC8}\xE4&amp;\xF40\xE9A\xD3Ts˜\xAAʼ\o\x8A\xDDd))\xF6\xF5 \xB9\xF5\x81\xFA@ײ]\xBE\xFAe\xBE]\x81\xBAκ\x92\xE2\xA6Y\xAD\xF5u\xE9~[I\xB1\xBA\xEB|\xFD\xB8\xD3W\xDF?y\xFD2\xF7\xAEzvA\xBF=\xD8Or\xEB\xD9\xD6ӯ~\xBF\x81:\xBF\xDFgR.\x9Dp\xBEaĩG&lt;kٜV\xF6H\xB6u.\xF3\xF5S8\xC9w\xE9Г;\xB7\xAC\xF6\x81:\xC0\xB7\xF6e\x88\x93\x93;w\xED\x9A\xF0M\xDEչ\xAB\xEB\xE8\xD0\xD6E\x9F5\xB0둦\xA6]\xBD\xF5\x9D\xBE~4\xA3\xB5C\xFF\xE3\xDFO\xEF\x9F|C[\xBF\xB5s o\xC61yVk$\xDDo\x83\xBB4\xCD4\xCDlo\xF5\xD5\xEF\xEAL\xDC7\xD13F;z\x84\xA0\xDAGx\xE7\xCCGT\xBCsv{\xEB10j\xDFNH\xCA\xC1\xFD'uֶ=\x92\xE7Z\x8F\x81K\xAA\xBC\x97\xB0^\xD6\xC9|\xEC5a\xF5A&quot;\xF3\xEBӏ\xA9m\xE5g)\xEF\xE0Nj\x8Fb\xC4\xFB\xE4dF\x8B\x8F\xADϚ\xEC#\xD0G\xB5&gt;\x95\xF7\xB1\x88\x8AL\x9A\xD3:r԰\xB1\xB1#
+\xC8U\x8E\xDE\xF4\xCF\xD5\x96\x9A\xBF\xA3t\x99\x9Bԃߩ+d\x8F\x9A~$\xDDo3\xEC\x93ٕ
+&lt;A\xFB\xC0\x91l\x88\xCFB\xC8X&lt;t\xFB\xC5W
+\xFB\xD8r\xE9S\xCD\xF2\x81\xDD#/\x81\xA2\x93\xF4\xD4#݀\xE6\x8A\xD0v:\x80~\xDBx:\x88\x8E        \xF7\xA1\xDB\xE0\xEF
+DW\x912\xF40k\x8BVt\x8C\xFE-c\xD7@\xDF\xF4
+\xD4\xF7\xA9\x83\xFEG\x84|4\xAE].\xF4\xC05\xF0}v-\xF9\xEDӝ\x84\xE3TCע\x93R:)܇\xDBE\xBA\xB6'\xE0\x8F\xC2\xDF\xEBiEa /\xC3\xF1&gt;8\xBEM\xDC \xD7NCk\xA4_\xA2\x93\xA2 \xBB\xA0o\xBA\xEEc\xB4\xC6\xE8\x81\xF6*z\x8C\xFB\xB8\xD7Bt\xBD\xB8\xAE\xE0\xC6'\xDC7\xF4&gt;&lt;00P\x85\x9FO\xF1vP\xE6\xA0\xF0\xE1\xAF\xF4(\xFD\x83x\x83\xF4=\xE9#\xDD\xF3\xF2u\xCAv\xE5}\xFD(\xFD\x9F \x8B\x8C\xE3\xED\xA6&quot;Ӄ\xE6K\x91e\x8Eu\x93Mo\x9Bc;c7\xDA\xFBS&amp;\xA4\xDC\xECp8\xE6:np|\xE2\xA4Σ\xAE\xD6TO\xEA\xB7޽7͜\xF6c\x8F\xDE\xF3SϹ\xF4\xAB\xD2\xCFg\xF4g\xBC\x99\xF1%\x97t5Zx}\xE06
+\xB1\xFFt&amp;&quot;\xF9\xB0Cs\x80e,,\xAB\xB4\xF4T\xCE8\xD8{p\xEB\xC1{\xF6|\xE9\xE0\xBB\xF5\xC7~q\x90\xA72\xBD\x8F\xA6\xBA+\xBDu\xD82\xD7;\x974\xB7t\xB4\x90\x95s\xF0\xDDs\x9ECf\xCEN\xA5\xB3f\xBB\xE8\xECYN:\xB5q\x9D\xDCXE\xA74\x96\xD1\xD8+\xAAiM\xA4\x8C\x8E\x8F\x8C\xA7&quot;~:)\x92Ik#\xB3\xE8D\xD8T\xD8&quot;e\xB4\xAC\xBC\x9B\x96W\x84iEx
+Wdї\xC23\xDE{\xE8pnC%\xE48\x87[\x95\xAC^b:\xACX*{\xE8\xFAC\xDB\xC1\xB0\xBE8t\x88_qA:\xA4\xE4Tr4\xD0\xEBw\xA6\xD0\xDE\xBD\x88\xE5G\xEF\xDCE\xD4;]i\x95\xEA\x8F\\xE9\x95\xEA-\xA9\xD0ڟ\x9A^\xB9}[\x8A\xD7r\x9De\x9Be\xB7e\x8Fe\xAF\xF7:\xEFn\xEF\x9E\xD0\xEE\xAD۶\xEE\xDCs\xD3\xDEm{w\xEC\xDDiQ\xBF\xA7X+-\xAB\xBD\xAB\x89\xBAJ1VZ\xAEľ\x93\xD8\xF7,\x8E\x9C\xF8\xFC\xF1\xFDZ\xFD5A\x8B0Zd]DԮ{\xBA\x88e&gt;.q\xD8h\xB1#\x97մȑB N\xEAudQ\xBFo\xF59j\xE8s\x9Ez\xEAI\x9FB\xD3=5\xD4\xE3`Ӌ\xD54\x86kwx\xA8
+\xB6^V'UZ\xCCE^$a\xD3\xD3M^\xE3SM^\xFD\xF1&amp;\xAF\x9B8\xD0䥿h\xF2
+ǚ\xBC\xE4\xF1&amp;/&gt;\xD2\xE4E\x8F5y\x9F~\xAA\xC8{\xFC\xC9&quot;\xEF/Թ~\xEF\xE3\xC7\xFC\xDEǎ\xF8\xBDO=\xFD\x8C\xE9\xC9\xE3\xBF2
+\xFC\xE2\x97\xC6c\x8F?a&lt;\xF2\xD8Q\xA3u`\xEBQ\x8Fm=F,G&quot;G\x9A\x8F\xF4\xA1\x96#!h\xAE\x84\xE6\x93G~wd般W\xAA\xA8\xD1D\xD2B \xD8\xCF\xF1Q&lt;\xB4\xED\xC63\xFB\xF7\xE8\xF4o\xCDl;*\xA3&amp;_܏w\xB7\xF5\xCBM\xB3M\xC4\xC9՚\xB5k\xD6\xBF\xE5\xD3/\xD4\xF7K\xF5˺\xFA\xA5@\xDDv`ffcs}\xBF\x85\xB5-\x81\xBA \xEEw\xD4/\xEBw@\xEB7Y\x93\xFC\xD7$Nj\xE2;\xB4\xEE۞\xC9Ʋ\xF6p\xFE\xFF\x8A\xE9\xBA\xFF
+endstream
+endobj
+200 0 obj
+   11370
+endobj
+201 0 obj
+&lt;&lt; /Length 202 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x94Ɏ\x9C0@\xEF|\x85\x8F\x93\xC3\f\xE9\x91ZH\xD1̥Y\x94N&gt;\x80\xC5\xF4 M\xA2\xE9C\xFF}\x8C_i&quot;        \xA4\x87ˮz6E\xFAzz;M\xE3fҟ\xEBܝ\xFDf\x86q\xEAW\x9B\xEFk\xE7M\xEB/\xE3\x94X1\xFD\xD8mJ\xF1\xD9]\x9B%I\xC3\xE4\xF3\xE3\xB6\xF9\xEBi\xE6\xE4x4\xE9\xAF0x\xDBևy\xFA\xDAϭ\xFF\x92c\xD2k\xEF\xD7q\xBA\x98\xA7?\xAFg^\x9D\xEF\xCB\xF2\xE1\xAF~\xDAL\x96Ե\xE9\xFD\x96\xFB\xD6,ߛ\xAB7i\x9C\xFC|\xEA\xC3\xF8\xB8=\x9Eô\xBF\x8B7\xD9RR7\xF7\xFE\xB64\x9D_\x9B\xE9\xE2\x93c\xAE\xDA\x87pՉ\x9F\xFA\xFFƋ\x92i\xEDн7k \xB7!\2\x91:\x92
+\xCF r\x91r\xE5\x91\xCA*&quot;UTF*T\xD9B&quot;_\xA0H34\xE4롖y9\xD4\xA9k\xF6\x8C\xE9*\xD2\xECD\x9D6\x83,dY\xA5\x84\xF0+;\xBFr\x80\xD4O#\xD5[\x8B_EeV\xFD\xA8̪;h\xF1+\x95\xF0+~\xA2\xD9\xF1+q\xB7\xF8U\x89_\xAE\x91\xF8\xE5d\xFC\\xE1\xE7\xC8'\xF89\xAA\xFC\x845?\xC7΋\xFA\xE9*\xF8        '&amp;\xF8        {-\x87\xF8\x85Xl\xBFB\xF3ᗳ\x83\x82_\x8E\x91\xE0\xE78\xC1ϩ~\xE7'\xEAG\xA4S?\xB2;\xFCrN\xC5\xE1W\xE0\xE0\xF4\xFB\xD4H\xFCr\xEAt\xF8\xE5\xB8;=?͠~T\xED8\xBFP\xD2\xDE0\xDA{\xEB\xEC}\xFEٗ\xDD}]CKƟA\xECŽ \xC7\xC9\xFE/\x96y\xD9g\xC5\xFB/T
+#
+endstream
+endobj
+202 0 obj
+   468
+endobj
+203 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Verdana
+   /Flags 4
+   /FontBBox [ -49 -206 1446 1000 ]
+   /ItalicAngle 0
+   /Ascent 1005
+   /Descent -209
+   /CapHeight 1000
+   /StemV 80
+   /StemH 80
+   /FontFile2 199 0 R
+&gt;&gt;
+endobj
+204 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Verdana
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 203 0 R
+   /W [0 [ 1000 545 351 748 595 818 683 591 591 623 454 623 520 274 623 632 600 591 274 606 351 632 394 520 426 623 632 363 972 591 556 770 454 635 635 454 635 525 818 454 635 695 787 842 635 635 988 683 635 574 603 420 698 751 623 454 363 ]]
+&gt;&gt;
+endobj
+5 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Verdana
+   /Encoding /Identity-H
+   /DescendantFonts [ 204 0 R]
+   /ToUnicode 201 0 R
+&gt;&gt;
+endobj
+205 0 obj
+&lt;&lt; /Length 206 0 R
+   /Filter /FlateDecode
+   /Length1 2292
+&gt;&gt;
+stream
+x\x9CmUol[\xD5?\xF7\xBEk\xCFNl?\xA7yI!V\xF2\x9E\xE5\xA9I\xBAtN\xFC\xB2n\xE9\xFC\xDA\xD8&amp;\xE5u\xA2M\x9C\xCAa\x8B\xB0\x93\xAC\xAE!\xA6ɪ\x80\xB6\xCETM1\xA6\xA4)\xB0\xAE\x94\xC2:Ć\xD6!x\xB1;\xD7)
+\xCD\xE8:զiBB+C\xFB\xC3 \xCA&gt;\x94-o\xE7=;PD\x8Ft\xCE=\xE7wν\xF7\xF7\xAE\xEE=TA8\x90F\xC6)\xA8[&gt;@4D\xB7\x8E쟔\xB6?\xB7\x85b|
+\xF5\xC4=\xA9{Ǻv^Y\xC0\xC1\xF8?\xF7\xEE}\xE0\xE5LիX\xFB&quot;\xC6,\xB9;1\xFA\xE6O=`9\x84\x98\x9CD\xA0\xF6\x9B\xD6\x8C0^\x97\x9B\x9Cr\xD6\xD3z\x8C\xAFbl\xDB;&gt;\x92\x80\x83 a\xFCo\x8C\xADc\x89\xA9\xFD!\xF7w\x8C\x971\x96R\xFBv\xA7\xD8\xFDWSn\xFA&gt;P\x83\xECW\xC0\x8Ap\xCEY)C\xDB\xDFz\xF7-\xD3|m\xA3\xB7\xC6[ӌ\x86`\xD5\xF5\xB4&gt;5F@\xC7Bpo\xD6m\xF9 \xF0\x90Q\x96\x88\xD5\xEA\xE0\\/\xB1\xF15b
+\xB5P\x91'&lt;\xEFp9:\xE0r:\xD6\x97D\x83\xDC8\x97\xE28\xCE\xE1v\xD3\xAE\xA8_U\xAAy\xBDz\xBB݌\xAF)\x8D\xD5\xD5\xE85\xB38\xABӉ\xD6\xEDtZ\xD1+p\xED\xAD\xEA\xF8\xB0\xB5u\x93\xBF}\xA8\xBDc\x82\xFF\xF3;\xDA?D\xC6\xDE\xF2
+\xF8\xE5.Y\xEE\xEA\xA8\xF1\xB2\xEE\xFF\xBEC\xE4\x957\x82\xB3\xCD_
+\xB0\xA7\xC9\xC6\xDC?3u­\xDF\xDEr\xFD\xA2\xF9\xBF\xDE\x889v3\xCE-3\x90e\xA2\xE3\x89-\x83\xAE㡕+\xAC\xE0\xAA\xCC4k\x93U\xB0,[\xAE\xB0\xB0!\xEE]\xC02\xFD_\xFA{+S+\xA3+\x83ܓ b\xD5q8%\xB8\x80UY\x80\xF2\xEE\xFB!\x8B\xF0{\xB8Q\x82'\xE1\xF0&amp;\xBC\x86\x9D\x80g\xE1W\xA0}\xA1n\xD6D\x9F\x87_\xC2K\x90\x87yXB,\xC7\xFD\xB9q\x83&gt;\x93qx\x8E\xC2\xD3p\xFED+\xD8H\x99\xC1\xE0\xA0W\xC8\x99\x81h\x83|&amp;\xE0F^\x97\xC9v\xC46#\xB6\xD1}0\x8F#Z\x82\xCB\xF0e\xD9 \xBB`\xF6\xC0}0\x87\xAF\x99X \xA2QE\xD4\xC0\xCAr?&lt;\x8F\xC0\xCF\xE0xy=\x88̎\xC1ɛ\xAC\xF7\xF5R/L\xC2?p\xE6\xE4\xC7\xF4~\xD1 0m\xF0u\x81\xE5\x8Aq\xAAl\xC8&lt;[\xD0\xDFX\xD5?\xC1k&lt;L\xAF\xD1\xE7\xE81x\x99\xEE\x81\xED\x8Ak \xDA%\xDF\xD6,֮q:,\x8C\xB6I\xD7\xF6\x85}\x89dV
+'\xA5\xAC/mhS\xFBb\xE1\x90\xC7\xEB\xDC\xD0&amp;!\x924\x97\xC2Zd\xF2\x96l\xD8(\xD0ִj\xB49l\xE8My4\x8E\x8E/\xE4\xF5z1S\xFBy\xA6\xA8/\xB9!5\xB8W23\xB644\x9E\x944\x86I\xD3x\xA900r\xC98Z_        \xDC\xFFň/\xCFf#&gt;)\x92\x8DgE==\xEC\x93ܾ윪fSḤ\xC1\x8E\x98F\x9FԣE\x8E j\xEEx\x92|\xBF\xCC \xE9\x8B=\xDE\E\xED\xF7\xA9;\xEF\x8AI\xE1l\xBC\xB2n\xF9z9\x9A\xA3\xB0u\xCEG2;\xE7\x92\xE9\xBF+V\xC2K-e\xA2\xB1%\xB4'\xBEupn\xE6b%|&amp;\x8A\x89R5@#\x90\x8CT\x82\xACs\xD4f\xD6{J
+@\xDA\xCC20\xE3\x91&quot;\xB3\xADbF\x8A\xB4\x8C\xB9W1\x8A+c\x8A\x89\x82GE{\xA2\xB1Y\xA3\xDC\xCBo\xE8}B\xF7\xC2F\xF9n\xBE\xFB\xF0\xD8\xCC+u\xE6@h\xBD1\x9D\xA7l\xFAɕ\xC1\xEA'lF\xA5\xDD|\xC7P\x9Eg\xAB^\xE9p\xB4\xE9'?\xFDs\xF5\x95\xF7\xFE\xB9PB\x96z\xA3\xEFa\x8F8\xB8\xBA c\xFF\xFCX\xD0sC;\xBE\xC0\xE6\xF7&gt;\xF6R\x82\xA8\xBE\xA84\xE5\xD6\xFBewN\xCA)\xB9\xB9T.\x9D;\x9D\xD3ro\xE7\xAE\xE6\xAAs\xCB9\x8AWGI\xFDz\xED-\xB2&quot;\xFC.q\xBDs\xE0\xEE:%?\x8D\xBE\xA5;\xFBײ\xBE\xFEz\xD6\xDFW\xC7\xEE\xD8\xD6\xC7&quot;ۺ\xD8\xED\xDB\xFC\xACu[`\xEB\xFA\xD9\xE6\xE0f\x{1AD817}\xF5\xD9\xD6`ۂ\xAA\xA0~\xE6\xEFe\x81N茲\xCE@{\xBB\xF3j\xE7r'6ڏ\xF2g\x9B{el\xC0\xF9\xB3n\x8E)γv^&gt;\xDB\xD0\xCB\xF6\xE7\xE7\x91\xD6r&gt;oV\W\xF4\xBC}\x9D\x9Cz\xD9#\x99Z\x96ڛ\x9A\xA2\xFC\xA9\xBF=K\x95g\xEAo\x95\x95S\xF5Y\xF9\xC9Z\xF4\x8E\xAF\xF5ȇ\xA7kE\xFE?\xCD\xCF\xF0G\xF9Y\xF1\x908#m\x9FIO\xA73G\x8F\xCDN\xCF&gt;&lt;\x9Bᕃv\xB7\xCC\xEF\xF7Q\xE5~\xBBC\xE6Ljt\x99H\xBF%\xC1K_\xA2\xD2\xEB\xCA\xEBx\xA2\x86\xDD\xC3TI\x9CNP\xFE;d\x83P\xC3ڄf\xD6*lb-B-[/\xD41Qhb^\xA9\x87IB7\xFB]C\x985xng\x9E\x86n\xD6 \xF8Y\xD6\xD5&quot;\xDD5B\xABAM        D\xB6\xF4ȼ\xABE+q.\xA9\xA2\xE3\xA2*V-\xAA\xA2ղ\xA0\x8A\xEC\xBC*r%U\xA4\xF3\xAAH
+\xAA\xE7Tq\xE9b\x8B\xB8x\xA1E&lt;\xAF\xECZ\xF0\x8A\xF3%\xAFx\xAE\xE0/.\xFD\xC6ya\xF15\xE7\xC2\xF9W\xA5\xF9W\x85sE\x87{!\xBD@\x95R\xBAD\xF9B\xB0pg\xE1G\xC6\xDA\xD1G\xF7B\xE1\x8F\xBD`\xAB\xB2w1\x87\x93b+\xE2(\xFE{\xE9 )}\xFA\xB1\xC7\xB5\xE3\xF8X\xB4t\xE3`\xD1*6
+\xA2\x91\x99Aͦ\xF6W\0x\x93\xAD7\x8D k\xD6p2\xA1Y}\xA1        #p\x81 \x9B\x88+\xAC\xF1\x86\xCF\xFBB\xADD\xC2IM@\xEFK\x8BL\xACJ\xEBD%Y\xDE\xC84\xF0\xFD\x9B\xEDip\x99D\x8B\xF9\xFF'\xB689
+endstream
+endobj
+206 0 obj
+   1678
+endobj
+207 0 obj
+&lt;&lt; /Length 208 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x90\xC1j\xC30 \x86\xEF~
+\xBBCq\xD2]C`t\x97ڍ\xA5}ǖ3\xC3&quot;\xC59\xE4\x{D9F8}\xA1\x83        l\x90\xFE\xFF3\xBF\xA5\xCF\xDD{G!\x83\xFE\xE4h{\xCC\xE09\xC69.l\xA9\xFA.ؼw嶓IJ ܯsƩ#UӀ\xFEqμ\xC2\xE1\xCD\xC5_\xE8vȁF8\xDC\xCF\xFDc\xD4/)\xFD\xE0\x84\x94\xA1Rm \xBD&lt;w1\xE9j&amp;]\xE0c\xE7Dy=
+\xF6縭        \xE1T\xFA\xFA\xC9F\x87s2\xD9Ј\xAA\xA9\xA4Zh\xBCT\xAB\x90\xDC?}\xA7o\xBF
+w-\xEE\xAAz\xAD\x8B{\x9Fo\xDC\xF6\xC9g(\xBB0K\x9E\xB2\x89d\x8B\x9F\xCBJ1mT9\xBF4\xF7pc
+endstream
+endobj
+208 0 obj
+   225
+endobj
+209 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Verdana
+   /Flags 4
+   /FontBBox [ -49 -206 1446 1000 ]
+   /ItalicAngle 0
+   /Ascent 1005
+   /Descent -209
+   /CapHeight 1000
+   /StemV 80
+   /StemH 80
+   /FontFile2 205 0 R
+&gt;&gt;
+endobj
+210 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Verdana
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 209 0 R
+   /W [0 [ 1000 635 ]]
+&gt;&gt;
+endobj
+25 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Verdana
+   /Encoding /Identity-H
+   /DescendantFonts [ 210 0 R]
+   /ToUnicode 207 0 R
+&gt;&gt;
+endobj
+211 0 obj
+&lt;&lt; /Length 212 0 R
+   /Filter /FlateDecode
+   /Length1 8804
+&gt;&gt;
+stream
+x\x9C\xA5Y xTE\x96&gt;Uu\xFB\x99W'@\x9Eཡ\xE9\xD3                1\x98\x91\xDCI\xD4\xC9\xA2v\x83\x8CH\xC6\xE0\x8B         (*\x89 \x8B\xD40:\xEE\xCC\xE8Ht|pӍ\xD8\xE1!Q\xC6\xF9G\xD7\xBA\xE3\x98Oq| \xAC쌯EH\xEF_\x95\x80\xB0\xEB\xCC\xF7ͷ\xF7\xE6ԩ\xC7\xF9\xEB\x9C:u\xAAnU\x87\xB9\xA9\x8B\x8B\xAFkj\xA3\xF4ck\x894
+\xB55\x8BW\xB4_\xE8\xF7\xBD\x82\xF2ED\x8Ei?m\xBB\xEA:移&amp;%\xDCNd{\xE7\xAAko\xFA\xE9h}W1d\x9F$\xC1֖\xA6\xE6\xD7&gt;\xCC\xDDJ\x94z\xEA\xCEoEE\xDA\xEA\xC4Q\xBE\xE5        \xAD׵ߘzۋr \xE5\xC4k\x97.nB\xDF/\xA1\xFC[\x94=\xD75\xDD\xD8f?\x91&amp;P~e\xA3톖\xB6@n\xB3,\x89\xE6\xA5ĥ\xB16\xBC\xB0\xD6A\xD5;8\xB2;b\xBC\xCAE6mH\x90ۡ
+1\xCAr\xDAmC\\xECay\xE4bˤL\xBF\xE7\xEBʓ\x95\xB3&lt;_V^r\xB2\x92\xAA\x90\xF7\x9C@2\xB9$757Շ\x84\x91F' 1p´\xD1wdhD\x8C
+a[\xBFm4\xDD`z\x8B]%Z\x89\xAD\xC1\xD5\xE6\xEAr\xF5\xB8vf\xE3&gt;Mp9]\xD9Z\xA7\x8D\xD9b\xAC\xC8t\xDB+\xA1N\xE2$\x8B\xA9&quot;\xB9\x81\xB7\xF1.\xDE\xC35\x9E\xE5&lt;\xF9d\xA6V,\xAC\x9F\xEC\xE3fE\xA8\xF2\x92/\xC2$\xB5-5\x87a\x984\xADv\xB1\x850jJ\xEE\x98\xDCT\xF6\xC1\xD0%\xDA]C\xB3\xB4\xBE\xFD\xF6\xBB$\xED\xDADdς]\x89&lt;\xD3LHyμ\xA1        &amp;b\xF1.\xD35vZ\x99ۘ6\xBD\xCC\x8BFG\xB8\xF9\xE8\xD8I\xA8Ebw9\xDD\xB9\x8E\xB85\xCD\xE5v\x8F\xE2c5\x8FKw{y\xA1f\xB8\x8A\xDDW\xF1V\xAD\xC5u\xB5{%\xBFQ{Ե\xCD\xFD\x8Ck\x97\xFBk\xD7qw\xFAf\xADǵ\xD9\xFD;\xD7\xEF\xDD\xEF\xF0C\xDAۮwݟ\xF0O\xB5\x8F]\x9F\xBB\x93V\xBAnt\xAF\xE5\xB5\xB5\xAE\x8D\xEE\xEE&amp;\xB4𫵫\\xAD\xEE\xFC&amp;\xCDQ\xC3\xEB\xB5W\xBD\xFBr\xE7宠ۑ\xE9.N.\xE3Ӵ2\xD7twU\xB2C\xF0D\xCD\xEEr\xB9\xC7\xF0l-\xC3\xE5\xE8\xB3\xF3\x99\x8DAS\xE7\x9Ap\xBBl\x89G\xA9=9\xB1S\xED\xDC\xD9\xE0L*K\x90\x89erBR\x99\xD3L\xCE/K\x90        \xAA4=2\x93\xE0\x98I\xC6nr›pgjZ\xC6T\xBFz\xB2⣞7\x8Fʊ\x9CX|\xBAY-\x86\xE6t\xB9J\x856Z\x8D'\xB8ݥ\x82#\xCBэH\xD48Ot\xBB].\x87SOf\xC91\x96u\xD8m\xDA.^A\xB6\xF8@t\xC1\xC22[,&gt;`f\xCCk,\xB3\x95:LG\xA7\x939\xF7vb\xF6&amp;        \x89&lt;\xC6+\xCC4D\xAB        A2!D\xA5z&quot;K\x94\xDD$M\xEE@@~\xB9\xEC\xA8\xDF\xEF\xA9\xFCOOev\x96\xE7䲓\xCB*\xB33='\xFD~Tx/\x83\xF1\xE0\xB0֮\xB7M\xF2\xAF\xBF\xF5\xB7\xEB'eJ\xE6!:\xEA\xADQ\xF3\x82\xFD\xE4\x8C\xF6%!\xB6P=\xCBn\x90%\xFF\xB2\x85\xE7!\xA4\x99 n\x96\xCBR7\xB1\xDD\xCC\xCDl\xCF\xD0ѡ\xF7\x87&gt;\xFA\x93m׉L\xF1\xE9\xF1:m\xCDw\xAB%!\xAA8V\x94|FS\xBC \xC2\xD7\xF0\xA2\xE6\x8FǑR&lt;\xEE\xA1        y*&amp;9\xE2q\xAC\xA2\xC7i\xAC\x96Gc\x89\xE2\x87O\xD1В\xF8a\xD9&amp;9\xFF\xE2\xE3\x86i\xE4\x89`\xF7x\x87MdE\xD9qʠoY\x9BLC\xF37\xE8};\x9D\xA4\x9FîF\xBA\x9F\xA5\xD1J\xA7K\xE9b\xA6A\xC6O\xD9\xF1\xF1\xCF\xE8\xFA=\x96\xAD\x89oC\xFB=\xF4;\xFA\xFCIcTN\xB3 )\xB5\xD0g\xE2c
+\xC5\x85\xC0XO        4\x9D\xE6\xB2tj\xA2\xB7\xF1~\xEE\xA5\xFB\xE89vK\xFC[hMk\xD0_%(&gt;~\x82
+h\xA3\xD6c;\xE4z+o7\xB3\xC7Ǘ\xD094\x9E\xBA\xB9?\xFEv\xFCʣ\xFD=        \x9B\xFCl;e.]C\xEB\xE8,K\xFC\xB9\x9Fӣ4\xC4\xF9B1Ӷ\x9A.\xA6\xCB\xE8zZIݴ\x8D^fi\xAC\xC1v\xC8v,~s\xFCxtM\x84MK\xE836\x85]\xC2\xD3\xE33\xE2\xEF\xD1꧗0^\xF9h \xB4\xC7m \x86\xAA⿎\xBF@c\xE8Y\xCC\xEC\xF6\xBC\xAD\xD4v\xF7\xC9\xDB\xE2ǟ\xA6D\xD83\x99=\x8Bh-=O\xBF\xA7\xFF\xA2\xBF\xF2\xCEx']D\xF3\xA0\xF9E6\x8E,\x9Bg\xF1\xD5|\xB5x\x83&amp;a\xB4 amm&amp; 3\xB2\x8Bv\xD3^\xF8\xE6?h\x90&gt;f\xA3Y\xFB[\xC46\xB1\xBF\xF2D\xDE\xCC\x88\xC4\xF1\xA6ƴ\xDF\xC0\xDF^\xF2\xC1G\xED\xF4\xED\xA4W\xE8U:\xC0l迄5\xB0\xAB\xD9R\xF6\xAF\xEC\xD7l\x90[\xFC\xFFFsjk\xB5ﴓ\xB6\xBC\xA1\xC1\xA1\xEF\xE2\xB3\xE2_Q&amp;eӏi6\xCCM\xF0a\x94v\xD0k\xF4\xFD\x95\xFEF_3\xAB`\xAD\xECal\xE1\x83\xECw\xF1\xF1|6\xF6\xD2\xFB\xF9c\xFC)1Kl\xCFkS\xB4j\xED\xEDU\xED=ۿ\xD868\x9AC'\xB6 \xDD;\xF4\xD4\xD0\xEB\xF1g\xE3\xAF#v\x92\xD1\xD5\xC1\xA3\xB7!*\xA3}\xF4z\x97ާe\xFC\xA0\xFF\xE9l&gt;\xFB        \xB4,gw\xB0\xFB\xD8S\xECE\xF6:\xFB\xA3$\xF5\x8E\xE7\xD3y
+\xB4.\xE57\xC0Ok\xF8\xBD\xFC&gt;h?\x80\xF7 \x8F\xBF\xCF\xFF¿61^\x9C/\x96\x89\x87\x85%b\xE2\xA0\xF8\xB3\xE6\xD1\xF2\xB4I\xDAdm\xB66_\x8BcfJm\xDA\xE6ٶڞ\xB0\xBD`;f\xAF\xB47\xDB\xDB\xEC\x9F:\xD68nw\xBEr\xB2\xE0䟆h\xA8u\xC8\x8A&quot;v\x9D\x88\xA4U\xF0\xC4C\xF4\xE2~\xE6\xE0ex\xF45X&lt;H_b\xB2\xB1\x9C\xF3a\xF7TV\xC7\xEA\xD9%\xECrvkak\xD8z\xF63\xF6 \xF6{\x84=\x8D` \xDC\xDB\xFD&lt;\xC0\xE7\xF1&amp;\xDE\xC2o\xE7\xEB\xF9]|\xDE]\xFC\xF7\xFCm~\x88\x85\xE5\xC2+\xFCb\xB2\xB8X\xCC \xC4\xF5C\xBBX-n\x87g7\x89m\xE2\x80xC|&quot;&gt;G1k\xDA9Z\x87\xB6J\xFB\xA5\xF6\xB8\xB6C{\xDD\xF6c\xDBux\xB1\xED\xB3
+\xD8^\xB7\x9D\xB0\x9D\xB0s{\xB6}\xAC\xBD\xD8~\xB5}\xAB\xFDC\x87\xDDq\xBE\xA3\xC1q\xA7\xE3M\xC7ߜml,+\x80\xE5\x9D\xF1\xF0,\xAC\xC1s\xF86&gt;Z\xEBdGQ1\x8Ei\x94\x82\x91\xFB1\xF3\xB0*\xFEFUb\xF3\x92,\xDBa\xDB\x9E\xA5\x8DRێ\xA9Y\xC0\xB7\xB3\xDD4\x85\xBDH\x9Dv\x8E-\x9F\xB4A\x8A\xB0?\xF2Am?\xBF\x80\xDEba\x96\xA5=.\xAE\xB7\xBD\xCCs\xE9        \xECF=|\xDFͪi\xAF\xE4\x97\xF1\xB1\x8F\xD9V\xFA\xF1~#\xDDǮa\xCB\xE9        v\x94Mc\xB7\xB2r\xD6Io\xF2t1\x8F\xDDN\x95\xF1G\xB8\xC6\\xECbv\x8C`ݦ5\xD3O\xE8&gt;l*\xFD\x91&gt;zHK\xD2n\xC1\xFE\xA3\xFB1\xA3O\xD2\xEC7t\x9C\xD9\xE2G\xB0\xBB        \xECFM\xD8e6&quot;\xDEב\xDC\xF5b\x9Dub=fa\xB9\xD6~\x80v0;N[\xE5\xF6\xDA*l\xB9\xFFM\x9F\xD9v!\xA2\xAA\xB1\x93~2\xB4D{H\xFB(^/\xC2
+\xC3*\xA3\xADXw\xADt!V\xCCLj\x92\xBD(\xCB\xD2X\xE9n\xEC%\xA5X\xD5
+4\x9F\x9A\xE9V\xECz\x9B\xE2V\xFC\xC1\xF8\xDA\xF8M\xF1\xA5\xF4`\x8F\xB3Bv\x9C\xF5bEĀ\xA8\xA4\x97\xF0\xDEC\xEF\xB2
+X\x87\xFE\xE3q\xFE\xBDg\xA8\x99\xE8s\x96\xC9|\xAC\xEB\xE1\xA8m\x85\xADǶͶ\xC3\xF6\x9C\xEDU\xFBdx\xFBvz\xFD!\xA2ٍ,\xA6\xD7\xE9s\xFA\x86917Y8o\x95\xC1\xDE
+\xD8\xA4kyH쥙,\x9Bڰf'b\xAF\xC9r\xF4\xB2\xDE{\xEBy/\xD6\xC61\xECW\xD0st\x88q\x96\x81-\x86~'\x{2A477EF}\x84\xF4\xCC\xE0ZEM3v\xED\xFA Ɲ\xCC*x;\xF4\x99\xE8\xE9~\xECZ\xB0\xE9\x8F\xF4g\xF9\x81Svb_\xA8a\x97\xA1\xAFo\xE8rj\x86\x86\xF3\xA9\x81\xF5av\xD2T\xEC\xAC5\xE2\xF8{\xF3P5\xCF.\x8C\x9AL\xE3h\xAA\xED#ƩphV\xBC\x82/{񍉣\xBE_\xAF\xBA\x80-\x83)\xC7I\xC3fӔ\xA1\xB9\xB0\xE1
+\x8DfՌ *\xA7O\x9BZQ&gt;\xA5\xEC\xBC\xD2\xC9%œ\x8A
+\xFD\xE7N\xCC\xCF\xF3M\xF0\x8E\xCF5\xF4sƍ\xCD\xC9\xCE\xCA\xCCH3zTZ\xAA'%9)1\xC1\xEDr\xCA3\x89\xC0\xB1\xB8\xB0\xD6[6\xAC\xBC\xB0\xA5\xE5y/\xBA\xA8H\x96\xBDM\xA8h:\xA3&quot;l\xA8\xAA;[\xC62\xC2J\xCC8[҄\xE4O\xFF\x97\xA49,i\x9E\x96d\xA3\x92*\x8B
+\x8DZ\xAFa\xBDZ\xE35bl\xFE\x9C \xF2w\xD5xC\x86uT\xE5/Q\xF9\x95OB&gt;7\xA36\xB3\xB5ưXب\xB5\xEAV\xB4v׆k\xD0]_\x82{\xA6wf\x8B\xBB\xA8\x90\xFA\xDC        \xC8&amp; gex\xDB\xFAX\xC6 \xA62&lt;\xA3vZ'g\x8C\xB2\xB2\xBD5\xB5V\x96\xB7FZ`        _mS\xB3\xD50'X[\x93\x93\x9B**\xB4\xD8\xCC\xC5\xDEEy\xAB\xAD\xBF\xA1\x99J\x8De\x9Fi9\x94c\x89
+m0\xFA
+\xBA7\xC6&lt;\xB4(\xECOl\xF667]\xB4DSH\xEAH\xF5Co\x8D\x95\xB1\xEAp\xE6\xF7Et\x9E63\xB8\xFE\xCC\xD6\xD1]\x9B\xB9Đ\xC5\xEE\xEE\xF5\x8650'xfk\xAELC!\xF4,\xF7Յ\xBB\xEB\xA0z#\x9CX?π6\xBE.\xB4\xD8:\xA84\xE4H䨆\xC7\xD7⭕5\xE1\xAB
+\xCB\xE5\xAD\xF6\xB6v_\xC6\xD4dw[4\xF7\xA6\xDCHv\xB6\xD9\xA4\xECZ\xA3\xBB1\xE8͵\xAAr\xBC\xA1\xA6\x9A\xB1}\xA3\xA9{\xEEM\xD1,\xD3\xC8:\xBB\xA5\xA8\xB0ϓ:\xECؾ䔑Lbҙ\x99\x96\xD3m*\xA7\xC4e\xAE~\xEEi\xCF2i\x91\xF7b\x84e,6`IЋ1UȤ\xA5\x82\xBAW@ O\x88e5cF\x96X\xAE\x99\xE1n\xCF4Y/\xF1\x96\xCD\xE7\xF1\xDD_&quot;\xC0{\xF4\xC8\xD95M#5v\x9F\xE7+\x92Y'\xA7C
+\xED\xA7\xF2\x96\xDFo\xC8q\xCCĜ\xC2\xC6\xAA&lt;\xA5\xA8pE\x8C\x9F\xEFm\xF3`p5\xC0\xB7M\xA1i\xC5pn\xAE\x9C\xE0
+1\x93\xA1`u\xCD        \x97
+Z\x94!\xB3\xD8\xB2xX\xB6 \x9Cjs\xA9l\xE9:\xD5r\xF6&quot;\x92w\xA8\xE3\xF0˙w\xFA/œ&gt;\xAA\xB6u\x9A\xC5\xD2\xFFAs\xCBp{\xFD&lt;o\xFD\x9C\xF9A\xA3\xB6;&lt;\xE2\xDB\xFAƳJ\xC3\xED\xA7\xDBFr֨\x99A\x91\xC3Gr&lt;G\xA8V\xE5\xA7\x85e!\x98hi&gt;\xFC\xD9UP7[A\xA9*\x98Qgy\xC2
+\xA7!wn\xEE\xDF\xC5\xC4\xCE3@\xB1\xF81\x89R\xEC{؈\x95\xD64\xFF\xD9\xE5\xE9g\x95ϲ.\xB1[\xC0^-\x8F\xD77\xCE\xEF\xEEv\x9F\xD5V\x87
+\xA8\xBB\xBB\xCEk\xD4u\x87\xBB\x9Bp\xE1[\xE45&lt;\xDE\xEE~\xFE8\xBC\xBB\xAD6|jBc\xF1]r\xAC\xBA\x8D! \xA2\x95MC\xB0r\xAA\xEE\xF3\xB2;\xE6\xF4\x99\xEC\x8Ey\xF3\x83\xFD\xB8\xA2w4#\x9C\xF1\x99\xE1\xEAP\xDF\xB4\xFBq1U-?]+K\x86,Q=C\xA0G\xB8S5\xE5\xF4\x9BD]\xAAUS\xAA\xBC8\xC6H\xD59O\xD51Z\xE3\xC3uU\x87\xA7h\xF8\xA6\xC4\xFF|\x95\xFB\xC0\xBDS\xAEL\xA9\xFCʙ\xE5T_\xC9G&gt;\xAAT\xB7\x9F\xFE\xB7\x9Eu\xFC\xF8\x89\x93r\x8E\x81\xAC 4|\xB7B\xEA\x9814\x8Bfz\xE8\xF8\xF1\xA1\xBC\xD3w\xAE\xEFaG\x95\xF6ڷ\xC9\xDF\xD4s-\xC44\xF9;\x8C\x928T\xD2R\xDC*8nj\xC5\xF8\x92}\x96g)\xEA\xF9s\xD4(~E)\x8C\x91\xBF\x88zF\x97\x9A1\xF1\xCBhʨR3\xE0?\xA7'K\B NK\xC5&amp;\xEAq\x88\xD7G\x8A&amp;\x97\xF6\xCBLԝ\\xEA\x81\xFC2@] A\xBDH\x99*\x9B )\xBF!:*]v\xBF6\x92\x92\xAAp7GJʆ3QOfiC`\xB4\xB8\x91\x98h\xD7\xE3&quot;\xA1\xE3z=&gt;ӺX &gt;|\x91h\xA6$e\xA7M\xF1\x94vA_īp;\xCD\x91\x8ES\x8E.jD6\xBE\xB0R\xAC#\x92&lt;\xAC\xA7#2\xB1\xA04\xE03E\xA6II8`\xE8\xC2)\x91R\xDD\xD8-䴙⎨+A\xDAwG\xC43\xA6t\xAFX'\xB8\xEA\xA2 Rz\xCA^\xE1\xA6b\x90IcԕT\xDAH\x8Df#ܢ\xC3FF\x9BUj\x8A\xEB#\xE8\xFAj\xC5X\\x8Atq\x8D\x87 \x9A.\xEA\xC49\x911\xFA\xC0nq\xAF\xFB\x99\xEC\xFAfD\x9C\xE7IMJ.\xB8\xC4 \xB4Z\xE2nx\xFCn\xA5\xAD'\x9AW\x81\xF3[\x9E\x98H% \xA7v&quot;'Y\xF2\x88n\xE4\xBA1Mݘ\x9AnLM7\xAC\xE8\xC6T\x93\xB8-wB\xA6X\xAC\xA26\xB1\x92z@\x9B\x91\xD7\xD0\xE5\x98&lt;د2&amp;\x96\xF6\x8B,\x91        Oxv\xC3w \xB5\xD9QW\xB2\xB4,3\x926J\x89eF\x93K\xAB\xF6\x8A\xE54\xC4a|{4#\xB3t\xE9nQ\xA0\x86R\xCD̑\x80\xB6\x88+\xAE\xCB\x9E \xD3\xE5\xECc\xC59\xCA\xE3\x94\xAC\x80\x8E2\xA3\xA1\xE3/\xF3\x83\xD2;\xFC
+\xFE\x96\x9C_y\xA5R\xFC#\xFC\xD5\xFE\xDA0\x8F\xF0\x83Qh1c\xFC\xDF% \x8C\xE5\xA3\xB3+\xF9\xFB\xB49\xCEw\xF3\xFDT\xC0{&lt;&amp;\xAD\xE0\xEF\xF2~\xAA?\x84r3x?\xF8y\xE0\xBB&quot;\xB9/\xE91\x8B\x82\xC1\xF6&quot;I\xE9r\xB0|\xC4_&lt;\x92\xD1}#\x99\x8C\x9C\x91LZzi\xC0\xC7_\xE0\xCF\xD3Xt\xF1\xF8\xF0\xE7\xF9\x8D\xDF\x9E        &gt;\x80C\xE5K\xE0\xCF\xF0)4|\xC7\xFF-\xDF#c\x9A?\xCBw\xE2x\xAB\xF3h$Y\x9A`E\x92m\x8F\xD8%{:Bå\x86b}\x9A?\x81\x9B\xB1Ο\x8A\xE4e\xA3vk4o\x82\x9E\xB2\xFD1\@\xDB#\xE3\x{13401B}?̂\xECK\xF5\xE2\xF0 Ni\xFC\x91H\xB9\xEC\xA4'\xB2\xC7\xD0\xFBy\xEF13\xCBM\x9FYdn%\xBE\x92\xA2\x92-\xC2\xF0EF\xB9\xB1\xC5x\xF8\xDDd\x83\xF3\xB0`\xF9\xA4\xE5dpD\xC8\xF5\xF0;#Z\xB98\x891\xC9qq\xEABګra\xA4m*\x87\x8ByN\xB7S\xB9*\xBE\x8Ef\x838\xFAX
+\xEAu\x81nå\xA7\x87\xAF\xDD \xBAt\xAB\xAAiu\x80Vb\xFBh\xA2
+\x886 \xDA\xA2
+\x886 ڀhS\x886\xA5\xBD$a \xC2@\x84\x81+D\x880a \xC2
+!\xED
+V\x88 \x80h\xA2A!\x80h\xA2\x88\x85h\xA2\x88\x850\x810\x810\x810\xC2\xC2\xC2\xC2TS!J\x80(\xA2\x88\x85(\xA2\x88 J\xA2\x88 J\xC2\xC2\xC2\xC2PC!     \x85\xF0\xE1\xC2\x84G!&lt;@x\x80\xF0\xE1Q\x8F\x9A\x9F\x90D 1\xC4 \x83
+1\xC4 \x83@ *\xC4 \x83@ \xF2\x95}\xE2`\xE0E@r\x90\x83
+r\x90\x83\x80䠂\xE4  G\x86ޮ\x9C\xC16\xABA\x9D\xA0.\x90\xC4;\xEC\xB0
+;\xA0«$\xB1\x96BX@X@X@X
+aaa)D/\xBD@\xF4ѫ\xBD@\xF4\xD1 D\xAFB\xF4\xAA\xC0\xEDI\xC4?\x94\xFF\xF4\xD4\xF0\xDBXЉ\x8F+\xEFb\xE7*\xDEIG_M\x87\xBF\x95\xFA\xBF\x85\xB6(~3\xADQ|\x95+\xBE\x92\xF2G\x8A\xB7\x93\xEEd\xBD&lt;%\x90\x8E-`6\xE8J\xD0R\xD0f\xD0v\xD0&gt;\x90C\xE5\x80&gt;\xC5\xF9s\xBC\x96\xE2\x98\xED\xD8\xEC\xD8\xEE\xD8\xE7\xB0mw :x\x8A}\xB6}\xB3}\xBB}\x9Fݶ\xDD&gt;h\xE7F \x87'\xA9}[ ݣ\xD2N\xA4_\x80\xF0AZ\xA5rU\xBC z˰\xCFN\xC1[\xC6\xCB\xCCԣ\xC6\xEC@\xDBW\xC0\xB6\xB0{
+X\xC0\xC5/\xC4D\xEEt\x95\xE3R\xAA\xB3\xA0\x99\x987C?*\xCF˟\x81\x9D\xE9\xEE\x9DG2\xF4H\xDE\xF9z\x8C\xEDf\xE7\x9A~\xF0#\xA0&gt;\xD0\xD0P9\xA8T\xF2\x81tUW\xF9\xA09~\xA4\xCB=\xA0|P.Ȑ*(=\x9F\xB4T\xA7\xD9ϓؖ\xE8\x8BI\xE4\x92z\xF2'\xB7;\x92_\x8B\xE4\xCF{6\x92\xBFH\xB8\xD8Nʗ\xC7 \xF6 f\xEE        \xF0\xED\xFD0\x9A\x9FfOF\xF4\xDD`[#z\xD8\xC2H\xFE$\xB0\x91\xFCW\xF5@\xBB\x94tMBG\xF8&lt;\x8C[\xF2\xB9\xFD2\x88͉\xE8\xE7\x82\xF9#\xF9yR\xBA\x8A|h=\x97\xE90\xB8o5aX\x937\xA2OѧJi'\xE5ˉgv*R\xE6\xD9@\x92\x8B( \xFA\xA2\x9F5f&amp;\xE8G\xF5{\xF5#\x80\xFF\x8EEx\xBCk\xC44\xB0\xBE\xBB\xCCt\xEB{\x8A\x82p@\x8F\xDCR߇\xBEnI\xFE\x8C\xBE\xC5w\xA7\xFE\xFAb\xBE\x9D\xFA/\xF5I\xFA\xDDE1'\xAA\xEF\x82\xDDw*}
+.PO\x98\xA3\xF4.\xBDDo/:\xAC/\xD7\xA47\xE9s\xF5\x85&gt;\xD4G\xF4+\xF4=\xD2L
+\xB1 b\xA7ހ/\xC6(|\xFDB_L\x99X\xA7ߤ\x9Bz\xBE&gt;\xD5\xD8#\xFDK\xC3\xFD\x96\xED\x91\xA0\xD2a\xED\x85\xF0o\x81/&amp;c\xFC\xD2\xF2K5 \xC7=\x8E\x8Ej\xC7t\x87\xD71\xDEq\x8Ec\x9Cc\xB43\xCD\xE9q&amp;;\x9Dn\xA7\xD3iwjN\xEE$\xE7h\xF9\xFF-\xBF&lt; \x8F\xB6\xABs\xB2]\x93\xA9\xA6\xF2\xAE\xFE71|\xA2\xE6\xCC\xC9\xE9Gd\x8D\xF5\xBC~^5\xAB\xB7S\xFD&quot;\xC3\xFAz\x9E7\xC6ܸ\x9Fؼ\xD5\xCCJ\xAB\xA7\xFA\xC6j\xAB\xC2_s\xC4\xE7Z\xE5\xFEz\xCBѰ \xD8\xC7\xD8\xDD!\xD4Z\xFC\x9C\xFE\x831\x97U\xEBr\xE4}\x8C\xD6ݕ\xD3O\x8Ce\xAD\xBB+\xA2\xCC\xF4U\x99Ui3R\xA7\xD6\xD5\xFC@I\xFD\xDF?\x99gf\xC7Y\xF7\xD7\xCF Z\xDBƅ\xACR\x99\x89\x8F \xD5[\xB7ɟ        \xFAy
+O\xAA\xAD\xE9\xE7ɒ\x85\x82\xFDZO\xA9\x9D+뵶\x9A\xC4+1Ds2\xC4(_2\x889\xABɐb\xD8O\xAA\xA5\xE6hX.p\xC8\xE5J9w\xE5)\xB9&lt;w\x92\x92Ә\x94\xEB;d\xD4\xD6\xF4\x86\x92\xF1R2\x87|t\x86 &quot;ؚ\xBE\xBC&lt;%\xE55XPJ\xB1\xA0\xD7P\x86\x9D\xAB:\xD2u\x88\xE9J\x84\xE1\\xA7:ҙRf/\xE2\x99rZd\x8A\xD2%\xD8\xF72\xFA\xB0\xCC艧dFO\x84\x8C\xFF\xFF\xF9\xB4T\xFBYtr\xC7\xEA\xFD򗗰\xB7\xB6\xB66\xAChʹ\xBAF\xDFꎑ\x9Fd\xF2‹\xB7J\xDE\xD4bux[j\xAC\xD5\xDE\xA3o\xF2\xFEh\xDE/\x9B'{k\xFAhmc\xB0o\xBF\xD9R\x99lN\xAE\xF56Մ\xA2U\x95\xC1\xC0Y\xBA\xEE&lt;\xAD+X\xF9\x9DU\xCA΂RWU\xE0\x9A\xB2\xB9J\xEA
+H]\xA9\xABʬR\xBAj\x97ȸo\xF69\xA9:\x84\x9B\xBE\xE2Q\x9E\xE0F \x87srC\xD5鞶2\xA0\xFB\xA7\xE7f\xAE\xCE٥\xDBJ        \xFE\x90\x95譶\x92@\xB2\xA9(P\x90MXg\xB2)Y\xFE\xBC6Ҕ\xB9zzn\xCE.\xB6u\xA4Ƀ\xEATo5\x9Dr-I\xA1zkʜz+\xB7s*\x96\xD9\xF4\xC3s\xB6\&gt;\xAA9\x93j\x97\xD4\xE0\xE5vExϔ\xA4\xE5?\xF8\xB4\xFF\xD0\xD3\xD1ѱ\&amp;\xFE\xE5D\xF5V\xC1\xBCz\xEB\xFC9\xB0\xC4ဪpMu\x93N\xD5        \xA1\xEA\xFA\\xAE\xDAX|\x8D~\xC1ڥ:\x99\xF33?&lt;h\xBAq\xEBr\xF0^{\xAF\x83˫B{4{\\xE9ҽ\xF8\x82w\x82p\x8F\xE3+#\xC5\xEA\xBE\xCCWF\xC7\xFB\xE4\xFD\xA5=Z&lt;e\x98\xE3~*y$;\xB7\xA2\xE5\x80J\xEE\xE6fj2=\xBE\x9E\xA2\x9E\xF2^_oQo\xB9\xB5;\xB7\xA0R\xDF&quot;?\xA5\x91\xE2-\x82\xDA\xFD\xCBO9\xD9\xF6\x9C
+\xB3\xA4\xBE\x87#c\xC7)Ž2\xE3\xF7\x87\xFC\xCB\xD9\xF0\xFF\x87\xFF\xCF\xC3N9\xFD\xB4c\x97\x8F\xF4\xBA\u\xDF~jB\x86\xEB\x97Ӱ\xF0p\xA3\xBF\xE3\xA8c\xA2;D)\xFC@\x8A\xA3q
+endstream
+endobj
+212 0 obj
+   5849
+endobj
+213 0 obj
+&lt;&lt; /Length 214 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x90\xC1j\xC30 \x86\xEF~
+\xBBCq\xDA[0\x8C\xEE\x92C\xB7\xB1t\xE0\xD8rfhl\xA38\x87\xBC\xFD\xA5t0\x81
+\xBF\xF5\xE2\xB7\xE4\xA5{\xEB\x82\xCF ?)\x9A38,\xE12\x8E&gt;\x88\xBA\xEBM~(\xBEͤ\x93\x90\xEE\xD79\xE3\xD4Eۂ\xFC*\xCD9\xD3
+\x87W| ?\xC8&quot;\xF90\xC2\xE1\xFB\xD2\xEFO\xFD\x92\xD2' *\xA1Xte\xDCU\xA7w=!H\x86\x8F\x9D-}\x9F\xD7c\xC1\xFE\xB75!4\xAC\xEB=\x92\x89\xE7\xA4
+\x92#\x8A\xB6*\xA5\xA0u\xA5\x94\xC0`\xFF\xF5\x9B\x9D\x9C\xF9\xD1\xC4\xAB\xEA|R\xACV'\xCB\xECõMپ\xFC\x8Ch\xA2\x92\x8E\xF7±\xB6@&gt;\xE0su)\xA6\x8D\xE2\xF3 ՝sA
+endstream
+endobj
+214 0 obj
+   233
+endobj
+215 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /ArialBold
+   /Flags 4
+   /FontBBox [ -627 -376 2000 1010 ]
+   /ItalicAngle 0
+   /Ascent 905
+   /Descent -211
+   /CapHeight 1010
+   /StemV 80
+   /StemH 80
+   /FontFile2 211 0 R
+&gt;&gt;
+endobj
+216 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /ArialBold
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 215 0 R
+   /W [0 [ 750 610 833 ]]
+&gt;&gt;
+endobj
+137 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /ArialBold
+   /Encoding /Identity-H
+   /DescendantFonts [ 216 0 R]
+   /ToUnicode 213 0 R
+&gt;&gt;
+endobj
+217 0 obj
+&lt;&lt; /Length 218 0 R
+   /Filter /FlateDecode
+   /Length1 16872
+&gt;&gt;
+stream
+x\x9C\xAD{
+|\xC5\xFD\xF7\xCC\xEC\xEC\xDE\xEE\xDE\xFB\xE5\xEEr\xB9\xBC\xDC].\xEF\x97p!\xB9K        ܒ  o        I\xE0HB        \xAFB\xA0
+U\xA4
+(\xF1
+\xAD\xB5֗Zb@ \x98*\x8AE\xD4ڊ\xDA7\xAC\x8A\x88\xB4Z\xA3V)\xB5@.\xFF\x99ٻ\xDF\xFEO\x9F\xE7\xF3\\xB2{\xBF\x9Dݝ\x9D\xFD\xBD|/3 @\x9B\xDC \x97\xB7v\xA2\x8F\xBF\xDC@\x89\x95\xB4&gt;\xBCp\xDD\xF7\xD4' r\xDCܷ\xB8s\xC9\xF2\xE2\xA7\xB2(\x9DM\x8E/.Y\xB6a\xF1o\xCE\xF8jɵ\xBF`L{\xFB\xA2ֶ\xDF~t\xD7}\x8C\x9BJڊhC\\xA9\xB0\x8Do!\xC7i\xED\xCB׬\x8F&lt;\x92l!Ǐ\x90\xE3ח\xADXغ\xE5\x83u\xA3\xBF\x9Ew,o]߉pg\xC9\xF19r\xEC\xEE\\xB5\xA8sâ?\xC2\xA0\xA2\x83\xD5\x90\xD1j\x80\xF5ia@7\xFFk\xEF\xBC\xC6v\xA3\xF3=f\x8F9\x9D\xEC \xB9\xEA\xD2f\\xA6߀\xF4\xC1I\xF8\x8B\xFC)\xA0\x83\xD5\xCA\xDCz\x8EAc\xF8&quot;yj\xE1V\xF0-r7\xEA\xE4\xBA\xF9NY['\xD5\xCBMZ\xAE\x8D[í\x958^F\x9C$ \x80\xB0b2\xA1:\xACH\xDD\xEB\xF5\xA8`\xAEij1\xF9h\xB45\xA2$k9\xF5
+]R\xF4F#\xAACV\x90Bo}C\x94iZ-\xA1t\xB4\x98h'@\xD6\xE9\xC8\xDEɺr\xE8\xF59\xABӑ\xFDz\x83\xD1\xE02L7p\xBC\x8E^\xC7\xEB\xE8u&lt;\xA6\xE7\xF88\x8D\x89\xF6\xA8\xE9\xBAr\x88vH\x88ӊ\x96vJ\x9E.\xB1\xE3O\xD1\xEB        \xF1\xF1!\xDAu\x94ةô\xCD2\xBD\xE9\xA2/\xFA [x\xE4\xA19\xBE\x84\xCABe\x96\x984T\xCCn8\xC0\x85        \xD9ۆa\xB8\xD1_2:\x86W\x81\xF0*\x8F\xD7 \xBD\xD0\xEC%L\x87\xFE\xE2\x89Ȃu\x91EG\xA0\xDE
+7\xC38\x9E\xBBr'\xB7\xF4\xD2 \xEA\xCAqn#X=\xF4&gt;\x9A\xFF\xC4/xVI\xC5 Z\x9D\xD6\xE2\x85]\x82e\x9C\xC3\xCF\xD24k\xF4
+\xE6\xE6\xB8Y\xF1&amp;[\xDF\xD0犃\xBE\xB2\xC4^|\x9D\xB4\xC1\x866\xE4        H\xB2\x83p\x81\xBD\x91\xC3\xC6\xC5B\x88\xF3\x87('q\x96q\x82\xA3](+\xB8\xD5\xE9\xC6thLw\xA5\x87ҹ\xC6\xD0\x9B\xD1Bo3\xDA\xE9=F\x81\xDE`dg\x8C\xEDi*[|\xE1p\x8C\xA1\x81\xD0a }}h\xB7جH#\xDEԴ\xCC  X\x8A\x8B\xD2
+ \xECq&amp;\xE0Mf(,|\xCA\xDCօ\x8D\xF3.\xFF\xF4\xBE\xC8PSSk˼\xC8\xDF\xFD\xC0Фȕ\xF7?\x88 B\xF1\xDDw\xA1\x86\xCFh\x8B\xBC\xDB\xD7y\xA7u\xD1\xE2\xF6\x85 \xA1\xFB\xC8a\xE8Y\xB2\xA0}\xE9`+L\x85\xA5\x91\xDFDލ\xBCyS\xBEi\xE8C\xF1\x9F\x80|r\xF0]8D\x99\x92\xD7%FQE\xBB\x9DR\xDDdz\xBD\x9D\xEDm:\xBA\xB7\xCAtO\xB4\xD5\xBC\x89\xA2Օ-f9\xD2\i\xFE\xB1\xC84&amp;.\xE8*ʙ&quot;V\x99\xAA\xE3\xAA\S2+sP]b\x9D\xAB.\xEFڄʼn\x8B\\x8B}-\xFE\x8D\xF6NW\xA7{MΚ\xBC\x9B,^I1\x98\x8AE\xBA#bvf\xE1d\xC1\xE3I$#Y6ٓes2\xB6:\xA9tTN\xB3
+x\x9C\x88                \xD03Ffk
+\x8C\x9DH\xEAm:6\x9D\xF7\xF9\xCC%%\xA6?ẟp\xBD\xD0O73\xD1&lt;\xA2\x85\x8A\xAD\xC1&lt;'\xABݼ$k\x83y]\xD6\xCD曲\xEE4ߕ%\x87G\xE7e\x8E\xA92\xB4
+Q\xE1 \x{DE30}\xA0(\xC8\xC8̠\xFF\xC1\x91\x8E\xB7y3Ҽ\xA9\x82\xCDj\x8F\xB7\xD3ͨ\x9E\xFE\x87\xBD?\x8D m5\xAC\x84Y7\xF4\xBDֺ\xB0\xE6\xC0\x82\xCF\xC1\xB2/\xEF\x83\xC2&quot;C]\xE4\xB7\xDD\xFF|\xCB哙?\x9D\xF3X\xA92\xB9\xAC\xF4\xAB\xF9\x8Bw\xAC^8\xDFiuZs^\xFD\xD93\x9F\x95\xE5~&lt;\xB9yK{\xB8#ɐe\xCB\xEDU\xB1\xE7\xA9Hg\xAC\xC0\xEA\x95
+        J\x9A\x98\xA0\xC9\xE2\xB2\xF8Z8\x99\x9B\xCC\xD7j\x9Aa\xB3f\\xA1\xE9\x86\xEB\xD1z\xA1[c\xD1@\xA8\xEB\xC2P\xCC'w\xC2&quot;\xC2=#\xC3\xA3 o\xB7\x9B.\xC3-\xF4\x87\xCB\xC2 b\xDA\xE8\xCD@f\x93\xA5\xB8\xD0&amp;\x90\xD7F6\xAB\x85\xBEg\xFC\xF0\xC9_|\xF2\xC3{Be5\xD5\xE3\xCB\xEE\x9Ei{\x9E\x81y\xE4\xEF̫r\xF5s\xDD#~\xE8\xF1ȹ\xCD_\xAA\xA2\xF6\xD91t\xB7\xE0M\xC0\ऒ\x99\x81}\xFA|\\xAA/K\xA9\xC05\xFA\x9A\x94&amp;\xFDt{\x87\xBE%~\xBD\xBE+\xC5\xCB\.c\xD28\xD6\xF6
+\xFD]I\xA0F\xA3\xD5jBFI\xA7\xF30\x98\xF4(T\xB2        }C=\xA3\x9C\xC0\xCDdMմ\x92!\xDE.\x8F\xD1\xE3\xF2\x84&lt;\x9C 2\x98\x832\xED&amp;Z\xD4*- (-&quot;=c\xC1T\x81,\xEC\xBCћ-[\xDD1\xE0\xF4\xF9
+¦ *\x9C\xAA
+\xE3
+ \x9D\x86&amp;b\xA2\x8C=^\xB7j\x9D\xD1\xA2\xDCr\xE5\xE5\xF1E\x81]\xF5\xAB\xFE6Zn&gt;\xB1&lt;\xF2q\xE4$\xF4]8\xFB\xAF\xA7ួwԡ\xC4%w\x8D\xCEϟ\x9B\xFBZVa\x9C
+Z`y\xE4\xAB/s\xEEx\xB0w \xE1Y\xFB\xD0\xFB8\xAF\xA0.Uu2\xF6&amp;\xC86/\xF6Y\xE8Xs\xD9&gt;\x8F\xED
+3R\xE6\xE5.5\xB4$\xAF\xC8\xDB(wY;\x937\xE6\xCAH\xCC\x97oV\xCC\xC8lv\x8B\xB5I0)\xC9r\xE3\xD1D\x8A\xC6d\x98l\xCE 2n&quot;j\xE5\xC3e        %;\xED9A\xB2\xCC\xD90&lt;\xA3\xA6\x98\x99\xB3q0CS\xDD Eɨ\xCEP\xB7A$\xC0\xC6$b\x93$B\x99\n \x83\xAE`(\xC8H\xF9\x8A\xF9\x86-zz\xCB(\x91\xDE2*QK]1\xC3}\xA6V\xA4\xD7i\x93\xE8\xF3\xB4\xCCܵ O\xB5v\xDA1\xA5\xC9^\xA6\xDDk\xB7\xAE\xBA\x9C\xA8 :?|L,\xDF4H\xBF
+\xFCT\xBD\xA84\xC3fꐈD\x89&lt;\xA9q\x87=ޠ\xA08\xB1\xE7&quot;\xBDŪ}S\x81z\x83EE\x89\x89\xCCm\x9C\x99]E\x8C\x9C\x88'?\x93P\x97\xE5\xEF\x9Ay\xE7\xCB-\x86)\xE5\xE5du\x8E\x9Br\xB8U.~}ѺJ\xA8\xFC\x99\xFA\x8F*g\xB4\xAD\xB9~\xE1Cכ\xC7Y\xE2]'\xEF\xE9\xBE//\xCF-&amp;+\xB3\xF1\xA6\xCC\xF4\xE7\x8Ci\x99\xFEQ\xB7/\x8B$\xC3b\xDE\xDFZ\xD7\xD2:\x8DX\xE8p3\xB1;\xCCV\xE28\x9Bݶ\xD6ƙ\xF4by6\xF0P/~\xA7\xEC\xBE:D\xF9B[GeH]u4`\xB8\xA2\xC439b&amp;C\xE6\xDBAjTt\x91CQa\x9E\xA1&quot;&amp;\xD2\xD232֒֯\x94,&amp;\xC9\xDB.G\x8B\x99\xB4̲\xB4 &lt;\xB4&quot;\x93 4\xB4N}\xDFл쁄8s\x88&gt;IO\xE3ڻ\x9EZ\xAD\x96ިg7\x92\xE3\x8FU\x8Dѳ.\xC8\xF1?\xD1^(q\x98&gt;Y\xBF=~\x84PU\x8E\x88,T9\xFBhlR\xC5Hb\x87a\x89\x91\xA2\xD0Ƅf\xC3\xCD\xFDG\xC2\xFC\x9Ai\x8FL\xEB\xEFo\xE8_\xF8ԳhӴm9\xD9SK\xAF&lt;\x8BÛ\xAAg\x9E~
+P\xAC:iû        \xCF\xE3\x80\xA6*\xE9\xA8\xC4V\xE0\xAE@նrw\xBDe\x89\xE5\x87\xE2\xA6$\xD9         \xF1\xE5f\xAC\xE3SA\xD2\xEA\xAC1\xF6\xE2&quot;\xE3\xBA5\x91\xFA\xA0CQ\x9By=\xC6\xFE\xCFՠ\x8AZ;\xFE&quot;\xC6\xF2O\x99\xD0q\xF1P\xD4p.*ٌ\xF1\xBBS]\xA9\xA1TdH\x94\xC3$\xC6uJ \x8C&amp;{\xA7.\xC6oB\x9CU\x9F\xA0c\xEB\xD4\xFE\xA1\xF2\x9F*\xBFu\xEDBGGI{!\xC4g\x8Cߺ\xED\x9Eo\xF1[\xC1av3\xE3\xA1ܦ\xEC\x8E\xF9Ì\xCCaf[\xB8\x80\xCA}\x8Ex\xF75\x93\xCA\xB6͹\xB5\xBA\xBF\xBF晎W\xDEaǮ\xD5L_]}_*\xDB\xFE\xFE5SfddEr\xF9\xFF\xAC
+\xD5E~\xF9䕓K\xB7\xA59\xDF&quot;\xB28@\x9C܍\xFC\xDB,6\xFF\x99+\x91\xA2\xD5#N\xE0y\xB1\x9B\xF8\xBBۙJ\xE72n\xB6`\xF6Θ1\xB3\xB7ÌA\xD8        \xE5        l\xE9\xE6!\xE3\xC5*        \xB3x8\xC6&quot;&gt;\xC64\x9E\xC2\xED\x86CL\xAA\xFCvq\x987\xE1s*s\xCE\xF9\xCES4        \xF9\x88K\x80\xD0,\xE4\xE0\x8Do\xBD\xA5\xEB\xEF\xE7\xC7/\xA5\xE30\xAA|\xAF$z\xA5%Q\xEA%\xC5Yj\x98\xD6R{\x8D\xA1\xD2Ti\xAD\xB1\x8BƐ\x84m!N֩&amp;\xCCdu!&amp;\xBD/f\x8C\xBA\xC4%\xAA:Wb\xCAEނi\x97#z\xE2\xF4!f\xBCߥS\x97\x94q\xAAN%\        \xA1\x84        ؂\x99/dL\xB30vY;\xEDZ`/0/)0/)\x8CPhv-\xB0\x88\x96\x9E#\xFB\xAD\x8E\xFF%\xFA\xF7\xA9!.\x8B(Fı\xAA\x9EDAte\xE4\xEF\xFF\x88|\xE3\xFE/&lt;v\xE7]\x8F&gt;\xB6o\xEF\xE3hT\xE4\xB3ȋ\xB0 \x9A\xC9߸\xC8\xF1\xC8gy\xF3Ϳ\xBC\xF1\x97?\xB1\xF8g\xE9\xD0߸/\xF1\xF5\xC0\x9ER\xA6\xBD\xB5^䃩\x86{\x9Ac, \xC6ڃ\x8EjX+Wj\xED\x8D\xB0ΰ.2t\xC1Ն8\x93\xC9\xD2a\x8F\xC7\xE2$\xA3\x97\xE5`^\x95\xB3\xBA(ߍq\xEF]ecڭ\xDEx\xE6w\xE2%\xE6\x91$Q\xB5D\xCA+\x89\xA4S:\x89ȏY\x92\xB455ƃ_\x94*:\xA9\xE9\x84\xD3U\xCB!\xB1#凝ƎW9R\D \xEE\xCB\xF9\x8F6oxer\xF5t\x98\xF7\xEF\x96#\xD3\xE4\xFA\xA7\xE7&lt;p䩇J\xD6\xF9\xB3'\xDB\xE4\x89y\x93&amp;O\xFE\xEB;\x8C)\xCA&lt;U1\xF9O\xAF\xBF\xF2\x97\x87\xCDof\xFC!\xFE\x83[E\xD0\xFA+Л\xF4n=\xA7\x93\x8CīT\xC8F^Y\xC4\xCC\x89bS#`U\xAC\x9DV\xA4\xD30\xB3\xD00~h؛i\x98~h\x9CR̆\xA4a\x8A\x82S\xCCt$
+3fƥ4\xAA/\x92\xE3 SEB\xFCGe\xD1\xF6\xB8o\x83\xBB\x99Yc\xCA Hh\xCE0\xC6\xFBM8\x8F\xE7V\xC99\xB5Es\xAC\xE9\xEF\xEF|\xBCqtn.\xB7[\x96\xA6\x8D\xBB\xF27\xFEyS
+\xAFQ\xE3\xE3=\x9164\xC0\xE2\xE3\xA5D\xE0\x848g\x8Bˀ\F\\x86mT8%n\x92m:7=\xAE\x85k\x89\xDB֑d\xBD3n\x9D\xD5f\x81X\xB7@KCL\xE3Pb\x874\x8A\x91\xF9;W4徝:\xA7o\xC6\xCC&amp;\xC4B\x85\xE2&quot;K0\x80hn@2  \xF3\xB4{J\xC7WO\xDA3\x83Ш,\xF2f\xC4\xFD\xAA\\xF5\xD2\xC6\xCD0\xE9\xF1\x87`\xD6\xC6\xEE\xE7\xAA\xE5W#n6\xF6g\xC8\xEEz2v\xFC@\xC9D\x8A\xBDn\x8C\xD1Q-e.3\x9A\xDE;\xBB!\x841\xC1\xC0a\xC1@v=\x8C\x81\xF6\xBFӛ!UVFl\xC7W\xA1\x8D        \xE2|\xF4}&lt;Ϯ\xEF\xEF\xAC*O\xAF\xFA\x90\xFB\x89K \xE1,e\x8E\x80\xA4DJH̐r\xD2
+\xA4\xB2\xB4rij\xDA|&gt;l\x9F\xE5\xA9\xF7\xCF.X\xC1/\xB3\xB7\xB8\xDB\xFC\x8B
+\xAC]|\xB7y\x8D{C\xD6\xDF\xB8]\xBFչ-\xEBxw\xA2\xD98\x85ۜJ\-5\xA4\xD4Ԍ\xF1)X\xD37tLa\x86\xA5\xD1h\xC7s\x92\xC7@\xB1\xCBG\xDF$\x9B\xBDy6{\xE7\xEC\xC4 \xB3Y\x8B\xE7\xAC\xF0\xE1`&lt;!)\xFCŧX
+o\x88\x81(%\xE8\x9B u\x86D\xE0qhXT\x85\xD0\xE1\xF0\x88\\xC1\xD8k\x8D\x82\xC00\x84~\x83Я\x94L\x86;\xA3\x91ls\xB0;\xC8k`jX@\xAAq2#\xB9)\xC0Bϫ(\xCB;}&gt;\xFF0&quot;\xA7d6\xB3\xE2A\xE2N)&quot;\x8D\xB1\xB3\xDC2s8\xB9\xA4x\xF05\x8C\x88W\xCCx;\xF7\xA7\xC1\xB77\xFD~\xA2\xDCx\xBAm\xD3-˲~ܳ\xB1d\xEC\x98'\xAEm{\xADR\x9E\xFC\xBB\x85Kv\xFAr\xE6~\xE4\xBBq\xD2$X~׋\xA5\xDE7+j\xA7ח\xA7\xA6:$\x87!\xF3\xCE몺\xF2\xFDţ\xBD/\xABk\xAF\xA9\xF2z\xED:\x87\x9CR=\x85\xC8z\xFC\xD0\xC7h\x90\xDFA\xAFR\xAE㝼\x8F\xE7\xB4&amp;\xCDx\xBDV\xE6\xE3        x\xD6&amp;w'#\xB8%Yԛ\x98\xAA\x99\x98\x80LL\xBBLLL&amp;\xA7,j\xBD\xA9XC\xC1\xD4\xCC
+MnV[\xD2EkKc\xB5\xA5(hh\x92(hhX\xA4\xF5\x9F\xAA\xF3\xD3ijz\xD3\xF6\xA4\x91\xD1_A\x81\x8A~\xD3\xC5\xA2\xB02B\x85\x85dO\x98\xA9\x82k\xD0L|\xB2\xB9\xD0\xEC\xB1y\xCCW\xF354\xFC\xC1\xE8\xC7{\xBB\xBB\xFB\xE1\x96\xC8&amp;\xD1a\x9FV;\xAA\xCD.\xCBK߫h\xE6~8!\xF2\xDC\xFEװЗ\x95\x9E(\xA9\xFE{Y\xA4W\xFF\xED\xF9Я䍋\x9FS\x90;6\xBFR\xAA\x89\x9B\x9AS\x9E[\x93?\x86\xF9&amp;{\\xC6w\xD87\xF1\x9Dns*o\xF1زU\x9FcU\xB3cJ&quot;{9\x8DV\xE1\xF4\xA3&amp;\xD84F
+\x9E\xB4\x85r\xC4 \xE8-1\xB5\xA5\x84\xA2f\xA7N 8X`8\x83i\xABȔ\xD7\xC4`H\x85\xA6\xB52Cq' \x8CLk\xD5\xDC\xEB\xF6WA\xA8\xF9\x98\xDB\xF21\xC9\xF8&amp;ڋ\x83:\xF6tړ\x8392\x93\xA1C\xA0=9ؕ\x94&amp;\xFB\xAD\xA3\x87\xC1\xAA\xDC\xE7\xBE'\xB9b\xB9\x95\x8F\xA5\xCA%!*
+\xF0\\xD5j\xA2\xC8\xC1 2k5\xF1t\xE6\xBEWD&quot;\x91 \x8D\x8FΔG\x9Dlk\xF9\xA1כRw\xCF\xFA\x93\xFF\x981q\xC2\xD1y\xAD7V\xEBz\xFAk~\xA4\xDCӻ宙?\x8B\L\x88?f        \x8E\xCAμ\xAErqe\xF4@\xCD\xEESS'\xD5ff\xE5_\xF9#jMM~\xFDD\xFF !\xA2\xCF\xF5E\xC4\xEA\xC0G\x80H\xC2\xEFhIݳw(˷\xB1$\x84K\xE6ra\xCA\xE6\xD2q\x9F&amp;\xFA\xB4X\xCAW\xC2~l\xC0\x8D\xFC\xEDr\xB4\xB7\x89R\x9B|\xADv\xFCZ\x85׈\xA5\xD5r\x976E\xE7$\xD48^\x92IB˶\xC9^&amp;q\xA4\xA8\xE5$\x9D\x80\x89F\xC1%\xF88\x9983\x98\xC0vL\x86\x90a\x85\x81͠X4\xABm        \xAC\xCC\xC2/\xED\x8DѲk\xC3
+\xDAKA\xA0{\x9Bi\x90\xFCC\x92\xD9\xF4\x91\xE8\x94\xFE\xC6\xC1B'E\xDE\xF9U\xE4\xFD\xC8ODN\xBF\xF8\x8C\xBF\xA6\xBC\x80×ƅ\xAF\xFC \x87\xAF\xDCϵҍ\xE2}%\x89!,B
+p\x80\x97\x94%N\xA6\xA6NV\xA8\xAD%ֵ&lt;G\x82\x89\x90
+h
+\xE3E3\xAFyC$%\xD1O55T\xD3DaD\x82Y\xB2\xEE4\x9A\x81\x81‚\xC1N\xF5\xD9\xC0 \xC1\xC0\xEE1 {)\xC3(\xFA$\xC3p\xD6b\xB0\xD0~\xC8\xF1e nڗ\xE1愯c\x82
+
+Hvϒ}        !\x86
+\x94\xD1p\xC2f\xA3\x98\xE0\xA5\xF8@Е\xD9Ֆ\xB1a9\x9C9\xD8\xDF\xDD}\xE2\x99Т~\xBEw\xED-\xFB\xAFL\xE0\x9E۟\xFE\xD2t\xA2Wi\xE2        \xF8\xE0I\xA5\x86K\xE3\xB2\xE3\xD2\xE2\xB2+ݕO\xE7h\xA7\xC3tWr\x92_\x9E\x95\x8A\x93yhJ\x95&lt;\xE8\xCA\xCB\xCFS\xF2\xA6\xE7u\xE6\xF1\xDF\xEF\xC2\xF3(&lt;\xC4S&gt;\xE41\xC7Y\x892K\x87\xD4M1\x8FN\xD5\xD3̼z&gt;\xBB()\xEAؿ`\x81?\xA4\x91\x9C\x8F\xB9tV΂\xAD\xA6tmR\xB4\xC6Ǟid\xCF4\xB2g\x9D&amp;\xC6k\xFA{9~C-\xF1\x982\x923&lt;1QH\xBB7\xC5
+ \x84\xB8̜&quot;!\x86}\x94\xC9\xE5d\x8Fq\xB2\xC78\xD9c\x9C\xEC1NgR,4I\xA2%$\x9A$\xB1\x8B\x93b\xF0\x9F\x8BQ\x92\x86\xA5\x9D\xC4\xC2\xC6$\xB5\xBC\xA4\x8A\x81&gt;)\xA9\xD5eRL\x9BM\x9C\xC9\xCEL\xA3\xF1\xA3\xE9\xEB\xC7\xD4\xEF^\xBD$Z.\x9D(+c!&amp;\x890K\xC2\xDF(\xD8\xED6\xF3wV\xE2\xD5Z\x82&amp;\xBE_o\x8B\xAF\x9FQ\xBB\xBF\x96\xC3*9\xEDZV8\xB0p\xD5\xFD\x99\xAB\xFA\xAF\xED;\x806M\xBE)˗[;.~\\xCA`m\x9A\xB25\xCB\xE7.5\xB4ԵԽw2\xEAWH^XA\x82+Zo@Jz\x993?i\x8C\xBB\xD6Y\x9E4\xD9\xDD \xB4 \x9D&amp;\xC9\x91\x99wL0`(\xA6\x94\xF3\xB2\xD9\xFA=5;\xBDZ\xEFIU\xA2\xFDE\xC5\xFB_x
+\xCA\xED\xBCo{ \xB5\xEC\x90\xC8D\x99h\xA2gEV&gt;\xA9\xB7\xF0\xD1\xDED֛\xC8\xC2/\x91])\xB2DQdBEړ\xB8\xD5\xF3\xB5L\xF0k\xB5\x9BAf\xAD VN19|\xD35\x98\xBF\xE9\xFAg\xF4,!\xBE\xA0\xAA\xF2\xA9ֆ\xED$\x98\xBA~\xD2\xFE\x9E\xED{\xA7?\xB4v\xE250\xCD;߽f\xEA\xF4\xF4Lx\xEE\xD2\xFAQ\xAA󯯼\xF4\xFBIj\xEC:\x8F\xD8\xED\xADt\xAE\xBC\xAC&lt;6\x89[\xC2m\xE08=\xD4&quot;\x8Cϋ:m&lt;L\xE0|\x82\x98\xA0\xCD\xE6\xB2\xC5lm)*\xE1
+p@,\x93
+\xE5\xB1\xDAT\x89+ũR\x85\\xA3\xAD\x83M\xA87\xF1s4\x8DR\x9D\xBCv\xA0E\xB8\x83\xEF\x90\xD1?\xBCZ\xDC$\xAD\x927iG\xE9\xAC\xD4        X\x89\xE08\xC8\xC5\$4\xEC8$\x96\x82\x80P*\x85.\xB0V\xC0*\x83\x8Bx\x80fC\xB7 K\xF4\xA6O        \xB6G\x91=\xFCuh\xE1\xACC\xFA\xAF\xB95\xF2\x83\xF7&quot;/E~w:\xB2\xEEUX/\xC3bX̟\xBA\xE4\xC7o]\xCE\xE5O]\xCE\xC1\xBC\x9C\x82\xCF\xD2:ѻ\xDDQ\xBD\xB3(\xD94\x96\xDA\xF2ݕ\xA8\xCAXcS\xDCs,K,\xDD\xE2\xC6$]\xAC\xD6SA֊\xD1Z\x97@k]\xB4ˆb\xB5\xAEX \xAAI,\xCD\xF4\xCB\x8D\xA5?\x89\xC5\xD2b\xB1\xF4\x97\xFFk\x89K\xFCoK\Õ\xAD\xA8\xCF\xF8\xAF*[\xDF*l}]KC\xCC\xDF\xFC]u\xADڊI\x8F-n\xDEYE\xA2\x91\xDA\xDE'&gt;|a˞\x99\x8FL\x9E\xBE\xBA\xFA\xDE'Q\xF1-g\xA6\xD6\xD6\xE6e\xEB\xE0[fE^\x8F\x9C?\xF9\xFBIc7\xA7%\xBDb\xB99n&amp;\xFC\xB7\xC3\xC2o\xD6v\xE1\xFFcm\xD7&lt;\xA2\xB6\xAB\x8BN\x84]\x89͈E\xA2\xF2\x88\x95{\xCF\xC4\xEAD\x97\x94\x93\xCC\xC8r\xEF\xD5&quot;\xEF\xFE\xFDE^U&quot;\xC3%ݫ\xB5^6\xF0\xFFE\xDE\xFFc\x95\xD7\xFC_Ty\x89(^\x8B\x96y        \xFF\xC7E\xDAp7\x895\xE0eB\xA50]h:A\xE24|\xCFO\x84\xD5\\x987p\xD2\xD0h\x8EwbW\x83\x89a\xE9P;I\xBA\xC7a@=w\xAAd*ց$0t\x80.\xC0\x83[I9\x87\xAB\xF0&quot;\xBC\xF3\xF8\xD1t\x8E\xCE\xFA\x86\xE9tx\xD8O
+\xBA\x84\xCDy\xAB\xD6|,j\xCE4@\x83\xB8{p\xCD˯G*~ \xE7\xC0&amp;\xBE\xA4\x81o\xE0\xCC+/re\xD4g\xD05\xBD\xC7  \xF4+\xDEK\xB5e)j\xD7c{@\xE4\xE2q\x80F`\x93\xB2@\x88\xDA\xE3٘\x85^\x88i\xC4DZI\x9B J\x93\xFA\x97\xD1\xE5w)\xAE\x8E\xB7j \xFF\xF7K\xFE[\xF0\xCF蒀\x94\xD8?,Ё\xF0\xD5j\xA0:\xD5\xED1{
+p\xBCݢQeJ\xE4ɲ\xBE\xF7\xC9=\x8B/\xBF\xD9ל\x86\xB0q\xDFc\xBF\xEF\xDA\xD0pb\xC7ѣ\xBB\xFEиb\xFA۫\x91\xC3sCc\xF8S\xA1\xE2\xE6ȋ&lt;\xF0yUA\xE6\xE5sJ&amp;\xFD]\xAD\xFD\xECD!\x98L\x806\xA8d8a\xF4\xA1 (AU`2y\xE7F\xD4ր\xDFp:\x84\xB8zL,9B\xFEp\xA1\x98.\xA8q\xA2D\x81B\x91\xF3\xB7\xFF
+&amp;\xAED\xBBh\x9F\xBF \x98\xB9\x89\xFF\x8C}\xCAN\xAD\x96\xF7;\xB56\xB66ß]V\xA6
+ZG\xA7\xFCS\xB4U֊\xD4
+=l\xE4\xB5u\xFE\xEDbG\xD9z\xED:\xFF\x9A\xE0\xC62g`l\xE5XT:6\xA5\xDA\xF3\xCCy(//{\x8AK\x8D\x8Cz\x97\x9E\x84k\xE6)\x92\xEC\xF53s+f\xAE\xB4\x98\xCDo\xA7\x8C\xB2{\xB8Q)c\x8B\xB1\x8Es\xB2\xE5\xCC \xB9BƐ+\x84tw\x8F\x8FMo\xC7\xD3\xE9m?-3 \xB0C\x98\xE8\xFD\xF2\xAAq$\xC1\xCD0\xB4\x8DHȢ\x9C\xCFhcƋ\xDCc\xB3۱!\xFC\x94\x8A\x9AW7l\xFA|\x9A\xB1\xEE\x{3585DE63}\xF2
+\xF3\xF26Oi\x9A\xB8\xEF\xA9Qپ\xE3\x9B\xFF\xD8,OX\xB1\xFC\xE1\x8A\xC9S\\x9F\xBF        \xBD\xE6\xBBa\xC9\xE2\xC7B+J\xBD\xA7\xC6L\xC9\xC9\xCE\xED\x981}i\x8A+\xFE\xE1N\xA7\xB5r\xFC)oiVn\xFE\x{1B96CE}8 b!\xE1\xF3 a\xF6'Lv\xEEè\x8A \xD2\xC9`\x99\xAA\x9F\x86 \x82\xFE0{\xBF\xD1\xF9\xAC&lt;\xF5\xC9g\x9F\x91\xAB!X=\xF4!?\x91\xFF\xE4\x80J=\xF5\x92`\xB5\xC3D\xC9jK\xB7\xD9*\xACs\xC5\xB9\xC10\xD747\xAB\x85k\xB5v\xA2u\xC6Nk\x9C\xDD\xEE XPN\x81j\xD9V\xE6s\xA11ו\xEB\xCF
+\xE5\xAE\xC8\xE5\xDD6\x9D\x95\xAA\xBF\x8E\xCD?\xEA\xDAY!w\x80\xF1\xC8R.\xAB\xE4~{\xCDF\xACV\xA3\xCE\xC6j\xFC\xC4\xE2\xC6\xC9\xE3v\xD5?\xF9\xF7\x82\x96e\xED \x9A\xA1\xFE\xA1\xF5\x9F\xDDn\xDC\xF8Ŏ\x95OM\xAA\x9AVW1\xF1\x99\xF6]\x97\x96\x969r\xE2\xE3\xE7\xB66\xC3\xF4\xFA`j[\xEB\xE2\xB1\xD5\xFFX2\xBFzZ͇{\xEF;;iʤ (\x8E\xED\xA58&amp;\x80[\x95        8\x9B$\xB8%\xC2D\-\xD9|        \xAF\xF03\xF8\x9E(|a'\x87\xB8,\x90ɍ\xC5\xDC0\x89[ \xBB\x90x\xB4\x96\xC4&amp;$E\x90c8\x96\xC51\x8Ab\xDC*E\xC8qq\xDC&quot;n-\x87\xB9$\xB6\xE6
+Q6… a`  
+\xC9\xADd\xA9A        \xFD:\xFA-l\x82sh\x82I\x92\xCBm\xDC\x82a+\x87&gt;\xC0\xBB\xF8\xCF@*([\x94'\xE0l\\x96^\xE6 \x8E\x9A\x9A&gt;\xD5W1\xAA7LJ3;\xE1\xC6t\xA39\xB9\xA0ښ]m\xD82\x90)\x824K^\x90\x9C \xBE\xBC\xEA\xFA'g\xFBK\x8C%\xAE\x94\xEBq\xB2\xB8ԉY2\xB2w\x8C*8u        1:jZ-&quot;\xD6\xE1W]
+\xC3&quot;|\xD5,,\xC5\xC3\xD5\xF9\xAB\xCE\xE3S\xEAq\xE1]\x8DMs#\x9F        \xCCK\x93\x93;&amp;\xBCs\xD9~\xA8u\xDEOja\xF5U\xD5\xCD{E\xE3_\xDA\xFD\x8B&quot;%oY\xF95L$\xEC,?y\xA1s\xD5&amp;\xAD\xEE9c&quot;\x94&gt;\x93\x9F\xD7\xE39\x98RQ1+r\xF9\xA1{\xFAy\x99\x87~ּ&gt;\xCFe\xCBɲe\xD3z0\xC1\x9E\xAD\xF3s\xC0\x9D\xCA8Yt\x8A&gt;q\x9C4\x8F\xB3׈\x95\xE6&amp;qvv\x87\xD8%꒓\x9D\xD5t)\x92\x92Υ{\xA6\xA4 )\xC8(\xBB\xE4(\xCFܩ\xEE\xDAd\x98Lb1ec\xB2\x9D\xF2&amp;\xD9@\x81&amp;\x99\xC5\xF8\xC9Vp'K\x80\x9D\xF7\xE7RK@\xD2=&gt;]bkgH]&gt;\xC3\xD0\xC5V n\xF0\xFBq\x85zi\x9Am\xC7\xE0o\x9DZ&gt;\xF9\xA5\xBB\xCE^c\x98\xF9׎I[\xB9yA\xE0'\xF3~V\xCAm\x9C\xE0k\xF2l8&lt;uz\xFCK\xFB\xB3&amp;\xD6\xA6\xBD\xA8\xCE*𭯝\xD6\xE1\xCEp9th\xE8@d
+\xC6ف\xE2__΃\x9F } j\xF8\xA0F\x902A!\xB8WY%\x89\x82,9\xA71\xE8\xE3e\x87#ޙ-f\xC8َ \xE7D\xFDd\xA3\xAC\xD77\xDB
+q\\xEB\xD27\xF8֍\xC6\xE93\xFC\-\xB1\xCE5CBF\xCE \xFAf\xB8\x94\x94\x900zF\x9C\\xABS Hg\x95C6\xBB=+Gg\x8C$E\xA6\xA4#]K\x93\x9Ac\xFC\x85\x94%\x84\xC4T\x8A\xC3(
+\xA9\xDFa\xD5\xEBE\xD7f\xA4C\xAF4\xF2\x8E\x98Isk~\xDD{\xF8賽OE\xAF\\xF89\xF1\[\xE9m\xBC\xF4Lc\xDBↆ\xC5m\x8Dx\xCF08s\xFA\xF4{gN\xFF\xF5\xD8%?        \xFBK\xA8wH \xEC\xFB\xE5\xF6\xEDO&lt;\xB1m[$&gt;J\xB0X\xE8
+\x90\xC8Ń\x84%\x8A\x97\xFB%ij\xC5_\xCAF
+\xD4(z\x98\xAFW\xF4&lt;.o&amp;\xA1N\xFF\xB8F\xC1\xFB\xC3e\xE7\xC9F\xF2hF\x96\x9D\xA3t\xBD^\xD0Ck\xAD\xFC\xD1\xC1\xF7|yFTF\x89\x90g\xF0=\x{2B21CD1}׹yl^\xA3\x88()        \xAA\xA0\xA6\xC31\xA0T\xC2z\xB8^o\x822\xB4 Ώ \xA2\x9CE~\xBA\xF4\xC6ϲ\x9E\x81\xF0\xB6c\xC41Cn\xDE`\xE1\xE8\xC1\xFAU\xBF\xA6R\x8D\xE7\xEEB\xA3I\x9Cv\x9E\xFA \xC5
+ˍ\xE4n#_ j\xF9f\xD0\xCC\xF3j7t\xB84\xEE \xC3\xE4\xA4\xC1ݨ\x8D~\x8A\xC6S7ۢX\xA4^\xB0MI-\x82%ڀ\xAE\xD4R\xEA\xA4T\xC1jm\xA5\xAE\xC6R\xE3\xA8L\xD1٪%\xE4\xA9\xE6dc,\xF71zF\xE6&gt;\x94Dl\xA9S\xB1\xFBө!\xC6Rh\x8F@ 3q\xF4J\x81\x93\xC0&amp;8\x84}\xEAz\xC0\x81hb&lt;\x9B)\xA5\xD3H7]|\xE5q[\xE0HC\xE1L\xF0\xAEˑ\xAF&quot;\xFE}        JP\xF7\xEF\xC8\xBC                i\xDE
+\xCD\xF37\xA6\xA5&amp;\xD8\xD3&lt;\xDA\xE6oBEVDn\x86\x9B\xE0x+\xDC\xE9\xBE\xF2Ԍ\xB7\xEF\xDEw\xE6\x9Ai\xD7\S;\xE5ӝ\xF7\xBE1뚙\xD7\xFEA;\xF1#e\xFC\x89mW\x82\xFCDA\xD0qn2\x8Df\x97\xF1\xC8e\x84F\xA3\xCE\xC0^\xC6\xAD\xBD\xA1\xB7\x82\xEB\xE48\x8E-\xE4\x86\xCE\xAD\xAB^P\x92\x99\xBBHa! \xAB'\x93\x87\x84\x88C\xCE Å$\xC0/) aJ!\xAB\xE2\x87
+\xE9+U'O0:j\xF6\xE0\xB2+\xA7aQ\xE4\x95\xD0\xEE\xF4QA|\xCC\xDFǝ\xDFn\xB3&amp;L\x9Bp\xE9VKq0\x98O0Rd\xF0\xE2AE\xA2\xD3\xFD\xEAԍ#4tT\xEB(5E\xA8\xD2 I\x92E\xB4\x8D\xA8\xB6\x95\xDC$\xC9\xDC6\xA2\xDDV\xE2/7        \xAB5\x88 \xC8ljXf\xF5\xCE|Y\x91;eN\x96d\x81\x83]&lt;\xE4E\xA3
+\x89\xE3u 
+\x94\x80r\xD0D\\xE6\xD2\xB8NGNɼ\x8F/\xE2\xA7\xF1u\xFC&quot;~#\xAF\xE1۴E\x89\x94        &lt;\x90\xE8\x84\xC2e\xA1\xB6v \xEA8\xC3ǎS\xBF\xC4c\xB4N\xE9$\xCD\xE1&lt;\x9Cz\xE2 \xE4\xE7\xBFy\xFB\xE0\xA6\xDB_F)P\xDC\xB9\xB9򧮬Go\xA6\xFD\x92\xE80\xF1\xB0\x9E\xABVH\xD0ti8\xC4\xDB$\xDE\\xCE\xCBP\xFC\xEE\xA2\xD1\xC5\xEFH(?U\x92ղѷ\xD6\xA1h\xC1\xE8\xE3X\xEAxQ)\x91:\xD4ʑ\x9A:~\xE6(\xD2\\x84&gt;A.F I\xB1\x84Q\x8C\xAD\x8C\xE9\xE4\xCBEօ\xCB        \xF1/\x969\x8A\xDB⿱\xE6\xEBk&amp;5\x95d\x89}Y4o F\xA7\x85
+\xAFN\x99 \xF1\x9C\xFE\xE6_-\xEDy\xB1\xDF\xE4L\xAC\x9FY\xFDDM\xFF\xA6\x9A\xE9z\xFDapK\xDD_n\xD6\xD4R\xAE\x9C\xF0\xF8f\xA2d \xFA\xA5\x8B\xAF\x84 N\xE6
+\xA0\xA8_.\x8B\xDA&amp;\xD9J\x82\xA8\xA6\xA8-被\x86\xDFe\xD8@\x88s\xB1\xB9\x86Hl\xF9𧇙=,\xD7\xC5\xC6{\xA1\xC04H\xB6\xF3\xCC (Ny\x82\x85fo\xD0c#A.ˡ\xE3\xC7\xD1\xD4\xE3\xC7\xF7\xE1\x9F\xEE\xDBw\xB9Y]{\x8Eב\xF1\xF0`\xEDa\xC4\xE1 \xA43\xFAW\xE2\x988\x80\x86 8\xB6BCtFX\xCD\xE3\xE0p\xC5\xE1\xA9aVG\x8E\xE5q\x84\xF8\x88\xE5q\xB4\x85\xA9\&amp;\x8C\xCC\xE3\xE8=E)j\xA0\xED\xF1\xBA+3O\xA0\xBF\xF3\xA7.\xBDG\xC6D\xD2k~-\xE3\xD1\x94\xEE\xA9\xCE#&quot;eIc\xA4)R\xBB\xB4C\xFA\xB3\xA41BYJ\x81        \x88\xE4dR        ,\x91\x82\xDAjX-Ui\xE7\xC1E\xDAU`\x83h&quot;Y\xD9vx\x92\x84\xF9I7\xA2ti\x89\xDDm!Z\x8CxY\xC3\xCB\xD3&quot;N\x96\x8Dz7\xC8
+\xC0\xD3\xE9\xB44qSP\xE4\xD8;qV\xDE]㣾4?\xFCҼ8\xBC\xD8'\xBA\xC6\xE7\xE3ت\x9F/\xD8KSB]\xEC\xB3L7\xB2\D\xEB\xE10\x9DQ\x88-d\x8Fƻǎu
+:\xF01\xB8\xCD\xD45vP\xCB]\xB9\xCA\xE3\x81jU\x82D\xC0\xFC\xDA\xC8\xD0\xE0\xC1;N\x9C@o~&gt;\xB8ݹ?\xA2!V\xFBo\xE2*\x99\xDF&quot;        =\xDEL\xECV \xDEWn\x91\xB4\x89\xD0\xCAY5\x89R&amp;\x97\xA9)\xA50\xC0p@hJ\xA5q\xF2TP+\xB9J\)Tjj\xA4ir\xAC\xE3\x9A\xF8:M\x93T\xA7][\xB8\xA5|\x8Bf\x85\xB4X\xEB5&quot; \x86P\xBEX\x8B\xF1\xA8\x93\x8FS\xD6\xCAl2
+:ɓ8'\xE61D&lt;1Lw\xE1\xB5t*
+
+HI&amp;\xA0\xC5X.id\x90\xB7\xEA\x8DzH\x93TE߬\xC7&quot;(\xC9\xE6\xBC\xF1
+\x94I\xE1\xB5\xAAQ\xC0\xCAa\x96\xB0\xC5\xFC\xDBL\xC3\xFF4'\xF0\xB0R\xA5Z\xABě&quot;\xC7#Ͽ
+E\xA6\xC0RX\xF6\xD7H5|&quot;2 \xE5\xA1\xFCH|x\xF0\xB4Z\xA7:\xBE\x97\xE8\x93        \xB8\xC0_\x95\xFC\xB1\xD6q\xC95֚\xE4\xE9\x86\xD9\xC6EFMBhL\xA4\xD1H\x8E\x80\xCCI&quot;]\xF7\x8B\xCC6U1:f\xF5\x8Eh䫫\xB3|\xD1Re\xCF\xFE~(\xBA\xC6\xF1cu\xDD+X\xE11zB\x94\xA0\xB1J\x86\xE8BU\x91\xA4aE\x92\xC4芗Oc+^TE\x92b\xDD\xE2C\xA6H\xD22\xF7E\xBAZr \xB0e\xA8lj4*\xA4᳗\x86Q,H\xFEF5\xEF\xAD?\xED\x8DN\x9C\x80w\xDCttr]\xF8wE\xC5\xF9\xE7\xBF\xF8\x8B\xF5{\xFD\xFELl\\xF8\xE8\xF8i\xD3        :\xE5\xE5\x97&lt;\xB6mڪ4W\xE2\xE0&gt;~\xDF\xF3\x84\x87H̥\x97\x94\xCA,\xF4g\xF8\xB6\xC4IT\x9E0\xB9\xF4yЯ\xCF\xD7*\xDA\xD9ڥ\xA8 ҒSQ:\xC4\xEC\x8E\xAF\x81\xCC\xEAZ\x88$\xC9\x8Bu\xB2\x98z7
+E\x8EA8\xC7x˱\x99\xFBh\x89\xC29r\xC9\xDD\xD9o,\xB9^i7\xBC\xF6\xF7&lt;\x8E\xAE\xBC\xFB7\xC3{J0\xBC\xE7o\xD6}\xF7\x8A!ܩ\x96\xAD\xA91\xC3\xFC\x97j\x98\x83\xCC*\x89\xF2
+%&gt;\xF0UD\xE9\xEA\xEFG\xAE\x81\xC1\xFF\xC0\x8F\xD6D~,X\xAF8\x91\xF0\xCA\xF0oz\xC6\x9D\x93\xA0OQt\x97&amp;\xA0\xA9\xD2\xCCдjVj4\xEBh\x84HpA\xAB\xCE\xAE\x85-B7\xEC\xB4:H,\x83ؤ\x80\x90\x8A$H\xC0\xA2\x91&amp;\xB6\x9EO󻄸\xA4\xD6\xC7\xE2@\xEC7#\xF5\xF4\xACR5\xC2\xF5\xAAkE3\x98\xAAꘞ\xCA\xEA\xEFy\xB4F&quot;3\x84\xD8U\x88\xF1\xB1b\x8A\xC3\xECG-8\xA6\xB4xXi1\xBBǔǔ\xC7\xD0\xC7~̓\x97\xC9߻\x9E\x8Fr\xDD\xFC5\\xB5\x92dԺ\xD9Ov̅\xFC\x98
+\x8E? і#|\xE0\xD2oI\xA2\xE0c$2\xEFz\xDF\xCB        @(\x86\xE2\x90A\xDEZO\x96\xDE%\xD2b\x847F\xA4\xB2\x80\x8DRy\xBE\x80\xAD05\x90(\xAC\xB4MH\xAD̬*\x9Cn\x9B\x9BД\xD8䚝\xDA\xECk\xCCm=\xBBpvq\x8B\xB8\xC0\xB0\xC0\xB2 \xA1\xC5ے\xB9ΰβ1\xF7&amp;K\xB2\x80\xCDx؏2\xEC\xB2sɓL(8\x99\x93\x9Dn\xE3\xE2\x80_\xD6g{\x80=\xC3M{\xEFS+n\x8F\x9E\xCDb\xB0Ҷ\xBE\xC0#\xDC9\xC6t\x91\xAEk\xA0 X.LvD\xF7V\xB0\x98\x9DFu\xF4g$)\x8D\xB97\xE7\xA2\xEC\xDC.\xE8\xCF\xF6y\xAB\xBC\xF5\xDE6\xEF]\x82\xD3\xED\xE52\x92\xE9R\xB6އ\xFE\xB0D\xFDY                &gt;\xBD\xA9it\x89O0\xF63\x92h\xBDmx\x85$]\xEAST\xA7\xFE\xD6dx\xE1\xF9\xBD\x917\xCF}y\xF7\x8D\xEBWC\xEBރ\xF2\xBBn\xB9c\xE0\xE7\x9B\xF8\xD33\xD3\\xBEp\xAAk\xC6:g\xB8i\xF9\xD1]\xB7\x80\xF7??.\xDF\xF4r\xA9\xA0\xEC[\xF5ș?\xFE|\xD1\xF1b\xA1\xAC\xD5^۽~\xF1\xE4\xA5ٖ\xB1q\xE5;W\xCF[1ƞ\x91:\xFA\x91\x8Em={\x89-\xFC\x94`\xC7m\xFC\xE7\xC0M\xFCӌ\xE9\xAE\xE29\xC1l\xE7l\xE64s)?F4\x84\x92C)%\xAE~\xB2\xBE\xCAP\x9B\\x9BR\xEDj\xE6\xC28\xCCϕ\xEA\xCD\xCD        \xF3\xC3I\xCD\xC9\xCD)\\x9B\xB0ȼ\xC0\xB6&quot;\xA5\xAD1w;\xBB\x93\xBAS\xD29\x8A\x96Lii\xDCR' M\xC6&lt;џ\x94oT\x8C\x82\x91̓\x93=\xD1M\xA3Q;%!\xD7(\xBA\x90豳xv\x86$vL\xF5\xDC\xCE*\xD9\xF4;\x83q\xBBݽ?՘\xEAJE\xC4\xEE\xF2\x98.\x92\xFC\x82\xEET\x9D\xB6\xB0\x90\xBAP%\xCC~\xE2C\xFC\x93\x87\xADۣ\xC9\xD6\xD5\xF2'V\xEB\xA5\xF4߃o\xBBbZ\xFA\xE6\xDCc;\xEF\xBAy\xEE[\x8Bh\x9D\xF3C\x88}9\x99Kk\xAE=\xB7\x90\xF3\x9Cj:\xD4x\xF4\xED\xEE57*\xE5oxǾ\xF3\xEB\xBA=\xE5\xE3\xD7W/\xFD\xCDl\xE6\xC98\xF6\x8BA:#H?\xE2\x9C\xE8J?L\xFEH\xCB\xE7\x85CCd\x86\x86L z\x85VE\xAF\xA4-\xF4~L&quot;=\x81$&quot;\x90H\x86\xA3:\xA0\x92\xB1\x99\x80X@\xA0+\xED 8\x88\x859A&quot;H\xC9 \x85\xF8M7\xF0\x80T\x92ۦ\x81t\x902\x89\xF5e\x83\xE0\xB9 \x8C~\xE2,G\x83PH\x99&quot;X\xF9\xCF\xF9Sxs\xEF\x90~\xC1\xD0߆ޏ\xAC\x8F\xB4E\xB9;HO\xEC\x8F\x81#\xE0\xF8\x88}\xFA\xC1 \xEC{\xE8\xC7\xC0\xAB`\xE4\xE7G\xE0\xF00\xF8-8
+&gt;n\xDB\xF6\x83\xC7A\xCF׮\xDB\xCDZ\x8F\x82_\x81\x83\xE0(8Nڶ\x83\xDBH\xEB\xCF\xE9/A\x87?+\xC06\xB0 \xDCo\xC2\xE4h\xDBqd\x85\xEA&gt;:t
+\xAE\x86;\xC9\xDB\xE7\x82J0\xAC?7\x91q\x9D\x84SI\xDB8\xD26\x9D\xB4\xAE\xEB\xC1\xED\xA4\xF58        \xBE\xFD\xEAA\x98\xA4rׁ'\xC9ϳ\xB6\xD2:\xB4\x91Vڦ~V\x82.\x92\xFC\xFC&lt;C\xC6\xD5EFv\xB8\xFB;\xFA\xFB\xF2 I ?$w\xBE\x82N\x907\xFA\xD8J\xFC\xB1L\xFC\xCC)\xCAU\xFFQނ\xA1\xF7\x88\xB4
+\xFD n\xBA\x80D\xB7\x81\xA8LU u\xB3\x8B\x8B2\xD2]q\xBD\x8E\xC7(\xD7\xDDåWhim\xDF\xE1\xAEjw\xEF\xF0V\xB6T\xE6\xE5\xD6\xCCl\xA8\xAAL\xF4x\xF3rݤ\xB9\xD2\xDD[\xDCU=׵;vT\xD1 z,\xBE\x94^E\xB7\x8E\xE5\xC7-\x84\xF0Vz&lt;r&amp;\xEE\xEA\xF9\xDD2\xE2ԓ\x80&lt;\xAB}v}$\xDDZ\xDA\xDD=\x98\x9Cd\xBBD\xD2=\xD7\xDEB\xF6\xDEJ2\x80\xEFl\xFF\xDA'z'\xB6\xEC\xD81\xD1랸\xA3eGk\xDF\xD0\xE6^\xB7ɻ\xE3ɚ\x9A\x9DU-\xEE0\xBD\xA1\x92\xF6\xA3?N\xEC\x99xKc\x8F\xA9\xA5\x8E%oF1qfC(\xD1c&amp;\xBD\xD4\xCC\xF2\xD6\xCChjpW\xEDh\x89\xF6m\xA3=\x89@\xF9\x93^\xB8}Ɠ
+\xDC&gt;\xAB\xA9\xE1Qj\xF7\xF6\xD9
+\xBD\xA2\x8A\x96\xF2\xC6'\xD3ȹ\x86#\xC4֊h+m\xA4nz@\xA2n2\xEA^$\xB2\xEB\x8F(lfg1k`\xC7 \xFB `mb\xAC
+\x82\x85}Hm3\xC5\xDAi\xC3j\x9B\xC2\xDA臰
+\xBF1r\xD4d\xA3c*\xA0\xEB\xACJ\xC35\xCB\xFEE\xA6R\x8F\xFD\xB02\x9B~\xF7\xE9\xEF\x87\xEE\x8E4j\xF7\x88\xF4J\x89&lt;A\xFD\x90#Q\x99        \x80.w\xE8\xEE\xCBoi\xF7D1\xE5\xEA'@2\xA1׉\xCD? N
+S\xC1j~=\xB8\x89{&lt;\x85_\xF8w\xA0\x9D7\x81#\xF8
+8\x82
+\xC0\xFC6i\xF3\x81\xA5\8B\xAE\xD9Cڞ!\xC7\xD7q\x99`&lt;\xB9f\x99p \xA8'}UjN\xB2{\x96i&gt;\xF3转\x8F~0N\xC8'\xD1G`o\xBF ߃\xFC^\xB0\x9A\xB6\x93\xE3\x95d{F\xBC\xFC\x84\xF4\xF1\xF7\xE0\xD0Y\xD2\xFF]\xA4\xEDf\xDE\xEDdLN\xD2Ǔ\xDC|p3^N\xF2?\xAF\x91\xFB\xCA\xF0\x9B\xE0$\xF9~\x9E\xBFB\xDA젋l\xC4O\x9Cs\x83\xB3\xF04\xF5rS\xF15\xBC\xC8\xFF\x8Ei\xEFj\xAE\xD3|*N\xF7I;e\xAB|Q\xBB[\xE7$!\xEBE\xC3&amp;c\x99\xF1\x8A\xA9\xC9\xF4\x89\xD9n~\xC5|\xDE\xD2b鏛w\xD6z\x83\xB5\xCFzΆl[l\xE7\xEDm\xF1\xF6\xF8\xF9\xF1\x8F8\xC7\xEB        \xAB\x9C\xB2\xF3p\xE2\xEE\xA4@T.\xB0\x80`\xF1\xB5\x93AJ?]]\x88x\xF4\xC1ix\xCC&amp;\xD9SJovA\x91\xA9\xD7ݫ\xF4N\xEF\xED\xEC\xDD\xDC\xFB@oO\xEF\xEB\xBDgz\xE5c\xBD\x9F\xF7&quot;\x9A`u&gt;\xEF(rUBc\xBD\xAB\xD5\xD65ס\xB3\xE1\xFD\xB3\xCCF3f\xC5㙳\xECx\xD6L\x9ER=O\xAC.Ɠ\xAA \xF0d\xB2UKpY\xA8\x8F \x8D\xC3\xE3C\J\xC6塙x\xD9\xB2\x85\x82\xB8\xA0\xB0
+8\x98\x8D\xC1\xFCz\xE0L\xE0\xF3\xAD;&lt;\x94&gt;\xB9\xA8o\xE8\xCC\xC1C&amp;o\xAD\xF7\xE8IƢC\xCE\xC9x\xDD\xC1\x9B\x92a}~\xF0 \xBB\xE2\x922tPJ+:h\x9D\x8Co\xDE\x87;\x97u\xAEG\xC6{\xDFۏ\x94\xFB\xEC        Eʽ\xF6\xC4&quot;\xE5\xCExB\xED\x8DO,\xBAik\x9C˸ŸոӸ˸۵ŵӵ˿s\xF3\xD6\xCD\xDBwݶ{\xEB\xEEm\xBB\xB7\x95$S\x91q\x95kRVJ\xBA&quot;\xE3r\xE8&gt;        \xDD/\xC1Љ\xCFN \xF7o\x94\xDF \xB0\x82\xA6Hi}\xA0\xE7\xC2&lt;\xAB\xE7Zӱ\xCFZ\x82s\xACq8\xDBj\xC3.k
+\xF6\xB8+\xB0\xDBZ\x86_vVag\xE2$\x9C\xE8,\xC3N+u\xD5%8\x8E \xD7bub3\xD9:\xADP\xB1N\xA8(2r\@\x80\xFA\xE35.\xDD 5.\xF9X\x8DK&quot;\xDF_\xE3¿\xAEqqGj\\xE8h\x8D \xAEq\x81\xA7k\\xC7_\xC8q{.\xC7\xF5k\xA5\xBE\xDF\xE3:z\xC4\xE3z\xFA\xB0\xC7\xF5\xC2\xF1\xF5\xCF{^\xDF\xFF\xEBguG\x8E&gt;\xA3;\xFCt\x9F\xCEԿ\xB9)G6A\xC6áõ\x87\xBBc\xE3a?!W\xF2\xB9ÿ?&lt;tX\x94\xA5b\xAC\xD3#\xDBB\xC4\xE6\xA6\xF3\xB0m\xBD\xF5\xD6䞽Xz6'7\x{189806},\xEC\x81;{ĚYQ\xB0Pe\xF5\x9Aի}\xDF\xF1\xE9\xE1\xAAz\x84\xAA\xF6\xD6\xC1[\xB9\x9A聁\xAE\xA1\xAA\xC7Hi\xA3\xB7\xD2{\xACU\xED=VB}\xAB\x93ձ\x8Fou\xF4\xA4\xFA \xB6k\xBF\xEB\x99t,kȞ\x9C\xFF\x93\xFElA
+endstream
+endobj
+218 0 obj
+   11339
+endobj
+219 0 obj
+&lt;&lt; /Length 220 0 R
+   /Filter /FlateDecode
+&gt;&gt;
+stream
+x\x9C]\x93\xCDn\xAB0F\xF7&lt;\x85\x97\xBD\x8B
+&lt;6\xD0H\xD2U\xEF&amp;\x8B\xFE\xA8i\xEC!E\xBA1\xC8!\x8B\xBC}\x8D\xBFQ+)\x91\x9E\xF1̱\x99\xF2\xF1\xF0\xEF\xA6U\x95\xAFqvG^\xD58\xF92_\xA3c5\xF0i
+\x85&amp;\xE5'\xB7
+\xE5wL\xC9\xC7\xDBe\xE5\xF3!\x8Cs\xB1߫\xF2--^\xD6xSw\xFD&lt;\xF0\x9FB)U\xBED\xCFq
+'u\xF7\xF1xī\xE3uY\xFE\xF3\x99ê\xAA\xA2\xEB\x94\xE71m\xF7\xD4/\xCF\xFD\x99U\x99\x93\xEF&gt;\xADO\xEB\xED&gt;\xA5\xFDD\xBC\xDFV\x94Y\xA3%7{\xBE,\xBD\xE3؇\xFB*=\x9Dڏ\xE9\xE9
+\xFE\xD7z-i\xC3\xE8&gt;\xFB\x98\xC3u
+\xAF*\xAA\xBAL\x94\xC9z\x90\x8D \x9B\xA96\xA0y\xA0&amp;SS\x83Z\x90=\x80\xB4\xCB\xD4J\xBDk;\xD0\x92z$\xF5&lt;\xF2Ĩ.y#&quot;]&amp;]!y~\xAD\xC1\xAFiA\xF0k\x85\xE0\xD74 \xF858        -~\xB2 \xFCj\xC9?t\xA6\xE1\xD7\xE0\4\xFCZ\xF4\xA9\xE1ge\xF8\x91t
+?#]\x8B\xCEL\xC3\xCFb\x8D\xC4}\xFC *\xFC \xEE\x81\xE0GB\xF0\xA3$\xF7\x87\xB3&amp;\xF8l        ~wD\xF03\xB8M\x82\x9F?\xA9 ~\xD2 \xFC,\xFC~V\xAAï\xC5)\xFCj\xD43\xF0ki\xE0gqF\xFC\x90g\xE0\x97^n\x9F\xBA|\xD3\xDBG\xBFM\xE8\xF7D\xB9k\x8Ci\x98\xF2\xE7)\xDA\xE6g
+\xFC=\xE9˼lY\xF9\xF7z\xFD\xFCv
+endstream
+endobj
+220 0 obj
+   444
+endobj
+221 0 obj
+&lt;&lt; /Type /FontDescriptor
+   /FontName /Verdana
+   /Flags 4
+   /FontBBox [ -49 -206 1446 1000 ]
+   /ItalicAngle 0
+   /Ascent 1005
+   /Descent -209
+   /CapHeight 1000
+   /StemV 80
+   /StemH 80
+   /FontFile2 217 0 R
+&gt;&gt;
+endobj
+222 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /CIDFontType2
+   /BaseFont /Verdana
+   /CIDSystemInfo
+   &lt;&lt; /Registry (Adobe)
+      /Ordering (Identity)
+      /Supplement 0
+   &gt;&gt;
+   /FontDescriptor 221 0 R
+   /W [0 [ 1000 351 842 787 683 454 595 600 632 623 274 606 520 426 454 274 520 394 623 818 351 972 623 988 623 632 591 770 363 635 363 698 591 635 635 1076 818 454 454 635 635 683 632 420 556 692 591 603 591 748 635 635 ]]
+&gt;&gt;
+endobj
+24 0 obj
+&lt;&lt; /Type /Font
+   /Subtype /Type0
+   /BaseFont /Verdana
+   /Encoding /Identity-H
+   /DescendantFonts [ 222 0 R]
+   /ToUnicode 219 0 R
+&gt;&gt;
+endobj
+1 0 obj
+&lt;&lt; /Type /Pages
+   /Kids [ 47 0 R ]
+   /Count 1
+&gt;&gt;
+endobj
+223 0 obj
+&lt;&lt; /Creator (cairo 1.5.15 (http://cairographics.org))
+   /Producer (cairo 1.5.15 (http://cairographics.org))
+&gt;&gt;
+endobj
+224 0 obj
+&lt;&lt; /Type /Catalog
+   /Pages 1 0 R
+&gt;&gt;
+endobj
+xref
+0 225
+0000000000 65535 f 
+0000346825 00000 n 
+0000008296 00000 n 
+0000000015 00000 n 
+0000008273 00000 n 
+0000324172 00000 n 
+0000147942 00000 n 
+0000273917 00000 n 
+0000010035 00000 n 
+0000009600 00000 n 
+0000010900 00000 n 
+0000010464 00000 n 
+0000305485 00000 n 
+0000011766 00000 n 
+0000011330 00000 n 
+0000012632 00000 n 
+0000012196 00000 n 
+0000013498 00000 n 
+0000013062 00000 n 
+0000014364 00000 n 
+0000013928 00000 n 
+0000015230 00000 n 
+0000014794 00000 n 
+0000308228 00000 n 
+0000346672 00000 n 
+0000326914 00000 n 
+0000016086 00000 n 
+0000015650 00000 n 
+0000291544 00000 n 
+0000016952 00000 n 
+0000016516 00000 n 
+0000017818 00000 n 
+0000017382 00000 n 
+0000018684 00000 n 
+0000018248 00000 n 
+0000019550 00000 n 
+0000019114 00000 n 
+0000020416 00000 n 
+0000019980 00000 n 
+0000021282 00000 n 
+0000020846 00000 n 
+0000022148 00000 n 
+0000021712 00000 n 
+0000023014 00000 n 
+0000022578 00000 n 
+0000023880 00000 n 
+0000023444 00000 n 
+0000009067 00000 n 
+0000009268 00000 n 
+0000274734 00000 n 
+0000009975 00000 n 
+0000010122 00000 n 
+0000275527 00000 n 
+0000010840 00000 n 
+0000010988 00000 n 
+0000276217 00000 n 
+0000011706 00000 n 
+0000011854 00000 n 
+0000276908 00000 n 
+0000012572 00000 n 
+0000012720 00000 n 
+0000277599 00000 n 
+0000013438 00000 n 
+0000013586 00000 n 
+0000278290 00000 n 
+0000014304 00000 n 
+0000014452 00000 n 
+0000278979 00000 n 
+0000015170 00000 n 
+0000015318 00000 n 
+0000279728 00000 n 
+0000016026 00000 n 
+0000016174 00000 n 
+0000280523 00000 n 
+0000016892 00000 n 
+0000017040 00000 n 
+0000281216 00000 n 
+0000017758 00000 n 
+0000017906 00000 n 
+0000281914 00000 n 
+0000018624 00000 n 
+0000018772 00000 n 
+0000282607 00000 n 
+0000019490 00000 n 
+0000019638 00000 n 
+0000283300 00000 n 
+0000020356 00000 n 
+0000020504 00000 n 
+0000283992 00000 n 
+0000021222 00000 n 
+0000021370 00000 n 
+0000284690 00000 n 
+0000022088 00000 n 
+0000022236 00000 n 
+0000285388 00000 n 
+0000022954 00000 n 
+0000023102 00000 n 
+0000286079 00000 n 
+0000023820 00000 n 
+0000023968 00000 n 
+0000147915 00000 n 
+0000148245 00000 n 
+0000148268 00000 n 
+0000273890 00000 n 
+0000274224 00000 n 
+0000274621 00000 n 
+0000274247 00000 n 
+0000274597 00000 n 
+0000311261 00000 n 
+0000274981 00000 n 
+0000275453 00000 n 
+0000275004 00000 n 
+0000275429 00000 n 
+0000275774 00000 n 
+0000276143 00000 n 
+0000275797 00000 n 
+0000276120 00000 n 
+0000276464 00000 n 
+0000276834 00000 n 
+0000276487 00000 n 
+0000276811 00000 n 
+0000277155 00000 n 
+0000277525 00000 n 
+0000277178 00000 n 
+0000277502 00000 n 
+0000277846 00000 n 
+0000278216 00000 n 
+0000277869 00000 n 
+0000278193 00000 n 
+0000278537 00000 n 
+0000278905 00000 n 
+0000278560 00000 n 
+0000278882 00000 n 
+0000279226 00000 n 
+0000279615 00000 n 
+0000279249 00000 n 
+0000279592 00000 n 
+0000333843 00000 n 
+0000279975 00000 n 
+0000280449 00000 n 
+0000279998 00000 n 
+0000280425 00000 n 
+0000280770 00000 n 
+0000281142 00000 n 
+0000280793 00000 n 
+0000281119 00000 n 
+0000281463 00000 n 
+0000281840 00000 n 
+0000281486 00000 n 
+0000281817 00000 n 
+0000282161 00000 n 
+0000282533 00000 n 
+0000282184 00000 n 
+0000282510 00000 n 
+0000282854 00000 n 
+0000283226 00000 n 
+0000282877 00000 n 
+0000283203 00000 n 
+0000283547 00000 n 
+0000283918 00000 n 
+0000283570 00000 n 
+0000283895 00000 n 
+0000284239 00000 n 
+0000284616 00000 n 
+0000284262 00000 n 
+0000284593 00000 n 
+0000284937 00000 n 
+0000285314 00000 n 
+0000284960 00000 n 
+0000285291 00000 n 
+0000285635 00000 n 
+0000286005 00000 n 
+0000285658 00000 n 
+0000285982 00000 n 
+0000286326 00000 n 
+0000286349 00000 n 
+0000290734 00000 n 
+0000290759 00000 n 
+0000291064 00000 n 
+0000291088 00000 n 
+0000291319 00000 n 
+0000291695 00000 n 
+0000304201 00000 n 
+0000304227 00000 n 
+0000304776 00000 n 
+0000304800 00000 n 
+0000305033 00000 n 
+0000305638 00000 n 
+0000307413 00000 n 
+0000307438 00000 n 
+0000307743 00000 n 
+0000307767 00000 n 
+0000308000 00000 n 
+0000308381 00000 n 
+0000310396 00000 n 
+0000310421 00000 n 
+0000310744 00000 n 
+0000310768 00000 n 
+0000311012 00000 n 
+0000311425 00000 n 
+0000322893 00000 n 
+0000322919 00000 n 
+0000323467 00000 n 
+0000323491 00000 n 
+0000323724 00000 n 
+0000324324 00000 n 
+0000326099 00000 n 
+0000326124 00000 n 
+0000326429 00000 n 
+0000326453 00000 n 
+0000326686 00000 n 
+0000327067 00000 n 
+0000333013 00000 n 
+0000333038 00000 n 
+0000333351 00000 n 
+0000333375 00000 n 
+0000333610 00000 n 
+0000333999 00000 n 
+0000345436 00000 n 
+0000345462 00000 n 
+0000345986 00000 n 
+0000346010 00000 n 
+0000346243 00000 n 
+0000346891 00000 n 
+0000347020 00000 n 
+trailer
+&lt;&lt; /Size 225
+   /Root 224 0 R
+   /Info 223 0 R
+&gt;&gt;
+startxref
+347074
+%%EOF
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkdocSILK_RTP_PayloadFormatpdf"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/doc/SILK_RTP_PayloadFormat.pdf (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/doc/SILK_RTP_PayloadFormat.pdf                                (rev 0)
+++ freeswitch/trunk/libs/silk/doc/SILK_RTP_PayloadFormat.pdf        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,1042 @@
</span><ins>+%PDF-1.3
+%\xE2\xE3\xCF\xD3
+2 0 obj
+&lt;&lt;
+/CreationDate (D:20100312154651-08'00')
+/ModDate (D:20100312154651-08'00')
+/Producer (BCL easyPDF 4.30 \(0410\))
+/Creator (easyPDF Printer Driver 4.3)
+&gt;&gt;
+endobj
+
+8 0 obj
+[
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+]
+endobj
+
+10 0 obj
+&lt;&lt;
+/Length 1112
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA}UMo\xE3F \xBD\xFBW9\xB4`+\x96c\xA7ɭ٠A\xB3\x85a \xBD${K\x945\xB54#̌\xECj}\xC9\xF9K\xC9A\xE0\xC4䐏\x8F\x8F\xE4\xA7dp\xF3\xCF!\x86$\xC4S\x98\xD0}\xDC\xDE\xC1\xDD\xC3}4\x83\xA4 ?\xA1\xB0\xC4\x85E\xD8\xC5Q|
+\xC9?\x83\xDBߢ;rN\xB2\xC1\xF0\xCF\xAD3\xBA\xF2\x86\xF1\x84 \xE3\xD8[&gt;G\xB0\xAA\xA5s[\xE1MS\x8A\xD8Y\xBED\xF0\xB7\xB6\xFE\xDB3\xFFն\xAD1D\x99\x9F|\xBF        \x93k\xD3I&lt;        \xE6\xDB\xBF\x9Aݳ\xC3\xEB0\xA4\x92\xC1/&gt;\xF8x\xFE\xF00|\x9B\xCE\xE3\xEB\xF1\xDDd2\x9CN&amp;c\x8E@~\x9C\xBE\xCAJ:̮\xBFC\xF2yp{M\xBBz^b\x83\x99\xA6\xF3&gt;x\xD2*\x97*'Ey\xB30\xBA6\x92(2m\xF0\x8F'\xD1f\xB3l\x99,`!\xDAR\x8B \x9E\xB5\xA9\x84\xA1\xE8OY&quot;\xAC\x9C6\x9C\xA8\xFB&gt;\xD7V/_\xBF\xB0\xAB\x91\x8Af\xE7\xC7&amp;\x93\xCA\xF8&gt;z8\x80y\xD2\xA6\xC6Ʒ\xA1\xAE\xB1\xA0sp\x85\xB4\xF0
++\xED]\xE2\xE8\xC6S!\xD3iSQ        P\x89\x94v\xB0F\xA8t&amp;s\x89\xD9ȧ\xCD\xD0ȝpr\x87\xB0\xD7f\xEBcʓh\xDD \xBDN
+b3\x82\xBF\xB4C\xCAN%q9@ɬ\x93e        R\x81\xA04$\xA6\xBA`)q\x92\x93\xFFw\xD3\xCC_\xDD\xF1\x97w\xFCY\xD8#\x85\xA3O\xF6șJ\xDBQ\x99_R\xD9 \xC8\xD0\x86[\xB5a\xB8\x8B \xECLL):YS]15_\xF7&quot;XYnmS\xD7ڸ\xDF-k!R袮\xEF'\x86\x9Ft\xDD\xB9)s!S\xECw\xE0dgu\xC2O\x85\xD9\xE5\x8F=\x85\x8EJ'\x9C\x8D(\xA1&amp;\xE5\xA1q-\xF8PvDִ$\xAD\xA8
+\xAC\xE7\x9BT\x86@\xEF
+y\xA6\xF4\xCE\x91a\x98\x96Jp\xA7\xB955S\xB1\xF5\x8C\xEF\xAD\xD2{(\xE8׷\x8E_u\xB2&lt;\x84$b.\xD5\xCA        \xA9(\xB5T#0X\x92\x90\x97\xD3#\xA0\xDE#-\xFF\x9B\xD3\xD0\xFA&amp;Z\x9D\xBB\xBD0\xD8GI%\xEEh\xD22X\xB7\xDDXx~V\xF7U$&quot;\x95\xF06&lt;\xD5.)\xBD\xC8I\x92* \xFC=\x84W&gt;\xC4\xD5\xDB\xF59_{\xE9
+\xDDt|T\xAD:X\x8DII*4h#x\\xBC\xBC\xE9\xEB\xD0\xD7FIw40\xA2 8iVlC\xF3{,\xAC&gt;\xAD        \xEEF\xA8\xE3mx\x{172025}o!\xEAC\xE5w\x9C\xD1\xACJ\x831\xEAq\xE1\xBF\xDC\xF2d5@        }\xCCr )\xCBZ\xF2x_\xEA\xB7@\x83\xEBDʝ,1\xDB`h\xB6\xD8D\xA6Q\xA8%b\xC4\xC8TYC\xD3\xE1\xF7        \xA1\xBD \xB0\xF3\x8C \xD8I]\xEExS|\xA8\xD4R\xECmt)\xEB\xC0\x84A\x8Bf\xC7h\xB8\xD2\x94\x81\xF1\xC8:\xB1E(qC\x81D\xEA\xE3\x8B
+1a\xFB\xC5I\x95j&amp;\xBF\xAA\x8E\xC4\xF6\xF2]\xD2\xD3γB]!\x8A\xF5\x8EZ\xAD\xD76m \xFDQqjZ\xB8\x91kZ3,ݒ\xDA\xDCǨ)?\xE8\x96]\xA4\xCAdꉰg\xBC-\x8FE\xDD\xF0v\xE2\xAA\xB5\xE7\xA5^\xC6\xD4{E\x85\xB2\xE6\xF7u\xFE~\xCB&lt;\xAE\xE9\xEA#\xFF\xBF\xDF3\xCCiî\\xA2(\xC7NV\x89\xCA\xF2\xBA_N\xA7\x9Ag\x88\x96-\x89\xF0\xB0n/\xF1\xE4\xA7\xE3\xF5\xB3\x8D[\x93\xAC\xD0\xC9G
+\xF8\x8C\x8AǧΞΛ\xF0\xE7-t\xBC\xFE&lt;Z\xAE+7EVu\x89\xBE\x94pN\xC2T\xBA\xDF\xDEim-ߩ\xBDh\xA30\x89ύa\xA9\x97\x98IJԶ\x91\xCC]\xE8\x8FY\x8665r\x8D\xFE\xCA\xF4\xE6\xF0\x95/Q\xF6\xD19\xF2W\xEC\xC3;\x858$\x83\xFF\xF2N\xF2\xF6
+endstream
+endobj
+
+6 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 10 0 R
+&gt;&gt;
+endobj
+
+12 0 obj
+&lt;&lt;
+/Length 1179
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڝV[O\xF3F}ϯ\x98\xA7*\x91\x88\x89\x9D \xA4o\xE1\xA6~\xEDE\xE0V\x95\x80\x87\x8D=N\xB6\xB1w\xAD\xDD5i\xFA\xEB;\xB3vJ\xE2\xD0B\x89\xDE=&gt;\xE7\xCC\xF5&quot;\xEE\x9Cބc!\xCE:a\xFA\xA6\x8F\xE1\xCE\xC2A0\x82\xB8\xE8t/\xD0        x\xC0\x85Ex
+\x83\xB0\xF1\x9Ft8\x98\xD2\xE18\xEDt\xE2{\xB8\x9B\\x8Bn\xB4)\x84\x83Lx\xFC\xF6\xFD\xF0g\xA3Q6go\x85I\x96
+\xD2\x9EA\xF1\xA3\xA7\xEE\xCC:\xA3\x8Bx,\xA5s+?\xC0\xEF\xDA\xF6\xFA\xE3\xE9\xB4\xFB\x8DC\xBA5\x98\xF6\xF9*YmJ\x84ﲐ\xD3\xDE \xC4?w\x86\xE7AԼ\xE4\xE9^,\xA2\x97\xFA\xD18\x98@?\xF4O\xEA{\x97Ze2E\xE5\xA4\xC8O\xEF\x8D.\x8D$\x8DfS\x9F'e\xD7H\xB1\x98\xE7:\xE3+\x8E.\xD8Z{p}O\xBA\xF0M\xED\xB4J\x9C\xD4*8\xFE+򐃆\xE1S7
+\xF8e\xAF\xCCN+{W\x98I%\xFD T
+\xB3\xC4h\xB5)c*\x8B)Hn)-\xA4:\xA9
+\xBAȰ\xC3ڕ-nw\xD4\xB9\xD4)&amp;\xC1W\xBE\x86oڷ\x90\xA4~\x96\x8A\xD2\xC9W\x84;tkmVp!&lt;\x87\xE2\x8D\xF6\x84)\xBF\x926!\xA7\xA5\xAAte!6B\xD9BZK\xE2\xE1\xB9{\xFF\xF1\xDC\xFBo\xBCq\x8F$S:\xAE\x85I\xE1\xDA\xCA\xC8Km \xFA8\xDA\xCD\xF5\xE5\xFF\xA1m\xF1\xFA;\x82G\x8D\x87\x87        \xFFY'mG\xEC!\xE3\xFD\x84&quot;E\xBFYJ\xDD\xCF\xC7d\xB2\xAFy\xC4n\x99=:CIY\x99\xCFÝ(7\x8A\x9D6\Sǩ}\xC3܃$\xC5[\xBCF\xF5T\xCF\xF6\x8FY\xF1\xED&quot;\xD7\xC9\xEA(\xDD\xE7\x8A'\xBE\xFCh}\x9Ap\xD9\x9DU'\xD3}\x86g\xC4\x93\xCAH\xB7a8K\x8D\xC7_\xCE_&lt;\xA7\x963\xBB\x9B}\xEC
+pG\xF4\xB9\x8F        \xFAS) \xE6.\xF9\x80 IY|\xDC\xD7RLnEYJ\xB5\xA7\xE1\xF1\x8A\xCBň\x9A\x89\x86\xD1!\xBB\x88\xF9\xFD\x9Aeh\xFA3eה1\xB7\xD4\xC6\xF2\x96\xFFN\x9D\xB0\xE1!5n3\x98\xE4\x82oQ\xDFbv\xE20T\xD3\x86o\xD3dJ\xA5\x8BD
+U\x82\xF6+-\xB5\xC1\xDC\xD1:e\xA5w\xBEʘܑ\xF0a\xABNY\xEC7\x95}
+/\x9CT-4\x80VJ\xAFsL&lt;k\x8EԽ\x87\xF9\xEEmMا.G\xA2v4\xE2\xD8\x91V\x85\xA2J\xA5\x86\x84'\xA4\xF8\x8A\xB9.\xFD4\xA44S&quot;\xCF7@\x9BH=\xF1\xD7KIwZ#\x91\xE0\xFC\xF8\x96\xC6'\x82\xC25\xA1d\xA2\xCA]\x83\xC9y@8
+g\xB2\xFF%\xA1\xFFY&quot;\xED\x80\xF6
+_\xCAŒ\xDEk\xE9\x88\xDFx2\xA3),\xAF5\xDB9_\xCB\xD4-O\xE8\x85\xF5Ĝ\xD3Ĥ\xD4\xC3/j0\xD1E\x99\xE3_\xD4&lt;N\xA0+\xAE(:\xCDtk\x8A\x84\x9B,\xB5LГ-\x88\xBB\xA4\xF3P\xD0C\xFBe.\x93\xA6clE;\xAB冮\xB8\x99Z\xD2\xDC,\x85\xA1\xB6\xC5?\x95.[ R]\xBA\xBAWx{v\xA1\xB5ɸ%\xF9_\x88
+03\xFAP\xDA\xF5\xFA\x93\xC1\xA0;G\xF0\xEE\x9CV\x9F\xE2\xC6\xC0Z\xBA\xA5W\x93i
+ځ\x8B\x97\x94\xC4\xF4vrlo\xEF\xE1\xF0I\x85u8P\xE4}' \xAC׈R\xB4\xEB9\x9D\xE8\xBC\xCD\xF4\x99w\xD8\xE7^\xCD\xEEi\xF8R\xFFR6\x83\xB4.\xEFf&amp;\x89\xB6m\xC6M\xF6\xB6\xEB\x96&quot;Y\xA1\x93{#8(-\xC6\xDE/\xF66\xA5|;\xC8\xE0TІ\xED\xDD&quot;1hm\xBD\x99z{8\xFA^\xDA~=\x9E_\xFB8֖\xB6(\xE9\xE5\xEC\xEAZlh\xF1\xA9 =3\x944\xBE\xA1;\xB6\xD3\xEC4\xF4v\xE2
+\x83\xE4\x9EM\x8C\x9C\xA3W\{H\x8B\xC9;.\xF0\xA3w\x9Ch%\xD4-\x8886͇ls]5\xA9\x93\x94z\xEE,\xE5Bm\x92s\xA5\xFD\xF1\xF4t[\xD6&amp;\xB0\x9C\xE9&lt;\xB52_\xD5ﺎ;\xFFC@yg
+endstream
+endobj
+
+11 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 12 0 R
+&gt;&gt;
+endobj
+
+14 0 obj
+&lt;&lt;
+/Length 1156
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍV]s\xEA6}\xE7W\xEC\xE4\xA1\xD3\xE0k\x9B@\x92\xBE%$w.-
+N;\x9D\x90aˠƖ|e.\x9D\xFE\xF8\xAE$c\xC0\x90\xA1\xE6\xC1\xC6ڏ\xB3\xBBGG~ _\xBEz]\xF0 \x88\x9E.\xFE\xF0\xD6\xE9\xC1\xAD\xE7:7\xA4\x8D\xE6#U\xA64\xA1$\xA7\xB0\xF6\xAF\xC1\xDFh\xECܣq5\x9A\xD3`\xB2M\x89ૐ)Q         \xB3\xC1\xF070\xB6\xFE\x8D㕶#&quot;\xC3\xF8\xAE皕v\xE7\xDA]_/\xBD5r%Ez
+\xB3\x8C)\xF5A\xE0'\xF8C\xE4\xADv\xF7\xFE\xBE9\xF7\xBBz\xB9\xF7m\xED\x8A&amp;ی\xA5LѨ\xF5\xC1\xAF\x8DΝ\xE3\x97I\xDE&amp;dI\xA1\xF3nS\xF8]\xA7mϬX\xBF\xBE\xE01\x8B(W\x8C$_&amp;Rd\x92a\x8Drk\x{DC72}t]\x8B\xC9w\xB4\xF5Z\xDB
+\x9E_\xC3\x8Dg\xE6O\xAB\xDDs\xDD&amp;ᑅ\xF8J\xC1\xB7i\xF9\xBA\xC8i\x8C\x83Z\xB1&quot;)\x86\xB0@=\xE7ڦ\xE4f\xB0\xA2\xF0A\xB7\xB02\xCA\xE1j\xF4: \xAE\xAE\xED\xC6/\xE6y\xFA\xFC\xFB\xEB`\xFA\xFC\xA4\x9Fg\xDF\x86\xC3꡴0\xA0ݲ\xC0\xB7&amp;\xAE\xBD\xBCKs\xFD\xB4\xD4\x8D\x9E\xC7O6\xD6\xE8\xE1/\xBC!z\xB8z\x99\x83\x97\xF1\xC3\xF0\xCA\xB2Cm\xD1\xEE#\xEF\xAA&quot;)( \x8A**3Iq@\xB0N\x9A\x87\x92-l\xE5ӯ}\xCF\xF7\xBC{x\xF3ޝ*\xA0-\xFE\xA0\x95Ǯ\x81\xBFX~\xED\xBBԟ\xBC\x9AW]$\xA4p\xBB2\xB1\xFF\xFBK\x92p\x96!\xCDsƗ\xF0\x8A\xA1\xED&lt;o\x91e\xA4\xC1\xE4B\xA0\x81.\x88S\xA5#)\x8A\xE4$\xC4(\xB8fD~\xB0\xB4H!\x90\x84\xE7)C8\x82\x9F\x873\x99\xE3 \xC1&amp;\xC5&quot;a!\xCC6L\x85+ll\x80\xFB0[        NaL\xD2\xE6\xE3$茤YB\xF3 qg\xA5\xB8q\x9B\x92&quot;b\xF2\xAF\xA3hO\x97Z6\xA3\xB6\xC2'3\xFCLϳ\xD6=T\x92j\x96\xC7\xEAB_D4\xACZo\xB3\x9A[t\x9A^\xA8\xCDI\xB9b\xCBU\xB2\x85&lt;$        Y$\xD4l1*\xD3D\\x9A\xED\x87\xE6clX\xA4V\xD7\xC0m\xC3`\xC1H\xA2\xA8e(t\xE1?\x98\xDA:\x95k\xA9GJ\x91eB\xAA%\xAD\x90\x96\xD0\x8Bc*\xCDN0\xAB\xA8\x9CH)6 \x83\\xC1\x9D\xEB\xBA\xF0ퟓ\xADd\xBA\xADYK\xFA\xBD\xA0&lt;\xDC^[\xD9HiĊt\xE7\xEE\xF9\xA5\xFF9\xFB\xA3\x90M\xCCO+\xB7\xDE\xE7n\xA6f\xAC\x89J8t\xF1o\xB4KMJ\xCEFpl\xC6\xFB:S\x9C
+\x94Z#8\x85\xC1\xC8jD
+\xA5ы\x98\x84F?4\xFBwC\xC95\x918\x89\xD8Ř]3\xDC\xC9(D.\xC0\x85\xDAM\xA2\x8Er))SjS^5\xFCSܣ\xAA\xC1e\xC3\xC0#\xEE^S\x86&gt;\xCB\xA6\xB8\x84\xECJ5\xBCcB\x9E&quot;3\x9B%\xB5\xE0\xFA\xE6t\x8D\xDCړu\xC7-$*\xC7\xF3\x910T\xCBZ\xE6M\xEA,\x9C\xA7Dq\xC8\xCB\xA8\xC49o9\xF0\xE7nеb\xAB\xEAH\x92\xB4\x93z\xF1YB\xAE\xA6\xFF\xA7\xD6\xC6\xBD\x9F̎\xB9w\xF2A-\xAD\x8D% K\̬\x83\xED0\x9D\x9B\xFE\xE1\xD66BS\x97\xAD.$&quot;(`k\x8A\xF8\xF0\xD4\xE7 \xC55\x8E\xA8H!\x8B\x99=\xDA#=ǀ&lt;\xD3\xC9PHI\xF3L\xF0H\xA7\xAF˃:1\xC1\xEB\xEF\x93\xC7C\xEC+v$ҧ\xA4&gt;^m\xB3* Xj\xD2V,E\xAC+\x86h4T\xAAO\xC1On6\xD5D̐\xC8Z\xBE\x84\xAD\x90\xF1\xAC\xC0\xC1\xB2%Gg\xA3\x89+S\xB3X\xEB\xF9b\x8A}\xF7\xB7g9\xB5\xEB_\x88K\xE2\xCDQ7\xE6-|\xF18\x85y\xF3c\x91!\xF7\xCCr\xBC\x8E=Ej\xD7\xCFg\x9E\xDA~ǻ\xB1id\xA7L\x8B\x97\xD9\xF4\xFA        ?\xF3\xCAO\xD7f|\xFF,\xC25A
+endstream
+endobj
+
+13 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 14 0 R
+&gt;&gt;
+endobj
+
+16 0 obj
+&lt;&lt;
+/Length 1278
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍVMs\xDB6\xBD\xFBW\xEC\xA9#OD\x86\xA4([JOq&amp;\x99\xB4M2[mv        Z\x88H\x80@\xBB\xF2\xF4\xC7\xF7 \xF5A{:\x95G\x86\x86\xC0\xBE}\xBB\xFB\xB0˫\xD5\xD9\xDBO\xE9\x9CRZUgiF        \xFE\xB0\xCC.\xE82M\xE2\x9CV\xCD\xD9\xE4\x8A[F7\xBC\xE6\xCCpzL\xE3\xF4\x9CV?p8^\xE2\xF0\xAA&lt;\x9Bܬ\xAE\xE9\x9A\xEDj\xC5J\xFA\xA4t\xC3,UJ\xD3\xED/_~#6\xCB\xE3\xB4?\xFB\x95\xE9bCY\x92&amp;~'\x9A]R4\xCF\xDC\xD6\xDD佱Z5S\xBAm\x85\xB5[F?\xD1ʜG\xF3\xE5rr\x9F\xCDSX%\xCBș\xE2\xC8v\xD7r\xFA&quot;ayy\xFE\x9DV\xBF\x9E\xCDq\xD6;\xB9\xBBf\x9C\xF2\xEF\xC1E6\x8F/(J\xFDN\xB0\xFB\xA0d%J.\xAD`\xF5\xDBk\xADZ-\xA3ޅ\xF3|A\xF92^\xE6\x81\xD6W^\x8A\xAEY3Y\x92\xFF\xFC\x83o
+.\x89\xFF\xFE\x81b6&lt;\xF8\x8A\xD3Y\xB0\xFDn\x96\xBD\xED\xC5`\xBBlgɑm\xB2\xB6\xB7]\xCB5\x9CE\x96\xF7\xB6(Ro\x9B\xB6\xF1\x8C&quot;\x9F\xC9Ɋ\xADkN\xE9;\xAA \x99\x96\xA2ܐ\xDDpb])ִ\xB5\x90Ti\xFEW\xC7e\xB1#!\xE93\xD7\xF6\x99\xEE'\x9F\x9F\xEF\xCF\xA6\xAB\x9BP\xBBdH\xDD\xA8d\xAD\x8F\x9C\xD6’f\x96\xE3\x9FDҁ\xB3\xB5\xC2SC\x8E\xBE\xE1\x85\xF9\xFB\xC9vݚ\xFB\xF38\xA4\xF8\x88\xEB.\xFCoawT0IkN\xA6`5/\xC9*Rpшg\xEE\xE5\xF4\xE1\xFAw\xD2ܨN\xE0?\x9A\xB3:\xC2&gt;=ez7i\x94\xB1\xB5\x8B\xE9&lt;B\xAE'V\xB3\x92G\xAA\xAA\xA6\xE4\xF6I\xE9\xED\x9Ew\xBC\xCF|\x9F\xBB\x8D \xC2r-Y\x8D\xFC\xB0\x84UA Rcbr'\xFD\xA3\x8F\xB2P%b\xF8s;&amp;\xBF\xEBN\x96(J\xD7:2\xB8\x9D\xBArqa\x9B\xC1\xA5|\xC0\xE9\xE0_u\xB6\xED,\xA2\xDCk$\xA0\xB2\xBAVO\xBE\x8CHO\x86[\x91\xE3{\x81\xEF&quot;\x99m(\xBC\xA4\x89\xA3&lt;\xF8@(\xDCS.\x9D:8\xEE#\xEC_\x80{\xA5\x94\xCC2D\xEA\xF5\x94\xAC5\x87W2\xF5\x94 q7&lt;@\xBD\xAC\x80\x8F\x8A[&amp;$\xE0Q\xA5S܉\x92\xFB\xA8\xAA#\xEF\xDE\xDB\xD4\xE20\x99\xAA3G\xF97\xE4\xEE\xC0H\x91\x83\x8C]M&lt;lfqr\xE1\xF7?\xAAw\xFC\xC1\xED\xC9dkޯ\xFD\xBA\xE8W\xE4\xCB\xFDػ\xEB\xEF\xF3$z\xFD\xF3\xE6\xAEћ\x88ߘ\xD6\xEA\xC9_\xF0!}G}¯\xB3,\xAC\xF9&quot;\xACyX\xC169ᘇ{hWc\xC4,?E\xBA쑗\xBD'\xD7\xD5^\x89z߂\x8E\xF1\xE8\x84\xDB\xC0\xA9GJ\xB3ރ\xEBuLj\xC9ehþ\xB5=\x8Dq\x8F\xB9
+Hy@N\x97\xBD'\xD7DL\xA0\xA8\x9F\xBDD\xDF\xDD߾\xA6Ľ\xF4\x82\xCEJQU\c\x9C\xA8,\xC85u\xABWٞ\xE0Hi\xC6f\xDF3|P\xC9\xED\xC6\xA3G\xAEw\xE4.
+\xAB\x94vӈ\x82J^\xB3\xDDԱ2\xC2X\x87\x87Kp\xAA\xE9\x96[n\xC53\xB3B\xC9\xC1@\xC4&lt;_pwk\xBCL\xA7\xD4ָ*s\xB6Vj\x9D\xE2\xB1
+\xC7T\xF68mL\xB7\x9E\xF7,Ncz?t\xF2o}g\xBCBg\xBCA$a\xCCN\xFFW\xBFs\xCD\xDAw\xA9W:ˡ\x93\xB8Ԍ\xE8\x81Z\xE5 Đ17\xB5\xF7}\x99n\x85,x6\xC5F\xF0G\xDAW@\x8E\xC7#\xB8PI\xD7=P\x87'dݛ\x87㊉:\xBC\xB5\x9A\xAEhZ\xA5-s~P        w\xF6OHR\xFB\x98\x8Cx@Ǟ\xFA\xF3\xC3T|\x80\x9B\x8E\xE6(`\x89h\\xBA\xFB\xAAJ%##j\xC8p\xDA\xE3\x86\xC1\xF2\xADO\xF6h\xB0\xB0\xF2Gg\xF0
+q\x87\xEE\xCC\xFC\xD4
+yX3\xC8\xCC\xC1\x81\x89\x9Fx\xE8Z\xB1'&gt;p\xE3u6j\xD2\xEE\xDAhU\xFBl
+\xF3ҿ\xDD5L\x82T\xB6\x87n\xB4\x81+$\x9ExU\x89B\xE0H\xED\x94++\xFFB蜰5$
+\xC2 sW$\x9DQ\xB1aR\xF2z\x94(\x97n\xAB|J\xFE(P\xA1
+3Ngk\x97&amp;jw\xE1}\xAE4\xE8\xC3\xCCh\xB8ݨ\xD2%K\xAD]3,\x8F\x89\xD9
+\xB3\xA1o8\x904hL\xA1\xBAnu\x90lJUt!v\x9F\xAE\x8F\xAB\xB3\xBFtK\xDA
+endstream
+endobj
+
+15 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 16 0 R
+&gt;&gt;
+endobj
+
+18 0 obj
+&lt;&lt;
+/Length 1382
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڕVMo7\xBD\xFBW̩\x95i\xA3ۉ\x91Sc;@ڸ1\xA1(\xE5@-G\xA3]R%\xB9r\xDD_\xDF7\xE4\xAE-\xAD\\xB4\x85\xB6w\xB9\xC37o޼\x99w\xF3\x93W\xEF'\xE74\xA1\xF9\xEAd2\xA51~\xF0kvA\xAF'\xE3\xE2\x8C\xE6\xF5\xC9\xE0GE\x9F\xB9b\x98v\x93brJ\xF3\xEF8\\\xE2\xF0\\x9F &gt;\xCF\xEF\xE8N=VNiz\xEF|\xAD&quot;\xAD\x9C\xA7/&gt;\xFEB\xE9\xEC\x{12C634}go\x95/\xD74O\xC6\xE9\xCDh\xF6\x9AF\xE7Sy\xF5u\xF0S\x88\xDE\xD5C\xFA\xB251n\xFD@\xBF\xB9p::\xBF\xBC,\xA6\xE7|5\xBEɧ8\xB2y\xDC2}4\xB5\x89\xACO\xBF\xD1\xFC\xE7\x93ٛb\xDA^\xF2\xF5N\xDD3\x9D\xCBWLϋ Mқ\xFCݕ\xB3+\xA3\xD9F\xA3\xAAWw\xDEm\xBDA\x8E\xFE1\x9FGft\x9E#͊iA\xD7&amp;\x94\x87m\xE3\x9A@s\xAFl\xA8M\xC6YZ \xAE\xE7\xBF/N3#\xC5\xA5T\xF35\xE7\xF4K\xA7\xB9$\x86\xA4i\xA57K\xD6d,}\xE12J\x84\xA8q+\x8Ak\x83\xAElj\xC0\xC2\xE9LܸÝ\xE3&lt;\x98\xB8&amp;\xA5\xD56\x9A\xD3\xD2D\xF2*rAr]\xF7U\xA9&amp;:\xD4\xC1\x94\xAA\xAAiɽp\x9EuS\x87\x94\xA9d\xBBm&quot;soU\xA82\xA6-{\xE3t|\xC1TlK\xDCu\xDDxc\xEF\x8F\xE0=\xD1\xF7\xE9\xA9\xA9\xF5\xD1O\x8B`Hk\xB6\xE9\xC8a\xC4}4\x84$\xDCB;0D\xC1
+i\x89w\xF2\xCD\xC1ex-\xCF&lt;\x97 z|?` \\xADP
+\xB2.&quot;\xD9\xC8\xDE7[\xA8'\xD1\xE7T\xF0p?\x80\xEEnO\x90\x83\xD5 ,\x91&amp;烪\x99\xD6\xE6~M\xEF\xB8\xB6\xFEhTe\xE2#9\xC1!gV
+b\xE8R\x9C\xE8\xF8 \x93\x875ئ\xDAX\xE8\xFB/a[B(\xC4Y?Q\x99\x83\x9B\x9A\x8B.T\xDFK%Z5\xB5\x9E\xFF\xE1\xDBU֧e։\xD8\xE7\x92\x92\xB0=t\xAB\xC6#\x8C\xCF\xFC\xA4!\xD4\xD6S\xAD\x92\xBCG\x89\xD2\xC0!\xE9\x83~9\x88\xF4up\xAC\x8F\xB6\x87\x86-ޭ\xF2Q$w:\xBA\x8Fra\xBE\xEB\xA9q
+\x83\xC9=\xBF'@\xEF9l\x9D\xD5\xE3X\xB7\xD4֪\x95Ֆ.\xF1\xABF\xD7&gt;\xCCY\x8BH\xA5!\x95\xBE\xC4
+:d\xFE\x93\xDD{-u p\x99L\x9Auv\xB4)g\xD9u\xC3ZY]\xE1\xE9\xF2\xF1H+/\xF2\xAA\0d\xA2*qj\xAC\x89]R\xA9 \xF0\x87Th\xA9ݳe)tx\xC1IjH=\x90A\xB1:J@o+Ur\x96\x8E\xC1&amp;\x97\xEA\xF7\xE9\xCBT\xF6\x89\x83B\x91s\xBD;\xED\xA5\xE4א&amp;0\x86
+\xFDaUht$яzxg\xD7]B&amp;`Omr\xC3AG M\x81&gt;\xDF\}\xBA\xBD\xBD\xF9\xF5\xFA\xE6\xBA\xD3\xE9āȼ\W \xFA!0\x90\x82\xC6OTX\x8E\xCEoh\x89\xD2=
+c&gt;\x96O@+\xF9\xB6=G{\xE3aV\xCC
+\x99\x94\xCAk\xBA\xF1y^\x89\x80\xF3DX \xDE\xDF\\xFD\xEBLi=Q|1\x9DΌ        \xFCy&amp;\xCFRdN\x91ˣ\xC8=\xA4Za\xBEg \xE0\xD3I\xA7\xD5J]i\xB3\xAA\xBB\xBA        \xBB`\x91(\x94k\x868\x95\xD6\xE1\x85c\xB5\xB2\xA2\xD1UZ        \xE4~\xB5t\xADqo=\xEF\x8C\x9C\xE5\xBD\xD8\xD1\xC0\\xEB\x96\xE9a\xCF \xA5\xEBq/X\xCF\xEF\xA8/7\xA9f\xA6
+1E\x88w\xD9 k\\x8F \xA5\xE3sD[\xF4\x82\xA2\xC4
+JK\xEFs\xA7v\xCE\x92ѽ\xC9E\xC5\xFB:\xD9H\xDEKث\xA6D\xE8\xE4\x88Nh\x92\xFF\xC4t\xB12zG[\xEFvF\x85xL\xDDZo\xF1Z\xAE~ \xE8\xAEr\xFBL-.=\xFB\xB6p1\x90\xBC\xFEw\xD8R!0\xDA\xE4-PΎP\xA6\xC1\xC56\xACiR\xE5\xCFs\xBB\xB9\xA7|\xF6\x87=\x94\xF1\xEC(\xE2O\xD8\xD9\xD2\xFB\x8F\xB1 \x89
+DUJ揄\xA8g\x9D\xC8t\x86^\xE6=a \xF7{zʋ\x8Fԩ\x9B\xFF\xC8H\xD3K_\xF5\x97\x8BgMBR\xB2z\x86\xF9H\xE3{W\xB5N\xBC/%\x83\xA53\xF8\xE3\xB1 \x96\xD8%E\xD6%V/\xC4͝\x99\xA4\xDEn\xC6Bjti \xE7۳\xF7\xE5\xC6\xEB\xBC\xD8\xE2?ϖ\x8E\xE3\x97)M\x9BeO\xA2Z        \xC4\xFBT\xC8*6\x94\x86\x92\xF5!/)\xCF\xD3g\x88&amp;6\x9E\xBB\xE6;v;\xB5S\xA6R\xCB
+\xFE\x8B\xC4y\xFD\xDC4\x82R\xCA V\x931\x97\xC9\xE2\xB1ȭV\xF8\x95א        \xD0\V9\xA9\xB2N*Ld\x86\xBC
+ǵ \xDC\xE1J\xDE؂\x93r\xA5h7\xF3\x93\xBF\xDF\xE2$\xB1
+endstream
+endobj
+
+17 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 18 0 R
+&gt;&gt;
+endobj
+
+20 0 obj
+&lt;&lt;
+/Length 1142
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDAmV\xC1R\xE38\xBD\xE7+\xFA\xB4\xAA\x8FG\x86\x82(0[\xB58(\x92\x9ChbK^I\x86\xCD|\xFDvKvB\x9C\x9C\xB8\xD5\xEF\xF5{ݭ|\xCB_\xAE\xB3)d\x90\x83l)\xFE\xE1\xBF\xE3S\xF8\x9A\xA5\xC9        \xE4\xD5`\xF8MzO\xB2\x94\xCCIxϒ\xEC\xF2\xDF\x9C\x9Ccp.ç\xFCٺ4L\xC0\xB5\xB1\xF3P Ϸw?!\xC4NN\x92\xAC\x8D\xBDg\x96/a\x92fix3&gt;\xFE
+\xE3\xE9\x84^͆\xCE[S\x8D\xE0\xB9Vޯ\xFCw4\x9E\x9E\x9F_'\xD3 O\xA5\xE7c:\x8A!\xABu-\xE1NU\xCAKq\xF4\xF9\x8F\xC1\xF1Y2iAf\x8Fl!\xE1\xF4-BL\xA6\xC9)\x8C\xB3\xF0&amp;\x9E\xBB4\xBAPBj\xAFX\xF9\xE5њ\xDA*\xACѮc&lt;~ӘI\xE9&quot;\xA4\x8C67\x8D\xBF\x94`\x8A\xC2I|4\xE1Sɜ!\xB9RĢ \xCB*\x99\xC0E\xAC&gt;\xED\xC0]-9&quot;Ƙ\x8B\xC7[(\xCDc\xEA\xB24\x9C$u\x94^\xFD\xD8;S%\x9B\x97\xAE\xBF_\x82`\xE8\xC2n&gt;\xBFd~J'gL \ùt\xAEh\xCA6\xD9_j\x98K\xA8\xADyWİe        \xDB^J\xE60\x89\x95uɸ\xACP\xA0@\x84\xC2yc-}.
+\xEB\xEBN\xF7\x86\xB7E\x88#\xAA\x8E/\xF10(\xDAxPU]\x86\\x88\x8D\xA5R\x90\x95\\xAAw\xAA\xD3!\xA5Q8\xB4\xCB\xE3\xF9\xE6\xE1\xE5\xEE
+~=\xE4ĽqR\x8C\xB9)$ \x99pT\x96\xA5\xB4,
+\xC5ky\x8E&quot;h\xE9?\x8C]\xED\xE6\x9B3-&gt;\x94\xF0\xCB\xAE\xDA\xC2]S\xD7\xC6\xC6
+\x89@ \x89pJ \xC5\xF1e\xD1o\xAF\xB0\x9C\xBE\xFAu&amp;\xEF\xF9\x86\xF8uҶvO\xAB\xC9I\xBD\xDE\x908B\xDB\xC8Q\xEA6\xA2\xE8\x8D7\xDA)\xE7Gl(\xDBU\xC0\xB0\xAAOc\xB6\xA1\xD6e\xA2\x9E9\xC4*KB\x92\x9B\x98䅔\xEB\x9AF-\x93}\\xAA\x99\x9A\xB9P(6\xE0\xD3\xF5e\x9C\xD3\xE3\xE94=\x9F\xA6\xE9pv\xFC\x96%\x89\xFCˆ\xEEl\xD0_ 0_)\xDAj@F(\xBF\xC4\xD7H\xE1\xC0td\xBA\xD2k\xCE\xCF\xF2\x96R/0bf\x8A:\xBEjJ\xAF\xB0MA7\xD5\xE1\xF0\xA5\xE1^\xA2\xE6\xA4\xF0\xCE \xC7NZ\x89\xCCe,TL-u3\xE6\xB2\xF2\xDFFY)b\xED\xE6\xFD\xC5?a1\x9B\xAF\xA9yw%\x99\xE1\xAA\xF1r\x81\xD8
+Qю\xE7\xC6o&quot;.jQn
+#\xB97\xB7EW̮0\xD9\xE7ux\xFFzt@\xDA%\xA39\xDD\xEE&quot;\xDA'\xA6\x9A+\xB7^\xAF\xF8\xA0~\x8E\x94\xC1\xBA&quot;&lt;M\xCDB*\xFC B\xEB\xA4\xF0\xB4\x807\xBD\xC1=\x8A#q \xE2@-4
+\xE4&lt;bs\\x8A뀲g\xB5\xFC\xBD\xF6q\x97!\xF2\xE6\x9CXkVŃ\xBB
+\xDByw\xED\xC0\xFD\xCBs\xBEa_\xE3\xD2c6\xA6\x8Cq\xB8&quot;\x9B\xBA \x8B t$\xD1\xF7\xACf|\x85\xEE$𠑫\xD12\xEAk\xDC\xC6\xFA\xF6\xFE&quot;\xACC[\xF8\xC0p̆\xDDj&amp;\x95\xC23R\x8E\x9E\x93\x86\xFA\xCFA\x97Q(Ǚ\xFB\xC2_\xC9Z\xEA\xD01\xE8\xE2^PaV&quot;\xE8\xAE\xE4p\xCBP\xB7J\xCD\xD7$1-ٍ1#8KS\xBCgwu\xCF&amp;\xE1\xCB\xEC4\xFC\xC3\xD0\xC9        &gt;\xC1͟Ѧ\xA9hU\xA2}U
+\xBC4|\xF5        \x82\xACƪ{{\xDD\xBF\x96m\xD7\xE2[\xDB)+\xB2%\x8B\xBB\xE7󤗐|n\xB4\xDA^\[B\xB4\xB4\xE8\xBCtq8{t
+^p\xAE6Z\x{13BB75}*\x9E\x8DwA;E\x85\xB2x&quot;\x8Dp\xF5\xB7*\xDEqݷ\xEDo\x81=\x96q\x85\x8C\xF69*\xCD-\xFD\xD4
+{\x82\xDEnwRK\xBF\xBF\x{DEDE}B\xE4&lt;\xFC^\x98\x8C\xB0o&gt;\xB9X\xBA r\xA0\xD7ߤ\xEAO{\xBB\xCF\xFF/&quot;\xC7
+endstream
+endobj
+
+19 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 20 0 R
+&gt;&gt;
+endobj
+
+22 0 obj
+&lt;&lt;
+/Length 930
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڕV\xDFs\xDA8~\xE7\xAF\xD8kg:fZ\xAB\xB6\xC1\xF2\x96d\x9A\xB9\xDC\xF5G\xA6\xF8\xEE%\xF4A\xD82VcKI\xA4\xC9M\xFE\xF8[I6Đޥf0`\xADv\xBF\xFD\xF6\xDB\xE7\xD9\xE8\xFDe\x9CB Y9\x8A\x88\xF0\x85\x93\x9C\xC4\x99B֌\x82sf(|e5\xA3\x9A\xC1]L\xE21d\xDFј,\xD08+F\xC1\xD7\xEC\xAE\xE9C-i\x97R5\xD4@),\xAF&gt;\xFE        \xCE6\x99\x92\xB8\xB3\xFDDU^Aő[        ''\xA6\x89]\xBA        δQ\xB2y˖sK\xE1
+\xFC-\xF58L\x8B`\x95\xA41\xEE\x8A\xA1݊&amp;\xB7-\x83\x8F\xBC\xE1\x86\xE3o\x90\xFD1\x9A\xCCI\xD2\xB9\xB9\xA6'\xDF|\x88$%3c\xB7\xE2\xF7]HQ\xF2\x82        \xC3i\xFD\xFEZ\xC9Vq\xCCQ=x{\xCCl\xA9\xF74%        \xD9\xE5\xB64j\x9B\x9B\xADb\x9E2\x87\xD0!\xB2\x8A\xF9l\x99\xC8e\xC1\xE4T\xC0\x9A\x81f\x8C\xB95\xED\xD6t\x8B\x94\x8A6L\x83b\xADbڂL흧*\xEA\x91N\xF1\xC9 \xDFs|#\x99qA\xA3A\x96\xA0[ƐB|F\xB7\x97PPC        |\xF5H\xC1\xBC\xF7&gt;\xE4\xC0\xE5MP&quot;\xBD`l\x8F\xF3\xD3_\xCB\xCC\xDDj\xC4E\xB5[k}\xB6\xC4\xC97\x980\xC4\xE3pE\x81\xAE\xE4o\xE59ߡ\xD5=5\x90\xCBf\xCD\xBA\xFB\xC1M\xE5L\xAD&lt;*F1\xE9\xF1$$\x9A\xB9}o\xC3\xDD\xF5\xE4\xAB\xFB\xB9\xC3N≳}\xB4\x8E~w\x8E=\xDD}a\xF7\xB6\xD1\xFCE~\xE7(Ȱ\x93\xDD0\xC5\xE3b\xBB\xC7.\x9B}&amp;&gt;\xFDp\x81=\xD0i %\xD3\xD2He\xD5\xE7\xE1\xA7JѝY\xE9\xFB\x85ֵcV\xBA\x85\x81\x9A
+Wa\xE0\xD9\xA0J)y͜\xB0\x86\xF2\xA814\xAF\x94\xF0 V.\x85\xE6\xDA81\xD1.\x9FC\xA5P\x81z@\xFDbc8\xBBu-\xF3[m\xB7\xCA*֫\xA3Gx\xA8I/q}\xA8\x94\x9B\xE0M-5C\xED6\xD8˹זb\xB4
+ovZ\xF4%\xF0\xC8\xCE߰|\xC9S\x85Z*\xEEi\xD3Zbl\x92:-_&gt;K\xC30&quot;(\xB6\xCC\x88\xD3&quot;\xA1m
+\xBFc\xB0\xE65\x9D,;\xB8\xACXikuG\xA7\xEB\xBAo\xBD\x9A\x89\x8D\xA9\xBC!w\xA1ű\xFB\x92\xDF#\xC7+h\xFE\xEBgF\xC1J\xD7&gt;v\x82\xFE\xEB\xAE\xF3\xF7t&lt;\xD3S\xFF\xD1L]'\xC1\xFEz&lt;2z\xEA\xE9\x{DC67}i\xE7\xC9'\xBF\xC4\xC5s@\xFC\xF6\xE4% \x8E\x9Dx \xA7@\x81\xA7\xD7\xE9/\xFA\x82ϑr&lt;Z\x86\xEC\x92\xC93\x9A\xB4\xF5\xFA\xB0\x97\xA2S\x83k\xD8a\xEC\xC5kO\x83\x82\x97%\xAAK\x98\x8E\xAF\xF1\xCF\xE3\xAE\xE5\xBD\xC6t/\xDD#\x99\xF6\xA1\xBA-&quot;\xE9~L\xC5d7\xA3:        \xFC\xF4\;ΪnTtr\xF4\xBDZJ;\xB9,\xE8\xB3\xE5\xC5\xD5\xE4U47h\x86G\x82}&lt;\x9CUx\xC6Ph\xE8\x86\xE7 \xB6͚\xA9]\x9D|\xC4W\xAF\xB3!W+\xF1
+VA\x85M\\xB0\x9C7\xB4&gt;\x85\xE8&gt;\x99\xD8\xFE\x93\xB8O\xED\xB7\xE9\xC2\xDE.\xEC\xEDo\xD1\xD9j\xEC\x9C}\xC8F\xFF\xDA.z&quot;
+endstream
+endobj
+
+21 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 22 0 R
+&gt;&gt;
+endobj
+
+24 0 obj
+&lt;&lt;
+/Length 1052
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڭVmo\xDB6\xFE\xEE_q\xC0\x80\xC2\xC1,U\x92_b\xF7[\xB36X\xB7z3j\xED
+Y?\xD0s\x91H\x97\xA4lxȏ\xEFI\xF9EN\xB1/S\xE0\x8F\xCF\xDD=\xF7ܝ\xEF\xF2\xDE\xEB\xFBt )\xE4\xEB^\x9AA\x82?\xF8g8\x81\xDB4\x89G\x90׽\xFE\xB7 &gt;\xF1\x8A3\xC3a\x97\xC6\xE9
+\xE4\xFF\xA0q&lt;C\xE3\xBC\xEC\xF5?\xE5 X\xB0C\xA5X        \xF7J\xD7\xCC\xC2ZiX~\xF8\xF838\xDBl\xA7\xC1v\xCEt\xB1\x81,Iw
+o!gt\xF4\xD0k\xACV\xF5\x96[a\xED\x83W\xF0\xBB27\xD1x6\xEB\xFF\x9D\x8DS\xBC\x95\xCC&quot;\xBA\x8A&amp;O\x87-\x87\x8F\xA2\x96\x977\x9F!\xFF\xA97\x9C\xC6Yp\xF2\xB0`\x8F\xA6\x9F\xBD\x8BlO J݉\xBF\xF7\x83\x92kQri\xAB^/\xB4\xDAj\x819ꃷ\xC7\xCC&amp;0N|L\xE38\x8Bai\x95&amp;ĻJO7\xD1$I\xFAK\xAB\x9B\xC26\x9A{\xE7i&lt;\x85(\xA4q\xAF\xAAJ\xED\x85|\xBB\xE1`\xC2\xDD
+g%\xD7X\x86\xB5. U\xF2J\x86\xFC2Dr\xC0d\x8F/\x85\x8F\x9C\x84\xD0\xFA\x85\x92\x86\x8D;J#YQ\x87\x8B\xAC(\xF0\xADs\xAB\xE0^&lt;bl\x80\xB1\xBFg\xC8\xF7\xEA8\xA2X&amp;\xA4\xB9\x82g\xAD\xF1\xED\xA3\xC52R*\xCE\xEA \xB6\xBE\xC6\xDFv7\x8C\x8F\xA0\x81\x8B8s`\x8F1\xB9vz
+3\xD90;p\xC2aPR\xD1
+\xF5V\x82\xE1\xC6\xE0\xF1\xE0\x9A4[q@&lt;$\xA4\x845J\xC7;!\xD6?,\xA5$\x98@\xBCy\xE3\xF5hX\xBD\xAD8hf\xF9\xC0է +\x9Bz\x85!b}Ta\xB95m\xB0\xBE&amp;\xAE\xA2\xCD\xCA\xF0/
+ʧ\xC3:\xA4srJe\xE9@ce\xD1w\xEC;⒡\xB3\xA0@0[^\x88\xB5p\xB4\xB7)i\x8ED
+ g/\xECƹYe\x86﻾0\xE8\xE9[\xC97\xFE\xFAI\x92&amp;~aZ\xAB\xFD\x8A\xA2\x9E\xE2[\xF8\xF1߮e,\xE7\xBC\xC8
+Y\xA6ً\xA6i \xFA\xB6\x957\x9C\xBCl\xD8b.\x9B-\xB2|4\xCFF/\x99\xFF\x8Ayjر\xAA\xE1\x86:47\\xBBj\xA3L\xD6
+\xF548\x95&quot;4\xD6\xAFp&quot;_\xB7h\xAD·[\xCE4\xCC[\xE6\x9EV\x92\x8F0\xC3f*;\xD2\xED\xDF7\x9A\xBC{\x91\\x89&quot;H!ԟ\x8A\xA6\xF9\x96\xA2\x93\xD6wK:\xEC8\xA7\xE2\xF9\xDEjuBq\x9A\xE8\xD6\x86\x99\xABuL\xD3\xD4\xD7Zhc}\x86\xDDF\xE8_B\xCD\xDF\xFEE]\xC1PL\xB2Tu\x88\xFC \xE9\xA4\xC7Wh\x82\xF3X\xFBghH\xC1        Yh^\xFB\xE4.\x9F.\xEF\xD9\xE1\x80\xAF\xD3%\xDE\xF9m,\x8F\xF4
+\xDC\xF9 \xC358\xCC\xC9D\xED\x90jl\xA2\xB3V\x89\x93\x89g1|\x86p\xFE\xF8R\xA6\xF8\xF63\x9A\x9E8\x8Bӡ \xEA\xFB\xF7\xEB\xF4t\xFE\xFD\xAF\xC3c\x96q:r\x98\xCFs\xE8\xCF\xF0ݙP\xE0\xB9
+&quot;?\xB2zz\xF00,\xCEVr\xFB\xBF\xC67;\xED\xA50\xA4\xBD
+۝v=\x9D\xCD\xE5j\x8Bf\xE7\xB3\xCA[\xB6\xBA\xA7-v\xDC/\xD4\xED\xDE\xF1fǞ\xC0}'\xC3յf8\xF1\xA2\xFFzЙ\xBE;\xF1x\x9DĖ\xE1\xD6\xE1g\x82\x9Fi2\xF0`(\xEA\xE7F\xED\xFA\x87c \xB4=\x9AR\xA8n\x93\xDE\xD5\xE8}\xD7\xE8vK7\x86\xB8\xC0\xA8\xDE\xE5\x82T\xED0!i\x86\x85L\xC2=\xED\x97bä\xE4un7!YA;:\xF6\xD6\xF9\xA93\xDAnjh\xAFa\xF3h\xFCFex\xBD\xAAܼ\xC2M\xE6s7\xE2Q\xB2\xEA\xFAnhj\xB3\x88Uh@\xB1C\xEC2z\x9F\xF7\xBE-^Ԯ
+endstream
+endobj
+
+23 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 24 0 R
+&gt;&gt;
+endobj
+
+26 0 obj
+&lt;&lt;
+/Length 1168
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍV\xD1N\xE3H|\xCFW\xF4\xD3)H\x89\x89C\xC2c\x96i\xEF\x96]\xD1I\xA7\xC0\xC3\xC4n'\xB3\xD8kf\xCC.\xFB\xF5W=\xB6\x818HwBI\xDC\xD3]]UݓO\xEB\xC1\xE9u&lt;\xA7\x98\xD6\xD9 \x9E\xD2\xF8w\xB6\xA0\xF3x\xCDh] \x86\x9F\xD8+\xBA㜕cz\x8E\xA3\xF8\x84\xD6?] x\x9D\x86w\xEB[\xBAU/\xB9Q)][(O\x99\xB1t\xFF\xE5\xEB_b\xA7\xB3(nco\x94M\xF64\x9Dē\xF0d|vN\xE3\xF9Tm\x86+\xE7\xAD)Ft_i\xEF\x9F\xFDAw2\x9E_\ \xA6\xF3\xA7&amp;c9\x8A\x90\xA7\x97\x8A\xE9\xAB.\xB4\xE7\xF4\xE4\x91\xD6ΖѴ-\xB2\xB9U;\xA6\x8BǦ\xC4t-h\x87'͹KSf:\xE5\xD2k\x95\x9F\xDEZSY\x8D\xEDK\x8F\xCE4o2-&quot;        ޱ\xF3ڔ\xF2\xF3\xA6\xFFhI\xE3|\xB8\xDE3\xA9TU^?3\x95\xCAז\xC9d\xE4\xF1u\xE0 1)'\xA4\xF2\xDC\xFCt\x81Ug\x99N4 4 M:\x80\xC9[\xB5\xA4\xA9u\xEF\x8A=\xB3\x95\xB7ړU&gt;T \x95\xB4\xA3\x94+.\xA57B
+\x81\xA0˪\xF6\xE4\xF4\xAET9*\xA7\xBD\x82?u\x9E\xBB\x8A\x90\x91\xBF\xE0|b\x83\xD2imu\xB9\xC3\xC1\\x92Ul\xB5I]D\xD6\xEF\xF5\x80\xFE\xB6\xDC\xE1\xCF9(JRPfU\x81s\xCA\xA9`@ˠ\x84TU\x98Z\x80g\xBD\x84Uk\xAET\xC1\x89G\xD9#:d躶\x92\xB6@\xD6&lt;3\xA2^ \xBC\x96x\x81\xFDx2\xA1\xC2It\xCDp\xA3(R\xA7\xDA\xE4\xEF\xCBRlu\x89N\xB4t\xE2@L\xCE$\xBEo\xA1\x8D\xBAn\xC8[U\xBAB;'r\xD0\xEAa2]\x82?\xC7 \xBB\x82\xF7\x8C\xB5\xA1\x8D7\x92\xCC7$9\xFD\x9B\xC1\xF7\x8A`0W\xA9\xE4\x89\xFBn9.f9\xADv=:\xF7\xACR\xE40\xA8+oi G`J%\xE80\xA1\x93\xCA^b\x9B\xC6\x8Er\xE4-\x93\x97\xD0![ \xB6\x97N\xC3\xED\xDA7ߺ\xBD\xA9\xF3TXKM\xC9G\xF3{\x90j\xB9g\xE4/^\x98\xB9\xBB\xBA\xFC~ss\xF5\xED\xF3\xD5g\xC0\xA6\xE3\x900UU\xB9\xFD\xAD)\x8F\x810э`c\xF4\xDFD\xEDp\xBF\x8D\xEDyD\xF7\x9C !\xBA\xC0d;lP\x88\xF3\xAE?\xE0+\x8CH#\xB6h\xE0\xA8v\x88ΙY\xB3\xF6R\xCE:\x97\xF8\xFD\x91\xEEa\xC80\xF6\xA1\x81r\xF5\xF6'\xBE\x95\x9Ev\B~[X\xC9\xAC^\xBAT\xBB\xA4v\xAE+\xD7\xF8\xF1\xB0\xC6\xDD\xF5%\x9Dͱ\xCB6g\x8FA)U\xD3ej\xD8\xCC\xBD\x94\xED\xA2\xE6\xD0y\xD3f\xF6(\xB3\xD1&amp;\xC1\xE7\xF9\xE3\xD12B\x93=\x82\xE2jw(\xC2G\xC36\xEA\xD5\xDF#C\xFB\xDA?\xF4\xAC\xE1@x1\xAF\xD30\xF3\xAF{\x8FGx\xE0y&quot;є\x93h\xBA\x9F3\xB4]\x83kii\x97s\x91\xF6ʬYqz\xD7\xD9a\xC2Nkd\xA5\xF1\xB4\xC7: \xC4nk\x9D\xFB1\xC4x\xC5_ \xBF*\xB5+d\x90\xE1j\xED\xD56y\xB6\xB2\xDE\xE2AB
+l
+$\x8A\xAC\xEF5\xD1\xCD\xEA\xB6\xDA\xFFA\xBA\xCD\x{1261B8}75&lt;\xFF\xDAkYタ\xE7V\xDC\xC1IX!\xA5)\xC75&gt;!a\x90\xA5\xF1\x9B\xE5\x84q\xE5\xD91.hS\xE0\x9EQ\xED. \xF5\x8F/\xBF\xAF]0~]\xE6\xFAI6 \x9C_\xEC&lt;\x85\xD9)!\xEB\xD8dc\xC7\xF6Y'r%`\x81蚻9\xCC\xEAWa\xC1U\xCA\xEFMnv\x80\x9Bg\xED\xB0C\xDD\xF1\xCC/#\xFA\xB2\xFA\xB6\xFA\x8Fy\xFF\x8E%Vp\xAA\x95 \xA8\x97_ \xC3`\x91S\xE1\xF0\xE1\x92;\xC0\xE5\xEB\xC0K\xAB\x96w\xDAAH\xF9x4\xAB\xEC\xAB\xB7o\xB3\x9A\xF99.\xD8ƶa\x8D\xA3F\xB4\x9B\x80e-@\xEEB\x91wv\xF0\xDAwa\xE1W\x81\xECe\x95$\xC6\xF1A\xA78j6].i\xB3hV\x83|qz\xB6\x9C\xCFis\xDE\xFD\xD5z\xF0/\xBA\xA85\xC9
+endstream
+endobj
+
+25 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 26 0 R
+&gt;&gt;
+endobj
+
+28 0 obj
+&lt;&lt;
+/Length 809
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڭ\x94Mo\xDB0 \x86\xEF\xF9&lt;m.\xD0x\xB6\x9B\xB8\xB7}\xDD\xD6bA\xEB\xD2T\x8BI\xB5ڒ'\xC9Ų_?JJ\xB2\xDA\xF3\xB2\x86 0`\xBD\xA4\xC8\xE7%\xFD\xA6\xBD:M\xA7\x90B\xB1\xA5$\xF4\xA3\xC7A\x87iO\xA0\xA8G\xD1\xB4 .\xB1Bf\xD38݃\xE2\x89\xE3c|]3\x98\xB1U\xA5\x87S\xA5kfa\xA14\}8\xFF^\x9BM\xE2t\xAD\xBD`\xBA\xBC\x87,I2&gt;8\x84\xF14sG\xF3赱Z\xD5\xFBp\xD5k\xBC\x80/\xCA썧\xC7\xC7\xD1M6M)*9\xBBP\x92&lt;\xAC\x84sQ \x8B|\xEF\x8A\x8F\xA3\x83\xC38__2\x9F\xB1%B\x9A܆;\xB2)\x8CS\xC2\xDE*\xB9\xA5\xACz5ӪтZԫ\xA0\xA6\xBE\x8F`N.Y\x8D'\xC0Z.\x94W$0\xCEB\xB6\xF6\xCE\xFE\xB8v\xBB\xE7\x97\xF8\xBD94L\x93Ģ6'^1\x89\xB3\x8DF3K\xB1\x8E\xA05\xCB\xEA\xCAJ\x95\xE0N\xC0\xDELa\x802\xB1
+\xAC\xA2\x86D\x95\x90\xCB7_77\x8F\x9Ad(\xCB        g\xA8\xEDO\xB8\x89\xCE~\xDE\xEC\x86j\xE1\xA356
+uO\x85\xD5\xC8s\xEA\x800\xD9pbTr\xF9\x806\x86\x992F\xDCUd&lt;\xABZ4\xC04\xC2Q\x92\x90i\xB9l:_\xC7Kل\xE2-\xD3mǟ+\x94\xA4nvP\xA9ُ\xC6\xF18\xF1s,G\xFD\xD2\xBDu[C\x85ri\xEF\xC1uD*\xD7@-\xAAJJn\xFA\n\xA2\xDA8Ti\xF4\xB4\xFB\xBB\x95O\xBF\x85\xB0\xE9:\xE0\xF2\xE8K\xF6\x9B;b\xCC\xD3V\xCCe\xF1\x81K\x8F\xDEj\x97XY*͝G\xE4Y\x87\xCD&lt;\xBA\xC2\xD2\x80\xDC\xD5y\xFA&amp;\xD3&lt;\x87\xF9\xD1m.B\x9E9\xC4\xDD:&amp;\xF4*\xA7\xFF\xFD\xEF4I\x80\x82\xB52\x94\xB5\xB9h\xE2ϧM\xF6\x9EF\x8B\xAB\xB2\xAD        H  U\xB8\xD5͜i\xB0 \x81|\xDF\xE7\xA6o\xB21\xC8ח\xB2\xB6\xB2k\xB7󍍃*UӅ\x9CB\xFF\xF4\xB1c]\xD4q5\xD8\xBB\xEC\x968\xE4\xC6\xFC\x9Dؿ\xD9\xF0\x94;}\xE5\xD6ػ\xB1\xBBM\xC4\xDEM0dB\xE6=\xA0\xEE2\xF4f\xAC        &lt;
+,5Ҕj\xF7!\x91\xB0Y\xAB}\xE7\xD7WEX \xEA\xDEx\x89\xA5T\xF4튡p\xD5nw.^R\x97\x94oIe\xF0V;\xAE}\xF0        \x9E\x92\xBD\x81\x98\x93\xA1rx\xB1\x85t\x8B\xE0_\xDB\xED \xFD/\xEB\xDD\xED\x99V\xF3\xEC\xF3\xF5\xF9\xBB x֞\xF7&lt;w\xD2|\xB1\xDB        \xEB\xA1\xDF1pË\xDEe\xFF܉\xDB\xCEXov:#X \xCF](\xFB}1\xFAa\xA4r\xDD
+endstream
+endobj
+
+27 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 28 0 R
+&gt;&gt;
+endobj
+
+30 0 obj
+&lt;&lt;
+/Length 1076
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڝVQo&quot;7~\xE7W\xCCS\xEC\xB1Hro\xB9\x84Hi/W\x94\xA0\xAAɃY\xCF7\xBB\xF6\xD6\xF6r\xE1\xDFw\xC6^ H\x95*\x90\xEC\x99of\xBE\xF9f\xBC\xDF\x9D/\xF7\xE9RX\xE4\x9DtC\xFA\xD1\xDF\xC5.\xD3a2\x86E\xD9\xE9~C/\xE0         a\x93&amp;i\x93qrM\xC6 \xD9\xE9&gt;-\xE60\xDB\xC2        \xF7Ɩ\xC2Cn,&lt;?|\xFF
+\x82\xEDh\x9C\xA4\x8D\x{D8F0}\xD9F\xC3tn\x970\x98\x8C\xF8jٽqޚ\xB2ϕ\xF2\xFE]\xC0/\xF0\x87q\xBD\xC1\xE4\xFA\xBA\xFB2\x9A\xA4\xE45\xBC\xB0+\x99\xBCo+\x84\xEF\xAATe\xEF\xBFv..\x93id9oi\xFAc\x8C&amp;0H\xC3Et\xBB5:W\xB5W\xA2\xF82\xB7\xA6\xB2\x8AJ\xB4\xDBh=%\x98\xC90fT\x8A\xB1AKh+\xE5\xAD\xF0\xF8\\x85\x99\xCA:\xF0k2Pe]Bc3T\xEC
+\xA6\xC3a\x97| \xE66mXvL:\xA7\x8C\x8E\xA6JY;\xA8\xD0\xD2Ef\xB4\x84\x97\xEE\xAAr/\xBD'\xC2 wu\x88\xCCע\x80\x8D(\xEA\x80Ʃp\xB4\x80^\x8A-\xDD\xD8-t\xA6\l§\xB3\xC4
+5\x97F\xCFl-,!\xA2UΫ\xCC\xEDK\x94Je&amp;\x8E*\x91\xBD\xA3O\xE0\x87\xA1h~M\xED&gt;G\xC5g&gt;\x8F7\xB5\x96\xDD\x99\xC94J\x90[-J\x95\x89\xA2؂\xAC\xAD\xD2o{r\x92\xD8\xFD\xBD=f\xA02Nyb\x9A\xF2\xF3\xF8F\xACQ\x99a~\xE2\xAA\xF6\x91*\xA5\xF6\x8EZla\x85\xA6$wݔ\\xE7B\xAC
+\x92M\xAC\x9F\xF0\xA4\xC9\xEA\x92y\xFA\xA9\x8AV\xC7\xEAM\x8B2\x81\x87\xB4i\x9AAn\x9F\x98\xFD/\xF1\xBE
+q6&lt;\xCFNh\x8B\xB1]EZ`N\xB2\xC2d\xEF'5\xBD\xBB\xE4\xD8Eb.\xEA\xC2'\x8D\x92a&amp;\xAB[;Tz%\xB4\xCC1k+\x98z\xC6T\xE9\xDF\xC3\xFD\xEC6\x94PW\x95\xB1\x9E\xB9\xDCƘ;wc\x98\xCCH\xE2\x9C=\xB8\xBB\x9DB\xC83\xEDk\xA5;7t\xCA56\xCD\xE1e4\xBA\xF0\xB6F\xFA&lt;&gt;\xC8E\xE1\xC2        q{F\xC0O\xB3\xDB\xDFg?\xEEfw\xE0
+T\xD6l\xB8\xC7-O&amp;4\xE3\x85\xD5T\xA4\x8D?n_Y\xC8\xED\xA5ěA\x88\xD3\xCB%\xB0hN{$\xE2}\x9F\xE3 \xB2\xE4\xE8\xC9Gr\x8A\xABv\xA1Is\xABA\xD2\xB6F\xE5p\xC8te1Gw\xB3D\xEF&amp;G\xBD\xF9_\xD4xDPK\xCA1\xC5\xF3u\xED\xE1\xA2\xF0\xE8\xE9\xEDJ\x9Bi\xAA \xD8hf\x954K\xCAp_c\xB0\xF1\xDE0\xE80\xEE\xCF[\x9A&quot;\xE5Vp \xCE:x;\x96\xD3Ji^oR\xF8\xE3\xCD$2\x9A\x8D\x92{ƌC\xC18\xB9b5&lt;\xDD\xDF\xC2xtu\xCB\xE9k\x93\xE7at\xCCH\xBC~\xFB\xDFi&quot;~&quot;_\x9E\xAC\x8AS\xE0=1\xB8RŹ\xDAh\xDCU]\xE6\xF5\xAAPnM\x957\xFCg\xC1\xF6\x9C\xE9MU\xCDu3ά\x8E\x90Ҟʓ&quot;\x96a\xA3\x8A\xBDot\xB5\xF8O\xADh\xE5D9\xB3\xD4\xE8\xCDӎ7\xD0Nrބ\xC5N5\xB7\x97q\xA4g\x9D\x8CD-\x95        \xAD\x89(\xFC\x9DI)\x81gS&quot;\xE0\x87\xE0)t'\xEF\x9B\xC5~X\xE3&lt;\xB6E|婥\xFD\x9E\xC1#o\x98L\x9A \xD4\xF5\xBCO\x9F *;V\xB1\xA1\xE7\xE6}؄K\xF1\xA8\x90~\x93
+}s \xBD?|-J\xDA]\xE2\x8DN{y#\xA5b\xBA\xE8\xE9U:_:ܗc\x89\xDC\x90\xA4        ֯\x8D\x8C\x9C~\xA9ª\xE4\xA0\x8B\xB3E\xE7_\xF6\xFAd
+endstream
+endobj
+
+29 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 30 0 R
+&gt;&gt;
+endobj
+
+33 0 obj
+&lt;&lt;
+/Length 944
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڕU\xDBn\xE36}\xF7WLU\xA0\xB0\x81X+ɖ/\x81w\xD1\\xEC%\xEE\xB1\xDA&gt;\xC4y`$\xCA\xE6Z&quot;U\x92\xCA\xDA\xDF!)y\xBB\x8B&quot;\x80&quot;Zs9s\xCE\xCC\xF0:鼹 c!\xC9;a\xFE\xE1\xBF\xC1\xC6a\xE0!);\xDDk\xAA        &lt;ЂE\xE1%\xF4\xC3$_\xD0؟\xA2q\x92u\xBA\xC9d_\x92\xC1\x9D\x90%ѐ         \xCB\xF7\x9F\xC0\xDAFC?ll\xE7D\xA6\x88\x820\xB0_\xFA\x831\xF4\xE3\xC8|z\xEC^)-Eyˊi\xBD%\xF0\xFC-T\xAFO\xA7\xDDU\x87\xE8L\xFB\xC6M\xB6\xFB\x8A\xC2=+\x99\xA6Y\xEF        \x92\x8F\x9D\xC1\xD85IdM\xB1\x8E'\x97#\x8A\xA1\xDA\xCE\xEDF\xF0\x9Ce\x94kF\x8A7 )*ɰD\xB9w\xD6# \xB7`\xD7,^\x97\xCFT^گ\xE8[\xB0]\xEF\xD7_L}\xAB\xF7`\xD5\xDD\xD0\xC9h\xCAJR\B\xB0\x8B\xE6\x81%\xEFb\xF36\x9C\x9AǍy\;B\x82P\xB0 \xAEV\xBD\x86\x8A6\xF6+(Н\xA6\1\xC1W]\xB5\xEA]\x82bŅ\xA1\xB4\xF5\x8F\x84)\xE3Z\xA8
+\xE4\xC6I\x9B\xF2R\x91\xD1\xC6\xC9C\xAF\xAD\xE7\xC2\xFD\xA8\xF5ZP\xA9G~iIX$\xCB$U
+\xB4@_\xAEI\xEA\xF4\xCBk\xA97T\xE3\xB9\xB18\x8E&quot;Y\x8D\x97uU        \xA9af\xB2)w\xF8]\xAA}N\xF5\xBB\xB3\xF48\x96\x96\xD1 j\x85:]\xC2\xCD\xE7\xF9\xFC\xF3\x9F\xAF {\xA0\xD8 ,5I Vgz\x9A\xBB
+\xB4$\\xE5\x88S\xBC\xE0{\xF1\xB6y\x81\xAAiJ\x87uZR\x86 \xF2%\xF4\x86)\xC8DZ\x97\xD8\xAB,\xDF_\xDD\xDF\xC33\xC5\xCC4\xF3M_\x83\xD2B\x9AƲX\\x96\xF6\xA7ױ\xCE\xF2\xC5&amp;ߏ3\x9C\xB1tU덐g%\xBF\xA7\\xB2-\xB8Y\x81\xD9\xC6}b\x8F\xA7\xA4\xD8\xFCX\x8C\xF0\xC3`;س\xAF\xDC\xF9\xBBn\x9F\xE5fa\xB6\xC57\xFFE\xA8\xC9z\xB3!|Mm IQ\xF4\xBB\xBFf\xCA\xDA\xDF&amp;~\xE4ÜT\xE3kӁ\xCB[\xB3L$)\xA9\xC6.u\xABƟ\xB4\xD6        r~ԏ\x90Q\x95J\xF6\x8C\xBDĸ\xA4\xA4#nT\x85\x99\xB3\xD4Yn\x88r\xA2Sk\xE5\xB7\xFC9\xA3E\xA6\xDApK\x9C \xE3}k\xF3T6n -RQ}o\xCD\xF4\xB61\xBBw70\x8CG\xA3^\xDD\xC7\xC9\xD3|\xDD0\z\xA8~*\xCAR\xF0bo%7\xD9Z\xFC\xB6]\x95K\xA6|\xF8e\xB7\xD6`
+1\xA2\xF5t\xD8\xF7'\x9C\xE5\xAA{[\x85n\xD3l\x82\xD45\xEA\xEB\xC2\xDBz1Ғ\xA3Z\xE2\xABrr\xE1u0:\xBD\xC61\xEE\xC4p\xB9 a\xE3ɻ\xC6\xF6\xEC\xEA\x83\xE5:[ŎDYu=RgLx8kA-Ѧ2\xAF|\xEB,\xDF4\xE4\xD8\xFEO œ\xFF\xA95&gt;\x82\xA4\xEA\xE7\x95!\xEC y+u\x85d\xA0\xB9\xE6
+0w\xC3$\xE5H\xB2\xA1\xD2…\xA4\xD9&lt;i!\xD2-H\xA2M\xBBǙ\xFF\xB5L\xCC\xCC\xF0\xE6z\xBD\x82\x84\xCD!\xE9\xBF5\x93\xA8\xF2mU;\xE0\x99\xA0\x9E#揤\xF3HKF\xA6
+endstream
+endobj
+
+31 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 32 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 33 0 R
+&gt;&gt;
+endobj
+
+35 0 obj
+&lt;&lt;
+/Length 1113
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڭV\xDBn\xE36}\xF7W \xFCP(\x80\xA5H\xF2-\xC9\xD6rq\xD0m\xD7]#Q\xB7\x92&lt;\xD0\xD2(f#\x89I'\xF1~}\x87\xA4\xE4+\x82\xB6@\x91\xC7\xE4̙ۙC_%\x9D\xD3\xDBh$y'\x8A!\xA4?\xFA\xE8\x8F`\x85\xC1\x92\xB2\xE3]\xA1fp\x872\x85\xF0\xD1        $\x91qpN\xC6I\xD6\xF1\xEE\x929\xCCٺ,\x83[!K\xA6!\xEE?\xF9\xACm&lt;\xA2\xC6v\xC6d\xBA\x848\x8CB{\xE3\xF7\xC7\xE0cs\xF5\xE0]*-Eك\xFB\x9Ak\xFD\xC2\xE0\xF8&amp;ԉ?&lt;?\xF7\xE3aD^\xE1\xB9o\\xC9\xE4e]#|\xE1%ט\x9D&lt;A\xF2K\xA7?FM\x90\x879{F\x88\xFAO.F&lt;?\xB2\xCE\xEDZT9ϰҜ\xA7s)jɩD\xB9\xB6\xD6Ԏ\xD1a;\xC6C\x82\x8D\xAE!?\x86\xE1\xF8\xEC\xA7\xC6\xF6\xA8uQg[c/Y&quot;\x88ZsQ\xB1J\xCC8m\x92\xA8\x99d%j\x94
+\xBAt]bX\x95A\xB7d\xEF\xEDW\x89\xAE}~H\xE1\x9B
+JVט\x81\xD0e\x93]?6\xD9\xF1\xD4Z\xF2\xC5J\xA3\xEA\x81DUc\xAA\xF9+\xEB\x9E\xC3 [0^\x81\xA6\xF4\xEEo\xE6\xC1?\xD4\x8F\xFEC\x{DB71}wY\xBFd\xBC\xE2\xD5\xF3ś*\xB7E\x99t\xA8\x94\xBC\xD4u\xF7\xB8\xF8M]\xB0\xCDkHE\xBD6訄\x8CK\xAA\xB7XCNd\xB2V.\xF0~\xE9\xFBi1\xCF0\xCA\x96&lt;\x85\xA8|\x85ƂWD\xBE\xF2\xE0m&amp;\xAF\xACX@.\x89\xB1\xA30\xF4= \x9E*흽\xA2$&gt;.\xB86Xbq&gt;\x9E\x8E\xB5~\xFC\x86\xFEWX\x887\xDB%J|ge]\xA02a\xA9N\xB7
+\x95&quot;*A\x86*\x95\xDC\xD2Jm\x96\xED\xC2A\x86
+\xA27u]\xC0\xBD&amp;\x920\x99A \xF0\xC6\xF5\x92FF\xA9\xC0\xCF\xDF!-D\xFA&amp;=[\xE0 \x88[\x8Cr\xC2V0\xF4i\xC0\xB4駗\xDF\xE64\xE8\xA8\xED\x843c\xA9k\xE3\xDD\xD8\N-\xB6\x9B\xE0\\x9BR|\xD1\xE8(xϴ\x8B\x97\xAB\x92\x99\xBE\xA0ſ\xA3\xA9B\xA9z\x87ݧ9\x8B\xB2\xC4*\xA39\xB8)\xAF\xB3\x99\xD0 l4cg\x87\x9B\xBE5\xC0\x8BZ\xF5\\xBFo\xA7\xD7\xC0\x89\x8D\xB3\xDC$\x9A\xEF\x95\xD0\xED\x99\xF3\xFD_:6j;n8\xE1V\xC1\xDA|\xC0\xA4O
+\xDD\x86\xB0Rȫ\xCD=\xC7t\xA2\xE5
+?\x99\xA3L\xBFOrV(&lt;L\xC7j\xC7\xC5 &lt;&lt;oe\xA5\xBD\xF2G\x9B\xEC΂8\x88\xF8\x9A\xE7(\xFD\xCBJ\xBD\xD1&amp;\xCDD\x86\x85\x91XEKi\x86\xBA[\x9A\xBAD#R\x8A\xE7\x8F%V\x94[\xB3\xC24\x83\xC7^-E\x8Aي\xB6\xC2q~Aæ\x{DFFB}\xBDv\xA8\xFDx4\x80\x87\xF3'\xA3\x87s\xAC\xF0Y\x90\xC8Ө
+,ow\x89R\xE89_s\x9A 3G:\xDD\xCBH\x93\x8Au\xB3R
+c\x9D\xFD{a\xDC{\xF6iT\xAB\xBAR+\xDAI3\xD7bgTS:[\xB76T\xF3\xF6\xF2H\xBC\xD9\xEF\xF7        ,\x90^\x82J\xAC*\xEA\xB4\xD2E:\xD8he\xB7!f\x97Ĭ\xC2\xC0u\xE0\xB36t\xDE\xEF\x9Bw7\xBD\xFE:\x9BM\xBB\x99ޘ\xAEZ\xED3K\xFE\xBCD\xFA'+#\xED9\xBD\xA3Br\xBD\xDEWZ\xF3:\x99M\x91\xBB\xF59Gwܺ\x99D3L%\xFD\xCE0\xE3\x92f\xECc\x99Ǵ\xE1\xC5\xA7\xC7ETT\xDF bm\xF3\xAB\x9B\xDF F\xDB\x9D\xD0\xEF\xAB\xA6\x9B\xEE\x83\xD1á7x\x84h5\xC4꽲4pa\xA8\xB35J\xE2/\xBD$.scw\xF4l\xA3\x9EYr\xD1s\xA0{\xB9G\xDFW$FM\xAF\x9C\xBA\xF9\xA2۾4\x8F\xC24\xE9\xFC
+\xA63\xD7
+endstream
+endobj
+
+34 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 32 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 35 0 R
+&gt;&gt;
+endobj
+
+37 0 obj
+&lt;&lt;
+/Length 1103
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڵV[O\xE38~\xEF\xAF8\xE2aT$\x9A&amp;\xE9
+fvVb.h\xD8e\x96
+2\xF3\xD2\xE5\xC1MNZ\x899\xA5\xFF~\x8F\x{D917}exX\xA1\xAA
+\xFE||.\xDF\xF79\x9F\xA2N\xFF&quot;AQ\xDA        B\xF0鏾c\x98\xBE7\x84(\xEFt?\xA1fp\x83\xB2\xE1!\xF0\x82c\x88~\xD8;#p\x94t\xBA7\xD1\xA6l\x9DI\x96\xC0\x85T9ӐJ\xB7\x97W\x83ņC/\xA8\xB1ߙ\x8A\x97\xFA\x81oWz\x83        \xF4F\xA1Y\x9Au\xCFK\xADd~\xB7\xD7\xFA\x9E\xC1;\xF8)\xCB\xE3\xDE\xE8\xEC\xAC\xFBo8
+h\x97\xD63[        r\xBF.\xAEx\xCE5&amp;\xC7w\xFD\xD5L\xBCq}\xC8l\xCA\xC1\xF0Ν\x8E\xA0\xD8\xB7\xED\xB3)OPhβ\xFET\xC9Bq*Q\xADz\xE2\x9D\xC2\xC8Ź1\xC54’\x950G\xC0
+1)@/\x95\xACK\xFA\xE6%JƘT
+O\xE8\xDD\xD0\xDF\xFE\xED\xFA\xC7\xD5\xF8\xE7:\xA2@/\x99XP\xD3)\xB3\x81\xB62\xCD)\xAAL\xE9Șe\x99\xE7:H\xBF\xE4\xAA-\xF7\xC3ͺ\x8D\xC3\xEC\xFC*b\x99\xA0\x82\xF3\xE9\xA5A\xB9\xC0\xDB$\xB8\xE8͙H\xCC\xC3\x95k\xA7&amp;\x8C\xEB\xDA6\SM\xC9\x82e\,&lt;\x87\x8D(\x90\xE69\x96\x9A\xE5\xACx\x96A,\xA9w\xA2Bs\xDCܜ+C\x8E\xF6cvW\/m&quot;\p\xD3\xECl\xDDt\xAF*\xA8R\x9B^}\xAC\xAC\xB4E\xDA›B-/\xBA\xE7\xF0\x91\xCE\xCE(N        \xE5R\xAE\x9DJMy\xEF\xC8E4\xAD\x91\xF9GV%\\xC2h8 -\xFB\xE7?\xA7\xF8\xC4i?\xA0OH\x9F\xC1~p\xF6Q\xE9&quot;g\xC5{\x832\xFD\xEE\x87C\xDF\xF7_\x8C\x81\xC2
+\xE8\xB4\xC1\x90\xC7mNF\xC4\xE9\xE1\xE8\xD4)\xF1ߟ\x9C\xFEYc\x9Fh\x96
+ \xE6n\xC0vnS,G\x8D\xAA\x84\xA3\xC2 \xF1 \x8Er\xF6\xD8&lt;*\x84J\xF0\x84+\x8C
+\xFDX\xE6h\xD6\xF3\xE9\xE4z\x8C\xB4\x84\xFC{R\xD0wB\x9APz]\xF0\xD8N\xD62CHM\xEC\xC8I 9/\xDB\xE0\x82\xB6\xC9\x9B\xF3\x8C\xEB\xF5\xA0Y\xE2\xAAH\xB0@a$\xE9t\x85P\xA2\x86\x96UXA\x98\xFF\xEC\xC7\xDAI\xC3,R\xD0\xD48\x8Fl\x8DgE\x91QjVS9[CY\xA5)*n.&gt;\xB7b
+\xC2\xF1fgw\x94E\xCA\xBA\x88\xB7_\xA6\x89v\xF4\x98(W$/\x92Lbd\xD1\xC4o\xFAB^\x98\xECtz\xB3\xDF\xDCZ \xB0I \xBC.\x99\x96[\xD1Vl\xED&amp;\xC7`\xFE&gt;96\xE0}r\xD8,́\sε\x91呑k3\xA3!B\x9B!\xB3\xEE&gt;5\xA8\xBA\xA6m-!36m\xB1f&amp;\x894\xCE_\xEA\xA0԰\xB6#E\x96\xC2x[\xBDM #\x87J\xD05\xD1x\xA9A\x80uF\xE6\xEC\xAA8\xEE\x91&gt;\xBBTKۑ\x9C\x95\xF3\xC5\xD2%)\x9E-\x9D\x9C\x9Ev\xE6\x84&quot;:Қ\xBD\xD8\xE8\xE4\x96\xFF
+\xD4+\xA9\xEE\x8D \xFAR\xB9#7Ÿ\xC7\xD7\xDB\xDC\xCAﰜh\x9F7/˩\xE9\xE4\xC8g?\xD8\xCBb\xB2@\x86\e\x89\xE1\xB39\xC4&quot;&amp;Wy\x85\xB7\xE1h\xF8\xFB\xBC݀g\xDD\xCBv\xFA\xCFs\xD7Q\xCB\xDE\xF5Mh\xEED\xD7\xEC]k+ \x8Cyʝ#6\xA7;&amp;\xA8V\x96\xA6\xD8F\xAB
+\x971y\xAD\xAC\xE0
+^\xBD\xB7yB7;\xE6\xD2N1&gt;\xACD\xAB\xBB'\x86\xBD5\xA1\xC3\xD9\xA7o0\x8F
+\xF8\x99l\xFD\xF8\xBF\xE69\xBF!\xCFL/k\xCA\xE7^\x98\x86m\xBE4h&amp;\x9C\xB5o\xA6K\xAF&lt;R        \xE6\xEB\xEDU\xF3\xCC
+\xE8\xBF\xA5DN\xEE@op\xA4Nw\xE3؋\xC2\xD5\xF25\xEA\xFC\xC1\xBEX\xC0
+endstream
+endobj
+
+36 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 32 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 37 0 R
+&gt;&gt;
+endobj
+
+39 0 obj
+&lt;&lt;
+/Length 1280
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍV]s\xEA6}ϯ\xD8\xE1\xA1Cf\xC0\xD76\xD8@\xDA\xE9 !7\xBD\xF9 e\xB0\x9B\x97\x84a P#[\xAEd\x93K}W\x92m\xB9\xEDtx\x80A\xAB\xDDs\x8Eήt_|\xB9\xF5\xF0 \xDE\x&gt;\xB8\xF8\xC1\xAFA#\xCFu\x86g\xDDkZXRN\x89\xA2\xB0\xF7\xEF\xE2?1ؙ`p\x9C^t\x97\xF1\xE4\xC0I\xE1VȌ\x94\xB0\xA2\xBB\xC70\xB1\xFE\xD0\xF1\xEA\xD89\x91\xC9|\xD7s\xCDJ0\x82~\xE0륗\xEET\x95Rd=\x88
+V\x96o~\x82g\xA1.\xFB\xC1d\xD2}\xF5w\xB9\x93\xBEފ!o\x87\x82\xC2#\xCBXI\xD3\xCB\xC4\xF7\x83\x91\xD6E^dK\xC1 V\xB6\x86@\xDF3 v\xDBL\xE4\x96Ҽd\x84YHQH\x86\xE5\xC1F#\xB1\xD7B;&gt;~\xE0\x86&amp;\x9CHR\xB2=\x85\xE8f\xA13(̠\xFF\xC1_\x97\xFD\xD0u\xBB
+e\x8B\xC6s\xC6\xD07\xBC\xBA(        \xA4T(\xA3ؘ&lt;\xAAB1\x88\x96CD\x95\xC2d0\xCDsQ\xE5        \xCD \xB8R$\x82dn\xC3\xE2\xB5M\xAF\x97=X\xDE\xCE\xC0\x9F\x8C\x86\xF0⹫\x90&lt;\x85e-ꅁ₇
+\xB4\x94;
+\xA7\xC96\x82s\xF1\xCE\xF2-䔦
+Jk
+IM\x90\xA6W&amp;M\x9E\x9Bd\xA0P\xA1\xEB[\x9B\xFC⺣\xF1\xAFu\xEC'Cy\xAE\x8B\x82\xB4\xC1\xDDq\xEC        \xAF\xA82\xE0:\xF9^\x94,\xA3\x9Dt\x9A\x9A\x8E^ {zK׬Di\xC7\xE2\xEF\xBBX\xBC\xA6\xA0v\xA2⩆\xADХ        :&quot;\xE9\xA6\xE2\xFC\xA0\xF9\xD0\U\x92&quot;w4&amp;\x89&gt;9Y\xF3s%
+*7ڽ(&gt;\xEE\xCFu&gt;\x92\xEC\xDDc&gt;
+RkWY\xB2\x84$/\x95&gt;D\x82%͹9\xFF-S \xFF\xBFLmpwʹ.I2ZRi
+Z\xB6\xD76\xB6\xD7m\xE7me\xCDH\xFC\xB3B\xED\xA7e%\x89\xC0\xFC\x8F(6\xAE\xD4\xC9O\xB2)+کN\xBAB!\xC5\xFDq\xA6\x91\xE6\xC2J\x9D\x83\xC8ϲAFZ\xD53ٛTl\x83L0\xB6&quot;\xACu\xCFhgf/Y\x81\xA6'Mþ\xC4VV?\x9F%ۉw&lt;/i\x8D\x9EWٚJ\xA3\x9A\x8E\x85\xA3O\xDEhQ\x82\xCA\xE7\xF6\xDC\xFA\xC3c\xBBNv\xB4&gt;\xFA@5ٛ%ρ'\xA3\xBAV\xF2,\xECC˿xv\xF4 ڑt-I\x9Ak`\x91\x83\xA0x2\xB5\xEE\xD7\xD2\xE3\xC0\xA65\xEDw\x97\xA7,A\xA7c\xFE\xBF*&amp;\xED$8\xA5\xF9\x88$\xB9\xC2\xB9\x9E-\xC0\xD6
+\xEFy\x93\xD8\xEBM&amp;\xA3\x9A\x9A\xC6\xD0\xC0\xF2\xCFaͤH\xDE4\xAC\xC7\xE3w\x8Frރ\x85\xF3\xDA\xFD\x9A\xB2RH\xA5'MgZm5&lt;\xA6\xEB\xA7[;PyI\xBE\x9F\x8B
+\x9A\xB0\x8D\x86\xAF\xDDsS\x8C\xEE\xD4\xF0\xFC\xBD\xC32\xA7h:¸\x99\xA3\x8DXe\xA6\xFAi\xAE\x9A\xA1g\xDA
+\x8Fe\x8A\xD2=\x89=5\xA7\xFA/ +\x88\x92]\xC5\xFFF\xE3\xE4\xB4\xDFpό\xA8V\xFA[iT\xB2\xE4
+A9v\xC6&lt;;pO\xB1Ʃгھ\xE9\xA0\xE1\x90Ē\xE4\xAA@\xA4\xEDD6,)\xE1\xFD\xA7L\x8B\x827\xAC\x91oߜ\x91        \xEBC^_\xF7N&amp;\xBC\xCE5\x83#\xFE\xE1
+\xAEI\xB5\xDDi\xBCs8O~\x93\xF4]\x9Fr'\x8AWyjfDJl\xE9|\xADi&lt;8g\xE0Ѩz\x9A\xE1\xE1\xE9i\xD1DAY\xD8q‹        \xBF^vzg\xE8
+\xF2\x91\xE75\xF6B\xE8\xC33\xE8/ݗ\xE0\x93\xF6X\xE4\xB4'\xD01O)6 \x9BY+8\xADR&amp;\xEC\xFDi\x8E\x81{\x83\xB6&lt;\xF4u]\xF7\xBC\xB3rs\x963\xEC]\xED|0\xF0Z\xEF0h\xF6j\x85OI\xFCP\xEFp\xA5-AQ\xD4'\x8B\xF6ށ\x8E7\xD3\xC2\xCDi\xCA\xC4\xFA\xD1p\xEA\xEC\xA3][\x98K\xBAe\xAA\xAC'rLh\x8A\x82\xB7M:\xB0\xE8\x86\xFEx\xDC\xD3\xEF        \xEBb\xC4|\xC24Z\x9DX\xF6#\x8A\x93&quot;8\xD8&gt;?\xBDT\xDDn\xA7\xE0\x86\xE3幥kY\xE9\xE9\x8AeG\x9FʎW\xF0
+iqz\xB0;6\xC5sm\xB1\x99 *\xDFX\xAE\xBE_\xAE\xDAW\xCBi\xB5\xAAɊF        c\xAE\xD60ã\xFFC \xE2k|\xF1ٳ*
+endstream
+endobj
+
+38 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 32 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 39 0 R
+&gt;&gt;
+endobj
+
+1 0 obj
+&lt;&lt;
+/Count 0
+&gt;&gt;
+endobj
+
+3 0 obj
+&lt;&lt;
+/Type /Catalog
+/Pages 4 0 R
+/Outlines 1 0 R
+&gt;&gt;
+endobj
+
+41 0 obj
+&lt;&lt;
+/Length 830
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDAŔ\xC1\x8E9\x86\xEF&lt;E)\x87H\xE0i\xE8=-3\x99CA+90(h\xA7\xB9
+#\xF2\xF4[n7ɐL\xA4]\xEDa\xC5hWW}\xD5\xEF\xBAM7&lt;\xE9\xB6\xC1D\xF4\xA1\xAFn&lt;b=H\xF7\x8D\xE6-:        s,P\x96'\xCEx ү\xCC
+N7\x8D\xE6&lt;\x9D\xC1L\x9E #7\xF0`\xEC^:\xD8 \x8BǧPŊ\xE3u\xECT\xDAu&quot;\xE2Qu\xD2\xE9\xA0 \xB4l\x8EJg;
+\x8B\x83r.\x97\xF0|2e\xAB'I\xF3YĜފ\x92\x8E\x95B\xF2\xF3\xE1I\xED\x95\xC3Mk\xE9\xA4\xD1\xB0~]d9\x93;\xDE_\x85&quot;\x86\xAF\xC2kwFo\xD5\xB5S\xB2\xB8\x99Ys\xB0\x8A$\xDAs\x88&amp;\xDDC\x88\xEBD\xC9
+\xE6\xA6D\xFD\xED\xAE
+Ro`\xCC`\xB1Ύ\xC57\xAB\xB4\xC66\xBCi\xF8\xB8ݢ\xBD\xE9\xF2-L\xCD xQ. \xFA\xFB\xDF\xEBcY*\xA3\xE1=\x96k\xAB\xCE\xFF&amp;g֦\x80\xE7\xE6\xE2\xFD\xEC\xB9\xF5\xAE
+\xF3\x87;\xE8\x8A~\x8F*5z݂8\xCA$\x8FV0&amp;\x9A\xCFm\x98\xB26\xCC\xD0\xE6J\x97m\xB8\xA3?\xF3\x9E\xC1\xE7 \xA9\x89\xF0Rx\xA4\xB59\xEA5\xEEI\xFDOl\x8E\xBA\xBEHT\xFF\xE3\xDA\xD2\xEE\xA2_\xF8\xEA\xBAc\xAA&lt;\x97\xA6
+\xA3a\xCE\xE0I\xEAC\xA6\xD0\xC4e\xA9\xDA#,\x9CE\xB9Wz\xF7\xEA\xC5&lt;]\xFCh\x86\xA0nPVT&lt;I\x865ʀ&amp;U\xC3$L0x\xD4\xDB\xCA~\xEA\x84dX\x92\xD42\xD8\xF5G\xE8\x9D,\xB5\xE7Y\x84i\xCE\x8CM\xB9\xCErI\x88\xD3\xC7\xE9=\xA4\xDE$s\xDC)\xF2\xA3\xACfd\xB6\xF0\xDA\xE4U\xC6\xE8,_^\xE6DZ\x9F[q\xF6M\xEB֤\xAFʓ\xBF`\xB4εy)p\xB3\xF3\x83\xF8\x99p\xD9L3yt\x99\xB1%*Gp\&amp;u C\xA2\xC8\xFE2\x87        jrf\xB8^\xC8D\x96\x84\xFA\xA0HK\x9E\xFA[.\xC7v\xD9t*\xDB\xEA\x{123A29}\xF4IG\xF9\xA5@P\xFApt,ľ\x86\x88g!\x8C6K6\xFA\xB5\xA1c\xD4V\xE5\xAE\xEFuo\xAA w\xFDH\xF0^L\xCEݫ\xC2yC\x9EP\xAF#\x96ͅ\xD40\xA1kG^%I\xCCE\xFC]J({\xBF\x97\xAA\xF8\xF32 \xDA[`w\x8D\xF5\xC8**&amp;+\xAA\xBFJ\xC24\xBA*\xFC&gt;m\xF0hH\xB3JX\xBFG\x8B&quot;\xA6\xD5ѡ}7\x8B\x8Dm\x95-\xF2\xD9n\xDF^\x8F\xB1_5\xDD\xEE\xB0^\x904lE\xC4\xF5\xDA\xFA\xEF
+\xB8\xD2Az}\xFE\x8F\x94\xADxXxޖ.q%} \xFC\xFF\xA5t\xF7j\xE9 \xB9\xD1o\xE9\xFF]tN$\xECdʷ\xE5\xF2\x84WrE\xF2\x9BI\xFF
+-\\xE7\xD6
+endstream
+endobj
+
+40 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 41 0 R
+&gt;&gt;
+endobj
+
+4 0 obj
+&lt;&lt;
+/Type /Pages
+/Kids [
+6 0 R
+11 0 R
+13 0 R
+15 0 R
+17 0 R
+19 0 R
+21 0 R
+23 0 R
+25 0 R
+27 0 R
+29 0 R
+31 0 R
+34 0 R
+36 0 R
+38 0 R
+40 0 R
+]
+/Count 16
+&gt;&gt;
+endobj
+
+42 0 obj
+&lt;&lt;
+/Length1 54180
+/Length 31319
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xEC\xBCw`\xD57|Ιپ\xC9\xCE\xF6\xBE;\xDBf\xB3-\x9B\xDEH\x99:&quot;A        1D@\x84\xD8;X        ((vTPQTB5 V\xEC\xF4&quot;bAQ\x91\xAB\x92\xEC\xBEϙ݄r\xBD\xF7\xBB\xDF\xFB\xFD\xF9\xDD\xDD\xEC\x99sδ3O\xF9=\xE5\x9C        \xC2!
+*@ \x9A5\xFC\xECdQS0 z\xB6\xC1o\xD4\xF8i\xE3f\x8C~\xE7\xB3f\x84\xB0        !s\xDF\xF1W^ίX1\xEE\x84,\xA3R\xDC&lt;qƤik
+eE\xB9\xF7&quot;$\xFBt\xD2\xD4k&amp;\xF8\xCAx\x84\x9A\xFD\xCEE\xC6]X\xBD\xE4\xFA\xDFz\xF2V\xB8^\xD9EС\xB9\x8ETC\x9B^?xѴ˯\xFE\xADi\x82\xF6~\x84\xD4gM\x9D&gt;~Y\xECK!\xB4\xA1!\xD3C\xD3\xC6]=Cu\xBD\xF6j\x84^\xDF
+\xC7\xF33.\x9D0c۲\x85^h\x81\xE3\xD7&quot;̾\x8D!\xDC\xFBAY1\x8Cҝ\xD92\xE3\xD0Db\x90Ɉ\x82Q&quot;#,\x8Bеsg!飤Ű\xE9\x97LG&quot;\xE2\xD3]췩\x92?I&amp;\x89\xA7\xD3\xE9\xCCA@\x8D\xCCυ(}\x90:-\xA8i\x8A\xAB\xE6\xE0N3\xA0\xA1@3Ѝx&amp;^\x88\xEF\xE2\xBC\xA7Iy\x8D\xEC&quot;_0\x98a`ndڙ̣\xCC;\xAC\x96Ξǎe\xB3\xF7\xB1\xB3\x8F\xB3\xEB٭\xECg\xECw\xB2Ͳ\x97e\xDFˎʵr\xA7\xDC+\xAF\x92\x9F%\xBFX&gt;M\xDE&amp;\xBF\~\xA3|\x8E\xFC~\xF9r\xF9\x93\xF25\xF2\xB7\xE4\xC9\xC8\xFF\xF4\xCC\xF6\xFC\xC9\xEBx3\xEF\xE1\xFD\xBC\xC0\xF0\xC5|_\xCD\xD7\xF2\xFD\xF8\x99\xFCr\xFE        \xFEi\x9F\xCCg\xF4Y|~\x9F\xE0\xCB\xF7\x8D\xF4\x9D\xEF\xBBǷ\xCAO\xFCr\xBF\xCEo\xF0\x9B\xFD\xBF\xD7\xF1\xC7\xFC\x83\xFC\xE3\xFC$\xC0|!&quot;!m\x88 \x99B\xB6\x90+ \xC5C%\xA1\xEA\xD0\xD4ЬЭ\xA1\xDBB B\x8BC\x8F\x86\x9E\xAD m        m \xED \xBDz7\xF4Y\xE8\xA0P-\x88B_\xA1U/L.&gt;$;\xA4?d&lt;d;\xD4\xE79\xA2:Rp\x9C珗\xAF&gt;^{\xBC\xFEx\xBF\xE3#\x8E7\x9Fv\xFC\x86\xE3\xF3\x8F\xDFs&lt;ݥ\xEA\xCA\xED2tu\xF5\xEB\xDE\xD5\xD4uAה\xAE]Wt-캳\xEB]\xAB\xBA\x9E\xEAz\xBA\xAB\xA3룮O\xBB\xBE\xE8.\xE8\xAE뾭\xFB\xD7TW*\x9Dãeŗ\xE15\xF8m\xFCP\xFCU\xA0\xF8\xA7 \xEA\xA5\xF8\xAD@\xF1;\x98\xC7Y\xCC\xE6\xB2#\xD8\xF3\xD9E\xEC\xBD\xEC\x83\xECc\xEC\xB3l'\xFB){H\xD6!\xDB*\xDB-;\x92\xA5\xB8O.\xCA[\x81\xE23\xFE\x96\xE2G&lt;\xB3&lt;\xCBx-o\xE4\xAD&lt;/Q\xBC\x88\xAF\xEC\xA5\xF8\xE3@\xF1\xA7N\xA1\xF8پfߢ^\x8A\xEB\x81\xE2v\xBF'K\xF1V\xFF\x85\xC5\xF9C\xF1\xC6^\x8A/
+- =\xD5K\xF17\x80\xE2\x9Fūz)&gt;A\x98rK7*:\x82\x8F\xB0Gt\xC71P&lt;z\xBC(.o8&gt;\xE0\xF8\xA8\xE3S\x8E_{\xBC\xFD\xF8ǻ\xBA\x94\xC5 \xBB\xEA\xBA\xCE\xEC\xDDu&gt;P|Z\xD7e]wH\xA8\x97⻀\xE2\x9Fū%\x8A\xCF\xCAP&lt;\xFDP\x84\xC5i\xD0x\x93H\xEF%o \x94ҁ܉\xAF\xC4Sp[\xD72hO\xA6:\x92\x8A\xA5\xA2\xA9H*\xAAע\xAB\xD1\xE5h
+\x9A\x88\x86\xA0\xEA\xAE/\xBA\xF6v\xED\xEEz\xB3k\xD7\xFB]\xEF\xD2#\xBB\xE8\xBA\xCA\xC5]\x8F\xC2wq\xD7̮[\xBBn\xEE\x9A\xDCU\xDCB\xE8-}\xBD7\xA3\x84\xFBg\xEF\xBF\xE7\xAB\xE6\xFD\xB7\xEE\xFF\xF3\xABU\xFB\xAF\xDA\xFF\xF4,\x82_\xFB\xFE\xBE\xBAbߔ}\xD7\xEC\xDF\xF2\x8F\xD8\xFE;\xF6\xAD\xDAw\xEF\x97\xF7~\xF9ؗ\xF3\xFAr%=o\x9F\xF5˶/\xC7B\xAB\xE0K\xF1\xCB\xE2/\x83{\xEC\x{DFF7}zo\xE5޲\xBD\xC5{ \xF6F\xF6\xFA\xF7:\xF7\x9A\xF6\xE2=?\xED\xF9aϡ=\xDF\xEC\xF9\x9A\x9E\xB5\xE7\xD5=/\xECپ\xEE\xB2\xE7\x95=+\xF6\xAC\xD9\xD3O\xDF=\xF5{\x82{\xFC{|{&lt;\x8E\x8E.\xC7q\xC7_\x8E\xAF\xB8\xED\xF4h\xD9v\xC5J\xC5Ê\x87K*0إجxF\xF1\xA8b)ԓ\x8A\x98&quot;O\xA1\x96\xA7\xE4\xBF\xCB˿\x93-\xDF/\xFFR\xFE\xAA\xFC\xF9\xCB\xF2m\xF2\xAD\xF2-\xF2\xCD\xF2M\xF2G\xE4ɗ\xC8\xCBke\xC7d\xB7\xCB\x9Bb\xA7R\x8C\xC1\x97\xA0S&gt;\x8C'\xF3;\xA5\x9Dǜ\xD9\xDB~\xFD\x873\x87锶\x9F\xFE\xED\xDEW\xE1\xF71B\xEC\xB6\x9D\xBD\xFF\xF4\xBD\xEC\x82\xCC\xEF\xDF}\xD8+鏽:ۺ\xFD\xD7\xF6 \xB6w\xFC\xEC\x90\xFFǣ\xE3l\xD9i=SN\xC5\xFF\x87\x83G\xB7\xA2\xD9\xEC$t/:\x88\xE6\xA0;\xD0|\xF40z-Gjv܂\xA3#\xE8t;\xBA݆^B{\xD1\xCF\xE8\xF4\xFA
+\xFD\x8A\x8E\xA2\xC7\xD0\xD3\xE8u\xF4*z]\x80ƣE\xE8B\xF4\x9A\x80^C\xBB\xD0;\xE8M\xF4z} Z\xF0z\xEDFϢI\xE8't'\xFA\xBD\x8F&gt;@\xA1\xEF\xD0hh\xC9dt1\x9A\x86\xA6\xA2K\xD024\xB5\x81U\xB9]\x86\xAE
+\xBA]\x85\x81.]\x8B\xAEAס\xD0\xF5\xE89\xF4(\x9A\x89nD\xB3\xD0M\xE8{\xF4#ڌ\xEF\xC5\xF7a\x82\xCCb:\x8E\xBA\xF0\xFD\xF8\xFC ^\x82\xBAQ
+˱+Q?\x84Əी\x99\x8FbVc
+\xD6\xE2\xC7\xF0\xE3\xE8\xFA'^\x8EW\xE0\x95\xF8        \xBC
+?\x89\x9F«\xF1\xD3\xF8\xFC,`k^\x8B\xD7\xE1\xF5\xE8\xF4n\xC7\xF3\xF1\xBCo\xC2\xCF\xE1N\x9C\x83s\xF1f\xBC\xEB0\x87\xF5؀\x{1A3BF0}\x9B\xF0V\xBC
+\x9B\xB1/\xC0\xCF\xE3\xED\xF8\xBC\xBF\x88_\xC2VlCkP\xB6c~\xEF\xC4N\xEC\xC2n\xEC\xC1\xAF\xE0Wџ\xE8/\xF45\xFA\xF6b\xFB\xB0\xBF\x86_ǻ\xF0\xF8M\xFC`\xFB;8\x80\x838\x84\xFC.ލ\xDF\xC3\xEF\xE3\xF0\x87h \xE3&lt;\xC1Qt}\x83?B\xA3}\xE83\xF49ڃ\xBED\x9F\xA0/\xF0\xCF\xF8\xFEl\xF1\xAF\xF87|\xC3\xFF\xC4\xE0?\xF1_8\x86\x8F\xE3.܍S8vLa (\x88\x92\xA8\x88'\x88\x86hI\xC9%:\xC2=1#1\xE1|b&amp;\x9C\xC4\xC4Jl\xC4N\xC4I\\xC4M&lt;\xC4Kx\xB2\x80\xF8\x88\xE2&quot;\xC0\xC5$HBD a\x92G&quot;$Jb\xE462O\x96+ӑ\x9F\x99\x9B\x98[\x98\xD9\xCC\fs;\xB3\x90Y\xCC\xDC\xC3&lt;\xC0&lt; \x9E\xC1
+\xE6If5\xF3 \xB3\x86Y\xCBld63\xCF3/2\xAF0\xBB\x98\xB7\xC9\xE6=\xE6#\xE63\xE6 \xE6+\xE6\xE6;\xE60\xF33\xF3 \xF9\x85\xFCJ~#G\xC9\xEF\xE4\xF9'\xF9\x83\x913n\xF2'\xF9\x8B']\x8C\x9A\xD10Z\xB0\x84\xEC1\xF01\x96\xB3+ؕ\xEC\xEC*\xF6I\xF6)v5\xFB4\xFB X\xC15l\xBB\x96]\xC8v#\xBB\x89}\xEC\xE2fv \xF8#\xDB\xD8\xE7\xD9\xED\xEC \xEC\xF6E\xF6%\xF6ev'\xFB
+\xFB*\xFB\xFB:\xBB\x8B}\x83}\x93}\x8B}\x9B}\x87}\x97\xDD;Ǿ\xCF~\xC0~\xC8~\xC4~\xCC~V\xF53\xF6sv\xBB\x97\xFD\x82\xFD\x92\xDD\xC7\xEEg\xBFb\xBFf\xFF\xC1`\xBFa\xB2߲\x87\xD8\xEF\xD8\xEF\xD9\xD8\xD9\xC3\xECO\xEC\xCF\xEC\xF6\xF6W\xF67\xFC|\x80=\xCA\xFE\xCEc\xFF\xC9\xFE\xC1\xFE\x89֢u\xA4\x97\xA0\x8Dhz\x83֣
+h'\xBA\xBD\x88\xE6\xA2\xDF\xF1\xB7d{x\xA6\xA0à\x87+\xD0]\xB8-\xC4\xF5`\x87\xEE`1\xBE
+u\xE2\xEB\xF1a\xFC;\x83mcg\xB1\x97\xB2\xB7\xB0\x97&gt;\xDD\xCA^\xC1\xCEf\xAF\x8C\x9B\xCB\xDE\xC6\xCE\xA4\x9B\xCF^~\xD8\xF6v\xF6v!\xF8\xF7\xB0\x80\x87\xB0\x84}&lt;\xB3{\xC1?\xBB\x9F\xBD\x9E}\x84]\xCA.c%_\x92}d?\xF9\x8A|M\xFEA\x90o\xC8A\xF2-\xE3f&lt;L)S\xC6\xFC\xC6\xBC\x96\xA3\x8C\x93L\xA0 \xA7! \xECdX\x99\\xA1T\xA95ڜ\\xA77Mf\x8B\xD5fw8]n\x8F\x97\xF7\xF9\xC1\x90΋Dc\xF1D~\xB2\xA0\xB0\xA8\xB8\xA4\xB4\xAC\xBC\xA2\xB2\xAAOuMm\x9DX߷\xA1_\xFF
+2\xF4\x8Cagoq\xD6\xD9#\xCFu\xEE\xE8\xA61\xCD絜?\xB6u\xBA`\xFC\x85&amp;N\xBAh򔋧N\xBBd\xFA\x8C\xB6K/\xBB\xFC\x8A+\xAF\xBA\xFA\x9Ak\xAF\xBB\xFE\x86gκ\xE9\xE6[n\x9D=g\xEEm\xF3\xDA\xE7/\xB8\xFD\x8E\x85\x8B\xEE\xBCk\xF1\xDD\xF7\xDC{\xDF\xFD&lt;\xB8䡇Y\xBA\xEC\xD1\xC7_\xBEb\xE5\xAB\x9E|j5\xF3\xF43Ϯ\xE9X\xBBn\xFD\x86\x8D\x9B\x9E\xEBܼe\xEB\xB6緿\xB0\xE3ŗ^\xDE\xF9ʫ\xAF\xBD\xBE\xEB\x8D7\xDFz\xFB\x9Dww\xA3\xF7\xDE\xFF\xE0Ï&gt;\xFE\xE4\xD3\xCF&gt;߳\xF7\x8B/\xF7\xFD\xCF+\xFE\x9FW\xFC?\xAF\xF8^\xF1\xFF\xBC\xE2\xFFy\xC5\xFF\xF3\x8A\xFF\xE7\xFF\xCF+\xFE\xFF\xBBW\xCC~ \xBF\xBB\x90\xB6\xE6\xE8\x9Cޗ\xFD}M3\xAEt\xAA;\x9D&amp;\x9Fڌ\xCC\xFE2\x9F\x91\xF0\xBDG*G\xE2a\x99- ȇ\x80wڌ\xC4\xC5\xF8@&quot;\xE9\xA0\xFFC`+£Q5\xE0\xD1U\xE8#tN\xFA\xE8\xF5z\xFD\x8C\xE2\xA8]\x94N!=`C
+߀\xEF\x9C\xC0Y\x803\xD0&quot;R\xCD\xC4\xD8\xC0\xB6Dq\xB3ߌp\x95\x91\x80wV\xF4.\1\x9AVC{=Ht5\x9C5\xBDɌU\xC6\xD3\xE9_\xF1vW\xFA\xF4\xAE&amp;\xB3\xCF\x9A\xC6~\xA5nI\xCFO/I?\x84r\xD1Q\xC6\xDD\xFDr\xBA0=
+\xCE:\xB5f]#\x98\xF8\xF86n&quot;5\xE4\x85\xF4&lt;\xD3h\xC3L@\xAE7q\x8CEl+2\xA0\xB3\xE0\xE8[\xD1\xFDh3\xDA\xC8\xF8)\xE814\xC9ó\xA8\x86\xCBP\xF7\xCE\xD4\xCE\xF4\xE0\xF4\xE9\xE9\xA8?:5\xA2Y\xB0\xD7
+HPO\xC60c@W&gt;\xE9\xFEGj\xDA\xD7        y5`\xE3B\xC0\xDEՠ\xFF\x9F\xA1= \xFCj2\x92\x9C\xC3&lt;\x83\x9C\xA8\x8Dd\xBEh\xF6Prڇ\x95\xB8Wa\xCF\xC1O\x93+Y\xA6{'X\x99\x81\x82\x83$\xEA߉\x96MWf\xED\xCC~\xAE\xF9 Д\xFC\x8A\xE1s\xF0y\xF8&lt;߁\xEF\xD4|p\xF2\xC0\x8FO\xC1\xF3\xBC        \xF4\xE4\x87\xD4\xC7iu\xFA\xC1\xF4\x93p_'r\x81\xA7\xCET\xA03\x80\x9Fo\xA3\xEF\xE1\xF9\xA2\x80=u\xF8}\xC0\x858\xB6\xB6;\x95*NL\xCFL\xBF\x92\xFEP\x8E\xADA\xFD\xE0\x99\x87\xA1sa\xD4׀\xED\xD9
+\xB6\xE5m\xF8\xBE\xB6\xE9\x9F@%\xD0\xDB\xB4\xE0\xCF\xC2g\xE3+$\xBC\xFEw \xF0\xAF\x82L%\xEBȇL\x8Cy\x9B=\x97}\xB6{CʜZ\x97\xFA&lt;\xB9\xD5\xE9\x8E\xF4\xCB\xE9\xB7$\xFE\x96\xC1}\x80-`i.\x938\xB6\xEE\xF3
+\xE0\xE9w\xA0e\xAC\x86\xC6:\x85\xE7\xBD\xAE\xBFw\x818)ɍ\xE4i\x92fj\x98E\xCC.\xD6\xCEޟ:35-uj}\xBA$= d\x8BA2dG%\xF0\xADi:5\xC1\xB5oj&gt;\xB6r5h\xF2[\x80\xD4?a \x8CG\xE1Ѹ_\x84\xA7C$Ն\xAF\xBD\x9D
+\xF6gؐ\x8F\xF1\xFC\xE0\xB2P7\xDF\xF1\xE4f\xB2\x98l ;\xC9\xC7\xE4`\xDB\xD9\xCCh\xA6\x8D\xB9t\xB3\x9B9\xC4r\xE0\xB0\xC3\xD8V\xF6\xF6Z\x921r\x8B\xF2\xAD.k״\xEE \xBA\xEC~9\x95\x9Fꗺ85?\xF5b\xEA\xE3\xD4\xD7iM\xFA\x85\xF47H\x8E
+`\x8CM`\x8F/\xAB:S\xB2\xFAKA&gt;\x9E\x821~\xFB\xE0\xF9\xAF@ \xAC\xA5F\xEC\x95\xF8\xD6\xE3#?7\xE1\x89\xF0\xBD\xFC\xDF+@fW\x83\x9D\xDC&amp;Y\xBB]`\xB9\xDE\xDB\xF33X3ɇoЂs\xC8Dx\x86\xC9j\xD2A&gt;\x83\xEF\xEF\xE4OF`\xE2LS\xCC\xD42\xAD\xF04s\x99\xDB\xE0y\xEEc\xF62߰\x845\xB3\x85\xEC\xD9\xECL\xF65#\xBBPv\xAFl\x89l\xA7\xECu\xD9\xF7rNޜň\x91\xA780o\x91\xD9Zf*x\x8D\x84a\xBE'\xEF\x93j|9\x8E\x9F n\xFC&quot;\xDC\xCD\xCD42\x8D\xA4\x81\xF4\xA3\xB7\xA4|2)\x96@\xDC\xE3#&amp;\xC4)Z\xE95\xC8$\xC1\x9C\xCB
+\x8C\xBC\x8EFh\x8F!sH+Z\x89\xB7\xA1\xE3dHڕ`\x8F\x96\x91\xB1\xCC\xF6.\xB6\x82f\xC2=\xC9\xC1\xC7P=\xAAǵ\xC0\xBBPp(\xC1\xACaߑ\xFCc%\xD3%\x9BFr\xD2s\xD9oe\x84yp\xB0\xE6
+&lt;\xBA\xEC鋸\xB9\xA0\xCD\xE1ð \xF8H\xFEf|.\xAA`\xF73 \xC8\xB2\xFA\xA6\xA2\xC5\xF8Exƭh*ي\xBET\x80&gt;^\x8A\xF1CL!\xC4\xDFm@\x8DJ4\x85܍\xFCd\xF1\x83&lt;\x9F\x83~\xC37c3h\xEEq\xE0M\x90LD,\x93CƣIp}76\x90||#\xC8\xE944\xB7\xA38\xF8;\xD0[\xE4NT\x86'0ۻ\xEC\xDDyw\xC6k\x99Ah-&gt;\x96oa\xE1J/5 =D\x90\x90\xC7#\xCE\xCD\xF41HM\x92:k\xD6xғ\xDF\xF1\xF5d*\x9A\x8C\xEFg\xBE\xC3+H=\x8E&amp;0\x97\x91\xF8\xDE\xD4\xEFl=S \xDBh\xD2 \xAFT&quot;Y\xB5\xCC͖ǿE\xB5 \x8D\x93\x92_\xC4\xEE\x93\xDDL\xEB\xCC\xCC\xD1tSڗ+\xCBM\xED\xF03\xE0\xDD&lt;ti\xFA\xFC\xAC\xF3\xF16M\x86\xB2\xE9\xF4(\xB4\x9A\xACa\xF7\xA6\xAD\xE0\xD7\xF9\xD0{iа\xD4F\\x8D\x83i\xB7\xA55xH\xF8\xF9\xF2'\xBB\xCB7\xAC\xE1\xF5`\x9B\x8Ej\xCEAw\xA1\xC1\x96~ޮ\xF0\xA7\xC6?\x9D\xD83lD*B\xA5\xF0t\xB5\xA8/\xA0\xD2`\xD8׈F\x9E\xB6JNo\xB5
+\x90\xF7a\xF0ׂ\x85
+\xF48Λ\xFElh\xD5Up\xF5A\xFF\xE7\xA2\x80\xF7\xA2\x95\xE8=\xF2Y\xCA\xF8\xC0#z\x85\I&amp;\x83\xC7\xF69\xF3#\xE2Q\xE8C\xB0\xC93\xD1\xD9(\x88F`#ܹ\xB8\xE4\x85\xF3\xA4?\x80\xBBE\x90п\xB4\xE4&gt;\xFDC\xFA\xE3\xF4\xAA\xEEw\xE1z+a\xECw\xC9\xFB\xA2\xE4
+\x89\xF5#źښ\xEA&gt;U\x95\xE5\xA5%\xC5E\x85\xC9\xFCD&lt;\x8D䅅P0\xE0\xF7\xF1^\x8F\xDB\xE5t\xD8mV\x8B\xD9d4\xE89]n\x8EV\xA3V)r\xCB\x8C\xE2\xFDZ\xF9\xA1\xB5\x83\x83%h;0:Ɲ\xD4\xD1\xDA\xC1C׀S\x8F\xE9\xE0[\xA5\xC3\xF8S\x8F\xE1ȉ\xA7)f\x8E{\x8F\xC4_\x8D\xAAq\xBE\x80\xEFx\xBB_\x80\xEF\xC4cF\x8C\x86\xFA\xED\xFDM|\xC7a\xA9&gt;L\xAA/\x92\xEA9P\xF7\xF9\xE0\xBE\xBF\xED\xA2~|n\xE5\xFBw \xB8\xF2\xA2\xF6\xFE\xAD\xFD\xE0rk5\xEA\x86@\xC3u&quot;\x8E֪5P\xD5@\xAD\xC3\x98\xB1[k\xB1T!\xD6\xFEUk        R\xE6\xC0\xA0:\x81~\xFD;\xEC\x81~tL\xA8\xFF\xB8 ;G\x8C\xEE\xDF\xCF\xE9\xF35%\xE2\xB8a|\xE0\x82\xE8ۡ\x8BI\x87\xA0\xE96\xF2\x86\x85t~2}4\x9F_\xDFѾ\xA0\x93C\xB4ƴ.w\xDE\xE8f\\xBD\x87&gt;\xF7\xED\xD7a\xBD\xF6\x80\xEDD.nh=\xF7\xE4\xBDN\xA6\xBD\xBFm2O\x9B\xED\xEDs\xF9\x8Ee#F\x9F\xBC\xD7G˦&amp;\xB8\x9CKBZ\xDB\xC0\xAD\x87\x9E\xCD\xC3\xDD\xC8\xEC\xA6\xD1x6ܒ\xA7OB\x9F*\xF3|\xFDiO\xEB\xBEC\xE8\xB8\xA8}J+\xB0\xC6\xD1ށκƷ\xCE\xE17\xA7\xF7#G\xBE}\xE4耯\xA3\xCEh\xD7ϵք\xDAϺf\xBD]\xE4\xED\xA7\xEEI\xC4\xD7r\xFA a\xD7\xE6\xEA\xB2m\xCEɕ        \xBD\xFB\xA4\x9At8\xAD
+=\xAB\x97\xB2\x98\x8E(0\xA2\x83\xCF\xC3HF\xE0\x99*h1\xA1\xB5\x8F\xAF\x80\xC3\xE0ӄᬎ \x81#\x93;T
+\xAD\xED\\xED\xA7\xE7w\xC8B\\x80o\xFF&quot;\xAB\xD6\xC0\xE1O\xED\x97푇\xB8\xDF\xADR9\xE95\xD8\xDFS\xEF\x88\xC5:\xA2Q*&quot;\x8A\xE0)\x8C\xB1Vj\x97&amp;\xE2Wv\x92Ɂ jڎk\xAAJ\xF9}&gt;\xCA\xE0\xF9\x9D&quot;\xBA\xB3F\x8Cδyt\x81s\x93\xB1\xA6\xD2J\xF7\xEC\xE8\xD9c&gt;\x87\xEE\x99ճ\xA7\xF7\xF4\xD6H\xF2)\xA7l\xEEP
+\xBD:\xCEb\xECQU\xB6\xFC\x87\xDD2\xFB\x87\x9E:b\xCCh\xBE{k\x96\xB6CG\x9E\xD2\xCA\xEC\xAF\xE8ݗ\xADuF3N\x92\xAD'#\xED\xA1&lt;\xAF\xF7`\xDA\xAD\xED`C\xF0'\x97\x84\xFA\xC2N\x85\xA4R\xEA\xC1\xFC\x80\xAEuP\xA6lR\xFB|\xFF\xE5I\x9D\xE9#\xF4,is\xE2\xB4\xEC0;\xAAb\xA7\xB6\xFB\x9C\xD2&gt;ex\xDAv\xCC
+d\xE8\xC81\xED\xED\xEAS\xF6
+jo\xE0\xB4\xB7\xB6\x8F\xEBLϺ \xC0s\x81\xF6\xCD\xE0x\xED3\xFA\xB7\xF6p\xB43\xBDe\xBE\xB3c\xC0\x82&amp;x\x88\x8BpH+A}\xD7\xF0m#֊\xF8\xB6\xB3nj\xDE\xCC!\xC4\xDF6r\xF4:piZ\xFB6\xAD
+¾ћy\xC0\\xA9\x97\xF4\xF6\xD2O[h(I_#\xDD\xE5\xDC,&quot;4K\xDA\xCBJR{|'FR\x9F\xB2\xA7\xA3\xF1\x9D$\xD3\xC7I}\xF0I\x80\xC7B}        \xBA\xF0\x85A
+4`\xAD\щ\xB5\xA0W\xC6\xD2
+\x83\xD4rT61 q\xA8\xB4oFv\xE5\xF0\xEBl\xB13\xB9\xA3\xD5ú\xAB\xCF\xE4\x8EU㺫Q]uw5\xFD\xF8\xF4&gt;}
+ \x8E\xCF\xEC\xE8i\xEA\x84gw\x80\xE3\x83HM\xBE\x96\xC9 \xB6\xF0\xA2\xE1\xA2\xEEc\xCD7\xA2T\xA8\x87\x8D\x97;\xE0ω\xC6\xE4\xD0X\x9E\xE5j\xB1\xBA\xD6\xFD,nF
+\xAC\xD8F\x83\xBF\x9F\xC2g&quot;[\x8C;\xD6r\xF8\xC0\xEE\xC0TWw\x98;\x8C\xF5\x86J\xF8+,G\x97\x91\xCB~!\xCC\xA5%e\xC5E`\x89\xA9\x94\xA0\xBA\xC8s\xB1\xEA
+V&quot;\xC9@ B8VS\xA5{W\xF7\xDE\xE1\xE0\xC9J\x9BƟ\x9FPw)kb\xF1\xEA\x9Ah\xA2\x9A\x8EYM\x9E`^d\xDFGJu\xEB\xDA\Y'\x99#\xAA\xB1Z\xA5\xAA\xAA?Qm!ˑ\x86l\xB5\xBC\xFE\xFD\xBB\xFA}\xFA\x9F\xF52\xFDlA\x84l_\xAFo\xAE\x93,\xDFX\xA0\x9C\xAE$\xCAm\xE4\x88\xCF~\xC1\x8D\x99\xE78z\x98놧9z\xA8W\xCDUE\xE11|٧8Q\x81{
+\x90\xF3v;/Ǔ\xA4\xAA\xCD\xC1\xCB\xD8\xF7S\xC1\xEB\xF0\xC1\xCCb\x8F\xAD\xE9Y\xBD\xAC/HED,n46\xBA\x96\x9A\x96:ט\xD68\xD68\xD1 !4\xB8^,\x8F'ʚ\x8B\xC6\xD2\xC1\x9B
+\xFB&lt;4\xA2T\xDC.c\xF3\x90\xCE\xF4\x8Eu\xFERi\xCCl\xDC\xD2f\x93\xB5t\xC8&amp;k\x8Eu\xAD\x9C4\x8C\xEDkd\xCBp\xBFebdY\x82_\xC4\xCDCQ\xF3 \xB1\xB9\xBC\xAE\xB9\xA2\xB6\xBCdP\xC9\xD0\x83\xBAY\xAFj\xD6\xD7\xC4\xE8\xBD%\xD1_j-UPѕ\x8E5`C'i\xC3\xF2\x9BK\xCDe\xA1\xE6\xC1\xC1\xE6!\xA5\xB5e%\x83K\x87\xE0!%Fg\xB3i\x91m\x99\x8D\xB8\x9AM\x8BL\xCBL\x8C\xA9\xD6C5p)θȸ\xCC\xC8\xB7\x91_\xC0_\xFA&lt;/\xA0\xE3і؏-\x87[\xB8\xC3P;z\xF4G\xD8f\xBE\xD0\x9F\xA5\xEAѣ]=\xDD2\xDF&amp;\x94Lr\xDD\xF4\x88\xEEj\xFA\xE1\xA4R\xEA;\xB9҂{ňr$,\x94\x96{j\xE5ƌh\x9F\xA8\x94\x95\x83\xA4`N\xAAeN\xF7 $\xE1
+\x8Fz\xCF&gt;E\xBDݷ\x9D'6\xCE`\xC7\xFCڻ\xD1\xF0\x90\xD7\xE1\xF0&gt;\xE6\xCBv&gt;/\xE5\xC0\xBE\xF5to\xEA\xB7\xE7\x8D\xDBɁ\xD4V\xA3њ\x8A{l\xACΡ\xC3\xD1~\xAC\x94\xCA\xDDv\x96\xB3q\xA9\xA25\xE9\xAC?@NR\xE9}L\x8A\xA5qj=:&amp;V]\xAF\xB8^u}\xE5\xF8-^\xD6':\xAA`R`R\xF2:ŭ\xB5\xF3\xEA\x9FT&lt;V\xFBr\xAD:\x98\x8C\x88\xA5\xC9*\xB1E8\xA7J,(, T\xD6n\xA8*\x8A:I\xA7XXZ\xBA~E\x85E\x85\x81@aa\xA9L\xB0\xB3&gt;\x88 XU\xA0\x92\x89\xCA{\xAB:&amp;\xBF9:\xB1c\x83'.\xEA\x82[\xF1B\xD0j\xCC\xC8DkR\xD7\xC5M\xB4\xD4\xD1\xE0k֮\xAD\x8E\xCB\xED}\xD9f\xEB\xC4\xC1\xD9i\x86\x81\x8EP\xA4Au\xC3\xD7Uu\xD8ے\x8E\xC3G\xAB\xB9àΕ\xD6J\x9C\xD9\xCC͏\xE5\xDE\xC0\xED\xB4!%\xD7]c\xA8L\xDA0\xF7K\xF2\xE8ι\xB4s'l\xB8\x9D\x94\x9Fm-\xA8\xC5\x96g\xF8U.d\xC1šA \xB9B!\xBF\xDCl\xB2\xCB\xCA3]\xF2\x80\a\xCD\xF2\xCBa\x97\xA5\xB8\xA8\x9C)\x8E\xB9\xE3\xEAM\xD7M\xE2\xBEw\xB2\xBF\x9F?\xA6\xD6\xDBs\xCD\xF5\xDEz\xFFIc\xD5\xCE\xF28t\xA6pAm\xE5@\x89u
+#\xC7\xCF&gt;{\xC6\xE0\xF1\xB7n\x9F7e9\xD5м\xF1\xF7\x98\xCC\xBBAk\xD2\Ήu\xF5 S /\xBB\xCFfȱ(\x9Fle5lDm\xBA\xEE\x9C        w܈\xC6_\x91\x85\xE4\x88b\x94(&quot;r\xB2M\xD0\xF5,\xB9 =\xBBP\x99\x96@eR\x9D\xC7݀\x8C\x87O\x92\xAF(h\xF8l\x80\xEC\xB7ݿE}\xBE(\x9D`nIuA4\xF9-r\xA2F1\xD1F9&quot;\xB3\xE6\xD5\x8B\.\xE3\xAC\xA3\xB9\xD6(\xA6R\x97\xE5\xE2@l\xEC\xAE7\xB6`\xB2a\xBBē\x96aݔ\xDC
+\x80 \x98r\xA1\xB2RR\x98\x83\xA1&lt;CO\x85\x9C\x98M\xABD;X i\xA9~*\xAC\xCD5\xD8\x97\x9C\xFE%
+\xBB!WZ%\xE2_/\xC3\x9F\xD0\xD8\xF4j\xED\xA9\xCE\xE5+R\x9D\xBB\xB4@R\x8DI\xA9.23;ڈ\x8A\xA8vbw\xB0t\xC4*\x83\xDCj\xE1dr\xADZ
+\x83\x86\xF1\xEA\xC0\xB8\xE4p/߂\x87\xF5\x8C\xF7\xEF\xB04\xDCSFk&quot;D\x91\x87\xF22Ci                gD\xC2j1X\xC8̿\xED/\x97\xA5ҩg\xFCZ;\x8Cv\xB4|\xF4\x8C\xACGj\x8C-B
+l
+; \x86\xD1,ڛ\xBD^\x84\x94\xA6'\xB8f\xF6        \xA5\xAEY\xA5R\xBA\xF6\xA2f\xA5\xB5Y\xAF\xB75s\x9C7+ʽZ\xAC\xB5\xF3\xCAƛl1\x94\xC4\x81%\xFAn\x80\xAB\x9CD\xEE\xEE\xB5\x94\xC3z\x934l\xBD/=&gt;}\xC6\xEC\xE9}Y%w\xDA@\x8ER \xA8\xE2\xCBi_N\xEBě:O\xEA[.A\xC5c\x92\x80\x9EO\xEBT\xD6b\xA9\xC9{8D\xAAX\xB4\xBD\x84\xDEG\xFB\xD1\xB0\xE4\x9BX\xFCy\xBD\xAFSxD\xB1
+ߏ\xD4hv\x9F\x90\xB9\xE4a\x89\x98&gt;\x9C%%ށ\xF5\xA9O\x9C\x82=\xC0\xE0\xFC\xEEO\x8Bv\xB5\x96\xAEa\xD8B\xAC\x91\xCC\x8F\xC3!j\xD1\xE0\x93\x8C\xD8\xD9\xF1\xAB\xA9Kq\x80;\x88\x92\xC3\xE8\x85̾R\xD6\xD8\xF5\x99y\xF5\xD50\xA6\xB7\xD3_3\xFD\x82r\x90 ,\xEF:\xA5\x86\xFDTcϝ\xB6{\x90-\x83\x92ȇN5\xF7\xE7+G\x94\xD3\xE2\x97\xE1Ug\xD2\xDC\xFF`\xFA\\xE6{\xD94\xE9ib\x95Je\xC1vS\x81*U\xF0`U\xB3\xEAbՕ\xF8j\xD5&lt;\xE5&lt;ս\xF8\xD5
+\xFC\xA4jڄ_ûT\xE3\x83\xF8;\xD51\xFC\x87ʪQaM'~}#\xA3\xA9EͪN\xBCլ|&gt;\xC9`\xE6}'޺v\x9Bd\x96\xBA\xB5\xB2tiki\xC1\xBD\x84)\xCB:'\xFB\xBB\xCF\xD3;\xF5v5y\c\xCA\xD5\xDBe\xC1\xBFF\x87\xEC:\xADY\xB6ʚk\xD7i@\x84\xBF\x81\xE7&gt;$\xA3\x99\xBF$~f\xBD\x81\xA8[ҿ&quot;&amp;}t]B\xA9WA=/}\x85\xD3\xFFD\xF8\x99\xD3\xFF\xDC\xE4\xCAU\xE5*sɖ\xF4\x88K\xFF\xBAΝ\x9B\xA0gDӿ\x8A\x81\x88̕\xEB\xCD\xF5\xA6)=.\xCA\xC7aY\x8E?\x90\xEB\xAB1\xC4kd\x99,\xC7Q\x9E\xCA[\x9B
+\x835\xB9\xF6\x82G\xB7`9\xA8N&lt; \xBF\xDC1\xA0p\xB5\x9F\xA04\xD4\xE3\xAA\xCChO\xC35\xE2\x92\xCF        6\xBB\xD5n\xB1\x9B\xED&amp;\xBBL\xEEr\xBA\x9D\xA7\xD7\xC9\xCA\xC3B\x9E\xA2+\xD7h\xD5Z\x95V\xA9UherF\xF0\xEB\x83&quot;\xE2\x8D\xC7\xE4!%ؤ\x88:\x9F\x88\x9Dv(m\D\xF9
+j\x9D1-bQ\xF8\xC4nB\xD9\xAE8\xF9\x81h\xD6{\x8C\xF6:\x93Go\xAD\xD3\xD3\xC2\xE2\xF1\xEA\xFC\x9D\xE9\xE3\xA2\x95\xB0ɥ\x87\xC2\xC9Aa\xD7Aaͭ \xD0&quot;l\xB2\xE4@
+\xC6\xC71\x83\xA6.\xA1\x86\xC2Bkn\x93\xDDG/\xF2\xA3h\x85\x8A\xCEd\xF5ҳ\xBCuD\xCD\xE9k\xAD\xB4Ȍ\xEE\xD4v6s\xA6\x84\x81: \x9C\x87V \xFC)J\xA0' 6\x86\x98\xC1\x92X\xE1[\d(e\xDD4\xE1\xC1!\xB7\xE4\xBB\xFB\xEB\xACPzs\xBE\xA7g\xD9\xB5\xE7U\xBC}YC̖W9h\xC12\xB2gw\xEA\x97G\xAE\xEFS껫f\xD4e\xBB1G\xEB\xFE\xBB\xAAGͼ\xEA횀=\x90ڿc\xF3U\xEF\xD4\xF8\xEDA\xEC\xDBA\xB5\xED\xB8\xF6\x87\xD8?7׮3(\x9D\x9D\xE9?D\x9D^\x8E\x94*\xA7\xE8l44:Y\x95n yi\xF1Q\xC5i\xB5:n\xBBJIh\x8F z X&amp;#x\xBB2\x9B\xD6Q\x9C\xA6-\xE4\xA4'\x93\x9EC2\x95Rk'\xA6\xAD\xE4&amp;\xF0\x8A\xAD\xE4Q\x8D&amp;\xE9\xF5xx\xF2\xDC\xF3dr\xA1G\xF1;        \xA2{5\xD7
+n\x98\xBE\x87K\xE6\xF5\xDA\xE8ߏ\xEE&lt;\xA5QX\x80Z$.\xF7Y/\xBE\xC9z`\xBA\x9C,\xC2&lt;ŭ\xEE\xA9\x92\xF1\xA9\x9FL*\x9D]\xAD\xB4\xB3?\x8F\x9AO\x9B\xC1he F\xC9\xEDz]\x8E\x92z꫁\x9F\x80.\xC50\x9Fqc\x9Fsjb2\x9C\x95NܼQ\xAD5\xD5\xF8e\x80&quot;u\xDDtp\x85\xCE͠S_\x8Aqg\xB0d\x90\xEE\xDA\xDC9\xE19ys&quot;+\xF3VF\xB6j7DU9\xB5\xA5T[e#\x81\xA8'f
+{\xF2`ɩ\xA4\xE4|o8l\xF9\xCB\xD0ma\xF3\x94=\x94\xDC\xFB\\x96\x90\xB2\xE7\xF1V
+\xCEPkޠR\xA9\xB5\x8EN\xFC\xE7\xE9\xDE[!\xD6\xA5\x87~\xE5W\xFA\x9AP}\x99\x8E\xC8
+\xBD8^C\xA6\xA18\xBE\xB3G+\xB9cG\xA9RBA\xA1\x9C&quot;0 eɈ2d\xEDty\x83\x9B%\xC4 f\x9FMDƀ^\xC4V\xAFIĆ Y\xED\xBA\xE9\xA6 \xBD\xE1\x83\xDAp[\xAC\xA9ܗ
+\xA0\x85\x83嵤\xB4\x84\xBAD
+y\xD6Jf\xF1K.W E7\x99M
+Kׇ\xFD\xDA6\xD2\xFB\xECu\x97&lt;e\x97\xAB\xB4\x9C\xDE:y󸇿\x9A\xAFL}\xBAe\xA4\x8F2\xE9\x8A\xEB\xFE4\xFD\xA2\xE1ySW\xDE\xD8bS\xA8\xAD\\xC1\xF2\xF3?o\xAFw\xD9婽\x8FRY}9\xFD5 \x84B\xC0\xF8\xF5S+0\xEA\xD4*.**\xD5W\x87\x84*.E\xF2\x99\xBE9\xF7\xB0\x8BK\xEF\xADXQ\xBA\xB2b\xB3q\x8B\xF5M㛦\xB7\xAD{\x8C_X4\xFEeM'\xF5\xF4\xBC\x8D&amp;?0N\xDF        tA%\xA2\xD4ibyz&amp;        \xB1!Y\xC0\x85\xEC&gt;O\x88ہ\xF5\xEBy\xDE\xEFķ\xAFj\x8Asa\xBB\xD1P#Ԕu\xE2Qm\xAEa\\xAEJ\xC6Q\x95\xDC,p\x91\x9B\x9E\xD3\xD8+\x8Be\xF2\x9C\xB7\xE0YF,Rc=\xEC\xC0\x813\xB9\x83@\xFBa\x8D\xE7(7\xBA@\xD4J
+\x97\x92\xC8ß&gt;\x9A\xAE\x92\xD2`\xC8hbe\xA1\x92\x80\x88\x8D2\xB3\x88\x83\xA5\x82\x88M\xAC\xE2w\x89/7\xC16-m\xA8\xA2
+[2.\x94\xD0\xEB\x9C\x95_\x84l\xD8a\x95Z\x97zt$\xC3$\xC6x\xF9\xB5\xBFwN=\x94\xAF\xB3r\x9Ci\xC93w\xBD2nS\x8B\xC7a\xB7j[\xFC\xE0\xF5\xE7\xDE\xE7\xF4\xBD\xED\xDCk\\xFA\xD6du\xC9\xC6 \xEE\xFB\xF6\xBC\xCE\xC0\xD9t\x97=7c袳\xA9.\xE1\xF6\xE6\xF3U\x97\x98TV.\xAF\xE6\x9Cny/ئ\x8F\xA9&gt;\x81G\xE6F&gt;\xF4\x9E\x98\xF6\x9C'\x9F\xCC\xEDuY\x80\xAC7\xB9\xDD\xDB-:\xB3\xA1\xB7\x8A\x86\xDC\xDC\xEDf\xDE\xE7\x9BD]\xE0\xF3\xF2@\xF8\xE7\x86\x95\xF9&lt;9\xA8\xAFC\xB9`|\xC0^\xB9]T
+,H}3\xD3InuX\x96;\xC9\xED\xF6&quot;\x9D\x83*x\xB6\x90K\x907\x8B\xD0!l\xF7\xB3\xACY \xD6\xEA}`G\xB0\x97m\xC3 \xB0n\xA3Q\w5G=\xA7ô\xF2\x93\xE4KI\xA1vw\xB5\xBER\xF1\x82.P\xC5\xF9\xFD\xC3Ɬ\xAE\xB0\xA0
+\xFBJq\xB1\xBEǟ\xE8\xA9d\x81\xA8X\xAF`\x86\xE9\xFE\xB0f
+\xD8He\xEAuZ&gt;O\x9D\x8Bǎc\xC2]oQڥ~\xEFA#&lt;\x96\xEC\xEB\xF6\x81\x9C\xEF\xA4r\x94\x8B\xA3/E\xBFƩr\xF9U{\x95M\x96\x88\x9C\xB9$rd\x97}\x8F\xED\x9B\xD2N\x85\xD8B\x85\xD8'P\x9A8&gt;h\xF1:\xB0\xD7\xEDC\xCF\xA1BG\x80D\x95\xBB\x86e\xD5H;\xF1?D\x95\xB5F\xED\xA8\xE1X\xB1\x85\xCCF2u#9)\xEC\xC4_&lt;\xC7\xD9!V\xDD#\xC2'h\xEE&amp;\xD0\xE8pwKF|\xA9K\x9F&lt; \xA8MEXr\x96
+=\xD2k\xB3\xB9d*\x97 \xEC\xB7M\x85S\xEE\xB1]i=!\xB9\xA0±XK\xD6\xF7@\xF5\xFDO\x93܀_\x91\xF5^\xB3\x91\xD5\xCC!\xB7\xD5&lt;\xF2ё
+W]r\xA6(\xD88\xBD\xF1\xBEu\x8Bw\xAC\x9Cu\xCB-|8\xE2C(\x84\xB0w\xA5&amp;x\xBD_n|\xFD\x8F\xD2P\xB9\xCFb\xB0n\xDF\xF5\xC4\xCF\xF4\xE7l\x92\xA08\xF0i\xEA:E\xA8?%j\xF3\xFD\xA6`\x89\xDF\xF3\xF8&lt;–\xF41\xBAl@\xCC-e\xFB(ء\xCAs\xD81Jy\xBC\xE8\xCBg\xB7~i(        v\xA6?\xD5=\xE0\xEC\xA02\xA7Μɲ\xAC\xD2Ě\x94+(\xA3\xC6*\xE3Pc\xB3q\x8A\xF1\xE3m\xC6\xD9\xC1\xADƍ\xC1\xCF5\x9F~\xC81j\xB0L\xA9\xE0\xE5\x82]\xE4C\xBE        \xFCx\xDF5\xBEk\xF2.K\xCE(X\xEF\xDF\xFDX\xFB\xB5\xFA\xA0\xD60F        N\xA77\xF0F\x93\xD7챸\xADvΖ\xE3G\xC1mH#\xA8qA\x92\xE4\xC7\xC1\x8AD\xB1\xA8\xCC*\xCF\xCD        \x82\x8E\xACؘ\xA8a\x95\xB3)Z\xBC5&amp;Y\xB8F\x95c\xFBJ^\x83\xA2\\x94\x8FD\xD9\xE8\xF3\xE4mT\x84\x828\x88\xB4d\xE5s\xFE\x9A\x82\\x9Ck/܊+\xF0M\xBD.]
+\xA9\xB9\xEE)XBy} \x93K\xB3Vf, \x85\xA9P\x9C\xF7\xB1FN\xA7\xD7t\x8C\\x9B\xA3\xC9!\xF281o\xF4w\xE2\xA7E3\xD4\xE0˅\x82yJ\xE8\x8C\xC9&quot;\xF6\xE9\xBCt\x8F\x87r\xC2&quot;\x8A(’XP\xC1\xE0\xAA%O\x8E\xE2Z\x9Bdp$o)czb\xF8\x84\xA8H\x92f\x87\xCAJVv~\xB9\xE5$\xD1\xC1S\xCF\1a\xCE\xEE\xEDOL{\xBE\xAC\xA1\xAE`\xD9G׏\xAC\xB0Y\xF49\x86H\xCD˩\xEC\xC2\xE3\xD3g,]6aܘjb\xBC\xEC\x92}\xCB\xEF\xFDs\xCE\xFCg\xDE\xE4\xB6\xC9K'\xF8uv\x83UmJ\xAD\xFD\xD6\xF7ަ\x87\xD6,\xB8\xE5\xE9\xB3\xCBA+?H\xA7\x98\x8FA+\xCDh\xD6ZC
+\xB7\xA0+J\xE4r\x86lWisr&amp;\x99\x91\xC9lFfp&amp;\xB4V\x8DY\x8B\x93I\xB5^ǩYN\xAB\xD9\x9A\x88ɪ
+V\x95\xDD\xF2\xE3I\xEE\xF3\x81a\x92\xE3S'\xE0\x8E\x94\xAE\x90\x94inn6aq\x9A\xDDƥ\xBE !J\xA1\x82{\x9D\xB9\xA9{%\xC5\x86I=\xAB\xB4\xE4lrv\xAA \xA9\xC5\xD29\xC7_w\xE8m\x9C\xDA(\xFC-\xC4 \xDFJ1C\xE2\xB9b?\xC3\xFE7\xD0O\xE8'-\xEB`\xDD\xE6X\xE2\xDC\xD8&quot;\xD3\xE4\xB26g\xAE\xC9\xD6n\xBB?\xA8|P\xB38\xBC4\xF6P\xE2I\xFCxx#yA\xBDE\xBB%\xF6\xB6\xFA\x8D\x98\xF1\xBC\xC2G
+M        \xF0lֹ\x9E\xCE\xF4\xEB
+\xF9[\xD2_@\xB0\xF1\xC7\xBD2//H\xFB\xA2y\xFE-\xE9Q(\xFD\xFD\xBA\xB0\xDFG\xDD C,OTj&quot;\xB9\xBB\xC6(K\xD6\xC8s\x9D\xF83\x91\x8BD,\x9CP\xC3|娩\xB3 \xB7K'&gt;,j\x8A\xF9\xEE\xABx\x8D\xCA^tZ\xD8q\x94f\xF1\xA0\xA4PtPT*\xA7\x92h$
+\x9D^\xBD\x99Uz \xBC\x88\&amp;\xC0\xA1|\xC4 20\xA3^= \x92\xD3 EB\x99Q!'\x82        jX\xFF5\x92@-\xB8\xA5
+\xB5A,\xB1\xC5҇\xD6C4rh=        t+@\x8C \xB3AKf\x83\xA65l\x93\xFAL\xDA:\xB3
+7\xD3&gt;3\xED3ӾSB\x83\xA6^\xFB-\xE5\x9C½j\x85\xBC\xBC$\x93o\xA2\xB2m&lt;\xA9\xCE'_\xBCٲ\xFDO9/Z\xF5ѽ\xF7}X\xC9y\xF4\x8A\xCB]z\xE5UK\xADOϚ\xF5\xF433g&gt;C\xE6?\xD1z\xCF\xE7\x9F\xDF3\xF6\x89\x92\xD2\xCA\xB4\xBF\xFBn\xFB\x8DU\xDFM]\xF2Д /N)\xA6/_~ɥ\xABV.\xAD !T\x8CńB\xC9F1\x94\xFFTpKP.P\x90 ġȵA\x91\x93\xEB)*\xD1\xFA\xA1(\xB2\xC7\xC3q3\xF5\xC4tͅ\xDF\xFE \xFC=\x9A/{\xE1B\x8A\x92\xF4\xACN\xCAt \xF0\xFF{TtJ\xC0Yr\xD3\xC6\x85\xB2\xE7+s\x82H\xC8Ն5y\xAA(DP\xCB\xA0#\x87\xD5#5j\xC53Q\x9D@S\xFBj,9\xC2\xC0\xAC\xB2RTkt\x8ER\xC7W\x8A\x9A\xF8\xF3d*9]\xDC\xD1np\xB4\x8E\x81h|\x832\xD2p\xA0.O\xE8\xA5\xC84 \\xE1p\xBE?\xC0\x9Asr\xB5\xB9D\xAEw\xC6ș8V. EU #y\x90\x91\xB0\xE07)Rq&gt;K\x83Me:s\xA1p&gt;\xE8߈\xF2d/v\x9D^\xA8%F\xAB
+\xF7b\xD4%%\xEDI%J|\x95\xBC\xE5\x93l*-         '\xD8[^ƼP\xBF\xFE\xFCso}a٥\xDBJ*\x85\xC5\xE7\xDDxۘJ\x87M\xAF\xB5\x86\x8B?\xC2E\xA6҇'_\xFC\xD8c\xFB\V\xEC#\xAF^v\xF9\x85/Ny\xB0\xFB\x8E\xB9\xCF|\xB3\xEE\xCA\xC6{\x93u~Φ\xB7j\x8C\xB8\xF8\xDB\xE8\xA7o.\xDEp\xFB\xBC\xF5\xA2&gt;K\xB9\xE6\x941_\xA1\xA8ҭ\xB3h\x94\xEB\x90ܰ[Xl٨\xD1\xD8\xED\xAEɓ\xEAa\&amp;\x8A\x90\xB2\x86\xA7\xA4P\x8C\xFF.\xA1r\xA2`.h,\xEFs&amp;\xFDu/\xECͲ\\x91\x8E2H\x85
+\x8D\xF5;rw\xE7~\xCA\xED\xCF\xFD\x8E;\x92\xFB'\xA7\xB0\x82\x93\xF2\xD4\xFA\xD6ub\x87\xA8\x82\xF1\xE9~\xE3^\xB4\xB0\x9D\xD8&quot;\xE6hJr\xDF\xD7Y\xB0\xE5s;\x92gG\x89갔\xDCϤ\xC1C5\x93\xB9;ex\x8C\xAF*\xC9\xC8P\xC5\xF0\xC6r(F\x9C\x87\x95\xA9o\xCCv\xBD\x8D\x97\x9F4ԷR~\x83Ǭ5f^\xB9\xA9Ovı\xB7\x88\x9E\xB5r\xACT\xA9\x82\xF4Mu\x95\xD1Y\x9E \xD2C]\x89\xF4\xCAfL\x87\x8D\xD4\xCD\xFAz~
+\xA9\xF16\xB0\xB0\xF7B&lt;\xBC)\xF1\xB6u\xF2͸\x93\xACy\x86k\xDA
+h\xF8M\xB6N\xF7ʞ\xC46\xC9\xE48|\xFE\x90\xFD\xA8\x{DC1D}\x83b\xAE2\x83\xFF\xB0\xB5I\xFAPz\x9CE\x8C\xB3֏Y`\xD1\xE8\xED\xFE\xAEc\x8C\xCAo\xD7k,d \xFEKk\xD7ۍ\xA9\xC6T\xA3*Z\xFA\xAE\xD0\xDC\xCENf\xB4\xDF\xCB\xD7)\x820\x96?D\xA79\xA8\xD3\xD8nv\xB8ßΐ4\xD4\x83ݕ\x9D\xC2k'\x99\xE6Փ\xE0/K9\xE3l\xA4\x9D        Ni\xB1\x85]R\xAC\xCD\xDCM˓\xEA\xE49\xEAyI\xA9\xC6hQJ$\x9EL\xD59\xA2\xFF\xF9{\xDA_\xB5\xCC)\xD4&lt;\x99\xCA\xCDz\x89\xB2@\xE1z
+P\x96R\x95R7KY0\xAB\xABE-ڜ\x94c9\xB6\xF1: \xAC\xEFd\xC2v\xF8/{&quot;\x87\xB3Z\xC9|\xD2u\xB9DZF\xDD\xF5\xCF,iSr\x89\xB4\xB8wdHK\xD0'\xE9\x99OdzT\x83\xE2\x96͈K\xEFX\xEF\xF2\x94褔\xCA\xE0)\xC9\xA1\xA8\x83\xD6z\xD8\xB3[\x9B\xB4\xB5\x954У\xACP٢\xDC&amp;\x97\xCC        p\xCCEJލk\xCA*;q\xAE\xA8.++\xAA\xC1\xEC\xC0\xDA~\xEENF&amp;\xAA\xEC\x85\xF1ܽ\xB5\xCD\xEA\x9AN\x86\xF5l\xBC_?\xBBZ\x8C\xDB5\xFC\xB3\x95\xB5e7
+s,\xEA\xDAҲ`\xED\xC0 *\xC3\xA8.]WWt⤨\xB1\x98\x83        K0\xD1\xC7\xF1m\xF8[4\xBDF\xF64SM\xA7\xBE\x8Eum\xE9\xA6N&gt;\xC4D\xDCQ\xC9\xF3\xA5\xA1*h\xD6\xC9)\x91B \xAE\xB5H0zV]C\xA8Df\x8B\xC6&quot;\xB1\xBCX8&amp;\xC4dr\xA3\xC9`қ8+O
+š:U}\xB2\x85,c\x91\xAE\xC0&lt;\xE5i\xF2p\x83 \xFADem\xB6\xC6\xECc\x91)?w,֖\xE4\xE6\xE1\xBE\xF2~y&lt;\x8D\xF5\xC7o0\xDBĥY
+.+κy\x80\xA3f\xBD\xC9P\\xD4;\x9FЛT\xD3g\x92j\xB3ޒ\x99\xA5a\xE4=\xD8\xCA4ۣ\x86\xEB~\xF9\xA9\xDB&amp;\xAC\x8B\xB9
+\xFA\xAF\xBF\xFFޡzNo\xABn]\xD28;\xE1:\x93\xB3\xDE6\xF5\x91\xB3ڧ\x98L9F[\xBF[\xEF\x99v\x81&gt;d\xC2\xF9\x96\xBD\xEAuk\xC7]\xB2 h֭\xBD%\xB5\xF1\xA5\xD4?r6\x8Ej\xFA\x94x\xEF\xAD17b\xF4\xD8\xCD\xFD\x9Dܽ\x83\x80\xBBiV\xE1\xFD\xF8\xE6\x91gL\x94\xB1 )z\x84\xD8ػP\xE5\xE3Mb\xACLu\xD6\xC6\xCB
+\x83g\xC4$
+\x8D\x96\xB1\x8E\xB1\xF1\xC6\xC4Q] E\xA3\xF1|LHB\xCDu\x92\xE5\xA2%ga\xCE\xD2\xB2/\xE7D\xF499\x9Cޭ\xD6\xBA+W\x8A\xA3\x82\x89\xBAѸ\x8A\x91\xBA\xE4\xF2b\xC99u\xABH\xC2n\x94\xBA,\x96Q\x8B\xC5hp\xDB
+z\xBF\x8Bv
+\xF2&quot;\xEF,\xEF&quot;/\xB3ۋ\xBD\xA7\xD7\xEBr\xBA\xFDN\x87#\x8Dz\x9C\x93\xD3\xE90\xE8\xF5\x92\x80\xB8&lt; Ԡ\x99\xD8\xD3\xE5{\xF3I~\xBEʞ\x88 \xA3\xE0\xB0\xC7&lt;\xC5q\xADh\x8A
+NQ\xA7\xAACz\xACsz\x9D\xFB\x9DG\x9C,#\xF1MD\xD0'\xC3\\x8B\xF4 \xFBzu\x9D\x9E\xCA&gt;\xC7\xEA\xF4\xE9\x87\xEB֧\xF5,(z|}\xB2\xFFTP\xE1Lj\xB0
+d\xE1\xA8$\x9D\xB4\xDA-\xE5i\xB4N}\xBEiQ\xC8\xEB\\x99\xAA\xCFu\x9E{é|-mɣ;O\x9B\xF1\xFB\xEF\x9B\xD2\xD9
+p\xCD\xE9/3\x81\xC1\x9C\xEC\xE3\xACD\xFA\xF0i;&amp;\xC00\xD7u\xDA&amp;\xCD\xE8\xA6^\xA5e=\xBE\xEC)#\xF9~\xB0^\xEA~\x8D&amp;\x96-&gt;\xE4\xFD
+\xCFM\xBDݓ `\xBE\xA70y\xFC\xA5\xDE\xE4\xC0\2\xBE\xFBa\xBA\xE3\\x90\xA1&amp;\x90!
+\xA3&quot;&lt;Q|~Mtu\xECU\xF5+\x9AOԲ\x85\xD1\xF6\xD8\xC3\xFC\x92\xD0\xD2س!\xF9u\xC1\x99\xA1\xCBbW$\xAA\x9A\xE6\x86\x94\xE7p\xB8\x99\xEA\xDC \xFD \xC3 \xA3b?\xCC78846'WV\xA4\xEB\xC3W\xF9\xAABu\xD1&gt;\xB1\xFE\xBA\x81\x9CR\x95\xB4\xF3.\x9F3\xE4\x8C:\x93]4\xA6\xBC\x86\xDB|-\xC9 \xE0\x87\xAE\xE4\xE7\xF0\xED\xF7\xF0+\xF8\x8D\xBC2\xAEtY\xEC1\x84\xDC\xA2\x94\xC50v+ \xF8\&amp;\x90\x97[ć\xDD\xC1\x94\xB7\xA7\xB0\xA8Ȣ$e \xA4\xD3z\xB5Im\x9Dv\xB8v\xACv\xBAV\xA1\xEDķ\x88\x91D\x81\xF2\x9D~\x91~\x87~\xB7~\xBF\xFE\x88^\xAEw\x94\x84\xF3&lt;X\x9AZ&lt;B
+f\xF1\x90k22A\xBD-\xBB\xB6\xA4EJ\xE4\xD0\xE8        \xF8%\xA5'\xB8LF-\x9BB&gt;5q#a\x96'7\x98\xD4\xA3 EM\x89\xA9        7D(\xA8\x9D\x88P[ nkkk\x81OH8\xC9\xD6)\xB2\x80\x92e\xB4\xD1\xE8#ŝ&gt;\xBD\xAF\xA8,\x93v\xF3a\xD4&amp;M\xA6q\xBF\xB2\xE2\x96kW\x8C\xEB\x96&amp;\xDA^\xC1\x91\xB1\xC3k\xFA\xDD}Uj=~r\xC4յM\x8F\xCCO\xBD?2\xC3\xEE\x8D\xD7&gt;86\xF9\xD0\xF9#\xE7_@YN\xCA\xAE)\xE5\xC3gwYM\xA9\xAF\xAE&quot;\xCCL\xEFc\xCF`\x9FAh\x9Fxu„\x93\xA8
+G\x8C\xCCb\xB6\x8C\xB2N0]h\x99\x9C?\xC3t\x99e\x86m\x83U]\xEE*+bR\xD6lm.\x9Db\xBD\xA8t\xB6끤\xBA\xB8P\xC7;\xFD1\xCA\\x8B\xB5\xBC\x88xt9\x881hb\x86P\xB9f&gt;\xEB        \xC5\xCA\x96\xC4T\xB9\x82\xB2\xD5'\x8E*\xA7\xA0+\xF4&amp; \xEB
+\xD9B{\xE5ܓ\x980\x8Cι\xEB\xEE\xA6\xE4\xAF\xEBYV\x91u\xB5\xB3\xF3\xBD\xD6J\xEAu\x833\x86\x86vh\xCE\xDA1\xE2'D\x8B`\xE5iH\xE8N\xFF\xB8\xD1b\xB1\xBAl\x96l\x9C\xD5D\xC3,\xD0\xF4\x9E s6\xE0g\xD1^!\x87.$\xF9\xC7Y\xBC\xA7P&gt;SZZb\x80\xE6ӌ\x87\xA1\xB7٨\xCB\xEF7J\xFA\x86]\x98\xDB0uu\xA3\xDEl\xB0\xC4\xCEz{r\xF3\xF9\x83ΟW4\xFB۹\xBBYoʒ\xEF\xBC\x9Bsd}S̛8s\xEC\x80ы\xB7\xA5~8\xAC٢\xB7&amp;\xCFk        8\xAD\xBE\xF3\xDC\xD5\xD7cf&gt;\xE0\xF7#\xD2ww!7@\x9DV\xF4ݡ\x9E\xA7\xB9\xCD0\xCF8ϴ\xC0\xBCл\x90o\xF7\xDDn\x8F,\x8Cj\xC1ʅ\xF9\x88 \xC3\xFD\xA2\xEA\x81\xF0FiPZ\xDDo5\x8Er8\xDC\xC8mU\xDA.\x95E\xA4ܿ[\xA9\xCF\xD7y=\x8B\xDBcU\xC6&lt;*\xF1(IPЁ \xAC\xE3uD\xE7ȏ{&lt;\x98ndOlŕXy&quot;WsB\xA8\x9BJ 4\x8B\xF0\x9F&amp;Q@J\xF8\xA8ڜ\xAB\xCB\xD1iu+B\xE1P^(b\xE5F\x83\xC9@\xE4\xBEPT\xCCǼ9\x90\x8FC\xBAX&gt;\xF6\xBC\xF9\xD9$\x9Dr\xCBN \x80}&gt;Y?\xE8\x94\xE5\x9B\xE2JZA㛰\xA4ni\xCD\xDE9eM\xFE\xF0\x88\xFB\xD2\xD9\xE3oNUӞ%\xB8p\xCA\xE6{\xB0op\xC1\x88ԻY\xA5]1vʰɗ\xDF\xF4똾T+\xDA_&lt;\xFF\xFE3k\x9A\xE3\x83AF?\x92\xC0\x8FRlc\xBD\xD3\xE53\xE5\x8C^\x933\xDC\xBF\xCB[\xB8]\x8CJN}-\x9D\xA7\x8EnŸ\xCE^'E\xC0*\x9A֘\xD1\xE8v\x94\xE4S'\x85\xB1\xD2Rw~8A\xF3d$w\xC2ۉ\xA7\x8A\xD5\x82M (8J\x91\xF2 \xA4q\x8D\xD2/\xE8\\xF8gW\xDAE\\xF5\x8C\x80T\xB8Q\xB5L\xB5[\xB5_uD%S\x95
+B&gt;Jp        \x92\xE8\x8Bh        \x85\xC0\x91\xF5\xA8\xCE2&amp;
+?\x8EP\xF7\xBAl\xC8t[\x96s\x87\xE9j&quot;Z\xF0ji\x83Х-\x8Bfݙ44\xFD\xF4:\x8C\xB8\xDF[&gt;\xAC\xEE\xADdMj\xC6b=;z\xFB\xE9\xD6\xF7L\xD3\xE8{\xF3\xD2=\\xD2\xF7\xA4\x8FN\x93\xED\xC1\xE7\x909\x94\xEC]\xE3(G\xDA$ c.\xA3=\xDD+\xB1\x94C.\xD8Hi\xCA+ٱԆ\xD6*\xB5\x8F\xF6\xBC\x9D:V\xDA\xF3-\xC7\x97\x96ҷS\x81K%\xE8\xF1\xFCV֩\xB41\x8Es\xAB|NO\xA9\xDF\xEFv't\xDER+)q'\xC0\x8C\x94Q3b\xB0\x9Bcz\xBD\xDB.\xC4Q\x84\x8B\x90H,r\xC7\xFD\xC1^\x82BA!;pEe'*eI(P\x9C\x8B7ƙ8\xA5w&lt;  ,p~9y'it.s\xEE\x96\xFC\x99\xF3,=\xCFa\xC4\xCD\xE2qG8\x96\xB3\x97\xDBL\xF5\xA8פ\xF1\xB9,?\xE8DM\xCAuW\x9F\xE0\xC5\xE9\xD4G's\xA1\xE5o\x98\x80[N\x9F\xA3̲\xA0\xFC?\xF3\xE0\xA1\xCC\xE4e\xCA\xD9\xC3\x9D\xC6\xC3&lt;L        \xDF}éL8\xC5_\xC8Q\xFF= \x80\xB3\xC0r\xCC\xCBQ\x8D\xB1b\xFF O\x92\7\x9CckGiZ\xB4\xA3\x82+5+\x83\xDB\xE4[\xB4*6`
+\xDAp@\x96\xE5e\xA8r\xAA\xACD\xEE\xB2\xD2$\xACb].*\xCB/*J\xE6\xBBK\xD5Jo\x98K\xB1\xC7j\xF3\x94(\x8Bz\xDD\xE3sV eI\xA1lbi)k\xF4\x85rp\xFF&amp;\x8B\xBC\xC9d$\xD1\xAB\xF2L\xCC\xCFOx0F\x8Eڰ\xA0Sz\x95Di\xAF\x99;\xFD4\xB3&quot;-\xE5\xA4D\xC23\xEA\xED8a^2\xD94\xE9)0ג\xC1\xB9L\x83v'Y\x9Ez5g?&quot;Y\xFA(\x8A\xA7\xBFG\xF8奿\xDF\xB4\xF8-\x81\xFB\x88.k\xC3zjY\xF2IְX\xB3\xB3\x9A=\xF6(3\x95M\x96ڢ\x93e\xE6=\xD9d\xEB c\xE7\xBE}\xC7\xF0y?-xs\x81\x82\xE6bm\xBD\xCB߻\xEE\xF2\xAD#\xCA0\xFAꌛ\xCFͰ
+C\x84̙\xF0\xBA\xD4\xFD\xA5e\x8D\x8B\xD6\xCD{\xB0\xCBڧ\x9At\xCFv\xAF\xDD\xEA&gt;g\xEA\x84;Z\xAE|\xE0\xBDc|.۰՘cQG/\xAD\x9AZՀ_\xB5\x86G-\xCF&amp;\xD7[^H\xB2\x99PA\x93\xCBF^\xF2\xFC97v\xC7|n7\xEFs;\xE2ERJ\xE2d\xA48\x99,*vǫ\xFB\xD2.NW\xE7\xAD#u\xB1\x86\xBA\xBA\xBE
+\xEE\xEAL\xA1\x91DzaD&amp;\x88\xD0X&quot;\xD9&quot;\x92\xAE\xA3\xCB\xC3y\xB1`^^(\xE8\x8E\xF5)\xA5]
+\xA8W\xC4J**JK\xDC}~\xC2Xe/\xE2\xF1/8BB,\x96\x89\xAA\xFB\xF4QC@Q\xEC        \x96x\x82
+\xA2\xCB[\xB2\xB4aMYذ\xAF\x814t\x92\xAD\xA2\xB3\xBF\xC1\xE3\xF3\xE9=D$\x8B3\x9C\xEC&amp;DGƒ\xE9\x84!\xDB\xC8V\xD4
+\xC1g\x96x\x82\xE6VKk:\xDBb\xD5R\xB6\x8Ajl5\x8D$\x9F\x90\x93\x96f\\xC4\xD3E\xE5o[\xFF\xBE\xD1\xF2_\xB7\x8Ef\xD2
+R\xCA8I\x93:S\x9DE\x84&quot;        \x86\xE8\xB9\#4\xA0Ȥ}\xFF2\x85س^\xB4g\x8A\xD1\xF7/=\xA7\x87\xB7t \xC1uj\xAF\xA4\xF6%4\xB0\xF8SB\x92\x98\xE1qؽҞ\x92\xB1=\xC7ؽ3HY\xCAsj\xC8!\xF9xCO\xBD\xCBҳd\xEE@\xBE\x99\xF3\xA2O\xC4D\x92͗\xB4|o\xE2\xCDIW\xD2S++\xD6\x98
+\xCCu\xAE:ϙ\xB2\xADh\xCDC]\xC3\xDD\xC3=f\x95N\x92m\x99\xB4\x84$\xC9+\xB5]e\xC8\xE5\xF2&quot;\xB7=\xE3 i\xF93\xBE\x90\xCD@\xDBas\x99\xDEl6\xE8\xDD6\xAF`7v!\x82R'\xA8TJ\x84\xEA\x87s\x98\xB3\xF3 \xF6\xD9z} \xCAu`v\x9D\x94\xCC\xF8/X\xF9w\xDC\xFA\x975%\xA7$\xB9\xE4\xCE\xD3֕엜|)\xE7\xC5֞ \xD6        bR\xF4]
+\xE8\xBB\xE8&amp;\xA0_\xC5\xEBodf\xAF5\xCD# \x98\x85\xC6v\xD3\xA5\x8AhL3\xF3 yX\xF1\x94\xE2[\xEE\xD379\xCBM\xE46q\x9BLl\x91R\xE0\xA5`\xF1v\xAFk\x8F\xCD\xE6\xF6*t\x8D\x86\xE5\xBD\xC4hj\xB3R(s\xF4uH\xD4ru\xFB\x9E\xF7s\xE4\xE9&amp;\xE6z\x94Jݡ\xA0;f)\xB0\xC2~x3\xFE(k\xEE\xC0\x85\xA3{\xE0\xCCl\x88\x9D]\xA5\x98\xAE}L\xB6\xFE]\xE8\xE4\xE7,Dn\xB6\x98\xA0\xD4\xCBt\x80\xBA:\xB9\xC2\xC8X\x98\x93[\x88!\x91q\xA9\xEAŢ\xD9\xAA%\xBB 1\x9C]}\xC8\xD0Y:/\x9DFYf́G\xC6&gt;7\x956&lt;\xEC\xBE!g
+.oN=G\x96L\xCC\xB7\xDB\xF1\xC0\xFEs\xC7\xE32I|80\xCFs\xC7r\xF0\xA4\x8Cb \xE2@\xE5\xBE\xE4B\xB1Ŗ\xB0\x959\xEA\x83ť\xC5\xE5e}\xCD\xF5\x93|S\xEB\xAF\xF2]_\xDF.\xB6\xD7? .\xA9_S\xBF\xB5\xFE\xCDb\xA3\x95\xF7/&gt;\xB7\x84\xD5\xF9ceJ\xEAKG\xEE\xAC{Y\xDCQ\xAFt\xFA\x9D\x85\x93\xFD\x93 \xEF.Y\x93x\xB2\xEC\x90\xFF\xCFğeꢾ\xF6Hs\xECi\xCEE.\xEC*\xE6A\xA0y\xB7=Z %l\xF8Ģ)H\xE0DbQa&quot;QP\xE8\x8E\xA2\x8C\xAC\xE7&quot;\x96\x9F&quot;\xEEpx2\xE2        \xD0v\xA3\xA0\xBCB\x81\xC01?\xB57\xEE\x88\xDFW_&quot;\x96\xB1u}\xFD\x85Ȁ&lt;&gt;\xBF\xC9\xE7\xF3#_\xA1\x9F\xE5q\x81
+\xD1H\xC4^\xE8\xF7\xF3\xA0/\xA006RQ.\xD4\xD6\xD5)\x95\x9C \xAA\x94\xA8\x93\\xBB\xC1糩\x8A:\xF1\xE8\xE7\xF8\xBE} Q_\xA1h ^\x85\xFC\xE4Z\xD1*6\xB6\xCE(dP\xA1X\xD8X\xC8\xEC/&lt;&gt;q}\xF9V&lt;\xF1\xA8\x97\x89\xFA~&gt;\x9E\xEA\xE2\xF0\xAAz
+C\xB6\xE0\x91'\x82)$\xAF\xAE\xB6sG\xDD6h\xB69\xE8B
+\xBA\xBB\x84\xBD\x87mu\x8E\xC3,wWK\x8A\xB4N\xB5\x9A\xAE\xBD\x90\xCC\xFA\xDC\xFC]\xA9gG\xA2\xA7\xA4\xD9U\x85\xBD
+k
+S^]&amp;5\xD84Wv\xC3NDO\xB0\x9D\x9C\xA7I\xFEg\xC4&gt;9\xC3\xD3\xD2\xF6A[\x91\xCBUWg\x96\x80mF\xFE\xF4\xFE\xF5\xF6`        \x8D\xE4\xD6\xC1\x86\xD0DaB
+Q\xFFd\xFBz\x9F\x86ؘ\xAE\xEF\xEBY) B\x8FZ&quot;- Yv\xC2\xD7ƭ\xB4g        \xE9w\xDD\xFE\x93v\xF9SE\x93n\xAB \xB6N\x96\xD6\xFEߺa.~#\xD5\xFE\xAF@\xD3}\x9C\xC8z||\xF4\xC6\xCB\xEB\x8FH\x8Bs&amp;\xBF\x95&lt;@ЎѠ&gt;4U\xAC\x80 \xA9\x94I\xD4lqB\x90\xB4'\x95Ҙ\x88'
+st*\xACr\x807\xED1\xEC\xFEל\xF4Z\xCF\xC1\xF0\x8E3SC'|\xE0\xF1\x8C\xE9&quot;\xE4ˎ\xFF\x9EN\xF8#\x92/\xADk\xA5\xFB\xFA\xEB\xBE\xE9T|&amp;5T\xA9\xF3OU\x8Cl\xF0&lt;;\xE0y*HX\xAC\xFA\xDA}\xD0C\xA0!;\xD0n\xF4\xFE\xD4\xF5\x9E\xFB:\x86\x8F\xB9\xD5!v\x87=B\xC5@׹\xAEU\x9E͞ч\xF8C\xF7\xF7\xF8\x90;g\xB4k%\xCD3.\xA5a\xB6\xC2\xEC\x88Q\xA73\xDDZ\xAF\xE4\xDAp\xC8\xDF\xE8'\xFE\x88\xE0\xF7\x87\xB77)97\x9A\xA2Ⲣ\xA2\xD22wR#\x93\xDA\xCAbV\xA9\x94\xB1n\x8DӜ\xB9\x98
+\xEBl^\xB1EL6\x9B\xD9\xE4v\xE6\xE7e4&gt;\xD6#\xB1H8\xCB \xBB\xF3;\xD3\xF3E\x97#\xDE\xE5v{01aZz*\xF2\xB8=&amp;\xE8mu\x8BOH\xF0z=\x97[\xC0\xB4=\xC4\xE5rV\x94\xC6,8I~2\&amp;$\x93\x8D\x965
+Z\xA5\xAE\xA8p{&lt;\xEE\xF22OXD\xEFboxlxzxM\xF8\x85\xB0,,\x86#%a\xD1P\xAA / \xEF\xEF\x81\xBEN\xF2\x95hv{\xF1XL\xE2w1\xC1\x98u\xB9XBXw'\xB9F\xB4y\x865\xB1\x9E\xE1\xC6w\x8D\xFB\x8C?Y\xA3\xBD\xF2\xA5l\xCC:\x8C*\xB1\xC3\xCE\xB6\xE9+\x93\x99\xBF\x966h\xB6\xC4bm6\xEE\xA0CZ;E{i՝\xD1q\xBA\xA9\xEBμ6CWzVg\xDC2\x9A\xB6\x9D{CfFv\xB73f\xFB\xF7\xAEU\xDB\xFF\x9D\xD6&amp;\xD9\xF5K\xC1\xA7o\xC3\xF8\xB7n\xC6\xFFv1W\x80&lt;Қz\x9E[&quot;\x9E7h9\xB0\x94\x96\xEF\xE0Z\\xF9\x8E\xE4Se\xD6w\xBD\xE9q\x82\xEA\xE8B\xAE\xD3=\x81\xEE8\xF9\xF0Tw\x8A\xF9\x9Eje&gt;H\xF1M \xC5q&lt;]\xB4(        V\xB9\xEC.\xF2\xC1,w:\xB1\xC5\xC9j\xF4\x92\x90\xE5F \xB9\xB9z\xD0\xD8P,#L\xE0tG\xE2yy\xB1\xB8;\xA4f\xA5CŌB\xC12\xE0򛤶5\xBAbezh\xDB\xEF+v\xFB|\xB7;\xE8$؀=.\xA7        \xA4        \x911&amp;\x84B!\xC3t\xED&amp;\xA7I\xCDwAUTc\x8DZ\x8D\x95n\x97Cp&amp;:\x8A\x8B\xA1R]|x|l|z|a|_\w\xE4\xC6cp\xD2Í\x86\xB1\xC6\xE9ƅ\xC6#FVg\xC4F{\xA2\xEA\xE2ޠ\xAE\x8Df:\xB8L\x96\x8A\xBA3\xCEZu\xD6Y˼\xC3 \xC5tY+\xA0\xC3J@|lһ\xA0\xE0\x9C\xD2j\x89&amp;)\xB5\xFF\xFFڱ\xFBW\xA7\\x82o_\xFF{a8\xCAY2\xB5\xFB\x9E V\xBF)-蓰z/\x99\xBA\x84\xA2S\xC6'\xC8Z\xBBjN\xCB\xDF˼r\xC2$\xF4\xFFҰ\xA2\xF0d\xC7]bz\x97\xEE;1\xB4\xB4\xFD\xC9\xFDi8j9j\x97\xBFf\xF9\x8C\xFB\xCC\xF0\xB1\xE5\xDBw\xDCw\x85\x83s\xCC\x8B\x8D}\xCD\xF0\x97yXu\x8Fv9yR\xF6\xA4j\xB9\xF6
+\xF9J\xE5-d\x81\xECv\xE5,\xED&lt;\xE3&lt;\xF3\xDDd\x89LY./W\xAB\xAA\xB5U\\xB1\xA1\xD8ReSFIL\x9B\xE4B\x86\x90%i\xEBC\xDBt/p\xEB \xEB\x8C\xEB\xCC\x96l[\xEC\xCAgt\xCFr+ \x8F7/\xB7\xAC\xB1=eW\x9Ekai\xB1-\xE5\xEE1.\xB6&lt;d{\xC0\xAE\xECo\xECo\xEEob;\xC3&gt;F7\x86;ˠ\x8Cتte\xC6rs\xA5\xEDL\xDD\xAE\xBFA\xA9\x91\xAB\x95N\xB9Sх\x8Da3\xC4\xC5v\xCC*\x8D\xBA)\xAC\xE0\xA4\xEACj&amp;7DS\xF9&lt;*@ː ]e
+)\xEC\xEB
+\xD7f_Ϡ\x8B
+\xE9\x83\xEC\x8BZ\xF4\x8D\xE9Cs-- -j\x97\xBE\xCEЙ&gt;\xB6\xB6\g\xFA\x8F\xF5[\x9D\x85.Y\xCF59\xEB,6\x8B\xBB\xCEF \xEB\xF5:;\xDD\xF5=\xDD\xCA:\xD3\xF7\xB65\xDA~\x89nU٭\x91n\xC1Q6\xD3\xF32ۣb.8\xCDf&gt;\xC7Pk\xF4@\x81\xE9R\xA3\xBD.'\xBB%t˙\xEB\xB4٭\x8D\xAE\x80\xC9\xD1kq.Z?\xAD\xFD\xFD\xCA*Lj\xBES&gt;1\xD2sDР(!t\xB9?\xCDkXt\xDB\xCF\xF3\xDEL\xBD\x89Kߜ\xF7Ӽs~z~\xEDq\xACX\xF1\xFCOd\xC0\xAA\xD4W\xCBp\xCE\xC5:&lt;zY\xEA\xEB'\xDF\xC6R\xBB\xF6~\x9F\xFA\x{1E7CB5}\x90\xA4\x90$\x80\xE8\x88hc\xACS\xE1A^\xA3\xD3\xE0
+9K\x9D\xFD\x9D\x9Bc\xEA\xA8!ܙ\xFEI\xE4\xAEp\xDC\xEA aeT\xB9\xD8q\x8F\x97\x9C\xEE\xCF\xFE}4V\xD8\xEB\x9EƥX,\x80&lt;!\x83.X$\xC1\xA0
+B\xB2HH\xB0#\x99\x91\xB3\xE7;1QГ\x9E\xA6\xD9i]\xB4 IÃ&quot;\xD0&gt;Q1\x8D\x83\x9B\xB2\xEF\xFF\xF7\xE1]\x91N\xD0\xFF&amp;\xCD֣\xC0\xD2\xD2\xF4Pvn&amp;\xE0\xC3\xA7\xE7\xD7\xC0\xE38\xF4̞\x81EC\xABF\xA5\xFE\xC4ږLJ&gt;us\xEA#\xBC?u\xF9\xA9\xFDּ7\x87*Ƒg_];\xFEJ\xF7\x8B\xD2z\xF6&quot;\xD0\xE9|T\x85w\x89c\xE7\xC6\xE6\xB4\x97\xDC{\xA0dU\xDE\xCA\xE8\xF2|\xA5aJ\xE1\xE4b\xA231g\xD83%4\xA4\xA0\xA1\xA4\xA1lp\xE5Ъ\x96\xE0\x98ШpK\xC1\xD9\xC5甜[\xDE\y^Յ\xB1 '\x95\xB4\x96?[\xF0xɲ\xF2\xE7 6\xAF+\xE9(\xDF\\xF5j\xEC\xD5\x81\xB6\xA4}S\x95\xBA@\xA4գ\xEB
+\x95\xC5TX\x9Bbڰ2\x92\x88T\x96\xE6\xD5E\xABU\x95\x83\x83c\xB7\xE7\x87o\x89ݚk\xC1\xBC\xB2%\xC1%\xE1űE\xF9\xF7&lt;P\xB6\xAD\x8C}\xFB\xAE\xF2\xAF\x82c%\xC7\xCA\xFE\xAAr\x95\x95WV\xB1%\xC5L\\xF0cp@~S\x89\xA0\xA3\xFC\xA3\xD6i&amp;*:\xF1&lt;\xD1Ȅ\xACR\x85&quot;\xD6P\xE5N\x8C\xA3Nܲ\xE6\xA9y\xB0\x95&amp;C4
+\xCB\xC7 \xE2\xCB\xE2\xB2\xF8U\xA5!\xC1\xDE4\xBC\xB3w\xB9h9w\xAC\xFBM\xEB\xD5%iV\xE2\xCFG[\x91ޱNŕĚؿ\xB1A\xBF\xE4\xE4ް\xF3&quot;\xB4\x9Cx\xA3gV\xE2\x89\xD5v]]\xFE\x85C],\x8A|\x8Ae(JhQF\xDF\xE8)\xA1E\x99\x8E+\xA3o\xF4\x94Т\x8C\xBE\xD1SB\x8B\x98        \x9F\xA6\xA5M\xB8E\xA6\xC8.\xCB\xEA\x9Dg\x92Vd&amp;\xA12)\xDCr\x81\x94R\xFD\xA5Zl&lt;I\x83ɥ3\xCE.}N\xB5\xAFj\xA0Kk\xB0\xAA\xCDC*ʢw\xF7/4\xA1Ƥ\xD2۬[\x9F\xF8\x94&lt;\xB5{O\xAFz\xFBF\xEAyk\xD2`5\xEA46\xDE^\xA6\xD5\xEBe6\x93\x89\x9B\xC1CQ\x85O\xADJ\xFD\x92\xFA=\xF5\xB9\xF0d\xB5'\xD2 \xC8v\xD0\xFA*ǏnF\xBE\xF4N\xF1L\xDEW3Ym\xB5ͥ \xAF(d\xB1\xAA\xC2!\x85c\xA3 /\xE7/\x8F_]z{\xE9\x8A\xE8S\x85\xEF
+y?\xE0\xF7        %~\xF4:AU\xD8\xDF;\xC0wu|\xB6\xB7=~\xA7\xF71\xEF\xEA\xF8\xEB\xFC.\xDF\xC1X\x8Egk\xFA\xA4B\xBA\xBFE\x88S\xD8&gt;'\xC2\xCBGc&gt;\xB9?x\xF3QY6M O2\x9F*}&gt;\xD5\xF7\xFC|%\xBAB4J\xF39\xDE-\xE4Z\x94 \xCB\xC4\xE2\xE1\x8AC.$`\xC4k\xE3L\xD7B\xF8#8\xF6\xF9q\xA3\x99\xB7\xFF\x88\x9F\xF5SX\xA79\x9C\xE4\x8Ep\x84\xB3W \x99z\xEA\xFCpKہ\x96\xF4\xB5o\xF0;\xA5\xF7\xD3$CZ7@\xDC\x84\x9E&lt;[\xFC\xDF\xC2N\xDAa\xC8\xE6\x94\xD7y\xB5\xFC\x96\xF4Q\xA0\xFC\xD1
+1m\xA9\xC5 \xF6i]        _\xB6\xA6g\xE5h6\xA5L_\xA7\xF9\xCF!\xA3\xC2rJt*\xEE\xACs\xFE5N\xECz\xF8\x93\xD9\x8D\x99u\xBBH[3Z==\xF5\xFB7\x97\xAC\xF1\xE45\xA97\x89:5\xE4T\xD8z\xED\x861KKk\xFAU
+\xAD\xDBKG6N\xADy?\xF8\x9F\x9B\xC1#1z\xF5C{\xC4hM\xF1\xCE\xE1\xC5-\xC5WY\xE6X\xE6:\xE69T&gt;\xD0W=\x98PO\xA8H&lt;Y\xBF\xAA\xEFGփ\xD6߭
+'}H\xA3\xAD\x8C\xBEz\xD0#5}6\x9D̄pynQA\x80\xC9/\xA1\xB3\xCAz\x8D]\xA8\xAE.ч4\xF3\xD9\xFC\xF9ᒐ\xAF\x81a\xC1\xEC\xF8\xA4\xC9\xE5\xF2\xD0X\xCFt\xF18\x98Bb\xA1\xC4\xFA鑙\x91\x85\x91\xA5\x915Y\xC4\xDE\xFF\xE1-\xD8{\xD2z\xF4\x87\xC1Q̼\xA7\x9B\x99q\xEE\x99r\xEE\xD6K\xAF\xD1d\x96\xA5g^D\xB0f\xFE\xE5]ŋ\xA9\xFBp\xFAlrf\x99\xA5\x87Щ\xCA\xEC&quot;\xBA\x9E\xD5\xD9\x9Aٕ\xE4a\xA1\xF7\xBDfqƓ3X\xB1\xEC\xF1[\xE7/\xCF?\xA3u\xE2\xEA\xFAs\x9B\xBE\xBC\xE7J\xD6̞\xAD\x8F&lt;\xF2܀\xFE\xF7\xBFw\xDEy&lt;\xD3\xC1ֺ(w&gt;\xF6\xD0        \xE69 \xC7\x9DU\xECջ\xDC\xE1\xF6\xF3\xBD9\xAF\x80\xEE:D\xE7\x9Eϻ}'y̎\xC0\xA0A\xB3o\xDDNゅ\xA0\xD7Ւ5\xBFC\x8C\xEAT\xDAR:a\xE6wy\xCB\xE8\x94&amp;Q\xCAJ\xE9\x99\xD1n)\x83(\xDE0@\xE0A@\x8D\xEC\x9Dx\xFA&amp;\x8E\xD3{\xE0PyΕt\xB5\xBA\xDEu\xB1:W\x9Dk\xB8k\xACkh\xD3\xD7&gt;\x97\xD2\xF5]\x88t4\xFBw4\xFBL\x9Dd|O\x9B\xC4\xFA\x97)\xADa_\xEFk\xC6=\xB2\xE8s)G*e/&gt;O\xAD\x92V\xA5?C\xC9wj\x8A4\xF5\x95j|Uj\x9E\xB4
+\xC0s\x9F
+\xF2x=&lt;w\xF6oE.\x80o\xFA\x8Fu^\xCEE_Xu\x82\xA7\xE7\xBF\xCAy@~\xD0\xF5\xBD\xF7O\xF2\xBB\xFCw\xE7\xDE\xE3\xBCJCX9vj\xBC\xB3\x9DK\xE4r\x83-\xB9\x9B931\xDB\xCDf\x9B\xDDmȤ\xE3rQ'&quot;(\x91(@\xEE\xA8^\x9D\x99'\x89\xA8rr\xD4*\xB7&gt;\x93s(gsm\x80L!\xB1        \xB5`\xD07\xF8\xB1~\x9F\xE3\xE9\xC0\xA2C\xC3\xD1X\xFA\x8Ar\x91\xDD\xE1Q*\x87\xABƪ\xA6\xABf\xAA\xAAd*{\xE1IqO\x8B\x94V\xA5R\xDBr&quot;\xC1\xDA\xF0\xFC_M7Ho K\xB0R\x91ͬ\xC5{'{bXi\x9D[Y\xE9iq \xD3\xFD\xE33\x9E\xBDv\xA0Ǒ\xAB\xF5d\xA2\x96%\xDBo&gt;{\xDE$)\xB6\xCDt\xB0\xB5\xDD}\xD7\xB9൫\xC9viJQ\x8A^\xFB\xCE\xE9\x8CG\xC6K==\xF9.kyb\xB8It)\x90\xC2V\x80ΰ
+\x89\xB5\xBA\xEF\xE2v\xBB\xFF\xB4\xFDS\xAFB\xAB\xDCDk\xCA\xCC?q\xC5f\x8E3\x99\xDDZ\xB3\xC5\xA5]\xF03\x82Nhv \xAC Db\x82\x8D\xB9\xFD1\xA4\x91&amp;\x9El\xD3\x98\xBEM&gt;]qm\x84( qk\xF6\xD9\xE9\xCE\xC1nw\xB1\xCD\xED\xB6\xDB\xDC&gt;\x9B\xD5L0\xF6\xC0\x82.\xDBb\xE0\xC0Xm&amp;\xAB\xD5f\xB5D\xBF]\xF0\x99-#h\xFC&gt;\x9FV\xAB!+a\xC41\xA1\xC0\xD6h\xEB\xB0\xB1\xB16:e\xAC\xB1!ik~\xC1̘\xA1\xBD&gt;m\xC5\xD6-\xF8d!\xBB\xD7ǥ\xB5hҥ\xE5[\x8E\xB6Ho\xB4H\xBAғŠ\xDFd\xB2'\x97\xF17KВ\x97\x80\xFC\x8FY6C\x8C\x9A]6.\xB10\xB3\xEA(\x80\x8B\xFF\xAE\x97\xAC\xB8&quot;\xD5To5\xE5䘬\xB8\xD2f\xCC\xC95Z\xC5s\xE4\xF8\xA6e64l\xB8&quot;\xB3\xD9Z\x95Y\xAB5\xAB2e\x97\x85\xF9\xFE\xE46E\x88\xD5\xD8\xE5\xC0\xDB&lt;\xF2K\xC6?mf\xB1Xer\xBB&lt;\x87I.\xF0Z\xA2
+s$c:)pTK\xFF\xE6Az7V&lt;{\xBAc\xBAs\xBAk\xBA\xFB6\xCB\xEB\xD9\xD3!\x8B\xAA\x95kշZ\x8D\xEC\xBBs\xCE*ZD+k#N\xAB\xC7\xEEu{\xF2&quot;\xD62Rf)\xB4 ,\xF5\xD6&amp;\xDClm\xBDͺʺ\x8B\xBCn\xF9K\x9A|\xD4s\x8D\xE6JMg4\xB9sLf_\x98\xF6z\x82|pF\x90\xA0 l \xEE\xEEʂ\x8B\xF2\x82\xC1p\x9Eۗ\x87\xB4r\xE9\x95N\xE5U\x9D\xEA\xD5&gt;\xD5Ϫ4(\xEA&quot;\x99J%\x97\xB9\xB52\x96w\xD0CL\xEE\xB1n\xEC.\xB5\xBB\xDD\xBB\x9B\xB7\xDB&lt;0ߙ\xFAK,1\xB3 o\x92\xB1\xAC\xC7l2\x81
+\xC9\xB3\xD9M6\x9B\x9D`\xC2`\x8F\xCD
+u+af&lt;f a!\x82\xB5\x93\)zl˜1 \xAB &gt;\xFD\xE3y\xA3\x90#r\xB4o\xC7q\x84\xC0µ ;\xBDE,z׎\xBDvl\xA3\xA5v\xB1\xA4\xAC\xC4&gt;+        \x95@\xB0\xC4.
+\xE1\xBB \xEA\xF2\xBCyc\xF3f\xE6-\xCC[\x9A\xF7\xDA\xFB\xF2\xF8(\x8A\xB4\xE1\xAA\xEE\xB9\xEF\xE9\xE9\xB9'3\xD3s\xE5\x98\$L\xC8tH!\x80         \xB9\x95C\xC4k%\xAE\xF7&quot;&quot;*\x87»^\xAB \x844\ \xBA(x⾋\xBA \xBA\xA8{\x88\xA2\xE2\xF1\x89I\xBE\xA7\xAA{&amp;\x93 \xEE\xEE\xFB\xFB\xFEx\xBFߏ\xE9y\xAA\xBA\xAB\xAB\xAB\xAB\xAB\x9Ezꩧ\x9Ez\xEAHޗy\x9A\xBC=\xCC
+\xC0:\x81\xFDv:\xE01\x87X\x8F:DO\x85\xD9\xF1%]@Ӱ\x83c\xC0\xB1\xDDЪ \xDA\xF7\xC1\xEBx\xC4«\xB8H\xB4x|\x80\xC7|̢\xC4HY\xAF\\xA1&lt;\xA2T(\xF7\xC1\xDD|4\x98J\xF7gHJ\x98\xA7E\xBFp[Nz\x88\xFD\x9B\x84Mv}\xEA\xB6t,\xF0\xB8NI+\x9AN\xC2]\x97\xE5 \x94\xA1o\xF2L\xF0wPI\x9F\x86hh*\xA1}dN\xBAU6!=\xD4[\x9C\xFFKJ\x9C\xE7HmfxK \xB3`̞g\x9A\x8F\xD3\xE3\xF0\xC8,\xD8\xF0OF\x8D\xE9\xFA\xBC\x95\xD18ۻNowX\xD2,\xE9755
+a\xA2\xB7\xD9K\xFEc\xB3\x95\xDBl\xBD\xC2\xD8wo\xFF\xE2\xEF\xB7\xDF\xA0\xA4\xB3\x92\xF4`\xE7\xFD\xF5ֿ_\xFD\x92DKI@\x80M\xFD\xF4\x82\xA2:3\x97bK~\xFA#\xFB\x97,*:
+ZZ3\x99\xC5g\xCA\xC55\ T\x86+jEC\xBD\xA3\xBE\xB8\xA6r\xB4a\xB2\xA3\xA9xt\xE5T\xC35\x8Ek\x8A\xA7V&gt;Z\xBC\xB2\xF2\xA9P;\xD7.\xB4'\xDAks\x87\x85Éõ\xEF\xA1\xCF_\xA6N\xD5~\x8F\xBE\xC2_YB.H\xB6 s\xB5V\xAE6l        \x85-B\xA2\xBC \x89D-\xC7q~!\xC1 B\xA2,l\xE1,~\\xC6c\\xC6\x9Fm\x89\x99c:[\x8C\x8B        \xB1`\xCC3(VK\xC4*b\xC9&gt;\xB1\xB2X\xB0\x9D\xB9^\xF4\x9F\xAE\xD3x4I\xA6\x80\xF92\x81\xB1\xDA\xDATee*..έ%\xAC9\x97\xAAQZb+
+eN\x8E\xC1\xE1\xC8\xC1$\xD8jV\x96(S\x80W\x93\x95J\xA5gpY, \xA1;s\xAFȁ7\x91\xFB\xBAzhs\xF3r\xD8w\xDD\xA3*mv\xA9\xDFt\x8F8\xE3RK4\xF6I\xEF\xE9q\xD2ť\xA5\xCDnR\xE5\xE4&amp;
+s\xC3E&amp;\xB0If )\xB3x*\xDB!H\x86\x8C~ \x99T\xB2\x90I% \x99T\xB2\x848\xCAb2:\xC01\xF0\xE9\xA1`\xA3L\xC9\xE9\xDC=\xD7u\xB4
+\x9E\xE1\xDA\xC1\x87ǨOrD\xF6\xD3kx\x9E\xF8\xAD=\x930Ïr\x9ANy\xD7W\xA2\xCD\xE4LY\xCDV_ʪ\xB4\xC7bOْh\x83 \xC17k\x89cq\x99y)}\xF0\xCB\xC0|\xAB        \xC6t8[\x94Ԉ{\xAB\xF7
+\xE8 \xBD\xE7\xA0z0k\xF1
+I\xF25q\xEF\xEC|\xA2\xF3\xE9;\xE9\xF5\xA2\x9AR\x8E\xD3y7\xC5\xF1OF_\x8E\xEB\xF0\xA0\xCB\xC9٧$,Ȍ\xEF\xE8\xC8\xE8(\xFF\xBEs\x90tnr\xA8\x800~\x96\x99\x8Dje\xE1\xFCt\xC0\xF9Y\x80\xF3ex\x99`\xFB\xAC\xCD V4&gt;+l\xEE\xD4s!\xAC
+k\xCB\xDCaw\xD9\xEC\xF0\xEC2\xD5\xEEr\xC7\xE4\x9C        \x82B#\xCC=z&quot;\xA4\xF8^\xF8!̨m\xD8.\xB8Ê\xB4\xF0\xAAB\x9AJ\xFA.ƌ\xB2\x8B\x8A\xF7\x81\x906K1.ng^\xF5e\xC5\xC5}\xCAr\xE2e(=\x88\xAD\x90\xB1n\xB1\xD4\xE6 q2J\xF2\xAA\xF3\x94\xE7\xE6F\xC29\xE1P[BVĺ\xB5ea[\x9FX&lt;\x8Bc\x81\xE3\xA8N 0\xE1\xE1ب2\\xD6\xCE\xEC\xDF        T=f\xB5\xC0\x99hb\x88\xAB\xE7V\xE5\xBF\xF2l\xFEp\xC4)\xBA\xAA\xFAL\xD3)\x99\xFD\x96&amp;D\xA9CUUzD\x93E\xE8\xBE\xEDA\xF6\xCEa5\xE7\x9B\xF6\xFC\x99a,\x99\x81\x91\xAC\xC8b\xC8brY]\xB2\xEE\xF4s\x83\xD5\x8DK\xAB3\x8C\xBF;p\xACsE\xB9\xFA\x8C8\x97\xE2\xB8|Lo\xCAKg]o\xF62\xC5T\xC9\xC5\xEFgkN\xA0\xCEܠ\xF8 Y\xD11f՛\xBEF\xA8L㟯\x81ri\xF4:\x8B\x86C8\xA2\xB5\xE8Ju\xA3t\xAC\xCE\xCD\xCD|:[$u\xEE|\xA4-\xF3Ui\x91\xE1\xD8\xD7)\xB6\x9F\x90d\x82\x8A\xFB\xDCO^\xAE\xFC]/9\xE8\xCD*\x94W&quot;3\xBAd\xA76O\xEFN@{}O4‰V\xEB\xD6^\x83gk\xA6v|x\x87j\x9E\xA8!\xB6~ h\xA2v_\x89        \x9B޵\xA8\xED¯!j\xB0I\xB6\xF7Ӂ\xA8\xA4xܖ^\xBD%/6\xCF&lt;\xA6s[}֎&amp;\xF0\xBC\xCAA?68twT\xF9\xB4]oq\xF5,\x89j1ػ$,zN\xAB\x8B\xE0]Y&amp;\x95\xC1O\xE92\xE8]\xCAn-P\xB9f1\xFBZ\xB66\xCB6e
+\xD1\xC2\xF8\x91\x8EԀ\xBDX        c\xB2\xCB\xD8f\x94\x87\xFA\xE2i\xE2\xE8gԏ\x9E)fc\xEAh \xA9Xd[\xE2\xB9\xCE\xDB\xCC\xDFṟ_\xE3٬\xDE\xC4?\xEE\xD9Z\xB2S\xBD״\x9D\xDF\xE1\xD9\xE5\xCDt\xA6\x8F]\x87ݸ\xB3\xEB\xACx\x98\x9B\x8AS\xBC\xBE\xF8\xD3\xE6\xE2\x97\xFA\xBC\xDD\xE7\x93&gt;\x9A\xBCP;\xB3U\xF4DK\x84h4$\x84\xF2\xB8\x9B3\xBF\xAF\x80\xFA\xE6c\xB6ܠ-\xECێO\x88\xF0\xDDyHW.\xB0z\xAD@\x84\x8C\xF3 \xD9\xC2\xFC\xA4\xC1\x90\xC7o\xB09jrÈ\x82AA:lp\x89\x90\xEA\x85\xC9\xC2Fa\x9B\xB0_8.hO\xA5sE\xA9\xA0&quot;\xF7\xE7\xA96\xAA\x{1AB3AB}*w\xBF\x82=\xDDM\xC7Gt|*\xAB\xC3HE\x97^\xF8^\xD2t\x8A\x8C\xDB\xE8:㌌\xA1\xBF\xB5o\xAB4R[&quot;,\xC6~\xA4\x86k\xA2\xEB4\xAApw\x9Di\xE34\xC5Y\xC1
+Y)\x91\x87\xA8{\x90\xA2غ\x90; \x9Ap\x93P\x91^\xE3T\xE6pfB fm\xA4\x89t\x83\xD9\xBD\x97^\xD3\xD4\xF0\xFC[=s\xE2\xDDw\xD777O\xDB\xD4Z\x9C:\xD3\xF4
+\xA36\xB6\xCE'\xCD\xEE\xA5\xE4\xED?\xE5\xC8%\xD7^\xBDg\xFA
+\xEB\xD6λ\xF19\xB3\xE5\xEE\xC1W\xF4׹8\xAB\xCE\xEC)xdz\xC7Q*\xFA\xAD\xD5R\x9Fsɬ\xF1\x93\x89t\xBB\xEA~&lt;`\x9D\xE5\xE1\xC8v„o\xF5\x96ʀ\x87\x8C&gt;\xB9\xB6\xB9K\xECn\xB7\xC3\xF2\xF9\xD5,\xD6c\x86&amp;};\x9E\xBE3&amp;h\x83\xF0\xD3\xC5և\xAB\xD6\xEAs3\x94&lt;\xA3\xF2\x84\xC7&quot;C\xD0Γ\xA5Bf~\x9Cgyw\xFE\xE5\xF7eW\xA9\x84\x93\xE9\x89h˄\xC1\xBA\xDD\xFEIY\xFB\xF3\x97L
+o1ȕ!\x8E\x9D\xA3ť\xFA\xD2\xC8м\xCB\xF2f\xE4=z&quot;\xF2&lt;ޥ\xDF\xEB.\xF7\xA0\xF25\xCDQŇ\x9A\x93\xCAh\xACE\\xA6\xA8\xAF\xC5\xF5\xFA\x8B\xFD\x97\xE1q\xCA&amp;u\x93~\xBEBy\x95~1s\x93\xEE&amp;\xFF
+\x81{\xFC\xBB\xFBB;\xA3\xA0\xA7[\xF5\x96\xBC\xF6\xAEl\xF7;$\xDB8MxA#\xB6B!;\x8F\x88L)\xDCK̇\xB3\xD6oょ\xDFmǪ\xCE\xEFw~\xB8\xFA\xA5,]\xEBG\x8F\xDD\xFF1\x8A\xCF:\xFE\xF4r\xE7\xB7/\xEC&lt;\xFD\xF2\xD4\Q5U\x938\xBC\xF1\xCF\xDE \xEB\x95
+\x87\x96Y\x80N\xEFtz3\x99\xBA\xFAN,\x84\x93C\xF6\xA3\xEF\xE7\x9E\x9C\xFE\xFDG\xAE:b\xCFu\xD4GDG\xE4\x8E 6E'\xE4\xCE1\xCFqώ\xDE\xE368\xC8\xC4\xD5B\xDFh\xBB\xCC&gt;7zE\xEEw\xA5\xCA\xE3\xB6\xD8=\xF9\x96|.\xEA\xF9\x8De\xBD\xE5A\xD7\xCF\xF6' n8\xC6Y\xCDn\xDEK׏\xB8}NIʇ\xEE\xB6
+\xF9j}\x9BB\xE5\xFB\xADS\xEBMIM\xE3\xA6^8`\x9EB^\x88\x91J\xDE\xC3D\x9Die\x8C\x8D\xB9\xE3\xB3\xEAZ\xD5\xF8mZ0\xE2\x8Cd\xAB\x8E\x93\xB2\x9Eo\xF7I\xA0G$D\xA5\x8C,\x94Ez\xAAl\x91\x9E#{eH8\x84*\xA8\xBC\x8C}\x89*\x95\xD1U!\xAAm\xECy\xF1\x9Dg\xA6\xBD6\xC6n\xB1:g&gt;v\xF8\xB5γX\xFF\xDA \xAC\xD1GZ\xC9\xEF\xA7wh\xF3?z\xEC\xE8E\xA3x\xA75&gt;h.f\xBD\x86\xE9
+\xDA[\xA0\xB47\x93}F\xA0\xBC?z\xEE\xE2\x82Y \xE1!\xB6J\xCA\%\x94\x8Di\xFC.d\xF1\x968\xBD^\x973\xE4\xD79By\xDA&amp;4\x83\xB6&lt;\xCA\x9AC0$\xF0~d\xD0\xF3j\xB2k\x9F3\xA0
+6\x9380\xF6F\x85f\xE0\xB6\xE3{\xDB\xE2\xCD\xE95p \xE4\xF2!\x82\xEC*\xBA\xD8\xFA\xB5\x93\xF0?C\xDA\xC1\xF9G}J\x87\xB78\xE4F\xD0f\xD2pBb\xBA\xDB\xC5.T\xE3\xA0 \x9FK\x84k1\xE0\xC3š\x88;C\xA32\xDD\xB8B\x957\x949Ө\x9Cm\x8A@\xC1H$\xE6\xFE\x8F\xAE\xFD\xE3
+7\xFCq\xE1\x87\xD2\xEB\xF9\xEF\xADy\xF0\xBD\xF7\\xF3\x9EⳳW\xDA\xF2\xD4\xE1N,\xB9\xFE\xF8\x8D\x87\xF11        \x937}\xF8\xE1&amp;\x82\xC9 \xD5O/Lv\xA3 zK\x9C\xADs\xAC\xB53e\xCC f 3\x9Dy\x99y\xD9\xF6\xAA\xFBw\xCC\xFD\xA1\xF7\xAF\xAEO?:\x8Cn_\x81/\xC1T\xFA\x87y/        L\xF2N\xCC\xF3^\xB8\xC5{\xAFw\xADo\xAD\xFFy\xA5y\xB1c\xB7\xEF {\x90{\xC5\xF7\x8A_\xA5y\xC9\xEA        a n\xCD\x9Cj\x85`\xD5\xC6z\x92\x9B\x9E-\xA8&quot;:C\xC1$Nn\xE2\xF1&lt;~?H\x91\x82w [\xB2Pt\xC4)\xBA\xFC\xF0\xD4ɴ\x8D        \xBAԬ\x91iu\xF0*         \xBC|\xC0ϴw}\x9E!\xF5\xC0Na\xC1\xE1\xE8\xB5dI\xC2L$U+\x8A~\xFA\x9D㓧/\xB3\xC6f\xB2\xB8,\xA5\xDF\xDE\xFA^\xE7ql&gt;\xFC&amp;֍w\xBF\xBDz\xF5Q~\xE4\xB1C\xD5\xE5f\xB7\xD5j)\x8F\xBD\xAF&lt;\x94\xE3\x9B[\x97mݲ\x9C\xF0\xEFG=03\x81^\xA3\xA2a\x94\xB2Yy\x9B\xE1\xD6&gt;\x9B \xAD\x86\xF1\xE3G\xE3:\xA7Ƭ5\xB6XB\xDAD1ꃁ%V&lt;\x87P\xA8\x88v,\x8A \x98\xC9 \xA1hS\xBE\x90\x83t\xB9TZ\x8D.\xB8(\xEA\xFA\xA2B\xF4\xA1\xA8\xB9F4\x96\xD8E\xFB|\xFB[v\x85\xDD]\xB1x~]\xD6)A\x97\xB1TY&gt;\xA5\xBCl\x99b\xE9\xA0Fcz\xAD\xC4k\xEA\xA5Wj*\x88{\xA1B (\xEE\xCD`&quot;\xA0\xBB\xF5\xD6󮝀\xD9hB\xB7\xF5\x95ݞV\xD0-\xC1\x94\x8Ev\xCC#\xEEk\xCF\xF7\xB9-\xF7-\xB9\xAB\xDC\xEE\xE25\xB6\x87f]\xB3\xDFC        \xAD\xB1ch\x9Aev|\:g\x83C\xE3\xE08'\xEB\xBCj\xF0R\xCA\xFEf\xFE\xAA\xF3\xC5-\x80\x99\xB9\xA8\xFB\xC5&gt;\x83\xF9\xF9&lt;\xF3\xA1\xF0\xA7\xE8\xE7\xC2\xC9\xE8Y\xE1LD57\xFF\xEA\xA2\xE9%\xD3\xCBo4ޜ\xBF\xA0\xFC\xDE\xFC\xE6\xF2G\xF2W\x95o\xCE\xDFT\xBE\xDBob4\x84L\xA3B\xABTj\xB4!\xF9\xE3}\A\x8B3ui\xF2\xAF\xEE#uq\xAD\x8E\xA9ax\xAD\xC2*\x9C\x97\xC4A\x9D΢ݤmѲf-.o\xD3\xD1*\xB5\x9E\x8Ab\xA19\xBC2\xBC)\xDCV\xEC        \x9F\x9F+\xC2\xEED\xC1\xD4\xC8J\xA9\xD1̓\xCA  `\xEA$!\xA9\xA9\xF4\xEA\xC8\xFE\xBD\x88D\xEFAޮ3\xC8\xD3u\xA6\xB5@\xE3\xCEZ\xFDD\xE6\x99 5\xA5\xC4\xCB7\x94\x93\xC0&quot;GI\xF7\xF4\x96\x8C\xE8\x84s\xC1*^mb\xC2ݶ\xC7\xFA\xF5\xAD T\x84\xA9Hp\xE5e=\xAC\x98\xDC*\xF5}\xD7\xFCI#\xE8r\x95\xAF\x86-\xC9u\xDC\xF5\xF6\xB3g\xCF&gt;\xFB\xF6]\xAF-_\xFE\xEA\xAB˗\xBF\xC6^G)Ʈ\xB1\x83
+/ϣ\xEB .\xB9\xB8\xA0\xE6\xA7]\xEF܉Q\xE7\xF0^c\xF5o\xBCma\xB4\x85\xAB\xA1-T\xE2kŢ\xB5\x9E\xB3AF\x81\xEDx\x86j\xB1j%~\x80لgZp\xA3{B\xF5\xA4z\x87r\xA7\xFAe\xF5{\xEA\xE3\xB5GcuR\xBAm\xE6&lt;\xC3Or\xF1\xBC\xD3\xB2\xE6\x97P\x86\xA7pRiaaIi(ߢ\x93\xE8\xBD'щ\x83\x90E\xE2_\xF5\xD1I2\xFFJ\xCCo\xC3%\xD4\xEAq\xA8\x93\x85\x80\x8A\xFC\xBC&lt;\xA8\xEEJ\xA4P[tm\xD0}܅\xA1\x9FxL\xD4@B\xB0\xCF\xFE\xD2#\xA5Li;\xFEg[\xFF\xA1S3+\x9F\xA5\x81aUG\x9A\xE4Sq\xB3\xB5\xFF\xFF\x89\xD2S\xCF[\xE9Iw\xDCu\x80X\xB4\xC2D\xBB\xD5ꑵ[\xA1AZ&lt;^\xA5Z\xF5*\xDD\xECQ\xFB\xA4&amp;I\xECvu\xCF{\xEEB\xAA\xAE3;\x83\x86/q?\x8D\xD2D\x9Bdѫ\x9BG\xCD4]y\xB9\xFE\xF9&amp;@\xF1\x98Q\xAB'N\xBBg\xD2\xE5\xB7;\xD0\xF9%5ܶxRM\xC9U\xD9+\x99h\xCB\xBE\xE8\xEC\xF8\xA1\x83W\xD4w|\x9Fi\xBF\xEC\xC4\x8B\x82K:&gt;\xCFXv\xAC\x96\xAC}\xA1}\x80
+% ؁\x83]*\x84\xDCen\xD1=\xC6=ݽ\xC8}\xBB[m3Zx\xE0cUm\x83R28|\xEE5v\xE0cٗ\x98v\xFC\xC0s&gt;\x95ѠCx&amp;S= CL
+\x852h\xAF\xE71\xEF\xCE\xBD\xB4{\xA4i頵T\x95\xFA\xEET\xAF'\xCA^ fW\xD8\xCEY_ \xB3\xF2\xE6\xA5x\xF9\xEE\x8C
+\xFB\x96h*\xAD\xEF\xBF\xDF9\xFA\xA7\xAF\xB3(\xF02\x84.\xED輅\xAD\xA4_\x96\x836\x8Aq 1\xAC\xC9X؉\xE6Fpw\xBEE\xE6fԌ\x9B\x99fv\x8D\xD94R\xB3B\xB3Q\xB3ٷۧ\xF4i\xBCd\xBA\xDA\xADY\xA9\x87\xF1\xEA\xB3\xCF)!\xBD\xF4\xC1\xA2I\xAF\xF2\x8Cu9\x9Bɱ\xDAO\xA6'\x8BV\x86aY\xC0` \xE6\xE4\xD4+\xB0\xC2\xEDߍw\xE2?&quot;W\xF7\xF4]X\x93\x9EB\xEC8\x99\xFA\xAE\xA3{&quot;\xB1\xA0 \xF9r\xA1{\xEDa\xF7\xD2PeY\xDF
+\xE6\xF8ͷv\x89Ȁ\xDA\xD00pl練\xB4so'_\xDF\xF1m\xF9\xD3\xE7\xAE,
+І\xEF\x95\xD0\xCA\xF7C\xBD\xAE\x86V^\xC1\xB4\xEFB\xF9\x80\xC6c*\x9F\xAC\xF3\xE4
+\xD4\xEB9}\xEAJۓ6\xE6`\xF0\xD1\xE2\xFC\x82D^E\xFFH*:0?\x95\x98\xC3\xCF        믰ᰭ\xAF\x8D\x89\xF3\xF5\xF9\xEFG\xDFO|\xFD&lt;q6z6\xA1\x90\x98\x99S\xB1\x99\xDFVE*\xC2a$\x91q}\x86\x86\xFBH\xA3߁8 /5XRj\xCC8\xEF\xC0\xA4p 
+\x87|aTTN\xA9Ei\xE9\x90Diiy&quot;T\x94\xA8\xB0\xEAiB\xA6\x9Dɤׅ\xACDgFP\x92°k-\xD5yy[a\x8C\x84\xCDϟ\xCDϏEC\x85\xD1H4        V$\xF8\x8A\x8AD\x98\xB7q\xB6 
+\xF3\x85\x91\xAD&quot;\xC2+\xC38\x94\xF4\xF9\xECI\xAF*\x96,,O2\xFA$gE\x9A$ft&lt;Bk\xE7\x85qx]42\xAEb7ބ\xA2b\x9C\x9FhN0\xC1DibJ\x82Mj\x94\xD3\xCF}?\xF4&gt;\xF3\xB5\xCDZƢ
+jK\xE1\x84\xF4C*\xAD\xBB\xEF\xFCj\x96\xA6\xBA\xFEɶd\xDD\xEA)Y\x86\x95\x96\xF9Ӆ8\xB2V\xA7\xB3\xFF]\x8AbI\x96j\xEB:\xDA\xE6\xAF&quot;*wG\xDB|\xFD$\xDF]&amp;\xF9\xCE&quot;\xEA\xB7v\xAB\xFAc\xA2\xEB\x97I\xD6\xFE\xE59\xB5\xF3K\xC2z\xC7RV\xF2\x8BJ\xFF\xB6\xAEm\x9EH\x82\xA7z\x84Vb\xB3\xE5D+\xF8\xD4p/\x9Dc\xE8\xE6\xA0\xC3\xC0A\xF3\x9A(1\xA2\x9C\xE8\xFA.{\xFD ĀX\xA3\xE4X?\xB4E݉`f};\xE3f\x94L\xBB\xF9\x9A\x8C\x84M\xC8H\xD8\xCE\xF0\xEE\xCD,\xBE\x84g\xC6i[1\xC21\xB5\xB3o\x9CJEN\x93\xD0d\xE7C\xF8\xBA\xCE\xDFd
+ą\x84|P[&lt;_t6fp \xA1E\xED\x81\xC5C\x8Br\xA1&amp;11;\xD0~\x9B\x98C\xE1\x81Kl &quot;粯\xB1ZC.\x8C!\xC2A\xAB\xC5Ro\xD9oa-nw65\xA4F|\xCFO\xCFKW\xF5\xA4_\xFA\x97:duȫ\x9D\xD8Q\x9ElS V\x99\xFB\x99+M\xFD\xCD\xCCU\xE6\x81f\xD1\k\xAC\xE5b\x86\xBE\x86\xDE\xD6BE.q\xBEi\xEAi\xBEE\xEAE&gt;e_u\x99o\xB0z\xB0o\x9CZY\xAA\xE97\x90\xB6\xCF\xE3\xF0\x80!\xD5 \xAC\xF5\xB3\x9BI\x90?\xC8\xE1Q\xDC[\xDC        \xEE4\xA7@\x9C\x859\x96b\xE28\xB3)d\x8F(\xA3\x80B\x96\xE2\x85\xFEP\xB4o\xA9Xn)gʇ\x94\x94\x97\x97\x96\x84\xFAI\xE0\xCC㵸vH\xAA\xB6VL\x85\x8AJT\xFEXqQ^\x8EO\x85\xD5\xFD\xC4$\xA2*X\x8F\xA0ղ\xEA~}\xFBF\xA3v\x9D\xD1t:\xC4@E\xA9\xA3\xD9\xC18~\x8A\xE5\xF8\x83\xB91rk\x8E1\xB1\x9F\xAAQI0UMY\xA8z\xF5\x91j\xB6\xDA=\xB4\xE0YW\x96̄\xEClQ\x95\xF12K!\xE5\xA5qi\x992\xD7\xFD\xD646\x9D\xBBx&amp;\xDDjT\x84
+Sf\xA27S!s\xC1\xBC|\x97[gP(\xF5\xD1|En+Un\x9D3\x80\xF3\x94\xEC2x\xA5\xAD@R|MM\xC0nx\xBB\x97\xEE꺾@
+u\xD71x\xD71`^\xFE\x94\xE6=\xB1d\x97OMr੦\xEB\xFD\xC1'9i_2\xB8\xDDd\xB3K\xFB8С\x83\xBD\xDBv\xABd\xB7\xE7u\xA7һ\x91\xFEm\xEEU5ӄʅ&amp;\xF6J\xED\xACY^|E\xCDzZߧ\xA8p`-
+\xFE\x98\xEA\x84\xD3Svڸ\x85\x83\x87 \x9C\xBCdB\xC7N\xBAw\xC3C\xE2\xD8\xC13;\xFED\xCFWՎ\xCFɟ!]tF˯,X^\x89\xEF\xFB\xBD\xADz[\xC3T\xD40\x8FiZU\xADv\x81\xBAY\xCDLW\xCF\xD0\xCC\xF0\xB2\xEB\xBDO\xA8\x98\x9Bmx\xC3\xFAs \xC2
+\x86\xF1k8Ia\xB6\xEC\x8C}U\x86        q\xBDyZ\xA9K2!6
+\x91{%\x89\xA7\xB5\xA0\xA8%\xCA\xF4bl\x8DC$ƶ,Y\xA9»\xF1        \xC4\xD3E[\x8E\xA0P\x8F\xCBqV\x9DV\xF4wc7\xE9P,\x94\xBD]Y\xBA        \xD8[7\xE1m\xBBY&amp;\x99\xB3\x95\x90\xB3\xE3 t\xFF\xF9z\xDB\xFF\x94\xAF\xE5\xBD&gt;\xA5F\xADQi\x95O        \xE7\xD5\xE4H\xBCm\xE5m\xBD\x9D&gt;\xFD\xCBv//\xA1\xD7j\xA6\xA9        8\xB8\xBE\xF2\xC0\xF3\xEC\xE8\x89E簷\xE3\xEEk\x9CR_9\x91\xE2\xC3Gt        \xC1\xAF\xAF\xBE\xF4\xC6\xD9ܭ\x8C+K\xEB\xF2\xFD\xCB.\xEE\xF8\xB2\x9B\xBBm\xBC\xA9\x{18E3AF}z!\xF0\x80\xAB\xBA\x8E+\xAAC\xF4ȉ/+9\x87\xC2\xC1;\xEC+\xF8\xFD\xDB\xCC\xCA?\xAB\xDF֫\xE6\xAAg[\x99\x99\xCCL\xC5l\xCDl\xDD\xE3U֙\xB6+\x9C\xBB\xC0\x9A-\xABת
+\xA2\xF61\xDC)ꛜ\xD4\x8D\xF6\x8A\x84-\xA8M\xB3\x9D\xB9Ktq\x82J$\xD63D\x883O\xB5_uDuBuZ\xA5T\xB5\xE3\x8F\xDB\@\x82\xD2\xE3\xE8\xDCNu4- C\x86\xF4\xAE=\x96\xE1\xEFA\xE0@\xF9\xAE3;,\xBC\x89w\xEE\xEE\xFAz܏ی~\xAB\xBF{&lt;\xD9D\xA7\xA7Ȍ\xAD\xDEA\x80\xF0ı\xF1\xA6\xCD\xECO\xE9yp4:p\xD4ı\x93\xA29\xC0\xF1\xA9y=7\xC1q\xF0Vg5OO&amp;Oۻ\x8A\x9C\xE8t\xC0\xACi\x88ð\xE6@N+\xE5g\x99\xE2$\xB2۴|&amp;[\xCAU\xD5y\xEAŃ\x9D_`\xEE\xE0\x8B\xD86\xEE\xA3M\x9B&gt;&quot;\x80\xB7\xE8&lt;\x8D\xAD\xFB\xC9v\xA7_x\xF4/\xC7\xD9p\xE28\x91\x9Cw\xDEB[/\xB1\xB2Z$\xA6\xFA\xE8\xCC\xFDs*\x8AF\xE3qL\x93q\x86:Q\xCD5.\xC27\[\xAC\xFF\x83\xEA\x80\xEE}\xF5\xFB\xDAc\xB9\xEF\xF7\xF9T\xF5\x89N\xE3f ٛ\xD4\xF7\xB2k\xD9-\xAC\xCA\xE1\xA3M\xD6]\x92\xE3v\xFBrB\xA9\x97\xD2s\x87{tI5\xA1\xB97\xC2\xC6\xFCs\xD2\xEEK\xA6\x9AJ\xBD._\xC0\xABjHFU1\xC1\xAC\xC1Oy!2\xFD\xE6i^\x91\xE3.\xCB\xBES\xD6.-z?UE?'?\xF8eE\xD9l\xF1X\x9E\xA1\x94\x8C;\x8A\xA8\x9A\xAC1\x88I\xAD\xF7\xE9\xFA\xF3\xF6\xDCp\xC3 d)\xB2\xD4ʈt\x87\xD1\xCFۤz\xC8҇oY|\xF3/\xEC\xEC\xD8\xF7ѽ\xD2t޼,\x91\xFA#zx\xEDѣk:\xCAN[;qҢ#\xD7\xEE\xEC\xECz\xBES%im_\x91\xA4 \xD1\xECUG\xDEZ\xB9\xEA\xAD#D        u\xF7 \xD4]\x95\xE0K\x88\xBD\xD7\xEFZ\xCD\xFD\xF3        \xF2U\x9A\xFBoEOy\xB7F\xD91h\xB2g\xBA\xC63GX\x88n\xF6\W|ZxmlC\xE1C\xC5OǶ&gt;Yl}&lt;\x8C\xD7\xE7on\xCEg\xA5\xF1\x83)[ $\xD1f\xBD\xFD\xB0L\x96%2&lt;\x86\x90\xE1\xF4\xE0yr\x8B\I\x8E0\xF2\xA6&quot;\xC1\xA7\xD3        Q\xAE\x80V\x87\xD4\xECֺ\x83\xCD:l֝Нֱ:O\x9F\x81r\xDBh        (\x8ENN؀\xBB4-DΖ \xD1|@z\xA1R\x89t\xAA\xEA\xE7\xC4B\xE8\x97\xC4\xCA\xD9\xEB\x91 9\x95#\xE5 \x89!\xE0&lt;&gt;\xDE5\x9B߫f%\xA9\xFDyW\xD9IB\xD1H/\xF1Ж\x97\xA8$\x99ʓ;\xE7S\x91޲\x8F\xF7vv`\xF6\xF7'\x96}\xF8\xE1\xA3\x98W֒&lt;\xFBR\xBAF\xF1\x8F\xCFc\xBC\xF3\xB9\xAE\xCEᫎY\xB5ꭷ\xA4\xFD\xD8%@\xED\xED&quot;\xB3        j\xEBus\xB8\xB8{\xB8U\x8F\xD8\xD4&gt;I\x8C8,\x8F޼\xF6\xDD\xCCV숢V\x94s[\xC5\xFA\xBC\x91\xD4\xD6E(\xAE7\xF1t S\xA5ڈm\x887Yt\x91h\xC5U\xBA\x94:C\x8B\x91!\x99WgV\x9FV3jO\xE2\x83sxTX\xE0\x9D\xAB\xC2\xEEŽ\xFB\Y\x9CȒZiE-ݱ\x81\xAC\xD3Vk\xB1\xB5\xFF\xBF\xAB\xA0\xFE\x8B\x9D ԜU\xAE\xB9\x9D6\xDE\xE4\xE0|iJnu= \x9C\x9CO\xCB0\x8F?6x\xF8\xADn\x9B\xCEd '\xDC\xFD\xD6\xEFNj(\xEB~5ſFűӎ&gt;0n\xA6\xC7\xE6V\xDBž\x86͝        Z9\x9C\xD5\xC9\xEC\x95\xF9\x9B#d\x9F1heu\xF8+\xF1n&gt;\xE5\xABa\xB8KP#\x9A]\xB7%\xB8\xA5\xDFU\xBEn{e\xD0_l\xEF8ީ\xFE`\xD0?m'\xF4\x93\xEDL\xE2\x87A\x9Cަr(\xAB\xB5\x836\xBB\xC3^\xED\xB4,\xB4&amp;\xB1Ǭo\x9BP9\xBBrN\xF2\xC6\xCA[\x92\xF7Tޓ|\x82o\xE5u\xF7%w\x98њx~8\xD6GX\x95\xF0\xB8\xCC&amp;\xB5\xDD\xD0%\xCAJÊ\xE2\xBEf\x93\x81\xD5!\xD6\xEAN(X\x85Z];\xAE\xD8\xC1\x89\xB2~P\xF4\xC5\xFA
+J\xAA\xC7\xF5\xEA\xFDD]\x9D\xF5{\x86\xF4N\xE6\xDB\x91\xF4\x92\xE8\xC5\xC6y\xF98\xDF=\xB8Vͪb:A\xB9\xDC\xE4\xA8*\x92\xBCQ\x8E\x9F\x92m-P\xEDuR\xC7Mݪ\xEB\xFD\xB3\x94\xD7e\xFB6\x9Cd\xA7\xB8\xB2\xDF .\xE8\x8Bڢ\xCEj{%\xBD\xFD\xB8_n\:R\xAEr\xBA\xAAȩ^Ɠ\xAC\xAA \xF4
+ \xBE\xC6JYij\x85\x81:\xB2\xD2\xE5qҵ\xBF#\xC9't\xBE\xBD]\x9F!'\xB4\xDE:h\xB6\xD5|?h\xBDm!G\x95\xAF[\xAEK\x95A$\xF5\xA5J\xE8c\xB50\xECH\xF2\xE0T\x92\xD7e\xB1\xC38u\xA4\x8B\xAD\xE3\xA1S\xAD\xE3\xF5攏\xA4%C&quot;=O \x9E8Y],\xF4\xEE?gލ\x98p\xCFR\xC9\xE7UY*\xF9\xDD\xE6\xDDscْ2{\xB34\x9A%\xF3z\x95c\xEEZ&gt;29\xA4\xF4\xCEmuS'\xBFy\xE8\xD0R\x8D\xDDH\x95\xF2\xDD\xCE\xF0\xDAy\x8Fo=\xA6\xF3\xD0ݗ]\xBD\x95\x8D\xE7\xA6\xAE\xF4{\xEE\xAA\xDC\xCA\xFE\xF1\x8A\xAA&lt;\x9F\xD9\xE6
+\xDF|\xD1ܧf\x86x\x93\xC7\xFF,\xA0\xAF\xBD8P\x9A\xBA\xB1ndII01\xABꪥd\xD4y?p[I\xB2V\xBD&quot;F\xCEz\xB1\xD1\xEB\xF12\x8F\xEBv\xEA^\xD4\xFDIwR\xA7\xBC\xCEt\xA7i\x8D\xE9I\xD3\xCB\xFAw\xF4*\xA7\x86쭰)\xF0\xB5\xA2]\xA3P\xA85!l\xE1\xB5v\xAB\xD9b\xE5x\xA5ېߎ\xAD\xFEd$\xA2Nb\x8CT\xC1\xAD\xE7\xEFV\xB4\xE3\xA7E\xBE\xB0P\xA3
+Ƅ\x97\x91\xCF\xE2 \xFA\xE6\xFB\xF6\xFB\x94\xC0|\xD2VDzd?-:\xCDr&amp;m\x89,\xA9\x96&amp;Jϱ\xF9&amp;ͯx\xBC:\xBDޣ
+ \x9D\xD7@\xD2\xFC\x8Al\x9C#\xDD­|\xEF)\xAAXE\xCF\xF9\x87\xD8}\xBA:\xBF\xB3r\xF1\x82q/\xF7\xE3\x8D\x971\xF8\xFD\x82\xD5[\xA9\xFA\xF8zR\xEC4Ҹ;\xFEx\xF1\xB4\xF2\xA0\x91\xEC\xAD#\x8C\xF8\xCDb\xA6\x84R{a\xA4'B96\xB2\xD3P.Pb\x83N\xB1\xD3\xC1\xE49\xB0Gc\xD6R
+l(\xD1 ZM\xC8,M\xA4\xEA\xBD#\xE5\x89\xD4\\x81\\x91\x8D \x86#!\xCA\xC53\x92(W\xE7t%~\xBFY\xA3MZ\xCC*^`\xF5\xC1 BN\x83h\xF3-֠\xE6\x88\xAB\x89\x80=\xAF\xB7\x80\xBD\xAAJ2n-\xEB^I+\xFF\xED\xEE0MnE        \xB1
+\xF6\xA3s6bSܦ\xB0\xA7⥒\x97\x9A\xA1Mn\x86\xFB\x90\x9A\x9F\x98!\xAE\xEBcyƐ*\x80\xE4f?\xAD\x9B~ݗi\xFD\x8F;\xB7\xBEI\xBCT\x92\xCD\xF9\xC6fZ
+_\xD2a\xC4Mj3~Z\xCB\xC7\xCC\xD9+\x9DJrdRI\xE8
+\xEF\x87:\xE3\xC9b\x9F\xCDx3\xB7\xC5\xC6uA}\x90\xF41\xCDA\xB9%q%7\xC0vs\xA5u6?;\xBC
+&quot;=c\xE3\xC4&amp;&amp;\xA6\xB6\x8Av#2Z\x8C%F\xD68\x92\x9A\x9A
+鬜ԉ\xC2\xD7p\x96\x94ؑ\xDAJ\xEC\xD1N\xA2\x86\xA4BZKbϔK\x92{\x8Ë=\xAD \xC6A\xCE\xCA\xC38\x92#\xB4\xF1\xBC\xCD\xC6\xDB8\x8Ct\xB2\x80\xD3kI\xEAؤN\xAB
+'\xF9v&lt;G\xD4ۘd\x895e\xDDfe\xAD\xBB\xF1d\xC3Z\xD1(r\xB8\x94\x9B\xC7m\xE2\xDE\xE2\xDC&gt;\xBC
+p&amp;\x8AY\x9B\xA1O\xA9\xFF)\x94\xB5#U\xF5\x8B*\xFCM\xFF\xC2L\xEC\xCFk#ӭ$\xC3\xE7\xF5\xCA{\x870-\xF7u&gt;u{Q\x8B\x94\xCBp&quot;\x8A\x8B\xA5\x8D\xF9\xAAȌ\xC88֘6\xA2\xDD1T\xFF\xA5ea\x95]]\x8A\xA0&amp;\xF3\xD8B\xF1\x89&lt;G\xAE\xF3N\xF6\xC7\xCEvf\x97c\x87S\x83 \xB3Ա±\xCD\xF1{\xC7qG\xA7C\xB3\x89ia\x8E0\xACF\xA1\xB1\xBB.{\x93\xAFȳ\xE7:+\x95\xF6\x8B\xD9\xC7+\xC6\xF3
+\xF6wC\xDEx\xAEb\x96\xFDJ\xE7\x95\xEE+\xF3nR\o\xD8\xF1\xA0\xF3If\xB3\xE2w\xF6MΝ\xCCE\xBB\xBD\xC5\xF9\xBC\xFB\xF9\xBCW\x87\x9C8\x8E:\xFF\xEE8\xE9\x8C\xEB^G\x9C\x89;\xE2λ\xDCw\xE5mq\xECq\xBC\xAC|\x99\xFF\xD0\xF17\xFC7\xE7\xCCY\xC7N\xAB\xA4Cd\xB2d\x94\x88$-\xFE\xADb\xE1\xFCF\x91`D\x8C\xB0\xA7\xC9٦\xC8[v~\xA49\xC2\xB5~&amp;YKu\xFAC\xB2N\xFFV12]r\xC3\xCD\xFEz-\xFB\xA5o\xA3\xEA\xFD,\xB1Z\xA2]K\xD5\xFBC\xB2z?`eNN        \xD5\xEDݮ5T\xB7\xBFk\x98X\x96\xD6\xEDft\xFB\x83Y\xBA\xFD\xC1,\xDD\xFE\xA0\xACۿ\x9F\x80\xE1\xF6&quot;\xC0\xA6D\x89O\x88a\x8B1;V\xA1\xCBM
+\x9EdЖ4\xAA\x92!4
+\xAAy.\xEC\xFA\x83\x93i\xF4Z\xEDK+\xDCb^&lt;\xE1\xA3\xB9\xE0\xE4\xF8\xC1q{\xC01[\xEE\xA48%\xE7\xED\xC1OQ\xA5\xFEe\xA2\xD31\x8E\xFB\xF4O0$C\xE21\xA2Ś`\xDA\xF1S\xA2Q\x9Cb\xC7\xF6?\xF0\x8A\xD5|RID]\xA5\xC4k\xAB쟠\x97q\xE9^C}H\x81\xFA\xF0&lt;\xF5!1⋜ÙP\x8A\xF6\x8A\xA5\xCAJ\x86\xAC`\x94\xFB\xF0\xC7(?\xAB\xC5|\xD7Ԕ\xE9\xBBO=\xFF&amp;\x8F\xBC5.]Д^?\xF3)\xB9\x89\=\xD7Ƥ\xCE{\xE2p\xF2/8G\xC8\xDFԴ`\xC1\xB9a\xE7\xCAk\xD2\x87\x9Dy\xB7Fa\xE9fh𵂚es\xD9^\xFA\xAB\xD9j\xFE\x99=}\xAB}\xD6\xD6\xFC\x8C*\xEB\xDC5m3\xDAW\xCC!\xD2\xE9O        ӛ\x87_\xC7I\x9C\xD5B\xAF`\xF8\x8Eϙu٭t&amp;\xD0\xDB9\xD0Jk\x99\xFB\xC55k\x80c\xB8J\xEBx+\xE3%2\x96@h
+\xBE\x9A\x9B'\xCC O\xA9\xFD\xFE\x83\xE5M\xEEM\xE1\xF5\xF0\xEBe/&amp;^\xAC5k\x90 =bN\xA5\x9F\xAA\xF1%5~\xAA\xDE\x94\xD4\xFB\x99$N\x9A\x93@(mI.)$\x83IO\x9FdY2\x92 ' %k\x93\xC9D2)\xA6U\xF8s\x8B\x8BsS\x8D\xCAD;.\xDE\xAC]\x97\xB2\x90\xC9&quot;/Q\xE5\x87\xC1\xA0DL\xD4\xF9י\x95\xF35&lt;\x83\xCB\xE0~[x].G\xE3        \xEBr\xCD9%\xB2A\x99\xE3\xAE\xD3\xE9&lt;\xBAUR\xF5\xE9n\xAC\xCEl\x81\x96f\x84OfL\xF0gi\xF57\xF5}\xA2\xDAOU\xF8\xC9&quot;\x93S.\xCBɴN\xBF\xEC{\x90\xAB\x97F?u\x94w\xA7\x95\xF4_\x{D964}\xBFEV\xD2\xFF\xAE\x8D \xFFc&quot;\xDB\xFF/\xADު\xEAs\xD4\xFCŰ\xA5/YP\x98Y\xA0\x83\xC7,~\xA2\x8D\xEF'\xABB\x99\xA72\xAA\xFDR׿\xD3\xEA2\x9A\xE5\xED]k_\xB6E\xE7\x80d\xAD\xFF\x8FE-\xA7OY\xFDz.UN6\x89'V\x9D\xC3Ym\x85.\xB3\xBA\xB6\xC6ϥ0qj\xFB\xF9\xAC)L\x9C\xDA~^ \x9C\x81SK\xF6\xA3\xC4\xC4t9\xC1\xEA\x84\x9C2\xDE\x{DB76}\xBE\xBB\x8C0\xDA\xE0s\xB2_\xDB\xDEu\xB0\xCD\xC2\xC9\xF7A\xD1'\xE1*p\xE2\x9C\xD7aƱ\xB4\x8A엖Ȼ\x97\x9CG\xF5[f6\xE1[c\xBCF\xE9_\x93F\xB1\xACsW\xE7ځu~\xE9\xF7\x98m1|k\xE73\xDC\xFF\x84\xF4g3\xB0\xE7\xCC M\xE8r7\x82_\xEA\\xA1v\xE5\xE9\xA8\xFE\x9D\x87$Y\xA7ѡ\x86\x81\xE9Ez\x87\xC8h\xBE\xC4V\xA9UhUk:oQ&lt; \xAD\xAA \xEFf\xB98W(n\x9C\xB8\xC2Zo\x9Dgm\xFF'\xA4\xD7چۆ\x85f\xE1Y\xD6\xEBmׇ\xEE\xB6\xDD\xDAe\xDDg\xDBz9\xF4n\xC8M\x93+\xE3\xACe6\x89\xA7\xF1\x8D%f\xC6\xF27\xFB\xB1m\xC8\xEF\x85\xBC\xA10YG\xB0uGq):\xE5\x85\xA1x\x99M+)*\x95k%@-F\xC4t9\xCER'v\x96P3&lt;!\x8F\xAD\x8C\xAC&amp;\xD8*^\x9D\x9B[B\x97\x84
+\xC2![YYP\xB2\xB7`\x85\xE6K\xF6\xBB\xE0l\x97\xC1
+Ί\x91Ư䴄\xF5\xF1z\xF9\xA4\xC7-\x9A!\xACO$Y\xD0'\x8F\x98\x90\x94\x9F\x99\xEF?\xE1?MF\xA6\x89Qd\x97ET\xCEW\x9EP\x9EV\xAA\x94\xEE\xF2\x82ݔ\x8AKM5-\xB0|
+\xE4/-d\xC8b~dMK\xB2/\x86R\xA6\xC6\xFFb\xC2\xF5\xDFe\x88җ\x96ޱ\xD5K\x95F\xDAo[\xC0\xE9}#ϋ^\xBD\xE6A\xE6\xAA\xCE\xDD~\x8F\xD1\xEE\xA0\xEB        \xE0\xF1x\xCCy\x95\x8A\x85/\xEE\xF8\xFC6\x8A{t\xF95Vm\xE6\x8Cv-%\xCE\xF5\xCCv        \x85\xB9\xBA%F\x84F\x9FB\x88\xFD\xB0ɉ\xFE.\xEALDD\x8C5&amp;\xB3\xAF\xEB;d\xEC\xFA鐂\x8CG\xD4%\xD4\xCCRH\xE7\xA0(Sg+1\xDBls\xC8a\xC2 \xC7\x8D&amp;\xDEh4
+\x8C        \x8C\x8C\x9B\xCCA\xE4\xAE7\xA87\xE8p\x93&quot;i֥t\xF3\x88\xBC\xCE\xEDh\x9AG\xB6tv-\xCEэ\x90\xF5\x9D\xA9&amp;\x89\xF4\xEF\xDE]H\x9DdL\x94\x91&amp;\xCDҍ\xB9\xA2&gt;P,\xF0\xDFkz\x95&amp;Q=\xB7
+뽇\xB5\xA3\xC7v\x9C\xB6&gt;\xAC*pf_1\xF6\x9D\x8EeL%շ\xE8@̵\xDFI\x83\xBB\xE1\xE9ч\x873/^KN!\xCCTuv0\xAB\x9F!#vA\x95\x8BF=\xC2        Qk\xDC&amp;y=FՈ\xF4\xAE㬼F\x9C\xBE\x93Y\x85\xE5I
+\x97b\xEB\x8Fw\x91\x957\xF9 \xFB\xA0\xAEO\x87[\xC8\xDC\x8A\xE2\xA0i\x9Ay\xA6i\x96)\xFC5\x8E[L , \xF8\xA5\xED&lt;E9W=O?\xCF8\xCF:\xC56\xC59\xCFW.U/\xD5/5.\xB5η\xCDwZ\xD8\xC1\xECP\xA6\x9F\xC6&gt;\x81\x8D\xFC\xC6קF\xC7&lt; C\xB0c\xC8Dzh\xEA\x87W\xA0r|lgpH\xE9fH;c\xB5\xBFa\xCD\xFB\xB8\xB3\x90\x87
+|\xACu@&quot;o/&lt;\xE2\xE2\x8D;
+\xD05\xAA\x92v|L4\xD4\xE3&amp;\xA8\xDC\xB1\xFA\xE1ut \xA2\xF4\x96dd\x9D\x87\xB4\xC9'e4AWu\xF2\xD4IiF\x85\xD8i\xD1p\xAF \xD9\x9CW\xC0\x99\x83\x813\xAB\xDA\xFC
+6\xEA\xC1\xB1)\xED\xAF\xFBN\xF7\x9Ed\x92~]\x8F\x99        D7\xBD#\xE7Y\xE6
+z\x88S\xA4\x9D\xE8{\xEC\x9BGc*u\xAE\xEB\xEC\xE8\\x87\xAF\xE8\xE8\xC4W\xD4u\xBE\xF8\xF1G\x9D/\xE0\xD4G\xE3\xEAΧLz\x9DQiPk\x8D [:h\xEC\x8C#\xD7\xCD\Ԡ\xD3\xEB
+Nww_\xFFÿ^\xC2\\x94y\xD2!\x91^\xC4\xD5\xF8\xFB\x90\xD5l\xB6\xDEnҫ\x8D\xE6&gt;\x91\xB2\xD4es.\x9D\xFB\xC8\\x83A\xE7[4\xAE\xA9\xE2\xE2\xA9s~O-1\xB3_\xBEh\x91
+Չ9z\xC6\xCB0\xAC\xAB\xAD]:6L\xB4\xE9龱\xB3\x8B\xFD\x8D\xB6\x9D\xF9f'\x8F\xD1\xF4\xBD\xD2&amp;OdW\xDB3tS[y\x8FNj\xB86Yd\xD4}\xD6vl\xB3\xD6\xEF𹗁\x9F\xE3\xC8q+&gt;\xEB\xED4\xD8\xFDy\xF8\xCF\xF2        \xE4\xE4\xE6c\x85[\xCEIJ\x84Z\xC1
+Ʉn\x91\xFE\xEB x\xB9h\xB6\xA3E\xF8\xF5 \xCC1\xC8ơ\xCD\xF2^S\xA7\xE4\xDDu\xB3\xB3Q\x9E\xD9?\xA8\xFBl\xE5\xFB\x9D\xB8\xFCv\xBF\x96\x99\xF4~\xE7\x87\xEE\x87_        \xE7\xF9y\xA3o\x93O\xE8\xEAf9~\x92\xE6d\x80\xE8,D7C\xE6Ԋ\xE7\xB0\xF6\xB5\xE2o\xCCL\x80a\x80뿦M\x87\xD1\xE3\xBB\xE8\xB6\xEA$MRY\x9C\xE2\xA8\xC9,[fs\xF55\x99\xBD\xD5\x9Fe\xF6V\x97\xF6\xB2b&gt;\xBDbɦKo\x9Al\xAE\xFAV\xA3ՐP\xF4Xt\xF4T\xE2\xEF|\xE5\xE9ﻎ\xFE\xB8R\xE9\xD1\xC4\xE1\x92슌\x91\xFC\x9C\xEA鎵\xC0þ\xD1u\xB4\xEB\xBFg\xE5\xF0\xEE\xABx]IN\xC0'\xFC\xEB\xD0t\xA0\xC44\xE1&quot;\xF41Z\x89\xE3h7~}\x8A&gt;\x81;\x9B\xD1\xD0;\xE8 \xE6П\xD0g؆\xDF\xC0\x95h\xF0\xC9`zY\xD1x\xB4=\x8A\xD0FԌ\xE6\xC2\x9BQ#\xD1&gt;B\xC5hjh@\xBB\xD0
+t)\xB2\xA0(\x85\xA6\xA3\xB7\x99\x81诸\x8A\xECh\x8D\x{1E2568}\x9E\xB8\x9Ex\xFD
+\x8DC\xFB\xD0\xB4rcGW\xA1Up\xAF\xEEA\xF7\xA3\x89(\x89*\xE1\xADk\xD0)\xBC\x86\xA9\xC2@+K!}\xF2\xA6K!\xA5\xEEc3&lt;'\xBB僤\x96&gt;&amp;\xCA\xC7Ox4\xE4\xE2f\xB4ϣ\xB9\xA6ł\xF7\xE0\xBC\x87\x83\xBC^
+)MCL@-(\x8E\xFA\xA2\xA7\xD0G8\xC7\xD0@\xF8\x9A\xF9\xE8S\xFCO\xF8\xCE{\xD0v\xC8˥\xF0eK\xE19\x92\xA7YZ\xD5\xF5|\xFF\xB8G!\x9D\xF5\x90\xF3\xE9P\xF2j4\x97\x8BL\x80\xC7g\xA1$\xE3\xE8\xA4e\x85o \xD0\xA5'\xD2@\x90&amp;9v\xE3*xg\xC0 \xBC\xEF\xC6I|J\xEF2x\xE7.(\x99\xB7\xD1)\xA6\xAA\xAB\xDD
+\xA9\xAF\x81\xF7A\xED\x99\xF0ux\x9E.\xD78\xA9\x97_A\x9A$\xF6R\xF8N\xB7t}\xC2\x84w\xAE\xA4\xF0(\w\xC0ۛ)4C\xCAi(\x86r#0 J\xAD\x9E#@\xD2Y5B\xE0R(E\x90
+K\xE1 '@y\xED\xC4^\xF40z \xDD\xD4\xF5        \xE6\xE0܄\xFC\xAB4=
+e\xB5\xADdr(\xAA\xE709ĕ \xFDÿ\x82\xBB$6\xFD\x9D\xEF\xFC\xFC?\xE6\xCA\xF4        f\xB6B}\xC7K\xF5DkP;|%߷\x9B!\xDF@]\xBA\xBEa0.F{\xE0\x83g\xE3\xD9h+\xE0)\xA3tɥKI*\xA9_e`.\xE0\xEE\T
+弯l|n\x8C\xBE?S\x9E\xCDD_\xCA\xC9e*\x95獙\xB2LC\xF0\x9D\xD4\xE9\xBB\xF4\xFD`\xDC(4Z%        O\xDC\xFC\xAABwC\xEE
+O\x8F\xBC\x8C\xF0c\xD6 \xB1\xEB'\xC0\xB2`\x8A
+\xBA\x8E\xA2\xAFiK\x9D        o|\x9B\xB6\xD2F(
+\xD2FWC\xDD\xCE\xBC9y\x98o\xC8AUpw\x9A\xB5\xB6 \xEFA\xE3\xB1
+\xC1\x97\xA1e\xD0\x98Sj\xD0X4 \x86\xBC\xBF
+\xF9u8-\xC6yp\xB6
+`1\xC5\xE4\xA5p\xEC\xA2x\xBC\x85\xE1;\xADh        *\x844I\xB5\x86\xBA΢kQK \x86 r$\xE5b)䢐\xE6\xA3\xE5#Rк\xD8\xED\x80\xFC\xAE\x84\xB2\xBB        \xF0j\xF8&lt;\
+\x80\xE3zT\x8E\xF0\xFC*BI\x9E\x84\xFC/\x81\xEF|\x83\xC7pH\xFDI\xF4kA\xB7\xC1S\xF7\xC1ӄ\x9E\xEC\x8A\xB0F|_@\x8D]O̅7ǁ\xFA\xA0YL\xC3㋙~\x8E\x87\xF1\xC3p6\x9C\x890}\xABf\xAA\xD8e\x88,\xA4x =\x8A\xED\xE81\xB4        /\xC1C\xED\xCE\xC2 \xA1\xAEv\xA0@5\xEE\x80\xF6\xE7C\xF5p\xFE5\xFA\xFD\xFD\xBD\x84\xB6\xA0\xD7\xD1&amp;\xA8\xE5;\xE0\xEE~\xF4=\xD4\xEF\xDF \xFE\x8A\x9F\xE0\xDE.
+o\xD1#\x9D\xF2L\xA0\xB4\xDD\xE9\xDEA\xD3$)f\xD2\xC3K\xA0Fv@\xC8\xA6ߋ\xA7\xE0&gt;\x84\xA1\xB3 4*\xFC!~\xE0C\xFC\xC0\xAB\xF8\xFC&gt;\x9E\x94\xED ^\x8A\xC7\xE2~X\x83\xD58=\xB1?e\x86\xE1?\xE2o\xB0\xE7b+1Q\x98i\xAFq\xC3\xE2\xDF\xE2\xC7\xF1f|5a\xF04&lt;p/J\xA3葊ƴ\x90w\xE0\xB7J\x9E\xB4-\xF2\xD3\xC1A~\xCF\xA5&lt;\x8D8
+\xB1\x85\xB6\xE4\x84\xD0i)\xFC!|~r\xFE;\xFC*\xC4ρz\x88g\xFC\xF4\xF9\xFF\x83\xE4}\xED\xE1⡕\xEB\xD0kPB\xE6\xC0{\xF14\x9F\x94X\xC0\xB9\xFC}\xF80\xBE=\xF3\xAD\xE90\xF9[\xCF\xF1ţ        \xD02 \xA0\x92\xCA&amp;\xE3\xF7\xFE\xE4\xF2\x91}\xEC\x81\xFA\xCD\xF2\xD3e \xD8\xFB\xF5w@{'\xF75h\xF5[q+
+\xEF\xAC&amp;\xD7\xDF@^\xC9\xBE\x87~\xCB3\xE8:z}%\xB4\xD1_\xA3\xFFB\x80\x920n\xA8m\xC0 4]%\xF2\xE0\x860\xE01(\x89&amp;DJ\xA8\x87W\xE1xj\xE36\xB8K޲m\xC0\xFF\xC0\xDF\xE2o\xA1}\xCF\xC5;\xF1\xFCWc\xA6C\xA9\xB5@\xBB\xA9A1|B\xFE\x8A\xBF\xC0/@\x8A\x87\xA0\x85w\xBD |Û\xE8
+&lt;\xF8\xC3\xFB\xD0h/\xE4\xB1
+p\xF9\xC0@+\xFA\xB0}/\x87\xD0:\xA0wb\xC25\xFF\x8E\xBDx&gt;\xDE]ڙR \x98\xF2\xA8\x8C\xE4k\x87\xC2р\xBEA\xC7\xF0P_o\xD2s\xA1\x9B\x90\x87\xB5\xD0j\xE2\xD7\xF0\xA0\x83/\xE6\xEE\x82\xE1S\xBB\xF0帎\xFD:L\x9F߈\xF7\xE1'\xF0h\x8F\xD3#\x8F]\x99\xE3 \x94@\xF6u\xF71bd\xFA\xCF\xB2\xFB\x8E\x9F\x83O\x80*\x91&gt;\x83|\xC9\xBD{\x8El\x98N\xF9        H\xC8;\xCE\xF3 .\x81q˷@ \x81&gt;\xF3@G\xAF\xA70\x8Ei\xF0&lt;\x81Q\x80\xD9\xF9@[\xE7B/6\xF2&lt;\x8B\xF6d\xD2o~O\xC0\x80ׁ\xE5&lt;\xD3
+\xCA'~\x84F\xF1;\x84ԗI\xA0\xE1\xAE\x80{\x9A\xAF\x81\x9D\x85z֟\x80\x86\xF1\x84L\xF7&quot;d]\xC8&quot;\x84\xB8\xFFF\xC8m\xC5\xBE\xEE\xB9\xC1\xF74 \xE4U\xE5\xF0M\xF4\x88H\x89\x90p?BahQB1H3\xAF\xA1|\xA8\xFD\xF8:\x84\x8A!\xACdB\xA5[*\x87g\xD6o
+B\xFD\xE1\xB9\xE43
+ !\x94ڄP
+\xE4\xA3\xF6z\x84\xEA\xE0{\x86\xC0pw\xE8w
+\x87x#\xC7&quot;4\xAAY\x82\xD1 \xC0o\xA3\xE8        \x8D\x83\xF7\x8E\x96\xBE\xF8\xB9F\xF8\xBE\x89w\xB4\xDB\xCB 4\xDE9\xE5a\x84\xA6÷\xCCx\xEA\xCD͆\xF8s\xE1{\xAF\x82\xF7\\xF9\x9A?        \xA1\x85\xF0\xFC&quot;Hl\xF1{-\xF9-B7]\x84\xD0-\xAF\xF9s\x84~\x91\xE1\xC6\xFF\xBF\xE0\xF6\xB1\xFF\xCB\xE1/\xDD1K\x867/\xC0\xB8\xE0\\x80 p.\xC0\xB8\xE0\\x80 p.\xC0\xFFb\xC0)c8\x84.F\xD7&quot;%b\x90\x95\xDBC\xECF\xDDv2 \xB8\x8D\xED:\xC0hW.\xB6\x837\x80zm\xA6HY3\xF1\xF5F\xEA\xB7j\xCBS5%\xEC4`\xC0\x9A \xEER9\x84EpS$t\xBD\xBF\x89݃Z\xBC@BvC\xC8n\xD9
+!\xBB!$Ŷ#\xCC&gt;\xCF&gt;\xD7        \xC0\xABw\xB4\xB9#e_\xD6x\xD86\xD4\xC0\xB0\xAB\xD8eH\x80\xB4/\x97\xFDɲ\xBF\xFC\xF0W\xCA\xFErvYk2`\xAE\xD1\xC25F_\x82\xDB\xC0\xC0\xB7mhZ_\xB6\x8B\x9E\xF4\xAB\xA2'\xEB\xD3!\xEB\xDB $P\xE3f7@\xAE6@\xAE6@\xAE6@\xAE\xBEC\xAA\xEB!|=\x84\xAF\x87\xF0\xF54|=Y\xAFI        \xF9rR\xF2ɆV\xB3C\x81\x93\xDB\xC8^\x86\xCA \x89\xD9\xCF^\xD6Z\xD8_3\x85Io\xA3\xEE&amp;v,\xD9C\x83\xBA\x93\xA9[Oݥ\xF4\xEERz&gt;\x8F\x9Eϣ\xE7)z\x9E\x92ω[\x92\xE5\xA8k&amp;.;\x86\xBD\xE5C\xC8hv\xF5G\xB1\x83Q\xFCz\xB8&amp;\xFEH\xF6b\xEA\x8F`\x87R\xFFw\x81?\xE2q\xE0c\x87\xD0\xEB\x8B\xE1\xBA\xFC\x8B\xE0\x9A\xF8C\xD9!\xADu\x81Қ\xF9p=\x99%;\xFB\x98Y^y\xA8\x83&lt;\xD5A!\x91\x90\x9B\x8EӐ\xC9\xE0.8\xC0Ҙ\x98\xAD\x83\xA3\x8E\xB6\x9E!
+eE8RpT\xB3\xD5pg \xC4\xAE\xC8V\xD1o\xAC\x82XU\xF0\xA6*(\xAB*H\xB9
+\xAA\xA7
+\xAA\xA7
+\xA9\xD9*p\x83l*FLPB:\x85\xF0\!\xE4\xAB\xDEP\xC8\xA1\xA4%0\xF7&quot;\xFC\xA0\xEC\x98e\xC8\xBE\x9FY\xD6\xEA\x885Zf0`&gt;@3\xB3\xA3Uəkx\x88G\xE2\x96\xD4LX
+\xB0`\x80\xA5\xA4;\xA2\x9EI1)\xB6\x9E\xA9g\x80\xDD\xF9mUUe\xD4/\xEF+\xF9\xBE\xC97x\xCA\xCC5ײ\xF9PL\xF9h# Y·,\xE7ç\xA6\xAF \xA0N.\xDAp\xE08)\xF0\(\x8C\(\x8C\\xF8\xC0\x&gt;\x97\xC6R\xD1x_t\xB0\x80D\xB9\x90~\xCF8J\xFAt\xA0$+\x9A!yp\x95\xCF\xE4A\xDC&lt;=.\xA6O\x90\xFB\xA3V\xEC\x97\xEF\x85(2\x87(r\x86 \xAD\xE4\xB6\xDC=3\x83`C\xADt\xB7e\xADx\x80\xB9\xA6\x94{=\xDCd\x96Ci.\x87r[N0\x84!\x8D\xB8\xEE\xA4\xE4+\xB6(\xD9]p\xE4Ñ G!88\x82p@
+\xB2~\xA8\xBD\x95p\xAC\x80\xE3&gt;8\x96\xC3q/ˠ6\xF8m\xF1\xFDqfrż\x8A\xA5+*6Vl\xAB\xD8_\xA1\xDE\xC3L\x85c
+3E\xD4!\x87!\xC4Y5\x9E \xA3@\x93\x90\xFFH\xDDg\xA9{-uE\xEA:E\xCF$\xE3\xC9I\xC6Ó\x8Ck'\xD7L26L2\x8E\x9Cd2\xC9X2\xC9؎\xA7\x89θ\xF1\x83\xB8qe\xDCxY\xDC\xD87n\xAC\x88\xCB\xE3\xC6\xFC\xB8\xB1Ɗ\xF1xdD\xBF\xA7\xEE \xEA\x96Q7D\xDD&lt;\xBEՈ\xB4{\xF1D$h\xE3q\xEE\xE1\xD6\xC0'B\xBB\xB7n\xDA5\xE0\xFDZ\xBA\x9A(yI\xF8\\xA0T\xB82P(\x85\xC4$/&quot;\xECS@
+hނ\xD48.\xAA_QOV\x8B\xEA\xFE\xEAbu\x91:O\x9D\xAB\xABj^\xC3i,\x93Ơ\xD1i4\x95F\xA1a4HC\xAC
+\x89q\xA2Sū,\xC4S)\x88\xAB\xA0\xE7\x86\xB8\x8C\xA4r\xC5`
+\x83\x86\xA1;\x9C~\xE9 &lt;\xBC\xE5\xC0t4|Z\xB0\xE5\xBBK\xC3\xEDX7zB\x8B2&lt;\xB7p\xC3\xD1\xF0\xB1\x83\-\xFD\xE2\xC3\xDB\xD5]cZ*\xE3\xC3[\xB4\xA3&amp;6l\xC7\xF8\xBEF\xB8ja\xEEn\xC7hlC;\xEE&quot;Awx[\xB8Z\xB2&lt;ޱ\xDC+\xFB\x8D\x8D䙆\xED
+\xBC|y#r\\x97r\xA5\xB8jk\xFF!u?\xE3L\x91\xDD,MrW\xB6Z9\xC9IN˃\xC3/mhy&amp;\xA7\xB1\xA5\x8C\x9Ct\xE54\x87\x92\xBB48\xA9aS\xC9\xF4\\xB7\x8B\xE9G\xBCƆ]\xBAf\xA6r\xF0\xAEk\xAEk쎇\x82^\xB7         ģ\xF1P\x90\xC4C\xC1^\xF1\xFCL?/J&lt;)\x9E\x9F\xC6\xF3\xF7\x88\xB7}\xA00\xB8n\xBB \xA4\xE3 \xA4q\xF6\x8Cse\xCF8W\xD28W\xCAqX)\x8E\x90G}        4\x8E\xA0&gt;qN\xFF\xBF'\xFA\xB3q\xB2Js\xE6\xA0\xF8/\xFC\xF0.4 \xBF\xB3\xBD\xF6\xC6\xC13Ã\xA7\x84\xCF\x98Ҳ\xEC\xBAY\xAE\x96\xE6i\xC1\xE0.T\x8B\xDF!\xB7\x82-llʴ鳈?uf;~'&lt;\xB3\xAE\xA56\\xDC&gt;\xEC\xC6s\xEF\xB7\xDCHn \xD7mG7۰\xFDFqf]\xEB0q\xD8\xE0\xF0Ժƶ\xA1S \x9E\xED\xF1\xBA{ү\xDB^0\xF5g\x9BJ+ \xEF\xFA\xEC\xCF\xDC~\x96\xDCJ\xDE\xF5,y׳\xE4]Cš\xF4]\xEB-5hPc\xED$\xC9oc\xF4:@\xE0)^\xA1q\x90\xC32\xBF\x9AbsRp\xDD\xE2ݭ@\xF8wHol1\x84\xB5ȭ\xA2\x9A\xA2r Z\xB9e\x82`\xB3|\xCBuKR\xF0\xEEƿ\x93oY \xD8\x84\\x83g\xD7\xC1\xE1B\xF9\xE4\xDF\xFC/\\xB8p\xD1\xE5 /_H|\xFA_\xB8h1]i\xB1-\Dv\xBD\xAC1\xD0\xFE-Ԙ\xD0\xE6e\xF7R\xCD.\ظHZ\x90\xB1p1&quot;\xA9-&quot;Nw♳Ő2^\xD8c\xC7\xC2\xDE?\xAA6\x8C$\x80\xE4.\xC6t\xB5\x9C\xC8h\xB3\x90\xA8&amp;@2\x88dRN\xA1\xFF ;\xAC
+endstream
+endobj
+
+9 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 833
+/CapHeight 700
+/Descent -300
+/Flags 33
+/FontBBox [0 -300 659 833]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 42 0 R
+/FontName /CTAFRX+CourierNewPSMT
+&gt;&gt;
+endobj
+
+7 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /TrueType
+/BaseFont /CTAFRX+CourierNewPSMT
+/Encoding /WinAnsiEncoding
+/FirstChar 0
+/LastChar 255
+/FontDescriptor 9 0 R
+/Widths 8 0 R
+&gt;&gt;
+endobj
+
+45 0 obj
+&lt;&lt;
+/Length1 5180
+/Length 3337
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xE58ktTչ\xDF\xDE\xFB\xBC\xF2&quot;\x93\xC2$s\xC6C\x93I\xC8\x84&lt;\xA6\xC9$\x99        \x90\x81\x98\x803\xE0c&amp;\x93@@!QM\xA1T;H:Vx\xB5W\xA9\xA5&gt;\xA0\xADg\xD8Ik!Z[]\xF7j\xEB*mڥ\xB4Ad٢,\x8BX\x95\xCC\xE9\xB7O\x86H\xBC\xAE\xBB\xEEϻV\xF7η\xBF\xF7\xFE\xBE\xFD\xED}\xCE\xEC \x90 \xC0\xA0o\xA9\xB7\xBC\xEA\x9B\xFF8wJ~\x84\xB02\xB4e\xB3Z\xF2\xF2\xE7\xBB\x88 
+k\xFA\xD6n\xF8\xB8\xE2\xE5\xDB$\xF9\xF4\xB5\xB7\xF5\xAF9\xB8\xEB\xC7/\xA4X\xD1~\xA8\xA7;\xD8u&amp;\xA3\xA8\xF9א\x9F׃\x82\xF42v/@*\xFAì\x9E
+\x9Bᆱ}Q=\xF2\xD7\xD0˷\xF5\x86\x82V\x87\xD5\x90&gt; c\xEC\xD8\xBC\xBB\x8F2\xF1i\xCB3h\xAF\xF6\xDD\xD1\xDDwO\xFA\x8B\xDDȿ
+\xC0n\xC74^'1\xF6\xA3\xE2\xF4(\xC7l?\xAC\xA1\x99\xA9L        %\xB2DE\xBEԖ\xF4n\xEC\xE7\xF5\x82!&gt;o!s\x94\xF2\xD2\xC0\x84V\xBC        *\xC5Ő\x8F0\x83= yƩ\x9C\x89\xFB\x8D\xF3⭠\xC5\xD7'\x8B\xD2\xD1\xF8H\xC6[
+\xE0f(\x86Vx        .\xC01R\xED0b\xBC!\xF0ѻ\xA0 \xE5߁\x9F\xC2\xFC\\xD0r\xC96P\x8D\xEF\xC1P;a?\xD4\xB9\xC6QX \xE7\x94tȆYPKzA\x82i\xB0''axp\x8E:X߆;p\\x86\xF2OH5j\xEE\xD9M\xFDax \x8E\xC1oௐ\x833ΆQ&quot;\x93O\x8C\x9FC3x1\x87\xAD0 \x9B\xC4\xDD0\x84\xA7\xE1Yx\xDE%\xB3\xC9\xF2&gt;\xFB\xC08j\xBCf\xFC
+\xBD\x8A\xA1\xE6\xC1j\xE8\xC4\xFE]\xF8&gt;\xDA=
+\xFFM5\xF6#\xD7\xD8j&lt;c\xBC
+30\xFBC\xB8\xEA\xE1W\xEBQ\xC9J\xA2O\xB1\xFE\xF8g\xC6F\xE3\xD6!s\xC6\xEC\xB17\xE2j\xDA`3\xFC-G\xE1s\x92\x84}Ui
+\xC53\x8C\xE9 C&gt;\xA8`\xC7\xFCV\xC0\xB8\xEE\x87=\xB8\x8AG\xE1        xΑ\xD2C^'\xD04:@\x8F\x8B\xEDr\x9Bܖt|\xEC\xC6\xE3\xC6Hf{\xDC
+w\xA3\xE7w\xE1!؋\x9E\xDF\xC7X/c\xBFcd\xA9#\xF5dYN\xBEC\xBEE~H\xFEI\xED\xF4-\xFA9\x9B\xC2\xD2Y)\xF3\xB3\xDB\xC6\xDEa\x9F*\xE2\xD8\xD2\xF8\xBE\xF8F\xBBq7֒`͓q'\x9Bq\x9Dp#\xF4\xC1&amp;\xB8 \xB6\xC1f7\x88=\x82\xD5;\x84]\xC7z\xC7\xFEK\xF83\x9C\xC6~\xCE\xC1\xDF\xF1̉\xB8\xC6dR\x82\xBD{q\x92V\xB2\x82\xDCB֒Mdy\x9E\xC4\xC81\xF2+\xF2&gt;\xB9H\xE7\xD2y\xB4\x86.\xA5\xCB\xE9Z\xDAG7\xD3\xD5i\x94\xA7g\xE8?0\xCBZ\xE6f\x9B\xD87\xD8!\xF6{\x95\xFD\x8E\xBD)\x80\xD0*\x85u\xC2Â.\xFCA\xB8 \\xE2&quot;\x88\xF6\xD9bP\xDC?\xF6d\xDC_muF\xA7\xB1Lj`?\x875\xBEWSE\xB8\x9Ev\xDC\xD5\xAC\xC1\x93Ӈ\xFDv\xEC\xFDX\xBB]\xB8\xA2\xBD\xF08֎W\xEFy\x88\xC1 xJ_\xC2\xFD\xFD5\xBCo\xE2\xFA\xFE \xEF\xC0'\xF0)\x87\xAFo\xB1\x912R\x89\xF5\xFDY\x80}\xEE\xD3\xB2\x8D \x90A\xF2(\xD69J\x8Eb!'q\x95q\\xE1J\xEA\xA77\xD3-t\xDDC\xF7\xD1\xC7\xE80\xA1\xA3\xB8\x93p'\xACl\xF3\xB0\xD8jv3\xDB\xCC\xF6\xB2G\xD8\xB0\xC7\xD9,\xC6Fد*\xD4
+\xED\xC2\xC2N!&quot;&lt;)&lt;'\xBC&quot;\x9CN\x8Ab\x9DƮ\x8BG\xC5_\x88g\xA5L)O\x9A+y\xA5\x98,)\xFD\xCA{J\xC3+\x85\xA3_~\xF6\xC9\xFD\xC4B\xA2\xF0c\xF2\xD8}\x8D\xFAh
+%;\x84ߒ&quot;\xDCq6\xC2G\x98\xE1L\xF2;:\x9F\xDC\xC0Bd\xD6oYCV\xC3\xB2\xECI\xD6
+\xAF\x89\x89\x97\xB5\x93.\xF0
+\xFB\xE0\xB2\xF8K\x8Aa:Ĩfc\xE4Szz`\x90\xDE:\xF6\xAC\xE1'S\xC0KЧ\xF0\xC4l \xB90Jk\x84aR@\x8B\xE9q\xF9'$\xF5\xB2\xC4jX\xAD\x92\x8E\xDCv\xD3\xF4*\xE9\xE4}\xB2w\xF0\xF99\x85\xCF\xD6r\xFA\xBEΒ\x93\xF2R\xCCn\x8C=\x876ۡ\x9E\x88g\xC0\xB3\xA2\x9F\xC8 z\x80,\xDB9\xF6'\xF6\x98\xF1ɡ\xEF\x8Ce\x8C5\xD2f&lt;q+\x8C\x83\xF4|\xFB\xE2\x9F
+o\xC31\xFA\xAC\xC0\xB7F\xC8|r&gt;\xC2g\xEF.|Ӭ\x84\xCB4
+\x9F'/\xBEG\xFA\x9C
+
+\xF5_s\xD4\xD5\xD6TϿ~ʊ\xF2\xD9e\xA5\xF6\x92\xE2\xEB\x8A
+ fi\xD7\xDA\xD4\xFCkf\xCE\xC8\xCBͱNϞ\x96553Ò&gt;%-5%9I\x91%Q`\x94@\xA9[k        \xA8za@
+\xB5\x85 \xCB8\xAFQ\xBCJ\xD0U\xB5L\xB6\xD1Հi\xA6N\xB6t\xA2\xE5\x9A/Y:\xC7-\x9D\x96Ģ:\xC0QV\xAA\xBA5Uݥ\xA91\xB2j\x99\xE9=.ͯ\xEA\xE7Mz\x89I \x85&amp;\x93\x86\x8C͆\xAA\xDB\xDA\xE3RuP\xDDz˖\x9E\xB0;\xE0\xC2\xF9\xA2)\xC9\xCDZswrY)D\x93S\x90LAJ\x9F\xAE\xF5E\xC9\xF4zbt\xBA\xBB6JAIì\xF4\\xCD\xE5\xD6s4OAg\xEE`\x97޾\xCC\xE7v\xE5\xD9l\xFE\xB2R\x9D4\x87\xB4N\xB4&amp;=\xDDn\x9A@\xB3F\x97\x9Au\xD9 \xA3\xAE\xE3ˁ\xDDj\xB4t$\xFC@\xCC\x9D{j\x97\xD6\xBCѧ\xB3\xA0\x9F\xC7Ȱc\\x97&gt;\xFD\xEBg\xAC_\xB08yf\xB3ᆱ\xB5y,춮S9ߧ\xEA\xFB\x97\xF9\xAE\xD6\xDA\xF8\xE8\xF7\xE3\xE8K Z\xE1 \xFDV\xD1\xE3U1\xDD\xE5\xF7\xE9d\x86T\xF9J\xF8\xAA\xC6\xD7׭\xB9\xB9$\xB0^Փ\xB4&amp;\xAD'\xBC&gt;\x80{\x93\xD6ay\xBFm(7\xD79l\xBC
+\xB9n5\xDC\xE1\xD3lzC\x9E\xE6\xBAfD\xB3 \xBC\xBC\xFFp\x8ES͙\xAC)+\x8DZ2\xC6 \x9D\x92\x9E RӮ&amp;\xBA't&amp;e\x9Asʳ|\xA2\xB2\x84g\xA4-\xC2\xA1\xAB!3\xF1i\xB8\xA6j&gt;tWC8T\x8Df\xD8\xFC\xBD\xF4.ܑuzRs l\xA9\xE5rM
+ x\xB4\xF3\x9F,        &amp;$R\x81\xE5c\xE0$?'g
+\xF5Wh\xDDn\xD7KJ\xF8\x91\x9BqO1\xC7z\x93\xBF\xBE\xACtK\x8C6j}\x96ڱ\xB6Am9\x96\xDFf\xE3\xBC;\xE6\x84Nd\xF4\x81e\xBEq^\x85μ!p\x96\xDB\xFD:
+p\xCD\xC8ʹ\3pE3\xE1\xD0\xF0$~\x87\x9B\xA6+\x85\xE9\x96\xEC\xA9\xEE\x9EZ\x9Dd\xFF/\xEA\xEEq\xBDǫy\x96\xAD\xF2\xA9\xEEp Q[O\xC7$n\_=\xA1KP\xFA\xD4fˣ        \x8A\xE61S\x8B\x87\xF2\xC6        c\xCE\xF8Ru\xA1\xFF$\xF3Pw\xC5dO\xA5)!j\x8Bn        ,\xFD\xC96\xDB\xFF\xD1)f\\xE0^&amp;\xFA\xC2-\x91\xA6^k\x9F\xCC\xD7M\xE2'\xA5\x97f\x98\xB0PH=\xAB\xC2\xE1\xE4\xABux=\xE5U\xF9e\x93\xE1\xEFi\x9D\xF3I\xA1LB \x92%1\xC4\xCDM\x92\x85\x81\xA5\xB8\xDAjo\xB3\t,s\xB4Y.9\x96X\xC6\xD0\xE0sp\xA8\xAC\xB0e\xD82
+p  \xC0e\x95\x8D\v\x8A\xF09\xA8ˆ\xB91'\xE8[\xEC'\x90\xB6a`\xE4\x88sJ\x92 \xB9iRNjڇ6&gt;\xAD\xBD\xED\x8C\xE5,4,9_YA\xB2$\xED\xDA\xC2\xEB\xE7ΛS\x95M\xDF\xDD\xF7\xC8\xE8\xE8#\xFBFi\xE38\xE5?ut\xAE        \xFD\xD7\xC9[\xD2+3\xF3\xF0 _\xA8\xE3xh\xF1\xEFOF\xBC-S\x90M1\xEDa\xDCOI\x89\xE3\xBD\Y?ty\xB6\xB2yBs\xA5^\xC7o\x9Fa\xE6 \x9C\x8F@/\xF6B,\x93\xC2\xA9\xB2\x9DP\x8B\xBA\x842\xD4=\x88\xBA\xB4ߘ\xC0\xD2\xC3@y+\xC2\x84R/\x82\x8AЉ\xE0GX\x8C\xB0
+a\xAD\x81!\xECF_\xF7\xE7\x98\xED\xA7\xC5W K\        \xD7&quot;\xCEޅ\\xE14Iy\xB0P8\xCA
+1\xFE1ڐ.\xB7C\x96&lt;\x93\xFB\xE7\x90_,\xA0\xCD\x98\xC3&amp;(^\x80j\xF4\xADwA6\xE6\xBEu\xD5b14I7b\xBCӐ\x8D\xF3&lt;-\xBDG\xD6#n](\xE3C؛8w\xE6я\xD0\xC2.\x82}        vX\xC0Zq}'\xA0\x8C&gt;        ͈ݨ\x9F\x86P)|\xD7d\x87\xEB\x90\xE6\xF9\xCFGڏxڴ\xA1\xAF\xF5 \xB0\x9E\x8D\x98k;\xFBV#.\xC7yW\xB3?\xC2        \xF2(@&lt;\x8A\xF6s\x85K0\x95|f\xC6u\xDC-\xF4\x99\xC7?\xAE$        \x86%\x89T \xFEᒲ\x8A\xE5w\xC1\x83\xF3\xDFt\xB39\xB0\x86\xD7o3\xEB5\xEDG\xFF5\xA7\xCF\xE0\xFAD\x8D9\xCC\xE2\xB1\xF0\xF4\x9CN\xD0\x8C=\xB8vUڋ{\xBEʰ67\xCB\xEF\x92X\xAB6\xF6B\xF18_5\xC2|\x84\xBAԊGH2B
+\xEA\xBDȷJ\xCB!\xC4A·*\x{11D371}:\xF8\xD9@]\xE6iB&quot;\xFFʼn\xFCM\x8Cy\x96c]\xAF\xF8K\xADP\x82&gt;v\x96        ޫ&amp;\xE0&quot;ޭ.\xE27\x9D\x89\xC9\xF4\xB9\xFD\xEBi%&gt;\xD9\xDB\xE9S\xE3\xCD,\xD3x\x88eқ\xC61hH\xDFkb\xF4%\xF0\xEB\xA0\xEA߬\xFB\xFF\x9F\xF5\xF1w\xDB\xBE\x83D\xF3-D\xC1\xE5\xE0D\xEA\xBCȿʡqd\xD2&quot;셴zI6\xDA\xDFb\x8EKͱ\xC1\xCB\xF9Hˇ\xCA\xF3\xF3ct\xF6\xD0~\x8EJ\x87f#\x9A\xE5L9\x95\x9B_Y\x94\x99\xEF(\xE2\xFCtg\xDDm\xC5\xF9o\xCC\xC9?\x85p\xA8\xA8*\xFF~GU\xFEN\x84r\x84-\xC8s\xBB\xA2\x83\xC5\xF9\xBDE\xBDz\xBF\xD5{\x9F0\xB2\xB31\x93\xCC \xC5#\xA7\x9F_\x91\x95\x94\x954?#ǝ5r\xE4r\xE4\xB0Y+G\xBA\xE4\xC8
+r\xA4E\x8E̓#\xB3\xE5\x88]\x8EȑYr\x96\x92\xA9X\x94)J\xAA\x92\xAC(\x8A\xA4
+U@Ɋo;\xED|\xF1Y\x92\x85#I\xE0\xA3`\xD2\xCAG:^J
+\xAD\xA0Oe\xEA\xF16\xE9\xD5vOL6\x96\xEB\xF3\xED]n_\xED\x8B2\xE8G\xA9N\xEF\x8F\xE8\xF0ň\xC1E\xBB\xF2\xF8-r1v\xED\xC9K`\xBF\x9Fx\xF4\x91x:U\xFD\x92W\x8B\x91d\xFC\xE1\xB5&amp;\xA2gz\xC0\xD3\xD1d\x85\xEC-
+ֆ\xCC\xFA\x8C\x9A\xD7W \x81\xC4h\xFF\xA2Y\xEDW7O{\xFF \x90O\xEE\xE4\xFF  \x9B\xCB\xF9\xC9\\xEAEiĔF\xB84bJ\xAD3\xF5\xBD\xAFO?8ӯWq˜\xE9'\x87\x8F:\xB7\xF2{i@sw#\xF4\xDD[z\xAC\xFA@\xA7\xAAF\x9DG\xD6\xC2@g\xA8\x87\xE3`\xB7~T\xEBv\xE9NͥF\xB7~\x85z+W7j\xAE(luw\xF8\xA2[\x9Dݮ\xA1Fg\xA3[ \xBA\xFC\xC3\xD0F:\xA3%\x83\x93\xC2}\xFBJ\xB8a(!\x9D\xFFs\xC6\xE9\xE4S\x96\xF0\x88m\x83_q\x90\xAB\xDBx\xC4Aq\x90Gls\xB6\x99\xDD\xEB\xBCM\xC4\xD3\xEE\x8B*\xD0\xE4\xC7ː\x89Ӕdܪ@\x9E\xCDߔm\xE9\xAB7\xF7\xAD\xCEf\xBD'\xEFg\x90g \xF8\x9D\x91\x86\xC0Ue\x8De\x8D\\x85\x86\xAB\xA6\xF0O\x90\x84\xCAzO\x9D-\xEFg䙄ʂ\xE2 \xAD        \xECwڿ\xD46\xF1V\xF7:\xCCd\xD8\xA1C\x99\xF9Uv\xFEH\xFE r\xF0Z
+endstream
+endobj
+
+44 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 1005
+/CapHeight 780
+/Descent -220
+/Flags 6
+/FontBBox [0 -220 1113 1005]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 45 0 R
+/Style &lt;&lt; /Panose &lt;0c0305050102010706020507&gt; &gt;&gt;
+/FontName /CTAFRY+SymbolMT
+&gt;&gt;
+endobj
+
+46 0 obj
+[
+120 [460]
+]
+endobj
+
+43 0 obj
+&lt;&lt;
+/BaseFont /CTAFRY+SymbolMT
+/CIDSystemInfo &lt;&lt; /Ordering (Identity) /Registry (Adobe) /Supplement 0 &gt;&gt;
+/FontDescriptor 44 0 R
+/Subtype /CIDFontType2
+/Type /Font
+/W 46 0 R
+&gt;&gt;
+endobj
+
+47 0 obj
+&lt;&lt;
+/Length 212
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA]P\xC1j\xC30 \xBD\xFB+tlON{i!\x87\xB6 \xEB6\x96\xFE\x80c˙a\x91\x8D\xE2\xF2\x{1F5F6C}\x85
+,x\xD2{\xF2\x93乽\xB4\xE4&quot;\xC8/\xF6\xBA\xC3֑a\x9C\xFC\xCC\xA1\xC7\xC1\x91\xD8\xED\xC18WT\xB2U2\x89\xBBe\x8A8\xB6d\xBD\xA8k!\xBFSs\x8A\xBC\xC0\xE6t~\xDF
+\xF9\xC9\xD9\xD1\xF0\x8F\xBB9\x84_\x91&quot;T\xA2i\xC0\xA0Mc\xAE*|\xA8A&amp;ҳt[¾\xE0\xDD\xDF\xDF\xDA\x9C\x82\xD2Ȋu\x95\xA2\x81\xFA-E#\x90\xCCKU\xF5V\xFF(\xCE\xEC\xC31\xB1m\xD5
+{\xADg]\xDE\xE6\xE1B\xCF\xCC\xC9`Y\xB9\xC9\xE1\xE3*\xC1\x87\xAC*\xEFk\x91h\xC9
+endstream
+endobj
+
+32 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /Type0
+/BaseFont /CTAFRY+SymbolMT
+/Encoding /Identity-H
+/DescendantFonts [ 43 0 R ]
+/ToUnicode 47 0 R
+&gt;&gt;
+endobj
+
+xref
+0 48
+0000000000 65535 f 
+0000021615 00000 n 
+0000000015 00000 n 
+0000021646 00000 n 
+0000022786 00000 n 
+0000000000 00000 n 
+0000002359 00000 n 
+0000054559 00000 n 
+0000000188 00000 n 
+0000054362 00000 n 
+0000001172 00000 n 
+0000003782 00000 n 
+0000002528 00000 n 
+0000005183 00000 n 
+0000003952 00000 n 
+0000006706 00000 n 
+0000005353 00000 n 
+0000008333 00000 n 
+0000006876 00000 n 
+0000009720 00000 n 
+0000008503 00000 n 
+0000010894 00000 n 
+0000009890 00000 n 
+0000012191 00000 n 
+0000011064 00000 n 
+0000013604 00000 n 
+0000012361 00000 n 
+0000014657 00000 n 
+0000013774 00000 n 
+0000015978 00000 n 
+0000014827 00000 n 
+0000017166 00000 n 
+0000058912 00000 n 
+0000016148 00000 n 
+0000018536 00000 n 
+0000017348 00000 n 
+0000019896 00000 n 
+0000018718 00000 n 
+0000021433 00000 n 
+0000020078 00000 n 
+0000022616 00000 n 
+0000021712 00000 n 
+0000022952 00000 n 
+0000058434 00000 n 
+0000058161 00000 n 
+0000054735 00000 n 
+0000058403 00000 n 
+0000058626 00000 n 
+trailer
+&lt;&lt;
+/Size 48
+/Root 3 0 R
+/Info 2 0 R
+/ID[&lt;6274eecfd4409efaac97458901635316&gt;&lt;6274eecfd4409efaac97458901635316&gt;]
+&gt;&gt;
+startxref
+59058
+%%EOF
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="freeswitchtrunklibssilkdocSILK_SDK_APIpdf"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/doc/SILK_SDK_API.pdf (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/doc/SILK_SDK_API.pdf                                (rev 0)
+++ freeswitch/trunk/libs/silk/doc/SILK_SDK_API.pdf        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,1822 @@
</span><ins>+%PDF-1.3
+%\xE2\xE3\xCF\xD3
+2 0 obj
+&lt;&lt;
+/CreationDate (D:20100312154424-08'00')
+/ModDate (D:20100312154424-08'00')
+/Producer (BCL easyPDF 4.30 \(0410\))
+/Creator (easyPDF Printer Driver 4.3)
+&gt;&gt;
+endobj
+
+8 0 obj
+[
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 750
+278 333 474 556 556 889 722 238 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611
+975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556
+333 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611
+611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 750
+556 750 278 556 500 1000 556 556 333 1000 667 333 1000 750 611 750
+750 278 278 500 500 350 556 1000 333 1000 556 333 944 750 500 667
+278 333 556 556 556 556 280 556 333 737 370 556 584 333 737 552
+400 549 333 333 333 576 556 278 333 333 365 556 834 834 834 611
+722 722 722 722 722 722 1000 722 667 667 667 667 278 278 278 278
+722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611
+556 556 556 556 556 556 889 556 556 556 556 556 278 278 278 278
+611 611 611 611 611 611 611 549 611 611 611 611 611 556 611 556
+]
+endobj
+
+11 0 obj
+[
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 750
+278 278 355 556 556 889 667 191 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556
+1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556
+333 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556
+556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 750
+556 750 222 556 333 1000 556 556 333 1000 667 333 1000 750 611 750
+750 222 222 333 333 350 556 1000 333 1000 500 333 944 750 500 667
+278 333 556 556 556 556 260 556 333 737 370 556 584 333 737 552
+400 549 333 333 333 576 537 278 333 333 365 556 834 834 834 611
+667 667 667 667 667 667 1000 722 667 667 667 667 278 278 278 278
+722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611
+556 556 556 556 556 556 889 500 556 556 556 556 278 278 278 278
+556 556 556 556 556 556 556 549 611 556 556 556 556 500 556 500
+]
+endobj
+
+13 0 obj
+&lt;&lt;
+/Type /XObject
+/Subtype /Image
+/Name /Im13
+/Width 2188
+/Height 196
+/BitsPerComponent 1
+/ImageMask true
+/Decode [0 1]
+/Length 2815
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA흽n\xE2X\x86\xEF&quot;E\xA4ؙM;J\x8A\\xC2P0\xBDW\xCAՊ\xAB@\x94\xB8D\xB9
+42Һ\x9F)\xD8KHe\x94Qd)bE\xF2\x8E\xC9ڀ\xC1?\xE7\xF7\xB3ωϘS\xECJQ\xEC%Ͼ\xBC~\xBF\xEF\xFC\xF8\xED\xAD\xF0\xF0#\xA63\xFBƦ\x84{\xA0ND\xC4h\xA03\x91\xC3X;v\xE4\xD2q\xCFDv\xC3C\xD6N&quot;\xC6E \x8D\xCED\xA2\xE18\x9FwD\xAE\x9D\xD9Y#\xD1X\xEE]$_\xFBg&quot;\x91\x8BL\xC7v\xE4#\xC6x\xEC\x9C5=h,\xE34Z\xBD3\x91C\xD9\xB3=?        \xEE1~Gg&quot;o\xCE8A\xA4鞉 \x8C\xD4h
+kOğ\xA4\x88\xDC\xCC\xEBN$m#\xE1@u'\xB2\x9D\xDA) \x97n݉dl$,n\x865'\xE2g\x894\xE7\xF5&amp;\x92\xB3\x91_\xC0H6\xA5\xDAȯ`$ňx9\x89\x8DQ\xAD\x89d\xD2\xC8.\x91\xD4[#\x8B\xBCF\x8C~\xAD\x89\xAC\xED\xEDK\x9BM\xC96\x966\xA3\xD9N0D\xDAu\xD6\xCEF\x8CF\xBF\xC6D06I\x9D5b\xE14b|\xAA1\x91        \x96H\xBB\xBED\x82\x96H\xA3\xBED\xB6x\x8D8\xF5%\xF2\x82b\\xF4kK\xC4\xC71\xE7\xB5%\xF2\x80'b\xD4W#+\xB7\xAED\xBC\x81H\xAB\xAED\x8F\xDDI\x8D\x80hH\x8Ah\xC4&amp;i֕\x88E\xD2\xC8E\xAF\xA6D\xD6$&quot;z\x92DH\x8F\xCDI&quot;S&quot;\xB7\x9ED\x88\x8F\xCD        \x9C1\x8EhH\xE0D~\x925Ҩ\xA9Fl&quot;\x91f=\x89&lt;\x905\xA2u\x87NdM&amp;\xA2u \x91\xA2\xA3\x9EYQ\x88\xB8\xB5$ҡ\xF9TK&quot;
+\x91v\x89 Z0J\xD1;\x90\x80\x89\xBC\xD04r1\xAA!\x9FFD\xE7@&amp;\xB2\xA0\xD19\x90\x80\x89\xAC\xA8D\xEA\xA8\x8BJ\xA4x y}ՍȄJ\xE4K\xFD4t\xA8D\x8Avт`\x89\x9E\xBD42\xA5)^\xD8&lt;\xFF\xAB\x99F&lt;*\x90b\xAB\xE3G\xC3!B\xA8\x85Po8iCdK\xF7\x91\xABb\x9Fꇳ\xF3\xB9F\xF9\xC9\xD0HY&quot;\xD4\xEDF\xB7*\xE5I\x8D\xD8T&quot;\x85
+\x9B\xE7H\xE3q\xF4OW\x8D\xBC\xD05R\xA0\xB0yM\x9ED\xF0
+u!\xE2Ӊ\x98&gt;\xD2\xF7\xC3y&amp;\xD1mnf\xDAh\x84^\xD6(l\x82\xE5]2\xEA \xF4\x97&amp;DV &quot;\xE0\xB4];\x89\xCD\xA1\x99\xE8\xA2\x8BA\ؠ\xF7ޯ%2a\xB9\x85~ 'sg\xE5g\x9A@\x89t\xE4h$@\xDD\\xB4A}-\x88LD\xA0Ab\xB6Z*\xDA8Zh\x84Qր\x8B\xDF.ۨ=fM\x96\x8Fgl0\x88
+s\xA6\x83F\x96\x8F\xC0
+\x9B\xC7;\xEC\xBD\xFEҀ\xA3\xAC\x81\xBF[w_\xB5Ս,6!\xE5(=f
+H\xC4g\x816\xFEfJOGyaj&quot;\x96$wR\xD9&amp;\x91\xA5P\x83dMH9J5ٰ\x88\xBD\xF2lD\xEDJ{Y\x81\xCC\xEA\xF9\xDFH7\xBB\x9EW\x9E\xC8\x93\xC0G\x95XE
+$\xB2\x92\xA1\x9159\xE48\x95'\xD2a/~\xB4GWoTq&quot;&amp;\xF1\x89O\xB9\xA9\xC2ڦB\xA1\xB6n՝j&quot;M#\xE2b-mH\xA3|\x8D\xD0K%uMii\x97i#*\x8DF$`\xFBH\xA3TQx\x8CȖ\xAD\x91?\x84#\x8Eęd\xF9D&lt;\xB6\x8F\x88\xFE?\xB0\x8AiU\x89\xA8\x9BI\xE4\xAATQh$0&quot;?\x8D\xD2}dQ\xB6\xE8*\xA7\xD1\xEF\xFDJJ\xC7E\x91\xB6F\xAD\xF3饪G#\xC2n\x8F\x886Z}\xE6\xD3K\x95\x91Hӈ`\x83dQ\xBE3\xA9Ո]\xB6F\xD6\xEC;:U&amp;\xB2)[#\xAFg\xEA\xE9\xED#\x82M\xB4        \x873\xCD+LdQ\xB6Fxn\xA8\xE8(z\x91U\xD9Y\x8F9\xEE\xE8V\x98\x88U\xB6Fxn\xA8\xE8\x9D\xD1Ȕ\x87\x88Ya\x8D&lt;\x94\xAC\x8E~ p\x9EPW\x8Dl\xB94\xA2f\xFAW\x9E\x8F$\xAD\xC3\xFD \x96:w\Q\xB3\xB4F\x84#=Mج\x{1234AEB}\x91\x8E\x90F\x82G\xB4\x8F\xC5lDͤ
+\x8C\xC8T,=l\xF7[\xAA\xDCb\x8FE-A~8l\x96\xE9\x81۶\xEA\xCE5\x91\xE7#\xA7/\xFDw\xE7\xDB\xE7\xDD\xFBIo\xF7'\x9CDn\xB5\xD6H\xBC\xE4#@\xC7
+3]¾\xBB\xAFFZZk$v\x8Dh\xC3\xCC\xD8&gt;l\x96q\xA1\xCDu-\xAEá\xF3\x81س.^\x8D\xA88hM\xBE\x8F\x9Cv\xDD\x9B\xA5\xBC6\xA2\xA4E&quot;\xF0k$@i|\xC58I`p\x8F\xCAj\x84\xE7{\x98\xF8M\xAFQ\xBD\xC49\xC9\xD6\xE6&amp;\xE2ꯑܶ\xBB\x8F=P%\xAD\xAE\xB2\x91\xE7#W\xF8\xA8\x81Y\xE3\xBE\xE6'\xD2\xD6^#\x98
+39#        ,~&quot;
+*\xAE/\xFEվ\xF1a\xB33Ŕ\x9FH\xB3\xA2\xF1x5\x82[\xE9~\x91\xF5\xCF=\xDD5\x82\xD90cf\xBD\xC0\xE7\xD4\xA6\xAB\xB9\x8F`7\xCCd\xBD`!\xA2\x91\x96\xE6\xC1N\xC34 hDA\xF5+\xCFG.F\xA4
+3#\xB1D4&quot;\xFF\xC4Fy\xF9\x8D\xB4aƼ?jT\xCC\xD9H\xF5\x91O\xCB\xDBdUU\xD9\xC8\xD3H\x93\xD8\xF7H\xBFx;&quot;2\xD7\xD9G\x88\xBF\xD6\xEAC㈂V+\x88\xCF\xF2\x91\xD0G\x88\xED\xD3Tm\xE3\x8B\xB9\xAD$\x91.-\xB8\xCC`!F\xA4\xA1\xAF\x8F\QjZV\xF9B\xD6RWH#\x83W\x9B\xC3#&quot;=\x90\xC0|\x84+\x8FPfan MVE\x81D\xA2\x8F\xDCq\xA5
+\xC18&quot;?\x90H\xCC#\x94Y\x98\xCB94\x8E\xC8$\xF3\xC8\xAE~\xA9`\x91H\xE4\xE5s\xC2\xD5/\xF5E\x89\xDCj\xEB#\x9C\xFD҅\xF0\xA5\xDA\xFA\x88qI3\x9990\x8E\xC8$\xFCD^\x87\x83A\xB4Ph0\xD7\xC8\xC9H,\xD1+e\x8D\xFC\xBF\xFC\xE3\x87`׋a$\xA2\x8F遄\x9FH\xB4\x98\xAC\xDB\xED~
+\xFF\xB5(\xAE\x91xםp\x91H\xF8\x89l\x9Fg\xBA;}\xF9\xDF4r\xDFu*|\xE9\xBCD^\x87}&lt;N\xB8X\xC55o\x96\xF1\xC4/\xFDT\x8D\x84ڸ\xDE}\xA0\xEBk\xC7)N$\x9Ex\xF1\xC5/\xBD\xAD\x91\xC7\xFC\xB9\xA9E\x8DG\xA4N&quot;\xDB\xE8\xF78g\x8C\xC7%\x99\xE3\x88\xF4@\x82!\xF2\x8D\xF4Oe\x8F\xC3f\x80%I$|\xF1\x9DI\xD9DK\xCA\xF75Uk$X\x86#\xBD\x82=}\x84{I\xA3\x8C#\xB2        F#\xDBpd]dj\x97N\xC4\xC6\xE5\xEE\xB79\xF4o\x8E\x91\xE0&quot;qe\xE3A\xAE\xE4$\xA3þ\x91\xD7\xE0lp\xC1#\xC9u\xA7\xFF92\x88\xB4\xF9\xAB\xE8\xCC\xF8\xA2T#\xCB}\xF0\xF8\x9DNiDDv-P\x85Ļ\x86\xE41\xDE\xD7#\xF4\x9C,\x91\xE7(x\x8C\xC7\xF7\x89\xF7=\x84.&quot;\x83H\x93\xBB\xABO\x9B\x{D84E}\xE7\xBF\xF7\x82\xFFۅk\xC4;Z\xC6\xE92d\xC8\xD1\xC3\xE6\xA4.&gt;WxE\xE8\xD0\xEA\xFD(\xF2\x9CM6x|\x8E\xFD\xE8$\xA9\x85\xED%\x8E9,\xB2\xF2/ju\x9C\xC3\xFA\x95\xE2\xCE&amp;\x91\xE4*\xF6\xC6a\x9B\xFE\xB2#I#\x91\xFC#M#\xC1%R\xD4W~+\xD9\x83G\xEC$k        Y\xE4h+\xB0\xB1M$j\xE7ĕX\xE8%0\x8D\xA0| Ó%\x91\xA8&gt;        `\xF2,jE\x99\x8A\x89\xFB`\xC64'_yp\xEF\xA1U6\xE8\x85\xA5X\xE6\xA2D#\x8Fi=D\x91$\xB83\xA4\x8D&gt;P#\x85M\xB0\xCC}n\xDE\xF7ई&lt;\xA7\x83\xC7\xCEH[\x90\xA6 \x8B\xAC\\x81d\xEDd\x9B8\xBCo\xD4J\xC9-?m \xEE\xFA\xE4z\xA1\xA8\x8B8Ɇh#\xFB\xBF&lt;\x89n\xEFC/d\xBA\xE6c_τ5\x92K\x8D\xBEL1o 腬\x8A\xFF$Jd=\xC9=\xF8\xB7S[\x91+X\xE1\xE8\xB4\xE2߃s\xEF
+\xC1\xACbo!\x89        \x89\xBD\x90\xB1\xBE\xC5&quot;\x99\x91\x98Fr\xAB\xD8Ͷ#\x93\x889\x9A\x94)\x98E\x84\x9C$Ad\x89\xF9\xE6ud1\xFA\xC0\xDB3\xB6\x86K҅\xB8H\xF2\xF4\xF4D&quot;\x82Y7֜J%2\x9F\xCA\xD1q\x9C#\xA6\xCBP=Z\x85\xFA\xF8\xE40\xF2\x81\xDE\xDCMYή\xC56\xC4\xC1}\xF9&gt;K%r
+;\xF4\xC2\xC6!\xBE\xC7̋\xE4{\xB4&amp;\xAF\x91\xA0ch3\xA8\xA1\xFD!\xD9W\xF3Eo\xEEv\xC2\xD6E\xC6\xFA\x9F\xA4 \xDAP\xD3\xCD\xD5?\xD3\xCC        K\x9Bw\xB4\x91iwwRwSKo\xE4&amp;O\xCEHzi\x89K\x9E\x86\x88\xA3\x91v\xC2fYS\xA1\xFE!\x99c \xF6\x96c\xDE$\xFA\xB0m$.l\x96w\xBB\x85q}n12\x87\xBC+\xB9Dɳ\xE1\xF9\xF6Un\\xC5&amp;\xB0\xF3[\xD0q?r\xC2_\x8ED&lt;\x8D\x80\xEC \xEF\xD0\xB9H\xB3\xE6Y\xFCM\xDA\xC4\xEF\x9E\xFCe^\x9F\xFE\x9E\xC3&lt;\xCC\xC7DqɼNM\xC6l~\x98|5_b?\xF2\xC9_\x8EDt&quot;\xB2봞\xDA9IoX\xB0\xFC0\xF1\xCB ܏\x8FDV\xB6NDI\xFB\xCF&lt;Nzs&amp;y\x86\xAD\xECY\x96\x88V6\xB2\xEB\xB4,\\xDF\xC3cƪ\xD3/#\xAC\xBF\xC4D\x84\xB7B\xBD\xEF\xF8\x92j\x82\xDC\xCC\xDE\xF8c\xD5i\xE2&amp;Ռ=Nm\xA0\xDB\޽\xB0Y\xA4”&amp;!\xF0f\xFF\xE6V\x86\x88\xAF\x95\x8DD\xA9&quot;q\xB6\xC9\xE5}&gt;a\x90\xC7=\xD6:/g&quot;\x96^i\xBD\xA5v\xA7b&lt;\x8E\xBF\x83\xB0$?\xFE\xF1\xE6*\x97\x8C\xF7
+endstream
+endobj
+
+14 0 obj
+&lt;&lt;
+/Type /XObject
+/Subtype /Image
+/Name /Im14
+/Width 1094
+/Height 482
+/BitsPerComponent 1
+/ImageMask true
+/Decode [0 1]
+/Length 4394
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xED\xDDM\x8E\xE4\xB6`ʴ\xA1\x80\xD9ycD\xB9\x81/0}\x84l\xB2\x9E+\xE4\xAA\x8E\xE2e0\xE2#\x98\x80/|-\xBD\xE4\xC2@\x84\xC1\x8B\x98\xEE\xEA\xAE\xDE#)Q9c7 c\xA6\xBBJ\xFA\xEA\xE9\xF1\x91&quot;\xA9cR_WƤ9\xFC ү`\x8C}\xD9\xE4) \x8C\xFDP\xF2\xC6\xFA\xFA\x90\xF1\xF9\xAC&gt;\x84\xBD|]jC\xE6W\x88\xA8
+ѯ\x90\xAE6d|\x85\xB0ڐ\xBB\xE3\xF0\x9Ay)r|\x92@^\x8A_I 3E\xAF Q\xC8ѕ2:\x9AS\xB22s\x95\xB1\xA1&amp;,\x88\xA8        \x99,H_\xA2-\xAF        \xB1\xCDѽ
+\xE46\x9A\xA3{\xC8\xEBi\x8E/$\x90\xDBz\x8F.$\x90\xDBz\x8F.$+ \xA2dr }=\x88v \xBCdt ]+V\xA2\xD8y\x85\xB2 kM\x88\xEBHW\xB4\xFF\x99WB޳\xF7\xE7@\x86\x8CAԻ3 \xF1\xD2\xFAKY\xF9\x85\xEC
+\x9F(\xAD\xBA\xB0\xFEBv\x85O\x9C\xE3\xBB\xC2\xFA \xD9&gt;ѥ\x9D\xF4\x9A\x88\xF0#o        \xD7D\xA4\xCBK\xA7\xCB\xEE\x9012\x8F[ \xBF\xAB\x89\xF5z\xE5\xC3\xFD} sy\x9F\xF9}^\xE4 \xBA|p\xBBd,\xCAA~\xE7\x81\xB0\xF2\xA1ܪ\x88ȝ\xBA\xE9\xE2\x88\xC8̂3\xEC \x99\xB3!\xE3\x8A\xBC dȼ\x86\xDD\xD1Q\xBAmȅL١+\x8B\x88x\xD4X\x91\x97&quot;\x9B\xBA\x9B\x8C\x88$!AW\xB0%I\xD2\xBE\xFCQd֛-7\x85\xAB }f\xAEn\xE9\xF7 9\xC6Km\xEB3suK\xB3\xD9\xF9\x99\xB1/buu\xDBX&gt;
+\x91K&gt;\xDE??\xA7\xC4\xF7\xD1F\xB33D\xBEg\x88\xE6\xEA\x86f\x93\x86X\xE6K\x9C\xFE\xE975\x9BՐ\xFB\x99\xDE\xD1xS\xB3Ʉ\xC02\xC5\x87ȣ!\x8F*\xDA]&quot;\x8DfC\x91OB\xB8 \xB9\x9FyD!\xFD\xA1\x90ξ=\xD9\xD3lj6I\x88\xB0\x9A\xB7?~i\xBD\x9A\xCD*Hg\x90\x86\x81;V7H\xDD\xFA:\x99\xC3|\x9C        \x88&lt;\xD2Ma&gt;\x82\xDCR\x92\x8FaLD\x94#7H\xF7M\x98\x9A\x80\xF4GFK\x83\x91\x80\xF0!=]F\xD6\xF2\xE1\xFDi\x8F\x94\x91Յ\x87\xFC\xEDy7\x9EJA\xBAHY]H 6gj\xD5EԊ\x99\x84\xC8r\xC8O,2\xD0edu!A \xF35&quot;\xE82\xB2\xBA\x90@&quot; QHO\x97\x91Յ\xE4\xF9\xC0\xD8\xD7Xw\x83p\xBA\x8Cl\x86\xFC\xEFqY5ˆ0\xBA\x8C\xEDק\xFC=
+\x99\xA8\xC2\x85\\xE82\x82Bfzs,8\xF7C\x98}Q\xC8@\x97\xAC\xB4B\xA4A\x81{9\xAE\x81\x88\x84\xD1)\x9C\x86\xA8G\xAC\xD9H?G z
+j !\xF7K-\xE7U\x83\xC8Uk:\xE0Z{\xBD
+\xD2A2D\xE6\xE4\xF28=\xBF\xAE\x82\xB0iDG\xCB.\xC4N\x93\x86\xFC#\xF1O\xF6M&lt;\x81LtP\x91\x82\xB0|Ȅ'\xD0/\xFF\xB4 \xC0\x8E\x80\xF0؄}\xBF|\xB7[ \xD3a\x90\xF9\xFD\xBF\x88\xF9\xEB\xBB\xF2ч@\xBA\x97\xB7
+\xF8\xECŰ|\xB7@\xD4!\xF6\xEA\xD7\@3h|D\xA2\xE3\xCE2\xC8\xE5\xE5]z\x80\xCE\xED\xE2n\x90\xF9 \xC8\xEB\x819\xBD
+5/\x99 \x89FS\x91i\xF9\xEC\x80\xD6;\xBDD\x8D\xA6&quot;\xC7\xE5Zfƥ        A\xA2є@\xABf\xE0+\xD7\xE5$`b\xE3\xCE2ȟ\xAD\x82\x82\x8FW\xAC\xE8@\xEA$딀v\x8A`\xD5Y\x88\xF74{A&amp;\xB4/\x9A\xAC&quot; \x892\xB2 d@\xAF~\xB7$gw\x83̇Ct\x8Bw\x83\xC0\xE1\x90\xFAEYg\x81D\xD9B m\xE5\xD5N\xDCD\xD9B \xE4&gt;\xB7c\x892\xB2\xE4/\xE9\x8B\xA9s\xEC\xC9DA\xA2\x8C\x9C        a
+@XK\x90\xB9        ȥ\x88\x84Da= 2@\xA2\xB0\x9E\x90(\xAC'B\xC6\xDF!N\x8Do\xC2!u\x8A\x93 $\xBA\x9A!\xEC\xF7\x888_\xADD\x84};\xFFIB\xB8s\xDE&quot;\xE0\xE5V\xC5\x93\xBA\xFD_\xC7o3\xA9\xFB`\xC6\xDEB\xB3\xEE\x9E8\x80\xBC\xFCٿ \x91\xB7\xF3\xCA\xC7\xD9%&gt;\xDD\xC1ɝo\xA7F _Q\x8F\x8Ch&quot;n1\xDE\xE1^.'\xBCO\xE2\xFB\xA0\xBD\xE8+\xDD
+d\xC2\x8F\\xF3!\xF2F\xF0O#oo\x90\xF7\xB7q\xFC\x84\xDC\xDB\xCD\xF7\xEC\xE2O\x96O\xAF{\xA3\x85\xB3\xF8\xE4v,\xC5\xFD˗\xA3?\xCEA\xECc\xF4\x91n\xF8\x81|&gt;b\xDD:\xB9\xB9\xA5\x9B\xFEYn\xFF\xF1\xFE]\x81\xAF\x8D\xC8p\xD1\xE4        \xF4t\xE8磿Q\x8D@܈\xF0\xF0)\xF2\xB2\xB6&quot;\xBCT\xE4D9g$\xEEC\x98j&quot;\xC3\xD5/\x82/\x8E        \xF7\x82\xE2 hYY{\x81\xFC\xD8\xE4J_\x99[\xFC\OC\xB4\xF37 ~\x87h͹\x91\xAA\x90+\xD2'\xD9av!_cw!2L\xCA\xF0\xB2\xBF\xF1\xE9J \xAE\x88α
+\xE4J\xE7\xEA-\xF8.D\xE2IC4\xD2y,\xEF&amp;&quot;\xD2 $\xDC\xD5\xE1CL}G\x8E\xFDy\xFB\xA6YǞjZA\xFA        \xAC!\xDC\xD98D`ۍ~\xAF\xF0s\xF4Q1\x89ne~.ho\xDF6 \x91I\x88ȁ\x82o\x8F{\x86h\x82\xED\x97s!2&quot;\xE9gA\x82\xB7\xDF \xFAc\x82b6@\x80j\xCF\xC7l\xF2y\xB4\x9Eyn\xD0&lt;\xF4\x86KX)G\xF7\x84\xEBWϐ7\xAD@VED\xE4@\xD0\xCE
+\xBD\xEC\xC0\xF8\xD3[&quot;rD$!\xF7\xF8\x82\Q\xCE+q\x8B\xDE \xE4+b\xDF4*\xFB\x9C~ \xD5Y\xED{yy\xEB\x89\xCCF\xE0%\\x88\xC0\xF2\x85\xE8\xF0L\xF7y\xD6v!\xE0Dۆ,!MA\xC0~5X\xA7ƧP\x9B\x82|{%\xA6\xFFe\xD8|\xC5\xE3\xC8)\x88\xDBؗ\x8B
+\xEE\xA9l4q\xDB!\xF2Q\xEE\xF7\xE2=m\xB7R\x83L        \xBA\xA4\xA0ڀtܿڐ%\xF0\x8D\xB4\xF0n\xBC\xF7* \xFC#\x80HƒS\xEF\x9E
+9qP㛁\xF40R\xE1\xDFN\x84\xC9\xE7B@\xF7\xDD\xCAo\xEEKq\xB0\x96,\x81 4\x84\xFB\x90\xB0@nF\x85O\xA6\xDF@7y]1\x95\xC1O\xC9f\\x88?\xA7\x91Ul\xFF\x97v         \xEE\xD4\xB7\xA7D :XL\x95$\xB8u\xB1\xA2\xD0\xA4\x8BA\xB8;\xBD\xE9\xA4\xE2&amp;H\xB0i=
+g\x9A\x80\xF4f\xF2\xF4v\x8D@t8\x88\xF2 ~JBxh&quot;b92D#\xE2 \xA5
+Ȥ\xA7
+ ܅\xE8\xE0\xB0V \xA6        \xC8%\x84
+\xE2\xF4\xF1\x99\xF4T\x82X=ˀ\x98F \xB7\xA7I\xAE\x9FV\xEE\x9D3a$\x84\x87G\xCEKo\xFA\xA8 \xB7G\x9FƠ\x8BB!\xBBU\xD0D\xA6I\x88lr\xC1 \x80C$6\xA3\x8DBT&gt;\xC4&lt;r\xD5@0z\xA8yy\x84r\xF2\xE7\xB15\xF1&amp;Wx8\xEF4\xE4\xC7dhr\xB9A \x98\xD9\xC7vr0\x83\x8DS\x89\xAF!X\xF7\xF8\xF7i        2\x87\xEFR!\xE4?^*\xDB\x93\xEEv\x8DՐ\x97\x97\xE5\xE7\xD5 \xAF\xB1\x9FuMn\xC8y\xFC$a[!\xAAȈ\xBC (\x88B\xBAqCBD\x84\xB5\x99Xl\xDB\xB1\xC2BTB-*5\xFC]9\xB3+dnr/$[8\xA6 Ⓞ\\x8C\xF3\xB8&gt;7X\xED&quot;\x9A\xAFu\xD2GK,\x8EHu\xC8=&quot;#\xB1IAEJ\xBC֓\xFC\xF1\xF6\x88ԃx9l$\xD0\xC87\xBD\xA9\xCB\xBF\x88\xF9\xCDC\xD0US\x89o\xE7\xE1\xFE\xE2\xF2'        AwzJb\xF3\xCAo°h\x9BF \xFA\x93\x84H\xE4\x85d+~\xCA\x8ElT\x92\xAFh\xD2k\xE0\x9B \xD0:ۡ/\xF1hZg\x95\xF7f\xFD)Bx\xF8Ji\xF0\x8A\xB6 D7A.Db\x8A \x9A\xB5        Вx7\xF76,\xB04\x84Q_MC\x82\xBB,I4\xB9O{\x9CSK\xA2\xA3\xE2\xDE\xE6\xC6VM]%#R2F\xF7!!̅\xC0\xEE\xA9        #O\xB7\x80 Hʅ\xF0r\x88A#RBDĝ\xF9\x95AiӇE\xA4:\x84\x8A\xB1U_`\xB3|\xF7-\xA5\xFA\x88\x88\xB4\xC1$\xCB\xF3\xB9\xA2ۅ \xED?i\xE0.il\x97ۧAw\x98\xBB\x83E\xE1@TD\xB5\xB9\xAF\xE9\xE1\xBF5OҳXڹ\x9F\x88A\xCC:\x88n\x82FD\x84Cf\xB7\xA2\x91\x9D\xB3I!x\x909D\x84Gn,T\xE1\xCE=)\x8B@\x80\xA3\x9B\x86ˆԆ&lt;&quot;\xB2̽\x8B5=\xB7\xA29@\xCD\xE0+#\xD2\x84Ǻp\xE5&gt;\x95\xE1?\xF7\xB2\xE2=\xD2\xD1\xE4\xF1o
+\xCC˙uD\xD9\xE3C \xAF&lt;h\xAD@\xE6%;!
+qk\xBC
+\xD1(\xC4\xDBjl\xBC\xD7ٔ\xD0\x8B\x88\x89B܊FB\x94w\x8D@\xB8?S
+ސ\xAB\x88ʇ\xBCN\xE2\x85l\xD0\xC7Ÿl r]B\xADc\xB7\xC6\xDB\x85B\xFCytW\x99^6o\xB6 \x81\x84\x91\xDB\x90+g?\xFA$\xF1\xE2o\xFFS\xC6\xE0\x9D\xA5\x88\x89B\x9C\x8A&amp;(\xF9x\x9C\xC1\xF7^7\xDD\xD99\xE2_\xF8w\x93\xD4#\x94\x8Aj\xD8ֺQ\xC3\x88\xDD.:\xC1\xA7!\xE4c\xB6\xE0?\xDDa\xB5\xBF7mbb\xB7\x8BNE\xE3$\xC4\xF8/\xE6\xF8Ek \xFC\xCB`\xEEk\xB9;\xBD\xA9XPѸ\xBFt&quot;\xF0a\x94\xF5\xB8\xBE\x83\x8F\xA2\xDDa\xD1qH\xF0+h\xE2\xE3N\xCDqU\x85\xCC,\xB8}z\xE4\x93Dk\x94v\xD39\xF8\xA5I\xDA\xFA)\xF8\x9B\xFF\xA5\xFB\xB6\xBEY\x88s\xEE-\x8Exp!:\xB6ܬ\xC99s`\xFE\x88\xAB.\xE4\xEA\xD4t\xCD\xC2ߋ\xE3.\xC4;\xCFڦ jkDΆ dD\xB0%y;\xF2J'\xF2\xE0cЪ\x91a8D\xC5 \xF8^\xBB! 22\x96\xF3k\xC8&lt;\x88Ȃ#\xAF;  \xBA&amp;\xC4\xE4@\xFD\x85\xD3 \xA2}HgC&amp;*\xA1\xFD\xA5\xE4\xC1X\xD1ݴ\x8FU-N\xB9
+\x81\x8A'&quot;3\x95P\xBA\xA2\xF5)u\x91\x9A\x90ކ*\xA1\x82\xDF\xEA\xC2WC\xC8M\xBBn\x8A\xB7\xB9\xE2\xE1\x83p\xC5\xAB\xDB\xE0B$\xB2[ \xC9V\xB0&amp;\xAEڃ(j_m\x91i\x883\x92\xD8\xEBn\x8FҫC.d$\xD7\xE1\xFD\xBD\x8E\xAE:K&lt;W\xB7\x9F\xD1!\xD6\xF9\x90        \xB2;E }\x82\x8E@\xC8m\xEEC\xDD\xF5!\x9D \xF2\xB9k\x8EN\xD5BxKf\xE55\xF2\xB9\xC3O\xE9nЭ\xE9]Ȍ\xBE\x98\x91\x85t\xAB\xFE\xAFp!\xA6\xC8y\xB1\xC6VO\xD2ܕ\xE1ؕ\xF1&gt;\xE5]8\xB4
+\x91\xB2.\xF1x+n\xC4\xFAͻԖ]\xB9\xAD&gt;\xE4B@X&lt;\x81\xE5\8nt \xBB2\xFEl\x9F{&gt;\xA0;\xC9S \x9D\x99\xA2=8\xF4sN\x87\xE3Fw\xFBW\xB8\x92\xA1ˏ\xD6$(\xABs \xBD\x99\xFD\x9Crޭ\xBC\xA3\xA1\xAB\xCEJ\xF4_\xF6\xE3d\x95\x83\xA0\x97\xAC
+\xB9\xB2\xF5_H\xEE\xD7@\xD4\xC7 a\xE5@\xC6:\x90K\xD1\xDB!\xBAb\xC8T҅\xA8\xE1!d\xAE\xE9C\x88\xD9\x91\xA5\x81@\xAE5 Q\x9B!j;D&quot;\x90\xB1\xE4\x82@t
+\x88A SH\x87A\xE6\xCD\xCDw;\x84\xB7\xE91Ȗ\xF6\xEBV\xA0\xF5\x89BT+\x90\xF1|\x88A!\xFAtH\x87Cַ_o\xCAb5\x84\xE38\xD2\xE3\x90\xF5\xEDWB1\xA7C2\x9E
+\xB9}2\xA43du\xB3\x91eNA\xE0dHOA\x88l\xE5׼\xB1s\xF2\x87d\xA3q!\xF8g\xE9U1\xE4\xAF\xC9\u!x\xB3\xC6xO\x91\xC1{vCB\xF0fs)\x86th\xAC;\x82gk\xEAK\x95\x84p\xF4=
+1xk\x9FJ!=\xFA\x87\xE4\x8A\xE66\xC4k@&quot;\xD0~LF 
+\x85C,֝\x89@&amp;\xB4\x91\xCD\xF1\x90\x86\\xB0\xC9c\xC0\xE1\xA5\xB4A\xF61\x92$OI/*\xEC\xB3ω\xF1!\xE8\xF5\xC5Rg
+\xA4G\xE4%
+\x99Ъ5F\xABb&quot;\xB1c\xF8\x9B\xC0ē\xA4#*\xEE\xC8\xFB\x88&quot;        \xD2A\x8D        \xB3S\xF4\xC8&amp;\xB1\xF2E\x90\xFBv\x97\x82|\xC0N8Go\xE3S\x81\xA5\xDF\xD7)\x88A?Md\xC0\x8E|IBF ~\x8D@t
+\x82\xD9\xE8C\xEC\xFCq\xE1\xAA\xD2aG\xD2\xE7\xD3sj\xE8\x86\xF5yD`G6\xBBh\xBC\xA3\xEA\xDC

+\xBF\x92E\x85\xCC\xC8\xE5\x85l\x931?!Wr;\xA4G\xF2oȃ\xCCȇ\xB9\xD2\x878\x9D\xECwD\x93\xC1!\x8Fk\xF9\x8E!^\xFD\xF9\xE9[_\x98\\xC8+\D*?\xBA1\x83\xF8i\xF9\xE1\xFD\xF7&amp;b\xFE\xF4t\x88/cw&lt;\xB9\x90\xEEb2\xBF \xF3e+ \xB1\x80C\xE6m\x90/\xCC\xDE\xBF\xD9p좹\x90\xA7&quot;\xF8\x99\xD9\xA2\xD6B:\xF3\xEB\x97\xE6\x88\xA6F*\xD0#\x9F\x9D \xD0
+d\xA6 \x8C\x80\xF0\x83 f-䨈P\xBF|\xA8\xF1\xC3&quot;\xA2[\x81\xCC\xF8\xB8K\xD7 \xD0{\xEC\xFD \xA6ȈV\xB4\xF0z鵽\xCCZ\x88^9.&quot;st\xB2w\x89\x82::&quot;^wS2\x86'E
+l\x80\xBCZ\x81xc\x89o\x8AT\xF8ٮh\xE2\x87\x99\xBF\x91\x9A\x9D\x81\x90ˑ\x905\xEB\xA0\xE6P\x88\xF9\xA6H~P\x87\xA0\xABH]j\xED\xE1Ȕ\xB7\xCA+AT+\x901\xB1r]\x80\xECG\x96\x98j\xDF\x82\xEE2\xBAY\xC8P        2%֧\x80\xA0k\xC3$֧\x8E\x80`k\xC3r.-\xAC{AL3\x90ka\x85\xDFQ\xE8&quot;uȈv\xB5\xAA\xB0\xC2\xEF\xB9\xF8\xDF\xEDO\x80ht\xD9^֣ \xC3        \x90        \xDD\xC3\x85\x85ur \x97:\x90\x9E\x98+\xA8q Iw\xC4\xE0\xBBZTY\xD92\xF8\xE5\xA5?rEw\xB5Le\xADw \xDD\xCC䦎&lt;2\xA2wusY\xA3\xD9b\xCA\xCD\x88\xC6o\xA6TQ\xA3\xD9!6
+\x8CE\x8Df 𻺩(W\xB7@f%=\xCD&amp;\x88!n\xA6\xAE%)\xB2'D\x95\xA4\xC8&amp;\x88\xC2o\xA6&amp;rG\xD5\xC9(I\x91MM\xDC:\ Rdd&quot; \xBA E6A\x80\xB8ux\xDD\xD5\xF7\xC3i\x90\x99\xBAuP\xDB\xB2        \x82,SX\xD7L\x9EQԈ]m\xC86\xC8H\x8E\xD8\xFF\xFD\xBD9\xA2 G\xEC\xBBA\xA6\xC2\xFBn\x90\xB9\xEC~{?\x88\xD3ldM\x88be\x83\x8F\xDD z\xF7\\xDD\x81\xB2\xF1\xE9~+ID]\x88\xDA;W\xB7B\xF4\xDE)\xB2{\xA7\xC8V\xC8#Idm\x88ڷ\x8Al\x87\xCC\xFB\xB6\x99\xED\x90\xD75\xF1w\xF5!\xF3u׀l\x87ܲ\xE4\xD2D\xEF6)\x84\xEC\xFC\xFF3'
+endstream
+endobj
+
+15 0 obj
+&lt;&lt;
+/Type /XObject
+/Subtype /Image
+/Name /Im15
+/Width 1094
+/Height 482
+/BitsPerComponent 8
+/ColorSpace /DeviceRGB
+/Mask 14 0 R
+/Length 40737
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xEC\x9DxdWy\xFEg\xBD\xCD^lc\xC7`c\x83\xA9l\x8A\xA9\xA1w\xD3        %B\xE8\xED\xA1\x86\x9A`j(                Hh&amp;B3\xF6\xEEJ3\xA3\xBE\xD2\xF6bo\xF5\xF6.\xCD̽\xD3{\x9F\xD9\xFF{\xCEw\xB5{eIk\x95)\xF7μ\xEF\xF3{x\x84\xAC\x95f\xEE\xDCr~\xF7~\xE7;g\xCE0 3\x8Fxz\x82\x9E^\x8D/\xA41\xDE\xD0\xF9\xB0\xFFL\xAF\xA1\xC0/\xE9        rc2 \xC30 \xC30 \xD3&quot;\x91\xE9
+)\xB4\x894\xCAh&lt;=\xF5\x9Bמ\xE2\xE6e\x86a\x86a\xA6\xC1
+ヶv7\x97\xBB\xF15\xA1\xB9b\xFD[m43\xFC\x85V'\x83\x9Fa\x86a\x86a\x98\x8A\x8C\xF5T%\xD8\xA3\x99\xFC\xAF\x9A\xD5\xC7\xF8q0 \xC30 \xC30 37\x91        z\xFC\x86B,c0\xA1\xCB+\xD6e\xF2\x9D\xFE\x98\xC2V\xCC\xDDe, E_X1W %벊
+E\x85\xFC\x8C\xF5\xF3\x93Om\xBC&amp;? \x86a\x86a\x86afk\x86KбF\x9D\xF8a1 \xC30 \xC30 3Eg\xFAL\xCB_\xC4,\x86S\x8A\xFE\xA8b.\xF3\xFD\x9B\x81\xDFT\x88=\x89\xE9\x88C\xC9\xEB\xF1\x99\x80\xC30 \xC30 \xC3t\xB5\xC8ȳ\xE8\x8C;\x8D\xC6zͿ\xA3\xDA0 \xC30 \xC30L\xF7\xE9\x8C״:'K-Y_D\xD1.\x99 \xF2\xDAb\x8AѬB\xBE\xDF\xFC@\x86a\x86a\xA6;D&amp;\xA01;\xCCh&lt;=x;|X\xC30 \xC30 \xC30\xAD3g\xE7\xFBKu\x99Tv9\xD9bf\xEB* \xAFY\xFA\x8C\xA4\xF2\xBE\xFC\xC0\x9Aa\x86a\x86a:Jd\xD6\xF6fm4\x9E?\x9E\xE2\x87\xCE0 \xC30 \xC30\xA23gW\xB4\x94\xBA2\xE9\x99,3\xEB]c1\xE7\xADC\xAF\x91\xF7e\xAB\x9D\xE3G\xCF0 \xC30 \xC30\x9D\xA03\xDDj4\xD6,\xA1N\xAEa\x86a\x86aw\xEAL\xEFd-\x99\xF4a^\xE0j\x98\xAE\xB21\xE9`ٜ\x82;\xC30 \xC30 ø\xC9ez&amp;\x94\xCE\xD0h&amp;\x8D\xC6\xD3s\x82{\xC30 \xC30 øCg\xAC9\xF2\xDA_\xACU2;\xA2\xC6l\xABs\xEA\xF7&gt;WHŝ\x86\xFB\xC30 \xC30 \xC38]g|\x8Df6\xA3\xF1􇹇0 \xC30 \xC30\x8CsuF\xC6\xED\x83        \x85\xD4_u\x8FŜEN\xD9\x9CS\xC30 \xC30 \xC30\xCEt_@A\xA3\x99\x83\xD1xzX~\xC60 \xC30 \xC30N\xD2o\xC03\xD3\xC4\xDDVc6\xFAc
+\xB1d\x87Oj\x86a\x86a\xC61:C\xA3\x99\xBFѰQ\xC30 \xC30 \xC38Bg\x86\x8A\x91\xB4B\xEA\xAC\xE8/\xB3!\xB5g\xE2}\xFA;܅\x86a\x86a\xA6\x9D:C\xA3Y\x9C\xD1x\xBC|R\xC30 \xC30 \xC30m2\x9A\xE1\xB4b$\xA3\xA0\xAD̷\xB7\xF3PR\xC1'5 \xC30 \xC30 \xD3\x9D\xE9
+\xD0he4\x9E\x9E        \xEEQ \xC30 \xC30 \xD3:\x9D\x91u3\xD7ұ\x99\x9E2o\xAF1\xEB2
+\xE8ao\x80\xFB\xC30 \xC30 ôBgT\xE7.M\xE3\x8D\xC6\xE3=Ž\x8Ba\x86a\x86a\x9An4𗱼\xC2\xD4PO\xB3
+\xA7\xEEt-v\xD33\xC1\xF23\x86a\x86a\x86i\xBA\xCE\xD0h\x9Ai4\x9E\x81w3\x86a\x86a\x86i\x8A\xCE\xF4\xAD\xCE\xC32\xA7\x8F4
+YySj\xF9\xBC|L\xC30 \xC30 \xC30\xCD\xD1MK\x8C\x86R\xC30\xE7=\xDC \xC30 \xC3\xCC{\xA1V\x87 +\xE2
+:H3\x90UJ\xF5*\x9C\xDC\xE5\x98\xEE=\xDB\xF8B\xE7\xFE\xB7Oɋ\xA7\x88\xA1\x90\xAAW\xB9\xBB\xE2S\xE8\x9F\xD4\xFF\xDB\xBCϿe\x86a\x86\xA1Ѵ\xD1h&lt;\x94\xA6CO&amp;}!\x8D\xDE\xCF}!\x857\xA2QO'\xAD\xEF}\x86:3\xBB\xD1X\xC8\xF7\xED\xFFV\xBE\xDFQȹ\xCB\xFAW\xA2&lt;a~ \xC30 \xD3}F\xB4\xFA \xD3;\x9A\xD8%\xC0Pp\x85\xA6C\x91\xE2U1\xCBStw\xB9O&quot;\x8E3+\xE1Y8ᅭ*Y\xEBo\xC9j\xB6\x9A\xB5\xC0\x85a\x86a\xBAKgh4\xED0\x8F\xF70w?\xC6}g\x8C5\x85\xC7\x9B:\xCAh\xAC\xBFnk\xFA\xEB\xB5\xE3\x8A\x93&quot;\xC30 \xC3t\x9A\xCE\xF8\xC3\xE7\xA0w4\x83I\x8D
+[0\xAE:W\x9C\x919/R6\xDBC\xCC]\xBA\x8BLw\xFF,H\x9Fs{\xB7s\x8BY~~\x8A\xEF\xC8o\xD6?/\xDDr\xDB\xEA\xC0\x96d\xC97\xF9\x84\x94a\x86a:Kgh44\x86\x99\xF9\xFCU\x88/X\x8E\xEA\xA3\xB1\x8EA\xEB_q\xDE
+\xC30 øz\xD0\xF2 %t\x8DV\xB2.\xABУ,\xCF \xBD\x93F`U\x97\xD9\xEC@\x9CBz\x92۝e\x8A\x9B\x88Y\xB4\xBC\xAA\xD3r&quot;\xB1\xFD\xAA\xA4k\xBA`\xF5\xA5׾c\xFD\xBC\xEE3`\xF3~\xF4 \xC30 \xE3&gt;\x9D\xA1Ѵ\xDBh&lt;&gt;&gt;\xA9ap6\x90Y0~CqVg\xBA\xCFh&lt;=
+o\x94\xBB\xC30 øAg\xAC7k_\xEDYB19h\xE4\xDEȴ\xFBl`X\xB5X\xBE\xB0¾2\xECPB!F v\xD3z[i\x98\xF5h߱:\xD5\xEBw'G\xA2\xE5b\xB6\xF7e9g\xDC0 \xC30\x8C\xB3u\x86F\xE3\xA3\xA1\xD40\xED9X\xEB\xC54\x9A\xF3\x8D&lt;ӹ\xEDp\x9A; \xC30 \xC38\xCCht݅\\xCD\xE9m[s3\xA3\xD0_s\x9FdZ{\xF8\xDB*\xB5\xE4\xEB\xE1\x94BjP\xAD\xF51]k. 3\xCB\xE0\xF4\xB0\xD6\xD6\xE7I\xAB\x8F\x87Ԫ\xF1Pe\x86a\x87\x8CgL\x8Dӌ\xC63\xC452\x98&amp;\xF8\xFE\x90\xC2\xA5\xD3hh4\x8A\xB5\xA7\xB9;1 \xC30L\xBB\x8D&amp;4e\xFE,͢]\xC8R\xEA[z \xEE\x99L3\x8F\xFA\xA0\xA7?\xA6\xB0۴\xDD_x&lt;N\xEF3 \x8E3\x92VX\x8E\xA3\xED\xC6V\xAD\xC7]\x8Ba\x86aڣ34
+\xD3%\xC7{\xCFi\x85&lt;_\xA0\xD14\xC1h&lt;^\xAEe\xC30 \xC30m\x91\x9A\xE0\xE4\xD5\xD9Uc k\xE4\xAF{̮\x9D\x85\xF2\xF3ίu\x91Q%\xFB0\xCD8ҭ\xB9\xFCzO\xCB+d\x8E?\x9DeaG\xABT\xEAJ\xF7u\xBB\xF5hg\xE4.\xC70 \xC30\xAD\xE4\xD0hh4L\xE3\xB2\xFFˑN\xA3i\xA1\xD1x\xD6\xF2y
+\xC30 \xC34\xA8sv\x9E\xAF\xF3G5b(w\xFA\xEB\xEB
+\xF0Աx\xC5\xD6،\xBCpS&lt;v$ Vz\x83\xC0\xB3:\xA0XT8\xCEq\xF4(\xC8Zm\x93F\xC34\xE2ǎ$դRW6\x9AUX\x{165D9E}d\xF1\xC8Yt}Aa\xF5R\xD0\xD6\xC3\xE75 \xC30 C\xA3\xE9b\xA3\xE1r~\xCC\xEE\x9E\xC9U\xEFi40\xCF\xDAq\xEE\x93 \xC30 Ӕ1O\xEFd\xED\x843\xFB\xB2\x8Awhy\xD2h\xBCoO|\xF3h\xFCv&quot;F\xC2E\xB0'Y&gt;\xCBn\xDB\xE3%\xD0*\x80ςOH\x83Wm\x8D\x81K\xFC!`9\x8Es\xECF\xC6E2\xD53\x8E\xB9\xA32\xF3&lt;\xAE'; \xCB\xF6aM\xF7\xF4^ns5\xAC\xCD&quot;\xE5\xEE\x84|_\xBE\xC3g\xAF \xC30 \xD3p\x9D\xA1\xD1\xD0h\x98N:\xA8{Lkϡ\xD18\xD8h&lt;\xECd\xC80 \xC30\x8D\xFF\xE0:\xEB\xB4N\xAD=m17\x8FF\xC0\xDF\xEDK\xBFQ\xE5Z,\xFE\x8DJW\xC0w\x8Ef\xC0˶D\xC1\xA5~X\xB5mN\xE8;Wp\x85 f\xAE7(&amp;-F\x8CX\xFAK\xD0b\x9C\x80\x9Cc\xAD\xEE\xD2\xE7\x993k\x86a\xA6q:C\xA3\xA1\xD10\x9D\xA134\xB7\x8Dg\xED\xB8\xEDP\x8A;0\xC30 \xC3t\x8E\xD1躯\x8B|\x8A\xD7n\x8B\xBFQ\xCD\xDE'\xB3\xF0\xC5ip\xE3p8\xA2۳\xD4 \xB1ꞹ\xDF\xF9쪸\xD2I\xD8o*\xE8N\xB6\xBBoj\xB83 \xC30 \x8D\xA6\xB3\x8D\xC6\xD3\xCB3\xD3!\xDC39;\x83F\xE3r\xA3\xC1        \x87\xFB3\xC30 \xC3\xCC{,\xD4\xB0\xAE\xA4N\xFF\xE8J\xB3\x95&gt;\xC5v'\xC0\xA9\\xB4r\x83Tju\xF0\xCB\xD39\xF0\xD0aX\xF5o\xED\xF2\xA9:\xA3\xE9agf\xFA\xED\xDB\xDC\xBB\xD7\xACΩϽ}Q\x85\xAD7 wl\x86a\x86\xA1\xD1\xD0h\x9A\xBF\xDBL\xE8\xE1tP\xFEWa\x8D\xCD\xF4J\xF4\xF2lkŠ\xB5E_P19\x9B@\xFD\x9E\xB5Q\x8F\xF3\xD7M\x8Du\xB6\xF9%\xDB2 \xC30\xCC\xDCE\xAA^E\xBBL{\xE7kkXҫ\xF8\xCBq`\xAB\xA0]\x9B\xA5T\xAB\x83_\x9Cʁ\xABL`\x8D\xC9\xDB\xDBù\xDDUge\x9D\xB1\xD6c\xD5X\xAE&lt;\x87\xBCZ٣f \xA2\xB0f\xAFkd\xE4fs\xC6s\x85\x8B\x8A\x9E\xFF\xB3\xE8\x8BX[O\xB69\xE7\xFE\xBB}4\xF9\xC2
+\xEBx\x97\xFB'&amp;\xF7s\x86a\x86\x99\x93\xCE\xD0h\e4-\x93\x8FoB\xA3GYv\xFB\xB0\xF6\x93f\xCD$\x81s\xC8\xF5\x9A\x8A&gt;޵\xC6a{š\x85A\xA3\xE9t\xA3\xE1&gt;\xCF0 \xC30s\xB5J\xBDY\xFB+U\x96\xAC
+\x82Ǭ \x83=\xA9
+p\xC2\xF6I\x97k\xE0\xE3{\x93`\x85/\xDAP{f\xFFt\xB4U5y\xB4o\x9A\xFC\xEB\xF6ZDq[`\xFB\x8Cfc\xCBxL\xBE\x9E\x8E\xFD\xBF\xCA\xFB\x9ARic7\xF9\xDA\xF6w\xE5/\xEA\xEF\x9C\xE9\xE2'8V\x9D\x9E\xCC(\xB7\xB6!]\xA6\x83\x90#N\xAA7\xAD#E}\x87W+\x86a\x86\xA1\xD1\xD0hfWCa\xF5Y
+\xB8\xC2h\xACg7^\xCD\xEAc\xEA]x;\x8Eg\x{DE02}FӕF\xE3\xF1\x9E\xE4\x8Ba\x86af#
+\xC4\xED5=J\xBF\xA2\xDF_?\x98\xD5\xFA\x99j\xDDA[i_\xAA n        \x836\xAC\xBC)\xE3U\xF9\xA4\xF4h\xB6\x91;@\xAF\xB5\xFD\xAD}\xC0\xAA\xF8\xB2Տ
+\xC4S&lt;E\x8F\xB5\xACJE {_\xF6\xDF \xAFA~D!\xEFھ\x97Z\xA6\xA3\xABq,\xBBԦ39\xA7\x93\x8FV{\xA7\xF9D8\xFE\xEF\xEC\x8E\xF2)&amp;\x93O'\x86a\x86\xA1\xD1t\xB9\xD1xzO+\xE4&gt;\xBF5\x87\xA5s\x8Cfrލ*ѹ\xEDP\xB6s\x8ESyvF\xA3\xE9z\xA3\xF1\xF8\x80W.\x86a\x86q\x9CѬ        \x82'\xAC\x8F\x80\xB9*p\xDAV*\xD7\xEA\xE03\xFBR\xE02\xBF\xDA\xD0%@\xAA\x8C\xF7$\xE2\xDC,~\xABNIWs\xC9j\x8C\x825\xAFߑ\xB5L\xF6\xDA6\xD9o\xE55\xDB\xE7\xC8[\xD5k\x9AN\x99}\xA0\xAB\xEC\xF4\xA7愣\x95\xB4\xA17H\xECֽJ
+\xC30 \xC3\xD0h\xDCm4\xF3\x9DJ3C_\xB2\xAE1y\x9As\xDBa\xB7&gt;\xAF\x99\x9C7D\xA3\xA1\xD1L1p\xDB\xE14/a \xC30 \xA3\xC6K\xF6^\xBB\xAD\xBFR\xEBQ\xE82\xCD;w&amp;\x80\x93\xB7U\x9FQ\x836Ԟ\xC9\xE8}&gt;\xB5\xF4\xE7|\xC4Z\xC5R3\x9CVX.\xA0\xEB\xBB\_\x9F\xA3+\xD6dOJ(\x86S
+qy\x8F\xBD!7N\xB4\xD1\xEB\x96\xEAw'\x9F\xD7ª\xFB\x88\xEB\xD1w\xC4\xDCeO\xB0u\xE7\xE0U\x8Ca\x86ah4n4 o\xCE\xF7\x99\xAE)\xECOXh4\xF6\x95n֞v\x8D\xCE\xD0h\xC8\xFD\xCDm\x873\xBC\x901 \xC30]\xAD3\xB8V\xCAU\xB2]#%]\xBBuݠ        n?\x91N\xDE\\xC9rܼ&gt;&lt;\xAB\x8AVn+\x99\xA1\xAF\xC76\xE7\xFBL\xCF\xD6&amp;ɿZ\x97U\xC88\xBF۪\x95\xC4qd \xC8\xD6\xF3\x9E\xB3\x83\xBAnǹ\xC7&amp;&gt;G\xB9\xCF \xB5F\xF6\xCEդ\xAB{;\xEB\xA3XjPm\xB5\xA3\xBC\x9C1 \xC304\x8D\xBB\x8Cf\xC6\xC23\xDD\xFB+H\xA3\x99\x97\xD14{\xB9҅\xEB \x8D\x86\xCC\xC7h&lt;}l\xEC\xCC0 \xC3t\xAB\xD1\xF4\xB6\xDBhtO\x80\xA7l\x88\x80\x9D\x89p\xFEF{\xFB\xCEX\xD9Z\xD9\xDB\xDA\xD56eL\xAEǺ3 \x80\xE5\x97Y_P\xB0\xBB\xEF\xF4\xCA4\x8E\xE6\xF2\xABO\x82\xC2)G\xE5\xDA\xC0\x94\x8E\xD9\xFC\xECȬ\xFB\xB3\xBESa\xEB\xC1\x8B\xC30 ӥRC\xA3q\xA1\xD1H\x91\x89\xC7g\x9C\xBB\x9FO\xA3Y\xB4\xD1x\xA3\x8E\xD0
+Y\xA8\xD1x\xBC\x87yQc\x86a\xBANg\xCE\xCE6m\x97\xD1\xE8ڭl\x89\x81h\xB1
+\x9C\xBFѾ}(
+\xAE\xEC7AK{8\xDBW\xC0\x94:\x93I\xBBQ\xAC\xCB(\xA6\xACAɁ\xDF\xF9
+Q۟ԤY=\x9F\xDB\xDC M\xBDq.\xF6g&amp;\xF3]{\xD7ZgV\xC1K\xC30 C\xA3\xA1\xD1\xD0h\xBA\xD9h\xAC\xE75-\xBF\xD7m\xFDu
+Y\xB4\xD1x\xEEL\xF0\xEA\xC60 \xC38\xCE;tG&amp;\xC7\xBD\xE6\xFB\xB9\xFF\xF5پ^P\xAF\x9B\xF6\xCD]\xF0\x8A\xEDq \xABX:\xFF\xE3\xF8\xC5\xC9\xB8~( Z\xDB\xC3Yz\xF9\xEA1\xCCHF\x93Vp\xF4ۨ\x8A&gt;\xB1k~K\xFBG\x9D\xEB\xAAݮ&gt;\xEA\xC4\xED^c\xAD\xBF)grv?c\x86aZ\xA8*wMh%\x91\xFF5\xD6\xDD\xF5\x80\xC2ޑI\xAES\xB2\xE6\xBB +\x8C\xC8\xD7ޠ
+\xFDo\xE5\xF7HM\xFEZ\xAD&lt;kC3\xE8 \x8D\x86FCf7\x9Aִw\x9E\xB2N\x8D\x864\xC8h&lt;\xFE$/\xB2 \xC30L\x83-\xFDK&quot;\xAC\xE9\xE4b\xFB\xDA\x93\xBDy\xCF\xCD\xF4\x94\xB57\x96\x8A6J\xFD\xB5\xCC \xB6\xD7\xD9\xA7eF\xF6\xBFb!\xEB+\xA0}5Ɩ\xCD\xEBvā[&gt;\xCA;y\xF0\x88\x910h\xC3:\x9B\xA45vc\xADh\xA9\x8F }5\xEB\xCC\xE0 [f\xCA\xD53I\xBCF_ \xAC}I\xB99/\xBE \xC30\xCC\x87(~]\xE6 (\xC4\xFA#
+\xEB\xAE/\x8D\x86FC\xDCg4\x9E\x9EM\xD1
+i\xA6\xD1xVSj\x86a\x98\xF9 N\xF4]\xDCs\xB6b\xA1
+b}Q!\x95Bb(2^\x8C+d^\xA7Tّj\xA2)\xAEaذ}G\xAE_\xD3\x83\ݬ\x9Af(\xA5ѳ\x8F\xFBŠ\xF6^\x85\xB5ѼvG\xFC\xB5\xEE1\x9A\xDFO\xE4\xC1\xC3G\xC2\xA7\xD1tKw\}\x94\xE9\xD59y\xC6\xE8\x9D\xEC\xE7Ю\xFB        \xA4\xD1\xFBj_Ta\xD5*\x9D\xB9\x8C,\xC30 \xE3\x85\xD1\xCFb&amp;W\xB7=\xA1\xD1\xD0hHg\x8D\xA7\xF7t\xC3t\x86FCZe4\x9E5\xBCb3 \xC3\xCC\xFFb\xADW\xDF&gt;WaeMf\x9C\x8F\xA9\xAB\xE3k\xA7\xBFGX\x8C\xDD,\xC4\xA6\xB8\x89\xF6\x99\xE7+#\x96٘b(M\xABF\x98\xE1\xEF:\xE0\xFAK\xA3!\xCEʽ\xB1}\/\xFA\xEC1yT:\xE1\xAE\xE9\xD4\xFDV\xAEG\x93^Ñ        \xC30\xCCy\xE5e\xE2\xDC\xFDF_D#\xAB9l4S\xCE\xCC2b\x94j\xF3\xFEp;\xDFi\xAF\xA9\xF0\xF2\\x86FC\xA3\xA1\xD1t\xA5\xD1xzN\x83\x85\xEB \x8D\x86\xB4\xDCh(5\xDD8B\xEB
+\xEBq\x9A4G\xB5]\xFD\xD7L\xCCk\xCC so\xF5\xA8O:\xB5\xA8B\xDCf\xCC1d\x98\x96,\xC1ɪ'}\xBCXWg\xF9N\x83\xB0\xC76\xE6\x9F|\x8EӢ\xF7xv\x9E\xBE\xBDw\xAE \xB6&quot;\xA3\xABB\xCC6˞\x95$4\xD2I\xC8\xF1.U\xA3\xF2\x9D\x9Ey?JVK\xF9=RʭJ\x9A\x8D\xB5f\xAB)-k\x98\x8E\x95\x9D\xB1\xCF絯\x{DCF1}\xC0\xF5\x9Dmk:\xDB\xEB\xEA'\xD7?j\xE5،a\xFDDF?+\xF1\x87v\xD7h\xB9\xD1X\xD1\xEA\xEB\xD2\xE0g7\x9E5kU{\xE71
+\x8D\x86FC\xA3\x99j4\x8A\x91\xB9\xAD\xD1\x8D\x86\xB4\xC9h&lt;=\xE3\xC6t\xC4HLV\xA3\x9BPXU1\xB6u\xE8\xEC\xF3y[h4\x93ߙPXH\x8Fe\xAD=\xF6\xDCc\x9Cr\xF8\xA7\xEC\xC9vװj'l\xF3\xD0\xED\xB3ڭ1\xFF\xDC\xD1\xFFJ\xCCh\xFA\xEF\xB4?\xF7\xB4k\xBA\xACA\xF773\x98\x88\xFD=\xCE:g\x9F\xD0hH\xD7x\x8Dt\xF6\xB0\xBCf\xAE\xF5&lt;֝\x99ᤂ[\x92\xB4\xB2Džt\xD7\xDF\xE1\x90ƭ#\xB1\x9E\xC0ԾC\xB3\xDC\xEF\xB5W\xEF\xDB\xEF\xBE\xCAhj1\xD8Gb\xD3\xC7?\xD3\xFF\xFA \xEBV(\xF8Q2\xED8|lwo4\x93\xAFM\xDF\x99\xDF\xE3uO\xEF)M\x80FC\xA3\xA1ѐ\x8D\xE7\x8EМt\x86FC\xDAm4\x8D\xEA\xD7\xC74\xBF\x84\xCCPX\xE7\x99@\xC7\x8D5\xD9?\xAE        \xF0\x83f\x9A\xAF3\x93gB{%\x95\xCC4\xB4\xF6m\xED-ZN\xE6\xE7\xEA\xA3R\x8E)y%\x82ݭ\xE6\xE0\xDC\xD3R\xAB\xA6N\xFF\x99\xE9o\xF9\x8B\xFEN\xB3\xE7\xEF\xD3hh4\xC4]^cU\x8Eə\xC1\xAA$\x9F\xFDI\xB7i\xF5N\xE7\x9D\xD2zdl)WL]\xA1\xC4A\x8EsG_\xDE\xC9a\x8C}|e_\xDB\xD9\xFAٍ\xC3ޕ\xC8ޛ\xA8\xB1\x8El\xFF\xFD\xD3\xEFB˫\x92;?\xB3V\xD8\xF2\xD9
+\xD3\xEC{\xB2\xBAJ\xA8\x8CF \xE5\xB6#\xD9YN\xB6\x9924
+\x8D\x86,\xDAhf\x93\x9A\xC9\xD5mh4\xC4)F\xC3y
+w\xF9&amp;\xF69/]i4\xD6\xF8\xF3\x8F\x87\xC1m\xFB\xA3\xDC1\x98E\xDC\x90\xFDzT/\xFB\x9B́\x95=\xD3\xD5;st\xA1k\xC0\xAC$u\x87U\xA9=\xB3\x99\x88M٦Z\x92Gr\xDC\xD9{]\xF2
+H\xA3\xA1ѐ\xB9\xF4E\xB7W\xA0\xCD$5\xEAnIL!W|n7\xD2.d_\x9D\xEC\xE5\xCBa\x8F\xEE!\xDB\xC6\xF3\xF6\xBB\xA6rư\xD6\xE3\xD6c\xF17V\xBC\xDB;\xD5˻\x90\xFD\xD0Z\xE9[\x9F\xED\xF3\xE4;= i&amp;\xC90VMcG\x8DU\x8Fj\xBF\xCBA\xA3\xA1\xD1\xD0hH\x8C\xC6\xF3lj):C\xA3!\x8E4JM{F\kC\xF7u\xCD,Fc\xEF\xA5v\xDB\xE14w\xE6~\xAE\x9E\xE0\x94\xA7\x96r\xB9}\xDD7y/2rJ?C\x9B\xBFX=-\xF5\xF9\x81W:
+\x8D\x86,\xE6zm\xD5\xF3\xD8\xE7\xC9\xDAz\xA8J}\xB7q¾*Wy\xDEouLȺ\xB3j\xF7\xBD\xCBXE\xC6$֚]S\x9B*\xF7\x90\xE5]\xCBX\x97U\xD8;P\xC9\xED\xF4\xB96r\x87A\x98V\xFF\xCC)\xFF;\x9F\xBE\x9A\xDD\xF7\xACSYR\xB7I\xA3ᕎFC\xA3!4\xD2eF#k\x85pD\xD4
+\x9D\xA1\xD14\xC2h&amp;\x9Fڸ{\xB9XO߄š?%]\x85\xF5\xFB\xB5\x8E\xCA\xE0}\xB1\xF7Ք- \xAB\xFC\xC8w~\xB7\xAF\xDBK7\xFD\x85}\xE4ߩ\xD5VbgR\x8DfՕqf.\x8D\x86FC\x9A0V\x9C\xB5:\x97}E\x88#\xEB\xB4[u\xDF\xDB\xE3ӥV\xBAǚ\xB5\xBE\xFC \xFF\xAB\xFFkO\xA0\x83\xC6Z\x81\xC9-\xF5\xC0\xB1g\xB2\xFD\x9D\\xCFT\xDF\xCB+d\x8B\xD9j&amp;\xE5'\xDD\xF6(Az&gt;\xD8\xD69\x9Dޑ{zE\xA2\xBD'\xB6\xFD_M\xF9
+
+[\x99\xD1e:C\xA3\xA1\xD1\xD0hh4\x84FCh4`ͱ&amp;\xB4\xCB&lt;y*!\xE37[\xD1\xD0\xFFUV]\xB1\x8E\x97        E\xFF\xB8 \x9FȌ+\xAC\xEEh4\xCD5k\xF6\xF7gO\xEEP\xCFV\x8C\x8Du4\xF5Lt\xCBsOk\xBD\xAD\x8Cª\xB9\x9A\xB6f%!4
+Y̵\xD8\xEAo\xCF\xFB'\xC4i\xE8+\xBE\xDC\xE5\xB3F\xD4
+X\xA1ƶn\x82f\xCA̶J\xC2 \xA35ۘm\xCA\xCFȪ
+\xAE\xB9'\x8F-yF\x9A\x81\xC8k\x96\x8A\xB2ќ\xC2\x8D\xF3l\xB0\xE8\xFA4\xD9o\xC7
+
+\xAB[\x82\xEC\xC3\xF7\xB3&quot;X{\x9E\xC8xmȧ\xBF\xBE\xA0\xCD*\xAC\xCE\xB6\xD7\xD2e}\x86\xE5Mmߗ\x9F\x97+\xBFǾ5\xAC\xB5N4z?\xEC@\x97Y}ZA\xA3!4
+\xA1\xD1\xCD4\xA3YX/)\xCFڀb\xCAJp\xCD5\xEB\xBF\xDEu\xC0i:\xA3\xB0\xBFfMˍ\xC6z2\xF8\xDB\xD3N\x993\xE5\xA3\xB1\xBE\xF3\xBBc\xA23\xBD\x93}\x8C\xA5\xBAl\xD6Վ\xA1\xD1\xD0h!]\x83\xD4AͿ\x87\x92)\x99
+{\xE7\xE1
+%\x85\xD4ɈKƟҋx\x86q\xDAt\xF4Oʫ\x92\x8B\xC1\xA6\x8A¾\xFE\x82\x8C\xF1\xF4(\xB7\xCDC,\x9Fq\xAF\xCA{gEY\xD3\xEF\xC9\xC8Vߟ\x97\xBDΚU!=\xAE\xDB\xF0\x84B\xF9\xAC\xBC*q\xD8Ѽ\xA25}\xA8\xAC\xBF\xAB}GLG\xFE\xAEݧ\\xDE*m\xF2\xF3\xA5\xD1
+\x8D\x86Bf6\x9A9N+\xD6kЇe4\xED\x9Am=\xA0\xD18\xD8h&lt;\xAB[1˳vB!O\xE8\x9Cm4\x8A\xDFv\xE7ę\xA0\xA7/\xAA\x90\xF7\xC5'\x9E\x84FC\xA3!\x84\xA1/|\x8E\xFB\xEB{\xA6\xC7czt$\xA35CJg\xF2֬\x83 u\C)\xC5ƲB^y;\xEE\xC9\xEB        \xE9zL%\xDBA\\x8C{T{\x91\xBDq}Q!v\xA3\xF7\x99&amp;\x8F\xB4\xD6_\x97\xEA/\xF1Y'\xF4ڲ\xAF-\xAEm\xAB\xE7t\x9F\xCE\xD0h\x8D\x86FC!s3ϝ'\xA6
+\xDD\xF5\xD8\xCCr\xA7\x8D\xA7w\xDCv8\xD5\xC4\xE9ު{[\x98F\xE3&quot;\xA3\xF1\xF8\x82\x8A;'m\xB5\xA1\xC9~\xEE3\x99\xE7\x9D\xC1\xBB\x90\x81\xAC1#4
+!\x84̆\xCA\xE4\xFF\x9DzkԴf\x8F\xE5N\x9B\xE1.\xE3\xC6\xE1\xB4BFn\xBE\xD0Y=\xF7_f[kdH-s\xFFqhM\x9A\xF6\\xA9Z\x94;\xFC\xBAR\xB1\xC1\xF3\xA7\xA46r\xFA
+\xCB\xCEľb\x8B\xECώ^3y\xC4\xD1h\x8D\x86FC!\xF30\x85􌒙2\xAE5O\xCF8h\xD8,        MG\x8D\xB5o\xDCqr\xB1\xF3\xD3;\xC8h&lt;=\xA7\xAA3\xF8\xBC8+\x8D\xD0hh4\x842'd\xEE\xB0\xCC\xF7\xB7uZ\x96\xBB\x8C\x9D\xFF.\xEC56\xB6մp\x8BX~\xFFpR!un\xDCg\xDCh7b\xE5\xD6w\xD4x~\x81\xF3\xA7\xAC\xFBb\xD0n\x9C\xCD!\xEB\xBD\xEA\xAE\xD6\xFC\xB5W;Qgh4\x84FC\xA3!\x84\x8Dme\xF9y\xA8z\x82S~\x8D\xA6\xE3\x8C\xC6\xEA\xFD5b\xCECg:\xD7h&lt;\xBDzR\xA3\xB6\xB3sf$B\xA3!\x84\x97\x8D\xFD\xCCs\xB8w\xB4&amp;\xA3\xA0i\xB3\xF5\xE7&lt;ef\xB2+\xB5\xB5\x86cD\xC1\xDEJnG&gt;A\xBD\xCBxު\x9BӪF\xE7\xD6@\xB1w\xC9\xE8 \xD7wh~_\xB8\xF9\x99#\x8D\x86\xD0hh4\x84B\xA3\x99\xDE\xCC?\xB7\x81+\x8D\xA6\xFB\x8C\xC6\xF3\xC7S\xF7\xBFWt\x81\xD14j\xF6\xD9\xC2uF\xF53\x94\xFE\xCCtB\xA3\xA1\xD1B\xC8&quot;\x8C\xA0\xA3F\xB0z\x9Cf\xAB\xC3?\xEF\xB2\x93kw\xCAH\x8F\xD5\xFB\x9Dm\xEE\xF6\xDEY\xB3w\xFDRG\x84\xFCd\xA7\xD6\xCA\xD6\xAF\xB1\xCE\xC1\xB6\xE9 \x8D\x86\xD0hh4\x84B\xA3\xB9?\xA3\xF1\xF4\xC0m\x87Ҷ)3\x86B\xFE+\x8D\xA6\x8B\x8D\xC6\xD3P\xAC        X\xCB\xCD\xF8&amp;\x8F\x88\xEE3p\xDB\xE1tk\x97\xD1 M\xF6h\xC9\xFAV\x84\xD0hh4\x84\xE2.G\xF3\x87\xCFau?Pke\xEAf\xBC\xE33k̺\xA8\xCD\xF6\x89\xDBנ\x94\xFDD\xBALt\x83\xDB\xDA+Ь\xADl\xA9\xCE\xD0h\x8D\x86FC!d\xFEF\xA3t\x86FC\xA3\xA1\xD1\xCCb4\xAD\x91\xF5\xD7\xE2
+\xAE\xA1Ih44B!s\xB3Y\xBDj\xF5\xD8U\xBEo\x8DZyg\xB8\xEB\xEB\xD0\xC4nd߰Zdt\xD9^ay\x8D\xEEU\xAE\x9D\xAEEOgh4\x84FC\xA3!\x84B\xA3!4\x9A&amp;\xCD\xD9\xFA\xCC\xE6\x8D\xAC\xEF\xC3\xFD\x90\xD0hh4\x84B\xE6^k$\xC3{\xC2\xE4\xFCuhݹd \xC6\xBAn\xB3Y:\xD3\xA4\xD1
+\x8D\x86B\x8D\x86\xD0h\x9Am4\x9E\xFE\xA6H\x8D\x9A\xAAc\x9F\xB9\xC3=\x90\xD0hh4\x84B!\x8D\xF5\xAB\xAF\xF1]\xAC 4B\xA3\xA1\xD1B!\x84\xB4\xC4h&lt;8\xD5\xC8\xE93Ri֩\xAB\xFC
+\x8D\x86B!\xC49^#\xB5g\xBAgB\x83\xBB\xD0h\x8D\x86FC!\x84\xE2\xA3\xF1\xF4\xAC\x8EjCI\x85\xB5\xFA75\xA1\xD1\xD0h!\x84B\x9A\x80\xCCp\xE9\x8F)\xF4\xF3
+!4B!\x84\xF7\x8D\xC7XlCqn[B\xA3\xA1\xD1B!\x84\xB4Yot8\xAD\xE8
+\x80E\xF57\xA3\xD1
+\x8D\x86B!\xA4\xADF\xE3Y{z!:\xE33\xD6\xDCnX\x97\xA0\xE7O\xA9\xE5Pσ\xB8\xAA\xFC$\x8D\x86F\xE3\xAE\xFD\xD9        \xFB\xAD3_U\xB7\x9D\xE5쟂\xCEiݼWX\x87\xFEf\xBD\xEE\xF0!\x8B\xB7p\xFF\xE9\xE6
+4\xED#\xFE\x88\xC2\\xC8\xD3
+\x8D\x86FC\xA3\xA1;p\xECJ\xA3\xE1^A\xA3!4\xE2B\xA3\xD1R3ٱ\x99[\xD2        Ǹ\x8C`\xD7\xD8X\xB8/k+\xBC!pE\x9F\xE0\x9F\x99K5\xD6\xD5G\xFE\xAD\xE1O\xFE\x9E\xE0}\x91\xBFn\x9DXB
+\xB7\x9F[h4\xCED\xF61\xFB\xAE\xDF\xE9\xE5}\xC6\xE5\x93\xFB\xB3\xEC\xE1S\xF6|\xD9\xCD\xD8'\xA7\xBF\xFD\xF5E\xBE\xB0S\xF4\x81\x83S\x8E#\xF9
+&lt;\x9B5a\xAFX\xE5 \xD97.\xF3+\xACs\x9A\x9Cͦ\x9F\xBBuN\xB6\x9F\x8Dm\xAFG\xF6
+y=\x82\xBC\xC2\xE9\xFBO\xF7\xD8v]\x83\xF4\xCFȕ\xE5}\xDB\xD1!ף \xBC\xA1 &amp;ϽS\xAF\\xB6m\xD2\xD8ϋ\xB8dܲ\xD2Z9\xFB\xB8E\x8E\xA6K\xFC!`\xFD\xCE~\xCF,#\xFB\xDD~:.6\x8DԞ\xF5L\x80\xF9\xE9 \x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86\xD0h\x88\x93\x8C\xEE\;6ˊ6\xAC7kױo\xBB&gt;^\xD5o\x80G\xC2঱x\xF2z\xC537E\xC1 \xB6\xC4\xC0 \xB7*^\xBDM\xF1\xF1}I\xF0\xF5\x83i\xF0\xE5i|Us\xDB\xC5{w'\xC0K\xB7\xC6\xC0 \xB7h\xF4\xEFy\xFA\xC6(x\xD2\xFA\xB8yL\xF1ȑ0\xB8v\xD0\x97\xF9C`IopIo\xF0~\xCE!4\xCD\xDCǫ\xFA\xC9X\xE8q\xA3\xF0\xECMQ\xF0\xA6\xBB\xE0k\xD3\xE0+\x9A\x8F\xEDM\x82\x97m\x8D\x81gl\x8C\x82\x87
+\x87\xC1J_L\xEE\x87ڻ\xFDz\xE4J\xFA\xF8\xB1x\xD6\xC6(x\xF5\xF68\xF8\xF4\xBDI G\x93Yڝ/\xDF\xF2\x93\x8F\x8D\x80\xF6`\xCAh\x8D\xD7ֹ
+\x9A\xABL \xE7\xA2\xE7m\x8E\x817ߝ\x9F\xBD7d\xDF\xF8\xD2\xC5{v'\x80\x9Ce\xDFx̺0\x90\xCFq\x81\xA3e\xBB\xC5\xE8\xAF2d\x82'o\x88y=o\xBA;&gt;}o\xEAӓ\xAFG\x90W\xF8\x86q \xAF\xEA\xC9&quot;@~\x83\xE5_\xCE\xD9+\xA6_\x89\xF4+\xBC\xB2\xDF\x8F        ?b\xF2\xF4\x94
+Q ׋kޱ+\xFE\xF1@؏ \xE1\x87ړ\xF6k\xCDs6G\x81\k\xFEt]Ȗ\xB1\xFC\xD4\xBBjx\xEC\xB8d\xDC&quot;\xDE\xF1\xA0\xC8\xD5J\xF6\x99[6(\x9E\xBB9
+\xE4\xD3^\xBB]\xF1\xC9}\xC9O\xCE&gt;n\x91\xA3\xE9\xF6\xA7\xC0_\xDE/\xDA{\xD1\xE4o\x90+\x85\xEC\x93r֕}\xF5A\x83&amp;X\xE5\x81)wE\xDC5V\xE9m2s\xFF+\xCDx\xE5\xF3\xEE\xA0W\x93\x91ڳ\xB54
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44B\xA3\xA1\xD1t\xBA\xD1\xE0_Ɋ6\xE25&lt;~\x9Bv\x90\xA7\xF0W\xF4\xE0\x86\xE10\x90\xB1\xDCK\xB6\xC4\xC0\xC7\xF6$\xC1?I\x83;y\xB0=^ӊH\xA9\x9A1r\xAA`_\xAA \xEEN(\xBC\xA1\xF8\xE9\xC9,\xF8\xC2\xFE$\xF8\xEBq W\xA2G\x8F\x86\xC1\xF5\xC3
+y/+|\xA1gǖ\xCE&lt;{\xD0hs,\\xD6g\x80go\x8C\x82\xDB\xA4\xC0\xC6h        \xA4\xCBup\xFEmbk\xE0\x81&lt;\xF8\xE0\xEE$x\xC2hH
+\xC3&lt;Ʈ\xD6\xEBQH\xE5\xC336D\xC1\x97\xA6\xC0\xB6x        $Ju0\x97OJ~rK\xAC\xBEu8
+^\xBC)
+\xE4
+;\xE5&lt;\xC0\xB3\xE2\x94O\xE1ܼ\xF2\x98\xE0E\x9B\xA3\xE0_\x8Fd\x81\x9C\x8B\xB0G\x94\xE7\xF4!\x9C1
+U0d\xC1W\xA6\xC0\xD36D\xC1\x95}\x98\xD2O\xE0\xFC\xAFGsݐ        \xFE|[\xFC\xF2T\xCAT@\xA5~\xA6R\x9F\xC7Q|(S\xFF}*޴#:K\xBD\xA1\xA5\xDE\xD6\xD6\xC6\xD8MMo\x8DK\xFC\x90\xD7\xF3\xB4
+\xF0\x96q\xF0\xCD\xC3i\xD0*\x80\xF128\x9E\xAD\x80şӲ\xD5:8\x90.\x83u\xE1&quot;\xF8\xEF\x939 c\xD7m\x8E\x81?]ى\;d\x82\x8B\xFC\xA1\x8B\xFCS\xC7\xD2t\x9C\xD6\x95\xB6\xAB\xB9\\xDF\xE5&gt;\x83\xEC-2nyٖ\xF8̾$\xF8\x8FcYpW \xD7\xE4\xB8\xE5pFQ\xA8\xD6Ac\xAF\x8C\x99r\xCBV\x80\x9Cu\xD7 \xE0Gdz\xE0\xE3{\x93\xE0\xE5[c\xE0qc c-\xAB,󆀓\xEF8\xC9+\xBCЧX\xB1h侟|m\x9Dsle\xFA\xCF\xC8\xD7\xF2חxs\xE5\xD3\x9B\xFD;\xCB5V%\xEA&lt;\xD0V2\x9AS\xE8O\xEA\xFEu\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86Fã\x92FC\xA3q\xB7\xD1D&lt;\x96\xE5/\xFA\x9C gc\xB9R_7\xACx\xC3\xF6\xF8\x97#i\xD0gA\xA8X\xE5Z\xE0\xB85\x8DR\xD7\xC8\xEB\x91\xEBx\xBEZre\xF7E\xF0χ\xD3\xE0]\xF7\xC4\xC1\xC7\xC2\xE0\x9AȨ\xD5:\x82\x9CЏ\x91F\xE3\x80g\xE86\x81\xD4\x8C\xE7\xAB`1{\xBB/\xBB\x92%\xF0\xFE\xDD        `U|\x9D\xBF\xAF\xAF\xFE\xBE\xEC\x99bC\xDF&gt;\x9C\xF9\xEA\xC4\xE2^\x8FD~C\xBCT\xBFσ[7\xC7\xC0*\x9F\xE85\xF6OaIOH\x8D\xEB\xF7\x8FeA\xB8X\xF5\xFA\x99z#&gt;\x85P\xA1\xFE\xF5h&lt;n],\xED
+.\xED\x9D\xC9k\xF4\xEB\x91\xCF\xDFw
+@\xCExr&amp;\\xFC\xB9T΢fȵ`\x95\xDFM\xDC+lW%]\5`\x82go\x88\x80\xCFݛ\xEB&quot;E\x90\xACԁ\xBC\xC2V^\x83\xECW\xB9\x9E\xCAW\xC1\x81\xF8\xC8\xEE$\xB8e}\\xD5o\xEB\xEE\xBB\xFB6q\xDCb\xD9\xDA\xE2\xEFڙ?=\x91\xC3\xE1&quot;0\x8A5c\xEA\xB8e\xF1\xC7l\xA3\xF6%y=\xF2\xDAB\x85*\x90#\xEE;G2\xE0\xAD\xDB\xE3\xE0#&amp;\x90\xEA\xCA){T{\xF7+\xFDw\xE5^\xDFw'\xC0\xBBw.\x96\xF7h\xDEy\x8F\xE2\xC9ca ~\xF1\xFC
+`\xFF\xFB\xD7إ\x90\xBA\xD0\xFB\xA9\xE8֯y\xA5_!\xF7C޿+\xEC\xAF\xE1}\xBBo\xD8\xD7\x9Aן\xBD\xCB7\xF7-3W\xF4\xC0yu&amp;H\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3ḅFC\xA3q\xB2\xD1xz\x8Dٍ\xC6\xF0\xF8\xBD\x96
+\x8F\xEEE\x8C\xD6d\x8Ctq\x9F\x9E8\xBF7        \xEE
+\xC0\xD1l\xA4+uP\xAA)\x95l\xF3\xD9C\x9F\xC1\xE4\xBDd+\x8AH\xA9
+6DK\xE0ߎd\xC0\x9B\xB6\xC7\xC1\xB5\x83\x90\xF3\xA4\xF5̱\xF5\xFDi4m::\x96\xFA\xCF\xDB\xFDf`\xC4Zl\xF4\x80)W\xAD\x83\x9F\x9ÉG\x9B\xE0\x82\xDE\xD0\xBD\xB3\xBA\xCC\xEB\xB6\xC6\xC0\xE6X\xC8&gt;܌OP\xAE\xAD\xA7sU\xF0\xB9\xFD)\xB0\xAA\xCF]=\x97ѝF^\xB29
+F\xC2E #\x90f|
+\xF2\xF9Je㛶\xC5\xC02o\xD8\xCFBR\xB5\xF8\xDE]        (TA\xB3G\xF5R?\xF9ѽI\xB0\xDCZ\xDE\xC0
+\xB4iW\xA5\xAB \xF0\xEE\x9Dq\xE05
+ R\xAC\x81fT5*\xB2\xFD\xE5\xB86\x8BU Upr\xF7\xEC\xE1C&amp;\xB0Ƣ\xECֻ\x98=D\x9F\x9F/\xED3\xC0S\xC6\xC2\xE03\xFBR\xA0'XF\xB1
+\xE4\xFA^\xA9)\xDC;b\x91\xF3@\xA6\xA28\x92\xAD\x80\xDFr@\xF6\xA8\x87
+\x9B@\xEE0X\xD5V\xAD\xB7ݕ\xFA{'\xB3@\xF6|\xD9\xF2\x8BG\xEE\xB0}\xF6@
+\9`\x80\x9F\x9C\xC8\xD9\xD3^\xFE\xFA?L\x83彡\xE5\xE79\xBE\xF4Vz\xFC\xBA08\x96\xAB\x80^\xB9\xAE5\x95Z\xEE\x97o\x89\x81y\x8Fg\xFC\xA6b\xB2*rV\x9D\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44w\x8D5\x89\x86\x9Bq6Xң\x90\xF9\xBF\xEF\xBA'~3\x91\xE2/\xA9r
+8\xA7\x8A\xAC\x95\x91j
+\xA9!ٓ\xAA\x80ρ\xBF\xDA\xD7\xC0:o,\xBE\xBF\x8DƑLj\x8C7\xA4bA*\x9B]\x99 \xD7,\xBFY/\xD9\xF62\xBA\x93=\xF0@\xBAZ\xF9i\xA6+5\xF0\xBFy0\xF9\xE4\xFD\xBC\xB3\xD4;}\xD5~Φ(؟\xAE\xECo\xED\xA7 v\xF9\xBE\xDDI`\x9Fo\xFE\xEA\xAD1.VA+_O\xA4X\xE25֚\xAD
+\xBA6\xC9ڗ\xEFܙ[% \xA3'T-\xE6Z\xACTRk*\xBD\xA3\xA5\x96u\x89\xD2d\xDA\xCD\xDC\xC6-\x9A\xEBM UFw `\xA2P\xE9r
+\xB8w?\x99\xCF\xA7:\x90=J\xAEP\xBF&lt;\x95\xAF\xD8\xD6\xFA\x9E\xD3\xFB7\xF9\xDC\xF8\xF3\x89&lt;h\xC6\xFB\xFDʑ x\xE0\x80\xFE\xF7t\x9C\xFF\xE7\xFDFܴ. f\x81\xE8\xADq\xA1\xCF\xB7'        \xCE\xAFR\xB6\xF0k\xB6\xC5\xC0\xC73cy\xC5,\xFD\xAC\x9F\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh447\x8D\xB8\x8C\xAC_\xC3\xE3}\x9E\xDD/\xBB. \xBEx 
+\x86&quot;E \xBDC\xE59\xC3LK\xB1ZRѱ)V\xFFr4\x9E\xB3!.\xF0\x815\xAD\xE7
+Mk\xB0\xCDA\x979\x99\xAB\x82֏|V\xF3ࡃ&amp;\x90+\xF8k\xB6\xC6\xC0\xC1t\xE5`kG\xD1\xF6Hm\x95̂\x97
+\xD5.\xEA\xA0\xF7\xE1ǭ3\xC1\x9D\xC1&lt;hקp2W\xB7n\x8D\x81G\x8D\x84\xC1\x96x        \xB4\xEB\xF5\xECI\x96\xC1\xAD[\xA2`\x81G\xBA&gt;s\xCA~\xFE\xAA\xAD1\xD0k\x80̌\xEE\xD4kJ\xB2\;\x92%\xF0\xE5Ci\xF0\xA8a4\xF1:\xE2\xF2q\x8B\x8CN\xFF\xEDhܓ,\xB7t\x83\xBF\xCC%RY'׬u\xD1&quot;\xF8\xBB\xBDIp̀\x9A\xEE5\xDAh~6\x9E\xCDxw_:\x9Cb4\xD2O\xFE\xFC\x9F\xBBԌ\xBD}W\xC8k\x9B~&gt;\x97N#\x98(\x80j\xEDLu\xF6F\xF6\xA6\xCA@\xCEN &lt;ˍdz\xA6\xCC}u\xA6w\x82FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3ah4n1\x8Fw\xCAl\xF5\xDBd\xAE
+{\xCC\xF9lp݀        \xBEt 
+v$\xCB Q\xAE\x9E\x96\\xA5de\xCF_\x8C\xE7\xC0\xEB\xB7ŀ\xF4P\xF5\xAC        *u\xF6\xA0Ѵ\xC4ede.\xE9\xD9x*W=\x95k\xDBhJf=\xFF\xF8d\xDC&lt;c\xD1&quot;p\xC2'+\xF5?ۗ\xFB\x8D\x8B\xFD\x9D\xEE5\xFA(\xBȨ\xF8ʡ4\x90\xFB\xED\xFD\x86\xC2E\xF0?\xE3y\xD0\xDEWR\xAB\xD7\xC1\x9D΁U\xDEЪyu        \xD0g\x86kLp\xDB\xC18\x9C\xAD\xCEV\xBA\xEDj&quot;5\xDE[\xE3%\xF0\xA1=Ip\xB1?\\xBF6\xF1\xCF\xC6}
+}\xEAXH\xEF\xE2\x892\x90\x9Ap\x8E@\xE6\xB3PÑ&quot;\xF8\xC4\xDE\x90q\xE0d\xAB\xE7\xF3v6^\xD0ڦ\xB2*\xE8\xAD\xDB\xE2\xF7E\xAF\xF0\xC1})0\xDB:\xBF\x9F=\x94\xB7n\x8E*l\xFF\xF6\xA5\xDBb\xE0\xC3&amp;\xB8vP\xF1\xCB\xD390\x93\xFD\xB7cYp\xB17t\xF1}\xCEK\xFAȺy, \x82\x858\xFF\xEFi\x80\xD1 &amp;z+\xDDWgh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x86F\xE3\xA3񬝲ԦZO\x93\xF5fs\xB8R\\xE67\xC0\xF7$\x81\xCF,\x80L\xB9\x96\xA1\xC54'\x87\xD2 W\xF67m\x8Fk]\xC2\xC5_\x95h4-\xB1~\xE9\xC7+\x9F\xA3\xB6\xA1t\xA7Ԕ\xEFz\xD5I\xD3e\xCA\xE0i\xEB#\xA0\xC3W \xD4 /\xDF'\xB2\x95\xCEoWkuP\xAA*\x9C\xF0zg*\xE0[b`N\xFB\x83\xAF&gt;a4 \xFE\xFBtH\xAF#\xC1B\xFCz&quot;^\xB01&lt;k\x8AήC\xB3Ỵ\x87\xC3\xE0+\x873@**\xCB\xD5z\x99\xB3\xB8D
+U\xE07\x8B\xE0;\xE0r\xBF|u\x96\xDF&amp;U^v~?n\8\xCAg&lt;П\xB1)
+&lt;\xBFWL\xFF
+zt\xFD\x90        ~u:\xF7\xAB\xB9͆h&lt;sCLY\x89\xD5\xB2\xE7\f[4\xC0hb
+[\xED\xDF9\x9D\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0h\x8DK\x8Df$\xAD\xA0\xD1\xCCvN\xD0[\xFB\xE9c\xF0\x9F'\xB2@V\xF8\xE2\xDD\xFA\xEB\xFBς?\xDB\x9E\xB5\xC5®J4\x9A&amp;כ\xBD`cl\x8A\xF7޹G֢\x95\xF9\x95\x9DZ{v\xA97\xBE{&lt; \xF8\x89\xCF\xE9=\xFE\x9DcY0\xAB\xD1\xC8w\xF4\xF8\\xAEP\xABCp\xC6\xED 67-;%\xF0\xEE]        p\xB1/:\xB0M\xEF\x97\xF8B\xE0}\xBB\x92@F\xDDn_\xD3\xC9\xCFU\xC1\xCFO\xE5\xC0\xF36F\x81\xBD|s\xEE As\x82O\xDA\xB3\x8DT\x97\xCD0\x8B\xDF\xE6J22\xA3\xC9Tj\xE0\x83{\x93\xC0\xFA\xCD\xFA\xF7&lt;x\xD0\xBF\xCF\xFB%\xB2\x8E\xFC\xF4W\xD8\xA3\x91\x992RuF\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD104\xF7\x8D\xEA\xDB,UgV4\x8A̹Q\xD9*_\xBC\xF9\xEE        \x8F\'d}\xB4޷;.\xEF3\x80uD\xCC\xDDnh4M;\xC7&gt;e, 6FK\x80\xFB\xEA|#k&gt;޴&gt;f\xBD\xB9\xFC\xBC\xFA\x82MQ\xB0+Q\xFC\xC4ϟ\xD5FX\xABm\xDA\xCFo\x96˨\x9A\xA2\xA7\x8DE\x80TAs\x8B\xCD%2\xBF\xFB\xEB\x872\xE0ơ0hp\xE7\x996Y\xC2\xD3\xD7G\xC0\xF7\x8Fg@\xA4P\x8BXy\xD8\xD2l\x8E\x95\x80\xCCMxp\xBF\x9Ar\xBDn\x89ј\x85\xC8U빩5\x8A\xDF?\x91+{\x82@ \xFA\xC9\xEB#`&quot;_\xF23R{6.\x82P\xA1\x9A\xBA6\xC0h\xEC^\xD3\xD63
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86\xA1Ѹ\xD3h\xD4󚾰\x82Fc\xFB\x94\xAF\xE8 \x81\xCFH\x81\x93\xD9\xCA\xC9\xEE\xEB~\xE9\xFCȼ\xD7o΀G\x8E\x84\xC1&lt;\xAEJ4\x9A\xD79\xA8-\xFF\xC8!\xDC\xCC\xDF\xCCs\xFF\L\xDEzO\xAC\xE8        \xAE\xE8\xAC\xFE\xAC
+\x82\xAF\xCA'tlv~\xB6$J\xE0\x86ALN\x80\xD5Uz\xECz\xD3hx\x8Dකo*5\x85\xAC-\xF8\xE4\xB1p\xA5\xD7\xE8׼«x\xF3\xDDq\xB0.R\xFC|\xDB\xE9\xC9/\xF3\x9E\xBA&gt;\xF2Գ\xFD^\xD5\xE1\xB9\xC9FS\xD3\xFCq&quot;\x8Ee+Ǧ\x8E\x81\xD7G\x8B\xE0\x89\xA3a\xB0\xAC'޳+\xEC?#\xEBG\xF6\xDE\x90\xF5M\x9Ab4\xD3\xFA]\xD3hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4 \x8DƍF\xA3\x9Fфh4\xF6\xCF\xF7ʾ\xF8\xCA\xC14\x90U\xF9xl:9r \xFEz&lt;\x9E\xB2&gt;\xF2u\xDE\xD0g \xB9\xEE\xD3hZr\xD4&lt;|\xD8\xF2)p\x9F\|n?\x994A\x87\xF4У\xC4\x87L0`X5\xB7Ȋ\xC3\xCF\xDB\xD6H[\xEF0\xC0\xEF&amp;\xF2@V\xE4\xE4\xB6ZL\xFA\xCCx\xE2XL\xD60\x9F\xF7
+\xE2\x97\xB9\xAE\xDF\x9Fڟ\xA7s\xC0O\xD3i\x919 \xB2b\xF8\xA5&gt;4\xE0\xAC\xDEl\xA3ѳ\xFB\xBF| 
+F\xA3\xA5ѩ5\xE4\xB1R
+\xBCgw\\xD1o\x80\xFF=\x9D\xF6\x9F\x91矷)
+\xFC\xE1h\xFE3\x9A\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xC3\xD0h\xDCj4\x82\xCF\xD4t\xB1\xD1\xD8*;|(
+\xE82n\xCC\xFAH        &lt;cC,\xE9
+.靽~\x80FӠ\xA3\xE6A\xFD\xF8\xD5\xE9&lt;\xE0ب숗\xC0-&quot;\xC0\xAA\x84鈞o\xDE\xC72\xC0Oy.9\x9A\xA9 \xC96\\xE6
+\x81/H\x81l\xA5\xB8\x95\x95\xB3\x9E0y\xC29\xAFqX\x9A\xAD\xF2\xF0\xFAA\xFC\xF0x\xB0_\xB7\xF3#\xB5[ٓ\xFB\x8C\x8B\xE95-1\x9AO\xECK\x82\xEF̀T\xB9\xEC\xBF\xFF[G\xB3@V\x{175BE3}-;\xE3X\xA4\xAE2\xC1Z\xB3h44\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xB9? MW\xBA\x8C&gt;3&lt;\xC0_9\x94\xF9J=\xCFk\x84\xBB\xBD\xA6n\x8D\x80Y\x8F͢W\x9E}\x80O\xF1\xED#Y\x90\xAB\xD4\xF7\xBDFEn{tHg\xBD\xC7~\xF1`\xE4ʵ\\x99{˜b\xAA@:\xC1\xCA\xF8\xE7\xD9\xA3 P\xA8n\x9F\xE6y\x8DU\x816\xDBڦ\xEDr}\xEE}\xEAX\xFCf&quot;d\xFE5?5\xB7D\xFAlo
+L\xAE\xA4,u\xF2\xF3\xDCǚl4b%\x9Fޗ\xAF\xD8[\xE2%`\xFF\xFD&gt;\xA3&gt;\xBF?\xCA\xF5zy\xF2\xCB&gt;\xF9\xFB\xD3\xE0b\xBF\xFA&quot;ž\x8D\x86F\xC3\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4d\xD6\xF3\xC3J\x9F\xE2KӀ.\xD3I\xF9\xD1\xF1,\xB8v\xD03/4\x9AE\xB8\xCCE&gt;|\xE5P$J5\xC0\xFD\xAD\xF9\xEC\xFEX\xD6Z\xD6rqg\xFDʥ\xC3\xE7\xAF&amp;r\x80\x9F\xEC|\x8D潻@\xCEf\x98\xC85;\xFDf&lt;v]\xB4y\xC4\xD5{\x8E[F\xC3\xC0o\xF7\xF7&amp;S\xA9\x83\x9FȂ\x98`\xDE\xFBXKVؔ\xDE˗\xFBC\xE0\xE3\xF9_L\xED\xFC#\xFDN\xE6\xAA`\xFA\xF7\x9F\xB3!
+\xE4\x9E\xC0P\xB44mUg
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x86F\xC3\xD0hh4.\xAC\x82\xF8\x9B\x9Dqp*W=\x95\xE3\xFC\x8EJ\xB6R\xEFݝK{CK\xEF3&amp;\xA4\xD1,誺ԫ\xF8̽)`\xAA&amp;\xEB^\x9A\x99\xFF\xCF\xE9\x8C\xED\xE2\xCEz\xCFy\xD2hl\x8D\x97\xB6N\xAD[`Ο\xF1||j_\xBC\x97B\xC6B\xDC2͎\x8C\xEE\xBEw4 &lt;`&gt;x\xA0}Ǡu\x85\x81t\x99\x96Yی\xDB#w\xD1t&quot;\xFB#\xE55\x98\xC7&gt;\xD6\xA3\xF9ܽ) {\xE0\x87\xF7\xA6@\xB2X\xE7_#\x91&quot;\xB8\xB2\xDF\xD2\xD9f$V4
+C\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1ѐ\xCE\xEB\xC2`8R\x9E:_\x89\xE9\xA4\xC8Q\xF3g\x9B\xA2@\xCE4\x9A\x85/xo\xD9'\xB2U\xC0\xBD\xAB\xD99\x98*\x83m\x89W\xF6p\xB6U˼cg\x9C\xCEUO\xF3\xDE\xD1|r4[\xD2=uC\xB4\xB4!Jl\xF1\x9D1\xD5\xFB\xF3\xFB\xD3\xE0RX\xF3\xB8[x\xEC\x88\xCB􇋀.өw_\xBFs4d\xB5\xCA9yMK\x8C\xE6\xF3\xF7\xA6\x80t\x8C\xF6\x86(\xB8;^\xB3\xBD\x97L\xA5\xE4_\xC9\xFDOy/M1Yq\xC6R\xB8\xB7*\x9BF\xC3\xD0hh44
+\x8D\x86\xA1\xD104Mw\x8D~\xD7\xCB5\xFFq&quot; J\xB5z\x89'\x88N\xCF\xA4\xC0\x85\xBD\xC1 Ϯ\xB9I\xA3\x99g\xA5ٛ\xB7\xC7\xC0\xC1tp\x8FjM*\xB5:xۮ\x90=ֽF\xF3\xFD9\xC0N\xB3\xF3\x8D\xDC=X,^\xADڕH\xB1\xFEbG\xB4\xE8ނ^\xDDo\x80_\x9E\xCE\xF6\xE8\xEC$\xCB5\xF0w{S`\x95/\xEE\xC7kZc4\xBA3\xF3E\xFE\x90\xA27~9\x9E\xB3\xBD \xE9*\xFF\x94\xD10\xB0\xAFQ\xDB\xA3\xE9\x8B(lW
+\xAF4
+\x8D\x86FC\xA3\xA1\xD104\x86F\xE3R\xA3\xC1\xEF\xEC6\x97^\xB1%\xE4i&gt;\x8F\xA3nH\xBFQO
+\xEB,A\xA3\x99\xD3jnj[=s}ܛ*\xEEK\xADϿ̀\xCB}\xA1\xCB]\xF7l]\xBFڋ|\x8A\xC1Hq\x90\xF5\xBD󏬵/\xD5\xE2\xEC\x91\xDE\xEEH\xD5\xDFS\xC6&quot;\xA0\x89^\xA3\xCF\xED+\xFD!\xF0\x9Dc\x90\xAB\xD6\xB77D\xD6\xDF|ˎ8\xB0\xFA\xF6\xCFV\xE5\xD8B\xA3\xB9\xC4o5\xC9j\xBF\xD1b\xD8\xB2\xAE\xE33\x8A\xE0\xD2&gt;4\xDDh\xE3\x8AI\x9D\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3ah4 \x8DƥFӝ\xCFh\x96{\xFF3\x9E\xAC螄 5\xF0\xC6        \xE0YP\xD0h\xE6\xE02O\x8B\x80\xE1pp/j\x9B\x8F\xEB\x95\xFE\x9E8\xAE\xE9ri3\xAF\xA7\x8D\x85\xC1\xFEty?\xEB7G\xC6{\xFFv,\xAE\xF4\x85\xAETw\x82\x8A\x86V\x9A]\xE8 \x81\xFF\xB77        \xA4\x89[\xBE\xDBr ]/\xDE\xB3\x9E\xF3\xB5\xD1ܲ!
+f\xFB=\xB7n\x8F\x81\xF3\xCD\xF5C&amp;\xF8\xCDD\xEE73\xAD}\xFC\xC5)p\xA9\xDFb\xF1O_[bE0\xF5\xDEK
+|\xE1\xDE4\xB0\xF7\x90k\xC1\xC6D\xD8\xFEp\xA6^\xB3-x]I+\xBA\xF8
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4 C\xA3ah447\xB2D\xF3\xB2-Qp&lt;W&lt;j\xBA\xEDJ\xF4\xA1})`Ͱ\xA6ќ\xB7\xE6A*\xF4\xC3\xC5\xC1\xCEr\x99[]\xAD+\xDC\xF2\x9A\xF9*x\xD3\xDD        `\xF9\xB8K\x8Cf\x89O\xF1\xC1\xDD        `\xAA\xD7ce\xDC\xA9 z\xC7\xCE8h\xF0\xF1\xA8G\x80/\xDC's\x95\x93\xDD1J\x913\xC3\xDEd\xECJ\x96\xC0\xA0Y\xFF3\x9E\xFF\xAB\xB9+\xA8\xB8;^\xBB\x93
+#_g:\xBA]\x82\xD7(\x80\x87\xC3`\xCA\xDA\x82\xF6\x8BnjF\xC0\xB6xi\xDB\xE4\x96\xD9e\xE3\x99\xA3`ֽT׳\xFDɀ        \xBEv0
+\xEEI\x94\x80\xFC\x9E\x9D        Żw&amp;\xC0*h\xD5d\xDF\xF2\xCB|\x8AOߛR\x8B\xBE/\xA9\xE8        \xC03\xD6G\xC0\x9C\xFC\xA7\xF6\xFB\xE9\xA9\x90\x9Fߓ,\x81\xDFO\xE4\xC0s7F\xC1;\xA2o\xAC(\xBC\xD8,A
+\xCF\xCC4
+\x8D\x86FC\xA3a
+\x8D\x86F\xE3R\xA39\xBB\xC5&lt;}aEg댭\xDE\xED\xA7r\xA0S{`\xCA̬L\xB9\xC6sU \x95\xE7\xC0D\xAE
+\xE4\xDFv\xEA\xF9\xE1\x93ҀF3+\xFA yÐy\x83z\x9D\x9D\xF4\xE9\xEFMU\x80\xACbv&lt;[9 \x9F;\x98\xB3\xD68\xF8\xAC\xFB\xB3SYP\xACՋ\xAC\xF2e:%~\xB3\xE4lـ\xDA3}&gt;ذ        d\xF4\xDEy[\xECD\xB6\xA4\x86\xF9\xBB'r\xE0\xB3\xD2\xE0\xED;\xE0[c\xE0\xD6-Q \xBD\xAE0\xC1u\x9AG+^\xB29
+^\xBEE\xF1\xF6\x9DI\xF0\xE9i\xF0\xE3S90)\x82N\xEA\xA1!w޾q$\xAE\xF2`J?g\xBD\xD7\xC9|\xFB\x96\x91\xFB\xF6\xB2%8`\x80\xF3\xF7\x93Y\xE9Sܴ. ^\xB2%\xFA\x92-\xD6\xEFy\xA9\xE6\xC6aXUd\xB6}\xF5\xDA!\xBCz[ \xBCr\xAB\xE2\xCF6D\xC0
+_h\xC5Ll\x9E\xBA!^\xB5-^\xBE5
+\xE4\xE7\xAF0\xC0\xFC\xD7\xD64\xC3iEo\x80FC\xA3\xA1\xD1\xD0hh44
+\xC3\xD0hh44\x9AN0\xEB\xBF\x8A\x8E69\xF3\xECNU\x80\xDB\xF7\xF3L\xDAR\x97\xE7w}f\xFC|&lt;\xBEz8&gt;uo
+\xBCcg\xFC\xF9\xF68x\xC3,\xBC^#_\xBFkg|j
+\xFC\xE0d\xAC1
+@\xFEJ\xAERn\xDFnߟ4\x9Aٮ\xA77 \x9A\xE0\xC7'\xB3cώ~\xA6\xCA5\xF0\xFE\xDDIpM\xBF~s:\xDC\xF5o?\x95\x97\xFAB\x97\xBA\xA2\x87\xB3&gt;\xEB^\xDEg\x80\xAD\x89\xE0؍\x91\xDE\xD1\xD1b
+Ȉ\xF4TN!5Q\xA75\xB1b
+\x94\xAA\xF5R7u\x96m\xF2\xF9ip?+!\xCE\xE1HY\xE5
+\x81\xCF\xECOl\xC5ؐ\xC5jH\xBF\xEB=\x9E}O&lt;i4\xFC\xA4\xB3k/\xCA\xFD都ֆ5\xA3܆|\xC7\xFE3\xF2\xAF\xF4o\x90\xF1\xF6S\xC7&quot;@V\xA8\xFC\xF5D\xCBV\x8E\xB9\x85\x8E`\xBE
+޶3f\xA8\x93k\xC1\xDA\xE0\xCC\xCC\xFDJ1} \x9F\xFF7L\xFF\xBB\xE7?
+\xA6\xFF~[߀\x85\xF6mV\xFB\x86}[\xD1hh44
+\x8D\x86FC\xA3ah44
+\x8D\xC6\xF5F\xE37\x9D\xE75z[-\xF3)d~S\xACT\x8B\xB9\xF3\x89\xA4Y\xA8\x82\xA1H|\xE9`\xBCzK\xC83\xD9)\xC7\xF8\xF4}f.\xD8\xFF\x95\x9E\x83&amp;\xA3\x91\xD7l\x8D\x82\xAFJ\x83\xBBBp4Sn܆\xAC:\x9B\xCDe\xAE\xE83\xC0\x8EgA'͵\x94ާ\xDF&gt;\x92\xF0\x87\xC0
+\xAF⃻\x93\xA0\\xAF\x97\xDD\xD3`S\xB4\x9E\xBD!8\x8F\xB2\x95\x9DX\xF4\xCC\xD0\xE7n\x88\x80S\xB9*\xA08\xFA.Y\xA5\xA6+`(R??\x9D_?\x9C\x9FܗsOȽ\xB2\xBFռs\x97\xE2S\xFBR\xE0[G3\xE0\x8EP\xAC\x8F\x95\x80\xB8O\xAD^\xAF\xD5;\xD6t\xB6'\xCA\xE0\xE6\xD1\xF0\xCDj\xED\xE6\x85\x95\xF4\xC1˷ƀT\x80\xBB\xDDb\xB6\xC4K\xE0\x9B\x873\xE0\x89\xEB\xC2\xC0\x9A\xD5&gt;\xDF1\xF6\x82V\x90Q\xD0*_\xBCuG\xFC:\x90n? \xF9\xCC&quot;x\xF8\xB0        \\xD3ÿy\x8C\xE6\xDAYh44
+\x8D\x86FC\xA3\xA1\xD104
+\x8D\x86F\xE3R\xA3\x99\xBE\xA1&lt;\xBDF\xC7\x8D\xDE\xC3e\xE6\xD4\xED'\xB3\xC0]=p1;%\xF0\xD1=I\xF0\xA0~LyZg\xA7g        ۳E
+\xBE~k\xC8\xCC\xF1@\xA1pCGV\x99a\xF7\xE1}\xA9\xB3{\xF3ԣ\xE32oH\xEDD\xBATKwʜJ\xA94\xFB\xD6\xE14\xB8\xD2\xF6=\xF9\xA6\xD10\xCFW\x81[\xDEQ\xA4X\xEFݝֽ \xDFG\x92\xF9\xA1\xBF/        \xA5Z\xA2\xC4U\x97P\xA1
+FcE\xF0\x8D#i\xF0\xCA\xCD1\xB0\xCAo\xAC\x9A\Mo\xCA]\xAF\xE9W\xFBH\xD2vg\xEC\xC1\xFDx\xDB\xDDq \xDDxv$\xCB [\xA9\x83Nچ\xF2\x8E\xBE}$.聞\xCC\xE7Z\xBCF\xF1\x90!\xFC\xFAt\xB8w;\x9C\xCCU\xC1\xF7\x8Ee\xC0c\x86\xCDǜu\xB7\xAB&gt;\xD6:\xDB+Vzo\xBB'6\xC7K\xC0\x8D\x92\xB2&quot;\xFC\x97\xA7\xC1ʞ\xE0ʞn5X3n(
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3q\xB3\xD1=}E\xE7\x8D&gt;\xA6.0\xC1\x96x\xB8\xE6\xE9\xAD\xEEt\xFA\xC7`&lt;m, \x9A\xEE/s\xB7\xCDE~\xC85k,Z\xF2\xC4ٙ\xDBSj\xF6\xDExwXO\xC0\xBB\xD9h\xF4'(sQ\xA5\x8FD\xB8P
+w\xCAꇙJ|\xF3p\\xD9g\x80)Nj\xCCX\xEF7\xC1/N\xE5\x80\)\xDC\xF2\xEE\xBEy4.X\xBC\xC0\xB1Uz _\xDCg\x80;yP\xAB\x9D\xA99[h\xEA6:;\xE9J
+\x8CD\x8A\xE0\x9D\xF7$\x80\xE5/\xB3\xD9\xCAb\xB0\xED\x8F        \x839\x9C\xFB3\xE0\xAE\xE3\xEE\xFC\x91\xBB\x8E\x8F\x83\xB9_\x9D\x97\xAD        \x99\xF1+V\x81\xC7\xD82\xF7\xFF\xB5[b`r&quot;\x9BF)\xF73nQ\xAFMz\xDF~2\xDC\xD8\xE7YV\xC0|\xE1\xC6p~\xEDq\x83CJ*z\xF6\xA6\xCD\xF7\x95
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3q\xB6ќg+Y\x9DФ\xF6\xAC\xE3\x8C\xE6!\xC3&amp;k\xC0\xF9{\xAC\U{B\xF0\xD88\xE8\xFC0\xED,q\x81\xE6\x91\xC3a\xF0\xD39\xE0\xCC
+\x93\xAD\xB1x\xF6\xC6(\xB0\\xA0;\x8DFjK{\x83\xE0C{@Vb\xED\x8Cq\x85t\x9A\xFD\xC6\xE14x`_\xCCp\xCE\xD7[`\xB9O!\xB3\x9B\xE5Z\xC2=\xAB\xCAʙ\xE1\xA1\xC6C\xEFoݴ\xF6\x9Eu\xAF4\xC1\x81L8\xAB\xCA\xD8F\xEA\xFA:\xD5edf\xF4\xA4\x80\xF4i\xB7V\xCDk޽2\xDBHҪE\xD4&lt;n4~u:r\xD5z\xCE\xFD\xAD\x8A#\xA5*\xF8\xF8\xBE$\x98Ӗ\xD4Lj̚\xF7\xE0\xAE\xF7+\xD5\xFB\xBF \xE4\x81tEX\xB26\xB8\xA4\x8D5f\xF3\xE8\xA0x@\xBF&gt;\xB17        \xC2\xC5j\xD8=.)\xE3\xC3\x9Eȁe=\xC1e=At\xF2o}a\x85\xFE\xFA\xFC[\x89FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0h\xDCl4        \x85̸鸾\xCD\xB1=\xA4\x8F\xAB\xF3\xF7\xD8\xF1\\xFC\xCD\xCEh\xF3ܺy\x9E%.\xEB7\xC0G\xF6$\x81\xD3:%\xFE\xEB\xD1 \xB8\xC2\xBA\xE2\xEC \xF1n3\xFD\xAE\xA5\xA7\xEEk\xB7\xC6\xC0\xDETt\xC6hMzh|\xE3P\\xDDg\x80\xFBy&quot;\xAF\xB7ޟ \xE0\xDEt\xF9^\xF7tLݗ,\x83Wl\x89\x81E\xAD\xEB״\xB3\xC1\xAF⥛\xA3 \\xAA\x85\xDDPױ%V\xA2\x8A\xCEs\x99ͱ&quot;\xF8\xF3m1\xB0\xCAg\x80E\xADm\xB7\xE8\x8AD96\xAF0\x80\xF4\x8E\x88\xAB\x91\xA2\x8B\xEF\xAB\xC88\xB3?\2\xEA8\xFF\xB1\xB9du|d_ȹ\xCB=gZ\xC5ςG \x9B\xA0m\xFBҢG,\xFB\xE25f\xB1f\xBA\xE7nƾTܺ)
+\xBA\xC2h|\xA6\xA2?\xAA\x98\xB6\xAA&amp;\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1Ѹ\xC8h沉\xD4\xCFwRg\xFD)_\xE8W|xw\xA4+\xF5\xB4\xFAF\xFEf&lt;\xAE0\x81kf~\xD9zx^\xE43\xC0\x9Bwā\xCCbk\xEF\xF6 k\xE05\xDB\xE3\xC0\xEA         \xAF\xB9{\x8C\xC6V\xF1\xEA-1\xB03Q\xF5\xFA\x99\x8EY\xF8N\xAE\xB0SV\x9B\x9D\xC3\xC8j\x85\xCF\xBF&lt;\x9Dn\x99\xA7/\xD6\xC0'\xF6\xA5\x80\xE3\x8CF\xBF\x9EU}\xF8½)\xE0\xFCn\xBDr\xEF\xE5\xF690`A'\xB9L\x9FY\xCFXKU\xB9i\xC8\xD7[\xF5K\xFCx\xFF\xAE0\x8BU\xD3\xCD^3\x91\xAF\x82\xD7o\x8B\xA9Ǟa\xB4\xA9\x8F\x91\x9BG\xC2\xC0]\xF5f\xD5Zș\xF6\xA1C&amp;p\xC1\xD7\xFB9_\x89\xD7@\xBC\xC6(Ԁ \xBC\xB2\xAE\xF8ɩpܬ\x84ft\x90z3\xFD縉h44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6iF3\xF7M\xA4\xB6\x86&lt;\xD9\xE9\x8C\xFE\xFA\xBC!\xF3\xBF\xBE}8
+\xB5z\xC1
+#\x96/Ly*\xED\xDE-\xBF\xDC/\xD8\xD2)\xB4]\xDB\xF3\xBFN\xE5\xC0\x83M \xEBmu\x91\xD1؞\xB0?~\xC4\x9Bb%\xD0Ic\xB6?L\xE4\xC1cF9\xBBM\xE6rn\x97        zf\xF4v%@\xA4T\x8B\xB8\xA1&gt;J&lt;\xF4\xBF\xC6\xF3\xC0Z\xD19\xD72\xAB\x96\xCFkC\x803\xAE\xC3O\xBA\xD2i\xE1\xD3\xFB\x92`4R\x8Dt\x88\xD1 \x85\x8B\xE0ic\xE0葧u,\xC4kd\xDDO7ns\xA9\xFB\xF9\xA9X\xE17\xC0 \xF7\xF41\xFB\xE1\xBDI\xE0\x9A\xF5FuQ\xDDH\xB85~ԼδnY\x87\xDDo\xA9Nϔk7\xCCP\xB8'Y\x8F        \x83\x8E\xF5YY\xA6_\xE3
+\xCEk\xFB\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x8D\x8B\x8DF:\xD8:\xA4\xB9}/\xBD\xB2\xDF\xF2\x9CT֬t\xFE^\xFA\x89\xFDi\xE0\xB93\xA0py՟\x9C\xF7\x9E\xBB1d\xE4\xD0\xCAE\xEC\xF6\xA7\xCA\xE0\x9B\xA3`IOp\xC9}\xAE,\x9Dm4\xD3\fm(:\xCFen\x8D\x80\xCEN\xD5\xFF\xEA\xDAA\xECJ\x95w\xB9\xA7O\xC2\xE6x        &lt;n\xC4|\xDC\xD9\xEE\xEEN8\xEA\xF5h\xED\xBAa\xF3:\xF7t\xCB\xFF\xDC\xFEx\xC5\xE6(\xD8+mq\xBF\xEF\xEFI\x96\xC1\xAB\xB7ƀ\xE3\x9C\xF7\xFCU\xE2^\xC5\xFBv%\x80\xBBz\xEA\xDAs S\x8F        \xAB\xC6\xCF6\xDA|p\x9F~\xC8׼\xA3t&lt;cC\xB8\xAC\xC0&lt;\xEF\xC6\7`\x80;C\xE0\xFC\xCF%U\xAE\x81/\xECO\x83)\xD7\xFD\xCE\xF8D\xEC&gt;2\x9Fz3
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xE9\xA3QR\xD3\xB4\x9E\xF2t\x84\xD1\\xD1o\x80\xEF\xCB\xB7\xCD\xC7\xF6\xA7?\xD6F3\xADc\x80&lt;\xFD\xC9\xC9\xA8\xD6\xCF4uQ\xB5\x93\xD9
+x\xF3\xDD        \xB0\xD2Z革\x97f\xA7\x8D\xCDen^kB\xF95\xE62\x81&lt;\xB8i]L\x8E\xF4*~ \xEB%\xAB\xB7\xD8\xCFNeA\xB1Z/\xBAa\xBD\xBFӹ
+x\xC7\xCE8pD\xBD\x81m\xFD\xC47l\x8F\xE7\x9Fo\x8DB\xBCdK\xDC2;\xE2%\xE0\xDE\xE3&quot;[\xAE\x83\x8F\xEDM\x81 !\xBD =.\xDA:S[\xCE\xD8\xDF=\x96\x99J=SqY\xFBY'\xE2\xF7$\xC0r\x9F\xB1\xFCl\xAFl\xCD\xB6\xC5\xC0\xB1L8\xFF\xBD\xA4+5\xF0\xE1=I`]q\x9C֍\xA4        \xF7d\x9E\xB51
+ܲ\xBA\xC1h\xB4.\xF1\x87.\xF1\xBB\xEDx\x9F\xD5e\xF4\xCC\xE9\xD5\xEC5\xC0\x827\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1Ѵ\xD7h\xB3q&lt;ޠ8\x91\xEB\xFB\xB8\xD6h\xBE{,.\xF7A\x87\xEC\x9Fֹ&quot;n0\xC0m\x872\xE0D\xB6\xBB\xF5\xA4n\xE4\xADw'\x80\xD5?s\xB6\x91\xA7\x8D&gt;'\xCB\xEAu\xBF:\x9D\xA21\xBA^\xF1\x8E@\xFE\x8E\xB3.Ө٩\xFA7\xBCq[ 8me\xD8\xD9R\xA8\xD6\xC17\x8Fd\xC0\x94ʖ\xB6\xD6l\5`\x80\xEFˀJ\xBD^qvsp_\xA8\xAE6\xC1\xD36D\x80ۍ\xE6g'\xB3\xE0A\xE6\x83\xE6\xD8\xC3\xDC\xC1\xAB&gt;|\xC8&gt;\xB3\xE8s[?\xEDrM\xF1\x8BS9 \xABN\xDB]\xE0?OdA\xA9V/9{4&quot;\xE3\xA5\xDFN\xE4\xC1}芕m\xD7\xD0\xCF\xECO\x81x\xA9wvǘ`\xA1
+n\xDDK\xBD\xC1\xA5^7\x8F\xA5;\xD9PR\xA1\xDEHp\xF1ۇFC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0h\xDAb4\x8D\xDADjE\x9B\x81\x98\x82F\xD3\xF2\xDC/\x81go\x8C\xCF\xEA\x80gu\xA0\xF3\xCE˼!\xF0Ww\xC7\xC1o&amp;r@\xAAh\xB6\xC5\xA4\xCB\xE0G'\xB2\xE0\xF9\x9B\xA2\xC0\xFE\x94\xD6W\xD2yF\xA3\xBFsM\xBF\xBEs, \xF2\xD5z\xBE\xEA\xFAE4e\xED˦\xB8\x8CmuU\x9F\xDA\xDBi|\xBE\xE91\x8A`\x95/\xDA&lt;\xDE\xD0\xC7\xF5Æ\xC3`]\xA4\x9C\xBF~\xEB\xDF\xEFO\x81k๛\xA2\xC0\xBDF\xCCW\xC0\xF36E\x81\xEB\xAF\xB2'\xEB=\xEAM;\xE2`&lt;_\xEE\xFAD\xF6\xA7+@|Y\xCEW\x8F6\xC1\xD6x8\xFF\xF5ʔ\xC1\xF36F\x80#|\xF4\xF8\xF0aHz\xE7\xDF\xDD\xFAޱ,X\xE9׬\xCC&gt;\xDDe\x86S
+\xFD\x9DF\xEA \x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1Ѵ\xD0h\xBB\x89έk#v\xE3r\xA3\xF9\xC1\xB1\xEC\xDCc4\xB9J|\xEDP\xAC\xEA
+\xAD\xEA
+u\xE0\&lt;[o\xE7\xF5\xE0\x9D\xBB\xE0ǧ\xB2`0\;%p,[\xC1|\xCET\xC0\xB6x        \xF8\xCC\xF8\xF7Y\xF0\xFA\xED1p\x99߸l\xC6ͺ\xC1h\xF4\xD5\xFF\xB2\xBE\xF8֑4\x90ʇ\xCEH\xB8n^M\xE9j\xABu\xF9\xE1\x89,\x90\x95\xF2\xDC2jz\xDAX8\xC1h\x9E\xB4&gt;\xCCb\xCDtv\xDFf\xE0\xF9\x9Bc\xC0s\xC7x\xF1\xE6(p\xAF\xD1|\xF5p\x88\x95w\xC8\xF5B\xEFϗz\x83\xE0\xA7'\xB3\xC0-G\xA5$S\xAD\x83\x97l\x8E\xF9D\xDEyOrՀ\xB3\xEBZ\xA5&quot;N:\xA5,\xED
+.\xED
+v\x91\xCBL\xAB\x93\xFF\xD0\xDE$\x90&gt;\xC9N\xFE\xD46\xC5K@\xD6+q\xCD@fU\xC8\xEA\x99Mx:3Ejh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xA6\xF9FӤ\xED#}&lt;q\x85ˍ\xE6ߏe\xFF\xDD=F#9\x9A\xA9\x80\xF7\xEDJ\x82\x8B\xBC\xA1\x8B&amp;k\x8A:\xF0\xDCb\xEB\xF0,\xEF\xF1!x\xD6\xFA0x\xEB\xDDq\xF0\xC1\xDDI\xF0\xA6\xEDq \xE3\xB7+\xFBB\xC0Z?na\xA3\xDC\xCE0ͪ\x9E\xF8ؽ)\x90\xADԳ\xD7W\x9AI\xB6\xC6K\xE0\xD6-1\xE0YR4c\xFF\xB7u?\xFE\x8Bqp&lt;[9\x9EuA\x95\x8BQ\xA8\x81\xECJ\x80%\xDEВ\x{1ADC36}\xBCW\xF1\xD7\xF7ā\xF3\xB7\xDB]\x81x\xC4H\xC8y\xE0E\x9B\xA3/r\xA7\xD1
+\xF0\xF8\xB1\xE8\xC0*e}~{\xD9\xE6(ؗ*\xEFs\xCF\xB8\x85Z|aHg\xDD\x9E\xC8\xA9\xA1u\xF2+\x97\xED\xFC\xD2-Q\xE0\x88\xCE\xF0m\xDD\xF77&gt;\xA3\x9C\xFC\xA9\x99\xC5*x\xC6\xFAX\xD2\⊎R\x83        \x85m\x86K\xF3\xB6\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD14\xD5h\x9A\xBD\x89\xCE\xFDE7֞\xE9Q\xEE%}\xF8\xE2\x814\xC8U\xEB9\xB7͒\x96\xFE\xC6ٓ7 \x99`Ioh\xC9َĝZ\x8D6_\xF6\xB7\xDCn4z\xF4r\x897&gt;\xB0;        &amp;\xF2U\xD0.\xB3+Q\xAF\xDB-\xEAC\xAB\xF7\xA5\xCB\xFD\x8A\xD5Fa\xB5\xB3\xAF_YTzb,񅖴\xA5?\x80&gt; ]7h\x82\x9F\x9C\xC8'o1\xDD\xFC̻v&amp;\xC0\xB2\xDEв\xC9\xE8\xEE5\x9A\xEF\xCD\xE9\x9B\xEDʎ\xCDs^\xB9\xF5\xFBdz\xC0-\x9FK\xB5^\xBF\x9Fȁ\xA7\x8F\x85\xC1\xFAX        8\xFA\xE8\xD0\xDD&lt;\xACz\xB3\x9E\xE0Ҟn\xAD7\xB3\xED{\xB2\xC4\xE7\x{1A7053}\xEBS\x95\xF8\xF8\xDE$\xB8\xC8\xBA\xC8\xE7T\xED +\xA4\xC6l0\xAE\xE8
+\xB6l+\xD1hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44Mc\x8D\xA6\xC5Jm7vr֟\xE6r\x9F\xE2\xEDw\xC7A\xB2\K\xBAs\xB2\xB4&lt;\xBF\xEE5
+\xE0u[\xA3\xE0\x9AA\xAC\xF2\xC0\x9A]e\xEFW\xDCIg\xA1F\xF9K\xCD\xF5Ca\xB0du\xBCgW\x8C\xE7*\xE3\xB9ʙ\x8E\xC8\xEED\xBCv[ \xB4\xB4\xD2\xD2֭⫇3\xC0-3\x91\xB7$J`U\x9F\xB1\xAA-\xB3µ&lt;~46\xC7J\x9B\x9D=f\x93\xD5\xE8n\xD9\x9E\xD5A\x85\xFE\xC4\xDDh4`\x81\xE7l\x8C\x82t\x99i\xFB\xD8_\xEFL\x80p\xB1
+\xDC\xF2I7\x9B\xCF\xECK\x82=\xA9\xF2gW\xCDM\xE4*\xE0;\xA0\xC3\xF7\xA8y\xEE{/\xDE\x87R\xE5CN\xFD\xA5\x9A\xF1\xF6\x93Y\xE0\xB8\xFE\xFE\xB0\xC2\xFE|D\xA7-\x8AFC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0ho4\xED\xDAP\xAA?\xC0PB\xE17\xEEzb\xE8U\xBCrK $J5\xE0ޑ\x9E\xD4K\x88\x97
+G\x8A\xE0s\xF7\xA6\xC0-ca\xF0\x80~\\xE4W,\xF3\x85\x96\xF9\xA6θo\x9E\xB8\xCDo'\xF2@\xEA\xFFl}l\x89\x95\xB6\xC4Jg:&quot;\xBB%\xF0\xEAm1p\xC1\xDA\xE0m郡\x8F\x97Wn\x8D\x81}\xC92p\xFEv;\x99\xAB\x82\xE7n\x88\x806\xE3\xBA\xFAQ:!\xC7K\xB5\xB8\xB3ϱ \xE4\xC1
+\xC3\xE6
+\x93\xEB\xBA\xD2h\xF4\xC5`\xD0,\x82\xEB\x86L\xD0\xE1\xE3O}T&gt;j\xD8\xB2Ү[\xCEi\xA5z\xAC        \xE6\xC1x\xBE:\xEE\xEC\xAA\xE0\xD5\xC1&lt;\xB8~\xC0'\xD8\xF7\xBD\x87M\xF0\xA7s\xC0ɟ\xE0X\xB4\xAE2\xAFi\xFB9A,\xA6?\xAA\xB0\xEA\xCD\xF4\x8A0^\xA3\xED[\x89FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0h`4\xCE\xD9P\xFAIMR\xE1\xC2\xFE{\xD7\x9B X\xAC\x8B\x9D\xB2\xE8\xA0N\xA6RRG1-\x81\xEFˀw팃\x87\x9B`\xB97\x96\xFAV\xD7\xF3\xCF\xC1\xA7\xD18\xD8g\xFFo&lt;\xDE}OȺ\x93\xD5\xFA\x99\xAA\xFB[5\xEFI\x96\xC1\xAB\xB6\xC6\xC0ҵ\xC1\xA5\xAA\xEB\x85^\xF2\xB2MwB\xAE\xEAS\xFC!\x90\xFF\x83\xC6N\xB2\xFA\xDB?\xECO\x81\x95~c\xA5\xDFhe\x9Dޅ^\xC5'\x{1A5013}\xB7\x92Te\xBCW\xAC\xF4\x85V\xFA\xA6\xD4\xBA\xCBh\xA4#ė\xF6\xA7\x80t\xBF\xE9\xC0.1Ӹ`u|x_\xB8\xEB\xFCV\xA8ց\xF3\xCF\xD5_&gt;\x9C\xD8|\xF1\xF3\xF48\xEA\xB3\xFBS\xC0ɟ`\xB8T        km\x8Bvm7\xA9.\x939-\xECfF\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4
+4\xC7n+\x8F\xD7P؟&quot;\xB9\xE4\x89\xE1\xE5\x8D\xC1\x99\x8EN\xBEZ\xB2\xD6ҁL GK\xE0?Nd\xC1'\xF7%\xC1 7F\xC0e\xFEhbodM\x8Cf[\xBC\xA4+\xA0\x93\\xE6\x95\xDBb`\xD2e06\xD3ׂ\xDBe\x80t4urju\xC5\x82y\xD0\xD2\xF1\xADv\x81\x87\x9B\xE0W\xA7r\xC0\xC9[\xE9h\xB6
+d\xBD\xBC)\xF5.4\x9Ax\xB9\x9E\xB31\\xB3\x9A^\xEAU'\x87[\xB7\xC6\xC0\xF1L\x9Ca\x94S\xB9
+x\xF3\xDDq\xD0摰C\xF7=ey\xAF\xD9\xE2\xA7\xCE\xFCe}\xEDl\x8A\xEB\xAE`+Gq\xD6L1\x9A\x90\xC3\xF7y
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3q\xAFќ\x91N\xCE#\x85 \xD7\xD9\xFC\xC1\xB1 p\xF2\xDEؼ\x94\xAAu)ր\x8C\x87e\xB5\xAF_\xF2\xE0K\xD3\xE0o\xEFI\x80\xA7\x8EF\x80\xAC*e\x9D\xD9:\xB5/\xB4 ;\x88\xB1v\xC6&gt;)\xB3\xC8߰#\xAC&gt;Ω\x9Cѣܗm\x8Eq.\xE7o\xCF\xC3\xD9
+xذ        Z\xB4%\xF5\xF9\xE1\x99\xA2\xE0\xEEx8s\xCBH\xBD\xD9\xCFO\xE6\xC0\x95ƕ\xF7Y\x89҅F\xB3;U\x8E\x98\xFF\xDB\xF2\xAB\xF9M\xEB&quot;\xA07X4\x91Fe8\\xB7\x8CE\xFB6\xCFf4\xCF\xDCG3\x95\xA3N\xB5iYG\xFE\xED\xF7āTʵt\xCC6W\xE8\xAFݲ\xE7\xD3hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\xCDt\xA3\xF1\xF8\xAE\x91ij.\xAB\xF05N\x9Fյԫx\xCB\xF60\x8B5\xB3\xB3\xFA,&gt;\xE9r
+\x9C\xCAU\xC1\xF6x        \xDC,\x80\xEF\x9DȂ\x8F\xEEK\x82[\xB7\xC4\xC0\xD5\xFD\xB0|G\xCE~n\xF4Mg$Z\xAC\x81\x8F\xECM\x82e\xDEв\xC9Q\xA5\xD3\xCE\x97\xFA?=\x99\xCEߪ\x89r
+\xBCa[ X[\xB5\xD9ǣ&gt;\x82^\xB5=r\x95:p斑J\x8C7\xB6\x8C\xAB\x8CF\xEC\xEC\xC6s\xE0\xB2~\xE3\xB2\xFE\xAE\xE8        `?*/\xF1\xE0[\x873\x80\xE7\xD2F\xE5ˇ3\xC0sg@!\xD7\xF7\xD5\xC4\xC6'\xC0C\x86L\xD0\xCA\x87޻\xAE\xD5\xC1W\xA6\xC1\xFA\x8C\xB4\xB8g\xC8@L!^\xD0t\xD1\xFEO\xA3\xA1\xD1\xD0h
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\xF7\x8D\x92\xBCr\xB7\xF4s֟\xE9u\x83&amp;ؓ\xAA\x9E\xC1\xE63\xFE\xAC\x82\xDD\xC92\xF8c\xB0\xBE{&quot; \xFE\xFE@\xBCq{ܼ. .\xE8
+\xEB `\xAFXs\xA6\xE9\xD0hZ\xA9{\xFC\xBB\xBDI ]=\xD33\x91?\xB472\xE5:p򶕊\xC4:\x94\x97\xF4\x85@\xB7\xAD&gt;\xA2W\xF5\xC1\xE7\xA4\x81\x93\xB7\xCC\xD1l&lt;|$ fpgW\x8D\xDC}\xFA\xC7)\xB0\xCAZ\xE5ᆴ\xFBkpq        \xBCmgtFw'd,^\xDF;\x96?8\x95S\x9C$6N(~5\x91r&gt;q\xE6\xE7X\xA9+~r&quot; \xFEd\xC0-\xBD\xC2Jgۨ\x8FFC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4\xAD\xF3\x9A\xFE\xA8g0\xAEp\xBC\xD1\xC8\xD7?&gt;\x91\xDD\xD9\xA0\xC1\xCF7u\xB7\x81\xC3\xE9
+\xE83
+\xE0ߏg\xC1G\xEFM\x81\xD7\x9Bօ\x81\xB5\xFD\xE5Y\xB6\x8C(\x9Cp\xA6Ѵ0\x85*xߞ$X\xEE
+.\xF7]P-\xA3\xF7\xD5\xE7o\x8A\x82\x9D\xF1\xF2θ\xA3\xFBH\xE7\xC1p\=`\x82&amp;\xD6\xF2\xADU&lt;j\xC4\x98\xC8gnY\x89\xF2\xF6\x939\xB0\xAA\xCFX5c
+\x86\xAB\x8C&amp;\\xAC\x82\xBF\xDARM\xDDuF\xA3ps \x85\xE0ٕa\xECFs\xFB\xC9,\xB8f\xD0-\xBD\xCE\xFA\xCCs\xE8\xDA3
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86ah4-\x95Xa\xEF\xDB\xE6\xC8\x85K4/\xDAdz\x95\xE3Y֞51'\xB2\xD0*\x80&lt;\x94\xB9#\x9E\xBA&gt;dv\xE7T\xC7\xD1\xD0h:4\xFB\xD3e0\xC5p]0Y\xED\x93\xD2o\x80\x9D\xC8\xE7o\xE7P\xB1n\x8D\x80&amp;\x8D\xAE\xFCyٖ\x90{\xCE\xDC\x91R
+\xBCrK,\xED
+.\x9D\xF1 \xE3*\xA39\x95\xAF\x82ǎ\x84AV\xD0sDՙ\xAAg~\xCA\xFA\xD8-\x9E]\xC6n4?;\x99\xFDY[\x8C\xC6k(\xC4\xF4\xD5ӥ\x9B\x91F\xC3\xD0h
+\x8D\x86FC\xA3\xA1\xD10 \x8DƽF3\xE95\x86\xA9\xC0\xC1^s\xA1O!\xDD/+\xB53&gt;\xB2nU2\xE5
+\xC1\xD7g\xC0+\xB7\xC5\xC1\xC7&quot;\xE0R\xBFd\xA4Ԣ\xCA4M #\xF3\xD6y:\xAE\xEA7\x815s\xC9\xEA\xED;\xE3@\xFA;y;K=\xED;\xEEI\x80&gt;4\xE58ҕ?\xEFߓ\xD5ڙ\xAASϢ;epՀf\xBD\xB2\xBB\xCAhv\xA7\xCB\xE0B\xBF\xBA\xA8o\xF3\xB4\xCF\xEBQ#a\xE0\xE4\x8AG\x86\xE9&gt;\xA3\xD1X\xC3\xDCZuF\xA3ah4 \x8D\x86FC\xA3\xA1\xD1\xD0h\x86Fc\xADJs\xD7IwKMD\xE17\x8E4Aj\xCF\xF6\xA6*{\xD9ɹ})\xD6\xEA`,\_ܟ\xCF\xD9\xD7\x98מ\xED:\xD8&lt;\xBB\xA1Ѵi\xBC\xFD\x89\xBDI\xB0\xC2.\x95i\xA3\x91j\xC9M\x91p\xF2\xAE\xD6\xEB\xE0\xF69\xF0\xA0A\xF3A͹\xA2\xAD\xEC
+\x82&gt;\x9AN\xDEӾw4 \x96\xF9 \xD0F\xD3.\x82\x8B\xFA\x8C\x8B\xFA\xBA\xD5h\xF4\xBB\x96k\xC4\xCB\x9EW\xC6AF3\x98P\xF4\xB8o\x91M
+C\xA3ah44
+\x8D\x86F\xC304\xBB\xD1xz\xC6]/51k\x9Dמ\xC9U\xEC\xA6A\xA9V&lt;\x9C\x90h\xB1n?\x91\xAF\xDB6\x81է\xB4\xB1vC\xA3iS\x82\x85*x\xCD\xD6X\xD2\\xD2t\xF4\xECf}f\xBE\xAA?\xFE\xF9H8 o\x8F\x95\x81\xB5\xA6\xA4\xACu\xDBЭ\xF1\x84\xD10\xF0\xE0\xCC-p:_o\xDCK\xBC\xA1%\xE7\xE9r\xEC\xA3\xA9+~ȃ\xAE\xAE:\xD3ժ\xD2[\xE6\xB6\xE9ۜ\xBD\xBA+\xC3t\x9D\xD1tJgKgh4 \x8D\x86\xA1\xD1\xD0hh44
+\xC3t\xAB\xD1x|!M˼\xE6\x86A\xDC\xCCY\x9F\x8Eqĥ\xBB\xAE\xC8U\xEB\xA0\xDF,\x80\xB7\xEC\x889B\x97\xF9B\xCB\xCEV+-f$L\xA3ik\xA4\xF3\xEA\xCDc\xD0\xC4&gt;\xC3
+\x9D \xFF\xCA\xEDqP\xA9ׁ\x93\xB7m\xBARO\xDF
+6\xFD\xDB\xFE\xF2\xEE88\x9D\xABG\xFCόD\x8B\xE0\xEA~\xDC\xCFY\xC2%F#W\xA8_O\xE4AW\x8DU:\xAE\xC6K\xEFޕ&lt;\x972\x8C\x93\x8CF[\x80M\xAFA\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD10 \x8D\xA6=F\xD3U\xF8\xC3
+\x97\xCC1|\xFE\x86\xD8-m\xE4Z]\xB4M\xBAR\x83\xE1&quot;\xF8\xEB\xBB\xE3\xE0\x8A&gt;L\xB9\xC6\xD1h\\xE8\xAD\xFF~, &lt;`&gt;x\xC0t\xF4M\x8F䟰&gt;\xB6\xC6J\xC0\xF9G\xCD'\xF6\xA6\xC0\xC5~4\xAC\xAEO\x9Bݧ\xA4\x81|\x82N\x8Bt\x89\xFF\xA7\xC3i0\xA7\xF3\x83K\x8CF\xDE\xD77\x8F\xA4\xC1r_t\xDDښ\xD3\xF6×n\x8D\x9EK\xC6AF# g'\x9F˗\xA4\xA1\xD104\x86FC\xA3\xA1\xD1\xD0hh4 C\xA3\xA1Ѵ\xF0\xF9\xF5Ҟ x\xCB\xDDqp8S&lt;.\x9C\x9Cp\xB1~=\x9E\xCF\xDE\xF6\xBE\xDC4w%U\xA9\x81\xFF\xB7'.\xF4\x86.\xF4:u\x9C\xA6_\x95x\xF4\xD7\xA6\x81\xF3\xB7\xED\xAFO\xE7\xC1
+CaЀ\xBA&gt;\xBDVy?=\x95\xCE|\xD7G2e\xF0\xEA\xAD10\xA73\x83K\x8C&amp;^\xAA\x81\xCF\xEFO\xAB\xF2\xB6\xEB\x8D\xE6E[c/\xA2\xD10\xCCdʵ:\xF8ޱ \xB8\xAA\xDFm6o\x80FC\xA3ah44
+\x8D\x86FC\xA3\xA1\xD10 \x8D\x86F3\xE7+\xB5\x9A\xC1t\x917޶3\x8Ed*G\xE85\xCEN\xA5V\xF7\xA6\xCA\xE0\xF3\xFB\xD3\xE0\xFE\x90ޞ4wE\xEE$\xBCrk 8\xB9K\xC0\x92\xB5A\xF0\x82-1\x90*ׁ\x93\xB7\xAA\x9CǞ\xBA!
+\xD0@_\x9F4#\xE1&quot;p\xE6\xBB^k\xC0%\xBE\xD0%s\xF3\xBB\xCAh&gt;\xB7?\xF59ͤѼxk\xEC\xC54\x86\x99\x8C\xAC,\xFC\xB1\xBDIp\x91?\xDAp\x96\x98b4\xAC:\xA3\xD104
+\x8D\x86FC\xA3\xA1\xD1\xD0h\x86FC\xA3Y\xC8\xF5z\xA57^\xB55F#E\xC0c\xC4\xF9\x91k\xBD\xAC=\xF7\x8C\xB1\x98\xECx\xDEc\x99F\xE3\xB0\xF4 \xAB76\xB8\xE7pC\xFB\xC8ʕc\x91☳\xCFպ\xE2u\xDBc\xA0\xDBS\x8F\xFC߱3&amp;rU\xE0\xB4\xF7\x9B\xAB\xD4\xC1\xD7g\xC0&lt;V\xE3e\xD5\x8D\x86a:&quot;\x99jܲ&gt;\xE4\xFE[\x8EM
+\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86F\xC304M\x83\xBCFxֆ(\xB8#\x90&lt;RܒM\xB1x\xED\xD6\xB0*\xD0f\x9BG\xA3qXdV\xE3\xF7\x8Fg\xC1\x83\xFA \xE0\xB8~\xCEz\x8F\xBA\xB4\xCF\xFF\xB0?j\xF5z\xCD٫m\xFEӡ4\xB0\xBA\x9D\x8B\xE9/\xC2\xE6\xFE\xE9hTkg\x80Ӳ3Q\xCF\xDB\xF3\xED\xD3hh4 \xD3\x91s\xE0Ճ&amp;h\xDB]A
+\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86F\xC304MC;\xB5\xCAh\xEA1#&amp;\xF8\xDA\xE148\x96\xA9c\xC77do\xB2 &gt;\xB0;        .\xF2\x85\xC0 \xF3\xCDi4\x8EL\xA4Xݛ+z\x83+z\x83\x8E\xB9\xE9}\xE9Y# Y\xA9'o\xCF\xA3n\x8D\x80\xC5t]\xB8L\xF3\xDB@\xFE\xB7N\xBD\xC3\xF3\x8B\xF1&lt;\xB8\xB0'taϼ?M
+\x8D\x86a\xDC\xA91\xFEʁ4\xB8\xB8ϸX\xDD\x9Cs\x97$
+\x8D\x86\xA1\xD104
+\x8D\x86FC\xA3a
+\x8D\xC6\xF9\xE8\xEB\xDD\xF2^ś\xB6\xC7\xC1y\x90.\xD7\xD3\xCE\xEE\xDD\xCA\xF3U\xF0\x91}Ip\xA9?t\xA9j\x8D\xC6\xC19\x90\xAE\x80\xD7l\x8D\xBDƁ\xFD\x9C\xF5\xEB\xB9f\xD0\xFDf\xC8\xD5ę        \xE4\xAB\xE0\x9Bc@Ɓ \xAB\xC5}\xEE\x86(p\xE6\x98_z|\xE6@
+xVg4\xB1R
+|\xF6\xDE\xA0\xD1\xD0hƞm\xB1\xB8i4 \x96\xF4\x84\x96\xF4\xB4\xEFؤ\xD1\xD0h
+C\xA3\xA1\xD1\xD0hh44\x86\xA1\xD1\xD0h\x9A]\x87\xA6\xAF}4\xC1\xC7\xF7\xA5\xC1H\xA4
+\x95z\xA1B\xBBq\xF4\x88\xEE\xED;`EohE\xAF\xB5\xA6*\x8D\xC6\xF94\x8B\xE0\xF1\xEB\xC2\xC0A^\xA3G\xF8\xFAC\xE0C\xBB\x93@\xD65s\xE66\xAC\xD7\xEFٝ\xAC        \x80\x85\xBDߏ\xEEK\x81h\xB1
+\x9C\xF6\xB7\xC6K\xE0Y&quot;`\xDE\xDD$\b4\xC9r
+|\xE5`,\xF7\x85\x96\xD3hV\x9E\xBF%x\x9Ed\xBA9\xA2%\xF0\xBAmq`\x9D\xDA{f\xA0\xD1\xD0h
+C\xA3\xA1\xD1\xD0hh44\x86\xA1\xD1\xD0hZi7\xBA3\x9E\x8C\xB5\xBEv(
+\x86#%0\x9E\xAB\x8E;o\xED9\xE6\x9Ex        \xBCls x\xD64ǧT\xAD\x83\x9F\x9Ĉ+\xFDh\xDBl\xC7:\x87(\x9E8\xC1B8yK\xFE\xE8x\xFCI\xBF\xE6\xB1
+m\xE7\xBA\x9E\xCCgv\xAB\xFE\xFE\x89,X\xD6󾚻\xC4hJ\xB5:\xF8\xD9\xC9X\xE97V:\xE4Xh\xAC        \x82\xD7\x9Ego\xA6KRW$K5\xB07Ur6x\xDE\xC6(\xB0\xEE\xE48\xE1.\x8D\x86F\xC3\xD0h
+\x8D\x86FC\xA3\xA1\xD10 \x8D\x86F\xD3\xD6j\xB4\xAB\xFBM\xF0\xEE{\xE0\x8F\xC18\x94\xA9\xA9\xE0\xE1\xE8\x84x\x8D\xF8\xD3x\xFE8h4ΏY\xAC\x82\x8F\xEFM\x82\xE5\xDE\xD0\xF2ɕ.\x9D\xD0\xE0\xF2\xF8\xCD&quot;\xA8\xD5\xCFԜZ|:)\x82\xA7\xAD\x8F\x82y\xD4\xEF\xE9\xF3ۥ&gt;E\xA4\x9C\xF6\xBER\xE5x\xEF\xEE$X`\xDF\x97\x8DT\xFEf&quot;.\xF4\xFA\x9D\xB7\xFEl \xAF\xB9ғ\xFFs\xF7&amp;ϐ\x8BO\xB4T3p4K\xDAϮTlJ\x94@D\xF1\x8B\xD39\xF0\xC5i\xF0\xC2MQ\xB0\xB47\xB8ԁ\xAB\xD0hh4 \x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1Ѵ\xD7kl\\xE43\xC0\xB3\xD6G\xC0m\xD2`(R\xA7\xF2U@\xC7io\xBE{,V\xAC\x80Wn\x8Fn\xE7\xE7`\xA6 ^\xB9%
+qׯa\xA5\xCFٓN&gt;\xAE\x83\xF9\xF8\xF3\xEDq0\xA7\xFEƶ\xB3٫\xB7\xC6\xC0\xA1L8\xED}
+\x87\x8B\xE0\x96\xB1X`\xEFW\xCD\xEAPt\xB5\xD1\xE8\xBBW\xF4\xE0\x87Ҁ\xE7\xC6\xC5\xE7g\xA7r\xE0\x99c\xF0\x92MQ\xD2^j\xE3\xC6!,\xF5\x85\xC0\xFD\x8C9\x9Dv\x84ڍ\xA67D\xA3\xA1\xD104\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xA6mR3\xF3\xF4E\xDD\xD9Ur\x9A\xDD,\xF3*.\xE93\xC0\xD3\xD7G\x80\xAC\x926.\x82@\xB1\xD2E\xB9V/\xD7\xD8\xBA鑱\xD9 6E\xC1K\xB7\xC5\xB7\x89[&quot;#\xD8ǎ\x84\x81Յ\xDB\x9D\x9C&gt;l\x82\xC3\xD9
+p\xF2\xD6\xFB\xFBi\xB0tu`\xE9\xFDVgٮ\x95\x9Fݟ\xF1R
+8\xED}\xE7h\xAC\xF4\x86Vzz}w\x89\xD1H\xF6g*@\xAE&amp;\xDDj4\xEA]_?h\x82\xDBOdϊ\x8B\xCFg\xA5\x81t\xCB\xE9ґ\x9BCG\x92Aӆ\x97\xCE|\xE5\x9DTu\x9D\xA1\xD1\xD0hh4 \x8D\x86FC\xA3\xA1\xD1\xD0hh4\x84F\xC3g4f7\xB6\xDEzR3p\xE5\x80        3\xA2x\xF7\xCE8\x90\xF3\xF3\xB6x\xC4\xCA5 ;\xAB\xF53U\x8AN\xE3&quot;\xF5\xDF=\x9E\xEFܕ\xDC&amp;n\x89?9\x91W\xF4W\xF4\xB7{\\xA7\xFF\xBAt\xD3\xFDթ&lt;p\xF2}\x89\xDF\xF2\xE0\x91\xC3&amp;\xB8\x9F\xEDf\xBBb\xFEj&lt;\xE4\xA8qN\xA2\xC5x\xEB\xCE\x98S]G\xCD\xF1\\xDC8l\xDEx\xBF\x9F`\xA7\xA2?\xAFǮ \x83\xB5\xA1\xE0Y\xB1aFsg@\xD1&quot;\xEDǽG\xA8e4\x96\x88\xF1
+\x8D\x86FC\xA3ah44
+\x8D\x86FC\xA3\xA1\xD1\xD0h\xDA&amp;5~\xA3\xEB:,\xECI\xE2\xDAs\xAC\xF0\x85\xC0U&amp;\xB8a( \x9E\xB2&gt;޳3~p,\xFCF\x8C竀g\xE0\xC5gG\xA2~7\x91\x9D\xFDNň\xC7\xF35\xD0\x95\x8DR\xF5\xE1=Ip\x91?\xDA6\xBA\xD3G\xF4^\xC5w%A\xB8X\xCE\xDCn{\x92%\xF0\xB2\xADQp?\xF3\xE8\xF5\xFBz\xE8\xA0        v$\xCA\xC0i\xEF\xC5*\x80\x9BG#`\x81=\h4\xC1B
+\xBCjK\xC8^\xE7\xFA\xF1\xCF|\xD1\xEB\xBD&gt;sC\xECN\x94w;o\xCFtc\xBE~$d\xDBr\x9CF\xC5@\\xD19:C\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1ѐ.5\xE8\x80\xEB\xA5\xEF\xC2gj ?߹\x9B\x8E\x8C\xCA\xEC\xA6\xE3
+\x81\xAB p\xE3H&lt;i}\xFC\xF9\xF6\xF8\xEA\xC1Xʃc\xD9\xCA1g\xCFJvZ2\x95\x88\x94\xAA\xA0S\xDFc\xB1Z\xFFr$\x9E\xBD)
+\xC6b%\xD0\xEF\xEEH\xA6^\xBE9
+\x96\xF4\x97\xB4q\xAD1\xFDw\xA5\x9A\xEB\xDEt8s\x8Be+5\xF0\xBE\xBDI0\xEBz\x94\xFA\xBD,\xF1*޸5\xC6sU\xE0\xB4\xF7\xF2\x85)\xB0\xA27\xB4b\x91\x9F\xB8\xAB\x8C&amp;Q\xAE\x81O\xEEM\xA9u\xEC:\xA3\xD1\xFB\xED˷\xC5\xD7AhT~y:\xAE\xE97@\xD7\xEDQ\x84\xCFhh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44B\xA6?\xA3\xE9\x80\xC23e4\xDAe\xC4k\xF8\xF96\xD6t买\xFE\xFA\xF2&gt;&lt;z]\xFC٦(x\xE3\x8E8\xF8\xE2\x81\xB8+\x98{\x93e\x90\xAF\xD6\xCF\xDBݓX\xA9
+\xBE~(
+Ĉe\xCFy\xF3\x8E88\x95\xAF\x80\xCEx\xA7C\xE1&quot;\xB8i4 U}Ԡڳ\xFFσJ\xEDLũ\xDC\xF7\x8Eg\xC1\xF2\x9E\xE0\xF2\x9E\x99Pg\xB9O\xF1Ճ\x90.\xD7\xD2N7\xF9xն8XTO\x8Dܣ\xF8\xE1\xF1,\xB8\xB4ϸ\xB4 {8\xAF        \x80\xBFݕ\xF53g\xD82\xA7!\x91\x9A\xF6\x9BׅA\x97v\x9C \x8Db0\xA1\xD0_w\xCA3
+\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86FCh4.5\x9A\xC9\xF7\xC5\xFEM\xEF\xAB\xB1\x9B\x8E&gt;ۯ\xF2\x85\xC0\x9F\xAE \x83\xE7n\x8A\x827숃\x8Fܛ\xFF}*\xB6Ƌ V\xAA\xC5J4\x9D\x8E\xCAD\xBE
+&gt;\xB2'\xAE\xEA3\xAE:;\xE6\xD1#U\xD97\xFE\xF9Hd*u\xE0\xF6\xF7[\xAB+~t&lt; \xAE0@\xBC\xC6\xD6u\xF3\xDD; \x98\xAF\x9D\xDA\xC1CF/\x8F6=c`\xFD\x9De\xBE\xB83T\xB2\x85\x9D\x93\xFEP&lt;n4\xF2\xB8E\xF6p\xA1\xD1H\xED\x91H&lt;\xA0\xDFm\xB3\xF86\xDC7PE,\x97\xFB
+\xF0\xED#i\xC0\xB3}\xA3\xB2/U\xAF\xDA]\xB4G\x91f0\x9CRx\x83\xB0\xBC\xA6%54
+C\xA3\xA1\xD1\xD0hh44
+\x8D\x86\xD0h\l4\xEA\xBDp\x9D\xCD6ת\xD9M简B}\xFD\xA0        \x9E\xB3)
+\xFEjg|\xEA@\xDC~*6E\x8B T\xA8\x9E\xE7ݕC\x99
+\xF8\xD0\xEE$X\xD13\x8DW\x8F2A\x9FY\x9D\xF1ޓ\xA5x\xDF\xEE\xB0޻\xD0\xF2\xE3\xEE\xBA\xAC\x8B\x813\xB7ձL\xFC\xE5\x8E8\x982z\xB1ո&gt;b\xD8\xFBӕ\xFD\xCE\xEBr\xF0\xE1\xBDIp\x8970\x8B\xD9UF#        \xAA\xE0\x96\xB1\xE8\xA2!\xFDII}\xA97T\xF0rm\xCD\xC6Ez\x86|xo
+\xCC\xDA3\x84\x90\xF3#\xF3M\xFAc\x8AN\xE9uF\xA3\xA1\xD104
+\x8D\x86FC\xA3\xA1\xD1\xD0h\x8D\x86F\xE3Ĺ\xF9\xB6\xEA7ת\xD9\xFA ȼZ\xED;\xEC3\xC0s7F\xC0\xDBw%\x80\xAC\xBA\xF5\xFB@\xECJ\x94A\xBER\xCFW8\xD3qٞ(\x81\xFF\xDF\xDEy\x80Wr\xD5g_\xBBkoa\x8D\xB8`0\xC568\x94\xE0\xD84\xF0aJBqb0\xE1\xA3%`H\xE8&amp;        !\x84f\xD3[B TCB\x87PvW\xF7^ui\xA5m\xD2Vm\xEFU\xBAw\xE6\xF6\xDE\xEF\xDD\xEF=\xF3iG\xD6J\xABr\xCB\xCC\xDC\xF7}~\x8F=\xF2J\xBAw\xE6\xDCs\xCEo\xE6\xCC\xFF\xBCnk\xAC\xF0V̲\xEF\x9E|\xDFp\xDBWl        \xF1 w\x87\xD1x\xFC٦0h\xC2nq\xE6\xB1U+?\xBFu&quot;
+칟i\xA1\\x9F&gt;\x94S\x8E\x92\xF1\xFA\x97y5\xF0\x96m\xCEW\x80}^\xB9\iy\xEE\x860\xA8ټˁF#\xFD\xF0\xDF튁\xD0w\x8D3\xFE\xAA\x91(\x90\xB5\xB5\xEC\xF9k\xE9\xB5V\xB4\xFBW\xB02Y\xF2\xA4\x89y-Q4
+\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86FCj4n\xFAh\xA8w\xD7V8q\xA5\x96\x8C\x95\xC6l\xFFbo\ѩM\xB2\xCA\xA6 \xF2SNS\xAC\xEEf\xA93puW\xC8&gt;\x86ߟ\xBFςé(W\xAA\xE5
+\xA7        \x91#?.\x80Wn\x899_sj\x87\x96\xB9\xF7G\xF6%@\xACP\x89\xB9\xA5Fĺ@&lt;\xA5/jP\xDDwA\x9F\xA0w쌁\xB1Ly,c\xD3y\xD7O\xCEd\xC0\xCA\xF6\xB0\xBE\xFE՝\x90]Y\xB3\xE5*\xB0\xCFk\xFE\xDF\xF1,\xB8\xA1/j\xF6\xFC\xB2\x8D\xA6T\xA9\xA9\xFE\x98n\xED1\xDD-Q`\xC9\xDAq\xF0\xC0\xBE`\xFF_\x8F \x85\xF3\xE0\xD6\xC1 \xE0&gt;\x9B\xF5\xAB\xE3\xDA\xF7\xD8VL\xBCGW\xE9 \x8D\x86F\xC3\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0h-5\xF2|\x90\xFDۘ1{_\xEA        ٭\xF2\x8E\xCD\xF0\xDAm1\xF0\x91\xBD        \xF0\xA5C\xC9I\xFEe\xBCn[ ܾ! ̹\x93巹\xAA\xDDZM\xC7p\xBDe\xDE\xB8w$\xBEy&lt;
+$K\x92%\x8E\x8DtY
+\xF8\xBC\xC1X\xE0|ƨ O\xB2\xFF\xE8d\xD8s\x95\xD4\xC2\xF2\x95\xA3)p\xB97p\xF9\xE4J\xCB~^n\xEE\xD3AW0\xECy|6\x86 \xE0\xD6\xF5!`\xBD\x9Esi\x97\xFA\x83`\xB7\xBA\xCD\xEF\xDF\xAB}P\xB3\xCA4\xC9\xE9l\xDC2\xBAe0\xE4r\xA31z\xAA\xA7\xF4\xEA\xE0wcY\xE0\xB0\xBB\xAA\x90\xCA\xDBvN\xB8Pޗ\xE6\xF51\x9A\xC8b\xAE        ˵q\xE3H^\xE4
+\dL\x9C\x96M\xAC\x9F\xB4\xEE\x96\xEE\x92\xFA=\x85qܦ34
+C\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xD3JF\xE3\x9A\xCDh\xCEIM\x87\xAE\x90zn\xB6l{\xD2\xC6n\xE8\xD5\xC1\xDBwƀԄ\x8C+`.o\xF3d\xBA ~s&amp; \xEE\xDBR\xD9meL\xD7~r
+\x8Cw*kҼzd\xCA\xD5L\x99\xEB\xD0\xEA\x92D\xB1~3\x96\xB2\x83j
+\x9E7z\xD4 \x85\x80\xAC:pDZ
+\xE4Jཻ\xE3\xE0\xE2v\xFF\xC5
+/\x8C\xD5nNY#d\xB7\xE3#{\x80\xDE?\xD6j!7
+A\xA8P        lW\xE0Y\x83AP㕄\x8E5\x9Ar\xB5
+\xD8+}\x81\x95&gt;\xF7\xAEi1\xCE\xF8[v\xC4@ [8\xA1&amp;@\xD5 W\xAE\x82\xE9Ȕ\xAA'\xD4ՑU\xE5\xAB=\x81՞מͣڒ1#\xBA\xBA[\xB4&gt;n\xDB/ެx\xF7\xAE\xF8\x83\xE7m\x83?
+\x81\xFA\x83\xE0\xD2N
+L؍c獽q\x85\x8B\xEA6\xD3hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x9A\xD64\x97ݣ9;Y\xC3Y\xEA\xB9\xD9l6\xBEܫ\xB8g$\xFA\x83y \xF7\x85Y\xB1\xF3\xFB\xF1,\xB8cc\x98\xA3\x8C[w@\xF3&lt;\x92\xC7vi\xE0\xE1SP\xA8T \xACP\xEBx\xB5\xB8y j\xBC\xCE\xC4h\xA5o\xDB\x81\\xB8\xE3\x88m\x8B\xC0\xCB7\x85@CG
+\xE3\xEC\xBC~kN\x81ݎ\x8CxֿOy\xB5r\x85\xE7\x9D;c\xEC\xF0:e\xE5\xDBOO\xA5\xC1\xB5=:\xA8q\xCBw\xAC\xD1Hd\xF5\xE0\xD3\xFA\x83\xA0        \xCB2ʬ\xF4*\xBEu&lt;
+\x9Cr^\xE0.`K\xB4~}&amp;\x9CүI\x95\xC0\xBD[\xA3\xA0\x85\xF6o]\xE0\xFCG\xCDޯ\xE8\xD2\xC0\xCB6E\xC0w\x8E\xA7\x81\xEC#\x90*W\x81\xF4`ճ\xE7\x90\xEF\x84\xF2eЧ\xE7\xC1\xA7\xF7'\xC1\xCD!`֞2\xAF;\xCA(\xFB\x92
+\xE3.\x86\xFBf_4
+\x84FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xE3d\xA3\xB1\xD4s\xB3M \x94'\xB3޴-
+\xF6'\x8B\xFBk=Ӑ\xA7\xFF\x8E\xA6K\xE0}{\xE2`\x957\xB0\xCA\xEB\x{1BBDD6}uh\xF2\xFCfG0\xEC\xFF,\xA4\xB3&quot;\xEB͞\xD8|b_͍Fq\xA9O\xF1\x85\xC3I\xB0xǷ\xCFڏ\xB5\x81xR\x8F\xE45\xC6'\xE2\xBA.
+H
+{\x9F\xEEP,\xF7\xF8\xC1e]\xF8Ή4\xB0\xCF        \xA9 -=\xB68W\x8D\xFBR\x87\x8D̎޸-\x96\xAC\xF3/qY}\xE3\xEC\xDC5\xFBE\xE0\x94\xF3\x92\xABT\xC1w\x8F\xA7\xC1۶G\xC1\xBEdq_\xB2\xE8\x94&gt;\xF3cY \xD7~\xB9\xF6\xEC&lt;3I\x83? \x82\xEF\x9DH\x83p\xA1J\xD5ji\xFE\x93\xE9oeG\x8C\xAB\xBAu\xE0\x98\x9A\xCF\xF2tIOL\xE1u[\xE9f
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xD3RF\xE3\xD6        \x98z\xA7\xDDQ\x85\xE6\xDB\xC6ׯ\x8E\x80\xBD\x89\xE2\xDE\xFA\xF7\x8Dz\xAE\xBEp0dE\x96kkL\x83\xF7\x8F\xC6\xC0\x99l        \xD0Dj\x95ߎe\x81&lt;KX\x97z\xAD\xC6\xEF|\xC6@\xAC\xCFw7Y\xF2\xEF\xC73@\xEA\xB47h\x8C0\xAAt~\xE2P\xD8\xF3\xC8\xC8,\xEBy\x83Ap}\x9Fb[\xAC\xEC\xF3
+\xE5\xEAЍ\xC1\xEA\xD8\xE6\x9Dk4\x92u\x81,0מ\xB9\xA3\x92\xB3T\xEF\xF1\xF8\xC1wO\xA6\x81\xDDj\x89Ϟt\xA9
+ޱ#
+Vw@o\xB8\x9C\xF2\xFA\xFD\xB92\x90\xE7\xD9[bwȹ\xAF\x814\x9E&amp;x\xE3\xD6(\xD8/\x82\xDA^\xFFI\x96*\xE0'\xA73\xE0\xA9\xC1\xA78\xE1m\xBDs\xE1\xBABgS\xEE\xD1\xD0hh4 \x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8DơR\x83\xD0Q4\xB7\x86\xB3\xF1t۵\xDD\xE8 \xE5A#B\xAAT?&lt;\x95Wwi\xC0\xE5=\x83am\xD4\xA1\xFC@(\x96q\x8A\xD1-s\xE9:?x\xF9\x9608\x95-\x9FrB\xADԹD*\xBFg44FOj\xFF\xE5\xB6(\x90
+\xAEv;&amp;\x91BH\xE0l\x81X\xB1
+l\xE1\xA1F\xED\x82_\x9Dɀ+\xBB5P\x97\xE7\x94]a4\xF9J\xBCg4\xFEU\x8Bہ\xCF\xCF0j\xBFf8 \xEA\xB1&gt;\xBC\xDE9\x93+\x83'\xF7\x9F&lt;Q\xB1\xE1KGR U\xAC\xA4\x8A\x8E\xA9\xBB\xB2#^\xCF\x97\xB4\xABE\xB4F\xB9.\xFD\xE9I \xA3I\xFD\x8E\xBCX\xD2\xCF\xCFdA]jոnsL\xE1.\x9E\x80\xD1hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\xD7\x8D\xFBv\xA29g4\x93O \xC9n\x9BMj\x87+|\xF0\xFE\xDDq\x90(U\xCD\xD8\xE5Jv\xDA\xAF\xB9\xA6K\xBB\xA6Ksw]ċ\xD7\xF9\xC1\xCFƲ\x80&amp;\xE2\xA3\xB1\xCC\xF1.\xF6\xC0G\xF7'@\xB1Z-\xBA\xA5\xC4ÞDH}\xF5\xBA{\x8D\xF1\x9B\xE5:\x86\xAC&quot;\xB0\xDBѐ\x95&lt;\xFF\xE3ς\xBF\x8D\xE9\xA9\xEC\xF0\xDAb\xC5
+x\xFDHԥ&amp;\x80\x8B\x8CƜƊ\xE0\xB9 \xC6\xFB\x906|m\xCF\xE3\xBA4\xF0\xBF\xFE\xB0\xE7\xB53E\xEA\xE1\xF4\xF3\xE0\xB2.\x88Ѽv$\x8E\xA6J\xC0)\xEFE\xFA\x87_\x8Fe\x81\xB9r\xDEk\xE7yUJ\xAE\x87\xEDH
+\xC4
+\x95X\xA3vΗ\xAB\xE0\xABG\x93\xC0\xBCn\xCFy\xE3@R\xE1\xD2*gS\xA4\x86FC\xA3ah44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4\xCE5c\xA2\xB6\xAE\x88\xA2I\xB5/\xED\xD2AO0\x9A[OX\xD6&lt;|2
+\xAE\xEDҮuq\xFF`\x8C\xA7?&lt;\x9D4\x87\x8D\xA5\xC2\xC3u=:\xF8\xE9\xE94p\xC71\x94ڤ\xB2W\xE9{\xF4'N\xD6s\xAE\x9F\xD7\xF5޷7\xECY\xFBL\xB6 \xBCz+gm\xB2(f4Q\xD7v렎㸋\x8CF\xF2\xFDp]\x976\xBE\x9F\xC1\x8B\xBD\x8AOHy\xBE\xDEY\xC7_\xEA\x8D\xF1`\xAC\xEEԀ\xB4\xDE+:\xE0\xF7\xFEp\xD6;\x92y˷O\xA4\x81\xAD\xE7\xD5u\x98\xC3&lt;\xB3?~~: \xC5J\xA2\x9Dc\xB8P\xEF\x8D\x9B~\xA2\xD2
+\xAF\xDF\xC5K\xCEh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6Rh\xEBM(_\xB1\xD9\xF0\xA9\xE7\x85\x80T#\xB4\xC3)V\xAA\xE0'3\xE0\xBAn
+\xB8\xD0k\x8C\xDE\xE0\xE1\xD3هi45s\xD7T5r\xDD6\xA3\xF1&quot;pǑ\x94}\xD0\xFE\xFDX\\xE4 \x80:ϵ\xE3\xE0\xA5[&quot;`o\xA2\xECv4dm\x89\xD40\xE3knd\xE5\xDBw\x8E\xA7\xC1\xCA
+\xD0h\xE6\x9EH\xBE&gt;s(        .\xEF\xCC?\xA5\xB71\xCE\xC5\xB7E\xC1\xC9t8\xF1\xF8\x8FeK\xE0O7\x86\xC02\x8F\x99\x9A\x84\xEF\xCE\xE8\xFEq_ȊJg\xBD/\xF9T~\xF6P\١]\xD9\xE1F\xAF\xB1\xB4\xC3\x86\xC0\xFC9p\xD6\xDD\xE2\xDCЫ\xF3N\x81\x8EXgH\xD1a\xB0\xCEͅ\xCEh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6F\xE3o\xEB\x89)Y\xC3\xD9XI\xB2ܧ\x81\xF7\xEC\x8A\xAF\xEDsXd\xFD\xC9\xF7O\xA6\xC1\xBA\xB5'\xB8\xCBk\xAE\xF4)~\xC8\x9A\x88#\x8Dfb\xB7,\xB0\xC4\xBD3\xF9\d\xBD\x93(V\xC1\xDBvF\x81\xACu\xA9\xCBm\xF4EWw\xE9\xE0'2\x80-y\xF6h\xB92\xB8g8\x96y5P\xEF\x95\xC9n2\x89\\xC1\xFB\xDB\xD1X\xB2\xCEl\xBA\xBF\xB3|⌳\xF0\x9A\x91\xD8/'s\xB92С\xE7\xC0\xE5\x9D\xDA\xE5\x9DS\xE7\xFC\xC6\xD77\xF7\xEB`0\ ;\xF2=\x86\xF3\xF0\x8D\xA3ipu\xB7dU\xAD\xE3\xAB:K=\xAF\xE2\xB5#Q\xB0&gt;Tv\xEA+\xE0\xED;c\xC0FsE\xB9[a\xB4\xED\xD6\xA1h44\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xE3`\xA3\x91\xF7\xDEV4\xD0h.\xED\xD4\xC0\x97\xA5\x80&lt;\xAFg\xB7##\x95
+\xBEw&quot;
+L\xAF1\xEEM;}/\xAAWm\x89\x80\xFD\x89\xD2\xFED\xE9,\xE3\\xA3\xB1\x9C\xD3\xD5\xF0\x8Dci +'\xDDqT&amp;\x8B\xE0%\x9B\xC2\xC0\x9C\xFB\xD5㞾Q\xF4]\xA3q Oڲ=ϔ\xE1XH\xC5Ժ\xAFlq\xA9\xD1X\xDB\xF6;wF\xC1\xA5`\xA3\xB9\xD0:\xFF$\xAF\x8E\x80\xDD\xF1\xE2n'\xAFk\x8D+\xE0\xF6\xC6\xC1R_Li\xBD\x96\xB5g\xB2\xDBf\xB1\-\x96\xD9\x94+\x8A\x87Oe\xC0\xEDCA`5Sg\xCDU\xA4g~Ro\xFC\xE3\xDE88\x98,{\xF9\xAFMyͶ8\x86볊\xA8\xDBL\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4\xEE\x91\xCC\xFA\x93\x8A\xB6\xD5+\xBA4\xF0\xED\xE3i`\xEBY\x84\xF1ܙ\xEC\xBF\xF9\xAC\x98=\x83=\xD7        \xCCj\x91\xCB\xDA\xFD\xE0[\xC7\xD3 [\xAAfK\x9C\xB99\xDFh\xCC*
+\xA9x\xDCʃ\xE6\xD6B\xAFm\xD6\xFA\xB3\xE0\xA9}:\xA8˱5Ơ\xE7o \x81\x9D\xB1&quot;`{\x9E\x9E\\xA9
+\xBE~4\x96xK\xBC\xCD\xE23\x9E+\x81OH\x80'\xF4\xE8\xC0\x9C5~|\x91\xBFh\xFCu\xA9Z\xF0W;c`O\xBC\xB8\xC7\xF9UG\xF6%K\xE0A0\xE3\xEE\xBDF{\xBBcS\x8CƊ\xA3\xCE\xEF6\x85\xF3@\xD6$_߭\xB3u\xD9\xD3n,sy\x87^\xBC9 ~|:\xEC_-\xFCw\xE3YpYg4y\xA5_GP\xD1Q\xF8\xB4V\xAAh44\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\x86F\xE3d\xA3o\xEB\x8D)S\xC0b4\xDF:\x96NY\xE9ѩ\xE7\xC0\xCB6\x85\xC1J_`\xA5/\xE0\x80;\xB9\xC6'\xEB&quot;\x837l\x8D\x80\xA3\xE9\xE0 \xCD%F3\xA5&quot;\xBA➑8\x9E.wf\x85ՙ&quot;\xF7\xF4/\xE9\xD0@\x8D\x8F\xB0\xB1\x92\xED\xAA.
+\xFC\xEB\x91`{\x9E\x9E\xE3\xE9\xF8\xF3Ma0\xA5\xD5\xD1h\x9D|\xB9
+~x*
+\x9E\xBF1 V\xFB\xAB'\xC7\x99\xE9\xD5\xE3h[\xD6#I\xFD\x8Dg\xAD\x82\x87\xA6@\xBCXN?\xB6\xB2
+\xF7?Oe\x81\xF5\xFAόce\xBB|\xF6p
+\xD8s=\xFC|\x93.V\xC1\x8FNf\xC0+\x87#\xE0\xBAn\xFD\xBAɽq\xEB\xDD\xC6f\xDD}\xC0jXWvj\xE0\xF6\x8Da\xF0\xB9CIp0UN9βS\xBC\xEC\xFB\xD9d\xA3\xE9\x8B+\x8Cq\xAD5G+
+\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD18\xD8h\xBC~\x85ܥj\x88\xD1\٥٩\xCDYO\xE3K\x95\xC0{w\xC7\xC1㺵\xC7M&gt;!\xDB\xC8&gt;a\xCE=\xC62Oܻ5\x8E\xA4\x8A\x80s3ʹhn\x91\xCDq\xD9Xu\xF0\x8E]q\xB0|\x9D\xF9\xBAZ֌\xB1\xF5\xDE\xEDQP\xA8T \xAC05}\xA1&lt;xt\x87\xD4˵\x8C\xD1Xs*S\xDD\xCF \x81\xC7ti\xC0\xAC\x89a\x9DNwf\xC2\xFA/-\xBFA\xEA\xF3&lt;m \xEE\xDF\xC3y`\x87\xBD\k\x95\xFD\xC9&quot;x\xF9\xA6\xF0\xCB\xE7h\xE2\xC6\xF1\xB9u0z\x83y\xE0\xA6\xD6%&gt;\x91\xB1%n\xB9¼\xD4X:\xB5.\xC4&lt;\xDA\xD8L\xED\xCD\xDA\xEA\xCC\x95\x8A\xCB:5\xF0\xE4\xBE \x8B\xF9\xE2\xA1$p\xEE\xD7\xDEP&lt;s \xF8́f\xCD@ZA\xA3\xA1\xD1\xD0h
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44'M+X\x8D\xAB`\xB4\xE7˻\xB4\xCB'\xD6x\xE4*՜\xD3\xE62W\xFCř \xB8}(\xCC}\xBB\xAC\x9F\xE8F\xB6\xEAi=\x89\xE1\xFB\xB6F\xEES+͊\xC0)\xC7Vv8uVb[\x8D\xA5%\ݥ\x81_\x8De\x81OwdW\xBC^\xB1%j|\x9C\x8D\xD1\xF6ك!\xB05R\xB4I\xA6X_8\x9C3&gt;UM\xA3\xA9idG\xC8#\xA9\xF8\xF7\xA3)\xF0\x8A\xCDa\xF0ľ xL\xB7.\xEB\xD2\xC0\xAA\xC52o\d`\xFDze\x87ݩ\x90\x9Fz|\xAF\xE2E\xC3\xE03`{\xAC\x8A\xD5j\xB1\xEA*\x8B\x97~O\xEA\xCF{D6\xDA\xDE\xF6Ɓ[+\xBA\xE7ʊm\xB1&quot;\xF8\xEA\xE1\x90u\xE97\xF6\xC1\xB5=:\x90Y\x84\x98\xAF\xB4%k\xEB\xB2b\xFD\xFE\xA3:\xB4GM\xB4:q\xA5kztp}oܱ):\x98R\xC7&amp;R\xA8\xA7W\xB3\xF1\xE9ypS\xAF\x9Af4\xBA\xA23\xA8\xA0\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x8DC\x8DF=O\x94PԻ&gt;\x80q\xAE\x97\xFBo\xDF\xC9R8\xB7\xCF \xE4*\xE0{\xC7\xD3\xE0\xFF \x85\xC0%\x9D\xB8\xD8\xE7q\x9C\xC5\xCC
+\xA6\xDC\xDB\xD4o\x96\xFB\xC5ғ&lt;g0\xA4\xEAB\xB4X\xCE:\xAA2\x8E\x86\xF2\x80F\xB3\x98\xD9\xE0\xCB6\x86\x81\xFBf\x83?;\x9DR\xAD\xBAfun\x8D\xCF\xD1\xD5\xDD:\xF8\xE6\xD1\xA0\xCBHdW\xBB;\xB7D\x8D\xA6\xF1\x91k;\x89RN\x97\x81ԉ\xFD\x8Fc)\xF0O\xFB\xE0/G\xA2ྭ\x8A7\xFC\xD56\xC5\xBB\xE3\xE0+GR\xE0\xB7g\xB2`\xB2b\xA5
+p\xF7~\xB2\xFBE\xF0\xEA-0\xEF^\xC2\xE8
+\x9E\xDA\xBF\xCBw\xB71Yg\x9B*)\xC6re\xB0)Z\xDF?\x91R\xB3\xFDC{\xE2\xE0\xF5\xC3Q -\xCD\xCAFoަ\xF8\xC4\xFE\xF8\xDA\xD1\xF8\xAFS\xD0̃\xD3\xD92H\x94И\xAB\xEEk{\xDF&gt;\x95\xCB֎/k\xE2&gt;\xECR\xC0h\xED\xB9h44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6\xD9R\xE3\xD3\xDBzb\x8A\x86\xAC=\xBBu0\x82\xF9
+pG\x9F0\x96\xAB\x80ߎ\xE5\xC0\x87vǁT\xF3\x83[j`\xEEO7\xDDP\xE6\x82\xF1S\xE2/r\x9F\xF7\xB1]\xB8w$~|*
+\x8EgJ@*\x82:\xF1H\xAE
+\xE4\xC0\x83\x80F\xB3\xA4\xE9\x87\xF6$@4_\x89:\xFFS&amp;ɕ\xAB\xE0}{\xA0m͸\xA2FGli\xBB\xDC=\xA9R%U\xAApP\xF8\xF5x\xAC\xF4Vz\xBBs\x8Df\xD6+i\xD2\xC3'K\x8Ap\xA16\x96\xEED\x8C/&amp;\xBFN\xB2F\xDAM\xABO\xE74\xC3&lt;\x99\xCB\xDB\xFD\xCB\xBA\xEC\x92u~\xF0ʑ(8\x93-\x81Vki2\xAB\x91\xFE6Q\xACk\xEB\xB2b\xFD\xBE\x98\x91\xFC\x94\xB3V\x8F/&amp;N\x81\xB65~E\xB3\xFD\xA1\x9C\xC2C\x9D\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\xE7M\xFB\xB8yLb4\x8F\xE9\xD6@\xA7\x96\xF2,\xA4;&quot;\xEFE&gt;\xE3\x87R%\xD0*\x80oK\x83\xF6ā\xACxɆx\xEE\xA0⒎0\xEF\x8F3\x87\xEB{t\xF0\xC2
+!p\x87\xC1\xDBw\xC4\xC0\x83\x93\xE0'\xA73`8V\xE3\xD92pz\xEF!\xAF\xFF\x81}        \xF0\xAA\x91\xA0\xD1,~\xEF\xC8K;@V!\xBA\xA9\xB3\xEA\xD4\xF3\xE0\x8F\xFB\x83\xC0\\xD5Y\xA3Y\xF4M\xFDA\xB0!\x94\xDFʷ\xF2p \xB5^\xFFi4\xA1U\xD3h\x98e\xA2^\xB3%̊\xC1 \x9C\xA5(V\xF84\xF0\xF1\xFD        P\xA9V+U\xD6ug\xA6$\x98\xAB\x80w튃\xA6\x8D\xFE\x9Da\x83\xE0\x99&quot;54
+\x8D\x86FC\xA3\xA1\xD1\xD0h
+\x8D\x86\xA1\xD18ZjpX\xBAŠ:\xD7\x90g\xE7\xFF~O$\x8BU\xE0\xEE+w\xFFe\x95\xDD\xF1tH\x96\xC0\xEED F
+@ܧ'\xAC[ٗ,\xED3\xE7g\xB2e 3
+79\xA0dK\xA4n\xE8\xD3\xC1\xCBF&quot;/\xA3\xD1԰.\xF1\xFA \xE8\xD1\xF3\xC0\xAD%]\xAC\x82\xEEM\x80E\xCD[\xA6\xCDad\xF7\xB7/N\x82r\xB5Zn\xD59\xCCh\xBC\xA4np\xEA\x91\xD2h\x98y\xA6T\xAD\x82\xCFN\x82՞\xC0jO\xCD\xDA\xE1\x93zu\xF0\xF3\xD3\xC0\xE3\xCCX#unY5\xABT3\xEF]53
+\xCF8\xE0y\xA4\xCE\xD0hh44
+\x8D\x86FC\xA3ah44\xC6!F\xC3\xD3q\xA9񌵭\xCF(\xEA|\x96x\xFC\xE0I}:\xD8)l\xE0\xAEv\xAD\xB9\x9B\xFF\xD0\xE1$h\xFB\x9F1p\xE7\xB6(\xA0\xD1\xD4\xEA\xEA\x81&lt;\xE5z\xDF\xF6(p\xD3S\xAE?=\x93\xAB\xBC\x81U\xDEZ&lt;\xB7n\xFC\x86e\xEB/\xDAr\xF5\xA05?\x95?˂˼\x81˚W\x81\x9CF\xC3\xCC=\x9Dz\xDCا\x83\x9A\xF5\xC3ҫ\xBF\xED\xB9C! {\x92\xF2h3\xB2N\xFE\xE3`15(j\xB1\xAB&amp;כ\xCD*54\x86FC\xA3\xA1\xD1\xD0hh4 \x8D\x86F\xC3\xD0h\x9Ck4\xB2\xEAL\x8EU\x9D\xEBH\x8F\xF1\xC1=q\x90*VSE&gt;y\xD7r\xE9
+\xE6\xC03\x82\xA0\xED\xF7c\xE0\xEEmѻi4\xB5\xFE\xAC]\xEE
+\x809\x98\xEEX\xB5\xB8&gt;\x9C7\xF7A\xCDVFg\xF0\xAA\x8CD #\xAD7\x97\x8E*\xC0\\xD1W\xD3\xFA\xD84\xA6\xD1re\xF0֝1P\xB35\xA8\xD3\xFAϥ\x9E\xB8s$
+\x8E\xA6ʀG\xBE\x95\xB31\\xB7
+\x85@]Z\xDD\\xE8O*\xF8
+\x8D\x86\xA1\xD1\xD0hh44
+C\xA3\xA1\xD10N6\x9E\x8E HM\xFBx\xDB\xFA\xB4\xA2!\xABb\xAE\xEB\xD6\xC1oƲ\xA0T\xA9\x96*\x{11A588}?W\xB2\xCA\xEC\xFE0h4u\xC1\x98\x9D&gt;\xBEWkY\xE0\xF4\xF6\xB3/QwG@\xCDj8U\xAFա\x81O\xECO\xD9-\xAEu&gt;\x95C\xA1&lt;\x90\xAA\xF25;\xAA4\xA6\xA9V_&gt;\x9AWwj\xA0\x8E-ּ\xAB\xF8\xDB\xD18\x90=xZ-\x85r|do\xAC\xF0\xF8Wx\xFCM\xA8\x9D\xE2\xD3\xDDE\xBB\x9F'\xE5\xC2RC\xA3ah44
+\x8D\x86F\xC3\xD0hh4\x8C-\x8D\x86gdNF\xD3W\xF84E\x9D\x8DF\xAA\xDE=(\xB6D [8~\xB9=\x99R|\xF6P\թ]59\xD1h\xB2\xEDe\x9B\xC3\xE0p\xB2\x9CۊNeJ\xE0;\xA3\xA0vF#=\x92\xFAmR\xF5\xFAt\xB6 Z\xE7\xB3\xF9\x8Dc)\xB0\xCA\xE3Mk\xA54fYȁ\xA7\xF4\xE9\xA0m\x8D_ѐ\x9D\x8BW\xF9\xE0\x9F$\xBD\xA6\xD5\xF2\xBB\xF1,\xB8\xB1WM\xF1eN\xDES\xA3\xCF\x8D\x86\xA1\xD1\xD0hh44
+C\xA3\xA1\xD105\x9E\x8EyH
+&gt;\xBC
+\{&amp;\xEB\x8E޴=
+NdJ\x80\xA7\xC0\xAD\xF9\xE5\x99 xb\x8F\xA6&lt;UG\xA3i\x88Ѭ\xF6i\xE0\xFD\xBB\xE3\xC0\xB9\xFB\xDBF
+\xF0\xFB\xA0ƫM\x8C\xF3xI\xA7\xBA\x83y\x80)\x8B\xEBg-\xB2 \xF0\xFD\xBB\xE3\xA0i5k4U\x83|\xA5
+ܷ\xB2ݲ'Q\xB7o\x81&amp;&lt;\x97-\xBB\x84{R\xBF\x97^\xD3
+\xD9/\x82\xA6\xB5:Vl^\xBC\xD4\xD0h
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x8Dm\x8C\xA6\xAD\x9D\xF7h\xE6/5}\x89\xBAWr\x9E\xB6\xDE\xE3\xFE\xD1\xCBVO\x81\x9B\xD2ʃ\xE7
+\x85\xC0yf\xA1\x86\xD1ܳ-z\x8Fs\x8C\xE6wcYpc\xF0FG\x8De\xC6xy\xA7~p&quot;
+\x9Cؖ2\xE5*x\xF0PX\xAB\xC1\xD7\xCA\xFBV\xF84 \xF5\x92\xA5*p\xF7gs0\x94\xCF\xDFMn\xC94\x9At\xB9
+&lt;\x81H\x95\xAA\xA9\x95\xA6.\x91\xB5\xA6\xF7 G\xC0\x92v\xFF\x92\xF6f&lt;\x97m\xF5\x8F||\xC85\x9E#\xF7\xE5@\xB2\xEE        \xA9\xE3݄V'\xF3\xF0\xEE\xA8\xC2\xA1x^h4 \x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\xE3P\xA3\xE1IY\xB8\xD44\xA6J\xC0\xB4\xC5\xFD\xA3qp:S&lt; \xEEp\x99\xDBC\xB7\xCDR\xD60\x9A\xBB\xB6E\x81T\xE6\xB4~}&amp; \x9E\xD2\x8E1˧\xEC\xE6\xEC\x8C\x80\xB3Z\xD4x\xB6 \xDE=5^u\xE69\xC7s\x83\xE0H\xBA\xDC\xFD        7\xBC\xC8\xE3\xBF\xC8ӼY\xA2c\x8D&amp;\x90\xAF\x80\xBB\x87#`s\xB4\xB0\x99\xD5 j\x9D`\xBE \xD8\x97th\xA0i\xD5\xC5g\\x81\x96Z\xAEx\xBE\xDC\xE22%p\xD7p4\xCDeYifԦ\xE0y\xA1\xD104
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4 \x8D\xA6u\xA5ƫ\x99dz\x81\xBD\xC4R\x8Fܷ-
+\xB6G\x8B\x80O\:+r\xBEB\xF9\xE52Ap\x81\xD5A\xC6\xF3\xC8/\x8E\x80T\xB1\xEC\xFF\xBFu4\xAE\xE9ց-F\xD8y~ʖyo\xD9\xB2\xE7\xA9SZױt        \xBCy{\xD4\xE5\xC8\xBFsy\x87~\xEF\xCF\xB7\xF6?\xB1Bܻ=\x9A\\xC0\xB1F3\x96+\x83\xC7\xF7\xC1_m\x8B\x82\xB1LpX|\xF4|Luc\xD3\x9B\xF5\xA5+}\x8A\xBF\xD9\xBBbE\xE0\x94\xEBr\xCC\xF4y\xCB\xEEDܹ%d\x94l\xB2\xCB\xF8
+\xCF8O\x8D\x86\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3ah4\xAD.5\xC1s4r\xC6\xD5\xEE\xCF\xDBk\xFD9P\xA8T {\xF2        \xD6i9 ;\xCA\xDD\xD2 \xF4        FE\xC4n
+\x99\xAF\xDA\xFF\x9D~t_\x98\xE3ls\xD7\xEA,\xE2S\xB6\xAAC\xF1\xE5#I\x90*U\x80\xFD\x8F\xFCH\xB4\xFE\xCFP\xD4\xE5\xC8[~\xE7{G\xE3@ϗ\x81\xFB&gt;\xAD&gt;-\x9E\xB5&gt;l\xB1rҁF\xA3\xE5+\xE0\xAA\\xB4\xCE\xBEv$
+\xB2\xA5j\x96U\xEE2\xEA\xF7\xC0\x9EX\xDD\xB6s\x99i=\xC6E\xED~\xF0\xE2\x8DaС偌\x86&lt;\x9B\xF6O\xBE\r\xFD\xEAY냠\xC9+ͼ\x9A\xA2+\xAC0\xBE\xC3sD\xA3ah44
+\x8D\x86FC\xA3\xA1\xD1\xD0h\x87
+OP\x8D\xA53R1\x9F\xAEh`/!\xC8\xF3\xD7L-_\xD6\xF2\xAC`\xBB$\x8A\xF0\x8Dc)pm\x8F\xCC1h.}\x821\x93\xB9y \xA4\xAA\x9Dߩ\xAC(x\xF1\xE6X\xB2v8\xCCe\xA6\xAC\xB0R\xDCЫ\x9F\x9E\xF6oi\xBF\xF5g\xC1*o`U]\xD7\xBF\xF9\xFDA0\x9A(\xF7}f?y0        \x96{˛\xB8\xB2\xC2Fsm\xAF\xDA\xD6\xF8\xC1u=\xF8\xE5\x99,07\xE0d\xE6\x9C\xE3\xE9\xF8\xF0\x9E8Xݡ\xAD\xB6\xE1J\xB3YW\xAB\xCA\xE7\xE8\x86&gt;|\xE1p$\x8B\x95d\x91\xABm\xA9;!\xD5Q\xAE\xEEѯ\xEE\xD1k\xBC#\xC0\xC2\xE8\x89*X
+\xA0~RC\xA3ah44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44GK\xCD\xE4\x93JrG\xAC\x91^c\xB4\xB1\xCB:5p\xD7H\xC8\xFE\x86|\xFE\xCE9\x94,\x82\xF7\x8C\xC6\xC0c\xBB4`\xAE`\x99{\x9F`\xFCKY\xC1\xF5/\xFB\xC0\xCE\xEFw4^7
+\x81\xAC\x97s\xB0\xD1X\xBC\xE6\x9B\xC2\xC0\xCE\xF5\x8A\xD3\xC5*\xF8\xE7\xFDIP\xF7UR\xB2\x92ī\xF8\xEDx\xB8\xE93+\xABz^56jÎ5\x9A\xEBzu`\xB6Ic\xB4zr\xAF~5\x96#\xE6ԯ\xD7
+\xEE\x83\x89ռƊe\xAE\xE6\x956pEg\xBCeGl\xE7ϲR\xACV\xC1H\xDDu\x99[\xCE{\xDER\x97\xFD4\x8D{\x9D\xBA\x82FC\xA3ah44
+\x8D\x86FC\xA3\xA1\xD1\xD0h'
+OV}\xA5F\xEA\xC85\xB2\x9E\xF3y\xEE\xEA*n\xE8 \x82w\x8F\xC6A\x8F\x9E\xEF\xD1\xD9W44\x99R&lt;|2^\xB41V\xF8`Q\xF3Lcf\xF5g\x9B# S\xAE\xBB\xBD몑\xEFO\x83\xAB\xBA\xF5\xABW\xB7y\xF6ٻ\xC1?\xEDK\x80`\xBE\xECv\xFC7G
+\xE0\x83\xA1\xA8\xDDZ\xEB\xBCŜ\x99(&gt;\xBC'B\xF9J(\xEF\x92\xD5#k\xFCYpS\xD8hXw\x8D\xB4\xE3\xEB\xA7\xF4\xE9\xE0\x97c\xD9_\xD2kf\xCE\xEF\xFDY\xF0\x82
+!`Z\x8CSV\x9A\xCDa\xC6&quot;Ϙ\xDF2\x9F9\x98Gӥ\xA3n߷מ\xD9-\x80\xF7\x9B\xFAt`\x8E\xE0\xF6\xC7\xFB\xE2
+ޝ\xA1\xD104
+\x8D\x86FC\xA3\xA1\xD1\xD0hh4\x8C\x93\x8D\x86'\xABAR\xE37k\xCA5\xB2J\xC0\xF4\x99\x86e\xEC\xB8e}\xBCwwH=R&gt;\x8FY\x8F\xC8\xFES\xDDz\xBC{W&lt;\xA1[檕\xC5߫5\xCE\xE9\xE3{u\xB0֟v;\xD1B\xBCts\\xE4\xF1_\xE4\xF1;\xB2n󬟬\xAB;5\xF0\xB3\xB1\xEC\xCF\xEC4+\x94\xAB@\x9Ed_\xD9\xEE_ٰ\xD1\xC7\xF2\x9C\xEF\xE6h\xB8\xE3\xB3\xFC\x81=q\xB0\xD2X\xE9        ب
+\xBB\xC3h\xA6\xBD\xA3{u\xF0\xF9#)ʗC\xACls\xF6\xEC\xA9L        &lt;x(\x9E֧\x83\x9A\x8D#\xF6\\x87f\xBC\xBBG\xFB\xE0\xA5[&quot;\xE0;\xC7\xD3 \x92/G\xD8\xEA\x99\xE1p|d_H\xCD\xFF\x8B\xBD\x81\x8B'\xAE\xA0ڣ\xBD\xF9}        Eg\xF0\xAC5Tjh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6\xD1R\x83\xB9\o\a\x9B\xBEBƎ[\xD6\xC1\x87\xF7&amp;\x80\xAC\xAC\x90\xAA\xC2&lt;e \x9CI\xBB\x9Av\xEA9\xF0\xA1}        p\xEB\xFA0\xEF\xD2\xD6v\xBD\x8Aq6/\xF6\xF8\xC1+\xB7D\x80}\xD6&gt;\x89&quot;\xF7x\xAC\xEC\xD0V\xAA\x9A\xA2\xAEXo6ìR\xD6Hl\x89\xB6\xD8cV\xB96\x90Re\xBA\xA1\xAB\xA4,\xD7O\xBE}&quot;J\x95j\xC9ɻ\xE6r\xF0\xA2\x8Da`\xBB\xBA\xEE3\xCBz\xDAK|\xF0\xEE\xD1pʻ\xABm\x92\x85
+\xF8\xC9\xE94\xB8{$\xCC\xFA\xCC2\xE7,\xF2~\xAF\xE9\xD6\xC0}\xDBc\xE0'\xA7\xB3\xE0D\xBAt\x82\xAB\xD1\x97P\xAE\xE4\xCA\xF6?\xECO\x80\xFF;\xE6x\xBDf\a7k\xEE +\xE4Nכ\xD1hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\xB3\xAF\xE9
+\x99^c\x9F*\x8B\xEB\xFC\x93\xDCܯA\xBEw2
+FcE\x90+UOߌs\x9Elt\xE8y }\x82\xAC\xEB3l\xBD\xEF\xD5=\x8F\xD4\xF8\xD4\xC1$\xA8T\xAB\x95f\xE9\xDE)\x80g \x81K\x9EZ\x9D\xA3\xE7\xBFgkJA\xB3\x8E\xFC\xCEx\xBCdS4a\xE6c\xA9\xC5\xFA\x8E10\x96)\xE7~\xBA׎\xE7\x80\xD4\xB6QMw\x8Dul2\xDA\xD2K7\x85\xC1\x9E΀\xF1l        \xB8u4I\xAB\xA0Cˁk\xBB5`ӹe\xE3+\xC7\xE1q\xDD:xö(\xF8\xEA\xD1\xD8.\x80|\xB9\x9A/s\xAE2cҥ*\xD8)\x80\x9Dʀ\xBF\xDE\xCF^
+\x9A\xB1,yvÜE\xABW\xC8sJ\xA3\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hj4&lt;\xA1M6\x9A\xF6\xF1\xB6\xEE\x88B\xEE\x97ٳ\xC7\xF8\xC38X\xE6        \x80Wm\x8E١\xEFw\xFE\xD8/\x82P\xAE Z\xF3$J\xE6\xE1H\xFC\xECL\xBCkW&lt;\xBD?\xF8\xF4\xC9ʮ\x8D\x9F\xF9\x98;\x94i\xE0g2@^g\xE3\x8F\xCF\xD6X\xBCz8\xDA&amp;\xA3v\xFD(l\xBCG\xF9ԼuG\xECOA#\x8F\xFC\xEED\xBCf8 \x9A\xBC\xC6\xCF8\xF2\xFC\xF2@\xA8\x9C\xF8I\xC7\xCC\xDC?\xAB\xBD\x81\xD5\xEA}\xD9lCwʹuh\x97v\xC0;w\xC5\xC0:-\xE4j\x92;\xAE\x89\xB5k9\xF0\x8F\xFB\x92\xE0\xE9}:\x98p\xBA\xB8&quot;\xB4\x98\xF5\xF3F_\xF7\xA2\xA1\xF8\xE4\x81$\xF8\x83?d'\xEBVv\xA9\x9F?-\x80_\x8Ce\xC1G\xF7'\xC1\x8B7\x86\xC1\xA3|`=\x86\xF6&gt;\xE9F5\x80\x81\x94\x82wg\xEC#54
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8Df\xFEFC\x95\xB0ӝ\x9A\x80y׬#\xA8\xB0s\x8Fay\x9E]\xDA\xFF\xCB7\x85\xC1{\xE2\xE0\xC7g\xB2`0\\x87R% \xD5z\xDDq\x9A\xE4\x89f-W\xDBcE\xB0Fˁ%\xC1\xED\x83!\xB0\xD4\xE3S\xF6\x89k\xEE\xF92\xB8\xB1G_;\x92'3%P\xEFc\x95-W\x81\xAC\xBB{\xCDpL\xEC\xEE\xDAbk$d\xE7M\xAF\xE2\xEE\xE1\x90\xF5\xAB\xB6!U\x9A\xE53\xF8\xCA\xCDa`κ\xED\xD0\x8D\xCFſK\x83b\xA5ZtZ}\x80\x992\xB8\xA1?l\xFA,v\xEB\x8D\xF59q㧮\xE9\xD2\xC0\xFBv\xC7\xC1odz`O\xA2R\xC5J\xCAޕm\xE2\x85
+\x90k\x83??\x93\xF2.\xE4\xD1bu=\xD68zWuj\xE0\xF5#\xF0\xC5\xC3)Ю灴\x90`\xAE \xA4\x86\x8F\xE3\xA7)F        \x9EX\xA1\x8E\xA5K`C\xA4~z&amp; ؛\xB7\x85nDfg\x8D\xCE2\xA2\xF5']@\x89\xB0\x9D\xD4\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44\x9A\xB9
+\xF5\xC1\xA6R\x83s\xD4Wx5\x87\xDC\xE7\x9Df:\x8F\xEB\xD6\xC0]\xC3\xF0\xF1\xFDI\xF0\xAB\xB1,\xD8+\x80\xFD\xC98\x99)\x83X\xB1r\xE5*\xA8V\xCF6\xFB\xE1usLyUg\xB2e \xAF\xB6'\x94\xDF9\x91\xEF\xDF\xB7\xAD\xF3][{{\xF6        \xC6h\xB8ʧxێ(\xE8        \xE6\x80?W\xF6\xABC_\x9B#/\xB3\xF4\xA9\xF8\xFA\xD1\xB8\xA9W\x8B\xADg\xE1\xA9}:\xF8\xDC\xE1$\x90\xD6%\xEDm1G^\x9E\xEE\x94\xF1\xEB;\xC73\xE0\xA6&gt;\xD8n\xE5\x80\xD1?ܻ-
+\x8E\xA7J\xC0)\x9D\xB3\xF4 \xBF&lt;\x9D\xD7\xF4h\xC0v5Z\xD3hf\xB8\xE6\xB6\xC2/\xD9\x9F?\x9C҇\xCB'Nϗ\x81\ui\xCC{,W\xF2\x8C\xFFx\xB6 v$
+\xE0w\xE3Y\xF0\xA9\xFDI \xF3Lk\xF5\x83\x96~\xEA\xBF~s\xCB\xBEcc|dO|\xF3Dt\xF3`w\xB2\xE4LE
+\xD0\xC8\xD6r\x81kV\x86y\x85\xF30\x96-\x8FM\xCCR6F\x8B\xE0ǧ\xB3@\xD6ڽak&lt;\xB1G\xA6\xD8\xAE2\xE4\x8D\xBE\xA08\xD8Zjh44
+\x8D\x86FC\xA3\xA1\xD1\xD0hh44
+\x8D\xC6\xD1R\x83\xF3՛P8\xB7ǘ\xFEy1\xBE\xBE\xA4S\xB7 \xC1kG&quot;\xE0\x93\xE0?\x8E\xA7\xC1\x8FgA_\xA8\xF6&amp;\x8B\xE0H\xBA\xC6re cP \xA7\x90]#\xE3E\x85\xCC\xE5fB\x9E\x85\x97\xA3\xFCA~\xA7\xFC\xFE\xD1Dx\xF5&lt;\xF8\xE5x|\xEA@\xBCikܺ&gt;Vuh`\xFA;rX\xCF`y\xB5Wui\xE0;c@VhH~*[\xF2\xFC`\xB2\xA8\xB0I\xF9Zzx\xB1\xA1\xA3Ew\xB0&gt;w0        \x9E;\x91g\xF7\x9Ae&gt;\x85\xB4\xAEOH\x80\xDEPȺ&amp;9\xB6\xD2n\xAD\xC7_Έ\xFF3\xB92\xD8/\x82\xAFIY\xFFy\xB1/lj\x91\xE2t\xBD:X\xC8\xA7t\xCB2\x9F\xB9W \xAC\xF4\x80M\xDBv+ͬ=\xB3\x9C5\xF9\xC4\xFD\xDDh |\xF3X\xF8\x82yp(]\xC73e \xA3\x8C\x96WX?\x833-V\x80\xFC{A\xE6\x99\xD3%\xD0,\x80_\x9C΂/N\x81\xB7n\x8F\x82\xEB{\xF5\xEBq\xB5ljc\x8A\xD3\xEDf\xFAq6\xBE\xF3\xD4\xFE x\xEB\xF6\xF8ؾ\xF8\xE6\xF14\xF8C 6E\x8B@\xCE\xEF\xB1L\xF9\xD8D\x9B\xB1\xCERd\xBD\xFD\\xE6'\xA9R\xE8y\x85\xACi\x97V$c\xB1\xB4\xCCͱ&quot;X\xAB\xE5\xC0Nf\xC0\xDF7o\x8B\x82?S.0Kqz\xBB\xEA )z\xA2
+/w\xD2t\x88\xD4\xD0hh44
+\x8D\x86FC\xA3\xA1\xD1
+\x8D\x86F\xE3\\xA3\xE9\x89)\xECY\xCFy\xF1\x8Ec\xB0ī\xB8ȧXn\xB0\xA2C[a\x88xT\xA7\xE2\x9An\x85\xACx\xC3Hȳ\xD5\xE2ݛ_:\x9C\x9C\xE4\x8B\xD3\xF8\xF2\xC5w\xC7\xC1\xBD#\xF0\x97\xF2;e\xF5\x88\xFC\xAD\x95
+y
+\xF2\xAA\xE4\xBA\xB0O\xB0\xBC\x8B\xA5^\x85\xBC\xEB˻2\xE2KO\xFE\xA9\xFD         \xC7V\x8E\xE4+\xFEvW \xBCzs&lt;\xBEG\xAB|\x90\xE3\xC6y\xBEgA\x8Eۣ\xD0\xEC;\xB4g\xC1\xAB\xB7\x84\xC1w'\xC0\xE7%\xC1W\x8E(䌼gg \xBCxcH\xEB5-\xC6\xFA\x9Bm\xFCޗ\xAC;\x98\xFC\x98\xDA\xFB\xF5\xAC#\xC6=\x96\xC1ԥt}_\xD8t\xBD\x8Df\xCE#\x91\xF4{򩑞_\xAE\xB6Ɋ\xD0;\x87\xC3@\x9E&quot;\xFF\xF0\x9E\xF8¡$\xB0\x8E2\xF2\xB5|6?\xB0;^;\xAF3\xB8cCH\x8F*}\xA3\xF4\xB1\xF2\xE5\xAF\xD3_\xEC\xBA~\xDE\xC0\xD2N\xA4\xB6\xB6\x96U\x9D
+i37\xF4\xEA\xE05[\xC2@f2Ky\xEFh|\xEEP\xF2s\x87.0?y\xE8`\xBCqk\xDC3\xD2\xF6n \xB3Q\xFE\xFA\xF2\x8E\x99:K\xB1T\x80q_\xBB\xEA \x9E\xC3\xF8M\xC1aRC\xA3\xA1\xD1\xD0hh44
+\x8D\x86FCh44\x9A        \xA3\xA1#8Oj\xCC\xD3g\xDCesy\xE2\x9F
+٩Ы\x90F\xBE^١\x90\xDDL\xAC6X]\xF2\x99?%\\xE0\xEF\xB6\xD8.\x90S߻B\xFAp\xAB]ʑ\x94\xAF\xC5@;t\xFAq\xE3\xF8\xB8\x98\xB3`9\xB6\xD2n\xC5t\xE4\xF8\xCB\x91\xE3?\xF5\xA7\xD5b\xD7\xF8\xC1\xEB\xB6F\xC1\xC9t        ع\x96j\xD8?&lt;\x99\x8F\xEEҀ\xAD\xF7\x9E\xA3\xD1\xCCc\xF4\xB1&lt;+ma\xE9\xC4@\xB3t\xEAg\xF0&lt;C\x8C\xF1}\xF9&lt;Zj\xC6\xF1\x85\xFE\xE2\xD2Y\x8A\xF4\xD8\xD6Y\x8A\xB4\x8A[\x8EeT\x95^\xDD\xFA\xB3hE\xAD֖dOsgU5\x8Bv\xE0d\xA9\xA1\xD1\xD0hh44
+\x8D\x86FC\xA3!4\x9A\x966z\x81\xB3\xA5f\xCA\xD9\xE4s|Ә݆\xA6\xF69\xA6,\xCCt8.\xDBg$u\xFA\xF17\xDE\xC5\xD3\xFB\x83`\x9D?\xEC\xDC\x87
+e\xF0\xBA\x91\x98r=\x84F\xE3\\xA3\x99\xEF\x88\xC3\xF1\x85,l\x962\x97\xF9\xC9L\xAD\x88GU\xD6)\xF1\xEE\x8C[\xA5\x86}\x8D\x86FC\xA3\xA1\xD1\xD0hh44B\xA3i%\xA3\xA1 \xB8Hjt\x85\xA5\xCE!\x848\x97\xE5\xEB\xFC\xE0{\xA0jĞ}\xEF\xAED\ݣ[\xAF7\xA3\xD1B\xDC\xE72\x86\xDF\xD1\(54B\x8D\x86FC\xA3!\x84\xB4\x86\xD1p\xFE\xEF\xEA;5.\xAD@i\xFE0\xEE\xDA\xD1|ح\xBF\x95]5\xBF{&quot;
+l\xBDo)\x8D\x86\xE2\x97        \x9D\xC3\xE8o9\xF3w\xFB\x9D
+!\x84FC\xA3\xA1\xD1B\k4\x9C\xF3\xBB_j\x8C\x9A\x8E\xDF\x93\xD2\xCA\xFC\xEF8x\xE3\xCEȔ\xAA\xC0n=\xED\x99l\xBCrs\x98\xF5T\xED\x8D\x86\xE2DdNk\x99\xD9r\xB6\xDFBRC\xA3!\x84\xD0hh44B\x88\xBB\x8C\x86\xF3\xFC\xD6[\x81\xA6\xB5\xF5&amp;&gt;M\xC1O!\xC4\xFE;^\xE6
+\x80/I{v\xB0&quot;pi\xA7SO\x95FCq\xD4X\xD0\xD6U\xF4\xC6\xAClF\xA3\xA1\xD1Bh44
+!\xC4\xC9Fù}K{Mg\xA8\xAD'\xA6\x90Jh\xFC\x8CB\xEC\xCCZ?\xB8}C G
+\xC0n\x9Dj\xA6\\xFFz4
+&amp;F^
+\x8D\x86RS\xFAS
+\xA3V3'\xF3\x8C)54B\x8D\x86FC\xA3!\x84\xD0hGK
+F۾\x84\xA2+\xA4\x90{y\xFC\xBCBlƒ\xB5~\xF0\x91\xBD        \x90*V\x80ݺ\xD3c\xE9x\xD5\xE60\xA0\xD1\xD0h!5C\x9E\x92\xE8O*z\xE2\x80x\xE6&lt;RC\xA3!\x84\xD0hh44B\x88\x8C\x86Swf\xB6;5]\x85&lt;i\xC5\xCF!\xC4f\xEB\xCD\xFEx} \x86\xF3\xC0n]h\xD5\xC0\xA7\xE7\xC1\x95\x9Dڕ\xAA        @\xA3!\x84\xD8\xD97Sf\xA7\xC6ל\xB43\x90
+!\x84FC\xA3\xA1\xD1B\xECj4\x9C\xAE3s\xBBS\xE3o\xEB\x89-\x87\xB5\x9D        !\xCDB\x8C\xC0\x98\xA9J\xC5\xE6\xFF8\x91\xF6\xEC&lt;\xC5
+\xF8\xF8\xFE$0_9\x8D\x86FCY\xCC3s.\xAA+\x8C\xEFs\xA2\xCE\xCCCjh4\x84
+\x8D\x86FC\xB1\x93\xD1p\x8A\xCE,Pm:\xF4\xB6\xEE\x88B\xEE\xF7\xF1\xF3Ef\xEFy:\x82
+˵B1i\x9F\x81)\xFF\xD7cv\xBA\xC4Wwi\xE03\x93 Z\xA8{v\x98\xA3\xF1&quot;x\xE9\xA60p\x98\xCB\xD0hHs\x91\xFD#\xB8\x8B1ۃ1\x97\x90\xF9\xE7D\xAB\xE0\x9C\x9CY\xAC\xD4\xD0h\x8D\x86\xD0hh44B\xA3!\xCD0Nř\x9AI\x8D\xD7o\xCEW\xBB\xC2
+\xAEC#\xD3{s$\xF2𰴰\xBF\x88\x8F__\xE4U\xAC\xEC\xD0\xC0*\x83\x953 \xFF\xF7\x92N\xC5eWt\xEB\xE0\xCE\xE1h\xE4@\xB6\v\xEE*1\x96\xAB\xBC\x81U\xDE\x8D\x86FC\xE61\x82L\x9C3\x8Dּ.*g_f&gt;|\x93\xB7f\x98ZK
+\x8D\x86\xD0h\x8D\x86FC\xA3!4\xD2(\xA3\xE1\x{11BA57}\xD7t
+,퍟\xC1\x96\xEEy\x8C\xF6 \x9E;\xB5\x89\xAA\x98\xC7Q\xA9\xC5֕-\xF5*Vth\xE0\xE9\xFDA\xF0\xD6\xED1\xF0\x99I\xF0\xF9Ê\xCFz$T|\xF1\xB0\xE2\xBFNf\x80Gˁ\x91X\xE8\xF9
+\xA8V\xCFVm\xAD2gC\xF92x\xFF\x9E8p\xF0\xBC\x9AFC\x89\x8Cf\xA25v\xB4̝\xBE\xB9\x86\xB9\xD5\xD6Zwx7Zg\xDDL\xFD\xBD\x86FC\xA39\x8Fќ\xBF\x9D\xD0hh44
+\x8D\x86\xCCj4\x8F&gt;h4-l4\x9Cf3\x8D}\xB2f\xF2Π\xF49\x9C\xB5\xB6\xB0\xCB\xF8\xB4\x99\xDBI\x805%ܾ\xC6L\xF1\xE4^
+|lt\xF3\xE0p\xBA\xB4\HM\xE3TI\x91\x9CNQ!\xFF\xB7P\xA9'v\x89]z&lt;\xADOf\x95
+\x8D\x86\xCCa\x99u\xB9\xFB\xC4\xFD\xF9\xF7\x9Ci\xB8\xB5\x9A\x90T\x98\xBA҃a~\xA7\x86F\xD3\xD2\xE3х̗FC\xA3\xA1\xD1\xD0hh4d!#\x88y\xB3\x86F\xD32Fé5\xD3L\xAF\x91;½q{\x9BVx^\xAF/\xA1\x98\xF3\xB5\xF3&gt;\x8E\xE5Y\xE2x\x8Cg\xFF/\xE9\xD0\xC0{Gc`c\xA4&quot;\x85JĮu\x95\xEB\xB1\xB0OL\x82\xA5\xEB\xFCK=\xA3\xA6ѐ:\x8E#\xC6laAW\xE3\xA5\xE6\x95\xF9\xB3\\x87掖ЗTL\\xE3t\x9A\xB1\x8B\xD7\xD0hZ\xCFh\xE6\xD1&lt;h44
+\x8D\x86F\xC3y\xAC\xC5h2ӠѸ\xD1h8\x85f\xEC\xB7-\xD8\xD6W\xD0n\xDC\xF7䦜\xD3E\xACq5W&lt;\xAA\xCEe\xAD&lt;\xA5O\xDF&gt;\x9E\xFE\\xB4r׷7Q\xAF\xD8\x8E\x9FQ\xD3hH\xFDƑ\xBE\xB8bq\xCFJ\xA8\x95\xAE2ɵ5\xCE4\x9Cu]\xB4?\xA90\xAF\x91ꀓgƦRC\xA3q\xBB\xD1,\xBCm\xD0hh44
+\x8D\x86F\xB3\xE8k\xF24
+'̌c\xD4\xC64{ڍ\x91b)\x85\x9C\xBBZTST\xE6\xE57w\xF08;p\xA5\xD95\x9D\xF8\xF2\xE1(\x95\xAB\xA5r\x95\xDD\xDD׏\xA5\xC1\xDE\xC0^g\xEE\xAAI\xA3!\xF5\x9B\xC1\xCAL\xC0\xDCC\xD3_\xFB\x99\x86̐\xEE(a7\xE4\x8CH\xE8O)\x8C
+5\x87I
+\x8D\xC6-FS\xCBVA\xA3\xA1\xD1\xD0hh44\x9A\x964\x9A\xBA\xCC4h4N3\x8C\x83\xD5]\x99\xB4d\xDE#\xB63=Q\xC5\xFA\x8Cbq\xEB\x9C/t\xA7+\xA60\xAB:\xFB
+x
+\x9C1\xD7}\xE7h 蹲\xDE\xDA+\xCD$'\xD2e\xF0\xE7\xC3жf\ኳL\xA3!\x8BM\x8C\xDEb
+\x99i\x84\xCCkeC9Ǘ\xE6^\x95\xB9\x84Y\x9F\xB9Am\x80a\xD1\xD5\xD0h\x9Cf4\xF5m4
+\x8D\x86FC\xA3i
+\xA3i\xDCL\x83FcW\xA3\xE1`\xC1\xB8Pm|\xF3\xD9@i\xED]{\x80\xA6\xDD \x96s\x91V\xD5\xFE\xD7\xDA\xFDm\xDDQ\x85\xD4
+\xF0\xF8&lt;/6]o\xA6\xF8\xA3\x81 \xE8        \xE6\xBB2ɗ\x8F\xA4\xC0c|\xE0\x926L\xA3!\x8B_\xAB\xDC\xECk\xF2\xCAkd\xFD熢\xC2\\xFDΚ\xCF\xF5\x9BKu\x98\xB3
+\xE9        ;\xA3`\x98\xE6t54\xBBM\xA3[\x8D\x86FC\xA3\xA1\xD1\xD0h\xDCh4\xB6\x98l\xD0h\x9Ag4\x98\xBB_3\xB1\xF6l \xAD\x90&gt;Ǭ\x88Ž\xA2Oh\x9A#\x8Eq\xB4\x8Dz#\xF2\xFD&amp;\x8F8\xB2\xDA\xCD\xDC\x93+l\x89\xB1\x9E\xEA\xFD{\xE3 Y\xACv_c\x99\xF8\xD3\xCD\xE0\x92\xF5f4\xB2\xB0\x9A\xCCS\xABb\xDAs6\xDB\xE6Ѧ\xAC\xAC\x96\xAF\xB9~a\xFE&quot;\xAB
+\xE5HJ\xA8[\xE5\x86q\x92\xD7\xD0h\x9Aj4\xCDo4
+\x8D\x86FC\xA3q\x8B\xD1\xD8w\xB2A\xA3\xA9\xA7\xD1pP`\x98I\xAFQ\xFF\xC5'\xC5Z\xEFQ&gt;5t\x9Cy\xA3)\xC4\xAC;\x91ɺb\xFBU9\xF7$)\xBDƖ\xACl\xF7\x83\xEF\x9CLvV\x92\xAFN\x81\xAB;5\xE0\xAA5\x9342\xFB\xC8&quot;3X\xA9\xF6c1\x87]G5\x9E\xF20\xBDF*\xC8\xD7r\xAD\x8F\xE7\xDAz\xAEM1V\xA7\x9Bc\xB4\xFA\xBFƑ\xE4F\x99 3sWC\xA3\xA9\xBF\xD1\xD8\xF2\xEA\x8D\x86FC\xA3\xA1\xD1\xD0hi4N\x9Do\xD0hj4f&gt;WQ\xFCm\x9A\xC2t\xE3vy\x96\xDC\xF2 {\xF3.\xB0\xD5_zc
+\xCBNr&lt;\xED~\xC6\xDBm\xDD\x85Y/\x82^c\x8CV\xF4\xEC\xF5!\xD0\xCC\xF7\xB3&amp;\xC0\xC4z\xB3n
+W\xAD7\xA3ѐ\xF3\xACX6\x9E\xA6\x97\x9EYf\xB62\xB2s]\xCD7\xB4        \x8CqG\xC6PA\xC6Vw_Y\x95w'#\xAF\xF9ƍ\xB9Ĵ\xCA\xEC\xFF\xA6wmh4 4'\x9Dk
+\x8D\x86FC\xA3\xA1\xD18\xC1h\{)\x95F3\xCDh\xD8\xED3L\x8D\xBB\x9A\x89
+\xE7SjEZ\x9F+w\xB7鈹\xC8]`\xEB\xF8&quot;\xDF7\xFFMHa\x8C8\x8E=˚ٯ\xCA{䌢\xC9u\x9B\xFD\xE0\xCE\xE1\xD8/\x82VL\x80\xCB;5 LJF\xD3\xDC\xE8\xF9\x8AN\xA3\xA9a
+s\x941\xAE\xCA\WF\xDEf\xD7\xC6l\xF8|c\xDA\B\x8E\x89\xCC:d\x842\x9F\x8B\xD7\xCF=l\xCFs*\xE7q\xFA\xFCAދy\xFD\xCA\xFF\x88w\xCDi'\xC3\xD4\xFF*
+\x8D\xE6&lt;F\xA3\x8EL\x87K\xAE\x9B\xD1hh44
+\x8D\xC6&gt;F\xD3\xCA\xF3\x8Ds\xB3\x8E0\xCE0\xA6IWQ\xD6kG\xE6\xF3\xFEi\xF8S\xFA\xC1f=\x8F\xD9\xE7\xAF\xD0\xDA\xF3X߅\xF55\x9B\xEFW\xB9\xB3\x9AR+\x80+ \x9Bj4o\xDCGR%\xD0\xCAΎx&lt;k0\xDA\xD6\xFA\xEE;\xE34\x9A@\xBE\xA0\xD1,\xDC_\x8C+\x81S\xD6VO\x94\xC8x\xEA\xE4;\xFEu\xBC\xA0:yG\xC3Z\xC4:\xF70WP[f \x96}[\xA6`\x9D\x93̎u\x86`\xC5\xFA\xFB͙\x83,ޖsjY\xC5a}\xCDr\xDEi1 c\xB7NƸ\xDERF\xD3*g\x96FC\xA3\xA1\xD1\xD0hh4\xCD0N-\xE6pYՑF\xC3\xC70\x8E\xE9d\xDA'&gt;\xB9R-ͺ:\xD4\xDA3\xCC\xD8\xCFX\xDDg\xD1\\xA02F\x93\xF3ܳ6\x9EO\x94;P\xAE\xBE3\xA7kb]!\x85O\xCECn4\xF7m\x8B\x82\xA3\xA9\xD2\xD1V5\x9Ah\xB1 ޲=
+\x96zKՑ1\xA0\xD1\xD8 {\x93EpM\x8Fh4\xE7q\x96\x99\xE6\xC3S\xAE\xEF\xF9'\xE1ba\xE3\x949Zy\xC6\xD3G\xF3\x99j\xBC\x9B'h\xB3\x88\x99\xAE왿y\xFA_\x91oj,\xB6\xCC0n\xBA\x8Arv\xB2f\x9As\x8C\xC6xͼ\xDD/wjh44
+\x8D\x86FSG\xA3\xE1@S7\xD9񟛇\xD4\xD3h&amp;\xFF
+\xC30-#8\xF9\xEFē\xC6\xFD\xD9\xE9\xF7m\xAD\xC61\xE3\xFF]fMK%L\xD6\x99ӝ\x9Ai\xF7\xD0IC\x8C\xE6\xEE\x91؟(\x82Vkx\xC5j|\xEBh
+\٩\x97ϙ\x8D3\xFE\xDC\xC1 \xE8\xD5s\xC0\xFE\xE7\xA87\x94\x8F\xEDցM\xCF\xCE\xF4D\xF5\xF8\x9Dֹ\xF1t\xB1\xAEGj\xED\xFB\xFEv\x9D\x93\xF8\xE7\xF8_\x86a\x98ٺ\x94        ݰ~]\xA31\xEE8p\x9B\xAA\x9D#
+\x8D\x86FC\xA3\xA1\xD1,\xCEh&amp;\xA7\xD0 \xC30 \xC34\xCF=\xC3
+k\xCDIR\xE76\x9F3C\xA1h\xB5\xF6\xD6̃\xA7\xF6\x81Y\xAB\xD9r_խg\xFC\x86^\xFCf, \xEC|v\xCA\xD5*\xF8\xEF\xB1,\xB8\xBCK\xB6\xAB\xA7-6!ωK\xED_\xEB^\xD65ϳ?&gt;\xE5ښ\xE5Y~\xB3\xAF\xD1ʮ\x88\xFDIŴ=\xDF9v0 \xC30\x8C\x{D906}FC\xA3\xA1\xD1\xD0hh4\xE73\xD5I\xF6\xC69R0 \xC30\x8C\xBCƧ\x9BW#e|7\xEB\xBAPCj\xCFj\x8F&lt;|:Z\xA7\x81L\x96\xC0 6\x86\xC1\x84\xCB\xCCP\xAD\xC8u\xAC\\xE7I;\x9F\xA3T\xB1:\x98\x8F\xEA{\xF8\xA6Q\xFDx\xE6] \xF9
+\xE55\x8B\x8F \xE5 \x86r\x8A)\x95\xAC\xCE=\xFF2Y\x97\x8C\xCFV0 \xC30\x8C\xB3\xA5\x86FC\xA3\xA1\xD1\xD0h\xECm4s\xED͌\xBB*\x8F0
+ \xC30 ô\x8A\xD7ȓ\xB0\x83Y\xF7\xE2\xACk\xC6\xC1\xFB S\xAAw\xB7\xA8c\xE92x\xE3\xF6(0\x9F4o\x971\xF9\xC38\xF8;c U\xAC{\x9E\xA9P\xA1\xEE\xDAfUm\xFB\xAC4\x9B\xE8\x8B\xD8E3 \xC30 3W\xAF\xA1\xD1\xD0hh44
+\xC30 \xC30\x8E\x96\x9A\xAEH[_B!\xABѬk?Ȣ*\xFA*n \x81\xA1p\xB8\xB5        M\x97\xC0\x9B\xB7\xC7@K\xD4\x98u\x9F\xCD\xE7
+\x85\xC1\xA6p\xD8\xF3|m\x89\xC0u=:\xB0QMy~\x9F\xC6\x86a\x86Y\x98\xD4\xD0hh44\x8Dm\x8CF\xDEg\x86a\x86Y\x88\xDAt\xDBҊ\xBE\xB8\x82\xAB\xD1j4\xCB}`o\xA4Kմ\xBB֞\x99.\xB3#&amp;V\x9A\xB5\xA4\xCBX*t]\xE6
+\x80OL\xBB\x9D\xAFl\xB9&gt;\xB1/\x96xK&amp;\xF6\xB5\xC5N\x9A\xB2\xEAl\xA2\xC30 \xC30\xCC¥\x86FC\xA3\xA1\xD1\xD0hh4 \xC30 ø@m0ǰ\xEE\xA6=eM\x99\xFB\xDA35c\xBC\xB17~t*ʕ*pp˨*F\xA2E\xF0\xE6\xED\xD17\x9F\xAB\xD0\xC2.3\xAD&quot;\xC4-C!\xB0#V\xF69u\xC2y\xF0\x8C\xFE \x98إ\xC5g\xCDZI\x9EU\x97\x86a\x86\xA9\xAD\xD4\xD0hh44
+\x8D\x86a\x86a\xA8\xCD\xE4\xDCC\xEC\xA6'\xA6\x90m8\x83\x9D k\xFD@f\x92\xBFςr\xE5,pVB\xF9
+\xF8\xEF\xB1,\xB8m(\xE4}\xF1\xFCN\xDF\xCB~\x99\xC7޺#

+h\xEE\xB9;\x90,\x817m\x8F\xB9\x8C\xD0Q\xAF\x87\x9D-\xC30 \xC30u\x97
+\x8D\x86FC\xA3\xA9\x9BѴy4v\xB6 \xC30 \xC3\xD4]m\xDA\xFD\xA6\xCB\xC8:4Y\x99\xD6Vt\xE8
+\xCEig\xF5\x9A\xA7
+\xC1\xAF\xCFdA\xB4P\x89l-6\xC9b\xEC\x8C\xC1{\xE0\xCAN
+Hmj\x9E\xD3\xD9W^ީ\x81ޗ\xB2\xAFe\xE3\xCF\xE0\x91T        \xFC\xF5\xCE\xB0]mm\xA9        `\xAEheM\x86a\x86a\xAE64
+\xCF)\x8D\x86F\xC30 \xC30\x8C\xA3\xA5\xC671'\x91}9\xE5\xDEMwTa:\x8EQ\x91\x95U\xA0-\xEB\x91\xC4\xAE\xEC\xD2\xC0{\xE2@j \xE7\xCAU\xD0\xDCZ\xA9*\xA5
+M\xC1g$\xC0\xF5=:X\xEA\xF1/\xF5\xF8m\xB7f\xC9\xF6\xBB\xAC&gt;\xBAC\xEF\x8D\x83#\xE9&quot;(V\xAA\xC5zV\x87(U\xAA`\xA2޾3\x96\xB6\xFB\x97\xDAp\xE7S\xE9%&amp;\x9A{T\x86a\x86a\x9A\xA964
+\xA1\xD1\xD0h\x86a\x86q\x81\xDAx\xA6Κ\x8C=M\xAF\x91ً\xAC0\x91\xEF\xC8*\xB5V\xF3\x8B,\xF7)n \x81\xAFI\x81\xBD\x89&quot;Ȕ\xAA\xA0TU\xD4\xEFd\x95\xABU &amp;%k\xA2\xD6\xF9sལ1\xF0\x84\xDE X\xE9\xD3-f\xF1^#\xE7\xFA%C\xE0'\xA72 R\xA8\x80Zٍ\xB4Y\xC7\xF8\xB3\xD3\xF0\x82
+!p\xB1\xC7\xB1Ǯ\xB5\xB5eͪ\x87E\x9B\x86a\x86\xB1\xB9\xE0\xD0hh44
+\x8D\x86a\x86a\x87\xAB\x8DW3\xEDF\xFCe
+\xC6Z5q\xD9k\xCF\xEA;\xA6\xF5\xCC\x9A\x91\xB9M=\xAF}Y\x97\x9E\xD4w
+G\x808\xCE@(\xFC\xB9(V\xAB\xC0\xD8\xE2rN\xA9Z\x90g\xFC\x8F\xA5K\xA07\x98\xDF&gt;\x9E\xB33n\xEA\x82k{t\xB0\xD2\xE6S\xE4\xAB \x8Ft\xD9\xDDdۭ\x83?\xDB\x9F&gt;\x90rFb\xC5J\xCCЛ\xEA\xDCάx\xE8P(\xBE~$        \xEE\xD8\x8F\xEDҀ\xB5u\xD9\xEEh\x98\xBBj\x9E;2\xEC$\x86a\x86q\x98\xE0\xD0hh44\xCDđa\x97\xC80 \xC30\x8C\xE3\xA7}\xE2\x89\xD9\xC1Sv\xDCd\xAD\x9Au\xC5ڌs$\xE7\xAEa\x93\x99\xE7:\xE3h&lt;\xA6K7\xF6\xC1-C!\xF0\xFC\x8Da\xF0\xD2-\xF0\xEE]1\xF0\xF1}\x89I\xA4J\xB0\xF5;\xB2\xA3\xE2\x8B6\x87\xC1s6(\xFEx0n\xE8\x82\xAB\xBB5p\xB1/̽2Ϳ\xEE\xC0\xD5er\xDE\x{DFCE}\xD1jb\xB2\x9D\x903rۆ0\xF8\x8B\xE1x\xDFh \xFC\xCB\xFE\xB0\x9E_9\xEFrNoR\x88\x8DJk\x99ڊl|\xFB\xE2
+ޝa\x86aƭ\x82\xD3\x91\xFF\xD2hh44
+\xC30 \xC30L \xA9\x90\x9A i
+Y\xB7\xE6\xF8:ϖ٩ǚq\x85\xF1\xF5E\xDE\xB8\xA4C\x9B\xF37\xC8O\xAD\xF1+\xAC\xE6b\xB7\xFD\xB3~iz\x85=\xA7\xB8\xAD\xF5,\xCB92\xBE^\xEE
+\xA9\xFCl=\xA7rާ\x9CS\xEBٴ\xFF\xFB봜5v\ \xC30 \xC30S\xA5\x86F\xD3\xD2Fsv\xB2\xC2\x8D\xC6        F\xC3.\x8Ba\x86a\xE6|R\xE3o\xEBO)Z\xA2
+\xB4VZ\xA0\xDEroBa\xD4\xB0\xB4\x81qs-\xA2sW!Z\xAD\xD6\xE7T^\xFF\xFA\x8C'\xC83\xCEΊa\x86a\x86FC\xA39\xAFѨf@\xA3\xA1\xD10 \xC30 \xC38\xD4h\xDA'fM\xDC۱\xCA+\xBC撳)-\x9Ac\xADL\x9A\x8BY\xC00\xAA\xE0\x96\x9A \xC30 \xC30\xB3K
+\x8D\xA6\xF5\x8C\xE6&lt;̀FcW\xA3a\xC50 \xC30 sa\xA9\xC1 \xAA'\xAA\xE0LҭHMoc\x9E&lt;c3\xE8\x8D)d\x8FXskk\xCBnS\xED\xE3\x80\xC30 \xC30 \x8D\x86\xD0hj4\xEC\x9D\x86a\x86a\xE6d4\x9E@\xDB`N\xC1\xF9\xA4[\x91\xB5\x85\xBA毞F\x97\xF5NN\xAF\xE9\xEDH\xFC
+q\xA32\xBB&amp;\x86a\x86a\x98yH
+\x8D\xA65\x8C\xE6\xC2-\x81Fc\xA3a\xA7\xC40 \xC30 3o\xA9\xC1&lt;\x96+\x8E܇&lt;\xEF\xDFsm        \x9Eq\xB3ʖs\xEB9;\x91\x9E\x98b֕\x81 \xC30 \xC30 \x8D\x86F3\xB7\xC6@\xA3\xA1\xD10 \xC30 \xC38\xCDh&lt;\xE3m}I\xE7\x96.A\xED\xA49\xB1\x8AI\xED59\xCF\xF60\xF1L
+\x8FdݭӸ\x92\xD0Wx\xEC\x8B\x86a\x86a.54\xF7\xCD\xFC
+\x97FC\xA3a\x86a\x86q\xA0\xD4x&amp;*\xFDr\x9E\xE9\x8EyrW,\xB01\x98\xBB=+\xD0x&lt;\xEBA\x87\xAE\xE8
+)\xE6\x8Da\x86a\x86\xA1Ѵ\x88Ѵ\xF9\xB4\x85K
+\x8D\xA6QF\xC3\xFE\x87a\x86a\xA66R#O(\xF3\xA9p\xA7\xEF\xD2(k\xC6|\x8B\x9D'\x9BFê5v\xA3&gt;\xB6\xECl˻3 \xC30 \xC304B\xA3q\xB2Ѱ\xDBa\x86a\x86\xA9\xB1\xD4x5s\xED\xBDƉ.#\xF6a|]\xB3&amp;A\xAF\xA9\xEDJ39\x92
+\xB0\xC3a\x86a\x86\xA9\x8B\xD4\xD0hh44\x9A\xFA
+\xBB\x86a\x86a\x98z\x8D\xAC\x87\x91\xB51\x9C\x85:k-\x93Y\xDB\xC1_\xE3&amp;\x81yxo\\xC1V\xB1\x98\xDDN\xAF\xD8\xCF0 \xC30 \xC3\xD0hHÌ\xC6l4\x9A
+;\x86a\x86a\x98Fx\x8Dԕ\xE5 \xD6)k\x99\xE4L\xD5t\xBD\xD9yZ\x85\xFCEV\xF9\x9Eo%m\xA1\xDDط0 \xC30 \xC3\xD0h\xC8,FS\xF7\x86A\xA3Y\x84Ѱca\x86a\x86i\xA8\xD4x\xA7&lt;i\xCE٩M\xAB\x88_x\xFC\xA0qmW\x9E\xAC\xE1Y\x98        Y\xBDi\x9EVif\x86a\x86i\x92\xD4\xD0h\x9Cc4\x8Dn4\x9A9
+{\x86a\x86a\x98fJ\x8D\xD7\xDF\xD6Vp\x8Ej7d'M/d\xB39\xA5\x80\xDB|\xC1\xB6\xC1\xAC\x82\xAB\xAD+\xD2
+㘰a\x86a\x86\xA1\xD1\xDB\x8Dj4\x9A\x99\x8D\x86\xBD\xC30 \xC30\x8C]\xA4FV7\x99\xF3g\xAADS1\x9E\x97\x99\xD8F͟m\xD1BdubB!\xB3\xFAV;/}        EOLaT\xD5`\xBF\xC10 \xC30 c;\xA9\xA1\xD1\xD0hf\x97̈́Ѱ\xC7`\x86a\x86\xB1\xA3\xD4\xC8ʢޘB\xE6\xD5\xF4\x8Bƻ\x8C&lt;o.x\xC6\xED\xD7H`\xBEQ\x85\xCC\xF0}\xBA\xC2\xEB7p\xE9\xAA?Ycf\xEC\x9E\xC9^\x82a\x86a\xC6RC\xA3\xA1\xD1\xCC\xDEHZ\xD5h\xD8?0 \xC30 \xC38Cj\xA6̨\xE95\x8DtcE\x93̢m\xE92\x8Fl*&gt;\xAD\xAD/\xA9\xE8O)\x9C^=@\xECL\xCE\xC2\xFA\xB4\xC2x\xBE\x8C}\xC30 \xC30 \x8D\x86\xB8\xD2hTkq\xBBѰC`\x86a\x86q\xAA\xD7ȼZfw4\x8EƸ\x8C\xD0\xF0\x9D4k\xD3`\xBAB\xA6ш\xDD\xC8\xCA4[\xEFܪjb\x9B\xED\V\xD0Y*c\xA8w\xE4 \xB0`\x86a\x86\xA1ѐ1\x9A\xB3\x93\x95%\x9Co4\xFC\xF83 \xC30 ø\xC7k\xFA\xE2
+Vu\xAEb1\xBD        \x85[\xE6\xD2\xC6
+.\xD3\x8C\x95i\xE28FŰ\x86\x9A\x8E\xFC-\xF9\xBBV\x91\xFA\xD8\xE25|^\x86a\x86a\xC6\xDDRC\xA3\xA1\xD1,\xAC\xF18\xC7h\xF8Ig\x86a\x86q\xB3\xD4\xC8~\xF12\xF7\xB6\xF5:&quot;\xA7&lt;\x81\xAE\x9D\xDB\xCFT\ƽ3jyE=qo\xAD2a]\xD3(5(\xBA\xC2!\x85؇\xEC\xE39'\x8C\xD5n\xD2J\xE5\xF7\x98\xC7֨CnVZ\xB0\xFCu\xE3_\xAAW\xE5\x90\xF2 \xC30 \xC30Lm\xA4\x86FS7\xA3i\xA1\x86\xD4l\xA3\xE1g\x99a\x86a\xA6\xA5\xBDsE\x997\xCAL\x92n2_丙\xC7P\xCD\xC3[\xB7-MVE\x98\xA9Z\xC2\xDC\xDDY\xFE\xFDt\xC4t\x8C\xAF\xF9\xE1e\x86a\x86ả(\x8D\xA6vF\xC3\xE64Epjj4&lt;\xA4 \xC30 \xC30\xCC̓ω\xE7\xAC;B
+\xAEC\x9B\xCB39V\xE6\x94\xEAit6\xA4 \xB74O`\xF2\xBFӿ\xD3\xD6Nma\x86a\x86a:դ\xD1,\xCEh؄\x86a\x86a\xA6\xC9R\xE3\x99x\xBE[\x9E\xE6\xA6\xD7\xCCX7\xD8Xc\xD6Vx4\xC0\xC6\xC30 \xC30 \xC30v\xF1\xCD|\x8C\x86
+\x86a\x86a\x86a\xEC\xE85\xAA\xAF\xB1\xA2\xB9\xAA\x8A\x8C\xE3 Չ\x8Dﰑ0 \xC30 \xC30\x8C\xAD\xA5\x86F3\xB3Ѱy0 \xC30 \xC30\x8C3\xBCƨ\xE2\xD5֟TH\xF5\x80V\xAB\xCCܗP\xF8
+\xAF\xCE&amp;\xC10 \xC30 \xC30\xCE\xF3\x8D\x8F\xF7e\x86a\x86a\xC6\xF9j\xE3\xD3\xDA\xD6g]a\x85\xFB,F\x9E\xFA\xCC)\xCC\xF7\xA8\xF3\xD6 \xC30 \xC30 øGjZ\xCChx\xC6\x86a\x86aƅ^\xE3\xF5+\x86\xF2
+Y\x97%.\xE0\xC4\xE7\xFD\xE5\xF5f^\xC3S\xCC0 \xC30 \xC30\xEE\xF77
+O+\xC30 \xC30 ô\x9C\xDA\xF8\xB46\x8F_\xB1\xA1\xA0\x90J\xB22\xCD;u\xCAk\xE8\x8A(\xE4\xB5
+\xE5\x96Ó\xC80 \xC30 \xC30--5N6\x9E&gt;\x86a\x86a\x86a\xA6\xCE\xE4]Yӵ&gt;\xA3\x9B\xE8\x8D+\xC4/d\xAD\x9AOW,\xD0V\x8C\x9F\x95\xDF\xD3Q\xC8%W\xBE\xE3        (\x8Cvx\x82\x86a\x86a\x86\xB9\x80\xD4x\xFC\xEA\xBFv2\x9A\xB3ƞ\xA1&lt;5 \xC30 \xC30 \xC3,Ps \xA10o\xDF&lt;\xE3\xEE\xC9|t\xC6\xF8\xF7r\xE7\xC5\xFC
+¹\x95f&lt;\xE0 \xC30 \xC30 \xC3\xD4Em\xEAi4&lt;\xBC \xC30 \xC30 \xC34\xC2k\xDA\xFD
+q\xA9\xA5&lt;\xDF\xDA\xCB\xBB\xE1\xF1d\x86a\x86a\x86a\x86a7\xE5\xFF\xE9Zq
+endstream
+endobj
+
+16 0 obj
+&lt;&lt;
+/Length 981
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڅUKs\xDB6\xBE\xF3W\xEC\xF8RhF\x82\xF9y\x8C\x93v\xC6M:\xE3X\xBA\xC5=@$(&quot;\xA2\x84\xA4\xAA\xBF\xBE\x8BE;\xD5\x8DeR\xC4.\xBE\xD7\xEB\xE0\xFE\xB7(\x83\xD6MP\xF22K\xF13^\x96!,\xD3%O X\xEF\x83o\xECAZϲ\x93b\x90p\x9A-\xE2\x94E&lt;\xE4\xF1\xECOX\xFF\xFC\xBA\x8A\x82g9,\x93\x98\xE7\x90&amp;)/
+XD&lt;M\xC1Ƞ\x99\x9E\xF2\xBC\xB8\xF1\xF4\x81\xA0\xE4\xEF@IKW\x89HX\xC3\xC2@F\xE1 \xD6\xDF\xDF\xE5g)\xCF\xD3\xD7\xE2o\xEC%\xCE&quot;_\xBB\x88ː\xADv\x97\x83\x84/j\xAF\xAC\xAC=\x95\xF7\x80\xA4yƋ7\xFDؓ\xD8J\xB8\xC2\xCB\xA0+\xC1i9\xA2o\xB6\x8Fp\xDB&quot;a\xBA\x81b\xDA\xED\xFFѣ\x96e ɒ\x8F\xD5\xEDG\xDD7\xAA\x96\xBD%\x94\xE8&gt;\x85\xB79C\x97\xCC忭㐇IQ\xEF\xEBu\x9C\x94[\x92\xB8\xD5\xE3\x97ϰ\xFA\xF4-\xF6\xE1\xE9\xF1炠3q\x8C!\xF1
+&gt;\xEA\xD6F\xEC2KBfԖnZ \x93\xE8sX\xEDf\x8B4\xF3+Hy&quot;\xB1\xC7z\xC2&quot;\xE6Q\x8A\xF1X\xD7\xD8\xF7Cׁ\xEA\xAD\xEC:Y٣\xA0\x92\xC8Z{ܩ\x9D-\xB0\xA1渮ꎵ귰9Z Mzm\xA1\xF3\x83\xD5P\xD1f\xFApqu\xAE\xC4QSO        {av\xCE&quot;6\x80\xE8k8\x8B:\xE31\xC0\x84,\xE2Q\x96g\xD91\xB9\x87;\xA2\xDA\xEB3\xB4\xF8\xE7JǦ6de\xA4\xA0ҽu\xE03\xA6z\x84\xA2\xFA9\xA6\xBF֓G\xC4V\xCFAF
+\xCA7\xDCBc4\xAA\x93D l\x8B\xADtc\xCF\xC2HG\x9EV\x9C0        \xF5ml\x9B \xA9\x8Dd\xAEj\xAFtC&lt;}\x8B\xDC\xF0^\x987aN!VѸ\xA5%S\x9DB
+P\x81\xBBk\xAF\x83\xBC{\x99\xBD\xD5\xF9\xACl\xAB\xBD\xD6KF: \xABt?⥢\xA3\xA9\xE4m\x90\x95\xAE\xE50k$\x9A!)\x9C&amp;H\xCAю^\xCC8\xE0\xC8 Ǫu
+\xB0IL\xBE \xBD\x9E\xF3\x97\x80.'\xD2/\xEC\xEE\xF1        \x9E\xFD\xB08\xC3&gt;\xB8Z\xD1S:jZ\x81.ބg\xE4\x9E
+\x85\xF2|\xE4\xDF\xC8zP'\xBF\xB3$3]\x9D\xDBwD}f\x88\x84\xC3\x97Yym
+s\xAD4rC\xAC. \xAAƥ\x93\xF5V\xFA\xACu\xB15\xEFm+,\xE1K\xB1\xE1\xC8\xF2&quot;\xF7Ȏ\xBD8\xA2\xEE4\xF6        \xFB\xF5:\xE2\x8Bq8\x98H\x98~~&amp; p8)\xDDя\xDE\\xE9F\x8Av\xE7j)\xCA\xDB:q\xF8ہ\xCC\xF2q I\xE2\xD7)6r\x90Ɵ        \x8E \x8A\xE9G \xFC\xA8&quot;\xB9\xBDx\xF5\xAC\xD8\xF9wtr\x8B\xBB\x8A\x8A\x89-        \x88R\xB15\xC3%\xBD\xAF\x83\x83\xEB\\xA4\xB6\xFC\xE6K⪷\x97ZU\xAF\xA6\x9B\xCCu\xBF\xAAO;\xBD\xAA\xA3\xC1\x8B\xBD؍\xB3\xAAP\x8B\xAD\xDAt\x92\xB1\xC3\xF0\x91I\x89z`Ua?|\xA2z?ܪ&quot;5        \xDF\xCD\x8Dn\x8CF\xA0\xCF\xF7D[\c\xEA\xF3\xF2\xCB@\xE1Oش\xF4\xB9\x97fh\xBD\xC1\xE7\xABC\xEA\x86O\xA7\xEE_A\x9C\xC7\xEEh\xA5#'\xCA\xDC\xCB&lt;Z\xA6|\x89\xA7O\x9A\xF00\x85j\xDC?\xEE\xF1(\xF8\xA4\x83\xAF\xC1\xBF\xF7\xFE)        
+endstream
+endobj
+
+6 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+&gt;&gt;
+/XObject &lt;&lt;
+/Im15 15 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 16 0 R
+&gt;&gt;
+endobj
+
+19 0 obj
+[
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+]
+endobj
+
+22 0 obj
+&lt;&lt;
+/Length 1458
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍW\xDBn\xE3F }\xF7W\xF0q $\xB3\xD2\xE8b)-
+l\xB2Yl\x9Am\xAC\x8D\xBE\xC4E\xA0Xc{YRGҦٯ/9\xA3\xDB\xC68A`;\x92\x87\x87\x9CC\xFAz1\xF9\xF0\xD9
+\xC0\x85\xC5z\xF38tbp\xF0\xB7};0\xF3g܏`\xB1\x9B&lt;\xB2kY'\xF0Mf2\xA9$|\x9F^
+\x9F\xB9\xDC\xE1b\xFA7,~\x9F\xDC.&amp;Qăf\x9E\xE0!\xF8\x9Eϣ.]\xEE\xFB\xA0\xE5d\xDD?\xE5at\xE0鵁\x9E\x80\xE2\xC7d\x89H\x98+\xE0\x8FD\x83p\g
+\x8BN\xE6 \x9F\x87\xFE`\xFCȖ&quot;p\xAD\x{D948}6y+%|U;U\xCBԦr
+\x88&lt;\xF9c\xC9FB\xA35C\x80d\x82/~\xECR\xA2\xA3\xF0\xC3F+\xD6\xF5ю\xA3G.cތ\xB7\xD6\xEDM\x91\xAFU*\xF3\xDAA%ه]\x94Z\xE1ǐa\x95\xF4\xDB{\xD7ndE\xA6\xA8\x8Eǝ\xD6\xE1]^պYժ\xC8+X\x9AJ\xE5\xA8\xB7l\xAC\xF9\xDD\xD7{\xF4; \xD9\xFC\xD3=||\xB8{\xCFѐ,\xBAg&gt;w|\xEBz\x81&gt;&gt;\x96e\xA6V        \xB9ĸ\xD1\xC9nG\xFE\xEF\xF2Z\xEAu\xB2\x92\xB0d\xE8s9UA*\xD7*\x97)\xA8\x914\xB62I\xA5\x865\x86Le\xB2\xB2\xA1\xEA7\x86E:aY\x81έ        A\xEE\xEA0{\xCD
+MÅA\xCCg\xA1\xA9\x9B\xEA|8Z&lt;\xE1;_FF\xEB&quot;CDW\x9DE\xB4\xC6u!\xF4\xF0N
+~u\x9CY\xF4\xDBQH&quot;\x9De\xF3\xFB\x87\xA7\xB9\xCA^\x9E\x90\xE6'\xA4\x84o\x8F\xE3
+]l\x8F\x9115\xB5\xA9J&gt;[7\xB9\xA9&amp;\xB2\xB9\xCA\x9D \x9555\xC5j\x82\xCCW\x9B\xE4)XJ/]\x97:b\xE0\x8D\xE9?\x9D\xA9\xE3\xD0]8/\xD3\xFE\xEC\x90\xE9\xAA\xC8k]dgd\xDA\xF7\x99F&gt;\xFB)A\xBCO\xB6\x91-m\xBA\xAD\xF7\xACk\xE7\xF7\x99
+\x93蘋\xF7V\x{13F36C}kz_\xD5I\xDDT\xD8gxhg\xFBy\xAD\x8B\xDD\xD0u\xB6+\x831{'\xC9 \x82\xC4y\xE4
+g
+y\xD8O5\xDEM\xBC/\xA7\xB8C\xE5öl\xC7ܑ\xB9\xBDo\xCA\xF0\xD7_\xEA\xC3X}\x97d\xE8&lt;\xAC\xFD١\xD0R\xEBBWg`\xEDm\xC7X\x8D5\xA3\x88\xB8ZiU\xE8i\xBC5{\x9A\x87R\xE4Ů\x8DѾG\x89
+\xB0Z\xF1\xBBm\x8Bc\x8B&gt;.\x83\xB9\xE9&quot;\xF84D\x9AzC\x99\xDAӽ\xEE=ϣq9
+\xF1\xBE٧\xC2cH\xC4P\xFD\xC0\xA3\xEB\xDD\xFBb\xCB\xE9Q\xFEh&lt;F\xF7\xACJ\x91\xF0v}\xDD_
+\xCA\xE0X\xDDƤ\xA9&lt;\xB80\xB0\x91W\xA3FHSː%\xE7\xF8\xB4\x8D\xFE\xC1
+\xEA\xFA6\xA9L\x95P:\xB3╮\x921G\xAD\xE2\xA3k\xB8\x93\xBBg\xA9\xAB\xAB\xA3)C_pO \xB4\xA2\x82{8MQX\x95\xEC\xCAL~\xC3Q\xF0\xCB\xF1\xF1\xE4
+\xC4&amp;\xA2~&gt;-͝9\x99&quot;,RϘ\xAD\xB5\xFC\xB7A\xEE\xDEh\xA2|\x91\xBA\xFEA\xCAR\x84r\xF8+\xC9T
+ߓ\xACA\xA1I\xB4\xBC\xA2.\x9D\xB1\xC8q\x9C O(\xA3\x8F\xB8\xAD\x98'.\xE2tHR\xECq\x9C-(jУ=\x94\xB0u\xCBW\x97/\x94\xC9\xEAE\xD6s\xF5=V\xCA\xD3\xC3=\xCB^B\x9B\xE5\x9F
+\xF1kT\xD2PUA\x89\xAD7!\xDF{\xBE*4*iY\xE4\xA9\xD0bO\xE5p\x95\xC1\xB4|\xFC \xF1/r\xAF\xA3\x8B)\xEE +P5eYh\x9A\xCDI\x8Di\xBFu&lt;&amp;\xCF\xC5w        \x99\xAA\xE8C&gt;&lt;f\xF4\xF6y]=\x94\xAC.@\xF2
+\xBF \xFAb\xE6c\xBC)\xE9@\x82E\xB6QHC0|\xF9\xD1\xDBw&gt;Ԛ\x9F\xEA:\xCF        \xB8\xEC\xBAgU\x9F\xD1r\xB8d\xD2\xEA1j\xB9E\xA2q\xAC\x9A\xE3\x{112510}\xC3L8\xB8\x91\x9B\xAA\x94r\xB5\xA5\xED\xD4e\xED^\xA3\x93|CØ\x94V'\x8E.C\xC6\xF1ǎ~th\xEBz\x80\xC8
+G\x8E\xB3%{.\xAB\xE5\x94i\x84\xE9aZ\xBC2\xBB\xFD\x82ى\xF2$˰\xFDm\xB5T^6\xB5=H\xF1B\x86\xA7\xF3\xA2\x86WUo\xDB&gt;\xA9d4\x94\xDE\xE0&gt;I\xAF\xF0\xC2\xF1hz\xFCkQUR\xAFp\xCB\xC5
+\xFBt\xB7 !\x86M\xC8P|[\xD5jg6ö#2tGܴ\xFE\xBA\x85\xB1\xA1\xBB\xFF\xA9\xD2\xD2nMK6\xB0\xBBD\xD6\xDD\xCF_`\xF5\xB9]^\x9DB7\xA7t\xE7 \xB9j*\x99R\xCB\xC62\xA3~\xDER\x89l\xE36\x8C-\xBC-^p\xB9kV[(uQ\xB7\xFEF2\x84\xC82H\xD2\xF4$\xB9n8\xEB6׎\xDCUA\xB7\xE1?U\xBF\x9D\xA6\xD4
+\xBCN{,\xA37\xBD!T\xEDNd\xF6\xA5mQ\x98o E.\xA1\xC0^i\xAF\xB97\x8A;\x84\\xF1
+2\xEF;e\xD0S \xB1\xEC\x84\xD2c\xE2\xC2~\xFBx\xDDJzF\xA4\x92\x9C%\xB2\xAA\xBBc!݃}\xB7j\xB3\xA5\xB3\xA0\x93\xA4\xC5\xF1x%'ΰ\x88w\xF95\x86\xFA|{cY\xC3/\xBB\xFF)&lt;
+endstream
+endobj
+
+17 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+/F18 21 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 22 0 R
+&gt;&gt;
+endobj
+
+24 0 obj
+&lt;&lt;
+/Length 1495
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڥWMo\xDBF\xBD\xFBW̑$f\xB9\xFC\x99\x9C\xEA8Aݴ\x8D        m\xBB0\xD6\xE4\xD2چ&quot;\xD5%U\xF9\xF5\x9D\xD9%EJ\x96\x94&quot;\x85\x92L\xED̼7\xEF͎\xAE\x97W\xAF\xDE{!x\xB0̯7\x89X \xFF\xBA\xB7        \x83y0w\x83\x96\xEB\xAB{\xE7Z6&gt;\xC9B\x8AZ—Ɍ\x8E\xE72\x97O\xFE\x84\xE5OW\xEF\x96Wq\xEC\x86\xCC}\xEEF\xF8\x81\xC70\xF3\xDC -\xAF\xF2\xFDS7\x8AO&lt;\xBD6\xA5DJ        :\x89\x958\x87_\x84\xCE&lt;6\x81\xE5_1\xF00p\xA3`8|\xEF&lt;\xF0гgg&lt;a\xCE\xE2\xF3n#\xE1g\xB5V\x8D\xCC,\x94K\x85Q\xE8ƣxΝx\x96З\xD1\xC3\xE9\xBE\x89G@G\xE9}L\xFBN\x95C\xBC\xCFv\xBEz\xE42\xE1\xE0\xCF\xDD\xF6mU\xE6*\x93ec\x9A\xA0D\xF1\xEANW\xAD\xF0c\xE4`\x97\xF4\xEE\xC8P\x91DZ        ,\xC6Q\xF5\xCE\xED\xC3ޕ⩐5\xBC\x82L\xD5\xF6m\x8B=\xC6U9{ey\xA5\xB7Bg \xB5\xAE4\xA4\x95\xD62mTUƒÆC\x86FmEH\xCB \xEBų\x84\xD7s&lt;z        i3=L\xDC}\x85\xF3\xE3
+\xB1\xD7Q\xBB,0.&gt;\xDC=\xAA\xB2\xA1\x82n\x96\xBC9\xCB4\xE1\x8ABߝ\xFF7`\xF89\xAD\xCAF\x95m\xD5\xD6\xD0hQ\xD6kU\xD7/ x\xEF\xD7ơ\xBD\xC0e~\xE2٢\xBA\xF7\x84\xC7c{\xDCȴʤ\xA6&amp;6\xBA*&amp;\xDCs`\xD1\xE86m\xE0F֩V&quot;v\xE23+y\xD1\xC7\xF1}\xDF'\x8F\x8Esi U|~L\xFB$\xBE㮎\xF5v*X\x80\xF2`\xCCy\x98\x9C\xE5\x91\x851w\xFD\xC8f]\xAE$d\xBA\xDA j\xB5ľ\xCFcg\x84\xE4E\xBF9\xE6\xC6\C$[\xFE\xED\xCF7\x91\xAF\x8E*\xCB\xD2y\xAFq\x9C-\xE30(\x80\x95\xC0\xE6bYyU\xD5V\x95\xCFV\xA3X\x93kƏ\x97\x98~\xAE\xE5\xFAI\xEA\xFAu\xFB\x94&amp;\xC3\xC0s\xF9@/j\xD2\xE7\x93YĘS\x8B\x{16641F}D#\xDF\\xF6]ȣ\xDE\xC8V\x9F :IU\xE5Z\xFE\xDD\xCA2ݡ\xE3\xE0G\xA9\x9B\xAF$\xD2f \x94h\x9C;U\xDBl\xDAj\xF5\\x8A…Ūj\x8B \x9E$\x88l\xEA\xB1JiR7&amp;\x88*ͱ\x97ٚ\x9ET\xC6gg\xBE\x8C(\xA3 \xBF\x89Be'L\xFDE-YCK\x88cS\xC4f_\x90 \x9D\xE5#\x87\xF8\xF1\xB2σ9\xA7Ka\xEC\xF3\\x8B\xB5\\xA8\xAF\xF2\xB2Ճ0v\xF9\x9Eˏ\xC8\xE5{:X#7_        \xAF+\xEB7 \x8A\xAD\xD8\xD5vf՛\xAÄ$\x973X\xD7T霆q&amp;\xF1\x9AL\x88\xB4\xF2@$S\xF0\xF1ξ \xC6\xF7\x99\xDC\xC8.P        gE\xC3\x9F\xA6X\xD8I6\xC8\xE4,2?
+h\xDE\xF7'\xDCKz \xBC\xA8v\xDC\xD5wR߉\xF4\xB3l\xBE\xC1 \x9Ck\xFC\xB5%\xEC\xB9\xE9\xC2\x99$\x8B\x82\xC4d՘\xC1\xC6$p\xEDzW\xE1\xE0\xC4y\x9D&lt;_*q\xA4o
+ɜB@l\x86!\xFA\x91Gt\x8C!\xAE+-o\xCBFj4@7Im\xE3/\x83\xF5q\x8F\x89\x82\xB9♺ϝ\xEDJ\xA5+خ$\x8AF\xA2K62U\xB9\x92\xB55%\xEC\x99HEIf\xAB\x9E\xA1Jd!\xD7\xD5\xFA%Z\xBC\xF5`\xDD\x8D\x9A\x99c\xC8ծ\xA8Df\xC3\xD1@z\x92\x98\xEA\xA9\xCDs\xA91HG\xEF\xE0s\xB4]AȎ\xF7\xAD{\xD2g.
+\xA9\xF2\xF8\xFE\xDDۏy^K&lt;\xE1\xC3^dh\xB9Qu#\xCATb\x91͖\xEA\#\xD4=\xBA
+\xB1\xE6\xB6\xCC\xA6\xEA\xFFk\xBE@z0v\xA2a\xE4&quot;+\x8F \xF1\xEE:\x99\xF90C\xFD\x99o\xAB\xF5\x97\x99n\xFC0IW
+\xDD\x989\xFD\xE5\xB2UE\xD1\xFB\xDA\xFE}#tF¥\x9D\xA4\xC0\xD6\xE6mi\x97\x95T85os\xBB\x92\xEB'\x9A\x87\x9B\x8DT_\xF6\xBAB\x91\x83\xDA*\x9BX\xA2\xE9;ILǭæ׍\x95\x8A\x84ras\xE8D\x96.\xDDTX`Q\xECz$F&amp;\x9D\xBF`Y!\xBB\x99JqhX\x85\xEE\xF3\xD9)\x86\xE9p}8Fb\xA7VW?).W\xA5\xAAW2\xB3\xDF&lt;;\xAFp\xA2\x900\x92\xB0\xDBϚ\xED\xFCK\xDAE\x869ڬ\xBF`\x88z\xB8\xE4w/f\xEE\x9Cgj\x8E?-p\x9E\x8Db`Z6f׈\xE3\xC01\xEB\xDD57\xF3B\xBAUf\xE6\xA6\xEF\xF6׃cH-E\xB63\xE2\xA2\xA5\xFC\xA7\xEBy߲\xDF\xCDRN\xBD\xBAh]/\xE4\xFD\x8A\xFB\xFDX\x87X\x987=.\xB5\xAC\x9A\xA1\xF5{ՠ0Ϡ5\x9B\x92uF\x85[P\xBD\xFE\x87I5&quot;s
+\xC7\xD5\xFDJ\x82,p\xE7\x84*;_\xB4\xB8{\xE7\xC5\xE0\x85\xCCH\x91\xFB\xFD2\xF7Z\xF4\xD9(\xC0\xBD\x90\xA2\xE9\x9E        \\xAC\xBB\xBB~(\xEAjj\xACu\xB9[\xF8\x8B\xC9\xFE\xFE\xDD\xDAǸ\xB7\x{DCB3}~\xD8\xCF\xCEW\xE0\xB1\xA1c\xA8B\x957\xB8\xB1\\xF0\xA1٩G\xB3\xF96\xFEN\xFFxvD&quot;
+endstream
+endobj
+
+23 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 24 0 R
+&gt;&gt;
+endobj
+
+26 0 obj
+&lt;&lt;
+/Length 1185
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xC5W]s\xAB6}\xF7\xAF\xD8Gܱ\x86ۧ\xA4\xC9\x{D939}\x9D\xA6\xB5;}\xB0;\xC2V\x83!#DR\xF7\xD7wW` N\xEC&amp;O\x9D&lt;c\xAD\xF6\xEC\x9EsV\xCA\xD5bt\xF1\xD5\xF1\xC1\x81E6\x8AX\xD8\xD8\xF8\xD7&gt;F6̼\xF3BXlGK\xEBJ\xE8~\xB9\x88+/\xE3)\xF7,\x87ٌ\x8F\xFF\x84\xC5O\xA3\x9B\xC5( \x99\xC0\xCC\xE5,\xCF\xF5X\xC2\xD4a\x9EJ\x8C\xB2\xEEW\x84\xEF\xFCze\xA0g\xA0xE&quot;\xCB\xE1\xF0s\xAC\x80ێ=\x86\xC5_gk\xE0\xBE\xC7\xEF\xBC\xB4V\xDCw\x9A\xD8)\x8Flk\xFE\xB4{\xF0Mn\xA5iS\xCA9 ^೰\xB7\x9Fu\xAF\xECa\xB4a\x90B\xF0Ë*\xB4\x97\xDEô\xA1k\x95\x84]\xB6\xD3豗w\xC6\xDA\xE8\xEDe\x91\xC9Tڐ \xE3\xFC\xE2^\x95\xCFJ\xE2\xD7\xC0B\x96Ԯ\xDBzv\x8C\x88H\xB5C\x86O\x84~~w\xFF0\x97\xF9\xD3\xC3\xFC\xFA\xEE\xE1Z$e*N\xD6\xC2]\xAF*+\x90\xEB\xA2T&quot;\x9D@\x8C\xCF\xE8
+\xBEKHz#\x90\xD6m, Y\xAC\xE19V\xB0`zkv\x9F\xE2\xC8=\xAC&lt;\xAE4.N\x84|)\xAEM\x9E\x84\xDCH\x898\x85L\x95[\x88 \xDC] U\xC49&lt;\xD6Y&amp;;\xE2\xDD\xF1\x98\xEDFN\x83\xB4}\xC6B\x83\xC0\xA1\xF6گu\x91hY\xAC\xAC\xE3
+\xDF        v\x90f\xD4\xFDa\x83\xE5\xB0U\x97\xF7\xB7cl=\xDBs\xF8\xDEf\xAE͙\xCF\xFBhV\xE3\x93]&amp;خ\x8B\xF47Y/\xF3\xB2\xBB\xBAV5D(U* \xBE&amp;$(\xDFz\xDD\xC8dC}\xB3AfP\x94\xED\x8AW\xA4FIYS\xB1\xBFi\xAD\x88\x92\xB6M, r\xA2a\x9F\xC4\xDF&quot;\xA9\xE9\x89\xC1%bk$^\xE2\xBC
+-w\xD2%\xB2\x92\xCA$֢\xC4`\x81\xE7\xB22|\x9B\x9B\xE5XZf\xE2\x9DEA'\xB5\xF0( C|)I\xE8\xB4n\xB9\x91\x91\xDB'C
+\xB4kv\xAD\x90\x8BS=u\x9B\xCE\xF7bYg\xD9\xF7 \xE2^Ge\x91\xE4\xB4\xC0\xB6\x87\xF8Q臛\x82\xEAP\xF8\xF2\x81\xC22\xE8]S\xB1k\xBA\xDAF\xBB\xBECh\xD5\xD5Ncݍ
+\xFA+W\xE3\xEF\xFD\xE2\x9Ey7\x88\xF9r\xB2&lt;'
+\xC1缅l\xAD\xAC_Vc\xA08&quot;A4\xA1\xD2D\xB6\xF8\x916k 4\x8D`ʙ\xDB\xB8U\xA2\xE431\xFF\xA5ǜ\xDF0\xF7\xB2\xE6[J\xEA1\xE7@^\xAE\xDA\xF4&lt;\xBF\xFDv\xF76WQo\xF1;\xAE1YI3g'\x93{\x8B jgp\xB6\xF8^\xD8\xEFf\xFA\xA0N;=c\xCE8\xCFK\xA3S3\x97\xE4z\xA3!ޒ%\xD9VlK\xB5\x83\xAE!\xFB\xB9T\xE1(&quot;e*5(\xED\xBCz&lt;{z\xAFH? ts[H\xDDꦝE&amp;\xD4z \x9D\x97R\xA6ݯ6\xFD\xEA\x84\xF8\xD9邀L\xDAqj\x8ER\xC7\xEB$Gl\x98\\x98 \xAD\xCA|\xAEU\x9Dh؇\xD6\xD5Y        b\xB3a\xAA\xF3\xF2s=\x97\xD9a+\xBF\xDB \xE0͠c\xE7\xE6\xF2p߰\xBC\xFF\xC8wi\xE4\xDE\xCFVW\xF8A\xD52\xBC\xAEд\xAA Y\\xE7\xFA@\xA3\xD0\xE7\xE0'|`&amp;\x98E\xDC\xE1y\x8B\xBA\xAC\xDE\xCAbrZ\xDC\xE3 +\xE1a\xB0oSG\xE1ii\xBBx\x80 \x83b\x9C\x92\xAA-\x89ҿ)\xCBT?9+O&gt;3
+?@h\xA5\xF0n\xAB\xF1\xF6&quot;\x96
+\xF8\xBE\xB96\xB115\x8E\xF0M\x86\xA7£@\xC74Fˤ\xC2s\x80\xDE\xD3        \xE5Y\xB8\xAEײI;        \xA6x\xD0LGn\xE3]oC\x8CR\xE92\xB1\xDD5\xE0\xA8\xEF\xE4RY\xE0\x97-\xFB\xBAta \xA2\xB49뎆\x99\xE3\xB1\xF6
+诤\xC9rV\x9C\xEF &lt;\xED\xE6_k\xA1v\xB0s\x82緆ϛ\xDA\xFD\xFFL\xED\xE0=\xC4ߟ)\xB7\x9F\xB2\xB4\xE3\x84\xFB\xAE}\xD4҇\x90\xE5\xC7&lt;\x8D\x82 a\xE1U\xA2V\xAA\xB9 3k\xAF\x8C\xDE
+\xA7\x9D\xE7\xCB\xE3\xBF+\xFF\x9E6v'
+endstream
+endobj
+
+25 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 26 0 R
+&gt;&gt;
+endobj
+
+28 0 obj
+&lt;&lt;
+/Length 1610
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڕW[O\xE3F~ϯ\x98G\xB3\x82Y\xCF\xF8\xCEJ\x95J\xA1\xDD\xDD\xEEj\xC9Th\x88'\xC4ű\xA3\xF1\x9A\xFE\xFA\x9E3\xE3\xCB\xB0\xD3
+\x89\xECs\xFB\xCE\xF9\xCE\xE5b\xB9\xF8\xF8+\x8B#\xCB\xF5&quot;\xA3Y\xECgć\x9F\xEEk\xE6\x93$Lh\x98\x92\xE5vq\xEB]H-\xC8YJ\xD1H\xF2|r\xC6C\x8FQ\x9F\xF2\x93?\xC9\xF2\xF7\xC5\xD5r\x91\xA64\x8AIp\x930i\x9A\x923FÐ(\xB9XOi\x9C\xBE\xF3\xF4¸ϸf(        \x9Ex\x8C\x93\xAFB\xEE3\xFF\x84,\xFF\x9A\x8D\x81G!\x8D\xC3Q\xF8ֻ\xE3\xB3\xB2g&lt;󽛧\xFDN\x92/Ŷ\xD02\xB7\xA1\xCC9\xC6M}\xDEw\xF1(I\xEFF'\xA2|\x84\xC3@\xF3\x98M\xAF^\x93t\xB06\xED=`\x99q$\xB4\x93\xB6\xDE\xFERW\xEB&quot;\x97\x956I(D\xF9\xF1\xBB\xAAw\xAA\x80?c\xB2\xA4\xF6\xAF=¤\xFA)d\x9D\xBF\x94\xCDJ;]\xD4չ\x89\xC1ǜ\xB0\x8C,\xF3\x85\xF7C\xEAVU
+\xD1IV\xADR`\x8F\xC8jU\xE7R\x91Fj]T\x8F\xCD\xE9z\xF2\xDA\x80\x8B\xA1\xC7YHn\xAC\x81\xF0\x8D\xBAm&amp;\xE1
+\xA2\x8Bđ\xA1d\xB9)\xB2n\xABzI\xB6bO\xC0Q\x962'\xBA\xB6\xF6\xCF8\xA7,@߹q}\xB5\x91\xAB'\xE3x\xEF(\xC0\xF1\xEF.:\xE96\xE0YW\xF4\xDE\xCD\xE7\xEF\xF7č\x9F7E\xF9ts\xF9\xF9\xFE\xCA\xE8\xB8\xF3H\xC8\xF5\xB80\xF6Yhx\xAE\x8B|x\xEA\xE3S\xCEs\xDF&lt;\xFC\xD0!O\x9C\x99wPI`\xA3\xA8\xABFj        %ƣ\xEB/\x9F{\x8F\xA0&amp;\xB4\xAA\xCB\xADڕ&amp;h\xA2\xFB\xCFk#\xC1\xFF\xB3\xD1C\x9E\xCC,\xEDh\xC4vW\xCA\xE6\xBA:\xED\xE0\xEF]9\xF3̉\xBB\xBA\x99 \xB1\xE4R\xF2Z\xF2C\xDD\xEAK\xA1Ŵ\x9C\xE3\xA6+W]\xEC\xB5l\xBE\xB5\xBA \xEFN&gt;\xF5U\xCFi\x90&amp;\xE7|\xB2JY\x96\x92\x88EXݶ\xA3x\xD7\xBFݝ \xB1}\xEF\xAAg\xEA\xA0߫\xB3\xC8g\xA6Ȝd1\xDA        \x80\xC1\xBBbS\xDD*\x894\xD8\xD4e&gt;\xB0se\x95\xCDy\x98ƔY\x8E\x8D\xE9\x9C7\xEF\x88X\xAE\xAB]\xABɳ\\xE9Z\x91\x97Bo\xA6\xBBA\xE04\x88]c5L\xB7\x83$\xA5        w\x85\x80Ţ͋\x9At.χ\x980\xB4yh\xECH\x88\x83\xC8m\xE3\xED\xF6 Å\x89\xB67L\xBE\xB6\x8D\xA4\xA1/6\xBB\xBA\xCA1\xFB\x99\x99dۖ\xBA\x80\x97\x88;\xE9\xA9\xDC2\xD40\x9Fl\xA1o\x8A*\xC7FVA\xEA\x8A\xC7
+X\xD0QM×\xF88\xC2(\xEE;\xD3X3g\xB6\xB6YHC\xE6\x90\xF0\xA7\x9DX=I}S\xFC#-Jg\x99q$8`\xD48xJ\xFD\xB0\xCB8\x948&amp;!;\xB1/k\x91ϣ\xCF\xCA,\xFA#
+\x8F\x98DR\xD9;\x87\x81\xFFw\xB1m\xB7\xA4\xD2\xF1\x80*        ́\xFAE&quot;\xFAY\xE0\xD5\xE0\xD9\xF6&amp;b\xEB\xFA\xB9\x93\xD0\xDAc\x81,·\x83\xC81Nyj\xE4\xE7f\xE5\xADg\xA6Ta\x87\xE5V\x80\xB2\x8E\x8B\xE0X{f|\xC1W\xEE\x814\x8E\xB4\xBE6\xDE\x9C         \xC2\xE4-O\xC8 Qbꧮ\xD4A\xB1MBI\x91\xF7\xD32\xC0f\xACʵ\xAA\xB7\xD3\xD4e\xCC\xEC\x80A\xC8\xCD\xFB\xA0\xBC9\xEEK\xB3WB\xA6\xE0\xDB\xF5Z*\xDCЮ\xA5\xAA y{\xD2V\xBA(\x89\xD0K=\xD3A\xA0d\xB1\xAB\xF1
+\xA0\xBD\xFB\xA9\x97C\x81O\xBB\x90&lt;\xE9{\x85 \x9AxE)Jy\x8A\xBEl\x8AՆ\xECj\xDC\xEAj(̻Mwp57\xBA\x81\x91\xBF\xA8BkY
+˻@\xC3n\x89\x981ޓ\xBC#\xE9\xA4\xEF\xA6P\xBB\x94\x98\xEA\xDA        %\xB60\xB6\xDE\xC2\xE74\xAE\xB0\xE2\xA7V\xB6\xCE\xEC\xB5,;\xBA\xF5\xA9\x9E\xB5;!\xF3j\xA6ȁ4\xCCF@n\xBB\xEAD\,\xA9\xDD\xC5n\xBA&amp;;C\x9E\xE1\x86\xE9V\xD8\xC3        \xFF.H\xF0n\xC2\x91f'Wź\x90=[\xDF\xEF,]W\x85\xB2`.ѝ&amp;a\x96Q\\xA0
+\xA8\xDBz\xFD        \xD4\xD9&amp;p\xE7A\xB1l\xEBFC\xFF\xC2\xF7_\xAB\xDE׭&quot;b\xB7\x83\xA8\x99W+aV[\xA7cu\xF8F\xD8/\xCEe\xD3\xE5\x93\xC58#x\x9C\xF5=\xFBh\xF9D\xBEs\x94J\x89=%\x90\x88\xAE9N\x97M\x90\xE2a\xE5\xC8\xCFD\xE8\xC7pȌ&quot;\xB7\x9E\xB27v\xC9\xD4@+`\xA3\xE5P8H͑H
+\xB9[\xE4\xEEU3'\xD8Kxv\x93\xE88&quot;1\x9E\xA4\x8E\x80Q\x96d+1\x83\xC31\x8DJC\x919\xE2c\x8F\x9A!S\xE1y\xE8H5\xC3j\xB7m\xFB\x9E A\xC0\x87y\xF6`\x8El(Ϣ,r\xFC\xDDJ\xAC\xBDFJ\x92\x8F\xC3
+}\x9E\x9BӜG\xEE\xB53yS\xCC\xF0+Ŭj`v\x9F\x9C\xA0\xBFT/E'\x97R\xB5\xEAgЮ6E\xAF\xA0\xA0\x91\xF4q\xEAa\xBBrY\x8F\x94s\x93n\xD7\xCB\xE9\xAA\xE7\x807\xF3i\xFC\x9F',\xA3\x80\xC1\xA14\x829vyL\xB0\xC6\xC1
+_\xDBY5\x93\xEF,\xA3\xAE\xFD\xB7#        \xCEw)\xB3v~\x98۠\xBB\xBAh\xE4s{y
+'4\x81\x80\xDCR\x87\xE8oR\xDF_J\xB3`\xDC\xE3t\xEBo\xD1\xE0\xEDUw\xF4\x87\\xAE\xF0\xAD \xA7\xAFG\xCE Wd~ic\xBEi&quot;\xE3\x8Eh\xC6-\x80f{]ǘ\\x9CE\xA8\xF0j\xB9\xF8\x80Q\xC0/
+endstream
+endobj
+
+27 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 28 0 R
+&gt;&gt;
+endobj
+
+30 0 obj
+&lt;&lt;
+/Length 1445
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڭW\xDFo\xDB6~\xCF_\xC1G9\x88Y\x89\xFAa\xA9\xF6\x90\xA5ŲvkP{\xD8C=\x8CD\xC7\%ʠ\xA8$\xEE_\xBF;R\xB2\xE5\xD8r:`ے\xEE\xEE\xBB\xEF&gt;ޝ\xAEo\xDE1        \xC8bu\x91\xD1,\xF13\xE2\xC3_\xF75\xF3\xC9,\x9A\xD1(%\x8B\xEA\xE2\x8Bw- '\x9FE)x#\xC8\xE3d\xCA&quot;/\xA0&gt;e\x93\xBF\xC9ⷋw\x8B\x8B4\xA5qBf!\xA3        \x89ˆ\xA6)\x994\x8A\x88\xAB\xDD]\x9A\xA4'\xEE^[(\xC9(Q\x86\x96\x80\xC4 \xF9\x9Dk\xC2\xFC\xC0\x9F\x90\xC5?gs`qD\x93ho\xFC\xC5[\xB28p\xB6S\x96\xF9\xDE\xFC\xDBv#\xC8GYI#
+\x97\xCA9 Q\xD3t\xE0ϻ\xE3\x82\xF40:3\x88&amp;\xF0e&amp;:\x9F@\xD84\xF4\xEAIw\xD1\xC6\xD1\x97#\xE1\x8Cv\xD6\xED/\xB5Z\xC9B(c\x8B y\xF9\xE6N\xD7-\xE1g\xE2A\x95\xF4\xF6e&quot;{D\xC0d\x92E\xE8\xD1߈&amp;\xD7rcd\xAD\xDE\xDA$|,J\x90\x91E\xD1\xFE\x87\xB1\xA7\xA5\x990扆\x98\xB5 \x8D\xFC.\xA0\xC7\xEF\xF3ۏH!\xF2\xBA\x9A4\x86A\xA4&quot;\xAA\xAD\xEE\xE17&lt;s\xBF5hU\x93\x9C\xD9A,\xA1aB\x92\xD4\xC72!$\xF07\x87\xD7hKǙ\xC5&lt;k\x8BF\x82$\xCDZ6dժ\xB3\xC1\xA8\xBC,\xEBA!V-ֆ\xF0\xAAn\x95!\x95\xA8j\xBD%͆炬jm\x9F\xE8\xF0#\x9E͌v\x97}\xFBB?\xE0\xF7\xE5Tb\x88/`\x94\xB9\xA4\xE6\xEE\xBEJ\x8C\x9FsY~\xFB:\xBF\xF9\xF0\xF5VIs\xE3\x82.\xBD&gt;,\xA3\xCB\xD0\xC6m\xFC\xC7Z\xBB\xBB\xBE\xBB\xEB\xDB;\x97H\x96\xE5\xDDޟ&amp;\xD6*\xB2\x{1D64DF}\xFAL\x98\xA5i\xF8\xFC\xDBQ^\x83,%q\x9C\xF4\xF2^z\xB7o&gt;-'\xE4\x9DT\xD9q1ͬg\x87\xF1\x9C\x90&lt;LT
+Um\x98\xB6ήz(G\xB2\x88Q\xB6\x89^h3\x8A\x9Ee\x9D\x98P\xB28\xD0Ś[E\xDE \x92\x83&gt;D\xDF@\xA0\xA9\xD3\xD1ئ\xF8\x99;\xF8$[\xDF\xCBa\\xA4\xE2ہ7x@\x8BF\xFBT\h\xC5\xCB        [Ź#1\x94\x99Tp[\x81 \x9F\xD6B\x81-rf\xA4z \x9C(\xF1D@\xB9 CG\xC36C\xAFל\xD3\xDB\xD2;\xA5\xB6hDm\x8CF\xBD\xDE\xEC\x8D \x85\xEEB_W\xC4) \xB2\xB5q\xA1C\xF4q\xA1k]\x97s\xA3\xDB\xDC\:\xAA\xC1\xE0\xC0Qیy\x82L-ʺ1\xEFK\xFEpu\x98ʡe^\xA9/\xCE\xCE&lt;\xBAm\xC1o\xEA\xB0`\xD5\xFB&lt;\xA5\xBAᆏ\xB8\x8E~\xCCu\x8Fx\xE0Wٮv\xAB\xCE$$\x87i^6\xBCڔ\xA2\xF9Ԛ\xFFb\xA5\xE6;\xB3\xCE*\xFAzC\xC8X\xB4\xFA\xDEp#\x8EzÈ8C\x86K_\xEE*\xFEJ\xBC\xBDɩxm(\xA8\xB3qY\xC6\xFA\x86\xD6\xCB\xE6|Խ\xC1 A\xD1z\xC0\x8Ca\xE0\xD0K\xB1\xED\xC2\xF9\x87\x9C6\x91 ^V0\x97)xR\xB5\xBDn\xC0=~\xD0\xF1\x88g݈\xEF\xA5\xF7
+\xBC\xDD\xE3ܝ\x83\xB1\xE1۲\xE6E\xD7\xDF\\xD3)\xCE\x93\x84\xD4w\xD5\xEC\xB5\xF9J佁 \xFDNji \xB6\xBEJ\xD7iN\x85\xD3\xDB\xFB\xC0\xA3K}|\x99b\x8Auar&gt;\xBB(\xC5\x96\xD6\xFD1zK\xCEg\xB87Zz{\xB9\xA4\xF3p&gt;bR\xD6rp_ \xB9\xB7r!\xF7\xA4\xA7\x82\xFF\xC8\xE4\x8D\xDD\xE8\xB2\xC3O\xBA\xB1[q(N?\x8A\xEC@Až\xC52\\xF7\xC2\xD8\xC3\xE1á~\xB8\xE5j\xF8#\xD3*\xB9h5\xCE#\xA3\xB9j6\xB56W\xD6\xEDp\x92e\xDD$۴\x86\x8C\xF2\x8D\xE1DܭG\xFD\xA1g        \xF6C\xC9\x93f]\xB7%Nob\xA7mM\x82+R\xFD$wM\xDA\xCB&gt;.bLĸ &lt;\xF7a\\x87\xB3\x97\x8C\x81\xC9 \xE1)\xAC\xEC,\xDC-ކk^        \xD8H\xD5\x85\xE2zG\xB9\x85Z\x98|m\xE9S\xE7p\x89@\xDBƭG\xEBi\xDEs\xEDG\xEBv/1]Sj\\xE2V8X5\x8D\xFDj        PɯB\x9Bn\x8B\xAF[\x83\xE8\xF9\x80\xAB
+DB\xF2\x8Ev\xB8'i\xD6\xE7J
+\xAFY$\x80׺Y2\xDC\xD4\xDAf\xFA\xB3\x93\xEE\xE7\xE1l8\xDEۀR\xAC\xEF\xDE\xC1\xADq\x84A\x81\x85jZ\x8Dɯ\xB99\xDC\xFBܺ\xB5-\xA6q\xB4g\xDE&amp;lyVa\xE3Ϲ\x85;
+\xD7Y\xB4t\xE0,9ݦ\x98s\x85Ay\xBE\x96\xE2\xA2
+\x89\xAA:\xA6\xFD~\x8BD\xD9\xED$&amp;\xBE\xDB\xD7\xF0\xF2! \xF2\xC8\xCB־&gt;\xB1\xC8\xF7}Dn\x8E\KUȼ\xDF\xFD\xCA\xFA        \xC5ße\xD5V\xA7ݯ\xB8\xB0\x896\xF0\xEDN)n\x8A\x88\xB0\xDDP\xE2B\xC0+\xFA\xBF9\x836\xB8
+endstream
+endobj
+
+29 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 30 0 R
+&gt;&gt;
+endobj
+
+32 0 obj
+&lt;&lt;
+/Length 1509
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڵWKs\x9BH\xBE\xEBW\xF4%\xD6\x86w\xF6\xE68\xAE\xCA&amp;\xBBIźY[\xAA\x91\xA4\xD9 P\xC1`\xC7\xFB\xEB\xB7\xE7\x81@\x8A\x90\x9DC\xCAU_\xF7\xD7\xF9\xE4\xFA\xCE \xC1\x83y&gt;II\xB9)\xB8\xF8goS\xE2 &amp;A\xF3\xDD\xE4\xC1\xB9\xE1\x92\xC17^p\xD6px\x9C\xCEh\xE0x\xC4%t\xFA\xCC\xFF\x9C|\x98O\x92\x84\x84\xC4&gt;%~@\x92f        \xA8\xF9$?\xBC%Qr\xE6퍦]\xA0\xA4
+\x89L\x8F\xC2_\xAC\xEAz\xEE\xE6\xFF^\xB4\x81\x86\x89\x82\xFC\xE0,h\xE8쌦\xAEs\xFF\xFDy\xCF\xE1\xB3\xD8        \xC93c\xCA%&quot;A\x92d \xCF\xF9\xCA6:\x86/A\xEA)C\xEAcT\x9B\xF8N\x95Cr\xD06\xCE}\x99R\xF0cbц\xED\xFB\xAA\xCCE\xC6K\xA9\x83 Xq\xFD\xB5\xAE\xF6\xB5\xC0\x9F\x91\x83Q\xAA\x9FO
+\xE9\xA9\xA0\xBA        \xC1;\xC5~\xBE\xE5\x90\xF1u\x95\xF1\xDA}\xC6$o@\x9E5\x92ɶ9\xD8\x9FJ\xF3\x91\xE4@\xC2\xEE5b\xD4!\xBEI\x80\xE6
+\x9E\xB6b\xBD\x85f[\xB5E+m\xC33\x90\x95\xD1:\xA3\xBE
+ \xA6
+~\x9EM\x9C-+\xB3\x82î-\xA4\xD8\xE3M^\xB3\x87=[\xE7\xB2!\xF7\\xB1oֵ\xD8KQ\x95\x80\x8E&gt;cP#\xEBv-\x89֠\x99A\xBD9k \xBA+
+}h\xAA\x8F\x95\xC8WA|\xBC(V\xF7\x9F\xBE.\xEFE\xF1}y\xFBi\xD9pV\xAF\xB7˼\xAA\x97\x9Fo\xBE}[8\xC7j\e\x8C\xE7k\xDC\xCF\xB5j\xF5\xEA\x8Du&amp;\xBF:\x86\xCF\xF0\x8B^\xC0\xBA*y\xC2        ˯gՊR&amp;\xFA\x83\xAD\xB0\xA2Ey\xCB$\xBCN0\xCA\xF5\xA2\xC1\xE5\xCD3f\xD0\xC7\xD2H&gt;fj1\xFA\xCD\xC1Ȣj\xE4\xB2\xCA\xF3\x86\xCB1Lo@\xEF\xE5\xD6ނ\xB3z,\xB7S*\x90\xE6gA\xE1\xC0\xDA\xC5\xF4k\xEB\x8C?:\xC0\xBB\xD1l\xF6\xD2B\x9A\xAAU\xF9\xB1p&gt;^YL\xE1v\x90l\x9C\x8C\xE6V\xE8\x85\xC45\xC9e\x83\xF2\x82\xB2\xFE{T\x86\xAA\xEEZ\xD9\xD6]\xFE\xE3幨XvY\xA5\xEB\xAEDt\xE1zAg0:\xFFnw+\xB4+k\xA5\xF0 \xCA_\xD1$!\xA1\xA6w\xA2\x99\xC2c(\xDC
+\xF4m\xB9\xE6\xBD\xEE;\x87|\xE2\xBC%\xB5#\x84\xCDr\xE3\xA2.\xBE\xB6\x91&lt;8\xE6ӎ\x8E\x8E\x94ŔZ\xE7Y\xF2aD\x8C+9\xF8\xF3\x80\x83\xC7Q\xB9\xF1ᇬ\xD9g
+ν\xAC-3VJP\xA2\x90G;^$xji}V\xBF\xC0\xE3\x80鈜Fo,\x8F$8\xE11KuY\x98\xFA\xBA\xED\x9B\xEB\xBBާXMکּ\xA3\xF04[        \xFC!\xF9\xC0҅\xA3;\xE2p\xD40s`p\x88u@4&amp;|Y[\x8BrF\xFD@\x81\x83\xCBf'\x9AF\xF5\xF6At\xBB$`x\xCF\x99(\xD8
+\x87~s\xD4\xFCqh\xE2T\x92\xB7\xE5Z\x8F\x87\x9F-X\xB3r8\x84\xB81u=\x8Br\xB6R\xDAy]cڬ\xAB\xBA\xE6F\xDE\xC1\xAE=C\x8B&lt;Gga\xA9\xEC\xFAɖ\x9D\xFFڈa*\x96\xF0\xBC+\xFD\xF8Z\xE5\xA4\xCDd\xF5\x98\xBElޕ~rFW^\xE5\xD4~\xD0fU\xC9\xDF\xC1\x9D\xA8\x91\x86\x82٨\xE3L\xADv\xBD^mrE\xB9o\xA5ї\xF2\xD4\xF7][,\x97\xC6\xE3\xF8\xF2D\xD3\xF7\x9E^\x8A\xAC6i\xD6\xF0$\xE4g|+I\\xB5u\xF5\xC8A\xA3_\xD5&quot;_m\xA3=\xE8\x91-We\xE1\xD9M\xC4\xF7\x88\x994\xB6\x81\x98\xBDE\x98\x8D\xA9\xE6\x93\xE2\x9Dڵ&amp;t\x8Fz1hG*8L&quot;\xE2
+ A\xC7+aAi\xA4&quot;O\x9D\xD2D.\xD1D\x85\\xB3\xA2\xB8\xEC`\xD7\xEBF\xCF\xE9x;\xDBb\xAAV\xF0\xF5\xE0\xA8zc\xF5F+ļ\xFF\x8F\xD7        \x8EUf\xC8v\xBD)uTj\xC3k`_\xF3\x97O\xD5{\xFBd\x9BEv\xA3\xA7f\xA2v\xAB&lt;&gt;J\xD2C)\xF3\xB0\xC6t0\xC7C\xE9G\xB8
+M\xE2n\xEEu}w|\xC5Lce\xDF\xC2\x9B\xB1]\x82\xDB\xCD2$Q4\xA0l\xB5\xB3\xCE\xF65 t\xA0\x9D\x84fX\x8F\xBBWv\xEF\x80\x91FW\x8C*\xF0bݟ\x80W\x94\xE2\xE9\xCCM\x86 \xD6r\xC1\xCB
+z\xF7\x82a~\x84\xC72z\xA4\xD7.\xE3\x85B#UG\xB6\xE9\xCCU\x89\xA3_4󛆱\xFB:SUv^\x999i\x8C4\xC6&gt;\xADL{\xE1\xD9\xACT\x8FR\xDD^\x8A\xA4\xEAY\x8A\xD4%1h|U\xCFPJ\xEC\r\xD0ݑ\xFC[ڗ;\x9E&lt;M\xB9\x8FS\xA2iH|\xDA+8
+.\x9C\xAF\xFC\xBA\xC7X\xB7+\x9A
+\xF2\xD3qr8aź ̀\xB9Z\xB5+ǂM\xF1ȫ&lt;Icun\xEB&lt;yW\xB0\xCDָ%C\x88u\xA0\xA7\xFE\xE1\xF4\x8Fj\x8D(\xABzNJ\x8E4%}/\xB6\xDDF\xF5\xDA\xA71v_V\xEC\xB0E\xBD\xEE\x80g\xFB\xE2/\x9C\xF0p-\xE7_\xDE\xFF\xA6\x93]\xF0\xBBNv\xFEo9\xD9=\xF4\xBEA\x9F,\xCD\xD1z:\x8B\\xD7y\xD3=\xB53\xC2?s\xE4\xFA0\x9F\xFC\x9F\xA0Ƽ
+endstream
+endobj
+
+31 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 32 0 R
+&gt;&gt;
+endobj
+
+1 0 obj
+&lt;&lt;
+/Count 0
+&gt;&gt;
+endobj
+
+3 0 obj
+&lt;&lt;
+/Type /Catalog
+/Pages 4 0 R
+/Outlines 1 0 R
+&gt;&gt;
+endobj
+
+34 0 obj
+&lt;&lt;
+/Length 1101
+/Filter /FlateDecode
+&gt;&gt;
+stream
+xڍVMs\xE28\xBD\xF3+\xFA\x91ZcϞ6\x93l\x9BL&amp;\;\x87\xB0\x95F\x80&amp;\xB6\xCC\xCA2        \xF3\xEB\xB7%B2\xC0l倉\xF5\xFC^\xBF~\xDD\xE62\xEF]\xFC\xE9\xC7\xE0C&gt;\xEFe4K\xBC &lt;\xFC\xEB.3\x86ѐF)\xE4U\xEF\x91\r\xCD\xE0\x81\x97\x9C5\xD6\xFDA\x9Fz4\xE8\xFF\xF9_\xBD뼗\xA64N`4\x81(\x8Ch\x9A\xC2\xC0\xA7Q\x8A\xF7滻4Iܽ\xB4R\x92R\xA2\xCC Q        \xF1\xF8\xC2\x9E\xEF\xF5!\xFF~\xB2\x86 \x8Eh\xBD\x81\xC9$\x88}\x87\x99G\xC6ϛ\x87[Q        \xCDg\xAE\x94SB\xA2$\xA6\xE9\xDE\xF3\xC8=[p\xD8\xCA\xE8`(\xD0@\xF0#\xCA|S\xE8}\x8A\xB4iH\xEA9\xA4;\xB6\xE3\xEA\xD1\xCB,\x80pH;\xB4S\xFB\xB9\x96s1\xE3R\xDB&amp;V^ܫz\xA5~MvImv\x8F~Td\x9A\xEA\xA5\xAF\x8C\xFA\xF3/ƚi\xFE\xE9h        ~\x96\xEE#&amp;d4\xE9\xC3/\xEAW\xD0,\xDDb\x91%YH\x83ȑ        y\xC54;M\xB5w\xDEQݳ\xE2\x99kX\xB1MY\xB3\xD9i\xAEaJ\xC3\xC4b\xE5\xE5F\xF3f$A\xF6pdwm5Ų\xB0;S\x83!\x91\xD8\xF0\x9F\xE6M\xC2nJ\xC8\xF9X\x94\xCFO\xF9\xD7Ͽ \xDE!0\x90\xE4+2_\xBFj\xC5
+\xCC h6-\xB9IIjRR\xD4Rc\xA7\x8D\x94y\xAD*\xA6E-\x81M\xEBV\x83^\xF2\x9D:\xDB\xEFA\x83\x80\x861\xE4\xB3\xB9\xE2M\xA1\xC4ʜwZ&lt;3o\xBE\xBD\xF9H\xB8n\x95l\x809:\xD8c2\xD4\xAA\xC2&quot;&amp;}\xFC2 I\xA3U[ \x80j\xF8\x99\xF7\x88-q\xEA\xB9ܒ\xF1\xCD\xFD\xD3\xE8\xEEvtw
+\x9D&lt;j\xD1KpUxV.\xB27zw\xD337w\xA7·SK\xA6\xDE
+\xBB;\xE7\x86Ú?\xBE\xBAyZp\xFD\xB4\xE6\xAA\xC1\xE2'd\xD2\xFF\xFDh3\x8C\xCC8\xDE&amp;\xEE\xFFz\x86~\xB9\xB0\x8E1!ͥ\xF1İ;\xF3Pt\xF4 m\xA4\xE8\xC7a\xF7S'!u\xBB-\xA2\xB1\x9B\xAF&gt;\xE7\x8A˂C\xCE
+8\xD8 ŪS\xFA\xCDJ\xDAf)72\x90\xBCS\xD6@S\xB7
+\x9Fe\xA6^\x84^}ժ\xE46\xDBƩ1\xDD׆m\xE5ؚ]\x9B\x9Dj\xE7Bf}\x8Fno\xF5\xD9񟐣c\xE1=\x8Ar\xA3ا\xAE0Cpq퀴8ZP\x808\xB3`\xB78\x9C\x8F&gt;09\x83\x99[9\xDBtO^\xE3 \x99\xBB\x8Du\x829\x8AC\xEA\xEF\xE3&amp;}
+\xF9R4\xCE=\x8B\x84\xF8\xC2K\x8C\x81\xCBD\xC3\xD5\xF73\xA9P\xBB\xD6\xED\xF9\x8Bz}br\x80/\xEB\xEB\xEA\xF7#(\x98\x84)\x87\xB6\xC1\x897\xE5\xA1\xF5k\xDC\xE9\xCD;\xCB#G\xC2\xE0\xDFV\xCF\xF0\xC26\xA0k\x94S\xADD\xC9\xD5J\x8Be\x92\x95\x9B\xDC
+&amp;WvOHi\xDB%\xA4q-!\xD7Ț)Q\xB7\xEFi\xDC¨jC\xCF4&gt;nS\xA1j\xB7\xDB=\xBBW\x9C\x98|'\xC0r/\xB8\xE4\xE6\xA0%?\xA2\xB1\xF5S\x89.|a\xE0\xBFo\x85l_JX7g\x9D3&lt;\xFC\xCC\xE7\x86h\xCF,\xD3$b
+G\xDCQt
+l\x91&gt;q\xA3\xB8
+\xA8Qx\x80\xA1\xCB\xD2\xBD\x8A7+^h\xB1\xE6\xE5.\xBB\xB3.\xAEg\xF69g.B\x96E\x9DQ\xF7J\x94L\xE1Y\xAC\xEB\xC97&lt;!g\xFD\xDF\xF7/\xCD\x87\xBA\xBA\xB6\xE2\xEE_\xAA\xBA],]'\xB76\xFC-\x9A\x96\x950\xD6\xEDLԇ\x98ϋq\xD2\xCBֽ\\x9A\xBEc)
+\x85\x87V\xDA\xC5q\xF8\xB1b\xFEʋ֭|\xB3\xCCk\xBBYY\x9FLa\xA5\x90zB\xD0\xAF!\xFC\x99a&gt;\x8C\xC0-\xD0bj\xBB5\x97\xFC1\xF8\xECЄ
+endstream
+endobj
+
+33 0 obj
+&lt;&lt;
+/Type /Page
+/Parent 4 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources &lt;&lt;
+/Font &lt;&lt;
+/F15 7 0 R
+/F16 10 0 R
+/F17 18 0 R
+&gt;&gt;
+/ProcSet [/PDF /Text /ImageB /ImageC] &gt;&gt;
+/Contents 34 0 R
+&gt;&gt;
+endobj
+
+4 0 obj
+&lt;&lt;
+/Type /Pages
+/Kids [
+6 0 R
+17 0 R
+23 0 R
+25 0 R
+27 0 R
+29 0 R
+31 0 R
+33 0 R
+]
+/Count 8
+&gt;&gt;
+endobj
+
+35 0 obj
+&lt;&lt;
+/Length1 39404
+/Length 19795
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xEC\xBDy|\xC5\xD6?|\xAA\xBA\xBAg_2\x99=\xDB,\x99\xC9
+        \xC9D\xD2lD \xAC4\xF6M% \xE0r\xA2&quot;K@\x95%n\x80\xB8
+        j\xD1\xE0.\xEA%*\x88\\xB9\x8A\x88\x90̼\xA7z&amp;\xDC\xED\xB9\xCF\xEF\xFD\xFD\xF1\xBE&amp;|\xFBTu\xD7\xE9\xAE:u\xEA,\xD5\xE3t\x90\xD4 \x92W`\xD4\xAE\xC43\xAF \x86\x8F\xBDqt\xF5yJbpL;{\xA6\xE7紇?p\xD6\xA8\xBAL\xA8\x9Ex\xA3\xFA\xE8\xF6L\x804l/~1\xF1\x86\xDB&amp;x'\x9F\x9A        x \xCF&gt;i\xFC\xE8q9wܴ`\xE8\xB3x\xBF\xA2Ix\xC22\xC7\xC5\xFA!\xAC\xA7O\xBAq\xE6\xADuR\xC1Z\x80ajw\xE6
+\xD3Ǝ&amp;\x99\xCEy\xD3\xF2\xB1\x9E{\xE3\xE8[\xAB
+\xF7X\x80E\xD7a{O\xF5\x8C\xF1\xD5ݽ\xE3x\xFD\xF34 \xC2g\xF4\xF1\xD9k\xC4B\xECeR\x8C
+\xC3jQ\x8BT\xA7b\x94\xC0\xED \xB0\xCB\xFC\xA3\xE6\x87\xFE\xD3n\x9A\xF0D[\xC4O#\x83H\xA1\xAA\xA9\x97\x81D\xA3\xD1X#\x94F \xC9\xC0\xE5:kXҗӥ㓒\xB1\xA2«s\xC8\\xF2y\x90&lt;F\xC2\xE4\x89\xD2
+\xFA}\x8F~-A4\x82_\x98#\xD4
+K\x84DŽ\xBF2=Ȯc\xA3\xD8Cl%{\x84=\xC1\xD8\xF6%;&amp;\xBE!\xFE(\x9E\x92\xF4R\x92\x94&amp;u\x91\x86I'\xA4H꽩xL\x9B'\xD5\xE3\xF3=\xED=\xF9\x9EBOO\x89\xA7\x9B\xA7\x97g\x9Ag\xAE\xE7I\xCFFϳ^ћ\xE8\xB5{}ޠ\xB7\xBDw\xA8\xF7z\xEFr\xEF&amp;\xF5I&gt;\x93\xCF\xE2\xB3\xF9ܾ4_\x96/\xC7\xD7\xC77\xDA7\xDEO\xFDf\xBF7\xD0\xCCk\xC0H\xA4r\xA1@I\xE0\x86@M`^`a`I\xE0\xA1\xC0c\x81g\xF5\x81\xED\x81Wo\xDE|\xF82\xF0C\xB0$({\xAB\x82c\x83\x82S\x8F\x8AG\x9DG\xBB\x9C\xA4';\x9C\xA3\xE7&lt;\xE7\x8AΕ\x9C\xEBv\xAE\xFB\xB9^綜;r.\xDA2\xA6\xB5\xB4\xF5\x97HK\xB4E\x91\xA4\xEA\xE9ԑȇ\xE4,J\xE7m\x94\xCE&gt;\xCEKgJ\xE7~\xE1        F\x98\x91
+b׳\xA5l[\xC3gϳF\xB6\x8F\xC3\xE2\xF1d\:^I\x96\xAA\xA4\x93\xA95\xA9u\xBD'\xD1\xE3\xF0xP:\xD9(\x9DOq\:SP:O\xA0t6_$\x9D!\xDEk\xBDK\xCFK'\xA5\xE3\xF2\xA5ƥS\xE5\xA7H\xC7\xF3/\xA4S~^:Ku\x81\xCD祳\xA5\xB3\xA5\xD3\xE5\xBCt\xC6\xA7%\x8At\xC8Iv\x8E\x9CK9\x97}\xAE3JG&gt;\xD7\xF3\ٹOϵ\xB4\\xDF\xDA
+\xA5Så\xFDly\xD4JwӝB^\xF4\xC5U1\xA1f=Hn!SɌ\x96:\xACO\xE6\xBAɉdG\xB2&quot;\xB8\xCA\xE0\xB8f\xC3
+0        \xAE\x86n-{Z\xDEoin\xF9\xA4壸\xD6\xC2\xF7\x95\xDF\x88\x95\x9B\xEFE,\xFF\xF6\xDA\xE6y\xCD|\xBB\xA9\xF9\xAC\xBD\x8CX\x8A\xA8m\xBE\xF3\xDBY\xA7\xBC\xADy\xFB\xF7\xB9\xCD\xF7\xDCtp\xC57+\xBEy\xFC\x9B\xC5\xDFl\xE0\xBC\xDFL\xFFf\xD6򿑿)\xFC&amp;\xFD@ف\xDEJ(:Px \xFF@\xD6߁\xA4\xD6d\xFF\xDF\xF6\xDFt\xFF\xE1\xFD\xDFq\xAE\xFDo\xEFm\xFF\xAB\xFB\xF1)\xFB\xDF\xDA\xFF\xD4\xFE\xF6\xF7\xDE\xDFc\xF7\xFD\xE9\xFB}\xFB\xBD\xFBS\xDDM\xEE\xB3\xEEoͯ\xE2jE\xA8Q\xADS\xADU\xADQ\xAD\x8E\xF5V:&amp;u\xEFA\xCB\xD7q\xC3E\xBA;\x86\x8B\xEA\x9Fѳmu\xA1\xCF\xC5\xED\xF9\x82\xF2u\xA8a\x8D\xEC\xF6&gt;{\x9DX'&gt;\x8F4|a{퓸5\x86\xF5\xE5\xEB\xE2\xB5u\xF0?\xFE\x883\xC5\xD9\xE7\xCB3\xFEm\xCB\xF7L|V\xBA[\xDA|\xF1\xD0\xE0        \x98\xF7
+\xD7\xC3
+\xF8\xE6\xC3\xFD\xB0\x81\xA7\xE1I0C-\x8A\xEExN\xC2\xDF\xE1&gt;X         \xE1u8?ã\xB0~\x85_\xE0&lt;\xCF»\xF06&lt;c`,,\x85q\xB0\xC6\xC3;\xF0\xFCއ\xE0C8\xE0c\xF8\xF6\xC0\xF30\xFE\xCB\xE03\xF8&gt;E\x9D;\xC7aL\x81\xC90nD-\xBC        \xEA`L\x87j\x987\xC3,\x98\x89\xBAy \x85[QKo\x83\xBF\xC0\x9D\xA8\xAF/\xC3c0\xE6@
+\xDC?\xC2O\xB0\x8D\xAC +        %aD\x84s\xD0BV\x91\xD5d
+Y \xAD!Q5D\xC9:\xF2y\x94\xACG\xBB\xF1\xD1-\xD1=y\x9C&lt;\xA7\xE1w\xF2$y\x8Al \xC9&amp;\xF24\xD9L\x9E!ϒ\xE7\xC8\xF3h_\xC2d \xA9'
+p\xF6\x92Z\xB2\x98l%/\x92\x97\xC8ˤ\x91\x88\x91l#ۉ\x89\x98I\xB1@3|K\x89\x95\xEC \xAF\xB1\x93%d'y\x95\xBCF\x9A\xC8.\xF2:q'\xBCa\xE2&quot;n\xF2y\x93$\xA1\xADO!\xA9\xE4-\xF26\xFCg\xE1;\xF8\x9E\xA4\xF1y\x87\xBCK\xDE#\xBB\xC9\xFB\xE4\xB4o%~\x92N$H&gt;&quot;{\xC8\xC7\xE4\xF2)\xF9 \xB6\x93 \x92I\xB2H6\x82\xC3d/|\xE1K\xF8
+\xF6\xC37\xF0|M~&amp;'\xC9\xDF\xD1w\xFCB~%\xA7\xC8i\xF2;9C\xFE gI9GZH+\x89\x90\\xF4+@        \xFA1\x812*R\x89\xAA\xA8\x9Aj\xA8\x96\xB4\xA3:\xAA\xA7j\xA4&amp;j\xA6        \xD4B\xA9\x95\xB4\xA76j'y$\x9F:\xA8\x93\xBA\xA8\x9B&amp;\xD1d\x9ABSi\xF5\xD0%\xD4K}\xA4)\xA0~RH\xD3i\x80iͤY4\x9B\xE6Ѕt\x91h\xE8}\xF4~\xFA]J\x97\xD1\xE9C\xF4a\xBA\x9C\xAE\xC0\xBF\x95t]M\xD7еt}\x84&gt;J\xD7ӟ\x85\xBB\x84{\x84{\x85\xC2&quot;\xE1&gt;\xE1\xE1!a\xB9\xB0Zx=\xDES\xC2\xD3\xC23\xC2s\xC2 \xC2\xE1Ea\x9B\xB0S\xD8%\xBC%\xBC'|HO
+ {\x85/\x85\xAF\x85o\x85\xC3\xC21\xE1\x84\xF0\xB3\xF0w\xFAw\xFA \xFD\x95\x9E\xA2\xBF\xD1\xD3\xF4wzF\xEC,\x8B]\xE8\xF4,=G[h+\x8D\xD0(\xFA
+&quot;P\xF4\x8C\xFE$\x88b\xA6\x98+vK\xC4n\xA2\x8Cm{\x88\xBD\xC42\xB1\x8Fx\x958@,G
+i\xE2\xF5\xE2q\x828E\xBCI\x9C!\xCE2\xC4\xDB\xC59b\x8Dx\xB78O\x9C/.k\xC5%\xE2\xFD\xE2R\xF1A\xF1aq\x85\xB8
+c\x87uB_\xE1\xE2\x93\xE2&amp;\xF1Y\xF4=[ŗ\xC4\xED\xE2\xF15\xF4\xD2\xEF\x88\xEF\x8B\x89 \xED\xC4O\xC5/\xC4\xFD\xE2A\xF1{\xA1\x83xD&lt;.\xFE,\xFE*\xFE.\x9E\xA3\x92 \xA9$\x9Dd\x92\xA4D\xC9!\x97\R
+\xFA-z.\x9F\x94.\xA5L)[ʕ\xDAK\xF9BG\xA9@
+I\x9D\xD1\xE3wC\xAF\xD6C\xEA%\xA8\xA5\xDER\x99t\xA5\xD4G\xEA+]%\x{153B96}\xFAK\xA4\x81R\xB94H,
+\x91\x86bl0\\xBAF!UH#\xF1ʵm\xB2\xB4\x82N\xD0\xC7d#]\x87r\x9C4I\x9A̞dO\xB1
+l#\xDBĞf\x9B\xD93\xECY\xF6z\xD5X\x98ma\xF5}le/\xB2\x97\xD8\xCB\xE8g\xB7\xB1\xED\x8B\xBC\xC2v\xB2W\xD9k\xAC\x89\xEDb\xAF\xB37؛\xEC-\xF66{\x87\xBD\xCB\xDEc\xBB\xD9\xFB\xEC\xF6!\xFB+\xFB\x88\xEDa\xB3Oا\xEC3\xB6\x97}ξ@/\xFD%\xFB\x8A\xEDg\xD8\xD7\xECv\x905\xB3o\xD9w\xEC{v\x88f?\xB0#\xEC(;\xC6~d\xC7\xD9O\xEC\xFB\xFB\x99\x9Ddg\xBF\xB0_\xD9)\xF6\xF9\x9Eb\xA7\xD9\xEF\xEC \xFB\x83\x9De\xE7` \xD4\xD3Z\x82\xE1%x\x83\x86\xD8
+o\xC2ݰ \x84\x81\xC2`\xA1\$ \x86 \xD7#\x84!\xC2P\xF8\x8D\xA1Mlƫ\xAB\xE1Z\xBB\xA7\xE0AR
+\x90\xEEd6Y\x86\xBE\xF4!r 4\x92;\xC8        \xF276\x9D\xCD`w\xB1\x9B\x85
+a\xA4p-z\x85J6\x8F\xCDb\xB7\xB0{\xD9l6\x9F\xDD\xC6\xB0\x85l\xABe\x8B\xD9v+{\x98\xDD\xC7\xEEg`D\xB2L\x89Iֲu\xB7=\x8A\xD1\xDB*\xB6\x9A\xDD\xC9ֳ:\xF6F*OH3\xA5Y\xD2-\xD9|C\xD2f\xFA-\xFD\x8E~O\xD1\xC3\xF4z\xB5\xF3
+\xD4\xC6!\xE2Pq\x98\x90&amp;x\xAF\xE0C\x9D+\x8Eǣ\x9E\xCB\xC5A\xA8\xA5\xA3\xC4*q4jn?\xF1j\xB1?\xEAڛ\xE2[\xE2ۨo\x88\x8AEݽ=\xC8,\xD4\xE2ib\xB58]\xC82\x85,!\xB5\xF9/\xE2❨ɋP\x9F\xA0&gt;/F\xFD\x9E+\xE4\xB9\xA8\xD5˄vB{!O\xC8:B\xA1B-=%\xFE&amp;\x9EF\x8D\xFDI&lt;!\xFE
+\xF5Ԍ\x9Aj\xE1\xCFD=M\x95\xA6\xA0\xAEN\x95n\x8E ?&quot;~B\xBD쎚\xD95\xBDY\xFCV\xFC\xB57 u8u8G,\x93\xF2\xA5\xA8\xD3\xD4\xE7v\xA8\xC5]\xA5\xE9
+\xA1\xA3P$\xFC*\x9CB\xFF-A,p\xC6\xA1\xDCa_\xE2\xE8\xF0\xA2\xC0DI\xA5\xD6huz\x83\xD1dN\xB0$Zmv\x87\xD3\xE5NJNIM\xF3x}\xFE\xF4@0#3+;'\xB7]\xFB\xBC\xFC\x85\xA1\x8EE\x9D:w\xE9ZrE\xB7R\xB9{\x8F\x9E\xBDz\x97]٧\xEFU\xFD\xAE\xEE?``\xF9\xA0\xC1C\x86~͈\x8A\x91\xD7^Wy\xFD\xA8\xAA\xD10f\xEC\xB8\xF1&amp;N\x9A&lt;e\xEA
+7\xDE4\xADz\xFA\x8C\x9BgΚ}˭\xB7\xDD\xFE\x97;\xEE\x9C3\xB7殻\xEF\x99w\xEF\xFC \xD5.^r\xDF\xFD,]\xF6\xE0C/_\xB1r\xD5\xEA5k\xD7=\xF2\xE8\xFA\xBA\xC7\xE2ɧ6l\xDC\xF4\xF4\xE6g\x84g\x9F{\xFE\x85\xF0\x96\xFA\x86\xAD/\xBE\xF4r\xE3\xB6\xED;^\xD9\xF9\xEAkM\xBB^\xE3ͷ\xDE~\xE7\xDD\xF7v\xBF\xFF\xC1\x87\xFDh|\xFCɧ\x9F\xED\xFD\xFC\x8B}_~\xB5\xFF\xC0\xD7\xDF\xBC\x9C)\\xCE.g
+\x973\x85˙\xC2\xE5L\xE1r\xA6p9S\xB8\x9C)\\xCE.g
+\x97f
+\xE2vHV\xB0\x92Y\xE3d\x88jCdr\xF4\xBF\xC6)\xFD}}J \xF1O=z\xA8/\xD0bz\xA0\x81\x9C\x9CAK\xDC\xFA\x83\xDF\xD1\xF7\xBD\x80~b9Xa(\xAC@K\x9Ev}ї\xB8H,!k\xA3\xB3\xA3\xC7\xE0
+x\x8F\xBEL\xEE\x8En\xC6\xEB\xA0\xB7;\x83=\xF8\x86\xE8\xB0\xFD0\xF4xDŽ\xC3P]jX:\xE8
+\x83\x89F\xA3m\xFE~\xC3&gt;&lt;ë\xE4\x8E\xE8|\xAA\xF5\xEFA(\x81\xEE\xD0=\xBA+\xDAٰ\x84-\xF7i^Dϸ\x83Hѱ\xD1ɐ
+&gt;\xA8\xA59\xD1ϣ!衟\xC5&gt;\xE5\x90&amp;\xD6\xBC\xE8-\xEF\x85U\xC4%\xBC\x8D\xA5\xE5\xE8\xA7#DO+\x85\x9E\xE2k\xF8\xA4\xBE0\xFD\xE8-P\x8Bz7\xB1\x90rq\x9Fx2\xFA\x97\xE8\x90 2\xB1O\x93\xE1\xE9H\xFAӧ\x98&gt;\xDA-\xFA\ \xDB\xE0]/\xFFkbײ\x8Dⵑ\xD2\xE8#\xD1\xD7\xC1/\xA3\xAF|\x85\xEC \xC4\xFB[\xEF\x8A&gt;}\xF4؟(\x91\xF8\x9C1\xECBO\xFFw\xF8\x85΍΅&gt;0\x9F\xFCz7\xFA\xACL\xF29\xFA\x8A9t\x8E\xF0)\xB4\xC7\xD1Vbog\xC1z\xE3\x8Cl\x87\xB0e\xB3}\xE7a\xF4\x9CI\xE4*2\xD7\xD7/\xE8}\xC6я\x84\xB5\xC2V\xE13\x8C\xE1\x9FFy\xFB!\x802\x9A\x89+\xF1%%\x9E\xF8\x88\x88x\xFF|RN\xA6\x90i\xE8\xFB!\xCD4L\xA2\xBF35\xBB\x87\x9Dc\xADb0\xD29\xFD
+\x9C\xE0\xC6\xC8\xF6v\x8C\x96\xA1 \xF9\xEA\xFF+\xECŸ\xE5W8\x8D\xBE\xBB3\x99\xA4\xE4Y\xCD\xE4'\xF4~&gt;:\x90V\xA3Oz\x8A&gt;\x87\xB6a\x99\xB0\x8Bud=\xD8T\xB4R_\xE1jX\xAC\xAD\x8A\xB4l\x88&lt;y.\xF2q\xF4\xE5\xE8Ǩ;F\xBC\xCAP\xA2w\xA1V&lt;\xAFaT\xB3}\xF1\xD7\xF0\xD7\xBCW2\x92\\x8FO\xB9\x99,$c\\xF1z\xF1q\x94\xA0\xFC\xF9hW\xDA \x9F:\x8D\xCE@9ݭ\xF8ŧ\xE8G\xF8\xB7\x87~E\xBF\xA6\xC7\xE9o\x82(\xF8p
+LG\xFF\x85=\xC2\xCĈ\xAC=\xEB\x80\xD9\xDFHř)\xAFD{\xB0I|F|3\x9B\xB4\xD6\xD5\xD2Q\xD5ݪy\xEAZ\xB3[\xBF\x89@dR$i@\xDDU\xA3&amp;ݎ\x92x\xA3\xB6P;0V\xFB%\xF2%\xCE\xC2)\x9C7\xC6 \xD8\xEFbRF\xFA\x91\xFE\xE4rO\xEE&amp; \xD0\xEE\xAD&quot;k1bzG\x80c\xC0x\xC1\x87\xBE\xBD;BG\xD3\xF1t]\x80\xFE}+\xFEm\xC7l\xECs\xBA\x8F\x9E\xC0\x9E;0\xCBA[\xD1W\xB1\x8E7\xE1f*\xF9\xD92\xFC\xDB,|$|*\x8E
+'p\xD6,\xED\xE6\xEDh7\xA2\xF9\xEDǍ\xF8\xF78z\xC9&amp;\xF1c\xB1El\x91\xA8䖒\xA5&lt;\xB4(\x9B\xA4\xEFT\x92\xAAHU\xAEZ\xA4\xFAL\xF5\xAB\xBA\xA3\xA9l\xEC\xB9\xE7\xA2\xE8ޅk0\x95n\xA6V6\x97\x9C\xC0)\x84\x81        G\x9E\x83\xF30WůP*Dp^\x8C\xFC:\xF6\xCDF],Q\xC9d\x86\xD12\x9DIv@G\xF2̕\xA8\x80!0k\x86zr\x806\xB37\xE8
+V\xDB(\xDC$\xEE\xA6^x\xAD\xD1R\xFA
+\xDDAz\xC0VZB\x87\xD3u\x90\xC3dF}\xBF\xC6\xDC\xEBfx\xFDEr'\xE9D\xE6\xC2g\xD4. !\xF3\xA0$\xFA8e\x8D\xF6%'{w\xB1qp\xFD\xBF\x8F\xFBI1F\xDF\xC7&quot;\x8F2\xBB\xEDS#F\xECh\xDD\x92\xA7\xE1,\xA3?\xA1u\xD0\x8DF+\xB3\xF5\xFD^\xE0V\xAF\xD7\xD9\\\x8F.\xB4 7H\xC1V\xBE\xEB\xA2\xEA$uc\xB7c\\xFF\xB7\xA3F\xF5@Kz$2\xFD\xD1\xF7\xD1N\xD1v\xB8\xC2p\x95\xC1&amp;\w\x93\xE0J\1\x87QKvb\x9D׮Õ\xAEE[R\x80\xAB\xBAFb\xCC'Z\xBDe\xD1pt]\xF4\x9E\xE8m\xD1i\xF0&gt;\xF2\x9E\xC58\xF3,\xA9\xC3ш%\x98%\xBC\x8B\xAB\xE4K\xB2\xD7\xE1\x95\xF0\xBF\xFAD\xC6A\xFCH\x9C\xE0z8!\xCEF\xBF\xB4\xA3\xAAW\xC5\xA5(\xEDy\xB05\xFA;\xD4f-\x8E`,\xE6?b\x84\xAFƹqA.\x84\xB0\xBF\x9D\xB1\xEF#\xE0Z!섞\x98V\xE3\x9A\xCDD;\xDE#&gt;\x92\x9B\xF1.w\xA3\xF4\xD6\xE1zމk\xE3$ډ\xEB\xE0U؇9\x86G4\x9F\xAF\xC6\xFB\xF4C9\x8F\xC2\xD6p\xEF\xC1,\xA1;򦢝:\x8E\xE36\x92\xCEt&amp;&gt;O\xC6;\xAD@\xABՄ}:\x80\xB9\xD5I\xCCDx\xBFr\xD1.\xF4&quot;\xC3\xF1^\xBF\xC350\x9FP\xE5d \xCE\xC0KP\x8C\x96\xB5\x97\xF0\xCA;\x9D\x98\xA1\xE6O&quot;_\xAEP#\xA4@\xB1\xF8=\xA1\x90\xEDL' ;\xD1\xC7D\xF1|z\xAF$\xB8\x82L\xC7^\x98p\xAD`#\xA1cd0\xF6\xE1S\xB9\xFBP\xB9\xB4\xDB%]\xBBw\xEE\xD41TX\xD0!?\xAF}\xBBܜ\xEC\xAČ` \xDD\xEF\xF3z\xD2RS\x92\x93\xDC.\xA7\xC3n\xB3&amp;Z\xCC&amp;\xA3A\xAF\xD3j\xD4*Id%\x90\xDB\xDB_V\xE5        \xAB\xC2,\xE8\xEFӧ\xAF\xFBG\xE3\x89\xD1\x9C\xA8
+{\xF0T\xD9\xC5mž*\xA5\x99\xE7\xE2\x962\xB6\x9CpIK9\xD6R&gt;ߒ\x98=%P\xD2.\xD7\xD3\xDB\xEF        \xD8\xCB\xEFi$#\x8D\xC0\xF2}\xBD\xFC\x9E\xF0        \xA5\xDC_)/U\xCA,{\xBD\xC8\xE0\xE9\xED\x9C\xD4\xCB&amp;U\x9E\xDE\xE1\xB2ٓj{W\xF5\xC2\xDBm\xD1i{\xFA{\x8E׶˅-ZuX
+;\xFC\xD5[\x88\xA3Q
+\xD4ѻ\xCB
+jv*\xEC\xF6\xF7\xEAv\xF9{\xF1\x84\x85@\xEF\xD1\xE3\xC2\xE5\x83F\xF4\xEE\x95\xE4\xF5V\xB4\xCB
+\x93\x9Ec\xFDc\xC2\xE0\xEF6\xE5(M\xA0\xA7\xF2\x98\xB0\xD43\xACR\xE3\x99\xCCG\x8B=[r\x9Bj\x974\x9AaLU\x8E~\x9C\xDC\xE8\xEBF\x84\x85\xD1\xFC        9\xF8\xDC^a\xC7퇜V\xF1斞#\x5I\xA8\xED\xED\x9C\xEC\xE1\xD5\xDA\xDA\x9EpӠ^\xF5\xF2cE\xDEyi\xA0\xAC\xAA\xB6 \xBD\x85\xD8o\x88\x9FF\xEF\xAD&amp;\xF7\xE2#=|$|T\xB1\xF1\x8D\xF7\xF7\xE6g\xAA\xA6x\xC2\xFF\xA4\xDA)U85\xEE\xDA0 \xBE\xCD[\xEFv\xCBۢ\xCD\xE0\xEE\xED\xA9:\xC2\xEF
+\x97&amp;\xF9+F\xF7J\xDEb\x85\xDA\xC1\xB75\xB8d\x8F\xEB\xE2+\xEDr\xB7\x98b\x82\xDDb4\xC5 zÅ\x85\xF1\xE7\xAF)%\xA59/\xF5|^\xB2\x84\xF7\xC8\xDF&quot;\xEC\xEB\xC1\x9E\x8C\xF0\xE3\x98:\xF3\xC3\xF8\xCEP;\xB636\xC3OA\xAE\xF08\x9C\x91\xC9aMϪZs~\x9E\xF3\x87ŀ\xD9\xEF\xA9\xFD
+\xB3\xEE*\xFF\x89\x9F.&gt;3:~F
+\x98^\xE4zr^\xD5\xF0z[9\x9C\x93\xCE\xCE\xE6*\xA2\xEA\x89s\x8A}\xEC\xA6\xD4;\xB6˝\xDDH\x8B\xFC\xD5f\x94\xA3lGWt\xC9C\xF1{\xBD|\x827\xCA0+\xE1\x9AA#bu\x8CI\xAA9/\xA7&quot;L\xAB\xF8\x95\xA6\xB6+\xB6a\xFCJMە\xF3\xECU~\xD4\xE4\xAD\xCA\xFE\xB8-\xAC\x9E\xFFg2\xDB{O\xEA&amp;\xF6sy|\xECz\xBF!\xFE~\x83F\x8E\xF0\x{12EB4A}˶\xDFЋj\xB1\xEB\x9D\xCF_\x8B\x97‰=GI4^\xA2I\x82r\x95\xF2\xBA\xF3\x8Dye\x84&gt;\xCC\xF8OR\x94z\X@\xA5TNOY\xD8\\xD5'v\xAC\xD0z\xBD\xFF\x92\xA7Q\xA5\xBE\x80\xA91z\x92s)\xE4O\xB6x/\xC3]r.\xAEw\xBD\xA8~Q\xEF\xF4\xB5\xF6\x97i\xBF\xA1#kk\xB5]+CT[[\xE6\xF7\x94\xD5VՎn\x8C֌\xF1{\xCC\xFE\xDAmt#\xDDX[ݻ\xAAmB\xA3\xDB'\x85˖T\xE0 &amp;\x91.\xA8\xACzl񓅃\xB6\xC8dᐑ#\xB6\x99&lt; \x87\x8E\xA8\xA7\x84\xF6\xAC\xEAQ\xB1%\xAF\x8D؆\xA1\x88\xAC\x9C\xA5\xE7\xCF\xF2\x9A\x87נAE\xAF\xA7j\xE5R\xD26\xA0F\xB9ʔJ}l#场\xED\x81\xB1\x8D4vά\x9C\xC3O; S\xF8\xE4\x8B\xFC\x8BM\xA8\xA0\xC7VJ&quot;\x92\xAA\x91\x96ʉ \xB2\x88Z\x8Bp\xA9%1B\x85WH4\xEC:\xC1\x99c&gt;]\xD2Z2\xC0|\xAA\xA4k        \x94b\xD9܂\x87\xF9\xDEoB\x88\x8F\xD0\xD4&quot;\xF3-5k\xE2ob\xA6F\xD1I\xE2\xA7`\x862٘i\xDA(P\xB5\x86\x80\xC6 \xF5N\xE2
+&lt;}X\xD6j~կ\xF5\xB0|FY#]ѐ\xF0\xD4T\xFE\xC4\xCA\xAD\xA7N\x98O@i\xA9\xB9Č\xCF&quot;\x95\xC4\xA4͉E\x9D
+)\xB5Y-;\xBFku\xDD\xD8\xE1\xF3\x9AM\xBC\xA2\xA3?2\xE8\xF9\xE5\x86\xA4\xB4yg\xE4\xE3\xC85{2\xB2i\xEDޓ\x9E\xD8Y\xE9I_ٙA3\xB4\xE9D\xEDJ\x9C\xBEMF\x95Fm\xFCg1\xF3&gt;\x8EX\xE9\xD3V\xF5\xAF\xE2Z=\xEF\x8DeJOޛ\xAD\x87.\xEELb7\xA1c\x88
+\x85v\x8Bͪ\xA2B\xEF!\xBD\xBA$OX\xF4\xDAʍ=\xFA=T\xFFꙃ\xB3\xFEF\x9E&amp;y_DR\xCF|\xFCs\xE4T\xE4\xEF\xC9Cxx\x96\xB8P\xFE鲍v-
+\x9A 
+&lt;\x90\x8Ft\xB1\x89\xB3\x9D9(\xE6\xCA\xFE\xADP\xDA\xFFD\x87\xFCB\x94\xEFC&lt;ъA\xC6hk\xF4\xED\x8A\xE3\xA0\xB3\x9C\x82\xE2\xEBK+ߓ#xFK\x8ES\xB7(ǻ&lt;t\x83r\x97\xFE'\x98O\xF7\xC7&gt;\x97\x94\x96,\xDB\xE7\xDCi~\xB3C\xBE\x8A\x81L\xFD4\xB2\xCC%\xFEt\xD6\xCAߠ
+\x8FaF\xB1        \xE3&lt;$\xF7\xBBU\xBBP\xBB\x91lVm\xD6l4\xBE\xACyW\xA3\x9EPa\xAFpO\x9B\x980\xC9&gt;\xC9=1M]L\x8B\xA5&quot;M\x91\xA1/\xED+\xF5֔6jާ\xEFIoj\xDE4|I\xF7K\x9Fi&gt;3$\x98\x9D'u6F\x9B\xE4\x80\xC5rnP\xD2Ly&amp;j\x92\xB1f\xDAbʾ\x81\x98\xAD\xB9}\xD6}:\x97\xF7\xD3\xD7\xFF\xEC\xEFt\xDE\xE19\xD39\xB8\x98\xA1\xB2\x928\xEC        f\x95\xE4\xF7A\x82\xB9S\x91\xC3'\xA9\xA4\xB3\xDD^XPԩ(\xC1 ҂\xBD\xB7&gt;\xB0\x{116F5F}G\xCEⱰܞX#bӪ\xAD\x91Q\x91\xAA\x97V`ؼ\x81&lt;\xFAҊc݇\xDE\xC1\xCF.\x8Crn\xC0\x8D\xEE\xEA\x8E\xF3\xF28.\x89 \xCA@\xC3e\xCDT\xFA\xBA\x98ou6\x92\xAC\x86Q&quot;\xE9\xF5/\xAB5&quot;\xBD3\xEE(3B+e\x83,\x8DyX\x981\xE6\xD2n'1v\x8DM_I\xBE^\xC1\x9F\xAA&lt;Q\xDC!*\xBD\xDEIձ(\xBDS\xA1\x8CY\xF3\xF1M\x84\xE6b\xFE\xA5\xBD\xA3\xE9\xEF\xCD\xE7\x9AQ\x88Y\x83{\x90BJ\xE5Q/:_roK\xDA\xCD\xDEq\xEEq\xEEq\xEDq\xAB{&amp;\xF5L\xEE\x992ܵ\x96-wnf\x92Ւ\xDB\x99R'w\xD6\xD3\xD9\xD3\xD5ӭNw\xA6\xBB\xD2݂=Ȇ\xB3\x85\xCEuI\xEB\x92ץlNޜ\xA2\xB6@\x8A9œ\xD2!evʼ\x94\xA5)\x9F\xA7\xA8S\xF8\xBCح\xB6P
+5\xEBM)f\x9Cw\xCA5\x90/5\xE0A#}\xAC\x81\xBD\xA9\x91 \x97\xFDi\xFA&lt;=\xD5\xF3\xB9\xD3oH5\xFB\xECv         \xB8\xD3L\xFB̷PWj\xDB\x9ERf\xB0\xA4\xA4?_)\xAD9\xD3\xA1\xA9ȩ\x9C^\x92`)&amp;        \x859\x95h̷AJ\xB4\xA9&gt;\xA1\x98\xF7\xA1ޤ\xD9h.fjs\xB1\xA8N@\x9AP\x9C\xA3|*\xB6H\xB4\xE7\xD0\xB2N\x93\xE4J\xA2I\x89\x84\xE7[x#\xFCWY\xC15\xA3ߠ;!        \x83\x8DdDJ\xB4\xB9s\xE7\xCEdz%\xEAK\x82\xB7\xC8\xD2        u\xA3c(\xE8Ge        \xA5`\x9C\x8Aj\xC3$ӷd\x98\xEB~z5\xA7\xCB\xF8\x8A\x93ԑ\xA3.\xA2~\xFB\xCB3W\xF6/\x8C\x9C\xBE\xD2N\xC4ȹ\x87\x89f\xFF\x96\xD2k\x86]?~\xCA_\x92\x8F\xEE\xFE\xF1\xF9\xB1
+c\xBA\x9F*\xC6\xDF6c\x96\xB9\xAD\xA7\x96t\xDF\xAA\xE8&gt;Yө8$e\xE2A\xC5Ǣ\xC9\xEC\x92d&lt;`m\x9F\\xEE\xCD\xC0kxȂl\x96-fj\xF3\x{11D853}X\xAA\x9FS\xE8xa\x828I=Q{T0]%n\xADF\xC3T\x82ɐ
+\x97\xA6J\xD20\xE6%\xAB(Jj\xAD\xECN\xE9\xA6\xE5\x8FйSB\xDA\x89i\xC9+\xB2QRQ\x911j\xBD\xC3\xE1ƙ-\xEB҈\xB2\xE5Q\x83k\xBD\x91\xA6˚4
+\xC9\xD7\xD4h\xA8f;M\x86-4\xD4k\x97\xEE\xFA\xB1m\xC7u\xBAr\xFA\xA9\xCA\xE9\xCE\xD6\xBD\xC7\xF7\xFAu\xED\iI\xFF(\xEF&lt;\x9C\xC5ń,\xB8\xF3\xCD흜\xA8\xCC%% \xDE|36I[5!\x8D!9|^\xFA\x85uC\xFA\x85S\xD1\xDDn!\xA9W3\xED\xF6h%ղEb\x9D;\xC7g)6\xC7^\xAF\x80ě(\xE2k\x91WkZ_\xBA-\xF26\xEDJ\x8A\xB3w\xBFM\xFAG\xC4\xED-\xB5\xD4\xD3\xDA\xCC\xFD\xD5
+\x94\xFC\x94|&quot;jk.\xEC\x93Ko\xC9&amp;\x93\x8C\xB7f\xFF\xC0N3\xA6\xF1\xDA4Rf\xAE7`\xB7\xA4\xD9\xDAh\xBE\xED\xB5٬~_\xC0\x92\xA8\xF6XhRF\xB5T#Q\xA9_f\xC6 z\xA2犮х\xD0\xC6/\x91\xBD\xF9\xED\xE5\xF6\xE5\xED\xAB\xDAW\xB7\xAFi\xBF\xB4}]{\xB5\xA7}~{\xDA\xDE\xEA\xF3\x80'1?\x91&amp;6\xD2\xC5
+\xED: i[ޭ\xA8\xE2\x95\xD3O砵\xC2\xAExD\x8E\x84\xE2\xBC\xCA銒ۢ5\xF5)\xC56\xAE\xE4nNj\xB6$r\xBD\xAE\xC0F%\xCA\xF9\xBC\xACL(\xAB-Z\xCA\xAD]\xA2\xB7 \x95r]\xB5s\x8DE\x95\xBD\xB8t
+:qm\xCE\xFA\x85o\xBC\xF4\xAF\xA0W=\xFF̂\x91\xD3F\xCD_Z\xF9\xD8\xEC\xAB&quot;\x87#\x92\xF9\xFAs\xD9W_\xD3\xEF\xAA܏7K]N\x8F!\xF2m\xBB\xC5\xED)׭5\xF1ٜ\x8CW\xE6\x8E\xDB9ݠ\xA6\xEC\xED\xC8s\xA2\xE6\x9A+{
+ӈ\xAD\xDB&quot;\xB7j\xF4\x95z\\x97\xCD\xED\xD0\xE8\xE8\xF1z\xF41n\xF8\0_\xB3ȺȾVI\xEFh&gt;&gt;\xD3\xFD&amp;h\x9AL}\xA6!˚e\x9F%\xCE\xD2\xCCժD\x95Ñ\xE8pd\xD1l! \xAA2\xC5\xD5\xE2J\xCD{\xC2[:\xB1\x94 D;\xD8 \xA4SR\xAAؖgH\xA1Z\xD4\xCC\xCEd\x87\xB3Se\xA3%d\xEC7\xCAD\x9A\x88I\xB69Chw2e\x9F\xA5\x9DV0\xFDl?\x83r+w~2I\xB6eԩ\x88I\x95\xA6\xCAW        \xBC,iH\x9A\x9F\x97\xE9܃T\x9E\xAE\xC4I\xE1\xF6\xE7\x9A\x9EC9\x9C\xF2B%\xB7„\x9BQb~\xBA\xF0zv\x87\xE4F\xFD        \xBAVJ\xD2zD&gt;\xFC)r \xB2\x90\xDCNBİi\Ad\xBF\xFB\xA9\xD9O\xBC\xFFn\xDD\xEC\xCD4\xE9ړ\xC7\xC8d$\xB9\x89,_}\xB8lƼ#g#?\xFE\xB4\x82ۆ\x87QCG\xA3\x86\x9Aѡϕ 3q\xB9_\xE9\xCF\xC6\xEB\xC5lG\xB1\xA3\x8F\xBD\xC2&gt;\xC9.;\x8A\x92$\xADW\xE8Ĵ\xAE\x96\x89\x96\x80ɬve\xBC\xA0&quot;\xAA\xB8N\xF2Qɉ5^\xE2\xF1\xE6{\xA97\xC1\x82Zh\xCE7S3\xD7B\xCF?\xD5\xC2\xF3*\xC8G9\x9Dp5rؕ\xD0D\xE2\xFE\x98u\xA3\oP\x8B\xA6)/W\xDD\xD5Xծӄ\xFE\xF7\x8Cy\xB2\xF5S\x92\xF9\xF5\x9D\xFA\x8C*)\xB9aH\xB7\xC5\xED\xC9\xC1\xD7#G\xFE\xFA\xE2=uc\xFBe\xA7\xB1\xD7[:-\xC3\xDFڼ\xF9\xA5        #ב\xE5\xE8\xABN\xE2Hu\xB0T\xBEB-2\x95: Y\xD2D\x92/\xBE RQ\xD4,\x80\x8EU\xAB        \xE8@\xAD\x92\xFA        \xB4\x8FtD\xE7\xF6\xF2
+\xB2A00\x8D\x87p\x87\x83*\x81#\xD2_8&quot;eK\xFA\x9F*9U\xF2O\x96\x95\x88\xEB)\xA5X\xC4\xF5\x84\xCBJ\xBChY        &quot;Z$%b\xB2y\xE3X\xCEJ[\x8E\xD1\xE6V\x8FP(n?\xD9\xF1{d\xFA\xEF\xD8\xFB\x95\xD8\xFBy\xD8{
+̐K\xB1\xF7\x92Py\xD4\xF9\xEA\xD7\xD4\xD5,O\xBDTM\xD5j\x88
+A\x83\xFD/\x95\xA2\xD5,\xF0\xA0n\x8F._Gu\xF7_\xFB\xCF\xFA_s\xFF\xAD%\xDE\xF9ֿ\x95‰֮t\\xEB:޷\xA7δ.\xE3\x92]\x82\x87\xAD\xD87\xA6)\xA3m(\x85D\xAE\xFE\x80B\xE5R\xAB#\xA2,\x96\x8B5b\xB3(\xA6\x89Ub\xB5xRd5&quot;\x8FePS\xE1K\x8C\xF2\xC3\xD0 B_u\xBC\x9F{\xB0\xC6\xE0&amp;\xD6a}|\xA1̈\xF2\xA5J(;}ʐ\x87\x9AKH\xA6\xB8\xFDl\xF6c5\xEA\xF2|\x86\xC92٭\x96\x88ŢՊ\x9A$\x8DV\xA3֊\xB5F\xABn$/\xCB9*ɪRIwUZtUZ\xAD]\x93V\xD0j\xB6Fτ\x9DN\xADRcx?\xAE^\xEC\xA3F&quot;[T\x8A:P\xD5]\xAC c\xFF\xA6\x8BK\xD3[\xCE1\x84Jm\xA8\xA3蔜9 #[\xA5\xA0\xE6\xB5\xB9D\xFD\xA6\xC0\x8F%1\xEF\xF4\xA2ƣ3\x84\x84\xC6\xE8\xEEzuz)\xE7\xD9\x9424K\xD9*\xA9C\xB8&amp;\xA6\x9A'mbG\xD9i\xBDj\xB4\xB9\xA1\xD3\xE0\x90\x86 &lt; \xE9
+\xEDLa\xBE\xB0ZX\xADY\xA3\xDD,l\xDE\xB4\xBB\x84=B\x8BV\xB8B\xDBC\xA03У\x91\x9C\xE9\x95\x8A\x96Jѣ
+]\xA9\xD4=*'\x9At\xA5,\xDF`ǃ\xDEZ\xCA&lt;:K)\xF6dO\x83\xC9\xA3FG\x8Cb \x85b#\x85\xC6\xDB\xD5K!\xE6,I,,&quot;\x95|\xA60\xCB\xC1\xAA\x84\xD5$\x93'\xF7\xB7\xEE\xA3e\x91\xBB&quot;7\xE2\xA2l\x9DE\xB7\xBE\xD5r
+\xFF\xE9\x8D3\xF9j\xFBS\xE2\xF3\x98\xF4]!\xBB\xCBU\K\xDAiP3эy˅\xB2\x97:l\xBBP\x91#\C\xFA\xB7ƕ\x84?\xD5k{\x9F\xD7,&gt;\xAE\xEF\xEF\xDC\xE2q;p\xB5\xC4Ip\x8B\x90\xC4m\xD6mN\xE1J\x91L?\xA9%!`0!\xC9\xCCW\x92        \xD4\xF6\xB0q\xF6\xB4\x94\xFC\x94\xAA\x94ꔚ1\xC5l\xBA\xB0/\xC9\x9B\xB9\xF3V.\xBE\xA4\xFE\xB4t\xD8/4\xE3qg\xE9\xF7\xBB(\xDA\xF1\xB8\xAF\N\xF6\xE3\xE09\x9BǬ0\xE5\xBD]\x8F\xBF0\xBB\xE7\xF5}:։\xDB\xEDޯ_X\xD089\xC1\xD6\xFA{=R\xD5~L\xF7\xF2I-&gt;\x98\xC7\xAF\xE0xl\xE0\x853\xF2\xDDŦ\xBE\xA6kTStS\xF4&lt;\xAA\xF3\xBFdܧ\xD1JjI\xEBP۵E\xC62c\x99I\xA56k\xACF\xAB\xC9j.2\x99\xAE4\xCD2\xDEf\xFET\xAB\xBBUs\xABkv\xCAB\xCDB\xD7\xFCIc\xB7j\xF4&amp;\xE3\xE3,\xE3&lt;\xE3\xC3\xC6'\x8C\xA2\xD1c\xD0[
+\xBDIo38\xEC\x81D\xB3\x95TY\xEB\xAC\xD4j\x8F\x97\x8B g\xB5\x91\x87w`0\xE32\xF9,)\xA3N
+KM\xD2\x8CbT\xFB\x89ǟ\xEF\xA7~\xAF\xEDB\xA9\xF9.\=\xDC7T\xC6\xE3e\xF1\xFCi\x8Cx R\xBC\xA0}N\xA5W I\x88\xC7#\xE81~F\x81(\xF2\xC4đ\xE8\xDAS\xBF?!\xE1O\xA9b\xD81\xED\xF8ޚ\xD7wU\xDD9\xA5!\xF2\xE8\xE73\x86^?\xA1d\xFF\xDE)%\xFB\xA4o=&quot;n\xB8\xFBH\xEE&lt;\xFF\x99\xC8w\xA4\xF4\x99
+o\xEB:a@\xFA\x88W]\xAB\xB9\x85\xBB*\xFA\xFB\xE3\x8B\\xB2G\xBEb[Bc\xCAK\x99o\xE72 &quot;lD؜9\xE3\xC5\xF1\x993\xA5[
+33\xBF\xD4\xEE\xD7Wh\x87\x87\xF9*\xFC\x93\xF4,\xBD\x933'\xE6ޒ2?e\x85Wo\xF1\xF3U\x9A\x9A\xE2T\xEFr\x87\xF9\xF9w\xF9v\xF9\xD9t\xDFt\xFF]\xBE\xBB\xFC\xDF\xFA\xBE\xF5K9\xDAlC\xBA/\xDD_l\xF9\xFBi\xFBz\xF9z\xFA\xA7\xC6\xFBo3\xDC\xEE[d\xA8\xF5m\xD0n4l\xF2%\xA2Q3H&gt;\xC9\xEFҺ v\x9F\xCA\xE7\xD7q w\xCA.Oh\x9A\x93Ls\xAE\xC7|v;\x8FG\x93\xACw\xA7%\x91\xA4vV\xFAn$\xFA\xBA=\xA1|&quot;\x93rRE\x96\x92:&amp;MDM\xFE\xC6dw\xB1\xF3\xDCv\xD9\xE7\xCFQqȉ\x8E\x90\xA3\x9F*#\xE8n\x9F\x96Qg\xA3O\xEFG~N\x88M\xA0\xAB\xDD'q\x9D\xEF7d\xC4\x90;W(ѥ\x92ğʙ\xC1C\x9A\xE99\xA7*s\xC5茜Ch+뭘\xCA#)\xA5\x9B\x9F\x9B\x8F\xFD\xBE&gt;\xB1؇\xE2A\x82\xB5\xF7\xEA-\xBC\xB6G6Y\x8A
+K\xB1V\x81\x89\x9F;*\xF5x\xCEP\xACur$\xC6s\xB0\x9C\x8BS1[mCG_G\x94c_CO_\x99\x83\xF6i\x9Fx: :JR\xAE\xA8        \xFF\xEB***\xF4\xB0X\x88\xA5\x92lV\x87\x9D)\x9A\xC5㯫\x88ǽ~\xC1ˮ\xB8:\xB4\xEDoU \xE6\xFE\xFC4\xB1\x87*\xB2/\xF1\xCE;\xEFꛗۙ\x84?\x9A\xB5$
+\xAFE~\x8C|N\xBEN^\xB6\xF0\xB6A\xA1\xBEI\x96\xF6]\x87\xDF\xF6|\xF5~\xD9m\x98&gt;\xB6\xA3\xAF8țp\xE3\xCE\xC5sL%\xFCk{\x98ۦdh3d\x9E&amp;\x9F\xE5\x8B\xE5\x9Aj\xCC}\x96jTi\x80        Tj
+\xA6Jl.\xCF\xEDI;Y+\xA90[\x82\xB9|a5A0\x96\xD3jZC\x97RF]\xEA\xD6g\xE3\xB32h\xC4\x8A\xB3\xA2x\xF7V\xCC\xECK0S:\xB7I%\x8A\x91Dّ\xFBvr0ҟ\xDD\xC0^?s\xE6\7\xBCm\xDF\xE8Q֞u?\x90\xE9\xF2$\x95[\x9D,\xA6\xD8\xDDW%\xF5I\xEE\xD8o&gt;\x98\xA0)r\x95\xB9\xAE        NpM \xCE&gt;\xE8zȽ\xC1\xBD-\xE9\xF7\xBBIzI2\xD8\xEC\x92˞!e\xD9*\\xB7\xD0\xF9t\x83\xF4\xA2\xF4\xB6\xA4-\x{125666}\xA4tH\xC85\xA4\xCB9\xEDC\xE9\xB2/\xAE\x94д\xF4\x96t\x9A^\xA6d\xD7\xF9FS\xE8\x8A\xC2w\xC2)\xA4\xB0\x94\x94\R2\x9E\xE5;O\x86y\xE5\xE4\x84R\xAF\x9Cdƃ\xD3\xF26ҙ/2\x95ޠ\xCD\xE5\xB6\xAF)/+[\xE4b Y\xB6\xEAR;\xD5Y\x9ALCE\x9A~\xBD\x9E\xA6\xE9I\xF3*\xD9h\xE9\xDDC$T\x85\xB3q&gt;!\xA40\xCB;\xCAA:\xC8@\xC7(\xC74\x87\xE0pN\xEE\xDE\x89\xA0nO?Q\xC9}N\xACv\x88G&amp;'P\xEDP\xB0\x98w*\xAFح\x9C\x98\xD6祐\xE9'b\x95m\x90mz9)%44}\:\xAD̩\xE0\x99%3\xC1h\x8EM\xC9\xF4J\xAE\x9A\xA8\x88ܨ        V\xBB\xC3\xCBuS\x92\xFC&gt;E?;u\x8Am\xEE?lV;ϵ:u$\xE3\xA39\x9F|\xF4Jc?!)\xF9QgV        }\x9E\xAC|r\xE7\xF0\xB5\xBEuu\xF9\xB4~C\xC9\xF5E?\xA6w\xD1\xEB\xEAޅf\xFD\xAE\xFD\x9A\x87+\xBDi\r\xEF\xD5ɝ\겲\xFA\x85#\xEF\xEB\x97\xF0$\xEA\xDD5\xF2\x89\xA5\xC0\x99Q\xD2uxA\xB0S\xFAx\x94\xCA0ԆR\xD4|+a\xAA\xB0`j`\x9Al\x99l\xBF\xD3y\x9Bk%]\xA9\xDB\xFC\xB6\xF3 \xF3\xE7\xCEc\xD21\xF5\xB1\xC4c\xB63Rb\xE7\xC4ζ\xAB,W\xD9˜\xFA\xC9zUK'{'\xA7p\x8Bx\x8Bi\x818ߴȵɲѾ\xCD\xF2\x92]cTf))\xC4\xE9\x8Bk\xC8Xh\xE0g\\xA9!\x85\x9AB\x86턁\xE7В\xA0\x9B\x82\x8C\xED\xA0p)\xCE\xD5v\E /y*\xC2\xCF/\xE4x\xC1\xE0h$Fw\x92\xCAku\xB9Gt\xFFs\xC7ӭ\x9CS'rx\xC2Uy('\x96o!\x8Dل\xE9\x98n)        \x96&quot;٢N\xA2\xDB\xC6\x9C\xD6!r\xDC8v\xE0\xE4;\xE7N-\x9F`#֜S\x8B'\xF6\xAF\xA6? \xBAl\xF3\xCEu\xD7N\xCB{\xF5u$\x8C\xA8H`#\x8F9\x86\xA2\xECF+1G2f\xED,R\x85\xB6\xC22\xDC&gt;\xDCY\x91\xBCJ\xB5ZsF\xA3\xA9N\xADI\xA5]\x84\x90\xBE\x8B-\xE4\xBAJ西\xCA\xD6˵Z\xA3\xB1\xA2\xDE֋:7W_\xA3Ne4\xE1ThYFC\x904\x92,\xD9d\xF7\xA9$\xD5\xECU\xBBRF\x94\x9C\xE1\xF4\xD3%\xFDO\xB4\x96\xFC\xA0\xAC\xF4\xD2\xA5'\xE2\x9ECH\xC3di\xB2v\xB2e\x82}\x82sr\xB2TY\xE1\xF5v\x8C\xD0RX\xE0H\xF04y1\x8B\x88&quot;`\xA3#\xE7\xBAo\xF9r\xE4\\xE4\xF5\xFA\xBB\x89\xABՒ\xD7\xEB\xF6\xD1 \xE7M\xB7`ݵ$=\x86\x91\xB8\xA6\xE6\x96\xEA\xCDW\xDF\xF4ԓ/?\xB6\xC7\xDBǛ\x81\xBAb\x85d\xF2\xC460G\xCF\xC8e\xBAb\x8CC
++̛č\xDA\x9A\x86F\xB7Zm%}\xE8\x95R\x99v`\xEA&amp;\xC3K\xD2K\xEEw\xB4\xEF\xEA?\xD7\xEEӟQ\xFDn0$\x9B\x92m2\xAE\x9BlL\x99l\xAF\xD9&gt;\xB2        6ERK\x8Aa\xA8\xAD\x91\xDE'c\x98b)7V\xA9\xD1i\xE1\x9E\xED%WR\x88Z\x94\x94=\xC5K\xDD}Y1\x9A\xD3.F\x9D\xC9
+\x95MhR\xEA\xF8\xFB%3v{\x94łbn`:\x8B\x93\x8B;]\xA7/ɳŔ(/uT\xEA\xB4\xD4\xF5\xA9,\xD5\xE4U\xCBS\xB79\xE5\xF0'б\xC9V\xA7\x9Ci-uʩ&amp;&lt;\xA0rr{\xA5\xF8\xA5\xD2V\xC5\xF1Y\xB0\xD8\xC2\xC2;\x83\x8D,qs\xC5i}[S45\x8A/S/X\x8Ay\xA7\xEB\x9C\x844\xDAnJ\xB5\xBB\xB74\x87\xC7\xDB\x87\xB8\xA9To\x94QJF\xFEP#\xBCQFa)1y\x85\xB21\x86\xEE\xE3\xA9B%\x91L\xB8\x8A{\xD0\xF9q\xC1\xAB\xB8\xC4Ętг\xC4Yt\xEC\x85\xC8\xF1{'\xEB\xA7'\x88Ej\x95\x85\xBBG\xF7\x99!\xDC:\xFC\xBA\x92B\xE7\xADy\xEC\xC5e_\xA3.\xE4Dމ\xEC\xBCsqr\xC3\xEDs{\xF6\xBC\x99\xFB6'.\x800v\xB2C\xA3\P\xC4H6\xF3\x98=        \xAC\xC6)\xAA\xD9kNj\xB3'P\xABŞ`L4\x81٘H\xC0L\xAD\xB5IGF题\xB6\xF2\x89\xD0J$\xC1d'Q;\xB1\xF3j\xAA\xEF{o-%Z\xB5\x9A\xC2R\xF5@u\xB9ZPg\x9A\xF3F%ЄF\xC2d\x8311H\xAD\xA3\xA0\xCE\xDEd\xA7v\xAE}\xC8\xEErܺ\x8DN\x8E\xEDw\xE7L/\xE9\xCF\xDF\xB5T\xA2St'.f&quot;J\xF1P\`\xC2O\xDC'*QA\x81C\xA5X[\xA1͏\x89\x85߹\xAEx\xF5\xAC[o\xF6\xECvE\xC7O&gt;\x89Yǂ\xE5\xF3\xE7
+I\xD3\&lt;\xA8\xDF\xD7-/ }\x95\xB5Ī/\x9AG\xC8cnIY\x90B-zCu\x87\xF9\x86\x9A\xCCC0\xF2I!-dғ\xF6\xAE5UX+ó\x86\xE3TM5\x9DI8\x93h\xE9j(\xB4w\xCD,\xCC\xC5@\xD0\xDE/\xB3W\xEEI}\xABC{?\xFA-\x9Dޠ\xCB\xD62\x8Cv\x87\xAD\x9DA\x8F\xA1\x8A3\x9D\xAF\x80\x95\xA0(\xBA1AQ\x92\x9D&gt;F3\xB3c ss\x85v\xC5\x82Ɩ\xA48\xBFQ&quot;78i\xA6 N\x8C\xDAv\\xE0:\x9B\xCA钲\xB3tA\xB7\x93\x8D\xCB\xE5v?Ёt@\xD4(k\xA10\xDDkq執&gt;\xA7\xE2\xF6\xC7|\xC2ܪ\x84h~\xD0\xC2Έfm&gt;\x94\xCE)\xAF\xC7\xC9Q\xD47\x96&quot;\xF38\x9F\xF3\x9E0\xA19\xAE\x9C\xAE\xD8-\xD3d\xEB\xE4\xC0Ĭ        9\x93\xF3\xD0nA\xA5C\xB4;\xDA|_G4aqvt\xF4bzC\xFDt\x96\x89\xD6?m\xD9m\xA4\xBB:%s\xF8M\x9D\x89\x869M\x9F\xDF9\x86\x90\xD7ު!\xAAn\xD5;\x88\xFC\xF2]\xCB=U\xEF_8i\xFC=e\x9Dm\xA9^{\xFF\xF5k\x9F}\xF1\x81\xBDDG\xDC\xCF-o\xB9\xF2\x95\xEDSJ\xB6\xDDo\xA4\xF7&lt;\xFD\xC8c\x8F&gt;U\xF7
+\xEBA\x8C\xDB*Юۡ^\xCE1\x914R\xCC'\xD2܃\xF4H\xF8\x86\xFCA4*\xD1.\xA6\xD3        \x93DBh\xA25\xC1\x92(X)1q\xA1\xA6*\x8DVk\xB5i\xED:mP\xAD\x91=\xE9\xA14$\xAA!\xB7\xF2\xCA\xEEK-u\xD69i\xB5\xF3\xA4\x93\xFE\xEC$N\xB0\xED6\xC5la\xDB:9i#6\x97\xA34&amp;x\x8C\xA9\xE3\x9B9X:\xAF)\xF6\x9F'R'P\xA6%\xC4P\x97\xC4\xDEQ\x91T\xE9TjCU)\xEEN\xE2E\xF2\xCC\xA3\xD7
+L\x89\xF1 \xBA\xA2\xEC\xA6\xC2fG\xAD\x87\xD7\xF7\xA9^\xF8@\xEB2\xDAa\xE3Ȏ\xBD\xCDo\xFD        \x8D\xBA\xAD\xBCTv~Tp\xCB6\xD0\xF0\xBD\x9Em\xA9\xAC)\xD7\xD0MXӤ٣\xF9Y#\xA6i\xAA4s5uxB$\x88L@/&amp;+;&lt;TR\Ȣ\xA4bZ\xAAB\x9F\xA9\xE8\xA27=\xC4\\xEA\xF8\xB8\xFEG\xA9\xB2&lt;\x95M)s&lt;P\x9A\x91\x93\xC8;{\xE59B\\xEC%\xC2&quot;-\xE7\xAEb\xC1s_\xE1 -\xC2\xA5\xEC\xFA\xFDʷ\xF6\xBFn0$\xF0=\x8A&amp;\xF9NW\xBB\x90J0 \x89R\x86f\x82\xF4\x82\xF65\x{DEDA}\xF7\xB5_i\xB5C\x84*\x81TNM\x99t\x8Dz\xB6$\xBE\xA49\xC8N\xB0\xF6\x9B$P
+PO\x90\xEEdK\xF8ך\xC55\xD2\xD5\xB56\x8DY\xA4\x96#fK٪lu\x9E\xA1\xEB'j\xCF\xEF8i5\x82\xC4t&quot;\x93\xF8kl\xBE\x9F\xA4\xB4Zk\xA47\xCAn1O]\x9C\xA6&quot;\xAA\xF1\xAA \x92 i\xD8a\x97\xBE\xF4/\xF10S\xD9M2\x9F\x9E\xEE\xC4\xC5\xDFඥĥ%|\x89\xEF\xB5\xED\xF1\xA1\xBD[\xAF\xF1\xC6_gTb\x823*c\xFBcm\xBB.\x8B\x88\x8B\xF4%##\xCBɽ\x91\x8F#\xBF\xDD#no9MfG\xEEh\xBD\x9E|\xBD(\xF2l\xDB{^e6\x87(\xFBxr\x9FK\xB1\\xA45bXl\xF7\x88?\xC76\xEF\xE6\x8AuxB\x8C\xBD¥B\x90@۬\x81\x8B\xFDì\xC5\xE7)\xFEZ8\xBEW7@Z\x85V1\x83t\xDDY\xC8]\x89\xCFB/\xA4\xB7Iv}H\xA9Cΐ\xBF\xED\xAD\xEE\xED\xEC\xE5\xD7{\x84\xBC\xAC!\x9A\xAA\xAC\x9A\xAC\xF5YOJU\xF4/J/\xEA\xC3Y{\xB2\x9A\xB3\x8C\x90\x95\x97U\x8E^\xCB:\x98%e\xC9\xEE\xE4P)\xD6k\x94\x8B\xA2\xCA\xCBT\xEE\xEE6\xEA\xB5*\xAF\xE2=\x98ʜ\x90\x90\x91\x94\x9C\xCCТ\xEA\x99\xCCAK\x82&lt;\xB2cU\x99\x86\x8A\xD4H\xCBd\x93;)\x98\x92\x8C\xE7\xA6%\x93\xAAd\x92\x8C\xE7\xB6\x82\xC1 q\xD5d(A\x88\xA6\x94S\xB9\xFB\x9D\x81M3\xE4\xEE\x88DzF(C\xEErE(/㣌\x83\x82)#-\xA3&amp;C\x80 OF~F4\x83e\xB82\xBF/iK$\xE2\xC9j\xCCV\x96\x9CF\x8F.\xE9\xF4\xF4ʜ\x92?\x97\xAEYY\xBE\xA5'.x3#\x87\xBB%\x92\x93\xE8\xB5\xF1\xC1\xA1d
+\xBB\xB2\x943\xCE/\xE5?W\xF5&quot;,n\x9A\xB0&quot;\xBF\xEC\xF1\xEBf=\x9E\x89k;%cP\xD7I\xED#GRK\x8B\xBAOj9‚˞:l\xD8\xD0Q\xD7\xF5Z\xD5ZAG=ھ\xA4\xCF\xE2J\xCB֎\xCC-\x9B\xB7\xBA\xB5\xE7l\xB7v8gvX/;U\x89\x8Eđ\xEAIj\xD6\xC8Ζ\xB9\x97\xBA\x97\xE9\x98Y\x94Ӗ\xA02$\xBDN\x87\xA1*%A;(\xA6
+H\x94\xBF\xFD\xA6M\xAB \xEA\x8D\\xBE\x83\xFE\xBC\x85ӓ\x93\xE8\xE5.\xB6p\x8A\xA4\xFE\xC1\xC8\xC5F[\x94\xEB\xBDȤ)BBC\xC7*&quot;G\xD2\x{1DD643}\x86B\\xFCi嚁i4\xF5\xD9\xF1\x9D\xCB\xE7\xD5G\xD2Xp\xDD֞\x93\xE6\xFD\x85۵\xC1\xBF\xAE\xC1\x910\xDBY)\xF79J\x8E\xA8O\xFC\xDD\xC6ޡGEjq\x89.
+\xAD0On\xAFp\xAE\xA4\xAB\xA4U\xEA\x95\xFAF\xCD^\xBA_&lt;\xA0٫?&quot;\x91\x8E\xCC\xD5\xEF\xD3\xA47\xD4o\xEB\xC5Y\xEAE\xD2&lt;\xB5\x90\xA0h\xA1\xCE\xC1Ede*k\xB1\xCA]\x95T\x9DD\x93\x8C^\xB8(=\x99\xAE|&quot;\xB4\xB7y?\xCDd\xF3\x8C\xD9';ᮏT&amp;\x86,8,\xB0Y\xC1\xEFK.\xF0s\x83k[\xD7\xFD\x9D\x84&quot;\xEF\xFD\xF4`\xE4\xF7Z\xE2Yq\xD3M˗\xDFt\xD3
+\xEA[B\xA4\xDA\xC8;?\xFF=\xF2Ƽ\xE8\xA6G7m\xAA[\xB7i\xEF\xE2\xC8
+l%\x8E׌\xF9\xC9\xB9}\xE7\xC4&gt;\x89\xD4\x8A
+ʼn\xA1\xA4^B_C\xDF\xC4^I$i\x86K\xC3\xCF\xE7-\xA7U$\xA9q\xFD\xB8\x95E\xC5\xF3ٮәMF\x87W\xED\xAEƜ$!\xCBh4\xCDf%Q\xD1UC
+\xDF/J)\x8D\x8Dsz\xFF%8\x91\xE6CmÍ\x85        m\xBE\x89\xFB\xFB        ҄ \xF3\xFE\x9E\xD1\xC65\x9D\xA7b\x98        g\xF0T\xE5\xCFQ/&amp;R\xE1\xF3S\xB6i\xD96⁁8\xC5\xF6\xFB'\x8C\xB9{\xFE؉ qj\xCB\xC7E\xBE\x89\xB4FNG\xBE,\xD6zL\xD8\xD6\xF0\xCC#
+_\x8F
+\xB9@褌}\x93\x9C\xB9R$#&quot;Ng\x89B\x9Ee\x84q\x92\xB1\xDA´\x93&gt;MO\xD0G\xF5\xB4T?PO\xF5\x8D\xF49K\xA5B\xFD\xA8\xA4\xCD\x8DY\x93\xAF\xA9\xD60\x8D{\xAEe\xBD\x85\x8E\xB2̵\xBC`\xD9ca3\x89\xA0\x8C\x9F\xD2RG(q%\x94n#ɱ t\xFA\xEA|\xBA\xD2\xD5?\x86\xA2$P\xBB\x8B b\xA2\x98\xFDŽ!\xFD\xC2\x957\xAE\x9D+\x94\xEFe\xC4$ H\xA5R\xC75\xBA\xE7\xD4^U\xD7\yE\xD7\xC1y,\xB8rj\xAF\x8E\xBF\xB5\xEF\xBE9\xF2wc&gt;\xEA\xB3ǘM_\x97\x9B\xA4ɯ\xCEp$8\xFC\xAB,\xAB\xAC+3\x96gkT\xD62+\xB5\xEC0l3\xBE\xE3=\xEC?c8퓲 \xC3 \xE3
+\xCBu+-}\xDB\xF4\xAA\xEE~9\xBDWp\xA2o\p\x81e\x81u\xBE\xEF\x9EtM\xA7`o\xA9Lw\x95a\xA0\xA9\xCC\xDBç\xF2\xA5g;\xE9;z\xF9^[\xC7t\x95\xA44^\xA7!C\xEF\xF3\xF9\xFC\xAAt\x9F\x9C{\xB3\xFEV\xEBm\xB6\xD9Y\xB3\xB2\xDA\xE6e\xAF\xB1-\xCF\xDE\xEA\xDB\xEA7ԐK\x9C\xAB\xB3\x9F\xCE\xE7J\xAF]\xF6\xFACv99-\x94f'1\xE4/T{\xCBh@v\xA6\x84n\xBE\xA1#;\xD0\xEA\x96\xE7\x92\xFC\\x92\x97KrS\xBD\xF9fb.Ĵ?n\x99com\xB5\xA51\xBF\xC4_\xF3\xBBrnm\xE4&quot;oAk\xAB\xEC\xDE\xC4-\x88\xF26\x9C\xDB\xE1\xDF0\xEC(&quot;;        \xFA\x8A\xBCeޡ\xA4\xC21\x8ELv\x9C&amp;Z\xE2\xA0\xCC\xED\xF5\xD1\xCCD\x83\x9Ef\xBAG1\xC2\xCA2u\xE5n\xE2.KTa΀\xFFx\xF8چ\xCA\xE9I|{\xF3}q{cԧl\xFF\xA6\xF3zsCZz\xAC\xEEr+u9         S
+\xA4\xC8W\xE6[ex\xD8\xF7\xA6\xEF3\x9F\xE4\xF5\xE9
+\x8C\xB9!\xD3C!\x8F\xEE\xEDJI&lt;T\xEA\xBE@H\xD9\xD1MA\xDF$\xB6\xA7˪H
+9I fe\x87\x97)-\xEDؒ\xB9?02\x8A\x9Dd\x94\xC1.\xE3\xAD\xED\x85\xEF\xEB\x90\xF1\xA6\xB9c\xA7\x90\x83\xEF\xCE9\xE4@\xF0\xBE&amp;G\x9A\xB2\xC6\xC3\xDC2Zo\x93\x9B\x94\xBB\xA3n\xBC\xB2ɫ|\xF8\xDB\xEB\xCA\xE9\xFC=\xF6\x8CX5&amp;\x8C\xF8\xAEl,\xA3\x9A\x8E\x9F\xCA\xD87kң\xEF\xC9\x9D\xA5Ԕ\x89\x94\xC3O/\x8A\xF5V}1/\xD6\xEB\xF9&gt;\xEF\x8F[t\xC5\x99T\x81\xF60\xB6c˿)\x93\xCCHWvl\xB9\xF7\xBBpÖÛo\x96\xE5\xB7妱7v
+Xm}#\xCF^;\xE7\xAB\xC3_}\x96\xF9=aԈi\xF9\x9E\xE4 \xD9U1\xE2\xD4\xCF_\xB6\x92\xBC\x9C\xC1\xC32\x93\xF3&lt;6kB\xBFn\xC3W׾r\xFF\xE2\xDDz\xA4\xD9\xFD\xA9\xB6\xE4        W\xF5\x9B\xFF\xE0'a\Eiѣt\x99\xF8\xFA\x84\xE5,`\xEA\xA6\xCD2u1^e\xAC0\xA9\6p
+v8,\x89V\xE2\xB0P+q
+\x95V\xA5wrq\x9B\xC0Q\xE7;\x84*$M\xC1\x81)j\xBD\x8Dp\x93\xD96\xFEmƙ\xB2Q\xAF\xD3\xE4i\xF3\xB3\xC4Qh%x\x9B\xE9\x82\xCB0[\xA9u\xBD\xF5\xABPe\xAD\xB1.\xB5\xB4\x8A`5[=\xD6|+\xB3\xBAֵܷ\xFD\xD0NtU\xBE\xC5b\x8D6\xF1Mߖ؞\xAF\xF9\x94\x92\xE1\x9EP\xBE\x89M\xF1\xEF$\xC63\xDCJ\x82\xE9\xACU\x91\xA9\x83 \x8Do\x82'\xF8;v $\xD0ۛt\xC9W9\xC7\xDCq\xF5\xED\xC5:\xCD]w7 6G\x86ޝ\x93\x9C\xF4Uv\xE1\xA0\xDE\x96\x93\x8F\x9A?}2\xB2\xE5sZ\x99!,\x88\xF1\xC1:\xD9qM\xC2Ą\xA2\xA0\x91\R        -I\xE8G\xFB%\xA1*%\xF3I`:;hmVL\xDE1\x83\xDAl\xC0
+\xA4ѮD        \xB14\xFF\xDFD        \xF5\xF9\xF0@MN\xAA\x89\xFA_'@1sItP\xDB\xEE
+\xE2 \xBD\xB1a\xF1\xA20\xA0\xCB\xCE\xC9S7_M\i\x83K\xFB\xCC\xC8&amp;\xAE\xF5\xC3\xC6\\xBFy\xAD\x8B8\x9B\xC7w8\xEBi”ǩ\xC38h$\x8ESG\x92d\x9B\x98\xE9\xCE \xA9\xF8A\xE25?`\x82\xB1\xAF\xA9\x92\xCCx\xDC]Bk\x91\x9DZ\xAD\xD5\xEB0c\xA3\xC1\xADqk}\xD0N\xF7\x8EN\x8Fk\xFB\xA4lO\xF1\x84\xB4 \xEA\xAC\xE0\xD2 [\x82.\xBA\xA0\x89SIK z\xE5^:\x8D#\xC4h\x88Z(-\xE5\xDFQ\xCBQ^\x8B%\xC9h\x99N\xAB\xD1PJ$,k\x8A\xF9Ω\xECL\xCE \xE9 i\xCAw\x98\xC1\xE1p\x9B\xB5\xA5ځ\x98\x844\xD2|Y\xC7h\xB1\x8E\x95\xB2\x81L`\xDBi&gt;h5\xB2I\xDF\x88M\x88@\\xFA7Q\xB7\\\xB9r\x9C\xFDOT\xA2\xA7\xAAt)ߴR\xEAJ|ʃSK1\xC1.(K;\xA7\x92\xEF&amp;ž'E\xBC\x89\xBEU\x9D\x88        \xC8ˑ\xA1$\xE3\xDD.\xC9h\xDEM\xBC\x94^\xEBw/\xF6\xB6\xB7kGSc25F\xB1\xC1(\xD3D\xDAj\xC9I&quot;\xB7\x88N\xBD)\xA4\xB6L!?H\xFC \xDA\xF1\xE5#KC\xB9b\xC2\xC0 :\xA3d\xA6\x90(\xB1D\xCA\x81\xF0m\xA1*t\x8D\xE4\x8Aɐg\xCC\x8F-\xDFVex\xBA\xAC\xD8\xCB`Hɢ-ɩ!\xA7R,\xC8NWh\xAE\xC0]u\x86\xAC\xA1J\x8D\xCAkR rrQ(\xFE\xBE\xCB\xFAf|\xBD\xE5\xF4ou\xE1\x91\xCB&amp;\xF6\x{17371C}\xE93\xFA\x9BO\xC2ȭ2/&amp;\x94K\xEC=%\xDF\xD1(V\x95\xFD\x8C\xB8|*\xFB\x85͸\\xBB\xE0r\xADgf\xD8=\x89\xF2?\xB9E0\xE5\xFBf\xF1\xAF\x8E\x95\x8D\x98\xB1&amp;\x9A]x\xB08KEԖ\xACpZ\x8F\xF5\xF8 \xF6Do&quot;\x8AYe\xFC\xBE\x8C e\xD3\xDAHr&quot;g\x88?\xB2\xA8g\xA0\xE75s\xCB
+p\xF5\xE88\xE6z
+\xDEHi\xA1\xDB*\xC7\\xE1K8`\xB8\xB9ß\xE8\xEF\xD1\xE2\xAF\xE2&gt;\xE0/W\xBA\xC0\xEF\xF2\xF0\xF9E\xC9&amp;\xD5&amp;\xCDFӗ\xED\xA4\xDBB\xB3\x8A\x85\x84\xF1E\xBA|\xE1:\xA7NN\xA1E\xEEɉlB\xB1\xD0\xD9Rd2}\x99\xED:\xE5
+ 7\xC4M\xBAM\x86w\xB2\xA4&quot;\xFBD-\xB2tv\xA7
+\x99\x81̬NFӯ\x87\xF6x\x88'\xFE:\xDD\xD3HW\xC9\xFAν禓\xF4\xE7\x9D պ\xF6\xD8@\xD6\xCC#y\xE8By\xFCrfA\xEFj\xD8\xF3\xE6\x85@\xF2\xB7o\xEF9\\xEA]\xEF=\xE8\xBC_$/\xAC\xE1_\xC7-\xE9xxO\xC9h$\xC1\x97\xAD \xF5\xAE\xAE\x85bqt\xEB\xE9\xCA\xD8N?/\x94(_\xEE&lt;]ɿ_u\xE8|!\x96*\xF3P\xE5C
+\x98\xC5f\xA5 \xE3i\xDA1dIw\xF8\xFF\xCA6+,H\xB7t \xD1\xF4D\xC7\xF970\xDC\xE1\xA8.xG@{\x8BL\xF9\xE8\xFD\xC8\xF2wߍ,\xFF#2\xE5\xADG#_ox\x82\xA4\xD7Ց\xF4'6D\xBEN~,\xBE\xFD\x99}U/V\xFF\xE5\xA9\xF6\x8F'W\q\xED\xCC\xE5=Lj\xFBގ,{\x8F\xF3\xBCO\xA6\xBE\xFB\x99\xF6\xF6\xCAG#_&gt;^9\xF0g~\x8Cd&gt;ښQ4g~\xF3[w\xED7kN\xB0o\x8FE&gt;X;0\xFE\xABA@\x98xݚ\xABe*\xF9M\xEDR~\xCC\xFF\xBED\xF9\xAF\x82\xB7\xED}1\xF1\xECٖV3\xA8m\xD8V\x83 m\xBF6\xA4\xEA=\xCDp\xF6l$h\xFE\xF3lj\xE2\xA9V\x8A\x9F\xA2\xC5ql\x86F\xE1}\xA8f7\x83Q\xA6J\x81
+\xF1I\x8E\xC0uxm*\xA2\xA7\x90\xC9\xECY\x86\xEDga\xFDf\xA4\xD1\xE2h+\xB6\x8ExQ\x88\xE8\x8F&quot;\xAEE\\xC7Dw\xE4y\xB1\xEF1\x8A\xDFG\xA1\xDF\xC3Շp&gt; +\xA3\x8B\xC3a9^[)\xC3~\x9F\xB5\xEF\xE1\xC7\xF2j&lt;\xFF\x88\xB4\x96ay^\xAF\xE0m\xCA\xF9\x87\xC3Ux=\xCB\x89ãQ\xD5}\xA0\xC2s\x80\xE5V&lt;o\xC7\xE7?\xC8\xFB\x8C4\x88Ͽ\x99\xDD=\x81\xE5l\xBCw_\xBC\xBE\xE90\xA4C\xE3\xFDu*\xE5\xEF9\x8F2V&gt;\xC6E\xBC\x8C\xF2\x99\x83\xE7\x97!##\xAEE\xF9p\xFE|\xE4K\xC3\xFA}X\xD6a\xBF4H\xF5#\xF0a\x9Bz\x84\x91\xB6\xC3\xE7\xF7\x8C\x8F\x94q\xE38Ώ        \xFB\xAF\xF4韃˴\xFB\x85\xC0&gt;\xF1qC|\x88\xD8sA\xDF.\xC5}\xE1f\xE8%*\xF3\xC7\xC7l@t\xA5B\x94K\x84\x8FK&lt;\xFD\x9D5o\x8EkBd㠃\xA2\x9B\xB1\x9F\xA5\xE2VX\x85\xF5D\x89\x82\x9B\x81\xB0u0M8\x85s\xB0n\x97V\xC0cxh\xC4iП\xC0-\xA0\xCAo\xDE\xFF\xC4x\xBC\xE7\x8A&gt;\x8C\xE3}\x88\xFE\x844\x8D7ޫ
+1\x9F\xFD^\x9B\x9C\xB8l\xB0\xDE\xE7u\xB6m\xE1+\xE5:1e\xB0
+1\x83\xF7\x9F\x9F\xC7e\x8E\xF3\xFE;y\xDB6\xE3s\xFAq\xE03\xD3\xE0\xD8c\xF3
+\xB3\x90:ދ(ω\xCDC\x8C&quot;\xF0\xFA\x94\xE9\xF3\x88\xD7\xBBxڠ\xE8Yʽ6\x83@7GE\x9A\x88p#&gt;D,\xE3\xFA\x86\xA8B\xD4\xF16\xF8|-\xB6\xD7*\xFA\x8A:\xC3u\x93\xEB\xD7
+\xF1EW\x87\xF0\xBE\xC7Ơ\xAC\x85\xC5\xF15s#\xF2_\x8Bp!2\xA5g\xE1\xBA82\xB1-\x97\xCF\xAE\xB3|\xBD\xB4ݛ\xEB\xD7\xEB6\xAA\xE8\xF4T\xAE\xF7\xE4G&gt;N\xAESЇ\xC5&amp;\xC4\xFB\xA0&lt;u\xAB\x8D\xF2u\x87\xF7\xBD\x8DS\xC1\xA6\xF4i\x8D\xB0\x96r\x9D\xE5\xFA\xD6F\xB9\\xB8\xAE\xF1\xF5\xC8\xD7D\x9C\x96_0\xD6\xDC\xF8\xC9E\xFETE\xD7Q\xDBh\x9B,\xCEӏ`
+\xDEs\xB8\xB4 \xF5\xF48 `_\xC1\xE1 ކ\xF4A\xDF6&lt;\x87\xE3a{ц\xE5\xC0@ud\xE1\D\xDE՗\xD0U\xAA\xBDd
+&gt;\xEB\xF6 \xCAb/&lt;\xA2\xC8u/\xF5\xB1\xBDD\x9F\x89\x81\xBC'&gt;C\xE7(\xE5\xA0\x97\x824Ůq\xCAq\xE1\xB5\xFF\xF6\xFC\xFF\xF4s\xF1\x98\x80\xE5Ž\xD1(\x8E\xE7A\xBE&amp;T\xC7I&gt;\xC2\xD3F\xF1|=\xA2\x91\xAD\xCE!\xAB\xD4SI\xA3j\x98%\x80S\x88iL\x86.\xA2 \x9DX\x942\xC8(\xA7\x9E&amp;]\xA9\xD8ݥx\xFFw\xC8q\xB8\xE7k\xBE\xCA~\xE1\xDAF|\xFD\xFD\x82\xDFi\xFF \xF4\xE8&quot;\x9D\xBBT\x97\xDAh\x9B\xBE^J\xB9\xCEp\xBB\x8BTD\xEA\xC2u\xB7\xB1\xF1U\xDF&quot;\xBEC}\xBCIY\xBF\xE8\xB8}V\xFC\xDAh\xC4}1}\x8D\x9E8\xAF\x9F\xEF\xC1:\xA4\xF7\xB7\xE9\xE7%z\x9A}\x89~\xAA.\xD5\xCBK)\xF7-ܾ+\xBE\xD7)\xF6㾶\xF1s\xFB\xC8m\xB7\x91\xDC\xCEq\xDF\xD7\xD6\xFERz\xFFr\xB4_(v\xF8C_\xD7Y\x88|D\xDE㕸ف\xF9\xC7)\\xA3G\xA5O\xA3;T\xA5\xD1\xC2\xEE\xE8iut\x83jj\xF4]ikt\x8E;\xEB\xBCOm\x8A\xD92\xBE\x9E\xDA|)\x97\xF7\x8Bm~T „\xB8=[\xA3\xB4\xC5\xE7+~t\xB8b@\xBA
+\xD7\xDF\x83\xF7\xFD\x80\xFBU\xBE\x85u\xB8\xEEP\x9Ex\xBF\xBB\xD9&amp;\xB8\x81}K\xB1\xEF&amp;\xE1\x85\xD8y6p\x9B\xC8fcϣM\xE7\xD7u\xC2R\xE5\xFA`\xF6+\xCCfYXބt-$H*\x98-\xBD\xCEy\xA2*羏]\xE3\xE7đ\xB0\xF5.\x8F-\x82'\xC5-0\x82\xCF\xED\xDD\xCD\xE7׼[]\x8F\xA8u\xF8;X\xC3\xCE☛p\x8C\xEF(t\xAD\xA2O\x9C\xB7!z\x96\x8FO\xD5\xA2\x80\xE3\xE3m\x9C\xF3~O\+Y4)2Z\xAE\xE80ʂ\xDFS\xFAL\x897#\xE95\xE2z\xB8S\xAD\x855\xEA \xB4O\xBF\x81[\x85\xB6Dy\xD6\xB8F-+rg\x8A\xBF\xFE;\xAE\x8F\xE3\xA8c\xC3`\xA1h\x8D\xFE\xA1\xE8\xFF\xB3Ѩp\xD7\xD0q\_\xAF\xD9\xC0%\x87\xB5\xB8\x96*\xF2\x89\xD1\xC5|\xFD\xC7\xC1\xC6u\xC77T\x89'\x8E\xA3\x8E?3\xA4g`\x89Ԅz\xB7}\xC1^\x9C\xB7\xE38\x96\xA9\xD0\xCB\xCB\xD83\xD1sض7㿨\x87\xCF\xC6\xF3\x83\x94\xF8\x84\xFB)9\xBA\x87\xAFU8U2&gt;\xDB\xF0&gt;(\xF1&gt;W8\x8C\xFD}\xA2-\xE9\xAE&gt;OH\xD7\x82\xBA\x97\x8A\xE8\x83R\x9F\x8B\x98\x83X\x83r\xCE\xA3ċ\xF7\xB8S9?ޥ\x9B\x8A\xFAͯ\xBFǞƵ\xB7\xBA 1\xA7\x9D\x80\xF1Ïp7\xCD\xE3\xBFf\x84zw}\x86\x80|Xg\xB9\x90)\x9C\x80~\xC2\xC5\xFF,\xB5\xD0IigG?~\xCAY\xF27\xC18V\xE3\x84(\x96\x9D\x88娏\xC8'6\xC2Hq,\xC6Y\xD7\xE3}\xE2\xA0Eȣ\x81ri1\x96\xF3\xA2\xCF\xF2v\xCA3\xCED\xED\xEC6(P\xF8.\x80\xD2\xD76\xF0&gt;?~A\x9F\x97\xA3l\xEFB}\xE0\xFD\xE5\xDF;\xBE\xA0\xBF\xBC\xAF\xE7\xFB\xEF\xE3?\xEB\x9F2N~_\xE4S\xDA\xEC\x87\xEE\xD1\x88@\x8CF\xD1\xFB\xE0D\xFD
+\xE3\xF0&amp;\x98CVD\xB7\x93uPF#\xD6\xC5\xF1\xF4Q\xE8\xC4 (cs\xC8BD9\x82\xB19\xF0(\xD2vHD\xECE\xAC\xE3\xBF\x85\xF8\xEB\xF7\xE2\xBDw!m\xE0y}mR\xBC\xFEb'⛶k\x82?럝\xBF\xEC\x87\xE8\xF6 \xEBbs\xD0\\xB4\xE9\xB9_S\xDA?
+!v+\xDA\xE1\xFC\xE8va6h9$#d\xA9ԐE\xBF\xC3\xF3Ñ\x98        +\xD94l\xF7\xFA\xF3\x9F@&gt;\x82|E\x861\xC8\x8E\xB1m&gt;\x90\xDA\xFF8p\xF5p\x8A\xEB\xAB\xF7\xCF\xFF\xA7}\xFCo\x81\xF3;1Q\x91\xB4Wt\xE8(\xC6\xE4\xAA\xE8\xE4\xB8\x9E4GϢ=\x978bup+\xF2|\xDA\xE6        \xCF/T\xCE_2\xA8+E\xC2`.=\x8F\xE5\x8E\xB6\xFA\xA5\xF3\xFA\x9F\xEAx\xDF\xC9\xA2Mڠ*\x99\x83}\x83\xED\x97\xD6\xD1\xC8ױ\xDC\xAC\x9F\xEE\xBF\xC2P\xA1\x9C\xCA\xD8P\xEC\xCBw\xFFX\x97̐\xC7A\xAB\xB1\xBE
+\xAF\xFF\xE7\xEBC!\x8B\x83\xB7\xE5@\xD9\xFA9P\xD6\xDB9\xE8w\xE0\xE5\xE3\xB5\xC1J\xFBn\xC8u\x97\xAB\xD0\xC4y~e~\xDA\xF4\xFC\xD2\xF9A^`o\xA2=:\x841\xF3Pp_J\xCF\xEBw\xDC^\\xA4\xF3\x83b\xFA~\xBE\xCEm\xC9\xE1K\xDA\xFC\xB9&amp;\xFE\\xB8V\xFE\xD5=\xFF\xFF\;\xBB\xEF \xDE\xFE\xBF\xFA\xD4s\xA8\xAB3`L\xF7)\xC6a\x8CU\x9F\xC0\xF3}\xB8\xA0u!\xC0\xB9]-\xA3\xD0aV\xDD\xF2\x9E\x86\xE5 ҿ#\x9Cxn2R\xF4F皱\\x8D\xD7&gt;C|\x88\xA8cIpk&lt;\xAEta\xBDw\x8C\xB7uC\xFC~\x81?\xE7;\x8B\xD1ι\xA2\xFF\xB9\x88\xB5X\xFE+\xB5\xEC\xDCHF\xFA\xB6#_\xD29x\xEEn\xA4!\xAC\x97#ʰ\xFE1ֻ!(\x96\xBB \x8E!\xB0\x9F-ƴ\xE4!\xFF\xA3\x88\xD9&lt;\xF9'y\xE8\xFF\xBB\xF4_\xE4\xFFS\xDB\x80J%\xE6\xC4\xFE^\x9AC\xFC\x8Fi\xDB|\xFEzi\xAE\xD16\xFF\xFF\x89\xB6\xE5\xFF@\xE3r\xC0\x98o7\xC7\xB9Ͽ\xCDq\xDA(\xCE\xE7q\x9CB\xFC\xCCE[1\xA6T)q4ƲJ\xCC\xCD\xE3\xC78U\xE2\xED\xBDJ&lt;I\xE2{\x8A
+\xE5\xB13\x8F_y\xEC\xCC\xE3W\xA4\xEB\x94&lt;\xEF#\xEC\xCF\xCDp5\xCF\xF3\x95~\xB5\xF9\x91 l+ͅ\xF1{h\xF7\xA0'\xB6\xF9\xFBs\x92l\xD9\xFD
+c˥ܷ)~\xEC\xFE[d\xD1\xF7\x91\x9A\xD0\xE6\xBEF^\x89\xFE\x86\xF4C\xAC\xA7\xA0/Ӵ\xF9\xB46\xDB\xFA6\xF6}\xDA\xFF\xD5\xFA\xEB#\xFF&gt;u`\x93/A\xDB\xF9        q\z=/ǥ\xBE\xF8\xBF\xC5\xF2\xDD\xFFk_\xFE/|\xF4\x85~\xFA\xFF\xB4\xDE\xE6\xE7\xDB\xF0\x9F\xE2\xD2K\xE3\x80\xFFT\xFFO\xF7\xFBo\xEB\x97\xC6Էp\xFC\x9B\xEBJ\xFDҸ\xA4\xAD~)\xFE\xE1\xFA?\xEA^,\x9Eq\xE3zk\xC3%\xEB\xEE\xBF\xAE\xD3lZ\xF4˶\xF5\xDAևK\xD7\xF1\xF9\xF5֖#̅^\x88\xDEm\xEDG&amp;ڑ,Ēx\xDE\xE5\xC72\xFA\xC0\xE8\xEDܿ\xA9[\xA0@\xFD`\xFDE\xE5\xF7\xED\xD0\xE6 \xAD\x88\xF9\xBE\xE8\xB2c\xE9ߕ\xDF\xF6\xBB\xEB*\xF6\xA1\xD2vD\xFFI\x9F/\xD5[\x9F+\xF1!\xCAL\xE9\xFBR\x9C\x8BS\x90\x87芰 \xB6 n&lt;?\xD7y\xFC[N\x91w\xF4\xBC&lt;\xCFE\xC3{\xFD\xF6\xAFb\xC1E1ϛ\xC1\xF3=\xAC\x9B\xB0n\x8A\xBF0\xBA\xE1\xBF\xC0i\xB4\xBC5\xFF\xAF\xA2\x84\xAC\x9Db|!\xAC\xC1\x8CY\xFE\xDFC\xDA\xA0\xF6h\xAE\xD0b\x9C\xA1c\x88\xBA?\xA1ό\xC1\xF0 \x80q\xC0\xC50\xA5\xC6`\xC6X\xC5\xF2@\xE2\xAD\xFF=l\xF3c\xB0\xBF\xE0\xA8p\xE1\xD8܈dW
+&quot;\xB5$\x86\xB4I\x8C\xBD\xBC\xB3\xF9f\xF8\xC7\xA4_C\xA0@&amp;\x9E\xCF\xDA\x90\xBD \xE7Пh7\xE6\xFF\xBBȳ_\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6e\\xC6\xFF\x8F@\xF8Y\xBF@        L        (\x98!\x86\xE1\xB9\xE6i \xF0\xAF\xB6 ր\x89\xF0\xFF̶IX\xD5`\xB6ȍ\xC2\xEASb\x81\xDC\xDD,,\x87r\x85\xB0\xD0\x9A\xA6        \xCB`.\x82b\xF3~\xF5\xED:l\xE3\x85\xAD\xB1\xC0\x8C\xED\x83Q\x83\xA0\x8FD\xA9\xCB\xDE~qC\xA2\x9D\xDF\xFE\x9EzS\x82\xC2\xF7\x97\xFA\xFCP\xAC\xD0`v\x94w\xB7
+\xB7\xC6 7\x81҄9HS\x91\x8EE\x9A\x82t\x8C0 J?\xE5\x93\xB9\xA0\x9FW\x8A\xCDKd\xE1\xE5\xEE\x82
+\x90\xF6ܐ\xA44\x9BUo\x8C=gV}fvAw\xAD\xD0Sp*ML\x82BHՂ\xAA\xBE ͳC\xE0\xFFYXؠ\xD1\xF1\xFE-\xAC7\xDB
+v
+\xF7
+*\xB0b\xABl\xE5H3\xED\xB4\x90\x87\xE0#ڠ1,\xED\xAE\x86\xE20\x87\xA2XҰ\x8F\xD6+GY\xB8\xA9o\x84\xCF\xEB-$\x83\xAFMR\xC0\x86\xB4LH\xAD\xB7\xA55\xEDR\x9A=\xC8\xEF\x82\xCF\xEBV\xAF.\xE4\xA4\xC1`,h\xEA\xAE\xBA\xE1հp?J\xFC~\xE5iK\x82\x9D \xA0{PȄ|E\xA1\xCE\xC5\xFF
+J\xB3P\x8B\xA5Z\x9C\xA6Z\x9C\x9AZ\x9C\x9AZ\xECE-N5\x8B\xF0\xCA&quot;l\x93'\xDC\xD5\xC2-\xB0\xB1\xCB oi\xABG        nS
+\xE9\x99\xDB\x97\xE0DI\x98w\xA0\xEC\x9Eu7h\x8C\xBCg\xCEzK\xA2\xD2\xCC٠7\x94\xEEn\x86\x81\x8A\x9D\x9F\xD9\xE0pL\xDB!d+C\xC9mp&amp;q\x86\xEAz\x8DE\xE7\x88\xCD2\xDA\xF9\xEC\x92\x85TE)\x8A\xC2\xDDӰN\xC0$\xA4\xA1\xBB\xE9.\xFA)\xDD\xCB\xE7\x97\xFF/
+\xFA~\x9C~\xA7\x8D\xD1h\xDDӀO\x91\xE9'\x9C6wO\xA6\x87\xF9Ohѯa=\x96(\xDDA߀|d\xF8\x8A6\xF2^\xD0/\xE96(E\xBA\xEB\xE3\x90nCZ\x88t{\xBD\xF7ݴF\xDA؀\xFB\xBE\xB6\xDE`烥o\xD4\xE7\xE4\xC5 i\x81x\xC1\x91/X\xEC\xDD\xF4u\xBA \x92\xF1_ MG\xBA\x8B6\x81\xE9kH\x9DH\x9B\xE8Lx鋴#tE\xBA5Nߤ\xAFp\x9D\xA6/ӗ\xA03҆z#\xEFB\xB8^\xC5\xC9 \xF5'\xCF\xD7C\xACV\x9E\x97\xF6
+}\x9E&gt;nl\xFA\}Ѝg75\xD3\xD3L;\xF0~\x84&gt;Eg֧\xA4Y\xBAk\xE9cd9\x85\x8D\xEA`\xA7`\xA1\x8F\xD7w\xE27YZ\xFF\x8A'm]J\x97\xCA\xCENr@n'o\xF2\xF9\xED\xF27\x9E\x80\xA7\x9D\xA7\x93g\x83\xA7\xBB\x99\xDE&quot;
+,]\x8C\xC7Nࡨ=\xB1\x94.\xAAg\x9D\xC2\xDD[qL|\j\xF0X\xA7\x94\xAA\xF0X\xAD\x94\x8F\xE6\xF3WO*\xA5Rz/ DP\xBC\xC7\xC4\D
+\xE2.`x\xBC\xF1\xC4\x88;\x9533\xB3\xB7\xA0\xF9\xA8F\x8Ej\xE4\xA8F\x8Ej\x85\xA39\xAA\x91\xA39\xAA\x8Ej\xE5\xE9\xB3\x9C\xA3
+9\xAA\x90\xA3
+9\xAA\x8E*\xE4\xA8B\x8E*\xE4\xA8R8x\xAB\x90\xA3J\xE1(G\x8Er\xE4(G\x8Er\x85\xA39ʑ\xA39\xCA\x8Er\xE4(G\x8Er\x85CF9d\xE4\x909d䐑CV8d䐑CV8\xF2\x91#9\xF2\x91#_\xE1\xC8G\x8E|\xE4\xC8G\x8E|\x85#9\xF2\x91#_\xE1\xF0 \x879&lt;\xC8\xE1Q8&lt;\xC8\xE1Arxrx\x90ãp\x98\x91Ìf\xE40+f\xE40#\x879\xCC
+\x87Y\x99\x9FY\xCEь\xCD\xC8ь\xCD
+G3r4#G3r4+\xCD\xC8ь\xCD\xF4\x96-ž\xEEo!\xCBdك,{\x96=ȲY\xF6 \xCB\x85e\xB2\xECA\x96=\xF1\xA1\xCFT\x84AQm\xE6 \xE6&quot;j\x9C\xB7        y\x9B\x90\xB7        y\x9B\xDE&amp;E\xBDf!8o9\xC2\xC8F\x8E\xB0\xC2F\x8E0r\x84\x91#\xACp\x84\x91#\x8Ca\x85\xA39ꐣ9\xEA\x8E:\xE4\xA8C\x8E:\xE4\xA8S8\xEAŝ\x85\xE0\xFF\xBDR\xFE\xD7SC\xEF&quot;#\xD4\xE8\i\xCD\xFFS\xDA\xD5\xC46qDᙉ\xE3\xDD\x9C?\xA2\xD4%Mgwm\xE2\xAD        \x89L\xEFZ6\xA8\xF8HB\xB5 EM\x82&quot;\xC1        $۠\xFE\x8A\x84TT&quot;U\xAATU*\xE9\xC5B\xA5\x95w\xD7&quot;\xB5!U\x90\xA2+\xAE\xE9\xA9rk=\xF5\x9A\xBE7kC\xAA\xFA\xD6u\xBE\xF9\xC6\xEF}3o&lt;;\x9Aݕ\xB23tP\xF0
+\xB2#x\x89l        \xFE\x8C8\x82?%%\xC1\x9F\x90[\x82?&amp;I\xC1\xD7IT0\xD4'\xB8@\xB8L]\x9E\xEC0za
+\x98|\xB8\xB8(6\x92\xC8=\xFC\xD8ec\xFA\x80\xAFC\x9A\x92\xEEKeiCj-K\xCF%\xD6\xE1\x9F\xF2\xDF\xF7\x97\xFD\xFEֲ\xFF\xB9\x9F)F \x8Ay\xA6rO\xA47 }        \x80\x8B\xA4)\x91K\xB1Q\x88;
+\xF3\xEC|F٨\xDE\xF5By\xA7\xCF\xE2t#N\xCBqz/N\x8D6v\x92\xFA\xC4L\xA7\x90$\x83\x86SS\xDF\x9D\xE4[\x80d46        3\xD3ݵ\x9D7\xB8=ʫtݣA]\xDE8\x80\xE0         $*\x80 [\xF4\xA6&gt;P\xAFr\x84
+\x86 \xBDp\xFBC\xBA\xBBd\xBDƂ\xB4T\xF95Hp7v\xCA=qcG\x80\xAAnl
+\xE8g7\xB6\xC0\x8D6\xBAFbxD\xC1\x99{\v\xF96\xB8\xF2\xE8G\x97?z\xE0\xF2Q\xA0 n\xEC0\xD0y7\xF67\x82\xF4,\xE1&gt;,:[\xE7\xF8\xDD\xC8\xD3.dg\&gt;\xA4\xB9\xB1(\xAA\xE3H\xEF 5\xC96\xB0Z/\xF5\x8E)\xE2\xF2        \xA0\x97\x8F\xA3Z&amp;1&lt;\xF1\xD4O\xA2y\xAD\xE4\x96
+4\xE8e\x8D\x9A&gt;\xAA\xEF\xE3/\xF8W|\x8A\xFF         \xC3\xE3w\xA5\xEAz\xA6\xE2\x9EL\xBE\x9E\xF8\xC4w\x8D\xEA\xE1\xFA\xE0\xD4\xD9F~\xC4K\xEA\xFE-\xD4E\xD55\xFE
+?\xCC\xEF&amp;\xAA2\x98\x97\xA1\xDDwD\x97\xDFR\xAA\xEC\xA1~\x80\xDF\xE4Gx!\xB1\xCD\xF3\xFC\x9F\xE7\xD3\xFC\x82
+v\x97\xC0ױ\x99Ģ&amp;{\xB8\xC6OC\x85\xEF\xC1\xAFP]~R\xAD\x8A&amp;\x9E\xE0q\x9D\xC7\xF8\xB8\xB2\x8E\xFDK\x8Ey\xF5&amp;\xEB\xD8dċ\xFE.\xF4o\\xAD\xE2?\x9B\xAC\xD2.=.\xFD%\xADH祴4!E\xA4\xE9m\xA9_ꑻ\xE5N\xB9]\xDE/dY\xF6\xCB&gt;\x99\xC9D\xEE\xC1\xC5+4|\xB1\xBE\xC7/ޯ\xF7\xFB0\xF5\x89|'Ôyo\xE23*3r\x8A\xD8Zr,7\x93\xA69\xFB\xE9E\x92[P\xEC\xBFg&quot;U8s\xCEn\x8D\xA4\xA9ݝ#\xB9ٴ}L\xCBU\xA5\xDDi;\xA9\xE5l\xE9\xF4yӡ\xF4\xAEV\x9B}Q\xA5d֬\xD2]4\xDD\xEEÍ5Jn/\xF7\xD5\xA5o\xDE^\xB6,꽖
+\xA5\xBA'\xBB\xC6Od\x9A$s\xF5t\xCF꡽\xD9~\xFB\xEB܌i\xFF\xD0o\xD9#\x98\xD9\xED\xB7r\xF6\xE7\xB8\xEDf\x8Du\xB0`6Sc\xEDH\x96Y\xF3]e\xD9i\xB4\xFB\xAEf,\x90m \x8C\xE6v\x90\x91\xC8\xE44QP\xF3Iep\x8E&lt;]\x8A\x83.\x8C\xBA@\x90D\x85.
+\x9D\x8F\xA2\xCE\xD9R\xB2GQ\x84F%dKh\xB6T\xB2G#\xCAf\x9ChT\xA8&quot;
+5QE͈&quot;6(*\xE2$        .$\xEE\xEBDE\x9C\x8A`\xF6\xD0k\x89Z\x97\x8C\xBD\x92\x8C\x89X-\xF4\xB5\x86{\x9A\x9EC
+M\xCF!\xD0h\xFF\xF3XLk\xB42\\\xDAĝL\xE7&quot;\xD9E\xC0\x9C\xFD\xE5\xB5K!\xFB悢8K\xC5\xFA\xA7ѹ\x85\x8B\x97\x90\xE7\xEDbd1c/E2\x8A3\xBC\xD9Ľ\x89\xEE\xE1H\xC6!\x9B\xD9Y\xD3\xD9\xD43\xEE\xB0&gt;\x9C\x8D\xCCg\xACJ\xEA\xB8i\xFC+֝W\xB1\xCC\xE3M*;\x8E\x95\x99+e4q\xE8Na,c+\xA5\xA7D\xAC\xECe\xF7\xA7MG&amp;i\\xF5Dp\x85\xED \xC0\x9E\xEB [\xE9\xDEΫ\x938\xA0k\xE1\xD0R\xDFc\xA1\xC8&gt;Ͳ\xF7G\xD2v\x80\xAE\x84\x910Ѕ\xFF\xEA\xAEvܮ\xB6\xEE
+-M\x84\xFB\xD3uW'\x98\xBB&quot;i\xD2\xE8Z\x82&quot;\]-g\x87gΙ8Tl}\xBE\xF99\xCB\xE3!\xDC!\x92\xBD\x9C\x81?\xF8^\x80\xCF^%\xC97=
+͎b\xB1\x98Ǥ\xA8\xE5        \xC9\xD9\xF1\x99\x9C}\xD7z\x93$5\x97\xB1\xC0v\xB8aki6\xA7\xAD-[\xDD}
+N
+A sŵ\xA2\xF5&lt;uIlտ*1|T(T\xF6\x8F\\xF9\xAE\xE07\xF0Ǯ\xBBC\xE2y\x99]\xAF \xA8\xF8\xFCR\xA8 \x8Dy ϧ\xC8\xEE\xC1\xF0.Ӓ\x84\xA2Ȫ\xC7zW2+\xEAJb%\xB9\xAA\xAE&amp;V\x93~\\\xB9F^\xC2K\xA9;Tj!-\xDF\xE8\xC8,\xE2-a
+\xF1\xBEw\xDF\xEA\x81W1\xA3i\x96\x96+ؐ\xFFv6mtz\xE1u\xF7\xD7YT_h\x9CϞ'\x9E\xD8sj\xC5F\xA1b\xBD\x88pE\xF0\xE0\xBCϐ
+endstream
+endobj
+
+9 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 905
+/CapHeight 788
+/Descent -212
+/Flags 32
+/FontBBox [0 -212 2628 905]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 35 0 R
+/FontName /OSIZDS+Arial-BoldMT
+&gt;&gt;
+endobj
+
+7 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /TrueType
+/BaseFont /OSIZDS+Arial-BoldMT
+/Encoding /WinAnsiEncoding
+/FirstChar 0
+/LastChar 255
+/FontDescriptor 9 0 R
+/Widths 8 0 R
+&gt;&gt;
+endobj
+
+36 0 obj
+&lt;&lt;
+/Length1 51872
+/Length 27737
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xEC|y|\xD5\xFA\xF79g\xCE\xCCd\xCF$͞6\x9D4MJI\x81Җ\xA5X\xE9 PDd_l\x91J\x91E\xCA&amp;\xA8HQւ\x8AzEqW@\x91 \xE2\xB5&quot;\xD7Aq\xB9
+*(.U\xAE&quot;*\xA5\xC9\xFB\x9C\x93\xA4\xEF\xEF\xF7~\xEE\xFBy\xFF\xBDIg\xE6̒\x99s\x9E\xF5\xFB&lt;\xE7\x99&quot;\x8C2\xA2|$\xA0\x9A\xC1\xC3;\x98\x8EL\x83#{a5~\xFA\xB8\x99\xDFjS{ \x84\xB9\xA7\x8E\x9F7G]\xDB\xFE\xC3yyj\x92\xF2'ͼa\xFA{ *F(P\xFB7\xDDp\xE3\x82I\x9F\x8C\xFC\xF5Ba\xA1\x89/N\x9E8n\xC2Κ/oC\xA8\xF6ܯ\xEBd8`/\xB4\xC7Z\xA5\x83\xFD\xEC\xC9\xD3\xE7̷\x95k\xB0\x9F\x87\x90\xAFݍ3Ə#5O\xC3\xFE3#`?o\xFA\xB8\xF93\x8D\xFDLz\x9E\x87ԙ\xB3&amp;\xCE\xDB\xFF\xEC\xAFG\xC8GXX\x81\xD7 !\xF1a\xB1z\xE9Ol\x85\xD0$b׉\xC4(Q\xC2&gt;\xA1[\x96\xB3[\xC0\x87=
+\x9Cq\xD3 \xA4!5~A&lt;\x8A \xE5\x9Ex\xBB\x86p&lt;O\\xD4H,\xE9\x88\xD15؃\x96\xA9 Qc6&lt;)vd8{;^\x84\xEF\xC1\xF7\xE1
+\xB8\xC5qRA\xDE$o\x93/,\x82^        \xB7 \xB5\xC2ja\x83\xF0&gt;5\xD1\xC1t K\xEF\xA7\xD2\xC7\xE8St}\x99~F\xBF_\xBF\xCFJ&amp;\xC9/eJ=\xA4\x91R\x93 ,
+\xFC\xA9ZU\xA7P\xB3Ԉ\xDAQ\xCDW \xD5j\x89\xDAS\xED\xA3\xCEP\xA9O\xABϩ/\xC5`Z\xD0\xCC
+F\x82\x83#\x82\xD7n\xCC&quot;YR\x965˞\xE5\xCC\xF2eef\xE5fE\xB3\xAE\xCC\x9751DBJ(Fa6\x85\x95\xB0#\xEC        \xA7\x87\xB3\xC3y\xE1\xA2pI\xF8\xC6pMxIxExu\xF8\xFE\xF0\x86\xF0 \xE1\xED\xE1=\xE1\xBD\xE1\xFD\xE1w\xC3ß\x85\xBF\x89\x94D\xB4\xC8\x91\xAA\xC8\xF8Ȥȴ\xD3\xE2i\xCF\xE9gș\xCEͤYm\xEE\xDA\\xD2ܳ\xB9Ws\x9F\xE6m\xCD\xDF6\xC7/\\xDFR\xDA\xF2K\xECB\xFC\xA7\xA4\x8A\xD6s\xEA\xAC\xC7[\xF1|\xA8\xF3P\xE7\x9Fj\xA5\xCE\xA0\xCE\xDD\xC2SS J\xAF\xA3k\xE8Z\xFA0}\x92\xBEH\xE8?\xE9i\xB1N&lt;$\x9EIR'(iR\x95t&amp;PX\xAF\x9A\xD44խ\xAA@\x9D\xF6@\x9D\xB58I\x9D\xA9@\x9D\xA7\x80:\x9B/\xA1\xCE\xF0\xE0\xB5\xC15\xADԱu\xBCY\x81$u\xAA\xB2&amp;p\xEA\xA8\xFF u\x86\xB4RgMx}xs+u\xDE\xEA\xFC\xA8ӣ\x95:#SOcN|\x866\xE3\xE6\x8C\xE6\xF6\xCD݁:Zs\xEF\xE6\xB2\xE6\xC3\xCD.\\xD7\xD2\xA8Sè\xFF쁸\x83\xBCC^:ŏ\x92\xF7\x8AYA\xB2\xEE\xC37\xE3ix\xD6\x90\xF0\xD8&amp;{\xB1h\xAC},7\xD6\x9A\xB7\xA1[\xD0&lt;t#\x9A\x8C\xAEF=\xBAp\xE8»N\\xF8\xF0\xC2\xC1\xA4Ԣ\xAF+\xFA\xEAh\xA2}b),|y\xED\x89%'\xFE\xFCr㉛a\xEF%X\xD6\xC0R{b\xE1\x97s\x8FO=\xBE\xE0Ğ\xAF\xF3N\xDC}|\xE3\xF1\xB5\xC7\xD6{\xF2\xD8*\x84\x8E=\xCB~{\xDC}\xAC\xFA\xD8X\xD8\xCB?\xA6+&lt;\x96}\xB4\xEChߣ%G\x8B\x8Fv=Zx4\xFFh\xEEѬ\xA3\xFE\xA3\x8E\xA3\xF8\xC8OG~8r\xFAȩ#_\xB1_y\xE3ȫG\xFE~\x9Er\xE4G\x9E9\xB2\xF5H\xDF#W\xE9u$\xFBH֑\xE0\x91\x80\xAF\xD1w\xDE\xF7\xA5\xF2w\xD0VX\xE4\xC7\xE4G\xE5G\xE4\x87\xE5u\x89\xDEJ\xDFI=ŻD$\x8Cgz\x86}\xE8\x92y'\xB1\\xB2\xFF9\x9F\xDA\xAE\xBC\xF4zAk\xD3\xD6@?D\x88\xFE\xCF~T\/\xBEۺ\xB6׋/\xC0R\x9FX\xFE\xB7\x8F\xF88[\xC4\xF5ɽG\xD1\xFC\xE7\x88\xF3Z۳\xFE\xAFW\x96_\xDA3\xF1\xE9i\xF3\xA5CCO\xA1%h\xA9pZ\x8B\xBEA\xCB\xD0\xDDhz mBO#\xD5\xE9\xEED\xF7\xA33\xE8_\xE8.\xF4 Z\x81\xF6\xA1\xA3\xE8g\xF48ڌ~E\xBF\xA0\xB3\xE8I\xF4z \xBD\x81\xB6\xA0\xEB\xD1x\xB4M@\xE8M\xF46z\xBD\x8B\xDECзh\xFAD\x87Ћ\xE8\xF4\xBA}\x84&gt;D\x87A\xE6\xBEC?\xA0\x95h*\x9A\x82\xA6\xA1\xE9 \x857\xA1\xF5h\xAAF3\xD1,4\xCDEs@6oF\xA7\xD1|\x90\xD2\xE8V\xB4\xE4\xF5%\xB4-B\xB7\xA3\xB4}\x8F~D\xBB\xF1Z\xFC &amp;X\xC0\x8B\xA8]\xC0\xE1u\xF8a\xFCjA1,a\xEBP?\x8AÏ\xE3'\xC0nl\xC0zl\xC0Fl\xC2O\xE2\xA7\xD09\xF4;~?\x83\x9F\xC5\xCF\xE1\x8Dxތ\x9F\xC7/\xE0-\xF8E\xB0/uxގw\xA0?\xD0Ǹ\xAF\xC2\xF5x'ޅ_\xC2
+،-x7ރ\xADX\xC16lG'З8
+;\xF0\xCBx/vb^\x8D_\xC1ǯ\xE2F\xFCއ\xDD؃\xB6\xA2:\xEC\xC5&gt;\xFC:ޏ\xFD`\xEB3p\xFF\xBF\x81\xFED\xE7\xD1W\xE8k\x9C\x89U\xC4Y\xF8M\xFC~\xBF\x83\xDF\xC5\xEF\x81}{\x87p6\xE3&gt;\x88\xE1\xF0\x87\xF80\xFE\xED\xC19\xB8\xCE\xC5\xED\xD1It
+\x8C&gt;A\xC7\xD1g\xE8stC\x9F\xA2/\xF0\xCF\xF8 \xFE\xF8\x8E_\xF0\xAF\xF8,&gt;\x87\xC7\xE0?\xF1y\xC5\xCD\xF8n\xC11\x9C~ ~L \x94\x88D&quot;2\xD1=1\xE0\xC4HL\xC4L,\xC4Jb#v\x92F\xB8#q\xEE\x84\xF3\x89\x9Bx\x88\x97\x{21F913}  \x99D%\xABI\x90d\xE1θ\x80\x84p!\xC9&amp;a!9\xA4\xC9%\xEDI\x94\xAC +EE\xB4\x91\xBB\xC8\xDD\xE4\xB2\x86\xDCK\xEE#\x{1D3FD1}\xC8Z\xF8&gt;H&quot;\xEB\xC8\xC3\xE4\xF2(y\x8C&lt;N\x9E ? \x8B\x85;\x85\xA5\xC2ra\xA5p\x97p\x8Fp\xBF\xF0\x80\xB0Nx &lt;\xDE3\xC2&amp;\xE1ya\x8B\xB0U\xD8&amp;\xECv \xAF\xAF        \xFF\xDE\x903\xC2\xC2\xC7\xC2g\xC2—\xC2)\xE1;\xA1I\xF8Y\xF8\xF9\xF9\x85\xFCJΒ\xDF\xC89\xF2;\xF9C\xEC.\x8B=ȟ\xE4&lt;i&amp;H \x89\x918\xF8
+,\xF0\x94\xFC(\x88b;1O\xBCL,{\x8A\{\x85\xD8G,\xAF\xAF\x89\xC3\xC4Q\xE2h!S\xBCN\xBC^\x9C$Nog\x89\xF3\x84\xF1\xF1v\xB1F\xBCC\&quot;.W\x88\xB5\xE2j\xF1nq\x8Dx\x9F\xF87q\xAD\xF8`\x87G\x85(\xD3p\xF1iq\xA3\xF8\xF8\x9Ezq\x97\xB8G|Y|\xBC\xF4\x9B\xE2\xBB\xE2A\xF1\xA1\x83xX\xFCT&lt;&quot;\xBF:\x8Bߊ?\x88?\x8B\xBF\x8A\xBF\x8B\xCDb\$Y2JV\xC9&amp;\xA5In\xE1\xC9+e\x80\xDFR\xC1seI\xD9RDj'\xB5\x97\xF2\xA4\x8ER\xBE\xD0E*\x90\x8A\xA4\xEE\xE0\xF1{\x82W\xBBB\xEA#褾R\x99\xD4O\xBAR\xEA/]%
+\x90\xAE\x96J\x83\xA4\xC1\xD2i\xA84L.\x8Dl0J\xBAF*\x97*\xA4\xD1p\xE6\xDAm\x83`L        \xDAHc\xC0CN\x90&amp;KS\xE8\xD3\xF4\xFA,}\x8En\xA4\x9B\xE8f\xFA&lt;}\x81n\xAF\xBA\x95\xD6\xD1mt;\xA0\x8Fz\xBA\x93\xEE\xA2/\x81\x9F\xDDM\xF7\xD9K_\xA1\xA7\xAF\xD2F\xFA\xDDG_\xA7\xFB\xE9?\xE8\xF4M\xFA}\x9B\xBECߥ\xEF\xD1\xF4}z\x90\xA2\xD0\xE9a\xFA\xFD\x98~B?/\xFD\xFD\x9C\xA1G\xE9\xF4=NO\xD0/\xE9W\xF4kz\x92\x9E\xA2\xDF\xD0o\xE9i\xFA\xFD\x9E\xFE@\xA4M\xF4'\xFA3=C\xFFE\xA1\xBFҳ\xF47\xFC5&gt;I\xCF\xD1\xDF\xE9\xF4Oz\x9E6\xA3mh;\xA9\xC5Eh'څ^ǧ\xD0T\x8F\xF6\xA3;\xD0kh\xB90H, \x86C\x85\x91\xC2(\xE1\xA1\.\x8C@\xBF\xE1oI#\xBD\xF0\xEA:\xD4\xD6\xEEt.E\xF7\xE0^x\xBE|\xE9\xFD\xF8fԀo\xC3M\xF8'ZMg\xD1\xC5t\xB6P!\x8C\xAE\xAFPI\x97й\xF4f\xBA\x94Σ\xCB\xE8\xBA\x9C\xAE\xA0+i-]EW\xD3\xF9\xF4o\xF4.z7\xBDɽ\x93&lt;B\xDC\xF68\xA0\xB7\x87\xE8:\xBA\x90&gt;A\xD7\xD3
+\x80T\x9E\x92\xE6Hs\xA5\x9B\xD9#\xC7\xC9        \xF2%\xF9\x8A|MN\x92S\xE4\xF2-H\xE7\xE5 \x8D\xC3\xC5\xE2H!SP\x85\xA0\x9029^\x9C N9,\x87\x82\x94\x8E\xAB\xC4q \xB9īŁ k\xFB\xC5\x88o\x80\xBC\xBD'\xDFٝ
+d.H\xF1 q\xA6X-\xE4\xED\x84\\xA1=H\xF3\xAD\xE2m\xE2B\x90\xE4\x95 \xCF\xCBA\x9EW\x81|/\xA2BH\xF5\xBDB\xA1\xA3\xD0I\xC8: B\xA1PRzV\xFCM&lt;\xFB\xA3\xD8$\xFEr\xAA\x80\xA4\xDA\xD93AN\xD2T\x90\xD5iҍ\xC2\xC2\xF7\xB0\xFCr\xD9 $\xB37H\xFA        \xF1K\xF1+\x90\xDE\\x90\xE1\x90\xE1\xA8X&amp;\xE5K\x9DA\xA6\xC3 \xCF@\x8A/\x93J\xA4˅.BW\xE1W\xE1,\xF8o        %\x803|0a\xFB/\x8EN
+T\x94d\x9D\xDE`4\x99-V\xC5fOs8]n\x8F\xD7\xE7O\xCFd\xAA\xC1\xACPv8\x92\xD3.\xB7}4\xAFC\xC7N\xF9\x9D
+\x8B\xBAt\xEDֽ\xB8\xC7e%\x97\xF7,\xD5z]ѻO߲~W\xF6\xBFj\xC0\xD5
+2t\xD8\xF0#G]S^1\xFA\xDA1\x95׍\xAD\x87\xAE?a\xE2\xA4&amp;O\x99:\xED\xC6\xE97͘Y=k\xF6\x9C\xB9\xF3n\x9E\xBF\xE0\x96[o[x\xFB\xA2\x9A\xC5wܹd\xE9\xB2\xE5+V֮Z}\xD7\xDD\xF7\xAC\xB9\xF7\xBE\xFB\xFF\xF6\xC0\xDAZ\xF7\xF0#\x8F&gt;\xF6\xF8\xEB7&lt;\xF9\xD4\xD3\xCF&lt;\xFB\xDC\xC6M\x9B\x9F^\xD8\xF2\xE2ֺm\xDBw\xD4\xEF\xDC\xF5R\xC3\xEE=/\xEF}\xE5\xEF\xAF6\xBE\xB6\xEF\xF5\xFD\xFFx\xE3ͷ\xDE~\xE7\xDD\xF7\xBC\xF0\xFA\xE0\xC3\xC3}\xFCɧ\xFF\xFC\xEC\xF3#G\xBF8v\xFC\xBF\x91\xC2#\x85\xFFF
+\xFF\x8D\xFE)\xFC7R\xF8o\xA4\xF0\xDFHῑ\xC2#\x85\xFFF
+\x8D\xC4=\xC8 \x8BO|yiy\x8A \xCBi\xB6\x8DM\x89\x9Ff\xE7ٖ|\xAD!\xB9 \xB4m\xC1S\xC07\xBD\x8A\xF6\xE13\x88\xD9\xE1\xDD o!7\xEA\x83o\xF27\xB4Ih4Y\x89\x86\xC1W\x84\xE3\xC3\xDEx=\xEA~F\x80\xE5\{
+\xF8\x9B=ȅ=\xF1\xEF\xC0\xF7,ï\x96&quot;3\xCAB\xBD\xD0\xF0Xw\xE1\xAB\xE3s\xD1t\x9Cމ\xBA\x92\xBA        \xCD\xC45\xF1\xF2\xF8\xDD\xF1\xFB\xE2O\x83\xEDފ\xB7 #\xF2\x81\x87\x8F\xC4\xFF?\x8A:\xC0/);\x8E\xEF\xD3\xEFD&lt;\xA5\xAE| |\xDF\xC3 I8~C\xFC&lt;\xF4 \xF0\xA2h :\x80I\xEE&gt;}\x8B=\xF86\xA17\xDC\xE5\xA9x]|?\\x95\x8E*\xC1\x9F&gt; \xBE\xA1 \xEEG\x82\xE2\x98\xF8\xC0\xF8\xE4\x82ġ\xBB\xAEC\xDBA\xFEwM^A\x9Fc\x93x&amp;\xFEt\xFC \xF2\xA2&lt;\xD4\xC6S\x8F\xDEǍB\xACeq\xAC\x94\xA0R.*\x8633\xD0\xDF\xC1\x8F\xF4\x99!\x9A\xC4\xB0\x8A\xB7\xC4?B\xD4\x8D\x84\xDE&gt;\xBF\xFC\xFFNn\x87\xEF&quot;\xE1
+Z\xBFY\x80.\xF72j\xA3\x80O\xF4\x81\xCF\x8CG\x81'\x98Af!&lt;\xB13|'\x80\xC7_\x89\x82\xBB\xAF\xB4 &lt;\xCEA@\xEC\xCF\xD3f)#v&quot;n\x8ED\xD0#\x80A^O\xEB\xCF8߁?\xC1_\x93\xDEd,x\x8A\xAF\x84\xBF\x81\xFAP\xA3\xBEp\xC3]\xE8y\xF0\xE2v\xDC\xC5\xD7\xE2ɠ\x9B\xCBASׁ\xFF&lt;\x84O\x93^d\x99^e\xB2P-\xBCB\xAF\x80\xEFp:\x9B\xDE        \xF2\xBDJ:+\x8F\xED\x8F}\xFB=^_\x86\x86\x82&lt;,\x86\xDE?\xE8\xA6\xE4\xE4 x\xD5\xCF\xC0\xB7~\x85E\xC0 \xF82=\xDF
+\xDF\xDB\xF1]\x80b\xA8\x87\xA7\xC2_\xE1\xEF\xC0\xDF\xFE\x86\x9B\xC1\xAF&quot;\xF0\xA7~\xE6\xE1&quot;\xB3\xC8\xCD\xE0\xED%\xE1{\x88\xFCH\xFE\xDCBhT\xA1\xEC\xC6 \xE8\xD5ra
+|w
+_RX\xC38й\xBC\xC7\xE01\x9E\xF7\xB1XE\xBEC\x87t\xEF]x\xAA\xA5}˱\x8A\xAD\x88\xAD\x8Dm\x8F\xD5ǿDN\xE0\xA1\xA8\x90\x89J\xA0\xF7\xE3\xE0;\xF8\xBD$n+: \xC7h\x8F{⫁2c\xF1T\\x8D\xE7%\x97:z\x86\xF7\xFDE\xC0+\xF0\xA7\xF8g\xE8\xB3&lt;:\xEBsG҅\A\xC3\xF7:2\x91T\x83Ǿ\x8FԓO\xC8yA\xAF`\x9CB{\xA1\x9FP)L\xE6 \x84\xB5B\x9D\xF0\xF8ݯ\x84s\xC2\xF8Ʃ\x81f\xD2,\xA1Q\xDAbӹ`߾\xA5ߊc\xC0\xF6\x9C\x92 \xD2ti\x99\xD4 \xFDK\xEE*\xF7\x94\x87\xC8C\xE5J\xF9y\x97\xFC\x91\xAE\x8A\xD9g\xB0\xD2/]\xFC\x9F,\xD0W؉\xEE&amp;\x85\xD4K\xDE'\xEF\x83&lt;\x8FE\x84\x81$\x95l\xC4+\xC8B\O\xB2\xC5\xF9\xD2e\xE42&lt;\x9D\xA1\xA0\xF5\x80&quot;Α˄\x81x\x8E\xA6\x92\xCE\xC9x\xC0A\xEE-\xA1\xAF\xA3&amp;\xBA\xC6\xF6&gt;\xDCy\xBEd·\x93\x9F%ڎ)\x86g\xFECȧQ\xE1]\xF4\xB9p\xCBt:B
+\x80\xE0\x9A\xC8s\xC2\x90\x82WhO@\xD4A\xE1Q\xF4\xA2P\x8D\xA2\x9D\xA4/B\x86f\xDDj\x90\xE3Ax3؅\xB8\xFF!đ@\x81u\xBE\xFC&lt;\x8D\xFC|\xC9̀\x9E\xC4\xE8
+\x80\xB0 \xF1m\x80\x8B\x9F\xAD\xC8o\xFB\xE7\xC4o\x93)\xB4\x96\xA4\xE1zD\xE8&amp;]1 ?At\xA0%\xB8RxX\xFA\x99|x\xF8 5\xA0c\xC2 \xD0\xFB\x83\xE4Ea =#ÓAj\xAF\x8E/F \xC4r\xFA!\xBE\xF7(\xA6'\xC0\xBA\xDD&amp;\xD0 l\x81U6mh\xF7\xB0\xBD\x84\x81p\xC4\x92s5\xC8\xC5H\xB0\xC3\xF7!\xB0$h
+\xE8\xF85`\xC5\xDEG\xF5\xD2Ҁn-\xAC\xC4;\xEFƆ\xA1\xD1\xF1gѺ\xF8
+\xE8\xA6\xF8}\xA8؃\xE5\xF1\xDB\xE0\x8E\xD1)tڈ\x97\xC6n\xFC\xCD9\x86\xAF\xCB\xC8A\xB1,ށԒ\xCF\xC8p\xB2\xF6R\xFE\xB5À\x8D\xBF\x87/\xC4O\xA8\xA7\xF82\xAA\xA5\x9F\xA2\xE1\xA84\xBE:\xFE1Hw;\xB0\xB0\xEB \xAE\xB8
+\x90\xEEt\x88N\xA1+\x85FTD\xB6\xC5˄\x990\xDE\xE3hh\xFC\xB9x&amp;6\xA0\xC9\xF1\xD1`\xF0\xDA\xCF\xC8&quot;'G\xB5\xDE#G\xF4\xD2J{^^rY\x8F\xE2\xEEݺt\xCE\xEFԱC^\xB4}n\xBB\x9CH8;\x94T3\xE9~\x9F\xD7\xE3v9iv\x9Bb\xB5\x98MF\x83^'K&quot;Fy}CeUj]\xA4\xAA\x8EFBW^ف\xED\x87\xC6\xC1\x81qmTթp\xA8\xEC\xD2k\xEA\xD4*~\x99z\xE9\x95\9\xE9/Wj\x89+\xB5\xD6+\xB1\xA2\x96\xA0\x92yjߐZw\xA0OHm\xC0\xA3\x87\x96C\xFB\xAE&gt;\xA1
+\xB5\xAE\x89\xB7\xF2\xF6\xDE6C;\x84\xA8}=\x93\xFB\xA8u\xB8J\xED[W6ormߪ&gt;p\xBBmFC\xEFPyh\x9B\xC1M#\xB4\xEAܡ\x99۰\xBB'\xE6
+\xE2\xEE\xDBcA:3t\xAA\xCE\xEAӷ\xCE\xEA\xC3zP'\x84\xFB\x8E\x9BP7dhy\xDF&gt;\xFE`\xB0\xA2C^\xEE=&gt;t}
+]Qg\x8D\xF2KPo\xFE\x98:\xA9w\x9D\xCC\xA3Na\xA3A\xAB\xD4my\x8D\xB5\xABt}U\xD44!4aܘ\xF2:a\{\x86-
+\xCF\xEDS\xE7\xBE\xE5\xA4\xE7\xE2.\xDC\xDC޻|y۳~\xA1\xB6\xAFg\x8A\xCAvkk\x97\xABu뇖\xB7=d\xEB\x8A
+\xB8\xFC\x96\x84˪j\xCB\xE0ѫ\x81\x88\x86\xAB\xF04\xB2\xB4\xA2\xBC/\x85G\xAAl$lT\x89\xF1M \xF5eG\xAA\xA6\xAAu\xFA\xD0\xA1ɵS\xAB\x805\xBE\xDA:4lAp\xBBϧ펟@\xBE\xBEj\xED\x88\xF2P\xB0\xAE\xD4\xAA\xD7'}\x9B\xD5[\xB0ë\xA9\xDEK\xCFt\xC8ۦ\xD8\x84\xDDf\xB1&amp;&amp;s\xDB\xC6\xC4\xD6s\xBC\xC5/g\xAD\xC3Z)\x8BY\x8FB\xFDA \xEA\xD4\xF1*\xF4\xA4&lt;c\xEA\xCEV\xBB\xA3\xDA\xF1\xDD\xE12\xF8T`\xF8U\xDD\xE0Ȕ:}\xEF\xAAZ\xA5;\xCE~_'\x86\x95\x90Z\xFBĚU\xA1\xA6/=2.yD
++\xBF!\xD6dr\xD2*jp&gt;ծ\x8BF\xEBڷg&quot;&quot;\xF7\x9EB{\xF2\xFD.\xF2\xE65\x90Ph\xA6\xA2\xC2ȇ\x86m\xC7U\xF4\xE8\xE4\x83W5h\xE8zة\xABZ\x9E\xD8W\xD1\xF5\xFE\xEDH\xEB\xAD\xA8#U\xECLc\xEA\x8Cs$;S\x93:\xD3\xFA\xF3\xAAHr=\xCF
+;\xEBt\x91\xD6?\xAB\xE2J\xEB;\xB9Gv\xFD_NOL\x9C0&lt;4`\xE8\xE8r\xB5omU\x92\xB6F\\xB2\x978߽\xF5\\xB2U\x97ֻ\\xF0\x93d\x8B\xF8~\x84rL\xEB\xC5l\xA7\xDCTG\xC3\xF0'q\xA1\x9E\xD0 \xEB@*\xF9\xAC\x96\xD5)UW&amp;\xD6\x86`\xF0?\xFCQC\xFC \xFB\xDF\\xFCY\xB2\x9Bu=\xA2\x97\xEE_v\xC9\xFE%\xDD3\xD5
+\xD0ap\x83F\x8C\xAE\xAD5\rD-\xF1\xC0\xFE\xC9
+H&lt;QT{ס\x91\xA0\x99a\xF8k\x887vgK\x85\xBFN\x92\xF5f\x80\xFC%%w/\xB9ПlW\xC0\x87Ig\x87\xBC20t\xB5\xB5e!\xB5\xAC\xB6\xAAv\C\xBC\xE6\xFA\x90\xAA\x84jw\x93}d_\xED̾U)\xC1i\x88\xEFY\xE5\xAF+[]\xB4\x9A\x8C{\x80RtŶ^1t\x9B\x86W ]\xBE[AH]1\xA2|;\xC1\xA4w\xD5۲\xE1\\xF9n!\x8D%\xEC(;\xC8vT\xB6\x83`\xE4v\xA2\xE3\xD7\xFBwk\xD5\xF0\xB3\x94\xE0\xFB\xE30\xE2\xC7t\xA9c\x8Do \x89cJ\xEA\x81c4qL\xE3\xC7؇٘\xDE#\xCA\xDBJWɊ,\x81\x889xY&gt;MF(h \xDA°\xC2\xE0P/\xA8B\xE3\x8D%\xA7T\xDA\xC8\xE68\xAEv\x90\x9B!b!&amp;\x98\xBBB\x98?vd\x85\x8BĆ\xF8ZV$\xB7\xC8(\xC0\x89Q\x8CDQ2\xFE\xA4\xD7\xE9\x81 YWb\xB0\xEAk\xF4D\xE4֜fk\x91\xFEh        \xC1\x9A\xD9V\x84\xBD\xA6\xEA\xE7&lt;\xD1A\xCA\xD9h\xC9\xC0\x96\xA5%ZY\xD2R\x82JK\xF8\xB6\x94\xC0
+\xDB\xEC\xC5\xC5l霏\xA3\xD14\xA1K\xA1b8\xB6^Sp\xA0\xC3\x9D\xE4 ;\xB0\xFB̙\xD8w\x895\x9B{
+\x87rx?#\x9A\x89&quot;HX\xAC\xE25\x98\xE0\xA9{\xA2r\xAE\xB2        \x956\xE1ĝ\xB7]ё\xDF\xCC\xFE\xDBo\xB1\x9F\xE0.\xB7ņ\x92*\xF10R\xD0\xE5\x9A!NJ\x91b\x97u\x8AҀ w\xA0',:\xD8j6\xF9        \xCBuHP \x9E\x84l\x8F\xAD\xE67n9פ\x9C\x83\xBB\x97\x94\x96@\xA7+q\x84؊\xBAu\xEDV(\xC9\xF0u*\xE0\xFD\x81\xA3\xF7.^\x90sy(\x8A\xA3\xB1\xA1{\xF1\xD8\xF2\xD3\xE7-͇*j׾\xFCJ,3\xA6^\xF2\xFC\x89\x9A\xA9i\xA7\xBDA\xC1Ȯg=0&lt;!`\xD8֣'\x84\xEB,\xA0\xF5\x8ABFB\xE3\x8Fz\xAB\x957N֛ͼ\xF1\xA3f5\xC8H\xAB%\xD3B,/ؓ}\x8C\xC2\xE7/\xFDL ![QN\xBE\x85.@
+iY Ϻ&lt;\xE7\x96\xC5{G&lt;\x8AO\xE0/\xF7\xEE^[;\xFA\xC3\xE6\x96\xCF\x8A\xFD\xD3A/g*\xEDAw\x81Dt\xD72\xD1Mz\xF2\xA7N\xB8I\x94%\xFDMj\xF8S\xC47\x95$'\xC4k\xBAf4\xE7s\xE5\xC0\xB3%M%\xCAɒ\xD4\xE9,\xB0\xF8l\xE7\xFC\xB0-\xD8%h+\xB4\x9DA\xC1\xB1j|\xCFf|O\xAC\xBA        ߷\x91m7\xC6n\x82\xE7l\x8E\xC3wBDi@\x83v@T\x9F\x97\xF0-\x82\x85B\xB0\x97 `I\xDD\xE5\x83m\xCF\xEC\xB8$`\xBDq\xC3C0ⳕgO*\xF0\\x90-\xB6V\x9A\x94\xCE\xFC\xCE\xF9\x85\xC0z\x87$\xE7t\xED\xDAmׁ!\xD7w\xA8^\xE8w-&lt;\xB7n S\xC9tЎ&lt;\xCD;\x93\xCC\xC8@&lt;B\xC4'΄ \xBCt\xE6]ld'+\x95oP\xA7\x81M\x9D\xF3Q5\xB3K\xD0ً\xE4↝;\x99D\xEE\x81\xD5r轀š\x87\xB0Ζ$\xBA\xB8\xD1\xF5p~=\xE5\xBD&lt;Wɥ2ѩ=\xE03\x89\xF1oI1ȁ\x80\x86\xEFFB\xFC\xD8vG1i\x88\xD3TG\xF1\x83&amp;\xC2\xC2V\x81\xF3x#\xC87\gN#r\xE4c&lt;\x9C\xEE\xB8\xEE\\xA2\x9CmR\xBC^.v\x8CV.T\xF63\x9EG\xA3N\\x88\xF1\xA65\xB1r\xAF\xF8\xE3y\xD3\xF2\x91\xF1o\xA9Ml\xB9\xCB\xC0#\xB7f:4\x83/@EG\xC0lv\x83\x9F\xE62\xC6\x9A\x97        \x99ކL\xECr\x99L\xB06\xB1c\xA8\xD8X\x80\xF1\xB0\xF9\xB7I\xFF~\xA7\xB3p'\x89\xDD\xE9\x90V\xDE\xF8I\xF3\x8D\xBB\xA5Ž \xC5dbkv\xAC\xF5\x96\xEFY/\xA9^%\xC4 \xA9\xF1\xEF}\\xB0\xD8a\xB1\xC6Oh\xD7Si9Ya\a}\xDB&quot;\xEAe\xA3\x87\xF4M\xBB\xDAy\x95\xB7\xB7D\xDA\xE7\xEF0\xFF4y\x9Aq|ڍ\xCEi\xDE*\xFFr\xB34\xCFx\x8Bu\xB9\xF4\x90\xBCVy\xDB\xF39\xF9D\xFA\xC4x\xC4\xEAk\xED\xEEl\xBD \xE5\xEB1\xD2+`\xCD\xD6d\xDAf#f\xD2,pTE\xCC\xF4\xAE        \xBC\xB9*\xA1\\xA0W\x95\xD5Ѧd7qe5\xAAD\xDD\xD9\xC3RQ\x91\xA6ػ\xB8\vP2)\x94\x95IS\\x85]mJ$\x94%K#\xA7^?o\xFB\x9C+\xA6\xDE\xF0т{wo\xBA\xED\xB6M\x9Bn\xBF\xED\xAAJrS|\xF9 cw\xC4\xE2\x9F\xC7b\xB1׷&lt;\xF4~,\xF6\xE0\xCFg\xF0d&lt;\xF5\xA7)˘\xAC6\xEF h\xAB\xA6
+\xCC\xC2N\xA3\x8B\xC8=d\x9D\x8E\xBE@\xB1I&quot;\xF4&quot;6\xFC\x8E\x81\xF7\xDE\xC0Ƅ0\xB37
+\xF1܊@\xE3{\xCD\xC6\x9A\xCEj\xE1 *k^ƮO8|&amp;Q\x9B.\xA6(\x91/bU\xD4D&quot;z\x8D{p        ^\x8A\xAAQ\xBAD\xD8a\xB6\x95\x96\xBA\x8B\xB1\x8D\xD9\xF5JT
+\x86l\x92$w-,$\xCD\xF5\xBD\x8Fx\xF0\xABNs\xE8\xAD=o\xCB|\xB1\xDF;c\xD9\xD8J@\x96e[\xBF\x99\x94%\xBDM1{\xD2Ҥ\x91f&amp;J6o\xFC\xA4\xE9Z\x87`&quot;\xEAf\xECl \xDDg&amp;\xD6\xF3@yY3\x83ۭf*6B\xD4L\xB0\x9D&gt;:\xC0\xD6P\xA7&amp;\xD6\xD3R\xB6\xDE_\xC0\x84\x97\xB4&gt;\xD0d\xB7\xFE@Mo\xB5\x91\xD4sNhF{p\xB0c\xEC\xDE\xDB\xE1\xD6LU\x8CF2\xD2ͬ0\xA7\xE2\xFF\xF44&amp;\xCF\xECy\xECi\xFCaZ\xD7\xCB\xC4ˤ\x97\xC5W\xA5\x97\xE57uo\xA7\xCB\xFDM\xA6\x96i\xA6        \x96[췤\xAD\xB4ﵟ\xF2\x9D\xF2\x9F\xF1\x99^5\xBE\x94F\xFCJ\xBA\x92\xA1\xE9\xEF\xF13H\xE1\xD7\xC1V\xDC\xF2 \x8AN\x92\xDEI\xF79\xD2\xD3}\xBAtX \x9D/]0\x94\xF2\xF4\x8E\xC16lk\xC0\x9E\x9Dl\x88\x93Ê\x89\xC90\xDB}\xA8\xCDd\xBFL#)\xB8\xBBf\xB2\xED,%c\xC9 \xB20\xC9\x92\x8D2\xF1=\xDB\xC2v\xE5\\x94\x990.-%\xA5M-\x95'mv\xC6YX-\xB7t\x8CZ\xC0\xD4$,-Ji@wT\x89+gUT\x84\x9D\xC1H7\xE0x׮]\x8A@\xF4\xB9\xBDs \x8ER\x92\xA9|\xA1q\x87\x9Fz\xF8\xE7\x8D\xEBn\xBD\xE3Q\xBC;\xED\x8F\x9F\xBB\xF2\xB9}O\x8E        l\xD9ҫd|\xE3\xED\xFBOM\x9Av\xFF\xA3\xB5i?\xFB~K\xF9\xE6\xBDO\xAF\xD7$eT\xFC\xEAI\x89\xE2\x8A$\xE3\x8C^\x8F\xC6\xE8\xEFIG\x98\x89j\xD4;87d0[Mր\xC1\x90\xEB \xA4\xD3@n\xBA\x98k\x99M/\xB8YUa¯\xCA\xC6Evy\xA4\xB3&gt;:\xB1/\xB2\x97\x96\x82i\xFE5\xBD\xA1\xBCa/V\xF6G \xD8\xC2\xF8\xD7N4\xBB\xCC}\xCD\xCB̴\xAF\xED\xDB&lt;\xBF0\xCCu\xA32\xD51\xC15׼\xC0\xB1\xCC\\xEBX\xE9\xC6lU\x81\xCB
++\xA12\x86\xE7b\xC6\xEC^\xC6,\x99i\xC6]\xEAM&amp;'\xF5\xEC!O#/\x99\xAC\xE5@/E\xE8\xA6\xD9&gt;{\xAC:C%\xAA\x87I\xB2Z#ώp\xDB\xC1(\xA2D\xF4\xF8\xECK\xECLdMO\xEE\xBE\xDD{\xEF\xC1\xDD\xC1\x914jƋ\xD6*\xAF߷-e\xB08\x99\xCD:\xADLح\x96\x93L8\xC1O2~&amp;\xD8        \xAA
+ m\xC5\xD5i\xDD\\xCCfq\xC6\xC9\xDDZ\x9B)2&amp;\xCAl\x8DBY\x91Q\xF5\x99L[\xB4\xF5Ʌ\x85W;\xEC\xC6\xD9
+˦NY\xED\xA8~\xFF\xE2\xFCw\xA6M\x9Apǚ\xD8\xE9O^\x8B\xE3;=\xEB\x96\xD7\xDDq\xDB\xC7\xE3d\xFE\xC2\xF1w,Y\xA2\xEE|\xF3\x86\xED\xC6&gt;\xDA1\xF0\xCAݍ\xB1߾\x81N\xFB\xC0(\x80\xEC @\x9C\x88\xD6\xD5^n\x9Alzش\xC9\xF4\xB6I\xBCZ\xB8\xDA\xFC7*\xD8AƑId\xD1`ddeG\xA0A\xA0\x82\x93\x99\xCA\xC2\xCB\xE4e\xA4\xE0\xBB^3 J\xE1\xF4\x8E\x816\x90I/\x89\xA2A\xCB\xC8,2\xA4,\xA1!\xE1\x98x\xE3'\xEE\xA1
+\xB8\x9Bf\x96\xB5\xACP\x91\\xEC&quot;\xAF\xB1&amp;NF\xB3\xA3
+W\x89@؏\xD9o\xA0qr\xFB
+\xD9ii\xC0\xAB9\xA5\xEB\xC7
+\xE1Yf^J\x94on\x95\xB3%\xE7Jl\xC5\xC5\x8D.\xEF\xA5\xA02V\xAB\xC8
+\xF1\xD7nd\x9Fo/\x93\xF3\x91f,,\xB2: 4#\xA3\x84ݢ\x98\xD7h\x93f,6\xD5 )6i\x91bSV:l;sk[`\xBE .\xB4:C6\xC1\x86\xC9ږ%\xE4\xB1\xFB\xDFx\xA3&gt;\xD6\x8F}F\xD8u\xE1\xAAgb@\xA9h\x99\x82\xC7|P|l쨄\xE6\xECF\xC6gf\xC2\xE9C\xC0\xE9L\xB73Sa\xB4RH7[0\x92=\xE0/8&quot;\xE0
+\xAEe̦1-arBԲ4\x83)F\xAE\x9D\xDB^+_\xF0-Ȩ\xCDX\x9B\xF6\\xDA\xEB\xA6OLG\xFC:}\x9A\xC7\xD2\xDE'\xE8\xF3\xC5|\xE3\xB0ch\x87\x92fp\xDA\xD3\xD2ޱX\x964\x87\xC5j\xD1\xD2XG4\xCBz\xB4\xAB\xE6\xC4\xC9N\xBDd\xA5\xF80S\xB0j\x9Aʺg\xAB\xCCP)\xF7(T%\xF1p%\xF1`\xE4Q&lt;ēR\xCFվwAV\xFCU\xF7햝\xFF\x93\xB2d^\xAA,ե\x92!J\xD0&gt;\xD0J,`N.\xD7u\x8C\x8A\xC0E\xC4
+\xB7y\xB8\xD0\xD6%j\xBA\x92\x98W}AN\x87 H 2\xF2\xE7\xBA\xEF\xA8߲\xFA\x9A\xD5\xED6\xDDM&gt;kyi\xF0\x92{\xB1n\xCE]g\xDFj\xC15J\xED\xAA\xFDO&gt;\xBC}p\xA9\x8B\xFC\xEB\x85ؼ1\xB1s\xBCy\xEF\xF6 \xB5
+\xCE9\xC1\xE6e\xA0\xF6xp\xD2\xEAeZq&amp;\x8B\xECo\xD0\xCC\xD8lW\xE5\xB3\xB3!\x80QXaN\x8C#8%\xE0V\xDD\xDC\xE6\xB99\x82s'\xE1ց\x8F(\xFFHq\xB2\xB2I\xD9_\xC98\xD9a\x9A\xF7\x915gou\xB4}\x84:M\x98 O\xD0M\xB5OP\xE7\xE8\xE6\xA6/\xD5-K\xFFD\xF7\x91\xCB&amp;\xAB\x8C\xC49        \x9D\x90F\x86\xB8\xC1c\xAD ?!\xB39jH
+\xB26\xD6\xCB!f\xFD\xF4\xE3\xC3c#\xC1\xE8\xE9S}&lt;\xDB]\xB3\xA3\x9D\xE1\xD9
+g$\xC4B
+h)\x8C\xE2\xCCK \x91(k\xF2 \x8Cs\\xAC\xB9J\xDDc\xDD3܋\xDC\xD4\xEDb\xE7\xDC.\xF68w\xC9\xDEM\x804\xD0ĦV&amp;&amp;-\xB7t0\xC6$ǘ\xFA0kW\x81e\x88\x8A4\x93df\xDC\xEC\xCCA\x85\xB2\x90M\xE9\xC6Lv\xB4a\xA9мÓ\xD7ڨ^#\xAF'\xBD\xF6\xDEP\xDFr\xF3\xA1%_\xC6N&gt;\xB6\xF2\xF4\x96/Z\xBA
+\xBE{Ь\xA7\x9F\xBC\xF5\x96\xCDt\xB8ej\xFE\xC0\xFC\x9E?_\xFB\xFD\xC3ڦ\xDB\xF1|\xDE\xF4\xDA\xC6}\xBE\xA8\xDC\\xD1\xF0\xF8C[\xB7Ɓ\xBDs\x89\xCF!3\x9A\xA9Y\xF6\x9B1\x85?\xA2\xA3z\xB0eL \xF3        \xA6z\x93y6ڌ$\x83\xB9\x8B\x88Ϫ\x9B\xAD\xFF
+ޏ%B)lf\xE0E\xBD\x96\xA4\xB38\xAC\xBAd\xE0٦A\xCA9\x86\xC6Xd\xC0\xBCw\xB1\xAD8\xE1\xAAAXY#!A\x92C]\xED\xF6nㄝ\xABcM\xBAZw w\xFC\xBA\x92\x9E߲\xFA\x81\x98=\xD6\xDCpd \xFE\xBF\xF9(\xCB         \xF4\x82\xBAQ\xE5\x94\x90\xC1z\xF2:2        8\x8C\x8C\xEC\xD8\xD1 Hb\xBB\x80\xDDЛ\x98\xB0\xB1(`\x8F&quot;\xA2V\xC721\xB4\xA6\x80k\xF0\x93V\x8F\x90
+r\x85\xD4UB\xAB\xF8
+\xD9N\xBB\xDC\xC9\xEF\xE8\xE4\xE2\xEB\xBC-\\x8A0\xC4\xD5Ă\xFEdD\xF2ꈔ\xE8\xC8I\x99XS6&lt;\xF9|v \xB4,v\x90=\x96\xFD\xD2\xC9͙\x93\x8F\xF4\xE2\xF8R\x83g\xE1N\xC9\xA4\xA6Aݺ\xB8p\xAE\xAB\xBF\xAB\xE4\xD3w\xF9\xA2&gt;/D \xF1mt\x8E\xAE\xDA8\xCB4\xD7|\x8B{\xAAū\xE92\xDDb\xE3\xD32\xF3]\xEE\xF7lo\xA4ٳ@S\xB6\xA7\xAB&gt;\xB6Q\xD5Nl\xD3A\x8D0\xF5        \xE4\xAA&amp;\xF0 tc}G܆ҳ_\xD5c}\xB9AS\xA2\xB3\xAD\x9A
+\xBAc\xC5ȪX\x89\xB5߻\xAB\xC03\xBBBg8\xBF={\xB6\xB35\xA4qjN\xE2\ӹ5\xA49 \xBA6a\xF2\x9A\x92c\xAB\xE4\x83K&amp;g\xBA'?\x80\xEC\xAAQuE\x8ED\xBA%\xE1\
+         8\x92\xE6h\xA3-mUO\x9Dy\xE37\xAF6~?m\xFA\xF2\xBBb\xE7&gt;\xFB,v\xEE\xDE\xEB\x97M\x9B\xBCt\xE5\xA4V\xF4\xE8\xBFf\xF8\xE2\x8D[\xEEX\xF4\x9C\xE0\xCF}h\xEA\xFAϏ\xAF\x9F\xF4`n\xDE\xFE{\xE3\xE3\xC6{^\xC3#&amp;/\xB9s\xEC\xF8\xE5K.\xC4\xAE\xFCl\xCD\x9B72\xAB\xB8\xA0\xEC2ṭ\xEE\xE0D$\xC9z&quot;\x95P\xA1K\xA2p\xF0Q\x88\xB0\xE8g\x83.\x99'\xA8f\xBAȎ\x8F+\x91b\xC9!XvC@.T8p\xE19\xCCI&quot;#\xC1\xEFmAK\xB5N\xB3\x8Dw\xEF7&gt;e&lt;c\x91G \xDD e\x86Q\x86\x89\x86\x9D\x86\xAF \xB2\xD1`\x91\xD93\xE5I-\xD4\xF8\xBC\x81e/Bb        \xE5\xDDX\x8C\x90(\xC9%\xD4\xD0\xDD\xD8C\xECDK)Q)\xA6\xAC\xA9.\x95\x9C=        H\x81\xA5-ZhiiR9 \xDEI\xA4\xBC\xCDͪNu\xB45\x9Dq \x99\xD0H\xF5:\x95\xD6@$\xDE\x8F\xAC$%# \xBEa\xB6XY~\xA9O6\xFE\xE0\x9B0\xAB\xE0\xEA\xC1E]\xE4\xEBNJ\xBEr\x83n\xB2\xBEJY!\xACQ\xDEߐ\x953\x8AQ'V\xE0Qd\x882\xD9X\xA7\xFCj\xFA\xD5\xFC\xABEOM\xD4L-\x82Ѡ)\x9C\xAB\x93d\xD9m\x9Dd\x921B,sh\xE51\xA6*\x9Bp\x8A;\xE6d\xC7\x95\x9A\xF0+}@uI\x90\xC8LM\x8Ft\xA6\xEF4V\xB6\x81\xF5F\xCDnR\xD1DY6\x84\xA4ǩ\xB0׀\xB1fbj\x94\x8F\x9B\x845&amp;lb\xFB\x8AU&gt;(\x93Er\x8DL\xE4\xFB\xAD\x9F|\x9A \xAC\xF8\xF3)}^\xA5\xA9        yJK|M\xA5'KX\xAE\xA8\x89eJ\xA2\xE0ŗw\xF4\xF0m&quot;        Mٿ߲\xFFr1\xB1\xEA\xA83P:\xBA\xBC\x9EZ\x9D\xBCB0\xFF\x83\xE9C\x9EU]\x99\x88|C\xB8\x87\x84\xA0\x90&quot;9\x92,\x90\xC2H\xF9Ϸ&lt;\xB2\xE13\xFC\xAFueY\xE9\x85\xE2\x9E\xF3exo\xAC\x8D\xD7\xEE\xBE\xF9\xAEU̮\xAE\xF0p\xCA\xC6}{\xDAnD\x81'\xFDXF\x84ҲШФ\xD0l\xFD\xBD4\xC57W\x9C\xA9)\xEF4J9.\xBD\xE0\xC9ipe\xE8\xF5i\xF6@\xFB\xF6\xB9\xB9(=#t˄P\xE9&lt;\xC9Č\xA9W+d\xD6T\xB23\xAB)I\x8C\xF2\x92\x8E\xDD]⼖L\xA4\xE1\x88)\x9D\xFD\xC2d`י\x98\8\xD9U&amp;_^F@\xE5        5\x99=8\xC7\xCD3o$3\xE7\xEB9\x93
+)\x91K0\xF0\xFCAe\xF4\xB21\x9E\xD6\xDCK\xFE\xE2;\x9B\xCE&amp;\xD3ɸ0\xA6%\xA0ŝl,!\x8C        \xCBڂm&quot;         \xE1`A&quot;\xA8\x8C\x84\xFEt\xEBI\xED\xB5$\xB2\xF1\xDDٓnXz\xCF55\xAF\xAD\x8Eݏ/_\xDC\xFD\xAAew&lt;;\x82\xA7_\xE9=\xBALjVǶ\x88{*vO\xBC\xEE\xD9œ\xBD57l\xAB\xEA, \xB3\xB9&amp;
+\xEC?#\xB7y\xBDl\xEA&gt;\xADl؂\xCE,1)\xFE\xAD8O&lt; \9\xBCs&lt;\x99\x9AAp\xC2m\xF1\xF1\x9D\xD6Ʋ\x96\x8A
+\xCC\xE3\xD1L4'\xA3-\xC9X\x83\x9F\x9E1\xEF\xEA\xCDo\x9A\xA1\x93\xBFf\xD8,\xF6 [F\x86\xD0^jgk\x9F\xAEf\xF63\x8Fr\\xE3\xE5\x9D,N˸վ\xCA\xFE\xB0\xB0\xCE\xF2p\xFAF\xFC4\xD9h\xFBؒ\x86ȧ8e)\xC0\xED\xED\x8Ay4ۡ]\xB1bE\x98\xFA\xD3&amp;\xC1\xA0z%b\xBD
+ET\x8C\xB1/\xD3QuXgb\xBD\xD1y\xE3\xC7$\xB2\xED\x95\x99\xEF\x87u\xFB\xD8܉{%\xCBU왅\xDD
+ee\xE1\xECم\xD4-G\x98\x8D&amp;N\x87\x9DYlZ\xBF\xEF\xF2\xD8맚b\x9F&gt;\xB2\xF7\xDEw\xE7]\xF6j\xE1\xBE\xFB7}=f\xFA7˞\xFA\x8A\x90\xCE?7\xBF\x86o\xFA\xF0\xB9\xEDĻ\xD6\xDF\xF7d\xEC\xE7{_\x8E}W\xBB\x97YeV?&lt;$\xDA
+\xB4;\xA5uR3qo]B:mJ\xC0\x8At\xD0e=\xCE\xE4\xBB\x9E \x95\xDE\xC03\x8E~\x84\x8B7I\xBE\xCC \xE5?\xBD\xDFS\xA2\xF7GJ\xF4\xBDd\xBB\xF2\xA2\xC8u\xCE\xEF\xBD@\xEB*\xF8e\x9D\xA4uTG%\xAF\xC7\xE7!\x92\xD1z`$\xA7\xCB\xE1Js        \x92_p\xB1\xDD+\x8F.=\x88][\xA3\xD1\xF6\xF0Y\x8C+\x99\x84\xBA]n@G\xF2$\xB3\x80+\x83\x8F\xE3?\x9F}{Ŝكn\xB9\xF7\xC0\xD2\xD86\|\xEF3\x9D\xFB|\xF0\xC6A[b\xEF\x89{\x9CW_;\xB8\xFF\xB9XlӸ\x82-];\xF7\xFD\xEE\xD9o~o\x80Q?        \x96\x81U\x90\xD1\x9AS:\x9D,#\x812B\xF4#\xD2\xC9L:2{\x91&lt;B\xB8J5\xA8fb\xF0\x99\xA9\xFE\xFFC]M\x97]\x9B\xA0$\xD1r\x85\xADx\xF6d\xF4\xAFz\xDA9?\x91\xD2O,O\xD2\xEC \x8F \xD1  K\xC4=[b\xA5/\xC4\xCC[\x98\x81\x9B\xA6Ka zt\x97\xE5c\xB8GƭÀ!&lt;\xAA\xD5H\x88\xCF\xF8\xF4[3&amp;2\xD0I%\x8C\xFD[\xF7
+\x97\x8Di\xD3\xFD6\xFD?\x99\xC0 \xFE\xFF\xB5\xEF\x85/.\x9C&quot;u-CX\xBF{li\x99}x$8\x8BS\xFE\x9F,&gt;o\xD4|i\xCE&quot;*\xF4\x86\xF5\x86Cb        1\xEA@bTY\x96X\xEE\x80[X\xF0\xAE,\xF8\x81\xB3$\xDA&lt;\xDC\xD2bni+k F#F5\x99\x8Dm\xD4 p\xD3\xFF`\xB8\xBA\xE4p\xDBH\xB8+\xC9-ՌU\xA9\xAA\xCC3\xCD\xF4\xB2
+D;\xADi؄\xC4W&amp;vKx&quot;\xB8\x98\x8E\x8B=\xA3
+$\x80%\xEB\xA7\xF7\x91\xF3\xFB\xF6\xB5H➖g\xC9\xE8\xF3edG\xCB@\xE8\xE3\xAB\xC0\xC0\xC5@\xBD\xB7\x93\xF1\x8A\xB04\xF0\x8E\xEE\x97\xF3t\xF0\x8E¢ĶC~b\xDB.7\xB1
+\x85ی@b\xEB\xF1%\xD2\xC7\xED\xCDJ\x91*\xAE\xB7\x8A\x82\xA08\xB8\xADGu\x88v\x82|:\x8E\xCE Ѯ\xC2\xC15H9FO\x92:?\xA6\xA8\xF3S\x8A:\xE74%\x81,8u\x9E\xA4\x9FT\xB4Q\xF6\xDEcʷ\xD7|\xA8\xAC\xA8\x9EU\xD2R\x99&quot;        K\xC60\xD6\xDA^\xDD\xC7\1\x8C\xBC\xAF8\x8CqǴ\x80\x90խX\xA7\xEF\x91c\xE8&quot;u5\xF43\#,&gt;\xE4y\x86τ\xCF\xC00\xC3\xC4MT;q5\xAD7\xD3\xEFu\xA2\x81\xE2.\xF4\xCAf?Ohz{\xB0HP\xD9
+\x8C\xF7S\xB1\x9D\xDD\xFB\xBA䖲m\xDF6\xD8\xF1c\xDA\xE5^xf8|\xB9N\xEF\xF5^!\xA8ޠ\xD7D\x81RU48D\xF6@\xCC$@O\x92\xC1\x80DB1\x91\x8D:\xA43Ĉm =4k\xBE\x88׋ub\xA3xB\xA4\xE2U:v̘/c\xD0P\x9D,\xC8
+d\x99f2\xAA\xFF\xAFFᗋFa#\x83SI\xDAB]\xDD\xC4p4\xA9%L\xACJJ\xD8\xBA\xC5\xCB\xC3\xD6ó\\xB2N)ѕ|\xF2|\xF2|b\xE8\xE6\x9F\xDD+\xA1\xDB9\xB3\xC3dc\xF4:\xA3\xB9\xA1!)[\x91N\xB1(Ez\xD62( 3(\xF1\xDC
+\xEE\xBF\xF8\x87e\xC4l\xFA,\xA0[\x9E\xB7\x98\xB2%\xCB_ Bsl\x97 \x9A\xAEb\x89\x91\xD5h/\xD6e9\x8A\xA9\xE6(fd\xDE\x86\xA6\xB38z\xF1S\xC1n\x8C\xABgUFpL*pßl[\xBB\x8F\xFC\xCB-\xEB\xC8q\xD4r\xEE \xA8E.\xF9\xB4\xE5\xC5 \x91o\xBE\x8Fф\xD4\xD0\xF6|z\xBAf\xC2,\x83\x88t \xD37\x90\xE74\xABL\x84\xFF\xD8\x9F\xFB7\xB7%\xFD\x9B\xDB\xFA\xA62a{\xA2tB\xF7&gt;\xF1\xFDu &lt;\xE2!\x84$+\xF4D!'S=\xE8\xB7:\x8B\xD9\xC6\xC1&gt;(
+4D6yҎ\xB5LvvZ\xB4\x9A=\xC2D\xA77Z\x90NO F\x89\xF5ר\xB0&gt;\xA1\x8F\xBB\xD8UF\xB14ir$\xA4Fr\xA1\xFE\x92i@|\x9766*\x875\xB2Lr4\x9A\xE0JM f\xCA\O%\xBE\xF8\x9A\xF2\xB5\xC8\xD7:&amp;m!\xD6&quot;ܸ \xA3
+\xB1\\x8CL |-\xA7#X&amp;O\x82\x8Bؤ\xECEV\xBEM\xC2p\x8D:\xF0\x91l\xE0\xECn\xBC\xC1o\xF22\x85\xEC@\xABQ\x9A9\xE9E\xA4\xF9\xF9m \xE5\xA3g;\x81\xACssY\x92L\xE5Eً&amp;\xC4ѯ-BĪs\xBF\x8E\xCE3-3\xBD\xA44\xF57\xF5\xB7
+\xB94lγ\x94 \xD7\xD2y\xE6\xF9\x96\xE5f\x9D\x91\x88\xBAbsW\xCB`2@\xE8#k\xBA\x81\xE6+,\x86\x87\xC8:a\xAD\xBCV\xB7QxN\x96\xEC\xC4j\xB1\xE4\x8B\xB4\x9D\xE8Lfs\xBE\xA8\x83\xA6\xCE4\xCC: k
+\xE9\xD8k\xA6`-\x85\xF1\xA9\xCA^c'\xF6=d#2\xE3\xCE\xDBEU׀;k\x93ޠj\xA6EFl\xDC\x83\xB4`#\x9C!
+@\xE9\xAD \x88֙
+VȨ\x97T\xB1J\xAC\xC1Ē\x8D;l\xCCex\xD9\xDCye\x89\xE4\x8C\xC7H\xD0\xF6\xB5\x84\x88\xA9\xB4\x84\x97k\xA4\xBE&gt;\x88\xA3\x98\xA2/_\xC8'\xD8t\xCEG\xA4W\x90)\xDE 2\xF8        \xA1\x9F\xF0\xF8h@\x9D        ε\xE3\xDAo\x8E\xFF\xB1\xCDb`G\x93\xA9\xEF\x8Fv\x8B-yA\x9E\xFE\xDEխ\xD8RЍ7wv\x80\xA3\xC9w\xB4&quot;,\xD0Q\xB0\xE6 \xFE\xD8\xE5\xEE\xDA
+\xC1q\xE1\xB6=\x84\xB3\xF1\xB5\xF9.o&lt;\x8B/\xC7Fm\x8D\x95\x8B{\x9A\xB9\xF7\xCA!\x8FΗ\xD1w\x9B\xBB\xD0\xCDLK\x9Fɐ^\xB8\xCDnL\xF9_\x9D\xC7\xE4⹦\xD3Z\x90\xB5t\xA2\xAA\xB2̭\x8EȂ\xA0\xD3SB\xF4\xB2\x8E
+*D\xF6)?$\xB6\xBAz1\xA1I\xE0\x9C5\xE7JՈU\xE3c\x95q\xA6\xB1\xC6(u\x80j\xB8\xB37\xC3\xC3\xFE3xC\xFF\xDD߷›6N.Z\xE5\xBE\xFA\xEC%\xDE\xCER6\xC3RΡ\x94\xA1\xE2'^\xFB\xAASa\x85\xB81e\xF0xP\xAF\xD3ʊa\xF8\x8D\xBBʊuZA\xA2YP,\x83ue!\xC8./4 Mv4\x94\xA8M0\x86\x8Ae\x8B\x964\xB6vW43\xCD h:Y\xF3\x8Fm\xAD\xE6\xB7Q`a!f\xB8\xDB}S {޼\x86-\xA6\x8B\x80Y5\xCD5,~\x91\xD7\xE2GȂ\xFC\xE8m\x88ϊ\x8A\xC3\xE1w\xFB\xFD\x94*\xD4at\xFDt\x93{\x97\xE5
+\x8B\xE0v{\xFCD\xCD\xD0l\x83\xD3\xBB5_\xB9X\xAE\xBFFi\x9B6\xDA=\xD63\xCAw\x8D\x95{Q\xBCA\xB0\x8CzgD\xF0\xC9\xC28\xC69\x85&amp;d\x96\xFBc\xA4\x97\xD9 \xA3\xBE\xCC&amp;\x9C\x93\xEC\xF3 \xCC\xF4\xF8j2p\x865\xC2x(\xB51\xDE\xF4T̕\xBA*S\x96{\xE0%\xF5x\xA5)(X@Y\x88\xC0#\xAFn
+*,@\xB6&quot;\x81\x8FW\xE0\xAE\xEF\xE2\xB2\xE7\xEBc\xBB^=۳\xF1-\x9C\xF1\xE9\xEC_\xF0ݽ\xEF\xC7&gt;%\xEF\xE0\xE9\xF8\xB1}\xB1g\x8E\x8F\xAD\xDF\xF9\xFD\xF7\xD8ﱃ\xB8\xFBw`\xE3\xFD\xB1S\x89\x98\x8B\xB6\x80t\x9B\x91m\xD7\xF2&amp;ڦ9\xC8e\x80\xE3Z\xE5Z5\x9A`a\x90ۓ\xC0\xDC\xF6\x88\x8EG\xF9:%i{\xCFj~6\x9DO\xF5a\xF8\xF3y\xCC\xFF\xAFP\xFC\xDF#        o[7\x96\x8C\xFC\xAB+\xB1+O`Q\x88\xF1y\x80\xF0\x93\x836h\xB7\xC6N$\xF7\xBE\x817\xDEW\xF1S\xEC\xED\xD8
+|\xEB\xDE\xC7+\xAF\xEE\xBC$\xB6R\xDCc\xB1O\xDC5\xFD\xE5XK\xCB ^\xBDh̝N3\x93\x9C
+\xA0\xE3\xDE
+\xB2\xF0-h7Z\xB0\xBDk\xFA\xE8\xCCI\xBA\xE9\x996s\xCF\xC1\xD72_g\x83\xB0s\xC6\xF3\xD60\xA5\xC6T\xC3\xDE\xFFj\x87\xDDW\xDB3;\xB2r\x8All?#\xA7HIn\xAD\xC9-\x9C\xFF玌H\xE2&lt;\\xAF$\xB7\xEC\xBC\xD6a\xCBU\xE9W\xA9Ícҧ\xA7\xCF\xD2Ϸ,\xB0.5\xAC\xB0&gt;h\xDEdm\xB0\x9E\xB6|kU\xC0۩6\xAB\xC3f\xB3ڬ&amp;\xBD\xDDO\x82&gt;\x97A\xB2\xB3\x9Aѣ׻\xDC&gt;o\xC0\xCDL        /\xA1q\xBBQ0\x8B\xF3\xD3\xE3\xB1Z-\xBA@\xC4\xF2\xA8\x94*ޑR\xAC\xE2AHG$\x9E\xE8\xA9T\xB3gf\xD7d \xD9Y\x9E\xFF\x94\xC7\xD2\xFFj\x8FB \xFE%\xDCJ*\x80\xF7\xA4\xA7)Y\xE7\x97\xE4u\x94e8\x8B;\xF1ځD\xE9\x80\xD8Z\xA5\xD4惒\xF8]3\xE84k\xB1U\xE9a\xB3\xF7`fWs\x8Fa\xEB\xE3\xF3\xDB\xC0&gt;\xD9a\xB1h\xE9\xC5
+\xC0&lt;%+\x96V\x83S\xD1&amp;eqyZH\xE8H@\x9CB\\xB4x&gt;:\xB8\x81\xD4\xEE\xEF\x96wl7\xF2\xEA\xF8\xD9}#o\xBA\xA6Cp\xC0\x97x\xC3ҵ\x83|*\x96/\xEE\xFCւG?\xC9g\x9A\xABƝ\x97\xAC\xEEn\x94[\xE6
+\x85\xDD\xF4\x9B\xCCkq\xC6Ŀ\xA5?\x88\x87Q&gt;qj9\xE3\x85\xF1t\xB60\x87\xD2pN\xA18\xBD\xB7\xD0_\xBE:\xA3of\x9F천\xE1B\x85&lt;&amp;\xE3\x9Av+\xD3,!\x96\x80e\xF4\xCEN5©F$\xD5\xC8I5B\x9C\x89\x8B\x8Dp\xAAI5rXT\xC6Z\xED̑l\x92-䄻Z\x8BB}\xC2};\x8DVG\x85F\x86o4N5O\xB3LrL\xF4,0\xDEb\xBEźP\x99\x9B=;\xBCL\xA85\xAE4\xD7Z\xEFR\x96f\xDF\xBEϼֺ\xD6H&quot;\xB5\xC1\x88\xDD\xF1\xE9#\xB98\x82P\xAE\xCFN :G\xD0DP.s\x87\xFE\x95~\xE2\xBB\xCC9a]&quot;\xB3\x89\xCCq\xA0\x83&gt;p        \xDC\xE6Em\xF6\xE2JX\x92\x9BJ^]Щ)\xF1\xF5k\xC2\xD9\xB3Q \xA6g\xFC:Y\xA2\x91p8; \x8EIb\xC0\xDF\xC1\xA71\xB1\xBB\xECP\x93 u\xE00\xEEe\xAC\xE2!\xB8
+\xCF\xC4k\xB0\x84p\x9D\x96ց=\x92=z|\x95&gt;\x82rq.3\xE1 \x99˺ff\xBF\xCB\xF5\xC0\x98p\xC4\xCE\xDC7;eO        \xB9\xBD5Am\xC1t\xC1\xDBy\xFC\xB5\xC9*Ɠ,5\xA94\xF1l\xE5\xC54\x9A\xB1\xE4I\xB6:\xCBFb\xCC2\xC6,S        \xB1*\xA8\xD4l~Z\xB7),Hf\x81\xB2s\xF8t        /\x9DH\xE6ڜ\xB7\x8B\xBA\xB9\x90J\xE0&quot;c^2\x8F}k\xE1\x8C\xCDÇ\x8C\xB9,v\xE3\xD0)7\xDC\xFE\xCBߞ\xFAs\x99\xB8ǺeS݆\xE2\xEE\xF8\xB3\xF2\x9A[\x965?\xF6f\xEC\xD7u\xF8S妻\xAE\xB9bv\x9F\xBE7\x84\xDC\xE3\xA2ݞ\x9A8\xE3\xB5        S\xDE[lYu\xF7\xE2kNkw\xD9\xCEysΞ\xC3\xEBe\xF3\xC17\xEC\xE1s+5\xB3H@p\xC4_&amp;\xD17\x90\xD9;\xD4DF\xFD%IŤ\x9B(\xC2x'N\xE6(NkFntI\xDB\xF0K*l\xF9*e$.\xA4\x8CB,\xA0\xD9u\xBBֵ\x8D`\x80\x9C\x80NNV~\xA3\xF0\xFA\xCCDލ\x95-\xF0\x82дX\xAD\x8D\xF9E\xF3\x96-\xE7e\xBD\xDDޟ\xE5^\xE83\xCD\xB1\x96\xD3r\xDD\xDB:\xEAbb\xE0 UD/ӕѫt\xF3\xACϊ\xA7\xAD\xB2        [y\xB9^\xD2;&quot;$\x85\xCFH+&gt;#&lt;I\xC0\x8A6\xB4t^T\xAA.\xAC\xBA\x86\xB8H\x95k\xA6\xAB\xC6%\xB8\xCCՀ
+)8hP\x93\x85!        shHI\x8A\xA1\xD5h2\xA4H\x98CC\xAB94T:&lt;\xBBh!T\xA8\x80\xDF\xE7\x84H\xA0\xEE\x{D8A8}ڒ(\xA0 @\xA1\xC4,\x99\x8DV\xED\x9Bk\xFE\xE8\xFD\xD8\xF9\x99\xFB\xFAmY\xF8\xC9.qυm_\xC4.&lt;u76' \xBE\xB0\xFD՝\xD7\xEF\xE3U\xA0H~\xAE\x8C\xD5\xC9\xE0\x9E\xC9Z\xBB\x88\x91\x8E{w\xF5:\xB1\xD3\x94/\xD8
+ \x81\xE6\xA5|\xDAׯewq{\xD4N:\x99\xF2MU\xA6\x95\xBA\x95\xFA5\xA6F\xD3\x93Q5
+1J\x8C:\x92\x9C8\xD5cRp\xCB\xD2R&gt;3\xBF6\xE8\xF5\xAANt\xE8t&quot;!\xA2\x83Q\x8F\xFAN5@d2Q\x87'O޴+\xA2\xC35\xBA5:\xD8\xC7X3\xAD]\xF1X\x82\xEF!OB\xD8\x9B*I&gt;D#k\xC4F\xF1\x8C(BD\xB2b\x87\xB1jc&quot;&quot;\xA9f5\x85l\xF1(\x89\xBAV\x9F\xB7ɓ\xA8mMNذ\xF9\x9AD\xD4\xE1\x80\xC8b;\xB2'\xFE\xB5]o\xC7l\x81\x80\xBBĄ% @\xDA\xC1e]y\x82\xF8K\x94\xB1\xA9\xFF .L\xC4\x85\x98\xF4jy\xEBC\xBC\xB0cfV\xBC\xFA\x8D\x96}\x80J?\xAD\x999&gt;\xCD=_\xC6h\xEEEH\x9Eǰ&gt;\xA2ErQĖk\x8Fx\x8AQW[\xB1\xBD\xAB\xA7?\xEAg\xEBo\xEF\xE7)G\xD7\xD8\xCA\xED\xD7x\x94\x87tY\x93\x84\xD4
+\xEC\xF3F\x9DEb\x91\xA9\x8F\xD8\xC74\xC09Ba\xBA\xD69A\x9C`\x9A\xE6\x9C#\xCE1\xDD괊N\xB9\xDAu\xA0j\x84󱴔s\xCDͭ'#~@\xA0J2\xDF\x92\xA87[\xACV\x93#\xCDng\xFFw\xC8\xE3l\x88\x97\xEC\x91Ge[\x93\xDDƶ\xDAh'\x84H$b\xC6\xC8#\xEAt\xA7\xC7\xE1tz\xEC&amp;\xBD&gt;\xE0\xB4C\xD3n3Y\xAD\xAAbs(\x8Aͮ7\xE9&lt;N\xD1jS@\xAF\xA0K\xA2\xE0Q\xACV\xBD^\xA7#\xD0'\x8F\xDDn\xB3!\x9D\xCF\xED\xF6)\xBD\xF4x(R\x91        \xD6NX4$⡻T6%\xE1\xF56\xE0U\xDB\xC0\xA0\xD2\xE7\xD8\xE1d\x8B\xCF\xDB\xE2\xD4wb\x9FoZ1A*\x9Cdx \xF9
+@j\xFAm`\xDB\xE0\xF2\xD2
+h\xD2r\x8B\xB2?\xACJ\xF6\xA7ZmW\xC0l+0\xDB\xC6d\xC2n\xF0\x80\xFE&amp;$  \xDB_\x94\x80d\xC0j\x81#;L\x9A\xA8uOŬJ\x88\xB4\x84@\xA4\xD9a\x93VA&amp;\x9B\xCC\xC3\xF8\xF1حo\xCF\xF6u7`\xF7\xF7\xA5w\xF8\xE6\xF5\xD8M/\xC7\xDE͑ݎ\xD8۠\xAB\xA5&gt;\xF0C\xB6p\xAC\xC5\xFB\xF1\xD7U\xF5‹\xD0T\xAEV'\xF6k~
+\xE1\xF8\x97\xB1)`\xE6~@\xF7\x86KYu9\xF2\xD2޽x\xFDl\xAA\xB2\\x93\x98I7Ŧ\xDCqC\xB3W\xC5O\xD3t\xDA\xB5C\xDDH-Ooַ\xF7\x9A}\xEDs\xCD\xED\xDB\x9B\xBB:\xBB\xF9{\xB4\xEF߾\xD2\\xD9~\xAAyJ\xFB\xAA\xFCZ\xF3\xB2܇]\x8F\xF86\x99\x9D\xEDRSU9\xBC\x8A\x9B\xB5\x9E\xF5nn\xB7\xCB\xFBr\xBB\xFDރ\xED&gt;t~\xD1N\xD7Dž\xCCGژ\xB3\xDB/N\xFFva\xD6r$ke\xBA3=Ѽ\xF6EŴ8\xAF?\xBD2o\x94\xAE&quot;:I7%:ϴ\xDC\xF4\xB6\xE9O\xF3\x9FQ[\xB7&quot; \xA6J\xA7\xEC&quot;wA\xD0\xE1\x9B;#\x97\xE4\xA6w\xB2\x94Z\xEE\xB1&lt;a\x89[\xC4',[-?[\x8B)\xF9\xDE\xC2\xF7\xA97\xCEjNV\xC7k\xE1\xC5\x89\x95^X,邻\x81l\xDE\xE5y\xC0\x91\x9E.#v\x91\x8F\xBB\x97\xBE9\x86\x82t\xC1\x98;N\x87$\xEEy\xC2\xC1lf\xED\x93`\xEADŽ\xB5Ϧ\xCCBg\xB3\xF2V/\x92\xCD0&lt;;4\x8E2O-\xFE\xA0\xEC\x94\xDF\xCAn \xD7j\x96\x8D\xD5U\xAA\x91\xFC\xC8ֈX\xCCb\x86d}\xB2\x8B7:\xF3&gt;*\xCA/n,&amp;\xEB\x8Bq\xB1\x9B\xF5\xAD\xBB\xA3;\xEC\xC9\xEA\x94\xFD\xAAtP&quot;\x99R\xA9D$ \xE0\xBCHE\xF2p\xE4͋W$*I\x8E\xC2y\x89\xB5Թ{\x9B\xA2i\x80Q棼r\xA9Յ\x94\xB4DO\x9Db\x9E\xE3d4U\xB2\x99\xBA\xBE:\xB0R\xA5\x9B\x88\xC3h^\x85\x86\xAA\xC3 Rp\xC0э\xBB\xE5$
+\xD2z\x8E@\N\xA7\xC3\xE5EI\xB6@\xD0\xC5\xDC\$\x94L\xD8=u\xEB\xDE~\xB3\xAF\xEC2\xED\xF3pa\xDF\x8Bd\xD4yn:\xB4r\xC5\xE6!\x8Aޝ\xB57\xDD}\xFD\xFEc
+\xA6O\x99\xFCd$\xE3Αe\xCF/\xB4x\x90\xC3b\xF6e\x87
+7u\xB8\xBC\xA2\xDAS\xBDj\x806\xF3\xCF4/\xBD\xBC;\xFE\xA2]\xBA\xD2n`\xA7+\xAB\xAE|\xF9\xCD \xD1\xCB@\xA2Y\x86\xBD{P\xA3=\x82E\x935[\xEC&quot;\xF6\xC5\xD2̺L\x92\x99\x99\x95^\x98~E\xFA\xCC\xCC5\x99R\x8F\xB4W\x89\xEFj\xD7վJ]\xA5\xB9\xDCZ\xE9\xBA\xCE7Uw\xA3y\xB2\xF5&amp;\xD7M\xBE\xC6\xCC\xCFL\x9F\xBB?\xF7~\x95\xF6\xA3\xFBG\xEF\xD7'2\xE3\x99^U\xECd\xED\xE4\xC8K\xAD\x9Ax\xB5u\x888I\xFC&lt;\xE37z^1)N \x95\xF2\xA7\x83&quot;\x9C\xE9\xA3'\xFB\x90+F\xCDXe\xAC1\xD2\xC4\\xA4\x91˨ѓL\x9EKŁg\xB8 S\xAF3YQ\xE3;\xA2ub\xFC4\xCE\xC1\xB6BD\xD9\x83
+\x850!\x8D\x90\xEAz\\x87\xCF`\x9A\x89K\xF1`,`\x94\x98\xD0bVf\x94\xC1\xC4 sQ\xC1\xA8`;\xCCE\xB3\xA4$\x930~\xA9\x8B={\xD8s1\x9F\xB2\xC7\xDE@\xBFn\x97\xC0
+&amp;\xB3J*-p@\xEAŃz\xC0\x9FWg\x92\xCEo\xAA\x86{&quot;\x85\xB0[A\xA1\xAC\xE9\xC5j\x9D\xCF\xD5\xCF\xDAv\xFD\xD6j-\xF6\xCB+{\xA7\x91\xA2\x91\xF7\xCE{ᙹ\xF3^\xF7\xB4\xFCv\xCF\xE0{ޙ\xFB9\xF6\xC9cx\xED\xAB#Wx\xF7\xD0\xC0C\x89\x9F\x9A\xC0^\xF9\xF0\xE8$*)\xB2,\xB2b\xAB\xB3)\x9E\x99`\xFB\xA8=\xDD({ҩ[\x9C\xB2\x8E\x8D^棗ye\x97\xAC\xB0\xD1\xCB\\xC2|\xF4Fq\xEF\xAF,` /\xFD\xF4&amp;\x9C\x99\xDE;\xAD\xB7{x\xDApwUZ\x95\xFB\xF2\x88\xF0\xB0\xF9i\xE5i\x9FIg\xF6\xA6\x92)\xC2Tq\xAEi\xA6\xB9\xC6\xFC\xACi\xA7~\x97a\xA7\xC9\xE42-3}MK\xD6X\xEB \xEB&quot;\xAB`\xC5`b\xB4\xF9|ީ
+\xBA\xB5\xADG'\xD0UV\xAB]\xECc:t=ۢ\xE3\xF6)\xCB\xE3\xCB6F3\xC1\x8BbV~\xC2\xA4q\xEE\\xC9y\xE2\xE3&lt;\xE9\x9F\xEE\xCC&gt;(\xE3L\xB9T&amp;\xB2\x85g\x92 \xEC&quot;\x99\x9BW\xB9\xB3\xBFh\xB3\xF9\xAE\xFC\x95\xB3\x92/\xEE\xF1R\xDC\xEEM\xB3\xCEF\x9Bf\xA5\xAA\xCBlŝ\x94ʓ\xF0\xC7\xE3 \xE0[v'\x8A\x8B\xF8;&amp;\xAD\xB1\xE3\x9CP\xB2-\xE3\xE7?\x8F\xFD&gt;뻕[\x8Efn\xF5.\xBDb\xF3\xD3K\xA6ލ\x97\xBA_:\x883\xB0\xE1Lo\xDD\xE0\x9Fv\xE3\xEB\x87?\xD9\xC7}L\xF0\xECx\xA2\xFA\x8FԞ6j\x9B\x8B\xCC}\xCCbG\x97\xF4k\xC8\xC30\xC7\xF0\xF4\xC8q\xA2~\xBC\xA3*\xBD1\xF3#\xF1\xE3\xB4/\xBC\xA7\xD2N9~v\xFF\xE0=\xC55ϕ\x99\xF51u\xE0c\xBA+w$\xD9掮\xA4\x8By\xE9k.s\xF4O\xBF\xC60\xCA|\x83\xF9\x94\xF4\xAD\xEB&lt;&gt;kQ\xB0S\xB0+h\xA4Q\xB6!PI\xC1\xE8)\xC4(l\xB3\x86\xE5\x90
++6\xCDVe\xAB\xB1\x81j2\x99H(\xA8\xCD\xCE4\xC7ƝSU\x9B\xC4$\xC8\xC6\xD6\xC6!?\xA3\xB8\xCD\xC2(nK\xE5\xFCm \xA0_\xC1\xB8c\x9Bc\xCF~U&gt;(\x97\xE32e,, r\x80\x8B\xB7\xD3r !\x8A\x9Cm\xDC-\xC9\xDC\xFB\xC8\xDE@ѐ\xB6\xB3\xE2\xD5\x9BZ\xDA*ݬ\xE4$\xF8l\xB9\xA8g,o\xEC\xC2l1\xE3\xC3\xD84S\xDB\xB9\xEE\xF7/\xFAx\xEEԏ\xEE\xACZ\xDBiG\x8B\xFA\xC2\xDCy\xCFl\xBCu\xFE\x86e\x8F\xAFn~\xEA        ,\xD4\xEDE,\xE7ˈ\xFD\xBDw^{\xE3\xF3\xF7\xF63\x9E
++=sφk\xEEL\x94\xEE$#\x85J\xB1R?\xD28Q\x98&amp;\xCE\xD0O4꜉w9Nj\xC3X+#\x9DW\xEB\xDA?\xCF;\xCE\xF9hg{o\xE7\xF4^\xF6\x81\xBE^\xE9C\xEDc\xBC\xC3\xD2\xC7٧\xFBƥϗ\xE6;ϑs\xB9\xB0\xD5\xECvq\xB1XIp\xA5[\xD7(\xEB\xA2(ԟn\x90\xD1\xB2\x99Ilʚ5\x826\xDDЎ\xD2@{ܚ\xBC.\x9E̩\xF2z3\xF3\xFF\x8C\xA4fv\xBD&gt;\xA7}Q\x9D\x9B}\x99l:4)b[\xADs\xB3\x998\xD3U\xA8d\xCBZv\xFB\xA2\xA7\xD46\x9CJ\xE7\x9CJ(X:\xE7\x9Fg\x9Cjk+\xA3[NR .?W\xDD\x84\xB1\xE9\xE0d9wIKuI\xB20Yj\xC4gS*\x96H\xD0:\xE4 \x8F\xCFp\x90W        K\xC2u{\xF2~\xDA\xFD]\xECg\xEC8\xFA1\xB6\xE0 \xA7
+ۗ\x8E_\xDD\xF29j\xEA&gt;j\xE5m\x9B\xF0(\xF7S\xF58\x8C\xBD        \xB7\x8B\x8B\xFD\xA9\xA8[\xF7L\xC6,\xEB=\xF9Y\xB0&quot;i\xC0\xC2\xF10rc\xB3p\xE8\xB1\xD5\xDBɛ\xEFռ3\xBD\x8F\x985o2\xEB|\xE6v\xE6:o\xA3\x97z=\xDA\xF92\x8B2tf\xC1dM7`'\x89:Ҩ !\xC3숧i\xD4\xA6H \xF7a&gt;ɰ\xA3s\xF7&quot;&gt;\xD9M\xCF,Z\x83\xB0Wcj\xE2\xD5̠&amp;\xC8\xC1#\xF9v&lt;\x92\xCFb\x8A\x83\xF2\x921\xFC/\xC9D\x9F#\x99\xE8\xFB\x9E\xBB&gt;\xED\xC7_\x83ؗW`\xA3\xA7&lt;޽x
+\xA2s؀&lt;\xD1\xE8\xB96y\xBBJ6q=\xC4kM\x95,\xCC/\xE1\xEF \xB3W\xC0z/\xD0\x8AM\xD2˒\x92\xA2\xB7\xFB\x91M\xB2\xFAqG\xDB/^\x8C\xA3\xA0'\xB3
+m\xA1.\x85]\x8A\xBA\xB1$        \x985f՜쭆\xEDO&lt;\x91\xE6\xBBs\xDE\xD5c\xFC\xDD \x86\xF59xPxxu\x{1748B2}k\xEC\x8Fʪ\xAE_}ah\xC4\xB1\xA1\xC2\xF7\xA0\xD4\xCFЪ\x8CFёg ;\xAE6\xF6uH\xFA oF\x9E1\xE2\xC8 \xBB:\xAE2\x969F\xC9\xE5\xC6\xC9\xC6\xF3\x86ߜ\x96\x8E\xA1\xBC\x9C\x9E\xA1\x9E9W\xE7\xAC\xC9[\x9F'w
+v\xCD-\xCD+3\x96\xFB\xE6\x8E\x8Eȝ&quot;\x8F\x8Eϭʫ\xC9\xFB&lt;\xE7t\xF0\xA7\xD0\xCF96\xB7Kr6\x90m\xF5\xED\xD2\xD3d\xEEI\xE5s?R\x83\xD1!\xB0\x95,\xD4
+\xC4\xF4t\xAB\xA1oV\xBA\xC9\xE0r\x86
+a\x8F\xE7\x90+n\xCD]\xE5\xAEq\xD3&lt; 9\x99\xC7͚\x9B\x9B5w\xABYss\xB3\xC6J\xDA\xF9\xD1\xEFf\x8D]\xC5Jܓf\xCD\xCD@\xC1U\xBC\xEA}\x8E\x87QVf\xF6\xABփ\xD6\xE3ָ\x95fZK\xAD\x83\xC1\xD1q\x8D\xB1\xFAo\xADY\xBC̚\xE7@\xAFgX\xB9m\xB3z\xA3ys\x82̼E\xB51og\x9B\x94\xBFX\xB8\x96\x93\xE7؛'\x93/C\x9CL\xA42\xAA\xC1)\xB9Y\xE1\x909\xA05$a\xE7\xDC]
+m&lt;\xAFi[&lt;i\xAB\xB1\xA0\xF7\x9C\x85+&lt;&lt;\xAF\xEEș\x9B&gt;\xB8k\xEF-\xCFN&lt;\xB2\xFE\xEF߯{v\xE1m\xB7\xDC2c\xB9oh\xB8`\xC2\xE8nu\xABp\xC9a\xBC\xFA\xA1\x9A S\xFF88\xFFy\xA1\xFD\x8D\xAF\xBE\xF7\xFA\xAF\xB3X|9B\xAB\x8Cr\xE0q\xBB\x91 \xDF\xE9.\xE2o[qx\xA6]\x84\xBE\xC23\xE5\x87z\xB8\xBDEn\x9D\xCDds&quot;F\xD6tQv
+\xA6\xB0^+\xECZ\xD7\xE3F=vq\xE3\xD2x)Z;\xBEv0\xE8Y`a\xE3Ei\xDB\xE9}\xEC:=˹r\x96\xE8\x8C%z\xE6`\xF8K\xAC\x8C\x8D\xEF\x9F\xDB\xC5'\xAE񤕻\xA8kQ\x9D댋\xCCt\xADwչ\xE2.\xEA&quot;\x8EpbRP\x81&gt;\x9Ca\xEF\xAB 9'\xE53)Ʉ\xFCy\xCD͵\x94\xA6\x8A\x80\xDAL
+\x9EO\xE0AD\xB8Z99\xFB
+i3\xE3\xC2\xDF\xC3\xE4\xF3\x83ѳm\xF3\xEB\x89WKp\x90\x85\xDE\;-\x92E[$\x93\x9Bu\xA0\x97\x88M\xD9-F\xA0ԉB\xA1\xC4+_\xB6\x90\x8D\xB3Qrږ\xD7\xDF\xDE8\xEF\xC5\xF5s\xA7
+\xB9\xAB \xE1/\xF7U&gt;\xFDh\xCBX\xB2a\xF9\xAD\xC3\xEF^\xD8\xF22\xE8\xE4
+`T        \xAF\x92\xD1\xED:}W6\x82\xC1\xFA5\xFA\xF5\xFA:}\xA3\xFE\xB8\xFE\x8C^F\xFAL\xFDL}\x8D\xFE\x89\xE4\xA1\xFA\xB8ސ\xA9\x8C%S&quot;\xE8%\xE1v\x8C$Q\xA2I\x8B\x88\xFF+\xBA:\xDAHOP\xA9\x91\x9E\xA1Q\x95\x82=JX\x99\x8C\xA4\xADt\xA3\x9Cn\xD4\xC0\x9EJ\xB9e\xA3)\xCBFS\xD9Jʔ\xC8\xC0hH\xE9\xFEJ\xBDY\xFC?0J\xB5\xFD\x95\xB3\xAA\xA3\xBC\xA8\xB2\xA2\xBE\xBE\x9E\xFEp\xF0`\xB3\x93F\x9A?gU\xD7OƆ\xE2|\xCCv\xF4\xB1֗\x8Aa\xF12Z(.E\xB7NeJ        \xD36\x89\xE00Q\x9Bh\x94\xD9\x8D\x92\x9Cn\xB3\xAE\x8B\xEEv\x83V\x9A\xC3\xC3#\xCE4\x96V\x88\xA1uc#Jf\xF0@\xC1\xC8cJc\x80G&amp;&amp;6(\xA3\x8E\xC7$\\xB7\x8D\xDE4ǖ`\xBF\xB6Z͵b\x83\x92A
+K\xC3T\xA3ҁ,&amp;\x80Qً[\xC7g+,\\xAE\xE8U\x91\x9Db\x8D\xE8\x83\xEB-\xB2%$\x82\xBD\xF8^\xE8ĉ\xF7Y撽մ\xAC&gt;69\xABkf\xB7\xAE\xF5\x85\xBD\xECO\xBF\xFB\xE0\x83?o]g\xE9Ӽ~\xFF\xC0        L_A\x84?X\x95\xA7\xF9\xA5\xB6\x92FI\xA3\xF5\x82\xD5\xFC\xABxN\xF4\xA9r\xE5Ĥ\x9B!\xD5Ч|\x86\x9EOڍn6\xBB\xA4\xA6\xF1\xBA\xAA3;\xEC9Ez\xA4\xC1\xD6.\xF2A~@[G$JE*u\xD3\xF7VH 军\x85\xB9\x86υ\xAF%\xF9Y        \x87\xA4\x88\xD6K\xDD\xF5\xA5\xE6\xC1\xE6
+Z!\x95\xCB\xFA\x85t\x81\xB8N\xFF\x86\xF4!\xFDD:)}'\xFF.\xFD\xA9s\xDA
+\x91\xFD;NV\x9F\xA5\xD7\xC1\x8E^\xA7 '\xAA\xB2JÉJ-,e        S\xFE\xAF\xC1Ac\x91\x816`\xAB\xA6)Ϯd\xE9\xD8^P\xE5с\x92\x98T^\xC8F$ \xB1&quot;¥h0h\x88\xA7֙\xEB&gt;\xE78J\xBAqIFvnx8\x81xh\x82\xBC&amp;\xF3\x97\xC1~\x93\xDA򚳚\xCF^T\x9F\xE3\xB3ыsqO\xDD\xC5,\x8FJS\x85Z\xACbK\xB6\xEBJ\xBENf-\xCD\xF48S\xBFD z\x8F\x99
+@\xEC\x91xcQ3\xE8\xF32\x8A\x{17A30C}Vi\xB5=\x83\}\xB4]\xE5\x9Bm\xC1\xE4{\x89\xBCb\xA3\xF1j\xAD\xDDH\x8A7n\xF2\xE2\x82\xED.\xB69\xB6]\xE1eZ\xB0\xE1{&amp;\xBE\xD9fLU|\xE0d\x99\x97\xFD \x8Au&lt;\xCD\xE1(\xE1+6\xB5\xB9\xDD\xC3~\xFC\xE36qr\xB2\xA5&quot;\x91\xFD`\xD3.\x89B\xAEB\x8CCX
+ś\xBF\x8BMů\x8BmX$\xD7\xC5\xE6\xB5L \x99\xB7Įery'\xAC\xBAq}\xFDz\x97\xC8
+/Y\xEC\xD6=Q\xBAX\xD4%\xB1\xCD\xEF\x9C\xD8&amp;\xFEJ\xA3wc3\xC5'\xC4\xE3&quot; \xAB3\xA2\x90)\xCEkĸH\xC1\x9A\x88\x900\xF0\xECN\xDC\xD0;\xD9&lt;\x81p#\x84\x99\xA4\xAD\xB5\xFF㢵\xCFhc\xED\xBCN\xE01]\x8C\xA5&amp;X\xE2\xF1ԔK\xD2v\xA1A\xF4R\xDBŌK%\xCA1\xDFcF\x99;\xEBy\xE1c‡J\xC0L!\xFC&amp;+\xC49\x9B\xAA\xAB:\x9B\xFA_
+\xFF\xD4\xCDEaz\x92\x9E\xD4\xE9&gt;\xA5\x8A\x8B\xE7T\xE2֩!\xBDǯ\xEA!H\x97\x9C R\xC8X
+\xF9\xBC\x8A\xE1P\xB3\xFFN\xC2`\xC7,\xE156l\xA3&lt;b\xF3\xF0h\x8D\xA7\xE9x\xC4\xE6`\x83\xB4\xF1\xB7\xF7\xD9@m\x84\xC7m܌\xD9x\x82Ζ\xAA(\xB0\xA5*\xB3l
+\xB8R3y\xC2k\xFC\xD8\xCFo\xE7o\xBD\x9D\x9F\xDF\xCEϪ\xDBl\xECv~\xEE%\xFD&lt;\xF0\xF63]\xE2\xCE\xD9ob7\xF6\xA72~v?&quot;\x85\xA10&gt;\x840\xCB\x90L\xC4\xF4O\xE0\xFA\x97\xF1o\xFA\xC7-.r%=\xF0\x85F&gt;\xAB9\xB8+N\xB0’P\xC9\xECp\x9E\xBF\xE3\xAF8\x91\x9Fi9\xD9&amp;e\xD3&amp;\xD5;-&lt;E^=+QSY\x9APbپ8\xE5\xA8M\x8E\xB4\x88\xC3d\xF3c\xBBٙr\xD4\xC9Ѕ\xBḐ\xDD\xFC\xBD,\xEE\xAE9\x8En\xEB\xB87&lt;;uރ\x99\xB7\xBF\xF3\xF8\xE6\xA11=g\xFE\xAD\xBE|\xC2Ջ{\xD0\xC8\x83\xC6^_\xBEg뮖\xF2؍c{&lt;\xF0t˃d\xFB\xFC\xF9C\xBE\xB7\xE5\xB3\xE6\xFA\xE4Ņji\xA2 \xA5\x91\x8DJ\x83\xF2\xB5\xF0m\xDA\xE1\\x9AD\x99\xC9-\x81Y\xA0\xE0\x87\x94C\x9E\x9E\xB8\x87\xAA:\x87\xC5\xE1\xB2\xE6’\xCBl0[L\x96l\xC7Y\x8E\xB9\x8Cm9\xDA2\xB6\xA2-#Wc\xBF\x82Q\x98\xA3-#G[\xB0\xFFg\x82\xA1FC2wN\xE3\xE6\xD0\xC8\x9Dßq\x90\x87)\x9D\x8F!/\xCF\x99\xE9Y\xEF\xA9\xF34z\xA8G \x85N\xD7\xCDs\xF56[\xB2\xF3\\x86\xBF.[\xC0E\x93\x9Aب\xD9\xFF
+\xE0\xB9\xF9\xFF\x89^L\xE0\x96\x9C\xE5 쒣lr\x99O\x86\x960܊\xC2\\x92Mo\xD0d\x83 )\x9Bd\xF1c\xAB\xC1\x9Ed2{͠\x9AYa\xCE\xE5d\xB7
+\x8B\x97?9\xF7\x8B\xAA
+CC}\xFBiW\xCE~\x8EF\xDC\xDAw\xE6\xC0\x82\x85-\xB3ɲ\x9B\xA6\xF7\xBA\xEF\xBD\xFEnF\x9F\xF8i\x9A\4#/\x9E\xB6\xCB\xC9\xFF\xC3@\x9B-\xE01S\xC9٬\xE5\xE5'\xEC\xB2\xC1k\xEA']\xA9%U\xE8n\x90\xA6\xE8tEJ{WO_e\x80}\x80\xAB\xAFg\x8C8F?L\xA9\xB4W\xBA\x86y\xA6\x8B\xD3\xF5\x94\xE9\xF6\xE9\xAE        \x9E\x9B\xB1S/\x89\xE6k\x85\xE2õ\xA6\x85\x89\xE2DÍ&amp;\x83;\x9D\xCA60\x8El?\x8F}\xFC\ \xE4\xD6I&quot;\xF3dN2\x98J\xBD\xF2F\xB2+\xF1\x92f\xB2b\x8B7\xB5\xB4\xECpQ\xBE\x8C\x91\xACȪ,ȝ\x8F\x83\x8D`\xC7\xFB\xB3T\xB4-\xD9\xC8daa/
+\xF1\#J\xE7\xFC\xE5)\x84\xA4\xD6r\xFB\x83\xF8\xFB\xC4H\x83[2s@PgK)$\xFF\xA5R\x82sJu\xB4\xF2\e\x9B\xB2\x95\xD6J/\x96\xEFanK?\\xAE\xBF^\xBC^O\x99ob\x97\xA4\xF1\x97\x89Q\xF2\xD5\xE2\xB6AQ\x9F\xA7W\xFE\xE3v\xDD\xFAê㱦\xDDۗ/۾c\xE9\xF2\xED$
+\xE7\xDC=/\xF6eˁ\xEE\xC0l~\xEF\xDD\xF7&gt;\xF8ǻ\xEF@\x87\x96Ǧ\xD0 pЎ\xF8z\xEDn\x93\xD2A\xB9\\xA0\xD0R\xB5N%\x99j\xAE)\x94Q\xE0,ȸ&quot;c\xA6\xBAF\xD5\xF5p\xF7\xF0_\xE5\xBE\xCA_\xA1\xBB\xD64\xC6=\xC6?U7\xCD4E\x99\xEE\x9E\xE6oT;\xBE\xF0|\xE1;8\xE988\xA1\xC6UW\x88F\x95\xA8\xB3 \x{D854}ѫ\x94\xD1\xCA)\xE31\xC5h\xB3\xAEt\x96:\x97\\xE9#\xB2x\xB3\xB0b\xD0 U\x86U9 U-9M\xFE\x8Df\xE43\xE7\x9EԴy
+е\xD6\xE2&amp;\xD2\xE8&amp;k!&gt;\x85&gt;\xA7\x92B{\xA1\xFF9c\x9EJ\x94+m\xE5\xCA%\x89\xF2sM\x94\xF3\x89,0\x91&lt;Q\x9Eٯ\x9B_\x92)\xFF?\xED}        |TE\xBA\xEFWuN\x9F&gt;\xE7\xF4rNwg\xEBN'\xDDI:\x9D\x90F\x82Y$ \xB2d4\xEC\x92YT5,:&quot;4OPpAA`E/!a        \xA0
+\x8A\x830
+x\xC7edF\x{13A323}\xCE\x9D\xAB\x98\xF4\xFD\xAA\xCE\xE9\xF3й\xF7\xFD~\xEF\xBD_\xFF\xFAj?u\xAA\xBE\xFA\xEA\xAB:UՉ\x85\xF2\xCE\xCB\xE4|\x9D\xDCU\xDEq\x95ܓ\xAA)\xC9I\xEC6\x9Fp\x9EK\xE8\xD0zK6\xF4y\xE8ƥG\xA7\xCD\xFE\xF0\x8E\xBA\xFB{\xB8\x9E\x99s\xDB捳\xB6\xB6M\xB5\xBCt\xCF\xF0\xE1\xCB\xE3\xABַ\x9D\xB9\xF7}Z\xCF\xBF\xF2\xC6\xF17\xBD\xC3z\xE1ඩ\xC2IlC\xFC\xA4W\xF4&gt;\x8DЂ\xB4\xBE\xB4\x9A\xDEn\x97*\x92+\xBC\xD5\xDE2\xD7fZJ&lt;%\xE9\x99U\x9E\xAA\x{111791}\xE9\x93&lt;\x93\xD2'd\xC62\x8FI\xC7ݟH\x9F\xD9?Oӻ\xD1l{$\xB9\x9C\x96ڇ\xD0+\xECut*\xFD\xA3\xFD\xBD\xB4\x8FR&gt;\xF3~\x92\xFE#Ո\xE8H\xF2\xF9mV\xA7\x94\xE4\xB1\xE1R\x9D\xC5\xC0\xD6W5\xA2kQm\x82\xD3\xC4L\xBE\x91\xC9[O\xE3 Z\xFBB\x84\xC6&quot;4\xBE\xA1\xF1\x81\x94/%\xA4\xB0\xBA\xE6g\xB8\xF9
+\x8B^\xC1\xA5\xC7,\xD7\xF9\xEB\xAB!ޓ\xF9\x84\x95\xAFAXS \xC5\xD7X\xAF\xCB\xC8&lt;w\xF5\xE1k\xAB\xAD\xA7\xFB\x9D\xDF0p q\x99\xEB\xE0\xBD\xCC\xE5\x86sVU\xBB&lt;6\xFA\xA5\xB6\xAFf\xBE=\xFF\xD5[ֵf=[\xC33[\xE6\xCC^\xDF6\x95\xCA}\xAF&quot;=\x88um\xDB]\xCF\xDC\xF7\xC3\xE5\xC2 \x87\xEF?x\xEC\xC4A6\xC2-Ʀ9\x80\xAD\xE2\x82ף} =DI\x8EX&quot;^.\x8E\xAFg\x89\x92\xE2\x92Yqx\\x8A\x99\xD8x\x97U\xC9@&amp;rv\xD0C&lt;4\xDB\xF5\xCFg\xF6\xED\xBA\xDEF]\x89 \xA2s4
+cr/uP\xF2\xAFrz\xE5\xBC\xC9\xFD)}\xDC\xE9[\xD9\xC9&amp;V5\xE5\x89 F@}\x89\x93o\xCAw+;\x99f\xB0\xAF\xB1\xA2fŁb\xF1\xBA\xFES+\xAE\xB9\xB6\xFF\x80}\xAFM\xCA\xC3O\xDF2\xB8\xCFƼAnm=\xC6j\xA1&quot;\xFE\xA9\xB0k\xA1\xA7\x90\xBDC\xCCN\xCA\xEE\xA3 U\xAABc\xB2\xA7d\xCFS\xEES\x85\x9E\xF1l\xEE\xFE;\xC1\xA1\xA4\xFA\xD2R{Vw?\x91jI\xA7\xA3)Ջ\x88\x9AV/\xD7+\xF5j\xBD\xAD\xDE^\xEF\x98&amp;OS\xA6\xA9\xD3l\xD3\xEC\xD3\xDB\xC2\xDB\xF24\xB6
+*ԭW\xA8N\xAD\xB5MOΟ\x953+ =\xAC&gt;i(\xFF\xB1\xEE\x8F\xF6ܠ&gt;k_\x9F\xB7!\xBF9\xFCj8%?\xA1\x89f',9        K(a\xC97f\x87ff\xC9IXB        Kۯ\xEC\xCE,\xAF\x93\xF3r\xED\xAA\xE8 \x86\x93E[\x8F [\xBA\xCB\xF6v\xE7_\xBC\xDE\xEFx\xEF\xEF\xAF\xA4yޙ\xDE\xBDb\xC0{\xBF\x97z_¶IF\xBE\xE0k\xDD\xD1$]g\x9B\xF2ur'zD'\xECX\xE8\xBE椔c
+\xDC\xE9*!\xA4G}ƌ \x9A\xE1O\xB6\x8A\xC6'h\xBE0\xF1Ib\xF1ᓨ\x875\xB0\xE8\xEFa \xF8\x88/\xE4\x8Dz\xD2J\x8AX\xF2B\xBE^\x9Bf\x98\xAC\xB7x\xF9\x9Dk\xDE K\xE9
+\xB2T^&gt;q\xF4\xF2\xF5no \xBD\xA6\xC9*\xC0\xA4\xDB\xFD\xE5G H{
+KQ\x90\xD8        Z\x90\xE8\xA7h\xF9\x9C\xDFuP\xE0\xE3\x8F\xCA\xCA+(\x99P\xB4\xAF\x88VŊh[\xB7A\x9A\xA1\xEFr\x96 \xB5\x8C\xA2\x9DYX\x82\xFCFV\x88`H\xE3X\xE3\xC5ӂ\xA6\x84\xF8!\xE4r\x83\x9F\xDB0\x97\xB3?LLk\xBD\x97\x9A\x8B\xF3\xD8\xC9MQ\xCC.\xE0ґ\xDCz\x95\xF9\xE9;\xB9\xA5\xC3\xD9\xE0\x88\xF1%\x8C_\xD5u \xFF\xF4\xCD\xE62l#\xC6\xF7o\xF3\xF37jOѼK2s,I\xDD\xC3.ݭ{tA\xCAv\xD3Aɷ\xA6\xCB%hd&amp;\xA13˙\x93\xD99\xBB\xDCMM'\xF9y\x8A*E\xC4t\xE8L\xCFb\xE9\xF53 \xBEg\xBD \xB2p\xE1B\xE8 \x8E\xD8\xFAϸ\xF6K^\xF2\xC2y=hiI\xAF\xB2\xF36\xF6\xE1\xDB\xCD\xCCW@+\x9A\xB4ew̻\xAD4\xF7\xE1\xABk*{&lt;8\xF2Η\xEA\\x8D\xF6\x86\xA9󦥤\xA6/\xDA\xFBؘ\xA9\xEE&lt;\xF2Gr\x99\xFA\xADS\xAA.\xCBI\xCB-\xB2\xF0\xAAA\xB7\xE7&quot;\x83\xEF\xB8!mD\xFD\x88\xB2\x86G
+WΫ\xAF[s\xF5󬟆\xE2\xA7\x96Ր\xCA\xCE(\xAA\xEC\xE0]\xB8\x84_\xC2Y\x89\x96\x98\x97\xB1;T&quot;@\x8A\xAED4\x87n\xC1\xA6\xE9ِM\xEE\;\x89[\xE5\x81\xCA\xC0        ֛\xAD1\xEBVPsZkm\xB4\xEE\xB3\xB5J|c\xBC\xB9C\xFE4\xE7&quot;+\xDB\xFA\xC7?\xD7\xF31\xD3b\xEE\x99\xFF\x81s\xD3\xC9\xD8\xD8ϖvL\xD5\xCC\xD0*\xAD\xBB\xE94H#\xBD\xB6^\xDFi\x92ʯll\x{D9DF}b\xFEK\xB6/\x90IxWq1\xBF\xF1\xF5\xAB\xDCT\xE3\xD3\xFB2\xE0*\xE3w\xF1\xBDrT\xF7\xFD\xA2\xDF\xC4\xDD-j޾\xDD\xC9\xCF|z\x8D\xDE\xCA::i9\xB1\xCEh[\xB1\xBC\xF5\xE1+\xBB\xFB\xF8\xFCe\xD9I\xF6\xBB \xA4f\xF8\xD87'\x9C\xB9Ӡ'\x85m\xCB\xFE:Z\xECN*\x89xHH\xF6\xA4؉'ņ\xC2܅\xD5\xC5)\xB9i\xA9l:\xE1\xE3s\x95T&gt;KIu\xF3e\xF9\xF6\xCD&amp;\xA9\|\xA7\xB6\xCFOR\x93\xCCzs58\x95O8S\xD9\xFC\xC4\xC1\xEA#\x9EJ\xF6\xA5\x92ԫ||=\x80MM|_\xFB\xE8;\xB5\xBEF_\xDC'\xFA\xEC\xB9J\xFB\xC0\xC1n! *G\x95\x93\x8A\xA8$\xA5}\xE00W\xA3U\xBE\xCD\xF2\xE7\xE3\x85\xC2\xE7&amp;
+_ V\xAE\xF2\x9E\xB3$\xC0}ϟ\x84\xE0\xC2w\xF4+7\xAF\x85\xC1N\xE4u\xA7Cs\xB0}f\xECH4NDD{:8d\x97\xB1XP\xB0\xC7_Lk~\xD5\xCC \xF3e\xC0T\xDE!\xF8\x92\xA0P1\xEF\xF8\xB5\xEBkt\xDB6\x9B\xEB\x97Ç\xDF\xD7wۓ\xDB\xDFTS\xDA@jm^q\xE9\xA0\xE1#\xEF_J\xCBϼ\x8B\xAD\xE3c\xAB\xF8\xD8:*\xF9\xDC\xDC/\x90j\x91A\x95%&quot;\xB5ob \xF1\xF36\x85\x91\x8E{\xF9VƝ\xA5ٮr\x95\xC9w\x87\xAB\\xC1if\x89\xCC \x8A\x92\xAE)1\xA9ʖ2\x94̬\xC8G\x83\xEB\x9DJvn        \xA4\xA0\x81\xAEw\xA3\xF3\xF3{\x94@
+\xCD\xDE
+\xF2\x95\xB0Z\xA5\xEA`\xA4\x8E!ch\xAD&lt;V\xB9\x9E\O\xA7\xCAS\x95\xDB`.\x99Ko\x97oS\xE6\xAAK\xC8z\xB7\xB0̺T\xBEG\xF95\xACRT\x9F\x87u\xEAK\xB0ӺU}^U߅\xE3\xEA_\xE1#\xF5 \x9CV\xBB\xE3\xEB\xA8i\x90\xA2\xE6\xBB8\xA4\xA2\xAAb\x89\xBASJ,\xC8*%\x89\xDB\xD9N\x89)\x8C\xA54\xBE\xA5\xB8 eu\xC1\xFC\xB8:\xCBj\x85\xFBR\x8B\xC5nc\x82&gt;\x88`\xDD GG\xA0\xB0}\xABg\x99j\x95\xE5\EMRJs\x8D=\x80U\xD5\xD8\xD0'YUEb)\xB4{\xB6\x8DF\x8D{|I\xFA\xF6\xA8%f\xA1\xB4E\x95 \x8D\x92l\xDB\xE7o1n\xFA\xD2\xE7m\xD7:Η\xF6\xE5\xA9q\xE6\xF5)\xED늮\xF2s\x85\xB1\xD1\xE6~\xA4\x9B\xFB\xF9\x8EK\xBE\xC1\xCESLȿ\xB5\xCD\xF8\xED\xA9\xDC@Z䯻\xDA~)\x86[\xDD0s\xD4\xBA\x94\xAD\xA5\x90,;\x91;\xDCbF\xE2d\xA3\x9Bi\xA6\\xFA\x9B\xC0$s\x8Eq\x8C_\xE0'\xF2\xFD\xCA\xCC\xE6
+ڍ\x80}ۜ\xC6GZ\x99\xCD\xE5n\xD5%\xB0\xA36D$
+k\xC3a\xE7\xD7b\xD8]\x84\x8A\xAA\xE8R\xCD\xD5)Cй؅&gt;\x87\xF5\x87\xF5c\xFC\x90\xA3\xB9+\x93\xBF]\xE2lS:\xF6\xC0$R vS\xE9P\xD75\xAE\xFB\\x82+h\'g^\x8C%&amp;,.&amp;v\x94@V\x89\xEE\xCF0֭\xA3;\xA1Q\xB2+)]\xF1\xBA-&quot;\x88\x92M\xB19e\xB7!\xC9\xEA\x97\xD3m8\x83͵\xC8g        \x94Z\xFB\xC8}\x9DU\xC2 )j\xBDR\xAE\xB6]\xAE
+r
+u_\xA3\x8DpO\xB7N\x96op\xDF.\xFD\xCA:K\xDE%\xED\xD6v\xB8\xBF\x95\xCE(\xF96W&gt;\xE4;\xF2\x9C\xF9Z\x9E\xBB0\xA97\x94\xB9\xE7\xCAw˫\x84\xC7\xEC\xC9&amp;\xBA\xC9\xF6\x8C};\xEC\x90v;_OHT&gt;?\xD5\xFE\xC3}Z\xFAA\xF1\xDB\xF8\x89;7u\xC9ئLJtn\xBAM\xB6MW\x9D\x9A\xE8\x97l\x95s\xADZ\xAE\x93M\xE3\x9CV\xC1A칎\x96\xF8\x89h\x93R\xE4\xBE&gt;Ws\x90$\x8F\xA4\xDA\a5\xE2%\x8EP\xEB]3\\xF3\\xF7\xB8T\x97*&quot;/\xB2\xE60\xA6\xF3\xD8\xC2\xC8\xE9Bc۽~\x8A\xFD\xA3?\xFEO\x8F&amp;        |c\xACբ\xA8\xAA\x8CsUw\xB9P\xBEW7[\xC0\x8D:ː\xE8\xF5\xAA\xE6 \xEEwY\xE5\xA0\xD5\xE5vG,\xD6$\x8B\xC5\xEA\xC4v\xCEu8\x93\xA7\x8Cӝ\x88*'ar\xB6[\xD6\xEC)@\x89\xD5-ʚ\xCB\xEEt\xF0\xE2\xB9Q\x8E\xB3;X\xD7qk\xECD\x95\x9A\xF4\x9D\xEE \xEC\xF8}\xCC!8Z\xC8ƨ\xACQ\xC9Lu\x81J\xD5::\xAAԸ\xC8L\xD7ۤ&gt;:j\xD3-d_'\xB0sm\xDCN\xBE\xF3|w=W\x89\xBCW\x9E7.
+\xF5\xFC\xCF:ٸ\xB4 \xEF\x945{\x9D\x8B\x9B?a\xA3\xACթ\xF7c`v\x86\xEA\xC6\xC0ȱ\xDBA{\x90\xBE?\x89:\xEDIpƏn\x83\x9EZЍ&lt;\xDA~\xCBSmuc\xC9H~\x96\xF8\xE8V+\xBB\xFC        =\xB2FV7\xF3\x8DJr\xFC\xE4Vk\xD0\xF0u\x9B\xE7&gt;\xD9ќ\xA3;PļQZm\xB2\xF6d96Ao\xBA\xDBxR{\xE6\xED\xE9Ry:W\xFCd\xB3\x83\xD0\xDB܅k\xF49\xB6\xC3]\xDD쳂\x87-\xF5מ]\xDD\xE6\xE7\x84\xF8\x99P&amp;P\xB8&lt;\xF1\xA4\xF2\xED\xBAB\x9E@\xAA\xDB\xF6\xEC~\xB6B,~vך\xD2\xCBvli۶\xE7\xD9ny\xE2\x94\xEB\xFDe\xEB\xAA7\xD3\xEBϼK\xE7m\xFF\xF1J
+ǡoP\xD2\xE8\xE4}sJֈM\xA9&quot;QɁ\xA9q\x8D\+\x8Cp\xA6\xE4w\xA9\xA4\xEF\xD4\xDCD\xCB\xF6\x87͇y\xCB봕\xE2Jy\xB5\xF3qm\x9Fe\x9F\xB4\xCF\xFA\x86\xA6hєr\x9F\xE0Q\x92&gt;\xBD\x94\xF4\xB1-$\xF7\xD9\xE4B\xF7\xD5b\xAD\xB5\xD66\xD6\xF9Y\xA5\xAE\xB2\xED\xA4-\xF6\xD7l\x87\x9C\xBF\xD7\xDF\x8E+p\xBC\xA7\xAC\xBA\x9D\xCBf\xB7KKs\xA0b\xC1\xCEvE\x9D̦I@\xA0\xAAT\xE2&gt;K\xA026\x89_/I\x82UV&quot;I\x8AEP\xE5\xD3p&lt;wMs\xE86T*\xA8\xC3&amp;\xD8uUҨ\xA6\xEA\xE0\x80B\xF5\P\x92\x81:8\x88#\xD7.$\xD9킪(\x82@%\x9C        \xD8\xED\xA0ָ\x89{\x88c\xBE=[ծ\x93\x94\xF9QG\x86\x9DQi\x98\xE3\xD76]u\x85\xF94\xBB\xEBr\x88k\xDE+潱|\xB0\xC0\xB1B\xFFX?\xFD%?\xC3~\x96\x9F\xF9%\xD5&amp;\xB7\x8E3/R,״%2\xE7R\xC3D\xC2X\xB7\x9F\xDC\xCFd\x8Amδ\x8Cr?\x9AQn\xCFN-\xCCݔU\xAE\xF3\xC9\xE5$;\xAB\\x89\xFA\xDB\xFA\xD7\xF2ES\xFE\x8D\x9C\xE2T6\x{114C6F}CB\xD1Ȣ\xB6\xD5^\xDF\xC3\xDF=\xB7\xF9\x9D\xB6ɽ\xBCۧ\xED3\x9AOھ\xD4s@\xF1\x996{\xEB\x9Bdhm\xDB8|\xAF\xAC\xB6\xE1\xC2ߐG|\xE4&amp;\x8Fd\xA8I\x9A`\xFC^\xCD-\xD9$OԭmQ{\xD0\xE4oa\xC4\xF7\x81/\xED\xB0ϫ3\xC2'\xE9|\xD8Ho\xD6\xFCDc/q\x93\xBF&lt;?i\x8C\xB6E\xA2\x8E(6H0\xBFg\x89\xCE \xAB]q\xA78\xD2\xDCy\xB6&lt;{\x9E\xA3\x97\xBD\x97\xA3Թ\xDAe\xCBw\xE7{\xA7Ժk=\xB5\xC9S\xDDS=S\x93o\x97\xE68nw\xFD*\xE9Wɋ\x{1F85BB}\x97{\x96%\xADR7\xD9^\xD4\xF7\xB8v'}\xAE\xFEGҷ\x8EV\xFD\xFB\xA4\xB8?3\xC1Q)\x9B?]Ԫ\xB4E\x9A\xA0yۋo,&quot;\xB8\xDB\x94i\x9A]GY\x89\x9A\x837\xC9\xE3\xC9u\xABI\xE8\xD0\xEC( sm*N\x83U\xDB2n\x93X\xE0\xD7\xFD\xB4п\xD7O\xFD-\xB4b\xBB\x86uMj\xA1\xA3\xA2\xB6
+w\xD4Mǻ\x{1FAA7B}\x85 ء\x91l\x98\xAE\xB2 ^[Ѡ\xBD\xA7\xBD\xC6. \xB3\xC7\xEDԎ1\x9A 5\xACZ\xB1-=8#V^+\xBB\xBF \x99\x88\x9DFO\xD3O\x9F\xF2\xB2ۦ\xBF\xF4\xA5\xE9_r\xA4\xB1\x89C\x82\xA3䎟4K-\xE1\xFC\x83Rω\xD2&amp;
+\xA5\xCD\xB0\xC7?[\xFCS\xD2Q\xD6$\xC5\xFF\xB4\xA3\xAC\\xCD.+wb/۞\\xEE2\x8F\xD62}\x99]\x81\xEC\xE3\xC93v\xB9\x94\xF1\xC3\xA6
+\xC3.2\xCE\xC9^\x90Է{\xBF\xC1\xA9\xAE\xB0\xC5\xD6v\xD3\xEF&gt;\x88d&quot;mk\x9BQ\xEA9oLI\xDB
+\xCF\xEA\xF9\xA1\xF4\xE9Z\x86\x98ߺz\xF6\xC2ys\xE8\xF43\xAFmP;\x92i9\xF9({\x8E!_9ɖ\xA8\xC3\xDDB_\x97\xA9\x9B\xB9Sٷ\xED7\xA3
+ZH\xFFL\xFE\xA5\xFBwѡh\xE9F\xF3\x95B\xBD\x9C\x94\xABC\xC8\xF4
+y\x88R\xA3דQt\x94\\xA7 \xD3g\x90It\x92&lt;M\xB9\x83̒\xEFP\xEE%\x8B\xE5e\xCA\xF7\xE44M\xF7\xCAa\xD2M\x8E(\xE5\xF2o\xE4w\x88\x95\xF5\x96\x9Dzr        E񪰋gsp&quot;M\xFB(*\x95U5\x97P\xFE(a׹\xD1\xEB,|E\xF5:wb\xF3\xD1&lt;\xE2Ti Ѷ\xE1`h\x91\xF6\xD0k\xC0ʖ\xAD\xF8b}\xB6c\xAD\x93\x803\xEA\x9C\xE0\x8C9\xBFvZ\xF8^\xFF r\xCEu&gt;![\x80\xD4\xC0L\x88\x83\xFCz\xF0j\xFA\xAC,&amp;6\xD8*\xA0\xF9\x{DE95}YNE\xF8\x8E2\xBD\x95-\xF4\xD3?\xC6)\xE2\xC7|s\xA5\xA9j\xEA\xCEW̋&amp;n\xE6\xCD ۻ\x91\xB0\xCCe\x8CړY]\xA2\xEBw;Y-\xB2\xAAc\x9F|-\xC7\xDB^F\xF1\xA1\xB1J0ɧ;\xD3\xCB9%\xFD2\xA6\x9C5\xA5\x96\xF3i\x97\x9ARN\x93\xBE\x94\xB3\x82\xA5\xB8\x94H9\xEC\xB1\xF6*\xCEJΧƶ\xD5\x93[_\x9Ey\xFB4\xF2\xC5C\x82,=4\xB7\xF5\xDA;\x94'\xD8-oB\xFCo\x96O-o\xE3X\x80&gt;\xA48|\xC4\xFDH\xCA\xBE'2\x9F6\xD969v\xF5&lt;\xE6&gt;\x96\xF2\x9E\xEF\xBD\xCC\xE3\xC5'z9o\x96\x83-tss֒P!\xA3={\x90{\xE8\x88\xE0`:1\xAAׄ\x88\x9AZ\xFA*$\x86\x91\x8BZ\xD0\xD3\x91\xFB#\xF1\x88y\xD2\xD0\xDD$\xDBtF@(d\xA4\xC7ۘ\xDF\xC4欥b\xE9Kt&quot;\xE4\xD1\xC9`?\xFA\x88\xBE~\xD8S'n\xB7{\xFB\xB2\xDF@M\x84_v\xE5\x97\xEC\xF7N\xB7{4/\x87\xE4\xB7E뭧\xF8LqTqYn        t \xBBs\x9Da\x9A\x9BN        \xAB\xB9Rؗ[\P\x80\xB2\4\ZR\x88?\x8B\xA4*h\xF3Z\xD1V\x92_ \xBD½\xE0q\xE8Y$C@#ٖ\x96閴,8羀\xF6 .$\xE3H\x87\xB3\xF3\xECֲ\xD4l\x91]W&amp;\x85ܥ%4\xE4Im?\xF4\xD0yc4\xFD\xEE\xB7dڡ\x83m\xAB_y\xA5m\xF5ko\x90i\xBF]\xD3\xF6\xF6sI\xF7\xF5\xEBI\xF7g\x9Em{k\xD4\x99\xFB\xEFm|򮹋\x83s3g\xD74&lt;\xBA\xE2溥\x96\xB7\xF7\xB7=\xFA\xEA\xFE\xB6U\x92\xF7\xBFJ\xA6\xEF\xBFs}\xDB6\xACo;\xBEq#\x89\xAC\xDF@
+׷\xEA\xA1;=uh\xD1\xFEI n\xCAZ\xB3a\xF5\xEA_߈\xFD:\xFE#9$\xCEĞ!@fT#\xA5\xEC\xBC?a*\xD5|\xF6\xD7$ؙQl \x87|\xD0\xFCeyL\x9F|\xBA\xFB\xF3\xF1Z\xBFo\xE5t\x99\xFF&quot;ٺ\x8F\xF2
+\xDDu|\xDBw?li\xBDAَN\xE3\x93\xC4/\xD2[\xFB\xB7]\x97\xEB\xF0Ö\xB6\xB0~\xF6\xEC\xCD\xD2=\x92\xE9\xC5~O\xCED#}\xAE 1Ěs-c`,Yu\xF49\x98\xC7 d@T|nŸϡ\xBB\xE9n\x96\xE3\x8FF|\x88\xE8\x87\x83\xF0\x99~W&quot;\xAEC\x8Cdn\x8C\xBB\x8B\xA5\xC5&lt;nf\xF9p\xDAurfZ\xC6\xC4[\xF1y+-\xE1z\xC4Sh_'~\x9B\xA4r\xB8        \xDD0\xDD^\xA0\x8C\xC5\xC14+\xA5\xE7`\xFA?\x89\xE1\x93\xD0\xEF)\xA4c\xD1\xFD4\xDA\xEB1]OӮXW\x80\x97Q\x84\x84\xFE\xDD0\x9F{\xCD\xF7\xCD^\x86^bC\xFC\xCF\xF8.\xB5\x98\xE7P\xC4\xDD\xF8\x8CaH\xAF@Tc\xD2\x88%\xE4 ,%\xE3\xEB0)܅\xCF_\xC2\xFCU&amp;\x8C\xF9,\xC6\xF0
+LB\xF7]h\xF7a9$\xA4&quot; \x91O\x9F\x94\xF0&quot;\xD2B|\xFF\xAB\x8D\xF7F\x84\xD9;\xB7\xBF\x96\xDF,\xD3\xF90\xCAX\xDD\xF8̗9\xB4&lt;\xFE1R\xA5C\xD9:\xE3\xAEN&quot;C \xE9tD:b8= 7\x89\xBF\x82\xF5\xB5\xDA\xF21 \xC8y\xAC\x9E\xFE\x84\xB8L\x9C W\xA1\x9B`9GZ\xB6\xC1\xE3̍\xB8\x92\xA3!\xDE*&gt;        k\x85\xD3\xD0\xC3~%\xAD\xC4\xF7\x98\x8C\xF5})\xE2;(\xA4\x85K\xA4\X\x80\xFCU\x85\xF9/D&lt;\x85y~\xCA\xF9a2\x8C\xC2\xE7\xF7@Z,~\xCCy\xE8n\xC4r|\xD6W\x89zbu\x83\xEE\x85خ#\xF0Y?\xB2\x81\xE9G&quot;a\xBB\xC43Xy\xF0\xF9\x85\xAC\xCEY\xBB\x931m\xE5\xF7Ʃg@\xFFT|wƓ,
+K\x8Fy\xE5\x9A|\xB8\xEE,\x85ug\xD6\xEBI\xA4&quot;&quot;\x99\x95!\xCEg&amp;0\xEC\xE6\xE3EH\x88 D\xC4Lju\x88\xE9\x88&gt;\x88\x9D\x88||6\xE0sί\xC83\x8C79 oXbb\xD98\xCF\xEF\xF0oO\xA3\xCF&lt;m\xE6Ş\x93%=\xD3Md\xB1&lt;Ya&lt;\x8Beٚț\xF5)\xC63        \xCA\xF9{:\xE3{\xF2
+{O\xC6S\xED\xFB\x9E\xF8 be\xE0}y+AY\xBF\xC32\xB3\xFE\xB0\x92\x8E\x86\xA5HG&gt;\xBE\x8B\xF1,+_\x82\xB2za\xBC\xC6\xEB\xFB\x84I\xFBuxמ\xBC\x8F E\xF1\x96c\xF2\xFA]        \x9A\xA8\x8Bvz#l\xC0&lt;'HQ\xA6\xAC\x85\xC1\xE2,,&lt;ů\xA1J\xE8=,=\xD1\xDF\xE36\xD2/`\x84\xBC\x8A\xB1-kн\xBA]\xC5`=N\xA6Y\xF6\xE1{n\xC6\xFA&lt;\xBF\xC6:\xBDE&lt;N\xB3\xC5\xE3\xC4b\xD9\xFF\xCC\xE4u\xCBf:\x9F\xDBϣ\x9DA\xF6a\x8C2t \xFB\xB9\xFE\xFF
+\xE8        \xCBf\x94\x99\x9B\xE3\x9F[\x8E\xC7\xE3\xF8&gt;\xB1&gt;a\xFD\x82\xF4D\xFD\x9B1D\x81!\xAB\xE4\xE9\xA4\xC5:t        \xE04b\xA6\x85&gt;\x96(\x94\x89\xFB\xB0}\x92Q\xCEc_@\xFFі?\xC3^a,\x8F\xC7\xFFHb\xA3\xC7\xE1nk2\GW\xA2L\xC3g\xD1p\xCB\xE9\xCD\xF8\xE8\x9E\xEB\xCCK        \x9A\xE0\xD7Δ\xC9|\x93\xA7H%\xECo\x9A8e\xE2;ķ\xC8G\xEB\x89\xF1\x8C2&amp;\x9F\xF9\xF8\x802q\xB7\xC1\xAF\xF1\xDA\xF9\xF3u\xF8
+\xD2{\xFCىO\xA7w\xE2O{g\xBE\xECL\xF9؂\xF2=\xD1O\xB1\xCB\xEF\xCF\xE4#\x93qLF29\xC7\xE4L&quot;~g\xDA!\xFD=\xF49\xE4c&amp;\x87C\x9Dٯ\xB3M \xC52\xFE\xC5\xEC\xFB(\x87\xB1\xBD\xAF\x8Eǥ+\xE2\xA5m\xF1M\x82;\xBEI*B\xFB\xBF#,\xF1\x8D\xF8޷\xB5\x8F\xA9c\xE3m\xE6x\xDA-1\x96\xFE`K\x8C\xA3\x96b\xB8ɔg\xB8\xBC\xF9;&lt;\xC2\xC7\xD11\xBC|\x8A\xB4X\xCE`\xBB\xA3 \xE4\xE5]k\xF6A\xACO,\xF7tq\xD6\xF9\xE3\xB0\xDF\xC3+,\xC1\xFE\x88\xFE\x88zV'\xBC-\xD2ظ\xC0\xC6D\xE1Q\xACg6\xAD\x80\xBB\x84\xF7P_`i\x8B\xC1\xC5Nj
+\xB8\xCB\xFE:\xF7\xC31\x95Q\xE6g\xB9\xD6I_@\x918e\xED&gt;\x98\xCCڊ\xBD+k{y68\xE4d\x94\xC7\xE1R\xF1Y\x8C\x93 *\xC6[\xCB\xEB 
+9_\xB0\xB4\xD3X]X'\x81y\xF6*\x8C\xC3\xF2{\x9A\xA7\x89\x82۬\x8F
+\xBC.xz\xD4E\xB1\xBA\xC0&lt;\xA5d\xC1\xF5\x89/`\x8De4\\x8D}\xE8ik \x9Eƙ `\xBF؄y\xFCӍfe\xC1t&gt;&gt;^?
+\xD7`\xFFZ\x8A\xB2i)\xCA\xE0\xFC_?#l\xC6\xF7\xB9
+\xE5:B\x88am\x864K \xEBp:\xF7*ѐ\xB1KX\xFF\x9E\x830\xE3\xE9Q\x94\xC3L\x9Fx\xEE#0P\x9A+\xD0o\x85\xE5$&gt;\xF7^\xF4[\x84\xFD\xB7'\xF6\xDDe\x98&gt;`\xCAm\xC0g/C\x96\xB6\x82\xE92LG`\xFD\xC5\x8F\xE3z\xF020=\x9F/|O Ca)\xF2q\xA5\xFC(\xD6\xC3b\xB8\xC7 \x82\xBC\x97\x89\xB8\xD4w\xCF7\xB1\xDC\xF7\xD3
+J\xB2\xEE\xE4\xFE\xC5\xF0}N\xB0!߲1t\x97\xB8\xA6\x8Ac\xA0H\xB8\xD5`\&quot;\xFE\xFB\xEA\xF7\xF0\x84\xA0\xC1x\xF1&lt;!\xB6\xC0r\xE6=\x90/4\xE2\xFBoCݒ\xF9\x81a̟\xBE\x85\xEEUP'\xF6\xC3\xF4K\xE1\x97\xE2xh\xB6&quot;\xEFU\xBC\xDB\xD3Y\xEEC&gt;        a\xFA\xBFc\xBE&amp;\xC8GP'\x8C\xC1\xBEu7ڿ\x8F?\xCF\xE2\xF1gl\x8B_\xCD \x86Kx\xBA\xE0eM\xA0S\x99i5\xD6\xDBPlS,/\xB3\x9FS^,k{9e\xBC@\xF9\xF8{\xB2|1\x8B#&gt;\xC1~\xFF*\xFE&gt;&quot;נm\xC3\xE9
+،XK߅˅+\xE1v\xB2)\xBE\x9B&lt;        W\x90\x8FO\x9Axs\xBA1\xC7\xF8R2\xD1C,\x85\x9D\x88\x85h\xEF\x8E\xF4\xB7\x88-\x86u\xB7Rx\xB1\xF3~i\xB3\xC4?\xB6\xA0\xA0\xA3\xE8\xF7b\xE2\x8DDXG\xB0g]ȿ#,\xE9\xF1\xDD縷\xE3X\x83 \xA7\xF1N\x9FƟ\xB9\xF5\xF2R\xC4e\xF1\xDD ȋC\xA4\x90d\x9DIB\xFAgb\xBANnK:\xF6\xA7\xED\xBAXy.rz\xF2:4\xED\xF8\x8E\x89\xF6@\x9A\xF2\xF0~d\xD4\xE0\xBF[Ɵ l\xDF\x88q\xBC~\xFF\xC9\x81\x93\x9C\x88\xBF\x8Ft 9\xBA0y\x81\xEEK\xD0\xEDI\xD4g\xA2\x9D\xD0\xFFa\xEEߩ\xFD\x90Wp\x9A\xFFGg\xFF\xCE\xEE\xCE\xEDz17m\x86\xF1\x91\xE0\x83v~x\xFA3\x88\xD1\xD9-\xBF\xFD\xA4W1\xEC\xD5\xF3\xDD\xE2Ƌ\xA0
+\x84\xC7Y\x99\x90\xF3\xCEwK5\x90\xC7@CXVK\x83}\xD1\xEE&gt;\x822\xC1\xE2\xF2\xF4\xC4\xC0\xFB.\x82n\xC3\xF9\xA2=\xBC2t\xA8\xD7^\xAC^\x85Ǎ\xF0D\xFB$ڥs\xFB`\xF9\xA2\xE2\x9B0ii9ґH\x87&amp;h;\x9B\xF2\xE2\x9En\xF0{\xBB\x9Bɒ\x8F;\xC59\xDB'\xCE\xF6\x8D#l\xAC\xB9p\x9E\xFF?\xFB\xCE!\xC4Aā\xFF\xD3\xCF&quot;\x80\xBC\x8A\xD0\xD2\xFB\xA8\x87T\xA0y\xF5\x93k\xD8\x95V\x94%?&quot;\x9EA94
+\xE9;臣w[7\x84\xED.\xF4\xBB\xE9\xAF\xCE|\x8B\xF6[\xD1\xFF\xB8\x818\xD3a\xAD\xA9Wz\xD1o\x87\x99V6\xF3i\xA4?\xF3\xC0\xA7[\x8C\xF4g\x9ECLC\xFB7\x88;\xD1\xFEҗ\x91\xAE\xC2\xF8\x9Fc\xBAEHg\x84\xB7\x8EG\xF7ċ\xE8\xFE\xDD3c\xD1\xFE\xD2d\xA4\xDD\x84ӯd`\xFA\xC8y\xF3\xD0\xFFqz\xE1\xF9\xC7O\xA5\xA8\xB3L\xC2rؚ\xD2y\x9D\xE7?\x99&amp;\xDA\xF3&quot;\xB4\xF3\#\xD1\xFE\xA3\xD6 :Q\xA3p\xCE\xF4\xD4\xFB;\xCE}\xFEws\x9C\xC5\xF6l\xEBqt\xBCuJ;ӣ\x99.\xCB\xF4g\xAE?\x9A\x94\xCF߸\x8B\xCFHJP\xA6;3\xFD\x95\xE9\xCELE\xFA4_3\xB0\xF0\xF2\x8Cf\xF3|^.s\xDC\xE8([\xC9ix
+\xA1#\xD2M:\xE3|O\xF3\xE2o\xE2ؤ\xA1L\xFDu\xCD
+ |lc\xE3\xF9\xFE?\xDF\xCB\xE2 =\x8C\xEE \xA4\xDF&amp;ƴ\x84l=O\xC6^dL\xFB\x9Fv\xFF\xDC1\xF2_S\x8BL\x8C\xEF\x84\xE6\x9F@oC:\x8F\xC5?\xBB\xFF\xE5\xB1\xFC\x9F\x8C\xD1\xC7\xE9\xFF\xAE;1\xCE'p1\xBD\xF4&lt;=\xE0&quot;\xEE\x8B\xE5\xF7sݝ\xF5\x8E\x9F\xED$ܝq^xg\xDEK\xE83&gt;\xF0\xB5\xA3S\xBF\xFB\xB9`s q\xFBY\xDD?Q\x86\xCE\xFD\xB8\xBD\xBF%\xE6 p\xEE\xDC(\xF2\xCD1tʋ\x9E\x88 \x8EQ\xF1\x87\xD0o\xBE\xFC#\xC9/@\xBA\xB7#p\xDCl\xFB\xE9d\x86t
+Y\xC1ַ\xD9/m\xB5\xFD/t\xEB\xE2aw\xAC\x89\xC9\xE3\xE7\xCE|\xCB\xF4s\xAEb\x9Dq9\xF8+?&quot;\xFA&quot;܈\xAD\x88\x9Bm\xCD\xE6\x90\xF8\xEC?Ru\xD9&lt;W\xAC\x8B+\xBE\x89\xE8\xA4^\x94\x96\xC2-\x88Э\xA1[3?\o\x9D\x92\x86@\x9D\x80\xF67\x81:\x85\x90\x89\xC0zֲ\xDFs\xB0\xFCg?\x9Bd\x8C\xAF&gt;\xEC'Y\xC1q\x87\x84'\xF4\xC1\xEE\xF7
+xz#\xBE\xBB0\x921\xAFT OC\xDDĻ\xC0\x87m\x90^b\xC0\xDF #\xD3@\xF5\xA3\xC0\x9FrP\xBF        5\xE4~\xFE\xAB\x81n\xD8.\xDD)\xA2\xE0\x92c\x85\xF8\xECK\xEF\xBEv(Y\xD0 \xF5\xA1\xDE\xF8\x8Cr|\x8F\xBE\xA8\xDB\xF4;\xD0\xF3\x89\xDEP\x89:\xCFԉ\xFA\xAE\xC0:\x8CyuT\xB8\xF2\x80\xAC\xBFa\xC8c#\xFF`ԏc\xDB0.`\xFC\xD7=0\xE9\xEE\xFF71e\xCE\xFF\xA5\xF8\xB7.t\xA1 ]\xE8B\xBAЅ.t\xA1 ]\xE8B\xBAЅ.t\xA1 ]\xE8B\xBA\xF0/\x80\xB0\x93EhT\xC0\xB0
+\xD9\xD7wѡ\xB2\xF3}t\xEB(\xAD2[H\x85\xAFq\x844 5\x88\xF1\x88\xFBkh\xA6\xCFL\xC4\xC4^\xC4\xD7&lt;$*\xA46=TmAr/'\xCD\xD3fq\xE7u\x86\xB3~w6_]k\xD0+\x87\xB4j\x88\xAD\x8F\xED\xD2û\xC7\x83\xE6u7\xA8;\xB7(ƨ\xEA(\xDAW\x99&quot;\xA4\xC0Q\x85\x9B\xD1$\xF4\xD0\x81\xAC\x92\xA1A\xC9\xF4\x89
+\xEE\xE6P\xB8h\xCD^A&quot;P\x81\xC0d\xC4\xF7        \xA4\xC9\xE1*\xAATi\x9C~nп\xD1/\x8D\xFAe\xB3\xD3U\xB4\xA6r(\xFD lA\xECE\xF4/\xF8\xF7g\xFAgX@Obu\xEAhV \xD6 \xF6&quot;\x8E \xBEBH\xF4$\xFE}\x88\xA2\x8D~\x85\x88
+\xC4x\xC4\xC4^\xC4W+\xFDM\x9D\xBE\xCF\x87\x9B\xCC^\x81\xA0\xF4}4u\xFA\xBE\xD6{hj\xF4]\xB4\xBDK\xDFŢ\xBD\xDDTV^\xB4\x8B[&quot;\x85\xA6%\x90kZR\xD3M\x8B;\xA5\xA8\x85\xBE\xD5\xF4}\xB7@ \xFD\xA89        \xAC\xAD\xECI\x8FA#\x82\xE2Îa\xE6\xC7 \x88\x86\x98\x80\xB8!\xA1\xED\xDAN@ \xF1b-\xA2!a\x9A\x98\xE6\xA69\x84\xF8=\xE2\xF4DD\xC32=ڄ\x8Fi\xA1G\x9A\xC2\x95)\xF4MzR\xB1R\xD3\xD78\xFD==\xC0\xE9\xF4UN_G\x9A\x89\xF4=Д\x80J\x86\xA6ё\xEAH 1\xDCB_n\xB9\xF1J݋\xD5@\xB3Q\x81\xA8A\x8CG܏\x90\xE8^\x9A\xDD49\xE0\xC6L\xF6\xC0!0f|\xC6\xE93\xB0N\x86\xE8\xB4@4|9\xF2X\x90\xE1&gt;\x97\xA1
+\x8D5\xC15a
+\xAF\\x8DNf\x84\xEF{m\xCC/Z\x8E6f\x84\xB5m\xCCϘ\x836f\x84'OC3\xC2u\xE3\xD1ƌp\xCD(\xB4\xA1\xD1B\x9F\xDA\xCA \x94\xD5L'\xC1J\x8D\xCE\xC5Z\x9A\x8B\xB54ki.\x88t.\xFB\x83\xEFEV\xB6'\x9A
+
+\xB0\xC6\x8FF\xBAb\xBBI\xECEAb\xEBHl
+\x89\xCD'\xB1\x85$֏Į%\xB1\x89\xF9I,\x93Ģ$\xB6\x87\xF4ƪ\x88\x91\xE8\xB6s\x9C\xE5\xD14;Db/\x90X\x89\x85I,\x97\xC4B$$e\xD1\x9A\xD54\xA4\x98\x93\x81\x9C4W\xB2~\x85\xF4\xB2\xFEE\x961 k4 \xD9: \xBB\xFD^4\x8F \xE2\xDC\xC5H\xC1l#\xB27\x93\xD1\xEC\xE6\x82
+\xC3ݣO\xD1\xCC\xCA\xC1t?&amp;܏Ͱ&gt;D\x88\xD8@\xFB\x91\x8D\xF6c&amp;\xFB1
+\xCD
+\xC4x\xC4&gt;\xC4W\x888B\xC2\xD8\xD9X\xF0\xFB\xB9\xA9\xA1Y\x88\xA8@\x8CG,@|\x85\x90xq\xBEBP\x98iq /X\xA1Y\xE8\xE6\xA2\xFB\xF1/\xFF\xB2hV4C\xF7\xEB}\xB0p\xBF\x9Fh\x99\xA4&amp;3\x9EI\xCB %\xDC.\xD9\xD5B;\xFE\xE1\xF8\xCF8@\xA9T\xE8}\xF4~\xC8\xC0\x86x\xC0\xA4\xF77}\x9Fh!\xAB\x9A\xC2{\x95\xC9\xE41\xC8\x91\xEBH9\x84I.\xD2\xDE\xD0\xC0ݥ\xE0\x97-?݌\xB4\xA8\xC9?\x93iM\xE1\xEE\x81\xDD\xC4\xC9R\xED|\xEF?\xF8\xCC\xDFB\xD1\xFA\xA9O\xE0\x9D`\x8BH\x9A\xC7\xD1g\xF3\x8E\xC01\xFF\xB2\xC0\xEB\x85-2\xFA\xBCn!Hvy\xD4]\xFEށ\xF1\xA8 1\xE0\xF1\xA6\xC0|Fv\xEE\xF4
+L\xF7\xF3\x80)F\xC0\xB5
+\xE8\x8Aj\x81\xE1\xBA\xC0`̯\xCA?1m\xC0&lt;w*\xFC\xD7\xFA\xB1JY\x9A\x81\x9EX\x84\x88a-\xC0\xC2v\xF3\xF3\x87\xE6d\xF2 G\x97\xB5\x90\xA3ݭ+\xADc\xAD5\xD6^\xD6&quot;kwk\x965`Ͱ\xA6[\x93d\xB7\xAC\xCBN\xD9.\xAB\xB2,K\xB2(S\xE4$\xF6\x83
+vv5I\xE2GX\xD9F6\xC2\xF70)\xC6Ljv\xA5D\xA60=B5\xAD9\x80T7\xEE\x9B\xD5\x83\x8Dߍ\xCCi!\xEA\xF0\xBAFK\xCE\xD2讆\xEAQ{G\xAA[\xAC\xF1\x8De\x91\xEAF\xEB\xB0k\xC6n%\xE4\xBEZ\xF4m\xA4K[\x8C\xDBB\xE2\xCCkqz\xA3\xFBr\xF6CLĵxE:\xA3\xF9\x8BW\xD4\xD6BZʜ\x8A\xB4
+wW\xF9U0&amp;\x98f\x87\xCBi\xE7\xD83WV\x8F\xDB\xF8\Fmc\xB3\xC43j\xAB\xAC\xBB\x8B\xFC\x9D|=\xB0j\xF9\x86\x91ڱ\xBB\x84\xFE\xE4\xEFG0\xA1Ummu \xC3\xE3A\x90|\x83\xF1\x90c\xBE\xE1\xF1\xE4L\xB2x\x943\x8Dx\x8F\xF1r1=\xC6 1\x82\xF1ry\xBC\E\xE1\xF1D\xC2\xE2mm
+\xAC\xDA
+\xF18\xA9Ah\xE0qR\x83\xE3\xCA\xC58\xB9\xB9&lt;NJ \xF18\x87Rb,Nc\xC5\xEF\xC7(\x99~\x85\xF8\xC0ϣ\xF8\x89\x8FGs6J\xA1eY{\x94e\xFCI9\xC7o\xC4q\x9CL\xC4q\x9C\xC48\x91\x9F\xFAoʀH\x844\xF7\xAD\x9DT?pJ\xCE\xC0        9\xA7 &amp;4\xDE;\xE7ƴ\xC6\xD8\xC4`p\xEB\xA4Zl\xC2&amp;N\xBA\x91\xD1\xEB\xA64\xD6\xE6L\xA9j\x9C\x94S\xDCڷ\xFE\xC1\xF5,\xB8oN\xD5V\xA88j\xEC\xD6\xFA蔪\xA6\xBEѾs\xAE\xAB\xAAm4\xAC\xA4\xEC\x9Cg-kVɰ d6\x8CeVž5\xA8\xEC\xC1e,x{V{V{֠\xE8 \xFE,\xE0&lt;&gt;l\xECV\xD4^^o\xD0fjS\x91_'\xA4g\xD5H\xD1o\xEEϙ\xB7oV\xDA\xFC\xF4ݨ\x90l[\xA4\xB6ў3\xA0с`A\x97T^Rɂ\xB0O\xB1 'zkfP\xDA\xFC\xBEY\xE9\xBB\xC9&amp;3HGoW\xCE\x88̚\xDD0\xD2N\xAD2\xFE7\xE0?\xF4\x9A5\x9BU\xB8aF\xFE\xD9? \xD8\xBD\xAE\xAAa@uc\xC1\xC8\xEAƊ\xE1uc\xB7Z\xAD\xE8;\x81\xBDRc\x9F\x84\x9F\xCD6\xB0%\xBE\xCF\xF0쁞}\x98\xA7 \xB4Gd~\xFD\x98\x9F\xA2\x98\xCFo\xFF\xD9&amp;\xE5\xB7:\xC4\xE8\x9Ef\xCD$\xB3\xA0\xA1Vh̬EQ\x8C\xAA\xC3w\xAD\xAF\xBB\xD5%6&lt;4\xD4\xE2 6\x90iH\xE4\xC1\x8Bm^B\xEC}\x985۴\x99\xF50ˤF*LҐ\xA8\x8E\xF6\xAC\x96\xE0\xBF\xE2\xC3
+endstream
+endobj
+
+12 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 905
+/CapHeight 788
+/Descent -212
+/Flags 32
+/FontBBox [0 -212 2665 905]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 36 0 R
+/FontName /OSIZDT+ArialMT
+&gt;&gt;
+endobj
+
+10 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /TrueType
+/BaseFont /OSIZDT+ArialMT
+/Encoding /WinAnsiEncoding
+/FirstChar 0
+/LastChar 255
+/FontDescriptor 12 0 R
+/Widths 11 0 R
+&gt;&gt;
+endobj
+
+37 0 obj
+&lt;&lt;
+/Length1 43248
+/Length 24078
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xEC\xBCy`\xC57ZUݳO2==\xFB޳&amp;\xB3%\x93d\xB2\xC8@YD@\xD9ª \p@
+\x8A\xA8
+\x8A\xA8\x88KX
+\xA0\x82\x8A &quot;\x82
+n\xA0\x80\x97(z\x91\xAB&amp;\x99y\xA7z&amp;!\xE0\xF5\xBE\xFB\xBD\xEF\xCFwg\xD2\xD5U\xD5\xDD\xD3\xD5g\xFD\x9DS\xD5A!\xA4B1Ġy\xAF\xC8/\xCCbb\xA0\xE7e؆M\x98&gt;n\xE6\x88\xF7?\x85\xD6#d\xE81\xE1\xFA\xD9\xC2\xFA\xF5\xE3~A\xC88!\xD9\x93g^9}_R\x88\x90\xE3B\x92O\xAF\x9C6gr\x88\xD90        !\xEFV\x84FY\xAF\x9A4nb\xE5\xAA[\xFE\x89\xD0m\x87\xE0\xF7J\xAE\x82\xD5ͤ\xA1\xB9rh\xFB\xAE\x9A&gt;\xFBƏЋ5Ў \xA4\xBC|ڌ        \xE3\xF0\x9E\xE93Z4!\xFD\xEA\xE9\xE3n\x9C\xA9\xB8E}#B\x8F\xD9\xE1|a浓f\xBE\xBCv\xA9 \xDA\xF0\xCAM\xB3\xF02$\x81{?&quot;)\x82Q:\xD2{f\x9ALx\x89\x84\xC8!²ݴ~\x92~\xE8\x9Dр\xD7\xCC@        $\xA4Z\xD9o\x93\xB7!$\xDD@\xAEL \x9CJ\xA5\xD2'5қQ\xFA eZPS&quot;V\xC9\xC1\x9DfBC\x86f\xA2\xDB\xF0\\xBCߏǍ\xF8N\x91\xF26\xD9G\xBE`0\xC30
+\xC6\xCB\xDC\xC640K\x98Ǚ\xF7Y5;\x90͎e\x97\xB3\xB1\x8F\xB2\xEB\xD8-\xEC.\xF63\xF6;\xC9\xC9\x92\xEF%g\xA5j\xA9M\xEA\x92VH/\x97^-\x9D.\xAD\x97Ζ\xDE&amp;] }X\xFA\xA4t\x83\xF4E\xE9{\xD2#\xD2S\xD2?\x9C\xF3\x9D\xC1 8\x8FbB\x91P!T
+݄\x9E\xC2\\xE1I\xE1i\xE19\xB7ĭs\xDDw\xC0\x9D\xE7\xE2\xE3^\xE1~\xC6C&lt;R\x8F\xC6\xC3{ \xAB\xC7\xE5        zž&gt;\x9Eq\x9EI^\xE2\xE5\xBCn?\xF2\xBF\xDA\xCF\xF9\xF5~\xB3\xDF\xEE\xF7\xF9#\xFE\xB8\xBF\xD2?\xCD?\xCF\x97\xFFn\xFF\xFFr\xFF\xE3\xFE\xE7\xFC\x9B\xFD;\xFD/\xFB\xF7\xFA\xF7\xFB\xFA?\xF3\xA8 $=u\x81        \x81Ɂ\xABOKNkO\xEBN\x9BOw9C\xCE(\xCE\xC4ZH\x8B\xD0R\xD2R\xD9ҭ\xA5{Kϖ\xC1-5-\xD3[nmYܲ\xA2%ժh\xCDn\xE5[ [{\xB6l\xADi\xDF:\xB5uf\xEBu\xADK[\xEFk}\xA0\xF5\xA9\xD6gZ\x9Fm}\xAE\xB5\xB1\xF5H맭_\xB4\xC5ڪ\xDA\xEEn\xFB5ٚL\xA5ZE\xEEh\xADH\xF1\xB5\xF8E|\xFF         (\xFE)\x83:(~P\xFC^f\x8B\xD9lv0;\x86]\xC6&gt;\xC8&gt;\xC2&gt;\xC1\xBE\xC06\xB1\x9F\xB2\xA7%\x8D\x92]\x92C\x923\x8A\xBB\xA5        iP|濥\xF8\xE7&lt;\xE7ZA-\xE8\x93 \x88/\xCA;(\xBE(\xFE\xEC\xBF\xC2=ʽ\xAC\x83\xE2Z\xA0\xB8\xC5\xE3\xCCP\xBC\xCE3Q\xA4\xB8\xF07\xD4A\xF1e\xFE\xB5\xFEg;(\xFE.P\xFCS\xA0xE\xC5'\xA6\x9E\xC6&quot;\xC5
+\xA7 \xCF\xE03\xECM \x8A\x87Zʀ≖\xEA\x96\xDE-\xC3Z\xA6\xB6\xDC\xD4\xD2\xD0roKk\xAB\\xA4xAkU\xEBe\xAD#Z\xC7ŧ\xB7\xCEj\xBDW\xA4\xF8\xEA\x8A\xEF\x8A\xAF)&gt;/M\xF1\xD4?@\x96\xA7\xF4@㗙h\xEAy\xA1\xA44\xE0&gt;|=\x9E\x8A\xEB[\xD7B{
+Ցd8J\x93\xB9P\xBD        ݈f\xA3\xA9h2\xEA\x87*[\xBFh=\xD6z\xA8u\xEB\x89\xD6[\xD23[W\xB6&gt; \xE5\xF2\xD6\xC7Ỽun\xEB]\xADw\xB4Ni-j\xF5#\xF4\x8FZ\x84\xBE:\x96V\xC2\xF3O\xAC89\xEA\xC4]'\xFE8\xF9̉N\xBC=\xCB`k8q\xEB\xC9\xEB\x8EO=&gt;\xE7\xC4\xCE\x84O\xDC{\xFC\x99\xE3~\xF9\xE0\x97O|\xB9\xA1/\x9F\xA2\xD77}Y\xFF\xE5XhžL|Y\xF4\xA5\xEFX\xEFc\xBD\x8EU+?Vr\xAC\xE8X\xECX\xF0\x98\xE7\x98\xED\x98\xFE&gt;\xFA\xD3\xD1\x8E\x9E&gt;\xFA\xF5ѯ\xE8UG\xDF:\xBA\xFB\xE8\xABG\xE1.G\xDF&lt;\xBA\xFE\xE8\x8BG{\xEDq\xB4\xFBQ\xDFQ\xCFQ\xF7Q\xA7u\x8F\xB5\xD5\xDAb\xFD\xD3z\x92{\x95\x9E-yU\xF6\x94\xECQ\xD9j\xD9*\xD9#\xB2\x95` \xF6\xC9vȞ\x97=.[\xF5|YX\x96+SJ\x93\xD2ߤ\xCD\xD2\xEF\xA4_IOH\xBF\x94\xBE%}S\xFA\x86\xF4e\xE9.\xE9N\xE9\xE9v\xE9c\xD2\xD5\xD2UҾ\xD2n\x92s\x92{$\x88M\xB2Ө\x8D\xC1נ &gt;\x8C3\xBD]\xD0\xCEe.\xEBh\xAFF\xFF\xE1\xC3,`\x9A\xC4\xFD\xA7\xFF\xF6\xE8[\xB0}\x8C\xBB\x80m`\xBE\xF8(\xBB$\xBD\xFD݇\xBD\x9En썙\xD6l\xF4_\xD8Kَ\xF1\xB3\xFD\xFE_ώ\xB0%\xF5L\xBDp\xFF\xADCw\xA1\xF9\xEC\x95\xE8A\xF4
+Z\x80\xEEE\x8Bѣhzq\xA8\xD8q'Z\x8EΠ_\xD0=\xE8!t7zC?\xA3\xC7г\xE8\x9F\xE8Wt=\x81\x9EC\xD0\xF3h&lt;\x9A\x80\x96\xA1\x89\xE8]4        \xBD\x8D\xF6\xA1\xF7\xD1~\xF4:\x80\xBE-\xF8D\x87\xD0 \xE8J\xF4\xBAF\xA2\x8F\xD0U\xE8;\xF4ZZ2]\x8D\xA6\xA3i\xE8\xB4\xCD@\xF5\xE0U\xAEE\xB3\xD0u\xA0Aף\xD0iХ\x9B\xD0t3\xBA݂^B\x8F\xA3\xB9\xE864ݎ\xBEG?\xA2\xF8A\xFC&amp;\x98\xC1,\x96\xA0Ԋ\xC6+\xF1#xjCI,\xC52,G)\xBC?\x8A\xC3k\xC0f&gt;\x8EX\x89UX\x8D\x9F\xC0\xEB\xD09\xF4/\xFC$^\x8F\x9F\xC2O\xE3g\xF0\xFC,ވ\x9F\xC3\xCF\xE3\xC0\xB66\xE2Mx3ނ~GGp^\x8C\xB7\xE2mx;~        7\xE1,\x9C\x8Dw\xE0\x9DX\x839\xAC\xC5&lt;:\x81Nb\xD6\xE3]\xF8el\xC0F\xBC\xBF\x82_Ż\xF1\xFC~\x9B\xB0\xBD\x88\xB1[\xF1x/\xB6a;v`'~\xBF\x85\xFE@\xA2\xAF\xD0?\xB0 ؍=\xF8m\xFCއ\xDF\xC5\xFB\xF1{`\xDB\xDF\xC7^\xEC\xC3~\xC0\xF1!\xFC\xFE\x84\xA3\x9D8\xE7\xE2 \xA1S\xE8k|}\x8C\x8E\xA3\xCF\xD0\xE7\xE8(\xFA}\x82\xBE\xC0?\xE33\xF8\xF0ſ\xE2\xE2\xB3\xF8\xFE\xFE\xFF\x81\xFF\xC4a܂[qN\xE2\xF8iD0!\x84!,\xC0)\x919Q%\x8EQ\x93,\x92M4\x84#Z\xC2\xD1\xE3&lt;b F\x9C\x8Fc\xC4D\xCC\xC4B\xAC\xC4F\xEC\xC4A\x9C\xC4E\xB2\x84\xB8\x89\xE0B\xE2\xC5E\xC4G\xFC$@rH.        \x92        \x93\xBB\xC9&quot;I\xB6DC~fng\xEEd\xE63 \x99E\xCC=\xCCRf9\xB3\x82Y\xC9&lt;
+\xC8`=\xB3\x81\xD9\xC8&lt;ϼ\xC8lb\xB61;\x98W\x98ט7\x99}\xCCr\x86\xF9\x809\xC2|\xC6|\xC1\x9Cd\xBEf\xBEc\x9A\x99\x9F\x99_\xC8/\xE4W\xF2Or\x96\xFCFΑ\x91\xDF)\xE3 \x90?I ie\x94\x8C\x8AQ\x83'\xC4\xF0`O\xC6x\x92]\xCF&gt;\xC5&gt;\xCD&gt;\xC3n`\x9Fe7\xB2ϱσ|\x91md7\xB1\x9B\x81le\xB7\xB1\xDBٗ\xC0/\xEE`wy\x99}\x85}\x95\xDD\xCD\xEEa_c_g\xDF`\xF7\xB2o\xB2o\xB1o\xB3\xEF\xB0\xFB\xD8w\xD9\xFD\xEC{\xEC\xF6}\xF6 {\x88\xFD\x80\xFD\x90\xFD\x88=\xCCa?f?\xAF\xFA\xFB9{\x94=\xC6~\xC1~\xC9gO\xB0'ٯ\xD8\xB0\xA7د\xD9o\xD8o\xD9\xD3\xECw\xEC\xF7\xEC\xEC\x8Fl3\xFB\xFB3{\x86\xFD\x85\xFD\x95\xFD'\xFE&gt;Şecϱ\xFFbg\xFF@\x9B\xD0fҀ\xE3hڎ\xDE\xC0_\xA3-h+ڋ\xEE@\xAF\xA1\x85\xE87\xFC-\xD9\xC3\xDE
+\xC8t%j=\\x8F\xEE\xC7Uh)\xEE~\xE8&gt;\xC0\xCB\xF1
+\xA8        ߂\x9B\xF1O\xECL\xB6\x9E\x9D\xC7^\xCB\xDE\xC9\xCE\xFBt{;\x9F\xBDl\xDCB\xF6nvX\xBA\xC5\xEC
+\x80Ö\xB0\xF7\xB0\xF7\xB2K\xAC`WBXŮd\xF6 ೇ\xD9[\xD8\xC7\xD85\xECZ\xF6q\xF2%9NN\x90\x93\xE4+\xF2r\x8A|M\xBE!\xDF2\xC6\xC93%\xCC?\x99\xB3`\xAF\xA5(
+\xE1\x83        \xE4&quot; V&quot;\x95\xC9J\x95:+[\xC3iy\x9D\xDE`4\x99-V\x9B\xDD\xE1t        n\x8F\xD7\xE7\xE4\xE4C\xE1H4/?VPX/.)-+\xAF\xE8Rٵ[U\xA2{\x8Fꞽz_ҧo\xBF\xFE\x97\xB8l\xE0\xA0\xC1\x97_1d\xE8\xB0\xE1#jF\x8E];fl\xDD84~\xC2\xC4I\x93\xAF\xBCj\xCAԫ\xA7M\xBFf\xC6\xCC\xFAkg;\xEE\xFAn\x9Cs\xD3ͷ\xDCz\xDB\xDCy\xB7\xDFq\xE7]\xF3,\xBC{Q\xC3\xE2%\xF7ܻt\xD9}\xF7/`Ń=\xBC\xF2\x91U\xAB}l\xCD\xDAǟX\xF7\xE4\xFA\xA7\x9E~fó\x99\xE7\x9E\xE1\xC5\xC6M\x9B\xB7lݶ\xFD\xA5\xA6;w\xBD\xFCʫ\xBB\xF7\xBC\xF6\xFA{\xDF|\xEB\xEDw\xF6\xBD\xBB\xFF\xBD\xEF&lt;\x84&gt;\xF8\xF0\xA3\xC3G&gt;\xFE\xE4\xD3\xCF&gt;?z\xEC\x8B/\x8F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xB3\xDF\xC2v?\xB2\xC1\xDEɌG`\x9DS\xC73\xDBW4\xE3J\x8F'\xDBR)\xF2        X\x9B!\x99-\xFD\xDFb9H\xEF\xC1\x82kpX\x9B!\xB8\xBF\x96(\x814\xD0؊\xF0T        \xF6\xE8t
+M\xFD\xBDn\xB0^?\xA3*GW\xA5\x92H \xB6!\x89oE\xEB\x9D\xB8\xAA \xEC\xCC$\xB4\x8CT2a\xF6\xF0-!c6\xE2;P~e\xD8;:\xBFJ)\xA1\xBD$\xBA\xAE\x82\xF63c\xE5\x91T,\xF5+\xDE\xC3\xEEK\x8DGO\xE0J\xF21\xFBX\xB3f\xECaQ\xF2\xCE\xD4\xE2Ԫ\xD4j\x94\x8D\xCE2\x8E\xB67R\xA9\xE9p\xD5PT6\xEB\xC1&lt;\xB0\x8Fp
+\xE9Jv\xA7\xC1\x98F\xC0\xE6\x82\xE5ڏ\xC3,b\xEB\x8F.\x87\xB3\xEFB\xA3\xE8U\xB0\x8C\x9F\x82c\xB0&amp;\xB9x\xD5p        jۛܛ\xEA\x9B\x9F\x9A\x81z\xA1\xCB\xD0 4\x8E:\xC0t'#\x99\x91\xA0+\x9F\xB4\xFD#y&quot;\xE5\x84\xDF6\xF2F\xB0\x8DK\xC1\xF6n\xFD\xFF \xE1W\x92!d(\xF3&lt;\xB2\xA1\xAEh$X\xE6\xFB\x80f\x8F%\xF7\xA1\xE3X\x8E\xE3\xB8'\xF0\xFC\xB9\x9Ee\xDA\xF6\x82`\x91(\xD8G\xA4\xFE}h\xD0t=ج\xBD`\xB3?\x80\xDF\xFChʀ\xFD
+\xE3\xA1x4\xBE\xCF\xC7\xF7\xE2\xC0j&gt;v\xF2\xB0\x9F\xF2\xBC\xF4\xE4\x87\xE4\xC7)e\xEA\x91\xD4\xB8\xAF
+\xD9\xA9\x813e\xE8R\xE0\xE7\xF4=&lt;_lO\xFE\xECB \xB6\xBA-\x99,J]\x92\x9A\x9Bz3\xF5        \xF2\xA28\xB7+\xEA        \xCF&lt;
+\x87Q\xCF߳ |\xCB\xF8\xBE\xBE\xE9_@%\xAC7\xB4\xC06^\x8E\xAF\xC0׉\xF6\xFAg\xDCF\x8C\xC0\xBF22\x8Dl&amp;\x87\x990s\x80ξж5iHnN\xFE Hnc\xAA1\xF5F\xEA=\x91\xBF%p\x9Fj\xE0@-x\x9AY&quot;Ƕ\xC1}\xDE{\xFAh\xAFႱ\xF6\xC1\xFD\xE1y\x86\xDF?\x8E[A\x9C\xE4\xE46\xF2I1]\x99e\xCC&gt;\xD6\xC2&gt;\x9C\xBC,9=\xF9prK*\x9E\xB2\xC5         \xB2\xA08|+@\x9A\x86\xA2\xF8\xED;\x80\x9A\xEB\xC0WnM~,\xF5O\xD8 \x96?\x86\xFB\xE2ax\xAE\xC3W\xE1I\xD5\xE3\x9BAo\xE7\x83\xFF\xD9
+&gt;\xE4c|\xFFvY
+V7 \xDF        \xE4\xB2\x9Cl%{\xC9\xC7\xE4ض+\x98L=s3XЭ\xCC!\xE64\xCB:\x88\xB1\xD8:v{\x93I\xA9Q\xFE^\xAB\xA9uz\xDB\xF8\xB6G\xDA\xDEH\xE6%{&amp;\xAFN.N\xBE\x96\xFC8\xF9UJ\x95ڝ\xFAIQ \xC6X\xFExxչ\xA2\xD7_\xF2\xF1,\x8C\xF1$x\xEC\x80\xE7\xBF-\xF0\x96V\xB1K\xE4[5\x8C{\x8C|8\xAE\xC1\x93\xE1{\xE0\xDF\xEB@f7\x82\x9F|Y\xF4v\xFB\xC0s}\xBE\xE7g\xF0.\x92\xDF.\xA0C\xC9dx\x86G\xC8F\xD2H&gt;\x83\xEFo\xE4&amp;\xC0D\x98B\xA6\x88\xE9\xC6\xD4\xC1\xD3,d\xEE\x86\xE7y\x889\xC6|\xCD\xD6\xC0\xB0W\xB0sٷ%\x8Cd\xA2\xE4A\xC9*\xC9^\xC9;\x92樂tT\xC6F \xB9\xC0\xBCG^c\xBB1\xD3= &quot; \xF3=\xF9\x90T\xE2[I ~\x9A8\xF0kp73\x88D\xAAIpz\xBB@ʧ#\xBDl\xC4=n\xA2G\x9C\xAC\x8E\xFEYI\xA2\xCCp6\xC0\xA8u \x82\xF6H\xB2\x80ԡ\xA7\xF0˨\x85\xF4I\xBB\xFC\xD1Z2\x96Y\xC5\xDE\xCFvß\xA0\xB9pOD\xB2\xF09\xD4u\xC7݀w\xA1z\xE0P\x94y\x91}_\xC4\xC7r\xA6U2\x9Dd\xA5\xB2\xDFJ\xF3!\xD8\xC1\xAE\x980\xEF\xE2\x91`\xA1\x81?}
+w!\xF7&quot;/\xB49\xDC \x{3FA005F}\x81\xE4\xEF\xC0\xC3Q{\x82YB\xFA\x91\xA3\xD07
+-ǯ\xC13\xEEB\xD3\xC8.\xFC\xF0\xA5 \xF4\xF1Z&lt;\xAFf
+ \xFE\xAEj\x94\xA3\xA9\xE4\xE4!3\x89\xE4y(\xFA'\xBE@s[\x807&gt;2\xB1L\x99\x80\x93\xE0\xFA!̓&lt;|\xC8\xE9t\xB47\xA0`\x82=\xE8=r*\xC1\x93\x98W[-m\xB9\xB76\xE3ML\xB4        \xB7\x80\xE7\xDBGX\xF8\xA5׀\x9A1\xB0        \x90\x90u`#\x86\x82f\xBA\x99HM\x92:kV \xF0R\xA4%\xBF\xE1[\xC844?\xCC|\x87ד\xEEh \x9A\xC4\xCC&quot;\xBD\xF1\x83\xC9\xDF\xD8\xEELPl'X\x93ji\xB9I*%6\xFFui\xBC!\xE9U\xECq\xC9\xB4\xCE|ĜMդ\xDCɱ\x92\xEC\xE41\xC0\x80\x9F\xEF\x8E\xE2ŠK}\xD0瀳\xC6\xE0\xC1l\x8A\xF4gS\xA9ah#y\x91=\x962\xAEs\xA3R\xA0a\xC9m\xB8\xFBR\xAEO\xA9\xF0`\x90\xF01\xD2
+m+\xC1\xF3\xCDox \xF8\xA6\xB0\x9A \xD0\xFD\xE8\xF0\xA5G\xED:\xC1\xFE\x94\xC3\xF8\x87\xA0\xD1`{\xA6\x80\x8F\x88\xA1BT O\xD7
+\xF5\xAB\xD4\x8E
+B\xC3\xC0\x9Eց\x95\x9C h\xB5,7\x81\x87\xEA\xF4\xD7M&lt;[Zu\xFC\xFAm\xA0\xFF \xD1\xB0\xA2\xA7\xD0\xE4Y\xB2\x86q&quot;z\x93\O\xA6b\xFB\x9Cy\x9BI\xE0a\xE80\xF8\xE4\xB9\xE8
+\xE4C\x83\xB1\xEE\
+\r\xC1uKR\xC1݂\xC8\xD6?Z
+r\x9F\xFA!\xF5qꙶ\x83\xF0{O\xC1\xD8\xEF\x97\xF6@?H\xABJt\x92\xA8\xEAֵ\xB2KEyYiq\xBC\xA8\xB0 \x96\x9F\x8D\x84C\xC1ܜ\x80\xDF\xE7\xF5\xB8\x97\xD3a\xB7Y-f\x93Ѡ\xD7\xF1ZN\x93\x9D\xA5V)r\x99T\xC22\xA3H/o\xEF:\xA11P\xD7\xC8\xBC}\xFADi\xDB;:\xC6u\xEA\xA8k\xA0\xAB\xF7\x85\xE74
+u\xE2i…g&amp;\xE0\xCC\xC9\x9D\x99H\x9F\x99\xE88sB%\xAA\x8CF\x84^^\xA1\xF1@O\xAFЄG\xF5{zzk\x84\xC6f\xB1&gt;@\xAC/\xEBYPw\xBB\xE1\xA1\x97\xF9\xAA\x9EB#\xAEz5\xF6\xBE\xFE\xAA\x86^u=\xE1\xE76\xA9\x94\xD5\xDE\xEAI\xCAhmR\xAA\xA0\xAA\x82Z\xA3\xC9;s6u\xC3b\x85\x98zUl&quot;H\x9E\x83j\xB4z{\xF6j\xB4x{\xD242\xFE^\xE3&amp;6&lt;\xA2WO\x9B\xDB]\x8D4\xE2\xEA        \xDE\xF1\x8D\xC8ۣQOA\xD5\xE2m\xA5Ս2\xF16\xC2\xFA4h\xB1\xB0)\xB2\xA7aI\x87\xC6ׅ\xD5\xBDǍ\xD1Ȍ\xAB\xA1\xF7І\xE1\xBE=M7\x9D2\x9Fo\xF3\xD5#v&gt;jcz\x99\xA7\xB4\xD9аPh\;xD\xE7\xA3nZ\xD6\xD4\xC0o\xC0\xB5\xC4߻\xAE\xA17\xDCz        \xB1\xFF܍̯ш\xE7\xC3-\xFA$\xF4\xA9\xD2\xCF7\xC9ۋ\xF6\xD4M\xDEޫ\xA6\xD6k\xAC
+\x8D\xE8\xF29\xEE\xCDVkbG\xEA\xB2\xF6\x86\x8C\xF0\xBA\xABlޚq=\xED\x9B\xF4\xA8\xE1\xF29[,        \xC1r\xE1\x91hd\xA7MvS\xB6&amp;SQgu\xAEL\xEA8&amp;\xD6\xC4\xD3i\xAD\xFF\xE5\x94\xC5tD޾ \x8D\xC2F2\xC2 \xCFTF\x8BIe\xA8aB\x9C\x9F W5N\x8ELiTT\xD75p\xB4\x9F^\xDF(\xF1s^\xA1\xE17\x88\xAC\xEA\xBC\xCD?^\xD83.\xD3#\xF5s\xBF!Z\xA5r\xD2!jp\xBC\xBD\xDE7\x86BTDd\xD5\xC0Sc7\xB1]\x8D\\xDFD\xA6xgr\xEC\x80|h\xD0v\ME&gt;\x90\xDF\xED\xA6 ^ܔ@\xE3\xA1\xD18o\xF0\x88t[@\xE3m\x9BQ&quot;?\\xD3H\xEA\xE8\x91=\xEDG C\xE9\x91y\xEDG:.\xAF\xF3\x82$osʆFy\xA0\xE3O\xC3u\xBD\xAE\xAAh\xC4\xC6\xFFpxR\xFAx\xFF+\xBC\xFD\x8F!\xF4j\xA8\xCBж\xFF\x90 Z\xE9\xE3e\xC72\xB5F]\xF5\xC6F25bcģ \x94\xA3;N\xA6\x8D\xEAF\xD6RQ\xA8'6\xC9\xE4 \x95bz7ru}\xD2e\x8D\xD2\xED\xFE//jJ\x9D\xA1W\x89\xBB\xF3\x97e\x86\xD9X\xBE\xB0\xDD\xE5\x82\xF6\xC3S700`6@\xFA\xD9Р\xBC\xE0Xo\xB0@
+
+\xBD\xBDB\x86qM\xA9y\xE3\xBD\xE7m\xD8\xC0#\xD00\xB3W];G\x9BR;\xDB{/\xA9\x81\x87\xB8
+W\x80\xB4\xD4c\x93\xDF=xS\xDF}\xC5\xC8;8\x84\x84\xBB\x87\x8C\xD8 \x90\xA6\xBA\xAEG\xCD&amp;\xB1C\x9B+\xF6\x92\x8E^\xDAh \xF5\xC7 \xE9\x9B1\xD2C\xB6        \x84\xE6\x89GY\xB1ClOh\xC2H쓷\xF7a4\xA1\x89\xA4\xFB8\xB1&gt;Q@,KЅ/ \x92\xA1ޛ\xA4\xB2&amp;\xAC\xDE
+\xBD\x96V\xA4\x94J\xA0\xB2\x9Da\x88U!\xA3}\xDB1\xB2\xC8\xDEl_Ɲ\xAD\xD0Vyw\xAEr\xD7V\x89\xAA*\xDB*\xE9Vsk\xDDZ?\x80\xAB\xC0\xECiM\xD0ԉ\xC0\xEE\xA1\xD3\xB5\xC9V\xC00\xDF\x82\x94\xC8        \xAAC\x91\x98\xB2uJ\xDE(\x95J8\x93Qg覓 P(tk\xB3}q\xA8-\xF6wwb        2c\xCB|z\xCF\xDAmg+\xB9f\xEEܰ\xAAR˗\x97cZ\xC4p-\x8E\xF3|iIQ!x \xC0[=O}\x91\xD4\xEB\xC9        \x90\xA9\xAD|6G\x9D\xCD[d׌s\x8D\xCC\xC2g\xAB\xFD\xCF$\xF0\xAF\xB30\xC1\x97{Uf\xADR\xFDn\xB2\xE9\xC9\xF5ɦ}j\xA5֢\xF2\xE0~I\x84q4\xD9J\xE6fFT\x85\xD5B,V\x96\x8EX\xC1KMFN&quot;\x85\xD1*\x950h\xAF\xDC*AVǓ;!\xDǍ\xF7\xEF)\xB08\xDC F\xAB'D\xA3 \xC7KK\xF8\xE28Ɂ\x8C\xDEd\xE4\x8Dd\xEE\xBF\xED/\xB3\x92\xA9\xE4\xF3\xB5F\xBB\xF7yr=\xEE\xF3.\x8C֬\xF2$\xB7'\xA9\xC4=ߢ(\x8E'\xEE\xD4\xDB9o\xC2\xFE\x9B\xF5w\x9F\xA4ڲP7Oϸl.ߥ&gt;&amp;\xE4\xAB˚\xA8\x9B\xEE{\xCF\xF4O\xFE\xAC\xED\x8CO        y\x94\xAB\xD4g\xCB\xF5n&gt;\xCA\xD1(%\xACE\xA3&gt;\xBFO\xEF\xF7\xFB|^\x9F\xDF\xEB\xB3\xDB\xF4v\xBB\xCDf\xB5٭&gt;\xAF\xD7\xE9x\x85\\xEE\xE3\xB5z\x9E\xD7F\xD8%(\xD7
+\x8E_!ɖ\xFB\xAF\x88\xB2\xC8\xDF\xC40        ^+\xE3G\xC9\xE5H\xE6`\xF8WP6\xCEn$4\xF2\x84m/\xC8\xE0\\xF6\x8F\\x8C\x9Apׄj`\xEE\x8C\\x92k\xC9{\xFBes\xF6e\xD8-r\xBB\xAD\xD2jᚭf\xAE\xB9\xB6\x99\xD6\xCC@N\xBA\xAB:UU^\xAA\x9A\xCA\xE9\xC6.\xCC g\xDF\xCA\xED]\x98\x9Dg\xCB\xFFRa\xA1\x82\xC4s\x8B\x8ADN\xD0:\xE5F-\xAA\xAF\xC5ڸ(=ZZ\x88\xA42I\xBB\xE5\xB4s\xAA\xD4Ȱ        3\xEBx3\xD6ꔜYkM\xFE\xBC\x81\xB3h\x8D\x86
+ ޢݐ\xFCɢ5kT:f)v\xB9\xACVW\xF2d\x8DԢ\xD5\xE55\xA7MY\xBC\xC5\xF1\xDDw \x9Fe:=Rn\xD0h-t\xE2\x87\x93\x87\xC98)PQ\xC2\xFC:\xFA\x9D@g@\x83\xB6\xB3\xF8\x9F\xE45\xF4\xA1F\xE6\x92\xD9\xCB\xF8a\xA4Dӱ\x99\xC3 \\xA7\xDAN\xA1\xFCfQ\x9C\xDC83D\x95\xB4\xC9Ol\x8B\x97\xC1ym\x9Fz-J5\x9D;\xDCId\xAC\x8E\xCCM\xB7&amp;\xD4hH\xAA\x84X\xD8        \xA9*\x9F\xE2\xBEA\xF9\xE8\xDCŬ\xAE\xF5i2\xF7\xC6aLR_1\xA2\xB5,dO(\xF1f\xB9\x8A\xFDTeɞ\xBE;\x91h\x80\\xC3U\xFE4\xBD\xBC\xE2J\xC8P_٠\xC1\xA5\xB4\xF8e`Y\xC5et\x83\xFB\x93\xCE|/\x99J==Q\xA1P\xB1E\xC1\x94\xA1rEo\xDCW1Jq\xB5\xE2z|\xA3b\x91|\x91\xE2A\xBCR\xB1oPlG\xDB\xF1\xDBx\x9F\xE2c\xFC
+\xFENq\xFF\xAE0\xA9XՄ\xDF\xD9ƨ\xBA\xA1Q\x8A&amp;\xBC5J\xFEJ&gt;\x83\x99O\xB4Mxצ\x97\x81*gkۚ\xCF6g\xE8R_[\x8B;S\x92\xE6+s\xA2m\xB4֦\xB5(\xC9:\x95&gt;[k\x91\xF8\xFE\xE1\xB7h\xD4\xC93\xA6l\x8BFc=\xF14\xFB;\xE8\xFD\xA6ͼ\xDC֔\xFA=\xA1\xD1J\x91\aK\xD8\xF1\x83l\xACB\xB3\x93l@j\xBC*\xA1\xE0\xD4j
+\xF7\xAABNh\x8Fzx,\x91\xFC\xAA&lt;\x86e\xBCM\xBF\x93|\x91˕/!\x89B\xAE\xB6\xFD.r;\xD2&quot;y?\xA1DWj\xB5\xF8J\xC4a\xEE2\xD9\xD1\xE3\xF8}0\x91\xF9\x94\xBD͕\[3wV4\xCD͢\x90#\xAE\xAD+_\x9Eo\xC6\xDCog\xF7^\xD0(\x88\xA1\xDA2\xF8`\xAD;\xCD
+\xB7ȍ&quot;\xB7V\xD2nfJ\xC92,8\xADVg\xDB4Zb!\xF9\x93^\xA1\xB1(\xE5\xF6\xF7\x96\xD1&amp;\x90g3\xAF3\xB1\xB1aTV\xB3\xE4
+\xA0\xC4F\xA0\xC4'        
+ca\x93\x94T\xF1\x92M\x96\xB0z*;j\x9BR\xAD\xEFꑀ T\xB5\xA55ɶS_&amp;&quot;6_\xBC\x8F\xE6\xA6\xEC9 r\x9F\xCA}*\xB8K\xBD5\xA4\xC8\xE2\x95\xC6buY\x88
+zCΰ&gt;Ǚ\xEBU\xEBUM\xA9Y\xDF\xF3\xCD\xC6?\xF96#\x9B+o\xA7䱗2\x84\x94\xBC\x82O\x81Z\xA8p\x88䨭
+\x85Rmm\xC2l\xEF\xBD \x8FB*pd\xA3\xB6\xCAOj\xBB\xFA\xBBg\x91\\x99\xA0\xD7        \xE7\xAB\xC8tA\xEF\xC3\xD2v\x9A\x9Em\xE6΁xP\x83\xDC\xDC\\xF4=\xC55\xE3 Q\x9A\x8C\xD5sv\x97\x8F7\xFDB\xC0\xE06'\x90ΫM`\x93K\x9F\xC0\xBC\x8Ap\xFE\xC2\xE1\xDBoO\xD3&gt;\xA8ׇkJ\xDD\xC5i:\xE4+\xEDF\x8A\xE3\xAFG*\x93flGF\xFA\xA4R\x92\xB5\x91\xF9\xD4z\xB4\xC6\xE8\xD7\xFA!\xAEn\xBE\xE6Y\x8BT\xA1洦);\xC6=\xFAU`\xD4\xF5\xC9OwqS&amp;]w\xCB7?͸j`n\xAB5˔&amp;.\xF6\xE4\x98\xCF*\xC6͚\x9D&lt;\xF68\xD5\xEB7R_\xB1@(\x8C\xDF2\xAD Li\xEA\xD7DQaa\xB1\xB6\xC2\xD7\xD7\xD7\xCF_]v-\x92\xCEu/([\xC1./~\xB0l}\xF1Se;t;M\xFBu\xFB\xF5LGu_\x98~\xD4\xFDiJ\xE5k\xE9u\xDB\xF4`\x9C\xB6        8h\x87JP\xAEQ\x85s\xB5L&gt; Č$^;\xB28\x85\xDC@\xC4\xAC\xDF&quot;|\xA4        ߳%е,\xFA=\xDB\xF8\xAERoג&amp;\x9C\x95P\xBA2v{9c\xAD\xC8\xDF        ,\xB0\x93\xDB_RYʋ$Ҭw\xE2yiF\xA0\xAA*L\xEDǩS\x97q\xDF\xEDp\xC0D\xB9\xD1v
+\x9A\xCD`\x9B\xF9rmڮSs]\x9EfK\xBC\xD8\xE7\xD7\xE9Y\x89?\xEEM`\x9DĐ\xC0\xBE\xE2@\xEBYP\x8Fȗ\xDB\xE1\xBB\xB2\xDA\xFA2TV\x8F\x8Di\xE8p\xAEE\x85%\xC0\x97@\x9A#E&amp;\xB1%r\xA9]G\xD2Lbt\xB3o\xFA\xADi\xDA\xE9&lt;\x8D\x89\xE3\x{12B7BF}\xFF\xCDq\xDBk\x9DV\x8B\xA5O\xFD\xF2Gn~\x84Ӫ\xB4\xE6\xE1sY\xF3\xDEx\xB21\xBEm\xFCCߎ\x8Eq&lt;g\xD6\xCCzif\xFFeWP]\xC2
+\xA3\xC6,\xAB\x8C\xEB&amp;.\xB7\xEB\xD0\xDDw
+yĔnY\x81[^\xC3\xCF&amp;\xD4y\xBD/\xEEq\x86\x9Dng`g\xEAMj'\xB2\x8B\xD9.\xF2j\xB6\xBF|(;R.\xF57\xB63\x84\xCC\xDE#\xEE\xBDq_S\xEApBI\xB9W\xFB\xE4YMp\xE5\\x96e\xE5zV/\xB0yHW\xA1\xEB\xAF\xA5\x9B\xAA\x9B\xA3\xBB[7߷K\xB7\xCD\xF7\xB9\xEAs\xFE\x87,\x9D
+K\xE42A\xB0h|\x82\xDF=I\x98\xE0\x9E㞓;+fl\x8BgW\xE8c\xF5W\xCAo\xD4\xFCH\xB9W\xE3洼\xA0ӻ N\xA3\xC3d\xE1\xCCY\xE4\xCBR\xFBU%\x8E哼hkPIL\xD2\xEC,_j&quot;\xEB\xB7E\xBB2\x8C\xC2ք\xBFL]]\x{15272E}\x8A,\xF3IiW\xE2BB(bC\xAF\x90\xA8\xF9\xB0\xA9\xC9S/y\xBA\xC6X
+v\xE12|{Z6D\xB7Ou\xB4\xAD\xDCؖ\xE6f*\xA7\xA8\xC3n\xF7\xF3iq\xF0G7\xAB\xE34Z
+\xAFa\xA4\xEA,U\x91F\xD8P :O~.a@\xA5/\x81\xFC\xBE\9t\x86%\xD1vk\\xF4\x88
+\xFB\xB3r((\xCB\x87\x8AW        \xBBP\x88\xCAO\xBD\xA8ش;\xA3\xE2\xE1v\xDF\xD1.K\xA0\xDET\x9A2\xF8\xD2\xEBA\xBDɘ.\xAFG&amp;\xC5\xD3.[?i\xC1\xA1W\x9F\x9E\xFEJIuUl\xED\x91[\x86\x94\x99\x8D\xDA,&gt;\xD8\xF5\x8D\xE4nK`݌\x99k\xD6N7\xB2\x92\xE8f]s\xFC\xC9\xFFX\xB0\xF8\xF9\xBB{ʚI\x8D\x857)\xF5\xC9Mߺ?ؾ\xFA\xC5%w&gt;wE)\xF8\xECo\xC1+\xA19`?*\xC0 =\xF9\xA7=\xD0Oj\xD6\xCA: \xE1\xE8\xF0\xF0$&quot;Qe\xB3f[\xB6\xDE\xDC`~?&quot;D\xB5&lt;gMxut^\x97\xB3\x8D\xECV\xEET\xEF P\xBE\xD6\xCD\xC1\xEBݤ@˻\xD9\xEEu6\xA5\xBE\xD8\xF3\xE6\xEDL}\x81 \xA9߷j幹&gt;\xDA\xCA\xF5\xECL\xFD\x88\xFC\xA9\xEF7\xE7x\xDC\xD4L\xF3\xE1܄\xDC\xDB5\x94:\xBA\xEA$\xF9]\xA5Y\xDE&amp;\xFCY\x82 \x8D\\xA0+s\xD2ڵ\xCA8\xD0H\x8CM\xB89\xA1*\xBAr'#]\x96\xC2\xC7w\xB6`3k\xCF\xD6B        \xFC\xCC\xFFFd0\xE5\xAF\xC8\xD2X\xB4\xC0\xE6\xD2X\xB9\x93Ȯ\xB7&amp;p\x9E,\x92@1        \xA8\xB9K\xEBH`\x9B\x8A\xA8&lt;?\x81
+X(Ҽ \xA7e\xECqn\xAF\xA0Z\[\x8F\xEA!f܁©\xD3[\x9C|&lt;\xC8\xE9-\xA6lq\x9F\x88\xB3\xAA$fhI\xCCPô\x86\xCDb\x9F^]e0\xC3\xE9\xDAg\xA0}\xDA'ޫ\xFDS\xD3a_\xC0\x98\x94\xB61\xFE(͊AOeBש\xCE\xE8\xA6\}b\xED\xDAWO\xAA8\xF2\xE0C\x87+\x82Y\x8F_7\xFB\xF15\xD7߰\xC6\xF4ܼy\xCF=?w\xEE\xF3dq\xD1\xD3u+&gt;\xFF|\xC5ا\xE3\xC5\xE5\x83\xC77&lt;\xD80~P\xC5w\xD3V\xAD\x9E:~\xF9\xF2\xA4lƓO^s\xED3π=3\x9A
+$\x9A\xCDF\x95|3\x92\xF2\xBB\xB0d\x85\xC5\xC6m*\x95\xC5b?\xD9 ZK{?
+\xDC\xF0\xC0M\xF7w0\xEE|\xC1\x8CT\xDA\xE52\xBA\xB5-\xED\xC0v\x97\xA5B GaF#\xDA=ه\xB2?\xE5Ndǝ\xC9\xFE\x83\x93\x99tM\xF8\xD9-1
+\xD64akB\xE3\xD3\xFC\x93{\xCD\xE1\xA41\x91\xA5\x8Ag\xA81b\xE3\xE7$͌Ua\x90\xB3\xD4\x9CB\xE0jϦ#\xA6 \x86\xC7\xE0\xCD\xD8l2\xC4_6pP)\x83Gcy\xF2k`oA\xDAi\xA8\xEF%c\xDEiP\xEB\xD2 \xEC\xBA3\x9F\xB0-HxvK?P\xFF\xAAf\x94
+\x85i\xF5H!GZ9\xADc\xA8+V\x8E\xD2ҡ#\xF9(\xDC]\x85\x9F\x8B\xF5 R\xE2\x97\xCBmDr\xD8c\xB2\xB0\xF4\x8E|)\x96Zx4\xE8f\x88[\xDC\xE0\xDC,\xF9؜\x8EUO5\x9FjnF\x96\xB3\xE6f \xC5By&amp;&lt;\x91C0B+\xE2suT\x9C\xF1R\xCC'\xAD\xB3\x8D*\xAD\xC5\xC3([\xFF\xE5\xB1hUFrIR
+q\x9FE\x87q\xA3*j5\xB5\xB1\xBB\xD9\xFBQ\xE5\xE1\xED\x89p\x89|\xA6\xAD[\xA44z        \xDF\xD7zi\xA4w\xA0\xAAq\xACuldP\xF4\xF7\x90&amp;\x8CB\xA1H&amp;$\xAA\xE4\x9Aȓ        c\xD6Ҭ5Y\xE4x\xCE
+j\xB3\xB28\xADC\xA9\xE5\xBDAz(;(
+\xC1\x90\xC3\x8A(\xB1K*-&quot;R)C
+\xB5\xE8\xC4.\xA3qo4\xEAxe\xB4;\xED\xEA\xE3B\xAEy\xAEe.\xE6\x90 \xBB\x826\x97\xCBnsxlVk$rڬz\x88y\xAD\xD6I\xA2\xFBF}^\xAF荝aM\x9E+\x8F\xE4\xE5),\xD1H\xC0\xAA @\x90m݉Gn\xEB\x96Ї\xB6\x84FQ\x85\xB4Xcs\xD9N\xD8\xCE\xD8Xp.\x91\xED1\xD0F\xFCN\xDC
+iS{\xB6h\x95U[\xF6$88W\xA3\xC5H;P\xFB\xB36\xA5e\x81}\x91-\xF9\xBD\xA6cҐ\xBA\x98¿t\xB5M\xC4\xD64\xBE\xA4\xB6\xA8VLaTr\x95 %ya\xCA%`\xD2\xC2[\x{1DA47C}g\xFFR[\x9F\xB8\xBBS\xC7\xFFQS\xBCZ\xC6UV\xD2-\xB61E\xA0\xF5&quot;\x9C\x81&amp;n|\xD1\x86\xF12\xCC\xCDm\x9F\xD6?Naa\xF2-Zvdz~\x91\xFC\xD3\xF8\x91\xEEb\xF7\xDB4\xDA\\xBB\xFC\xB4\xEB$^\x98&lt;\xD0\xE9\x99\xEFM:\x9D\xA9\xE5\xF5\xF66^H&amp;\xB4=J\xB3&gt;\xC3A\x86j@\x86\xEC(\xE2ɉW^ m \xBF\xA5|S\xF5\x89R\xB24\xD4~TX\xE5_~\xC1/\xBD\xD97\xD7?+|]t\xA9r\xA9~\xB1o\xA9_&gt;\x94\x9B\xC4\xCDU\xCE\xE4fjg\xF23u\xB2~\xC2w__\xFF\xF0\x82lI\xA1\xA6\x8BP\xE1\xAE\xF0W\x85\xBA\x84{i.\xE1\xE4\x8A|\x8B`w\xDB\xFC\xB6\x90-߫        \x85\xE5s\xB8\x97}o\xE73\xBD\x85\xBE\xFE\xEB\x85BCl\x85\xB0^\xD8&amp;\xC8#r\xBB\xD1F\xC8a$rIc\x87&lt;&amp;d3\xDE\xDC\xECB!\xC7 sr\xA7\xC3YPXh\x94\xA3\xDC\xEBר]\xEA|u\x95z\xA0z\xACz\x86Z\xA6n\xC2w&amp;\x82Q?\xD2rZ\xA2\xD1.\xD3\xEE\xD1ҞО\xD1J\xB5\xD6xN\xAE\x8B)\xA53`,E\xFD\xE6\xA4e\x82\xEAi}&amp;\x93U[?\xA0
+\xA2.\xA7\xC0/j)E$\x9A        \xBD R\xF8\xEDpe\xFB^tXN_\x84\xD7+U\xBA@\xD8\xD2G\xA3د\xF4Fq\x84F\x91O\x88bt\xDE;\xD1 C}=\xA4\xB5\xB5~m;\x93Eg!:\x91F\xEB܅\xA5%&quot;\x8EpC$W\x92\x86\xABn\x8C\xEA)        \xF7\xE8\x9B\xEB\xEF\xBCi\xD0\xFAqmKh\xFBM;\xB0k\xCFnHn\xC1\xDFح\xE6\xB1\xC5\xC9\x87\xA4ٽ\xED\xA6G\xC6\xE6\xAF3d\xF1x\xCArR\xE2\xB5O-8\xBF\xD5\xD8gjy\xE2\xC6n@\x84\xB9\xA9\xE3\xEC\xA5\xEC\xF3\xA8 O\xDC\xD5\xE3|T\x85&quot;Fb4\x87\x99&amp;\xE9'\xA7\xE4\xCD\xD4\xCF2\xCE4o5)K\xED%\xB1~\xC6~%\xA3L\xA3\x8A\xA7\x9A\xAE*\x9Eo_\x99\xAF,*\xD06F\x8C&lt;\xDBh*-\xBCNMbx\x95wk\x98\xF7\x97\xAA\xB3N\xB8\x94aIX\x91\x90׹k\x85-\xA0)p\xE4T\xB0\x96򅝘0\xA080\xA0\xAD\x8D\x92\xBF\x8AR&gt;M}\x8A\xF7\xCA3y&gt;\x88\xCA\xC5X\xF5oT]ѿ\xD17x$\xF8u;\xA0\xB0\xDD\xAA8R?n3Mv\xB31\xE3\xFFk\xA8\xFBMo\x8F\xCC2.Gi\xF4 ]\xDCrGސ\xE2\xB9&lt;\xA6\xB88\xCEC\xF3)\xA5\xA3I\xA75ɰ\xD9\x8C\x96\xF4ȱcn봍\x83\xB4\xDE\xBE\xFC\xC0\x94Qc\xFA\x8CYT8\xFFۅ\x87XWʒ\xEF\V\xB3mH\xF7\x9A\xB0+z\xD9\xD8\xDE#\x96\xBF\x9C\xFCa\xCCX\x83Qk\xCA]\xEB\xB5\xF5\xD9x\xDF\xF0\x8D\xB7`f1\xD8\xEF\xC7\xC4\xF5}\xF7#\x98:u\xC2}\xAFr\x91\xEAn~\x91n\x91~\x89a\xA9k\xA9\xD0\xE0\xBE'\xA7!\xB84\xA4V\xE5\xE2!h\xC0r&quot;\xA1X\x99\xB3\xCDM\xAA\xE5&amp;\xB5\xB7*kY\xAD\xE40\xC9        mK\x82b\xCC\xEC\x90k\xF34.\xA7\xD1\xE8p\x9A\xE4a\xA7BA\x9Cr\xE2 h\xC0k
+\xD1X\xF3&quot;N\xFF\x81\xDBY\xA2\xBBp9\x96\x9F\xC7\xDE畁\xC2P\xB1\xA0\xE8\xFB?%@\xE2BHi\xC8\xD6di\xD4\x95\x86\x95\xFC9\xFE\\xD0\xCFJu\xBC\x9E'R\xB7?\xA4\xF4\xE5a\xC1\xE0\xCD\xC3~M8{xW^&amp;l\xE0\xCAԀ\xBE;\xEB\x87        \xBE\x94o\xB2\xF3\x96PԊ\xE28e#\xD5 \xC7%\xA2        \xDC;\xF5ż\x81Aǵ\xF3'ܑ\xAC\xA4=\xABp\xC1\xD4\xB5_ߒ\xC1Ƀ\xA5Q6v\xEA\x80)\xB3o\xFFud\xAA
+\xAF\x8Dy\xF8\xB2\xAE5\x83&quot;}AF?\xF2\x81ŘOXǺfH\xE7J\xAD*;\xCC\xF3\x95\xC7\xEE*\xF6zvF!?\xB3E㬢\xFBDDc\xA9\x92#\xE0\xF5VSX\xA7sX\xE3yT\xC0IA\xB8\xB8ؑ\x97\xA5q        \x85G\x8Fi\x89J+\xC1\x95\xD7\xB0\xA3\x80߉\x90\xCAJTrO@c\xC7?\xDBSvb\xEF\xCE\x90R\xACUR\x9CP\x9CQHŁ@\x8ArQm\x8Fh\xF4\xFB\x9E8\x97\xEB\xF2\xF9\x9F\xF93&lt;\xC3[J\xFA\xCD0g8\xD7\xDCV        \xEC,\xF5d\m=@\xA7\xFA\x8C5\x83v%\xB89\xFA\xD6 B\xED\xDFjWvT2Ml\x86\xC3\xED:\xFAij        k\xDB\xD3\xDAv&gt;tpI\x9B\xC6\xC0\xC5\xEE\xF3\xE7dz\xF0P\xB2\x80\x92\xBDu\xE5H\xBDhØY\xB4\xA7\xED)5\xA7ݑ\x99']\xA2Kn=ﭒ\xC7iρd\xFF\xB1⑟h9\xB8\xB4\x86\xAE\x85.\xC5\xD1/\x891u\xACQ\xA8\xC3\xE7P\xB8m\xCEb\x8F\xC7a+\x8Ajb\xAE\x89\x85\xE3qG\xDCH        u#\xBC\xC5\xD6j\x96@\xB9         \x86\xFD~G\xC4\xE3
+X\xE2\xB2W\xA2\x90\xC7\xFDQE\xB8Ƞ\xA1\xF4\x8E\xF8|^\x84\x9C'\x80l\x82\x8D \xB2\xAD\xB5q\x88\xC4v\xB9V\xE00\xE2\xE6q˸3\xCBY\x8A\xCF\xED\xA0z\xD4\xE1R\x80\xF8\\x86\xA0A\x95\xC0h\x9E\xE7\xC5\xC5\xD4G\x9D\xB9P\xFBo\x98\x80k/\xCE\xEDeXP\xFA\x9Fy\xB0:\x9D\xF4K\xDA\xDAy\xA0Q9\x99G)\xE1\xDBn\xBD\x90        \xE0\x85,\xE5\xBFg\xF0`x\x8E\xF9\xE09*q Q\xB6DxD \xF9\7\x90c\xFA\xAA{\xFB\x86\xA9j\xD5\xC3|O\xA9\x9E\xF2\xBD,ݩV\xB0^\x937\xA0\xCE\xF1|%&gt;i        *_\x86\xCAˑ\xA3\xA48\x9F\xAC&quot;M!.,\xC9+,\xCC\xCFs+\xE5\xAE.\xAA\xC3N\x93\xDCS\xB4$\xE4rp\x8C\xDBV(\xC9\x94L..fun6\xF0oJB\xD0\xEBu$\xE4g\xCE\xC9yyQ'\xC6\xC8\xDA-'\xA0\x91\xBB\xE4Dn\xE9\xBAp\xC6EnE\x9C\xA2\xE2\xC4d\x82h\xCF(\xDA;u޽\x94g\xE6Ĝ\xD3f\xAE6m\xE7\xD2
+\xD7;y\x9E\xEEJāϑ\xA4΢H\xEA{\x84-7\xF5\xFD6\x9F\xD1c\xF4\xB6\xFBp@\xF5\xB5\xD4i\xA9g\xC9#\xC7b\xCAd\xDB\xFDQ:M\x96\xFA\xA2v\x93\xA4\xF3\x85l~\xDD\xEE\xB1 \xDC;p\xD1OK\xF6/\x91\xB3)\x8F\xB4&amp;,\xFD\xE0\xE6ٻ\x97`t\xF2\xD2;\x86\xA7Y\x85pZ9=ޜ|\xB8\xB8dв͋i\xC0\x92\x86z\x8D\xD5\xF9\xAA\xCBbr \x9D6\xE9\xDE\xDA\xEBW~pN\xC8ť\xC0b36鲌2\xE0\xE8\xD7\xBF\xADr\xA1O\xD1|6O\xE2U Y\x82^0\xE4\xDB\xF3\x9D\xDD$E\xEA\x98&gt;f\xA8\xB2W9/\x93T\xAB\xFA\x84\xA1\xBF}\xA0c\xA0ӠЈ~H]&quot;\xA6\xC1
+\x8BKl\xDBK\x90\xDD\xEEBK\xDA/\xA9@ \xD3~\xC9\xCC\xD3v\x8E\xA1Dk0\xF0Z\x87\xD9\xB0\xF0\x8B\x99\x90\x80\P(\xE44 \xD0\xE40g\x967w\xF8#T%\x821\x8A՛\xFF\xD6        \xFD'\xF7\xF4W\xDDq\xB7\x939\xD3M\xEE\xBB(7~B\В\xED\xD6j\xBCKӍjB
+X\xA3\x95@\xB7db\xA2\xD65\x97X\xBB\xFB\x8A\x8A\x8BJK.q\x8F\xEA~\xA5{Z\xF7ܷtoH4t_\x99X\xD5\xFD\xC5\xEF/\xD2iPIQ\xAF\xA2\xE1qV\xE3        \x97\xF4\x8Ew/V\xB0\xB7\xEA\x8DĞ\xEEr\x9B\xC7V0\xC53\xA5\xE0\x81\xF8\x8B\xD1
+%\xA7=D\xFF(Q\xF6@\xA8\xA0\x9D\xCE\xE1 蜍\xEC\xD8^$\xA9\x87%\xC3:!\xBA,JbQ\x8D.+\x88Fc\x8EPJs!I\xB0\xA4\xE8F\xA8\xC0,\xA6\xF4\xD2\xF6\xA0\x80&amp;\xE0
+\xC4L \xEC\xA1R\xE9z\xDC\xDD\xE3\x89\xB6\xAA\x87\xA7\xF1\xC8\xE9\xF6\xE8\xDDnrxX\xC7!o  Z
+&lt;8        \xAC4\x93\xB2\xD2@\xB7\xAA*\xB9\x9C @\xA8\x8F\x9A\xC8M[\xDDn\xB3\xA2\xB0        \x8FxI\xE8ѣ\xF5\xEE\xC4\xCF \xB9)aJ *\xA8+\x98Y\xC0\xA0\x82D\xC1\xA0\xE6D\xC1\xF0\x9C\xDDKwA\xF4'\xA0*\\x92\xD0\xF6t T&quot;\x87\xCFP\xA1\xA8\xEE\xB79UD\xE0^Y        \xB1\xB5\xB5\xCD \xCDz+M#S\xED\xB6ZD%o6WY\xA9\xED\xE5hhGa W\x99\xFEf\x94a^\xB8z\xF4\x88\x84%\x9C\x95U(a/\x85\xC2R\x85)
+\x85&gt;\xB7
+\xA5= %\xB7\xA6'͝\xA3\xB9\xFC\xBF\x97\xB9ڋ\xE2\xC0\xDA\xFA\xBF\xEE|\xA5,\xC2\xF4\xCB\xE4I\x9D\xD8b\xF1\xC5)\xDE\xDB {B
+`\xC8j\x8B\xFE\x9D\xE8b\xAF\xB6=~lO\x96`#\x85P\xED-\xC8\xC1\xC3V\x893\x92k\xCF{d\G{V\x91\x9E\xA3\xE9\xFE_\xB4˓,\xBC\xF2\xEE*_\xDD\xDA\xF3\xC4][\xE2w\x93
+U\x81\xB6&quot;i\xAF''\x84n\x9B\xDD\xFD\x8C\x98\xFA\x9Er0$\xFA        Ў\xA0n4-QP\xAA\x98B)\xEA\xA8!ij\x94:\x9AAN\xC59\x91\x80\xCAF\xC1\x90F\x81V\xF0\xB9No\xF1\xAC\x9F\xD3i\xA9\xC17\xB5\xE0C\xD3        \xAC\xF3\x9E\xF2/\xFEh\xA5uk\xFF\xAB\xA4        \x81\x8F\x90&lt;q\xA6\x8E&gt;\xEC;\xEF\x88T\xF8\xBA]\xD5\xF1eN\xABŕs\x91\xBAcp\x95\xBD\x9E'\x82g$ \xC5
+\xBB\xC5N\xDE&amp;X\x85\xA566\xDAX\x95VԪ\xEC \x9F\x9D\xAD\x85g\xF5\x87ӊ\x97\x8Bs\x83\x91\xDC\xDCp\xC4\xE1W\xB2\xE2)\xB2&quot;F&amp;c\x87ҪۀM&amp;=\x90\xC1\xE7\xA4m\x8F\xBB\xC8\xE1v;\x9F\x8D`;\xD3\xF3\xEF؆t\xE1\x80\xDF\xEF \xF8|\xA0\xD27m\xB7\xE9@3;TJ\xACR*\xB1\xDCawbp~        B\x91\x84\xBFX\x99Y9\x91F\xACy\x84q\xF26z\xBA\x8E\xAB\x9B\xA1[\xAA;\xA3c5:\xAC\xB3D+\xAE\xEEp\x9A\xF5Ir\xE9(  \xF4\xFE&amp;m\x80+3\xB8\x92k\xDA\xF5G\x83\xE5\xA0+X\xAF\xB5C\xC1\xD9\xC4,i\x8D\x98:\xF9?6ֵ1ݢ໽+\xFAE\xF8b%`ɴ\xB6i)\xDFO\xCBޢ\x94#\xD3VQ\xBE\xE2ں\x845\xB5v\xBD(?\xF2-\xF3\xE6y\xDBN\xE8[,\x94\x93\x85,\xB85\x91ڧy\xD3B\xF8o\x8Cߘ\xFF\xE0\xFE\xE0\xCF\xCFZ\xA4o?\xE3&gt;\xE3?6~b\xFE\x8E\xFB\x8E\x97Y9+o0\xCD\xEC\xDB\xFC\x9F\x9As:\xE6Q\xC5
+\xF5\x93d\x83d\x83\xE2I\xF5\xBB\xD2w\xE5\xF2;\xC9\xC9=\xF2yj\xF2 \x90Uy\xA9\xB4T^\xA4\xA8TWpE|\x91\xB1\xC2,\x91\xB0:\x9F\xF3\xF3~c\xBE\xB9 \x91\xBD\xAC\xD9\xCDm\xE67\xEB6\x8D\xBB\xCD;-\xF2\xE75/p\xEB\xF9't\xEB O_4?k\x91\xD7
+6֚\xD7p+tˍ\xAB\xCD+-\xF2^\xBA^\x86^\xC6~\xE6K-#5#\xB9\xCByy\xD0\\xA1)ѕ\xCA͗i\xFAq\xBDx\xB9J\xAA\x94ۤ6yP\x93\xA3\xCB1\xEE\xB0`V\xAE\xD3d\xB1HfH\xA5\xF5+\x99l?M\x95(\x86\xD6&quot;        \xBAA\xEF\x97Y\xB6X\xABo\xCAL\xFA\xB7զ\xC8bH..\xA0\xA8?4\xB7AWRԂLl3*\xED\xDA*\xBE)un 칦\xD4\xEF[xs\x95\x91N\xA5g\xEBmUF\xB3\xD1Qe\xA6\x85\xCC\xDC\xA3\xE0\xD0\xF7t/iJ}\xDC\xD1V\xF1\xB4\xFD:\xDD+2{\xDDgi\xAB \xF4\xBA\xF4\xFEl&quot;[\xCDU\x84,\xBE\x9B\xCE        \xA6)~\x9D\xA5*+\xB3't\xCF\xAAԙ\xBD\x99Αfiu\xDDp6j\xAD\x85\xFF\xF2A\x99$?\xA2ku\xA7!-\x87@yY\x9Cx=D\xCC\xF0,\xBA\xFB\xE7E\xFB\x93\xFBq\xF1\xFEE?-\xFA\xD3+\x9BZ\xB0l\xFD+?\x91\xDE\xCF$O\xAE\xC558k\xF0\x88\xB5ɯ6\xC0\xBD\x93\xFB\x8E}\x9F\xFC\x{1E2CB5},\xC9(\xB0$^Egf\xD6\xCA\xDAdN\xE4\xD2\xD9x\x97\xDFVl\xEBe\xDBV\x86\xF8\x9C\xA6\xD4O        \xEE:\xEB]V\x92#ɗ[W\xB8\xC8\xC5H\xE0\xDF#\xAC\x82\xC7\xF1\x959\xFD\xBC\xC6W\xE5#&gt;\x9F`V\xD0\xA7ݚ\xE7\xCAY\xF2ΝOĴ\x87\xFF4\xFA\xA7\xD1J-5ܗ\xDA\xFB
+
+*M%Lf\xC5\xD7\xC1\xE8L9
+\xF0\xFF&amp;\x8CiW`q\xCAܟ\xC9}A\x80\xDFxq\xFC\xB6\xFA\xF4\xF3G/)\xEC?\xA8bX\xF2\xAC\xAE]\xD7\xFF\xD9;\x92G\xF0\x89\xE4\xEC 5\xFA\xBDE\x83\xEF\xF0\x97YuC\xAE\xB8\xB1ۄ\xC7(ݯJi٫@\xA7\xF3Pޗ\xBB0\xBC \xD6(\xBC2\xFEL\xEES\xA1'\xF3\xE4\xFCԂ)ED\x99Äm9\xFA\xB0&gt;@\xFDb\xD5\xF1꒾\xE5\xFD+j}#\xFD\xC3rjcW
+\x8D/U&gt;\xBAbbxb\xC1\x95\xF1\xBA\xD2b\xEB\xE2kK_\x89m/\xDAo,\xDDQ\xF1V\xF8\xAD\x98'\xA6.i\xDF^\xA1\x8C\xC9}\xB4zvs\x81\xBC\x88
+kMX\x9D#F\x83\xE5ŹU\xA1\x8AhEy_\xDF%\xE1{|\x8Bs\xEE ߕwWlQ\xC9*ߪ\x9C\xE5\xE1ey+b+K֣\xA7\xC2\x85\xBF+\xFF3v.~\xAE\xE4\xCF
+{Iiy/\x8A1\x91\x80#\xE4\xF4z\xF4^j\x93AG\xC1\xF0۬\x9A,k‹:\xC6o*  E\xA1?h
+2^E\xF6\xE4jµ\x9Bq\xB3@݃\xB98\xDFO\xC3\!\x8B\xAC\x8DH&quot;7\xFB\x96.\xA0\xE1M\xD3t\xA0\xE5ܹ\xB6S4l\xAAʧQ\xD7v\xAA\xA2\xC8R{6+\xB8x\xB8\xE6\x94\xE5k3\xF4ӌ\xF9\xC2\xEC[\xF7\x9E\xB7\xEDk#Č\x8E8\x97\xE8\x{DB74}h\xAA\xF2&amp;:\xF9\xAAp.y\xD4B\x948\xA1\x88ӢDo\xE3\xAA\xE2\xB4(q\xC2y%zS64\xA1(\xD1\xB3\xA0EX
+\x8F/\xD2\xD2\+\x91e&amp;\xF7;\xF2x⢋t\x92/\xB3r+@\x8A\xA9\xFER-\xD6u\xD2`r\xED\xCC+JF \xADtW\bW\xF3&amp;\xA5\xA1_YI\xE8\x81^}&amp;u\xD5+\xB4fӮ\xA7\xE5O:ڡ\xDE\xEE!Z\xC1\x94ϛt\x95Y\xB0\x94\xA8\xB5Z\x89Y\xAF\xE7q\xBF\xD3T\xE1\x93\xCF$I\xFE\x96|\x9AL\xEC\xAC\xF6D\xCC0\xBD
+ZE\xA5\xF8\xF1ȝڛ\xB8Lpw \xEB!\xE2U&lt;\xB9\xE0\xBAF\xAE(\xE8W0\xD2:\xA2`\xB60;rc\xF1=\xC5\xEBC\xCF q}$\x89\xFE\xD0B\xA0T\xD0\xCB\xD5\xDB}cd\xBE\xAB!r\x9F\xEB        \xD7\xC6\xC8;\xC2&gt;\xF77\xE1,\xE7\xAE\xD4\xEFH\x814\xFF\xD6B\\xFD\xBB\x9C\xB7.!vK=шו\x87J28&gt;\x8A\x9C\xF9yT\xE9\xF3\xA8\xBE\xE7\xE5\xC9!D\x84B4Fs\xED$7\xA1(Y\x9B\xC8B\xF0 N\xAE\xC8oG\xF1\xDA6׾\xD4x\xE7\xC21\xE4Y\xEB9\xE49\xE3a=Mđ\xD0h\xCE\xE7\xCEp\x84\xB3\x94\xF5\x9Bva\xFE\xBD\xB6\xFET\xED\xA9Zq\xAD_%w\xAE9\x837\xC4y0\xC4\xED\xF0\xBDs6\xFE\xBF5;e\xB3\xF3\x99\x98}\xB3K-섀ݝ:\xBB5\xAC.6\xBA\xC0?m\x8E \xE0k\xDAg\x8C3!;]\xE6\xF3\x9F\xC1\xB6\xCCx\xAE\xF6u\xAC\xA1Eح\x8F~2\xF5\xC8y\xF7$hk\xE6\xEA\x8D3\x92\xBF}}͖\xC1\xE6$\xF7e\xB2߅f\xEB\xED[G\xAE)\xEE\xB6\xFAWJ\x9B^-2hZِ\x87\xEED\xA2\xEB\xD5M\x84\xBA]jXT[t\x83q\x81q\xA1u\x91mI\xF9\xCAʾB\xEFĆ\xEE\xCF\xF48b\xFA\xC6\xF4\x9BIf\xA3\xA93\x97\xD0u=5\xE1D\xB0k\xABY#\xD1#\\x9A]\xF32yq\x9A\xB5ת,\x81\xCAʸ\xD6_\xADZ\xCC\xE6-Ή\xFB\xDD\xD5 n\xC7-&amp;\xEFK\xFDc\x9D3\x9C\xC4i\xED\xAD\xF7'
+\xDE@\xA2\xFB\x8C\xE0\xDC\xE0\xD2\xE0\x9A\xE0\x8BAI\xD0\xD2\xEBѝ\xD8\xD5i\xFDƩf\x8A\xE9\xF5\xAF\xE9\x8C~{J\xBFM+.\xEFI/\xE31d:S\xA3\xB3\xF7X\\x88yQ\xB6&gt;={\xEE$4\x9CYr\x91\x99uO\x9Fر\xF2&quot;G\xFC\x8A\x9D\xCC\xF24\x92\xE3MX\xB2\xEE\xAE\xC5O\xE6]Z7yc\xF7\xE15߼q\xF4NJ\xD6\xF4\x91]\x8F=\xF6R\xEF^\xB1\x87?=\xFA\xA3\xE7\xD9nvʝ\x8F\x9D4\x81\xBF`\xE9\xB8\xC2ˋ\Z\xBB#\xA7a̲\xFD\x8Bb\xF4\xD0i\x9A\xDB\xFD\xD0c\xD3z\\xE94X\xBD}\xFA̿\xEBU\xE7,\xBD\xAE\xBD\xF9\xBD\x89\x90F\xA1.\xA6        I\x8F\xDDUBS\xC6D.)\xA69H\x9D\xC5X\xF1\x8F\xC5\xCB;\xB3\x83Y\x9A\xF0\x8C\xED\xA7u\xC2O@5!p\xF6|{\x9D\xFD\xA0\x9D\xD5ث\xEC\xEDc\xED3A\x9B^\xB4\xB7\xCB\xED\xDF\xF9_\x9F!.\xF9\xAC?[\x99\xC9e\x89\xCE\xF7\xA2$\xE1_R\x86\xE1\xF6D\xE1\xF9
+Y\xF6\xB9\x98\xF7\xE3\xBEϓ\xCFP\xF20\xCFS\xF2]\x98\xF6H~A\xA5ߐ\$\xEE!B\xA3ﲱ\xF3๫IQb_\x8C+\xDCe\xDE\xE2\xEA\x84z\xA0q`^\xF7\xB2\xC1\xEA\xB1\xC6ڼ\xC1e\xE3\xD4\xD7\xAF\xC9W\xF6X޲\xB2\xA7=M|\x93\xBB)\xDET\xFD\xFF\x8E\xFB\x9D\xF8;՟\xA2\xE3?W5W\xFF \xFD\x82\xE1&lt;f\xF8\xD9B\xCCWk\xF9j/\xE7\xF1r\xEExQ!v\xC7\xE3\xD5&lt;\xCF;\xDDq\xBD\xDB/\xF4r&lt;\xE7ąz\x8C         \xD8.\xA0        (u&gt;\xE0k\x8F@u (t)\x84&amp;rc\xC2vK)\xB7ʻ\x90\xF99\x8E\xE3\x81\xEAꪲ\xB2*\xAF7//\xA7\x9A\x9A*\xBE\xAA\xBB\x84 `,Q\xAB%\x87\xDAht`ڭ\xD5H\xF2%U\x92\x81\x92\xB1\x89\xC4ګ0\xE0\x85\xDEm9\x93p'z\9\xD01\xD61\xC3\xC18,=w\xE1\x808\x85bH\x8B\xBFe\xC0Ys3w\x96\xCE\xFBS\xB0 8e\x8B\xA4\xFF,\xD46уb\x9F\x9D\xB5E\x95\xA7\xB9sA\xFD+u\xA1N\x8E\xA6'8\x9A\x9E\xE0hz\x82\xF3\xF0\xCE*.;\xCB\x85Z\xDF\xEEi\xE8E'\xAF\xC5e/|\xEA\xF0\xB8\x90\xF8\xE1-p\x99\xB8\x87+y\x8A\x85\xE1b\xB1
+\xD7\xD3\xFD\xE6 Bq
+\xAD\xF8;E\xA9_\xBAlS\x95VQ\x9EVb\xA0`i\x8A\xB5:\xE8r\x9B\xE1`5-8\xB3F\x9F\xFE}\xD8\xC2\xFE%\xD8k\xB3\xC1\xC7\xE1\xCEк_&lt;\xC5}QG        t\\x9C͸\xB8\x83\xAC\xC4K\xD3\xE8\xF0WZ.H\xAEOnX \xB6\xCF\xD2ThnH\xDE\xED\xA2\x{DBE9}Ў\xC1=q\x8F1\xB4\xF6
+\xED\xC8𶶎9\xF1W\x93=\xD2\xF5l\xA3\x940\xF8ێ\xBCF-^\xD7)0\xA0\xED\xA0Ě\xF4BT\x98\xB5U6
+\xAB\xD8\xFC\xFC\xF4Z\xE3 ҉\xECW-\xEB\xC4tB\xAD\xCBbi;\xD8q=A\xCB\xC0\x86c\xE6\xA1\T\x82\xC7'?+{\xD2\xF5l\x90\xF9]]\xD8ٺ\xAC\xD7\xDB\xE6\xE9\xE7[\xEFׯ\xB0n\x94\xAD\xD5?i}!\x9B\xEC\xE5\xECM\xFA\xAD\xD6\xCE\xFD\xD9g Jl\xC1!\xCC&lt;\xA2}\xC0Jn\xCEk\xC8[\x95\xF7l\xF6Ƽ7 \x8E|] \xCFO\xFBB\xC2\xEA\xCFw\xFB\xFD\xB7'\x97w\xE8L\xC17*        b\xA6H\xAD\x88\x944\xE1\x89\x91\xF8\xEE\\xA4,r3*\x85\x9B\x82\xC0\x99&amp;\xEC\xA2V\xE7\xEAWsn\x87\x8C\xC8B\x82\xE0N\x80\h\xDC8\xDF]\xE5\xE8\xEB^\xE3~ѽ\xDB}\xDC-w[\xCBLKcn)=&gt;C\xBAF\xBA[z\\xCAJ-\xA5\xA1]\xE7}:h\xFB\xE6\xB2\xF42\x8Bt\xB7}!_~m3\xCDË\xEB\xBF:|@\xB9\xB6\xFC\xE2\xD5\xCC\xFD-\xAF\xBD\xF0\xE6\xEF(\x9E:\x83\x8Aa\xB3\xA4\xCEn\xE1\xE5y\xF2L\x82\xD5\xD6g\x92\xF2z8ur\xC2)\xBA\xD4z\I\xAD\xBB8\xB3&gt;\x8B:\x8A\xCC\xEA\xBC\xF6\xE5\xD0\xE9QF\x94\x98\x80x,\xBDL\xAB\x94\xF1ҡ\x87\x9E=\xF1I\xC5\xDD\xE7\xCD\xBFIPp&amp;e\xF6\x84Ճ\xD6l\x9EI\xC5\xE7\xCD.w\xF5}\xE9\xCA\xCBn\xB8v\xFA\xAE        sY9\xE3\xA6\xED\xEE\xEE^\x93˕f^\xAB\xD4XC\x8FNh;,z\xEF'\xB4\xDC\xC0.\x97_z\xD5\xF0\xB14\xFA\x88\xDF&quot;;\xCAžMY:\xCA+\x97\xAF\xE78\x9Dޓe7ҶΒo\xB0X\x8C\x8F\xDD)c\xB0J\xA8kUMx¶\x80[!\xB8\xC1.MH\x84;B\x8CL\xA1r\xB85@y&quot;\xB5\x86\xBCC\x90Z0\xE8\xE9R\x8D~\x86\xFE\xB8\x9E\xD1[\x82c\xEE\xED\xCCʄS\xED\x81]}\xE2\x98\xA1f0C\xA72\xB3\xFFiiy\xFFFu\x86\x89!S8\xA6\x8A\xF9.\xC9\x96;1w\x83g\xBD\xEF%\xBCC\xF5\xB2s{\xCE^\xC9~\xF9a\xF6\x98\xFC\x94\xE4{\xB9\xD6\xC8\xE0BIWU5\xA8\xEA\xEB\x86\x87Jje\xB5\xAA\x89x\xB2d\x9A\xEA:r\xB3\xF2f\xE7\xD7&quot;\xE7N\xD7+\x9Em~#X\x913\x9BU\.\xE0\xB0MNczMu-\xAE\xAF\xC1Z\xE0\xA4N}\xBE\xF7&quot;\x86;\xAD\xABá\x87?i\xC2\xD2俶[\xFEf\xA7\xB9\xC6\xC7&gt;\xBF\xFF\xFE\xCF\xE9\xC6~\xDB\xF6\xD1[\xC9\xDF^ߛ&lt;\xF3\xD6zq\x99{71\xF8Κ/\xBEX]\xEB\xDC\xE9\x9ABg\xB6\xB9\x95z
+\x9C\xA8\xBCm8\xE6\xFF,\xE7\x84\xEB\x84\xFB\xFF\xF792\x9F!\xC7\xD8S\xE0\x903T\xA8\xF5\x8F̙\xAA\x99j\x99\xE2_dQiba\x96N_\xA3f\xB8\xDA?9\xE7\x9CU&quot;\xB5Z8\x835\xC8y\xBF\xB5\x81[\xC5=h^a]oX\xE7z\xBCVc\xD1\xDB\xC4\xF5\xBB)\x8D\xC2\xD0\xDDZwP\xA6\xDA\xC2J\xEDO\x98\xDC^Uvy\xCDZ^\xE6\xDA\xE3&quot;.kD\xEFP&amp;\xAF
+`\x9A\xA8_`\x96\xF0\xDEN|mg\xBCj\xEB\x9CM\xAFq\x87\xEF\xA9\xCC&lt;\xD7\xF9%i\xC0E׹\x82y\xA7P\xB7rI;C.c\xE7\x95^*\x8EC\xC4ļIg \xB1\xB8*B\xFA\xE2\xBB^\xFF\xF8\xD9\xF1\xFB/7pZӤu\xEF\xECO\xB6`\xD5\xFEט,;ՒW]V\x93\xED\x92y\xDF?\xB4\xEEp\x9FAz\x936\xDC\xE3j̼\xBD\xAB\xA9.\xDC\xD4\xDEH\xFF\xAB\xD0\xFB\xE4\x{1BE86B}B\x84*/\xA4\xA7)\xF2\xC5X\xC5#w\x9Aig\xCB7\xD9lf\x93ǩ4zr\xB5JP\x83-\xB9n\xA07\xA8\x83\xE0q\xEB\x9DH\xAD\xD2\xCB\xE8\xFF\xC83\xB9\xC2&lt;\xFA\xFF.0\xB6F\xFC\xEEy\xE6\x9A\xF0\x92-\xE1м\xF65`\xF5\xFA\xD0@\xA3R\lx\xE9\xFC\x9D\xA5z\xF0\xF7iɂX\xFFFcF        \xB6d\xCBy951\xE7\xF5b
+\xA5~\xDC,\xE8sv\x82\xAD
+\xA4\xBE\xDD\xE2\x95\xFB,6\xAA\x88yE{\x94y\xC0\xD4.ʝ\x97\x88\xB2$mb\xEE?y\xEDs\xE6|0\xEB؃b{\xE6\xA7+\xFC\xF4\xD3W|\xCA~\xDB2\x9Dږ\xA7ߙs\xE2\x86\x8F\xDF\xF4\xFE&lt;-\xC9k\x8F[K%\x99\x88\xF3\xB3\xF9 \xC9$\xA0C\x89)J\xE3J)$=\xC8\xE5dy\x8B\xBC\xA5{\xD7\xF29\xFF\xB9\xE5\x98\xED\xE6\xAF]\xB3,\xF6\x90=Nʜ\xFDl\x97\xBAF\xDBF\xBAfئ\xB9n\xB3-\xB1\xAD\xB4\xAFt\xBE$\xD1\g\xDCi\xDF\xCB\xEC\xE5\xF7\xD9\xF79\xA5\xF27\xB5VA@kn\x93\x8CukU\xEA!\xD6.k\x9E\x89\xE8k\_'L\xA1 \xEE\xB2V\x8Fg\xE8w\xEB\x82)b\xF5w\xE8\xB9N&quot;:\xA0Y\~\xD7|\xAA}\x{DBF8}\xD4\xEA#\xB3٨\x97\x82I\xD8jӻ\x9C\xA4)\xF5c\x87\xA9\xC7\xF0\xE76/Z\xB2\x93\x96L$KO\xA4\xB2\xD1\xD6g\x8C_o\xF3~w]6g\xE6b\xBF\xDD\xFEi\xF28ּ\xF3&gt;V\xB7Y\xBE\xFC\xB0?\xBA\xEE\xEDnE\x8BV\xCBǶ}/\x81\xE5\xF8\xE7\xED\x8B_x\xEE\x8A\xE6?T;$3\x8E\xF6'\xFC        \xF5 \xC9&lt;ɝ\xEA\xDB ֪7\xAB\xB7\x86_+Mr\xF9\xEFp\x9CG\xCFC\xB8\xA0\x89\xB0\xDB\xF2\xE4\xD4o‰\x84\x83\xE4\xFAr=\xC8_t;\xE2K^\xD4,Uȕ\x90ń\xB2E\xB0`=(\x8A\xE6\x8ADV\xBE!a\x98i8d`
+\x96\xE2\xEBv\xE0\xF72K\x88\xCB8*\xB9oD\xA8_IC\xE06q\xFCE+\xD1j/Z\x92\x96
+ۀ\xA1
+ۂ.\x8C\xC28|\xFB\xED\xBBv*\x99W#ίf\x97 퓢\xF9X\xB4\xA3m3h\xB9;-\xB7?w\xEF
+ \x8B f\xBD\\xF7\xD0U\xD7܀\x89\x866\xAB\xED\x92v$EvPy\x9C;u\xB5Qn\xE4yc\x9A\xD6k.\xED\xA1Zk\xF26\xF66\x90\xCCT\x84\x9D\x89\x82^\xFA\x99zr\xCC\xFD\x91\xFFG\xF7)\x8B\xFB\xACOzupztB\xFE\x84\xA2\x9B\xB2n        \xD6-        \xCE+z4x_\xD1\xC6\xE0ڢ\x9D\xCEl&quot;\xA7\xD6`\xBCh \x89\\xE1!\xC8.0 \x9CI^f;\x97\xB8e؍\x96d\xF7\xA5X\x8As\x94JN\xB1VѨ`4\x8A\x81\x8A\xB1\x8A\x85\xB58\xCF=ϻ̻\xD6\xDB\xE8ew{zOx\xCFxY\xAF%w\x81\xB0\x8Aւ\xCE:3\xC0\4W\x9D\xA2&amp;\xB5\xAA}u`\xF9EF\xA2\x93\xEFB\xB6\xD4YdM\x9D\xDD\x92\xFE}\xB3S\x8Eh0&quot;\x8F\xD1]P]D;\xA3\xC6\xFC\xF3里\xA0S䂋\xDBM\x86V/\xCB&amp;\xDE\xF3ﬔ\x96S+B\x8A\xE3|Q\xE1\xAB\xCBoO\xFB&gt;\x9Fy\xE6\xE8\xE2r\x8D_\xFAݐc\x\xE4\xF9\x96\x96\xE7\x8F,\xDC\xCF=\xEF\xBE{\xCF=\xFB\xC9;\x8F\x88cǐ\x911\xB9\xE2:\x80K\xFB\x86\xBA\xB7\xEE\xC0x\xDB6\x8C\x92\xFDx\xEF\xC0\xF2]
+\xBA0t\xA1 _\x9B\x88\xAE\xB4\xB6\x84\xC5&lt;Qz\x9Dt~\x80\xAC\xC5O\x92F\xBC\x85(\xD7K\x9F\x92m\x95l\x93\xBD%\xFBTv\xDC*\xB3ʵ&amp;\xD1nk\xF4.=я6\xEB\xF5&amp;\xB3G\xCCOdt,ɏy\x82\x9C2m\xEF\xB3p\xD6hEV\x96R\xE1\xE1\xD2\xF8U\xE5\x9D\xC1\xAFe\x85\xB4\xED-\xCE/(..,\xF0\x94a\xBA\x8E
+\xE6\xE6\xBB\xCB+\xE3\x94r\x85`9n\xC6\xE0'\xD6%T\xC8-\xEC\x8E\x8C\x91X\xFEaK\xF9%\xE3:V\xFER##jT\xC6\xE4\x8B\xF9%my\xF9\xFF\x97I\xA9 \xB5'Eqj}C\xD3y[\xAD53o
+\xC9Ym\x99\xD4o\x93X\\xD8*\xB3\xA7U\x92\xBE?v&gt;/\xB5ISg\xB7        j\x97&gt;\x8D~j҉\xAD\xB8L\xE4&lt;F\xEDP\xDD4\x8E\x95\xFD]\x82
+_&gt;h\xF9\xA8\xF1\x8BF\x8F\x81\xE0Õ\xFCY }\xEE\xBCnt\xF7\xFCi\x9DW\xF2\x88\x9A
+\xB8\xA8e\xF8%\xBD\x96l\xFBW\x87\xFE2\xA3n\x8A
+7\xB4\xFD\xD8\xF1F\xA0\x95@{_i0J\xB4\x88;7\xF2X
+-        \xCB\xE5\x96        \x96ٖ\xBB,2]7B8V\xAAV\x8C\x90H&lt;j\xA3ݲ\xC28\x96y\x934\xE1\xB6ۥYj%»\xF0X\xB8\x9E@\x92Ͳ\xC10P\x8F\xF5\xC7\xE0\xB9\xE7{pm&quot;\x97*\xAB\xCE5_4\xB5\x8B:\xAF\x852x\x8BuYӑ!Yv\xCB\܏&gt;w\x9BY̿\xF5\xFB\xCDi\xB3\xBA$\xDA\xCF&gt;Kn\xFD\xB5\x93\xA5,Cm\xFEnx\xB2\xE5 \xE7Ťi
+#\x8DYUA\xBA\xD2O\xAF\x{1C907C}\xAA\xEAJ\xDDS:\xB27\x8EC\xFA\x90?/\x8A\xE7\x97\xFB\xAA\xFC]\x83U\xF1\xA9\xFA\xA9^\xD5d\xF6\xEAJt$\xAC\xFC\xCC\xFFY\xFCG\xFF\x8F\xF1K\^ᯈO\xF5M-ި\xDF\xE8\x95\xFA\x8A\xBD^\x946d\xAA+f\xA7b\xBF\xB9\xB0\xCBEo\xAA\xE6\xAA\\xE2rv\xC0\x9E\xAE\xD1^\x97\xCB\xE3\xF5ؽ(Z$\xEAK,\xD6;\x8B\xC5=\xD1x\xB1V%\xFEPv\xBE2;[\xA5\xF4hm1\x86И]fb6\xAFԛ\xCD\xBDǦ\xD7E\xB4\xFF\x92`p\xB4? \xF8=\xBF\xCF\xEF\xF3        \xC5q}qqܫ\xD7\xF1:y\xF5y\x91\xAEا\x97x\xB1\xA7\x8B\xDDn\xE8b\x93\xBAD\x8A\xBAD\xA3\x91Qu\xE1\xB5H\xDE\xA5\x9E\x91\x8A^\xEC}\xC4\xEFZ\xBC\xAFE~\xE8ɚ\x9F'B&lt;\xAF\x8B3q\xAA\x8F\x8ERx?\xB0\xBF3\xF3\x84S\x8AT\xA8%\x96*,%\xBB𣈾8\xB1\xF3b\x8Eji}\xE6!\xBA8\x9FN9\x8B\xBAz~!\xAA\xA9|!\x9B\x97\xCEn\xE8R\x87\xB78+\xE9\xA4\xE0\xE1-\xF6\xD2\xF4\xDER\x98ޛ\xA2\xE2~\xF3\xF9e\x98\xAE\xE3\xDF\x97\xDC\xCA]\xB8\xB0\xFF\xE2\x85\xFBQ\xF9\xBF?\x949\xFF?.\xE8ХNl\xB1\xFA\xE2zq\xA6S\xD7Q{:(\xBA\xB2\xA33\x86\xF4\x86\xD4\xCB\xFD;S\xBFB\xBC{\xAE\xF3
+28\xCE\x949\xEB\xF7-~K\\xE8X\xE1L+\xD3\xE0\xE7={\xC7jwG\xFE\xE4/)\x97\x97;\x85Ko\xE2IaQ]\xB2\xA8\xEA\x8CK6\xE15\xE3\xC4T\xF6\xDA\xDB%\xF9\xBE&gt;\xD9\xD0)x\xFAG\xA8\xD1z\xF2\xA7dMG*eh\xD4.\xD0(=h\x94\xD5&amp;\xE2\xE3
+\xB3 w\xC0\xFD\xAAGP\xD48i\xC5H\xBCٰB\xAB\xF5\x98@#\x84-\xC7
+\xE4vs g\xB1t\xB6\xE2\xEB\xCFo\xFE\xD6\xDCw\xA1\xF8\x95Z\x80v\xF0\xDCɬ\xC1X
+\xF4M@%\xBDI(Q\xA9)Քe\x97k*4\x95\x9A\xAE\x9A\x84\xA6Z\xD3K\xC1\xD4%ꭶ\xCD6\x97`2\xD4&gt;^6\xDE&gt;[6\xDB.)\x91\xDA{\xC9zه\xCA$1yiWQ?\x8FW\xE0\x8A\xDE\xDD**\xBAv\xF3\x944\xB4\xCB)\xF0x\x88?\xC1\x9F\xE1Y\xC4s|\x82g\xF8\xDE\xD9&lt;\xAF\xC9\xF6\xFC.\xD1U&quot;\xE7!\x9E\xDEN\x8F\xC7\xE5\xF4\xF8Kb\xE9\xCE&quot;\xAE\x88\xF5\xCE/*\x8A\xE5{Jz'h\xE7\xA4\xE3ո\xBAwUuu\xA2\xCA͗:y\xD1\\x87]\x8Ae\xA1\xD2D\xD4[r3V\xB7B\xC1\xC8JKJ\xFC~\x832+[0\xAE\xE2\x98q\x9E\x91[\xA7\x90\xA0\xED\xC0\xBC        \xB4vC\xF9BU7\x9A\xCAA\xDDvw;؍\xE9f\xB9$\xF4\xBC\xB9S\xD6*\xE1ʎ]zf\xA6\xB2cA^{\x9F/G\xE3/\xFFc\xEB\xAF \xA3ڵFJ\xAD\xB0\xE8N/v\xAB\xBF*\xE4\xCD\xA5\x9A\x95\xA8\xFCA6Dž%R\x8B\xD2\xE4¹\x92\x90 \x9B\xD5VW\xFA\xED \xFA^\xA7\xF8r`m-8\\xDB\xF9ś\xCA\xD4O\x88\x85M\x96\xFA\xEE\xF59\xB8\xEF\x8F\xDA\xD1N\xBF1(\xA3#\xB0vW|Þ\x8Ed3\xEC\xC5\xE0Z\x9DA\xCC)\x89q\xDCy\xEDզ_(\xBE\xB0\xDD\xC9W_\xAC\xA4\xA7\xAF\x9E\xD6}\xBC\xBBlVŨ\x92Kĕ\xEC\xAB.+ʛܽ\xB7XX\x8Dt\xAD\xBB\xBFW\xAD\x88Uf\xFC\xD0Y\xBDz\xF7\xEE\xD5\xE5ґmۨ4\x93\x87CzMj\xFBH\xAC\xDFW=\xDC\x9C\x98n\x9C\x87\xE3 \xE5\xD3@ʇ\x83\x94\x97ᅉ\xD2#\xD2#r\xB2W\xBAWN\xD6\xC97K7˙z\xD9&lt;\x99 \x9B(\x9FhcV\xD9\xD6K\xC9ͮ-x+a쮩.\x820K\x88\xF45\x8D\xEA .1\xF4\xB6 f\x8B\x87\xBFե]R6\xFDW\xBD3^)\x8D\xEA8\xE4\xE7\xFC\xE4&quot;h\x97U\xDC;
+\xED
+\xBB\x94I\xF1N|        \xD3\xEBnV(\x8F\xE7\xB5J\x85R\xB0\xB7` u(\x9C\xF0\x96\xC5\xD6\xC0\xB3Ptw4d\xB0]Z8\xDB΂\xB3\xF8o\xB0\xDC\xFF\xB2\xD3\xDB\xEC\xB9L.\x95\xA9]g\x93;\xD2\xE8.$\xA2;[Ǭ\xA3.\xFDr\x93M\x9F\xAFz\xF1U\xA0\xDAZ\xC00%\x99\xD0\xEB/\xD2q\xA1\xFD\xE0
+qoM\xDD\xC0\xB2Q\xA2&lt;\x9C9\xDD1\xFD\x8A\x9B\xEA;㻌\xAC̭\xE9t.\xEE\xDB\xF6\xF3y|Wss\xF5\xFC\xB6_.\xC0w\x{1E53B3}\x95 !*d\xC2}e\xBC\x915\xEAMFfާ:B\x8EJ\xBE\x90QI\xAF\x96MђId;E&gt;E95k\x9Av\x92n\xB2Inp3\xB7\x82Q)dj7ߐ\xB0T\x89\xFBl\x93\xB8Od\x8A\xE6P \xD5\xFCk&quot; f\xDE-M\xD0\xF7'p\xCE \xE9n\xE9A\xE9        \xE9\xA9Dڄ\xBF\xDAbԎ\xDC\xC1\xB95\xB7\xD5\xD6S\xD0LS\x97\xD4\xEE\\xB0{2B\x98\xA5O\x9D\xDD\xCA\xE9\xB3\x{166769}\xAF\xC0\xE3~\xB5%˩u\x9E\x8F\xA8j\xA9\x97!\xA8\x8Ct\x89\x9A\x9EZ\x9A\xE0\xD3i\x9CU*=r%2Zh\xE9\xCB\xCE@|2\xBD\x8A\x87\x83P\xF5ZS7=-tz:\x9DєڛࡢTX\x93ӂ0W%n_6\xD4\xE9%a\x9A\xBDl\xCFPt\xCE\xF3T&amp;\x9B_ߛ\xFC        \xF3{_Ǻ\xA1'׮=I7\xFC\xE2\x9E\xE4\xAC\xDDM\xFF\x8D˙\xD7\xFB\xF2\xF8\xA3\xABO\xA7\xB9c\x88\x9C\xA9\xF6\xD2\x{1FF8C9}\xAA\xA5\xA6&lt;\xB6\xE2\xE8`&lt;\x94\xD4fM\xC4\xC0\xE9\xD5Y\xB3\xF1͡k\xF3ToH\xF7(?\x93}\xA6\xF8&lt;糂o\xA4_+\xE5&amp;\xC2\xDC,[¬d\x9Ec\xA4F\xBB\xA8\xB2\x96|\x87\xC5bwx\x8Ci/\xA5\xE2߹\xC0%u\xF7\xE4g\xBC\xCE
+\xE6k\xBA\xEC]@R\xB3\xF3\xDD*eЍ\x97\xB32\xE4\xEA\xE2\x97\xDC9\x96[\x8B&quot;([pj\xE991\xD6a)\xEC\x9C~\xA1]{\xF2\xB9\xB9R \xA1\xFF]\xFD\x9F\xA7\xF2;'\x88r\xD51:\x91'\xF2\xB3L\xB9^\x90\xFAbS\x8E\xF7\x82\xA5\xF7\xF4}ϴ\x96\xD1\xFCM#\xFF\xADJ]\x90M\xEE\xFF\xDCu\xB7|8+\xD9\xF6\xCA\xC9%\xEF\x89*5\xA3SR\xF9я^y\xF8\xF0ʇ3\xE3W\x8E=\xFB\xE0\xB5ے\xA9\x97\x92\xD2\xF4\xBC2\xE0\x8A.&quot; \x9Ar\xDF\xC1C\xCB\xEE;\xF4\xFF\xB4w\xED\xF1Q\xF7\xFE\xF7;'\x9B\xDDl\xB2\xEF\xCD&amp;\xD9$\xFB̓\x85BB\xBB$\x9BHby#\x89\x80\xBC\xA4\x80\xD4\xCB# ^\x83\xF5j\xB1A+\x8A\xC2Zmk\xE5\xB4I\x80\xC2\xF5\x85Z{\xABxﵟj-\xD8޶
+\xD7W\xBDE\x92\xFB\x9D9\xBB! \xB4\xDC\xCF\xE7\xFEw\xB3\xB3ߙ93sf\xE6\xCC\xFC\xE67\x8F\xF3\x9B9\xA7\xB4STnVW\x833\xA4F\x9Dw\x9Byp\xD2\xE3m\xF6\xB4?h&lt;\xF1\x9F\xFA,m\xD2\xEB}%6\xD2\xCFL\xEDV\xF6b`\x8D&amp;\xC5\xF0\xA1\bB\xC1\xF8\x9C\x82\x82ܜ@(\xD9\xEC\x94\xC7+\xEA\xF4&amp;v\x90\xD3l5\xE6\xE4\x86)\x94h\xAC\xB2\x82qb\xDC.\x86\xEF\x99F\x8B\xFE\xBC^ѻ\x87\x90ӗc        N j\xCB烉\xC1\x8C\xC1N\xEF\xB7\xDDK\x88\xD6j\x92\xB5\xF2\\xB9!6~@\xDBF^\xAF\xB8\xC5\xDFd\x98\xA8&gt;[\xAC\xFA9\x9Cf\x97=+\xDE\xDB\xC6j\xE8\xB2\xED\xD7Z\xAER\x94g\x9E\xAEo\xBC7\xC3a4;\x82\xA5\xE5[\x8F\xF1J9̻]w\xFEB\x8Ax\xAA\xF3\xDEzl\xDA\xB7sҠ\xBBiWO\xA9\xAC\xBB-M9\xEB O\xF5\xBE\xA7\xF6\xA05\xD5\xF1E\xD7;\xAB\xB2\xAA\xFB\x8D\xD4L\x8B\xEBv\xFBv\x97\xBF\xE2uǫ5\xBFq\x9Cv\x9D\xAE|\xB7\xE6O\x8E3\xA5\xA8\xF9\xCA\xF1Y\xE9\x975\xF6dG\xA2KW\x99T\xE3u\xA4\xBAR+3k\xDA\x9BK[\x92\xA7;n\xAEX\q[xM\xC5=\xE1+ \xFF\xD0\xD9\xE14&gt;&gt;\xE4U&amp;B\x85\xC1\xBCa\xD1ёRw\xBAŬOMI\xA5%C\x83        E#,\xE6\xD5H\xAA-#&lt;z\xB4\xDF\xE6\xAF5vr\xD9A\xD5W\xC4E\x9D\xFCx4+o\x84\xDFOa\xFD\xB4\x91\xFE        !|\xA1z\xDCc\x86M
+\x86 S\xFDQ\xC1Q]\xE0\x9D\xD1楅\\x98Q_\xABW\xF3\x8C\xFE\xE4[b\xAB\xDC\xF2E2k\xAB\x88\x92[}\xB2\xA2\x8Eg]\xC4\xD9O#\xB6Ʈ\xAFQQ^c\xF7e\xE5:r\xD3*S\xBD\xCE\xE9\xE5r4{
+.]U\xE9^JK\xAF=*;\x82~\xCF\x8ETxGx\xC9Ym\x93\xC3.\xD1        kZ앯\xEC\xE3\xB50\xEC,5f\xE9\xFD=\xA5\xF5\xFE\x99\xEA0\xE5\xA9t\x96\x83\xE5\xB8&quot;Y\x97V\xC1\xE4\xD1
+\xDA\xCB\xE7
+\xF0\xE3$ Q\xC3Nh\x82;\xA7[Sq\xADN\xB0\xE3:'p\x9D\xD3\xE5,JF\xFA\x99脜B\xEBǎ\xD1\m3\xA88\xC0\xA3\x9F\x80\x893\xB1\x9F\x80ɥ\xC3=\xF2\xF3rb\x80\xA9wk3\xF1\xA4b\xF2w6\x8C\x8F\xFA\xC0\xBE\xBA\xB9\xB3\xDF8q\xA2Րj\x92&quot;&amp;i\xC1'\x97&gt;\xB3s\xD2\xE4\x9E\xEBo|\xEB{{\xD5P6(u\x93\xC7\xEDʈ\xE4W\x8C \x95E
+\xB2,\x8E\xF4\xE0\xDD7,\xF9\xF1\x82\x80\xD3\xEC\xF6\xEC\xF9\xA6y\x87V\xAD\xA9_\\xEC+]\xF9V\xAB\x98\xA1&lt;\x8A\x9E9,$\xCF\xE9\xD5h΅L6e\xBA3\x95g\x8C\x87\x8C\xCFe&lt;c\xD4\xDDa~\xC0\xBC\xD9\xFC#\xF3\xCBɧ\x93\xD3 \xAC$\x81WDS
+                zC\x80\xADΤT\x9B\xF8d\x90S\x97\x91R\xD8\xC9OGm\x9EpN\x8E&gt;\xCCL\x89)\xFE\x8Cd\xE7\xFA\x84N\xFEI\xD49x\xB0!ɗ\xE7\x99\xB2\xACY\xBE\xACeYDzt\xE8-\xCE&quot;&amp;\xE2\xCC1\xB9(\xFDY|3\x958\xA2J{\xAD\xF4\xB5\xA2\xDAj\xB4;Ә\x9C\xECN\xF2\x9213\xC5K\xDAj\xB4|\xB97\x8B\xE3-\xDC\xE6\xBCrA?\xAF\xEC\xF2\xD5iW*\x86\x86RJ\xBF\xA7b\xD5\xF2i/\x97;M\xD6t\x93\xEF/˿\xB7w\xAB(\x8B\xCAP\xE7\x89\xC6}\xF1\x97\xE3\xE6
+\xF7\x99\xC4        V\xFEo|w\x95R,\xE5\xEEBQ\x8E3P\x8E\xCD\xEA&lt;\xCA'N1&amp;r).v,I\x92\xA7RR\x92 \x8B\xF6\xDA)9s|\xEC\xB5S\xBE_\\xC7֌\xF1\xE5\xE4\xF8}\x81|vY\x9C&gt;\x98\xF2\x8Di\xE9a\xAF\xC7c1$\x85\xAD\x96D\xA7_M\xF6\xF9\x88\xD2\b\xBC\x9ATh\xB5\xF9 \xA7\xF4\xACˑW.GF&quot;\xDAQ\x91\x8B\xF1=*\xE7y]\xD48\xBB\x8D9*\x98\xAD\xEF\xB2EG\xBB#!Q\x97\xEBH\xB0yɞ\xE8\xD4J^k\x86\x8EX3&lt;J\xA9h~.t\x9C\xF6\xDEb\xEFW\xE4\xEB\xF2\xFC~\xC5/\xEB\xA6\xFC\xD2e\xFCm\xF9\xBB_\xB9+:E[5X4\xFE\xE4.Y
+\xE7\xE4\x90\xF3\xAEm\xB5M\xAB\x8F\xAC\x8C
+\x93o;\xA2Y\xB5U7Qaq\xA2?\xEA ȳ\xA3\xC3v\xF1.\xFBn\x87\xEA3\xFA\x92}b˙\xD9g\xF1a\x94\xE6
+\xFB(\xC77\x95\x85\xB6\xC5\xCE\xC5\xC1}\xF4\x9C\xC3\xF5\xB28\xBBbo4\xD5D&amp;\xAB\xA9ؤ\x9A\xC6ˣ+F\x9B]\xEBD\xF1\xB4^\xEE\xB7d&amp;N\xAF\xD8+N\xAF\x98)O\xAF$)\xAC-\x91U\xA5kkd\xE3\xFB\x96\xC8l
+\xB3O;\xD1\xD0$\xF29\x9CN\x87\xC3\xE9\xB03c\x8Ba\x99ְQ
+\x93\x83ag'\xDFMv(\xE1b[\x95m\x9FM\xB5u\xF3m\xE4न)j\xE7\xA1\xF6\xA5\xF6\x9D\x98\xEE'؏\xF2&gt;\xD9\xF0k\xCB\bi\xEB\xC3\xCFf\xC5\xCEt\xEB\xDBJQ).\x96\xB4k\xAF~\xE6\xC4\xDF9T\xE2*\xD7Rl\x87f\xF9\x83_[~\xA5\x8B\xD2\xFEpϏo\x92K$r\xFFz\x97\xE6r\x91&lt;]\x80#b\xFDx\x9Aj\x92{DEu\x8E\xD5\xE6
+\xF1u\x93\xE2[1\xA8\xC9Z\xE5\xD1\xE8f\xAF\xCDkW\xEC\xB6\xE96%S\x8C\xF4\xBD\x819|\xBB}\xA9ipN\xED \xFC\x82\xF5
+\xFB\xFE׃\xAF\x97&lt;_\xFA|\xAD\xC5@\xE9\xB4%\xA0^M\xD4K\x8Aw\xF94\xF1.)\xF6\xE5\xD3ľ\x940\x87-aT\x81#l\xFBþ\xB0{X\xB8$\x9C\x86Մk\xC3e\xE1\xD2p8\xED\xCA/*ʯj֕vr\xD1A_\xEDSUV\xB1d\x99)D\xBC\xFC~WJ\x8A\x8E\,ļ\x9E\xB2\xE8\x96\xEA!\xDC\xFF\xC1\xA7\xF2\xED2\x9C\xFF\xA9\xFCfKvql0\xAB\xCBΨ3\xDD\xC6A\x89\xE1\xC4\xBBY\xDFw\x84Y\xBC\x8B=\xD3w\xC0K?i\xAFYB\xACK\x88|IѮ \xEB\xF7G\xE9\xD63qY\xAF\x98\xE9\xA6\xF4+$\xBD\xA4\xA6\xFBNQ\x\xEB\xB5+\x84\xB7vDŽ\xB7\xBE8`
+\xF31Â\xF9\x9B\x8E\xCCH\xE5\xD7Ŀ\xA2A\xEB!06\xB8O`̈۬!\xA5\xE5Rc\x81\xBE\xBB\xFAD\xBE4\xA6rȖn\xB2\x94\xEF\xEC\xFDC\xCC\xD84\xB9\x93\xFB \x9A\x84        \x92̓\xB9\xD1pq\xF8X,6\xA3+\xAD҆\xC6XY[\xED\xB1W\xB1\xD0j˳lU,\xB4\xDA\xF2L+l\xD0j\x9D\x96*\x9Aߘ\xED\xAB,\xB5@+qfdVZE\x8F^&quot;\xBAp\x98\xF6\x98Y\x8B\xB9\xD6\xABS\xAC\xBF\xBC5\xC1\x8C@\xF3 \xED\x9A\xDB6D7\xCF%\xAE\xBF'^\xA6\xBD\x89\xBF\x96xYbP\xD9\xC9\xF7\xE69-no\xCF'b\x8C\xD9\xD6\xD3\xD5sX6\x8D\x9Es\xB7ő\xC7\xF7\xF6&lt;\x97\xE3\x80\xFFY\xD1Rn\xE5LξU,3\x9E\xBE9\xFCR\xCFF\xBD\xCB[\xD9sB\x9Bq\x9B\z yo0H1S8\xC76\xADU\xA5\xB8 hU\x9B1\xD3ۂVU\xC2G\xC0\xA6(ݞ\x99\xFCie\f\x9B`\x8A\xA6]p\xFCw 9\xC9\xD1\xE8h,\xE2E\xB6;w\xD6;\xD6\xBAlG݁\x97\xEF\xCCh\x9A\xF6\xBB\xADġqK\x8F\xC9T\xDC\xC7&amp;3\x9Eu\xF6&lt;\xF0`n\x97\x86\x86\x897EC\xE5\xA83-\x9A\RT4\xAC$*q$i\xC2:ݓ\x9A(F\x93ت\x9B64\x8Dӊ\xE5v\xB5\x80\xDBQ2(G\xB8ޞ\x9F_\xCC\xCF\xCF        \x8E\x92\x9F\xB6/\xC1\x86\xE6+NS\xB2;\x88K\xE0a\xB71&lt;:{\x92`\xAA\x99\x99ΰۍ\xAD\xA6\x9A4,
+
+2\x93g\xA2GY\xE6y\xDFs^\x8CyK'\xEA\x98tV\x9DO\xB7L\xF7\xBE\xEE\xBC.Q\x971|P\xB7\xE4\xA8rryf\xD6r\xCC^\x96\xF7M_\xFA\xB1՘ċ8uI;\xCF\xE7\xEF,\xFB_/\xAB\x8D_Z\xAF \xAD7X#\x86\x88l*~\x8E\x9F\xFBxM\xF2\xBAb5ޯ|\xABgM\x86\xC7mJuI\xF9\xC4\xE5&lt;\x9D'/\x8FI/Z\x9DE\xFF|\x9F\xA4=)\xA6\xCCz\xF0e\xBB)5I2\xE6        \xCA~\x8D\x84@\^\x8A\xCFD\x8F\xFE\x88H\xFDԔF\xFF5\x9A\xC5B\xCCF\xE5h\xEFd\xEA\xFD\x92\x8C\x94 F:\xFAb\xB91`tI\x92\xA9s[\xAB%\xE02\xB3bW|&amp;\xB3\xD3d2\x9BR3\xBBLJ
+\x9B-&gt;JC\xEAKN1򬄰\xC5Xe\jT\x8D\xEE ׬\xA5)\x9C\x92\x91\xBEj]\xBF=\xF81\xB9\xB33}\xA7DǤ\x91\xC4\\xAC\x8E%KQ\xB4W7\x8AX5\xBB\x92&amp;8\xCC\xEB\xBF\x8A\xB3\xA8\xF4ˎ\xEB\xBC\xE2\xECNy\xF0c\x9A\xCD\xF1S\xF4\xFE2\xF6\xC7\xC5\xC5\xD5\xD3۔
+\xF9\xC2\xFB&quot;)+.~\xA1
+/\x8E^)\xF7\x816*ϯ\x96\xDA\xD76I\xF9\xF0\x9B\xABwN\xB9k\xB6%\xF2\xB9!I~\xF0\x9D\x9EΝ4W\x98\x87^\xFD\xC9_z\xDF\xFA\xEB&amp;\x9D\xDB¥8+\x95\xE3_\xE9߂@\xCFx\xB2\xF7\xAD\xDEM\xB8\xD0\xF7QϾO\x8A$\x9Cߢ!\xE4
+b#\xA63@\xFFV\x99\xC5C\xE8\xDA\xC4!\xEA\xE6\x93\xF4!\x9D\x85\xCF.z\x81NӋl\xA7_\xD1\xEF\xD9\xC1'\xB9\x82\xE6\xA1\xF7} \x93\xFFw\xC8Fө\x95\xB6S\xED\xA0u\xB4w\xEC\xC2Tvz\xD8&quot;ZD\x80&amp;ꢍ4\x85\xAC\x94Ki&gt;\xBD\xAD\x8C\xA6\xDFqD\x9Cs\xCBGh
+\xC1\xE2\xABg\xEF\xD0Z\x9AFG\xE9 CnR\xE9[\xF4\xFC\xD6\xC1\xF7=J30r\xAB@\xAA\x9B\xE9#ެD\xF81\x84\xB1ɯ&quot;5ɔ\xA6 \xA6Kj\xEE\xD3TwL\x89\xD8\xE2jFL}œ\x90\x8B\xBBi#/\x95\xB9\x96\xC5‡\xB9
+\xE9ؑ\xD7\xDB\xD3&lt;z \xB8\x99\xDA)D#\xE8\xC7\xF4[.\xE0&lt;\x8D\xA7YF\xF2\x9F\xF0\x9C\xD2~\xE4e
+\x9E\xAC\xF7\x89&lt;-\xEC\xF4H\xEF\xE1\xF9\xDF勜\x8Bx\xB6&quot;\xE7\xF3Q\xF2zZ\xA2L%39\xE8J2D\xEF#.\xF1%\x81&amp;\x94\x9E\xA6q\xE2\xAA\x9B#H3£\xE2\xFD\x98\x89\x84\xF9-\x94\xDEMH\xB3 %\xF36}\xA4Dz/ҽ\x88}3\xD2\x82\xDA3\xF3&lt;\x8D\xE7\xC7j\\xD4\xCBZ\xC4)B\xB7\xE29\xEE\xE9=\xAB\xBC\x8847Il\xC7\xF5E\xA4\xBENbb\x8E\xA3\xE5&amp;\xB0\xA5ք\xFBD&lt;Q#SP\x8AȅD+\x9EP|\x95\xE9g\xD2z\x93\xEE\xEA=\xCBv\xD8ͤ\xF0\xDA8\x84N?AY=I\x9B\x94lI\xEA\xD9J\xB6\xD05\xF4}rv-|Eh\xF9\xBB\x96\xFD\xDA?ea\xDC&quot;\xBF\x98\xA5a/\xEA;\x8FT)PM\x9DxJϷ\x83-\xC8w9z?\xC5@\xBC\x88\xC3O\xE1ż\x98\xF6\x826D\xC5K.^JZI\xAD\xED\xC3\xD0\xEE\xAAD9\xBD \xBB@\xCF͠\xE8G\xFB\xCAs\x9Dx\x82\xF2\xA4X\x99j幦\xAF,\xE3\xC8\xBD\x8B:}G\xA6o\xC5M\xA4eh\x95\xC2=\xF8\x83\xBE&quot;\xB4\xB9OA\xB8d\xCAT \xA0\x8F\xC3l\xA0h\xEFW\xA0\xB2j\xB0\xDAA\xBDo\xD1'\xB2\xA5.@\x8Ao\xCBVڌ\xD2m\xF4{\xA8\xDB[A7/&quot;\xF3\x91B6E\xE0{+\xCDC\xAD\xB5\xF1a\x9A\xCE        4\x86o\xA26:\xA0X@)\xD54\x95\xB8y
+\xF9\x9E\x8E:\xAC\xA7U\\xDB#\xC0*IɭP]\x92\x8Ew&amp;3pYM\x83\xA7ȁ\xE0
+\xD4\xD4{\x81VP\xD4j\x84HG\x8E\xB4\\xB4&quot;\x83e&gt;\x9A\xA9\x90\xA0D\xDDMu\xBB\x90\xDFM(\xBB\xBB@W7\xC3t\xE2jԝ4\x9C\xBC\xB8\xFF@p\x92!\xFF\xAB\xF1\x9Cߠ1\xE4\x87jD\xEC?\xA2oS݇\xBB\xC6݂\x9FG8\x88q\xE4Ǩ\xB1;q\xC7\xA4\xBC-|-Rr\xB9\x81\xC7\xF18%\x87\xB5\x85\xB7\xC0֨\xE4(#@\xD5[\x94\x88\xDAFBL\xEEM\xDAΩ\xF44\xED\xE4\xD5&lt;\xB5\xBB\x88[PW\xE98\xB8\xC6\xFDhY4\xF6O\xE8\xAF\xF4\xFA\xBDD\xBB\xE9uډZ\xBE\xBE\xC7\xE8/\xA8\xDF? \xFCfI\x9F\xC7\xE1\xD7%\xF1\xA6T\xF1\x98\x80\xD3^\x8A\xF7~\xA7\x88\xB1/&gt;^\x8D9\x97\xDDJ-?\xC4s8\x87O\xF0        \xBA &gt;\xAD\xC0\xBF\xE6'\x80_\xF3\xD3\xC0k\xFC.\xFF;\xDF
+\xCE\xF6\xB7\xF2T.g\xEB9\x9FG\xE8\x95\xFE%\xCA&amp;\xCEg\x9B\xD8 \xDC\xD7\xFE^ST\x85\x95\xC0\xCF\xF0.\xBE\x9D'\xC3m\xCF\xE39\xA0\xBD\$\x99eH\xAB8O \xBFM(yѶ\xC4\xCF%~ρS\x9E\xA7'\x80\xF3\xB5m
+9|Zs\x82\xEF㷑\xF3g\xF95\x84\xCFF=\x84\xFA̸\xFD\xFF\xE0\x87\xBCo\x93=\x91\xAD\xDCH\xBF@        =\xCA?\xCEG\xF8K\x99O\xC9,`\x8F=\xBF\xC2\xFF\xD4\xF7\xACq\xB7س~\xCD\xDCΓd$je\xD3g^\xF9K\x89\x95O\xCCd7귟/[P\xEFiiD{\xFEZ.\xCD\xEE\x90\xEE=\xA0jq\xFD)\xF2*~x\xF9,ϑ\xF6\xF5ԅh\xA3ߦ\xEF\xD36p@\xC9@m\x83.h.݈y\xB4a&lt;\x8D\x92\x98E&gt;ҡ^\x83z\xB5q|E*\xDBh\xFF\x91?\xE7\xCFѾ\x97\xF0!\xFE\x8C\xC7y\xCA|\x94Z;\xDAM5\xE5\xF1\xFBp\xF9\xCC\xFF\x82O\xA0\xB6#\xADw0nx\x83N\xF2m\xBC9&lt;IG\x90\xC7h\xF9AP\xA0\x8D&gt;\xB5\x81:AO\x81&lt;\xC0B\xE6\xF0\xE7PG\xF8)~\xEFRi\x{1D50A0}\x94\xED1\xAAO;\xAA\x89&gt;\xA5\xFF\xE0/Q_o\xC8\xF3\xC17\x91\x87'\xD1j_\xE4_\xF0q\xF0\xC1\x97@\xB9]\x94\xE5p:\xDF\xC2u\xEAZzE޿\x83\x8F\xF2\xF9\xD9\xC6CRH\xD5ۧ^D        \x{13FFA4}j\xE8\xEB?\xAF\xFD\xFB\x8E\xAB\xE1,\xB8\x92\xE83ē\xFCope\xCF\xD1\xF3\xE5\xB8C\x83ȃH\xE3\xF7p1\xE6J\x9F\xE0\x85\xE0\xCFN\xF0\xD1;%\x96@\xCD\xC3\xFDAم\xE0\xADKЋ\xD5 ϋdO\xA6\xFD\x96]?X,\x88\xBE\x8E\xE1\xE8wc\xF8#\x86^\xED\xEB\xBF:\x97\x86D\x91\xFEy o\x97]B\xF2\xB3L\xC75\x98\xC7\x9F\\x82\xE5\xC8%ؑ\x94\xE3+\xA2Ի\x89\xD2R\x88\xD2\xD1^\xDC#\x88\xB2 \xB2\xA3|\xB7\xF9\x8B4\xD1\xF6r\xEF$\xCA;OT\xF8D\xA1\xBDDC\x90FQ\xE5\xE5V\xF27\xB0B\xC3p\xDC_\x86tG\xAC!*G\xE9$\x85g\x88\xE0\xB9*\x91V\x95AC\xCD\xCDD\xB5\xA0\xF2\xFA?݀\xF9\xF3\xB8\xE7\x88\xBF\xA9\xE1\xC6/\x89&amp;\xE0y'&quot;?\x93WM\xAD\xD40\xFD1\xA2\xE6\x88f\xB80\x80 `\xC00\x80 `\xC00\x80\xFF\xD7`&quot;]h\xAD )d\xA5b\xB1\xB3\\xDDa\xDC/\xDEv\xD3\xD4\xDE\xE3\xEA\xF1\x8Eiã\x9D0FI\xE3\x809\xA7d\x9D0\x93M\xD2\xECH^U]\xAC\xA7e\xC0&gt;\xE0\x90@\xB3\xA1\xB7\xC6\T\xF2B\xAF\x84\xEBF\xE9\xBFS=L\xED\xC0q\xE0M@\xB8tå.\xDDp\xE9\x86K\x95\xDAI\xAC\xFEL\xFDiG\x8EI&lt;\x90\x91Sr\xAEڭ\xA0^@QQ\xDBȏ\xB8o\x89\x99\xB3c\xE6F\x98\x83`n\x8A\x99Զ\x8E\xB0\xD7R\x9D\x84k\xA6s\xD0{Ň^\xF0l\xDB:\xC6N(钖\xF2\x88\xB4l\x8D\xBBl=ou\x86\xBA
+\xB9چ\mC\xAE\xB6!W\xE7\xA03b\xDD
+\xF7\xADp\xDF
+\xF7\xAD\xD2}\xAB\x90\xAFGT\xFE\xC2XT1˶\x8B+\xE6K\xB5QmVo\xA2D\xD13\xA7\xAB7u\x94x\x8FU\xCFQ\xA7!\xEA}RߩN'\xD8I}\xB6\xD4'H\xBDU\xFA\xB6J\xFBRi_*\xEDU\xD2^\xB3 \xBD\xB8\x9FE\xE8\xEAdu
+\xC2e\x92\xDA ͉j=\xE5œ\x80ka\x8EW\xC7I\xF3\xEAXi\xDE\xF7t\x98\x8Dg\x87٠\x8E\x91\xD7\xE3p]\xF3\ s\xAC:\xA6\xA3\xCE;\xB4z\xAEg\xAB\xE2\M\x8B*\xDC됇:\xE4\xA9\x85$\6;\x81\xF7\xA4\xCBl\xE8\xAD\xC0)@\x95!Y\xAD\x83\xAA\x85\xAAV\xABqGqD\xE1%U\x8DBUAU\xAA\x95\xF0\x8D\xB0\xA3\xA1GՈ|\xC6BE\x90ReA\xCCTO\xD5!\xBD\x81\xEES\xCBh(&amp;s\xE2\x8C\xFB#_\x83\x91\xC2`u\xE5 .\xBF\xF29a\xFAb\xA6Wi#L\x8F\xD2\xD6\xE1\xF1F\xAB\x93\x94\x834\x98,\xD6);tvK\xB5\xE1D\xD8b`0hv\xFBUi&gt;\xD1d\xA5J\xA9R'(\xD4Pw\xE1\x81H\xA4D\x9A\xC3GhfV\xB6f\xA6\xB8K,\xD5+\xD4BS!\xEDTd\xB9Y.ģƯ\xBC\x80\xD2ɧc\xC0)\xE0=@x&gt;
+#\x85\x91\x8F\xCC\xC7\xFD\xF92T\xA2 w\xE8TQ&gt;\xE2\xBF&lt;\x8CN\xDE\xED\x8A\xFB\xC5&quot;\ \xE0R\x80\xAB\xDCS\x80\xB0p}:\xCB;\x84\xFFD`#p,\xE6\x90\xC4\x90\xC4@\\xE4\xB6z\x95\xB4Y\xA0{\xD5@\x87&lt;E\xB9\xAD\x83GY\xAA\xCBQ\xEEx*P\x9APn\x85(\xA2ç*b#\xB0Щ]P\x85P\xF9PP(?\x94
+5\xA8zP{\x9B\xA06B= \xB5\xEA!\xA86Ԇs_\xE8XH\x99]\xB6\xB4\xAC\xB5lcَ\xB2}e\xC7\xCA􇕹Ps\x949Q#\xB9\Dd\xB7\xDC\xD5V%\x81f\x92\x89\xFF*\xF5=R_!\xF5\xA8\xD4Ӣ33M\xAF\xCC4=9Ӵy\xA6\xA9i\xA6i\xFCLӘ\x99\xA6♦N\x9EM \x99\xDE
+\x996\x85L7\x85L#B\xA6\xB2\x90ix\xC8T2U۸\x99\xA7\x93\x89~.\xF5\xA9\x97H= \xF5l\x9E\xDEa\xA2\xA4#&lt;\x83\xFCP&lt;\xE7\xF4\xDF\xEB=\xEB\xEFL\xE0\xEF}\xFEN\x8CokW34#,\xEA\xEA_\xE8\xAC\xB9\xE4iF\x8E\xFFhb\xA0i\xBC\x9B\xF4\x8Aֿ\xAA\x9F\xAD\x8F\xEAG\xEA\x8B\xF4C\xF4\xFA|}P\xEF\xD5;
+v\x83\xD5`6\xA4\x8C\x83!ѐ`P d;\xE6\xA3!!S\xE5L\xB4
+#1A\xE8        \xD2nU\x84\xAEh&quot;W
+j\xA0v\x87ڨ4N\xA9\xE1\xC6\xF6\xE3\xF3\xA9q\x9E\xAF\xFD\x8B)\xC1N6N\xBA\xB9]\xAC\xE1v{#5N\xADIo/5v\xEA{'\xB7W\x84ۓ&amp;\xCEh\xDA\xCF\xFCp3\xAEڕ\xF5\x9DLS\x9B:\xB9W8ݟ\xD9n\xAFۙx\xF0\xFD2cfs\xB3\xB8\xA7io\xD8\xD0L\xAE;\xAAҫ앶\x91cꮢ͉\xE9\xFD\xE4S\xD3\xFB \xAB\x8A\x9Cd\xB7?\xDE8\xA5\xA9\xFD\xB9\xEC\xE6\xF6a\xE9\xCDnnD\xC9M\xF1\xCDl\xEAR*\x94\xF5u]J\xB90\x9A\x9B\xBA\x8C딊\xFA\xC9\xC2ݸ\xAE\xAE\xF9R8\xF2\xC1\xBD\xAE\x8B\xFC\xE1\xC8'‘\xEF\x8Ap\xA5\\x84\xCB\x86\xCE#\xC3y. \xB7\xB4\xBF\xBEn\xBF\xDF3Z\x86}y\x98\x85\x97\x87Y(\xC3,\x8C\x85Q\xB50\xFE~a\xF4\xEF\x93_\x86\xF1\xEB\xDF\xFFZ\xCFu\x84ɽj\x98~\xA5\xB9\xA0&amp;\xF47~\xDCE
+|z\xED\x9A\xFA\xC1\xFA9\xC1\xFA\xC0\x9C\xF6\xB6;\xA5\xB7\xAF\x9B\xE7\xF3uQ-\x9F^\xBEv5oμ\xF9\x8B\x849wA'\x9F.\xA8k\xAF
+\xD6\xF9\xF67\xAC\xF9\xBA\xFB\xE1\xDD\xAC\xDBOk\xEA\xA76\xED_]P\xD7\xD1m\xA8έk&gt;0v\xEE\xA0=\x97%\xF7`&lt;\xB9\xFD\x83\xE6^%\xB2\xB9&quot;\xB2A&quot;\xAD\xB1{\xAE\xE2\xBDGx\x8Fi\xEDi\xEDi\x8D\x8D\x8E\x95iI\xAAY\xA8\xA6\xB9v\xA6fP\x92\x8D \xE09\x99\xFE\xE6\x97uY\xA5\xA4\xE6\xB0?\xFD\x9E\xCC\xEE\xE2g)9\xD4ܞ\xACi7\xC2kH\xF5\x90j\xE1\x85V&amp;\xBC\xCCp\xB6ļ\xD2\xEF        \xFB3\xBB\xF9٘\x97ζ`
+\xA5\xD7/\xAEÿ\xA5%f\xB9\xCEKK\xCB\xCA[Zni\xA6\xFC\xB7\xAC\H\xF9\xEDjY)Μ\xAFN\x91\xFD\x9B\xDCX\xF0\xE66\xE0!ɣՖ\x96敚\x98w\xCB*\xB1\xADڥ\xC8\xFBl\xAB3\xB7\&amp;\xDEr\xE5O~@\x984 \xBA\x96U,e\xC8a\x89\x91M\x8BM@4$2\x8B\x85\xE8m*k\xE8
+endstream
+endobj
+
+20 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 833
+/CapHeight 700
+/Descent -300
+/Flags 33
+/FontBBox [0 -300 659 833]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 37 0 R
+/FontName /OSIZDU+CourierNewPSMT
+&gt;&gt;
+endobj
+
+18 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /TrueType
+/BaseFont /OSIZDU+CourierNewPSMT
+/Encoding /WinAnsiEncoding
+/FirstChar 0
+/LastChar 255
+/FontDescriptor 20 0 R
+/Widths 19 0 R
+&gt;&gt;
+endobj
+
+40 0 obj
+&lt;&lt;
+/Length1 5180
+/Length 3337
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA\xE58ktTչ\xDF\xDE\xFB\xBC\xF2&quot;\x93\xC2$s\xC6C\x93I\xC8\x84&lt;\xA6\xC9$\x99        \x90\x81\x98\x803\xE0c&amp;\x93@@!QM\xA1T;H:Vx\xB5W\xA9\xA5&gt;\xA0\xADg\xD8Ik!Z[]\xF7j\xEB*mڥ\xB4Ad٢,\x8BX\x95\xCC\xE9\xB7O\x86H\xBC\xAE\xBB\xEEϻV\xF7η\xBF\xF7\xFE\xBE\xFD\xED}\xCE\xEC \x90 \xC0\xA0o\xA9\xB7\xBC\xEA\x9B\xFF8wJ~\x84\xB02\xB4e\xB3Z\xF2\xF2\xE7\xBB\x88 
+k\xFA\xD6n\xF8\xB8\xE2\xE5\xDB$\xF9\xF4\xB5\xB7\xF5\xAF9\xB8\xEB\xC7/\xA4X\xD1~\xA8\xA7;\xD8u&amp;\xA3\xA8\xF9א\x9F׃\x82\xF42v/@*\xFAì\x9E
+\x9Bᆱ}Q=\xF2\xD7\xD0˷\xF5\x86\x82V\x87\xD5\x90&gt; c\xEC\xD8\xBC\xBB\x8F2\xF1i\xCB3h\xAF\xF6\xDD\xD1\xDDwO\xFA\x8B\xDDȿ
+\xC0n\xC74^'1\xF6\xA3\xE2\xF4(\xC7l?\xAC\xA1\x99\xA9L        %\xB2DE\xBEԖ\xF4n\xEC\xE7\xF5\x82!&gt;o!s\x94\xF2\xD2\xC0\x84V\xBC        *\xC5Ő\x8F0\x83= yƩ\x9C\x89\xFB\x8D\xF3⭠\xC5\xD7'\x8B\xD2\xD1\xF8H\xC6[
+\xE0f(\x86Vx        .\xC01R\xED0b\xBC!\xF0ѻ\xA0 \xE5߁\x9F\xC2\xFC\\xD0r\xC96P\x8D\xEF\xC1P;a?\xD4\xB9\xC6QX \xE7\x94tȆYPKzA\x82i\xB0''axp\x8E:X߆;p\\x86\xF2OH5j\xEE\xD9M\xFDax \x8E\xC1oௐ\x833ΆQ&quot;\x93O\x8C\x9FC3x1\x87\xAD0 \x9B\xC4\xDD0\x84\xA7\xE1Yx\xDE%\xB3\xC9\xF2&gt;\xFB\xC08j\xBCf\xFC
+\xBD\x8A\xA1\xE6\xC1j\xE8\xC4\xFE]\xF8&gt;\xDA=
+\xFFM5\xF6#\xD7\xD8j&lt;c\xBC
+30\xFBC\xB8\xEA\xE1W\xEBQ\xC9J\xA2O\xB1\xFE\xF8g\xC6F\xE3\xD6!s\xC6\xEC\xB17\xE2j\xDA`3\xFC-G\xE1s\x92\x84}Ui
+\xC53\x8C\xE9 C&gt;\xA8`\xC7\xFCV\xC0\xB8\xEE\x87=\xB8\x8AG\xE1        xΑ\xD2C^'\xD04:@\x8F\x8B\xEDr\x9Bܖt|\xEC\xC6\xE3\xC6Hf{\xDC
+w\xA3\xE7w\xE1!؋\x9E\xDF\xC7X/c\xBFcd\xA9#\xF5dYN\xBEC\xBEE~H\xFEI\xED\xF4-\xFA9\x9B\xC2\xD2Y)\xF3\xB3\xDB\xC6\xDEa\x9F*\xE2\xD8\xD2\xF8\xBE\xF8F\xBBq7֒`͓q'\x9Bq\x9Dp#\xF4\xC1&amp;\xB8 \xB6\xC1f7\x88=\x82\xD5;\x84]\xC7z\xC7\xFEK\xF83\x9C\xC6~\xCE\xC1\xDF\xF1̉\xB8\xC6dR\x82\xBD{q\x92V\xB2\x82\xDCB֒Mdy\x9E\xC4\xC81\xF2+\xF2&gt;\xB9H\xE7\xD2y\xB4\x86.\xA5\xCB\xE9Z\xDAG7\xD3\xD5i\x94\xA7g\xE8?0\xCBZ\xE6f\x9B\xD87\xD8!\xF6{\x95\xFD\x8E\xBD)\x80\xD0*\x85u\xC2Â.\xFCA\xB8 \\xE2&quot;\x88\xF6\xD9bP\xDC?\xF6d\xDC_muF\xA7\xB1Lj`?\x875\xBEWSE\xB8\x9Ev\xDC\xD5\xAC\xC1\x93Ӈ\xFDv\xEC\xFDX\xBB]\xB8\xA2\xBD\xF08֎W\xEFy\x88\xC1 xJ_\xC2\xFD\xFD5\xBCo\xE2\xFA\xFE \xEF\xC0'\xF0)\x87\xAFo\xB1\x912R\x89\xF5\xFDY\x80}\xEE\xD3\xB2\x8D \x90A\xF2(\xD69J\x8Eb!'q\x95q\\xE1J\xEA\xA77\xD3-t\xDDC\xF7\xD1\xC7\xE80\xA1\xA3\xB8\x93p'\xACl\xF3\xB0\xD8jv3\xDB\xCC\xF6\xB2G\xD8\xB0\xC7\xD9,\xC6Fد*\xD4
+\xED\xC2\xC2N!&quot;&lt;)&lt;'\xBC&quot;\x9CN\x8Ab\x9DƮ\x8BG\xC5_\x88g\xA5L)O\x9A+y\xA5\x98,)\xFD\xCA{J\xC3+\x85\xA3_~\xF6\xC9\xFD\xC4B\xA2\xF0c\xF2\xD8}\x8D\xFAh
+%;\x84ߒ&quot;\xDCq6\xC2G\x98\xE1L\xF2;:\x9F\xDC\xC0Bd\xD6oYCV\xC3\xB2\xECI\xD6
+\xAF\x89\x89\x97\xB5\x93.\xF0
+\xFB\xE0\xB2\xF8K\x8Aa:Ĩfc\xE4Szz`\x90\xDE:\xF6\xAC\xE1'S\xC0KЧ\xF0\xC4l \xB90Jk\x84aR@\x8B\xE9q\xF9'$\xF5\xB2\xC4jX\xAD\x92\x8E\xDCv\xD3\xF4*\xE9\xE4}\xB2w\xF0\xF99\x85\xCF\xD6r\xFA\xBEΒ\x93\xF2R\xCCn\x8C=\x876ۡ\x9E\x88g\xC0\xB3\xA2\x9F\xC8 z\x80,\xDB9\xF6'\xF6\x98\xF1ɡ\xEF\x8Ce\x8C5\xD2f&lt;q+\x8C\x83\xF4|\xFB\xE2\x9F
+o\xC31\xFA\xAC\xC0\xB7F\xC8|r&gt;\xC2g\xEF.|Ӭ\x84\xCB4
+\x9F'/\xBEG\xFA\x9C
+
+\xF5_s\xD4\xD5\xD6TϿ~ʊ\xF2\xD9e\xA5\xF6\x92\xE2\xEB\x8A
+ fi\xD7\xDA\xD4\xFCkf\xCE\xC8\xCBͱNϞ\x96553Ò&gt;%-5%9I\x91%Q`\x94@\xA9[k        \xA8za@
+\xB5\x85 \xCB8\xAFQ\xBCJ\xD0U\xB5L\xB6\xD1Հi\xA6N\xB6t\xA2\xE5\x9A/Y:\xC7-\x9D\x96Ģ:\xC0QV\xAA\xBA5Uݥ\xA91\xB2j\x99\xE9=.ͯ\xEA\xE7Mz\x89I \x85&amp;\x93\x86\x8C͆\xAA\xDB\xDA\xE3RuP\xDDz˖\x9E\xB0;\xE0\xC2\xF9\xA2)\xC9\xCDZswrY)D\x93S\x90LAJ\x9F\xAE\xF5E\xC9\xF4zbt\xBA\xBB6JAIì\xF4\\xCD\xE5\xD6s4OAg\xEE`\x97޾\xCC\xE7v\xE5\xD9l\xFE\xB2R\x9D4\x87\xB4N\xB4&amp;=\xDDn\x9A@\xB3F\x97\x9Au\xD9 \xA3\xAE\xE3ˁ\xDDj\xB4t$\xFC@\xCC\x9D{j\x97\xD6\xBCѧ\xB3\xA0\x9F\xC7Ȱc\\x97&gt;\xFD\xEBg\xAC_\xB08yf\xB3ᆱ\xB5y,춮S9ߧ\xEA\xFB\x97\xF9\xAE\xD6\xDA\xF8\xE8\xF7\xE3\xE8K Z\xE1 \xFDV\xD1\xE3U1\xDD\xE5\xF7\xE9d\x86T\xF9J\xF8\xAA\xC6\xD7׭\xB9\xB9$\xB0^Փ\xB4&amp;\xAD'\xBC&gt;\x80{\x93\xD6ay\xBFm(7\xD79l\xBC
+\xB9n5\xDC\xE1\xD3lzC\x9E\xE6\xBAfD\xB3 \xBC\xBC\xFFp\x8ES͙\xAC)+\x8DZ2\xC6 \x9D\x92\x9E RӮ&amp;\xBA't&amp;e\x9Asʳ|\xA2\xB2\x84g\xA4-\xC2\xA1\xAB!3\xF1i\xB8\xA6j&gt;tWC8T\x8Df\xD8\xFC\xBD\xF4.ܑuzRs l\xA9\xE5rM
+ x\xB4\xF3\x9F,        &amp;$R\x81\xE5c\xE0$?'g
+\xF5Wh\xDDn\xD7KJ\xF8\x91\x9BqO1\xC7z\x93\xBF\xBE\xACtK\x8C6j}\x96ڱ\xB6Am9\x96\xDFf\xE3\xBC;\xE6\x84Nd\xF4\x81e\xBEq^\x85μ!p\x96\xDB\xFD:
+p\xCD\xC8ʹ\3pE3\xE1\xD0\xF0$~\x87\x9B\xA6+\x85\xE9\x96\xEC\xA9\xEE\x9EZ\x9Dd\xFF/\xEA\xEEq\xBDǫy\x96\xAD\xF2\xA9\xEEp Q[O\xC7$n\_=\xA1KP\xFA\xD4fˣ        \x8A\xE61S\x8B\x87\xF2\xC6        c\xCE\xF8Ru\xA1\xFF$\xF3Pw\xC5dO\xA5)!j\x8Bn        ,\xFD\xC96\xDB\xFF\xD1)f\\xE0^&amp;\xFA\xC2-\x91\xA6^k\x9F\xCC\xD7M\xE2'\xA5\x97f\x98\xB0PH=\xAB\xC2\xE1\xE4\xABux=\xE5U\xF9e\x93\xE1\xEFi\x9D\xF3I\xA1LB \x92%1\xC4\xCDM\x92\x85\x81\xA5\xB8\xDAjo\xB3\t,s\xB4Y.9\x96X\xC6\xD0\xE0sp\xA8\xAC\xB0e\xD82
+p  \xC0e\x95\x8D\v\x8A\xF09\xA8ˆ\xB91'\xE8[\xEC'\x90\xB6a`\xE4\x88sJ\x92 \xB9iRNjڇ6&gt;\xAD\xBD\xED\x8C\xE5,4,9_YA\xB2$\xED\xDA\xC2\xEB\xE7ΛS\x95M\xDF\xDD\xF7\xC8\xE8\xE8#\xFBFi\xE38\xE5?ut\xAE        \xFD\xD7\xC9[\xD2+3\xF3\xF0 _\xA8\xE3xh\xF1\xEFOF\xBC-S\x90M1\xEDa\xDCOI\x89\xE3\xBD\Y?ty\xB6\xB2yBs\xA5^\xC7o\x9Fa\xE6 \x9C\x8F@/\xF6B,\x93\xC2\xA9\xB2\x9DP\x8B\xBA\x842\xD4=\x88\xBA\xB4ߘ\xC0\xD2\xC3@y+\xC2\x84R/\x82\x8AЉ\xE0GX\x8C\xB0
+a\xAD\x81!\xECF_\xF7\xE7\x98\xED\xA7\xC5W K\        \xD7&quot;\xCEޅ\\xE14Iy\xB0P8\xCA
+1\xFE1ڐ.\xB7C\x96&lt;\x93\xFB\xE7\x90_,\xA0\xCD\x98\xC3&amp;(^\x80j\xF4\xADwA6\xE6\xBEu\xD5b14I7b\xBCӐ\x8D\xF3&lt;-\xBDG\xD6#n](\xE3C؛8w\xE6я\xD0\xC2.\x82}        vX\xC0Zq}'\xA0\x8C&gt;        ͈ݨ\x9F\x86P)|\xD7d\x87\xEB\x90\xE6\xF9\xCFGڏxڴ\xA1\xAF\xF5 \xB0\x9E\x8D\x98k;\xFBV#.\xC7yW\xB3?\xC2        \xF2(@&lt;\x8A\xF6s\x85K0\x95|f\xC6u\xDC-\xF4\x99\xC7?\xAE$        \x86%\x89T \xFEᒲ\x8A\xE5w\xC1\x83\xF3\xDFt\xB39\xB0\x86\xD7o3\xEB5\xEDG\xFF5\xA7\xCF\xE0\xFAD\x8D9\xCC\xE2\xB1\xF0\xF4\x9CN\xD0\x8C=\xB8vUڋ{\xBEʰ67\xCB\xEF\x92X\xAB6\xF6B\xF18_5\xC2|\x84\xBAԊGH2B
+\xEA\xBDȷJ\xCB!\xC4A·*\x{11D371}:\xF8\xD9@]\xE6iB&quot;\xFFʼn\xFCM\x8Cy\x96c]\xAF\xF8K\xADP\x82&gt;v\x96        ޫ&amp;\xE0&quot;ޭ.\xE27\x9D\x89\xC9\xF4\xB9\xFD\xEBi%&gt;\xD9\xDB\xE9S\xE3\xCD,\xD3x\x88eқ\xC61hH\xDFkb\xF4%\xF0\xEB\xA0\xEA߬\xFB\xFF\x9F\xF5\xF1w\xDB\xBE\x83D\xF3-D\xC1\xE5\xE0D\xEA\xBCȿʡqd\xD2&quot;셴zI6\xDA\xDFb\x8EKͱ\xC1\xCB\xF9Hˇ\xCA\xF3\xF3ct\xF6\xD0~\x8EJ\x87f#\x9A\xE5L9\x95\x9B_Y\x94\x99\xEF(\xE2\xFCtg\xDDm\xC5\xF9o\xCC\xC9?\x85p\xA8\xA8*\xFF~GU\xFEN\x84r\x84-\xC8s\xBB\xA2\x83\xC5\xF9\xBDE\xBDz\xBF\xD5{\x9F0\xB2\xB31\x93\xCC \xC5#\xA7\x9F_\x91\x95\x94\x954?#ǝ5r\xE4r\xE4\xB0Y+G\xBA\xE4\xC8
+r\xA4E\x8E̓#\xB3\xE5\x88]\x8EȑYr\x96\x92\xA9X\x94)J\xAA\x92\xAC(\x8A\xA4
+U@Ɋo;\xED|\xF1Y\x92\x85#I\xE0\xA3`\xD2\xCAG:^J
+\xAD\xA0Oe\xEA\xF16\xE9\xD5vOL6\x96\xEB\xF3\xED]n_\xED\x8B2\xE8G\xA9N\xEF\x8F\xE8\xF0ň\xC1E\xBB\xF2\xF8-r1v\xED\xC9K`\xBF\x9Fx\xF4\x91x:U\xFD\x92W\x8B\x91d\xFC\xE1\xB5&amp;\xA2gz\xC0\xD3\xD1d\x85\xEC-
+ֆ\xCC\xFA\x8C\x9A\xD7W \x81\xC4h\xFF\xA2Y\xEDW7O{\xFF \x90O\xEE\xE4\xFF  \x9B\xCB\xF9\xC9\\xEAEiĔF\xB84bJ\xAD3\xF5\xBD\xAFO?8ӯWq˜\xE9'\x87\x8F:\xB7\xF2{i@sw#\xF4\xDD[z\xAC\xFA@\xA7\xAAF\x9DG\xD6\xC2@g\xA8\x87\xE3`\xB7~T\xEBv\xE9NͥF\xB7~\x85z+W7j\xAE(luw\xF8\xA2[\x9Dݮ\xA1Fg\xA3[ \xBA\xFC\xC3\xD0F:\xA3%\x83\x93\xC2}\xFBJ\xB8a(!\x9D\xFFs\xC6\xE9\xE4S\x96\xF0\x88m\x83_q\x90\xAB\xDBx\xC4Aq\x90Gls\xB6\x99\xDD\xEB\xBCM\xC4\xD3\xEE\x8B*\xD0\xE4\xC7ː\x89Ӕdܪ@\x9E\xCDߔm\xE9\xAB7\xF7\xAD\xCEf\xBD'\xEFg\x90g \xF8\x9D\x91\x86\xC0Ue\x8De\x8D\\x85\x86\xAB\xA6\xF0O\x90\x84\xCAzO\x9D-\xEFg䙄ʂ\xE2 \xAD        \xECwڿ\xD46\xF1V\xF7:\xCCd\xD8\xA1C\x99\xF9Uv\xFEH\xFE r\xF0Z
+endstream
+endobj
+
+39 0 obj
+&lt;&lt;
+/Type /FontDescriptor
+/Ascent 1005
+/CapHeight 780
+/Descent -220
+/Flags 6
+/FontBBox [0 -220 1113 1005]
+/ItalicAngle 0
+/StemV 0
+/FontFile2 40 0 R
+/Style &lt;&lt; /Panose &lt;0c0305050102010706020507&gt; &gt;&gt;
+/FontName /OSIZDV+SymbolMT
+&gt;&gt;
+endobj
+
+41 0 obj
+[
+120 [460]
+]
+endobj
+
+38 0 obj
+&lt;&lt;
+/BaseFont /OSIZDV+SymbolMT
+/CIDSystemInfo &lt;&lt; /Ordering (Identity) /Registry (Adobe) /Supplement 0 &gt;&gt;
+/FontDescriptor 39 0 R
+/Subtype /CIDFontType2
+/Type /Font
+/W 41 0 R
+&gt;&gt;
+endobj
+
+42 0 obj
+&lt;&lt;
+/Length 212
+/Filter /FlateDecode
+&gt;&gt;
+stream
+x\xDA]P\xC1j\xC30 \xBD\xFB+tlON{i!\x87\xB6 \xEB6\x96\xFE\x80c˙a\x91\x8D\xE2\xF2\x{1F5F6C}\x85
+,x\xD2{\xF2\x93乽\xB4\xE4&quot;\xC8/\xF6\xBA\xC3֑a\x9C\xFC\xCC\xA1\xC7\xC1\x91\xD8\xED\xC18WT\xB2U2\x89\xBBe\x8A8\xB6d\xBD\xA8k!\xBFSs\x8A\xBC\xC0\xE6t~\xDF
+\xF9\xC9\xD9\xD1\xF0\x8F\xBB9\x84_\x91&quot;T\xA2i\xC0\xA0Mc\xAE*|\xA8A&amp;ҳt[¾\xE0\xDD\xDF\xDF\xDA\x9C\x82\xD2Ȋu\x95\xA2\x81\xFA-E#\x90\xCCKU\xF5V\xFF(\xCE\xEC\xC31\xB1m\xD5
+{\xADg]\xDE\xE6\xE1B\xCF\xCC\xC9`Y\xB9\xC9\xE1\xE3*\xC1\x87\xAC*\xEFk\x91h\xC9
+endstream
+endobj
+
+21 0 obj
+&lt;&lt;
+/Type /Font
+/Subtype /Type0
+/BaseFont /OSIZDV+SymbolMT
+/Encoding /Identity-H
+/DescendantFonts [ 38 0 R ]
+/ToUnicode 42 0 R
+&gt;&gt;
+endobj
+
+xref
+0 43
+0000000000 65535 f 
+0000063276 00000 n 
+0000000015 00000 n 
+0000063307 00000 n 
+0000064743 00000 n 
+0000000000 00000 n 
+0000051754 00000 n 
+0000084934 00000 n 
+0000000188 00000 n 
+0000084738 00000 n 
+0000113128 00000 n 
+0000001178 00000 n 
+0000112936 00000 n 
+0000002170 00000 n 
+0000005177 00000 n 
+0000009763 00000 n 
+0000050699 00000 n 
+0000054481 00000 n 
+0000137667 00000 n 
+0000051963 00000 n 
+0000137469 00000 n 
+0000142023 00000 n 
+0000052948 00000 n 
+0000056257 00000 n 
+0000054687 00000 n 
+0000057711 00000 n 
+0000056451 00000 n 
+0000059590 00000 n 
+0000057905 00000 n 
+0000061304 00000 n 
+0000059784 00000 n 
+0000063082 00000 n 
+0000061498 00000 n 
+0000064549 00000 n 
+0000063373 00000 n 
+0000064852 00000 n 
+0000085108 00000 n 
+0000113300 00000 n 
+0000141545 00000 n 
+0000141272 00000 n 
+0000137846 00000 n 
+0000141514 00000 n 
+0000141737 00000 n 
+trailer
+&lt;&lt;
+/Size 43
+/Root 3 0 R
+/Info 2 0 R
+/ID[&lt;0b776d2572ad91c4bbb6222723f30cca&gt;&lt;0b776d2572ad91c4bbb6222723f30cca&gt;]
+&gt;&gt;
+startxref
+142169
+%%EOF
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="freeswitchtrunklibssilkinterfaceSKP_Silk_SDK_APIh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/interface/SKP_Silk_SDK_API.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/interface/SKP_Silk_SDK_API.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/interface/SKP_Silk_SDK_API.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,175 +1,154 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-***********************************************************************/
-
-#ifndef SKP_SILK_SDK_API_H
-#define SKP_SILK_SDK_API_H
-
-#include &quot;SKP_Silk_control.h&quot;
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_errors.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define SILK_MAX_FRAMES_PER_PACKET  5
-
-/* Struct for TOC (Type Of Content) */
-typedef struct {
-    SKP_int     framesInPacket;                             /* Number of 20 ms frames in packet     */
-    SKP_int     fs_kHz;                                     /* Sampling frequency in packet         */
-    SKP_int     inbandLBRR;                                 /* Does packet include LBRR information */
-    SKP_int     corrupt;                                    /* Packet is corrupt                    */
-    SKP_int     vadFlags[     SILK_MAX_FRAMES_PER_PACKET ]; /* VAD flags in packet                  */
-    SKP_int     sigtypeFlags[ SILK_MAX_FRAMES_PER_PACKET ]; /* Signal types in packet               */
-} SKP_Silk_TOC_struct;
-
-/****************************************/
-/* Encoder functions                    */
-/****************************************/
-
-/***********************************************/
-/* Get size in bytes of the Silk encoder state */
-/***********************************************/
-SKP_int SKP_Silk_SDK_Get_Encoder_Size(
-    SKP_int32                           *encSizeBytes   /* O:   Number of bytes in SILK encoder state           */
-);
-
-/*************************/
-/* Init or reset encoder */
-/*************************/
-SKP_int SKP_Silk_SDK_InitEncoder(
-    void                                *encState,      /* I/O: State                                           */
-    SKP_SILK_SDK_EncControlStruct       *encStatus      /* O:   Encoder Status                                  */
-);
-
-/***************************************/
-/* Read control structure from encoder */
-/***************************************/
-
-
-
-
-
-SKP_int SKP_Silk_SDK_QueryEncoder(
-    const void                          *encState,      /* I:   State                                           */
-    SKP_SILK_SDK_EncControlStruct       *encStatus      /* O:   Encoder Status                                  */
-);
-
-/**************************/
-/* Encode frame with Silk */
-/**************************/
-SKP_int SKP_Silk_SDK_Encode(
-    void                                *encState,      /* I/O: State                                           */
-    const SKP_SILK_SDK_EncControlStruct *encStatus,     /* I:   Control Status                                  */
-    const SKP_int16                     *samplesIn,     /* I:   Speech sample input vector                      */
-    SKP_int                             nSamplesIn,     /* I:   Number of samples in input vector               */
-    SKP_uint8                           *outData,       /* O:   Encoded output vector                           */
-    SKP_int16                           *nBytesOut      /* I/O: Number of Bytes in outData (input: Max Bytes)   */
-);
-
-/****************************************/
-/* Decoder functions                    */
-/****************************************/
-
-/***********************************************/
-/* Get size in bytes of the Silk decoder state */
-/***********************************************/
-SKP_int SKP_Silk_SDK_Get_Decoder_Size(
-    SKP_int32                           *decSizeBytes   /* O:   Number of bytes in SILK decoder state           */
-);
-
-/*************************/
-/* Init or Reset decoder */
-/*************************/
-SKP_int SKP_Silk_SDK_InitDecoder(
-    void                                *decState       /* I/O: State                                           */
-);
-
-/******************/
-/* Decode a frame */
-/******************/
-SKP_int SKP_Silk_SDK_Decode(
-    void*                               decState,       /* I/O: State                                           */
-    SKP_SILK_SDK_DecControlStruct*      decControl,     /* I/O: Control Structure                               */
-    SKP_int                             lostFlag,       /* I:   0: no loss, 1 loss                              */
-    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
-    const SKP_int                       nBytesIn,       /* I:   Number of input Bytes                           */
-    SKP_int16                           *samplesOut,    /* O:   Decoded output speech vector                    */
-    SKP_int16                           *nSamplesOut    /* I/O: Number of samples (vector/decoded)              */
-);
-
-
-
-
-
-
-/***************************************************************/
-/* Find Low Bit Rate Redundancy (LBRR) information in a packet */
-/***************************************************************/
-void SKP_Silk_SDK_search_for_LBRR(
-    void                                *decState,      /* I/O: State Only used to update statistics            */
-    const SKP_uint8                     *indata,        /* I:   Encoded input vector                            */
-    const SKP_int16                     nBytesIn,       /* I:   Number of input Bytes                           */
-    SKP_int                             lost_offset,    /* I:   Offset from lost packet                         */
-    SKP_uint8                           *LBRRdata,      /* O:   FEC payload                                     */
-    SKP_int16                           *nLBRRBytes     /* O:   Number of FEC Bytes                             */
-);
-
-/************************************/
-/* Get type of content for a packet */
-/************************************/
-void SKP_Silk_SDK_get_TOC(
-    void                                *decState,      /* I/O: State Only used to select bitstream version     */
-    const SKP_uint8                     *indata,        /* I:   Encoded input vector                            */
-    const SKP_int16                     nBytesIn,       /* I:   Number of input Bytes                           */
-    SKP_Silk_TOC_struct                 *Silk_TOC       /* O:   Type of content                                 */
-);
-
-/**************************/
-/* Get the version number */
-/**************************/
-/* Return a pointer to string specifying the version */
-const char *SKP_Silk_SDK_get_version();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_SDK_API_H
+#define SKP_SILK_SDK_API_H
+
+#include &quot;SKP_Silk_control.h&quot;
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_errors.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define SILK_MAX_FRAMES_PER_PACKET  5
+
+/* Struct for TOC (Table Of Contents) */
+typedef struct {
+    SKP_int     framesInPacket;                             /* Number of 20 ms frames in packet     */
+    SKP_int     fs_kHz;                                     /* Sampling frequency in packet         */
+    SKP_int     inbandLBRR;                                 /* Does packet contain LBRR information */
+    SKP_int     corrupt;                                    /* Packet is corrupt                    */
+    SKP_int     vadFlags[     SILK_MAX_FRAMES_PER_PACKET ]; /* VAD flag for each frame in packet    */
+    SKP_int     sigtypeFlags[ SILK_MAX_FRAMES_PER_PACKET ]; /* Signal type for each frame in packet */
+} SKP_Silk_TOC_struct;
+
+/****************************************/
+/* Encoder functions                    */
+/****************************************/
+
+/***********************************************/
+/* Get size in bytes of the Silk encoder state */
+/***********************************************/
+SKP_int SKP_Silk_SDK_Get_Encoder_Size( 
+    SKP_int32                           *encSizeBytes   /* O:   Number of bytes in SILK encoder state           */
+);
+
+/*************************/
+/* Init or reset encoder */
+/*************************/
+SKP_int SKP_Silk_SDK_InitEncoder(
+    void                                *encState,      /* I/O: State                                           */
+    SKP_SILK_SDK_EncControlStruct       *encStatus      /* O:   Encoder Status                                  */
+);
+
+/***************************************/
+/* Read control structure from encoder */
+/***************************************/
+SKP_int SKP_Silk_SDK_QueryEncoder(
+    const void                          *encState,      /* I:   State                                           */
+    SKP_SILK_SDK_EncControlStruct       *encStatus      /* O:   Encoder Status                                  */
+);
+
+/**************************/
+/* Encode frame with Silk */
+/**************************/
+SKP_int SKP_Silk_SDK_Encode( 
+    void                                *encState,      /* I/O: State                                           */
+    const SKP_SILK_SDK_EncControlStruct *encControl,    /* I:   Control status                                  */
+    const SKP_int16                     *samplesIn,     /* I:   Speech sample input vector                      */
+    SKP_int                             nSamplesIn,     /* I:   Number of samples in input vector               */
+    SKP_uint8                           *outData,       /* O:   Encoded output vector                           */
+    SKP_int16                           *nBytesOut      /* I/O: Number of Bytes in outData (input: Max Bytes)   */
+);
+
+/****************************************/
+/* Decoder functions                    */
+/****************************************/
+
+/***********************************************/
+/* Get size in bytes of the Silk decoder state */
+/***********************************************/
+SKP_int SKP_Silk_SDK_Get_Decoder_Size( 
+    SKP_int32                           *decSizeBytes   /* O:   Number of bytes in SILK decoder state           */
+);
+
+/*************************/
+/* Init or Reset decoder */
+/*************************/
+SKP_int SKP_Silk_SDK_InitDecoder( 
+    void                                *decState       /* I/O: State                                           */
+);
+
+/******************/
+/* Decode a frame */
+/******************/
+SKP_int SKP_Silk_SDK_Decode(
+    void*                               decState,       /* I/O: State                                           */
+    SKP_SILK_SDK_DecControlStruct*      decControl,     /* I/O: Control Structure                               */
+    SKP_int                             lostFlag,       /* I:   0: no loss, 1 loss                              */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int                       nBytesIn,       /* I:   Number of input Bytes                           */
+    SKP_int16                           *samplesOut,    /* O:   Decoded output speech vector                    */
+    SKP_int16                           *nSamplesOut    /* I/O: Number of samples (vector/decoded)              */
+);
+
+/***************************************************************/
+/* Find Low Bit Rate Redundancy (LBRR) information in a packet */
+/***************************************************************/
+void SKP_Silk_SDK_search_for_LBRR(
+    void                                *decState,      /* I:   Decoder state, to select bitstream version only */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int16                     nBytesIn,       /* I:   Number of input Bytes                           */
+    SKP_int                             lost_offset,    /* I:   Offset from lost packet                         */
+    SKP_uint8                           *LBRRData,      /* O:   LBRR payload                                    */
+    SKP_int16                           *nLBRRBytes     /* O:   Number of LBRR Bytes                            */
+);
+
+/************************************/
+/* Get type of content for a packet */
+/************************************/
+void SKP_Silk_SDK_get_TOC(
+    void                                        *decState,      /* I:   Decoder state, to select bitstream version only */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int16                     nBytesIn,       /* I:   Number of input bytes                           */
+    SKP_Silk_TOC_struct                 *Silk_TOC       /* O:   Type of content                                 */
+);
+
+/**************************/
+/* Get the version number */
+/**************************/
+/* Return a pointer to string specifying the version */ 
+const char *SKP_Silk_SDK_get_version();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkinterfaceSKP_Silk_controlh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/interface/SKP_Silk_control.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/interface/SKP_Silk_control.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/interface/SKP_Silk_control.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,105 +1,88 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-
-***********************************************************************/
-
-#ifndef SKP_SILK_CONTROL_H
-#define SKP_SILK_CONTROL_H
-
-#include &quot;SKP_Silk_typedef.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/***********************************************/
-/* Structure for controlling encoder operation */
-/***********************************************/
-typedef struct {
-    /* I:   Sampling rate in Hertz; 8000/12000/16000/24000                                  */
-    SKP_int sampleRate;
-
-    /* I:   Number of samples per packet; must be equivalent of 20, 40, 60, 80 or 100 ms    */
-    SKP_int packetSize;
-
-    /* I:   Bitrate during active speech in bits/second; internally limited                 */
-    SKP_int bitRate;
-
-    /* I:   Uplink Packet loss in pct (0...100)                                             */
-    SKP_int packetLossPercentage;
-
-    /* I:   Complexity mode; 0 is lowest; 1 is medium and 2 is highest complexity           */
-    SKP_int complexity;
-
-    /* I:   Flag to enable in-band Forward Error Correction (FEC); 0/1                      */
-    SKP_int useInBandFec;
-
-    /* I:   Flag to enable Discontinous Transmission; 0/1                                   */
-    SKP_int useDtx;
-} SKP_SILK_SDK_EncControlStruct;
-
-/**************************************************************************/
-/* Structure for controlling decoder operation and reading decoder status */
-/**************************************************************************/
-typedef struct {
-    /* I:   Sampling rate in Hertz; 8000/12000/16000/24000                                  */
-    SKP_int sampleRate;
-
-    /* O:   Number of samples per frame                                                     */
-    SKP_int frameSize;
-
-
-
-
-
-
-    /* O:   Frames per packet 1, 2, 3, 4, 5                                                 */
-    SKP_int framesPerPacket;
-
-    /* O:   Flag to indicate that the decoder has remaining payloads internally             */
-    SKP_int internalDecoderFrames;
-
-    /* O:   Distance between main payload and redundant payload in packets                  */
-    SKP_int inBandFecOffset;
-} SKP_SILK_SDK_DecControlStruct;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_CONTROL_H
+#define SKP_SILK_CONTROL_H
+
+#include &quot;SKP_Silk_typedef.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/***********************************************/
+/* Structure for controlling encoder operation */
+/***********************************************/
+typedef struct {
+    /* I:   Sampling rate in Hertz; 8000/12000/16000/24000                                  */
+    SKP_int32 sampleRate;
+
+    /* I:   Number of samples per packet; must be equivalent of 20, 40, 60, 80 or 100 ms    */
+    SKP_int packetSize;
+
+    /* I:   Bitrate during active speech in bits/second; internally limited                 */
+    SKP_int32 bitRate;                        
+
+    /* I:   Uplink Packet loss in pct (0...100)                                             */
+    SKP_int packetLossPercentage;
+    
+    /* I:   Complexity mode; 0 is lowest; 1 is medium and 2 is highest complexity           */
+    SKP_int complexity;
+
+    /* I:   Flag to enable in-band Forward Error Correction (FEC); 0/1                      */
+    SKP_int useInBandFEC;
+
+    /* I:   Flag to enable Discontinous Transmission; 0/1                                   */
+    SKP_int useDTX;
+} SKP_SILK_SDK_EncControlStruct;
+
+/**************************************************************************/
+/* Structure for controlling decoder operation and reading decoder status */
+/**************************************************************************/
+typedef struct {
+    /* I:   Sampling rate in Hertz; 8000/12000/16000/24000                                  */
+    SKP_int32 sampleRate;
+
+    /* O:   Number of samples per frame                                                     */
+    SKP_int frameSize;
+
+    /* O:   Frames per packet 1, 2, 3, 4, 5                                                 */
+    SKP_int framesPerPacket;
+
+    /* O:   Flag to indicate that the decoder has remaining payloads internally             */
+    SKP_int moreInternalDecoderFrames;
+
+    /* O:   Distance between main payload and redundant payload in packets                  */
+    SKP_int inBandFECOffset;
+} SKP_SILK_SDK_DecControlStruct;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkinterfaceSKP_Silk_errorsh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/interface/SKP_Silk_errors.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/interface/SKP_Silk_errors.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/interface/SKP_Silk_errors.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,106 +1,93 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-
-***********************************************************************/
-
-#ifndef SKP_SILK_ERRORS_H
-#define SKP_SILK_ERRORS_H
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/******************/
-/* Error messages */
-/******************/
-#define SKP_SILK_NO_ERROR                               0
-
-/**************************/
-/* Encoder error messages */
-/**************************/
-
-/* Input length is not a multiplum of 10 ms, or length is longer than the packet length */
-#define SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES        -1
-
-/* Sampling frequency not 8000, 12000, 16000 or 24000 Hertz */
-#define SKP_SILK_ENC_FS_NOT_SUPPORTED                   -2
-
-/* Packet size not 20, 40, 60, 80 or 100 ms */
-#define SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED          -3
-
-/* Allocated payload buffer too short */
-#define SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT              -4
-
-/* Loss rate not between 0 and 100 percent */
-#define SKP_SILK_ENC_WRONG_LOSS_RATE                    -5
-
-/* Complexity setting not valid, use 0, 1 or 2 */
-#define SKP_SILK_ENC_WRONG_COMPLEXITY_SETTING           -6
-
-/* Inband FEC setting not valid, use 0 or 1 */
-#define SKP_SILK_ENC_WRONG_INBAND_FEC_SETTING           -7
-
-/* DTX setting not valid, use 0 or 1 */
-#define SKP_SILK_ENC_WRONG_DTX_SETTING                  -8
-
-/* Internal encoder error */
-#define SKP_SILK_ENC_INTERNAL_ERROR                     -9
-
-/**************************/
-/* Decoder error messages */
-
-
-
-
-
-/**************************/
-
-/* Output sampling frequency lower than internal decoded sampling frequency */
-#define SKP_SILK_DEC_WRONG_SAMPLING_FREQUENCY           -10
-
-/* Payload size exceeded the maximum allowed 1024 bytes */
-#define SKP_SILK_DEC_PAYLOAD_TOO_LARGE                  -11
-
-/* Payload has bit errors */
-#define SKP_SILK_DEC_PAYLOAD_ERROR                      -12
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_ERRORS_H
+#define SKP_SILK_ERRORS_H
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/******************/
+/* Error messages */
+/******************/
+#define SKP_SILK_NO_ERROR                                 0
+
+/**************************/
+/* Encoder error messages */
+/**************************/
+
+/* Input length is not a multiplum of 10 ms, 
+   or length is longer than the packet length */
+#define SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES         -1
+
+/* Sampling frequency not 8000, 12000, 16000 
+   or 24000 Hertz */
+#define SKP_SILK_ENC_FS_NOT_SUPPORTED                    -2
+
+/* Packet size not 20, 40, 60, 80 or 100 ms */
+#define SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED           -3
+
+/* Allocated payload buffer too short */
+#define SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT               -4
+
+/* Loss rate not between 0 and 100 percent */
+#define SKP_SILK_ENC_WRONG_LOSS_RATE                     -5
+
+/* Complexity setting not valid, use 0, 1 or 2 */
+#define SKP_SILK_ENC_WRONG_COMPLEXITY_SETTING            -6
+
+/* Inband FEC setting not valid, use 0 or 1 */
+#define SKP_SILK_ENC_WRONG_INBAND_FEC_SETTING            -7
+
+/* DTX setting not valid, use 0 or 1 */
+#define SKP_SILK_ENC_WRONG_DTX_SETTING                   -8
+
+/* Internal encoder error */
+#define SKP_SILK_ENC_INTERNAL_ERROR                      -9
+
+/**************************/
+/* Decoder error messages */
+/**************************/
+
+/* Output sampling frequency lower than internal 
+   decoded sampling frequency */
+#define SKP_SILK_DEC_WRONG_SAMPLING_FREQUENCY           -10
+
+/* Payload size exceeded the maximum allowed 1024 bytes */
+#define SKP_SILK_DEC_PAYLOAD_TOO_LARGE                  -11
+
+/* Payload has bit errors */
+#define SKP_SILK_DEC_PAYLOAD_ERROR                      -12
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkinterfaceSKP_Silk_typedefh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/interface/SKP_Silk_typedef.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/interface/SKP_Silk_typedef.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/interface/SKP_Silk_typedef.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,116 +1,99 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-
-
-
-
-
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef _SKP_SILK_API_TYPDEF_H_
-#define _SKP_SILK_API_TYPDEF_H_
-
-#ifndef SKP_USE_DOUBLE_PRECISION_FLOATS
-#define SKP_USE_DOUBLE_PRECISION_FLOATS     0
-#endif
-
-#include &lt;float.h&gt;
-#if defined( __GNUC__ )
-#include &lt;stdint.h&gt;
-#endif
-
-#   define SKP_int          int                     /* used for counters etc; at least 16 bits */
-#   define SKP_int64        long long
-#   define SKP_int32        int
-#   define SKP_int16        short
-#   define SKP_int8         signed char
-
-#   define SKP_uint         unsigned int            /* used for counters etc; at least 16 bits */
-#   define SKP_uint64       unsigned long long
-#   define SKP_uint32       unsigned int
-#   define SKP_uint16       unsigned short
-#   define SKP_uint8        unsigned char
-
-#   define SKP_int_ptr_size intptr_t
-
-#   if SKP_USE_DOUBLE_PRECISION_FLOATS
-#       define SKP_float        double
-
-
-
-
-
-#       define SKP_float_MAX    DBL_MAX
-#   else
-#       define SKP_float        float
-#       define SKP_float_MAX    FLT_MAX
-#   endif
-
-#   define SKP_INLINE       static __inline
-
-#ifdef _WIN32
-#   define SKP_STR_CASEINSENSITIVE_COMPARE(x, y) _stricmp(x, y)
-#else
-#   define SKP_STR_CASEINSENSITIVE_COMPARE(x, y) strcasecmp(x, y)
-#endif
-
-#define SKP_int64_MAX   ((SKP_int64)0x7FFFFFFFFFFFFFFFLL)   //  2^63 - 1
-#define SKP_int64_MIN   ((SKP_int64)0x8000000000000000LL)   // -2^63
-#define SKP_int32_MAX   0x7FFFFFFF                          //  2^31 - 1 =  2147483647
-#define SKP_int32_MIN   ((SKP_int32)0x80000000)             // -2^31     = -2147483648
-#define SKP_int16_MAX   0x7FFF                              //  2^15 - 1 =  32767
-#define SKP_int16_MIN   ((SKP_int16)0x8000)                 // -2^15     = -32768
-#define SKP_int8_MAX    0x7F                                //  2^7 - 1  =  127
-#define SKP_int8_MIN    ((SKP_int8)0x80)                    // -2^7      = -128
-
-#define SKP_uint32_MAX  0xFFFFFFFF  // 2^32 - 1 = 4294967295
-#define SKP_uint32_MIN  0x00000000
-#define SKP_uint16_MAX  0xFFFF      // 2^16 - 1 = 65535
-#define SKP_uint16_MIN  0x0000
-#define SKP_uint8_MAX   0xFF        //  2^8 - 1 = 255
-#define SKP_uint8_MIN   0x00
-
-#define SKP_TRUE        1
-#define SKP_FALSE       0
-
-/* assertions */
-#if (defined _WIN32 &amp;&amp; !defined _WINCE &amp;&amp; !defined(__GNUC__) &amp;&amp; !defined(NO_ASSERTS))
-#   ifndef SKP_assert
-#       include &lt;crtdbg.h&gt;      /* ASSERTE() */
-#       define SKP_assert(COND)             _ASSERTE(COND)
-#   endif
-#else
-#   define SKP_assert(COND)
-#endif
-
-#endif /* _SKP_SILK_API_TYPDEF_H_ */
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef _SKP_SILK_API_TYPDEF_H_
+#define _SKP_SILK_API_TYPDEF_H_
+
+#ifndef SKP_USE_DOUBLE_PRECISION_FLOATS
+#define SKP_USE_DOUBLE_PRECISION_FLOATS     0
+#endif
+
+#include &lt;float.h&gt;
+#if defined( __GNUC__ )
+#include &lt;stdint.h&gt;
+#endif
+
+#define SKP_int         int                     /* used for counters etc; at least 16 bits */
+#define SKP_int64       long long
+#define SKP_int32       int
+#define SKP_int16       short
+#define SKP_int8        signed char
+
+#define SKP_uint        unsigned int            /* used for counters etc; at least 16 bits */
+#define SKP_uint64      unsigned long long
+#define SKP_uint32      unsigned int
+#define SKP_uint16      unsigned short
+#define SKP_uint8       unsigned char
+
+#define SKP_int_ptr_size intptr_t
+
+#if SKP_USE_DOUBLE_PRECISION_FLOATS
+# define SKP_float      double
+# define SKP_float_MAX  DBL_MAX
+#else
+# define SKP_float      float
+# define SKP_float_MAX  FLT_MAX
+#endif
+
+#define SKP_INLINE      static __inline
+
+#ifdef _WIN32
+# define SKP_STR_CASEINSENSITIVE_COMPARE(x, y) _stricmp(x, y)
+#else
+# define SKP_STR_CASEINSENSITIVE_COMPARE(x, y) strcasecmp(x, y)
+#endif 
+
+#define SKP_int64_MAX   ((SKP_int64)0x7FFFFFFFFFFFFFFFLL)   //  2^63 - 1  
+#define SKP_int64_MIN   ((SKP_int64)0x8000000000000000LL)   // -2^63     
+#define SKP_int32_MAX   0x7FFFFFFF                          //  2^31 - 1 =  2147483647
+#define SKP_int32_MIN   ((SKP_int32)0x80000000)             // -2^31     = -2147483648
+#define SKP_int16_MAX   0x7FFF                              //  2^15 - 1 =  32767
+#define SKP_int16_MIN   ((SKP_int16)0x8000)                 // -2^15     = -32768
+#define SKP_int8_MAX    0x7F                                //  2^7 - 1  =  127
+#define SKP_int8_MIN    ((SKP_int8)0x80)                    // -2^7      = -128
+
+#define SKP_uint32_MAX  0xFFFFFFFF  // 2^32 - 1 = 4294967295
+#define SKP_uint32_MIN  0x00000000
+#define SKP_uint16_MAX  0xFFFF      // 2^16 - 1 = 65535
+#define SKP_uint16_MIN  0x0000
+#define SKP_uint8_MAX   0xFF        //  2^8 - 1 = 255
+#define SKP_uint8_MIN   0x00
+
+#define SKP_TRUE        1
+#define SKP_FALSE       0
+
+/* assertions */
+#if (defined _WIN32 &amp;&amp; !defined _WINCE &amp;&amp; !defined(__GNUC__) &amp;&amp; !defined(NO_ASSERTS))
+# ifndef SKP_assert
+#  include &lt;crtdbg.h&gt;      /* ASSERTE() */
+#  define SKP_assert(COND)   _ASSERTE(COND)
+# endif
+#else
+# define SKP_assert(COND)
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilkreadmetxt"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/readme.txt (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/readme.txt                                (rev 0)
+++ freeswitch/trunk/libs/silk/readme.txt        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,80 @@
</span><ins>+************************************************************************
+Fixed Point SILK SDK 1.0.2 beta source code package
+Copyright 2010 (c), Skype Limited
+https://developer.skype.com/silk/
+************************************************************************
+
+Date: 09/03/2010 (Format: DD/MM/YYYY)
+
+I. Description
+
+This package contains files for compiling and testing the fixed
+point SILK SDK library. The following is included in this package:
+
+    o Source code for the fixed point SILK SDK library
+    o Source code for creating encoder and decoder executables
+    o Test vectors
+    o Comparison tool
+    o Microsoft Visual Studio solution and project files
+    o Makefile for GNU C-compiler (GCC)
+    
+II. Files and Folders
+
+    o doc/          - contains more information about the SILK SDK
+    o interface/    - contains API header files
+    o src/          - contains all SILK SDK library source files
+    o test/         - contains source files for testing the SILK SDK
+    o test_vectors/ - contains test vectors   
+    o Makefile      - Makefile for compiling with GCC
+    o readme.txt    - this file
+    o Silk_SDK.sln  - Visual Studio solution for all SILK SDK code
+
+III. How to use the Makefile
+
+    1. How to clean and compile the SILK SDK library:
+                
+       make clean lib

+    2. How to compile an encoder executable:
+
+       make encoder
+
+    3. How to compile a decoder executable:
+
+       make decoder
+
+    4. How to compile the comparison tool:
+
+       make signalcompare
+
+    5. How to clean and compile all of the above:
+
+       make clean all
+
+    6. How to use the comparison tool:
+       
+       See 'How to use the test vectors.txt' in the test_vectors folder.             
+
+IV. History
+
+    Version 1.0.2 - Updated with various bugfixes and improvements
+    Version 1.0.1 - First beta source code release
+    
+V. Compatibility
+
+    This package has been tested under the following platforms:
+
+    Windows XP Home and Professional
+    Windows Vista, 32-bit version
+    Mac OS X Version 10.5.8
+    Ubuntu Linux 9.10, 64-bit version 
+
+VI. Known Issues
+
+    None
+
+VII. Additional Resources
+
+    For more information, visit the SILK SDK web site at:
+
+    &lt;https://developer.skype.com/silk/&gt;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_A2NLSFc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_A2NLSF.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_A2NLSF.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_A2NLSF.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,314 +1,280 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/* Conversion between prediction filter coefficients and NLSFs  */
-/* Requires the order to be an even number                      */
-/* A piecewise linear approximation maps LSF &lt;-&gt; cos(LSF)       */
-/* Therefore the result is not accurate NLSFs, but the two      */
-/* function are accurate inverses of each other                 */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Number of binary divisions, when not in low complexity mode */
-#define BIN_DIV_STEPS_A2NLSF_FIX      2 /* must be no higher than 16 - log2( LSF_COS_TAB_SZ_FIX ) */
-#define QPoly                        16
-#define MAX_ITERATIONS_A2NLSF_FIX    50
-
-/* Flag for using 2x as many cosine sampling points, reduces the risk of missing a root */
-#define OVERSAMPLE_COSINE_TABLE       0
-
-/* Helper function for A2NLSF(..)                    */
-/* Transforms polynomials from cos(n*f) to cos(f)^n  */
-SKP_INLINE void SKP_Silk_A2NLSF_trans_poly(
-
-
-
-
-
-    SKP_int32        *p,    /* I/O    Polynomial                                */
-    const SKP_int    dd     /* I      Polynomial order (= filter order / 2 )    */
-)
-{
-    SKP_int k, n;
-
-    for( k = 2; k &lt;= dd; k++ ) {
-        for( n = dd; n &gt; k; n-- ) {
-            p[ n - 2 ] -= p[ n ];
-        }
-        p[ k - 2 ] -= SKP_LSHIFT( p[ k ], 1 );
-    }
-}
-
-/* Helper function for A2NLSF(..)                    */
-/* Polynomial evaluation                             */
-SKP_INLINE SKP_int32 SKP_Silk_A2NLSF_eval_poly(    /* return the polynomial evaluation, in QPoly */
-    SKP_int32        *p,    /* I    Polynomial, QPoly        */
-    const SKP_int32    x,   /* I    Evaluation point, Q12    */
-    const SKP_int    dd     /* I    Order                    */
-)
-{
-    SKP_int   n;
-    SKP_int32 x_Q16, y32;
-
-    y32 = p[ dd ];                                    /* QPoly */
-    x_Q16 = SKP_LSHIFT( x, 4 );
-    for( n = dd - 1; n &gt;= 0; n-- ) {
-        y32 = SKP_SMLAWW( p[ n ], y32, x_Q16 );       /* QPoly */
-    }
-    return y32;
-}
-
-SKP_INLINE void SKP_Silk_A2NLSF_init(
-     const SKP_int32    *a_Q16,
-     SKP_int32            *P,
-     SKP_int32            *Q,
-     const SKP_int        dd
-)
-{
-    SKP_int k;
-
-    /* Convert filter coefs to even and odd polynomials */
-    P[dd] = SKP_LSHIFT( 1, QPoly );
-    Q[dd] = SKP_LSHIFT( 1, QPoly );
-    for( k = 0; k &lt; dd; k++ ) {
-#if( QPoly &lt; 16 )
-        P[ k ] = SKP_RSHIFT_ROUND( -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ], 16 - QPoly ); /* QPoly */
-
-
-
-
-
-        Q[ k ] = SKP_RSHIFT_ROUND( -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ], 16 - QPoly ); /* QPoly */
-#elif( Qpoly == 16 )
-        P[ k ] = -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ]; // QPoly
-        Q[ k ] = -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ]; // QPoly
-#else
-        P[ k ] = SKP_LSHIFT( -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ], QPoly - 16 ); /* QPoly */
-        Q[ k ] = SKP_LSHIFT( -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ], QPoly - 16 ); /* QPoly */
-#endif
-    }
-
-    /* Divide out zeros as we have that for even filter orders, */
-    /* z =  1 is always a root in Q, and                        */
-    /* z = -1 is always a root in P                             */
-    for( k = dd; k &gt; 0; k-- ) {
-        P[ k - 1 ] -= P[ k ];
-        Q[ k - 1 ] += Q[ k ];
-    }
-
-    /* Transform polynomials from cos(n*f) to cos(f)^n */
-    SKP_Silk_A2NLSF_trans_poly( P, dd );
-    SKP_Silk_A2NLSF_trans_poly( Q, dd );
-}
-
-/* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter coefficients        */
-/* If not all roots are found, the a_Q16 coefficients are bandwidth expanded until convergence.    */
-void SKP_Silk_A2NLSF(
-    SKP_int          *NLSF,                 /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d]    */
-    SKP_int32        *a_Q16,                /* I/O  Monic whitening filter coefficients in Q16 [d]                   */
-    const SKP_int    d                      /* I    Filter order (must be even)                                      */
-)
-{
-    SKP_int      i, k, m, dd, root_ix, ffrac;
-    SKP_int32 xlo, xhi, xmid;
-    SKP_int32 ylo, yhi, ymid;
-    SKP_int32 nom, den;
-    SKP_int32 P[ SigProc_MAX_ORDER_LPC / 2 + 1 ];
-    SKP_int32 Q[ SigProc_MAX_ORDER_LPC / 2 + 1 ];
-    SKP_int32 *PQ[ 2 ];
-    SKP_int32 *p;
-
-    /* Store pointers to array */
-    PQ[ 0 ] = P;
-    PQ[ 1 ] = Q;
-
-    dd = SKP_RSHIFT( d, 1 );
-
-    SKP_Silk_A2NLSF_init( a_Q16, P, Q, dd );
-
-
-
-
-
-
-    /* Find roots, alternating between P and Q */
-    p = P;    /* Pointer to polynomial */
-
-    xlo = SKP_Silk_LSFCosTab_FIX_Q12[ 0 ]; // Q12
-    ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
-
-    if( ylo &lt; 0 ) {
-        /* Set the first NLSF to zero and move on to the next */
-        NLSF[ 0 ] = 0;
-        p = Q;                      /* Pointer to polynomial */
-        ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
-        root_ix = 1;                /* Index of current root */
-    } else {
-        root_ix = 0;                /* Index of current root */
-    }
-    k = 1;                          /* Loop counter */
-    i = 0;                          /* Counter for bandwidth expansions applied */
-    while( 1 ) {
-        /* Evaluate polynomial */
-#if OVERSAMPLE_COSINE_TABLE
-        xhi = SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] +
-          ( ( SKP_Silk_LSFCosTab_FIX_Q12[ ( k + 1 ) &gt;&gt; 1 ] -
-              SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] ) &gt;&gt; 1 );    /* Q12 */
-#else
-        xhi = SKP_Silk_LSFCosTab_FIX_Q12[ k ]; /* Q12 */
-#endif
-        yhi = SKP_Silk_A2NLSF_eval_poly( p, xhi, dd );
-
-        /* Detect zero crossing */
-        if( ( ylo &lt;= 0 &amp;&amp; yhi &gt;= 0 ) || ( ylo &gt;= 0 &amp;&amp; yhi &lt;= 0 ) ) {
-            /* Binary division */
-#if OVERSAMPLE_COSINE_TABLE
-            ffrac = -128;
-#else
-            ffrac = -256;
-#endif
-            for( m = 0; m &lt; BIN_DIV_STEPS_A2NLSF_FIX; m++ ) {
-                /* Evaluate polynomial */
-                xmid = SKP_RSHIFT_ROUND( xlo + xhi, 1 );
-                ymid = SKP_Silk_A2NLSF_eval_poly( p, xmid, dd );
-
-                /* Detect zero crossing */
-                if( ( ylo &lt;= 0 &amp;&amp; ymid &gt;= 0 ) || ( ylo &gt;= 0 &amp;&amp; ymid &lt;= 0 ) ) {
-                    /* Reduce frequency */
-                    xhi = xmid;
-                    yhi = ymid;
-                } else {
-                    /* Increase frequency */
-
-
-
-
-
-                    xlo = xmid;
-                    ylo = ymid;
-#if OVERSAMPLE_COSINE_TABLE
-                    ffrac = SKP_ADD_RSHIFT( ffrac,  64, m );
-#else
-                    ffrac = SKP_ADD_RSHIFT( ffrac, 128, m );
-#endif
-                }
-            }
-
-            /* Interpolate */
-            if( SKP_abs( ylo ) &lt; 65536 ) {
-                /* Avoid dividing by zero */
-                den = ylo - yhi;
-                nom = SKP_LSHIFT( ylo, 8 - BIN_DIV_STEPS_A2NLSF_FIX ) + SKP_RSHIFT( den, 1 );
-                if( den != 0 ) {
-                    ffrac += SKP_DIV32( nom, den );
-                }
-            } else {
-                /* No risk of dividing by zero because abs(ylo - yhi) &gt;= abs(ylo) &gt;= 65536 */
-                ffrac += SKP_DIV32( ylo, SKP_RSHIFT( ylo - yhi, 8 - BIN_DIV_STEPS_A2NLSF_FIX ) );
-            }
-#if OVERSAMPLE_COSINE_TABLE
-            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 7 ) + ffrac, SKP_int16_MAX );
-#else
-            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 8 ) + ffrac, SKP_int16_MAX );
-#endif
-
-            SKP_assert( NLSF[ root_ix ] &gt;=     0 );
-            SKP_assert( NLSF[ root_ix ] &lt;= 32767 );
-
-            root_ix++;        /* Next root */
-            if( root_ix &gt;= d ) {
-                /* Found all roots */
-                break;
-            }
-            /* Alternate pointer to polynomial */
-            p = PQ[ root_ix &amp; 1 ];
-
-            /* Evaluate polynomial */
-#if OVERSAMPLE_COSINE_TABLE
-            xlo = SKP_Silk_LSFCosTab_FIX_Q12[ ( k - 1 ) &gt;&gt; 1 ] +
-              ( ( SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] -
-                  SKP_Silk_LSFCosTab_FIX_Q12[ ( k - 1 ) &gt;&gt; 1 ] ) &gt;&gt; 1 ); // Q12
-#else
-            xlo = SKP_Silk_LSFCosTab_FIX_Q12[ k - 1 ]; // Q12
-#endif
-            ylo = SKP_LSHIFT( 1 - ( root_ix &amp; 2 ), 12 );
-
-
-
-
-
-        } else {
-            /* Increment loop counter */
-            k++;
-            xlo    = xhi;
-            ylo    = yhi;
-
-#if OVERSAMPLE_COSINE_TABLE
-            if( k &gt; 2 * LSF_COS_TAB_SZ_FIX ) {
-#else
-            if( k &gt; LSF_COS_TAB_SZ_FIX ) {
-#endif
-                i++;
-                if( i &gt; MAX_ITERATIONS_A2NLSF_FIX ) {
-                    /* Set NLSFs to white spectrum and exit */
-                    NLSF[ 0 ] = SKP_DIV32_16( 1 &lt;&lt; 15, d + 1 );
-                    for( k = 1; k &lt; d; k++ ) {
-                        NLSF[ k ] = SKP_SMULBB( k + 1, NLSF[ 0 ] );
-                    }
-                    return;
-                }
-
-                /* Error: Apply progressively more bandwidth expansion and run again */
-                SKP_Silk_bwexpander_32( a_Q16, d, 65536 - SKP_SMULBB( 66, i ) ); // 66_Q16 = 0.001
-
-                SKP_Silk_A2NLSF_init( a_Q16, P, Q, dd );
-                p = P;                            /* Pointer to polynomial */
-                xlo = SKP_Silk_LSFCosTab_FIX_Q12[ 0 ]; // Q12
-                ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
-                if( ylo &lt; 0 ) {
-                    /* Set the first NLSF to zero and move on to the next */
-                    NLSF[ 0 ] = 0;
-                    p = Q;                        /* Pointer to polynomial */
-                    ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
-                    root_ix = 1;                /* Index of current root */
-                } else {
-                    root_ix = 0;                /* Index of current root */
-                }
-                k = 1;                            /* Reset loop counter */
-            }
-        }
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/* Conversion between prediction filter coefficients and NLSFs  */
+/* Requires the order to be an even number                      */
+/* A piecewise linear approximation maps LSF &lt;-&gt; cos(LSF)       */
+/* Therefore the result is not accurate NLSFs, but the two      */
+/* function are accurate inverses of each other                 */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Number of binary divisions, when not in low complexity mode */
+#define BIN_DIV_STEPS_A2NLSF_FIX      2 /* must be no higher than 16 - log2( LSF_COS_TAB_SZ_FIX ) */
+#define QPoly                        16
+#define MAX_ITERATIONS_A2NLSF_FIX    50
+
+/* Flag for using 2x as many cosine sampling points, reduces the risk of missing a root */
+#define OVERSAMPLE_COSINE_TABLE       0
+
+/* Helper function for A2NLSF(..)                    */
+/* Transforms polynomials from cos(n*f) to cos(f)^n  */
+SKP_INLINE void SKP_Silk_A2NLSF_trans_poly(
+    SKP_int32        *p,    /* I/O    Polynomial                                */
+    const SKP_int    dd     /* I      Polynomial order (= filter order / 2 )    */
+)
+{
+    SKP_int k, n;
+    
+    for( k = 2; k &lt;= dd; k++ ) {
+        for( n = dd; n &gt; k; n-- ) {
+            p[ n - 2 ] -= p[ n ];
+        }
+        p[ k - 2 ] -= SKP_LSHIFT( p[ k ], 1 );
+    }
+}    
+
+/* Helper function for A2NLSF(..)                    */
+/* Polynomial evaluation                             */
+SKP_INLINE SKP_int32 SKP_Silk_A2NLSF_eval_poly(    /* return the polynomial evaluation, in QPoly */
+    SKP_int32        *p,    /* I    Polynomial, QPoly        */
+    const SKP_int32    x,   /* I    Evaluation point, Q12    */
+    const SKP_int    dd     /* I    Order                    */
+)
+{
+    SKP_int   n;
+    SKP_int32 x_Q16, y32;
+
+    y32 = p[ dd ];                                    /* QPoly */
+    x_Q16 = SKP_LSHIFT( x, 4 );
+    for( n = dd - 1; n &gt;= 0; n-- ) {
+        y32 = SKP_SMLAWW( p[ n ], y32, x_Q16 );       /* QPoly */
+    }
+    return y32;
+}
+
+SKP_INLINE void SKP_Silk_A2NLSF_init(
+     const SKP_int32    *a_Q16,
+     SKP_int32            *P, 
+     SKP_int32            *Q, 
+     const SKP_int        dd
+) 
+{
+    SKP_int k;
+
+    /* Convert filter coefs to even and odd polynomials */
+    P[dd] = SKP_LSHIFT( 1, QPoly );
+    Q[dd] = SKP_LSHIFT( 1, QPoly );
+    for( k = 0; k &lt; dd; k++ ) {
+#if( QPoly &lt; 16 )
+        P[ k ] = SKP_RSHIFT_ROUND( -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ], 16 - QPoly ); /* QPoly */
+        Q[ k ] = SKP_RSHIFT_ROUND( -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ], 16 - QPoly ); /* QPoly */
+#elif( Qpoly == 16 )
+        P[ k ] = -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ]; // QPoly
+        Q[ k ] = -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ]; // QPoly
+#else
+        P[ k ] = SKP_LSHIFT( -a_Q16[ dd - k - 1 ] - a_Q16[ dd + k ], QPoly - 16 ); /* QPoly */
+        Q[ k ] = SKP_LSHIFT( -a_Q16[ dd - k - 1 ] + a_Q16[ dd + k ], QPoly - 16 ); /* QPoly */
+#endif
+    }
+
+    /* Divide out zeros as we have that for even filter orders, */
+    /* z =  1 is always a root in Q, and                        */
+    /* z = -1 is always a root in P                             */
+    for( k = dd; k &gt; 0; k-- ) {
+        P[ k - 1 ] -= P[ k ]; 
+        Q[ k - 1 ] += Q[ k ]; 
+    }
+
+    /* Transform polynomials from cos(n*f) to cos(f)^n */
+    SKP_Silk_A2NLSF_trans_poly( P, dd );
+    SKP_Silk_A2NLSF_trans_poly( Q, dd );
+}
+
+/* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter coefficients        */
+/* If not all roots are found, the a_Q16 coefficients are bandwidth expanded until convergence.    */
+void SKP_Silk_A2NLSF(
+    SKP_int          *NLSF,                 /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d]    */
+    SKP_int32        *a_Q16,                /* I/O  Monic whitening filter coefficients in Q16 [d]                   */
+    const SKP_int    d                      /* I    Filter order (must be even)                                      */
+)
+{
+    SKP_int      i, k, m, dd, root_ix, ffrac;
+    SKP_int32 xlo, xhi, xmid;
+    SKP_int32 ylo, yhi, ymid;
+    SKP_int32 nom, den;
+    SKP_int32 P[ SigProc_MAX_ORDER_LPC / 2 + 1 ];
+    SKP_int32 Q[ SigProc_MAX_ORDER_LPC / 2 + 1 ];
+    SKP_int32 *PQ[ 2 ];
+    SKP_int32 *p;
+
+    /* Store pointers to array */
+    PQ[ 0 ] = P;
+    PQ[ 1 ] = Q;
+
+    dd = SKP_RSHIFT( d, 1 );
+
+    SKP_Silk_A2NLSF_init( a_Q16, P, Q, dd );
+
+    /* Find roots, alternating between P and Q */
+    p = P;    /* Pointer to polynomial */
+    
+    xlo = SKP_Silk_LSFCosTab_FIX_Q12[ 0 ]; // Q12
+    ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
+
+    if( ylo &lt; 0 ) {
+        /* Set the first NLSF to zero and move on to the next */
+        NLSF[ 0 ] = 0;
+        p = Q;                      /* Pointer to polynomial */
+        ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
+        root_ix = 1;                /* Index of current root */
+    } else {
+        root_ix = 0;                /* Index of current root */
+    }
+    k = 1;                          /* Loop counter */
+    i = 0;                          /* Counter for bandwidth expansions applied */
+    while( 1 ) {
+        /* Evaluate polynomial */
+#if OVERSAMPLE_COSINE_TABLE
+        xhi = SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] +
+          ( ( SKP_Silk_LSFCosTab_FIX_Q12[ ( k + 1 ) &gt;&gt; 1 ] - 
+              SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] ) &gt;&gt; 1 );    /* Q12 */
+#else
+        xhi = SKP_Silk_LSFCosTab_FIX_Q12[ k ]; /* Q12 */
+#endif
+        yhi = SKP_Silk_A2NLSF_eval_poly( p, xhi, dd );
+        
+        /* Detect zero crossing */
+        if( ( ylo &lt;= 0 &amp;&amp; yhi &gt;= 0 ) || ( ylo &gt;= 0 &amp;&amp; yhi &lt;= 0 ) ) {
+            /* Binary division */
+#if OVERSAMPLE_COSINE_TABLE
+            ffrac = -128;
+#else
+            ffrac = -256;
+#endif
+            for( m = 0; m &lt; BIN_DIV_STEPS_A2NLSF_FIX; m++ ) {
+                /* Evaluate polynomial */
+                xmid = SKP_RSHIFT_ROUND( xlo + xhi, 1 );
+                ymid = SKP_Silk_A2NLSF_eval_poly( p, xmid, dd );
+
+                /* Detect zero crossing */
+                if( ( ylo &lt;= 0 &amp;&amp; ymid &gt;= 0 ) || ( ylo &gt;= 0 &amp;&amp; ymid &lt;= 0 ) ) {
+                    /* Reduce frequency */
+                    xhi = xmid;
+                    yhi = ymid;
+                } else {
+                    /* Increase frequency */
+                    xlo = xmid;
+                    ylo = ymid;
+#if OVERSAMPLE_COSINE_TABLE
+                    ffrac = SKP_ADD_RSHIFT( ffrac,  64, m );
+#else
+                    ffrac = SKP_ADD_RSHIFT( ffrac, 128, m );
+#endif
+                }
+            }
+            
+            /* Interpolate */
+            if( SKP_abs( ylo ) &lt; 65536 ) {
+                /* Avoid dividing by zero */
+                den = ylo - yhi;
+                nom = SKP_LSHIFT( ylo, 8 - BIN_DIV_STEPS_A2NLSF_FIX ) + SKP_RSHIFT( den, 1 );
+                if( den != 0 ) {
+                    ffrac += SKP_DIV32( nom, den );
+                }
+            } else {
+                /* No risk of dividing by zero because abs(ylo - yhi) &gt;= abs(ylo) &gt;= 65536 */
+                ffrac += SKP_DIV32( ylo, SKP_RSHIFT( ylo - yhi, 8 - BIN_DIV_STEPS_A2NLSF_FIX ) );
+            }
+#if OVERSAMPLE_COSINE_TABLE
+            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 7 ) + ffrac, SKP_int16_MAX ); 
+#else
+            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 8 ) + ffrac, SKP_int16_MAX ); 
+#endif
+
+            SKP_assert( NLSF[ root_ix ] &gt;=     0 );
+            SKP_assert( NLSF[ root_ix ] &lt;= 32767 );
+
+            root_ix++;        /* Next root */
+            if( root_ix &gt;= d ) {
+                /* Found all roots */
+                break;
+            }
+            /* Alternate pointer to polynomial */
+            p = PQ[ root_ix &amp; 1 ];
+            
+            /* Evaluate polynomial */
+#if OVERSAMPLE_COSINE_TABLE
+            xlo = SKP_Silk_LSFCosTab_FIX_Q12[ ( k - 1 ) &gt;&gt; 1 ] +
+              ( ( SKP_Silk_LSFCosTab_FIX_Q12[   k       &gt;&gt; 1 ] - 
+                  SKP_Silk_LSFCosTab_FIX_Q12[ ( k - 1 ) &gt;&gt; 1 ] ) &gt;&gt; 1 ); // Q12
+#else
+            xlo = SKP_Silk_LSFCosTab_FIX_Q12[ k - 1 ]; // Q12
+#endif
+            ylo = SKP_LSHIFT( 1 - ( root_ix &amp; 2 ), 12 );
+        } else {
+            /* Increment loop counter */
+            k++;
+            xlo    = xhi;
+            ylo    = yhi;
+            
+#if OVERSAMPLE_COSINE_TABLE
+            if( k &gt; 2 * LSF_COS_TAB_SZ_FIX ) {
+#else
+            if( k &gt; LSF_COS_TAB_SZ_FIX ) {
+#endif
+                i++;
+                if( i &gt; MAX_ITERATIONS_A2NLSF_FIX ) {
+                    /* Set NLSFs to white spectrum and exit */
+                    NLSF[ 0 ] = SKP_DIV32_16( 1 &lt;&lt; 15, d + 1 );
+                    for( k = 1; k &lt; d; k++ ) {
+                        NLSF[ k ] = SKP_SMULBB( k + 1, NLSF[ 0 ] );
+                    }
+                    return;
+                }
+
+                /* Error: Apply progressively more bandwidth expansion and run again */
+                SKP_Silk_bwexpander_32( a_Q16, d, 65536 - SKP_SMULBB( 66, i ) ); // 66_Q16 = 0.001
+
+                SKP_Silk_A2NLSF_init( a_Q16, P, Q, dd );
+                p = P;                            /* Pointer to polynomial */
+                xlo = SKP_Silk_LSFCosTab_FIX_Q12[ 0 ]; // Q12
+                ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
+                if( ylo &lt; 0 ) {
+                    /* Set the first NLSF to zero and move on to the next */
+                    NLSF[ 0 ] = 0;
+                    p = Q;                        /* Pointer to polynomial */
+                    ylo = SKP_Silk_A2NLSF_eval_poly( p, xlo, dd );
+                    root_ix = 1;                /* Index of current root */
+                } else {
+                    root_ix = 0;                /* Index of current root */
+                }
+                k = 1;                            /* Reset loop counter */
+            }
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_CNGc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_CNG.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_CNG.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_CNG.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,175 +1,149 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Generates excitation for CNG LPC synthesis */
-SKP_INLINE void SKP_Silk_cng_exe(
-    SKP_int16                       residual[],         /* O    CNG residual signal Q0                      */
-    SKP_int32                       exc_buf_Q10[],      /* I    Random samples buffer Q10                   */
-    SKP_int32                       Gain_Q16,           /* I    Gain to aply                                */
-    SKP_int                         length,             /* I    Length                                      */
-    SKP_int32                       *rand_seed          /* I/O  Seed to random index generator              */
-)
-{
-    SKP_int32 seed;
-    SKP_int   i, idx, exc_mask;
-
-    exc_mask = CNG_BUF_MASK_MAX;
-    while( exc_mask &gt; length ) {
-        exc_mask = SKP_RSHIFT( exc_mask, 1 );
-    }
-
-    seed = *rand_seed;
-    for( i = 0; i &lt; length; i++ ) {
-        seed = SKP_RAND( seed );
-
-
-
-
-
-        idx = (SKP_int)( SKP_RSHIFT( seed, 24 ) &amp; exc_mask );
-        SKP_assert( idx &gt;= 0 );
-        SKP_assert( idx &lt;= CNG_BUF_MASK_MAX );
-        residual[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( exc_buf_Q10[ idx ], Gain_Q16 ), 10 ) );
-    }
-    *rand_seed = seed;
-}
-
-void SKP_Silk_CNG_Reset(
-    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state                               */
-)
-{
-    SKP_int i, NLSF_step_Q15, NLSF_acc_Q15;
-
-    NLSF_step_Q15 = SKP_DIV32_16( SKP_int16_MAX, psDec-&gt;LPC_order + 1 );
-    NLSF_acc_Q15 = 0;
-    for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
-        NLSF_acc_Q15 += NLSF_step_Q15;
-        psDec-&gt;sCNG.CNG_smth_NLSF_Q15[ i ] = NLSF_acc_Q15;
-    }
-    psDec-&gt;sCNG.CNG_smth_Gain_Q16 = 0;
-    psDec-&gt;sCNG.rand_seed = 3176576;
-}
-
-/* Updates CNG estimate, and applies the CNG when packet was lost   */
-void SKP_Silk_CNG(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state                               */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int16                   signal[],           /* I/O  Signal                                      */
-    SKP_int                     length              /* I    Length of residual                          */
-)
-{
-    SKP_int   i, subfr;
-    SKP_int32 tmp_32, Gain_Q26, max_Gain_Q16;
-    SKP_int16 LPC_buf[ MAX_LPC_ORDER ];
-    SKP_int16 CNG_sig[ MAX_FRAME_LENGTH ];
-    SKP_Silk_CNG_struct *psCNG;
-    psCNG = &amp;psDec-&gt;sCNG;
-
-    if( psDec-&gt;fs_kHz != psCNG-&gt;fs_kHz ) {
-        /* Reset state */
-        SKP_Silk_CNG_Reset( psDec );
-
-        psCNG-&gt;fs_kHz = psDec-&gt;fs_kHz;
-    }
-    if( psDec-&gt;lossCnt == 0 &amp;&amp; psDec-&gt;vadFlag == NO_VOICE_ACTIVITY ) {
-        /* Update CNG parameters */
-
-
-
-
-
-
-        /* Smoothing of LSF's  */
-        for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
-            psCNG-&gt;CNG_smth_NLSF_Q15[ i ] += SKP_SMULWB( psDec-&gt;prevNLSF_Q15[ i ] - psCNG-&gt;CNG_smth_NLSF_Q15[ i ], CNG_NLSF_SMTH_Q16 );
-        }
-        /* Find the subframe with the highest gain */
-        max_Gain_Q16 = 0;
-        subfr        = 0;
-        for( i = 0; i &lt; NB_SUBFR; i++ ) {
-            if( psDecCtrl-&gt;Gains_Q16[ i ] &gt; max_Gain_Q16 ) {
-                max_Gain_Q16 = psDecCtrl-&gt;Gains_Q16[ i ];
-                subfr        = i;
-            }
-        }
-        /* Update CNG excitation buffer with excitation from this subframe */
-        SKP_memmove( &amp;psCNG-&gt;CNG_exc_buf_Q10[ psDec-&gt;subfr_length ], psCNG-&gt;CNG_exc_buf_Q10, ( NB_SUBFR - 1 ) * psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
-        SKP_memcpy(   psCNG-&gt;CNG_exc_buf_Q10, &amp;psDec-&gt;exc_Q10[ subfr * psDec-&gt;subfr_length ], psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
-
-        /* Smooth gains */
-        for( i = 0; i &lt; NB_SUBFR; i++ ) {
-            psCNG-&gt;CNG_smth_Gain_Q16 += SKP_SMULWB( psDecCtrl-&gt;Gains_Q16[ i ] - psCNG-&gt;CNG_smth_Gain_Q16, CNG_GAIN_SMTH_Q16 );
-        }
-    }
-
-    /* Add CNG when packet is lost and / or when low speech activity */
-    if( psDec-&gt;lossCnt ) {//|| psDec-&gt;vadFlag == NO_VOICE_ACTIVITY ) {
-
-        /* Generate CNG excitation */
-        SKP_Silk_cng_exe( CNG_sig, psCNG-&gt;CNG_exc_buf_Q10,
-                psCNG-&gt;CNG_smth_Gain_Q16, length, &amp;psCNG-&gt;rand_seed );
-
-        /* Convert CNG NLSF to filter representation */
-        SKP_Silk_NLSF2A_stable( LPC_buf, psCNG-&gt;CNG_smth_NLSF_Q15, psDec-&gt;LPC_order );
-
-        Gain_Q26 = (SKP_int32)1 &lt;&lt; 26; /* 1.0 */
-
-        /* Generate CNG signal, by synthesis filtering */
-        if( psDec-&gt;LPC_order == 16 ) {
-            SKP_Silk_LPC_synthesis_order16( CNG_sig, LPC_buf,
-                Gain_Q26, psCNG-&gt;CNG_synth_state, CNG_sig, length );
-        } else {
-            SKP_Silk_LPC_synthesis_filter( CNG_sig, LPC_buf,
-                Gain_Q26, psCNG-&gt;CNG_synth_state, CNG_sig, length, psDec-&gt;LPC_order );
-        }
-        /* Mix with signal */
-        for( i = 0; i &lt; length; i++ ) {
-            tmp_32 = signal[ i ] + CNG_sig[ i ];
-            signal[ i ] = SKP_SAT16( tmp_32 );
-        }
-
-
-
-
-
-    } else {
-        SKP_memset( psCNG-&gt;CNG_synth_state, 0, psDec-&gt;LPC_order *  sizeof( SKP_int32 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Generates excitation for CNG LPC synthesis */
+SKP_INLINE void SKP_Silk_CNG_exc(
+    SKP_int16                       residual[],         /* O    CNG residual signal Q0                      */
+    SKP_int32                       exc_buf_Q10[],      /* I    Random samples buffer Q10                   */
+    SKP_int32                       Gain_Q16,           /* I    Gain to apply                               */
+    SKP_int                         length,             /* I    Length                                      */
+    SKP_int32                       *rand_seed          /* I/O  Seed to random index generator              */
+)
+{
+    SKP_int32 seed;
+    SKP_int   i, idx, exc_mask;
+
+    exc_mask = CNG_BUF_MASK_MAX;
+    while( exc_mask &gt; length ) {
+        exc_mask = SKP_RSHIFT( exc_mask, 1 );
+    }
+
+    seed = *rand_seed;
+    for( i = 0; i &lt; length; i++ ) {
+        seed = SKP_RAND( seed );
+        idx = ( SKP_int )( SKP_RSHIFT( seed, 24 ) &amp; exc_mask );
+        SKP_assert( idx &gt;= 0 );
+        SKP_assert( idx &lt;= CNG_BUF_MASK_MAX );
+        residual[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( exc_buf_Q10[ idx ], Gain_Q16 ), 10 ) );
+    }
+    *rand_seed = seed;
+}
+
+void SKP_Silk_CNG_Reset(
+    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state                               */
+)
+{
+    SKP_int i, NLSF_step_Q15, NLSF_acc_Q15;
+
+    NLSF_step_Q15 = SKP_DIV32_16( SKP_int16_MAX, psDec-&gt;LPC_order + 1 );
+    NLSF_acc_Q15 = 0;
+    for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
+        NLSF_acc_Q15 += NLSF_step_Q15;
+        psDec-&gt;sCNG.CNG_smth_NLSF_Q15[ i ] = NLSF_acc_Q15;
+    }
+    psDec-&gt;sCNG.CNG_smth_Gain_Q16 = 0;
+    psDec-&gt;sCNG.rand_seed = 3176576;
+}
+
+/* Updates CNG estimate, and applies the CNG when packet was lost   */
+void SKP_Silk_CNG(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state                               */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int16                   signal[],           /* I/O  Signal                                      */
+    SKP_int                     length              /* I    Length of residual                          */
+)
+{
+    SKP_int   i, subfr;
+    SKP_int32 tmp_32, Gain_Q26, max_Gain_Q16;
+    SKP_int16 LPC_buf[ MAX_LPC_ORDER ];
+    SKP_int16 CNG_sig[ MAX_FRAME_LENGTH ];
+    SKP_Silk_CNG_struct *psCNG;
+    psCNG = &amp;psDec-&gt;sCNG;
+
+    if( psDec-&gt;fs_kHz != psCNG-&gt;fs_kHz ) {
+        /* Reset state */
+        SKP_Silk_CNG_Reset( psDec );
+
+        psCNG-&gt;fs_kHz = psDec-&gt;fs_kHz;
+    }
+    if( psDec-&gt;lossCnt == 0 &amp;&amp; psDec-&gt;vadFlag == NO_VOICE_ACTIVITY ) {
+        /* Update CNG parameters */
+
+        /* Smoothing of LSF's  */
+        for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
+            psCNG-&gt;CNG_smth_NLSF_Q15[ i ] += SKP_SMULWB( psDec-&gt;prevNLSF_Q15[ i ] - psCNG-&gt;CNG_smth_NLSF_Q15[ i ], CNG_NLSF_SMTH_Q16 );
+        }
+        /* Find the subframe with the highest gain */
+        max_Gain_Q16 = 0;
+        subfr        = 0;
+        for( i = 0; i &lt; NB_SUBFR; i++ ) {
+            if( psDecCtrl-&gt;Gains_Q16[ i ] &gt; max_Gain_Q16 ) {
+                max_Gain_Q16 = psDecCtrl-&gt;Gains_Q16[ i ];
+                subfr        = i;
+            }
+        }
+        /* Update CNG excitation buffer with excitation from this subframe */
+        SKP_memmove( &amp;psCNG-&gt;CNG_exc_buf_Q10[ psDec-&gt;subfr_length ], psCNG-&gt;CNG_exc_buf_Q10, ( NB_SUBFR - 1 ) * psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
+        SKP_memcpy(   psCNG-&gt;CNG_exc_buf_Q10, &amp;psDec-&gt;exc_Q10[ subfr * psDec-&gt;subfr_length ], psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
+
+        /* Smooth gains */
+        for( i = 0; i &lt; NB_SUBFR; i++ ) {
+            psCNG-&gt;CNG_smth_Gain_Q16 += SKP_SMULWB( psDecCtrl-&gt;Gains_Q16[ i ] - psCNG-&gt;CNG_smth_Gain_Q16, CNG_GAIN_SMTH_Q16 );
+        }
+    }
+
+    /* Add CNG when packet is lost and / or when low speech activity */
+    if( psDec-&gt;lossCnt ) {//|| psDec-&gt;vadFlag == NO_VOICE_ACTIVITY ) {
+
+        /* Generate CNG excitation */
+        SKP_Silk_CNG_exc( CNG_sig, psCNG-&gt;CNG_exc_buf_Q10, 
+                psCNG-&gt;CNG_smth_Gain_Q16, length, &amp;psCNG-&gt;rand_seed );
+
+        /* Convert CNG NLSF to filter representation */
+        SKP_Silk_NLSF2A_stable( LPC_buf, psCNG-&gt;CNG_smth_NLSF_Q15, psDec-&gt;LPC_order );
+
+        Gain_Q26 = ( SKP_int32 )1 &lt;&lt; 26; /* 1.0 */
+        
+        /* Generate CNG signal, by synthesis filtering */
+        if( psDec-&gt;LPC_order == 16 ) {
+            SKP_Silk_LPC_synthesis_order16( CNG_sig, LPC_buf, 
+                Gain_Q26, psCNG-&gt;CNG_synth_state, CNG_sig, length );
+        } else {
+            SKP_Silk_LPC_synthesis_filter( CNG_sig, LPC_buf, 
+                Gain_Q26, psCNG-&gt;CNG_synth_state, CNG_sig, length, psDec-&gt;LPC_order );
+        }
+        /* Mix with signal */
+        for( i = 0; i &lt; length; i++ ) {
+            tmp_32 = signal[ i ] + CNG_sig[ i ];
+            signal[ i ] = SKP_SAT16( tmp_32 );
+        }
+    } else {
+        SKP_memset( psCNG-&gt;CNG_synth_state, 0, psDec-&gt;LPC_order *  sizeof( SKP_int32 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_HP_variable_cutoff_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,135 +1,118 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-#if HIGH_PASS_INPUT
-
-#define SKP_RADIANS_CONSTANT_Q19            1482    // 0.45f * 2.0f * 3.14159265359 / 1000
-#define SKP_LOG2_VARIABLE_HP_MIN_FREQ_Q7    809     // log(80) in Q7
-
-/* High-pass filter with cutoff frequency adaptation based on pitch lag statistics */
-void SKP_Silk_HP_variable_cutoff_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Encoder state FIX                           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,         /* I/O  Encoder control FIX                         */
-    SKP_int16                       *out,               /* O    high-pass filtered output signal            */
-    const SKP_int16                 *in                 /* I    input signal                                */
-)
-{
-    SKP_int   quality_Q15;
-    SKP_int32 B_Q28[ 3 ], A_Q28[ 2 ];
-    SKP_int32 Fc_Q19, r_Q28, r_Q22;
-    SKP_int32 pitch_freq_Hz_Q16, pitch_freq_log_Q7, delta_freq_Q7;
-
-
-
-
-
-    /*********************************************/
-    /* Estimate Low End of Pitch Frequency Range */
-    /*********************************************/
-    if( psEnc-&gt;sCmn.prev_sigtype == SIG_TYPE_VOICED ) {
-        /* difference, in log domain */
-        pitch_freq_Hz_Q16 = SKP_DIV32_16( SKP_LSHIFT( SKP_MUL( psEnc-&gt;sCmn.fs_kHz, 1000 ), 16 ), psEnc-&gt;sCmn.prevLag );
-        pitch_freq_log_Q7 = SKP_Silk_lin2log( pitch_freq_Hz_Q16 ) - ( 16 &lt;&lt; 7 ); //0x70
-
-        /* adjustment based on quality */
-        quality_Q15 = psEncCtrl-&gt;input_quality_bands_Q15[ 0 ];
-        pitch_freq_log_Q7 = SKP_SUB32( pitch_freq_log_Q7, SKP_SMULWB( SKP_SMULWB( SKP_LSHIFT( quality_Q15, 2 ), quality_Q15 ),
-            pitch_freq_log_Q7 - SKP_LOG2_VARIABLE_HP_MIN_FREQ_Q7 ) );
-        pitch_freq_log_Q7 = SKP_ADD32( pitch_freq_log_Q7, SKP_RSHIFT( 19661 - quality_Q15, 9 ) ); // 19661_Q15 = 0.6_Q0
-
-        //delta_freq = pitch_freq_log - psEnc-&gt;variable_HP_smth1;
-        delta_freq_Q7 = pitch_freq_log_Q7 - SKP_RSHIFT( psEnc-&gt;variable_HP_smth1_Q15, 8 );
-        if( delta_freq_Q7 &lt; 0 ) {
-            /* less smoothing for decreasing pitch frequency, to track something close to the minimum */
-            delta_freq_Q7 = SKP_MUL( delta_freq_Q7, 3 );
-        }
-
-        /* limit delta, to reduce impact of outliers */
-        delta_freq_Q7 = SKP_LIMIT( delta_freq_Q7, -VARIABLE_HP_MAX_DELTA_FREQ_Q7, VARIABLE_HP_MAX_DELTA_FREQ_Q7 );
-
-        /* update smoother */
-        psEnc-&gt;variable_HP_smth1_Q15 = SKP_SMLAWB( psEnc-&gt;variable_HP_smth1_Q15,
-            SKP_MUL( SKP_LSHIFT( psEnc-&gt;speech_activity_Q8, 1 ), delta_freq_Q7 ), VARIABLE_HP_SMTH_COEF1_Q16 );
-    }
-    /* second smoother */
-    psEnc-&gt;variable_HP_smth2_Q15 = SKP_SMLAWB( psEnc-&gt;variable_HP_smth2_Q15,
-        psEnc-&gt;variable_HP_smth1_Q15 - psEnc-&gt;variable_HP_smth2_Q15, VARIABLE_HP_SMTH_COEF2_Q16 );
-
-    /* convert from log scale to Hertz */
-    psEncCtrl-&gt;pitch_freq_low_Hz = SKP_Silk_log2lin( SKP_RSHIFT( psEnc-&gt;variable_HP_smth2_Q15, 8 ) ); //pow( 2.0, psEnc-&gt;variable_HP_smth2 );
-
-    /* limit frequency range */
-    psEncCtrl-&gt;pitch_freq_low_Hz = SKP_LIMIT( psEncCtrl-&gt;pitch_freq_low_Hz, VARIABLE_HP_MIN_FREQ_Q0, VARIABLE_HP_MAX_FREQ_Q0 );
-
-    /********************************/
-    /* Compute Filter Coefficients  */
-    /********************************/
-    /* compute cut-off frequency, in radians */
-    //Fc_num   = (SKP_float)( 0.45f * 2.0f * 3.14159265359 * psEncCtrl-&gt;pitch_freq_low_Hz );
-    //Fc_denom = (SKP_float)( 1e3f * psEnc-&gt;sCmn.fs_kHz );
-    SKP_assert( psEncCtrl-&gt;pitch_freq_low_Hz &lt;= SKP_int32_MAX / SKP_RADIANS_CONSTANT_Q19 );
-    Fc_Q19 = SKP_DIV32_16( SKP_SMULBB( SKP_RADIANS_CONSTANT_Q19, psEncCtrl-&gt;pitch_freq_low_Hz ), psEnc-&gt;sCmn.fs_kHz ); // range: 3704 - 27787, 11-15 bits
-    SKP_assert( Fc_Q19 &gt;=  3704 );
-    SKP_assert( Fc_Q19 &lt;= 27787 );
-
-
-
-
-
-    r_Q28 = ( 1 &lt;&lt; 28 ) - SKP_MUL( 471, Fc_Q19 ); // 471_Q9 = 0.92_Q0, range: 255347779 to 266690872, 27-28 bits
-    SKP_assert( r_Q28 &gt;= 255347779 );
-    SKP_assert( r_Q28 &lt;= 266690872 );
-
-    /* b = r * [ 1; -2; 1 ]; */
-    /* a = [ 1; -2 * r * ( 1 - 0.5 * Fc^2 ); r^2 ]; */
-    B_Q28[ 0 ] = r_Q28;
-    B_Q28[ 1 ] = SKP_LSHIFT( -r_Q28, 1 );
-    B_Q28[ 2 ] = r_Q28;
-
-    // -r * ( 2 - Fc * Fc );
-    r_Q22  = SKP_RSHIFT( r_Q28, 6 );
-    A_Q28[ 0 ] = SKP_SMULWW( r_Q22, SKP_SMULWW( Fc_Q19, Fc_Q19 ) - ( 2 &lt;&lt; 22 ) );
-    A_Q28[ 1 ] = SKP_SMULWW( r_Q22, r_Q22 );
-
-    /********************************/
-    /* High-Pass Filter             */
-    /********************************/
-    SKP_Silk_biquad_alt( in, B_Q28, A_Q28, psEnc-&gt;sCmn.In_HP_State, out, psEnc-&gt;sCmn.frame_length );
-}
-
-#endif // HIGH_PASS_INPUT
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+#if HIGH_PASS_INPUT
+
+#define SKP_RADIANS_CONSTANT_Q19            1482    // 0.45f * 2.0f * 3.14159265359 / 1000
+#define SKP_LOG2_VARIABLE_HP_MIN_FREQ_Q7    809     // log(80) in Q7
+
+/* High-pass filter with cutoff frequency adaptation based on pitch lag statistics */
+void SKP_Silk_HP_variable_cutoff_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Encoder state FIX                           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,         /* I/O  Encoder control FIX                         */
+    SKP_int16                       *out,               /* O    high-pass filtered output signal            */
+    const SKP_int16                 *in                 /* I    input signal                                */
+)
+{
+    SKP_int   quality_Q15;
+    SKP_int32 B_Q28[ 3 ], A_Q28[ 2 ];
+    SKP_int32 Fc_Q19, r_Q28, r_Q22;
+    SKP_int32 pitch_freq_Hz_Q16, pitch_freq_log_Q7, delta_freq_Q7;
+
+    /*********************************************/
+    /* Estimate Low End of Pitch Frequency Range */
+    /*********************************************/
+    if( psEnc-&gt;sCmn.prev_sigtype == SIG_TYPE_VOICED ) {
+        /* difference, in log domain */
+        pitch_freq_Hz_Q16 = SKP_DIV32_16( SKP_LSHIFT( SKP_MUL( psEnc-&gt;sCmn.fs_kHz, 1000 ), 16 ), psEnc-&gt;sCmn.prevLag );
+        pitch_freq_log_Q7 = SKP_Silk_lin2log( pitch_freq_Hz_Q16 ) - ( 16 &lt;&lt; 7 ); //0x70
+
+        /* adjustment based on quality */
+        quality_Q15 = psEncCtrl-&gt;input_quality_bands_Q15[ 0 ];
+        pitch_freq_log_Q7 = SKP_SUB32( pitch_freq_log_Q7, SKP_SMULWB( SKP_SMULWB( SKP_LSHIFT( quality_Q15, 2 ), quality_Q15 ), 
+            pitch_freq_log_Q7 - SKP_LOG2_VARIABLE_HP_MIN_FREQ_Q7 ) );
+        pitch_freq_log_Q7 = SKP_ADD32( pitch_freq_log_Q7, SKP_RSHIFT( 19661 - quality_Q15, 9 ) ); // 19661_Q15 = 0.6_Q0
+
+        //delta_freq = pitch_freq_log - psEnc-&gt;variable_HP_smth1;
+        delta_freq_Q7 = pitch_freq_log_Q7 - SKP_RSHIFT( psEnc-&gt;variable_HP_smth1_Q15, 8 );
+        if( delta_freq_Q7 &lt; 0 ) {
+            /* less smoothing for decreasing pitch frequency, to track something close to the minimum */
+            delta_freq_Q7 = SKP_MUL( delta_freq_Q7, 3 );
+        }
+
+        /* limit delta, to reduce impact of outliers */
+        delta_freq_Q7 = SKP_LIMIT( delta_freq_Q7, -VARIABLE_HP_MAX_DELTA_FREQ_Q7, VARIABLE_HP_MAX_DELTA_FREQ_Q7 );
+
+        /* update smoother */
+        psEnc-&gt;variable_HP_smth1_Q15 = SKP_SMLAWB( psEnc-&gt;variable_HP_smth1_Q15, 
+            SKP_MUL( SKP_LSHIFT( psEnc-&gt;speech_activity_Q8, 1 ), delta_freq_Q7 ), VARIABLE_HP_SMTH_COEF1_Q16 );
+    }
+    /* second smoother */
+    psEnc-&gt;variable_HP_smth2_Q15 = SKP_SMLAWB( psEnc-&gt;variable_HP_smth2_Q15, 
+        psEnc-&gt;variable_HP_smth1_Q15 - psEnc-&gt;variable_HP_smth2_Q15, VARIABLE_HP_SMTH_COEF2_Q16 );
+
+    /* convert from log scale to Hertz */
+    psEncCtrl-&gt;pitch_freq_low_Hz = SKP_Silk_log2lin( SKP_RSHIFT( psEnc-&gt;variable_HP_smth2_Q15, 8 ) ); //pow( 2.0, psEnc-&gt;variable_HP_smth2 );
+
+    /* limit frequency range */
+    psEncCtrl-&gt;pitch_freq_low_Hz = SKP_LIMIT( psEncCtrl-&gt;pitch_freq_low_Hz, VARIABLE_HP_MIN_FREQ_Q0, VARIABLE_HP_MAX_FREQ_Q0 );
+
+    /********************************/
+    /* Compute Filter Coefficients  */
+    /********************************/
+    /* compute cut-off frequency, in radians */
+    //Fc_num   = (SKP_float)( 0.45f * 2.0f * 3.14159265359 * psEncCtrl-&gt;pitch_freq_low_Hz );
+    //Fc_denom = (SKP_float)( 1e3f * psEnc-&gt;sCmn.fs_kHz );
+    SKP_assert( psEncCtrl-&gt;pitch_freq_low_Hz &lt;= SKP_int32_MAX / SKP_RADIANS_CONSTANT_Q19 );
+    Fc_Q19 = SKP_DIV32_16( SKP_SMULBB( SKP_RADIANS_CONSTANT_Q19, psEncCtrl-&gt;pitch_freq_low_Hz ), psEnc-&gt;sCmn.fs_kHz ); // range: 3704 - 27787, 11-15 bits
+    SKP_assert( Fc_Q19 &gt;=  3704 );
+    SKP_assert( Fc_Q19 &lt;= 27787 );
+
+    r_Q28 = ( 1 &lt;&lt; 28 ) - SKP_MUL( 471, Fc_Q19 ); // 471_Q9 = 0.92_Q0, range: 255347779 to 266690872, 27-28 bits
+    SKP_assert( r_Q28 &gt;= 255347779 );
+    SKP_assert( r_Q28 &lt;= 266690872 );
+
+    /* b = r * [ 1; -2; 1 ]; */
+    /* a = [ 1; -2 * r * ( 1 - 0.5 * Fc^2 ); r^2 ]; */
+    B_Q28[ 0 ] = r_Q28;
+    B_Q28[ 1 ] = SKP_LSHIFT( -r_Q28, 1 );
+    B_Q28[ 2 ] = r_Q28;
+    
+    // -r * ( 2 - Fc * Fc );
+    r_Q22  = SKP_RSHIFT( r_Q28, 6 );
+    A_Q28[ 0 ] = SKP_SMULWW( r_Q22, SKP_SMULWW( Fc_Q19, Fc_Q19 ) - ( 2 &lt;&lt; 22 ) );
+    A_Q28[ 1 ] = SKP_SMULWW( r_Q22, r_Q22 );
+
+    /********************************/
+    /* High-Pass Filter             */
+    /********************************/
+    SKP_Silk_biquad_alt( in, B_Q28, A_Q28, psEnc-&gt;sCmn.In_HP_State, out, psEnc-&gt;sCmn.frame_length );
+}
+
+#endif // HIGH_PASS_INPUT
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_Inlinesh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_Inlines.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_Inlines.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_Inlines.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,312 +1,280 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*! \file SKP_Silk_Inlines.h
- *  \brief SigProcFix_Inlines.h defines inline signal processing functions.
- */
-
-#ifndef _SKP_SILK_FIX_INLINES_H_
-#define _SKP_SILK_FIX_INLINES_H_
-
-#ifdef  __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/* count leading zeros of SKP_int64 */
-SKP_INLINE SKP_int32 SKP_Silk_CLZ64(SKP_int64 in)
-{
-    SKP_int32 in_upper;
-
-    in_upper = (SKP_int32)SKP_RSHIFT64(in, 32);
-    if (in_upper == 0) {
-
-
-
-
-
-        /* Search in the lower 32 bits */
-        return 32 + SKP_Silk_CLZ32( (SKP_int32) in );
-    } else {
-        /* Search in the upper 32 bits */
-        return SKP_Silk_CLZ32( in_upper );
-    }
-}
-
-/* get number of leading zeros and fractional part (the bits right after the leading one */
-SKP_INLINE void SKP_Silk_CLZ_FRAC(SKP_int32 in,            /* I: input */
-                                    SKP_int32 *lz,           /* O: number of leading zeros */
-                                    SKP_int32 *frac_Q7)      /* O: the 7 bits right after the leading one */
-{
-    SKP_int32 leadingZeros;
-
-    leadingZeros = SKP_Silk_CLZ32(in);
-    *lz = leadingZeros;
-    if( leadingZeros &lt; 24 ) {
-        *frac_Q7 = SKP_RSHIFT(in, 24 - leadingZeros) &amp; 0x7F;
-    } else {
-        *frac_Q7 = SKP_LSHIFT(in, leadingZeros - 24) &amp; 0x7F;
-    }
-}
-
-/* Approximation of square root                                          */
-/* Accuracy: &lt; +/- 10% for output values &gt; 15                            */
-/*             &lt; +/- 2.5% for output values &gt; 120                        */
-SKP_INLINE SKP_int32 SKP_Silk_SQRT_APPROX(SKP_int32 x)
-{
-    SKP_int32 y, lz, frac_Q7;
-
-    if( x &lt;= 0 ) {
-        return 0;
-    }
-
-    SKP_Silk_CLZ_FRAC(x, &amp;lz, &amp;frac_Q7);
-
-    if( lz &amp; 1 ) {
-        y = 32768;
-    } else {
-        y = 46214;        /* 46214 = sqrt(2) * 32768 */
-    }
-
-    /* get scaling right */
-    y &gt;&gt;= SKP_RSHIFT(lz, 1);
-
-    /* increment using fractional part of input */
-    y = SKP_SMLAWB(y, y, SKP_SMULBB(213, frac_Q7));
-
-
-
-
-
-    return y;
-}
-
-/* returns the number of left shifts before overflow for a 16 bit number (ITU definition with norm(0)=0) */
-SKP_INLINE SKP_int32 SKP_Silk_norm16(SKP_int16 a) {
-
-  SKP_int32 a32;
-
-  /* if ((a == 0) || (a == SKP_int16_MIN)) return(0); */
-  if ((a &lt;&lt; 1) == 0) return(0);
-
-  a32 = a;
-  /* if (a32 &lt; 0) a32 = -a32 - 1; */
-  a32 ^= SKP_RSHIFT(a32, 31);
-
-  return SKP_Silk_CLZ32(a32) - 17;
-}
-
-/* returns the number of left shifts before overflow for a 32 bit number (ITU definition with norm(0)=0) */
-SKP_INLINE SKP_int32 SKP_Silk_norm32(SKP_int32 a) {
-
-  /* if ((a == 0) || (a == SKP_int32_MIN)) return(0); */
-  if ((a &lt;&lt; 1) == 0) return(0);
-
-  /* if (a &lt; 0) a = -a - 1; */
-  a ^= SKP_RSHIFT(a, 31);
-
-  return SKP_Silk_CLZ32(a) - 1;
-}
-
-/* Divide two int32 values and return result as int32 in a given Q-domain */
-SKP_INLINE SKP_int32 SKP_DIV32_varQ(    /* O    returns a good approximation of &quot;(a32 &lt;&lt; Qres) / b32&quot; */
-    const SKP_int32        a32,         /* I    numerator (Q0)                  */
-    const SKP_int32        b32,         /* I    denominator (Q0)                */
-    const SKP_int        Qres           /* I    Q-domain of result (&gt;= 0)       */
-)
-{
-    SKP_int   a_headrm, b_headrm, lshift;
-    SKP_int32 b32_inv, a32_nrm, b32_nrm, result;
-
-    SKP_assert( b32 != 0 );
-    SKP_assert( Qres &gt;= 0 );
-
-    /* Compute number of bits head room and normalize inputs */
-    a_headrm = SKP_Silk_CLZ32( SKP_abs(a32) ) - 1;
-    a32_nrm = SKP_LSHIFT(a32, a_headrm);                                    /* Q: a_headrm                    */
-    b_headrm = SKP_Silk_CLZ32( SKP_abs(b32) ) - 1;
-    b32_nrm = SKP_LSHIFT(b32, b_headrm);                                    /* Q: b_headrm                    */
-
-
-
-
-
-    /* Inverse of b32, with 14 bits of precision */
-    b32_inv = SKP_DIV32_16( SKP_int32_MAX &gt;&gt; 2, SKP_RSHIFT(b32_nrm, 16) );  /* Q: 29 + 16 - b_headrm        */
-
-    /* First approximation */
-    result = SKP_SMULWB(a32_nrm, b32_inv);                                  /* Q: 29 + a_headrm - b_headrm    */
-
-    /* Compute residual by subtracting product of denominator and first approximation */
-    a32_nrm -= SKP_LSHIFT_ovflw( SKP_SMMUL(b32_nrm, result), 3 );           /* Q: a_headrm                    */
-
-    /* Refinement */
-    result = SKP_SMLAWB(result, a32_nrm, b32_inv);                          /* Q: 29 + a_headrm - b_headrm    */
-
-    /* Convert to Qres domain */
-    lshift = 29 + a_headrm - b_headrm - Qres;
-    if( lshift &lt;= 0 ) {
-        return SKP_LSHIFT_SAT32(result, -lshift);
-    } else {
-        if( lshift &lt; 32){
-            return SKP_RSHIFT(result, lshift);
-        } else {
-            /* Avoid undefined result */
-            return 0;
-        }
-    }
-}
-
-/* Invert int32 value and return result as int32 in a given Q-domain */
-SKP_INLINE SKP_int32 SKP_INVERSE32_varQ(    /* O    returns a good approximation of &quot;(1 &lt;&lt; Qres) / b32&quot; */
-    const SKP_int32        b32,             /* I    denominator (Q0)                */
-    const SKP_int        Qres               /* I    Q-domain of result (&gt; 0)        */
-)
-{
-    SKP_int   b_headrm, lshift;
-    SKP_int32 b32_inv, b32_nrm, err_Q32, result;
-
-    SKP_assert( b32 != 0 );
-    SKP_assert( Qres &gt; 0 );
-
-    /* Compute number of bits head room and normalize input */
-    b_headrm = SKP_Silk_CLZ32( SKP_abs(b32) ) - 1;
-    b32_nrm = SKP_LSHIFT(b32, b_headrm);                                    /* Q: b_headrm                */
-
-    /* Inverse of b32, with 14 bits of precision */
-    b32_inv = SKP_DIV32_16( SKP_int32_MAX &gt;&gt; 2, SKP_RSHIFT(b32_nrm, 16) );  /* Q: 29 + 16 - b_headrm    */
-
-    /* First approximation */
-    result = SKP_LSHIFT(b32_inv, 16);                                       /* Q: 61 - b_headrm            */
-
-
-
-
-
-
-    /* Compute residual by subtracting product of denominator and first approximation from one */
-    err_Q32 = SKP_LSHIFT_ovflw( -SKP_SMULWB(b32_nrm, b32_inv), 3 );         /* Q32                        */
-
-    /* Refinement */
-    result = SKP_SMLAWW(result, err_Q32, b32_inv);                          /* Q: 61 - b_headrm            */
-
-    /* Convert to Qres domain */
-    lshift = 61 - b_headrm - Qres;
-    if( lshift &lt;= 0 ) {
-        return SKP_LSHIFT_SAT32(result, -lshift);
-    } else {
-        if( lshift &lt; 32){
-            return SKP_RSHIFT(result, lshift);
-        }else{
-            /* Avoid undefined result */
-            return 0;
-        }
-    }
-}
-
-#define SKP_SIN_APPROX_CONST0       (1073735400)
-#define SKP_SIN_APPROX_CONST1        (-82778932)
-#define SKP_SIN_APPROX_CONST2          (1059577)
-#define SKP_SIN_APPROX_CONST3            (-5013)
-
-/* Sine approximation; an input of 65536 corresponds to 2 * pi */
-/* Uses polynomial expansion of the input to the power 0, 2, 4 and 6 */
-/* The relative error is below 1e-5 */
-SKP_INLINE SKP_int32 SKP_Silk_SIN_APPROX_Q24(        /* O    returns approximately 2^24 * sin(x * 2 * pi / 65536) */
-    SKP_int32        x
-)
-{
-    SKP_int y_Q30;
-
-    /* Keep only bottom 16 bits (the function repeats itself with period 65536) */
-    x &amp;= 65535;
-
-    /* Split range in four quadrants */
-    if( x &lt;= 32768 ) {
-        if( x &lt; 16384 ) {
-            /* Return cos(pi/2 - x) */
-            x = 16384 - x;
-        } else {
-            /* Return cos(x - pi/2) */
-            x -= 16384;
-        }
-        if( x &lt; 1100 ) {
-            /* Special case: high accuracy */
-
-
-
-
-
-            return SKP_SMLAWB( 1 &lt;&lt; 24, SKP_MUL( x, x ), -5053 );
-        }
-        x = SKP_SMULWB( SKP_LSHIFT( x, 8 ), x );        /* contains x^2 in Q20 */
-        y_Q30 = SKP_SMLAWB( SKP_SIN_APPROX_CONST2, x, SKP_SIN_APPROX_CONST3 );
-        y_Q30 = SKP_SMLAWW( SKP_SIN_APPROX_CONST1, x, y_Q30 );
-        y_Q30 = SKP_SMLAWW( SKP_SIN_APPROX_CONST0 + 66, x, y_Q30 );
-    } else {
-        if( x &lt; 49152 ) {
-            /* Return -cos(3*pi/2 - x) */
-            x = 49152 - x;
-        } else {
-            /* Return -cos(x - 3*pi/2) */
-            x -= 49152;
-        }
-        if( x &lt; 1100 ) {
-            /* Special case: high accuracy */
-            return SKP_SMLAWB( -1 &lt;&lt; 24, SKP_MUL( x, x ), 5053 );
-        }
-        x = SKP_SMULWB( SKP_LSHIFT( x, 8 ), x );        /* contains x^2 in Q20 */
-        y_Q30 = SKP_SMLAWB( -SKP_SIN_APPROX_CONST2, x, -SKP_SIN_APPROX_CONST3 );
-        y_Q30 = SKP_SMLAWW( -SKP_SIN_APPROX_CONST1, x, y_Q30 );
-        y_Q30 = SKP_SMLAWW( -SKP_SIN_APPROX_CONST0, x, y_Q30 );
-    }
-    return SKP_RSHIFT_ROUND( y_Q30, 6 );
-}
-
-/* Cosine approximation; an input of 65536 corresponds to 2 * pi */
-/* The relative error is below 1e-5 */
-SKP_INLINE SKP_int32 SKP_Silk_COS_APPROX_Q24(        /* O    returns approximately 2^24 * cos(x * 2 * pi / 65536) */
-    SKP_int32        x
-)
-{
-    return SKP_Silk_SIN_APPROX_Q24( x + 16384 );
-}
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif //_SKP_SILK_FIX_INLINES_H_
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*! \file SKP_Silk_Inlines.h
+ *  \brief SigProcFix_Inlines.h defines inline signal processing functions.
+ */
+
+#ifndef _SKP_SILK_FIX_INLINES_H_
+#define _SKP_SILK_FIX_INLINES_H_
+
+#ifdef  __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* count leading zeros of SKP_int64 */
+SKP_INLINE SKP_int32 SKP_Silk_CLZ64(SKP_int64 in)
+{
+    SKP_int32 in_upper;
+
+    in_upper = (SKP_int32)SKP_RSHIFT64(in, 32);
+    if (in_upper == 0) {
+        /* Search in the lower 32 bits */
+        return 32 + SKP_Silk_CLZ32( (SKP_int32) in );
+    } else {
+        /* Search in the upper 32 bits */
+        return SKP_Silk_CLZ32( in_upper );
+    }
+}
+
+/* get number of leading zeros and fractional part (the bits right after the leading one */
+SKP_INLINE void SKP_Silk_CLZ_FRAC(SKP_int32 in,            /* I: input */
+                                    SKP_int32 *lz,           /* O: number of leading zeros */
+                                    SKP_int32 *frac_Q7)      /* O: the 7 bits right after the leading one */
+{
+    SKP_int32 leadingZeros;
+
+    leadingZeros = SKP_Silk_CLZ32(in);
+    *lz = leadingZeros;
+    if( leadingZeros &lt; 24 ) { 
+        *frac_Q7 = SKP_RSHIFT(in, 24 - leadingZeros) &amp; 0x7F;
+    } else {
+        *frac_Q7 = SKP_LSHIFT(in, leadingZeros - 24) &amp; 0x7F;
+    }
+}
+
+/* Approximation of square root                                          */
+/* Accuracy: &lt; +/- 10% for output values &gt; 15                            */
+/*             &lt; +/- 2.5% for output values &gt; 120                        */
+SKP_INLINE SKP_int32 SKP_Silk_SQRT_APPROX(SKP_int32 x)
+{
+    SKP_int32 y, lz, frac_Q7;
+
+    if( x &lt;= 0 ) {
+        return 0;
+    }
+
+    SKP_Silk_CLZ_FRAC(x, &amp;lz, &amp;frac_Q7);
+
+    if( lz &amp; 1 ) {
+        y = 32768;
+    } else {
+        y = 46214;        /* 46214 = sqrt(2) * 32768 */
+    }
+
+    /* get scaling right */
+    y &gt;&gt;= SKP_RSHIFT(lz, 1);
+
+    /* increment using fractional part of input */
+    y = SKP_SMLAWB(y, y, SKP_SMULBB(213, frac_Q7));
+
+    return y;
+}
+
+/* returns the number of left shifts before overflow for a 16 bit number (ITU definition with norm(0)=0) */
+SKP_INLINE SKP_int32 SKP_Silk_norm16(SKP_int16 a) {
+
+  SKP_int32 a32;
+
+  /* if ((a == 0) || (a == SKP_int16_MIN)) return(0); */
+  if ((a &lt;&lt; 1) == 0) return(0);
+
+  a32 = a;
+  /* if (a32 &lt; 0) a32 = -a32 - 1; */
+  a32 ^= SKP_RSHIFT(a32, 31);
+
+  return SKP_Silk_CLZ32(a32) - 17;
+}
+
+/* returns the number of left shifts before overflow for a 32 bit number (ITU definition with norm(0)=0) */
+SKP_INLINE SKP_int32 SKP_Silk_norm32(SKP_int32 a) {
+  
+  /* if ((a == 0) || (a == SKP_int32_MIN)) return(0); */
+  if ((a &lt;&lt; 1) == 0) return(0);
+
+  /* if (a &lt; 0) a = -a - 1; */
+  a ^= SKP_RSHIFT(a, 31);
+
+  return SKP_Silk_CLZ32(a) - 1;
+}
+
+/* Divide two int32 values and return result as int32 in a given Q-domain */
+SKP_INLINE SKP_int32 SKP_DIV32_varQ(    /* O    returns a good approximation of &quot;(a32 &lt;&lt; Qres) / b32&quot; */
+    const SKP_int32        a32,         /* I    numerator (Q0)                  */
+    const SKP_int32        b32,         /* I    denominator (Q0)                */
+    const SKP_int        Qres           /* I    Q-domain of result (&gt;= 0)       */
+)
+{
+    SKP_int   a_headrm, b_headrm, lshift;
+    SKP_int32 b32_inv, a32_nrm, b32_nrm, result;
+
+    SKP_assert( b32 != 0 );
+    SKP_assert( Qres &gt;= 0 );
+
+    /* Compute number of bits head room and normalize inputs */
+    a_headrm = SKP_Silk_CLZ32( SKP_abs(a32) ) - 1;
+    a32_nrm = SKP_LSHIFT(a32, a_headrm);                                    /* Q: a_headrm                    */
+    b_headrm = SKP_Silk_CLZ32( SKP_abs(b32) ) - 1;
+    b32_nrm = SKP_LSHIFT(b32, b_headrm);                                    /* Q: b_headrm                    */
+
+    /* Inverse of b32, with 14 bits of precision */
+    b32_inv = SKP_DIV32_16( SKP_int32_MAX &gt;&gt; 2, SKP_RSHIFT(b32_nrm, 16) );  /* Q: 29 + 16 - b_headrm        */
+
+    /* First approximation */
+    result = SKP_SMULWB(a32_nrm, b32_inv);                                  /* Q: 29 + a_headrm - b_headrm    */
+
+    /* Compute residual by subtracting product of denominator and first approximation */
+    a32_nrm -= SKP_LSHIFT_ovflw( SKP_SMMUL(b32_nrm, result), 3 );           /* Q: a_headrm                    */
+
+    /* Refinement */
+    result = SKP_SMLAWB(result, a32_nrm, b32_inv);                          /* Q: 29 + a_headrm - b_headrm    */
+
+    /* Convert to Qres domain */
+    lshift = 29 + a_headrm - b_headrm - Qres;
+    if( lshift &lt;= 0 ) {
+        return SKP_LSHIFT_SAT32(result, -lshift);
+    } else {
+        if( lshift &lt; 32){
+            return SKP_RSHIFT(result, lshift);
+        } else {
+            /* Avoid undefined result */
+            return 0;
+        }
+    }
+}
+
+/* Invert int32 value and return result as int32 in a given Q-domain */
+SKP_INLINE SKP_int32 SKP_INVERSE32_varQ(    /* O    returns a good approximation of &quot;(1 &lt;&lt; Qres) / b32&quot; */
+    const SKP_int32        b32,             /* I    denominator (Q0)                */
+    const SKP_int        Qres               /* I    Q-domain of result (&gt; 0)        */
+)
+{
+    SKP_int   b_headrm, lshift;
+    SKP_int32 b32_inv, b32_nrm, err_Q32, result;
+
+    SKP_assert( b32 != 0 );
+    SKP_assert( Qres &gt; 0 );
+
+    /* Compute number of bits head room and normalize input */
+    b_headrm = SKP_Silk_CLZ32( SKP_abs(b32) ) - 1;
+    b32_nrm = SKP_LSHIFT(b32, b_headrm);                                    /* Q: b_headrm                */
+
+    /* Inverse of b32, with 14 bits of precision */
+    b32_inv = SKP_DIV32_16( SKP_int32_MAX &gt;&gt; 2, SKP_RSHIFT(b32_nrm, 16) );  /* Q: 29 + 16 - b_headrm    */
+
+    /* First approximation */
+    result = SKP_LSHIFT(b32_inv, 16);                                       /* Q: 61 - b_headrm            */
+
+    /* Compute residual by subtracting product of denominator and first approximation from one */
+    err_Q32 = SKP_LSHIFT_ovflw( -SKP_SMULWB(b32_nrm, b32_inv), 3 );         /* Q32                        */
+
+    /* Refinement */
+    result = SKP_SMLAWW(result, err_Q32, b32_inv);                          /* Q: 61 - b_headrm            */
+
+    /* Convert to Qres domain */
+    lshift = 61 - b_headrm - Qres;
+    if( lshift &lt;= 0 ) {
+        return SKP_LSHIFT_SAT32(result, -lshift);
+    } else {
+        if( lshift &lt; 32){
+            return SKP_RSHIFT(result, lshift);
+        }else{
+            /* Avoid undefined result */
+            return 0;
+        }
+    }
+}
+
+#define SKP_SIN_APPROX_CONST0       (1073735400)
+#define SKP_SIN_APPROX_CONST1        (-82778932)
+#define SKP_SIN_APPROX_CONST2          (1059577)
+#define SKP_SIN_APPROX_CONST3            (-5013)
+
+/* Sine approximation; an input of 65536 corresponds to 2 * pi */
+/* Uses polynomial expansion of the input to the power 0, 2, 4 and 6 */
+/* The relative error is below 1e-5 */
+SKP_INLINE SKP_int32 SKP_Silk_SIN_APPROX_Q24(        /* O    returns approximately 2^24 * sin(x * 2 * pi / 65536) */
+    SKP_int32        x
+)
+{
+    SKP_int y_Q30;
+
+    /* Keep only bottom 16 bits (the function repeats itself with period 65536) */
+    x &amp;= 65535;
+
+    /* Split range in four quadrants */
+    if( x &lt;= 32768 ) {
+        if( x &lt; 16384 ) {
+            /* Return cos(pi/2 - x) */
+            x = 16384 - x;
+        } else {
+            /* Return cos(x - pi/2) */
+            x -= 16384;
+        }
+        if( x &lt; 1100 ) {
+            /* Special case: high accuracy */
+            return SKP_SMLAWB( 1 &lt;&lt; 24, SKP_MUL( x, x ), -5053 );
+        }
+        x = SKP_SMULWB( SKP_LSHIFT( x, 8 ), x );        /* contains x^2 in Q20 */
+        y_Q30 = SKP_SMLAWB( SKP_SIN_APPROX_CONST2, x, SKP_SIN_APPROX_CONST3 );
+        y_Q30 = SKP_SMLAWW( SKP_SIN_APPROX_CONST1, x, y_Q30 );
+        y_Q30 = SKP_SMLAWW( SKP_SIN_APPROX_CONST0 + 66, x, y_Q30 );
+    } else {
+        if( x &lt; 49152 ) {
+            /* Return -cos(3*pi/2 - x) */
+            x = 49152 - x;
+        } else {
+            /* Return -cos(x - 3*pi/2) */
+            x -= 49152;
+        }
+        if( x &lt; 1100 ) {
+            /* Special case: high accuracy */
+            return SKP_SMLAWB( -1 &lt;&lt; 24, SKP_MUL( x, x ), 5053 );
+        }
+        x = SKP_SMULWB( SKP_LSHIFT( x, 8 ), x );        /* contains x^2 in Q20 */
+        y_Q30 = SKP_SMLAWB( -SKP_SIN_APPROX_CONST2, x, -SKP_SIN_APPROX_CONST3 );
+        y_Q30 = SKP_SMLAWW( -SKP_SIN_APPROX_CONST1, x, y_Q30 );
+        y_Q30 = SKP_SMLAWW( -SKP_SIN_APPROX_CONST0, x, y_Q30 );
+    }
+    return SKP_RSHIFT_ROUND( y_Q30, 6 );
+}
+
+/* Cosine approximation; an input of 65536 corresponds to 2 * pi */
+/* The relative error is below 1e-5 */
+SKP_INLINE SKP_int32 SKP_Silk_COS_APPROX_Q24(        /* O    returns approximately 2^24 * cos(x * 2 * pi / 65536) */
+    SKP_int32        x
+)
+{
+    return SKP_Silk_SIN_APPROX_Q24( x + 16384 );
+}
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif //_SKP_SILK_FIX_INLINES_H_
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LBRR_resetc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LBRR_reset.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LBRR_reset.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LBRR_reset.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,46 +1,40 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Resets LBRR buffer, used if packet size changes */
-void SKP_Silk_LBRR_reset(
-    SKP_Silk_encoder_state      *psEncC             /* I/O  state                                       */
-)
-{
-    SKP_int i;
-
-    for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-        psEncC-&gt;LBRR_buffer[ i ].usage = SKP_SILK_NO_LBRR;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Resets LBRR buffer, used if packet size changes */
+void SKP_Silk_LBRR_reset( 
+    SKP_Silk_encoder_state      *psEncC             /* I/O  state                                       */
+)
+{
+    SKP_int i;
+
+    for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+        psEncC-&gt;LBRR_buffer[ i ].usage = SKP_SILK_NO_LBRR;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LPC_inv_pred_gainc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,213 +1,189 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_LPC_inverse_pred_gain.c                                   *
- *                                                                      *
- * Compute inverse of LPC prediction gain, and                          *
- * test if LPC coefficients are stable (all poles within unit circle)   *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                           *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define QA          16
-#define A_LIMIT     65520
-
-/* Compute inverse of LPC prediction gain, and                          */
-/* test if LPC coefficients are stable (all poles within unit circle)   */
-SKP_int SKP_Silk_LPC_inverse_pred_gain(       /* O:   Returns 1 if unstable, otherwise 0          */
-    SKP_int32           *invGain_Q30,           /* O:   Inverse prediction gain, Q30 energy domain  */
-    const SKP_int16     *A_Q12,                 /* I:   Prediction coefficients, Q12 [order]        */
-    const SKP_int       order                   /* I:   Prediction order                            */
-)
-{
-    SKP_int   k, n, headrm;
-    SKP_int32 rc_Q31, rc_mult1_Q30, rc_mult2_Q16;
-    SKP_int32 Atmp_QA[ 2 ][ SigProc_MAX_ORDER_LPC ], tmp_QA;
-    SKP_int32 *Aold_QA, *Anew_QA;
-
-    Anew_QA = Atmp_QA[ order &amp; 1 ];
-    /* Increase Q domain of the AR coefficients */
-    for( k = 0; k &lt; order; k++ ) {
-        Anew_QA[ k ] = SKP_LSHIFT( (SKP_int32)A_Q12[ k ], QA - 12 );
-    }
-
-    *invGain_Q30 = ( 1 &lt;&lt; 30 );
-    for( k = order - 1; k &gt; 0; k-- ) {
-        /* Check for stability */
-        if( ( Anew_QA[ k ] &gt; A_LIMIT ) || ( Anew_QA[ k ] &lt; -A_LIMIT ) ) {
-            return 1;
-        }
-
-        /* Set RC equal to negated AR coef */
-        rc_Q31 = -SKP_LSHIFT( Anew_QA[ k ], 31 - QA );
-
-        /* rc_mult1_Q30 range: [ 1 : 2^30-1 ] */
-        rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
-        SKP_assert( rc_mult1_Q30 &gt; ( 1 &lt;&lt; 15 ) );                   /* reduce A_LIMIT if fails */
-        SKP_assert( rc_mult1_Q30 &lt; ( 1 &lt;&lt; 30 ) );
-
-
-
-
-
-        /* rc_mult2_Q16 range: [ 2^16 : SKP_int32_MAX ] */
-        rc_mult2_Q16 = SKP_INVERSE32_varQ( rc_mult1_Q30, 46 );      /* 16 = 46 - 30 */
-
-        /* Update inverse gain */
-        /* invGain_Q30 range: [ 0 : 2^30 ] */
-        *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
-        SKP_assert( *invGain_Q30 &gt;= 0           );
-        SKP_assert( *invGain_Q30 &lt;= ( 1 &lt;&lt; 30 ) );
-
-        /* Swap pointers */
-        Aold_QA = Anew_QA;
-        Anew_QA = Atmp_QA[ k &amp; 1 ];
-
-        /* Update AR coefficient */
-        headrm = SKP_Silk_CLZ32( rc_mult2_Q16 ) - 1;
-        rc_mult2_Q16 = SKP_LSHIFT( rc_mult2_Q16, headrm );          /* Q: 16 + headrm */
-        for( n = 0; n &lt; k; n++ ) {
-            tmp_QA = Aold_QA[ n ] - SKP_LSHIFT( SKP_SMMUL( Aold_QA[ k - n - 1 ], rc_Q31 ), 1 );
-            Anew_QA[ n ] = SKP_LSHIFT( SKP_SMMUL( tmp_QA, rc_mult2_Q16 ), 16 - headrm );
-        }
-    }
-
-    /* Check for stability */
-    if( ( Anew_QA[ 0 ] &gt; A_LIMIT ) || ( Anew_QA[ 0 ] &lt; -A_LIMIT ) ) {
-        return 1;
-    }
-
-    /* Set RC equal to negated AR coef */
-    rc_Q31 = -SKP_LSHIFT( Anew_QA[ 0 ], 31 - QA );
-
-    /* Range: [ 1 : 2^30 ] */
-    rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
-
-    /* Update inverse gain */
-    /* Range: [ 0 : 2^30 ] */
-    *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
-    SKP_assert( *invGain_Q30 &gt;= 0     );
-    SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
-
-    return 0;
-}
-
-/* For input in Q13 domain */
-SKP_int SKP_Silk_LPC_inverse_pred_gain_Q13(   /* O:   Returns 1 if unstable, otherwise 0          */
-    SKP_int32           *invGain_Q30,           /* O:   Inverse prediction gain, Q30 energy domain  */
-    const SKP_int16     *A_Q13,                 /* I:   Prediction coefficients, Q13 [order]        */
-    const SKP_int       order                   /* I:   Prediction order                            */
-)
-
-
-
-
-
-{
-    SKP_int   k, n, headrm;
-    SKP_int32 rc_Q31, rc_mult1_Q30, rc_mult2_Q16;
-    SKP_int32 Atmp_QA[ 2 ][ SigProc_MAX_ORDER_LPC ], tmp_QA;
-    SKP_int32 *Aold_QA, *Anew_QA;
-
-    Anew_QA = Atmp_QA[ order &amp; 1 ];
-    /* Increase Q domain of the AR coefficients */
-    for( k = 0; k &lt; order; k++ ) {
-        Anew_QA[ k ] = SKP_LSHIFT( (SKP_int32)A_Q13[ k ], QA - 13 );
-    }
-
-    *invGain_Q30 = ( 1 &lt;&lt; 30 );
-    for( k = order - 1; k &gt; 0; k-- ) {
-        /* Check for stability */
-        if( ( Anew_QA[ k ] &gt; A_LIMIT ) || ( Anew_QA[ k ] &lt; -A_LIMIT ) ) {
-            return 1;
-        }
-
-        /* Set RC equal to negated AR coef */
-        rc_Q31 = -SKP_LSHIFT( Anew_QA[ k ], 31 - QA );
-
-        /* rc_mult1_Q30 range: [ 1 : 2^30-1 ] */
-        rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
-        SKP_assert( rc_mult1_Q30 &gt; ( 1 &lt;&lt; 15 ) );                   /* reduce A_LIMIT if fails */
-        SKP_assert( rc_mult1_Q30 &lt; ( 1 &lt;&lt; 30 ) );
-
-        /* rc_mult2_Q16 range: [ 2^16 : SKP_int32_MAX ] */
-        rc_mult2_Q16 = SKP_INVERSE32_varQ( rc_mult1_Q30, 46 );      /* 16 = 46 - 30 */
-
-        /* Update inverse gain */
-        /* invGain_Q30 range: [ 0 : 2^30 ] */
-        *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
-        SKP_assert( *invGain_Q30 &gt;= 0     );
-        SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
-
-        /* Swap pointers */
-        Aold_QA = Anew_QA;
-        Anew_QA = Atmp_QA[ k &amp; 1 ];
-
-        /* Update AR coefficient */
-        headrm = SKP_Silk_CLZ32( rc_mult2_Q16 ) - 1;
-        rc_mult2_Q16 = SKP_LSHIFT( rc_mult2_Q16, headrm );          /* Q: 16 + headrm */
-        for( n = 0; n &lt; k; n++ ) {
-            tmp_QA = Aold_QA[ n ] - SKP_LSHIFT( SKP_SMMUL( Aold_QA[ k - n - 1 ], rc_Q31 ), 1 );
-            Anew_QA[ n ] = SKP_LSHIFT( SKP_SMMUL( tmp_QA, rc_mult2_Q16 ), 16 - headrm );
-        }
-    }
-
-
-
-
-
-    /* Check for stability */
-    if( ( Anew_QA[ 0 ] &gt; A_LIMIT ) || ( Anew_QA[ 0 ] &lt; -A_LIMIT ) ) {
-        return 1;
-    }
-
-    /* Set RC equal to negated AR coef */
-    rc_Q31 = -SKP_LSHIFT( Anew_QA[ 0 ], 31 - QA );
-
-    /* Range: [ 1 : 2^30 ] */
-    rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
-
-    /* Update inverse gain */
-    /* Range: [ 0 : 2^30 ] */
-    *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
-    SKP_assert( *invGain_Q30 &gt;= 0     );
-    SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
-
-    return 0;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_LPC_inverse_pred_gain.c                                   *
+ *                                                                      *
+ * Compute inverse of LPC prediction gain, and                          *
+ * test if LPC coefficients are stable (all poles within unit circle)   *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                           *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#define QA          16
+#define A_LIMIT     65520
+
+/* Compute inverse of LPC prediction gain, and                          */
+/* test if LPC coefficients are stable (all poles within unit circle)   */
+SKP_int SKP_Silk_LPC_inverse_pred_gain(       /* O:   Returns 1 if unstable, otherwise 0          */
+    SKP_int32           *invGain_Q30,           /* O:   Inverse prediction gain, Q30 energy domain  */
+    const SKP_int16     *A_Q12,                 /* I:   Prediction coefficients, Q12 [order]        */
+    const SKP_int       order                   /* I:   Prediction order                            */
+)
+{
+    SKP_int   k, n, headrm;
+    SKP_int32 rc_Q31, rc_mult1_Q30, rc_mult2_Q16;
+    SKP_int32 Atmp_QA[ 2 ][ SigProc_MAX_ORDER_LPC ], tmp_QA;
+    SKP_int32 *Aold_QA, *Anew_QA;
+
+    Anew_QA = Atmp_QA[ order &amp; 1 ];
+    /* Increase Q domain of the AR coefficients */
+    for( k = 0; k &lt; order; k++ ) {
+        Anew_QA[ k ] = SKP_LSHIFT( (SKP_int32)A_Q12[ k ], QA - 12 );
+    }
+
+    *invGain_Q30 = ( 1 &lt;&lt; 30 );
+    for( k = order - 1; k &gt; 0; k-- ) {
+        /* Check for stability */
+        if( ( Anew_QA[ k ] &gt; A_LIMIT ) || ( Anew_QA[ k ] &lt; -A_LIMIT ) ) {
+            return 1;
+        }
+
+        /* Set RC equal to negated AR coef */
+        rc_Q31 = -SKP_LSHIFT( Anew_QA[ k ], 31 - QA );
+        
+        /* rc_mult1_Q30 range: [ 1 : 2^30-1 ] */
+        rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
+        SKP_assert( rc_mult1_Q30 &gt; ( 1 &lt;&lt; 15 ) );                   /* reduce A_LIMIT if fails */
+        SKP_assert( rc_mult1_Q30 &lt; ( 1 &lt;&lt; 30 ) );
+
+        /* rc_mult2_Q16 range: [ 2^16 : SKP_int32_MAX ] */
+        rc_mult2_Q16 = SKP_INVERSE32_varQ( rc_mult1_Q30, 46 );      /* 16 = 46 - 30 */
+
+        /* Update inverse gain */
+        /* invGain_Q30 range: [ 0 : 2^30 ] */
+        *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
+        SKP_assert( *invGain_Q30 &gt;= 0           );
+        SKP_assert( *invGain_Q30 &lt;= ( 1 &lt;&lt; 30 ) );
+
+        /* Swap pointers */
+        Aold_QA = Anew_QA;
+        Anew_QA = Atmp_QA[ k &amp; 1 ];
+        
+        /* Update AR coefficient */
+        headrm = SKP_Silk_CLZ32( rc_mult2_Q16 ) - 1;
+        rc_mult2_Q16 = SKP_LSHIFT( rc_mult2_Q16, headrm );          /* Q: 16 + headrm */
+        for( n = 0; n &lt; k; n++ ) {
+            tmp_QA = Aold_QA[ n ] - SKP_LSHIFT( SKP_SMMUL( Aold_QA[ k - n - 1 ], rc_Q31 ), 1 );
+            Anew_QA[ n ] = SKP_LSHIFT( SKP_SMMUL( tmp_QA, rc_mult2_Q16 ), 16 - headrm );
+        }
+    }
+
+    /* Check for stability */
+    if( ( Anew_QA[ 0 ] &gt; A_LIMIT ) || ( Anew_QA[ 0 ] &lt; -A_LIMIT ) ) {
+        return 1;
+    }
+
+    /* Set RC equal to negated AR coef */
+    rc_Q31 = -SKP_LSHIFT( Anew_QA[ 0 ], 31 - QA );
+
+    /* Range: [ 1 : 2^30 ] */
+    rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
+
+    /* Update inverse gain */
+    /* Range: [ 0 : 2^30 ] */
+    *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
+    SKP_assert( *invGain_Q30 &gt;= 0     );
+    SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
+
+    return 0;
+}
+
+/* For input in Q13 domain */
+SKP_int SKP_Silk_LPC_inverse_pred_gain_Q13(   /* O:   Returns 1 if unstable, otherwise 0          */
+    SKP_int32           *invGain_Q30,           /* O:   Inverse prediction gain, Q30 energy domain  */
+    const SKP_int16     *A_Q13,                 /* I:   Prediction coefficients, Q13 [order]        */
+    const SKP_int       order                   /* I:   Prediction order                            */
+)
+{
+    SKP_int   k, n, headrm;
+    SKP_int32 rc_Q31, rc_mult1_Q30, rc_mult2_Q16;
+    SKP_int32 Atmp_QA[ 2 ][ SigProc_MAX_ORDER_LPC ], tmp_QA;
+    SKP_int32 *Aold_QA, *Anew_QA;
+
+    Anew_QA = Atmp_QA[ order &amp; 1 ];
+    /* Increase Q domain of the AR coefficients */
+    for( k = 0; k &lt; order; k++ ) {
+        Anew_QA[ k ] = SKP_LSHIFT( (SKP_int32)A_Q13[ k ], QA - 13 );
+    }
+
+    *invGain_Q30 = ( 1 &lt;&lt; 30 );
+    for( k = order - 1; k &gt; 0; k-- ) {
+        /* Check for stability */
+        if( ( Anew_QA[ k ] &gt; A_LIMIT ) || ( Anew_QA[ k ] &lt; -A_LIMIT ) ) {
+            return 1;
+        }
+
+        /* Set RC equal to negated AR coef */
+        rc_Q31 = -SKP_LSHIFT( Anew_QA[ k ], 31 - QA );
+        
+        /* rc_mult1_Q30 range: [ 1 : 2^30-1 ] */
+        rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
+        SKP_assert( rc_mult1_Q30 &gt; ( 1 &lt;&lt; 15 ) );                   /* reduce A_LIMIT if fails */
+        SKP_assert( rc_mult1_Q30 &lt; ( 1 &lt;&lt; 30 ) );
+
+        /* rc_mult2_Q16 range: [ 2^16 : SKP_int32_MAX ] */
+        rc_mult2_Q16 = SKP_INVERSE32_varQ( rc_mult1_Q30, 46 );      /* 16 = 46 - 30 */
+
+        /* Update inverse gain */
+        /* invGain_Q30 range: [ 0 : 2^30 ] */
+        *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
+        SKP_assert( *invGain_Q30 &gt;= 0     );
+        SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
+
+        /* Swap pointers */
+        Aold_QA = Anew_QA;
+        Anew_QA = Atmp_QA[ k &amp; 1 ];
+        
+        /* Update AR coefficient */
+        headrm = SKP_Silk_CLZ32( rc_mult2_Q16 ) - 1;
+        rc_mult2_Q16 = SKP_LSHIFT( rc_mult2_Q16, headrm );          /* Q: 16 + headrm */
+        for( n = 0; n &lt; k; n++ ) {
+            tmp_QA = Aold_QA[ n ] - SKP_LSHIFT( SKP_SMMUL( Aold_QA[ k - n - 1 ], rc_Q31 ), 1 );
+            Anew_QA[ n ] = SKP_LSHIFT( SKP_SMMUL( tmp_QA, rc_mult2_Q16 ), 16 - headrm );
+        }
+    }
+
+    /* Check for stability */
+    if( ( Anew_QA[ 0 ] &gt; A_LIMIT ) || ( Anew_QA[ 0 ] &lt; -A_LIMIT ) ) {
+        return 1;
+    }
+
+    /* Set RC equal to negated AR coef */
+    rc_Q31 = -SKP_LSHIFT( Anew_QA[ 0 ], 31 - QA );
+
+    /* Range: [ 1 : 2^30 ] */
+    rc_mult1_Q30 = ( SKP_int32_MAX &gt;&gt; 1 ) - SKP_SMMUL( rc_Q31, rc_Q31 );
+
+    /* Update inverse gain */
+    /* Range: [ 0 : 2^30 ] */
+    *invGain_Q30 = SKP_LSHIFT( SKP_SMMUL( *invGain_Q30, rc_mult1_Q30 ), 2 );
+    SKP_assert( *invGain_Q30 &gt;= 0     );
+    SKP_assert( *invGain_Q30 &lt;= 1&lt;&lt;30 );
+
+    return 0;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LPC_stabilizec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_stabilize.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_stabilize.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_stabilize.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,153 +1,132 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-
-
-
-
-
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define LPC_STABILIZE_LPC_MAX_ABS_VALUE_Q16     ( ( (SKP_int32)SKP_int16_MAX ) &lt;&lt; 4 )
-
-/* LPC stabilizer, for a single input data vector */
-void SKP_Silk_LPC_stabilize(
-    SKP_int16       *a_Q12,         /* O    stabilized LPC vector [L]                       */
-    SKP_int32       *a_Q16,         /* I    LPC vector [L]                                  */
-    const SKP_int32  bwe_Q16,       /* I    Bandwidth expansion factor                      */
-    const SKP_int    L              /* I    Number of LPC parameters in the input vector    */
-)
-{
-    SKP_int32   maxabs, absval, sc_Q16;
-    SKP_int     i, idx = 0;
-    SKP_int32   invGain_Q30;
-
-    SKP_Silk_bwexpander_32( a_Q16, L, bwe_Q16 );
-
-    /***************************/
-    /* Limit range of the LPCs */
-    /***************************/
-    /* Limit the maximum absolute value of the prediction coefficients */
-    while( SKP_TRUE ) {
-        /* Find maximum absolute value and its index */
-        maxabs = SKP_int32_MIN;
-        for( i = 0; i &lt; L; i++ ) {
-            absval = SKP_abs( a_Q16[ i ] );
-            if( absval &gt; maxabs ) {
-                maxabs = absval;
-                idx    = i;
-            }
-        }
-
-        if( maxabs &gt;= LPC_STABILIZE_LPC_MAX_ABS_VALUE_Q16 ) {
-            /* Reduce magnitude of prediction coefficients */
-            sc_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( maxabs, 4 ) );
-            sc_Q16 = 65536 - sc_Q16;
-            sc_Q16 = SKP_DIV32( sc_Q16, idx + 1 );
-            sc_Q16 = 65536 - sc_Q16;
-            sc_Q16 = SKP_LSHIFT( SKP_SMULWB( sc_Q16, 32604 ), 1 ); // 0.995 in Q16
-            SKP_Silk_bwexpander_32( a_Q16, L, sc_Q16 );
-        } else {
-
-
-
-
-
-            break;
-        }
-    }
-
-    /* Convert to 16 bit Q12 */
-    for( i = 0; i &lt; L; i++ ) {
-        a_Q12[ i ] = (SKP_int16)SKP_RSHIFT_ROUND( a_Q16[ i ], 4 );
-    }
-
-    /**********************/
-    /* Ensure stable LPCs */
-    /**********************/
-    while( SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, a_Q12, L ) == 1 ) {
-        SKP_Silk_bwexpander( a_Q12, L, 65339 ); // 0.997 in Q16
-    }
-}
-
-void SKP_Silk_LPC_fit(
-    SKP_int16       *a_QQ,          /* O    Stabilized LPC vector, Q(24-rshift) [L]         */
-    SKP_int32       *a_Q24,         /* I    LPC vector [L]                                  */
-    const SKP_int    QQ,            /* I    Q domain of output LPC vector                   */
-    const SKP_int    L              /* I    Number of LPC parameters in the input vector    */
-)
-{
-    SKP_int     i, rshift, idx = 0;
-    SKP_int32   maxabs, absval, sc_Q16;
-
-    rshift = 24 - QQ;
-
-    /***************************/
-    /* Limit range of the LPCs */
-    /***************************/
-    /* Limit the maximum absolute value of the prediction coefficients */
-    while( SKP_TRUE ) {
-        /* Find maximum absolute value and its index */
-        maxabs = SKP_int32_MIN;
-        for( i = 0; i &lt; L; i++ ) {
-            absval = SKP_abs( a_Q24[ i ] );
-            if( absval &gt; maxabs ) {
-                maxabs = absval;
-                idx    = i;
-            }
-        }
-
-        maxabs = SKP_RSHIFT( maxabs, rshift );
-        if( maxabs &gt;= SKP_int16_MAX ) {
-            /* Reduce magnitude of prediction coefficients */
-            sc_Q16 = 65470 - SKP_DIV32( SKP_MUL( 65470 &gt;&gt; 2, maxabs - SKP_int16_MAX ),
-
-
-
-
-
-                                        SKP_RSHIFT32( SKP_MUL( maxabs, idx + 1), 2 ) );
-            SKP_Silk_bwexpander_32( a_Q24, L, sc_Q16 );
-        } else {
-            break;
-        }
-    }
-
-    /* Convert to 16 bit Q(24-rshift) */
-    SKP_assert( rshift &gt; 0  );
-    SKP_assert( rshift &lt; 31 );
-    for( i = 0; i &lt; L; i++ ) {
-        a_QQ[ i ] = (SKP_int16)SKP_RSHIFT_ROUND( a_Q24[ i ], rshift );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define LPC_STABILIZE_LPC_MAX_ABS_VALUE_Q16     ( ( (SKP_int32)SKP_int16_MAX ) &lt;&lt; 4 )
+
+/* LPC stabilizer, for a single input data vector */
+void SKP_Silk_LPC_stabilize(
+    SKP_int16       *a_Q12,         /* O    stabilized LPC vector [L]                       */
+    SKP_int32       *a_Q16,         /* I    LPC vector [L]                                  */
+    const SKP_int32  bwe_Q16,       /* I    Bandwidth expansion factor                      */
+    const SKP_int    L              /* I    Number of LPC parameters in the input vector    */
+)
+{
+    SKP_int32   maxabs, absval, sc_Q16;
+    SKP_int     i, idx = 0;
+    SKP_int32   invGain_Q30;
+
+    SKP_Silk_bwexpander_32( a_Q16, L, bwe_Q16 );
+
+    /***************************/
+    /* Limit range of the LPCs */
+    /***************************/
+    /* Limit the maximum absolute value of the prediction coefficients */
+    while( SKP_TRUE ) {
+        /* Find maximum absolute value and its index */
+        maxabs = SKP_int32_MIN;
+        for( i = 0; i &lt; L; i++ ) {
+            absval = SKP_abs( a_Q16[ i ] );
+            if( absval &gt; maxabs ) {
+                maxabs = absval;
+                idx    = i;
+            }
+        }
+    
+        if( maxabs &gt;= LPC_STABILIZE_LPC_MAX_ABS_VALUE_Q16 ) {
+            /* Reduce magnitude of prediction coefficients */
+            sc_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( maxabs, 4 ) );
+            sc_Q16 = 65536 - sc_Q16;
+            sc_Q16 = SKP_DIV32( sc_Q16, idx + 1 );
+            sc_Q16 = 65536 - sc_Q16;
+            sc_Q16 = SKP_LSHIFT( SKP_SMULWB( sc_Q16, 32604 ), 1 ); // 0.995 in Q16
+            SKP_Silk_bwexpander_32( a_Q16, L, sc_Q16 );
+        } else {
+            break;
+        }
+    }
+
+    /* Convert to 16 bit Q12 */
+    for( i = 0; i &lt; L; i++ ) {
+        a_Q12[ i ] = (SKP_int16)SKP_RSHIFT_ROUND( a_Q16[ i ], 4 );
+    }
+
+    /**********************/
+    /* Ensure stable LPCs */
+    /**********************/
+    while( SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, a_Q12, L ) == 1 ) {
+        SKP_Silk_bwexpander( a_Q12, L, 65339 ); // 0.997 in Q16
+    }
+}
+
+void SKP_Silk_LPC_fit(
+    SKP_int16       *a_QQ,          /* O    Stabilized LPC vector, Q(24-rshift) [L]         */
+    SKP_int32       *a_Q24,         /* I    LPC vector [L]                                  */
+    const SKP_int    QQ,            /* I    Q domain of output LPC vector                   */
+    const SKP_int    L              /* I    Number of LPC parameters in the input vector    */
+)
+{
+    SKP_int     i, rshift, idx = 0;
+    SKP_int32   maxabs, absval, sc_Q16;
+
+    rshift = 24 - QQ;
+
+    /***************************/
+    /* Limit range of the LPCs */
+    /***************************/
+    /* Limit the maximum absolute value of the prediction coefficients */
+    while( SKP_TRUE ) {
+        /* Find maximum absolute value and its index */
+        maxabs = SKP_int32_MIN;
+        for( i = 0; i &lt; L; i++ ) {
+            absval = SKP_abs( a_Q24[ i ] );
+            if( absval &gt; maxabs ) {
+                maxabs = absval;
+                idx    = i;
+            }
+        }
+    
+        maxabs = SKP_RSHIFT( maxabs, rshift );
+        if( maxabs &gt;= SKP_int16_MAX ) {
+            /* Reduce magnitude of prediction coefficients */
+            sc_Q16 = 65470 - SKP_DIV32( SKP_MUL( 65470 &gt;&gt; 2, maxabs - SKP_int16_MAX ), 
+                                        SKP_RSHIFT32( SKP_MUL( maxabs, idx + 1), 2 ) );
+            SKP_Silk_bwexpander_32( a_Q24, L, sc_Q16 );
+        } else {
+            break;
+        }
+    }
+
+    /* Convert to 16 bit Q(24-rshift) */
+    SKP_assert( rshift &gt; 0  );
+    SKP_assert( rshift &lt; 31 );
+    for( i = 0; i &lt; L; i++ ) {
+        a_QQ[ i ] = (SKP_int16)SKP_RSHIFT_ROUND( a_Q24[ i ], rshift );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LPC_synthesis_filterc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,114 +1,98 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-
-
-
-
-/*                                                                      *
- * SKP_Silk_LPC_synthesis_filter.c                                    *
- * Coefficients are in Q12                                              *
- *                                                                      *
- * even order AR filter                                                 *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* even order AR filter */
-void SKP_Silk_LPC_synthesis_filter(
-    const SKP_int16 *in,        /* I:   excitation signal */
-    const SKP_int16 *A_Q12,     /* I:   AR coefficients [Order], between -8_Q0 and 8_Q0 */
-    const SKP_int32 Gain_Q26,   /* I:   gain */
-    SKP_int32 *S,               /* I/O: state vector [Order] */
-    SKP_int16 *out,             /* O:   output signal */
-    const SKP_int32 len,        /* I:   signal length */
-    const SKP_int Order         /* I:   filter order, must be even */
-)
-{
-    SKP_int   k, j, idx, Order_half = SKP_RSHIFT( Order, 1 );
-    SKP_int32 SA, SB, Atmp, A_align_Q12[SigProc_MAX_ORDER_LPC &gt;&gt; 1], out32_Q10, out32;
-
-    /* Order must be even */
-    SKP_assert( 2*Order_half == Order );
-
-    /* combine two A_Q12 values and ensure 32-bit alignment */
-    for( k = 0; k &lt; Order_half; k++ ) {
-        idx = SKP_SMULBB( 2, k );
-        A_align_Q12[k] = (((SKP_int32)A_Q12[idx]) &amp; 0x0000ffff) | SKP_LSHIFT( (SKP_int32)A_Q12[idx+1], 16 );
-    }
-
-    /* S[] values are in Q14 */
-    for( k = 0; k &lt; len; k++ ) {
-        SA = S[Order-1];
-        out32_Q10 = 0;
-        for( j=0;j&lt;(Order_half-1); j++ ) {
-            idx = SKP_SMULBB( 2, j ) + 1;
-            /* multiply-add two prediction coefficients for each loop */
-            /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-            /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-            /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-            /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-            Atmp = A_align_Q12[j];
-            SB = S[Order - 1 - idx];
-            S[Order - 1 - idx] = SA;
-            out32_Q10 = SKP_SMLAWB( out32_Q10, SA, Atmp );
-            out32_Q10 = SKP_SMLAWT( out32_Q10, SB, Atmp );
-            SA = S[Order - 2 - idx];
-
-
-
-
-
-            S[Order - 2 - idx] = SB;
-        }
-
-        /* unrolled loop: epilog */
-        Atmp = A_align_Q12[Order_half-1];
-        SB = S[0];
-        S[0] = SA;
-        out32_Q10 = SKP_SMLAWB( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT( out32_Q10, SB, Atmp );
-
-        /* apply gain to excitation signal and add to prediction */
-        out32_Q10 = SKP_ADD_SAT32( out32_Q10, SKP_SMULWB( Gain_Q26, in[k] ) );
-
-        /* scale to Q0 */
-        out32 = SKP_RSHIFT_ROUND( out32_Q10, 10 );
-
-        /* saturate output */
-        out[k] = (SKP_int16)SKP_SAT16( out32 );
-
-        /* move result into delay line */
-        S[Order - 1] = SKP_LSHIFT_SAT32( out32_Q10, 4 );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_LPC_synthesis_filter.c                                    *
+ * Coefficients are in Q12                                              *
+ *                                                                      *
+ * even order AR filter                                                 *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* even order AR filter */
+void SKP_Silk_LPC_synthesis_filter(
+    const SKP_int16 *in,        /* I:   excitation signal */
+    const SKP_int16 *A_Q12,     /* I:   AR coefficients [Order], between -8_Q0 and 8_Q0 */
+    const SKP_int32 Gain_Q26,   /* I:   gain */
+    SKP_int32 *S,               /* I/O: state vector [Order] */
+    SKP_int16 *out,             /* O:   output signal */
+    const SKP_int32 len,        /* I:   signal length */
+    const SKP_int Order         /* I:   filter order, must be even */
+)
+{
+    SKP_int   k, j, idx, Order_half = SKP_RSHIFT( Order, 1 );
+    SKP_int32 SA, SB, Atmp, A_align_Q12[SigProc_MAX_ORDER_LPC &gt;&gt; 1], out32_Q10, out32;
+
+    /* Order must be even */
+    SKP_assert( 2*Order_half == Order );
+
+    /* combine two A_Q12 values and ensure 32-bit alignment */
+    for( k = 0; k &lt; Order_half; k++ ) {
+        idx = SKP_SMULBB( 2, k );
+        A_align_Q12[k] = (((SKP_int32)A_Q12[idx]) &amp; 0x0000ffff) | SKP_LSHIFT( (SKP_int32)A_Q12[idx+1], 16 );
+    }
+
+    /* S[] values are in Q14 */
+    for( k = 0; k &lt; len; k++ ) {
+        SA = S[Order-1];
+        out32_Q10 = 0;
+        for( j=0;j&lt;(Order_half-1); j++ ) {
+            idx = SKP_SMULBB( 2, j ) + 1;
+            /* multiply-add two prediction coefficients for each loop */
+            /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+            /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+            /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+            /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+            Atmp = A_align_Q12[j];
+            SB = S[Order - 1 - idx];
+            S[Order - 1 - idx] = SA;
+            out32_Q10 = SKP_SMLAWB( out32_Q10, SA, Atmp );
+            out32_Q10 = SKP_SMLAWT( out32_Q10, SB, Atmp );
+            SA = S[Order - 2 - idx];
+            S[Order - 2 - idx] = SB;
+        }
+
+        /* unrolled loop: epilog */
+        Atmp = A_align_Q12[Order_half-1];
+        SB = S[0];
+        S[0] = SA;
+        out32_Q10 = SKP_SMLAWB( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT( out32_Q10, SB, Atmp );
+
+        /* apply gain to excitation signal and add to prediction */
+        out32_Q10 = SKP_ADD_SAT32( out32_Q10, SKP_SMULWB( Gain_Q26, in[k] ) );
+
+        /* scale to Q0 */
+        out32 = SKP_RSHIFT_ROUND( out32_Q10, 10 );
+
+        /* saturate output */
+        out[k] = (SKP_int16)SKP_SAT16( out32 );
+
+        /* move result into delay line */
+        S[Order - 1] = SKP_LSHIFT_SAT32( out32_Q10, 4 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LPC_synthesis_order16c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,162 +1,141 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
-
-
-
-
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_LPC_synthesis_order16.c                                   *
- * Coefficients are in Q12                                              *
- *                                                                      *
- * 16th order AR filter                                                 *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* 16th order AR filter */
-void SKP_Silk_LPC_synthesis_order16(const SKP_int16 *in,          /* I:   excitation signal */
-                                      const SKP_int16 *A_Q12,       /* I:   AR coefficients [16], between -8_Q0 and 8_Q0 */
-                                      const SKP_int32 Gain_Q26,     /* I:   gain */
-                                      SKP_int32 *S,                 /* I/O: state vector [16] */
-                                      SKP_int16 *out,               /* O:   output signal */
-                                      const SKP_int32 len           /* I:   signal length, must be multiple of 16 */
-)
-{
-    SKP_int   k;
-    SKP_int32 SA, SB, Atmp, A_align_Q12[8], out32_Q10, out32;
-
-    /* combine two A_Q12 values and ensure 32-bit alignment */
-    for( k = 0; k &lt; 8; k++ ) {
-        A_align_Q12[k] = (((SKP_int32)A_Q12[ 2*k ]) &amp; 0x0000ffff) | SKP_LSHIFT( (SKP_int32)A_Q12[ 2*k + 1 ], 16 );
-    }
-
-    /* S[] values are in Q14 */
-    /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-    /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-    /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-    /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-    for( k = 0; k &lt; len; k++ ) {
-        /* unrolled loop: prolog */
-        /* multiply-add two prediction coefficients per iteration */
-        SA = S[15];
-        Atmp = A_align_Q12[0];
-        SB = S[14];
-        S[14] = SA;
-        out32_Q10 = SKP_SMULWB(                  SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-
-
-
-
-
-        SA = S[13];
-        S[13] = SB;
-
-        /* unrolled loop: main loop */
-        Atmp = A_align_Q12[1];
-        SB = S[12];
-        S[12] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[11];
-        S[11] = SB;
-
-        Atmp = A_align_Q12[2];
-        SB = S[10];
-        S[10] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[9];
-        S[9] = SB;
-
-        Atmp = A_align_Q12[3];
-        SB = S[8];
-        S[8] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[7];
-        S[7] = SB;
-
-        Atmp = A_align_Q12[4];
-        SB = S[6];
-        S[6] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[5];
-        S[5] = SB;
-
-        Atmp = A_align_Q12[5];
-        SB = S[4];
-        S[4] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[3];
-        S[3] = SB;
-
-        Atmp = A_align_Q12[6];
-        SB = S[2];
-        S[2] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-
-
-
-
-
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-        SA = S[1];
-        S[1] = SB;
-
-        /* unrolled loop: epilog */
-        Atmp = A_align_Q12[7];
-        SB = S[0];
-        S[0] = SA;
-        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
-        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
-
-        /* unrolled loop: end */
-        /* apply gain to excitation signal and add to prediction */
-        out32_Q10 = SKP_ADD_SAT32( out32_Q10, SKP_SMULWB( Gain_Q26, in[k] ) );
-
-        /* scale to Q0 */
-        out32 = SKP_RSHIFT_ROUND( out32_Q10, 10 );
-
-        /* saturate output */
-        out[k] = (SKP_int16)SKP_SAT16( out32 );
-
-        /* move result into delay line */
-        S[15] = SKP_LSHIFT_SAT32( out32_Q10, 4 );
-    }
-}
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_LPC_synthesis_order16.c                                   *
+ * Coefficients are in Q12                                              *
+ *                                                                      *
+ * 16th order AR filter                                                 *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* 16th order AR filter */
+void SKP_Silk_LPC_synthesis_order16(const SKP_int16 *in,          /* I:   excitation signal */
+                                      const SKP_int16 *A_Q12,       /* I:   AR coefficients [16], between -8_Q0 and 8_Q0 */
+                                      const SKP_int32 Gain_Q26,     /* I:   gain */
+                                      SKP_int32 *S,                 /* I/O: state vector [16] */
+                                      SKP_int16 *out,               /* O:   output signal */
+                                      const SKP_int32 len           /* I:   signal length, must be multiple of 16 */
+)
+{
+    SKP_int   k;
+    SKP_int32 SA, SB, Atmp, A_align_Q12[8], out32_Q10, out32;
+
+    /* combine two A_Q12 values and ensure 32-bit alignment */
+    for( k = 0; k &lt; 8; k++ ) {
+        A_align_Q12[k] = (((SKP_int32)A_Q12[ 2*k ]) &amp; 0x0000ffff) | SKP_LSHIFT( (SKP_int32)A_Q12[ 2*k + 1 ], 16 );
+    }
+
+    /* S[] values are in Q14 */
+    /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+    /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+    /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+    /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+    for( k = 0; k &lt; len; k++ ) {
+        /* unrolled loop: prolog */
+        /* multiply-add two prediction coefficients per iteration */
+        SA = S[15];
+        Atmp = A_align_Q12[0];
+        SB = S[14];
+        S[14] = SA;
+        out32_Q10 = SKP_SMULWB(                  SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[13];
+        S[13] = SB;
+
+        /* unrolled loop: main loop */
+        Atmp = A_align_Q12[1];
+        SB = S[12];
+        S[12] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[11];
+        S[11] = SB;
+
+        Atmp = A_align_Q12[2];
+        SB = S[10];
+        S[10] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[9];
+        S[9] = SB;
+
+        Atmp = A_align_Q12[3];
+        SB = S[8];
+        S[8] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[7];
+        S[7] = SB;
+
+        Atmp = A_align_Q12[4];
+        SB = S[6];
+        S[6] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[5];
+        S[5] = SB;
+
+        Atmp = A_align_Q12[5];
+        SB = S[4];
+        S[4] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[3];
+        S[3] = SB;
+
+        Atmp = A_align_Q12[6];
+        SB = S[2];
+        S[2] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+        SA = S[1];
+        S[1] = SB;
+
+        /* unrolled loop: epilog */
+        Atmp = A_align_Q12[7];
+        SB = S[0];
+        S[0] = SA;
+        out32_Q10 = SKP_SMLAWB_ovflw( out32_Q10, SA, Atmp );
+        out32_Q10 = SKP_SMLAWT_ovflw( out32_Q10, SB, Atmp );
+
+        /* unrolled loop: end */
+        /* apply gain to excitation signal and add to prediction */
+        out32_Q10 = SKP_ADD_SAT32( out32_Q10, SKP_SMULWB( Gain_Q26, in[k] ) );
+
+        /* scale to Q0 */
+        out32 = SKP_RSHIFT_ROUND( out32_Q10, 10 );
+
+        /* saturate output */
+        out[k] = (SKP_int16)SKP_SAT16( out32 );
+
+        /* move result into delay line */
+        S[15] = SKP_LSHIFT_SAT32( out32_Q10, 4 );
+    }
+}
+
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LP_variable_cutoffc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LP_variable_cutoff.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LP_variable_cutoff.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LP_variable_cutoff.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,217 +1,191 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*
-
-    Elliptic/Cauer filters designed with 0.1 dB passband ripple,
-
-
-
-
-
-        80 dB minimum stopband attenuation, and
-        [0.95 : 0.15 : 0.35] normalized cut off frequencies.
-
-*/
-#include &quot;SKP_Silk_main.h&quot;
-
-#if SWITCH_TRANSITION_FILTERING
-
-/* Helper function, that interpolates the filter taps */
-SKP_INLINE void SKP_Silk_LP_interpolate_filter_taps(
-    SKP_int32           B_Q28[ TRANSITION_NB ],
-    SKP_int32           A_Q28[ TRANSITION_NA ],
-    const SKP_int       ind,
-    const SKP_int32     fac_Q16
-)
-{
-    SKP_int nb, na;
-
-    if( ind &lt; TRANSITION_INT_NUM - 1 ) {
-        if( fac_Q16 &gt; 0 ) {
-            if( fac_Q16 == SKP_SAT16( fac_Q16 ) ) { /* fac_Q16 is in range of a 16-bit int */
-                /* Piece-wise linear interpolation of B and A */
-                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
-                    B_Q28[ nb ] = SKP_SMLAWB(
-                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ],
-                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ] -
-                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ],
-                        fac_Q16 );
-                }
-                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
-                    A_Q28[ na ] = SKP_SMLAWB(
-                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ],
-                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ] -
-                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ],
-                        fac_Q16 );
-                }
-            } else if( fac_Q16 == ( 1 &lt;&lt; 15 ) ) { /* Neither fac_Q16 nor ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) is in range of a 16-bit int */
-
-                /* Piece-wise linear interpolation of B and A */
-                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
-                    B_Q28[ nb ] = SKP_RSHIFT(
-                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ] +
-                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
-                        1 );
-                }
-                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
-                    A_Q28[ na ] = SKP_RSHIFT(
-                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ] +
-
-
-
-
-
-                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ],
-                        1 );
-                }
-            } else { /* ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) is in range of a 16-bit int */
-
-                SKP_assert( ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) == SKP_SAT16( ( ( 1 &lt;&lt; 16 ) - fac_Q16) ) );
-                /* Piece-wise linear interpolation of B and A */
-                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
-                    B_Q28[ nb ] = SKP_SMLAWB(
-                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
-                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ] -
-                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
-                        ( 1 &lt;&lt; 16 ) - fac_Q16 );
-                }
-                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
-                    A_Q28[ na ] = SKP_SMLAWB(
-                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ],
-                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ] -
-                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ],
-                        ( 1 &lt;&lt; 16 ) - fac_Q16 );
-                }
-            }
-        } else {
-            SKP_memcpy( B_Q28, SKP_Silk_Transition_LP_B_Q28[ ind ], TRANSITION_NB * sizeof( SKP_int32 ) );
-            SKP_memcpy( A_Q28, SKP_Silk_Transition_LP_A_Q28[ ind ], TRANSITION_NA * sizeof( SKP_int32 ) );
-        }
-    } else {
-        SKP_memcpy( B_Q28, SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM - 1 ], TRANSITION_NB * sizeof( SKP_int32 ) );
-        SKP_memcpy( A_Q28, SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM - 1 ], TRANSITION_NA * sizeof( SKP_int32 ) );
-    }
-}
-
-/* Low-pass filter with variable cutoff frequency based on  */
-/* piece-wise linear interpolation between elliptic filters */
-/* Start by setting psEncC-&gt;transition_frame_no = 1;            */
-/* Deactivate by setting psEncC-&gt;transition_frame_no = 0;   */
-void SKP_Silk_LP_variable_cutoff(
-    SKP_Silk_LP_state               *psLP,          /* I/O  LP filter state                     */
-    SKP_int16                       *out,           /* O    Low-pass filtered output signal     */
-    const SKP_int16                 *in,            /* I    Input signal                        */
-    const SKP_int                   frame_length    /* I    Frame length                        */
-)
-{
-    SKP_int32   B_Q28[ TRANSITION_NB ], A_Q28[ TRANSITION_NA ];
-    SKP_int     fac_Q16 = 0, ind = 0;
-
-    SKP_assert( psLP-&gt;transition_frame_no &gt;= 0 );
-    SKP_assert( ( ( ( psLP-&gt;transition_frame_no &lt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psLP-&gt;mode == 0 ) ) ||
-
-
-
-
-
-                  ( ( psLP-&gt;transition_frame_no &lt;= TRANSITION_FRAMES_UP   ) &amp;&amp; ( psLP-&gt;mode == 1 ) ) ) );
-
-    /* Interpolate filter coefficients if needed */
-    if( psLP-&gt;transition_frame_no &gt; 0 ) {
-        if( psLP-&gt;mode == 0 ) {
-            if( psLP-&gt;transition_frame_no &lt; TRANSITION_FRAMES_DOWN ) {
-                /* Calculate index and interpolation factor for interpolation */
-#if( TRANSITION_INT_STEPS_DOWN == 32 )
-                fac_Q16 = SKP_LSHIFT( psLP-&gt;transition_frame_no, 16 - 5 );
-#else
-                fac_Q16 = SKP_DIV32_16( SKP_LSHIFT( psLP-&gt;transition_frame_no, 16 ), TRANSITION_INT_STEPS_DOWN );
-#endif
-                ind      = SKP_RSHIFT( fac_Q16, 16 );
-                fac_Q16 -= SKP_LSHIFT( ind, 16 );
-
-                SKP_assert( ind &gt;= 0 );
-                SKP_assert( ind &lt; TRANSITION_INT_NUM );
-
-                /* Interpolate filter coefficients */
-                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 );
-
-                /* Increment transition frame number for next frame */
-                psLP-&gt;transition_frame_no++;
-
-            } else if( psLP-&gt;transition_frame_no == TRANSITION_FRAMES_DOWN ) {
-                /* End of transition phase */
-                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, TRANSITION_INT_NUM - 1, 0 );
-            }
-        } else if( psLP-&gt;mode == 1 ) {
-            if( psLP-&gt;transition_frame_no &lt; TRANSITION_FRAMES_UP ) {
-                /* Calculate index and interpolation factor for interpolation */
-#if( TRANSITION_INT_STEPS_UP == 64 )
-                fac_Q16 = SKP_LSHIFT( TRANSITION_FRAMES_UP - psLP-&gt;transition_frame_no, 16 - 6 );
-#else
-                fac_Q16 = SKP_DIV32_16( SKP_LSHIFT( TRANSITION_FRAMES_UP - psLP-&gt;transition_frame_no, 16 ), TRANSITION_INT_STEPS_UP );
-#endif
-                ind      = SKP_RSHIFT( fac_Q16, 16 );
-                fac_Q16 -= SKP_LSHIFT( ind, 16 );
-
-                SKP_assert( ind &gt;= 0 );
-                SKP_assert( ind &lt; TRANSITION_INT_NUM );
-
-                /* Interpolate filter coefficients */
-                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 );
-
-                /* Increment transition frame number for next frame */
-                psLP-&gt;transition_frame_no++;
-
-
-
-
-
-
-            } else if( psLP-&gt;transition_frame_no == TRANSITION_FRAMES_UP ) {
-                /* End of transition phase */
-                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, 0, 0 );
-            }
-        }
-    }
-
-    if( psLP-&gt;transition_frame_no &gt; 0 ) {
-        /* ARMA low-pass filtering */
-        SKP_assert( TRANSITION_NB == 3 &amp;&amp; TRANSITION_NA == 2 );
-        SKP_Silk_biquad_alt( in, B_Q28, A_Q28, psLP-&gt;In_LP_State, out, frame_length );
-    } else {
-        /* Instead of using the filter, copy input directly to output */
-        SKP_memcpy( out, in, frame_length * sizeof( SKP_int16 ) );
-    }
-}
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/* 
+
+    Elliptic/Cauer filters designed with 0.1 dB passband ripple, 
+        80 dB minimum stopband attenuation, and
+        [0.95 : 0.15 : 0.35] normalized cut off frequencies.
+
+*/
+#include &quot;SKP_Silk_main.h&quot;
+
+#if SWITCH_TRANSITION_FILTERING
+
+/* Helper function, that interpolates the filter taps */
+SKP_INLINE void SKP_Silk_LP_interpolate_filter_taps( 
+    SKP_int32           B_Q28[ TRANSITION_NB ], 
+    SKP_int32           A_Q28[ TRANSITION_NA ],
+    const SKP_int       ind,
+    const SKP_int32     fac_Q16
+)
+{
+    SKP_int nb, na;
+
+    if( ind &lt; TRANSITION_INT_NUM - 1 ) {
+        if( fac_Q16 &gt; 0 ) {
+            if( fac_Q16 == SKP_SAT16( fac_Q16 ) ) { /* fac_Q16 is in range of a 16-bit int */
+                /* Piece-wise linear interpolation of B and A */
+                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
+                    B_Q28[ nb ] = SKP_SMLAWB(
+                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ],
+                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ] -
+                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ],
+                        fac_Q16 );
+                }
+                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
+                    A_Q28[ na ] = SKP_SMLAWB(
+                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ],
+                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ] -
+                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ],
+                        fac_Q16 );
+                }
+            } else if( fac_Q16 == ( 1 &lt;&lt; 15 ) ) { /* Neither fac_Q16 nor ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) is in range of a 16-bit int */
+
+                /* Piece-wise linear interpolation of B and A */
+                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
+                    B_Q28[ nb ] = SKP_RSHIFT( 
+                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ] +
+                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
+                        1 );
+                }
+                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
+                    A_Q28[ na ] = SKP_RSHIFT( 
+                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ] + 
+                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ], 
+                        1 );
+                }
+            } else { /* ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) is in range of a 16-bit int */
+                
+                SKP_assert( ( ( 1 &lt;&lt; 16 ) - fac_Q16 ) == SKP_SAT16( ( ( 1 &lt;&lt; 16 ) - fac_Q16) ) );
+                /* Piece-wise linear interpolation of B and A */
+                for( nb = 0; nb &lt; TRANSITION_NB; nb++ ) {
+                    B_Q28[ nb ] = SKP_SMLAWB(
+                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
+                        SKP_Silk_Transition_LP_B_Q28[ ind     ][ nb ] -
+                        SKP_Silk_Transition_LP_B_Q28[ ind + 1 ][ nb ],
+                        ( 1 &lt;&lt; 16 ) - fac_Q16 );
+                }
+                for( na = 0; na &lt; TRANSITION_NA; na++ ) {
+                    A_Q28[ na ] = SKP_SMLAWB(
+                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ],
+                        SKP_Silk_Transition_LP_A_Q28[ ind     ][ na ] -
+                        SKP_Silk_Transition_LP_A_Q28[ ind + 1 ][ na ],
+                        ( 1 &lt;&lt; 16 ) - fac_Q16 );
+                }
+            }
+        } else {
+            SKP_memcpy( B_Q28, SKP_Silk_Transition_LP_B_Q28[ ind ], TRANSITION_NB * sizeof( SKP_int32 ) );
+            SKP_memcpy( A_Q28, SKP_Silk_Transition_LP_A_Q28[ ind ], TRANSITION_NA * sizeof( SKP_int32 ) );
+        }
+    } else {
+        SKP_memcpy( B_Q28, SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM - 1 ], TRANSITION_NB * sizeof( SKP_int32 ) );
+        SKP_memcpy( A_Q28, SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM - 1 ], TRANSITION_NA * sizeof( SKP_int32 ) );
+    }
+}
+
+/* Low-pass filter with variable cutoff frequency based on  */
+/* piece-wise linear interpolation between elliptic filters */
+/* Start by setting psEncC-&gt;transition_frame_no = 1;            */
+/* Deactivate by setting psEncC-&gt;transition_frame_no = 0;   */
+void SKP_Silk_LP_variable_cutoff(
+    SKP_Silk_LP_state               *psLP,          /* I/O  LP filter state                     */
+    SKP_int16                       *out,           /* O    Low-pass filtered output signal     */
+    const SKP_int16                 *in,            /* I    Input signal                        */
+    const SKP_int                   frame_length    /* I    Frame length                        */
+)
+{
+    SKP_int32   B_Q28[ TRANSITION_NB ], A_Q28[ TRANSITION_NA ];
+    SKP_int     fac_Q16 = 0, ind = 0;
+
+    SKP_assert( psLP-&gt;transition_frame_no &gt;= 0 );
+    SKP_assert( ( ( ( psLP-&gt;transition_frame_no &lt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psLP-&gt;mode == 0 ) ) || 
+                  ( ( psLP-&gt;transition_frame_no &lt;= TRANSITION_FRAMES_UP   ) &amp;&amp; ( psLP-&gt;mode == 1 ) ) ) );
+
+    /* Interpolate filter coefficients if needed */
+    if( psLP-&gt;transition_frame_no &gt; 0 ) {
+        if( psLP-&gt;mode == 0 ) {
+            if( psLP-&gt;transition_frame_no &lt; TRANSITION_FRAMES_DOWN ) {
+                /* Calculate index and interpolation factor for interpolation */
+#if( TRANSITION_INT_STEPS_DOWN == 32 )
+                fac_Q16 = SKP_LSHIFT( psLP-&gt;transition_frame_no, 16 - 5 );
+#else
+                fac_Q16 = SKP_DIV32_16( SKP_LSHIFT( psLP-&gt;transition_frame_no, 16 ), TRANSITION_INT_STEPS_DOWN );
+#endif
+                ind      = SKP_RSHIFT( fac_Q16, 16 );
+                fac_Q16 -= SKP_LSHIFT( ind, 16 );
+
+                SKP_assert( ind &gt;= 0 );
+                SKP_assert( ind &lt; TRANSITION_INT_NUM );
+
+                /* Interpolate filter coefficients */
+                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 );
+
+                /* Increment transition frame number for next frame */
+                psLP-&gt;transition_frame_no++;
+
+            } else if( psLP-&gt;transition_frame_no == TRANSITION_FRAMES_DOWN ) {
+                /* End of transition phase */
+                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, TRANSITION_INT_NUM - 1, 0 );
+            }
+        } else if( psLP-&gt;mode == 1 ) {
+            if( psLP-&gt;transition_frame_no &lt; TRANSITION_FRAMES_UP ) {
+                /* Calculate index and interpolation factor for interpolation */
+#if( TRANSITION_INT_STEPS_UP == 64 )
+                fac_Q16 = SKP_LSHIFT( TRANSITION_FRAMES_UP - psLP-&gt;transition_frame_no, 16 - 6 );
+#else
+                fac_Q16 = SKP_DIV32_16( SKP_LSHIFT( TRANSITION_FRAMES_UP - psLP-&gt;transition_frame_no, 16 ), TRANSITION_INT_STEPS_UP );
+#endif
+                ind      = SKP_RSHIFT( fac_Q16, 16 );
+                fac_Q16 -= SKP_LSHIFT( ind, 16 );
+
+                SKP_assert( ind &gt;= 0 );
+                SKP_assert( ind &lt; TRANSITION_INT_NUM );
+
+                /* Interpolate filter coefficients */
+                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 );
+
+                /* Increment transition frame number for next frame */
+                psLP-&gt;transition_frame_no++;
+            
+            } else if( psLP-&gt;transition_frame_no == TRANSITION_FRAMES_UP ) {
+                /* End of transition phase */
+                SKP_Silk_LP_interpolate_filter_taps( B_Q28, A_Q28, 0, 0 );
+            }
+        }
+    } 
+    
+    if( psLP-&gt;transition_frame_no &gt; 0 ) {
+        /* ARMA low-pass filtering */
+        SKP_assert( TRANSITION_NB == 3 &amp;&amp; TRANSITION_NA == 2 );
+        SKP_Silk_biquad_alt( in, B_Q28, A_Q28, psLP-&gt;In_LP_State, out, frame_length );
+    } else {
+        /* Instead of using the filter, copy input directly to output */
+        SKP_memcpy( out, in, frame_length * sizeof( SKP_int16 ) );
+    }
+}
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LSF_cos_tablec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LSF_cos_table.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LSF_cos_table.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LSF_cos_table.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,81 +1,65 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-
-
-
-
-
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-// Q12 values (even)
-const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[LSF_COS_TAB_SZ_FIX + 1] = {
-            8192,             8190,             8182,             8170,
-            8152,             8130,             8104,             8072,
-            8034,             7994,             7946,             7896,
-            7840,             7778,             7714,             7644,
-            7568,             7490,             7406,             7318,
-            7226,             7128,             7026,             6922,
-            6812,             6698,             6580,             6458,
-            6332,             6204,             6070,             5934,
-            5792,             5648,             5502,             5352,
-            5198,             5040,             4880,             4718,
-            4552,             4382,             4212,             4038,
-            3862,             3684,             3502,             3320,
-            3136,             2948,             2760,             2570,
-            2378,             2186,             1990,             1794,
-            1598,             1400,             1202,             1002,
-             802,              602,              402,              202,
-               0,             -202,             -402,             -602,
-            -802,            -1002,            -1202,            -1400,
-           -1598,            -1794,            -1990,            -2186,
-           -2378,            -2570,            -2760,            -2948,
-           -3136,            -3320,            -3502,            -3684,
-           -3862,            -4038,            -4212,            -4382,
-           -4552,            -4718,            -4880,            -5040,
-           -5198,            -5352,            -5502,            -5648,
-           -5792,            -5934,            -6070,            -6204,
-           -6332,            -6458,            -6580,            -6698,
-           -6812,            -6922,            -7026,            -7128,
-           -7226,            -7318,            -7406,            -7490,
-           -7568,            -7644,            -7714,            -7778,
-           -7840,            -7896,            -7946,            -7994,
-           -8034,            -8072,            -8104,            -8130,
-
-
-
-
-
-           -8152,            -8170,            -8182,            -8190,
-           -8192
-};
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+// Q12 values (even)
+const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[LSF_COS_TAB_SZ_FIX + 1] = {
+            8192,             8190,             8182,             8170,     
+            8152,             8130,             8104,             8072,     
+            8034,             7994,             7946,             7896,     
+            7840,             7778,             7714,             7644,     
+            7568,             7490,             7406,             7318,     
+            7226,             7128,             7026,             6922,     
+            6812,             6698,             6580,             6458,     
+            6332,             6204,             6070,             5934,     
+            5792,             5648,             5502,             5352,     
+            5198,             5040,             4880,             4718,     
+            4552,             4382,             4212,             4038,     
+            3862,             3684,             3502,             3320,     
+            3136,             2948,             2760,             2570,     
+            2378,             2186,             1990,             1794,     
+            1598,             1400,             1202,             1002,     
+             802,              602,              402,              202,     
+               0,             -202,             -402,             -602,     
+            -802,            -1002,            -1202,            -1400,     
+           -1598,            -1794,            -1990,            -2186,     
+           -2378,            -2570,            -2760,            -2948,     
+           -3136,            -3320,            -3502,            -3684,     
+           -3862,            -4038,            -4212,            -4382,     
+           -4552,            -4718,            -4880,            -5040,     
+           -5198,            -5352,            -5502,            -5648,     
+           -5792,            -5934,            -6070,            -6204,     
+           -6332,            -6458,            -6580,            -6698,     
+           -6812,            -6922,            -7026,            -7128,     
+           -7226,            -7318,            -7406,            -7490,     
+           -7568,            -7644,            -7714,            -7778,     
+           -7840,            -7896,            -7946,            -7994,     
+           -8034,            -8072,            -8104,            -8130,     
+           -8152,            -8170,            -8182,            -8190,     
+           -8192
+};
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LTP_analysis_filter_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,100 +1,85 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-void SKP_Silk_LTP_analysis_filter_FIX(
-    SKP_int16       *LTP_res,                           /* O:   LTP residual signal of length NB_SUBFR * ( pre_length + subfr_length )  */
-    const SKP_int16 *x,                                 /* I:   Pointer to input signal with at least max( pitchL ) preceeding samples  */
-    const SKP_int16 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],/* I:   LTP_ORDER LTP coefficients for each NB_SUBFR subframe                   */
-    const SKP_int   pitchL[ NB_SUBFR ],                 /* I:   Pitch lag, one for each subframe                                        */
-    const SKP_int32 invGains_Qxx[ NB_SUBFR ],           /* I:   Inverse quantization gains, one for each subframe                       */
-    const SKP_int   Qxx,                                /* I:   Inverse quantization gains Q domain                                     */
-    const SKP_int   subfr_length,                       /* I:   Length of each subframe                                                 */
-    const SKP_int   pre_length                          /* I:   Length of the preceeding samples starting at &amp;x[0] for each subframe    */
-
-
-
-
-
-)
-{
-    const SKP_int16 *x_ptr, *x_lag_ptr;
-    SKP_int16   Btmp_Q14[ LTP_ORDER ];
-    SKP_int16   *LTP_res_ptr;
-    SKP_int     k, i, j;
-    SKP_int32   LTP_est;
-
-    x_ptr = x;
-    LTP_res_ptr = LTP_res;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-
-        x_lag_ptr = x_ptr - pitchL[ k ];
-        for( i = 0; i &lt; LTP_ORDER; i++ ) {
-            Btmp_Q14[ i ] = LTPCoef_Q14[ k * LTP_ORDER + i ];
-        }
-
-        /* LTP analysis FIR filter */
-        for( i = 0; i &lt; subfr_length + pre_length; i++ ) {
-            LTP_res_ptr[ i ] = x_ptr[ i ];
-
-            /* Long-term prediction */
-            LTP_est = SKP_SMULBB( x_lag_ptr[ LTP_ORDER / 2 ], Btmp_Q14[ 0 ] );
-            for( j = 1; j &lt; LTP_ORDER; j++ ) {
-                LTP_est = SKP_SMLABB_ovflw( LTP_est, x_lag_ptr[ LTP_ORDER / 2 - j ], Btmp_Q14[ j ] );
-            }
-            LTP_est = SKP_RSHIFT_ROUND( LTP_est, 14 ); // round and -&gt; Q0
-
-            /* Subtract long-term prediction */
-            LTP_res_ptr[ i ] = (SKP_int16)SKP_SAT16( (SKP_int32)x_ptr[ i ] - LTP_est );
-
-            /* Scale residual */
-            if( Qxx == 16 ) {
-                LTP_res_ptr[ i ] = SKP_SMULWB( invGains_Qxx[ k ], LTP_res_ptr[ i ] );
-            } else {
-                LTP_res_ptr[ i ] = (SKP_int16)SKP_CHECK_FIT16( SKP_RSHIFT64( SKP_SMULL( invGains_Qxx[ k ], LTP_res_ptr[ i ] ), Qxx ) );
-            }
-
-            x_lag_ptr++;
-        }
-
-        /* Update pointers */
-        LTP_res_ptr += subfr_length + pre_length;
-        x_ptr       += subfr_length;
-    }
-}
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+void SKP_Silk_LTP_analysis_filter_FIX(
+    SKP_int16       *LTP_res,                           /* O:   LTP residual signal of length NB_SUBFR * ( pre_length + subfr_length )  */
+    const SKP_int16 *x,                                 /* I:   Pointer to input signal with at least max( pitchL ) preceeding samples  */
+    const SKP_int16 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],/* I:   LTP_ORDER LTP coefficients for each NB_SUBFR subframe                   */
+    const SKP_int   pitchL[ NB_SUBFR ],                 /* I:   Pitch lag, one for each subframe                                        */
+    const SKP_int32 invGains_Qxx[ NB_SUBFR ],           /* I:   Inverse quantization gains, one for each subframe                       */
+    const SKP_int   Qxx,                                /* I:   Inverse quantization gains Q domain                                     */
+    const SKP_int   subfr_length,                       /* I:   Length of each subframe                                                 */
+    const SKP_int   pre_length                          /* I:   Length of the preceeding samples starting at &amp;x[0] for each subframe    */
+)
+{
+    const SKP_int16 *x_ptr, *x_lag_ptr;
+    SKP_int16   Btmp_Q14[ LTP_ORDER ];
+    SKP_int16   *LTP_res_ptr;
+    SKP_int     k, i, j;
+    SKP_int32   LTP_est;
+
+    x_ptr = x;
+    LTP_res_ptr = LTP_res;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+
+        x_lag_ptr = x_ptr - pitchL[ k ];
+        for( i = 0; i &lt; LTP_ORDER; i++ ) {
+            Btmp_Q14[ i ] = LTPCoef_Q14[ k * LTP_ORDER + i ];
+        }
+
+        /* LTP analysis FIR filter */
+        for( i = 0; i &lt; subfr_length + pre_length; i++ ) {
+            LTP_res_ptr[ i ] = x_ptr[ i ];
+            
+            /* Long-term prediction */
+            LTP_est = SKP_SMULBB( x_lag_ptr[ LTP_ORDER / 2 ], Btmp_Q14[ 0 ] );
+            for( j = 1; j &lt; LTP_ORDER; j++ ) {
+                LTP_est = SKP_SMLABB_ovflw( LTP_est, x_lag_ptr[ LTP_ORDER / 2 - j ], Btmp_Q14[ j ] );
+            }
+            LTP_est = SKP_RSHIFT_ROUND( LTP_est, 14 ); // round and -&gt; Q0
+
+            /* Subtract long-term prediction */
+            LTP_res_ptr[ i ] = ( SKP_int16 )SKP_SAT16( ( SKP_int32 )x_ptr[ i ] - LTP_est );
+
+            /* Scale residual */
+            if( Qxx == 16 ) {
+                LTP_res_ptr[ i ] = SKP_SMULWB( invGains_Qxx[ k ], LTP_res_ptr[ i ] );
+            } else {
+                LTP_res_ptr[ i ] = ( SKP_int16 )SKP_CHECK_FIT16( SKP_RSHIFT64( SKP_SMULL( invGains_Qxx[ k ], LTP_res_ptr[ i ] ), Qxx ) );
+            }
+
+            x_lag_ptr++;
+        }
+
+        /* Update pointers */
+        LTP_res_ptr += subfr_length + pre_length; 
+        x_ptr       += subfr_length;
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_LTP_scale_ctrl_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,92 +1,81 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-#define NB_THRESHOLDS           11
-
-/* Table containing trained thresholds for LTP scaling */
-static const SKP_int16 LTPScaleThresholds_Q15[ NB_THRESHOLDS ] =
-{
-    31129, 26214, 16384, 13107, 9830, 6554,
-     4915,  3276,  2621,  2458,    0
-};
-
-void SKP_Silk_LTP_scale_ctrl_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state FIX                           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl  /* I/O  encoder control FIX                         */
-)
-{
-
-
-
-
-
-    SKP_int round_loss, frames_per_packet;
-    SKP_int g_out_Q5, g_limit_Q15, thrld1_Q15, thrld2_Q15;
-
-    /* 1st order high-pass filter */
-    psEnc-&gt;HPLTPredCodGain_Q7 = SKP_max_int( psEncCtrl-&gt;LTPredCodGain_Q7 - psEnc-&gt;prevLTPredCodGain_Q7, 0 )
-        + SKP_RSHIFT_ROUND( psEnc-&gt;HPLTPredCodGain_Q7, 1 );
-
-    psEnc-&gt;prevLTPredCodGain_Q7 = psEncCtrl-&gt;LTPredCodGain_Q7;
-
-    /* combine input and filtered input */
-    g_out_Q5    = SKP_RSHIFT_ROUND( SKP_RSHIFT( psEncCtrl-&gt;LTPredCodGain_Q7, 1 ) + SKP_RSHIFT( psEnc-&gt;HPLTPredCodGain_Q7, 1 ), 3 );
-    g_limit_Q15 = SKP_Silk_sigm_Q15( g_out_Q5 - ( 3 &lt;&lt; 5 ) ); /* mulitplid with 0.5 */
-
-    /* Default is minimum scaling */
-    psEncCtrl-&gt;sCmn.LTP_scaleIndex = 0;
-
-    /* Round the loss measure to whole pct */
-    round_loss = (SKP_int)psEnc-&gt;sCmn.PacketLoss_perc;
-
-    /* Only scale if first frame in packet 0% */
-    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
-
-        frames_per_packet = SKP_DIV32_16( psEnc-&gt;sCmn.PacketSize_ms, FRAME_LENGTH_MS );
-
-        round_loss += frames_per_packet - 1;
-        thrld1_Q15 = LTPScaleThresholds_Q15[ SKP_min_int( round_loss,     NB_THRESHOLDS - 1 ) ];
-        thrld2_Q15 = LTPScaleThresholds_Q15[ SKP_min_int( round_loss + 1, NB_THRESHOLDS - 1 ) ];
-
-        if( g_limit_Q15 &gt; thrld1_Q15 ) {
-            /* Maximum scaling */
-            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 2;
-        } else if( g_limit_Q15 &gt; thrld2_Q15 ) {
-            /* Medium scaling */
-            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 1;
-        }
-    }
-    psEncCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ psEncCtrl-&gt;sCmn.LTP_scaleIndex ];
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+#define NB_THRESHOLDS           11
+
+/* Table containing trained thresholds for LTP scaling */
+static const SKP_int16 LTPScaleThresholds_Q15[ NB_THRESHOLDS ] = 
+{
+    31129, 26214, 16384, 13107, 9830, 6554,
+     4915,  3276,  2621,  2458,    0
+};
+
+void SKP_Silk_LTP_scale_ctrl_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state FIX                           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl  /* I/O  encoder control FIX                         */
+)
+{
+    SKP_int round_loss, frames_per_packet;
+    SKP_int g_out_Q5, g_limit_Q15, thrld1_Q15, thrld2_Q15;
+
+    /* 1st order high-pass filter */
+    psEnc-&gt;HPLTPredCodGain_Q7 = SKP_max_int( psEncCtrl-&gt;LTPredCodGain_Q7 - psEnc-&gt;prevLTPredCodGain_Q7, 0 ) 
+        + SKP_RSHIFT_ROUND( psEnc-&gt;HPLTPredCodGain_Q7, 1 );
+    
+    psEnc-&gt;prevLTPredCodGain_Q7 = psEncCtrl-&gt;LTPredCodGain_Q7;
+
+    /* combine input and filtered input */
+    g_out_Q5    = SKP_RSHIFT_ROUND( SKP_RSHIFT( psEncCtrl-&gt;LTPredCodGain_Q7, 1 ) + SKP_RSHIFT( psEnc-&gt;HPLTPredCodGain_Q7, 1 ), 3 );
+    g_limit_Q15 = SKP_Silk_sigm_Q15( g_out_Q5 - ( 3 &lt;&lt; 5 ) ); /* mulitplid with 0.5 */
+            
+    /* Default is minimum scaling */
+    psEncCtrl-&gt;sCmn.LTP_scaleIndex = 0;
+
+    /* Round the loss measure to whole pct */
+    round_loss = ( SKP_int )psEnc-&gt;sCmn.PacketLoss_perc;
+
+    /* Only scale if first frame in packet 0% */
+    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
+        
+        frames_per_packet = SKP_DIV32_16( psEnc-&gt;sCmn.PacketSize_ms, FRAME_LENGTH_MS );
+
+        round_loss += frames_per_packet - 1;
+        thrld1_Q15 = LTPScaleThresholds_Q15[ SKP_min_int( round_loss,     NB_THRESHOLDS - 1 ) ];
+        thrld2_Q15 = LTPScaleThresholds_Q15[ SKP_min_int( round_loss + 1, NB_THRESHOLDS - 1 ) ];
+    
+        if( g_limit_Q15 &gt; thrld1_Q15 ) {
+            /* Maximum scaling */
+            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 2;
+        } else if( g_limit_Q15 &gt; thrld2_Q15 ) {
+            /* Medium scaling */
+            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 1;
+        }
+    }
+    psEncCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ psEncCtrl-&gt;sCmn.LTP_scaleIndex ];
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_MAc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_MA.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_MA.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_MA.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,262 +1,232 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-
-
-
-
-
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_MA.c                                                      *
- *                                                                      *
- * Variable order MA filter                                             *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Variable order MA filter */
-void SKP_Silk_MA(
-    const SKP_int16      *in,            /* I:   input signal                                */
-    const SKP_int16      *B,             /* I:   MA coefficients, Q13 [order+1]              */
-    SKP_int32            *S,             /* I/O: state vector [order]                        */
-    SKP_int16            *out,           /* O:   output signal                               */
-    const SKP_int32      len,            /* I:   signal length                               */
-    const SKP_int32      order           /* I:   filter order                                */
-)
-{
-    SKP_int   k, d, in16;
-    SKP_int32 out32;
-
-    for( k = 0; k &lt; len; k++ ) {
-
-
-
-
-
-        in16 = in[ k ];
-        out32 = SKP_SMLABB( S[ 0 ], in16, B[ 0 ] );
-        out32 = SKP_RSHIFT_ROUND( out32, 13 );
-
-        for( d = 1; d &lt; order; d++ ) {
-            S[ d - 1 ] = SKP_SMLABB( S[ d ], in16, B[ d ] );
-        }
-        S[ order - 1 ] = SKP_SMULBB( in16, B[ order ] );
-
-        /* Limit */
-        out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-    }
-}
-/* Variable order MA prediction error filter */
-void SKP_Silk_MA_Prediction(
-    const SKP_int16      *in,            /* I:   Input signal                                */
-    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q12 [order]     */
-    SKP_int32            *S,             /* I/O: State vector [order]                        */
-    SKP_int16            *out,           /* O:   Output signal                               */
-    const SKP_int32      len,            /* I:   Signal length                               */
-    const SKP_int32      order           /* I:   Filter order                                */
-)
-{
-    SKP_int   k, d, in16;
-    SKP_int32 out32;
-    SKP_int32 B32;
-
-    if( ( order &amp; 1 ) == 0 &amp;&amp; (SKP_int32)( (SKP_int_ptr_size)B &amp; 3 ) == 0 ) {
-        /* Even order and 4-byte aligned coefficient array */
-
-        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the    */
-        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be      */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping    */
-        /* the SMLABB and SMLABT instructions should solve the problem.                              */
-        for( k = 0; k &lt; len; k++ ) {
-            in16 = in[ k ];
-            out32 = SKP_LSHIFT( in16, 12 ) - S[ 0 ];
-            out32 = SKP_RSHIFT_ROUND( out32, 12 );
-
-            for( d = 0; d &lt; order - 2; d += 2 ) {
-                B32 = *( (SKP_int32*)&amp;B[ d ] );                /* read two coefficients at once */
-                S[ d ]     = SKP_SMLABB_ovflw( S[ d + 1 ], in16, B32 );
-                S[ d + 1 ] = SKP_SMLABT_ovflw( S[ d + 2 ], in16, B32 );
-            }
-            B32 = *( (SKP_int32*)&amp;B[ d ] );                    /* read two coefficients at once */
-            S[ order - 2 ] = SKP_SMLABB_ovflw( S[ order - 1 ], in16, B32 );
-            S[ order - 1 ] = SKP_SMULBT( in16, B32 );
-
-
-
-
-
-
-            /* Limit */
-            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-        }
-    } else {
-        /* Odd order or not 4-byte aligned coefficient array */
-        for( k = 0; k &lt; len; k++ ) {
-            in16 = in[ k ];
-            out32 = SKP_LSHIFT( in16, 12 ) - S[ 0 ];
-            out32 = SKP_RSHIFT_ROUND( out32, 12 );
-
-            for( d = 0; d &lt; order - 1; d++ ) {
-                S[ d ] = SKP_SMLABB_ovflw( S[ d + 1 ], in16, B[ d ] );
-            }
-            S[ order - 1 ] = SKP_SMULBB( in16, B[ order - 1 ] );
-
-            /* Limit */
-            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-        }
-    }
-}
-
-void SKP_Silk_MA_Prediction_Q13(
-    const SKP_int16      *in,            /* I:   input signal                                */
-    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q13 [order]     */
-    SKP_int32            *S,             /* I/O: state vector [order]                        */
-    SKP_int16            *out,           /* O:   output signal                               */
-    SKP_int32            len,            /* I:   signal length                               */
-    SKP_int32            order           /* I:   filter order                                */
-)
-{
-    SKP_int   k, d, in16;
-    SKP_int32 out32, B32;
-
-    if( ( order &amp; 1 ) == 0 &amp;&amp; (SKP_int32)( (SKP_int_ptr_size)B &amp; 3 ) == 0 ) {
-        /* Even order and 4-byte aligned coefficient array */
-
-        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the    */
-        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be      */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping    */
-        /* the SMLABB and SMLABT instructions should solve the problem.                              */
-        for( k = 0; k &lt; len; k++ ) {
-            in16 = in[ k ];
-            out32 = SKP_LSHIFT( in16, 13 ) - S[ 0 ];
-            out32 = SKP_RSHIFT_ROUND( out32, 13 );
-
-            for( d = 0; d &lt; order - 2; d += 2 ) {
-                B32 = *( (SKP_int32*)&amp;B[ d ] );                /* read two coefficients at once */
-                S[ d ]     = SKP_SMLABB( S[ d + 1 ], in16, B32 );
-
-
-
-
-
-                S[ d + 1 ] = SKP_SMLABT( S[ d + 2 ], in16, B32 );
-            }
-            B32 = *( (SKP_int32*)&amp;B[ d ] );                    /* read two coefficients at once */
-            S[ order - 2 ] = SKP_SMLABB( S[ order - 1 ], in16, B32 );
-            S[ order - 1 ] = SKP_SMULBT( in16, B32 );
-
-            /* Limit */
-            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-        }
-    } else {
-        /* Odd order or not 4-byte aligned coefficient array */
-        for( k = 0; k &lt; len; k++ ) {
-            in16 = in[ k ];
-            out32 = SKP_LSHIFT( in16, 13 ) - S[ 0 ];
-            out32 = SKP_RSHIFT_ROUND( out32, 13 );
-
-            for( d = 0; d &lt; order - 1; d++ ) {
-                S[ d ] = SKP_SMLABB( S[ d + 1 ], in16, B[ d ] );
-            }
-            S[ order - 1 ] = SKP_SMULBB( in16, B[ order - 1 ] );
-
-            /* Limit */
-            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-        }
-    }
-}
-/* Variable order MA prediction error filter. */
-/* Inverse filter of SKP_Silk_LPC_synthesis_filter */
-void SKP_Silk_LPC_analysis_filter(
-    const SKP_int16      *in,            /* I:   Input signal                                */
-    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q12 [order]     */
-    SKP_int16            *S,             /* I/O: State vector [order]                        */
-    SKP_int16            *out,           /* O:   Output signal                               */
-    const SKP_int32      len,            /* I:   Signal length                               */
-    const SKP_int32      Order           /* I:   Filter order                                */
-)
-{
-    SKP_int   k, j, idx, Order_half = SKP_RSHIFT( Order, 1 );
-    SKP_int32 Btmp, B_align_Q12[ SigProc_MAX_ORDER_LPC &gt;&gt; 1 ], out32_Q12, out32;
-    SKP_int16 SA, SB;
-    /* Order must be even */
-    SKP_assert( 2 * Order_half == Order );
-
-    /* Combine two A_Q12 values and ensure 32-bit alignment */
-    for( k = 0; k &lt; Order_half; k++ ) {
-        idx = SKP_SMULBB( 2, k );
-        B_align_Q12[ k ] = ( ( (SKP_int32)B[ idx ] ) &amp; 0x0000ffff ) | SKP_LSHIFT( (SKP_int32)B[ idx + 1 ], 16 );
-    }
-
-
-
-
-
-    /* S[] values are in Q0 */
-    for( k = 0; k &lt; len; k++ ) {
-        SA = S[ 0 ];
-        out32_Q12 = 0;
-        for( j = 0; j &lt; ( Order_half - 1 ); j++ ) {
-            idx = SKP_SMULBB( 2, j ) + 1;
-            /* Multiply-add two prediction coefficients for each loop */
-            Btmp = B_align_Q12[ j ];
-            SB = S[ idx ];
-            S[ idx ] = SA;
-            out32_Q12 = SKP_SMLABB( out32_Q12, SA, Btmp );
-            out32_Q12 = SKP_SMLABT( out32_Q12, SB, Btmp );
-            SA = S[ idx + 1 ];
-            S[ idx + 1 ] = SB;
-        }
-
-        /* Unrolled loop: epilog */
-        Btmp = B_align_Q12[ Order_half - 1 ];
-        SB = S[ Order - 1 ];
-        S[ Order - 1 ] = SA;
-        out32_Q12 = SKP_SMLABB( out32_Q12, SA, Btmp );
-        out32_Q12 = SKP_SMLABT( out32_Q12, SB, Btmp );
-
-        /* Subtract prediction */
-        out32_Q12 = SKP_SUB_SAT32( SKP_LSHIFT( (SKP_int32)in[ k ], 12 ), out32_Q12 );
-
-        /* Scale to Q0 */
-        out32 = SKP_RSHIFT_ROUND( out32_Q12, 12 );
-
-        /* Saturate output */
-        out[ k ] = (SKP_int16)SKP_SAT16( out32 );
-
-        /* Move input line */
-        S[ 0 ] = in[ k ];
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_MA.c                                                      *
+ *                                                                      *
+ * Variable order MA filter                                             *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Variable order MA filter */
+void SKP_Silk_MA(
+    const SKP_int16      *in,            /* I:   input signal                                */
+    const SKP_int16      *B,             /* I:   MA coefficients, Q13 [order+1]              */
+    SKP_int32            *S,             /* I/O: state vector [order]                        */
+    SKP_int16            *out,           /* O:   output signal                               */
+    const SKP_int32      len,            /* I:   signal length                               */
+    const SKP_int32      order           /* I:   filter order                                */
+)
+{
+    SKP_int   k, d, in16;
+    SKP_int32 out32;
+    
+    for( k = 0; k &lt; len; k++ ) {
+        in16 = in[ k ];
+        out32 = SKP_SMLABB( S[ 0 ], in16, B[ 0 ] );
+        out32 = SKP_RSHIFT_ROUND( out32, 13 );
+        
+        for( d = 1; d &lt; order; d++ ) {
+            S[ d - 1 ] = SKP_SMLABB( S[ d ], in16, B[ d ] );
+        }
+        S[ order - 1 ] = SKP_SMULBB( in16, B[ order ] );
+
+        /* Limit */
+        out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+    }
+}
+/* Variable order MA prediction error filter */
+void SKP_Silk_MA_Prediction(
+    const SKP_int16      *in,            /* I:   Input signal                                */
+    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q12 [order]     */
+    SKP_int32            *S,             /* I/O: State vector [order]                        */
+    SKP_int16            *out,           /* O:   Output signal                               */
+    const SKP_int32      len,            /* I:   Signal length                               */
+    const SKP_int32      order           /* I:   Filter order                                */
+)
+{
+    SKP_int   k, d, in16;
+    SKP_int32 out32;
+    SKP_int32 B32;
+
+    if( ( order &amp; 1 ) == 0 &amp;&amp; (SKP_int32)( (SKP_int_ptr_size)B &amp; 3 ) == 0 ) {
+        /* Even order and 4-byte aligned coefficient array */
+
+        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the    */
+        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be      */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping    */
+        /* the SMLABB and SMLABT instructions should solve the problem.                              */
+        for( k = 0; k &lt; len; k++ ) {
+            in16 = in[ k ];
+            out32 = SKP_LSHIFT( in16, 12 ) - S[ 0 ];
+            out32 = SKP_RSHIFT_ROUND( out32, 12 );
+            
+            for( d = 0; d &lt; order - 2; d += 2 ) {
+                B32 = *( (SKP_int32*)&amp;B[ d ] );                /* read two coefficients at once */
+                S[ d ]     = SKP_SMLABB_ovflw( S[ d + 1 ], in16, B32 );
+                S[ d + 1 ] = SKP_SMLABT_ovflw( S[ d + 2 ], in16, B32 );
+            }
+            B32 = *( (SKP_int32*)&amp;B[ d ] );                    /* read two coefficients at once */
+            S[ order - 2 ] = SKP_SMLABB_ovflw( S[ order - 1 ], in16, B32 );
+            S[ order - 1 ] = SKP_SMULBT( in16, B32 );
+
+            /* Limit */
+            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+        }
+    } else {
+        /* Odd order or not 4-byte aligned coefficient array */
+        for( k = 0; k &lt; len; k++ ) {
+            in16 = in[ k ];
+            out32 = SKP_LSHIFT( in16, 12 ) - S[ 0 ];
+            out32 = SKP_RSHIFT_ROUND( out32, 12 );
+            
+            for( d = 0; d &lt; order - 1; d++ ) {
+                S[ d ] = SKP_SMLABB_ovflw( S[ d + 1 ], in16, B[ d ] );
+            }
+            S[ order - 1 ] = SKP_SMULBB( in16, B[ order - 1 ] );
+
+            /* Limit */
+            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+        }
+    }
+}
+
+void SKP_Silk_MA_Prediction_Q13(
+    const SKP_int16      *in,            /* I:   input signal                                */
+    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q13 [order]     */
+    SKP_int32            *S,             /* I/O: state vector [order]                        */
+    SKP_int16            *out,           /* O:   output signal                               */
+    SKP_int32            len,            /* I:   signal length                               */
+    SKP_int32            order           /* I:   filter order                                */
+)
+{
+    SKP_int   k, d, in16;
+    SKP_int32 out32, B32;
+    
+    if( ( order &amp; 1 ) == 0 &amp;&amp; (SKP_int32)( (SKP_int_ptr_size)B &amp; 3 ) == 0 ) {
+        /* Even order and 4-byte aligned coefficient array */
+        
+        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the    */
+        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be      */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping    */
+        /* the SMLABB and SMLABT instructions should solve the problem.                              */
+        for( k = 0; k &lt; len; k++ ) {
+            in16 = in[ k ];
+            out32 = SKP_LSHIFT( in16, 13 ) - S[ 0 ];
+            out32 = SKP_RSHIFT_ROUND( out32, 13 );
+            
+            for( d = 0; d &lt; order - 2; d += 2 ) {
+                B32 = *( (SKP_int32*)&amp;B[ d ] );                /* read two coefficients at once */
+                S[ d ]     = SKP_SMLABB( S[ d + 1 ], in16, B32 );
+                S[ d + 1 ] = SKP_SMLABT( S[ d + 2 ], in16, B32 );
+            }
+            B32 = *( (SKP_int32*)&amp;B[ d ] );                    /* read two coefficients at once */
+            S[ order - 2 ] = SKP_SMLABB( S[ order - 1 ], in16, B32 );
+            S[ order - 1 ] = SKP_SMULBT( in16, B32 );
+
+            /* Limit */
+            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+        }
+    } else {
+        /* Odd order or not 4-byte aligned coefficient array */
+        for( k = 0; k &lt; len; k++ ) {
+            in16 = in[ k ];
+            out32 = SKP_LSHIFT( in16, 13 ) - S[ 0 ];
+            out32 = SKP_RSHIFT_ROUND( out32, 13 );
+            
+            for( d = 0; d &lt; order - 1; d++ ) {
+                S[ d ] = SKP_SMLABB( S[ d + 1 ], in16, B[ d ] );
+            }
+            S[ order - 1 ] = SKP_SMULBB( in16, B[ order - 1 ] );
+
+            /* Limit */
+            out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+        }
+    }
+}
+/* Variable order MA prediction error filter. */
+/* Inverse filter of SKP_Silk_LPC_synthesis_filter */
+void SKP_Silk_LPC_analysis_filter(
+    const SKP_int16      *in,            /* I:   Input signal                                */
+    const SKP_int16      *B,             /* I:   MA prediction coefficients, Q12 [order]     */
+    SKP_int16            *S,             /* I/O: State vector [order]                        */
+    SKP_int16            *out,           /* O:   Output signal                               */
+    const SKP_int32      len,            /* I:   Signal length                               */
+    const SKP_int32      Order           /* I:   Filter order                                */
+)
+{
+    SKP_int   k, j, idx, Order_half = SKP_RSHIFT( Order, 1 );
+    SKP_int32 Btmp, B_align_Q12[ SigProc_MAX_ORDER_LPC &gt;&gt; 1 ], out32_Q12, out32;
+    SKP_int16 SA, SB;
+    /* Order must be even */
+    SKP_assert( 2 * Order_half == Order );
+
+    /* Combine two A_Q12 values and ensure 32-bit alignment */
+    for( k = 0; k &lt; Order_half; k++ ) {
+        idx = SKP_SMULBB( 2, k );
+        B_align_Q12[ k ] = ( ( (SKP_int32)B[ idx ] ) &amp; 0x0000ffff ) | SKP_LSHIFT( (SKP_int32)B[ idx + 1 ], 16 );
+    }
+
+    /* S[] values are in Q0 */
+    for( k = 0; k &lt; len; k++ ) {
+        SA = S[ 0 ];
+        out32_Q12 = 0;
+        for( j = 0; j &lt; ( Order_half - 1 ); j++ ) {
+            idx = SKP_SMULBB( 2, j ) + 1;
+            /* Multiply-add two prediction coefficients for each loop */
+            Btmp = B_align_Q12[ j ];
+            SB = S[ idx ];
+            S[ idx ] = SA;
+            out32_Q12 = SKP_SMLABB( out32_Q12, SA, Btmp );
+            out32_Q12 = SKP_SMLABT( out32_Q12, SB, Btmp );
+            SA = S[ idx + 1 ];
+            S[ idx + 1 ] = SB;
+        }
+
+        /* Unrolled loop: epilog */
+        Btmp = B_align_Q12[ Order_half - 1 ];
+        SB = S[ Order - 1 ];
+        S[ Order - 1 ] = SA;
+        out32_Q12 = SKP_SMLABB( out32_Q12, SA, Btmp );
+        out32_Q12 = SKP_SMLABT( out32_Q12, SB, Btmp );
+
+        /* Subtract prediction */
+        out32_Q12 = SKP_SUB_SAT32( SKP_LSHIFT( (SKP_int32)in[ k ], 12 ), out32_Q12 );
+
+        /* Scale to Q0 */
+        out32 = SKP_RSHIFT_ROUND( out32_Q12, 12 );
+
+        /* Saturate output */
+        out[ k ] = (SKP_int16)SKP_SAT16( out32 );
+
+        /* Move input line */
+        S[ 0 ] = in[ k ];
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF2Ac"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,174 +1,150 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/* conversion between prediction filter coefficients and LSFs   */
-/* order should be even                                         */
-/* a piecewise linear approximation maps LSF &lt;-&gt; cos(LSF)       */
-/* therefore the result is not accurate LSFs, but the two       */
-/* function are accurate inverses of each other                 */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* helper function for NLSF2A(..) */
-SKP_INLINE void SKP_Silk_NLSF2A_find_poly(
-    SKP_int32        *out,        /* o    intermediate polynomial, Q20            */
-    const SKP_int32    *cLSF,     /* i    vector of interleaved 2*cos(LSFs), Q20  */
-    SKP_int            dd         /* i    polynomial order (= 1/2 * filter order) */
-)
-{
-    SKP_int        k, n;
-    SKP_int32    ftmp;
-
-    out[0] = SKP_LSHIFT( 1, 20 );
-
-
-
-
-
-    out[1] = -cLSF[0];
-    for( k = 1; k &lt; dd; k++ ) {
-        ftmp = cLSF[2*k];            // Q20
-        out[k+1] = SKP_LSHIFT( out[k-1], 1 ) - (SKP_int32)SKP_RSHIFT_ROUND64( SKP_SMULL( ftmp, out[k] ), 20 );
-        for( n = k; n &gt; 1; n-- ) {
-            out[n] += out[n-2] - (SKP_int32)SKP_RSHIFT_ROUND64( SKP_SMULL( ftmp, out[n-1] ), 20 );
-        }
-        out[1] -= ftmp;
-    }
-}
-
-/* compute whitening filter coefficients from normalized line spectral frequencies */
-void SKP_Silk_NLSF2A(
-    SKP_int16       *a,               /* o    monic whitening filter coefficients in Q12,  [d]    */
-    const SKP_int    *NLSF,           /* i    normalized line spectral frequencies in Q15, [d]    */
-    const SKP_int    d                /* i    filter order (should be even)                       */
-)
-{
-    SKP_int k, i, dd;
-    SKP_int32 cos_LSF_Q20[SigProc_MAX_ORDER_LPC];
-    SKP_int32 P[SigProc_MAX_ORDER_LPC/2+1], Q[SigProc_MAX_ORDER_LPC/2+1];
-    SKP_int32 Ptmp, Qtmp;
-    SKP_int32 f_int;
-    SKP_int32 f_frac;
-    SKP_int32 cos_val, delta;
-    SKP_int32 a_int32[SigProc_MAX_ORDER_LPC];
-    SKP_int32 maxabs, absval, idx=0, sc_Q16;
-
-    SKP_assert(LSF_COS_TAB_SZ_FIX == 128);
-
-    /* convert LSFs to 2*cos(LSF(i)), using piecewise linear curve from table */
-    for( k = 0; k &lt; d; k++ ) {
-        SKP_assert(NLSF[k] &gt;= 0 );
-        SKP_assert(NLSF[k] &lt;= 32767 );
-
-        /* f_int on a scale 0-127 (rounded down) */
-        f_int = SKP_RSHIFT( NLSF[k], 15 - 7 );
-
-        /* f_frac, range: 0..255 */
-        f_frac = NLSF[k] - SKP_LSHIFT( f_int, 15 - 7 );
-
-        SKP_assert(f_int &gt;= 0);
-        SKP_assert(f_int &lt; LSF_COS_TAB_SZ_FIX );
-
-        /* Read start and end value from table */
-        cos_val = SKP_Silk_LSFCosTab_FIX_Q12[ f_int ];                /* Q12 */
-        delta   = SKP_Silk_LSFCosTab_FIX_Q12[ f_int + 1 ] - cos_val;  /* Q12, with a range of 0..200 */
-
-
-
-
-
-
-        /* Linear interpolation */
-        cos_LSF_Q20[k] = SKP_LSHIFT( cos_val, 8 ) + SKP_MUL( delta, f_frac ); /* Q20 */
-    }
-
-    dd = SKP_RSHIFT( d, 1 );
-
-    /* generate even and odd polynomials using convolution */
-    SKP_Silk_NLSF2A_find_poly( P, &amp;cos_LSF_Q20[0], dd );
-    SKP_Silk_NLSF2A_find_poly( Q, &amp;cos_LSF_Q20[1], dd );
-
-    /* convert even and odd polynomials to SKP_int32 Q12 filter coefs */
-    for( k = 0; k &lt; dd; k++ ) {
-        Ptmp = P[k+1] + P[k];
-        Qtmp = Q[k+1] - Q[k];
-
-        /* the Ptmp and Qtmp values at this stage need to fit in int32 */
-
-        a_int32[k]     = -SKP_RSHIFT_ROUND( Ptmp + Qtmp, 9 ); /* Q20 -&gt; Q12 */
-        a_int32[d-k-1] =  SKP_RSHIFT_ROUND( Qtmp - Ptmp, 9 ); /* Q20 -&gt; Q12 */
-    }
-
-    /* Limit the maximum absolute value of the prediction coefficients */
-    for( i = 0; i &lt; 10; i++ ) {
-        /* Find maximum absolute value and its index */
-        maxabs = 0;
-        for( k = 0; k &lt; d; k++ ) {
-            absval = SKP_abs( a_int32[k] );
-            if( absval &gt; maxabs ) {
-                maxabs = absval;
-                idx       = k;
-            }
-        }
-
-        if( maxabs &gt; SKP_int16_MAX ) {
-            /* Reduce magnitude of prediction coefficients */
-            sc_Q16 = 65470 - SKP_DIV32( SKP_MUL( 65470 &gt;&gt; 2, maxabs - SKP_int16_MAX ),
-                                        SKP_RSHIFT32( SKP_MUL( maxabs, idx + 1), 2 ) );
-            SKP_Silk_bwexpander_32( a_int32, d, sc_Q16 );
-        } else {
-            break;
-        }
-    }
-
-    /* Reached the last iteration */
-    if( i == 10 ) {
-        SKP_assert(0);
-        for( k = 0; k &lt; d; k++ ) {
-            a_int32[k] = SKP_SAT16( a_int32[k] );
-
-
-
-
-
-        }
-    }
-
-    /* Return as SKP_int16 Q12 coefficients */
-    for( k = 0; k &lt; d; k++ ) {
-        a[k] = (SKP_int16)a_int32[k];
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/* conversion between prediction filter coefficients and LSFs   */
+/* order should be even                                         */
+/* a piecewise linear approximation maps LSF &lt;-&gt; cos(LSF)       */
+/* therefore the result is not accurate LSFs, but the two       */
+/* function are accurate inverses of each other                 */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* helper function for NLSF2A(..) */
+SKP_INLINE void SKP_Silk_NLSF2A_find_poly(
+    SKP_int32        *out,        /* o    intermediate polynomial, Q20            */
+    const SKP_int32    *cLSF,     /* i    vector of interleaved 2*cos(LSFs), Q20  */
+    SKP_int            dd         /* i    polynomial order (= 1/2 * filter order) */
+)
+{
+    SKP_int        k, n;
+    SKP_int32    ftmp;
+
+    out[0] = SKP_LSHIFT( 1, 20 );
+    out[1] = -cLSF[0];
+    for( k = 1; k &lt; dd; k++ ) {
+        ftmp = cLSF[2*k];            // Q20
+        out[k+1] = SKP_LSHIFT( out[k-1], 1 ) - (SKP_int32)SKP_RSHIFT_ROUND64( SKP_SMULL( ftmp, out[k] ), 20 );
+        for( n = k; n &gt; 1; n-- ) {
+            out[n] += out[n-2] - (SKP_int32)SKP_RSHIFT_ROUND64( SKP_SMULL( ftmp, out[n-1] ), 20 );
+        }
+        out[1] -= ftmp;
+    }
+}
+
+/* compute whitening filter coefficients from normalized line spectral frequencies */
+void SKP_Silk_NLSF2A(
+    SKP_int16       *a,               /* o    monic whitening filter coefficients in Q12,  [d]    */
+    const SKP_int    *NLSF,           /* i    normalized line spectral frequencies in Q15, [d]    */
+    const SKP_int    d                /* i    filter order (should be even)                       */
+)
+{
+    SKP_int k, i, dd;
+    SKP_int32 cos_LSF_Q20[SigProc_MAX_ORDER_LPC];
+    SKP_int32 P[SigProc_MAX_ORDER_LPC/2+1], Q[SigProc_MAX_ORDER_LPC/2+1];
+    SKP_int32 Ptmp, Qtmp;
+    SKP_int32 f_int;
+    SKP_int32 f_frac;
+    SKP_int32 cos_val, delta;
+    SKP_int32 a_int32[SigProc_MAX_ORDER_LPC];
+    SKP_int32 maxabs, absval, idx=0, sc_Q16; 
+
+    SKP_assert(LSF_COS_TAB_SZ_FIX == 128);
+
+    /* convert LSFs to 2*cos(LSF(i)), using piecewise linear curve from table */
+    for( k = 0; k &lt; d; k++ ) {
+        SKP_assert(NLSF[k] &gt;= 0 );
+        SKP_assert(NLSF[k] &lt;= 32767 );
+
+        /* f_int on a scale 0-127 (rounded down) */
+        f_int = SKP_RSHIFT( NLSF[k], 15 - 7 ); 
+        
+        /* f_frac, range: 0..255 */
+        f_frac = NLSF[k] - SKP_LSHIFT( f_int, 15 - 7 ); 
+
+        SKP_assert(f_int &gt;= 0);
+        SKP_assert(f_int &lt; LSF_COS_TAB_SZ_FIX );
+
+        /* Read start and end value from table */
+        cos_val = SKP_Silk_LSFCosTab_FIX_Q12[ f_int ];                /* Q12 */
+        delta   = SKP_Silk_LSFCosTab_FIX_Q12[ f_int + 1 ] - cos_val;  /* Q12, with a range of 0..200 */
+
+        /* Linear interpolation */
+        cos_LSF_Q20[k] = SKP_LSHIFT( cos_val, 8 ) + SKP_MUL( delta, f_frac ); /* Q20 */
+    }
+    
+    dd = SKP_RSHIFT( d, 1 );
+
+    /* generate even and odd polynomials using convolution */
+    SKP_Silk_NLSF2A_find_poly( P, &amp;cos_LSF_Q20[0], dd );
+    SKP_Silk_NLSF2A_find_poly( Q, &amp;cos_LSF_Q20[1], dd );
+
+    /* convert even and odd polynomials to SKP_int32 Q12 filter coefs */
+    for( k = 0; k &lt; dd; k++ ) {
+        Ptmp = P[k+1] + P[k];
+        Qtmp = Q[k+1] - Q[k];
+
+        /* the Ptmp and Qtmp values at this stage need to fit in int32 */
+
+        a_int32[k]     = -SKP_RSHIFT_ROUND( Ptmp + Qtmp, 9 ); /* Q20 -&gt; Q12 */
+        a_int32[d-k-1] =  SKP_RSHIFT_ROUND( Qtmp - Ptmp, 9 ); /* Q20 -&gt; Q12 */
+    }
+
+    /* Limit the maximum absolute value of the prediction coefficients */
+    for( i = 0; i &lt; 10; i++ ) {
+        /* Find maximum absolute value and its index */
+        maxabs = 0;
+        for( k = 0; k &lt; d; k++ ) {
+            absval = SKP_abs( a_int32[k] );
+            if( absval &gt; maxabs ) {
+                maxabs = absval;
+                idx       = k;
+            }    
+        }
+    
+        if( maxabs &gt; SKP_int16_MAX ) {    
+            /* Reduce magnitude of prediction coefficients */
+            sc_Q16 = 65470 - SKP_DIV32( SKP_MUL( 65470 &gt;&gt; 2, maxabs - SKP_int16_MAX ), 
+                                        SKP_RSHIFT32( SKP_MUL( maxabs, idx + 1), 2 ) );
+            SKP_Silk_bwexpander_32( a_int32, d, sc_Q16 );
+        } else {
+            break;
+        }
+    }    
+
+    /* Reached the last iteration */
+    if( i == 10 ) {
+        SKP_assert(0);
+        for( k = 0; k &lt; d; k++ ) {
+            a_int32[k] = SKP_SAT16( a_int32[k] ); 
+        }
+    }
+
+    /* Return as SKP_int16 Q12 coefficients */
+    for( k = 0; k &lt; d; k++ ) {
+        a[k] = (SKP_int16)a_int32[k];
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF2A_stablec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A_stable.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A_stable.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF2A_stable.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,68 +1,57 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Convert NLSF parameters to stable AR prediction filter coefficients */
-void SKP_Silk_NLSF2A_stable(
-    SKP_int16                       pAR_Q12[ MAX_LPC_ORDER ],   /* O    Stabilized AR coefs [LPC_order]     */
-    const SKP_int                   pNLSF[ MAX_LPC_ORDER ],     /* I    NLSF vector         [LPC_order]     */
-
-
-
-
-
-    const SKP_int                   LPC_order                   /* I    LPC/LSF order                       */
-)
-{
-    SKP_int   i;
-    SKP_int32 invGain_Q30;
-
-    SKP_Silk_NLSF2A( pAR_Q12, pNLSF, LPC_order );
-
-    /* Ensure stable LPCs */
-    for( i = 0; i &lt; MAX_LPC_STABILIZE_ITERATIONS; i++ ) {
-        if( SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, pAR_Q12, LPC_order ) == 1 ) {
-            SKP_Silk_bwexpander( pAR_Q12, LPC_order, 65536 - SKP_SMULBB( 66, i ) ); /* 66_Q16 = 0.001 */
-        } else {
-            break;
-        }
-    }
-
-    /* Reached the last iteration */
-    if( i == MAX_LPC_STABILIZE_ITERATIONS ) {
-        for( i = 0; i &lt; LPC_order; i++ ) {
-            pAR_Q12[ i ] = 0;
-        }
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Convert NLSF parameters to stable AR prediction filter coefficients */
+void SKP_Silk_NLSF2A_stable(
+    SKP_int16                       pAR_Q12[ MAX_LPC_ORDER ],   /* O    Stabilized AR coefs [LPC_order]     */ 
+    const SKP_int                   pNLSF[ MAX_LPC_ORDER ],     /* I    NLSF vector         [LPC_order]     */
+    const SKP_int                   LPC_order                   /* I    LPC/LSF order                       */
+)
+{
+    SKP_int   i;
+    SKP_int32 invGain_Q30;
+
+    SKP_Silk_NLSF2A( pAR_Q12, pNLSF, LPC_order );
+
+    /* Ensure stable LPCs */
+    for( i = 0; i &lt; MAX_LPC_STABILIZE_ITERATIONS; i++ ) {
+        if( SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, pAR_Q12, LPC_order ) == 1 ) {
+            SKP_Silk_bwexpander( pAR_Q12, LPC_order, 65536 - SKP_SMULBB( 66, i ) ); /* 66_Q16 = 0.001 */
+        } else {
+            break;
+        }
+    }
+
+    /* Reached the last iteration */
+    if( i == MAX_LPC_STABILIZE_ITERATIONS ) {
+        for( i = 0; i &lt; LPC_order; i++ ) {
+            pAR_Q12[ i ] = 0;
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_MSVQ_decodec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,107 +1,91 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-
-
-
-
-
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* NLSF vector decoder */
-void SKP_Silk_NLSF_MSVQ_decode(
-    SKP_int                         *pNLSF_Q15,     /* O    Pointer to decoded output vector [LPC_ORDER x 1]    */
-    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,     /* I    Pointer to NLSF codebook struct                     */
-    const SKP_int                   *NLSFIndices,   /* I    Pointer to NLSF indices          [nStages x 1]      */
-    const SKP_int                   LPC_order       /* I    LPC order used                                      */
-)
-{
-    const SKP_int16 *pCB_element;
-          SKP_int    s;
-          SKP_int    i;
-
-    /* Check that each index is within valid range */
-    SKP_assert( 0 &lt;= NLSFIndices[ 0 ] &amp;&amp; NLSFIndices[ 0 ] &lt; psNLSF_CB-&gt;CBStages[ 0 ].nVectors );
-
-    /* Point to the first vector element */
-    pCB_element = &amp;psNLSF_CB-&gt;CBStages[ 0 ].CB_NLSF_Q15[ SKP_MUL( NLSFIndices[ 0 ], LPC_order ) ];
-
-    /* Initialize with the codebook vector from stage 0 */
-    for( i = 0; i &lt; LPC_order; i++ ) {
-        pNLSF_Q15[ i ] = (SKP_int)pCB_element[ i ];
-    }
-
-    for( s = 1; s &lt; psNLSF_CB-&gt;nStages; s++ ) {
-        /* Check that each index is within valid range */
-        SKP_assert( 0 &lt;= NLSFIndices[ s ] &amp;&amp; NLSFIndices[ s ] &lt; psNLSF_CB-&gt;CBStages[ s ].nVectors );
-
-        if( LPC_order == 16 ) {
-            /* Point to the first vector element */
-            pCB_element = &amp;psNLSF_CB-&gt;CBStages[ s ].CB_NLSF_Q15[ SKP_LSHIFT( NLSFIndices[ s ], 4 ) ];
-
-            /* Add the codebook vector from the current stage */
-            pNLSF_Q15[  0 ] += pCB_element[  0 ];
-            pNLSF_Q15[  1 ] += pCB_element[  1 ];
-            pNLSF_Q15[  2 ] += pCB_element[  2 ];
-            pNLSF_Q15[  3 ] += pCB_element[  3 ];
-
-
-
-
-
-            pNLSF_Q15[  4 ] += pCB_element[  4 ];
-            pNLSF_Q15[  5 ] += pCB_element[  5 ];
-            pNLSF_Q15[  6 ] += pCB_element[  6 ];
-            pNLSF_Q15[  7 ] += pCB_element[  7 ];
-            pNLSF_Q15[  8 ] += pCB_element[  8 ];
-            pNLSF_Q15[  9 ] += pCB_element[  9 ];
-            pNLSF_Q15[ 10 ] += pCB_element[ 10 ];
-            pNLSF_Q15[ 11 ] += pCB_element[ 11 ];
-            pNLSF_Q15[ 12 ] += pCB_element[ 12 ];
-            pNLSF_Q15[ 13 ] += pCB_element[ 13 ];
-            pNLSF_Q15[ 14 ] += pCB_element[ 14 ];
-            pNLSF_Q15[ 15 ] += pCB_element[ 15 ];
-        } else {
-            /* Point to the first vector element */
-            pCB_element = &amp;psNLSF_CB-&gt;CBStages[ s ].CB_NLSF_Q15[ SKP_SMULBB( NLSFIndices[ s ], LPC_order ) ];
-
-            /* Add the codebook vector from the current stage */
-            for( i = 0; i &lt; LPC_order; i++ ) {
-                pNLSF_Q15[ i ] += pCB_element[ i ];
-            }
-        }
-    }
-
-    /* NLSF stabilization */
-    SKP_Silk_NLSF_stabilize( pNLSF_Q15, psNLSF_CB-&gt;NDeltaMin_Q15, LPC_order );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* NLSF vector decoder */
+void SKP_Silk_NLSF_MSVQ_decode(
+    SKP_int                         *pNLSF_Q15,     /* O    Pointer to decoded output vector [LPC_ORDER x 1]    */
+    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,     /* I    Pointer to NLSF codebook struct                     */
+    const SKP_int                   *NLSFIndices,   /* I    Pointer to NLSF indices          [nStages x 1]      */
+    const SKP_int                   LPC_order       /* I    LPC order used                                      */
+) 
+{
+    const SKP_int16 *pCB_element;
+          SKP_int    s;
+          SKP_int    i;
+
+    /* Check that each index is within valid range */
+    SKP_assert( 0 &lt;= NLSFIndices[ 0 ] &amp;&amp; NLSFIndices[ 0 ] &lt; psNLSF_CB-&gt;CBStages[ 0 ].nVectors );
+
+    /* Point to the first vector element */
+    pCB_element = &amp;psNLSF_CB-&gt;CBStages[ 0 ].CB_NLSF_Q15[ SKP_MUL( NLSFIndices[ 0 ], LPC_order ) ];
+
+    /* Initialize with the codebook vector from stage 0 */
+    for( i = 0; i &lt; LPC_order; i++ ) {
+        pNLSF_Q15[ i ] = ( SKP_int )pCB_element[ i ];
+    }
+          
+    for( s = 1; s &lt; psNLSF_CB-&gt;nStages; s++ ) {
+        /* Check that each index is within valid range */
+        SKP_assert( 0 &lt;= NLSFIndices[ s ] &amp;&amp; NLSFIndices[ s ] &lt; psNLSF_CB-&gt;CBStages[ s ].nVectors );
+
+        if( LPC_order == 16 ) {
+            /* Point to the first vector element */
+            pCB_element = &amp;psNLSF_CB-&gt;CBStages[ s ].CB_NLSF_Q15[ SKP_LSHIFT( NLSFIndices[ s ], 4 ) ];
+
+            /* Add the codebook vector from the current stage */
+            pNLSF_Q15[  0 ] += pCB_element[  0 ];
+            pNLSF_Q15[  1 ] += pCB_element[  1 ];
+            pNLSF_Q15[  2 ] += pCB_element[  2 ];
+            pNLSF_Q15[  3 ] += pCB_element[  3 ];
+            pNLSF_Q15[  4 ] += pCB_element[  4 ];
+            pNLSF_Q15[  5 ] += pCB_element[  5 ];
+            pNLSF_Q15[  6 ] += pCB_element[  6 ];
+            pNLSF_Q15[  7 ] += pCB_element[  7 ];
+            pNLSF_Q15[  8 ] += pCB_element[  8 ];
+            pNLSF_Q15[  9 ] += pCB_element[  9 ];
+            pNLSF_Q15[ 10 ] += pCB_element[ 10 ];
+            pNLSF_Q15[ 11 ] += pCB_element[ 11 ];
+            pNLSF_Q15[ 12 ] += pCB_element[ 12 ];
+            pNLSF_Q15[ 13 ] += pCB_element[ 13 ];
+            pNLSF_Q15[ 14 ] += pCB_element[ 14 ];
+            pNLSF_Q15[ 15 ] += pCB_element[ 15 ];
+        } else {
+            /* Point to the first vector element */
+            pCB_element = &amp;psNLSF_CB-&gt;CBStages[ s ].CB_NLSF_Q15[ SKP_SMULBB( NLSFIndices[ s ], LPC_order ) ];
+
+            /* Add the codebook vector from the current stage */
+            for( i = 0; i &lt; LPC_order; i++ ) {
+                pNLSF_Q15[ i ] += pCB_element[ i ];
+            }
+        }
+    }
+
+    /* NLSF stabilization */
+    SKP_Silk_NLSF_stabilize( pNLSF_Q15, psNLSF_CB-&gt;NDeltaMin_Q15, LPC_order );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_MSVQ_encode_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,252 +1,231 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-
-
-
-
-
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/***********************/
-/* NLSF vector encoder */
-/***********************/
-void SKP_Silk_NLSF_MSVQ_encode_FIX(
-    SKP_int                             *NLSFIndices,           /* O    Pointer to codebook path vector             [CB_STAGES x1] */
-    SKP_int                             *pNLSF_Q15,             /* I/O  Pointer to quantized NLSF vector            [LPC_order x1] */
-    const SKP_Silk_NLSF_CB_struct       *psNLSF_CB,             /* I    Pointer to codebook object                                 */
-    const SKP_int                       *pNLSF_q_Q15_prev,      /* I    Pointer to previously quantized NLSF vector [LPC_order x1] */
-    const SKP_int                       *pW_Q6,                 /* I    Pointer to NLSF weight vector               [LPC_order x1] */
-    const SKP_int                       NLSF_mu_Q15,            /* I    Rate weight for the RD optimization                        */
-    const SKP_int                       NLSF_mu_fluc_red_Q16,   /* I    Fluctuation error weight for fluctuation reduction         */
-    const SKP_int                       NLSF_MSVQ_Max_Survivors,/* I    Maximum number of survivors from each stage                */
-    const SKP_int                       LPC_order,              /* I    LPC order                                                  */
-    const SKP_int                       deactivate_fluc_red     /* I    Deactivate fluctuation reduction, e.g. right after a reset */
-)
-{
-    SKP_int     i, s, k, cur_survivors = 0, prev_survivors, input_index, cb_index, bestIndex;
-    SKP_int32   rateDistThreshold_Q18;
-    SKP_int     pNLSF_in_Q15[ MAX_LPC_ORDER ];
-#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 1 )
-    SKP_int32   se_Q15, wsse_Q20, bestRateDist_Q20;
-#endif
-
-#if( LOW_COMPLEXITY_ONLY == 1 )
-    SKP_int     pTempIndices[   NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE ];
-    SKP_int32   pRateDist_Q18[  NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE ];
-    SKP_int32   pRate_Q5[       MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
-    SKP_int32   pRate_new_Q5[   MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
-    SKP_int     pPath[          MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int     pPath_new[      MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int     pRes_Q15[       MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
-    SKP_int     pRes_new_Q15[   MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
-#else
-    SKP_int     pTempIndices[   NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED ];
-
-
-
-
-
-    SKP_int32   pRateDist_Q18[  NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED ];
-    SKP_int32   pRate_Q5[       MAX_NLSF_MSVQ_SURVIVORS ];
-    SKP_int32   pRate_new_Q5[   MAX_NLSF_MSVQ_SURVIVORS ];
-    SKP_int     pPath[          MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int     pPath_new[      MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int     pRes_Q15[       MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
-    SKP_int     pRes_new_Q15[   MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
-#endif
-
-    const SKP_int   *pConstInt;
-          SKP_int   *pInt;
-    const SKP_int16 *pCB_element;
-    const SKP_Silk_NLSF_CB_Stage_struct *pCurrentCBStage;
-
-    SKP_assert( NLSF_MSVQ_Max_Survivors &lt;= MAX_NLSF_MSVQ_SURVIVORS );
-    SKP_assert( ( LOW_COMPLEXITY_ONLY == 0 ) || ( NLSF_MSVQ_Max_Survivors &lt;= MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ) );
-
-
-
-    /* Copy the input vector */
-    SKP_memcpy( pNLSF_in_Q15, pNLSF_Q15, LPC_order * sizeof( SKP_int ) );
-
-    /****************************************************/
-    /* Tree search for the multi-stage vector quantizer */
-    /****************************************************/
-
-    /* Clear accumulated rates */
-    SKP_memset( pRate_Q5, 0, NLSF_MSVQ_Max_Survivors * sizeof( SKP_int32 ) );
-
-    /* Copy LSFs into residual signal vector */
-    for( i = 0; i &lt; LPC_order; i++ ) {
-        pRes_Q15[ i ] = pNLSF_Q15[ i ];
-    }
-
-    /* Set first stage values */
-    prev_survivors = 1;
-
-    /* Loop over all stages */
-    for( s = 0; s &lt; psNLSF_CB-&gt;nStages; s++ ) {
-
-        /* Set a pointer to the current stage codebook */
-        pCurrentCBStage = &amp;psNLSF_CB-&gt;CBStages[ s ];
-
-        /* Calculate the number of survivors in the current stage */
-        cur_survivors = SKP_min_32( NLSF_MSVQ_Max_Survivors, SKP_SMULBB( prev_survivors, pCurrentCBStage-&gt;nVectors ) );
-
-        /* Nearest neighbor clustering for multiple input data vectors */
-        SKP_Silk_NLSF_VQ_nearest_neighbor_FIX( pRateDist_Q18, pCurrentCBStage, pRes_Q15, pW_Q6,
-
-
-
-
-
-            pRate_Q5, NLSF_mu_Q15, prev_survivors, LPC_order );
-
-        /* Sort the rate-distortion errors */
-        SKP_Silk_insertion_sort_increasing( pRateDist_Q18, pTempIndices,
-            prev_survivors * pCurrentCBStage-&gt;nVectors, cur_survivors );
-
-        /* Discard survivors with rate-distortion values too far above the best one */
-        if( pRateDist_Q18[ 0 ] &lt; SKP_int32_MAX / NLSF_MSVQ_SURV_MAX_REL_RD ) {
-            rateDistThreshold_Q18 = SKP_MUL( NLSF_MSVQ_SURV_MAX_REL_RD, pRateDist_Q18[ 0 ] );
-            while( pRateDist_Q18[ cur_survivors - 1 ] &gt; rateDistThreshold_Q18 &amp;&amp; cur_survivors &gt; 1 ) {
-                cur_survivors--;
-            }
-        }
-        /* Update accumulated codebook contributions for the 'cur_survivors' best codebook indices */
-        for( k = 0; k &lt; cur_survivors; k++ ) {
-            if( s &gt; 0 ) {
-                /* Find the indices of the input and the codebook vector */
-                if( pCurrentCBStage-&gt;nVectors == 8 ) {
-                    input_index = SKP_RSHIFT( pTempIndices[ k ], 3 );
-                    cb_index    = pTempIndices[ k ] &amp; 7;
-                } else {
-                    input_index = SKP_DIV32_16( pTempIndices[ k ], pCurrentCBStage-&gt;nVectors );
-                    cb_index    = pTempIndices[ k ] - SKP_SMULBB( input_index, pCurrentCBStage-&gt;nVectors );
-                }
-            } else {
-                /* Find the indices of the input and the codebook vector */
-                input_index = 0;
-                cb_index    = pTempIndices[ k ];
-            }
-
-            /* Subtract new contribution from the previous residual vector for each of 'cur_survivors' */
-            pConstInt   = &amp;pRes_Q15[ SKP_SMULBB( input_index, LPC_order ) ];
-            pCB_element = &amp;pCurrentCBStage-&gt;CB_NLSF_Q15[ SKP_SMULBB( cb_index, LPC_order ) ];
-            pInt        = &amp;pRes_new_Q15[ SKP_SMULBB( k, LPC_order ) ];
-            for( i = 0; i &lt; LPC_order; i++ ) {
-                pInt[ i ] = pConstInt[ i ] - (SKP_int)pCB_element[ i ];
-            }
-
-            /* Update accumulated rate for stage 1 to the current */
-            pRate_new_Q5[ k ] = pRate_Q5[ input_index ] + pCurrentCBStage-&gt;Rates_Q5[ cb_index ];
-
-            /* Copy paths from previous matrix, starting with the best path */
-            pConstInt = &amp;pPath[ SKP_SMULBB( input_index, psNLSF_CB-&gt;nStages ) ];
-            pInt      = &amp;pPath_new[ SKP_SMULBB( k, psNLSF_CB-&gt;nStages ) ];
-            for( i = 0; i &lt; s; i++ ) {
-                pInt[ i ] = pConstInt[ i ];
-            }
-            /* Write the current stage indices for the 'cur_survivors' to the best path matrix */
-
-
-
-
-
-            pInt[ s ] = cb_index;
-        }
-
-        if( s &lt; psNLSF_CB-&gt;nStages - 1 ) {
-            /* Copy LSF residual matrix for next stage */
-            SKP_memcpy( pRes_Q15, pRes_new_Q15, SKP_SMULBB( cur_survivors, LPC_order ) * sizeof( SKP_int ) );
-
-            /* Copy rate vector for next stage */
-            SKP_memcpy( pRate_Q5, pRate_new_Q5, cur_survivors * sizeof( SKP_int32 ) );
-
-            /* Copy best path matrix for next stage */
-            SKP_memcpy( pPath, pPath_new, SKP_SMULBB( cur_survivors, psNLSF_CB-&gt;nStages ) * sizeof( SKP_int ) );
-        }
-
-        prev_survivors = cur_survivors;
-    }
-
-    /* (Preliminary) index of the best survivor, later to be decoded */
-    bestIndex = 0;
-#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 1 )
-    /******************************/
-    /* NLSF fluctuation reduction */
-    /******************************/
-    if( deactivate_fluc_red != 1 ) {
-
-        /* Search among all survivors, now taking also weighted fluctuation errors into account */
-        bestRateDist_Q20 = SKP_int32_MAX;
-        for( s = 0; s &lt; cur_survivors; s++ ) {
-            /* Decode survivor to compare with previous quantized NLSF vector */
-            SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, &amp;pPath_new[ SKP_SMULBB( s, psNLSF_CB-&gt;nStages ) ], LPC_order );
-
-            /* Compare decoded NLSF vector with the previously quantized vector */
-            wsse_Q20 = 0;
-            for( i = 0; i &lt; LPC_order; i += 2 ) {
-                /* Compute weighted squared quantization error for index i */
-                se_Q15 = pNLSF_Q15[ i ] - pNLSF_q_Q15_prev[ i ]; // range: [ -32767 : 32767 ]
-                wsse_Q20 = SKP_SMLAWB( wsse_Q20, SKP_SMULBB( se_Q15, se_Q15 ), pW_Q6[ i ] );
-
-                /* Compute weighted squared quantization error for index i + 1 */
-                se_Q15 = pNLSF_Q15[ i + 1 ] - pNLSF_q_Q15_prev[ i + 1 ]; // range: [ -32767 : 32767 ]
-                wsse_Q20 = SKP_SMLAWB( wsse_Q20, SKP_SMULBB( se_Q15, se_Q15 ), pW_Q6[ i + 1 ] );
-            }
-            SKP_assert( wsse_Q20 &gt;= 0 );
-
-            /* Add the fluctuation reduction penalty to the rate distortion error */
-            wsse_Q20 = SKP_ADD_POS_SAT32( pRateDist_Q18[ s ], SKP_SMULWB( wsse_Q20, NLSF_mu_fluc_red_Q16 ) );
-
-            /* Keep index of best survivor */
-
-
-
-
-
-            if( wsse_Q20 &lt; bestRateDist_Q20 ) {
-                bestRateDist_Q20 = wsse_Q20;
-                bestIndex = s;
-            }
-        }
-    }
-#endif
-    /* Copy best path to output argument */
-    SKP_memcpy( NLSFIndices, &amp;pPath_new[ SKP_SMULBB( bestIndex, psNLSF_CB-&gt;nStages ) ], psNLSF_CB-&gt;nStages * sizeof( SKP_int ) );
-
-    /* Decode and stabilize the best survivor */
-    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, NLSFIndices, LPC_order );
-
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/***********************/
+/* NLSF vector encoder */
+/***********************/
+void SKP_Silk_NLSF_MSVQ_encode_FIX(
+          SKP_int                   *NLSFIndices,           /* O    Codebook path vector [ CB_STAGES ]      */
+          SKP_int                   *pNLSF_Q15,             /* I/O  Quantized NLSF vector [ LPC_ORDER ]     */
+    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,             /* I    Codebook object                         */
+    const SKP_int                   *pNLSF_q_Q15_prev,      /* I    Prev. quantized NLSF vector [LPC_ORDER] */
+    const SKP_int                   *pW_Q6,                 /* I    NLSF weight vector [ LPC_ORDER ]        */
+    const SKP_int                   NLSF_mu_Q15,            /* I    Rate weight for the RD optimization     */
+    const SKP_int                   NLSF_mu_fluc_red_Q16,   /* I    Fluctuation reduction error weight      */
+    const SKP_int                   NLSF_MSVQ_Survivors,    /* I    Max survivors from each stage           */
+    const SKP_int                   LPC_order,              /* I    LPC order                               */
+    const SKP_int                   deactivate_fluc_red     /* I    Deactivate fluctuation reduction        */
+)
+{
+    SKP_int     i, s, k, cur_survivors = 0, prev_survivors, input_index, cb_index, bestIndex;
+    SKP_int32   rateDistThreshold_Q18;
+    SKP_int     pNLSF_in_Q15[ MAX_LPC_ORDER ];
+#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 1 )
+    SKP_int32   se_Q15, wsse_Q20, bestRateDist_Q20;
+#endif
+
+#if( LOW_COMPLEXITY_ONLY == 1 )
+    SKP_int32   pRateDist_Q18[  NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE ];
+    SKP_int32   pRate_Q5[       MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
+    SKP_int32   pRate_new_Q5[   MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
+    SKP_int     pTempIndices[   MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ];
+    SKP_int     pPath[          MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int     pPath_new[      MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int     pRes_Q15[       MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
+    SKP_int     pRes_new_Q15[   MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * MAX_LPC_ORDER ];
+#else
+    SKP_int32   pRateDist_Q18[  NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED ];
+    SKP_int32   pRate_Q5[       MAX_NLSF_MSVQ_SURVIVORS ];
+    SKP_int32   pRate_new_Q5[   MAX_NLSF_MSVQ_SURVIVORS ];
+    SKP_int     pTempIndices[   MAX_NLSF_MSVQ_SURVIVORS ];
+    SKP_int     pPath[          MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int     pPath_new[      MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int     pRes_Q15[       MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
+    SKP_int     pRes_new_Q15[   MAX_NLSF_MSVQ_SURVIVORS * MAX_LPC_ORDER ];
+#endif
+
+    const SKP_int   *pConstInt;
+          SKP_int   *pInt;
+    const SKP_int16 *pCB_element;
+    const SKP_Silk_NLSF_CBS *pCurrentCBStage;
+
+    SKP_assert( NLSF_MSVQ_Survivors &lt;= MAX_NLSF_MSVQ_SURVIVORS );
+    SKP_assert( ( LOW_COMPLEXITY_ONLY == 0 ) || ( NLSF_MSVQ_Survivors &lt;= MAX_NLSF_MSVQ_SURVIVORS_LC_MODE ) );
+
+
+
+    /* Copy the input vector */
+    SKP_memcpy( pNLSF_in_Q15, pNLSF_Q15, LPC_order * sizeof( SKP_int ) );
+
+    /****************************************************/
+    /* Tree search for the multi-stage vector quantizer */
+    /****************************************************/
+
+    /* Clear accumulated rates */
+    SKP_memset( pRate_Q5, 0, NLSF_MSVQ_Survivors * sizeof( SKP_int32 ) );
+    
+    /* Copy NLSFs into residual signal vector */
+    for( i = 0; i &lt; LPC_order; i++ ) {
+        pRes_Q15[ i ] = pNLSF_Q15[ i ];
+    }
+
+    /* Set first stage values */
+    prev_survivors = 1;
+
+    /* Loop over all stages */
+    for( s = 0; s &lt; psNLSF_CB-&gt;nStages; s++ ) {
+
+        /* Set a pointer to the current stage codebook */
+        pCurrentCBStage = &amp;psNLSF_CB-&gt;CBStages[ s ];
+
+        /* Calculate the number of survivors in the current stage */
+        cur_survivors = SKP_min_32( NLSF_MSVQ_Survivors, SKP_SMULBB( prev_survivors, pCurrentCBStage-&gt;nVectors ) );
+
+#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 0 )
+        /* Find a single best survivor in the last stage, if we */
+        /* do not need candidates for fluctuation reduction     */
+        if( s == psNLSF_CB-&gt;nStages - 1 ) {
+            cur_survivors = 1;
+        }
+#endif
+
+        /* Nearest neighbor clustering for multiple input data vectors */
+        SKP_Silk_NLSF_VQ_rate_distortion_FIX( pRateDist_Q18, pCurrentCBStage, pRes_Q15, pW_Q6, 
+            pRate_Q5, NLSF_mu_Q15, prev_survivors, LPC_order );
+
+        /* Sort the rate-distortion errors */
+        SKP_Silk_insertion_sort_increasing( pRateDist_Q18, pTempIndices, 
+            prev_survivors * pCurrentCBStage-&gt;nVectors, cur_survivors );
+
+        /* Discard survivors with rate-distortion values too far above the best one */
+        if( pRateDist_Q18[ 0 ] &lt; SKP_int32_MAX / NLSF_MSVQ_SURV_MAX_REL_RD ) {
+            rateDistThreshold_Q18 = SKP_MUL( NLSF_MSVQ_SURV_MAX_REL_RD, pRateDist_Q18[ 0 ] );
+            while( pRateDist_Q18[ cur_survivors - 1 ] &gt; rateDistThreshold_Q18 &amp;&amp; cur_survivors &gt; 1 ) {
+                cur_survivors--;
+            }
+        }
+        /* Update accumulated codebook contributions for the 'cur_survivors' best codebook indices */
+        for( k = 0; k &lt; cur_survivors; k++ ) { 
+            if( s &gt; 0 ) {
+                /* Find the indices of the input and the codebook vector */
+                if( pCurrentCBStage-&gt;nVectors == 8 ) {
+                    input_index = SKP_RSHIFT( pTempIndices[ k ], 3 );
+                    cb_index    = pTempIndices[ k ] &amp; 7;
+                } else {
+                    input_index = SKP_DIV32_16( pTempIndices[ k ], pCurrentCBStage-&gt;nVectors );  
+                    cb_index    = pTempIndices[ k ] - SKP_SMULBB( input_index, pCurrentCBStage-&gt;nVectors );
+                }
+            } else {
+                /* Find the indices of the input and the codebook vector */
+                input_index = 0;
+                cb_index    = pTempIndices[ k ];
+            }
+
+            /* Subtract new contribution from the previous residual vector for each of 'cur_survivors' */
+            pConstInt   = &amp;pRes_Q15[ SKP_SMULBB( input_index, LPC_order ) ];
+            pCB_element = &amp;pCurrentCBStage-&gt;CB_NLSF_Q15[ SKP_SMULBB( cb_index, LPC_order ) ];
+            pInt        = &amp;pRes_new_Q15[ SKP_SMULBB( k, LPC_order ) ];
+            for( i = 0; i &lt; LPC_order; i++ ) {
+                pInt[ i ] = pConstInt[ i ] - ( SKP_int )pCB_element[ i ];
+            }
+
+            /* Update accumulated rate for stage 1 to the current */
+            pRate_new_Q5[ k ] = pRate_Q5[ input_index ] + pCurrentCBStage-&gt;Rates_Q5[ cb_index ];
+
+            /* Copy paths from previous matrix, starting with the best path */
+            pConstInt = &amp;pPath[ SKP_SMULBB( input_index, psNLSF_CB-&gt;nStages ) ];
+            pInt      = &amp;pPath_new[ SKP_SMULBB( k, psNLSF_CB-&gt;nStages ) ];
+            for( i = 0; i &lt; s; i++ ) {
+                pInt[ i ] = pConstInt[ i ];
+            }
+            /* Write the current stage indices for the 'cur_survivors' to the best path matrix */
+            pInt[ s ] = cb_index;
+        }
+
+        if( s &lt; psNLSF_CB-&gt;nStages - 1 ) {
+            /* Copy NLSF residual matrix for next stage */
+            SKP_memcpy( pRes_Q15, pRes_new_Q15, SKP_SMULBB( cur_survivors, LPC_order ) * sizeof( SKP_int ) );
+
+            /* Copy rate vector for next stage */
+            SKP_memcpy( pRate_Q5, pRate_new_Q5, cur_survivors * sizeof( SKP_int32 ) );
+
+            /* Copy best path matrix for next stage */
+            SKP_memcpy( pPath, pPath_new, SKP_SMULBB( cur_survivors, psNLSF_CB-&gt;nStages ) * sizeof( SKP_int ) );
+        }
+
+        prev_survivors = cur_survivors;
+    }
+
+    /* (Preliminary) index of the best survivor, later to be decoded */
+    bestIndex = 0;
+
+#if( NLSF_MSVQ_FLUCTUATION_REDUCTION == 1 )
+    /******************************/
+    /* NLSF fluctuation reduction */
+    /******************************/
+    if( deactivate_fluc_red != 1 ) {
+    
+        /* Search among all survivors, now taking also weighted fluctuation errors into account */
+        bestRateDist_Q20 = SKP_int32_MAX;
+        for( s = 0; s &lt; cur_survivors; s++ ) {
+            /* Decode survivor to compare with previous quantized NLSF vector */
+            SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, &amp;pPath_new[ SKP_SMULBB( s, psNLSF_CB-&gt;nStages ) ], LPC_order );
+
+            /* Compare decoded NLSF vector with the previously quantized vector */ 
+            wsse_Q20 = 0;
+            for( i = 0; i &lt; LPC_order; i += 2 ) {
+                /* Compute weighted squared quantization error for index i */
+                se_Q15 = pNLSF_Q15[ i ] - pNLSF_q_Q15_prev[ i ]; // range: [ -32767 : 32767 ]
+                wsse_Q20 = SKP_SMLAWB( wsse_Q20, SKP_SMULBB( se_Q15, se_Q15 ), pW_Q6[ i ] );
+
+                /* Compute weighted squared quantization error for index i + 1 */
+                se_Q15 = pNLSF_Q15[ i + 1 ] - pNLSF_q_Q15_prev[ i + 1 ]; // range: [ -32767 : 32767 ]
+                wsse_Q20 = SKP_SMLAWB( wsse_Q20, SKP_SMULBB( se_Q15, se_Q15 ), pW_Q6[ i + 1 ] );
+            }
+            SKP_assert( wsse_Q20 &gt;= 0 );
+
+            /* Add the fluctuation reduction penalty to the rate distortion error */
+            wsse_Q20 = SKP_ADD_POS_SAT32( pRateDist_Q18[ s ], SKP_SMULWB( wsse_Q20, NLSF_mu_fluc_red_Q16 ) );
+
+            /* Keep index of best survivor */
+            if( wsse_Q20 &lt; bestRateDist_Q20 ) {
+                bestRateDist_Q20 = wsse_Q20;
+                bestIndex = s;
+            }
+        }
+    }
+#endif
+
+    /* Copy best path to output argument */
+    SKP_memcpy( NLSFIndices, &amp;pPath_new[ SKP_SMULBB( bestIndex, psNLSF_CB-&gt;nStages ) ], psNLSF_CB-&gt;nStages * sizeof( SKP_int ) );
+
+    /* Decode and stabilize the best survivor */
+    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, NLSFIndices, LPC_order );
+
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_nearest_neighbor_FIXc"></a>
<div class="delfile"><h4>Deleted: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_nearest_neighbor_FIX.c</h4></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_rate_distortion_FIXc"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c                                (rev 0)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Rate-Distortion calculations for multiple input data vectors */
+void SKP_Silk_NLSF_VQ_rate_distortion_FIX(
+    SKP_int32                       *pRD_Q20,           /* O    Rate-distortion values [psNLSF_CBS-&gt;nVectors*N] */
+    const SKP_Silk_NLSF_CBS         *psNLSF_CBS,        /* I    NLSF codebook stage struct                      */
+    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized                   */
+    const SKP_int                   *w_Q6,              /* I    Weight vector                                   */
+    const SKP_int32                 *rate_acc_Q5,       /* I    Accumulated rates from previous stage           */
+    const SKP_int                   mu_Q15,             /* I    Weight between weighted error and rate          */
+    const SKP_int                   N,                  /* I    Number of input vectors to be quantized         */
+    const SKP_int                   LPC_order           /* I    LPC order                                       */
+)
+{
+    SKP_int   i, n;
+    SKP_int32 *pRD_vec_Q20;
+
+    /* Compute weighted quantization errors for all input vectors over one codebook stage */
+    SKP_Silk_NLSF_VQ_sum_error_FIX( pRD_Q20, in_Q15, w_Q6, psNLSF_CBS-&gt;CB_NLSF_Q15, 
+        N, psNLSF_CBS-&gt;nVectors, LPC_order );
+
+    /* Loop over input vectors */
+    pRD_vec_Q20 = pRD_Q20;
+    for( n = 0; n &lt; N; n++ ) {
+        /* Add rate cost to error for each codebook vector */
+        for( i = 0; i &lt; psNLSF_CBS-&gt;nVectors; i++ ) {
+            SKP_assert( rate_acc_Q5[ n ] + psNLSF_CBS-&gt;Rates_Q5[ i ] &gt;= 0 );
+            SKP_assert( rate_acc_Q5[ n ] + psNLSF_CBS-&gt;Rates_Q5[ i ] &lt;= SKP_int16_MAX );
+            pRD_vec_Q20[ i ] = SKP_SMLABB( pRD_vec_Q20[ i ], rate_acc_Q5[ n ] + psNLSF_CBS-&gt;Rates_Q5[ i ], mu_Q15 );
+            SKP_assert( pRD_vec_Q20[ i ] &gt;= 0 );
+        }
+        pRD_vec_Q20 += psNLSF_CBS-&gt;nVectors;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_sum_error_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,90 +1,79 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Compute weighted quantization errors for an LPC_order element input vector, over one codebook stage */
-void SKP_Silk_NLSF_VQ_sum_error_FIX(
-    SKP_int32                       *err_Q20,           /* O    Weighted quantization errors  [N*K]         */
-    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized [N*LPC_order] */
-    const SKP_int                   *w_Q6,              /* I    Weighting vectors             [N*LPC_order] */
-    const SKP_int16                 *pCB_Q15,           /* I    Codebook vectors              [K*LPC_order] */
-    const SKP_int                   N,                  /* I    Number of input vectors                     */
-    const SKP_int                   K,                  /* I    Number of codebook vectors                  */
-    const SKP_int                   LPC_order           /* I    Number of LPCs                              */
-
-
-
-
-
-)
-{
-    SKP_int         i, n, m;
-    SKP_int32       diff_Q15, sum_error, Wtmp_Q6;
-    SKP_int32       Wcpy_Q6[ MAX_LPC_ORDER / 2 ];
-    const SKP_int16 *cb_vec_Q15;
-
-    SKP_assert( LPC_order &lt;= 16 );
-    SKP_assert( ( LPC_order &amp; 1 ) == 0 );
-
-    /* Copy to local stack and pack two weights per int32 */
-    for( m = 0; m &lt; SKP_RSHIFT( LPC_order, 1 ); m++ ) {
-        Wcpy_Q6[ m ] = w_Q6[ 2 * m ] | SKP_LSHIFT( (SKP_int32)w_Q6[ 2 * m + 1 ], 16 );
-    }
-
-    /* Loop over input vectors */
-    for( n = 0; n &lt; N; n++ ) {
-        /* Loop over codebook */
-        cb_vec_Q15 = pCB_Q15;
-        for( i = 0; i &lt; K; i++ ) {
-            sum_error = 0;
-            for( m = 0; m &lt; LPC_order; m += 2 ) {
-                /* Get two weights packed in an int32 */
-                Wtmp_Q6 = Wcpy_Q6[ SKP_RSHIFT( m, 1 ) ];
-
-                /* Compute weighted squared quantization error for index m */
-                diff_Q15 = in_Q15[ m ] - *cb_vec_Q15++; // range: [ -32767 : 32767 ]
-                sum_error = SKP_SMLAWB( sum_error, SKP_SMULBB( diff_Q15, diff_Q15 ), Wtmp_Q6 );
-
-                /* Compute weighted squared quantization error for index m + 1 */
-                diff_Q15 = in_Q15[m + 1] - *cb_vec_Q15++; // range: [ -32767 : 32767 ]
-                sum_error = SKP_SMLAWT( sum_error, SKP_SMULBB( diff_Q15, diff_Q15 ), Wtmp_Q6 );
-            }
-            SKP_assert( sum_error &gt;= 0 );
-            err_Q20[ i ] = sum_error;
-        }
-        err_Q20 += K;
-        in_Q15 += LPC_order;
-    }
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Compute weighted quantization errors for an LPC_order element input vector, over one codebook stage */
+void SKP_Silk_NLSF_VQ_sum_error_FIX(
+    SKP_int32                       *err_Q20,           /* O    Weighted quantization errors  [N*K]         */
+    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized [N*LPC_order] */
+    const SKP_int                   *w_Q6,              /* I    Weighting vectors             [N*LPC_order] */
+    const SKP_int16                 *pCB_Q15,           /* I    Codebook vectors              [K*LPC_order] */
+    const SKP_int                   N,                  /* I    Number of input vectors                     */
+    const SKP_int                   K,                  /* I    Number of codebook vectors                  */
+    const SKP_int                   LPC_order           /* I    Number of LPCs                              */
+)
+{
+    SKP_int         i, n, m;
+    SKP_int32       diff_Q15, sum_error, Wtmp_Q6;
+    SKP_int32       Wcpy_Q6[ MAX_LPC_ORDER / 2 ];
+    const SKP_int16 *cb_vec_Q15;
+
+    SKP_assert( LPC_order &lt;= 16 );
+    SKP_assert( ( LPC_order &amp; 1 ) == 0 );
+
+    /* Copy to local stack and pack two weights per int32 */
+    for( m = 0; m &lt; SKP_RSHIFT( LPC_order, 1 ); m++ ) {
+        Wcpy_Q6[ m ] = w_Q6[ 2 * m ] | SKP_LSHIFT( ( SKP_int32 )w_Q6[ 2 * m + 1 ], 16 );
+    }
+
+    /* Loop over input vectors */
+    for( n = 0; n &lt; N; n++ ) {
+        /* Loop over codebook */
+        cb_vec_Q15 = pCB_Q15;
+        for( i = 0; i &lt; K; i++ ) {
+            sum_error = 0;
+            for( m = 0; m &lt; LPC_order; m += 2 ) {
+                /* Get two weights packed in an int32 */
+                Wtmp_Q6 = Wcpy_Q6[ SKP_RSHIFT( m, 1 ) ];
+
+                /* Compute weighted squared quantization error for index m */
+                diff_Q15 = in_Q15[ m ] - *cb_vec_Q15++; // range: [ -32767 : 32767 ]
+                sum_error = SKP_SMLAWB( sum_error, SKP_SMULBB( diff_Q15, diff_Q15 ), Wtmp_Q6 );
+
+                /* Compute weighted squared quantization error for index m + 1 */
+                diff_Q15 = in_Q15[m + 1] - *cb_vec_Q15++; // range: [ -32767 : 32767 ]
+                sum_error = SKP_SMLAWT( sum_error, SKP_SMULBB( diff_Q15, diff_Q15 ), Wtmp_Q6 );
+            }
+            SKP_assert( sum_error &gt;= 0 );
+            err_Q20[ i ] = sum_error;
+        }
+        err_Q20 += K;
+        in_Q15 += LPC_order;
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_VQ_weights_laroiac"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,94 +1,78 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/*
-R. Laroia, N. Phamdo and N. Farvardin, &quot;Robust and Efficient Quantization of Speech LSP
-Parameters Using Structured Vector Quantization&quot;, Proc. IEEE Int. Conf. Acoust., Speech,
-Signal Processing, pp. 641-644, 1991.
-*/
-
-#define Q_OUT                       6
-
-/* Laroia low complexity NLSF weights */
-void SKP_Silk_NLSF_VQ_weights_laroia(
-    SKP_int             *pNLSFW_Q6,         /* O: Pointer to input vector weights           [D x 1]     */
-    const SKP_int       *pNLSF_Q15,         /* I: Pointer to input vector                   [D x 1]     */
-    const SKP_int       D                   /* I: Input vector dimension (even)                         */
-)
-{
-    SKP_int   k;
-    SKP_int32 tmp1_int, tmp2_int;
-
-    /* Check that we are guaranteed to end up within the required range */
-
-
-
-
-
-    SKP_assert( D &gt; 0 );
-    SKP_assert( ( D &amp; 1 ) == 0 );
-
-    /* First value */
-    tmp1_int = SKP_max_int( pNLSF_Q15[ 0 ], 1 );
-    tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
-    tmp2_int = SKP_max_int( pNLSF_Q15[ 1 ] - pNLSF_Q15[ 0 ], 1 );
-    tmp2_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp2_int );
-    pNLSFW_Q6[ 0 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
-    SKP_assert( pNLSFW_Q6[ 0 ] &gt; 0 );
-
-    /* Main loop */
-    for( k = 1; k &lt; D - 1; k += 2 ) {
-        tmp1_int = SKP_max_int( pNLSF_Q15[ k + 1 ] - pNLSF_Q15[ k ], 1 );
-        tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
-        pNLSFW_Q6[ k ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
-        SKP_assert( pNLSFW_Q6[ k ] &gt; 0 );
-
-        tmp2_int = SKP_max_int( pNLSF_Q15[ k + 2 ] - pNLSF_Q15[ k + 1 ], 1 );
-        tmp2_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp2_int );
-        pNLSFW_Q6[ k + 1 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
-        SKP_assert( pNLSFW_Q6[ k + 1 ] &gt; 0 );
-    }
-
-    /* Last value */
-    tmp1_int = SKP_max_int( ( 1 &lt;&lt; 15 ) - pNLSF_Q15[ D - 1 ], 1 );
-    tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
-    pNLSFW_Q6[ D - 1 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
-    SKP_assert( pNLSFW_Q6[ D - 1 ] &gt; 0 );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* 
+R. Laroia, N. Phamdo and N. Farvardin, &quot;Robust and Efficient Quantization of Speech LSP
+Parameters Using Structured Vector Quantization&quot;, Proc. IEEE Int. Conf. Acoust., Speech,
+Signal Processing, pp. 641-644, 1991.
+*/
+
+#define Q_OUT                       6
+
+/* Laroia low complexity NLSF weights */
+void SKP_Silk_NLSF_VQ_weights_laroia(
+    SKP_int             *pNLSFW_Q6,         /* O: Pointer to input vector weights           [D x 1]     */
+    const SKP_int       *pNLSF_Q15,         /* I: Pointer to input vector                   [D x 1]     */ 
+    const SKP_int       D                   /* I: Input vector dimension (even)                         */
+)
+{
+    SKP_int   k;
+    SKP_int32 tmp1_int, tmp2_int;
+    
+    /* Check that we are guaranteed to end up within the required range */
+    SKP_assert( D &gt; 0 );
+    SKP_assert( ( D &amp; 1 ) == 0 );
+    
+    /* First value */
+    tmp1_int = SKP_max_int( pNLSF_Q15[ 0 ], 1 );
+    tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
+    tmp2_int = SKP_max_int( pNLSF_Q15[ 1 ] - pNLSF_Q15[ 0 ], 1 );
+    tmp2_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp2_int );
+    pNLSFW_Q6[ 0 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
+    SKP_assert( pNLSFW_Q6[ 0 ] &gt; 0 );
+    
+    /* Main loop */
+    for( k = 1; k &lt; D - 1; k += 2 ) {
+        tmp1_int = SKP_max_int( pNLSF_Q15[ k + 1 ] - pNLSF_Q15[ k ], 1 );
+        tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
+        pNLSFW_Q6[ k ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
+        SKP_assert( pNLSFW_Q6[ k ] &gt; 0 );
+
+        tmp2_int = SKP_max_int( pNLSF_Q15[ k + 2 ] - pNLSF_Q15[ k + 1 ], 1 );
+        tmp2_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp2_int );
+        pNLSFW_Q6[ k + 1 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
+        SKP_assert( pNLSFW_Q6[ k + 1 ] &gt; 0 );
+    }
+    
+    /* Last value */
+    tmp1_int = SKP_max_int( ( 1 &lt;&lt; 15 ) - pNLSF_Q15[ D - 1 ], 1 );
+    tmp1_int = SKP_DIV32_16( 1 &lt;&lt; ( 15 + Q_OUT ), tmp1_int );
+    pNLSFW_Q6[ D - 1 ] = (SKP_int)SKP_min_int( tmp1_int + tmp2_int, SKP_int16_MAX );
+    SKP_assert( pNLSFW_Q6[ D - 1 ] &gt; 0 );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NLSF_stabilizec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_stabilize.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_stabilize.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NLSF_stabilize.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,175 +1,154 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-
-
-
-
-/* NLSF stabilizer:                                         */
-/*                                                          */
-/* - Moves NLSFs futher apart if they are too close         */
-/* - Moves NLSFs away from borders if they are too close    */
-/* - High effort to achieve a modification with minimum     */
-/*     Euclidean distance to input vector                   */
-/* - Output are sorted NLSF coefficients                    */
-/*                                                          */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Constant Definitions */
-#define MAX_LOOPS        20
-
-/* NLSF stabilizer, for a single input data vector */
-void SKP_Silk_NLSF_stabilize(
-          SKP_int    *NLSF_Q15,            /* I/O:  Unstable/stabilized normalized LSF vector in Q15 [L]                    */
-    const SKP_int    *NDeltaMin_Q15,       /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
-    const SKP_int     L                    /* I:    Number of NLSF parameters in the input vector                           */
-)
-{
-    SKP_int        center_freq_Q15, diff_Q15, min_center_Q15, max_center_Q15;
-    SKP_int32    min_diff_Q15;
-    SKP_int        loops;
-    SKP_int        i, I=0, k;
-
-    /* This is necessary to ensure an output within range of a SKP_int16 */
-    SKP_assert( NDeltaMin_Q15[L] &gt;= 1 );
-
-    for( loops = 0; loops &lt; MAX_LOOPS; loops++ ) {
-        /**************************/
-        /* Find smallest distance */
-        /**************************/
-        /* First element */
-        min_diff_Q15 = NLSF_Q15[0] - NDeltaMin_Q15[0];
-        I = 0;
-        /* Middle elements */
-        for( i = 1; i &lt;= L-1; i++ ) {
-            diff_Q15 = NLSF_Q15[i] - ( NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
-            if( diff_Q15 &lt; min_diff_Q15 ) {
-                min_diff_Q15 = diff_Q15;
-                I = i;
-            }
-        }
-        /* Last element */
-        diff_Q15 = (1&lt;&lt;15) - ( NLSF_Q15[L-1] + NDeltaMin_Q15[L] );
-        if( diff_Q15 &lt; min_diff_Q15 ) {
-            min_diff_Q15 = diff_Q15;
-            I = L;
-
-
-
-
-
-        }
-
-        /***************************************************/
-        /* Now check if the smallest distance non-negative */
-        /***************************************************/
-        if (min_diff_Q15 &gt;= 0) {
-            return;
-        }
-
-        if( I == 0 ) {
-            /* Move away from lower limit */
-            NLSF_Q15[0] = NDeltaMin_Q15[0];
-
-        } else if( I == L) {
-            /* Move away from higher limit */
-            NLSF_Q15[L-1] = (1&lt;&lt;15) - NDeltaMin_Q15[L];
-
-        } else {
-            /* Find the lower extreme for the location of the current center frequency */
-            min_center_Q15 = 0;
-            for( k = 0; k &lt; I; k++ ) {
-                min_center_Q15 += NDeltaMin_Q15[k];
-            }
-            min_center_Q15 += SKP_RSHIFT( NDeltaMin_Q15[I], 1 );
-
-            /* Find the upper extreme for the location of the current center frequency */
-            max_center_Q15 = (1&lt;&lt;15);
-            for( k = L; k &gt; I; k-- ) {
-                max_center_Q15 -= NDeltaMin_Q15[k];
-            }
-            max_center_Q15 -= ( NDeltaMin_Q15[I] - SKP_RSHIFT( NDeltaMin_Q15[I], 1 ) );
-
-            /* Move apart, sorted by value, keeping the same center frequency */
-            center_freq_Q15 = SKP_LIMIT( SKP_RSHIFT_ROUND( (SKP_int32)NLSF_Q15[I-1] + (SKP_int32)NLSF_Q15[I], 1 ),
-                min_center_Q15, max_center_Q15 );
-            NLSF_Q15[I-1] = center_freq_Q15 - SKP_RSHIFT( NDeltaMin_Q15[I], 1 );
-            NLSF_Q15[I] = NLSF_Q15[I-1] + NDeltaMin_Q15[I];
-        }
-    }
-
-    /* Safe and simple fall back method, which is less ideal than the above */
-    if( loops == MAX_LOOPS )
-    {
-        /* Insertion sort (fast for already almost sorted arrays):   */
-        /* Best case:  O(n)   for an already sorted array            */
-        /* Worst case: O(n^2) for an inversely sorted array          */
-        SKP_Silk_insertion_sort_increasing_all_values(&amp;NLSF_Q15[0], L);
-
-
-
-
-
-
-        /* First NLSF should be no less than NDeltaMin[0] */
-        NLSF_Q15[0] = SKP_max_int( NLSF_Q15[0], NDeltaMin_Q15[0] );
-
-        /* Keep delta_min distance between the NLSFs */
-        for( i = 1; i &lt; L; i++ )
-            NLSF_Q15[i] = SKP_max_int( NLSF_Q15[i], NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
-
-        /* Last NLSF should be no higher than 1 - NDeltaMin[L] */
-        NLSF_Q15[L-1] = SKP_min_int( NLSF_Q15[L-1], (1&lt;&lt;15) - NDeltaMin_Q15[L] );
-
-        /* Keep NDeltaMin distance between the NLSFs */
-        for( i = L-2; i &gt;= 0; i-- )
-            NLSF_Q15[i] = SKP_min_int( NLSF_Q15[i], NLSF_Q15[i+1] - NDeltaMin_Q15[i+1] );
-    }
-}
-
-/* NLSF stabilizer, over multiple input column data vectors */
-void SKP_Silk_NLSF_stabilize_multi(
-          SKP_int        *NLSF_Q15,        /* I/O:  Unstable/stabilized normalized LSF vectors in Q15 [LxN]                 */
-    const SKP_int        *NDeltaMin_Q15,   /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
-    const SKP_int         N,               /* I:    Number of input vectors to be stabilized                                */
-    const SKP_int         L                /* I:    NLSF vector dimension                                                   */
-)
-{
-    SKP_int n;
-
-    /* loop over input data */
-    for( n = 0; n &lt; N; n++ ) {
-        SKP_Silk_NLSF_stabilize( &amp;NLSF_Q15[n * L], NDeltaMin_Q15, L );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/* NLSF stabilizer:                                         */
+/*                                                          */
+/* - Moves NLSFs futher apart if they are too close         */
+/* - Moves NLSFs away from borders if they are too close    */
+/* - High effort to achieve a modification with minimum     */
+/*     Euclidean distance to input vector                   */
+/* - Output are sorted NLSF coefficients                    */
+/*                                                          */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Constant Definitions */
+#define MAX_LOOPS        20
+
+/* NLSF stabilizer, for a single input data vector */
+void SKP_Silk_NLSF_stabilize(
+          SKP_int    *NLSF_Q15,            /* I/O:  Unstable/stabilized normalized LSF vector in Q15 [L]                    */
+    const SKP_int    *NDeltaMin_Q15,       /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
+    const SKP_int     L                    /* I:    Number of NLSF parameters in the input vector                           */
+)
+{
+    SKP_int        center_freq_Q15, diff_Q15, min_center_Q15, max_center_Q15;
+    SKP_int32    min_diff_Q15;
+    SKP_int        loops;
+    SKP_int        i, I=0, k;
+
+    /* This is necessary to ensure an output within range of a SKP_int16 */
+    SKP_assert( NDeltaMin_Q15[L] &gt;= 1 );
+
+    for( loops = 0; loops &lt; MAX_LOOPS; loops++ ) {
+        /**************************/
+        /* Find smallest distance */
+        /**************************/
+        /* First element */
+        min_diff_Q15 = NLSF_Q15[0] - NDeltaMin_Q15[0];
+        I = 0;
+        /* Middle elements */
+        for( i = 1; i &lt;= L-1; i++ ) {
+            diff_Q15 = NLSF_Q15[i] - ( NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
+            if( diff_Q15 &lt; min_diff_Q15 ) {
+                min_diff_Q15 = diff_Q15;
+                I = i;
+            }
+        }
+        /* Last element */
+        diff_Q15 = (1&lt;&lt;15) - ( NLSF_Q15[L-1] + NDeltaMin_Q15[L] );
+        if( diff_Q15 &lt; min_diff_Q15 ) {
+            min_diff_Q15 = diff_Q15;
+            I = L;
+        }
+
+        /***************************************************/
+        /* Now check if the smallest distance non-negative */
+        /***************************************************/
+        if (min_diff_Q15 &gt;= 0) {
+            return;
+        }
+
+        if( I == 0 ) {
+            /* Move away from lower limit */
+            NLSF_Q15[0] = NDeltaMin_Q15[0];
+        
+        } else if( I == L) {
+            /* Move away from higher limit */
+            NLSF_Q15[L-1] = (1&lt;&lt;15) - NDeltaMin_Q15[L];
+        
+        } else {
+            /* Find the lower extreme for the location of the current center frequency */ 
+            min_center_Q15 = 0;
+            for( k = 0; k &lt; I; k++ ) {
+                min_center_Q15 += NDeltaMin_Q15[k];
+            }
+            min_center_Q15 += SKP_RSHIFT( NDeltaMin_Q15[I], 1 );
+
+            /* Find the upper extreme for the location of the current center frequency */
+            max_center_Q15 = (1&lt;&lt;15);
+            for( k = L; k &gt; I; k-- ) {
+                max_center_Q15 -= NDeltaMin_Q15[k];
+            }
+            max_center_Q15 -= ( NDeltaMin_Q15[I] - SKP_RSHIFT( NDeltaMin_Q15[I], 1 ) );
+
+            /* Move apart, sorted by value, keeping the same center frequency */
+            center_freq_Q15 = SKP_LIMIT( SKP_RSHIFT_ROUND( (SKP_int32)NLSF_Q15[I-1] + (SKP_int32)NLSF_Q15[I], 1 ),
+                min_center_Q15, max_center_Q15 );
+            NLSF_Q15[I-1] = center_freq_Q15 - SKP_RSHIFT( NDeltaMin_Q15[I], 1 );
+            NLSF_Q15[I] = NLSF_Q15[I-1] + NDeltaMin_Q15[I];
+        }
+    }
+
+    /* Safe and simple fall back method, which is less ideal than the above */
+    if( loops == MAX_LOOPS )
+    {
+        /* Insertion sort (fast for already almost sorted arrays):   */
+        /* Best case:  O(n)   for an already sorted array            */
+        /* Worst case: O(n^2) for an inversely sorted array          */
+        SKP_Silk_insertion_sort_increasing_all_values(&amp;NLSF_Q15[0], L);
+            
+        /* First NLSF should be no less than NDeltaMin[0] */
+        NLSF_Q15[0] = SKP_max_int( NLSF_Q15[0], NDeltaMin_Q15[0] );
+        
+        /* Keep delta_min distance between the NLSFs */
+        for( i = 1; i &lt; L; i++ )
+            NLSF_Q15[i] = SKP_max_int( NLSF_Q15[i], NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
+
+        /* Last NLSF should be no higher than 1 - NDeltaMin[L] */
+        NLSF_Q15[L-1] = SKP_min_int( NLSF_Q15[L-1], (1&lt;&lt;15) - NDeltaMin_Q15[L] );
+
+        /* Keep NDeltaMin distance between the NLSFs */
+        for( i = L-2; i &gt;= 0; i-- ) 
+            NLSF_Q15[i] = SKP_min_int( NLSF_Q15[i], NLSF_Q15[i+1] - NDeltaMin_Q15[i+1] );
+    }
+}
+
+/* NLSF stabilizer, over multiple input column data vectors */
+void SKP_Silk_NLSF_stabilize_multi(
+          SKP_int        *NLSF_Q15,        /* I/O:  Unstable/stabilized normalized LSF vectors in Q15 [LxN]                 */
+    const SKP_int        *NDeltaMin_Q15,   /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
+    const SKP_int         N,               /* I:    Number of input vectors to be stabilized                                */
+    const SKP_int         L                /* I:    NLSF vector dimension                                                   */
+)
+{
+    SKP_int n;
+    
+    /* loop over input data */
+    for( n = 0; n &lt; N; n++ ) {
+        SKP_Silk_NLSF_stabilize( &amp;NLSF_Q15[n * L], NDeltaMin_Q15, L );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NSQc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,502 +1,446 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-
-
-
-
-
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-SKP_INLINE void SKP_Silk_nsq_scale_states(
-    SKP_Silk_nsq_state  *NSQ,               /* I/O NSQ state                        */
-    const SKP_int16     x[],                /* I input in Q0                        */
-    SKP_int32           x_sc_Q10[],         /* O input scaled with 1/Gain           */
-    SKP_int             length,             /* I length of input                    */
-    SKP_int16           sLTP[],             /* I re-whitened LTP state in Q0        */
-    SKP_int32           sLTP_Q16[],         /* O LTP state matching scaled input    */
-    SKP_int             subfr,              /* I subframe number                    */
-    const SKP_int       LTP_scale_Q14,      /* I                                    */
-    const SKP_int32     Gains_Q16[ NB_SUBFR ], /* I                                 */
-    const SKP_int       pitchL[ NB_SUBFR ]  /* I                                    */
-);
-
-SKP_INLINE void SKP_Silk_noise_shape_quantizer(
-    SKP_Silk_nsq_state  *NSQ,               /* I/O  NSQ state                       */
-    SKP_int             sigtype,            /* I    Signal type                     */
-    const SKP_int32     x_sc_Q10[],         /* I                                    */
-    SKP_int             q[],                /* O                                    */
-    SKP_int16           xq[],               /* O                                    */
-    SKP_int32           sLTP_Q16[],         /* I/O  LTP state                       */
-    const SKP_int16     a_Q12[],            /* I    Short term prediction coefs     */
-
-
-
-
-
-    const SKP_int16     b_Q14[],            /* I    Long term prediction coefs      */
-    const SKP_int16     AR_shp_Q13[],       /* I    Noise shaping AR coefs          */
-    SKP_int             lag,                /* I    Pitch lag                       */
-    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                */
-    SKP_int             Tilt_Q14,           /* I    Spectral tilt                   */
-    SKP_int32           LF_shp_Q14,         /* I                                    */
-    SKP_int32           Gain_Q16,           /* I                                    */
-    SKP_int             Lambda_Q10,         /* I                                    */
-    SKP_int             offset_Q10,         /* I                                    */
-    SKP_int             length,             /* I    Input length                    */
-    SKP_int             shapingLPCOrder,    /* I    Noise shaping AR filter order   */
-    SKP_int             predictLPCOrder     /* I    Prediction filter order         */
-);
-
-void SKP_Silk_NSQ(
-    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
-    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
-    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
-    const SKP_int16                 x[],                                        /* I    prefiltered input signal            */
-    SKP_int                         q[],                                        /* O    quantized qulse signal              */
-    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
-    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Short term prediction coefficients  */
-    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    Long term prediction coefficients   */
-    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
-    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
-    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
-    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
-    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
-    const SKP_int                   Lambda_Q10,                                 /* I                                        */
-    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
-)
-{
-    SKP_int     k, lag, start_idx, subfr_length, LSF_interpolation_flag;
-    const SKP_int16 *A_Q12, *B_Q14, *AR_shp_Q13;
-    SKP_int16   *pxq;
-    SKP_int32   sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
-    SKP_int16   sLTP[     2 * MAX_FRAME_LENGTH ];
-    SKP_int32   HarmShapeFIRPacked_Q14;
-    SKP_int     offset_Q10;
-    SKP_int32   FiltState[ MAX_LPC_ORDER ];
-    SKP_int32   x_sc_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ];
-
-    subfr_length = psEncC-&gt;frame_length / NB_SUBFR;
-
-    NSQ-&gt;rand_seed  =  psEncCtrlC-&gt;Seed;
-    /* Set unvoiced lag to the previous one, overwrite later for voiced */
-    lag             = NSQ-&gt;lagPrev;
-
-
-
-
-
-
-    SKP_assert( NSQ-&gt;prev_inv_gain_Q16 != 0 );
-
-    offset_Q10 = SKP_Silk_Quantization_Offsets_Q10[ psEncCtrlC-&gt;sigtype ][ psEncCtrlC-&gt;QuantOffsetType ];
-
-    if( LSFInterpFactor_Q2 == ( 1 &lt;&lt; 2 ) ) {
-        LSF_interpolation_flag = 0;
-    } else {
-        LSF_interpolation_flag = 1;
-    }
-
-    /* Setup pointers to start of sub frame */
-    NSQ-&gt;sLTP_shp_buf_idx = psEncC-&gt;frame_length;
-    NSQ-&gt;sLTP_buf_idx     = psEncC-&gt;frame_length;
-    pxq                   = &amp;NSQ-&gt;xq[ psEncC-&gt;frame_length ];
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        A_Q12      = &amp;PredCoef_Q12[ (( k &gt;&gt; 1 ) | ( 1 - LSF_interpolation_flag )) * MAX_LPC_ORDER ];
-        B_Q14      = &amp;LTPCoef_Q14[ k * LTP_ORDER ];
-        AR_shp_Q13 = &amp;AR2_Q13[     k * SHAPE_LPC_ORDER_MAX ];
-
-        /* Noise shape parameters */
-        SKP_assert( HarmShapeGain_Q14[ k ] &gt;= 0 );
-        HarmShapeFIRPacked_Q14  =                        SKP_RSHIFT( HarmShapeGain_Q14[ k ], 2 );
-        HarmShapeFIRPacked_Q14 |= SKP_LSHIFT( (SKP_int32)SKP_RSHIFT( HarmShapeGain_Q14[ k ], 1 ), 16 );
-
-        if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
-            /* Voiced */
-            lag = psEncCtrlC-&gt;pitchL[ k ];
-
-            NSQ-&gt;rewhite_flag = 0;
-            /* Re-whitening */
-            if( ( k &amp; ( 3 - SKP_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) {
-                /* Rewhiten with new A coefs */
-
-                start_idx = psEncC-&gt;frame_length - lag - psEncC-&gt;predictLPCOrder - LTP_ORDER / 2;
-                start_idx = SKP_LIMIT( start_idx, 0, psEncC-&gt;frame_length - psEncC-&gt;predictLPCOrder ); /* Limit */
-
-                SKP_memset( FiltState, 0, psEncC-&gt;predictLPCOrder * sizeof( SKP_int32 ) );
-                SKP_Silk_MA_Prediction( &amp;NSQ-&gt;xq[ start_idx + k * ( psEncC-&gt;frame_length &gt;&gt; 2 ) ],
-                    A_Q12, FiltState, sLTP + start_idx, psEncC-&gt;frame_length - start_idx, psEncC-&gt;predictLPCOrder );
-
-                NSQ-&gt;rewhite_flag = 1;
-                NSQ-&gt;sLTP_buf_idx = psEncC-&gt;frame_length;
-            }
-        }
-
-        SKP_Silk_nsq_scale_states( NSQ, x, x_sc_Q10, psEncC-&gt;subfr_length, sLTP,
-            sLTP_Q16, k, LTP_scale_Q14, Gains_Q16, psEncCtrlC-&gt;pitchL );
-
-
-
-
-
-
-        SKP_Silk_noise_shape_quantizer( NSQ, psEncCtrlC-&gt;sigtype, x_sc_Q10, q, pxq, sLTP_Q16, A_Q12, B_Q14,
-            AR_shp_Q13, lag, HarmShapeFIRPacked_Q14, Tilt_Q14[ k ], LF_shp_Q14[ k ], Gains_Q16[ k ], Lambda_Q10,
-            offset_Q10, psEncC-&gt;subfr_length, psEncC-&gt;shapingLPCOrder, psEncC-&gt;predictLPCOrder
-        );
-
-        x          += psEncC-&gt;subfr_length;
-        q          += psEncC-&gt;subfr_length;
-        pxq        += psEncC-&gt;subfr_length;
-    }
-
-    /* Save scalars for this layer */
-    NSQ-&gt;sLF_AR_shp_Q12             = NSQ-&gt;sLF_AR_shp_Q12;
-    NSQ-&gt;prev_inv_gain_Q16          = NSQ-&gt;prev_inv_gain_Q16;
-    NSQ-&gt;lagPrev                        = psEncCtrlC-&gt;pitchL[ NB_SUBFR - 1 ];
-    /* Save quantized speech and noise shaping signals */
-    SKP_memcpy( NSQ-&gt;xq,           &amp;NSQ-&gt;xq[           psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int16 ) );
-    SKP_memcpy( NSQ-&gt;sLTP_shp_Q10, &amp;NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int32 ) );
-
-}
-
-/***********************************/
-/* SKP_Silk_noise_shape_quantizer  */
-/***********************************/
-SKP_INLINE void SKP_Silk_noise_shape_quantizer(
-    SKP_Silk_nsq_state  *NSQ,               /* I/O  NSQ state                       */
-    SKP_int             sigtype,            /* I    Signal type                     */
-    const SKP_int32     x_sc_Q10[],         /* I                                    */
-    SKP_int             q[],                /* O                                    */
-    SKP_int16           xq[],               /* O                                    */
-    SKP_int32           sLTP_Q16[],         /* I/O  LTP state                       */
-    const SKP_int16     a_Q12[],            /* I    Short term prediction coefs     */
-    const SKP_int16     b_Q14[],            /* I    Long term prediction coefs      */
-    const SKP_int16     AR_shp_Q13[],       /* I    Noise shaping AR coefs          */
-    SKP_int             lag,                /* I    Pitch lag                       */
-    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                */
-    SKP_int             Tilt_Q14,           /* I    Spectral tilt                   */
-    SKP_int32           LF_shp_Q14,         /* I                                    */
-    SKP_int32           Gain_Q16,           /* I                                    */
-    SKP_int             Lambda_Q10,         /* I                                    */
-    SKP_int             offset_Q10,         /* I                                    */
-    SKP_int             length,             /* I    Input length                    */
-    SKP_int             shapingLPCOrder,    /* I    Noise shaping AR filter order   */
-    SKP_int             predictLPCOrder     /* I    Prediction filter order         */
-)
-{
-    SKP_int     i, j;
-    SKP_int32   LTP_pred_Q14, LPC_pred_Q10, n_AR_Q10, n_LTP_Q14;
-    SKP_int32   n_LF_Q10, r_Q10, q_Q0, q_Q10;
-
-
-
-
-
-    SKP_int32   thr1_Q10, thr2_Q10, thr3_Q10;
-    SKP_int32   Atmp, dither;
-    SKP_int32   exc_Q10, LPC_exc_Q10, xq_Q10;
-    SKP_int32   tmp, sLF_AR_shp_Q10;
-    SKP_int32   *psLPC_Q14;
-    SKP_int32   *shp_lag_ptr, *pred_lag_ptr;
-    SKP_int32   a_Q12_tmp[ MAX_LPC_ORDER / 2 ], AR_shp_Q13_tmp[ MAX_LPC_ORDER / 2 ];
-
-    shp_lag_ptr  = &amp;NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ];
-    pred_lag_ptr = &amp;sLTP_Q16[ NSQ-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
-
-    /* Setup short term AR state */
-    psLPC_Q14     = &amp;NSQ-&gt;sLPC_Q14[ MAX_LPC_ORDER - 1 ];
-
-    /* Quantization thresholds */
-    thr1_Q10 = SKP_SUB_RSHIFT32( -1536, Lambda_Q10, 1);
-    thr2_Q10 = SKP_SUB_RSHIFT32( -512,  Lambda_Q10, 1);
-    thr2_Q10 = SKP_ADD_RSHIFT32( thr2_Q10, SKP_SMULBB( offset_Q10, Lambda_Q10 ), 10 );
-    thr3_Q10 = SKP_ADD_RSHIFT32(  512,  Lambda_Q10, 1);
-
-    /* Preload LPC coeficients to array on stack. Gives small performance gain */
-    SKP_memcpy( a_Q12_tmp, a_Q12, predictLPCOrder * sizeof(SKP_int16) );
-    SKP_memcpy( AR_shp_Q13_tmp, AR_shp_Q13, shapingLPCOrder * sizeof(SKP_int16) );
-
-    for( i = 0; i &lt; length; i++ ) {
-        /* Generate dither */
-        NSQ-&gt;rand_seed = SKP_RAND( NSQ-&gt;rand_seed );
-
-        /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
-        dither = SKP_RSHIFT( NSQ-&gt;rand_seed, 31 );
-
-        /* Short-term prediction */
-        SKP_assert( ( predictLPCOrder  &amp; 1 ) == 0 );    /* check that order is even */
-        SKP_assert( ( (SKP_int64)a_Q12 &amp; 3 ) == 0 );    /* check that array starts at 4-byte aligned address */
-        SKP_assert( predictLPCOrder &gt;= 10 );            /* check that unrolling works */
-
-        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-        /* Partially unrolled */
-        Atmp = a_Q12_tmp[ 0 ];      /* read two coefficients at once */
-        LPC_pred_Q10 = SKP_SMULWB(               psLPC_Q14[ 0  ], Atmp );
-        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -1 ], Atmp );
-        Atmp = a_Q12_tmp[ 1 ];
-        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -2 ], Atmp );
-        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -3 ], Atmp );
-        Atmp = a_Q12_tmp[ 2 ];
-
-
-
-
-
-        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -4 ], Atmp );
-        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -5 ], Atmp );
-        Atmp = a_Q12_tmp[ 3 ];
-        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -6 ], Atmp );
-        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -7 ], Atmp );
-        Atmp = a_Q12_tmp[ 4 ];
-        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -8 ], Atmp );
-        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -9 ], Atmp );
-        for( j = 10; j &lt; predictLPCOrder; j += 2 ) {
-            Atmp = a_Q12_tmp[ j &gt;&gt; 1 ];     /* read two coefficients at once */
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -j     ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -j - 1 ], Atmp );
-        }
-
-        /* Long-term prediction */
-        if( sigtype == SIG_TYPE_VOICED ) {
-            /* Unrolled loop */
-            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], b_Q14[ 0 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], b_Q14[ 1 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], b_Q14[ 2 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], b_Q14[ 3 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], b_Q14[ 4 ] );
-            pred_lag_ptr++;
-        } else {
-            LTP_pred_Q14 = 0;
-        }
-
-        /* Noise shape feedback */
-        SKP_assert( ( shapingLPCOrder       &amp; 1 ) == 0 );   /* check that order is even */
-        SKP_assert( ( (SKP_int64)AR_shp_Q13 &amp; 3 ) == 0 );   /* check that array starts at 4-byte aligned address */
-        SKP_assert( shapingLPCOrder &gt;= 12 );                /* check that unrolling works */
-
-        /* Partially unrolled */
-        Atmp = AR_shp_Q13_tmp[ 0 ];     /* read two coefficients at once */
-        n_AR_Q10 = SKP_SMULWB(           psLPC_Q14[ 0  ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -1 ], Atmp );
-        Atmp = AR_shp_Q13_tmp[ 1 ];
-        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -2 ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -3 ], Atmp );
-        Atmp = AR_shp_Q13_tmp[ 2 ];
-        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -4 ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -5 ], Atmp );
-        Atmp = AR_shp_Q13_tmp[ 3 ];
-        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -6 ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -7 ], Atmp );
-        Atmp = AR_shp_Q13_tmp[ 4 ];
-        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -8 ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -9 ], Atmp );
-
-
-
-
-
-        Atmp = AR_shp_Q13_tmp[ 5 ];
-        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -10 ], Atmp );
-        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -11 ], Atmp );
-        for( j = 12; j &lt; shapingLPCOrder; j += 2 ) {
-            Atmp = AR_shp_Q13_tmp[ j &gt;&gt; 1 ];        /* read two coefficients at once */
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -j     ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -j - 1 ], Atmp );
-        }
-        n_AR_Q10 = SKP_RSHIFT( n_AR_Q10, 1 );   /* Q11 -&gt; Q10 */
-        n_AR_Q10  = SKP_SMLAWB( n_AR_Q10, NSQ-&gt;sLF_AR_shp_Q12, Tilt_Q14 );
-
-        n_LF_Q10   = SKP_LSHIFT( SKP_SMULWB( NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - 1 ], LF_shp_Q14 ), 2 );
-        n_LF_Q10   = SKP_SMLAWT( n_LF_Q10, NSQ-&gt;sLF_AR_shp_Q12, LF_shp_Q14 );
-
-        SKP_assert( lag &gt; 0 || sigtype == SIG_TYPE_UNVOICED);
-
-        /* Long-term shaping */
-        if( lag &gt; 0 ) {
-            /* Symmetric, packed FIR coefficients */
-            n_LTP_Q14 = SKP_SMULWB( SKP_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
-            n_LTP_Q14 = SKP_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ],                     HarmShapeFIRPacked_Q14 );
-            shp_lag_ptr++;
-            n_LTP_Q14 = SKP_LSHIFT( n_LTP_Q14, 6 );
-        } else {
-            n_LTP_Q14 = 0;
-        }
-
-        /* Input minus prediction plus noise feedback  */
-        //r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP;
-        tmp   = SKP_SUB32( LTP_pred_Q14, n_LTP_Q14 );                       /* Add Q14 stuff */
-        tmp   = SKP_RSHIFT_ROUND( tmp, 4 );                                 /* round to Q10  */
-        tmp   = SKP_ADD32( tmp, LPC_pred_Q10 );                             /* add Q10 stuff */
-        tmp   = SKP_SUB32( tmp, n_AR_Q10 );                                 /* subtract Q10 stuff */
-        tmp   = SKP_SUB32( tmp, n_LF_Q10 );                                 /* subtract Q10 stuff */
-        r_Q10 = SKP_SUB32( x_sc_Q10[ i ], tmp );
-
-
-        /* Flip sign depending on dither */
-        r_Q10 = ( r_Q10 ^ dither ) - dither;
-        r_Q10 = SKP_SUB32( r_Q10, offset_Q10 );
-        r_Q10 = SKP_LIMIT( r_Q10, -64 &lt;&lt; 10, 64 &lt;&lt; 10 );
-
-        /* Quantize */
-        if( r_Q10 &lt; thr1_Q10 ) {
-            q_Q0 = SKP_RSHIFT_ROUND( SKP_ADD_RSHIFT32( r_Q10, Lambda_Q10, 1 ), 10 );
-            q_Q10 = SKP_LSHIFT( q_Q0, 10 );
-        } else if( r_Q10 &lt; thr2_Q10 ) {
-            q_Q0 = -1;
-
-
-
-
-
-            q_Q10 = -1024;
-        } else if( r_Q10 &gt; thr3_Q10 ) {
-            q_Q0 = SKP_RSHIFT_ROUND( SKP_SUB_RSHIFT32( r_Q10, Lambda_Q10, 1 ), 10 );
-            q_Q10 = SKP_LSHIFT( q_Q0, 10 );
-        } else {
-            q_Q0 = 0;
-            q_Q10 = 0;
-        }
-        q[ i ] = q_Q0;
-
-        /* Excitation */
-        exc_Q10 = SKP_ADD32( q_Q10, offset_Q10 );
-        exc_Q10 = ( exc_Q10 ^ dither ) - dither;
-
-        /* Add predictions */
-        LPC_exc_Q10 = SKP_ADD32( exc_Q10, SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );
-        xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
-
-        /* Scale XQ back to normal level before saving */
-        xq[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( xq_Q10, Gain_Q16 ), 10 ) );
-
-
-        /* Update states */
-        psLPC_Q14++;
-        *psLPC_Q14 = SKP_LSHIFT( xq_Q10, 4 );
-        sLF_AR_shp_Q10 = SKP_SUB32( xq_Q10, n_AR_Q10 );
-        NSQ-&gt;sLF_AR_shp_Q12 = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
-
-        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx ] = SKP_SUB32( sLF_AR_shp_Q10, n_LF_Q10 );
-        sLTP_Q16[NSQ-&gt;sLTP_buf_idx] = SKP_LSHIFT( LPC_exc_Q10, 6 );
-        NSQ-&gt;sLTP_shp_buf_idx++;
-        NSQ-&gt;sLTP_buf_idx++;
-
-        /* Make dither dependent on quantized signal */
-        NSQ-&gt;rand_seed += q[ i ];
-    }
-    /* Update LPC synth buffer */
-    SKP_memcpy( NSQ-&gt;sLPC_Q14, &amp;NSQ-&gt;sLPC_Q14[ length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
-}
-
-SKP_INLINE void SKP_Silk_nsq_scale_states(
-    SKP_Silk_nsq_state  *NSQ,               /* I/O NSQ state                        */
-    const SKP_int16     x[],                /* I input in Q0                        */
-    SKP_int32           x_sc_Q10[],         /* O input scaled with 1/Gain           */
-    SKP_int             length,             /* I length of input                    */
-    SKP_int16           sLTP[],             /* I re-whitened LTP state in Q0        */
-    SKP_int32           sLTP_Q16[],         /* O LTP state matching scaled input    */
-    SKP_int             subfr,              /* I subframe number                    */
-
-
-
-
-
-    const SKP_int       LTP_scale_Q14,      /* I                                    */
-    const SKP_int32     Gains_Q16[ NB_SUBFR ], /* I                                 */
-    const SKP_int       pitchL[ NB_SUBFR ]  /* I                                    */
-)
-{
-    SKP_int   i, scale_length, lag;
-    SKP_int32 inv_gain_Q16, gain_adj_Q16, inv_gain_Q32;
-
-    inv_gain_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gains_Q16[ subfr ], 1) );
-    inv_gain_Q16 = SKP_min( inv_gain_Q16, SKP_int16_MAX );
-    lag          = pitchL[ subfr ];
-
-    /* After rewhitening the LTP state is un-scaled */
-    if( NSQ-&gt;rewhite_flag ) {
-        inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
-        if( subfr == 0 ) {
-            /* Do LTP downscaling */
-            inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, LTP_scale_Q14 ), 2 );
-        }
-        for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
-            sLTP_Q16[ i ] = SKP_SMULWB( inv_gain_Q32, sLTP[ i ] );
-        }
-    }
-
-    /* Prepare for Worst case. Next frame starts with max lag voiced */
-    scale_length = length * NB_SUBFR;                                           /* approx max lag */
-    scale_length = scale_length - SKP_SMULBB( NB_SUBFR - (subfr + 1), length ); /* subtract samples that will be too old in next frame */
-    scale_length = SKP_max_int( scale_length, lag + LTP_ORDER );                /* make sure to scale whole pitch period if voiced */
-
-    /* Adjust for changing gain */
-    if( inv_gain_Q16 != NSQ-&gt;prev_inv_gain_Q16 ) {
-        gain_adj_Q16 =  SKP_DIV32_varQ( inv_gain_Q16, NSQ-&gt;prev_inv_gain_Q16, 16 );
-
-        for( i = NSQ-&gt;sLTP_shp_buf_idx - scale_length; i &lt; NSQ-&gt;sLTP_shp_buf_idx; i++ ) {
-            NSQ-&gt;sLTP_shp_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLTP_shp_Q10[ i ] );
-        }
-
-        /* Scale LTP predict state */
-        if( NSQ-&gt;rewhite_flag == 0 ) {
-            for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
-                sLTP_Q16[ i ] = SKP_SMULWW( gain_adj_Q16, sLTP_Q16[ i ] );
-            }
-        }
-        NSQ-&gt;sLF_AR_shp_Q12 = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLF_AR_shp_Q12 );
-
-        /* scale short term state */
-        for( i = 0; i &lt; MAX_LPC_ORDER; i++ ) {
-            NSQ-&gt;sLPC_Q14[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLPC_Q14[ i ] );
-
-
-
-
-
-        }
-    }
-
-    /* Scale input */
-    for( i = 0; i &lt; length; i++ ) {
-        x_sc_Q10[ i ] = SKP_RSHIFT( SKP_SMULBB( x[ i ], (SKP_int16)inv_gain_Q16 ), 6 );
-    }
-
-    /* save inv_gain */
-    SKP_assert( inv_gain_Q16 != 0 );
-    NSQ-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+SKP_INLINE void SKP_Silk_nsq_scale_states(
+    SKP_Silk_nsq_state  *NSQ,               /* I/O NSQ state                        */
+    const SKP_int16     x[],                /* I input in Q0                        */
+    SKP_int32           x_sc_Q10[],         /* O input scaled with 1/Gain           */
+    SKP_int             length,             /* I length of input                    */
+    SKP_int16           sLTP[],             /* I re-whitened LTP state in Q0        */
+    SKP_int32           sLTP_Q16[],         /* O LTP state matching scaled input    */
+    SKP_int             subfr,              /* I subframe number                    */
+    const SKP_int       LTP_scale_Q14,      /* I                                    */
+    const SKP_int32     Gains_Q16[ NB_SUBFR ], /* I                                 */
+    const SKP_int       pitchL[ NB_SUBFR ]  /* I                                    */
+);
+
+SKP_INLINE void SKP_Silk_noise_shape_quantizer(
+    SKP_Silk_nsq_state  *NSQ,               /* I/O  NSQ state                       */
+    SKP_int             sigtype,            /* I    Signal type                     */
+    const SKP_int32     x_sc_Q10[],         /* I                                    */
+    SKP_int             q[],                /* O                                    */
+    SKP_int16           xq[],               /* O                                    */
+    SKP_int32           sLTP_Q16[],         /* I/O  LTP state                       */
+    const SKP_int16     a_Q12[],            /* I    Short term prediction coefs     */
+    const SKP_int16     b_Q14[],            /* I    Long term prediction coefs      */
+    const SKP_int16     AR_shp_Q13[],       /* I    Noise shaping AR coefs          */
+    SKP_int             lag,                /* I    Pitch lag                       */
+    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                */
+    SKP_int             Tilt_Q14,           /* I    Spectral tilt                   */
+    SKP_int32           LF_shp_Q14,         /* I                                    */
+    SKP_int32           Gain_Q16,           /* I                                    */
+    SKP_int             Lambda_Q10,         /* I                                    */
+    SKP_int             offset_Q10,         /* I                                    */
+    SKP_int             length,             /* I    Input length                    */
+    SKP_int             shapingLPCOrder,    /* I    Noise shaping AR filter order   */
+    SKP_int             predictLPCOrder     /* I    Prediction filter order         */
+);
+
+void SKP_Silk_NSQ(
+    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
+    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
+    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
+    const SKP_int16                 x[],                                        /* I    prefiltered input signal            */
+    SKP_int                         q[],                                        /* O    quantized qulse signal              */
+    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
+    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Short term prediction coefficients  */
+    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    Long term prediction coefficients   */
+    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
+    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
+    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
+    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
+    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
+    const SKP_int                   Lambda_Q10,                                 /* I                                        */
+    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
+)
+{
+    SKP_int     k, lag, start_idx, subfr_length, LSF_interpolation_flag;
+    const SKP_int16 *A_Q12, *B_Q14, *AR_shp_Q13;
+    SKP_int16   *pxq;
+    SKP_int32   sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
+    SKP_int16   sLTP[     2 * MAX_FRAME_LENGTH ];
+    SKP_int32   HarmShapeFIRPacked_Q14;
+    SKP_int     offset_Q10;
+    SKP_int32   FiltState[ MAX_LPC_ORDER ];
+    SKP_int32   x_sc_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ];
+
+    subfr_length = psEncC-&gt;frame_length / NB_SUBFR;
+
+    NSQ-&gt;rand_seed  =  psEncCtrlC-&gt;Seed;
+    /* Set unvoiced lag to the previous one, overwrite later for voiced */
+    lag             = NSQ-&gt;lagPrev;
+
+    SKP_assert( NSQ-&gt;prev_inv_gain_Q16 != 0 );
+
+    offset_Q10 = SKP_Silk_Quantization_Offsets_Q10[ psEncCtrlC-&gt;sigtype ][ psEncCtrlC-&gt;QuantOffsetType ];
+
+    if( LSFInterpFactor_Q2 == ( 1 &lt;&lt; 2 ) ) {
+        LSF_interpolation_flag = 0;
+    } else {
+        LSF_interpolation_flag = 1;
+    }
+
+    /* Setup pointers to start of sub frame */
+    NSQ-&gt;sLTP_shp_buf_idx = psEncC-&gt;frame_length;
+    NSQ-&gt;sLTP_buf_idx     = psEncC-&gt;frame_length;
+    pxq                   = &amp;NSQ-&gt;xq[ psEncC-&gt;frame_length ];
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        A_Q12      = &amp;PredCoef_Q12[ (( k &gt;&gt; 1 ) | ( 1 - LSF_interpolation_flag )) * MAX_LPC_ORDER ];
+        B_Q14      = &amp;LTPCoef_Q14[ k * LTP_ORDER ];
+        AR_shp_Q13 = &amp;AR2_Q13[     k * SHAPE_LPC_ORDER_MAX ];
+
+        /* Noise shape parameters */
+        SKP_assert( HarmShapeGain_Q14[ k ] &gt;= 0 );
+        HarmShapeFIRPacked_Q14  =                        SKP_RSHIFT( HarmShapeGain_Q14[ k ], 2 );
+        HarmShapeFIRPacked_Q14 |= SKP_LSHIFT( ( SKP_int32 )SKP_RSHIFT( HarmShapeGain_Q14[ k ], 1 ), 16 );
+
+        if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
+            /* Voiced */
+            lag = psEncCtrlC-&gt;pitchL[ k ];
+
+            NSQ-&gt;rewhite_flag = 0;
+            /* Re-whitening */
+            if( ( k &amp; ( 3 - SKP_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) {
+                /* Rewhiten with new A coefs */
+                
+                start_idx = psEncC-&gt;frame_length - lag - psEncC-&gt;predictLPCOrder - LTP_ORDER / 2;
+                start_idx = SKP_LIMIT( start_idx, 0, psEncC-&gt;frame_length - psEncC-&gt;predictLPCOrder ); /* Limit */
+                
+                SKP_memset( FiltState, 0, psEncC-&gt;predictLPCOrder * sizeof( SKP_int32 ) );
+                SKP_Silk_MA_Prediction( &amp;NSQ-&gt;xq[ start_idx + k * ( psEncC-&gt;frame_length &gt;&gt; 2 ) ], 
+                    A_Q12, FiltState, sLTP + start_idx, psEncC-&gt;frame_length - start_idx, psEncC-&gt;predictLPCOrder );
+
+                NSQ-&gt;rewhite_flag = 1;
+                NSQ-&gt;sLTP_buf_idx = psEncC-&gt;frame_length;
+            }
+        }
+        
+        SKP_Silk_nsq_scale_states( NSQ, x, x_sc_Q10, psEncC-&gt;subfr_length, sLTP, 
+            sLTP_Q16, k, LTP_scale_Q14, Gains_Q16, psEncCtrlC-&gt;pitchL );
+
+        SKP_Silk_noise_shape_quantizer( NSQ, psEncCtrlC-&gt;sigtype, x_sc_Q10, q, pxq, sLTP_Q16, A_Q12, B_Q14, 
+            AR_shp_Q13, lag, HarmShapeFIRPacked_Q14, Tilt_Q14[ k ], LF_shp_Q14[ k ], Gains_Q16[ k ], Lambda_Q10, 
+            offset_Q10, psEncC-&gt;subfr_length, psEncC-&gt;shapingLPCOrder, psEncC-&gt;predictLPCOrder
+        );
+
+        x          += psEncC-&gt;subfr_length;
+        q          += psEncC-&gt;subfr_length;
+        pxq        += psEncC-&gt;subfr_length;
+    }
+
+    /* Save scalars for this layer */
+    NSQ-&gt;sLF_AR_shp_Q12             = NSQ-&gt;sLF_AR_shp_Q12;
+    NSQ-&gt;prev_inv_gain_Q16          = NSQ-&gt;prev_inv_gain_Q16;
+    NSQ-&gt;lagPrev                        = psEncCtrlC-&gt;pitchL[ NB_SUBFR - 1 ];
+    /* Save quantized speech and noise shaping signals */
+    SKP_memcpy( NSQ-&gt;xq,           &amp;NSQ-&gt;xq[           psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int16 ) );
+    SKP_memcpy( NSQ-&gt;sLTP_shp_Q10, &amp;NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int32 ) );
+
+}
+
+/***********************************/
+/* SKP_Silk_noise_shape_quantizer  */
+/***********************************/
+SKP_INLINE void SKP_Silk_noise_shape_quantizer(
+    SKP_Silk_nsq_state  *NSQ,               /* I/O  NSQ state                       */
+    SKP_int             sigtype,            /* I    Signal type                     */
+    const SKP_int32     x_sc_Q10[],         /* I                                    */
+    SKP_int             q[],                /* O                                    */
+    SKP_int16           xq[],               /* O                                    */
+    SKP_int32           sLTP_Q16[],         /* I/O  LTP state                       */
+    const SKP_int16     a_Q12[],            /* I    Short term prediction coefs     */
+    const SKP_int16     b_Q14[],            /* I    Long term prediction coefs      */
+    const SKP_int16     AR_shp_Q13[],       /* I    Noise shaping AR coefs          */
+    SKP_int             lag,                /* I    Pitch lag                       */
+    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                */
+    SKP_int             Tilt_Q14,           /* I    Spectral tilt                   */
+    SKP_int32           LF_shp_Q14,         /* I                                    */
+    SKP_int32           Gain_Q16,           /* I                                    */
+    SKP_int             Lambda_Q10,         /* I                                    */
+    SKP_int             offset_Q10,         /* I                                    */
+    SKP_int             length,             /* I    Input length                    */
+    SKP_int             shapingLPCOrder,    /* I    Noise shaping AR filter order   */
+    SKP_int             predictLPCOrder     /* I    Prediction filter order         */
+)
+{
+    SKP_int     i, j;
+    SKP_int32   LTP_pred_Q14, LPC_pred_Q10, n_AR_Q10, n_LTP_Q14;
+    SKP_int32   n_LF_Q10, r_Q10, q_Q0, q_Q10;
+    SKP_int32   thr1_Q10, thr2_Q10, thr3_Q10;
+    SKP_int32   Atmp, dither;
+    SKP_int32   exc_Q10, LPC_exc_Q10, xq_Q10;
+    SKP_int32   tmp, sLF_AR_shp_Q10;
+    SKP_int32   *psLPC_Q14;
+    SKP_int32   *shp_lag_ptr, *pred_lag_ptr;
+    SKP_int32   a_Q12_tmp[ MAX_LPC_ORDER / 2 ], AR_shp_Q13_tmp[ MAX_LPC_ORDER / 2 ];
+
+    shp_lag_ptr  = &amp;NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ];
+    pred_lag_ptr = &amp;sLTP_Q16[ NSQ-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
+    
+    /* Setup short term AR state */
+    psLPC_Q14     = &amp;NSQ-&gt;sLPC_Q14[ MAX_LPC_ORDER - 1 ];
+
+    /* Quantization thresholds */
+    thr1_Q10 = SKP_SUB_RSHIFT32( -1536, Lambda_Q10, 1);
+    thr2_Q10 = SKP_SUB_RSHIFT32( -512,  Lambda_Q10, 1);
+    thr2_Q10 = SKP_ADD_RSHIFT32( thr2_Q10, SKP_SMULBB( offset_Q10, Lambda_Q10 ), 10 );
+    thr3_Q10 = SKP_ADD_RSHIFT32(  512,  Lambda_Q10, 1);
+    
+    /* Preload LPC coeficients to array on stack. Gives small performance gain */
+    SKP_memcpy( a_Q12_tmp, a_Q12, predictLPCOrder * sizeof( SKP_int16 ) );
+    SKP_memcpy( AR_shp_Q13_tmp, AR_shp_Q13, shapingLPCOrder * sizeof( SKP_int16 ) );
+    
+    for( i = 0; i &lt; length; i++ ) {
+        /* Generate dither */
+        NSQ-&gt;rand_seed = SKP_RAND( NSQ-&gt;rand_seed );
+
+        /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
+        dither = SKP_RSHIFT( NSQ-&gt;rand_seed, 31 );
+                
+        /* Short-term prediction */
+        SKP_assert( ( predictLPCOrder  &amp; 1 ) == 0 );    /* check that order is even */
+        SKP_assert( ( (SKP_int64)a_Q12 &amp; 3 ) == 0 );    /* check that array starts at 4-byte aligned address */
+        SKP_assert( predictLPCOrder &gt;= 10 );            /* check that unrolling works */
+
+        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+        /* Partially unrolled */
+        Atmp = a_Q12_tmp[ 0 ];      /* read two coefficients at once */
+        LPC_pred_Q10 = SKP_SMULWB(               psLPC_Q14[ 0  ], Atmp );
+        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -1 ], Atmp );
+        Atmp = a_Q12_tmp[ 1 ];
+        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -2 ], Atmp );
+        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -3 ], Atmp );
+        Atmp = a_Q12_tmp[ 2 ];
+        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -4 ], Atmp );
+        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -5 ], Atmp );
+        Atmp = a_Q12_tmp[ 3 ];
+        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -6 ], Atmp );
+        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -7 ], Atmp );
+        Atmp = a_Q12_tmp[ 4 ];
+        LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -8 ], Atmp );
+        LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -9 ], Atmp );
+        for( j = 10; j &lt; predictLPCOrder; j += 2 ) {
+            Atmp = a_Q12_tmp[ j &gt;&gt; 1 ];     /* read two coefficients at once */
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -j     ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -j - 1 ], Atmp );
+        }
+
+        /* Long-term prediction */
+        if( sigtype == SIG_TYPE_VOICED ) {
+            /* Unrolled loop */
+            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], b_Q14[ 0 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], b_Q14[ 1 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], b_Q14[ 2 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], b_Q14[ 3 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], b_Q14[ 4 ] );
+            pred_lag_ptr++;
+        } else {
+            LTP_pred_Q14 = 0;
+        }
+
+        /* Noise shape feedback */
+        SKP_assert( ( shapingLPCOrder       &amp; 1 ) == 0 );   /* check that order is even */
+        SKP_assert( ( (SKP_int64)AR_shp_Q13 &amp; 3 ) == 0 );   /* check that array starts at 4-byte aligned address */
+        SKP_assert( shapingLPCOrder &gt;= 12 );                /* check that unrolling works */
+
+        /* Partially unrolled */
+        Atmp = AR_shp_Q13_tmp[ 0 ];     /* read two coefficients at once */
+        n_AR_Q10 = SKP_SMULWB(           psLPC_Q14[ 0  ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -1 ], Atmp );
+        Atmp = AR_shp_Q13_tmp[ 1 ];
+        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -2 ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -3 ], Atmp );
+        Atmp = AR_shp_Q13_tmp[ 2 ];
+        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -4 ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -5 ], Atmp );
+        Atmp = AR_shp_Q13_tmp[ 3 ];
+        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -6 ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -7 ], Atmp );
+        Atmp = AR_shp_Q13_tmp[ 4 ];
+        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -8 ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -9 ], Atmp );
+        Atmp = AR_shp_Q13_tmp[ 5 ];
+        n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -10 ], Atmp );
+        n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -11 ], Atmp );
+        for( j = 12; j &lt; shapingLPCOrder; j += 2 ) {
+            Atmp = AR_shp_Q13_tmp[ j &gt;&gt; 1 ];        /* read two coefficients at once */
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -j     ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -j - 1 ], Atmp );
+        }
+        n_AR_Q10 = SKP_RSHIFT( n_AR_Q10, 1 );   /* Q11 -&gt; Q10 */
+        n_AR_Q10  = SKP_SMLAWB( n_AR_Q10, NSQ-&gt;sLF_AR_shp_Q12, Tilt_Q14 );
+
+        n_LF_Q10   = SKP_LSHIFT( SKP_SMULWB( NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - 1 ], LF_shp_Q14 ), 2 ); 
+        n_LF_Q10   = SKP_SMLAWT( n_LF_Q10, NSQ-&gt;sLF_AR_shp_Q12, LF_shp_Q14 );
+
+        SKP_assert( lag &gt; 0 || sigtype == SIG_TYPE_UNVOICED);
+
+        /* Long-term shaping */
+        if( lag &gt; 0 ) {
+            /* Symmetric, packed FIR coefficients */
+            n_LTP_Q14 = SKP_SMULWB( SKP_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
+            n_LTP_Q14 = SKP_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ],                     HarmShapeFIRPacked_Q14 );
+            shp_lag_ptr++;
+            n_LTP_Q14 = SKP_LSHIFT( n_LTP_Q14, 6 );
+        } else {
+            n_LTP_Q14 = 0;
+        }
+
+        /* Input minus prediction plus noise feedback  */
+        //r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP;
+        tmp   = SKP_SUB32( LTP_pred_Q14, n_LTP_Q14 );                       /* Add Q14 stuff */
+        tmp   = SKP_RSHIFT_ROUND( tmp, 4 );                                 /* round to Q10  */
+        tmp   = SKP_ADD32( tmp, LPC_pred_Q10 );                             /* add Q10 stuff */ 
+        tmp   = SKP_SUB32( tmp, n_AR_Q10 );                                 /* subtract Q10 stuff */ 
+        tmp   = SKP_SUB32( tmp, n_LF_Q10 );                                 /* subtract Q10 stuff */ 
+        r_Q10 = SKP_SUB32( x_sc_Q10[ i ], tmp );
+
+
+        /* Flip sign depending on dither */
+        r_Q10 = ( r_Q10 ^ dither ) - dither;
+        r_Q10 = SKP_SUB32( r_Q10, offset_Q10 );
+        r_Q10 = SKP_LIMIT( r_Q10, -64 &lt;&lt; 10, 64 &lt;&lt; 10 );
+
+        /* Quantize */
+        if( r_Q10 &lt; thr1_Q10 ) {
+            q_Q0 = SKP_RSHIFT_ROUND( SKP_ADD_RSHIFT32( r_Q10, Lambda_Q10, 1 ), 10 );
+            q_Q10 = SKP_LSHIFT( q_Q0, 10 );
+        } else if( r_Q10 &lt; thr2_Q10 ) {
+            q_Q0 = -1;
+            q_Q10 = -1024;
+        } else if( r_Q10 &gt; thr3_Q10 ) {
+            q_Q0 = SKP_RSHIFT_ROUND( SKP_SUB_RSHIFT32( r_Q10, Lambda_Q10, 1 ), 10 );
+            q_Q10 = SKP_LSHIFT( q_Q0, 10 );
+        } else {
+            q_Q0 = 0;
+            q_Q10 = 0;
+        }
+        q[ i ] = q_Q0;
+
+        /* Excitation */
+        exc_Q10 = SKP_ADD32( q_Q10, offset_Q10 );
+        exc_Q10 = ( exc_Q10 ^ dither ) - dither;
+
+        /* Add predictions */
+        LPC_exc_Q10 = SKP_ADD32( exc_Q10, SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );
+        xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
+        
+        /* Scale XQ back to normal level before saving */
+        xq[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( xq_Q10, Gain_Q16 ), 10 ) );
+        
+        
+        /* Update states */
+        psLPC_Q14++;
+        *psLPC_Q14 = SKP_LSHIFT( xq_Q10, 4 );
+        sLF_AR_shp_Q10 = SKP_SUB32( xq_Q10, n_AR_Q10 );
+        NSQ-&gt;sLF_AR_shp_Q12 = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
+
+        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx ] = SKP_SUB32( sLF_AR_shp_Q10, n_LF_Q10 );
+        sLTP_Q16[NSQ-&gt;sLTP_buf_idx] = SKP_LSHIFT( LPC_exc_Q10, 6 );
+        NSQ-&gt;sLTP_shp_buf_idx++;
+        NSQ-&gt;sLTP_buf_idx++;
+
+        /* Make dither dependent on quantized signal */
+        NSQ-&gt;rand_seed += q[ i ];
+    }
+    /* Update LPC synth buffer */
+    SKP_memcpy( NSQ-&gt;sLPC_Q14, &amp;NSQ-&gt;sLPC_Q14[ length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
+}
+
+SKP_INLINE void SKP_Silk_nsq_scale_states(
+    SKP_Silk_nsq_state  *NSQ,               /* I/O NSQ state                        */
+    const SKP_int16     x[],                /* I input in Q0                        */
+    SKP_int32           x_sc_Q10[],         /* O input scaled with 1/Gain           */
+    SKP_int             length,             /* I length of input                    */
+    SKP_int16           sLTP[],             /* I re-whitened LTP state in Q0        */
+    SKP_int32           sLTP_Q16[],         /* O LTP state matching scaled input    */
+    SKP_int             subfr,              /* I subframe number                    */
+    const SKP_int       LTP_scale_Q14,      /* I                                    */
+    const SKP_int32     Gains_Q16[ NB_SUBFR ], /* I                                 */
+    const SKP_int       pitchL[ NB_SUBFR ]  /* I                                    */
+)
+{
+    SKP_int   i, scale_length, lag;
+    SKP_int32 inv_gain_Q16, gain_adj_Q16, inv_gain_Q32;
+
+    inv_gain_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gains_Q16[ subfr ], 1) );
+    inv_gain_Q16 = SKP_min( inv_gain_Q16, SKP_int16_MAX );
+    lag          = pitchL[ subfr ];
+
+    /* After rewhitening the LTP state is un-scaled */
+    if( NSQ-&gt;rewhite_flag ) {
+        inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
+        if( subfr == 0 ) {
+            /* Do LTP downscaling */
+            inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, LTP_scale_Q14 ), 2 );
+        }
+        for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
+            sLTP_Q16[ i ] = SKP_SMULWB( inv_gain_Q32, sLTP[ i ] );
+        }
+    }
+
+    /* Prepare for Worst case. Next frame starts with max lag voiced */
+    scale_length = length * NB_SUBFR;                                           /* approx max lag */
+    scale_length = scale_length - SKP_SMULBB( NB_SUBFR - (subfr + 1), length ); /* subtract samples that will be too old in next frame */
+    scale_length = SKP_max_int( scale_length, lag + LTP_ORDER );                /* make sure to scale whole pitch period if voiced */
+
+    /* Adjust for changing gain */
+    if( inv_gain_Q16 != NSQ-&gt;prev_inv_gain_Q16 ) {
+        gain_adj_Q16 =  SKP_DIV32_varQ( inv_gain_Q16, NSQ-&gt;prev_inv_gain_Q16, 16 );
+
+        for( i = NSQ-&gt;sLTP_shp_buf_idx - scale_length; i &lt; NSQ-&gt;sLTP_shp_buf_idx; i++ ) {
+            NSQ-&gt;sLTP_shp_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLTP_shp_Q10[ i ] );
+        }
+
+        /* Scale LTP predict state */
+        if( NSQ-&gt;rewhite_flag == 0 ) {
+            for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
+                sLTP_Q16[ i ] = SKP_SMULWW( gain_adj_Q16, sLTP_Q16[ i ] );
+            }
+        }
+        NSQ-&gt;sLF_AR_shp_Q12 = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLF_AR_shp_Q12 );
+
+        /* scale short term state */
+        for( i = 0; i &lt; MAX_LPC_ORDER; i++ ) {
+            NSQ-&gt;sLPC_Q14[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLPC_Q14[ i ] );
+        }
+    }
+
+    /* Scale input */
+    for( i = 0; i &lt; length; i++ ) {
+        x_sc_Q10[ i ] = SKP_RSHIFT( SKP_SMULBB( x[ i ], ( SKP_int16 )inv_gain_Q16 ), 6 );
+    }
+
+    /* save inv_gain */
+    SKP_assert( inv_gain_Q16 != 0 );
+    NSQ-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_NSQ_del_decc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ_del_dec.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ_del_dec.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_NSQ_del_dec.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,803 +1,722 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-
-
-
-
-
-typedef struct {
-    SKP_int   RandState[ DECISION_DELAY ];
-    SKP_int32 Q_Q10[     DECISION_DELAY ];
-    SKP_int32 Xq_Q10[    DECISION_DELAY ];
-    SKP_int32 Pred_Q16[  DECISION_DELAY ];
-    SKP_int32 Shape_Q10[ DECISION_DELAY ];
-    SKP_int32 Gain_Q16[  DECISION_DELAY ];
-    SKP_int32 sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + NSQ_LPC_BUF_LENGTH ];
-    SKP_int32 LF_AR_Q12;
-    SKP_int32 Seed;
-    SKP_int32 SeedInit;
-    SKP_int32 RD_Q10;
-} NSQ_del_dec_struct;
-
-typedef struct {
-    SKP_int32 Q_Q10;
-    SKP_int32 RD_Q10;
-    SKP_int32 xq_Q14;
-    SKP_int32 LF_AR_Q12;
-    SKP_int32 sLTP_shp_Q10;
-    SKP_int32 LPC_exc_Q16;
-} NSQ_sample_struct;
-
-SKP_INLINE void SKP_Silk_copy_del_dec_state(
-    NSQ_del_dec_struct  *DD_dst,                /* I    Dst del dec state                   */
-    NSQ_del_dec_struct  *DD_src,                /* I    Src del dec state                   */
-    SKP_int             LPC_state_idx           /* I    Index to LPC buffer                 */
-);
-
-SKP_INLINE void SKP_Silk_nsq_del_dec_scale_states(
-    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
-    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
-    const SKP_int16     x[],                    /* I    Input in Q0                         */
-    SKP_int32           x_sc_Q10[],             /* O    Input scaled with 1/Gain in Q10     */
-    SKP_int             length,                 /* I    Length of input                     */
-    SKP_int16           sLTP[],                 /* I    Re-whitened LTP state in Q0         */
-    SKP_int32           sLTP_Q16[],             /* O    LTP state matching scaled input     */
-    SKP_int             subfr,                  /* I    Subframe number                     */
-    SKP_int             nStatesDelayedDecision, /* I    Number of del dec states            */
-    SKP_int             smpl_buf_idx,           /* I    Index to newest samples in buffers  */
-    const SKP_int       LTP_scale_Q14,          /* I    LTP state scaling                   */
-    const SKP_int32     Gains_Q16[ NB_SUBFR ],  /* I                                        */
-    const SKP_int       pitchL[ NB_SUBFR ]      /* I    Pitch lag                           */
-);
-
-/******************************************/
-/* Noise shape quantizer for one subframe */
-/******************************************/
-
-
-
-
-
-SKP_INLINE void SKP_Silk_noise_shape_quantizer_del_dec(
-    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
-    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
-    SKP_int             sigtype,                /* I    Signal type                         */
-    const SKP_int32     x_Q10[],                /* I                                        */
-    SKP_int             q[],                    /* O                                        */
-    SKP_int16           xq[],                   /* O                                        */
-    SKP_int32           sLTP_Q16[],             /* I/O  LTP filter state                    */
-    const SKP_int16     a_Q12[],                /* I    Short term prediction coefs         */
-    const SKP_int16     b_Q14[],                /* I    Long term prediction coefs          */
-    const SKP_int16     AR_shp_Q13[],           /* I    Noise shaping coefs                 */
-    SKP_int             lag,                    /* I    Pitch lag                           */
-    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                        */
-    SKP_int             Tilt_Q14,               /* I    Spectral tilt                       */
-    SKP_int32           LF_shp_Q14,             /* I                                        */
-    SKP_int32           Gain_Q16,               /* I                                        */
-    SKP_int             Lambda_Q10,             /* I                                        */
-    SKP_int             offset_Q10,             /* I                                        */
-    SKP_int             length,                 /* I    Input length                        */
-    SKP_int             subfr,                  /* I    Subframe number                     */
-    SKP_int             shapingLPCOrder,        /* I    Shaping LPC filter order            */
-    SKP_int             predictLPCOrder,        /* I    Prediction LPC filter order         */
-    SKP_int             nStatesDelayedDecision, /* I    Number of states in decision tree   */
-    SKP_int             *smpl_buf_idx,          /* I    Index to newest samples in buffers  */
-    SKP_int             decisionDelay           /* I                                        */
-);
-
-void SKP_Silk_NSQ_del_dec(
-    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
-    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
-    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
-    const SKP_int16                 x[],                                        /* I    Prefiltered input signal            */
-    SKP_int                         q[],                                        /* O    Quantized pulse signal              */
-    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
-    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Prediction coefs                    */
-    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    LT prediction coefs                 */
-    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
-    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
-    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
-    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
-    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
-    const SKP_int                   Lambda_Q10,                                 /* I                                        */
-    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
-)
-{
-    SKP_int     i, k, lag, start_idx, LSF_interpolation_flag, Winner_ind, subfr;
-    SKP_int     last_smple_idx, smpl_buf_idx, decisionDelay, subfr_length;
-    const SKP_int16 *A_Q12, *B_Q14, *AR_shp_Q13;
-
-
-
-
-
-    SKP_int16   *pxq;
-    SKP_int32   sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
-    SKP_int16   sLTP[     2 * MAX_FRAME_LENGTH ];
-    SKP_int32   HarmShapeFIRPacked_Q14;
-    SKP_int     offset_Q10;
-    SKP_int32   FiltState[ MAX_LPC_ORDER ], RDmin_Q10;
-    SKP_int32   x_sc_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ];
-    NSQ_del_dec_struct psDelDec[ DEL_DEC_STATES_MAX ];
-    NSQ_del_dec_struct *psDD;
-
-    subfr_length = psEncC-&gt;frame_length / NB_SUBFR;
-
-    /* Set unvoiced lag to the previous one, overwrite later for voiced */
-    lag = NSQ-&gt;lagPrev;
-
-    SKP_assert( NSQ-&gt;prev_inv_gain_Q16 != 0 );
-
-    /* Initialize delayed decision states */
-    SKP_memset( psDelDec, 0, psEncC-&gt;nStatesDelayedDecision * sizeof( NSQ_del_dec_struct ) );
-    for( k = 0; k &lt; psEncC-&gt;nStatesDelayedDecision; k++ ) {
-        psDD                 = &amp;psDelDec[ k ];
-        psDD-&gt;Seed           = ( k + psEncCtrlC-&gt;Seed ) &amp; 3;
-        psDD-&gt;SeedInit       = psDD-&gt;Seed;
-        psDD-&gt;RD_Q10         = 0;
-        psDD-&gt;LF_AR_Q12      = NSQ-&gt;sLF_AR_shp_Q12;
-        psDD-&gt;Shape_Q10[ 0 ] = NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length - 1 ];
-        SKP_memcpy( psDD-&gt;sLPC_Q14, NSQ-&gt;sLPC_Q14, NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
-    }
-
-    offset_Q10   = SKP_Silk_Quantization_Offsets_Q10[ psEncCtrlC-&gt;sigtype ][ psEncCtrlC-&gt;QuantOffsetType ];
-    smpl_buf_idx = 0; /* index of oldest samples */
-
-    decisionDelay = SKP_min_int( DECISION_DELAY, subfr_length );
-    /* For voiced frames limit the decision delay to lower than the pitch lag */
-    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            decisionDelay = SKP_min_int( decisionDelay, psEncCtrlC-&gt;pitchL[ k ] - LTP_ORDER / 2 - 1 );
-        }
-    }
-
-    if( LSFInterpFactor_Q2 == ( 1 &lt;&lt; 2 ) ) {
-        LSF_interpolation_flag = 0;
-    } else {
-        LSF_interpolation_flag = 1;
-    }
-
-    /* Setup pointers to start of sub frame */
-    pxq                   = &amp;NSQ-&gt;xq[ psEncC-&gt;frame_length ];
-
-
-
-
-
-    NSQ-&gt;sLTP_shp_buf_idx = psEncC-&gt;frame_length;
-    NSQ-&gt;sLTP_buf_idx     = psEncC-&gt;frame_length;
-    subfr = 0;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        A_Q12      = &amp;PredCoef_Q12[ ( ( k &gt;&gt; 1 ) | ( 1 - LSF_interpolation_flag ) ) * MAX_LPC_ORDER ];
-        B_Q14      = &amp;LTPCoef_Q14[ k * LTP_ORDER           ];
-        AR_shp_Q13 = &amp;AR2_Q13[     k * SHAPE_LPC_ORDER_MAX ];
-
-        NSQ-&gt;rewhite_flag = 0;
-        if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
-            /* Voiced */
-            lag = psEncCtrlC-&gt;pitchL[ k ];
-
-            /* Re-whitening */
-            if( ( k &amp; ( 3 - SKP_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) {
-                if( k == 2 ) {
-                    /* RESET DELAYED DECISIONS */
-                    /* Find winner */
-                    RDmin_Q10 = psDelDec[ 0 ].RD_Q10;
-                    Winner_ind = 0;
-                    for( i = 1; i &lt; psEncC-&gt;nStatesDelayedDecision; i++ ) {
-                        if( psDelDec[ i ].RD_Q10 &lt; RDmin_Q10 ) {
-                            RDmin_Q10 = psDelDec[ i ].RD_Q10;
-                            Winner_ind = i;
-                        }
-                    }
-                    for( i = 0; i &lt; psEncC-&gt;nStatesDelayedDecision; i++ ) {
-                        if( i != Winner_ind ) {
-                            psDelDec[ i ].RD_Q10 += ( SKP_int32_MAX &gt;&gt; 4 );
-                            SKP_assert( psDelDec[ i ].RD_Q10 &gt;= 0 );
-                        }
-                    }
-
-                    /* Copy final part of signals from winner state to output and long-term filter states */
-                    psDD = &amp;psDelDec[ Winner_ind ];
-                    last_smple_idx = smpl_buf_idx + decisionDelay;
-                    for( i = 0; i &lt; decisionDelay; i++ ) {
-                        last_smple_idx = ( last_smple_idx - 1 ) &amp; DECISION_DELAY_MASK;
-                        q[   i - decisionDelay ] = (SKP_int)SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
-                        pxq[ i - decisionDelay ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND(
-                            SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ],
-                            psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
-                        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay + i ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
-                    }
-
-                    subfr = 0;
-                }
-
-
-
-
-
-
-                /* Rewhiten with new A coefs */
-                start_idx = psEncC-&gt;frame_length - lag - psEncC-&gt;predictLPCOrder - LTP_ORDER / 2;
-                start_idx = SKP_LIMIT( start_idx, 0, psEncC-&gt;frame_length - psEncC-&gt;predictLPCOrder );
-
-                SKP_memset( FiltState, 0, psEncC-&gt;predictLPCOrder * sizeof( SKP_int32 ) );
-                SKP_Silk_MA_Prediction( &amp;NSQ-&gt;xq[ start_idx + k * psEncC-&gt;subfr_length ],
-                    A_Q12, FiltState, sLTP + start_idx, psEncC-&gt;frame_length - start_idx, psEncC-&gt;predictLPCOrder );
-
-                NSQ-&gt;sLTP_buf_idx = psEncC-&gt;frame_length;
-                NSQ-&gt;rewhite_flag = 1;
-            }
-        }
-
-        /* Noise shape parameters */
-        SKP_assert( HarmShapeGain_Q14[ k ] &gt;= 0 );
-        HarmShapeFIRPacked_Q14  =                        SKP_RSHIFT( HarmShapeGain_Q14[ k ], 2 );
-        HarmShapeFIRPacked_Q14 |= SKP_LSHIFT( (SKP_int32)SKP_RSHIFT( HarmShapeGain_Q14[ k ], 1 ), 16 );
-
-        SKP_Silk_nsq_del_dec_scale_states( NSQ, psDelDec, x, x_sc_Q10,
-            subfr_length, sLTP, sLTP_Q16, k, psEncC-&gt;nStatesDelayedDecision, smpl_buf_idx,
-            LTP_scale_Q14, Gains_Q16, psEncCtrlC-&gt;pitchL );
-
-        SKP_Silk_noise_shape_quantizer_del_dec( NSQ, psDelDec, psEncCtrlC-&gt;sigtype, x_sc_Q10, q, pxq, sLTP_Q16,
-            A_Q12, B_Q14, AR_shp_Q13, lag, HarmShapeFIRPacked_Q14, Tilt_Q14[ k ], LF_shp_Q14[ k ], Gains_Q16[ k ],
-            Lambda_Q10, offset_Q10, psEncC-&gt;subfr_length, subfr++, psEncC-&gt;shapingLPCOrder, psEncC-&gt;predictLPCOrder,
-            psEncC-&gt;nStatesDelayedDecision, &amp;smpl_buf_idx, decisionDelay
-        );
-
-        x   += psEncC-&gt;subfr_length;
-        q   += psEncC-&gt;subfr_length;
-        pxq += psEncC-&gt;subfr_length;
-    }
-
-    /* Find winner */
-    RDmin_Q10 = psDelDec[ 0 ].RD_Q10;
-    Winner_ind = 0;
-    for( k = 1; k &lt; psEncC-&gt;nStatesDelayedDecision; k++ ) {
-        if( psDelDec[ k ].RD_Q10 &lt; RDmin_Q10 ) {
-            RDmin_Q10 = psDelDec[ k ].RD_Q10;
-            Winner_ind = k;
-        }
-    }
-
-    /* Copy final part of signals from winner state to output and long-term filter states */
-    psDD = &amp;psDelDec[ Winner_ind ];
-    psEncCtrlC-&gt;Seed = psDD-&gt;SeedInit;
-    last_smple_idx = smpl_buf_idx + decisionDelay;
-    for( i = 0; i &lt; decisionDelay; i++ ) {
-
-
-
-
-
-        last_smple_idx = ( last_smple_idx - 1 ) &amp; DECISION_DELAY_MASK;
-        q[   i - decisionDelay ] = (SKP_int)SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
-        pxq[ i - decisionDelay ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND(
-            SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ], psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
-        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay + i ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
-        sLTP_Q16[          NSQ-&gt;sLTP_buf_idx     - decisionDelay + i ] = psDD-&gt;Pred_Q16[  last_smple_idx ];
-
-    }
-    SKP_memcpy( NSQ-&gt;sLPC_Q14, &amp;psDD-&gt;sLPC_Q14[ psEncC-&gt;subfr_length ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
-
-    /* Update states */
-    NSQ-&gt;sLF_AR_shp_Q12    = psDD-&gt;LF_AR_Q12;
-    NSQ-&gt;prev_inv_gain_Q16 = NSQ-&gt;prev_inv_gain_Q16;
-    NSQ-&gt;lagPrev           = psEncCtrlC-&gt;pitchL[ NB_SUBFR - 1 ];
-
-    /* Save quantized speech and noise shaping signals */
-    SKP_memcpy( NSQ-&gt;xq,           &amp;NSQ-&gt;xq[           psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int16 ) );
-    SKP_memcpy( NSQ-&gt;sLTP_shp_Q10, &amp;NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int32 ) );
-
-}
-
-/******************************************/
-/* Noise shape quantizer for one subframe */
-/******************************************/
-SKP_INLINE void SKP_Silk_noise_shape_quantizer_del_dec(
-    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
-    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
-    SKP_int             sigtype,                /* I    Signal type                         */
-    const SKP_int32     x_Q10[],                /* I                                        */
-    SKP_int             q[],                    /* O                                        */
-    SKP_int16           xq[],                   /* O                                        */
-    SKP_int32           sLTP_Q16[],             /* I/O  LTP filter state                    */
-    const SKP_int16     a_Q12[],                /* I    Short term prediction coefs         */
-    const SKP_int16     b_Q14[],                /* I    Long term prediction coefs          */
-    const SKP_int16     AR_shp_Q13[],           /* I    Noise shaping coefs                 */
-    SKP_int             lag,                    /* I    Pitch lag                           */
-    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                        */
-    SKP_int             Tilt_Q14,               /* I    Spectral tilt                       */
-    SKP_int32           LF_shp_Q14,             /* I                                        */
-    SKP_int32           Gain_Q16,               /* I                                        */
-    SKP_int             Lambda_Q10,             /* I                                        */
-    SKP_int             offset_Q10,             /* I                                        */
-    SKP_int             length,                 /* I    Input length                        */
-    SKP_int             subfr,                  /* I    Subframe number                     */
-    SKP_int             shapingLPCOrder,        /* I    Shaping LPC filter order            */
-    SKP_int             predictLPCOrder,        /* I    Prediction LPC filter order         */
-    SKP_int             nStatesDelayedDecision, /* I    Number of states in decision tree   */
-    SKP_int             *smpl_buf_idx,          /* I    Index to newest samples in buffers  */
-
-
-
-
-
-    SKP_int             decisionDelay           /* I                                        */
-)
-{
-    SKP_int     i, j, k, Winner_ind, RDmin_ind, RDmax_ind, last_smple_idx;
-    SKP_int32   Winner_rand_state;
-    SKP_int32   LTP_pred_Q14, LPC_pred_Q10, n_AR_Q10, n_LTP_Q14;
-    SKP_int32   n_LF_Q10;
-    SKP_int32   r_Q10, rr_Q20, rd1_Q10, rd2_Q10, RDmin_Q10, RDmax_Q10;
-    SKP_int32   q1_Q10, q2_Q10;
-    SKP_int32   Atmp, dither;
-    SKP_int32   exc_Q10, LPC_exc_Q10, xq_Q10;
-    SKP_int32   tmp, sLF_AR_shp_Q10;
-    SKP_int32   *pred_lag_ptr, *shp_lag_ptr;
-    SKP_int32   *psLPC_Q14;
-    SKP_int32   a_Q12_tmp[ MAX_LPC_ORDER / 2 ], AR_shp_Q13_tmp[ MAX_LPC_ORDER / 2 ];
-    NSQ_sample_struct  psSampleState[ DEL_DEC_STATES_MAX ][ 2 ];
-    NSQ_del_dec_struct *psDD;
-    NSQ_sample_struct  *psSS;
-
-    shp_lag_ptr  = &amp;NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ];
-    pred_lag_ptr = &amp;sLTP_Q16[ NSQ-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
-
-    /* Preload LPC coeficients to array on stack. Gives small performance gain */
-    SKP_memcpy( a_Q12_tmp, a_Q12, predictLPCOrder * sizeof(SKP_int16) );
-    SKP_memcpy( AR_shp_Q13_tmp, AR_shp_Q13, shapingLPCOrder * sizeof(SKP_int16) );
-
-    for( i = 0; i &lt; length; i++ ) {
-        /* Perform common calculations used in all states */
-
-        /* Long-term prediction */
-        if( sigtype == SIG_TYPE_VOICED ) {
-            /* Unrolled loop */
-            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], b_Q14[ 0 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], b_Q14[ 1 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], b_Q14[ 2 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], b_Q14[ 3 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], b_Q14[ 4 ] );
-            pred_lag_ptr++;
-        } else {
-            LTP_pred_Q14 = 0;
-        }
-
-        /* Long-term shaping */
-        if( lag &gt; 0 ) {
-            /* Symmetric, packed FIR coefficients */
-            n_LTP_Q14 = SKP_SMULWB( SKP_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
-            n_LTP_Q14 = SKP_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ],                     HarmShapeFIRPacked_Q14 );
-            n_LTP_Q14 = SKP_LSHIFT( n_LTP_Q14, 6 );
-
-
-
-
-
-            shp_lag_ptr++;
-        } else {
-            n_LTP_Q14 = 0;
-        }
-
-        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
-            /* Delayed decision state */
-            psDD = &amp;psDelDec[ k ];
-
-            /* Sample state */
-            psSS = psSampleState[ k ];
-
-            /* Generate dither */
-            psDD-&gt;Seed = SKP_RAND( psDD-&gt;Seed );
-
-            /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
-            dither = SKP_RSHIFT( psDD-&gt;Seed, 31 );
-
-            /* Pointer used in short term prediction and shaping */
-            psLPC_Q14 = &amp;psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - 1 + i ];
-            /* Short-term prediction */
-            SKP_assert( ( predictLPCOrder  &amp; 1 ) == 0 );    /* check that order is even */
-            SKP_assert( ( (SKP_int64)a_Q12 &amp; 3 ) == 0 );    /* check that array starts at 4-byte aligned address */
-            SKP_assert( predictLPCOrder &gt;= 10 );            /* check that unrolling works */
-
-            /* Partially unrolled */
-            Atmp = a_Q12_tmp[ 0 ];          /* read two coefficients at once */
-            LPC_pred_Q10 = SKP_SMULWB(               psLPC_Q14[ 0  ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -1 ], Atmp );
-            Atmp = a_Q12_tmp[ 1 ];
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -2 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -3 ], Atmp );
-            Atmp = a_Q12_tmp[ 2 ];
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -4 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -5 ], Atmp );
-            Atmp = a_Q12_tmp[ 3 ];
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -6 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -7 ], Atmp );
-            Atmp = a_Q12_tmp[ 4 ];
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -8 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -9 ], Atmp );
-            for( j = 10; j &lt; predictLPCOrder; j += 2 ) {
-                Atmp = a_Q12_tmp[ j &gt;&gt; 1 ]; /* read two coefficients at once */
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -j     ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -j - 1 ], Atmp );
-            }
-
-            /* Noise shape feedback */
-
-
-
-
-
-            SKP_assert( ( shapingLPCOrder       &amp; 1 ) == 0 );   /* check that order is even */
-            SKP_assert( ( (SKP_int64)AR_shp_Q13 &amp; 3 ) == 0 );   /* check that array starts at 4-byte aligned address */
-            SKP_assert( shapingLPCOrder &gt;= 12 );                /* check that unrolling works */
-            /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-            /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-            /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-            /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-
-            /* Partially unrolled */
-            Atmp = AR_shp_Q13_tmp[ 0 ];         /* read two coefficients at once */
-            n_AR_Q10 = SKP_SMULWB(           psLPC_Q14[ 0  ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -1 ], Atmp );
-            Atmp = AR_shp_Q13_tmp[ 1 ];
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -2 ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -3 ], Atmp );
-            Atmp = AR_shp_Q13_tmp[ 2 ];
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -4 ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -5 ], Atmp );
-            Atmp = AR_shp_Q13_tmp[ 3 ];
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -6 ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -7 ], Atmp );
-            Atmp = AR_shp_Q13_tmp[ 4 ];
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -8 ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -9 ], Atmp );
-            Atmp = AR_shp_Q13_tmp[ 5 ];
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -10 ], Atmp );
-            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -11 ], Atmp );
-            for( j = 12; j &lt; shapingLPCOrder; j += 2 ) {
-                Atmp = AR_shp_Q13_tmp[ j &gt;&gt; 1 ];        /* read two coefficients at once */
-                n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -j     ], Atmp );
-                n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -j - 1 ], Atmp );
-            }
-            n_AR_Q10 = SKP_RSHIFT( n_AR_Q10, 1 );           /* Q11 -&gt; Q10 */
-            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psDD-&gt;LF_AR_Q12, Tilt_Q14 );
-
-            n_LF_Q10   = SKP_LSHIFT( SKP_SMULWB( psDD-&gt;Shape_Q10[ *smpl_buf_idx ], LF_shp_Q14 ), 2 );
-            n_LF_Q10   = SKP_SMLAWT( n_LF_Q10, psDD-&gt;LF_AR_Q12, LF_shp_Q14 );
-
-            /* Input minus prediction plus noise feedback                       */
-            /* r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP  */
-            tmp   = SKP_SUB32( LTP_pred_Q14, n_LTP_Q14 );                       /* Add Q14 stuff */
-            tmp   = SKP_RSHIFT_ROUND( tmp, 4 );                                 /* round to Q10  */
-            tmp   = SKP_ADD32( tmp, LPC_pred_Q10 );                             /* add Q10 stuff */
-            tmp   = SKP_SUB32( tmp, n_AR_Q10 );                                 /* subtract Q10 stuff */
-            tmp   = SKP_SUB32( tmp, n_LF_Q10 );                                 /* subtract Q10 stuff */
-            r_Q10 = SKP_SUB32( x_Q10[ i ], tmp );                               /* residual error Q10 */
-
-
-
-
-
-
-
-            /* Flip sign depending on dither */
-            r_Q10 = ( r_Q10 ^ dither ) - dither;
-            r_Q10 = SKP_SUB32( r_Q10, offset_Q10 );
-            r_Q10 = SKP_LIMIT( r_Q10, -64 &lt;&lt; 10, 64 &lt;&lt; 10 );
-
-            /* Find two quantization level candidates and measure their rate-distortion */
-            if( r_Q10 &lt; -1536 ) {
-                q1_Q10  = SKP_LSHIFT( SKP_RSHIFT_ROUND( r_Q10, 10 ), 10 );
-                r_Q10   = SKP_SUB32( r_Q10, q1_Q10 );
-                rd1_Q10 = SKP_RSHIFT( SKP_SMLABB( SKP_MUL( -SKP_ADD32( q1_Q10, offset_Q10 ), Lambda_Q10 ), r_Q10, r_Q10 ), 10 );
-                rd2_Q10 = SKP_ADD32( rd1_Q10, 1024 );
-                rd2_Q10 = SKP_SUB32( rd2_Q10, SKP_ADD_LSHIFT32( Lambda_Q10, r_Q10, 1 ) );
-                q2_Q10  = SKP_ADD32( q1_Q10, 1024 );
-            } else if( r_Q10 &gt; 512 ) {
-                q1_Q10  = SKP_LSHIFT( SKP_RSHIFT_ROUND( r_Q10, 10 ), 10 );
-                r_Q10   = SKP_SUB32( r_Q10, q1_Q10 );
-                rd1_Q10 = SKP_RSHIFT( SKP_SMLABB( SKP_MUL( SKP_ADD32( q1_Q10, offset_Q10 ), Lambda_Q10 ), r_Q10, r_Q10 ), 10 );
-                rd2_Q10 = SKP_ADD32( rd1_Q10, 1024 );
-                rd2_Q10 = SKP_SUB32( rd2_Q10, SKP_SUB_LSHIFT32( Lambda_Q10, r_Q10, 1 ) );
-                q2_Q10  = SKP_SUB32( q1_Q10, 1024 );
-            } else {            /* r_Q10 &gt;= -1536 &amp;&amp; q1_Q10 &lt;= 512 */
-                rr_Q20  = SKP_SMULBB( offset_Q10, Lambda_Q10 );
-                rd2_Q10 = SKP_RSHIFT( SKP_SMLABB( rr_Q20, r_Q10, r_Q10 ), 10 );
-                rd1_Q10 = SKP_ADD32( rd2_Q10, 1024 );
-                rd1_Q10 = SKP_ADD32( rd1_Q10, SKP_SUB_RSHIFT32( SKP_ADD_LSHIFT32( Lambda_Q10, r_Q10, 1 ), rr_Q20, 9 ) );
-                q1_Q10  = -1024;
-                q2_Q10  = 0;
-            }
-
-            if( rd1_Q10 &lt; rd2_Q10 ) {
-                psSS[ 0 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd1_Q10 );
-                psSS[ 1 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd2_Q10 );
-                psSS[ 0 ].Q_Q10 = q1_Q10;
-                psSS[ 1 ].Q_Q10 = q2_Q10;
-            } else {
-                psSS[ 0 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd2_Q10 );
-                psSS[ 1 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd1_Q10 );
-                psSS[ 0 ].Q_Q10 = q2_Q10;
-                psSS[ 1 ].Q_Q10 = q1_Q10;
-            }
-
-            /* Update states for best quantization */
-
-            /* Quantized excitation */
-            exc_Q10 = SKP_ADD32( offset_Q10, psSS[ 0 ].Q_Q10 );
-            exc_Q10 = ( exc_Q10 ^ dither ) - dither;
-
-            /* Add predictions */
-
-
-
-
-
-            LPC_exc_Q10 = exc_Q10 + SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 );
-            xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
-
-            /* Update states */
-            sLF_AR_shp_Q10         = SKP_SUB32(  xq_Q10, n_AR_Q10 );
-            psSS[ 0 ].sLTP_shp_Q10 = SKP_SUB32(  sLF_AR_shp_Q10, n_LF_Q10 );
-            psSS[ 0 ].LF_AR_Q12    = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
-            psSS[ 0 ].xq_Q14       = SKP_LSHIFT( xq_Q10,         4 );
-            psSS[ 0 ].LPC_exc_Q16  = SKP_LSHIFT( LPC_exc_Q10,    6 );
-
-            /* Update states for second best quantization */
-
-            /* Quantized excitation */
-            exc_Q10 = SKP_ADD32( offset_Q10, psSS[ 1 ].Q_Q10 );
-            exc_Q10 = ( exc_Q10 ^ dither ) - dither;
-
-            /* Add predictions */
-            LPC_exc_Q10 = exc_Q10 + SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 );
-            xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
-
-            /* Update states */
-            sLF_AR_shp_Q10         = SKP_SUB32(  xq_Q10, n_AR_Q10 );
-            psSS[ 1 ].sLTP_shp_Q10 = SKP_SUB32(  sLF_AR_shp_Q10, n_LF_Q10 );
-            psSS[ 1 ].LF_AR_Q12    = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
-            psSS[ 1 ].xq_Q14       = SKP_LSHIFT( xq_Q10,         4 );
-            psSS[ 1 ].LPC_exc_Q16  = SKP_LSHIFT( LPC_exc_Q10,    6 );
-        }
-
-        *smpl_buf_idx  = ( *smpl_buf_idx - 1 ) &amp; DECISION_DELAY_MASK;                   /* Index to newest samples              */
-        last_smple_idx = ( *smpl_buf_idx + decisionDelay ) &amp; DECISION_DELAY_MASK;       /* Index to decisionDelay old samples   */
-
-        /* Find winner */
-        RDmin_Q10 = psSampleState[ 0 ][ 0 ].RD_Q10;
-        Winner_ind = 0;
-        for( k = 1; k &lt; nStatesDelayedDecision; k++ ) {
-            if( psSampleState[ k ][ 0 ].RD_Q10 &lt; RDmin_Q10 ) {
-                RDmin_Q10   = psSampleState[ k ][ 0 ].RD_Q10;
-                Winner_ind = k;
-            }
-        }
-
-        /* Increase RD values of expired states */
-        Winner_rand_state = psDelDec[ Winner_ind ].RandState[ last_smple_idx ];
-        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
-            if( psDelDec[ k ].RandState[ last_smple_idx ] != Winner_rand_state ) {
-                psSampleState[ k ][ 0 ].RD_Q10 = SKP_ADD32( psSampleState[ k ][ 0 ].RD_Q10, ( SKP_int32_MAX &gt;&gt; 4 ) );
-                psSampleState[ k ][ 1 ].RD_Q10 = SKP_ADD32( psSampleState[ k ][ 1 ].RD_Q10, ( SKP_int32_MAX &gt;&gt; 4 ) );
-                SKP_assert( psSampleState[ k ][ 0 ].RD_Q10 &gt;= 0 );
-
-
-
-
-
-            }
-        }
-
-        /* Find worst in first set and best in second set */
-        RDmax_Q10  = psSampleState[ 0 ][ 0 ].RD_Q10;
-        RDmin_Q10  = psSampleState[ 0 ][ 1 ].RD_Q10;
-        RDmax_ind = 0;
-        RDmin_ind = 0;
-        for( k = 1; k &lt; nStatesDelayedDecision; k++ ) {
-            /* find worst in first set */
-            if( psSampleState[ k ][ 0 ].RD_Q10 &gt; RDmax_Q10 ) {
-                RDmax_Q10  = psSampleState[ k ][ 0 ].RD_Q10;
-                RDmax_ind = k;
-            }
-            /* find best in second set */
-            if( psSampleState[ k ][ 1 ].RD_Q10 &lt; RDmin_Q10 ) {
-                RDmin_Q10  = psSampleState[ k ][ 1 ].RD_Q10;
-                RDmin_ind = k;
-            }
-        }
-
-        /* Replace a state if best from second set outperforms worst in first set */
-        if( RDmin_Q10 &lt; RDmax_Q10 ) {
-            SKP_Silk_copy_del_dec_state( &amp;psDelDec[ RDmax_ind ], &amp;psDelDec[ RDmin_ind ], i );
-            SKP_memcpy( &amp;psSampleState[ RDmax_ind ][ 0 ], &amp;psSampleState[ RDmin_ind ][ 1 ], sizeof( NSQ_sample_struct ) );
-        }
-
-        /* Write samples from winner to output and long-term filter states */
-        psDD = &amp;psDelDec[ Winner_ind ];
-        if( subfr &gt; 0 || i &gt;= decisionDelay ) {
-            q[  i - decisionDelay ] = (SKP_int)SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
-            xq[ i - decisionDelay ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND(
-                SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ], psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
-            NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
-            sLTP_Q16[          NSQ-&gt;sLTP_buf_idx     - decisionDelay ] = psDD-&gt;Pred_Q16[  last_smple_idx ];
-        }
-        NSQ-&gt;sLTP_shp_buf_idx++;
-        NSQ-&gt;sLTP_buf_idx++;
-
-        /* Update states */
-        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
-            psDD                                     = &amp;psDelDec[ k ];
-            psSS                                     = &amp;psSampleState[ k ][ 0 ];
-            psDD-&gt;LF_AR_Q12                          = psSS-&gt;LF_AR_Q12;
-            psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH + i ] = psSS-&gt;xq_Q14;
-            psDD-&gt;Xq_Q10[    *smpl_buf_idx ]         = SKP_RSHIFT( psSS-&gt;xq_Q14, 4 );
-            psDD-&gt;Q_Q10[     *smpl_buf_idx ]         = psSS-&gt;Q_Q10;
-            psDD-&gt;Pred_Q16[  *smpl_buf_idx ]         = psSS-&gt;LPC_exc_Q16;
-
-
-
-
-
-            psDD-&gt;Shape_Q10[ *smpl_buf_idx ]         = psSS-&gt;sLTP_shp_Q10;
-            psDD-&gt;Seed                               = SKP_ADD_RSHIFT32( psDD-&gt;Seed, psSS-&gt;Q_Q10, 10 );
-            psDD-&gt;RandState[ *smpl_buf_idx ]         = psDD-&gt;Seed;
-            psDD-&gt;RD_Q10                             = psSS-&gt;RD_Q10;
-            psDD-&gt;Gain_Q16[  *smpl_buf_idx ]         = Gain_Q16;
-        }
-    }
-    /* Update LPC states */
-    for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
-        psDD = &amp;psDelDec[ k ];
-        SKP_memcpy( psDD-&gt;sLPC_Q14, &amp;psDD-&gt;sLPC_Q14[ length ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
-    }
-}
-
-SKP_INLINE void SKP_Silk_nsq_del_dec_scale_states(
-    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
-    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
-    const SKP_int16     x[],                    /* I    Input in Q0                         */
-    SKP_int32           x_sc_Q10[],             /* O    Input scaled with 1/Gain in Q10     */
-    SKP_int             length,                 /* I    Length of input                     */
-    SKP_int16           sLTP[],                 /* I    Re-whitened LTP state in Q0         */
-    SKP_int32           sLTP_Q16[],             /* O    LTP state matching scaled input     */
-    SKP_int             subfr,                  /* I    Subframe number                     */
-    SKP_int             nStatesDelayedDecision, /* I    Number of del dec states            */
-    SKP_int             smpl_buf_idx,           /* I    Index to newest samples in buffers  */
-    const SKP_int       LTP_scale_Q14,          /* I    LTP state scaling                   */
-    const SKP_int32     Gains_Q16[ NB_SUBFR ],  /* I                                        */
-    const SKP_int       pitchL[ NB_SUBFR ]      /* I    Pitch lag                           */
-)
-{
-    SKP_int            i, k, scale_length, lag;
-    SKP_int32          inv_gain_Q16, gain_adj_Q16, inv_gain_Q32;
-    NSQ_del_dec_struct *psDD;
-
-    inv_gain_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gains_Q16[ subfr ], 1 ) );
-    inv_gain_Q16 = SKP_min( inv_gain_Q16, SKP_int16_MAX );
-    lag          = pitchL[ subfr ];
-    /* After rewhitening the LTP state is un-scaled. So scale with inv_gain_Q16 */
-    if( NSQ-&gt;rewhite_flag ) {
-        inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
-        if( subfr == 0 ) {
-            /* Do LTP downscaling */
-            inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, LTP_scale_Q14 ), 2 );
-        }
-        for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
-            SKP_assert( i &lt; MAX_FRAME_LENGTH );
-            sLTP_Q16[ i ] = SKP_SMULWB( inv_gain_Q32, sLTP[ i ] );
-        }
-
-
-
-
-
-    }
-
-    /* Adjust for changing gain */
-    if( inv_gain_Q16 != NSQ-&gt;prev_inv_gain_Q16 ) {
-        gain_adj_Q16 = SKP_DIV32_varQ( inv_gain_Q16, NSQ-&gt;prev_inv_gain_Q16, 16 );
-
-        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
-            psDD = &amp;psDelDec[ k ];
-
-            /* Scale scalar states */
-            psDD-&gt;LF_AR_Q12 = SKP_SMULWW( gain_adj_Q16, psDD-&gt;LF_AR_Q12 );
-
-            /* scale short term state */
-            for( i = 0; i &lt; NSQ_LPC_BUF_LENGTH; i++ ) {
-                psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - i - 1 ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - i - 1 ] );
-            }
-            for( i = 0; i &lt; DECISION_DELAY; i++ ) {
-                psDD-&gt;Pred_Q16[  i ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;Pred_Q16[  i ] );
-                psDD-&gt;Shape_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;Shape_Q10[ i ] );
-            }
-        }
-
-        /* Scale long term shaping state */
-
-        /* Calculate length to be scaled, Worst case: Next frame is voiced with max lag */
-        scale_length = length * NB_SUBFR;                                               /* aprox max lag */
-        scale_length = scale_length - SKP_SMULBB( NB_SUBFR - ( subfr + 1 ), length );   /* subtract samples that will be too old in next frame */
-        scale_length = SKP_max_int( scale_length, lag + LTP_ORDER );                    /* make sure to scale whole pitch period if voiced */
-
-        for( i = NSQ-&gt;sLTP_shp_buf_idx - scale_length; i &lt; NSQ-&gt;sLTP_shp_buf_idx; i++ ) {
-            NSQ-&gt;sLTP_shp_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLTP_shp_Q10[ i ] );
-        }
-
-        /* Scale LTP predict state */
-        if( NSQ-&gt;rewhite_flag == 0 ) {
-            for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
-                sLTP_Q16[ i ] = SKP_SMULWW( gain_adj_Q16, sLTP_Q16[ i ] );
-            }
-        }
-    }
-
-    /* Scale input */
-    for( i = 0; i &lt; length; i++ ) {
-        x_sc_Q10[ i ] = SKP_RSHIFT( SKP_SMULBB( x[ i ], (SKP_int16)inv_gain_Q16 ), 6 );
-    }
-
-    /* save inv_gain */
-    SKP_assert( inv_gain_Q16 != 0 );
-
-
-
-
-
-    NSQ-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
-}
-
-SKP_INLINE void SKP_Silk_copy_del_dec_state(
-    NSQ_del_dec_struct  *DD_dst,                /* I    Dst del dec state                   */
-    NSQ_del_dec_struct  *DD_src,                /* I    Src del dec state                   */
-    SKP_int             LPC_state_idx           /* I    Index to LPC buffer                 */
-)
-{
-    SKP_memcpy( DD_dst-&gt;RandState, DD_src-&gt;RandState,   DECISION_DELAY * sizeof( SKP_int   ) );
-    SKP_memcpy( DD_dst-&gt;Q_Q10,     DD_src-&gt;Q_Q10,       DECISION_DELAY * sizeof( SKP_int32 ) );
-    SKP_memcpy( DD_dst-&gt;Pred_Q16,  DD_src-&gt;Pred_Q16,    DECISION_DELAY * sizeof( SKP_int32 ) );
-    SKP_memcpy( DD_dst-&gt;Shape_Q10, DD_src-&gt;Shape_Q10,   DECISION_DELAY * sizeof( SKP_int32 ) );
-    SKP_memcpy( DD_dst-&gt;Xq_Q10,    DD_src-&gt;Xq_Q10,      DECISION_DELAY * sizeof( SKP_int32 ) );
-
-    SKP_memcpy( &amp;DD_dst-&gt;sLPC_Q14[ LPC_state_idx ], &amp;DD_src-&gt;sLPC_Q14[ LPC_state_idx ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
-    DD_dst-&gt;LF_AR_Q12 = DD_src-&gt;LF_AR_Q12;
-    DD_dst-&gt;Seed      = DD_src-&gt;Seed;
-    DD_dst-&gt;SeedInit  = DD_src-&gt;SeedInit;
-    DD_dst-&gt;RD_Q10    = DD_src-&gt;RD_Q10;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+typedef struct {
+    SKP_int   RandState[ DECISION_DELAY ];
+    SKP_int32 Q_Q10[     DECISION_DELAY ];
+    SKP_int32 Xq_Q10[    DECISION_DELAY ];
+    SKP_int32 Pred_Q16[  DECISION_DELAY ];
+    SKP_int32 Shape_Q10[ DECISION_DELAY ];
+    SKP_int32 Gain_Q16[  DECISION_DELAY ];
+    SKP_int32 sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + NSQ_LPC_BUF_LENGTH ];
+    SKP_int32 LF_AR_Q12;
+    SKP_int32 Seed;
+    SKP_int32 SeedInit;
+    SKP_int32 RD_Q10;
+} NSQ_del_dec_struct;
+
+typedef struct {
+    SKP_int32 Q_Q10;
+    SKP_int32 RD_Q10;
+    SKP_int32 xq_Q14;
+    SKP_int32 LF_AR_Q12;
+    SKP_int32 sLTP_shp_Q10;
+    SKP_int32 LPC_exc_Q16;
+} NSQ_sample_struct;
+
+SKP_INLINE void SKP_Silk_copy_del_dec_state(
+    NSQ_del_dec_struct  *DD_dst,                /* I    Dst del dec state                   */
+    NSQ_del_dec_struct  *DD_src,                /* I    Src del dec state                   */
+    SKP_int             LPC_state_idx           /* I    Index to LPC buffer                 */
+);
+
+SKP_INLINE void SKP_Silk_nsq_del_dec_scale_states(
+    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
+    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
+    const SKP_int16     x[],                    /* I    Input in Q0                         */
+    SKP_int32           x_sc_Q10[],             /* O    Input scaled with 1/Gain in Q10     */
+    SKP_int             length,                 /* I    Length of input                     */
+    SKP_int16           sLTP[],                 /* I    Re-whitened LTP state in Q0         */
+    SKP_int32           sLTP_Q16[],             /* O    LTP state matching scaled input     */
+    SKP_int             subfr,                  /* I    Subframe number                     */
+    SKP_int             nStatesDelayedDecision, /* I    Number of del dec states            */
+    SKP_int             smpl_buf_idx,           /* I    Index to newest samples in buffers  */
+    const SKP_int       LTP_scale_Q14,          /* I    LTP state scaling                   */
+    const SKP_int32     Gains_Q16[ NB_SUBFR ],  /* I                                        */
+    const SKP_int       pitchL[ NB_SUBFR ]      /* I    Pitch lag                           */
+);
+
+/******************************************/
+/* Noise shape quantizer for one subframe */
+/******************************************/
+SKP_INLINE void SKP_Silk_noise_shape_quantizer_del_dec(
+    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
+    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
+    SKP_int             sigtype,                /* I    Signal type                         */
+    const SKP_int32     x_Q10[],                /* I                                        */
+    SKP_int             q[],                    /* O                                        */
+    SKP_int16           xq[],                   /* O                                        */
+    SKP_int32           sLTP_Q16[],             /* I/O  LTP filter state                    */
+    const SKP_int16     a_Q12[],                /* I    Short term prediction coefs         */
+    const SKP_int16     b_Q14[],                /* I    Long term prediction coefs          */
+    const SKP_int16     AR_shp_Q13[],           /* I    Noise shaping coefs                 */
+    SKP_int             lag,                    /* I    Pitch lag                           */
+    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                        */
+    SKP_int             Tilt_Q14,               /* I    Spectral tilt                       */
+    SKP_int32           LF_shp_Q14,             /* I                                        */
+    SKP_int32           Gain_Q16,               /* I                                        */
+    SKP_int             Lambda_Q10,             /* I                                        */
+    SKP_int             offset_Q10,             /* I                                        */
+    SKP_int             length,                 /* I    Input length                        */
+    SKP_int             subfr,                  /* I    Subframe number                     */
+    SKP_int             shapingLPCOrder,        /* I    Shaping LPC filter order            */
+    SKP_int             predictLPCOrder,        /* I    Prediction LPC filter order         */
+    SKP_int             nStatesDelayedDecision, /* I    Number of states in decision tree   */
+    SKP_int             *smpl_buf_idx,          /* I    Index to newest samples in buffers  */
+    SKP_int             decisionDelay           /* I                                        */
+);
+
+void SKP_Silk_NSQ_del_dec(
+    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
+    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
+    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
+    const SKP_int16                 x[],                                        /* I    Prefiltered input signal            */
+    SKP_int                         q[],                                        /* O    Quantized pulse signal              */
+    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
+    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Prediction coefs                    */
+    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    LT prediction coefs                 */
+    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
+    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
+    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
+    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
+    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
+    const SKP_int                   Lambda_Q10,                                 /* I                                        */
+    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
+)
+{
+    SKP_int     i, k, lag, start_idx, LSF_interpolation_flag, Winner_ind, subfr;
+    SKP_int     last_smple_idx, smpl_buf_idx, decisionDelay, subfr_length;
+    const SKP_int16 *A_Q12, *B_Q14, *AR_shp_Q13;
+    SKP_int16   *pxq;
+    SKP_int32   sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
+    SKP_int16   sLTP[     2 * MAX_FRAME_LENGTH ];
+    SKP_int32   HarmShapeFIRPacked_Q14;
+    SKP_int     offset_Q10;
+    SKP_int32   FiltState[ MAX_LPC_ORDER ], RDmin_Q10;
+    SKP_int32   x_sc_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ];
+    NSQ_del_dec_struct psDelDec[ DEL_DEC_STATES_MAX ];
+    NSQ_del_dec_struct *psDD;
+
+    subfr_length = psEncC-&gt;frame_length / NB_SUBFR;
+
+    /* Set unvoiced lag to the previous one, overwrite later for voiced */
+    lag = NSQ-&gt;lagPrev;
+
+    SKP_assert( NSQ-&gt;prev_inv_gain_Q16 != 0 );
+
+    /* Initialize delayed decision states */
+    SKP_memset( psDelDec, 0, psEncC-&gt;nStatesDelayedDecision * sizeof( NSQ_del_dec_struct ) );
+    for( k = 0; k &lt; psEncC-&gt;nStatesDelayedDecision; k++ ) {
+        psDD                 = &amp;psDelDec[ k ];
+        psDD-&gt;Seed           = ( k + psEncCtrlC-&gt;Seed ) &amp; 3;
+        psDD-&gt;SeedInit       = psDD-&gt;Seed;
+        psDD-&gt;RD_Q10         = 0;
+        psDD-&gt;LF_AR_Q12      = NSQ-&gt;sLF_AR_shp_Q12;
+        psDD-&gt;Shape_Q10[ 0 ] = NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length - 1 ];
+        SKP_memcpy( psDD-&gt;sLPC_Q14, NSQ-&gt;sLPC_Q14, NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
+    }
+
+    offset_Q10   = SKP_Silk_Quantization_Offsets_Q10[ psEncCtrlC-&gt;sigtype ][ psEncCtrlC-&gt;QuantOffsetType ];
+    smpl_buf_idx = 0; /* index of oldest samples */
+
+    decisionDelay = SKP_min_int( DECISION_DELAY, subfr_length );
+    /* For voiced frames limit the decision delay to lower than the pitch lag */
+    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            decisionDelay = SKP_min_int( decisionDelay, psEncCtrlC-&gt;pitchL[ k ] - LTP_ORDER / 2 - 1 );
+        }
+    }
+
+    if( LSFInterpFactor_Q2 == ( 1 &lt;&lt; 2 ) ) {
+        LSF_interpolation_flag = 0;
+    } else {
+        LSF_interpolation_flag = 1;
+    }
+
+    /* Setup pointers to start of sub frame */
+    pxq                   = &amp;NSQ-&gt;xq[ psEncC-&gt;frame_length ];
+    NSQ-&gt;sLTP_shp_buf_idx = psEncC-&gt;frame_length;
+    NSQ-&gt;sLTP_buf_idx     = psEncC-&gt;frame_length;
+    subfr = 0;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        A_Q12      = &amp;PredCoef_Q12[ ( ( k &gt;&gt; 1 ) | ( 1 - LSF_interpolation_flag ) ) * MAX_LPC_ORDER ];
+        B_Q14      = &amp;LTPCoef_Q14[ k * LTP_ORDER           ];
+        AR_shp_Q13 = &amp;AR2_Q13[     k * SHAPE_LPC_ORDER_MAX ];
+
+        NSQ-&gt;rewhite_flag = 0;
+        if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
+            /* Voiced */
+            lag = psEncCtrlC-&gt;pitchL[ k ];
+
+            /* Re-whitening */
+            if( ( k &amp; ( 3 - SKP_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) {
+                if( k == 2 ) {
+                    /* RESET DELAYED DECISIONS */
+                    /* Find winner */
+                    RDmin_Q10 = psDelDec[ 0 ].RD_Q10;
+                    Winner_ind = 0;
+                    for( i = 1; i &lt; psEncC-&gt;nStatesDelayedDecision; i++ ) {
+                        if( psDelDec[ i ].RD_Q10 &lt; RDmin_Q10 ) {
+                            RDmin_Q10 = psDelDec[ i ].RD_Q10;
+                            Winner_ind = i;
+                        }
+                    }
+                    for( i = 0; i &lt; psEncC-&gt;nStatesDelayedDecision; i++ ) {
+                        if( i != Winner_ind ) {
+                            psDelDec[ i ].RD_Q10 += ( SKP_int32_MAX &gt;&gt; 4 );
+                            SKP_assert( psDelDec[ i ].RD_Q10 &gt;= 0 );
+                        }
+                    }
+                    
+                    /* Copy final part of signals from winner state to output and long-term filter states */
+                    psDD = &amp;psDelDec[ Winner_ind ];
+                    last_smple_idx = smpl_buf_idx + decisionDelay;
+                    for( i = 0; i &lt; decisionDelay; i++ ) {
+                        last_smple_idx = ( last_smple_idx - 1 ) &amp; DECISION_DELAY_MASK;
+                        q[   i - decisionDelay ] = ( SKP_int )SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
+                        pxq[ i - decisionDelay ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( 
+                            SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ], 
+                            psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
+                        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay + i ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
+                    }
+
+                    subfr = 0;
+                }
+
+                /* Rewhiten with new A coefs */
+                start_idx = psEncC-&gt;frame_length - lag - psEncC-&gt;predictLPCOrder - LTP_ORDER / 2;
+                start_idx = SKP_LIMIT( start_idx, 0, psEncC-&gt;frame_length - psEncC-&gt;predictLPCOrder );
+                
+                SKP_memset( FiltState, 0, psEncC-&gt;predictLPCOrder * sizeof( SKP_int32 ) );
+                SKP_Silk_MA_Prediction( &amp;NSQ-&gt;xq[ start_idx + k * psEncC-&gt;subfr_length ], 
+                    A_Q12, FiltState, sLTP + start_idx, psEncC-&gt;frame_length - start_idx, psEncC-&gt;predictLPCOrder );
+
+                NSQ-&gt;sLTP_buf_idx = psEncC-&gt;frame_length;
+                NSQ-&gt;rewhite_flag = 1;
+            }
+        }
+
+        /* Noise shape parameters */
+        SKP_assert( HarmShapeGain_Q14[ k ] &gt;= 0 );
+        HarmShapeFIRPacked_Q14  =                        SKP_RSHIFT( HarmShapeGain_Q14[ k ], 2 );
+        HarmShapeFIRPacked_Q14 |= SKP_LSHIFT( ( SKP_int32 )SKP_RSHIFT( HarmShapeGain_Q14[ k ], 1 ), 16 );
+
+        SKP_Silk_nsq_del_dec_scale_states( NSQ, psDelDec, x, x_sc_Q10, 
+            subfr_length, sLTP, sLTP_Q16, k, psEncC-&gt;nStatesDelayedDecision, smpl_buf_idx,
+            LTP_scale_Q14, Gains_Q16, psEncCtrlC-&gt;pitchL );
+
+        SKP_Silk_noise_shape_quantizer_del_dec( NSQ, psDelDec, psEncCtrlC-&gt;sigtype, x_sc_Q10, q, pxq, sLTP_Q16,
+            A_Q12, B_Q14, AR_shp_Q13, lag, HarmShapeFIRPacked_Q14, Tilt_Q14[ k ], LF_shp_Q14[ k ], Gains_Q16[ k ], 
+            Lambda_Q10, offset_Q10, psEncC-&gt;subfr_length, subfr++, psEncC-&gt;shapingLPCOrder, psEncC-&gt;predictLPCOrder, 
+            psEncC-&gt;nStatesDelayedDecision, &amp;smpl_buf_idx, decisionDelay 
+        );
+        
+        x   += psEncC-&gt;subfr_length;
+        q   += psEncC-&gt;subfr_length;
+        pxq += psEncC-&gt;subfr_length;
+    }
+
+    /* Find winner */
+    RDmin_Q10 = psDelDec[ 0 ].RD_Q10;
+    Winner_ind = 0;
+    for( k = 1; k &lt; psEncC-&gt;nStatesDelayedDecision; k++ ) {
+        if( psDelDec[ k ].RD_Q10 &lt; RDmin_Q10 ) {
+            RDmin_Q10 = psDelDec[ k ].RD_Q10;
+            Winner_ind = k;
+        }
+    }
+    
+    /* Copy final part of signals from winner state to output and long-term filter states */
+    psDD = &amp;psDelDec[ Winner_ind ];
+    psEncCtrlC-&gt;Seed = psDD-&gt;SeedInit;
+    last_smple_idx = smpl_buf_idx + decisionDelay;
+    for( i = 0; i &lt; decisionDelay; i++ ) {
+        last_smple_idx = ( last_smple_idx - 1 ) &amp; DECISION_DELAY_MASK;
+        q[   i - decisionDelay ] = ( SKP_int )SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
+        pxq[ i - decisionDelay ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( 
+            SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ], psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
+        NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay + i ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
+        sLTP_Q16[          NSQ-&gt;sLTP_buf_idx     - decisionDelay + i ] = psDD-&gt;Pred_Q16[  last_smple_idx ];
+
+    }
+    SKP_memcpy( NSQ-&gt;sLPC_Q14, &amp;psDD-&gt;sLPC_Q14[ psEncC-&gt;subfr_length ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
+
+    /* Update states */
+    NSQ-&gt;sLF_AR_shp_Q12    = psDD-&gt;LF_AR_Q12;
+    NSQ-&gt;prev_inv_gain_Q16 = NSQ-&gt;prev_inv_gain_Q16;
+    NSQ-&gt;lagPrev           = psEncCtrlC-&gt;pitchL[ NB_SUBFR - 1 ];
+
+    /* Save quantized speech and noise shaping signals */
+    SKP_memcpy( NSQ-&gt;xq,           &amp;NSQ-&gt;xq[           psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int16 ) );
+    SKP_memcpy( NSQ-&gt;sLTP_shp_Q10, &amp;NSQ-&gt;sLTP_shp_Q10[ psEncC-&gt;frame_length ], psEncC-&gt;frame_length * sizeof( SKP_int32 ) );
+
+}
+
+/******************************************/
+/* Noise shape quantizer for one subframe */
+/******************************************/
+SKP_INLINE void SKP_Silk_noise_shape_quantizer_del_dec(
+    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
+    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
+    SKP_int             sigtype,                /* I    Signal type                         */
+    const SKP_int32     x_Q10[],                /* I                                        */
+    SKP_int             q[],                    /* O                                        */
+    SKP_int16           xq[],                   /* O                                        */
+    SKP_int32           sLTP_Q16[],             /* I/O  LTP filter state                    */
+    const SKP_int16     a_Q12[],                /* I    Short term prediction coefs         */
+    const SKP_int16     b_Q14[],                /* I    Long term prediction coefs          */
+    const SKP_int16     AR_shp_Q13[],           /* I    Noise shaping coefs                 */
+    SKP_int             lag,                    /* I    Pitch lag                           */
+    SKP_int32           HarmShapeFIRPacked_Q14, /* I                                        */
+    SKP_int             Tilt_Q14,               /* I    Spectral tilt                       */
+    SKP_int32           LF_shp_Q14,             /* I                                        */
+    SKP_int32           Gain_Q16,               /* I                                        */
+    SKP_int             Lambda_Q10,             /* I                                        */
+    SKP_int             offset_Q10,             /* I                                        */
+    SKP_int             length,                 /* I    Input length                        */
+    SKP_int             subfr,                  /* I    Subframe number                     */
+    SKP_int             shapingLPCOrder,        /* I    Shaping LPC filter order            */
+    SKP_int             predictLPCOrder,        /* I    Prediction LPC filter order         */
+    SKP_int             nStatesDelayedDecision, /* I    Number of states in decision tree   */
+    SKP_int             *smpl_buf_idx,          /* I    Index to newest samples in buffers  */
+    SKP_int             decisionDelay           /* I                                        */
+)
+{
+    SKP_int     i, j, k, Winner_ind, RDmin_ind, RDmax_ind, last_smple_idx;
+    SKP_int32   Winner_rand_state;
+    SKP_int32   LTP_pred_Q14, LPC_pred_Q10, n_AR_Q10, n_LTP_Q14;
+    SKP_int32   n_LF_Q10;
+    SKP_int32   r_Q10, rr_Q20, rd1_Q10, rd2_Q10, RDmin_Q10, RDmax_Q10;
+    SKP_int32   q1_Q10, q2_Q10;
+    SKP_int32   Atmp, dither;
+    SKP_int32   exc_Q10, LPC_exc_Q10, xq_Q10;
+    SKP_int32   tmp, sLF_AR_shp_Q10;
+    SKP_int32   *pred_lag_ptr, *shp_lag_ptr;
+    SKP_int32   *psLPC_Q14;
+    SKP_int32   a_Q12_tmp[ MAX_LPC_ORDER / 2 ], AR_shp_Q13_tmp[ MAX_LPC_ORDER / 2 ];
+    NSQ_sample_struct  psSampleState[ DEL_DEC_STATES_MAX ][ 2 ];
+    NSQ_del_dec_struct *psDD;
+    NSQ_sample_struct  *psSS;
+
+    shp_lag_ptr  = &amp;NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ];
+    pred_lag_ptr = &amp;sLTP_Q16[ NSQ-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
+    
+    /* Preload LPC coeficients to array on stack. Gives small performance gain */
+    SKP_memcpy( a_Q12_tmp, a_Q12, predictLPCOrder * sizeof( SKP_int16 ) );
+    SKP_memcpy( AR_shp_Q13_tmp, AR_shp_Q13, shapingLPCOrder * sizeof( SKP_int16 ) );
+
+    for( i = 0; i &lt; length; i++ ) {
+        /* Perform common calculations used in all states */
+
+        /* Long-term prediction */
+        if( sigtype == SIG_TYPE_VOICED ) {
+            /* Unrolled loop */
+            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], b_Q14[ 0 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], b_Q14[ 1 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], b_Q14[ 2 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], b_Q14[ 3 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], b_Q14[ 4 ] );
+            pred_lag_ptr++;
+        } else {
+            LTP_pred_Q14 = 0;
+        }
+
+        /* Long-term shaping */
+        if( lag &gt; 0 ) {
+            /* Symmetric, packed FIR coefficients */
+            n_LTP_Q14 = SKP_SMULWB( SKP_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
+            n_LTP_Q14 = SKP_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ],                     HarmShapeFIRPacked_Q14 );
+            n_LTP_Q14 = SKP_LSHIFT( n_LTP_Q14, 6 );
+            shp_lag_ptr++;
+        } else {
+            n_LTP_Q14 = 0;
+        }
+
+        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
+            /* Delayed decision state */
+            psDD = &amp;psDelDec[ k ];
+
+            /* Sample state */
+            psSS = psSampleState[ k ];
+
+            /* Generate dither */
+            psDD-&gt;Seed = SKP_RAND( psDD-&gt;Seed );
+
+            /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
+            dither = SKP_RSHIFT( psDD-&gt;Seed, 31 );
+            
+            /* Pointer used in short term prediction and shaping */
+            psLPC_Q14 = &amp;psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - 1 + i ];
+            /* Short-term prediction */
+            SKP_assert( ( predictLPCOrder  &amp; 1 ) == 0 );    /* check that order is even */
+            SKP_assert( ( (SKP_int64)a_Q12 &amp; 3 ) == 0 );    /* check that array starts at 4-byte aligned address */
+            SKP_assert( predictLPCOrder &gt;= 10 );            /* check that unrolling works */
+
+            /* Partially unrolled */
+            Atmp = a_Q12_tmp[ 0 ];          /* read two coefficients at once */
+            LPC_pred_Q10 = SKP_SMULWB(               psLPC_Q14[ 0  ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -1 ], Atmp );
+            Atmp = a_Q12_tmp[ 1 ];
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -2 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -3 ], Atmp );
+            Atmp = a_Q12_tmp[ 2 ];
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -4 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -5 ], Atmp );
+            Atmp = a_Q12_tmp[ 3 ];
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -6 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -7 ], Atmp );
+            Atmp = a_Q12_tmp[ 4 ];
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -8 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -9 ], Atmp );
+            for( j = 10; j &lt; predictLPCOrder; j += 2 ) {
+                Atmp = a_Q12_tmp[ j &gt;&gt; 1 ]; /* read two coefficients at once */
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psLPC_Q14[ -j     ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psLPC_Q14[ -j - 1 ], Atmp );
+            }
+
+            /* Noise shape feedback */
+            SKP_assert( ( shapingLPCOrder       &amp; 1 ) == 0 );   /* check that order is even */
+            SKP_assert( ( (SKP_int64)AR_shp_Q13 &amp; 3 ) == 0 );   /* check that array starts at 4-byte aligned address */
+            SKP_assert( shapingLPCOrder &gt;= 12 );                /* check that unrolling works */
+            /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+            /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+            /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+            /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+
+            /* Partially unrolled */
+            Atmp = AR_shp_Q13_tmp[ 0 ];         /* read two coefficients at once */
+            n_AR_Q10 = SKP_SMULWB(           psLPC_Q14[ 0  ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -1 ], Atmp );
+            Atmp = AR_shp_Q13_tmp[ 1 ];
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -2 ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -3 ], Atmp );
+            Atmp = AR_shp_Q13_tmp[ 2 ];
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -4 ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -5 ], Atmp );
+            Atmp = AR_shp_Q13_tmp[ 3 ];
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -6 ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -7 ], Atmp );
+            Atmp = AR_shp_Q13_tmp[ 4 ];
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -8 ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -9 ], Atmp );
+            Atmp = AR_shp_Q13_tmp[ 5 ];
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -10 ], Atmp );
+            n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -11 ], Atmp );
+            for( j = 12; j &lt; shapingLPCOrder; j += 2 ) {
+                Atmp = AR_shp_Q13_tmp[ j &gt;&gt; 1 ];        /* read two coefficients at once */
+                n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psLPC_Q14[ -j     ], Atmp );
+                n_AR_Q10 = SKP_SMLAWT( n_AR_Q10, psLPC_Q14[ -j - 1 ], Atmp );
+            }
+            n_AR_Q10 = SKP_RSHIFT( n_AR_Q10, 1 );           /* Q11 -&gt; Q10 */
+            n_AR_Q10 = SKP_SMLAWB( n_AR_Q10, psDD-&gt;LF_AR_Q12, Tilt_Q14 );
+
+            n_LF_Q10   = SKP_LSHIFT( SKP_SMULWB( psDD-&gt;Shape_Q10[ *smpl_buf_idx ], LF_shp_Q14 ), 2 ); 
+            n_LF_Q10   = SKP_SMLAWT( n_LF_Q10, psDD-&gt;LF_AR_Q12, LF_shp_Q14 );       
+
+            /* Input minus prediction plus noise feedback                       */
+            /* r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP  */
+            tmp   = SKP_SUB32( LTP_pred_Q14, n_LTP_Q14 );                       /* Add Q14 stuff */
+            tmp   = SKP_RSHIFT_ROUND( tmp, 4 );                                 /* round to Q10  */
+            tmp   = SKP_ADD32( tmp, LPC_pred_Q10 );                             /* add Q10 stuff */ 
+            tmp   = SKP_SUB32( tmp, n_AR_Q10 );                                 /* subtract Q10 stuff */ 
+            tmp   = SKP_SUB32( tmp, n_LF_Q10 );                                 /* subtract Q10 stuff */ 
+            r_Q10 = SKP_SUB32( x_Q10[ i ], tmp );                               /* residual error Q10 */
+            
+
+            /* Flip sign depending on dither */
+            r_Q10 = ( r_Q10 ^ dither ) - dither;
+            r_Q10 = SKP_SUB32( r_Q10, offset_Q10 );
+            r_Q10 = SKP_LIMIT( r_Q10, -64 &lt;&lt; 10, 64 &lt;&lt; 10 );
+
+            /* Find two quantization level candidates and measure their rate-distortion */
+            if( r_Q10 &lt; -1536 ) {
+                q1_Q10  = SKP_LSHIFT( SKP_RSHIFT_ROUND( r_Q10, 10 ), 10 );
+                r_Q10   = SKP_SUB32( r_Q10, q1_Q10 );
+                rd1_Q10 = SKP_RSHIFT( SKP_SMLABB( SKP_MUL( -SKP_ADD32( q1_Q10, offset_Q10 ), Lambda_Q10 ), r_Q10, r_Q10 ), 10 );
+                rd2_Q10 = SKP_ADD32( rd1_Q10, 1024 );
+                rd2_Q10 = SKP_SUB32( rd2_Q10, SKP_ADD_LSHIFT32( Lambda_Q10, r_Q10, 1 ) );
+                q2_Q10  = SKP_ADD32( q1_Q10, 1024 );
+            } else if( r_Q10 &gt; 512 ) {
+                q1_Q10  = SKP_LSHIFT( SKP_RSHIFT_ROUND( r_Q10, 10 ), 10 );
+                r_Q10   = SKP_SUB32( r_Q10, q1_Q10 );
+                rd1_Q10 = SKP_RSHIFT( SKP_SMLABB( SKP_MUL( SKP_ADD32( q1_Q10, offset_Q10 ), Lambda_Q10 ), r_Q10, r_Q10 ), 10 );
+                rd2_Q10 = SKP_ADD32( rd1_Q10, 1024 );
+                rd2_Q10 = SKP_SUB32( rd2_Q10, SKP_SUB_LSHIFT32( Lambda_Q10, r_Q10, 1 ) );
+                q2_Q10  = SKP_SUB32( q1_Q10, 1024 );
+            } else {            /* r_Q10 &gt;= -1536 &amp;&amp; q1_Q10 &lt;= 512 */
+                rr_Q20  = SKP_SMULBB( offset_Q10, Lambda_Q10 );
+                rd2_Q10 = SKP_RSHIFT( SKP_SMLABB( rr_Q20, r_Q10, r_Q10 ), 10 );
+                rd1_Q10 = SKP_ADD32( rd2_Q10, 1024 );
+                rd1_Q10 = SKP_ADD32( rd1_Q10, SKP_SUB_RSHIFT32( SKP_ADD_LSHIFT32( Lambda_Q10, r_Q10, 1 ), rr_Q20, 9 ) );
+                q1_Q10  = -1024;
+                q2_Q10  = 0;
+            }
+
+            if( rd1_Q10 &lt; rd2_Q10 ) {
+                psSS[ 0 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd1_Q10 ); 
+                psSS[ 1 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd2_Q10 );
+                psSS[ 0 ].Q_Q10 = q1_Q10;
+                psSS[ 1 ].Q_Q10 = q2_Q10;
+            } else {
+                psSS[ 0 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd2_Q10 );
+                psSS[ 1 ].RD_Q10 = SKP_ADD32( psDD-&gt;RD_Q10, rd1_Q10 );
+                psSS[ 0 ].Q_Q10 = q2_Q10;
+                psSS[ 1 ].Q_Q10 = q1_Q10;
+            }
+
+            /* Update states for best quantization */
+
+            /* Quantized excitation */
+            exc_Q10 = SKP_ADD32( offset_Q10, psSS[ 0 ].Q_Q10 );
+            exc_Q10 = ( exc_Q10 ^ dither ) - dither;
+
+            /* Add predictions */
+            LPC_exc_Q10 = exc_Q10 + SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 );
+            xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
+
+            /* Update states */
+            sLF_AR_shp_Q10         = SKP_SUB32(  xq_Q10, n_AR_Q10 );
+            psSS[ 0 ].sLTP_shp_Q10 = SKP_SUB32(  sLF_AR_shp_Q10, n_LF_Q10 );
+            psSS[ 0 ].LF_AR_Q12    = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
+            psSS[ 0 ].xq_Q14       = SKP_LSHIFT( xq_Q10,         4 );
+            psSS[ 0 ].LPC_exc_Q16  = SKP_LSHIFT( LPC_exc_Q10,    6 );
+
+            /* Update states for second best quantization */
+
+            /* Quantized excitation */
+            exc_Q10 = SKP_ADD32( offset_Q10, psSS[ 1 ].Q_Q10 );
+            exc_Q10 = ( exc_Q10 ^ dither ) - dither;
+
+            /* Add predictions */
+            LPC_exc_Q10 = exc_Q10 + SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 );
+            xq_Q10      = SKP_ADD32( LPC_exc_Q10, LPC_pred_Q10 );
+
+            /* Update states */
+            sLF_AR_shp_Q10         = SKP_SUB32(  xq_Q10, n_AR_Q10 );
+            psSS[ 1 ].sLTP_shp_Q10 = SKP_SUB32(  sLF_AR_shp_Q10, n_LF_Q10 );
+            psSS[ 1 ].LF_AR_Q12    = SKP_LSHIFT( sLF_AR_shp_Q10, 2 );
+            psSS[ 1 ].xq_Q14       = SKP_LSHIFT( xq_Q10,         4 );
+            psSS[ 1 ].LPC_exc_Q16  = SKP_LSHIFT( LPC_exc_Q10,    6 );
+        }
+
+        *smpl_buf_idx  = ( *smpl_buf_idx - 1 ) &amp; DECISION_DELAY_MASK;                   /* Index to newest samples              */
+        last_smple_idx = ( *smpl_buf_idx + decisionDelay ) &amp; DECISION_DELAY_MASK;       /* Index to decisionDelay old samples   */
+
+        /* Find winner */
+        RDmin_Q10 = psSampleState[ 0 ][ 0 ].RD_Q10;
+        Winner_ind = 0;
+        for( k = 1; k &lt; nStatesDelayedDecision; k++ ) {
+            if( psSampleState[ k ][ 0 ].RD_Q10 &lt; RDmin_Q10 ) {
+                RDmin_Q10   = psSampleState[ k ][ 0 ].RD_Q10;
+                Winner_ind = k;
+            }
+        }
+
+        /* Increase RD values of expired states */
+        Winner_rand_state = psDelDec[ Winner_ind ].RandState[ last_smple_idx ];
+        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
+            if( psDelDec[ k ].RandState[ last_smple_idx ] != Winner_rand_state ) {
+                psSampleState[ k ][ 0 ].RD_Q10 = SKP_ADD32( psSampleState[ k ][ 0 ].RD_Q10, ( SKP_int32_MAX &gt;&gt; 4 ) );
+                psSampleState[ k ][ 1 ].RD_Q10 = SKP_ADD32( psSampleState[ k ][ 1 ].RD_Q10, ( SKP_int32_MAX &gt;&gt; 4 ) );
+                SKP_assert( psSampleState[ k ][ 0 ].RD_Q10 &gt;= 0 );
+            }
+        }
+
+        /* Find worst in first set and best in second set */
+        RDmax_Q10  = psSampleState[ 0 ][ 0 ].RD_Q10;
+        RDmin_Q10  = psSampleState[ 0 ][ 1 ].RD_Q10;
+        RDmax_ind = 0;
+        RDmin_ind = 0;
+        for( k = 1; k &lt; nStatesDelayedDecision; k++ ) {
+            /* find worst in first set */
+            if( psSampleState[ k ][ 0 ].RD_Q10 &gt; RDmax_Q10 ) {
+                RDmax_Q10  = psSampleState[ k ][ 0 ].RD_Q10;
+                RDmax_ind = k;
+            }
+            /* find best in second set */
+            if( psSampleState[ k ][ 1 ].RD_Q10 &lt; RDmin_Q10 ) {
+                RDmin_Q10  = psSampleState[ k ][ 1 ].RD_Q10;
+                RDmin_ind = k;
+            }
+        }
+
+        /* Replace a state if best from second set outperforms worst in first set */
+        if( RDmin_Q10 &lt; RDmax_Q10 ) {
+            SKP_Silk_copy_del_dec_state( &amp;psDelDec[ RDmax_ind ], &amp;psDelDec[ RDmin_ind ], i ); 
+            SKP_memcpy( &amp;psSampleState[ RDmax_ind ][ 0 ], &amp;psSampleState[ RDmin_ind ][ 1 ], sizeof( NSQ_sample_struct ) );
+        }
+
+        /* Write samples from winner to output and long-term filter states */
+        psDD = &amp;psDelDec[ Winner_ind ];
+        if( subfr &gt; 0 || i &gt;= decisionDelay ) {
+            q[  i - decisionDelay ] = ( SKP_int )SKP_RSHIFT( psDD-&gt;Q_Q10[ last_smple_idx ], 10 );
+            xq[ i - decisionDelay ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( 
+                SKP_SMULWW( psDD-&gt;Xq_Q10[ last_smple_idx ], psDD-&gt;Gain_Q16[ last_smple_idx ] ), 10 ) );
+            NSQ-&gt;sLTP_shp_Q10[ NSQ-&gt;sLTP_shp_buf_idx - decisionDelay ] = psDD-&gt;Shape_Q10[ last_smple_idx ];
+            sLTP_Q16[          NSQ-&gt;sLTP_buf_idx     - decisionDelay ] = psDD-&gt;Pred_Q16[  last_smple_idx ];
+        }
+        NSQ-&gt;sLTP_shp_buf_idx++;
+        NSQ-&gt;sLTP_buf_idx++;
+
+        /* Update states */
+        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
+            psDD                                     = &amp;psDelDec[ k ];
+            psSS                                     = &amp;psSampleState[ k ][ 0 ];
+            psDD-&gt;LF_AR_Q12                          = psSS-&gt;LF_AR_Q12;
+            psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH + i ] = psSS-&gt;xq_Q14;
+            psDD-&gt;Xq_Q10[    *smpl_buf_idx ]         = SKP_RSHIFT( psSS-&gt;xq_Q14, 4 );
+            psDD-&gt;Q_Q10[     *smpl_buf_idx ]         = psSS-&gt;Q_Q10;
+            psDD-&gt;Pred_Q16[  *smpl_buf_idx ]         = psSS-&gt;LPC_exc_Q16;
+            psDD-&gt;Shape_Q10[ *smpl_buf_idx ]         = psSS-&gt;sLTP_shp_Q10;
+            psDD-&gt;Seed                               = SKP_ADD_RSHIFT32( psDD-&gt;Seed, psSS-&gt;Q_Q10, 10 );
+            psDD-&gt;RandState[ *smpl_buf_idx ]         = psDD-&gt;Seed;
+            psDD-&gt;RD_Q10                             = psSS-&gt;RD_Q10;
+            psDD-&gt;Gain_Q16[  *smpl_buf_idx ]         = Gain_Q16;
+        }
+    }
+    /* Update LPC states */
+    for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
+        psDD = &amp;psDelDec[ k ];
+        SKP_memcpy( psDD-&gt;sLPC_Q14, &amp;psDD-&gt;sLPC_Q14[ length ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
+    }
+}
+
+SKP_INLINE void SKP_Silk_nsq_del_dec_scale_states(
+    SKP_Silk_nsq_state  *NSQ,                   /* I/O  NSQ state                           */
+    NSQ_del_dec_struct  psDelDec[],             /* I/O  Delayed decision states             */
+    const SKP_int16     x[],                    /* I    Input in Q0                         */
+    SKP_int32           x_sc_Q10[],             /* O    Input scaled with 1/Gain in Q10     */
+    SKP_int             length,                 /* I    Length of input                     */
+    SKP_int16           sLTP[],                 /* I    Re-whitened LTP state in Q0         */
+    SKP_int32           sLTP_Q16[],             /* O    LTP state matching scaled input     */
+    SKP_int             subfr,                  /* I    Subframe number                     */
+    SKP_int             nStatesDelayedDecision, /* I    Number of del dec states            */
+    SKP_int             smpl_buf_idx,           /* I    Index to newest samples in buffers  */
+    const SKP_int       LTP_scale_Q14,          /* I    LTP state scaling                   */
+    const SKP_int32     Gains_Q16[ NB_SUBFR ],  /* I                                        */
+    const SKP_int       pitchL[ NB_SUBFR ]      /* I    Pitch lag                           */
+)
+{
+    SKP_int            i, k, scale_length, lag;
+    SKP_int32          inv_gain_Q16, gain_adj_Q16, inv_gain_Q32;
+    NSQ_del_dec_struct *psDD;
+
+    inv_gain_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gains_Q16[ subfr ], 1 ) );
+    inv_gain_Q16 = SKP_min( inv_gain_Q16, SKP_int16_MAX );
+    lag          = pitchL[ subfr ];
+    /* After rewhitening the LTP state is un-scaled. So scale with inv_gain_Q16 */
+    if( NSQ-&gt;rewhite_flag ) {
+        inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
+        if( subfr == 0 ) {
+            /* Do LTP downscaling */
+            inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, LTP_scale_Q14 ), 2 );
+        }
+        for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
+            SKP_assert( i &lt; MAX_FRAME_LENGTH );
+            sLTP_Q16[ i ] = SKP_SMULWB( inv_gain_Q32, sLTP[ i ] );
+        }
+    }
+
+    /* Adjust for changing gain */
+    if( inv_gain_Q16 != NSQ-&gt;prev_inv_gain_Q16 ) {
+        gain_adj_Q16 = SKP_DIV32_varQ( inv_gain_Q16, NSQ-&gt;prev_inv_gain_Q16, 16 );
+
+        for( k = 0; k &lt; nStatesDelayedDecision; k++ ) {
+            psDD = &amp;psDelDec[ k ];
+            
+            /* Scale scalar states */
+            psDD-&gt;LF_AR_Q12 = SKP_SMULWW( gain_adj_Q16, psDD-&gt;LF_AR_Q12 );
+            
+            /* scale short term state */
+            for( i = 0; i &lt; NSQ_LPC_BUF_LENGTH; i++ ) {
+                psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - i - 1 ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;sLPC_Q14[ NSQ_LPC_BUF_LENGTH - i - 1 ] );
+            }
+            for( i = 0; i &lt; DECISION_DELAY; i++ ) {
+                psDD-&gt;Pred_Q16[  i ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;Pred_Q16[  i ] );
+                psDD-&gt;Shape_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, psDD-&gt;Shape_Q10[ i ] );
+            }
+        }
+
+        /* Scale long term shaping state */
+
+        /* Calculate length to be scaled, Worst case: Next frame is voiced with max lag */
+        scale_length = length * NB_SUBFR;                                               /* aprox max lag */
+        scale_length = scale_length - SKP_SMULBB( NB_SUBFR - ( subfr + 1 ), length );   /* subtract samples that will be too old in next frame */
+        scale_length = SKP_max_int( scale_length, lag + LTP_ORDER );                    /* make sure to scale whole pitch period if voiced */
+
+        for( i = NSQ-&gt;sLTP_shp_buf_idx - scale_length; i &lt; NSQ-&gt;sLTP_shp_buf_idx; i++ ) {
+            NSQ-&gt;sLTP_shp_Q10[ i ] = SKP_SMULWW( gain_adj_Q16, NSQ-&gt;sLTP_shp_Q10[ i ] );
+        }
+
+        /* Scale LTP predict state */
+        if( NSQ-&gt;rewhite_flag == 0 ) {
+            for( i = NSQ-&gt;sLTP_buf_idx - lag - LTP_ORDER / 2; i &lt; NSQ-&gt;sLTP_buf_idx; i++ ) {
+                sLTP_Q16[ i ] = SKP_SMULWW( gain_adj_Q16, sLTP_Q16[ i ] );
+            }
+        }
+    }
+
+    /* Scale input */
+    for( i = 0; i &lt; length; i++ ) {
+        x_sc_Q10[ i ] = SKP_RSHIFT( SKP_SMULBB( x[ i ], ( SKP_int16 )inv_gain_Q16 ), 6 );
+    }
+
+    /* save inv_gain */
+    SKP_assert( inv_gain_Q16 != 0 );
+    NSQ-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
+}
+
+SKP_INLINE void SKP_Silk_copy_del_dec_state(
+    NSQ_del_dec_struct  *DD_dst,                /* I    Dst del dec state                   */
+    NSQ_del_dec_struct  *DD_src,                /* I    Src del dec state                   */
+    SKP_int             LPC_state_idx           /* I    Index to LPC buffer                 */
+)
+{
+    SKP_memcpy( DD_dst-&gt;RandState, DD_src-&gt;RandState,   DECISION_DELAY * sizeof( SKP_int   ) );
+    SKP_memcpy( DD_dst-&gt;Q_Q10,     DD_src-&gt;Q_Q10,       DECISION_DELAY * sizeof( SKP_int32 ) );
+    SKP_memcpy( DD_dst-&gt;Pred_Q16,  DD_src-&gt;Pred_Q16,    DECISION_DELAY * sizeof( SKP_int32 ) );
+    SKP_memcpy( DD_dst-&gt;Shape_Q10, DD_src-&gt;Shape_Q10,   DECISION_DELAY * sizeof( SKP_int32 ) );
+    SKP_memcpy( DD_dst-&gt;Xq_Q10,    DD_src-&gt;Xq_Q10,      DECISION_DELAY * sizeof( SKP_int32 ) );
+
+    SKP_memcpy( &amp;DD_dst-&gt;sLPC_Q14[ LPC_state_idx ], &amp;DD_src-&gt;sLPC_Q14[ LPC_state_idx ], NSQ_LPC_BUF_LENGTH * sizeof( SKP_int32 ) );
+    DD_dst-&gt;LF_AR_Q12 = DD_src-&gt;LF_AR_Q12;
+    DD_dst-&gt;Seed      = DD_src-&gt;Seed;
+    DD_dst-&gt;SeedInit  = DD_src-&gt;SeedInit;
+    DD_dst-&gt;RD_Q10    = DD_src-&gt;RD_Q10;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_PLCc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,435 +1,389 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-#include &quot;SKP_Silk_PLC.h&quot;
-
-#define NB_ATT 2
-static const SKP_int16 HARM_ATT_Q15[NB_ATT]              = { 32440, 31130 }; /* 0.99, 0.95 */
-static const SKP_int16 PLC_RAND_ATTENUATE_V_Q15[NB_ATT]  = { 31130, 26214 }; /* 0.95, 0.8 */
-static const SKP_int16 PLC_RAND_ATTENUATE_UV_Q15[NB_ATT] = { 32440, 29491 }; /* 0.99, 0.9 */
-
-void SKP_Silk_PLC_Reset(
-    SKP_Silk_decoder_state      *psDec              /* I/O Decoder state        */
-)
-{
-    psDec-&gt;sPLC.pitchL_Q8 = SKP_RSHIFT( psDec-&gt;frame_length, 1 );
-}
-
-void SKP_Silk_PLC(
-
-
-
-
-
-    SKP_Silk_decoder_state      *psDec,             /* I Decoder state          */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I Decoder control        */
-    SKP_int16                   signal[],           /* O Concealed signal       */
-    SKP_int                     length,             /* I length of residual     */
-    SKP_int                     lost                /* I Loss flag              */
-)
-{
-    /* PLC control function */
-    if( psDec-&gt;fs_kHz != psDec-&gt;sPLC.fs_kHz ) {
-        SKP_Silk_PLC_Reset( psDec );
-        psDec-&gt;sPLC.fs_kHz = psDec-&gt;fs_kHz;
-    }
-
-    if( lost ) {
-        /****************************/
-        /* Generate Signal          */
-        /****************************/
-        SKP_Silk_PLC_conceal( psDec, psDecCtrl, signal, length );
-    } else {
-        /****************************/
-        /* Update state             */
-        /****************************/
-        SKP_Silk_PLC_update( psDec, psDecCtrl, signal, length );
-    }
-}
-
-/**************************************************/
-/* Update state of PLC                            */
-/**************************************************/
-void SKP_Silk_PLC_update(
-    SKP_Silk_decoder_state      *psDec,             /* (I/O) Decoder state          */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* (I/O) Decoder control        */
-    SKP_int16                   signal[],
-    SKP_int                     length
-)
-{
-    SKP_int32 LTP_Gain_Q14, temp_LTP_Gain_Q14;
-    SKP_int   i, j;
-    SKP_Silk_PLC_struct *psPLC;
-
-    psPLC = &amp;psDec-&gt;sPLC;
-
-    /* Update parameters used in case of packet loss */
-    psDec-&gt;prev_sigtype = psDecCtrl-&gt;sigtype;
-    LTP_Gain_Q14 = 0;
-    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
-        /* Find the parameters for the last subframe which contains a pitch pulse */
-        for( j = 0; j * psDec-&gt;subfr_length  &lt; psDecCtrl-&gt;pitchL[ NB_SUBFR - 1 ]; j++ ) {
-
-
-
-
-
-            temp_LTP_Gain_Q14 = 0;
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                temp_LTP_Gain_Q14 += psDecCtrl-&gt;LTPCoef_Q14[ ( NB_SUBFR - 1 - j ) * LTP_ORDER  + i ];
-            }
-            if( temp_LTP_Gain_Q14 &gt; LTP_Gain_Q14 ) {
-                LTP_Gain_Q14 = temp_LTP_Gain_Q14;
-                SKP_memcpy( psPLC-&gt;LTPCoef_Q14,
-                    &amp;psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( NB_SUBFR - 1 - j, LTP_ORDER ) ],
-                    LTP_ORDER * sizeof( SKP_int16 ) );
-
-                psPLC-&gt;pitchL_Q8 = SKP_LSHIFT( psDecCtrl-&gt;pitchL[ NB_SUBFR - 1 - j ], 8 );
-            }
-        }
-
-#if USE_SINGLE_TAP
-        SKP_memset( psPLC-&gt;LTPCoef_Q14, 0, LTP_ORDER * sizeof( SKP_int16 ) );
-        psPLC-&gt;LTPCoef_Q14[ LTP_ORDER / 2 ] = LTP_Gain_Q14;
-#endif
-
-        /* Limit LT coefs */
-        if( LTP_Gain_Q14 &lt; V_PITCH_GAIN_START_MIN_Q14 ) {
-            SKP_int   scale_Q10;
-            SKP_int32 tmp;
-
-            tmp = SKP_LSHIFT( V_PITCH_GAIN_START_MIN_Q14, 10 );
-            scale_Q10 = SKP_DIV32( tmp, SKP_max( LTP_Gain_Q14, 1 ) );
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                psPLC-&gt;LTPCoef_Q14[ i ] = SKP_RSHIFT( SKP_SMULBB( psPLC-&gt;LTPCoef_Q14[ i ], scale_Q10 ), 10 );
-            }
-        } else if( LTP_Gain_Q14 &gt; V_PITCH_GAIN_START_MAX_Q14 ) {
-            SKP_int   scale_Q14;
-            SKP_int32 tmp;
-
-            tmp = SKP_LSHIFT( V_PITCH_GAIN_START_MAX_Q14, 14 );
-            scale_Q14 = SKP_DIV32( tmp, SKP_max( LTP_Gain_Q14, 1 ) );
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                psPLC-&gt;LTPCoef_Q14[ i ] = SKP_RSHIFT( SKP_SMULBB( psPLC-&gt;LTPCoef_Q14[ i ], scale_Q14 ), 14 );
-            }
-        }
-    } else {
-        psPLC-&gt;pitchL_Q8 = SKP_LSHIFT( SKP_SMULBB( psDec-&gt;fs_kHz, 18 ), 8 );
-        SKP_memset( psPLC-&gt;LTPCoef_Q14, 0, LTP_ORDER * sizeof( SKP_int16 ));
-    }
-
-    /* Save LPC coeficients */
-    SKP_memcpy( psPLC-&gt;prevLPC_Q12, psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
-    psPLC-&gt;prevLTP_scale_Q14 = psDecCtrl-&gt;LTP_scale_Q14;
-
-
-
-
-
-
-    /* Save Gains */
-    SKP_memcpy( psPLC-&gt;prevGain_Q16, psDecCtrl-&gt;Gains_Q16, NB_SUBFR * sizeof( SKP_int32 ) );
-}
-
-void SKP_Silk_PLC_conceal(
-    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control */
-    SKP_int16                   signal[],           /* O concealed signal */
-    SKP_int                     length              /* I length of residual */
-)
-{
-    SKP_int   i, j, k;
-    SKP_int16 *B_Q14, exc_buf[ MAX_FRAME_LENGTH ], *exc_buf_ptr;
-    SKP_int16 rand_scale_Q14, A_Q12_tmp[ MAX_LPC_ORDER ];
-    SKP_int32 rand_seed, harm_Gain_Q15, rand_Gain_Q15;
-    SKP_int   lag, idx, shift1, shift2;
-    SKP_int32 energy1, energy2, *rand_ptr, *pred_lag_ptr, Atmp;
-    SKP_int32 sig_Q10[ MAX_FRAME_LENGTH ], *sig_Q10_ptr, LPC_exc_Q10, LPC_pred_Q10,  LTP_pred_Q14;
-    SKP_Silk_PLC_struct *psPLC;
-
-    psPLC = &amp;psDec-&gt;sPLC;
-
-    /* Update LTP buffer */
-    SKP_memcpy( psDec-&gt;sLTP_Q16, &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;frame_length ], psDec-&gt;frame_length * sizeof( SKP_int32 ) );
-
-    /* LPC concealment. Apply BWE to previous LPC */
-    SKP_Silk_bwexpander( psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order, BWE_COEF_Q16 );
-
-    /* Find random noise component */
-    /* Scale previous excitation signal */
-    exc_buf_ptr = exc_buf;
-    for( k = ( NB_SUBFR &gt;&gt; 1 ); k &lt; NB_SUBFR; k++ ) {
-        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-            exc_buf_ptr[ i ] = (SKP_int16)SKP_RSHIFT(
-                SKP_SMULWW( psDec-&gt;exc_Q10[ i + k * psDec-&gt;subfr_length ], psPLC-&gt;prevGain_Q16[ k ] ), 10 );
-        }
-        exc_buf_ptr += psDec-&gt;subfr_length;
-    }
-    /* Find the subframe with lowest energy of the last two and use that as random noise generator */
-    SKP_Silk_sum_sqr_shift( &amp;energy1, &amp;shift1, exc_buf,                         psDec-&gt;subfr_length );
-    SKP_Silk_sum_sqr_shift( &amp;energy2, &amp;shift2, &amp;exc_buf[ psDec-&gt;subfr_length ], psDec-&gt;subfr_length );
-
-    if( SKP_RSHIFT( energy1, shift2 ) &lt; SKP_RSHIFT( energy1, shift2 ) ) {
-        /* First sub-frame has lowest energy */
-        rand_ptr = &amp;psDec-&gt;exc_Q10[ SKP_max_int( 0, 3 * psDec-&gt;subfr_length - RAND_BUF_SIZE ) ];
-    } else {
-        /* Second sub-frame has lowest energy */
-        rand_ptr = &amp;psDec-&gt;exc_Q10[ SKP_max_int( 0, psDec-&gt;frame_length - RAND_BUF_SIZE ) ];
-
-
-
-
-
-    }
-
-    /* Setup Gain to random noise component */
-    B_Q14          = psPLC-&gt;LTPCoef_Q14;
-    rand_scale_Q14 = psPLC-&gt;randScale_Q14;
-
-    /* Setup attenuation gains */
-    harm_Gain_Q15 = HARM_ATT_Q15[ SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
-    if( psDec-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
-        rand_Gain_Q15 = PLC_RAND_ATTENUATE_V_Q15[  SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
-    } else {
-        rand_Gain_Q15 = PLC_RAND_ATTENUATE_UV_Q15[ SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
-    }
-
-    /* First Lost frame */
-    if( psDec-&gt;lossCnt == 0 ) {
-        rand_scale_Q14 = (1 &lt;&lt; 14 );
-
-        /* Reduce random noise Gain for voiced frames */
-        if( psDec-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                rand_scale_Q14 -= B_Q14[ i ];
-            }
-            rand_scale_Q14 = SKP_max_16( 3277, rand_scale_Q14 ); /* 0.2 */
-            rand_scale_Q14 = (SKP_int16)SKP_RSHIFT( SKP_SMULBB( rand_scale_Q14, psPLC-&gt;prevLTP_scale_Q14 ), 14 );
-        }
-
-        /* Reduce random noise for unvoiced frames with high LPC gain */
-        if( psDec-&gt;prev_sigtype == SIG_TYPE_UNVOICED ) {
-            SKP_int32 invGain_Q30, down_scale_Q30;
-
-            SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order );
-
-            down_scale_Q30 = SKP_min_32( SKP_RSHIFT( ( 1 &lt;&lt; 30 ), LOG2_INV_LPC_GAIN_HIGH_THRES ), invGain_Q30 );
-            down_scale_Q30 = SKP_max_32( SKP_RSHIFT( ( 1 &lt;&lt; 30 ), LOG2_INV_LPC_GAIN_LOW_THRES ), down_scale_Q30 );
-            down_scale_Q30 = SKP_LSHIFT( down_scale_Q30, LOG2_INV_LPC_GAIN_HIGH_THRES );
-
-            rand_Gain_Q15 = SKP_RSHIFT( SKP_SMULWB( down_scale_Q30, rand_Gain_Q15 ), 14 );
-        }
-    }
-
-    rand_seed           = psPLC-&gt;rand_seed;
-    lag                 = SKP_RSHIFT_ROUND( psPLC-&gt;pitchL_Q8, 8 );
-    psDec-&gt;sLTP_buf_idx = psDec-&gt;frame_length;
-
-    /***************************/
-    /* LTP synthesis filtering */
-    /***************************/
-
-
-
-
-
-    sig_Q10_ptr = sig_Q10;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* Setup pointer */
-        pred_lag_ptr = &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
-        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-            rand_seed = SKP_RAND( rand_seed );
-            idx = SKP_RSHIFT( rand_seed, 25 ) &amp; RAND_BUF_MASK;
-
-            /* Unrolled loop */
-            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], B_Q14[ 0 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], B_Q14[ 1 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], B_Q14[ 2 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], B_Q14[ 3 ] );
-            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], B_Q14[ 4 ] );
-            pred_lag_ptr++;
-
-            /* Generate LPC residual */
-            LPC_exc_Q10 = SKP_LSHIFT( SKP_SMULWB( rand_ptr[ idx ], rand_scale_Q14 ), 2 ); /* Random noise part */
-            LPC_exc_Q10 = SKP_ADD32( LPC_exc_Q10, SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );  /* Harmonic part */
-
-            /* Update states */
-            psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx ] = SKP_LSHIFT( LPC_exc_Q10, 6 );
-            psDec-&gt;sLTP_buf_idx++;
-
-            /* Save LPC residual */
-            sig_Q10_ptr[ i ] = LPC_exc_Q10;
-        }
-        sig_Q10_ptr += psDec-&gt;subfr_length;
-        /* Gradually reduce LTP gain */
-        for( j = 0; j &lt; LTP_ORDER; j++ ) {
-            B_Q14[ j ] = SKP_RSHIFT( SKP_SMULBB( harm_Gain_Q15, B_Q14[ j ] ), 15 );
-        }
-        /* Gradually reduce excitation gain */
-        rand_scale_Q14 = SKP_RSHIFT( SKP_SMULBB( rand_scale_Q14, rand_Gain_Q15 ), 15 );
-
-        /* Slowly increase pitch lag */
-        psPLC-&gt;pitchL_Q8 += SKP_SMULWB( psPLC-&gt;pitchL_Q8, PITCH_DRIFT_FAC_Q16 );
-        psPLC-&gt;pitchL_Q8 = SKP_min_32( psPLC-&gt;pitchL_Q8, SKP_LSHIFT( SKP_SMULBB( MAX_PITCH_LAG_MS, psDec-&gt;fs_kHz ), 8 ) );
-        lag = SKP_RSHIFT_ROUND( psPLC-&gt;pitchL_Q8, 8 );
-    }
-
-    /***************************/
-    /* LPC synthesis filtering */
-    /***************************/
-    sig_Q10_ptr = sig_Q10;
-    /* Preload LPC coeficients to array on stack. Gives small performance gain */
-    SKP_memcpy( A_Q12_tmp, psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order * sizeof(SKP_int16) );
-    SKP_assert( psDec-&gt;LPC_order &gt;= 10 ); /* check that unrolling works */
-
-
-
-
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ){
-            /* unrolled */
-            Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
-            LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
-            Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 2 ] );
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
-            Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 4 ] );
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
-            Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 6 ] );
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
-            Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 8 ] );
-            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
-            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
-            for( j = 10 ; j &lt; psDec-&gt;LPC_order ; j+=2 ) {
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ j ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 - j ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 - j ], Atmp );
-            }
-
-            /* Add prediction to LPC residual */
-            sig_Q10_ptr[ i ] = SKP_ADD32( sig_Q10_ptr[ i ], LPC_pred_Q10 );
-
-            /* Update states */
-            psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( sig_Q10_ptr[ i ], 4 );
-        }
-        sig_Q10_ptr += psDec-&gt;subfr_length;
-        /* Update LPC filter state */
-        SKP_memcpy( psDec-&gt;sLPC_Q14, &amp;psDec-&gt;sLPC_Q14[ psDec-&gt;subfr_length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
-    }
-
-    /* Scale with Gain */
-    for( i = 0; i &lt; psDec-&gt;frame_length; i++ ) {
-        signal[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( sig_Q10[ i ], psPLC-&gt;prevGain_Q16[ NB_SUBFR - 1 ] ), 10 ) );
-    }
-
-    /**************************************/
-    /* Update states                      */
-    /**************************************/
-    psPLC-&gt;rand_seed     = rand_seed;
-    psPLC-&gt;randScale_Q14 = rand_scale_Q14;
-    for( i = 0; i &lt; NB_SUBFR; i++ ) {
-        psDecCtrl-&gt;pitchL[ i ] = lag;
-    }
-
-
-
-
-
-}
-
-/* Glues concealed frames with new good recieved frames             */
-void SKP_Silk_PLC_glue_frames(
-    SKP_Silk_decoder_state      *psDec,             /* I/O decoder state    */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control  */
-    SKP_int16                   signal[],           /* I/O signal           */
-    SKP_int                     length              /* I length of residual */
-)
-{
-    SKP_int   i, energy_shift;
-    SKP_int32 energy;
-    SKP_Silk_PLC_struct *psPLC;
-    psPLC = &amp;psDec-&gt;sPLC;
-
-    if( psDec-&gt;lossCnt ) {
-        /* Calculate energy in concealed residual */
-        SKP_Silk_sum_sqr_shift( &amp;psPLC-&gt;conc_energy, &amp;psPLC-&gt;conc_energy_shift, signal, length );
-
-        psPLC-&gt;last_frame_lost = 1;
-    } else {
-        if( psDec-&gt;sPLC.last_frame_lost ) {
-            /* Calculate residual in decoded signal if last frame was lost */
-            SKP_Silk_sum_sqr_shift( &amp;energy, &amp;energy_shift, signal, length );
-
-            /* Normalize energies */
-            if( energy_shift &gt; psPLC-&gt;conc_energy_shift ) {
-                psPLC-&gt;conc_energy = SKP_RSHIFT( psPLC-&gt;conc_energy, energy_shift - psPLC-&gt;conc_energy_shift );
-            } else if( energy_shift &lt; psPLC-&gt;conc_energy_shift ) {
-                energy = SKP_RSHIFT( energy, psPLC-&gt;conc_energy_shift - energy_shift );
-            }
-
-            /* Fade in the energy difference */
-            if( energy &gt; psPLC-&gt;conc_energy ) {
-                SKP_int32 frac_Q24, LZ;
-                SKP_int32 gain_Q12, slope_Q12;
-
-                LZ = SKP_Silk_CLZ32( psPLC-&gt;conc_energy );
-                LZ = LZ - 1;
-                psPLC-&gt;conc_energy = SKP_LSHIFT( psPLC-&gt;conc_energy, LZ );
-                energy = SKP_RSHIFT( energy, SKP_max_32( 24 - LZ, 0 ) );
-
-                frac_Q24 = SKP_DIV32( psPLC-&gt;conc_energy, SKP_max( energy, 1 ) );
-
-                gain_Q12 = SKP_Silk_SQRT_APPROX( frac_Q24 );
-                slope_Q12 = SKP_DIV32_16( ( 1 &lt;&lt; 12 ) - gain_Q12, length );
-
-                for( i = 0; i &lt; length; i++ ) {
-
-
-
-
-
-                    signal[ i ] = SKP_RSHIFT( SKP_MUL( gain_Q12, signal[ i ] ), 12 );
-                    gain_Q12 += slope_Q12;
-                    gain_Q12 = SKP_min( gain_Q12, ( 1 &lt;&lt; 12 ) );
-                }
-            }
-        }
-        psPLC-&gt;last_frame_lost = 0;
-
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+#include &quot;SKP_Silk_PLC.h&quot;
+
+#define NB_ATT 2
+static const SKP_int16 HARM_ATT_Q15[NB_ATT]              = { 32440, 31130 }; /* 0.99, 0.95 */
+static const SKP_int16 PLC_RAND_ATTENUATE_V_Q15[NB_ATT]  = { 31130, 26214 }; /* 0.95, 0.8 */
+static const SKP_int16 PLC_RAND_ATTENUATE_UV_Q15[NB_ATT] = { 32440, 29491 }; /* 0.99, 0.9 */
+
+void SKP_Silk_PLC_Reset(
+    SKP_Silk_decoder_state      *psDec              /* I/O Decoder state        */
+)
+{
+    psDec-&gt;sPLC.pitchL_Q8 = SKP_RSHIFT( psDec-&gt;frame_length, 1 );
+}
+
+void SKP_Silk_PLC(
+    SKP_Silk_decoder_state      *psDec,             /* I Decoder state          */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I Decoder control        */
+    SKP_int16                   signal[],           /* O Concealed signal       */
+    SKP_int                     length,             /* I length of residual     */
+    SKP_int                     lost                /* I Loss flag              */
+)
+{
+    /* PLC control function */
+    if( psDec-&gt;fs_kHz != psDec-&gt;sPLC.fs_kHz ) {
+        SKP_Silk_PLC_Reset( psDec );
+        psDec-&gt;sPLC.fs_kHz = psDec-&gt;fs_kHz;
+    }
+
+    if( lost ) {
+        /****************************/
+        /* Generate Signal          */
+        /****************************/
+        SKP_Silk_PLC_conceal( psDec, psDecCtrl, signal, length );
+    } else {
+        /****************************/
+        /* Update state             */
+        /****************************/
+        SKP_Silk_PLC_update( psDec, psDecCtrl, signal, length );
+    }
+}
+
+/**************************************************/
+/* Update state of PLC                            */
+/**************************************************/
+void SKP_Silk_PLC_update(
+    SKP_Silk_decoder_state      *psDec,             /* (I/O) Decoder state          */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* (I/O) Decoder control        */
+    SKP_int16                   signal[],
+    SKP_int                     length
+)
+{
+    SKP_int32 LTP_Gain_Q14, temp_LTP_Gain_Q14;
+    SKP_int   i, j;
+    SKP_Silk_PLC_struct *psPLC;
+
+    psPLC = &amp;psDec-&gt;sPLC;
+
+    /* Update parameters used in case of packet loss */
+    psDec-&gt;prev_sigtype = psDecCtrl-&gt;sigtype;
+    LTP_Gain_Q14 = 0;
+    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
+        /* Find the parameters for the last subframe which contains a pitch pulse */
+        for( j = 0; j * psDec-&gt;subfr_length  &lt; psDecCtrl-&gt;pitchL[ NB_SUBFR - 1 ]; j++ ) {
+            temp_LTP_Gain_Q14 = 0;
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                temp_LTP_Gain_Q14 += psDecCtrl-&gt;LTPCoef_Q14[ ( NB_SUBFR - 1 - j ) * LTP_ORDER  + i ];
+            }
+            if( temp_LTP_Gain_Q14 &gt; LTP_Gain_Q14 ) {
+                LTP_Gain_Q14 = temp_LTP_Gain_Q14;
+                SKP_memcpy( psPLC-&gt;LTPCoef_Q14,
+                    &amp;psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( NB_SUBFR - 1 - j, LTP_ORDER ) ],
+                    LTP_ORDER * sizeof( SKP_int16 ) );
+
+                psPLC-&gt;pitchL_Q8 = SKP_LSHIFT( psDecCtrl-&gt;pitchL[ NB_SUBFR - 1 - j ], 8 );
+            }
+        }
+
+#if USE_SINGLE_TAP
+        SKP_memset( psPLC-&gt;LTPCoef_Q14, 0, LTP_ORDER * sizeof( SKP_int16 ) );
+        psPLC-&gt;LTPCoef_Q14[ LTP_ORDER / 2 ] = LTP_Gain_Q14;
+#endif
+
+        /* Limit LT coefs */
+        if( LTP_Gain_Q14 &lt; V_PITCH_GAIN_START_MIN_Q14 ) {
+            SKP_int   scale_Q10;
+            SKP_int32 tmp;
+
+            tmp = SKP_LSHIFT( V_PITCH_GAIN_START_MIN_Q14, 10 );
+            scale_Q10 = SKP_DIV32( tmp, SKP_max( LTP_Gain_Q14, 1 ) );
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                psPLC-&gt;LTPCoef_Q14[ i ] = SKP_RSHIFT( SKP_SMULBB( psPLC-&gt;LTPCoef_Q14[ i ], scale_Q10 ), 10 );
+            }
+        } else if( LTP_Gain_Q14 &gt; V_PITCH_GAIN_START_MAX_Q14 ) {
+            SKP_int   scale_Q14;
+            SKP_int32 tmp;
+
+            tmp = SKP_LSHIFT( V_PITCH_GAIN_START_MAX_Q14, 14 );
+            scale_Q14 = SKP_DIV32( tmp, SKP_max( LTP_Gain_Q14, 1 ) );
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                psPLC-&gt;LTPCoef_Q14[ i ] = SKP_RSHIFT( SKP_SMULBB( psPLC-&gt;LTPCoef_Q14[ i ], scale_Q14 ), 14 );
+            }
+        }
+    } else {
+        psPLC-&gt;pitchL_Q8 = SKP_LSHIFT( SKP_SMULBB( psDec-&gt;fs_kHz, 18 ), 8 );
+        SKP_memset( psPLC-&gt;LTPCoef_Q14, 0, LTP_ORDER * sizeof( SKP_int16 ));
+    }
+
+    /* Save LPC coeficients */
+    SKP_memcpy( psPLC-&gt;prevLPC_Q12, psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
+    psPLC-&gt;prevLTP_scale_Q14 = psDecCtrl-&gt;LTP_scale_Q14;
+
+    /* Save Gains */
+    SKP_memcpy( psPLC-&gt;prevGain_Q16, psDecCtrl-&gt;Gains_Q16, NB_SUBFR * sizeof( SKP_int32 ) );
+}
+
+void SKP_Silk_PLC_conceal(
+    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control */
+    SKP_int16                   signal[],           /* O concealed signal */
+    SKP_int                     length              /* I length of residual */
+)
+{
+    SKP_int   i, j, k;
+    SKP_int16 *B_Q14, exc_buf[ MAX_FRAME_LENGTH ], *exc_buf_ptr;
+    SKP_int16 rand_scale_Q14, A_Q12_tmp[ MAX_LPC_ORDER ];
+    SKP_int32 rand_seed, harm_Gain_Q15, rand_Gain_Q15;
+    SKP_int   lag, idx, shift1, shift2;
+    SKP_int32 energy1, energy2, *rand_ptr, *pred_lag_ptr, Atmp;
+    SKP_int32 sig_Q10[ MAX_FRAME_LENGTH ], *sig_Q10_ptr, LPC_exc_Q10, LPC_pred_Q10,  LTP_pred_Q14;
+    SKP_Silk_PLC_struct *psPLC;
+
+    psPLC = &amp;psDec-&gt;sPLC;
+
+    /* Update LTP buffer */
+    SKP_memcpy( psDec-&gt;sLTP_Q16, &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;frame_length ], psDec-&gt;frame_length * sizeof( SKP_int32 ) );
+
+    /* LPC concealment. Apply BWE to previous LPC */
+    SKP_Silk_bwexpander( psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order, BWE_COEF_Q16 );
+
+    /* Find random noise component */
+    /* Scale previous excitation signal */
+    exc_buf_ptr = exc_buf;
+    for( k = ( NB_SUBFR &gt;&gt; 1 ); k &lt; NB_SUBFR; k++ ) {
+        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+            exc_buf_ptr[ i ] = ( SKP_int16 )SKP_RSHIFT( 
+                SKP_SMULWW( psDec-&gt;exc_Q10[ i + k * psDec-&gt;subfr_length ], psPLC-&gt;prevGain_Q16[ k ] ), 10 );
+        }
+        exc_buf_ptr += psDec-&gt;subfr_length;
+    }
+    /* Find the subframe with lowest energy of the last two and use that as random noise generator */ 
+    SKP_Silk_sum_sqr_shift( &amp;energy1, &amp;shift1, exc_buf,                         psDec-&gt;subfr_length );
+    SKP_Silk_sum_sqr_shift( &amp;energy2, &amp;shift2, &amp;exc_buf[ psDec-&gt;subfr_length ], psDec-&gt;subfr_length );
+        
+    if( SKP_RSHIFT( energy1, shift2 ) &lt; SKP_RSHIFT( energy1, shift2 ) ) {
+        /* First sub-frame has lowest energy */
+        rand_ptr = &amp;psDec-&gt;exc_Q10[ SKP_max_int( 0, 3 * psDec-&gt;subfr_length - RAND_BUF_SIZE ) ];
+    } else {
+        /* Second sub-frame has lowest energy */
+        rand_ptr = &amp;psDec-&gt;exc_Q10[ SKP_max_int( 0, psDec-&gt;frame_length - RAND_BUF_SIZE ) ];
+    }
+
+    /* Setup Gain to random noise component */ 
+    B_Q14          = psPLC-&gt;LTPCoef_Q14;
+    rand_scale_Q14 = psPLC-&gt;randScale_Q14;
+
+    /* Setup attenuation gains */
+    harm_Gain_Q15 = HARM_ATT_Q15[ SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
+    if( psDec-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
+        rand_Gain_Q15 = PLC_RAND_ATTENUATE_V_Q15[  SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
+    } else {
+        rand_Gain_Q15 = PLC_RAND_ATTENUATE_UV_Q15[ SKP_min_int( NB_ATT - 1, psDec-&gt;lossCnt ) ];
+    }
+
+    /* First Lost frame */
+    if( psDec-&gt;lossCnt == 0 ) {
+        rand_scale_Q14 = (1 &lt;&lt; 14 );
+    
+        /* Reduce random noise Gain for voiced frames */
+        if( psDec-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                rand_scale_Q14 -= B_Q14[ i ];
+            }
+            rand_scale_Q14 = SKP_max_16( 3277, rand_scale_Q14 ); /* 0.2 */
+            rand_scale_Q14 = ( SKP_int16 )SKP_RSHIFT( SKP_SMULBB( rand_scale_Q14, psPLC-&gt;prevLTP_scale_Q14 ), 14 );
+        }
+
+        /* Reduce random noise for unvoiced frames with high LPC gain */
+        if( psDec-&gt;prev_sigtype == SIG_TYPE_UNVOICED ) {
+            SKP_int32 invGain_Q30, down_scale_Q30;
+            
+            SKP_Silk_LPC_inverse_pred_gain( &amp;invGain_Q30, psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order );
+            
+            down_scale_Q30 = SKP_min_32( SKP_RSHIFT( ( 1 &lt;&lt; 30 ), LOG2_INV_LPC_GAIN_HIGH_THRES ), invGain_Q30 );
+            down_scale_Q30 = SKP_max_32( SKP_RSHIFT( ( 1 &lt;&lt; 30 ), LOG2_INV_LPC_GAIN_LOW_THRES ), down_scale_Q30 );
+            down_scale_Q30 = SKP_LSHIFT( down_scale_Q30, LOG2_INV_LPC_GAIN_HIGH_THRES );
+            
+            rand_Gain_Q15 = SKP_RSHIFT( SKP_SMULWB( down_scale_Q30, rand_Gain_Q15 ), 14 );
+        }
+    }
+
+    rand_seed           = psPLC-&gt;rand_seed;
+    lag                 = SKP_RSHIFT_ROUND( psPLC-&gt;pitchL_Q8, 8 );
+    psDec-&gt;sLTP_buf_idx = psDec-&gt;frame_length;
+
+    /***************************/
+    /* LTP synthesis filtering */
+    /***************************/
+    sig_Q10_ptr = sig_Q10;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* Setup pointer */
+        pred_lag_ptr = &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
+        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+            rand_seed = SKP_RAND( rand_seed );
+            idx = SKP_RSHIFT( rand_seed, 25 ) &amp; RAND_BUF_MASK;
+
+            /* Unrolled loop */
+            LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], B_Q14[ 0 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], B_Q14[ 1 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], B_Q14[ 2 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], B_Q14[ 3 ] );
+            LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], B_Q14[ 4 ] );
+            pred_lag_ptr++;
+            
+            /* Generate LPC residual */
+            LPC_exc_Q10 = SKP_LSHIFT( SKP_SMULWB( rand_ptr[ idx ], rand_scale_Q14 ), 2 ); /* Random noise part */
+            LPC_exc_Q10 = SKP_ADD32( LPC_exc_Q10, SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );  /* Harmonic part */
+            
+            /* Update states */
+            psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx ] = SKP_LSHIFT( LPC_exc_Q10, 6 );
+            psDec-&gt;sLTP_buf_idx++;
+                
+            /* Save LPC residual */
+            sig_Q10_ptr[ i ] = LPC_exc_Q10;
+        }
+        sig_Q10_ptr += psDec-&gt;subfr_length;
+        /* Gradually reduce LTP gain */
+        for( j = 0; j &lt; LTP_ORDER; j++ ) {
+            B_Q14[ j ] = SKP_RSHIFT( SKP_SMULBB( harm_Gain_Q15, B_Q14[ j ] ), 15 );
+        }
+        /* Gradually reduce excitation gain */
+        rand_scale_Q14 = SKP_RSHIFT( SKP_SMULBB( rand_scale_Q14, rand_Gain_Q15 ), 15 );
+
+        /* Slowly increase pitch lag */
+        psPLC-&gt;pitchL_Q8 += SKP_SMULWB( psPLC-&gt;pitchL_Q8, PITCH_DRIFT_FAC_Q16 );
+        psPLC-&gt;pitchL_Q8 = SKP_min_32( psPLC-&gt;pitchL_Q8, SKP_LSHIFT( SKP_SMULBB( MAX_PITCH_LAG_MS, psDec-&gt;fs_kHz ), 8 ) );
+        lag = SKP_RSHIFT_ROUND( psPLC-&gt;pitchL_Q8, 8 );
+    }
+
+    /***************************/
+    /* LPC synthesis filtering */
+    /***************************/
+    sig_Q10_ptr = sig_Q10;
+    /* Preload LPC coeficients to array on stack. Gives small performance gain */
+    SKP_memcpy( A_Q12_tmp, psPLC-&gt;prevLPC_Q12, psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
+    SKP_assert( psDec-&gt;LPC_order &gt;= 10 ); /* check that unrolling works */
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ){
+            /* unrolled */
+            Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
+            LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
+            Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 2 ] );
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
+            Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 4 ] );
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
+            Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 6 ] );
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
+            Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 8 ] );
+            LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
+            LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
+            for( j = 10 ; j &lt; psDec-&gt;LPC_order ; j+=2 ) {
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ j ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 - j ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 - j ], Atmp );
+            }
+
+            /* Add prediction to LPC residual */
+            sig_Q10_ptr[ i ] = SKP_ADD32( sig_Q10_ptr[ i ], LPC_pred_Q10 );
+                
+            /* Update states */
+            psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( sig_Q10_ptr[ i ], 4 );
+        }
+        sig_Q10_ptr += psDec-&gt;subfr_length;
+        /* Update LPC filter state */
+        SKP_memcpy( psDec-&gt;sLPC_Q14, &amp;psDec-&gt;sLPC_Q14[ psDec-&gt;subfr_length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
+    }
+
+    /* Scale with Gain */
+    for( i = 0; i &lt; psDec-&gt;frame_length; i++ ) {
+        signal[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( sig_Q10[ i ], psPLC-&gt;prevGain_Q16[ NB_SUBFR - 1 ] ), 10 ) );
+    }
+
+    /**************************************/
+    /* Update states                      */
+    /**************************************/
+    psPLC-&gt;rand_seed     = rand_seed;
+    psPLC-&gt;randScale_Q14 = rand_scale_Q14;
+    for( i = 0; i &lt; NB_SUBFR; i++ ) {
+        psDecCtrl-&gt;pitchL[ i ] = lag;
+    }
+}
+
+/* Glues concealed frames with new good recieved frames             */
+void SKP_Silk_PLC_glue_frames(
+    SKP_Silk_decoder_state      *psDec,             /* I/O decoder state    */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control  */
+    SKP_int16                   signal[],           /* I/O signal           */
+    SKP_int                     length              /* I length of residual */
+)
+{
+    SKP_int   i, energy_shift;
+    SKP_int32 energy;
+    SKP_Silk_PLC_struct *psPLC;
+    psPLC = &amp;psDec-&gt;sPLC;
+
+    if( psDec-&gt;lossCnt ) {
+        /* Calculate energy in concealed residual */
+        SKP_Silk_sum_sqr_shift( &amp;psPLC-&gt;conc_energy, &amp;psPLC-&gt;conc_energy_shift, signal, length );
+        
+        psPLC-&gt;last_frame_lost = 1;
+    } else {
+        if( psDec-&gt;sPLC.last_frame_lost ) {
+            /* Calculate residual in decoded signal if last frame was lost */
+            SKP_Silk_sum_sqr_shift( &amp;energy, &amp;energy_shift, signal, length );
+
+            /* Normalize energies */
+            if( energy_shift &gt; psPLC-&gt;conc_energy_shift ) {
+                psPLC-&gt;conc_energy = SKP_RSHIFT( psPLC-&gt;conc_energy, energy_shift - psPLC-&gt;conc_energy_shift );
+            } else if( energy_shift &lt; psPLC-&gt;conc_energy_shift ) {
+                energy = SKP_RSHIFT( energy, psPLC-&gt;conc_energy_shift - energy_shift );
+            }
+
+            /* Fade in the energy difference */
+            if( energy &gt; psPLC-&gt;conc_energy ) {
+                SKP_int32 frac_Q24, LZ;
+                SKP_int32 gain_Q12, slope_Q12;
+
+                LZ = SKP_Silk_CLZ32( psPLC-&gt;conc_energy );
+                LZ = LZ - 1;
+                psPLC-&gt;conc_energy = SKP_LSHIFT( psPLC-&gt;conc_energy, LZ );
+                energy = SKP_RSHIFT( energy, SKP_max_32( 24 - LZ, 0 ) );
+                
+                frac_Q24 = SKP_DIV32( psPLC-&gt;conc_energy, SKP_max( energy, 1 ) );
+                
+                gain_Q12 = SKP_Silk_SQRT_APPROX( frac_Q24 );
+                slope_Q12 = SKP_DIV32_16( ( 1 &lt;&lt; 12 ) - gain_Q12, length );
+
+                for( i = 0; i &lt; length; i++ ) {
+                    signal[ i ] = SKP_RSHIFT( SKP_MUL( gain_Q12, signal[ i ] ), 12 );
+                    gain_Q12 += slope_Q12;
+                    gain_Q12 = SKP_min( gain_Q12, ( 1 &lt;&lt; 12 ) );
+                }
+            }
+        }
+        psPLC-&gt;last_frame_lost = 0;
+
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_PLCh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_PLC.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,93 +1,79 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_PLC_FIX_H
-#define SKP_SILK_PLC_FIX_H
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-
-
-
-
-#define BWE_COEF_Q16                    64880           /* 0.99 in Q16                      */
-#define V_PITCH_GAIN_START_MIN_Q14      11469           /* 0.7 in Q14                       */
-#define V_PITCH_GAIN_START_MAX_Q14      15565           /* 0.95 in Q14                      */
-#define MAX_PITCH_LAG_MS                18
-#define SA_THRES_Q8                     50
-#define USE_SINGLE_TAP                  1
-#define RAND_BUF_SIZE                   128
-#define RAND_BUF_MASK                   (RAND_BUF_SIZE - 1)
-#define LOG2_INV_LPC_GAIN_HIGH_THRES    4               /* 2^4 = 12 dB LPC gain             */
-#define LOG2_INV_LPC_GAIN_LOW_THRES     8               /* 2^8 = 24 dB LPC gain             */
-#define PITCH_DRIFT_FAC_Q16             655             /* 0.01 in Q16                      */
-
-void SKP_Silk_PLC_Reset(
-    SKP_Silk_decoder_state      *psDec              /* I/O Decoder state        */
-);
-
-void SKP_Silk_PLC(
-    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
-    SKP_int16                   signal[],           /* I/O  signal              */
-    SKP_int                     length,             /* I length of residual     */
-    SKP_int                     lost                /* I Loss flag              */
-);
-
-void SKP_Silk_PLC_update(
-    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
-    SKP_int16                   signal[],
-    SKP_int                     length
-);
-
-void SKP_Silk_PLC_conceal(
-    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
-    SKP_int16                   signal[],           /* O LPC residual signal    */
-    SKP_int                     length              /* I length of signal       */
-);
-
-void SKP_Silk_PLC_glue_frames(
-    SKP_Silk_decoder_state      *psDec,             /* I/O decoder state        */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
-    SKP_int16                   signal[],           /* I/O signal               */
-    SKP_int                     length              /* I length of signal       */
-);
-
-#endif
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_PLC_FIX_H
+#define SKP_SILK_PLC_FIX_H
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+#define BWE_COEF_Q16                    64880           /* 0.99 in Q16                      */
+#define V_PITCH_GAIN_START_MIN_Q14      11469           /* 0.7 in Q14                       */
+#define V_PITCH_GAIN_START_MAX_Q14      15565           /* 0.95 in Q14                      */
+#define MAX_PITCH_LAG_MS                18
+#define SA_THRES_Q8                     50
+#define USE_SINGLE_TAP                  1
+#define RAND_BUF_SIZE                   128
+#define RAND_BUF_MASK                   (RAND_BUF_SIZE - 1)
+#define LOG2_INV_LPC_GAIN_HIGH_THRES    4               /* 2^4 = 12 dB LPC gain             */
+#define LOG2_INV_LPC_GAIN_LOW_THRES     8               /* 2^8 = 24 dB LPC gain             */
+#define PITCH_DRIFT_FAC_Q16             655             /* 0.01 in Q16                      */
+
+void SKP_Silk_PLC_Reset(
+    SKP_Silk_decoder_state      *psDec              /* I/O Decoder state        */
+);
+
+void SKP_Silk_PLC(
+    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
+    SKP_int16                   signal[],           /* I/O  signal              */
+    SKP_int                     length,             /* I length of residual     */
+    SKP_int                     lost                /* I Loss flag              */
+);
+
+void SKP_Silk_PLC_update(
+    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
+    SKP_int16                   signal[],
+    SKP_int                     length
+);
+
+void SKP_Silk_PLC_conceal(
+    SKP_Silk_decoder_state      *psDec,             /* I/O Decoder state        */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
+    SKP_int16                   signal[],           /* O LPC residual signal    */
+    SKP_int                     length              /* I length of signal       */
+);
+
+void SKP_Silk_PLC_glue_frames(
+    SKP_Silk_decoder_state      *psDec,             /* I/O decoder state        */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O Decoder control      */
+    SKP_int16                   signal[],           /* I/O signal               */
+    SKP_int                     length              /* I length of signal       */
+);
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_SigProc_FIXh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_SigProc_FIX.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_SigProc_FIX.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_SigProc_FIX.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,887 +1,796 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-
-
-
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*! \file SKP_Silk_SigProc.h
- */
-
-#ifndef _SKP_SILK_SIGPROC_H_
-#define _SKP_SILK_SIGPROC_H_
-
-#ifdef  __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define SigProc_MAX_ORDER_LPC            16                    /* max order of the LPC analysis in schur() and k2a()    */
-#define SigProc_MAX_CORRELATION_LENGTH   640                   /* max input length to the correlation                    */
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &lt;string.h&gt;
-#include &lt;stdlib.h&gt;                                            /* for abs() */
-#include &quot;SKP_Silk_macros.h&quot;
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-
-
-/********************************************************************/
-/*                    SIGNAL PROCESSING FUNCTIONS                   */
-/********************************************************************/
-
-/* downsample by a factor 2 */
-void SKP_Silk_resample_1_2(
-    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]    */
-    SKP_int32            *S,             /* I/O: State vector [6]         */
-    SKP_int16            *out,           /* O:   8 kHz signal [len]       */
-    SKP_int32            *scratch,       /* I:   Scratch memory [4*len]   */
-    const SKP_int32      len             /* I:   Number of OUTPUT samples */
-);
-
-
-
-
-
-/*!
- * downsample by a factor 2, coarser (good for resampling audio)
- */
-void SKP_Silk_resample_1_2_coarse(
-    const SKP_int16    *in,              /* I:   16 kHz signal [2*len]    */
-          SKP_int32    *S,               /* I/O: state vector [4]         */
-          SKP_int16    *out,             /* O:   8 kHz signal [len]       */
-          SKP_int32    *scratch,         /* I:   scratch memory [3*len]   */
-    const SKP_int32    len               /* I:   number of OUTPUT samples */
-);
-
-/*!
- * downsample by a factor 2, coarsest (good for signals that are already oversampled, or for analysis purposes)
- */
-void SKP_Silk_resample_1_2_coarsest(
-    const SKP_int16     *in,             /* I:   16 kHz signal [2*len]    */
-    SKP_int32           *S,              /* I/O: State vector [2]         */
-    SKP_int16           *out,            /* O:   8 kHz signal [len]       */
-    SKP_int32           *scratch,        /* I:   Scratch memory [3*len]   */
-    const SKP_int32     len              /* I:   Number of OUTPUT samples */
-);
-
-/*!
- * upsample by a factor 2, coarser (good for resampling audio)
- */
-void SKP_Silk_resample_2_1_coarse(
-    const SKP_int16      *in,            /* I:   8 kHz signal [len]      */
-    SKP_int32            *S,             /* I/O: State vector [4]        */
-    SKP_int16            *out,           /* O:   16 kHz signal [2*len]   */
-    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
-    const SKP_int32      len             /* I:   Number of INPUT samples */
-);
-
-/*!
- * Resamples by a factor 1/3
- */
-void SKP_Silk_resample_1_3(
-    SKP_int16            *out,          /* O:   Fs_low signal  [inLen/3]              */
-    SKP_int32            *S,            /* I/O: State vector   [7]                    */
-    const SKP_int16      *in,           /* I:   Fs_high signal [inLen]                */
-    const SKP_int32      inLen          /* I:   Input length, must be a multiple of 3 */
-);
-
-/*!
- * Resamples by a factor 3/1
- */
-void SKP_Silk_resample_3_1(
-    SKP_int16            *out,          /* O:   Fs_high signal [inLen*3]          */
-
-
-
-
-
-    SKP_int32            *S,            /* I/O: State vector   [7]                */
-    const SKP_int16      *in,           /* I:   Fs_low signal  [inLen]            */
-    const SKP_int32      inLen          /* I:   Input length                      */
-);
-
-/*!
- * Resamples by a factor 2/3
- */
-void SKP_Silk_resample_2_3(
-    SKP_int16            *out,          /* O:   Fs_low signal    [inLen * 2/3]        */
-    SKP_int32            *S,            /* I/O: State vector    [7+4]                 */
-    const SKP_int16      *in,           /* I:   Fs_high signal    [inLen]             */
-    const SKP_int        inLen          /* I:   Input length, must be a multiple of 3 */
-);
-
-/*!
- * Resamples by a factor 3/2
- */
-void SKP_Silk_resample_3_2(
-    SKP_int16            *out,          /*   O: Fs_high signal  [inLen*3/2]              */
-    SKP_int32            *S,            /* I/O: State vector    [7+4]                    */
-    const SKP_int16      *in,           /* I:   Fs_low signal   [inLen]                  */
-    SKP_int              inLen          /* I:   Input length, must be a multiple of 2    */
-);
-
-/*!
- * Resamples by a factor 4/3
- */
-void SKP_Silk_resample_4_3(
-    SKP_int16            *out,          /* O:   Fs_low signal    [inLen * 4/3]           */
-    SKP_int32            *S,            /* I/O: State vector    [7+4+4]                  */
-    const SKP_int16      *in,           /* I:   Fs_high signal    [inLen]                */
-    const SKP_int        inLen          /* I:   input length, must be a multiple of 3    */
-);
-
-/*!
- * Resamples by a factor 3/4
- */
- void SKP_Silk_resample_3_4(
-    SKP_int16            *out,          /* O:   Fs_high signal  [inLen*3/4]              */
-    SKP_int32            *S,            /* I/O: State vector    [7+2+6]                  */
-    const SKP_int16      *in,           /* I:   Fs_low signal   [inLen]                  */
-    SKP_int              inLen          /* I:   Input length, must be a multiple of 4    */
-);
-
-/*!
- * resample with a factor 2/3 coarse
- */
-
-
-
-
-
-void SKP_Silk_resample_2_3_coarse(
-    SKP_int16            *out,          /* O:   Output signal                                                                 */
-    SKP_int16            *S,            /* I/O: Resampler state [ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]             */
-    const SKP_int16      *in,           /* I:   Input signal                                                                  */
-    const SKP_int        frameLenIn,    /* I:   Number of input samples                                                       */
-    SKP_int16            *scratch       /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ] */
-);
-
-/*!
- * resample with a factor 2/3 coarsest
- */
-void SKP_Silk_resample_2_3_coarsest(
-    SKP_int16            *out,          /* O:   Output signal                                                                   */
-    SKP_int16            *S,            /* I/O: Resampler state [ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ]             */
-    const SKP_int16      *in,           /* I:   Input signal                                                                    */
-    const SKP_int        frameLenIn,    /* I:   Number of input samples                                                         */
-    SKP_int16            *scratch       /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ] */
-);
-
-/*!
- * First order low-pass filter, with input as SKP_int16, running at 48 kHz
- */
-void SKP_Silk_lowpass_short(
-    const SKP_int16      *in,           /* I:   Q15 48 kHz signal; [len]    */
-    SKP_int32            *S,            /* I/O: Q25 state; length = 1       */
-    SKP_int32            *out,          /* O:   Q25 48 kHz signal; [len]    */
-    const SKP_int32      len            /* O:   Signal length               */
-);
-
-/*!
- * First order low-pass filter, with input as SKP_int32, running at 48 kHz
- */
-void SKP_Silk_lowpass_int(
-    const SKP_int32      *in,           /* I:   Q25 48 kHz signal; length = len  */
-    SKP_int32            *S,            /* I/O: Q25 state; length = 1            */
-    SKP_int32            *out,          /* O:   Q25 48 kHz signal; length = len  */
-    const SKP_int32      len            /* I:   Number of samples                */
-);
-
-/*!
- * First-order allpass filter
- */
-void SKP_Silk_allpass_int(
-    const SKP_int32      *in,          /* I:   Q25 input signal [len]               */
-    SKP_int32            *S,           /* I/O: Q25 state [1]                        */
-    SKP_int              A,            /* I:   Q15 coefficient    (0 &lt;= A &lt; 32768)  */
-    SKP_int32            *out,         /* O:   Q25 output signal [len]              */
-    const SKP_int32      len           /* I:   Number of samples                    */
-
-
-
-
-
-);
-
-/*!
- * second order ARMA filter
- * can handle (slowly) varying coefficients
- */
-void SKP_Silk_biquad(
-    const SKP_int16      *in,          /* I:   input signal                */
-    const SKP_int16      *B,           /* I:   MA coefficients, Q13 [3]    */
-    const SKP_int16      *A,           /* I:   AR coefficients, Q13 [2]    */
-          SKP_int32      *S,           /* I/O: state vector [2]            */
-          SKP_int16      *out,         /* O:   output signal               */
-    const SKP_int32      len           /* I:   signal length               */
-);
-/*!
- * second order ARMA filter;
- * slower than biquad() but uses more precise coefficients
- * can handle (slowly) varying coefficients
- */
-void SKP_Silk_biquad_alt(
-    const SKP_int16     *in,           /* I:    input signal                 */
-    const SKP_int32     *B_Q28,        /* I:    MA coefficients [3]          */
-    const SKP_int32     *A_Q28,        /* I:    AR coefficients [2]          */
-    SKP_int32           *S,            /* I/O: state vector [2]              */
-    SKP_int16           *out,          /* O:    output signal                */
-    const SKP_int32     len            /* I:    signal length (must be even) */
-);
-
-/*!
- * variable order MA filter. Prediction error filter implementation. Coeficients negated and starting with coef to x[n - 1]
- */
-void SKP_Silk_MA_Prediction(
-    const SKP_int16      *in,          /* I:   Input signal                                */
-    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q12 [order]     */
-    SKP_int32            *S,           /* I/O: State vector [order]                        */
-    SKP_int16            *out,         /* O:   Output signal                               */
-    const SKP_int32      len,          /* I:   Signal length                               */
-    const SKP_int32      order         /* I:  Filter order                                 */
-);
-
-void SKP_Silk_MA_Prediction_Q13(
-    const SKP_int16      *in,          /* I:   input signal                                */
-    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q13 [order]     */
-    SKP_int32            *S,           /* I/O: state vector [order]                        */
-    SKP_int16            *out,         /* O:   output signal                               */
-    SKP_int32            len,          /* I:   signal length                               */
-    SKP_int32            order         /* I:   filter order                                */
-);
-
-
-
-
-
-/*!
- * 16th order AR filter for LPC synthesis, coefficients are in Q12
- */
-void SKP_Silk_LPC_synthesis_order16(
-    const SKP_int16      *in,          /* I:   excitation signal                            */
-    const SKP_int16      *A_Q12,       /* I:   AR coefficients [16], between -8_Q0 and 8_Q0 */
-    const SKP_int32      Gain_Q26,     /* I:   gain                                         */
-          SKP_int32      *S,           /* I/O: state vector [16]                            */
-          SKP_int16      *out,         /* O:   output signal                                */
-    const SKP_int32      len           /* I:   signal length, must be multiple of 16        */
-);
-
-/* variable order MA prediction error filter. */
-/* Inverse filter of SKP_Silk_LPC_synthesis_filter */
-void SKP_Silk_LPC_analysis_filter(
-    const SKP_int16      *in,          /* I:   Input signal                                */
-    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q12 [order]     */
-    SKP_int16            *S,           /* I/O: State vector [order]                        */
-    SKP_int16            *out,         /* O:   Output signal                               */
-    const SKP_int32      len,          /* I:   Signal length                               */
-    const SKP_int32      Order         /* I:   Filter order                                */
-);
-
-/* even order AR filter */
-void SKP_Silk_LPC_synthesis_filter(
-    const SKP_int16      *in,          /* I:   excitation signal                               */
-    const SKP_int16      *A_Q12,       /* I:   AR coefficients [Order], between -8_Q0 and 8_Q0 */
-    const SKP_int32      Gain_Q26,     /* I:   gain                                            */
-    SKP_int32            *S,           /* I/O: state vector [Order]                            */
-    SKP_int16            *out,         /* O:   output signal                                   */
-    const SKP_int32      len,          /* I:   signal length                                   */
-    const SKP_int        Order         /* I:   filter order, must be even                      */
-);
-
-/* Chirp (bandwidth expand) LP AR filter */
-void SKP_Silk_bwexpander(
-    SKP_int16            *ar,          /* I/O  AR filter to be expanded (without leading 1)    */
-    const SKP_int        d,            /* I    Length of ar                                    */
-    SKP_int32            chirp_Q16     /* I    Chirp factor (typically in the range 0 to 1)    */
-);
-
-/* Chirp (bandwidth expand) LP AR filter */
-void SKP_Silk_bwexpander_32(
-    SKP_int32            *ar,          /* I/O  AR filter to be expanded (without leading 1)    */
-    const SKP_int        d,            /* I    Length of ar                                    */
-    SKP_int32            chirp_Q16     /* I    Chirp factor in Q16                             */
-);
-
-
-
-
-
-
-/* Compute inverse of LPC prediction gain, and                           */
-/* test if LPC coefficients are stable (all poles within unit circle)    */
-SKP_int SKP_Silk_LPC_inverse_pred_gain( /* O:  Returns 1 if unstable, otherwise 0          */
-    SKP_int32            *invGain_Q30,  /* O:  Inverse prediction gain, Q30 energy domain  */
-    const SKP_int16      *A_Q12,        /* I:  Prediction coefficients, Q12 [order]        */
-    const SKP_int        order          /* I:  Prediction order                            */
-);
-
-SKP_int SKP_Silk_LPC_inverse_pred_gain_Q13( /* O:  returns 1 if unstable, otherwise 0      */
-    SKP_int32            *invGain_Q30,  /* O:  Inverse prediction gain, Q30 energy domain  */
-    const SKP_int16      *A_Q13,        /* I:  Prediction coefficients, Q13 [order]        */
-    const SKP_int        order          /* I:  Prediction order                            */
-);
-
-/* split signal in two decimated bands using first-order allpass filters */
-void SKP_Silk_ana_filt_bank_1(
-    const SKP_int16      *in,           /* I:   Input signal [N]        */
-    SKP_int32            *S,            /* I/O: State vector [2]        */
-    SKP_int16            *outL,         /* O:   Low band [N/2]          */
-    SKP_int16            *outH,         /* O:   High band [N/2]         */
-    SKP_int32            *scratch,      /* I:   Scratch memory [3*N/2]  */
-    const SKP_int32      N              /* I:   Number of input samples */
-);
-
-/********************************************************************/
-/*                        SCALAR FUNCTIONS                            */
-/********************************************************************/
-
-/* approximation of 128 * log2() (exact inverse of approx 2^() below) */
-/* convert input to a log scale    */
-SKP_int32 SKP_Silk_lin2log(const SKP_int32 inLin);        /* I: input in linear scale        */
-
-/* Approximation of a sigmoid function */
-SKP_int SKP_Silk_sigm_Q15(SKP_int in_Q5);
-
-/* approximation of 2^() (exact inverse of approx log2() above) */
-/* convert input to a linear scale    */
-SKP_int32 SKP_Silk_log2lin(const SKP_int32 inLog_Q7);    /* I: input on log scale */
-
-/* Function that returns the maximum absolut value of the input vector */
-SKP_int16 SKP_Silk_int16_array_maxabs(  /* O   Maximum absolute value, max: 2^15-1   */
-    const SKP_int16     *vec,           /* I   Input vector  [len]                   */
-    const SKP_int32     len             /* I   Length of input vector                */
-);
-
-/* Compute number of bits to right shift the sum of squares of a vector    */
-/* of int16s to make it fit in an int32                                    */
-void SKP_Silk_sum_sqr_shift(
-
-
-
-
-
-    SKP_int32           *energy,        /* O   Energy of x, after shifting to the right            */
-    SKP_int             *shift,         /* O   Number of bits right shift applied to energy        */
-    const SKP_int16     *x,             /* I   Input vector                                        */
-    SKP_int             len             /* I   Length of input vector                              */
-);
-
-/* Calculates the reflection coefficients from the correlation sequence    */
-/* Faster than schur64(), but much less accurate.                          */
-/* Uses SMLAWB(), requiring armv5E and higher.                             */
-void SKP_Silk_schur(
-    SKP_int16           *rc_Q15,        /* O:  reflection coefficients [order] Q15         */
-    const SKP_int32     *c,             /* I:  correlations [order+1]                      */
-    const SKP_int32     order           /* I:  prediction order                            */
-);
-
-/* Calculates the reflection coefficients from the correlation sequence    */
-/* Slower than schur(), but more accurate.                                 */
-/* Uses SMULL(), available on armv4                                        */
-SKP_int32 SKP_Silk_schur64(             /* O:  returns residual energy                     */
-    SKP_int32           rc_Q16[],       /* O:  Reflection coefficients [order] Q16         */
-    const SKP_int32     c[],            /* I:  Correlations [order+1]                      */
-    SKP_int32           order           /* I:  Prediction order                            */
-);
-
-/* Step up function, converts reflection coefficients to prediction coefficients */
-void SKP_Silk_k2a(
-    SKP_int32           *A_Q24,         /* O:  Prediction coefficients [order] Q24         */
-    const SKP_int16     *rc_Q15,        /* I:  Reflection coefficients [order] Q15         */
-    const SKP_int32     order           /* I:  Prediction order                            */
-);
-
-/* Step up function, converts reflection coefficients to prediction coefficients */
-void SKP_Silk_k2a_Q16(
-    SKP_int32           *A_Q24,         /* O:  Prediction coefficients [order] Q24         */
-    const SKP_int32     *rc_Q16,        /* I:  Reflection coefficients [order] Q16         */
-    const SKP_int32     order           /* I:  Prediction order                            */
-);
-
-/* Apply sine window to signal vector.                                      */
-/* Window types:                                                            */
-/*    0 -&gt; sine window from 0 to pi                                         */
-/*    1 -&gt; sine window from 0 to pi/2                                       */
-/*    2 -&gt; sine window from pi/2 to pi                                      */
-/* every other sample of window is linearly interpolated, for speed         */
-void SKP_Silk_apply_sine_window(
-    SKP_int16           px_win[],       /* O  Pointer to windowed signal                  */
-    const SKP_int16     px[],           /* I  Pointer to input signal                     */
-    const SKP_int       win_type,       /* I  Selects a window type                       */
-
-
-
-
-
-    const SKP_int       length          /* I  Window length, multiple of 4                */
-);
-
-/* Compute autocorrelation */
-void SKP_Silk_autocorr(
-    SKP_int32           *results,       /* O  Result (length correlationCount)            */
-    SKP_int32           *scale,         /* O  Scaling of the correlation vector           */
-    const SKP_int16     *inputData,     /* I  Input data to correlate                     */
-    const SKP_int       inputDataSize,  /* I  Length of input                             */
-    const SKP_int       correlationCount /* I  Number of correlation taps to compute      */
-);
-
-/* Pitch estimator */
-#define SigProc_PITCH_EST_MIN_COMPLEX        0
-#define SigProc_PITCH_EST_MID_COMPLEX        1
-#define SigProc_PITCH_EST_MAX_COMPLEX        2
-
-void SKP_Silk_decode_pitch(
-    SKP_int            lagIndex,        /* I                                              */
-    SKP_int            contourIndex,    /* O                                              */
-    SKP_int            pitch_lags[],    /* O 4 pitch values                               */
-    SKP_int            Fs_kHz           /* I sampling frequency (kHz)                     */
-);
-
-SKP_int SKP_Silk_pitch_analysis_core(     /* O    Voicing estimate: 0 voiced, 1 unvoiced                      */
-    const SKP_int16    *signal,           /* I    Signal of length PITCH_EST_FRAME_LENGTH_MS*Fs_kHz           */
-    SKP_int            *pitch_out,        /* O    4 pitch lag values                                          */
-    SKP_int            *lagIndex,         /* O    Lag Index                                                   */
-    SKP_int            *contourIndex,     /* O    Pitch contour Index                                         */
-    SKP_int            *LTPCorr_Q15,      /* I/O  Normalized correlation; input: value from previous frame    */
-    SKP_int            prevLag,           /* I    Last lag of previous frame; set to zero is unvoiced         */
-    const SKP_int32    search_thres1_Q16, /* I    First stage threshold for lag candidates 0 - 1              */
-    const SKP_int      search_thres2_Q15, /* I    Final threshold for lag candidates 0 - 1                    */
-    const SKP_int      Fs_kHz,            /* I    Sample frequency (kHz)                                      */
-    const SKP_int      complexity         /* I    Complexity setting, 0-2, where 2 is highest                 */
-);
-
-/* parameter defining the size and accuracy of the piecewise linear    */
-/* cosine approximatin table.                                        */
-
-#define LSF_COS_TAB_SZ_FIX      128
-/* rom table with cosine values */
-extern const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[ LSF_COS_TAB_SZ_FIX + 1 ];
-
-void SKP_Silk_LPC_fit(
-          SKP_int16    *a_QQ,            /* O    stabilized LPC vector, Q(24-rshift) [L]         */
-          SKP_int32    *a_Q24,           /* I    LPC vector [L]                                  */
-    const SKP_int      QQ,               /* I    Q domain of output LPC vector                   */
-
-
-
-
-
-    const SKP_int      L                 /* I    Number of LPC parameters in the input vector    */
-);
-
-/* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter coefficients        */
-/* If not all roots are found, the a_Q16 coefficients are bandwidth expanded until convergence.    */
-void SKP_Silk_A2NLSF(
-    SKP_int            *NLSF,            /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d] */
-    SKP_int32          *a_Q16,           /* I/O  Monic whitening filter coefficients in Q16 [d]                */
-    const SKP_int      d                 /* I    Filter order (must be even)                                   */
-);
-
-/* compute whitening filter coefficients from normalized line spectral frequencies */
-void SKP_Silk_NLSF2A(
-    SKP_int16          *a,               /* o    monic whitening filter coefficients in Q12,  [d]    */
-    const SKP_int      *NLSF,            /* i    normalized line spectral frequencies in Q15, [d]    */
-    const SKP_int      d                 /* i    filter order (should be even)                       */
-);
-
-void SKP_Silk_insertion_sort_increasing(
-    SKP_int32            *a,            /* I/O   Unsorted / Sorted vector                */
-    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
-    const SKP_int        L,             /* I:    Vector length                           */
-    const SKP_int        K              /* I:    Number of correctly sorted positions    */
-);
-
-void SKP_Silk_insertion_sort_decreasing(
-    SKP_int              *a,            /* I/O:  Unsorted / Sorted vector                */
-    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
-    const SKP_int        L,             /* I:    Vector length                           */
-    const SKP_int        K              /* I:    Number of correctly sorted positions    */
-);
-
-void SKP_Silk_insertion_sort_decreasing_int16(
-    SKP_int16            *a,            /* I/O:  Unsorted / Sorted vector                */
-    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
-    const SKP_int        L,             /* I:    Vector length                           */
-    const SKP_int        K              /* I:    Number of correctly sorted positions    */
-);
-
-void SKP_Silk_insertion_sort_increasing_all_values(
-     SKP_int             *a,            /* I/O:  Unsorted / Sorted vector                */
-     const SKP_int       L              /* I:    Vector length                           */
-);
-
-/* NLSF stabilizer, for a single input data vector */
-void SKP_Silk_NLSF_stabilize(
-          SKP_int        *NLSF_Q15,      /* I/O:  Unstable/stabilized normalized LSF vector in Q15 [L]                    */
-    const SKP_int        *NDeltaMin_Q15, /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
-
-
-
-
-
-    const SKP_int        L               /* I:    Number of NLSF parameters in the input vector                           */
-);
-
-/* NLSF stabilizer, over multiple input column data vectors */
-void SKP_Silk_NLSF_stabilize_multi(
-          SKP_int        *NLSF_Q15,      /* I/O:  Unstable/stabilized normalized LSF vectors in Q15 [LxN]                 */
-    const SKP_int        *NDeltaMin_Q15, /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
-    const SKP_int        N,              /* I:    Number of input vectors to be stabilized                                */
-    const SKP_int        L               /* I:    NLSF vector dimension                                                   */
-);
-
-/* Laroia low complexity NLSF weights */
-void SKP_Silk_NLSF_VQ_weights_laroia(
-    SKP_int              *pNLSFW_Q6,     /* O:    Pointer to input vector weights            [D x 1]       */
-    const SKP_int        *pNLSF_Q15,     /* I:    Pointer to input vector                    [D x 1]       */
-    const SKP_int        D               /* I:    Input vector dimension (even)                            */
-);
-
-/* Compute reflection coefficients from input signal */
-void SKP_Silk_burg_modified(
-    SKP_int32            *res_nrg,           /* O   residual energy                                                 */
-    SKP_int              *res_nrgQ,          /* O   residual energy Q value                                         */
-    SKP_int32            A_Q16[],            /* O   prediction coefficients (length order)                          */
-    const SKP_int16      x[],                /* I   input signal, length: nb_subfr * ( D + subfr_length )           */
-    const SKP_int        subfr_length,       /* I   input signal subframe length (including D preceeding samples)   */
-    const SKP_int        nb_subfr,           /* I   number of subframes stacked in x                                */
-    const SKP_int32      WhiteNoiseFrac_Q32, /* I   fraction added to zero-lag autocorrelation                      */
-    const SKP_int        D                   /* I   order                                                           */
-);
-
-/* Multiply a vector by a constant */
-void SKP_Silk_scale_vector16_Q14(
-    SKP_int16            *data1,
-    SKP_int              gain_Q14,           /* Gain in Q14 */
-    SKP_int              dataSize
-);
-
-/* Copy and multiply a vector by a constant */
-void SKP_Silk_scale_copy_vector16(
-    SKP_int16            *data_out,
-    const SKP_int16      *data_in,
-    SKP_int32            gain_Q16,           /* I:   gain in Q16   */
-    const SKP_int        dataSize            /* I:   length        */
-);
-
-void SKP_Silk_scale_vector32_16_Q14(
-    SKP_int32            *data1,             /* I/O: Q0/Q0         */
-    SKP_int              gain_Q14,           /* I:   Q14           */
-
-
-
-
-
-    SKP_int              dataSize            /* I:   length        */
-);
-
-/* Multiply a vector by a constant, does not saturate output data */
-void SKP_Silk_scale_vector32_Q16(
-    SKP_int32            *data1,             /* I/O: Q0/Q0         */
-    SKP_int32            gain_Q16,           /* I:   gain in Q16 ( SKP_int16_MIN &lt;= gain_Q16 &lt;= SKP_int16_MAX + 65536 ) */
-    const SKP_int        dataSize            /* I:   length        */
-);
-
-/* Some for the LTP related function requires Q26 to work.*/
-void SKP_Silk_scale_vector32_Q26_lshift_18(
-    SKP_int32            *data1,             /* I/O: Q0/Q18        */
-    SKP_int32            gain_Q26,           /* I:   Q26           */
-    SKP_int              dataSize            /* I:   length        */
-);
-
-/********************************************************************/
-/*                        INLINE ARM MATH                             */
-/********************************************************************/
-
-/*    return sum(inVec1[i]*inVec2[i])    */
-/*    inVec1 and inVec2 should be increasing ordered, and starting address should be 4 byte aligned. (a factor of 4)*/
-SKP_int32 SKP_Silk_inner_prod_aligned(
-    const SKP_int16* const inVec1,           /* I   input vector 1    */
-    const SKP_int16* const inVec2,           /* I   input vector 2    */
-    const SKP_int          len               /* I   vector lengths    */
-);
-
-SKP_int32 SKP_Silk_inner_prod16_aligned_sat(
-    const SKP_int16* const inVec1,           /* I   input vector 1  */
-    const SKP_int16* const inVec2,           /* I   input vector 2  */
-    const SKP_int          len               /* I   vector lengths  */
-);
-
-SKP_int64 SKP_Silk_inner_prod_aligned_64(
-    const SKP_int32        *inVec1,          /* I   input vector 1    */
-    const SKP_int32        *inVec2,          /* I   input vector 2    */
-    const SKP_int          len               /* I   vector lengths    */
-);
-
-SKP_int64 SKP_Silk_inner_prod16_aligned_64(
-    const SKP_int16        *inVec1,          /* I   input vector 1    */
-    const SKP_int16        *inVec2,          /* I   input vector 2    */
-    const SKP_int          len               /* I   vector lengths    */
-);
-/********************************************************************/
-/*                                MACROS                                */
-
-
-
-
-
-/********************************************************************/
-
-/* Define 4-byte aligned array of SKP_int16 */
-#define SKP_array_of_int16_4_byte_aligned( arrayName, nElements )    \
-    SKP_int32 dummy_int32 ## arrayName;                                \
-    SKP_int16 arrayName[ (nElements) ]
-
-/* Useful Macros that can be adjusted to other platforms */
-#define SKP_memcpy(a, b, c)                memcpy((a), (b), (c))    /* Dest, Src, ByteCount */
-#define SKP_memset(a, b, c)                memset((a), (b), (c))    /* Dest, value, ByteCount */
-#define SKP_memmove(a, b, c)               memmove((a), (b), (c))    /* Dest, Src, ByteCount */
-/* fixed point macros */
-
-// (a32 * b32) output have to be 32bit int
-#define SKP_MUL(a32, b32)                  ((a32) * (b32))
-
-// (a32 * b32) output have to be 32bit uint
-#define SKP_MUL_uint(a32, b32)             SKP_MUL(a32, b32)
-
-// a32 + (b32 * c32) output have to be 32bit int
-#define SKP_MLA(a32, b32, c32)             SKP_ADD32((a32),((b32) * (c32)))
-
-// a32 + (b32 * c32) output have to be 32bit uint
-#define SKP_MLA_uint(a32, b32, c32)        SKP_MLA(a32, b32, c32)
-
-// ((a32 &gt;&gt; 16)  * (b32 &gt;&gt; 16)) output have to be 32bit int
-#define SKP_SMULTT(a32, b32)               (((a32) &gt;&gt; 16) * ((b32) &gt;&gt; 16))
-
-// a32 + ((a32 &gt;&gt; 16)  * (b32 &gt;&gt; 16)) output have to be 32bit int
-#define SKP_SMLATT(a32, b32, c32)          SKP_ADD32((a32),((b32) &gt;&gt; 16) * ((c32) &gt;&gt; 16))
-
-#define SKP_SMLALBB(a64, b16, c16)         SKP_ADD64((a64),(SKP_int64)((SKP_int32)(b16) * (SKP_int32)(c16)))
-
-// (a32 * b32)
-#define SKP_SMULL(a32, b32)                ((SKP_int64)(a32) * /*(SKP_int64)*/(b32))
-
-// multiply-accumulate macros that allow overflow in the addition (ie, no asserts in debug mode)
-#define SKP_MLA_ovflw(a32, b32, c32)       SKP_MLA(a32, b32, c32)
-#ifndef SKP_SMLABB_ovflw
-#    define SKP_SMLABB_ovflw(a32, b32, c32)    SKP_SMLABB(a32, b32, c32)
-#endif
-#define SKP_SMLABT_ovflw(a32, b32, c32)    SKP_SMLABT(a32, b32, c32)
-#define SKP_SMLATT_ovflw(a32, b32, c32)    SKP_SMLATT(a32, b32, c32)
-#define SKP_SMLAWB_ovflw(a32, b32, c32)    SKP_SMLAWB(a32, b32, c32)
-#define SKP_SMLAWT_ovflw(a32, b32, c32)    SKP_SMLAWT(a32, b32, c32)
-
-#define SKP_DIV64_32(a64, b32)             ((a64)/(b32))        /* TODO: rewrite it as a set of SKP_DIV32.*/
-
-
-
-
-
-
-#define SKP_DIV32_16(a32, b16)             ((SKP_int32)((a32) / (b16)))
-#define SKP_DIV32(a32, b32)                ((SKP_int32)((a32) / (b32)))
-
-// These macros enables checking for overflow in SKP_Silk_API_Debug.h
-#define SKP_ADD16(a, b)                    ((a) + (b))
-#define SKP_ADD32(a, b)                    ((a) + (b))
-#define SKP_ADD64(a, b)                    ((a) + (b))
-
-#define SKP_SUB16(a, b)                    ((a) - (b))
-#define SKP_SUB32(a, b)                    ((a) - (b))
-#define SKP_SUB64(a, b)                    ((a) - (b))
-
-#define SKP_SAT8(a)                        ((a) &gt; SKP_int8_MAX ? SKP_int8_MAX  : \
-                                           ((a) &lt; SKP_int8_MIN ? SKP_int8_MIN  : (a)))
-#define SKP_SAT16(a)                       ((a) &gt; SKP_int16_MAX ? SKP_int16_MAX : \
-                                           ((a) &lt; SKP_int16_MIN ? SKP_int16_MIN : (a)))
-#define SKP_SAT32(a)                       ((a) &gt; SKP_int32_MAX ? SKP_int32_MAX : \
-                                           ((a) &lt; SKP_int32_MIN ? SKP_int32_MIN : (a)))
-
-#define SKP_CHECK_FIT8(a)                  (a)
-#define SKP_CHECK_FIT16(a)                 (a)
-#define SKP_CHECK_FIT32(a)                 (a)
-
-#define SKP_ADD_SAT16(a, b)                (SKP_int16)SKP_SAT16( SKP_ADD32( (SKP_int32)(a), (b) ) )
-#define SKP_ADD_SAT64(a, b)                ((((a) + (b)) &amp; 0x8000000000000000LL) == 0 ?                            \
-                                           ((((a) &amp; (b)) &amp; 0x8000000000000000LL) != 0 ? SKP_int64_MIN : (a)+(b)) :    \
-                                           ((((a) | (b)) &amp; 0x8000000000000000LL) == 0 ? SKP_int64_MAX : (a)+(b)) )
-
-#define SKP_SUB_SAT16(a, b)                (SKP_int16)SKP_SAT16( SKP_SUB32( (SKP_int32)(a), (b) ) )
-#define SKP_SUB_SAT64(a, b)                ((((a)-(b)) &amp; 0x8000000000000000LL) == 0 ?                                                    \
-                                           (( (a) &amp; ((b)^0x8000000000000000LL) &amp; 0x8000000000000000LL) ? SKP_int64_MIN : (a)-(b)) :    \
-                                           ((((a)^0x8000000000000000LL) &amp; (b)  &amp; 0x8000000000000000LL) ? SKP_int64_MAX : (a)-(b)) )
-
-/* Saturation for positive input values */
-#define SKP_POS_SAT32(a)                   ((a) &gt; SKP_int32_MAX ? SKP_int32_MAX : (a))
-
-/* Add with saturation for positive input values */
-#define SKP_ADD_POS_SAT8(a, b)             ((((a)+(b)) &amp; 0x80)                 ? SKP_int8_MAX  : ((a)+(b)))
-#define SKP_ADD_POS_SAT16(a, b)            ((((a)+(b)) &amp; 0x8000)               ? SKP_int16_MAX : ((a)+(b)))
-#define SKP_ADD_POS_SAT32(a, b)            ((((a)+(b)) &amp; 0x80000000)           ? SKP_int32_MAX : ((a)+(b)))
-#define SKP_ADD_POS_SAT64(a, b)            ((((a)+(b)) &amp; 0x8000000000000000LL) ? SKP_int64_MAX : ((a)+(b)))
-
-#define SKP_LSHIFT8(a, shift)              ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 8
-#define SKP_LSHIFT16(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 16
-#define SKP_LSHIFT32(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 32
-#define SKP_LSHIFT64(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 64
-#define SKP_LSHIFT(a, shift)               SKP_LSHIFT32(a, shift)        // shift &gt;= 0, shift &lt; 32
-
-
-
-
-
-
-#define SKP_RSHIFT8(a, shift)              ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 8
-#define SKP_RSHIFT16(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 16
-#define SKP_RSHIFT32(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 32
-#define SKP_RSHIFT64(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 64
-#define SKP_RSHIFT(a, shift)               SKP_RSHIFT32(a, shift)        // shift &gt;= 0, shift &lt; 32
-
-/* saturates before shifting */
-#define SKP_LSHIFT_SAT16(a, shift)         (SKP_LSHIFT16( SKP_LIMIT( (a), SKP_RSHIFT16( SKP_int16_MIN, (shift) ),    \
-                                                                          SKP_RSHIFT16( SKP_int16_MAX, (shift) ) ), (shift) ))
-#define SKP_LSHIFT_SAT32(a, shift)         (SKP_LSHIFT32( SKP_LIMIT( (a), SKP_RSHIFT32( SKP_int32_MIN, (shift) ),    \
-                                                                          SKP_RSHIFT32( SKP_int32_MAX, (shift) ) ), (shift) ))
-
-#define SKP_LSHIFT_ovflw(a, shift)        ((a)&lt;&lt;(shift))        // shift &gt;= 0, allowed to overflow
-#define SKP_LSHIFT_uint(a, shift)         ((a)&lt;&lt;(shift))        // shift &gt;= 0
-#define SKP_RSHIFT_uint(a, shift)         ((a)&gt;&gt;(shift))        // shift &gt;= 0
-
-#define SKP_ADD_LSHIFT(a, b, shift)       ((a) + SKP_LSHIFT((b), (shift)))            // shift &gt;= 0
-#define SKP_ADD_LSHIFT32(a, b, shift)     SKP_ADD32((a), SKP_LSHIFT32((b), (shift)))    // shift &gt;= 0
-#define SKP_ADD_LSHIFT_uint(a, b, shift)  ((a) + SKP_LSHIFT_uint((b), (shift)))        // shift &gt;= 0
-#define SKP_ADD_RSHIFT(a, b, shift)       ((a) + SKP_RSHIFT((b), (shift)))            // shift &gt;= 0
-#define SKP_ADD_RSHIFT32(a, b, shift)     SKP_ADD32((a), SKP_RSHIFT32((b), (shift)))    // shift &gt;= 0
-#define SKP_ADD_RSHIFT_uint(a, b, shift)  ((a) + SKP_RSHIFT_uint((b), (shift)))        // shift &gt;= 0
-#define SKP_SUB_LSHIFT32(a, b, shift)     SKP_SUB32((a), SKP_LSHIFT32((b), (shift)))    // shift &gt;= 0
-#define SKP_SUB_RSHIFT32(a, b, shift)     SKP_SUB32((a), SKP_RSHIFT32((b), (shift)))    // shift &gt;= 0
-
-/* Requires that shift &gt; 0 */
-#define SKP_RSHIFT_ROUND(a, shift)        ((shift) == 1 ? ((a) &gt;&gt; 1) + ((a) &amp; 1) : (((a) &gt;&gt; ((shift) - 1)) + 1) &gt;&gt; 1)
-#define SKP_RSHIFT_ROUND64(a, shift)      ((shift) == 1 ? ((a) &gt;&gt; 1) + ((a) &amp; 1) : (((a) &gt;&gt; ((shift) - 1)) + 1) &gt;&gt; 1)
-
-/* Number of rightshift required to fit the multiplication */
-#define SKP_NSHIFT_MUL_32_32(a, b)        ( -(31- (32-SKP_Silk_CLZ32(SKP_abs(a)) + (32-SKP_Silk_CLZ32(SKP_abs(b))))) )
-#define SKP_NSHIFT_MUL_16_16(a, b)        ( -(15- (16-SKP_Silk_CLZ16(SKP_abs(a)) + (16-SKP_Silk_CLZ16(SKP_abs(b))))) )
-
-
-#define SKP_min(a, b)                     (((a) &lt; (b)) ? (a) : (b))
-#define SKP_max(a, b)                     (((a) &gt; (b)) ? (a) : (b))
-
-/* Macro to convert floating-point constants to fixed-point */
-#define SKP_FIX_CONST( C, Q )             ((SKP_int32)((C) * (1 &lt;&lt; (Q)) + 0.5))
-
-/* SKP_min() versions with typecast in the function call */
-SKP_INLINE SKP_int SKP_min_int(SKP_int a, SKP_int b)
-{
-    return (((a) &lt; (b)) ? (a) : (b));
-}
-SKP_INLINE SKP_int16 SKP_min_16(SKP_int16 a, SKP_int16 b)
-{
-    return (((a) &lt; (b)) ? (a) : (b));
-
-
-
-
-
-}
-SKP_INLINE SKP_int32 SKP_min_32(SKP_int32 a, SKP_int32 b)
-{
-    return (((a) &lt; (b)) ? (a) : (b));
-}
-SKP_INLINE SKP_int64 SKP_min_64(SKP_int64 a, SKP_int64 b)
-{
-    return (((a) &lt; (b)) ? (a) : (b));
-}
-
-/* SKP_min() versions with typecast in the function call */
-SKP_INLINE SKP_int SKP_max_int(SKP_int a, SKP_int b)
-{
-    return (((a) &gt; (b)) ? (a) : (b));
-}
-SKP_INLINE SKP_int16 SKP_max_16(SKP_int16 a, SKP_int16 b)
-{
-    return (((a) &gt; (b)) ? (a) : (b));
-}
-SKP_INLINE SKP_int32 SKP_max_32(SKP_int32 a, SKP_int32 b)
-{
-    return (((a) &gt; (b)) ? (a) : (b));
-}
-SKP_INLINE SKP_int64 SKP_max_64(SKP_int64 a, SKP_int64 b)
-{
-    return (((a) &gt; (b)) ? (a) : (b));
-}
-
-#define SKP_LIMIT( a, limit1, limit2)    ((limit1) &gt; (limit2) ? ((a) &gt; (limit1) ? (limit1) : ((a) &lt; (limit2) ? (limit2) : (a))) \
-                                                             : ((a) &gt; (limit2) ? (limit2) : ((a) &lt; (limit1) ? (limit1) : (a))))
-
-//#define SKP_non_neg(a)                 ((a) &amp; ((-(a)) &gt;&gt; (8 * sizeof(a) - 1)))   /* doesn't seem faster than SKP_max(0, a);
-
-#define SKP_abs(a)                       (((a) &gt;  0)  ? (a) : -(a))            // Be careful, SKP_abs returns wrong when input equals to SKP_intXX_MIN
-#define SKP_abs_int(a)                   (((a) ^ ((a) &gt;&gt; (8 * sizeof(a) - 1))) - ((a) &gt;&gt; (8 * sizeof(a) - 1)))
-#define SKP_abs_int32(a)                 (((a) ^ ((a) &gt;&gt; 31)) - ((a) &gt;&gt; 31))
-#define SKP_abs_int64(a)                 (((a) &gt;  0)  ? (a) : -(a))
-
-#define SKP_sign(a)                      ((a) &gt; 0 ? 1 : ( (a) &lt; 0 ? -1 : 0 ))
-
-#define SKP_sqrt(a)                      (sqrt(a))
-
-/* PSEUDO-RANDOM GENERATOR                                                          */
-/* Make sure to store the result as the seed for the next call (also in between     */
-/* frames), otherwise result won't be random at all. When only using some of the    */
-/* bits, take the most significant bits by right-shifting. Do not just mask off     */
-/* the lowest bits.                                                                 */
-#define SKP_RAND(seed)                   (SKP_MLA_ovflw(907633515, (seed), 196314165))
-
-
-
-
-
-// Add some multiplication functions that can be easily mapped to ARM.
-
-//    SKP_SMMUL: Signed top word multiply.
-//        ARMv6        2 instruction cycles.
-//        ARMv3M+        3 instruction cycles. use SMULL and ignore LSB registers.(except xM)
-//#define SKP_SMMUL(a32, b32)            (SKP_int32)SKP_RSHIFT(SKP_SMLAL(SKP_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16)), 16)
-// the following seems faster on x86
-#define SKP_SMMUL(a32, b32)              (SKP_int32)SKP_RSHIFT64(SKP_SMULL((a32), (b32)), 32)
-
-#include &quot;SKP_Silk_Inlines.h&quot;
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif //_SKP_SILK_H_
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef _SKP_SILK_SIGPROC_FIX_H_
+#define _SKP_SILK_SIGPROC_FIX_H_
+
+#ifdef  __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define SigProc_MAX_ORDER_LPC            16                    /* max order of the LPC analysis in schur() and k2a()    */
+#define SigProc_MAX_CORRELATION_LENGTH   640                   /* max input length to the correlation                    */
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;                                            /* for abs() */
+#include &quot;SKP_Silk_macros.h&quot;
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+
+        
+/********************************************************************/
+/*                    SIGNAL PROCESSING FUNCTIONS                   */
+/********************************************************************/
+
+/* downsample by a factor 2 */
+void SKP_Silk_resample_1_2(
+    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]    */
+    SKP_int32            *S,             /* I/O: State vector [6]         */
+    SKP_int16            *out,           /* O:   8 kHz signal [len]       */
+    SKP_int32            *scratch,       /* I:   Scratch memory [4*len]   */
+    const SKP_int32      len             /* I:   Number of OUTPUT samples */
+);
+
+/*! 
+ * downsample by a factor 2, coarser (good for resampling audio) 
+ */
+void SKP_Silk_resample_1_2_coarse(
+    const SKP_int16    *in,              /* I:   16 kHz signal [2*len]    */
+          SKP_int32    *S,               /* I/O: state vector [4]         */
+          SKP_int16    *out,             /* O:   8 kHz signal [len]       */
+          SKP_int32    *scratch,         /* I:   scratch memory [3*len]   */
+    const SKP_int32    len               /* I:   number of OUTPUT samples */
+);
+
+/*! 
+ * downsample by a factor 2, coarsest (good for signals that are already oversampled, or for analysis purposes) 
+ */
+void SKP_Silk_resample_1_2_coarsest(
+    const SKP_int16     *in,             /* I:   16 kHz signal [2*len]    */
+    SKP_int32           *S,              /* I/O: State vector [2]         */
+    SKP_int16           *out,            /* O:   8 kHz signal [len]       */
+    SKP_int32           *scratch,        /* I:   Scratch memory [3*len]   */
+    const SKP_int32     len              /* I:   Number of OUTPUT samples */
+);
+
+/*! 
+ * upsample by a factor 2, coarser (good for resampling audio) 
+ */
+void SKP_Silk_resample_2_1_coarse(
+    const SKP_int16      *in,            /* I:   8 kHz signal [len]      */
+    SKP_int32            *S,             /* I/O: State vector [4]        */
+    SKP_int16            *out,           /* O:   16 kHz signal [2*len]   */
+    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
+    const SKP_int32      len             /* I:   Number of INPUT samples */
+);
+
+/*!
+ * Resamples by a factor 1/3 
+ */
+void SKP_Silk_resample_1_3(
+    SKP_int16            *out,          /* O:   Fs_low signal  [inLen/3]              */
+    SKP_int32            *S,            /* I/O: State vector   [7]                    */
+    const SKP_int16      *in,           /* I:   Fs_high signal [inLen]                */
+    const SKP_int32      inLen          /* I:   Input length, must be a multiple of 3 */
+);
+
+/*!
+ * Resamples by a factor 3/1
+ */
+void SKP_Silk_resample_3_1(
+    SKP_int16            *out,          /* O:   Fs_high signal [inLen*3]          */
+    SKP_int32            *S,            /* I/O: State vector   [7]                */
+    const SKP_int16      *in,           /* I:   Fs_low signal  [inLen]            */
+    const SKP_int32      inLen          /* I:   Input length                      */
+);
+
+/*!
+ * Resamples by a factor 2/3
+ */
+void SKP_Silk_resample_2_3(
+    SKP_int16            *out,          /* O:   Fs_low signal    [inLen * 2/3]        */
+    SKP_int32            *S,            /* I/O: State vector    [7+4]                 */
+    const SKP_int16      *in,           /* I:   Fs_high signal    [inLen]             */
+    const SKP_int        inLen          /* I:   Input length, must be a multiple of 3 */
+); 
+
+/*!
+ * Resamples by a factor 3/2
+ */
+void SKP_Silk_resample_3_2(
+    SKP_int16            *out,          /*   O: Fs_high signal  [inLen*3/2]              */
+    SKP_int32            *S,            /* I/O: State vector    [7+4]                    */
+    const SKP_int16      *in,           /* I:   Fs_low signal   [inLen]                  */
+    SKP_int              inLen          /* I:   Input length, must be a multiple of 2    */
+);
+
+/*!
+ * Resamples by a factor 4/3
+ */
+void SKP_Silk_resample_4_3(
+    SKP_int16            *out,          /* O:   Fs_low signal    [inLen * 4/3]           */
+    SKP_int32            *S,            /* I/O: State vector    [7+4+4]                  */
+    const SKP_int16      *in,           /* I:   Fs_high signal    [inLen]                */
+    const SKP_int        inLen          /* I:   input length, must be a multiple of 3    */
+);
+
+/*!
+ * Resamples by a factor 3/4
+ */
+ void SKP_Silk_resample_3_4(
+    SKP_int16            *out,          /* O:   Fs_high signal  [inLen*3/4]              */
+    SKP_int32            *S,            /* I/O: State vector    [7+2+6]                  */
+    const SKP_int16      *in,           /* I:   Fs_low signal   [inLen]                  */
+    SKP_int              inLen          /* I:   Input length, must be a multiple of 4    */
+);
+
+/*! 
+ * resample with a factor 2/3 coarse
+ */
+void SKP_Silk_resample_2_3_coarse( 
+    SKP_int16            *out,          /* O:   Output signal                                                                 */
+    SKP_int16            *S,            /* I/O: Resampler state [ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]             */
+    const SKP_int16      *in,           /* I:   Input signal                                                                  */
+    const SKP_int        frameLenIn,    /* I:   Number of input samples                                                       */
+    SKP_int16            *scratch       /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ] */
+);
+
+/*! 
+ * resample with a factor 2/3 coarsest
+ */
+void SKP_Silk_resample_2_3_coarsest( 
+    SKP_int16            *out,          /* O:   Output signal                                                                   */
+    SKP_int16            *S,            /* I/O: Resampler state [ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ]             */
+    const SKP_int16      *in,           /* I:   Input signal                                                                    */
+    const SKP_int        frameLenIn,    /* I:   Number of input samples                                                         */
+    SKP_int16            *scratch       /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ] */
+);
+
+/*! 
+ * First order low-pass filter, with input as SKP_int16, running at 48 kHz 
+ */
+void SKP_Silk_lowpass_short(
+    const SKP_int16      *in,           /* I:   Q15 48 kHz signal; [len]    */
+    SKP_int32            *S,            /* I/O: Q25 state; length = 1       */
+    SKP_int32            *out,          /* O:   Q25 48 kHz signal; [len]    */
+    const SKP_int32      len            /* O:   Signal length               */
+);
+
+/*! 
+ * First order low-pass filter, with input as SKP_int32, running at 48 kHz 
+ */
+void SKP_Silk_lowpass_int(
+    const SKP_int32      *in,           /* I:   Q25 48 kHz signal; length = len  */
+    SKP_int32            *S,            /* I/O: Q25 state; length = 1            */
+    SKP_int32            *out,          /* O:   Q25 48 kHz signal; length = len  */
+    const SKP_int32      len            /* I:   Number of samples                */
+);
+
+/*! 
+ * First-order allpass filter 
+ */
+void SKP_Silk_allpass_int(
+    const SKP_int32      *in,          /* I:   Q25 input signal [len]               */
+    SKP_int32            *S,           /* I/O: Q25 state [1]                        */
+    SKP_int              A,            /* I:   Q15 coefficient    (0 &lt;= A &lt; 32768)  */
+    SKP_int32            *out,         /* O:   Q25 output signal [len]              */
+    const SKP_int32      len           /* I:   Number of samples                    */
+);
+
+/*! 
+ * second order ARMA filter
+ * can handle (slowly) varying coefficients 
+ */
+void SKP_Silk_biquad(
+    const SKP_int16      *in,          /* I:   input signal                */
+    const SKP_int16      *B,           /* I:   MA coefficients, Q13 [3]    */
+    const SKP_int16      *A,           /* I:   AR coefficients, Q13 [2]    */
+          SKP_int32      *S,           /* I/O: state vector [2]            */
+          SKP_int16      *out,         /* O:   output signal               */
+    const SKP_int32      len           /* I:   signal length               */
+);
+/*!
+ * second order ARMA filter; 
+ * slower than biquad() but uses more precise coefficients
+ * can handle (slowly) varying coefficients 
+ */
+void SKP_Silk_biquad_alt(
+    const SKP_int16     *in,           /* I:    input signal                 */
+    const SKP_int32     *B_Q28,        /* I:    MA coefficients [3]          */
+    const SKP_int32     *A_Q28,        /* I:    AR coefficients [2]          */
+    SKP_int32           *S,            /* I/O: state vector [2]              */
+    SKP_int16           *out,          /* O:    output signal                */
+    const SKP_int32     len            /* I:    signal length (must be even) */
+);
+
+/*! 
+ * variable order MA filter. Prediction error filter implementation. Coeficients negated and starting with coef to x[n - 1]
+ */
+void SKP_Silk_MA_Prediction(
+    const SKP_int16      *in,          /* I:   Input signal                                */
+    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q12 [order]     */
+    SKP_int32            *S,           /* I/O: State vector [order]                        */
+    SKP_int16            *out,         /* O:   Output signal                               */
+    const SKP_int32      len,          /* I:   Signal length                               */
+    const SKP_int32      order         /* I:  Filter order                                 */
+);
+
+void SKP_Silk_MA_Prediction_Q13(
+    const SKP_int16      *in,          /* I:   input signal                                */
+    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q13 [order]     */
+    SKP_int32            *S,           /* I/O: state vector [order]                        */
+    SKP_int16            *out,         /* O:   output signal                               */
+    SKP_int32            len,          /* I:   signal length                               */
+    SKP_int32            order         /* I:   filter order                                */
+);
+
+/*!
+ * 16th order AR filter for LPC synthesis, coefficients are in Q12
+ */
+void SKP_Silk_LPC_synthesis_order16(
+    const SKP_int16      *in,          /* I:   excitation signal                            */
+    const SKP_int16      *A_Q12,       /* I:   AR coefficients [16], between -8_Q0 and 8_Q0 */
+    const SKP_int32      Gain_Q26,     /* I:   gain                                         */
+          SKP_int32      *S,           /* I/O: state vector [16]                            */
+          SKP_int16      *out,         /* O:   output signal                                */
+    const SKP_int32      len           /* I:   signal length, must be multiple of 16        */
+);
+
+/* variable order MA prediction error filter. */
+/* Inverse filter of SKP_Silk_LPC_synthesis_filter */
+void SKP_Silk_LPC_analysis_filter(
+    const SKP_int16      *in,          /* I:   Input signal                                */
+    const SKP_int16      *B,           /* I:   MA prediction coefficients, Q12 [order]     */
+    SKP_int16            *S,           /* I/O: State vector [order]                        */
+    SKP_int16            *out,         /* O:   Output signal                               */
+    const SKP_int32      len,          /* I:   Signal length                               */
+    const SKP_int32      Order         /* I:   Filter order                                */
+);
+
+/* even order AR filter */
+void SKP_Silk_LPC_synthesis_filter(
+    const SKP_int16      *in,          /* I:   excitation signal                               */
+    const SKP_int16      *A_Q12,       /* I:   AR coefficients [Order], between -8_Q0 and 8_Q0 */
+    const SKP_int32      Gain_Q26,     /* I:   gain                                            */
+    SKP_int32            *S,           /* I/O: state vector [Order]                            */
+    SKP_int16            *out,         /* O:   output signal                                   */
+    const SKP_int32      len,          /* I:   signal length                                   */
+    const SKP_int        Order         /* I:   filter order, must be even                      */
+);
+
+/* Chirp (bandwidth expand) LP AR filter */
+void SKP_Silk_bwexpander( 
+    SKP_int16            *ar,          /* I/O  AR filter to be expanded (without leading 1)    */
+    const SKP_int        d,            /* I    Length of ar                                    */
+    SKP_int32            chirp_Q16     /* I    Chirp factor (typically in the range 0 to 1)    */
+);
+
+/* Chirp (bandwidth expand) LP AR filter */
+void SKP_Silk_bwexpander_32( 
+    SKP_int32            *ar,          /* I/O  AR filter to be expanded (without leading 1)    */
+    const SKP_int        d,            /* I    Length of ar                                    */
+    SKP_int32            chirp_Q16     /* I    Chirp factor in Q16                             */
+);
+
+/* Compute inverse of LPC prediction gain, and                           */
+/* test if LPC coefficients are stable (all poles within unit circle)    */
+SKP_int SKP_Silk_LPC_inverse_pred_gain( /* O:  Returns 1 if unstable, otherwise 0          */
+    SKP_int32            *invGain_Q30,  /* O:  Inverse prediction gain, Q30 energy domain  */
+    const SKP_int16      *A_Q12,        /* I:  Prediction coefficients, Q12 [order]        */
+    const SKP_int        order          /* I:  Prediction order                            */
+);
+
+SKP_int SKP_Silk_LPC_inverse_pred_gain_Q13( /* O:  returns 1 if unstable, otherwise 0      */
+    SKP_int32            *invGain_Q30,  /* O:  Inverse prediction gain, Q30 energy domain  */
+    const SKP_int16      *A_Q13,        /* I:  Prediction coefficients, Q13 [order]        */
+    const SKP_int        order          /* I:  Prediction order                            */
+);
+
+/* split signal in two decimated bands using first-order allpass filters */
+void SKP_Silk_ana_filt_bank_1(
+    const SKP_int16      *in,           /* I:   Input signal [N]        */
+    SKP_int32            *S,            /* I/O: State vector [2]        */
+    SKP_int16            *outL,         /* O:   Low band [N/2]          */
+    SKP_int16            *outH,         /* O:   High band [N/2]         */
+    SKP_int32            *scratch,      /* I:   Scratch memory [3*N/2]  */
+    const SKP_int32      N              /* I:   Number of input samples */
+);
+
+/********************************************************************/
+/*                        SCALAR FUNCTIONS                            */
+/********************************************************************/
+
+/* approximation of 128 * log2() (exact inverse of approx 2^() below) */
+/* convert input to a log scale    */
+SKP_int32 SKP_Silk_lin2log(const SKP_int32 inLin);        /* I: input in linear scale        */
+
+/* Approximation of a sigmoid function */
+SKP_int SKP_Silk_sigm_Q15(SKP_int in_Q5);
+
+/* approximation of 2^() (exact inverse of approx log2() above) */
+/* convert input to a linear scale    */ 
+SKP_int32 SKP_Silk_log2lin(const SKP_int32 inLog_Q7);    /* I: input on log scale */ 
+
+/* Function that returns the maximum absolut value of the input vector */
+SKP_int16 SKP_Silk_int16_array_maxabs(  /* O   Maximum absolute value, max: 2^15-1   */
+    const SKP_int16     *vec,           /* I   Input vector  [len]                   */ 
+    const SKP_int32     len             /* I   Length of input vector                */
+);
+
+/* Compute number of bits to right shift the sum of squares of a vector    */
+/* of int16s to make it fit in an int32                                    */
+void SKP_Silk_sum_sqr_shift(
+    SKP_int32           *energy,        /* O   Energy of x, after shifting to the right            */
+    SKP_int             *shift,         /* O   Number of bits right shift applied to energy        */
+    const SKP_int16     *x,             /* I   Input vector                                        */
+    SKP_int             len             /* I   Length of input vector                              */
+);
+
+/* Calculates the reflection coefficients from the correlation sequence    */
+/* Faster than schur64(), but much less accurate.                          */
+/* Uses SMLAWB(), requiring armv5E and higher.                             */
+void SKP_Silk_schur(
+    SKP_int16           *rc_Q15,        /* O:  reflection coefficients [order] Q15         */
+    const SKP_int32     *c,             /* I:  correlations [order+1]                      */
+    const SKP_int32     order           /* I:  prediction order                            */
+);
+
+/* Calculates the reflection coefficients from the correlation sequence    */
+/* Slower than schur(), but more accurate.                                 */
+/* Uses SMULL(), available on armv4                                        */
+SKP_int32 SKP_Silk_schur64(             /* O:  returns residual energy                     */
+    SKP_int32           rc_Q16[],       /* O:  Reflection coefficients [order] Q16         */
+    const SKP_int32     c[],            /* I:  Correlations [order+1]                      */
+    SKP_int32           order           /* I:  Prediction order                            */
+);
+
+/* Step up function, converts reflection coefficients to prediction coefficients */
+void SKP_Silk_k2a(
+    SKP_int32           *A_Q24,         /* O:  Prediction coefficients [order] Q24         */
+    const SKP_int16     *rc_Q15,        /* I:  Reflection coefficients [order] Q15         */
+    const SKP_int32     order           /* I:  Prediction order                            */
+);
+
+/* Step up function, converts reflection coefficients to prediction coefficients */
+void SKP_Silk_k2a_Q16(
+    SKP_int32           *A_Q24,         /* O:  Prediction coefficients [order] Q24         */
+    const SKP_int32     *rc_Q16,        /* I:  Reflection coefficients [order] Q16         */
+    const SKP_int32     order           /* I:  Prediction order                            */
+);
+
+/* Apply sine window to signal vector.                                      */
+/* Window types:                                                            */
+/*    0 -&gt; sine window from 0 to pi                                         */
+/*    1 -&gt; sine window from 0 to pi/2                                       */
+/*    2 -&gt; sine window from pi/2 to pi                                      */
+/* every other sample of window is linearly interpolated, for speed         */
+void SKP_Silk_apply_sine_window(
+    SKP_int16           px_win[],       /* O  Pointer to windowed signal                  */
+    const SKP_int16     px[],           /* I  Pointer to input signal                     */
+    const SKP_int       win_type,       /* I  Selects a window type                       */
+    const SKP_int       length          /* I  Window length, multiple of 4                */
+);
+
+/* Compute autocorrelation */
+void SKP_Silk_autocorr( 
+    SKP_int32           *results,       /* O  Result (length correlationCount)            */
+    SKP_int32           *scale,         /* O  Scaling of the correlation vector           */
+    const SKP_int16     *inputData,     /* I  Input data to correlate                     */
+    const SKP_int       inputDataSize,  /* I  Length of input                             */
+    const SKP_int       correlationCount /* I  Number of correlation taps to compute      */
+);
+
+/* Pitch estimator */
+#define SigProc_PITCH_EST_MIN_COMPLEX        0
+#define SigProc_PITCH_EST_MID_COMPLEX        1
+#define SigProc_PITCH_EST_MAX_COMPLEX        2
+
+void SKP_Silk_decode_pitch(
+    SKP_int            lagIndex,        /* I                                              */
+    SKP_int            contourIndex,    /* O                                              */
+    SKP_int            pitch_lags[],    /* O 4 pitch values                               */
+    SKP_int            Fs_kHz           /* I sampling frequency (kHz)                     */
+);
+
+SKP_int SKP_Silk_pitch_analysis_core(     /* O    Voicing estimate: 0 voiced, 1 unvoiced                      */
+    const SKP_int16    *signal,           /* I    Signal of length PITCH_EST_FRAME_LENGTH_MS*Fs_kHz           */
+    SKP_int            *pitch_out,        /* O    4 pitch lag values                                          */
+    SKP_int            *lagIndex,         /* O    Lag Index                                                   */
+    SKP_int            *contourIndex,     /* O    Pitch contour Index                                         */
+    SKP_int            *LTPCorr_Q15,      /* I/O  Normalized correlation; input: value from previous frame    */
+    SKP_int            prevLag,           /* I    Last lag of previous frame; set to zero is unvoiced         */
+    const SKP_int32    search_thres1_Q16, /* I    First stage threshold for lag candidates 0 - 1              */
+    const SKP_int      search_thres2_Q15, /* I    Final threshold for lag candidates 0 - 1                    */
+    const SKP_int      Fs_kHz,            /* I    Sample frequency (kHz)                                      */
+    const SKP_int      complexity         /* I    Complexity setting, 0-2, where 2 is highest                 */
+);
+
+/* parameter defining the size and accuracy of the piecewise linear    */
+/* cosine approximatin table.                                        */
+
+#define LSF_COS_TAB_SZ_FIX      128
+/* rom table with cosine values */
+extern const SKP_int SKP_Silk_LSFCosTab_FIX_Q12[ LSF_COS_TAB_SZ_FIX + 1 ];
+
+void SKP_Silk_LPC_fit(
+          SKP_int16    *a_QQ,            /* O    stabilized LPC vector, Q(24-rshift) [L]         */
+          SKP_int32    *a_Q24,           /* I    LPC vector [L]                                  */
+    const SKP_int      QQ,               /* I    Q domain of output LPC vector                   */
+    const SKP_int      L                 /* I    Number of LPC parameters in the input vector    */
+);
+
+/* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter coefficients        */
+/* If not all roots are found, the a_Q16 coefficients are bandwidth expanded until convergence.    */
+void SKP_Silk_A2NLSF(
+    SKP_int            *NLSF,            /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d] */
+    SKP_int32          *a_Q16,           /* I/O  Monic whitening filter coefficients in Q16 [d]                */
+    const SKP_int      d                 /* I    Filter order (must be even)                                   */
+);
+
+/* compute whitening filter coefficients from normalized line spectral frequencies */
+void SKP_Silk_NLSF2A(
+    SKP_int16          *a,               /* o    monic whitening filter coefficients in Q12,  [d]    */
+    const SKP_int      *NLSF,            /* i    normalized line spectral frequencies in Q15, [d]    */
+    const SKP_int      d                 /* i    filter order (should be even)                       */
+);
+
+void SKP_Silk_insertion_sort_increasing(
+    SKP_int32            *a,            /* I/O   Unsorted / Sorted vector                */
+    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
+    const SKP_int        L,             /* I:    Vector length                           */
+    const SKP_int        K              /* I:    Number of correctly sorted positions    */
+);
+
+void SKP_Silk_insertion_sort_decreasing(
+    SKP_int              *a,            /* I/O:  Unsorted / Sorted vector                */
+    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
+    const SKP_int        L,             /* I:    Vector length                           */
+    const SKP_int        K              /* I:    Number of correctly sorted positions    */
+);
+
+void SKP_Silk_insertion_sort_decreasing_int16(
+    SKP_int16            *a,            /* I/O:  Unsorted / Sorted vector                */
+    SKP_int              *index,        /* O:    Index vector for the sorted elements    */
+    const SKP_int        L,             /* I:    Vector length                           */
+    const SKP_int        K              /* I:    Number of correctly sorted positions    */
+);
+
+void SKP_Silk_insertion_sort_increasing_all_values(
+     SKP_int             *a,            /* I/O:  Unsorted / Sorted vector                */
+     const SKP_int       L              /* I:    Vector length                           */
+);
+
+/* NLSF stabilizer, for a single input data vector */
+void SKP_Silk_NLSF_stabilize(
+          SKP_int        *NLSF_Q15,      /* I/O:  Unstable/stabilized normalized LSF vector in Q15 [L]                    */
+    const SKP_int        *NDeltaMin_Q15, /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
+    const SKP_int        L               /* I:    Number of NLSF parameters in the input vector                           */
+);
+
+/* NLSF stabilizer, over multiple input column data vectors */
+void SKP_Silk_NLSF_stabilize_multi(
+          SKP_int        *NLSF_Q15,      /* I/O:  Unstable/stabilized normalized LSF vectors in Q15 [LxN]                 */
+    const SKP_int        *NDeltaMin_Q15, /* I:    Normalized delta min vector in Q15, NDeltaMin_Q15[L] must be &gt;= 1 [L+1] */
+    const SKP_int        N,              /* I:    Number of input vectors to be stabilized                                */
+    const SKP_int        L               /* I:    NLSF vector dimension                                                   */
+);
+
+/* Laroia low complexity NLSF weights */
+void SKP_Silk_NLSF_VQ_weights_laroia(
+    SKP_int              *pNLSFW_Q6,     /* O:    Pointer to input vector weights            [D x 1]       */
+    const SKP_int        *pNLSF_Q15,     /* I:    Pointer to input vector                    [D x 1]       */
+    const SKP_int        D               /* I:    Input vector dimension (even)                            */
+);
+
+/* Compute reflection coefficients from input signal */
+void SKP_Silk_burg_modified(        
+    SKP_int32            *res_nrg,           /* O   residual energy                                                 */
+    SKP_int              *res_nrgQ,          /* O   residual energy Q value                                         */
+    SKP_int32            A_Q16[],            /* O   prediction coefficients (length order)                          */
+    const SKP_int16      x[],                /* I   input signal, length: nb_subfr * ( D + subfr_length )           */
+    const SKP_int        subfr_length,       /* I   input signal subframe length (including D preceeding samples)   */
+    const SKP_int        nb_subfr,           /* I   number of subframes stacked in x                                */
+    const SKP_int32      WhiteNoiseFrac_Q32, /* I   fraction added to zero-lag autocorrelation                      */
+    const SKP_int        D                   /* I   order                                                           */
+);
+
+/* Multiply a vector by a constant */
+void SKP_Silk_scale_vector16_Q14( 
+    SKP_int16            *data1, 
+    SKP_int              gain_Q14,           /* Gain in Q14 */ 
+    SKP_int              dataSize
+);
+
+/* Copy and multiply a vector by a constant */
+void SKP_Silk_scale_copy_vector16( 
+    SKP_int16            *data_out, 
+    const SKP_int16      *data_in, 
+    SKP_int32            gain_Q16,           /* I:   gain in Q16   */
+    const SKP_int        dataSize            /* I:   length        */
+);
+
+void SKP_Silk_scale_vector32_16_Q14( 
+    SKP_int32            *data1,             /* I/O: Q0/Q0         */
+    SKP_int              gain_Q14,           /* I:   Q14           */
+    SKP_int              dataSize            /* I:   length        */
+);
+
+/* Multiply a vector by a constant, does not saturate output data */
+void SKP_Silk_scale_vector32_Q16( 
+    SKP_int32            *data1,             /* I/O: Q0/Q0         */
+    SKP_int32            gain_Q16,           /* I:   gain in Q16 ( SKP_int16_MIN &lt;= gain_Q16 &lt;= SKP_int16_MAX + 65536 ) */
+    const SKP_int        dataSize            /* I:   length        */
+);
+
+/* Some for the LTP related function requires Q26 to work.*/
+void SKP_Silk_scale_vector32_Q26_lshift_18( 
+    SKP_int32            *data1,             /* I/O: Q0/Q18        */
+    SKP_int32            gain_Q26,           /* I:   Q26           */
+    SKP_int              dataSize            /* I:   length        */
+);
+
+/********************************************************************/
+/*                        INLINE ARM MATH                             */
+/********************************************************************/
+
+/*    return sum(inVec1[i]*inVec2[i])    */
+/*    inVec1 and inVec2 should be increasing ordered, and starting address should be 4 byte aligned. (a factor of 4)*/
+SKP_int32 SKP_Silk_inner_prod_aligned(
+    const SKP_int16* const inVec1,           /* I   input vector 1    */ 
+    const SKP_int16* const inVec2,           /* I   input vector 2    */
+    const SKP_int          len               /* I   vector lengths    */
+);
+
+SKP_int32 SKP_Silk_inner_prod16_aligned_sat(
+    const SKP_int16* const inVec1,           /* I   input vector 1  */
+    const SKP_int16* const inVec2,           /* I   input vector 2  */
+    const SKP_int          len               /* I   vector lengths  */
+);
+
+SKP_int64 SKP_Silk_inner_prod_aligned_64(
+    const SKP_int32        *inVec1,          /* I   input vector 1    */ 
+    const SKP_int32        *inVec2,          /* I   input vector 2    */
+    const SKP_int          len               /* I   vector lengths    */
+);
+
+SKP_int64 SKP_Silk_inner_prod16_aligned_64(
+    const SKP_int16        *inVec1,          /* I   input vector 1    */ 
+    const SKP_int16        *inVec2,          /* I   input vector 2    */
+    const SKP_int          len               /* I   vector lengths    */
+);
+/********************************************************************/
+/*                                MACROS                                */
+/********************************************************************/
+
+/* Define 4-byte aligned array of SKP_int16 */
+#define SKP_array_of_int16_4_byte_aligned( arrayName, nElements )    \
+    SKP_int32 dummy_int32 ## arrayName;                                \
+    SKP_int16 arrayName[ (nElements) ]
+
+/* Useful Macros that can be adjusted to other platforms */
+#define SKP_memcpy(a, b, c)                memcpy((a), (b), (c))    /* Dest, Src, ByteCount */
+#define SKP_memset(a, b, c)                memset((a), (b), (c))    /* Dest, value, ByteCount */
+#define SKP_memmove(a, b, c)               memmove((a), (b), (c))    /* Dest, Src, ByteCount */
+/* fixed point macros */
+
+// (a32 * b32) output have to be 32bit int
+#define SKP_MUL(a32, b32)                  ((a32) * (b32))
+
+// (a32 * b32) output have to be 32bit uint
+#define SKP_MUL_uint(a32, b32)             SKP_MUL(a32, b32)
+
+// a32 + (b32 * c32) output have to be 32bit int
+#define SKP_MLA(a32, b32, c32)             SKP_ADD32((a32),((b32) * (c32)))
+
+// a32 + (b32 * c32) output have to be 32bit uint
+#define SKP_MLA_uint(a32, b32, c32)        SKP_MLA(a32, b32, c32)
+
+// ((a32 &gt;&gt; 16)  * (b32 &gt;&gt; 16)) output have to be 32bit int
+#define SKP_SMULTT(a32, b32)               (((a32) &gt;&gt; 16) * ((b32) &gt;&gt; 16))
+
+// a32 + ((a32 &gt;&gt; 16)  * (b32 &gt;&gt; 16)) output have to be 32bit int
+#define SKP_SMLATT(a32, b32, c32)          SKP_ADD32((a32),((b32) &gt;&gt; 16) * ((c32) &gt;&gt; 16))
+
+#define SKP_SMLALBB(a64, b16, c16)         SKP_ADD64((a64),(SKP_int64)((SKP_int32)(b16) * (SKP_int32)(c16)))
+
+// (a32 * b32)
+#define SKP_SMULL(a32, b32)                ((SKP_int64)(a32) * /*(SKP_int64)*/(b32))
+
+// multiply-accumulate macros that allow overflow in the addition (ie, no asserts in debug mode)
+#define SKP_MLA_ovflw(a32, b32, c32)       SKP_MLA(a32, b32, c32)
+#ifndef SKP_SMLABB_ovflw
+#    define SKP_SMLABB_ovflw(a32, b32, c32)    SKP_SMLABB(a32, b32, c32)
+#endif
+#define SKP_SMLABT_ovflw(a32, b32, c32)    SKP_SMLABT(a32, b32, c32)
+#define SKP_SMLATT_ovflw(a32, b32, c32)    SKP_SMLATT(a32, b32, c32)
+#define SKP_SMLAWB_ovflw(a32, b32, c32)    SKP_SMLAWB(a32, b32, c32)
+#define SKP_SMLAWT_ovflw(a32, b32, c32)    SKP_SMLAWT(a32, b32, c32)
+
+#define SKP_DIV64_32(a64, b32)             ((a64)/(b32))        /* TODO: rewrite it as a set of SKP_DIV32.*/
+
+#define SKP_DIV32_16(a32, b16)             ((SKP_int32)((a32) / (b16)))
+#define SKP_DIV32(a32, b32)                ((SKP_int32)((a32) / (b32)))
+
+// These macros enables checking for overflow in SKP_Silk_API_Debug.h
+#define SKP_ADD16(a, b)                    ((a) + (b))
+#define SKP_ADD32(a, b)                    ((a) + (b))
+#define SKP_ADD64(a, b)                    ((a) + (b))
+
+#define SKP_SUB16(a, b)                    ((a) - (b))
+#define SKP_SUB32(a, b)                    ((a) - (b))
+#define SKP_SUB64(a, b)                    ((a) - (b))
+
+#define SKP_SAT8(a)                        ((a) &gt; SKP_int8_MAX ? SKP_int8_MAX  : \
+                                           ((a) &lt; SKP_int8_MIN ? SKP_int8_MIN  : (a)))
+#define SKP_SAT16(a)                       ((a) &gt; SKP_int16_MAX ? SKP_int16_MAX : \
+                                           ((a) &lt; SKP_int16_MIN ? SKP_int16_MIN : (a)))
+#define SKP_SAT32(a)                       ((a) &gt; SKP_int32_MAX ? SKP_int32_MAX : \
+                                           ((a) &lt; SKP_int32_MIN ? SKP_int32_MIN : (a)))
+
+#define SKP_CHECK_FIT8(a)                  (a)
+#define SKP_CHECK_FIT16(a)                 (a)
+#define SKP_CHECK_FIT32(a)                 (a)
+
+#define SKP_ADD_SAT16(a, b)                (SKP_int16)SKP_SAT16( SKP_ADD32( (SKP_int32)(a), (b) ) )
+#define SKP_ADD_SAT64(a, b)                ((((a) + (b)) &amp; 0x8000000000000000LL) == 0 ?                            \
+                                           ((((a) &amp; (b)) &amp; 0x8000000000000000LL) != 0 ? SKP_int64_MIN : (a)+(b)) :    \
+                                           ((((a) | (b)) &amp; 0x8000000000000000LL) == 0 ? SKP_int64_MAX : (a)+(b)) )
+
+#define SKP_SUB_SAT16(a, b)                (SKP_int16)SKP_SAT16( SKP_SUB32( (SKP_int32)(a), (b) ) )
+#define SKP_SUB_SAT64(a, b)                ((((a)-(b)) &amp; 0x8000000000000000LL) == 0 ?                                                    \
+                                           (( (a) &amp; ((b)^0x8000000000000000LL) &amp; 0x8000000000000000LL) ? SKP_int64_MIN : (a)-(b)) :    \
+                                           ((((a)^0x8000000000000000LL) &amp; (b)  &amp; 0x8000000000000000LL) ? SKP_int64_MAX : (a)-(b)) )
+
+/* Saturation for positive input values */ 
+#define SKP_POS_SAT32(a)                   ((a) &gt; SKP_int32_MAX ? SKP_int32_MAX : (a))
+
+/* Add with saturation for positive input values */ 
+#define SKP_ADD_POS_SAT8(a, b)             ((((a)+(b)) &amp; 0x80)                 ? SKP_int8_MAX  : ((a)+(b)))
+#define SKP_ADD_POS_SAT16(a, b)            ((((a)+(b)) &amp; 0x8000)               ? SKP_int16_MAX : ((a)+(b)))
+#define SKP_ADD_POS_SAT32(a, b)            ((((a)+(b)) &amp; 0x80000000)           ? SKP_int32_MAX : ((a)+(b)))
+#define SKP_ADD_POS_SAT64(a, b)            ((((a)+(b)) &amp; 0x8000000000000000LL) ? SKP_int64_MAX : ((a)+(b)))
+
+#define SKP_LSHIFT8(a, shift)              ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 8
+#define SKP_LSHIFT16(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 16
+#define SKP_LSHIFT32(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 32
+#define SKP_LSHIFT64(a, shift)             ((a)&lt;&lt;(shift))                // shift &gt;= 0, shift &lt; 64
+#define SKP_LSHIFT(a, shift)               SKP_LSHIFT32(a, shift)        // shift &gt;= 0, shift &lt; 32
+
+#define SKP_RSHIFT8(a, shift)              ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 8
+#define SKP_RSHIFT16(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 16
+#define SKP_RSHIFT32(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 32
+#define SKP_RSHIFT64(a, shift)             ((a)&gt;&gt;(shift))                // shift &gt;= 0, shift &lt; 64
+#define SKP_RSHIFT(a, shift)               SKP_RSHIFT32(a, shift)        // shift &gt;= 0, shift &lt; 32
+
+/* saturates before shifting */
+#define SKP_LSHIFT_SAT16(a, shift)         (SKP_LSHIFT16( SKP_LIMIT( (a), SKP_RSHIFT16( SKP_int16_MIN, (shift) ),    \
+                                                                          SKP_RSHIFT16( SKP_int16_MAX, (shift) ) ), (shift) ))
+#define SKP_LSHIFT_SAT32(a, shift)         (SKP_LSHIFT32( SKP_LIMIT( (a), SKP_RSHIFT32( SKP_int32_MIN, (shift) ),    \
+                                                                          SKP_RSHIFT32( SKP_int32_MAX, (shift) ) ), (shift) ))
+
+#define SKP_LSHIFT_ovflw(a, shift)        ((a)&lt;&lt;(shift))        // shift &gt;= 0, allowed to overflow
+#define SKP_LSHIFT_uint(a, shift)         ((a)&lt;&lt;(shift))        // shift &gt;= 0
+#define SKP_RSHIFT_uint(a, shift)         ((a)&gt;&gt;(shift))        // shift &gt;= 0
+
+#define SKP_ADD_LSHIFT(a, b, shift)       ((a) + SKP_LSHIFT((b), (shift)))            // shift &gt;= 0
+#define SKP_ADD_LSHIFT32(a, b, shift)     SKP_ADD32((a), SKP_LSHIFT32((b), (shift)))    // shift &gt;= 0
+#define SKP_ADD_LSHIFT_uint(a, b, shift)  ((a) + SKP_LSHIFT_uint((b), (shift)))        // shift &gt;= 0
+#define SKP_ADD_RSHIFT(a, b, shift)       ((a) + SKP_RSHIFT((b), (shift)))            // shift &gt;= 0
+#define SKP_ADD_RSHIFT32(a, b, shift)     SKP_ADD32((a), SKP_RSHIFT32((b), (shift)))    // shift &gt;= 0
+#define SKP_ADD_RSHIFT_uint(a, b, shift)  ((a) + SKP_RSHIFT_uint((b), (shift)))        // shift &gt;= 0
+#define SKP_SUB_LSHIFT32(a, b, shift)     SKP_SUB32((a), SKP_LSHIFT32((b), (shift)))    // shift &gt;= 0
+#define SKP_SUB_RSHIFT32(a, b, shift)     SKP_SUB32((a), SKP_RSHIFT32((b), (shift)))    // shift &gt;= 0
+
+/* Requires that shift &gt; 0 */
+#define SKP_RSHIFT_ROUND(a, shift)        ((shift) == 1 ? ((a) &gt;&gt; 1) + ((a) &amp; 1) : (((a) &gt;&gt; ((shift) - 1)) + 1) &gt;&gt; 1)
+#define SKP_RSHIFT_ROUND64(a, shift)      ((shift) == 1 ? ((a) &gt;&gt; 1) + ((a) &amp; 1) : (((a) &gt;&gt; ((shift) - 1)) + 1) &gt;&gt; 1)
+
+/* Number of rightshift required to fit the multiplication */
+#define SKP_NSHIFT_MUL_32_32(a, b)        ( -(31- (32-SKP_Silk_CLZ32(SKP_abs(a)) + (32-SKP_Silk_CLZ32(SKP_abs(b))))) )
+#define SKP_NSHIFT_MUL_16_16(a, b)        ( -(15- (16-SKP_Silk_CLZ16(SKP_abs(a)) + (16-SKP_Silk_CLZ16(SKP_abs(b))))) )
+
+
+#define SKP_min(a, b)                     (((a) &lt; (b)) ? (a) : (b)) 
+#define SKP_max(a, b)                     (((a) &gt; (b)) ? (a) : (b))
+
+/* Macro to convert floating-point constants to fixed-point */
+#define SKP_FIX_CONST( C, Q )             ((SKP_int32)((C) * (1 &lt;&lt; (Q)) + 0.5))
+
+/* SKP_min() versions with typecast in the function call */
+SKP_INLINE SKP_int SKP_min_int(SKP_int a, SKP_int b)
+{
+    return (((a) &lt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int16 SKP_min_16(SKP_int16 a, SKP_int16 b)
+{
+    return (((a) &lt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int32 SKP_min_32(SKP_int32 a, SKP_int32 b)
+{
+    return (((a) &lt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int64 SKP_min_64(SKP_int64 a, SKP_int64 b)
+{
+    return (((a) &lt; (b)) ? (a) : (b));
+}
+
+/* SKP_min() versions with typecast in the function call */
+SKP_INLINE SKP_int SKP_max_int(SKP_int a, SKP_int b)
+{
+    return (((a) &gt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int16 SKP_max_16(SKP_int16 a, SKP_int16 b)
+{
+    return (((a) &gt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int32 SKP_max_32(SKP_int32 a, SKP_int32 b)
+{
+    return (((a) &gt; (b)) ? (a) : (b));
+}
+SKP_INLINE SKP_int64 SKP_max_64(SKP_int64 a, SKP_int64 b)
+{
+    return (((a) &gt; (b)) ? (a) : (b));
+}
+
+#define SKP_LIMIT( a, limit1, limit2)    ((limit1) &gt; (limit2) ? ((a) &gt; (limit1) ? (limit1) : ((a) &lt; (limit2) ? (limit2) : (a))) \
+                                                             : ((a) &gt; (limit2) ? (limit2) : ((a) &lt; (limit1) ? (limit1) : (a))))
+
+//#define SKP_non_neg(a)                 ((a) &amp; ((-(a)) &gt;&gt; (8 * sizeof(a) - 1)))   /* doesn't seem faster than SKP_max(0, a);
+
+#define SKP_abs(a)                       (((a) &gt;  0)  ? (a) : -(a))            // Be careful, SKP_abs returns wrong when input equals to SKP_intXX_MIN
+#define SKP_abs_int(a)                   (((a) ^ ((a) &gt;&gt; (8 * sizeof(a) - 1))) - ((a) &gt;&gt; (8 * sizeof(a) - 1)))
+#define SKP_abs_int32(a)                 (((a) ^ ((a) &gt;&gt; 31)) - ((a) &gt;&gt; 31))
+#define SKP_abs_int64(a)                 (((a) &gt;  0)  ? (a) : -(a))    
+
+#define SKP_sign(a)                      ((a) &gt; 0 ? 1 : ( (a) &lt; 0 ? -1 : 0 ))
+
+#define SKP_sqrt(a)                      (sqrt(a)) 
+
+/* PSEUDO-RANDOM GENERATOR                                                          */
+/* Make sure to store the result as the seed for the next call (also in between     */
+/* frames), otherwise result won't be random at all. When only using some of the    */
+/* bits, take the most significant bits by right-shifting. Do not just mask off     */
+/* the lowest bits.                                                                 */
+#define SKP_RAND(seed)                   (SKP_MLA_ovflw(907633515, (seed), 196314165))
+
+// Add some multiplication functions that can be easily mapped to ARM.
+
+//    SKP_SMMUL: Signed top word multiply. 
+//        ARMv6        2 instruction cycles. 
+//        ARMv3M+        3 instruction cycles. use SMULL and ignore LSB registers.(except xM) 
+//#define SKP_SMMUL(a32, b32)            (SKP_int32)SKP_RSHIFT(SKP_SMLAL(SKP_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16)), 16)
+// the following seems faster on x86
+#define SKP_SMMUL(a32, b32)              (SKP_int32)SKP_RSHIFT64(SKP_SMULL((a32), (b32)), 32)
+
+#include &quot;SKP_Silk_Inlines.h&quot;
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_VADc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_VAD.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_VAD.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_VAD.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,360 +1,320 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-
-***********************************************************************/
-
-/*
- * File Name:   SKP_Silk_VAD.c
- * Description: Silk VAD.
- */
-
-#include &lt;stdlib.h&gt;
-#include &quot;SKP_Silk_main.h&quot;
-
-/**********************************/
-/* Initialization of the Silk VAD */
-/**********************************/
-SKP_int SKP_Silk_VAD_Init(                              /* O    Return value, 0 if success                  */
-    SKP_Silk_VAD_state              *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */
-)
-{
-    SKP_int b, ret = 0;
-
-    /* reset state memory */
-    SKP_memset( psSilk_VAD, 0, sizeof( SKP_Silk_VAD_state ) );
-
-    /* init noise levels */
-    /* Initialize array with approx pink noise levels (psd proportional to inverse of frequency) */
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        psSilk_VAD-&gt;NoiseLevelBias[ b ] = SKP_max_32( SKP_DIV32_16( VAD_NOISE_LEVELS_BIAS, b + 1 ), 1 );
-    }
-
-    /* Initialize state */
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        psSilk_VAD-&gt;NL[ b ]     = SKP_MUL( 100, psSilk_VAD-&gt;NoiseLevelBias[ b ] );
-        psSilk_VAD-&gt;inv_NL[ b ] = SKP_DIV32( SKP_int32_MAX, psSilk_VAD-&gt;NL[ b ] );
-    }
-    psSilk_VAD-&gt;counter = 15;
-
-    /* init smoothed energy-to-noise ratio*/
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ] = 100 * 256;       /* 100 * 256 --&gt; 20 dB SNR */
-    }
-
-    return( ret );
-}
-
-/* Weighting factors for tilt measure */
-const static SKP_int32 tiltWeights[ VAD_N_BANDS ] = { 30000, 6000, -12000, -12000 };
-
-/***************************************/
-/* Get the speech activity level in Q8 */
-
-
-
-
-
-/***************************************/
-SKP_int SKP_Silk_VAD_GetSA_Q8(                                      /* O    Return value, 0 if success      */
-    SKP_Silk_VAD_state              *psSilk_VAD,                    /* I/O  Silk VAD state                  */
-    SKP_int                         *pSA_Q8,                        /* O    Speech activity level in Q8     */
-    SKP_int                         *pSNR_dB_Q7,                    /* O    SNR for current frame in Q7     */
-    SKP_int                         pQuality_Q15[ VAD_N_BANDS ],    /* O    Smoothed SNR for each band      */
-    SKP_int                         *pTilt_Q15,                     /* O    current frame's frequency tilt  */
-    const SKP_int16                 pIn[],                          /* I    PCM input       [framelength]   */
-    const SKP_int                   framelength                     /* I    Input frame length              */
-)
-{
-    SKP_int   SA_Q15, input_tilt;
-    SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH / 2 ];
-    SKP_int   decimated_framelength, dec_subframe_length, dec_subframe_offset, SNR_Q7, i, b, s;
-    SKP_int32 sumSquared, smooth_coef_Q16;
-    SKP_int16 HPstateTmp;
-
-    SKP_int16 X[ VAD_N_BANDS ][ MAX_FRAME_LENGTH / 2 ];
-    SKP_int32 Xnrg[ VAD_N_BANDS ];
-    SKP_int32 NrgToNoiseRatio_Q8[ VAD_N_BANDS ];
-    SKP_int32 speech_nrg, x_tmp;
-    SKP_int   ret = 0;
-
-    /* Safety checks */
-    SKP_assert( VAD_N_BANDS == 4 );
-    SKP_assert( MAX_FRAME_LENGTH &gt;= framelength );
-    SKP_assert( framelength &lt;= 512 );
-
-    /***********************/
-    /* Filter and Decimate */
-    /***********************/
-    /* 0-8 kHz to 0-4 kHz and 4-8 kHz */
-    SKP_Silk_ana_filt_bank_1( pIn,          &amp;psSilk_VAD-&gt;AnaState[  0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 3 ][ 0 ], &amp;scratch[ 0 ], framelength );
-
-    /* 0-4 kHz to 0-2 kHz and 2-4 kHz */
-    SKP_Silk_ana_filt_bank_1( &amp;X[ 0 ][ 0 ], &amp;psSilk_VAD-&gt;AnaState1[ 0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 2 ][ 0 ], &amp;scratch[ 0 ], SKP_RSHIFT( framelength, 1 ) );
-
-    /* 0-2 kHz to 0-1 kHz and 1-2 kHz */
-    SKP_Silk_ana_filt_bank_1( &amp;X[ 0 ][ 0 ], &amp;psSilk_VAD-&gt;AnaState2[ 0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 1 ][ 0 ], &amp;scratch[ 0 ], SKP_RSHIFT( framelength, 2 ) );
-
-    /*********************************************/
-    /* HP filter on lowest band (differentiator) */
-    /*********************************************/
-    decimated_framelength = SKP_RSHIFT( framelength, 3 );
-    X[ 0 ][ decimated_framelength - 1 ] = SKP_RSHIFT( X[ 0 ][ decimated_framelength - 1 ], 1 );
-    HPstateTmp = X[ 0 ][ decimated_framelength - 1 ];
-    for( i = decimated_framelength - 1; i &gt; 0; i-- ) {
-        X[ 0 ][ i - 1 ]  = SKP_RSHIFT( X[ 0 ][ i - 1 ], 1 );
-
-
-
-
-
-        X[ 0 ][ i ]     -= X[ 0 ][ i - 1 ];
-    }
-    X[ 0 ][ 0 ] -= psSilk_VAD-&gt;HPstate;
-    psSilk_VAD-&gt;HPstate = HPstateTmp;
-
-    /*************************************/
-    /* Calculate the energy in each band */
-    /*************************************/
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        /* Find the decimated framelength in the non-uniformly divided bands */
-        decimated_framelength = SKP_RSHIFT( framelength, SKP_min_int( VAD_N_BANDS - b, VAD_N_BANDS - 1 ) );
-
-        /* Split length into subframe lengths */
-        dec_subframe_length = SKP_RSHIFT( decimated_framelength, VAD_INTERNAL_SUBFRAMES_LOG2 );
-        dec_subframe_offset = 0;
-
-        /* Compute energy per sub-frame */
-        /* initialize with summed energy of last subframe */
-        Xnrg[ b ] = psSilk_VAD-&gt;XnrgSubfr[ b ];
-        for( s = 0; s &lt; VAD_INTERNAL_SUBFRAMES; s++ ) {
-            sumSquared = 0;
-            for( i = 0; i &lt; dec_subframe_length; i++ ) {
-                /* The energy will be less than dec_subframe_length * ( SKP_int16_MIN / 8 )^2.              */
-                /* Therefore we can accumulate with no risk of overflow (unless dec_subframe_length &gt; 128)  */
-                x_tmp = SKP_RSHIFT( X[ b ][ i + dec_subframe_offset ], 3 );
-                sumSquared = SKP_SMLABB( sumSquared, x_tmp, x_tmp );
-
-                /* Safety check */
-                SKP_assert( sumSquared &gt;= 0 );
-            }
-
-            /* add/saturate summed energy of current subframe */
-            if( s &lt; VAD_INTERNAL_SUBFRAMES - 1 ) {
-                Xnrg[ b ] = SKP_ADD_POS_SAT32( Xnrg[ b ], sumSquared );
-            } else {
-                /* look-ahead subframe */
-                Xnrg[ b ] = SKP_ADD_POS_SAT32( Xnrg[ b ], SKP_RSHIFT( sumSquared, 1 ) );
-            }
-
-            dec_subframe_offset += dec_subframe_length;
-        }
-        psSilk_VAD-&gt;XnrgSubfr[ b ] = sumSquared;
-    }
-
-    /********************/
-    /* Noise estimation */
-    /********************/
-    SKP_Silk_VAD_GetNoiseLevels( &amp;Xnrg[ 0 ], psSilk_VAD );
-
-
-
-
-
-    /***********************************************/
-    /* Signal-plus-noise to noise ratio estimation */
-    /***********************************************/
-    sumSquared = 0;
-    input_tilt = 0;
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        speech_nrg = Xnrg[ b ] - psSilk_VAD-&gt;NL[ b ];
-        if( speech_nrg &gt; 0 ) {
-            /* Divide, with sufficient resolution */
-            if( ( Xnrg[ b ] &amp; 0xFF800000 ) == 0 ) {
-                NrgToNoiseRatio_Q8[ b ] = SKP_DIV32( SKP_LSHIFT( Xnrg[ b ], 8 ), psSilk_VAD-&gt;NL[ b ] + 1 );
-            } else {
-                NrgToNoiseRatio_Q8[ b ] = SKP_DIV32( Xnrg[ b ], SKP_RSHIFT( psSilk_VAD-&gt;NL[ b ], 8 ) + 1 );
-            }
-
-            /* Convert to log domain */
-            SNR_Q7 = SKP_Silk_lin2log( NrgToNoiseRatio_Q8[ b ] ) - 8 * 128;
-
-            /* Sum-of-squares */
-            sumSquared = SKP_SMLABB( sumSquared, SNR_Q7, SNR_Q7 );          /* Q14 */
-
-            /* Tilt measure */
-            if( speech_nrg &lt; ( 1 &lt;&lt; 20 ) ) {
-                /* Scale down SNR value for small subband speech energies */
-                SNR_Q7 = SKP_SMULWB( SKP_LSHIFT( SKP_Silk_SQRT_APPROX( speech_nrg ), 6 ), SNR_Q7 );
-            }
-            input_tilt = SKP_SMLAWB( input_tilt, tiltWeights[ b ], SNR_Q7 );
-        } else {
-            NrgToNoiseRatio_Q8[ b ] = 256;
-        }
-    }
-
-    /* Mean-of-squares */
-    sumSquared = SKP_DIV32_16( sumSquared, VAD_N_BANDS );           /* Q14 */
-
-    /* Root-mean-square approximation, scale to dBs, and write to output pointer */
-    *pSNR_dB_Q7 = (SKP_int16)( 3 * SKP_Silk_SQRT_APPROX( sumSquared ) );  /* Q7 */
-
-    /*********************************/
-    /* Speech Probability Estimation */
-    /*********************************/
-    SA_Q15 = SKP_Silk_sigm_Q15( SKP_SMULWB( VAD_SNR_FACTOR_Q16, *pSNR_dB_Q7 ) - VAD_NEGATIVE_OFFSET_Q5 );
-
-    /**************************/
-    /* Frequency Tilt Measure */
-    /**************************/
-    *pTilt_Q15 = SKP_LSHIFT( SKP_Silk_sigm_Q15( input_tilt ) - 16384, 1 );
-
-
-
-
-
-
-    /**************************************************/
-    /* Scale the sigmoid output based on power levels */
-    /**************************************************/
-    speech_nrg = 0;
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        /* Accumulate signal-without-noise energies, higher frequency bands have more weight */
-        speech_nrg += ( b + 1 ) * SKP_RSHIFT( Xnrg[ b ] - psSilk_VAD-&gt;NL[ b ], 4 );
-    }
-
-    /* Power scaling */
-    if( speech_nrg &lt;= 0 ) {
-        SA_Q15 = SKP_RSHIFT( SA_Q15, 1 );
-    } else if( speech_nrg &lt; 32768 ) {
-        /* square-root */
-        speech_nrg = SKP_Silk_SQRT_APPROX( SKP_LSHIFT( speech_nrg, 15 ) );
-        SA_Q15 = SKP_SMULWB( 32768 + speech_nrg, SA_Q15 );
-    }
-
-    /* Copy the resulting speech activity in Q8 to *pSA_Q8 */
-    *pSA_Q8 = SKP_min_int( SKP_RSHIFT( SA_Q15, 7 ), SKP_uint8_MAX );
-
-    /***********************************/
-    /* Energy Level and SNR estimation */
-    /***********************************/
-    /* smoothing coefficient */
-    smooth_coef_Q16 = SKP_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, SKP_SMULWB( SA_Q15, SA_Q15 ) );
-    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
-        /* compute smoothed energy-to-noise ratio per band */
-        psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ] = SKP_SMLAWB( psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ],
-            NrgToNoiseRatio_Q8[ b ] - psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ], smooth_coef_Q16 );
-
-        /* signal to noise ratio in dB per band */
-        SNR_Q7 = 3 * ( SKP_Silk_lin2log( psSilk_VAD-&gt;NrgRatioSmth_Q8[b] ) - 8 * 128 );
-        /* quality = sigmoid( 0.25 * ( SNR_dB - 16 ) ); */
-        pQuality_Q15[ b ] = SKP_Silk_sigm_Q15( SKP_RSHIFT( SNR_Q7 - 16 * 128, 4 ) );
-    }
-
-    return( ret );
-}
-
-/**************************/
-/* Noise level estimation */
-/**************************/
-void SKP_Silk_VAD_GetNoiseLevels(
-    const SKP_int32                 pX[ VAD_N_BANDS ],  /* I    subband energies                            */
-    SKP_Silk_VAD_state              *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */
-)
-{
-
-
-
-
-
-    SKP_int   k;
-    SKP_int32 nl, nrg, inv_nrg;
-    SKP_int   coef, min_coef;
-
-    /* Initially faster smoothing */
-    if( psSilk_VAD-&gt;counter &lt; 1000 ) { /* 1000 = 20 sec */
-        min_coef = SKP_DIV32_16( SKP_int16_MAX, SKP_RSHIFT( psSilk_VAD-&gt;counter, 4 ) + 1 );
-    } else {
-        min_coef = 0;
-    }
-
-    for( k = 0; k &lt; VAD_N_BANDS; k++ ) {
-        /* Get old noise level estimate for current band */
-        nl = psSilk_VAD-&gt;NL[ k ];
-        SKP_assert( nl &gt;= 0 );
-
-        /* Add bias */
-        nrg = SKP_ADD_POS_SAT32( pX[ k ], psSilk_VAD-&gt;NoiseLevelBias[ k ] );
-        SKP_assert( nrg &gt; 0 );
-
-        /* Invert energies */
-        inv_nrg = SKP_DIV32( SKP_int32_MAX, nrg );
-        SKP_assert( inv_nrg &gt;= 0 );
-
-        /* Less update when subband energy is high */
-        if( nrg &gt; SKP_LSHIFT( nl, 3 ) ) {
-            coef = VAD_NOISE_LEVEL_SMOOTH_COEF_Q16 &gt;&gt; 3;
-        } else if( nrg &lt; nl ) {
-            coef = VAD_NOISE_LEVEL_SMOOTH_COEF_Q16;
-        } else {
-            coef = SKP_SMULWB( SKP_SMULWW( inv_nrg, nl ), VAD_NOISE_LEVEL_SMOOTH_COEF_Q16 &lt;&lt; 1 );
-        }
-
-        /* Initially faster smoothing */
-        coef = SKP_max_int( coef, min_coef );
-
-        /* Smooth inverse energies */
-        psSilk_VAD-&gt;inv_NL[ k ] = SKP_SMLAWB( psSilk_VAD-&gt;inv_NL[ k ], inv_nrg - psSilk_VAD-&gt;inv_NL[ k ], coef );
-        SKP_assert( psSilk_VAD-&gt;inv_NL[ k ] &gt;= 0 );
-
-        /* Compute noise level by inverting again */
-        nl = SKP_DIV32( SKP_int32_MAX, psSilk_VAD-&gt;inv_NL[ k ] );
-        SKP_assert( nl &gt;= 0 );
-
-        /* Limit noise levels (guarantee 7 bits of head room) */
-        nl = SKP_min( nl, 0x00FFFFFF );
-
-        /* Store as part of state */
-
-
-
-
-
-        psSilk_VAD-&gt;NL[ k ] = nl;
-    }
-
-    /* Increment frame counter */
-    psSilk_VAD-&gt;counter++;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*
+ * File Name:   SKP_Silk_VAD.c
+ * Description: Silk VAD.
+ */
+
+#include &lt;stdlib.h&gt;
+#include &quot;SKP_Silk_main.h&quot;
+
+/**********************************/
+/* Initialization of the Silk VAD */
+/**********************************/
+SKP_int SKP_Silk_VAD_Init(                              /* O    Return value, 0 if success                  */ 
+    SKP_Silk_VAD_state              *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */ 
+)
+{
+    SKP_int b, ret = 0;
+
+    /* reset state memory */
+    SKP_memset( psSilk_VAD, 0, sizeof( SKP_Silk_VAD_state ) );
+
+    /* init noise levels */
+    /* Initialize array with approx pink noise levels (psd proportional to inverse of frequency) */
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        psSilk_VAD-&gt;NoiseLevelBias[ b ] = SKP_max_32( SKP_DIV32_16( VAD_NOISE_LEVELS_BIAS, b + 1 ), 1 );
+    }
+
+    /* Initialize state */
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        psSilk_VAD-&gt;NL[ b ]     = SKP_MUL( 100, psSilk_VAD-&gt;NoiseLevelBias[ b ] );
+        psSilk_VAD-&gt;inv_NL[ b ] = SKP_DIV32( SKP_int32_MAX, psSilk_VAD-&gt;NL[ b ] );
+    }
+    psSilk_VAD-&gt;counter = 15;
+
+    /* init smoothed energy-to-noise ratio*/
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ] = 100 * 256;       /* 100 * 256 --&gt; 20 dB SNR */
+    }
+
+    return( ret );
+}
+
+/* Weighting factors for tilt measure */
+const static SKP_int32 tiltWeights[ VAD_N_BANDS ] = { 30000, 6000, -12000, -12000 };
+
+/***************************************/
+/* Get the speech activity level in Q8 */
+/***************************************/
+SKP_int SKP_Silk_VAD_GetSA_Q8(                                      /* O    Return value, 0 if success      */
+    SKP_Silk_VAD_state              *psSilk_VAD,                    /* I/O  Silk VAD state                  */
+    SKP_int                         *pSA_Q8,                        /* O    Speech activity level in Q8     */
+    SKP_int                         *pSNR_dB_Q7,                    /* O    SNR for current frame in Q7     */
+    SKP_int                         pQuality_Q15[ VAD_N_BANDS ],    /* O    Smoothed SNR for each band      */
+    SKP_int                         *pTilt_Q15,                     /* O    current frame's frequency tilt  */
+    const SKP_int16                 pIn[],                          /* I    PCM input       [framelength]   */
+    const SKP_int                   framelength                     /* I    Input frame length              */
+)
+{
+    SKP_int   SA_Q15, input_tilt;
+    SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH / 2 ];
+    SKP_int   decimated_framelength, dec_subframe_length, dec_subframe_offset, SNR_Q7, i, b, s;
+    SKP_int32 sumSquared, smooth_coef_Q16;
+    SKP_int16 HPstateTmp;
+
+    SKP_int16 X[ VAD_N_BANDS ][ MAX_FRAME_LENGTH / 2 ];
+    SKP_int32 Xnrg[ VAD_N_BANDS ];
+    SKP_int32 NrgToNoiseRatio_Q8[ VAD_N_BANDS ];
+    SKP_int32 speech_nrg, x_tmp;
+    SKP_int   ret = 0;
+
+    /* Safety checks */
+    SKP_assert( VAD_N_BANDS == 4 );
+    SKP_assert( MAX_FRAME_LENGTH &gt;= framelength );
+    SKP_assert( framelength &lt;= 512 );
+
+    /***********************/
+    /* Filter and Decimate */
+    /***********************/
+    /* 0-8 kHz to 0-4 kHz and 4-8 kHz */
+    SKP_Silk_ana_filt_bank_1( pIn,          &amp;psSilk_VAD-&gt;AnaState[  0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 3 ][ 0 ], &amp;scratch[ 0 ], framelength );        
+    
+    /* 0-4 kHz to 0-2 kHz and 2-4 kHz */
+    SKP_Silk_ana_filt_bank_1( &amp;X[ 0 ][ 0 ], &amp;psSilk_VAD-&gt;AnaState1[ 0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 2 ][ 0 ], &amp;scratch[ 0 ], SKP_RSHIFT( framelength, 1 ) );
+    
+    /* 0-2 kHz to 0-1 kHz and 1-2 kHz */
+    SKP_Silk_ana_filt_bank_1( &amp;X[ 0 ][ 0 ], &amp;psSilk_VAD-&gt;AnaState2[ 0 ], &amp;X[ 0 ][ 0 ], &amp;X[ 1 ][ 0 ], &amp;scratch[ 0 ], SKP_RSHIFT( framelength, 2 ) );
+
+    /*********************************************/
+    /* HP filter on lowest band (differentiator) */
+    /*********************************************/
+    decimated_framelength = SKP_RSHIFT( framelength, 3 );
+    X[ 0 ][ decimated_framelength - 1 ] = SKP_RSHIFT( X[ 0 ][ decimated_framelength - 1 ], 1 );
+    HPstateTmp = X[ 0 ][ decimated_framelength - 1 ];
+    for( i = decimated_framelength - 1; i &gt; 0; i-- ) {
+        X[ 0 ][ i - 1 ]  = SKP_RSHIFT( X[ 0 ][ i - 1 ], 1 );
+        X[ 0 ][ i ]     -= X[ 0 ][ i - 1 ];
+    }
+    X[ 0 ][ 0 ] -= psSilk_VAD-&gt;HPstate;
+    psSilk_VAD-&gt;HPstate = HPstateTmp;
+
+    /*************************************/
+    /* Calculate the energy in each band */
+    /*************************************/
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {        
+        /* Find the decimated framelength in the non-uniformly divided bands */
+        decimated_framelength = SKP_RSHIFT( framelength, SKP_min_int( VAD_N_BANDS - b, VAD_N_BANDS - 1 ) );
+
+        /* Split length into subframe lengths */
+        dec_subframe_length = SKP_RSHIFT( decimated_framelength, VAD_INTERNAL_SUBFRAMES_LOG2 );
+        dec_subframe_offset = 0;
+
+        /* Compute energy per sub-frame */
+        /* initialize with summed energy of last subframe */
+        Xnrg[ b ] = psSilk_VAD-&gt;XnrgSubfr[ b ];
+        for( s = 0; s &lt; VAD_INTERNAL_SUBFRAMES; s++ ) {
+            sumSquared = 0;
+            for( i = 0; i &lt; dec_subframe_length; i++ ) {
+                /* The energy will be less than dec_subframe_length * ( SKP_int16_MIN / 8 )^2.              */
+                /* Therefore we can accumulate with no risk of overflow (unless dec_subframe_length &gt; 128)  */
+                x_tmp = SKP_RSHIFT( X[ b ][ i + dec_subframe_offset ], 3 );
+                sumSquared = SKP_SMLABB( sumSquared, x_tmp, x_tmp );
+
+                /* Safety check */
+                SKP_assert( sumSquared &gt;= 0 );
+            }
+
+            /* add/saturate summed energy of current subframe */
+            if( s &lt; VAD_INTERNAL_SUBFRAMES - 1 ) {
+                Xnrg[ b ] = SKP_ADD_POS_SAT32( Xnrg[ b ], sumSquared );
+            } else {
+                /* look-ahead subframe */
+                Xnrg[ b ] = SKP_ADD_POS_SAT32( Xnrg[ b ], SKP_RSHIFT( sumSquared, 1 ) );
+            }
+
+            dec_subframe_offset += dec_subframe_length;
+        }
+        psSilk_VAD-&gt;XnrgSubfr[ b ] = sumSquared; 
+    }
+
+    /********************/
+    /* Noise estimation */
+    /********************/
+    SKP_Silk_VAD_GetNoiseLevels( &amp;Xnrg[ 0 ], psSilk_VAD );
+
+    /***********************************************/
+    /* Signal-plus-noise to noise ratio estimation */
+    /***********************************************/
+    sumSquared = 0;
+    input_tilt = 0;
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        speech_nrg = Xnrg[ b ] - psSilk_VAD-&gt;NL[ b ];
+        if( speech_nrg &gt; 0 ) {
+            /* Divide, with sufficient resolution */
+            if( ( Xnrg[ b ] &amp; 0xFF800000 ) == 0 ) {
+                NrgToNoiseRatio_Q8[ b ] = SKP_DIV32( SKP_LSHIFT( Xnrg[ b ], 8 ), psSilk_VAD-&gt;NL[ b ] + 1 );
+            } else {
+                NrgToNoiseRatio_Q8[ b ] = SKP_DIV32( Xnrg[ b ], SKP_RSHIFT( psSilk_VAD-&gt;NL[ b ], 8 ) + 1 );
+            }
+
+            /* Convert to log domain */
+            SNR_Q7 = SKP_Silk_lin2log( NrgToNoiseRatio_Q8[ b ] ) - 8 * 128;
+
+            /* Sum-of-squares */
+            sumSquared = SKP_SMLABB( sumSquared, SNR_Q7, SNR_Q7 );          /* Q14 */
+
+            /* Tilt measure */
+            if( speech_nrg &lt; ( 1 &lt;&lt; 20 ) ) {
+                /* Scale down SNR value for small subband speech energies */
+                SNR_Q7 = SKP_SMULWB( SKP_LSHIFT( SKP_Silk_SQRT_APPROX( speech_nrg ), 6 ), SNR_Q7 );
+            }
+            input_tilt = SKP_SMLAWB( input_tilt, tiltWeights[ b ], SNR_Q7 );
+        } else {
+            NrgToNoiseRatio_Q8[ b ] = 256;
+        }
+    }
+
+    /* Mean-of-squares */
+    sumSquared = SKP_DIV32_16( sumSquared, VAD_N_BANDS );           /* Q14 */
+
+    /* Root-mean-square approximation, scale to dBs, and write to output pointer */
+    *pSNR_dB_Q7 = ( SKP_int16 )( 3 * SKP_Silk_SQRT_APPROX( sumSquared ) );  /* Q7 */
+
+    /*********************************/
+    /* Speech Probability Estimation */
+    /*********************************/
+    SA_Q15 = SKP_Silk_sigm_Q15( SKP_SMULWB( VAD_SNR_FACTOR_Q16, *pSNR_dB_Q7 ) - VAD_NEGATIVE_OFFSET_Q5 );
+
+    /**************************/
+    /* Frequency Tilt Measure */
+    /**************************/
+    *pTilt_Q15 = SKP_LSHIFT( SKP_Silk_sigm_Q15( input_tilt ) - 16384, 1 );
+
+    /**************************************************/
+    /* Scale the sigmoid output based on power levels */
+    /**************************************************/
+    speech_nrg = 0;
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        /* Accumulate signal-without-noise energies, higher frequency bands have more weight */
+        speech_nrg += ( b + 1 ) * SKP_RSHIFT( Xnrg[ b ] - psSilk_VAD-&gt;NL[ b ], 4 );
+    }
+
+    /* Power scaling */
+    if( speech_nrg &lt;= 0 ) {
+        SA_Q15 = SKP_RSHIFT( SA_Q15, 1 ); 
+    } else if( speech_nrg &lt; 32768 ) {
+        /* square-root */
+        speech_nrg = SKP_Silk_SQRT_APPROX( SKP_LSHIFT( speech_nrg, 15 ) );
+        SA_Q15 = SKP_SMULWB( 32768 + speech_nrg, SA_Q15 ); 
+    }
+
+    /* Copy the resulting speech activity in Q8 to *pSA_Q8 */
+    *pSA_Q8 = SKP_min_int( SKP_RSHIFT( SA_Q15, 7 ), SKP_uint8_MAX );
+
+    /***********************************/
+    /* Energy Level and SNR estimation */
+    /***********************************/
+    /* smoothing coefficient */
+    smooth_coef_Q16 = SKP_SMULWB( VAD_SNR_SMOOTH_COEF_Q18, SKP_SMULWB( SA_Q15, SA_Q15 ) );
+    for( b = 0; b &lt; VAD_N_BANDS; b++ ) {
+        /* compute smoothed energy-to-noise ratio per band */
+        psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ] = SKP_SMLAWB( psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ], 
+            NrgToNoiseRatio_Q8[ b ] - psSilk_VAD-&gt;NrgRatioSmth_Q8[ b ], smooth_coef_Q16 );
+
+        /* signal to noise ratio in dB per band */
+        SNR_Q7 = 3 * ( SKP_Silk_lin2log( psSilk_VAD-&gt;NrgRatioSmth_Q8[b] ) - 8 * 128 );
+        /* quality = sigmoid( 0.25 * ( SNR_dB - 16 ) ); */
+        pQuality_Q15[ b ] = SKP_Silk_sigm_Q15( SKP_RSHIFT( SNR_Q7 - 16 * 128, 4 ) );
+    }
+
+    return( ret );
+}
+
+/**************************/
+/* Noise level estimation */
+/**************************/
+void SKP_Silk_VAD_GetNoiseLevels(
+    const SKP_int32                 pX[ VAD_N_BANDS ],  /* I    subband energies                            */
+    SKP_Silk_VAD_state              *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */ 
+)
+{
+    SKP_int   k;
+    SKP_int32 nl, nrg, inv_nrg;
+    SKP_int   coef, min_coef;
+
+    /* Initially faster smoothing */
+    if( psSilk_VAD-&gt;counter &lt; 1000 ) { /* 1000 = 20 sec */
+        min_coef = SKP_DIV32_16( SKP_int16_MAX, SKP_RSHIFT( psSilk_VAD-&gt;counter, 4 ) + 1 );  
+    } else {
+        min_coef = 0;
+    }
+
+    for( k = 0; k &lt; VAD_N_BANDS; k++ ) {
+        /* Get old noise level estimate for current band */
+        nl = psSilk_VAD-&gt;NL[ k ];
+        SKP_assert( nl &gt;= 0 );
+        
+        /* Add bias */
+        nrg = SKP_ADD_POS_SAT32( pX[ k ], psSilk_VAD-&gt;NoiseLevelBias[ k ] ); 
+        SKP_assert( nrg &gt; 0 );
+        
+        /* Invert energies */
+        inv_nrg = SKP_DIV32( SKP_int32_MAX, nrg );
+        SKP_assert( inv_nrg &gt;= 0 );
+        
+        /* Less update when subband energy is high */
+        if( nrg &gt; SKP_LSHIFT( nl, 3 ) ) {
+            coef = VAD_NOISE_LEVEL_SMOOTH_COEF_Q16 &gt;&gt; 3;
+        } else if( nrg &lt; nl ) {
+            coef = VAD_NOISE_LEVEL_SMOOTH_COEF_Q16;
+        } else {
+            coef = SKP_SMULWB( SKP_SMULWW( inv_nrg, nl ), VAD_NOISE_LEVEL_SMOOTH_COEF_Q16 &lt;&lt; 1 );
+        }
+
+        /* Initially faster smoothing */
+        coef = SKP_max_int( coef, min_coef );
+
+        /* Smooth inverse energies */
+        psSilk_VAD-&gt;inv_NL[ k ] = SKP_SMLAWB( psSilk_VAD-&gt;inv_NL[ k ], inv_nrg - psSilk_VAD-&gt;inv_NL[ k ], coef );
+        SKP_assert( psSilk_VAD-&gt;inv_NL[ k ] &gt;= 0 );
+
+        /* Compute noise level by inverting again */
+        nl = SKP_DIV32( SKP_int32_MAX, psSilk_VAD-&gt;inv_NL[ k ] );
+        SKP_assert( nl &gt;= 0 );
+
+        /* Limit noise levels (guarantee 7 bits of head room) */
+        nl = SKP_min( nl, 0x00FFFFFF );
+
+        /* Store as part of state */
+        psSilk_VAD-&gt;NL[ k ] = nl;
+    }
+
+    /* Increment frame counter */
+    psSilk_VAD-&gt;counter++;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_VQ_nearest_neighbor_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,126 +1,110 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Entropy constrained MATRIX-weighted VQ, hard-coded to 5-element vectors, for a single input data vector */
-void SKP_Silk_VQ_WMat_EC_FIX(
-    SKP_int                         *ind,               /* O    index of best codebook vector               */
-    SKP_int32                       *rate_dist_Q14,     /* O    best weighted quantization error + mu * rate*/
-    const SKP_int16                 *in_Q14,            /* I    input vector to be quantized                */
-    const SKP_int32                 *W_Q18,             /* I    weighting matrix                            */
-
-
-
-
-
-    const SKP_int16                 *cb_Q14,            /* I    codebook                                    */
-    const SKP_int16                 *cl_Q6,             /* I    code length for each codebook vector        */
-    const SKP_int                   mu_Q8,              /* I    tradeoff between weighted error and rate    */
-    SKP_int                         L                   /* I    number of vectors in codebook               */
-)
-{
-    SKP_int   k;
-    const SKP_int16 *cb_row_Q14;
-    SKP_int32 sum1_Q14, sum2_Q16, diff_Q14_01, diff_Q14_23, diff_Q14_4;
-
-    /* Loop over codebook */
-    *rate_dist_Q14 = SKP_int32_MAX;
-    cb_row_Q14 = cb_Q14;
-    for( k = 0; k &lt; L; k++ ) {
-        /* Pack pairs of int16 values per int32 */
-        diff_Q14_01 = (SKP_uint16)( in_Q14[ 0 ] - cb_row_Q14[ 0 ] ) | SKP_LSHIFT( (SKP_int32)in_Q14[ 1 ] - cb_row_Q14[ 1 ], 16 );
-        diff_Q14_23 = (SKP_uint16)( in_Q14[ 2 ] - cb_row_Q14[ 2 ] ) | SKP_LSHIFT( (SKP_int32)in_Q14[ 3 ] - cb_row_Q14[ 3 ], 16 );
-        diff_Q14_4  = in_Q14[ 4 ] - cb_row_Q14[ 4 ];
-
-        /* Weighted rate */
-        sum1_Q14 = SKP_SMULBB( mu_Q8, cl_Q6[ k ] );
-
-        SKP_assert( sum1_Q14 &gt;= 0 );
-
-        /* Add weighted quantization error, assuming W_Q18 is symmetric */
-        /* NOTE: the code below loads two int16 values as one int32, and multiplies each using the  */
-        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-        /* first row of W_Q18 */
-        sum2_Q16 = SKP_SMULWT(           W_Q18[ 1 ], diff_Q14_01 );
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 2 ], diff_Q14_23 );
-        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 3 ], diff_Q14_23 );
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 4 ], diff_Q14_4  );
-        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 0 ], diff_Q14_01 );
-        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,   diff_Q14_01 );
-
-        /* second row of W_Q18 */
-        sum2_Q16 = SKP_SMULWB(           W_Q18[ 7 ], diff_Q14_23 );
-        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 8 ], diff_Q14_23 );
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 9 ], diff_Q14_4  );
-        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
-        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 6 ], diff_Q14_01 );
-        sum1_Q14 = SKP_SMLAWT( sum1_Q14, sum2_Q16,   diff_Q14_01 );
-
-        /* third row of W_Q18 */
-        sum2_Q16 = SKP_SMULWT(           W_Q18[ 13 ], diff_Q14_23 );
-
-
-
-
-
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 14 ], diff_Q14_4  );
-        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
-        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 12 ], diff_Q14_23 );
-        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,    diff_Q14_23 );
-
-        /* fourth row of W_Q18 */
-        sum2_Q16 = SKP_SMULWB(           W_Q18[ 19 ], diff_Q14_4  );
-        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
-        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 18 ], diff_Q14_23 );
-        sum1_Q14 = SKP_SMLAWT( sum1_Q14, sum2_Q16,    diff_Q14_23 );
-
-        /* last row of W_Q18 */
-        sum2_Q16 = SKP_SMULWB(           W_Q18[ 24 ], diff_Q14_4  );
-        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,    diff_Q14_4  );
-
-        SKP_assert( sum1_Q14 &gt;= 0 );
-
-        /* find best */
-        if( sum1_Q14 &lt; *rate_dist_Q14 ) {
-            *rate_dist_Q14 = sum1_Q14;
-            *ind = k;
-        }
-
-        /* Go to next cbk vector */
-        cb_row_Q14 += LTP_ORDER;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Entropy constrained MATRIX-weighted VQ, hard-coded to 5-element vectors, for a single input data vector */
+void SKP_Silk_VQ_WMat_EC_FIX(
+    SKP_int                         *ind,               /* O    index of best codebook vector               */
+    SKP_int32                       *rate_dist_Q14,     /* O    best weighted quantization error + mu * rate*/
+    const SKP_int16                 *in_Q14,            /* I    input vector to be quantized                */
+    const SKP_int32                 *W_Q18,             /* I    weighting matrix                            */
+    const SKP_int16                 *cb_Q14,            /* I    codebook                                    */
+    const SKP_int16                 *cl_Q6,             /* I    code length for each codebook vector        */
+    const SKP_int                   mu_Q8,              /* I    tradeoff between weighted error and rate    */
+    SKP_int                         L                   /* I    number of vectors in codebook               */
+)
+{
+    SKP_int   k;
+    const SKP_int16 *cb_row_Q14;
+    SKP_int32 sum1_Q14, sum2_Q16, diff_Q14_01, diff_Q14_23, diff_Q14_4;
+
+    /* Loop over codebook */
+    *rate_dist_Q14 = SKP_int32_MAX;
+    cb_row_Q14 = cb_Q14;
+    for( k = 0; k &lt; L; k++ ) {
+        /* Pack pairs of int16 values per int32 */
+        diff_Q14_01 = (SKP_uint16)( in_Q14[ 0 ] - cb_row_Q14[ 0 ] ) | SKP_LSHIFT( ( SKP_int32 )in_Q14[ 1 ] - cb_row_Q14[ 1 ], 16 );
+        diff_Q14_23 = (SKP_uint16)( in_Q14[ 2 ] - cb_row_Q14[ 2 ] ) | SKP_LSHIFT( ( SKP_int32 )in_Q14[ 3 ] - cb_row_Q14[ 3 ], 16 );
+        diff_Q14_4  = in_Q14[ 4 ] - cb_row_Q14[ 4 ];
+
+        /* Weighted rate */
+        sum1_Q14 = SKP_SMULBB( mu_Q8, cl_Q6[ k ] );
+
+        SKP_assert( sum1_Q14 &gt;= 0 );
+
+        /* Add weighted quantization error, assuming W_Q18 is symmetric */
+        /* NOTE: the code below loads two int16 values as one int32, and multiplies each using the  */
+        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+        /* first row of W_Q18 */
+        sum2_Q16 = SKP_SMULWT(           W_Q18[ 1 ], diff_Q14_01 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 2 ], diff_Q14_23 );
+        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 3 ], diff_Q14_23 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 4 ], diff_Q14_4  );
+        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 0 ], diff_Q14_01 );
+        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,   diff_Q14_01 );
+
+        /* second row of W_Q18 */
+        sum2_Q16 = SKP_SMULWB(           W_Q18[ 7 ], diff_Q14_23 );
+        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 8 ], diff_Q14_23 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 9 ], diff_Q14_4  );
+        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 6 ], diff_Q14_01 );
+        sum1_Q14 = SKP_SMLAWT( sum1_Q14, sum2_Q16,   diff_Q14_01 );
+
+        /* third row of W_Q18 */
+        sum2_Q16 = SKP_SMULWT(           W_Q18[ 13 ], diff_Q14_23 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 14 ], diff_Q14_4  );
+        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+        sum2_Q16 = SKP_SMLAWB( sum2_Q16, W_Q18[ 12 ], diff_Q14_23 );
+        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,    diff_Q14_23 );
+
+        /* fourth row of W_Q18 */
+        sum2_Q16 = SKP_SMULWB(           W_Q18[ 19 ], diff_Q14_4  );
+        sum2_Q16 = SKP_LSHIFT( sum2_Q16, 1 );
+        sum2_Q16 = SKP_SMLAWT( sum2_Q16, W_Q18[ 18 ], diff_Q14_23 );
+        sum1_Q14 = SKP_SMLAWT( sum1_Q14, sum2_Q16,    diff_Q14_23 );
+
+        /* last row of W_Q18 */
+        sum2_Q16 = SKP_SMULWB(           W_Q18[ 24 ], diff_Q14_4  );
+        sum1_Q14 = SKP_SMLAWB( sum1_Q14, sum2_Q16,    diff_Q14_4  );
+
+        SKP_assert( sum1_Q14 &gt;= 0 );
+
+        /* find best */
+        if( sum1_Q14 &lt; *rate_dist_Q14 ) {
+            *rate_dist_Q14 = sum1_Q14;
+            *ind = k;
+        }
+
+        /* Go to next cbk vector */
+        cb_row_Q14 += LTP_ORDER;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_allpass_intc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_allpass_int.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_allpass_int.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_allpass_int.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,84 +1,69 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                        *
- * SKP_Silk_allpass_int.c                                               *
- *                                                                        *
- * First-order allpass filter with                                        *
- * transfer function:                                                     *
- *                                                                        *
- *         A + Z^(-1)                                                     *
- * H(z) = ------------                                                    *
- *        1 + A*Z^(-1)                                                    *
- *                                                                        *
- * Implemented using minimum multiplier filter design.                    *
- *                                                                        *
- * Reference: http://www.univ.trieste.it/~ramponi/teaching/               *
- * DSP/materiale/Ch6(2).pdf                                               *
- *                                                                        *
- * Copyright 2007 (c), Skype Limited                                      *
- * Date: 070525                                                           *
- *                                                                        */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-
-
-
-
-
-
-/* First-order allpass filter */
-void SKP_Silk_allpass_int(
-    const SKP_int32      *in,    /* I:    Q25 input signal [len]               */
-    SKP_int32            *S,     /* I/O: Q25 state [1]                         */
-    SKP_int              A,      /* I:    Q15 coefficient    (0 &lt;= A &lt; 32768)  */
-    SKP_int32            *out,   /* O:    Q25 output signal [len]              */
-    const SKP_int32      len     /* I:    Number of samples                    */
-)
-{
-    SKP_int32    Y2, X2, S0;
-    SKP_int        k;
-
-    S0 = S[ 0 ];
-    for( k = len - 1; k &gt;= 0; k-- ) {
-        Y2         = *in - S0;
-        X2         = ( Y2 &gt;&gt; 15 ) * A + ( ( ( Y2 &amp; 0x00007FFF ) * A ) &gt;&gt; 15 );
-        ( *out++ ) = S0 + X2;
-        S0         = ( *in++ ) + X2;
-    }
-    S[ 0 ] = S0;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                        *
+ * SKP_Silk_allpass_int.c                                               *
+ *                                                                        *
+ * First-order allpass filter with                                        *
+ * transfer function:                                                     *
+ *                                                                        *
+ *         A + Z^(-1)                                                     *
+ * H(z) = ------------                                                    *
+ *        1 + A*Z^(-1)                                                    *
+ *                                                                        *
+ * Implemented using minimum multiplier filter design.                    *
+ *                                                                        *
+ * Reference: http://www.univ.trieste.it/~ramponi/teaching/               *
+ * DSP/materiale/Ch6(2).pdf                                               *
+ *                                                                        *
+ * Copyright 2007 (c), Skype Limited                                      *
+ * Date: 070525                                                           *
+ *                                                                        */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+
+/* First-order allpass filter */
+void SKP_Silk_allpass_int(
+    const SKP_int32      *in,    /* I:    Q25 input signal [len]               */
+    SKP_int32            *S,     /* I/O: Q25 state [1]                         */
+    SKP_int              A,      /* I:    Q15 coefficient    (0 &lt;= A &lt; 32768)  */
+    SKP_int32            *out,   /* O:    Q25 output signal [len]              */
+    const SKP_int32      len     /* I:    Number of samples                    */
+)
+{
+    SKP_int32    Y2, X2, S0;
+    SKP_int        k;
+
+    S0 = S[ 0 ];
+    for( k = len - 1; k &gt;= 0; k-- ) {
+        Y2         = *in - S0;
+        X2         = ( Y2 &gt;&gt; 15 ) * A + ( ( ( Y2 &amp; 0x00007FFF ) * A ) &gt;&gt; 15 );
+        ( *out++ ) = S0 + X2;
+        S0         = ( *in++ ) + X2;
+    }
+    S[ 0 ] = S0;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_ana_filt_bank_1c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_ana_filt_bank_1.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_ana_filt_bank_1.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_ana_filt_bank_1.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,88 +1,73 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-
-
-
-
-
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                          *
- * SKP_ana_filt_bank_1.c                                                    *
- *                                                                          *
- * Split signal into two decimated bands using first-order allpass filters  *
- *                                                                          *
- * Copyright 2006 (c), Skype Limited                                        *
- * Date: 060221                                                             *
- *                                                                          */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Coefficients for 2-band filter bank based on first-order allpass filters */
-static SKP_int16 A_fb1_20[ 1 ] = {  5394 };
-static SKP_int16 A_fb1_21[ 1 ] = { 20623 };
-
-/* Split signal into two decimated bands using first-order allpass filters */
-void SKP_Silk_ana_filt_bank_1(
-    const SKP_int16      *in,        /* I:    Input signal [N]       */
-    SKP_int32            *S,         /* I/O: State vector [2]        */
-    SKP_int16            *outL,      /* O:    Low band [N/2]         */
-    SKP_int16            *outH,      /* O:    High band [N/2]        */
-    SKP_int32            *scratch,   /* I:    Scratch memory [3*N/2] */
-    const SKP_int32      N           /* I:   Number of input samples */
-)
-{
-    SKP_int        k, N2 = SKP_RSHIFT( N, 1 );
-    SKP_int32    out_tmp;
-
-    /* De-interleave three allpass inputs, and convert Q15 -&gt; Q25 */
-    for( k = 0; k &lt; N2; k++ ) {
-        scratch[ k + N  ] = SKP_LSHIFT( (SKP_int32)in[ 2 * k     ], 10 );
-        scratch[ k + N2 ] = SKP_LSHIFT( (SKP_int32)in[ 2 * k + 1 ], 10 );
-    }
-
-    /* Allpass filters */
-    SKP_Silk_allpass_int( scratch + N2, S+0, A_fb1_20[ 0 ], scratch,      N2 );
-    SKP_Silk_allpass_int( scratch + N,  S+1, A_fb1_21[ 0 ], scratch + N2, N2 );
-
-    /* Add and subtract two allpass outputs to create bands */
-    for( k = 0; k &lt; N2; k++ ) {
-        out_tmp   = scratch[ k ] + scratch[ k + N2 ];
-        outL[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 11 ) );
-
-
-
-
-
-        out_tmp   = scratch[ k ] - scratch[ k + N2 ];
-        outH[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 11 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                          *
+ * SKP_ana_filt_bank_1.c                                                    *
+ *                                                                          *
+ * Split signal into two decimated bands using first-order allpass filters  *
+ *                                                                          *
+ * Copyright 2006 (c), Skype Limited                                        *
+ * Date: 060221                                                             *
+ *                                                                          */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Coefficients for 2-band filter bank based on first-order allpass filters */
+static SKP_int16 A_fb1_20[ 1 ] = {  5394 };
+static SKP_int16 A_fb1_21[ 1 ] = { 20623 };
+
+/* Split signal into two decimated bands using first-order allpass filters */
+void SKP_Silk_ana_filt_bank_1(
+    const SKP_int16      *in,        /* I:    Input signal [N]       */
+    SKP_int32            *S,         /* I/O: State vector [2]        */
+    SKP_int16            *outL,      /* O:    Low band [N/2]         */
+    SKP_int16            *outH,      /* O:    High band [N/2]        */
+    SKP_int32            *scratch,   /* I:    Scratch memory [3*N/2] */
+    const SKP_int32      N           /* I:   Number of input samples */
+)
+{
+    SKP_int        k, N2 = SKP_RSHIFT( N, 1 );
+    SKP_int32    out_tmp;
+
+    /* De-interleave three allpass inputs, and convert Q15 -&gt; Q25 */
+    for( k = 0; k &lt; N2; k++ ) {
+        scratch[ k + N  ] = SKP_LSHIFT( (SKP_int32)in[ 2 * k     ], 10 );
+        scratch[ k + N2 ] = SKP_LSHIFT( (SKP_int32)in[ 2 * k + 1 ], 10 );
+    }
+
+    /* Allpass filters */
+    SKP_Silk_allpass_int( scratch + N2, S+0, A_fb1_20[ 0 ], scratch,      N2 );
+    SKP_Silk_allpass_int( scratch + N,  S+1, A_fb1_21[ 0 ], scratch + N2, N2 );
+
+    /* Add and subtract two allpass outputs to create bands */
+    for( k = 0; k &lt; N2; k++ ) {
+        out_tmp   = scratch[ k ] + scratch[ k + N2 ];
+        outL[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 11 ) );
+
+        out_tmp   = scratch[ k ] - scratch[ k + N2 ];
+        outH[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 11 ) );
+    }        
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_apply_sine_windowc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_apply_sine_window.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_apply_sine_window.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_apply_sine_window.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,108 +1,92 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Apply sine window to signal vector.                                      */
-/* Window types:                                                            */
-/*    0 -&gt; sine window from 0 to pi                                         */
-/*    1 -&gt; sine window from 0 to pi/2                                       */
-/*    2 -&gt; sine window from pi/2 to pi                                      */
-/* every other sample of window is linearly interpolated, for speed         */
-void SKP_Silk_apply_sine_window(
-    SKP_int16                        px_win[],            /* O    Pointer to windowed signal                  */
-
-
-
-
-
-    const SKP_int16                  px[],                /* I    Pointer to input signal                     */
-    const SKP_int                    win_type,            /* I    Selects a window type                       */
-    const SKP_int                    length               /* I    Window length, multiple of 4                */
-)
-{
-    SKP_int   k;
-    SKP_int32 px32, f_Q16, c_Q20, S0_Q16, S1_Q16;
-
-    /* Length must be multiple of 4 */
-    SKP_assert( ( length &amp; 3 ) == 0 );
-
-    /* Input pointer must be 4-byte aligned */
-    SKP_assert( ( (SKP_int64)px &amp; 3 ) == 0 );
-
-    if( win_type == 0 ) {
-        f_Q16 = SKP_DIV32_16( 411775, length + 1 );        // 411775 = 2 * 65536 * pi
-    } else {
-        f_Q16 = SKP_DIV32_16( 205887, length + 1 );        // 205887 = 65536 * pi
-    }
-
-    /* factor used for cosine approximation */
-    c_Q20 = -SKP_RSHIFT( SKP_MUL( f_Q16, f_Q16 ), 12 );
-
-    /* c_Q20 becomes too large if length is too small */
-    SKP_assert( c_Q20 &gt;= -32768 );
-
-    /* initialize state */
-    if( win_type &lt; 2 ) {
-        /* start from 0 */
-        S0_Q16 = 0;
-        /* approximation of sin(f) */
-        S1_Q16 = f_Q16;
-    } else {
-        /* start from 1 */
-        S0_Q16 = ( 1 &lt;&lt; 16 );
-        /* approximation of cos(f) */
-        S1_Q16 = ( 1 &lt;&lt; 16 ) + SKP_RSHIFT( c_Q20, 5 );
-    }
-
-    /* Uses the recursive equation:   sin(n*f) = 2 * cos(f) * sin((n-1)*f) - sin((n-2)*f)    */
-    /* 4 samples at a time */
-    for( k = 0; k &lt; length; k += 4 ) {
-        px32 = *( (SKP_int32 *)&amp;px[ k ] );                        /* load two values at once */
-        px_win[ k ]     = (SKP_int16)SKP_SMULWB( SKP_RSHIFT( S0_Q16 + S1_Q16, 1 ), px32 );
-        px_win[ k + 1 ] = (SKP_int16)SKP_SMULWT( S1_Q16, px32 );
-        S0_Q16 = SKP_RSHIFT( SKP_MUL( c_Q20, S1_Q16 ), 20 ) + SKP_LSHIFT( S1_Q16, 1 ) - S0_Q16 + 1;
-        S0_Q16 = SKP_min( S0_Q16, ( 1 &lt;&lt; 16 ) );
-
-
-
-
-
-
-        px32 = *( (SKP_int32 *)&amp;px[k + 2] );                    /* load two values at once */
-        px_win[ k + 2 ] = (SKP_int16)SKP_SMULWB( SKP_RSHIFT( S0_Q16 + S1_Q16, 1 ), px32 );
-        px_win[ k + 3 ] = (SKP_int16)SKP_SMULWT( S0_Q16, px32 );
-        S1_Q16 = SKP_RSHIFT( SKP_MUL( c_Q20, S0_Q16 ), 20 ) + SKP_LSHIFT( S0_Q16, 1 ) - S1_Q16;
-        S1_Q16 = SKP_min( S1_Q16, ( 1 &lt;&lt; 16 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Apply sine window to signal vector.                                      */
+/* Window types:                                                            */
+/*    0 -&gt; sine window from 0 to pi                                         */
+/*    1 -&gt; sine window from 0 to pi/2                                       */
+/*    2 -&gt; sine window from pi/2 to pi                                      */
+/* every other sample of window is linearly interpolated, for speed         */
+void SKP_Silk_apply_sine_window(
+    SKP_int16                        px_win[],            /* O    Pointer to windowed signal                  */
+    const SKP_int16                  px[],                /* I    Pointer to input signal                     */
+    const SKP_int                    win_type,            /* I    Selects a window type                       */
+    const SKP_int                    length               /* I    Window length, multiple of 4                */
+)
+{
+    SKP_int   k;
+    SKP_int32 px32, f_Q16, c_Q20, S0_Q16, S1_Q16;
+
+    /* Length must be multiple of 4 */
+    SKP_assert( ( length &amp; 3 ) == 0 );
+
+    /* Input pointer must be 4-byte aligned */
+    SKP_assert( ( (SKP_int64)px &amp; 3 ) == 0 );
+
+    if( win_type == 0 ) {
+        f_Q16 = SKP_DIV32_16( 411775, length + 1 );        // 411775 = 2 * 65536 * pi
+    } else {
+        f_Q16 = SKP_DIV32_16( 205887, length + 1 );        // 205887 = 65536 * pi
+    }
+
+    /* factor used for cosine approximation */
+    c_Q20 = -SKP_RSHIFT( SKP_MUL( f_Q16, f_Q16 ), 12 );
+
+    /* c_Q20 becomes too large if length is too small */
+    SKP_assert( c_Q20 &gt;= -32768 );
+
+    /* initialize state */
+    if( win_type &lt; 2 ) {
+        /* start from 0 */
+        S0_Q16 = 0;
+        /* approximation of sin(f) */
+        S1_Q16 = f_Q16;
+    } else {
+        /* start from 1 */
+        S0_Q16 = ( 1 &lt;&lt; 16 );
+        /* approximation of cos(f) */
+        S1_Q16 = ( 1 &lt;&lt; 16 ) + SKP_RSHIFT( c_Q20, 5 );
+    }
+
+    /* Uses the recursive equation:   sin(n*f) = 2 * cos(f) * sin((n-1)*f) - sin((n-2)*f)    */
+    /* 4 samples at a time */
+    for( k = 0; k &lt; length; k += 4 ) {
+        px32 = *( (SKP_int32 *)&amp;px[ k ] );                        /* load two values at once */
+        px_win[ k ]     = (SKP_int16)SKP_SMULWB( SKP_RSHIFT( S0_Q16 + S1_Q16, 1 ), px32 );
+        px_win[ k + 1 ] = (SKP_int16)SKP_SMULWT( S1_Q16, px32 );
+        S0_Q16 = SKP_RSHIFT( SKP_MUL( c_Q20, S1_Q16 ), 20 ) + SKP_LSHIFT( S1_Q16, 1 ) - S0_Q16 + 1;
+        S0_Q16 = SKP_min( S0_Q16, ( 1 &lt;&lt; 16 ) );
+
+        px32 = *( (SKP_int32 *)&amp;px[k + 2] );                    /* load two values at once */
+        px_win[ k + 2 ] = (SKP_int16)SKP_SMULWB( SKP_RSHIFT( S0_Q16 + S1_Q16, 1 ), px32 );
+        px_win[ k + 3 ] = (SKP_int16)SKP_SMULWT( S0_Q16, px32 );
+        S1_Q16 = SKP_RSHIFT( SKP_MUL( c_Q20, S0_Q16 ), 20 ) + SKP_LSHIFT( S0_Q16, 1 ) - S1_Q16;
+        S1_Q16 = SKP_min( S1_Q16, ( 1 &lt;&lt; 16 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_array_maxabsc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_array_maxabs.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_array_maxabs.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_array_maxabs.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,75 +1,64 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_int16_array_maxabs.c                                      *
- *                                                                      *
- * Function that returns the maximum absolut value of                   *
- * the input vector                                                     *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
-
-
-
-
-
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Function that returns the maximum absolut value of the input vector */
-SKP_int16 SKP_Silk_int16_array_maxabs(    /* O    Maximum absolute value, max: 2^15-1   */
-    const SKP_int16        *vec,            /* I    Input vector  [len]                   */
-    const SKP_int32        len              /* I    Length of input vector                */
-)
-{
-    SKP_int32 max = 0, i, lvl = 0, ind;
-
-    ind = len - 1;
-    max = SKP_SMULBB( vec[ ind ], vec[ ind ] );
-    for( i = len - 2; i &gt;= 0; i-- ) {
-        lvl = SKP_SMULBB( vec[ i ], vec[ i ] );
-        if( lvl &gt; max ) {
-            max = lvl;
-            ind = i;
-        }
-    }
-
-    /* Do not return 32768, as it will not fit in an int16 so may lead to problems later on */
-    lvl = SKP_abs( vec[ ind ] );
-    if( lvl &gt; SKP_int16_MAX ) {
-        return( SKP_int16_MAX );
-    } else {
-        return( (SKP_int16)lvl );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_int16_array_maxabs.c                                      *
+ *                                                                      *
+ * Function that returns the maximum absolut value of                   *
+ * the input vector                                                     *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Function that returns the maximum absolut value of the input vector */
+SKP_int16 SKP_Silk_int16_array_maxabs(    /* O    Maximum absolute value, max: 2^15-1   */
+    const SKP_int16        *vec,            /* I    Input vector  [len]                   */
+    const SKP_int32        len              /* I    Length of input vector                */
+)                    
+{
+    SKP_int32 max = 0, i, lvl = 0, ind;
+
+    ind = len - 1;
+    max = SKP_SMULBB( vec[ ind ], vec[ ind ] );
+    for( i = len - 2; i &gt;= 0; i-- ) {
+        lvl = SKP_SMULBB( vec[ i ], vec[ i ] );
+        if( lvl &gt; max ) {
+            max = lvl;
+            ind = i;
+        }
+    }
+
+    /* Do not return 32768, as it will not fit in an int16 so may lead to problems later on */
+    lvl = SKP_abs( vec[ ind ] );
+    if( lvl &gt; SKP_int16_MAX ) {
+        return( SKP_int16_MAX );
+    } else {
+        return( (SKP_int16)lvl );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_autocorrc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_autocorr.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_autocorr.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_autocorr.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,97 +1,81 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-
-
-
-
-
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_autocorr.c                                                *
- *                                                                      *
- * Calculates the autocorrelation                                       *
- * The result has 29 non-zero bits for the first correlation, to leave  *
- * some    room for adding white noise fractions etc.                   *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Compute autocorrelation */
-void SKP_Silk_autocorr(
-    SKP_int32        *results,                   /* O    Result (length correlationCount)            */
-    SKP_int32        *scale,                     /* O    Scaling of the correlation vector           */
-    const SKP_int16  *inputData,                 /* I    Input data to correlate                     */
-    const SKP_int    inputDataSize,              /* I    Length of input                             */
-    const SKP_int    correlationCount            /* I    Number of correlation taps to compute       */
-)
-{
-    SKP_int   i, lz, nRightShifts, corrCount;
-    SKP_int64 corr64;
-
-    corrCount = SKP_min_int( inputDataSize, correlationCount );
-
-    /* compute energy (zero-lag correlation) */
-    corr64 = SKP_Silk_inner_prod16_aligned_64( inputData, inputData, inputDataSize );
-
-    /* deal with all-zero input data */
-    corr64 += 1;
-
-    /* number of leading zeros */
-
-
-
-
-
-    lz = SKP_Silk_CLZ64( corr64 );
-
-    /* scaling: number of right shifts applied to correlations */
-    nRightShifts = 35 - lz;
-    *scale = nRightShifts;
-
-    if( nRightShifts &lt;= 0 ) {
-        results[ 0 ] = SKP_LSHIFT( (SKP_int32)SKP_CHECK_FIT32( corr64 ), -nRightShifts );
-
-        /* compute remaining correlations based on int32 inner product */
-          for( i = 1; i &lt; corrCount; i++ ) {
-            results[ i ] = SKP_LSHIFT( SKP_Silk_inner_prod_aligned( inputData, inputData + i, inputDataSize - i ), -nRightShifts );
-        }
-    } else {
-        results[ 0 ] = (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( corr64, nRightShifts ) );
-
-        /* compute remaining correlations based on int64 inner product */
-          for( i = 1; i &lt; corrCount; i++ ) {
-            results[ i ] =  (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( SKP_Silk_inner_prod16_aligned_64( inputData, inputData + i, inputDataSize - i ), nRightShifts ) );
-        }
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_autocorr.c                                                *
+ *                                                                      *
+ * Calculates the autocorrelation                                       *
+ * The result has 29 non-zero bits for the first correlation, to leave  *
+ * some    room for adding white noise fractions etc.                   *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Compute autocorrelation */
+void SKP_Silk_autocorr( 
+    SKP_int32        *results,                   /* O    Result (length correlationCount)            */
+    SKP_int32        *scale,                     /* O    Scaling of the correlation vector           */
+    const SKP_int16  *inputData,                 /* I    Input data to correlate                     */
+    const SKP_int    inputDataSize,              /* I    Length of input                             */
+    const SKP_int    correlationCount            /* I    Number of correlation taps to compute       */
+)
+{
+    SKP_int   i, lz, nRightShifts, corrCount;
+    SKP_int64 corr64;
+
+    corrCount = SKP_min_int( inputDataSize, correlationCount );
+
+    /* compute energy (zero-lag correlation) */
+    corr64 = SKP_Silk_inner_prod16_aligned_64( inputData, inputData, inputDataSize );
+
+    /* deal with all-zero input data */
+    corr64 += 1;
+
+    /* number of leading zeros */
+    lz = SKP_Silk_CLZ64( corr64 );
+
+    /* scaling: number of right shifts applied to correlations */
+    nRightShifts = 35 - lz;
+    *scale = nRightShifts;
+
+    if( nRightShifts &lt;= 0 ) {
+        results[ 0 ] = SKP_LSHIFT( (SKP_int32)SKP_CHECK_FIT32( corr64 ), -nRightShifts );
+
+        /* compute remaining correlations based on int32 inner product */
+          for( i = 1; i &lt; corrCount; i++ ) {
+            results[ i ] = SKP_LSHIFT( SKP_Silk_inner_prod_aligned( inputData, inputData + i, inputDataSize - i ), -nRightShifts );
+        }
+    } else {
+        results[ 0 ] = (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( corr64, nRightShifts ) );
+
+        /* compute remaining correlations based on int64 inner product */
+          for( i = 1; i &lt; corrCount; i++ ) {
+            results[ i ] =  (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( SKP_Silk_inner_prod16_aligned_64( inputData, inputData + i, inputDataSize - i ), nRightShifts ) );
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_biquadc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_biquad.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_biquad.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_biquad.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,88 +1,72 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-
-
-
-
-
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_biquad.c                                                  *
- *                                                                      *
- * Second order ARMA filter                                             *
- * Can handle slowly varying filter coefficients                        *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Second order ARMA filter */
-/* Can handle slowly varying filter coefficients */
-void SKP_Silk_biquad(
-    const SKP_int16      *in,        /* I:    input signal               */
-    const SKP_int16      *B,         /* I:    MA coefficients, Q13 [3]   */
-    const SKP_int16      *A,         /* I:    AR coefficients, Q13 [2]   */
-    SKP_int32            *S,         /* I/O: state vector [2]            */
-    SKP_int16            *out,       /* O:    output signal              */
-    const SKP_int32      len         /* I:    signal length              */
-)
-{
-    SKP_int   k, in16;
-    SKP_int32 A0_neg, A1_neg, S0, S1, out32, tmp32;
-
-    S0 = S[ 0 ];
-    S1 = S[ 1 ];
-    A0_neg = -A[ 0 ];
-    A1_neg = -A[ 1 ];
-    for( k = 0; k &lt; len; k++ ) {
-        /* S[ 0 ], S[ 1 ]: Q13 */
-        in16  = in[ k ];
-        out32 = SKP_SMLABB( S0, in16, B[ 0 ] );
-
-        S0 = SKP_SMLABB( S1, in16, B[ 1 ] );
-        S0 += SKP_LSHIFT( SKP_SMULWB( out32, A0_neg ), 3 );
-
-        S1 = SKP_LSHIFT( SKP_SMULWB( out32, A1_neg ), 3 );
-        S1 = SKP_SMLABB( S1, in16, B[ 2 ] );
-        tmp32    = SKP_RSHIFT_ROUND( out32, 13 ) + 1;
-
-
-
-
-
-        out[ k ] = (SKP_int16)SKP_SAT16( tmp32 );
-    }
-    S[ 0 ] = S0;
-    S[ 1 ] = S1;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_biquad.c                                                  *
+ *                                                                      *
+ * Second order ARMA filter                                             *
+ * Can handle slowly varying filter coefficients                        *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Second order ARMA filter */
+/* Can handle slowly varying filter coefficients */
+void SKP_Silk_biquad(
+    const SKP_int16      *in,        /* I:    input signal               */
+    const SKP_int16      *B,         /* I:    MA coefficients, Q13 [3]   */
+    const SKP_int16      *A,         /* I:    AR coefficients, Q13 [2]   */
+    SKP_int32            *S,         /* I/O: state vector [2]            */
+    SKP_int16            *out,       /* O:    output signal              */
+    const SKP_int32      len         /* I:    signal length              */
+)
+{
+    SKP_int   k, in16;
+    SKP_int32 A0_neg, A1_neg, S0, S1, out32, tmp32;
+
+    S0 = S[ 0 ];
+    S1 = S[ 1 ];
+    A0_neg = -A[ 0 ];
+    A1_neg = -A[ 1 ];
+    for( k = 0; k &lt; len; k++ ) {
+        /* S[ 0 ], S[ 1 ]: Q13 */
+        in16  = in[ k ];
+        out32 = SKP_SMLABB( S0, in16, B[ 0 ] );
+
+        S0 = SKP_SMLABB( S1, in16, B[ 1 ] );
+        S0 += SKP_LSHIFT( SKP_SMULWB( out32, A0_neg ), 3 );
+
+        S1 = SKP_LSHIFT( SKP_SMULWB( out32, A1_neg ), 3 );
+        S1 = SKP_SMLABB( S1, in16, B[ 2 ] );
+        tmp32    = SKP_RSHIFT_ROUND( out32, 13 ) + 1;
+        out[ k ] = (SKP_int16)SKP_SAT16( tmp32 );
+    }
+    S[ 0 ] = S0;
+    S[ 1 ] = S1;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_biquad_altc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_biquad_alt.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_biquad_alt.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_biquad_alt.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,84 +1,73 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_biquad_alt.c                                              *
- *                                                                      *
- * Second order ARMA filter                                             *
- * Can handle slowly varying filter coefficients                        *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-
-
-
-
-
-
-/* Second order ARMA filter, alternative implementation */
-void SKP_Silk_biquad_alt(
-    const SKP_int16      *in,            /* I:    Input signal                   */
-    const SKP_int32      *B_Q28,         /* I:    MA coefficients [3]            */
-    const SKP_int32      *A_Q28,         /* I:    AR coefficients [2]            */
-    SKP_int32            *S,             /* I/O: State vector [2]                */
-    SKP_int16            *out,           /* O:    Output signal                  */
-    const SKP_int32      len             /* I:    Signal length (must be even)   */
-)
-{
-    /* DIRECT FORM II TRANSPOSED (uses 2 element state vector) */
-    SKP_int   k;
-    SKP_int32 inval, A0_U_Q28, A0_L_Q28, A1_U_Q28, A1_L_Q28, out32_Q14;
-
-    /* Negate A_Q28 values and split in two parts */
-    A0_L_Q28 = ( -A_Q28[ 0 ] ) &amp; 0x00003FFF;        /* lower part */
-    A0_U_Q28 = SKP_RSHIFT( -A_Q28[ 0 ], 14 );       /* upper part */
-    A1_L_Q28 = ( -A_Q28[ 1 ] ) &amp; 0x00003FFF;        /* lower part */
-    A1_U_Q28 = SKP_RSHIFT( -A_Q28[ 1 ], 14 );       /* upper part */
-
-    for( k = 0; k &lt; len; k++ ) {
-        /* S[ 0 ], S[ 1 ]: Q12 */
-        inval = in[ k ];
-        out32_Q14 = SKP_LSHIFT( SKP_SMLAWB( S[ 0 ], B_Q28[ 0 ], inval ), 2 );
-
-        S[ 0 ] = S[1] + SKP_RSHIFT( SKP_SMULWB( out32_Q14, A0_L_Q28 ), 14 );
-        S[ 0 ] = SKP_SMLAWB( S[ 0 ], out32_Q14, A0_U_Q28 );
-        S[ 0 ] = SKP_SMLAWB( S[ 0 ], B_Q28[ 1 ], inval);
-
-        S[ 1 ] = SKP_RSHIFT( SKP_SMULWB( out32_Q14, A1_L_Q28 ), 14 );
-        S[ 1 ] = SKP_SMLAWB( S[ 1 ], out32_Q14, A1_U_Q28 );
-        S[ 1 ] = SKP_SMLAWB( S[ 1 ], B_Q28[ 2 ], inval );
-
-        /* Scale back to Q0 and saturate */
-        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT( out32_Q14, 14 ) + 2 );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_biquad_alt.c                                              *
+ *                                                                      *
+ * Second order ARMA filter                                             *
+ * Can handle slowly varying filter coefficients                        *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+
+/* Second order ARMA filter, alternative implementation */
+void SKP_Silk_biquad_alt(
+    const SKP_int16      *in,            /* I:    Input signal                   */
+    const SKP_int32      *B_Q28,         /* I:    MA coefficients [3]            */
+    const SKP_int32      *A_Q28,         /* I:    AR coefficients [2]            */
+    SKP_int32            *S,             /* I/O: State vector [2]                */
+    SKP_int16            *out,           /* O:    Output signal                  */
+    const SKP_int32      len             /* I:    Signal length (must be even)   */
+)
+{
+    /* DIRECT FORM II TRANSPOSED (uses 2 element state vector) */
+    SKP_int   k;
+    SKP_int32 inval, A0_U_Q28, A0_L_Q28, A1_U_Q28, A1_L_Q28, out32_Q14;
+
+    /* Negate A_Q28 values and split in two parts */
+    A0_L_Q28 = ( -A_Q28[ 0 ] ) &amp; 0x00003FFF;        /* lower part */
+    A0_U_Q28 = SKP_RSHIFT( -A_Q28[ 0 ], 14 );       /* upper part */
+    A1_L_Q28 = ( -A_Q28[ 1 ] ) &amp; 0x00003FFF;        /* lower part */
+    A1_U_Q28 = SKP_RSHIFT( -A_Q28[ 1 ], 14 );       /* upper part */
+    
+    for( k = 0; k &lt; len; k++ ) {
+        /* S[ 0 ], S[ 1 ]: Q12 */
+        inval = in[ k ];
+        out32_Q14 = SKP_LSHIFT( SKP_SMLAWB( S[ 0 ], B_Q28[ 0 ], inval ), 2 );
+
+        S[ 0 ] = S[1] + SKP_RSHIFT( SKP_SMULWB( out32_Q14, A0_L_Q28 ), 14 );
+        S[ 0 ] = SKP_SMLAWB( S[ 0 ], out32_Q14, A0_U_Q28 );
+        S[ 0 ] = SKP_SMLAWB( S[ 0 ], B_Q28[ 1 ], inval);
+
+        S[ 1 ] = SKP_RSHIFT( SKP_SMULWB( out32_Q14, A1_L_Q28 ), 14 );
+        S[ 1 ] = SKP_SMLAWB( S[ 1 ], out32_Q14, A1_U_Q28 );
+        S[ 1 ] = SKP_SMLAWB( S[ 1 ], B_Q28[ 2 ], inval );
+
+        /* Scale back to Q0 and saturate */
+        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT( out32_Q14, 14 ) + 2 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_burg_modifiedc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_burg_modified.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_burg_modified.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_burg_modified.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,253 +1,228 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_burg_modified.c                                           *
- *                                                                      *
- * Calculates the reflection coefficients from the input vector         *
- * Input vector contains nb_subfr sub vectors of length L_sub + D       *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * Date: 100105                                                         *
- */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define MAX_FRAME_SIZE              544 // subfr_length * nb_subfr = ( 0.005 * 24000 + 16 ) * 4 = 544
-#define MAX_NB_SUBFR                4
-
-#define QA                          24
-
-
-
-
-
-#define N_BITS_HEAD_ROOM            2
-#define MIN_RSHIFTS                 -16
-#define MAX_RSHIFTS                 (32 - QA)
-
-/* Compute reflection coefficients from input signal */
-void SKP_Silk_burg_modified(
-    SKP_int32       *res_nrg,           /* O    residual energy                                                 */
-    SKP_int         *res_nrg_Q,         /* O    residual energy Q value                                         */
-    SKP_int32       A_Q16[],            /* O    prediction coefficients (length order)                          */
-    const SKP_int16 x[],                /* I    input signal, length: nb_subfr * ( D + subfr_length )           */
-    const SKP_int   subfr_length,       /* I    input signal subframe length (including D preceeding samples)   */
-    const SKP_int   nb_subfr,           /* I    number of subframes stacked in x                                */
-    const SKP_int32 WhiteNoiseFrac_Q32, /* I    fraction added to zero-lag autocorrelation                      */
-    const SKP_int   D                   /* I    order                                                           */
-)
-{
-    SKP_int         k, n, s, lz, rshifts, rshifts_extra;
-    SKP_int32       C0, num, nrg, rc_Q31, Atmp_QA, Atmp1, tmp1, tmp2, x1, x2;
-    const SKP_int16 *x_ptr;
-
-    SKP_int32       C_first_row[ SigProc_MAX_ORDER_LPC ];
-    SKP_int32       C_last_row[  SigProc_MAX_ORDER_LPC ];
-    SKP_int32       Af_QA[       SigProc_MAX_ORDER_LPC ];
-
-    SKP_int32       CAf[ SigProc_MAX_ORDER_LPC + 1 ];
-    SKP_int32       CAb[ SigProc_MAX_ORDER_LPC + 1 ];
-
-    SKP_assert( subfr_length * nb_subfr &lt;= MAX_FRAME_SIZE );
-    SKP_assert( nb_subfr &lt;= MAX_NB_SUBFR );
-
-
-    /* Compute autocorrelations, added over subframes */
-    SKP_Silk_sum_sqr_shift( &amp;C0, &amp;rshifts, x, nb_subfr * subfr_length );
-    if( rshifts &gt; MAX_RSHIFTS ) {
-        C0 = SKP_LSHIFT32( C0, rshifts - MAX_RSHIFTS );
-        SKP_assert( C0 &gt; 0 );
-        rshifts = MAX_RSHIFTS;
-    } else {
-        lz = SKP_Silk_CLZ32( C0 ) - 1;
-        rshifts_extra = N_BITS_HEAD_ROOM - lz;
-        if( rshifts_extra &gt; 0 ) {
-            rshifts_extra = SKP_min( rshifts_extra, MAX_RSHIFTS - rshifts );
-            C0 = SKP_RSHIFT32( C0, rshifts_extra );
-        } else {
-            rshifts_extra = SKP_max( rshifts_extra, MIN_RSHIFTS - rshifts );
-            C0 = SKP_LSHIFT32( C0, -rshifts_extra );
-        }
-        rshifts += rshifts_extra;
-
-
-
-
-
-    }
-    SKP_memset( C_first_row, 0, SigProc_MAX_ORDER_LPC * sizeof( SKP_int32 ) );
-    if( rshifts &gt; 0 ) {
-        for( s = 0; s &lt; nb_subfr; s++ ) {
-            x_ptr = x + s * subfr_length;
-            for( n = 1; n &lt; D + 1; n++ ) {
-                C_first_row[ n - 1 ] += (SKP_int32)SKP_RSHIFT64(
-                    SKP_Silk_inner_prod16_aligned_64( x_ptr, x_ptr + n, subfr_length - n ), rshifts );
-            }
-        }
-    } else {
-        for( s = 0; s &lt; nb_subfr; s++ ) {
-            x_ptr = x + s * subfr_length;
-            for( n = 1; n &lt; D + 1; n++ ) {
-                C_first_row[ n - 1 ] += SKP_LSHIFT32(
-                    SKP_Silk_inner_prod_aligned( x_ptr, x_ptr + n, subfr_length - n ), -rshifts );
-            }
-        }
-    }
-    SKP_memcpy( C_last_row, C_first_row, SigProc_MAX_ORDER_LPC * sizeof( SKP_int32 ) );
-
-    /* Initialize */
-    CAb[ 0 ] = CAf[ 0 ] = C0 + SKP_SMMUL( WhiteNoiseFrac_Q32, C0 ) + 1;         // Q(-rshifts)
-
-    for( n = 0; n &lt; D; n++ ) {
-        /* Update first row of correlation matrix (without first element) */
-        /* Update last row of correlation matrix (without last element, stored in reversed order) */
-        /* Update C * Af */
-        /* Update C * flipud(Af) (stored in reversed order) */
-        if( rshifts &gt; -2 ) {
-            for( s = 0; s &lt; nb_subfr; s++ ) {
-                x_ptr = x + s * subfr_length;
-                x1  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    16 - rshifts );      // Q(16-rshifts)
-                x2  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], 16 - rshifts );      // Q(16-rshifts)
-                tmp1 = SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    QA - 16 );           // Q(QA-16)
-                tmp2 = SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], QA - 16 );           // Q(QA-16)
-                for( k = 0; k &lt; n; k++ ) {
-                    C_first_row[ k ] = SKP_SMLAWB( C_first_row[ k ], x1, x_ptr[ n - k - 1 ]            ); // Q( -rshifts )
-                    C_last_row[ k ]  = SKP_SMLAWB( C_last_row[ k ],  x2, x_ptr[ subfr_length - n + k ] ); // Q( -rshifts )
-                    Atmp_QA = Af_QA[ k ];
-                    tmp1 = SKP_SMLAWB( tmp1, Atmp_QA, x_ptr[ n - k - 1 ]            );              // Q(QA-16)
-                    tmp2 = SKP_SMLAWB( tmp2, Atmp_QA, x_ptr[ subfr_length - n + k ] );              // Q(QA-16)
-                }
-                tmp1 = SKP_LSHIFT32( -tmp1, 32 - QA - rshifts );                                    // Q(16-rshifts)
-                tmp2 = SKP_LSHIFT32( -tmp2, 32 - QA - rshifts );                                    // Q(16-rshifts)
-                for( k = 0; k &lt;= n; k++ ) {
-                    CAf[ k ] = SKP_SMLAWB( CAf[ k ], tmp1, x_ptr[ n - k ]                    );     // Q( -rshift )
-                    CAb[ k ] = SKP_SMLAWB( CAb[ k ], tmp2, x_ptr[ subfr_length - n + k - 1 ] );     // Q( -rshift )
-
-
-
-
-
-                }
-            }
-        } else {
-            for( s = 0; s &lt; nb_subfr; s++ ) {
-                x_ptr = x + s * subfr_length;
-                x1  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    -rshifts );          // Q( -rshifts )
-                x2  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], -rshifts );          // Q( -rshifts )
-                tmp1 = SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    17 );                // Q17
-                tmp2 = SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], 17 );                // Q17
-                for( k = 0; k &lt; n; k++ ) {
-                    C_first_row[ k ] = SKP_MLA( C_first_row[ k ], x1, x_ptr[ n - k - 1 ]            ); // Q( -rshifts )
-                    C_last_row[ k ]  = SKP_MLA( C_last_row[ k ],  x2, x_ptr[ subfr_length - n + k ] ); // Q( -rshifts )
-                    Atmp1 = SKP_RSHIFT_ROUND( Af_QA[ k ], QA - 17 );                                // Q17
-                    tmp1 = SKP_MLA( tmp1, x_ptr[ n - k - 1 ],            Atmp1 );                   // Q17
-                    tmp2 = SKP_MLA( tmp2, x_ptr[ subfr_length - n + k ], Atmp1 );                   // Q17
-                }
-                tmp1 = -tmp1;                                                                       // Q17
-                tmp2 = -tmp2;                                                                       // Q17
-                for( k = 0; k &lt;= n; k++ ) {
-                    CAf[ k ] = SKP_SMLAWW( CAf[ k ], tmp1,
-                        SKP_LSHIFT32( (SKP_int32)x_ptr[ n - k ], -rshifts - 1 ) );                  // Q( -rshift )
-                    CAb[ k ] = SKP_SMLAWW( CAb[ k ], tmp2,
-                        SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n + k - 1 ], -rshifts - 1 ) );// Q( -rshift )
-                }
-            }
-        }
-
-        /* Calculate nominator and denominator for the next order reflection (parcor) coefficient */
-        tmp1 = C_first_row[ n ];                                                            // Q( -rshifts )
-        tmp2 = C_last_row[ n ];                                                             // Q( -rshifts )
-        num  = 0;                                                                           // Q( -rshifts )
-        nrg  = SKP_ADD32( CAb[ 0 ], CAf[ 0 ] );                                             // Q( 1-rshifts )
-        for( k = 0; k &lt; n; k++ ) {
-            Atmp_QA = Af_QA[ k ];
-            lz = SKP_Silk_CLZ32( SKP_abs( Atmp_QA ) ) - 1;
-            lz = SKP_min( 32 - QA, lz );
-            Atmp1 = SKP_LSHIFT32( Atmp_QA, lz );                                            // Q( QA + lz )
-
-            tmp1 = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( C_last_row[  n - k - 1 ], Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
-            tmp2 = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( C_first_row[ n - k - 1 ], Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
-            num  = SKP_ADD_LSHIFT32( num,  SKP_SMMUL( CAb[ n - k ],             Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
-            nrg  = SKP_ADD_LSHIFT32( nrg,  SKP_SMMUL( SKP_ADD32( CAb[ k + 1 ], CAf[ k + 1 ] ),
-                                                                                Atmp1 ), 32 - QA - lz );    // Q( 1-rshifts )
-        }
-        CAf[ n + 1 ] = tmp1;                                                                // Q( -rshifts )
-        CAb[ n + 1 ] = tmp2;                                                                // Q( -rshifts )
-        num = SKP_ADD32( num, tmp2 );                                                       // Q( -rshifts )
-        num = SKP_LSHIFT32( -num, 1 );                                                      // Q( 1-rshifts )
-
-
-
-
-
-        /* Calculate the next order reflection (parcor) coefficient */
-        if( SKP_abs( num ) &lt; nrg ) {
-            rc_Q31 = SKP_DIV32_varQ( num, nrg, 31 );
-        } else {
-            /* Negative energy or ratio too high; set remaining coefficients to zero and exit loop */
-            SKP_memset( &amp;Af_QA[ n ], 0, ( D - n ) * sizeof( SKP_int32 ) );
-            SKP_assert( 0 );
-            break;
-        }
-
-        /* Update the AR coefficients */
-        for( k = 0; k &lt; (n + 1) &gt;&gt; 1; k++ ) {
-            tmp1 = Af_QA[ k ];                                                              // QA
-            tmp2 = Af_QA[ n - k - 1 ];                                                      // QA
-            Af_QA[ k ]         = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( tmp2, rc_Q31 ), 1 );    // QA
-            Af_QA[ n - k - 1 ] = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( tmp1, rc_Q31 ), 1 );    // QA
-        }
-        Af_QA[ n ] = SKP_RSHIFT32( rc_Q31, 31 - QA );                                       // QA
-
-        /* Update C * Af and C * Ab */
-        for( k = 0; k &lt;= n + 1; k++ ) {
-            tmp1 = CAf[ k ];                                                                // Q( -rshifts )
-            tmp2 = CAb[ n - k + 1 ];                                                        // Q( -rshifts )
-            CAf[ k ]         = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( tmp2, rc_Q31 ), 1 );      // Q( -rshifts )
-            CAb[ n - k + 1 ] = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( tmp1, rc_Q31 ), 1 );      // Q( -rshifts )
-        }
-    }
-
-    /* Return residual energy */
-    nrg  = CAf[ 0 ];                                                                        // Q( -rshifts )
-    tmp1 = 1 &lt;&lt; 16;                                                                         // Q16
-    for( k = 0; k &lt; D; k++ ) {
-        Atmp1 = SKP_RSHIFT_ROUND( Af_QA[ k ], QA - 16 );                                    // Q16
-        nrg  = SKP_SMLAWW( nrg, CAf[ k + 1 ], Atmp1 );                                      // Q( -rshifts )
-        tmp1 = SKP_SMLAWW( tmp1, Atmp1, Atmp1 );                                            // Q16
-        A_Q16[ k ] = -Atmp1;
-    }
-    *res_nrg = SKP_SMLAWW( nrg, SKP_SMMUL( WhiteNoiseFrac_Q32, C0 ), -tmp1 );               // Q( -rshifts )
-    *res_nrg_Q = -rshifts;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_burg_modified.c                                           *
+ *                                                                      *
+ * Calculates the reflection coefficients from the input vector         *
+ * Input vector contains nb_subfr sub vectors of length L_sub + D       *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * Date: 100105                                                         *
+ */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define MAX_FRAME_SIZE              544 // subfr_length * nb_subfr = ( 0.005 * 24000 + 16 ) * 4 = 544
+#define MAX_NB_SUBFR                4
+
+#define QA                          24
+#define N_BITS_HEAD_ROOM            2
+#define MIN_RSHIFTS                 -16
+#define MAX_RSHIFTS                 (32 - QA)
+
+/* Compute reflection coefficients from input signal */
+void SKP_Silk_burg_modified(
+    SKP_int32       *res_nrg,           /* O    residual energy                                                 */
+    SKP_int         *res_nrg_Q,         /* O    residual energy Q value                                         */
+    SKP_int32       A_Q16[],            /* O    prediction coefficients (length order)                          */
+    const SKP_int16 x[],                /* I    input signal, length: nb_subfr * ( D + subfr_length )           */
+    const SKP_int   subfr_length,       /* I    input signal subframe length (including D preceeding samples)   */
+    const SKP_int   nb_subfr,           /* I    number of subframes stacked in x                                */
+    const SKP_int32 WhiteNoiseFrac_Q32, /* I    fraction added to zero-lag autocorrelation                      */
+    const SKP_int   D                   /* I    order                                                           */
+)
+{
+    SKP_int         k, n, s, lz, rshifts, rshifts_extra;
+    SKP_int32       C0, num, nrg, rc_Q31, Atmp_QA, Atmp1, tmp1, tmp2, x1, x2;
+    const SKP_int16 *x_ptr;
+
+    SKP_int32       C_first_row[ SigProc_MAX_ORDER_LPC ];
+    SKP_int32       C_last_row[  SigProc_MAX_ORDER_LPC ];
+    SKP_int32       Af_QA[       SigProc_MAX_ORDER_LPC ];
+
+    SKP_int32       CAf[ SigProc_MAX_ORDER_LPC + 1 ];
+    SKP_int32       CAb[ SigProc_MAX_ORDER_LPC + 1 ];
+
+    SKP_assert( subfr_length * nb_subfr &lt;= MAX_FRAME_SIZE );
+    SKP_assert( nb_subfr &lt;= MAX_NB_SUBFR );
+
+
+    /* Compute autocorrelations, added over subframes */
+    SKP_Silk_sum_sqr_shift( &amp;C0, &amp;rshifts, x, nb_subfr * subfr_length );
+    if( rshifts &gt; MAX_RSHIFTS ) {
+        C0 = SKP_LSHIFT32( C0, rshifts - MAX_RSHIFTS );
+        SKP_assert( C0 &gt; 0 );
+        rshifts = MAX_RSHIFTS;
+    } else {
+        lz = SKP_Silk_CLZ32( C0 ) - 1;
+        rshifts_extra = N_BITS_HEAD_ROOM - lz;
+        if( rshifts_extra &gt; 0 ) {
+            rshifts_extra = SKP_min( rshifts_extra, MAX_RSHIFTS - rshifts );
+            C0 = SKP_RSHIFT32( C0, rshifts_extra );
+        } else {
+            rshifts_extra = SKP_max( rshifts_extra, MIN_RSHIFTS - rshifts );
+            C0 = SKP_LSHIFT32( C0, -rshifts_extra );
+        }
+        rshifts += rshifts_extra;
+    }
+    SKP_memset( C_first_row, 0, SigProc_MAX_ORDER_LPC * sizeof( SKP_int32 ) );
+    if( rshifts &gt; 0 ) {
+        for( s = 0; s &lt; nb_subfr; s++ ) {
+            x_ptr = x + s * subfr_length;
+            for( n = 1; n &lt; D + 1; n++ ) {
+                C_first_row[ n - 1 ] += (SKP_int32)SKP_RSHIFT64( 
+                    SKP_Silk_inner_prod16_aligned_64( x_ptr, x_ptr + n, subfr_length - n ), rshifts );
+            }
+        }
+    } else {
+        for( s = 0; s &lt; nb_subfr; s++ ) {
+            x_ptr = x + s * subfr_length;
+            for( n = 1; n &lt; D + 1; n++ ) {
+                C_first_row[ n - 1 ] += SKP_LSHIFT32( 
+                    SKP_Silk_inner_prod_aligned( x_ptr, x_ptr + n, subfr_length - n ), -rshifts );
+            }
+        }
+    }
+    SKP_memcpy( C_last_row, C_first_row, SigProc_MAX_ORDER_LPC * sizeof( SKP_int32 ) );
+    
+    /* Initialize */
+    CAb[ 0 ] = CAf[ 0 ] = C0 + SKP_SMMUL( WhiteNoiseFrac_Q32, C0 ) + 1;         // Q(-rshifts)
+
+    for( n = 0; n &lt; D; n++ ) {
+        /* Update first row of correlation matrix (without first element) */
+        /* Update last row of correlation matrix (without last element, stored in reversed order) */
+        /* Update C * Af */
+        /* Update C * flipud(Af) (stored in reversed order) */
+        if( rshifts &gt; -2 ) {
+            for( s = 0; s &lt; nb_subfr; s++ ) {
+                x_ptr = x + s * subfr_length;
+                x1  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    16 - rshifts );      // Q(16-rshifts)
+                x2  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], 16 - rshifts );      // Q(16-rshifts)
+                tmp1 = SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    QA - 16 );           // Q(QA-16)
+                tmp2 = SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], QA - 16 );           // Q(QA-16)
+                for( k = 0; k &lt; n; k++ ) {
+                    C_first_row[ k ] = SKP_SMLAWB( C_first_row[ k ], x1, x_ptr[ n - k - 1 ]            ); // Q( -rshifts )
+                    C_last_row[ k ]  = SKP_SMLAWB( C_last_row[ k ],  x2, x_ptr[ subfr_length - n + k ] ); // Q( -rshifts )
+                    Atmp_QA = Af_QA[ k ];
+                    tmp1 = SKP_SMLAWB( tmp1, Atmp_QA, x_ptr[ n - k - 1 ]            );              // Q(QA-16)
+                    tmp2 = SKP_SMLAWB( tmp2, Atmp_QA, x_ptr[ subfr_length - n + k ] );              // Q(QA-16)
+                }
+                tmp1 = SKP_LSHIFT32( -tmp1, 32 - QA - rshifts );                                    // Q(16-rshifts)
+                tmp2 = SKP_LSHIFT32( -tmp2, 32 - QA - rshifts );                                    // Q(16-rshifts)
+                for( k = 0; k &lt;= n; k++ ) {
+                    CAf[ k ] = SKP_SMLAWB( CAf[ k ], tmp1, x_ptr[ n - k ]                    );     // Q( -rshift )
+                    CAb[ k ] = SKP_SMLAWB( CAb[ k ], tmp2, x_ptr[ subfr_length - n + k - 1 ] );     // Q( -rshift )
+                }
+            }
+        } else {
+            for( s = 0; s &lt; nb_subfr; s++ ) {
+                x_ptr = x + s * subfr_length;
+                x1  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    -rshifts );          // Q( -rshifts )
+                x2  = -SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], -rshifts );          // Q( -rshifts )
+                tmp1 = SKP_LSHIFT32( (SKP_int32)x_ptr[ n ],                    17 );                // Q17
+                tmp2 = SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n - 1 ], 17 );                // Q17
+                for( k = 0; k &lt; n; k++ ) {
+                    C_first_row[ k ] = SKP_MLA( C_first_row[ k ], x1, x_ptr[ n - k - 1 ]            ); // Q( -rshifts )
+                    C_last_row[ k ]  = SKP_MLA( C_last_row[ k ],  x2, x_ptr[ subfr_length - n + k ] ); // Q( -rshifts )
+                    Atmp1 = SKP_RSHIFT_ROUND( Af_QA[ k ], QA - 17 );                                // Q17
+                    tmp1 = SKP_MLA( tmp1, x_ptr[ n - k - 1 ],            Atmp1 );                   // Q17
+                    tmp2 = SKP_MLA( tmp2, x_ptr[ subfr_length - n + k ], Atmp1 );                   // Q17
+                }
+                tmp1 = -tmp1;                                                                       // Q17
+                tmp2 = -tmp2;                                                                       // Q17
+                for( k = 0; k &lt;= n; k++ ) {
+                    CAf[ k ] = SKP_SMLAWW( CAf[ k ], tmp1, 
+                        SKP_LSHIFT32( (SKP_int32)x_ptr[ n - k ], -rshifts - 1 ) );                  // Q( -rshift )
+                    CAb[ k ] = SKP_SMLAWW( CAb[ k ], tmp2, 
+                        SKP_LSHIFT32( (SKP_int32)x_ptr[ subfr_length - n + k - 1 ], -rshifts - 1 ) );// Q( -rshift )
+                }
+            }
+        }
+
+        /* Calculate nominator and denominator for the next order reflection (parcor) coefficient */
+        tmp1 = C_first_row[ n ];                                                            // Q( -rshifts )
+        tmp2 = C_last_row[ n ];                                                             // Q( -rshifts )
+        num  = 0;                                                                           // Q( -rshifts )
+        nrg  = SKP_ADD32( CAb[ 0 ], CAf[ 0 ] );                                             // Q( 1-rshifts )
+        for( k = 0; k &lt; n; k++ ) {
+            Atmp_QA = Af_QA[ k ];
+            lz = SKP_Silk_CLZ32( SKP_abs( Atmp_QA ) ) - 1;
+            lz = SKP_min( 32 - QA, lz );
+            Atmp1 = SKP_LSHIFT32( Atmp_QA, lz );                                            // Q( QA + lz )
+
+            tmp1 = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( C_last_row[  n - k - 1 ], Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
+            tmp2 = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( C_first_row[ n - k - 1 ], Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
+            num  = SKP_ADD_LSHIFT32( num,  SKP_SMMUL( CAb[ n - k ],             Atmp1 ), 32 - QA - lz );    // Q( -rshifts )
+            nrg  = SKP_ADD_LSHIFT32( nrg,  SKP_SMMUL( SKP_ADD32( CAb[ k + 1 ], CAf[ k + 1 ] ), 
+                                                                                Atmp1 ), 32 - QA - lz );    // Q( 1-rshifts )
+        }
+        CAf[ n + 1 ] = tmp1;                                                                // Q( -rshifts )
+        CAb[ n + 1 ] = tmp2;                                                                // Q( -rshifts )
+        num = SKP_ADD32( num, tmp2 );                                                       // Q( -rshifts )
+        num = SKP_LSHIFT32( -num, 1 );                                                      // Q( 1-rshifts )
+
+        /* Calculate the next order reflection (parcor) coefficient */
+        if( SKP_abs( num ) &lt; nrg ) {
+            rc_Q31 = SKP_DIV32_varQ( num, nrg, 31 );
+        } else {
+            /* Negative energy or ratio too high; set remaining coefficients to zero and exit loop */
+            SKP_memset( &amp;Af_QA[ n ], 0, ( D - n ) * sizeof( SKP_int32 ) );
+            SKP_assert( 0 );
+            break;
+        }
+
+        /* Update the AR coefficients */
+        for( k = 0; k &lt; (n + 1) &gt;&gt; 1; k++ ) {
+            tmp1 = Af_QA[ k ];                                                              // QA
+            tmp2 = Af_QA[ n - k - 1 ];                                                      // QA
+            Af_QA[ k ]         = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( tmp2, rc_Q31 ), 1 );    // QA
+            Af_QA[ n - k - 1 ] = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( tmp1, rc_Q31 ), 1 );    // QA
+        }
+        Af_QA[ n ] = SKP_RSHIFT32( rc_Q31, 31 - QA );                                       // QA
+
+        /* Update C * Af and C * Ab */
+        for( k = 0; k &lt;= n + 1; k++ ) {
+            tmp1 = CAf[ k ];                                                                // Q( -rshifts )
+            tmp2 = CAb[ n - k + 1 ];                                                        // Q( -rshifts )
+            CAf[ k ]         = SKP_ADD_LSHIFT32( tmp1, SKP_SMMUL( tmp2, rc_Q31 ), 1 );      // Q( -rshifts )
+            CAb[ n - k + 1 ] = SKP_ADD_LSHIFT32( tmp2, SKP_SMMUL( tmp1, rc_Q31 ), 1 );      // Q( -rshifts )
+        }
+    }
+
+    /* Return residual energy */
+    nrg  = CAf[ 0 ];                                                                        // Q( -rshifts )
+    tmp1 = 1 &lt;&lt; 16;                                                                         // Q16
+    for( k = 0; k &lt; D; k++ ) {
+        Atmp1 = SKP_RSHIFT_ROUND( Af_QA[ k ], QA - 16 );                                    // Q16
+        nrg  = SKP_SMLAWW( nrg, CAf[ k + 1 ], Atmp1 );                                      // Q( -rshifts )
+        tmp1 = SKP_SMLAWW( tmp1, Atmp1, Atmp1 );                                            // Q16
+        A_Q16[ k ] = -Atmp1;
+    }
+    *res_nrg = SKP_SMLAWW( nrg, SKP_SMMUL( WhiteNoiseFrac_Q32, C0 ), -tmp1 );               // Q( -rshifts )
+    *res_nrg_Q = -rshifts;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_bwexpanderc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,60 +1,49 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-
-
-
-
-
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Chirp (bandwidth expand) LP AR filter */
-void SKP_Silk_bwexpander(
-    SKP_int16            *ar,        /* I/O  AR filter to be expanded (without leading 1)    */
-    const SKP_int        d,          /* I    Length of ar                                    */
-    SKP_int32            chirp_Q16   /* I    Chirp factor (typically in the range 0 to 1)    */
-)
-{
-    SKP_int   i;
-    SKP_int32 chirp_minus_one_Q16;
-
-    chirp_minus_one_Q16 = chirp_Q16 - 65536;
-
-    /* NB: Dont use SKP_SMULWB, instead of SKP_RSHIFT_ROUND( SKP_MUL() , 16 ), below. */
-    /* Bias in SKP_SMULWB can lead to unstable filters                                */
-    for( i = 0; i &lt; d - 1; i++ ) {
-        ar[ i ]    = (SKP_int16)SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, ar[ i ]             ), 16 );
-        chirp_Q16 +=            SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, chirp_minus_one_Q16 ), 16 );
-    }
-    ar[ d - 1 ] = (SKP_int16)SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, ar[ d - 1 ] ), 16 );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Chirp (bandwidth expand) LP AR filter */
+void SKP_Silk_bwexpander( 
+    SKP_int16            *ar,        /* I/O  AR filter to be expanded (without leading 1)    */
+    const SKP_int        d,          /* I    Length of ar                                    */
+    SKP_int32            chirp_Q16   /* I    Chirp factor (typically in the range 0 to 1)    */
+)
+{
+    SKP_int   i;
+    SKP_int32 chirp_minus_one_Q16;
+
+    chirp_minus_one_Q16 = chirp_Q16 - 65536;
+
+    /* NB: Dont use SKP_SMULWB, instead of SKP_RSHIFT_ROUND( SKP_MUL() , 16 ), below. */
+    /* Bias in SKP_SMULWB can lead to unstable filters                                */
+    for( i = 0; i &lt; d - 1; i++ ) {
+        ar[ i ]    = (SKP_int16)SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, ar[ i ]             ), 16 );
+        chirp_Q16 +=            SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, chirp_minus_one_Q16 ), 16 );
+    }
+    ar[ d - 1 ] = (SKP_int16)SKP_RSHIFT_ROUND( SKP_MUL( chirp_Q16, ar[ d - 1 ] ), 16 );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_bwexpander_32c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander_32.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander_32.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_bwexpander_32.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,58 +1,46 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Chirp (bandwidth expand) LP AR filter */
-void SKP_Silk_bwexpander_32(
-    SKP_int32        *ar,      /* I/O    AR filter to be expanded (without leading 1)    */
-    const SKP_int    d,        /* I    Length of ar                                      */
-    SKP_int32        chirp_Q16 /* I    Chirp factor in Q16                               */
-)
-{
-    SKP_int   i;
-    SKP_int32 tmp_chirp_Q16;
-
-    tmp_chirp_Q16 = chirp_Q16;
-    for( i = 0; i &lt; d - 1; i++ ) {
-        ar[ i ]       = SKP_SMULWW( ar[ i ],   tmp_chirp_Q16 );
-        tmp_chirp_Q16 = SKP_SMULWW( chirp_Q16, tmp_chirp_Q16 );
-    }
-    ar[ d - 1 ] = SKP_SMULWW( ar[ d - 1 ], tmp_chirp_Q16 );
-}
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Chirp (bandwidth expand) LP AR filter */
+void SKP_Silk_bwexpander_32( 
+    SKP_int32        *ar,      /* I/O    AR filter to be expanded (without leading 1)    */
+    const SKP_int    d,        /* I    Length of ar                                      */
+    SKP_int32        chirp_Q16 /* I    Chirp factor in Q16                               */
+)
+{
+    SKP_int   i;
+    SKP_int32 tmp_chirp_Q16;
+
+    tmp_chirp_Q16 = chirp_Q16;
+    for( i = 0; i &lt; d - 1; i++ ) {
+        ar[ i ]       = SKP_SMULWW( ar[ i ],   tmp_chirp_Q16 );
+        tmp_chirp_Q16 = SKP_SMULWW( chirp_Q16, tmp_chirp_Q16 );
+    }
+    ar[ d - 1 ] = SKP_SMULWW( ar[ d - 1 ], tmp_chirp_Q16 );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_code_signsc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_code_signs.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_code_signs.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_code_signs.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,103 +1,87 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-//#define SKP_enc_map(a)                ((a) &gt; 0 ? 1 : 0)
-//#define SKP_dec_map(a)                ((a) &gt; 0 ? 1 : -1)
-/* shifting avoids if-statement */
-#define SKP_enc_map(a)                  ( SKP_RSHIFT( (a), 15 ) + 1 )
-#define SKP_dec_map(a)                  ( SKP_LSHIFT( (a),  1 ) - 1 )
-
-/* Encodes signs of excitation */
-void SKP_Silk_encode_signs(
-
-
-
-
-
-    SKP_Silk_range_coder_state      *sRC,               /* I/O  Range coder state                       */
-    const SKP_int                   q[],                /* I    Pulse signal                            */
-    const SKP_int                   length,             /* I    Length of input                         */
-    const SKP_int                   sigtype,            /* I    Signal type                             */
-    const SKP_int                   QuantOffsetType,    /* I    Quantization offset type                */
-    const SKP_int                   RateLevelIndex      /* I    Rate level index                        */
-)
-{
-    SKP_int i;
-    SKP_int inData;
-    const SKP_uint16 *cdf;
-
-    i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
-    cdf = SKP_Silk_sign_CDF[ i ];
-
-    for( i = 0; i &lt; length; i++ ) {
-        if( q[ i ] != 0 ) {
-            inData = SKP_enc_map( q[ i ] ); /* - = 0, + = 1 */
-            SKP_Silk_range_encoder( sRC, inData, cdf );
-        }
-    }
-}
-
-/* Decodes signs of excitation */
-void SKP_Silk_decode_signs(
-    SKP_Silk_range_coder_state      *sRC,               /* I/O  Range coder state                           */
-    SKP_int                         q[],                /* I/O  pulse signal                                */
-    const SKP_int                   length,             /* I    length of output                            */
-    const SKP_int                   sigtype,            /* I    Signal type                                 */
-    const SKP_int                   QuantOffsetType,    /* I    Quantization offset type                    */
-    const SKP_int                   RateLevelIndex      /* I    Rate Level Index                            */
-)
-{
-    SKP_int i;
-    SKP_int data;
-    const SKP_uint16 *cdf;
-
-    i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
-    cdf = SKP_Silk_sign_CDF[ i ];
-
-    for( i = 0; i &lt; length; i++ ) {
-        if( q[ i ] &gt; 0 ) {
-            SKP_Silk_range_decoder( &amp;data, sRC, cdf, 1 );
-            /* attach sign */
-            /* implementation with shift, subtraction, multiplication */
-            q[ i ] *= SKP_dec_map( data );
-        }
-    }
-
-
-
-
-
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+//#define SKP_enc_map(a)                ((a) &gt; 0 ? 1 : 0)
+//#define SKP_dec_map(a)                ((a) &gt; 0 ? 1 : -1)
+/* shifting avoids if-statement */
+#define SKP_enc_map(a)                  ( SKP_RSHIFT( (a), 15 ) + 1 )
+#define SKP_dec_map(a)                  ( SKP_LSHIFT( (a),  1 ) - 1 )
+
+/* Encodes signs of excitation */
+void SKP_Silk_encode_signs(
+    SKP_Silk_range_coder_state      *sRC,               /* I/O  Range coder state                       */
+    const SKP_int                   q[],                /* I    Pulse signal                            */
+    const SKP_int                   length,             /* I    Length of input                         */
+    const SKP_int                   sigtype,            /* I    Signal type                             */
+    const SKP_int                   QuantOffsetType,    /* I    Quantization offset type                */
+    const SKP_int                   RateLevelIndex      /* I    Rate level index                        */
+)
+{
+    SKP_int i;
+    SKP_int inData;
+    const SKP_uint16 *cdf;
+
+    i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
+    cdf = SKP_Silk_sign_CDF[ i ];
+    
+    for( i = 0; i &lt; length; i++ ) {
+        if( q[ i ] != 0 ) {
+            inData = SKP_enc_map( q[ i ] ); /* - = 0, + = 1 */
+            SKP_Silk_range_encoder( sRC, inData, cdf );
+        }
+    }
+}
+
+/* Decodes signs of excitation */
+void SKP_Silk_decode_signs(
+    SKP_Silk_range_coder_state      *sRC,               /* I/O  Range coder state                           */
+    SKP_int                         q[],                /* I/O  pulse signal                                */
+    const SKP_int                   length,             /* I    length of output                            */
+    const SKP_int                   sigtype,            /* I    Signal type                                 */
+    const SKP_int                   QuantOffsetType,    /* I    Quantization offset type                    */
+    const SKP_int                   RateLevelIndex      /* I    Rate Level Index                            */
+)
+{
+    SKP_int i;
+    SKP_int data;
+    const SKP_uint16 *cdf;
+
+    i = SKP_SMULBB( N_RATE_LEVELS - 1, SKP_LSHIFT( sigtype, 1 ) + QuantOffsetType ) + RateLevelIndex;
+    cdf = SKP_Silk_sign_CDF[ i ];
+    
+    for( i = 0; i &lt; length; i++ ) {
+        if( q[ i ] &gt; 0 ) {
+            SKP_Silk_range_decoder( &amp;data, sRC, cdf, 1 );
+            /* attach sign */
+            /* implementation with shift, subtraction, multiplication */
+            q[ i ] *= SKP_dec_map( data );
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_common_pitch_est_definesh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_common_pitch_est_defines.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_common_pitch_est_defines.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_common_pitch_est_defines.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,86 +1,76 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SIGPROC_COMMON_PITCH_EST_DEFINES_H
-#define SIGPROC_COMMON_PITCH_EST_DEFINES_H
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/************************************************************/
-/* Definitions For Fix pitch estimator                      */
-/************************************************************/
-
-#define PITCH_EST_MAX_FS_KHZ                24 /* Maximum sampling frequency used */
-
-#define PITCH_EST_FRAME_LENGTH_MS           40 /* 40 ms */
-
-
-
-
-
-#define PITCH_EST_MAX_FRAME_LENGTH          (PITCH_EST_FRAME_LENGTH_MS * PITCH_EST_MAX_FS_KHZ)
-#define PITCH_EST_MAX_FRAME_LENGTH_ST_1     (PITCH_EST_MAX_FRAME_LENGTH &gt;&gt; 2)
-#define PITCH_EST_MAX_FRAME_LENGTH_ST_2     (PITCH_EST_MAX_FRAME_LENGTH &gt;&gt; 1)
-#define PITCH_EST_MAX_SF_FRAME_LENGTH       (PITCH_EST_SUB_FRAME * PITCH_EST_MAX_FS_KHZ)
-
-#define PITCH_EST_MAX_LAG_MS                18            /* 18 ms -&gt; 56 Hz */
-#define PITCH_EST_MIN_LAG_MS                2            /* 2 ms -&gt; 500 Hz */
-#define PITCH_EST_MAX_LAG                   (PITCH_EST_MAX_LAG_MS * PITCH_EST_MAX_FS_KHZ)
-#define PITCH_EST_MIN_LAG                   (PITCH_EST_MIN_LAG_MS * PITCH_EST_MAX_FS_KHZ)
-
-#define PITCH_EST_NB_SUBFR                  4
-
-#define PITCH_EST_D_SRCH_LENGTH             24
-
-#define PITCH_EST_MAX_DECIMATE_STATE_LENGTH 7
-
-#define PITCH_EST_NB_STAGE3_LAGS            5
-
-#define PITCH_EST_NB_CBKS_STAGE2            3
-#define PITCH_EST_NB_CBKS_STAGE2_EXT        11
-
-#define PITCH_EST_CB_mn2                    1
-#define PITCH_EST_CB_mx2                    2
-
-#define PITCH_EST_NB_CBKS_STAGE3_MAX        34
-#define PITCH_EST_NB_CBKS_STAGE3_MID        24
-#define PITCH_EST_NB_CBKS_STAGE3_MIN        16
-
-extern const SKP_int16 SKP_Silk_CB_lags_stage2[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE2_EXT];
-extern const SKP_int16 SKP_Silk_CB_lags_stage3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX];
-extern const SKP_int16 SKP_Silk_Lag_range_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ] [ PITCH_EST_NB_SUBFR ][ 2 ];
-extern const SKP_int16 SKP_Silk_cbk_sizes_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ];
-extern const SKP_int16 SKP_Silk_cbk_offsets_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ];
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SIGPROC_COMMON_PITCH_EST_DEFINES_H
+#define SIGPROC_COMMON_PITCH_EST_DEFINES_H
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/************************************************************/
+/* Definitions For Fix pitch estimator                      */
+/************************************************************/
+
+#define PITCH_EST_MAX_FS_KHZ                24 /* Maximum sampling frequency used */
+
+#define PITCH_EST_FRAME_LENGTH_MS           40 /* 40 ms */
+
+#define PITCH_EST_MAX_FRAME_LENGTH          (PITCH_EST_FRAME_LENGTH_MS * PITCH_EST_MAX_FS_KHZ)
+#define PITCH_EST_MAX_FRAME_LENGTH_ST_1     (PITCH_EST_MAX_FRAME_LENGTH &gt;&gt; 2)
+#define PITCH_EST_MAX_FRAME_LENGTH_ST_2     (PITCH_EST_MAX_FRAME_LENGTH &gt;&gt; 1)
+#define PITCH_EST_MAX_SF_FRAME_LENGTH       (PITCH_EST_SUB_FRAME * PITCH_EST_MAX_FS_KHZ)
+
+#define PITCH_EST_MAX_LAG_MS                18            /* 18 ms -&gt; 56 Hz */
+#define PITCH_EST_MIN_LAG_MS                2            /* 2 ms -&gt; 500 Hz */
+#define PITCH_EST_MAX_LAG                   (PITCH_EST_MAX_LAG_MS * PITCH_EST_MAX_FS_KHZ)
+#define PITCH_EST_MIN_LAG                   (PITCH_EST_MIN_LAG_MS * PITCH_EST_MAX_FS_KHZ)
+
+#define PITCH_EST_NB_SUBFR                  4
+
+#define PITCH_EST_D_SRCH_LENGTH             24
+
+#define PITCH_EST_MAX_DECIMATE_STATE_LENGTH 7
+
+#define PITCH_EST_NB_STAGE3_LAGS            5
+
+#define PITCH_EST_NB_CBKS_STAGE2            3
+#define PITCH_EST_NB_CBKS_STAGE2_EXT        11
+
+#define PITCH_EST_CB_mn2                    1
+#define PITCH_EST_CB_mx2                    2
+
+#define PITCH_EST_NB_CBKS_STAGE3_MAX        34
+#define PITCH_EST_NB_CBKS_STAGE3_MID        24
+#define PITCH_EST_NB_CBKS_STAGE3_MIN        16
+
+extern const SKP_int16 SKP_Silk_CB_lags_stage2[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE2_EXT];
+extern const SKP_int16 SKP_Silk_CB_lags_stage3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX];
+extern const SKP_int16 SKP_Silk_Lag_range_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ] [ PITCH_EST_NB_SUBFR ][ 2 ];
+extern const SKP_int16 SKP_Silk_cbk_sizes_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ];
+extern const SKP_int16 SKP_Silk_cbk_offsets_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ];
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_control_codec_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_control_codec_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_control_codec_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_control_codec_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,731 +1,656 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-
-
-
-
-
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Control encoder SNR */
-SKP_int SKP_Silk_control_encoder_FIX(
-    SKP_Silk_encoder_state_FIX  *psEnc,             /* I/O  Pointer to Silk encoder state                   */
-    const SKP_int               API_fs_kHz,         /* I    External (API) sampling rate (kHz)              */
-    const SKP_int               PacketSize_ms,      /* I    Packet length (ms)                              */
-    SKP_int32                   TargetRate_bps,     /* I    Target max bitrate (bps) (used if SNR_dB == 0)  */
-    const SKP_int               PacketLoss_perc,    /* I    Packet loss rate (in percent)                   */
-    const SKP_int               INBandFec_enabled,  /* I    Enable (1) / disable (0) inband FEC             */
-    const SKP_int               DTX_enabled,        /* I    Enable / disable DTX                            */
-    const SKP_int               InputFramesize_ms,  /* I    Inputframe in ms                                */
-    const SKP_int               Complexity          /* I    Complexity (0-&gt;low; 1-&gt;medium; 2-&gt;high)         */
-)
-{
-    SKP_int32 LBRRRate_thres_bps;
-    SKP_int   k, fs_kHz, ret = 0;
-    SKP_int32 frac_Q6;
-    const SKP_int32 *rateTable;
-
-    /* State machine for the SWB/WB switching */
-    fs_kHz = psEnc-&gt;sCmn.fs_kHz;
-
-    /* Only switch during low speech activity, when no frames are sitting in the payload buffer */
-    if( API_fs_kHz == 8 || fs_kHz == 0 || API_fs_kHz &lt; fs_kHz ) {
-        // Switching is not possible, encoder just initialized, or internal mode higher than external
-
-
-
-
-
-        fs_kHz = API_fs_kHz;
-    } else {
-
-        /* Resample all valid data in x_buf. Resampling the last part gets rid of a click, 5ms after switching  */
-        /* this is because the same state is used when downsampling in API.c and is then up to date             */
-        /* the click immidiatly after switching is most of the time still there                                 */
-
-        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
-            /* Accumulate the difference between the target rate and limit */
-            if( psEnc-&gt;sCmn.fs_kHz_changed == 0 ) {
-                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - SWB2WB_BITRATE_BPS_INITIAL );
-            } else {
-                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - SWB2WB_BITRATE_BPS );
-            }
-            psEnc-&gt;sCmn.bitrateDiff = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
-
-            /* Check if we should switch from 24 to 16 kHz */
-#if SWITCH_TRANSITION_FILTERING
-            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
-                ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD || psEnc-&gt;sCmn.sSWBdetect.WB_detected == 1 ) &amp;&amp;
-                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-                psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
-                psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
-            }
-
-            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp; /* Transition phase complete, ready to switch */
-#else
-            if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD || psEnc-&gt;sCmn.sSWBdetect.WB_detected == 1 ) &amp;&amp;
-#endif
-                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                    SKP_int16 x_buf[    2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-                    SKP_int16 x_bufout[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-
-                    psEnc-&gt;sCmn.bitrateDiff = 0;
-                    fs_kHz = 16;
-
-                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                    SKP_memset( psEnc-&gt;sCmn.resample24To16state, 0, sizeof( psEnc-&gt;sCmn.resample24To16state ) );
-
-#if LOW_COMPLEXITY_ONLY
-                    {
-                        SKP_int16 scratch[ ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-                        SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, (SKP_int16*)scratch );
-                    }
-#else
-                    SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-
-
-
-
-#endif
-
-                    /* set the first frame to zero, no performance difference was noticed though */
-                    SKP_memset( x_bufout, 0, 320 * sizeof( SKP_int16 ) );
-                    SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-#if SWITCH_TRANSITION_FILTERING
-                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
-#endif
-            }
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-
-            /* Check if we should switch from 16 to 24 kHz */
-#if SWITCH_TRANSITION_FILTERING
-            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
-#else
-            if(
-#endif
-                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= WB2SWB_BITRATE_BPS &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.WB_detected == 0 ) &amp;&amp;
-                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                SKP_int16 x_buf[          2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-                SKP_int16 x_bufout[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ];
-                SKP_int32 resample16To24state[ 11 ];
-
-                psEnc-&gt;sCmn.bitrateDiff = 0;
-                fs_kHz = 24;
-
-                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                SKP_memset( resample16To24state, 0, sizeof(resample16To24state) );
-
-                SKP_Silk_resample_3_2( &amp;x_bufout[ 0 ], resample16To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                /* set the first frame to zero, no performance difference was noticed though */
-                SKP_memset( x_bufout, 0, 480 * sizeof( SKP_int16 ) );
-                SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-#if SWITCH_TRANSITION_FILTERING
-                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
-#endif
-            } else {
-                /* accumulate the difference between the target rate and limit */
-                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - WB2MB_BITRATE_BPS );
-                psEnc-&gt;sCmn.bitrateDiff = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
-
-                /* Check if we should switch from 16 to 12 kHz */
-#if SWITCH_TRANSITION_FILTERING
-                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
-
-
-
-
-
-                    ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
-                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-                    psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
-                    psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
-                }
-
-                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp; /* Transition phase complete, ready to switch */
-#else
-                if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
-#endif
-                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                    SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-
-                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                    psEnc-&gt;sCmn.bitrateDiff = 0;
-                    fs_kHz = 12;
-
-                    if( API_fs_kHz == 24 ) {
-
-                        /* Intermediate upsampling of x_bufFIX from 16 to 24 kHz */
-                        SKP_int16 x_buf24[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ];
-                        SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                        SKP_int32 resample16To24state[ 11 ];
-
-                        SKP_memset( resample16To24state, 0, sizeof( resample16To24state ) );
-                        SKP_Silk_resample_3_2( &amp;x_buf24[ 0 ], resample16To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                        /* Update the state of the resampler used in API.c, from 24 to 12 kHz */
-                        SKP_memset( psEnc-&gt;sCmn.resample24To12state, 0, sizeof( psEnc-&gt;sCmn.resample24To12state ) );
-                        SKP_Silk_resample_1_2_coarse( &amp;x_buf24[ 0 ], psEnc-&gt;sCmn.resample24To12state, &amp;x_buf[ 0 ], scratch, SKP_RSHIFT( SKP_SMULBB( 3, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape ), 2 ) );
-
-                        /* set the first frame to zero, no performance difference was noticed though */
-                        SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
-                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                    } else if( API_fs_kHz == 16 ) {
-                        SKP_int16 x_bufout[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 4 ];
-                        SKP_memset( psEnc-&gt;sCmn.resample16To12state, 0, sizeof( psEnc-&gt;sCmn.resample16To12state ) );
-
-                        SKP_Silk_resample_3_4( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample16To12state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                        /* set the first frame to zero, no performance difference was noticed though */
-                        SKP_memset( x_bufout, 0, 240 * sizeof( SKP_int16 ) );
-                        SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-                    }
-#if SWITCH_TRANSITION_FILTERING
-
-
-
-
-
-                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
-#endif
-                }
-            }
-        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-
-            /* Check if we should switch from 12 to 16 kHz */
-#if SWITCH_TRANSITION_FILTERING
-            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
-#else
-            if(
-#endif
-                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= MB2WB_BITRATE_BPS ) &amp;&amp;
-                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-
-                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                psEnc-&gt;sCmn.bitrateDiff = 0;
-                fs_kHz = 16;
-
-                /* Reset state of the resampler to be used */
-                if( API_fs_kHz == 24 ) {
-
-                    SKP_int16 x_bufout[ 2 * 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 3 ];
-
-                    /* Intermediate upsampling of x_bufFIX from 12 to 24 kHz */
-                    SKP_int16 x_buf24[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                    SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                    SKP_int32 resample12To24state[6];
-
-                    SKP_memset( resample12To24state, 0, sizeof( resample12To24state ) );
-                    SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample12To24state, &amp;x_buf24[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                    SKP_memset( psEnc-&gt;sCmn.resample24To16state, 0, sizeof( psEnc-&gt;sCmn.resample24To16state ) );
-
-#if LOW_COMPLEXITY_ONLY
-                    SKP_assert( sizeof( SKP_int16 ) * ( 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) &lt;= sizeof( scratch ) );
-                    SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ), (SKP_int16*)scratch );
-#else
-                    SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
-#endif
-
-                    /* set the first frame to zero, no performance difference was noticed though */
-                    SKP_memset( x_bufout, 0, 320 * sizeof( SKP_int16 ) );
-                    SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-                }
-
-
-
-
-
-#if SWITCH_TRANSITION_FILTERING
-                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
-#endif
-            } else {
-                /* accumulate the difference between the target rate and limit */
-                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - MB2NB_BITRATE_BPS );
-                psEnc-&gt;sCmn.bitrateDiff  = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
-
-                /* Check if we should switch from 12 to 8 kHz */
-#if SWITCH_TRANSITION_FILTERING
-                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
-                    ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
-                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-                    psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
-                    psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
-                }
-
-                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp;
-#else
-                if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
-#endif
-                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                    SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-
-                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                    psEnc-&gt;sCmn.bitrateDiff = 0;
-                    fs_kHz = 8;
-
-                    if( API_fs_kHz == 24 ) {
-
-                        SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                        /* Intermediate upsampling of x_buf from 12 to 24 kHz */
-                        SKP_int16 x_buf24[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                        SKP_int32 resample12To24state[ 6 ];
-
-                        SKP_memset( resample12To24state, 0, sizeof( resample12To24state ) );
-                        SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample12To24state, &amp;x_buf24[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                        /* Update the state of the resampler used in API.c, from 24 to 8 kHz */
-                        SKP_memset( psEnc-&gt;sCmn.resample24To8state, 0, sizeof( psEnc-&gt;sCmn.resample24To8state ) );
-                        SKP_Silk_resample_1_3( &amp;x_buf[ 0 ], psEnc-&gt;sCmn.resample24To8state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
-
-                        /* set the first frame to zero, no performance difference was noticed though */
-                        SKP_memset( x_buf, 0, 160 * sizeof( SKP_int16 ) );
-                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-
-
-
-
-
-                    } else if( API_fs_kHz == 16 ) {
-                        /* Intermediate upsampling of x_bufFIX from 12 to 16 kHz */
-                        SKP_int16 x_buf16[  3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ];
-                        SKP_int32 resample12To16state[11];
-
-                        SKP_memset( resample12To16state, 0, sizeof( resample12To16state ) );
-                        SKP_Silk_resample_3_2( &amp;x_buf16[ 0 ], resample12To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                        /* set the first frame to zero, no performance difference was noticed though */
-                        SKP_memset( x_buf, 0, 160 * sizeof( SKP_int16 ) );
-                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                    } else if( API_fs_kHz == 12 ) {
-                        SKP_int16 x_bufout[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 3 ];
-                        SKP_memset( psEnc-&gt;sCmn.resample12To8state, 0, sizeof( psEnc-&gt;sCmn.resample12To8state ) );
-#if LOW_COMPLEXITY_ONLY
-                        {
-                            SKP_int16 scratch[ ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-                            SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample12To8state, &amp;x_buf[ 0 ],
-                                SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, scratch );
-                        }
-#else
-                        SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample12To8state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-#endif
-                        /* set the first frame to zero, no performance difference was noticed though */
-                        SKP_memset( x_bufout, 0, 160 * sizeof( SKP_int16 ) );
-                        SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-                    }
-#if SWITCH_TRANSITION_FILTERING
-                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
-#endif
-                }
-            }
-        } else if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-
-            /* Check if we should switch from 8 to 12 kHz */
-#if SWITCH_TRANSITION_FILTERING
-            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
-#else
-            if(
-#endif
-                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= NB2MB_BITRATE_BPS ) &amp;&amp;
-                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-                SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
-
-                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-
-
-
-
-
-                psEnc-&gt;sCmn.bitrateDiff = 0;
-                fs_kHz = 12;
-
-                /* Reset state of the resampler to be used */
-                if( API_fs_kHz == 24 ) {
-                    SKP_int16 x_buf24[  3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                    SKP_int32 scratch[ 3 * 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ];
-                    SKP_int32 resample8To24state[ 7 ];
-
-                    /* Intermediate upsampling of x_bufFIX from 8 to 24 kHz */
-                    SKP_memset( resample8To24state, 0, sizeof( resample8To24state ) );
-                    SKP_Silk_resample_3_1( &amp;x_buf24[ 0 ], resample8To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                    SKP_memset( psEnc-&gt;sCmn.resample24To12state, 0, sizeof( psEnc-&gt;sCmn.resample24To12state ) );
-
-                    SKP_Silk_resample_1_2_coarse( &amp;x_buf24[ 0 ], psEnc-&gt;sCmn.resample24To12state, &amp;x_buf[ 0 ], scratch, SKP_RSHIFT( SKP_SMULBB( 3, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape ), 1 ) );
-
-                    /* set the first frame to zero, no performance difference was noticed though */
-                    SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
-                    SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-
-                } else if( API_fs_kHz == 16 ) {
-                    SKP_int16 x_buf16[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                    SKP_int32 scratch[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
-                    SKP_int32 resample8To16state[ 6 ];
-
-                    /* Intermediate upsampling of x_bufFIX from 8 to 16 kHz */
-                    SKP_memset( resample8To16state, 0, sizeof( resample8To16state ) );
-                    SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample8To16state, &amp;x_buf16[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
-
-                    SKP_memset( psEnc-&gt;sCmn.resample16To12state, 0, sizeof( psEnc-&gt;sCmn.resample16To12state ) );
-
-                    SKP_Silk_resample_3_4( &amp;x_buf[ 0 ], psEnc-&gt;sCmn.resample16To12state, &amp;x_buf16[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
-
-                    /* set the first frame to zero, no performance difference was noticed though */
-                    SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
-                    SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
-                }
-#if SWITCH_TRANSITION_FILTERING
-                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
-#endif
-            }
-        } else {
-            // Internal sample frequency not supported!
-            SKP_assert( 0 );
-        }
-    }
-
-
-
-
-
-
-#if SWITCH_TRANSITION_FILTERING
-    /* After switching up, stop transition filter during speech inactivity */
-    if( ( psEnc-&gt;sCmn.sLP.mode == 1 ) &amp;&amp;
-        ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_UP ) &amp;&amp;
-        ( psEnc-&gt;speech_activity_Q8 &lt; 128 ) &amp;&amp;
-        ( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
-
-        psEnc-&gt;sCmn.sLP.transition_frame_no = 0;
-
-        /* Reset transition filter state */
-        SKP_memset( psEnc-&gt;sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
-    }
-#endif
-
-
-
-    /* Set internal sampling frequency */
-    if( psEnc-&gt;sCmn.fs_kHz != fs_kHz ) {
-        /* reset part of the state */
-        SKP_memset( &amp;psEnc-&gt;sShape,          0, sizeof( SKP_Silk_shape_state_FIX ) );
-        SKP_memset( &amp;psEnc-&gt;sPrefilt,        0, sizeof( SKP_Silk_prefilter_state_FIX ) );
-        SKP_memset( &amp;psEnc-&gt;sNSQ,            0, sizeof( SKP_Silk_nsq_state ) );
-        SKP_memset( &amp;psEnc-&gt;sPred,           0, sizeof( SKP_Silk_predict_state_FIX ) );
-        SKP_memset( psEnc-&gt;sNSQ.xq,          0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
-        SKP_memset( psEnc-&gt;sNSQ_LBRR.xq,     0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
-        SKP_memset( psEnc-&gt;sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
-#if SWITCH_TRANSITION_FILTERING
-        SKP_memset( psEnc-&gt;sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
-        if( psEnc-&gt;sCmn.sLP.mode == 1 ) {
-            /* Begin transition phase */
-            psEnc-&gt;sCmn.sLP.transition_frame_no = 1;
-        } else {
-            /* End transition phase */
-            psEnc-&gt;sCmn.sLP.transition_frame_no = 0;
-        }
-#endif
-        psEnc-&gt;sCmn.inputBufIx          = 0;
-        psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
-        psEnc-&gt;sCmn.nBytesInPayloadBuf  = 0;
-        psEnc-&gt;sCmn.oldest_LBRR_idx     = 0;
-        psEnc-&gt;sCmn.TargetRate_bps      = 0; /* ensures that psEnc-&gt;SNR_dB is recomputed */
-
-        SKP_memset( psEnc-&gt;sPred.prev_NLSFq_Q15, 0, MAX_LPC_ORDER * sizeof( SKP_int ) );
-
-        /* Initialize non-zero parameters */
-        psEnc-&gt;sCmn.prevLag                 = 100;
-        psEnc-&gt;sCmn.prev_sigtype            = SIG_TYPE_UNVOICED;
-        psEnc-&gt;sCmn.first_frame_after_reset = 1;
-
-
-
-
-
-        psEnc-&gt;sPrefilt.lagPrev             = 100;
-        psEnc-&gt;sShape.LastGainIndex        = 1;
-        psEnc-&gt;sNSQ.lagPrev                = 100;
-        psEnc-&gt;sNSQ.prev_inv_gain_Q16      = 65536;
-        psEnc-&gt;sNSQ_LBRR.prev_inv_gain_Q16 = 65536;
-        psEnc-&gt;sCmn.fs_kHz = fs_kHz;
-        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            psEnc-&gt;sCmn.predictLPCOrder = MIN_LPC_ORDER;
-            psEnc-&gt;sCmn.psNLSF_CB[ 0 ]  = &amp;SKP_Silk_NLSF_CB0_10;
-            psEnc-&gt;sCmn.psNLSF_CB[ 1 ]  = &amp;SKP_Silk_NLSF_CB1_10;
-        } else {
-            psEnc-&gt;sCmn.predictLPCOrder = MAX_LPC_ORDER;
-            psEnc-&gt;sCmn.psNLSF_CB[ 0 ]  = &amp;SKP_Silk_NLSF_CB0_16;
-            psEnc-&gt;sCmn.psNLSF_CB[ 1 ]  = &amp;SKP_Silk_NLSF_CB1_16;
-        }
-        psEnc-&gt;sCmn.frame_length   = SKP_SMULBB( FRAME_LENGTH_MS, fs_kHz );
-        psEnc-&gt;sCmn.subfr_length   = SKP_DIV32_16( psEnc-&gt;sCmn.frame_length, NB_SUBFR );
-        psEnc-&gt;sCmn.la_pitch       = SKP_SMULBB( LA_PITCH_MS, fs_kHz );
-        psEnc-&gt;sCmn.la_shape       = SKP_SMULBB( LA_SHAPE_MS, fs_kHz );
-        psEnc-&gt;sPred.min_pitch_lag = SKP_SMULBB(  3, fs_kHz );
-        psEnc-&gt;sPred.max_pitch_lag = SKP_SMULBB( 18, fs_kHz );
-        psEnc-&gt;sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
-        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
-            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_SWB_Q8;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_WB_Q8;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_MB_Q8;
-        } else {
-            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_NB_Q8;
-        }
-        psEnc-&gt;sCmn.fs_kHz_changed = 1;
-
-        /* Check that settings are valid */
-        SKP_assert( ( psEnc-&gt;sCmn.subfr_length * NB_SUBFR ) == psEnc-&gt;sCmn.frame_length );
-    }
-
-    /* Set encoding complexity */
-    if( Complexity == 0 || LOW_COMPLEXITY_ONLY ) {
-        /* Low complexity */
-        psEnc-&gt;sCmn.Complexity                  = 0;
-        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_LC_MODE;
-        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_LC_MODE;
-        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 8;
-        psEnc-&gt;sCmn.shapingLPCOrder             = 12;
-        psEnc-&gt;sCmn.nStatesDelayedDecision      = 1;
-        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ;
-        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 0;
-
-
-
-
-
-        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 1;
-        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS_LC_MODE;
-    } else if( Complexity == 1 ) {
-        /* Medium complexity */
-        psEnc-&gt;sCmn.Complexity                  = 1;
-        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_MC_MODE;
-        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_MC_MODE;
-        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 12;
-        psEnc-&gt;sCmn.shapingLPCOrder             = 16;
-        psEnc-&gt;sCmn.nStatesDelayedDecision      = 2;
-        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ_del_dec;
-        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 0;
-        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 0;
-        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS_MC_MODE;
-    } else if( Complexity == 2 ) {
-        /* High complexity */
-        psEnc-&gt;sCmn.Complexity                  = 2;
-        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_HC_MODE;
-        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_HC_MODE;
-        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 16;
-        psEnc-&gt;sCmn.shapingLPCOrder             = 16;
-        psEnc-&gt;sCmn.nStatesDelayedDecision      = 4;
-        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ_del_dec;
-        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 1;
-        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 0;
-        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS;
-    } else {
-        ret = SKP_SILK_ENC_WRONG_COMPLEXITY_SETTING;
-    }
-
-    /* Dont have higher Pitch estimation LPC order than predict LPC order */
-    psEnc-&gt;sCmn.pitchEstimationLPCOrder = SKP_min_int( psEnc-&gt;sCmn.pitchEstimationLPCOrder, psEnc-&gt;sCmn.predictLPCOrder );
-
-    SKP_assert( psEnc-&gt;sCmn.pitchEstimationLPCOrder &lt;= FIND_PITCH_LPC_ORDER_MAX );
-    SKP_assert( psEnc-&gt;sCmn.shapingLPCOrder         &lt;= SHAPE_LPC_ORDER_MAX );
-    SKP_assert( psEnc-&gt;sCmn.nStatesDelayedDecision  &lt;= DEL_DEC_STATES_MAX );
-
-    /* Set bitrate/coding quality */
-    TargetRate_bps = SKP_min( TargetRate_bps, 100000 );
-    if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_NB_BPS );
-    } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_MB_BPS );
-    } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_WB_BPS );
-    } else {
-        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_SWB_BPS );
-    }
-
-
-
-
-
-    if( TargetRate_bps != psEnc-&gt;sCmn.TargetRate_bps ) {
-        psEnc-&gt;sCmn.TargetRate_bps = TargetRate_bps;
-
-        /* if new TargetRate_bps, translate to SNR_dB value */
-        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            rateTable = TargetRate_table_NB;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            rateTable = TargetRate_table_MB;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            rateTable = TargetRate_table_WB;
-        } else {
-            rateTable = TargetRate_table_SWB;
-        }
-        for( k = 1; k &lt; TARGET_RATE_TAB_SZ; k++ ) {
-            /* find bitrate interval in table and interpolate */
-            if( TargetRate_bps &lt; rateTable[ k ] ) {
-                frac_Q6 = SKP_DIV32( SKP_LSHIFT( TargetRate_bps - rateTable[ k - 1 ], 6 ), rateTable[ k ] - rateTable[ k - 1 ] );
-                psEnc-&gt;SNR_dB_Q7 = SKP_LSHIFT( SNR_table_Q1[ k - 1 ], 6 ) + SKP_MUL( frac_Q6, SNR_table_Q1[ k ] - SNR_table_Q1[ k - 1 ] );
-                break;
-            }
-        }
-    }
-
-    /* Set packet size */
-    if( ( PacketSize_ms !=  20 ) &amp;&amp;
-        ( PacketSize_ms !=  40 ) &amp;&amp;
-        ( PacketSize_ms !=  60 ) &amp;&amp;
-        ( PacketSize_ms !=  80 ) &amp;&amp;
-        ( PacketSize_ms != 100 ) ) {
-        ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
-    } else {
-        if( PacketSize_ms != psEnc-&gt;sCmn.PacketSize_ms ) {
-            psEnc-&gt;sCmn.PacketSize_ms = PacketSize_ms;
-
-            /* Packet length changes. Reset LBRR buffer */
-            SKP_Silk_LBRR_reset( &amp;psEnc-&gt;sCmn );
-        }
-    }
-
-    /* Set packet loss rate measured by farend */
-    if( ( PacketLoss_perc &lt; 0 ) || ( PacketLoss_perc &gt; 100 ) ) {
-        ret = SKP_SILK_ENC_WRONG_LOSS_RATE;
-    }
-    psEnc-&gt;sCmn.PacketLoss_perc = PacketLoss_perc;
-
-#if USE_LBRR
-    if( INBandFec_enabled &lt; 0 || INBandFec_enabled &gt; 1 ) {
-        ret = SKP_SILK_ENC_WRONG_INBAND_FEC_SETTING;
-
-
-
-
-
-    }
-
-    /* Only change settings if first frame in packet */
-    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
-
-        psEnc-&gt;sCmn.LBRR_enabled = INBandFec_enabled;
-        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 9000;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 6000;;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 3000;
-        } else {
-            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS;
-        }
-
-        if( psEnc-&gt;sCmn.TargetRate_bps &gt;= LBRRRate_thres_bps ) {
-            /* Set gain increase / rate reduction for LBRR usage */
-            /* Coarse tuned with pesq for now. */
-            /* Linear regression coefs G = 8 - 0.5 * loss */
-            /* Meaning that at 16% loss main rate and redundant rate is the same, -&gt; G = 0 */
-            psEnc-&gt;sCmn.LBRR_GainIncreases = SKP_max_int( 8 - SKP_RSHIFT( psEnc-&gt;sCmn.PacketLoss_perc, 1 ), 0 );
-
-            /* Set main stream rate compensation */
-            if( psEnc-&gt;sCmn.LBRR_enabled &amp;&amp; psEnc-&gt;sCmn.PacketLoss_perc &gt; LBRR_LOSS_THRES ) {
-                /* Tuned to give aprox same mean / weighted bitrate as no inband FEC */
-                psEnc-&gt;inBandFEC_SNR_comp_Q8 = ( 6 &lt;&lt; 8 ) - SKP_LSHIFT( psEnc-&gt;sCmn.LBRR_GainIncreases, 7 );
-            } else {
-                psEnc-&gt;inBandFEC_SNR_comp_Q8 = 0;
-                psEnc-&gt;sCmn.LBRR_enabled     = 0;
-            }
-        } else {
-            psEnc-&gt;inBandFEC_SNR_comp_Q8     = 0;
-            psEnc-&gt;sCmn.LBRR_enabled         = 0;
-        }
-    }
-#else
-    psEnc-&gt;sCmn.LBRR_enabled = 0;
-#endif
-
-    /* Set DTX mode */
-    if( DTX_enabled &lt; 0 || DTX_enabled &gt; 1 ) {
-        ret = SKP_SILK_ENC_WRONG_DTX_SETTING;
-    }
-    psEnc-&gt;sCmn.useDTX = DTX_enabled;
-
-    return ret;
-}
-
-
-
-
-
-/* Control low bitrate redundancy usage */
-void SKP_Silk_LBRR_ctrl_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl  /* I/O  encoder control                             */
-)
-{
-    SKP_int LBRR_usage;
-
-    if( psEnc-&gt;sCmn.LBRR_enabled ) {
-        /* Control LBRR */
-
-        /* Usage Control based on sensitivity and packet loss caracteristics */
-        /* For now only enable adding to next for active frames. Make more complex later */
-        LBRR_usage = SKP_SILK_NO_LBRR;
-        if( psEnc-&gt;speech_activity_Q8 &gt; LBRR_SPEECH_ACTIVITY_THRES_Q8 &amp;&amp; psEnc-&gt;sCmn.PacketLoss_perc &gt; LBRR_LOSS_THRES ) { // nb! maybe multiply loss prob and speech activity
-            //if( psEnc-&gt;PacketLoss_burst &gt; BURST_THRES )
-            //  psEncCtrl-&gt;LBRR_usage = SKP_SILK_ADD_LBRR_TO_PLUS2;
-            //} else {
-                LBRR_usage = SKP_SILK_ADD_LBRR_TO_PLUS1;//SKP_SILK_NO_LBRR
-            //}
-        }
-        psEncCtrl-&gt;sCmn.LBRR_usage = LBRR_usage;
-    } else {
-        psEncCtrl-&gt;sCmn.LBRR_usage = SKP_SILK_NO_LBRR;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Control encoder SNR */
+SKP_int SKP_Silk_control_encoder_FIX( 
+    SKP_Silk_encoder_state_FIX  *psEnc,             /* I/O  Pointer to Silk encoder state                   */
+    const SKP_int               API_fs_kHz,         /* I    External (API) sampling rate (kHz)              */
+    const SKP_int               PacketSize_ms,      /* I    Packet length (ms)                              */
+    SKP_int32                   TargetRate_bps,     /* I    Target max bitrate (bps) (used if SNR_dB == 0)  */
+    const SKP_int               PacketLoss_perc,    /* I    Packet loss rate (in percent)                   */
+    const SKP_int               INBandFec_enabled,  /* I    Enable (1) / disable (0) inband FEC             */
+    const SKP_int               DTX_enabled,        /* I    Enable / disable DTX                            */
+    const SKP_int               InputFramesize_ms,  /* I    Inputframe in ms                                */
+    const SKP_int               Complexity          /* I    Complexity (0-&gt;low; 1-&gt;medium; 2-&gt;high)         */
+)
+{
+    SKP_int32 LBRRRate_thres_bps;
+    SKP_int   k, fs_kHz, ret = 0;
+    SKP_int32 frac_Q6;
+    const SKP_int32 *rateTable;
+
+    /* State machine for the SWB/WB switching */
+    fs_kHz = psEnc-&gt;sCmn.fs_kHz;
+    
+    /* Only switch during low speech activity, when no frames are sitting in the payload buffer */
+    if( API_fs_kHz == 8 || fs_kHz == 0 || API_fs_kHz &lt; fs_kHz ) {
+        // Switching is not possible, encoder just initialized, or internal mode higher than external
+        fs_kHz = API_fs_kHz;
+    } else {
+
+        /* Resample all valid data in x_buf. Resampling the last part gets rid of a click, 5ms after switching  */
+        /* this is because the same state is used when downsampling in API.c and is then up to date             */
+        /* the click immidiatly after switching is most of the time still there                                 */
+
+        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
+            /* Accumulate the difference between the target rate and limit */
+            if( psEnc-&gt;sCmn.fs_kHz_changed == 0 ) {
+                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - SWB2WB_BITRATE_BPS_INITIAL );
+            } else {
+                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - SWB2WB_BITRATE_BPS );
+            }
+            psEnc-&gt;sCmn.bitrateDiff = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
+
+            /* Check if we should switch from 24 to 16 kHz */
+#if SWITCH_TRANSITION_FILTERING
+            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
+                ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD || psEnc-&gt;sCmn.sSWBdetect.WB_detected == 1 ) &amp;&amp;
+                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+                psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
+                psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
+            }
+
+            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp; /* Transition phase complete, ready to switch */
+#else
+            if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD || psEnc-&gt;sCmn.sSWBdetect.WB_detected == 1 ) &amp;&amp;
+#endif
+                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+
+                    SKP_int16 x_buf[    2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+                    SKP_int16 x_bufout[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ];
+                    
+                    psEnc-&gt;sCmn.bitrateDiff = 0;
+                    fs_kHz = 16;
+
+                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                    SKP_memset( psEnc-&gt;sCmn.resample24To16state, 0, sizeof( psEnc-&gt;sCmn.resample24To16state ) );
+                    
+#if LOW_COMPLEXITY_ONLY
+                    {
+                        SKP_int16 scratch[ ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
+                        SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, (SKP_int16*)scratch );
+                    }
+#else
+                    SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+#endif
+
+                    /* set the first frame to zero, no performance difference was noticed though */
+                    SKP_memset( x_bufout, 0, 320 * sizeof( SKP_int16 ) );
+                    SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+#if SWITCH_TRANSITION_FILTERING
+                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
+#endif
+            }
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+
+            /* Check if we should switch from 16 to 24 kHz */
+#if SWITCH_TRANSITION_FILTERING
+            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
+#else
+            if(
+#endif
+                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= WB2SWB_BITRATE_BPS &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.WB_detected == 0 ) &amp;&amp; 
+                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+
+                SKP_int16 x_buf[          2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+                SKP_int16 x_bufout[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ]; 
+                SKP_int32 resample16To24state[ 11 ];
+
+                psEnc-&gt;sCmn.bitrateDiff = 0;
+                fs_kHz = 24;
+                
+                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                SKP_memset( resample16To24state, 0, sizeof(resample16To24state) );
+                
+                SKP_Silk_resample_3_2( &amp;x_bufout[ 0 ], resample16To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                /* set the first frame to zero, no performance difference was noticed though */
+                SKP_memset( x_bufout, 0, 480 * sizeof( SKP_int16 ) );
+                SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+#if SWITCH_TRANSITION_FILTERING
+                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
+#endif
+            } else { 
+                /* accumulate the difference between the target rate and limit */
+                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - WB2MB_BITRATE_BPS );
+                psEnc-&gt;sCmn.bitrateDiff = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
+
+                /* Check if we should switch from 16 to 12 kHz */
+#if SWITCH_TRANSITION_FILTERING
+                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
+                    ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
+                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+                    psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
+                    psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
+                }
+
+                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp; /* Transition phase complete, ready to switch */
+#else
+                if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
+#endif
+                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+
+                    SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+
+                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+    
+                    psEnc-&gt;sCmn.bitrateDiff = 0;
+                    fs_kHz = 12;
+                    
+                    if( API_fs_kHz == 24 ) {
+
+                        /* Intermediate upsampling of x_bufFIX from 16 to 24 kHz */
+                        SKP_int16 x_buf24[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ]; 
+                        SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
+                        SKP_int32 resample16To24state[ 11 ];
+
+                        SKP_memset( resample16To24state, 0, sizeof( resample16To24state ) );
+                        SKP_Silk_resample_3_2( &amp;x_buf24[ 0 ], resample16To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                        /* Update the state of the resampler used in API.c, from 24 to 12 kHz */
+                        SKP_memset( psEnc-&gt;sCmn.resample24To12state, 0, sizeof( psEnc-&gt;sCmn.resample24To12state ) );
+                        SKP_Silk_resample_1_2_coarse( &amp;x_buf24[ 0 ], psEnc-&gt;sCmn.resample24To12state, &amp;x_buf[ 0 ], scratch, SKP_RSHIFT( SKP_SMULBB( 3, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape ), 2 ) );
+
+                        /* set the first frame to zero, no performance difference was noticed though */
+                        SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
+                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                    } else if( API_fs_kHz == 16 ) {
+                        SKP_int16 x_bufout[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 4 ]; 
+                        SKP_memset( psEnc-&gt;sCmn.resample16To12state, 0, sizeof( psEnc-&gt;sCmn.resample16To12state ) );
+                        
+                        SKP_Silk_resample_3_4( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample16To12state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+                    
+                        /* set the first frame to zero, no performance difference was noticed though */
+                        SKP_memset( x_bufout, 0, 240 * sizeof( SKP_int16 ) );
+                        SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+                    }
+#if SWITCH_TRANSITION_FILTERING
+                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
+#endif
+                }
+            }
+        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+        
+            /* Check if we should switch from 12 to 16 kHz */
+#if SWITCH_TRANSITION_FILTERING
+            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
+#else
+            if(
+#endif
+                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= MB2WB_BITRATE_BPS ) &amp;&amp;
+                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+
+                SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+
+                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                psEnc-&gt;sCmn.bitrateDiff = 0;
+                fs_kHz = 16;
+
+                /* Reset state of the resampler to be used */
+                if( API_fs_kHz == 24 ) {
+            
+                    SKP_int16 x_bufout[ 2 * 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 3 ]; 
+
+                    /* Intermediate upsampling of x_bufFIX from 12 to 24 kHz */
+                    SKP_int16 x_buf24[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ]; 
+                    SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
+                    SKP_int32 resample12To24state[6];
+
+                    SKP_memset( resample12To24state, 0, sizeof( resample12To24state ) );
+                    SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample12To24state, &amp;x_buf24[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                    SKP_memset( psEnc-&gt;sCmn.resample24To16state, 0, sizeof( psEnc-&gt;sCmn.resample24To16state ) );
+                
+#if LOW_COMPLEXITY_ONLY
+                    SKP_assert( sizeof( SKP_int16 ) * ( 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) &lt;= sizeof( scratch ) );
+                    SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ), (SKP_int16*)scratch );
+#else
+                    SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample24To16state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
+#endif
+                
+                    /* set the first frame to zero, no performance difference was noticed though */
+                    SKP_memset( x_bufout, 0, 320 * sizeof( SKP_int16 ) );
+                    SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+                }
+#if SWITCH_TRANSITION_FILTERING
+                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
+#endif
+            } else { 
+                /* accumulate the difference between the target rate and limit */
+                psEnc-&gt;sCmn.bitrateDiff += SKP_MUL( InputFramesize_ms, TargetRate_bps - MB2NB_BITRATE_BPS );
+                psEnc-&gt;sCmn.bitrateDiff  = SKP_min( psEnc-&gt;sCmn.bitrateDiff, 0 );
+
+                /* Check if we should switch from 12 to 8 kHz */
+#if SWITCH_TRANSITION_FILTERING
+                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* Transition phase not active */
+                    ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
+                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+                    psEnc-&gt;sCmn.sLP.transition_frame_no = 1; /* Begin transition phase */
+                    psEnc-&gt;sCmn.sLP.mode = 0; /* Switch down */
+                }
+
+                if( ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_DOWN ) &amp;&amp; ( psEnc-&gt;sCmn.sLP.mode == 0 ) &amp;&amp;
+#else
+                if( ( psEnc-&gt;sCmn.bitrateDiff &lt;= -ACCUM_BITS_DIFF_THRESHOLD ) &amp;&amp;
+#endif
+                    ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+                
+                    SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+
+                    SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                    psEnc-&gt;sCmn.bitrateDiff = 0;
+                    fs_kHz = 8;
+
+                    if( API_fs_kHz == 24 ) {
+
+                        SKP_int32 scratch[    3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
+                        /* Intermediate upsampling of x_buf from 12 to 24 kHz */
+                        SKP_int16 x_buf24[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
+                        SKP_int32 resample12To24state[ 6 ];
+
+                        SKP_memset( resample12To24state, 0, sizeof( resample12To24state ) );
+                        SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample12To24state, &amp;x_buf24[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                        /* Update the state of the resampler used in API.c, from 24 to 8 kHz */
+                        SKP_memset( psEnc-&gt;sCmn.resample24To8state, 0, sizeof( psEnc-&gt;sCmn.resample24To8state ) );
+                        SKP_Silk_resample_1_3( &amp;x_buf[ 0 ], psEnc-&gt;sCmn.resample24To8state, &amp;x_buf24[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
+
+                        /* set the first frame to zero, no performance difference was noticed though */
+                        SKP_memset( x_buf, 0, 160 * sizeof( SKP_int16 ) );
+                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                    } else if( API_fs_kHz == 16 ) {
+                        /* Intermediate upsampling of x_bufFIX from 12 to 16 kHz */
+                        SKP_int16 x_buf16[  3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ]; 
+                        SKP_int32 resample12To16state[11];
+                        
+                        SKP_memset( resample12To16state, 0, sizeof( resample12To16state ) );
+                        SKP_Silk_resample_3_2( &amp;x_buf16[ 0 ], resample12To16state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+                        
+                        /* set the first frame to zero, no performance difference was noticed though */
+                        SKP_memset( x_buf, 0, 160 * sizeof( SKP_int16 ) );
+                        SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                    } else if( API_fs_kHz == 12 ) {
+                        SKP_int16 x_bufout[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 3 ]; 
+                        SKP_memset( psEnc-&gt;sCmn.resample12To8state, 0, sizeof( psEnc-&gt;sCmn.resample12To8state ) );
+#if LOW_COMPLEXITY_ONLY
+                        {
+                            SKP_int16 scratch[ ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
+                            SKP_Silk_resample_2_3_coarse( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample12To8state, &amp;x_buf[ 0 ], 
+                                SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, scratch );
+                        }
+#else
+                        SKP_Silk_resample_2_3( &amp;x_bufout[ 0 ], psEnc-&gt;sCmn.resample12To8state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+#endif
+                        /* set the first frame to zero, no performance difference was noticed though */
+                        SKP_memset( x_bufout, 0, 160 * sizeof( SKP_int16 ) );
+                        SKP_memcpy( psEnc-&gt;x_buf, x_bufout, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+                    }
+#if SWITCH_TRANSITION_FILTERING
+                    psEnc-&gt;sCmn.sLP.transition_frame_no = 0; /* Transition phase complete */
+#endif
+                }
+            }
+        } else if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+
+            /* Check if we should switch from 8 to 12 kHz */
+#if SWITCH_TRANSITION_FILTERING
+            if( ( psEnc-&gt;sCmn.sLP.transition_frame_no == 0 ) &amp;&amp; /* No transition phase running, ready to switch */
+#else
+            if(
+#endif
+                ( API_fs_kHz &gt; psEnc-&gt;sCmn.fs_kHz &amp;&amp; TargetRate_bps &gt;= NB2MB_BITRATE_BPS ) &amp;&amp;
+                ( psEnc-&gt;speech_activity_Q8 &lt; 128 &amp;&amp; psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+
+                SKP_int16 x_buf[ 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ]; 
+
+                SKP_memcpy( x_buf, psEnc-&gt;x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+
+                psEnc-&gt;sCmn.bitrateDiff = 0;
+                fs_kHz = 12;
+
+                /* Reset state of the resampler to be used */
+                if( API_fs_kHz == 24 ) {
+                    SKP_int16 x_buf24[  3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ]; 
+                    SKP_int32 scratch[ 3 * 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) / 2 ];
+                    SKP_int32 resample8To24state[ 7 ];
+
+                    /* Intermediate upsampling of x_bufFIX from 8 to 24 kHz */
+                    SKP_memset( resample8To24state, 0, sizeof( resample8To24state ) );
+                    SKP_Silk_resample_3_1( &amp;x_buf24[ 0 ], resample8To24state, &amp;x_buf[ 0 ], SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                    SKP_memset( psEnc-&gt;sCmn.resample24To12state, 0, sizeof( psEnc-&gt;sCmn.resample24To12state ) );
+                
+                    SKP_Silk_resample_1_2_coarse( &amp;x_buf24[ 0 ], psEnc-&gt;sCmn.resample24To12state, &amp;x_buf[ 0 ], scratch, SKP_RSHIFT( SKP_SMULBB( 3, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape ), 1 ) );
+                
+                    /* set the first frame to zero, no performance difference was noticed though */
+                    SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
+                    SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+                
+                } else if( API_fs_kHz == 16 ) {
+                    SKP_int16 x_buf16[ 2 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ]; 
+                    SKP_int32 scratch[ 3 * ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) ];
+                    SKP_int32 resample8To16state[ 6 ];
+
+                    /* Intermediate upsampling of x_bufFIX from 8 to 16 kHz */
+                    SKP_memset( resample8To16state, 0, sizeof( resample8To16state ) );
+                    SKP_Silk_resample_2_1_coarse( &amp;x_buf[ 0 ], resample8To16state, &amp;x_buf16[ 0 ], scratch, SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape );
+
+                    SKP_memset( psEnc-&gt;sCmn.resample16To12state, 0, sizeof( psEnc-&gt;sCmn.resample16To12state ) );
+                
+                    SKP_Silk_resample_3_4( &amp;x_buf[ 0 ], psEnc-&gt;sCmn.resample16To12state, &amp;x_buf16[ 0 ], SKP_LSHIFT( SKP_LSHIFT( psEnc-&gt;sCmn.frame_length, 1 ) + psEnc-&gt;sCmn.la_shape, 1 ) );
+                
+                    /* set the first frame to zero, no performance difference was noticed though */
+                    SKP_memset( x_buf, 0, 240 * sizeof( SKP_int16 ) );
+                    SKP_memcpy( psEnc-&gt;x_buf, x_buf, ( 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX ) * sizeof( SKP_int16 ) );
+                }
+#if SWITCH_TRANSITION_FILTERING
+                psEnc-&gt;sCmn.sLP.mode = 1; /* Switch up */
+#endif
+            } 
+        } else {
+            // Internal sample frequency not supported!
+            SKP_assert( 0 );
+        }
+    }
+
+#if SWITCH_TRANSITION_FILTERING
+    /* After switching up, stop transition filter during speech inactivity */
+    if( ( psEnc-&gt;sCmn.sLP.mode == 1 ) &amp;&amp;
+        ( psEnc-&gt;sCmn.sLP.transition_frame_no &gt;= TRANSITION_FRAMES_UP ) &amp;&amp; 
+        ( psEnc-&gt;speech_activity_Q8 &lt; 128 ) &amp;&amp; 
+        ( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) ) {
+        
+        psEnc-&gt;sCmn.sLP.transition_frame_no = 0;
+
+        /* Reset transition filter state */
+        SKP_memset( psEnc-&gt;sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
+    }
+#endif
+
+
+
+    /* Set internal sampling frequency */
+    if( psEnc-&gt;sCmn.fs_kHz != fs_kHz ) {
+        /* reset part of the state */
+        SKP_memset( &amp;psEnc-&gt;sShape,          0, sizeof( SKP_Silk_shape_state_FIX ) );
+        SKP_memset( &amp;psEnc-&gt;sPrefilt,        0, sizeof( SKP_Silk_prefilter_state_FIX ) );
+        SKP_memset( &amp;psEnc-&gt;sNSQ,            0, sizeof( SKP_Silk_nsq_state ) );
+        SKP_memset( &amp;psEnc-&gt;sPred,           0, sizeof( SKP_Silk_predict_state_FIX ) );
+        SKP_memset( psEnc-&gt;sNSQ.xq,          0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
+        SKP_memset( psEnc-&gt;sNSQ_LBRR.xq,     0, ( 2 * MAX_FRAME_LENGTH ) * sizeof( SKP_int16 ) );
+        SKP_memset( psEnc-&gt;sCmn.LBRR_buffer, 0, MAX_LBRR_DELAY * sizeof( SKP_SILK_LBRR_struct ) );
+#if SWITCH_TRANSITION_FILTERING
+        SKP_memset( psEnc-&gt;sCmn.sLP.In_LP_State, 0, 2 * sizeof( SKP_int32 ) );
+        if( psEnc-&gt;sCmn.sLP.mode == 1 ) {
+            /* Begin transition phase */
+            psEnc-&gt;sCmn.sLP.transition_frame_no = 1;
+        } else {
+            /* End transition phase */
+            psEnc-&gt;sCmn.sLP.transition_frame_no = 0;
+        }
+#endif
+        psEnc-&gt;sCmn.inputBufIx          = 0;
+        psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
+        psEnc-&gt;sCmn.nBytesInPayloadBuf  = 0;
+        psEnc-&gt;sCmn.oldest_LBRR_idx     = 0;
+        psEnc-&gt;sCmn.TargetRate_bps      = 0; /* ensures that psEnc-&gt;SNR_dB is recomputed */
+
+        SKP_memset( psEnc-&gt;sPred.prev_NLSFq_Q15, 0, MAX_LPC_ORDER * sizeof( SKP_int ) );
+
+        /* Initialize non-zero parameters */
+        psEnc-&gt;sCmn.prevLag                 = 100;
+        psEnc-&gt;sCmn.prev_sigtype            = SIG_TYPE_UNVOICED;
+        psEnc-&gt;sCmn.first_frame_after_reset = 1;
+        psEnc-&gt;sPrefilt.lagPrev             = 100;
+        psEnc-&gt;sShape.LastGainIndex        = 1;
+        psEnc-&gt;sNSQ.lagPrev                = 100;
+        psEnc-&gt;sNSQ.prev_inv_gain_Q16      = 65536;
+        psEnc-&gt;sNSQ_LBRR.prev_inv_gain_Q16 = 65536;
+        psEnc-&gt;sCmn.fs_kHz = fs_kHz;
+        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            psEnc-&gt;sCmn.predictLPCOrder = MIN_LPC_ORDER;
+            psEnc-&gt;sCmn.psNLSF_CB[ 0 ]  = &amp;SKP_Silk_NLSF_CB0_10;
+            psEnc-&gt;sCmn.psNLSF_CB[ 1 ]  = &amp;SKP_Silk_NLSF_CB1_10;
+        } else {
+            psEnc-&gt;sCmn.predictLPCOrder = MAX_LPC_ORDER;
+            psEnc-&gt;sCmn.psNLSF_CB[ 0 ]  = &amp;SKP_Silk_NLSF_CB0_16;
+            psEnc-&gt;sCmn.psNLSF_CB[ 1 ]  = &amp;SKP_Silk_NLSF_CB1_16;
+        }
+        psEnc-&gt;sCmn.frame_length   = SKP_SMULBB( FRAME_LENGTH_MS, fs_kHz );
+        psEnc-&gt;sCmn.subfr_length   = SKP_DIV32_16( psEnc-&gt;sCmn.frame_length, NB_SUBFR );
+        psEnc-&gt;sCmn.la_pitch       = SKP_SMULBB( LA_PITCH_MS, fs_kHz );
+        psEnc-&gt;sCmn.la_shape       = SKP_SMULBB( LA_SHAPE_MS, fs_kHz );
+        psEnc-&gt;sPred.min_pitch_lag = SKP_SMULBB(  3, fs_kHz );
+        psEnc-&gt;sPred.max_pitch_lag = SKP_SMULBB( 18, fs_kHz );
+        psEnc-&gt;sPred.pitch_LPC_win_length = SKP_SMULBB( FIND_PITCH_LPC_WIN_MS, fs_kHz );
+        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
+            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_SWB_Q8;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_WB_Q8;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_MB_Q8;
+        } else {
+            psEnc-&gt;mu_LTP_Q8 = MU_LTP_QUANT_NB_Q8;
+        }
+        psEnc-&gt;sCmn.fs_kHz_changed = 1;
+        
+        /* Check that settings are valid */
+        SKP_assert( ( psEnc-&gt;sCmn.subfr_length * NB_SUBFR ) == psEnc-&gt;sCmn.frame_length );
+    } 
+   
+    /* Set encoding complexity */
+    if( Complexity == 0 || LOW_COMPLEXITY_ONLY ) {
+        /* Low complexity */
+        psEnc-&gt;sCmn.Complexity                  = 0;
+        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_LC_MODE;
+        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_LC_MODE;
+        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 8;
+        psEnc-&gt;sCmn.shapingLPCOrder             = 12;
+        psEnc-&gt;sCmn.nStatesDelayedDecision      = 1;
+        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ;
+        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 0;
+        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 1;
+        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS_LC_MODE;
+    } else if( Complexity == 1 ) {
+        /* Medium complexity */
+        psEnc-&gt;sCmn.Complexity                  = 1;
+        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_MC_MODE;
+        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_MC_MODE;
+        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 12;
+        psEnc-&gt;sCmn.shapingLPCOrder             = 16;
+        psEnc-&gt;sCmn.nStatesDelayedDecision      = 2;
+        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ_del_dec;
+        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 0;
+        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 0;
+        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS_MC_MODE;
+    } else if( Complexity == 2 ) {
+        /* High complexity */
+        psEnc-&gt;sCmn.Complexity                  = 2;
+        psEnc-&gt;sCmn.pitchEstimationComplexity   = PITCH_EST_COMPLEXITY_HC_MODE;
+        psEnc-&gt;pitchEstimationThreshold_Q16     = FIND_PITCH_CORRELATION_THRESHOLD_Q16_HC_MODE;
+        psEnc-&gt;sCmn.pitchEstimationLPCOrder     = 16;
+        psEnc-&gt;sCmn.shapingLPCOrder             = 16;
+        psEnc-&gt;sCmn.nStatesDelayedDecision      = 4;
+        psEnc-&gt;NoiseShapingQuantizer            = SKP_Silk_NSQ_del_dec;
+        psEnc-&gt;sCmn.useInterpolatedNLSFs        = 1;
+        psEnc-&gt;sCmn.LTPQuantLowComplexity       = 0;
+        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors         = MAX_NLSF_MSVQ_SURVIVORS;
+    } else {
+        ret = SKP_SILK_ENC_WRONG_COMPLEXITY_SETTING;
+    }
+
+    /* Dont have higher Pitch estimation LPC order than predict LPC order */
+    psEnc-&gt;sCmn.pitchEstimationLPCOrder = SKP_min_int( psEnc-&gt;sCmn.pitchEstimationLPCOrder, psEnc-&gt;sCmn.predictLPCOrder );
+
+    SKP_assert( psEnc-&gt;sCmn.pitchEstimationLPCOrder &lt;= FIND_PITCH_LPC_ORDER_MAX );
+    SKP_assert( psEnc-&gt;sCmn.shapingLPCOrder         &lt;= SHAPE_LPC_ORDER_MAX );
+    SKP_assert( psEnc-&gt;sCmn.nStatesDelayedDecision  &lt;= DEL_DEC_STATES_MAX );
+
+    /* Set bitrate/coding quality */
+    TargetRate_bps = SKP_min( TargetRate_bps, 100000 );
+    if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_NB_BPS );
+    } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_MB_BPS );
+    } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_WB_BPS );
+    } else {
+        TargetRate_bps = SKP_max( TargetRate_bps, MIN_TARGET_RATE_SWB_BPS );
+    }
+    if( TargetRate_bps != psEnc-&gt;sCmn.TargetRate_bps ) {
+        psEnc-&gt;sCmn.TargetRate_bps = TargetRate_bps;
+
+        /* if new TargetRate_bps, translate to SNR_dB value */
+        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            rateTable = TargetRate_table_NB;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            rateTable = TargetRate_table_MB;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            rateTable = TargetRate_table_WB;
+        } else {
+            rateTable = TargetRate_table_SWB;
+        }
+        for( k = 1; k &lt; TARGET_RATE_TAB_SZ; k++ ) {
+            /* find bitrate interval in table and interpolate */
+            if( TargetRate_bps &lt; rateTable[ k ] ) {
+                frac_Q6 = SKP_DIV32( SKP_LSHIFT( TargetRate_bps - rateTable[ k - 1 ], 6 ), rateTable[ k ] - rateTable[ k - 1 ] );
+                psEnc-&gt;SNR_dB_Q7 = SKP_LSHIFT( SNR_table_Q1[ k - 1 ], 6 ) + SKP_MUL( frac_Q6, SNR_table_Q1[ k ] - SNR_table_Q1[ k - 1 ] );
+                break;
+            }
+        }
+    }
+
+    /* Set packet size */
+    if( ( PacketSize_ms !=  20 ) &amp;&amp; 
+        ( PacketSize_ms !=  40 ) &amp;&amp; 
+        ( PacketSize_ms !=  60 ) &amp;&amp; 
+        ( PacketSize_ms !=  80 ) &amp;&amp; 
+        ( PacketSize_ms != 100 ) ) {
+        ret = SKP_SILK_ENC_PACKET_SIZE_NOT_SUPPORTED;
+    } else {
+        if( PacketSize_ms != psEnc-&gt;sCmn.PacketSize_ms ) {
+            psEnc-&gt;sCmn.PacketSize_ms = PacketSize_ms;
+
+            /* Packet length changes. Reset LBRR buffer */
+            SKP_Silk_LBRR_reset( &amp;psEnc-&gt;sCmn );
+        }
+    }
+
+    /* Set packet loss rate measured by farend */
+    if( ( PacketLoss_perc &lt; 0 ) || ( PacketLoss_perc &gt; 100 ) ) {
+        ret = SKP_SILK_ENC_WRONG_LOSS_RATE;
+    }
+    psEnc-&gt;sCmn.PacketLoss_perc = PacketLoss_perc;
+
+#if USE_LBRR
+    if( INBandFec_enabled &lt; 0 || INBandFec_enabled &gt; 1 ) {
+        ret = SKP_SILK_ENC_WRONG_INBAND_FEC_SETTING;
+    }
+    
+    /* Only change settings if first frame in packet */
+    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
+        
+        psEnc-&gt;sCmn.LBRR_enabled = INBandFec_enabled;
+        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 9000;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 6000;;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS - 3000;
+        } else {
+            LBRRRate_thres_bps = INBAND_FEC_MIN_RATE_BPS;
+        }
+
+        if( psEnc-&gt;sCmn.TargetRate_bps &gt;= LBRRRate_thres_bps ) {
+            /* Set gain increase / rate reduction for LBRR usage */
+            /* Coarse tuned with pesq for now. */
+            /* Linear regression coefs G = 8 - 0.5 * loss */
+            /* Meaning that at 16% loss main rate and redundant rate is the same, -&gt; G = 0 */
+            psEnc-&gt;sCmn.LBRR_GainIncreases = SKP_max_int( 8 - SKP_RSHIFT( psEnc-&gt;sCmn.PacketLoss_perc, 1 ), 0 );
+
+            /* Set main stream rate compensation */
+            if( psEnc-&gt;sCmn.LBRR_enabled &amp;&amp; psEnc-&gt;sCmn.PacketLoss_perc &gt; LBRR_LOSS_THRES ) {
+                /* Tuned to give aprox same mean / weighted bitrate as no inband FEC */
+                psEnc-&gt;inBandFEC_SNR_comp_Q8 = ( 6 &lt;&lt; 8 ) - SKP_LSHIFT( psEnc-&gt;sCmn.LBRR_GainIncreases, 7 );
+            } else {
+                psEnc-&gt;inBandFEC_SNR_comp_Q8 = 0;
+                psEnc-&gt;sCmn.LBRR_enabled     = 0;
+            }
+        } else {
+            psEnc-&gt;inBandFEC_SNR_comp_Q8     = 0;
+            psEnc-&gt;sCmn.LBRR_enabled         = 0;
+        }
+    }
+#else
+    psEnc-&gt;sCmn.LBRR_enabled = 0;
+#endif
+
+    /* Set DTX mode */
+    if( DTX_enabled &lt; 0 || DTX_enabled &gt; 1 ) {
+        ret = SKP_SILK_ENC_WRONG_DTX_SETTING;
+    }
+    psEnc-&gt;sCmn.useDTX = DTX_enabled;
+    
+    return ret;
+}
+
+/* Control low bitrate redundancy usage */
+void SKP_Silk_LBRR_ctrl_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl  /* I/O  encoder control                             */
+)
+{
+    SKP_int LBRR_usage;
+
+    if( psEnc-&gt;sCmn.LBRR_enabled ) {
+        /* Control LBRR */
+
+        /* Usage Control based on sensitivity and packet loss caracteristics */
+        /* For now only enable adding to next for active frames. Make more complex later */
+        LBRR_usage = SKP_SILK_NO_LBRR;
+        if( psEnc-&gt;speech_activity_Q8 &gt; LBRR_SPEECH_ACTIVITY_THRES_Q8 &amp;&amp; psEnc-&gt;sCmn.PacketLoss_perc &gt; LBRR_LOSS_THRES ) { // nb! maybe multiply loss prob and speech activity 
+            //if( psEnc-&gt;PacketLoss_burst &gt; BURST_THRES )
+            //  psEncCtrl-&gt;LBRR_usage = SKP_SILK_ADD_LBRR_TO_PLUS2;
+            //} else {
+                LBRR_usage = SKP_SILK_ADD_LBRR_TO_PLUS1;//SKP_SILK_NO_LBRR
+            //}
+        }
+        psEncCtrl-&gt;sCmn.LBRR_usage = LBRR_usage;
+    } else {
+        psEncCtrl-&gt;sCmn.LBRR_usage = SKP_SILK_NO_LBRR;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_corrMatrix_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_corrMatrix_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_corrMatrix_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_corrMatrix_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,172 +1,152 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-
-
-
-
-
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/**********************************************************************
- * Correlation Matrix Computations for LS estimate.
- **********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Calculates correlation vector X'*t */
-void SKP_Silk_corrVector_FIX(
-    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
-    const SKP_int16                 *t,         /* I    target vector [L]                                   */
-    const SKP_int                   L,          /* I    Length of vectors                                   */
-    const SKP_int                   order,      /* I    Max lag for correlation                             */
-    SKP_int32                       *Xt,        /* O    Pointer to X'*t correlation vector [order]          */
-    const SKP_int                   rshifts     /* I    Right shifts of correlations                        */
-)
-{
-    SKP_int         lag, i;
-    const SKP_int16 *ptr1, *ptr2;
-    SKP_int32       inner_prod;
-
-    ptr1 = &amp;x[ order - 1 ]; /* Points to first sample of column 0 of X: X[:,0] */
-    ptr2 = t;
-    /* Calculate X'*t */
-    if( rshifts &gt; 0 ) {
-        /* Right shifting used */
-        for( lag = 0; lag &lt; order; lag++ ) {
-            inner_prod = 0;
-            for( i = 0; i &lt; L; i++ ) {
-                inner_prod += SKP_RSHIFT32( SKP_SMULBB( ptr1[ i ], ptr2[i] ), rshifts );
-            }
-            Xt[ lag ] = inner_prod; /* X[:,lag]'*t */
-            ptr1--; /* Go to next column of X */
-        }
-    } else {
-        SKP_assert( rshifts == 0 );
-        for( lag = 0; lag &lt; order; lag++ ) {
-
-
-
-
-
-            Xt[ lag ] = SKP_Silk_inner_prod_aligned( ptr1, ptr2, L ); /* X[:,lag]'*t */
-            ptr1--; /* Go to next column of X */
-        }
-    }
-}
-
-/* Calculates correlation matrix X'*X */
-void SKP_Silk_corrMatrix_FIX(
-    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
-    const SKP_int                   L,          /* I    Length of vectors                                   */
-    const SKP_int                   order,      /* I    Max lag for correlation                             */
-    SKP_int32                       *XX,        /* O    Pointer to X'*X correlation matrix [ order x order ]*/
-    SKP_int                         *rshifts    /* I/O  Right shifts of correlations                        */
-)
-{
-    SKP_int         i, j, lag, rshifts_local, head_room_rshifts;
-    SKP_int32       energy;
-    const SKP_int16 *ptr1, *ptr2;
-
-    /* Calculate energy to find shift used to fit in 32 bits */
-    SKP_Silk_sum_sqr_shift( &amp;energy, &amp;rshifts_local, x, L + order - 1 );
-    /* Add shifts to get the wanted head room */
-
-    head_room_rshifts = SKP_max( LTP_CORRS_HEAD_ROOM - SKP_Silk_CLZ32( energy ), 0 );
-
-    energy = SKP_RSHIFT32( energy, head_room_rshifts );
-    rshifts_local += head_room_rshifts;
-
-    /* Calculate energy of first column (0) of X: X[:,0]'*X[:,0] */
-    /* Remove contribution of first order - 1 samples */
-    for( i = 0; i &lt; order - 1; i++ ) {
-        energy -= SKP_RSHIFT32( SKP_SMULBB( x[ i ], x[ i ] ), rshifts_local );
-    }
-    if( rshifts_local &lt; *rshifts ) {
-        /* Adjust energy */
-        energy = SKP_RSHIFT32( energy, *rshifts - rshifts_local );
-        rshifts_local = *rshifts;
-    }
-
-    /* Calculate energy of remaining columns of X: X[:,j]'*X[:,j] */
-    /* Fill out the diagonal of the correlation matrix */
-    matrix_ptr( XX, 0, 0, order ) = energy;
-    ptr1 = &amp;x[ order - 1 ]; /* First sample of column 0 of X */
-    for( j = 1; j &lt; order; j++ ) {
-        energy = SKP_SUB32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ L - j ], ptr1[ L - j ] ), rshifts_local ) );
-        energy = SKP_ADD32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ -j ], ptr1[ -j ] ), rshifts_local ) );
-        matrix_ptr( XX, j, j, order ) = energy;
-    }
-
-
-
-
-
-    ptr2 = &amp;x[ order - 2 ]; /* First sample of column 1 of X */
-    /* Calculate the remaining elements of the correlation matrix */
-    if( rshifts_local &gt; 0 ) {
-        /* Right shifting used */
-        for( lag = 1; lag &lt; order; lag++ ) {
-            /* Inner product of column 0 and column lag: X[:,0]'*X[:,lag] */
-            energy = 0;
-            for( i = 0; i &lt; L; i++ ) {
-                energy += SKP_RSHIFT32( SKP_SMULBB( ptr1[ i ], ptr2[i] ), rshifts_local );
-            }
-            /* Calculate remaining off diagonal: X[:,j]'*X[:,j + lag] */
-            matrix_ptr( XX, lag, 0, order ) = energy;
-            matrix_ptr( XX, 0, lag, order ) = energy;
-            for( j = 1; j &lt; ( order - lag ); j++ ) {
-                energy = SKP_SUB32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ L - j ], ptr2[ L - j ] ), rshifts_local ) );
-                energy = SKP_ADD32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ -j ], ptr2[ -j ] ), rshifts_local ) );
-                matrix_ptr( XX, lag + j, j, order ) = energy;
-                matrix_ptr( XX, j, lag + j, order ) = energy;
-            }
-            ptr2--; /* Update pointer to first sample of next column (lag) in X */
-        }
-    } else {
-        for( lag = 1; lag &lt; order; lag++ ) {
-            /* Inner product of column 0 and column lag: X[:,0]'*X[:,lag] */
-            energy = SKP_Silk_inner_prod_aligned( ptr1, ptr2, L );
-            matrix_ptr( XX, lag, 0, order ) = energy;
-            matrix_ptr( XX, 0, lag, order ) = energy;
-            /* Calculate remaining off diagonal: X[:,j]'*X[:,j + lag] */
-            for( j = 1; j &lt; ( order - lag ); j++ ) {
-                energy = SKP_SUB32( energy, SKP_SMULBB( ptr1[ L - j ], ptr2[ L - j ] ) );
-                energy = SKP_SMLABB( energy, ptr1[ -j ], ptr2[ -j ] );
-                matrix_ptr( XX, lag + j, j, order ) = energy;
-                matrix_ptr( XX, j, lag + j, order ) = energy;
-            }
-            ptr2--;/* Update pointer to first sample of next column (lag) in X */
-        }
-    }
-    *rshifts = rshifts_local;
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/**********************************************************************
+ * Correlation Matrix Computations for LS estimate. 
+ **********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Calculates correlation vector X'*t */
+void SKP_Silk_corrVector_FIX(
+    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
+    const SKP_int16                 *t,         /* I    target vector [L]                                   */
+    const SKP_int                   L,          /* I    Length of vectors                                   */
+    const SKP_int                   order,      /* I    Max lag for correlation                             */
+    SKP_int32                       *Xt,        /* O    Pointer to X'*t correlation vector [order]          */
+    const SKP_int                   rshifts     /* I    Right shifts of correlations                        */
+)
+{
+    SKP_int         lag, i;
+    const SKP_int16 *ptr1, *ptr2;
+    SKP_int32       inner_prod;
+
+    ptr1 = &amp;x[ order - 1 ]; /* Points to first sample of column 0 of X: X[:,0] */
+    ptr2 = t;
+    /* Calculate X'*t */
+    if( rshifts &gt; 0 ) {
+        /* Right shifting used */
+        for( lag = 0; lag &lt; order; lag++ ) {
+            inner_prod = 0;
+            for( i = 0; i &lt; L; i++ ) {
+                inner_prod += SKP_RSHIFT32( SKP_SMULBB( ptr1[ i ], ptr2[i] ), rshifts );
+            }
+            Xt[ lag ] = inner_prod; /* X[:,lag]'*t */
+            ptr1--; /* Go to next column of X */
+        }
+    } else {
+        SKP_assert( rshifts == 0 );
+        for( lag = 0; lag &lt; order; lag++ ) {
+            Xt[ lag ] = SKP_Silk_inner_prod_aligned( ptr1, ptr2, L ); /* X[:,lag]'*t */
+            ptr1--; /* Go to next column of X */
+        }
+    }
+}
+
+/* Calculates correlation matrix X'*X */
+void SKP_Silk_corrMatrix_FIX(
+    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
+    const SKP_int                   L,          /* I    Length of vectors                                   */
+    const SKP_int                   order,      /* I    Max lag for correlation                             */
+    SKP_int32                       *XX,        /* O    Pointer to X'*X correlation matrix [ order x order ]*/
+    SKP_int                         *rshifts    /* I/O  Right shifts of correlations                        */
+)
+{
+    SKP_int         i, j, lag, rshifts_local, head_room_rshifts;
+    SKP_int32       energy;
+    const SKP_int16 *ptr1, *ptr2;
+
+    /* Calculate energy to find shift used to fit in 32 bits */
+    SKP_Silk_sum_sqr_shift( &amp;energy, &amp;rshifts_local, x, L + order - 1 );
+    /* Add shifts to get the wanted head room */
+
+    head_room_rshifts = SKP_max( LTP_CORRS_HEAD_ROOM - SKP_Silk_CLZ32( energy ), 0 );
+    
+    energy = SKP_RSHIFT32( energy, head_room_rshifts );
+    rshifts_local += head_room_rshifts;
+
+    /* Calculate energy of first column (0) of X: X[:,0]'*X[:,0] */
+    /* Remove contribution of first order - 1 samples */
+    for( i = 0; i &lt; order - 1; i++ ) {
+        energy -= SKP_RSHIFT32( SKP_SMULBB( x[ i ], x[ i ] ), rshifts_local );
+    }
+    if( rshifts_local &lt; *rshifts ) {
+        /* Adjust energy */
+        energy = SKP_RSHIFT32( energy, *rshifts - rshifts_local );
+        rshifts_local = *rshifts;
+    }
+
+    /* Calculate energy of remaining columns of X: X[:,j]'*X[:,j] */
+    /* Fill out the diagonal of the correlation matrix */
+    matrix_ptr( XX, 0, 0, order ) = energy;
+    ptr1 = &amp;x[ order - 1 ]; /* First sample of column 0 of X */
+    for( j = 1; j &lt; order; j++ ) {
+        energy = SKP_SUB32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ L - j ], ptr1[ L - j ] ), rshifts_local ) );
+        energy = SKP_ADD32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ -j ], ptr1[ -j ] ), rshifts_local ) );
+        matrix_ptr( XX, j, j, order ) = energy;
+    }
+
+    ptr2 = &amp;x[ order - 2 ]; /* First sample of column 1 of X */
+    /* Calculate the remaining elements of the correlation matrix */
+    if( rshifts_local &gt; 0 ) {
+        /* Right shifting used */
+        for( lag = 1; lag &lt; order; lag++ ) {
+            /* Inner product of column 0 and column lag: X[:,0]'*X[:,lag] */
+            energy = 0;
+            for( i = 0; i &lt; L; i++ ) {
+                energy += SKP_RSHIFT32( SKP_SMULBB( ptr1[ i ], ptr2[i] ), rshifts_local );
+            }
+            /* Calculate remaining off diagonal: X[:,j]'*X[:,j + lag] */
+            matrix_ptr( XX, lag, 0, order ) = energy;
+            matrix_ptr( XX, 0, lag, order ) = energy;
+            for( j = 1; j &lt; ( order - lag ); j++ ) {
+                energy = SKP_SUB32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ L - j ], ptr2[ L - j ] ), rshifts_local ) );
+                energy = SKP_ADD32( energy, SKP_RSHIFT32( SKP_SMULBB( ptr1[ -j ], ptr2[ -j ] ), rshifts_local ) );
+                matrix_ptr( XX, lag + j, j, order ) = energy;
+                matrix_ptr( XX, j, lag + j, order ) = energy;
+            }
+            ptr2--; /* Update pointer to first sample of next column (lag) in X */
+        }
+    } else {
+        for( lag = 1; lag &lt; order; lag++ ) {
+            /* Inner product of column 0 and column lag: X[:,0]'*X[:,lag] */
+            energy = SKP_Silk_inner_prod_aligned( ptr1, ptr2, L );
+            matrix_ptr( XX, lag, 0, order ) = energy;
+            matrix_ptr( XX, 0, lag, order ) = energy;
+            /* Calculate remaining off diagonal: X[:,j]'*X[:,j + lag] */
+            for( j = 1; j &lt; ( order - lag ); j++ ) {
+                energy = SKP_SUB32( energy, SKP_SMULBB( ptr1[ L - j ], ptr2[ L - j ] ) );
+                energy = SKP_SMLABB( energy, ptr1[ -j ], ptr2[ -j ] );
+                matrix_ptr( XX, lag + j, j, order ) = energy;
+                matrix_ptr( XX, j, lag + j, order ) = energy;
+            }
+            ptr2--;/* Update pointer to first sample of next column (lag) in X */
+        }
+    }
+    *rshifts = rshifts_local;
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_create_init_destroyc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_create_init_destroy.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_create_init_destroy.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_create_init_destroy.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,70 +1,55 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-
-/************************/
-/* Init Decoder State   */
-/************************/
-SKP_int SKP_Silk_init_decoder(
-    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
-)
-{
-    SKP_memset( psDec, 0, sizeof( SKP_Silk_decoder_state ) );
-    /* Set sampling rate to 24 kHz, and init non-zero values */
-    SKP_Silk_decoder_set_fs( psDec, 24 );
-
-    /* Used to deactivate e.g. LSF interpolation and fluctuation reduction */
-    psDec-&gt;first_frame_after_reset = 1;
-    psDec-&gt;prev_inv_gain_Q16 = 65536;
-
-    /* Reset CNG state */
-    SKP_Silk_CNG_Reset( psDec );
-
-    SKP_Silk_PLC_Reset( psDec );
-
-
-
-
-
-    psDec-&gt;bitstream_v = USE_BIT_STREAM_V;
-
-    return(0);
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+
+/************************/
+/* Init Decoder State   */
+/************************/
+SKP_int SKP_Silk_init_decoder(
+    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
+)
+{
+    SKP_memset( psDec, 0, sizeof( SKP_Silk_decoder_state ) );
+    /* Set sampling rate to 24 kHz, and init non-zero values */
+    SKP_Silk_decoder_set_fs( psDec, 24 );
+
+    /* Used to deactivate e.g. LSF interpolation and fluctuation reduction */
+    psDec-&gt;first_frame_after_reset = 1;
+    psDec-&gt;prev_inv_gain_Q16 = 65536;
+
+    /* Reset CNG state */
+    SKP_Silk_CNG_Reset( psDec );
+
+    SKP_Silk_PLC_Reset( psDec );
+
+    psDec-&gt;bitstream_v = USE_BIT_STREAM_V;
+    
+    return(0);
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_dec_APIc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_dec_API.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_dec_API.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_dec_API.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,384 +1,343 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-#include &quot;SKP_Silk_SDK_API.h&quot;
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/****************************************/
-/* Decoder functions                    */
-/****************************************/
-
-SKP_int SKP_Silk_SDK_Get_Decoder_Size( SKP_int32 *decSizeBytes )
-
-
-
-
-
-{
-    SKP_int ret = 0;
-
-    *decSizeBytes = sizeof( SKP_Silk_decoder_state );
-
-    return ret;
-}
-
-/* Reset Decoder State */
-SKP_int SKP_Silk_SDK_InitDecoder(
-    void* decState                              /* I/O: State                               */
-)
-{
-    SKP_int ret = 0;
-    SKP_Silk_decoder_state *struc;
-
-    struc = (SKP_Silk_decoder_state *)decState;
-
-    ret  = SKP_Silk_init_decoder( struc );
-
-    return ret;
-}
-
-/* Decode a frame */
-SKP_int SKP_Silk_SDK_Decode(
-    void*                               decState,       /* I/O: State                                           */
-    SKP_SILK_SDK_DecControlStruct*      decControl,     /* I/O: Control Structure                               */
-    SKP_int                             lostFlag,       /* I:   0: no loss, 1 loss                              */
-    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
-    const SKP_int                       nBytesIn,       /* I:   Number of input Bytes                           */
-    SKP_int16                           *samplesOut,    /* O:   Decoded output speech vector                    */
-    SKP_int16                           *nSamplesOut    /* I/O: Number of samples (vector/decoded)              */
-)
-{
-    SKP_int ret = 0, used_bytes, prev_fs_kHz;
-    SKP_Silk_decoder_state *psDec;
-
-    psDec = (SKP_Silk_decoder_state *)decState;
-
-    /*********************************************/
-    /* Test if first frame in payload            */
-    /*********************************************/
-    if( psDec-&gt;InternalDecoderFrames == 0 ) {
-        /* First Frame in Payload */
-        psDec-&gt;nFramesDecoded = 0;  /* Used to count frames in packet */
-    }
-
-    if( psDec-&gt;InternalDecoderFrames == 0 &amp;&amp;        /* First frame in packet    */
-
-
-
-
-
-        lostFlag == 0 &amp;&amp;                            /* Not packet loss          */
-        nBytesIn &gt; MAX_ARITHM_BYTES ) {             /* Too long payload         */
-            /* Avoid trying to decode a too large packet */
-            lostFlag = 1;
-            ret = SKP_SILK_DEC_PAYLOAD_TOO_LARGE;
-    }
-
-    /* Save previous sample frequency */
-    prev_fs_kHz = psDec-&gt;fs_kHz;
-
-    /* Call decoder for one frame */
-    ret += SKP_Silk_decode_frame( psDec, samplesOut, nSamplesOut, inData, nBytesIn,
-            lostFlag, &amp;used_bytes );
-
-    if( used_bytes ) { /* Only Call if not a packet loss */
-        if( psDec-&gt;nBytesLeft &gt; 0 &amp;&amp; psDec-&gt;FrameTermination == SKP_SILK_MORE_FRAMES &amp;&amp; psDec-&gt;nFramesDecoded &lt; 5 ) {
-            /* We have more frames in the Payload */
-            psDec-&gt;InternalDecoderFrames = 1;
-        } else {
-            /* Last frame in Payload */
-            psDec-&gt;InternalDecoderFrames = 0;
-            psDec-&gt;nFramesInPacket = psDec-&gt;nFramesDecoded;
-
-            /* Track inband FEC usage */
-            if( psDec-&gt;vadFlag == VOICE_ACTIVITY ) {
-                if( psDec-&gt;FrameTermination == SKP_SILK_LAST_FRAME ) {
-                    psDec-&gt;no_fec_counter++;
-                    if( psDec-&gt;no_fec_counter &gt; NO_LBRR_THRES ) {
-                        psDec-&gt;inband_fec_offset = 0;
-                    }
-                } else if( psDec-&gt;FrameTermination == SKP_SILK_LBRR_VER1 ) {
-                    psDec-&gt;inband_fec_offset = 1; /* FEC info with 1 packet delay */
-                    psDec-&gt;no_fec_counter    = 0;
-                } else if( psDec-&gt;FrameTermination == SKP_SILK_LBRR_VER2 ) {
-                    psDec-&gt;inband_fec_offset = 2; /* FEC info with 2 packets delay */
-                    psDec-&gt;no_fec_counter    = 0;
-                }
-            }
-        }
-    }
-
-    if( psDec-&gt;fs_kHz * 1000 &gt; decControl-&gt;sampleRate ) {
-        ret = SKP_SILK_DEC_WRONG_SAMPLING_FREQUENCY;
-    }
-
-    /* Do any resampling if needed */
-    if( psDec-&gt;fs_kHz * 1000 != decControl-&gt;sampleRate ) {
-        SKP_int16 samplesOut_tmp[ 2 * MAX_FRAME_LENGTH ];
-
-
-
-
-
-        SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH ];
-
-        /* Copy to a tmpbuffer as the resampling writes to samplesOut */
-        memcpy( samplesOut_tmp, samplesOut, *nSamplesOut * sizeof( SKP_int16 ) );
-
-        /* Clear resampler state when switching internal sampling frequency */
-        if( prev_fs_kHz != psDec-&gt;fs_kHz ) {
-            SKP_memset( psDec-&gt;resampleState, 0, sizeof( psDec-&gt;resampleState ) );
-        }
-
-        if( psDec-&gt;fs_kHz == 16 &amp;&amp; decControl-&gt;sampleRate == 24000 ) {
-            /* Resample from 16 kHz to 24 kHz */
-            SKP_Silk_resample_3_2( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
-        } else if( psDec-&gt;fs_kHz == 12 &amp;&amp; decControl-&gt;sampleRate == 24000 ) {
-            /* Resample from 12 kHz to 24 kHz */
-            SKP_Silk_resample_2_1_coarse( samplesOut_tmp, psDec-&gt;resampleState, samplesOut, scratch, *nSamplesOut );
-        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 24000 ) {
-            /* Resample from 8 kHz to 24 kHz */
-            SKP_Silk_resample_3_1( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
-        } else if( psDec-&gt;fs_kHz == 12 &amp;&amp; decControl-&gt;sampleRate == 16000 ) {
-            /* Resample from 12 kHz to 16 kHz */
-            SKP_Silk_resample_4_3( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
-        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 16000 ) {
-            /* Resample from 8 kHz to 16 kHz */
-            SKP_Silk_resample_2_1_coarse( samplesOut_tmp, psDec-&gt;resampleState, samplesOut, scratch, *nSamplesOut );
-        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 12000 ) {
-            /* Resample from 8 kHz to 12 kHz */
-            SKP_Silk_resample_3_2( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
-        }
-
-        *nSamplesOut = SKP_DIV32( (SKP_int32)*nSamplesOut * decControl-&gt;sampleRate, psDec-&gt;fs_kHz * 1000 );
-    }
-
-    /* Copy all parameters that are needed out of internal structure to the control stucture */
-    decControl-&gt;frameSize             = (SKP_int)psDec-&gt;frame_length;
-    decControl-&gt;framesPerPacket       = (SKP_int)psDec-&gt;nFramesInPacket;
-    decControl-&gt;inBandFecOffset       = (SKP_int)psDec-&gt;inband_fec_offset;
-    decControl-&gt;internalDecoderFrames = (SKP_int)psDec-&gt;InternalDecoderFrames;
-
-    return ret;
-}
-
-/* Function to find LBRR information in a packet */
-void SKP_Silk_SDK_search_for_LBRR(
-    void                        *decState,          /* I/O: State Only used to update statistics        */
-    const SKP_uint8             *indata,            /* I:   Encoded input vector                        */
-    const SKP_int16             nBytesIn,           /* I:   Number of input Bytes                       */
-    SKP_int                     lost_offset,        /* I:   Offset from lost packet                     */
-
-
-
-
-
-    SKP_uint8                   *LBRRdata,          /* O:   FEC payload                                 */
-    SKP_int16                   *nLBRRBytes         /* O:   Number of FEC Bytes                         */
-)
-{
-    SKP_Silk_decoder_state *psDec;
-    SKP_Silk_decoder_state sDec; // Local Decoder state to avoid interfering with running decoder */
-    SKP_Silk_decoder_control sDecCtrl;
-    SKP_int i, TempQ[ MAX_FRAME_LENGTH ];
-
-    psDec = (SKP_Silk_decoder_state *)decState;
-
-    if(lost_offset &lt; 1 || lost_offset &gt; MAX_LBRR_DELAY) {
-        /* No useful FEC in this packet */
-        *nLBRRBytes = 0;
-        return;
-    }
-
-    sDec.nFramesDecoded = 0;
-    sDec.fs_kHz = 0; /* Force update parameters LPC_order etc */
-    SKP_memset( sDec.prevNLSF_Q15, 0, MAX_LPC_ORDER * sizeof(SKP_int));
-    SKP_Silk_range_dec_init( &amp;sDec.sRC, indata, (SKP_int32)nBytesIn );
-
-    if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) { /* Silk_v3 payload */
-        /* Decode all parameter indices for the whole packet*/
-        SKP_Silk_decode_indices_v4( &amp;sDec );
-
-        /* Is there usable LBRR in this packet */
-        *nLBRRBytes = 0;
-        if((sDec.FrameTermination - 1) &amp; lost_offset &amp;&amp; sDec.FrameTermination &gt; 0 &amp;&amp; sDec.nBytesLeft &gt;= 0) {
-            /* The Wanted FEC is present in the packet */
-            for( i = 0; i &lt; sDec.nFramesInPacket; i++ ){
-                SKP_Silk_decode_parameters_v4( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
-
-                if( sDec.nBytesLeft &lt;= 0 || sDec.sRC.error ) {
-                    /* Corrupt stream */
-                    LBRRdata = NULL;
-                    *nLBRRBytes = 0;
-                    break;
-                }else{
-                    sDec.nFramesDecoded++;
-                }
-            }
-
-            if( LBRRdata != NULL ){
-                /* The Wanted FEC is present in the packet */
-                *nLBRRBytes = sDec.nBytesLeft;
-                SKP_memcpy( LBRRdata, &amp;indata[nBytesIn - sDec.nBytesLeft], sDec.nBytesLeft * sizeof(SKP_uint8));
-            }
-
-
-
-
-
-        }
-    } else { /* Silk_v3 payload */
-        while(1) {
-            SKP_Silk_decode_parameters( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
-
-            if( sDec.sRC.error ) {
-                /* Corrupt stream */
-                *nLBRRBytes = 0;
-                return;
-            };
-
-            if((sDec.FrameTermination - 1) &amp; lost_offset &amp;&amp; sDec.FrameTermination &gt; 0 &amp;&amp; sDec.nBytesLeft &gt;= 0) {
-                /* The Wanted FEC is present in the packet */
-                *nLBRRBytes = sDec.nBytesLeft;
-                SKP_memcpy( LBRRdata, &amp;indata[nBytesIn - sDec.nBytesLeft], sDec.nBytesLeft * sizeof(SKP_uint8));
-                break;
-            }
-            if(sDec.nBytesLeft &gt; 0 &amp;&amp; sDec.FrameTermination == SKP_SILK_MORE_FRAMES) {
-                sDec.nFramesDecoded++;
-            }else{
-                LBRRdata = NULL;
-                *nLBRRBytes = 0;
-                break;
-            }
-        }
-    }
-}
-
-/* Getting type of content for a packet */
-void SKP_Silk_SDK_get_TOC(
-    void                            *decState,          /* I/O: State Only used to select bitstream version */
-    const SKP_uint8                 *indata,            /* I:   Encoded input vector                        */
-    const SKP_int16                 nBytesIn,           /* I:   Number of input Bytes                       */
-    SKP_Silk_TOC_struct             *Silk_TOC           /* O:   Type of content                             */
-)
-{
-    SKP_Silk_decoder_state      *psDec;
-    SKP_Silk_decoder_state      sDec; // Local Decoder state to avoid interfering with running decoder */
-    SKP_Silk_decoder_control    sDecCtrl;
-    SKP_int i, TempQ[MAX_FRAME_LENGTH];
-
-    psDec = (SKP_Silk_decoder_state *)decState;
-
-    sDec.nFramesDecoded = 0;
-    sDec.fs_kHz = 0; /* Force update parameters LPC_order etc */
-    SKP_Silk_range_dec_init( &amp;sDec.sRC, indata, (SKP_int32)nBytesIn );
-
-    if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) { /* Silk_v4 payload */
-
-
-
-
-
-        /* Decode all parameter indices for the whole packet*/
-        SKP_Silk_decode_indices_v4( &amp;sDec );
-
-        if( sDec.nFramesInPacket &gt; SILK_MAX_FRAMES_PER_PACKET || sDec.sRC.error ) {
-            /* Corrupt packet */
-            SKP_memset( Silk_TOC, 0, sizeof(SKP_Silk_TOC_struct) );
-            Silk_TOC-&gt;corrupt = 1;
-        } else{
-            Silk_TOC-&gt;corrupt = 0;
-            Silk_TOC-&gt;framesInPacket = sDec.nFramesInPacket;
-            Silk_TOC-&gt;fs_kHz         = sDec.fs_kHz;
-            if( sDec.FrameTermination == SKP_SILK_LAST_FRAME ) {
-                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination;
-            } else {
-                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination - 1;
-            }
-            /* use memcpy */
-            for( i = 0; i &lt; sDec.nFramesInPacket; i++ ){
-                Silk_TOC-&gt;vadFlags[ i ]     = sDec.vadFlagBuf[ i ];
-                Silk_TOC-&gt;sigtypeFlags[ i ] = sDec.sigtype[ i ];
-            }
-        }
-    } else { /* Silk_v3 payload */
-        Silk_TOC-&gt;corrupt = 0;
-        while(1) {
-            SKP_Silk_decode_parameters( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
-
-            Silk_TOC-&gt;vadFlags[ sDec.nFramesDecoded      ] = sDec.vadFlag;
-            Silk_TOC-&gt;sigtypeFlags[ sDec.nFramesDecoded  ] = sDecCtrl.sigtype;
-
-            if( sDec.sRC.error ) {
-                /* Corrupt stream */
-                Silk_TOC-&gt;corrupt = 1;
-                break;
-            };
-
-            if(sDec.nBytesLeft &gt; 0 &amp;&amp; sDec.FrameTermination == SKP_SILK_MORE_FRAMES) {
-                sDec.nFramesDecoded++;
-            }else{
-                break;
-            }
-        }
-        if( Silk_TOC-&gt;corrupt || sDec.FrameTermination == SKP_SILK_MORE_FRAMES ||
-            sDec.nFramesInPacket &gt; SILK_MAX_FRAMES_PER_PACKET ) {
-            /* corrupt packet */
-            SKP_memset( Silk_TOC, 0, sizeof(SKP_Silk_TOC_struct) );
-            Silk_TOC-&gt;corrupt = 1;
-        } else {
-
-
-
-
-
-            Silk_TOC-&gt;framesInPacket = sDec.nFramesDecoded;
-            Silk_TOC-&gt;fs_kHz            = sDec.fs_kHz;
-            if( sDec.FrameTermination == SKP_SILK_LAST_FRAME ) {
-                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination;
-            } else {
-                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination - 1;
-            }
-        }
-    }
-}
-
-/*********************************/
-/* Get the version number */
-/*********************************/
-/* Return a pointer to string specifying the version */
-const char *SKP_Silk_SDK_get_version()
-{
- static const char version[] = &quot;1.0.2&quot;;
- return version;
-}
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SDK_API.h&quot;
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/*********************/
+/* Decoder functions */
+/*********************/
+
+SKP_int SKP_Silk_SDK_Get_Decoder_Size( SKP_int32 *decSizeBytes ) 
+{
+    SKP_int ret = 0;
+
+    *decSizeBytes = sizeof( SKP_Silk_decoder_state );
+
+    return ret;
+}
+
+/* Reset decoder state */
+SKP_int SKP_Silk_SDK_InitDecoder(
+    void* decState                                      /* I/O: State                                          */
+)
+{
+    SKP_int ret = 0;
+    SKP_Silk_decoder_state *struc;
+
+    struc = (SKP_Silk_decoder_state *)decState;
+
+    ret  = SKP_Silk_init_decoder( struc );
+
+    return ret;
+}
+
+/* Decode a frame */
+SKP_int SKP_Silk_SDK_Decode(
+    void*                               decState,       /* I/O: State                                           */
+    SKP_SILK_SDK_DecControlStruct*      decControl,     /* I/O: Control structure                               */
+    SKP_int                             lostFlag,       /* I:   0: no loss, 1 loss                              */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int                       nBytesIn,       /* I:   Number of input Bytes                           */
+    SKP_int16                           *samplesOut,    /* O:   Decoded output speech vector                    */
+    SKP_int16                           *nSamplesOut    /* I/O: Number of samples (vector/decoded)              */
+)
+{
+    SKP_int ret = 0, used_bytes, prev_fs_kHz;
+    SKP_Silk_decoder_state *psDec;
+
+    psDec = (SKP_Silk_decoder_state *)decState;
+
+    /**********************************/
+    /* Test if first frame in payload */
+    /**********************************/
+    if( psDec-&gt;moreInternalDecoderFrames == 0 ) {
+        /* First Frame in Payload */
+        psDec-&gt;nFramesDecoded = 0;  /* Used to count frames in packet */
+    }
+
+    if( psDec-&gt;moreInternalDecoderFrames == 0 &amp;&amp;    /* First frame in packet    */
+        lostFlag == 0 &amp;&amp;                            /* Not packet loss          */
+        nBytesIn &gt; MAX_ARITHM_BYTES ) {             /* Too long payload         */
+            /* Avoid trying to decode a too large packet */
+            lostFlag = 1;
+            ret = SKP_SILK_DEC_PAYLOAD_TOO_LARGE;
+    }
+            
+    /* Save previous sample frequency */
+    prev_fs_kHz = psDec-&gt;fs_kHz;
+    
+    /* Call decoder for one frame */
+    ret += SKP_Silk_decode_frame( psDec, samplesOut, nSamplesOut, inData, nBytesIn, 
+            lostFlag, &amp;used_bytes );
+    
+    if( used_bytes ) { /* Only Call if not a packet loss */
+        if( psDec-&gt;nBytesLeft &gt; 0 &amp;&amp; psDec-&gt;FrameTermination == SKP_SILK_MORE_FRAMES &amp;&amp; psDec-&gt;nFramesDecoded &lt; 5 ) {
+            /* We have more frames in the Payload */
+            psDec-&gt;moreInternalDecoderFrames = 1;
+        } else {
+            /* Last frame in Payload */
+            psDec-&gt;moreInternalDecoderFrames = 0;
+            psDec-&gt;nFramesInPacket = psDec-&gt;nFramesDecoded;
+        
+            /* Track inband FEC usage */
+            if( psDec-&gt;vadFlag == VOICE_ACTIVITY ) {
+                if( psDec-&gt;FrameTermination == SKP_SILK_LAST_FRAME ) {
+                    psDec-&gt;no_FEC_counter++;
+                    if( psDec-&gt;no_FEC_counter &gt; NO_LBRR_THRES ) {
+                        psDec-&gt;inband_FEC_offset = 0;
+                    }
+                } else if( psDec-&gt;FrameTermination == SKP_SILK_LBRR_VER1 ) {
+                    psDec-&gt;inband_FEC_offset = 1; /* FEC info with 1 packet delay */
+                    psDec-&gt;no_FEC_counter    = 0;
+                } else if( psDec-&gt;FrameTermination == SKP_SILK_LBRR_VER2 ) {
+                    psDec-&gt;inband_FEC_offset = 2; /* FEC info with 2 packets delay */
+                    psDec-&gt;no_FEC_counter    = 0;
+                }
+            }
+        }
+    }
+
+    if( psDec-&gt;fs_kHz * 1000 &gt; decControl-&gt;sampleRate ) {
+        ret = SKP_SILK_DEC_WRONG_SAMPLING_FREQUENCY;
+    }
+
+    /* Do any resampling if needed */
+    if( psDec-&gt;fs_kHz * 1000 != decControl-&gt;sampleRate ) { 
+        SKP_int16 samplesOut_tmp[ 2 * MAX_FRAME_LENGTH ];
+        SKP_int32 scratch[        3 * MAX_FRAME_LENGTH ];
+
+        /* Copy to a tmpbuffer as the resampling writes to samplesOut */
+        memcpy( samplesOut_tmp, samplesOut, *nSamplesOut * sizeof( SKP_int16 ) ); 
+
+        /* Clear resampler state when switching internal sampling frequency */
+        if( prev_fs_kHz != psDec-&gt;fs_kHz ) {
+            SKP_memset( psDec-&gt;resampleState, 0, sizeof( psDec-&gt;resampleState ) );
+        }
+
+        if( psDec-&gt;fs_kHz == 16 &amp;&amp; decControl-&gt;sampleRate == 24000 ) { 
+            /* Resample from 16 kHz to 24 kHz */
+            SKP_Silk_resample_3_2( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
+        } else if( psDec-&gt;fs_kHz == 12 &amp;&amp; decControl-&gt;sampleRate == 24000 ) { 
+            /* Resample from 12 kHz to 24 kHz */
+            SKP_Silk_resample_2_1_coarse( samplesOut_tmp, psDec-&gt;resampleState, samplesOut, scratch, *nSamplesOut );
+        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 24000 ) { 
+            /* Resample from 8 kHz to 24 kHz */
+            SKP_Silk_resample_3_1( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
+        } else if( psDec-&gt;fs_kHz == 12 &amp;&amp; decControl-&gt;sampleRate == 16000 ) { 
+            /* Resample from 12 kHz to 16 kHz */
+            SKP_Silk_resample_4_3( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
+        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 16000 ) { 
+            /* Resample from 8 kHz to 16 kHz */
+            SKP_Silk_resample_2_1_coarse( samplesOut_tmp, psDec-&gt;resampleState, samplesOut, scratch, *nSamplesOut );
+        } else if( psDec-&gt;fs_kHz == 8 &amp;&amp; decControl-&gt;sampleRate == 12000 ) { 
+            /* Resample from 8 kHz to 12 kHz */
+            SKP_Silk_resample_3_2( samplesOut, psDec-&gt;resampleState, samplesOut_tmp, *nSamplesOut );
+        }
+
+        *nSamplesOut = SKP_DIV32( ( SKP_int32 )*nSamplesOut * decControl-&gt;sampleRate, psDec-&gt;fs_kHz * 1000 );
+    }
+
+    /* Copy all parameters that are needed out of internal structure to the control stucture */
+    decControl-&gt;frameSize                 = ( SKP_int )psDec-&gt;frame_length;
+    decControl-&gt;framesPerPacket           = ( SKP_int )psDec-&gt;nFramesInPacket;
+    decControl-&gt;inBandFECOffset           = ( SKP_int )psDec-&gt;inband_FEC_offset;
+    decControl-&gt;moreInternalDecoderFrames = ( SKP_int )psDec-&gt;moreInternalDecoderFrames;
+
+    return ret;
+}
+
+/* Function to find LBRR information in a packet */
+void SKP_Silk_SDK_search_for_LBRR(
+    void                                           *decState,      /* I:   Decoder state, to select bitstream version only */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int16                     nBytesIn,       /* I:   Number of input Bytes                           */
+    SKP_int                             lost_offset,    /* I:   Offset from lost packet                         */
+    SKP_uint8                           *LBRRData,      /* O:   LBRR payload                                    */
+    SKP_int16                           *nLBRRBytes     /* O:   Number of LBRR Bytes                            */
+)
+{
+    SKP_Silk_decoder_state   *psDec;
+    SKP_Silk_decoder_state   sDec; // Local decoder state to avoid interfering with running decoder */
+    SKP_Silk_decoder_control sDecCtrl;
+    SKP_int i, TempQ[ MAX_FRAME_LENGTH ];
+
+    psDec = ( SKP_Silk_decoder_state * )decState;
+
+    if( lost_offset &lt; 1 || lost_offset &gt; MAX_LBRR_DELAY ) {
+        /* No useful FEC in this packet */
+        *nLBRRBytes = 0;
+        return;
+    }
+
+    sDec.nFramesDecoded = 0;
+    sDec.fs_kHz         = 0; /* Force update parameters LPC_order etc */
+    SKP_memset( sDec.prevNLSF_Q15, 0, MAX_LPC_ORDER * sizeof( SKP_int ) );
+    SKP_Silk_range_dec_init( &amp;sDec.sRC, inData, ( SKP_int32 )nBytesIn );
+
+    if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) { /* Silk_v4 payload */
+        /* Decode all parameter indices for the whole packet*/
+        SKP_Silk_decode_indices_v4( &amp;sDec );
+
+        /* Is there usable LBRR in this packet */
+        *nLBRRBytes = 0;
+        if( ( sDec.FrameTermination - 1 ) &amp; lost_offset &amp;&amp; sDec.FrameTermination &gt; 0 &amp;&amp; sDec.nBytesLeft &gt;= 0 ) {
+            /* The wanted FEC is present in the packet */
+            for( i = 0; i &lt; sDec.nFramesInPacket; i++ ) {
+                SKP_Silk_decode_parameters_v4( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
+                
+                if( sDec.nBytesLeft &lt;= 0 || sDec.sRC.error ) {
+                    /* Corrupt stream */
+                    LBRRData = NULL;
+                    *nLBRRBytes = 0;
+                    break;
+                } else {
+                    sDec.nFramesDecoded++;
+                }
+            }
+        
+            if( LBRRData != NULL ) {
+                /* The wanted FEC is present in the packet */
+                *nLBRRBytes = sDec.nBytesLeft;
+                SKP_memcpy( LBRRData, &amp;inData[ nBytesIn - sDec.nBytesLeft ], sDec.nBytesLeft * sizeof( SKP_uint8 ) );
+            }
+        }
+    } else { /* Silk_v3 payload */
+        while(1) {
+            SKP_Silk_decode_parameters( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
+
+            if( sDec.sRC.error ) {
+                /* Corrupt stream */
+                *nLBRRBytes = 0;
+                return;
+            };
+
+            if( ( sDec.FrameTermination - 1 ) &amp; lost_offset &amp;&amp; sDec.FrameTermination &gt; 0 &amp;&amp; sDec.nBytesLeft &gt;= 0 ) {
+                /* The wanted FEC is present in the packet */
+                *nLBRRBytes = sDec.nBytesLeft;
+                SKP_memcpy( LBRRData, &amp;inData[ nBytesIn - sDec.nBytesLeft ], sDec.nBytesLeft * sizeof( SKP_uint8 ) );
+                break;
+            }
+            if( sDec.nBytesLeft &gt; 0 &amp;&amp; sDec.FrameTermination == SKP_SILK_MORE_FRAMES ) {
+                sDec.nFramesDecoded++;
+            } else {
+                LBRRData = NULL;
+                *nLBRRBytes = 0;
+                break;
+            }
+        }
+    }
+}
+
+/* Getting type of content for a packet */
+void SKP_Silk_SDK_get_TOC(
+    void                                *decState,      /* I/O: Decoder state, to select bitstream version only */
+    const SKP_uint8                     *inData,        /* I:   Encoded input vector                            */
+    const SKP_int16                     nBytesIn,       /* I:   Number of input bytes                           */
+    SKP_Silk_TOC_struct                 *Silk_TOC       /* O:   Type of content                                 */
+)
+{
+    SKP_Silk_decoder_state      *psDec;
+    SKP_Silk_decoder_state      sDec; // Local Decoder state to avoid interfering with running decoder */
+    SKP_Silk_decoder_control    sDecCtrl;
+    SKP_int i, TempQ[ MAX_FRAME_LENGTH ];
+
+    psDec = (SKP_Silk_decoder_state *)decState;
+
+    sDec.nFramesDecoded = 0;
+    sDec.fs_kHz         = 0; /* Force update parameters LPC_order etc */
+    SKP_Silk_range_dec_init( &amp;sDec.sRC, inData, ( SKP_int32 )nBytesIn );
+
+    if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) { /* Silk_v4 payload */
+        /* Decode all parameter indices for the whole packet*/
+        SKP_Silk_decode_indices_v4( &amp;sDec );
+        
+        if( sDec.nFramesInPacket &gt; SILK_MAX_FRAMES_PER_PACKET || sDec.sRC.error ) {
+            /* Corrupt packet */
+            SKP_memset( Silk_TOC, 0, sizeof( SKP_Silk_TOC_struct ) );
+            Silk_TOC-&gt;corrupt = 1;
+        } else {
+            Silk_TOC-&gt;corrupt = 0;
+            Silk_TOC-&gt;framesInPacket = sDec.nFramesInPacket;
+            Silk_TOC-&gt;fs_kHz         = sDec.fs_kHz;
+            if( sDec.FrameTermination == SKP_SILK_LAST_FRAME ) {
+                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination;
+            } else {
+                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination - 1;
+            }
+            /* Copy data */
+            for( i = 0; i &lt; sDec.nFramesInPacket; i++ ) {
+                Silk_TOC-&gt;vadFlags[ i ]     = sDec.vadFlagBuf[ i ];
+                Silk_TOC-&gt;sigtypeFlags[ i ] = sDec.sigtype[ i ];
+            }
+        }
+    } else { /* Silk_v3 payload */
+        Silk_TOC-&gt;corrupt = 0;
+        while( 1 ) {
+            SKP_Silk_decode_parameters( &amp;sDec, &amp;sDecCtrl, TempQ, 0 );
+            
+            Silk_TOC-&gt;vadFlags[     sDec.nFramesDecoded ] = sDec.vadFlag;
+            Silk_TOC-&gt;sigtypeFlags[ sDec.nFramesDecoded ] = sDecCtrl.sigtype;
+
+            if( sDec.sRC.error ) {
+                /* Corrupt stream */
+                Silk_TOC-&gt;corrupt = 1;
+                break;
+            };
+
+            if( sDec.nBytesLeft &gt; 0 &amp;&amp; sDec.FrameTermination == SKP_SILK_MORE_FRAMES ) {
+                sDec.nFramesDecoded++;
+            } else {
+                break;
+            }
+        }
+        if( Silk_TOC-&gt;corrupt || sDec.FrameTermination == SKP_SILK_MORE_FRAMES || 
+            sDec.nFramesInPacket &gt; SILK_MAX_FRAMES_PER_PACKET ) {
+            /* Corrupt packet */
+            SKP_memset( Silk_TOC, 0, sizeof( SKP_Silk_TOC_struct ) );
+            Silk_TOC-&gt;corrupt = 1;
+        } else {
+            Silk_TOC-&gt;framesInPacket = sDec.nFramesDecoded;
+            Silk_TOC-&gt;fs_kHz         = sDec.fs_kHz;
+            if( sDec.FrameTermination == SKP_SILK_LAST_FRAME ) {
+                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination;
+            } else {
+                Silk_TOC-&gt;inbandLBRR = sDec.FrameTermination - 1;
+            }
+        }
+    }
+}
+
+/**************************/
+/* Get the version number */
+/**************************/
+/* Return a pointer to string specifying the version */ 
+const char *SKP_Silk_SDK_get_version()
+{
+    static const char version[] = &quot;1.0.2&quot;;
+    return version;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_corec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_core.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_core.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_core.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,285 +1,256 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-
-
-
-
-
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/**********************************************************/
-/* Core Decoder. Performs inverse NSQ operation LTP + LPC */
-/**********************************************************/
-void SKP_Silk_decode_core(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state                               */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I    Decoder control                             */
-    SKP_int16                   xq[],               /* O    Decoded Speech                              */
-    const SKP_int               q[ MAX_FRAME_LENGTH ]/* I   Pulse signal                                */
-)
-{
-    SKP_int     i, k, lag = 0, start_idx, NLSF_interpolation_flag, sigtype, LTP_scale_Q14;
-    SKP_int16   *A_Q12, *B_Q14, *pxq, A_Q12_tmp[ MAX_LPC_ORDER ];
-    SKP_int16   sLTP[ MAX_FRAME_LENGTH ];
-    SKP_int32   Gain_Q16, *pred_lag_ptr, *pexc_Q10, *pres_Q10, LTP_pred_Q14, LPC_pred_Q10;
-    SKP_int32   rand_seed, offset_Q10, dither;
-    SKP_int32   vec_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ], Atmp;
-    SKP_int32   inv_gain_Q16, inv_gain_Q32, gain_adj_Q16, FiltState[MAX_LPC_ORDER];
-    SKP_assert( psDec-&gt;prev_inv_gain_Q16 != 0 );
-
-    offset_Q10 = SKP_Silk_Quantization_Offsets_Q10[ psDecCtrl-&gt;sigtype ][ psDecCtrl-&gt;QuantOffsetType ];
-
-    if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; ( 1 &lt;&lt; 2 ) ) {
-        NLSF_interpolation_flag = 1;
-    } else {
-        NLSF_interpolation_flag = 0;
-    }
-
-
-    /* Decode excitation */
-    rand_seed = psDecCtrl-&gt;Seed;
-    for( i = 0; i &lt; psDec-&gt;frame_length; i++ ) {
-        rand_seed = SKP_RAND( rand_seed );
-        /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
-        dither = SKP_RSHIFT( rand_seed, 31 );
-
-        psDec-&gt;exc_Q10[ i ] = SKP_LSHIFT( (SKP_int32)q[ i ], 10 ) + offset_Q10;
-        psDec-&gt;exc_Q10[ i ] = ( psDec-&gt;exc_Q10[ i ] ^ dither ) - dither;
-
-        rand_seed += q[ i ];
-    }
-
-
-
-
-
-
-    pexc_Q10 = psDec-&gt;exc_Q10;
-    pres_Q10 = psDec-&gt;res_Q10;
-    pxq      = &amp;psDec-&gt;outBuf[ psDec-&gt;frame_length ];
-    psDec-&gt;sLTP_buf_idx = psDec-&gt;frame_length;
-    /* Loop over subframes */
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        A_Q12    = psDecCtrl-&gt;PredCoef_Q12[ k &gt;&gt; 1 ];
-        /* Preload LPC coeficients to array on stack. Gives small performance gain */
-        SKP_memcpy( A_Q12_tmp, A_Q12, psDec-&gt;LPC_order * sizeof(SKP_int16) );
-        B_Q14    = &amp;psDecCtrl-&gt;LTPCoef_Q14[ k * LTP_ORDER ];
-        Gain_Q16 = psDecCtrl-&gt;Gains_Q16[ k ];
-        LTP_scale_Q14 = psDecCtrl-&gt;LTP_scale_Q14;
-        sigtype       = psDecCtrl-&gt;sigtype;
-
-        inv_gain_Q16 = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gain_Q16, 1 ) );
-        inv_gain_Q16 = SKP_min( inv_gain_Q16, SKP_int16_MAX );
-
-        /* Calculate Gain adjustment factor */
-        gain_adj_Q16 = (SKP_int32)1 &lt;&lt; 16;
-        if( inv_gain_Q16 != psDec-&gt;prev_inv_gain_Q16 ) {
-            gain_adj_Q16 =  SKP_DIV32_varQ( inv_gain_Q16, psDec-&gt;prev_inv_gain_Q16, 16 );
-        }
-
-        /* Avoid abroupt transition from voiced PLC to unvoiced normal decoding */
-        if( psDec-&gt;lossCnt &amp;&amp; psDec-&gt;prev_sigtype == SIG_TYPE_VOICED &amp;&amp;
-            psDecCtrl-&gt;sigtype == SIG_TYPE_UNVOICED &amp;&amp; k &lt; (NB_SUBFR &gt;&gt; 1)) {
-
-            SKP_memset( B_Q14, 0, LTP_ORDER * sizeof(SKP_int16) );
-            B_Q14[ LTP_ORDER/2 ] = (SKP_int16)1 &lt;&lt; 12; /* 0.25 */
-
-            sigtype = SIG_TYPE_VOICED;
-            psDecCtrl-&gt;pitchL[ k ] = psDec-&gt;lagPrev;
-            LTP_scale_Q14 = (SKP_int)1 &lt;&lt; 14;
-        }
-        if( sigtype == SIG_TYPE_VOICED ) {
-            /* Voiced */
-
-            lag = psDecCtrl-&gt;pitchL[ k ];
-            /* Re-whitening */
-            if( ( k &amp; ( 3 - SKP_LSHIFT( NLSF_interpolation_flag, 1 ) ) ) == 0 ) {
-                /* Rewhiten with new A coefs */
-                start_idx = psDec-&gt;frame_length - lag - psDec-&gt;LPC_order - LTP_ORDER / 2;
-                start_idx = SKP_LIMIT( start_idx, 0, psDec-&gt;frame_length - psDec-&gt;LPC_order ); // Limit
-
-                SKP_Silk_MA_Prediction( &amp;psDec-&gt;outBuf[ start_idx + k * ( psDec-&gt;frame_length &gt;&gt; 2 ) ],
-                    A_Q12, FiltState, sLTP + start_idx, psDec-&gt;frame_length - start_idx, psDec-&gt;LPC_order );
-
-                /* After rewhitening the LTP state is un-scaled */
-
-
-
-
-
-                inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
-                if( k == 0 ) {
-                    /* Do LTP downscaling */
-                    inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, psDecCtrl-&gt;LTP_scale_Q14 ), 2 );
-                }
-                for( i = 0; i &lt; (lag + LTP_ORDER/2); i++ ) {
-                    psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] = SKP_SMULWB( inv_gain_Q32, sLTP[ psDec-&gt;frame_length - i - 1 ] );
-                }
-            } else {
-                /* Update LTP state when Gain changes */
-                if( gain_adj_Q16 != (SKP_int32)1 &lt;&lt; 16 ) {
-                    for( i = 0; i &lt; ( lag + LTP_ORDER / 2 ); i++ ) {
-                        psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] = SKP_SMULWW( gain_adj_Q16, psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] );
-                    }
-                }
-            }
-        }
-
-        /* scale short term state */
-        for( i = 0; i &lt; MAX_LPC_ORDER; i++ ) {
-            psDec-&gt;sLPC_Q14[ i ] = SKP_SMULWW( gain_adj_Q16, psDec-&gt;sLPC_Q14[ i ] );
-        }
-
-        /* save inv_gain */
-        SKP_assert( inv_gain_Q16 != 0 );
-        psDec-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
-
-
-        /* Long-term prediction */
-        if( sigtype == SIG_TYPE_VOICED ) {
-            /* Setup pointer */
-            pred_lag_ptr = &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
-            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-                /* Unrolled loop */
-                LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], B_Q14[ 0 ] );
-                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], B_Q14[ 1 ] );
-                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], B_Q14[ 2 ] );
-                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], B_Q14[ 3 ] );
-                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], B_Q14[ 4 ] );
-                pred_lag_ptr++;
-
-                /* Generate LPC residual */
-                pres_Q10[ i ] = SKP_ADD32( pexc_Q10[ i ], SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );
-
-                /* Update states */
-                psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx ] = SKP_LSHIFT( pres_Q10[ i ], 6 );
-                psDec-&gt;sLTP_buf_idx++;
-            }
-
-
-
-
-
-        } else {
-            SKP_memcpy( pres_Q10, pexc_Q10, psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
-        }
-
-
-        /* Short term prediction */
-        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
-        if( psDec-&gt;LPC_order == 16 ) {
-            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-                /* unrolled */
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
-                LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 2 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 4 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 6 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 8 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 10 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 11 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 12 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 12 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 13 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 14 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 14 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 15 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 16 ], Atmp );
-
-                /* Add prediction to LPC residual */
-                vec_Q10[ i ] = SKP_ADD32( pres_Q10[ i ], LPC_pred_Q10 );
-
-                /* Update states */
-                psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( vec_Q10[ i ], 4 );
-            }
-        } else {
-            SKP_assert( psDec-&gt;LPC_order == 10 );
-            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-                /* unrolled */
-
-
-
-
-
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
-                LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 2 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 4 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 6 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
-                Atmp = *( (SKP_int32*)&amp;A_Q12_tmp[ 8 ] );
-                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
-                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
-
-                /* Add prediction to LPC residual */
-                vec_Q10[ i ] = SKP_ADD32( pres_Q10[ i ], LPC_pred_Q10 );
-
-                /* Update states */
-                psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( vec_Q10[ i ], 4 );
-            }
-        }
-
-        /* Scale with Gain */
-        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
-            pxq[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( vec_Q10[ i ], Gain_Q16 ), 10 ) );
-        }
-
-        /* Update LPC filter state */
-        SKP_memcpy( psDec-&gt;sLPC_Q14, &amp;psDec-&gt;sLPC_Q14[ psDec-&gt;subfr_length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
-        pexc_Q10 += psDec-&gt;subfr_length;
-        pres_Q10 += psDec-&gt;subfr_length;
-        pxq      += psDec-&gt;subfr_length;
-    }
-
-    /* Copy to output */
-    SKP_memcpy( xq, &amp;psDec-&gt;outBuf[ psDec-&gt;frame_length ], psDec-&gt;frame_length * sizeof( SKP_int16 ) );
-
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/**********************************************************/
+/* Core decoder. Performs inverse NSQ operation LTP + LPC */
+/**********************************************************/
+void SKP_Silk_decode_core(
+    SKP_Silk_decoder_state      *psDec,                             /* I/O  Decoder state               */
+    SKP_Silk_decoder_control    *psDecCtrl,                         /* I    Decoder control             */
+    SKP_int16                   xq[],                               /* O    Decoded speech              */
+    const SKP_int               q[ MAX_FRAME_LENGTH ]               /* I    Pulse signal                */
+)
+{
+    SKP_int     i, k, lag = 0, start_idx, NLSF_interpolation_flag, sigtype, LTP_scale_Q14;
+    SKP_int16   *A_Q12, *B_Q14, *pxq, A_Q12_tmp[ MAX_LPC_ORDER ];
+    SKP_int16   sLTP[ MAX_FRAME_LENGTH ];
+    SKP_int32   Gain_Q16, *pred_lag_ptr, *pexc_Q10, *pres_Q10, LTP_pred_Q14, LPC_pred_Q10;
+    SKP_int32   rand_seed, offset_Q10, dither;
+    SKP_int32   vec_Q10[ MAX_FRAME_LENGTH / NB_SUBFR ], Atmp;
+    SKP_int32   inv_gain_Q16, inv_gain_Q32, gain_adj_Q16, FiltState[ MAX_LPC_ORDER ];
+    SKP_assert( psDec-&gt;prev_inv_gain_Q16 != 0 );
+    
+    offset_Q10 = SKP_Silk_Quantization_Offsets_Q10[ psDecCtrl-&gt;sigtype ][ psDecCtrl-&gt;QuantOffsetType ];
+
+    if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; ( 1 &lt;&lt; 2 ) ) {
+        NLSF_interpolation_flag = 1;
+    } else {
+        NLSF_interpolation_flag = 0;
+    }
+
+
+    /* Decode excitation */
+    rand_seed = psDecCtrl-&gt;Seed;
+    for( i = 0; i &lt; psDec-&gt;frame_length; i++ ) {
+        rand_seed = SKP_RAND( rand_seed );
+        /* dither = rand_seed &lt; 0 ? 0xFFFFFFFF : 0; */
+        dither = SKP_RSHIFT( rand_seed, 31 );
+
+        psDec-&gt;exc_Q10[ i ] = SKP_LSHIFT( ( SKP_int32 )q[ i ], 10 ) + offset_Q10;
+        psDec-&gt;exc_Q10[ i ] = ( psDec-&gt;exc_Q10[ i ] ^ dither ) - dither;
+
+        rand_seed += q[ i ];
+    }
+
+
+    pexc_Q10 = psDec-&gt;exc_Q10;
+    pres_Q10 = psDec-&gt;res_Q10;
+    pxq      = &amp;psDec-&gt;outBuf[ psDec-&gt;frame_length ];
+    psDec-&gt;sLTP_buf_idx = psDec-&gt;frame_length;
+    /* Loop over subframes */
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        A_Q12 = psDecCtrl-&gt;PredCoef_Q12[ k &gt;&gt; 1 ];
+
+        /* Preload LPC coeficients to array on stack. Gives small performance gain */        
+        SKP_memcpy( A_Q12_tmp, A_Q12, psDec-&gt;LPC_order * sizeof( SKP_int16 ) ); 
+        B_Q14         = &amp;psDecCtrl-&gt;LTPCoef_Q14[ k * LTP_ORDER ];
+        Gain_Q16      = psDecCtrl-&gt;Gains_Q16[ k ];
+        LTP_scale_Q14 = psDecCtrl-&gt;LTP_scale_Q14;
+        sigtype       = psDecCtrl-&gt;sigtype;
+
+        inv_gain_Q16  = SKP_DIV32( SKP_int32_MAX, SKP_RSHIFT( Gain_Q16, 1 ) );
+        inv_gain_Q16  = SKP_min( inv_gain_Q16, SKP_int16_MAX );
+
+        /* Calculate Gain adjustment factor */
+        gain_adj_Q16 = ( SKP_int32 )1 &lt;&lt; 16;
+        if( inv_gain_Q16 != psDec-&gt;prev_inv_gain_Q16 ) {
+            gain_adj_Q16 =  SKP_DIV32_varQ( inv_gain_Q16, psDec-&gt;prev_inv_gain_Q16, 16 );
+        }
+
+        /* Avoid abrupt transition from voiced PLC to unvoiced normal decoding */
+        if( psDec-&gt;lossCnt &amp;&amp; psDec-&gt;prev_sigtype == SIG_TYPE_VOICED &amp;&amp;
+            psDecCtrl-&gt;sigtype == SIG_TYPE_UNVOICED &amp;&amp; k &lt; ( NB_SUBFR &gt;&gt; 1 ) ) {
+            
+            SKP_memset( B_Q14, 0, LTP_ORDER * sizeof( SKP_int16 ) );
+            B_Q14[ LTP_ORDER/2 ] = ( SKP_int16 )1 &lt;&lt; 12; /* 0.25 */
+        
+            sigtype = SIG_TYPE_VOICED;
+            psDecCtrl-&gt;pitchL[ k ] = psDec-&gt;lagPrev;
+            LTP_scale_Q14 = ( SKP_int )1 &lt;&lt; 14;
+        }
+        if( sigtype == SIG_TYPE_VOICED ) {
+            /* Voiced */
+            
+            lag = psDecCtrl-&gt;pitchL[ k ];
+            /* Re-whitening */
+            if( ( k &amp; ( 3 - SKP_LSHIFT( NLSF_interpolation_flag, 1 ) ) ) == 0 ) {
+                /* Rewhiten with new A coefs */
+                start_idx = psDec-&gt;frame_length - lag - psDec-&gt;LPC_order - LTP_ORDER / 2;
+                start_idx = SKP_LIMIT( start_idx, 0, psDec-&gt;frame_length - psDec-&gt;LPC_order );
+
+                SKP_Silk_MA_Prediction( &amp;psDec-&gt;outBuf[ start_idx + k * ( psDec-&gt;frame_length &gt;&gt; 2 ) ], 
+                    A_Q12, FiltState, sLTP + start_idx, psDec-&gt;frame_length - start_idx, psDec-&gt;LPC_order );
+
+                /* After rewhitening the LTP state is unscaled */
+                inv_gain_Q32 = SKP_LSHIFT( inv_gain_Q16, 16 );
+                if( k == 0 ) {
+                    /* Do LTP downscaling */
+                    inv_gain_Q32 = SKP_LSHIFT( SKP_SMULWB( inv_gain_Q32, psDecCtrl-&gt;LTP_scale_Q14 ), 2 );
+                }
+                for( i = 0; i &lt; (lag + LTP_ORDER/2); i++ ) {
+                    psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] = SKP_SMULWB( inv_gain_Q32, sLTP[ psDec-&gt;frame_length - i - 1 ] );
+                }
+            } else {
+                /* Update LTP state when Gain changes */
+                if( gain_adj_Q16 != ( SKP_int32 )1 &lt;&lt; 16 ) {
+                    for( i = 0; i &lt; ( lag + LTP_ORDER / 2 ); i++ ) {
+                        psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] = SKP_SMULWW( gain_adj_Q16, psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - i - 1 ] );
+                    }
+                }
+            }
+        }
+        
+        /* Scale short term state */
+        for( i = 0; i &lt; MAX_LPC_ORDER; i++ ) {
+            psDec-&gt;sLPC_Q14[ i ] = SKP_SMULWW( gain_adj_Q16, psDec-&gt;sLPC_Q14[ i ] );
+        }
+
+        /* Save inv_gain */
+        SKP_assert( inv_gain_Q16 != 0 );
+        psDec-&gt;prev_inv_gain_Q16 = inv_gain_Q16;
+
+
+        /* Long-term prediction */
+        if( sigtype == SIG_TYPE_VOICED ) {
+            /* Setup pointer */
+            pred_lag_ptr = &amp;psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx - lag + LTP_ORDER / 2 ];
+            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+                /* Unrolled loop */
+                LTP_pred_Q14 = SKP_SMULWB(               pred_lag_ptr[  0 ], B_Q14[ 0 ] );
+                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], B_Q14[ 1 ] );
+                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], B_Q14[ 2 ] );
+                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], B_Q14[ 3 ] );
+                LTP_pred_Q14 = SKP_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], B_Q14[ 4 ] );
+                pred_lag_ptr++;
+            
+                /* Generate LPC residual */ 
+                pres_Q10[ i ] = SKP_ADD32( pexc_Q10[ i ], SKP_RSHIFT_ROUND( LTP_pred_Q14, 4 ) );
+            
+                /* Update states */
+                psDec-&gt;sLTP_Q16[ psDec-&gt;sLTP_buf_idx ] = SKP_LSHIFT( pres_Q10[ i ], 6 );
+                psDec-&gt;sLTP_buf_idx++;
+            }
+        } else {
+            SKP_memcpy( pres_Q10, pexc_Q10, psDec-&gt;subfr_length * sizeof( SKP_int32 ) );
+        }
+
+
+        /* Short term prediction */
+        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+        /* SMLAWB and SMLAWT instructions. On a big-endian CPU the two int16 variables would be     */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+        /* the SMLAWB and SMLAWT instructions should solve the problem.                             */
+        if( psDec-&gt;LPC_order == 16 ) {
+            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+                /* unrolled */
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
+                LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 2 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 4 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 6 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 8 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 10 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 11 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 12 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 12 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 13 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 14 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 14 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 15 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 16 ], Atmp );
+                
+                /* Add prediction to LPC residual */
+                vec_Q10[ i ] = SKP_ADD32( pres_Q10[ i ], LPC_pred_Q10 );
+                
+                /* Update states */
+                psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( vec_Q10[ i ], 4 );
+            }
+        } else {
+            SKP_assert( psDec-&gt;LPC_order == 10 );
+            for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+                /* unrolled */
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 0 ] );    /* read two coefficients at once */
+                LPC_pred_Q10 = SKP_SMULWB(               psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  1 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  2 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 2 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  3 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  4 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 4 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  5 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  6 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 6 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  7 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  8 ], Atmp );
+                Atmp = *( ( SKP_int32* )&amp;A_Q12_tmp[ 8 ] );
+                LPC_pred_Q10 = SKP_SMLAWB( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i -  9 ], Atmp );
+                LPC_pred_Q10 = SKP_SMLAWT( LPC_pred_Q10, psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i - 10 ], Atmp );
+                
+                /* Add prediction to LPC residual */
+                vec_Q10[ i ] = SKP_ADD32( pres_Q10[ i ], LPC_pred_Q10 );
+                
+                /* Update states */
+                psDec-&gt;sLPC_Q14[ MAX_LPC_ORDER + i ] = SKP_LSHIFT( vec_Q10[ i ], 4 );
+            }
+        }
+
+        /* Scale with Gain */
+        for( i = 0; i &lt; psDec-&gt;subfr_length; i++ ) {
+            pxq[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SMULWW( vec_Q10[ i ], Gain_Q16 ), 10 ) );
+        }
+
+        /* Update LPC filter state */
+        SKP_memcpy( psDec-&gt;sLPC_Q14, &amp;psDec-&gt;sLPC_Q14[ psDec-&gt;subfr_length ], MAX_LPC_ORDER * sizeof( SKP_int32 ) );
+        pexc_Q10 += psDec-&gt;subfr_length;
+        pres_Q10 += psDec-&gt;subfr_length;
+        pxq      += psDec-&gt;subfr_length;
+    }
+    
+    /* Copy to output */
+    SKP_memcpy( xq, &amp;psDec-&gt;outBuf[ psDec-&gt;frame_length ], psDec-&gt;frame_length * sizeof( SKP_int16 ) );
+
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_framec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_frame.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_frame.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_frame.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,193 +1,167 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-#include &quot;SKP_Silk_main.h&quot;
-#include &quot;SKP_Silk_PLC.h&quot;
-
-/****************/
-/* Decode frame */
-/****************/
-SKP_int SKP_Silk_decode_frame(
-    SKP_Silk_decoder_state          *psDec,             /* I/O  Pointer to Silk decoder state               */
-    SKP_int16                       pOut[],             /* O    Pointer to output speech frame              */
-    SKP_int16                       *pN,                /* O    Pointer to size of output frame             */
-    const SKP_uint8                 pCode[],            /* I    Pointer to payload                          */
-    const SKP_int                   nBytes,             /* I    Payload length                              */
-    SKP_int                         action,             /* I    Action from Jitter Buffer                   */
-    SKP_int                         *decBytes           /* O    Used bytes to decode this frame             */
-)
-{
-    SKP_Silk_decoder_control sDecCtrl;
-    SKP_int         L, fs_Khz_old, LPC_order_old, ret = 0;
-    SKP_int         Pulses[ MAX_FRAME_LENGTH ];
-
-
-
-
-
-
-
-    L = psDec-&gt;frame_length;
-    sDecCtrl.LTP_scale_Q14 = 0;
-
-    /* Safety checks */
-    SKP_assert( L &gt; 0 &amp;&amp; L &lt;= MAX_FRAME_LENGTH );
-
-    /********************************************/
-    /* Decode Frame if packet is not lost  */
-    /********************************************/
-    *decBytes = 0;
-    if( action == 0 ) {
-        /********************************************/
-        /* Initialize arithmetic coder              */
-        /********************************************/
-        fs_Khz_old    = psDec-&gt;fs_kHz;
-        LPC_order_old = psDec-&gt;LPC_order;
-        if( psDec-&gt;nFramesDecoded == 0 ) {
-            /* Initialize range decoder state */
-            SKP_Silk_range_dec_init( &amp;psDec-&gt;sRC, pCode, nBytes );
-
-            if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) {
-                SKP_Silk_decode_indices_v4( psDec );
-            }
-        }
-
-        /********************************************/
-        /* Decode parameters and pulse signal       */
-        /********************************************/
-        if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) {
-            SKP_Silk_decode_parameters_v4( psDec, &amp;sDecCtrl, Pulses, 1 );
-        } else {
-            SKP_Silk_decode_parameters( psDec, &amp;sDecCtrl, Pulses, 1 );
-        }
-
-
-        if( psDec-&gt;sRC.error ) {
-            psDec-&gt;nBytesLeft = 0;
-
-            action              = 1; /* PLC operation */
-            psDec-&gt;fs_kHz       = fs_Khz_old;    /* revert fs if changed in decode_parameters */
-            psDec-&gt;LPC_order    = LPC_order_old; /* revert lpc_order if changed in decode_parameters */
-            psDec-&gt;frame_length = fs_Khz_old * FRAME_LENGTH_MS;
-            psDec-&gt;subfr_length = fs_Khz_old * FRAME_LENGTH_MS / NB_SUBFR;
-
-            /* Avoid crashing */
-            *decBytes = psDec-&gt;sRC.bufferLength;
-
-            if( psDec-&gt;sRC.error == RANGE_CODER_DEC_PAYLOAD_TOO_LONG ) {
-
-
-
-
-
-                ret = SKP_SILK_DEC_PAYLOAD_TOO_LARGE;
-            } else {
-                ret = SKP_SILK_DEC_PAYLOAD_ERROR;
-            }
-        } else {
-            *decBytes = psDec-&gt;sRC.bufferLength - psDec-&gt;nBytesLeft;
-            psDec-&gt;nFramesDecoded++;
-
-            /* Update lengths. Sampling frequency could have changed */
-            L = psDec-&gt;frame_length;
-
-            /********************************************************/
-            /* Run inverse NSQ                                      */
-            /********************************************************/
-            SKP_Silk_decode_core( psDec, &amp;sDecCtrl, pOut, Pulses );
-
-            /********************************************************/
-            /* Update PLC state                                     */
-            /********************************************************/
-            SKP_Silk_PLC( psDec, &amp;sDecCtrl, pOut, L, action );
-
-            psDec-&gt;lossCnt = 0;
-            psDec-&gt;prev_sigtype = sDecCtrl.sigtype;
-
-            /* A frame has been decoded without errors */
-            psDec-&gt;first_frame_after_reset = 0;
-        }
-    }
-    /*************************************************************/
-    /* Generate Concealment Frame if packet is lost, or corrupt  */
-    /*************************************************************/
-    if( action == 1 ) {
-        /* Handle packet loss by extrapolation */
-        SKP_Silk_PLC( psDec, &amp;sDecCtrl, pOut, L, action );
-        psDec-&gt;lossCnt++;
-
-    }
-
-    /*************************/
-    /* Update output buffer. */
-    /*************************/
-    SKP_memcpy( psDec-&gt;outBuf, pOut, L * sizeof( SKP_int16 ) );
-
-    /****************************************************************/
-    /* Ensure smooth connection of extrapolated and good frames     */
-    /****************************************************************/
-    SKP_Silk_PLC_glue_frames( psDec, &amp;sDecCtrl, pOut, L );
-
-
-
-
-
-
-    /************************************************/
-    /* Comfort noise generation / estimation        */
-    /************************************************/
-    SKP_Silk_CNG( psDec, &amp;sDecCtrl, pOut , L );
-
-    /********************************************/
-    /* HP filter output                            */
-    /********************************************/
-    SKP_assert( ( ( psDec-&gt;fs_kHz == 12 ) &amp;&amp; ( L % 3 ) == 0 ) ||
-                ( ( psDec-&gt;fs_kHz != 12 ) &amp;&amp; ( L % 2 ) == 0 ) );
-    SKP_Silk_biquad( pOut, psDec-&gt;HP_B, psDec-&gt;HP_A, psDec-&gt;HPState, pOut, L );
-
-    /********************************************/
-    /* set output frame length                    */
-    /********************************************/
-    *pN = (SKP_int16)L;
-
-    /* Update some decoder state variables */
-    psDec-&gt;lagPrev = sDecCtrl.pitchL[ NB_SUBFR - 1 ];
-
-    return ret;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+
+#include &quot;SKP_Silk_main.h&quot;
+#include &quot;SKP_Silk_PLC.h&quot;
+
+/****************/
+/* Decode frame */
+/****************/
+SKP_int SKP_Silk_decode_frame(
+    SKP_Silk_decoder_state          *psDec,             /* I/O  Pointer to Silk decoder state               */
+    SKP_int16                       pOut[],             /* O    Pointer to output speech frame              */
+    SKP_int16                       *pN,                /* O    Pointer to size of output frame             */
+    const SKP_uint8                 pCode[],            /* I    Pointer to payload                          */
+    const SKP_int                   nBytes,             /* I    Payload length                              */
+    SKP_int                         action,             /* I    Action from Jitter Buffer                   */
+    SKP_int                         *decBytes           /* O    Used bytes to decode this frame             */
+)
+{
+    SKP_Silk_decoder_control sDecCtrl;
+    SKP_int         L, fs_Khz_old, LPC_order_old, ret = 0;
+    SKP_int         Pulses[ MAX_FRAME_LENGTH ];
+
+
+    L = psDec-&gt;frame_length;
+    sDecCtrl.LTP_scale_Q14 = 0;
+    
+    /* Safety checks */
+    SKP_assert( L &gt; 0 &amp;&amp; L &lt;= MAX_FRAME_LENGTH );
+
+    /********************************************/
+    /* Decode Frame if packet is not lost  */
+    /********************************************/
+    *decBytes = 0;
+    if( action == 0 ) {
+        /********************************************/
+        /* Initialize arithmetic coder              */
+        /********************************************/
+        fs_Khz_old    = psDec-&gt;fs_kHz;
+        LPC_order_old = psDec-&gt;LPC_order;
+        if( psDec-&gt;nFramesDecoded == 0 ) {
+            /* Initialize range decoder state */
+            SKP_Silk_range_dec_init( &amp;psDec-&gt;sRC, pCode, nBytes );
+        
+            if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) {
+                SKP_Silk_decode_indices_v4( psDec );
+            }
+        }
+
+        /********************************************/
+        /* Decode parameters and pulse signal       */
+        /********************************************/
+        if( psDec-&gt;bitstream_v == BIT_STREAM_V4 ) {
+            SKP_Silk_decode_parameters_v4( psDec, &amp;sDecCtrl, Pulses, 1 );
+        } else {
+            SKP_Silk_decode_parameters( psDec, &amp;sDecCtrl, Pulses, 1 );
+        }
+
+
+        if( psDec-&gt;sRC.error ) {
+            psDec-&gt;nBytesLeft = 0;
+
+            action              = 1; /* PLC operation */
+            psDec-&gt;fs_kHz       = fs_Khz_old;    /* revert fs if changed in decode_parameters */
+            psDec-&gt;LPC_order    = LPC_order_old; /* revert lpc_order if changed in decode_parameters */
+            psDec-&gt;frame_length = fs_Khz_old * FRAME_LENGTH_MS;
+            psDec-&gt;subfr_length = fs_Khz_old * FRAME_LENGTH_MS / NB_SUBFR;
+
+            /* Avoid crashing */
+            *decBytes = psDec-&gt;sRC.bufferLength;
+
+            if( psDec-&gt;sRC.error == RANGE_CODER_DEC_PAYLOAD_TOO_LONG ) {
+                ret = SKP_SILK_DEC_PAYLOAD_TOO_LARGE;
+            } else {
+                ret = SKP_SILK_DEC_PAYLOAD_ERROR;
+            }
+        } else {
+            *decBytes = psDec-&gt;sRC.bufferLength - psDec-&gt;nBytesLeft;
+            psDec-&gt;nFramesDecoded++;
+        
+            /* Update lengths. Sampling frequency could have changed */
+            L = psDec-&gt;frame_length;
+
+            /********************************************************/
+            /* Run inverse NSQ                                      */
+            /********************************************************/
+            SKP_Silk_decode_core( psDec, &amp;sDecCtrl, pOut, Pulses );
+
+            /********************************************************/
+            /* Update PLC state                                     */
+            /********************************************************/
+            SKP_Silk_PLC( psDec, &amp;sDecCtrl, pOut, L, action );
+
+            psDec-&gt;lossCnt = 0;
+            psDec-&gt;prev_sigtype = sDecCtrl.sigtype;
+
+            /* A frame has been decoded without errors */
+            psDec-&gt;first_frame_after_reset = 0;
+        }
+    }
+    /*************************************************************/
+    /* Generate Concealment Frame if packet is lost, or corrupt  */
+    /*************************************************************/
+    if( action == 1 ) {
+        /* Handle packet loss by extrapolation */
+        SKP_Silk_PLC( psDec, &amp;sDecCtrl, pOut, L, action );
+        psDec-&gt;lossCnt++;
+    
+    }
+
+    /*************************/
+    /* Update output buffer. */
+    /*************************/
+    SKP_memcpy( psDec-&gt;outBuf, pOut, L * sizeof( SKP_int16 ) );
+
+    /****************************************************************/
+    /* Ensure smooth connection of extrapolated and good frames     */
+    /****************************************************************/
+    SKP_Silk_PLC_glue_frames( psDec, &amp;sDecCtrl, pOut, L );
+
+    /************************************************/
+    /* Comfort noise generation / estimation        */
+    /************************************************/
+    SKP_Silk_CNG( psDec, &amp;sDecCtrl, pOut , L );
+
+    /********************************************/
+    /* HP filter output                            */
+    /********************************************/
+    SKP_assert( ( ( psDec-&gt;fs_kHz == 12 ) &amp;&amp; ( L % 3 ) == 0 ) || 
+                ( ( psDec-&gt;fs_kHz != 12 ) &amp;&amp; ( L % 2 ) == 0 ) );
+    SKP_Silk_biquad( pOut, psDec-&gt;HP_B, psDec-&gt;HP_A, psDec-&gt;HPState, pOut, L );
+
+    /********************************************/
+    /* set output frame length                    */
+    /********************************************/
+    *pN = ( SKP_int16 )L;
+
+    /* Update some decoder state variables */
+    psDec-&gt;lagPrev = sDecCtrl.pitchL[ NB_SUBFR - 1 ];
+
+    return ret;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_indices_v4c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_indices_v4.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_indices_v4.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_indices_v4.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,221 +1,195 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-
-
-
-
-
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Decode indices from payload */
-void SKP_Silk_decode_indices_v4(
-    SKP_Silk_decoder_state      *psDec            /* I/O....State                              */
-)
-{
-    SKP_int   i, k, Ix, fs_kHz_dec, FramesInPacket = 0, FrameTermination;
-    SKP_int   sigtype, QuantOffsetType, seed_int, nBytesUsed;
-    SKP_int   decode_absolute_lagIndex, delta_lagIndex, prev_lagIndex = 0;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
-    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
-    /************************/
-    /* Decode sampling rate */
-    /************************/
-    /* only done for first frame of packet */
-    if( psDec-&gt;nFramesDecoded == 0 ) {
-        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_SamplingRates_CDF, SKP_Silk_SamplingRates_offset );
-
-        /* check that sampling rate is supported */
-        if( Ix &lt; 0 || Ix &gt; 3 ) {
-            psRC-&gt;error = RANGE_CODER_ILLEGAL_SAMPLING_RATE;
-            return;
-        }
-        fs_kHz_dec = SKP_Silk_SamplingRates_table[ Ix ];
-        SKP_Silk_decoder_set_fs( psDec, fs_kHz_dec );
-
-        FramesInPacket = 0;
-        FrameTermination = SKP_SILK_MORE_FRAMES;
-    }
-
-    while( FrameTermination == SKP_SILK_MORE_FRAMES ) {
-        /*********************************************/
-        /* Decode VAD flag                           */
-        /*********************************************/
-        SKP_Silk_range_decoder( &amp;psDec-&gt;vadFlagBuf[ FramesInPacket ], psRC, SKP_Silk_vadflag_CDF, SKP_Silk_vadflag_offset );
-
-        /*******************************************/
-        /* Decode signal type and quantizer offset */
-        /*******************************************/
-
-
-
-
-
-        if( FramesInPacket == 0 ) {
-            /* first frame in packet: independent coding */
-            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_CDF, SKP_Silk_type_offset_CDF_offset );
-        } else {
-            /* condidtional coding */
-            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_joint_CDF[ psDec-&gt;typeOffsetPrev ],
-                    SKP_Silk_type_offset_CDF_offset );
-        }
-        sigtype               = SKP_RSHIFT( Ix, 1 );
-        QuantOffsetType       = Ix &amp; 1;
-        psDec-&gt;typeOffsetPrev = Ix;
-
-        /****************/
-        /* Decode gains */
-        /****************/
-        /* first subframe */
-        if( FramesInPacket == 0 ) {
-            /* first frame in packet: independent coding */
-            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FramesInPacket ][ 0 ], psRC, SKP_Silk_gain_CDF[ sigtype ], SKP_Silk_gain_CDF_offset );
-        } else {
-            /* condidtional coding */
-            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FramesInPacket ][ 0 ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
-        }
-
-        /* remaining subframes */
-        for( i = 1; i &lt; NB_SUBFR; i++ ) {
-            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FramesInPacket ][ i ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
-        }
-
-        /**********************/
-        /* Decode LSF Indices */
-        /**********************/
-
-        /* Set pointer to LSF VQ CB for the current signal type */
-        psNLSF_CB = psDec-&gt;psNLSF_CB[ sigtype ];
-
-        /* Arithmetically decode NLSF path */
-        SKP_Silk_range_decoder_multi( psDec-&gt;NLSFIndices[ FramesInPacket ], psRC, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;MiddleIx, psNLSF_CB-&gt;nStages );
-
-        /***********************************/
-        /* Decode LSF interpolation factor */
-        /***********************************/
-        SKP_Silk_range_decoder( &amp;psDec-&gt;NLSFInterpCoef_Q2[ FramesInPacket ], psRC, SKP_Silk_NLSF_interpolation_factor_CDF,
-            SKP_Silk_NLSF_interpolation_factor_offset );
-
-        if( sigtype == SIG_TYPE_VOICED ) {
-            /*********************/
-            /* Decode pitch lags */
-
-
-
-
-
-            /*********************/
-            /* Get lag index */
-            decode_absolute_lagIndex = 1;
-            if( FramesInPacket &gt; 0 &amp;&amp; psDec-&gt;sigtype[ FramesInPacket - 1 ] == SIG_TYPE_VOICED ) {
-                /* Decode Delta index */
-                SKP_Silk_range_decoder( &amp;delta_lagIndex,psRC, SKP_Silk_pitch_delta_CDF,  SKP_Silk_pitch_delta_CDF_offset );
-                if( delta_lagIndex &lt; ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1 ) {
-                    delta_lagIndex = delta_lagIndex - MAX_DELTA_LAG;
-                    psDec-&gt;lagIndex[ FramesInPacket ] = prev_lagIndex + delta_lagIndex;
-                    decode_absolute_lagIndex = 0;
-                }
-            }
-            if( decode_absolute_lagIndex ) {
-                /* Absolute decoding */
-                if( psDec-&gt;fs_kHz == 8 ) {
-                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_lag_NB_CDF,  SKP_Silk_pitch_lag_NB_CDF_offset );
-                } else if( psDec-&gt;fs_kHz == 12 ) {
-                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_lag_MB_CDF,  SKP_Silk_pitch_lag_MB_CDF_offset );
-                } else if( psDec-&gt;fs_kHz == 16 ) {
-                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_lag_WB_CDF,  SKP_Silk_pitch_lag_WB_CDF_offset );
-                } else {
-                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_lag_SWB_CDF, SKP_Silk_pitch_lag_SWB_CDF_offset );
-                }
-            }
-            prev_lagIndex = psDec-&gt;lagIndex[ FramesInPacket ];
-
-            /* Get countour index */
-            if( psDec-&gt;fs_kHz == 8 ) {
-                /* Less codevectors used in 8 khz mode */
-                SKP_Silk_range_decoder( &amp;psDec-&gt;contourIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_contour_NB_CDF, SKP_Silk_pitch_contour_NB_CDF_offset );
-            } else {
-                /* Joint for 12, 16, and 24 khz */
-                SKP_Silk_range_decoder( &amp;psDec-&gt;contourIndex[ FramesInPacket ], psRC, SKP_Silk_pitch_contour_CDF, SKP_Silk_pitch_contour_CDF_offset );
-            }
-
-            /********************/
-            /* Decode LTP gains */
-            /********************/
-            /* Decode PERIndex value */
-            SKP_Silk_range_decoder( &amp;psDec-&gt;PERIndex[ FramesInPacket ], psRC, SKP_Silk_LTP_per_index_CDF, SKP_Silk_LTP_per_index_CDF_offset );
-
-            for( k = 0; k &lt; NB_SUBFR; k++ ) {
-                SKP_Silk_range_decoder( &amp;psDec-&gt;LTPIndex[ FramesInPacket ][ k ], psRC, SKP_Silk_LTP_gain_CDF_ptrs[ psDec-&gt;PERIndex[ FramesInPacket ] ],
-                    SKP_Silk_LTP_gain_CDF_offsets[ psDec-&gt;PERIndex[ FramesInPacket ] ] );
-            }
-
-            /**********************/
-            /* Decode LTP scaling */
-
-
-
-
-
-            /**********************/
-            SKP_Silk_range_decoder( &amp;psDec-&gt;LTP_scaleIndex[ FramesInPacket ], psRC, SKP_Silk_LTPscale_CDF, SKP_Silk_LTPscale_offset );
-        }
-
-        /***************/
-        /* Decode seed */
-        /***************/
-        SKP_Silk_range_decoder( &amp;seed_int, psRC, SKP_Silk_Seed_CDF, SKP_Silk_Seed_offset );
-        psDec-&gt;Seed[ FramesInPacket ] = (SKP_int32)seed_int;
-        /**************************************/
-        /* Decode Frame termination indicator */
-        /**************************************/
-        SKP_Silk_range_decoder( &amp;FrameTermination, psRC, SKP_Silk_FrameTermination_v4_CDF, SKP_Silk_FrameTermination_v4_offset );
-
-        psDec-&gt;sigtype[ FramesInPacket ]         = sigtype;
-        psDec-&gt;QuantOffsetType[ FramesInPacket ] = QuantOffsetType;
-
-        FramesInPacket++;
-    }
-
-    /****************************************/
-    /* get number of bytes used so far      */
-    /****************************************/
-    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
-    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
-    if( psDec-&gt;nBytesLeft &lt; 0 ) {
-        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
-    }
-
-    psDec-&gt;nFramesInPacket  = FramesInPacket;
-    psDec-&gt;FrameTermination = FrameTermination;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Decode indices from payload */
+void SKP_Silk_decode_indices_v4(
+    SKP_Silk_decoder_state      *psDec            /* I/O    State                              */
+)
+{
+    SKP_int   i, k, Ix, fs_kHz_dec, FrameIndex = 0, FrameTermination;
+    SKP_int   sigtype, QuantOffsetType, seed_int, nBytesUsed;
+    SKP_int   decode_absolute_lagIndex, delta_lagIndex, prev_lagIndex = 0;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
+    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
+    /************************/
+    /* Decode sampling rate */
+    /************************/
+    /* only done for first frame of packet */
+    if( psDec-&gt;nFramesDecoded == 0 ) {
+        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_SamplingRates_CDF, SKP_Silk_SamplingRates_offset );
+
+        /* check that sampling rate is supported */
+        if( Ix &lt; 0 || Ix &gt; 3 ) {
+            psRC-&gt;error = RANGE_CODER_ILLEGAL_SAMPLING_RATE;
+            return;
+        }
+        fs_kHz_dec = SKP_Silk_SamplingRates_table[ Ix ];
+        SKP_Silk_decoder_set_fs( psDec, fs_kHz_dec );
+    
+        FrameIndex       = 0;
+        FrameTermination = SKP_SILK_MORE_FRAMES;
+    }
+
+    while( FrameTermination == SKP_SILK_MORE_FRAMES ) {
+        /*******************/
+        /* Decode VAD flag */
+        /*******************/
+        SKP_Silk_range_decoder( &amp;psDec-&gt;vadFlagBuf[ FrameIndex ], psRC, SKP_Silk_vadflag_CDF, SKP_Silk_vadflag_offset );
+
+        /*******************************************/
+        /* Decode signal type and quantizer offset */
+        /*******************************************/
+        if( FrameIndex == 0 ) {
+            /* first frame in packet: independent coding */
+            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_CDF, SKP_Silk_type_offset_CDF_offset );
+        } else {
+            /* condidtional coding */
+            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_joint_CDF[ psDec-&gt;typeOffsetPrev ], 
+                    SKP_Silk_type_offset_CDF_offset );
+        }
+        sigtype               = SKP_RSHIFT( Ix, 1 );
+        QuantOffsetType       = Ix &amp; 1;
+        psDec-&gt;typeOffsetPrev = Ix;
+
+        /****************/
+        /* Decode gains */
+        /****************/
+        /* first subframe */    
+        if( FrameIndex == 0 ) {
+            /* first frame in packet: independent coding */
+            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FrameIndex ][ 0 ], psRC, SKP_Silk_gain_CDF[ sigtype ], SKP_Silk_gain_CDF_offset );
+        } else {
+            /* condidtional coding */
+            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FrameIndex ][ 0 ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+        }
+
+        /* remaining subframes */
+        for( i = 1; i &lt; NB_SUBFR; i++ ) {
+            SKP_Silk_range_decoder( &amp;psDec-&gt;GainsIndices[ FrameIndex ][ i ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+        }
+        
+        /**********************/
+        /* Decode LSF Indices */
+        /**********************/
+
+        /* Set pointer to LSF VQ CB for the current signal type */
+        psNLSF_CB = psDec-&gt;psNLSF_CB[ sigtype ];
+
+        /* Arithmetically decode NLSF path */
+        SKP_Silk_range_decoder_multi( psDec-&gt;NLSFIndices[ FrameIndex ], psRC, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;MiddleIx, psNLSF_CB-&gt;nStages );
+        
+        /***********************************/
+        /* Decode LSF interpolation factor */
+        /***********************************/
+        SKP_Silk_range_decoder( &amp;psDec-&gt;NLSFInterpCoef_Q2[ FrameIndex ], psRC, SKP_Silk_NLSF_interpolation_factor_CDF, 
+            SKP_Silk_NLSF_interpolation_factor_offset );
+        
+        if( sigtype == SIG_TYPE_VOICED ) {
+            /*********************/
+            /* Decode pitch lags */
+            /*********************/
+            /* Get lag index */
+            decode_absolute_lagIndex = 1;
+            if( FrameIndex &gt; 0 &amp;&amp; psDec-&gt;sigtype[ FrameIndex - 1 ] == SIG_TYPE_VOICED ) {
+                /* Decode Delta index */
+                SKP_Silk_range_decoder( &amp;delta_lagIndex,psRC, SKP_Silk_pitch_delta_CDF,  SKP_Silk_pitch_delta_CDF_offset );
+                if( delta_lagIndex &lt; ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1 ) {
+                    delta_lagIndex = delta_lagIndex - MAX_DELTA_LAG;
+                    psDec-&gt;lagIndex[ FrameIndex ] = prev_lagIndex + delta_lagIndex;
+                    decode_absolute_lagIndex = 0;
+                }
+            }
+            if( decode_absolute_lagIndex ) {
+                /* Absolute decoding */
+                if( psDec-&gt;fs_kHz == 8 ) {
+                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FrameIndex ], psRC, SKP_Silk_pitch_lag_NB_CDF,  SKP_Silk_pitch_lag_NB_CDF_offset );
+                } else if( psDec-&gt;fs_kHz == 12 ) {
+                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FrameIndex ], psRC, SKP_Silk_pitch_lag_MB_CDF,  SKP_Silk_pitch_lag_MB_CDF_offset );
+                } else if( psDec-&gt;fs_kHz == 16 ) {
+                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FrameIndex ], psRC, SKP_Silk_pitch_lag_WB_CDF,  SKP_Silk_pitch_lag_WB_CDF_offset );
+                } else {
+                    SKP_Silk_range_decoder( &amp;psDec-&gt;lagIndex[ FrameIndex ], psRC, SKP_Silk_pitch_lag_SWB_CDF, SKP_Silk_pitch_lag_SWB_CDF_offset );
+                }
+            }
+            prev_lagIndex = psDec-&gt;lagIndex[ FrameIndex ];
+
+            /* Get countour index */
+            if( psDec-&gt;fs_kHz == 8 ) {
+                /* Less codevectors used in 8 khz mode */
+                SKP_Silk_range_decoder( &amp;psDec-&gt;contourIndex[ FrameIndex ], psRC, SKP_Silk_pitch_contour_NB_CDF, SKP_Silk_pitch_contour_NB_CDF_offset );
+            } else {
+                /* Joint for 12, 16, and 24 khz */
+                SKP_Silk_range_decoder( &amp;psDec-&gt;contourIndex[ FrameIndex ], psRC, SKP_Silk_pitch_contour_CDF, SKP_Silk_pitch_contour_CDF_offset );
+            }
+            
+            /********************/
+            /* Decode LTP gains */
+            /********************/
+            /* Decode PERIndex value */
+            SKP_Silk_range_decoder( &amp;psDec-&gt;PERIndex[ FrameIndex ], psRC, SKP_Silk_LTP_per_index_CDF, SKP_Silk_LTP_per_index_CDF_offset );
+            
+            for( k = 0; k &lt; NB_SUBFR; k++ ) {
+                SKP_Silk_range_decoder( &amp;psDec-&gt;LTPIndex[ FrameIndex ][ k ], psRC, SKP_Silk_LTP_gain_CDF_ptrs[ psDec-&gt;PERIndex[ FrameIndex ] ], 
+                    SKP_Silk_LTP_gain_CDF_offsets[ psDec-&gt;PERIndex[ FrameIndex ] ] );
+            }
+
+            /**********************/
+            /* Decode LTP scaling */
+            /**********************/
+            SKP_Silk_range_decoder( &amp;psDec-&gt;LTP_scaleIndex[ FrameIndex ], psRC, SKP_Silk_LTPscale_CDF, SKP_Silk_LTPscale_offset );
+        }
+
+        /***************/
+        /* Decode seed */
+        /***************/
+        SKP_Silk_range_decoder( &amp;seed_int, psRC, SKP_Silk_Seed_CDF, SKP_Silk_Seed_offset );
+        psDec-&gt;Seed[ FrameIndex ] = ( SKP_int32 )seed_int;
+        /**************************************/
+        /* Decode Frame termination indicator */
+        /**************************************/
+        SKP_Silk_range_decoder( &amp;FrameTermination, psRC, SKP_Silk_FrameTermination_v4_CDF, SKP_Silk_FrameTermination_v4_offset );
+
+        psDec-&gt;sigtype[ FrameIndex ]         = sigtype;
+        psDec-&gt;QuantOffsetType[ FrameIndex ] = QuantOffsetType;
+
+        FrameIndex++;
+    }
+
+    /****************************************/
+    /* get number of bytes used so far      */
+    /****************************************/
+    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
+    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
+    if( psDec-&gt;nBytesLeft &lt; 0 ) {
+        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
+    }
+
+    psDec-&gt;nFramesInPacket  = FrameIndex;
+    psDec-&gt;FrameTermination = FrameTermination;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_parametersc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,274 +1,243 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-
-
-
-
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Decode parameters from payload */
-void SKP_Silk_decode_parameters(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  State                                       */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int                     q[],                /* O    Excitation signal                           */
-    const SKP_int               fullDecoding        /* I    Flag to tell if only arithmetic decoding    */
-)
-{
-    SKP_int   i, k, Ix, fs_kHz_dec, nBytesUsed;
-    SKP_int   Ixs[ NB_SUBFR ];
-    SKP_int   GainsIndices[ NB_SUBFR ];
-    SKP_int   NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int   pNLSF_Q15[ MAX_LPC_ORDER ], pNLSF0_Q15[ MAX_LPC_ORDER ];
-    const SKP_int16 *cbk_ptr_Q14;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
-    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
-
-    /************************/
-    /* Decode sampling rate */
-    /************************/
-    /* only done for first frame of packet */
-    if( psDec-&gt;nFramesDecoded == 0 ) {
-        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_SamplingRates_CDF, SKP_Silk_SamplingRates_offset );
-
-        /* check that sampling rate is supported */
-        if( Ix &lt; 0 || Ix &gt; 3 ) {
-            psRC-&gt;error = RANGE_CODER_ILLEGAL_SAMPLING_RATE;
-            return;
-
-
-
-
-
-        }
-        fs_kHz_dec = SKP_Silk_SamplingRates_table[ Ix ];
-        SKP_Silk_decoder_set_fs( psDec, fs_kHz_dec );
-    }
-
-    /*******************************************/
-    /* Decode signal type and quantizer offset */
-    /*******************************************/
-    if( psDec-&gt;nFramesDecoded == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_CDF, SKP_Silk_type_offset_CDF_offset );
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_joint_CDF[ psDec-&gt;typeOffsetPrev ],
-                SKP_Silk_type_offset_CDF_offset );
-    }
-    psDecCtrl-&gt;sigtype         = SKP_RSHIFT( Ix, 1 );
-    psDecCtrl-&gt;QuantOffsetType = Ix &amp; 1;
-    psDec-&gt;typeOffsetPrev      = Ix;
-
-    /****************/
-    /* Decode gains */
-    /****************/
-    /* first subframe */
-    if( psDec-&gt;nFramesDecoded == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_decoder( &amp;GainsIndices[ 0 ], psRC, SKP_Silk_gain_CDF[ psDecCtrl-&gt;sigtype ], SKP_Silk_gain_CDF_offset );
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_decoder( &amp;GainsIndices[ 0 ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
-    }
-
-    /* remaining subframes */
-    for( i = 1; i &lt; NB_SUBFR; i++ ) {
-        SKP_Silk_range_decoder( &amp;GainsIndices[ i ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
-    }
-
-    /* Dequant Gains */
-    SKP_Silk_gains_dequant( psDecCtrl-&gt;Gains_Q16, GainsIndices, &amp;psDec-&gt;LastGainIndex, psDec-&gt;nFramesDecoded );
-    /***************/
-    /* Decode LSFs */
-    /***************/
-    /* Set pointer to LSF VQ CB for the current signal type */
-    psNLSF_CB = psDec-&gt;psNLSF_CB[ psDecCtrl-&gt;sigtype ];
-
-    /* Arithmetically decode NLSF path */
-    SKP_Silk_range_decoder_multi( NLSFIndices, psRC, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;MiddleIx, psNLSF_CB-&gt;nStages );
-
-
-
-
-
-
-    /* From the NLSF path, decode an NLSF vector */
-    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, NLSFIndices, psDec-&gt;LPC_order );
-
-    /************************************/
-    /* Decode NLSF interpolation factor */
-    /************************************/
-    SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;NLSFInterpCoef_Q2, psRC, SKP_Silk_NLSF_interpolation_factor_CDF,
-        SKP_Silk_NLSF_interpolation_factor_offset );
-
-    /* If just reset, e.g., because internal Fs changed, do not allow interpolation */
-    /* improves the case of packet loss in the first frame after a switch           */
-    if( psDec-&gt;first_frame_after_reset == 1 ) {
-        psDecCtrl-&gt;NLSFInterpCoef_Q2 = 4;
-    }
-
-    if( fullDecoding ) {
-        /* Convert NLSF parameters to AR prediction filter coefficients */
-        SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psDec-&gt;LPC_order );
-
-        if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; 4 ) {
-            /* Calculation of the interpolated NLSF0 vector from the interpolation factor, */
-            /* the previous NLSF1, and the current NLSF1                                   */
-            for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
-                pNLSF0_Q15[ i ] = psDec-&gt;prevNLSF_Q15[ i ] + SKP_RSHIFT( SKP_MUL( psDecCtrl-&gt;NLSFInterpCoef_Q2,
-                    ( pNLSF_Q15[ i ] - psDec-&gt;prevNLSF_Q15[ i ] ) ), 2 );
-            }
-
-            /* Convert NLSF parameters to AR prediction filter coefficients */
-            SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec-&gt;LPC_order );
-        } else {
-            /* Copy LPC coefficients for first half from second half */
-            SKP_memcpy( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDecCtrl-&gt;PredCoef_Q12[ 1 ],
-                psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
-        }
-    }
-
-    SKP_memcpy( psDec-&gt;prevNLSF_Q15, pNLSF_Q15, psDec-&gt;LPC_order * sizeof( SKP_int ) );
-
-    /* After a packet loss do BWE of LPC coefs */
-    if( psDec-&gt;lossCnt ) {
-        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
-        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
-    }
-
-    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
-        /*********************/
-        /* Decode pitch lags */
-        /*********************/
-
-
-
-
-
-        /* Get lag index */
-        if( psDec-&gt;fs_kHz == 8 ) {
-            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_NB_CDF,  SKP_Silk_pitch_lag_NB_CDF_offset );
-        } else if( psDec-&gt;fs_kHz == 12 ) {
-            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_MB_CDF,  SKP_Silk_pitch_lag_MB_CDF_offset );
-        } else if( psDec-&gt;fs_kHz == 16 ) {
-            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_WB_CDF,  SKP_Silk_pitch_lag_WB_CDF_offset );
-        } else {
-            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_SWB_CDF, SKP_Silk_pitch_lag_SWB_CDF_offset );
-        }
-
-        /* Get countour index */
-        if( psDec-&gt;fs_kHz == 8 ) {
-            /* Less codevectors used in 8 khz mode */
-            SKP_Silk_range_decoder( &amp;Ixs[ 1 ], psRC, SKP_Silk_pitch_contour_NB_CDF, SKP_Silk_pitch_contour_NB_CDF_offset );
-        } else {
-            /* Joint for 12, 16, and 24 khz */
-            SKP_Silk_range_decoder( &amp;Ixs[ 1 ], psRC, SKP_Silk_pitch_contour_CDF, SKP_Silk_pitch_contour_CDF_offset );
-        }
-
-        /* Decode pitch values */
-        SKP_Silk_decode_pitch( Ixs[ 0 ], Ixs[ 1 ], psDecCtrl-&gt;pitchL, psDec-&gt;fs_kHz );
-
-        /********************/
-        /* Decode LTP gains */
-        /********************/
-        /* Decode PERIndex value */
-        SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;PERIndex, psRC, SKP_Silk_LTP_per_index_CDF,
-                SKP_Silk_LTP_per_index_CDF_offset );
-
-        /* Decode Codebook Index */
-        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ psDecCtrl-&gt;PERIndex ]; // set pointer to start of codebook
-
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_LTP_gain_CDF_ptrs[ psDecCtrl-&gt;PERIndex ],
-                SKP_Silk_LTP_gain_CDF_offsets[ psDecCtrl-&gt;PERIndex ] );
-
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( k, LTP_ORDER ) + i ] = cbk_ptr_Q14[ SKP_SMULBB( Ix, LTP_ORDER ) + i ];
-            }
-        }
-
-        /**********************/
-        /* Decode LTP scaling */
-        /**********************/
-        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_LTPscale_CDF, SKP_Silk_LTPscale_offset );
-        psDecCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ Ix ];
-    } else {
-
-
-
-
-
-        SKP_memset( psDecCtrl-&gt;pitchL,      0, NB_SUBFR * sizeof( SKP_int ) );
-        SKP_memset( psDecCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
-        psDecCtrl-&gt;PERIndex      = 0;
-        psDecCtrl-&gt;LTP_scale_Q14 = 0;
-    }
-
-    /***************/
-    /* Decode seed */
-    /***************/
-    SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_Seed_CDF, SKP_Silk_Seed_offset );
-    psDecCtrl-&gt;Seed = (SKP_int32)Ix;
-    /*********************************************/
-    /* Decode quantization indices of excitation */
-    /*********************************************/
-    SKP_Silk_decode_pulses( psRC, psDecCtrl, q, psDec-&gt;frame_length );
-
-    /*********************************************/
-    /* Decode VAD flag                           */
-    /*********************************************/
-    SKP_Silk_range_decoder( &amp;psDec-&gt;vadFlag, psRC, SKP_Silk_vadflag_CDF, SKP_Silk_vadflag_offset );
-
-    /**************************************/
-    /* Decode Frame termination indicator */
-    /**************************************/
-    SKP_Silk_range_decoder( &amp;psDec-&gt;FrameTermination, psRC, SKP_Silk_FrameTermination_CDF, SKP_Silk_FrameTermination_offset );
-
-    /****************************************/
-    /* get number of bytes used so far      */
-    /****************************************/
-    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
-    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
-    if( psDec-&gt;nBytesLeft &lt; 0 ) {
-        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
-    }
-
-    /****************************************/
-    /* check remaining bits in last byte    */
-    /****************************************/
-    if( psDec-&gt;nBytesLeft == 0 ) {
-        SKP_Silk_range_coder_check_after_decoding( psRC );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Decode parameters from payload */
+void SKP_Silk_decode_parameters(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  State                                       */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int                     q[],                /* O    Excitation signal                           */
+    const SKP_int               fullDecoding        /* I    Flag to tell if only arithmetic decoding    */
+)
+{
+    SKP_int   i, k, Ix, fs_kHz_dec, nBytesUsed;
+    SKP_int   Ixs[ NB_SUBFR ];
+    SKP_int   GainsIndices[ NB_SUBFR ];
+    SKP_int   NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int   pNLSF_Q15[ MAX_LPC_ORDER ], pNLSF0_Q15[ MAX_LPC_ORDER ];
+    const SKP_int16 *cbk_ptr_Q14;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
+    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
+
+    /************************/
+    /* Decode sampling rate */
+    /************************/
+    /* only done for first frame of packet */
+    if( psDec-&gt;nFramesDecoded == 0 ) {
+        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_SamplingRates_CDF, SKP_Silk_SamplingRates_offset );
+
+        /* check that sampling rate is supported */
+        if( Ix &lt; 0 || Ix &gt; 3 ) {
+            psRC-&gt;error = RANGE_CODER_ILLEGAL_SAMPLING_RATE;
+            return;
+        }
+        fs_kHz_dec = SKP_Silk_SamplingRates_table[ Ix ];
+        SKP_Silk_decoder_set_fs( psDec, fs_kHz_dec );
+    }
+
+    /*******************************************/
+    /* Decode signal type and quantizer offset */
+    /*******************************************/
+    if( psDec-&gt;nFramesDecoded == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_CDF, SKP_Silk_type_offset_CDF_offset );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_type_offset_joint_CDF[ psDec-&gt;typeOffsetPrev ], 
+                SKP_Silk_type_offset_CDF_offset );
+    }
+    psDecCtrl-&gt;sigtype         = SKP_RSHIFT( Ix, 1 );
+    psDecCtrl-&gt;QuantOffsetType = Ix &amp; 1;
+    psDec-&gt;typeOffsetPrev      = Ix;
+
+    /****************/
+    /* Decode gains */
+    /****************/
+    /* first subframe */    
+    if( psDec-&gt;nFramesDecoded == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_decoder( &amp;GainsIndices[ 0 ], psRC, SKP_Silk_gain_CDF[ psDecCtrl-&gt;sigtype ], SKP_Silk_gain_CDF_offset );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_decoder( &amp;GainsIndices[ 0 ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+    }
+
+    /* remaining subframes */
+    for( i = 1; i &lt; NB_SUBFR; i++ ) {
+        SKP_Silk_range_decoder( &amp;GainsIndices[ i ], psRC, SKP_Silk_delta_gain_CDF, SKP_Silk_delta_gain_CDF_offset );
+    }
+    
+    /* Dequant Gains */
+    SKP_Silk_gains_dequant( psDecCtrl-&gt;Gains_Q16, GainsIndices, &amp;psDec-&gt;LastGainIndex, psDec-&gt;nFramesDecoded );
+    /****************/
+    /* Decode NLSFs */
+    /****************/
+    /* Set pointer to NLSF VQ CB for the current signal type */
+    psNLSF_CB = psDec-&gt;psNLSF_CB[ psDecCtrl-&gt;sigtype ];
+
+    /* Arithmetically decode NLSF path */
+    SKP_Silk_range_decoder_multi( NLSFIndices, psRC, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;MiddleIx, psNLSF_CB-&gt;nStages );
+
+    /* From the NLSF path, decode an NLSF vector */
+    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, NLSFIndices, psDec-&gt;LPC_order );
+
+    /************************************/
+    /* Decode NLSF interpolation factor */
+    /************************************/
+    SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;NLSFInterpCoef_Q2, psRC, SKP_Silk_NLSF_interpolation_factor_CDF, 
+        SKP_Silk_NLSF_interpolation_factor_offset );
+    
+    /* If just reset, e.g., because internal Fs changed, do not allow interpolation */
+    /* improves the case of packet loss in the first frame after a switch           */
+    if( psDec-&gt;first_frame_after_reset == 1 ) {
+        psDecCtrl-&gt;NLSFInterpCoef_Q2 = 4;
+    }
+
+    if( fullDecoding ) {
+        /* Convert NLSF parameters to AR prediction filter coefficients */
+        SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psDec-&gt;LPC_order );
+
+        if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; 4 ) {
+            /* Calculation of the interpolated NLSF0 vector from the interpolation factor, */ 
+            /* the previous NLSF1, and the current NLSF1                                   */
+            for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
+                pNLSF0_Q15[ i ] = psDec-&gt;prevNLSF_Q15[ i ] + SKP_RSHIFT( SKP_MUL( psDecCtrl-&gt;NLSFInterpCoef_Q2, 
+                    ( pNLSF_Q15[ i ] - psDec-&gt;prevNLSF_Q15[ i ] ) ), 2 );
+            }
+
+            /* Convert NLSF parameters to AR prediction filter coefficients */
+            SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec-&gt;LPC_order );
+        } else {
+            /* Copy LPC coefficients for first half from second half */
+            SKP_memcpy( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDecCtrl-&gt;PredCoef_Q12[ 1 ], 
+                psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
+        }
+    }
+
+    SKP_memcpy( psDec-&gt;prevNLSF_Q15, pNLSF_Q15, psDec-&gt;LPC_order * sizeof( SKP_int ) );
+
+    /* After a packet loss do BWE of LPC coefs */
+    if( psDec-&gt;lossCnt ) {
+        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
+        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
+    }
+
+    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
+        /*********************/
+        /* Decode pitch lags */
+        /*********************/
+        /* Get lag index */
+        if( psDec-&gt;fs_kHz == 8 ) {
+            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_NB_CDF,  SKP_Silk_pitch_lag_NB_CDF_offset );
+        } else if( psDec-&gt;fs_kHz == 12 ) {
+            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_MB_CDF,  SKP_Silk_pitch_lag_MB_CDF_offset );
+        } else if( psDec-&gt;fs_kHz == 16 ) {
+            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_WB_CDF,  SKP_Silk_pitch_lag_WB_CDF_offset );
+        } else {
+            SKP_Silk_range_decoder( &amp;Ixs[ 0 ], psRC, SKP_Silk_pitch_lag_SWB_CDF, SKP_Silk_pitch_lag_SWB_CDF_offset );
+        }
+        
+        /* Get countour index */
+        if( psDec-&gt;fs_kHz == 8 ) {
+            /* Less codevectors used in 8 khz mode */
+            SKP_Silk_range_decoder( &amp;Ixs[ 1 ], psRC, SKP_Silk_pitch_contour_NB_CDF, SKP_Silk_pitch_contour_NB_CDF_offset );
+        } else {
+            /* Joint for 12, 16, and 24 khz */
+            SKP_Silk_range_decoder( &amp;Ixs[ 1 ], psRC, SKP_Silk_pitch_contour_CDF, SKP_Silk_pitch_contour_CDF_offset );
+        }
+        
+        /* Decode pitch values */
+        SKP_Silk_decode_pitch( Ixs[ 0 ], Ixs[ 1 ], psDecCtrl-&gt;pitchL, psDec-&gt;fs_kHz );
+
+        /********************/
+        /* Decode LTP gains */
+        /********************/
+        /* Decode PERIndex value */
+        SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;PERIndex, psRC, SKP_Silk_LTP_per_index_CDF, 
+                SKP_Silk_LTP_per_index_CDF_offset );
+
+        /* Decode Codebook Index */
+        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ psDecCtrl-&gt;PERIndex ]; // set pointer to start of codebook
+        
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_LTP_gain_CDF_ptrs[ psDecCtrl-&gt;PERIndex ], 
+                SKP_Silk_LTP_gain_CDF_offsets[ psDecCtrl-&gt;PERIndex ] );
+
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( k, LTP_ORDER ) + i ] = cbk_ptr_Q14[ SKP_SMULBB( Ix, LTP_ORDER ) + i ];
+            }
+        }
+
+        /**********************/
+        /* Decode LTP scaling */
+        /**********************/
+        SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_LTPscale_CDF, SKP_Silk_LTPscale_offset );
+        psDecCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ Ix ];
+    } else {
+        SKP_memset( psDecCtrl-&gt;pitchL,      0, NB_SUBFR * sizeof( SKP_int ) );
+        SKP_memset( psDecCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
+        psDecCtrl-&gt;PERIndex      = 0;
+        psDecCtrl-&gt;LTP_scale_Q14 = 0;
+    }
+
+    /***************/
+    /* Decode seed */
+    /***************/
+    SKP_Silk_range_decoder( &amp;Ix, psRC, SKP_Silk_Seed_CDF, SKP_Silk_Seed_offset );
+    psDecCtrl-&gt;Seed = ( SKP_int32 )Ix;
+    /*********************************************/
+    /* Decode quantization indices of excitation */
+    /*********************************************/
+    SKP_Silk_decode_pulses( psRC, psDecCtrl, q, psDec-&gt;frame_length );
+
+    /*********************************************/
+    /* Decode VAD flag                           */
+    /*********************************************/
+    SKP_Silk_range_decoder( &amp;psDec-&gt;vadFlag, psRC, SKP_Silk_vadflag_CDF, SKP_Silk_vadflag_offset );
+
+    /**************************************/
+    /* Decode Frame termination indicator */
+    /**************************************/
+    SKP_Silk_range_decoder( &amp;psDec-&gt;FrameTermination, psRC, SKP_Silk_FrameTermination_CDF, SKP_Silk_FrameTermination_offset );
+
+    /****************************************/
+    /* get number of bytes used so far      */
+    /****************************************/
+    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
+    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
+    if( psDec-&gt;nBytesLeft &lt; 0 ) {
+        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
+    }
+
+    /****************************************/
+    /* check remaining bits in last byte    */
+    /****************************************/
+    if( psDec-&gt;nBytesLeft == 0 ) {
+        SKP_Silk_range_coder_check_after_decoding( psRC );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_parameters_v4c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters_v4.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters_v4.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_parameters_v4.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,181 +1,157 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Decode parameters from payload */
-void SKP_Silk_decode_parameters_v4(
-    SKP_Silk_decoder_state      *psDec,                                 /* I/O  State                                    */
-    SKP_Silk_decoder_control    *psDecCtrl,                             /* I/O  Decoder control                          */
-    SKP_int                     q[ MAX_FRAME_LENGTH ],                  /* O    Excitation signal                        */
-    const SKP_int               fullDecoding                            /* I    Flag to tell if only arithmetic decoding */
-)
-{
-    SKP_int   i, k, Ix, nBytesUsed;
-    SKP_int   pNLSF_Q15[ MAX_LPC_ORDER ], pNLSF0_Q15[ MAX_LPC_ORDER ];
-    const SKP_int16 *cbk_ptr_Q14;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
-    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
-
-    psDec-&gt;FrameTermination       = SKP_SILK_MORE_FRAMES;
-    psDecCtrl-&gt;sigtype            = psDec-&gt;sigtype[ psDec-&gt;nFramesDecoded ];
-    psDecCtrl-&gt;QuantOffsetType    = psDec-&gt;QuantOffsetType[ psDec-&gt;nFramesDecoded ];
-    psDec-&gt;vadFlag                = psDec-&gt;vadFlagBuf[ psDec-&gt;nFramesDecoded ];
-    psDecCtrl-&gt;NLSFInterpCoef_Q2  = psDec-&gt;NLSFInterpCoef_Q2[ psDec-&gt;nFramesDecoded ];
-
-
-
-
-
-    psDecCtrl-&gt;Seed               = psDec-&gt;Seed[ psDec-&gt;nFramesDecoded ];
-
-    /* Dequant Gains */
-    SKP_Silk_gains_dequant( psDecCtrl-&gt;Gains_Q16, psDec-&gt;GainsIndices[ psDec-&gt;nFramesDecoded ], &amp;psDec-&gt;LastGainIndex, psDec-&gt;nFramesDecoded );
-    /***************/
-    /* Decode LSFs */
-    /***************/
-
-    /* Set pointer to LSF VQ CB for the current signal type */
-    psNLSF_CB = psDec-&gt;psNLSF_CB[ psDecCtrl-&gt;sigtype ];
-
-    /* From the LSF path, decode an LSF vector */
-    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, psDec-&gt;NLSFIndices[ psDec-&gt;nFramesDecoded ], psDec-&gt;LPC_order );
-
-    /* Convert LSF parameters to AR prediction filter coefficients */
-    SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psDec-&gt;LPC_order );
-
-    /* If just reset, e.g., because internal Fs changed, do not allow interpolation */
-    /* improves the case of packet loss in the first frame after a switch           */
-    if( psDec-&gt;first_frame_after_reset == 1 ) {
-        psDecCtrl-&gt;NLSFInterpCoef_Q2 = 4;
-    }
-
-    if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; 4 ) {
-        /* Calculation of the interpolated LSF0 vector from the interpolation factor, */
-        /* the previous LSF1, and the current LSF1                                    */
-        for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
-            pNLSF0_Q15[ i ] = psDec-&gt;prevNLSF_Q15[ i ] + SKP_RSHIFT( SKP_MUL( psDecCtrl-&gt;NLSFInterpCoef_Q2,
-                ( pNLSF_Q15[ i ] - psDec-&gt;prevNLSF_Q15[ i ] ) ), 2 );
-        }
-
-        /* Convert LSF parameters to AR prediction filter coefficients */
-        SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec-&gt;LPC_order );
-    } else {
-        /* Copy LPC coefficients for first half from second half */
-        SKP_memcpy( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDecCtrl-&gt;PredCoef_Q12[ 1 ],
-            psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
-    }
-
-    SKP_memcpy( psDec-&gt;prevNLSF_Q15, pNLSF_Q15, psDec-&gt;LPC_order * sizeof( SKP_int ) );
-
-    /* After a packet loss do BWE of LPC coefs */
-    if( psDec-&gt;lossCnt ) {
-        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
-        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
-    }
-
-    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
-
-
-
-
-
-        /*********************/
-        /* Decode pitch lags */
-        /*********************/
-
-        /* Decode pitch values */
-        SKP_Silk_decode_pitch( psDec-&gt;lagIndex[ psDec-&gt;nFramesDecoded ],
-            psDec-&gt;contourIndex[ psDec-&gt;nFramesDecoded ], psDecCtrl-&gt;pitchL, psDec-&gt;fs_kHz );
-
-        /********************/
-        /* Decode LTP gains */
-        /********************/
-        psDecCtrl-&gt;PERIndex = psDec-&gt;PERIndex[ psDec-&gt;nFramesDecoded ];
-
-        /* Decode Codebook Index */
-        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ psDecCtrl-&gt;PERIndex ]; /* set pointer to start of codebook */
-
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            Ix = psDec-&gt;LTPIndex[ psDec-&gt;nFramesDecoded ][ k ];
-            for( i = 0; i &lt; LTP_ORDER; i++ ) {
-                psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( k, LTP_ORDER ) + i ] = cbk_ptr_Q14[ SKP_SMULBB( Ix, LTP_ORDER ) + i ];
-            }
-        }
-
-        /**********************/
-        /* Decode LTP scaling */
-        /**********************/
-        Ix = psDec-&gt;LTP_scaleIndex[ psDec-&gt;nFramesDecoded ];
-        psDecCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ Ix ];
-    } else {
-        SKP_memset( psDecCtrl-&gt;pitchL,      0, NB_SUBFR * sizeof( SKP_int ) );
-        SKP_memset( psDecCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
-        psDecCtrl-&gt;PERIndex      = 0;
-        psDecCtrl-&gt;LTP_scale_Q14 = 0;
-    }
-
-    /*********************************************/
-    /* Decode quantization indices of excitation */
-    /*********************************************/
-    SKP_Silk_decode_pulses( psRC, psDecCtrl, q, psDec-&gt;frame_length );
-
-    /****************************************/
-    /* get number of bytes used so far      */
-    /****************************************/
-    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
-    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
-    if( psDec-&gt;nBytesLeft &lt; 0 ) {
-        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
-    }
-
-
-
-
-
-    /****************************************/
-    /* check remaining bits in last byte    */
-    /****************************************/
-    if( psDec-&gt;nBytesLeft == 0 ) {
-        SKP_Silk_range_coder_check_after_decoding( psRC );
-    }
-
-    if( psDec-&gt;nFramesInPacket == (psDec-&gt;nFramesDecoded + 1)) {
-        /* To indicate the packet has been fully decoded */
-        psDec-&gt;FrameTermination = SKP_SILK_LAST_FRAME;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Decode parameters from payload */
+void SKP_Silk_decode_parameters_v4(
+    SKP_Silk_decoder_state      *psDec,                                 /* I/O  State                                    */
+    SKP_Silk_decoder_control    *psDecCtrl,                             /* I/O  Decoder control                          */
+    SKP_int                     q[ MAX_FRAME_LENGTH ],                  /* O    Excitation signal                        */
+    const SKP_int               fullDecoding                            /* I    Flag to tell if only arithmetic decoding */
+)
+{
+    SKP_int   i, k, Ix, nBytesUsed;
+    SKP_int   pNLSF_Q15[ MAX_LPC_ORDER ], pNLSF0_Q15[ MAX_LPC_ORDER ];
+    const SKP_int16 *cbk_ptr_Q14;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB = NULL;
+    SKP_Silk_range_coder_state  *psRC = &amp;psDec-&gt;sRC;
+    
+    psDec-&gt;FrameTermination       = SKP_SILK_MORE_FRAMES;
+    psDecCtrl-&gt;sigtype            = psDec-&gt;sigtype[ psDec-&gt;nFramesDecoded ];
+    psDecCtrl-&gt;QuantOffsetType    = psDec-&gt;QuantOffsetType[ psDec-&gt;nFramesDecoded ];
+    psDec-&gt;vadFlag                = psDec-&gt;vadFlagBuf[ psDec-&gt;nFramesDecoded ];
+    psDecCtrl-&gt;NLSFInterpCoef_Q2  = psDec-&gt;NLSFInterpCoef_Q2[ psDec-&gt;nFramesDecoded ];
+    psDecCtrl-&gt;Seed               = psDec-&gt;Seed[ psDec-&gt;nFramesDecoded ];
+
+    /* Dequant Gains */
+    SKP_Silk_gains_dequant( psDecCtrl-&gt;Gains_Q16, psDec-&gt;GainsIndices[ psDec-&gt;nFramesDecoded ], &amp;psDec-&gt;LastGainIndex, psDec-&gt;nFramesDecoded );
+    /****************/
+    /* Decode NLSFs */
+    /****************/
+
+    /* Set pointer to NLSF VQ CB for the current signal type */
+    psNLSF_CB = psDec-&gt;psNLSF_CB[ psDecCtrl-&gt;sigtype ];
+
+    /* From the NLSF path, decode an NLSF vector */
+    SKP_Silk_NLSF_MSVQ_decode( pNLSF_Q15, psNLSF_CB, psDec-&gt;NLSFIndices[ psDec-&gt;nFramesDecoded ], psDec-&gt;LPC_order );
+
+    /* Convert NLSF parameters to AR prediction filter coefficients */
+    SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psDec-&gt;LPC_order );
+    
+    /* If just reset, e.g., because internal Fs changed, do not allow interpolation */
+    /* improves the case of packet loss in the first frame after a switch           */
+    if( psDec-&gt;first_frame_after_reset == 1 ) {
+        psDecCtrl-&gt;NLSFInterpCoef_Q2 = 4;
+    }
+
+    if( psDecCtrl-&gt;NLSFInterpCoef_Q2 &lt; 4 ) {
+        /* Calculation of the interpolated NLSF0 vector from the interpolation factor, */ 
+        /* the previous NLSF1, and the current NLSF1                                   */
+        for( i = 0; i &lt; psDec-&gt;LPC_order; i++ ) {
+            pNLSF0_Q15[ i ] = psDec-&gt;prevNLSF_Q15[ i ] + SKP_RSHIFT( SKP_MUL( psDecCtrl-&gt;NLSFInterpCoef_Q2, 
+                ( pNLSF_Q15[ i ] - psDec-&gt;prevNLSF_Q15[ i ] ) ), 2 );
+        }
+
+        /* Convert NLSF parameters to AR prediction filter coefficients */
+        SKP_Silk_NLSF2A_stable( psDecCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec-&gt;LPC_order );
+    } else {
+        /* Copy LPC coefficients for first half from second half */
+        SKP_memcpy( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDecCtrl-&gt;PredCoef_Q12[ 1 ], 
+            psDec-&gt;LPC_order * sizeof( SKP_int16 ) );
+    }
+
+    SKP_memcpy( psDec-&gt;prevNLSF_Q15, pNLSF_Q15, psDec-&gt;LPC_order * sizeof( SKP_int ) );
+
+    /* After a packet loss do BWE of LPC coefs */
+    if( psDec-&gt;lossCnt ) {
+        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 0 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
+        SKP_Silk_bwexpander( psDecCtrl-&gt;PredCoef_Q12[ 1 ], psDec-&gt;LPC_order, BWE_AFTER_LOSS_Q16 );
+    }
+
+    if( psDecCtrl-&gt;sigtype == SIG_TYPE_VOICED ) {
+        /*********************/
+        /* Decode pitch lags */
+        /*********************/
+        
+        /* Decode pitch values */
+        SKP_Silk_decode_pitch( psDec-&gt;lagIndex[ psDec-&gt;nFramesDecoded ], 
+            psDec-&gt;contourIndex[ psDec-&gt;nFramesDecoded ], psDecCtrl-&gt;pitchL, psDec-&gt;fs_kHz );
+
+        /********************/
+        /* Decode LTP gains */
+        /********************/
+        psDecCtrl-&gt;PERIndex = psDec-&gt;PERIndex[ psDec-&gt;nFramesDecoded ];
+        
+        /* Decode Codebook Index */
+        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ psDecCtrl-&gt;PERIndex ]; /* set pointer to start of codebook */
+
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            Ix = psDec-&gt;LTPIndex[ psDec-&gt;nFramesDecoded ][ k ];
+            for( i = 0; i &lt; LTP_ORDER; i++ ) {
+                psDecCtrl-&gt;LTPCoef_Q14[ SKP_SMULBB( k, LTP_ORDER ) + i ] = cbk_ptr_Q14[ SKP_SMULBB( Ix, LTP_ORDER ) + i ];
+            }
+        }
+
+        /**********************/
+        /* Decode LTP scaling */
+        /**********************/
+        Ix = psDec-&gt;LTP_scaleIndex[ psDec-&gt;nFramesDecoded ];
+        psDecCtrl-&gt;LTP_scale_Q14 = SKP_Silk_LTPScales_table_Q14[ Ix ];
+    } else {
+        SKP_memset( psDecCtrl-&gt;pitchL,      0, NB_SUBFR * sizeof( SKP_int ) );
+        SKP_memset( psDecCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
+        psDecCtrl-&gt;PERIndex      = 0;
+        psDecCtrl-&gt;LTP_scale_Q14 = 0;
+    }
+
+    /*********************************************/
+    /* Decode quantization indices of excitation */
+    /*********************************************/
+    SKP_Silk_decode_pulses( psRC, psDecCtrl, q, psDec-&gt;frame_length );
+
+    /****************************************/
+    /* get number of bytes used so far      */
+    /****************************************/
+    SKP_Silk_range_coder_get_length( psRC, &amp;nBytesUsed );
+    psDec-&gt;nBytesLeft = psRC-&gt;bufferLength - nBytesUsed;
+    if( psDec-&gt;nBytesLeft &lt; 0 ) {
+        psRC-&gt;error = RANGE_CODER_READ_BEYOND_BUFFER;
+    }
+
+    /****************************************/
+    /* check remaining bits in last byte    */
+    /****************************************/
+    if( psDec-&gt;nBytesLeft == 0 ) {
+        SKP_Silk_range_coder_check_after_decoding( psRC );
+    }
+
+    if( psDec-&gt;nFramesInPacket == (psDec-&gt;nFramesDecoded + 1)) {
+        /* To indicate the packet has been fully decoded */
+        psDec-&gt;FrameTermination = SKP_SILK_LAST_FRAME;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decode_pulsesc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decode_pulses.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decode_pulses.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decode_pulses.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,121 +1,105 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-
-
-
-
-
-/*********************************************/
-/* Decode quantization indices of excitation */
-/*********************************************/
-void SKP_Silk_decode_pulses(
-    SKP_Silk_range_coder_state      *psRC,              /* I/O  Range coder state                           */
-    SKP_Silk_decoder_control        *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int                         q[],                /* O    Excitation signal                           */
-    const SKP_int                   frame_length        /* I    Frame length (preliminary)                  */
-)
-{
-    SKP_int   i, j, k, iter, abs_q, nLS, bit;
-    SKP_int   sum_pulses[ MAX_NB_SHELL_BLOCKS ], nLshifts[ MAX_NB_SHELL_BLOCKS ];
-    SKP_int   *pulses_ptr;
-    const SKP_uint16 *cdf_ptr;
-
-    /*********************/
-    /* Decode rate level */
-    /*********************/
-    SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;RateLevelIndex, psRC,
-            SKP_Silk_rate_levels_CDF[ psDecCtrl-&gt;sigtype ], SKP_Silk_rate_levels_CDF_offset );
-
-    /* Calculate number of shell blocks */
-    iter = frame_length / SHELL_CODEC_FRAME_LENGTH;
-
-    /***************************************************/
-    /* Sum-Weighted-Pulses Decoding                    */
-    /***************************************************/
-    cdf_ptr = SKP_Silk_pulses_per_block_CDF[ psDecCtrl-&gt;RateLevelIndex ];
-    for( i = 0; i &lt; iter; i++ ) {
-        nLshifts[ i ] = 0;
-        SKP_Silk_range_decoder( &amp;sum_pulses[ i ], psRC, cdf_ptr, SKP_Silk_pulses_per_block_CDF_offset );
-
-        /* LSB indication */
-        while( sum_pulses[ i ] == ( MAX_PULSES + 1 ) ) {
-            nLshifts[ i ]++;
-            SKP_Silk_range_decoder( &amp;sum_pulses[ i ], psRC,
-                    SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS - 1 ], SKP_Silk_pulses_per_block_CDF_offset );
-        }
-    }
-
-    /***************************************************/
-    /* Shell decoding                                  */
-    /***************************************************/
-    for( i = 0; i &lt; iter; i++ ) {
-        if( sum_pulses[ i ] &gt; 0 ) {
-            SKP_Silk_shell_decoder( &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ], psRC, sum_pulses[ i ] );
-        } else {
-            SKP_memset( &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ], 0, SHELL_CODEC_FRAME_LENGTH * sizeof( SKP_int ) );
-
-
-
-
-
-        }
-    }
-
-    /***************************************************/
-    /* LSB Decoding                                    */
-    /***************************************************/
-    for( i = 0; i &lt; iter; i++ ) {
-        if( nLshifts[ i ] &gt; 0 ) {
-            nLS = nLshifts[ i ];
-            pulses_ptr = &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ];
-            for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
-                abs_q = pulses_ptr[ k ];
-                for( j = 0; j &lt; nLS; j++ ) {
-                    abs_q = SKP_LSHIFT( abs_q, 1 );
-                    SKP_Silk_range_decoder( &amp;bit, psRC, SKP_Silk_lsb_CDF, 1 );
-                    abs_q += bit;
-                }
-                pulses_ptr[ k ] = abs_q;
-            }
-        }
-    }
-
-    /****************************************/
-    /* Decode and add signs to pulse signal */
-    /****************************************/
-    SKP_Silk_decode_signs( psRC, q, frame_length, psDecCtrl-&gt;sigtype,
-        psDecCtrl-&gt;QuantOffsetType, psDecCtrl-&gt;RateLevelIndex);
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/*********************************************/
+/* Decode quantization indices of excitation */
+/*********************************************/
+void SKP_Silk_decode_pulses(
+    SKP_Silk_range_coder_state      *psRC,              /* I/O  Range coder state                           */
+    SKP_Silk_decoder_control        *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int                         q[],                /* O    Excitation signal                           */
+    const SKP_int                   frame_length        /* I    Frame length (preliminary)                  */
+)
+{
+    SKP_int   i, j, k, iter, abs_q, nLS, bit;
+    SKP_int   sum_pulses[ MAX_NB_SHELL_BLOCKS ], nLshifts[ MAX_NB_SHELL_BLOCKS ];
+    SKP_int   *pulses_ptr;
+    const SKP_uint16 *cdf_ptr;
+    
+    /*********************/
+    /* Decode rate level */
+    /*********************/
+    SKP_Silk_range_decoder( &amp;psDecCtrl-&gt;RateLevelIndex, psRC, 
+            SKP_Silk_rate_levels_CDF[ psDecCtrl-&gt;sigtype ], SKP_Silk_rate_levels_CDF_offset );
+
+    /* Calculate number of shell blocks */
+    iter = frame_length / SHELL_CODEC_FRAME_LENGTH;
+    
+    /***************************************************/
+    /* Sum-Weighted-Pulses Decoding                    */
+    /***************************************************/
+    cdf_ptr = SKP_Silk_pulses_per_block_CDF[ psDecCtrl-&gt;RateLevelIndex ];
+    for( i = 0; i &lt; iter; i++ ) {
+        nLshifts[ i ] = 0;
+        SKP_Silk_range_decoder( &amp;sum_pulses[ i ], psRC, cdf_ptr, SKP_Silk_pulses_per_block_CDF_offset );
+
+        /* LSB indication */
+        while( sum_pulses[ i ] == ( MAX_PULSES + 1 ) ) {
+            nLshifts[ i ]++;
+            SKP_Silk_range_decoder( &amp;sum_pulses[ i ], psRC, 
+                    SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS - 1 ], SKP_Silk_pulses_per_block_CDF_offset );
+        }
+    }
+    
+    /***************************************************/
+    /* Shell decoding                                  */
+    /***************************************************/
+    for( i = 0; i &lt; iter; i++ ) {
+        if( sum_pulses[ i ] &gt; 0 ) {
+            SKP_Silk_shell_decoder( &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ], psRC, sum_pulses[ i ] );
+        } else {
+            SKP_memset( &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ], 0, SHELL_CODEC_FRAME_LENGTH * sizeof( SKP_int ) );
+        }
+    }
+
+    /***************************************************/
+    /* LSB Decoding                                    */
+    /***************************************************/
+    for( i = 0; i &lt; iter; i++ ) {
+        if( nLshifts[ i ] &gt; 0 ) {
+            nLS = nLshifts[ i ];
+            pulses_ptr = &amp;q[ SKP_SMULBB( i, SHELL_CODEC_FRAME_LENGTH ) ];
+            for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
+                abs_q = pulses_ptr[ k ];
+                for( j = 0; j &lt; nLS; j++ ) {
+                    abs_q = SKP_LSHIFT( abs_q, 1 ); 
+                    SKP_Silk_range_decoder( &amp;bit, psRC, SKP_Silk_lsb_CDF, 1 );
+                    abs_q += bit;
+                }
+                pulses_ptr[ k ] = abs_q;
+            }
+        }
+    }
+
+    /****************************************/
+    /* Decode and add signs to pulse signal */
+    /****************************************/
+    SKP_Silk_decode_signs( psRC, q, frame_length, psDecCtrl-&gt;sigtype, 
+        psDecCtrl-&gt;QuantOffsetType, psDecCtrl-&gt;RateLevelIndex);
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_decoder_set_fsc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_decoder_set_fs.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_decoder_set_fs.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_decoder_set_fs.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,97 +1,81 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-
-
-
-
-
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Set decoder sampling rate */
-void SKP_Silk_decoder_set_fs(
-    SKP_Silk_decoder_state          *psDec,             /* I/O  Decoder state pointer                       */
-    SKP_int                         fs_kHz              /* I    Sampling frequency (kHz)                    */
-)
-{
-    if( psDec-&gt;fs_kHz != fs_kHz ) {
-        psDec-&gt;fs_kHz  = fs_kHz;
-        psDec-&gt;frame_length = SKP_SMULBB( FRAME_LENGTH_MS, fs_kHz );
-        psDec-&gt;subfr_length = SKP_SMULBB( FRAME_LENGTH_MS / NB_SUBFR, fs_kHz );
-        if( psDec-&gt;fs_kHz == 8 ) {
-            psDec-&gt;LPC_order = MIN_LPC_ORDER;
-            psDec-&gt;psNLSF_CB[ 0 ] = &amp;SKP_Silk_NLSF_CB0_10;
-            psDec-&gt;psNLSF_CB[ 1 ] = &amp;SKP_Silk_NLSF_CB1_10;
-        } else {
-            psDec-&gt;LPC_order = MAX_LPC_ORDER;
-            psDec-&gt;psNLSF_CB[ 0 ] = &amp;SKP_Silk_NLSF_CB0_16;
-            psDec-&gt;psNLSF_CB[ 1 ] = &amp;SKP_Silk_NLSF_CB1_16;
-        }
-        /* Reset part of the decoder state */
-        SKP_memset( psDec-&gt;sLPC_Q14,     0, MAX_LPC_ORDER      * sizeof( SKP_int32 ) );
-        SKP_memset( psDec-&gt;outBuf,       0, MAX_FRAME_LENGTH   * sizeof( SKP_int16 ) );
-        SKP_memset( psDec-&gt;prevNLSF_Q15, 0, MAX_LPC_ORDER      * sizeof( SKP_int )   );
-
-        psDec-&gt;sLTP_buf_idx            = 0;
-        psDec-&gt;lagPrev                 = 100;
-        psDec-&gt;LastGainIndex           = 1;
-        psDec-&gt;prev_sigtype            = 0;
-        psDec-&gt;first_frame_after_reset = 1;
-
-        if( fs_kHz == 24 ) {
-            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_24;
-
-
-
-
-
-            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_24;
-        } else if( fs_kHz == 16 ) {
-            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_16;
-            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_16;
-        } else if( fs_kHz == 12 ) {
-            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_12;
-            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_12;
-        } else if( fs_kHz == 8 ) {
-            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_8;
-            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_8;
-        } else {
-            /* unsupported sampling rate */
-            SKP_assert( 0 );
-        }
-    }
-
-    /* Check that settings are valid */
-    SKP_assert( psDec-&gt;frame_length &gt; 0 &amp;&amp; psDec-&gt;frame_length &lt;= MAX_FRAME_LENGTH );
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Set decoder sampling rate */
+void SKP_Silk_decoder_set_fs(
+    SKP_Silk_decoder_state          *psDec,             /* I/O  Decoder state pointer                       */
+    SKP_int                         fs_kHz              /* I    Sampling frequency (kHz)                    */
+)
+{
+    if( psDec-&gt;fs_kHz != fs_kHz ) {
+        psDec-&gt;fs_kHz  = fs_kHz;
+        psDec-&gt;frame_length = SKP_SMULBB( FRAME_LENGTH_MS, fs_kHz );
+        psDec-&gt;subfr_length = SKP_SMULBB( FRAME_LENGTH_MS / NB_SUBFR, fs_kHz );
+        if( psDec-&gt;fs_kHz == 8 ) {
+            psDec-&gt;LPC_order = MIN_LPC_ORDER;
+            psDec-&gt;psNLSF_CB[ 0 ] = &amp;SKP_Silk_NLSF_CB0_10;
+            psDec-&gt;psNLSF_CB[ 1 ] = &amp;SKP_Silk_NLSF_CB1_10;
+        } else {
+            psDec-&gt;LPC_order = MAX_LPC_ORDER;
+            psDec-&gt;psNLSF_CB[ 0 ] = &amp;SKP_Silk_NLSF_CB0_16;
+            psDec-&gt;psNLSF_CB[ 1 ] = &amp;SKP_Silk_NLSF_CB1_16;
+        }
+        /* Reset part of the decoder state */
+        SKP_memset( psDec-&gt;sLPC_Q14,     0, MAX_LPC_ORDER      * sizeof( SKP_int32 ) );
+        SKP_memset( psDec-&gt;outBuf,       0, MAX_FRAME_LENGTH   * sizeof( SKP_int16 ) );
+        SKP_memset( psDec-&gt;prevNLSF_Q15, 0, MAX_LPC_ORDER      * sizeof( SKP_int )   );
+
+        psDec-&gt;sLTP_buf_idx            = 0;
+        psDec-&gt;lagPrev                 = 100;
+        psDec-&gt;LastGainIndex           = 1;
+        psDec-&gt;prev_sigtype            = 0;
+        psDec-&gt;first_frame_after_reset = 1;
+
+        if( fs_kHz == 24 ) {
+            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_24;
+            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_24;
+        } else if( fs_kHz == 16 ) {
+            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_16;
+            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_16;
+        } else if( fs_kHz == 12 ) {
+            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_12;
+            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_12;
+        } else if( fs_kHz == 8 ) {
+            psDec-&gt;HP_A = SKP_Silk_Dec_A_HP_8;
+            psDec-&gt;HP_B = SKP_Silk_Dec_B_HP_8;
+        } else {
+            /* unsupported sampling rate */
+            SKP_assert( 0 );
+        }
+    } 
+
+    /* Check that settings are valid */
+    SKP_assert( psDec-&gt;frame_length &gt; 0 &amp;&amp; psDec-&gt;frame_length &lt;= MAX_FRAME_LENGTH );
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_defineh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_define.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_define.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_define.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,371 +1,330 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-
-
-
-
-
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_DEFINE_H
-#define SKP_SILK_DEFINE_H
-
-#include &quot;SKP_Silk_errors.h&quot;
-#include &quot;SKP_Silk_typedef.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-
-#define MAX_FRAMES_PER_PACKET                   5
-#define BIT_STREAM_V3                           3
-#define BIT_STREAM_V4                           4
-#define USE_BIT_STREAM_V                        BIT_STREAM_V3 // Should be moved to a API call
-
-
-/* MAX DELTA LAG used for multiframe packets */
-#define MAX_DELTA_LAG                           10
-
-/* Lower limit on bitrate for each mode */
-#define MIN_TARGET_RATE_NB_BPS                  5000
-#define MIN_TARGET_RATE_MB_BPS                  7000
-#define MIN_TARGET_RATE_WB_BPS                  8000
-#define MIN_TARGET_RATE_SWB_BPS                 20000
-
-/* Transition bitrates between modes */
-#define SWB2WB_BITRATE_BPS                      30000
-#define SWB2WB_BITRATE_BPS_INITIAL              25000
-#define WB2SWB_BITRATE_BPS                      35000
-#define WB2MB_BITRATE_BPS                       15000
-#define MB2WB_BITRATE_BPS                       20000
-#define MB2NB_BITRATE_BPS                       10000
-#define NB2MB_BITRATE_BPS                       14000
-
-/* Integration/hysteresis threshold for lowering internal sample frequency */
-/* 30000000 -&gt; 6 sec if bitrate is 5000 bps below limit; 3 sec if bitrate is 10000 bps below limit */
-#define ACCUM_BITS_DIFF_THRESHOLD               30000000
-#define TARGET_RATE_TAB_SZ                      8
-
-/* DTX settings                                 */
-
-
-
-
-
-#define NO_SPEECH_FRAMES_BEFORE_DTX             5       /* eq 100 ms */
-#define MAX_CONSECUTIVE_DTX                     20      /* eq 400 ms */
-
-#define USE_LBRR                                1
-
-/* Amount of concecutive no FEC packets before telling JB */
-#define NO_LBRR_THRES                           10
-
-/* Maximum delay between real packet and LBRR packet */
-#define MAX_LBRR_DELAY                          2
-#define LBRR_IDX_MASK                           1
-
-#define INBAND_FEC_MIN_RATE_BPS                 18000  /* Dont use inband FEC below this total target rate  */
-#define LBRR_LOSS_THRES                         2   /* Start adding LBRR at this loss rate (needs tuning)   */
-
-/* LBRR usage defines */
-#define SKP_SILK_NO_LBRR                        0   /* No LBRR information for this packet                  */
-#define SKP_SILK_ADD_LBRR_TO_PLUS1              1   /* Add LBRR for this packet to packet n + 1             */
-#define SKP_SILK_ADD_LBRR_TO_PLUS2              2   /* Add LBRR for this packet to packet n + 2             */
-
-/* Frame termination indicator defines */
-#define SKP_SILK_LAST_FRAME                     0   /* Last frames in packet                                */
-#define SKP_SILK_MORE_FRAMES                    1   /* More frames to follow this one                       */
-#define SKP_SILK_LBRR_VER1                      2   /* LBRR information from packet n - 1                   */
-#define SKP_SILK_LBRR_VER2                      3   /* LBRR information from packet n - 2                   */
-#define SKP_SILK_EXT_LAYER                      4   /* Extension layers added                               */
-
-/* Number of Second order Sections for SWB detection HP filter */
-#define NB_SOS                                  3
-#define HP_8_KHZ_THRES                          10          /* average energy per sample, above 8 kHz       */
-#define CONCEC_SWB_SMPLS_THRES                  480 * 15    /* 300 ms                                       */
-#define WB_DETECT_ACTIVE_SPEECH_MS_THRES        15000       /* ms of active speech needed for WB detection  */
-
-/* Low complexity setting */
-#ifdef EMBEDDED_OPT
-#   define LOW_COMPLEXITY_ONLY                  1
-#else
-#   define LOW_COMPLEXITY_ONLY                  0
-#endif
-
-/* Activate bandwidth transition filtering for mode switching */
-#ifdef EMBEDDED_OPT
-#   define SWITCH_TRANSITION_FILTERING          0
-#else
-#ifndef FORCE_FS_KHZ
-#   define SWITCH_TRANSITION_FILTERING          1
-#else
-#   define SWITCH_TRANSITION_FILTERING          0
-
-
-
-
-
-#endif
-#endif
-
-/* Decoder Parameters */
-#define DEC_HP_ORDER                            2
-
-/* Maximum sampling frequency, should be 16 for embedded */
-#define MAX_FS_KHZ                              24
-
-/* Signal Types used by silk */
-#define SIG_TYPE_VOICED                         0
-#define SIG_TYPE_UNVOICED                       1
-
-/* VAD Types used by silk */
-#define NO_VOICE_ACTIVITY                       0
-#define VOICE_ACTIVITY                          1
-
-/* number of samples per frame */
-#define FRAME_LENGTH_MS                         20 /* 20 ms */
-#define MAX_FRAME_LENGTH                        (FRAME_LENGTH_MS * MAX_FS_KHZ)
-
-/* number of lookahead samples for pitch analysis */
-#define LA_PITCH_MS                             3
-#define LA_PITCH_MAX                            (LA_PITCH_MS * MAX_FS_KHZ)
-
-/* number of lookahead samples for noise shape analysis */
-#define LA_SHAPE_MS                             5
-#define LA_SHAPE_MAX                            (LA_SHAPE_MS * MAX_FS_KHZ)
-
-/* Order of LPC used in find pitch */
-#define FIND_PITCH_LPC_ORDER_MAX                16
-
-/* Length of LPC window used in find pitch */
-#define FIND_PITCH_LPC_WIN_MS                   (30 + (LA_PITCH_MS &lt;&lt; 1))
-#define FIND_PITCH_LPC_WIN_MAX                  (FIND_PITCH_LPC_WIN_MS * MAX_FS_KHZ)
-
-#define PITCH_EST_COMPLEXITY_HC_MODE            SigProc_PITCH_EST_MAX_COMPLEX
-#define PITCH_EST_COMPLEXITY_MC_MODE            SigProc_PITCH_EST_MID_COMPLEX
-#define PITCH_EST_COMPLEXITY_LC_MODE            SigProc_PITCH_EST_MIN_COMPLEX
-
-
-/* Max number of bytes in payload output buffer (may contain multiple frames) */
-#define MAX_ARITHM_BYTES                        1024
-
-#define RANGE_CODER_WRITE_BEYOND_BUFFER         -1
-#define RANGE_CODER_CDF_OUT_OF_RANGE            -2
-#define RANGE_CODER_NORMALIZATION_FAILED        -3
-#define RANGE_CODER_ZERO_INTERVAL_WIDTH         -4
-
-
-
-
-
-#define RANGE_CODER_DECODER_CHECK_FAILED        -5
-#define RANGE_CODER_READ_BEYOND_BUFFER          -6
-#define RANGE_CODER_ILLEGAL_SAMPLING_RATE       -7
-#define RANGE_CODER_DEC_PAYLOAD_TOO_LONG        -8
-
-/* dB level of lowest gain quantization level */
-#define MIN_QGAIN_DB                            6
-/* dB level of highest gain quantization level */
-#define MAX_QGAIN_DB                            86
-/* Number of gain quantization levels */
-#define N_LEVELS_QGAIN                          64
-/* Max increase in gain quantization index */
-#define MAX_DELTA_GAIN_QUANT                    40
-/* Max decrease in gain quantization index */
-#define MIN_DELTA_GAIN_QUANT                    -4
-
-/* Quantization offsets (multiples of 4) */
-#define OFFSET_VL_Q10                           32
-#define OFFSET_VH_Q10                           100
-#define OFFSET_UVL_Q10                          100
-#define OFFSET_UVH_Q10                          256
-
-/* Maximum numbers of iterations used to stabilize a LPC vector */
-#define MAX_LPC_STABILIZE_ITERATIONS            20
-
-#define MAX_LPC_ORDER                           16
-#define MIN_LPC_ORDER                           10
-
-/* Find Pred Coef defines */
-#define LTP_ORDER                               5
-
-/* LTP quantization settings */
-#define NB_LTP_CBKS                             3
-
-/* Number of subframes */
-#define NB_SUBFR                                4
-
-/* Flag to use harmonic noise shaping */
-#define USE_HARM_SHAPING                        1
-
-/* Max LPC order of noise shaping filters */
-#define SHAPE_LPC_ORDER_MAX                     16
-
-#define HARM_SHAPE_FIR_TAPS                     3
-
-/* Length of LPC window used in noise shape analysis */
-#define SHAPE_LPC_WIN_MS                        15
-#define SHAPE_LPC_WIN_16_KHZ                    (SHAPE_LPC_WIN_MS * 16)
-
-
-
-
-
-#define SHAPE_LPC_WIN_24_KHZ                    (SHAPE_LPC_WIN_MS * 24)
-#define SHAPE_LPC_WIN_MAX                       (SHAPE_LPC_WIN_MS * MAX_FS_KHZ)
-
-/* Maximum number of delayed decision states */
-#define DEL_DEC_STATES_MAX                      4
-
-#define LTP_BUF_LENGTH                          512
-#define LTP_MASK                                (LTP_BUF_LENGTH - 1)
-
-#define DECISION_DELAY                          32
-#define DECISION_DELAY_MASK                     (DECISION_DELAY - 1)
-
-/* number of subframes for excitation entropy coding */
-#define SHELL_CODEC_FRAME_LENGTH                16
-#define MAX_NB_SHELL_BLOCKS                     (MAX_FRAME_LENGTH / SHELL_CODEC_FRAME_LENGTH)
-
-/* number of rate levels, for entropy coding of excitation */
-#define N_RATE_LEVELS                           10
-
-/* maximum sum of pulses per shell coding frame */
-#define MAX_PULSES                              18
-
-#define MAX_MATRIX_SIZE                         MAX_LPC_ORDER /* Max of LPC Order and LTP order */
-
-#if( MAX_LPC_ORDER &gt; DECISION_DELAY )
-# define NSQ_LPC_BUF_LENGTH                     MAX_LPC_ORDER
-#else
-# define NSQ_LPC_BUF_LENGTH                     DECISION_DELAY
-#endif
-
-/***********************/
-/* High pass filtering */
-/***********************/
-#define HIGH_PASS_INPUT                         1
-
-/***************************/
-/* Voice activity detector */
-/***************************/
-#define VAD_N_BANDS                             4       /* 0-1, 1-2, 2-4, and 4-8 kHz                       */
-
-#define VAD_INTERNAL_SUBFRAMES_LOG2             2
-#define VAD_INTERNAL_SUBFRAMES                  (1 &lt;&lt; VAD_INTERNAL_SUBFRAMES_LOG2)
-
-#define VAD_NOISE_LEVEL_SMOOTH_COEF_Q16         1024    /* Must be &lt;  4096                                  */
-#define VAD_NOISE_LEVELS_BIAS                   50
-
-/* Sigmoid settings */
-#define VAD_NEGATIVE_OFFSET_Q5                  128     /* sigmoid is 0 at -128                             */
-
-
-
-
-
-#define VAD_SNR_FACTOR_Q16                      45000
-
-/* smoothing for SNR measurement */
-#define VAD_SNR_SMOOTH_COEF_Q18                 4096
-
-/******************/
-/* NLSF quantizer */
-/******************/
-#ifdef NLSF_TRAINING
-#   define NLSF_MSVQ_MAX_CB_STAGES                      30
-#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE               256
-#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END    128
-#else
-#   define NLSF_MSVQ_MAX_CB_STAGES                      10  /* Update manually when changing codebooks      */
-#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE               128 /* Update manually when changing codebooks      */
-#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END    16  /* Update manually when changing codebooks      */
-#endif
-
-#define NLSF_MSVQ_FLUCTUATION_REDUCTION         1
-#define MAX_NLSF_MSVQ_SURVIVORS                 16
-#define MAX_NLSF_MSVQ_SURVIVORS_LC_MODE         2
-#define MAX_NLSF_MSVQ_SURVIVORS_MC_MODE         4
-
-/* Based on above defines, calculate how much memory is necessary to allocate */
-#if( NLSF_MSVQ_MAX_VECTORS_IN_STAGE &gt; ( MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END ) )
-#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE  NLSF_MSVQ_MAX_VECTORS_IN_STAGE
-#else
-#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE  MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END
-#endif
-
-#if( NLSF_MSVQ_MAX_VECTORS_IN_STAGE &gt; ( MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END ) )
-#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED  NLSF_MSVQ_MAX_VECTORS_IN_STAGE
-#else
-#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED  MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END
-#endif
-
-#define NLSF_MSVQ_SURV_MAX_REL_RD               4
-
-/* Transition filtering for mode switching */
-#if SWITCH_TRANSITION_FILTERING
-#  define TRANSITION_TIME_UP_MS             5120 // 5120 = 64 * FRAME_LENGTH_MS * ( TRANSITION_INT_NUM - 1 ) = 64*(20*4)
-#  define TRANSITION_TIME_DOWN_MS           2560 // 2560 = 32 * FRAME_LENGTH_MS * ( TRANSITION_INT_NUM - 1 ) = 32*(20*4)
-#  define TRANSITION_NB                     3 /* Hardcoded in tables */
-#  define TRANSITION_NA                     2 /* Hardcoded in tables */
-#  define TRANSITION_INT_NUM                5 /* Hardcoded in tables */
-#  define TRANSITION_FRAMES_UP          ( TRANSITION_TIME_UP_MS   / FRAME_LENGTH_MS )
-#  define TRANSITION_FRAMES_DOWN        ( TRANSITION_TIME_DOWN_MS / FRAME_LENGTH_MS )
-#  define TRANSITION_INT_STEPS_UP       ( TRANSITION_FRAMES_UP    / ( TRANSITION_INT_NUM - 1 )  )
-
-
-
-
-
-#  define TRANSITION_INT_STEPS_DOWN     ( TRANSITION_FRAMES_DOWN  / ( TRANSITION_INT_NUM - 1 )  )
-#endif
-
-/* Row based */
-#define matrix_ptr(Matrix_base_adr, row, column, N)         *(Matrix_base_adr + ((row)*(N)+(column)))
-#define matrix_adr(Matrix_base_adr, row, column, N)          (Matrix_base_adr + ((row)*(N)+(column)))
-
-/* Column based */
-#ifndef matrix_c_ptr
-#   define matrix_c_ptr(Matrix_base_adr, row, column, M)    *(Matrix_base_adr + ((row)+(M)*(column)))
-#endif
-#define matrix_c_adr(Matrix_base_adr, row, column, M)        (Matrix_base_adr + ((row)+(M)*(column)))
-
-/* BWE factors to apply after packet loss */
-#define BWE_AFTER_LOSS_Q16                              63570
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_DEFINE_H
+#define SKP_SILK_DEFINE_H
+
+#include &quot;SKP_Silk_errors.h&quot;
+#include &quot;SKP_Silk_typedef.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+
+#define MAX_FRAMES_PER_PACKET                   5
+#define BIT_STREAM_V3                           3
+#define BIT_STREAM_V4                           4
+#define USE_BIT_STREAM_V                        BIT_STREAM_V3 // Should be moved to a API call
+
+
+/* MAX DELTA LAG used for multiframe packets */
+#define MAX_DELTA_LAG                           10
+
+/* Lower limit on bitrate for each mode */
+#define MIN_TARGET_RATE_NB_BPS                  5000
+#define MIN_TARGET_RATE_MB_BPS                  7000
+#define MIN_TARGET_RATE_WB_BPS                  8000
+#define MIN_TARGET_RATE_SWB_BPS                 20000
+
+/* Transition bitrates between modes */
+#define SWB2WB_BITRATE_BPS                      30000
+#define SWB2WB_BITRATE_BPS_INITIAL              25000
+#define WB2SWB_BITRATE_BPS                      35000
+#define WB2MB_BITRATE_BPS                       15000
+#define MB2WB_BITRATE_BPS                       20000
+#define MB2NB_BITRATE_BPS                       10000
+#define NB2MB_BITRATE_BPS                       14000
+
+/* Integration/hysteresis threshold for lowering internal sample frequency */
+/* 30000000 -&gt; 6 sec if bitrate is 5000 bps below limit; 3 sec if bitrate is 10000 bps below limit */
+#define ACCUM_BITS_DIFF_THRESHOLD               30000000 
+#define TARGET_RATE_TAB_SZ                      8
+
+/* DTX settings                                 */
+#define NO_SPEECH_FRAMES_BEFORE_DTX             5       /* eq 100 ms */
+#define MAX_CONSECUTIVE_DTX                     20      /* eq 400 ms */
+
+#define USE_LBRR                                1
+
+/* Amount of concecutive no FEC packets before telling JB */
+#define NO_LBRR_THRES                           10
+
+/* Maximum delay between real packet and LBRR packet */
+#define MAX_LBRR_DELAY                          2
+#define LBRR_IDX_MASK                           1
+
+#define INBAND_FEC_MIN_RATE_BPS                 18000  /* Dont use inband FEC below this total target rate  */
+#define LBRR_LOSS_THRES                         2   /* Start adding LBRR at this loss rate (needs tuning)   */
+
+/* LBRR usage defines */
+#define SKP_SILK_NO_LBRR                        0   /* No LBRR information for this packet                  */
+#define SKP_SILK_ADD_LBRR_TO_PLUS1              1   /* Add LBRR for this packet to packet n + 1             */
+#define SKP_SILK_ADD_LBRR_TO_PLUS2              2   /* Add LBRR for this packet to packet n + 2             */
+
+/* Frame termination indicator defines */
+#define SKP_SILK_LAST_FRAME                     0   /* Last frames in packet                                */
+#define SKP_SILK_MORE_FRAMES                    1   /* More frames to follow this one                       */
+#define SKP_SILK_LBRR_VER1                      2   /* LBRR information from packet n - 1                   */
+#define SKP_SILK_LBRR_VER2                      3   /* LBRR information from packet n - 2                   */
+#define SKP_SILK_EXT_LAYER                      4   /* Extension layers added                               */
+
+/* Number of Second order Sections for SWB detection HP filter */
+#define NB_SOS                                  3
+#define HP_8_KHZ_THRES                          10          /* average energy per sample, above 8 kHz       */
+#define CONCEC_SWB_SMPLS_THRES                  480 * 15    /* 300 ms                                       */
+#define WB_DETECT_ACTIVE_SPEECH_MS_THRES        15000       /* ms of active speech needed for WB detection  */
+
+/* Low complexity setting */
+#ifdef EMBEDDED_OPT
+#   define LOW_COMPLEXITY_ONLY                  1
+#else
+#   define LOW_COMPLEXITY_ONLY                  0
+#endif
+
+/* Activate bandwidth transition filtering for mode switching */
+#ifdef EMBEDDED_OPT
+#   define SWITCH_TRANSITION_FILTERING          0
+#else
+#ifndef FORCE_FS_KHZ 
+#   define SWITCH_TRANSITION_FILTERING          1
+#else
+#   define SWITCH_TRANSITION_FILTERING          0
+#endif
+#endif
+
+/* Decoder Parameters */
+#define DEC_HP_ORDER                            2
+
+/* Maximum sampling frequency, should be 16 for embedded */
+#define MAX_FS_KHZ                              24 
+
+/* Signal Types used by silk */
+#define SIG_TYPE_VOICED                         0
+#define SIG_TYPE_UNVOICED                       1
+
+/* VAD Types used by silk */
+#define NO_VOICE_ACTIVITY                       0
+#define VOICE_ACTIVITY                          1
+
+/* number of samples per frame */ 
+#define FRAME_LENGTH_MS                         20 /* 20 ms */
+#define MAX_FRAME_LENGTH                        (FRAME_LENGTH_MS * MAX_FS_KHZ)
+
+/* number of lookahead samples for pitch analysis */
+#define LA_PITCH_MS                             3
+#define LA_PITCH_MAX                            (LA_PITCH_MS * MAX_FS_KHZ)
+
+/* number of lookahead samples for noise shape analysis */
+#define LA_SHAPE_MS                             5
+#define LA_SHAPE_MAX                            (LA_SHAPE_MS * MAX_FS_KHZ)
+
+/* Order of LPC used in find pitch */
+#define FIND_PITCH_LPC_ORDER_MAX                16
+
+/* Length of LPC window used in find pitch */
+#define FIND_PITCH_LPC_WIN_MS                   (30 + (LA_PITCH_MS &lt;&lt; 1))
+#define FIND_PITCH_LPC_WIN_MAX                  (FIND_PITCH_LPC_WIN_MS * MAX_FS_KHZ)
+
+#define PITCH_EST_COMPLEXITY_HC_MODE            SigProc_PITCH_EST_MAX_COMPLEX
+#define PITCH_EST_COMPLEXITY_MC_MODE            SigProc_PITCH_EST_MID_COMPLEX
+#define PITCH_EST_COMPLEXITY_LC_MODE            SigProc_PITCH_EST_MIN_COMPLEX
+
+
+/* Max number of bytes in payload output buffer (may contain multiple frames) */
+#define MAX_ARITHM_BYTES                        1024
+
+#define RANGE_CODER_WRITE_BEYOND_BUFFER         -1
+#define RANGE_CODER_CDF_OUT_OF_RANGE            -2
+#define RANGE_CODER_NORMALIZATION_FAILED        -3
+#define RANGE_CODER_ZERO_INTERVAL_WIDTH         -4
+#define RANGE_CODER_DECODER_CHECK_FAILED        -5
+#define RANGE_CODER_READ_BEYOND_BUFFER          -6
+#define RANGE_CODER_ILLEGAL_SAMPLING_RATE       -7
+#define RANGE_CODER_DEC_PAYLOAD_TOO_LONG        -8
+
+/* dB level of lowest gain quantization level */
+#define MIN_QGAIN_DB                            6
+/* dB level of highest gain quantization level */
+#define MAX_QGAIN_DB                            86
+/* Number of gain quantization levels */
+#define N_LEVELS_QGAIN                          64
+/* Max increase in gain quantization index */
+#define MAX_DELTA_GAIN_QUANT                    40
+/* Max decrease in gain quantization index */
+#define MIN_DELTA_GAIN_QUANT                    -4
+
+/* Quantization offsets (multiples of 4) */
+#define OFFSET_VL_Q10                           32
+#define OFFSET_VH_Q10                           100
+#define OFFSET_UVL_Q10                          100
+#define OFFSET_UVH_Q10                          256
+
+/* Maximum numbers of iterations used to stabilize a LPC vector */
+#define MAX_LPC_STABILIZE_ITERATIONS            20
+
+#define MAX_LPC_ORDER                           16
+#define MIN_LPC_ORDER                           10
+
+/* Find Pred Coef defines */
+#define LTP_ORDER                               5
+
+/* LTP quantization settings */
+#define NB_LTP_CBKS                             3
+
+/* Number of subframes */
+#define NB_SUBFR                                4
+
+/* Flag to use harmonic noise shaping */
+#define USE_HARM_SHAPING                        1
+
+/* Max LPC order of noise shaping filters */
+#define SHAPE_LPC_ORDER_MAX                     16
+
+#define HARM_SHAPE_FIR_TAPS                     3
+
+/* Length of LPC window used in noise shape analysis */
+#define SHAPE_LPC_WIN_MS                        15
+#define SHAPE_LPC_WIN_16_KHZ                    (SHAPE_LPC_WIN_MS * 16)
+#define SHAPE_LPC_WIN_24_KHZ                    (SHAPE_LPC_WIN_MS * 24)
+#define SHAPE_LPC_WIN_MAX                       (SHAPE_LPC_WIN_MS * MAX_FS_KHZ)
+
+/* Maximum number of delayed decision states */
+#define DEL_DEC_STATES_MAX                      4
+
+#define LTP_BUF_LENGTH                          512
+#define LTP_MASK                                (LTP_BUF_LENGTH - 1)
+
+#define DECISION_DELAY                          32
+#define DECISION_DELAY_MASK                     (DECISION_DELAY - 1)
+
+/* number of subframes for excitation entropy coding */
+#define SHELL_CODEC_FRAME_LENGTH                16
+#define MAX_NB_SHELL_BLOCKS                     (MAX_FRAME_LENGTH / SHELL_CODEC_FRAME_LENGTH)
+
+/* number of rate levels, for entropy coding of excitation */
+#define N_RATE_LEVELS                           10
+
+/* maximum sum of pulses per shell coding frame */
+#define MAX_PULSES                              18
+
+#define MAX_MATRIX_SIZE                         MAX_LPC_ORDER /* Max of LPC Order and LTP order */
+
+#if( MAX_LPC_ORDER &gt; DECISION_DELAY )
+# define NSQ_LPC_BUF_LENGTH                     MAX_LPC_ORDER
+#else
+# define NSQ_LPC_BUF_LENGTH                     DECISION_DELAY
+#endif
+
+/***********************/
+/* High pass filtering */
+/***********************/
+#define HIGH_PASS_INPUT                         1
+
+/***************************/
+/* Voice activity detector */
+/***************************/
+#define VAD_N_BANDS                             4       /* 0-1, 1-2, 2-4, and 4-8 kHz                       */
+
+#define VAD_INTERNAL_SUBFRAMES_LOG2             2
+#define VAD_INTERNAL_SUBFRAMES                  (1 &lt;&lt; VAD_INTERNAL_SUBFRAMES_LOG2)
+    
+#define VAD_NOISE_LEVEL_SMOOTH_COEF_Q16         1024    /* Must be &lt;  4096                                  */
+#define VAD_NOISE_LEVELS_BIAS                   50 
+
+/* Sigmoid settings */
+#define VAD_NEGATIVE_OFFSET_Q5                  128     /* sigmoid is 0 at -128                             */
+#define VAD_SNR_FACTOR_Q16                      45000 
+
+/* smoothing for SNR measurement */
+#define VAD_SNR_SMOOTH_COEF_Q18                 4096
+
+/******************/
+/* NLSF quantizer */
+/******************/
+#ifdef NLSF_TRAINING
+#   define NLSF_MSVQ_MAX_CB_STAGES                      30 
+#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE               256
+#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END    128
+#else
+#   define NLSF_MSVQ_MAX_CB_STAGES                      10  /* Update manually when changing codebooks      */
+#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE               128 /* Update manually when changing codebooks      */
+#   define NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END    16  /* Update manually when changing codebooks      */
+#endif
+
+#define NLSF_MSVQ_FLUCTUATION_REDUCTION         1
+#define MAX_NLSF_MSVQ_SURVIVORS                 16
+#define MAX_NLSF_MSVQ_SURVIVORS_LC_MODE         2
+#define MAX_NLSF_MSVQ_SURVIVORS_MC_MODE         4
+
+/* Based on above defines, calculate how much memory is necessary to allocate */
+#if( NLSF_MSVQ_MAX_VECTORS_IN_STAGE &gt; ( MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END ) )
+#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE  NLSF_MSVQ_MAX_VECTORS_IN_STAGE
+#else
+#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED_LC_MODE  MAX_NLSF_MSVQ_SURVIVORS_LC_MODE * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END
+#endif
+
+#if( NLSF_MSVQ_MAX_VECTORS_IN_STAGE &gt; ( MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END ) )
+#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED  NLSF_MSVQ_MAX_VECTORS_IN_STAGE
+#else
+#   define NLSF_MSVQ_TREE_SEARCH_MAX_VECTORS_EVALUATED  MAX_NLSF_MSVQ_SURVIVORS * NLSF_MSVQ_MAX_VECTORS_IN_STAGE_TWO_TO_END
+#endif
+
+#define NLSF_MSVQ_SURV_MAX_REL_RD               4
+
+/* Transition filtering for mode switching */
+#if SWITCH_TRANSITION_FILTERING
+#  define TRANSITION_TIME_UP_MS             5120 // 5120 = 64 * FRAME_LENGTH_MS * ( TRANSITION_INT_NUM - 1 ) = 64*(20*4)
+#  define TRANSITION_TIME_DOWN_MS           2560 // 2560 = 32 * FRAME_LENGTH_MS * ( TRANSITION_INT_NUM - 1 ) = 32*(20*4)
+#  define TRANSITION_NB                     3 /* Hardcoded in tables */
+#  define TRANSITION_NA                     2 /* Hardcoded in tables */
+#  define TRANSITION_INT_NUM                5 /* Hardcoded in tables */
+#  define TRANSITION_FRAMES_UP          ( TRANSITION_TIME_UP_MS   / FRAME_LENGTH_MS )
+#  define TRANSITION_FRAMES_DOWN        ( TRANSITION_TIME_DOWN_MS / FRAME_LENGTH_MS )
+#  define TRANSITION_INT_STEPS_UP       ( TRANSITION_FRAMES_UP    / ( TRANSITION_INT_NUM - 1 )  )
+#  define TRANSITION_INT_STEPS_DOWN     ( TRANSITION_FRAMES_DOWN  / ( TRANSITION_INT_NUM - 1 )  )
+#endif
+
+/* Row based */
+#define matrix_ptr(Matrix_base_adr, row, column, N)         *(Matrix_base_adr + ((row)*(N)+(column)))
+#define matrix_adr(Matrix_base_adr, row, column, N)          (Matrix_base_adr + ((row)*(N)+(column)))
+
+/* Column based */
+#ifndef matrix_c_ptr
+#   define matrix_c_ptr(Matrix_base_adr, row, column, M)    *(Matrix_base_adr + ((row)+(M)*(column)))
+#endif
+#define matrix_c_adr(Matrix_base_adr, row, column, M)        (Matrix_base_adr + ((row)+(M)*(column)))
+
+/* BWE factors to apply after packet loss */
+#define BWE_AFTER_LOSS_Q16                              63570
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_define_FIXh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_define_FIX.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_define_FIX.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_define_FIX.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,113 +1,97 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-
-
-
-
-
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_DEFINE_FIX_H
-#define SKP_SILK_DEFINE_FIX_H
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/* Head room for correlations                           */
-#define LTP_CORRS_HEAD_ROOM                             2
-#define LPC_CORRS_HEAD_ROOM                             10
-
-#define WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES_Q8          179     // 179.2_Q8 = 0.7f required speech activity for counting frame as active
-
-/* DTX settings */
-#define SPEECH_ACTIVITY_DTX_THRES_Q8                    26      // 25.60_Q8 = 0.1f
-
-#define LBRR_SPEECH_ACTIVITY_THRES_Q8                   128
-
-/* level of noise floor for whitening filter LPC analysis in pitch analysis */
-#define FIND_PITCH_WHITE_NOISE_FRACTION_Q16             66
-
-/* bandwdith expansion for whitening filter in pitch analysis */
-#define FIND_PITCH_BANDWITH_EXPANSION_Q16               64881
-
-/* Threshold used by pitch estimator for early escape */
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_HC_MODE    45875       // 0.7
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_MC_MODE    49152       // 0.75
-#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_LC_MODE    52429       // 0.8
-
-/* Regualarization factor for correlation matrix. Equivalent to adding noise at -50 dB */
-#define FIND_LTP_COND_FAC_Q31                           21475
-#define FIND_LPC_COND_FAC_Q32                           257698       // 6e-5
-
-/* Find Pred Coef defines */
-#define INACTIVE_BWExp_Q16                              64225       // 0.98
-#define ACTIVE_BWExp_Q16                                65470       // 0.999
-#define LTP_DAMPING_Q16                                 66
-#define LTP_SMOOTHING_Q26                               6710886
-
-/* LTP quantization settings */
-
-
-
-
-
-#define MU_LTP_QUANT_NB_Q8                              8
-#define MU_LTP_QUANT_MB_Q8                              6
-#define MU_LTP_QUANT_WB_Q8                              5
-#define MU_LTP_QUANT_SWB_Q8                             4
-
-/***********************/
-/* High pass filtering */
-/***********************/
-/* Smoothing parameters for low end of pitch frequency range estimation */
-#define VARIABLE_HP_SMTH_COEF1_Q16                      6554    // 0.1
-#define VARIABLE_HP_SMTH_COEF2_Q16                      983     // 0.015
-
-/* Min and max values for low end of pitch frequency range estimation */
-#define VARIABLE_HP_MIN_FREQ_Q0                         80
-#define VARIABLE_HP_MAX_FREQ_Q0                         150
-
-/* Max absolute difference between log2 of pitch frequency and smoother state, to enter the smoother */
-#define VARIABLE_HP_MAX_DELTA_FREQ_Q7                   51      // 0.4 in Q7
-
-/* Defines for CN generation */
-#define CNG_BUF_MASK_MAX                                255             /* 2^floor(log2(MAX_FRAME_LENGTH))  */
-#define CNG_GAIN_SMTH_Q16                               4634            /* 0.25^(1/4)                       */
-#define CNG_NLSF_SMTH_Q16                               16348           /* 0.25                             */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_DEFINE_FIX_H
+#define SKP_SILK_DEFINE_FIX_H
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* Head room for correlations                           */
+#define LTP_CORRS_HEAD_ROOM                             2
+#define LPC_CORRS_HEAD_ROOM                             10
+
+#define WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES_Q8          179     // 179.2_Q8 = 0.7f required speech activity for counting frame as active
+
+/* DTX settings */
+#define SPEECH_ACTIVITY_DTX_THRES_Q8                    26      // 25.60_Q8 = 0.1f
+
+#define LBRR_SPEECH_ACTIVITY_THRES_Q8                   128
+
+/* level of noise floor for whitening filter LPC analysis in pitch analysis */
+#define FIND_PITCH_WHITE_NOISE_FRACTION_Q16             66
+
+/* bandwdith expansion for whitening filter in pitch analysis */
+#define FIND_PITCH_BANDWITH_EXPANSION_Q16               64881
+
+/* Threshold used by pitch estimator for early escape */
+#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_HC_MODE    45875       // 0.7
+#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_MC_MODE    49152       // 0.75
+#define FIND_PITCH_CORRELATION_THRESHOLD_Q16_LC_MODE    52429       // 0.8
+
+/* Regualarization factor for correlation matrix. Equivalent to adding noise at -50 dB */
+#define FIND_LTP_COND_FAC_Q31                           21475
+#define FIND_LPC_COND_FAC_Q32                           257698       // 6e-5
+
+/* Find Pred Coef defines */
+#define INACTIVE_BWExp_Q16                              64225       // 0.98
+#define ACTIVE_BWExp_Q16                                65470       // 0.999
+#define LTP_DAMPING_Q16                                 66
+#define LTP_SMOOTHING_Q26                               6710886
+
+/* LTP quantization settings */
+#define MU_LTP_QUANT_NB_Q8                              8
+#define MU_LTP_QUANT_MB_Q8                              6
+#define MU_LTP_QUANT_WB_Q8                              5
+#define MU_LTP_QUANT_SWB_Q8                             4
+
+/***********************/
+/* High pass filtering */
+/***********************/
+/* Smoothing parameters for low end of pitch frequency range estimation */
+#define VARIABLE_HP_SMTH_COEF1_Q16                      6554    // 0.1
+#define VARIABLE_HP_SMTH_COEF2_Q16                      983     // 0.015
+
+/* Min and max values for low end of pitch frequency range estimation */
+#define VARIABLE_HP_MIN_FREQ_Q0                         80
+#define VARIABLE_HP_MAX_FREQ_Q0                         150
+
+/* Max absolute difference between log2 of pitch frequency and smoother state, to enter the smoother */
+#define VARIABLE_HP_MAX_DELTA_FREQ_Q7                   51      // 0.4 in Q7
+
+/* Defines for CN generation */
+#define CNG_BUF_MASK_MAX                                255             /* 2^floor(log2(MAX_FRAME_LENGTH))  */
+#define CNG_GAIN_SMTH_Q16                               4634            /* 0.25^(1/4)                       */
+#define CNG_NLSF_SMTH_Q16                               16348           /* 0.25                             */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_detect_SWB_inputc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_detect_SWB_input.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_detect_SWB_input.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_detect_SWB_input.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,92 +1,76 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-
-
-
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*
- * Detect SWB input by measuring energy above 8 kHz.
- */
-
-#include &quot;SKP_Silk_main.h&quot;
-
-void SKP_Silk_detect_SWB_input(
-    SKP_Silk_detect_SWB_state   *psSWBdetect,   /* (I/O) encoder state  */
-    const SKP_int16             samplesIn[],    /* (I) input to encoder */
-    SKP_int                     nSamplesIn      /* (I) length of input */
-)
-{
-    SKP_int     HP_8_kHz_len, i;
-    SKP_int16   in_HP_8_kHz[ MAX_FRAME_LENGTH ];
-    SKP_int32   energy_32, shift;
-
-    /* High pass filter with cutoff at 8 khz */
-    HP_8_kHz_len = SKP_min_int( nSamplesIn, MAX_FRAME_LENGTH );
-    HP_8_kHz_len = SKP_max_int( HP_8_kHz_len, 0 );
-
-    /* Cutoff around 9 khz */
-    /* A = conv(conv([8192,14613, 6868], [8192,12883, 7337]), [8192,11586, 7911]); */
-    /* B = conv(conv([575, -948, 575], [575, -221, 575]), [575, 104, 575]); */
-    SKP_Silk_biquad( samplesIn, SKP_Silk_SWB_detect_B_HP_Q13[ 0 ], SKP_Silk_SWB_detect_A_HP_Q13[ 0 ],
-        psSWBdetect-&gt;S_HP_8_kHz[ 0 ], in_HP_8_kHz, HP_8_kHz_len );
-    for( i = 1; i &lt; NB_SOS; i++ ) {
-        SKP_Silk_biquad( in_HP_8_kHz, SKP_Silk_SWB_detect_B_HP_Q13[ i ], SKP_Silk_SWB_detect_A_HP_Q13[ i ],
-            psSWBdetect-&gt;S_HP_8_kHz[ i ], in_HP_8_kHz, HP_8_kHz_len );
-    }
-
-    /* Calculate energy in HP signal */
-    SKP_Silk_sum_sqr_shift( &amp;energy_32, &amp;shift, in_HP_8_kHz, HP_8_kHz_len );
-
-
-
-
-
-
-    /* Count concecutive samples above threshold, after adjusting threshold for number of input samples and shift */
-    if( energy_32 &gt; SKP_RSHIFT( SKP_SMULBB( HP_8_KHZ_THRES, HP_8_kHz_len ), shift ) ) {
-        psSWBdetect-&gt;ConsecSmplsAboveThres += nSamplesIn;
-        if( psSWBdetect-&gt;ConsecSmplsAboveThres &gt; CONCEC_SWB_SMPLS_THRES ) {
-            psSWBdetect-&gt;SWB_detected = 1;
-        }
-    } else {
-        psSWBdetect-&gt;ConsecSmplsAboveThres -= nSamplesIn;
-        psSWBdetect-&gt;ConsecSmplsAboveThres = SKP_max( psSWBdetect-&gt;ConsecSmplsAboveThres, 0 );
-    }
-
-    /* If sufficient speech activity and no SWB detected, we detect the signal as being WB */
-    if( ( psSWBdetect-&gt;ActiveSpeech_ms &gt; WB_DETECT_ACTIVE_SPEECH_MS_THRES ) &amp;&amp; ( psSWBdetect-&gt;SWB_detected == 0 ) ) {
-        psSWBdetect-&gt;WB_detected = 1;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*
+ * Detect SWB input by measuring energy above 8 kHz.
+ */
+
+#include &quot;SKP_Silk_main.h&quot;
+
+void SKP_Silk_detect_SWB_input(
+    SKP_Silk_detect_SWB_state   *psSWBdetect,   /* (I/O) encoder state  */
+    const SKP_int16             samplesIn[],    /* (I) input to encoder */
+    SKP_int                     nSamplesIn      /* (I) length of input */
+)
+{
+    SKP_int     HP_8_kHz_len, i;
+    SKP_int16   in_HP_8_kHz[ MAX_FRAME_LENGTH ];
+    SKP_int32   energy_32, shift;
+    
+    /* High pass filter with cutoff at 8 khz */
+    HP_8_kHz_len = SKP_min_int( nSamplesIn, MAX_FRAME_LENGTH );
+    HP_8_kHz_len = SKP_max_int( HP_8_kHz_len, 0 );
+
+    /* Cutoff around 9 khz */
+    /* A = conv(conv([8192,14613, 6868], [8192,12883, 7337]), [8192,11586, 7911]); */
+    /* B = conv(conv([575, -948, 575], [575, -221, 575]), [575, 104, 575]); */
+    SKP_Silk_biquad( samplesIn, SKP_Silk_SWB_detect_B_HP_Q13[ 0 ], SKP_Silk_SWB_detect_A_HP_Q13[ 0 ], 
+        psSWBdetect-&gt;S_HP_8_kHz[ 0 ], in_HP_8_kHz, HP_8_kHz_len );
+    for( i = 1; i &lt; NB_SOS; i++ ) {
+        SKP_Silk_biquad( in_HP_8_kHz, SKP_Silk_SWB_detect_B_HP_Q13[ i ], SKP_Silk_SWB_detect_A_HP_Q13[ i ], 
+            psSWBdetect-&gt;S_HP_8_kHz[ i ], in_HP_8_kHz, HP_8_kHz_len );
+    }
+
+    /* Calculate energy in HP signal */
+    SKP_Silk_sum_sqr_shift( &amp;energy_32, &amp;shift, in_HP_8_kHz, HP_8_kHz_len );
+
+    /* Count concecutive samples above threshold, after adjusting threshold for number of input samples and shift */
+    if( energy_32 &gt; SKP_RSHIFT( SKP_SMULBB( HP_8_KHZ_THRES, HP_8_kHz_len ), shift ) ) {
+        psSWBdetect-&gt;ConsecSmplsAboveThres += nSamplesIn;
+        if( psSWBdetect-&gt;ConsecSmplsAboveThres &gt; CONCEC_SWB_SMPLS_THRES ) {
+            psSWBdetect-&gt;SWB_detected = 1;
+        }
+    } else {
+        psSWBdetect-&gt;ConsecSmplsAboveThres -= nSamplesIn;
+        psSWBdetect-&gt;ConsecSmplsAboveThres = SKP_max( psSWBdetect-&gt;ConsecSmplsAboveThres, 0 );
+    }
+
+    /* If sufficient speech activity and no SWB detected, we detect the signal as being WB */
+    if( ( psSWBdetect-&gt;ActiveSpeech_ms &gt; WB_DETECT_ACTIVE_SPEECH_MS_THRES ) &amp;&amp; ( psSWBdetect-&gt;SWB_detected == 0 ) ) {
+        psSWBdetect-&gt;WB_detected = 1;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_enc_APIc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_enc_API.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_enc_API.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_enc_API.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,303 +1,268 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-
-***********************************************************************/
-
-
-#include &quot;SKP_Silk_define.h&quot;
-#include &quot;SKP_Silk_main_FIX.h&quot;
-#include &quot;SKP_Silk_SDK_API.h&quot;
-#include &quot;SKP_Silk_control.h&quot;
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_structs.h&quot;
-#define SKP_Silk_EncodeControlStruct SKP_SILK_SDK_EncControlStruct
-
-/****************************************/
-/* Encoder functions                    */
-/****************************************/
-
-SKP_int SKP_Silk_SDK_Get_Encoder_Size( SKP_int *encSizeBytes )
-{
-    SKP_int ret = 0;
-
-    *encSizeBytes = sizeof( SKP_Silk_encoder_state_FIX );
-
-    return ret;
-}
-
-
-/***************************************/
-/* Read control structure from encoder */
-/***************************************/
-SKP_int SKP_Silk_SDK_QueryEncoder(
-    const void *encState,                       /* I:   State Vector                                    */
-    SKP_Silk_EncodeControlStruct *encStatus     /* O:   Control Structure                               */
-)
-{
-    SKP_Silk_encoder_state_FIX *psEnc;
-    SKP_int ret = 0;
-
-    psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
-
-    encStatus-&gt;sampleRate = ( unsigned short )SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, 1000 );                       /* convert kHz -&gt; Hz */
-    encStatus-&gt;packetSize = ( unsigned short )SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, psEnc-&gt;sCmn.PacketSize_ms );  /* convert samples -&gt; ms */
-    encStatus-&gt;bitRate    = ( unsigned short )psEnc-&gt;sCmn.TargetRate_bps;
-    encStatus-&gt;packetLossPercentage = psEnc-&gt;sCmn.PacketLoss_perc;
-    encStatus-&gt;complexity           = psEnc-&gt;sCmn.Complexity;
-
-    return ret;
-}
-
-/*************************/
-
-
-
-
-
-/* Init or Reset encoder */
-/*************************/
-SKP_int SKP_Silk_SDK_InitEncoder(
-    void                            *encState,          /* I/O: State                                           */
-    SKP_Silk_EncodeControlStruct    *encStatus          /* O:   Control structure                               */
-)
-{
-    SKP_Silk_encoder_state_FIX *psEnc;
-    SKP_int ret = 0;
-
-
-    psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
-
-    /* Reset Encoder */
-    if( ret += SKP_Silk_init_encoder_FIX( psEnc ) ) {
-        SKP_assert( 0 );
-    }
-
-    /* Read Control structure */
-    if( ret += SKP_Silk_SDK_QueryEncoder( encState, encStatus ) ) {
-        SKP_assert( 0 );
-    }
-
-
-    return ret;
-}
-
-/**************************/
-/* Encode frame with Silk */
-/**************************/
-SKP_int SKP_Silk_SDK_Encode(
-    void                                *encState,      /* I/O: State                                           */
-    const SKP_Silk_EncodeControlStruct  *encControl,    /* I:   Control structure                               */
-    const SKP_int16                     *samplesIn,     /* I:   Speech sample input vector                      */
-    SKP_int                             nSamplesIn,     /* I:   Number of samples in input vector               */
-    SKP_uint8                           *outData,       /* O:   Encoded output vector                           */
-    SKP_int16                           *nBytesOut      /* I/O: Number of bytes in outData (input: Max bytes)   */
-)
-{
-    SKP_int   API_fs_kHz, PacketSize_ms, PacketLoss_perc, UseInBandFec, UseDTX, ret = 0;
-    SKP_int   nSamplesToBuffer, Complexity, input_ms, nSamplesFromInput = 0;
-    SKP_int32 TargetRate_bps;
-    SKP_int16 MaxBytesOut;
-    SKP_Silk_encoder_state_FIX *psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
-
-
-    SKP_assert( encControl != NULL );
-
-
-
-
-
-
-    /* Check sampling frequency first, to avoid divide by zero later */
-    if( ( encControl-&gt;sampleRate !=  8000 ) &amp;&amp; ( encControl-&gt;sampleRate != 12000 ) &amp;&amp;
-        ( encControl-&gt;sampleRate != 16000 ) &amp;&amp; ( encControl-&gt;sampleRate != 24000 ) ) {
-        ret = SKP_SILK_ENC_FS_NOT_SUPPORTED;
-        SKP_assert( 0 );
-        return( ret );
-    }
-
-    /* Set Encoder parameters from Control structure */
-    API_fs_kHz      = SKP_DIV32_16( ( SKP_int )encControl-&gt;sampleRate, 1000 );          /* convert Hz -&gt; kHz */
-    PacketSize_ms   = SKP_DIV32_16( ( SKP_int )encControl-&gt;packetSize, API_fs_kHz );    /* convert samples -&gt; ms */
-    TargetRate_bps  =             ( SKP_int32 )encControl-&gt;bitRate;
-    PacketLoss_perc =               ( SKP_int )encControl-&gt;packetLossPercentage;
-    UseInBandFec    =               ( SKP_int )encControl-&gt;useInBandFec;
-    Complexity      =               ( SKP_int )encControl-&gt;complexity;
-    UseDTX          =               ( SKP_int )encControl-&gt;useDtx;
-
-    /* Only accept input lengths that are multiplum of 10 ms */
-    input_ms = SKP_DIV32_16( nSamplesIn, API_fs_kHz );
-    if( ( input_ms % 10) != 0 || nSamplesIn &lt; 0 ) {
-        ret = SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES;
-        SKP_assert( 0 );
-        return( ret );
-    }
-
-    /* Make sure no more than one packet can be produced */
-    if( nSamplesIn &gt; SKP_SMULBB( psEnc-&gt;sCmn.PacketSize_ms, API_fs_kHz ) ) {
-        ret = SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES;
-        SKP_assert( 0 );
-        return( ret );
-    }
-
-    if( ( ret = SKP_Silk_control_encoder_FIX( psEnc, API_fs_kHz, PacketSize_ms, TargetRate_bps,
-                    PacketLoss_perc, UseInBandFec, UseDTX, input_ms, Complexity ) ) != 0 ) {
-        SKP_assert( 0 );
-        return( ret );
-    }
-
-    /* Detect energy above 8 kHz */
-    if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.SWB_detected == 0 &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.WB_detected == 0 ) {
-        SKP_Silk_detect_SWB_input( &amp;psEnc-&gt;sCmn.sSWBdetect, samplesIn, ( SKP_int )nSamplesIn );
-    }
-
-    /* Input buffering/resampling and encoding */
-    MaxBytesOut = 0;                    /* return 0 output bytes if no encoder called */
-    while( 1 ) {
-        /* Resample/buffer */
-        nSamplesToBuffer = psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.inputBufIx;
-
-
-
-
-
-        if( encControl-&gt;sampleRate == SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, 1000 ) ) {
-            /* Same sample frequency - copy the data */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, nSamplesIn );
-            nSamplesFromInput = nSamplesToBuffer;
-            SKP_memcpy( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], samplesIn, SKP_SMULBB( nSamplesToBuffer, sizeof( SKP_int16 ) ) );
-        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            /* Resample the data from 24 kHz to 16 kHz */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_SMULWB( SKP_LSHIFT( nSamplesIn, 1 ), 21846 ) ); // 21846 = ceil(2/3)*2^15
-            nSamplesFromInput = SKP_RSHIFT( SKP_SMULBB( nSamplesToBuffer, 3 ), 1 );
-#if LOW_COMPLEXITY_ONLY
-            {
-                SKP_int16 scratch[ MAX_FRAME_LENGTH + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-                SKP_assert( nSamplesFromInput &lt;= MAX_FRAME_LENGTH );
-                SKP_Silk_resample_2_3_coarse( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To16state,
-                    samplesIn, nSamplesFromInput, scratch );
-            }
-#else
-            SKP_Silk_resample_2_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To16state,
-                samplesIn, nSamplesFromInput );
-#endif
-        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH ];
-            /* Resample the data from 24 kHz to 12 kHz */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( nSamplesIn, 1 ) );
-            nSamplesFromInput = SKP_LSHIFT16( nSamplesToBuffer, 1 );
-            SKP_Silk_resample_1_2_coarse( samplesIn, psEnc-&gt;sCmn.resample24To12state,
-                &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], scratch, nSamplesToBuffer );
-        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            /* Resample the data from 24 kHz to 8 kHz */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_DIV32_16( nSamplesIn, 3 ) );
-            nSamplesFromInput = SKP_SMULBB( nSamplesToBuffer, 3 );
-            SKP_Silk_resample_1_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To8state,
-                samplesIn, nSamplesFromInput);
-        } else if( encControl-&gt;sampleRate == 16000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            /* Resample the data from 16 kHz to 12 kHz */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( SKP_SMULBB( nSamplesIn, 3 ), 2 ) );
-            nSamplesFromInput = SKP_SMULWB( SKP_LSHIFT16( nSamplesToBuffer, 2 ), 21846 ); // 21846 = ceil((1/3)*2^16)
-            SKP_Silk_resample_3_4( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample16To12state,
-                samplesIn, nSamplesFromInput );
-        } else if( encControl-&gt;sampleRate == 16000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH ];
-            /* Resample the data from 16 kHz to 8 kHz */
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( nSamplesIn, 1 ) );
-            nSamplesFromInput = SKP_LSHIFT16( nSamplesToBuffer, 1 );
-            SKP_Silk_resample_1_2_coarse( samplesIn, psEnc-&gt;sCmn.resample16To8state,
-                &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], scratch, nSamplesToBuffer );
-        } else if( encControl-&gt;sampleRate == 12000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            /* Resample the data from 12 kHz to 8 kHz */
-
-
-
-
-
-            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_SMULWB( SKP_LSHIFT( nSamplesIn, 1 ), 21846 ) );
-            nSamplesFromInput = SKP_RSHIFT( SKP_SMULBB( nSamplesToBuffer, 3 ), 1 );
-#if LOW_COMPLEXITY_ONLY
-            {
-                SKP_int16 scratch[ MAX_FRAME_LENGTH + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-                SKP_assert( nSamplesFromInput &lt;= MAX_FRAME_LENGTH );
-                SKP_Silk_resample_2_3_coarse( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample12To8state,
-                    samplesIn, nSamplesFromInput, scratch );
-            }
-#else
-            SKP_Silk_resample_2_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample12To8state,
-                samplesIn, nSamplesFromInput );
-#endif
-        }
-        samplesIn  += nSamplesFromInput;
-        nSamplesIn -= nSamplesFromInput;
-        psEnc-&gt;sCmn.inputBufIx += nSamplesToBuffer;
-
-        /* Silk encoder */
-        if( psEnc-&gt;sCmn.inputBufIx &gt;= psEnc-&gt;sCmn.frame_length ) {
-            /* Enough data in input buffer, so encode */
-            if( MaxBytesOut == 0 ) {
-                /* No payload obtained so far */
-                MaxBytesOut = *nBytesOut;
-                if( ( ret = SKP_Silk_encode_frame_FIX( psEnc, outData, &amp;MaxBytesOut, psEnc-&gt;sCmn.inputBuf ) ) != 0 ) {
-                    SKP_assert( 0 );
-                }
-            } else {
-                /* outData already contains a payload */
-                if( ( ret = SKP_Silk_encode_frame_FIX( psEnc, outData, nBytesOut, psEnc-&gt;sCmn.inputBuf ) ) != 0 ) {
-                    SKP_assert( 0 );
-                }
-                /* Check that no second payload was created */
-                SKP_assert( *nBytesOut == 0 );
-            }
-            psEnc-&gt;sCmn.inputBufIx = 0;
-        } else {
-            break;
-        }
-    }
-
-    *nBytesOut = MaxBytesOut;
-    if( psEnc-&gt;sCmn.useDTX &amp;&amp; psEnc-&gt;sCmn.inDTX ) {
-        /* Dtx simulation */
-        *nBytesOut = 0;
-    }
-
-
-
-
-
-
-
-    return ret;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+
+#include &quot;SKP_Silk_define.h&quot;
+#include &quot;SKP_Silk_main_FIX.h&quot;
+#include &quot;SKP_Silk_SDK_API.h&quot;
+#include &quot;SKP_Silk_control.h&quot;
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_structs.h&quot;
+#define SKP_Silk_EncodeControlStruct SKP_SILK_SDK_EncControlStruct
+
+/****************************************/
+/* Encoder functions                    */
+/****************************************/
+
+SKP_int SKP_Silk_SDK_Get_Encoder_Size( SKP_int *encSizeBytes )
+{
+    SKP_int ret = 0;
+    
+    *encSizeBytes = sizeof( SKP_Silk_encoder_state_FIX );
+    
+    return ret;
+}
+
+
+/***************************************/
+/* Read control structure from encoder */
+/***************************************/
+SKP_int SKP_Silk_SDK_QueryEncoder(
+    const void *encState,                       /* I:   State Vector                                    */
+    SKP_Silk_EncodeControlStruct *encStatus     /* O:   Control Structure                               */
+)
+{
+    SKP_Silk_encoder_state_FIX *psEnc;
+    SKP_int ret = 0;    
+
+    psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
+
+    encStatus-&gt;sampleRate = ( unsigned short )SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, 1000 );                       /* convert kHz -&gt; Hz */ 
+    encStatus-&gt;packetSize = ( unsigned short )SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, psEnc-&gt;sCmn.PacketSize_ms );  /* convert samples -&gt; ms */
+    encStatus-&gt;bitRate    = ( unsigned short )psEnc-&gt;sCmn.TargetRate_bps;
+    encStatus-&gt;packetLossPercentage = psEnc-&gt;sCmn.PacketLoss_perc;
+    encStatus-&gt;complexity           = psEnc-&gt;sCmn.Complexity;
+
+    return ret;
+}
+
+/*************************/
+/* Init or Reset encoder */
+/*************************/
+SKP_int SKP_Silk_SDK_InitEncoder(
+    void                            *encState,          /* I/O: State                                           */
+    SKP_Silk_EncodeControlStruct    *encStatus          /* O:   Control structure                               */
+)
+{
+    SKP_Silk_encoder_state_FIX *psEnc;
+    SKP_int ret = 0;
+
+        
+    psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
+
+    /* Reset Encoder */
+    if( ret += SKP_Silk_init_encoder_FIX( psEnc ) ) {
+        SKP_assert( 0 );
+    }
+
+    /* Read Control structure */
+    if( ret += SKP_Silk_SDK_QueryEncoder( encState, encStatus ) ) {
+        SKP_assert( 0 );
+    }
+
+
+    return ret;
+}
+
+/**************************/
+/* Encode frame with Silk */
+/**************************/
+SKP_int SKP_Silk_SDK_Encode( 
+    void                                *encState,      /* I/O: State                                           */
+    const SKP_Silk_EncodeControlStruct  *encControl,    /* I:   Control structure                               */
+    const SKP_int16                     *samplesIn,     /* I:   Speech sample input vector                      */
+    SKP_int                             nSamplesIn,     /* I:   Number of samples in input vector               */
+    SKP_uint8                           *outData,       /* O:   Encoded output vector                           */
+    SKP_int16                           *nBytesOut      /* I/O: Number of bytes in outData (input: Max bytes)   */
+)
+{
+    SKP_int   API_fs_kHz, PacketSize_ms, PacketLoss_perc, UseInBandFec, UseDTX, ret = 0;
+    SKP_int   nSamplesToBuffer, Complexity, input_ms, nSamplesFromInput = 0;
+    SKP_int32 TargetRate_bps;
+    SKP_int16 MaxBytesOut;
+    SKP_Silk_encoder_state_FIX *psEnc = ( SKP_Silk_encoder_state_FIX* )encState;
+
+
+    SKP_assert( encControl != NULL );
+
+    /* Check sampling frequency first, to avoid divide by zero later */
+    if( ( encControl-&gt;sampleRate !=  8000 ) &amp;&amp; ( encControl-&gt;sampleRate != 12000 ) &amp;&amp; 
+        ( encControl-&gt;sampleRate != 16000 ) &amp;&amp; ( encControl-&gt;sampleRate != 24000 ) ) {
+        ret = SKP_SILK_ENC_FS_NOT_SUPPORTED;
+        SKP_assert( 0 );
+        return( ret );
+    }
+
+    /* Set Encoder parameters from Control structure */
+    API_fs_kHz      = SKP_DIV32_16( ( SKP_int )encControl-&gt;sampleRate, 1000 );          /* convert Hz -&gt; kHz */
+    PacketSize_ms   = SKP_DIV32_16( ( SKP_int )encControl-&gt;packetSize, API_fs_kHz );    /* convert samples -&gt; ms */
+    TargetRate_bps  =             ( SKP_int32 )encControl-&gt;bitRate;
+    PacketLoss_perc =               ( SKP_int )encControl-&gt;packetLossPercentage;
+    UseInBandFec    =               ( SKP_int )encControl-&gt;useInBandFEC;
+    Complexity      =               ( SKP_int )encControl-&gt;complexity;
+    UseDTX          =               ( SKP_int )encControl-&gt;useDTX;
+
+    /* Only accept input lengths that are multiplum of 10 ms */
+    input_ms = SKP_DIV32_16( nSamplesIn, API_fs_kHz );
+    if( ( input_ms % 10) != 0 || nSamplesIn &lt; 0 ) {
+        ret = SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES;
+        SKP_assert( 0 );
+        return( ret );
+    }
+
+    /* Make sure no more than one packet can be produced */
+    if( nSamplesIn &gt; SKP_SMULBB( psEnc-&gt;sCmn.PacketSize_ms, API_fs_kHz ) ) {
+        ret = SKP_SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES;
+        SKP_assert( 0 );
+        return( ret );
+    }
+
+    if( ( ret = SKP_Silk_control_encoder_FIX( psEnc, API_fs_kHz, PacketSize_ms, TargetRate_bps, 
+                    PacketLoss_perc, UseInBandFec, UseDTX, input_ms, Complexity ) ) != 0 ) {
+        SKP_assert( 0 );
+        return( ret );
+    }
+
+    /* Detect energy above 8 kHz */
+    if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.SWB_detected == 0 &amp;&amp; psEnc-&gt;sCmn.sSWBdetect.WB_detected == 0 ) {
+        SKP_Silk_detect_SWB_input( &amp;psEnc-&gt;sCmn.sSWBdetect, samplesIn, ( SKP_int )nSamplesIn );
+    }
+
+    /* Input buffering/resampling and encoding */
+    MaxBytesOut = 0;                    /* return 0 output bytes if no encoder called */
+    while( 1 ) {
+        /* Resample/buffer */
+        nSamplesToBuffer = psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.inputBufIx;
+        if( encControl-&gt;sampleRate == SKP_SMULBB( psEnc-&gt;sCmn.fs_kHz, 1000 ) ) { 
+            /* Same sample frequency - copy the data */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, nSamplesIn );
+            nSamplesFromInput = nSamplesToBuffer;
+            SKP_memcpy( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], samplesIn, SKP_SMULBB( nSamplesToBuffer, sizeof( SKP_int16 ) ) );
+        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            /* Resample the data from 24 kHz to 16 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_SMULWB( SKP_LSHIFT( nSamplesIn, 1 ), 21846 ) ); // 21846 = ceil(2/3)*2^15
+            nSamplesFromInput = SKP_RSHIFT( SKP_SMULBB( nSamplesToBuffer, 3 ), 1 );
+#if LOW_COMPLEXITY_ONLY
+            {
+                SKP_int16 scratch[ MAX_FRAME_LENGTH + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
+                SKP_assert( nSamplesFromInput &lt;= MAX_FRAME_LENGTH );
+                SKP_Silk_resample_2_3_coarse( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To16state, 
+                    samplesIn, nSamplesFromInput, scratch );
+            }
+#else
+            SKP_Silk_resample_2_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To16state, 
+                samplesIn, nSamplesFromInput );
+#endif
+        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH ];
+            /* Resample the data from 24 kHz to 12 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( nSamplesIn, 1 ) );
+            nSamplesFromInput = SKP_LSHIFT16( nSamplesToBuffer, 1 );
+            SKP_Silk_resample_1_2_coarse( samplesIn, psEnc-&gt;sCmn.resample24To12state, 
+                &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], scratch, nSamplesToBuffer );
+        } else if( encControl-&gt;sampleRate == 24000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            /* Resample the data from 24 kHz to 8 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_DIV32_16( nSamplesIn, 3 ) );
+            nSamplesFromInput = SKP_SMULBB( nSamplesToBuffer, 3 );
+            SKP_Silk_resample_1_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample24To8state, 
+                samplesIn, nSamplesFromInput);
+        } else if( encControl-&gt;sampleRate == 16000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            /* Resample the data from 16 kHz to 12 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( SKP_SMULBB( nSamplesIn, 3 ), 2 ) );
+            nSamplesFromInput = SKP_SMULWB( SKP_LSHIFT16( nSamplesToBuffer, 2 ), 21846 ); // 21846 = ceil((1/3)*2^16)
+            SKP_Silk_resample_3_4( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample16To12state, 
+                samplesIn, nSamplesFromInput );
+        } else if( encControl-&gt;sampleRate == 16000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            SKP_int32 scratch[ 3 * MAX_FRAME_LENGTH ];
+            /* Resample the data from 16 kHz to 8 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_RSHIFT( nSamplesIn, 1 ) );
+            nSamplesFromInput = SKP_LSHIFT16( nSamplesToBuffer, 1 );
+            SKP_Silk_resample_1_2_coarse( samplesIn, psEnc-&gt;sCmn.resample16To8state, 
+                &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], scratch, nSamplesToBuffer );
+        } else if( encControl-&gt;sampleRate == 12000 &amp;&amp; psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            /* Resample the data from 12 kHz to 8 kHz */
+            nSamplesToBuffer  = SKP_min_int( nSamplesToBuffer, SKP_SMULWB( SKP_LSHIFT( nSamplesIn, 1 ), 21846 ) );
+            nSamplesFromInput = SKP_RSHIFT( SKP_SMULBB( nSamplesToBuffer, 3 ), 1 );
+#if LOW_COMPLEXITY_ONLY
+            {
+                SKP_int16 scratch[ MAX_FRAME_LENGTH + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
+                SKP_assert( nSamplesFromInput &lt;= MAX_FRAME_LENGTH );
+                SKP_Silk_resample_2_3_coarse( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample12To8state, 
+                    samplesIn, nSamplesFromInput, scratch );
+            }
+#else
+            SKP_Silk_resample_2_3( &amp;psEnc-&gt;sCmn.inputBuf[ psEnc-&gt;sCmn.inputBufIx ], psEnc-&gt;sCmn.resample12To8state, 
+                samplesIn, nSamplesFromInput );
+#endif
+        }
+        samplesIn  += nSamplesFromInput;
+        nSamplesIn -= nSamplesFromInput;
+        psEnc-&gt;sCmn.inputBufIx += nSamplesToBuffer;
+
+        /* Silk encoder */
+        if( psEnc-&gt;sCmn.inputBufIx &gt;= psEnc-&gt;sCmn.frame_length ) {
+            /* Enough data in input buffer, so encode */
+            if( MaxBytesOut == 0 ) {
+                /* No payload obtained so far */
+                MaxBytesOut = *nBytesOut;
+                if( ( ret = SKP_Silk_encode_frame_FIX( psEnc, outData, &amp;MaxBytesOut, psEnc-&gt;sCmn.inputBuf ) ) != 0 ) {
+                    SKP_assert( 0 );
+                }
+            } else {
+                /* outData already contains a payload */
+                if( ( ret = SKP_Silk_encode_frame_FIX( psEnc, outData, nBytesOut, psEnc-&gt;sCmn.inputBuf ) ) != 0 ) {
+                    SKP_assert( 0 );
+                }
+                /* Check that no second payload was created */
+                SKP_assert( *nBytesOut == 0 );
+            }
+            psEnc-&gt;sCmn.inputBufIx = 0;
+        } else {
+            break;
+        }
+    }
+
+    *nBytesOut = MaxBytesOut;
+    if( psEnc-&gt;sCmn.useDTX &amp;&amp; psEnc-&gt;sCmn.inDTX ) {
+        /* Dtx simulation */
+        *nBytesOut = 0;
+    }
+
+
+    return ret;
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_encode_frame_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_encode_frame_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_encode_frame_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_encode_frame_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,481 +1,432 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-/****************/
-/* Encode frame */
-/****************/
-SKP_int SKP_Silk_encode_frame_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Pointer to Silk FIX encoder state           */
-    SKP_uint8                       *pCode,             /* O    Pointer to payload                          */
-    SKP_int16                       *pnBytesOut,        /* I/O  Pointer to number of payload bytes          */
-                                                        /*      input: max length; output: used             */
-    const SKP_int16                 *pIn                /* I    Pointer to input speech frame               */
-)
-{
-
-
-
-
-
-    SKP_Silk_encoder_control_FIX sEncCtrl;
-    SKP_int     i, nBytes, ret = 0;
-    SKP_int16   *x_frame, *res_pitch_frame;
-    SKP_int16   xfw[ MAX_FRAME_LENGTH ];
-    SKP_int16   pIn_HP[ MAX_FRAME_LENGTH ];
-    SKP_int16   res_pitch[ 2 * MAX_FRAME_LENGTH + LA_PITCH_MAX ];
-    SKP_int     LBRR_idx, frame_terminator, SNR_dB_Q7;
-    const SKP_uint16 *FrameTermination_CDF;
-
-    /* Low bitrate redundancy parameters */
-    SKP_uint8   LBRRpayload[ MAX_ARITHM_BYTES ];
-    SKP_int16   nBytesLBRR;
-
-    //SKP_int32   Seed[ MAX_LAYERS ];
-    sEncCtrl.sCmn.Seed = psEnc-&gt;sCmn.frameCounter++ &amp; 3;
-
-
-    /**************************************************************/
-    /* Setup Input Pointers, and insert frame in input buffer    */
-    /*************************************************************/
-    x_frame         = psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length; /* start of frame to encode */
-    res_pitch_frame = res_pitch    + psEnc-&gt;sCmn.frame_length; /* start of pitch LPC residual frame */
-
-    /****************************/
-    /* Voice Activity Detection */
-    /****************************/
-    ret = SKP_Silk_VAD_GetSA_Q8( &amp;psEnc-&gt;sCmn.sVAD, &amp;psEnc-&gt;speech_activity_Q8, &amp;SNR_dB_Q7,
-                                 sEncCtrl.input_quality_bands_Q15, &amp;sEncCtrl.input_tilt_Q15,
-                                 pIn,psEnc-&gt;sCmn.frame_length );
-
-    /*******************************************/
-    /* High-pass filtering of the input signal */
-    /*******************************************/
-#if HIGH_PASS_INPUT
-    /* Variable high-pass filter */
-    SKP_Silk_HP_variable_cutoff_FIX( psEnc, &amp;sEncCtrl, pIn_HP, pIn );
-#else
-    SKP_memcpy( pIn_HP, pIn,psEnc-&gt;sCmn.frame_length * sizeof( SKP_int16 ) );
-#endif
-
-#if SWITCH_TRANSITION_FILTERING
-    /* Ensure smooth bandwidth transitions */
-    SKP_Silk_LP_variable_cutoff( &amp;psEnc-&gt;sCmn.sLP, x_frame + psEnc-&gt;sCmn.la_shape, pIn_HP, psEnc-&gt;sCmn.frame_length );
-#else
-    SKP_memcpy( x_frame + psEnc-&gt;sCmn.la_shape, pIn_HP,psEnc-&gt;sCmn.frame_length * sizeof( SKP_int16 ) );
-#endif
-
-    /*****************************************/
-
-
-
-
-
-    /* Find pitch lags, initial LPC analysis */
-    /*****************************************/
-    SKP_Silk_find_pitch_lags_FIX( psEnc, &amp;sEncCtrl, res_pitch, x_frame );
-
-    /************************/
-    /* Noise shape analysis */
-    /************************/
-    SKP_Silk_noise_shape_analysis_FIX( psEnc, &amp;sEncCtrl, res_pitch_frame, x_frame );
-
-    /*****************************************/
-    /* Prefiltering for noise shaper         */
-    /*****************************************/
-    SKP_Silk_prefilter_FIX( psEnc, &amp;sEncCtrl, xfw, x_frame );
-
-
-    /***************************************************/
-    /* Find linear prediction coefficients (LPC + LTP) */
-    /***************************************************/
-    SKP_Silk_find_pred_coefs_FIX( psEnc, &amp;sEncCtrl, res_pitch );
-
-    /****************************************/
-    /* Process gains                        */
-    /****************************************/
-    SKP_Silk_process_gains_FIX( psEnc, &amp;sEncCtrl );
-
-    psEnc-&gt;sCmn.sigtype[         psEnc-&gt;sCmn.nFramesInPayloadBuf ] = sEncCtrl.sCmn.sigtype;
-    psEnc-&gt;sCmn.QuantOffsetType[ psEnc-&gt;sCmn.nFramesInPayloadBuf ] = sEncCtrl.sCmn.QuantOffsetType;
-
-    /****************************************/
-    /* Low Bitrate Redundant Encoding       */
-    /****************************************/
-    nBytesLBRR = MAX_ARITHM_BYTES;
-    SKP_Silk_LBRR_encode_FIX( psEnc, &amp;sEncCtrl, LBRRpayload, &amp;nBytesLBRR, xfw );
-
-    /*****************************************/
-    /* Noise shaping quantization            */
-    /*****************************************/
-    psEnc-&gt;NoiseShapingQuantizer( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sNSQ, xfw,
-        &amp;psEnc-&gt;sCmn.q[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ], sEncCtrl.sCmn.NLSFInterpCoef_Q2,
-        sEncCtrl.PredCoef_Q12[ 0 ], sEncCtrl.LTPCoef_Q14, sEncCtrl.AR2_Q13, sEncCtrl.HarmShapeGain_Q14,
-        sEncCtrl.Tilt_Q14, sEncCtrl.LF_shp_Q14, sEncCtrl.Gains_Q16, sEncCtrl.Lambda_Q10,
-        sEncCtrl.LTP_scale_Q14 );
-
-    /**************************************************/
-    /* Convert speech activity into VAD and DTX flags */
-    /**************************************************/
-    if( psEnc-&gt;speech_activity_Q8 &lt; SPEECH_ACTIVITY_DTX_THRES_Q8 ) {
-        psEnc-&gt;sCmn.vadFlag = NO_VOICE_ACTIVITY;
-
-
-
-
-
-        psEnc-&gt;sCmn.noSpeechCounter++;
-        if( psEnc-&gt;sCmn.noSpeechCounter &gt; NO_SPEECH_FRAMES_BEFORE_DTX ) {
-            psEnc-&gt;sCmn.inDTX = 1;
-        }
-        if( psEnc-&gt;sCmn.noSpeechCounter &gt; MAX_CONSECUTIVE_DTX ) {
-            psEnc-&gt;sCmn.noSpeechCounter = 0;
-            psEnc-&gt;sCmn.inDTX           = 0;
-        }
-    } else {
-        psEnc-&gt;sCmn.noSpeechCounter = 0;
-        psEnc-&gt;sCmn.inDTX           = 0;
-        psEnc-&gt;sCmn.vadFlag         = VOICE_ACTIVITY;
-    }
-
-    /****************************************/
-    /* Initialize arithmetic coder          */
-    /****************************************/
-    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
-        SKP_Silk_range_enc_init( &amp;psEnc-&gt;sCmn.sRC );
-        psEnc-&gt;sCmn.nBytesInPayloadBuf = 0;
-    }
-
-    /****************************************/
-    /* Encode Parameters                    */
-    /****************************************/
-    if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
-        SKP_Silk_encode_parameters_v4( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sCmn.sRC );
-        FrameTermination_CDF = SKP_Silk_FrameTermination_v4_CDF;
-    } else {
-        SKP_Silk_encode_parameters( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sCmn.sRC,
-            &amp;psEnc-&gt;sCmn.q[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ] );
-        FrameTermination_CDF = SKP_Silk_FrameTermination_CDF;
-    }
-
-    /****************************************/
-    /* Update Buffers and State             */
-    /****************************************/
-    /* Update Input buffer */
-    SKP_memmove( psEnc-&gt;x_buf, &amp;psEnc-&gt;x_buf[ psEnc-&gt;sCmn.frame_length ], ( psEnc-&gt;sCmn.frame_length + psEnc-&gt;sCmn.la_shape ) * sizeof( SKP_int16 ) );
-
-    /* parameters needed for next frame */
-    psEnc-&gt;sCmn.prev_sigtype            = sEncCtrl.sCmn.sigtype;
-    psEnc-&gt;sCmn.prevLag                 = sEncCtrl.sCmn.pitchL[ NB_SUBFR - 1];
-    psEnc-&gt;sCmn.first_frame_after_reset = 0;
-
-    if( psEnc-&gt;sCmn.sRC.error ) {
-        /* encoder returned error: clear payload buffer */
-        psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
-
-
-
-
-
-    } else {
-        psEnc-&gt;sCmn.nFramesInPayloadBuf++;
-    }
-
-    /****************************************/
-    /* finalize payload and copy to output  */
-    /****************************************/
-    if( psEnc-&gt;sCmn.nFramesInPayloadBuf * FRAME_LENGTH_MS &gt;= psEnc-&gt;sCmn.PacketSize_ms ) {
-
-        LBRR_idx = ( psEnc-&gt;sCmn.oldest_LBRR_idx + 1 ) &amp; LBRR_IDX_MASK;
-
-        /* Check if FEC information should be added */
-        frame_terminator = SKP_SILK_LAST_FRAME;
-        if( psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].usage == SKP_SILK_ADD_LBRR_TO_PLUS1 ) {
-            frame_terminator = SKP_SILK_LBRR_VER1;
-        }
-        if( psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].usage == SKP_SILK_ADD_LBRR_TO_PLUS2 ) {
-            frame_terminator = SKP_SILK_LBRR_VER2;
-            LBRR_idx = psEnc-&gt;sCmn.oldest_LBRR_idx;
-        }
-        /* Add the frame termination info to stream */
-        SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC, frame_terminator, FrameTermination_CDF );
-
-        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
-            /* Code excitation signal */
-            for( i = 0; i &lt;psEnc-&gt;sCmn.nFramesInPayloadBuf; i++ ) {
-                SKP_Silk_encode_pulses( &amp;psEnc-&gt;sCmn.sRC, psEnc-&gt;sCmn.sigtype[ i ],psEnc-&gt;sCmn.QuantOffsetType[ i ],
-                    &amp;psEnc-&gt;sCmn.q[ i * psEnc-&gt;sCmn.frame_length],psEnc-&gt;sCmn.frame_length );
-            }
-        }
-        /* payload length so far */
-        SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC, &amp;nBytes );
-
-        /* check that there is enough space in external output buffer, and move data */
-        if( *pnBytesOut &gt;= nBytes ) {
-            SKP_Silk_range_enc_wrap_up( &amp;psEnc-&gt;sCmn.sRC );
-            SKP_memcpy( pCode, psEnc-&gt;sCmn.sRC.buffer, nBytes * sizeof( SKP_uint8 ) );
-
-            if( frame_terminator &gt; SKP_SILK_MORE_FRAMES &amp;&amp;
-                    *pnBytesOut &gt;= nBytes + psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes ) {
-                /* Get old packet and add to payload. */
-                SKP_memcpy( &amp;pCode[ nBytes ],
-                    psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].payload,
-                    psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes * sizeof( SKP_uint8 ) );
-                nBytes += psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes;
-            }
-
-            *pnBytesOut = nBytes;
-
-
-
-
-
-            /* Update FEC buffer */
-            SKP_memcpy( psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].payload, LBRRpayload,
-                nBytesLBRR * sizeof( SKP_uint8 ) );
-            psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].nBytes = nBytesLBRR;
-            /* This line tells describes how FEC should be used */
-            psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].usage = sEncCtrl.sCmn.LBRR_usage;
-            psEnc-&gt;sCmn.oldest_LBRR_idx = ( psEnc-&gt;sCmn.oldest_LBRR_idx + 1 ) &amp; LBRR_IDX_MASK;
-
-            /* Reset number of frames in payload buffer */
-            psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
-        } else {
-            /* Not enough space: Payload will be discarded */
-            *pnBytesOut = 0;
-            nBytes      = 0;
-            psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
-            ret = SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT;
-        }
-    } else {
-        /* no payload for you this time */
-        *pnBytesOut = 0;
-
-        /* Encode that more frames follows */
-        frame_terminator = SKP_SILK_MORE_FRAMES;
-        SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC, frame_terminator, FrameTermination_CDF );
-
-        /* payload length so far */
-        SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC, &amp;nBytes );
-
-        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
-            /* Take into account the q signal that isnt in the bitstream yet */
-            nBytes +=  SKP_Silk_pulses_to_bytes( &amp;psEnc-&gt;sCmn,
-                &amp;psEnc-&gt;sCmn.q[ (psEnc-&gt;sCmn.nFramesInPayloadBuf - 1) * psEnc-&gt;sCmn.frame_length ] );
-        }
-    }
-
-    /* Check for arithmetic coder errors */
-    if( psEnc-&gt;sCmn.sRC.error ) {
-        ret = SKP_SILK_ENC_INTERNAL_ERROR;
-    }
-
-    /* simulate number of ms buffered in channel because of exceeding TargetRate */
-    SKP_assert(  ( 8 * 1000 * ( (SKP_int64)nBytes - (SKP_int64)psEnc-&gt;sCmn.nBytesInPayloadBuf ) ) ==
-        SKP_SAT32( 8 * 1000 * ( (SKP_int64)nBytes - (SKP_int64)psEnc-&gt;sCmn.nBytesInPayloadBuf ) ) );
-    SKP_assert( psEnc-&gt;sCmn.TargetRate_bps &gt; 0 );
-    psEnc-&gt;BufferedInChannel_ms   += SKP_DIV32( 8 * 1000 * ( nBytes -psEnc-&gt;sCmn.nBytesInPayloadBuf ),psEnc-&gt;sCmn.TargetRate_bps );
-    psEnc-&gt;BufferedInChannel_ms   -= FRAME_LENGTH_MS;
-    psEnc-&gt;BufferedInChannel_ms    = SKP_LIMIT( psEnc-&gt;BufferedInChannel_ms, 0, 100 );
-    psEnc-&gt;sCmn.nBytesInPayloadBuf = nBytes;
-
-
-
-
-
-    if( psEnc-&gt;speech_activity_Q8 &gt; WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES_Q8 ) {
-        psEnc-&gt;sCmn.sSWBdetect.ActiveSpeech_ms = SKP_ADD_POS_SAT32( psEnc-&gt;sCmn.sSWBdetect.ActiveSpeech_ms, FRAME_LENGTH_MS );
-    }
-
-
-    return( ret );
-}
-
-/* Low BitRate Redundancy encoding functionality. Reuse all parameters but encode residual with lower bitrate */
-void SKP_Silk_LBRR_encode_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Pointer to Silk encoder state           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Pointer to Silk encoder control struct  */
-    SKP_uint8                       *pCode,         /* O    Pointer to payload                      */
-    SKP_int16                       *pnBytesOut,    /* I/O  Pointer to number of payload bytes      */
-    SKP_int16                       xfw[]           /* I    Input signal                            */
-)
-{
-    SKP_int     i, TempGainsIndices[ NB_SUBFR ], frame_terminator;
-    SKP_int     nBytes, nFramesInPayloadBuf;
-    SKP_int32   TempGains_Q16[ NB_SUBFR ];
-    SKP_int     typeOffset, LTP_scaleIndex, Rate_only_parameters = 0;
-    /*******************************************/
-    /* Control use of inband LBRR              */
-    /*******************************************/
-    SKP_Silk_LBRR_ctrl_FIX( psEnc, psEncCtrl );
-
-    if( psEnc-&gt;sCmn.LBRR_enabled ) {
-        /* Save original Gains */
-        SKP_memcpy( TempGainsIndices, psEncCtrl-&gt;sCmn.GainsIndices, NB_SUBFR * sizeof( SKP_int   ) );
-        SKP_memcpy( TempGains_Q16,    psEncCtrl-&gt;Gains_Q16,    NB_SUBFR * sizeof( SKP_int32 ) );
-
-        typeOffset     = psEnc-&gt;sCmn.typeOffsetPrev; // Temp save as cannot be overwritten
-        LTP_scaleIndex = psEncCtrl-&gt;sCmn.LTP_scaleIndex;
-
-        /* Set max rate where quant signal is encoded */
-        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
-            Rate_only_parameters = 13500;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
-            Rate_only_parameters = 15500;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            Rate_only_parameters = 17500;
-        } else if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
-            Rate_only_parameters = 19500;
-        } else {
-            SKP_assert( 0 );
-        }
-
-        if( psEnc-&gt;sCmn.Complexity &gt; 0 &amp;&amp; psEnc-&gt;sCmn.TargetRate_bps &gt; Rate_only_parameters ) {
-
-
-
-
-
-            if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
-                /* First frame in packet copy Everything */
-                SKP_memcpy( &amp;psEnc-&gt;sNSQ_LBRR, &amp;psEnc-&gt;sNSQ, sizeof( SKP_Silk_nsq_state ) );
-
-                psEnc-&gt;sCmn.LBRRprevLastGainIndex = psEnc-&gt;sShape.LastGainIndex;
-                /* Increase Gains to get target LBRR rate */
-                psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] = psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] + psEnc-&gt;sCmn.LBRR_GainIncreases;
-                psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] = SKP_LIMIT( psEncCtrl-&gt;sCmn.GainsIndices[ 0 ], 0, N_LEVELS_QGAIN - 1 );
-            }
-            /* Decode to get Gains in sync with decoder         */
-            /* Overwrite unquantized gains with quantized gains */
-            SKP_Silk_gains_dequant( psEncCtrl-&gt;Gains_Q16, psEncCtrl-&gt;sCmn.GainsIndices,
-                &amp;psEnc-&gt;sCmn.LBRRprevLastGainIndex, psEnc-&gt;sCmn.nFramesInPayloadBuf );
-            /*****************************************/
-            /* Noise shaping quantization            */
-            /*****************************************/
-            psEnc-&gt;NoiseShapingQuantizer( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn,
-                &amp;psEnc-&gt;sNSQ_LBRR, xfw, &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf * psEnc-&gt;sCmn.frame_length ],
-                psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEncCtrl-&gt;PredCoef_Q12[ 0 ], psEncCtrl-&gt;LTPCoef_Q14,
-                psEncCtrl-&gt;AR2_Q13, psEncCtrl-&gt;HarmShapeGain_Q14, psEncCtrl-&gt;Tilt_Q14, psEncCtrl-&gt;LF_shp_Q14,
-                psEncCtrl-&gt;Gains_Q16, psEncCtrl-&gt;Lambda_Q10, psEncCtrl-&gt;LTP_scale_Q14 );
-        } else {
-            SKP_memset( &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ], 0,
-                psEnc-&gt;sCmn.frame_length * sizeof( SKP_int ) );
-            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 0;
-        }
-        /****************************************/
-        /* Initialize arithmetic coder          */
-        /****************************************/
-        if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
-            SKP_Silk_range_enc_init( &amp;psEnc-&gt;sCmn.sRC_LBRR );
-            psEnc-&gt;sCmn.nBytesInPayloadBuf = 0;
-        }
-
-        /****************************************/
-        /* Encode Parameters                    */
-        /****************************************/
-        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
-            SKP_Silk_encode_parameters_v4( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn, &amp;psEnc-&gt;sCmn.sRC_LBRR );
-        } else {
-            SKP_Silk_encode_parameters( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn, &amp;psEnc-&gt;sCmn.sRC_LBRR,
-                &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf * psEnc-&gt;sCmn.frame_length] );
-        }
-
-        if( psEnc-&gt;sCmn.sRC_LBRR.error ) {
-            /* encoder returned error: clear payload buffer */
-            nFramesInPayloadBuf = 0;
-        } else {
-
-
-
-
-
-            nFramesInPayloadBuf = psEnc-&gt;sCmn.nFramesInPayloadBuf + 1;
-        }
-
-        /****************************************/
-        /* finalize payload and copy to output  */
-        /****************************************/
-        if( SKP_SMULBB( nFramesInPayloadBuf, FRAME_LENGTH_MS ) &gt;= psEnc-&gt;sCmn.PacketSize_ms ) {
-
-            /* Check if FEC information should be added */
-            frame_terminator = SKP_SILK_LAST_FRAME;
-
-            /* Add the frame termination info to stream */
-            SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC_LBRR, frame_terminator, SKP_Silk_FrameTermination_CDF );
-
-            if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
-                /*********************************************/
-                /* Encode quantization indices of excitation */
-                /*********************************************/
-                for( i = 0; i &lt; nFramesInPayloadBuf; i++ ) {
-                    SKP_Silk_encode_pulses( &amp;psEnc-&gt;sCmn.sRC_LBRR, psEnc-&gt;sCmn.sigtype[ i ], psEnc-&gt;sCmn.QuantOffsetType[ i ],
-                        &amp;psEnc-&gt;sCmn.q_LBRR[ i * psEnc-&gt;sCmn.frame_length ], psEnc-&gt;sCmn.frame_length );
-                }
-            }
-            /* payload length so far */
-            SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC_LBRR, &amp;nBytes );
-
-            /* check that there is enough space in external output buffer, and move data */
-            if( *pnBytesOut &gt;= nBytes ) {
-                SKP_Silk_range_enc_wrap_up( &amp;psEnc-&gt;sCmn.sRC_LBRR );
-                SKP_memcpy( pCode, psEnc-&gt;sCmn.sRC_LBRR.buffer, nBytes * sizeof( SKP_uint8 ) );
-
-                *pnBytesOut = nBytes;
-            } else {
-                /* not enough space: payload will be discarded */
-                *pnBytesOut = 0;
-                SKP_assert( 0 );
-            }
-        } else {
-            /* no payload for you this time */
-            *pnBytesOut = 0;
-
-            /* Encode that more frames follows */
-            frame_terminator = SKP_SILK_MORE_FRAMES;
-            SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC_LBRR, frame_terminator, SKP_Silk_FrameTermination_CDF );
-        }
-
-        /* Restore original Gains */
-        SKP_memcpy( psEncCtrl-&gt;sCmn.GainsIndices, TempGainsIndices, NB_SUBFR * sizeof( SKP_int   ) );
-
-
-
-
-
-        SKP_memcpy( psEncCtrl-&gt;Gains_Q16,  TempGains_Q16,    NB_SUBFR * sizeof( SKP_int32 ) );
-
-        /* Restore LTP scale index and typeoffset */
-        psEncCtrl-&gt;sCmn.LTP_scaleIndex = LTP_scaleIndex;
-        psEnc-&gt;sCmn.typeOffsetPrev = typeOffset;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+/****************/
+/* Encode frame */
+/****************/
+SKP_int SKP_Silk_encode_frame_FIX( 
+    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Pointer to Silk FIX encoder state           */
+    SKP_uint8                       *pCode,             /* O    Pointer to payload                          */
+    SKP_int16                       *pnBytesOut,        /* I/O  Pointer to number of payload bytes          */
+                                                        /*      input: max length; output: used             */
+    const SKP_int16                 *pIn                /* I    Pointer to input speech frame               */
+)
+{
+    SKP_Silk_encoder_control_FIX sEncCtrl;
+    SKP_int     i, nBytes, ret = 0;
+    SKP_int16   *x_frame, *res_pitch_frame;
+    SKP_int16   xfw[ MAX_FRAME_LENGTH ];
+    SKP_int16   pIn_HP[ MAX_FRAME_LENGTH ];
+    SKP_int16   res_pitch[ 2 * MAX_FRAME_LENGTH + LA_PITCH_MAX ];
+    SKP_int     LBRR_idx, frame_terminator, SNR_dB_Q7;
+    const SKP_uint16 *FrameTermination_CDF;
+
+    /* Low bitrate redundancy parameters */
+    SKP_uint8   LBRRpayload[ MAX_ARITHM_BYTES ];
+    SKP_int16   nBytesLBRR;
+
+    //SKP_int32   Seed[ MAX_LAYERS ];
+    sEncCtrl.sCmn.Seed = psEnc-&gt;sCmn.frameCounter++ &amp; 3;
+
+
+    /**************************************************************/
+    /* Setup Input Pointers, and insert frame in input buffer    */
+    /*************************************************************/
+    x_frame         = psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length; /* start of frame to encode */
+    res_pitch_frame = res_pitch    + psEnc-&gt;sCmn.frame_length; /* start of pitch LPC residual frame */
+
+    /****************************/
+    /* Voice Activity Detection */
+    /****************************/
+    ret = SKP_Silk_VAD_GetSA_Q8( &amp;psEnc-&gt;sCmn.sVAD, &amp;psEnc-&gt;speech_activity_Q8, &amp;SNR_dB_Q7, 
+                                 sEncCtrl.input_quality_bands_Q15, &amp;sEncCtrl.input_tilt_Q15,
+                                 pIn,psEnc-&gt;sCmn.frame_length );
+
+    /*******************************************/
+    /* High-pass filtering of the input signal */
+    /*******************************************/
+#if HIGH_PASS_INPUT
+    /* Variable high-pass filter */
+    SKP_Silk_HP_variable_cutoff_FIX( psEnc, &amp;sEncCtrl, pIn_HP, pIn );
+#else
+    SKP_memcpy( pIn_HP, pIn,psEnc-&gt;sCmn.frame_length * sizeof( SKP_int16 ) );
+#endif
+
+#if SWITCH_TRANSITION_FILTERING
+    /* Ensure smooth bandwidth transitions */
+    SKP_Silk_LP_variable_cutoff( &amp;psEnc-&gt;sCmn.sLP, x_frame + psEnc-&gt;sCmn.la_shape, pIn_HP, psEnc-&gt;sCmn.frame_length );
+#else
+    SKP_memcpy( x_frame + psEnc-&gt;sCmn.la_shape, pIn_HP,psEnc-&gt;sCmn.frame_length * sizeof( SKP_int16 ) );
+#endif
+    
+    /*****************************************/
+    /* Find pitch lags, initial LPC analysis */
+    /*****************************************/
+    SKP_Silk_find_pitch_lags_FIX( psEnc, &amp;sEncCtrl, res_pitch, x_frame );
+
+    /************************/
+    /* Noise shape analysis */
+    /************************/
+    SKP_Silk_noise_shape_analysis_FIX( psEnc, &amp;sEncCtrl, res_pitch_frame, x_frame );    
+
+    /*****************************************/
+    /* Prefiltering for noise shaper         */
+    /*****************************************/
+    SKP_Silk_prefilter_FIX( psEnc, &amp;sEncCtrl, xfw, x_frame );
+
+
+    /***************************************************/
+    /* Find linear prediction coefficients (LPC + LTP) */
+    /***************************************************/
+    SKP_Silk_find_pred_coefs_FIX( psEnc, &amp;sEncCtrl, res_pitch );
+
+    /****************************************/
+    /* Process gains                        */
+    /****************************************/
+    SKP_Silk_process_gains_FIX( psEnc, &amp;sEncCtrl );

+    psEnc-&gt;sCmn.sigtype[         psEnc-&gt;sCmn.nFramesInPayloadBuf ] = sEncCtrl.sCmn.sigtype;
+    psEnc-&gt;sCmn.QuantOffsetType[ psEnc-&gt;sCmn.nFramesInPayloadBuf ] = sEncCtrl.sCmn.QuantOffsetType;
+
+    /****************************************/
+    /* Low Bitrate Redundant Encoding       */
+    /****************************************/
+    nBytesLBRR = MAX_ARITHM_BYTES;
+    SKP_Silk_LBRR_encode_FIX( psEnc, &amp;sEncCtrl, LBRRpayload, &amp;nBytesLBRR, xfw );
+
+    /*****************************************/
+    /* Noise shaping quantization            */
+    /*****************************************/
+    psEnc-&gt;NoiseShapingQuantizer( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sNSQ, xfw, 
+        &amp;psEnc-&gt;sCmn.q[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ], sEncCtrl.sCmn.NLSFInterpCoef_Q2, 
+        sEncCtrl.PredCoef_Q12[ 0 ], sEncCtrl.LTPCoef_Q14, sEncCtrl.AR2_Q13, sEncCtrl.HarmShapeGain_Q14, 
+        sEncCtrl.Tilt_Q14, sEncCtrl.LF_shp_Q14, sEncCtrl.Gains_Q16, sEncCtrl.Lambda_Q10, 
+        sEncCtrl.LTP_scale_Q14 );
+
+    /**************************************************/
+    /* Convert speech activity into VAD and DTX flags */
+    /**************************************************/
+    if( psEnc-&gt;speech_activity_Q8 &lt; SPEECH_ACTIVITY_DTX_THRES_Q8 ) {
+        psEnc-&gt;sCmn.vadFlag = NO_VOICE_ACTIVITY;
+        psEnc-&gt;sCmn.noSpeechCounter++;
+        if( psEnc-&gt;sCmn.noSpeechCounter &gt; NO_SPEECH_FRAMES_BEFORE_DTX ) {
+            psEnc-&gt;sCmn.inDTX = 1;
+        }
+        if( psEnc-&gt;sCmn.noSpeechCounter &gt; MAX_CONSECUTIVE_DTX ) {
+            psEnc-&gt;sCmn.noSpeechCounter = 0;
+            psEnc-&gt;sCmn.inDTX           = 0;
+        }
+    } else {
+        psEnc-&gt;sCmn.noSpeechCounter = 0;
+        psEnc-&gt;sCmn.inDTX           = 0;
+        psEnc-&gt;sCmn.vadFlag         = VOICE_ACTIVITY;
+    }
+
+    /****************************************/
+    /* Initialize arithmetic coder          */
+    /****************************************/
+    if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
+        SKP_Silk_range_enc_init( &amp;psEnc-&gt;sCmn.sRC );
+        psEnc-&gt;sCmn.nBytesInPayloadBuf = 0;
+    }
+
+    /****************************************/
+    /* Encode Parameters                    */
+    /****************************************/
+    if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
+        SKP_Silk_encode_parameters_v4( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sCmn.sRC );
+        FrameTermination_CDF = SKP_Silk_FrameTermination_v4_CDF;
+    } else {
+        SKP_Silk_encode_parameters( &amp;psEnc-&gt;sCmn, &amp;sEncCtrl.sCmn, &amp;psEnc-&gt;sCmn.sRC, 
+            &amp;psEnc-&gt;sCmn.q[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ] );
+        FrameTermination_CDF = SKP_Silk_FrameTermination_CDF;
+    }
+
+    /****************************************/
+    /* Update Buffers and State             */
+    /****************************************/
+    /* Update Input buffer */
+    SKP_memmove( psEnc-&gt;x_buf, &amp;psEnc-&gt;x_buf[ psEnc-&gt;sCmn.frame_length ], ( psEnc-&gt;sCmn.frame_length + psEnc-&gt;sCmn.la_shape ) * sizeof( SKP_int16 ) );
+    
+    /* parameters needed for next frame */
+    psEnc-&gt;sCmn.prev_sigtype            = sEncCtrl.sCmn.sigtype;
+    psEnc-&gt;sCmn.prevLag                 = sEncCtrl.sCmn.pitchL[ NB_SUBFR - 1];
+    psEnc-&gt;sCmn.first_frame_after_reset = 0;
+
+    if( psEnc-&gt;sCmn.sRC.error ) {
+        /* encoder returned error: clear payload buffer */
+        psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
+    } else {
+        psEnc-&gt;sCmn.nFramesInPayloadBuf++;
+    }
+
+    /****************************************/
+    /* finalize payload and copy to output  */
+    /****************************************/
+    if( psEnc-&gt;sCmn.nFramesInPayloadBuf * FRAME_LENGTH_MS &gt;= psEnc-&gt;sCmn.PacketSize_ms ) {
+
+        LBRR_idx = ( psEnc-&gt;sCmn.oldest_LBRR_idx + 1 ) &amp; LBRR_IDX_MASK;
+
+        /* Check if FEC information should be added */
+        frame_terminator = SKP_SILK_LAST_FRAME;
+        if( psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].usage == SKP_SILK_ADD_LBRR_TO_PLUS1 ) {
+            frame_terminator = SKP_SILK_LBRR_VER1;
+        }
+        if( psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].usage == SKP_SILK_ADD_LBRR_TO_PLUS2 ) {
+            frame_terminator = SKP_SILK_LBRR_VER2;
+            LBRR_idx = psEnc-&gt;sCmn.oldest_LBRR_idx;
+        }
+        /* Add the frame termination info to stream */
+        SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC, frame_terminator, FrameTermination_CDF );
+
+        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
+            /* Code excitation signal */
+            for( i = 0; i &lt;psEnc-&gt;sCmn.nFramesInPayloadBuf; i++ ) {
+                SKP_Silk_encode_pulses( &amp;psEnc-&gt;sCmn.sRC, psEnc-&gt;sCmn.sigtype[ i ],psEnc-&gt;sCmn.QuantOffsetType[ i ], 
+                    &amp;psEnc-&gt;sCmn.q[ i * psEnc-&gt;sCmn.frame_length],psEnc-&gt;sCmn.frame_length );
+            }
+        }
+        /* payload length so far */
+        SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC, &amp;nBytes );
+
+        /* check that there is enough space in external output buffer, and move data */
+        if( *pnBytesOut &gt;= nBytes ) {
+            SKP_Silk_range_enc_wrap_up( &amp;psEnc-&gt;sCmn.sRC );
+            SKP_memcpy( pCode, psEnc-&gt;sCmn.sRC.buffer, nBytes * sizeof( SKP_uint8 ) );
+            
+            if( frame_terminator &gt; SKP_SILK_MORE_FRAMES &amp;&amp; 
+                    *pnBytesOut &gt;= nBytes + psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes ) {
+                /* Get old packet and add to payload. */
+                SKP_memcpy( &amp;pCode[ nBytes ],
+                    psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].payload,
+                    psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes * sizeof( SKP_uint8 ) );
+                nBytes += psEnc-&gt;sCmn.LBRR_buffer[ LBRR_idx ].nBytes;
+            }
+                        
+            *pnBytesOut = nBytes;
+        
+            /* Update FEC buffer */
+            SKP_memcpy( psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].payload, LBRRpayload, 
+                nBytesLBRR * sizeof( SKP_uint8 ) );
+            psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].nBytes = nBytesLBRR;
+            /* This line tells describes how FEC should be used */
+            psEnc-&gt;sCmn.LBRR_buffer[ psEnc-&gt;sCmn.oldest_LBRR_idx ].usage = sEncCtrl.sCmn.LBRR_usage;
+            psEnc-&gt;sCmn.oldest_LBRR_idx = ( psEnc-&gt;sCmn.oldest_LBRR_idx + 1 ) &amp; LBRR_IDX_MASK;
+
+            /* Reset number of frames in payload buffer */
+            psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
+        } else {
+            /* Not enough space: Payload will be discarded */
+            *pnBytesOut = 0;
+            nBytes      = 0;
+            psEnc-&gt;sCmn.nFramesInPayloadBuf = 0;
+            ret = SKP_SILK_ENC_PAYLOAD_BUF_TOO_SHORT;
+        }
+    } else {
+        /* no payload for you this time */
+        *pnBytesOut = 0;
+
+        /* Encode that more frames follows */
+        frame_terminator = SKP_SILK_MORE_FRAMES;
+        SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC, frame_terminator, FrameTermination_CDF );
+
+        /* payload length so far */
+        SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC, &amp;nBytes );
+        
+        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
+            /* Take into account the q signal that isnt in the bitstream yet */
+            nBytes +=  SKP_Silk_pulses_to_bytes( &amp;psEnc-&gt;sCmn, 
+                &amp;psEnc-&gt;sCmn.q[ (psEnc-&gt;sCmn.nFramesInPayloadBuf - 1) * psEnc-&gt;sCmn.frame_length ] );
+        }
+    }
+
+    /* Check for arithmetic coder errors */
+    if( psEnc-&gt;sCmn.sRC.error ) {
+        ret = SKP_SILK_ENC_INTERNAL_ERROR;
+    }
+
+    /* simulate number of ms buffered in channel because of exceeding TargetRate */
+    SKP_assert(  ( 8 * 1000 * ( (SKP_int64)nBytes - (SKP_int64)psEnc-&gt;sCmn.nBytesInPayloadBuf ) ) == 
+        SKP_SAT32( 8 * 1000 * ( (SKP_int64)nBytes - (SKP_int64)psEnc-&gt;sCmn.nBytesInPayloadBuf ) ) );
+    SKP_assert( psEnc-&gt;sCmn.TargetRate_bps &gt; 0 );
+    psEnc-&gt;BufferedInChannel_ms   += SKP_DIV32( 8 * 1000 * ( nBytes -psEnc-&gt;sCmn.nBytesInPayloadBuf ),psEnc-&gt;sCmn.TargetRate_bps );
+    psEnc-&gt;BufferedInChannel_ms   -= FRAME_LENGTH_MS;
+    psEnc-&gt;BufferedInChannel_ms    = SKP_LIMIT( psEnc-&gt;BufferedInChannel_ms, 0, 100 );
+    psEnc-&gt;sCmn.nBytesInPayloadBuf = nBytes;
+
+    if( psEnc-&gt;speech_activity_Q8 &gt; WB_DETECT_ACTIVE_SPEECH_LEVEL_THRES_Q8 ) {
+        psEnc-&gt;sCmn.sSWBdetect.ActiveSpeech_ms = SKP_ADD_POS_SAT32( psEnc-&gt;sCmn.sSWBdetect.ActiveSpeech_ms, FRAME_LENGTH_MS ); 
+    }
+
+
+    return( ret );
+}
+
+/* Low BitRate Redundancy encoding functionality. Reuse all parameters but encode residual with lower bitrate */
+void SKP_Silk_LBRR_encode_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Pointer to Silk encoder state           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Pointer to Silk encoder control struct  */
+    SKP_uint8                       *pCode,         /* O    Pointer to payload                      */
+    SKP_int16                       *pnBytesOut,    /* I/O  Pointer to number of payload bytes      */
+    SKP_int16                       xfw[]           /* I    Input signal                            */
+)
+{
+    SKP_int     i, TempGainsIndices[ NB_SUBFR ], frame_terminator;
+    SKP_int     nBytes, nFramesInPayloadBuf;
+    SKP_int32   TempGains_Q16[ NB_SUBFR ];
+    SKP_int     typeOffset, LTP_scaleIndex, Rate_only_parameters = 0;
+    /*******************************************/
+    /* Control use of inband LBRR              */
+    /*******************************************/
+    SKP_Silk_LBRR_ctrl_FIX( psEnc, psEncCtrl );
+
+    if( psEnc-&gt;sCmn.LBRR_enabled ) {
+        /* Save original Gains */
+        SKP_memcpy( TempGainsIndices, psEncCtrl-&gt;sCmn.GainsIndices, NB_SUBFR * sizeof( SKP_int   ) );
+        SKP_memcpy( TempGains_Q16,    psEncCtrl-&gt;Gains_Q16,    NB_SUBFR * sizeof( SKP_int32 ) );
+
+        typeOffset     = psEnc-&gt;sCmn.typeOffsetPrev; // Temp save as cannot be overwritten
+        LTP_scaleIndex = psEncCtrl-&gt;sCmn.LTP_scaleIndex;
+
+        /* Set max rate where quant signal is encoded */
+        if( psEnc-&gt;sCmn.fs_kHz == 8 ) {
+            Rate_only_parameters = 13500;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 12 ) {
+            Rate_only_parameters = 15500;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            Rate_only_parameters = 17500;
+        } else if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
+            Rate_only_parameters = 19500;
+        } else {
+            SKP_assert( 0 );
+        }
+
+        if( psEnc-&gt;sCmn.Complexity &gt; 0 &amp;&amp; psEnc-&gt;sCmn.TargetRate_bps &gt; Rate_only_parameters ) {
+            if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
+                /* First frame in packet copy Everything */
+                SKP_memcpy( &amp;psEnc-&gt;sNSQ_LBRR, &amp;psEnc-&gt;sNSQ, sizeof( SKP_Silk_nsq_state ) );
+            
+                psEnc-&gt;sCmn.LBRRprevLastGainIndex = psEnc-&gt;sShape.LastGainIndex;
+                /* Increase Gains to get target LBRR rate */
+                psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] = psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] + psEnc-&gt;sCmn.LBRR_GainIncreases;
+                psEncCtrl-&gt;sCmn.GainsIndices[ 0 ] = SKP_LIMIT( psEncCtrl-&gt;sCmn.GainsIndices[ 0 ], 0, N_LEVELS_QGAIN - 1 );
+            }
+            /* Decode to get Gains in sync with decoder         */
+            /* Overwrite unquantized gains with quantized gains */
+            SKP_Silk_gains_dequant( psEncCtrl-&gt;Gains_Q16, psEncCtrl-&gt;sCmn.GainsIndices, 
+                &amp;psEnc-&gt;sCmn.LBRRprevLastGainIndex, psEnc-&gt;sCmn.nFramesInPayloadBuf );
+            /*****************************************/
+            /* Noise shaping quantization            */
+            /*****************************************/
+            psEnc-&gt;NoiseShapingQuantizer( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn,
+                &amp;psEnc-&gt;sNSQ_LBRR, xfw, &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf * psEnc-&gt;sCmn.frame_length ], 
+                psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEncCtrl-&gt;PredCoef_Q12[ 0 ], psEncCtrl-&gt;LTPCoef_Q14, 
+                psEncCtrl-&gt;AR2_Q13, psEncCtrl-&gt;HarmShapeGain_Q14, psEncCtrl-&gt;Tilt_Q14, psEncCtrl-&gt;LF_shp_Q14, 
+                psEncCtrl-&gt;Gains_Q16, psEncCtrl-&gt;Lambda_Q10, psEncCtrl-&gt;LTP_scale_Q14 );
+        } else {
+            SKP_memset( &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf *psEnc-&gt;sCmn.frame_length ], 0,
+                psEnc-&gt;sCmn.frame_length * sizeof( SKP_int ) );
+            psEncCtrl-&gt;sCmn.LTP_scaleIndex = 0;
+        }
+        /****************************************/
+        /* Initialize arithmetic coder          */
+        /****************************************/
+        if( psEnc-&gt;sCmn.nFramesInPayloadBuf == 0 ) {
+            SKP_Silk_range_enc_init( &amp;psEnc-&gt;sCmn.sRC_LBRR );
+            psEnc-&gt;sCmn.nBytesInPayloadBuf = 0;
+        }
+
+        /****************************************/
+        /* Encode Parameters                    */
+        /****************************************/
+        if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
+            SKP_Silk_encode_parameters_v4( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn, &amp;psEnc-&gt;sCmn.sRC_LBRR );
+        } else {
+            SKP_Silk_encode_parameters( &amp;psEnc-&gt;sCmn, &amp;psEncCtrl-&gt;sCmn, &amp;psEnc-&gt;sCmn.sRC_LBRR, 
+                &amp;psEnc-&gt;sCmn.q_LBRR[ psEnc-&gt;sCmn.nFramesInPayloadBuf * psEnc-&gt;sCmn.frame_length] );
+        }
+
+        if( psEnc-&gt;sCmn.sRC_LBRR.error ) {
+            /* encoder returned error: clear payload buffer */
+            nFramesInPayloadBuf = 0;
+        } else {
+            nFramesInPayloadBuf = psEnc-&gt;sCmn.nFramesInPayloadBuf + 1;
+        }
+
+        /****************************************/
+        /* finalize payload and copy to output  */
+        /****************************************/
+        if( SKP_SMULBB( nFramesInPayloadBuf, FRAME_LENGTH_MS ) &gt;= psEnc-&gt;sCmn.PacketSize_ms ) {
+
+            /* Check if FEC information should be added */
+            frame_terminator = SKP_SILK_LAST_FRAME;
+
+            /* Add the frame termination info to stream */
+            SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC_LBRR, frame_terminator, SKP_Silk_FrameTermination_CDF );
+            
+            if( psEnc-&gt;sCmn.bitstream_v == BIT_STREAM_V4 ) {
+                /*********************************************/
+                /* Encode quantization indices of excitation */
+                /*********************************************/
+                for( i = 0; i &lt; nFramesInPayloadBuf; i++ ) {
+                    SKP_Silk_encode_pulses( &amp;psEnc-&gt;sCmn.sRC_LBRR, psEnc-&gt;sCmn.sigtype[ i ], psEnc-&gt;sCmn.QuantOffsetType[ i ],
+                        &amp;psEnc-&gt;sCmn.q_LBRR[ i * psEnc-&gt;sCmn.frame_length ], psEnc-&gt;sCmn.frame_length );
+                }
+            }
+            /* payload length so far */
+            SKP_Silk_range_coder_get_length( &amp;psEnc-&gt;sCmn.sRC_LBRR, &amp;nBytes );
+
+            /* check that there is enough space in external output buffer, and move data */
+            if( *pnBytesOut &gt;= nBytes ) {
+                SKP_Silk_range_enc_wrap_up( &amp;psEnc-&gt;sCmn.sRC_LBRR );
+                SKP_memcpy( pCode, psEnc-&gt;sCmn.sRC_LBRR.buffer, nBytes * sizeof( SKP_uint8 ) );
+                
+                *pnBytesOut = nBytes;
+            } else {
+                /* not enough space: payload will be discarded */
+                *pnBytesOut = 0;
+                SKP_assert( 0 );
+            }
+        } else {
+            /* no payload for you this time */
+            *pnBytesOut = 0;
+
+            /* Encode that more frames follows */
+            frame_terminator = SKP_SILK_MORE_FRAMES;
+            SKP_Silk_range_encoder( &amp;psEnc-&gt;sCmn.sRC_LBRR, frame_terminator, SKP_Silk_FrameTermination_CDF );
+        }
+
+        /* Restore original Gains */
+        SKP_memcpy( psEncCtrl-&gt;sCmn.GainsIndices, TempGainsIndices, NB_SUBFR * sizeof( SKP_int   ) );
+        SKP_memcpy( psEncCtrl-&gt;Gains_Q16,  TempGains_Q16,    NB_SUBFR * sizeof( SKP_int32 ) );
+    
+        /* Restore LTP scale index and typeoffset */
+        psEncCtrl-&gt;sCmn.LTP_scaleIndex = LTP_scaleIndex;
+        psEnc-&gt;sCmn.typeOffsetPrev = typeOffset;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_encode_parametersc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,186 +1,167 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/*******************************************/
-/* Encode parameters to create the payload */
-/*******************************************/
-void SKP_Silk_encode_parameters(
-    SKP_Silk_encoder_state          *psEncC,        /* I/O  Encoder state                   */
-
-
-
-
-
-    SKP_Silk_encoder_control        *psEncCtrlC,    /* I/O  Encoder control                 */
-    SKP_Silk_range_coder_state      *psRC,          /* I/O  Range encoder state             */
-    const SKP_int                   *q              /* I    Quantization indices            */
-)
-{
-    SKP_int   i, k, typeOffset;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
-
-
-    /************************/
-    /* Encode sampling rate */
-    /************************/
-    /* only done for first frame in packet */
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-
-        /* Initialize arithmetic coder          */
-        SKP_Silk_range_enc_init( &amp;psEncC-&gt;sRC );
-        psEncC-&gt;nBytesInPayloadBuf = 0;
-
-        /* get sampling rate index */
-        for( i = 0; i &lt; 3; i++ ) {
-            if( SKP_Silk_SamplingRates_table[ i ] == psEncC-&gt;fs_kHz ) {
-                break;
-            }
-        }
-        SKP_Silk_range_encoder( psRC, i, SKP_Silk_SamplingRates_CDF );
-    }
-
-    /*******************************************/
-    /* Encode signal type and quantizer offset */
-    /*******************************************/
-    typeOffset = 2 * psEncCtrlC-&gt;sigtype + psEncCtrlC-&gt;QuantOffsetType;
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_CDF );
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_joint_CDF[ psEncC-&gt;typeOffsetPrev ] );
-    }
-    psEncC-&gt;typeOffsetPrev = typeOffset;
-
-    /****************/
-    /* Encode gains */
-    /****************/
-    /* first subframe */
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_gain_CDF[ psEncCtrlC-&gt;sigtype ] );
-
-
-
-
-
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_delta_gain_CDF );
-    }
-
-    /* remaining subframes */
-    for( i = 1; i &lt; NB_SUBFR; i++ ) {
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ i ], SKP_Silk_delta_gain_CDF );
-    }
-
-    /****************/
-    /* Encode NLSFs */
-    /****************/
-    /* Range encoding of the NLSF path */
-    psNLSF_CB = psEncC-&gt;psNLSF_CB[ psEncCtrlC-&gt;sigtype ];
-    SKP_Silk_range_encoder_multi( psRC, psEncCtrlC-&gt;NLSFIndices, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;nStages );
-
-    /* Encode NLSF interpolation factor */
-    SKP_assert( psEncC-&gt;useInterpolatedNLSFs == 1 || psEncCtrlC-&gt;NLSFInterpCoef_Q2 == ( 1 &lt;&lt; 2 ) );
-    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;NLSFInterpCoef_Q2, SKP_Silk_NLSF_interpolation_factor_CDF );
-
-
-    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
-        /*********************/
-        /* Encode pitch lags */
-        /*********************/
-
-
-        /* lag index */
-        if( psEncC-&gt;fs_kHz == 8 ) {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_NB_CDF );
-        } else if( psEncC-&gt;fs_kHz == 12 ) {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_MB_CDF );
-        } else if( psEncC-&gt;fs_kHz == 16 ) {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_WB_CDF );
-        } else {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_SWB_CDF );
-        }
-
-
-        /* countour index */
-        if( psEncC-&gt;fs_kHz == 8 ) {
-            /* Less codevectors used in 8 khz mode */
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_NB_CDF );
-        } else {
-            /* Joint for 12, 16, 24 khz */
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_CDF );
-        }
-
-
-
-
-
-        /********************/
-        /* Encode LTP gains */
-        /********************/
-
-        /* PERIndex value */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;PERIndex, SKP_Silk_LTP_per_index_CDF );
-
-        /* Codebook Indices */
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTPIndex[ k ], SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC-&gt;PERIndex ] );
-        }
-
-        /**********************/
-        /* Encode LTP scaling */
-        /**********************/
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTP_scaleIndex, SKP_Silk_LTPscale_CDF );
-    }
-
-
-    /***************/
-    /* Encode seed */
-    /***************/
-    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;Seed, SKP_Silk_Seed_CDF );
-
-    /*********************************************/
-    /* Encode quantization indices of excitation */
-    /*********************************************/
-    SKP_Silk_encode_pulses( psRC, psEncCtrlC-&gt;sigtype, psEncCtrlC-&gt;QuantOffsetType, q, psEncC-&gt;frame_length );
-
-
-    /*********************************************/
-    /* Encode VAD flag                           */
-    /*********************************************/
-    SKP_Silk_range_encoder( psRC, psEncC-&gt;vadFlag, SKP_Silk_vadflag_CDF );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/*******************************************/
+/* Encode parameters to create the payload */
+/*******************************************/
+void SKP_Silk_encode_parameters(
+    SKP_Silk_encoder_state          *psEncC,        /* I/O  Encoder state                   */
+    SKP_Silk_encoder_control        *psEncCtrlC,    /* I/O  Encoder control                 */
+    SKP_Silk_range_coder_state      *psRC,          /* I/O  Range encoder state             */
+    const SKP_int                   *q              /* I    Quantization indices            */
+)
+{
+    SKP_int   i, k, typeOffset;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
+
+
+    /************************/
+    /* Encode sampling rate */
+    /************************/
+    /* only done for first frame in packet */
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        
+        /* Initialize arithmetic coder */
+        SKP_Silk_range_enc_init( &amp;psEncC-&gt;sRC );
+        psEncC-&gt;nBytesInPayloadBuf = 0;
+
+        /* get sampling rate index */
+        for( i = 0; i &lt; 3; i++ ) {
+            if( SKP_Silk_SamplingRates_table[ i ] == psEncC-&gt;fs_kHz ) {
+                break;
+            }
+        }
+        SKP_Silk_range_encoder( psRC, i, SKP_Silk_SamplingRates_CDF );
+    }
+
+    /*******************************************/
+    /* Encode signal type and quantizer offset */
+    /*******************************************/
+    typeOffset = 2 * psEncCtrlC-&gt;sigtype + psEncCtrlC-&gt;QuantOffsetType;
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_CDF );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_joint_CDF[ psEncC-&gt;typeOffsetPrev ] );
+    }
+    psEncC-&gt;typeOffsetPrev = typeOffset;
+
+    /****************/
+    /* Encode gains */
+    /****************/
+    /* first subframe */
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_gain_CDF[ psEncCtrlC-&gt;sigtype ] );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_delta_gain_CDF );
+    }
+
+    /* remaining subframes */
+    for( i = 1; i &lt; NB_SUBFR; i++ ) {
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ i ], SKP_Silk_delta_gain_CDF );
+    }
+
+
+    /****************/
+    /* Encode NLSFs */
+    /****************/
+    /* Range encoding of the NLSF path */
+    psNLSF_CB = psEncC-&gt;psNLSF_CB[ psEncCtrlC-&gt;sigtype ];
+    SKP_Silk_range_encoder_multi( psRC, psEncCtrlC-&gt;NLSFIndices, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;nStages );
+
+    /* Encode NLSF interpolation factor */
+    SKP_assert( psEncC-&gt;useInterpolatedNLSFs == 1 || psEncCtrlC-&gt;NLSFInterpCoef_Q2 == ( 1 &lt;&lt; 2 ) );
+    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;NLSFInterpCoef_Q2, SKP_Silk_NLSF_interpolation_factor_CDF );
+
+
+    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
+        /*********************/
+        /* Encode pitch lags */
+        /*********************/
+
+
+        /* lag index */
+        if( psEncC-&gt;fs_kHz == 8 ) {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_NB_CDF );
+        } else if( psEncC-&gt;fs_kHz == 12 ) {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_MB_CDF );
+        } else if( psEncC-&gt;fs_kHz == 16 ) {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_WB_CDF );
+        } else {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_SWB_CDF );
+        }
+
+
+        /* countour index */
+        if( psEncC-&gt;fs_kHz == 8 ) {
+            /* Less codevectors used in 8 khz mode */
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_NB_CDF );
+        } else {
+            /* Joint for 12, 16, 24 khz */
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_CDF );
+        }
+
+        /********************/
+        /* Encode LTP gains */
+        /********************/
+
+        /* PERIndex value */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;PERIndex, SKP_Silk_LTP_per_index_CDF );
+
+        /* Codebook Indices */
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTPIndex[ k ], SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC-&gt;PERIndex ] );
+        }
+
+        /**********************/
+        /* Encode LTP scaling */
+        /**********************/
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTP_scaleIndex, SKP_Silk_LTPscale_CDF );
+    }
+
+
+    /***************/
+    /* Encode seed */
+    /***************/
+    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;Seed, SKP_Silk_Seed_CDF );
+
+    /*********************************************/
+    /* Encode quantization indices of excitation */
+    /*********************************************/
+    SKP_Silk_encode_pulses( psRC, psEncCtrlC-&gt;sigtype, psEncCtrlC-&gt;QuantOffsetType, q, psEncC-&gt;frame_length );
+
+
+    /*********************************************/
+    /* Encode VAD flag                           */
+    /*********************************************/
+    SKP_Silk_range_encoder( psRC, psEncC-&gt;vadFlag, SKP_Silk_vadflag_CDF );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_encode_parameters_v4c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters_v4.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters_v4.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_encode_parameters_v4.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,204 +1,179 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-
-
-
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/*******************************************/
-/* Encode parameters to create the payload */
-/*******************************************/
-void SKP_Silk_encode_parameters_v4(
-    SKP_Silk_encoder_state          *psEncC,        /* I/O  state                           */
-    SKP_Silk_encoder_control        *psEncCtrlC,    /* I/O  Encoder control                 */
-    SKP_Silk_range_coder_state      *psRC           /* I/O  Range encoder state             */
-)
-{
-    SKP_int   i, k, typeOffset;
-    SKP_int   encode_absolute_lagIndex, delta_lagIndex;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
-
-
-    /************************/
-    /* Encode sampling rate */
-    /************************/
-    /* only done for first frame in packet */
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-
-        /* Initialize arithmetic coder */
-        SKP_Silk_range_enc_init( &amp;psEncC-&gt;sRC );
-        psEncC-&gt;nBytesInPayloadBuf = 0;
-
-        /* get sampling rate index */
-
-
-
-
-
-        for( i = 0; i &lt; 3; i++ ) {
-            if( SKP_Silk_SamplingRates_table[ i ] == psEncC-&gt;fs_kHz ) {
-                break;
-            }
-        }
-        SKP_Silk_range_encoder( psRC, i, SKP_Silk_SamplingRates_CDF );
-    }
-
-    /*********************************************/
-    /* Encode VAD flag                           */
-    /*********************************************/
-    SKP_Silk_range_encoder( psRC, psEncC-&gt;vadFlag, SKP_Silk_vadflag_CDF );
-
-    /*******************************************/
-    /* Encode signal type and quantizer offset */
-    /*******************************************/
-    typeOffset = SKP_LSHIFT( psEncCtrlC-&gt;sigtype, 1 ) + psEncCtrlC-&gt;QuantOffsetType;
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_CDF );
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_joint_CDF[ psEncC-&gt;typeOffsetPrev ] );
-    }
-    psEncC-&gt;typeOffsetPrev = typeOffset;
-
-    /****************/
-    /* Encode gains */
-    /****************/
-    /* first subframe */
-    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
-        /* first frame in packet: independent coding */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_gain_CDF[ psEncCtrlC-&gt;sigtype ] );
-    } else {
-        /* condidtional coding */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_delta_gain_CDF );
-    }
-
-    /* remaining subframes */
-    for( i = 1; i &lt; NB_SUBFR; i++ ) {
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ i ], SKP_Silk_delta_gain_CDF );
-    }
-
-
-    /****************/
-    /* Encode NLSFs */
-    /****************/
-    /* Range encoding of the NLSF path */
-
-
-
-
-
-    psNLSF_CB = psEncC-&gt;psNLSF_CB[ psEncCtrlC-&gt;sigtype ];
-    SKP_Silk_range_encoder_multi( psRC, psEncCtrlC-&gt;NLSFIndices, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;nStages );
-
-    /* Encode NLSF interpolation factor */
-    SKP_assert( psEncC-&gt;useInterpolatedNLSFs == 1 || psEncCtrlC-&gt;NLSFInterpCoef_Q2 == ( 1 &lt;&lt; 2 ) );
-    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;NLSFInterpCoef_Q2, SKP_Silk_NLSF_interpolation_factor_CDF );
-
-
-    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
-        /*********************/
-        /* Encode pitch lags */
-        /*********************/
-
-
-        /* lag index */
-        encode_absolute_lagIndex = 1;
-        if( psEncC-&gt;nFramesInPayloadBuf &gt; 0 &amp;&amp; psEncC-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
-            /* Delta Encoding */
-            delta_lagIndex = psEncCtrlC-&gt;lagIndex - psEncC-&gt;prev_lagIndex;
-            if( delta_lagIndex &gt; MAX_DELTA_LAG ) {
-                delta_lagIndex = ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1;
-            } else if ( delta_lagIndex &lt; -MAX_DELTA_LAG ) {
-                delta_lagIndex = ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1;
-            } else {
-                delta_lagIndex = delta_lagIndex + MAX_DELTA_LAG;
-                encode_absolute_lagIndex = 0; /* Only use delta */
-            }
-            SKP_Silk_range_encoder( psRC, delta_lagIndex, SKP_Silk_pitch_delta_CDF );
-        }
-        if( encode_absolute_lagIndex ) {
-            /* Absolute encoding */
-            if( psEncC-&gt;fs_kHz == 8 ) {
-                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_NB_CDF );
-            } else if( psEncC-&gt;fs_kHz == 12 ) {
-                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_MB_CDF );
-            } else if( psEncC-&gt;fs_kHz == 16 ) {
-                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_WB_CDF );
-            } else {
-                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_SWB_CDF );
-            }
-        }
-        psEncC-&gt;prev_lagIndex = psEncCtrlC-&gt;lagIndex;
-
-
-        /* countour index */
-        if( psEncC-&gt;fs_kHz == 8 ) {
-            /* Less codevectors used in 8 khz mode */
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_NB_CDF );
-
-
-
-
-
-        } else {
-            /* Joint for 12, 16, 24 khz */
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_CDF );
-        }
-
-        /********************/
-        /* Encode LTP gains */
-        /********************/
-
-        /* PERIndex value */
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;PERIndex, SKP_Silk_LTP_per_index_CDF );
-
-        /* Codebook Indices */
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTPIndex[ k ], SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC-&gt;PERIndex ] );
-        }
-
-        /**********************/
-        /* Encode LTP scaling */
-        /**********************/
-        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTP_scaleIndex, SKP_Silk_LTPscale_CDF );
-    }
-
-    /***************/
-    /* Encode seed */
-    /***************/
-    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;Seed, SKP_Silk_Seed_CDF );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/*******************************************/
+/* Encode parameters to create the payload */
+/*******************************************/
+void SKP_Silk_encode_parameters_v4(
+    SKP_Silk_encoder_state          *psEncC,        /* I/O  Encoder state                   */
+    SKP_Silk_encoder_control        *psEncCtrlC,    /* I/O  Encoder control                 */
+    SKP_Silk_range_coder_state      *psRC           /* I/O  Range encoder state             */
+)
+{
+    SKP_int   i, k, typeOffset;
+    SKP_int   encode_absolute_lagIndex, delta_lagIndex;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
+
+
+    /************************/
+    /* Encode sampling rate */
+    /************************/
+    /* only done for first frame in packet */
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        
+        /* Initialize arithmetic coder */
+        SKP_Silk_range_enc_init( &amp;psEncC-&gt;sRC );
+        psEncC-&gt;nBytesInPayloadBuf = 0;
+
+        /* get sampling rate index */
+        for( i = 0; i &lt; 3; i++ ) {
+            if( SKP_Silk_SamplingRates_table[ i ] == psEncC-&gt;fs_kHz ) {
+                break;
+            }
+        }
+        SKP_Silk_range_encoder( psRC, i, SKP_Silk_SamplingRates_CDF );
+    }
+
+    /*********************************************/
+    /* Encode VAD flag                           */
+    /*********************************************/
+    SKP_Silk_range_encoder( psRC, psEncC-&gt;vadFlag, SKP_Silk_vadflag_CDF );
+
+    /*******************************************/
+    /* Encode signal type and quantizer offset */
+    /*******************************************/
+    typeOffset = 2 * psEncCtrlC-&gt;sigtype + psEncCtrlC-&gt;QuantOffsetType;
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_CDF );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_encoder( psRC, typeOffset, SKP_Silk_type_offset_joint_CDF[ psEncC-&gt;typeOffsetPrev ] );
+    }
+    psEncC-&gt;typeOffsetPrev = typeOffset;
+
+    /****************/
+    /* Encode gains */
+    /****************/
+    /* first subframe */
+    if( psEncC-&gt;nFramesInPayloadBuf == 0 ) {
+        /* first frame in packet: independent coding */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_gain_CDF[ psEncCtrlC-&gt;sigtype ] );
+    } else {
+        /* condidtional coding */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ 0 ], SKP_Silk_delta_gain_CDF );
+    }
+
+    /* remaining subframes */
+    for( i = 1; i &lt; NB_SUBFR; i++ ) {
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;GainsIndices[ i ], SKP_Silk_delta_gain_CDF );
+    }
+
+
+    /****************/
+    /* Encode NLSFs */
+    /****************/
+    /* Range encoding of the NLSF path */
+    psNLSF_CB = psEncC-&gt;psNLSF_CB[ psEncCtrlC-&gt;sigtype ];
+    SKP_Silk_range_encoder_multi( psRC, psEncCtrlC-&gt;NLSFIndices, psNLSF_CB-&gt;StartPtr, psNLSF_CB-&gt;nStages );
+
+    /* Encode NLSF interpolation factor */
+    SKP_assert( psEncC-&gt;useInterpolatedNLSFs == 1 || psEncCtrlC-&gt;NLSFInterpCoef_Q2 == ( 1 &lt;&lt; 2 ) );
+    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;NLSFInterpCoef_Q2, SKP_Silk_NLSF_interpolation_factor_CDF );
+
+
+    if( psEncCtrlC-&gt;sigtype == SIG_TYPE_VOICED ) {
+        /*********************/
+        /* Encode pitch lags */
+        /*********************/
+
+
+        /* lag index */
+        encode_absolute_lagIndex = 1;
+        if( psEncC-&gt;nFramesInPayloadBuf &gt; 0 &amp;&amp; psEncC-&gt;prev_sigtype == SIG_TYPE_VOICED ) {
+            /* Delta Encoding */
+            delta_lagIndex = psEncCtrlC-&gt;lagIndex - psEncC-&gt;prev_lagIndex;
+            if( delta_lagIndex &gt; MAX_DELTA_LAG ) {
+                delta_lagIndex = ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1;
+            } else if ( delta_lagIndex &lt; -MAX_DELTA_LAG ) {
+                delta_lagIndex = ( MAX_DELTA_LAG &lt;&lt; 1 ) + 1;
+            } else {
+                delta_lagIndex = delta_lagIndex + MAX_DELTA_LAG;
+                encode_absolute_lagIndex = 0; /* Only use delta */
+            }
+            SKP_Silk_range_encoder( psRC, delta_lagIndex, SKP_Silk_pitch_delta_CDF );
+        }
+        if( encode_absolute_lagIndex ) {
+            /* Absolute encoding */
+            if( psEncC-&gt;fs_kHz == 8 ) {
+                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_NB_CDF );
+            } else if( psEncC-&gt;fs_kHz == 12 ) {
+                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_MB_CDF );
+            } else if( psEncC-&gt;fs_kHz == 16 ) {
+                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_WB_CDF );
+            } else {
+                SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;lagIndex, SKP_Silk_pitch_lag_SWB_CDF );
+            }
+        }
+        psEncC-&gt;prev_lagIndex = psEncCtrlC-&gt;lagIndex;
+
+
+        /* countour index */
+        if( psEncC-&gt;fs_kHz == 8 ) {
+            /* Less codevectors used in 8 khz mode */
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_NB_CDF );
+        } else {
+            /* Joint for 12, 16, 24 khz */
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;contourIndex, SKP_Silk_pitch_contour_CDF );
+        }
+
+        /********************/
+        /* Encode LTP gains */
+        /********************/
+
+        /* PERIndex value */
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;PERIndex, SKP_Silk_LTP_per_index_CDF );
+
+        /* Codebook Indices */
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTPIndex[ k ], SKP_Silk_LTP_gain_CDF_ptrs[ psEncCtrlC-&gt;PERIndex ] );
+        }
+
+        /**********************/
+        /* Encode LTP scaling */
+        /**********************/
+        SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;LTP_scaleIndex, SKP_Silk_LTPscale_CDF );
+    }
+
+
+    /***************/
+    /* Encode seed */
+    /***************/
+    SKP_Silk_range_encoder( psRC, psEncCtrlC-&gt;Seed, SKP_Silk_Seed_CDF );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_encode_pulsesc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_encode_pulses.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_encode_pulses.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_encode_pulses.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,220 +1,195 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-
-
-
-
-
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/*********************************************/
-/* Encode quantization indices of excitation */
-/*********************************************/
-
-SKP_INLINE SKP_int combine_and_check(       /* return ok */
-    SKP_int         *pulses_comb,           /* O */
-    const SKP_int   *pulses_in,             /* I */
-    SKP_int         max_pulses,             /* I    max value for sum of pulses */
-    SKP_int         len                     /* I    number of output values */
-)
-{
-    SKP_int k, sum;
-
-    for( k = 0; k &lt; len; k++ ) {
-        sum = pulses_in[2*k] + pulses_in[2*k+1];
-        if( sum &gt; max_pulses ) {
-            return 1;
-        }
-        pulses_comb[ k ] = sum;
-    }
-
-    return 0;
-}
-
-/* Encode quantization indices of excitation */
-void SKP_Silk_encode_pulses(
-    SKP_Silk_range_coder_state      *psRC,          /* I/O  Range coder state               */
-    const SKP_int                   sigtype,        /* I    Sigtype                         */
-    const SKP_int                   QuantOffsetType,/* I    QuantOffsetType                 */
-    const SKP_int                   q[],            /* I    quantization indices            */
-    const SKP_int                   frame_length    /* I    Frame length                    */
-)
-
-
-
-
-
-{
-    SKP_int   i, k, j, iter, bit, nLS, scale_down, RateLevelIndex = 0;
-    SKP_int32 abs_q, minSumBits_Q6, sumBits_Q6;
-    SKP_int   abs_pulses[MAX_FRAME_LENGTH];
-    SKP_int   pulses_comb[ 8 ];
-    SKP_int   sum_pulses[MAX_NB_SHELL_BLOCKS], nRshifts[MAX_NB_SHELL_BLOCKS];
-    SKP_int   *abs_pulses_ptr;
-    const SKP_int *pulses_ptr;
-    const SKP_uint16 *cdf_ptr;
-    const SKP_int16 *nBits_ptr;
-
-    SKP_memset( pulses_comb, 0, 8 * sizeof(SKP_int)); // Fixing Valgrind reported problem
-
-    /********************************/
-    /* Prepare for shell coding     */
-    /********************************/
-    /* Calculate number of shell blocks */
-    iter = frame_length / SHELL_CODEC_FRAME_LENGTH;
-
-    /* Take the absolute value of the pulses */
-    for( i = 0; i &lt; frame_length; i+=4 ) {
-        abs_pulses[i+0] = (SKP_int)SKP_abs(q[i+0]);
-        abs_pulses[i+1] = (SKP_int)SKP_abs(q[i+1]);
-        abs_pulses[i+2] = (SKP_int)SKP_abs(q[i+2]);
-        abs_pulses[i+3] = (SKP_int)SKP_abs(q[i+3]);
-    }
-
-    /* Calc sum pulses per shell code frame */
-    abs_pulses_ptr = abs_pulses;
-    for( i = 0; i &lt; iter; i++ ) {
-        nRshifts[ i ] = 0;
-
-        while (1) {
-            /* 1+1 -&gt; 2 */
-            scale_down = combine_and_check(pulses_comb, abs_pulses_ptr, SKP_Silk_max_pulses_table[ 0 ], 8);
-
-            /* 2+2 -&gt; 4 */
-            scale_down += combine_and_check(pulses_comb, pulses_comb, SKP_Silk_max_pulses_table[ 1 ], 4);
-
-            /* 4+4 -&gt; 8 */
-            scale_down += combine_and_check(pulses_comb, pulses_comb, SKP_Silk_max_pulses_table[ 2 ], 2);
-
-            /* 8+8 -&gt; 16 */
-            sum_pulses[ i ] = pulses_comb[ 0 ] + pulses_comb[ 1 ];
-            if( sum_pulses[ i ] &gt; SKP_Silk_max_pulses_table[ 3 ] ) {
-                scale_down++;
-            }
-
-
-
-
-
-
-            if( scale_down ) {
-                /* We need to down scale the Quantization Signal */
-                nRshifts[ i ]++;
-                for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
-                    abs_pulses_ptr[ k ] = SKP_RSHIFT(abs_pulses_ptr[ k ], 1);
-                }
-            } else {
-                /* Jump out of while(1) loop and go to next shell coding frame */
-                break;
-            }
-        }
-        abs_pulses_ptr += SHELL_CODEC_FRAME_LENGTH;
-    }
-
-    /********************/
-    /* Rate level       */
-    /********************/
-    /* find rate level that leads to fewest bits for coding of pulses per block info */
-    minSumBits_Q6 = SKP_int32_MAX;
-    for( k = 0; k &lt; N_RATE_LEVELS - 1; k++ ) {
-        nBits_ptr = SKP_Silk_pulses_per_block_BITS_Q6[ k ];
-        sumBits_Q6 = SKP_Silk_rate_levels_BITS_Q6[sigtype][ k ];
-        for( i = 0; i &lt; iter; i++ ) {
-            if(nRshifts[ i ] &gt; 0) {
-                sumBits_Q6 += nBits_ptr[MAX_PULSES+1];
-            } else {
-                sumBits_Q6 += nBits_ptr[sum_pulses[ i ]];
-            }
-        }
-        if( sumBits_Q6 &lt; minSumBits_Q6 ) {
-            minSumBits_Q6 = sumBits_Q6;
-            RateLevelIndex = k;
-        }
-    }
-    SKP_Silk_range_encoder( psRC, RateLevelIndex, SKP_Silk_rate_levels_CDF[ sigtype ] );
-
-    /***************************************************/
-    /* Sum-Weighted-Pulses Encoding                    */
-    /***************************************************/
-    cdf_ptr = SKP_Silk_pulses_per_block_CDF[ RateLevelIndex ];
-    for( i = 0; i &lt; iter; i++ ){
-        if(nRshifts[ i ] == 0) {
-            SKP_Silk_range_encoder( psRC, sum_pulses[ i ], cdf_ptr );
-        } else {
-            SKP_Silk_range_encoder( psRC, MAX_PULSES+1, cdf_ptr );
-            for( k = 0; k &lt; nRshifts[ i ] - 1; k++ ) {
-                SKP_Silk_range_encoder( psRC, MAX_PULSES+1, SKP_Silk_pulses_per_block_CDF[N_RATE_LEVELS-1] );
-            }
-
-
-
-
-
-            SKP_Silk_range_encoder( psRC, sum_pulses[ i ], SKP_Silk_pulses_per_block_CDF[N_RATE_LEVELS-1] );
-        }
-    }
-
-    /***************************************************/
-    /* Shell Encoding                                  */
-    /***************************************************/
-    for( i = 0; i &lt; iter; i++ ) {
-        if( sum_pulses[ i ] &gt; 0 ) {
-            SKP_Silk_shell_encoder(psRC, &amp;abs_pulses[i * SHELL_CODEC_FRAME_LENGTH]);
-        }
-    }
-
-    /***************************************************/
-    /* LSB Encoding                                    */
-    /***************************************************/
-    for( i = 0; i &lt; iter; i++ ) {
-        if(nRshifts[ i ] &gt; 0) {
-            pulses_ptr = &amp;q[i * SHELL_CODEC_FRAME_LENGTH];
-            nLS = nRshifts[ i ] - 1;
-            for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
-                abs_q = SKP_abs(pulses_ptr[ k ]);
-                for( j = nLS; j &gt; 0; j-- ) {
-                    bit = SKP_RSHIFT(abs_q, j) &amp; 1;
-                    SKP_Silk_range_encoder(psRC, bit, SKP_Silk_lsb_CDF);
-                }
-                bit = abs_q &amp; 1;
-                SKP_Silk_range_encoder(psRC, bit, SKP_Silk_lsb_CDF);
-            }
-        }
-    }
-
-    /****************************************/
-    /* Encode signs                         */
-    /****************************************/
-    SKP_Silk_encode_signs( psRC, q, frame_length, sigtype, QuantOffsetType, RateLevelIndex);
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/*********************************************/
+/* Encode quantization indices of excitation */
+/*********************************************/
+
+SKP_INLINE SKP_int combine_and_check(       /* return ok */
+    SKP_int         *pulses_comb,           /* O */
+    const SKP_int   *pulses_in,             /* I */
+    SKP_int         max_pulses,             /* I    max value for sum of pulses */
+    SKP_int         len                     /* I    number of output values */
+) 
+{
+    SKP_int k, sum;
+
+    for( k = 0; k &lt; len; k++ ) {
+        sum = pulses_in[ 2 * k ] + pulses_in[ 2 * k + 1 ];
+        if( sum &gt; max_pulses ) {
+            return 1;
+        }
+        pulses_comb[ k ] = sum;
+    }
+
+    return 0;
+}
+
+/* Encode quantization indices of excitation */
+void SKP_Silk_encode_pulses(
+    SKP_Silk_range_coder_state      *psRC,          /* I/O  Range coder state               */
+    const SKP_int                   sigtype,        /* I    Sigtype                         */
+    const SKP_int                   QuantOffsetType,/* I    QuantOffsetType                 */
+    const SKP_int                   q[],            /* I    quantization indices            */
+    const SKP_int                   frame_length    /* I    Frame length                    */
+)
+{
+    SKP_int   i, k, j, iter, bit, nLS, scale_down, RateLevelIndex = 0;
+    SKP_int32 abs_q, minSumBits_Q6, sumBits_Q6;
+    SKP_int   abs_pulses[ MAX_FRAME_LENGTH ];
+    SKP_int   sum_pulses[ MAX_NB_SHELL_BLOCKS ];
+        SKP_int   nRshifts[   MAX_NB_SHELL_BLOCKS ]; 
+    SKP_int   pulses_comb[ 8 ];
+    SKP_int   *abs_pulses_ptr;
+    const SKP_int *pulses_ptr;
+    const SKP_uint16 *cdf_ptr;
+    const SKP_int16 *nBits_ptr;
+
+    SKP_memset( pulses_comb, 0, 8 * sizeof( SKP_int ) ); // Fixing Valgrind reported problem
+
+    /****************************/
+    /* Prepare for shell coding */
+    /****************************/
+    /* Calculate number of shell blocks */
+    iter = frame_length / SHELL_CODEC_FRAME_LENGTH;
+    
+    /* Take the absolute value of the pulses */
+    for( i = 0; i &lt; frame_length; i+=4 ) {
+        abs_pulses[i+0] = ( SKP_int )SKP_abs( q[ i + 0 ] );
+        abs_pulses[i+1] = ( SKP_int )SKP_abs( q[ i + 1 ] );
+        abs_pulses[i+2] = ( SKP_int )SKP_abs( q[ i + 2 ] );
+        abs_pulses[i+3] = ( SKP_int )SKP_abs( q[ i + 3 ] );
+    }
+
+    /* Calc sum pulses per shell code frame */
+    abs_pulses_ptr = abs_pulses;
+    for( i = 0; i &lt; iter; i++ ) {
+        nRshifts[ i ] = 0;
+
+        while( 1 ) {
+            /* 1+1 -&gt; 2 */
+            scale_down = combine_and_check( pulses_comb, abs_pulses_ptr, SKP_Silk_max_pulses_table[ 0 ], 8 );
+
+            /* 2+2 -&gt; 4 */
+            scale_down += combine_and_check( pulses_comb, pulses_comb, SKP_Silk_max_pulses_table[ 1 ], 4 );
+
+            /* 4+4 -&gt; 8 */
+            scale_down += combine_and_check( pulses_comb, pulses_comb, SKP_Silk_max_pulses_table[ 2 ], 2 );
+
+            /* 8+8 -&gt; 16 */
+            sum_pulses[ i ] = pulses_comb[ 0 ] + pulses_comb[ 1 ];
+            if( sum_pulses[ i ] &gt; SKP_Silk_max_pulses_table[ 3 ] ) {
+                scale_down++;
+            }
+
+            if( scale_down ) {
+                /* We need to down scale the quantization signal */
+                nRshifts[ i ]++;                
+                for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
+                    abs_pulses_ptr[ k ] = SKP_RSHIFT( abs_pulses_ptr[ k ], 1 );
+                }
+            } else {
+                /* Jump out of while(1) loop and go to next shell coding frame */
+                break;
+            }
+        }
+        abs_pulses_ptr += SHELL_CODEC_FRAME_LENGTH;
+    }
+
+    /**************/
+    /* Rate level */
+    /**************/
+    /* find rate level that leads to fewest bits for coding of pulses per block info */
+    minSumBits_Q6 = SKP_int32_MAX;
+    for( k = 0; k &lt; N_RATE_LEVELS - 1; k++ ) {
+        nBits_ptr  = SKP_Silk_pulses_per_block_BITS_Q6[ k ];
+        sumBits_Q6 = SKP_Silk_rate_levels_BITS_Q6[sigtype][ k ];
+        for( i = 0; i &lt; iter; i++ ) {
+            if( nRshifts[ i ] &gt; 0 ) {
+                sumBits_Q6 += nBits_ptr[ MAX_PULSES + 1 ];
+            } else {
+                sumBits_Q6 += nBits_ptr[ sum_pulses[ i ] ];
+            }
+        }
+        if( sumBits_Q6 &lt; minSumBits_Q6 ) {
+            minSumBits_Q6 = sumBits_Q6;
+            RateLevelIndex = k;
+        }
+    }
+    SKP_Silk_range_encoder( psRC, RateLevelIndex, SKP_Silk_rate_levels_CDF[ sigtype ] );
+
+    /***************************************************/
+    /* Sum-Weighted-Pulses Encoding                    */
+    /***************************************************/
+    cdf_ptr = SKP_Silk_pulses_per_block_CDF[ RateLevelIndex ];
+    for( i = 0; i &lt; iter; i++ ) {
+        if( nRshifts[ i ] == 0 ) {
+            SKP_Silk_range_encoder( psRC, sum_pulses[ i ], cdf_ptr );
+        } else {
+            SKP_Silk_range_encoder( psRC, MAX_PULSES + 1, cdf_ptr );
+            for( k = 0; k &lt; nRshifts[ i ] - 1; k++ ) {
+                SKP_Silk_range_encoder( psRC, MAX_PULSES + 1, SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS - 1 ] );
+            }
+            SKP_Silk_range_encoder( psRC, sum_pulses[ i ], SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS - 1 ] );
+        }
+    }
+
+    /******************/
+    /* Shell Encoding */
+    /******************/
+    for( i = 0; i &lt; iter; i++ ) {
+        if( sum_pulses[ i ] &gt; 0 ) {
+            SKP_Silk_shell_encoder( psRC, &amp;abs_pulses[ i * SHELL_CODEC_FRAME_LENGTH ] );
+        }
+    }
+
+    /****************/
+    /* LSB Encoding */
+    /****************/
+    for( i = 0; i &lt; iter; i++ ) {
+        if( nRshifts[ i ] &gt; 0 ) {
+            pulses_ptr = &amp;q[ i * SHELL_CODEC_FRAME_LENGTH ];
+            nLS = nRshifts[ i ] - 1;
+            for( k = 0; k &lt; SHELL_CODEC_FRAME_LENGTH; k++ ) {
+                abs_q = SKP_abs( pulses_ptr[ k ] );
+                for( j = nLS; j &gt; 0; j-- ) {
+                    bit = SKP_RSHIFT( abs_q, j ) &amp; 1;
+                    SKP_Silk_range_encoder( psRC, bit, SKP_Silk_lsb_CDF );
+                }
+                bit = abs_q &amp; 1;
+                SKP_Silk_range_encoder( psRC, bit, SKP_Silk_lsb_CDF );
+            }
+        }
+    }
+
+    /****************/
+    /* Encode signs */
+    /****************/
+    SKP_Silk_encode_signs( psRC, q, frame_length, sigtype, QuantOffsetType, RateLevelIndex );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_find_LPC_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_find_LPC_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_find_LPC_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_find_LPC_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,172 +1,147 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-
-
-
-
-
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Finds LPC vector from correlations, and converts to NLSF */
-void SKP_Silk_find_LPC_FIX(
-    SKP_int             NLSF_Q15[],             /* O    NLSFs                                                                       */
-    SKP_int             *interpIndex,           /* O    NLSF interpolation index, only used for NLSF interpolation                  */
-    const SKP_int       prev_NLSFq_Q15[],       /* I    previous NLSFs, only used for NLSF interpolation                            */
-    const SKP_int       useInterpolatedNLSFs,   /* I    Flag                                                                        */
-    const SKP_int       LPC_order,              /* I    LPC order                                                                   */
-    const SKP_int16     x[],                    /* I    Input signal                                                                */
-    const SKP_int       subfr_length            /* I    Input signal subframe length including preceeding samples                   */
-)
-{
-    SKP_int     k;
-    SKP_int32   a_Q16[ MAX_LPC_ORDER ];
-
-    SKP_int     isInterpLower, shift;
-    SKP_int16   S[ MAX_LPC_ORDER ];
-    SKP_int32   res_nrg0, res_nrg1;
-    SKP_int     rshift0, rshift1;
-
-    /* Used only for LSF interpolation */
-    SKP_int32   a_tmp_Q16[ MAX_LPC_ORDER ], res_nrg_interp, res_nrg, res_tmp_nrg, res_nrg_2nd;
-    SKP_int     res_nrg_interp_Q, res_nrg_Q, res_tmp_nrg_Q, res_nrg_2nd_Q;
-    SKP_int16   a_tmp_Q12[ MAX_LPC_ORDER ];
-
-
-
-
-
-    SKP_int     NLSF0_Q15[ MAX_LPC_ORDER ];
-    SKP_int16   LPC_res[ ( MAX_FRAME_LENGTH + NB_SUBFR * MAX_LPC_ORDER ) / 2 ];
-
-    /* Default: no interpolation */
-    *interpIndex = 4;
-
-    /* Burg AR analysis for the full frame */
-    SKP_Silk_burg_modified( &amp;res_nrg, &amp;res_nrg_Q, a_Q16, x, subfr_length, NB_SUBFR, FIND_LPC_COND_FAC_Q32, LPC_order );
-
-    if( useInterpolatedNLSFs == 1 ) {
-
-        /* Optimal solution for last 10 ms */
-        SKP_Silk_burg_modified( &amp;res_tmp_nrg, &amp;res_tmp_nrg_Q, a_tmp_Q16, x + ( NB_SUBFR &gt;&gt; 1 ) * subfr_length,
-            subfr_length, ( NB_SUBFR &gt;&gt; 1 ), FIND_LPC_COND_FAC_Q32, LPC_order );
-
-        /* subtract residual energy here, as that's easier than adding it to the    */
-        /* residual energy of the first 10 ms in each iteration of the search below */
-        shift = res_tmp_nrg_Q - res_nrg_Q;
-        if( shift &gt;= 0 ) {
-            if( shift &lt; 32 ) {
-                res_nrg = res_nrg - SKP_RSHIFT( res_tmp_nrg, shift );
-            }
-        } else {
-            SKP_assert( shift &gt; -32 );
-            res_nrg   = SKP_RSHIFT( res_nrg, -shift ) - res_tmp_nrg;
-            res_nrg_Q = res_tmp_nrg_Q;
-        }
-
-        /* Convert to NLSFs */
-        SKP_Silk_A2NLSF( NLSF_Q15, a_tmp_Q16, LPC_order );
-
-        /* Search over interpolation indices to find the one with lowest residual energy */
-        res_nrg_2nd = SKP_int32_MAX;
-        for( k = 3; k &gt;= 0; k-- ) {
-            /* Interpolate NLSFs for first half */
-            SKP_Silk_interpolate( NLSF0_Q15, prev_NLSFq_Q15, NLSF_Q15, k, LPC_order );
-
-            /* Convert to LPC for residual energy evaluation */
-            SKP_Silk_NLSF2A_stable( a_tmp_Q12, NLSF0_Q15, LPC_order );
-
-            /* Calculate residual energy with NLSF interpolation */
-            SKP_memset( S, 0, LPC_order * sizeof( SKP_int16 ) );
-            SKP_Silk_LPC_analysis_filter( x, a_tmp_Q12, S, LPC_res, 2 * subfr_length, LPC_order );
-
-            SKP_Silk_sum_sqr_shift( &amp;res_nrg0, &amp;rshift0, LPC_res + LPC_order,                subfr_length - LPC_order );
-            SKP_Silk_sum_sqr_shift( &amp;res_nrg1, &amp;rshift1, LPC_res + LPC_order + subfr_length, subfr_length - LPC_order );
-
-            /* Add subframe energies from first half frame */
-
-
-
-
-
-            shift = rshift0 - rshift1;
-            if( shift &gt;= 0 ) {
-                res_nrg1         = SKP_RSHIFT( res_nrg1, shift );
-                res_nrg_interp_Q = -rshift0;
-            } else {
-                res_nrg0         = SKP_RSHIFT( res_nrg0, -shift );
-                res_nrg_interp_Q = -rshift1;
-            }
-            res_nrg_interp = SKP_ADD32( res_nrg0, res_nrg1 );
-
-            /* Compare with first half energy without NLSF interpolation, or best interpolated value so far */
-            shift = res_nrg_interp_Q - res_nrg_Q;
-            if( shift &gt;= 0 ) {
-                if( SKP_RSHIFT( res_nrg_interp, shift ) &lt; res_nrg ) {
-                    isInterpLower = SKP_TRUE;
-                } else {
-                    isInterpLower = SKP_FALSE;
-                }
-            } else {
-                if( -shift &lt; 32 ) {
-                    if( res_nrg_interp &lt; SKP_RSHIFT( res_nrg, -shift ) ) {
-                        isInterpLower = SKP_TRUE;
-                    } else {
-                        isInterpLower = SKP_FALSE;
-                    }
-                } else {
-                    isInterpLower = SKP_FALSE;
-                }
-            }
-
-            /* Determine whether current interpolated NLSFs are best so far */
-            if( isInterpLower == SKP_TRUE ) {
-                /* Interpolation has lower residual energy */
-                res_nrg   = res_nrg_interp;
-                res_nrg_Q = res_nrg_interp_Q;
-                *interpIndex = k;
-            }
-            res_nrg_2nd   = res_nrg_interp;
-            res_nrg_2nd_Q = res_nrg_interp_Q;
-        }
-    }
-
-    if( *interpIndex == 4 ) {
-        /* NLSF interpolation is currently inactive, calculate NLSFs from full frame AR coefficients */
-        SKP_Silk_A2NLSF( NLSF_Q15, a_Q16, LPC_order );
-    }
-}
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Finds LPC vector from correlations, and converts to NLSF */
+void SKP_Silk_find_LPC_FIX(
+    SKP_int             NLSF_Q15[],             /* O    NLSFs                                                                       */
+    SKP_int             *interpIndex,           /* O    NLSF interpolation index, only used for NLSF interpolation                  */
+    const SKP_int       prev_NLSFq_Q15[],       /* I    previous NLSFs, only used for NLSF interpolation                            */
+    const SKP_int       useInterpolatedNLSFs,   /* I    Flag                                                                        */
+    const SKP_int       LPC_order,              /* I    LPC order                                                                   */
+    const SKP_int16     x[],                    /* I    Input signal                                                                */
+    const SKP_int       subfr_length            /* I    Input signal subframe length including preceeding samples                   */
+)
+{
+    SKP_int     k;
+    SKP_int32   a_Q16[ MAX_LPC_ORDER ];
+
+    SKP_int     isInterpLower, shift;
+    SKP_int16   S[ MAX_LPC_ORDER ];
+    SKP_int32   res_nrg0, res_nrg1;
+    SKP_int     rshift0, rshift1; 
+
+    /* Used only for LSF interpolation */
+    SKP_int32   a_tmp_Q16[ MAX_LPC_ORDER ], res_nrg_interp, res_nrg, res_tmp_nrg, res_nrg_2nd;
+    SKP_int     res_nrg_interp_Q, res_nrg_Q, res_tmp_nrg_Q, res_nrg_2nd_Q;
+    SKP_int16   a_tmp_Q12[ MAX_LPC_ORDER ];
+    SKP_int     NLSF0_Q15[ MAX_LPC_ORDER ];
+    SKP_int16   LPC_res[ ( MAX_FRAME_LENGTH + NB_SUBFR * MAX_LPC_ORDER ) / 2 ];
+
+    /* Default: no interpolation */
+    *interpIndex = 4;
+
+    /* Burg AR analysis for the full frame */
+    SKP_Silk_burg_modified( &amp;res_nrg, &amp;res_nrg_Q, a_Q16, x, subfr_length, NB_SUBFR, FIND_LPC_COND_FAC_Q32, LPC_order );
+
+    if( useInterpolatedNLSFs == 1 ) {
+
+        /* Optimal solution for last 10 ms */
+        SKP_Silk_burg_modified( &amp;res_tmp_nrg, &amp;res_tmp_nrg_Q, a_tmp_Q16, x + ( NB_SUBFR &gt;&gt; 1 ) * subfr_length, 
+            subfr_length, ( NB_SUBFR &gt;&gt; 1 ), FIND_LPC_COND_FAC_Q32, LPC_order );
+
+        /* subtract residual energy here, as that's easier than adding it to the    */
+        /* residual energy of the first 10 ms in each iteration of the search below */
+        shift = res_tmp_nrg_Q - res_nrg_Q;
+        if( shift &gt;= 0 ) {
+            if( shift &lt; 32 ) { 
+                res_nrg = res_nrg - SKP_RSHIFT( res_tmp_nrg, shift );
+            }
+        } else {
+            SKP_assert( shift &gt; -32 ); 
+            res_nrg   = SKP_RSHIFT( res_nrg, -shift ) - res_tmp_nrg;
+            res_nrg_Q = res_tmp_nrg_Q; 
+        }
+        
+        /* Convert to NLSFs */
+        SKP_Silk_A2NLSF( NLSF_Q15, a_tmp_Q16, LPC_order );
+
+        /* Search over interpolation indices to find the one with lowest residual energy */
+        res_nrg_2nd = SKP_int32_MAX;
+        for( k = 3; k &gt;= 0; k-- ) {
+            /* Interpolate NLSFs for first half */
+            SKP_Silk_interpolate( NLSF0_Q15, prev_NLSFq_Q15, NLSF_Q15, k, LPC_order );
+
+            /* Convert to LPC for residual energy evaluation */
+            SKP_Silk_NLSF2A_stable( a_tmp_Q12, NLSF0_Q15, LPC_order );
+
+            /* Calculate residual energy with NLSF interpolation */
+            SKP_memset( S, 0, LPC_order * sizeof( SKP_int16 ) );
+            SKP_Silk_LPC_analysis_filter( x, a_tmp_Q12, S, LPC_res, 2 * subfr_length, LPC_order );
+
+            SKP_Silk_sum_sqr_shift( &amp;res_nrg0, &amp;rshift0, LPC_res + LPC_order,                subfr_length - LPC_order );
+            SKP_Silk_sum_sqr_shift( &amp;res_nrg1, &amp;rshift1, LPC_res + LPC_order + subfr_length, subfr_length - LPC_order );
+
+            /* Add subframe energies from first half frame */
+            shift = rshift0 - rshift1;
+            if( shift &gt;= 0 ) {
+                res_nrg1         = SKP_RSHIFT( res_nrg1, shift );
+                res_nrg_interp_Q = -rshift0;
+            } else {
+                res_nrg0         = SKP_RSHIFT( res_nrg0, -shift );
+                res_nrg_interp_Q = -rshift1;
+            }
+            res_nrg_interp = SKP_ADD32( res_nrg0, res_nrg1 );
+
+            /* Compare with first half energy without NLSF interpolation, or best interpolated value so far */
+            shift = res_nrg_interp_Q - res_nrg_Q;
+            if( shift &gt;= 0 ) {
+                if( SKP_RSHIFT( res_nrg_interp, shift ) &lt; res_nrg ) {
+                    isInterpLower = SKP_TRUE;
+                } else {
+                    isInterpLower = SKP_FALSE;
+                }
+            } else {
+                if( -shift &lt; 32 ) { 
+                    if( res_nrg_interp &lt; SKP_RSHIFT( res_nrg, -shift ) ) {
+                        isInterpLower = SKP_TRUE;
+                    } else {
+                        isInterpLower = SKP_FALSE;
+                    }
+                } else {
+                    isInterpLower = SKP_FALSE;
+                }
+            }
+
+            /* Determine whether current interpolated NLSFs are best so far */
+            if( isInterpLower == SKP_TRUE ) {
+                /* Interpolation has lower residual energy */
+                res_nrg   = res_nrg_interp;
+                res_nrg_Q = res_nrg_interp_Q;
+                *interpIndex = k;
+            }
+            res_nrg_2nd   = res_nrg_interp;
+            res_nrg_2nd_Q = res_nrg_interp_Q;
+        }
+    }
+
+    if( *interpIndex == 4 ) {
+        /* NLSF interpolation is currently inactive, calculate NLSFs from full frame AR coefficients */
+        SKP_Silk_A2NLSF( NLSF_Q15, a_Q16, LPC_order );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_find_LTP_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_find_LTP_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_find_LTP_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_find_LTP_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,264 +1,234 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-void SKP_Silk_fit_LTP(
-    SKP_int32 LTP_coefs_Q16[ LTP_ORDER ],
-    SKP_int16 LTP_coefs_Q14[ LTP_ORDER ]
-);
-
-void SKP_Silk_find_LTP_FIX(
-    SKP_int16           b_Q14[ NB_SUBFR * LTP_ORDER ],              /* O    LTP coefs                                                   */
-    SKP_int32           WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ],   /* O    Weight for LTP quantization                                 */
-    SKP_int             *LTPredCodGain_Q7,                          /* O    LTP coding gain                                             */
-    const SKP_int16     r_first[],                                  /* I    residual signal after LPC signal + state for first 10 ms    */
-    const SKP_int16     r_last[],                                   /* I    residual signal after LPC signal + state for last 10 ms     */
-    const SKP_int       lag[ NB_SUBFR ],                            /* I    LTP lags                                                    */
-    const SKP_int32     Wght_Q15[ NB_SUBFR ],                       /* I    weights                                                     */
-    const SKP_int       subfr_length,                               /* I    subframe length                                             */
-
-
-
-
-
-    const SKP_int       mem_offset,                                 /* I    number of samples in LTP memory                             */
-    SKP_int             corr_rshifts[ NB_SUBFR ]                    /* O    right shifts applied to correlations                        */
-)
-{
-    SKP_int   i, k, lshift;
-    const SKP_int16 *r_ptr, *lag_ptr;
-    SKP_int16 *b_Q14_ptr;
-
-    SKP_int32 regu;
-    SKP_int32 *WLTP_ptr;
-    SKP_int32 b_Q16[ LTP_ORDER ], delta_b_Q14[ LTP_ORDER ], d_Q14[ NB_SUBFR ], nrg[ NB_SUBFR ], g_Q26;
-    SKP_int32 w[ NB_SUBFR ], WLTP_max, max_abs_d_Q14, max_w_bits;
-
-    SKP_int32 temp32, denom32;
-    SKP_int   extra_shifts;
-    SKP_int   rr_shifts, maxRshifts, maxRshifts_wxtra, LZs;
-    SKP_int32 LPC_res_nrg, LPC_LTP_res_nrg, div_Q16;
-    SKP_int32 Rr[ LTP_ORDER ], rr[ NB_SUBFR ];
-    SKP_int32 wd, m_Q12;
-
-    b_Q14_ptr = b_Q14;
-    WLTP_ptr  = WLTP;
-    r_ptr     = &amp;r_first[ mem_offset ];
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        if( k == ( NB_SUBFR &gt;&gt; 1 ) ) { /* shift residual for last 10 ms */
-            r_ptr = &amp;r_last[ mem_offset ];
-        }
-        lag_ptr = r_ptr - ( lag[ k ] + LTP_ORDER / 2 );
-
-        SKP_Silk_sum_sqr_shift( &amp;rr[ k ], &amp;rr_shifts, r_ptr, subfr_length ); /* rr[ k ] in Q( -rr_shifts ) */
-        /* Assure headroom */
-        LZs = SKP_Silk_CLZ32( rr[k] );
-        if( LZs &lt; LTP_CORRS_HEAD_ROOM ) {
-            rr[ k ] = SKP_RSHIFT_ROUND( rr[ k ], LTP_CORRS_HEAD_ROOM - LZs );
-            rr_shifts += (LTP_CORRS_HEAD_ROOM - LZs);
-        }
-        corr_rshifts[ k ] = rr_shifts;
-        SKP_Silk_corrMatrix_FIX( lag_ptr, subfr_length, LTP_ORDER, WLTP_ptr, &amp;corr_rshifts[ k ] );     /* WLTP_fix_ptr in Q( -corr_rshifts[ k ] ) */
-        /* The correlation vector always have lower max abs value than rr and/or RR so head room is assured */
-        SKP_Silk_corrVector_FIX( lag_ptr, r_ptr, subfr_length, LTP_ORDER, Rr, corr_rshifts[ k ] ); /* Rr_fix_ptr   in Q( -corr_rshifts[ k ] ) */
-        if( corr_rshifts[ k ] &gt; rr_shifts ) {
-            rr[ k ] = SKP_RSHIFT( rr[ k ], corr_rshifts[ k ] - rr_shifts ); /* rr[ k ] in Q( -corr_rshifts[ k ] ) */
-        }
-        SKP_assert( rr[ k ] &gt;= 0 );
-
-        regu = SKP_SMULWB( rr[ k ] + 1, LTP_DAMPING_Q16 );
-        SKP_Silk_regularize_correlations_FIX( WLTP_ptr, &amp;rr[k], regu, LTP_ORDER );
-
-
-
-
-
-
-        SKP_Silk_solve_LDL_FIX( WLTP_ptr, LTP_ORDER, Rr, b_Q16 ); /* WLTP_fix_ptr and Rr_fix_ptr both in Q(-corr_rshifts[k]) */
-
-        /* Limit and store in Q14 */
-        SKP_Silk_fit_LTP( b_Q16, b_Q14_ptr );
-
-        /* Calculate residual energy */
-        nrg[ k ] = SKP_Silk_residual_energy16_covar_FIX( b_Q14_ptr, WLTP_ptr, Rr, rr[ k ], LTP_ORDER, 14 ); /* nrg_fix in Q( -corr_rshifts[ k ] ) */
-
-        /* temp = Wght[ k ] / ( nrg[ k ] * Wght[ k ] + 0.01f * subfr_length ); */
-        extra_shifts = SKP_min_int( corr_rshifts[ k ], LTP_CORRS_HEAD_ROOM );
-        denom32 = SKP_LSHIFT_SAT32( SKP_SMULWB( nrg[ k ], Wght_Q15[ k ] ), 1 + extra_shifts ) +  /* Q( -corr_rshifts[ k ] + extra_shifts ) */
-            SKP_RSHIFT( SKP_SMULWB( subfr_length, 655 ), corr_rshifts[ k ] - extra_shifts );     /* Q( -corr_rshifts[ k ] + extra_shifts ) */
-        denom32 = SKP_max( denom32, 1 );
-        SKP_assert( ((SKP_int64)Wght_Q15[ k ] &lt;&lt; 16 ) &lt; SKP_int32_MAX ); /* Wght always &lt; 0.5 in Q0 */
-        temp32 = SKP_DIV32( SKP_LSHIFT( (SKP_int32)Wght_Q15[ k ], 16 ), denom32 );  /* Q( 15 + 16 + corr_rshifts[k] - extra_shifts ) */
-        temp32 = SKP_RSHIFT( temp32, 31 + corr_rshifts[ k ] - extra_shifts - 26 );  /* Q26 */
-
-        /* Limit temp such that the below scaling never wraps around */
-        WLTP_max = 0;
-        for( i = 0; i &lt; LTP_ORDER * LTP_ORDER; i++ ) {
-            WLTP_max = SKP_max( WLTP_ptr[ i ], WLTP_max );
-        }
-        lshift = SKP_Silk_CLZ32( WLTP_max ) - 1 - 3; /* keep 3 bits free for vq_nearest_neighbor_fix */
-        SKP_assert( 26 - 18 + lshift &gt;= 0 );
-        if( 26 - 18 + lshift &lt; 31 ) {
-            temp32 = SKP_min_32( temp32, SKP_LSHIFT( (SKP_int32)1, 26 - 18 + lshift ) );
-        }
-
-        SKP_Silk_scale_vector32_Q26_lshift_18( WLTP_ptr, temp32, LTP_ORDER * LTP_ORDER ); /* WLTP_ptr in Q( 18 - corr_rshifts[ k ] ) */
-
-        w[ k ] = matrix_ptr( WLTP_ptr, ( LTP_ORDER &gt;&gt; 1 ), ( LTP_ORDER &gt;&gt; 1 ), LTP_ORDER ); /* w in Q( 18 - corr_rshifts[ k ] ) */
-        SKP_assert( w[k] &gt;= 0 );
-
-        r_ptr     += subfr_length;
-        b_Q14_ptr += LTP_ORDER;
-        WLTP_ptr  += LTP_ORDER * LTP_ORDER;
-    }
-
-    maxRshifts = 0;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        maxRshifts = SKP_max_int( corr_rshifts[ k ], maxRshifts );
-    }
-
-    /* compute LTP coding gain */
-    if( LTPredCodGain_Q7 != NULL ) {
-        LPC_LTP_res_nrg = 0;
-        LPC_res_nrg     = 0;
-        SKP_assert( LTP_CORRS_HEAD_ROOM &gt;= 2 ); /* Check that no overflow will happen when adding */
-
-
-
-
-
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            LPC_res_nrg     = SKP_ADD32( LPC_res_nrg,     SKP_RSHIFT( SKP_ADD32( SKP_SMULWB(  rr[ k ], Wght_Q15[ k ] ), 1 ), 1 + ( maxRshifts - corr_rshifts[ k ] ) ) ); /*  Q( -maxRshifts ) */
-            LPC_LTP_res_nrg = SKP_ADD32( LPC_LTP_res_nrg, SKP_RSHIFT( SKP_ADD32( SKP_SMULWB( nrg[ k ], Wght_Q15[ k ] ), 1 ), 1 + ( maxRshifts - corr_rshifts[ k ] ) ) ); /*  Q( -maxRshifts ) */
-        }
-        LPC_LTP_res_nrg = SKP_max( LPC_LTP_res_nrg, 1 ); /* avoid division by zero */
-
-        div_Q16 = SKP_DIV32_varQ( LPC_res_nrg, LPC_LTP_res_nrg, 16 );
-        *LTPredCodGain_Q7 = (SKP_int)SKP_SMULBB( 3, SKP_Silk_lin2log( div_Q16 ) - ( 16 &lt;&lt; 7 ) );
-
-        SKP_assert( *LTPredCodGain_Q7 == (SKP_int)SKP_SAT16( SKP_MUL( 3, SKP_Silk_lin2log( div_Q16 ) - ( 16 &lt;&lt; 7 ) ) ) );
-    }
-
-    /* smoothing */
-    /* d = sum( B, 1 ); */
-    b_Q14_ptr = b_Q14;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        d_Q14[ k ] = 0;
-        for( i = 0; i &lt; LTP_ORDER; i++ ) {
-            d_Q14[ k ] += b_Q14_ptr[ i ];
-        }
-        b_Q14_ptr += LTP_ORDER;
-    }
-
-    /* m = ( w * d' ) / ( sum( w ) + 1e-3 ); */
-
-    /* Find maximum absolute value of d_Q14 and the bits used by w in Q0 */
-    max_abs_d_Q14 = 0;
-    max_w_bits    = 0;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        max_abs_d_Q14 = SKP_max_32( max_abs_d_Q14, SKP_abs( d_Q14[ k ] ) );
-        /* w[ k ] is in Q( 18 - corr_rshifts[ k ] ) */
-        /* Find bits needed in Q( 18 - maxRshifts ) */
-        max_w_bits = SKP_max_32( max_w_bits, 32 - SKP_Silk_CLZ32( w[ k ] ) + corr_rshifts[ k ] - maxRshifts );
-    }
-
-    /* max_abs_d_Q14 = (5 &lt;&lt; 15); worst case, i.e. LTP_ORDER * -SKP_int16_MIN */
-    SKP_assert( max_abs_d_Q14 &lt;= ( 5 &lt;&lt; 15 ) );
-
-    /* How many bits is needed for w*d' in Q( 18 - maxRshifts ) in the worst case, of all d_Q14's being equal to max_abs_d_Q14 */
-    extra_shifts = max_w_bits + 32 - SKP_Silk_CLZ32( max_abs_d_Q14 ) - 14;
-
-    /* Subtract what we got available; bits in output var plus maxRshifts */
-    extra_shifts -= ( 32 - 1 - 2 + maxRshifts ); /* Keep sign bit free as well as 2 bits for accumulation */
-    extra_shifts = SKP_max_int( extra_shifts, 0 );
-
-    maxRshifts_wxtra = maxRshifts + extra_shifts;
-
-    temp32 = SKP_RSHIFT( 262, maxRshifts + extra_shifts ) + 1; /* 1e-3f in Q( 18 - (maxRshifts + extra_shifts) ) */
-
-
-
-
-
-    wd = 0;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* w has at least 2 bits of headroom so no overflow should happen */
-        temp32 = SKP_ADD32( temp32,                     SKP_RSHIFT( w[ k ], maxRshifts_wxtra - corr_rshifts[ k ] ) );                    /* Q( 18 - maxRshifts_wxtra ) */
-        wd     = SKP_ADD32( wd, SKP_LSHIFT( SKP_SMULWW( SKP_RSHIFT( w[ k ], maxRshifts_wxtra - corr_rshifts[ k ] ), d_Q14[ k ] ), 2 ) ); /* Q( 18 - maxRshifts_wxtra ) */
-    }
-    m_Q12 = SKP_DIV32_varQ( wd, temp32, 12 );
-
-    b_Q14_ptr = b_Q14;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* w_fix[ k ] from Q( 18 - corr_rshifts[ k ] ) to Q( 16 ) */
-        if( 2 - corr_rshifts[k] &gt; 0 ) {
-            temp32 = SKP_RSHIFT( w[ k ], 2 - corr_rshifts[ k ] );
-        } else {
-            temp32 = SKP_LSHIFT_SAT32( w[ k ], corr_rshifts[ k ] - 2 );
-        }
-
-        g_Q26 = SKP_MUL(
-            SKP_DIV32(
-                LTP_SMOOTHING_Q26,
-                SKP_RSHIFT( LTP_SMOOTHING_Q26, 10 ) + temp32 ),                                       /* Q10 */
-            SKP_LSHIFT_SAT32( SKP_SUB_SAT32( (SKP_int32)m_Q12, SKP_RSHIFT( d_Q14[ k ], 2 ) ), 4 ) );  /* Q16 */
-
-        temp32 = 0;
-        for( i = 0; i &lt; LTP_ORDER; i++ ) {
-            delta_b_Q14[ i ] = SKP_max_16( b_Q14_ptr[ i ], 1638 );  /* 1638_Q14 = 0.1_Q0 */
-            temp32 += delta_b_Q14[ i ];                          /* Q14 */
-        }
-        temp32 = SKP_DIV32( g_Q26, temp32 ); /* Q14-&gt;Q12 */
-        for( i = 0; i &lt; LTP_ORDER; i++ ) {
-            b_Q14_ptr[ i ] = SKP_LIMIT( (SKP_int32)b_Q14_ptr[ i ] + SKP_SMULWB( SKP_LSHIFT_SAT32( temp32, 4 ), delta_b_Q14[ i ] ), -16000, 28000 );
-        }
-        b_Q14_ptr += LTP_ORDER;
-    }
-}
-
-void SKP_Silk_fit_LTP(
-    SKP_int32 LTP_coefs_Q16[ LTP_ORDER ],
-    SKP_int16 LTP_coefs_Q14[ LTP_ORDER ]
-)
-{
-    SKP_int i;
-
-    for( i = 0; i &lt; LTP_ORDER; i++ ) {
-        LTP_coefs_Q14[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( LTP_coefs_Q16[ i ], 2 ) );
-    }
-}
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+void SKP_Silk_fit_LTP(
+    SKP_int32 LTP_coefs_Q16[ LTP_ORDER ],
+    SKP_int16 LTP_coefs_Q14[ LTP_ORDER ]
+);
+
+void SKP_Silk_find_LTP_FIX(
+    SKP_int16           b_Q14[ NB_SUBFR * LTP_ORDER ],              /* O    LTP coefs                                                   */
+    SKP_int32           WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ],   /* O    Weight for LTP quantization                                 */
+    SKP_int             *LTPredCodGain_Q7,                          /* O    LTP coding gain                                             */
+    const SKP_int16     r_first[],                                  /* I    residual signal after LPC signal + state for first 10 ms    */
+    const SKP_int16     r_last[],                                   /* I    residual signal after LPC signal + state for last 10 ms     */
+    const SKP_int       lag[ NB_SUBFR ],                            /* I    LTP lags                                                    */
+    const SKP_int32     Wght_Q15[ NB_SUBFR ],                       /* I    weights                                                     */
+    const SKP_int       subfr_length,                               /* I    subframe length                                             */
+    const SKP_int       mem_offset,                                 /* I    number of samples in LTP memory                             */
+    SKP_int             corr_rshifts[ NB_SUBFR ]                    /* O    right shifts applied to correlations                        */
+)
+{
+    SKP_int   i, k, lshift;
+    const SKP_int16 *r_ptr, *lag_ptr;
+    SKP_int16 *b_Q14_ptr;
+
+    SKP_int32 regu;
+    SKP_int32 *WLTP_ptr;
+    SKP_int32 b_Q16[ LTP_ORDER ], delta_b_Q14[ LTP_ORDER ], d_Q14[ NB_SUBFR ], nrg[ NB_SUBFR ], g_Q26;
+    SKP_int32 w[ NB_SUBFR ], WLTP_max, max_abs_d_Q14, max_w_bits;
+
+    SKP_int32 temp32, denom32;
+    SKP_int   extra_shifts;
+    SKP_int   rr_shifts, maxRshifts, maxRshifts_wxtra, LZs;
+    SKP_int32 LPC_res_nrg, LPC_LTP_res_nrg, div_Q16;
+    SKP_int32 Rr[ LTP_ORDER ], rr[ NB_SUBFR ];
+    SKP_int32 wd, m_Q12;
+    
+    b_Q14_ptr = b_Q14;
+    WLTP_ptr  = WLTP;
+    r_ptr     = &amp;r_first[ mem_offset ];
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        if( k == ( NB_SUBFR &gt;&gt; 1 ) ) { /* shift residual for last 10 ms */
+            r_ptr = &amp;r_last[ mem_offset ];
+        }
+        lag_ptr = r_ptr - ( lag[ k ] + LTP_ORDER / 2 );
+
+        SKP_Silk_sum_sqr_shift( &amp;rr[ k ], &amp;rr_shifts, r_ptr, subfr_length ); /* rr[ k ] in Q( -rr_shifts ) */
+        /* Assure headroom */
+        LZs = SKP_Silk_CLZ32( rr[k] );
+        if( LZs &lt; LTP_CORRS_HEAD_ROOM ) {
+            rr[ k ] = SKP_RSHIFT_ROUND( rr[ k ], LTP_CORRS_HEAD_ROOM - LZs );
+            rr_shifts += (LTP_CORRS_HEAD_ROOM - LZs);
+        }
+        corr_rshifts[ k ] = rr_shifts;
+        SKP_Silk_corrMatrix_FIX( lag_ptr, subfr_length, LTP_ORDER, WLTP_ptr, &amp;corr_rshifts[ k ] );     /* WLTP_fix_ptr in Q( -corr_rshifts[ k ] ) */
+        /* The correlation vector always have lower max abs value than rr and/or RR so head room is assured */
+        SKP_Silk_corrVector_FIX( lag_ptr, r_ptr, subfr_length, LTP_ORDER, Rr, corr_rshifts[ k ] ); /* Rr_fix_ptr   in Q( -corr_rshifts[ k ] ) */
+        if( corr_rshifts[ k ] &gt; rr_shifts ) {
+            rr[ k ] = SKP_RSHIFT( rr[ k ], corr_rshifts[ k ] - rr_shifts ); /* rr[ k ] in Q( -corr_rshifts[ k ] ) */
+        }
+        SKP_assert( rr[ k ] &gt;= 0 );
+
+        regu = SKP_SMULWB( rr[ k ] + 1, LTP_DAMPING_Q16 );
+        SKP_Silk_regularize_correlations_FIX( WLTP_ptr, &amp;rr[k], regu, LTP_ORDER );
+
+        SKP_Silk_solve_LDL_FIX( WLTP_ptr, LTP_ORDER, Rr, b_Q16 ); /* WLTP_fix_ptr and Rr_fix_ptr both in Q(-corr_rshifts[k]) */
+
+        /* Limit and store in Q14 */
+        SKP_Silk_fit_LTP( b_Q16, b_Q14_ptr );
+
+        /* Calculate residual energy */
+        nrg[ k ] = SKP_Silk_residual_energy16_covar_FIX( b_Q14_ptr, WLTP_ptr, Rr, rr[ k ], LTP_ORDER, 14 ); /* nrg_fix in Q( -corr_rshifts[ k ] ) */
+
+        /* temp = Wght[ k ] / ( nrg[ k ] * Wght[ k ] + 0.01f * subfr_length ); */
+        extra_shifts = SKP_min_int( corr_rshifts[ k ], LTP_CORRS_HEAD_ROOM );
+        denom32 = SKP_LSHIFT_SAT32( SKP_SMULWB( nrg[ k ], Wght_Q15[ k ] ), 1 + extra_shifts ) +  /* Q( -corr_rshifts[ k ] + extra_shifts ) */
+            SKP_RSHIFT( SKP_SMULWB( subfr_length, 655 ), corr_rshifts[ k ] - extra_shifts );     /* Q( -corr_rshifts[ k ] + extra_shifts ) */
+        denom32 = SKP_max( denom32, 1 );
+        SKP_assert( ((SKP_int64)Wght_Q15[ k ] &lt;&lt; 16 ) &lt; SKP_int32_MAX ); /* Wght always &lt; 0.5 in Q0 */
+        temp32 = SKP_DIV32( SKP_LSHIFT( ( SKP_int32 )Wght_Q15[ k ], 16 ), denom32 );  /* Q( 15 + 16 + corr_rshifts[k] - extra_shifts ) */
+        temp32 = SKP_RSHIFT( temp32, 31 + corr_rshifts[ k ] - extra_shifts - 26 );  /* Q26 */
+        
+        /* Limit temp such that the below scaling never wraps around */
+        WLTP_max = 0;
+        for( i = 0; i &lt; LTP_ORDER * LTP_ORDER; i++ ) {
+            WLTP_max = SKP_max( WLTP_ptr[ i ], WLTP_max );
+        }
+        lshift = SKP_Silk_CLZ32( WLTP_max ) - 1 - 3; /* keep 3 bits free for vq_nearest_neighbor_fix */
+        SKP_assert( 26 - 18 + lshift &gt;= 0 );
+        if( 26 - 18 + lshift &lt; 31 ) {
+            temp32 = SKP_min_32( temp32, SKP_LSHIFT( ( SKP_int32 )1, 26 - 18 + lshift ) );
+        }
+
+        SKP_Silk_scale_vector32_Q26_lshift_18( WLTP_ptr, temp32, LTP_ORDER * LTP_ORDER ); /* WLTP_ptr in Q( 18 - corr_rshifts[ k ] ) */
+        
+        w[ k ] = matrix_ptr( WLTP_ptr, ( LTP_ORDER &gt;&gt; 1 ), ( LTP_ORDER &gt;&gt; 1 ), LTP_ORDER ); /* w in Q( 18 - corr_rshifts[ k ] ) */
+        SKP_assert( w[k] &gt;= 0 );
+
+        r_ptr     += subfr_length;
+        b_Q14_ptr += LTP_ORDER;
+        WLTP_ptr  += LTP_ORDER * LTP_ORDER;
+    }
+
+    maxRshifts = 0;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        maxRshifts = SKP_max_int( corr_rshifts[ k ], maxRshifts );
+    }
+
+    /* compute LTP coding gain */
+    if( LTPredCodGain_Q7 != NULL ) {
+        LPC_LTP_res_nrg = 0;
+        LPC_res_nrg     = 0;
+        SKP_assert( LTP_CORRS_HEAD_ROOM &gt;= 2 ); /* Check that no overflow will happen when adding */
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            LPC_res_nrg     = SKP_ADD32( LPC_res_nrg,     SKP_RSHIFT( SKP_ADD32( SKP_SMULWB(  rr[ k ], Wght_Q15[ k ] ), 1 ), 1 + ( maxRshifts - corr_rshifts[ k ] ) ) ); /*  Q( -maxRshifts ) */
+            LPC_LTP_res_nrg = SKP_ADD32( LPC_LTP_res_nrg, SKP_RSHIFT( SKP_ADD32( SKP_SMULWB( nrg[ k ], Wght_Q15[ k ] ), 1 ), 1 + ( maxRshifts - corr_rshifts[ k ] ) ) ); /*  Q( -maxRshifts ) */
+        }
+        LPC_LTP_res_nrg = SKP_max( LPC_LTP_res_nrg, 1 ); /* avoid division by zero */
+
+        div_Q16 = SKP_DIV32_varQ( LPC_res_nrg, LPC_LTP_res_nrg, 16 );
+        *LTPredCodGain_Q7 = ( SKP_int )SKP_SMULBB( 3, SKP_Silk_lin2log( div_Q16 ) - ( 16 &lt;&lt; 7 ) );
+
+        SKP_assert( *LTPredCodGain_Q7 == ( SKP_int )SKP_SAT16( SKP_MUL( 3, SKP_Silk_lin2log( div_Q16 ) - ( 16 &lt;&lt; 7 ) ) ) );
+    }
+
+    /* smoothing */
+    /* d = sum( B, 1 ); */
+    b_Q14_ptr = b_Q14;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        d_Q14[ k ] = 0;
+        for( i = 0; i &lt; LTP_ORDER; i++ ) {
+            d_Q14[ k ] += b_Q14_ptr[ i ];
+        }
+        b_Q14_ptr += LTP_ORDER;
+    }
+
+    /* m = ( w * d' ) / ( sum( w ) + 1e-3 ); */
+        
+    /* Find maximum absolute value of d_Q14 and the bits used by w in Q0 */
+    max_abs_d_Q14 = 0;
+    max_w_bits    = 0;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        max_abs_d_Q14 = SKP_max_32( max_abs_d_Q14, SKP_abs( d_Q14[ k ] ) );
+        /* w[ k ] is in Q( 18 - corr_rshifts[ k ] ) */
+        /* Find bits needed in Q( 18 - maxRshifts ) */
+        max_w_bits = SKP_max_32( max_w_bits, 32 - SKP_Silk_CLZ32( w[ k ] ) + corr_rshifts[ k ] - maxRshifts ); 
+    }
+
+    /* max_abs_d_Q14 = (5 &lt;&lt; 15); worst case, i.e. LTP_ORDER * -SKP_int16_MIN */
+    SKP_assert( max_abs_d_Q14 &lt;= ( 5 &lt;&lt; 15 ) );
+
+    /* How many bits is needed for w*d' in Q( 18 - maxRshifts ) in the worst case, of all d_Q14's being equal to max_abs_d_Q14 */
+    extra_shifts = max_w_bits + 32 - SKP_Silk_CLZ32( max_abs_d_Q14 ) - 14;
+    
+    /* Subtract what we got available; bits in output var plus maxRshifts */
+    extra_shifts -= ( 32 - 1 - 2 + maxRshifts ); /* Keep sign bit free as well as 2 bits for accumulation */
+    extra_shifts = SKP_max_int( extra_shifts, 0 );
+
+    maxRshifts_wxtra = maxRshifts + extra_shifts;
+    
+    temp32 = SKP_RSHIFT( 262, maxRshifts + extra_shifts ) + 1; /* 1e-3f in Q( 18 - (maxRshifts + extra_shifts) ) */
+    wd = 0;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* w has at least 2 bits of headroom so no overflow should happen */
+        temp32 = SKP_ADD32( temp32,                     SKP_RSHIFT( w[ k ], maxRshifts_wxtra - corr_rshifts[ k ] ) );                    /* Q( 18 - maxRshifts_wxtra ) */
+        wd     = SKP_ADD32( wd, SKP_LSHIFT( SKP_SMULWW( SKP_RSHIFT( w[ k ], maxRshifts_wxtra - corr_rshifts[ k ] ), d_Q14[ k ] ), 2 ) ); /* Q( 18 - maxRshifts_wxtra ) */
+    }
+    m_Q12 = SKP_DIV32_varQ( wd, temp32, 12 );
+
+    b_Q14_ptr = b_Q14;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* w_fix[ k ] from Q( 18 - corr_rshifts[ k ] ) to Q( 16 ) */
+        if( 2 - corr_rshifts[k] &gt; 0 ) {
+            temp32 = SKP_RSHIFT( w[ k ], 2 - corr_rshifts[ k ] );
+        } else {
+            temp32 = SKP_LSHIFT_SAT32( w[ k ], corr_rshifts[ k ] - 2 );
+        }
+
+        g_Q26 = SKP_MUL( 
+            SKP_DIV32( 
+                LTP_SMOOTHING_Q26, 
+                SKP_RSHIFT( LTP_SMOOTHING_Q26, 10 ) + temp32 ),                                       /* Q10 */ 
+            SKP_LSHIFT_SAT32( SKP_SUB_SAT32( ( SKP_int32 )m_Q12, SKP_RSHIFT( d_Q14[ k ], 2 ) ), 4 ) );  /* Q16 */
+
+        temp32 = 0;
+        for( i = 0; i &lt; LTP_ORDER; i++ ) {
+            delta_b_Q14[ i ] = SKP_max_16( b_Q14_ptr[ i ], 1638 );  /* 1638_Q14 = 0.1_Q0 */
+            temp32 += delta_b_Q14[ i ];                          /* Q14 */
+        }
+        temp32 = SKP_DIV32( g_Q26, temp32 ); /* Q14-&gt;Q12 */
+        for( i = 0; i &lt; LTP_ORDER; i++ ) {
+            b_Q14_ptr[ i ] = SKP_LIMIT( ( SKP_int32 )b_Q14_ptr[ i ] + SKP_SMULWB( SKP_LSHIFT_SAT32( temp32, 4 ), delta_b_Q14[ i ] ), -16000, 28000 );
+        }
+        b_Q14_ptr += LTP_ORDER;
+    }
+}
+
+void SKP_Silk_fit_LTP(
+    SKP_int32 LTP_coefs_Q16[ LTP_ORDER ],
+    SKP_int16 LTP_coefs_Q14[ LTP_ORDER ]
+)
+{
+    SKP_int i;
+
+    for( i = 0; i &lt; LTP_ORDER; i++ ) {
+        LTP_coefs_Q14[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( LTP_coefs_Q16[ i ], 2 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_find_pitch_lags_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,137 +1,122 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Find pitch lags */
-void SKP_Silk_find_pitch_lags_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
-    SKP_int16                       res[],          /* O    residual                                    */
-    const SKP_int16                 x[]             /* I    Speech signal                               */
-)
-{
-    SKP_Silk_predict_state_FIX *psPredSt = &amp;psEnc-&gt;sPred;
-    SKP_int   buf_len, i;
-    SKP_int32 scale;
-    SKP_int32 thrhld_Q15;
-    const SKP_int16 *x_buf, *x_buf_ptr;
-    SKP_int16 Wsig[      FIND_PITCH_LPC_WIN_MAX ], *Wsig_ptr;
-
-
-
-
-
-    SKP_int32 auto_corr[ FIND_PITCH_LPC_ORDER_MAX + 1 ];
-    SKP_int16 rc_Q15[    FIND_PITCH_LPC_ORDER_MAX ];
-    SKP_int32 A_Q24[     FIND_PITCH_LPC_ORDER_MAX ];
-    SKP_int32 FiltState[ FIND_PITCH_LPC_ORDER_MAX ];
-    SKP_int16 A_Q12[     FIND_PITCH_LPC_ORDER_MAX ];
-
-    /******************************************/
-    /* Setup buffer lengths etc based of Fs.  */
-    /******************************************/
-    buf_len = SKP_ADD_LSHIFT( psEnc-&gt;sCmn.la_pitch, psEnc-&gt;sCmn.frame_length, 1 );
-
-    /* Safty check */
-    SKP_assert( buf_len &gt;= psPredSt-&gt;pitch_LPC_win_length );
-
-    x_buf = x - psEnc-&gt;sCmn.frame_length;
-
-    /*************************************/
-    /* Estimate LPC AR coeficients */
-    /*************************************/
-
-    /* Calculate windowed signal */
-
-    /* First LA_LTP samples */
-    x_buf_ptr = x_buf + buf_len - psPredSt-&gt;pitch_LPC_win_length;
-    Wsig_ptr  = Wsig;
-    SKP_Silk_apply_sine_window( Wsig_ptr, x_buf_ptr, 1, psEnc-&gt;sCmn.la_pitch );
-
-    /* Middle un - windowed samples */
-    Wsig_ptr  += psEnc-&gt;sCmn.la_pitch;
-    x_buf_ptr += psEnc-&gt;sCmn.la_pitch;
-    SKP_memcpy( Wsig_ptr, x_buf_ptr, ( psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 ) ) * sizeof( SKP_int16 ) );
-
-    /* Last LA_LTP samples */
-    Wsig_ptr  += psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 );
-    x_buf_ptr += psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 );
-    SKP_Silk_apply_sine_window( Wsig_ptr, x_buf_ptr, 2, psEnc-&gt;sCmn.la_pitch );
-
-    /* Calculate autocorrelation sequence */
-    SKP_Silk_autocorr( auto_corr, &amp;scale, Wsig, psPredSt-&gt;pitch_LPC_win_length, psEnc-&gt;sCmn.pitchEstimationLPCOrder + 1 );
-
-    /* add white noise, as fraction of energy */
-    auto_corr[ 0 ] = SKP_SMLAWB( auto_corr[ 0 ], auto_corr[ 0 ], FIND_PITCH_WHITE_NOISE_FRACTION_Q16 );
-
-    /* calculate the reflection coefficients using schur */
-    SKP_Silk_schur( rc_Q15, auto_corr, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
-
-    /* convert reflection coefficients to prediction coefficients */
-    SKP_Silk_k2a( A_Q24, rc_Q15, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
-
-
-
-
-
-    /* Convert From 32 bit Q24 to 16 bit Q12 coefs */
-    for( i = 0; i &lt; psEnc-&gt;sCmn.pitchEstimationLPCOrder; i++ ) {
-        A_Q12[ i ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT( A_Q24[ i ], 12 ) );
-    }
-
-    /* Do BWE */
-    SKP_Silk_bwexpander( A_Q12, psEnc-&gt;sCmn.pitchEstimationLPCOrder, FIND_PITCH_BANDWITH_EXPANSION_Q16 );
-
-    /*****************************************/
-    /* LPC analysis filtering                */
-    /*****************************************/
-    SKP_memset( FiltState, 0, psEnc-&gt;sCmn.pitchEstimationLPCOrder * sizeof( SKP_int16 ) );
-    SKP_Silk_MA_Prediction( x_buf, A_Q12, FiltState, res, buf_len, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
-    SKP_memset( res, 0, psEnc-&gt;sCmn.pitchEstimationLPCOrder * sizeof( SKP_int16 ) );
-
-    /* Threshold for pitch estimator */
-    thrhld_Q15 = ( 1 &lt;&lt; 14 ); // 0.5f in Q15
-    thrhld_Q15 = SKP_SMLABB( thrhld_Q15, -131, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
-    thrhld_Q15 = SKP_SMLABB( thrhld_Q15,  -13, (SKP_int16)SKP_Silk_SQRT_APPROX( SKP_LSHIFT( (SKP_int32)psEnc-&gt;speech_activity_Q8, 8 ) ) );
-    thrhld_Q15 = SKP_SMLABB( thrhld_Q15, 4587, psEnc-&gt;sCmn.prev_sigtype );
-    thrhld_Q15 = SKP_MLA(    thrhld_Q15,  -31, SKP_RSHIFT( psEncCtrl-&gt;input_tilt_Q15, 8 ) );
-    thrhld_Q15 = SKP_SAT16(  thrhld_Q15 );
-
-    /*****************************************/
-    /* Call Pitch estimator */
-    /*****************************************/
-    psEncCtrl-&gt;sCmn.sigtype = SKP_Silk_pitch_analysis_core( res, psEncCtrl-&gt;sCmn.pitchL, &amp;psEncCtrl-&gt;sCmn.lagIndex,
-        &amp;psEncCtrl-&gt;sCmn.contourIndex, &amp;psEnc-&gt;LTPCorr_Q15, psEnc-&gt;sCmn.prevLag, psEnc-&gt;pitchEstimationThreshold_Q16,
-        (SKP_int16)thrhld_Q15, psEnc-&gt;sCmn.fs_kHz, psEnc-&gt;sCmn.pitchEstimationComplexity );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Find pitch lags */
+void SKP_Silk_find_pitch_lags_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
+    SKP_int16                       res[],          /* O    residual                                    */
+    const SKP_int16                 x[]             /* I    Speech signal                               */
+)
+{
+    SKP_Silk_predict_state_FIX *psPredSt = &amp;psEnc-&gt;sPred;
+    SKP_int   buf_len, i;
+    SKP_int32 scale;
+    SKP_int32 thrhld_Q15;
+    const SKP_int16 *x_buf, *x_buf_ptr;
+    SKP_int16 Wsig[      FIND_PITCH_LPC_WIN_MAX ], *Wsig_ptr;
+    SKP_int32 auto_corr[ FIND_PITCH_LPC_ORDER_MAX + 1 ];
+    SKP_int16 rc_Q15[    FIND_PITCH_LPC_ORDER_MAX ];
+    SKP_int32 A_Q24[     FIND_PITCH_LPC_ORDER_MAX ];
+    SKP_int32 FiltState[ FIND_PITCH_LPC_ORDER_MAX ];
+    SKP_int16 A_Q12[     FIND_PITCH_LPC_ORDER_MAX ];
+
+    /******************************************/
+    /* Setup buffer lengths etc based of Fs.  */
+    /******************************************/
+    buf_len = SKP_ADD_LSHIFT( psEnc-&gt;sCmn.la_pitch, psEnc-&gt;sCmn.frame_length, 1 );
+
+    /* Safty check */
+    SKP_assert( buf_len &gt;= psPredSt-&gt;pitch_LPC_win_length );
+
+    x_buf = x - psEnc-&gt;sCmn.frame_length;
+
+    /*************************************/
+    /* Estimate LPC AR coeficients */
+    /*************************************/
+    
+    /* Calculate windowed signal */
+    
+    /* First LA_LTP samples */
+    x_buf_ptr = x_buf + buf_len - psPredSt-&gt;pitch_LPC_win_length;
+    Wsig_ptr  = Wsig;
+    SKP_Silk_apply_sine_window( Wsig_ptr, x_buf_ptr, 1, psEnc-&gt;sCmn.la_pitch );
+
+    /* Middle un - windowed samples */
+    Wsig_ptr  += psEnc-&gt;sCmn.la_pitch;
+    x_buf_ptr += psEnc-&gt;sCmn.la_pitch;
+    SKP_memcpy( Wsig_ptr, x_buf_ptr, ( psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 ) ) * sizeof( SKP_int16 ) );
+
+    /* Last LA_LTP samples */
+    Wsig_ptr  += psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 );
+    x_buf_ptr += psPredSt-&gt;pitch_LPC_win_length - SKP_LSHIFT( psEnc-&gt;sCmn.la_pitch, 1 );
+    SKP_Silk_apply_sine_window( Wsig_ptr, x_buf_ptr, 2, psEnc-&gt;sCmn.la_pitch );
+
+    /* Calculate autocorrelation sequence */
+    SKP_Silk_autocorr( auto_corr, &amp;scale, Wsig, psPredSt-&gt;pitch_LPC_win_length, psEnc-&gt;sCmn.pitchEstimationLPCOrder + 1 ); 
+        
+    /* add white noise, as fraction of energy */
+    auto_corr[ 0 ] = SKP_SMLAWB( auto_corr[ 0 ], auto_corr[ 0 ], FIND_PITCH_WHITE_NOISE_FRACTION_Q16 );
+
+    /* calculate the reflection coefficients using schur */
+    SKP_Silk_schur( rc_Q15, auto_corr, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
+
+    /* convert reflection coefficients to prediction coefficients */
+    SKP_Silk_k2a( A_Q24, rc_Q15, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
+    
+    /* Convert From 32 bit Q24 to 16 bit Q12 coefs */
+    for( i = 0; i &lt; psEnc-&gt;sCmn.pitchEstimationLPCOrder; i++ ) {
+        A_Q12[ i ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT( A_Q24[ i ], 12 ) );
+    }
+
+    /* Do BWE */
+    SKP_Silk_bwexpander( A_Q12, psEnc-&gt;sCmn.pitchEstimationLPCOrder, FIND_PITCH_BANDWITH_EXPANSION_Q16 );
+    
+    /*****************************************/
+    /* LPC analysis filtering                */
+    /*****************************************/
+    SKP_memset( FiltState, 0, psEnc-&gt;sCmn.pitchEstimationLPCOrder * sizeof( SKP_int16 ) );
+    SKP_Silk_MA_Prediction( x_buf, A_Q12, FiltState, res, buf_len, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
+    SKP_memset( res, 0, psEnc-&gt;sCmn.pitchEstimationLPCOrder * sizeof( SKP_int16 ) );
+
+    /* Threshold for pitch estimator */
+    thrhld_Q15 = ( 1 &lt;&lt; 14 ); // 0.5f in Q15
+    thrhld_Q15 = SKP_SMLABB( thrhld_Q15, -131, psEnc-&gt;sCmn.pitchEstimationLPCOrder );
+    thrhld_Q15 = SKP_SMLABB( thrhld_Q15,  -13, ( SKP_int16 )SKP_Silk_SQRT_APPROX( SKP_LSHIFT( ( SKP_int32 )psEnc-&gt;speech_activity_Q8, 8 ) ) );
+    thrhld_Q15 = SKP_SMLABB( thrhld_Q15, 4587, psEnc-&gt;sCmn.prev_sigtype );
+    thrhld_Q15 = SKP_MLA(    thrhld_Q15,  -31, SKP_RSHIFT( psEncCtrl-&gt;input_tilt_Q15, 8 ) );
+    thrhld_Q15 = SKP_SAT16(  thrhld_Q15 );
+
+    /*****************************************/
+    /* Call Pitch estimator */
+    /*****************************************/
+    psEncCtrl-&gt;sCmn.sigtype = SKP_Silk_pitch_analysis_core( res, psEncCtrl-&gt;sCmn.pitchL, &amp;psEncCtrl-&gt;sCmn.lagIndex, 
+        &amp;psEncCtrl-&gt;sCmn.contourIndex, &amp;psEnc-&gt;LTPCorr_Q15, psEnc-&gt;sCmn.prevLag, psEnc-&gt;pitchEstimationThreshold_Q16, 
+        ( SKP_int16 )thrhld_Q15, psEnc-&gt;sCmn.fs_kHz, psEnc-&gt;sCmn.pitchEstimationComplexity );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_find_pred_coefs_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,168 +1,148 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-
-
-
-
-
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-
-#define VARQ        1 // EXPERIMENTAL
-#define Qx          0 // EXPERIMENTAL
-
-void SKP_Silk_find_pred_coefs_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
-    const SKP_int16                 res_pitch[]     /* I    Residual from pitch analysis                */
-)
-{
-    SKP_int         i;
-    SKP_int32       WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ];
-    SKP_int32       invGains_Q16[ NB_SUBFR ], local_gains_Qx[ NB_SUBFR ], Wght_Q15[ NB_SUBFR ];
-    SKP_int         NLSF_Q15[ MAX_LPC_ORDER ];
-    const SKP_int16 *x_ptr;
-    SKP_int16       *x_pre_ptr, LPC_in_pre[ NB_SUBFR * MAX_LPC_ORDER + MAX_FRAME_LENGTH ];
-
-    SKP_int32       tmp, min_gain_Q16;
-#if !VARQ
-    SKP_int         LZ;
-#endif
-    SKP_int         LTP_corrs_rshift[ NB_SUBFR ];
-
-
-    /* weighting for weighted least squares */
-    min_gain_Q16 = SKP_int32_MAX &gt;&gt; 6;
-    for( i = 0; i &lt; NB_SUBFR; i++ ) {
-        min_gain_Q16 = SKP_min( min_gain_Q16, psEncCtrl-&gt;Gains_Q16[ i ] );
-    }
-#if !VARQ
-
-
-
-
-
-    LZ = SKP_Silk_CLZ32( min_gain_Q16 ) - 1;
-    LZ = SKP_LIMIT( LZ, 0, 16 );
-    min_gain_Q16 = SKP_RSHIFT( min_gain_Q16, 2 ); /* Ensure that maximum invGains_Q16 is within range of a 16 bit int */
-#endif
-    for( i = 0; i &lt; NB_SUBFR; i++ ) {
-        /* Divide to Q16 */
-        SKP_assert( psEncCtrl-&gt;Gains_Q16[ i ] &gt; 0 );
-#if VARQ
-        /* Invert and normalize gains, and ensure that maximum invGains_Q16 is within range of a 16 bit int */
-        invGains_Q16[ i ] = SKP_DIV32_varQ( min_gain_Q16, psEncCtrl-&gt;Gains_Q16[ i ], 16 - 2 );
-#else
-        invGains_Q16[ i ] = SKP_DIV32( SKP_LSHIFT( min_gain_Q16, LZ ), SKP_RSHIFT( psEncCtrl-&gt;Gains_Q16[ i ], 16 - LZ ) );
-#endif
-
-        /* Ensure Wght_Q15 a minimum value 1 */
-        invGains_Q16[ i ] = SKP_max( invGains_Q16[ i ], 363 );
-
-        /* Square the inverted gains */
-        SKP_assert( invGains_Q16[ i ] == SKP_SAT16( invGains_Q16[ i ] ) );
-        tmp = SKP_SMULWB( invGains_Q16[ i ], invGains_Q16[ i ] );
-        Wght_Q15[ i ] = SKP_RSHIFT( tmp, 1 );
-
-        /* Invert the inverted and normalized gains */
-        local_gains_Qx[ i ] = SKP_DIV32( ( 1 &lt;&lt; ( 16 + Qx ) ), invGains_Q16[ i ] );
-    }
-
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /**********/
-        /* VOICED */
-        /**********/
-        SKP_assert( psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder &gt;= psEncCtrl-&gt;sCmn.pitchL[ 0 ] + LTP_ORDER / 2 );
-
-        /* LTP analysis */
-        SKP_Silk_find_LTP_FIX( psEncCtrl-&gt;LTPCoef_Q14, WLTP, &amp;psEncCtrl-&gt;LTPredCodGain_Q7, res_pitch,
-            res_pitch + SKP_RSHIFT( psEnc-&gt;sCmn.frame_length, 1 ), psEncCtrl-&gt;sCmn.pitchL, Wght_Q15,
-            psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.frame_length, LTP_corrs_rshift );
-
-
-        /* Quantize LTP gain parameters */
-        SKP_Silk_quant_LTP_gains_FIX( psEncCtrl-&gt;LTPCoef_Q14, psEncCtrl-&gt;sCmn.LTPIndex, &amp;psEncCtrl-&gt;sCmn.PERIndex,
-            WLTP, psEnc-&gt;mu_LTP_Q8, psEnc-&gt;sCmn.LTPQuantLowComplexity );
-
-        /* Control LTP scaling */
-        SKP_Silk_LTP_scale_ctrl_FIX( psEnc, psEncCtrl );
-
-        /* Create LTP residual */
-        SKP_Silk_LTP_analysis_filter_FIX( LPC_in_pre, psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder,
-            psEncCtrl-&gt;LTPCoef_Q14, psEncCtrl-&gt;sCmn.pitchL, invGains_Q16, 16, psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.predictLPCOrder );
-
-
-
-
-
-    } else {
-        /************/
-        /* UNVOICED */
-        /************/
-        /* Create signal with prepended subframes, scaled by inverse gains */
-        x_ptr     = psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder;
-        x_pre_ptr = LPC_in_pre;
-        for( i = 0; i &lt; NB_SUBFR; i++ ) {
-            SKP_Silk_scale_copy_vector16( x_pre_ptr, x_ptr, invGains_Q16[ i ],
-                psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder );
-            x_pre_ptr += psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder;
-            x_ptr     += psEnc-&gt;sCmn.subfr_length;
-        }
-
-        SKP_memset( psEncCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
-        psEncCtrl-&gt;LTPredCodGain_Q7 = 0;
-    }
-
-    /* LPC_in_pre contains the LTP-filtered input for voiced, and the unfiltered input for unvoiced */
-    TIC(FIND_LPC)
-    SKP_Silk_find_LPC_FIX( NLSF_Q15, &amp;psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sPred.prev_NLSFq_Q15,
-        psEnc-&gt;sCmn.useInterpolatedNLSFs * ( 1 - psEnc-&gt;sCmn.first_frame_after_reset ), psEnc-&gt;sCmn.predictLPCOrder,
-        LPC_in_pre, psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder );
-    TOC(FIND_LPC)
-
-
-    /* Quantize LSFs */
-    TIC(PROCESS_LSFS)
-        SKP_Silk_process_NLSFs_FIX( psEnc, psEncCtrl, NLSF_Q15 );
-    TOC(PROCESS_LSFS)
-
-    /* Calculate residual energy using quantized LPC coefficients */
-    SKP_Silk_residual_energy_FIX( psEncCtrl-&gt;ResNrg, psEncCtrl-&gt;ResNrgQ, LPC_in_pre, psEncCtrl-&gt;PredCoef_Q12, local_gains_Qx, Qx,
-        psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.predictLPCOrder );
-
-    /* Copy to prediction struct for use in next frame for fluctuation reduction */
-    SKP_memcpy( psEnc-&gt;sPred.prev_NLSFq_Q15, NLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder * sizeof( SKP_int ) );
-
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+
+#define VARQ        1 // EXPERIMENTAL
+#define Qx          0 // EXPERIMENTAL
+
+void SKP_Silk_find_pred_coefs_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
+    const SKP_int16                 res_pitch[]     /* I    Residual from pitch analysis                */
+)
+{
+    SKP_int         i;
+    SKP_int32       WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ];
+    SKP_int32       invGains_Q16[ NB_SUBFR ], local_gains_Qx[ NB_SUBFR ], Wght_Q15[ NB_SUBFR ];
+    SKP_int         NLSF_Q15[ MAX_LPC_ORDER ];
+    const SKP_int16 *x_ptr;
+    SKP_int16       *x_pre_ptr, LPC_in_pre[ NB_SUBFR * MAX_LPC_ORDER + MAX_FRAME_LENGTH ];
+
+    SKP_int32       tmp, min_gain_Q16;
+#if !VARQ
+    SKP_int         LZ;
+#endif
+    SKP_int         LTP_corrs_rshift[ NB_SUBFR ];
+
+
+    /* weighting for weighted least squares */
+    min_gain_Q16 = SKP_int32_MAX &gt;&gt; 6;
+    for( i = 0; i &lt; NB_SUBFR; i++ ) {
+        min_gain_Q16 = SKP_min( min_gain_Q16, psEncCtrl-&gt;Gains_Q16[ i ] );
+    }
+#if !VARQ
+    LZ = SKP_Silk_CLZ32( min_gain_Q16 ) - 1;
+    LZ = SKP_LIMIT( LZ, 0, 16 );
+    min_gain_Q16 = SKP_RSHIFT( min_gain_Q16, 2 ); /* Ensure that maximum invGains_Q16 is within range of a 16 bit int */
+#endif
+    for( i = 0; i &lt; NB_SUBFR; i++ ) {
+        /* Divide to Q16 */
+        SKP_assert( psEncCtrl-&gt;Gains_Q16[ i ] &gt; 0 );
+#if VARQ
+        /* Invert and normalize gains, and ensure that maximum invGains_Q16 is within range of a 16 bit int */
+        invGains_Q16[ i ] = SKP_DIV32_varQ( min_gain_Q16, psEncCtrl-&gt;Gains_Q16[ i ], 16 - 2 );
+#else
+        invGains_Q16[ i ] = SKP_DIV32( SKP_LSHIFT( min_gain_Q16, LZ ), SKP_RSHIFT( psEncCtrl-&gt;Gains_Q16[ i ], 16 - LZ ) );
+#endif
+
+        /* Ensure Wght_Q15 a minimum value 1 */
+        invGains_Q16[ i ] = SKP_max( invGains_Q16[ i ], 363 ); 
+        
+        /* Square the inverted gains */
+        SKP_assert( invGains_Q16[ i ] == SKP_SAT16( invGains_Q16[ i ] ) );
+        tmp = SKP_SMULWB( invGains_Q16[ i ], invGains_Q16[ i ] );
+        Wght_Q15[ i ] = SKP_RSHIFT( tmp, 1 );
+
+        /* Invert the inverted and normalized gains */
+        local_gains_Qx[ i ] = SKP_DIV32( ( 1 &lt;&lt; ( 16 + Qx ) ), invGains_Q16[ i ] );
+    }
+
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /**********/
+        /* VOICED */
+        /**********/
+        SKP_assert( psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder &gt;= psEncCtrl-&gt;sCmn.pitchL[ 0 ] + LTP_ORDER / 2 );
+
+        /* LTP analysis */
+        SKP_Silk_find_LTP_FIX( psEncCtrl-&gt;LTPCoef_Q14, WLTP, &amp;psEncCtrl-&gt;LTPredCodGain_Q7, res_pitch, 
+            res_pitch + SKP_RSHIFT( psEnc-&gt;sCmn.frame_length, 1 ), psEncCtrl-&gt;sCmn.pitchL, Wght_Q15, 
+            psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.frame_length, LTP_corrs_rshift );
+
+
+        /* Quantize LTP gain parameters */
+        SKP_Silk_quant_LTP_gains_FIX( psEncCtrl-&gt;LTPCoef_Q14, psEncCtrl-&gt;sCmn.LTPIndex, &amp;psEncCtrl-&gt;sCmn.PERIndex, 
+            WLTP, psEnc-&gt;mu_LTP_Q8, psEnc-&gt;sCmn.LTPQuantLowComplexity );
+
+        /* Control LTP scaling */
+        SKP_Silk_LTP_scale_ctrl_FIX( psEnc, psEncCtrl );
+
+        /* Create LTP residual */
+        SKP_Silk_LTP_analysis_filter_FIX( LPC_in_pre, psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder, 
+            psEncCtrl-&gt;LTPCoef_Q14, psEncCtrl-&gt;sCmn.pitchL, invGains_Q16, 16, psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.predictLPCOrder );
+
+    } else {
+        /************/
+        /* UNVOICED */
+        /************/
+        /* Create signal with prepended subframes, scaled by inverse gains */
+        x_ptr     = psEnc-&gt;x_buf + psEnc-&gt;sCmn.frame_length - psEnc-&gt;sCmn.predictLPCOrder;
+        x_pre_ptr = LPC_in_pre;
+        for( i = 0; i &lt; NB_SUBFR; i++ ) {
+            SKP_Silk_scale_copy_vector16( x_pre_ptr, x_ptr, invGains_Q16[ i ], 
+                psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder );
+            x_pre_ptr += psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder;
+            x_ptr     += psEnc-&gt;sCmn.subfr_length;
+        }
+
+        SKP_memset( psEncCtrl-&gt;LTPCoef_Q14, 0, NB_SUBFR * LTP_ORDER * sizeof( SKP_int16 ) );
+        psEncCtrl-&gt;LTPredCodGain_Q7 = 0;
+    }
+
+    /* LPC_in_pre contains the LTP-filtered input for voiced, and the unfiltered input for unvoiced */
+    TIC(FIND_LPC)
+    SKP_Silk_find_LPC_FIX( NLSF_Q15, &amp;psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sPred.prev_NLSFq_Q15, 
+        psEnc-&gt;sCmn.useInterpolatedNLSFs * ( 1 - psEnc-&gt;sCmn.first_frame_after_reset ), psEnc-&gt;sCmn.predictLPCOrder, 
+        LPC_in_pre, psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.predictLPCOrder );
+    TOC(FIND_LPC)
+
+
+    /* Quantize LSFs */
+    TIC(PROCESS_LSFS)
+        SKP_Silk_process_NLSFs_FIX( psEnc, psEncCtrl, NLSF_Q15 );
+    TOC(PROCESS_LSFS)
+
+    /* Calculate residual energy using quantized LPC coefficients */
+    SKP_Silk_residual_energy_FIX( psEncCtrl-&gt;ResNrg, psEncCtrl-&gt;ResNrgQ, LPC_in_pre, psEncCtrl-&gt;PredCoef_Q12, local_gains_Qx, Qx,
+        psEnc-&gt;sCmn.subfr_length, psEnc-&gt;sCmn.predictLPCOrder );
+
+    /* Copy to prediction struct for use in next frame for fluctuation reduction */
+    SKP_memcpy( psEnc-&gt;sPred.prev_NLSFq_Q15, NLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder * sizeof( SKP_int ) );
+
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_gain_quantc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_gain_quant.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_gain_quant.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_gain_quant.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,110 +1,94 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-#define OFFSET          ( ( MIN_QGAIN_DB * 128 ) / 6 + 16 * 128 )
-#define SCALE_Q16       ( ( 65536 * ( N_LEVELS_QGAIN - 1 ) ) / ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) )
-#define INV_SCALE_Q16   ( ( 65536 * ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) ) / ( N_LEVELS_QGAIN - 1 ) )
-
-/* Gain scalar quantization with hysteresis, uniform on log scale */
-void SKP_Silk_gains_quant(
-    SKP_int                         ind[ NB_SUBFR ],        /* O    gain indices                            */
-    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* I/O  gains (quantized out)                   */
-    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */
-    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */
-)
-{
-    SKP_int k;
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* Add half of previous quantization error, convert to log scale, scale, floor() */
-        ind[ k ] = SKP_SMULWB( SCALE_Q16, SKP_Silk_lin2log( gain_Q16[ k ] ) - OFFSET );
-
-        /* Round towards previous quantized gain (hysteresis) */
-        if( ind[ k ] &lt; *prev_ind ) {
-
-
-
-
-
-            ind[ k ]++;
-        }
-
-        /* Compute delta indices and limit */
-        if( k == 0 &amp;&amp; conditional == 0 ) {
-            /* Full index */
-            ind[ k ] = SKP_LIMIT( ind[ k ], 0, N_LEVELS_QGAIN - 1 );
-            ind[ k ] = SKP_max_int( ind[ k ], *prev_ind + MIN_DELTA_GAIN_QUANT );
-            *prev_ind = ind[ k ];
-        } else {
-            /* Delta index */
-            ind[ k ] = SKP_LIMIT( ind[ k ] - *prev_ind, MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );
-            /* Accumulate deltas */
-            *prev_ind += ind[ k ];
-            /* Shift to make non-negative */
-            ind[ k ] -= MIN_DELTA_GAIN_QUANT;
-        }
-
-        /* Convert to linear scale and scale */
-        gain_Q16[ k ] = SKP_Silk_log2lin( SKP_min_32( SKP_SMULWB( INV_SCALE_Q16, *prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */
-    }
-}
-
-/* Gains scalar dequantization, uniform on log scale */
-void SKP_Silk_gains_dequant(
-    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* O    quantized gains                         */
-    const SKP_int                   ind[ NB_SUBFR ],        /* I    gain indices                            */
-    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */
-    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */
-)
-{
-    SKP_int   k;
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        if( k == 0 &amp;&amp; conditional == 0 ) {
-            *prev_ind = ind[ k ];
-        } else {
-            /* Delta index */
-            *prev_ind += ind[ k ] + MIN_DELTA_GAIN_QUANT;
-        }
-
-        /* Convert to linear scale and scale */
-        gain_Q16[ k ] = SKP_Silk_log2lin( SKP_min_32( SKP_SMULWB( INV_SCALE_Q16, *prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+#define OFFSET          ( ( MIN_QGAIN_DB * 128 ) / 6 + 16 * 128 )
+#define SCALE_Q16       ( ( 65536 * ( N_LEVELS_QGAIN - 1 ) ) / ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) )
+#define INV_SCALE_Q16   ( ( 65536 * ( ( ( MAX_QGAIN_DB - MIN_QGAIN_DB ) * 128 ) / 6 ) ) / ( N_LEVELS_QGAIN - 1 ) )
+
+/* Gain scalar quantization with hysteresis, uniform on log scale */
+void SKP_Silk_gains_quant(
+    SKP_int                         ind[ NB_SUBFR ],        /* O    gain indices                            */
+    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* I/O  gains (quantized out)                   */
+    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */
+    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */
+)
+{
+    SKP_int k;
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* Add half of previous quantization error, convert to log scale, scale, floor() */
+        ind[ k ] = SKP_SMULWB( SCALE_Q16, SKP_Silk_lin2log( gain_Q16[ k ] ) - OFFSET );
+
+        /* Round towards previous quantized gain (hysteresis) */
+        if( ind[ k ] &lt; *prev_ind ) {
+            ind[ k ]++;
+        }
+
+        /* Compute delta indices and limit */
+        if( k == 0 &amp;&amp; conditional == 0 ) {
+            /* Full index */
+            ind[ k ] = SKP_LIMIT( ind[ k ], 0, N_LEVELS_QGAIN - 1 );
+            ind[ k ] = SKP_max_int( ind[ k ], *prev_ind + MIN_DELTA_GAIN_QUANT );
+            *prev_ind = ind[ k ];
+        } else {
+            /* Delta index */
+            ind[ k ] = SKP_LIMIT( ind[ k ] - *prev_ind, MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );
+            /* Accumulate deltas */
+            *prev_ind += ind[ k ];
+            /* Shift to make non-negative */
+            ind[ k ] -= MIN_DELTA_GAIN_QUANT;
+        }
+
+        /* Convert to linear scale and scale */
+        gain_Q16[ k ] = SKP_Silk_log2lin( SKP_min_32( SKP_SMULWB( INV_SCALE_Q16, *prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */
+    }
+}
+
+/* Gains scalar dequantization, uniform on log scale */
+void SKP_Silk_gains_dequant(
+    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* O    quantized gains                         */
+    const SKP_int                   ind[ NB_SUBFR ],        /* I    gain indices                            */
+    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */
+    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */
+)
+{
+    SKP_int   k;
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        if( k == 0 &amp;&amp; conditional == 0 ) {
+            *prev_ind = ind[ k ];
+        } else {
+            /* Delta index */
+            *prev_ind += ind[ k ] + MIN_DELTA_GAIN_QUANT;
+        }
+
+        /* Convert to linear scale and scale */
+        gain_Q16[ k ] = SKP_Silk_log2lin( SKP_min_32( SKP_SMULWB( INV_SCALE_Q16, *prev_ind ) + OFFSET, 3967 ) ); /* 3967 = 31 in Q7 */
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_init_encoder_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_init_encoder_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_init_encoder_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_init_encoder_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,75 +1,64 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-
-
-
-
-
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/*********************************/
-/* Initialize Silk Encoder state */
-/*********************************/
-SKP_int SKP_Silk_init_encoder_FIX(
-    SKP_Silk_encoder_state_FIX  *psEnc          /* I/O  Pointer to Silk encoder state               */
-)
-{
-    SKP_int ret = 0;
-    /* Clear the entire encoder state */
-    SKP_memset( psEnc, 0, sizeof( SKP_Silk_encoder_state_FIX ) );
-
-    /* Initialize to 24 kHz sampling, 20 ms packets, 25 kbps, 0% packet loss, and init non-zero values */
-    ret = SKP_Silk_control_encoder_FIX( psEnc, 24, 20, 25, 0, 0, 0, 10, 1 );
-
-#if HIGH_PASS_INPUT
-    psEnc-&gt;variable_HP_smth1_Q15 = 200844; /* = SKP_Silk_log2(70)_Q0; */
-    psEnc-&gt;variable_HP_smth2_Q15 = 200844; /* = SKP_Silk_log2(70)_Q0; */
-#endif
-
-    /* Used to deactivate e.g. LSF interpolation and fluctuation reduction */
-    psEnc-&gt;sCmn.first_frame_after_reset = 1;
-    psEnc-&gt;sCmn.fs_kHz_changed          = 0;
-    psEnc-&gt;sCmn.LBRR_enabled            = 0;
-
-    /* Initialize Silk VAD */
-    ret += SKP_Silk_VAD_Init( &amp;psEnc-&gt;sCmn.sVAD );
-
-    /* Initialize NSQ */
-    psEnc-&gt;sNSQ.prev_inv_gain_Q16      = 65536; /* 1.0 in Q16 */
-    psEnc-&gt;sNSQ_LBRR.prev_inv_gain_Q16 = 65536; /* 1.0 in Q16 */
-
-    psEnc-&gt;sCmn.bitstream_v     = USE_BIT_STREAM_V;
-
-    return( ret );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/*********************************/
+/* Initialize Silk Encoder state */
+/*********************************/
+SKP_int SKP_Silk_init_encoder_FIX(
+    SKP_Silk_encoder_state_FIX  *psEnc          /* I/O  Pointer to Silk encoder state               */
+)
+{
+    SKP_int ret = 0;
+    /* Clear the entire encoder state */
+    SKP_memset( psEnc, 0, sizeof( SKP_Silk_encoder_state_FIX ) );
+
+    /* Initialize to 24 kHz sampling, 20 ms packets, 25 kbps, 0% packet loss, and init non-zero values */
+    ret = SKP_Silk_control_encoder_FIX( psEnc, 24, 20, 25, 0, 0, 0, 10, 1 );
+
+#if HIGH_PASS_INPUT
+    psEnc-&gt;variable_HP_smth1_Q15 = 200844; /* = SKP_Silk_log2(70)_Q0; */
+    psEnc-&gt;variable_HP_smth2_Q15 = 200844; /* = SKP_Silk_log2(70)_Q0; */
+#endif
+
+    /* Used to deactivate e.g. LSF interpolation and fluctuation reduction */
+    psEnc-&gt;sCmn.first_frame_after_reset = 1;
+    psEnc-&gt;sCmn.fs_kHz_changed          = 0;
+    psEnc-&gt;sCmn.LBRR_enabled            = 0;
+
+    /* Initialize Silk VAD */
+    ret += SKP_Silk_VAD_Init( &amp;psEnc-&gt;sCmn.sVAD );
+
+    /* Initialize NSQ */
+    psEnc-&gt;sNSQ.prev_inv_gain_Q16      = 65536; /* 1.0 in Q16 */
+    psEnc-&gt;sNSQ_LBRR.prev_inv_gain_Q16 = 65536; /* 1.0 in Q16 */
+
+    psEnc-&gt;sCmn.bitstream_v     = USE_BIT_STREAM_V;
+
+    return( ret );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_inner_prod_alignedc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_inner_prod_aligned.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_inner_prod_aligned.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_inner_prod_aligned.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,116 +1,96 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                                *
- * SKP_Silk_inner_prod_aligned.c                                                *
- *                                                                                *
- *                                                                                *
- * Copyright 2008 (c), Skype Limited                                              *
- * Date: 080601                                                                   *
- *                                                                                */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* sum= for(i=0;i&lt;len;i++)inVec1[i]*inVec2[i];      ---        inner product    */
-/* Note for ARM asm:                                                            */
-/*        * inVec1 and inVec2 should be at least 2 byte aligned.    (Or defined as short/int16) */
-/*        * len should be positive 16bit integer.                               */
-/*        * only when len&gt;6, memory access can be reduced by half.              */
-
-SKP_int32 SKP_Silk_inner_prod_aligned(
-    const SKP_int16* const inVec1,  /*    I input vector 1    */
-    const SKP_int16* const inVec2,  /*    I input vector 2    */
-    const SKP_int             len   /*    I vector lengths    */
-)
-{
-    SKP_int   i;
-
-
-
-
-
-    SKP_int32 sum = 0;
-    for( i = 0; i &lt; len; i++ ) {
-        sum = SKP_SMLABB( sum, inVec1[ i ], inVec2[ i ] );
-    }
-    return sum;
-}
-
-SKP_int64 SKP_Silk_inner_prod_aligned_64(
-    const SKP_int32 *inVec1,        /*    I input vector 1    */
-    const SKP_int32 *inVec2,        /*    I input vector 2    */
-    const SKP_int   len             /*    I vector lengths    */
-)
-{
-    SKP_int   i;
-    SKP_int64 sum = 0;
-    for( i = 0; i &lt; len; i++ ) {
-        sum = SKP_SMLAL( sum, inVec1[ i ], inVec2[ i ] );
-    }
-    return sum;
-}
-SKP_int64 SKP_Silk_inner_prod16_aligned_64(
-    const SKP_int16 *inVec1,        /*    I input vector 1    */
-    const SKP_int16 *inVec2,        /*    I input vector 2    */
-    const SKP_int   len             /*    I vector lengths    */
-)
-{
-    SKP_int   i;
-    SKP_int64 sum = 0;
-    for( i = 0; i &lt; len; i++ ) {
-        sum = SKP_SMLALBB( sum, inVec1[ i ], inVec2[ i ] );
-    }
-    return sum;
-}
-
-SKP_int32 SKP_Silk_inner_prod16_aligned_sat(
-    const SKP_int16* const inVec1,  /*    I input vector 1  */
-    const SKP_int16* const inVec2,  /*    I input vector 2  */
-    const SKP_int    len            /*    I vector lengths  */
-)
-{
-    SKP_int   i;
-    SKP_int32 sum = 0;
-    for( i = 0; i &lt; len; i++ ) {
-        sum = SKP_ADD_SAT32( sum, SKP_SMULBB( inVec1[ i ], inVec2[ i ] ) );
-    }
-    return sum;
-}
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                                *
+ * SKP_Silk_inner_prod_aligned.c                                                *
+ *                                                                                *
+ *                                                                                *
+ * Copyright 2008 (c), Skype Limited                                              *
+ * Date: 080601                                                                   *
+ *                                                                                */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* sum= for(i=0;i&lt;len;i++)inVec1[i]*inVec2[i];      ---        inner product    */
+/* Note for ARM asm:                                                            */
+/*        * inVec1 and inVec2 should be at least 2 byte aligned.    (Or defined as short/int16) */
+/*        * len should be positive 16bit integer.                               */
+/*        * only when len&gt;6, memory access can be reduced by half.              */
+
+SKP_int32 SKP_Silk_inner_prod_aligned(
+    const SKP_int16* const inVec1,  /*    I input vector 1    */
+    const SKP_int16* const inVec2,  /*    I input vector 2    */
+    const SKP_int             len   /*    I vector lengths    */
+)
+{
+    SKP_int   i; 
+    SKP_int32 sum = 0;
+    for( i = 0; i &lt; len; i++ ) {
+        sum = SKP_SMLABB( sum, inVec1[ i ], inVec2[ i ] );
+    }
+    return sum;
+}
+
+SKP_int64 SKP_Silk_inner_prod_aligned_64(
+    const SKP_int32 *inVec1,        /*    I input vector 1    */ 
+    const SKP_int32 *inVec2,        /*    I input vector 2    */
+    const SKP_int   len             /*    I vector lengths    */
+)
+{
+    SKP_int   i; 
+    SKP_int64 sum = 0;
+    for( i = 0; i &lt; len; i++ ) {
+        sum = SKP_SMLAL( sum, inVec1[ i ], inVec2[ i ] );
+    }
+    return sum;
+}
+SKP_int64 SKP_Silk_inner_prod16_aligned_64(
+    const SKP_int16 *inVec1,        /*    I input vector 1    */ 
+    const SKP_int16 *inVec2,        /*    I input vector 2    */
+    const SKP_int   len             /*    I vector lengths    */
+)
+{
+    SKP_int   i; 
+    SKP_int64 sum = 0;
+    for( i = 0; i &lt; len; i++ ) {
+        sum = SKP_SMLALBB( sum, inVec1[ i ], inVec2[ i ] );
+    }
+    return sum;
+}
+
+SKP_int32 SKP_Silk_inner_prod16_aligned_sat(
+    const SKP_int16* const inVec1,  /*    I input vector 1  */ 
+    const SKP_int16* const inVec2,  /*    I input vector 2  */
+    const SKP_int    len            /*    I vector lengths  */ 
+)
+{
+    SKP_int   i; 
+    SKP_int32 sum = 0;
+    for( i = 0; i &lt; len; i++ ) {
+        sum = SKP_ADD_SAT32( sum, SKP_SMULBB( inVec1[ i ], inVec2[ i ] ) );
+    }
+    return sum;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_interpolatec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_interpolate.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_interpolate.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_interpolate.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,58 +1,47 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Interpolate two vectors */
-void SKP_Silk_interpolate(
-    SKP_int                         xi[ MAX_LPC_ORDER ],    /* O    interpolated vector                     */
-    const SKP_int                   x0[ MAX_LPC_ORDER ],    /* I    first vector                            */
-    const SKP_int                   x1[ MAX_LPC_ORDER ],    /* I    second vector                           */
-    const SKP_int                   ifact_Q2,               /* I    interp. factor, weight on 2nd vector    */
-    const SKP_int                   d                       /* I    number of parameters                    */
-)
-{
-    SKP_int i;
-
-    SKP_assert( ifact_Q2 &gt;= 0 );
-    SKP_assert( ifact_Q2 &lt;= ( 1 &lt;&lt; 2 ) );
-
-
-
-
-
-
-    for( i = 0; i &lt; d; i++ ) {
-        xi[ i ] = (SKP_int)( (SKP_int32)x0[ i ] + SKP_RSHIFT( SKP_MUL( (SKP_int32)x1[ i ] - (SKP_int32)x0[ i ], ifact_Q2 ), 2 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Interpolate two vectors */
+void SKP_Silk_interpolate(
+    SKP_int                         xi[ MAX_LPC_ORDER ],    /* O    interpolated vector                     */
+    const SKP_int                   x0[ MAX_LPC_ORDER ],    /* I    first vector                            */
+    const SKP_int                   x1[ MAX_LPC_ORDER ],    /* I    second vector                           */
+    const SKP_int                   ifact_Q2,               /* I    interp. factor, weight on 2nd vector    */
+    const SKP_int                   d                       /* I    number of parameters                    */
+)
+{
+    SKP_int i;
+
+    SKP_assert( ifact_Q2 &gt;= 0 );
+    SKP_assert( ifact_Q2 &lt;= ( 1 &lt;&lt; 2 ) );
+
+    for( i = 0; i &lt; d; i++ ) {
+        xi[ i ] = ( SKP_int )( ( SKP_int32 )x0[ i ] + SKP_RSHIFT( SKP_MUL( ( SKP_int32 )x1[ i ] - ( SKP_int32 )x0[ i ], ifact_Q2 ), 2 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_k2ac"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_k2a.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_k2a.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_k2a.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,68 +1,58 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_k2a.c                                                     *
- *                                                                      *
- * Step up function, converts reflection coefficients to prediction     *
- * coefficients                                                         *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 080103                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-
-
-
-
-/* Step up function, converts reflection coefficients to prediction coefficients */
-void SKP_Silk_k2a(
-    SKP_int32            *A_Q24,                 /* O:    Prediction coefficients [order] Q24         */
-    const SKP_int16      *rc_Q15,                /* I:    Reflection coefficients [order] Q15         */
-    const SKP_int32      order                   /* I:    Prediction order                            */
-)
-{
-    SKP_int   k, n;
-    SKP_int32 Atmp[ SigProc_MAX_ORDER_LPC ];
-
-    for( k = 0; k &lt; order; k++ ) {
-        for( n = 0; n &lt; k; n++ ) {
-            Atmp[ n ] = A_Q24[ n ];
-        }
-        for( n = 0; n &lt; k; n++ ) {
-            A_Q24[ n ] = SKP_SMLAWB( A_Q24[ n ], SKP_LSHIFT( Atmp[ k - n - 1 ], 1 ), rc_Q15[ k ] );
-        }
-        A_Q24[ k ] = -SKP_LSHIFT( (SKP_int32)rc_Q15[ k ], 9 );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_k2a.c                                                     *
+ *                                                                      *
+ * Step up function, converts reflection coefficients to prediction     *
+ * coefficients                                                         *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 080103                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Step up function, converts reflection coefficients to prediction coefficients */
+void SKP_Silk_k2a(
+    SKP_int32            *A_Q24,                 /* O:    Prediction coefficients [order] Q24         */
+    const SKP_int16      *rc_Q15,                /* I:    Reflection coefficients [order] Q15         */
+    const SKP_int32      order                   /* I:    Prediction order                            */
+)
+{
+    SKP_int   k, n;
+    SKP_int32 Atmp[ SigProc_MAX_ORDER_LPC ];
+
+    for( k = 0; k &lt; order; k++ ) {
+        for( n = 0; n &lt; k; n++ ) {
+            Atmp[ n ] = A_Q24[ n ];
+        }
+        for( n = 0; n &lt; k; n++ ) {
+            A_Q24[ n ] = SKP_SMLAWB( A_Q24[ n ], SKP_LSHIFT( Atmp[ k - n - 1 ], 1 ), rc_Q15[ k ] );
+        }
+        A_Q24[ k ] = -SKP_LSHIFT( (SKP_int32)rc_Q15[ k ], 9 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_k2a_Q16c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_k2a_Q16.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_k2a_Q16.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_k2a_Q16.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,83 +1,58 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-
-
-
-
-
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_k2a.c                                                     *
- *                                                                      *
- * Step up function, converts reflection coefficients to prediction     *
- * coefficients                                                         *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 080103                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Step up function, converts reflection coefficients to prediction coefficients */
-void SKP_Silk_k2a_Q16(
-    SKP_int32            *A_Q24,                 /* O:    Prediction coefficients [order] Q24         */
-    const SKP_int32      *rc_Q16,                /* I:    Reflection coefficients [order] Q16         */
-    const SKP_int32      order                   /* I:    Prediction order                            */
-)
-{
-    SKP_int   k, n;
-    SKP_int32 Atmp[ SigProc_MAX_ORDER_LPC ];
-
-    for( k = 0; k &lt; order; k++ ) {
-        for( n = 0; n &lt; k; n++ ) {
-            Atmp[ n ] = A_Q24[ n ];
-        }
-        for( n = 0; n &lt; k; n++ ) {
-            A_Q24[ n ] = SKP_SMLAWW( A_Q24[ n ], Atmp[ k - n - 1 ], rc_Q16[ k ] );
-        }
-        A_Q24[ k ] = -SKP_LSHIFT( rc_Q16[ k ], 8 );
-    }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_k2a.c                                                     *
+ *                                                                      *
+ * Step up function, converts reflection coefficients to prediction     *
+ * coefficients                                                         *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 080103                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Step up function, converts reflection coefficients to prediction coefficients */
+void SKP_Silk_k2a_Q16(
+    SKP_int32            *A_Q24,                 /* O:    Prediction coefficients [order] Q24         */
+    const SKP_int32      *rc_Q16,                /* I:    Reflection coefficients [order] Q16         */
+    const SKP_int32      order                   /* I:    Prediction order                            */
+)
+{
+    SKP_int   k, n;
+    SKP_int32 Atmp[ SigProc_MAX_ORDER_LPC ];
+
+    for( k = 0; k &lt; order; k++ ) {
+        for( n = 0; n &lt; k; n++ ) {
+            Atmp[ n ] = A_Q24[ n ];
+        }
+        for( n = 0; n &lt; k; n++ ) {
+            A_Q24[ n ] = SKP_SMLAWW( A_Q24[ n ], Atmp[ k - n - 1 ], rc_Q16[ k ] );
+        }
+        A_Q24[ k ] = -SKP_LSHIFT( rc_Q16[ k ], 8 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_lin2logc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_lin2log.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_lin2log.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_lin2log.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,63 +1,49 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_lin2log.c                                                 *
- *                                                                      *
- * Convert input to a log scale                                         *
- * Approximation of 128 * log2()                                        *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-/* Approximation of 128 * log2() (very close inverse of approx 2^() below) */
-/* Convert input to a log scale    */
-SKP_int32 SKP_Silk_lin2log( const SKP_int32 inLin )    /* I:    Input in linear scale */
-{
-    SKP_int32 lz, frac_Q7;
-
-    SKP_Silk_CLZ_FRAC( inLin, &amp;lz, &amp;frac_Q7 );
-
-    /* Piece-wise parabolic approximation */
-
-
-
-
-
-    return( SKP_LSHIFT( 31 - lz, 7 ) + SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), 179 ) );
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_lin2log.c                                                 *
+ *                                                                      *
+ * Convert input to a log scale                                         *
+ * Approximation of 128 * log2()                                        *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+/* Approximation of 128 * log2() (very close inverse of approx 2^() below) */
+/* Convert input to a log scale    */ 
+SKP_int32 SKP_Silk_lin2log( const SKP_int32 inLin )    /* I:    Input in linear scale */
+{
+    SKP_int32 lz, frac_Q7;
+
+    SKP_Silk_CLZ_FRAC( inLin, &amp;lz, &amp;frac_Q7 );
+
+    /* Piece-wise parabolic approximation */
+    return( SKP_LSHIFT( 31 - lz, 7 ) + SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), 179 ) );
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_log2linc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_log2lin.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_log2lin.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_log2lin.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,69 +1,58 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_log2lin.c                                                 *
- *                                                                      *
- * Convert input to a linear scale                                      *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Approximation of 2^() (very close inverse of SKP_Silk_lin2log()) */
-
-
-
-
-
-/* Convert input to a linear scale    */
-SKP_int32 SKP_Silk_log2lin( const SKP_int32 inLog_Q7 )    /* I:    Input on log scale */
-{
-    SKP_int32 out, frac_Q7;
-
-    if( inLog_Q7 &lt; 0 ) {
-        return 0;
-    }
-
-    out = SKP_LSHIFT( 1, SKP_RSHIFT( inLog_Q7, 7 ) );
-    frac_Q7 = inLog_Q7 &amp; 0x7F;
-    if( inLog_Q7 &lt; 2048 ) {
-        /* Piece-wise parabolic approximation */
-        out = SKP_ADD_RSHIFT( out, SKP_MUL( out, SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), -174 ) ), 7 );
-    } else {
-        /* Piece-wise parabolic approximation */
-        out = SKP_MLA( out, SKP_RSHIFT( out, 7 ), SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), -174 ) );
-    }
-    return out;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_log2lin.c                                                 *
+ *                                                                      *
+ * Convert input to a linear scale                                      *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Approximation of 2^() (very close inverse of SKP_Silk_lin2log()) */
+/* Convert input to a linear scale    */ 
+SKP_int32 SKP_Silk_log2lin( const SKP_int32 inLog_Q7 )    /* I:    Input on log scale */ 
+{
+    SKP_int32 out, frac_Q7;
+
+    if( inLog_Q7 &lt; 0 ) {
+        return 0;
+    }
+
+    out = SKP_LSHIFT( 1, SKP_RSHIFT( inLog_Q7, 7 ) );
+    frac_Q7 = inLog_Q7 &amp; 0x7F;
+    if( inLog_Q7 &lt; 2048 ) {
+        /* Piece-wise parabolic approximation */
+        out = SKP_ADD_RSHIFT( out, SKP_MUL( out, SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), -174 ) ), 7 );
+    } else {
+        /* Piece-wise parabolic approximation */
+        out = SKP_MLA( out, SKP_RSHIFT( out, 7 ), SKP_SMLAWB( frac_Q7, SKP_MUL( frac_Q7, 128 - frac_Q7 ), -174 ) );
+    }
+    return out;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_lowpass_intc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_int.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_int.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_int.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,72 +1,61 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-
-
-
-
-
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_lowpass_int.c                                             *
- *                                                                      *
- * First order low-pass filter, with input as SKP_int32, running at     *
- * 48 kHz                                                               *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* First order low-pass filter, with input as SKP_int32, running at 48 kHz        */
-void SKP_Silk_lowpass_int(
-    const SKP_int32      *in,            /* I:    Q25 48 kHz signal; length = len */
-    SKP_int32            *S,             /* I/O: Q25 state; length = 1            */
-    SKP_int32            *out,           /* O:    Q25 48 kHz signal; length = len */
-    const SKP_int32      len             /* I:    Number of samples               */
-)
-{
-    SKP_int        k;
-    SKP_int32    in_tmp, out_tmp, state;
-
-    state = S[ 0 ];
-    for( k = len; k &gt; 0; k-- ) {
-        in_tmp  = *in++;
-        in_tmp -= SKP_RSHIFT( in_tmp, 2 );              /* multiply by 0.75 */
-        out_tmp = state + in_tmp;                       /* zero at nyquist  */
-        state   = in_tmp - SKP_RSHIFT( out_tmp, 1 );    /* pole             */
-        *out++  = out_tmp;
-    }
-    S[ 0 ] = state;
-}
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_lowpass_int.c                                             *
+ *                                                                      *
+ * First order low-pass filter, with input as SKP_int32, running at     *
+ * 48 kHz                                                               *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* First order low-pass filter, with input as SKP_int32, running at 48 kHz        */
+void SKP_Silk_lowpass_int(
+    const SKP_int32      *in,            /* I:    Q25 48 kHz signal; length = len */
+    SKP_int32            *S,             /* I/O: Q25 state; length = 1            */
+    SKP_int32            *out,           /* O:    Q25 48 kHz signal; length = len */
+    const SKP_int32      len             /* I:    Number of samples               */
+)
+{
+    SKP_int        k;
+    SKP_int32    in_tmp, out_tmp, state;
+    
+    state = S[ 0 ];
+    for( k = len; k &gt; 0; k-- ) {    
+        in_tmp  = *in++;
+        in_tmp -= SKP_RSHIFT( in_tmp, 2 );              /* multiply by 0.75 */
+        out_tmp = state + in_tmp;                       /* zero at nyquist  */
+        state   = in_tmp - SKP_RSHIFT( out_tmp, 1 );    /* pole             */
+        *out++  = out_tmp;
+    }
+    S[ 0 ] = state;
+}
+
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_lowpass_shortc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_short.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_short.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_lowpass_short.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,76 +1,61 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_lowpass_short.c                                           *
- *                                                                      *
- * First order low-pass filter, with input as SKP_int16, running at     *
- * 48 kHz                                                               *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-
-/* First order low-pass filter, with input as SKP_int16, running at 48 kHz   */
-void SKP_Silk_lowpass_short(
-    const SKP_int16          *in,        /* I:   Q15 48 kHz signal; [len]    */
-    SKP_int32                *S,         /* I/O: Q25 state; length = 1       */
-    SKP_int32                *out,       /* O:   Q25 48 kHz signal; [len]    */
-    const SKP_int32          len         /* O:   Signal length               */
-)
-{
-    SKP_int        k;
-    SKP_int32    in_tmp, out_tmp, state;
-
-
-
-
-
-    state = S[ 0 ];
-    for( k = 0; k &lt; len; k++ ) {
-        in_tmp   = SKP_MUL( 768, (SKP_int32)in[k] );    /* multiply by 0.75, going from Q15 to Q25 */
-        out_tmp  = state + in_tmp;                      /* zero at nyquist                         */
-        state    = in_tmp - SKP_RSHIFT( out_tmp, 1 );   /* pole                                    */
-        out[ k ] = out_tmp;
-    }
-    S[ 0 ] = state;
-}
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_lowpass_short.c                                           *
+ *                                                                      *
+ * First order low-pass filter, with input as SKP_int16, running at     *
+ * 48 kHz                                                               *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+
+/* First order low-pass filter, with input as SKP_int16, running at 48 kHz   */
+void SKP_Silk_lowpass_short(
+    const SKP_int16          *in,        /* I:   Q15 48 kHz signal; [len]    */
+    SKP_int32                *S,         /* I/O: Q25 state; length = 1       */
+    SKP_int32                *out,       /* O:   Q25 48 kHz signal; [len]    */
+    const SKP_int32          len         /* O:   Signal length               */
+)
+{
+    SKP_int        k;
+    SKP_int32    in_tmp, out_tmp, state;
+    
+    state = S[ 0 ];
+    for( k = 0; k &lt; len; k++ ) {    
+        in_tmp   = SKP_MUL( 768, (SKP_int32)in[k] );    /* multiply by 0.75, going from Q15 to Q25 */
+        out_tmp  = state + in_tmp;                      /* zero at nyquist                         */
+        state    = in_tmp - SKP_RSHIFT( out_tmp, 1 );   /* pole                                    */
+        out[ k ] = out_tmp;
+    }
+    S[ 0 ] = state;
+}
+
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_macrosh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_macros.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_macros.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_macros.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,143 +1,122 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-
-
-
-
-
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef _SKP_SILK_API_C_H_
-#define _SKP_SILK_API_C_H_
-
-// This is an inline header file for general platform.
-
-// (a32 * (SKP_int32)((SKP_int16)(b32))) &gt;&gt; 16 output have to be 32bit int
-#define SKP_SMULWB(a32, b32)                    ((((a32) &gt;&gt; 16) * (SKP_int32)((SKP_int16)(b32))) + ((((a32) &amp; 0x0000FFFF) * (SKP_int32)((SKP_int16)(b32))) &gt;&gt; 16))
-
-// a32 + (b32 * (SKP_int32)((SKP_int16)(c32))) &gt;&gt; 16 output have to be 32bit int
-#define SKP_SMLAWB(a32, b32, c32)               ((a32) + ((((b32) &gt;&gt; 16) * (SKP_int32)((SKP_int16)(c32))) + ((((b32) &amp; 0x0000FFFF) * (SKP_int32)((SKP_int16)(c32))) &gt;&gt; 16)))
-
-// (a32 * (b32 &gt;&gt; 16)) &gt;&gt; 16
-#define SKP_SMULWT(a32, b32)                    (((a32) &gt;&gt; 16) * ((b32) &gt;&gt; 16) + ((((a32) &amp; 0x0000FFFF) * ((b32) &gt;&gt; 16)) &gt;&gt; 16))
-
-// a32 + (b32 * (c32 &gt;&gt; 16)) &gt;&gt; 16
-#define SKP_SMLAWT(a32, b32, c32)               ((a32) + (((b32) &gt;&gt; 16) * ((c32) &gt;&gt; 16)) + ((((b32) &amp; 0x0000FFFF) * ((c32) &gt;&gt; 16)) &gt;&gt; 16))
-
-// (SKP_int32)((SKP_int16)(a3))) * (SKP_int32)((SKP_int16)(b32)) output have to be 32bit int
-#define SKP_SMULBB(a32, b32)                    ((SKP_int32)((SKP_int16)(a32)) * (SKP_int32)((SKP_int16)(b32)))
-
-// a32 + (SKP_int32)((SKP_int16)(b32)) * (SKP_int32)((SKP_int16)(c32)) output have to be 32bit int
-#define SKP_SMLABB(a32, b32, c32)               ((a32) + ((SKP_int32)((SKP_int16)(b32))) * (SKP_int32)((SKP_int16)(c32)))
-
-// (SKP_int32)((SKP_int16)(a32)) * (b32 &gt;&gt; 16)
-#define SKP_SMULBT(a32, b32)                    ((SKP_int32)((SKP_int16)(a32)) * ((b32) &gt;&gt; 16))
-
-
-
-
-
-
-// a32 + (SKP_int32)((SKP_int16)(b32)) * (c32 &gt;&gt; 16)
-#define SKP_SMLABT(a32, b32, c32)               ((a32) + ((SKP_int32)((SKP_int16)(b32))) * ((c32) &gt;&gt; 16))
-
-// a64 + (b32 * c32)
-#define SKP_SMLAL(a64, b32, c32)                (SKP_ADD64((a64), ((SKP_int64)(b32) * (SKP_int64)(c32))))
-
-// (a32 * b32) &gt;&gt; 16
-#define SKP_SMULWW(a32, b32)                    SKP_MLA(SKP_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16))
-
-// a32 + ((b32 * c32) &gt;&gt; 16)
-#define SKP_SMLAWW(a32, b32, c32)               SKP_MLA(SKP_SMLAWB((a32), (b32), (c32)), (b32), SKP_RSHIFT_ROUND((c32), 16))
-
-/* add/subtract with output saturated */
-#define SKP_ADD_SAT32(a, b)                             ((((a) + (b)) &amp; 0x80000000) == 0 ?                                                              \
-                                                                                ((((a) &amp; (b)) &amp; 0x80000000) != 0 ? SKP_int32_MIN : (a)+(b)) :   \
-                                                                                ((((a) | (b)) &amp; 0x80000000) == 0 ? SKP_int32_MAX : (a)+(b)) )
-
-#define SKP_SUB_SAT32(a, b)                             ((((a)-(b)) &amp; 0x80000000) == 0 ?                                                                                \
-                                                                                (( (a) &amp; ((b)^0x80000000) &amp; 0x80000000) ? SKP_int32_MIN : (a)-(b)) :    \
-                                                                                ((((a)^0x80000000) &amp; (b)  &amp; 0x80000000) ? SKP_int32_MAX : (a)-(b)) )
-
-SKP_INLINE SKP_int32 SKP_Silk_CLZ16(SKP_int16 in16)
-{
-        SKP_int32 out32 = 0;
-        if( in16 == 0 ) {
-                return 16;
-        }
-        /* test nibbles */
-        if( in16 &amp; 0xFF00 ) {
-                if( in16 &amp; 0xF000 )     {
-                        in16 &gt;&gt;= 12;
-                } else {
-                        out32 += 4;
-                        in16 &gt;&gt;= 8;
-                }
-        } else {
-                if( in16 &amp; 0xFFF0 )     {
-                        out32 += 8;
-                        in16 &gt;&gt;= 4;
-                } else {
-                        out32 += 12;
-                }
-        }
-        /* test bits and return */
-        if( in16 &amp; 0xC ) {
-                if( in16 &amp; 0x8 )
-                        return out32 + 0;
-                else
-
-
-
-
-
-                        return out32 + 1;
-        } else {
-                if( in16 &amp; 0xE )
-                        return out32 + 2;
-                else
-                        return out32 + 3;
-        }
-}
-
-SKP_INLINE SKP_int32 SKP_Silk_CLZ32(SKP_int32 in32)
-{
-        /* test highest 16 bits and convert to SKP_int16 */
-        if( in32 &amp; 0xFFFF0000 ) {
-                return SKP_Silk_CLZ16((SKP_int16)(in32 &gt;&gt; 16));
-        } else {
-                return SKP_Silk_CLZ16((SKP_int16)in32) + 16;
-        }
-}
-
-#endif //_SKP_SILK_API_C_H_
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef _SKP_SILK_API_C_H_
+#define _SKP_SILK_API_C_H_
+
+// This is an inline header file for general platform.
+
+// (a32 * (SKP_int32)((SKP_int16)(b32))) &gt;&gt; 16 output have to be 32bit int
+#define SKP_SMULWB(a32, b32)                        ((((a32) &gt;&gt; 16) * (SKP_int32)((SKP_int16)(b32))) + ((((a32) &amp; 0x0000FFFF) * (SKP_int32)((SKP_int16)(b32))) &gt;&gt; 16))
+
+// a32 + (b32 * (SKP_int32)((SKP_int16)(c32))) &gt;&gt; 16 output have to be 32bit int
+#define SKP_SMLAWB(a32, b32, c32)                ((a32) + ((((b32) &gt;&gt; 16) * (SKP_int32)((SKP_int16)(c32))) + ((((b32) &amp; 0x0000FFFF) * (SKP_int32)((SKP_int16)(c32))) &gt;&gt; 16)))
+
+// (a32 * (b32 &gt;&gt; 16)) &gt;&gt; 16
+#define SKP_SMULWT(a32, b32)                        (((a32) &gt;&gt; 16) * ((b32) &gt;&gt; 16) + ((((a32) &amp; 0x0000FFFF) * ((b32) &gt;&gt; 16)) &gt;&gt; 16))
+
+// a32 + (b32 * (c32 &gt;&gt; 16)) &gt;&gt; 16
+#define SKP_SMLAWT(a32, b32, c32)                ((a32) + (((b32) &gt;&gt; 16) * ((c32) &gt;&gt; 16)) + ((((b32) &amp; 0x0000FFFF) * ((c32) &gt;&gt; 16)) &gt;&gt; 16))
+
+// (SKP_int32)((SKP_int16)(a3))) * (SKP_int32)((SKP_int16)(b32)) output have to be 32bit int
+#define SKP_SMULBB(a32, b32)                        ((SKP_int32)((SKP_int16)(a32)) * (SKP_int32)((SKP_int16)(b32)))
+
+// a32 + (SKP_int32)((SKP_int16)(b32)) * (SKP_int32)((SKP_int16)(c32)) output have to be 32bit int
+#define SKP_SMLABB(a32, b32, c32)                ((a32) + ((SKP_int32)((SKP_int16)(b32))) * (SKP_int32)((SKP_int16)(c32)))
+
+// (SKP_int32)((SKP_int16)(a32)) * (b32 &gt;&gt; 16)
+#define SKP_SMULBT(a32, b32)                        ((SKP_int32)((SKP_int16)(a32)) * ((b32) &gt;&gt; 16))
+
+// a32 + (SKP_int32)((SKP_int16)(b32)) * (c32 &gt;&gt; 16)
+#define SKP_SMLABT(a32, b32, c32)                ((a32) + ((SKP_int32)((SKP_int16)(b32))) * ((c32) &gt;&gt; 16))
+
+// a64 + (b32 * c32)
+#define SKP_SMLAL(a64, b32, c32)                (SKP_ADD64((a64), ((SKP_int64)(b32) * (SKP_int64)(c32))))
+
+// (a32 * b32) &gt;&gt; 16
+#define SKP_SMULWW(a32, b32)                        SKP_MLA(SKP_SMULWB((a32), (b32)), (a32), SKP_RSHIFT_ROUND((b32), 16))
+
+// a32 + ((b32 * c32) &gt;&gt; 16)
+#define SKP_SMLAWW(a32, b32, c32)                SKP_MLA(SKP_SMLAWB((a32), (b32), (c32)), (b32), SKP_RSHIFT_ROUND((c32), 16))
+
+/* add/subtract with output saturated */
+#define SKP_ADD_SAT32(a, b)                                ((((a) + (b)) &amp; 0x80000000) == 0 ?                                                                \
+                                                                                ((((a) &amp; (b)) &amp; 0x80000000) != 0 ? SKP_int32_MIN : (a)+(b)) :        \
+                                                                                ((((a) | (b)) &amp; 0x80000000) == 0 ? SKP_int32_MAX : (a)+(b)) )
+
+#define SKP_SUB_SAT32(a, b)                                ((((a)-(b)) &amp; 0x80000000) == 0 ?                                                                                \
+                                                                                (( (a) &amp; ((b)^0x80000000) &amp; 0x80000000) ? SKP_int32_MIN : (a)-(b)) :        \
+                                                                                ((((a)^0x80000000) &amp; (b)  &amp; 0x80000000) ? SKP_int32_MAX : (a)-(b)) )
+        
+SKP_INLINE SKP_int32 SKP_Silk_CLZ16(SKP_int16 in16)
+{
+        SKP_int32 out32 = 0;
+        if( in16 == 0 ) {
+                return 16;
+        }
+        /* test nibbles */
+        if( in16 &amp; 0xFF00 ) {
+                if( in16 &amp; 0xF000 )        {
+                        in16 &gt;&gt;= 12;
+                } else {
+                        out32 += 4;
+                        in16 &gt;&gt;= 8;
+                }
+        } else {
+                if( in16 &amp; 0xFFF0 )        {
+                        out32 += 8;
+                        in16 &gt;&gt;= 4;
+                } else {
+                        out32 += 12;
+                }
+        }
+        /* test bits and return */
+        if( in16 &amp; 0xC ) {
+                if( in16 &amp; 0x8 )
+                        return out32 + 0;
+                else
+                        return out32 + 1;
+        } else {
+                if( in16 &amp; 0xE )
+                        return out32 + 2;
+                else
+                        return out32 + 3;
+        }
+}
+
+SKP_INLINE SKP_int32 SKP_Silk_CLZ32(SKP_int32 in32)
+{
+        /* test highest 16 bits and convert to SKP_int16 */
+        if( in32 &amp; 0xFFFF0000 ) {
+                return SKP_Silk_CLZ16((SKP_int16)(in32 &gt;&gt; 16));
+        } else {
+                return SKP_Silk_CLZ16((SKP_int16)in32) + 16;
+        }
+}
+
+#endif //_SKP_SILK_API_C_H_
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_mainh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_main.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_main.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_main.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,456 +1,405 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-
-
-
-
-
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_MAIN_H
-#define SKP_SILK_MAIN_H
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_define.h&quot;
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_tables.h&quot;
-#include &quot;SKP_Silk_PLC.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/* Encodes signs of excitation */
-void SKP_Silk_encode_signs(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
-    const SKP_int               q[],                /* I    pulse signal                                */
-    const SKP_int               length,             /* I    length of input                             */
-    const SKP_int               sigtype,            /* I    Signal type                                 */
-    const SKP_int               QuantOffsetType,    /* I    Quantization offset type                    */
-    const SKP_int               RateLevelIndex      /* I    Rate Level Index                            */
-);
-
-/* Decodes signs of excitation */
-void SKP_Silk_decode_signs(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
-    SKP_int                     q[],                /* I/O  pulse signal                                */
-    const SKP_int               length,             /* I    length of output                            */
-    const SKP_int               sigtype,            /* I    Signal type                                 */
-    const SKP_int               QuantOffsetType,    /* I    Quantization offset type                    */
-    const SKP_int               RateLevelIndex      /* I    Rate Level Index                            */
-);
-
-/***************/
-/* Shell coder */
-/***************/
-
-/* Encode quantization indices of excitation */
-void SKP_Silk_encode_pulses(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
-
-
-
-
-
-    const SKP_int               sigtype,            /* I    Sigtype                                     */
-    const SKP_int               QuantOffsetType,    /* I    QuantOffsetType                             */
-    const SKP_int               q[],                /* I    quantization indices                        */
-    const SKP_int               frame_length        /* I    Frame length                                */
-);
-
-/* Shell encoder, operates on one shell code frame of 16 pulses */
-void SKP_Silk_shell_encoder(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int               *pulses0            /* I    data: nonnegative pulse amplitudes          */
-);
-
-/* Shell decoder, operates on one shell code frame of 16 pulses */
-void SKP_Silk_shell_decoder(
-    SKP_int                     *pulses0,           /* O    data: nonnegative pulse amplitudes          */
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int               pulses4             /* I    number of pulses per pulse-subframe         */
-);
-
-/***************/
-/* Range coder */
-/***************/
-/* Range encoder for one symbol */
-void SKP_Silk_range_encoder(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int               data,               /* I    uncompressed data                           */
-    const SKP_uint16            prob[]              /* I    cumulative density functions                */
-);
-
-/* Range encoder for multiple symbols */
-void SKP_Silk_range_encoder_multi(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int               data[],             /* I    uncompressed data    [nSymbols]             */
-    const SKP_uint16 * const    prob[],             /* I    cumulative density functions                */
-    const SKP_int               nSymbols            /* I    number of data symbols                      */
-);
-
-/* Range decoder for one symbol */
-void SKP_Silk_range_decoder(
-    SKP_int                     data[],             /* O    uncompressed data                           */
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_uint16            prob[],             /* I    cumulative density function                 */
-    SKP_int                     probIx              /* I    initial (middle) entry of cdf               */
-);
-
-/* Range decoder for multiple symbols */
-void SKP_Silk_range_decoder_multi(
-    SKP_int                     data[],             /* O    uncompressed data                [nSymbols] */
-
-
-
-
-
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
-    const SKP_uint16 * const    prob[],             /* I    cumulative density functions                */
-    const SKP_int               probStartIx[],      /* I    initial (middle) entries of cdfs [nSymbols] */
-    const SKP_int               nSymbols            /* I    number of data symbols                      */
-);
-
-/* Initialize range coder structure for encoder */
-void SKP_Silk_range_enc_init(
-    SKP_Silk_range_coder_state  *psRC               /* O    compressor data structure                   */
-);
-
-/* Initialize range coder structure for decoder */
-void SKP_Silk_range_dec_init(
-    SKP_Silk_range_coder_state  *psRC,              /* O    compressor data structure                   */
-    const SKP_uint8             buffer[],           /* I    buffer for compressed data [bufferLength]   */
-    const SKP_int32             bufferLength        /* I    buffer length (in bytes)                    */
-);
-
-/* Determine length of bitstream */
-SKP_int SKP_Silk_range_coder_get_length(            /* O    returns number of BITS in stream            */
-    const SKP_Silk_range_coder_state    *psRC,      /* I    compressed data structure                   */
-    SKP_int                             *nBytes     /* O    number of BYTES in stream                   */
-);
-
-/* Write decodable stream to buffer, and determine its length */
-void SKP_Silk_range_enc_wrap_up(
-    SKP_Silk_range_coder_state  *psRC               /* I/O  compressed data structure                   */
-);
-
-/* Check that any remaining bits in the last byte are set to 1 */
-void SKP_Silk_range_coder_check_after_decoding(
-    SKP_Silk_range_coder_state  *psRC               /* I/O  compressed data structure                   */
-);
-
-/* Gain scalar quantization with hysteresis, uniform on log scale */
-void SKP_Silk_gains_quant(
-    SKP_int                     ind[ NB_SUBFR ],        /* O    gain indices                            */
-    SKP_int32                   gain_Q16[ NB_SUBFR ],   /* I/O  gains (quantized out)                   */
-    SKP_int                     *prev_ind,              /* I/O  last index in previous frame            */
-    const SKP_int               conditional             /* I    first gain is delta coded if 1          */
-);
-
-/* Gains scalar dequantization, uniform on log scale */
-void SKP_Silk_gains_dequant(
-    SKP_int32                   gain_Q16[ NB_SUBFR ],   /* O    quantized gains                         */
-    const SKP_int               ind[ NB_SUBFR ],        /* I    gain indices                            */
-    SKP_int                     *prev_ind,              /* I/O  last index in previous frame            */
-    const SKP_int               conditional             /* I    first gain is delta coded if 1          */
-
-
-
-
-
-);
-
-/* Convert NLSF parameters to stable AR prediction filter coefficients */
-void SKP_Silk_NLSF2A_stable(
-    SKP_int16                   pAR_Q12[ MAX_LPC_ORDER ],   /* O    Stabilized AR coefs [LPC_order]     */
-    const SKP_int               pNLSF[ MAX_LPC_ORDER ],     /* I    NLSF vector         [LPC_order]     */
-    const SKP_int               LPC_order                   /* I    LPC/LSF order                       */
-);
-
-/* Interpolate two vectors */
-void SKP_Silk_interpolate(
-    SKP_int                     xi[ MAX_LPC_ORDER ],    /* O    interpolated vector                     */
-    const SKP_int               x0[ MAX_LPC_ORDER ],    /* I    first vector                            */
-    const SKP_int               x1[ MAX_LPC_ORDER ],    /* I    second vector                           */
-    const SKP_int               ifact_Q2,               /* I    interp. factor, weight on 2nd vector    */
-    const SKP_int               d                       /* I    number of parameters                    */
-);
-
-/***********************************/
-/* Noise shaping quantization (NSQ)*/
-/***********************************/
-void SKP_Silk_NSQ(
-    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
-    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
-    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
-    const SKP_int16                 x[],                                        /* I    prefiltered input signal            */
-    SKP_int                         q[],                                        /* O    quantized qulse signal              */
-    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
-    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Short term prediction coefficients  */
-    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    Long term prediction coefficients   */
-    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
-    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
-    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
-    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
-    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
-    const SKP_int                   Lambda_Q10,                                 /* I                                        */
-    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
-);
-
-/* Noise shaping using delayed decision */
-void SKP_Silk_NSQ_del_dec(
-    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
-    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
-    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
-    const SKP_int16                 x[],                                        /* I    Prefiltered input signal            */
-    SKP_int                         q[],                                        /* O    Quantized pulse signal              */
-    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
-    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Prediction coefs                    */
-
-
-
-
-
-    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    LT prediction coefs                 */
-    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
-    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
-    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
-    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
-    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
-    const SKP_int                   Lambda_Q10,                                 /* I                                        */
-    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
-);
-
-/************/
-/* Silk VAD */
-/************/
-/* Initialize the Silk VAD */
-SKP_int SKP_Silk_VAD_Init(                          /* O    Return value, 0 if success                  */
-    SKP_Silk_VAD_state          *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */
-);
-
-/* Silk VAD noise level estimation */
-void SKP_Silk_VAD_GetNoiseLevels(
-    const SKP_int32             pX[ VAD_N_BANDS ],  /* I    subband energies                            */
-    SKP_Silk_VAD_state          *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */
-);
-
-/* Get speech activity level in Q8 */
-SKP_int SKP_Silk_VAD_GetSA_Q8(                                  /* O    Return value, 0 if success      */
-    SKP_Silk_VAD_state          *psSilk_VAD,                    /* I/O  Silk VAD state                  */
-    SKP_int                     *pSA_Q8,                        /* O    Speech activity level in Q8     */
-    SKP_int                     *pSNR_dB_Q7,                    /* O    SNR for current frame in Q7     */
-    SKP_int                     pQuality_Q15[ VAD_N_BANDS ],    /* O    Smoothed SNR for each band      */
-    SKP_int                     *pTilt_Q15,                     /* O    current frame's frequency tilt  */
-    const SKP_int16             pIn[],                          /* I    PCM input       [framelength]   */
-    const SKP_int               framelength                     /* I    Input frame length              */
-);
-
-/* Detect signal in 8 - 12 khz range */
-void SKP_Silk_detect_SWB_input(
-    SKP_Silk_detect_SWB_state   *psSWBdetect,       /* I/O  Encoder state                               */
-    const SKP_int16             samplesIn[],        /* I    Input to encoder                            */
-    SKP_int                     nSamplesIn          /* I    Length of input                             */
-);
-
-#if SWITCH_TRANSITION_FILTERING
-/* Low-pass filter with variable cutoff frequency based on  */
-/* piece-wise linear interpolation between elliptic filters */
-/* Start by setting transition_frame_no = 1;                */
-void SKP_Silk_LP_variable_cutoff(
-    SKP_Silk_LP_state           *psLP,              /* I/O  LP filter state                             */
-
-
-
-
-
-    SKP_int16                   *out,               /* O    Low-pass filtered output signal             */
-    const SKP_int16             *in,                /* I    Input signal                                */
-    const SKP_int               frame_length        /* I    Frame length                                */
-);
-#endif
-
-/****************************************************/
-/* Decoder Functions                                */
-/****************************************************/
-SKP_int SKP_Silk_create_decoder(
-    SKP_Silk_decoder_state      **ppsDec            /* I/O  Decoder state pointer pointer               */
-);
-
-SKP_int SKP_Silk_free_decoder(
-    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
-);
-
-SKP_int SKP_Silk_init_decoder(
-    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
-);
-
-/* Set decoder sampling rate */
-void SKP_Silk_decoder_set_fs(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state pointer                       */
-    SKP_int                     fs_kHz              /* I    Sampling frequency (kHz)                    */
-);
-
-/****************/
-/* Decode frame */
-/****************/
-SKP_int SKP_Silk_decode_frame(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  Pointer to Silk decoder state               */
-    SKP_int16                   pOut[],             /* O    Pointer to output speech frame              */
-    SKP_int16                   *pN,                /* O    Pointer to size of output frame             */
-    const SKP_uint8             pCode[],            /* I    Pointer to payload                          */
-    const SKP_int               nBytes,             /* I    Payload length                              */
-    SKP_int                     action,             /* I    Action from Jitter Buffer                   */
-    SKP_int                     *decBytes           /* O    Used bytes to decode this frame             */
-);
-
-/* Decode parameters from payload */
-void SKP_Silk_decode_parameters(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  State                                       */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int                     q[],                /* O    Excitation signal                           */
-    const SKP_int               fullDecoding        /* I    Flag to tell if only arithmetic decoding    */
-);
-
-
-
-
-
-
-/* Decode indices from payload v4 Bitstream */
-void SKP_Silk_decode_indices_v4(
-    SKP_Silk_decoder_state      *psDec              /* I/O  State                                       */
-);
-
-/* Decode parameters from payload v4 Bitstream */
-void SKP_Silk_decode_parameters_v4(
-    SKP_Silk_decoder_state      *psDec,                                 /* I/O  State                                    */
-    SKP_Silk_decoder_control    *psDecCtrl,                             /* I/O  Decoder control                          */
-    SKP_int                     q[ MAX_FRAME_LENGTH ],                  /* O    Excitation signal                        */
-    const SKP_int               fullDecoding                            /* I    Flag to tell if only arithmetic decoding */
-);
-
-/* Core decoder. Performs inverse NSQ operation LTP + LPC */
-void SKP_Silk_decode_core(
-    SKP_Silk_decoder_state      *psDec,                             /* I/O Decoder state                */
-    SKP_Silk_decoder_control    *psDecCtrl,                         /* I    Decoder control             */
-    SKP_int16                   xq[],                               /* O    Decoded speech              */
-    const SKP_int               q[ MAX_FRAME_LENGTH ]               /* I    Pulse signal                */
-);
-
-/* NLSF vector decoder */
-void SKP_Silk_NLSF_MSVQ_decode(
-    SKP_int                         *pNLSF_Q15,     /* O    Pointer to decoded output [LPC_ORDER x 1]   */
-    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,     /* I    Pointer to NLSF codebook struct             */
-    const SKP_int                   *NLSFIndices,   /* I    Pointer to NLSF indices [nStages x 1]       */
-    const SKP_int                   LPC_order       /* I    LPC order                                   */
-);
-
-/**********************/
-/* Arithmetic coding */
-/*********************/
-
-/* Decode quantization indices of excitation (Shell coding) */
-void SKP_Silk_decode_pulses(
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int                     q[],                /* O    Excitation signal                           */
-    const SKP_int               frame_length        /* I    Frame length (preliminary)                  */
-);
-
-/******************/
-/* CNG */
-/******************/
-
-/* Reset CNG */
-void SKP_Silk_CNG_Reset(
-    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state                               */
-
-
-
-
-
-);
-
-/* Updates CNG estimate, and applies the CNG when packet was lost   */
-void SKP_Silk_CNG(
-    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state                               */
-    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
-    SKP_int16                   signal[],           /* I/O  Signal                                      */
-    SKP_int                     length              /* I    Length of residual                          */
-);
-
-/* Encoding of various parameters */
-void SKP_Silk_encode_parameters(
-    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder state                               */
-    SKP_Silk_encoder_control    *psEncCtrlC,        /* I/O  Encoder control                             */
-    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
-    const SKP_int               *q                  /* I    Quantization indices                        */
-);
-
-/* Encoding of various parameters */
-void SKP_Silk_encode_parameters_v4(
-    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder state                               */
-    SKP_Silk_encoder_control    *psEncCtrlC,        /* I/O  Encoder control                             */
-    SKP_Silk_range_coder_state  *psRC               /* I/O  Range encoder state                         */
-);
-
-/* Extract lowest layer encoding */
-void SKP_Silk_get_low_layer_internal(
-    const SKP_uint8             *indata,            /* I:   Encoded input vector                        */
-    const SKP_int16             nBytesIn,           /* I:   Number of input Bytes                       */
-    SKP_uint8                   *Layer0data,        /* O:   Layer0 payload                              */
-    SKP_int16                   *nLayer0Bytes       /* O:   Number of FEC Bytes                         */
-);
-
-/* Resets LBRR buffer, used if packet size changes */
-void SKP_Silk_LBRR_reset(
-    SKP_Silk_encoder_state      *psEncC             /* I/O  Pointer to Silk encoder state               */
-);
-
-/* Predict number of bytes used to encode q */
-SKP_int SKP_Silk_pulses_to_bytes( /* O  Return value, predicted number of bytes used to encode q */
-    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder State*/
-    SKP_int                     q[]                 /* I     Pulse signal */
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-
-
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_MAIN_H
+#define SKP_SILK_MAIN_H
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_define.h&quot;
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_tables.h&quot;
+#include &quot;SKP_Silk_PLC.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* Encodes signs of excitation */
+void SKP_Silk_encode_signs(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
+    const SKP_int               q[],                /* I    pulse signal                                */
+    const SKP_int               length,             /* I    length of input                             */
+    const SKP_int               sigtype,            /* I    Signal type                                 */
+    const SKP_int               QuantOffsetType,    /* I    Quantization offset type                    */
+    const SKP_int               RateLevelIndex      /* I    Rate Level Index                            */
+);
+
+/* Decodes signs of excitation */
+void SKP_Silk_decode_signs(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
+    SKP_int                     q[],                /* I/O  pulse signal                                */
+    const SKP_int               length,             /* I    length of output                            */
+    const SKP_int               sigtype,            /* I    Signal type                                 */
+    const SKP_int               QuantOffsetType,    /* I    Quantization offset type                    */
+    const SKP_int               RateLevelIndex      /* I    Rate Level Index                            */
+);
+
+/***************/
+/* Shell coder */
+/***************/
+
+/* Encode quantization indices of excitation */
+void SKP_Silk_encode_pulses(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
+    const SKP_int               sigtype,            /* I    Sigtype                                     */
+    const SKP_int               QuantOffsetType,    /* I    QuantOffsetType                             */
+    const SKP_int               q[],                /* I    quantization indices                        */
+    const SKP_int               frame_length        /* I    Frame length                                */
+);
+
+/* Shell encoder, operates on one shell code frame of 16 pulses */
+void SKP_Silk_shell_encoder(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int               *pulses0            /* I    data: nonnegative pulse amplitudes          */
+);
+
+/* Shell decoder, operates on one shell code frame of 16 pulses */
+void SKP_Silk_shell_decoder(
+    SKP_int                     *pulses0,           /* O    data: nonnegative pulse amplitudes          */
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int               pulses4             /* I    number of pulses per pulse-subframe         */
+);
+
+/***************/
+/* Range coder */
+/***************/
+/* Range encoder for one symbol */
+void SKP_Silk_range_encoder(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int               data,               /* I    uncompressed data                           */
+    const SKP_uint16            prob[]              /* I    cumulative density functions                */
+);
+    
+/* Range encoder for multiple symbols */
+void SKP_Silk_range_encoder_multi(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int               data[],             /* I    uncompressed data    [nSymbols]             */
+    const SKP_uint16 * const    prob[],             /* I    cumulative density functions                */
+    const SKP_int               nSymbols            /* I    number of data symbols                      */
+);
+
+/* Range decoder for one symbol */
+void SKP_Silk_range_decoder(
+    SKP_int                     data[],             /* O    uncompressed data                           */
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_uint16            prob[],             /* I    cumulative density function                 */
+    SKP_int                     probIx              /* I    initial (middle) entry of cdf               */
+);
+
+/* Range decoder for multiple symbols */
+void SKP_Silk_range_decoder_multi(
+    SKP_int                     data[],             /* O    uncompressed data                [nSymbols] */
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  compressor data structure                   */
+    const SKP_uint16 * const    prob[],             /* I    cumulative density functions                */
+    const SKP_int               probStartIx[],      /* I    initial (middle) entries of cdfs [nSymbols] */
+    const SKP_int               nSymbols            /* I    number of data symbols                      */
+);
+
+/* Initialize range coder structure for encoder */
+void SKP_Silk_range_enc_init(
+    SKP_Silk_range_coder_state  *psRC               /* O    compressor data structure                   */
+);
+
+/* Initialize range coder structure for decoder */
+void SKP_Silk_range_dec_init(
+    SKP_Silk_range_coder_state  *psRC,              /* O    compressor data structure                   */
+    const SKP_uint8             buffer[],           /* I    buffer for compressed data [bufferLength]   */
+    const SKP_int32             bufferLength        /* I    buffer length (in bytes)                    */
+);
+
+/* Determine length of bitstream */
+SKP_int SKP_Silk_range_coder_get_length(            /* O    returns number of BITS in stream            */
+    const SKP_Silk_range_coder_state    *psRC,      /* I    compressed data structure                   */
+    SKP_int                             *nBytes     /* O    number of BYTES in stream                   */
+);
+
+/* Write decodable stream to buffer, and determine its length */
+void SKP_Silk_range_enc_wrap_up(
+    SKP_Silk_range_coder_state  *psRC               /* I/O  compressed data structure                   */
+);
+
+/* Check that any remaining bits in the last byte are set to 1 */
+void SKP_Silk_range_coder_check_after_decoding(
+    SKP_Silk_range_coder_state  *psRC               /* I/O  compressed data structure                   */
+);
+
+/* Gain scalar quantization with hysteresis, uniform on log scale */
+void SKP_Silk_gains_quant(
+    SKP_int                     ind[ NB_SUBFR ],        /* O    gain indices                            */
+    SKP_int32                   gain_Q16[ NB_SUBFR ],   /* I/O  gains (quantized out)                   */
+    SKP_int                     *prev_ind,              /* I/O  last index in previous frame            */
+    const SKP_int               conditional             /* I    first gain is delta coded if 1          */
+);
+
+/* Gains scalar dequantization, uniform on log scale */
+void SKP_Silk_gains_dequant(
+    SKP_int32                   gain_Q16[ NB_SUBFR ],   /* O    quantized gains                         */
+    const SKP_int               ind[ NB_SUBFR ],        /* I    gain indices                            */
+    SKP_int                     *prev_ind,              /* I/O  last index in previous frame            */
+    const SKP_int               conditional             /* I    first gain is delta coded if 1          */
+);
+
+/* Convert NLSF parameters to stable AR prediction filter coefficients */
+void SKP_Silk_NLSF2A_stable(
+    SKP_int16                   pAR_Q12[ MAX_LPC_ORDER ],   /* O    Stabilized AR coefs [LPC_order]     */ 
+    const SKP_int               pNLSF[ MAX_LPC_ORDER ],     /* I    NLSF vector         [LPC_order]     */
+    const SKP_int               LPC_order                   /* I    LPC/LSF order                       */
+);
+
+/* Interpolate two vectors */
+void SKP_Silk_interpolate(
+    SKP_int                     xi[ MAX_LPC_ORDER ],    /* O    interpolated vector                     */
+    const SKP_int               x0[ MAX_LPC_ORDER ],    /* I    first vector                            */
+    const SKP_int               x1[ MAX_LPC_ORDER ],    /* I    second vector                           */
+    const SKP_int               ifact_Q2,               /* I    interp. factor, weight on 2nd vector    */
+    const SKP_int               d                       /* I    number of parameters                    */
+);
+
+/***********************************/
+/* Noise shaping quantization (NSQ)*/
+/***********************************/
+void SKP_Silk_NSQ(
+    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
+    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
+    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
+    const SKP_int16                 x[],                                        /* I    prefiltered input signal            */
+    SKP_int                         q[],                                        /* O    quantized qulse signal              */
+    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
+    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Short term prediction coefficients  */
+    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    Long term prediction coefficients   */
+    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
+    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
+    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
+    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
+    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
+    const SKP_int                   Lambda_Q10,                                 /* I                                        */
+    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
+);
+
+/* Noise shaping using delayed decision */
+void SKP_Silk_NSQ_del_dec(
+    SKP_Silk_encoder_state          *psEncC,                                    /* I/O  Encoder State                       */
+    SKP_Silk_encoder_control        *psEncCtrlC,                                /* I    Encoder Control                     */
+    SKP_Silk_nsq_state              *NSQ,                                       /* I/O  NSQ state                           */
+    const SKP_int16                 x[],                                        /* I    Prefiltered input signal            */
+    SKP_int                         q[],                                        /* O    Quantized pulse signal              */
+    const SKP_int                   LSFInterpFactor_Q2,                         /* I    LSF interpolation factor in Q2      */
+    const SKP_int16                 PredCoef_Q12[ 2 * MAX_LPC_ORDER ],          /* I    Prediction coefs                    */
+    const SKP_int16                 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],        /* I    LT prediction coefs                 */
+    const SKP_int16                 AR2_Q13[ NB_SUBFR * SHAPE_LPC_ORDER_MAX ],  /* I                                        */
+    const SKP_int                   HarmShapeGain_Q14[ NB_SUBFR ],              /* I                                        */
+    const SKP_int                   Tilt_Q14[ NB_SUBFR ],                       /* I    Spectral tilt                       */
+    const SKP_int32                 LF_shp_Q14[ NB_SUBFR ],                     /* I                                        */
+    const SKP_int32                 Gains_Q16[ NB_SUBFR ],                      /* I                                        */
+    const SKP_int                   Lambda_Q10,                                 /* I                                        */
+    const SKP_int                   LTP_scale_Q14                               /* I    LTP state scaling                   */
+);
+
+/************/
+/* Silk VAD */
+/************/
+/* Initialize the Silk VAD */
+SKP_int SKP_Silk_VAD_Init(                          /* O    Return value, 0 if success                  */ 
+    SKP_Silk_VAD_state          *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */ 
+); 
+
+/* Silk VAD noise level estimation */
+void SKP_Silk_VAD_GetNoiseLevels(
+    const SKP_int32             pX[ VAD_N_BANDS ],  /* I    subband energies                            */
+    SKP_Silk_VAD_state          *psSilk_VAD         /* I/O  Pointer to Silk VAD state                   */ 
+);
+
+/* Get speech activity level in Q8 */
+SKP_int SKP_Silk_VAD_GetSA_Q8(                                  /* O    Return value, 0 if success      */
+    SKP_Silk_VAD_state          *psSilk_VAD,                    /* I/O  Silk VAD state                  */
+    SKP_int                     *pSA_Q8,                        /* O    Speech activity level in Q8     */
+    SKP_int                     *pSNR_dB_Q7,                    /* O    SNR for current frame in Q7     */
+    SKP_int                     pQuality_Q15[ VAD_N_BANDS ],    /* O    Smoothed SNR for each band      */
+    SKP_int                     *pTilt_Q15,                     /* O    current frame's frequency tilt  */
+    const SKP_int16             pIn[],                          /* I    PCM input       [framelength]   */
+    const SKP_int               framelength                     /* I    Input frame length              */
+);
+
+/* Detect signal in 8 - 12 khz range */
+void SKP_Silk_detect_SWB_input(
+    SKP_Silk_detect_SWB_state   *psSWBdetect,       /* I/O  Encoder state                               */
+    const SKP_int16             samplesIn[],        /* I    Input to encoder                            */
+    SKP_int                     nSamplesIn          /* I    Length of input                             */
+);
+
+#if SWITCH_TRANSITION_FILTERING
+/* Low-pass filter with variable cutoff frequency based on  */
+/* piece-wise linear interpolation between elliptic filters */
+/* Start by setting transition_frame_no = 1;                */
+void SKP_Silk_LP_variable_cutoff(
+    SKP_Silk_LP_state           *psLP,              /* I/O  LP filter state                             */
+    SKP_int16                   *out,               /* O    Low-pass filtered output signal             */
+    const SKP_int16             *in,                /* I    Input signal                                */
+    const SKP_int               frame_length        /* I    Frame length                                */
+);
+#endif
+
+/****************************************************/
+/* Decoder Functions                                */
+/****************************************************/
+SKP_int SKP_Silk_create_decoder(
+    SKP_Silk_decoder_state      **ppsDec            /* I/O  Decoder state pointer pointer               */
+);
+
+SKP_int SKP_Silk_free_decoder(
+    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
+);
+
+SKP_int SKP_Silk_init_decoder(
+    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state pointer                       */
+);
+
+/* Set decoder sampling rate */
+void SKP_Silk_decoder_set_fs(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state pointer                       */
+    SKP_int                     fs_kHz              /* I    Sampling frequency (kHz)                    */
+);
+
+/****************/
+/* Decode frame */
+/****************/
+SKP_int SKP_Silk_decode_frame(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  Pointer to Silk decoder state               */
+    SKP_int16                   pOut[],             /* O    Pointer to output speech frame              */
+    SKP_int16                   *pN,                /* O    Pointer to size of output frame             */
+    const SKP_uint8             pCode[],            /* I    Pointer to payload                          */
+    const SKP_int               nBytes,             /* I    Payload length                              */
+    SKP_int                     action,             /* I    Action from Jitter Buffer                   */
+    SKP_int                     *decBytes           /* O    Used bytes to decode this frame             */
+);
+
+/* Decode parameters from payload */
+void SKP_Silk_decode_parameters(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  State                                       */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int                     q[],                /* O    Excitation signal                           */
+    const SKP_int               fullDecoding        /* I    Flag to tell if only arithmetic decoding    */
+);
+
+/* Decode indices from payload v4 Bitstream */
+void SKP_Silk_decode_indices_v4(
+    SKP_Silk_decoder_state      *psDec              /* I/O  State                                       */
+);
+
+/* Decode parameters from payload v4 Bitstream */
+void SKP_Silk_decode_parameters_v4(
+    SKP_Silk_decoder_state      *psDec,                                 /* I/O  State                                    */
+    SKP_Silk_decoder_control    *psDecCtrl,                             /* I/O  Decoder control                          */
+    SKP_int                     q[ MAX_FRAME_LENGTH ],                  /* O    Excitation signal                        */
+    const SKP_int               fullDecoding                            /* I    Flag to tell if only arithmetic decoding */
+);
+
+/* Core decoder. Performs inverse NSQ operation LTP + LPC */
+void SKP_Silk_decode_core(
+    SKP_Silk_decoder_state      *psDec,                             /* I/O  Decoder state               */
+    SKP_Silk_decoder_control    *psDecCtrl,                         /* I    Decoder control             */
+    SKP_int16                   xq[],                               /* O    Decoded speech              */
+    const SKP_int               q[ MAX_FRAME_LENGTH ]               /* I    Pulse signal                */
+);
+
+/* NLSF vector decoder */
+void SKP_Silk_NLSF_MSVQ_decode(
+    SKP_int                         *pNLSF_Q15,     /* O    Pointer to decoded output [LPC_ORDER x 1]   */
+    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,     /* I    Pointer to NLSF codebook struct             */
+    const SKP_int                   *NLSFIndices,   /* I    Pointer to NLSF indices [nStages x 1]       */
+    const SKP_int                   LPC_order       /* I    LPC order                                   */
+);
+
+/**********************/
+/* Arithmetic coding */
+/*********************/
+
+/* Decode quantization indices of excitation (Shell coding) */
+void SKP_Silk_decode_pulses(
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int                     q[],                /* O    Excitation signal                           */
+    const SKP_int               frame_length        /* I    Frame length (preliminary)                  */
+);
+
+/******************/
+/* CNG */
+/******************/
+
+/* Reset CNG */
+void SKP_Silk_CNG_Reset(
+    SKP_Silk_decoder_state      *psDec              /* I/O  Decoder state                               */
+);
+
+/* Updates CNG estimate, and applies the CNG when packet was lost   */
+void SKP_Silk_CNG(
+    SKP_Silk_decoder_state      *psDec,             /* I/O  Decoder state                               */
+    SKP_Silk_decoder_control    *psDecCtrl,         /* I/O  Decoder control                             */
+    SKP_int16                   signal[],           /* I/O  Signal                                      */
+    SKP_int                     length              /* I    Length of residual                          */
+);
+
+/* Encoding of various parameters */
+void SKP_Silk_encode_parameters(
+    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder state                               */
+    SKP_Silk_encoder_control    *psEncCtrlC,        /* I/O  Encoder control                             */
+    SKP_Silk_range_coder_state  *psRC,              /* I/O  Range coder state                           */
+    const SKP_int               *q                  /* I    Quantization indices                        */
+);
+
+/* Encoding of various parameters */
+void SKP_Silk_encode_parameters_v4(
+    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder state                               */
+    SKP_Silk_encoder_control    *psEncCtrlC,        /* I/O  Encoder control                             */
+    SKP_Silk_range_coder_state  *psRC               /* I/O  Range encoder state                         */
+);
+
+/* Extract lowest layer encoding */
+void SKP_Silk_get_low_layer_internal(
+    const SKP_uint8             *indata,            /* I:   Encoded input vector                        */
+    const SKP_int16             nBytesIn,           /* I:   Number of input Bytes                       */
+    SKP_uint8                   *Layer0data,        /* O:   Layer0 payload                              */
+    SKP_int16                   *nLayer0Bytes       /* O:   Number of FEC Bytes                         */
+);
+
+/* Resets LBRR buffer, used if packet size changes */
+void SKP_Silk_LBRR_reset( 
+    SKP_Silk_encoder_state      *psEncC             /* I/O  Pointer to Silk encoder state               */
+);
+
+/* Predict number of bytes used to encode q */
+SKP_int SKP_Silk_pulses_to_bytes( /* O  Return value, predicted number of bytes used to encode q */ 
+    SKP_Silk_encoder_state      *psEncC,            /* I/O  Encoder State*/
+    SKP_int                     q[]                 /* I     Pulse signal */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_main_FIXh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_main_FIX.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_main_FIX.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_main_FIX.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,361 +1,324 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_MAIN_FIX_H
-#define SKP_SILK_MAIN_FIX_H
-
-#include &lt;stdlib.h&gt;
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_structs_FIX.h&quot;
-#include &quot;SKP_Silk_tables_FIX.h&quot;
-#include &quot;SKP_Silk_main.h&quot;
-#include &quot;SKP_Silk_define_FIX.h&quot;
-#include &quot;SKP_Silk_PLC.h&quot;
-#define TIC(TAG_NAME)
-#define TOC(TAG_NAME)
-
-
-
-
-
-
-#ifndef FORCE_CPP_BUILD
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-#endif
-
-/*********************/
-/* Encoder Functions */
-/*********************/
-
-/* Initializes the Silk encoder state */
-SKP_int SKP_Silk_init_encoder_FIX(
-    SKP_Silk_encoder_state_FIX  *psEnc              /* I/O  Pointer to Silk FIX encoder state           */
-);
-
-/* Control the Silk encoder */
-SKP_int SKP_Silk_control_encoder_FIX(
-    SKP_Silk_encoder_state_FIX  *psEnc,             /* I/O  Pointer to Silk FIX encoder state               */
-    const SKP_int               API_fs_kHz,         /* I    External (API) sampling rate (kHz)              */
-    const SKP_int               PacketSize_ms,      /* I    Packet length (ms)                              */
-    SKP_int32                   TargetRate_bps,     /* I    Target max bitrate (bps) (used if SNR_dB == 0)  */
-    const SKP_int               PacketLoss_perc,    /* I    Packet loss rate (in percent)                   */
-    const SKP_int               INBandFec_enabled,  /* I    Enable (1) / disable (0) inband FEC             */
-    const SKP_int               DTX_enabled,        /* I    Enable / disable DTX                            */
-    const SKP_int               InputFramesize_ms,  /* I    Inputframe in ms                                */
-    const SKP_int               Complexity          /* I    Complexity (0-&gt;low; 1-&gt;medium; 2-&gt;high)         */
-);
-
-/* Encoder main function */
-SKP_int SKP_Silk_encode_frame_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Pointer to Silk FIX encoder state           */
-    SKP_uint8                       *pCode,             /* O    Pointer to payload                          */
-    SKP_int16                       *pnBytesOut,        /* I/O  Pointer to number of payload bytes;         */
-                                                        /*      input: max length; output: used             */
-    const SKP_int16                 *pIn                /* I    Pointer to input speech frame               */
-);
-
-/* Low BitRate Redundancy encoding functionality. Reuse all parameters but encode with lower bitrate */
-void SKP_Silk_LBRR_encode_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Pointer to Silk FIX encoder state           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Pointer to Silk FIX encoder control struct  */
-    SKP_uint8                       *pCode,         /* O    Pointer to payload                          */
-    SKP_int16                       *pnBytesOut,    /* I/O  Pointer to number of payload bytes          */
-    SKP_int16                       xfw[]           /* I    Input signal                                */
-);
-
-/* High-pass filter with cutoff frequency adaptation based on pitch lag statistics */
-
-
-
-
-
-void SKP_Silk_HP_variable_cutoff_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control                             */
-    SKP_int16                       *out,           /* O    high-pass filtered output signal            */
-    const SKP_int16                 *in             /* I    input signal                                */
-);
-
-/****************/
-/* Prefiltering */
-/****************/
-void SKP_Silk_prefilter_FIX(
-    SKP_Silk_encoder_state_FIX          *psEnc,         /* I/O  Encoder state                               */
-    const SKP_Silk_encoder_control_FIX  *psEncCtrl,     /* I    Encoder control                             */
-    SKP_int16                           xw[],           /* O    Weighted signal                             */
-    const SKP_int16                     x[]             /* I    Speech signal                               */
-);
-
-/**************************************************************/
-/* Compute noise shaping coefficients and initial gain values */
-/**************************************************************/
-void SKP_Silk_noise_shape_analysis_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control                             */
-    const SKP_int16                 *pitch_res,     /* I    LPC residual from pitch analysis            */
-    const SKP_int16                 *x              /* I    Input signal [ 2 * frame_length + la_shape ]*/
-);
-
-/* Processing of gains */
-void SKP_Silk_process_gains_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  Encoder control                             */
-);
-
-
-/* Control low bitrate redundancy usage */
-void SKP_Silk_LBRR_ctrl_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  encoder control                             */
-);
-
-/* Calculation of LTP state scaling */
-void SKP_Silk_LTP_scale_ctrl_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  encoder control                             */
-);
-
-/**********************************************/
-/* Prediction Analysis                        */
-
-
-
-
-
-/**********************************************/
-
-/* Find pitch lags */
-void SKP_Silk_find_pitch_lags_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
-    SKP_int16                       res[],          /* O    residual                                    */
-    const SKP_int16                 x[]             /* I    Speech signal                               */
-);
-
-void SKP_Silk_find_pred_coefs_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
-    const SKP_int16                 res_pitch[]     /* I    Residual from pitch analysis                */
-);
-
-void SKP_Silk_find_LPC_FIX(
-    SKP_int             NLSF_Q15[],             /* O    LSFs                                                                        */
-    SKP_int             *interpIndex,           /* O    LSF interpolation index, only used for LSF interpolation                    */
-    const SKP_int       prev_NLSFq_Q15[],       /* I    previous LSFs, only used for LSF interpolation                              */
-    const SKP_int       useInterpolatedLSFs,    /* I    Flag                                                                        */
-    const SKP_int       LPC_order,              /* I    LPC order                                                                   */
-    const SKP_int16     x[],                    /* I    Input signal                                                                */
-    const SKP_int       subfr_length            /* I    Input signal subframe length including preceeding samples                   */
-);
-
-void SKP_Silk_LTP_analysis_filter_FIX(
-    SKP_int16       *LTP_res,                           /* O:   LTP residual signal of length NB_SUBFR * ( pre_length + subfr_length )  */
-    const SKP_int16 *x,                                 /* I:   Pointer to input signal with at least max( pitchL ) preceeding samples  */
-    const SKP_int16 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],/* I:   LTP_ORDER LTP coefficients for each NB_SUBFR subframe                   */
-    const SKP_int   pitchL[ NB_SUBFR ],                 /* I:   Pitch lag, one for each subframe                                        */
-    const SKP_int32 invGains_Qxx[ NB_SUBFR ],           /* I:   Inverse quantization gains, one for each subframe                       */
-    const SKP_int   Qxx,                                /* I:   Inverse quantization gains Q domain                                     */
-    const SKP_int   subfr_length,                       /* I:   Length of each subframe                                                 */
-    const SKP_int   pre_length                          /* I:   Length of the preceeding samples starting at &amp;x[0] for each subframe    */
-);
-
-/* Finds LTP vector from correlations */
-void SKP_Silk_find_LTP_FIX(
-    SKP_int16           b_Q14[ NB_SUBFR * LTP_ORDER ],              /* O    LTP coefs                                                   */
-    SKP_int32           WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ],   /* O    Weight for LTP quantization                                 */
-    SKP_int             *LTPredCodGain_Q7,                          /* O    LTP coding gain                                             */
-    const SKP_int16     r_first[],                                  /* I    residual signal after LPC signal + state for first 10 ms    */
-    const SKP_int16     r_last[],                                   /* I    residual signal after LPC signal + state for last 10 ms     */
-    const SKP_int       lag[ NB_SUBFR ],                            /* I    LTP lags                                                    */
-    const SKP_int32     Wght_Q15[ NB_SUBFR ],                       /* I    weights                                                     */
-    const SKP_int       subfr_length,                               /* I    subframe length                                             */
-    const SKP_int       mem_offset,                                 /* I    number of samples in LTP memory                             */
-
-
-
-
-
-    SKP_int             corr_rshifts[ NB_SUBFR ]                    /* O    right shifts applied to correlations                        */
-);
-
-/* LTP tap quantizer */
-void SKP_Silk_quant_LTP_gains_FIX(
-    SKP_int16               B_Q14[],                /* I/O  (un)quantized LTP gains     */
-    SKP_int                 cbk_index[],            /* O    Codebook Index              */
-    SKP_int                 *periodicity_index,     /* O    Periodicity Index           */
-    const SKP_int32         W_Q18[],                /* I    Error Weights in Q18        */
-    SKP_int                 mu_Q8,                  /* I    Mu value (R/D tradeoff)     */
-    SKP_int                 lowComplexity           /* I    Flag for low complexity     */
-);
-
-/******************/
-/* NLSF Quantizer */
-/******************/
-
-/* Limit, stabilize, convert and quantize NLSFs.    */
-void SKP_Silk_process_NLSFs_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state                               */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl, /* I/O  encoder control                             */
-    SKP_int                         *pNLSF_Q15  /* I/O  Normalized LSFs (quant out) (0 - (2^15-1))  */
-);
-
-/* LSF vector encoder */
-void SKP_Silk_NLSF_MSVQ_encode_FIX(
-    SKP_int                             *NLSFIndices,           /* O    Pointer to codebook path vector             [CB_STAGES x1] */
-    SKP_int                             *pNLSF_Q15,             /* I/O  Pointer to quantized NLSF vector            [LPC_order x1] */
-    const SKP_Silk_NLSF_CB_struct       *psNLSF_CB,             /* I    Pointer to codebook object                                 */
-    const SKP_int                       *pNLSF_q_Q15_prev,      /* I    Pointer to previously quantized NLSF vector [LPC_order x1] */
-    const SKP_int                       *pW_Qx,                 /* I    Pointer to NLSF weight vector               [LPC_order x1] */
-    const SKP_int                       NLSF_mu_Q15,            /* I    Rate weight for the RD optimization                        */
-    const SKP_int                       NLSF_mu_fluc_red_Q16,   /* I    Fluctuation error weight for fluctuation reduction         */
-    const SKP_int                       NLSF_MSVQ_Max_Survivors,/* I    Maximum number of survivors from each stage                */
-    const SKP_int                       LPC_order,              /* I    LPC order                                                  */
-    const SKP_int                       deactivate_fluc_red     /* I    Deactivate fluctuation reduction, e.g. right after a reset */
-);
-
-/* Weighted VQ with entropy constraints, for multiple input data vectors */
-void SKP_Silk_NLSF_VQ_nearest_neighbor_FIX(
-    SKP_int32                               *pRD_Q20,       /* O    rate-distortion of psNLSF_CB_stage-&gt;nVectors best codebook vectors, for each input vector*/
-    const SKP_Silk_NLSF_CB_Stage_struct     *psNLSF_CB_stage,/* I   pointer to NLSF codebook stage struct                                                    */
-    const SKP_int                           *in_Q15,        /* I    input vectors to be quantized                                                            */
-    const SKP_int                           *w_Q6,          /* I    weighting vector                                                                         */
-    const SKP_int32                         *rate_acc_Q5,   /* I    Accumulated rate from first to previous stage for each input vector                      */
-    const SKP_int                           mu_Q15,         /* I    tradeoffs between weighted error and rate                                                */
-    const SKP_int                           N,              /* I    number of input vectors to be quantized                                                  */
-    const SKP_int                           LPC_order       /* I    LPC order                                                                                */
-
-
-
-
-
-);
-
-/* Compute weighted quantization errors for an LPC_order element input vector, over one codebook stage */
-void SKP_Silk_NLSF_VQ_sum_error_FIX(
-    SKP_int32                       *err_Q20,           /* O    Weighted quantization errors  [N*K]         */
-    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized [N*LPC_order] */
-    const SKP_int                   *w_Q6,              /* I    Weighting vectors             [N*LPC_order] */
-    const SKP_int16                 *pCB_Q15,           /* I    Codebook vectors              [K*LPC_order] */
-    const SKP_int                   N,                  /* I    Number of input vectors                     */
-    const SKP_int                   K,                  /* I    Number of codebook vectors                  */
-    const SKP_int                   LPC_order           /* I    Number of LPCs                              */
-);
-
-/* Entropy constrained MATRIX-weighted VQ, for a single input data vector */
-void SKP_Silk_VQ_WMat_EC_FIX(
-    SKP_int                         *ind,               /* O    index of best codebook vector               */
-    SKP_int32                       *rate_dist_Q14,     /* O    best weighted quantization error + mu * rate*/
-    const SKP_int16                 *in_Q14,            /* I    input vector to be quantized                */
-    const SKP_int32                 *W_Q18,             /* I    weighting matrix                            */
-    const SKP_int16                 *cb_Q14,            /* I    codebook                                    */
-    const SKP_int16                 *cl_Q6,             /* I    code length for each codebook vector        */
-    const SKP_int                   mu_Q8,              /* I    tradeoff between weighted error and rate    */
-    SKP_int                         L                   /* I    number of vectors in codebook               */
-);
-
-/******************/
-/* Linear Algebra */
-/******************/
-
-/* Calculates correlation matrix X'*X */
-void SKP_Silk_corrMatrix_FIX(
-    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
-    const SKP_int                   L,          /* I    Length of vectors                                   */
-    const SKP_int                   order,      /* I    Max lag for correlation                             */
-    SKP_int32                       *XX,        /* O    Pointer to X'*X correlation matrix [ order x order ]*/
-    SKP_int                         *rshifts    /* I/O  Right shifts of correlations                        */
-);
-
-/* Calculates correlation vector X'*t */
-void SKP_Silk_corrVector_FIX(
-    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
-    const SKP_int16                 *t,         /* I    target vector [L]                                   */
-    const SKP_int                   L,          /* I    Length of vectors                                   */
-    const SKP_int                   order,      /* I    Max lag for correlation                             */
-    SKP_int32                       *Xt,        /* O    Pointer to X'*t correlation vector [order]          */
-    const SKP_int                   rshifts     /* I    Right shifts of correlations                        */
-);
-
-
-
-
-
-
-/* Add noise to matrix diagonal */
-void SKP_Silk_regularize_correlations_FIX(
-    SKP_int32                       *XX,                /* I/O  Correlation matrices                        */
-    SKP_int32                       *xx,                /* I/O  Correlation values                          */
-    SKP_int32                       noise,              /* I    Noise to add                                */
-    SKP_int                         D                   /* I    Dimension of XX                             */
-);
-
-/* Solves Ax = b, assuming A is symmetric */
-void SKP_Silk_solve_LDL_FIX(
-    SKP_int32                       *A,                 /* I    Pointer to symetric square matrix A         */
-    SKP_int                         M,                  /* I    Size of matrix                              */
-    const SKP_int32                 *b,                 /* I    Pointer to b vector                         */
-    SKP_int32                       *x_Q16              /* O    Pointer to x solution vector                */
-);
-
-/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */
-SKP_int32 SKP_Silk_residual_energy16_covar_FIX(
-    const SKP_int16                 *c,                 /* I    Prediction vector                           */
-    const SKP_int32                 *wXX,               /* I    Correlation matrix                          */
-    const SKP_int32                 *wXx,               /* I    Correlation vector                          */
-    SKP_int32                       wxx,                /* I    Signal energy                               */
-    SKP_int                         D,                  /* I    Dimension                                   */
-    SKP_int                         cQ                  /* I    Q value for c vector 0 - 15                 */
-);
-
-/* Calculates residual energies of input subframes where all subframes have LPC_order   */
-/* of preceeding samples                                                                */
-void SKP_Silk_residual_energy_FIX(
-          SKP_int32 nrgs[ NB_SUBFR ],           /* O    Residual energy per subframe    */
-          SKP_int   nrgsQ[ NB_SUBFR ],          /* O    Q value per subframe            */
-    const SKP_int16 x[],                        /* I    Input signal                    */
-    const SKP_int16 a_Q12[ 2 ][ MAX_LPC_ORDER ],/* I    AR coefs for each frame half    */
-    const SKP_int32 gains_Qx[ NB_SUBFR ],       /* I    Quantization gains in Qx        */
-    const SKP_int   Qx,                         /* I    Quantization gains Q value      */
-    const SKP_int   subfr_length,               /* I    Subframe length                 */
-    const SKP_int   LPC_order                   /* I    LPC order                       */
-);
-
-#ifndef FORCE_CPP_BUILD
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* FORCE_CPP_BUILD */
-#endif /* SKP_SILK_MAIN_FIX_H */
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_MAIN_FIX_H
+#define SKP_SILK_MAIN_FIX_H
+
+#include &lt;stdlib.h&gt;
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_structs_FIX.h&quot;
+#include &quot;SKP_Silk_main.h&quot;
+#include &quot;SKP_Silk_define_FIX.h&quot;
+#include &quot;SKP_Silk_PLC.h&quot;
+#define TIC(TAG_NAME)
+#define TOC(TAG_NAME)
+
+#ifndef FORCE_CPP_BUILD
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+#endif
+
+/*********************/
+/* Encoder Functions */
+/*********************/
+
+/* Initializes the Silk encoder state */
+SKP_int SKP_Silk_init_encoder_FIX(
+    SKP_Silk_encoder_state_FIX  *psEnc              /* I/O  Pointer to Silk FIX encoder state           */
+);
+
+/* Control the Silk encoder */
+SKP_int SKP_Silk_control_encoder_FIX( 
+    SKP_Silk_encoder_state_FIX  *psEnc,             /* I/O  Pointer to Silk FIX encoder state               */
+    const SKP_int               API_fs_kHz,         /* I    External (API) sampling rate (kHz)              */
+    const SKP_int               PacketSize_ms,      /* I    Packet length (ms)                              */
+    SKP_int32                   TargetRate_bps,     /* I    Target max bitrate (bps) (used if SNR_dB == 0)  */
+    const SKP_int               PacketLoss_perc,    /* I    Packet loss rate (in percent)                   */
+    const SKP_int               INBandFec_enabled,  /* I    Enable (1) / disable (0) inband FEC             */
+    const SKP_int               DTX_enabled,        /* I    Enable / disable DTX                            */
+    const SKP_int               InputFramesize_ms,  /* I    Inputframe in ms                                */
+    const SKP_int               Complexity          /* I    Complexity (0-&gt;low; 1-&gt;medium; 2-&gt;high)         */
+);
+
+/* Encoder main function */
+SKP_int SKP_Silk_encode_frame_FIX( 
+    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Pointer to Silk FIX encoder state           */
+    SKP_uint8                       *pCode,             /* O    Pointer to payload                          */
+    SKP_int16                       *pnBytesOut,        /* I/O  Pointer to number of payload bytes;         */
+                                                        /*      input: max length; output: used             */
+    const SKP_int16                 *pIn                /* I    Pointer to input speech frame               */
+);
+
+/* Low BitRate Redundancy encoding functionality. Reuse all parameters but encode with lower bitrate */
+void SKP_Silk_LBRR_encode_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Pointer to Silk FIX encoder state           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Pointer to Silk FIX encoder control struct  */
+    SKP_uint8                       *pCode,         /* O    Pointer to payload                          */
+    SKP_int16                       *pnBytesOut,    /* I/O  Pointer to number of payload bytes          */
+    SKP_int16                       xfw[]           /* I    Input signal                                */
+);
+
+/* High-pass filter with cutoff frequency adaptation based on pitch lag statistics */
+void SKP_Silk_HP_variable_cutoff_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control                             */
+    SKP_int16                       *out,           /* O    high-pass filtered output signal            */
+    const SKP_int16                 *in             /* I    input signal                                */
+);
+
+/****************/
+/* Prefiltering */
+/****************/
+void SKP_Silk_prefilter_FIX(
+    SKP_Silk_encoder_state_FIX          *psEnc,         /* I/O  Encoder state                               */
+    const SKP_Silk_encoder_control_FIX  *psEncCtrl,     /* I    Encoder control                             */
+    SKP_int16                           xw[],           /* O    Weighted signal                             */
+    const SKP_int16                     x[]             /* I    Speech signal                               */
+);
+
+/**************************************************************/
+/* Compute noise shaping coefficients and initial gain values */
+/**************************************************************/
+void SKP_Silk_noise_shape_analysis_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control                             */
+    const SKP_int16                 *pitch_res,     /* I    LPC residual from pitch analysis            */
+    const SKP_int16                 *x              /* I    Input signal [ 2 * frame_length + la_shape ]*/
+);
+
+/* Processing of gains */
+void SKP_Silk_process_gains_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  Encoder control                             */
+);
+
+
+/* Control low bitrate redundancy usage */
+void SKP_Silk_LBRR_ctrl_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  encoder control                             */
+);
+
+/* Calculation of LTP state scaling */
+void SKP_Silk_LTP_scale_ctrl_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  encoder control                             */
+);
+
+/**********************************************/
+/* Prediction Analysis                        */
+/**********************************************/
+
+/* Find pitch lags */
+void SKP_Silk_find_pitch_lags_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
+    SKP_int16                       res[],          /* O    residual                                    */
+    const SKP_int16                 x[]             /* I    Speech signal                               */
+);
+
+void SKP_Silk_find_pred_coefs_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  encoder control                             */
+    const SKP_int16                 res_pitch[]     /* I    Residual from pitch analysis                */
+);
+
+void SKP_Silk_find_LPC_FIX(
+    SKP_int             NLSF_Q15[],             /* O    LSFs                                                                        */
+    SKP_int             *interpIndex,           /* O    LSF interpolation index, only used for LSF interpolation                    */
+    const SKP_int       prev_NLSFq_Q15[],       /* I    previous LSFs, only used for LSF interpolation                              */
+    const SKP_int       useInterpolatedLSFs,    /* I    Flag                                                                        */
+    const SKP_int       LPC_order,              /* I    LPC order                                                                   */
+    const SKP_int16     x[],                    /* I    Input signal                                                                */
+    const SKP_int       subfr_length            /* I    Input signal subframe length including preceeding samples                   */
+);
+
+void SKP_Silk_LTP_analysis_filter_FIX(
+    SKP_int16       *LTP_res,                           /* O:   LTP residual signal of length NB_SUBFR * ( pre_length + subfr_length )  */
+    const SKP_int16 *x,                                 /* I:   Pointer to input signal with at least max( pitchL ) preceeding samples  */
+    const SKP_int16 LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ],/* I:   LTP_ORDER LTP coefficients for each NB_SUBFR subframe                   */
+    const SKP_int   pitchL[ NB_SUBFR ],                 /* I:   Pitch lag, one for each subframe                                        */
+    const SKP_int32 invGains_Qxx[ NB_SUBFR ],           /* I:   Inverse quantization gains, one for each subframe                       */
+    const SKP_int   Qxx,                                /* I:   Inverse quantization gains Q domain                                     */
+    const SKP_int   subfr_length,                       /* I:   Length of each subframe                                                 */
+    const SKP_int   pre_length                          /* I:   Length of the preceeding samples starting at &amp;x[0] for each subframe    */
+);
+
+/* Finds LTP vector from correlations */
+void SKP_Silk_find_LTP_FIX(
+    SKP_int16           b_Q14[ NB_SUBFR * LTP_ORDER ],              /* O    LTP coefs                                                   */
+    SKP_int32           WLTP[ NB_SUBFR * LTP_ORDER * LTP_ORDER ],   /* O    Weight for LTP quantization                                 */
+    SKP_int             *LTPredCodGain_Q7,                          /* O    LTP coding gain                                             */
+    const SKP_int16     r_first[],                                  /* I    residual signal after LPC signal + state for first 10 ms    */
+    const SKP_int16     r_last[],                                   /* I    residual signal after LPC signal + state for last 10 ms     */
+    const SKP_int       lag[ NB_SUBFR ],                            /* I    LTP lags                                                    */
+    const SKP_int32     Wght_Q15[ NB_SUBFR ],                       /* I    weights                                                     */
+    const SKP_int       subfr_length,                               /* I    subframe length                                             */
+    const SKP_int       mem_offset,                                 /* I    number of samples in LTP memory                             */
+    SKP_int             corr_rshifts[ NB_SUBFR ]                    /* O    right shifts applied to correlations                        */
+);
+
+/* LTP tap quantizer */
+void SKP_Silk_quant_LTP_gains_FIX(
+    SKP_int16               B_Q14[],                /* I/O  (un)quantized LTP gains     */
+    SKP_int                 cbk_index[],            /* O    Codebook Index              */
+    SKP_int                 *periodicity_index,     /* O    Periodicity Index           */
+    const SKP_int32         W_Q18[],                /* I    Error Weights in Q18        */
+    SKP_int                 mu_Q8,                  /* I    Mu value (R/D tradeoff)     */
+    SKP_int                 lowComplexity           /* I    Flag for low complexity     */
+);
+
+/******************/
+/* NLSF Quantizer */
+/******************/
+
+/* Limit, stabilize, convert and quantize NLSFs.    */ 
+void SKP_Silk_process_NLSFs_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,     /* I/O  encoder state                               */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl, /* I/O  encoder control                             */
+    SKP_int                         *pNLSF_Q15  /* I/O  Normalized LSFs (quant out) (0 - (2^15-1))  */
+);
+
+/* LSF vector encoder */
+void SKP_Silk_NLSF_MSVQ_encode_FIX(
+          SKP_int                   *NLSFIndices,           /* O    Codebook path vector [ CB_STAGES ]      */
+          SKP_int                   *pNLSF_Q15,             /* I/O  Quantized NLSF vector [ LPC_ORDER ]     */
+    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB,             /* I    Codebook object                         */
+    const SKP_int                   *pNLSF_q_Q15_prev,      /* I    Prev. quantized NLSF vector [LPC_ORDER] */
+    const SKP_int                   *pW_Q6,                 /* I    NLSF weight vector [ LPC_ORDER ]        */
+    const SKP_int                   NLSF_mu_Q15,            /* I    Rate weight for the RD optimization     */
+    const SKP_int                   NLSF_mu_fluc_red_Q16,   /* I    Fluctuation reduction error weight      */
+    const SKP_int                   NLSF_MSVQ_Survivors,    /* I    Max survivors from each stage           */
+    const SKP_int                   LPC_order,              /* I    LPC order                               */
+    const SKP_int                   deactivate_fluc_red     /* I    Deactivate fluctuation reduction        */
+);
+
+/* Rate-Distortion calculations for multiple input data vectors */
+void SKP_Silk_NLSF_VQ_rate_distortion_FIX(
+    SKP_int32                       *pRD_Q20,           /* O    Rate-distortion values [psNLSF_CBS-&gt;nVectors*N] */
+    const SKP_Silk_NLSF_CBS         *psNLSF_CBS,        /* I    NLSF codebook stage struct                      */
+    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized                   */
+    const SKP_int                   *w_Q6,              /* I    Weight vector                                   */
+    const SKP_int32                 *rate_acc_Q5,       /* I    Accumulated rates from previous stage           */
+    const SKP_int                   mu_Q15,             /* I    Weight between weighted error and rate          */
+    const SKP_int                   N,                  /* I    Number of input vectors to be quantized         */
+    const SKP_int                   LPC_order           /* I    LPC order                                       */
+);
+
+/* Compute weighted quantization errors for an LPC_order element input vector, over one codebook stage */
+void SKP_Silk_NLSF_VQ_sum_error_FIX(
+    SKP_int32                       *err_Q20,           /* O    Weighted quantization errors  [N*K]         */
+    const SKP_int                   *in_Q15,            /* I    Input vectors to be quantized [N*LPC_order] */
+    const SKP_int                   *w_Q6,              /* I    Weighting vectors             [N*LPC_order] */
+    const SKP_int16                 *pCB_Q15,           /* I    Codebook vectors              [K*LPC_order] */
+    const SKP_int                   N,                  /* I    Number of input vectors                     */
+    const SKP_int                   K,                  /* I    Number of codebook vectors                  */
+    const SKP_int                   LPC_order           /* I    Number of LPCs                              */
+);
+
+/* Entropy constrained MATRIX-weighted VQ, for a single input data vector */
+void SKP_Silk_VQ_WMat_EC_FIX(
+    SKP_int                         *ind,               /* O    index of best codebook vector               */
+    SKP_int32                       *rate_dist_Q14,     /* O    best weighted quantization error + mu * rate*/
+    const SKP_int16                 *in_Q14,            /* I    input vector to be quantized                */
+    const SKP_int32                 *W_Q18,             /* I    weighting matrix                            */
+    const SKP_int16                 *cb_Q14,            /* I    codebook                                    */
+    const SKP_int16                 *cl_Q6,             /* I    code length for each codebook vector        */
+    const SKP_int                   mu_Q8,              /* I    tradeoff between weighted error and rate    */
+    SKP_int                         L                   /* I    number of vectors in codebook               */
+);
+
+/******************/
+/* Linear Algebra */
+/******************/
+
+/* Calculates correlation matrix X'*X */
+void SKP_Silk_corrMatrix_FIX(
+    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
+    const SKP_int                   L,          /* I    Length of vectors                                   */
+    const SKP_int                   order,      /* I    Max lag for correlation                             */
+    SKP_int32                       *XX,        /* O    Pointer to X'*X correlation matrix [ order x order ]*/
+    SKP_int                         *rshifts    /* I/O  Right shifts of correlations                        */
+);
+
+/* Calculates correlation vector X'*t */
+void SKP_Silk_corrVector_FIX(
+    const SKP_int16                 *x,         /* I    x vector [L + order - 1] used to form data matrix X */
+    const SKP_int16                 *t,         /* I    target vector [L]                                   */
+    const SKP_int                   L,          /* I    Length of vectors                                   */
+    const SKP_int                   order,      /* I    Max lag for correlation                             */
+    SKP_int32                       *Xt,        /* O    Pointer to X'*t correlation vector [order]          */
+    const SKP_int                   rshifts     /* I    Right shifts of correlations                        */
+);
+
+/* Add noise to matrix diagonal */
+void SKP_Silk_regularize_correlations_FIX(
+    SKP_int32                       *XX,                /* I/O  Correlation matrices                        */
+    SKP_int32                       *xx,                /* I/O  Correlation values                          */
+    SKP_int32                       noise,              /* I    Noise to add                                */
+    SKP_int                         D                   /* I    Dimension of XX                             */
+);
+
+/* Solves Ax = b, assuming A is symmetric */
+void SKP_Silk_solve_LDL_FIX(
+    SKP_int32                       *A,                 /* I    Pointer to symetric square matrix A         */
+    SKP_int                         M,                  /* I    Size of matrix                              */
+    const SKP_int32                 *b,                 /* I    Pointer to b vector                         */
+    SKP_int32                       *x_Q16              /* O    Pointer to x solution vector                */
+);
+
+/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */
+SKP_int32 SKP_Silk_residual_energy16_covar_FIX(
+    const SKP_int16                 *c,                 /* I    Prediction vector                           */
+    const SKP_int32                 *wXX,               /* I    Correlation matrix                          */
+    const SKP_int32                 *wXx,               /* I    Correlation vector                          */
+    SKP_int32                       wxx,                /* I    Signal energy                               */
+    SKP_int                         D,                  /* I    Dimension                                   */
+    SKP_int                         cQ                  /* I    Q value for c vector 0 - 15                 */
+);
+
+/* Calculates residual energies of input subframes where all subframes have LPC_order   */
+/* of preceeding samples                                                                */
+void SKP_Silk_residual_energy_FIX(
+          SKP_int32 nrgs[ NB_SUBFR ],           /* O    Residual energy per subframe    */
+          SKP_int   nrgsQ[ NB_SUBFR ],          /* O    Q value per subframe            */
+    const SKP_int16 x[],                        /* I    Input signal                    */
+    const SKP_int16 a_Q12[ 2 ][ MAX_LPC_ORDER ],/* I    AR coefs for each frame half    */
+    const SKP_int32 gains_Qx[ NB_SUBFR ],       /* I    Quantization gains in Qx        */
+    const SKP_int   Qx,                         /* I    Quantization gains Q value      */
+    const SKP_int   subfr_length,               /* I    Subframe length                 */
+    const SKP_int   LPC_order                   /* I    LPC order                       */
+);
+
+#ifndef FORCE_CPP_BUILD
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* FORCE_CPP_BUILD */
+#endif /* SKP_SILK_MAIN_FIX_H */
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_noise_shape_analysis_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,379 +1,338 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-
-
-
-
-
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-#include &quot;SKP_Silk_perceptual_parameters_FIX.h&quot;
-
-
-/**************************************************************/
-/* Compute noise shaping coefficients and initial gain values */
-/**************************************************************/
-void SKP_Silk_noise_shape_analysis_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state FIX                           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control FIX                         */
-    const SKP_int16                 *pitch_res,     /* I    LPC residual from pitch analysis            */
-    const SKP_int16                 *x              /* I    Input signal [ 2 * frame_length + la_shape ]*/
-)
-{
-    SKP_Silk_shape_state_FIX *psShapeSt = &amp;psEnc-&gt;sShape;
-    SKP_int     k, nSamples, lz, Qnrg, b_Q14, scale = 0, sz;
-    SKP_int32   SNR_adj_dB_Q7, HarmBoost_Q16, HarmShapeGain_Q16, Tilt_Q16, tmp32;
-    SKP_int32   nrg, pre_nrg_Q30, log_energy_Q7, log_energy_prev_Q7, energy_variation_Q7;
-    SKP_int32   delta_Q16, BWExp1_Q16, BWExp2_Q16, gain_mult_Q16, gain_add_Q16, strength_Q16, b_Q8;
-    SKP_int32   auto_corr[     SHAPE_LPC_ORDER_MAX + 1 ];
-    SKP_int32   refl_coef_Q16[ SHAPE_LPC_ORDER_MAX ];
-    SKP_int32   AR_Q24[        SHAPE_LPC_ORDER_MAX ];
-    SKP_int16   x_windowed[    SHAPE_LPC_WIN_MAX ];
-    const SKP_int16 *x_ptr, *pitch_res_ptr;
-
-    SKP_int32   sqrt_nrg[ NB_SUBFR ], Qnrg_vec[ NB_SUBFR ];
-
-    /* Point to start of first LPC analysis block */
-    x_ptr = x + psEnc-&gt;sCmn.la_shape - SKP_SMULBB( SHAPE_LPC_WIN_MS, psEnc-&gt;sCmn.fs_kHz ) + psEnc-&gt;sCmn.frame_length / NB_SUBFR;
-
-    /****************/
-    /* CONTROL SNR  */
-
-
-
-
-
-    /****************/
-    /* Reduce SNR_dB values if recent bitstream has exceeded TargetRate */
-    psEncCtrl-&gt;current_SNR_dB_Q7 = psEnc-&gt;SNR_dB_Q7 - SKP_SMULWB( SKP_LSHIFT( (SKP_int32)psEnc-&gt;BufferedInChannel_ms, 7 ), 3277 );
-
-    /* Reduce SNR_dB if inband FEC used */
-    if( psEnc-&gt;speech_activity_Q8 &gt; LBRR_SPEECH_ACTIVITY_THRES_Q8 ) {
-        psEncCtrl-&gt;current_SNR_dB_Q7 -= SKP_RSHIFT( psEnc-&gt;inBandFEC_SNR_comp_Q8, 1 );
-    }
-
-    /****************/
-    /* GAIN CONTROL */
-    /****************/
-    /* Input quality is the average of the quality in the lowest two VAD bands */
-    psEncCtrl-&gt;input_quality_Q14 = (SKP_int)SKP_RSHIFT( (SKP_int32)psEncCtrl-&gt;input_quality_bands_Q15[ 0 ]
-        + psEncCtrl-&gt;input_quality_bands_Q15[ 1 ], 2 );
-    /* Coding quality level, between 0.0_Q0 and 1.0_Q0, but in Q14 */
-    psEncCtrl-&gt;coding_quality_Q14 = SKP_RSHIFT( SKP_Silk_sigm_Q15( SKP_RSHIFT_ROUND( psEncCtrl-&gt;current_SNR_dB_Q7 - ( 18 &lt;&lt; 7 ), 4 ) ), 1 );
-
-    /* Reduce coding SNR during low speech activity */
-    b_Q8 = ( 1 &lt;&lt; 8 ) - psEnc-&gt;speech_activity_Q8;
-    b_Q8 = SKP_SMULWB( SKP_LSHIFT( b_Q8, 8 ), b_Q8 );
-    SNR_adj_dB_Q7 = SKP_SMLAWB( psEncCtrl-&gt;current_SNR_dB_Q7,
-        SKP_SMULBB( -BG_SNR_DECR_dB_Q7 &gt;&gt; ( 4 + 1 ), b_Q8 ),                                            // Q11
-        SKP_SMULWB( ( 1 &lt;&lt; 14 ) + psEncCtrl-&gt;input_quality_Q14, psEncCtrl-&gt;coding_quality_Q14 ) );      // Q12
-
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /* Reduce gains for periodic signals */
-        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7, HARM_SNR_INCR_dB_Q7 &lt;&lt; 1, psEnc-&gt;LTPCorr_Q15 );
-    } else {
-        /* For unvoiced signals and low-quality input, adjust the quality slower than SNR_dB setting */
-        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7,
-            SKP_SMLAWB( 6 &lt;&lt; ( 7 + 2 ), -104856, psEncCtrl-&gt;current_SNR_dB_Q7 ),    //-104856_Q18 = -0.4_Q0, Q9
-            ( 1 &lt;&lt; 14 ) - psEncCtrl-&gt;input_quality_Q14 );                           // Q14
-    }
-
-    /*************************/
-    /* SPARSENESS PROCESSING */
-    /*************************/
-    /* Set quantizer offset */
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /* Initally set to 0; may be overruled in process_gains(..) */
-        psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
-        psEncCtrl-&gt;sparseness_Q8 = 0;
-    } else {
-        /* Sparseness measure, based on relative fluctuations of energy per 2 milliseconds */
-        nSamples = SKP_LSHIFT( psEnc-&gt;sCmn.fs_kHz, 1 );
-        energy_variation_Q7 = 0;
-        log_energy_prev_Q7  = 0;
-
-
-
-
-
-        pitch_res_ptr = pitch_res;
-        for( k = 0; k &lt; FRAME_LENGTH_MS / 2; k++ ) {
-            SKP_Silk_sum_sqr_shift( &amp;nrg, &amp;scale, pitch_res_ptr, nSamples );
-            nrg += SKP_RSHIFT( nSamples, scale );           // Q(-scale)
-
-            log_energy_Q7 = SKP_Silk_lin2log( nrg );
-            if( k &gt; 0 ) {
-                energy_variation_Q7 += SKP_abs( log_energy_Q7 - log_energy_prev_Q7 );
-            }
-            log_energy_prev_Q7 = log_energy_Q7;
-            pitch_res_ptr += nSamples;
-        }
-
-        psEncCtrl-&gt;sparseness_Q8 = SKP_RSHIFT( SKP_Silk_sigm_Q15( SKP_SMULWB( energy_variation_Q7 - ( 5 &lt;&lt; 7 ), 6554 ) ), 7 );    // 6554_Q16 = 0.1_Q0
-
-        /* Set quantization offset depending on sparseness measure */
-        if( psEncCtrl-&gt;sparseness_Q8 &gt; SPARSENESS_THRESHOLD_QNT_OFFSET_Q8 ) {
-            psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
-        } else {
-            psEncCtrl-&gt;sCmn.QuantOffsetType = 1;
-        }
-
-        /* Increase coding SNR for sparse signals */
-        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7, SPARSE_SNR_INCR_dB_Q7 &lt;&lt; 8, psEncCtrl-&gt;sparseness_Q8 - ( 1 &lt;&lt; 7 ) );
-    }
-
-    /*******************************/
-    /* Control bandwidth expansion */
-    /*******************************/
-    delta_Q16  = SKP_SMULWB( ( 1 &lt;&lt; 16 ) - SKP_SMULBB( 3, psEncCtrl-&gt;coding_quality_Q14 ), LOW_RATE_BANDWIDTH_EXPANSION_DELTA_Q16 );
-    BWExp1_Q16 = BANDWIDTH_EXPANSION_Q16 - delta_Q16;
-    BWExp2_Q16 = BANDWIDTH_EXPANSION_Q16 + delta_Q16;
-    if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
-        /* Less bandwidth expansion for super wideband */
-        BWExp1_Q16 = ( 1 &lt;&lt; 16 ) - SKP_SMULWB( SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16, ( 1 &lt;&lt; 16 ) - BWExp1_Q16 );
-        BWExp2_Q16 = ( 1 &lt;&lt; 16 ) - SKP_SMULWB( SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16, ( 1 &lt;&lt; 16 ) - BWExp2_Q16 );
-    }
-    /* BWExp1 will be applied after BWExp2, so make it relative */
-    BWExp1_Q16 = SKP_DIV32_16( SKP_LSHIFT( BWExp1_Q16, 14 ), SKP_RSHIFT( BWExp2_Q16, 2 ) );
-
-    /********************************************/
-    /* Compute noise shaping AR coefs and gains */
-    /********************************************/
-    sz = (SKP_int)SKP_SMULBB( SHAPE_LPC_WIN_MS, psEnc-&gt;sCmn.fs_kHz );
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* Apply window */
-        SKP_Silk_apply_sine_window( x_windowed, x_ptr, 0, SHAPE_LPC_WIN_MS * psEnc-&gt;sCmn.fs_kHz );
-
-
-
-
-
-
-        /* Update pointer: next LPC analysis block */
-        x_ptr += psEnc-&gt;sCmn.frame_length / NB_SUBFR;
-
-        /* Calculate auto correlation */
-        SKP_Silk_autocorr( auto_corr, &amp;scale, x_windowed, sz, psEnc-&gt;sCmn.shapingLPCOrder + 1 );
-
-        /* Add white noise, as a fraction of energy */
-        auto_corr[0] = SKP_ADD32( auto_corr[0], SKP_max_32( SKP_SMULWB( SKP_RSHIFT( auto_corr[ 0 ], 4 ), SHAPE_WHITE_NOISE_FRACTION_Q20 ), 1 ) );
-
-        /* Calculate the reflection coefficients using schur */
-        nrg = SKP_Silk_schur64( refl_coef_Q16, auto_corr, psEnc-&gt;sCmn.shapingLPCOrder );
-
-        /* Convert reflection coefficients to prediction coefficients */
-        SKP_Silk_k2a_Q16( AR_Q24, refl_coef_Q16, psEnc-&gt;sCmn.shapingLPCOrder );
-
-        /* Bandwidth expansion for synthesis filter shaping */
-        SKP_Silk_bwexpander_32( AR_Q24, psEnc-&gt;sCmn.shapingLPCOrder, BWExp2_Q16 );
-
-        /* Make sure to fit in Q13 SKP_int16 */
-        SKP_Silk_LPC_fit( &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ], AR_Q24, 13, psEnc-&gt;sCmn.shapingLPCOrder );
-
-        /* Compute noise shaping filter coefficients */
-        SKP_memcpy(
-            &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ],
-            &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ],
-            psEnc-&gt;sCmn.shapingLPCOrder * sizeof( SKP_int16 ) );
-
-        /* Bandwidth expansion for analysis filter shaping */
-        SKP_assert( BWExp1_Q16 &lt;= ( 1 &lt;&lt; 16 ) ); // If ever breaking, use LPC_stabilize() in these cases to stay within range
-        SKP_Silk_bwexpander( &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder, BWExp1_Q16 );
-
-        /* Increase residual energy */
-        nrg = SKP_SMLAWB( nrg, SKP_RSHIFT( auto_corr[ 0 ], 8 ), SHAPE_MIN_ENERGY_RATIO_Q24 );
-
-        Qnrg = -scale;          // range: -12...30
-        SKP_assert( Qnrg &gt;= -12 );
-        SKP_assert( Qnrg &lt;=  30 );
-
-        /* Make sure that Qnrg is an even number */
-        if( Qnrg &amp; 1 ) {
-            Qnrg -= 1;
-            nrg &gt;&gt;= 1;
-        }
-
-        tmp32 = SKP_Silk_SQRT_APPROX( nrg );
-        Qnrg &gt;&gt;= 1;             // range: -6...15
-
-        sqrt_nrg[ k ] = tmp32;
-
-
-
-
-
-        Qnrg_vec[ k ] = Qnrg;
-
-        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( tmp32, 16 - Qnrg );
-        /* Ratio of prediction gains, in energy domain */
-        SKP_Silk_LPC_inverse_pred_gain_Q13( &amp;pre_nrg_Q30, &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder );
-        SKP_Silk_LPC_inverse_pred_gain_Q13( &amp;nrg,         &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder );
-
-        lz = SKP_min_32( SKP_Silk_CLZ32( pre_nrg_Q30 ) - 1, 19 );
-        pre_nrg_Q30 = SKP_DIV32( SKP_LSHIFT( pre_nrg_Q30, lz ), SKP_RSHIFT( nrg, 20 - lz ) + 1 ); // Q20
-        pre_nrg_Q30 = SKP_RSHIFT( SKP_LSHIFT_SAT32( pre_nrg_Q30, 9 ), 1 );  /* Q28 */
-        psEncCtrl-&gt;GainsPre_Q14[ k ] = (SKP_int)SKP_Silk_SQRT_APPROX( pre_nrg_Q30 );
-    }
-
-    /*****************/
-    /* Gain tweaking */
-    /*****************/
-    /* Increase gains during low speech activity and put lower limit on gains */
-    gain_mult_Q16 = SKP_Silk_log2lin( -SKP_SMLAWB( -16 &lt;&lt; 7, SNR_adj_dB_Q7,           10486 ) ); // 10486_Q16 = 0.16_Q0
-    gain_add_Q16  = SKP_Silk_log2lin(  SKP_SMLAWB(  16 &lt;&lt; 7, NOISE_FLOOR_dB_Q7,       10486 ) ); // 10486_Q16 = 0.16_Q0
-    tmp32         = SKP_Silk_log2lin(  SKP_SMLAWB(  16 &lt;&lt; 7, RELATIVE_MIN_GAIN_dB_Q7, 10486 ) ); // 10486_Q16 = 0.16_Q0
-    tmp32 = SKP_SMULWW( psEnc-&gt;avgGain_Q16, tmp32 );
-    gain_add_Q16 = SKP_ADD_SAT32( gain_add_Q16, tmp32 );
-    SKP_assert( gain_mult_Q16 &gt;= 0 );
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_SMULWW( psEncCtrl-&gt;Gains_Q16[ k ], gain_mult_Q16 );
-        SKP_assert( psEncCtrl-&gt;Gains_Q16[ k ] &gt;= 0 );
-    }
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_ADD_POS_SAT32( psEncCtrl-&gt;Gains_Q16[ k ], gain_add_Q16 );
-        psEnc-&gt;avgGain_Q16 = SKP_ADD_SAT32(
-            psEnc-&gt;avgGain_Q16,
-            SKP_SMULWB(
-                psEncCtrl-&gt;Gains_Q16[ k ] - psEnc-&gt;avgGain_Q16,
-                SKP_RSHIFT_ROUND( SKP_SMULBB( psEnc-&gt;speech_activity_Q8, GAIN_SMOOTHING_COEF_Q10 ), 2 )
-            ) );
-    }
-
-    /************************************************/
-    /* Decrease level during fricatives (de-essing) */
-    /************************************************/
-    gain_mult_Q16 = ( 1 &lt;&lt; 16 ) + SKP_RSHIFT_ROUND( SKP_MLA( INPUT_TILT_Q26, psEncCtrl-&gt;coding_quality_Q14, HIGH_RATE_INPUT_TILT_Q12 ), 10 );
-
-    if( psEncCtrl-&gt;input_tilt_Q15 &lt;= 0 &amp;&amp; psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_UNVOICED ) {
-        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
-            SKP_int32 essStrength_Q15 = SKP_SMULWW( -psEncCtrl-&gt;input_tilt_Q15,
-                SKP_SMULBB( psEnc-&gt;speech_activity_Q8, ( 1 &lt;&lt; 8 ) - psEncCtrl-&gt;sparseness_Q8 ) );
-
-
-
-
-
-            tmp32 = SKP_Silk_log2lin( ( 16 &lt;&lt; 7 ) - SKP_SMULWB( essStrength_Q15,
-                SKP_SMULWB( DE_ESSER_COEF_SWB_dB_Q7, 20972 ) ) ); // 20972_Q17 = 0.16_Q0
-            gain_mult_Q16 = SKP_SMULWW( gain_mult_Q16, tmp32 );
-        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
-            SKP_int32 essStrength_Q15 = SKP_SMULWW(-psEncCtrl-&gt;input_tilt_Q15,
-                SKP_SMULBB( psEnc-&gt;speech_activity_Q8, ( 1 &lt;&lt; 8 ) - psEncCtrl-&gt;sparseness_Q8 ));
-            tmp32 = SKP_Silk_log2lin( ( 16 &lt;&lt; 7 ) - SKP_SMULWB( essStrength_Q15,
-                SKP_SMULWB( DE_ESSER_COEF_WB_dB_Q7, 20972 ) ) ); // 20972_Q17 = 0.16_Q0
-            gain_mult_Q16 = SKP_SMULWW( gain_mult_Q16, tmp32 );
-        } else {
-            SKP_assert( psEnc-&gt;sCmn.fs_kHz == 12 || psEnc-&gt;sCmn.fs_kHz == 8 );
-        }
-    }
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        psEncCtrl-&gt;GainsPre_Q14[ k ] = SKP_SMULWB( gain_mult_Q16, psEncCtrl-&gt;GainsPre_Q14[ k ] );
-    }
-
-    /************************************************/
-    /* Control low-frequency shaping and noise tilt */
-    /************************************************/
-    /* Less low frequency shaping for noisy inputs */
-    strength_Q16 = SKP_MUL( LOW_FREQ_SHAPING_Q0, ( 1 &lt;&lt; 16 ) + SKP_SMULBB( LOW_QUALITY_LOW_FREQ_SHAPING_DECR_Q1, psEncCtrl-&gt;input_quality_bands_Q15[ 0 ] - ( 1 &lt;&lt; 15 ) ) );
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /* Reduce low frequencies quantization noise for periodic signals, depending on pitch lag */
-        /*f = 400; freqz([1, -0.98 + 2e-4 * f], [1, -0.97 + 7e-4 * f], 2^12, Fs); axis([0, 1000, -10, 1])*/
-        SKP_int fs_kHz_inv = SKP_DIV32_16( 3277, psEnc-&gt;sCmn.fs_kHz );      // 0.2_Q0 = 3277_Q14
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            b_Q14 = fs_kHz_inv + SKP_DIV32_16( ( 3 &lt;&lt; 14 ), psEncCtrl-&gt;sCmn.pitchL[ k ] );
-            /* Pack two coefficients in one int32 */
-            psEncCtrl-&gt;LF_shp_Q14[ k ]  = SKP_LSHIFT( ( 1 &lt;&lt; 14 ) - b_Q14 - SKP_SMULWB( strength_Q16, b_Q14 ), 16 );
-            psEncCtrl-&gt;LF_shp_Q14[ k ] |= (SKP_uint16)( b_Q14 - ( 1 &lt;&lt; 14 ) );
-        }
-        SKP_assert( HARM_HP_NOISE_COEF_Q24 &lt; ( 1 &lt;&lt; 23 ) ); // Guarantees that second argument to SMULWB() is within range of an SKP_int16
-        Tilt_Q16 = - HP_NOISE_COEF_Q16 -
-            SKP_SMULWB( ( 1 &lt;&lt; 16 ) - HP_NOISE_COEF_Q16, SKP_SMULWB( HARM_HP_NOISE_COEF_Q24, psEnc-&gt;speech_activity_Q8 ) );
-    } else {
-        b_Q14 = SKP_DIV32_16( 21299, psEnc-&gt;sCmn.fs_kHz ); // 1.3_Q0 = 21299_Q14
-        /* Pack two coefficients in one int32 */
-        psEncCtrl-&gt;LF_shp_Q14[ 0 ]  = SKP_LSHIFT( ( 1 &lt;&lt; 14 ) - b_Q14 - SKP_SMULWB( strength_Q16, SKP_SMULWB( 39322, b_Q14 ) ), 16 ); // 0.6_Q0 = 39322_Q16
-        psEncCtrl-&gt;LF_shp_Q14[ 0 ] |= (SKP_uint16)( b_Q14 - ( 1 &lt;&lt; 14 ) );
-        for( k = 1; k &lt; NB_SUBFR; k++ ) {
-            psEncCtrl-&gt;LF_shp_Q14[ k ] = psEncCtrl-&gt;LF_shp_Q14[ k - 1 ];
-        }
-        Tilt_Q16 = -HP_NOISE_COEF_Q16;
-    }
-
-    /****************************/
-
-
-
-
-
-    /* HARMONIC SHAPING CONTROL */
-    /****************************/
-    /* Control boosting of harmonic frequencies */
-    HarmBoost_Q16 = SKP_SMULWB( SKP_SMULWB( ( 1 &lt;&lt; 17 ) - SKP_LSHIFT( psEncCtrl-&gt;coding_quality_Q14, 3 ),
-        psEnc-&gt;LTPCorr_Q15 ), LOW_RATE_HARMONIC_BOOST_Q16 );
-
-    /* More harmonic boost for noisy input signals */
-    HarmBoost_Q16 = SKP_SMLAWB( HarmBoost_Q16,
-        ( 1 &lt;&lt; 16 ) - SKP_LSHIFT( psEncCtrl-&gt;input_quality_Q14, 2 ), LOW_INPUT_QUALITY_HARMONIC_BOOST_Q16 );
-
-    if( USE_HARM_SHAPING &amp;&amp; psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /* More harmonic noise shaping for high bitrates or noisy input */
-        HarmShapeGain_Q16 = SKP_SMLAWB( HARMONIC_SHAPING_Q16,
-                ( 1 &lt;&lt; 16 ) - SKP_SMULWB( ( 1 &lt;&lt; 18 ) - SKP_LSHIFT( psEncCtrl-&gt;coding_quality_Q14, 4 ),
-                psEncCtrl-&gt;input_quality_Q14 ), HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING_Q16 );
-
-        /* Less harmonic noise shaping for less periodic signals */
-        HarmShapeGain_Q16 = SKP_SMULWB( SKP_LSHIFT( HarmShapeGain_Q16, 1 ),
-            SKP_Silk_SQRT_APPROX( SKP_LSHIFT( psEnc-&gt;LTPCorr_Q15, 15 ) ) );
-    } else {
-        HarmShapeGain_Q16 = 0;
-    }
-
-    /*************************/
-    /* Smooth over subframes */
-    /*************************/
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        psShapeSt-&gt;HarmBoost_smth_Q16 =
-            SKP_SMLAWB( psShapeSt-&gt;HarmBoost_smth_Q16,     HarmBoost_Q16     - psShapeSt-&gt;HarmBoost_smth_Q16,     SUBFR_SMTH_COEF_Q16 );
-        psShapeSt-&gt;HarmShapeGain_smth_Q16 =
-            SKP_SMLAWB( psShapeSt-&gt;HarmShapeGain_smth_Q16, HarmShapeGain_Q16 - psShapeSt-&gt;HarmShapeGain_smth_Q16, SUBFR_SMTH_COEF_Q16 );
-        psShapeSt-&gt;Tilt_smth_Q16 =
-            SKP_SMLAWB( psShapeSt-&gt;Tilt_smth_Q16,          Tilt_Q16          - psShapeSt-&gt;Tilt_smth_Q16,          SUBFR_SMTH_COEF_Q16 );
-
-        psEncCtrl-&gt;HarmBoost_Q14[ k ]     = (SKP_int)SKP_RSHIFT_ROUND( psShapeSt-&gt;HarmBoost_smth_Q16,     2 );
-        psEncCtrl-&gt;HarmShapeGain_Q14[ k ] = (SKP_int)SKP_RSHIFT_ROUND( psShapeSt-&gt;HarmShapeGain_smth_Q16, 2 );
-        psEncCtrl-&gt;Tilt_Q14[ k ]          = (SKP_int)SKP_RSHIFT_ROUND( psShapeSt-&gt;Tilt_smth_Q16,          2 );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+#include &quot;SKP_Silk_perceptual_parameters_FIX.h&quot;
+
+
+/**************************************************************/
+/* Compute noise shaping coefficients and initial gain values */
+/**************************************************************/
+void SKP_Silk_noise_shape_analysis_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state FIX                           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,     /* I/O  Encoder control FIX                         */
+    const SKP_int16                 *pitch_res,     /* I    LPC residual from pitch analysis            */
+    const SKP_int16                 *x              /* I    Input signal [ 2 * frame_length + la_shape ]*/
+)
+{
+    SKP_Silk_shape_state_FIX *psShapeSt = &amp;psEnc-&gt;sShape;
+    SKP_int     k, nSamples, lz, Qnrg, b_Q14, scale = 0, sz;
+    SKP_int32   SNR_adj_dB_Q7, HarmBoost_Q16, HarmShapeGain_Q16, Tilt_Q16, tmp32;
+    SKP_int32   nrg, pre_nrg_Q30, log_energy_Q7, log_energy_prev_Q7, energy_variation_Q7;
+    SKP_int32   delta_Q16, BWExp1_Q16, BWExp2_Q16, gain_mult_Q16, gain_add_Q16, strength_Q16, b_Q8;
+    SKP_int32   auto_corr[     SHAPE_LPC_ORDER_MAX + 1 ];
+    SKP_int32   refl_coef_Q16[ SHAPE_LPC_ORDER_MAX ];
+    SKP_int32   AR_Q24[        SHAPE_LPC_ORDER_MAX ];
+    SKP_int16   x_windowed[    SHAPE_LPC_WIN_MAX ];
+    const SKP_int16 *x_ptr, *pitch_res_ptr;
+
+    SKP_int32   sqrt_nrg[ NB_SUBFR ], Qnrg_vec[ NB_SUBFR ];
+
+    /* Point to start of first LPC analysis block */
+    x_ptr = x + psEnc-&gt;sCmn.la_shape - SKP_SMULBB( SHAPE_LPC_WIN_MS, psEnc-&gt;sCmn.fs_kHz ) + psEnc-&gt;sCmn.frame_length / NB_SUBFR;
+
+    /****************/
+    /* CONTROL SNR  */
+    /****************/
+    /* Reduce SNR_dB values if recent bitstream has exceeded TargetRate */
+    psEncCtrl-&gt;current_SNR_dB_Q7 = psEnc-&gt;SNR_dB_Q7 - SKP_SMULWB( SKP_LSHIFT( ( SKP_int32 )psEnc-&gt;BufferedInChannel_ms, 7 ), 3277 );
+
+    /* Reduce SNR_dB if inband FEC used */
+    if( psEnc-&gt;speech_activity_Q8 &gt; LBRR_SPEECH_ACTIVITY_THRES_Q8 ) {
+        psEncCtrl-&gt;current_SNR_dB_Q7 -= SKP_RSHIFT( psEnc-&gt;inBandFEC_SNR_comp_Q8, 1 );
+    }
+
+    /****************/
+    /* GAIN CONTROL */
+    /****************/
+    /* Input quality is the average of the quality in the lowest two VAD bands */
+    psEncCtrl-&gt;input_quality_Q14 = ( SKP_int )SKP_RSHIFT( ( SKP_int32 )psEncCtrl-&gt;input_quality_bands_Q15[ 0 ] 
+        + psEncCtrl-&gt;input_quality_bands_Q15[ 1 ], 2 );
+    /* Coding quality level, between 0.0_Q0 and 1.0_Q0, but in Q14 */
+    psEncCtrl-&gt;coding_quality_Q14 = SKP_RSHIFT( SKP_Silk_sigm_Q15( SKP_RSHIFT_ROUND( psEncCtrl-&gt;current_SNR_dB_Q7 - ( 18 &lt;&lt; 7 ), 4 ) ), 1 );
+
+    /* Reduce coding SNR during low speech activity */
+    b_Q8 = ( 1 &lt;&lt; 8 ) - psEnc-&gt;speech_activity_Q8;
+    b_Q8 = SKP_SMULWB( SKP_LSHIFT( b_Q8, 8 ), b_Q8 );
+    SNR_adj_dB_Q7 = SKP_SMLAWB( psEncCtrl-&gt;current_SNR_dB_Q7,
+        SKP_SMULBB( -BG_SNR_DECR_dB_Q7 &gt;&gt; ( 4 + 1 ), b_Q8 ),                                            // Q11
+        SKP_SMULWB( ( 1 &lt;&lt; 14 ) + psEncCtrl-&gt;input_quality_Q14, psEncCtrl-&gt;coding_quality_Q14 ) );      // Q12
+
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /* Reduce gains for periodic signals */
+        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7, HARM_SNR_INCR_dB_Q7 &lt;&lt; 1, psEnc-&gt;LTPCorr_Q15 );
+    } else { 
+        /* For unvoiced signals and low-quality input, adjust the quality slower than SNR_dB setting */
+        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7, 
+            SKP_SMLAWB( 6 &lt;&lt; ( 7 + 2 ), -104856, psEncCtrl-&gt;current_SNR_dB_Q7 ),    //-104856_Q18 = -0.4_Q0, Q9
+            ( 1 &lt;&lt; 14 ) - psEncCtrl-&gt;input_quality_Q14 );                           // Q14
+    }
+
+    /*************************/
+    /* SPARSENESS PROCESSING */
+    /*************************/
+    /* Set quantizer offset */
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /* Initally set to 0; may be overruled in process_gains(..) */
+        psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
+        psEncCtrl-&gt;sparseness_Q8 = 0;
+    } else {
+        /* Sparseness measure, based on relative fluctuations of energy per 2 milliseconds */
+        nSamples = SKP_LSHIFT( psEnc-&gt;sCmn.fs_kHz, 1 );
+        energy_variation_Q7 = 0;
+        log_energy_prev_Q7  = 0;
+        pitch_res_ptr = pitch_res;
+        for( k = 0; k &lt; FRAME_LENGTH_MS / 2; k++ ) {    
+            SKP_Silk_sum_sqr_shift( &amp;nrg, &amp;scale, pitch_res_ptr, nSamples );
+            nrg += SKP_RSHIFT( nSamples, scale );           // Q(-scale)
+            
+            log_energy_Q7 = SKP_Silk_lin2log( nrg );
+            if( k &gt; 0 ) {
+                energy_variation_Q7 += SKP_abs( log_energy_Q7 - log_energy_prev_Q7 );
+            }
+            log_energy_prev_Q7 = log_energy_Q7;
+            pitch_res_ptr += nSamples;
+        }
+
+        psEncCtrl-&gt;sparseness_Q8 = SKP_RSHIFT( SKP_Silk_sigm_Q15( SKP_SMULWB( energy_variation_Q7 - ( 5 &lt;&lt; 7 ), 6554 ) ), 7 );    // 6554_Q16 = 0.1_Q0
+
+        /* Set quantization offset depending on sparseness measure */
+        if( psEncCtrl-&gt;sparseness_Q8 &gt; SPARSENESS_THRESHOLD_QNT_OFFSET_Q8 ) {
+            psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
+        } else {
+            psEncCtrl-&gt;sCmn.QuantOffsetType = 1;
+        }
+        
+        /* Increase coding SNR for sparse signals */
+        SNR_adj_dB_Q7 = SKP_SMLAWB( SNR_adj_dB_Q7, SPARSE_SNR_INCR_dB_Q7 &lt;&lt; 8, psEncCtrl-&gt;sparseness_Q8 - ( 1 &lt;&lt; 7 ) );
+    }
+
+    /*******************************/
+    /* Control bandwidth expansion */
+    /*******************************/
+    delta_Q16  = SKP_SMULWB( ( 1 &lt;&lt; 16 ) - SKP_SMULBB( 3, psEncCtrl-&gt;coding_quality_Q14 ), LOW_RATE_BANDWIDTH_EXPANSION_DELTA_Q16 );
+    BWExp1_Q16 = BANDWIDTH_EXPANSION_Q16 - delta_Q16;
+    BWExp2_Q16 = BANDWIDTH_EXPANSION_Q16 + delta_Q16;
+    if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
+        /* Less bandwidth expansion for super wideband */
+        BWExp1_Q16 = ( 1 &lt;&lt; 16 ) - SKP_SMULWB( SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16, ( 1 &lt;&lt; 16 ) - BWExp1_Q16 );
+        BWExp2_Q16 = ( 1 &lt;&lt; 16 ) - SKP_SMULWB( SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16, ( 1 &lt;&lt; 16 ) - BWExp2_Q16 );
+    }
+    /* BWExp1 will be applied after BWExp2, so make it relative */
+    BWExp1_Q16 = SKP_DIV32_16( SKP_LSHIFT( BWExp1_Q16, 14 ), SKP_RSHIFT( BWExp2_Q16, 2 ) );
+
+    /********************************************/
+    /* Compute noise shaping AR coefs and gains */
+    /********************************************/
+    sz = ( SKP_int )SKP_SMULBB( SHAPE_LPC_WIN_MS, psEnc-&gt;sCmn.fs_kHz );
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* Apply window */
+        SKP_Silk_apply_sine_window( x_windowed, x_ptr, 0, SHAPE_LPC_WIN_MS * psEnc-&gt;sCmn.fs_kHz );
+
+        /* Update pointer: next LPC analysis block */
+        x_ptr += psEnc-&gt;sCmn.frame_length / NB_SUBFR;
+
+        /* Calculate auto correlation */
+        SKP_Silk_autocorr( auto_corr, &amp;scale, x_windowed, sz, psEnc-&gt;sCmn.shapingLPCOrder + 1 );
+
+        /* Add white noise, as a fraction of energy */
+        auto_corr[0] = SKP_ADD32( auto_corr[0], SKP_max_32( SKP_SMULWB( SKP_RSHIFT( auto_corr[ 0 ], 4 ), SHAPE_WHITE_NOISE_FRACTION_Q20 ), 1 ) ); 
+
+        /* Calculate the reflection coefficients using schur */
+        nrg = SKP_Silk_schur64( refl_coef_Q16, auto_corr, psEnc-&gt;sCmn.shapingLPCOrder );
+
+        /* Convert reflection coefficients to prediction coefficients */
+        SKP_Silk_k2a_Q16( AR_Q24, refl_coef_Q16, psEnc-&gt;sCmn.shapingLPCOrder );
+
+        /* Bandwidth expansion for synthesis filter shaping */
+        SKP_Silk_bwexpander_32( AR_Q24, psEnc-&gt;sCmn.shapingLPCOrder, BWExp2_Q16 );
+
+        /* Make sure to fit in Q13 SKP_int16 */
+        SKP_Silk_LPC_fit( &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ], AR_Q24, 13, psEnc-&gt;sCmn.shapingLPCOrder );
+
+        /* Compute noise shaping filter coefficients */
+        SKP_memcpy(
+            &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ], 
+            &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ], 
+            psEnc-&gt;sCmn.shapingLPCOrder * sizeof( SKP_int16 ) );
+
+        /* Bandwidth expansion for analysis filter shaping */
+        SKP_assert( BWExp1_Q16 &lt;= ( 1 &lt;&lt; 16 ) ); // If ever breaking, use LPC_stabilize() in these cases to stay within range
+        SKP_Silk_bwexpander( &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder, BWExp1_Q16 );
+
+        /* Increase residual energy */
+        nrg = SKP_SMLAWB( nrg, SKP_RSHIFT( auto_corr[ 0 ], 8 ), SHAPE_MIN_ENERGY_RATIO_Q24 );
+
+        Qnrg = -scale;          // range: -12...30
+        SKP_assert( Qnrg &gt;= -12 );
+        SKP_assert( Qnrg &lt;=  30 );
+
+        /* Make sure that Qnrg is an even number */
+        if( Qnrg &amp; 1 ) {
+            Qnrg -= 1;
+            nrg &gt;&gt;= 1;
+        }
+
+        tmp32 = SKP_Silk_SQRT_APPROX( nrg );
+        Qnrg &gt;&gt;= 1;             // range: -6...15
+
+        sqrt_nrg[ k ] = tmp32;
+        Qnrg_vec[ k ] = Qnrg;
+
+        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( tmp32, 16 - Qnrg );
+        /* Ratio of prediction gains, in energy domain */
+        SKP_Silk_LPC_inverse_pred_gain_Q13( &amp;pre_nrg_Q30, &amp;psEncCtrl-&gt;AR2_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder );
+        SKP_Silk_LPC_inverse_pred_gain_Q13( &amp;nrg,         &amp;psEncCtrl-&gt;AR1_Q13[ k * SHAPE_LPC_ORDER_MAX ], psEnc-&gt;sCmn.shapingLPCOrder );
+
+        lz = SKP_min_32( SKP_Silk_CLZ32( pre_nrg_Q30 ) - 1, 19 );
+        pre_nrg_Q30 = SKP_DIV32( SKP_LSHIFT( pre_nrg_Q30, lz ), SKP_RSHIFT( nrg, 20 - lz ) + 1 ); // Q20
+        pre_nrg_Q30 = SKP_RSHIFT( SKP_LSHIFT_SAT32( pre_nrg_Q30, 9 ), 1 );  /* Q28 */
+        psEncCtrl-&gt;GainsPre_Q14[ k ] = ( SKP_int )SKP_Silk_SQRT_APPROX( pre_nrg_Q30 );
+    }
+
+    /*****************/
+    /* Gain tweaking */
+    /*****************/
+    /* Increase gains during low speech activity and put lower limit on gains */
+    gain_mult_Q16 = SKP_Silk_log2lin( -SKP_SMLAWB( -16 &lt;&lt; 7, SNR_adj_dB_Q7,           10486 ) ); // 10486_Q16 = 0.16_Q0
+    gain_add_Q16  = SKP_Silk_log2lin(  SKP_SMLAWB(  16 &lt;&lt; 7, NOISE_FLOOR_dB_Q7,       10486 ) ); // 10486_Q16 = 0.16_Q0
+    tmp32         = SKP_Silk_log2lin(  SKP_SMLAWB(  16 &lt;&lt; 7, RELATIVE_MIN_GAIN_dB_Q7, 10486 ) ); // 10486_Q16 = 0.16_Q0
+    tmp32 = SKP_SMULWW( psEnc-&gt;avgGain_Q16, tmp32 );
+    gain_add_Q16 = SKP_ADD_SAT32( gain_add_Q16, tmp32 );
+    SKP_assert( gain_mult_Q16 &gt;= 0 );
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_SMULWW( psEncCtrl-&gt;Gains_Q16[ k ], gain_mult_Q16 );
+        SKP_assert( psEncCtrl-&gt;Gains_Q16[ k ] &gt;= 0 );
+    }
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        psEncCtrl-&gt;Gains_Q16[ k ] = SKP_ADD_POS_SAT32( psEncCtrl-&gt;Gains_Q16[ k ], gain_add_Q16 );
+        psEnc-&gt;avgGain_Q16 = SKP_ADD_SAT32( 
+            psEnc-&gt;avgGain_Q16, 
+            SKP_SMULWB(
+                psEncCtrl-&gt;Gains_Q16[ k ] - psEnc-&gt;avgGain_Q16, 
+                SKP_RSHIFT_ROUND( SKP_SMULBB( psEnc-&gt;speech_activity_Q8, GAIN_SMOOTHING_COEF_Q10 ), 2 ) 
+            ) );
+    }
+
+    /************************************************/
+    /* Decrease level during fricatives (de-essing) */
+    /************************************************/
+    gain_mult_Q16 = ( 1 &lt;&lt; 16 ) + SKP_RSHIFT_ROUND( SKP_MLA( INPUT_TILT_Q26, psEncCtrl-&gt;coding_quality_Q14, HIGH_RATE_INPUT_TILT_Q12 ), 10 );
+
+    if( psEncCtrl-&gt;input_tilt_Q15 &lt;= 0 &amp;&amp; psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_UNVOICED ) {
+        if( psEnc-&gt;sCmn.fs_kHz == 24 ) {
+            SKP_int32 essStrength_Q15 = SKP_SMULWW( -psEncCtrl-&gt;input_tilt_Q15, 
+                SKP_SMULBB( psEnc-&gt;speech_activity_Q8, ( 1 &lt;&lt; 8 ) - psEncCtrl-&gt;sparseness_Q8 ) );
+            tmp32 = SKP_Silk_log2lin( ( 16 &lt;&lt; 7 ) - SKP_SMULWB( essStrength_Q15, 
+                SKP_SMULWB( DE_ESSER_COEF_SWB_dB_Q7, 20972 ) ) ); // 20972_Q17 = 0.16_Q0
+            gain_mult_Q16 = SKP_SMULWW( gain_mult_Q16, tmp32 );
+        } else if( psEnc-&gt;sCmn.fs_kHz == 16 ) {
+            SKP_int32 essStrength_Q15 = SKP_SMULWW(-psEncCtrl-&gt;input_tilt_Q15, 
+                SKP_SMULBB( psEnc-&gt;speech_activity_Q8, ( 1 &lt;&lt; 8 ) - psEncCtrl-&gt;sparseness_Q8 ));
+            tmp32 = SKP_Silk_log2lin( ( 16 &lt;&lt; 7 ) - SKP_SMULWB( essStrength_Q15, 
+                SKP_SMULWB( DE_ESSER_COEF_WB_dB_Q7, 20972 ) ) ); // 20972_Q17 = 0.16_Q0
+            gain_mult_Q16 = SKP_SMULWW( gain_mult_Q16, tmp32 );
+        } else {
+            SKP_assert( psEnc-&gt;sCmn.fs_kHz == 12 || psEnc-&gt;sCmn.fs_kHz == 8 );
+        }
+    }
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        psEncCtrl-&gt;GainsPre_Q14[ k ] = SKP_SMULWB( gain_mult_Q16, psEncCtrl-&gt;GainsPre_Q14[ k ] );
+    }
+
+    /************************************************/
+    /* Control low-frequency shaping and noise tilt */
+    /************************************************/
+    /* Less low frequency shaping for noisy inputs */
+    strength_Q16 = SKP_MUL( LOW_FREQ_SHAPING_Q0, ( 1 &lt;&lt; 16 ) + SKP_SMULBB( LOW_QUALITY_LOW_FREQ_SHAPING_DECR_Q1, psEncCtrl-&gt;input_quality_bands_Q15[ 0 ] - ( 1 &lt;&lt; 15 ) ) );
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /* Reduce low frequencies quantization noise for periodic signals, depending on pitch lag */
+        /*f = 400; freqz([1, -0.98 + 2e-4 * f], [1, -0.97 + 7e-4 * f], 2^12, Fs); axis([0, 1000, -10, 1])*/
+        SKP_int fs_kHz_inv = SKP_DIV32_16( 3277, psEnc-&gt;sCmn.fs_kHz );      // 0.2_Q0 = 3277_Q14
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            b_Q14 = fs_kHz_inv + SKP_DIV32_16( ( 3 &lt;&lt; 14 ), psEncCtrl-&gt;sCmn.pitchL[ k ] ); 
+            /* Pack two coefficients in one int32 */
+            psEncCtrl-&gt;LF_shp_Q14[ k ]  = SKP_LSHIFT( ( 1 &lt;&lt; 14 ) - b_Q14 - SKP_SMULWB( strength_Q16, b_Q14 ), 16 );
+            psEncCtrl-&gt;LF_shp_Q14[ k ] |= (SKP_uint16)( b_Q14 - ( 1 &lt;&lt; 14 ) );
+        }
+        SKP_assert( HARM_HP_NOISE_COEF_Q24 &lt; ( 1 &lt;&lt; 23 ) ); // Guarantees that second argument to SMULWB() is within range of an SKP_int16
+        Tilt_Q16 = - HP_NOISE_COEF_Q16 - 
+            SKP_SMULWB( ( 1 &lt;&lt; 16 ) - HP_NOISE_COEF_Q16, SKP_SMULWB( HARM_HP_NOISE_COEF_Q24, psEnc-&gt;speech_activity_Q8 ) );
+    } else {
+        b_Q14 = SKP_DIV32_16( 21299, psEnc-&gt;sCmn.fs_kHz ); // 1.3_Q0 = 21299_Q14
+        /* Pack two coefficients in one int32 */
+        psEncCtrl-&gt;LF_shp_Q14[ 0 ]  = SKP_LSHIFT( ( 1 &lt;&lt; 14 ) - b_Q14 - SKP_SMULWB( strength_Q16, SKP_SMULWB( 39322, b_Q14 ) ), 16 ); // 0.6_Q0 = 39322_Q16
+        psEncCtrl-&gt;LF_shp_Q14[ 0 ] |= (SKP_uint16)( b_Q14 - ( 1 &lt;&lt; 14 ) );
+        for( k = 1; k &lt; NB_SUBFR; k++ ) {
+            psEncCtrl-&gt;LF_shp_Q14[ k ] = psEncCtrl-&gt;LF_shp_Q14[ k - 1 ];
+        }
+        Tilt_Q16 = -HP_NOISE_COEF_Q16;
+    }
+
+    /****************************/
+    /* HARMONIC SHAPING CONTROL */
+    /****************************/
+    /* Control boosting of harmonic frequencies */
+    HarmBoost_Q16 = SKP_SMULWB( SKP_SMULWB( ( 1 &lt;&lt; 17 ) - SKP_LSHIFT( psEncCtrl-&gt;coding_quality_Q14, 3 ), 
+        psEnc-&gt;LTPCorr_Q15 ), LOW_RATE_HARMONIC_BOOST_Q16 );
+
+    /* More harmonic boost for noisy input signals */
+    HarmBoost_Q16 = SKP_SMLAWB( HarmBoost_Q16, 
+        ( 1 &lt;&lt; 16 ) - SKP_LSHIFT( psEncCtrl-&gt;input_quality_Q14, 2 ), LOW_INPUT_QUALITY_HARMONIC_BOOST_Q16 );
+
+    if( USE_HARM_SHAPING &amp;&amp; psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /* More harmonic noise shaping for high bitrates or noisy input */
+        HarmShapeGain_Q16 = SKP_SMLAWB( HARMONIC_SHAPING_Q16, 
+                ( 1 &lt;&lt; 16 ) - SKP_SMULWB( ( 1 &lt;&lt; 18 ) - SKP_LSHIFT( psEncCtrl-&gt;coding_quality_Q14, 4 ),
+                psEncCtrl-&gt;input_quality_Q14 ), HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING_Q16 );
+
+        /* Less harmonic noise shaping for less periodic signals */
+        HarmShapeGain_Q16 = SKP_SMULWB( SKP_LSHIFT( HarmShapeGain_Q16, 1 ), 
+            SKP_Silk_SQRT_APPROX( SKP_LSHIFT( psEnc-&gt;LTPCorr_Q15, 15 ) ) );
+    } else {
+        HarmShapeGain_Q16 = 0;
+    }
+
+    /*************************/
+    /* Smooth over subframes */
+    /*************************/
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        psShapeSt-&gt;HarmBoost_smth_Q16 =
+            SKP_SMLAWB( psShapeSt-&gt;HarmBoost_smth_Q16,     HarmBoost_Q16     - psShapeSt-&gt;HarmBoost_smth_Q16,     SUBFR_SMTH_COEF_Q16 );
+        psShapeSt-&gt;HarmShapeGain_smth_Q16 =
+            SKP_SMLAWB( psShapeSt-&gt;HarmShapeGain_smth_Q16, HarmShapeGain_Q16 - psShapeSt-&gt;HarmShapeGain_smth_Q16, SUBFR_SMTH_COEF_Q16 );
+        psShapeSt-&gt;Tilt_smth_Q16 =
+            SKP_SMLAWB( psShapeSt-&gt;Tilt_smth_Q16,          Tilt_Q16          - psShapeSt-&gt;Tilt_smth_Q16,          SUBFR_SMTH_COEF_Q16 );
+
+        psEncCtrl-&gt;HarmBoost_Q14[ k ]     = ( SKP_int )SKP_RSHIFT_ROUND( psShapeSt-&gt;HarmBoost_smth_Q16,     2 );
+        psEncCtrl-&gt;HarmShapeGain_Q14[ k ] = ( SKP_int )SKP_RSHIFT_ROUND( psShapeSt-&gt;HarmShapeGain_smth_Q16, 2 );
+        psEncCtrl-&gt;Tilt_Q14[ k ]          = ( SKP_int )SKP_RSHIFT_ROUND( psShapeSt-&gt;Tilt_smth_Q16,          2 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_perceptual_parameters_FIXh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,142 +1,121 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-
-
-
-
-
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
-#define SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/* reduction in coding SNR during low speech activity */
-#define BG_SNR_DECR_dB_Q7                               (3&lt;&lt;7)
-
-/* factor for reducing quantization noise during voiced speech */
-#define HARM_SNR_INCR_dB_Q7                             (2&lt;&lt;7)
-
-/* factor for reducing quantization noise for unvoiced sparse signals */
-#define SPARSE_SNR_INCR_dB_Q7                           (2&lt;&lt;7)
-
-/* threshold for sparseness measure above which to use lower quantization offset during unvoiced */
-#define SPARSENESS_THRESHOLD_QNT_OFFSET_Q8              (3&lt;&lt;6) // 0.75
-
-
-/* noise shaping filter chirp factor */
-#define BANDWIDTH_EXPANSION_Q16                         61604 // 0.94
-
-/* difference between chirp factors for analysis and synthesis noise shaping filters at low bitrates */
-#define LOW_RATE_BANDWIDTH_EXPANSION_DELTA_Q16          655 //0.01f
-
-/* factor to reduce all bandwidth expansion coefficients for super wideband, relative to wideband */
-#define SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16           (1&lt;&lt;16) // 1.0f;
-
-/* gain reduction for fricatives */
-#define DE_ESSER_COEF_SWB_dB_Q7                         (2 &lt;&lt; 7)
-#define DE_ESSER_COEF_WB_dB_Q7                          (1 &lt;&lt; 7)
-
-
-/* extra harmonic boosting (signal shaping) at low bitrates */
-#define LOW_RATE_HARMONIC_BOOST_Q16                     6554 // 0.1
-
-/* extra harmonic boosting (signal shaping) for noisy input signals */
-#define LOW_INPUT_QUALITY_HARMONIC_BOOST_Q16            6554 // 0.1
-
-
-
-
-
-
-/* harmonic noise shaping */
-#define HARMONIC_SHAPING_Q16                            19661 // 0.3
-
-/* extra harmonic noise shaping for high bitrates or noisy input */
-#define HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING_Q16   13107 // 0.2
-
-
-/* parameter for shaping noise towards higher frequencies */
-#define HP_NOISE_COEF_Q16                               19661 // 0.3
-
-/* parameter for shaping noise extra towards higher frequencies during voiced speech */
-#define HARM_HP_NOISE_COEF_Q24                          7549747 // 0.45
-
-/* parameter for applying a high-pass tilt to the input signal */
-#define INPUT_TILT_Q26                                  2684355 // 0.04
-
-/* parameter for extra high-pass tilt to the input signal at high rates */
-#define HIGH_RATE_INPUT_TILT_Q12                        246 // 0.06
-
-/* parameter for reducing noise at the very low frequencies */
-#define LOW_FREQ_SHAPING_Q0                             3
-
-/* less reduction of noise at the very low frequencies for signals with low SNR at low frequencies */
-#define LOW_QUALITY_LOW_FREQ_SHAPING_DECR_Q1            1 // 0.5_Q0
-
-/* fraction added to first autocorrelation value */
-#define SHAPE_WHITE_NOISE_FRACTION_Q20                  50 // 50_Q20 = 4.7684e-5
-
-/* fraction of first autocorrelation value added to residual energy value; limits prediction gain */
-#define SHAPE_MIN_ENERGY_RATIO_Q24                      256
-
-/* noise floor to put a low limit on the quantization step size */
-#define NOISE_FLOOR_dB_Q7                               (4 &lt;&lt; 7)
-
-/* noise floor relative to active speech gain level */
-#define RELATIVE_MIN_GAIN_dB_Q7                         -6400 // -50_Q0 = -6400_Q7
-
-/* subframe smoothing coefficient for determining active speech gain level (lower -&gt; more smoothing) */
-#define GAIN_SMOOTHING_COEF_Q10                         1 // 1e-3_Q0 = 1.024_Q10
-
-/* subframe smoothing coefficient for HarmBoost, HarmShapeGain, Tilt (lower -&gt; more smoothing) */
-#define SUBFR_SMTH_COEF_Q16                             26214 // 0.4
-
-#define NOISE_GAIN_VL_Q16                               7864
-#define NOISE_GAIN_VH_Q16                               7864
-#define NOISE_GAIN_UVL_Q16                              6554
-#define NOISE_GAIN_UVH_Q16                              9830
-
-
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
+#define SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* reduction in coding SNR during low speech activity */
+#define BG_SNR_DECR_dB_Q7                               (3&lt;&lt;7)
+
+/* factor for reducing quantization noise during voiced speech */
+#define HARM_SNR_INCR_dB_Q7                             (2&lt;&lt;7)
+
+/* factor for reducing quantization noise for unvoiced sparse signals */
+#define SPARSE_SNR_INCR_dB_Q7                           (2&lt;&lt;7)
+
+/* threshold for sparseness measure above which to use lower quantization offset during unvoiced */
+#define SPARSENESS_THRESHOLD_QNT_OFFSET_Q8              (3&lt;&lt;6) // 0.75
+
+
+/* noise shaping filter chirp factor */
+#define BANDWIDTH_EXPANSION_Q16                         61604 // 0.94
+
+/* difference between chirp factors for analysis and synthesis noise shaping filters at low bitrates */
+#define LOW_RATE_BANDWIDTH_EXPANSION_DELTA_Q16          655 //0.01f
+
+/* factor to reduce all bandwidth expansion coefficients for super wideband, relative to wideband */
+#define SWB_BANDWIDTH_EXPANSION_REDUCTION_Q16           (1&lt;&lt;16) // 1.0f;
+
+/* gain reduction for fricatives */
+#define DE_ESSER_COEF_SWB_dB_Q7                         (2 &lt;&lt; 7)
+#define DE_ESSER_COEF_WB_dB_Q7                          (1 &lt;&lt; 7)
+
+
+/* extra harmonic boosting (signal shaping) at low bitrates */
+#define LOW_RATE_HARMONIC_BOOST_Q16                     6554 // 0.1
+
+/* extra harmonic boosting (signal shaping) for noisy input signals */
+#define LOW_INPUT_QUALITY_HARMONIC_BOOST_Q16            6554 // 0.1
+
+/* harmonic noise shaping */
+#define HARMONIC_SHAPING_Q16                            19661 // 0.3
+
+/* extra harmonic noise shaping for high bitrates or noisy input */
+#define HIGH_RATE_OR_LOW_QUALITY_HARMONIC_SHAPING_Q16   13107 // 0.2
+
+
+/* parameter for shaping noise towards higher frequencies */
+#define HP_NOISE_COEF_Q16                               19661 // 0.3
+
+/* parameter for shaping noise extra towards higher frequencies during voiced speech */
+#define HARM_HP_NOISE_COEF_Q24                          7549747 // 0.45
+
+/* parameter for applying a high-pass tilt to the input signal */
+#define INPUT_TILT_Q26                                  2684355 // 0.04
+
+/* parameter for extra high-pass tilt to the input signal at high rates */
+#define HIGH_RATE_INPUT_TILT_Q12                        246 // 0.06
+
+/* parameter for reducing noise at the very low frequencies */
+#define LOW_FREQ_SHAPING_Q0                             3
+
+/* less reduction of noise at the very low frequencies for signals with low SNR at low frequencies */
+#define LOW_QUALITY_LOW_FREQ_SHAPING_DECR_Q1            1 // 0.5_Q0
+
+/* fraction added to first autocorrelation value */
+#define SHAPE_WHITE_NOISE_FRACTION_Q20                  50 // 50_Q20 = 4.7684e-5
+
+/* fraction of first autocorrelation value added to residual energy value; limits prediction gain */
+#define SHAPE_MIN_ENERGY_RATIO_Q24                      256
+
+/* noise floor to put a low limit on the quantization step size */
+#define NOISE_FLOOR_dB_Q7                               (4 &lt;&lt; 7)
+
+/* noise floor relative to active speech gain level */
+#define RELATIVE_MIN_GAIN_dB_Q7                         -6400 // -50_Q0 = -6400_Q7
+
+/* subframe smoothing coefficient for determining active speech gain level (lower -&gt; more smoothing) */
+#define GAIN_SMOOTHING_COEF_Q10                         1 // 1e-3_Q0 = 1.024_Q10
+
+/* subframe smoothing coefficient for HarmBoost, HarmShapeGain, Tilt (lower -&gt; more smoothing) */
+#define SUBFR_SMTH_COEF_Q16                             26214 // 0.4
+
+#define NOISE_GAIN_VL_Q16                               7864
+#define NOISE_GAIN_VH_Q16                               7864
+#define NOISE_GAIN_UVL_Q16                              6554
+#define NOISE_GAIN_UVH_Q16                              9830
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //SKP_SILK_PERCEPTUAL_PARAMETERS_FIX_H
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_pitch_analysis_corec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_analysis_core.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_analysis_core.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_analysis_core.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,840 +1,747 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/***********************************************************
-* Pitch analyser function
-********************************************************** */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_pitch_est_defines.h&quot;
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-#define SCRATCH_SIZE    22
-
-
-
-
-
-
-/************************************************************/
-/* Internally used functions                                */
-/************************************************************/
-void SKP_FIX_P_Ana_calc_corr_st3(
-    SKP_int32        cross_corr_st3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX][PITCH_EST_NB_STAGE3_LAGS],/* (O) 3 DIM correlation array */
-    const SKP_int16  signal[],                        /* I vector to correlate         */
-    SKP_int          start_lag,                       /* I lag offset to search around */
-    SKP_int          sf_length,                       /* I length of a 5 ms subframe   */
-    SKP_int          complexity                       /* I Complexity setting          */
-);
-
-void SKP_FIX_P_Ana_calc_energy_st3(
-    SKP_int32        energies_st3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX][PITCH_EST_NB_STAGE3_LAGS],/* (O) 3 DIM energy array */
-    const SKP_int16  signal[],                        /* I vector to calc energy in    */
-    SKP_int          start_lag,                       /* I lag offset to search around */
-    SKP_int          sf_length,                       /* I length of one 5 ms subframe */
-    SKP_int          complexity                       /* I Complexity setting          */
-);
-
-SKP_int32 SKP_FIX_P_Ana_find_scaling(
-    const SKP_int16  *signal,
-    const SKP_int    signal_length,
-    const SKP_int    sum_sqr_len
-);
-
-void SKP_Silk_decode_pitch(
-    SKP_int          lagIndex,                        /* I                             */
-    SKP_int          contourIndex,                    /* O                             */
-    SKP_int          pitch_lags[],                    /* O 4 pitch values              */
-    SKP_int          Fs_kHz                           /* I sampling frequency (kHz)    */
-)
-{
-    SKP_int lag, i, min_lag;
-
-    min_lag = SKP_SMULBB( PITCH_EST_MIN_LAG_MS, Fs_kHz );
-
-    /* Only for 24 / 16 kHz version for now */
-    lag = min_lag + lagIndex;
-    if( Fs_kHz == 8 ) {
-        /* Only a small codebook for 8 khz */
-        for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
-            pitch_lags[ i ] = lag + SKP_Silk_CB_lags_stage2[ i ][ contourIndex ];
-        }
-    } else {
-        for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
-            pitch_lags[ i ] = lag + SKP_Silk_CB_lags_stage3[ i ][ contourIndex ];
-        }
-    }
-
-
-
-
-
-}
-
-/*************************************************************/
-/*      FIXED POINT CORE PITCH ANALYSIS FUNCTION             */
-/*************************************************************/
-SKP_int SKP_Silk_pitch_analysis_core(  /* O    Voicing estimate: 0 voiced, 1 unvoiced                      */
-    const SKP_int16  *signal,            /* I    Signal of length PITCH_EST_FRAME_LENGTH_MS*Fs_kHz           */
-    SKP_int          *pitch_out,         /* O    4 pitch lag values                                          */
-    SKP_int          *lagIndex,          /* O    Lag Index                                                   */
-    SKP_int          *contourIndex,      /* O    Pitch contour Index                                         */
-    SKP_int          *LTPCorr_Q15,       /* I/O  Normalized correlation; input: value from previous frame    */
-    SKP_int          prevLag,            /* I    Last lag of previous frame; set to zero is unvoiced         */
-    const SKP_int32  search_thres1_Q16,  /* I    First stage threshold for lag candidates 0 - 1              */
-    const SKP_int    search_thres2_Q15,  /* I    Final threshold for lag candidates 0 - 1                    */
-    const SKP_int    Fs_kHz,             /* I    Sample frequency (kHz)                                      */
-    const SKP_int    complexity          /* I    Complexity setting, 0-2, where 2 is highest                 */
-)
-{
-    SKP_int16 signal_8kHz[ PITCH_EST_MAX_FRAME_LENGTH_ST_2 ];
-    SKP_int16 signal_4kHz[ PITCH_EST_MAX_FRAME_LENGTH_ST_1 ];
-    SKP_int32 scratch_mem[ 3 * PITCH_EST_MAX_FRAME_LENGTH ];
-    SKP_int16 *input_signal_ptr;
-    SKP_int32 filt_state[ PITCH_EST_MAX_DECIMATE_STATE_LENGTH ];
-    SKP_int   i, k, d, j;
-    SKP_int16 C[ PITCH_EST_NB_SUBFR ][ ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ];
-    const SKP_int16 *target_ptr, *basis_ptr;
-    SKP_int32 cross_corr, normalizer, energy, shift, energy_basis, energy_target;
-    SKP_int   d_srch[ PITCH_EST_D_SRCH_LENGTH ];
-    SKP_int16 d_comp[ ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ];
-    SKP_int   Cmax, length_d_srch, length_d_comp;
-    SKP_int32 sum, threshold, temp32;
-    SKP_int   CBimax, CBimax_new, CBimax_old, lag, start_lag, end_lag, lag_new;
-    SKP_int32 CC[ PITCH_EST_NB_CBKS_STAGE2_EXT ], CCmax, CCmax_b, CCmax_new_b, CCmax_new;
-    SKP_int32 energies_st3[  PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ];
-    SKP_int32 crosscorr_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ];
-    SKP_int32 lag_counter;
-    SKP_int   frame_length, frame_length_8kHz, frame_length_4kHz, max_sum_sq_length;
-    SKP_int   sf_length, sf_length_8kHz, sf_length_4kHz;
-    SKP_int   min_lag, min_lag_8kHz, min_lag_4kHz;
-    SKP_int   max_lag, max_lag_8kHz, max_lag_4kHz;
-    SKP_int32 contour_bias, diff;
-    SKP_int32 lz, lshift;
-    SKP_int   cbk_offset, cbk_size, nb_cbks_stage2;
-    SKP_int32 delta_lag_log2_sqr_Q7, lag_log2_Q7, prevLag_log2_Q7, prev_lag_bias_Q15, corr_thres_Q15;
-
-    /* Check for valid sampling frequency */
-    SKP_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 || Fs_kHz == 24 );
-
-
-
-
-
-
-    /* Check for valid complexity setting */
-    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
-    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
-
-    SKP_assert( search_thres1_Q16 &gt;= 0 &amp;&amp; search_thres1_Q16 &lt;= (1&lt;&lt;16) );
-    SKP_assert( search_thres2_Q15 &gt;= 0 &amp;&amp; search_thres2_Q15 &lt;= (1&lt;&lt;15) );
-
-    /* Setup frame lengths max / min lag for the sampling frequency */
-    frame_length      = PITCH_EST_FRAME_LENGTH_MS * Fs_kHz;
-    frame_length_4kHz = PITCH_EST_FRAME_LENGTH_MS * 4;
-    frame_length_8kHz = PITCH_EST_FRAME_LENGTH_MS * 8;
-    sf_length         = SKP_RSHIFT( frame_length,      3 );
-    sf_length_4kHz    = SKP_RSHIFT( frame_length_4kHz, 3 );
-    sf_length_8kHz    = SKP_RSHIFT( frame_length_8kHz, 3 );
-    min_lag           = PITCH_EST_MIN_LAG_MS * Fs_kHz;
-    min_lag_4kHz      = PITCH_EST_MIN_LAG_MS * 4;
-    min_lag_8kHz      = PITCH_EST_MIN_LAG_MS * 8;
-    max_lag           = PITCH_EST_MAX_LAG_MS * Fs_kHz;
-    max_lag_4kHz      = PITCH_EST_MAX_LAG_MS * 4;
-    max_lag_8kHz      = PITCH_EST_MAX_LAG_MS * 8;
-
-    SKP_memset( C, 0, sizeof( SKP_int16 ) * PITCH_EST_NB_SUBFR * ( ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5) );
-
-    /* Resample from input sampled at Fs_kHz to 8 kHz */
-    if( Fs_kHz == 12 ) {
-        SKP_int16 R23[ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ];
-        SKP_memset( R23, 0, ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
-
-        SKP_Silk_resample_2_3_coarsest( signal_8kHz, R23, signal,
-            PITCH_EST_FRAME_LENGTH_MS * 12, (SKP_int16*)scratch_mem );
-    } else if( Fs_kHz == 16 ) {
-        if( complexity == SigProc_PITCH_EST_MAX_COMPLEX ) {
-            SKP_assert( 4 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
-            SKP_memset( filt_state, 0, 4 * sizeof( SKP_int32 ) );
-
-            SKP_Silk_resample_1_2_coarse( signal, filt_state, signal_8kHz,
-                scratch_mem, frame_length_8kHz );
-        } else {
-            SKP_assert( 2 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
-            SKP_memset( filt_state, 0, 2 * sizeof( SKP_int32 ) );
-
-            SKP_Silk_resample_1_2_coarsest( signal, filt_state, signal_8kHz,
-                scratch_mem, frame_length_8kHz );
-        }
-    } else if( Fs_kHz == 24 ) {
-        /* Resample to 24 -&gt; 8 khz */
-        SKP_assert( 7 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
-        SKP_memset( filt_state, 0, 7 * sizeof( SKP_int32 ) );
-
-
-
-
-
-        SKP_Silk_resample_1_3( signal_8kHz, filt_state, signal, 24 * PITCH_EST_FRAME_LENGTH_MS );
-
-    } else {
-        SKP_assert( Fs_kHz == 8 );
-        SKP_memcpy( signal_8kHz, signal, frame_length_8kHz * sizeof( SKP_int16 ) );
-    }
-
-    /* Decimate again to 4 kHz. Set mem to zero */
-    if( complexity == SigProc_PITCH_EST_MAX_COMPLEX ) {
-        SKP_assert( 4 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
-        SKP_memset( filt_state, 0, 4 * sizeof( SKP_int32 ) );
-        SKP_Silk_resample_1_2_coarse( signal_8kHz, filt_state,
-            signal_4kHz, scratch_mem, frame_length_4kHz );
-    } else {
-        SKP_assert( 2 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
-        SKP_memset( filt_state, 0, 2 * sizeof( SKP_int32 ) );
-        SKP_Silk_resample_1_2_coarsest( signal_8kHz, filt_state,
-            signal_4kHz, scratch_mem, frame_length_4kHz );
-    }
-
-    /* Low-pass filter */
-    for( i = frame_length_4kHz - 1; i &gt; 0; i-- ) {
-        signal_4kHz[ i ] = SKP_ADD_SAT16( signal_4kHz[ i ], signal_4kHz[ i - 1 ] );
-    }
-
-    /*******************************************************************************
-    ** Scale 4 kHz signal down to prevent correlations measures from overflowing
-    ** find scaling as max scaling for each 8kHz(?) subframe
-    *******************************************************************************/
-
-    /* Inner product is calculated with different lengths, so scale for the worst case */
-    max_sum_sq_length = SKP_max_32( sf_length_8kHz, SKP_RSHIFT( frame_length_4kHz, 1 ) );
-    shift = SKP_FIX_P_Ana_find_scaling( signal_4kHz, frame_length_4kHz, max_sum_sq_length );
-    if( shift &gt; 0 ) {
-        for( i = 0; i &lt; frame_length_4kHz; i++ ) {
-            signal_4kHz[ i ] = SKP_RSHIFT( signal_4kHz[ i ], shift );
-        }
-    }
-
-    /******************************************************************************
-    * FIRST STAGE, operating in 4 khz
-    ******************************************************************************/
-    target_ptr = &amp;signal_4kHz[ SKP_RSHIFT( frame_length_4kHz, 1 ) ];
-    for( k = 0; k &lt; 2; k++ ) {
-        /* Check that we are within range of the array */
-        SKP_assert( target_ptr &gt;= signal_4kHz );
-        SKP_assert( target_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
-
-
-
-
-
-
-        basis_ptr = target_ptr - min_lag_4kHz;
-
-        /* Check that we are within range of the array */
-        SKP_assert( basis_ptr &gt;= signal_4kHz );
-        SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
-
-        normalizer = 0;
-        cross_corr = 0;
-        /* Calculate first vector products before loop */
-        cross_corr = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
-        normalizer = SKP_Silk_inner_prod_aligned( basis_ptr,  basis_ptr, sf_length_8kHz );
-        normalizer = SKP_ADD_SAT32( normalizer, 1000 );
-
-        temp32 = SKP_DIV32( cross_corr, SKP_Silk_SQRT_APPROX( normalizer ) + 1 );
-        C[ k ][ min_lag_4kHz ] = (SKP_int16)SKP_SAT16( temp32 );        /* Q0 */
-
-        /* From now on normalizer is computed recursively */
-        for( d = min_lag_4kHz + 1; d &lt;= max_lag_4kHz; d++ ) {
-            basis_ptr--;
-
-            /* Check that we are within range of the array */
-            SKP_assert( basis_ptr &gt;= signal_4kHz );
-            SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
-
-            cross_corr = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
-
-            /* Add contribution of new sample and remove contribution from oldest sample */
-            normalizer +=
-                SKP_SMULBB( basis_ptr[ 0 ], basis_ptr[ 0 ] ) -
-                SKP_SMULBB( basis_ptr[ sf_length_8kHz ], basis_ptr[ sf_length_8kHz ] );
-
-            temp32 = SKP_DIV32( cross_corr, SKP_Silk_SQRT_APPROX( normalizer ) + 1 );
-            C[ k ][ d ] = (SKP_int16)SKP_SAT16( temp32 );                        /* Q0 */
-        }
-        /* Update target pointer */
-        target_ptr += sf_length_8kHz;
-    }
-
-    /* Combine two subframes into single correlation measure and apply short-lag bias */
-    for( i = max_lag_4kHz; i &gt;= min_lag_4kHz; i-- ) {
-        sum = (SKP_int32)C[ 0 ][ i ] + (SKP_int32)C[ 1 ][ i ];                /* Q0 */
-        SKP_assert( SKP_RSHIFT( sum, 1 ) == SKP_SAT16( SKP_RSHIFT( sum, 1 ) ) );
-        sum = SKP_RSHIFT( sum, 1 );                                           /* Q-1 */
-        SKP_assert( SKP_LSHIFT( (SKP_int32)-i, 4 ) == SKP_SAT16( SKP_LSHIFT( (SKP_int32)-i, 4 ) ) );
-        sum = SKP_SMLAWB( sum, sum, SKP_LSHIFT( -i, 4 ) );                    /* Q-1 */
-        SKP_assert( sum == SKP_SAT16( sum ) );
-        C[ 0 ][ i ] = (SKP_int16)sum;                                         /* Q-1 */
-    }
-
-
-
-
-
-    /* Sort */
-    length_d_srch = 5 + complexity;
-    SKP_assert( length_d_srch &lt;= PITCH_EST_D_SRCH_LENGTH );
-    SKP_Silk_insertion_sort_decreasing_int16( &amp;C[ 0 ][ min_lag_4kHz ], d_srch, max_lag_4kHz - min_lag_4kHz + 1, length_d_srch );
-
-    /* Escape if correlation is very low already here */
-    target_ptr = &amp;signal_4kHz[ SKP_RSHIFT( frame_length_4kHz, 1 ) ];
-    energy = SKP_Silk_inner_prod_aligned( target_ptr, target_ptr, SKP_RSHIFT( frame_length_4kHz, 1 ) );
-    energy = SKP_ADD_SAT32( energy, 1000 );                                  /* Q0 */
-    Cmax = (SKP_int)C[ 0 ][ min_lag_4kHz ];                                  /* Q-1 */
-    threshold = SKP_SMULBB( Cmax, Cmax );                                    /* Q-2 */
-    /* Compare in Q-2 domain */
-    if( SKP_RSHIFT( energy, 4 + 2 ) &gt; threshold ) {
-        SKP_memset( pitch_out, 0, PITCH_EST_NB_SUBFR * sizeof( SKP_int ) );
-        *LTPCorr_Q15  = 0;
-        *lagIndex     = 0;
-        *contourIndex = 0;
-        return 1;
-    }
-
-    threshold = SKP_SMULWB( search_thres1_Q16, Cmax );
-    for( i = 0; i &lt; length_d_srch; i++ ) {
-        /* Convert to 8 kHz indices for the sorted correlation that exceeds the threshold */
-        if( C[ 0 ][ min_lag_4kHz + i ] &gt; threshold ) {
-            d_srch[ i ] = SKP_LSHIFT( d_srch[ i ] + min_lag_4kHz, 1 );
-        } else {
-            length_d_srch = i;
-            break;
-        }
-    }
-    SKP_assert( length_d_srch &gt; 0 );
-
-    for( i = min_lag_8kHz - 5; i &lt; max_lag_8kHz + 5; i++ ) {
-        d_comp[ i ] = 0;
-    }
-    for( i = 0; i &lt; length_d_srch; i++ ) {
-        d_comp[ d_srch[ i ] ] = 1;
-    }
-
-    /* Convolution */
-    for( i = max_lag_8kHz + 3; i &gt;= min_lag_8kHz; i-- ) {
-        d_comp[ i ] += d_comp[ i - 1 ] + d_comp[ i - 2 ];
-    }
-
-    length_d_srch = 0;
-    for( i = min_lag_8kHz; i &lt; max_lag_8kHz + 1; i++ ) {
-        if( d_comp[ i + 1 ] &gt; 0 ) {
-            d_srch[ length_d_srch ] = i;
-
-
-
-
-
-            length_d_srch++;
-        }
-    }
-
-    /* Convolution */
-    for( i = max_lag_8kHz + 3; i &gt;= min_lag_8kHz; i-- ) {
-        d_comp[ i ] += d_comp[ i - 1 ] + d_comp[ i - 2 ] + d_comp[ i - 3 ];
-    }
-
-    length_d_comp = 0;
-    for( i = min_lag_8kHz; i &lt; max_lag_8kHz + 4; i++ ) {
-        if( d_comp[ i ] &gt; 0 ) {
-            d_comp[ length_d_comp ] = i - 2;
-            length_d_comp++;
-        }
-    }
-
-    /**********************************************************************************
-    ** SECOND STAGE, operating at 8 kHz, on lag sections with high correlation
-    *************************************************************************************/
-
-    /******************************************************************************
-    ** Scale signal down to avoid correlations measures from overflowing
-    *******************************************************************************/
-    /* find scaling as max scaling for each subframe */
-    shift = SKP_FIX_P_Ana_find_scaling( signal_8kHz, frame_length_8kHz, sf_length_8kHz );
-    if( shift &gt; 0 ) {
-        for( i = 0; i &lt; frame_length_8kHz; i++ ) {
-            signal_8kHz[ i ] = SKP_RSHIFT( signal_8kHz[ i ], shift );
-        }
-    }
-
-    /*********************************************************************************
-    * Find energy of each subframe projected onto its history, for a range of delays
-    *********************************************************************************/
-    SKP_memset( C, 0, PITCH_EST_NB_SUBFR * ( ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ) * sizeof( SKP_int16 ) );
-
-    target_ptr = &amp;signal_8kHz[ frame_length_4kHz ]; /* point to middle of frame */
-    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-
-        /* Check that we are within range of the array */
-        SKP_assert( target_ptr &gt;= signal_8kHz );
-        SKP_assert( target_ptr + sf_length_8kHz &lt;= signal_8kHz + frame_length_8kHz );
-
-        energy_target = SKP_Silk_inner_prod_aligned( target_ptr, target_ptr, sf_length_8kHz );
-        // ToDo: Calculate 1 / energy_target here and save one division inside next for loop
-        for( j = 0; j &lt; length_d_comp; j++ ) {
-            d = d_comp[ j ];
-
-
-
-
-
-            basis_ptr = target_ptr - d;
-
-            /* Check that we are within range of the array */
-            SKP_assert( basis_ptr &gt;= signal_8kHz );
-            SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_8kHz + frame_length_8kHz );
-
-            cross_corr   = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
-            energy_basis = SKP_Silk_inner_prod_aligned( basis_ptr,  basis_ptr, sf_length_8kHz );
-            if( cross_corr &gt; 0 ) {
-                energy = SKP_max( energy_target, energy_basis ); /* Find max to make sure first division &lt; 1.0 */
-                lz = SKP_Silk_CLZ32( cross_corr );
-                lshift = SKP_LIMIT( lz - 1, 0, 15 );
-                temp32 = SKP_DIV32( SKP_LSHIFT( cross_corr, lshift ), SKP_RSHIFT( energy, 15 - lshift ) + 1 ); /* Q15 */
-                SKP_assert( temp32 == SKP_SAT16( temp32 ) );
-                temp32 = SKP_SMULWB( cross_corr, temp32 ); /* Q(-1), cc * ( cc / max(b, t) ) */
-                temp32 = SKP_ADD_SAT32( temp32, temp32 );  /* Q(0) */
-                lz = SKP_Silk_CLZ32( temp32 );
-                lshift = SKP_LIMIT( lz - 1, 0, 15 );
-                energy = SKP_min( energy_target, energy_basis );
-                C[ k ][ d ] = SKP_DIV32( SKP_LSHIFT( temp32, lshift ), SKP_RSHIFT( energy, 15 - lshift ) + 1 ); // Q15
-            } else {
-                C[ k ][ d ] = 0;
-            }
-        }
-        target_ptr += sf_length_8kHz;
-    }
-
-    /* search over lag range and lags codebook */
-    /* scale factor for lag codebook, as a function of center lag */
-
-    CCmax   = SKP_int32_MIN;
-    CCmax_b = SKP_int32_MIN;
-
-    CBimax = 0; /* To avoid returning undefined lag values */
-    lag = -1;   /* To check if lag with strong enough correlation has been found */
-
-    if( prevLag &gt; 0 ) {
-        if( Fs_kHz == 12 ) {
-            prevLag = SKP_DIV32_16( SKP_LSHIFT( prevLag, 1 ), 3 );
-        } else if( Fs_kHz == 16 ) {
-            prevLag = SKP_RSHIFT( prevLag, 1 );
-        } else if( Fs_kHz == 24 ) {
-            prevLag = SKP_DIV32_16( prevLag, 3 );
-        }
-        prevLag_log2_Q7 = SKP_Silk_lin2log( (SKP_int32)prevLag );
-    } else {
-        prevLag_log2_Q7 = 0;
-    }
-
-
-
-
-
-    SKP_assert( search_thres2_Q15 == SKP_SAT16( search_thres2_Q15 ) );
-    corr_thres_Q15 = SKP_RSHIFT( SKP_SMULBB( search_thres2_Q15, search_thres2_Q15 ), 13 );
-
-    /* If input is 8 khz use a larger codebook here because it is last stage */
-    if( Fs_kHz == 8 &amp;&amp; complexity &gt; SigProc_PITCH_EST_MIN_COMPLEX ) {
-        nb_cbks_stage2 = PITCH_EST_NB_CBKS_STAGE2_EXT;
-    } else {
-        nb_cbks_stage2 = PITCH_EST_NB_CBKS_STAGE2;
-    }
-
-    for( k = 0; k &lt; length_d_srch; k++ ) {
-        d = d_srch[ k ];
-        for( j = 0; j &lt; nb_cbks_stage2; j++ ) {
-            CC[ j ] = 0;
-            for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
-                /* Try all codebooks */
-                CC[ j ] = CC[ j ] + (SKP_int32)C[ i ][ d + SKP_Silk_CB_lags_stage2[ i ][ j ] ];
-            }
-        }
-        /* Find best codebook */
-        CCmax_new = SKP_int32_MIN;
-        CBimax_new = 0;
-        for( i = 0; i &lt; nb_cbks_stage2; i++ ) {
-            if( CC[ i ] &gt; CCmax_new ) {
-                CCmax_new = CC[ i ];
-                CBimax_new = i;
-            }
-        }
-
-        /* Bias towards shorter lags */
-        lag_log2_Q7 = SKP_Silk_lin2log( (SKP_int32)d ); /* Q7 */
-        SKP_assert( lag_log2_Q7 == SKP_SAT16( lag_log2_Q7 ) );
-        SKP_assert( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15 == SKP_SAT16( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15 ) );
-        CCmax_new_b = CCmax_new - SKP_RSHIFT( SKP_SMULBB( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15, lag_log2_Q7 ), 7 ); /* Q15 */
-
-        /* Bias towards previous lag */
-        SKP_assert( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15 == SKP_SAT16( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15 ) );
-        if( prevLag &gt; 0 ) {
-            delta_lag_log2_sqr_Q7 = lag_log2_Q7 - prevLag_log2_Q7;
-            SKP_assert( delta_lag_log2_sqr_Q7 == SKP_SAT16( delta_lag_log2_sqr_Q7 ) );
-            delta_lag_log2_sqr_Q7 = SKP_RSHIFT( SKP_SMULBB( delta_lag_log2_sqr_Q7, delta_lag_log2_sqr_Q7 ), 7 );
-            prev_lag_bias_Q15 = SKP_RSHIFT( SKP_SMULBB( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15, ( *LTPCorr_Q15 ) ), 15 ); /* Q15 */
-            prev_lag_bias_Q15 = SKP_DIV32( SKP_MUL( prev_lag_bias_Q15, delta_lag_log2_sqr_Q7 ), delta_lag_log2_sqr_Q7 + ( 1 &lt;&lt; 6 ) );
-            CCmax_new_b -= prev_lag_bias_Q15; /* Q15 */
-        }
-
-        if( CCmax_new_b &gt; CCmax_b &amp;&amp; CCmax_new &gt; corr_thres_Q15 ) {
-            CCmax_b = CCmax_new_b;
-
-
-
-
-
-            CCmax   = CCmax_new;
-            lag     = d;
-            CBimax  = CBimax_new;
-        }
-    }
-
-    if( lag == -1 ) {
-        /* No suitable candidate found */
-        SKP_memset( pitch_out, 0, PITCH_EST_NB_SUBFR * sizeof( SKP_int ) );
-        *LTPCorr_Q15  = 0;
-        *lagIndex     = 0;
-        *contourIndex = 0;
-        return 1;
-    }
-
-    if( Fs_kHz &gt; 8 ) {
-
-        /******************************************************************************
-        ** Scale input signal down to avoid correlations measures from overflowing
-        *******************************************************************************/
-        /* find scaling as max scaling for each subframe */
-        shift = SKP_FIX_P_Ana_find_scaling( signal, frame_length, sf_length );
-        if( shift &gt; 0 ) {
-            /* Move signal to scratch mem because the input signal should be unchanged */
-            /* Reuse the 32 bit scratch mem vector, use a 16 bit pointer from now */
-            input_signal_ptr = (SKP_int16*)scratch_mem;
-            for( i = 0; i &lt; frame_length; i++ ) {
-                input_signal_ptr[ i ] = SKP_RSHIFT( signal[ i ], shift );
-            }
-        } else {
-            input_signal_ptr = (SKP_int16*)signal;
-        }
-        /*********************************************************************************/
-
-        /* Search in original signal */
-
-        CBimax_old = CBimax;
-        /* Compensate for decimation */
-        SKP_assert( lag == SKP_SAT16( lag ) );
-        if( Fs_kHz == 12 ) {
-            lag = SKP_RSHIFT( SKP_SMULBB( lag, 3 ), 1 );
-        } else if( Fs_kHz == 16 ) {
-            lag = SKP_LSHIFT( lag, 1 );
-        } else {
-            lag = SKP_SMULBB( lag, 3 );
-        }
-
-        lag = SKP_LIMIT( lag, min_lag, max_lag );
-
-
-
-
-
-        start_lag = SKP_max_int( lag - 2, min_lag );
-        end_lag   = SKP_min_int( lag + 2, max_lag );
-        lag_new   = lag;                                    /* to avoid undefined lag */
-        CBimax    = 0;                                        /* to avoid undefined lag */
-        SKP_assert( SKP_LSHIFT( CCmax, 13 ) &gt;= 0 );
-        *LTPCorr_Q15 = (SKP_int)SKP_Silk_SQRT_APPROX( SKP_LSHIFT( CCmax, 13 ) ); /* Output normalized correlation */
-
-        CCmax = SKP_int32_MIN;
-        /* pitch lags according to second stage */
-        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-            pitch_out[ k ] = lag + 2 * SKP_Silk_CB_lags_stage2[ k ][ CBimax_old ];
-        }
-        /* Calculate the correlations and energies needed in stage 3 */
-        SKP_FIX_P_Ana_calc_corr_st3(  crosscorr_st3, input_signal_ptr, start_lag, sf_length, complexity );
-        SKP_FIX_P_Ana_calc_energy_st3( energies_st3, input_signal_ptr, start_lag, sf_length, complexity );
-
-        lag_counter = 0;
-        SKP_assert( lag == SKP_SAT16( lag ) );
-        contour_bias = SKP_DIV32_16( PITCH_EST_FLATCONTOUR_BIAS_Q20, lag );
-
-        /* Setup cbk parameters acording to complexity setting */
-        cbk_size   = (SKP_int)SKP_Silk_cbk_sizes_stage3[   complexity ];
-        cbk_offset = (SKP_int)SKP_Silk_cbk_offsets_stage3[ complexity ];
-
-        for( d = start_lag; d &lt;= end_lag; d++ ) {
-            for( j = cbk_offset; j &lt; ( cbk_offset + cbk_size ); j++ ) {
-                cross_corr = 0;
-                energy     = 0;
-                for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-                    SKP_assert( PITCH_EST_NB_SUBFR == 4 );
-                    energy     += SKP_RSHIFT( energies_st3[  k ][ j ][ lag_counter ], 2 ); /* use mean, to avoid overflow */
-                    SKP_assert( energy &gt;= 0 );
-                    cross_corr += SKP_RSHIFT( crosscorr_st3[ k ][ j ][ lag_counter ], 2 ); /* use mean, to avoid overflow */
-                }
-                if( cross_corr &gt; 0 ) {
-                    /* Divide cross_corr / energy and get result in Q15 */
-                    lz = SKP_Silk_CLZ32( cross_corr );
-                    /* Divide with result in Q13, cross_corr could be larger than energy */
-                    lshift = SKP_LIMIT( lz - 1, 0, 13 );
-                    CCmax_new = SKP_DIV32( SKP_LSHIFT( cross_corr, lshift ), SKP_RSHIFT( energy, 13 - lshift ) + 1 );
-                    CCmax_new = SKP_SAT16( CCmax_new );
-                    CCmax_new = SKP_SMULWB( cross_corr, CCmax_new );
-                    /* Saturate */
-                    if( CCmax_new &gt; SKP_RSHIFT( SKP_int32_MAX, 3 ) ) {
-                        CCmax_new = SKP_int32_MAX;
-                    } else {
-                        CCmax_new = SKP_LSHIFT( CCmax_new, 3 );
-                    }
-
-
-
-
-
-                    /* Reduce depending on flatness of contour */
-                    diff = j - SKP_RSHIFT( PITCH_EST_NB_CBKS_STAGE3_MAX, 1 );
-                    diff = SKP_MUL( diff, diff );
-                    diff = SKP_int16_MAX - SKP_RSHIFT( SKP_MUL( contour_bias, diff ), 5 ); /* Q20 -&gt; Q15 */
-                    SKP_assert( diff == SKP_SAT16( diff ) );
-                    CCmax_new = SKP_LSHIFT( SKP_SMULWB( CCmax_new, diff ), 1 );
-                } else {
-                    CCmax_new = 0;
-                }
-
-                if( CCmax_new &gt; CCmax ) {
-                    CCmax   = CCmax_new;
-                    lag_new = d;
-                    CBimax  = j;
-                }
-            }
-            lag_counter++;
-        }
-
-        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-            pitch_out[ k ] = lag_new + SKP_Silk_CB_lags_stage3[ k ][ CBimax ];
-        }
-        *lagIndex = lag_new - min_lag;
-        *contourIndex = CBimax;
-    } else {
-        /* Save Lags and correlation */
-        CCmax = SKP_max( CCmax, 0 );
-        *LTPCorr_Q15 = (SKP_int)SKP_Silk_SQRT_APPROX( SKP_LSHIFT( CCmax, 13 ) ); /* Output normalized correlation */
-        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-            pitch_out[ k ] = lag + SKP_Silk_CB_lags_stage2[ k ][ CBimax ];
-        }
-        *lagIndex = lag - min_lag_8kHz;
-        *contourIndex = CBimax;
-    }
-    SKP_assert( *lagIndex &gt;= 0 );
-    /* return as voiced */
-    return 0;
-}
-
-/*************************************************************************/
-/* Calculates the correlations used in stage 3 search. In order to cover */
-/* the whole lag codebook for all the searched offset lags (lag +- 2),   */
-/*************************************************************************/
-void SKP_FIX_P_Ana_calc_corr_st3(
-    SKP_int32        cross_corr_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ],/* (O) 3 DIM correlation array */
-    const SKP_int16  signal[],                        /* I vector to correlate         */
-    SKP_int          start_lag,                       /* I lag offset to search around */
-    SKP_int          sf_length,                       /* I length of a 5 ms subframe   */
-
-
-
-
-
-    SKP_int          complexity                       /* I Complexity setting          */
-)
-{
-    const SKP_int16 *target_ptr, *basis_ptr;
-    SKP_int32    cross_corr;
-    SKP_int        i, j, k, lag_counter;
-    SKP_int        cbk_offset, cbk_size, delta, idx;
-    SKP_int32    scratch_mem[ SCRATCH_SIZE ];
-
-    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
-    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
-
-    cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
-    cbk_size   = SKP_Silk_cbk_sizes_stage3[   complexity ];
-
-    target_ptr = &amp;signal[ SKP_LSHIFT( sf_length, 2 ) ]; /* Pointer to middle of frame */
-    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-        lag_counter = 0;
-
-        /* Calculate the correlations for each subframe */
-        for( j = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ]; j &lt;= SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 1 ]; j++ ) {
-            basis_ptr = target_ptr - ( start_lag + j );
-            cross_corr = SKP_Silk_inner_prod_aligned( (SKP_int16*)target_ptr, (SKP_int16*)basis_ptr, sf_length );
-            SKP_assert( lag_counter &lt; SCRATCH_SIZE );
-            scratch_mem[ lag_counter ] = cross_corr;
-            lag_counter++;
-        }
-
-        delta = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ];
-        for( i = cbk_offset; i &lt; ( cbk_offset + cbk_size ); i++ ) {
-            /* Fill out the 3 dim array that stores the correlations for */
-            /* each code_book vector for each start lag */
-            idx = SKP_Silk_CB_lags_stage3[ k ][ i ] - delta;
-            for( j = 0; j &lt; PITCH_EST_NB_STAGE3_LAGS; j++ ) {
-                SKP_assert( idx + j &lt; SCRATCH_SIZE );
-                SKP_assert( idx + j &lt; lag_counter );
-                cross_corr_st3[ k ][ i ][ j ] = scratch_mem[ idx + j ];
-            }
-        }
-        target_ptr += sf_length;
-    }
-}
-
-/********************************************************************/
-/* Calculate the energies for first two subframes. The energies are */
-/* calculated recursively.                                          */
-/********************************************************************/
-void SKP_FIX_P_Ana_calc_energy_st3(
-
-
-
-
-
-    SKP_int32        energies_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ],/* (O) 3 DIM energy array */
-    const SKP_int16  signal[],                        /* I vector to calc energy in    */
-    SKP_int          start_lag,                       /* I lag offset to search around */
-    SKP_int          sf_length,                       /* I length of one 5 ms subframe */
-    SKP_int          complexity                       /* I Complexity setting          */
-)
-{
-    const SKP_int16 *target_ptr, *basis_ptr;
-    SKP_int32    energy;
-    SKP_int        k, i, j, lag_counter;
-    SKP_int        cbk_offset, cbk_size, delta, idx;
-    SKP_int32    scratch_mem[ SCRATCH_SIZE ];
-
-    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
-    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
-
-    cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
-    cbk_size   = SKP_Silk_cbk_sizes_stage3[   complexity ];
-
-    target_ptr = &amp;signal[ SKP_LSHIFT( sf_length, 2 ) ];
-    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
-        lag_counter = 0;
-
-        /* Calculate the energy for first lag */
-        basis_ptr = target_ptr - ( start_lag + SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ] );
-        energy = SKP_Silk_inner_prod_aligned( basis_ptr, basis_ptr, sf_length );
-        SKP_assert( energy &gt;= 0 );
-        scratch_mem[ lag_counter ] = energy;
-        lag_counter++;
-
-        for( i = 1; i &lt; ( SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 1 ] - SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ] + 1 ); i++ ) {
-            /* remove part outside new window */
-            energy -= SKP_SMULBB( basis_ptr[ sf_length - i ], basis_ptr[ sf_length - i ] );
-            SKP_assert( energy &gt;= 0 );
-
-            /* add part that comes into window */
-            energy = SKP_ADD_SAT32( energy, SKP_SMULBB( basis_ptr[ -i ], basis_ptr[ -i ] ) );
-            SKP_assert( energy &gt;= 0 );
-            SKP_assert( lag_counter &lt; SCRATCH_SIZE );
-            scratch_mem[ lag_counter ] = energy;
-            lag_counter++;
-        }
-
-        delta = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ];
-        for( i = cbk_offset; i &lt; ( cbk_offset + cbk_size ); i++ ) {
-            /* Fill out the 3 dim array that stores the correlations for    */
-            /* each code_book vector for each start lag                        */
-            idx = SKP_Silk_CB_lags_stage3[ k ][ i ] - delta;
-
-
-
-
-
-            for( j = 0; j &lt; PITCH_EST_NB_STAGE3_LAGS; j++ ) {
-                SKP_assert( idx + j &lt; SCRATCH_SIZE );
-                SKP_assert( idx + j &lt; lag_counter );
-                energies_st3[ k ][ i ][ j ] = scratch_mem[ idx + j ];
-                SKP_assert( energies_st3[ k ][ i ][ j ] &gt;= 0.0f );
-            }
-        }
-        target_ptr += sf_length;
-    }
-}
-
-SKP_int32 SKP_FIX_P_Ana_find_scaling(
-    const SKP_int16  *signal,
-    const SKP_int    signal_length,
-    const SKP_int    sum_sqr_len
-)
-{
-    SKP_int32 nbits, x_max;
-
-    x_max = SKP_Silk_int16_array_maxabs( signal, signal_length );
-
-    if( x_max &lt; SKP_int16_MAX ) {
-        /* Number of bits needed for the sum of the squares */
-        nbits = 32 - SKP_Silk_CLZ32( SKP_SMULBB( x_max, x_max ) );
-    } else {
-        /* Here we don't know if x_max should have been SKP_int16_MAX + 1, so we expect the worst case */
-        nbits = 30;
-    }
-    nbits += 17 - SKP_Silk_CLZ16( sum_sqr_len );
-
-    /* Without a guarantee of saturation, we need to keep the 31st bit free */
-    if( nbits &lt; 31 ) {
-        return 0;
-    } else {
-        return( nbits - 30 );
-    }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/***********************************************************
+* Pitch analyser function
+********************************************************** */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_pitch_est_defines.h&quot;
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+#define SCRATCH_SIZE    22
+
+/************************************************************/
+/* Internally used functions                                */
+/************************************************************/
+void SKP_FIX_P_Ana_calc_corr_st3(
+    SKP_int32        cross_corr_st3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX][PITCH_EST_NB_STAGE3_LAGS],/* (O) 3 DIM correlation array */
+    const SKP_int16  signal[],                        /* I vector to correlate         */
+    SKP_int          start_lag,                       /* I lag offset to search around */
+    SKP_int          sf_length,                       /* I length of a 5 ms subframe   */
+    SKP_int          complexity                       /* I Complexity setting          */
+);
+
+void SKP_FIX_P_Ana_calc_energy_st3(
+    SKP_int32        energies_st3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX][PITCH_EST_NB_STAGE3_LAGS],/* (O) 3 DIM energy array */
+    const SKP_int16  signal[],                        /* I vector to calc energy in    */
+    SKP_int          start_lag,                       /* I lag offset to search around */
+    SKP_int          sf_length,                       /* I length of one 5 ms subframe */
+    SKP_int          complexity                       /* I Complexity setting          */
+);
+
+SKP_int32 SKP_FIX_P_Ana_find_scaling(
+    const SKP_int16  *signal,
+    const SKP_int    signal_length, 
+    const SKP_int    sum_sqr_len
+);
+
+void SKP_Silk_decode_pitch(
+    SKP_int          lagIndex,                        /* I                             */
+    SKP_int          contourIndex,                    /* O                             */
+    SKP_int          pitch_lags[],                    /* O 4 pitch values              */
+    SKP_int          Fs_kHz                           /* I sampling frequency (kHz)    */
+)
+{
+    SKP_int lag, i, min_lag;
+
+    min_lag = SKP_SMULBB( PITCH_EST_MIN_LAG_MS, Fs_kHz );
+
+    /* Only for 24 / 16 kHz version for now */
+    lag = min_lag + lagIndex;
+    if( Fs_kHz == 8 ) {
+        /* Only a small codebook for 8 khz */
+        for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
+            pitch_lags[ i ] = lag + SKP_Silk_CB_lags_stage2[ i ][ contourIndex ];
+        }
+    } else {
+        for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
+            pitch_lags[ i ] = lag + SKP_Silk_CB_lags_stage3[ i ][ contourIndex ];
+        }
+    }
+}
+
+/*************************************************************/
+/*      FIXED POINT CORE PITCH ANALYSIS FUNCTION             */
+/*************************************************************/
+SKP_int SKP_Silk_pitch_analysis_core(  /* O    Voicing estimate: 0 voiced, 1 unvoiced                      */
+    const SKP_int16  *signal,            /* I    Signal of length PITCH_EST_FRAME_LENGTH_MS*Fs_kHz           */
+    SKP_int          *pitch_out,         /* O    4 pitch lag values                                          */
+    SKP_int          *lagIndex,          /* O    Lag Index                                                   */
+    SKP_int          *contourIndex,      /* O    Pitch contour Index                                         */
+    SKP_int          *LTPCorr_Q15,       /* I/O  Normalized correlation; input: value from previous frame    */
+    SKP_int          prevLag,            /* I    Last lag of previous frame; set to zero is unvoiced         */
+    const SKP_int32  search_thres1_Q16,  /* I    First stage threshold for lag candidates 0 - 1              */
+    const SKP_int    search_thres2_Q15,  /* I    Final threshold for lag candidates 0 - 1                    */
+    const SKP_int    Fs_kHz,             /* I    Sample frequency (kHz)                                      */
+    const SKP_int    complexity          /* I    Complexity setting, 0-2, where 2 is highest                 */
+)
+{
+    SKP_int16 signal_8kHz[ PITCH_EST_MAX_FRAME_LENGTH_ST_2 ];
+    SKP_int16 signal_4kHz[ PITCH_EST_MAX_FRAME_LENGTH_ST_1 ];
+    SKP_int32 scratch_mem[ 3 * PITCH_EST_MAX_FRAME_LENGTH ];
+    SKP_int16 *input_signal_ptr;
+    SKP_int32 filt_state[ PITCH_EST_MAX_DECIMATE_STATE_LENGTH ];
+    SKP_int   i, k, d, j;
+    SKP_int16 C[ PITCH_EST_NB_SUBFR ][ ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ];
+    const SKP_int16 *target_ptr, *basis_ptr;
+    SKP_int32 cross_corr, normalizer, energy, shift, energy_basis, energy_target;
+    SKP_int   d_srch[ PITCH_EST_D_SRCH_LENGTH ];
+    SKP_int16 d_comp[ ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ];
+    SKP_int   Cmax, length_d_srch, length_d_comp;
+    SKP_int32 sum, threshold, temp32;
+    SKP_int   CBimax, CBimax_new, CBimax_old, lag, start_lag, end_lag, lag_new;
+    SKP_int32 CC[ PITCH_EST_NB_CBKS_STAGE2_EXT ], CCmax, CCmax_b, CCmax_new_b, CCmax_new;
+    SKP_int32 energies_st3[  PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ];
+    SKP_int32 crosscorr_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ];
+    SKP_int32 lag_counter;
+    SKP_int   frame_length, frame_length_8kHz, frame_length_4kHz, max_sum_sq_length;
+    SKP_int   sf_length, sf_length_8kHz, sf_length_4kHz;
+    SKP_int   min_lag, min_lag_8kHz, min_lag_4kHz;
+    SKP_int   max_lag, max_lag_8kHz, max_lag_4kHz;
+    SKP_int32 contour_bias, diff;
+    SKP_int32 lz, lshift;
+    SKP_int   cbk_offset, cbk_size, nb_cbks_stage2;
+    SKP_int32 delta_lag_log2_sqr_Q7, lag_log2_Q7, prevLag_log2_Q7, prev_lag_bias_Q15, corr_thres_Q15;
+
+    /* Check for valid sampling frequency */
+    SKP_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 || Fs_kHz == 24 );
+
+    /* Check for valid complexity setting */
+    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
+    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
+
+    SKP_assert( search_thres1_Q16 &gt;= 0 &amp;&amp; search_thres1_Q16 &lt;= (1&lt;&lt;16) );
+    SKP_assert( search_thres2_Q15 &gt;= 0 &amp;&amp; search_thres2_Q15 &lt;= (1&lt;&lt;15) );
+
+    /* Setup frame lengths max / min lag for the sampling frequency */
+    frame_length      = PITCH_EST_FRAME_LENGTH_MS * Fs_kHz;
+    frame_length_4kHz = PITCH_EST_FRAME_LENGTH_MS * 4;
+    frame_length_8kHz = PITCH_EST_FRAME_LENGTH_MS * 8;
+    sf_length         = SKP_RSHIFT( frame_length,      3 );
+    sf_length_4kHz    = SKP_RSHIFT( frame_length_4kHz, 3 );
+    sf_length_8kHz    = SKP_RSHIFT( frame_length_8kHz, 3 );
+    min_lag           = PITCH_EST_MIN_LAG_MS * Fs_kHz;
+    min_lag_4kHz      = PITCH_EST_MIN_LAG_MS * 4;
+    min_lag_8kHz      = PITCH_EST_MIN_LAG_MS * 8;
+    max_lag           = PITCH_EST_MAX_LAG_MS * Fs_kHz;
+    max_lag_4kHz      = PITCH_EST_MAX_LAG_MS * 4;
+    max_lag_8kHz      = PITCH_EST_MAX_LAG_MS * 8;
+
+    SKP_memset( C, 0, sizeof( SKP_int16 ) * PITCH_EST_NB_SUBFR * ( ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5) );
+    
+    /* Resample from input sampled at Fs_kHz to 8 kHz */
+    if( Fs_kHz == 12 ) {
+        SKP_int16 R23[ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ];
+        SKP_memset( R23, 0, ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
+        
+        SKP_Silk_resample_2_3_coarsest( signal_8kHz, R23, signal, 
+            PITCH_EST_FRAME_LENGTH_MS * 12, (SKP_int16*)scratch_mem );
+    } else if( Fs_kHz == 16 ) {
+        if( complexity == SigProc_PITCH_EST_MAX_COMPLEX ) {
+            SKP_assert( 4 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
+            SKP_memset( filt_state, 0, 4 * sizeof( SKP_int32 ) );
+
+            SKP_Silk_resample_1_2_coarse( signal, filt_state, signal_8kHz,
+                scratch_mem, frame_length_8kHz );
+        } else {
+            SKP_assert( 2 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
+            SKP_memset( filt_state, 0, 2 * sizeof( SKP_int32 ) );
+            
+            SKP_Silk_resample_1_2_coarsest( signal, filt_state, signal_8kHz,
+                scratch_mem, frame_length_8kHz );
+        }
+    } else if( Fs_kHz == 24 ) {
+        /* Resample to 24 -&gt; 8 khz */
+        SKP_assert( 7 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
+        SKP_memset( filt_state, 0, 7 * sizeof( SKP_int32 ) );
+
+        SKP_Silk_resample_1_3( signal_8kHz, filt_state, signal, 24 * PITCH_EST_FRAME_LENGTH_MS );
+    
+    } else {
+        SKP_assert( Fs_kHz == 8 );
+        SKP_memcpy( signal_8kHz, signal, frame_length_8kHz * sizeof( SKP_int16 ) );
+    }
+
+    /* Decimate again to 4 kHz. Set mem to zero */
+    if( complexity == SigProc_PITCH_EST_MAX_COMPLEX ) {
+        SKP_assert( 4 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
+        SKP_memset( filt_state, 0, 4 * sizeof( SKP_int32 ) );    
+        SKP_Silk_resample_1_2_coarse( signal_8kHz, filt_state,
+            signal_4kHz, scratch_mem, frame_length_4kHz );
+    } else {
+        SKP_assert( 2 &lt;= PITCH_EST_MAX_DECIMATE_STATE_LENGTH );
+        SKP_memset( filt_state, 0, 2 * sizeof( SKP_int32 ) );    
+        SKP_Silk_resample_1_2_coarsest( signal_8kHz, filt_state,
+            signal_4kHz, scratch_mem, frame_length_4kHz );
+    }
+
+    /* Low-pass filter */
+    for( i = frame_length_4kHz - 1; i &gt; 0; i-- ) {
+        signal_4kHz[ i ] = SKP_ADD_SAT16( signal_4kHz[ i ], signal_4kHz[ i - 1 ] );
+    }
+
+    /*******************************************************************************
+    ** Scale 4 kHz signal down to prevent correlations measures from overflowing
+    ** find scaling as max scaling for each 8kHz(?) subframe
+    *******************************************************************************/
+    
+    /* Inner product is calculated with different lengths, so scale for the worst case */
+    max_sum_sq_length = SKP_max_32( sf_length_8kHz, SKP_RSHIFT( frame_length_4kHz, 1 ) );
+    shift = SKP_FIX_P_Ana_find_scaling( signal_4kHz, frame_length_4kHz, max_sum_sq_length );
+    if( shift &gt; 0 ) {
+        for( i = 0; i &lt; frame_length_4kHz; i++ ) {
+            signal_4kHz[ i ] = SKP_RSHIFT( signal_4kHz[ i ], shift );
+        }
+    }
+
+    /******************************************************************************
+    * FIRST STAGE, operating in 4 khz
+    ******************************************************************************/
+    target_ptr = &amp;signal_4kHz[ SKP_RSHIFT( frame_length_4kHz, 1 ) ];
+    for( k = 0; k &lt; 2; k++ ) {
+        /* Check that we are within range of the array */
+        SKP_assert( target_ptr &gt;= signal_4kHz );
+        SKP_assert( target_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
+
+        basis_ptr = target_ptr - min_lag_4kHz;
+
+        /* Check that we are within range of the array */
+        SKP_assert( basis_ptr &gt;= signal_4kHz );
+        SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
+
+        normalizer = 0;
+        cross_corr = 0;
+        /* Calculate first vector products before loop */
+        cross_corr = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
+        normalizer = SKP_Silk_inner_prod_aligned( basis_ptr,  basis_ptr, sf_length_8kHz );
+        normalizer = SKP_ADD_SAT32( normalizer, 1000 );
+
+        temp32 = SKP_DIV32( cross_corr, SKP_Silk_SQRT_APPROX( normalizer ) + 1 );
+        C[ k ][ min_lag_4kHz ] = (SKP_int16)SKP_SAT16( temp32 );        /* Q0 */
+
+        /* From now on normalizer is computed recursively */
+        for( d = min_lag_4kHz + 1; d &lt;= max_lag_4kHz; d++ ) {
+            basis_ptr--;
+
+            /* Check that we are within range of the array */
+            SKP_assert( basis_ptr &gt;= signal_4kHz );
+            SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_4kHz + frame_length_4kHz );
+
+            cross_corr = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
+
+            /* Add contribution of new sample and remove contribution from oldest sample */
+            normalizer +=
+                SKP_SMULBB( basis_ptr[ 0 ], basis_ptr[ 0 ] ) - 
+                SKP_SMULBB( basis_ptr[ sf_length_8kHz ], basis_ptr[ sf_length_8kHz ] ); 
+    
+            temp32 = SKP_DIV32( cross_corr, SKP_Silk_SQRT_APPROX( normalizer ) + 1 );
+            C[ k ][ d ] = (SKP_int16)SKP_SAT16( temp32 );                        /* Q0 */
+        }
+        /* Update target pointer */
+        target_ptr += sf_length_8kHz;
+    }
+
+    /* Combine two subframes into single correlation measure and apply short-lag bias */
+    for( i = max_lag_4kHz; i &gt;= min_lag_4kHz; i-- ) {
+        sum = (SKP_int32)C[ 0 ][ i ] + (SKP_int32)C[ 1 ][ i ];                /* Q0 */
+        SKP_assert( SKP_RSHIFT( sum, 1 ) == SKP_SAT16( SKP_RSHIFT( sum, 1 ) ) );
+        sum = SKP_RSHIFT( sum, 1 );                                           /* Q-1 */
+        SKP_assert( SKP_LSHIFT( (SKP_int32)-i, 4 ) == SKP_SAT16( SKP_LSHIFT( (SKP_int32)-i, 4 ) ) );
+        sum = SKP_SMLAWB( sum, sum, SKP_LSHIFT( -i, 4 ) );                    /* Q-1 */
+        SKP_assert( sum == SKP_SAT16( sum ) );
+        C[ 0 ][ i ] = (SKP_int16)sum;                                         /* Q-1 */
+    }
+
+    /* Sort */
+    length_d_srch = 5 + complexity;
+    SKP_assert( length_d_srch &lt;= PITCH_EST_D_SRCH_LENGTH );
+    SKP_Silk_insertion_sort_decreasing_int16( &amp;C[ 0 ][ min_lag_4kHz ], d_srch, max_lag_4kHz - min_lag_4kHz + 1, length_d_srch );
+
+    /* Escape if correlation is very low already here */
+    target_ptr = &amp;signal_4kHz[ SKP_RSHIFT( frame_length_4kHz, 1 ) ];
+    energy = SKP_Silk_inner_prod_aligned( target_ptr, target_ptr, SKP_RSHIFT( frame_length_4kHz, 1 ) );
+    energy = SKP_ADD_SAT32( energy, 1000 );                                  /* Q0 */
+    Cmax = (SKP_int)C[ 0 ][ min_lag_4kHz ];                                  /* Q-1 */
+    threshold = SKP_SMULBB( Cmax, Cmax );                                    /* Q-2 */
+    /* Compare in Q-2 domain */
+    if( SKP_RSHIFT( energy, 4 + 2 ) &gt; threshold ) {                            
+        SKP_memset( pitch_out, 0, PITCH_EST_NB_SUBFR * sizeof( SKP_int ) );
+        *LTPCorr_Q15  = 0;
+        *lagIndex     = 0;
+        *contourIndex = 0;
+        return 1;
+    }
+
+    threshold = SKP_SMULWB( search_thres1_Q16, Cmax );
+    for( i = 0; i &lt; length_d_srch; i++ ) {
+        /* Convert to 8 kHz indices for the sorted correlation that exceeds the threshold */
+        if( C[ 0 ][ min_lag_4kHz + i ] &gt; threshold ) {
+            d_srch[ i ] = SKP_LSHIFT( d_srch[ i ] + min_lag_4kHz, 1 );
+        } else {
+            length_d_srch = i;
+            break;
+        }
+    }
+    SKP_assert( length_d_srch &gt; 0 );
+
+    for( i = min_lag_8kHz - 5; i &lt; max_lag_8kHz + 5; i++ ) {
+        d_comp[ i ] = 0;
+    }
+    for( i = 0; i &lt; length_d_srch; i++ ) {
+        d_comp[ d_srch[ i ] ] = 1;
+    }
+
+    /* Convolution */
+    for( i = max_lag_8kHz + 3; i &gt;= min_lag_8kHz; i-- ) {
+        d_comp[ i ] += d_comp[ i - 1 ] + d_comp[ i - 2 ];
+    }
+
+    length_d_srch = 0;
+    for( i = min_lag_8kHz; i &lt; max_lag_8kHz + 1; i++ ) {    
+        if( d_comp[ i + 1 ] &gt; 0 ) {
+            d_srch[ length_d_srch ] = i;
+            length_d_srch++;
+        }
+    }
+
+    /* Convolution */
+    for( i = max_lag_8kHz + 3; i &gt;= min_lag_8kHz; i-- ) {
+        d_comp[ i ] += d_comp[ i - 1 ] + d_comp[ i - 2 ] + d_comp[ i - 3 ];
+    }
+
+    length_d_comp = 0;
+    for( i = min_lag_8kHz; i &lt; max_lag_8kHz + 4; i++ ) {    
+        if( d_comp[ i ] &gt; 0 ) {
+            d_comp[ length_d_comp ] = i - 2;
+            length_d_comp++;
+        }
+    }
+
+    /**********************************************************************************
+    ** SECOND STAGE, operating at 8 kHz, on lag sections with high correlation
+    *************************************************************************************/
+
+    /******************************************************************************
+    ** Scale signal down to avoid correlations measures from overflowing
+    *******************************************************************************/
+    /* find scaling as max scaling for each subframe */
+    shift = SKP_FIX_P_Ana_find_scaling( signal_8kHz, frame_length_8kHz, sf_length_8kHz );
+    if( shift &gt; 0 ) {
+        for( i = 0; i &lt; frame_length_8kHz; i++ ) {
+            signal_8kHz[ i ] = SKP_RSHIFT( signal_8kHz[ i ], shift );
+        }
+    }
+
+    /********************************************************************************* 
+    * Find energy of each subframe projected onto its history, for a range of delays
+    *********************************************************************************/
+    SKP_memset( C, 0, PITCH_EST_NB_SUBFR * ( ( PITCH_EST_MAX_LAG &gt;&gt; 1 ) + 5 ) * sizeof( SKP_int16 ) );
+    
+    target_ptr = &amp;signal_8kHz[ frame_length_4kHz ]; /* point to middle of frame */
+    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+
+        /* Check that we are within range of the array */
+        SKP_assert( target_ptr &gt;= signal_8kHz );
+        SKP_assert( target_ptr + sf_length_8kHz &lt;= signal_8kHz + frame_length_8kHz );
+
+        energy_target = SKP_Silk_inner_prod_aligned( target_ptr, target_ptr, sf_length_8kHz );
+        // ToDo: Calculate 1 / energy_target here and save one division inside next for loop
+        for( j = 0; j &lt; length_d_comp; j++ ) {
+            d = d_comp[ j ];
+            basis_ptr = target_ptr - d;
+
+            /* Check that we are within range of the array */
+            SKP_assert( basis_ptr &gt;= signal_8kHz );
+            SKP_assert( basis_ptr + sf_length_8kHz &lt;= signal_8kHz + frame_length_8kHz );
+        
+            cross_corr   = SKP_Silk_inner_prod_aligned( target_ptr, basis_ptr, sf_length_8kHz );
+            energy_basis = SKP_Silk_inner_prod_aligned( basis_ptr,  basis_ptr, sf_length_8kHz );
+            if( cross_corr &gt; 0 ) {
+                energy = SKP_max( energy_target, energy_basis ); /* Find max to make sure first division &lt; 1.0 */
+                lz = SKP_Silk_CLZ32( cross_corr );
+                lshift = SKP_LIMIT( lz - 1, 0, 15 );
+                temp32 = SKP_DIV32( SKP_LSHIFT( cross_corr, lshift ), SKP_RSHIFT( energy, 15 - lshift ) + 1 ); /* Q15 */
+                SKP_assert( temp32 == SKP_SAT16( temp32 ) );
+                temp32 = SKP_SMULWB( cross_corr, temp32 ); /* Q(-1), cc * ( cc / max(b, t) ) */
+                temp32 = SKP_ADD_SAT32( temp32, temp32 );  /* Q(0) */
+                lz = SKP_Silk_CLZ32( temp32 );
+                lshift = SKP_LIMIT( lz - 1, 0, 15 );
+                energy = SKP_min( energy_target, energy_basis );
+                C[ k ][ d ] = SKP_DIV32( SKP_LSHIFT( temp32, lshift ), SKP_RSHIFT( energy, 15 - lshift ) + 1 ); // Q15
+            } else {
+                C[ k ][ d ] = 0;
+            }
+        }
+        target_ptr += sf_length_8kHz;
+    }
+
+    /* search over lag range and lags codebook */
+    /* scale factor for lag codebook, as a function of center lag */
+
+    CCmax   = SKP_int32_MIN;
+    CCmax_b = SKP_int32_MIN;
+
+    CBimax = 0; /* To avoid returning undefined lag values */
+    lag = -1;   /* To check if lag with strong enough correlation has been found */
+
+    if( prevLag &gt; 0 ) {
+        if( Fs_kHz == 12 ) {
+            prevLag = SKP_DIV32_16( SKP_LSHIFT( prevLag, 1 ), 3 );
+        } else if( Fs_kHz == 16 ) {
+            prevLag = SKP_RSHIFT( prevLag, 1 );
+        } else if( Fs_kHz == 24 ) {
+            prevLag = SKP_DIV32_16( prevLag, 3 );
+        }
+        prevLag_log2_Q7 = SKP_Silk_lin2log( (SKP_int32)prevLag );
+    } else {
+        prevLag_log2_Q7 = 0;
+    }
+    SKP_assert( search_thres2_Q15 == SKP_SAT16( search_thres2_Q15 ) );
+    corr_thres_Q15 = SKP_RSHIFT( SKP_SMULBB( search_thres2_Q15, search_thres2_Q15 ), 13 );
+
+    /* If input is 8 khz use a larger codebook here because it is last stage */
+    if( Fs_kHz == 8 &amp;&amp; complexity &gt; SigProc_PITCH_EST_MIN_COMPLEX ) {
+        nb_cbks_stage2 = PITCH_EST_NB_CBKS_STAGE2_EXT;    
+    } else {
+        nb_cbks_stage2 = PITCH_EST_NB_CBKS_STAGE2;
+    }
+
+    for( k = 0; k &lt; length_d_srch; k++ ) {
+        d = d_srch[ k ];
+        for( j = 0; j &lt; nb_cbks_stage2; j++ ) {
+            CC[ j ] = 0;
+            for( i = 0; i &lt; PITCH_EST_NB_SUBFR; i++ ) {
+                /* Try all codebooks */
+                CC[ j ] = CC[ j ] + (SKP_int32)C[ i ][ d + SKP_Silk_CB_lags_stage2[ i ][ j ] ];
+            }
+        }
+        /* Find best codebook */
+        CCmax_new = SKP_int32_MIN;
+        CBimax_new = 0;
+        for( i = 0; i &lt; nb_cbks_stage2; i++ ) {
+            if( CC[ i ] &gt; CCmax_new ) {
+                CCmax_new = CC[ i ];
+                CBimax_new = i;
+            }
+        }
+
+        /* Bias towards shorter lags */
+        lag_log2_Q7 = SKP_Silk_lin2log( (SKP_int32)d ); /* Q7 */
+        SKP_assert( lag_log2_Q7 == SKP_SAT16( lag_log2_Q7 ) );
+        SKP_assert( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15 == SKP_SAT16( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15 ) );
+        CCmax_new_b = CCmax_new - SKP_RSHIFT( SKP_SMULBB( PITCH_EST_NB_SUBFR * PITCH_EST_SHORTLAG_BIAS_Q15, lag_log2_Q7 ), 7 ); /* Q15 */
+
+        /* Bias towards previous lag */
+        SKP_assert( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15 == SKP_SAT16( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15 ) );
+        if( prevLag &gt; 0 ) {
+            delta_lag_log2_sqr_Q7 = lag_log2_Q7 - prevLag_log2_Q7;
+            SKP_assert( delta_lag_log2_sqr_Q7 == SKP_SAT16( delta_lag_log2_sqr_Q7 ) );
+            delta_lag_log2_sqr_Q7 = SKP_RSHIFT( SKP_SMULBB( delta_lag_log2_sqr_Q7, delta_lag_log2_sqr_Q7 ), 7 );
+            prev_lag_bias_Q15 = SKP_RSHIFT( SKP_SMULBB( PITCH_EST_NB_SUBFR * PITCH_EST_PREVLAG_BIAS_Q15, ( *LTPCorr_Q15 ) ), 15 ); /* Q15 */
+            prev_lag_bias_Q15 = SKP_DIV32( SKP_MUL( prev_lag_bias_Q15, delta_lag_log2_sqr_Q7 ), delta_lag_log2_sqr_Q7 + ( 1 &lt;&lt; 6 ) );
+            CCmax_new_b -= prev_lag_bias_Q15; /* Q15 */
+        }
+
+        if( CCmax_new_b &gt; CCmax_b &amp;&amp; CCmax_new &gt; corr_thres_Q15 ) {
+            CCmax_b = CCmax_new_b;
+            CCmax   = CCmax_new;
+            lag     = d;
+            CBimax  = CBimax_new;
+        }
+    }
+
+    if( lag == -1 ) {
+        /* No suitable candidate found */
+        SKP_memset( pitch_out, 0, PITCH_EST_NB_SUBFR * sizeof( SKP_int ) );
+        *LTPCorr_Q15  = 0;
+        *lagIndex     = 0;
+        *contourIndex = 0;
+        return 1;
+    }
+
+    if( Fs_kHz &gt; 8 ) {
+
+        /******************************************************************************
+        ** Scale input signal down to avoid correlations measures from overflowing
+        *******************************************************************************/
+        /* find scaling as max scaling for each subframe */
+        shift = SKP_FIX_P_Ana_find_scaling( signal, frame_length, sf_length );
+        if( shift &gt; 0 ) {
+            /* Move signal to scratch mem because the input signal should be unchanged */
+            /* Reuse the 32 bit scratch mem vector, use a 16 bit pointer from now */
+            input_signal_ptr = (SKP_int16*)scratch_mem;
+            for( i = 0; i &lt; frame_length; i++ ) {
+                input_signal_ptr[ i ] = SKP_RSHIFT( signal[ i ], shift );
+            }
+        } else {
+            input_signal_ptr = (SKP_int16*)signal;
+        }
+        /*********************************************************************************/
+
+        /* Search in original signal */
+                    
+        CBimax_old = CBimax;
+        /* Compensate for decimation */
+        SKP_assert( lag == SKP_SAT16( lag ) );
+        if( Fs_kHz == 12 ) {
+            lag = SKP_RSHIFT( SKP_SMULBB( lag, 3 ), 1 );
+        } else if( Fs_kHz == 16 ) {
+            lag = SKP_LSHIFT( lag, 1 );
+        } else {
+            lag = SKP_SMULBB( lag, 3 );
+        }
+
+        lag = SKP_LIMIT( lag, min_lag, max_lag );
+        start_lag = SKP_max_int( lag - 2, min_lag );
+        end_lag   = SKP_min_int( lag + 2, max_lag );
+        lag_new   = lag;                                    /* to avoid undefined lag */
+        CBimax    = 0;                                        /* to avoid undefined lag */
+        SKP_assert( SKP_LSHIFT( CCmax, 13 ) &gt;= 0 ); 
+        *LTPCorr_Q15 = (SKP_int)SKP_Silk_SQRT_APPROX( SKP_LSHIFT( CCmax, 13 ) ); /* Output normalized correlation */
+
+        CCmax = SKP_int32_MIN;
+        /* pitch lags according to second stage */
+        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+            pitch_out[ k ] = lag + 2 * SKP_Silk_CB_lags_stage2[ k ][ CBimax_old ];
+        }
+        /* Calculate the correlations and energies needed in stage 3 */
+        SKP_FIX_P_Ana_calc_corr_st3(  crosscorr_st3, input_signal_ptr, start_lag, sf_length, complexity );
+        SKP_FIX_P_Ana_calc_energy_st3( energies_st3, input_signal_ptr, start_lag, sf_length, complexity );
+
+        lag_counter = 0;
+        SKP_assert( lag == SKP_SAT16( lag ) );
+        contour_bias = SKP_DIV32_16( PITCH_EST_FLATCONTOUR_BIAS_Q20, lag );
+
+        /* Setup cbk parameters acording to complexity setting */
+        cbk_size   = (SKP_int)SKP_Silk_cbk_sizes_stage3[   complexity ];
+        cbk_offset = (SKP_int)SKP_Silk_cbk_offsets_stage3[ complexity ];
+
+        for( d = start_lag; d &lt;= end_lag; d++ ) {
+            for( j = cbk_offset; j &lt; ( cbk_offset + cbk_size ); j++ ) {
+                cross_corr = 0;
+                energy     = 0;
+                for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+                    SKP_assert( PITCH_EST_NB_SUBFR == 4 );
+                    energy     += SKP_RSHIFT( energies_st3[  k ][ j ][ lag_counter ], 2 ); /* use mean, to avoid overflow */
+                    SKP_assert( energy &gt;= 0 );
+                    cross_corr += SKP_RSHIFT( crosscorr_st3[ k ][ j ][ lag_counter ], 2 ); /* use mean, to avoid overflow */
+                }
+                if( cross_corr &gt; 0 ) {
+                    /* Divide cross_corr / energy and get result in Q15 */
+                    lz = SKP_Silk_CLZ32( cross_corr );
+                    /* Divide with result in Q13, cross_corr could be larger than energy */
+                    lshift = SKP_LIMIT( lz - 1, 0, 13 );
+                    CCmax_new = SKP_DIV32( SKP_LSHIFT( cross_corr, lshift ), SKP_RSHIFT( energy, 13 - lshift ) + 1 );
+                    CCmax_new = SKP_SAT16( CCmax_new );
+                    CCmax_new = SKP_SMULWB( cross_corr, CCmax_new );
+                    /* Saturate */
+                    if( CCmax_new &gt; SKP_RSHIFT( SKP_int32_MAX, 3 ) ) {
+                        CCmax_new = SKP_int32_MAX;
+                    } else {
+                        CCmax_new = SKP_LSHIFT( CCmax_new, 3 );
+                    }
+                    /* Reduce depending on flatness of contour */
+                    diff = j - SKP_RSHIFT( PITCH_EST_NB_CBKS_STAGE3_MAX, 1 );
+                    diff = SKP_MUL( diff, diff );
+                    diff = SKP_int16_MAX - SKP_RSHIFT( SKP_MUL( contour_bias, diff ), 5 ); /* Q20 -&gt; Q15 */
+                    SKP_assert( diff == SKP_SAT16( diff ) );
+                    CCmax_new = SKP_LSHIFT( SKP_SMULWB( CCmax_new, diff ), 1 );
+                } else {
+                    CCmax_new = 0;
+                }
+
+                if( CCmax_new &gt; CCmax ) {
+                    CCmax   = CCmax_new;
+                    lag_new = d;
+                    CBimax  = j;
+                }
+            }
+            lag_counter++;
+        }
+
+        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+            pitch_out[ k ] = lag_new + SKP_Silk_CB_lags_stage3[ k ][ CBimax ];
+        }
+        *lagIndex = lag_new - min_lag;
+        *contourIndex = CBimax;
+    } else {
+        /* Save Lags and correlation */
+        CCmax = SKP_max( CCmax, 0 );
+        *LTPCorr_Q15 = (SKP_int)SKP_Silk_SQRT_APPROX( SKP_LSHIFT( CCmax, 13 ) ); /* Output normalized correlation */
+        for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+            pitch_out[ k ] = lag + SKP_Silk_CB_lags_stage2[ k ][ CBimax ];
+        }
+        *lagIndex = lag - min_lag_8kHz;
+        *contourIndex = CBimax;
+    }
+    SKP_assert( *lagIndex &gt;= 0 );
+    /* return as voiced */
+    return 0;
+}
+
+/*************************************************************************/
+/* Calculates the correlations used in stage 3 search. In order to cover */
+/* the whole lag codebook for all the searched offset lags (lag +- 2),   */
+/*************************************************************************/
+void SKP_FIX_P_Ana_calc_corr_st3(
+    SKP_int32        cross_corr_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ],/* (O) 3 DIM correlation array */
+    const SKP_int16  signal[],                        /* I vector to correlate         */
+    SKP_int          start_lag,                       /* I lag offset to search around */
+    SKP_int          sf_length,                       /* I length of a 5 ms subframe   */
+    SKP_int          complexity                       /* I Complexity setting          */
+)
+{
+    const SKP_int16 *target_ptr, *basis_ptr;
+    SKP_int32    cross_corr;
+    SKP_int        i, j, k, lag_counter;
+    SKP_int        cbk_offset, cbk_size, delta, idx;
+    SKP_int32    scratch_mem[ SCRATCH_SIZE ];
+
+    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
+    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
+
+    cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
+    cbk_size   = SKP_Silk_cbk_sizes_stage3[   complexity ];
+
+    target_ptr = &amp;signal[ SKP_LSHIFT( sf_length, 2 ) ]; /* Pointer to middle of frame */
+    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+        lag_counter = 0;
+
+        /* Calculate the correlations for each subframe */
+        for( j = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ]; j &lt;= SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 1 ]; j++ ) {
+            basis_ptr = target_ptr - ( start_lag + j );
+            cross_corr = SKP_Silk_inner_prod_aligned( (SKP_int16*)target_ptr, (SKP_int16*)basis_ptr, sf_length );
+            SKP_assert( lag_counter &lt; SCRATCH_SIZE );
+            scratch_mem[ lag_counter ] = cross_corr;
+            lag_counter++;
+        }
+
+        delta = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ];
+        for( i = cbk_offset; i &lt; ( cbk_offset + cbk_size ); i++ ) { 
+            /* Fill out the 3 dim array that stores the correlations for */
+            /* each code_book vector for each start lag */
+            idx = SKP_Silk_CB_lags_stage3[ k ][ i ] - delta;
+            for( j = 0; j &lt; PITCH_EST_NB_STAGE3_LAGS; j++ ) {
+                SKP_assert( idx + j &lt; SCRATCH_SIZE );
+                SKP_assert( idx + j &lt; lag_counter );
+                cross_corr_st3[ k ][ i ][ j ] = scratch_mem[ idx + j ];
+            }
+        }
+        target_ptr += sf_length;
+    }
+}
+
+/********************************************************************/
+/* Calculate the energies for first two subframes. The energies are */
+/* calculated recursively.                                          */
+/********************************************************************/
+void SKP_FIX_P_Ana_calc_energy_st3(
+    SKP_int32        energies_st3[ PITCH_EST_NB_SUBFR ][ PITCH_EST_NB_CBKS_STAGE3_MAX ][ PITCH_EST_NB_STAGE3_LAGS ],/* (O) 3 DIM energy array */
+    const SKP_int16  signal[],                        /* I vector to calc energy in    */
+    SKP_int          start_lag,                       /* I lag offset to search around */
+    SKP_int          sf_length,                       /* I length of one 5 ms subframe */
+    SKP_int          complexity                       /* I Complexity setting          */
+)
+{
+    const SKP_int16 *target_ptr, *basis_ptr;
+    SKP_int32    energy;
+    SKP_int        k, i, j, lag_counter;
+    SKP_int        cbk_offset, cbk_size, delta, idx;
+    SKP_int32    scratch_mem[ SCRATCH_SIZE ];
+
+    SKP_assert( complexity &gt;= SigProc_PITCH_EST_MIN_COMPLEX );
+    SKP_assert( complexity &lt;= SigProc_PITCH_EST_MAX_COMPLEX );
+
+    cbk_offset = SKP_Silk_cbk_offsets_stage3[ complexity ];
+    cbk_size   = SKP_Silk_cbk_sizes_stage3[   complexity ];
+
+    target_ptr = &amp;signal[ SKP_LSHIFT( sf_length, 2 ) ];
+    for( k = 0; k &lt; PITCH_EST_NB_SUBFR; k++ ) {
+        lag_counter = 0;
+
+        /* Calculate the energy for first lag */
+        basis_ptr = target_ptr - ( start_lag + SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ] );
+        energy = SKP_Silk_inner_prod_aligned( basis_ptr, basis_ptr, sf_length );
+        SKP_assert( energy &gt;= 0 );
+        scratch_mem[ lag_counter ] = energy;
+        lag_counter++;
+
+        for( i = 1; i &lt; ( SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 1 ] - SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ] + 1 ); i++ ) {
+            /* remove part outside new window */
+            energy -= SKP_SMULBB( basis_ptr[ sf_length - i ], basis_ptr[ sf_length - i ] );
+            SKP_assert( energy &gt;= 0 );
+
+            /* add part that comes into window */
+            energy = SKP_ADD_SAT32( energy, SKP_SMULBB( basis_ptr[ -i ], basis_ptr[ -i ] ) );
+            SKP_assert( energy &gt;= 0 );
+            SKP_assert( lag_counter &lt; SCRATCH_SIZE );
+            scratch_mem[ lag_counter ] = energy;
+            lag_counter++;
+        }
+
+        delta = SKP_Silk_Lag_range_stage3[ complexity ][ k ][ 0 ];
+        for( i = cbk_offset; i &lt; ( cbk_offset + cbk_size ); i++ ) { 
+            /* Fill out the 3 dim array that stores the correlations for    */
+            /* each code_book vector for each start lag                        */
+            idx = SKP_Silk_CB_lags_stage3[ k ][ i ] - delta;
+            for( j = 0; j &lt; PITCH_EST_NB_STAGE3_LAGS; j++ ) {
+                SKP_assert( idx + j &lt; SCRATCH_SIZE );
+                SKP_assert( idx + j &lt; lag_counter );
+                energies_st3[ k ][ i ][ j ] = scratch_mem[ idx + j ];
+                SKP_assert( energies_st3[ k ][ i ][ j ] &gt;= 0.0f );
+            }
+        }
+        target_ptr += sf_length;
+    }
+}
+
+SKP_int32 SKP_FIX_P_Ana_find_scaling(
+    const SKP_int16  *signal,
+    const SKP_int    signal_length, 
+    const SKP_int    sum_sqr_len
+)
+{
+    SKP_int32 nbits, x_max;
+    
+    x_max = SKP_Silk_int16_array_maxabs( signal, signal_length );
+
+    if( x_max &lt; SKP_int16_MAX ) {
+        /* Number of bits needed for the sum of the squares */
+        nbits = 32 - SKP_Silk_CLZ32( SKP_SMULBB( x_max, x_max ) ); 
+    } else {
+        /* Here we don't know if x_max should have been SKP_int16_MAX + 1, so we expect the worst case */
+        nbits = 30;
+    }
+    nbits += 17 - SKP_Silk_CLZ16( sum_sqr_len );
+
+    /* Without a guarantee of saturation, we need to keep the 31st bit free */
+    if( nbits &lt; 31 ) {
+        return 0;
+    } else {
+        return( nbits - 30 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_pitch_est_definesh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_defines.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_defines.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_defines.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,52 +1,43 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SIGPROCFIX_PITCH_EST_DEFINES_H
-#define SIGPROCFIX_PITCH_EST_DEFINES_H
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_common_pitch_est_defines.h&quot;
-
-/************************************************************/
-/* Definitions For Fix pitch estimator                                          */
-/************************************************************/
-
-#define PITCH_EST_SHORTLAG_BIAS_Q15                     6554    /* 0.2f. for logarithmic weighting      */
-#define PITCH_EST_PREVLAG_BIAS_Q15                      6554    /* Prev lag bias        */
-#define PITCH_EST_FLATCONTOUR_BIAS_Q20          52429   /* 0.05f */
-
-#endif
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SIGPROCFIX_PITCH_EST_DEFINES_H
+#define SIGPROCFIX_PITCH_EST_DEFINES_H
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_common_pitch_est_defines.h&quot;
+
+/************************************************************/
+/* Definitions For Fix pitch estimator                                                */
+/************************************************************/
+
+#define PITCH_EST_SHORTLAG_BIAS_Q15                        6554        /* 0.2f. for logarithmic weighting        */
+#define PITCH_EST_PREVLAG_BIAS_Q15                        6554        /* Prev lag bias        */
+#define PITCH_EST_FLATCONTOUR_BIAS_Q20                52429        /* 0.05f */
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_pitch_est_tablesc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_tables.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_tables.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_pitch_est_tables.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,105 +1,89 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_pitch_est_defines.h&quot;
-
-/********************************************************/
-/* Auto Generated File from generate_pitch_est_tables.m */
-/********************************************************/
-
-const SKP_int16 SKP_Silk_CB_lags_stage2[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE2_EXT] =
-{
-    {0, 2,-1,-1,-1, 0, 0, 1, 1, 0, 1},
-    {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
-    {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0},
-    {0,-1, 2, 1, 0, 1, 1, 0, 0,-1,-1}
-};
-
-const SKP_int16 SKP_Silk_CB_lags_stage3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX] =
-
-
-
-
-
-{
-    {-9,-7,-6,-5,-5,-4,-4,-3,-3,-2,-2,-2,-1,-1,-1, 0, 0, 0, 1, 1, 0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 5, 6, 8},
-    {-3,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0,-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 2, 3},
-    { 3, 3, 2, 2, 2, 2, 1, 2, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,-1, 0, 0,-1,-1,-1,-1,-1,-2,-2,-2},
-    { 9, 8, 6, 5, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1, 0, 1, 1, 0, 0, 0,-1,-1,-1,-2,-2,-2,-3,-3,-4,-4,-5,-5,-6,-7}
- };
-
-const SKP_int16 SKP_Silk_Lag_range_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ] [ PITCH_EST_NB_SUBFR ][ 2 ] =
-{
-    /* Lags to search for low number of stage3 cbks */
-    {
-        {-2,6},
-        {-1,5},
-        {-1,5},
-        {-2,7}
-    },
-    /* Lags to search for middle number of stage3 cbks */
-    {
-        {-4,8},
-        {-1,6},
-        {-1,6},
-        {-4,9}
-    },
-    /* Lags to search for max number of stage3 cbks */
-    {
-        {-9,12},
-        {-3,7},
-        {-2,7},
-        {-7,13}
-    }
-};
-
-const SKP_int16 SKP_Silk_cbk_sizes_stage3[SigProc_PITCH_EST_MAX_COMPLEX + 1] =
-{
-    PITCH_EST_NB_CBKS_STAGE3_MIN,
-    PITCH_EST_NB_CBKS_STAGE3_MID,
-    PITCH_EST_NB_CBKS_STAGE3_MAX
-};
-
-const SKP_int16 SKP_Silk_cbk_offsets_stage3[SigProc_PITCH_EST_MAX_COMPLEX + 1] =
-{
-    ((PITCH_EST_NB_CBKS_STAGE3_MAX - PITCH_EST_NB_CBKS_STAGE3_MIN) &gt;&gt; 1),
-    ((PITCH_EST_NB_CBKS_STAGE3_MAX - PITCH_EST_NB_CBKS_STAGE3_MID) &gt;&gt; 1),
-    0
-};
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_pitch_est_defines.h&quot;
+
+/********************************************************/
+/* Auto Generated File from generate_pitch_est_tables.m */
+/********************************************************/
+
+const SKP_int16 SKP_Silk_CB_lags_stage2[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE2_EXT] =
+{
+    {0, 2,-1,-1,-1, 0, 0, 1, 1, 0, 1},
+    {0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
+    {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0},
+    {0,-1, 2, 1, 0, 1, 1, 0, 0,-1,-1} 
+};
+
+const SKP_int16 SKP_Silk_CB_lags_stage3[PITCH_EST_NB_SUBFR][PITCH_EST_NB_CBKS_STAGE3_MAX] =
+{
+    {-9,-7,-6,-5,-5,-4,-4,-3,-3,-2,-2,-2,-1,-1,-1, 0, 0, 0, 1, 1, 0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 5, 6, 8},
+    {-3,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0,-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 2, 3},
+    { 3, 3, 2, 2, 2, 2, 1, 2, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,-1, 0, 0,-1,-1,-1,-1,-1,-2,-2,-2},
+    { 9, 8, 6, 5, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1, 0, 1, 1, 0, 0, 0,-1,-1,-1,-2,-2,-2,-3,-3,-4,-4,-5,-5,-6,-7}
+ };
+
+const SKP_int16 SKP_Silk_Lag_range_stage3[ SigProc_PITCH_EST_MAX_COMPLEX + 1 ] [ PITCH_EST_NB_SUBFR ][ 2 ] =
+{
+    /* Lags to search for low number of stage3 cbks */
+    {
+        {-2,6},
+        {-1,5},
+        {-1,5},
+        {-2,7}
+    },
+    /* Lags to search for middle number of stage3 cbks */
+    {
+        {-4,8},
+        {-1,6},
+        {-1,6},
+        {-4,9}
+    },
+    /* Lags to search for max number of stage3 cbks */
+    {
+        {-9,12},
+        {-3,7},
+        {-2,7},
+        {-7,13}
+    }
+};
+
+const SKP_int16 SKP_Silk_cbk_sizes_stage3[SigProc_PITCH_EST_MAX_COMPLEX + 1] = 
+{
+    PITCH_EST_NB_CBKS_STAGE3_MIN,
+    PITCH_EST_NB_CBKS_STAGE3_MID,
+    PITCH_EST_NB_CBKS_STAGE3_MAX
+};
+
+const SKP_int16 SKP_Silk_cbk_offsets_stage3[SigProc_PITCH_EST_MAX_COMPLEX + 1] = 
+{
+    ((PITCH_EST_NB_CBKS_STAGE3_MAX - PITCH_EST_NB_CBKS_STAGE3_MIN) &gt;&gt; 1),
+    ((PITCH_EST_NB_CBKS_STAGE3_MAX - PITCH_EST_NB_CBKS_STAGE3_MID) &gt;&gt; 1),
+    0
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_prefilter_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_prefilter_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_prefilter_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_prefilter_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,187 +1,166 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-#include &quot;SKP_Silk_perceptual_parameters_FIX.h&quot;
-
-/* SKP_Silk_prefilter. Prefilter for finding Quantizer input signal */
-SKP_INLINE void SKP_Silk_prefilt_FIX(
-    SKP_Silk_prefilter_state_FIX *P,                    /* I/O state                          */
-    SKP_int32   st_res_Q12[],                           /* I short term residual signal       */
-    SKP_int16   xw[],                                   /* O prefiltered signal               */
-    SKP_int32   HarmShapeFIRPacked_Q12,                 /* I Harmonic shaping coeficients     */
-    SKP_int     Tilt_Q14,                               /* I Tilt shaping coeficient          */
-    SKP_int32   LF_shp_Q14,                             /* I Low-frequancy shaping coeficients*/
-    SKP_int     lag,                                    /* I Lag for harmonic shaping         */
-    SKP_int     length                                  /* I Length of signals                */
-);
-
-void SKP_Silk_prefilter_FIX(
-
-
-
-
-
-    SKP_Silk_encoder_state_FIX          *psEnc,         /* I/O  Encoder state FIX                           */
-    const SKP_Silk_encoder_control_FIX  *psEncCtrl,     /* I    Encoder control FIX                         */
-    SKP_int16                           xw[],           /* O    Weighted signal                             */
-    const SKP_int16                     x[]             /* I    Speech signal                               */
-)
-{
-    SKP_Silk_prefilter_state_FIX *P = &amp;psEnc-&gt;sPrefilt;
-    SKP_int   j, k, lag;
-    SKP_int32 tmp_32, B_Q12;
-    const SKP_int16 *AR1_shp_Q13;
-    const SKP_int16 *px;
-    SKP_int16 *pxw, *pst_res;
-    SKP_int   HarmShapeGain_Q12, Tilt_Q14, LF_shp_Q14;
-    SKP_int32 HarmShapeFIRPacked_Q12;
-    SKP_int32 x_filt_Q12[ MAX_FRAME_LENGTH / NB_SUBFR ], filterState[ MAX_LPC_ORDER ];
-    SKP_int16 st_res[ ( MAX_FRAME_LENGTH / NB_SUBFR ) + MAX_LPC_ORDER ];
-
-    /* Setup pointers */
-    px  = x;
-    pxw = xw;
-    lag = P-&gt;lagPrev;
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* Update Variables that change per sub frame */
-        if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-            lag = psEncCtrl-&gt;sCmn.pitchL[ k ];
-        }
-
-        /* Noise shape parameters */
-        HarmShapeGain_Q12 = SKP_SMULWB( psEncCtrl-&gt;HarmShapeGain_Q14[ k ], 16384 - psEncCtrl-&gt;HarmBoost_Q14[ k ] );
-        SKP_assert( HarmShapeGain_Q12 &gt;= 0 );
-        HarmShapeFIRPacked_Q12  =                        SKP_RSHIFT( HarmShapeGain_Q12, 2 );
-        HarmShapeFIRPacked_Q12 |= SKP_LSHIFT( (SKP_int32)SKP_RSHIFT( HarmShapeGain_Q12, 1 ), 16 );
-        Tilt_Q14    = psEncCtrl-&gt;Tilt_Q14[   k ];
-        LF_shp_Q14  = psEncCtrl-&gt;LF_shp_Q14[ k ];
-        AR1_shp_Q13 = &amp;psEncCtrl-&gt;AR1_Q13[   k * SHAPE_LPC_ORDER_MAX ];
-
-        /* Short term FIR filtering*/
-        SKP_memset( filterState, 0, psEnc-&gt;sCmn.shapingLPCOrder * sizeof( SKP_int32 ) );
-        SKP_Silk_MA_Prediction_Q13( px - psEnc-&gt;sCmn.shapingLPCOrder, AR1_shp_Q13, filterState,
-            st_res, psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.shapingLPCOrder, psEnc-&gt;sCmn.shapingLPCOrder );
-
-        pst_res = st_res + psEnc-&gt;sCmn.shapingLPCOrder; /* Point to first sample */
-
-        /* reduce (mainly) low frequencies during harmonic emphasis */
-        B_Q12 = SKP_RSHIFT_ROUND( psEncCtrl-&gt;GainsPre_Q14[ k ], 2 );
-        tmp_32 = SKP_SMLABB( INPUT_TILT_Q26, psEncCtrl-&gt;HarmBoost_Q14[ k ], HarmShapeGain_Q12 ); /* Q26 */
-        tmp_32 = SKP_SMLABB( tmp_32, psEncCtrl-&gt;coding_quality_Q14, HIGH_RATE_INPUT_TILT_Q12 );  /* Q26 */
-        tmp_32 = SKP_SMULWB( tmp_32, -psEncCtrl-&gt;GainsPre_Q14[ k ] );                            /* Q24 */
-
-
-
-
-
-        tmp_32 = SKP_RSHIFT_ROUND( tmp_32, 12 );                                                 /* Q12 */
-        B_Q12 |= SKP_LSHIFT( SKP_SAT16( tmp_32 ), 16 );
-
-        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
-        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be     */
-        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
-        /* the SMLABB and SMLABT instructions should solve the problem.                             */
-        x_filt_Q12[ 0 ] = SKP_SMLABT( SKP_SMULBB( pst_res[ 0 ], B_Q12 ), P-&gt;sHarmHP, B_Q12 );
-        for( j = 1; j &lt; psEnc-&gt;sCmn.subfr_length; j++ ) {
-            x_filt_Q12[ j ] = SKP_SMLABT( SKP_SMULBB( pst_res[ j ], B_Q12 ), pst_res[ j - 1 ], B_Q12 );
-        }
-        P-&gt;sHarmHP = pst_res[ psEnc-&gt;sCmn.subfr_length - 1 ];
-
-        SKP_Silk_prefilt_FIX( P, x_filt_Q12, pxw, HarmShapeFIRPacked_Q12, Tilt_Q14,
-            LF_shp_Q14, lag, psEnc-&gt;sCmn.subfr_length );
-
-        px  += psEnc-&gt;sCmn.subfr_length;
-        pxw += psEnc-&gt;sCmn.subfr_length;
-    }
-
-    P-&gt;lagPrev = psEncCtrl-&gt;sCmn.pitchL[ NB_SUBFR - 1 ];
-}
-
-/* SKP_Silk_prefilter. Prefilter for finding Quantizer input signal                           */
-SKP_INLINE void SKP_Silk_prefilt_FIX(
-    SKP_Silk_prefilter_state_FIX *P,                    /* I/O state                          */
-    SKP_int32   st_res_Q12[],                           /* I short term residual signal       */
-    SKP_int16   xw[],                                   /* O prefiltered signal               */
-    SKP_int32   HarmShapeFIRPacked_Q12,                 /* I Harmonic shaping coeficients     */
-    SKP_int     Tilt_Q14,                               /* I Tilt shaping coeficient          */
-    SKP_int32   LF_shp_Q14,                             /* I Low-frequancy shaping coeficients*/
-    SKP_int     lag,                                    /* I Lag for harmonic shaping         */
-    SKP_int     length                                  /* I Length of signals                */
-)
-{
-    SKP_int   i, idx, LTP_shp_buf_idx;
-    SKP_int32 n_LTP_Q12, n_Tilt_Q10, n_LF_Q10;
-    SKP_int32 sLF_MA_shp_Q12, sLF_AR_shp_Q12;
-    SKP_int16 *LTP_shp_buf;
-
-    /* To speed up use temp variables instead of using the struct */
-    LTP_shp_buf     = P-&gt;sLTP_shp1;
-    LTP_shp_buf_idx = P-&gt;sLTP_shp_buf_idx1;
-    sLF_AR_shp_Q12  = P-&gt;sLF_AR_shp1_Q12;
-    sLF_MA_shp_Q12  = P-&gt;sLF_MA_shp1_Q12;
-
-    for( i = 0; i &lt; length; i++ ) {
-        if( lag &gt; 0 ) {
-
-
-
-
-
-            /* unrolled loop */
-            SKP_assert( HARM_SHAPE_FIR_TAPS == 3 );
-            idx = lag + LTP_shp_buf_idx;
-            n_LTP_Q12 = SKP_SMULBB(            LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2 - 1) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
-            n_LTP_Q12 = SKP_SMLABT( n_LTP_Q12, LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2    ) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
-            n_LTP_Q12 = SKP_SMLABB( n_LTP_Q12, LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2 + 1) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
-        } else {
-            n_LTP_Q12 = 0;
-        }
-
-        n_LF_Q10   = SKP_SMLAWB( SKP_SMULWT( sLF_AR_shp_Q12, LF_shp_Q14 ), sLF_MA_shp_Q12, LF_shp_Q14 );
-        n_Tilt_Q10 = SKP_SMULWB( sLF_AR_shp_Q12, Tilt_Q14 );
-
-        sLF_AR_shp_Q12 = SKP_SUB32( st_res_Q12[ i ], SKP_LSHIFT( n_Tilt_Q10, 2 ) );
-        sLF_MA_shp_Q12 = SKP_SUB32( sLF_AR_shp_Q12,  SKP_LSHIFT( n_LF_Q10,   2 ) );
-
-        LTP_shp_buf_idx                = ( LTP_shp_buf_idx - 1 ) &amp; LTP_MASK;
-        LTP_shp_buf[ LTP_shp_buf_idx ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( sLF_MA_shp_Q12, 12 ) );
-
-        xw[i] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SUB32( sLF_MA_shp_Q12, n_LTP_Q12 ), 12 ) );
-    }
-
-    /* Copy temp variable back to state */
-    P-&gt;sLF_AR_shp1_Q12   = sLF_AR_shp_Q12;
-    P-&gt;sLF_MA_shp1_Q12   = sLF_MA_shp_Q12;
-    P-&gt;sLTP_shp_buf_idx1 = LTP_shp_buf_idx;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+#include &quot;SKP_Silk_perceptual_parameters_FIX.h&quot;
+
+/* SKP_Silk_prefilter. Prefilter for finding Quantizer input signal */
+SKP_INLINE void SKP_Silk_prefilt_FIX(
+    SKP_Silk_prefilter_state_FIX *P,                    /* I/O state                          */
+    SKP_int32   st_res_Q12[],                           /* I short term residual signal       */
+    SKP_int16   xw[],                                   /* O prefiltered signal               */
+    SKP_int32   HarmShapeFIRPacked_Q12,                 /* I Harmonic shaping coeficients     */
+    SKP_int     Tilt_Q14,                               /* I Tilt shaping coeficient          */
+    SKP_int32   LF_shp_Q14,                             /* I Low-frequancy shaping coeficients*/
+    SKP_int     lag,                                    /* I Lag for harmonic shaping         */
+    SKP_int     length                                  /* I Length of signals                */
+);
+
+void SKP_Silk_prefilter_FIX(
+    SKP_Silk_encoder_state_FIX          *psEnc,         /* I/O  Encoder state FIX                           */
+    const SKP_Silk_encoder_control_FIX  *psEncCtrl,     /* I    Encoder control FIX                         */
+    SKP_int16                           xw[],           /* O    Weighted signal                             */
+    const SKP_int16                     x[]             /* I    Speech signal                               */
+)
+{
+    SKP_Silk_prefilter_state_FIX *P = &amp;psEnc-&gt;sPrefilt;
+    SKP_int   j, k, lag;
+    SKP_int32 tmp_32, B_Q12;
+    const SKP_int16 *AR1_shp_Q13;
+    const SKP_int16 *px;
+    SKP_int16 *pxw, *pst_res;
+    SKP_int   HarmShapeGain_Q12, Tilt_Q14, LF_shp_Q14;
+    SKP_int32 HarmShapeFIRPacked_Q12;
+    SKP_int32 x_filt_Q12[ MAX_FRAME_LENGTH / NB_SUBFR ], filterState[ MAX_LPC_ORDER ];
+    SKP_int16 st_res[ ( MAX_FRAME_LENGTH / NB_SUBFR ) + MAX_LPC_ORDER ];
+
+    /* Setup pointers */
+    px  = x;
+    pxw = xw;
+    lag = P-&gt;lagPrev;
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* Update Variables that change per sub frame */
+        if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+            lag = psEncCtrl-&gt;sCmn.pitchL[ k ];
+        }
+
+        /* Noise shape parameters */
+        HarmShapeGain_Q12 = SKP_SMULWB( psEncCtrl-&gt;HarmShapeGain_Q14[ k ], 16384 - psEncCtrl-&gt;HarmBoost_Q14[ k ] );
+        SKP_assert( HarmShapeGain_Q12 &gt;= 0 );
+        HarmShapeFIRPacked_Q12  =                        SKP_RSHIFT( HarmShapeGain_Q12, 2 );
+        HarmShapeFIRPacked_Q12 |= SKP_LSHIFT( ( SKP_int32 )SKP_RSHIFT( HarmShapeGain_Q12, 1 ), 16 );
+        Tilt_Q14    = psEncCtrl-&gt;Tilt_Q14[   k ];
+        LF_shp_Q14  = psEncCtrl-&gt;LF_shp_Q14[ k ];
+        AR1_shp_Q13 = &amp;psEncCtrl-&gt;AR1_Q13[   k * SHAPE_LPC_ORDER_MAX ];
+
+        /* Short term FIR filtering*/
+        SKP_memset( filterState, 0, psEnc-&gt;sCmn.shapingLPCOrder * sizeof( SKP_int32 ) );
+        SKP_Silk_MA_Prediction_Q13( px - psEnc-&gt;sCmn.shapingLPCOrder, AR1_shp_Q13, filterState, 
+            st_res, psEnc-&gt;sCmn.subfr_length + psEnc-&gt;sCmn.shapingLPCOrder, psEnc-&gt;sCmn.shapingLPCOrder );
+
+        pst_res = st_res + psEnc-&gt;sCmn.shapingLPCOrder; /* Point to first sample */
+
+        /* reduce (mainly) low frequencies during harmonic emphasis */
+        B_Q12 = SKP_RSHIFT_ROUND( psEncCtrl-&gt;GainsPre_Q14[ k ], 2 );
+        tmp_32 = SKP_SMLABB( INPUT_TILT_Q26, psEncCtrl-&gt;HarmBoost_Q14[ k ], HarmShapeGain_Q12 ); /* Q26 */
+        tmp_32 = SKP_SMLABB( tmp_32, psEncCtrl-&gt;coding_quality_Q14, HIGH_RATE_INPUT_TILT_Q12 );  /* Q26 */
+        tmp_32 = SKP_SMULWB( tmp_32, -psEncCtrl-&gt;GainsPre_Q14[ k ] );                            /* Q24 */
+        tmp_32 = SKP_RSHIFT_ROUND( tmp_32, 12 );                                                 /* Q12 */
+        B_Q12 |= SKP_LSHIFT( SKP_SAT16( tmp_32 ), 16 );
+
+        /* NOTE: the code below loads two int16 values in an int32, and multiplies each using the   */
+        /* SMLABB and SMLABT instructions. On a big-endian CPU the two int16 variables would be     */
+        /* loaded in reverse order and the code will give the wrong result. In that case swapping   */
+        /* the SMLABB and SMLABT instructions should solve the problem.                             */
+        x_filt_Q12[ 0 ] = SKP_SMLABT( SKP_SMULBB( pst_res[ 0 ], B_Q12 ), P-&gt;sHarmHP, B_Q12 );
+        for( j = 1; j &lt; psEnc-&gt;sCmn.subfr_length; j++ ) {
+            x_filt_Q12[ j ] = SKP_SMLABT( SKP_SMULBB( pst_res[ j ], B_Q12 ), pst_res[ j - 1 ], B_Q12 );
+        }
+        P-&gt;sHarmHP = pst_res[ psEnc-&gt;sCmn.subfr_length - 1 ];
+
+        SKP_Silk_prefilt_FIX( P, x_filt_Q12, pxw, HarmShapeFIRPacked_Q12, Tilt_Q14, 
+            LF_shp_Q14, lag, psEnc-&gt;sCmn.subfr_length );
+
+        px  += psEnc-&gt;sCmn.subfr_length;
+        pxw += psEnc-&gt;sCmn.subfr_length;
+    }
+
+    P-&gt;lagPrev = psEncCtrl-&gt;sCmn.pitchL[ NB_SUBFR - 1 ];
+}
+
+/* SKP_Silk_prefilter. Prefilter for finding Quantizer input signal                           */
+SKP_INLINE void SKP_Silk_prefilt_FIX(
+    SKP_Silk_prefilter_state_FIX *P,                    /* I/O state                          */
+    SKP_int32   st_res_Q12[],                           /* I short term residual signal       */
+    SKP_int16   xw[],                                   /* O prefiltered signal               */
+    SKP_int32   HarmShapeFIRPacked_Q12,                 /* I Harmonic shaping coeficients     */
+    SKP_int     Tilt_Q14,                               /* I Tilt shaping coeficient          */
+    SKP_int32   LF_shp_Q14,                             /* I Low-frequancy shaping coeficients*/
+    SKP_int     lag,                                    /* I Lag for harmonic shaping         */
+    SKP_int     length                                  /* I Length of signals                */
+)
+{
+    SKP_int   i, idx, LTP_shp_buf_idx;
+    SKP_int32 n_LTP_Q12, n_Tilt_Q10, n_LF_Q10;
+    SKP_int32 sLF_MA_shp_Q12, sLF_AR_shp_Q12;
+    SKP_int16 *LTP_shp_buf;
+
+    /* To speed up use temp variables instead of using the struct */
+    LTP_shp_buf     = P-&gt;sLTP_shp1;
+    LTP_shp_buf_idx = P-&gt;sLTP_shp_buf_idx1;
+    sLF_AR_shp_Q12  = P-&gt;sLF_AR_shp1_Q12;
+    sLF_MA_shp_Q12  = P-&gt;sLF_MA_shp1_Q12;
+
+    for( i = 0; i &lt; length; i++ ) {
+        if( lag &gt; 0 ) {
+            /* unrolled loop */
+            SKP_assert( HARM_SHAPE_FIR_TAPS == 3 );
+            idx = lag + LTP_shp_buf_idx;
+            n_LTP_Q12 = SKP_SMULBB(            LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2 - 1) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
+            n_LTP_Q12 = SKP_SMLABT( n_LTP_Q12, LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2    ) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
+            n_LTP_Q12 = SKP_SMLABB( n_LTP_Q12, LTP_shp_buf[ ( idx - HARM_SHAPE_FIR_TAPS / 2 + 1) &amp; LTP_MASK ], HarmShapeFIRPacked_Q12 );
+        } else {
+            n_LTP_Q12 = 0;
+        }
+
+        n_LF_Q10   = SKP_SMLAWB( SKP_SMULWT( sLF_AR_shp_Q12, LF_shp_Q14 ), sLF_MA_shp_Q12, LF_shp_Q14 );
+        n_Tilt_Q10 = SKP_SMULWB( sLF_AR_shp_Q12, Tilt_Q14 );
+
+        sLF_AR_shp_Q12 = SKP_SUB32( st_res_Q12[ i ], SKP_LSHIFT( n_Tilt_Q10, 2 ) );
+        sLF_MA_shp_Q12 = SKP_SUB32( sLF_AR_shp_Q12,  SKP_LSHIFT( n_LF_Q10,   2 ) );
+
+        LTP_shp_buf_idx                = ( LTP_shp_buf_idx - 1 ) &amp; LTP_MASK;
+        LTP_shp_buf[ LTP_shp_buf_idx ] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( sLF_MA_shp_Q12, 12 ) );
+
+        xw[i] = ( SKP_int16 )SKP_SAT16( SKP_RSHIFT_ROUND( SKP_SUB32( sLF_MA_shp_Q12, n_LTP_Q12 ), 12 ) );
+    }
+
+    /* Copy temp variable back to state */
+    P-&gt;sLF_AR_shp1_Q12   = sLF_AR_shp_Q12;
+    P-&gt;sLF_MA_shp1_Q12   = sLF_MA_shp_Q12;
+    P-&gt;sLTP_shp_buf_idx1 = LTP_shp_buf_idx;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_process_NLSFs_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,143 +1,127 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Limit, stabilize, convert and quantize NLSFs.    */
-void SKP_Silk_process_NLSFs_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Encoder state FIX                           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl,         /* I/O  Encoder control FIX                         */
-    SKP_int                         *pNLSF_Q15          /* I/O  Normalized LSFs (quant out) (0 - (2^15-1))  */
-)
-{
-    SKP_int     doInterpolate;
-
-
-
-
-
-    SKP_int     pNLSFW_Q6[ MAX_LPC_ORDER ];
-    SKP_int     NLSF_mu_Q15, NLSF_mu_fluc_red_Q16;
-    SKP_int32   i_sqr_Q15;
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
-
-    /* Used only for NLSF interpolation */
-    SKP_int     pNLSF0_temp_Q15[ MAX_LPC_ORDER ];
-    SKP_int     pNLSFW0_temp_Q6[ MAX_LPC_ORDER ];
-    SKP_int     i;
-
-    SKP_assert( psEnc-&gt;speech_activity_Q8 &gt;=   0 );
-    SKP_assert( psEnc-&gt;speech_activity_Q8 &lt;= 256 );
-    SKP_assert( psEncCtrl-&gt;sparseness_Q8  &gt;=   0 );
-    SKP_assert( psEncCtrl-&gt;sparseness_Q8  &lt;= 256 );
-    SKP_assert( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED || psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_UNVOICED );
-
-    /***********************/
-    /* Calculate mu values */
-    /***********************/
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /* NLSF_mu           = 0.002f - 0.001f * psEnc-&gt;speech_activity; */
-        /* NLSF_mu_fluc_red  = 0.1f   - 0.05f  * psEnc-&gt;speech_activity; */
-        NLSF_mu_Q15          = SKP_SMLAWB(   66,   -8388, psEnc-&gt;speech_activity_Q8 );
-        NLSF_mu_fluc_red_Q16 = SKP_SMLAWB( 6554, -838848, psEnc-&gt;speech_activity_Q8 );
-    } else {
-        /* NLSF_mu           = 0.005f - 0.004f * psEnc-&gt;speech_activity; */
-        /* NLSF_mu_fluc_red  = 0.2f   - 0.1f   * psEnc-&gt;speech_activity - 0.1f * psEncCtrl-&gt;sparseness; */
-        NLSF_mu_Q15          = SKP_SMLAWB(   164,   -33554, psEnc-&gt;speech_activity_Q8 );
-        NLSF_mu_fluc_red_Q16 = SKP_SMLAWB( 13107, -1677696, psEnc-&gt;speech_activity_Q8 + psEncCtrl-&gt;sparseness_Q8 );
-    }
-    SKP_assert( NLSF_mu_Q15          &gt;= 0     );
-    SKP_assert( NLSF_mu_Q15          &lt;= 164   );
-    SKP_assert( NLSF_mu_fluc_red_Q16 &gt;= 0     );
-    SKP_assert( NLSF_mu_fluc_red_Q16 &lt;= 13107 );
-
-    NLSF_mu_Q15 = SKP_max( NLSF_mu_Q15, 1 );
-
-    /* Calculate NLSF weights */
-    TIC(NLSF_weights_FIX)
-    SKP_Silk_NLSF_VQ_weights_laroia( pNLSFW_Q6, pNLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder );
-    TOC(NLSF_weights_FIX)
-
-    /* Update NLSF weights for interpolated NLSFs */
-    doInterpolate = ( psEnc-&gt;sCmn.useInterpolatedNLSFs == 1 ) &amp;&amp; ( psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2 &lt; ( 1 &lt;&lt; 2 ) );
-    if( doInterpolate ) {
-
-        /* Calculate the interpolated NLSF vector for the first half */
-        SKP_Silk_interpolate( pNLSF0_temp_Q15, psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSF_Q15,
-
-
-
-
-
-            psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sCmn.predictLPCOrder );
-
-        /* Calculate first half NLSF weights for the interpolated NLSFs */
-        TIC(NLSF_weights_FIX)
-        SKP_Silk_NLSF_VQ_weights_laroia( pNLSFW0_temp_Q6, pNLSF0_temp_Q15, psEnc-&gt;sCmn.predictLPCOrder );
-        TOC(NLSF_weights_FIX)
-
-        /* Update NLSF weights with contribution from first half */
-        i_sqr_Q15 = SKP_LSHIFT( SKP_SMULBB( psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2 ), 11 );
-        for( i = 0; i &lt; psEnc-&gt;sCmn.predictLPCOrder; i++ ) {
-            pNLSFW_Q6[ i ] = SKP_SMLAWB( SKP_RSHIFT( pNLSFW_Q6[ i ], 1 ), pNLSFW0_temp_Q6[ i ], i_sqr_Q15 );
-            SKP_assert( pNLSFW_Q6[ i ] &lt;= SKP_int16_MAX );
-            SKP_assert( pNLSFW_Q6[ i ] &gt;= 1 );
-        }
-    }
-
-    /* Set pointer to the NLSF codebook for the current signal type and LPC order */
-    psNLSF_CB = psEnc-&gt;sCmn.psNLSF_CB[ psEncCtrl-&gt;sCmn.sigtype ];
-
-    /* Quantize NLSF parameters given the trained NLSF codebooks */
-    TIC(MSVQ_encode_FIX)
-    SKP_Silk_NLSF_MSVQ_encode_FIX( psEncCtrl-&gt;sCmn.NLSFIndices, pNLSF_Q15, psNLSF_CB,
-        psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSFW_Q6, NLSF_mu_Q15, NLSF_mu_fluc_red_Q16,
-        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors, psEnc-&gt;sCmn.predictLPCOrder, psEnc-&gt;sCmn.first_frame_after_reset );
-    TOC(MSVQ_encode_FIX)
-
-    /* Convert quantized NLSFs back to LPC coefficients */
-    SKP_Silk_NLSF2A_stable( psEncCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder );
-
-    if( doInterpolate ) {
-        /* Calculate the interpolated, quantized LSF vector for the first half */
-        SKP_Silk_interpolate( pNLSF0_temp_Q15, psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSF_Q15,
-            psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sCmn.predictLPCOrder );
-
-        /* Convert back to LPC coefficients */
-        SKP_Silk_NLSF2A_stable( psEncCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_temp_Q15, psEnc-&gt;sCmn.predictLPCOrder );
-
-    } else {
-        /* Copy LPC coefficients for first half from second half */
-        SKP_memcpy( psEncCtrl-&gt;PredCoef_Q12[ 0 ], psEncCtrl-&gt;PredCoef_Q12[ 1 ], psEnc-&gt;sCmn.predictLPCOrder * sizeof( SKP_int16 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Limit, stabilize, convert and quantize NLSFs.    */ 
+void SKP_Silk_process_NLSFs_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,             /* I/O  Encoder state FIX                           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl,         /* I/O  Encoder control FIX                         */
+    SKP_int                         *pNLSF_Q15          /* I/O  Normalized LSFs (quant out) (0 - (2^15-1))  */
+)
+{
+    SKP_int     doInterpolate;
+    SKP_int     pNLSFW_Q6[ MAX_LPC_ORDER ];
+    SKP_int     NLSF_mu_Q15, NLSF_mu_fluc_red_Q16;
+    SKP_int32   i_sqr_Q15;
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB;
+
+    /* Used only for NLSF interpolation */
+    SKP_int     pNLSF0_temp_Q15[ MAX_LPC_ORDER ];
+    SKP_int     pNLSFW0_temp_Q6[ MAX_LPC_ORDER ];
+    SKP_int     i;
+
+    SKP_assert( psEnc-&gt;speech_activity_Q8 &gt;=   0 );
+    SKP_assert( psEnc-&gt;speech_activity_Q8 &lt;= 256 );
+    SKP_assert( psEncCtrl-&gt;sparseness_Q8  &gt;=   0 );
+    SKP_assert( psEncCtrl-&gt;sparseness_Q8  &lt;= 256 );
+    SKP_assert( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED || psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_UNVOICED );
+
+    /***********************/
+    /* Calculate mu values */
+    /***********************/
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /* NLSF_mu           = 0.002f - 0.001f * psEnc-&gt;speech_activity; */
+        /* NLSF_mu_fluc_red  = 0.1f   - 0.05f  * psEnc-&gt;speech_activity; */
+        NLSF_mu_Q15          = SKP_SMLAWB(   66,   -8388, psEnc-&gt;speech_activity_Q8 );
+        NLSF_mu_fluc_red_Q16 = SKP_SMLAWB( 6554, -838848, psEnc-&gt;speech_activity_Q8 );
+    } else { 
+        /* NLSF_mu           = 0.005f - 0.004f * psEnc-&gt;speech_activity; */
+        /* NLSF_mu_fluc_red  = 0.2f   - 0.1f   * psEnc-&gt;speech_activity - 0.1f * psEncCtrl-&gt;sparseness; */
+        NLSF_mu_Q15          = SKP_SMLAWB(   164,   -33554, psEnc-&gt;speech_activity_Q8 );
+        NLSF_mu_fluc_red_Q16 = SKP_SMLAWB( 13107, -1677696, psEnc-&gt;speech_activity_Q8 + psEncCtrl-&gt;sparseness_Q8 ); 
+    }
+    SKP_assert( NLSF_mu_Q15          &gt;= 0     );
+    SKP_assert( NLSF_mu_Q15          &lt;= 164   );
+    SKP_assert( NLSF_mu_fluc_red_Q16 &gt;= 0     );
+    SKP_assert( NLSF_mu_fluc_red_Q16 &lt;= 13107 );
+
+    NLSF_mu_Q15 = SKP_max( NLSF_mu_Q15, 1 );
+
+    /* Calculate NLSF weights */
+    TIC(NLSF_weights_FIX)
+    SKP_Silk_NLSF_VQ_weights_laroia( pNLSFW_Q6, pNLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder );
+    TOC(NLSF_weights_FIX)
+
+    /* Update NLSF weights for interpolated NLSFs */
+    doInterpolate = ( psEnc-&gt;sCmn.useInterpolatedNLSFs == 1 ) &amp;&amp; ( psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2 &lt; ( 1 &lt;&lt; 2 ) );
+    if( doInterpolate ) {
+
+        /* Calculate the interpolated NLSF vector for the first half */
+        SKP_Silk_interpolate( pNLSF0_temp_Q15, psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSF_Q15, 
+            psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sCmn.predictLPCOrder );
+
+        /* Calculate first half NLSF weights for the interpolated NLSFs */
+        TIC(NLSF_weights_FIX)
+        SKP_Silk_NLSF_VQ_weights_laroia( pNLSFW0_temp_Q6, pNLSF0_temp_Q15, psEnc-&gt;sCmn.predictLPCOrder );
+        TOC(NLSF_weights_FIX)
+
+        /* Update NLSF weights with contribution from first half */
+        i_sqr_Q15 = SKP_LSHIFT( SKP_SMULBB( psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2 ), 11 );
+        for( i = 0; i &lt; psEnc-&gt;sCmn.predictLPCOrder; i++ ) {
+            pNLSFW_Q6[ i ] = SKP_SMLAWB( SKP_RSHIFT( pNLSFW_Q6[ i ], 1 ), pNLSFW0_temp_Q6[ i ], i_sqr_Q15 );
+            SKP_assert( pNLSFW_Q6[ i ] &lt;= SKP_int16_MAX );
+            SKP_assert( pNLSFW_Q6[ i ] &gt;= 1 );
+        }
+    }
+
+    /* Set pointer to the NLSF codebook for the current signal type and LPC order */
+    psNLSF_CB = psEnc-&gt;sCmn.psNLSF_CB[ psEncCtrl-&gt;sCmn.sigtype ];
+
+    /* Quantize NLSF parameters given the trained NLSF codebooks */
+    TIC(MSVQ_encode_FIX)
+    SKP_Silk_NLSF_MSVQ_encode_FIX( psEncCtrl-&gt;sCmn.NLSFIndices, pNLSF_Q15, psNLSF_CB, 
+        psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSFW_Q6, NLSF_mu_Q15, NLSF_mu_fluc_red_Q16, 
+        psEnc-&gt;sCmn.NLSF_MSVQ_Survivors, psEnc-&gt;sCmn.predictLPCOrder, psEnc-&gt;sCmn.first_frame_after_reset );
+    TOC(MSVQ_encode_FIX)
+
+    /* Convert quantized NLSFs back to LPC coefficients */
+    SKP_Silk_NLSF2A_stable( psEncCtrl-&gt;PredCoef_Q12[ 1 ], pNLSF_Q15, psEnc-&gt;sCmn.predictLPCOrder );
+
+    if( doInterpolate ) {
+        /* Calculate the interpolated, quantized LSF vector for the first half */
+        SKP_Silk_interpolate( pNLSF0_temp_Q15, psEnc-&gt;sPred.prev_NLSFq_Q15, pNLSF_Q15, 
+            psEncCtrl-&gt;sCmn.NLSFInterpCoef_Q2, psEnc-&gt;sCmn.predictLPCOrder );
+
+        /* Convert back to LPC coefficients */
+        SKP_Silk_NLSF2A_stable( psEncCtrl-&gt;PredCoef_Q12[ 0 ], pNLSF0_temp_Q15, psEnc-&gt;sCmn.predictLPCOrder );
+
+    } else {
+        /* Copy LPC coefficients for first half from second half */
+        SKP_memcpy( psEncCtrl-&gt;PredCoef_Q12[ 0 ], psEncCtrl-&gt;PredCoef_Q12[ 1 ], psEnc-&gt;sCmn.predictLPCOrder * sizeof( SKP_int16 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_process_gains_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_process_gains_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_process_gains_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_process_gains_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,135 +1,114 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-
-
-
-
-
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Processing of gains */
-void SKP_Silk_process_gains_FIX(
-    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state_FIX                           */
-    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  Encoder control_FIX                         */
-)
-{
-    SKP_Silk_shape_state_FIX    *psShapeSt = &amp;psEnc-&gt;sShape;
-    SKP_int     k;
-    SKP_int32   s_Q16, InvMaxSqrVal_Q16, gain, gain_squared, ResNrg, ResNrgPart;
-
-    /* Gain reduction when LTP coding gain is high */
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        /*s = -0.5f * SKP_sigmoid( 0.25f * ( psEncCtrl-&gt;LTPredCodGain - 12.0f ) ); */
-        s_Q16 = -SKP_Silk_sigm_Q15( SKP_RSHIFT_ROUND( psEncCtrl-&gt;LTPredCodGain_Q7 - (12 &lt;&lt; 7), 4 ) );
-        for( k = 0; k &lt; NB_SUBFR; k++ ) {
-            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_SMLAWB( psEncCtrl-&gt;Gains_Q16[ k ], psEncCtrl-&gt;Gains_Q16[ k ], s_Q16 );
-        }
-    }
-
-    /* Limit the quantized signal */
-    /*  69 = 21.0f + 16/0.33    */
-    InvMaxSqrVal_Q16 = SKP_DIV32_16( SKP_Silk_log2lin(
-        SKP_SMULWB( (69 &lt;&lt; 7) - psEncCtrl-&gt;current_SNR_dB_Q7, SKP_FIX_CONST( 0.33, 16 )) ), psEnc-&gt;sCmn.subfr_length );
-
-    for( k = 0; k &lt; NB_SUBFR; k++ ) {
-        /* Soft limit on ratio residual energy and squared gains */
-        ResNrg     = psEncCtrl-&gt;ResNrg[ k ];
-        ResNrgPart = SKP_SMULWW( ResNrg, InvMaxSqrVal_Q16 );
-        if( psEncCtrl-&gt;ResNrgQ[ k ] &gt; 0 ) {
-            if( psEncCtrl-&gt;ResNrgQ[ k ] &lt; 32 ) {
-                ResNrgPart = SKP_RSHIFT_ROUND( ResNrgPart, psEncCtrl-&gt;ResNrgQ[ k ] );
-            } else {
-                ResNrgPart = 0;
-
-
-
-
-
-            }
-        } else if( psEncCtrl-&gt;ResNrgQ[k] != 0 ) {
-            if( ResNrgPart &gt; SKP_RSHIFT( SKP_int32_MAX, -psEncCtrl-&gt;ResNrgQ[ k ] ) ) {
-                ResNrgPart = SKP_int32_MAX;
-            } else {
-                ResNrgPart = SKP_LSHIFT( ResNrgPart, -psEncCtrl-&gt;ResNrgQ[ k ] );
-            }
-        }
-        gain = psEncCtrl-&gt;Gains_Q16[ k ];
-        gain_squared = SKP_ADD_SAT32( ResNrgPart, SKP_SMMUL( gain, gain ) );
-        if( gain_squared &lt; SKP_int16_MAX ) {
-            /* recalculate with higher precision */
-            gain_squared = SKP_SMLAWW( SKP_LSHIFT( ResNrgPart, 16 ), gain, gain );
-            SKP_assert( gain_squared &gt; 0 );
-            gain = SKP_Silk_SQRT_APPROX( gain_squared );                  /* Q8   */
-            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( gain, 8 );        /* Q16  */
-        } else {
-            gain = SKP_Silk_SQRT_APPROX( gain_squared );                  /* Q0   */
-            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( gain, 16 );       /* Q16  */
-        }
-    }
-
-    /* Noise shaping quantization */
-    SKP_Silk_gains_quant( psEncCtrl-&gt;sCmn.GainsIndices, psEncCtrl-&gt;Gains_Q16,
-        &amp;psShapeSt-&gt;LastGainIndex, psEnc-&gt;sCmn.nFramesInPayloadBuf );
-    /* Set quantizer offset for voiced signals. Larger offset when LTP coding gain is low or tilt is high (ie low-pass) */
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        if( psEncCtrl-&gt;LTPredCodGain_Q7 + SKP_RSHIFT( psEncCtrl-&gt;input_tilt_Q15, 8 ) &gt; ( 1 &lt;&lt; 7 ) ) {
-            psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
-        } else {
-            psEncCtrl-&gt;sCmn.QuantOffsetType = 1;
-        }
-    }
-
-    /* Quantizer boundary adjustment */
-    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
-        psEncCtrl-&gt;Lambda_Q10 = SKP_FIX_CONST( 1.3, 10 )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.5, 18 ), psEnc-&gt;speech_activity_Q8       )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.3, 12 ), psEncCtrl-&gt;input_quality_Q14    )
-                  + SKP_SMULBB( SKP_FIX_CONST( 0.2, 10 ), psEncCtrl-&gt;sCmn.QuantOffsetType )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.1, 12 ), psEncCtrl-&gt;coding_quality_Q14   );
-    } else {
-        psEncCtrl-&gt;Lambda_Q10 = SKP_FIX_CONST( 1.3, 10 )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.5, 18 ), psEnc-&gt;speech_activity_Q8       )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.4, 12 ), psEncCtrl-&gt;input_quality_Q14    )
-                  + SKP_SMULBB( SKP_FIX_CONST( 0.4, 10 ), psEncCtrl-&gt;sCmn.QuantOffsetType )
-                  - SKP_SMULWB( SKP_FIX_CONST( 0.1, 12 ), psEncCtrl-&gt;coding_quality_Q14   );
-    }
-
-
-
-
-
-    SKP_assert( psEncCtrl-&gt;Lambda_Q10 &gt;= 0 );
-    SKP_assert( psEncCtrl-&gt;Lambda_Q10 &lt; SKP_FIX_CONST( 2, 10 ) );
-
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Processing of gains */
+void SKP_Silk_process_gains_FIX(
+    SKP_Silk_encoder_state_FIX      *psEnc,         /* I/O  Encoder state_FIX                           */
+    SKP_Silk_encoder_control_FIX    *psEncCtrl      /* I/O  Encoder control_FIX                         */
+)
+{
+    SKP_Silk_shape_state_FIX    *psShapeSt = &amp;psEnc-&gt;sShape;
+    SKP_int     k;
+    SKP_int32   s_Q16, InvMaxSqrVal_Q16, gain, gain_squared, ResNrg, ResNrgPart;
+
+    /* Gain reduction when LTP coding gain is high */
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        /*s = -0.5f * SKP_sigmoid( 0.25f * ( psEncCtrl-&gt;LTPredCodGain - 12.0f ) ); */
+        s_Q16 = -SKP_Silk_sigm_Q15( SKP_RSHIFT_ROUND( psEncCtrl-&gt;LTPredCodGain_Q7 - (12 &lt;&lt; 7), 4 ) );
+        for( k = 0; k &lt; NB_SUBFR; k++ ) {
+            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_SMLAWB( psEncCtrl-&gt;Gains_Q16[ k ], psEncCtrl-&gt;Gains_Q16[ k ], s_Q16 );
+        }
+    }
+
+    /* Limit the quantized signal */
+    /*  69 = 21.0f + 16/0.33    */
+    InvMaxSqrVal_Q16 = SKP_DIV32_16( SKP_Silk_log2lin( 
+        SKP_SMULWB( (69 &lt;&lt; 7) - psEncCtrl-&gt;current_SNR_dB_Q7, SKP_FIX_CONST( 0.33, 16 )) ), psEnc-&gt;sCmn.subfr_length );
+
+    for( k = 0; k &lt; NB_SUBFR; k++ ) {
+        /* Soft limit on ratio residual energy and squared gains */
+        ResNrg     = psEncCtrl-&gt;ResNrg[ k ];
+        ResNrgPart = SKP_SMULWW( ResNrg, InvMaxSqrVal_Q16 );
+        if( psEncCtrl-&gt;ResNrgQ[ k ] &gt; 0 ) {
+            if( psEncCtrl-&gt;ResNrgQ[ k ] &lt; 32 ) {
+                ResNrgPart = SKP_RSHIFT_ROUND( ResNrgPart, psEncCtrl-&gt;ResNrgQ[ k ] );
+            } else {
+                ResNrgPart = 0;
+            }
+        } else if( psEncCtrl-&gt;ResNrgQ[k] != 0 ) {
+            if( ResNrgPart &gt; SKP_RSHIFT( SKP_int32_MAX, -psEncCtrl-&gt;ResNrgQ[ k ] ) ) {
+                ResNrgPart = SKP_int32_MAX;
+            } else {
+                ResNrgPart = SKP_LSHIFT( ResNrgPart, -psEncCtrl-&gt;ResNrgQ[ k ] );
+            }
+        }
+        gain = psEncCtrl-&gt;Gains_Q16[ k ];
+        gain_squared = SKP_ADD_SAT32( ResNrgPart, SKP_SMMUL( gain, gain ) );
+        if( gain_squared &lt; SKP_int16_MAX ) {
+            /* recalculate with higher precision */
+            gain_squared = SKP_SMLAWW( SKP_LSHIFT( ResNrgPart, 16 ), gain, gain );
+            SKP_assert( gain_squared &gt; 0 );
+            gain = SKP_Silk_SQRT_APPROX( gain_squared );                  /* Q8   */
+            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( gain, 8 );        /* Q16  */
+        } else {
+            gain = SKP_Silk_SQRT_APPROX( gain_squared );                  /* Q0   */
+            psEncCtrl-&gt;Gains_Q16[ k ] = SKP_LSHIFT_SAT32( gain, 16 );       /* Q16  */
+        }
+    }
+
+    /* Noise shaping quantization */
+    SKP_Silk_gains_quant( psEncCtrl-&gt;sCmn.GainsIndices, psEncCtrl-&gt;Gains_Q16, 
+        &amp;psShapeSt-&gt;LastGainIndex, psEnc-&gt;sCmn.nFramesInPayloadBuf );
+    /* Set quantizer offset for voiced signals. Larger offset when LTP coding gain is low or tilt is high (ie low-pass) */
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        if( psEncCtrl-&gt;LTPredCodGain_Q7 + SKP_RSHIFT( psEncCtrl-&gt;input_tilt_Q15, 8 ) &gt; ( 1 &lt;&lt; 7 ) ) {
+            psEncCtrl-&gt;sCmn.QuantOffsetType = 0;
+        } else {
+            psEncCtrl-&gt;sCmn.QuantOffsetType = 1;
+        }
+    }
+
+    /* Quantizer boundary adjustment */
+    if( psEncCtrl-&gt;sCmn.sigtype == SIG_TYPE_VOICED ) {
+        psEncCtrl-&gt;Lambda_Q10 = SKP_FIX_CONST( 1.3, 10 )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.5, 18 ), psEnc-&gt;speech_activity_Q8       )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.3, 12 ), psEncCtrl-&gt;input_quality_Q14    )
+                  + SKP_SMULBB( SKP_FIX_CONST( 0.2, 10 ), psEncCtrl-&gt;sCmn.QuantOffsetType )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.1, 12 ), psEncCtrl-&gt;coding_quality_Q14   );
+    } else {
+        psEncCtrl-&gt;Lambda_Q10 = SKP_FIX_CONST( 1.3, 10 )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.5, 18 ), psEnc-&gt;speech_activity_Q8       )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.4, 12 ), psEncCtrl-&gt;input_quality_Q14    )
+                  + SKP_SMULBB( SKP_FIX_CONST( 0.4, 10 ), psEncCtrl-&gt;sCmn.QuantOffsetType )
+                  - SKP_SMULWB( SKP_FIX_CONST( 0.1, 12 ), psEncCtrl-&gt;coding_quality_Q14   );
+    }
+    SKP_assert( psEncCtrl-&gt;Lambda_Q10 &gt;= 0 );
+    SKP_assert( psEncCtrl-&gt;Lambda_Q10 &lt; SKP_FIX_CONST( 2, 10 ) );
+    
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_pulses_to_bytesc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_pulses_to_bytes.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_pulses_to_bytes.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_pulses_to_bytes.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,92 +1,77 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*
- * File Name:   SKP_Silk_pulses_to_bytes.c
- */
-
-#include &lt;stdlib.h&gt;
-#include &quot;SKP_Silk_main.h&quot;
-
-/* nBytes = sum_over_shell_blocks( POLY_FIT_0 + POLY_FIT_1 * sum_abs_val + POLY_FIT_2 * sum_abs_val^2 ) */
-#define POLY_FIT_0_Q15     12520
-#define POLY_FIT_1_Q15     15862
-#define POLY_FIT_2_Q20     -9222 // ToDo better training with
-
-/* Predict number of bytes used to encode q */
-SKP_int SKP_Silk_pulses_to_bytes( /* O  Return value, predicted number of bytes used to encode q */
-    SKP_Silk_encoder_state          *psEncC,        /* I/O  Encoder State */
-    SKP_int                         q[]             /* I    Pulse signal  */
-)
-{
-    SKP_int i, j, iter, *q_ptr;
-    SKP_int32 sum_abs_val, nBytes, acc_nBytes;
-    /* Take the absolute value of the pulses */
-
-
-
-
-
-    iter = psEncC-&gt;frame_length / SHELL_CODEC_FRAME_LENGTH;
-
-    /* Calculate rate as a nonlinaer mapping of sum abs value of each Shell block */
-    q_ptr      = q;
-    acc_nBytes = 0;
-    for( j = 0; j &lt; iter; j++ ) {
-        sum_abs_val = 0;
-        for(i = 0; i &lt; SHELL_CODEC_FRAME_LENGTH; i+=4){
-            sum_abs_val += SKP_abs( q_ptr[ i + 0 ] );
-            sum_abs_val += SKP_abs( q_ptr[ i + 1 ] );
-            sum_abs_val += SKP_abs( q_ptr[ i + 2 ] );
-            sum_abs_val += SKP_abs( q_ptr[ i + 3 ] );
-        }
-        /* Calculate nBytes used for thi sshell frame */
-        nBytes = SKP_SMULWB( SKP_SMULBB( sum_abs_val, sum_abs_val ), POLY_FIT_2_Q20 );  // Q4
-        nBytes = SKP_LSHIFT_SAT32( nBytes, 11 );                                        // Q15
-        nBytes += SKP_SMULBB( sum_abs_val, POLY_FIT_1_Q15 );                            // Q15
-        nBytes += POLY_FIT_0_Q15;                                                       // Q15
-
-        acc_nBytes += nBytes;
-
-        q_ptr += SHELL_CODEC_FRAME_LENGTH; /* update pointer */
-    }
-
-    acc_nBytes = SKP_RSHIFT_ROUND( acc_nBytes, 15 );                                    // Q0
-    acc_nBytes = SKP_SAT16( acc_nBytes ); // just to be sure                            // Q0
-
-    return((SKP_int)acc_nBytes);
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*
+ * File Name:   SKP_Silk_pulses_to_bytes.c
+ */
+
+#include &lt;stdlib.h&gt;
+#include &quot;SKP_Silk_main.h&quot;
+
+/* nBytes = sum_over_shell_blocks( POLY_FIT_0 + POLY_FIT_1 * sum_abs_val + POLY_FIT_2 * sum_abs_val^2 ) */
+#define POLY_FIT_0_Q15     12520
+#define POLY_FIT_1_Q15     15862
+#define POLY_FIT_2_Q20     -9222 // ToDo better training with 
+
+/* Predict number of bytes used to encode q */
+SKP_int SKP_Silk_pulses_to_bytes( /* O  Return value, predicted number of bytes used to encode q */ 
+    SKP_Silk_encoder_state          *psEncC,        /* I/O  Encoder State */
+    SKP_int                         q[]             /* I    Pulse signal  */
+)
+{
+    SKP_int i, j, iter, *q_ptr;
+    SKP_int32 sum_abs_val, nBytes, acc_nBytes;
+    /* Take the absolute value of the pulses */
+    iter = psEncC-&gt;frame_length / SHELL_CODEC_FRAME_LENGTH;
+    
+    /* Calculate rate as a nonlinaer mapping of sum abs value of each Shell block */
+    q_ptr      = q;
+    acc_nBytes = 0;
+    for( j = 0; j &lt; iter; j++ ) {
+        sum_abs_val = 0;
+        for(i = 0; i &lt; SHELL_CODEC_FRAME_LENGTH; i+=4){
+            sum_abs_val += SKP_abs( q_ptr[ i + 0 ] );
+            sum_abs_val += SKP_abs( q_ptr[ i + 1 ] );
+            sum_abs_val += SKP_abs( q_ptr[ i + 2 ] );
+            sum_abs_val += SKP_abs( q_ptr[ i + 3 ] );
+        }
+        /* Calculate nBytes used for thi sshell frame */
+        nBytes = SKP_SMULWB( SKP_SMULBB( sum_abs_val, sum_abs_val ), POLY_FIT_2_Q20 );  // Q4
+        nBytes = SKP_LSHIFT_SAT32( nBytes, 11 );                                        // Q15
+        nBytes += SKP_SMULBB( sum_abs_val, POLY_FIT_1_Q15 );                            // Q15
+        nBytes += POLY_FIT_0_Q15;                                                       // Q15
+
+        acc_nBytes += nBytes;
+
+        q_ptr += SHELL_CODEC_FRAME_LENGTH; /* update pointer */
+    }
+
+    acc_nBytes = SKP_RSHIFT_ROUND( acc_nBytes, 15 );                                    // Q0
+    acc_nBytes = SKP_SAT16( acc_nBytes ); // just to be sure                            // Q0
+    
+    return(( SKP_int )acc_nBytes);
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_quant_LTP_gains_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,127 +1,106 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-
-
-
-
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-void SKP_Silk_quant_LTP_gains_FIX(
-    SKP_int16               B_Q14[],                /* I/O  (un)quantized LTP gains     */
-    SKP_int                 cbk_index[],            /* O    Codebook Index              */
-    SKP_int                 *periodicity_index,     /* O    Periodicity Index           */
-    const SKP_int32         W_Q18[],                /* I    Error Weights in Q18        */
-    SKP_int                 mu_Q8,                  /* I    Mu value (R/D tradeoff)     */
-    SKP_int                 lowComplexity           /* I    Flag for low complexity     */
-)
-{
-    SKP_int             j, k, temp_idx[ NB_SUBFR ], cbk_size;
-    const SKP_uint16    *cdf_ptr;
-    const SKP_int16     *cl_ptr;
-    const SKP_int16     *cbk_ptr_Q14;
-    const SKP_int16     *b_Q14_ptr;
-    const SKP_int32     *W_Q18_ptr;
-    SKP_int32           rate_dist_subfr, rate_dist, min_rate_dist;
-
-
-
-    /***************************************************/
-    /* iterate over different codebooks with different */
-    /* rates/distortions, and choose best */
-    /***************************************************/
-    min_rate_dist = SKP_int32_MAX;
-    for( k = 0; k &lt; 3; k++ ) {
-        cdf_ptr     = SKP_Silk_LTP_gain_CDF_ptrs[     k ];
-        cl_ptr      = SKP_Silk_LTP_gain_BITS_Q6_ptrs[ k ];
-        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[       k ];
-        cbk_size    = SKP_Silk_LTP_vq_sizes[          k ];
-
-        /* Setup pointer to first subframe */
-
-
-
-
-
-        W_Q18_ptr = W_Q18;
-        b_Q14_ptr = B_Q14;
-
-        rate_dist = 0;
-        for( j = 0; j &lt; NB_SUBFR; j++ ) {
-
-            SKP_Silk_VQ_WMat_EC_FIX(
-                &amp;temp_idx[ j ],         /* O    index of best codebook vector                           */
-                &amp;rate_dist_subfr,       /* O    best weighted quantization error + mu * rate            */
-                b_Q14_ptr,              /* I    input vector to be quantized                            */
-                W_Q18_ptr,              /* I    weighting matrix                                        */
-                cbk_ptr_Q14,            /* I    codebook                                                */
-                cl_ptr,                 /* I    code length for each codebook vector                    */
-                mu_Q8,                  /* I    tradeoff between weighted error and rate                */
-                cbk_size                /* I    number of vectors in codebook                           */
-            );
-
-            rate_dist = SKP_ADD_POS_SAT32( rate_dist, rate_dist_subfr );
-
-            b_Q14_ptr += LTP_ORDER;
-            W_Q18_ptr += LTP_ORDER * LTP_ORDER;
-        }
-
-        /* Avoid never finding a codebook */
-        rate_dist = SKP_min( SKP_int32_MAX - 1, rate_dist );
-
-        if( rate_dist &lt; min_rate_dist ) {
-            min_rate_dist = rate_dist;
-            SKP_memcpy( cbk_index, temp_idx, NB_SUBFR * sizeof( SKP_int ) );
-            *periodicity_index = k;
-        }
-
-        /* Break early in low-complexity mode if rate distortion is below threshold */
-        if( lowComplexity &amp;&amp; ( rate_dist &lt; SKP_Silk_LTP_gain_middle_avg_RD_Q14 ) ) {
-            break;
-        }
-    }
-
-    cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ *periodicity_index ];
-    for( j = 0; j &lt; NB_SUBFR; j++ ) {
-        for( k = 0; k &lt; LTP_ORDER; k++ ) {
-            B_Q14[ j * LTP_ORDER + k ] = cbk_ptr_Q14[ SKP_MLA( k, cbk_index[ j ], LTP_ORDER ) ];
-        }
-    }
-}
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+void SKP_Silk_quant_LTP_gains_FIX(
+    SKP_int16               B_Q14[],                /* I/O  (un)quantized LTP gains     */
+    SKP_int                 cbk_index[],            /* O    Codebook Index              */
+    SKP_int                 *periodicity_index,     /* O    Periodicity Index           */
+    const SKP_int32         W_Q18[],                /* I    Error Weights in Q18        */
+    SKP_int                 mu_Q8,                  /* I    Mu value (R/D tradeoff)     */
+    SKP_int                 lowComplexity           /* I    Flag for low complexity     */
+)
+{
+    SKP_int             j, k, temp_idx[ NB_SUBFR ], cbk_size;
+    const SKP_uint16    *cdf_ptr;
+    const SKP_int16     *cl_ptr;
+    const SKP_int16     *cbk_ptr_Q14;
+    const SKP_int16     *b_Q14_ptr;
+    const SKP_int32     *W_Q18_ptr;
+    SKP_int32           rate_dist_subfr, rate_dist, min_rate_dist;
+
+
+
+    /***************************************************/
+    /* iterate over different codebooks with different */
+    /* rates/distortions, and choose best */
+    /***************************************************/
+    min_rate_dist = SKP_int32_MAX;
+    for( k = 0; k &lt; 3; k++ ) {
+        cdf_ptr     = SKP_Silk_LTP_gain_CDF_ptrs[     k ];
+        cl_ptr      = SKP_Silk_LTP_gain_BITS_Q6_ptrs[ k ];
+        cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[       k ];
+        cbk_size    = SKP_Silk_LTP_vq_sizes[          k ];
+
+        /* Setup pointer to first subframe */
+        W_Q18_ptr = W_Q18;
+        b_Q14_ptr = B_Q14;
+
+        rate_dist = 0;
+        for( j = 0; j &lt; NB_SUBFR; j++ ) {
+
+            SKP_Silk_VQ_WMat_EC_FIX(
+                &amp;temp_idx[ j ],         /* O    index of best codebook vector                           */
+                &amp;rate_dist_subfr,       /* O    best weighted quantization error + mu * rate            */
+                b_Q14_ptr,              /* I    input vector to be quantized                            */
+                W_Q18_ptr,              /* I    weighting matrix                                        */
+                cbk_ptr_Q14,            /* I    codebook                                                */
+                cl_ptr,                 /* I    code length for each codebook vector                    */
+                mu_Q8,                  /* I    tradeoff between weighted error and rate                */
+                cbk_size                /* I    number of vectors in codebook                           */
+            );
+
+            rate_dist = SKP_ADD_POS_SAT32( rate_dist, rate_dist_subfr );
+
+            b_Q14_ptr += LTP_ORDER;
+            W_Q18_ptr += LTP_ORDER * LTP_ORDER;
+        }
+
+        /* Avoid never finding a codebook */
+        rate_dist = SKP_min( SKP_int32_MAX - 1, rate_dist );
+
+        if( rate_dist &lt; min_rate_dist ) {
+            min_rate_dist = rate_dist;
+            SKP_memcpy( cbk_index, temp_idx, NB_SUBFR * sizeof( SKP_int ) );
+            *periodicity_index = k;
+        }
+
+        /* Break early in low-complexity mode if rate distortion is below threshold */
+        if( lowComplexity &amp;&amp; ( rate_dist &lt; SKP_Silk_LTP_gain_middle_avg_RD_Q14 ) ) {
+            break;
+        }
+    }
+
+    cbk_ptr_Q14 = SKP_Silk_LTP_vq_ptrs_Q14[ *periodicity_index ];
+    for( j = 0; j &lt; NB_SUBFR; j++ ) {
+        for( k = 0; k &lt; LTP_ORDER; k++ ) { 
+            B_Q14[ j * LTP_ORDER + k ] = cbk_ptr_Q14[ SKP_MLA( k, cbk_index[ j ], LTP_ORDER ) ];
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_range_coderc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_range_coder.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_range_coder.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_range_coder.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,423 +1,372 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* Range encoder for one symbol */
-void SKP_Silk_range_encoder(
-    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int                   data,               /* I    uncompressed data                           */
-    const SKP_uint16                prob[]              /* I    cumulative density functions                */
-)
-{
-    SKP_uint32 low_Q16, high_Q16;
-    SKP_uint32 base_tmp, range_Q32;
-
-    /* Copy structure data */
-    SKP_uint32 base_Q32  = psRC-&gt;base_Q32;
-    SKP_uint32 range_Q16 = psRC-&gt;range_Q16;
-    SKP_int32  bufferIx  = psRC-&gt;bufferIx;
-
-
-
-
-
-    SKP_uint8  *buffer   = psRC-&gt;buffer;
-
-    if( psRC-&gt;error ) {
-        return;
-    }
-
-    /* Update interval */
-    low_Q16  = prob[ data ];
-    high_Q16 = prob[ data + 1 ];
-    base_tmp = base_Q32; /* save current base, to test for carry */
-    base_Q32 += SKP_MUL_uint( range_Q16, low_Q16 );
-    range_Q32 = SKP_MUL_uint( range_Q16, high_Q16 - low_Q16 );
-
-    /* Check for carry */
-    if( base_Q32 &lt; base_tmp ) {
-        /* Propagate carry in buffer */
-        SKP_int bufferIx_tmp = bufferIx;
-        while( ( ++buffer[ --bufferIx_tmp ] ) == 0 );
-    }
-
-    /* Check normalization */
-    if( range_Q32 &amp; 0xFF000000 ) {
-        /* No normalization */
-        range_Q16 = SKP_RSHIFT_uint( range_Q32, 16 );
-    } else {
-        if( range_Q32 &amp; 0xFFFF0000 ) {
-            /* Normalization of 8 bits shift */
-            range_Q16 = SKP_RSHIFT_uint( range_Q32, 8 );
-        } else {
-            /* Normalization of 16 bits shift */
-            range_Q16 = range_Q32;
-            /* Make sure not to write beyond buffer */
-            if( bufferIx &gt;= psRC-&gt;bufferLength ) {
-                psRC-&gt;error = RANGE_CODER_WRITE_BEYOND_BUFFER;
-                return;
-            }
-            /* Write one byte to buffer */
-            buffer[ bufferIx++ ] = (SKP_uint8)( SKP_RSHIFT_uint( base_Q32, 24 ) );
-            base_Q32 = SKP_LSHIFT_ovflw( base_Q32, 8 );
-        }
-        /* Make sure not to write beyond buffer */
-        if( bufferIx &gt;= psRC-&gt;bufferLength ) {
-            psRC-&gt;error = RANGE_CODER_WRITE_BEYOND_BUFFER;
-            return;
-        }
-        /* Write one byte to buffer */
-        buffer[ bufferIx++ ] = (SKP_uint8)( SKP_RSHIFT_uint( base_Q32, 24 ) );
-        base_Q32 = SKP_LSHIFT_ovflw( base_Q32, 8 );
-
-
-
-
-
-    }
-
-    /* Copy structure data back */
-    psRC-&gt;base_Q32  = base_Q32;
-    psRC-&gt;range_Q16 = range_Q16;
-    psRC-&gt;bufferIx  = bufferIx;
-}
-
-/* Range encoder for multiple symbols */
-void SKP_Silk_range_encoder_multi(
-    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
-    const SKP_int                   data[],             /* I    uncompressed data    [nSymbols]             */
-    const SKP_uint16 * const        prob[],             /* I    cumulative density functions                */
-    const SKP_int                   nSymbols            /* I    number of data symbols                      */
-)
-{
-    SKP_int k;
-    for( k = 0; k &lt; nSymbols; k++ ) {
-        SKP_Silk_range_encoder( psRC, data[ k ], prob[ k ] );
-    }
-}
-
-/* Range decoder for one symbol */
-void SKP_Silk_range_decoder(
-    SKP_int                         data[],             /* O    uncompressed data                           */
-    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
-    const SKP_uint16                prob[],             /* I    cumulative density function                 */
-    SKP_int                         probIx              /* I    initial (middle) entry of cdf               */
-)
-{
-    SKP_uint32 low_Q16, high_Q16;
-    SKP_uint32 base_tmp, range_Q32;
-
-    /* Copy structure data */
-    SKP_uint32 base_Q32  = psRC-&gt;base_Q32;
-    SKP_uint32 range_Q16 = psRC-&gt;range_Q16;
-    SKP_int32  bufferIx  = psRC-&gt;bufferIx;
-    SKP_uint8  *buffer   = &amp;psRC-&gt;buffer[ 4 ];
-
-    if( psRC-&gt;error ) {
-        /* Set output to zero */
-        *data = 0;
-        return;
-    }
-
-    high_Q16 = prob[ probIx ];
-    base_tmp = SKP_MUL_uint( range_Q16, high_Q16 );
-    if( base_tmp &gt; base_Q32 ) {
-
-
-
-
-
-        while( 1 ) {
-            low_Q16 = prob[ --probIx ];
-            base_tmp = SKP_MUL_uint( range_Q16, low_Q16 );
-            if( base_tmp &lt;= base_Q32 ) {
-                break;
-            }
-            high_Q16 = low_Q16;
-            /* Test for out of range */
-            if( high_Q16 == 0 ) {
-                psRC-&gt;error = RANGE_CODER_CDF_OUT_OF_RANGE;
-                /* Set output to zero */
-                *data = 0;
-                return;
-            }
-        }
-    } else {
-        while( 1 ) {
-            low_Q16  = high_Q16;
-            high_Q16 = prob[ ++probIx ];
-            base_tmp = SKP_MUL_uint( range_Q16, high_Q16 );
-            if( base_tmp &gt; base_Q32 ) {
-                probIx--;
-                break;
-            }
-            /* Test for out of range */
-            if( high_Q16 == 0xFFFF ) {
-                psRC-&gt;error = RANGE_CODER_CDF_OUT_OF_RANGE;
-                /* Set output to zero */
-                *data = 0;
-                return;
-            }
-        }
-    }
-    *data = probIx;
-    base_Q32 -= SKP_MUL_uint( range_Q16, low_Q16 );
-    range_Q32 = SKP_MUL_uint( range_Q16, high_Q16 - low_Q16 );
-
-    /* Check normalization */
-    if( range_Q32 &amp; 0xFF000000 ) {
-        /* No normalization */
-        range_Q16 = SKP_RSHIFT_uint( range_Q32, 16 );
-    } else {
-        if( range_Q32 &amp; 0xFFFF0000 ) {
-            /* Normalization of 8 bits shift */
-            range_Q16 = SKP_RSHIFT_uint( range_Q32, 8 );
-            /* Check for errors */
-            if( SKP_RSHIFT_uint( base_Q32, 24 ) ) {
-                psRC-&gt;error = RANGE_CODER_NORMALIZATION_FAILED;
-
-
-
-
-
-                /* Set output to zero */
-                *data = 0;
-                return;
-            }
-        } else {
-            /* Normalization of 16 bits shift */
-            range_Q16 = range_Q32;
-            /* Check for errors */
-            if( SKP_RSHIFT( base_Q32, 16 ) ) {
-                psRC-&gt;error = RANGE_CODER_NORMALIZATION_FAILED;
-                /* Set output to zero */
-                *data = 0;
-                return;
-            }
-            /* Update base */
-            base_Q32 = SKP_LSHIFT_uint( base_Q32, 8 );
-            /* Make sure not to read beyond buffer */
-            if( bufferIx &lt; psRC-&gt;bufferLength ) {
-                /* Read one byte from buffer */
-                base_Q32 |= (SKP_uint32)buffer[ bufferIx++ ];
-            }
-        }
-        /* Update base */
-        base_Q32 = SKP_LSHIFT_uint( base_Q32, 8 );
-        /* Make sure not to read beyond buffer */
-        if( bufferIx &lt; psRC-&gt;bufferLength ) {
-            /* Read one byte from buffer */
-            base_Q32 |= (SKP_uint32)buffer[ bufferIx++ ];
-        }
-    }
-
-    /* Check for zero interval length */
-    if( range_Q16 == 0 ) {
-        psRC-&gt;error = RANGE_CODER_ZERO_INTERVAL_WIDTH;
-        /* Set output to zero */
-        *data = 0;
-        return;
-    }
-
-    /* Copy structure data back */
-    psRC-&gt;base_Q32  = base_Q32;
-    psRC-&gt;range_Q16 = range_Q16;
-    psRC-&gt;bufferIx  = bufferIx;
-}
-
-/* Range decoder for multiple symbols */
-void SKP_Silk_range_decoder_multi(
-    SKP_int                         data[],             /* O    uncompressed data                [nSymbols] */
-
-
-
-
-
-    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
-    const SKP_uint16 * const        prob[],             /* I    cumulative density functions                */
-    const SKP_int                   probStartIx[],      /* I    initial (middle) entries of cdfs [nSymbols] */
-    const SKP_int                   nSymbols            /* I    number of data symbols                      */
-)
-{
-    SKP_int k;
-    for( k = 0; k &lt; nSymbols; k++ ) {
-        SKP_Silk_range_decoder( &amp;data[ k ], psRC, prob[ k ], probStartIx[ k ] );
-    }
-}
-
-/* Initialize range encoder */
-void SKP_Silk_range_enc_init(
-    SKP_Silk_range_coder_state      *psRC               /* O    compressor data structure                   */
-)
-{
-    /* Initialize structure */
-    psRC-&gt;bufferLength = MAX_ARITHM_BYTES;
-    psRC-&gt;range_Q16    = 0x0000FFFF;
-    psRC-&gt;bufferIx     = 0;
-    psRC-&gt;base_Q32     = 0;
-    psRC-&gt;error        = 0;
-}
-
-/* Initialize range decoder */
-void SKP_Silk_range_dec_init(
-    SKP_Silk_range_coder_state      *psRC,              /* O    compressor data structure                   */
-    const SKP_uint8                 buffer[],           /* I    buffer for compressed data [bufferLength]   */
-    const SKP_int32                 bufferLength        /* I    buffer length (in bytes)                    */
-)
-{
-    /* check input */
-    if( bufferLength &gt; MAX_ARITHM_BYTES ) {
-        psRC-&gt;error = RANGE_CODER_DEC_PAYLOAD_TOO_LONG;
-        return;
-    }
-    /* Initialize structure */
-    /* Copy to internal buffer */
-    SKP_memcpy( psRC-&gt;buffer, buffer, bufferLength * sizeof( SKP_uint8 ) );
-    psRC-&gt;bufferLength = bufferLength;
-    psRC-&gt;bufferIx = 0;
-    psRC-&gt;base_Q32 =
-        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 0 ], 24 ) |
-        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 1 ], 16 ) |
-        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 2 ],  8 ) |
-                         (SKP_uint32)buffer[ 3 ];
-    psRC-&gt;range_Q16 = 0x0000FFFF;
-
-
-
-
-
-    psRC-&gt;error     = 0;
-}
-
-/* Determine length of bitstream */
-SKP_int SKP_Silk_range_coder_get_length(                /* O    returns number of BITS in stream            */
-    const SKP_Silk_range_coder_state    *psRC,          /* I    compressed data structure                   */
-    SKP_int                             *nBytes         /* O    number of BYTES in stream                   */
-)
-{
-    SKP_int nBits;
-
-    /* Number of additional bits (1..9) required to be stored to stream */
-    nBits = SKP_LSHIFT( psRC-&gt;bufferIx, 3 ) + SKP_Silk_CLZ32( psRC-&gt;range_Q16 - 1 ) - 14;
-
-    *nBytes = SKP_RSHIFT( nBits + 7, 3 );
-
-    /* Return number of bits in bitstream */
-    return nBits;
-}
-
-/* Write shortest uniquely decodable stream to buffer, and determine its length */
-void SKP_Silk_range_enc_wrap_up(
-    SKP_Silk_range_coder_state      *psRC               /* I/O  compressed data structure                   */
-)
-{
-    SKP_int bufferIx_tmp, bits_to_store, bits_in_stream, nBytes, mask;
-    SKP_uint32 base_Q24;
-
-    /* Lower limit of interval, shifted 8 bits to the right */
-    base_Q24 = SKP_RSHIFT_uint( psRC-&gt;base_Q32, 8 );
-
-    bits_in_stream = SKP_Silk_range_coder_get_length( psRC, &amp;nBytes );
-
-    /* Number of additional bits (1..9) required to be stored to stream */
-    bits_to_store = bits_in_stream - SKP_LSHIFT( psRC-&gt;bufferIx, 3 );
-    /* Round up to required resolution */
-    base_Q24 += SKP_RSHIFT_uint(  0x00800000, bits_to_store - 1 );
-    base_Q24 &amp;= SKP_LSHIFT_ovflw( 0xFFFFFFFF, 24 - bits_to_store );
-
-    /* Check for carry */
-    if( base_Q24 &amp; 0x01000000 ) {
-        /* Propagate carry in buffer */
-        bufferIx_tmp = psRC-&gt;bufferIx;
-        while( ( ++( psRC-&gt;buffer[ --bufferIx_tmp ] ) ) == 0 );
-    }
-
-    /* Store to stream, making sure not to write beyond buffer */
-    if( psRC-&gt;bufferIx &lt; psRC-&gt;bufferLength ) {
-
-
-
-
-
-        psRC-&gt;buffer[ psRC-&gt;bufferIx++ ] = (SKP_uint8)SKP_RSHIFT_uint( base_Q24, 16 );
-        if( bits_to_store &gt; 8 ) {
-            if( psRC-&gt;bufferIx &lt; psRC-&gt;bufferLength ) {
-                psRC-&gt;buffer[ psRC-&gt;bufferIx++ ] = (SKP_uint8)SKP_RSHIFT_uint( base_Q24, 8 );
-            }
-        }
-    }
-
-    /* Fill up any remaining bits in the last byte with 1s */
-    if( bits_in_stream &amp; 7 ) {
-        mask = SKP_RSHIFT( 0xFF, bits_in_stream &amp; 7 );
-        if( nBytes - 1 &lt; psRC-&gt;bufferLength ) {
-            psRC-&gt;buffer[ nBytes - 1 ] |= mask;
-        }
-    }
-}
-
-/* Check that any remaining bits in the last byte are set to 1 */
-void SKP_Silk_range_coder_check_after_decoding(
-    SKP_Silk_range_coder_state      *psRC               /* I/O  compressed data structure                   */
-)
-{
-    SKP_int bits_in_stream, nBytes, mask;
-
-    bits_in_stream = SKP_Silk_range_coder_get_length( psRC, &amp;nBytes );
-
-    /* Make sure not to read beyond buffer */
-    if( nBytes - 1 &gt;= psRC-&gt;bufferLength ) {
-        psRC-&gt;error = RANGE_CODER_DECODER_CHECK_FAILED;
-        return;
-    }
-
-    /* Test any remaining bits in last byte */
-    if( bits_in_stream &amp; 7 ) {
-        mask = SKP_RSHIFT( 0xFF, bits_in_stream &amp; 7 );
-        if( ( psRC-&gt;buffer[ nBytes - 1 ] &amp; mask ) != mask ) {
-            psRC-&gt;error = RANGE_CODER_DECODER_CHECK_FAILED;
-            return;
-        }
-    }
-}
-
-
-
-
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* Range encoder for one symbol */
+void SKP_Silk_range_encoder(
+    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int                   data,               /* I    uncompressed data                           */
+    const SKP_uint16                prob[]              /* I    cumulative density functions                */
+)
+{
+    SKP_uint32 low_Q16, high_Q16;
+    SKP_uint32 base_tmp, range_Q32;
+
+    /* Copy structure data */
+    SKP_uint32 base_Q32  = psRC-&gt;base_Q32;
+    SKP_uint32 range_Q16 = psRC-&gt;range_Q16;
+    SKP_int32  bufferIx  = psRC-&gt;bufferIx;
+    SKP_uint8  *buffer   = psRC-&gt;buffer;
+
+    if( psRC-&gt;error ) {
+        return;
+    }
+
+    /* Update interval */
+    low_Q16  = prob[ data ];
+    high_Q16 = prob[ data + 1 ];
+    base_tmp = base_Q32; /* save current base, to test for carry */
+    base_Q32 += SKP_MUL_uint( range_Q16, low_Q16 );
+    range_Q32 = SKP_MUL_uint( range_Q16, high_Q16 - low_Q16 );
+
+    /* Check for carry */
+    if( base_Q32 &lt; base_tmp ) {
+        /* Propagate carry in buffer */
+        SKP_int bufferIx_tmp = bufferIx;
+        while( ( ++buffer[ --bufferIx_tmp ] ) == 0 );
+    }
+
+    /* Check normalization */
+    if( range_Q32 &amp; 0xFF000000 ) {
+        /* No normalization */
+        range_Q16 = SKP_RSHIFT_uint( range_Q32, 16 );
+    } else {
+        if( range_Q32 &amp; 0xFFFF0000 ) {
+            /* Normalization of 8 bits shift */
+            range_Q16 = SKP_RSHIFT_uint( range_Q32, 8 );
+        } else {
+            /* Normalization of 16 bits shift */
+            range_Q16 = range_Q32;
+            /* Make sure not to write beyond buffer */
+            if( bufferIx &gt;= psRC-&gt;bufferLength ) {
+                psRC-&gt;error = RANGE_CODER_WRITE_BEYOND_BUFFER;
+                return;
+            }
+            /* Write one byte to buffer */
+            buffer[ bufferIx++ ] = (SKP_uint8)( SKP_RSHIFT_uint( base_Q32, 24 ) );
+            base_Q32 = SKP_LSHIFT_ovflw( base_Q32, 8 );
+        }
+        /* Make sure not to write beyond buffer */
+        if( bufferIx &gt;= psRC-&gt;bufferLength ) {
+            psRC-&gt;error = RANGE_CODER_WRITE_BEYOND_BUFFER;
+            return;
+        }
+        /* Write one byte to buffer */
+        buffer[ bufferIx++ ] = (SKP_uint8)( SKP_RSHIFT_uint( base_Q32, 24 ) );
+        base_Q32 = SKP_LSHIFT_ovflw( base_Q32, 8 );
+    }
+
+    /* Copy structure data back */
+    psRC-&gt;base_Q32  = base_Q32;
+    psRC-&gt;range_Q16 = range_Q16;
+    psRC-&gt;bufferIx  = bufferIx;
+}
+
+/* Range encoder for multiple symbols */
+void SKP_Silk_range_encoder_multi(
+    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
+    const SKP_int                   data[],             /* I    uncompressed data    [nSymbols]             */
+    const SKP_uint16 * const        prob[],             /* I    cumulative density functions                */
+    const SKP_int                   nSymbols            /* I    number of data symbols                      */
+)
+{
+    SKP_int k;
+    for( k = 0; k &lt; nSymbols; k++ ) {
+        SKP_Silk_range_encoder( psRC, data[ k ], prob[ k ] );
+    }
+}
+
+/* Range decoder for one symbol */
+void SKP_Silk_range_decoder(
+    SKP_int                         data[],             /* O    uncompressed data                           */
+    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
+    const SKP_uint16                prob[],             /* I    cumulative density function                 */
+    SKP_int                         probIx              /* I    initial (middle) entry of cdf               */
+)
+{
+    SKP_uint32 low_Q16, high_Q16;
+    SKP_uint32 base_tmp, range_Q32;
+
+    /* Copy structure data */
+    SKP_uint32 base_Q32  = psRC-&gt;base_Q32;
+    SKP_uint32 range_Q16 = psRC-&gt;range_Q16;
+    SKP_int32  bufferIx  = psRC-&gt;bufferIx;
+    SKP_uint8  *buffer   = &amp;psRC-&gt;buffer[ 4 ];
+
+    if( psRC-&gt;error ) {
+        /* Set output to zero */
+        *data = 0;
+        return;
+    }
+
+    high_Q16 = prob[ probIx ];
+    base_tmp = SKP_MUL_uint( range_Q16, high_Q16 );
+    if( base_tmp &gt; base_Q32 ) {
+        while( 1 ) {
+            low_Q16 = prob[ --probIx ];
+            base_tmp = SKP_MUL_uint( range_Q16, low_Q16 );
+            if( base_tmp &lt;= base_Q32 ) {
+                break;
+            }
+            high_Q16 = low_Q16;
+            /* Test for out of range */
+            if( high_Q16 == 0 ) {
+                psRC-&gt;error = RANGE_CODER_CDF_OUT_OF_RANGE;
+                /* Set output to zero */
+                *data = 0;
+                return;
+            }
+        }
+    } else {
+        while( 1 ) {
+            low_Q16  = high_Q16;
+            high_Q16 = prob[ ++probIx ];
+            base_tmp = SKP_MUL_uint( range_Q16, high_Q16 );
+            if( base_tmp &gt; base_Q32 ) {
+                probIx--;
+                break;
+            }
+            /* Test for out of range */
+            if( high_Q16 == 0xFFFF ) {
+                psRC-&gt;error = RANGE_CODER_CDF_OUT_OF_RANGE;
+                /* Set output to zero */
+                *data = 0;
+                return;
+            }
+        }
+    }
+    *data = probIx;
+    base_Q32 -= SKP_MUL_uint( range_Q16, low_Q16 );
+    range_Q32 = SKP_MUL_uint( range_Q16, high_Q16 - low_Q16 );
+
+    /* Check normalization */
+    if( range_Q32 &amp; 0xFF000000 ) {
+        /* No normalization */
+        range_Q16 = SKP_RSHIFT_uint( range_Q32, 16 );
+    } else {
+        if( range_Q32 &amp; 0xFFFF0000 ) {
+            /* Normalization of 8 bits shift */
+            range_Q16 = SKP_RSHIFT_uint( range_Q32, 8 );
+            /* Check for errors */
+            if( SKP_RSHIFT_uint( base_Q32, 24 ) ) {
+                psRC-&gt;error = RANGE_CODER_NORMALIZATION_FAILED;
+                /* Set output to zero */
+                *data = 0;
+                return;
+            }
+        } else {
+            /* Normalization of 16 bits shift */
+            range_Q16 = range_Q32;
+            /* Check for errors */
+            if( SKP_RSHIFT( base_Q32, 16 ) ) {
+                psRC-&gt;error = RANGE_CODER_NORMALIZATION_FAILED;
+                /* Set output to zero */
+                *data = 0;
+                return;
+            }
+            /* Update base */
+            base_Q32 = SKP_LSHIFT_uint( base_Q32, 8 );
+            /* Make sure not to read beyond buffer */
+            if( bufferIx &lt; psRC-&gt;bufferLength ) {
+                /* Read one byte from buffer */
+                base_Q32 |= (SKP_uint32)buffer[ bufferIx++ ];
+            }
+        }
+        /* Update base */
+        base_Q32 = SKP_LSHIFT_uint( base_Q32, 8 );
+        /* Make sure not to read beyond buffer */
+        if( bufferIx &lt; psRC-&gt;bufferLength ) {
+            /* Read one byte from buffer */
+            base_Q32 |= (SKP_uint32)buffer[ bufferIx++ ];
+        }
+    }
+
+    /* Check for zero interval length */
+    if( range_Q16 == 0 ) {
+        psRC-&gt;error = RANGE_CODER_ZERO_INTERVAL_WIDTH;
+        /* Set output to zero */
+        *data = 0;
+        return;
+    }
+
+    /* Copy structure data back */
+    psRC-&gt;base_Q32  = base_Q32;
+    psRC-&gt;range_Q16 = range_Q16;
+    psRC-&gt;bufferIx  = bufferIx;
+}
+
+/* Range decoder for multiple symbols */
+void SKP_Silk_range_decoder_multi(
+    SKP_int                         data[],             /* O    uncompressed data                [nSymbols] */
+    SKP_Silk_range_coder_state      *psRC,              /* I/O  compressor data structure                   */
+    const SKP_uint16 * const        prob[],             /* I    cumulative density functions                */
+    const SKP_int                   probStartIx[],      /* I    initial (middle) entries of cdfs [nSymbols] */
+    const SKP_int                   nSymbols            /* I    number of data symbols                      */
+)
+{
+    SKP_int k;
+    for( k = 0; k &lt; nSymbols; k++ ) {
+        SKP_Silk_range_decoder( &amp;data[ k ], psRC, prob[ k ], probStartIx[ k ] );
+    }
+}
+
+/* Initialize range encoder */
+void SKP_Silk_range_enc_init(
+    SKP_Silk_range_coder_state      *psRC               /* O    compressor data structure                   */
+)
+{
+    /* Initialize structure */
+    psRC-&gt;bufferLength = MAX_ARITHM_BYTES;
+    psRC-&gt;range_Q16    = 0x0000FFFF;
+    psRC-&gt;bufferIx     = 0;
+    psRC-&gt;base_Q32     = 0;
+    psRC-&gt;error        = 0;
+}
+
+/* Initialize range decoder */
+void SKP_Silk_range_dec_init(
+    SKP_Silk_range_coder_state      *psRC,              /* O    compressor data structure                   */
+    const SKP_uint8                 buffer[],           /* I    buffer for compressed data [bufferLength]   */
+    const SKP_int32                 bufferLength        /* I    buffer length (in bytes)                    */
+)
+{
+    /* check input */
+    if( bufferLength &gt; MAX_ARITHM_BYTES ) {
+        psRC-&gt;error = RANGE_CODER_DEC_PAYLOAD_TOO_LONG;
+        return;
+    }
+    /* Initialize structure */
+    /* Copy to internal buffer */
+    SKP_memcpy( psRC-&gt;buffer, buffer, bufferLength * sizeof( SKP_uint8 ) ); 
+    psRC-&gt;bufferLength = bufferLength;
+    psRC-&gt;bufferIx = 0;
+    psRC-&gt;base_Q32 = 
+        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 0 ], 24 ) | 
+        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 1 ], 16 ) | 
+        SKP_LSHIFT_uint( (SKP_uint32)buffer[ 2 ],  8 ) | 
+                         (SKP_uint32)buffer[ 3 ];
+    psRC-&gt;range_Q16 = 0x0000FFFF;
+    psRC-&gt;error     = 0;
+}
+
+/* Determine length of bitstream */
+SKP_int SKP_Silk_range_coder_get_length(                /* O    returns number of BITS in stream            */
+    const SKP_Silk_range_coder_state    *psRC,          /* I    compressed data structure                   */
+    SKP_int                             *nBytes         /* O    number of BYTES in stream                   */
+)
+{
+    SKP_int nBits;
+
+    /* Number of additional bits (1..9) required to be stored to stream */
+    nBits = SKP_LSHIFT( psRC-&gt;bufferIx, 3 ) + SKP_Silk_CLZ32( psRC-&gt;range_Q16 - 1 ) - 14;
+
+    *nBytes = SKP_RSHIFT( nBits + 7, 3 );
+
+    /* Return number of bits in bitstream */
+    return nBits;
+}
+
+/* Write shortest uniquely decodable stream to buffer, and determine its length */
+void SKP_Silk_range_enc_wrap_up(
+    SKP_Silk_range_coder_state      *psRC               /* I/O  compressed data structure                   */
+)
+{
+    SKP_int bufferIx_tmp, bits_to_store, bits_in_stream, nBytes, mask;
+    SKP_uint32 base_Q24;
+
+    /* Lower limit of interval, shifted 8 bits to the right */
+    base_Q24 = SKP_RSHIFT_uint( psRC-&gt;base_Q32, 8 );
+
+    bits_in_stream = SKP_Silk_range_coder_get_length( psRC, &amp;nBytes );
+
+    /* Number of additional bits (1..9) required to be stored to stream */
+    bits_to_store = bits_in_stream - SKP_LSHIFT( psRC-&gt;bufferIx, 3 );
+    /* Round up to required resolution */
+    base_Q24 += SKP_RSHIFT_uint(  0x00800000, bits_to_store - 1 );
+    base_Q24 &amp;= SKP_LSHIFT_ovflw( 0xFFFFFFFF, 24 - bits_to_store );
+
+    /* Check for carry */
+    if( base_Q24 &amp; 0x01000000 ) {
+        /* Propagate carry in buffer */
+        bufferIx_tmp = psRC-&gt;bufferIx;
+        while( ( ++( psRC-&gt;buffer[ --bufferIx_tmp ] ) ) == 0 );
+    }
+
+    /* Store to stream, making sure not to write beyond buffer */
+    if( psRC-&gt;bufferIx &lt; psRC-&gt;bufferLength ) {
+        psRC-&gt;buffer[ psRC-&gt;bufferIx++ ] = (SKP_uint8)SKP_RSHIFT_uint( base_Q24, 16 );
+        if( bits_to_store &gt; 8 ) {
+            if( psRC-&gt;bufferIx &lt; psRC-&gt;bufferLength ) {
+                psRC-&gt;buffer[ psRC-&gt;bufferIx++ ] = (SKP_uint8)SKP_RSHIFT_uint( base_Q24, 8 );
+            }
+        }
+    }
+
+    /* Fill up any remaining bits in the last byte with 1s */
+    if( bits_in_stream &amp; 7 ) {
+        mask = SKP_RSHIFT( 0xFF, bits_in_stream &amp; 7 );
+        if( nBytes - 1 &lt; psRC-&gt;bufferLength ) {
+            psRC-&gt;buffer[ nBytes - 1 ] |= mask;
+        }
+    }
+}
+
+/* Check that any remaining bits in the last byte are set to 1 */
+void SKP_Silk_range_coder_check_after_decoding(
+    SKP_Silk_range_coder_state      *psRC               /* I/O  compressed data structure                   */
+)
+{
+    SKP_int bits_in_stream, nBytes, mask;
+
+    bits_in_stream = SKP_Silk_range_coder_get_length( psRC, &amp;nBytes );
+
+    /* Make sure not to read beyond buffer */
+    if( nBytes - 1 &gt;= psRC-&gt;bufferLength ) {
+        psRC-&gt;error = RANGE_CODER_DECODER_CHECK_FAILED;
+        return;
+    }
+
+    /* Test any remaining bits in last byte */
+    if( bits_in_stream &amp; 7 ) {
+        mask = SKP_RSHIFT( 0xFF, bits_in_stream &amp; 7 );
+        if( ( psRC-&gt;buffer[ nBytes - 1 ] &amp; mask ) != mask ) {
+            psRC-&gt;error = RANGE_CODER_DECODER_CHECK_FAILED;
+            return;
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_regularize_correlations_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,52 +1,43 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Add noise to matrix diagonal */
-void SKP_Silk_regularize_correlations_FIX(
-    SKP_int32                       *XX,                /* I/O  Correlation matrices                        */
-    SKP_int32                       *xx,                /* I/O  Correlation values                          */
-    SKP_int32                       noise,              /* I    Noise to add                                */
-    SKP_int                         D                   /* I    Dimension of XX                             */
-)
-{
-    SKP_int i;
-    for( i = 0; i &lt; D; i++ ) {
-        matrix_ptr( &amp;XX[ 0 ], i, i, D ) = SKP_ADD32( matrix_ptr( &amp;XX[ 0 ], i, i, D ), noise );
-    }
-    xx[ 0 ] += noise;
-}
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Add noise to matrix diagonal */
+void SKP_Silk_regularize_correlations_FIX(
+    SKP_int32                       *XX,                /* I/O  Correlation matrices                        */
+    SKP_int32                       *xx,                /* I/O  Correlation values                          */
+    SKP_int32                       noise,              /* I    Noise to add                                */
+    SKP_int                         D                   /* I    Dimension of XX                             */
+)
+{
+    SKP_int i;
+    for( i = 0; i &lt; D; i++ ) {
+        matrix_ptr( &amp;XX[ 0 ], i, i, D ) = SKP_ADD32( matrix_ptr( &amp;XX[ 0 ], i, i, D ), noise );
+    }
+    xx[ 0 ] += noise;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_1_2c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,88 +1,77 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_1_2                                              *
- *                                                                      *
- * Downsample by a factor 2                                             *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Coefficients for 2-fold resampling */
-static SKP_int16 A20_Resample_1_2[ 3 ] = { 1254, 10102, 22898 };
-static SKP_int16 A21_Resample_1_2[ 3 ] = { 4810, 16371, 29374 };
-
-
-/* Downsample by a factor 2 */
-
-
-
-
-
-void SKP_Silk_resample_1_2(
-    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]   */
-    SKP_int32            *S,             /* I/O: State vector [6]        */
-    SKP_int16            *out,           /* O:   8 kHz signal [len]      */
-    SKP_int32            *scratch,       /* I:   Scratch memory [4*len]  */
-    const SKP_int32      len             /* I:   Number of OUTPUT samples*/
-)
-{
-    SKP_int32    k, idx;
-
-    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
-    for( k = 0; k &lt; len; k++ ) {
-        idx = SKP_LSHIFT( k, 1 );
-        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
-        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
-    }
-
-    idx = SKP_LSHIFT( len, 1 );
-
-    /* Allpass filters */
-    SKP_Silk_allpass_int( scratch,             S,     A21_Resample_1_2[ 0 ], scratch + idx,       len );
-    SKP_Silk_allpass_int( scratch + idx,       S + 1, A21_Resample_1_2[ 1 ], scratch + idx + len, len );
-    SKP_Silk_allpass_int( scratch + idx + len, S + 2, A21_Resample_1_2[ 2 ], scratch,             len );
-
-    SKP_Silk_allpass_int( scratch + len,       S + 3, A20_Resample_1_2[ 0 ], scratch + idx,       len );
-    SKP_Silk_allpass_int( scratch + idx,       S + 4, A20_Resample_1_2[ 1 ], scratch + idx + len, len );
-    SKP_Silk_allpass_int( scratch + idx + len, S + 5, A20_Resample_1_2[ 2 ], scratch + len,       len );
-
-    /* Add two allpass outputs */
-    for( k = 0; k &lt; len; k++ ) {
-        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + len ], 11 ) );
-    }
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_1_2                                              *
+ *                                                                      *
+ * Downsample by a factor 2                                             *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Coefficients for 2-fold resampling */
+static SKP_int16 A20_Resample_1_2[ 3 ] = { 1254, 10102, 22898 };
+static SKP_int16 A21_Resample_1_2[ 3 ] = { 4810, 16371, 29374 };
+
+
+/* Downsample by a factor 2 */
+void SKP_Silk_resample_1_2(
+    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]   */
+    SKP_int32            *S,             /* I/O: State vector [6]        */
+    SKP_int16            *out,           /* O:   8 kHz signal [len]      */
+    SKP_int32            *scratch,       /* I:   Scratch memory [4*len]  */
+    const SKP_int32      len             /* I:   Number of OUTPUT samples*/
+)
+{
+    SKP_int32    k, idx;
+
+    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
+    for( k = 0; k &lt; len; k++ ) {
+        idx = SKP_LSHIFT( k, 1 );
+        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
+        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
+    }
+
+    idx = SKP_LSHIFT( len, 1 );
+
+    /* Allpass filters */
+    SKP_Silk_allpass_int( scratch,             S,     A21_Resample_1_2[ 0 ], scratch + idx,       len );
+    SKP_Silk_allpass_int( scratch + idx,       S + 1, A21_Resample_1_2[ 1 ], scratch + idx + len, len );
+    SKP_Silk_allpass_int( scratch + idx + len, S + 2, A21_Resample_1_2[ 2 ], scratch,             len );
+
+    SKP_Silk_allpass_int( scratch + len,       S + 3, A20_Resample_1_2[ 0 ], scratch + idx,       len );
+    SKP_Silk_allpass_int( scratch + idx,       S + 4, A20_Resample_1_2[ 1 ], scratch + idx + len, len );
+    SKP_Silk_allpass_int( scratch + idx + len, S + 5, A20_Resample_1_2[ 2 ], scratch + len,       len );
+
+    /* Add two allpass outputs */
+    for( k = 0; k &lt; len; k++ ) {
+        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + len ], 11 ) );
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_1_2_coarsec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarse.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarse.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarse.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,90 +1,74 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-
-
-
-
-
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_1_2_coarse.c                                     *
- *                                                                      *
- * Downsample by a factor 2, coarser                                    *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* downsample by a factor 2, coarser */
-void SKP_Silk_resample_1_2_coarse(
-    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]   */
-    SKP_int32            *S,             /* I/O: State vector [4]        */
-    SKP_int16            *out,           /* O:   8 kHz signal [len]      */
-    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
-    const SKP_int32      len             /* I:   Number of OUTPUT samples*/
-)
-{
-    SKP_int32 k, idx;
-
-    /* Coefficients for coarser 2-fold resampling */
-    const SKP_int16 A20c[ 2 ] = { 2119, 16663 };
-    const SKP_int16 A21c[ 2 ] = { 8050, 26861 };
-
-    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
-    for( k = 0; k &lt; len; k++ ) {
-        idx = SKP_LSHIFT( k, 1 );
-
-
-
-
-
-        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
-        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
-    }
-
-    idx = SKP_LSHIFT( len, 1 );
-    /* Allpass filters */
-    SKP_Silk_allpass_int( scratch,       S,     A21c[ 0 ], scratch + idx, len );
-    SKP_Silk_allpass_int( scratch + idx, S + 1, A21c[ 1 ], scratch,       len );
-
-    SKP_Silk_allpass_int( scratch + len, S + 2, A20c[ 0 ], scratch + idx, len );
-    SKP_Silk_allpass_int( scratch + idx, S + 3, A20c[ 1 ], scratch + len, len );
-
-    /* Add two allpass outputs */
-    for( k = 0; k &lt; len; k++ ) {
-        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + len ], 11 ) );
-    }
-}
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_1_2_coarse.c                                     *
+ *                                                                      *
+ * Downsample by a factor 2, coarser                                    *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* downsample by a factor 2, coarser */
+void SKP_Silk_resample_1_2_coarse(
+    const SKP_int16      *in,            /* I:   16 kHz signal [2*len]   */
+    SKP_int32            *S,             /* I/O: State vector [4]        */
+    SKP_int16            *out,           /* O:   8 kHz signal [len]      */
+    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
+    const SKP_int32      len             /* I:   Number of OUTPUT samples*/
+)
+{
+    SKP_int32 k, idx;
+    
+    /* Coefficients for coarser 2-fold resampling */
+    const SKP_int16 A20c[ 2 ] = { 2119, 16663 };
+    const SKP_int16 A21c[ 2 ] = { 8050, 26861 };
+
+    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
+    for( k = 0; k &lt; len; k++ ) {
+        idx = SKP_LSHIFT( k, 1 );
+        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
+        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
+    }
+
+    idx = SKP_LSHIFT( len, 1 );
+    /* Allpass filters */
+    SKP_Silk_allpass_int( scratch,       S,     A21c[ 0 ], scratch + idx, len );
+    SKP_Silk_allpass_int( scratch + idx, S + 1, A21c[ 1 ], scratch,       len );
+
+    SKP_Silk_allpass_int( scratch + len, S + 2, A20c[ 0 ], scratch + idx, len );
+    SKP_Silk_allpass_int( scratch + idx, S + 3, A20c[ 1 ], scratch + len, len );
+
+    /* Add two allpass outputs */
+    for( k = 0; k &lt; len; k++ ) {
+        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + len ], 11 ) );
+    }
+}
+
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_1_2_coarsestc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,84 +1,71 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-
-
-
-
-
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_1_2_coarsest.c                                   *
- *                                                                      *
- * Downsample by a factor 2, coarsest                                   *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-
-/* Coefficients for coarsest 2-fold resampling */
-static SKP_int16 A20cst[ 1 ] = {  3786 };
-static SKP_int16 A21cst[ 1 ] = { 17908 };
-
-/* Downsample by a factor 2, coarsest */
-void SKP_Silk_resample_1_2_coarsest(
-    const SKP_int16     *in,                /* I:   16 kHz signal [2*len]   */
-    SKP_int32           *S,                 /* I/O: State vector [2]        */
-    SKP_int16           *out,               /* O:   8 kHz signal [len]      */
-    SKP_int32           *scratch,           /* I:   Scratch memory [3*len]  */
-    const SKP_int32     len                 /* I:   Number of OUTPUT samples*/
-)
-{
-    SKP_int32 k, idx;
-
-    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
-    for( k = 0; k &lt; len; k++ ) {
-        idx = SKP_LSHIFT( k, 1 );
-        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
-        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
-    }
-
-    idx = SKP_LSHIFT( len, 1 );
-    /* Allpass filters */
-    SKP_Silk_allpass_int( scratch,       S,     A21cst[ 0 ], scratch + idx, len );
-    SKP_Silk_allpass_int( scratch + len, S + 1, A20cst[ 0 ], scratch,       len );
-
-    /* Add two allpass outputs */
-    for( k = 0; k &lt; len; k++ ) {
-        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + idx ], 11 ) );
-    }
-}
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_1_2_coarsest.c                                   *
+ *                                                                      *
+ * Downsample by a factor 2, coarsest                                   *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+
+/* Coefficients for coarsest 2-fold resampling */
+static SKP_int16 A20cst[ 1 ] = {  3786 };
+static SKP_int16 A21cst[ 1 ] = { 17908 };
+
+/* Downsample by a factor 2, coarsest */
+void SKP_Silk_resample_1_2_coarsest(
+    const SKP_int16     *in,                /* I:   16 kHz signal [2*len]   */
+    SKP_int32           *S,                 /* I/O: State vector [2]        */
+    SKP_int16           *out,               /* O:   8 kHz signal [len]      */
+    SKP_int32           *scratch,           /* I:   Scratch memory [3*len]  */
+    const SKP_int32     len                 /* I:   Number of OUTPUT samples*/
+)
+{
+    SKP_int32 k, idx;
+
+    /* De-interleave allpass inputs, and convert Q15 -&gt; Q25 */
+    for( k = 0; k &lt; len; k++ ) {
+        idx = SKP_LSHIFT( k, 1 );
+        scratch[ k ]       = SKP_LSHIFT( (SKP_int32)in[ idx     ], 10 );
+        scratch[ k + len ] = SKP_LSHIFT( (SKP_int32)in[ idx + 1 ], 10 );
+    }
+
+    idx = SKP_LSHIFT( len, 1 );
+    /* Allpass filters */
+    SKP_Silk_allpass_int( scratch,       S,     A21cst[ 0 ], scratch + idx, len );
+    SKP_Silk_allpass_int( scratch + len, S + 1, A20cst[ 0 ], scratch,       len );
+
+    /* Add two allpass outputs */
+    for( k = 0; k &lt; len; k++ ) {
+        out[ k ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ] + scratch[ k + idx ], 11 ) );
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_1_3c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_3.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_3.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_1_3.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,117 +1,101 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_1_3.c                                            *
- *                                                                      *
- * Downsamples by a factor 3                                            *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 081113                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define OUT_SUBFR_LEN        80
-
-/* Downsamples by a factor 3 */
-void SKP_Silk_resample_1_3(
-    SKP_int16            *out,       /* O:   Fs_low signal  [inLen/3]                */
-    SKP_int32            *S,         /* I/O: State vector   [7]                      */
-
-
-
-
-
-    const SKP_int16      *in,        /* I:   Fs_high signal [inLen]                  */
-    const SKP_int32      inLen       /* I:   Input length, must be a multiple of 3   */
-)
-{
-    SKP_int      k, outLen, LSubFrameIn, LSubFrameOut;
-    SKP_int32    out_tmp, limit = 102258000; // (102258000 + 1560) * 21 * 2^(-16) = 32767.5
-    SKP_int32    scratch0[ 3 * OUT_SUBFR_LEN ];
-    SKP_int32    scratch10[ OUT_SUBFR_LEN ], scratch11[ OUT_SUBFR_LEN ], scratch12[ OUT_SUBFR_LEN ];
-    /* coefficients for 3-fold resampling */
-    const SKP_int16 A30[ 2 ] = {  1773, 17818 };
-    const SKP_int16 A31[ 2 ] = {  4942, 25677 };
-    const SKP_int16 A32[ 2 ] = { 11786, 29304 };
-
-    /* Check that input is multiple of 3 */
-    SKP_assert( inLen % 3 == 0 );
-
-    outLen = SKP_DIV32_16( inLen, 3 );
-    while( outLen &gt; 0 ) {
-        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
-        LSubFrameIn  = SKP_SMULBB( 3, LSubFrameOut );
-
-        /* Low-pass filter, Q15 -&gt; Q25 */
-        SKP_Silk_lowpass_short( in, S, scratch0, LSubFrameIn );
-
-        /* De-interleave three allpass inputs */
-        for( k = 0; k &lt; LSubFrameOut; k++ ) {
-            scratch10[ k ] = scratch0[ 3 * k     ];
-            scratch11[ k ] = scratch0[ 3 * k + 1 ];
-            scratch12[ k ] = scratch0[ 3 * k + 2 ];
-        }
-
-        /* Allpass filters */
-        SKP_Silk_allpass_int( scratch10, S + 1, A32[ 0 ], scratch0,  LSubFrameOut );
-        SKP_Silk_allpass_int( scratch0,  S + 2, A32[ 1 ], scratch10, LSubFrameOut );
-
-        SKP_Silk_allpass_int( scratch11, S + 3, A31[ 0 ], scratch0,  LSubFrameOut );
-        SKP_Silk_allpass_int( scratch0,  S + 4, A31[ 1 ], scratch11, LSubFrameOut );
-
-        SKP_Silk_allpass_int( scratch12, S + 5, A30[ 0 ], scratch0,  LSubFrameOut );
-        SKP_Silk_allpass_int( scratch0,  S + 6, A30[ 1 ], scratch12, LSubFrameOut );
-
-        /* Add three allpass outputs */
-        for( k = 0; k &lt; LSubFrameOut; k++ ) {
-            out_tmp = scratch10[ k ] + scratch11[ k ] + scratch12[ k ];
-            if( out_tmp - limit &gt; 0 ) {
-                out[ k ] = SKP_int16_MAX;
-            } else if( out_tmp + limit &lt; 0 ) {
-                out[ k ] = SKP_int16_MIN;
-
-
-
-
-
-            } else {
-                out[ k ] = (SKP_int16) SKP_SMULWB( out_tmp + 1560, 21 );
-            }
-        }
-
-        in     += LSubFrameIn;
-        out    += LSubFrameOut;
-        outLen -= LSubFrameOut;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_1_3.c                                            *
+ *                                                                      *
+ * Downsamples by a factor 3                                            *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 081113                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define OUT_SUBFR_LEN        80
+
+/* Downsamples by a factor 3 */
+void SKP_Silk_resample_1_3(
+    SKP_int16            *out,       /* O:   Fs_low signal  [inLen/3]                */
+    SKP_int32            *S,         /* I/O: State vector   [7]                      */
+    const SKP_int16      *in,        /* I:   Fs_high signal [inLen]                  */
+    const SKP_int32      inLen       /* I:   Input length, must be a multiple of 3   */
+)
+{
+    SKP_int      k, outLen, LSubFrameIn, LSubFrameOut;
+    SKP_int32    out_tmp, limit = 102258000; // (102258000 + 1560) * 21 * 2^(-16) = 32767.5
+    SKP_int32    scratch0[ 3 * OUT_SUBFR_LEN ];
+    SKP_int32    scratch10[ OUT_SUBFR_LEN ], scratch11[ OUT_SUBFR_LEN ], scratch12[ OUT_SUBFR_LEN ];
+    /* coefficients for 3-fold resampling */
+    const SKP_int16 A30[ 2 ] = {  1773, 17818 };
+    const SKP_int16 A31[ 2 ] = {  4942, 25677 };
+    const SKP_int16 A32[ 2 ] = { 11786, 29304 };
+
+    /* Check that input is multiple of 3 */
+    SKP_assert( inLen % 3 == 0 );
+
+    outLen = SKP_DIV32_16( inLen, 3 );
+    while( outLen &gt; 0 ) {
+        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
+        LSubFrameIn  = SKP_SMULBB( 3, LSubFrameOut );
+
+        /* Low-pass filter, Q15 -&gt; Q25 */
+        SKP_Silk_lowpass_short( in, S, scratch0, LSubFrameIn );
+
+        /* De-interleave three allpass inputs */
+        for( k = 0; k &lt; LSubFrameOut; k++ ) {
+            scratch10[ k ] = scratch0[ 3 * k     ];
+            scratch11[ k ] = scratch0[ 3 * k + 1 ];
+            scratch12[ k ] = scratch0[ 3 * k + 2 ];
+        }
+
+        /* Allpass filters */
+        SKP_Silk_allpass_int( scratch10, S + 1, A32[ 0 ], scratch0,  LSubFrameOut );
+        SKP_Silk_allpass_int( scratch0,  S + 2, A32[ 1 ], scratch10, LSubFrameOut );
+
+        SKP_Silk_allpass_int( scratch11, S + 3, A31[ 0 ], scratch0,  LSubFrameOut );
+        SKP_Silk_allpass_int( scratch0,  S + 4, A31[ 1 ], scratch11, LSubFrameOut );
+
+        SKP_Silk_allpass_int( scratch12, S + 5, A30[ 0 ], scratch0,  LSubFrameOut );
+        SKP_Silk_allpass_int( scratch0,  S + 6, A30[ 1 ], scratch12, LSubFrameOut );
+
+        /* Add three allpass outputs */
+        for( k = 0; k &lt; LSubFrameOut; k++ ) {
+            out_tmp = scratch10[ k ] + scratch11[ k ] + scratch12[ k ];
+            if( out_tmp - limit &gt; 0 ) {
+                out[ k ] = SKP_int16_MAX;
+            } else if( out_tmp + limit &lt; 0 ) {
+                out[ k ] = SKP_int16_MIN;
+            } else {
+                out[ k ] = (SKP_int16) SKP_SMULWB( out_tmp + 1560, 21 );
+            }
+        }
+
+        in     += LSubFrameIn;
+        out    += LSubFrameOut;
+        outLen -= LSubFrameOut;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_2_1_coarsec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_1_coarse.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_1_coarse.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_1_coarse.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,84 +1,73 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_2_1_coarse.c                                     *
- *                                                                      *
- * Upsample by a factor 2, coarser                                      *
-
-
-
-
-
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Upsample by a factor 2, coarser */
-void SKP_Silk_resample_2_1_coarse(
-    const SKP_int16      *in,            /* I:   8 kHz signal [len]      */
-    SKP_int32            *S,             /* I/O: State vector [4]        */
-    SKP_int16            *out,           /* O:   16 kHz signal [2*len]   */
-    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
-    const SKP_int32      len             /* I:   Number of INPUT samples */
-)
-{
-    SKP_int32 k, idx;
-
-    /* Coefficients for coarser 2-fold resampling */
-    const SKP_int16 A20c[ 2 ] = { 2119, 16663 };
-    const SKP_int16 A21c[ 2 ] = { 8050, 26861 };
-
-    /* Convert Q15 -&gt; Q25 */
-    for( k = 0; k &lt; len; k++ ) {
-        scratch[ k ] = SKP_LSHIFT( (SKP_int32)in[ k ], 10 );
-    }
-
-    idx = SKP_LSHIFT( len, 1 );
-
-    /* Allpass filters */
-    SKP_Silk_allpass_int( scratch,       S,     A20c[ 0 ], scratch + idx, len );
-    SKP_Silk_allpass_int( scratch + idx, S + 1, A20c[ 1 ], scratch + len, len );
-
-    SKP_Silk_allpass_int( scratch,       S + 2, A21c[ 0 ], scratch + idx, len );
-    SKP_Silk_allpass_int( scratch + idx, S + 3, A21c[ 1 ], scratch,       len );
-
-    /* Interleave two allpass outputs */
-    for( k = 0; k &lt; len; k++ ) {
-        idx = SKP_LSHIFT( k, 1 );
-        out[ idx     ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k + len ], 10 ) );
-        out[ idx + 1 ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ],       10 ) );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_2_1_coarse.c                                     *
+ *                                                                      *
+ * Upsample by a factor 2, coarser                                      *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Upsample by a factor 2, coarser */
+void SKP_Silk_resample_2_1_coarse(
+    const SKP_int16      *in,            /* I:   8 kHz signal [len]      */
+    SKP_int32            *S,             /* I/O: State vector [4]        */
+    SKP_int16            *out,           /* O:   16 kHz signal [2*len]   */
+    SKP_int32            *scratch,       /* I:   Scratch memory [3*len]  */
+    const SKP_int32      len             /* I:   Number of INPUT samples */
+)
+{
+    SKP_int32 k, idx;
+    
+    /* Coefficients for coarser 2-fold resampling */
+    const SKP_int16 A20c[ 2 ] = { 2119, 16663 };
+    const SKP_int16 A21c[ 2 ] = { 8050, 26861 };
+
+    /* Convert Q15 -&gt; Q25 */
+    for( k = 0; k &lt; len; k++ ) {
+        scratch[ k ] = SKP_LSHIFT( (SKP_int32)in[ k ], 10 );
+    }
+       
+    idx = SKP_LSHIFT( len, 1 );
+    
+    /* Allpass filters */
+    SKP_Silk_allpass_int( scratch,       S,     A20c[ 0 ], scratch + idx, len );
+    SKP_Silk_allpass_int( scratch + idx, S + 1, A20c[ 1 ], scratch + len, len );
+
+    SKP_Silk_allpass_int( scratch,       S + 2, A21c[ 0 ], scratch + idx, len );
+    SKP_Silk_allpass_int( scratch + idx, S + 3, A21c[ 1 ], scratch,       len );
+
+    /* Interleave two allpass outputs */
+    for( k = 0; k &lt; len; k++ ) {
+        idx = SKP_LSHIFT( k, 1 );
+        out[ idx     ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k + len ], 10 ) );
+        out[ idx + 1 ] = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( scratch[ k ],       10 ) );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_2_3c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,89 +1,74 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:    SKP_Silk_resample_2_3.c                              *
- *                                                                      *
- * Resamples by a factor 2/3                                            *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 081113                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define OUT_SUBFR_LEN        80
-
-/* Resamples by a factor 2/3 */
-void SKP_Silk_resample_2_3(
-    SKP_int16            *out,       /* O:   Fs_low signal    [inLen * 2/3]           */
-    SKP_int32            *S,         /* I/O: State vector     [7+4]                   */
-    const SKP_int16      *in,        /* I:   Fs_high signal   [inLen]                 */
-    const SKP_int        inLen       /* I:   Input length, must be a multiple of 3    */
-
-
-
-
-
-)
-{
-    SKP_int      outLen, LSubFrameIn, LSubFrameOut;
-    SKP_int16    outH[      3 * OUT_SUBFR_LEN ];
-    SKP_int32    scratch[ ( 9 * OUT_SUBFR_LEN ) / 2 ];
-
-    /* Check that input length is multiple of 3 */
-    SKP_assert( inLen % 3 == 0 );
-
-    outLen = SKP_DIV32_16( SKP_LSHIFT( inLen, 1 ), 3 );
-    while( outLen &gt; 0 ) {
-        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
-        LSubFrameIn  = SKP_SMULWB( 98304, LSubFrameOut ); /* 98304_Q16 = 3/2_Q0 */
-
-        /* Upsample by a factor 2 */
-        /* Scratch size needs to be: 3 * LSubFrameIn * sizeof( SKP_int32 ) */
-        SKP_Silk_resample_2_1_coarse( in, &amp;S[ 0 ], outH, scratch, LSubFrameIn );
-
-        /* Downsample by a factor 3 */
-        SKP_Silk_resample_1_3( out, &amp;S[ 4 ], outH, SKP_LSHIFT( LSubFrameIn, 1 ) );
-
-        in     += LSubFrameIn;
-        out    += LSubFrameOut;
-        outLen -= LSubFrameOut;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:    SKP_Silk_resample_2_3.c                              *
+ *                                                                      *
+ * Resamples by a factor 2/3                                            *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 081113                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define OUT_SUBFR_LEN        80
+
+/* Resamples by a factor 2/3 */
+void SKP_Silk_resample_2_3(
+    SKP_int16            *out,       /* O:   Fs_low signal    [inLen * 2/3]           */
+    SKP_int32            *S,         /* I/O: State vector     [7+4]                   */
+    const SKP_int16      *in,        /* I:   Fs_high signal   [inLen]                 */
+    const SKP_int        inLen       /* I:   Input length, must be a multiple of 3    */
+)
+{
+    SKP_int      outLen, LSubFrameIn, LSubFrameOut;
+    SKP_int16    outH[      3 * OUT_SUBFR_LEN ];
+    SKP_int32    scratch[ ( 9 * OUT_SUBFR_LEN ) / 2 ];
+
+    /* Check that input length is multiple of 3 */
+    SKP_assert( inLen % 3 == 0 );
+
+    outLen = SKP_DIV32_16( SKP_LSHIFT( inLen, 1 ), 3 );
+    while( outLen &gt; 0 ) {
+        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
+        LSubFrameIn  = SKP_SMULWB( 98304, LSubFrameOut ); /* 98304_Q16 = 3/2_Q0 */
+            
+        /* Upsample by a factor 2 */
+        /* Scratch size needs to be: 3 * LSubFrameIn * sizeof( SKP_int32 ) */
+        SKP_Silk_resample_2_1_coarse( in, &amp;S[ 0 ], outH, scratch, LSubFrameIn );
+
+        /* Downsample by a factor 3 */
+        SKP_Silk_resample_1_3( out, &amp;S[ 4 ], outH, SKP_LSHIFT( LSubFrameIn, 1 ) );
+
+        in     += LSubFrameIn;
+        out    += LSubFrameOut;
+        outLen -= LSubFrameOut;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_coarsec"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarse.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarse.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarse.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,130 +1,112 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-
-
-
-
-
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:   SKP_Silk_resample_2_3_coarse.c                        *
- *                                                                      *
- * Description: Linear phase FIR polyphase implementation of resampling *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090423                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-/* Resamples input data with a factor 2/3 */
-void SKP_Silk_resample_2_3_coarse(
-    SKP_int16           *out,           /* O:   Output signal                                                                   */
-    SKP_int16           *S,             /* I/O: Resampler state [ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]               */
-    const SKP_int16     *in,            /* I:   Input signal                                                                    */
-    const SKP_int       frameLenIn,     /* I:   Number of input samples                                                         */
-    SKP_int16           *scratch        /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]   */
-)
-{
-    SKP_int32 n, ind, interpol_ind, tmp, index_Q16;
-    SKP_int16 *in_ptr;
-    SKP_int   frameLenOut;
-    const SKP_int16 *interpol_ptr;
-
-    /* Copy buffered samples to start of scratch */
-    SKP_memcpy( scratch, S, ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
-
-    /* Then append by the input signal */
-    SKP_memcpy( &amp;scratch[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ], in, frameLenIn * sizeof( SKP_int16 ) );
-
-    frameLenOut = SKP_DIV32_16( SKP_MUL( 2, frameLenIn ), 3 );
-    index_Q16 = 0;
-
-
-
-
-
-    SKP_assert( frameLenIn == ( ( frameLenOut * 3 ) / 2 ) );
-
-    /* Interpolate */
-    for( n = frameLenOut; n &gt; 0; n-- ) {
-
-        /* Integer part */
-        ind = SKP_RSHIFT( index_Q16, 16 );
-
-        /* Pointer to buffered input */
-        in_ptr = scratch + ind;
-
-        /* Fractional part */
-        interpol_ind = ( SKP_SMULWB( index_Q16, SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS ) &amp;
-                       ( SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS - 1 ) );
-
-        /* Pointer to FIR taps */
-        interpol_ptr = SigProc_Resample_2_3_coarse_INTERPOL[ interpol_ind ];
-
-        /* Interpolate */
-        /* Hardcoded for 32 FIR taps */
-        SKP_assert( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS == 32 );
-        tmp = (SKP_int32)interpol_ptr[  0 ] * in_ptr[  0 ] + (SKP_int32)interpol_ptr[  1 ] * in_ptr[  1 ] +
-              (SKP_int32)interpol_ptr[  2 ] * in_ptr[  2 ] + (SKP_int32)interpol_ptr[  3 ] * in_ptr[  3 ] +
-              (SKP_int32)interpol_ptr[  4 ] * in_ptr[  4 ] + (SKP_int32)interpol_ptr[  5 ] * in_ptr[  5 ] +
-              (SKP_int32)interpol_ptr[  6 ] * in_ptr[  6 ] + (SKP_int32)interpol_ptr[  7 ] * in_ptr[  7 ] +
-              (SKP_int32)interpol_ptr[  8 ] * in_ptr[  8 ] + (SKP_int32)interpol_ptr[  9 ] * in_ptr[  9 ] +
-              (SKP_int32)interpol_ptr[ 10 ] * in_ptr[ 10 ] + (SKP_int32)interpol_ptr[ 11 ] * in_ptr[ 11 ] +
-              (SKP_int32)interpol_ptr[ 12 ] * in_ptr[ 12 ] + (SKP_int32)interpol_ptr[ 13 ] * in_ptr[ 13 ] +
-              (SKP_int32)interpol_ptr[ 14 ] * in_ptr[ 14 ] + (SKP_int32)interpol_ptr[ 15 ] * in_ptr[ 15 ] +
-              (SKP_int32)interpol_ptr[ 16 ] * in_ptr[ 16 ] + (SKP_int32)interpol_ptr[ 17 ] * in_ptr[ 17 ] +
-              (SKP_int32)interpol_ptr[ 18 ] * in_ptr[ 18 ] + (SKP_int32)interpol_ptr[ 19 ] * in_ptr[ 19 ] +
-              (SKP_int32)interpol_ptr[ 20 ] * in_ptr[ 20 ] + (SKP_int32)interpol_ptr[ 21 ] * in_ptr[ 21 ] +
-              (SKP_int32)interpol_ptr[ 22 ] * in_ptr[ 22 ] + (SKP_int32)interpol_ptr[ 23 ] * in_ptr[ 23 ] +
-              (SKP_int32)interpol_ptr[ 24 ] * in_ptr[ 24 ] + (SKP_int32)interpol_ptr[ 25 ] * in_ptr[ 25 ] +
-              (SKP_int32)interpol_ptr[ 26 ] * in_ptr[ 26 ] + (SKP_int32)interpol_ptr[ 27 ] * in_ptr[ 27 ] +
-              (SKP_int32)interpol_ptr[ 28 ] * in_ptr[ 28 ] + (SKP_int32)interpol_ptr[ 29 ] * in_ptr[ 29 ];
-
-        /* Round, saturate and store to output array */
-        *out++ = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( tmp, 15 ) );
-
-        /* Update index */
-        index_Q16 += ( ( 1 &lt;&lt; 16 ) + ( 1 &lt;&lt; 15 ) ); // (3/2)_Q0;
-    }
-
-    /* Move last part of input signal to the sample buffer to prepare for the next call */
-    SKP_memcpy( S, &amp;in[ frameLenIn - ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) ],
-                ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
-}
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:   SKP_Silk_resample_2_3_coarse.c                        *
+ *                                                                      *
+ * Description: Linear phase FIR polyphase implementation of resampling *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090423                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+/* Resamples input data with a factor 2/3 */
+void SKP_Silk_resample_2_3_coarse( 
+    SKP_int16           *out,           /* O:   Output signal                                                                   */
+    SKP_int16           *S,             /* I/O: Resampler state [ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]               */
+    const SKP_int16     *in,            /* I:   Input signal                                                                    */
+    const SKP_int       frameLenIn,     /* I:   Number of input samples                                                         */
+    SKP_int16           *scratch        /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ]   */
+)
+{
+    SKP_int32 n, ind, interpol_ind, tmp, index_Q16;
+    SKP_int16 *in_ptr;
+    SKP_int   frameLenOut;
+    const SKP_int16 *interpol_ptr;
+
+    /* Copy buffered samples to start of scratch */
+    SKP_memcpy( scratch, S, ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
+    
+    /* Then append by the input signal */
+    SKP_memcpy( &amp;scratch[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ], in, frameLenIn * sizeof( SKP_int16 ) ); 
+
+    frameLenOut = SKP_DIV32_16( SKP_MUL( 2, frameLenIn ), 3 );
+    index_Q16 = 0;
+
+    SKP_assert( frameLenIn == ( ( frameLenOut * 3 ) / 2 ) );
+    
+    /* Interpolate */
+    for( n = frameLenOut; n &gt; 0; n-- ) {
+
+        /* Integer part */
+        ind = SKP_RSHIFT( index_Q16, 16 );
+
+        /* Pointer to buffered input */
+        in_ptr = scratch + ind;
+
+        /* Fractional part */
+        interpol_ind = ( SKP_SMULWB( index_Q16, SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS ) &amp; 
+                       ( SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS - 1 ) );
+
+        /* Pointer to FIR taps */
+        interpol_ptr = SigProc_Resample_2_3_coarse_INTERPOL[ interpol_ind ];
+
+        /* Interpolate */
+        /* Hardcoded for 32 FIR taps */
+        SKP_assert( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS == 32 );
+        tmp = (SKP_int32)interpol_ptr[  0 ] * in_ptr[  0 ] + (SKP_int32)interpol_ptr[  1 ] * in_ptr[  1 ] +
+              (SKP_int32)interpol_ptr[  2 ] * in_ptr[  2 ] + (SKP_int32)interpol_ptr[  3 ] * in_ptr[  3 ] +
+              (SKP_int32)interpol_ptr[  4 ] * in_ptr[  4 ] + (SKP_int32)interpol_ptr[  5 ] * in_ptr[  5 ] +
+              (SKP_int32)interpol_ptr[  6 ] * in_ptr[  6 ] + (SKP_int32)interpol_ptr[  7 ] * in_ptr[  7 ] +
+              (SKP_int32)interpol_ptr[  8 ] * in_ptr[  8 ] + (SKP_int32)interpol_ptr[  9 ] * in_ptr[  9 ] +
+              (SKP_int32)interpol_ptr[ 10 ] * in_ptr[ 10 ] + (SKP_int32)interpol_ptr[ 11 ] * in_ptr[ 11 ] +
+              (SKP_int32)interpol_ptr[ 12 ] * in_ptr[ 12 ] + (SKP_int32)interpol_ptr[ 13 ] * in_ptr[ 13 ] +
+              (SKP_int32)interpol_ptr[ 14 ] * in_ptr[ 14 ] + (SKP_int32)interpol_ptr[ 15 ] * in_ptr[ 15 ] +
+              (SKP_int32)interpol_ptr[ 16 ] * in_ptr[ 16 ] + (SKP_int32)interpol_ptr[ 17 ] * in_ptr[ 17 ] +
+              (SKP_int32)interpol_ptr[ 18 ] * in_ptr[ 18 ] + (SKP_int32)interpol_ptr[ 19 ] * in_ptr[ 19 ] +
+              (SKP_int32)interpol_ptr[ 20 ] * in_ptr[ 20 ] + (SKP_int32)interpol_ptr[ 21 ] * in_ptr[ 21 ] +
+              (SKP_int32)interpol_ptr[ 22 ] * in_ptr[ 22 ] + (SKP_int32)interpol_ptr[ 23 ] * in_ptr[ 23 ] +
+              (SKP_int32)interpol_ptr[ 24 ] * in_ptr[ 24 ] + (SKP_int32)interpol_ptr[ 25 ] * in_ptr[ 25 ] +
+              (SKP_int32)interpol_ptr[ 26 ] * in_ptr[ 26 ] + (SKP_int32)interpol_ptr[ 27 ] * in_ptr[ 27 ] +
+              (SKP_int32)interpol_ptr[ 28 ] * in_ptr[ 28 ] + (SKP_int32)interpol_ptr[ 29 ] * in_ptr[ 29 ];
+
+        /* Round, saturate and store to output array */
+        *out++ = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( tmp, 15 ) );
+
+        /* Update index */
+        index_Q16 += ( ( 1 &lt;&lt; 16 ) + ( 1 &lt;&lt; 15 ) ); // (3/2)_Q0;
+    }
+
+    /* Move last part of input signal to the sample buffer to prepare for the next call */
+    SKP_memcpy( S, &amp;in[ frameLenIn - ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) ],
+                ( SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_coarsestc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,147 +1,131 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:   SKP_Silk_resample_2_3_coarsest.c                      *
- *                                                                      *
- * Description: Linear phase FIR polyphase implementation of resampling *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090423                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-/* Resamples input data with a factor 2/3 */
-void SKP_Silk_resample_2_3_coarsest(
-
-
-
-
-
-    SKP_int16           *out,           /* O:   Output signal                                                                   */
-    SKP_int16           *S,             /* I/O: Resampler state [ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ]             */
-    const SKP_int16     *in,            /* I:   Input signal                                                                    */
-    const SKP_int       frameLenIn,     /* I:   Number of input samples                                                         */
-    SKP_int16           *scratch        /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ] */
-)
-{
-    SKP_int32 n, ind, interpol_ind, tmp, index_Q16;
-    SKP_int16 *in_ptr;
-    SKP_int   frameLenOut;
-    const SKP_int16 *interpol_ptr;
-#if ( EMBEDDED_ARM&gt;=6 ) &amp;&amp; defined (__GNUC__)
-    SKP_int32   in_val, interpol_val;
-#endif
-
-    /* Copy buffered samples to start of scratch */
-    SKP_memcpy( scratch, S, ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
-
-    /* Then append by the input signal */
-    SKP_memcpy( &amp;scratch[ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ], in, frameLenIn * sizeof( SKP_int16 ) );
-
-    frameLenOut = SKP_SMULWB( SKP_LSHIFT( (SKP_int32)frameLenIn, 1 ), 21846 ); // 21846_Q15 = (2/3)_Q0 rounded _up_
-    index_Q16 = 0;
-
-    SKP_assert( frameLenIn == ( ( frameLenOut * 3 ) / 2 ) );
-
-    /* Interpolate */
-    for( n = frameLenOut; n &gt; 0; n-- ) {
-
-        /* Integer part */
-        ind = SKP_RSHIFT( index_Q16, 16 );
-
-        /* Pointer to buffered input */
-        in_ptr = scratch + ind;
-
-        /* Fractional part */
-        interpol_ind = ( SKP_SMULWB( index_Q16, SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS ) &amp;
-                       ( SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS - 1 ) );
-
-        /* Pointer to FIR taps */
-        interpol_ptr = SigProc_Resample_2_3_coarsest_INTERPOL[ interpol_ind ];
-
-        /* Interpolate: Hardcoded for 10 FIR taps */
-#if ( EMBEDDED_ARM&gt;=6 ) &amp;&amp; defined (__GNUC__)       /*It doesn't improve efficiency on iphone.*/
-        /*tmp = SKP_SMUAD(    *((SKP_int32 *)interpol_ptr)++, *((SKP_int32 *)in_ptr)++);
-        tmp = SKP_SMLAD( tmp, *((SKP_int32 *)interpol_ptr)++, *((SKP_int32 *)in_ptr)++);
-        tmp = SKP_SMLAD( tmp, *((SKP_int32 *)interpol_ptr),   *((SKP_int32 *)in_ptr)  );*/
-        __asm__ __volatile__ (  &quot;ldr    %1, [%3], #4 \n\t&quot;
-
-
-
-
-
-                                &quot;ldr    %2, [%4], #4 \n\t&quot;
-                                &quot;smuad  %0, %1, %2 \n\t&quot;
-                                &quot;ldr    %1, [%3], #4 \n\t&quot;
-                                &quot;ldr    %2, [%4], #4 \n\t&quot;
-                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
-                                &quot;ldr    %1, [%3], #4 \n\t&quot;
-                                &quot;ldr    %2, [%4], #4 \n\t&quot;
-                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
-                                &quot;ldr    %1, [%3], #4 \n\t&quot;
-                                &quot;ldr    %2, [%4], #4 \n\t&quot;
-                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
-                                &quot;ldr    %1, [%3] \n\t&quot;
-                                &quot;ldr    %2, [%4] \n\t&quot;
-                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
-                                : &quot;=r&quot; (tmp), &quot;=r&quot; (interpol_val), &quot;=r&quot; (in_val), &quot;=r&quot; (interpol_ptr), &quot;=r&quot; (in_ptr)
-                                : &quot;3&quot; (interpol_ptr), &quot;4&quot; (in_ptr));
-#else
-        SKP_assert( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS == 10 );
-        tmp = SKP_SMULBB(      interpol_ptr[ 0 ], in_ptr[ 0 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 1 ], in_ptr[ 1 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 2 ], in_ptr[ 2 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 3 ], in_ptr[ 3 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 4 ], in_ptr[ 4 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 5 ], in_ptr[ 5 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 6 ], in_ptr[ 6 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 7 ], in_ptr[ 7 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 8 ], in_ptr[ 8 ] );
-        tmp = SKP_SMLABB( tmp, interpol_ptr[ 9 ], in_ptr[ 9 ] );
-#endif
-        /* Round, saturate and store to output array */
-        *out++ = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( tmp, 15 ) );
-
-        /* Update index */
-        index_Q16 += ( ( 1 &lt;&lt; 16 ) + ( 1 &lt;&lt; 15 ) ); // (3/2)_Q0;
-    }
-
-    /* Move last part of input signal to the sample buffer to prepare for the next call */
-    SKP_memcpy( S, &amp;in[ frameLenIn - ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) ],
-                ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:   SKP_Silk_resample_2_3_coarsest.c                      *
+ *                                                                      *
+ * Description: Linear phase FIR polyphase implementation of resampling *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090423                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+/* Resamples input data with a factor 2/3 */
+void SKP_Silk_resample_2_3_coarsest( 
+    SKP_int16           *out,           /* O:   Output signal                                                                   */
+    SKP_int16           *S,             /* I/O: Resampler state [ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ]             */
+    const SKP_int16     *in,            /* I:   Input signal                                                                    */
+    const SKP_int       frameLenIn,     /* I:   Number of input samples                                                         */
+    SKP_int16           *scratch        /* I:   Scratch memory [ frameLenIn + SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ] */
+)
+{
+    SKP_int32 n, ind, interpol_ind, tmp, index_Q16;
+    SKP_int16 *in_ptr;
+    SKP_int   frameLenOut;
+    const SKP_int16 *interpol_ptr;
+#if ( EMBEDDED_ARM&gt;=6 ) &amp;&amp; defined (__GNUC__)
+    SKP_int32   in_val, interpol_val;
+#endif
+
+    /* Copy buffered samples to start of scratch */
+    SKP_memcpy( scratch, S, ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );    
+    
+    /* Then append by the input signal */
+    SKP_memcpy( &amp;scratch[ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ], in, frameLenIn * sizeof( SKP_int16 ) ); 
+
+    frameLenOut = SKP_SMULWB( SKP_LSHIFT( (SKP_int32)frameLenIn, 1 ), 21846 ); // 21846_Q15 = (2/3)_Q0 rounded _up_
+    index_Q16 = 0;
+
+    SKP_assert( frameLenIn == ( ( frameLenOut * 3 ) / 2 ) );
+    
+    /* Interpolate */
+    for( n = frameLenOut; n &gt; 0; n-- ) {
+
+        /* Integer part */
+        ind = SKP_RSHIFT( index_Q16, 16 );
+
+        /* Pointer to buffered input */
+        in_ptr = scratch + ind;
+
+        /* Fractional part */
+        interpol_ind = ( SKP_SMULWB( index_Q16, SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS ) &amp; 
+                       ( SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS - 1 ) );
+
+        /* Pointer to FIR taps */
+        interpol_ptr = SigProc_Resample_2_3_coarsest_INTERPOL[ interpol_ind ];
+
+        /* Interpolate: Hardcoded for 10 FIR taps */
+#if ( EMBEDDED_ARM&gt;=6 ) &amp;&amp; defined (__GNUC__)       /*It doesn't improve efficiency on iphone.*/
+        /*tmp = SKP_SMUAD(    *((SKP_int32 *)interpol_ptr)++, *((SKP_int32 *)in_ptr)++);
+        tmp = SKP_SMLAD( tmp, *((SKP_int32 *)interpol_ptr)++, *((SKP_int32 *)in_ptr)++);
+        tmp = SKP_SMLAD( tmp, *((SKP_int32 *)interpol_ptr),   *((SKP_int32 *)in_ptr)  );*/
+        __asm__ __volatile__ (  &quot;ldr    %1, [%3], #4 \n\t&quot;
+                                &quot;ldr    %2, [%4], #4 \n\t&quot;
+                                &quot;smuad  %0, %1, %2 \n\t&quot;
+                                &quot;ldr    %1, [%3], #4 \n\t&quot;
+                                &quot;ldr    %2, [%4], #4 \n\t&quot;
+                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
+                                &quot;ldr    %1, [%3], #4 \n\t&quot;
+                                &quot;ldr    %2, [%4], #4 \n\t&quot;
+                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
+                                &quot;ldr    %1, [%3], #4 \n\t&quot;
+                                &quot;ldr    %2, [%4], #4 \n\t&quot;
+                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
+                                &quot;ldr    %1, [%3] \n\t&quot;
+                                &quot;ldr    %2, [%4] \n\t&quot;
+                                &quot;smlad  %0, %1, %2, %0\n\t&quot;
+                                : &quot;=r&quot; (tmp), &quot;=r&quot; (interpol_val), &quot;=r&quot; (in_val), &quot;=r&quot; (interpol_ptr), &quot;=r&quot; (in_ptr) 
+                                : &quot;3&quot; (interpol_ptr), &quot;4&quot; (in_ptr));    
+#else
+        SKP_assert( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS == 10 );
+        tmp = SKP_SMULBB(      interpol_ptr[ 0 ], in_ptr[ 0 ] );
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 1 ], in_ptr[ 1 ] ); 
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 2 ], in_ptr[ 2 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 3 ], in_ptr[ 3 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 4 ], in_ptr[ 4 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 5 ], in_ptr[ 5 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 6 ], in_ptr[ 6 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 7 ], in_ptr[ 7 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 8 ], in_ptr[ 8 ] );    
+        tmp = SKP_SMLABB( tmp, interpol_ptr[ 9 ], in_ptr[ 9 ] );
+#endif
+        /* Round, saturate and store to output array */
+        *out++ = (SKP_int16)SKP_SAT16( SKP_RSHIFT_ROUND( tmp, 15 ) );
+
+        /* Update index */
+        index_Q16 += ( ( 1 &lt;&lt; 16 ) + ( 1 &lt;&lt; 15 ) ); // (3/2)_Q0;
+    }
+
+    /* Move last part of input signal to the sample buffer to prepare for the next call */
+    SKP_memcpy( S, &amp;in[ frameLenIn - ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) ],
+                ( SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS - 1 ) * sizeof( SKP_int16 ) );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_2_3_romc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_rom.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_rom.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_2_3_rom.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,63 +1,50 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:    SKP_Silk_resample_2_3_rom.c                          *
- *                                                                      *
- * Description: Filter coefficients for FIR polyphase resampling        *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090424                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-const SKP_int16 SigProc_Resample_2_3_coarse_INTERPOL[ SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS ][ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS ] = {
-    {    0,   -74,   109,     0,  -234,   329,     0,  -610,   813,     0, -1437,  1954,     0, -4358,  8953, 21845,  8953, -4358,     0,  1954, -1437,     0,   813,  -610,     0,   329,  -234,     0,   109,   -74,     0,    45 },
-    {   48,   -62,     0,   133,  -195,     0,   386,  -526,     0,   936, -1243,     0,  2311, -3417,     0, 18026, 18026,     0, -3417,  2311,     0, -1243,   936,     0,  -526,   386,     0,  -195,   133,     0,   -62,    48 },
-};
-
-const SKP_int16 SigProc_Resample_2_3_coarsest_INTERPOL[ SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS ][ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS ] = {
-    {  379,     0, -3081,  8239, 21845,  8239, -3081,     0,   379,  -145 },
-    {    0,   696, -1951,     0, 17659, 17659,     0, -1951,   696,     0 },
-};
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:    SKP_Silk_resample_2_3_rom.c                          *
+ *                                                                      *
+ * Description: Filter coefficients for FIR polyphase resampling        *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090424                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+const SKP_int16 SigProc_Resample_2_3_coarse_INTERPOL[ SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS ][ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS ] = {
+    {    0,   -74,   109,     0,  -234,   329,     0,  -610,   813,     0, -1437,  1954,     0, -4358,  8953, 21845,  8953, -4358,     0,  1954, -1437,     0,   813,  -610,     0,   329,  -234,     0,   109,   -74,     0,    45 },
+    {   48,   -62,     0,   133,  -195,     0,   386,  -526,     0,   936, -1243,     0,  2311, -3417,     0, 18026, 18026,     0, -3417,  2311,     0, -1243,   936,     0,  -526,   386,     0,  -195,   133,     0,   -62,    48 },
+};
+
+const SKP_int16 SigProc_Resample_2_3_coarsest_INTERPOL[ SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS ][ SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS ] = {
+    {  379,     0, -3081,  8239, 21845,  8239, -3081,     0,   379,  -145 },
+    {    0,   696, -1951,     0, 17659, 17659,     0, -1951,   696,     0 },
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_3_1c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_1.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_1.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_1.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,116 +1,100 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_resample_3_1.c                                            *
- *                                                                      *
- * Upsamples by a factor 3                                              *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 081113                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define IN_SUBFR_LEN_RESAMPLE_3_1       40
-
-/* Resamples by a factor 3/1 */
-void SKP_Silk_resample_3_1(
-    SKP_int16           *out,       /* O:   Fs_high signal [inLen*3]        */
-    SKP_int32           *S,         /* I/O: State vector   [7]              */
-
-
-
-
-
-    const SKP_int16     *in,        /* I:   Fs_low signal  [inLen]          */
-    const SKP_int32     inLen       /* I:   Input length                    */
-)
-{
-    SKP_int     k, LSubFrameIn, LSubFrameOut;
-    SKP_int32   out_tmp, idx, inLenTmp = inLen;
-    SKP_int32   scratch00[    IN_SUBFR_LEN_RESAMPLE_3_1 ];
-    SKP_int32   scratch0[ 3 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
-    SKP_int32   scratch1[ 3 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
-
-    /* Coefficients for 3-fold resampling */
-    const SKP_int16 A30[ 2 ] = {  1773, 17818 };
-    const SKP_int16 A31[ 2 ] = {  4942, 25677 };
-    const SKP_int16 A32[ 2 ] = { 11786, 29304 };
-
-    while( inLenTmp &gt; 0 ) {
-        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_1, inLenTmp );
-        LSubFrameOut = SKP_SMULBB( 3, LSubFrameIn );
-
-        /* Convert Q15 -&gt; Q25 */
-        for( k = 0; k &lt; LSubFrameIn; k++ ) {
-            scratch00[k] = SKP_LSHIFT( (SKP_int32)in[ k ], 10 );
-        }
-
-        /* Allpass filtering */
-        /* Scratch size: 2 * 3* LSubFrame * sizeof(SKP_int32) */
-        SKP_Silk_allpass_int( scratch00, S + 1, A30[ 0 ], scratch1, LSubFrameIn );
-        SKP_Silk_allpass_int( scratch1,  S + 2, A30[ 1 ], scratch0, LSubFrameIn );
-
-        SKP_Silk_allpass_int( scratch00, S + 3, A31[ 0 ], scratch1, LSubFrameIn );
-        SKP_Silk_allpass_int( scratch1,  S + 4, A31[ 1 ], scratch0 +     IN_SUBFR_LEN_RESAMPLE_3_1, LSubFrameIn );
-
-        SKP_Silk_allpass_int( scratch00, S + 5, A32[ 0 ], scratch1, LSubFrameIn );
-        SKP_Silk_allpass_int( scratch1,  S + 6, A32[ 1 ], scratch0 + 2 * IN_SUBFR_LEN_RESAMPLE_3_1, LSubFrameIn );
-
-        /* Interleave three allpass outputs */
-        for( k = 0; k &lt; LSubFrameIn; k++ ) {
-            idx = SKP_SMULBB( 3, k );
-            scratch1[ idx     ] = scratch0[ k ];
-            scratch1[ idx + 1 ] = scratch0[ k +     IN_SUBFR_LEN_RESAMPLE_3_1 ];
-            scratch1[ idx + 2 ] = scratch0[ k + 2 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
-        }
-
-        /* Low-pass filtering */
-        SKP_Silk_lowpass_int( scratch1, S, scratch0, LSubFrameOut );
-
-        /* Saturate and convert to SKP_int16 */
-        for( k = 0; k &lt; LSubFrameOut; k++ ) {
-
-
-
-
-
-            out_tmp  = scratch0[ k ];
-            out[ k ] = (SKP_int16) SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 10 ) );
-        }
-
-        in       += LSubFrameIn;
-        inLenTmp -= LSubFrameIn;
-        out      += LSubFrameOut;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_resample_3_1.c                                            *
+ *                                                                      *
+ * Upsamples by a factor 3                                              *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 081113                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define IN_SUBFR_LEN_RESAMPLE_3_1       40
+
+/* Resamples by a factor 3/1 */
+void SKP_Silk_resample_3_1(
+    SKP_int16           *out,       /* O:   Fs_high signal [inLen*3]        */
+    SKP_int32           *S,         /* I/O: State vector   [7]              */
+    const SKP_int16     *in,        /* I:   Fs_low signal  [inLen]          */
+    const SKP_int32     inLen       /* I:   Input length                    */
+)
+{
+    SKP_int     k, LSubFrameIn, LSubFrameOut;
+    SKP_int32   out_tmp, idx, inLenTmp = inLen;
+    SKP_int32   scratch00[    IN_SUBFR_LEN_RESAMPLE_3_1 ];
+    SKP_int32   scratch0[ 3 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
+    SKP_int32   scratch1[ 3 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
+    
+    /* Coefficients for 3-fold resampling */
+    const SKP_int16 A30[ 2 ] = {  1773, 17818 };
+    const SKP_int16 A31[ 2 ] = {  4942, 25677 };
+    const SKP_int16 A32[ 2 ] = { 11786, 29304 };
+
+    while( inLenTmp &gt; 0 ) {
+        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_1, inLenTmp );
+        LSubFrameOut = SKP_SMULBB( 3, LSubFrameIn );
+
+        /* Convert Q15 -&gt; Q25 */
+        for( k = 0; k &lt; LSubFrameIn; k++ ) {
+            scratch00[k] = SKP_LSHIFT( (SKP_int32)in[ k ], 10 );
+        }
+
+        /* Allpass filtering */
+        /* Scratch size: 2 * 3* LSubFrame * sizeof(SKP_int32) */
+        SKP_Silk_allpass_int( scratch00, S + 1, A30[ 0 ], scratch1, LSubFrameIn );
+        SKP_Silk_allpass_int( scratch1,  S + 2, A30[ 1 ], scratch0, LSubFrameIn );
+
+        SKP_Silk_allpass_int( scratch00, S + 3, A31[ 0 ], scratch1, LSubFrameIn );
+        SKP_Silk_allpass_int( scratch1,  S + 4, A31[ 1 ], scratch0 +     IN_SUBFR_LEN_RESAMPLE_3_1, LSubFrameIn );
+
+        SKP_Silk_allpass_int( scratch00, S + 5, A32[ 0 ], scratch1, LSubFrameIn );
+        SKP_Silk_allpass_int( scratch1,  S + 6, A32[ 1 ], scratch0 + 2 * IN_SUBFR_LEN_RESAMPLE_3_1, LSubFrameIn );
+
+        /* Interleave three allpass outputs */
+        for( k = 0; k &lt; LSubFrameIn; k++ ) {
+            idx = SKP_SMULBB( 3, k );
+            scratch1[ idx     ] = scratch0[ k ];
+            scratch1[ idx + 1 ] = scratch0[ k +     IN_SUBFR_LEN_RESAMPLE_3_1 ];
+            scratch1[ idx + 2 ] = scratch0[ k + 2 * IN_SUBFR_LEN_RESAMPLE_3_1 ];
+        }
+
+        /* Low-pass filtering */
+        SKP_Silk_lowpass_int( scratch1, S, scratch0, LSubFrameOut );
+
+        /* Saturate and convert to SKP_int16 */
+        for( k = 0; k &lt; LSubFrameOut; k++ ) {
+            out_tmp  = scratch0[ k ];
+            out[ k ] = (SKP_int16) SKP_SAT16( SKP_RSHIFT_ROUND( out_tmp, 10 ) );
+        }
+
+        in       += LSubFrameIn;
+        inLenTmp -= LSubFrameIn;
+        out      += LSubFrameOut;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_3_2c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,84 +1,73 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:   SKP_Silk_resample_3_2.c                               *
- *                                                                      *
- * Resamples by a factor 3/2                                            *
- *                                                                      *
-
-
-
-
-
- * Copyright 2008 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 081113                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define IN_SUBFR_LEN_RESAMPLE_3_2       80
-
-/* Resamples by a factor 3/2 */
-void SKP_Silk_resample_3_2(
-    SKP_int16           *out,       /*   O: Fs_high signal  [inLen*3/2]             */
-    SKP_int32           *S,         /* I/O: State vector    [7+4]                   */
-    const SKP_int16     *in,        /* I:   Fs_low signal   [inLen]                 */
-    SKP_int             inLen       /* I:   Input length, must be a multiple of 2   */
-)
-{
-    SKP_int     LSubFrameIn, LSubFrameOut;
-    SKP_int16   outH[      3 * IN_SUBFR_LEN_RESAMPLE_3_2 ];
-    SKP_int32   scratch[ ( 9 * IN_SUBFR_LEN_RESAMPLE_3_2 ) / 2 ];
-
-    /* Check that input is multiple of 2 */
-    SKP_assert( inLen % 2 == 0 );
-
-    while( inLen &gt; 0 ) {
-        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_2, inLen );
-        LSubFrameOut = SKP_SMULWB( 98304, LSubFrameIn );
-
-        /* Upsample by a factor 3 */
-        SKP_Silk_resample_3_1( outH, &amp;S[ 0 ], in, LSubFrameIn );
-
-        /* Downsample by a factor 2 */
-        /* Scratch size needs to be: 3 * LSubFrameOut * sizeof( SKP_int32 ) */
-        SKP_Silk_resample_1_2_coarse( outH, &amp;S[ 7 ], out, scratch, LSubFrameOut );
-
-        in    += LSubFrameIn;
-        out   += LSubFrameOut;
-        inLen -= LSubFrameIn;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:   SKP_Silk_resample_3_2.c                               *
+ *                                                                      *
+ * Resamples by a factor 3/2                                            *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 081113                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define IN_SUBFR_LEN_RESAMPLE_3_2       80
+
+/* Resamples by a factor 3/2 */
+void SKP_Silk_resample_3_2(
+    SKP_int16           *out,       /*   O: Fs_high signal  [inLen*3/2]             */
+    SKP_int32           *S,         /* I/O: State vector    [7+4]                   */
+    const SKP_int16     *in,        /* I:   Fs_low signal   [inLen]                 */
+    SKP_int             inLen       /* I:   Input length, must be a multiple of 2   */
+)
+{
+    SKP_int     LSubFrameIn, LSubFrameOut;
+    SKP_int16   outH[      3 * IN_SUBFR_LEN_RESAMPLE_3_2 ];
+    SKP_int32   scratch[ ( 9 * IN_SUBFR_LEN_RESAMPLE_3_2 ) / 2 ];
+
+    /* Check that input is multiple of 2 */
+    SKP_assert( inLen % 2 == 0 );
+
+    while( inLen &gt; 0 ) {
+        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_2, inLen );
+        LSubFrameOut = SKP_SMULWB( 98304, LSubFrameIn );
+
+        /* Upsample by a factor 3 */
+        SKP_Silk_resample_3_1( outH, &amp;S[ 0 ], in, LSubFrameIn );
+        
+        /* Downsample by a factor 2 */
+        /* Scratch size needs to be: 3 * LSubFrameOut * sizeof( SKP_int32 ) */
+        SKP_Silk_resample_1_2_coarse( outH, &amp;S[ 7 ], out, scratch, LSubFrameOut );
+
+        in    += LSubFrameIn;
+        out   += LSubFrameOut;
+        inLen -= LSubFrameIn;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_3_2_romc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2_rom.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2_rom.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_2_rom.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,62 +1,46 @@
</span><del>-
-
-
-
-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:   SKP_Silk_resample_3_2_rom.c                           *
- *                                                                      *
- * Description: Filter coefficients for FIR polyphase resampling        *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090424                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_resample_rom.h&quot;
-
-const SKP_int16 SigProc_Resample_3_2_coarse_INTERPOL[ SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS ][ SigProc_Resample_3_2_coarse_NUM_FIR_COEFS ] = {
-    {    0,     0,     0, 32768,     0,     0,     0,     0 },
-    { -384,  1630, -5217, 26674, 12714, -3572,  1050,  -236 },
-    { -236,  1050, -3572, 12714, 26674, -5217,  1630,  -384 },
-};
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:   SKP_Silk_resample_3_2_rom.c                           *
+ *                                                                      *
+ * Description: Filter coefficients for FIR polyphase resampling        *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090424                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_resample_rom.h&quot;
+
+const SKP_int16 SigProc_Resample_3_2_coarse_INTERPOL[ SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS ][ SigProc_Resample_3_2_coarse_NUM_FIR_COEFS ] = {
+    {    0,     0,     0, 32768,     0,     0,     0,     0 },
+    { -384,  1630, -5217, 26674, 12714, -3572,  1050,  -236 },
+    { -236,  1050, -3572, 12714, 26674, -5217,  1630,  -384 },
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_3_4c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_4.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_4.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_3_4.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,90 +1,79 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:    SKP_Silk_resample_3_4.c                              *
- *                                                                      *
- * Resamples by a factor 3/4                                            *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090408                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define IN_SUBFR_LEN_RESAMPLE_3_4        80
-
-/* Resamples by a factor 3/4 */
-
-
-
-
-
-void SKP_Silk_resample_3_4(
-    SKP_int16            *out,       /* O:   Fs_high signal  [inLen*3/4]              */
-    SKP_int32            *S,         /* I/O: State vector    [7+2+6]                  */
-    const SKP_int16      *in,        /* I:   Fs_low signal   [inLen]                  */
-    SKP_int              inLen       /* I:   Input length, must be a multiple of 4    */
-)
-{
-    SKP_int      LSubFrameIn, LSubFrameOut;
-    SKP_int16    outH[      3 * IN_SUBFR_LEN_RESAMPLE_3_4 ];
-    SKP_int16    outL[    ( 3 * IN_SUBFR_LEN_RESAMPLE_3_4 ) / 2 ];
-    SKP_int32    scratch[ ( 9 * IN_SUBFR_LEN_RESAMPLE_3_4 ) / 2 ];
-
-    /* Check that input is multiple of 4 */
-    SKP_assert( inLen % 4 == 0 );
-
-    while( inLen &gt; 0 ) {
-        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_4, inLen );
-        LSubFrameOut = SKP_SMULWB( 49152, LSubFrameIn );
-
-        /* Upsample by a factor 3 */
-        SKP_Silk_resample_3_1( outH, &amp;S[ 0 ], in, LSubFrameIn );
-
-        /* Downsample by a factor 2 twice */
-        /* Scratch size needs to be: 3 * 2 * LSubFrameOut * sizeof( SKP_int32 ) */
-        /* I: state vector [2], scratch memory [3*len] */
-        SKP_Silk_resample_1_2_coarsest( outH, &amp;S[ 7 ], outL, scratch, SKP_LSHIFT( LSubFrameOut, 1 ) );
-
-        /* Scratch size needs to be: 3 * LSubFrameOut * sizeof( SKP_int32 ) */
-        /* I: state vector [6], scratch memory [3*len]    */
-        SKP_Silk_resample_1_2_coarse( outL, &amp;S[ 9 ], out, scratch, LSubFrameOut );
-
-        in    += LSubFrameIn;
-        out   += LSubFrameOut;
-        inLen -= LSubFrameIn;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:    SKP_Silk_resample_3_4.c                              *
+ *                                                                      *
+ * Resamples by a factor 3/4                                            *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090408                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define IN_SUBFR_LEN_RESAMPLE_3_4        80
+
+/* Resamples by a factor 3/4 */
+void SKP_Silk_resample_3_4(
+    SKP_int16            *out,       /* O:   Fs_high signal  [inLen*3/4]              */
+    SKP_int32            *S,         /* I/O: State vector    [7+2+6]                  */
+    const SKP_int16      *in,        /* I:   Fs_low signal   [inLen]                  */
+    SKP_int              inLen       /* I:   Input length, must be a multiple of 4    */
+)
+{
+    SKP_int      LSubFrameIn, LSubFrameOut;
+    SKP_int16    outH[      3 * IN_SUBFR_LEN_RESAMPLE_3_4 ];
+    SKP_int16    outL[    ( 3 * IN_SUBFR_LEN_RESAMPLE_3_4 ) / 2 ];
+    SKP_int32    scratch[ ( 9 * IN_SUBFR_LEN_RESAMPLE_3_4 ) / 2 ];
+
+    /* Check that input is multiple of 4 */
+    SKP_assert( inLen % 4 == 0 );
+
+    while( inLen &gt; 0 ) {
+        LSubFrameIn  = SKP_min_int( IN_SUBFR_LEN_RESAMPLE_3_4, inLen );
+        LSubFrameOut = SKP_SMULWB( 49152, LSubFrameIn );
+
+        /* Upsample by a factor 3 */
+        SKP_Silk_resample_3_1( outH, &amp;S[ 0 ], in, LSubFrameIn );
+        
+        /* Downsample by a factor 2 twice */
+        /* Scratch size needs to be: 3 * 2 * LSubFrameOut * sizeof( SKP_int32 ) */
+        /* I: state vector [2], scratch memory [3*len] */
+        SKP_Silk_resample_1_2_coarsest( outH, &amp;S[ 7 ], outL, scratch, SKP_LSHIFT( LSubFrameOut, 1 ) ); 
+        
+        /* Scratch size needs to be: 3 * LSubFrameOut * sizeof( SKP_int32 ) */
+        /* I: state vector [6], scratch memory [3*len]    */
+        SKP_Silk_resample_1_2_coarse( outL, &amp;S[ 9 ], out, scratch, LSubFrameOut );
+
+        in    += LSubFrameIn;
+        out   += LSubFrameOut;
+        inLen -= LSubFrameIn;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_4_3c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_4_3.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_4_3.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_4_3.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,93 +1,77 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-
-
-
-
-
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * File Name:    SKP_Silk_resample_4_3.c                              *
- *                                                                      *
- * Resamples by a factor 4/3                                            *
- *                                                                      *
- * Copyright 2009 (c), Skype Limited                                    *
- * All rights reserved.                                                 *
- *                                                                      *
- * Date: 090407                                                         *
- *                                                                      */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-#define OUT_SUBFR_LEN        80
-
-/* Resamples by a factor 4/3 */
-void SKP_Silk_resample_4_3(
-    SKP_int16            *out,       /* O:   Fs_low signal    [inLen * 4/3]           */
-    SKP_int32            *S,         /* I/O: State vector    [7+4+4]                  */
-    const SKP_int16      *in,        /* I:   Fs_high signal    [inLen]                */
-    const SKP_int        inLen       /* I:   input length, must be a multiple of 3    */
-)
-{
-    SKP_int      outLen, LSubFrameIn, LSubFrameOut;
-    SKP_int16    outH[    3 * OUT_SUBFR_LEN ];
-    SKP_int16    outHH[   6 * OUT_SUBFR_LEN ];
-
-
-
-
-
-    SKP_int32    scratch[ 9 * OUT_SUBFR_LEN / 2 ];
-
-    /* Check that input is multiple of 3 */
-    SKP_assert( inLen % 3 == 0 );
-
-    outLen = SKP_DIV32_16( SKP_LSHIFT( inLen, 2 ), 3 );
-    while( outLen &gt; 0 ) {
-        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
-        LSubFrameIn  = SKP_SMULWB( 49152, LSubFrameOut );
-
-        /* Upsample two times by a factor 2 */
-        /* Scratch size needs to be: 3 * LSubFrameIn * sizeof( SKP_int32 ) */
-        SKP_Silk_resample_2_1_coarse( in,   &amp;S[ 0 ], outH,  scratch,             LSubFrameIn      );
-        /* Scratch size needs to be: 6 * LSubFrameIn * sizeof( SKP_int32 ) */
-        SKP_Silk_resample_2_1_coarse( outH, &amp;S[ 4 ], outHH, scratch, SKP_LSHIFT( LSubFrameIn, 1 ) );
-
-        /* Downsample by a factor 3 */
-        SKP_Silk_resample_1_3( out, &amp;S[ 8 ], outHH, SKP_LSHIFT( LSubFrameIn, 2 ) );
-
-        in     += LSubFrameIn;
-        out    += LSubFrameOut;
-        outLen -= LSubFrameOut;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * File Name:    SKP_Silk_resample_4_3.c                              *
+ *                                                                      *
+ * Resamples by a factor 4/3                                            *
+ *                                                                      *
+ * Copyright 2009 (c), Skype Limited                                    *
+ * All rights reserved.                                                 *
+ *                                                                      *
+ * Date: 090407                                                         *
+ *                                                                      */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define OUT_SUBFR_LEN        80
+
+/* Resamples by a factor 4/3 */
+void SKP_Silk_resample_4_3(
+    SKP_int16            *out,       /* O:   Fs_low signal    [inLen * 4/3]           */
+    SKP_int32            *S,         /* I/O: State vector    [7+4+4]                  */
+    const SKP_int16      *in,        /* I:   Fs_high signal    [inLen]                */
+    const SKP_int        inLen       /* I:   input length, must be a multiple of 3    */
+) 
+{
+    SKP_int      outLen, LSubFrameIn, LSubFrameOut;
+    SKP_int16    outH[    3 * OUT_SUBFR_LEN ];
+    SKP_int16    outHH[   6 * OUT_SUBFR_LEN ];
+    SKP_int32    scratch[ 9 * OUT_SUBFR_LEN / 2 ];
+
+    /* Check that input is multiple of 3 */
+    SKP_assert( inLen % 3 == 0 );
+
+    outLen = SKP_DIV32_16( SKP_LSHIFT( inLen, 2 ), 3 );
+    while( outLen &gt; 0 ) {
+        LSubFrameOut = SKP_min_int( OUT_SUBFR_LEN, outLen );
+        LSubFrameIn  = SKP_SMULWB( 49152, LSubFrameOut );
+
+        /* Upsample two times by a factor 2 */
+        /* Scratch size needs to be: 3 * LSubFrameIn * sizeof( SKP_int32 ) */
+        SKP_Silk_resample_2_1_coarse( in,   &amp;S[ 0 ], outH,  scratch,             LSubFrameIn      );
+        /* Scratch size needs to be: 6 * LSubFrameIn * sizeof( SKP_int32 ) */
+        SKP_Silk_resample_2_1_coarse( outH, &amp;S[ 4 ], outHH, scratch, SKP_LSHIFT( LSubFrameIn, 1 ) );
+        
+        /* Downsample by a factor 3 */
+        SKP_Silk_resample_1_3( out, &amp;S[ 8 ], outHH, SKP_LSHIFT( LSubFrameIn, 2 ) );
+
+        in     += LSubFrameIn;
+        out    += LSubFrameOut;
+        outLen -= LSubFrameOut;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_resample_romh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_resample_rom.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_resample_rom.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_resample_rom.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,123 +1,107 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-
-
-
-
-
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                                                                                              *
- * File Name:   SKP_Silk_resample_rom.h                                                         *
- *                                                                                                                                              *
- * Description: Header file for FIR resampling of                                               *
- *                              32 and 44 kHz input                                                                     *
- *                                                                      *
- * Copyright 2007 (c), Skype Limited                                    *
- * All rights reserved.                                                                                                 *
- *                                                                                                                                              *
- * Date: 070807                                                         *
- *                                                                      */
-
-#ifndef _SKP_SILK_FIX_RESAMPLE_ROM_H_
-#define _SKP_SILK_FIX_RESAMPLE_ROM_H_
-
-#include &quot;SKP_Silk_typedef.h&quot;
-
-#ifdef  __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define SigProc_Resample_bw_1_4_NUM_INTERPOLATORS_LOG2                          7
-#define SigProc_Resample_bw_1_4_NUM_INTERPOLATORS                                       (1 &lt;&lt; SigProc_Resample_bw_1_4_NUM_INTERPOLATORS_LOG2)
-#define SigProc_Resample_bw_1_4_NUM_FIR_COEFS                                           6
-
-extern const SKP_int16 SigProc_Resample_bw_1_4_INTERPOL[SigProc_Resample_bw_1_4_NUM_INTERPOLATORS][SigProc_Resample_bw_1_4_NUM_FIR_COEFS];
-
-
-#define SigProc_Resample_bw_80_441_NUM_INTERPOLATORS_LOG2                       6
-#define SigProc_Resample_bw_80_441_NUM_INTERPOLATORS                            (1 &lt;&lt; SigProc_Resample_bw_80_441_NUM_INTERPOLATORS_LOG2)
-#define SigProc_Resample_bw_80_441_NUM_FIR_COEFS                                        4
-
-extern const SKP_int16 SigProc_Resample_bw_80_441_INTERPOL[SigProc_Resample_bw_80_441_NUM_INTERPOLATORS][SigProc_Resample_bw_80_441_NUM_FIR_COEFS];
-
-#define SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS                            2
-#define SigProc_Resample_2_3_coarse_NUM_FIR_COEFS                                       32
-
-
-
-
-
-
-extern const SKP_int16 SigProc_Resample_2_3_coarse_INTERPOL[SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS][SigProc_Resample_2_3_coarse_NUM_FIR_COEFS];
-
-#define SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS                          2
-#define SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS                                     10
-
-extern const SKP_int16 SigProc_Resample_2_3_coarsest_INTERPOL[SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS][SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS];
-
-#define SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS                            3
-#define SigProc_Resample_3_2_coarse_NUM_FIR_COEFS                                        8
-
-extern const SKP_int16 SigProc_Resample_3_2_coarse_INTERPOL[SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS][SigProc_Resample_3_2_coarse_NUM_FIR_COEFS];
-
-#define SigProc_Resample_147_40_NUM_INTERPOLATORS                                        147
-#define SigProc_Resample_147_40_NUM_FIR_COEFS                                            20
-
-extern const SKP_int16 SigProc_Resample_147_40_INTERPOL[SigProc_Resample_147_40_NUM_INTERPOLATORS][SigProc_Resample_147_40_NUM_FIR_COEFS];
-
-#define SigProc_Resample_147_40_alt_NUM_INTERPOLATORS                            147
-#define SigProc_Resample_147_40_alt_NUM_FIR_COEFS                                        10
-
-extern const SKP_int16 SigProc_Resample_147_40_alt_INTERPOL[SigProc_Resample_147_40_alt_NUM_INTERPOLATORS][SigProc_Resample_147_40_alt_NUM_FIR_COEFS];
-
-#define SigProc_Resample_147_40_coarse_NUM_INTERPOLATORS                         147
-#define SigProc_Resample_147_40_coarse_NUM_FIR_COEFS                             16
-
-extern const SKP_int16 SigProc_Resample_147_40_coarse_INTERPOL[SigProc_Resample_147_40_coarse_NUM_INTERPOLATORS][SigProc_Resample_147_40_coarse_NUM_FIR_COEFS];
-
-#define SigProc_Resample_40_147_NUM_INTERPOLATORS                                        40
-#define SigProc_Resample_40_147_NUM_FIR_COEFS                                            60
-
-extern const SKP_int16 SigProc_Resample_40_147_INTERPOL[SigProc_Resample_40_147_NUM_INTERPOLATORS][SigProc_Resample_40_147_NUM_FIR_COEFS];
-
-#define SigProc_Resample_40_147_coarse_NUM_INTERPOLATORS                         40
-#define SigProc_Resample_40_147_coarse_NUM_FIR_COEFS                             30
-
-extern const SKP_int16 SigProc_Resample_40_147_coarse_INTERPOL[SigProc_Resample_40_147_coarse_NUM_INTERPOLATORS][SigProc_Resample_40_147_coarse_NUM_FIR_COEFS];
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif // _SKP_SILK_FIX_RESAMPLE_ROM_H_
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                                                                                                *
+ * File Name:        SKP_Silk_resample_rom.h                                                                *
+ *                                                                                                                                                *
+ * Description: Header file for FIR resampling of                                                *
+ *                                32 and 44 kHz input                                                                         *
+ *                                                                      *
+ * Copyright 2007 (c), Skype Limited                                    *
+ * All rights reserved.                                                                                                        *
+ *                                                                                                                                                *
+ * Date: 070807                                                         *
+ *                                                                      */
+
+#ifndef _SKP_SILK_FIX_RESAMPLE_ROM_H_
+#define _SKP_SILK_FIX_RESAMPLE_ROM_H_
+
+#include &quot;SKP_Silk_typedef.h&quot;
+
+#ifdef  __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define SigProc_Resample_bw_1_4_NUM_INTERPOLATORS_LOG2                                7
+#define SigProc_Resample_bw_1_4_NUM_INTERPOLATORS                                        (1 &lt;&lt; SigProc_Resample_bw_1_4_NUM_INTERPOLATORS_LOG2)
+#define SigProc_Resample_bw_1_4_NUM_FIR_COEFS                                                6 
+
+extern const SKP_int16 SigProc_Resample_bw_1_4_INTERPOL[SigProc_Resample_bw_1_4_NUM_INTERPOLATORS][SigProc_Resample_bw_1_4_NUM_FIR_COEFS];
+
+
+#define SigProc_Resample_bw_80_441_NUM_INTERPOLATORS_LOG2                        6
+#define SigProc_Resample_bw_80_441_NUM_INTERPOLATORS                                (1 &lt;&lt; SigProc_Resample_bw_80_441_NUM_INTERPOLATORS_LOG2)
+#define SigProc_Resample_bw_80_441_NUM_FIR_COEFS                                        4 
+
+extern const SKP_int16 SigProc_Resample_bw_80_441_INTERPOL[SigProc_Resample_bw_80_441_NUM_INTERPOLATORS][SigProc_Resample_bw_80_441_NUM_FIR_COEFS];
+
+#define SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS                                 2
+#define SigProc_Resample_2_3_coarse_NUM_FIR_COEFS                                        32
+
+extern const SKP_int16 SigProc_Resample_2_3_coarse_INTERPOL[SigProc_Resample_2_3_coarse_NUM_INTERPOLATORS][SigProc_Resample_2_3_coarse_NUM_FIR_COEFS];
+
+#define SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS                                 2
+#define SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS                                        10
+
+extern const SKP_int16 SigProc_Resample_2_3_coarsest_INTERPOL[SigProc_Resample_2_3_coarsest_NUM_INTERPOLATORS][SigProc_Resample_2_3_coarsest_NUM_FIR_COEFS];
+
+#define SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS                                 3
+#define SigProc_Resample_3_2_coarse_NUM_FIR_COEFS                                         8
+
+extern const SKP_int16 SigProc_Resample_3_2_coarse_INTERPOL[SigProc_Resample_3_2_coarse_NUM_INTERPOLATORS][SigProc_Resample_3_2_coarse_NUM_FIR_COEFS];
+
+#define SigProc_Resample_147_40_NUM_INTERPOLATORS                                         147
+#define SigProc_Resample_147_40_NUM_FIR_COEFS                                                 20
+
+extern const SKP_int16 SigProc_Resample_147_40_INTERPOL[SigProc_Resample_147_40_NUM_INTERPOLATORS][SigProc_Resample_147_40_NUM_FIR_COEFS];
+
+#define SigProc_Resample_147_40_alt_NUM_INTERPOLATORS                                 147
+#define SigProc_Resample_147_40_alt_NUM_FIR_COEFS                                         10
+
+extern const SKP_int16 SigProc_Resample_147_40_alt_INTERPOL[SigProc_Resample_147_40_alt_NUM_INTERPOLATORS][SigProc_Resample_147_40_alt_NUM_FIR_COEFS];
+
+#define SigProc_Resample_147_40_coarse_NUM_INTERPOLATORS                         147
+#define SigProc_Resample_147_40_coarse_NUM_FIR_COEFS                                 16
+
+extern const SKP_int16 SigProc_Resample_147_40_coarse_INTERPOL[SigProc_Resample_147_40_coarse_NUM_INTERPOLATORS][SigProc_Resample_147_40_coarse_NUM_FIR_COEFS];
+
+#define SigProc_Resample_40_147_NUM_INTERPOLATORS                                         40
+#define SigProc_Resample_40_147_NUM_FIR_COEFS                                                 60
+
+extern const SKP_int16 SigProc_Resample_40_147_INTERPOL[SigProc_Resample_40_147_NUM_INTERPOLATORS][SigProc_Resample_40_147_NUM_FIR_COEFS];
+
+#define SigProc_Resample_40_147_coarse_NUM_INTERPOLATORS                         40
+#define SigProc_Resample_40_147_coarse_NUM_FIR_COEFS                                 30
+
+extern const SKP_int16 SigProc_Resample_40_147_coarse_INTERPOL[SigProc_Resample_40_147_coarse_NUM_INTERPOLATORS][SigProc_Resample_40_147_coarse_NUM_FIR_COEFS];
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif // _SKP_SILK_FIX_RESAMPLE_ROM_H_
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_residual_energy16_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy16_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy16_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy16_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,119 +1,99 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */
-SKP_int32 SKP_Silk_residual_energy16_covar_FIX(
-    const SKP_int16                 *c,                 /* I    Prediction vector                           */
-    const SKP_int32                 *wXX,               /* I    Correlation matrix                          */
-    const SKP_int32                 *wXx,               /* I    Correlation vector                          */
-    SKP_int32                       wxx,                /* I    Signal energy                               */
-    SKP_int                         D,                  /* I    Dimension                                   */
-    SKP_int                         cQ                  /* I    Q value for c vector 0 - 15                 */
-)
-{
-    SKP_int   i, j, lshifts, Qxtra;
-    SKP_int32 c_max, w_max, tmp, tmp2, nrg;
-    SKP_int   cn[ MAX_MATRIX_SIZE ];
-    const SKP_int32 *pRow;
-
-    /* Safety checks */
-    SKP_assert( D &gt;=  0 );
-    SKP_assert( D &lt;= 16 );
-    SKP_assert( cQ &gt;  0 );
-
-
-
-
-
-    SKP_assert( cQ &lt; 16 );
-
-    lshifts = 16 - cQ;
-    Qxtra = lshifts;
-
-    c_max = 0;
-    for( i = 0; i &lt; D; i++ ) {
-        c_max = SKP_max_32( c_max, SKP_abs( (SKP_int32)c[ i ] ) );
-    }
-    Qxtra = SKP_min_int( Qxtra, SKP_Silk_CLZ32( c_max ) - 17 );
-
-    w_max = SKP_max_32( wXX[ 0 ], wXX[ D * D - 1 ] );
-    Qxtra = SKP_min_int( Qxtra, SKP_Silk_CLZ32( SKP_MUL( D, SKP_RSHIFT( SKP_SMULWB( w_max, c_max ), 4 ) ) ) - 5 );
-    Qxtra = SKP_max_int( Qxtra, 0 );
-    for( i = 0; i &lt; D; i++ ) {
-        cn[ i ] = SKP_LSHIFT( (SKP_int)c[ i ], Qxtra );
-        SKP_assert( SKP_abs(cn[i]) &lt;= ( SKP_int16_MAX + 1 ) ); /* Check that SKP_SMLAWB can be used */
-    }
-    lshifts -= Qxtra;
-
-    /* Compute wxx - 2 * wXx * c */
-    tmp = 0;
-    for( i = 0; i &lt; D; i++ ) {
-        tmp = SKP_SMLAWB( tmp, wXx[ i ], cn[ i ] );
-    }
-    nrg = SKP_RSHIFT( wxx, 1 + lshifts ) - tmp;                         /* Q: -lshifts - 1 */
-
-    /* Add c' * wXX * c, assuming wXX is symmetric */
-    tmp2 = 0;
-    for( i = 0; i &lt; D; i++ ) {
-        tmp = 0;
-        pRow = &amp;wXX[ i * D ];
-        for( j = i + 1; j &lt; D; j++ ) {
-            tmp = SKP_SMLAWB( tmp, pRow[ j ], cn[ j ] );
-        }
-        tmp  = SKP_SMLAWB( tmp,  SKP_RSHIFT( pRow[ i ], 1 ), cn[ i ] );
-        tmp2 = SKP_SMLAWB( tmp2, tmp,                        cn[ i ] );
-    }
-    nrg = SKP_ADD_LSHIFT32( nrg, tmp2, lshifts );                       /* Q: -lshifts - 1 */
-
-    /* Keep one bit free always, because we add them for LSF interpolation */
-    if( nrg &lt; 1 ) {
-        nrg = 1;
-    } else if( nrg &gt; SKP_RSHIFT( SKP_int32_MAX, lshifts + 2 ) ) {
-        nrg = SKP_int32_MAX &gt;&gt; 1;
-    } else {
-        nrg = SKP_LSHIFT( nrg, lshifts + 1 );                           /* Q0 */
-    }
-
-
-
-
-
-    return nrg;
-
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Residual energy: nrg = wxx - 2 * wXx * c + c' * wXX * c */
+SKP_int32 SKP_Silk_residual_energy16_covar_FIX(
+    const SKP_int16                 *c,                 /* I    Prediction vector                           */
+    const SKP_int32                 *wXX,               /* I    Correlation matrix                          */
+    const SKP_int32                 *wXx,               /* I    Correlation vector                          */
+    SKP_int32                       wxx,                /* I    Signal energy                               */
+    SKP_int                         D,                  /* I    Dimension                                   */
+    SKP_int                         cQ                  /* I    Q value for c vector 0 - 15                 */
+)
+{
+    SKP_int   i, j, lshifts, Qxtra;
+    SKP_int32 c_max, w_max, tmp, tmp2, nrg;
+    SKP_int   cn[ MAX_MATRIX_SIZE ]; 
+    const SKP_int32 *pRow;
+
+    /* Safety checks */
+    SKP_assert( D &gt;=  0 );
+    SKP_assert( D &lt;= 16 );
+    SKP_assert( cQ &gt;  0 );
+    SKP_assert( cQ &lt; 16 );
+
+    lshifts = 16 - cQ;
+    Qxtra = lshifts;
+
+    c_max = 0;
+    for( i = 0; i &lt; D; i++ ) {
+        c_max = SKP_max_32( c_max, SKP_abs( ( SKP_int32 )c[ i ] ) );
+    }
+    Qxtra = SKP_min_int( Qxtra, SKP_Silk_CLZ32( c_max ) - 17 );
+
+    w_max = SKP_max_32( wXX[ 0 ], wXX[ D * D - 1 ] );
+    Qxtra = SKP_min_int( Qxtra, SKP_Silk_CLZ32( SKP_MUL( D, SKP_RSHIFT( SKP_SMULWB( w_max, c_max ), 4 ) ) ) - 5 );
+    Qxtra = SKP_max_int( Qxtra, 0 );
+    for( i = 0; i &lt; D; i++ ) {
+        cn[ i ] = SKP_LSHIFT( ( SKP_int )c[ i ], Qxtra );
+        SKP_assert( SKP_abs(cn[i]) &lt;= ( SKP_int16_MAX + 1 ) ); /* Check that SKP_SMLAWB can be used */
+    }
+    lshifts -= Qxtra;
+
+    /* Compute wxx - 2 * wXx * c */
+    tmp = 0;
+    for( i = 0; i &lt; D; i++ ) {
+        tmp = SKP_SMLAWB( tmp, wXx[ i ], cn[ i ] );
+    }
+    nrg = SKP_RSHIFT( wxx, 1 + lshifts ) - tmp;                         /* Q: -lshifts - 1 */
+
+    /* Add c' * wXX * c, assuming wXX is symmetric */
+    tmp2 = 0;
+    for( i = 0; i &lt; D; i++ ) {
+        tmp = 0;
+        pRow = &amp;wXX[ i * D ];
+        for( j = i + 1; j &lt; D; j++ ) {
+            tmp = SKP_SMLAWB( tmp, pRow[ j ], cn[ j ] );
+        }
+        tmp  = SKP_SMLAWB( tmp,  SKP_RSHIFT( pRow[ i ], 1 ), cn[ i ] );
+        tmp2 = SKP_SMLAWB( tmp2, tmp,                        cn[ i ] );
+    }
+    nrg = SKP_ADD_LSHIFT32( nrg, tmp2, lshifts );                       /* Q: -lshifts - 1 */
+
+    /* Keep one bit free always, because we add them for LSF interpolation */
+    if( nrg &lt; 1 ) {
+        nrg = 1;
+    } else if( nrg &gt; SKP_RSHIFT( SKP_int32_MAX, lshifts + 2 ) ) {
+        nrg = SKP_int32_MAX &gt;&gt; 1;
+    } else {
+        nrg = SKP_LSHIFT( nrg, lshifts + 1 );                           /* Q0 */
+    }
+    return nrg;
+
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_residual_energy_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_residual_energy_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,105 +1,89 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/* Calculates residual energies of input subframes where all subframes have LPC_order   */
-/* of preceeding samples                                                                */
-void SKP_Silk_residual_energy_FIX(
-          SKP_int32 nrgs[ NB_SUBFR ],           /* O    Residual energy per subframe    */
-          SKP_int   nrgsQ[ NB_SUBFR ],          /* O    Q value per subframe            */
-    const SKP_int16 x[],                        /* I    Input signal                    */
-    const SKP_int16 a_Q12[ 2 ][ MAX_LPC_ORDER ],/* I    AR coefs for each frame half    */
-    const SKP_int32 gains_Qx[ NB_SUBFR ],       /* I    Quantization gains in Qx        */
-    const SKP_int   Qx,                         /* I    Quantization gains Q value      */
-
-
-
-
-
-    const SKP_int   subfr_length,               /* I    Subframe length                 */
-    const SKP_int   LPC_order                   /* I    LPC order                       */
-)
-{
-    SKP_int         offset, i, j, rshift, lz1, lz2;
-    SKP_int16       *LPC_res_ptr, LPC_res[ ( MAX_FRAME_LENGTH + NB_SUBFR * MAX_LPC_ORDER ) / 2 ];
-    const SKP_int16 *x_ptr;
-    SKP_int16       S[ MAX_LPC_ORDER ];
-    SKP_int32       tmp32;
-
-    x_ptr  = x;
-    offset = LPC_order + subfr_length;
-
-    /* Filter input to create the LPC residual for each frame half, and measure subframe energies */
-    for( i = 0; i &lt; 2; i++ ) {
-        /* Calculate half frame LPC residual signal including preceeding samples */
-        SKP_memset( S, 0, LPC_order * sizeof( SKP_int16 ) );
-        SKP_Silk_LPC_analysis_filter( x_ptr, a_Q12[ i ], S, LPC_res, ( NB_SUBFR &gt;&gt; 1 ) * offset, LPC_order );
-
-        /* Point to first subframe of the just calculated LPC residual signal */
-        LPC_res_ptr = LPC_res + LPC_order;
-        for( j = 0; j &lt; ( NB_SUBFR &gt;&gt; 1 ); j++ ) {
-            /* Measure subframe energy */
-            SKP_Silk_sum_sqr_shift( &amp;nrgs[ i * ( NB_SUBFR &gt;&gt; 1 ) + j ], &amp;rshift, LPC_res_ptr, subfr_length );
-
-            /* Set Q values for the measured energy */
-            nrgsQ[ i * ( NB_SUBFR &gt;&gt; 1 ) + j ] = -rshift;
-
-            /* Move to next subframe */
-            LPC_res_ptr += offset;
-        }
-        /* Move to next frame half */
-        x_ptr += ( NB_SUBFR &gt;&gt; 1 ) * offset;
-    }
-
-    /* Apply the squared subframe gains */
-    for( i = 0; i &lt; NB_SUBFR; i++ ) {
-        /* Fully upscale gains and energies */
-        lz1 = SKP_Silk_CLZ32( nrgs[ i ] ) - 1;
-        lz2 = SKP_Silk_CLZ32( gains_Qx[ i ] ) - 1;
-
-        tmp32 = SKP_LSHIFT32( gains_Qx[ i ], lz2 );
-
-        /* Find squared gains */
-        tmp32 = SKP_SMMUL( tmp32, tmp32 ); // Q( 2 * ( Qx + lz2 ) - 32 )
-
-        /* Scale energies */
-        nrgs[ i ] = SKP_SMMUL( tmp32, SKP_LSHIFT32( nrgs[ i ], lz1 ) ); // Q( nrgsQ[ i ] + lz1 + 2 * ( Qx + lz2 ) - 32 - 32 )
-
-
-
-
-
-        nrgsQ[ i ] += lz1 + 2 * ( Qx + lz2 ) - 32 - 32;
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/* Calculates residual energies of input subframes where all subframes have LPC_order   */
+/* of preceeding samples                                                                */
+void SKP_Silk_residual_energy_FIX(
+          SKP_int32 nrgs[ NB_SUBFR ],           /* O    Residual energy per subframe    */
+          SKP_int   nrgsQ[ NB_SUBFR ],          /* O    Q value per subframe            */
+    const SKP_int16 x[],                        /* I    Input signal                    */
+    const SKP_int16 a_Q12[ 2 ][ MAX_LPC_ORDER ],/* I    AR coefs for each frame half    */
+    const SKP_int32 gains_Qx[ NB_SUBFR ],       /* I    Quantization gains in Qx        */
+    const SKP_int   Qx,                         /* I    Quantization gains Q value      */
+    const SKP_int   subfr_length,               /* I    Subframe length                 */
+    const SKP_int   LPC_order                   /* I    LPC order                       */
+)
+{
+    SKP_int         offset, i, j, rshift, lz1, lz2;
+    SKP_int16       *LPC_res_ptr, LPC_res[ ( MAX_FRAME_LENGTH + NB_SUBFR * MAX_LPC_ORDER ) / 2 ];
+    const SKP_int16 *x_ptr;
+    SKP_int16       S[ MAX_LPC_ORDER ];
+    SKP_int32       tmp32;
+
+    x_ptr  = x;
+    offset = LPC_order + subfr_length;
+    
+    /* Filter input to create the LPC residual for each frame half, and measure subframe energies */
+    for( i = 0; i &lt; 2; i++ ) {
+        /* Calculate half frame LPC residual signal including preceeding samples */
+        SKP_memset( S, 0, LPC_order * sizeof( SKP_int16 ) );
+        SKP_Silk_LPC_analysis_filter( x_ptr, a_Q12[ i ], S, LPC_res, ( NB_SUBFR &gt;&gt; 1 ) * offset, LPC_order );
+
+        /* Point to first subframe of the just calculated LPC residual signal */
+        LPC_res_ptr = LPC_res + LPC_order;
+        for( j = 0; j &lt; ( NB_SUBFR &gt;&gt; 1 ); j++ ) {
+            /* Measure subframe energy */
+            SKP_Silk_sum_sqr_shift( &amp;nrgs[ i * ( NB_SUBFR &gt;&gt; 1 ) + j ], &amp;rshift, LPC_res_ptr, subfr_length ); 
+            
+            /* Set Q values for the measured energy */
+            nrgsQ[ i * ( NB_SUBFR &gt;&gt; 1 ) + j ] = -rshift;
+            
+            /* Move to next subframe */
+            LPC_res_ptr += offset;
+        }
+        /* Move to next frame half */
+        x_ptr += ( NB_SUBFR &gt;&gt; 1 ) * offset;
+    }
+
+    /* Apply the squared subframe gains */
+    for( i = 0; i &lt; NB_SUBFR; i++ ) {
+        /* Fully upscale gains and energies */
+        lz1 = SKP_Silk_CLZ32( nrgs[ i ] ) - 1; 
+        lz2 = SKP_Silk_CLZ32( gains_Qx[ i ] ) - 1; 
+        
+        tmp32 = SKP_LSHIFT32( gains_Qx[ i ], lz2 );
+
+        /* Find squared gains */
+        tmp32 = SKP_SMMUL( tmp32, tmp32 ); // Q( 2 * ( Qx + lz2 ) - 32 )
+
+        /* Scale energies */
+        nrgs[ i ] = SKP_SMMUL( tmp32, SKP_LSHIFT32( nrgs[ i ], lz1 ) ); // Q( nrgsQ[ i ] + lz1 + 2 * ( Qx + lz2 ) - 32 - 32 )
+        nrgsQ[ i ] += lz1 + 2 * ( Qx + lz2 ) - 32 - 32;
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_scale_copy_vector16c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_scale_copy_vector16.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_scale_copy_vector16.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_scale_copy_vector16.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,100 +1,45 @@
</span><del>-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Copy and multiply a vector by a constant */
-void SKP_Silk_scale_copy_vector16(
-    SKP_int16           *data_out,
-    const SKP_int16     *data_in,
-    SKP_int32           gain_Q16,                   /* (I):   gain in Q16   */
-    const SKP_int       dataSize                    /* (I):   length        */
-)
-{
-    SKP_int  i;
-    SKP_int32 tmp32;
-
-    for( i = 0; i &lt; dataSize; i++ ) {
-        tmp32 = SKP_SMULWB( gain_Q16, data_in[ i ] );
-        data_out[ i ] = (SKP_int16)SKP_CHECK_FIT16( tmp32 );
-    }
-}
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Copy and multiply a vector by a constant */
+void SKP_Silk_scale_copy_vector16( 
+    SKP_int16           *data_out, 
+    const SKP_int16     *data_in, 
+    SKP_int32           gain_Q16,                   /* (I):   gain in Q16   */
+    const SKP_int       dataSize                    /* (I):   length        */
+)
+{
+    SKP_int  i;
+    SKP_int32 tmp32;
+
+    for( i = 0; i &lt; dataSize; i++ ) {
+        tmp32 = SKP_SMULWB( gain_Q16, data_in[ i ] );
+        data_out[ i ] = (SKP_int16)SKP_CHECK_FIT16( tmp32 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_scale_vectorc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_scale_vector.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_scale_vector.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_scale_vector.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,137 +1,122 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Multiply a vector by a constant */
-void SKP_Silk_scale_vector16_Q14(
-    SKP_int16           *data1,
-    SKP_int             gain_Q14,       /* Gain in Q14 */
-    SKP_int             dataSize
-)
-{
-    SKP_int   i;
-    SKP_int32 data32, gain_Q16;
-
-    SKP_assert( gain_Q14 &lt;   32768 );
-    SKP_assert( gain_Q14 &gt;= -32768 );
-
-    gain_Q16 = SKP_LSHIFT( gain_Q14, 2 );
-
-
-
-
-
-    if( (SKP_int32)( (SKP_int_ptr_size)data1 &amp; 3 ) != 0 ) {
-        /* Input is not 4-byte aligned */
-        data1[ 0 ] = SKP_SMULWB( gain_Q16, data1[ 0 ] );
-        i = 1;
-    } else {
-        i = 0;
-    }
-    dataSize--;
-    for( ; i &lt; dataSize; i += 2 ) {
-        data32 = *( (SKP_int32 *)&amp;data1[ i ] );                     /* load two values at once */
-        data1[ i     ] = SKP_SMULWB( gain_Q16, data32 );
-        data1[ i + 1 ] = SKP_SMULWT( gain_Q16, data32 );
-    }
-    if( i == dataSize ) {
-        /* One sample left to process */
-        data1[ i ] = SKP_SMULWB( gain_Q16, data1[ i ] );
-    }
-}
-
-/* Multiply a vector by a constant */
-void SKP_Silk_scale_vector32_Q26_lshift_18(
-    SKP_int32           *data1,                     /* (I/O): Q0/Q18        */
-    SKP_int32           gain_Q26,                   /* (I):   Q26           */
-    SKP_int             dataSize                    /* (I):   length        */
-)
-{
-    SKP_int  i;
-
-    for( i = 0; i &lt; dataSize; i++ ) {
-        data1[ i ] = (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( SKP_SMULL( data1[ i ], gain_Q26 ), 8 ) );// OUTPUT: Q18
-    }
-}
-
-/* Multiply a vector by a constant */
-void SKP_Silk_scale_vector32_16_Q14(
-    SKP_int32           *data1,                     /* (I/O): Q0/Q0         */
-    SKP_int             gain_Q14,                   /* (I):   Q14           */
-    SKP_int             dataSize                    /* (I):   length        */
-)
-{
-    SKP_int  i, gain_Q16;
-
-    if( gain_Q14 &lt; ( SKP_int16_MAX &gt;&gt; 2 ) ) {
-        gain_Q16 = SKP_LSHIFT( gain_Q14, 2 );
-        for( i = 0; i &lt; dataSize; i++ ) {
-            data1[ i ] = SKP_SMULWB( data1[ i ], gain_Q16 );
-        }
-    } else {
-
-
-
-
-
-        SKP_assert( gain_Q14 &gt;= SKP_int16_MIN );
-        for( i = 0; i &lt; dataSize; i++ ) {
-            data1[ i ] = SKP_LSHIFT( SKP_SMULWB( data1[ i ], gain_Q14 ), 2 );
-        }
-    }
-}
-
-/* Multiply a vector by a constant, does not saturate output data */
-void SKP_Silk_scale_vector32_Q16(
-    SKP_int32           *data1,                     /* (I/O): Q0/Q0         */
-    SKP_int32           gain_Q16,                   /* (I):   gain in Q16 ( SKP_int16_MIN &lt;= gain_Q16 &lt;= SKP_int16_MAX + 65536 ) */
-    const SKP_int       dataSize                    /* (I):   length        */
-)
-{
-    SKP_int     i;
-
-    SKP_assert( gain_Q16 &lt;= SKP_int16_MAX + 65536 );
-    SKP_assert( gain_Q16 &gt;= SKP_int16_MIN );
-
-    if( gain_Q16 &gt; SKP_int16_MAX ) {
-        gain_Q16 -= 65536;
-        for( i = 0; i &lt; dataSize; i++ ) {
-            data1[ i ] = SKP_SMLAWB( data1[ i ], data1[ i ], gain_Q16 );
-        }
-    } else {
-        for( i = 0; i &lt; dataSize; i++ ) {
-            data1[ i ] = SKP_SMULWB( data1[ i ], gain_Q16 );
-        }
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Multiply a vector by a constant */
+void SKP_Silk_scale_vector16_Q14( 
+    SKP_int16           *data1, 
+    SKP_int             gain_Q14,       /* Gain in Q14 */ 
+    SKP_int             dataSize
+)
+{
+    SKP_int   i;
+    SKP_int32 data32, gain_Q16;
+
+    SKP_assert( gain_Q14 &lt;   32768 );
+    SKP_assert( gain_Q14 &gt;= -32768 );
+
+    gain_Q16 = SKP_LSHIFT( gain_Q14, 2 );
+
+    if( (SKP_int32)( (SKP_int_ptr_size)data1 &amp; 3 ) != 0 ) {
+        /* Input is not 4-byte aligned */
+        data1[ 0 ] = SKP_SMULWB( gain_Q16, data1[ 0 ] );
+        i = 1;
+    } else {
+        i = 0;
+    }
+    dataSize--;
+    for( ; i &lt; dataSize; i += 2 ) {
+        data32 = *( (SKP_int32 *)&amp;data1[ i ] );                     /* load two values at once */
+        data1[ i     ] = SKP_SMULWB( gain_Q16, data32 );
+        data1[ i + 1 ] = SKP_SMULWT( gain_Q16, data32 );
+    }
+    if( i == dataSize ) {
+        /* One sample left to process */
+        data1[ i ] = SKP_SMULWB( gain_Q16, data1[ i ] );
+    }
+}
+
+/* Multiply a vector by a constant */
+void SKP_Silk_scale_vector32_Q26_lshift_18( 
+    SKP_int32           *data1,                     /* (I/O): Q0/Q18        */
+    SKP_int32           gain_Q26,                   /* (I):   Q26           */
+    SKP_int             dataSize                    /* (I):   length        */
+)
+{
+    SKP_int  i;
+
+    for( i = 0; i &lt; dataSize; i++ ) {
+        data1[ i ] = (SKP_int32)SKP_CHECK_FIT32( SKP_RSHIFT64( SKP_SMULL( data1[ i ], gain_Q26 ), 8 ) );// OUTPUT: Q18
+    }
+}
+
+/* Multiply a vector by a constant */
+void SKP_Silk_scale_vector32_16_Q14( 
+    SKP_int32           *data1,                     /* (I/O): Q0/Q0         */
+    SKP_int             gain_Q14,                   /* (I):   Q14           */
+    SKP_int             dataSize                    /* (I):   length        */
+)
+{
+    SKP_int  i, gain_Q16;
+
+    if( gain_Q14 &lt; ( SKP_int16_MAX &gt;&gt; 2 ) ) {
+        gain_Q16 = SKP_LSHIFT( gain_Q14, 2 );
+        for( i = 0; i &lt; dataSize; i++ ) {
+            data1[ i ] = SKP_SMULWB( data1[ i ], gain_Q16 );
+        }
+    } else {
+        SKP_assert( gain_Q14 &gt;= SKP_int16_MIN );
+        for( i = 0; i &lt; dataSize; i++ ) {
+            data1[ i ] = SKP_LSHIFT( SKP_SMULWB( data1[ i ], gain_Q14 ), 2 );
+        }
+    }
+}
+
+/* Multiply a vector by a constant, does not saturate output data */
+void SKP_Silk_scale_vector32_Q16( 
+    SKP_int32           *data1,                     /* (I/O): Q0/Q0         */
+    SKP_int32           gain_Q16,                   /* (I):   gain in Q16 ( SKP_int16_MIN &lt;= gain_Q16 &lt;= SKP_int16_MAX + 65536 ) */
+    const SKP_int       dataSize                    /* (I):   length        */
+)
+{
+    SKP_int     i;
+
+    SKP_assert( gain_Q16 &lt;= SKP_int16_MAX + 65536 );
+    SKP_assert( gain_Q16 &gt;= SKP_int16_MIN );
+
+    if( gain_Q16 &gt; SKP_int16_MAX ) {
+        gain_Q16 -= 65536;
+        for( i = 0; i &lt; dataSize; i++ ) {
+            data1[ i ] = SKP_SMLAWB( data1[ i ], data1[ i ], gain_Q16 );
+        }
+    } else {
+        for( i = 0; i &lt; dataSize; i++ ) {
+            data1[ i ] = SKP_SMULWB( data1[ i ], gain_Q16 );
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_schurc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_schur.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_schur.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_schur.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,107 +1,91 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-
-
-
-
-
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_schur.c                                                   *
- *                                                                      *
- * Calculates the reflection coefficients from the correlation sequence *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 080103                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Faster than schur64(), but much less accurate.                       */
-/* uses SMLAWB(), requiring armv5E and higher.                          */
-void SKP_Silk_schur(
-    SKP_int16            *rc_Q15,                /* O:    reflection coefficients [order] Q15         */
-    const SKP_int32      *c,                     /* I:    correlations [order+1]                      */
-    const SKP_int32      order                   /* I:    prediction order                            */
-)
-{
-    SKP_int        k, n, lz;
-    SKP_int32    C[ SigProc_MAX_ORDER_LPC + 1 ][ 2 ];
-    SKP_int32    Ctmp1, Ctmp2, rc_tmp_Q15;
-
-    /* Get number of leading zeros */
-    lz = SKP_Silk_CLZ32( c[ 0 ] );
-
-    /* Copy correlations and adjust level to Q30 */
-    if( lz &lt; 2 ) {
-        /* lz must be 1, so shift one to the right */
-        for( k = 0; k &lt; order + 1; k++ ) {
-            C[ k ][ 0 ] = C[ k ][ 1 ] = SKP_RSHIFT( c[ k ], 1 );
-        }
-    } else if( lz &gt; 2 ) {
-
-
-
-
-
-        /* Shift to the left */
-        lz -= 2;
-        for( k = 0; k &lt; order + 1; k++ ) {
-            C[ k ][ 0 ] = C[ k ][ 1 ] = SKP_LSHIFT( c[k], lz );
-        }
-    } else {
-        /* No need to shift */
-        for( k = 0; k &lt; order + 1; k++ ) {
-            C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
-        }
-    }
-
-    for( k = 0; k &lt; order; k++ ) {
-
-        /* Get reflection coefficient */
-        rc_tmp_Q15 = -SKP_DIV32_16( C[ k + 1 ][ 0 ], SKP_max_32( SKP_RSHIFT( C[ 0 ][ 1 ], 15 ), 1 ) );
-
-        /* Clip (shouldn't happen for properly conditioned inputs) */
-        rc_tmp_Q15 = SKP_SAT16( rc_tmp_Q15 );
-
-        /* Store */
-        rc_Q15[ k ] = (SKP_int16)rc_tmp_Q15;
-
-        /* Update correlations */
-        for( n = 0; n &lt; order - k; n++ ) {
-            Ctmp1 = C[ n + k + 1 ][ 0 ];
-            Ctmp2 = C[ n ][ 1 ];
-            C[ n + k + 1 ][ 0 ] = SKP_SMLAWB( Ctmp1, SKP_LSHIFT( Ctmp2, 1 ), rc_tmp_Q15 );
-            C[ n ][ 1 ]         = SKP_SMLAWB( Ctmp2, SKP_LSHIFT( Ctmp1, 1 ), rc_tmp_Q15 );
-        }
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_schur.c                                                   *
+ *                                                                      *
+ * Calculates the reflection coefficients from the correlation sequence *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 080103                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Faster than schur64(), but much less accurate.                       */
+/* uses SMLAWB(), requiring armv5E and higher.                          */ 
+void SKP_Silk_schur(
+    SKP_int16            *rc_Q15,                /* O:    reflection coefficients [order] Q15         */
+    const SKP_int32      *c,                     /* I:    correlations [order+1]                      */
+    const SKP_int32      order                   /* I:    prediction order                            */
+)
+{
+    SKP_int        k, n, lz;
+    SKP_int32    C[ SigProc_MAX_ORDER_LPC + 1 ][ 2 ];
+    SKP_int32    Ctmp1, Ctmp2, rc_tmp_Q15;
+
+    /* Get number of leading zeros */
+    lz = SKP_Silk_CLZ32( c[ 0 ] );
+
+    /* Copy correlations and adjust level to Q30 */
+    if( lz &lt; 2 ) {
+        /* lz must be 1, so shift one to the right */
+        for( k = 0; k &lt; order + 1; k++ ) {
+            C[ k ][ 0 ] = C[ k ][ 1 ] = SKP_RSHIFT( c[ k ], 1 );
+        }
+    } else if( lz &gt; 2 ) {
+        /* Shift to the left */
+        lz -= 2; 
+        for( k = 0; k &lt; order + 1; k++ ) {
+            C[ k ][ 0 ] = C[ k ][ 1 ] = SKP_LSHIFT( c[k], lz );
+        }
+    } else {
+        /* No need to shift */
+        for( k = 0; k &lt; order + 1; k++ ) {
+            C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
+        }
+    }
+
+    for( k = 0; k &lt; order; k++ ) {
+        
+        /* Get reflection coefficient */
+        rc_tmp_Q15 = -SKP_DIV32_16( C[ k + 1 ][ 0 ], SKP_max_32( SKP_RSHIFT( C[ 0 ][ 1 ], 15 ), 1 ) );
+
+        /* Clip (shouldn't happen for properly conditioned inputs) */
+        rc_tmp_Q15 = SKP_SAT16( rc_tmp_Q15 );
+
+        /* Store */
+        rc_Q15[ k ] = (SKP_int16)rc_tmp_Q15;
+
+        /* Update correlations */
+        for( n = 0; n &lt; order - k; n++ ) {
+            Ctmp1 = C[ n + k + 1 ][ 0 ];
+            Ctmp2 = C[ n ][ 1 ];
+            C[ n + k + 1 ][ 0 ] = SKP_SMLAWB( Ctmp1, SKP_LSHIFT( Ctmp2, 1 ), rc_tmp_Q15 );
+            C[ n ][ 1 ]         = SKP_SMLAWB( Ctmp2, SKP_LSHIFT( Ctmp1, 1 ), rc_tmp_Q15 );
+        }
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_schur64c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_schur64.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_schur64.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_schur64.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,96 +1,80 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-
-
-
-
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_schur64.c                                                 *
- *                                                                      *
- * Calculates the reflection coefficients from the correlation sequence *
- * using extra precision                                                *
- *                                                                      *
- * Copyright 2008 (c), Skype Limited                                    *
- * Date: 080103                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Slower than schur(), but more accurate.                              */
-/* Uses SMULL(), available on armv4                                     */
-SKP_int32 SKP_Silk_schur64(                    /* O:    Returns residual energy                     */
-    SKP_int32            rc_Q16[],               /* O:    Reflection coefficients [order] Q16         */
-    const SKP_int32      c[],                    /* I:    Correlations [order+1]                      */
-    SKP_int32            order                   /* I:    Prediction order                            */
-)
-{
-    SKP_int   k, n;
-    SKP_int32 C[ SigProc_MAX_ORDER_LPC + 1 ][ 2 ];
-    SKP_int32 Ctmp1_Q30, Ctmp2_Q30, rc_tmp_Q31;
-
-    /* Check for invalid input */
-    if( c[ 0 ] &lt;= 0 ) {
-        SKP_memset( rc_Q16, 0, order * sizeof( SKP_int32 ) );
-        return 0;
-    }
-
-    for( k = 0; k &lt; order + 1; k++ ) {
-
-
-
-
-
-        C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
-    }
-
-    for( k = 0; k &lt; order; k++ ) {
-        /* Get reflection coefficient: divide two Q30 values and get result in Q31 */
-        rc_tmp_Q31 = SKP_DIV32_varQ( -C[ k + 1 ][ 0 ], C[ 0 ][ 1 ], 31 );
-
-        /* Save the output */
-        rc_Q16[ k ] = SKP_RSHIFT_ROUND( rc_tmp_Q31, 15 );
-
-        /* Update correlations */
-        for( n = 0; n &lt; order - k; n++ ) {
-            Ctmp1_Q30 = C[ n + k + 1 ][ 0 ];
-            Ctmp2_Q30 = C[ n ][ 1 ];
-
-            /* Multiply and add the highest int32 */
-            C[ n + k + 1 ][ 0 ] = Ctmp1_Q30 + SKP_SMMUL( SKP_LSHIFT( Ctmp2_Q30, 1 ), rc_tmp_Q31 );
-            C[ n ][ 1 ]         = Ctmp2_Q30 + SKP_SMMUL( SKP_LSHIFT( Ctmp1_Q30, 1 ), rc_tmp_Q31 );
-        }
-    }
-
-    return( C[ 0 ][ 1 ] );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_schur64.c                                                 *
+ *                                                                      *
+ * Calculates the reflection coefficients from the correlation sequence *
+ * using extra precision                                                *
+ *                                                                      *
+ * Copyright 2008 (c), Skype Limited                                    *
+ * Date: 080103                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Slower than schur(), but more accurate.                              */
+/* Uses SMULL(), available on armv4                                     */ 
+SKP_int32 SKP_Silk_schur64(                    /* O:    Returns residual energy                     */
+    SKP_int32            rc_Q16[],               /* O:    Reflection coefficients [order] Q16         */
+    const SKP_int32      c[],                    /* I:    Correlations [order+1]                      */
+    SKP_int32            order                   /* I:    Prediction order                            */
+)
+{
+    SKP_int   k, n;
+    SKP_int32 C[ SigProc_MAX_ORDER_LPC + 1 ][ 2 ];
+    SKP_int32 Ctmp1_Q30, Ctmp2_Q30, rc_tmp_Q31;
+
+    /* Check for invalid input */
+    if( c[ 0 ] &lt;= 0 ) {
+        SKP_memset( rc_Q16, 0, order * sizeof( SKP_int32 ) );
+        return 0;
+    }
+    
+    for( k = 0; k &lt; order + 1; k++ ) {
+        C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
+    }
+
+    for( k = 0; k &lt; order; k++ ) {
+        /* Get reflection coefficient: divide two Q30 values and get result in Q31 */
+        rc_tmp_Q31 = SKP_DIV32_varQ( -C[ k + 1 ][ 0 ], C[ 0 ][ 1 ], 31 );
+
+        /* Save the output */
+        rc_Q16[ k ] = SKP_RSHIFT_ROUND( rc_tmp_Q31, 15 );
+
+        /* Update correlations */
+        for( n = 0; n &lt; order - k; n++ ) {
+            Ctmp1_Q30 = C[ n + k + 1 ][ 0 ];
+            Ctmp2_Q30 = C[ n ][ 1 ];
+            
+            /* Multiply and add the highest int32 */
+            C[ n + k + 1 ][ 0 ] = Ctmp1_Q30 + SKP_SMMUL( SKP_LSHIFT( Ctmp2_Q30, 1 ), rc_tmp_Q31 );
+            C[ n ][ 1 ]         = Ctmp2_Q30 + SKP_SMMUL( SKP_LSHIFT( Ctmp1_Q30, 1 ), rc_tmp_Q31 );
+        }
+    }
+
+    return( C[ 0 ][ 1 ] );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_shell_coderc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_shell_coder.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_shell_coder.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_shell_coder.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,175 +1,155 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
-
-
-
-
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main.h&quot;
-
-/* shell coder; pulse-subframe length is hardcoded */
-
-SKP_INLINE void combine_pulses(
-    SKP_int         *out,   /* O:   combined pulses vector [len] */
-    const SKP_int   *in,    /* I:   input vector       [2 * len] */
-    const SKP_int   len     /* I:   number of OUTPUT samples     */
-)
-{
-    SKP_int k;
-    for( k = 0; k &lt; len; k++ ) {
-        out[ k ] = in[ 2 * k ] + in[ 2 * k + 1 ];
-    }
-}
-
-SKP_INLINE void encode_split(
-    SKP_Silk_range_coder_state  *sRC,           /* I/O: compressor data structure                   */
-    const SKP_int               p_child1,       /* I:   pulse amplitude of first child subframe     */
-    const SKP_int               p,              /* I:   pulse amplitude of current subframe         */
-    const SKP_uint16            *shell_table    /* I:   table of shell cdfs                         */
-)
-{
-    const SKP_uint16 *cdf;
-
-    if( p &gt; 0 ) {
-        cdf = &amp;shell_table[ SKP_Silk_shell_code_table_offsets[ p ] ];
-        SKP_Silk_range_encoder( sRC, p_child1, cdf );
-    }
-}
-
-SKP_INLINE void decode_split(
-    SKP_int                     *p_child1,      /* O:   pulse amplitude of first child subframe     */
-    SKP_int                     *p_child2,      /* O:   pulse amplitude of second child subframe    */
-    SKP_Silk_range_coder_state  *sRC,           /* I/O: compressor data structure                   */
-    const SKP_int               p,              /* I:   pulse amplitude of current subframe         */
-    const SKP_uint16            *shell_table    /* I:   table of shell cdfs                         */
-)
-{
-
-
-
-
-
-    SKP_int cdf_middle;
-    const SKP_uint16 *cdf;
-
-    if( p &gt; 0 ) {
-        cdf_middle = SKP_RSHIFT( p, 1 );
-        cdf = &amp;shell_table[ SKP_Silk_shell_code_table_offsets[ p ] ];
-        SKP_Silk_range_decoder( p_child1, sRC, cdf, cdf_middle );
-        p_child2[ 0 ] = p - p_child1[ 0 ];
-    } else {
-        p_child1[ 0 ] = 0;
-        p_child2[ 0 ] = 0;
-    }
-}
-
-/* Shell encoder, operates on one shell code frame of 16 pulses */
-void SKP_Silk_shell_encoder(
-    SKP_Silk_range_coder_state      *sRC,               /* I/O  compressor data structure                   */
-    const SKP_int                   *pulses0            /* I    data: nonnegative pulse amplitudes          */
-)
-{
-    SKP_int pulses1[ 8 ], pulses2[ 4 ], pulses3[ 2 ], pulses4[ 1 ];
-
-    /* this function operates on one shell code frame of 16 pulses */
-    SKP_assert( SHELL_CODEC_FRAME_LENGTH == 16 );
-
-    /* tree representation per pulse-subframe */
-    combine_pulses( pulses1, pulses0, 8 );
-    combine_pulses( pulses2, pulses1, 4 );
-    combine_pulses( pulses3, pulses2, 2 );
-    combine_pulses( pulses4, pulses3, 1 );
-
-    encode_split( sRC, pulses3[  0 ], pulses4[ 0 ], SKP_Silk_shell_code_table3 );
-
-    encode_split( sRC, pulses2[  0 ], pulses3[ 0 ], SKP_Silk_shell_code_table2 );
-
-    encode_split( sRC, pulses1[  0 ], pulses2[ 0 ], SKP_Silk_shell_code_table1 );
-    encode_split( sRC, pulses0[  0 ], pulses1[ 0 ], SKP_Silk_shell_code_table0 );
-    encode_split( sRC, pulses0[  2 ], pulses1[ 1 ], SKP_Silk_shell_code_table0 );
-
-    encode_split( sRC, pulses1[  2 ], pulses2[ 1 ], SKP_Silk_shell_code_table1 );
-    encode_split( sRC, pulses0[  4 ], pulses1[ 2 ], SKP_Silk_shell_code_table0 );
-    encode_split( sRC, pulses0[  6 ], pulses1[ 3 ], SKP_Silk_shell_code_table0 );
-
-    encode_split( sRC, pulses2[  2 ], pulses3[ 1 ], SKP_Silk_shell_code_table2 );
-
-    encode_split( sRC, pulses1[  4 ], pulses2[ 2 ], SKP_Silk_shell_code_table1 );
-    encode_split( sRC, pulses0[  8 ], pulses1[ 4 ], SKP_Silk_shell_code_table0 );
-    encode_split( sRC, pulses0[ 10 ], pulses1[ 5 ], SKP_Silk_shell_code_table0 );
-
-
-
-
-
-    encode_split( sRC, pulses1[  6 ], pulses2[ 3 ], SKP_Silk_shell_code_table1 );
-    encode_split( sRC, pulses0[ 12 ], pulses1[ 6 ], SKP_Silk_shell_code_table0 );
-    encode_split( sRC, pulses0[ 14 ], pulses1[ 7 ], SKP_Silk_shell_code_table0 );
-}
-
-
-/* Shell decoder, operates on one shell code frame of 16 pulses */
-void SKP_Silk_shell_decoder(
-    SKP_int                         *pulses0,           /* O    data: nonnegative pulse amplitudes          */
-    SKP_Silk_range_coder_state      *sRC,               /* I/O  compressor data structure                   */
-    const SKP_int                   pulses4             /* I    number of pulses per pulse-subframe         */
-)
-{
-    SKP_int pulses3[ 2 ], pulses2[ 4 ], pulses1[ 8 ];
-
-    /* this function operates on one shell code frame of 16 pulses */
-    SKP_assert( SHELL_CODEC_FRAME_LENGTH == 16 );
-
-    decode_split( &amp;pulses3[  0 ], &amp;pulses3[  1 ], sRC, pulses4,      SKP_Silk_shell_code_table3 );
-
-    decode_split( &amp;pulses2[  0 ], &amp;pulses2[  1 ], sRC, pulses3[ 0 ], SKP_Silk_shell_code_table2 );
-
-    decode_split( &amp;pulses1[  0 ], &amp;pulses1[  1 ], sRC, pulses2[ 0 ], SKP_Silk_shell_code_table1 );
-    decode_split( &amp;pulses0[  0 ], &amp;pulses0[  1 ], sRC, pulses1[ 0 ], SKP_Silk_shell_code_table0 );
-    decode_split( &amp;pulses0[  2 ], &amp;pulses0[  3 ], sRC, pulses1[ 1 ], SKP_Silk_shell_code_table0 );
-
-    decode_split( &amp;pulses1[  2 ], &amp;pulses1[  3 ], sRC, pulses2[ 1 ], SKP_Silk_shell_code_table1 );
-    decode_split( &amp;pulses0[  4 ], &amp;pulses0[  5 ], sRC, pulses1[ 2 ], SKP_Silk_shell_code_table0 );
-    decode_split( &amp;pulses0[  6 ], &amp;pulses0[  7 ], sRC, pulses1[ 3 ], SKP_Silk_shell_code_table0 );
-
-    decode_split( &amp;pulses2[  2 ], &amp;pulses2[  3 ], sRC, pulses3[ 1 ], SKP_Silk_shell_code_table2 );
-
-    decode_split( &amp;pulses1[  4 ], &amp;pulses1[  5 ], sRC, pulses2[ 2 ], SKP_Silk_shell_code_table1 );
-    decode_split( &amp;pulses0[  8 ], &amp;pulses0[  9 ], sRC, pulses1[ 4 ], SKP_Silk_shell_code_table0 );
-    decode_split( &amp;pulses0[ 10 ], &amp;pulses0[ 11 ], sRC, pulses1[ 5 ], SKP_Silk_shell_code_table0 );
-
-    decode_split( &amp;pulses1[  6 ], &amp;pulses1[  7 ], sRC, pulses2[ 3 ], SKP_Silk_shell_code_table1 );
-    decode_split( &amp;pulses0[ 12 ], &amp;pulses0[ 13 ], sRC, pulses1[ 6 ], SKP_Silk_shell_code_table0 );
-    decode_split( &amp;pulses0[ 14 ], &amp;pulses0[ 15 ], sRC, pulses1[ 7 ], SKP_Silk_shell_code_table0 );
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main.h&quot;
+
+/* shell coder; pulse-subframe length is hardcoded */
+
+SKP_INLINE void combine_pulses(
+    SKP_int         *out,   /* O:   combined pulses vector [len] */
+    const SKP_int   *in,    /* I:   input vector       [2 * len] */
+    const SKP_int   len     /* I:   number of OUTPUT samples     */
+)
+{
+    SKP_int k;
+    for( k = 0; k &lt; len; k++ ) {
+        out[ k ] = in[ 2 * k ] + in[ 2 * k + 1 ];
+    }
+}
+
+SKP_INLINE void encode_split(
+    SKP_Silk_range_coder_state  *sRC,           /* I/O: compressor data structure                   */
+    const SKP_int               p_child1,       /* I:   pulse amplitude of first child subframe     */
+    const SKP_int               p,              /* I:   pulse amplitude of current subframe         */
+    const SKP_uint16            *shell_table    /* I:   table of shell cdfs                         */
+)
+{
+    const SKP_uint16 *cdf;
+
+    if( p &gt; 0 ) {
+        cdf = &amp;shell_table[ SKP_Silk_shell_code_table_offsets[ p ] ];
+        SKP_Silk_range_encoder( sRC, p_child1, cdf );
+    }
+}
+
+SKP_INLINE void decode_split(
+    SKP_int                     *p_child1,      /* O:   pulse amplitude of first child subframe     */
+    SKP_int                     *p_child2,      /* O:   pulse amplitude of second child subframe    */
+    SKP_Silk_range_coder_state  *sRC,           /* I/O: compressor data structure                   */
+    const SKP_int               p,              /* I:   pulse amplitude of current subframe         */
+    const SKP_uint16            *shell_table    /* I:   table of shell cdfs                         */
+)
+{
+    SKP_int cdf_middle;
+    const SKP_uint16 *cdf;
+
+    if( p &gt; 0 ) {
+        cdf_middle = SKP_RSHIFT( p, 1 );
+        cdf = &amp;shell_table[ SKP_Silk_shell_code_table_offsets[ p ] ];
+        SKP_Silk_range_decoder( p_child1, sRC, cdf, cdf_middle );
+        p_child2[ 0 ] = p - p_child1[ 0 ];
+    } else {
+        p_child1[ 0 ] = 0;
+        p_child2[ 0 ] = 0;
+    }
+}
+
+/* Shell encoder, operates on one shell code frame of 16 pulses */
+void SKP_Silk_shell_encoder(
+    SKP_Silk_range_coder_state      *sRC,               /* I/O  compressor data structure                   */
+    const SKP_int                   *pulses0            /* I    data: nonnegative pulse amplitudes          */
+)
+{
+    SKP_int pulses1[ 8 ], pulses2[ 4 ], pulses3[ 2 ], pulses4[ 1 ];
+
+    /* this function operates on one shell code frame of 16 pulses */
+    SKP_assert( SHELL_CODEC_FRAME_LENGTH == 16 );
+
+    /* tree representation per pulse-subframe */
+    combine_pulses( pulses1, pulses0, 8 );
+    combine_pulses( pulses2, pulses1, 4 );
+    combine_pulses( pulses3, pulses2, 2 );
+    combine_pulses( pulses4, pulses3, 1 );
+
+    encode_split( sRC, pulses3[  0 ], pulses4[ 0 ], SKP_Silk_shell_code_table3 );
+
+    encode_split( sRC, pulses2[  0 ], pulses3[ 0 ], SKP_Silk_shell_code_table2 );
+
+    encode_split( sRC, pulses1[  0 ], pulses2[ 0 ], SKP_Silk_shell_code_table1 );
+    encode_split( sRC, pulses0[  0 ], pulses1[ 0 ], SKP_Silk_shell_code_table0 );
+    encode_split( sRC, pulses0[  2 ], pulses1[ 1 ], SKP_Silk_shell_code_table0 );
+
+    encode_split( sRC, pulses1[  2 ], pulses2[ 1 ], SKP_Silk_shell_code_table1 );
+    encode_split( sRC, pulses0[  4 ], pulses1[ 2 ], SKP_Silk_shell_code_table0 );
+    encode_split( sRC, pulses0[  6 ], pulses1[ 3 ], SKP_Silk_shell_code_table0 );
+
+    encode_split( sRC, pulses2[  2 ], pulses3[ 1 ], SKP_Silk_shell_code_table2 );
+
+    encode_split( sRC, pulses1[  4 ], pulses2[ 2 ], SKP_Silk_shell_code_table1 );
+    encode_split( sRC, pulses0[  8 ], pulses1[ 4 ], SKP_Silk_shell_code_table0 );
+    encode_split( sRC, pulses0[ 10 ], pulses1[ 5 ], SKP_Silk_shell_code_table0 );
+
+    encode_split( sRC, pulses1[  6 ], pulses2[ 3 ], SKP_Silk_shell_code_table1 );
+    encode_split( sRC, pulses0[ 12 ], pulses1[ 6 ], SKP_Silk_shell_code_table0 );
+    encode_split( sRC, pulses0[ 14 ], pulses1[ 7 ], SKP_Silk_shell_code_table0 );
+}
+
+
+/* Shell decoder, operates on one shell code frame of 16 pulses */
+void SKP_Silk_shell_decoder(
+    SKP_int                         *pulses0,           /* O    data: nonnegative pulse amplitudes          */
+    SKP_Silk_range_coder_state      *sRC,               /* I/O  compressor data structure                   */
+    const SKP_int                   pulses4             /* I    number of pulses per pulse-subframe         */
+)
+{
+    SKP_int pulses3[ 2 ], pulses2[ 4 ], pulses1[ 8 ];
+
+    /* this function operates on one shell code frame of 16 pulses */
+    SKP_assert( SHELL_CODEC_FRAME_LENGTH == 16 );
+
+    decode_split( &amp;pulses3[  0 ], &amp;pulses3[  1 ], sRC, pulses4,      SKP_Silk_shell_code_table3 );
+
+    decode_split( &amp;pulses2[  0 ], &amp;pulses2[  1 ], sRC, pulses3[ 0 ], SKP_Silk_shell_code_table2 );
+
+    decode_split( &amp;pulses1[  0 ], &amp;pulses1[  1 ], sRC, pulses2[ 0 ], SKP_Silk_shell_code_table1 );
+    decode_split( &amp;pulses0[  0 ], &amp;pulses0[  1 ], sRC, pulses1[ 0 ], SKP_Silk_shell_code_table0 );
+    decode_split( &amp;pulses0[  2 ], &amp;pulses0[  3 ], sRC, pulses1[ 1 ], SKP_Silk_shell_code_table0 );
+
+    decode_split( &amp;pulses1[  2 ], &amp;pulses1[  3 ], sRC, pulses2[ 1 ], SKP_Silk_shell_code_table1 );
+    decode_split( &amp;pulses0[  4 ], &amp;pulses0[  5 ], sRC, pulses1[ 2 ], SKP_Silk_shell_code_table0 );
+    decode_split( &amp;pulses0[  6 ], &amp;pulses0[  7 ], sRC, pulses1[ 3 ], SKP_Silk_shell_code_table0 );
+
+    decode_split( &amp;pulses2[  2 ], &amp;pulses2[  3 ], sRC, pulses3[ 1 ], SKP_Silk_shell_code_table2 );
+
+    decode_split( &amp;pulses1[  4 ], &amp;pulses1[  5 ], sRC, pulses2[ 2 ], SKP_Silk_shell_code_table1 );
+    decode_split( &amp;pulses0[  8 ], &amp;pulses0[  9 ], sRC, pulses1[ 4 ], SKP_Silk_shell_code_table0 );
+    decode_split( &amp;pulses0[ 10 ], &amp;pulses0[ 11 ], sRC, pulses1[ 5 ], SKP_Silk_shell_code_table0 );
+
+    decode_split( &amp;pulses1[  6 ], &amp;pulses1[  7 ], sRC, pulses2[ 3 ], SKP_Silk_shell_code_table1 );
+    decode_split( &amp;pulses0[ 12 ], &amp;pulses0[ 13 ], sRC, pulses1[ 6 ], SKP_Silk_shell_code_table0 );
+    decode_split( &amp;pulses0[ 14 ], &amp;pulses0[ 15 ], sRC, pulses1[ 7 ], SKP_Silk_shell_code_table0 );
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_sigm_Q15c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_sigm_Q15.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_sigm_Q15.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_sigm_Q15.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,94 +1,78 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-
-
-
-
-
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_sigm_Q15.c                                                       *
- *                                                                      *
- * Approximate sigmoid function                                         *
- *                                                                      *
- * Copyright 2006 (c), Skype Limited                                    *
- * Date: 060221                                                         *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-/********************************/
-/* approximate sigmoid function */
-/********************************/
-/* fprintf(1, '%d, ', round(1024 * ([1 ./ (1 + exp(-(1:5))), 1] - 1 ./ (1 + exp(-(0:5)))))); */
-static const SKP_int32 sigm_LUT_slope_Q10[ 6 ] = {
-    237, 153, 73, 30, 12, 7
-};
-/* fprintf(1, '%d, ', round(32767 * 1 ./ (1 + exp(-(0:5))))); */
-static const SKP_int32 sigm_LUT_pos_Q15[ 6 ] = {
-    16384, 23955, 28861, 31213, 32178, 32548
-};
-/* fprintf(1, '%d, ', round(32767 * 1 ./ (1 + exp((0:5))))); */
-static const SKP_int32 sigm_LUT_neg_Q15[ 6 ] = {
-
-
-
-
-
-    16384, 8812, 3906, 1554, 589, 219
-};
-
-SKP_int SKP_Silk_sigm_Q15( SKP_int in_Q5 )
-{
-    SKP_int ind;
-
-    if( in_Q5 &lt; 0 ) {
-        /* Negative input */
-        in_Q5 = -in_Q5;
-        if( in_Q5 &gt;= 6 * 32 ) {
-            return 0;        /* Clip */
-        } else {
-            /* Linear interpolation of look up table */
-            ind = SKP_RSHIFT( in_Q5, 5 );
-            return( sigm_LUT_neg_Q15[ ind ] - SKP_SMULBB( sigm_LUT_slope_Q10[ ind ], in_Q5 &amp; 0x1F ) );
-        }
-    } else {
-        /* Positive input */
-        if( in_Q5 &gt;= 6 * 32 ) {
-            return 32767;        /* clip */
-        } else {
-            /* Linear interpolation of look up table */
-            ind = SKP_RSHIFT( in_Q5, 5 );
-            return( sigm_LUT_pos_Q15[ ind ] + SKP_SMULBB( sigm_LUT_slope_Q10[ ind ], in_Q5 &amp; 0x1F ) );
-        }
-    }
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_sigm_Q15.c                                                       *
+ *                                                                      *
+ * Approximate sigmoid function                                         *
+ *                                                                      *
+ * Copyright 2006 (c), Skype Limited                                    *
+ * Date: 060221                                                         *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+/********************************/
+/* approximate sigmoid function */
+/********************************/
+/* fprintf(1, '%d, ', round(1024 * ([1 ./ (1 + exp(-(1:5))), 1] - 1 ./ (1 + exp(-(0:5)))))); */
+static const SKP_int32 sigm_LUT_slope_Q10[ 6 ] = {
+    237, 153, 73, 30, 12, 7
+};
+/* fprintf(1, '%d, ', round(32767 * 1 ./ (1 + exp(-(0:5))))); */
+static const SKP_int32 sigm_LUT_pos_Q15[ 6 ] = {
+    16384, 23955, 28861, 31213, 32178, 32548
+};
+/* fprintf(1, '%d, ', round(32767 * 1 ./ (1 + exp((0:5))))); */
+static const SKP_int32 sigm_LUT_neg_Q15[ 6 ] = {
+    16384, 8812, 3906, 1554, 589, 219
+};
+
+SKP_int SKP_Silk_sigm_Q15( SKP_int in_Q5 ) 
+{
+    SKP_int ind;
+
+    if( in_Q5 &lt; 0 ) {
+        /* Negative input */
+        in_Q5 = -in_Q5;
+        if( in_Q5 &gt;= 6 * 32 ) {
+            return 0;        /* Clip */
+        } else {
+            /* Linear interpolation of look up table */
+            ind = SKP_RSHIFT( in_Q5, 5 );
+            return( sigm_LUT_neg_Q15[ ind ] - SKP_SMULBB( sigm_LUT_slope_Q10[ ind ], in_Q5 &amp; 0x1F ) );
+        }
+    } else {
+        /* Positive input */
+        if( in_Q5 &gt;= 6 * 32 ) {
+            return 32767;        /* clip */
+        } else {
+            /* Linear interpolation of look up table */
+            ind = SKP_RSHIFT( in_Q5, 5 );
+            return( sigm_LUT_pos_Q15[ ind ] + SKP_SMULBB( sigm_LUT_slope_Q10[ ind ], in_Q5 &amp; 0x1F ) );
+        }
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_solve_LS_FIXc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_solve_LS_FIX.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_solve_LS_FIX.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_solve_LS_FIX.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,271 +1,240 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-
-
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_main_FIX.h&quot;
-
-/*****************************/
-/* Internal function headers */
-/*****************************/
-
-typedef struct {
-    SKP_int32 Q36_part;
-    SKP_int32 Q48_part;
-} inv_D_t;
-
-/* Factorize square matrix A into LDL form */
-SKP_INLINE void SKP_Silk_LDL_factorize_FIX(
-    SKP_int32           *A,         /* I/O Pointer to Symetric Square Matrix */
-    SKP_int             M,          /* I   Size of Matrix */
-    SKP_int32           *L_Q16,     /* I/O Pointer to Square Upper triangular Matrix */
-    inv_D_t             *inv_D      /* I/O Pointer to vector holding inverted diagonal elements of D */
-);
-
-/* Solve Lx = b, when L is lower triangular and has ones on the diagonal */
-SKP_INLINE void SKP_Silk_LS_SolveFirst_FIX(
-    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
-    SKP_int             M,          /* I Dim of Matrix equation */
-    const SKP_int32     *b,         /* I b Vector */
-    SKP_int32           *x_Q16      /* O x Vector */
-);
-
-/* Solve L^t*x = b, where L is lower triangular with ones on the diagonal */
-SKP_INLINE void SKP_Silk_LS_SolveLast_FIX(
-    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
-    const SKP_int       M,          /* I Dim of Matrix equation */
-    const SKP_int32     *b,         /* I b Vector */
-    SKP_int32           *x_Q16      /* O x Vector */
-);
-
-SKP_INLINE void SKP_Silk_LS_divide_Q16_FIX(
-    SKP_int32           T[],    /* I/O Numenator vector */
-    inv_D_t             *inv_D, /* I   1 / D vector     */
-    SKP_int             M       /* I   dimension        */
-);
-
-/* Solves Ax = b, assuming A is symmetric */
-void SKP_Silk_solve_LDL_FIX(
-    SKP_int32                       *A,                 /* I    Pointer to symetric square matrix A         */
-    SKP_int                         M,                  /* I    Size of matrix                              */
-    const SKP_int32                 *b,                 /* I    Pointer to b vector                         */
-
-
-
-
-
-    SKP_int32                       *x_Q16              /* O    Pointer to x solution vector                */
-)
-{
-    SKP_int32 L_Q16[  MAX_MATRIX_SIZE * MAX_MATRIX_SIZE ];
-    SKP_int32 Y[      MAX_MATRIX_SIZE ];
-    inv_D_t   inv_D[  MAX_MATRIX_SIZE ];
-
-    SKP_assert( M &lt;= MAX_MATRIX_SIZE );
-
-    /***************************************************
-    Factorize A by LDL such that A = L*D*L',
-    where L is lower triangular with ones on diagonal
-    ****************************************************/
-    SKP_Silk_LDL_factorize_FIX( A, M, L_Q16, inv_D );
-
-    /****************************************************
-    * substitute D*L'*x = Y. ie:
-    L*D*L'*x = b =&gt; L*Y = b &lt;=&gt; Y = inv(L)*b
-    ******************************************************/
-    SKP_Silk_LS_SolveFirst_FIX( L_Q16, M, b, Y );
-
-    /****************************************************
-    D*L'*x = Y &lt;=&gt; L'*x = inv(D)*Y, because D is
-    diagonal just multiply with 1/d_i
-    ****************************************************/
-    SKP_Silk_LS_divide_Q16_FIX( Y, inv_D, M );
-
-    /****************************************************
-    x = inv(L') * inv(D) * Y
-    *****************************************************/
-    SKP_Silk_LS_SolveLast_FIX( L_Q16, M, Y, x_Q16 );
-}
-
-SKP_INLINE void SKP_Silk_LDL_factorize_FIX(
-    SKP_int32           *A,         /* I   Pointer to Symetric Square Matrix */
-    SKP_int             M,          /* I   Size of Matrix */
-    SKP_int32           *L_Q16,     /* I/O Pointer to Square Upper triangular Matrix */
-    inv_D_t             *inv_D      /* I/O Pointer to vector holding inverted diagonal elements of D */
-)
-{
-    SKP_int   i, j, k, status, loop_count;
-    const SKP_int32 *ptr1, *ptr2;
-    SKP_int32 diag_min_value, tmp_32, err;
-    SKP_int32 v_Q0[ MAX_MATRIX_SIZE ], D_Q0[ MAX_MATRIX_SIZE ];
-    SKP_int32 one_div_diag_Q36, one_div_diag_Q40, one_div_diag_Q48;
-
-    SKP_assert( M &lt;= MAX_MATRIX_SIZE );
-
-
-
-
-
-
-    status = 1;
-    diag_min_value = SKP_max_32( SKP_SMMUL( SKP_ADD_SAT32( A[ 0 ], A[ SKP_SMULBB( M, M ) - 1 ] ), FIND_LTP_COND_FAC_Q31 ), 1 &lt;&lt; 9 );
-    for( loop_count = 0; loop_count &lt; M &amp;&amp; status == 1; loop_count++ ) {
-        status = 0;
-        for( j = 0; j &lt; M; j++ ) {
-            ptr1 = matrix_adr( L_Q16, j, 0, M );
-            tmp_32 = 0;
-            for( i = 0; i &lt; j; i++ ) {
-                v_Q0[ i ] = SKP_SMULWW(         D_Q0[ i ], ptr1[ i ] ); /* Q0 */
-                tmp_32    = SKP_SMLAWW( tmp_32, v_Q0[ i ], ptr1[ i ] ); /* Q0 */
-            }
-            tmp_32 = SKP_SUB32( matrix_ptr( A, j, j, M ), tmp_32 );
-
-            if( tmp_32 &lt; diag_min_value ) {
-                tmp_32 = SKP_SUB32( SKP_SMULBB( loop_count + 1, diag_min_value ), tmp_32 );
-                /* Matrix not positive semi-definite, or ill conditioned */
-                for( i = 0; i &lt; M; i++ ) {
-                    matrix_ptr( A, i, i, M ) = SKP_ADD32( matrix_ptr( A, i, i, M ), tmp_32 );
-                }
-                status = 1;
-                break;
-            }
-            D_Q0[ j ] = tmp_32;                         /* always &lt; max(Correlation) */
-
-            /* two-step division */
-            one_div_diag_Q36 = SKP_INVERSE32_varQ( tmp_32, 36 );                    /* Q36 */
-            one_div_diag_Q40 = SKP_LSHIFT( one_div_diag_Q36, 4 );                   /* Q40 */
-            err = SKP_SUB32( 1 &lt;&lt; 24, SKP_SMULWW( tmp_32, one_div_diag_Q40 ) );     /* Q24 */
-            one_div_diag_Q48 = SKP_SMULWW( err, one_div_diag_Q40 );                 /* Q48 */
-
-            /* Save 1/Ds */
-            inv_D[ j ].Q36_part = one_div_diag_Q36;
-            inv_D[ j ].Q48_part = one_div_diag_Q48;
-
-            matrix_ptr( L_Q16, j, j, M ) = 65536; /* 1.0 in Q16 */
-            ptr1 = matrix_adr( A, j, 0, M );
-            ptr2 = matrix_adr( L_Q16, j + 1, 0, M );
-            for( i = j + 1; i &lt; M; i++ ) {
-                tmp_32 = 0;
-                for( k = 0; k &lt; j; k++ ) {
-                    tmp_32 = SKP_SMLAWW( tmp_32, v_Q0[ k ], ptr2[ k ] ); /* Q0 */
-                }
-                tmp_32 = SKP_SUB32( ptr1[ i ], tmp_32 ); /* always &lt; max(Correlation) */
-
-                /* tmp_32 / D_Q0[j] : Divide to Q16 */
-                matrix_ptr( L_Q16, i, j, M ) = SKP_ADD32( SKP_SMMUL( tmp_32, one_div_diag_Q48 ),
-                    SKP_RSHIFT( SKP_SMULWW( tmp_32, one_div_diag_Q36 ), 4 ) );
-
-
-
-
-
-
-                /* go to next column */
-                ptr2 += M;
-            }
-        }
-    }
-
-    SKP_assert( status == 0 );
-}
-
-SKP_INLINE void SKP_Silk_LS_divide_Q16_FIX(
-    SKP_int32 T[],      /* I/O Numenator vector */
-    inv_D_t *inv_D,     /* I   1 / D vector     */
-    SKP_int M           /* I   Order */
-)
-{
-    SKP_int   i;
-    SKP_int32 tmp_32;
-    SKP_int32 one_div_diag_Q36, one_div_diag_Q48;
-
-    for( i = 0; i &lt; M; i++ ) {
-        one_div_diag_Q36 = inv_D[ i ].Q36_part;
-        one_div_diag_Q48 = inv_D[ i ].Q48_part;
-
-        tmp_32 = T[ i ];
-        T[ i ] = SKP_ADD32( SKP_SMMUL( tmp_32, one_div_diag_Q48 ), SKP_RSHIFT( SKP_SMULWW( tmp_32, one_div_diag_Q36 ), 4 ) );
-    }
-}
-
-/* Solve Lx = b, when L is lower triangular and has ones on the diagonal */
-SKP_INLINE void SKP_Silk_LS_SolveFirst_FIX(
-    const SKP_int32     *L_Q16, /* I Pointer to Lower Triangular Matrix */
-    SKP_int             M,      /* I Dim of Matrix equation */
-    const SKP_int32     *b,     /* I b Vector */
-    SKP_int32           *x_Q16  /* O x Vector */
-)
-{
-    SKP_int i, j;
-    const SKP_int32 *ptr32;
-    SKP_int32 tmp_32;
-
-    for( i = 0; i &lt; M; i++ ) {
-        ptr32 = matrix_adr( L_Q16, i, 0, M );
-        tmp_32 = 0;
-        for( j = 0; j &lt; i; j++ ) {
-            tmp_32 = SKP_SMLAWW( tmp_32, ptr32[ j ], x_Q16[ j ] );
-        }
-        x_Q16[ i ] = SKP_SUB32( b[ i ], tmp_32 );
-    }
-
-
-
-
-
-}
-
-/* Solve L^t*x = b, where L is lower triangular with ones on the diagonal */
-SKP_INLINE void SKP_Silk_LS_SolveLast_FIX(
-    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
-    const SKP_int       M,          /* I Dim of Matrix equation */
-    const SKP_int32     *b,         /* I b Vector */
-    SKP_int32           *x_Q16      /* O x Vector */
-)
-{
-    SKP_int i, j;
-    const SKP_int32 *ptr32;
-    SKP_int32 tmp_32;
-
-    for( i = M - 1; i &gt;= 0; i-- ) {
-        ptr32 = matrix_adr( L_Q16, 0, i, M );
-        tmp_32 = 0;
-        for( j = M - 1; j &gt; i; j-- ) {
-            tmp_32 = SKP_SMLAWW( tmp_32, ptr32[ SKP_SMULBB( j, M ) ], x_Q16[ j ] );
-        }
-        x_Q16[ i ] = SKP_SUB32( b[ i ], tmp_32 );
-    }
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_main_FIX.h&quot;
+
+/*****************************/
+/* Internal function headers */
+/*****************************/
+
+typedef struct {
+    SKP_int32 Q36_part;
+    SKP_int32 Q48_part;
+} inv_D_t;
+
+/* Factorize square matrix A into LDL form */
+SKP_INLINE void SKP_Silk_LDL_factorize_FIX(
+    SKP_int32           *A,         /* I/O Pointer to Symetric Square Matrix */
+    SKP_int             M,          /* I   Size of Matrix */
+    SKP_int32           *L_Q16,     /* I/O Pointer to Square Upper triangular Matrix */
+    inv_D_t             *inv_D      /* I/O Pointer to vector holding inverted diagonal elements of D */
+);
+
+/* Solve Lx = b, when L is lower triangular and has ones on the diagonal */
+SKP_INLINE void SKP_Silk_LS_SolveFirst_FIX(
+    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
+    SKP_int             M,          /* I Dim of Matrix equation */
+    const SKP_int32     *b,         /* I b Vector */
+    SKP_int32           *x_Q16      /* O x Vector */  
+);
+
+/* Solve L^t*x = b, where L is lower triangular with ones on the diagonal */
+SKP_INLINE void SKP_Silk_LS_SolveLast_FIX(
+    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
+    const SKP_int       M,          /* I Dim of Matrix equation */
+    const SKP_int32     *b,         /* I b Vector */
+    SKP_int32           *x_Q16      /* O x Vector */  
+);
+
+SKP_INLINE void SKP_Silk_LS_divide_Q16_FIX(
+    SKP_int32           T[],    /* I/O Numenator vector */
+    inv_D_t             *inv_D, /* I   1 / D vector     */
+    SKP_int             M       /* I   dimension        */
+);
+
+/* Solves Ax = b, assuming A is symmetric */
+void SKP_Silk_solve_LDL_FIX(
+    SKP_int32                       *A,                 /* I    Pointer to symetric square matrix A         */
+    SKP_int                         M,                  /* I    Size of matrix                              */
+    const SKP_int32                 *b,                 /* I    Pointer to b vector                         */
+    SKP_int32                       *x_Q16              /* O    Pointer to x solution vector                */
+)
+{
+    SKP_int32 L_Q16[  MAX_MATRIX_SIZE * MAX_MATRIX_SIZE ]; 
+    SKP_int32 Y[      MAX_MATRIX_SIZE ];
+    inv_D_t   inv_D[  MAX_MATRIX_SIZE ];
+
+    SKP_assert( M &lt;= MAX_MATRIX_SIZE );
+
+    /***************************************************
+    Factorize A by LDL such that A = L*D*L',
+    where L is lower triangular with ones on diagonal
+    ****************************************************/
+    SKP_Silk_LDL_factorize_FIX( A, M, L_Q16, inv_D );
+        
+    /****************************************************
+    * substitute D*L'*x = Y. ie:
+    L*D*L'*x = b =&gt; L*Y = b &lt;=&gt; Y = inv(L)*b
+    ******************************************************/
+    SKP_Silk_LS_SolveFirst_FIX( L_Q16, M, b, Y );
+
+    /****************************************************
+    D*L'*x = Y &lt;=&gt; L'*x = inv(D)*Y, because D is 
+    diagonal just multiply with 1/d_i
+    ****************************************************/
+    SKP_Silk_LS_divide_Q16_FIX( Y, inv_D, M );
+
+    /****************************************************
+    x = inv(L') * inv(D) * Y
+    *****************************************************/
+    SKP_Silk_LS_SolveLast_FIX( L_Q16, M, Y, x_Q16 );
+}
+
+SKP_INLINE void SKP_Silk_LDL_factorize_FIX(
+    SKP_int32           *A,         /* I   Pointer to Symetric Square Matrix */
+    SKP_int             M,          /* I   Size of Matrix */
+    SKP_int32           *L_Q16,     /* I/O Pointer to Square Upper triangular Matrix */
+    inv_D_t             *inv_D      /* I/O Pointer to vector holding inverted diagonal elements of D */
+)
+{
+    SKP_int   i, j, k, status, loop_count;
+    const SKP_int32 *ptr1, *ptr2;
+    SKP_int32 diag_min_value, tmp_32, err;
+    SKP_int32 v_Q0[ MAX_MATRIX_SIZE ], D_Q0[ MAX_MATRIX_SIZE ];
+    SKP_int32 one_div_diag_Q36, one_div_diag_Q40, one_div_diag_Q48;
+
+    SKP_assert( M &lt;= MAX_MATRIX_SIZE );
+
+    status = 1;
+    diag_min_value = SKP_max_32( SKP_SMMUL( SKP_ADD_SAT32( A[ 0 ], A[ SKP_SMULBB( M, M ) - 1 ] ), FIND_LTP_COND_FAC_Q31 ), 1 &lt;&lt; 9 );
+    for( loop_count = 0; loop_count &lt; M &amp;&amp; status == 1; loop_count++ ) {
+        status = 0;
+        for( j = 0; j &lt; M; j++ ) {
+            ptr1 = matrix_adr( L_Q16, j, 0, M );
+            tmp_32 = 0;
+            for( i = 0; i &lt; j; i++ ) {
+                v_Q0[ i ] = SKP_SMULWW(         D_Q0[ i ], ptr1[ i ] ); /* Q0 */
+                tmp_32    = SKP_SMLAWW( tmp_32, v_Q0[ i ], ptr1[ i ] ); /* Q0 */
+            }
+            tmp_32 = SKP_SUB32( matrix_ptr( A, j, j, M ), tmp_32 );
+
+            if( tmp_32 &lt; diag_min_value ) {
+                tmp_32 = SKP_SUB32( SKP_SMULBB( loop_count + 1, diag_min_value ), tmp_32 );
+                /* Matrix not positive semi-definite, or ill conditioned */
+                for( i = 0; i &lt; M; i++ ) {
+                    matrix_ptr( A, i, i, M ) = SKP_ADD32( matrix_ptr( A, i, i, M ), tmp_32 );
+                }
+                status = 1;
+                break;
+            }
+            D_Q0[ j ] = tmp_32;                         /* always &lt; max(Correlation) */
+        
+            /* two-step division */
+            one_div_diag_Q36 = SKP_INVERSE32_varQ( tmp_32, 36 );                    /* Q36 */
+            one_div_diag_Q40 = SKP_LSHIFT( one_div_diag_Q36, 4 );                   /* Q40 */
+            err = SKP_SUB32( 1 &lt;&lt; 24, SKP_SMULWW( tmp_32, one_div_diag_Q40 ) );     /* Q24 */
+            one_div_diag_Q48 = SKP_SMULWW( err, one_div_diag_Q40 );                 /* Q48 */
+
+            /* Save 1/Ds */
+            inv_D[ j ].Q36_part = one_div_diag_Q36;
+            inv_D[ j ].Q48_part = one_div_diag_Q48;
+
+            matrix_ptr( L_Q16, j, j, M ) = 65536; /* 1.0 in Q16 */
+            ptr1 = matrix_adr( A, j, 0, M );
+            ptr2 = matrix_adr( L_Q16, j + 1, 0, M );
+            for( i = j + 1; i &lt; M; i++ ) { 
+                tmp_32 = 0;
+                for( k = 0; k &lt; j; k++ ) {
+                    tmp_32 = SKP_SMLAWW( tmp_32, v_Q0[ k ], ptr2[ k ] ); /* Q0 */
+                }
+                tmp_32 = SKP_SUB32( ptr1[ i ], tmp_32 ); /* always &lt; max(Correlation) */
+
+                /* tmp_32 / D_Q0[j] : Divide to Q16 */
+                matrix_ptr( L_Q16, i, j, M ) = SKP_ADD32( SKP_SMMUL( tmp_32, one_div_diag_Q48 ),
+                    SKP_RSHIFT( SKP_SMULWW( tmp_32, one_div_diag_Q36 ), 4 ) );
+
+                /* go to next column */
+                ptr2 += M; 
+            }
+        }
+    }
+
+    SKP_assert( status == 0 );
+}
+
+SKP_INLINE void SKP_Silk_LS_divide_Q16_FIX(
+    SKP_int32 T[],      /* I/O Numenator vector */
+    inv_D_t *inv_D,     /* I   1 / D vector     */
+    SKP_int M           /* I   Order */
+)
+{
+    SKP_int   i;
+    SKP_int32 tmp_32;
+    SKP_int32 one_div_diag_Q36, one_div_diag_Q48;
+
+    for( i = 0; i &lt; M; i++ ) {
+        one_div_diag_Q36 = inv_D[ i ].Q36_part;
+        one_div_diag_Q48 = inv_D[ i ].Q48_part;
+
+        tmp_32 = T[ i ];
+        T[ i ] = SKP_ADD32( SKP_SMMUL( tmp_32, one_div_diag_Q48 ), SKP_RSHIFT( SKP_SMULWW( tmp_32, one_div_diag_Q36 ), 4 ) );
+    }
+}
+
+/* Solve Lx = b, when L is lower triangular and has ones on the diagonal */
+SKP_INLINE void SKP_Silk_LS_SolveFirst_FIX(
+    const SKP_int32     *L_Q16, /* I Pointer to Lower Triangular Matrix */
+    SKP_int             M,      /* I Dim of Matrix equation */
+    const SKP_int32     *b,     /* I b Vector */
+    SKP_int32           *x_Q16  /* O x Vector */  
+)
+{
+    SKP_int i, j;
+    const SKP_int32 *ptr32;
+    SKP_int32 tmp_32;
+
+    for( i = 0; i &lt; M; i++ ) {
+        ptr32 = matrix_adr( L_Q16, i, 0, M );
+        tmp_32 = 0;
+        for( j = 0; j &lt; i; j++ ) {
+            tmp_32 = SKP_SMLAWW( tmp_32, ptr32[ j ], x_Q16[ j ] );
+        }
+        x_Q16[ i ] = SKP_SUB32( b[ i ], tmp_32 );
+    }
+}
+
+/* Solve L^t*x = b, where L is lower triangular with ones on the diagonal */
+SKP_INLINE void SKP_Silk_LS_SolveLast_FIX(
+    const SKP_int32     *L_Q16,     /* I Pointer to Lower Triangular Matrix */
+    const SKP_int       M,          /* I Dim of Matrix equation */
+    const SKP_int32     *b,         /* I b Vector */
+    SKP_int32           *x_Q16      /* O x Vector */  
+)
+{
+    SKP_int i, j;
+    const SKP_int32 *ptr32;
+    SKP_int32 tmp_32;
+
+    for( i = M - 1; i &gt;= 0; i-- ) {
+        ptr32 = matrix_adr( L_Q16, 0, i, M );
+        tmp_32 = 0;
+        for( j = M - 1; j &gt; i; j-- ) {
+            tmp_32 = SKP_SMLAWW( tmp_32, ptr32[ SKP_SMULBB( j, M ) ], x_Q16[ j ] );
+        }
+        x_Q16[ i ] = SKP_SUB32( b[ i ], tmp_32 );
+    }
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_sortc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_sort.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_sort.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_sort.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,220 +1,195 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-
-
-
-
-
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/* Insertion sort (fast for already almost sorted arrays):   */
-/* Best case:  O(n)   for an already sorted array            */
-/* Worst case: O(n^2) for an inversely sorted array          */
-/*                                                           */
-/* To be implemented:                                        */
-/* Shell short:    http://en.wikipedia.org/wiki/Shell_sort   */
-
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-void SKP_Silk_insertion_sort_increasing(
-    SKP_int32            *a,          /* I/O:  Unsorted / Sorted vector                */
-    SKP_int              *index,      /* O:    Index vector for the sorted elements    */
-    const SKP_int        L,           /* I:    Vector length                           */
-    const SKP_int        K            /* I:    Number of correctly sorted positions    */
-)
-{
-    SKP_int32    value;
-    SKP_int        i, j;
-
-    /* Safety checks */
-    SKP_assert( K &gt;  0 );
-    SKP_assert( L &gt;  0 );
-    SKP_assert( L &gt;= K );
-
-    /* Write start indices in index vector */
-    for( i = 0; i &lt; K; i++ ) {
-        index[ i ] = i;
-    }
-
-    /* Sort vector elements by value, increasing order */
-    for( i = 1; i &lt; K; i++ ) {
-        value = a[ i ];
-        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
-            a[ j + 1 ]     = a[ j ];     /* Shift value */
-            index[ j + 1 ] = index[ j ]; /* Shift index */
-        }
-        a[ j + 1 ]     = value; /* Write value */
-        index[ j + 1 ] = i;     /* Write index */
-    }
-
-
-
-
-
-    /* If less than L values are asked check the remaining values,      */
-    /* but only spend CPU to ensure that the K first values are correct */
-    for( i = K; i &lt; L; i++ ) {
-        value = a[ i ];
-        if( value &lt; a[ K - 1 ] ) {
-            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
-                a[ j + 1 ]     = a[ j ];     /* Shift value */
-                index[ j + 1 ] = index[ j ]; /* Shift index */
-            }
-            a[ j + 1 ]     = value; /* Write value */
-            index[ j + 1 ] = i;        /* Write index */
-        }
-    }
-}
-
-void SKP_Silk_insertion_sort_decreasing(
-    SKP_int              *a,          /* I/O:  Unsorted / Sorted vector                */
-    SKP_int              *index,      /* O:    Index vector for the sorted elements    */
-    const SKP_int        L,           /* I:    Vector length                           */
-    const SKP_int        K            /* I:    Number of correctly sorted positions    */
-)
-{
-    SKP_int    value;
-    SKP_int    i, j;
-
-    /* Safety checks */
-    SKP_assert( K &gt;  0 );
-    SKP_assert( L &gt;  0 );
-    SKP_assert( L &gt;= K );
-
-    /* Write start indices in index vector */
-    for( i = 0; i &lt; K; i++ ) {
-        index[ i ] = i;
-    }
-
-    /* Sort vector elements by value, decreasing order */
-    for( i = 1; i &lt; K; i++ ) {
-        value = a[ i ];
-        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
-            a[ j + 1 ]     = a[ j ];     /* Shift value */
-            index[ j + 1 ] = index[ j ]; /* Shift index */
-        }
-        a[ j + 1 ]     = value; /* Write value */
-        index[ j + 1 ] = i;     /* Write index */
-    }
-
-    /* If less than L values are asked check the remaining values,      */
-    /* but only spend CPU to ensure that the K first values are correct */
-
-
-
-
-
-    for( i = K; i &lt; L; i++ ) {
-        value = a[ i ];
-        if( value &gt; a[ K - 1 ] ) {
-            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
-                a[ j + 1 ]     = a[ j ];     /* Shift value */
-                index[ j + 1 ] = index[ j ]; /* Shift index */
-            }
-            a[ j + 1 ]     = value; /* Write value */
-            index[ j + 1 ] = i;     /* Write index */
-        }
-    }
-}
-
-void SKP_Silk_insertion_sort_decreasing_int16(
-    SKP_int16            *a,          /* I/O: Unsorted / Sorted vector              */
-    SKP_int              *index,      /* O:   Index vector for the sorted elements  */
-    const SKP_int        L,           /* I:   Vector length                         */
-    const SKP_int        K            /* I:   Number of correctly sorted positions  */
-)
-{
-    SKP_int i, j;
-    SKP_int value;
-
-    /* Safety checks */
-    SKP_assert( K &gt;  0 );
-    SKP_assert( L &gt;  0 );
-    SKP_assert( L &gt;= K );
-
-    /* Write start indices in index vector */
-    for( i = 0; i &lt; K; i++ ) {
-        index[ i ] = i;
-    }
-
-    /* Sort vector elements by value, decreasing order */
-    for( i = 1; i &lt; K; i++ ) {
-        value = a[ i ];
-        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
-            a[ j + 1 ]     = a[ j ];     /* Shift value */
-            index[ j + 1 ] = index[ j ]; /* Shift index */
-        }
-        a[ j + 1 ]     = value; /* Write value */
-        index[ j + 1 ] = i;        /* Write index */
-    }
-
-    /* If less than L values are asked check the remaining values,        */
-    /* but only spend CPU to ensure that the K first values are correct */
-    for( i = K; i &lt; L; i++ ) {
-        value = a[ i ];
-
-
-
-
-
-        if( value &gt; a[ K - 1 ] ) {
-            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
-                a[ j + 1 ]     = a[ j ];     /* Shift value */
-                index[ j + 1 ] = index[ j ]; /* Shift index */
-            }
-            a[ j + 1 ]     = value; /* Write value */
-            index[ j + 1 ] = i;        /* Write index */
-        }
-    }
-}
-
-void SKP_Silk_insertion_sort_increasing_all_values(
-     SKP_int            *a,            /* I/O:  Unsorted / Sorted vector                */
-     const SKP_int        L            /* I:    Vector length                           */
-)
-{
-    SKP_int    value;
-    SKP_int    i, j;
-
-    /* Safety checks */
-    SKP_assert( L &gt;  0 );
-
-    /* Sort vector elements by value, increasing order */
-    for( i = 1; i &lt; L; i++ ) {
-        value = a[ i ];
-        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
-            a[ j + 1 ] = a[ j ]; /* Shift value */
-        }
-        a[ j + 1 ] = value; /* Write value */
-    }
-}
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/* Insertion sort (fast for already almost sorted arrays):   */
+/* Best case:  O(n)   for an already sorted array            */
+/* Worst case: O(n^2) for an inversely sorted array          */
+/*                                                           */
+/* To be implemented:                                        */
+/* Shell short:    http://en.wikipedia.org/wiki/Shell_sort   */
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+void SKP_Silk_insertion_sort_increasing(
+    SKP_int32           *a,             /* I/O:  Unsorted / Sorted vector               */
+    SKP_int             *index,         /* O:    Index vector for the sorted elements   */
+    const SKP_int       L,              /* I:    Vector length                          */
+    const SKP_int       K               /* I:    Number of correctly sorted positions   */
+)
+{
+    SKP_int32    value;
+    SKP_int        i, j;
+
+    /* Safety checks */
+    SKP_assert( K &gt;  0 );
+    SKP_assert( L &gt;  0 );
+    SKP_assert( L &gt;= K );
+
+    /* Write start indices in index vector */
+    for( i = 0; i &lt; K; i++ ) {
+        index[ i ] = i;
+    }
+
+    /* Sort vector elements by value, increasing order */
+    for( i = 1; i &lt; K; i++ ) {
+        value = a[ i ];
+        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
+            a[ j + 1 ]     = a[ j ];     /* Shift value */
+            index[ j + 1 ] = index[ j ]; /* Shift index */
+        }
+        a[ j + 1 ]     = value; /* Write value */
+        index[ j + 1 ] = i;     /* Write index */
+    }
+
+    /* If less than L values are asked check the remaining values,      */
+    /* but only spend CPU to ensure that the K first values are correct */
+    for( i = K; i &lt; L; i++ ) {
+        value = a[ i ];
+        if( value &lt; a[ K - 1 ] ) {
+            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
+                a[ j + 1 ]     = a[ j ];     /* Shift value */
+                index[ j + 1 ] = index[ j ]; /* Shift index */
+            }
+            a[ j + 1 ]     = value; /* Write value */
+            index[ j + 1 ] = i;        /* Write index */
+        }
+    }
+}
+
+void SKP_Silk_insertion_sort_decreasing(
+    SKP_int             *a,             /* I/O: Unsorted / Sorted vector                */
+    SKP_int             *index,         /* O:   Index vector for the sorted elements    */
+    const SKP_int       L,              /* I:   Vector length                           */
+    const SKP_int       K               /* I:   Number of correctly sorted positions    */
+)
+{
+    SKP_int    value;
+    SKP_int    i, j;
+
+    /* Safety checks */
+    SKP_assert( K &gt;  0 );
+    SKP_assert( L &gt;  0 );
+    SKP_assert( L &gt;= K );
+
+    /* Write start indices in index vector */
+    for( i = 0; i &lt; K; i++ ) {
+        index[ i ] = i;
+    }
+
+    /* Sort vector elements by value, decreasing order */
+    for( i = 1; i &lt; K; i++ ) {
+        value = a[ i ];
+        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
+            a[ j + 1 ]     = a[ j ];     /* Shift value */
+            index[ j + 1 ] = index[ j ]; /* Shift index */
+        }
+        a[ j + 1 ]     = value; /* Write value */
+        index[ j + 1 ] = i;     /* Write index */
+    }
+
+    /* If less than L values are asked check the remaining values,      */
+    /* but only spend CPU to ensure that the K first values are correct */
+    for( i = K; i &lt; L; i++ ) {
+        value = a[ i ];
+        if( value &gt; a[ K - 1 ] ) {
+            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {
+                a[ j + 1 ]     = a[ j ];     /* Shift value */
+                index[ j + 1 ] = index[ j ]; /* Shift index */
+            }
+            a[ j + 1 ]     = value; /* Write value */
+            index[ j + 1 ] = i;     /* Write index */
+        }
+    }
+}
+
+void SKP_Silk_insertion_sort_decreasing_int16(
+    SKP_int16           *a,             /* I/O: Unsorted / Sorted vector                */
+    SKP_int             *index,         /* O:   Index vector for the sorted elements    */
+    const SKP_int       L,              /* I:   Vector length                           */
+    const SKP_int       K               /* I:   Number of correctly sorted positions    */
+)
+{
+    SKP_int i, j;
+    SKP_int value;
+
+    /* Safety checks */
+    SKP_assert( K &gt;  0 );
+    SKP_assert( L &gt;  0 );
+    SKP_assert( L &gt;= K );
+
+    /* Write start indices in index vector */
+    for( i = 0; i &lt; K; i++ ) {
+        index[ i ] = i;
+    }
+
+    /* Sort vector elements by value, decreasing order */
+    for( i = 1; i &lt; K; i++ ) {
+        value = a[ i ];
+        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {    
+            a[ j + 1 ]     = a[ j ];     /* Shift value */
+            index[ j + 1 ] = index[ j ]; /* Shift index */
+        }
+        a[ j + 1 ]     = value; /* Write value */
+        index[ j + 1 ] = i;     /* Write index */
+    }
+
+    /* If less than L values are asked check the remaining values,        */
+    /* but only spend CPU to ensure that the K first values are correct */
+    for( i = K; i &lt; L; i++ ) {
+        value = a[ i ];
+        if( value &gt; a[ K - 1 ] ) {
+            for( j = K - 2; ( j &gt;= 0 ) &amp;&amp; ( value &gt; a[ j ] ); j-- ) {    
+                a[ j + 1 ]     = a[ j ];     /* Shift value */
+                index[ j + 1 ] = index[ j ]; /* Shift index */
+            }
+            a[ j + 1 ]     = value; /* Write value */
+            index[ j + 1 ] = i;     /* Write index */
+        }
+    }
+}
+
+void SKP_Silk_insertion_sort_increasing_all_values(
+    SKP_int             *a,             /* I/O: Unsorted / Sorted vector                */
+    const SKP_int       L               /* I:   Vector length                           */
+)
+{
+    SKP_int    value;
+    SKP_int    i, j;
+
+    /* Safety checks */
+    SKP_assert( L &gt;  0 );
+
+    /* Sort vector elements by value, increasing order */
+    for( i = 1; i &lt; L; i++ ) {
+        value = a[ i ];
+        for( j = i - 1; ( j &gt;= 0 ) &amp;&amp; ( value &lt; a[ j ] ); j-- ) {
+            a[ j + 1 ] = a[ j ]; /* Shift value */
+        }
+        a[ j + 1 ] = value; /* Write value */
+    }
+}
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_structsh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_structs.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_structs.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_structs.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,426 +1,381 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-
-
-
-
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_STRUCTS_H
-#define SKP_SILK_STRUCTS_H
-
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-#include &quot;SKP_Silk_define.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-
-/************************************/
-/* Noise shaping quantization state */
-/************************************/
-typedef struct {
-    SKP_int16   xq[           2 * MAX_FRAME_LENGTH ]; /* Buffer for quantized output signal */
-    SKP_int32   sLTP_shp_Q10[ 2 * MAX_FRAME_LENGTH ];
-    SKP_int32   sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + MAX_LPC_ORDER ];
-    SKP_int32   sLF_AR_shp_Q12;
-    SKP_int     lagPrev;
-    SKP_int     sLTP_buf_idx;
-    SKP_int     sLTP_shp_buf_idx;
-    SKP_int32   rand_seed;
-    SKP_int32   prev_inv_gain_Q16;
-    SKP_int     rewhite_flag;
-} SKP_Silk_nsq_state; /* FIX*/
-
-/* Struct for Low BitRate Redundant (LBRR) information */
-
-
-
-
-
-typedef struct {
-    SKP_uint8   payload[ MAX_ARITHM_BYTES ];
-    SKP_int     nBytes;                         /* Number of bytes in payload                               */
-    SKP_int     usage;                          /* Tells how the payload should be used as FEC              */
-} SKP_SILK_LBRR_struct;
-
-/********************************/
-/* VAD state                    */
-/********************************/
-typedef struct {
-    SKP_int32   AnaState[ 2 ];                  /* Analysis filterbank state: 0-8 kHz                       */
-    SKP_int32   AnaState1[ 2 ];                 /* Analysis filterbank state: 0-4 kHz                       */
-    SKP_int32   AnaState2[ 2 ];                 /* Analysis filterbank state: 0-2 kHz                       */
-    SKP_int32   XnrgSubfr[ VAD_N_BANDS ];       /* Subframe energies                                        */
-    SKP_int32   NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band                       */
-    SKP_int16   HPstate;                        /* State of differentiator in the lowest band               */
-    SKP_int32   NL[ VAD_N_BANDS ];              /* Noise energy level in each band                          */
-    SKP_int32   inv_NL[ VAD_N_BANDS ];          /* Inverse noise energy level in each band                  */
-    SKP_int32   NoiseLevelBias[ VAD_N_BANDS ];  /* Noise level estimator bias/offset                        */
-    SKP_int32   counter;                        /* Frame counter used in the initial phase                  */
-} SKP_Silk_VAD_state;
-
-/*******************************/
-/* Range encoder/decoder state */
-/*******************************/
-typedef struct {
-    SKP_int32   bufferLength;
-    SKP_int32   bufferIx;
-    SKP_uint32  base_Q32;
-    SKP_uint32  range_Q16;
-    SKP_int32   error;
-    SKP_uint8   buffer[ MAX_ARITHM_BYTES ];     /* Buffer containing payload                                */
-} SKP_Silk_range_coder_state;
-
-/* Input frequency range detection struct */
-typedef struct {
-    SKP_int32                   S_HP_8_kHz[NB_SOS][ 2 ];        /* HP filter State */
-    SKP_int32                   ConsecSmplsAboveThres;
-    SKP_int32                   ActiveSpeech_ms;            /* Accumulated time with active speech */
-    SKP_int                     SWB_detected;               /* Flag to indicate SWB input */
-    SKP_int                     WB_detected;                /* Flag to indicate WB input */
-} SKP_Silk_detect_SWB_state;
-
-#if SWITCH_TRANSITION_FILTERING
-/* Variable cut-off low-pass filter state */
-typedef struct {
-    SKP_int32                   In_LP_State[ 2 ];               /* Low pass filter state */
-    SKP_int32                   transition_frame_no;        /* Counter which is mapped to a cut-off frequency */
-
-
-
-
-
-    SKP_int                     mode;                       /* Operating mode, 0: switch down, 1: switch up */
-} SKP_Silk_LP_state;
-#endif
-
-/* structure for one stage of MSVQ */
-typedef struct {
-    const SKP_int32                         nVectors;
-    const SKP_int16                         *CB_NLSF_Q15;
-    const SKP_int16                         *Rates_Q5;
-} SKP_Silk_NLSF_CB_Stage_struct;
-
-/* Structure containing NLSF MSVQ codebook */
-typedef struct {
-    const SKP_int32                         nStages;
-
-    /* Fields for (de)quantizing */
-    const SKP_Silk_NLSF_CB_Stage_struct     *CBStages;
-    const SKP_int                           *NDeltaMin_Q15;
-
-    /* Fields for arithmetic (de)coding */
-    const SKP_uint16                        *CDF;
-    const SKP_uint16 * const                *StartPtr;
-    const SKP_int                           *MiddleIx;
-} SKP_Silk_NLSF_CB_struct;
-
-/********************************/
-/* Encoder state                */
-/********************************/
-typedef struct {
-    SKP_Silk_range_coder_state      sRC;                            /* Range coder state                                                    */
-    SKP_Silk_range_coder_state      sRC_LBRR;                       /* Range coder state (for low bitrate redundancy)                       */
-#if HIGH_PASS_INPUT
-    SKP_int32                       In_HP_State[ 2 ];               /* High pass filter state                                               */
-#endif
-#if SWITCH_TRANSITION_FILTERING
-    SKP_Silk_LP_state               sLP;                            /* Low pass filter state */
-#endif
-    SKP_Silk_VAD_state              sVAD;                           /* Voice activity detector state                                        */
-
-    SKP_int                         LBRRprevLastGainIndex;
-    SKP_int                         prev_sigtype;
-    SKP_int                         typeOffsetPrev;                 /* Previous signal type and quantization offset                         */
-    SKP_int                         prevLag;
-    SKP_int                         prev_lagIndex;
-    SKP_int                         fs_kHz;                         /* Sampling frequency (kHz)                                             */
-    SKP_int                         fs_kHz_changed;                 /* Did we switch yet?                                                   */
-    SKP_int                         frame_length;                   /* Frame length (samples)                                               */
-    SKP_int                         subfr_length;                   /* Subframe length (samples)                                            */
-
-
-
-
-
-    SKP_int                         la_pitch;                       /* Look-ahead for pitch analysis (samples)                              */
-    SKP_int                         la_shape;                       /* Look-ahead for noise shape analysis (samples)                        */
-    SKP_int32                       TargetRate_bps;                 /* Target bitrate (bps)                                                 */
-    SKP_int                         PacketSize_ms;                  /* Number of milliseconds to put in each packet                         */
-    SKP_int                         PacketLoss_perc;                /* Packet loss rate measured by farend                                  */
-    SKP_int32                       frameCounter;
-    SKP_int                         Complexity;                     /* Complexity setting: 0-&gt; low; 1-&gt; medium; 2-&gt;high                     */
-    SKP_int                         nStatesDelayedDecision;         /* Number of states in delayed decision quantization                    */
-    SKP_int                         useInterpolatedNLSFs;           /* Flag for using NLSF interpolation                                    */
-    SKP_int                         shapingLPCOrder;                /* Filter order for noise shaping filters                               */
-    SKP_int                         predictLPCOrder;                /* Filter order for prediction filters                                  */
-    SKP_int                         pitchEstimationComplexity;      /* Complexity level for pitch estimator                                 */
-    SKP_int                         pitchEstimationLPCOrder;        /* Whitening filter order for pitch estimator                           */
-    SKP_int                         LTPQuantLowComplexity;          /* Flag for low complexity LTP quantization                             */
-    SKP_int                         NLSF_MSVQ_Survivors;            /* Number of survivors in NLSF MSVQ                                     */
-    SKP_int                         first_frame_after_reset;        /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
-
-    /* Input/output buffering */
-    SKP_int16                       inputBuf[ MAX_FRAME_LENGTH ];   /* buffer containin input signal                                        */
-    SKP_int                         inputBufIx;
-    SKP_int                         nFramesInPayloadBuf;            /* number of frames sitting in outputBuf                                */
-    SKP_int                         nBytesInPayloadBuf;             /* number of bytes sitting in outputBuf                                 */
-
-    /* Parameters For LTP scaling Control */
-    SKP_int                         frames_since_onset;
-
-    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB[ 2 ];                /* Pointers to voiced/unvoiced NLSF codebooks */
-
-    /* Struct for Inband LBRR */
-    SKP_SILK_LBRR_struct            LBRR_buffer[ MAX_LBRR_DELAY ];
-    SKP_int                         oldest_LBRR_idx;
-    SKP_int                         LBRR_enabled;
-    SKP_int                         LBRR_GainIncreases;             /* Number of shifts to Gains to get LBRR rate Voiced frames             */
-
-    /* Bitrate control */
-    SKP_int32                       bitrateDiff;                    /* accumulated diff. between the target bitrate and the SWB/WB limits   */
-
-#if LOW_COMPLEXITY_ONLY
-    /* state for downsampling from 24 to 16 kHz in low complexity mode */
-    SKP_int16                       resample24To16state[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-#else
-    SKP_int32                       resample24To16state[ 11 ];      /* state for downsampling from 24 to 16 kHz                             */
-#endif
-    SKP_int32                       resample24To12state[ 6 ];       /* state for downsampling from 24 to 12 kHz                             */
-    SKP_int32                       resample24To8state[ 7 ];        /* state for downsampling from 24 to  8 kHz                             */
-    SKP_int32                       resample16To12state[ 15 ];      /* state for downsampling from 16 to 12 kHz                             */
-    SKP_int32                       resample16To8state[ 6 ];        /* state for downsampling from 16 to  8 kHz                             */
-#if LOW_COMPLEXITY_ONLY
-
-
-
-
-
-    /* state for downsampling from 12 to 8 kHz in low complexity mode */
-    SKP_int16                       resample12To8state[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
-#else
-    SKP_int32                       resample12To8state[ 11 ];       /* state for downsampling from 12 to  8 kHz                             */
-#endif
-
-    /* DTX */
-    SKP_int                         noSpeechCounter;                /* Counts concecutive nonactive frames, used by DTX                     */
-    SKP_int                         useDTX;                         /* Flag to enable DTX                                                   */
-    SKP_int                         inDTX;                          /* Flag to signal DTX period                                            */
-    SKP_int                         vadFlag;                        /* Flag to indicate Voice Activity                                      */
-
-    /* Struct for detecting SWB input */
-    SKP_Silk_detect_SWB_state       sSWBdetect;
-
-
-    /********************************************/
-    /* Buffers etc used by the new bitstream V4 */
-    /********************************************/
-    SKP_int                         q[ MAX_FRAME_LENGTH * MAX_FRAMES_PER_PACKET ];      /* pulse signal buffer */
-    SKP_int                         q_LBRR[ MAX_FRAME_LENGTH * MAX_FRAMES_PER_PACKET ]; /* pulse signal buffer */
-    SKP_int                         sigtype[ MAX_FRAMES_PER_PACKET ];
-    SKP_int                         QuantOffsetType[ MAX_FRAMES_PER_PACKET ];
-    SKP_int                         extension_layer;                                    /* Add extension layer      */
-    SKP_int                         bitstream_v;                                        /* Holds bitstream version  */
-} SKP_Silk_encoder_state;
-
-
-/************************/
-/* Encoder control      */
-/************************/
-typedef struct {
-    /* Quantization indices */
-    SKP_int     lagIndex;
-    SKP_int     contourIndex;
-    SKP_int     PERIndex;
-    SKP_int     LTPIndex[ NB_SUBFR ];
-    SKP_int     NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ];  /* NLSF path of quantized LSF vector   */
-    SKP_int     NLSFInterpCoef_Q2;
-    SKP_int     GainsIndices[ NB_SUBFR ];
-    SKP_int32   Seed;
-    SKP_int     LTP_scaleIndex;
-    SKP_int     RateLevelIndex;
-    SKP_int     QuantOffsetType;
-    SKP_int     sigtype;
-
-    /* Prediction and coding parameters */
-    SKP_int     pitchL[ NB_SUBFR ];
-
-
-
-
-
-    SKP_int     LBRR_usage;                     /* Low bitrate redundancy usage                             */
-} SKP_Silk_encoder_control;
-
-/* Struct for Packet Loss Concealment */
-typedef struct {
-    SKP_int32   pitchL_Q8;                      /* Pitch lag to use for voiced concealment                  */
-    SKP_int16   LTPCoef_Q14[ LTP_ORDER ];       /* LTP coeficients to use for voiced concealment            */
-    SKP_int16   prevLPC_Q12[ MAX_LPC_ORDER ];
-    SKP_int     last_frame_lost;                /* Was previous frame lost                                  */
-    SKP_int32   rand_seed;                      /* Seed for unvoiced signal generation                      */
-    SKP_int16   randScale_Q14;                  /* Scaling of unvoiced random signal                        */
-    SKP_int32   conc_energy;
-    SKP_int     conc_energy_shift;
-    SKP_int16   prevLTP_scale_Q14;
-    SKP_int32   prevGain_Q16[ NB_SUBFR ];
-    SKP_int     fs_kHz;
-} SKP_Silk_PLC_struct;
-
-/* Struct for CNG */
-typedef struct {
-    SKP_int32   CNG_exc_buf_Q10[ MAX_FRAME_LENGTH ];
-    SKP_int     CNG_smth_NLSF_Q15[ MAX_LPC_ORDER ];
-    SKP_int32   CNG_synth_state[ MAX_LPC_ORDER ];
-    SKP_int32   CNG_smth_Gain_Q16;
-    SKP_int32   rand_seed;
-    SKP_int     fs_kHz;
-} SKP_Silk_CNG_struct;
-
-/********************************/
-/* Decoder state                */
-/********************************/
-typedef struct {
-    SKP_Silk_range_coder_state  sRC;                            /* Range coder state                                                    */
-    SKP_int32       prev_inv_gain_Q16;
-    SKP_int32       sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
-    SKP_int32       sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + MAX_LPC_ORDER ];
-    SKP_int32       exc_Q10[ MAX_FRAME_LENGTH ];
-    SKP_int32       res_Q10[ MAX_FRAME_LENGTH ];
-    SKP_int16       outBuf[ 2 * MAX_FRAME_LENGTH ];             /* Buffer for output signal                                             */
-    SKP_int         sLTP_buf_idx;                               /* LTP_buf_index                                                        */
-    SKP_int         lagPrev;                                    /* Previous Lag                                                         */
-    SKP_int         LastGainIndex;                              /* Previous gain index                                                  */
-    SKP_int         LastGainIndex_EnhLayer;                     /* Previous gain index                                                  */
-    SKP_int         typeOffsetPrev;                             /* Previous signal type and quantization offset                         */
-    SKP_int32       HPState[ DEC_HP_ORDER ];                    /* HP filter state                                                      */
-    const SKP_int16 *HP_A;                                      /* HP filter AR coefficients                                            */
-    const SKP_int16 *HP_B;                                      /* HP filter MA coefficients                                            */
-    SKP_int         fs_kHz;                                     /* Sampling frequency in kHz                                            */
-
-
-
-
-
-    SKP_int         frame_length;                               /* Frame length (samples)                                               */
-    SKP_int         subfr_length;                               /* Subframe length (samples)                                            */
-    SKP_int         LPC_order;                                  /* LPC order                                                            */
-    SKP_int         prevNLSF_Q15[ MAX_LPC_ORDER ];              /* Used to interpolate LSFs                                             */
-    SKP_int         first_frame_after_reset;                    /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
-
-    /* For buffering payload in case of more frames per packet */
-    SKP_int         nBytesLeft;
-    SKP_int         nFramesDecoded;
-    SKP_int         nFramesInPacket;
-    SKP_int         InternalDecoderFrames;
-    SKP_int         FrameTermination;
-
-    SKP_int32       resampleState[ 15 ];
-
-    const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ];      /* Pointers to voiced/unvoiced NLSF codebooks */
-
-    SKP_int         sigtype[               MAX_FRAMES_PER_PACKET ];
-    SKP_int         QuantOffsetType[       MAX_FRAMES_PER_PACKET ];
-    SKP_int         GainsIndices[          MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
-    SKP_int         GainsIndices_EnhLayer[ MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
-    SKP_int         NLSFIndices[           MAX_FRAMES_PER_PACKET ][ NLSF_MSVQ_MAX_CB_STAGES ];
-    SKP_int         NLSFInterpCoef_Q2[     MAX_FRAMES_PER_PACKET ];
-    SKP_int         lagIndex[              MAX_FRAMES_PER_PACKET ];
-    SKP_int         contourIndex[          MAX_FRAMES_PER_PACKET ];
-    SKP_int         PERIndex[              MAX_FRAMES_PER_PACKET ];
-    SKP_int         LTPIndex[              MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
-    SKP_int         LTP_scaleIndex[        MAX_FRAMES_PER_PACKET ];
-    SKP_int         Seed[                  MAX_FRAMES_PER_PACKET ];
-    SKP_int         vadFlagBuf[            MAX_FRAMES_PER_PACKET ];
-
-    /* Parameters used to investigate if inband FEC is used */
-    SKP_int         vadFlag;
-    SKP_int         no_fec_counter;                             /* Counts number of frames wo inband FEC                                */
-    SKP_int         inband_fec_offset;                          /* 0: no FEC, 1: FEC with 1 packet offset, 2: FEC w 2 packets offset    */
-
-    /* CNG state */
-    SKP_Silk_CNG_struct sCNG;
-
-    /* Stuff used for PLC */
-    SKP_Silk_PLC_struct sPLC;
-    SKP_int         lossCnt;
-    SKP_int         prev_sigtype;                               /* Previous sigtype                                                     */
-#ifdef USE_INTERPOLATION_PLC
-    SKP_int16       prevQuant[ MAX_FRAME_LENGTH ];
-    SKP_int         prevPitchL[ NB_SUBFR ];                     /* Previous Lags used                                                   */
-    SKP_int16       prevLTPCoef_Q14[ NB_SUBFR * LTP_ORDER ];    /* Previous LTCoefs used                                                */
-    SKP_int16       prevAR_Q12[ MAX_LPC_ORDER ];
-
-
-
-
-
-    SKP_int         interpolDistance;                           /* Number of frames between old and new recieved packet                 */
-#endif
-
-
-
-
-    SKP_int                 bitstream_v;                        /* Holds bitstream version                                              */
-} SKP_Silk_decoder_state;
-
-/************************/
-/* Decoder control      */
-/************************/
-typedef struct {
-    /* prediction and coding parameters */
-    SKP_int             pitchL[ NB_SUBFR ];
-    SKP_int32           Gains_Q16[ NB_SUBFR ];
-    SKP_int32           Seed;
-    /* holds interpolated and final coefficients, 4-byte aligned */
-    SKP_array_of_int16_4_byte_aligned( PredCoef_Q12[ 2 ], MAX_LPC_ORDER );
-    SKP_int16           LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ];
-    SKP_int             LTP_scale_Q14;
-
-    /* quantization indices */
-    SKP_int             PERIndex;
-    SKP_int             RateLevelIndex;
-    SKP_int             QuantOffsetType;
-    SKP_int             sigtype;
-    SKP_int             NLSFInterpCoef_Q2;
-} SKP_Silk_decoder_control;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_STRUCTS_H
+#define SKP_SILK_STRUCTS_H
+
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+#include &quot;SKP_Silk_define.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+
+/************************************/
+/* Noise shaping quantization state */
+/************************************/
+typedef struct {
+    SKP_int16   xq[           2 * MAX_FRAME_LENGTH ]; /* Buffer for quantized output signal */
+    SKP_int32   sLTP_shp_Q10[ 2 * MAX_FRAME_LENGTH ];
+    SKP_int32   sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + MAX_LPC_ORDER ];
+    SKP_int32   sLF_AR_shp_Q12;
+    SKP_int     lagPrev;
+    SKP_int     sLTP_buf_idx;
+    SKP_int     sLTP_shp_buf_idx;
+    SKP_int32   rand_seed;
+    SKP_int32   prev_inv_gain_Q16;
+    SKP_int     rewhite_flag;
+} SKP_Silk_nsq_state; /* FIX*/
+
+/* Struct for Low BitRate Redundant (LBRR) information */
+typedef struct {
+    SKP_uint8   payload[ MAX_ARITHM_BYTES ];    
+    SKP_int     nBytes;                         /* Number of bytes in payload                               */
+    SKP_int     usage;                          /* Tells how the payload should be used as FEC              */
+} SKP_SILK_LBRR_struct;
+
+/********************************/
+/* VAD state                    */
+/********************************/
+typedef struct {
+    SKP_int32   AnaState[ 2 ];                  /* Analysis filterbank state: 0-8 kHz                       */
+    SKP_int32   AnaState1[ 2 ];                 /* Analysis filterbank state: 0-4 kHz                       */
+    SKP_int32   AnaState2[ 2 ];                 /* Analysis filterbank state: 0-2 kHz                       */
+    SKP_int32   XnrgSubfr[ VAD_N_BANDS ];       /* Subframe energies                                        */
+    SKP_int32   NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band                       */
+    SKP_int16   HPstate;                        /* State of differentiator in the lowest band               */
+    SKP_int32   NL[ VAD_N_BANDS ];              /* Noise energy level in each band                          */
+    SKP_int32   inv_NL[ VAD_N_BANDS ];          /* Inverse noise energy level in each band                  */
+    SKP_int32   NoiseLevelBias[ VAD_N_BANDS ];  /* Noise level estimator bias/offset                        */
+    SKP_int32   counter;                        /* Frame counter used in the initial phase                  */
+} SKP_Silk_VAD_state;
+
+/*******************************/
+/* Range encoder/decoder state */
+/*******************************/
+typedef struct {
+    SKP_int32   bufferLength;
+    SKP_int32   bufferIx;
+    SKP_uint32  base_Q32;
+    SKP_uint32  range_Q16;
+    SKP_int32   error;
+    SKP_uint8   buffer[ MAX_ARITHM_BYTES ];     /* Buffer containing payload                                */
+} SKP_Silk_range_coder_state;
+
+/* Input frequency range detection struct */
+typedef struct {
+    SKP_int32                   S_HP_8_kHz[ NB_SOS ][ 2 ];  /* HP filter State */
+    SKP_int32                   ConsecSmplsAboveThres;
+    SKP_int32                   ActiveSpeech_ms;            /* Accumulated time with active speech */
+    SKP_int                     SWB_detected;               /* Flag to indicate SWB input */
+    SKP_int                     WB_detected;                /* Flag to indicate WB input */
+} SKP_Silk_detect_SWB_state;
+
+#if SWITCH_TRANSITION_FILTERING
+/* Variable cut-off low-pass filter state */
+typedef struct {
+    SKP_int32                   In_LP_State[ 2 ];           /* Low pass filter state */
+    SKP_int32                   transition_frame_no;        /* Counter which is mapped to a cut-off frequency */
+    SKP_int                     mode;                       /* Operating mode, 0: switch down, 1: switch up */
+} SKP_Silk_LP_state;
+#endif
+
+/* Structure for one stage of MSVQ */
+typedef struct {
+    const SKP_int32             nVectors;
+    const SKP_int16             *CB_NLSF_Q15;
+    const SKP_int16             *Rates_Q5;
+} SKP_Silk_NLSF_CBS;
+
+/* Structure containing NLSF MSVQ codebook */
+typedef struct {
+    const SKP_int32             nStages;
+
+    /* Fields for (de)quantizing */
+    const SKP_Silk_NLSF_CBS     *CBStages;
+    const SKP_int               *NDeltaMin_Q15;
+
+    /* Fields for arithmetic (de)coding */
+    const SKP_uint16            *CDF;
+    const SKP_uint16 * const    *StartPtr;
+    const SKP_int               *MiddleIx;
+} SKP_Silk_NLSF_CB_struct;
+
+/********************************/
+/* Encoder state                */
+/********************************/
+typedef struct {
+    SKP_Silk_range_coder_state      sRC;                            /* Range coder state                                                    */
+    SKP_Silk_range_coder_state      sRC_LBRR;                       /* Range coder state (for low bitrate redundancy)                       */
+#if HIGH_PASS_INPUT
+    SKP_int32                       In_HP_State[ 2 ];               /* High pass filter state                                               */
+#endif
+#if SWITCH_TRANSITION_FILTERING
+    SKP_Silk_LP_state               sLP;                            /* Low pass filter state */
+#endif
+    SKP_Silk_VAD_state              sVAD;                           /* Voice activity detector state                                        */
+
+    SKP_int                         LBRRprevLastGainIndex;
+    SKP_int                         prev_sigtype;
+    SKP_int                         typeOffsetPrev;                 /* Previous signal type and quantization offset                         */
+    SKP_int                         prevLag;
+    SKP_int                         prev_lagIndex;
+    SKP_int                         fs_kHz;                         /* Sampling frequency (kHz)                                             */
+    SKP_int                         fs_kHz_changed;                 /* Did we switch yet?                                                   */
+    SKP_int                         frame_length;                   /* Frame length (samples)                                               */
+    SKP_int                         subfr_length;                   /* Subframe length (samples)                                            */
+    SKP_int                         la_pitch;                       /* Look-ahead for pitch analysis (samples)                              */
+    SKP_int                         la_shape;                       /* Look-ahead for noise shape analysis (samples)                        */
+    SKP_int32                       TargetRate_bps;                 /* Target bitrate (bps)                                                 */
+    SKP_int                         PacketSize_ms;                  /* Number of milliseconds to put in each packet                         */
+    SKP_int                         PacketLoss_perc;                /* Packet loss rate measured by farend                                  */
+    SKP_int32                       frameCounter;
+    SKP_int                         Complexity;                     /* Complexity setting: 0-&gt; low; 1-&gt; medium; 2-&gt;high                     */
+    SKP_int                         nStatesDelayedDecision;         /* Number of states in delayed decision quantization                    */
+    SKP_int                         useInterpolatedNLSFs;           /* Flag for using NLSF interpolation                                    */
+    SKP_int                         shapingLPCOrder;                /* Filter order for noise shaping filters                               */
+    SKP_int                         predictLPCOrder;                /* Filter order for prediction filters                                  */
+    SKP_int                         pitchEstimationComplexity;      /* Complexity level for pitch estimator                                 */
+    SKP_int                         pitchEstimationLPCOrder;        /* Whitening filter order for pitch estimator                           */
+    SKP_int                         LTPQuantLowComplexity;          /* Flag for low complexity LTP quantization                             */
+    SKP_int                         NLSF_MSVQ_Survivors;            /* Number of survivors in NLSF MSVQ                                     */
+    SKP_int                         first_frame_after_reset;        /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
+
+    /* Input/output buffering */
+    SKP_int16                       inputBuf[ MAX_FRAME_LENGTH ];   /* buffer containin input signal                                        */
+    SKP_int                         inputBufIx;
+    SKP_int                         nFramesInPayloadBuf;            /* number of frames sitting in outputBuf                                */
+    SKP_int                         nBytesInPayloadBuf;             /* number of bytes sitting in outputBuf                                 */
+
+    /* Parameters For LTP scaling Control */
+    SKP_int                         frames_since_onset;
+
+    const SKP_Silk_NLSF_CB_struct   *psNLSF_CB[ 2 ];                /* Pointers to voiced/unvoiced NLSF codebooks */
+
+    /* Struct for Inband LBRR */ 
+    SKP_SILK_LBRR_struct            LBRR_buffer[ MAX_LBRR_DELAY ];
+    SKP_int                         oldest_LBRR_idx;
+    SKP_int                         LBRR_enabled;
+    SKP_int                         LBRR_GainIncreases;             /* Number of shifts to Gains to get LBRR rate Voiced frames             */
+
+    /* Bitrate control */
+    SKP_int32                       bitrateDiff;                    /* accumulated diff. between the target bitrate and the SWB/WB limits   */
+
+#if LOW_COMPLEXITY_ONLY
+    /* state for downsampling from 24 to 16 kHz in low complexity mode */
+    SKP_int16                       resample24To16state[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];
+#else
+    SKP_int32                       resample24To16state[ 11 ];      /* state for downsampling from 24 to 16 kHz                             */
+#endif
+    SKP_int32                       resample24To12state[ 6 ];       /* state for downsampling from 24 to 12 kHz                             */
+    SKP_int32                       resample24To8state[ 7 ];        /* state for downsampling from 24 to  8 kHz                             */
+    SKP_int32                       resample16To12state[ 15 ];      /* state for downsampling from 16 to 12 kHz                             */
+    SKP_int32                       resample16To8state[ 6 ];        /* state for downsampling from 16 to  8 kHz                             */
+#if LOW_COMPLEXITY_ONLY
+    /* state for downsampling from 12 to 8 kHz in low complexity mode */
+    SKP_int16                       resample12To8state[ SigProc_Resample_2_3_coarse_NUM_FIR_COEFS - 1 ];    
+#else
+    SKP_int32                       resample12To8state[ 11 ];       /* state for downsampling from 12 to  8 kHz                             */
+#endif
+
+    /* DTX */
+    SKP_int                         noSpeechCounter;                /* Counts concecutive nonactive frames, used by DTX                     */
+    SKP_int                         useDTX;                         /* Flag to enable DTX                                                   */
+    SKP_int                         inDTX;                          /* Flag to signal DTX period                                            */
+    SKP_int                         vadFlag;                        /* Flag to indicate Voice Activity                                      */
+
+    /* Struct for detecting SWB input */
+    SKP_Silk_detect_SWB_state       sSWBdetect;
+
+
+    /********************************************/
+    /* Buffers etc used by the new bitstream V4 */
+    /********************************************/
+    SKP_int                         q[ MAX_FRAME_LENGTH * MAX_FRAMES_PER_PACKET ];      /* pulse signal buffer */
+    SKP_int                         q_LBRR[ MAX_FRAME_LENGTH * MAX_FRAMES_PER_PACKET ]; /* pulse signal buffer */
+    SKP_int                         sigtype[ MAX_FRAMES_PER_PACKET ];
+    SKP_int                         QuantOffsetType[ MAX_FRAMES_PER_PACKET ];
+    SKP_int                         extension_layer;                                    /* Add extension layer      */
+    SKP_int                         bitstream_v;                                        /* Holds bitstream version  */
+} SKP_Silk_encoder_state;
+
+
+/************************/
+/* Encoder control      */
+/************************/
+typedef struct {
+    /* Quantization indices */
+    SKP_int     lagIndex;
+    SKP_int     contourIndex;
+    SKP_int     PERIndex;
+    SKP_int     LTPIndex[ NB_SUBFR ];
+    SKP_int     NLSFIndices[ NLSF_MSVQ_MAX_CB_STAGES ];  /* NLSF path of quantized LSF vector   */
+    SKP_int     NLSFInterpCoef_Q2;
+    SKP_int     GainsIndices[ NB_SUBFR ];
+    SKP_int32   Seed;
+    SKP_int     LTP_scaleIndex;
+    SKP_int     RateLevelIndex;
+    SKP_int     QuantOffsetType;
+    SKP_int     sigtype;
+
+    /* Prediction and coding parameters */
+    SKP_int     pitchL[ NB_SUBFR ];
+
+    SKP_int     LBRR_usage;                     /* Low bitrate redundancy usage                             */
+} SKP_Silk_encoder_control;
+
+/* Struct for Packet Loss Concealment */
+typedef struct {
+    SKP_int32   pitchL_Q8;                      /* Pitch lag to use for voiced concealment                  */
+    SKP_int16   LTPCoef_Q14[ LTP_ORDER ];       /* LTP coeficients to use for voiced concealment            */
+    SKP_int16   prevLPC_Q12[ MAX_LPC_ORDER ];
+    SKP_int     last_frame_lost;                /* Was previous frame lost                                  */
+    SKP_int32   rand_seed;                      /* Seed for unvoiced signal generation                      */
+    SKP_int16   randScale_Q14;                  /* Scaling of unvoiced random signal                        */
+    SKP_int32   conc_energy;
+    SKP_int     conc_energy_shift;
+    SKP_int16   prevLTP_scale_Q14;
+    SKP_int32   prevGain_Q16[ NB_SUBFR ];
+    SKP_int     fs_kHz;
+} SKP_Silk_PLC_struct;
+
+/* Struct for CNG */
+typedef struct {
+    SKP_int32   CNG_exc_buf_Q10[ MAX_FRAME_LENGTH ];
+    SKP_int     CNG_smth_NLSF_Q15[ MAX_LPC_ORDER ];
+    SKP_int32   CNG_synth_state[ MAX_LPC_ORDER ];
+    SKP_int32   CNG_smth_Gain_Q16;
+    SKP_int32   rand_seed;
+    SKP_int     fs_kHz;
+} SKP_Silk_CNG_struct;
+
+/********************************/
+/* Decoder state                */
+/********************************/
+typedef struct {
+    SKP_Silk_range_coder_state  sRC;                            /* Range coder state                                                    */
+    SKP_int32       prev_inv_gain_Q16;
+    SKP_int32       sLTP_Q16[ 2 * MAX_FRAME_LENGTH ];
+    SKP_int32       sLPC_Q14[ MAX_FRAME_LENGTH / NB_SUBFR + MAX_LPC_ORDER ];
+    SKP_int32       exc_Q10[ MAX_FRAME_LENGTH ];
+    SKP_int32       res_Q10[ MAX_FRAME_LENGTH ];
+    SKP_int16       outBuf[ 2 * MAX_FRAME_LENGTH ];             /* Buffer for output signal                                             */
+    SKP_int         sLTP_buf_idx;                               /* LTP_buf_index                                                        */
+    SKP_int         lagPrev;                                    /* Previous Lag                                                         */
+    SKP_int         LastGainIndex;                              /* Previous gain index                                                  */
+    SKP_int         LastGainIndex_EnhLayer;                     /* Previous gain index                                                  */
+    SKP_int         typeOffsetPrev;                             /* Previous signal type and quantization offset                         */
+    SKP_int32       HPState[ DEC_HP_ORDER ];                    /* HP filter state                                                      */
+    const SKP_int16 *HP_A;                                      /* HP filter AR coefficients                                            */
+    const SKP_int16 *HP_B;                                      /* HP filter MA coefficients                                            */
+    SKP_int         fs_kHz;                                     /* Sampling frequency in kHz                                            */
+    SKP_int         frame_length;                               /* Frame length (samples)                                               */
+    SKP_int         subfr_length;                               /* Subframe length (samples)                                            */
+    SKP_int         LPC_order;                                  /* LPC order                                                            */
+    SKP_int         prevNLSF_Q15[ MAX_LPC_ORDER ];              /* Used to interpolate LSFs                                             */
+    SKP_int         first_frame_after_reset;                    /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
+
+    /* For buffering payload in case of more frames per packet */
+    SKP_int         nBytesLeft;
+    SKP_int         nFramesDecoded;
+    SKP_int         nFramesInPacket;
+    SKP_int         moreInternalDecoderFrames;
+    SKP_int         FrameTermination;
+
+    SKP_int32       resampleState[ 15 ];
+
+    const SKP_Silk_NLSF_CB_struct *psNLSF_CB[ 2 ];      /* Pointers to voiced/unvoiced NLSF codebooks */
+
+    SKP_int         sigtype[               MAX_FRAMES_PER_PACKET ];
+    SKP_int         QuantOffsetType[       MAX_FRAMES_PER_PACKET ];
+    SKP_int         GainsIndices[          MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
+    SKP_int         GainsIndices_EnhLayer[ MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
+    SKP_int         NLSFIndices[           MAX_FRAMES_PER_PACKET ][ NLSF_MSVQ_MAX_CB_STAGES ];
+    SKP_int         NLSFInterpCoef_Q2[     MAX_FRAMES_PER_PACKET ];
+    SKP_int         lagIndex[              MAX_FRAMES_PER_PACKET ];
+    SKP_int         contourIndex[          MAX_FRAMES_PER_PACKET ];
+    SKP_int         PERIndex[              MAX_FRAMES_PER_PACKET ];
+    SKP_int         LTPIndex[              MAX_FRAMES_PER_PACKET ][ NB_SUBFR ];
+    SKP_int         LTP_scaleIndex[        MAX_FRAMES_PER_PACKET ];
+    SKP_int         Seed[                  MAX_FRAMES_PER_PACKET ];
+    SKP_int         vadFlagBuf[            MAX_FRAMES_PER_PACKET ];
+    
+    /* Parameters used to investigate if inband FEC is used */
+    SKP_int         vadFlag;
+    SKP_int         no_FEC_counter;                             /* Counts number of frames wo inband FEC                                */
+    SKP_int         inband_FEC_offset;                          /* 0: no FEC, 1: FEC with 1 packet offset, 2: FEC w 2 packets offset    */ 
+
+    /* CNG state */
+    SKP_Silk_CNG_struct sCNG;
+
+    /* Stuff used for PLC */
+    SKP_Silk_PLC_struct sPLC;
+    SKP_int         lossCnt;
+    SKP_int         prev_sigtype;                               /* Previous sigtype                                                     */
+#ifdef USE_INTERPOLATION_PLC
+    SKP_int16       prevQuant[ MAX_FRAME_LENGTH ];
+    SKP_int         prevPitchL[ NB_SUBFR ];                     /* Previous Lags used                                                   */
+    SKP_int16       prevLTPCoef_Q14[ NB_SUBFR * LTP_ORDER ];    /* Previous LTCoefs used                                                */
+    SKP_int16       prevAR_Q12[ MAX_LPC_ORDER ];
+    SKP_int         interpolDistance;                           /* Number of frames between old and new recieved packet                 */
+#endif
+
+
+
+
+    SKP_int                 bitstream_v;                        /* Holds bitstream version                                              */
+} SKP_Silk_decoder_state;
+
+/************************/
+/* Decoder control      */
+/************************/
+typedef struct {
+    /* prediction and coding parameters */
+    SKP_int             pitchL[ NB_SUBFR ];
+    SKP_int32           Gains_Q16[ NB_SUBFR ];
+    SKP_int32           Seed;
+    /* holds interpolated and final coefficients, 4-byte aligned */
+    SKP_array_of_int16_4_byte_aligned( PredCoef_Q12[ 2 ], MAX_LPC_ORDER );
+    SKP_int16           LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ];
+    SKP_int             LTP_scale_Q14;
+
+    /* quantization indices */
+    SKP_int             PERIndex;
+    SKP_int             RateLevelIndex;
+    SKP_int             QuantOffsetType;
+    SKP_int             sigtype;
+    SKP_int             NLSFInterpCoef_Q2;
+} SKP_Silk_decoder_control;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_structs_FIXh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_structs_FIX.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_structs_FIX.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_structs_FIX.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,221 +1,195 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-
-
-
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_STRUCTS_FIX_H
-#define SKP_SILK_STRUCTS_FIX_H
-
-#include &quot;SKP_Silk_typedef.h&quot;
-#include &quot;SKP_Silk_define_FIX.h&quot;
-#include &quot;SKP_Silk_main.h&quot;
-#include &quot;SKP_Silk_structs.h&quot;
-
-#if LOW_COMPLEXITY_ONLY
-#include &quot;SKP_Silk_resample_rom.h&quot;
-#endif
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/********************************/
-/* Noise shaping analysis state */
-/********************************/
-typedef struct {
-    SKP_int     LastGainIndex;
-    SKP_int32   HarmBoost_smth_Q16;
-    SKP_int32   HarmShapeGain_smth_Q16;
-    SKP_int32   Tilt_smth_Q16;
-} SKP_Silk_shape_state_FIX;
-
-
-
-
-
-
-/********************************/
-/* Prefilter state              */
-/********************************/
-typedef struct {
-    SKP_int16   sLTP_shp1[ LTP_BUF_LENGTH ];
-    SKP_int32   sAR_shp2_Q14[ SHAPE_LPC_ORDER_MAX ];
-    SKP_int16   sLTP_shp2_FIX[ LTP_BUF_LENGTH ];
-    SKP_int     sLTP_shp_buf_idx1;
-    SKP_int     sAR_shp_buf_idx2;
-    SKP_int     sLTP_shp_buf_idx2;
-    SKP_int32   sLF_AR_shp1_Q12;
-    SKP_int32   sLF_MA_shp1_Q12;
-    SKP_int32   sLF_AR_shp2_Q12;
-    SKP_int32   sLF_MA_shp2_Q12;
-    SKP_int     sHarmHP;
-    SKP_int32   rand_seed;
-    SKP_int     lagPrev;
-} SKP_Silk_prefilter_state_FIX;
-
-/*****************************/
-/* Prediction analysis state */
-/*****************************/
-typedef struct {
-    SKP_int   pitch_LPC_win_length;
-    SKP_int   min_pitch_lag;                                        /* Lowest possible pitch lag (samples)  */
-    SKP_int   max_pitch_lag;                                        /* Highest possible pitch lag (samples) */
-    SKP_int   prev_NLSFq_Q15[ MAX_LPC_ORDER ];                      /* Prev. quant. normalized LSF vector   */
-} SKP_Silk_predict_state_FIX;
-
-#if( defined( SAVE_ALL_INTERNAL_DATA ) || defined( USE_FLT2FIX_WRAPPER ) )
-/*******************************************/
-/* Structure containing NLSF MSVQ codebook */
-/*******************************************/
-/* structure for one stage of MSVQ */
-typedef struct {
-    const SKP_int32     nVectors;
-    const SKP_float     *CB;
-    const SKP_float     *Rates;
-} SKP_Silk_NLSF_CB_Stage_struct_FLP_TMP;
-
-typedef struct {
-    const SKP_int32                     nStages;
-
-    /* fields for (de)quantizing */
-    const SKP_Silk_NLSF_CB_Stage_struct_FLP_TMP *CBStages;
-    const SKP_float                     *NDeltaMin;
-
-    /* fields for arithmetic (de)coding */
-
-
-
-
-
-    const SKP_uint16                    *CDF;
-    const SKP_uint16 * const            *StartPtr;
-    const SKP_int                       *MiddleIx;
-} SKP_Silk_NLSF_CB_struct_FLP_TMP;
-#endif
-
-/********************************/
-/* Encoder state FIX            */
-/********************************/
-typedef struct {
-    SKP_Silk_encoder_state          sCmn;                           /* Common struct, shared with floating-point code */
-
-#if HIGH_PASS_INPUT
-    SKP_int32                       variable_HP_smth1_Q15;          /* State of first smoother                                              */
-    SKP_int32                       variable_HP_smth2_Q15;          /* State of second smoother                                             */
-#endif
-    SKP_Silk_shape_state_FIX        sShape;                         /* Shape state                                                          */
-    SKP_Silk_prefilter_state_FIX    sPrefilt;                       /* Prefilter State                                                      */
-    SKP_Silk_predict_state_FIX      sPred;                          /* Prediction state                                                     */
-    SKP_Silk_nsq_state              sNSQ;                           /* Noise Shape Quantizer State                                          */
-    SKP_Silk_nsq_state              sNSQ_LBRR;                      /* Noise Shape Quantizer State ( for low bitrate redundancy )           */
-
-    /* Function pointer to noise shaping quantizer (will be set to SKP_Silk_NSQ or SKP_Silk_NSQ_del_dec) */
-    void    (* NoiseShapingQuantizer)( SKP_Silk_encoder_state *, SKP_Silk_encoder_control *, SKP_Silk_nsq_state *, const SKP_int16 *,
-                                        SKP_int *, const SKP_int, const SKP_int16 *, const SKP_int16 *, const SKP_int16 *, const SKP_int *,
-                                        const SKP_int *, const SKP_int32 *, const SKP_int32 *, SKP_int, const SKP_int
-    );
-
-    /* Buffer for find pitch and noise shape analysis */
-    SKP_array_of_int16_4_byte_aligned( x_buf, 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX );
-    SKP_int                         LTPCorr_Q15;                    /* Normalized correlation from pitch lag estimator                      */
-    SKP_int                         mu_LTP_Q8;                      /* Rate-distortion tradeoff in LTP quantization                         */
-    SKP_int32                       SNR_dB_Q7;                      /* Quality setting                                                      */
-    SKP_int32                       avgGain_Q16;                    /* average gain during active speech                                    */
-    SKP_int32                       avgGain_Q16_one_bit_per_sample; /* average gain during active speech                                    */
-    SKP_int                         BufferedInChannel_ms;           /* Simulated number of ms buffer because of exceeded TargetRate_bps     */
-    SKP_int                         speech_activity_Q8;             /* Speech activity in Q8                                                */
-    SKP_int32                       pitchEstimationThreshold_Q16;   /* Threshold for pitch estimator                                        */
-
-    /* Parameters For LTP scaling Control */
-    SKP_int                         prevLTPredCodGain_Q7;
-    SKP_int                         HPLTPredCodGain_Q7;
-
-    SKP_int32                       inBandFEC_SNR_comp_Q8;          /* Compensation to SNR_dB when using inband FEC Voiced      */
-
-#ifdef USE_FLT2FIX_WRAPPER
-    const SKP_Silk_NLSF_CB_struct_FLP_TMP *psNLSF_CB_FLP[ 2 ];      /* Pointers to voiced/unvoiced NLSF codebooks */
-#endif
-
-
-
-
-
-} SKP_Silk_encoder_state_FIX;
-
-/************************/
-/* Encoder control FIX  */
-/************************/
-typedef struct {
-    SKP_Silk_encoder_control        sCmn;                           /* Common struct, shared with floating-point code */
-
-    /* Prediction and coding parameters */
-    SKP_int32                   Gains_Q16[ NB_SUBFR ];
-    SKP_array_of_int16_4_byte_aligned( PredCoef_Q12[ 2 ], MAX_LPC_ORDER );
-    SKP_int16                   LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ];
-    SKP_int                     LTP_scale_Q14;
-
-    /* Noise shaping parameters */
-    /* Testing */
-    SKP_array_of_int16_4_byte_aligned( AR1_Q13, NB_SUBFR * SHAPE_LPC_ORDER_MAX );
-    SKP_array_of_int16_4_byte_aligned( AR2_Q13, NB_SUBFR * SHAPE_LPC_ORDER_MAX );
-    SKP_int32   LF_shp_Q14[        NB_SUBFR ];          /* Packs two int16 coefficients per int32 value             */
-    SKP_int     GainsPre_Q14[      NB_SUBFR ];
-    SKP_int     HarmBoost_Q14[     NB_SUBFR ];
-    SKP_int     Tilt_Q14[          NB_SUBFR ];
-    SKP_int     HarmShapeGain_Q14[ NB_SUBFR ];
-    SKP_int     Lambda_Q10;
-    SKP_int     input_quality_Q14;
-    SKP_int     coding_quality_Q14;
-    SKP_int32   pitch_freq_low_Hz;
-    SKP_int     current_SNR_dB_Q7;
-
-    /* measures */
-    SKP_int     sparseness_Q8;
-    SKP_int     LTPredCodGain_Q7;
-    SKP_int     input_quality_bands_Q15[ VAD_N_BANDS ];
-    SKP_int     input_tilt_Q15;
-    SKP_int32   ResNrg[ NB_SUBFR ];             /* Residual energy per subframe                             */
-    SKP_int     ResNrgQ[ NB_SUBFR ];            /* Q domain for the residual energy &gt; 0                     */
-
-} SKP_Silk_encoder_control_FIX;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_STRUCTS_FIX_H
+#define SKP_SILK_STRUCTS_FIX_H
+
+#include &quot;SKP_Silk_typedef.h&quot;
+#include &quot;SKP_Silk_define_FIX.h&quot;
+#include &quot;SKP_Silk_main.h&quot;
+#include &quot;SKP_Silk_structs.h&quot;
+
+#if LOW_COMPLEXITY_ONLY
+#include &quot;SKP_Silk_resample_rom.h&quot;
+#endif
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/********************************/
+/* Noise shaping analysis state */
+/********************************/
+typedef struct {
+    SKP_int     LastGainIndex;
+    SKP_int32   HarmBoost_smth_Q16;
+    SKP_int32   HarmShapeGain_smth_Q16;
+    SKP_int32   Tilt_smth_Q16;
+} SKP_Silk_shape_state_FIX;
+
+/********************************/
+/* Prefilter state              */
+/********************************/
+typedef struct {
+    SKP_int16   sLTP_shp1[ LTP_BUF_LENGTH ];
+    SKP_int32   sAR_shp2_Q14[ SHAPE_LPC_ORDER_MAX ];
+    SKP_int16   sLTP_shp2_FIX[ LTP_BUF_LENGTH ];
+    SKP_int     sLTP_shp_buf_idx1;
+    SKP_int     sAR_shp_buf_idx2;
+    SKP_int     sLTP_shp_buf_idx2;
+    SKP_int32   sLF_AR_shp1_Q12;
+    SKP_int32   sLF_MA_shp1_Q12;
+    SKP_int32   sLF_AR_shp2_Q12;
+    SKP_int32   sLF_MA_shp2_Q12;
+    SKP_int     sHarmHP;
+    SKP_int32   rand_seed;
+    SKP_int     lagPrev;
+} SKP_Silk_prefilter_state_FIX;
+
+/*****************************/
+/* Prediction analysis state */
+/*****************************/
+typedef struct {
+    SKP_int   pitch_LPC_win_length;
+    SKP_int   min_pitch_lag;                                        /* Lowest possible pitch lag (samples)  */
+    SKP_int   max_pitch_lag;                                        /* Highest possible pitch lag (samples) */
+    SKP_int   prev_NLSFq_Q15[ MAX_LPC_ORDER ];                      /* Prev. quant. normalized LSF vector   */
+} SKP_Silk_predict_state_FIX;
+
+#if( defined( SAVE_ALL_INTERNAL_DATA ) || defined( USE_FLT2FIX_WRAPPER ) )
+/*******************************************/
+/* Structure containing NLSF MSVQ codebook */
+/*******************************************/
+/* structure for one stage of MSVQ */
+typedef struct {
+    const SKP_int32     nVectors;
+    const SKP_float     *CB;
+    const SKP_float     *Rates;
+} SKP_Silk_NLSF_CBS_FLP_TMP;
+
+typedef struct {
+    const SKP_int32                 nStages;
+
+    /* fields for (de)quantizing */
+    const SKP_Silk_NLSF_CBS_FLP_TMP *CBStages;
+    const SKP_float                 *NDeltaMin;
+
+    /* fields for arithmetic (de)coding */
+    const SKP_uint16                *CDF;
+    const SKP_uint16 * const        *StartPtr;
+    const SKP_int                   *MiddleIx;
+} SKP_Silk_NLSF_CB_struct_FLP_TMP;
+#endif
+
+/********************************/
+/* Encoder state FIX            */
+/********************************/
+typedef struct {
+    SKP_Silk_encoder_state          sCmn;                           /* Common struct, shared with floating-point code */
+
+#if HIGH_PASS_INPUT
+    SKP_int32                       variable_HP_smth1_Q15;          /* State of first smoother                                              */
+    SKP_int32                       variable_HP_smth2_Q15;          /* State of second smoother                                             */
+#endif
+    SKP_Silk_shape_state_FIX        sShape;                         /* Shape state                                                          */
+    SKP_Silk_prefilter_state_FIX    sPrefilt;                       /* Prefilter State                                                      */
+    SKP_Silk_predict_state_FIX      sPred;                          /* Prediction state                                                     */
+    SKP_Silk_nsq_state              sNSQ;                           /* Noise Shape Quantizer State                                          */
+    SKP_Silk_nsq_state              sNSQ_LBRR;                      /* Noise Shape Quantizer State ( for low bitrate redundancy )           */
+    
+    /* Function pointer to noise shaping quantizer (will be set to SKP_Silk_NSQ or SKP_Silk_NSQ_del_dec) */
+    void    (* NoiseShapingQuantizer)( SKP_Silk_encoder_state *, SKP_Silk_encoder_control *, SKP_Silk_nsq_state *, const SKP_int16 *, 
+                                        SKP_int *, const SKP_int, const SKP_int16 *, const SKP_int16 *, const SKP_int16 *, const SKP_int *, 
+                                        const SKP_int *, const SKP_int32 *, const SKP_int32 *, SKP_int, const SKP_int
+    );
+
+    /* Buffer for find pitch and noise shape analysis */
+    SKP_array_of_int16_4_byte_aligned( x_buf, 2 * MAX_FRAME_LENGTH + LA_SHAPE_MAX );    
+    SKP_int                         LTPCorr_Q15;                    /* Normalized correlation from pitch lag estimator                      */
+    SKP_int                         mu_LTP_Q8;                      /* Rate-distortion tradeoff in LTP quantization                         */
+    SKP_int32                       SNR_dB_Q7;                      /* Quality setting                                                      */
+    SKP_int32                       avgGain_Q16;                    /* average gain during active speech                                    */
+    SKP_int32                       avgGain_Q16_one_bit_per_sample; /* average gain during active speech                                    */
+    SKP_int                         BufferedInChannel_ms;           /* Simulated number of ms buffer because of exceeded TargetRate_bps     */
+    SKP_int                         speech_activity_Q8;             /* Speech activity in Q8                                                */
+    SKP_int32                       pitchEstimationThreshold_Q16;   /* Threshold for pitch estimator                                        */
+    
+    /* Parameters For LTP scaling Control */
+    SKP_int                         prevLTPredCodGain_Q7;
+    SKP_int                         HPLTPredCodGain_Q7;
+
+    SKP_int32                       inBandFEC_SNR_comp_Q8;          /* Compensation to SNR_dB when using inband FEC Voiced      */
+
+#ifdef USE_FLT2FIX_WRAPPER
+    const SKP_Silk_NLSF_CB_struct_FLP_TMP *psNLSF_CB_FLP[ 2 ];      /* Pointers to voiced/unvoiced NLSF codebooks */    
+#endif
+} SKP_Silk_encoder_state_FIX;
+
+/************************/
+/* Encoder control FIX  */
+/************************/
+typedef struct {
+    SKP_Silk_encoder_control        sCmn;                           /* Common struct, shared with floating-point code */
+
+    /* Prediction and coding parameters */
+    SKP_int32                   Gains_Q16[ NB_SUBFR ];
+    SKP_array_of_int16_4_byte_aligned( PredCoef_Q12[ 2 ], MAX_LPC_ORDER );
+    SKP_int16                   LTPCoef_Q14[ LTP_ORDER * NB_SUBFR ];
+    SKP_int                     LTP_scale_Q14;
+
+    /* Noise shaping parameters */
+    /* Testing */
+    SKP_array_of_int16_4_byte_aligned( AR1_Q13, NB_SUBFR * SHAPE_LPC_ORDER_MAX );
+    SKP_array_of_int16_4_byte_aligned( AR2_Q13, NB_SUBFR * SHAPE_LPC_ORDER_MAX );
+    SKP_int32   LF_shp_Q14[        NB_SUBFR ];          /* Packs two int16 coefficients per int32 value             */
+    SKP_int     GainsPre_Q14[      NB_SUBFR ];
+    SKP_int     HarmBoost_Q14[     NB_SUBFR ];
+    SKP_int     Tilt_Q14[          NB_SUBFR ];
+    SKP_int     HarmShapeGain_Q14[ NB_SUBFR ];
+    SKP_int     Lambda_Q10;
+    SKP_int     input_quality_Q14;
+    SKP_int     coding_quality_Q14;
+    SKP_int32   pitch_freq_low_Hz;
+    SKP_int     current_SNR_dB_Q7;
+
+    /* measures */
+    SKP_int     sparseness_Q8;
+    SKP_int     LTPredCodGain_Q7;
+    SKP_int     input_quality_bands_Q15[ VAD_N_BANDS ];
+    SKP_int     input_tilt_Q15;
+    SKP_int32   ResNrg[ NB_SUBFR ];             /* Residual energy per subframe                             */
+    SKP_int     ResNrgQ[ NB_SUBFR ];            /* Q domain for the residual energy &gt; 0                     */
+    
+} SKP_Silk_encoder_control_FIX;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_sum_sqr_shiftc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_sum_sqr_shift.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_sum_sqr_shift.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_sum_sqr_shift.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,117 +1,98 @@
</span><del>-
-
-
-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/*                                                                      *
- * SKP_Silk_sum_sqr_shift.c                                           *
- *                                                                      *
- * compute number of bits to right shift the sum of squares of a vector *
- * of int16s to make it fit in an int32                                 *
- *                                                                      *
- * Copyright 2006-2008 (c), Skype Limited                               *
- *                                                                      */
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-/* Compute number of bits to right shift the sum of squares of a vector */
-/* of int16s to make it fit in an int32                                 */
-void SKP_Silk_sum_sqr_shift(
-    SKP_int32            *energy,            /* O    Energy of x, after shifting to the right            */
-    SKP_int              *shift,             /* O    Number of bits right shift applied to energy        */
-    const SKP_int16      *x,                 /* I    Input vector                                        */
-    SKP_int              len                 /* I    Length of input vector                              */
-)
-{
-    SKP_int   i, shft;
-
-
-
-
-
-    SKP_int32 in32, nrg_tmp, nrg;
-
-    if( (SKP_int32)( (SKP_int_ptr_size)x &amp; 2 ) != 0 ) {
-        /* Input is not 4-byte aligned */
-        nrg = SKP_SMULBB( x[ 0 ], x[ 0 ] );
-        i = 1;
-    } else {
-        nrg = 0;
-        i   = 0;
-    }
-    shft = 0;
-    len--;
-    for( ; i &lt; len; i += 2 ) {
-        /* Load two values at once */
-        in32 = *( (SKP_int32 *)&amp;x[ i ] );
-        nrg = SKP_SMLABB_ovflw( nrg, in32, in32 );
-        nrg = SKP_SMLATT_ovflw( nrg, in32, in32 );
-        if( nrg &lt; 0 ) {
-            /* Scale down */
-            nrg = (SKP_int32)SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
-            shft = 2;
-            break;
-        }
-    }
-    for( ; i &lt; len; i += 2 ) {
-        /* Load two values at once */
-        in32 = *( (SKP_int32 *)&amp;x[ i ] );
-        nrg_tmp = SKP_SMULBB( in32, in32 );
-        nrg_tmp = SKP_SMLATT_ovflw( nrg_tmp, in32, in32 );
-        nrg = (SKP_int32)SKP_ADD_RSHIFT_uint( nrg, (SKP_uint32)nrg_tmp, shft );
-        if( nrg &lt; 0 ) {
-            /* Scale down */
-            nrg = (SKP_int32)SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
-            shft += 2;
-        }
-    }
-    if( i == len ) {
-        /* One sample left to process */
-        nrg_tmp = SKP_SMULBB( x[ i ], x[ i ] );
-        nrg = (SKP_int32)SKP_ADD_RSHIFT_uint( nrg, nrg_tmp, shft );
-    }
-
-    /* Make sure to have at least one extra leading zero (two leading zeros in total) */
-    if( nrg &amp; 0xC0000000 ) {
-        nrg = SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
-        shft += 2;
-    }
-
-
-
-
-
-
-    /* Output arguments */
-    *shift  = shft;
-    *energy = nrg;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*                                                                      *
+ * SKP_Silk_sum_sqr_shift.c                                           *
+ *                                                                      *
+ * compute number of bits to right shift the sum of squares of a vector *
+ * of int16s to make it fit in an int32                                 *
+ *                                                                      *
+ * Copyright 2006-2008 (c), Skype Limited                               *
+ *                                                                      */
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+/* Compute number of bits to right shift the sum of squares of a vector */
+/* of int16s to make it fit in an int32                                 */
+void SKP_Silk_sum_sqr_shift(
+    SKP_int32            *energy,            /* O    Energy of x, after shifting to the right            */
+    SKP_int              *shift,             /* O    Number of bits right shift applied to energy        */
+    const SKP_int16      *x,                 /* I    Input vector                                        */
+    SKP_int              len                 /* I    Length of input vector                              */
+)
+{
+    SKP_int   i, shft;
+    SKP_int32 in32, nrg_tmp, nrg;
+
+    if( (SKP_int32)( (SKP_int_ptr_size)x &amp; 2 ) != 0 ) {
+        /* Input is not 4-byte aligned */
+        nrg = SKP_SMULBB( x[ 0 ], x[ 0 ] );
+        i = 1;
+    } else {
+        nrg = 0;
+        i   = 0;
+    }
+    shft = 0;
+    len--;
+    for( ; i &lt; len; i += 2 ) {
+        /* Load two values at once */
+        in32 = *( (SKP_int32 *)&amp;x[ i ] );
+        nrg = SKP_SMLABB_ovflw( nrg, in32, in32 );
+        nrg = SKP_SMLATT_ovflw( nrg, in32, in32 );
+        if( nrg &lt; 0 ) {
+            /* Scale down */
+            nrg = (SKP_int32)SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
+            shft = 2;
+            break;
+        }
+    }
+    for( ; i &lt; len; i += 2 ) {
+        /* Load two values at once */
+        in32 = *( (SKP_int32 *)&amp;x[ i ] );
+        nrg_tmp = SKP_SMULBB( in32, in32 );
+        nrg_tmp = SKP_SMLATT_ovflw( nrg_tmp, in32, in32 );
+        nrg = (SKP_int32)SKP_ADD_RSHIFT_uint( nrg, (SKP_uint32)nrg_tmp, shft );
+        if( nrg &lt; 0 ) {
+            /* Scale down */
+            nrg = (SKP_int32)SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
+            shft += 2;
+        }
+    }
+    if( i == len ) {
+        /* One sample left to process */
+        nrg_tmp = SKP_SMULBB( x[ i ], x[ i ] );
+        nrg = (SKP_int32)SKP_ADD_RSHIFT_uint( nrg, nrg_tmp, shft );
+    }
+
+    /* Make sure to have at least one extra leading zero (two leading zeros in total) */
+    if( nrg &amp; 0xC0000000 ) {
+        nrg = SKP_RSHIFT_uint( (SKP_uint32)nrg, 2 );
+        shft += 2;
+    }
+
+    /* Output arguments */
+    *shift  = shft;
+    *energy = nrg;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tablesh"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,205 +1,171 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_TABLES_H
-#define SKP_SILK_TABLES_H
-
-#include &quot;SKP_Silk_define.h&quot;
-
-#define PITCH_EST_MAX_LAG_MS                18          /* 18 ms -&gt; 56 Hz */
-#define PITCH_EST_MIN_LAG_MS                2           /* 2 ms -&gt; 500 Hz */
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-
-
-
-
-
-{
-#endif
-
-/* entropy coding tables */
-extern const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ];                                              /*   5 */
-extern const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ];                                   /*  20 */
-extern const SKP_int    SKP_Silk_type_offset_CDF_offset;
-
-extern const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ N_LEVELS_QGAIN + 1 ];                               /* 130 */
-extern const SKP_int    SKP_Silk_gain_CDF_offset;
-extern const SKP_uint16 SKP_Silk_delta_gain_CDF[ MAX_DELTA_GAIN_QUANT - MIN_DELTA_GAIN_QUANT + 2 ]; /*  46 */
-extern const SKP_int    SKP_Silk_delta_gain_CDF_offset;
-
-extern const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];   /* 130 */
-extern const SKP_int    SKP_Silk_pitch_lag_NB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];  /* 194 */
-extern const SKP_int    SKP_Silk_pitch_lag_MB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];  /* 258 */
-extern const SKP_int    SKP_Silk_pitch_lag_WB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 386 */
-extern const SKP_int    SKP_Silk_pitch_lag_SWB_CDF_offset;
-
-extern const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ];                                           /*  35 */
-extern const SKP_int    SKP_Silk_pitch_contour_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ];                                        /*  12 */
-extern const SKP_int    SKP_Silk_pitch_contour_NB_CDF_offset;
-extern const SKP_uint16 SKP_Silk_pitch_delta_CDF[23];                                               /* 23 */
-extern const SKP_int    SKP_Silk_pitch_delta_CDF_offset;
-
-extern const SKP_uint16 SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS ][ MAX_PULSES + 3 ];           /* 210 */
-extern const SKP_int    SKP_Silk_pulses_per_block_CDF_offset;
-extern const SKP_int16  SKP_Silk_pulses_per_block_BITS_Q6[ N_RATE_LEVELS - 1 ][ MAX_PULSES + 2 ];   /* 180 */
-
-extern const SKP_uint16 SKP_Silk_rate_levels_CDF[ 2 ][ N_RATE_LEVELS ];                             /*  20 */
-extern const SKP_int    SKP_Silk_rate_levels_CDF_offset;
-extern const SKP_int16  SKP_Silk_rate_levels_BITS_Q6[ 2 ][ N_RATE_LEVELS - 1 ];                     /*  18 */
-
-extern const SKP_int    SKP_Silk_max_pulses_table[ 4 ];                                             /*   4 */
-
-extern const SKP_uint16 SKP_Silk_shell_code_table0[  33 ];                                          /*  33 */
-extern const SKP_uint16 SKP_Silk_shell_code_table1[  52 ];                                          /*  52 */
-extern const SKP_uint16 SKP_Silk_shell_code_table2[ 102 ];                                          /* 102 */
-extern const SKP_uint16 SKP_Silk_shell_code_table3[ 207 ];                                          /* 207 */
-extern const SKP_uint16 SKP_Silk_shell_code_table_offsets[ 19 ];                                    /*  19 */
-
-extern const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ];                                                      /*   3 */
-
-extern const SKP_uint16 SKP_Silk_sign_CDF[ 36 ][ 3 ];                                               /* 108 */
-
-
-
-
-
-extern const SKP_uint16 SKP_Silk_LTP_per_index_CDF[ 4 ];                                            /*   4 */
-extern const SKP_int    SKP_Silk_LTP_per_index_CDF_offset;
-extern const SKP_int16  * const SKP_Silk_LTP_gain_BITS_Q6_ptrs[ NB_LTP_CBKS ];                      /*   3 */
-extern const SKP_uint16 * const SKP_Silk_LTP_gain_CDF_ptrs[ NB_LTP_CBKS ];                          /*   3 */
-extern const SKP_int    SKP_Silk_LTP_gain_CDF_offsets[ NB_LTP_CBKS ];                               /*   3 */
-extern const SKP_int32  SKP_Silk_LTP_gain_middle_avg_RD_Q14;
-extern const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ];                                                 /*   4 */
-extern const SKP_int    SKP_Silk_LTPscale_offset;
-
-/* Tables for LTPScale */
-extern const SKP_int16  SKP_Silk_LTPScales_table_Q14[ 3 ];
-
-extern const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ];                                                  /*   3 */
-extern const SKP_int    SKP_Silk_vadflag_offset;
-
-extern const SKP_int    SKP_Silk_SamplingRates_table[ 4 ];                                          /*   4 */
-extern const SKP_uint16 SKP_Silk_SamplingRates_CDF[ 5 ];                                            /*   5 */
-extern const SKP_int    SKP_Silk_SamplingRates_offset;
-
-extern const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ];
-extern const SKP_int    SKP_Silk_NLSF_interpolation_factor_offset;
-
-/* quantization tables */
-extern const SKP_int16 * const SKP_Silk_LTP_vq_ptrs_Q14[ NB_LTP_CBKS ];                             /* 168 */
-extern const SKP_int    SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ];                                       /*   3 */
-
-/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
-extern const SKP_int32  TargetRate_table_NB[  TARGET_RATE_TAB_SZ ];
-extern const SKP_int32  TargetRate_table_MB[  TARGET_RATE_TAB_SZ ];
-extern const SKP_int32  TargetRate_table_WB[  TARGET_RATE_TAB_SZ ];
-extern const SKP_int32  TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ];
-extern const SKP_int32  SNR_table_Q1[         TARGET_RATE_TAB_SZ ];
-
-extern const SKP_int32  SNR_table_one_bit_per_sample_Q7[ 4 ];
-
-/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters  */
-extern const SKP_int16  SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ];
-extern const SKP_int16  SKP_Silk_SWB_detect_A_HP_Q13[ NB_SOS ][ 2 ];
-
-/* Decoder high-pass filter coefficients for 24 kHz sampling */
-extern const SKP_int16  SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ];                                       /*   2 */
-extern const SKP_int16  SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ];                                   /*   3 */
-
-/* Decoder high-pass filter coefficients for 16 kHz sampling */
-extern const SKP_int16  SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ];                                       /*   2 */
-extern const SKP_int16  SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ];                                   /*   3 */
-
-/* Decoder high-pass filter coefficients for 12 kHz sampling */
-
-
-
-
-
-extern const SKP_int16  SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ];                                       /*   2 */
-extern const SKP_int16  SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ];                                   /*   3 */
-
-/* Decoder high-pass filter coefficients for 8 kHz sampling */
-extern const SKP_int16  SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ];                                        /*   2 */
-extern const SKP_int16  SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ];                                    /*   3 */
-
-/* Table for frame termination indication */
-extern const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 5 ];
-extern const SKP_int    SKP_Silk_FrameTermination_offset;
-
-extern const SKP_uint16 SKP_Silk_FrameTermination_v4_CDF[ 6 ];
-extern const SKP_int    SKP_Silk_FrameTermination_v4_offset;
-
-/* Table for random seed */
-extern const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ];
-extern const SKP_int    SKP_Silk_Seed_offset;
-
-/* Quantization offsets */
-extern const SKP_int16  SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ];
-
-#if SWITCH_TRANSITION_FILTERING
-/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
-extern const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ];
-extern const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ];
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_TABLES_H
+#define SKP_SILK_TABLES_H
+
+#include &quot;SKP_Silk_define.h&quot;
+#include &quot;SKP_Silk_structs.h&quot;
+
+#define PITCH_EST_MAX_LAG_MS                18          /* 18 ms -&gt; 56 Hz */
+#define PITCH_EST_MIN_LAG_MS                2           /* 2 ms -&gt; 500 Hz */
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* entropy coding tables */
+extern const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ];                                              /*   5 */
+extern const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ];                                   /*  20 */
+extern const SKP_int    SKP_Silk_type_offset_CDF_offset;
+
+extern const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ N_LEVELS_QGAIN + 1 ];                               /* 130 */
+extern const SKP_int    SKP_Silk_gain_CDF_offset;
+extern const SKP_uint16 SKP_Silk_delta_gain_CDF[ MAX_DELTA_GAIN_QUANT - MIN_DELTA_GAIN_QUANT + 2 ]; /*  46 */
+extern const SKP_int    SKP_Silk_delta_gain_CDF_offset;
+
+extern const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];   /* 130 */
+extern const SKP_int    SKP_Silk_pitch_lag_NB_CDF_offset;
+extern const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];  /* 194 */
+extern const SKP_int    SKP_Silk_pitch_lag_MB_CDF_offset;
+extern const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ];  /* 258 */
+extern const SKP_int    SKP_Silk_pitch_lag_WB_CDF_offset;
+extern const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ]; /* 386 */
+extern const SKP_int    SKP_Silk_pitch_lag_SWB_CDF_offset;
+
+extern const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ];                                           /*  35 */
+extern const SKP_int    SKP_Silk_pitch_contour_CDF_offset;
+extern const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ];                                        /*  12 */
+extern const SKP_int    SKP_Silk_pitch_contour_NB_CDF_offset;
+extern const SKP_uint16 SKP_Silk_pitch_delta_CDF[23];                                               /* 23 */
+extern const SKP_int    SKP_Silk_pitch_delta_CDF_offset;
+
+extern const SKP_uint16 SKP_Silk_pulses_per_block_CDF[ N_RATE_LEVELS ][ MAX_PULSES + 3 ];           /* 210 */
+extern const SKP_int    SKP_Silk_pulses_per_block_CDF_offset;
+extern const SKP_int16  SKP_Silk_pulses_per_block_BITS_Q6[ N_RATE_LEVELS - 1 ][ MAX_PULSES + 2 ];   /* 180 */
+
+extern const SKP_uint16 SKP_Silk_rate_levels_CDF[ 2 ][ N_RATE_LEVELS ];                             /*  20 */
+extern const SKP_int    SKP_Silk_rate_levels_CDF_offset;
+extern const SKP_int16  SKP_Silk_rate_levels_BITS_Q6[ 2 ][ N_RATE_LEVELS - 1 ];                     /*  18 */
+
+extern const SKP_int    SKP_Silk_max_pulses_table[ 4 ];                                             /*   4 */
+
+extern const SKP_uint16 SKP_Silk_shell_code_table0[  33 ];                                          /*  33 */
+extern const SKP_uint16 SKP_Silk_shell_code_table1[  52 ];                                          /*  52 */
+extern const SKP_uint16 SKP_Silk_shell_code_table2[ 102 ];                                          /* 102 */
+extern const SKP_uint16 SKP_Silk_shell_code_table3[ 207 ];                                          /* 207 */
+extern const SKP_uint16 SKP_Silk_shell_code_table_offsets[ 19 ];                                    /*  19 */
+
+extern const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ];                                                      /*   3 */
+
+extern const SKP_uint16 SKP_Silk_sign_CDF[ 36 ][ 3 ];                                               /* 108 */
+
+extern const SKP_uint16 SKP_Silk_LTP_per_index_CDF[ 4 ];                                            /*   4 */
+extern const SKP_int    SKP_Silk_LTP_per_index_CDF_offset;
+extern const SKP_int16  * const SKP_Silk_LTP_gain_BITS_Q6_ptrs[ NB_LTP_CBKS ];                      /*   3 */
+extern const SKP_uint16 * const SKP_Silk_LTP_gain_CDF_ptrs[ NB_LTP_CBKS ];                          /*   3 */
+extern const SKP_int    SKP_Silk_LTP_gain_CDF_offsets[ NB_LTP_CBKS ];                               /*   3 */
+extern const SKP_int32  SKP_Silk_LTP_gain_middle_avg_RD_Q14;
+extern const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ];                                                 /*   4 */
+extern const SKP_int    SKP_Silk_LTPscale_offset;
+
+/* Tables for LTPScale */
+extern const SKP_int16  SKP_Silk_LTPScales_table_Q14[ 3 ];
+
+extern const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ];                                                  /*   3 */
+extern const SKP_int    SKP_Silk_vadflag_offset;
+
+extern const SKP_int    SKP_Silk_SamplingRates_table[ 4 ];                                          /*   4 */
+extern const SKP_uint16 SKP_Silk_SamplingRates_CDF[ 5 ];                                            /*   5 */
+extern const SKP_int    SKP_Silk_SamplingRates_offset;
+
+extern const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ];
+extern const SKP_int    SKP_Silk_NLSF_interpolation_factor_offset;
+
+/* NLSF codebooks */
+extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16, SKP_Silk_NLSF_CB1_16;
+extern const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10, SKP_Silk_NLSF_CB1_10;
+
+/* quantization tables */
+extern const SKP_int16 * const SKP_Silk_LTP_vq_ptrs_Q14[ NB_LTP_CBKS ];                             /* 168 */
+extern const SKP_int    SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ];                                       /*   3 */
+
+/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
+extern const SKP_int32  TargetRate_table_NB[  TARGET_RATE_TAB_SZ ];
+extern const SKP_int32  TargetRate_table_MB[  TARGET_RATE_TAB_SZ ];
+extern const SKP_int32  TargetRate_table_WB[  TARGET_RATE_TAB_SZ ];
+extern const SKP_int32  TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ];
+extern const SKP_int32  SNR_table_Q1[         TARGET_RATE_TAB_SZ ];
+
+extern const SKP_int32  SNR_table_one_bit_per_sample_Q7[ 4 ];
+
+/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters  */
+extern const SKP_int16  SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ];
+extern const SKP_int16  SKP_Silk_SWB_detect_A_HP_Q13[ NB_SOS ][ 2 ];
+
+/* Decoder high-pass filter coefficients for 24 kHz sampling */
+extern const SKP_int16  SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER ];                                       /*   2 */
+extern const SKP_int16  SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ];                                   /*   3 */
+
+/* Decoder high-pass filter coefficients for 16 kHz sampling */
+extern const SKP_int16  SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER ];                                       /*   2 */
+extern const SKP_int16  SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ];                                   /*   3 */
+
+/* Decoder high-pass filter coefficients for 12 kHz sampling */
+extern const SKP_int16  SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER ];                                       /*   2 */
+extern const SKP_int16  SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ];                                   /*   3 */
+
+/* Decoder high-pass filter coefficients for 8 kHz sampling */
+extern const SKP_int16  SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER ];                                        /*   2 */
+extern const SKP_int16  SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ];                                    /*   3 */
+
+/* Table for frame termination indication */
+extern const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 5 ];
+extern const SKP_int    SKP_Silk_FrameTermination_offset;
+
+extern const SKP_uint16 SKP_Silk_FrameTermination_v4_CDF[ 6 ];
+extern const SKP_int    SKP_Silk_FrameTermination_v4_offset;
+
+/* Table for random seed */
+extern const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ];
+extern const SKP_int    SKP_Silk_Seed_offset;
+
+/* Quantization offsets */
+extern const SKP_int16  SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ];
+
+#if SWITCH_TRANSITION_FILTERING
+/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
+extern const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ];
+extern const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ];
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_LTPc"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_LTP.c (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_LTP.c                                (rev 0)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_LTP.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,324 @@
</span><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+const SKP_uint16 SKP_Silk_LTP_per_index_CDF[ 4 ] = {
+         0,  20992,  40788,  65535
+};
+
+const SKP_int SKP_Silk_LTP_per_index_CDF_offset = 1;
+
+
+const SKP_uint16 SKP_Silk_LTP_gain_CDF_0[ 11 ] = {
+         0,  49380,  54463,  56494,  58437,  60101,  61683,  62985,
+     64066,  64823,  65535
+};
+
+const SKP_uint16 SKP_Silk_LTP_gain_CDF_1[ 21 ] = {
+         0,  25290,  30654,  35710,  40386,  42937,  45250,  47459,
+     49411,  51348,  52974,  54517,  55976,  57423,  58865,  60285,
+     61667,  62895,  63827,  64724,  65535
+};
+
+const SKP_uint16 SKP_Silk_LTP_gain_CDF_2[ 41 ] = {
+         0,   4958,   9439,  13581,  17638,  21651,  25015,  28025,
+     30287,  32406,  34330,  36240,  38130,  39790,  41281,  42764,
+     44229,  45676,  47081,  48431,  49675,  50849,  51932,  52966,
+     53957,  54936,  55869,  56789,  57708,  58504,  59285,  60043,
+     60796,  61542,  62218,  62871,  63483,  64076,  64583,  65062,
+     65535
+};
+
+const SKP_int SKP_Silk_LTP_gain_CDF_offsets[ 3 ] = {
+         1,     3,     10
+};
+
+const SKP_int32 SKP_Silk_LTP_gain_middle_avg_RD_Q14 = 11010;
+
+const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_0[ 10 ] = {
+        26,    236,    321,    325,    339,    344,    362,    379,
+       412,    418
+};
+
+const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_1[ 20 ] = {
+        88,    231,    237,    244,    300,    309,    313,    324,
+       325,    341,    346,    351,    352,    352,    354,    356,
+       367,    393,    396,    406
+};
+
+const SKP_int16 SKP_Silk_LTP_gain_BITS_Q6_2[ 40 ] = {
+       238,    248,    255,    257,    258,    274,    284,    311,
+       317,    326,    326,    327,    339,    349,    350,    351,
+       352,    355,    358,    366,    371,    379,    383,    387,
+       388,    393,    394,    394,    407,    409,    412,    412,
+       413,    422,    426,    432,    434,    449,    454,    455
+};
+
+const SKP_uint16 * const SKP_Silk_LTP_gain_CDF_ptrs[ NB_LTP_CBKS ] = {
+    SKP_Silk_LTP_gain_CDF_0,
+    SKP_Silk_LTP_gain_CDF_1,
+    SKP_Silk_LTP_gain_CDF_2
+};
+
+const SKP_int16 * const SKP_Silk_LTP_gain_BITS_Q6_ptrs[ NB_LTP_CBKS ] = {
+    SKP_Silk_LTP_gain_BITS_Q6_0,
+    SKP_Silk_LTP_gain_BITS_Q6_1,
+    SKP_Silk_LTP_gain_BITS_Q6_2
+};
+
+const SKP_int16 SKP_Silk_LTP_gain_vq_0_Q14[ 10 ][ 5 ] = 
+{
+{
+       594,    984,   2840,   1021,    669
+},
+{
+        10,     35,    304,     -1,     23
+},
+{
+      -694,   1923,   4603,   2975,   2335
+},
+{
+      2437,   3176,   3778,   1940,    481
+},
+{
+       214,    -46,   7870,   4406,   -521
+},
+{
+      -896,   4818,   8501,   1623,   -887
+},
+{
+      -696,   3178,   6480,   -302,   1081
+},
+{
+       517,    599,   1002,    567,    560
+},
+{
+     -2075,   -834,   4712,   -340,    896
+},
+{
+      1435,   -644,   3993,   -612,  -2063
+}
+};
+
+const SKP_int16 SKP_Silk_LTP_gain_vq_1_Q14[ 20 ][ 5 ] = 
+{
+{
+      1655,   2918,   5001,   3010,   1775
+},
+{
+       113,    198,    856,    176,    178
+},
+{
+      -843,   2479,   7858,   5371,    574
+},
+{
+        59,   5356,   7648,   2850,   -315
+},
+{
+      3840,   4851,   6527,   1583,  -1233
+},
+{
+      1620,   1760,   2330,   1876,   2045
+},
+{
+      -545,   1854,  11792,   1547,   -307
+},
+{
+      -604,    689,   5369,   5074,   4265
+},
+{
+       521,  -1331,   9829,   6209,  -1211
+},
+{
+     -1315,   6747,   9929,  -1410,    546
+},
+{
+       117,   -144,   2810,   1649,   5240
+},
+{
+      5392,   3476,   2425,    -38,    633
+},
+{
+        14,   -449,   5274,   3547,   -171
+},
+{
+       -98,    395,   9114,   1676,    844
+},
+{
+      -908,   3843,   8861,   -957,   1474
+},
+{
+       396,   6747,   5379,   -329,   1269
+},
+{
+      -335,   2830,   4281,    270,    -54
+},
+{
+      1502,   5609,   8958,   6045,   2059
+},
+{
+      -370,    479,   5267,   5726,   1174
+},
+{
+      5237,  -1144,   6510,    455,    512
+}
+};
+
+const SKP_int16 SKP_Silk_LTP_gain_vq_2_Q14[ 40 ][ 5 ] = 
+{
+{
+      -278,    415,   9345,   7106,   -431
+},
+{
+     -1006,   3863,   9524,   4724,   -871
+},
+{
+      -954,   4624,  11722,    973,   -300
+},
+{
+      -117,   7066,   8331,   1959,   -901
+},
+{
+       593,   3412,   6070,   4914,   1567
+},
+{
+        54,    -51,  12618,   4228,   -844
+},
+{
+      3157,   4822,   5229,   2313,    717
+},
+{
+      -244,   1161,  14198,    779,     69
+},
+{
+     -1218,   5603,  12894,  -2301,   1001
+},
+{
+      -132,   3960,   9526,    577,   1806
+},
+{
+     -1633,   8815,  10484,  -2452,    895
+},
+{
+       235,    450,   1243,    667,    437
+},
+{
+       959,  -2630,  10897,   8772,  -1852
+},
+{
+      2420,   2046,   8893,   4427,  -1569
+},
+{
+        23,   7091,   8356,  -1285,   1508
+},
+{
+     -1133,    835,   7662,   6043,   2800
+},
+{
+       439,    391,  11016,   2253,   1362
+},
+{
+     -1020,   2876,  13436,   4015,  -3020
+},
+{
+      1060,  -2690,  13512,   5565,  -1394
+},
+{
+     -1420,   8007,  11421,   -152,  -1672
+},
+{
+      -893,   2895,  15434,  -1490,    159
+},
+{
+     -1054,    428,  12208,   8538,  -3344
+},
+{
+      1772,  -1304,   7593,   6185,    561
+},
+{
+       525,  -1207,   6659,  11151,  -1170
+},
+{
+       439,   2667,   4743,   2359,   5515
+},
+{
+      2951,   7432,   7909,   -230,  -1564
+},
+{
+       -72,   2140,   5477,   1391,   1580
+},
+{
+       476,  -1312,  15912,   2174,  -1027
+},
+{
+      5737,    441,   2493,   2043,   2757
+},
+{
+       228,    -43,   1803,   6663,   7064
+},
+{
+      4596,   9182,   1917,   -200,    203
+},
+{
+      -704,  12039,   5451,  -1188,    542
+},
+{
+      1782,  -1040,  10078,   7513,  -2767
+},
+{
+     -2626,   7747,   9019,     62,   1710
+},
+{
+       235,   -233,   2954,  10921,   1947
+},
+{
+     10854,   2814,   1232,   -111,    222
+},
+{
+      2267,   2778,  12325,    156,  -1658
+},
+{
+     -2950,   8095,  16330,    268,  -3626
+},
+{
+        67,   2083,   7950,    -80,  -2432
+},
+{
+       518,    -66,   1718,    415,  11435
+}
+};
+
+const SKP_int16 * const SKP_Silk_LTP_vq_ptrs_Q14[ NB_LTP_CBKS ] = {
+    &amp;SKP_Silk_LTP_gain_vq_0_Q14[ 0 ][ 0 ],
+    &amp;SKP_Silk_LTP_gain_vq_1_Q14[ 0 ][ 0 ],
+    &amp;SKP_Silk_LTP_gain_vq_2_Q14[ 0 ][ 0 ]
+};

+const SKP_int SKP_Silk_LTP_vq_sizes[ NB_LTP_CBKS ] = {
+    10, 20, 40 
+};
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_10c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,990 +1,889 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-
-
-
-
-
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/*                                            */
-/* ROM usage:   138+1331 Words                */
-/**********************************************/
-
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_tables_NLSF_CB0_10.h&quot;
-
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ] =
-{
-            0,
-         2658,
-         4420,
-         6107,
-         7757,
-         9408,
-        10955,
-        12502,
-        13983,
-        15432,
-        16882,
-        18331,
-        19750,
-        21108,
-        22409,
-        23709,
-        25010,
-        26256,
-        27501,
-        28747,
-        29965,
-        31158,
-        32351,
-        33544,
-        34736,
-        35904,
-        36997,
-
-
-
-
-
-        38091,
-        39185,
-        40232,
-        41280,
-        42327,
-        43308,
-        44290,
-        45271,
-        46232,
-        47192,
-        48132,
-        49032,
-        49913,
-        50775,
-        51618,
-        52462,
-        53287,
-        54095,
-        54885,
-        55675,
-        56449,
-        57222,
-        57979,
-        58688,
-        59382,
-        60076,
-        60726,
-        61363,
-        61946,
-        62505,
-        63052,
-        63543,
-        63983,
-        64396,
-        64766,
-        65023,
-        65279,
-        65535,
-            0,
-         4977,
-         9542,
-        14106,
-        18671,
-        23041,
-        27319,
-        31596,
-        35873,
-        39969,
-
-
-
-
-
-        43891,
-        47813,
-        51652,
-        55490,
-        59009,
-        62307,
-        65535,
-            0,
-         8571,
-        17142,
-        25529,
-        33917,
-        42124,
-        49984,
-        57844,
-        65535,
-            0,
-         8732,
-        17463,
-        25825,
-        34007,
-        42189,
-        50196,
-        58032,
-        65535,
-            0,
-         8948,
-        17704,
-        25733,
-        33762,
-        41791,
-        49821,
-        57678,
-        65535,
-            0,
-         4374,
-         8655,
-        12936,
-        17125,
-        21313,
-        25413,
-        29512,
-        33611,
-        37710,
-        41809,
-        45820,
-        49832,
-        53843,
-
-
-
-
-
-        57768,
-        61694,
-        65535
-};
-
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ] =
-{
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[   0 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  65 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  82 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  91 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 100 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 109 ]
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[ NLSF_MSVQ_CB0_10_STAGES ] =
-{
-      23,
-       8,
-       5,
-       5,
-       5,
-       9
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[ NLSF_MSVQ_CB0_10_VECTORS ] =
-{
-              148,              167,
-              169,              170,
-              170,              173,
-              173,              175,
-              176,              176,
-              176,              177,
-              179,              181,
-              181,              181,
-              183,              183,
-              183,              184,
-              185,              185,
-              185,              185,
-              186,              189,
-              189,              189,
-              191,              191,
-              191,              194,
-              194,              194,
-              195,              195,
-              196,              198,
-              199,              200,
-              201,              201,
-
-
-
-
-
-              202,              203,
-              204,              204,
-              205,              205,
-              206,              209,
-              210,              210,
-              213,              214,
-              218,              220,
-              221,              226,
-              231,              234,
-              239,              256,
-              256,              256,
-              119,              123,
-              123,              123,
-              125,              126,
-              126,              126,
-              128,              130,
-              130,              131,
-              131,              135,
-              138,              139,
-               94,               94,
-               95,               95,
-               96,               98,
-               98,               99,
-               93,               93,
-               95,               96,
-               96,               97,
-               98,              100,
-               92,               93,
-               97,               97,
-               97,               97,
-               98,               98,
-              125,              126,
-              126,              127,
-              127,              128,
-              128,              128,
-              128,              128,
-              129,              129,
-              129,              130,
-              130,              131
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15[ 10 + 1 ] =
-{
-              563,
-                3,
-               22,
-               20,
-                3,
-
-
-
-
-
-                3,
-              132,
-              119,
-              358,
-               86,
-              964
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 * NLSF_MSVQ_CB0_10_VECTORS ] =
-{
-             2210,             4023,
-             6981,             9260,
-            12573,            15687,
-            19207,            22383,
-            25981,            29142,
-             3285,             4172,
-             6116,            10856,
-            15289,            16826,
-            19701,            22010,
-            24721,            29313,
-             1554,             2511,
-             6577,            10337,
-            13837,            16511,
-            20086,            23214,
-            26480,            29464,
-             3062,             4017,
-             5771,            10037,
-            13365,            14952,
-            20140,            22891,
-            25229,            29603,
-             2085,             3457,
-             5934,             8718,
-            11501,            13670,
-            17997,            21817,
-            24935,            28745,
-             2776,             4093,
-             6421,            10413,
-            15111,            16806,
-            20825,            23826,
-            26308,            29411,
-             2717,             4034,
-             5697,             8463,
-            14301,            16354,
-            19007,            23413,
-            25812,            28506,
-             2872,             3702,
-             5881,            11034,
-            17141,            18879,
-
-
-
-
-
-            21146,            23451,
-            25817,            29600,
-             2999,             4015,
-             7357,            11219,
-            12866,            17307,
-            20081,            22644,
-            26774,            29107,
-             2942,             3866,
-             5918,            11915,
-            13909,            16072,
-            20453,            22279,
-            27310,            29826,
-             2271,             3527,
-             6606,             9729,
-            12943,            17382,
-            20224,            22345,
-            24602,            28290,
-             2207,             3310,
-             5844,             9339,
-            11141,            15651,
-            18576,            21177,
-            25551,            28228,
-             3963,             4975,
-             6901,            11588,
-            13466,            15577,
-            19231,            21368,
-            25510,            27759,
-             2749,             3549,
-             6966,            13808,
-            15653,            17645,
-            20090,            22599,
-            26467,            28537,
-             2126,             3504,
-             5109,             9954,
-            12550,            14620,
-            19703,            21687,
-            26457,            29106,
-             3966,             5745,
-             7442,             9757,
-            14468,            16404,
-            19135,            23048,
-            25375,            28391,
-             3197,             4751,
-             6451,             9298,
-            13038,            14874,
-            17962,            20627,
-            23835,            28464,
-             3195,             4081,
-
-
-
-
-
-             6499,            12252,
-            14289,            16040,
-            18357,            20730,
-            26980,            29309,
-             1533,             2471,
-             4486,             7796,
-            12332,            15758,
-            19567,            22298,
-            25673,            29051,
-             2002,             2971,
-             4985,             8083,
-            13181,            15435,
-            18237,            21517,
-            24595,            28351,
-             3808,             4925,
-             6710,            10201,
-            12011,            14300,
-            18457,            20391,
-            26525,            28956,
-             2281,             3418,
-             4979,             8726,
-            15964,            18104,
-            20250,            22771,
-            25286,            28954,
-             3051,             5479,
-             7290,             9848,
-            12744,            14503,
-            18665,            23684,
-            26065,            28947,
-             2364,             3565,
-             5502,             9621,
-            14922,            16621,
-            19005,            20996,
-            26310,            29302,
-             4093,             5212,
-             6833,             9880,
-            16303,            18286,
-            20571,            23614,
-            26067,            29128,
-             2941,             3996,
-             6038,            10638,
-            12668,            14451,
-            16798,            19392,
-            26051,            28517,
-             3863,             5212,
-             7019,             9468,
-            11039,            13214,
-            19942,            22344,
-
-
-
-
-
-            25126,            29539,
-             4615,             6172,
-             7853,            10252,
-            12611,            14445,
-            19719,            22441,
-            24922,            29341,
-             3566,             4512,
-             6985,             8684,
-            10544,            16097,
-            18058,            22475,
-            26066,            28167,
-             4481,             5489,
-             7432,            11414,
-            13191,            15225,
-            20161,            22258,
-            26484,            29716,
-             3320,             4320,
-             6621,             9867,
-            11581,            14034,
-            21168,            23210,
-            26588,            29903,
-             3794,             4689,
-             6916,             8655,
-            10143,            16144,
-            19568,            21588,
-            27557,            29593,
-             2446,             3276,
-             5918,            12643,
-            16601,            18013,
-            21126,            23175,
-            27300,            29634,
-             2450,             3522,
-             5437,             8560,
-            15285,            19911,
-            21826,            24097,
-            26567,            29078,
-             2580,             3796,
-             5580,             8338,
-             9969,            12675,
-            18907,            22753,
-            25450,            29292,
-             3325,             4312,
-             6241,             7709,
-             9164,            14452,
-            21665,            23797,
-            27096,            29857,
-             3338,             4163,
-             7738,            11114,
-
-
-
-
-
-            12668,            14753,
-            16931,            22736,
-            25671,            28093,
-             3840,             4755,
-             7755,            13471,
-            15338,            17180,
-            20077,            22353,
-            27181,            29743,
-             2504,             4079,
-             8351,            12118,
-            15046,            18595,
-            21684,            24704,
-            27519,            29937,
-             5234,             6342,
-             8267,            11821,
-            15155,            16760,
-            20667,            23488,
-            25949,            29307,
-             2681,             3562,
-             6028,            10827,
-            18458,            20458,
-            22303,            24701,
-            26912,            29956,
-             3374,             4528,
-             6230,             8256,
-             9513,            12730,
-            18666,            20720,
-            26007,            28425,
-             2731,             3629,
-             8320,            12450,
-            14112,            16431,
-            18548,            22098,
-            25329,            27718,
-             3481,             4401,
-             7321,             9319,
-            11062,            13093,
-            15121,            22315,
-            26331,            28740,
-             3577,             4945,
-             6669,             8792,
-            10299,            12645,
-            19505,            24766,
-            26996,            29634,
-             4058,             5060,
-             7288,            10190,
-            11724,            13936,
-            15849,            18539,
-            26701,            29845,
-
-
-
-
-
-             4262,             5390,
-             7057,             8982,
-            10187,            15264,
-            20480,            22340,
-            25958,            28072,
-             3404,             4329,
-             6629,             7946,
-            10121,            17165,
-            19640,            22244,
-            25062,            27472,
-             3157,             4168,
-             6195,             9319,
-            10771,            13325,
-            15416,            19816,
-            24672,            27634,
-             2503,             3473,
-             5130,             6767,
-             8571,            14902,
-            19033,            21926,
-            26065,            28728,
-             4133,             5102,
-             7553,            10054,
-            11757,            14924,
-            17435,            20186,
-            23987,            26272,
-             4972,             6139,
-             7894,             9633,
-            11320,            14295,
-            21737,            24306,
-            26919,            29907,
-             2958,             3816,
-             6851,             9204,
-            10895,            18052,
-            20791,            23338,
-            27556,            29609,
-             5234,             6028,
-             8034,            10154,
-            11242,            14789,
-            18948,            20966,
-            26585,            29127,
-             5241,             6838,
-            10526,            12819,
-            14681,            17328,
-            19928,            22336,
-            26193,            28697,
-             3412,             4251,
-             5988,             7094,
-             9907,            18243,
-
-
-
-
-
-            21669,            23777,
-            26969,            29087,
-             2470,             3217,
-             7797,            15296,
-            17365,            19135,
-            21979,            24256,
-            27322,            29442,
-             4939,             5804,
-             8145,            11809,
-            13873,            15598,
-            17234,            19423,
-            26476,            29645,
-             5051,             6167,
-             8223,             9655,
-            12159,            17995,
-            20464,            22832,
-            26616,            28462,
-             4987,             5907,
-             9319,            11245,
-            13132,            15024,
-            17485,            22687,
-            26011,            28273,
-             5137,             6884,
-            11025,            14950,
-            17191,            19425,
-            21807,            24393,
-            26938,            29288,
-             7057,             7884,
-             9528,            10483,
-            10960,            14811,
-            19070,            21675,
-            25645,            28019,
-             6759,             7160,
-             8546,            11779,
-            12295,            13023,
-            16627,            21099,
-            24697,            28287,
-             3863,             9762,
-            11068,            11445,
-            12049,            13960,
-            18085,            21507,
-            25224,            28997,
-              397,              335,
-              651,             1168,
-              640,              765,
-              465,              331,
-              214,             -194,
-             -578,             -647,
-
-
-
-
-
-             -657,              750,
-              564,              613,
-              549,              630,
-              304,              -52,
-              828,              922,
-              443,              111,
-              138,              124,
-              169,               14,
-              144,               83,
-              132,               58,
-             -413,             -752,
-              869,              336,
-              385,               69,
-               56,              830,
-             -227,             -266,
-             -368,             -440,
-            -1195,              163,
-              126,             -228,
-              802,              156,
-              188,              120,
-              376,               59,
-             -358,             -558,
-            -1326,             -254,
-             -202,             -789,
-              296,               92,
-              -70,             -129,
-             -718,            -1135,
-              292,              -29,
-             -631,              487,
-             -157,             -153,
-             -279,                2,
-             -419,             -342,
-              -34,             -514,
-             -799,            -1571,
-             -687,             -609,
-             -546,             -130,
-             -215,             -252,
-             -446,             -574,
-            -1337,              207,
-              -72,               32,
-              103,             -642,
-              942,              733,
-              187,               29,
-             -211,             -814,
-              143,              225,
-               20,               24,
-             -268,             -377,
-             1623,             1133,
-
-
-
-
-
-              667,              164,
-              307,              366,
-              187,               34,
-               62,             -313,
-             -832,            -1482,
-            -1181,              483,
-              -42,              -39,
-             -450,            -1406,
-             -587,              -52,
-             -760,              334,
-               98,              -60,
-             -500,             -488,
-            -1058,              299,
-              131,             -250,
-             -251,             -703,
-             1037,              568,
-             -413,             -265,
-             1687,              573,
-              345,              323,
-               98,               61,
-             -102,               31,
-              135,              149,
-              617,              365,
-              -39,               34,
-             -611,             1201,
-             1421,              736,
-             -414,             -393,
-             -492,             -343,
-             -316,             -532,
-              528,              172,
-               90,              322,
-             -294,             -319,
-             -541,              503,
-              639,              401,
-                1,             -149,
-              -73,             -167,
-              150,              118,
-              308,              218,
-              121,              195,
-             -143,             -261,
-            -1013,             -802,
-              387,              436,
-              130,             -427,
-             -448,             -681,
-              123,              -87,
-             -251,             -113,
-              274,              310,
-              445,              501,
-
-
-
-
-
-              354,              272,
-              141,             -285,
-              569,              656,
-               37,              -49,
-              251,             -386,
-             -263,             1122,
-              604,              606,
-              336,               95,
-               34,                0,
-               85,              180,
-              207,             -367,
-             -622,             1070,
-               -6,              -79,
-             -160,              -92,
-             -137,             -276,
-             -323,             -371,
-             -696,            -1036,
-              407,              102,
-              -86,             -214,
-             -482,             -647,
-              -28,             -291,
-              -97,             -180,
-             -250,             -435,
-              -18,              -76,
-             -332,              410,
-              407,              168,
-              539,              411,
-              254,              111,
-               58,             -145,
-              200,               30,
-              187,              116,
-              131,             -367,
-             -475,              781,
-             -559,              561,
-              195,             -115,
-                8,             -168,
-               30,               55,
-             -122,              131,
-               82,               -5,
-             -273,              -50,
-             -632,              668,
-                4,               32,
-              -26,             -279,
-              315,              165,
-              197,              377,
-              155,              -41,
-             -138,             -324,
-             -109,             -617,
-
-
-
-
-
-              360,               98,
-              -53,             -319,
-             -114,             -245,
-              -82,              507,
-              468,              263,
-             -137,             -389,
-              652,              354,
-              -18,             -227,
-             -462,             -135,
-              317,               53,
-              -16,               66,
-              -72,             -126,
-             -356,             -347,
-             -328,              -72,
-             -337,              324,
-              152,              349,
-              169,             -196,
-              179,              254,
-              260,              325,
-              -74,              -80,
-               75,              -31,
-              270,              275,
-               87,              278,
-             -446,             -301,
-              309,               71,
-              -25,             -242,
-              516,              161,
-             -162,              -83,
-              329,              230,
-             -311,             -259,
-              177,              -26,
-             -462,               89,
-              257,                6,
-             -130,              -93,
-             -456,             -317,
-             -221,             -206,
-             -417,             -182,
-              -74,              234,
-               48,              261,
-              359,              231,
-              258,               85,
-             -282,              252,
-             -147,             -222,
-              251,             -207,
-              443,              123,
-             -417,              -36,
-              273,             -241,
-              240,             -112,
-
-
-
-
-
-               44,             -167,
-              126,             -124,
-              -77,               58,
-             -401,              333,
-             -118,               82,
-              126,              151,
-             -433,              359,
-             -130,             -102,
-              131,             -244,
-               86,               85,
-             -462,              414,
-             -240,               16,
-              145,               28,
-             -205,             -481,
-              373,              293,
-              -72,             -174,
-               62,              259,
-               -8,              -18,
-              362,              233,
-              185,               43,
-              278,               27,
-              193,              570,
-             -248,              189,
-               92,               31,
-             -275,               -3,
-              243,              176,
-              438,              209,
-              206,              -51,
-               79,              109,
-              168,             -185,
-             -308,              -68,
-             -618,              385,
-             -310,             -108,
-             -164,              165,
-               61,             -152,
-             -101,             -412,
-             -268,             -257,
-              -40,              -20,
-              -28,             -158,
-             -301,              271,
-              380,             -338,
-             -367,             -132,
-               64,              114,
-             -131,             -225,
-             -156,             -260,
-              -63,             -116,
-              155,             -586,
-             -202,              254,
-
-
-
-
-
-             -287,              178,
-              227,             -106,
-             -294,              164,
-              298,             -100,
-              185,              317,
-              193,              -45,
-               28,               80,
-              -87,             -433,
-               22,              -48,
-               48,             -237,
-             -229,             -139,
-              120,             -364,
-              268,             -136,
-              396,              125,
-              130,              -89,
-             -272,              118,
-             -256,              -68,
-             -451,              488,
-              143,             -165,
-              -48,             -190,
-              106,              219,
-               47,              435,
-              245,               97,
-               75,             -418,
-              121,             -187,
-              570,             -200,
-             -351,              225,
-              -21,             -217,
-              234,             -111,
-              194,               14,
-              242,              118,
-              140,             -397,
-              355,              361,
-              -45,             -195
-};
-
-const SKP_Silk_NLSF_CB_Stage_struct SKP_Silk_NLSF_CB0_10_Stage_info[ NLSF_MSVQ_CB0_10_STAGES ] =
-{
-        {  64, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[   0 ] },
-        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  64 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  80 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  80 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  88 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  88 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  96 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  96 ] },
-        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 * 104 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[ 104 ] }
-};
-
-const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10 =
-{
-
-
-
-
-
-        NLSF_MSVQ_CB0_10_STAGES,
-        SKP_Silk_NLSF_CB0_10_Stage_info,
-        SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15,
-        SKP_Silk_NLSF_MSVQ_CB0_10_CDF,
-        SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr,
-        SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/**********************************************/
+/* This file has been automatically generated */
+/*                                            */
+/* ROM usage:   138+1331 Words                */
+/**********************************************/
+
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_tables_NLSF_CB0_10.h&quot;
+
+const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ] =
+{
+            0,
+         2658,
+         4420,
+         6107,
+         7757,
+         9408,
+        10955,
+        12502,
+        13983,
+        15432,
+        16882,
+        18331,
+        19750,
+        21108,
+        22409,
+        23709,
+        25010,
+        26256,
+        27501,
+        28747,
+        29965,
+        31158,
+        32351,
+        33544,
+        34736,
+        35904,
+        36997,
+        38091,
+        39185,
+        40232,
+        41280,
+        42327,
+        43308,
+        44290,
+        45271,
+        46232,
+        47192,
+        48132,
+        49032,
+        49913,
+        50775,
+        51618,
+        52462,
+        53287,
+        54095,
+        54885,
+        55675,
+        56449,
+        57222,
+        57979,
+        58688,
+        59382,
+        60076,
+        60726,
+        61363,
+        61946,
+        62505,
+        63052,
+        63543,
+        63983,
+        64396,
+        64766,
+        65023,
+        65279,
+        65535,
+            0,
+         4977,
+         9542,
+        14106,
+        18671,
+        23041,
+        27319,
+        31596,
+        35873,
+        39969,
+        43891,
+        47813,
+        51652,
+        55490,
+        59009,
+        62307,
+        65535,
+            0,
+         8571,
+        17142,
+        25529,
+        33917,
+        42124,
+        49984,
+        57844,
+        65535,
+            0,
+         8732,
+        17463,
+        25825,
+        34007,
+        42189,
+        50196,
+        58032,
+        65535,
+            0,
+         8948,
+        17704,
+        25733,
+        33762,
+        41791,
+        49821,
+        57678,
+        65535,
+            0,
+         4374,
+         8655,
+        12936,
+        17125,
+        21313,
+        25413,
+        29512,
+        33611,
+        37710,
+        41809,
+        45820,
+        49832,
+        53843,
+        57768,
+        61694,
+        65535
+};
+
+const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[ NLSF_MSVQ_CB0_10_STAGES ] =
+{
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[   0 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  65 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  82 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[  91 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 100 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ 109 ]
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[ NLSF_MSVQ_CB0_10_STAGES ] =
+{
+      23,
+       8,
+       5,
+       5,
+       5,
+       9
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[ NLSF_MSVQ_CB0_10_VECTORS ] =
+{
+              148,              167,
+              169,              170,
+              170,              173,
+              173,              175,
+              176,              176,
+              176,              177,
+              179,              181,
+              181,              181,
+              183,              183,
+              183,              184,
+              185,              185,
+              185,              185,
+              186,              189,
+              189,              189,
+              191,              191,
+              191,              194,
+              194,              194,
+              195,              195,
+              196,              198,
+              199,              200,
+              201,              201,
+              202,              203,
+              204,              204,
+              205,              205,
+              206,              209,
+              210,              210,
+              213,              214,
+              218,              220,
+              221,              226,
+              231,              234,
+              239,              256,
+              256,              256,
+              119,              123,
+              123,              123,
+              125,              126,
+              126,              126,
+              128,              130,
+              130,              131,
+              131,              135,
+              138,              139,
+               94,               94,
+               95,               95,
+               96,               98,
+               98,               99,
+               93,               93,
+               95,               96,
+               96,               97,
+               98,              100,
+               92,               93,
+               97,               97,
+               97,               97,
+               98,               98,
+              125,              126,
+              126,              127,
+              127,              128,
+              128,              128,
+              128,              128,
+              129,              129,
+              129,              130,
+              130,              131
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15[ 10 + 1 ] =
+{
+              563,
+                3,
+               22,
+               20,
+                3,
+                3,
+              132,
+              119,
+              358,
+               86,
+              964
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 * NLSF_MSVQ_CB0_10_VECTORS ] =
+{
+             2210,             4023,
+             6981,             9260,
+            12573,            15687,
+            19207,            22383,
+            25981,            29142,
+             3285,             4172,
+             6116,            10856,
+            15289,            16826,
+            19701,            22010,
+            24721,            29313,
+             1554,             2511,
+             6577,            10337,
+            13837,            16511,
+            20086,            23214,
+            26480,            29464,
+             3062,             4017,
+             5771,            10037,
+            13365,            14952,
+            20140,            22891,
+            25229,            29603,
+             2085,             3457,
+             5934,             8718,
+            11501,            13670,
+            17997,            21817,
+            24935,            28745,
+             2776,             4093,
+             6421,            10413,
+            15111,            16806,
+            20825,            23826,
+            26308,            29411,
+             2717,             4034,
+             5697,             8463,
+            14301,            16354,
+            19007,            23413,
+            25812,            28506,
+             2872,             3702,
+             5881,            11034,
+            17141,            18879,
+            21146,            23451,
+            25817,            29600,
+             2999,             4015,
+             7357,            11219,
+            12866,            17307,
+            20081,            22644,
+            26774,            29107,
+             2942,             3866,
+             5918,            11915,
+            13909,            16072,
+            20453,            22279,
+            27310,            29826,
+             2271,             3527,
+             6606,             9729,
+            12943,            17382,
+            20224,            22345,
+            24602,            28290,
+             2207,             3310,
+             5844,             9339,
+            11141,            15651,
+            18576,            21177,
+            25551,            28228,
+             3963,             4975,
+             6901,            11588,
+            13466,            15577,
+            19231,            21368,
+            25510,            27759,
+             2749,             3549,
+             6966,            13808,
+            15653,            17645,
+            20090,            22599,
+            26467,            28537,
+             2126,             3504,
+             5109,             9954,
+            12550,            14620,
+            19703,            21687,
+            26457,            29106,
+             3966,             5745,
+             7442,             9757,
+            14468,            16404,
+            19135,            23048,
+            25375,            28391,
+             3197,             4751,
+             6451,             9298,
+            13038,            14874,
+            17962,            20627,
+            23835,            28464,
+             3195,             4081,
+             6499,            12252,
+            14289,            16040,
+            18357,            20730,
+            26980,            29309,
+             1533,             2471,
+             4486,             7796,
+            12332,            15758,
+            19567,            22298,
+            25673,            29051,
+             2002,             2971,
+             4985,             8083,
+            13181,            15435,
+            18237,            21517,
+            24595,            28351,
+             3808,             4925,
+             6710,            10201,
+            12011,            14300,
+            18457,            20391,
+            26525,            28956,
+             2281,             3418,
+             4979,             8726,
+            15964,            18104,
+            20250,            22771,
+            25286,            28954,
+             3051,             5479,
+             7290,             9848,
+            12744,            14503,
+            18665,            23684,
+            26065,            28947,
+             2364,             3565,
+             5502,             9621,
+            14922,            16621,
+            19005,            20996,
+            26310,            29302,
+             4093,             5212,
+             6833,             9880,
+            16303,            18286,
+            20571,            23614,
+            26067,            29128,
+             2941,             3996,
+             6038,            10638,
+            12668,            14451,
+            16798,            19392,
+            26051,            28517,
+             3863,             5212,
+             7019,             9468,
+            11039,            13214,
+            19942,            22344,
+            25126,            29539,
+             4615,             6172,
+             7853,            10252,
+            12611,            14445,
+            19719,            22441,
+            24922,            29341,
+             3566,             4512,
+             6985,             8684,
+            10544,            16097,
+            18058,            22475,
+            26066,            28167,
+             4481,             5489,
+             7432,            11414,
+            13191,            15225,
+            20161,            22258,
+            26484,            29716,
+             3320,             4320,
+             6621,             9867,
+            11581,            14034,
+            21168,            23210,
+            26588,            29903,
+             3794,             4689,
+             6916,             8655,
+            10143,            16144,
+            19568,            21588,
+            27557,            29593,
+             2446,             3276,
+             5918,            12643,
+            16601,            18013,
+            21126,            23175,
+            27300,            29634,
+             2450,             3522,
+             5437,             8560,
+            15285,            19911,
+            21826,            24097,
+            26567,            29078,
+             2580,             3796,
+             5580,             8338,
+             9969,            12675,
+            18907,            22753,
+            25450,            29292,
+             3325,             4312,
+             6241,             7709,
+             9164,            14452,
+            21665,            23797,
+            27096,            29857,
+             3338,             4163,
+             7738,            11114,
+            12668,            14753,
+            16931,            22736,
+            25671,            28093,
+             3840,             4755,
+             7755,            13471,
+            15338,            17180,
+            20077,            22353,
+            27181,            29743,
+             2504,             4079,
+             8351,            12118,
+            15046,            18595,
+            21684,            24704,
+            27519,            29937,
+             5234,             6342,
+             8267,            11821,
+            15155,            16760,
+            20667,            23488,
+            25949,            29307,
+             2681,             3562,
+             6028,            10827,
+            18458,            20458,
+            22303,            24701,
+            26912,            29956,
+             3374,             4528,
+             6230,             8256,
+             9513,            12730,
+            18666,            20720,
+            26007,            28425,
+             2731,             3629,
+             8320,            12450,
+            14112,            16431,
+            18548,            22098,
+            25329,            27718,
+             3481,             4401,
+             7321,             9319,
+            11062,            13093,
+            15121,            22315,
+            26331,            28740,
+             3577,             4945,
+             6669,             8792,
+            10299,            12645,
+            19505,            24766,
+            26996,            29634,
+             4058,             5060,
+             7288,            10190,
+            11724,            13936,
+            15849,            18539,
+            26701,            29845,
+             4262,             5390,
+             7057,             8982,
+            10187,            15264,
+            20480,            22340,
+            25958,            28072,
+             3404,             4329,
+             6629,             7946,
+            10121,            17165,
+            19640,            22244,
+            25062,            27472,
+             3157,             4168,
+             6195,             9319,
+            10771,            13325,
+            15416,            19816,
+            24672,            27634,
+             2503,             3473,
+             5130,             6767,
+             8571,            14902,
+            19033,            21926,
+            26065,            28728,
+             4133,             5102,
+             7553,            10054,
+            11757,            14924,
+            17435,            20186,
+            23987,            26272,
+             4972,             6139,
+             7894,             9633,
+            11320,            14295,
+            21737,            24306,
+            26919,            29907,
+             2958,             3816,
+             6851,             9204,
+            10895,            18052,
+            20791,            23338,
+            27556,            29609,
+             5234,             6028,
+             8034,            10154,
+            11242,            14789,
+            18948,            20966,
+            26585,            29127,
+             5241,             6838,
+            10526,            12819,
+            14681,            17328,
+            19928,            22336,
+            26193,            28697,
+             3412,             4251,
+             5988,             7094,
+             9907,            18243,
+            21669,            23777,
+            26969,            29087,
+             2470,             3217,
+             7797,            15296,
+            17365,            19135,
+            21979,            24256,
+            27322,            29442,
+             4939,             5804,
+             8145,            11809,
+            13873,            15598,
+            17234,            19423,
+            26476,            29645,
+             5051,             6167,
+             8223,             9655,
+            12159,            17995,
+            20464,            22832,
+            26616,            28462,
+             4987,             5907,
+             9319,            11245,
+            13132,            15024,
+            17485,            22687,
+            26011,            28273,
+             5137,             6884,
+            11025,            14950,
+            17191,            19425,
+            21807,            24393,
+            26938,            29288,
+             7057,             7884,
+             9528,            10483,
+            10960,            14811,
+            19070,            21675,
+            25645,            28019,
+             6759,             7160,
+             8546,            11779,
+            12295,            13023,
+            16627,            21099,
+            24697,            28287,
+             3863,             9762,
+            11068,            11445,
+            12049,            13960,
+            18085,            21507,
+            25224,            28997,
+              397,              335,
+              651,             1168,
+              640,              765,
+              465,              331,
+              214,             -194,
+             -578,             -647,
+             -657,              750,
+              564,              613,
+              549,              630,
+              304,              -52,
+              828,              922,
+              443,              111,
+              138,              124,
+              169,               14,
+              144,               83,
+              132,               58,
+             -413,             -752,
+              869,              336,
+              385,               69,
+               56,              830,
+             -227,             -266,
+             -368,             -440,
+            -1195,              163,
+              126,             -228,
+              802,              156,
+              188,              120,
+              376,               59,
+             -358,             -558,
+            -1326,             -254,
+             -202,             -789,
+              296,               92,
+              -70,             -129,
+             -718,            -1135,
+              292,              -29,
+             -631,              487,
+             -157,             -153,
+             -279,                2,
+             -419,             -342,
+              -34,             -514,
+             -799,            -1571,
+             -687,             -609,
+             -546,             -130,
+             -215,             -252,
+             -446,             -574,
+            -1337,              207,
+              -72,               32,
+              103,             -642,
+              942,              733,
+              187,               29,
+             -211,             -814,
+              143,              225,
+               20,               24,
+             -268,             -377,
+             1623,             1133,
+              667,              164,
+              307,              366,
+              187,               34,
+               62,             -313,
+             -832,            -1482,
+            -1181,              483,
+              -42,              -39,
+             -450,            -1406,
+             -587,              -52,
+             -760,              334,
+               98,              -60,
+             -500,             -488,
+            -1058,              299,
+              131,             -250,
+             -251,             -703,
+             1037,              568,
+             -413,             -265,
+             1687,              573,
+              345,              323,
+               98,               61,
+             -102,               31,
+              135,              149,
+              617,              365,
+              -39,               34,
+             -611,             1201,
+             1421,              736,
+             -414,             -393,
+             -492,             -343,
+             -316,             -532,
+              528,              172,
+               90,              322,
+             -294,             -319,
+             -541,              503,
+              639,              401,
+                1,             -149,
+              -73,             -167,
+              150,              118,
+              308,              218,
+              121,              195,
+             -143,             -261,
+            -1013,             -802,
+              387,              436,
+              130,             -427,
+             -448,             -681,
+              123,              -87,
+             -251,             -113,
+              274,              310,
+              445,              501,
+              354,              272,
+              141,             -285,
+              569,              656,
+               37,              -49,
+              251,             -386,
+             -263,             1122,
+              604,              606,
+              336,               95,
+               34,                0,
+               85,              180,
+              207,             -367,
+             -622,             1070,
+               -6,              -79,
+             -160,              -92,
+             -137,             -276,
+             -323,             -371,
+             -696,            -1036,
+              407,              102,
+              -86,             -214,
+             -482,             -647,
+              -28,             -291,
+              -97,             -180,
+             -250,             -435,
+              -18,              -76,
+             -332,              410,
+              407,              168,
+              539,              411,
+              254,              111,
+               58,             -145,
+              200,               30,
+              187,              116,
+              131,             -367,
+             -475,              781,
+             -559,              561,
+              195,             -115,
+                8,             -168,
+               30,               55,
+             -122,              131,
+               82,               -5,
+             -273,              -50,
+             -632,              668,
+                4,               32,
+              -26,             -279,
+              315,              165,
+              197,              377,
+              155,              -41,
+             -138,             -324,
+             -109,             -617,
+              360,               98,
+              -53,             -319,
+             -114,             -245,
+              -82,              507,
+              468,              263,
+             -137,             -389,
+              652,              354,
+              -18,             -227,
+             -462,             -135,
+              317,               53,
+              -16,               66,
+              -72,             -126,
+             -356,             -347,
+             -328,              -72,
+             -337,              324,
+              152,              349,
+              169,             -196,
+              179,              254,
+              260,              325,
+              -74,              -80,
+               75,              -31,
+              270,              275,
+               87,              278,
+             -446,             -301,
+              309,               71,
+              -25,             -242,
+              516,              161,
+             -162,              -83,
+              329,              230,
+             -311,             -259,
+              177,              -26,
+             -462,               89,
+              257,                6,
+             -130,              -93,
+             -456,             -317,
+             -221,             -206,
+             -417,             -182,
+              -74,              234,
+               48,              261,
+              359,              231,
+              258,               85,
+             -282,              252,
+             -147,             -222,
+              251,             -207,
+              443,              123,
+             -417,              -36,
+              273,             -241,
+              240,             -112,
+               44,             -167,
+              126,             -124,
+              -77,               58,
+             -401,              333,
+             -118,               82,
+              126,              151,
+             -433,              359,
+             -130,             -102,
+              131,             -244,
+               86,               85,
+             -462,              414,
+             -240,               16,
+              145,               28,
+             -205,             -481,
+              373,              293,
+              -72,             -174,
+               62,              259,
+               -8,              -18,
+              362,              233,
+              185,               43,
+              278,               27,
+              193,              570,
+             -248,              189,
+               92,               31,
+             -275,               -3,
+              243,              176,
+              438,              209,
+              206,              -51,
+               79,              109,
+              168,             -185,
+             -308,              -68,
+             -618,              385,
+             -310,             -108,
+             -164,              165,
+               61,             -152,
+             -101,             -412,
+             -268,             -257,
+              -40,              -20,
+              -28,             -158,
+             -301,              271,
+              380,             -338,
+             -367,             -132,
+               64,              114,
+             -131,             -225,
+             -156,             -260,
+              -63,             -116,
+              155,             -586,
+             -202,              254,
+             -287,              178,
+              227,             -106,
+             -294,              164,
+              298,             -100,
+              185,              317,
+              193,              -45,
+               28,               80,
+              -87,             -433,
+               22,              -48,
+               48,             -237,
+             -229,             -139,
+              120,             -364,
+              268,             -136,
+              396,              125,
+              130,              -89,
+             -272,              118,
+             -256,              -68,
+             -451,              488,
+              143,             -165,
+              -48,             -190,
+              106,              219,
+               47,              435,
+              245,               97,
+               75,             -418,
+              121,             -187,
+              570,             -200,
+             -351,              225,
+              -21,             -217,
+              234,             -111,
+              194,               14,
+              242,              118,
+              140,             -397,
+              355,              361,
+              -45,             -195
+};
+
+const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB0_10_Stage_info[ NLSF_MSVQ_CB0_10_STAGES ] =
+{
+        {  64, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[   0 ] },
+        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  64 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  80 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  80 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  88 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  88 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 *  96 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[  96 ] },
+        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_10_Q15[ 10 * 104 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_10_rates_Q5[ 104 ] }
+};
+
+const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_10 =
+{
+        NLSF_MSVQ_CB0_10_STAGES,
+        SKP_Silk_NLSF_CB0_10_Stage_info,
+        SKP_Silk_NLSF_MSVQ_CB0_10_ndelta_min_Q15,
+        SKP_Silk_NLSF_MSVQ_CB0_10_CDF,
+        SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr,
+        SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_10h"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,62 +1,51 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_TABLES_NLSF_CB0_10_H
-#define SKP_SILK_TABLES_NLSF_CB0_10_H
-
-#include &quot;SKP_Silk_define.h&quot;
-
-#ifdef __cplusplus
-
-
-
-
-
-extern &quot;C&quot;
-{
-#endif
-
-#define NLSF_MSVQ_CB0_10_STAGES       6
-#define NLSF_MSVQ_CB0_10_VECTORS      120
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[                  NLSF_MSVQ_CB0_10_STAGES ];
-extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[                 NLSF_MSVQ_CB0_10_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_TABLES_NLSF_CB0_10_H
+#define SKP_SILK_TABLES_NLSF_CB0_10_H
+
+#include &quot;SKP_Silk_define.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define NLSF_MSVQ_CB0_10_STAGES       6
+#define NLSF_MSVQ_CB0_10_VECTORS      120
+
+/* NLSF codebook entropy coding tables */
+extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB0_10_CDF[ NLSF_MSVQ_CB0_10_VECTORS + NLSF_MSVQ_CB0_10_STAGES ];
+extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_10_CDF_start_ptr[                  NLSF_MSVQ_CB0_10_STAGES ];
+extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB0_10_CDF_middle_idx[                 NLSF_MSVQ_CB0_10_STAGES ];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_16c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,1463 +1,1319 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-
-
-
-
-
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/*                                            */
-/* ROM usage:   246+3689 Words                */
-/**********************************************/
-
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_tables_NLSF_CB0_16.h&quot;
-
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ] =
-{
-            0,
-         1449,
-         2749,
-         4022,
-         5267,
-         6434,
-         7600,
-         8647,
-         9695,
-        10742,
-        11681,
-        12601,
-        13444,
-        14251,
-        15008,
-        15764,
-        16521,
-        17261,
-        18002,
-        18710,
-        19419,
-        20128,
-        20837,
-        21531,
-        22225,
-        22919,
-        23598,
-        24277,
-        24956,
-        25620,
-        26256,
-        26865,
-        27475,
-
-
-
-
-
-        28071,
-        28667,
-        29263,
-        29859,
-        30443,
-        31026,
-        31597,
-        32168,
-        32727,
-        33273,
-        33808,
-        34332,
-        34855,
-        35379,
-        35902,
-        36415,
-        36927,
-        37439,
-        37941,
-        38442,
-        38932,
-        39423,
-        39914,
-        40404,
-        40884,
-        41364,
-        41844,
-        42324,
-        42805,
-        43285,
-        43754,
-        44224,
-        44694,
-        45164,
-        45623,
-        46083,
-        46543,
-        46993,
-        47443,
-        47892,
-        48333,
-        48773,
-        49213,
-        49653,
-        50084,
-        50515,
-        50946,
-        51377,
-
-
-
-
-
-        51798,
-        52211,
-        52614,
-        53018,
-        53422,
-        53817,
-        54212,
-        54607,
-        55002,
-        55388,
-        55775,
-        56162,
-        56548,
-        56910,
-        57273,
-        57635,
-        57997,
-        58352,
-        58698,
-        59038,
-        59370,
-        59702,
-        60014,
-        60325,
-        60630,
-        60934,
-        61239,
-        61537,
-        61822,
-        62084,
-        62346,
-        62602,
-        62837,
-        63072,
-        63302,
-        63517,
-        63732,
-        63939,
-        64145,
-        64342,
-        64528,
-        64701,
-        64867,
-        65023,
-        65151,
-        65279,
-        65407,
-        65535,
-
-
-
-
-
-            0,
-         5099,
-         9982,
-        14760,
-        19538,
-        24213,
-        28595,
-        32976,
-        36994,
-        41012,
-        44944,
-        48791,
-        52557,
-        56009,
-        59388,
-        62694,
-        65535,
-            0,
-         9955,
-        19697,
-        28825,
-        36842,
-        44686,
-        52198,
-        58939,
-        65535,
-            0,
-         8949,
-        17335,
-        25720,
-        33926,
-        41957,
-        49987,
-        57845,
-        65535,
-            0,
-         9724,
-        18642,
-        26998,
-        35355,
-        43532,
-        51534,
-        59365,
-        65535,
-            0,
-         8750,
-        17499,
-        26249,
-
-
-
-
-
-        34448,
-        42471,
-        50494,
-        58178,
-        65535,
-            0,
-         8730,
-        17273,
-        25816,
-        34176,
-        42536,
-        50203,
-        57869,
-        65535,
-            0,
-         8769,
-        17538,
-        26307,
-        34525,
-        42742,
-        50784,
-        58319,
-        65535,
-            0,
-         8736,
-        17101,
-        25466,
-        33653,
-        41839,
-        50025,
-        57864,
-        65535,
-            0,
-         4368,
-         8735,
-        12918,
-        17100,
-        21283,
-        25465,
-        29558,
-        33651,
-        37744,
-        41836,
-        45929,
-        50022,
-        54027,
-        57947,
-        61782,
-
-
-
-
-
-        65535
-};
-
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ] =
-{
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[   0 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 129 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 146 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 155 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 164 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 173 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 182 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 191 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 200 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 209 ]
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[ NLSF_MSVQ_CB0_16_STAGES ] =
-{
-      42,
-       8,
-       4,
-       5,
-       5,
-       5,
-       5,
-       5,
-       5,
-       9
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ NLSF_MSVQ_CB0_16_VECTORS ] =
-{
-              176,              181,
-              182,              183,
-              186,              186,
-              191,              191,
-              191,              196,
-              197,              201,
-              203,              206,
-              206,              206,
-              207,              207,
-              209,              209,
-              209,              209,
-              210,              210,
-              210,              211,
-              211,              211,
-              212,              214,
-
-
-
-
-
-              216,              216,
-              217,              217,
-              217,              217,
-              218,              218,
-              219,              219,
-              220,              221,
-              222,              223,
-              223,              223,
-              223,              224,
-              224,              224,
-              225,              225,
-              226,              226,
-              226,              226,
-              227,              227,
-              227,              227,
-              227,              227,
-              228,              228,
-              228,              228,
-              229,              229,
-              229,              230,
-              230,              230,
-              231,              231,
-              231,              231,
-              232,              232,
-              232,              232,
-              233,              234,
-              235,              235,
-              235,              236,
-              236,              236,
-              236,              237,
-              237,              237,
-              237,              240,
-              240,              240,
-              240,              241,
-              242,              243,
-              244,              244,
-              247,              247,
-              248,              248,
-              248,              249,
-              251,              255,
-              255,              256,
-              260,              260,
-              261,              264,
-              264,              266,
-              266,              268,
-              271,              274,
-              276,              279,
-              288,              288,
-
-
-
-
-
-              288,              288,
-              118,              120,
-              121,              121,
-              122,              125,
-              125,              129,
-              129,              130,
-              131,              132,
-              136,              137,
-              138,              145,
-               87,               88,
-               91,               97,
-               98,              100,
-              105,              106,
-               92,               95,
-               95,               96,
-               97,               97,
-               98,               99,
-               88,               92,
-               95,               95,
-               96,               97,
-               98,              109,
-               93,               93,
-               93,               96,
-               97,               97,
-               99,              101,
-               93,               94,
-               94,               95,
-               95,               99,
-               99,               99,
-               93,               93,
-               93,               96,
-               96,               97,
-              100,              102,
-               93,               95,
-               95,               96,
-               96,               96,
-               98,               99,
-              125,              125,
-              127,              127,
-              127,              127,
-              128,              128,
-              128,              128,
-              128,              128,
-              129,              130,
-              131,              132
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15[ 16 + 1 ] =
-
-
-
-
-
-{
-              266,
-                3,
-               40,
-                3,
-                3,
-               16,
-               78,
-               89,
-              107,
-              141,
-              188,
-              146,
-              272,
-              240,
-              235,
-              215,
-              632
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * NLSF_MSVQ_CB0_16_VECTORS ] =
-{
-             1170,             2278,             3658,             5374,
-             7666,             9113,            11298,            13304,
-            15371,            17549,            19587,            21487,
-            23798,            26038,            28318,            30201,
-             1628,             2334,             4115,             6036,
-             7818,             9544,            11777,            14021,
-            15787,            17408,            19466,            21261,
-            22886,            24565,            26714,            28059,
-             1724,             2670,             4056,             6532,
-             8357,            10119,            12093,            14061,
-            16491,            18795,            20417,            22402,
-            24251,            26224,            28410,            29956,
-             1493,             3427,             4789,             6399,
-             8435,            10168,            12000,            14066,
-            16229,            18210,            20040,            22098,
-            24153,            26095,            28183,            30121,
-             1119,             2089,             4295,             6245,
-             8691,            10741,            12688,            15057,
-            17028,            18792,            20717,            22514,
-            24497,            26548,            28619,            30630,
-             1363,             2417,             3927,             5556,
-             7422,             9315,            11879,            13767,
-            16143,            18520,            20458,            22578,
-            24539,            26436,            28318,            30318,
-             1122,             2503,             5216,             7148,
-             9310,            11078,            13175,            14800,
-
-
-
-
-
-            16864,            18700,            20436,            22488,
-            24572,            26602,            28555,            30426,
-              600,             1317,             2970,             5609,
-             7694,             9784,            12169,            14087,
-            16379,            18378,            20551,            22686,
-            24739,            26697,            28646,            30355,
-              941,             1882,             4274,             5540,
-             8482,             9858,            11940,            14287,
-            16091,            18501,            20326,            22612,
-            24711,            26638,            28814,            30430,
-              635,             1699,             4376,             5948,
-             8097,            10115,            12274,            14178,
-            16111,            17813,            19695,            21773,
-            23927,            25866,            28022,            30134,
-             1408,             2222,             3524,             5615,
-             7345,             8849,            10989,            12772,
-            15352,            17026,            18919,            21062,
-            23329,            25215,            27209,            29023,
-              701,             1307,             3548,             6301,
-             7744,             9574,            11227,            12978,
-            15170,            17565,            19775,            22097,
-            24230,            26335,            28377,            30231,
-             1752,             2364,             4879,             6569,
-             7813,             9796,            11199,            14290,
-            15795,            18000,            20396,            22417,
-            24308,            26124,            28360,            30633,
-              901,             1629,             3356,             4635,
-             7256,             8767,             9971,            11558,
-            15215,            17544,            19523,            21852,
-            23900,            25978,            28133,            30184,
-              981,             1669,             3323,             4693,
-             6213,             8692,            10614,            12956,
-            15211,            17711,            19856,            22122,
-            24344,            26592,            28723,            30481,
-             1607,             2577,             4220,             5512,
-             8532,            10388,            11627,            13671,
-            15752,            17199,            19840,            21859,
-            23494,            25786,            28091,            30131,
-              811,             1471,             3144,             5041,
-             7430,             9389,            11174,            13255,
-            15157,            16741,            19583,            22167,
-            24115,            26142,            28383,            30395,
-             1543,             2144,             3629,             6347,
-             7333,             9339,            10710,            13596,
-            15099,            17340,            20102,            21886,
-            23732,            25637,            27818,            29917,
-              492,             1185,             2940,             5488,
-             7095,             8751,            11596,            13579,
-
-
-
-
-
-            16045,            18015,            20178,            22127,
-            24265,            26406,            28484,            30357,
-             1547,             2282,             3693,             6341,
-             7758,             9607,            11848,            13236,
-            16564,            18069,            19759,            21404,
-            24110,            26606,            28786,            30655,
-              685,             1338,             3409,             5262,
-             6950,             9222,            11414,            14523,
-            16337,            17893,            19436,            21298,
-            23293,            25181,            27973,            30520,
-              887,             1581,             3057,             4318,
-             7192,             8617,            10047,            13106,
-            16265,            17893,            20233,            22350,
-            24379,            26384,            28314,            30189,
-             2285,             3745,             5662,             7576,
-             9323,            11320,            13239,            15191,
-            17175,            19225,            21108,            22972,
-            24821,            26655,            28561,            30460,
-             1496,             2108,             3448,             6898,
-             8328,             9656,            11252,            12823,
-            14979,            16482,            18180,            20085,
-            22962,            25160,            27705,            29629,
-              575,             1261,             3861,             6627,
-             8294,            10809,            12705,            14768,
-            17076,            19047,            20978,            23055,
-            24972,            26703,            28720,            30345,
-             1682,             2213,             3882,             6238,
-             7208,             9646,            10877,            13431,
-            14805,            16213,            17941,            20873,
-            23550,            25765,            27756,            29461,
-              888,             1616,             3924,             5195,
-             7206,             8647,             9842,            11473,
-            16067,            18221,            20343,            22774,
-            24503,            26412,            28054,            29731,
-              805,             1454,             2683,             4472,
-             7936,             9360,            11398,            14345,
-            16205,            17832,            19453,            21646,
-            23899,            25928,            28387,            30463,
-             1640,             2383,             3484,             5082,
-             6032,             8606,            11640,            12966,
-            15842,            17368,            19346,            21182,
-            23638,            25889,            28368,            30299,
-             1632,             2204,             4510,             7580,
-             8718,            10512,            11962,            14096,
-            15640,            17194,            19143,            22247,
-            24563,            26561,            28604,            30509,
-             2043,             2612,             3985,             6851,
-             8038,             9514,            10979,            12789,
-
-
-
-
-
-            15426,            16728,            18899,            20277,
-            22902,            26209,            28711,            30618,
-             2224,             2798,             4465,             5320,
-             7108,             9436,            10986,            13222,
-            14599,            18317,            20141,            21843,
-            23601,            25700,            28184,            30582,
-              835,             1541,             4083,             5769,
-             7386,             9399,            10971,            12456,
-            15021,            18642,            20843,            23100,
-            25292,            26966,            28952,            30422,
-             1795,             2343,             4809,             5896,
-             7178,             8545,            10223,            13370,
-            14606,            16469,            18273,            20736,
-            23645,            26257,            28224,            30390,
-             1734,             2254,             4031,             5188,
-             6506,             7872,             9651,            13025,
-            14419,            17305,            19495,            22190,
-            24403,            26302,            28195,            30177,
-             1841,             2349,             3968,             4764,
-             6376,             9825,            11048,            13345,
-            14682,            16252,            18183,            21363,
-            23918,            26156,            28031,            29935,
-             1432,             2047,             5631,             6927,
-             8198,             9675,            11358,            13506,
-            14802,            16419,            18339,            22019,
-            24124,            26177,            28130,            30586,
-             1730,             2320,             3744,             4808,
-             6007,             9666,            10997,            13622,
-            15234,            17495,            20088,            22002,
-            23603,            25400,            27379,            29254,
-             1267,             1915,             5483,             6812,
-             8229,             9919,            11589,            13337,
-            14747,            17965,            20552,            22167,
-            24519,            26819,            28883,            30642,
-             1526,             2229,             4240,             7388,
-             8953,            10450,            11899,            13718,
-            16861,            18323,            20379,            22672,
-            24797,            26906,            28906,            30622,
-             2175,             2791,             4104,             6875,
-             8612,             9798,            12152,            13536,
-            15623,            17682,            19213,            21060,
-            24382,            26760,            28633,            30248,
-              454,             1231,             4339,             5738,
-             7550,             9006,            10320,            13525,
-            16005,            17849,            20071,            21992,
-            23949,            26043,            28245,            30175,
-             2250,             2791,             4230,             5283,
-             6762,            10607,            11879,            13821,
-
-
-
-
-
-            15797,            17264,            20029,            22266,
-            24588,            26437,            28244,            30419,
-             1696,             2216,             4308,             8385,
-             9766,            11030,            12556,            14099,
-            16322,            17640,            19166,            20590,
-            23967,            26858,            28798,            30562,
-             2452,             3236,             4369,             6118,
-             7156,             9003,            11509,            12796,
-            15749,            17291,            19491,            22241,
-            24530,            26474,            28273,            30073,
-             1811,             2541,             3555,             5480,
-             9123,            10527,            11894,            13659,
-            15262,            16899,            19366,            21069,
-            22694,            24314,            27256,            29983,
-             1553,             2246,             4559,             5500,
-             6754,             7874,            11739,            13571,
-            15188,            17879,            20281,            22510,
-            24614,            26649,            28786,            30755,
-             1982,             2768,             3834,             5964,
-             8732,             9908,            11797,            14813,
-            16311,            17946,            21097,            22851,
-            24456,            26304,            28166,            29755,
-             1824,             2529,             3817,             5449,
-             6854,             8714,            10381,            12286,
-            14194,            15774,            19524,            21374,
-            23695,            26069,            28096,            30212,
-             2212,             2854,             3947,             5898,
-             9930,            11556,            12854,            14788,
-            16328,            17700,            20321,            22098,
-            23672,            25291,            26976,            28586,
-             2023,             2599,             4024,             4916,
-             6613,            11149,            12457,            14626,
-            16320,            17822,            19673,            21172,
-            23115,            26051,            28825,            30758,
-             1628,             2206,             3467,             4364,
-             8679,            10173,            11864,            13679,
-            14998,            16938,            19207,            21364,
-            23850,            26115,            28124,            30273,
-             2014,             2603,             4114,             7254,
-             8516,            10043,            11822,            13503,
-            16329,            17826,            19697,            21280,
-            23151,            24661,            26807,            30161,
-             2376,             2980,             4422,             5770,
-             7016,             9723,            11125,            13516,
-            15485,            16985,            19160,            20587,
-            24401,            27180,            29046,            30647,
-             2454,             3502,             4624,             6019,
-             7632,             8849,            10792,            13964,
-
-
-
-
-
-            15523,            17085,            19611,            21238,
-            22856,            25108,            28106,            29890,
-             1573,             2274,             3308,             5999,
-             8977,            10104,            12457,            14258,
-            15749,            18180,            19974,            21253,
-            23045,            25058,            27741,            30315,
-             1943,             2730,             4140,             6160,
-             7491,             8986,            11309,            12775,
-            14820,            16558,            17909,            19757,
-            21512,            23605,            27274,            29527,
-             2021,             2582,             4494,             5835,
-             6993,             8245,             9827,            14733,
-            16462,            17894,            19647,            21083,
-            23764,            26667,            29072,            30990,
-             1052,             1775,             3218,             4378,
-             7666,             9403,            11248,            13327,
-            14972,            17962,            20758,            22354,
-            25071,            27209,            29001,            30609,
-             2218,             2866,             4223,             5352,
-             6581,             9980,            11587,            13121,
-            15193,            16583,            18386,            20080,
-            22013,            25317,            28127,            29880,
-             2146,             2840,             4397,             5840,
-             7449,             8721,            10512,            11936,
-            13595,            17253,            19310,            20891,
-            23417,            25627,            27749,            30231,
-             1972,             2619,             3756,             6367,
-             7641,             8814,            12286,            13768,
-            15309,            18036,            19557,            20904,
-            22582,            24876,            27800,            30440,
-             2005,             2577,             4272,             7373,
-             8558,            10223,            11770,            13402,
-            16502,            18000,            19645,            21104,
-            22990,            26806,            29505,            30942,
-             1153,             1822,             3724,             5443,
-             6990,             8702,            10289,            11899,
-            13856,            15315,            17601,            21064,
-            23692,            26083,            28586,            30639,
-             1304,             1869,             3318,             7195,
-             9613,            10733,            12393,            13728,
-            15822,            17474,            18882,            20692,
-            23114,            25540,            27684,            29244,
-             2093,             2691,             4018,             6658,
-             7947,             9147,            10497,            11881,
-            15888,            17821,            19333,            21233,
-            23371,            25234,            27553,            29998,
-              575,             1331,             5304,             6910,
-             8425,            10086,            11577,            13498,
-
-
-
-
-
-            16444,            18527,            20565,            22847,
-            24914,            26692,            28759,            30157,
-             1435,             2024,             3283,             4156,
-             7611,            10592,            12049,            13927,
-            15459,            18413,            20495,            22270,
-            24222,            26093,            28065,            30099,
-             1632,             2168,             5540,             7478,
-             8630,            10391,            11644,            14321,
-            15741,            17357,            18756,            20434,
-            22799,            26060,            28542,            30696,
-             1407,             2245,             3405,             5639,
-             9419,            10685,            12104,            13495,
-            15535,            18357,            19996,            21689,
-            24351,            26550,            28853,            30564,
-             1675,             2226,             4005,             8223,
-             9975,            11155,            12822,            14316,
-            16504,            18137,            19574,            21050,
-            22759,            24912,            28296,            30634,
-             1080,             1614,             3622,             7565,
-             8748,            10303,            11713,            13848,
-            15633,            17434,            19761,            21825,
-            23571,            25393,            27406,            29063,
-             1693,             2229,             3456,             4354,
-             5670,            10890,            12563,            14167,
-            15879,            17377,            19817,            21971,
-            24094,            26131,            28298,            30099,
-             2042,             2959,             4195,             5740,
-             7106,             8267,            11126,            14973,
-            16914,            18295,            20532,            21982,
-            23711,            25769,            27609,            29351,
-              984,             1612,             3808,             5265,
-             6885,             8411,             9547,            10889,
-            12522,            16520,            19549,            21639,
-            23746,            26058,            28310,            30374,
-             2036,             2538,             4166,             7761,
-             9146,            10412,            12144,            13609,
-            15588,            17169,            18559,            20113,
-            21820,            24313,            28029,            30612,
-             1871,             2355,             4061,             5143,
-             7464,            10129,            11941,            15001,
-            16680,            18354,            19957,            22279,
-            24861,            26872,            28988,            30615,
-             2566,             3161,             4643,             6227,
-             7406,             9970,            11618,            13416,
-            15889,            17364,            19121,            20817,
-            22592,            24720,            28733,            31082,
-             1700,             2327,             4828,             5939,
-             7567,             9154,            11087,            12771,
-
-
-
-
-
-            14209,            16121,            20222,            22671,
-            24648,            26656,            28696,            30745,
-             3169,             3873,             5046,             6868,
-             8184,             9480,            12335,            14068,
-            15774,            17971,            20231,            21711,
-            23520,            25245,            27026,            28730,
-             1564,             2391,             4229,             6730,
-             8905,            10459,            13026,            15033,
-            17265,            19809,            21849,            23741,
-            25490,            27312,            29061,            30527,
-             2864,             3559,             4719,             6441,
-             9592,            11055,            12763,            14784,
-            16428,            18164,            20486,            22262,
-            24183,            26263,            28383,            30224,
-             2673,             3449,             4581,             5983,
-             6863,             8311,            12464,            13911,
-            15738,            17791,            19416,            21182,
-            24025,            26561,            28723,            30440,
-             2419,             3049,             4274,             6384,
-             8564,             9661,            11288,            12676,
-            14447,            17578,            19816,            21231,
-            23099,            25270,            26899,            28926,
-             1278,             2001,             3000,             5353,
-             9995,            11777,            13018,            14570,
-            16050,            17762,            19982,            21617,
-            23371,            25083,            27656,            30172,
-              932,             1624,             2798,             4570,
-             8592,             9988,            11552,            13050,
-            16921,            18677,            20415,            22810,
-            24817,            26819,            28804,            30385,
-             2324,             2973,             4156,             5702,
-             6919,             8806,            10259,            12503,
-            15015,            16567,            19418,            21375,
-            22943,            24550,            27024,            29849,
-             1564,             2373,             3455,             4907,
-             5975,             7436,            11786,            14505,
-            16107,            18148,            20019,            21653,
-            23740,            25814,            28578,            30372,
-             3025,             3729,             4866,             6520,
-             9487,            10943,            12358,            14258,
-            16174,            17501,            19476,            21408,
-            23227,            24906,            27347,            29407,
-             1270,             1965,             6802,             7995,
-             9204,            10828,            12507,            14230,
-            15759,            17860,            20369,            22502,
-            24633,            26514,            28535,            30525,
-             2210,             2749,             4266,             7487,
-             9878,            11018,            12823,            14431,
-
-
-
-
-
-            16247,            18626,            20450,            22054,
-            23739,            25291,            27074,            29169,
-             1275,             1926,             4330,             6573,
-             8441,            10920,            13260,            15008,
-            16927,            18573,            20644,            22217,
-            23983,            25474,            27372,            28645,
-             3015,             3670,             5086,             6372,
-             7888,             9309,            10966,            12642,
-            14495,            16172,            18080,            19972,
-            22454,            24899,            27362,            29975,
-             2882,             3733,             5113,             6482,
-             8125,             9685,            11598,            13288,
-            15405,            17192,            20178,            22426,
-            24801,            27014,            29212,            30811,
-             2300,             2968,             4101,             5442,
-             6327,             7910,            12455,            13862,
-            15747,            17505,            19053,            20679,
-            22615,            24658,            27499,            30065,
-             2257,             2940,             4430,             5991,
-             7042,             8364,             9414,            11224,
-            15723,            17420,            19253,            21469,
-            23915,            26053,            28430,            30384,
-             1227,             2045,             3818,             5011,
-             6990,             9231,            11024,            13011,
-            17341,            19017,            20583,            22799,
-            25195,            26876,            29351,            30805,
-             1354,             1924,             3789,             8077,
-            10453,            11639,            13352,            14817,
-            16743,            18189,            20095,            22014,
-            24593,            26677,            28647,            30256,
-             3142,             4049,             6197,             7417,
-             8753,            10156,            11533,            13181,
-            15947,            17655,            19606,            21402,
-            23487,            25659,            28123,            30304,
-             1317,             2263,             4725,             7611,
-             9667,            11634,            14143,            16258,
-            18724,            20698,            22379,            24007,
-            25775,            27251,            28930,            30593,
-             1570,             2323,             3818,             6215,
-             9893,            11556,            13070,            14631,
-            16152,            18290,            21386,            23346,
-            25114,            26923,            28712,            30168,
-             2297,             3905,             6287,             8558,
-            10668,            12766,            15019,            17102,
-            19036,            20677,            22341,            23871,
-            25478,            27085,            28851,            30520,
-             1915,             2507,             4033,             5749,
-             7059,             8871,            10659,            12198,
-
-
-
-
-
-            13937,            15383,            16869,            18707,
-            23175,            25818,            28514,            30501,
-             2404,             2918,             5190,             6252,
-             7426,             9887,            12387,            14795,
-            16754,            18368,            20338,            22003,
-            24236,            26456,            28490,            30397,
-             1621,             2227,             3479,             5085,
-             9425,            12892,            14246,            15652,
-            17205,            18674,            20446,            22209,
-            23778,            25867,            27931,            30093,
-             1869,             2390,             4105,             7021,
-            11221,            12775,            14059,            15590,
-            17024,            18608,            20595,            22075,
-            23649,            25154,            26914,            28671,
-             2551,             3252,             4688,             6562,
-             7869,             9125,            10475,            11800,
-            15402,            18780,            20992,            22555,
-            24289,            25968,            27465,            29232,
-             2705,             3493,             4735,             6360,
-             7905,             9352,            11538,            13430,
-            15239,            16919,            18619,            20094,
-            21800,            23342,            25200,            29257,
-             2166,             2791,             4011,             5081,
-             5896,             9038,            13407,            14703,
-            16543,            18189,            19896,            21857,
-            24872,            26971,            28955,            30514,
-             1865,             3021,             4696,             6534,
-             8343,             9914,            12789,            14103,
-            16533,            17729,            21340,            22439,
-            24873,            26330,            28428,            30154,
-             3369,             4345,             6573,             8763,
-            10309,            11713,            13367,            14784,
-            16483,            18145,            19839,            21247,
-            23292,            25477,            27555,            29447,
-             1265,             2184,             5443,             7893,
-            10591,            13139,            15105,            16639,
-            18402,            19826,            21419,            22995,
-            24719,            26437,            28363,            30125,
-             1584,             2004,             3535,             4450,
-             8662,            10764,            12832,            14978,
-            16972,            18794,            20932,            22547,
-            24636,            26521,            28701,            30567,
-             3419,             4528,             6602,             7890,
-             9508,            10875,            12771,            14357,
-            16051,            18330,            20630,            22490,
-            25070,            26936,            28946,            30542,
-             1726,             2252,             4597,             6950,
-             8379,             9823,            11363,            12794,
-
-
-
-
-
-            14306,            15476,            16798,            18018,
-            21671,            25550,            28148,            30367,
-             3385,             3870,             5307,             6388,
-             7141,             8684,            12695,            14939,
-            16480,            18277,            20537,            22048,
-            23947,            25965,            28214,            29956,
-             2771,             3306,             4450,             5560,
-             6453,             9493,            13548,            14754,
-            16743,            18447,            20028,            21736,
-            23746,            25353,            27141,            29066,
-             3028,             3900,             6617,             7893,
-             9211,            10480,            12047,            13583,
-            15182,            16662,            18502,            20092,
-            22190,            24358,            26302,            28957,
-             2000,             2550,             4067,             6837,
-             9628,            11002,            12594,            14098,
-            15589,            17195,            18679,            20099,
-            21530,            23085,            24641,            29022,
-             2844,             3302,             5103,             6107,
-             6911,             8598,            12416,            14054,
-            16026,            18567,            20672,            22270,
-            23952,            25771,            27658,            30026,
-             4043,             5150,             7268,             9056,
-            10916,            12638,            14543,            16184,
-            17948,            19691,            21357,            22981,
-            24825,            26591,            28479,            30233,
-             2109,             2625,             4320,             5525,
-             7454,            10220,            12980,            14698,
-            17627,            19263,            20485,            22381,
-            24279,            25777,            27847,            30458,
-             1550,             2667,             6473,             9496,
-            10985,            12352,            13795,            15233,
-            17099,            18642,            20461,            22116,
-            24197,            26291,            28403,            30132,
-             2411,             3084,             4145,             5394,
-             6367,             8154,            13125,            16049,
-            17561,            19125,            21258,            22762,
-            24459,            26317,            28255,            29702,
-             4159,             4516,             5956,             7635,
-             8254,             8980,            11208,            14133,
-            16210,            17875,            20196,            21864,
-            23840,            25747,            28058,            30012,
-             2026,             2431,             2845,             3618,
-             7950,             9802,            12721,            14460,
-            16576,            18984,            21376,            23319,
-            24961,            26718,            28971,            30640,
-             3429,             3833,             4472,             4912,
-             7723,            10386,            12981,            15322,
-
-
-
-
-
-            16699,            18807,            20778,            22551,
-            24627,            26494,            28334,            30482,
-             4740,             5169,             5796,             6485,
-             6998,             8830,            11777,            14414,
-            16831,            18413,            20789,            22369,
-            24236,            25835,            27807,            30021,
-              150,              168,              -17,             -107,
-             -142,             -229,             -320,             -406,
-             -503,             -620,             -867,             -935,
-             -902,             -680,             -398,             -114,
-             -398,             -355,               49,              255,
-              114,              260,              399,              264,
-              317,              431,              514,              531,
-              435,              356,              238,              106,
-              -43,              -36,             -169,             -224,
-             -391,             -633,             -776,             -970,
-             -844,             -455,             -181,              -12,
-               85,               85,              164,              195,
-              122,               85,             -158,             -640,
-             -903,                9,                7,             -124,
-              149,               32,              220,              369,
-              242,              115,               79,               84,
-             -146,             -216,              -70,             1024,
-              751,              574,              440,              377,
-              352,              203,               30,               16,
-               -3,               81,              161,              100,
-             -148,             -176,              933,              750,
-              404,              171,               -2,             -146,
-             -411,             -442,             -541,             -552,
-             -442,             -269,             -240,              -52,
-              603,              635,              405,              178,
-              215,               19,             -153,             -167,
-             -290,             -219,              151,              271,
-              151,              119,              303,              266,
-              100,               69,             -293,             -657,
-              939,              659,              442,              351,
-              132,               98,              -16,               -1,
-             -135,             -200,             -223,              -89,
-              167,              154,              172,              237,
-              -45,             -183,             -228,             -486,
-              263,              608,              158,             -125,
-             -390,             -227,             -118,               43,
-             -457,             -392,             -769,             -840,
-               20,             -117,             -194,             -189,
-             -173,             -173,              -33,               32,
-              174,              144,              115,              167,
-               57,               44,               14,              147,
-               96,              -54,             -142,             -129,
-
-
-
-
-
-             -254,             -331,              304,              310,
-              -52,             -419,             -846,            -1060,
-              -88,             -123,             -202,             -343,
-             -554,             -961,             -951,              327,
-              159,               81,              255,              227,
-              120,              203,              256,              192,
-              164,              224,              290,              195,
-              216,              209,              128,              832,
-             1028,              889,              698,              504,
-              408,              355,              218,               32,
-             -115,              -84,             -276,             -100,
-             -312,             -484,              899,              682,
-              465,              456,              241,              -12,
-             -275,             -425,             -461,             -367,
-              -33,              -28,             -102,             -194,
-             -527,              863,              906,              463,
-              245,               13,             -212,             -305,
-             -105,              163,              279,              176,
-               93,               67,              115,              192,
-               61,              -50,             -132,             -175,
-             -224,             -271,             -629,             -252,
-             1158,              972,              638,              280,
-              300,              326,              143,             -152,
-             -214,             -287,               53,              -42,
-             -236,             -352,             -423,             -248,
-             -129,             -163,             -178,             -119,
-               85,               57,              514,              382,
-              374,              402,              424,              423,
-              271,              197,               97,               40,
-               39,              -97,             -191,             -164,
-             -230,             -256,             -410,              396,
-              327,              127,               10,             -119,
-             -167,             -291,             -274,             -141,
-              -99,             -226,             -218,             -139,
-             -224,             -209,             -268,             -442,
-             -413,              222,               58,              521,
-              344,              258,               76,              -42,
-             -142,             -165,             -123,              -92,
-               47,                8,               -3,             -191,
-              -11,             -164,             -167,             -351,
-             -740,              311,              538,              291,
-              184,               29,             -105,                9,
-              -30,              -54,              -17,              -77,
-             -271,             -412,             -622,             -648,
-              476,              186,              -66,             -197,
-              -73,              -94,              -15,               47,
-               28,              112,              -58,              -33,
-               65,               19,               84,               86,
-
-
-
-
-
-              276,              114,              472,              786,
-              799,              625,              415,              178,
-              -35,              -26,                5,                9,
-               83,               39,               37,               39,
-             -184,             -374,             -265,             -362,
-             -501,              337,              716,              478,
-              -60,             -125,             -163,              362,
-               17,             -122,             -233,              279,
-              138,              157,              318,              193,
-              189,              209,              266,              252,
-              -46,              -56,             -277,             -429,
-              464,              386,              142,               44,
-              -43,               66,              264,              182,
-               47,               14,              -26,              -79,
-               49,               15,             -128,             -203,
-             -400,             -478,              325,               27,
-              234,              411,              205,              129,
-               12,               58,              123,               57,
-              171,              137,               96,              128,
-              -32,              134,              -12,               57,
-              119,               26,              -22,             -165,
-             -500,             -701,             -528,             -116,
-               64,               -8,               97,               -9,
-             -162,              -66,             -156,             -194,
-             -303,             -546,             -341,              546,
-              358,               95,               45,               76,
-              270,              403,              205,              100,
-              123,               50,              -53,             -144,
-             -110,              -13,               32,             -228,
-             -130,              353,              296,               56,
-             -372,             -253,              365,               73,
-               10,              -34,             -139,             -191,
-              -96,                5,               44,              -85,
-             -179,             -129,             -192,             -246,
-              -85,             -110,             -155,              -44,
-              -27,              145,              138,               79,
-               32,             -148,             -577,             -634,
-              191,               94,               -9,              -35,
-              -77,              -84,              -56,             -171,
-             -298,             -271,             -243,             -156,
-             -328,             -235,              -76,             -128,
-             -121,              129,               13,              -22,
-               32,               45,             -248,              -65,
-              193,              -81,              299,               57,
-             -147,              192,             -165,             -354,
-             -334,             -106,             -156,              -40,
-               -3,              -68,              124,             -257,
-               78,              124,              170,              412,
-
-
-
-
-
-              227,              105,             -104,               12,
-              154,              250,              274,              258,
-                4,              -27,              235,              152,
-               51,              338,              300,                7,
-             -314,             -411,              215,              170,
-               -9,              -93,              -77,               76,
-               67,               54,              200,              315,
-              163,               72,              -91,             -402,
-              158,              187,             -156,              -91,
-              290,              267,              167,               91,
-              140,              171,              112,                9,
-              -42,             -177,             -440,              385,
-               80,               15,              172,              129,
-               41,             -129,             -372,              -24,
-              -75,              -30,             -170,               10,
-             -118,               57,               78,             -101,
-              232,              161,              123,              256,
-              277,              101,             -192,             -629,
-             -100,              -60,             -232,               66,
-               13,              -13,              -80,             -239,
-              239,               37,               32,               89,
-             -319,             -579,              450,              360,
-                3,              -29,             -299,              -89,
-              -54,             -110,             -246,             -164,
-                6,             -188,              338,              176,
-              -92,              197,              137,              134,
-               12,               -2,               56,             -183,
-              114,              -36,             -131,             -204,
-               75,              -25,             -174,              191,
-              -15,             -290,             -429,             -267,
-               79,               37,              106,               23,
-             -384,              425,               70,              -14,
-              212,              105,               15,               -2,
-              -42,              -37,             -123,              108,
-               28,              -48,              193,              197,
-              173,              -33,               37,               73,
-              -57,              256,              137,              -58,
-             -430,             -228,              217,              -51,
-              -10,              -58,               -6,               22,
-              104,               61,             -119,              169,
-              144,               16,              -46,             -394,
-               60,              454,              -80,             -298,
-              -65,               25,                0,              -24,
-              -65,             -417,              465,              276,
-               -3,             -194,              -13,              130,
-               19,               -6,              -21,              -24,
-             -180,              -53,              -85,               20,
-              118,              147,              113,              -75,
-
-
-
-
-
-             -289,              226,             -122,              227,
-              270,              125,              109,              197,
-              125,              138,               44,               60,
-               25,              -55,             -167,              -32,
-             -139,             -193,             -173,             -316,
-              287,             -208,              253,              239,
-               27,              -80,             -188,              -28,
-             -182,             -235,              156,             -117,
-              128,              -48,              -58,             -226,
-              172,              181,              167,               19,
-               62,               10,                2,              181,
-              151,              108,              -16,              -11,
-              -78,             -331,              411,              133,
-               17,              104,               64,             -184,
-               24,              -30,               -3,             -283,
-              121,              204,               -8,             -199,
-              -21,              -80,             -169,             -157,
-             -191,             -136,               81,              155,
-               14,             -131,              244,               74,
-              -57,              -47,             -280,              347,
-              111,              -77,             -128,             -142,
-             -194,             -125,               -6,              -68,
-               91,                1,               23,               14,
-             -154,              -34,               23,              -38,
-             -343,              503,              146,              -38,
-              -46,              -41,               58,               31,
-               63,              -48,             -117,               45,
-               28,                1,              -89,               -5,
-              -44,              -29,             -448,              487,
-              204,               81,               46,             -106,
-             -302,              380,              120,              -38,
-              -12,              -39,               70,               -3,
-               25,              -65,               30,              -11,
-               34,              -15,               22,             -115,
-                0,              -79,              -83,               45,
-              114,               43,              150,               36,
-              233,              149,              195,                5,
-               25,              -52,             -475,              274,
-               28,              -39,               -8,              -66,
-             -255,              258,               56,              143,
-              -45,             -190,              165,              -60,
-               20,                2,              125,             -129,
-               51,               -8,             -335,              288,
-               38,               59,               25,              -42,
-               23,             -118,             -112,               11,
-              -55,             -133,             -109,               24,
-             -105,               78,              -64,             -245,
-              202,              -65,             -127,              162,
-
-
-
-
-
-               40,              -94,               89,              -85,
-             -119,             -103,               97,                9,
-              -70,              -28,              194,               86,
-             -112,              -92,             -114,               74,
-              -49,               46,              -84,             -178,
-              113,               52,             -205,              333,
-               88,              222,               56,              -55,
-               13,               86,                4,              -77,
-              224,              114,             -105,              112,
-              125,              -29,              -18,             -144,
-               22,              -58,              -99,               28,
-              114,              -66,              -32,             -169,
-             -314,              285,               72,              -74,
-              179,               28,              -79,             -182,
-               13,              -55,              147,               13,
-               12,              -54,               31,              -84,
-              -17,              -75,             -228,               83,
-             -375,              436,              110,              -63,
-              -27,             -136,              169,              -56,
-               -8,             -171,              184,              -42,
-              148,               68,              204,              235,
-              110,             -229,               91,              171,
-              -43,               -3,              -26,              -99,
-             -111,               71,             -170,              202,
-              -67,              181,              -37,              109,
-             -120,                3,              -55,             -260,
-              -16,              152,               91,              142,
-               42,               44,              134,               47,
-               17,              -35,               22,               79,
-             -169,               41,               46,              277,
-              -93,              -49,             -126,               37,
-             -103,              -34,              -22,              -90,
-             -134,             -205,               92,               -9,
-                1,             -195,             -239,               45,
-               54,               18,              -23,               -1,
-              -80,              -98,              -20,             -261,
-              306,               72,               20,              -89,
-             -217,               11,                6,              -82,
-               89,               13,             -129,              -89,
-               83,              -71,              -55,              130,
-              -98,             -146,              -27,              -57,
-               53,              275,               17,              170,
-               -5,              -54,              132,              -64,
-               72,              160,             -125,             -168,
-               72,               40,              170,               78,
-              248,              116,               20,               84,
-               31,              -34,              190,               38,
-               13,             -106,              225,               27,
-
-
-
-
-
-             -168,               24,             -157,             -122,
-              165,               11,             -161,             -213,
-              -12,              -51,             -101,               42,
-              101,               27,               55,              111,
-               75,               71,              -96,               -1,
-               65,             -277,              393,              -26,
-              -44,              -68,              -84,              -66,
-              -95,              235,              179,              -25,
-              -41,               27,              -91,             -128,
-             -222,              146,              -72,              -30,
-              -24,               55,             -126,              -68,
-              -58,             -127,               13,              -97,
-             -106,              174,             -100,              155,
-              101,             -146,              -21,              261,
-               22,               38,              -66,               65,
-                4,               70,               64,              144,
-               59,              213,               71,             -337,
-              303,              -52,               51,              -56,
-                1,               10,              -15,               -5,
-               34,               52,              228,              131,
-              161,             -127,             -214,              238,
-              123,               64,             -147,              -50,
-              -34,             -127,              204,              162,
-               85,               41,                5,             -140,
-               73,             -150,               56,              -96,
-              -66,              -20,                2,             -235,
-               59,              -22,             -107,              150,
-              -16,              -47,               -4,               81,
-              -67,              167,              149,              149,
-             -157,              288,             -156,              -27,
-               -8,               18,               83,              -24,
-              -41,             -167,              158,             -100,
-               93,               53,              201,               15,
-               42,              266,              278,              -12,
-               -6,              -37,               85,                6,
-               20,             -188,             -271,              107,
-              -13,              -80,               51,              202,
-              173,              -69,               78,             -188,
-               46,                4,              153,               12,
-             -138,              169,                5,              -58,
-             -123,             -108,             -243,              150,
-               10,             -191,              246,              -15,
-               38,               25,              -10,               14,
-               61,               50,             -206,             -215,
-             -220,               90,                5,             -149,
-             -219,               56,              142,               24,
-             -376,               77,              -80,               75,
-                6,               42,             -101,               16,
-
-
-
-
-
-               56,               14,              -57,                3,
-              -17,               80,               57,              -36,
-               88,              -59,              -97,              -19,
-             -148,               46,             -219,              226,
-              114,               -4,              -72,              -15,
-               37,              -49,              -28,              247,
-               44,              123,               47,             -122,
-              -38,               17,                4,             -113,
-              -32,             -224,              154,             -134,
-              196,               71,             -267,              -85,
-               28,              -70,               89,             -120,
-               99,               -2,               64,               76,
-             -166,              -48,              189,              -35,
-              -92,             -169,             -123,              339,
-               38,              -25,               38,              -35,
-              225,             -139,              -50,              -63,
-              246,               60,             -185,             -109,
-              -49,              -53,             -167,               51,
-              149,               60,             -101,              -33,
-               25,              -76,              120,               32,
-              -30,              -83,              102,               91,
-             -186,             -261,              131,             -197
-};
-
-const SKP_Silk_NLSF_CB_Stage_struct SKP_Silk_NLSF_CB0_16_Stage_info[ NLSF_MSVQ_CB0_16_STAGES ] =
-{
-        { 128, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[   0 ] },
-        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 128 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 128 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 144 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 144 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 152 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 152 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 160 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 160 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 168 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 168 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 176 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 176 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 184 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 184 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 192 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 192 ] },
-        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 200 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 200 ] }
-};
-
-const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16 =
-{
-        NLSF_MSVQ_CB0_16_STAGES,
-        SKP_Silk_NLSF_CB0_16_Stage_info,
-        SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15,
-        SKP_Silk_NLSF_MSVQ_CB0_16_CDF,
-        SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr,
-        SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx
-};
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/**********************************************/
+/* This file has been automatically generated */
+/*                                            */
+/* ROM usage:   246+3689 Words                */
+/**********************************************/
+
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_tables_NLSF_CB0_16.h&quot;
+
+const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ] =
+{
+            0,
+         1449,
+         2749,
+         4022,
+         5267,
+         6434,
+         7600,
+         8647,
+         9695,
+        10742,
+        11681,
+        12601,
+        13444,
+        14251,
+        15008,
+        15764,
+        16521,
+        17261,
+        18002,
+        18710,
+        19419,
+        20128,
+        20837,
+        21531,
+        22225,
+        22919,
+        23598,
+        24277,
+        24956,
+        25620,
+        26256,
+        26865,
+        27475,
+        28071,
+        28667,
+        29263,
+        29859,
+        30443,
+        31026,
+        31597,
+        32168,
+        32727,
+        33273,
+        33808,
+        34332,
+        34855,
+        35379,
+        35902,
+        36415,
+        36927,
+        37439,
+        37941,
+        38442,
+        38932,
+        39423,
+        39914,
+        40404,
+        40884,
+        41364,
+        41844,
+        42324,
+        42805,
+        43285,
+        43754,
+        44224,
+        44694,
+        45164,
+        45623,
+        46083,
+        46543,
+        46993,
+        47443,
+        47892,
+        48333,
+        48773,
+        49213,
+        49653,
+        50084,
+        50515,
+        50946,
+        51377,
+        51798,
+        52211,
+        52614,
+        53018,
+        53422,
+        53817,
+        54212,
+        54607,
+        55002,
+        55388,
+        55775,
+        56162,
+        56548,
+        56910,
+        57273,
+        57635,
+        57997,
+        58352,
+        58698,
+        59038,
+        59370,
+        59702,
+        60014,
+        60325,
+        60630,
+        60934,
+        61239,
+        61537,
+        61822,
+        62084,
+        62346,
+        62602,
+        62837,
+        63072,
+        63302,
+        63517,
+        63732,
+        63939,
+        64145,
+        64342,
+        64528,
+        64701,
+        64867,
+        65023,
+        65151,
+        65279,
+        65407,
+        65535,
+            0,
+         5099,
+         9982,
+        14760,
+        19538,
+        24213,
+        28595,
+        32976,
+        36994,
+        41012,
+        44944,
+        48791,
+        52557,
+        56009,
+        59388,
+        62694,
+        65535,
+            0,
+         9955,
+        19697,
+        28825,
+        36842,
+        44686,
+        52198,
+        58939,
+        65535,
+            0,
+         8949,
+        17335,
+        25720,
+        33926,
+        41957,
+        49987,
+        57845,
+        65535,
+            0,
+         9724,
+        18642,
+        26998,
+        35355,
+        43532,
+        51534,
+        59365,
+        65535,
+            0,
+         8750,
+        17499,
+        26249,
+        34448,
+        42471,
+        50494,
+        58178,
+        65535,
+            0,
+         8730,
+        17273,
+        25816,
+        34176,
+        42536,
+        50203,
+        57869,
+        65535,
+            0,
+         8769,
+        17538,
+        26307,
+        34525,
+        42742,
+        50784,
+        58319,
+        65535,
+            0,
+         8736,
+        17101,
+        25466,
+        33653,
+        41839,
+        50025,
+        57864,
+        65535,
+            0,
+         4368,
+         8735,
+        12918,
+        17100,
+        21283,
+        25465,
+        29558,
+        33651,
+        37744,
+        41836,
+        45929,
+        50022,
+        54027,
+        57947,
+        61782,
+        65535
+};
+
+const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[ NLSF_MSVQ_CB0_16_STAGES ] =
+{
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[   0 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 129 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 146 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 155 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 164 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 173 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 182 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 191 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 200 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ 209 ]
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[ NLSF_MSVQ_CB0_16_STAGES ] =
+{
+      42,
+       8,
+       4,
+       5,
+       5,
+       5,
+       5,
+       5,
+       5,
+       9
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ NLSF_MSVQ_CB0_16_VECTORS ] =
+{
+              176,              181,
+              182,              183,
+              186,              186,
+              191,              191,
+              191,              196,
+              197,              201,
+              203,              206,
+              206,              206,
+              207,              207,
+              209,              209,
+              209,              209,
+              210,              210,
+              210,              211,
+              211,              211,
+              212,              214,
+              216,              216,
+              217,              217,
+              217,              217,
+              218,              218,
+              219,              219,
+              220,              221,
+              222,              223,
+              223,              223,
+              223,              224,
+              224,              224,
+              225,              225,
+              226,              226,
+              226,              226,
+              227,              227,
+              227,              227,
+              227,              227,
+              228,              228,
+              228,              228,
+              229,              229,
+              229,              230,
+              230,              230,
+              231,              231,
+              231,              231,
+              232,              232,
+              232,              232,
+              233,              234,
+              235,              235,
+              235,              236,
+              236,              236,
+              236,              237,
+              237,              237,
+              237,              240,
+              240,              240,
+              240,              241,
+              242,              243,
+              244,              244,
+              247,              247,
+              248,              248,
+              248,              249,
+              251,              255,
+              255,              256,
+              260,              260,
+              261,              264,
+              264,              266,
+              266,              268,
+              271,              274,
+              276,              279,
+              288,              288,
+              288,              288,
+              118,              120,
+              121,              121,
+              122,              125,
+              125,              129,
+              129,              130,
+              131,              132,
+              136,              137,
+              138,              145,
+               87,               88,
+               91,               97,
+               98,              100,
+              105,              106,
+               92,               95,
+               95,               96,
+               97,               97,
+               98,               99,
+               88,               92,
+               95,               95,
+               96,               97,
+               98,              109,
+               93,               93,
+               93,               96,
+               97,               97,
+               99,              101,
+               93,               94,
+               94,               95,
+               95,               99,
+               99,               99,
+               93,               93,
+               93,               96,
+               96,               97,
+              100,              102,
+               93,               95,
+               95,               96,
+               96,               96,
+               98,               99,
+              125,              125,
+              127,              127,
+              127,              127,
+              128,              128,
+              128,              128,
+              128,              128,
+              129,              130,
+              131,              132
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15[ 16 + 1 ] =
+{
+              266,
+                3,
+               40,
+                3,
+                3,
+               16,
+               78,
+               89,
+              107,
+              141,
+              188,
+              146,
+              272,
+              240,
+              235,
+              215,
+              632
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * NLSF_MSVQ_CB0_16_VECTORS ] =
+{
+             1170,             2278,             3658,             5374,
+             7666,             9113,            11298,            13304,
+            15371,            17549,            19587,            21487,
+            23798,            26038,            28318,            30201,
+             1628,             2334,             4115,             6036,
+             7818,             9544,            11777,            14021,
+            15787,            17408,            19466,            21261,
+            22886,            24565,            26714,            28059,
+             1724,             2670,             4056,             6532,
+             8357,            10119,            12093,            14061,
+            16491,            18795,            20417,            22402,
+            24251,            26224,            28410,            29956,
+             1493,             3427,             4789,             6399,
+             8435,            10168,            12000,            14066,
+            16229,            18210,            20040,            22098,
+            24153,            26095,            28183,            30121,
+             1119,             2089,             4295,             6245,
+             8691,            10741,            12688,            15057,
+            17028,            18792,            20717,            22514,
+            24497,            26548,            28619,            30630,
+             1363,             2417,             3927,             5556,
+             7422,             9315,            11879,            13767,
+            16143,            18520,            20458,            22578,
+            24539,            26436,            28318,            30318,
+             1122,             2503,             5216,             7148,
+             9310,            11078,            13175,            14800,
+            16864,            18700,            20436,            22488,
+            24572,            26602,            28555,            30426,
+              600,             1317,             2970,             5609,
+             7694,             9784,            12169,            14087,
+            16379,            18378,            20551,            22686,
+            24739,            26697,            28646,            30355,
+              941,             1882,             4274,             5540,
+             8482,             9858,            11940,            14287,
+            16091,            18501,            20326,            22612,
+            24711,            26638,            28814,            30430,
+              635,             1699,             4376,             5948,
+             8097,            10115,            12274,            14178,
+            16111,            17813,            19695,            21773,
+            23927,            25866,            28022,            30134,
+             1408,             2222,             3524,             5615,
+             7345,             8849,            10989,            12772,
+            15352,            17026,            18919,            21062,
+            23329,            25215,            27209,            29023,
+              701,             1307,             3548,             6301,
+             7744,             9574,            11227,            12978,
+            15170,            17565,            19775,            22097,
+            24230,            26335,            28377,            30231,
+             1752,             2364,             4879,             6569,
+             7813,             9796,            11199,            14290,
+            15795,            18000,            20396,            22417,
+            24308,            26124,            28360,            30633,
+              901,             1629,             3356,             4635,
+             7256,             8767,             9971,            11558,
+            15215,            17544,            19523,            21852,
+            23900,            25978,            28133,            30184,
+              981,             1669,             3323,             4693,
+             6213,             8692,            10614,            12956,
+            15211,            17711,            19856,            22122,
+            24344,            26592,            28723,            30481,
+             1607,             2577,             4220,             5512,
+             8532,            10388,            11627,            13671,
+            15752,            17199,            19840,            21859,
+            23494,            25786,            28091,            30131,
+              811,             1471,             3144,             5041,
+             7430,             9389,            11174,            13255,
+            15157,            16741,            19583,            22167,
+            24115,            26142,            28383,            30395,
+             1543,             2144,             3629,             6347,
+             7333,             9339,            10710,            13596,
+            15099,            17340,            20102,            21886,
+            23732,            25637,            27818,            29917,
+              492,             1185,             2940,             5488,
+             7095,             8751,            11596,            13579,
+            16045,            18015,            20178,            22127,
+            24265,            26406,            28484,            30357,
+             1547,             2282,             3693,             6341,
+             7758,             9607,            11848,            13236,
+            16564,            18069,            19759,            21404,
+            24110,            26606,            28786,            30655,
+              685,             1338,             3409,             5262,
+             6950,             9222,            11414,            14523,
+            16337,            17893,            19436,            21298,
+            23293,            25181,            27973,            30520,
+              887,             1581,             3057,             4318,
+             7192,             8617,            10047,            13106,
+            16265,            17893,            20233,            22350,
+            24379,            26384,            28314,            30189,
+             2285,             3745,             5662,             7576,
+             9323,            11320,            13239,            15191,
+            17175,            19225,            21108,            22972,
+            24821,            26655,            28561,            30460,
+             1496,             2108,             3448,             6898,
+             8328,             9656,            11252,            12823,
+            14979,            16482,            18180,            20085,
+            22962,            25160,            27705,            29629,
+              575,             1261,             3861,             6627,
+             8294,            10809,            12705,            14768,
+            17076,            19047,            20978,            23055,
+            24972,            26703,            28720,            30345,
+             1682,             2213,             3882,             6238,
+             7208,             9646,            10877,            13431,
+            14805,            16213,            17941,            20873,
+            23550,            25765,            27756,            29461,
+              888,             1616,             3924,             5195,
+             7206,             8647,             9842,            11473,
+            16067,            18221,            20343,            22774,
+            24503,            26412,            28054,            29731,
+              805,             1454,             2683,             4472,
+             7936,             9360,            11398,            14345,
+            16205,            17832,            19453,            21646,
+            23899,            25928,            28387,            30463,
+             1640,             2383,             3484,             5082,
+             6032,             8606,            11640,            12966,
+            15842,            17368,            19346,            21182,
+            23638,            25889,            28368,            30299,
+             1632,             2204,             4510,             7580,
+             8718,            10512,            11962,            14096,
+            15640,            17194,            19143,            22247,
+            24563,            26561,            28604,            30509,
+             2043,             2612,             3985,             6851,
+             8038,             9514,            10979,            12789,
+            15426,            16728,            18899,            20277,
+            22902,            26209,            28711,            30618,
+             2224,             2798,             4465,             5320,
+             7108,             9436,            10986,            13222,
+            14599,            18317,            20141,            21843,
+            23601,            25700,            28184,            30582,
+              835,             1541,             4083,             5769,
+             7386,             9399,            10971,            12456,
+            15021,            18642,            20843,            23100,
+            25292,            26966,            28952,            30422,
+             1795,             2343,             4809,             5896,
+             7178,             8545,            10223,            13370,
+            14606,            16469,            18273,            20736,
+            23645,            26257,            28224,            30390,
+             1734,             2254,             4031,             5188,
+             6506,             7872,             9651,            13025,
+            14419,            17305,            19495,            22190,
+            24403,            26302,            28195,            30177,
+             1841,             2349,             3968,             4764,
+             6376,             9825,            11048,            13345,
+            14682,            16252,            18183,            21363,
+            23918,            26156,            28031,            29935,
+             1432,             2047,             5631,             6927,
+             8198,             9675,            11358,            13506,
+            14802,            16419,            18339,            22019,
+            24124,            26177,            28130,            30586,
+             1730,             2320,             3744,             4808,
+             6007,             9666,            10997,            13622,
+            15234,            17495,            20088,            22002,
+            23603,            25400,            27379,            29254,
+             1267,             1915,             5483,             6812,
+             8229,             9919,            11589,            13337,
+            14747,            17965,            20552,            22167,
+            24519,            26819,            28883,            30642,
+             1526,             2229,             4240,             7388,
+             8953,            10450,            11899,            13718,
+            16861,            18323,            20379,            22672,
+            24797,            26906,            28906,            30622,
+             2175,             2791,             4104,             6875,
+             8612,             9798,            12152,            13536,
+            15623,            17682,            19213,            21060,
+            24382,            26760,            28633,            30248,
+              454,             1231,             4339,             5738,
+             7550,             9006,            10320,            13525,
+            16005,            17849,            20071,            21992,
+            23949,            26043,            28245,            30175,
+             2250,             2791,             4230,             5283,
+             6762,            10607,            11879,            13821,
+            15797,            17264,            20029,            22266,
+            24588,            26437,            28244,            30419,
+             1696,             2216,             4308,             8385,
+             9766,            11030,            12556,            14099,
+            16322,            17640,            19166,            20590,
+            23967,            26858,            28798,            30562,
+             2452,             3236,             4369,             6118,
+             7156,             9003,            11509,            12796,
+            15749,            17291,            19491,            22241,
+            24530,            26474,            28273,            30073,
+             1811,             2541,             3555,             5480,
+             9123,            10527,            11894,            13659,
+            15262,            16899,            19366,            21069,
+            22694,            24314,            27256,            29983,
+             1553,             2246,             4559,             5500,
+             6754,             7874,            11739,            13571,
+            15188,            17879,            20281,            22510,
+            24614,            26649,            28786,            30755,
+             1982,             2768,             3834,             5964,
+             8732,             9908,            11797,            14813,
+            16311,            17946,            21097,            22851,
+            24456,            26304,            28166,            29755,
+             1824,             2529,             3817,             5449,
+             6854,             8714,            10381,            12286,
+            14194,            15774,            19524,            21374,
+            23695,            26069,            28096,            30212,
+             2212,             2854,             3947,             5898,
+             9930,            11556,            12854,            14788,
+            16328,            17700,            20321,            22098,
+            23672,            25291,            26976,            28586,
+             2023,             2599,             4024,             4916,
+             6613,            11149,            12457,            14626,
+            16320,            17822,            19673,            21172,
+            23115,            26051,            28825,            30758,
+             1628,             2206,             3467,             4364,
+             8679,            10173,            11864,            13679,
+            14998,            16938,            19207,            21364,
+            23850,            26115,            28124,            30273,
+             2014,             2603,             4114,             7254,
+             8516,            10043,            11822,            13503,
+            16329,            17826,            19697,            21280,
+            23151,            24661,            26807,            30161,
+             2376,             2980,             4422,             5770,
+             7016,             9723,            11125,            13516,
+            15485,            16985,            19160,            20587,
+            24401,            27180,            29046,            30647,
+             2454,             3502,             4624,             6019,
+             7632,             8849,            10792,            13964,
+            15523,            17085,            19611,            21238,
+            22856,            25108,            28106,            29890,
+             1573,             2274,             3308,             5999,
+             8977,            10104,            12457,            14258,
+            15749,            18180,            19974,            21253,
+            23045,            25058,            27741,            30315,
+             1943,             2730,             4140,             6160,
+             7491,             8986,            11309,            12775,
+            14820,            16558,            17909,            19757,
+            21512,            23605,            27274,            29527,
+             2021,             2582,             4494,             5835,
+             6993,             8245,             9827,            14733,
+            16462,            17894,            19647,            21083,
+            23764,            26667,            29072,            30990,
+             1052,             1775,             3218,             4378,
+             7666,             9403,            11248,            13327,
+            14972,            17962,            20758,            22354,
+            25071,            27209,            29001,            30609,
+             2218,             2866,             4223,             5352,
+             6581,             9980,            11587,            13121,
+            15193,            16583,            18386,            20080,
+            22013,            25317,            28127,            29880,
+             2146,             2840,             4397,             5840,
+             7449,             8721,            10512,            11936,
+            13595,            17253,            19310,            20891,
+            23417,            25627,            27749,            30231,
+             1972,             2619,             3756,             6367,
+             7641,             8814,            12286,            13768,
+            15309,            18036,            19557,            20904,
+            22582,            24876,            27800,            30440,
+             2005,             2577,             4272,             7373,
+             8558,            10223,            11770,            13402,
+            16502,            18000,            19645,            21104,
+            22990,            26806,            29505,            30942,
+             1153,             1822,             3724,             5443,
+             6990,             8702,            10289,            11899,
+            13856,            15315,            17601,            21064,
+            23692,            26083,            28586,            30639,
+             1304,             1869,             3318,             7195,
+             9613,            10733,            12393,            13728,
+            15822,            17474,            18882,            20692,
+            23114,            25540,            27684,            29244,
+             2093,             2691,             4018,             6658,
+             7947,             9147,            10497,            11881,
+            15888,            17821,            19333,            21233,
+            23371,            25234,            27553,            29998,
+              575,             1331,             5304,             6910,
+             8425,            10086,            11577,            13498,
+            16444,            18527,            20565,            22847,
+            24914,            26692,            28759,            30157,
+             1435,             2024,             3283,             4156,
+             7611,            10592,            12049,            13927,
+            15459,            18413,            20495,            22270,
+            24222,            26093,            28065,            30099,
+             1632,             2168,             5540,             7478,
+             8630,            10391,            11644,            14321,
+            15741,            17357,            18756,            20434,
+            22799,            26060,            28542,            30696,
+             1407,             2245,             3405,             5639,
+             9419,            10685,            12104,            13495,
+            15535,            18357,            19996,            21689,
+            24351,            26550,            28853,            30564,
+             1675,             2226,             4005,             8223,
+             9975,            11155,            12822,            14316,
+            16504,            18137,            19574,            21050,
+            22759,            24912,            28296,            30634,
+             1080,             1614,             3622,             7565,
+             8748,            10303,            11713,            13848,
+            15633,            17434,            19761,            21825,
+            23571,            25393,            27406,            29063,
+             1693,             2229,             3456,             4354,
+             5670,            10890,            12563,            14167,
+            15879,            17377,            19817,            21971,
+            24094,            26131,            28298,            30099,
+             2042,             2959,             4195,             5740,
+             7106,             8267,            11126,            14973,
+            16914,            18295,            20532,            21982,
+            23711,            25769,            27609,            29351,
+              984,             1612,             3808,             5265,
+             6885,             8411,             9547,            10889,
+            12522,            16520,            19549,            21639,
+            23746,            26058,            28310,            30374,
+             2036,             2538,             4166,             7761,
+             9146,            10412,            12144,            13609,
+            15588,            17169,            18559,            20113,
+            21820,            24313,            28029,            30612,
+             1871,             2355,             4061,             5143,
+             7464,            10129,            11941,            15001,
+            16680,            18354,            19957,            22279,
+            24861,            26872,            28988,            30615,
+             2566,             3161,             4643,             6227,
+             7406,             9970,            11618,            13416,
+            15889,            17364,            19121,            20817,
+            22592,            24720,            28733,            31082,
+             1700,             2327,             4828,             5939,
+             7567,             9154,            11087,            12771,
+            14209,            16121,            20222,            22671,
+            24648,            26656,            28696,            30745,
+             3169,             3873,             5046,             6868,
+             8184,             9480,            12335,            14068,
+            15774,            17971,            20231,            21711,
+            23520,            25245,            27026,            28730,
+             1564,             2391,             4229,             6730,
+             8905,            10459,            13026,            15033,
+            17265,            19809,            21849,            23741,
+            25490,            27312,            29061,            30527,
+             2864,             3559,             4719,             6441,
+             9592,            11055,            12763,            14784,
+            16428,            18164,            20486,            22262,
+            24183,            26263,            28383,            30224,
+             2673,             3449,             4581,             5983,
+             6863,             8311,            12464,            13911,
+            15738,            17791,            19416,            21182,
+            24025,            26561,            28723,            30440,
+             2419,             3049,             4274,             6384,
+             8564,             9661,            11288,            12676,
+            14447,            17578,            19816,            21231,
+            23099,            25270,            26899,            28926,
+             1278,             2001,             3000,             5353,
+             9995,            11777,            13018,            14570,
+            16050,            17762,            19982,            21617,
+            23371,            25083,            27656,            30172,
+              932,             1624,             2798,             4570,
+             8592,             9988,            11552,            13050,
+            16921,            18677,            20415,            22810,
+            24817,            26819,            28804,            30385,
+             2324,             2973,             4156,             5702,
+             6919,             8806,            10259,            12503,
+            15015,            16567,            19418,            21375,
+            22943,            24550,            27024,            29849,
+             1564,             2373,             3455,             4907,
+             5975,             7436,            11786,            14505,
+            16107,            18148,            20019,            21653,
+            23740,            25814,            28578,            30372,
+             3025,             3729,             4866,             6520,
+             9487,            10943,            12358,            14258,
+            16174,            17501,            19476,            21408,
+            23227,            24906,            27347,            29407,
+             1270,             1965,             6802,             7995,
+             9204,            10828,            12507,            14230,
+            15759,            17860,            20369,            22502,
+            24633,            26514,            28535,            30525,
+             2210,             2749,             4266,             7487,
+             9878,            11018,            12823,            14431,
+            16247,            18626,            20450,            22054,
+            23739,            25291,            27074,            29169,
+             1275,             1926,             4330,             6573,
+             8441,            10920,            13260,            15008,
+            16927,            18573,            20644,            22217,
+            23983,            25474,            27372,            28645,
+             3015,             3670,             5086,             6372,
+             7888,             9309,            10966,            12642,
+            14495,            16172,            18080,            19972,
+            22454,            24899,            27362,            29975,
+             2882,             3733,             5113,             6482,
+             8125,             9685,            11598,            13288,
+            15405,            17192,            20178,            22426,
+            24801,            27014,            29212,            30811,
+             2300,             2968,             4101,             5442,
+             6327,             7910,            12455,            13862,
+            15747,            17505,            19053,            20679,
+            22615,            24658,            27499,            30065,
+             2257,             2940,             4430,             5991,
+             7042,             8364,             9414,            11224,
+            15723,            17420,            19253,            21469,
+            23915,            26053,            28430,            30384,
+             1227,             2045,             3818,             5011,
+             6990,             9231,            11024,            13011,
+            17341,            19017,            20583,            22799,
+            25195,            26876,            29351,            30805,
+             1354,             1924,             3789,             8077,
+            10453,            11639,            13352,            14817,
+            16743,            18189,            20095,            22014,
+            24593,            26677,            28647,            30256,
+             3142,             4049,             6197,             7417,
+             8753,            10156,            11533,            13181,
+            15947,            17655,            19606,            21402,
+            23487,            25659,            28123,            30304,
+             1317,             2263,             4725,             7611,
+             9667,            11634,            14143,            16258,
+            18724,            20698,            22379,            24007,
+            25775,            27251,            28930,            30593,
+             1570,             2323,             3818,             6215,
+             9893,            11556,            13070,            14631,
+            16152,            18290,            21386,            23346,
+            25114,            26923,            28712,            30168,
+             2297,             3905,             6287,             8558,
+            10668,            12766,            15019,            17102,
+            19036,            20677,            22341,            23871,
+            25478,            27085,            28851,            30520,
+             1915,             2507,             4033,             5749,
+             7059,             8871,            10659,            12198,
+            13937,            15383,            16869,            18707,
+            23175,            25818,            28514,            30501,
+             2404,             2918,             5190,             6252,
+             7426,             9887,            12387,            14795,
+            16754,            18368,            20338,            22003,
+            24236,            26456,            28490,            30397,
+             1621,             2227,             3479,             5085,
+             9425,            12892,            14246,            15652,
+            17205,            18674,            20446,            22209,
+            23778,            25867,            27931,            30093,
+             1869,             2390,             4105,             7021,
+            11221,            12775,            14059,            15590,
+            17024,            18608,            20595,            22075,
+            23649,            25154,            26914,            28671,
+             2551,             3252,             4688,             6562,
+             7869,             9125,            10475,            11800,
+            15402,            18780,            20992,            22555,
+            24289,            25968,            27465,            29232,
+             2705,             3493,             4735,             6360,
+             7905,             9352,            11538,            13430,
+            15239,            16919,            18619,            20094,
+            21800,            23342,            25200,            29257,
+             2166,             2791,             4011,             5081,
+             5896,             9038,            13407,            14703,
+            16543,            18189,            19896,            21857,
+            24872,            26971,            28955,            30514,
+             1865,             3021,             4696,             6534,
+             8343,             9914,            12789,            14103,
+            16533,            17729,            21340,            22439,
+            24873,            26330,            28428,            30154,
+             3369,             4345,             6573,             8763,
+            10309,            11713,            13367,            14784,
+            16483,            18145,            19839,            21247,
+            23292,            25477,            27555,            29447,
+             1265,             2184,             5443,             7893,
+            10591,            13139,            15105,            16639,
+            18402,            19826,            21419,            22995,
+            24719,            26437,            28363,            30125,
+             1584,             2004,             3535,             4450,
+             8662,            10764,            12832,            14978,
+            16972,            18794,            20932,            22547,
+            24636,            26521,            28701,            30567,
+             3419,             4528,             6602,             7890,
+             9508,            10875,            12771,            14357,
+            16051,            18330,            20630,            22490,
+            25070,            26936,            28946,            30542,
+             1726,             2252,             4597,             6950,
+             8379,             9823,            11363,            12794,
+            14306,            15476,            16798,            18018,
+            21671,            25550,            28148,            30367,
+             3385,             3870,             5307,             6388,
+             7141,             8684,            12695,            14939,
+            16480,            18277,            20537,            22048,
+            23947,            25965,            28214,            29956,
+             2771,             3306,             4450,             5560,
+             6453,             9493,            13548,            14754,
+            16743,            18447,            20028,            21736,
+            23746,            25353,            27141,            29066,
+             3028,             3900,             6617,             7893,
+             9211,            10480,            12047,            13583,
+            15182,            16662,            18502,            20092,
+            22190,            24358,            26302,            28957,
+             2000,             2550,             4067,             6837,
+             9628,            11002,            12594,            14098,
+            15589,            17195,            18679,            20099,
+            21530,            23085,            24641,            29022,
+             2844,             3302,             5103,             6107,
+             6911,             8598,            12416,            14054,
+            16026,            18567,            20672,            22270,
+            23952,            25771,            27658,            30026,
+             4043,             5150,             7268,             9056,
+            10916,            12638,            14543,            16184,
+            17948,            19691,            21357,            22981,
+            24825,            26591,            28479,            30233,
+             2109,             2625,             4320,             5525,
+             7454,            10220,            12980,            14698,
+            17627,            19263,            20485,            22381,
+            24279,            25777,            27847,            30458,
+             1550,             2667,             6473,             9496,
+            10985,            12352,            13795,            15233,
+            17099,            18642,            20461,            22116,
+            24197,            26291,            28403,            30132,
+             2411,             3084,             4145,             5394,
+             6367,             8154,            13125,            16049,
+            17561,            19125,            21258,            22762,
+            24459,            26317,            28255,            29702,
+             4159,             4516,             5956,             7635,
+             8254,             8980,            11208,            14133,
+            16210,            17875,            20196,            21864,
+            23840,            25747,            28058,            30012,
+             2026,             2431,             2845,             3618,
+             7950,             9802,            12721,            14460,
+            16576,            18984,            21376,            23319,
+            24961,            26718,            28971,            30640,
+             3429,             3833,             4472,             4912,
+             7723,            10386,            12981,            15322,
+            16699,            18807,            20778,            22551,
+            24627,            26494,            28334,            30482,
+             4740,             5169,             5796,             6485,
+             6998,             8830,            11777,            14414,
+            16831,            18413,            20789,            22369,
+            24236,            25835,            27807,            30021,
+              150,              168,              -17,             -107,
+             -142,             -229,             -320,             -406,
+             -503,             -620,             -867,             -935,
+             -902,             -680,             -398,             -114,
+             -398,             -355,               49,              255,
+              114,              260,              399,              264,
+              317,              431,              514,              531,
+              435,              356,              238,              106,
+              -43,              -36,             -169,             -224,
+             -391,             -633,             -776,             -970,
+             -844,             -455,             -181,              -12,
+               85,               85,              164,              195,
+              122,               85,             -158,             -640,
+             -903,                9,                7,             -124,
+              149,               32,              220,              369,
+              242,              115,               79,               84,
+             -146,             -216,              -70,             1024,
+              751,              574,              440,              377,
+              352,              203,               30,               16,
+               -3,               81,              161,              100,
+             -148,             -176,              933,              750,
+              404,              171,               -2,             -146,
+             -411,             -442,             -541,             -552,
+             -442,             -269,             -240,              -52,
+              603,              635,              405,              178,
+              215,               19,             -153,             -167,
+             -290,             -219,              151,              271,
+              151,              119,              303,              266,
+              100,               69,             -293,             -657,
+              939,              659,              442,              351,
+              132,               98,              -16,               -1,
+             -135,             -200,             -223,              -89,
+              167,              154,              172,              237,
+              -45,             -183,             -228,             -486,
+              263,              608,              158,             -125,
+             -390,             -227,             -118,               43,
+             -457,             -392,             -769,             -840,
+               20,             -117,             -194,             -189,
+             -173,             -173,              -33,               32,
+              174,              144,              115,              167,
+               57,               44,               14,              147,
+               96,              -54,             -142,             -129,
+             -254,             -331,              304,              310,
+              -52,             -419,             -846,            -1060,
+              -88,             -123,             -202,             -343,
+             -554,             -961,             -951,              327,
+              159,               81,              255,              227,
+              120,              203,              256,              192,
+              164,              224,              290,              195,
+              216,              209,              128,              832,
+             1028,              889,              698,              504,
+              408,              355,              218,               32,
+             -115,              -84,             -276,             -100,
+             -312,             -484,              899,              682,
+              465,              456,              241,              -12,
+             -275,             -425,             -461,             -367,
+              -33,              -28,             -102,             -194,
+             -527,              863,              906,              463,
+              245,               13,             -212,             -305,
+             -105,              163,              279,              176,
+               93,               67,              115,              192,
+               61,              -50,             -132,             -175,
+             -224,             -271,             -629,             -252,
+             1158,              972,              638,              280,
+              300,              326,              143,             -152,
+             -214,             -287,               53,              -42,
+             -236,             -352,             -423,             -248,
+             -129,             -163,             -178,             -119,
+               85,               57,              514,              382,
+              374,              402,              424,              423,
+              271,              197,               97,               40,
+               39,              -97,             -191,             -164,
+             -230,             -256,             -410,              396,
+              327,              127,               10,             -119,
+             -167,             -291,             -274,             -141,
+              -99,             -226,             -218,             -139,
+             -224,             -209,             -268,             -442,
+             -413,              222,               58,              521,
+              344,              258,               76,              -42,
+             -142,             -165,             -123,              -92,
+               47,                8,               -3,             -191,
+              -11,             -164,             -167,             -351,
+             -740,              311,              538,              291,
+              184,               29,             -105,                9,
+              -30,              -54,              -17,              -77,
+             -271,             -412,             -622,             -648,
+              476,              186,              -66,             -197,
+              -73,              -94,              -15,               47,
+               28,              112,              -58,              -33,
+               65,               19,               84,               86,
+              276,              114,              472,              786,
+              799,              625,              415,              178,
+              -35,              -26,                5,                9,
+               83,               39,               37,               39,
+             -184,             -374,             -265,             -362,
+             -501,              337,              716,              478,
+              -60,             -125,             -163,              362,
+               17,             -122,             -233,              279,
+              138,              157,              318,              193,
+              189,              209,              266,              252,
+              -46,              -56,             -277,             -429,
+              464,              386,              142,               44,
+              -43,               66,              264,              182,
+               47,               14,              -26,              -79,
+               49,               15,             -128,             -203,
+             -400,             -478,              325,               27,
+              234,              411,              205,              129,
+               12,               58,              123,               57,
+              171,              137,               96,              128,
+              -32,              134,              -12,               57,
+              119,               26,              -22,             -165,
+             -500,             -701,             -528,             -116,
+               64,               -8,               97,               -9,
+             -162,              -66,             -156,             -194,
+             -303,             -546,             -341,              546,
+              358,               95,               45,               76,
+              270,              403,              205,              100,
+              123,               50,              -53,             -144,
+             -110,              -13,               32,             -228,
+             -130,              353,              296,               56,
+             -372,             -253,              365,               73,
+               10,              -34,             -139,             -191,
+              -96,                5,               44,              -85,
+             -179,             -129,             -192,             -246,
+              -85,             -110,             -155,              -44,
+              -27,              145,              138,               79,
+               32,             -148,             -577,             -634,
+              191,               94,               -9,              -35,
+              -77,              -84,              -56,             -171,
+             -298,             -271,             -243,             -156,
+             -328,             -235,              -76,             -128,
+             -121,              129,               13,              -22,
+               32,               45,             -248,              -65,
+              193,              -81,              299,               57,
+             -147,              192,             -165,             -354,
+             -334,             -106,             -156,              -40,
+               -3,              -68,              124,             -257,
+               78,              124,              170,              412,
+              227,              105,             -104,               12,
+              154,              250,              274,              258,
+                4,              -27,              235,              152,
+               51,              338,              300,                7,
+             -314,             -411,              215,              170,
+               -9,              -93,              -77,               76,
+               67,               54,              200,              315,
+              163,               72,              -91,             -402,
+              158,              187,             -156,              -91,
+              290,              267,              167,               91,
+              140,              171,              112,                9,
+              -42,             -177,             -440,              385,
+               80,               15,              172,              129,
+               41,             -129,             -372,              -24,
+              -75,              -30,             -170,               10,
+             -118,               57,               78,             -101,
+              232,              161,              123,              256,
+              277,              101,             -192,             -629,
+             -100,              -60,             -232,               66,
+               13,              -13,              -80,             -239,
+              239,               37,               32,               89,
+             -319,             -579,              450,              360,
+                3,              -29,             -299,              -89,
+              -54,             -110,             -246,             -164,
+                6,             -188,              338,              176,
+              -92,              197,              137,              134,
+               12,               -2,               56,             -183,
+              114,              -36,             -131,             -204,
+               75,              -25,             -174,              191,
+              -15,             -290,             -429,             -267,
+               79,               37,              106,               23,
+             -384,              425,               70,              -14,
+              212,              105,               15,               -2,
+              -42,              -37,             -123,              108,
+               28,              -48,              193,              197,
+              173,              -33,               37,               73,
+              -57,              256,              137,              -58,
+             -430,             -228,              217,              -51,
+              -10,              -58,               -6,               22,
+              104,               61,             -119,              169,
+              144,               16,              -46,             -394,
+               60,              454,              -80,             -298,
+              -65,               25,                0,              -24,
+              -65,             -417,              465,              276,
+               -3,             -194,              -13,              130,
+               19,               -6,              -21,              -24,
+             -180,              -53,              -85,               20,
+              118,              147,              113,              -75,
+             -289,              226,             -122,              227,
+              270,              125,              109,              197,
+              125,              138,               44,               60,
+               25,              -55,             -167,              -32,
+             -139,             -193,             -173,             -316,
+              287,             -208,              253,              239,
+               27,              -80,             -188,              -28,
+             -182,             -235,              156,             -117,
+              128,              -48,              -58,             -226,
+              172,              181,              167,               19,
+               62,               10,                2,              181,
+              151,              108,              -16,              -11,
+              -78,             -331,              411,              133,
+               17,              104,               64,             -184,
+               24,              -30,               -3,             -283,
+              121,              204,               -8,             -199,
+              -21,              -80,             -169,             -157,
+             -191,             -136,               81,              155,
+               14,             -131,              244,               74,
+              -57,              -47,             -280,              347,
+              111,              -77,             -128,             -142,
+             -194,             -125,               -6,              -68,
+               91,                1,               23,               14,
+             -154,              -34,               23,              -38,
+             -343,              503,              146,              -38,
+              -46,              -41,               58,               31,
+               63,              -48,             -117,               45,
+               28,                1,              -89,               -5,
+              -44,              -29,             -448,              487,
+              204,               81,               46,             -106,
+             -302,              380,              120,              -38,
+              -12,              -39,               70,               -3,
+               25,              -65,               30,              -11,
+               34,              -15,               22,             -115,
+                0,              -79,              -83,               45,
+              114,               43,              150,               36,
+              233,              149,              195,                5,
+               25,              -52,             -475,              274,
+               28,              -39,               -8,              -66,
+             -255,              258,               56,              143,
+              -45,             -190,              165,              -60,
+               20,                2,              125,             -129,
+               51,               -8,             -335,              288,
+               38,               59,               25,              -42,
+               23,             -118,             -112,               11,
+              -55,             -133,             -109,               24,
+             -105,               78,              -64,             -245,
+              202,              -65,             -127,              162,
+               40,              -94,               89,              -85,
+             -119,             -103,               97,                9,
+              -70,              -28,              194,               86,
+             -112,              -92,             -114,               74,
+              -49,               46,              -84,             -178,
+              113,               52,             -205,              333,
+               88,              222,               56,              -55,
+               13,               86,                4,              -77,
+              224,              114,             -105,              112,
+              125,              -29,              -18,             -144,
+               22,              -58,              -99,               28,
+              114,              -66,              -32,             -169,
+             -314,              285,               72,              -74,
+              179,               28,              -79,             -182,
+               13,              -55,              147,               13,
+               12,              -54,               31,              -84,
+              -17,              -75,             -228,               83,
+             -375,              436,              110,              -63,
+              -27,             -136,              169,              -56,
+               -8,             -171,              184,              -42,
+              148,               68,              204,              235,
+              110,             -229,               91,              171,
+              -43,               -3,              -26,              -99,
+             -111,               71,             -170,              202,
+              -67,              181,              -37,              109,
+             -120,                3,              -55,             -260,
+              -16,              152,               91,              142,
+               42,               44,              134,               47,
+               17,              -35,               22,               79,
+             -169,               41,               46,              277,
+              -93,              -49,             -126,               37,
+             -103,              -34,              -22,              -90,
+             -134,             -205,               92,               -9,
+                1,             -195,             -239,               45,
+               54,               18,              -23,               -1,
+              -80,              -98,              -20,             -261,
+              306,               72,               20,              -89,
+             -217,               11,                6,              -82,
+               89,               13,             -129,              -89,
+               83,              -71,              -55,              130,
+              -98,             -146,              -27,              -57,
+               53,              275,               17,              170,
+               -5,              -54,              132,              -64,
+               72,              160,             -125,             -168,
+               72,               40,              170,               78,
+              248,              116,               20,               84,
+               31,              -34,              190,               38,
+               13,             -106,              225,               27,
+             -168,               24,             -157,             -122,
+              165,               11,             -161,             -213,
+              -12,              -51,             -101,               42,
+              101,               27,               55,              111,
+               75,               71,              -96,               -1,
+               65,             -277,              393,              -26,
+              -44,              -68,              -84,              -66,
+              -95,              235,              179,              -25,
+              -41,               27,              -91,             -128,
+             -222,              146,              -72,              -30,
+              -24,               55,             -126,              -68,
+              -58,             -127,               13,              -97,
+             -106,              174,             -100,              155,
+              101,             -146,              -21,              261,
+               22,               38,              -66,               65,
+                4,               70,               64,              144,
+               59,              213,               71,             -337,
+              303,              -52,               51,              -56,
+                1,               10,              -15,               -5,
+               34,               52,              228,              131,
+              161,             -127,             -214,              238,
+              123,               64,             -147,              -50,
+              -34,             -127,              204,              162,
+               85,               41,                5,             -140,
+               73,             -150,               56,              -96,
+              -66,              -20,                2,             -235,
+               59,              -22,             -107,              150,
+              -16,              -47,               -4,               81,
+              -67,              167,              149,              149,
+             -157,              288,             -156,              -27,
+               -8,               18,               83,              -24,
+              -41,             -167,              158,             -100,
+               93,               53,              201,               15,
+               42,              266,              278,              -12,
+               -6,              -37,               85,                6,
+               20,             -188,             -271,              107,
+              -13,              -80,               51,              202,
+              173,              -69,               78,             -188,
+               46,                4,              153,               12,
+             -138,              169,                5,              -58,
+             -123,             -108,             -243,              150,
+               10,             -191,              246,              -15,
+               38,               25,              -10,               14,
+               61,               50,             -206,             -215,
+             -220,               90,                5,             -149,
+             -219,               56,              142,               24,
+             -376,               77,              -80,               75,
+                6,               42,             -101,               16,
+               56,               14,              -57,                3,
+              -17,               80,               57,              -36,
+               88,              -59,              -97,              -19,
+             -148,               46,             -219,              226,
+              114,               -4,              -72,              -15,
+               37,              -49,              -28,              247,
+               44,              123,               47,             -122,
+              -38,               17,                4,             -113,
+              -32,             -224,              154,             -134,
+              196,               71,             -267,              -85,
+               28,              -70,               89,             -120,
+               99,               -2,               64,               76,
+             -166,              -48,              189,              -35,
+              -92,             -169,             -123,              339,
+               38,              -25,               38,              -35,
+              225,             -139,              -50,              -63,
+              246,               60,             -185,             -109,
+              -49,              -53,             -167,               51,
+              149,               60,             -101,              -33,
+               25,              -76,              120,               32,
+              -30,              -83,              102,               91,
+             -186,             -261,              131,             -197
+};
+
+const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB0_16_Stage_info[ NLSF_MSVQ_CB0_16_STAGES ] =
+{
+        { 128, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[   0 ] },
+        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 128 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 128 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 144 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 144 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 152 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 152 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 160 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 160 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 168 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 168 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 176 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 176 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 184 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 184 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 192 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 192 ] },
+        {  16, &amp;SKP_Silk_NLSF_MSVQ_CB0_16_Q15[ 16 * 200 ], &amp;SKP_Silk_NLSF_MSVQ_CB0_16_rates_Q5[ 200 ] }
+};
+
+const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB0_16 =
+{
+        NLSF_MSVQ_CB0_16_STAGES,
+        SKP_Silk_NLSF_CB0_16_Stage_info,
+        SKP_Silk_NLSF_MSVQ_CB0_16_ndelta_min_Q15,
+        SKP_Silk_NLSF_MSVQ_CB0_16_CDF,
+        SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr,
+        SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB0_16h"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,62 +1,51 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#ifndef SKP_SILK_TABLES_NLSF_CB0_16_H
-#define SKP_SILK_TABLES_NLSF_CB0_16_H
-
-#include &quot;SKP_Silk_define.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define NLSF_MSVQ_CB0_16_STAGES       10
-#define NLSF_MSVQ_CB0_16_VECTORS      216
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[                  NLSF_MSVQ_CB0_16_STAGES ];
-
-
-
-
-
-extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[                 NLSF_MSVQ_CB0_16_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_TABLES_NLSF_CB0_16_H
+#define SKP_SILK_TABLES_NLSF_CB0_16_H
+
+#include &quot;SKP_Silk_define.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define NLSF_MSVQ_CB0_16_STAGES       10
+#define NLSF_MSVQ_CB0_16_VECTORS      216
+
+/* NLSF codebook entropy coding tables */
+extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB0_16_CDF[ NLSF_MSVQ_CB0_16_VECTORS + NLSF_MSVQ_CB0_16_STAGES ];
+extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB0_16_CDF_start_ptr[                  NLSF_MSVQ_CB0_16_STAGES ];
+extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB0_16_CDF_middle_idx[                 NLSF_MSVQ_CB0_16_STAGES ];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_10c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,642 +1,577 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/*                                            */
-/* ROM usage:    90+803 Words                 */
-/**********************************************/
-
-
-
-
-
-
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_tables_NLSF_CB1_10.h&quot;
-
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS + NLSF_MSVQ_CB1_10_STAGES ] =
-{
-            0,
-        17096,
-        24130,
-        28997,
-        33179,
-        36696,
-        40213,
-        42493,
-        44252,
-        45973,
-        47551,
-        49095,
-        50542,
-        51898,
-        53196,
-        54495,
-        55685,
-        56851,
-        57749,
-        58628,
-        59435,
-        60207,
-        60741,
-        61220,
-        61700,
-        62179,
-        62659,
-        63138,
-        63617,
-        64097,
-        64576,
-        65056,
-        65535,
-            0,
-        20378,
-        33032,
-        40395,
-        46721,
-        51707,
-        56585,
-        61157,
-        65535,
-            0,
-
-
-
-
-
-        15055,
-        25472,
-        35447,
-        42501,
-        48969,
-        54773,
-        60212,
-        65535,
-            0,
-        12069,
-        22440,
-        32812,
-        40145,
-        46870,
-        53595,
-        59630,
-        65535,
-            0,
-        10839,
-        19954,
-        27957,
-        35961,
-        43965,
-        51465,
-        58805,
-        65535,
-            0,
-         8933,
-        17674,
-        26415,
-        34785,
-        42977,
-        50820,
-        58496,
-        65535
-};
-
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[ NLSF_MSVQ_CB1_10_STAGES ] =
-{
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[   0 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  33 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  42 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  51 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  60 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  69 ]
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx[ NLSF_MSVQ_CB1_10_STAGES ] =
-
-
-
-
-
-{
-       5,
-       3,
-       4,
-       4,
-       5,
-       5
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[ NLSF_MSVQ_CB1_10_VECTORS ] =
-{
-               62,              103,
-              120,              127,
-              135,              135,
-              155,              167,
-              168,              172,
-              173,              176,
-              179,              181,
-              181,              185,
-              186,              198,
-              199,              203,
-              205,              222,
-              227,              227,
-              227,              227,
-              227,              227,
-              227,              227,
-              227,              227,
-               54,               76,
-              101,              108,
-              119,              120,
-              123,              125,
-               68,               85,
-               87,              103,
-              107,              112,
-              115,              116,
-               78,               85,
-               85,              101,
-              105,              105,
-              110,              111,
-               83,               91,
-               97,               97,
-               97,              100,
-              101,              105,
-               92,               93,
-               93,               95,
-               96,               98,
-               99,              103
-};
-
-
-
-
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15[ 10 + 1 ] =
-{
-              462,
-                3,
-               64,
-               74,
-               98,
-               50,
-               97,
-               68,
-              120,
-               53,
-              639
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 * NLSF_MSVQ_CB1_10_VECTORS ] =
-{
-             1877,             4646,
-             7712,            10745,
-            13964,            17028,
-            20239,            23182,
-            26471,            29287,
-             1612,             3278,
-             7086,             9975,
-            13228,            16264,
-            19596,            22690,
-            26037,            28965,
-             2169,             3830,
-             6460,             8958,
-            11960,            14750,
-            18408,            21659,
-            25018,            28043,
-             3680,             6024,
-             8986,            12256,
-            15201,            18188,
-            21741,            24460,
-            27484,            30059,
-             2584,             5187,
-             7799,            10902,
-            13179,            15765,
-            19017,            22431,
-            25891,            28698,
-             3731,             5751,
-             8650,            11742,
-            15090,            17407,
-            20391,            23421,
-            26228,            29247,
-             2107,             6323,
-
-
-
-
-
-             8915,            12226,
-            14775,            17791,
-            20664,            23679,
-            26829,            29353,
-             1677,             2870,
-             5386,             8077,
-            11817,            15176,
-            18657,            22006,
-            25513,            28689,
-             2111,             3625,
-             7027,            10588,
-            14059,            17193,
-            21137,            24260,
-            27577,            30036,
-             2428,             4010,
-             5765,             9376,
-            13805,            15821,
-            19444,            22389,
-            25295,            29310,
-             2256,             4628,
-             8377,            12441,
-            15283,            19462,
-            22257,            25551,
-            28432,            30304,
-             2352,             3675,
-             6129,            11868,
-            14551,            16655,
-            19624,            21883,
-            26526,            28849,
-             5243,             7248,
-            10558,            13269,
-            15651,            17919,
-            21141,            23827,
-            27102,            29519,
-             4422,             6725,
-            10449,            13273,
-            16124,            19921,
-            22826,            26061,
-            28763,            30583,
-             4508,             6291,
-             9504,            11809,
-            13827,            15950,
-            19077,            22084,
-            25740,            28658,
-             2540,             4297,
-             8579,            13578,
-            16634,            19101,
-            21547,            23887,
-
-
-
-
-
-            26777,            29146,
-             3377,             6358,
-            10224,            14518,
-            17905,            21056,
-            23637,            25784,
-            28161,            30109,
-             4177,             5942,
-             8159,            10108,
-            12130,            15470,
-            20191,            23326,
-            26782,            29359,
-             2492,             3801,
-             6144,             9825,
-            16000,            18671,
-            20893,            23663,
-            25899,            28974,
-             3011,             4727,
-             6834,            10505,
-            12465,            14496,
-            17065,            20052,
-            25265,            28057,
-             4149,             7197,
-            12338,            15076,
-            18002,            20190,
-            22187,            24723,
-            27083,            29125,
-             2975,             4578,
-             6448,             8378,
-             9671,            13225,
-            19502,            22277,
-            26058,            28850,
-             4102,             5760,
-             7744,             9484,
-            10744,            12308,
-            14677,            19607,
-            24841,            28381,
-             4931,             9287,
-            12477,            13395,
-            13712,            14351,
-            16048,            19867,
-            24188,            28994,
-             4141,             7867,
-            13140,            17720,
-            20064,            21108,
-            21692,            22722,
-            23736,            27449,
-             4011,             8720,
-            13234,            16206,
-
-
-
-
-
-            17601,            18289,
-            18524,            19689,
-            23234,            27882,
-             3420,             5995,
-            11230,            15117,
-            15907,            16783,
-            17762,            23347,
-            26898,            29946,
-             3080,             6786,
-            10465,            13676,
-            18059,            23615,
-            27058,            29082,
-            29563,            29905,
-             3038,             5620,
-             9266,            12870,
-            18803,            19610,
-            20010,            20802,
-            23882,            29306,
-             3314,             6420,
-             9046,            13262,
-            15869,            23117,
-            23667,            24215,
-            24487,            25915,
-             3469,             6963,
-            10103,            15282,
-            20531,            23240,
-            25024,            26021,
-            26736,            27255,
-             3041,             6459,
-             9777,            12896,
-            16315,            19410,
-            24070,            29353,
-            31795,            32075,
-             -200,             -134,
-             -113,             -204,
-             -347,             -440,
-             -352,             -211,
-             -418,             -172,
-             -313,               59,
-              495,              772,
-              721,              614,
-              334,              444,
-              225,              242,
-              161,               16,
-              274,              564,
-              -73,             -188,
-             -395,             -171,
-              777,              508,
-
-
-
-
-
-             1340,             1145,
-              699,              196,
-              223,              173,
-               90,               25,
-              -26,               18,
-              133,             -105,
-             -360,             -277,
-              859,              634,
-               41,             -557,
-             -768,             -926,
-             -601,            -1021,
-            -1189,             -365,
-              225,              107,
-              374,              -50,
-              433,              417,
-              156,               39,
-             -597,            -1397,
-            -1594,             -592,
-             -485,             -292,
-              253,               87,
-               -0,               -6,
-              -25,             -345,
-             -240,              120,
-             1261,              946,
-              166,             -277,
-              241,              167,
-              170,              429,
-              518,              714,
-              602,              254,
-              134,               92,
-             -152,             -324,
-             -394,               49,
-             -151,             -304,
-             -724,             -657,
-             -162,             -369,
-              -35,                3,
-               -2,             -312,
-             -200,              -92,
-             -227,              242,
-              628,              565,
-             -124,             1056,
-              770,              101,
-              -84,              -33,
-                4,             -192,
-             -272,                5,
-             -627,             -977,
-              419,              472,
-               53,             -103,
-
-
-
-
-
-              145,              322,
-              -95,              -31,
-             -100,             -303,
-             -560,            -1067,
-             -413,              714,
-              283,                2,
-             -223,             -367,
-              523,              360,
-              -38,             -115,
-              378,             -591,
-             -718,              448,
-             -481,             -274,
-              180,              -88,
-             -581,             -157,
-             -696,            -1265,
-              394,             -479,
-              -23,              124,
-              -43,               19,
-             -113,             -236,
-             -412,             -659,
-             -200,                2,
-              -69,             -342,
-              199,               55,
-               58,              -36,
-              -51,              -62,
-              507,              507,
-              427,              442,
-               36,              601,
-             -141,               68,
-              274,              274,
-               68,              -12,
-               -4,               71,
-             -193,             -464,
-             -425,             -383,
-              408,              203,
-             -337,              236,
-              410,              -59,
-              -25,             -341,
-             -449,               28,
-               -9,               90,
-              332,              -14,
-             -905,               96,
-             -540,             -242,
-              679,              -59,
-              192,              -24,
-               60,             -217,
-                5,              -37,
-              179,              -20,
-
-
-
-
-
-              311,              519,
-              274,               72,
-             -326,            -1030,
-             -262,              213,
-              380,               82,
-              328,              411,
-             -540,              574,
-             -283,              151,
-              181,             -402,
-             -278,             -240,
-             -110,             -227,
-             -264,              -89,
-             -250,             -259,
-              -27,              106,
-             -239,              -98,
-             -390,              118,
-               61,              104,
-              294,              532,
-               92,              -13,
-               60,             -233,
-              335,              541,
-              307,              -26,
-             -110,              -91,
-             -231,             -460,
-              170,              201,
-               96,             -372,
-              132,              435,
-             -302,              216,
-             -279,              -41,
-               74,              190,
-              368,              273,
-             -186,             -608,
-             -157,              159,
-               12,              278,
-              245,              307,
-               25,             -187,
-              -16,               55,
-               30,             -163,
-              548,             -307,
-              106,               -5,
-               27,              330,
-             -416,              475,
-              438,             -235,
-              104,              137,
-               21,               -5,
-             -300,             -468,
-              521,             -347,
-              170,             -200,
-
-
-
-
-
-             -219,              308,
-             -122,             -133,
-              219,              -16,
-              359,              412,
-              -89,             -111,
-               48,              322,
-              142,              177,
-             -286,             -127,
-              -39,              -63,
-              -42,             -451,
-              160,              308,
-              -57,              193,
-              -48,               74,
-             -346,               59,
-              -27,               27,
-             -469,             -277,
-             -344,              282,
-              262,              122,
-              171,             -249,
-               27,              258,
-              188,               -3,
-               67,             -206,
-             -284,              291,
-             -117,              -88,
-             -477,              375,
-               50,              106,
-               99,             -182,
-              438,             -376,
-             -401,              -49,
-              119,              -23,
-              -10,              -48,
-             -116,             -200,
-             -310,              121,
-               73,                7,
-              237,             -226,
-              139,             -456,
-              397,               35,
-                3,             -108,
-              323,              -75,
-              332,              198,
-              -99,              -21
-};
-
-const SKP_Silk_NLSF_CB_Stage_struct SKP_Silk_NLSF_CB1_10_Stage_info[ NLSF_MSVQ_CB1_10_STAGES ] =
-{
-        {  32, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[   0 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  32 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  32 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  40 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  40 ] },
-
-
-
-
-
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  48 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  48 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  56 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  56 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  64 ] }
-};
-
-const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB1_10 =
-{
-        NLSF_MSVQ_CB1_10_STAGES,
-        SKP_Silk_NLSF_CB1_10_Stage_info,
-        SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15,
-        SKP_Silk_NLSF_MSVQ_CB1_10_CDF,
-        SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr,
-        SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/**********************************************/
+/* This file has been automatically generated */
+/*                                            */
+/* ROM usage:    90+803 Words                 */
+/**********************************************/
+
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_tables_NLSF_CB1_10.h&quot;
+
+const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS + NLSF_MSVQ_CB1_10_STAGES ] =
+{
+            0,
+        17096,
+        24130,
+        28997,
+        33179,
+        36696,
+        40213,
+        42493,
+        44252,
+        45973,
+        47551,
+        49095,
+        50542,
+        51898,
+        53196,
+        54495,
+        55685,
+        56851,
+        57749,
+        58628,
+        59435,
+        60207,
+        60741,
+        61220,
+        61700,
+        62179,
+        62659,
+        63138,
+        63617,
+        64097,
+        64576,
+        65056,
+        65535,
+            0,
+        20378,
+        33032,
+        40395,
+        46721,
+        51707,
+        56585,
+        61157,
+        65535,
+            0,
+        15055,
+        25472,
+        35447,
+        42501,
+        48969,
+        54773,
+        60212,
+        65535,
+            0,
+        12069,
+        22440,
+        32812,
+        40145,
+        46870,
+        53595,
+        59630,
+        65535,
+            0,
+        10839,
+        19954,
+        27957,
+        35961,
+        43965,
+        51465,
+        58805,
+        65535,
+            0,
+         8933,
+        17674,
+        26415,
+        34785,
+        42977,
+        50820,
+        58496,
+        65535
+};
+
+const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[ NLSF_MSVQ_CB1_10_STAGES ] =
+{
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[   0 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  33 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  42 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  51 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  60 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_10_CDF[  69 ]
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx[ NLSF_MSVQ_CB1_10_STAGES ] =
+{
+       5,
+       3,
+       4,
+       4,
+       5,
+       5
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[ NLSF_MSVQ_CB1_10_VECTORS ] =
+{
+               62,              103,
+              120,              127,
+              135,              135,
+              155,              167,
+              168,              172,
+              173,              176,
+              179,              181,
+              181,              185,
+              186,              198,
+              199,              203,
+              205,              222,
+              227,              227,
+              227,              227,
+              227,              227,
+              227,              227,
+              227,              227,
+               54,               76,
+              101,              108,
+              119,              120,
+              123,              125,
+               68,               85,
+               87,              103,
+              107,              112,
+              115,              116,
+               78,               85,
+               85,              101,
+              105,              105,
+              110,              111,
+               83,               91,
+               97,               97,
+               97,              100,
+              101,              105,
+               92,               93,
+               93,               95,
+               96,               98,
+               99,              103
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15[ 10 + 1 ] =
+{
+              462,
+                3,
+               64,
+               74,
+               98,
+               50,
+               97,
+               68,
+              120,
+               53,
+              639
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 * NLSF_MSVQ_CB1_10_VECTORS ] =
+{
+             1877,             4646,
+             7712,            10745,
+            13964,            17028,
+            20239,            23182,
+            26471,            29287,
+             1612,             3278,
+             7086,             9975,
+            13228,            16264,
+            19596,            22690,
+            26037,            28965,
+             2169,             3830,
+             6460,             8958,
+            11960,            14750,
+            18408,            21659,
+            25018,            28043,
+             3680,             6024,
+             8986,            12256,
+            15201,            18188,
+            21741,            24460,
+            27484,            30059,
+             2584,             5187,
+             7799,            10902,
+            13179,            15765,
+            19017,            22431,
+            25891,            28698,
+             3731,             5751,
+             8650,            11742,
+            15090,            17407,
+            20391,            23421,
+            26228,            29247,
+             2107,             6323,
+             8915,            12226,
+            14775,            17791,
+            20664,            23679,
+            26829,            29353,
+             1677,             2870,
+             5386,             8077,
+            11817,            15176,
+            18657,            22006,
+            25513,            28689,
+             2111,             3625,
+             7027,            10588,
+            14059,            17193,
+            21137,            24260,
+            27577,            30036,
+             2428,             4010,
+             5765,             9376,
+            13805,            15821,
+            19444,            22389,
+            25295,            29310,
+             2256,             4628,
+             8377,            12441,
+            15283,            19462,
+            22257,            25551,
+            28432,            30304,
+             2352,             3675,
+             6129,            11868,
+            14551,            16655,
+            19624,            21883,
+            26526,            28849,
+             5243,             7248,
+            10558,            13269,
+            15651,            17919,
+            21141,            23827,
+            27102,            29519,
+             4422,             6725,
+            10449,            13273,
+            16124,            19921,
+            22826,            26061,
+            28763,            30583,
+             4508,             6291,
+             9504,            11809,
+            13827,            15950,
+            19077,            22084,
+            25740,            28658,
+             2540,             4297,
+             8579,            13578,
+            16634,            19101,
+            21547,            23887,
+            26777,            29146,
+             3377,             6358,
+            10224,            14518,
+            17905,            21056,
+            23637,            25784,
+            28161,            30109,
+             4177,             5942,
+             8159,            10108,
+            12130,            15470,
+            20191,            23326,
+            26782,            29359,
+             2492,             3801,
+             6144,             9825,
+            16000,            18671,
+            20893,            23663,
+            25899,            28974,
+             3011,             4727,
+             6834,            10505,
+            12465,            14496,
+            17065,            20052,
+            25265,            28057,
+             4149,             7197,
+            12338,            15076,
+            18002,            20190,
+            22187,            24723,
+            27083,            29125,
+             2975,             4578,
+             6448,             8378,
+             9671,            13225,
+            19502,            22277,
+            26058,            28850,
+             4102,             5760,
+             7744,             9484,
+            10744,            12308,
+            14677,            19607,
+            24841,            28381,
+             4931,             9287,
+            12477,            13395,
+            13712,            14351,
+            16048,            19867,
+            24188,            28994,
+             4141,             7867,
+            13140,            17720,
+            20064,            21108,
+            21692,            22722,
+            23736,            27449,
+             4011,             8720,
+            13234,            16206,
+            17601,            18289,
+            18524,            19689,
+            23234,            27882,
+             3420,             5995,
+            11230,            15117,
+            15907,            16783,
+            17762,            23347,
+            26898,            29946,
+             3080,             6786,
+            10465,            13676,
+            18059,            23615,
+            27058,            29082,
+            29563,            29905,
+             3038,             5620,
+             9266,            12870,
+            18803,            19610,
+            20010,            20802,
+            23882,            29306,
+             3314,             6420,
+             9046,            13262,
+            15869,            23117,
+            23667,            24215,
+            24487,            25915,
+             3469,             6963,
+            10103,            15282,
+            20531,            23240,
+            25024,            26021,
+            26736,            27255,
+             3041,             6459,
+             9777,            12896,
+            16315,            19410,
+            24070,            29353,
+            31795,            32075,
+             -200,             -134,
+             -113,             -204,
+             -347,             -440,
+             -352,             -211,
+             -418,             -172,
+             -313,               59,
+              495,              772,
+              721,              614,
+              334,              444,
+              225,              242,
+              161,               16,
+              274,              564,
+              -73,             -188,
+             -395,             -171,
+              777,              508,
+             1340,             1145,
+              699,              196,
+              223,              173,
+               90,               25,
+              -26,               18,
+              133,             -105,
+             -360,             -277,
+              859,              634,
+               41,             -557,
+             -768,             -926,
+             -601,            -1021,
+            -1189,             -365,
+              225,              107,
+              374,              -50,
+              433,              417,
+              156,               39,
+             -597,            -1397,
+            -1594,             -592,
+             -485,             -292,
+              253,               87,
+               -0,               -6,
+              -25,             -345,
+             -240,              120,
+             1261,              946,
+              166,             -277,
+              241,              167,
+              170,              429,
+              518,              714,
+              602,              254,
+              134,               92,
+             -152,             -324,
+             -394,               49,
+             -151,             -304,
+             -724,             -657,
+             -162,             -369,
+              -35,                3,
+               -2,             -312,
+             -200,              -92,
+             -227,              242,
+              628,              565,
+             -124,             1056,
+              770,              101,
+              -84,              -33,
+                4,             -192,
+             -272,                5,
+             -627,             -977,
+              419,              472,
+               53,             -103,
+              145,              322,
+              -95,              -31,
+             -100,             -303,
+             -560,            -1067,
+             -413,              714,
+              283,                2,
+             -223,             -367,
+              523,              360,
+              -38,             -115,
+              378,             -591,
+             -718,              448,
+             -481,             -274,
+              180,              -88,
+             -581,             -157,
+             -696,            -1265,
+              394,             -479,
+              -23,              124,
+              -43,               19,
+             -113,             -236,
+             -412,             -659,
+             -200,                2,
+              -69,             -342,
+              199,               55,
+               58,              -36,
+              -51,              -62,
+              507,              507,
+              427,              442,
+               36,              601,
+             -141,               68,
+              274,              274,
+               68,              -12,
+               -4,               71,
+             -193,             -464,
+             -425,             -383,
+              408,              203,
+             -337,              236,
+              410,              -59,
+              -25,             -341,
+             -449,               28,
+               -9,               90,
+              332,              -14,
+             -905,               96,
+             -540,             -242,
+              679,              -59,
+              192,              -24,
+               60,             -217,
+                5,              -37,
+              179,              -20,
+              311,              519,
+              274,               72,
+             -326,            -1030,
+             -262,              213,
+              380,               82,
+              328,              411,
+             -540,              574,
+             -283,              151,
+              181,             -402,
+             -278,             -240,
+             -110,             -227,
+             -264,              -89,
+             -250,             -259,
+              -27,              106,
+             -239,              -98,
+             -390,              118,
+               61,              104,
+              294,              532,
+               92,              -13,
+               60,             -233,
+              335,              541,
+              307,              -26,
+             -110,              -91,
+             -231,             -460,
+              170,              201,
+               96,             -372,
+              132,              435,
+             -302,              216,
+             -279,              -41,
+               74,              190,
+              368,              273,
+             -186,             -608,
+             -157,              159,
+               12,              278,
+              245,              307,
+               25,             -187,
+              -16,               55,
+               30,             -163,
+              548,             -307,
+              106,               -5,
+               27,              330,
+             -416,              475,
+              438,             -235,
+              104,              137,
+               21,               -5,
+             -300,             -468,
+              521,             -347,
+              170,             -200,
+             -219,              308,
+             -122,             -133,
+              219,              -16,
+              359,              412,
+              -89,             -111,
+               48,              322,
+              142,              177,
+             -286,             -127,
+              -39,              -63,
+              -42,             -451,
+              160,              308,
+              -57,              193,
+              -48,               74,
+             -346,               59,
+              -27,               27,
+             -469,             -277,
+             -344,              282,
+              262,              122,
+              171,             -249,
+               27,              258,
+              188,               -3,
+               67,             -206,
+             -284,              291,
+             -117,              -88,
+             -477,              375,
+               50,              106,
+               99,             -182,
+              438,             -376,
+             -401,              -49,
+              119,              -23,
+              -10,              -48,
+             -116,             -200,
+             -310,              121,
+               73,                7,
+              237,             -226,
+              139,             -456,
+              397,               35,
+                3,             -108,
+              323,              -75,
+              332,              198,
+              -99,              -21
+};
+
+const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB1_10_Stage_info[ NLSF_MSVQ_CB1_10_STAGES ] =
+{
+        {  32, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[   0 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  32 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  32 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  40 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  40 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  48 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  48 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  56 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  56 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_10_Q15[ 10 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_10_rates_Q5[  64 ] }
+};
+
+const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB1_10 =
+{
+        NLSF_MSVQ_CB1_10_STAGES,
+        SKP_Silk_NLSF_CB1_10_Stage_info,
+        SKP_Silk_NLSF_MSVQ_CB1_10_ndelta_min_Q15,
+        SKP_Silk_NLSF_MSVQ_CB1_10_CDF,
+        SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr,
+        SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_10h"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,61 +1,51 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-
-
-
-#ifndef SKP_SILK_TABLES_NLSF_CB1_10_H
-#define SKP_SILK_TABLES_NLSF_CB1_10_H
-
-#include &quot;SKP_Silk_define.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define NLSF_MSVQ_CB1_10_STAGES       6
-#define NLSF_MSVQ_CB1_10_VECTORS      72
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS + NLSF_MSVQ_CB1_10_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[                  NLSF_MSVQ_CB1_10_STAGES ];
-extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx[                 NLSF_MSVQ_CB1_10_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_TABLES_NLSF_CB1_10_H
+#define SKP_SILK_TABLES_NLSF_CB1_10_H
+
+#include &quot;SKP_Silk_define.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define NLSF_MSVQ_CB1_10_STAGES       6
+#define NLSF_MSVQ_CB1_10_VECTORS      72
+
+/* NLSF codebook entropy coding tables */
+extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB1_10_CDF[ NLSF_MSVQ_CB1_10_VECTORS + NLSF_MSVQ_CB1_10_STAGES ];
+extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_10_CDF_start_ptr[                  NLSF_MSVQ_CB1_10_STAGES ];
+extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB1_10_CDF_middle_idx[                 NLSF_MSVQ_CB1_10_STAGES ];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_16c"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,784 +1,703 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-
-
-
-
-
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/**********************************************/
-/* This file has been automatically generated */
-/*                                            */
-/* ROM usage:   134+1785 Words                */
-/**********************************************/
-
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_tables_NLSF_CB1_16.h&quot;
-
-const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ] =
-{
-            0,
-        19099,
-        26957,
-        30639,
-        34242,
-        37546,
-        40447,
-        43287,
-        46005,
-        48445,
-        49865,
-        51284,
-        52673,
-        53975,
-        55221,
-        56441,
-        57267,
-        58025,
-        58648,
-        59232,
-        59768,
-        60248,
-        60729,
-        61210,
-        61690,
-        62171,
-        62651,
-
-
-
-
-
-        63132,
-        63613,
-        64093,
-        64574,
-        65054,
-        65535,
-            0,
-        28808,
-        38775,
-        46801,
-        51785,
-        55886,
-        59410,
-        62572,
-        65535,
-            0,
-        27376,
-        38639,
-        45052,
-        51465,
-        55448,
-        59021,
-        62594,
-        65535,
-            0,
-        33403,
-        39569,
-        45102,
-        49961,
-        54047,
-        57959,
-        61788,
-        65535,
-            0,
-        25851,
-        43356,
-        47828,
-        52204,
-        55964,
-        59413,
-        62507,
-        65535,
-            0,
-        34277,
-        40337,
-        45432,
-        50311,
-        54326,
-
-
-
-
-
-        58171,
-        61853,
-        65535,
-            0,
-        33538,
-        39865,
-        45302,
-        50076,
-        54549,
-        58478,
-        62159,
-        65535,
-            0,
-        27445,
-        35258,
-        40665,
-        46072,
-        51362,
-        56540,
-        61086,
-        65535,
-            0,
-        22080,
-        30779,
-        37065,
-        43085,
-        48849,
-        54613,
-        60133,
-        65535,
-            0,
-        13417,
-        21748,
-        30078,
-        38231,
-        46383,
-        53091,
-        59515,
-        65535
-};
-
-const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ] =
-{
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[   0 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  33 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  42 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  51 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  60 ],
-
-
-
-
-
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  69 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  78 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  87 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  96 ],
-     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 105 ]
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[ NLSF_MSVQ_CB1_16_STAGES ] =
-{
-       5,
-       2,
-       2,
-       2,
-       2,
-       2,
-       2,
-       3,
-       3,
-       4
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[ NLSF_MSVQ_CB1_16_VECTORS ] =
-{
-               57,               98,
-              133,              134,
-              138,              144,
-              145,              147,
-              152,              177,
-              177,              178,
-              181,              183,
-              184,              202,
-              206,              215,
-              218,              222,
-              227,              227,
-              227,              227,
-              227,              227,
-              227,              227,
-              227,              227,
-              227,              227,
-               38,               87,
-               97,              119,
-              128,              135,
-              140,              143,
-               40,               81,
-              107,              107,
-              129,              134,
-              134,              143,
-               31,              109,
-
-
-
-
-
-              114,              120,
-              128,              130,
-              131,              132,
-               43,               61,
-              124,              125,
-              132,              136,
-              141,              142,
-               30,              110,
-              118,              120,
-              129,              131,
-              133,              133,
-               31,              108,
-              115,              121,
-              124,              130,
-              133,              137,
-               40,               98,
-              115,              115,
-              116,              117,
-              123,              124,
-               50,               93,
-              108,              110,
-              112,              112,
-              114,              115,
-               73,               95,
-               95,               96,
-               96,              105,
-              107,              110
-};
-
-const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15[ 16 + 1 ] =
-{
-              148,
-                3,
-               60,
-               68,
-              117,
-               86,
-              121,
-              124,
-              152,
-              153,
-              207,
-              151,
-              225,
-              239,
-              126,
-              183,
-              792
-
-
-
-
-
-};
-
-const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 * NLSF_MSVQ_CB1_16_VECTORS ] =
-{
-             1309,             3060,             5071,             6996,
-             9028,            10938,            12934,            14891,
-            16933,            18854,            20792,            22764,
-            24753,            26659,            28626,            30501,
-             1264,             2745,             4610,             6408,
-             8286,            10043,            12084,            14108,
-            16118,            18163,            20095,            22164,
-            24264,            26316,            28329,            30251,
-             1044,             2080,             3672,             5179,
-             7140,             9100,            11070,            13065,
-            15423,            17790,            19931,            22101,
-            24290,            26361,            28499,            30418,
-             1131,             2476,             4478,             6149,
-             7902,             9875,            11938,            13809,
-            15869,            17730,            19948,            21707,
-            23761,            25535,            27426,            28917,
-             1040,             2004,             4026,             6100,
-             8432,            10494,            12610,            14694,
-            16797,            18775,            20799,            22782,
-            24772,            26682,            28631,            30516,
-             2310,             3812,             5913,             7933,
-            10033,            11881,            13885,            15798,
-            17751,            19576,            21482,            23276,
-            25157,            27010,            28833,            30623,
-             1254,             2847,             5013,             6781,
-             8626,            10370,            12726,            14633,
-            16281,            17852,            19870,            21472,
-            23002,            24629,            26710,            27960,
-             1468,             3059,             4987,             7026,
-             8741,            10412,            12281,            14020,
-            15970,            17723,            19640,            21522,
-            23472,            25661,            27986,            30225,
-             2171,             3566,             5605,             7384,
-             9404,            11220,            13030,            14758,
-            16687,            18417,            20346,            22091,
-            24055,            26212,            28356,            30397,
-             2409,             4676,             7543,             9786,
-            11419,            12935,            14368,            15653,
-            17366,            18943,            20762,            22477,
-            24440,            26327,            28284,            30242,
-             2354,             4222,             6820,             9107,
-            11596,            13934,            15973,            17682,
-            19158,            20517,            21991,            23420,
-            25178,            26936,            28794,            30527,
-
-
-
-
-
-             1323,             2414,             4184,             6039,
-             7534,             9398,            11099,            13097,
-            14799,            16451,            18434,            20887,
-            23490,            25838,            28046,            30225,
-             1361,             3243,             6048,             8511,
-            11001,            13145,            15073,            16608,
-            18126,            19381,            20912,            22607,
-            24660,            26668,            28663,            30566,
-             1216,             2648,             5901,             8422,
-            10037,            11425,            12973,            14603,
-            16686,            18600,            20555,            22415,
-            24450,            26280,            28206,            30077,
-             2417,             4048,             6316,             8433,
-            10510,            12757,            15072,            17295,
-            19573,            21503,            23329,            24782,
-            26235,            27689,            29214,            30819,
-             1012,             2345,             4991,             7377,
-             9465,            11916,            14296,            16566,
-            18672,            20544,            22292,            23838,
-            25415,            27050,            28848,            30551,
-             1937,             3693,             6267,             8019,
-            10372,            12194,            14287,            15657,
-            17431,            18864,            20769,            22206,
-            24037,            25463,            27383,            28602,
-             1969,             3305,             5017,             6726,
-             8375,             9993,            11634,            13280,
-            15078,            16751,            18464,            20119,
-            21959,            23858,            26224,            29298,
-             1198,             2647,             5428,             7423,
-             9775,            12155,            14665,            16344,
-            18121,            19790,            21557,            22847,
-            24484,            25742,            27639,            28711,
-             1636,             3353,             5447,             7597,
-             9837,            11647,            13964,            16019,
-            17862,            20116,            22319,            24037,
-            25966,            28086,            29914,            31294,
-             2676,             4105,             6378,             8223,
-            10058,            11549,            13072,            14453,
-            15956,            17355,            18931,            20402,
-            22183,            23884,            25717,            27723,
-             1373,             2593,             4449,             5633,
-             7300,             8425,             9474,            10818,
-            12769,            15722,            19002,            21429,
-            23682,            25924,            28135,            30333,
-             1596,             3183,             5378,             7164,
-             8670,            10105,            11470,            12834,
-            13991,            15042,            16642,            17903,
-            20759,            25283,            27770,            30240,
-
-
-
-
-
-             2037,             3987,             6237,             8117,
-             9954,            12245,            14217,            15892,
-            17775,            20114,            22314,            25942,
-            26305,            26483,            26796,            28561,
-             2181,             3858,             5760,             7924,
-            10041,            11577,            13769,            15700,
-            17429,            19879,            23583,            24538,
-            25212,            25693,            28688,            30507,
-             1992,             3882,             6474,             7883,
-             9381,            12672,            14340,            15701,
-            16658,            17832,            20850,            22885,
-            24677,            26457,            28491,            30460,
-             2391,             3988,             5448,             7432,
-            11014,            12579,            13140,            14146,
-            15898,            18592,            21104,            22993,
-            24673,            27186,            28142,            29612,
-             1713,             5102,             6989,             7798,
-             8670,            10110,            12746,            14881,
-            16709,            18407,            20126,            22107,
-            24181,            26198,            28237,            30137,
-             1612,             3617,             6148,             8359,
-             9576,            11528,            14936,            17809,
-            18287,            18729,            19001,            21111,
-            24631,            26596,            28740,            30643,
-             2266,             4168,             7862,             9546,
-             9618,             9703,            10134,            13897,
-            16265,            18432,            20587,            22605,
-            24754,            26994,            29125,            30840,
-             1840,             3917,             6272,             7809,
-             9714,            11438,            13767,            15799,
-            19244,            21972,            22980,            23180,
-            23723,            25650,            29117,            31085,
-             1458,             3612,             6008,             7488,
-             9827,            11893,            14086,            15734,
-            17440,            19535,            22424,            24767,
-            29246,            29928,            30516,            30947,
-             -102,             -121,              -31,               -6,
-                5,               -2,                8,              -18,
-               -4,                6,               14,               -2,
-              -12,              -16,              -12,              -60,
-             -126,             -353,             -574,             -677,
-             -657,             -617,             -498,             -393,
-             -348,             -277,             -225,             -164,
-             -102,              -70,              -31,               33,
-                4,              379,              387,              551,
-              605,              620,              532,              482,
-              442,              454,              385,              347,
-              322,              299,              266,              200,
-
-
-
-
-
-             1168,              951,              672,              246,
-               60,             -161,             -259,             -234,
-             -253,             -282,             -203,             -187,
-             -155,             -176,             -198,             -178,
-               10,              170,              393,              609,
-              555,              208,             -330,             -571,
-             -769,             -633,             -319,              -43,
-               95,              105,              106,              116,
-             -152,             -140,             -125,                5,
-              173,              274,              264,              331,
-              -37,             -293,             -609,             -786,
-             -959,             -814,             -645,             -238,
-              -91,               36,              -11,             -101,
-             -279,             -227,              -40,               90,
-              530,              677,              890,             1104,
-              999,              835,              564,              295,
-             -280,             -364,             -340,             -331,
-             -284,              288,              761,              880,
-              988,              627,              146,             -226,
-             -203,             -181,             -142,               39,
-               24,              -26,             -107,              -92,
-             -161,             -135,             -131,              -88,
-             -160,             -156,              -75,              -43,
-              -36,               -6,              -33,               33,
-             -324,             -415,             -108,              124,
-              157,              191,              203,              197,
-              144,              109,              152,              176,
-              190,              122,              101,              159,
-              663,              668,              480,              400,
-              379,              444,              446,              458,
-              343,              351,              310,              228,
-              133,               44,               75,               63,
-              -84,               39,              -29,               35,
-              -94,             -233,             -261,             -354,
-               77,              262,              -24,             -145,
-             -333,             -409,             -404,             -597,
-             -488,             -300,              910,              592,
-              412,              120,              130,              -51,
-              -37,              -77,             -172,             -181,
-             -159,             -148,              -72,              -62,
-              510,              516,              113,             -585,
-            -1075,             -957,             -417,             -195,
-                9,                7,              -88,             -173,
-              -91,               54,               98,               95,
-              -28,              197,             -527,             -621,
-              157,              122,             -168,              147,
-              309,              300,              336,              315,
-              396,              408,              376,              106,
-
-
-
-
-
-             -162,             -170,             -315,               98,
-              821,              908,              570,              -33,
-             -312,             -568,             -572,             -378,
-             -107,               23,              156,               93,
-             -129,              -87,               20,              -72,
-              -37,               40,               21,               27,
-               48,               75,               77,               65,
-               46,               71,               66,               47,
-              136,              344,              236,              322,
-              170,              283,              269,              291,
-              162,              -43,             -204,             -259,
-             -240,             -305,             -350,             -312,
-              447,              348,              345,              257,
-               71,             -131,              -77,             -190,
-             -202,              -40,               35,              133,
-              261,              365,              438,              303,
-               -8,               22,              140,              137,
-             -300,             -641,             -764,             -268,
-              -23,              -25,               73,             -162,
-             -150,             -212,              -72,                6,
-               39,               78,              104,              -93,
-             -308,             -136,              117,              -71,
-             -513,             -820,             -700,             -450,
-             -161,              -23,               29,               78,
-              337,              106,             -406,             -782,
-             -112,              233,              383,               62,
-             -126,                6,              -77,              -29,
-             -146,             -123,              -51,              -27,
-              -27,             -381,             -641,              402,
-              539,                8,             -207,             -366,
-              -36,              -27,             -204,             -227,
-             -237,             -189,              -64,               51,
-              -92,             -137,             -281,               62,
-              233,               92,              148,              294,
-              363,              416,              564,              625,
-              370,              -36,             -469,             -462,
-              102,              168,               32,              117,
-              -21,               97,              139,               89,
-              104,               35,                4,               82,
-               66,               58,               73,               93,
-              -76,             -320,             -236,             -189,
-             -203,             -142,              -27,              -73,
-                9,               -9,              -25,               12,
-              -15,                4,                4,              -50,
-              314,              180,              162,              -49,
-              199,             -108,             -227,              -66,
-             -447,              -67,             -264,             -394,
-                5,               55,             -133,             -176,
-
-
-
-
-
-             -116,             -241,              272,              109,
-              282,              262,              192,              -64,
-             -392,             -514,              156,              203,
-              154,               72,              -34,             -160,
-              -73,                3,              -33,             -431,
-              321,               18,             -567,             -590,
-             -108,               88,               66,               51,
-              -31,             -193,              -46,               65,
-              -29,              -23,              215,              -31,
-              101,             -113,               32,              304,
-               88,              320,              448,                5,
-             -439,             -562,             -508,             -135,
-              -13,             -171,               -8,              182,
-              -99,             -181,             -149,              376,
-              476,               64,             -396,             -652,
-             -150,              176,              222,               65,
-             -590,              719,              271,              399,
-              245,               72,             -156,             -152,
-             -176,               59,               94,              125,
-               -9,               -7,                9,                1,
-              -61,             -116,              -82,                1,
-               79,               22,              -44,              -15,
-              -48,              -65,              -62,             -101,
-             -102,              -54,              -70,              -78,
-              -80,              -25,              398,               71,
-              139,               38,               90,              194,
-              222,              249,              165,               94,
-              221,              262,              163,               91,
-             -206,              573,              200,             -287,
-             -147,                5,              -18,              -85,
-              -74,             -125,              -87,               85,
-              141,                4,               -4,               28,
-              234,               48,             -150,             -111,
-             -506,              237,             -209,              345,
-               94,             -124,               77,              121,
-              143,               12,              -80,              -48,
-              191,              144,              -93,              -65,
-             -151,             -643,              435,              106,
-               87,                7,               65,              102,
-               94,               68,                5,               99,
-              222,               93,               94,              355,
-              -13,              -89,             -228,             -503,
-              287,              109,              108,              449,
-              253,              -29,             -109,             -116,
-               15,              -73,              -20,              131,
-             -147,               72,               59,             -150,
-             -594,              273,              316,              132,
-              199,              106,              198,              212,
-
-
-
-
-
-              220,               82,               45,              -13,
-              223,              137,              270,               38,
-              252,              135,             -177,             -207,
-             -360,             -102,              403,              406,
-              -14,               83,               64,               51,
-               -7,              -99,              -97,              -88,
-             -124,              -65,               42,               32,
-               28,               29,               12,               20,
-              119,              -26,             -212,             -201,
-              373,              251,              141,              103,
-               36,              -52,               66,               18,
-               -6,              -95,             -196,                5,
-               98,              -85,             -108,              218,
-             -164,               20,              356,              172,
-               37,              266,               23,              112,
-              -24,              -99,              -92,             -178,
-               29,             -278,              388,              -60,
-             -220,              300,              -13,              154,
-              191,               15,              -37,             -110,
-             -153,             -150,             -114,               -7,
-              -94,              -31,              -62,             -177,
-                4,              -70,               35,              453,
-              147,             -247,             -328,              101,
-               20,             -114,              147,              108,
-             -119,             -109,             -102,             -238,
-               55,             -102,              173,              -89,
-              129,              138,             -330,             -160,
-              485,              154,              -59,             -170,
-              -20,              -34,             -261,              -40,
-             -129,               77,              -84,               69,
-               83,              160,              169,               63,
-             -516,               30,              336,               52,
-               -0,              -52,             -124,              158,
-               19,              197,              -10,             -375,
-              405,              285,              114,             -395,
-              -47,              196,               62,               87,
-             -106,              -65,              -75,              -69,
-              -13,               34,               99,               59,
-               83,               98,               44,                0,
-               24,               18,               17,               70,
-              -22,              194,              208,              144,
-              -79,              -15,               32,             -104,
-              -28,             -105,             -186,             -212,
-             -228,              -79,              -76,               51,
-              -71,               72,              118,              -34,
-               -3,             -171,                5,                2,
-             -108,             -125,               62,              -58,
-               58,             -121,               73,             -466,
-
-
-
-
-
-               92,               63,              -94,              -78,
-              -76,              212,               36,             -225,
-              -71,             -354,              152,              143,
-              -79,             -246,              -51,              -31,
-               -6,             -270,              240,              210,
-               30,             -157,             -231,               74,
-             -146,               88,             -273,              156,
-               92,               56,               71,                2,
-              318,              164,               32,             -110,
-              -35,              -41,              -95,             -106,
-               11,              132,              -68,               55,
-              123,              -83,             -149,              212,
-              132,                0,             -194,               55,
-              206,             -108,             -353,              289,
-             -195,                1,              233,              -22,
-              -60,               20,               26,               68,
-              166,               27,              -58,              130,
-              112,              107,               27,             -165,
-              115,              -93,              -37,               38,
-               83,              483,               65,             -229,
-              -13,              157,               85,               50,
-              136,               10,               32,               83,
-               82,               55,                5,               -9,
-              -52,              -78,              -81,              -51,
-               40,               18,             -127,             -224,
-              -41,               53,             -210,             -113,
-               24,              -17,             -187,              -89,
-                8,              121,               83,               77,
-               91,              -74,              -35,             -112,
-             -161,             -173,              102,              132,
-             -125,              -61,              103,             -260,
-               52,              166,              -32,             -156,
-              -87,              -56,               60,              -70,
-             -124,              242,              114,             -251,
-             -166,              201,              127,               28,
-              -11,               23,              -80,             -115,
-              -20,              -51,             -348,              340,
-              -34,              133,               13,               92,
-             -124,             -136,             -120,              -26,
-               -6,               17,               28,               21,
-              120,             -168,              160,              -35,
-              115,               28,                9,                7,
-              -56,               39,              156,              256,
-              -18,                1,              277,               82,
-              -70,             -144,              -88,              -13,
-              -59,             -157,                8,             -134,
-               21,              -40,               58,              -21,
-              194,             -276,               97,              279,
-
-
-
-
-
-              -56,             -140,              125,               57,
-             -184,             -204,              -70,               -2,
-              128,             -202,              -78,              230,
-              -23,              161,             -102,                1,
-                1,              180,              -31,              -86,
-             -167,              -57,              -60,               27,
-              -13,               99,              108,              111,
-               76,               69,               34,              -21,
-               53,               38,               34,               78,
-               73,              219,               51,               15,
-              -72,             -103,             -207,               30,
-              213,              -14,               31,              -94,
-              -40,             -144,               67,                4,
-              105,               59,             -240,               25,
-              244,               69,               58,               23,
-              -24,               -5,              -15,             -133,
-              -71,              -67,              181,               29,
-              -45,              121,               96,               51,
-              -72,              -53,               56,             -153,
-              -27,               85,              183,              211,
-              105,              -34,              -46,               43,
-              -72,              -93,               36,             -128,
-               29,              111,              -95,             -156,
-             -179,             -235,               21,              -39,
-              -71,              -33,              -61,             -252,
-              230,             -131,              157,              -21,
-              -85,              -28,             -123,               80,
-             -160,               63,               47,               -6,
-              -49,              -96,              -19,               17,
-              -58,               17,               -0,              -13,
-             -170,               25,              -35,               59,
-               10,              -31,             -413,               81,
-               62,               18,             -164,              245,
-               92,             -165,               42,               26,
-              126,             -248,              193,              -55,
-               16,               39,               14,               50
-};
-
-const SKP_Silk_NLSF_CB_Stage_struct SKP_Silk_NLSF_CB1_16_Stage_info[ NLSF_MSVQ_CB1_16_STAGES ] =
-{
-        {  32, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[   0 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  32 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  32 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  40 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  40 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  48 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  48 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  56 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  56 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  64 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  72 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  72 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  80 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  80 ] },
-
-
-
-
-
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  88 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  88 ] },
-        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  96 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  96 ] }
-};
-
-const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB1_16 =
-{
-        NLSF_MSVQ_CB1_16_STAGES,
-        SKP_Silk_NLSF_CB1_16_Stage_info,
-        SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15,
-        SKP_Silk_NLSF_MSVQ_CB1_16_CDF,
-        SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr,
-        SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/**********************************************/
+/* This file has been automatically generated */
+/*                                            */
+/* ROM usage:   134+1785 Words                */
+/**********************************************/
+
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_tables_NLSF_CB1_16.h&quot;
+
+const SKP_uint16 SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ] =
+{
+            0,
+        19099,
+        26957,
+        30639,
+        34242,
+        37546,
+        40447,
+        43287,
+        46005,
+        48445,
+        49865,
+        51284,
+        52673,
+        53975,
+        55221,
+        56441,
+        57267,
+        58025,
+        58648,
+        59232,
+        59768,
+        60248,
+        60729,
+        61210,
+        61690,
+        62171,
+        62651,
+        63132,
+        63613,
+        64093,
+        64574,
+        65054,
+        65535,
+            0,
+        28808,
+        38775,
+        46801,
+        51785,
+        55886,
+        59410,
+        62572,
+        65535,
+            0,
+        27376,
+        38639,
+        45052,
+        51465,
+        55448,
+        59021,
+        62594,
+        65535,
+            0,
+        33403,
+        39569,
+        45102,
+        49961,
+        54047,
+        57959,
+        61788,
+        65535,
+            0,
+        25851,
+        43356,
+        47828,
+        52204,
+        55964,
+        59413,
+        62507,
+        65535,
+            0,
+        34277,
+        40337,
+        45432,
+        50311,
+        54326,
+        58171,
+        61853,
+        65535,
+            0,
+        33538,
+        39865,
+        45302,
+        50076,
+        54549,
+        58478,
+        62159,
+        65535,
+            0,
+        27445,
+        35258,
+        40665,
+        46072,
+        51362,
+        56540,
+        61086,
+        65535,
+            0,
+        22080,
+        30779,
+        37065,
+        43085,
+        48849,
+        54613,
+        60133,
+        65535,
+            0,
+        13417,
+        21748,
+        30078,
+        38231,
+        46383,
+        53091,
+        59515,
+        65535
+};
+
+const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[ NLSF_MSVQ_CB1_16_STAGES ] =
+{
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[   0 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  33 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  42 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  51 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  60 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  69 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  78 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  87 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[  96 ],
+     &amp;SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ 105 ]
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[ NLSF_MSVQ_CB1_16_STAGES ] =
+{
+       5,
+       2,
+       2,
+       2,
+       2,
+       2,
+       2,
+       3,
+       3,
+       4
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[ NLSF_MSVQ_CB1_16_VECTORS ] =
+{
+               57,               98,
+              133,              134,
+              138,              144,
+              145,              147,
+              152,              177,
+              177,              178,
+              181,              183,
+              184,              202,
+              206,              215,
+              218,              222,
+              227,              227,
+              227,              227,
+              227,              227,
+              227,              227,
+              227,              227,
+              227,              227,
+               38,               87,
+               97,              119,
+              128,              135,
+              140,              143,
+               40,               81,
+              107,              107,
+              129,              134,
+              134,              143,
+               31,              109,
+              114,              120,
+              128,              130,
+              131,              132,
+               43,               61,
+              124,              125,
+              132,              136,
+              141,              142,
+               30,              110,
+              118,              120,
+              129,              131,
+              133,              133,
+               31,              108,
+              115,              121,
+              124,              130,
+              133,              137,
+               40,               98,
+              115,              115,
+              116,              117,
+              123,              124,
+               50,               93,
+              108,              110,
+              112,              112,
+              114,              115,
+               73,               95,
+               95,               96,
+               96,              105,
+              107,              110
+};
+
+const SKP_int SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15[ 16 + 1 ] =
+{
+              148,
+                3,
+               60,
+               68,
+              117,
+               86,
+              121,
+              124,
+              152,
+              153,
+              207,
+              151,
+              225,
+              239,
+              126,
+              183,
+              792
+};
+
+const SKP_int16 SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 * NLSF_MSVQ_CB1_16_VECTORS ] =
+{
+             1309,             3060,             5071,             6996,
+             9028,            10938,            12934,            14891,
+            16933,            18854,            20792,            22764,
+            24753,            26659,            28626,            30501,
+             1264,             2745,             4610,             6408,
+             8286,            10043,            12084,            14108,
+            16118,            18163,            20095,            22164,
+            24264,            26316,            28329,            30251,
+             1044,             2080,             3672,             5179,
+             7140,             9100,            11070,            13065,
+            15423,            17790,            19931,            22101,
+            24290,            26361,            28499,            30418,
+             1131,             2476,             4478,             6149,
+             7902,             9875,            11938,            13809,
+            15869,            17730,            19948,            21707,
+            23761,            25535,            27426,            28917,
+             1040,             2004,             4026,             6100,
+             8432,            10494,            12610,            14694,
+            16797,            18775,            20799,            22782,
+            24772,            26682,            28631,            30516,
+             2310,             3812,             5913,             7933,
+            10033,            11881,            13885,            15798,
+            17751,            19576,            21482,            23276,
+            25157,            27010,            28833,            30623,
+             1254,             2847,             5013,             6781,
+             8626,            10370,            12726,            14633,
+            16281,            17852,            19870,            21472,
+            23002,            24629,            26710,            27960,
+             1468,             3059,             4987,             7026,
+             8741,            10412,            12281,            14020,
+            15970,            17723,            19640,            21522,
+            23472,            25661,            27986,            30225,
+             2171,             3566,             5605,             7384,
+             9404,            11220,            13030,            14758,
+            16687,            18417,            20346,            22091,
+            24055,            26212,            28356,            30397,
+             2409,             4676,             7543,             9786,
+            11419,            12935,            14368,            15653,
+            17366,            18943,            20762,            22477,
+            24440,            26327,            28284,            30242,
+             2354,             4222,             6820,             9107,
+            11596,            13934,            15973,            17682,
+            19158,            20517,            21991,            23420,
+            25178,            26936,            28794,            30527,
+             1323,             2414,             4184,             6039,
+             7534,             9398,            11099,            13097,
+            14799,            16451,            18434,            20887,
+            23490,            25838,            28046,            30225,
+             1361,             3243,             6048,             8511,
+            11001,            13145,            15073,            16608,
+            18126,            19381,            20912,            22607,
+            24660,            26668,            28663,            30566,
+             1216,             2648,             5901,             8422,
+            10037,            11425,            12973,            14603,
+            16686,            18600,            20555,            22415,
+            24450,            26280,            28206,            30077,
+             2417,             4048,             6316,             8433,
+            10510,            12757,            15072,            17295,
+            19573,            21503,            23329,            24782,
+            26235,            27689,            29214,            30819,
+             1012,             2345,             4991,             7377,
+             9465,            11916,            14296,            16566,
+            18672,            20544,            22292,            23838,
+            25415,            27050,            28848,            30551,
+             1937,             3693,             6267,             8019,
+            10372,            12194,            14287,            15657,
+            17431,            18864,            20769,            22206,
+            24037,            25463,            27383,            28602,
+             1969,             3305,             5017,             6726,
+             8375,             9993,            11634,            13280,
+            15078,            16751,            18464,            20119,
+            21959,            23858,            26224,            29298,
+             1198,             2647,             5428,             7423,
+             9775,            12155,            14665,            16344,
+            18121,            19790,            21557,            22847,
+            24484,            25742,            27639,            28711,
+             1636,             3353,             5447,             7597,
+             9837,            11647,            13964,            16019,
+            17862,            20116,            22319,            24037,
+            25966,            28086,            29914,            31294,
+             2676,             4105,             6378,             8223,
+            10058,            11549,            13072,            14453,
+            15956,            17355,            18931,            20402,
+            22183,            23884,            25717,            27723,
+             1373,             2593,             4449,             5633,
+             7300,             8425,             9474,            10818,
+            12769,            15722,            19002,            21429,
+            23682,            25924,            28135,            30333,
+             1596,             3183,             5378,             7164,
+             8670,            10105,            11470,            12834,
+            13991,            15042,            16642,            17903,
+            20759,            25283,            27770,            30240,
+             2037,             3987,             6237,             8117,
+             9954,            12245,            14217,            15892,
+            17775,            20114,            22314,            25942,
+            26305,            26483,            26796,            28561,
+             2181,             3858,             5760,             7924,
+            10041,            11577,            13769,            15700,
+            17429,            19879,            23583,            24538,
+            25212,            25693,            28688,            30507,
+             1992,             3882,             6474,             7883,
+             9381,            12672,            14340,            15701,
+            16658,            17832,            20850,            22885,
+            24677,            26457,            28491,            30460,
+             2391,             3988,             5448,             7432,
+            11014,            12579,            13140,            14146,
+            15898,            18592,            21104,            22993,
+            24673,            27186,            28142,            29612,
+             1713,             5102,             6989,             7798,
+             8670,            10110,            12746,            14881,
+            16709,            18407,            20126,            22107,
+            24181,            26198,            28237,            30137,
+             1612,             3617,             6148,             8359,
+             9576,            11528,            14936,            17809,
+            18287,            18729,            19001,            21111,
+            24631,            26596,            28740,            30643,
+             2266,             4168,             7862,             9546,
+             9618,             9703,            10134,            13897,
+            16265,            18432,            20587,            22605,
+            24754,            26994,            29125,            30840,
+             1840,             3917,             6272,             7809,
+             9714,            11438,            13767,            15799,
+            19244,            21972,            22980,            23180,
+            23723,            25650,            29117,            31085,
+             1458,             3612,             6008,             7488,
+             9827,            11893,            14086,            15734,
+            17440,            19535,            22424,            24767,
+            29246,            29928,            30516,            30947,
+             -102,             -121,              -31,               -6,
+                5,               -2,                8,              -18,
+               -4,                6,               14,               -2,
+              -12,              -16,              -12,              -60,
+             -126,             -353,             -574,             -677,
+             -657,             -617,             -498,             -393,
+             -348,             -277,             -225,             -164,
+             -102,              -70,              -31,               33,
+                4,              379,              387,              551,
+              605,              620,              532,              482,
+              442,              454,              385,              347,
+              322,              299,              266,              200,
+             1168,              951,              672,              246,
+               60,             -161,             -259,             -234,
+             -253,             -282,             -203,             -187,
+             -155,             -176,             -198,             -178,
+               10,              170,              393,              609,
+              555,              208,             -330,             -571,
+             -769,             -633,             -319,              -43,
+               95,              105,              106,              116,
+             -152,             -140,             -125,                5,
+              173,              274,              264,              331,
+              -37,             -293,             -609,             -786,
+             -959,             -814,             -645,             -238,
+              -91,               36,              -11,             -101,
+             -279,             -227,              -40,               90,
+              530,              677,              890,             1104,
+              999,              835,              564,              295,
+             -280,             -364,             -340,             -331,
+             -284,              288,              761,              880,
+              988,              627,              146,             -226,
+             -203,             -181,             -142,               39,
+               24,              -26,             -107,              -92,
+             -161,             -135,             -131,              -88,
+             -160,             -156,              -75,              -43,
+              -36,               -6,              -33,               33,
+             -324,             -415,             -108,              124,
+              157,              191,              203,              197,
+              144,              109,              152,              176,
+              190,              122,              101,              159,
+              663,              668,              480,              400,
+              379,              444,              446,              458,
+              343,              351,              310,              228,
+              133,               44,               75,               63,
+              -84,               39,              -29,               35,
+              -94,             -233,             -261,             -354,
+               77,              262,              -24,             -145,
+             -333,             -409,             -404,             -597,
+             -488,             -300,              910,              592,
+              412,              120,              130,              -51,
+              -37,              -77,             -172,             -181,
+             -159,             -148,              -72,              -62,
+              510,              516,              113,             -585,
+            -1075,             -957,             -417,             -195,
+                9,                7,              -88,             -173,
+              -91,               54,               98,               95,
+              -28,              197,             -527,             -621,
+              157,              122,             -168,              147,
+              309,              300,              336,              315,
+              396,              408,              376,              106,
+             -162,             -170,             -315,               98,
+              821,              908,              570,              -33,
+             -312,             -568,             -572,             -378,
+             -107,               23,              156,               93,
+             -129,              -87,               20,              -72,
+              -37,               40,               21,               27,
+               48,               75,               77,               65,
+               46,               71,               66,               47,
+              136,              344,              236,              322,
+              170,              283,              269,              291,
+              162,              -43,             -204,             -259,
+             -240,             -305,             -350,             -312,
+              447,              348,              345,              257,
+               71,             -131,              -77,             -190,
+             -202,              -40,               35,              133,
+              261,              365,              438,              303,
+               -8,               22,              140,              137,
+             -300,             -641,             -764,             -268,
+              -23,              -25,               73,             -162,
+             -150,             -212,              -72,                6,
+               39,               78,              104,              -93,
+             -308,             -136,              117,              -71,
+             -513,             -820,             -700,             -450,
+             -161,              -23,               29,               78,
+              337,              106,             -406,             -782,
+             -112,              233,              383,               62,
+             -126,                6,              -77,              -29,
+             -146,             -123,              -51,              -27,
+              -27,             -381,             -641,              402,
+              539,                8,             -207,             -366,
+              -36,              -27,             -204,             -227,
+             -237,             -189,              -64,               51,
+              -92,             -137,             -281,               62,
+              233,               92,              148,              294,
+              363,              416,              564,              625,
+              370,              -36,             -469,             -462,
+              102,              168,               32,              117,
+              -21,               97,              139,               89,
+              104,               35,                4,               82,
+               66,               58,               73,               93,
+              -76,             -320,             -236,             -189,
+             -203,             -142,              -27,              -73,
+                9,               -9,              -25,               12,
+              -15,                4,                4,              -50,
+              314,              180,              162,              -49,
+              199,             -108,             -227,              -66,
+             -447,              -67,             -264,             -394,
+                5,               55,             -133,             -176,
+             -116,             -241,              272,              109,
+              282,              262,              192,              -64,
+             -392,             -514,              156,              203,
+              154,               72,              -34,             -160,
+              -73,                3,              -33,             -431,
+              321,               18,             -567,             -590,
+             -108,               88,               66,               51,
+              -31,             -193,              -46,               65,
+              -29,              -23,              215,              -31,
+              101,             -113,               32,              304,
+               88,              320,              448,                5,
+             -439,             -562,             -508,             -135,
+              -13,             -171,               -8,              182,
+              -99,             -181,             -149,              376,
+              476,               64,             -396,             -652,
+             -150,              176,              222,               65,
+             -590,              719,              271,              399,
+              245,               72,             -156,             -152,
+             -176,               59,               94,              125,
+               -9,               -7,                9,                1,
+              -61,             -116,              -82,                1,
+               79,               22,              -44,              -15,
+              -48,              -65,              -62,             -101,
+             -102,              -54,              -70,              -78,
+              -80,              -25,              398,               71,
+              139,               38,               90,              194,
+              222,              249,              165,               94,
+              221,              262,              163,               91,
+             -206,              573,              200,             -287,
+             -147,                5,              -18,              -85,
+              -74,             -125,              -87,               85,
+              141,                4,               -4,               28,
+              234,               48,             -150,             -111,
+             -506,              237,             -209,              345,
+               94,             -124,               77,              121,
+              143,               12,              -80,              -48,
+              191,              144,              -93,              -65,
+             -151,             -643,              435,              106,
+               87,                7,               65,              102,
+               94,               68,                5,               99,
+              222,               93,               94,              355,
+              -13,              -89,             -228,             -503,
+              287,              109,              108,              449,
+              253,              -29,             -109,             -116,
+               15,              -73,              -20,              131,
+             -147,               72,               59,             -150,
+             -594,              273,              316,              132,
+              199,              106,              198,              212,
+              220,               82,               45,              -13,
+              223,              137,              270,               38,
+              252,              135,             -177,             -207,
+             -360,             -102,              403,              406,
+              -14,               83,               64,               51,
+               -7,              -99,              -97,              -88,
+             -124,              -65,               42,               32,
+               28,               29,               12,               20,
+              119,              -26,             -212,             -201,
+              373,              251,              141,              103,
+               36,              -52,               66,               18,
+               -6,              -95,             -196,                5,
+               98,              -85,             -108,              218,
+             -164,               20,              356,              172,
+               37,              266,               23,              112,
+              -24,              -99,              -92,             -178,
+               29,             -278,              388,              -60,
+             -220,              300,              -13,              154,
+              191,               15,              -37,             -110,
+             -153,             -150,             -114,               -7,
+              -94,              -31,              -62,             -177,
+                4,              -70,               35,              453,
+              147,             -247,             -328,              101,
+               20,             -114,              147,              108,
+             -119,             -109,             -102,             -238,
+               55,             -102,              173,              -89,
+              129,              138,             -330,             -160,
+              485,              154,              -59,             -170,
+              -20,              -34,             -261,              -40,
+             -129,               77,              -84,               69,
+               83,              160,              169,               63,
+             -516,               30,              336,               52,
+               -0,              -52,             -124,              158,
+               19,              197,              -10,             -375,
+              405,              285,              114,             -395,
+              -47,              196,               62,               87,
+             -106,              -65,              -75,              -69,
+              -13,               34,               99,               59,
+               83,               98,               44,                0,
+               24,               18,               17,               70,
+              -22,              194,              208,              144,
+              -79,              -15,               32,             -104,
+              -28,             -105,             -186,             -212,
+             -228,              -79,              -76,               51,
+              -71,               72,              118,              -34,
+               -3,             -171,                5,                2,
+             -108,             -125,               62,              -58,
+               58,             -121,               73,             -466,
+               92,               63,              -94,              -78,
+              -76,              212,               36,             -225,
+              -71,             -354,              152,              143,
+              -79,             -246,              -51,              -31,
+               -6,             -270,              240,              210,
+               30,             -157,             -231,               74,
+             -146,               88,             -273,              156,
+               92,               56,               71,                2,
+              318,              164,               32,             -110,
+              -35,              -41,              -95,             -106,
+               11,              132,              -68,               55,
+              123,              -83,             -149,              212,
+              132,                0,             -194,               55,
+              206,             -108,             -353,              289,
+             -195,                1,              233,              -22,
+              -60,               20,               26,               68,
+              166,               27,              -58,              130,
+              112,              107,               27,             -165,
+              115,              -93,              -37,               38,
+               83,              483,               65,             -229,
+              -13,              157,               85,               50,
+              136,               10,               32,               83,
+               82,               55,                5,               -9,
+              -52,              -78,              -81,              -51,
+               40,               18,             -127,             -224,
+              -41,               53,             -210,             -113,
+               24,              -17,             -187,              -89,
+                8,              121,               83,               77,
+               91,              -74,              -35,             -112,
+             -161,             -173,              102,              132,
+             -125,              -61,              103,             -260,
+               52,              166,              -32,             -156,
+              -87,              -56,               60,              -70,
+             -124,              242,              114,             -251,
+             -166,              201,              127,               28,
+              -11,               23,              -80,             -115,
+              -20,              -51,             -348,              340,
+              -34,              133,               13,               92,
+             -124,             -136,             -120,              -26,
+               -6,               17,               28,               21,
+              120,             -168,              160,              -35,
+              115,               28,                9,                7,
+              -56,               39,              156,              256,
+              -18,                1,              277,               82,
+              -70,             -144,              -88,              -13,
+              -59,             -157,                8,             -134,
+               21,              -40,               58,              -21,
+              194,             -276,               97,              279,
+              -56,             -140,              125,               57,
+             -184,             -204,              -70,               -2,
+              128,             -202,              -78,              230,
+              -23,              161,             -102,                1,
+                1,              180,              -31,              -86,
+             -167,              -57,              -60,               27,
+              -13,               99,              108,              111,
+               76,               69,               34,              -21,
+               53,               38,               34,               78,
+               73,              219,               51,               15,
+              -72,             -103,             -207,               30,
+              213,              -14,               31,              -94,
+              -40,             -144,               67,                4,
+              105,               59,             -240,               25,
+              244,               69,               58,               23,
+              -24,               -5,              -15,             -133,
+              -71,              -67,              181,               29,
+              -45,              121,               96,               51,
+              -72,              -53,               56,             -153,
+              -27,               85,              183,              211,
+              105,              -34,              -46,               43,
+              -72,              -93,               36,             -128,
+               29,              111,              -95,             -156,
+             -179,             -235,               21,              -39,
+              -71,              -33,              -61,             -252,
+              230,             -131,              157,              -21,
+              -85,              -28,             -123,               80,
+             -160,               63,               47,               -6,
+              -49,              -96,              -19,               17,
+              -58,               17,               -0,              -13,
+             -170,               25,              -35,               59,
+               10,              -31,             -413,               81,
+               62,               18,             -164,              245,
+               92,             -165,               42,               26,
+              126,             -248,              193,              -55,
+               16,               39,               14,               50
+};
+
+const SKP_Silk_NLSF_CBS SKP_Silk_NLSF_CB1_16_Stage_info[ NLSF_MSVQ_CB1_16_STAGES ] =
+{
+        {  32, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *   0 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[   0 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  32 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  32 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  40 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  40 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  48 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  48 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  56 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  56 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  64 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  64 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  72 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  72 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  80 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  80 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  88 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  88 ] },
+        {   8, &amp;SKP_Silk_NLSF_MSVQ_CB1_16_Q15[ 16 *  96 ], &amp;SKP_Silk_NLSF_MSVQ_CB1_16_rates_Q5[  96 ] }
+};
+
+const SKP_Silk_NLSF_CB_struct SKP_Silk_NLSF_CB1_16 =
+{
+        NLSF_MSVQ_CB1_16_STAGES,
+        SKP_Silk_NLSF_CB1_16_Stage_info,
+        SKP_Silk_NLSF_MSVQ_CB1_16_ndelta_min_Q15,
+        SKP_Silk_NLSF_MSVQ_CB1_16_CDF,
+        SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr,
+        SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_NLSF_CB1_16h"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,62 +1,51 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-
-
-
-
-
-#ifndef SKP_SILK_TABLES_NLSF_CB1_16_H
-#define SKP_SILK_TABLES_NLSF_CB1_16_H
-
-#include &quot;SKP_Silk_define.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-#define NLSF_MSVQ_CB1_16_STAGES       10
-#define NLSF_MSVQ_CB1_16_VECTORS      104
-
-/* NLSF codebook entropy coding tables */
-extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ];
-extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[                  NLSF_MSVQ_CB1_16_STAGES ];
-extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[                 NLSF_MSVQ_CB1_16_STAGES ];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#ifndef SKP_SILK_TABLES_NLSF_CB1_16_H
+#define SKP_SILK_TABLES_NLSF_CB1_16_H
+
+#include &quot;SKP_Silk_define.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+#define NLSF_MSVQ_CB1_16_STAGES       10
+#define NLSF_MSVQ_CB1_16_VECTORS      104
+
+/* NLSF codebook entropy coding tables */
+extern const SKP_uint16         SKP_Silk_NLSF_MSVQ_CB1_16_CDF[ NLSF_MSVQ_CB1_16_VECTORS + NLSF_MSVQ_CB1_16_STAGES ];
+extern const SKP_uint16 * const SKP_Silk_NLSF_MSVQ_CB1_16_CDF_start_ptr[                  NLSF_MSVQ_CB1_16_STAGES ];
+extern const SKP_int            SKP_Silk_NLSF_MSVQ_CB1_16_CDF_middle_idx[                 NLSF_MSVQ_CB1_16_STAGES ];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_gainc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_gain.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_gain.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_gain.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,92 +1,77 @@
</span><del>-
-
-/***********************************************************************
-
-
-
-
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_tables.h&quot;
-
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ 65 ] =
-{
-{
-         0,     18,     45,     94,    181,    320,    519,    777,
-      1093,   1468,   1909,   2417,   2997,   3657,   4404,   5245,
-      6185,   7228,   8384,   9664,  11069,  12596,  14244,  16022,
-     17937,  19979,  22121,  24345,  26646,  29021,  31454,  33927,
-     36438,  38982,  41538,  44068,  46532,  48904,  51160,  53265,
-     55184,  56904,  58422,  59739,  60858,  61793,  62568,  63210,
-     63738,  64165,  64504,  64769,  64976,  65133,  65249,  65330,
-     65386,  65424,  65451,  65471,  65487,  65501,  65513,  65524,
-     65535
-},
-{
-
-
-
-
-
-         0,    214,    581,   1261,   2376,   3920,   5742,   7632,
-      9449,  11157,  12780,  14352,  15897,  17427,  18949,  20462,
-     21957,  23430,  24889,  26342,  27780,  29191,  30575,  31952,
-     33345,  34763,  36200,  37642,  39083,  40519,  41930,  43291,
-     44602,  45885,  47154,  48402,  49619,  50805,  51959,  53069,
-     54127,  55140,  56128,  57101,  58056,  58979,  59859,  60692,
-     61468,  62177,  62812,  63368,  63845,  64242,  64563,  64818,
-     65023,  65184,  65306,  65391,  65447,  65482,  65505,  65521,
-     65535
-}
-};
-
-const SKP_int SKP_Silk_gain_CDF_offset = 32;
-
-
-const SKP_uint16 SKP_Silk_delta_gain_CDF[ 46 ] = {
-         0,   2358,   3856,   7023,  15376,  53058,  59135,  61555,
-     62784,  63498,  63949,  64265,  64478,  64647,  64783,  64894,
-     64986,  65052,  65113,  65169,  65213,  65252,  65284,  65314,
-     65338,  65359,  65377,  65392,  65403,  65415,  65424,  65432,
-     65440,  65448,  65455,  65462,  65470,  65477,  65484,  65491,
-     65499,  65506,  65513,  65521,  65528,  65535
-};
-
-const SKP_int SKP_Silk_delta_gain_CDF_offset = 5;
-
-#ifdef __cplusplus
-}
-#endif
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+const SKP_uint16 SKP_Silk_gain_CDF[ 2 ][ 65 ] = 
+{
+{
+         0,     18,     45,     94,    181,    320,    519,    777,
+      1093,   1468,   1909,   2417,   2997,   3657,   4404,   5245,
+      6185,   7228,   8384,   9664,  11069,  12596,  14244,  16022,
+     17937,  19979,  22121,  24345,  26646,  29021,  31454,  33927,
+     36438,  38982,  41538,  44068,  46532,  48904,  51160,  53265,
+     55184,  56904,  58422,  59739,  60858,  61793,  62568,  63210,
+     63738,  64165,  64504,  64769,  64976,  65133,  65249,  65330,
+     65386,  65424,  65451,  65471,  65487,  65501,  65513,  65524,
+     65535
+},
+{
+         0,    214,    581,   1261,   2376,   3920,   5742,   7632,
+      9449,  11157,  12780,  14352,  15897,  17427,  18949,  20462,
+     21957,  23430,  24889,  26342,  27780,  29191,  30575,  31952,
+     33345,  34763,  36200,  37642,  39083,  40519,  41930,  43291,
+     44602,  45885,  47154,  48402,  49619,  50805,  51959,  53069,
+     54127,  55140,  56128,  57101,  58056,  58979,  59859,  60692,
+     61468,  62177,  62812,  63368,  63845,  64242,  64563,  64818,
+     65023,  65184,  65306,  65391,  65447,  65482,  65505,  65521,
+     65535
+}
+};
+
+const SKP_int SKP_Silk_gain_CDF_offset = 32;
+
+
+const SKP_uint16 SKP_Silk_delta_gain_CDF[ 46 ] = {
+         0,   2358,   3856,   7023,  15376,  53058,  59135,  61555,
+     62784,  63498,  63949,  64265,  64478,  64647,  64783,  64894,
+     64986,  65052,  65113,  65169,  65213,  65252,  65284,  65314,
+     65338,  65359,  65377,  65392,  65403,  65415,  65424,  65432,
+     65440,  65448,  65455,  65462,  65470,  65477,  65484,  65491,
+     65499,  65506,  65513,  65521,  65528,  65535
+};
+
+const SKP_int SKP_Silk_delta_gain_CDF_offset = 5;
+
+#ifdef __cplusplus
+}
+#endif
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_ltpc"></a>
<div class="delfile"><h4>Deleted: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_ltp.c</h4></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_otherc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_other.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_other.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_other.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,171 +1,151 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-
-
-
-
-
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_structs.h&quot;
-#include &quot;SKP_Silk_define.h&quot;
-#include &quot;SKP_Silk_tables.h&quot;
-#ifdef __cplusplus
-extern &quot;C&quot;
-{
-#endif
-
-/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
-const SKP_int32 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = {
-    0,      8000,   9000,   11000,  13000,  16000,  22000,  100000
-};
-const SKP_int32 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = {
-    0,      10000,  12000,  14000,  17000,  21000,  28000,  100000
-};
-const SKP_int32 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = {
-    0,      11000,  14000,  17000,  21000,  26000,  36000,  100000
-};
-const SKP_int32 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ] = {
-    0,      13000,  16000,  19000,  25000,  32000,  46000,  100000
-};
-const SKP_int32 SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = {
-    19,     31,     35,     39,     43,     47,     54,     59
-};
-
-const SKP_int32 SNR_table_one_bit_per_sample_Q7[ 4 ] = {
-    1984,   2240,   2408,   2708
-};
-
-/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters  */
-const SKP_int16 SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ] = {
-    //{400, -550, 400}, {400, 130, 400}, {400, 390, 400}
-    {575, -948, 575}, {575, -221, 575}, {575, 104, 575}
-};
-const SKP_int16 SKP_Silk_SWB_detect_A_HP_Q13[ NB_SOS ][ 2 ] = {
-    {14613, 6868}, {12883, 7337}, {11586, 7911}
-    //{14880, 6900}, {14400, 7300}, {13700, 7800}
-};
-
-
-
-
-
-/* Decoder high-pass filter coefficients for 24 kHz sampling, -6 dB @ 44 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER     ] = {-16220, 8030};              // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
-
-/* Decoder high-pass filter coefficients for 16 kHz sampling, - 6 dB @ 46 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER     ] = {-16127, 7940};              // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
-
-/* Decoder high-pass filter coefficients for 12 kHz sampling, -6 dB @ 44 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER     ] = {-16043, 7859};              // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
-
-/* Decoder high-pass filter coefficients for 8 kHz sampling, -6 dB @ 43 Hz */
-const SKP_int16 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER     ] = {-15885, 7710};               // second order AR coefs, Q13
-const SKP_int16 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};         // second order MA coefs, Q13
-
-/* table for LSB coding */
-const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ] = {0,  40000,  65535};
-
-/* tables for LTPScale */
-const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ] = {0,  32000,  48000,  65535};
-const SKP_int    SKP_Silk_LTPscale_offset   = 2;
-
-/* tables for VAD flag */
-const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ] = {0,  22000,  65535}; // 66% for speech, 33% for no speech
-const SKP_int    SKP_Silk_vadflag_offset   = 1;
-
-/* tables for sampling rate */
-const SKP_int    SKP_Silk_SamplingRates_table[ 4 ] = {8, 12, 16, 24};
-const SKP_uint16 SKP_Silk_SamplingRates_CDF[ 5 ]   = {0,  16000,  32000,  48000,  65535};
-const SKP_int    SKP_Silk_SamplingRates_offset     = 2;
-
-/* tables for NLSF interpolation factor */
-const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ] = {0,   3706,   8703,  19226,  30926,  65535};
-const SKP_int    SKP_Silk_NLSF_interpolation_factor_offset   = 4;
-
-/* Table for frame termination indication */
-const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 5 ] = {0, 20000, 45000, 56000, 65535};
-const SKP_int    SKP_Silk_FrameTermination_offset   = 2;
-
-const SKP_uint16 SKP_Silk_FrameTermination_v4_CDF[ 6 ] = {0,   13107,   26214,   39321,   52428,   65535};
-const SKP_int    SKP_Silk_FrameTermination_v4_offset   = 4;
-
-/* Table for random seed */
-const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ] = {0, 16384, 32768, 49152, 65535};
-const SKP_int    SKP_Silk_Seed_offset   = 2;
-
-/* Quantization offsets */
-
-
-
-
-
-const SKP_int16  SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ] = {
-    { OFFSET_VL_Q10, OFFSET_VH_Q10 }, { OFFSET_UVL_Q10, OFFSET_UVH_Q10 }
-};
-
-/* Table for LTPScale */
-const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ] = { 15565, 11469, 8192 };
-
-#if SWITCH_TRANSITION_FILTERING
-/*  Elliptic/Cauer filters designed with 0.1 dB passband ripple,
-        80 dB minimum stopband attenuation, and
-        [0.95 : 0.15 : 0.35] normalized cut off frequencies. */
-
-/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
-const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ] =
-{
-{    250767114,  501534038,  250767114  },
-{    209867381,  419732057,  209867381  },
-{    170987846,  341967853,  170987846  },
-{    131531482,  263046905,  131531482  },
-{     89306658,  178584282,   89306658  }
-};
-
-/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
-const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ] =
-{
-{    506393414,  239854379  },
-{    411067935,  169683996  },
-{    306733530,  116694253  },
-{    185807084,   77959395  },
-{     35497197,   57401098  }
-};
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_structs.h&quot;
+#include &quot;SKP_Silk_define.h&quot;
+#include &quot;SKP_Silk_tables.h&quot;
+#ifdef __cplusplus
+extern &quot;C&quot;
+{
+#endif
+
+/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
+const SKP_int32 TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = {
+    0,      8000,   9000,   11000,  13000,  16000,  22000,  100000
+};
+const SKP_int32 TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = {
+    0,      10000,  12000,  14000,  17000,  21000,  28000,  100000
+};
+const SKP_int32 TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = {
+    0,      11000,  14000,  17000,  21000,  26000,  36000,  100000
+};
+const SKP_int32 TargetRate_table_SWB[ TARGET_RATE_TAB_SZ ] = {
+    0,      13000,  16000,  19000,  25000,  32000,  46000,  100000
+};
+const SKP_int32 SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = {
+    19,     31,     35,     39,     43,     47,     54,     59
+};
+
+const SKP_int32 SNR_table_one_bit_per_sample_Q7[ 4 ] = {
+    1984,   2240,   2408,   2708
+};
+
+/* Filter coeficicnts for HP filter: 4. Order filter implementad as two biquad filters  */
+const SKP_int16 SKP_Silk_SWB_detect_B_HP_Q13[ NB_SOS ][ 3 ] = {
+    //{400, -550, 400}, {400, 130, 400}, {400, 390, 400}
+    {575, -948, 575}, {575, -221, 575}, {575, 104, 575} 
+};
+const SKP_int16 SKP_Silk_SWB_detect_A_HP_Q13[ NB_SOS ][ 2 ] = {
+    {14613, 6868}, {12883, 7337}, {11586, 7911}
+    //{14880, 6900}, {14400, 7300}, {13700, 7800}
+};
+
+/* Decoder high-pass filter coefficients for 24 kHz sampling, -6 dB @ 44 Hz */
+const SKP_int16 SKP_Silk_Dec_A_HP_24[ DEC_HP_ORDER     ] = {-16220, 8030};              // second order AR coefs, Q13
+const SKP_int16 SKP_Silk_Dec_B_HP_24[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
+
+/* Decoder high-pass filter coefficients for 16 kHz sampling, - 6 dB @ 46 Hz */
+const SKP_int16 SKP_Silk_Dec_A_HP_16[ DEC_HP_ORDER     ] = {-16127, 7940};              // second order AR coefs, Q13
+const SKP_int16 SKP_Silk_Dec_B_HP_16[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
+
+/* Decoder high-pass filter coefficients for 12 kHz sampling, -6 dB @ 44 Hz */
+const SKP_int16 SKP_Silk_Dec_A_HP_12[ DEC_HP_ORDER     ] = {-16043, 7859};              // second order AR coefs, Q13
+const SKP_int16 SKP_Silk_Dec_B_HP_12[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};        // second order MA coefs, Q13
+
+/* Decoder high-pass filter coefficients for 8 kHz sampling, -6 dB @ 43 Hz */
+const SKP_int16 SKP_Silk_Dec_A_HP_8[ DEC_HP_ORDER     ] = {-15885, 7710};               // second order AR coefs, Q13
+const SKP_int16 SKP_Silk_Dec_B_HP_8[ DEC_HP_ORDER + 1 ] = {8000, -16000, 8000};         // second order MA coefs, Q13
+
+/* table for LSB coding */
+const SKP_uint16 SKP_Silk_lsb_CDF[ 3 ] = {0,  40000,  65535};
+
+/* tables for LTPScale */
+const SKP_uint16 SKP_Silk_LTPscale_CDF[ 4 ] = {0,  32000,  48000,  65535};
+const SKP_int    SKP_Silk_LTPscale_offset   = 2;
+
+/* tables for VAD flag */
+const SKP_uint16 SKP_Silk_vadflag_CDF[ 3 ] = {0,  22000,  65535}; // 66% for speech, 33% for no speech
+const SKP_int    SKP_Silk_vadflag_offset   = 1;
+
+/* tables for sampling rate */
+const SKP_int    SKP_Silk_SamplingRates_table[ 4 ] = {8, 12, 16, 24};
+const SKP_uint16 SKP_Silk_SamplingRates_CDF[ 5 ]   = {0,  16000,  32000,  48000,  65535};
+const SKP_int    SKP_Silk_SamplingRates_offset     = 2;
+
+/* tables for NLSF interpolation factor */
+const SKP_uint16 SKP_Silk_NLSF_interpolation_factor_CDF[ 6 ] = {0,   3706,   8703,  19226,  30926,  65535};
+const SKP_int    SKP_Silk_NLSF_interpolation_factor_offset   = 4;
+
+/* Table for frame termination indication */
+const SKP_uint16 SKP_Silk_FrameTermination_CDF[ 5 ] = {0, 20000, 45000, 56000, 65535};
+const SKP_int    SKP_Silk_FrameTermination_offset   = 2;
+
+const SKP_uint16 SKP_Silk_FrameTermination_v4_CDF[ 6 ] = {0,   13107,   26214,   39321,   52428,   65535};
+const SKP_int    SKP_Silk_FrameTermination_v4_offset   = 4;
+
+/* Table for random seed */
+const SKP_uint16 SKP_Silk_Seed_CDF[ 5 ] = {0, 16384, 32768, 49152, 65535};
+const SKP_int    SKP_Silk_Seed_offset   = 2;
+
+/* Quantization offsets */
+const SKP_int16  SKP_Silk_Quantization_Offsets_Q10[ 2 ][ 2 ] = {
+    { OFFSET_VL_Q10, OFFSET_VH_Q10 }, { OFFSET_UVL_Q10, OFFSET_UVH_Q10 }
+};
+
+/* Table for LTPScale */
+const SKP_int16 SKP_Silk_LTPScales_table_Q14[ 3 ] = { 15565, 11469, 8192 };
+
+#if SWITCH_TRANSITION_FILTERING
+/*  Elliptic/Cauer filters designed with 0.1 dB passband ripple, 
+        80 dB minimum stopband attenuation, and
+        [0.95 : 0.15 : 0.35] normalized cut off frequencies. */
+
+/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
+const SKP_int32 SKP_Silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ] = 
+{
+{    250767114,  501534038,  250767114  },
+{    209867381,  419732057,  209867381  },
+{    170987846,  341967853,  170987846  },
+{    131531482,  263046905,  131531482  },
+{     89306658,  178584282,   89306658  }
+};
+
+/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
+const SKP_int32 SKP_Silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ] = 
+{
+{    506393414,  239854379  },
+{    411067935,  169683996  },
+{    306733530,  116694253  },
+{    185807084,   77959395  },
+{     35497197,   57401098  }
+};
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_pitch_lagc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pitch_lag.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pitch_lag.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pitch_lag.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,230 +1,199 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-
-
-
-
-
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_tables.h&quot;
-
-const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
-         0,    194,    395,    608,    841,   1099,   1391,   1724,
-      2105,   2544,   3047,   3624,   4282,   5027,   5865,   6799,
-      7833,   8965,  10193,  11510,  12910,  14379,  15905,  17473,
-     19065,  20664,  22252,  23814,  25335,  26802,  28206,  29541,
-     30803,  31992,  33110,  34163,  35156,  36098,  36997,  37861,
-     38698,  39515,  40319,  41115,  41906,  42696,  43485,  44273,
-     45061,  45847,  46630,  47406,  48175,  48933,  49679,  50411,
-     51126,  51824,  52502,  53161,  53799,  54416,  55011,  55584,
-     56136,  56666,  57174,  57661,  58126,  58570,  58993,  59394,
-     59775,  60134,  60472,  60790,  61087,  61363,  61620,  61856,
-     62075,  62275,  62458,  62625,  62778,  62918,  63045,  63162,
-     63269,  63368,  63459,  63544,  63623,  63698,  63769,  63836,
-     63901,  63963,  64023,  64081,  64138,  64194,  64248,  64301,
-     64354,  64406,  64457,  64508,  64558,  64608,  64657,  64706,
-     64754,  64803,  64851,  64899,  64946,  64994,  65041,  65088,
-     65135,  65181,  65227,  65272,  65317,  65361,  65405,  65449,
-     65492,  65535
-};
-
-const SKP_int SKP_Silk_pitch_lag_NB_CDF_offset = 43;
-
-const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ] = {
-
-
-
-
-
-         0,  14445,  18587,  25628,  30013,  34859,  40597,  48426,
-     54460,  59033,  62990,  65535
-};
-
-const SKP_int SKP_Silk_pitch_contour_NB_CDF_offset = 5;
-
-const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
-         0,    132,    266,    402,    542,    686,    838,    997,
-      1167,   1349,   1546,   1760,   1993,   2248,   2528,   2835,
-      3173,   3544,   3951,   4397,   4882,   5411,   5984,   6604,
-      7270,   7984,   8745,   9552,  10405,  11300,  12235,  13206,
-     14209,  15239,  16289,  17355,  18430,  19507,  20579,  21642,
-     22688,  23712,  24710,  25677,  26610,  27507,  28366,  29188,
-     29971,  30717,  31427,  32104,  32751,  33370,  33964,  34537,
-     35091,  35630,  36157,  36675,  37186,  37692,  38195,  38697,
-     39199,  39701,  40206,  40713,  41222,  41733,  42247,  42761,
-     43277,  43793,  44309,  44824,  45336,  45845,  46351,  46851,
-     47347,  47836,  48319,  48795,  49264,  49724,  50177,  50621,
-     51057,  51484,  51902,  52312,  52714,  53106,  53490,  53866,
-     54233,  54592,  54942,  55284,  55618,  55944,  56261,  56571,
-     56873,  57167,  57453,  57731,  58001,  58263,  58516,  58762,
-     58998,  59226,  59446,  59656,  59857,  60050,  60233,  60408,
-     60574,  60732,  60882,  61024,  61159,  61288,  61410,  61526,
-     61636,  61742,  61843,  61940,  62033,  62123,  62210,  62293,
-     62374,  62452,  62528,  62602,  62674,  62744,  62812,  62879,
-     62945,  63009,  63072,  63135,  63196,  63256,  63316,  63375,
-     63434,  63491,  63549,  63605,  63661,  63717,  63772,  63827,
-     63881,  63935,  63988,  64041,  64094,  64147,  64199,  64252,
-     64304,  64356,  64409,  64461,  64513,  64565,  64617,  64669,
-     64721,  64773,  64824,  64875,  64925,  64975,  65024,  65072,
-     65121,  65168,  65215,  65262,  65308,  65354,  65399,  65445,
-     65490,  65535
-};
-
-const SKP_int SKP_Silk_pitch_lag_MB_CDF_offset = 64;
-
-const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
-         0,    106,    213,    321,    429,    539,    651,    766,
-       884,   1005,   1132,   1264,   1403,   1549,   1705,   1870,
-      2047,   2236,   2439,   2658,   2893,   3147,   3420,   3714,
-      4030,   4370,   4736,   5127,   5546,   5993,   6470,   6978,
-      7516,   8086,   8687,   9320,   9985,  10680,  11405,  12158,
-     12938,  13744,  14572,  15420,  16286,  17166,  18057,  18955,
-     19857,  20759,  21657,  22547,  23427,  24293,  25141,  25969,
-     26774,  27555,  28310,  29037,  29736,  30406,  31048,  31662,
-     32248,  32808,  33343,  33855,  34345,  34815,  35268,  35704,
-     36127,  36537,  36938,  37330,  37715,  38095,  38471,  38844,
-     39216,  39588,  39959,  40332,  40707,  41084,  41463,  41844,
-
-
-
-
-
-     42229,  42615,  43005,  43397,  43791,  44186,  44583,  44982,
-     45381,  45780,  46179,  46578,  46975,  47371,  47765,  48156,
-     48545,  48930,  49312,  49690,  50064,  50433,  50798,  51158,
-     51513,  51862,  52206,  52544,  52877,  53204,  53526,  53842,
-     54152,  54457,  54756,  55050,  55338,  55621,  55898,  56170,
-     56436,  56697,  56953,  57204,  57449,  57689,  57924,  58154,
-     58378,  58598,  58812,  59022,  59226,  59426,  59620,  59810,
-     59994,  60173,  60348,  60517,  60681,  60840,  60993,  61141,
-     61284,  61421,  61553,  61679,  61800,  61916,  62026,  62131,
-     62231,  62326,  62417,  62503,  62585,  62663,  62737,  62807,
-     62874,  62938,  62999,  63057,  63113,  63166,  63217,  63266,
-     63314,  63359,  63404,  63446,  63488,  63528,  63567,  63605,
-     63642,  63678,  63713,  63748,  63781,  63815,  63847,  63879,
-     63911,  63942,  63973,  64003,  64033,  64063,  64092,  64121,
-     64150,  64179,  64207,  64235,  64263,  64291,  64319,  64347,
-     64374,  64401,  64428,  64455,  64481,  64508,  64534,  64560,
-     64585,  64610,  64635,  64660,  64685,  64710,  64734,  64758,
-     64782,  64807,  64831,  64855,  64878,  64902,  64926,  64950,
-     64974,  64998,  65022,  65045,  65069,  65093,  65116,  65139,
-     65163,  65186,  65209,  65231,  65254,  65276,  65299,  65321,
-     65343,  65364,  65386,  65408,  65429,  65450,  65471,  65493,
-     65514,  65535
-};
-
-const SKP_int SKP_Silk_pitch_lag_WB_CDF_offset = 86;
-
-
-const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
-         0,    253,    505,    757,   1008,   1258,   1507,   1755,
-      2003,   2249,   2494,   2738,   2982,   3225,   3469,   3713,
-      3957,   4202,   4449,   4698,   4949,   5203,   5460,   5720,
-      5983,   6251,   6522,   6798,   7077,   7361,   7650,   7942,
-      8238,   8539,   8843,   9150,   9461,   9775,  10092,  10411,
-     10733,  11057,  11383,  11710,  12039,  12370,  12701,  13034,
-     13368,  13703,  14040,  14377,  14716,  15056,  15398,  15742,
-     16087,  16435,  16785,  17137,  17492,  17850,  18212,  18577,
-     18946,  19318,  19695,  20075,  20460,  20849,  21243,  21640,
-     22041,  22447,  22856,  23269,  23684,  24103,  24524,  24947,
-     25372,  25798,  26225,  26652,  27079,  27504,  27929,  28352,
-     28773,  29191,  29606,  30018,  30427,  30831,  31231,  31627,
-     32018,  32404,  32786,  33163,  33535,  33902,  34264,  34621,
-     34973,  35320,  35663,  36000,  36333,  36662,  36985,  37304,
-     37619,  37929,  38234,  38535,  38831,  39122,  39409,  39692,
-     39970,  40244,  40513,  40778,  41039,  41295,  41548,  41796,
-     42041,  42282,  42520,  42754,  42985,  43213,  43438,  43660,
-     43880,  44097,  44312,  44525,  44736,  44945,  45153,  45359,
-     45565,  45769,  45972,  46175,  46377,  46578,  46780,  46981,
-     47182,  47383,  47585,  47787,  47989,  48192,  48395,  48599,
-
-
-
-
-
-     48804,  49009,  49215,  49422,  49630,  49839,  50049,  50259,
-     50470,  50682,  50894,  51107,  51320,  51533,  51747,  51961,
-     52175,  52388,  52601,  52813,  53025,  53236,  53446,  53655,
-     53863,  54069,  54274,  54477,  54679,  54879,  55078,  55274,
-     55469,  55662,  55853,  56042,  56230,  56415,  56598,  56779,
-     56959,  57136,  57311,  57484,  57654,  57823,  57989,  58152,
-     58314,  58473,  58629,  58783,  58935,  59084,  59230,  59373,
-     59514,  59652,  59787,  59919,  60048,  60174,  60297,  60417,
-     60533,  60647,  60757,  60865,  60969,  61070,  61167,  61262,
-     61353,  61442,  61527,  61609,  61689,  61765,  61839,  61910,
-     61979,  62045,  62109,  62170,  62230,  62287,  62343,  62396,
-     62448,  62498,  62547,  62594,  62640,  62685,  62728,  62770,
-     62811,  62852,  62891,  62929,  62967,  63004,  63040,  63075,
-     63110,  63145,  63178,  63212,  63244,  63277,  63308,  63340,
-     63371,  63402,  63432,  63462,  63491,  63521,  63550,  63578,
-     63607,  63635,  63663,  63690,  63718,  63744,  63771,  63798,
-     63824,  63850,  63875,  63900,  63925,  63950,  63975,  63999,
-     64023,  64046,  64069,  64092,  64115,  64138,  64160,  64182,
-     64204,  64225,  64247,  64268,  64289,  64310,  64330,  64351,
-     64371,  64391,  64411,  64431,  64450,  64470,  64489,  64508,
-     64527,  64545,  64564,  64582,  64600,  64617,  64635,  64652,
-     64669,  64686,  64702,  64719,  64735,  64750,  64766,  64782,
-     64797,  64812,  64827,  64842,  64857,  64872,  64886,  64901,
-     64915,  64930,  64944,  64959,  64974,  64988,  65003,  65018,
-     65033,  65048,  65063,  65078,  65094,  65109,  65125,  65141,
-     65157,  65172,  65188,  65204,  65220,  65236,  65252,  65268,
-     65283,  65299,  65314,  65330,  65345,  65360,  65375,  65390,
-     65405,  65419,  65434,  65449,  65463,  65477,  65492,  65506,
-     65521,  65535
-};
-
-const SKP_int SKP_Silk_pitch_lag_SWB_CDF_offset = 128;
-
-
-const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ] = {
-         0,    372,    843,   1315,   1836,   2644,   3576,   4719,
-      6088,   7621,   9396,  11509,  14245,  17618,  20777,  24294,
-     27992,  33116,  40100,  44329,  47558,  50679,  53130,  55557,
-     57510,  59022,  60285,  61345,  62316,  63140,  63762,  64321,
-     64729,  65099,  65535
-};
-
-const SKP_int SKP_Silk_pitch_contour_CDF_offset = 17;
-
-const SKP_uint16 SKP_Silk_pitch_delta_CDF[23] = {
-         0,    343,    740,   1249,   1889,   2733,   3861,   5396,
-      7552,  10890,  16053,  24152,  30220,  34680,  37973,  40405,
-     42243,  43708,  44823,  45773,  46462,  47055,  65535
-
-
-
-
-
-};
-
-const SKP_int SKP_Silk_pitch_delta_CDF_offset = 11;
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+const SKP_uint16 SKP_Silk_pitch_lag_NB_CDF[ 8 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
+         0,    194,    395,    608,    841,   1099,   1391,   1724,
+      2105,   2544,   3047,   3624,   4282,   5027,   5865,   6799,
+      7833,   8965,  10193,  11510,  12910,  14379,  15905,  17473,
+     19065,  20664,  22252,  23814,  25335,  26802,  28206,  29541,
+     30803,  31992,  33110,  34163,  35156,  36098,  36997,  37861,
+     38698,  39515,  40319,  41115,  41906,  42696,  43485,  44273,
+     45061,  45847,  46630,  47406,  48175,  48933,  49679,  50411,
+     51126,  51824,  52502,  53161,  53799,  54416,  55011,  55584,
+     56136,  56666,  57174,  57661,  58126,  58570,  58993,  59394,
+     59775,  60134,  60472,  60790,  61087,  61363,  61620,  61856,
+     62075,  62275,  62458,  62625,  62778,  62918,  63045,  63162,
+     63269,  63368,  63459,  63544,  63623,  63698,  63769,  63836,
+     63901,  63963,  64023,  64081,  64138,  64194,  64248,  64301,
+     64354,  64406,  64457,  64508,  64558,  64608,  64657,  64706,
+     64754,  64803,  64851,  64899,  64946,  64994,  65041,  65088,
+     65135,  65181,  65227,  65272,  65317,  65361,  65405,  65449,
+     65492,  65535
+};
+
+const SKP_int SKP_Silk_pitch_lag_NB_CDF_offset = 43;
+
+const SKP_uint16 SKP_Silk_pitch_contour_NB_CDF[ 12 ] = {
+         0,  14445,  18587,  25628,  30013,  34859,  40597,  48426,
+     54460,  59033,  62990,  65535
+};
+
+const SKP_int SKP_Silk_pitch_contour_NB_CDF_offset = 5;
+
+const SKP_uint16 SKP_Silk_pitch_lag_MB_CDF[ 12 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
+         0,    132,    266,    402,    542,    686,    838,    997,
+      1167,   1349,   1546,   1760,   1993,   2248,   2528,   2835,
+      3173,   3544,   3951,   4397,   4882,   5411,   5984,   6604,
+      7270,   7984,   8745,   9552,  10405,  11300,  12235,  13206,
+     14209,  15239,  16289,  17355,  18430,  19507,  20579,  21642,
+     22688,  23712,  24710,  25677,  26610,  27507,  28366,  29188,
+     29971,  30717,  31427,  32104,  32751,  33370,  33964,  34537,
+     35091,  35630,  36157,  36675,  37186,  37692,  38195,  38697,
+     39199,  39701,  40206,  40713,  41222,  41733,  42247,  42761,
+     43277,  43793,  44309,  44824,  45336,  45845,  46351,  46851,
+     47347,  47836,  48319,  48795,  49264,  49724,  50177,  50621,
+     51057,  51484,  51902,  52312,  52714,  53106,  53490,  53866,
+     54233,  54592,  54942,  55284,  55618,  55944,  56261,  56571,
+     56873,  57167,  57453,  57731,  58001,  58263,  58516,  58762,
+     58998,  59226,  59446,  59656,  59857,  60050,  60233,  60408,
+     60574,  60732,  60882,  61024,  61159,  61288,  61410,  61526,
+     61636,  61742,  61843,  61940,  62033,  62123,  62210,  62293,
+     62374,  62452,  62528,  62602,  62674,  62744,  62812,  62879,
+     62945,  63009,  63072,  63135,  63196,  63256,  63316,  63375,
+     63434,  63491,  63549,  63605,  63661,  63717,  63772,  63827,
+     63881,  63935,  63988,  64041,  64094,  64147,  64199,  64252,
+     64304,  64356,  64409,  64461,  64513,  64565,  64617,  64669,
+     64721,  64773,  64824,  64875,  64925,  64975,  65024,  65072,
+     65121,  65168,  65215,  65262,  65308,  65354,  65399,  65445,
+     65490,  65535
+};
+
+const SKP_int SKP_Silk_pitch_lag_MB_CDF_offset = 64;
+
+const SKP_uint16 SKP_Silk_pitch_lag_WB_CDF[ 16 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
+         0,    106,    213,    321,    429,    539,    651,    766,
+       884,   1005,   1132,   1264,   1403,   1549,   1705,   1870,
+      2047,   2236,   2439,   2658,   2893,   3147,   3420,   3714,
+      4030,   4370,   4736,   5127,   5546,   5993,   6470,   6978,
+      7516,   8086,   8687,   9320,   9985,  10680,  11405,  12158,
+     12938,  13744,  14572,  15420,  16286,  17166,  18057,  18955,
+     19857,  20759,  21657,  22547,  23427,  24293,  25141,  25969,
+     26774,  27555,  28310,  29037,  29736,  30406,  31048,  31662,
+     32248,  32808,  33343,  33855,  34345,  34815,  35268,  35704,
+     36127,  36537,  36938,  37330,  37715,  38095,  38471,  38844,
+     39216,  39588,  39959,  40332,  40707,  41084,  41463,  41844,
+     42229,  42615,  43005,  43397,  43791,  44186,  44583,  44982,
+     45381,  45780,  46179,  46578,  46975,  47371,  47765,  48156,
+     48545,  48930,  49312,  49690,  50064,  50433,  50798,  51158,
+     51513,  51862,  52206,  52544,  52877,  53204,  53526,  53842,
+     54152,  54457,  54756,  55050,  55338,  55621,  55898,  56170,
+     56436,  56697,  56953,  57204,  57449,  57689,  57924,  58154,
+     58378,  58598,  58812,  59022,  59226,  59426,  59620,  59810,
+     59994,  60173,  60348,  60517,  60681,  60840,  60993,  61141,
+     61284,  61421,  61553,  61679,  61800,  61916,  62026,  62131,
+     62231,  62326,  62417,  62503,  62585,  62663,  62737,  62807,
+     62874,  62938,  62999,  63057,  63113,  63166,  63217,  63266,
+     63314,  63359,  63404,  63446,  63488,  63528,  63567,  63605,
+     63642,  63678,  63713,  63748,  63781,  63815,  63847,  63879,
+     63911,  63942,  63973,  64003,  64033,  64063,  64092,  64121,
+     64150,  64179,  64207,  64235,  64263,  64291,  64319,  64347,
+     64374,  64401,  64428,  64455,  64481,  64508,  64534,  64560,
+     64585,  64610,  64635,  64660,  64685,  64710,  64734,  64758,
+     64782,  64807,  64831,  64855,  64878,  64902,  64926,  64950,
+     64974,  64998,  65022,  65045,  65069,  65093,  65116,  65139,
+     65163,  65186,  65209,  65231,  65254,  65276,  65299,  65321,
+     65343,  65364,  65386,  65408,  65429,  65450,  65471,  65493,
+     65514,  65535
+};
+
+const SKP_int SKP_Silk_pitch_lag_WB_CDF_offset = 86;
+
+
+const SKP_uint16 SKP_Silk_pitch_lag_SWB_CDF[ 24 * ( PITCH_EST_MAX_LAG_MS - PITCH_EST_MIN_LAG_MS ) + 2 ] = {
+         0,    253,    505,    757,   1008,   1258,   1507,   1755,
+      2003,   2249,   2494,   2738,   2982,   3225,   3469,   3713,
+      3957,   4202,   4449,   4698,   4949,   5203,   5460,   5720,
+      5983,   6251,   6522,   6798,   7077,   7361,   7650,   7942,
+      8238,   8539,   8843,   9150,   9461,   9775,  10092,  10411,
+     10733,  11057,  11383,  11710,  12039,  12370,  12701,  13034,
+     13368,  13703,  14040,  14377,  14716,  15056,  15398,  15742,
+     16087,  16435,  16785,  17137,  17492,  17850,  18212,  18577,
+     18946,  19318,  19695,  20075,  20460,  20849,  21243,  21640,
+     22041,  22447,  22856,  23269,  23684,  24103,  24524,  24947,
+     25372,  25798,  26225,  26652,  27079,  27504,  27929,  28352,
+     28773,  29191,  29606,  30018,  30427,  30831,  31231,  31627,
+     32018,  32404,  32786,  33163,  33535,  33902,  34264,  34621,
+     34973,  35320,  35663,  36000,  36333,  36662,  36985,  37304,
+     37619,  37929,  38234,  38535,  38831,  39122,  39409,  39692,
+     39970,  40244,  40513,  40778,  41039,  41295,  41548,  41796,
+     42041,  42282,  42520,  42754,  42985,  43213,  43438,  43660,
+     43880,  44097,  44312,  44525,  44736,  44945,  45153,  45359,
+     45565,  45769,  45972,  46175,  46377,  46578,  46780,  46981,
+     47182,  47383,  47585,  47787,  47989,  48192,  48395,  48599,
+     48804,  49009,  49215,  49422,  49630,  49839,  50049,  50259,
+     50470,  50682,  50894,  51107,  51320,  51533,  51747,  51961,
+     52175,  52388,  52601,  52813,  53025,  53236,  53446,  53655,
+     53863,  54069,  54274,  54477,  54679,  54879,  55078,  55274,
+     55469,  55662,  55853,  56042,  56230,  56415,  56598,  56779,
+     56959,  57136,  57311,  57484,  57654,  57823,  57989,  58152,
+     58314,  58473,  58629,  58783,  58935,  59084,  59230,  59373,
+     59514,  59652,  59787,  59919,  60048,  60174,  60297,  60417,
+     60533,  60647,  60757,  60865,  60969,  61070,  61167,  61262,
+     61353,  61442,  61527,  61609,  61689,  61765,  61839,  61910,
+     61979,  62045,  62109,  62170,  62230,  62287,  62343,  62396,
+     62448,  62498,  62547,  62594,  62640,  62685,  62728,  62770,
+     62811,  62852,  62891,  62929,  62967,  63004,  63040,  63075,
+     63110,  63145,  63178,  63212,  63244,  63277,  63308,  63340,
+     63371,  63402,  63432,  63462,  63491,  63521,  63550,  63578,
+     63607,  63635,  63663,  63690,  63718,  63744,  63771,  63798,
+     63824,  63850,  63875,  63900,  63925,  63950,  63975,  63999,
+     64023,  64046,  64069,  64092,  64115,  64138,  64160,  64182,
+     64204,  64225,  64247,  64268,  64289,  64310,  64330,  64351,
+     64371,  64391,  64411,  64431,  64450,  64470,  64489,  64508,
+     64527,  64545,  64564,  64582,  64600,  64617,  64635,  64652,
+     64669,  64686,  64702,  64719,  64735,  64750,  64766,  64782,
+     64797,  64812,  64827,  64842,  64857,  64872,  64886,  64901,
+     64915,  64930,  64944,  64959,  64974,  64988,  65003,  65018,
+     65033,  65048,  65063,  65078,  65094,  65109,  65125,  65141,
+     65157,  65172,  65188,  65204,  65220,  65236,  65252,  65268,
+     65283,  65299,  65314,  65330,  65345,  65360,  65375,  65390,
+     65405,  65419,  65434,  65449,  65463,  65477,  65492,  65506,
+     65521,  65535
+};
+
+const SKP_int SKP_Silk_pitch_lag_SWB_CDF_offset = 128;
+
+
+const SKP_uint16 SKP_Silk_pitch_contour_CDF[ 35 ] = {
+         0,    372,    843,   1315,   1836,   2644,   3576,   4719,
+      6088,   7621,   9396,  11509,  14245,  17618,  20777,  24294,
+     27992,  33116,  40100,  44329,  47558,  50679,  53130,  55557,
+     57510,  59022,  60285,  61345,  62316,  63140,  63762,  64321,
+     64729,  65099,  65535
+};
+
+const SKP_int SKP_Silk_pitch_contour_CDF_offset = 17;
+
+const SKP_uint16 SKP_Silk_pitch_delta_CDF[23] = {
+         0,    343,    740,   1249,   1889,   2733,   3861,   5396,
+      7552,  10890,  16053,  24152,  30220,  34680,  37973,  40405,
+     42243,  43708,  44823,  45773,  46462,  47055,  65535
+};
+
+const SKP_int SKP_Silk_pitch_delta_CDF_offset = 11;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_pulses_per_blockc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pulses_per_block.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pulses_per_block.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_pulses_per_block.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,264 +1,235 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_tables.h&quot;
-
-const SKP_int SKP_Silk_max_pulses_table[ 4 ] = {
-         6,      8,     12,     18
-};
-
-const SKP_uint16 SKP_Silk_pulses_per_block_CDF[ 10 ][ 21 ] =
-{
-{
-         0,  47113,  61501,  64590,  65125,  65277,  65352,  65407,
-     65450,  65474,  65488,  65501,  65508,  65514,  65516,  65520,
-
-
-
-
-
-     65521,  65523,  65524,  65526,  65535
-},
-{
-         0,  26368,  47760,  58803,  63085,  64567,  65113,  65333,
-     65424,  65474,  65498,  65511,  65517,  65520,  65523,  65525,
-     65526,  65528,  65529,  65530,  65535
-},
-{
-         0,   9601,  28014,  45877,  57210,  62560,  64611,  65260,
-     65447,  65500,  65511,  65519,  65521,  65525,  65526,  65529,
-     65530,  65531,  65532,  65534,  65535
-},
-{
-         0,   3351,  12462,  25972,  39782,  50686,  57644,  61525,
-     63521,  64506,  65009,  65255,  65375,  65441,  65471,  65488,
-     65497,  65505,  65509,  65512,  65535
-},
-{
-         0,    488,   2944,   9295,  19712,  32160,  43976,  53121,
-     59144,  62518,  64213,  65016,  65346,  65470,  65511,  65515,
-     65525,  65529,  65531,  65534,  65535
-},
-{
-         0,  17013,  30405,  40812,  48142,  53466,  57166,  59845,
-     61650,  62873,  63684,  64223,  64575,  64811,  64959,  65051,
-     65111,  65143,  65165,  65183,  65535
-},
-{
-         0,   2994,   8323,  15845,  24196,  32300,  39340,  45140,
-     49813,  53474,  56349,  58518,  60167,  61397,  62313,  62969,
-     63410,  63715,  63906,  64056,  65535
-},
-{
-         0,     88,    721,   2795,   7542,  14888,  24420,  34593,
-     43912,  51484,  56962,  60558,  62760,  64037,  64716,  65069,
-     65262,  65358,  65398,  65420,  65535
-},
-{
-         0,    287,    789,   2064,   4398,   8174,  13534,  20151,
-     27347,  34533,  41295,  47242,  52070,  55772,  58458,  60381,
-     61679,  62533,  63109,  63519,  65535
-},
-{
-         0,      1,      3,     91,   4521,  14708,  28329,  41955,
-     52116,  58375,  61729,  63534,  64459,  64924,  65092,  65164,
-     65182,  65198,  65203,  65211,  65535
-}
-};
-
-
-
-
-
-const SKP_int SKP_Silk_pulses_per_block_CDF_offset = 6;
-
-
-const SKP_int16 SKP_Silk_pulses_per_block_BITS_Q6[ 9 ][ 20 ] =
-{
-{
-        30,    140,    282,    444,    560,    625,    654,    677,
-       731,    780,    787,    844,    859,    960,    896,   1024,
-       960,   1024,    960,    821
-},
-{
-        84,    103,    164,    252,    350,    442,    526,    607,
-       663,    731,    787,    859,    923,    923,    960,   1024,
-       960,   1024,   1024,    875
-},
-{
-       177,    117,    120,    162,    231,    320,    426,    541,
-       657,    803,    832,    960,    896,   1024,    923,   1024,
-      1024,   1024,    960,   1024
-},
-{
-       275,    182,    146,    144,    166,    207,    261,    322,
-       388,    450,    516,    582,    637,    710,    762,    821,
-       832,    896,    923,    734
-},
-{
-       452,    303,    216,    170,    153,    158,    182,    220,
-       274,    337,    406,    489,    579,    681,    896,    811,
-       896,    960,    923,   1024
-},
-{
-       125,    147,    170,    202,    232,    265,    295,    332,
-       368,    406,    443,    483,    520,    563,    606,    646,
-       704,    739,    757,    483
-},
-{
-       285,    232,    200,    190,    193,    206,    224,    244,
-       266,    289,    315,    340,    367,    394,    425,    462,
-       496,    539,    561,    350
-},
-{
-       611,    428,    319,    242,    202,    178,    172,    180,
-       199,    229,    268,    313,    364,    422,    482,    538,
-       603,    683,    739,    586
-},
-{
-       501,    450,    364,    308,    264,    231,    212,    204,
-       204,    210,    222,    241,    265,    295,    326,    362,
-
-
-
-
-
-       401,    437,    469,    321
-}
-};
-
-const SKP_uint16 SKP_Silk_rate_levels_CDF[ 2 ][ 10 ] =
-{
-{
-         0,   2005,  12717,  20281,  31328,  36234,  45816,  57753,
-     63104,  65535
-},
-{
-         0,   8553,  23489,  36031,  46295,  53519,  56519,  59151,
-     64185,  65535
-}
-};
-
-const SKP_int SKP_Silk_rate_levels_CDF_offset = 4;
-
-
-const SKP_int16 SKP_Silk_rate_levels_BITS_Q6[ 2 ][ 9 ] =
-{
-{
-       322,    167,    199,    164,    239,    178,    157,    231,
-       304
-},
-{
-       188,    137,    153,    171,    204,    285,    297,    237,
-       358
-}
-};
-
-const SKP_uint16 SKP_Silk_shell_code_table0[ 33 ] = {
-         0,  32748,  65535,      0,   9505,  56230,  65535,      0,
-      4093,  32204,  61720,  65535,      0,   2285,  16207,  48750,
-     63424,  65535,      0,   1709,   9446,  32026,  55752,  63876,
-     65535,      0,   1623,   6986,  21845,  45381,  59147,  64186,
-     65535
-};
-
-const SKP_uint16 SKP_Silk_shell_code_table1[ 52 ] = {
-         0,  32691,  65535,      0,  12782,  52752,  65535,      0,
-      4847,  32665,  60899,  65535,      0,   2500,  17305,  47989,
-     63369,  65535,      0,   1843,  10329,  32419,  55433,  64277,
-     65535,      0,   1485,   7062,  21465,  43414,  59079,  64623,
-     65535,      0,      0,   4841,  14797,  31799,  49667,  61309,
-     65535,  65535,      0,      0,      0,   8032,  21695,  41078,
-     56317,  65535,  65535,  65535
-};
-
-
-
-
-
-const SKP_uint16 SKP_Silk_shell_code_table2[ 102 ] = {
-         0,  32615,  65535,      0,  14447,  50912,  65535,      0,
-      6301,  32587,  59361,  65535,      0,   3038,  18640,  46809,
-     62852,  65535,      0,   1746,  10524,  32509,  55273,  64278,
-     65535,      0,   1234,   6360,  21259,  43712,  59651,  64805,
-     65535,      0,   1020,   4461,  14030,  32286,  51249,  61904,
-     65100,  65535,      0,    851,   3435,  10006,  23241,  40797,
-     55444,  63009,  65252,  65535,      0,      0,   2075,   7137,
-     17119,  31499,  46982,  58723,  63976,  65535,  65535,      0,
-         0,      0,   3820,  11572,  23038,  37789,  51969,  61243,
-     65535,  65535,  65535,      0,      0,      0,      0,   6882,
-     16828,  30444,  44844,  57365,  65535,  65535,  65535,  65535,
-         0,      0,      0,      0,      0,  10093,  22963,  38779,
-     54426,  65535,  65535,  65535,  65535,  65535
-};
-
-const SKP_uint16 SKP_Silk_shell_code_table3[ 207 ] = {
-         0,  32324,  65535,      0,  15328,  49505,  65535,      0,
-      7474,  32344,  57955,  65535,      0,   3944,  19450,  45364,
-     61873,  65535,      0,   2338,  11698,  32435,  53915,  63734,
-     65535,      0,   1506,   7074,  21778,  42972,  58861,  64590,
-     65535,      0,   1027,   4490,  14383,  32264,  50980,  61712,
-     65043,  65535,      0,    760,   3022,   9696,  23264,  41465,
-     56181,  63253,  65251,  65535,      0,    579,   2256,   6873,
-     16661,  31951,  48250,  59403,  64198,  65360,  65535,      0,
-       464,   1783,   5181,  12269,  24247,  39877,  53490,  61502,
-     64591,  65410,  65535,      0,    366,   1332,   3880,   9273,
-     18585,  32014,  45928,  56659,  62616,  64899,  65483,  65535,
-         0,    286,   1065,   3089,   6969,  14148,  24859,  38274,
-     50715,  59078,  63448,  65091,  65481,  65535,      0,      0,
-       482,   2010,   5302,  10408,  18988,  30698,  43634,  54233,
-     60828,  64119,  65288,  65535,  65535,      0,      0,      0,
-      1006,   3531,   7857,  14832,  24543,  36272,  47547,  56883,
-     62327,  64746,  65535,  65535,  65535,      0,      0,      0,
-         0,   1863,   4950,  10730,  19284,  29397,  41382,  52335,
-     59755,  63834,  65535,  65535,  65535,  65535,      0,      0,
-         0,      0,      0,   2513,   7290,  14487,  24275,  35312,
-     46240,  55841,  62007,  65535,  65535,  65535,  65535,  65535,
-         0,      0,      0,      0,      0,      0,   3606,   9573,
-     18764,  28667,  40220,  51290,  59924,  65535,  65535,  65535,
-     65535,  65535,  65535,      0,      0,      0,      0,      0,
-         0,      0,   4879,  13091,  23376,  36061,  49395,  59315,
-     65535,  65535,  65535,  65535,  65535,  65535,  65535
-};
-
-const SKP_uint16 SKP_Silk_shell_code_table_offsets[ 19 ] = {
-         0,      0,      3,      7,     12,     18,     25,     33,
-        42,     52,     63,     75,     88,    102,    117,    133,
-
-
-
-
-
-       150,    168,    187
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+const SKP_int SKP_Silk_max_pulses_table[ 4 ] = {
+         6,      8,     12,     18
+};
+
+const SKP_uint16 SKP_Silk_pulses_per_block_CDF[ 10 ][ 21 ] = 
+{
+{
+         0,  47113,  61501,  64590,  65125,  65277,  65352,  65407,
+     65450,  65474,  65488,  65501,  65508,  65514,  65516,  65520,
+     65521,  65523,  65524,  65526,  65535
+},
+{
+         0,  26368,  47760,  58803,  63085,  64567,  65113,  65333,
+     65424,  65474,  65498,  65511,  65517,  65520,  65523,  65525,
+     65526,  65528,  65529,  65530,  65535
+},
+{
+         0,   9601,  28014,  45877,  57210,  62560,  64611,  65260,
+     65447,  65500,  65511,  65519,  65521,  65525,  65526,  65529,
+     65530,  65531,  65532,  65534,  65535
+},
+{
+         0,   3351,  12462,  25972,  39782,  50686,  57644,  61525,
+     63521,  64506,  65009,  65255,  65375,  65441,  65471,  65488,
+     65497,  65505,  65509,  65512,  65535
+},
+{
+         0,    488,   2944,   9295,  19712,  32160,  43976,  53121,
+     59144,  62518,  64213,  65016,  65346,  65470,  65511,  65515,
+     65525,  65529,  65531,  65534,  65535
+},
+{
+         0,  17013,  30405,  40812,  48142,  53466,  57166,  59845,
+     61650,  62873,  63684,  64223,  64575,  64811,  64959,  65051,
+     65111,  65143,  65165,  65183,  65535
+},
+{
+         0,   2994,   8323,  15845,  24196,  32300,  39340,  45140,
+     49813,  53474,  56349,  58518,  60167,  61397,  62313,  62969,
+     63410,  63715,  63906,  64056,  65535
+},
+{
+         0,     88,    721,   2795,   7542,  14888,  24420,  34593,
+     43912,  51484,  56962,  60558,  62760,  64037,  64716,  65069,
+     65262,  65358,  65398,  65420,  65535
+},
+{
+         0,    287,    789,   2064,   4398,   8174,  13534,  20151,
+     27347,  34533,  41295,  47242,  52070,  55772,  58458,  60381,
+     61679,  62533,  63109,  63519,  65535
+},
+{
+         0,      1,      3,     91,   4521,  14708,  28329,  41955,
+     52116,  58375,  61729,  63534,  64459,  64924,  65092,  65164,
+     65182,  65198,  65203,  65211,  65535
+}
+};
+
+const SKP_int SKP_Silk_pulses_per_block_CDF_offset = 6;
+
+
+const SKP_int16 SKP_Silk_pulses_per_block_BITS_Q6[ 9 ][ 20 ] = 
+{
+{
+        30,    140,    282,    444,    560,    625,    654,    677,
+       731,    780,    787,    844,    859,    960,    896,   1024,
+       960,   1024,    960,    821
+},
+{
+        84,    103,    164,    252,    350,    442,    526,    607,
+       663,    731,    787,    859,    923,    923,    960,   1024,
+       960,   1024,   1024,    875
+},
+{
+       177,    117,    120,    162,    231,    320,    426,    541,
+       657,    803,    832,    960,    896,   1024,    923,   1024,
+      1024,   1024,    960,   1024
+},
+{
+       275,    182,    146,    144,    166,    207,    261,    322,
+       388,    450,    516,    582,    637,    710,    762,    821,
+       832,    896,    923,    734
+},
+{
+       452,    303,    216,    170,    153,    158,    182,    220,
+       274,    337,    406,    489,    579,    681,    896,    811,
+       896,    960,    923,   1024
+},
+{
+       125,    147,    170,    202,    232,    265,    295,    332,
+       368,    406,    443,    483,    520,    563,    606,    646,
+       704,    739,    757,    483
+},
+{
+       285,    232,    200,    190,    193,    206,    224,    244,
+       266,    289,    315,    340,    367,    394,    425,    462,
+       496,    539,    561,    350
+},
+{
+       611,    428,    319,    242,    202,    178,    172,    180,
+       199,    229,    268,    313,    364,    422,    482,    538,
+       603,    683,    739,    586
+},
+{
+       501,    450,    364,    308,    264,    231,    212,    204,
+       204,    210,    222,    241,    265,    295,    326,    362,
+       401,    437,    469,    321
+}
+};
+
+const SKP_uint16 SKP_Silk_rate_levels_CDF[ 2 ][ 10 ] = 
+{
+{
+         0,   2005,  12717,  20281,  31328,  36234,  45816,  57753,
+     63104,  65535
+},
+{
+         0,   8553,  23489,  36031,  46295,  53519,  56519,  59151,
+     64185,  65535
+}
+};
+
+const SKP_int SKP_Silk_rate_levels_CDF_offset = 4;
+
+
+const SKP_int16 SKP_Silk_rate_levels_BITS_Q6[ 2 ][ 9 ] = 
+{
+{
+       322,    167,    199,    164,    239,    178,    157,    231,
+       304
+},
+{
+       188,    137,    153,    171,    204,    285,    297,    237,
+       358
+}
+};
+
+const SKP_uint16 SKP_Silk_shell_code_table0[ 33 ] = {
+         0,  32748,  65535,      0,   9505,  56230,  65535,      0,
+      4093,  32204,  61720,  65535,      0,   2285,  16207,  48750,
+     63424,  65535,      0,   1709,   9446,  32026,  55752,  63876,
+     65535,      0,   1623,   6986,  21845,  45381,  59147,  64186,
+     65535
+};
+
+const SKP_uint16 SKP_Silk_shell_code_table1[ 52 ] = {
+         0,  32691,  65535,      0,  12782,  52752,  65535,      0,
+      4847,  32665,  60899,  65535,      0,   2500,  17305,  47989,
+     63369,  65535,      0,   1843,  10329,  32419,  55433,  64277,
+     65535,      0,   1485,   7062,  21465,  43414,  59079,  64623,
+     65535,      0,      0,   4841,  14797,  31799,  49667,  61309,
+     65535,  65535,      0,      0,      0,   8032,  21695,  41078,
+     56317,  65535,  65535,  65535
+};
+
+const SKP_uint16 SKP_Silk_shell_code_table2[ 102 ] = {
+         0,  32615,  65535,      0,  14447,  50912,  65535,      0,
+      6301,  32587,  59361,  65535,      0,   3038,  18640,  46809,
+     62852,  65535,      0,   1746,  10524,  32509,  55273,  64278,
+     65535,      0,   1234,   6360,  21259,  43712,  59651,  64805,
+     65535,      0,   1020,   4461,  14030,  32286,  51249,  61904,
+     65100,  65535,      0,    851,   3435,  10006,  23241,  40797,
+     55444,  63009,  65252,  65535,      0,      0,   2075,   7137,
+     17119,  31499,  46982,  58723,  63976,  65535,  65535,      0,
+         0,      0,   3820,  11572,  23038,  37789,  51969,  61243,
+     65535,  65535,  65535,      0,      0,      0,      0,   6882,
+     16828,  30444,  44844,  57365,  65535,  65535,  65535,  65535,
+         0,      0,      0,      0,      0,  10093,  22963,  38779,
+     54426,  65535,  65535,  65535,  65535,  65535
+};
+
+const SKP_uint16 SKP_Silk_shell_code_table3[ 207 ] = {
+         0,  32324,  65535,      0,  15328,  49505,  65535,      0,
+      7474,  32344,  57955,  65535,      0,   3944,  19450,  45364,
+     61873,  65535,      0,   2338,  11698,  32435,  53915,  63734,
+     65535,      0,   1506,   7074,  21778,  42972,  58861,  64590,
+     65535,      0,   1027,   4490,  14383,  32264,  50980,  61712,
+     65043,  65535,      0,    760,   3022,   9696,  23264,  41465,
+     56181,  63253,  65251,  65535,      0,    579,   2256,   6873,
+     16661,  31951,  48250,  59403,  64198,  65360,  65535,      0,
+       464,   1783,   5181,  12269,  24247,  39877,  53490,  61502,
+     64591,  65410,  65535,      0,    366,   1332,   3880,   9273,
+     18585,  32014,  45928,  56659,  62616,  64899,  65483,  65535,
+         0,    286,   1065,   3089,   6969,  14148,  24859,  38274,
+     50715,  59078,  63448,  65091,  65481,  65535,      0,      0,
+       482,   2010,   5302,  10408,  18988,  30698,  43634,  54233,
+     60828,  64119,  65288,  65535,  65535,      0,      0,      0,
+      1006,   3531,   7857,  14832,  24543,  36272,  47547,  56883,
+     62327,  64746,  65535,  65535,  65535,      0,      0,      0,
+         0,   1863,   4950,  10730,  19284,  29397,  41382,  52335,
+     59755,  63834,  65535,  65535,  65535,  65535,      0,      0,
+         0,      0,      0,   2513,   7290,  14487,  24275,  35312,
+     46240,  55841,  62007,  65535,  65535,  65535,  65535,  65535,
+         0,      0,      0,      0,      0,      0,   3606,   9573,
+     18764,  28667,  40220,  51290,  59924,  65535,  65535,  65535,
+     65535,  65535,  65535,      0,      0,      0,      0,      0,
+         0,      0,   4879,  13091,  23376,  36061,  49395,  59315,
+     65535,  65535,  65535,  65535,  65535,  65535,  65535
+};
+
+const SKP_uint16 SKP_Silk_shell_code_table_offsets[ 19 ] = {
+         0,      0,      3,      7,     12,     18,     25,     33,
+        42,     52,     63,     75,     88,    102,    117,    133,
+       150,    168,    187
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_signc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_sign.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_sign.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_sign.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,162 +1,141 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_tables.h&quot;
-
-const SKP_uint16 SKP_Silk_sign_CDF[ 36 ][ 3 ] =
-{
-{
-         0,  37840,  65535
-},
-{
-         0,  36944,  65535
-},
-{
-
-
-
-
-
-         0,  36251,  65535
-},
-{
-         0,  35304,  65535
-},
-{
-         0,  34715,  65535
-},
-{
-         0,  35503,  65535
-},
-{
-         0,  34529,  65535
-},
-{
-         0,  34296,  65535
-},
-{
-         0,  34016,  65535
-},
-{
-         0,  47659,  65535
-},
-{
-         0,  44945,  65535
-},
-{
-         0,  42503,  65535
-},
-{
-         0,  40235,  65535
-},
-{
-         0,  38569,  65535
-},
-{
-         0,  40254,  65535
-},
-{
-         0,  37851,  65535
-},
-{
-         0,  37243,  65535
-},
-{
-         0,  36595,  65535
-},
-{
-
-
-
-
-
-         0,  43410,  65535
-},
-{
-         0,  44121,  65535
-},
-{
-         0,  43127,  65535
-},
-{
-         0,  40978,  65535
-},
-{
-         0,  38845,  65535
-},
-{
-         0,  40433,  65535
-},
-{
-         0,  38252,  65535
-},
-{
-         0,  37795,  65535
-},
-{
-         0,  36637,  65535
-},
-{
-         0,  59159,  65535
-},
-{
-         0,  55630,  65535
-},
-{
-         0,  51806,  65535
-},
-{
-         0,  48073,  65535
-},
-{
-         0,  45036,  65535
-},
-{
-         0,  48416,  65535
-},
-{
-         0,  43857,  65535
-},
-{
-
-
-
-
-
-         0,  42678,  65535
-},
-{
-         0,  41146,  65535
-}
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+const SKP_uint16 SKP_Silk_sign_CDF[ 36 ][ 3 ] = 
+{
+{
+         0,  37840,  65535
+},
+{
+         0,  36944,  65535
+},
+{
+         0,  36251,  65535
+},
+{
+         0,  35304,  65535
+},
+{
+         0,  34715,  65535
+},
+{
+         0,  35503,  65535
+},
+{
+         0,  34529,  65535
+},
+{
+         0,  34296,  65535
+},
+{
+         0,  34016,  65535
+},
+{
+         0,  47659,  65535
+},
+{
+         0,  44945,  65535
+},
+{
+         0,  42503,  65535
+},
+{
+         0,  40235,  65535
+},
+{
+         0,  38569,  65535
+},
+{
+         0,  40254,  65535
+},
+{
+         0,  37851,  65535
+},
+{
+         0,  37243,  65535
+},
+{
+         0,  36595,  65535
+},
+{
+         0,  43410,  65535
+},
+{
+         0,  44121,  65535
+},
+{
+         0,  43127,  65535
+},
+{
+         0,  40978,  65535
+},
+{
+         0,  38845,  65535
+},
+{
+         0,  40433,  65535
+},
+{
+         0,  38252,  65535
+},
+{
+         0,  37795,  65535
+},
+{
+         0,  36637,  65535
+},
+{
+         0,  59159,  65535
+},
+{
+         0,  55630,  65535
+},
+{
+         0,  51806,  65535
+},
+{
+         0,  48073,  65535
+},
+{
+         0,  45036,  65535
+},
+{
+         0,  48416,  65535
+},
+{
+         0,  43857,  65535
+},
+{
+         0,  42678,  65535
+},
+{
+         0,  41146,  65535
+}
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSKP_Silk_tables_type_offsetc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/src/SKP_Silk_tables_type_offset.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/SKP_Silk_tables_type_offset.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/src/SKP_Silk_tables_type_offset.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,61 +1,52 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-#include &quot;SKP_Silk_tables.h&quot;
-
-const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ] = {
-         0,  37522,  41030,  44212,  65535
-};
-
-const SKP_int SKP_Silk_type_offset_CDF_offset = 2;
-
-
-
-
-
-const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ] =
-{
-{
-         0,  57686,  61230,  62358,  65535
-},
-{
-         0,  18346,  40067,  43659,  65535
-},
-{
-         0,  22694,  24279,  35507,  65535
-},
-{
-         0,   6067,   7215,  13010,  65535
-}
-};
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+#include &quot;SKP_Silk_tables.h&quot;
+
+const SKP_uint16 SKP_Silk_type_offset_CDF[ 5 ] = {
+         0,  37522,  41030,  44212,  65535
+};
+
+const SKP_int SKP_Silk_type_offset_CDF_offset = 2;
+
+
+const SKP_uint16 SKP_Silk_type_offset_joint_CDF[ 4 ][ 5 ] = 
+{
+{
+         0,  57686,  61230,  62358,  65535
+},
+{
+         0,  18346,  40067,  43659,  65535
+},
+{
+         0,  22694,  24279,  35507,  65535
+},
+{
+         0,   6067,   7215,  13010,  65535
+}
+};
+
</ins></span></pre></div>
<a id="freeswitchtrunklibssilksrcSilk_FIXvcproj"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/src/Silk_FIX.vcproj (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/src/Silk_FIX.vcproj                                (rev 0)
+++ freeswitch/trunk/libs/silk/src/Silk_FIX.vcproj        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,700 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1252&quot;?&gt;
+&lt;VisualStudioProject
+        ProjectType=&quot;Visual C++&quot;
+        Version=&quot;8,00&quot;
+        Name=&quot;Silk_FIX&quot;
+        ProjectGUID=&quot;{56B91D01-9150-4BBF-AFA1-5B68AB991B76}&quot;
+        RootNamespace=&quot;Silk&quot;
+        Keyword=&quot;Win32Proj&quot;
+        &gt;
+        &lt;Platforms&gt;
+                &lt;Platform
+                        Name=&quot;Win32&quot;
+                /&gt;
+        &lt;/Platforms&gt;
+        &lt;ToolFiles&gt;
+        &lt;/ToolFiles&gt;
+        &lt;Configurations&gt;
+                &lt;Configuration
+                        Name=&quot;Debug|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)&quot;
+                        ConfigurationType=&quot;4&quot;
+                        CharacterSet=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                Optimization=&quot;0&quot;
+                                FavorSizeOrSpeed=&quot;0&quot;
+                                AdditionalIncludeDirectories=&quot;../interface&quot;
+                                PreprocessorDefinitions=&quot;WIN32;_DEBUG;_LIB;&quot;
+                                MinimalRebuild=&quot;true&quot;
+                                BasicRuntimeChecks=&quot;3&quot;
+                                RuntimeLibrary=&quot;1&quot;
+                                FloatingPointModel=&quot;2&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;4&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLibrarianTool&quot;
+                                OutputFile=&quot;SKP_Silk_FIX_Win32_debug.lib&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                                CommandLine=&quot;&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+                &lt;Configuration
+                        Name=&quot;Release|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)&quot;
+                        ConfigurationType=&quot;4&quot;
+                        CharacterSet=&quot;1&quot;
+                        WholeProgramOptimization=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                Optimization=&quot;2&quot;
+                                InlineFunctionExpansion=&quot;0&quot;
+                                FavorSizeOrSpeed=&quot;0&quot;
+                                AdditionalIncludeDirectories=&quot;../interface&quot;
+                                PreprocessorDefinitions=&quot;WIN32;NDEBUG;_LIB&quot;
+                                GeneratePreprocessedFile=&quot;0&quot;
+                                RuntimeLibrary=&quot;0&quot;
+                                FloatingPointModel=&quot;2&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;3&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLibrarianTool&quot;
+                                OutputFile=&quot;SKP_Silk_FIX_Win32_mt.lib&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                                CommandLine=&quot;&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+        &lt;/Configurations&gt;
+        &lt;References&gt;
+        &lt;/References&gt;
+        &lt;Files&gt;
+                &lt;Filter
+                        Name=&quot;Source Files&quot;
+                        Filter=&quot;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&quot;
+                        UniqueIdentifier=&quot;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_A2NLSF.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_allpass_int.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_ana_filt_bank_1.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_apply_sine_window.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_array_maxabs.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_autocorr.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_biquad.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_biquad_alt.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_burg_modified.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_bwexpander.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_bwexpander_32.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_CNG.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_code_signs.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_control_codec_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_corrMatrix_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_create_init_destroy.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_dec_API.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_core.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_frame.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_indices_v4.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_parameters.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_parameters_v4.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decode_pulses.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_decoder_set_fs.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_detect_SWB_input.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_enc_API.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_encode_frame_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_encode_parameters.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_encode_parameters_v4.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_encode_pulses.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_find_LPC_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_find_LTP_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_find_pitch_lags_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_find_pred_coefs_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_gain_quant.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_HP_variable_cutoff_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_init_encoder_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_inner_prod_aligned.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_interpolate.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_k2a.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_k2a_Q16.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LBRR_reset.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_lin2log.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_log2lin.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_lowpass_int.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_lowpass_short.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LP_variable_cutoff.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LPC_inv_pred_gain.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LPC_stabilize.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LPC_synthesis_filter.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LPC_synthesis_order16.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LSF_cos_table.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LTP_analysis_filter_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_LTP_scale_ctrl_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_MA.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF2A.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF2A_stable.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_MSVQ_decode.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_MSVQ_encode_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_stabilize.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_VQ_rate_distortion_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_VQ_sum_error_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NLSF_VQ_weights_laroia.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_noise_shape_analysis_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NSQ.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_NSQ_del_dec.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_pitch_analysis_core.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_pitch_est_tables.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_PLC.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_prefilter_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_process_gains_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_process_NLSFs_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_pulses_to_bytes.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_quant_LTP_gains_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_range_coder.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_regularize_correlations_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_1_2.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_1_2_coarse.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_1_2_coarsest.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_1_3.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_2_1_coarse.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_2_3.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_2_3_coarse.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_2_3_coarsest.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_2_3_rom.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_3_1.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_3_2.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_3_2_rom.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_3_4.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_4_3.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_residual_energy16_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_residual_energy_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_scale_copy_vector16.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_scale_vector.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_schur.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_schur64.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_shell_coder.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_sigm_Q15.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_solve_LS_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_sort.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_sum_sqr_shift.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_gain.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_LTP.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_NLSF_CB0_10.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_NLSF_CB0_16.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_NLSF_CB1_10.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_NLSF_CB1_16.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_other.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_pitch_lag.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_pulses_per_block.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_sign.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables_type_offset.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_VAD.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_VQ_nearest_neighbor_FIX.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+                &lt;Filter
+                        Name=&quot;Header Files&quot;
+                        Filter=&quot;h;hpp;hxx;hm;inl;inc;xsd&quot;
+                        UniqueIdentifier=&quot;{93995380-89BD-4b04-88EB-625FBE52EBFB}&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_control.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_define.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_define_FIX.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_errors.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_Inlines.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_macros.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_main.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_main_FIX.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_perceptual_parameters_FIX.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_pitch_est_defines.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_PLC.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_resample_rom.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_SDK_API.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_SigProc_FIX.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_structs.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_structs_FIX.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;.\SKP_Silk_tables.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_typedef.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+        &lt;/Files&gt;
+        &lt;Globals&gt;
+        &lt;/Globals&gt;
+&lt;/VisualStudioProject&gt;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestDec_SDKvcproj"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/test/Dec_SDK.vcproj (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/Dec_SDK.vcproj                                (rev 0)
+++ freeswitch/trunk/libs/silk/test/Dec_SDK.vcproj        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,217 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1252&quot;?&gt;
+&lt;VisualStudioProject
+        ProjectType=&quot;Visual C++&quot;
+        Version=&quot;8,00&quot;
+        Name=&quot;Dec_SDK&quot;
+        ProjectGUID=&quot;{82685D7F-0589-42BD-877C-31A952D53A8E}&quot;
+        RootNamespace=&quot;Test&quot;
+        Keyword=&quot;Win32Proj&quot;
+        &gt;
+        &lt;Platforms&gt;
+                &lt;Platform
+                        Name=&quot;Win32&quot;
+                /&gt;
+        &lt;/Platforms&gt;
+        &lt;ToolFiles&gt;
+        &lt;/ToolFiles&gt;
+        &lt;Configurations&gt;
+                &lt;Configuration
+                        Name=&quot;Debug|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)_Dec&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                Optimization=&quot;0&quot;
+                                AdditionalIncludeDirectories=&quot;../interface;../src&quot;
+                                PreprocessorDefinitions=&quot;WIN32;_DEBUG;_CONSOLE;COMPILE_SDK&quot;
+                                MinimalRebuild=&quot;true&quot;
+                                BasicRuntimeChecks=&quot;3&quot;
+                                RuntimeLibrary=&quot;1&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;4&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                OutputFile=&quot;$(OutDir)\Decoder_debug.exe&quot;
+                                LinkIncremental=&quot;2&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreAllDefaultLibraries=&quot;false&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;true&quot;
+                                ProgramDatabaseFile=&quot;$(TargetDir)$(TargetName).pdb&quot;
+                                SubSystem=&quot;1&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+                &lt;Configuration
+                        Name=&quot;Release|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)_Dec&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        WholeProgramOptimization=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                AdditionalIncludeDirectories=&quot;../interface;../src&quot;
+                                PreprocessorDefinitions=&quot;WIN32;NDEBUG;_CONSOLE;COMPILE_SDK&quot;
+                                RuntimeLibrary=&quot;0&quot;
+                                FloatingPointModel=&quot;2&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;3&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                AdditionalOptions=&quot;/fixed:no&quot;
+                                OutputFile=&quot;$(OutDir)\Decoder.exe&quot;
+                                LinkIncremental=&quot;1&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;false&quot;
+                                SubSystem=&quot;1&quot;
+                                OptimizeReferences=&quot;2&quot;
+                                EnableCOMDATFolding=&quot;2&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+        &lt;/Configurations&gt;
+        &lt;References&gt;
+        &lt;/References&gt;
+        &lt;Files&gt;
+                &lt;Filter
+                        Name=&quot;Source Files&quot;
+                        Filter=&quot;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&quot;
+                        UniqueIdentifier=&quot;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;.\Decoder.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+                &lt;Filter
+                        Name=&quot;interface&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_control.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_errors.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_SDK_API.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_typedef.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+        &lt;/Files&gt;
+        &lt;Globals&gt;
+        &lt;/Globals&gt;
+&lt;/VisualStudioProject&gt;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestDecoderc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/test/Decoder.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/Decoder.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/test/Decoder.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,408 +1,363 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-
-
-
-
-
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/******************************************************/
-/* Silk decoder test program                          */
-/******************************************************/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_DEPRECATE    1
-#endif
-
-#include &lt;stdio.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;string.h&gt;
-#include &quot;SKP_Silk_SDK_API.h&quot;
-#include &quot;SKP_Silk_SigProc_FIX.h&quot;
-
-/* Define codec specific settings should be moved to h file */
-#define MAX_BYTES_PER_FRAME     1024
-#define MAX_INPUT_FRAMES        5
-#define MAX_FRAME_LENGTH        480
-#define MAX_LBRR_DELAY          2
-
-static void print_usage(char* argv[]) {
-    printf( &quot;\nusage: %s in.bit out.pcm [settings]\n&quot;, argv[ 0 ] );
-    printf( &quot;\nin.bit        : Bitstream input to decoder&quot; );
-    printf( &quot;\nout.pcm       : Speech output from decoder&quot; );
-    printf( &quot;\n   settings:&quot; );
-    printf( &quot;\n-fs &lt;kHz&gt;     : Sampling rate of output signal in kHz; default: 24&quot; );
-    printf( &quot;\n-loss &lt;perc&gt;  : Simulated packet loss percentage (0-100); default: 0&quot; );
-    printf( &quot;\n&quot; );
-}
-
-int main( int argc, char* argv[] )
-{
-    size_t    counter;
-    SKP_int   args, totPackets, i, k;
-    SKP_int16 ret, len, tot_len;
-
-
-
-
-
-    SKP_int16 nBytes;
-    SKP_uint8 payload[    MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES * ( MAX_LBRR_DELAY + 1 ) ];
-    SKP_uint8 FECpayload[ MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES ], *payloadPtr;
-    SKP_uint8 *payloadEnd = NULL, *payloadToDec = NULL;
-    SKP_int16 nBytesFEC;
-    SKP_int16 nBytesPerPacket[ MAX_LBRR_DELAY + 1 ], totBytes;
-    SKP_int16 out[ ( MAX_FRAME_LENGTH &lt;&lt; 1 ) * MAX_INPUT_FRAMES ], *outPtr;
-    char      speechOutFileName[ 150 ], bitInFileName[ 150 ];
-    FILE      *bitInFile, *speechOutFile;
-    SKP_int   Fs_kHz = 0;
-    SKP_int32 decSizeBytes;
-    void      *psDec;
-    float     loss_prob;
-    SKP_int   frames, lost, quiet;
-    SKP_SILK_SDK_DecControlStruct DecControl;
-
-    if( argc &lt; 3 ) {
-        print_usage( argv );
-        exit( 0 );
-    }
-
-    /* default settings */
-    quiet     = 0;
-    loss_prob = 0.0f;
-
-    /* get arguments */
-    args = 1;
-    strcpy( bitInFileName, argv[ args ] );
-    args++;
-    strcpy( speechOutFileName, argv[ args ] );
-    args++;
-    while( args &lt; argc ) {
-        if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-loss&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%f&quot;, &amp;loss_prob );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-fs&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;Fs_kHz );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-quiet&quot; ) == 0 ) {
-            quiet = 1;
-            args++;
-        } else {
-            printf( &quot;Error: unrecognized setting: %s\n\n&quot;, argv[ args ] );
-            print_usage( argv );
-            exit( 0 );
-        }
-    }
-
-
-
-
-
-
-    if( !quiet ) {
-        printf(&quot;******************* Silk Decoder v %s ****************\n&quot;, SKP_Silk_SDK_get_version());
-        printf(&quot;******************* Compiled for %d bit cpu ********* \n&quot;, (int)sizeof(void*) * 8 );
-        printf( &quot;Input:                       %s\n&quot;, bitInFileName );
-        printf( &quot;Output:                      %s\n&quot;, speechOutFileName );
-    }
-
-    /* Open files */
-    bitInFile = fopen( bitInFileName, &quot;rb&quot; );
-    if( bitInFile == NULL ) {
-        printf( &quot;Error: could not open input file %s\n&quot;, bitInFileName );
-        exit( 0 );
-    }
-    speechOutFile = fopen( speechOutFileName, &quot;wb&quot; );
-    if( speechOutFile == NULL ) {
-        printf( &quot;Error: could not open output file %s\n&quot;, speechOutFileName );
-        exit( 0 );
-    }
-
-    /* Set the samplingrate that is expected for the output */
-    if( Fs_kHz == 0 ) {
-        DecControl.sampleRate = 24000;
-    } else {
-        DecControl.sampleRate = Fs_kHz * 1000;
-    }
-
-    /* Create decoder */
-    ret = SKP_Silk_SDK_Get_Decoder_Size( &amp;decSizeBytes );
-    if( ret ) {
-        printf( &quot;\nSKP_Silk_SDK_Get_Decoder_Size returned %d&quot;, ret );
-    }
-    psDec = malloc( decSizeBytes );
-
-    /* Reset decoder */
-    ret = SKP_Silk_SDK_InitDecoder( psDec );
-    if( ret ) {
-        printf( &quot;\nSKP_Silk_InitDecoder returned %d&quot;, ret );
-    }
-
-    totPackets = 0;
-    payloadEnd = payload;
-
-    /* Simulate the jitter buffer holding MAX_FEC_DELAY packets */
-    for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-        /* Read payload size */
-        counter = fread( &amp;nBytes, sizeof( SKP_int16 ), 1, bitInFile );
-        /* Read payload */
-        counter = fread( payloadEnd, sizeof( SKP_uint8 ), nBytes, bitInFile );
-
-
-
-
-
-        if( (SKP_int16)counter &lt; nBytes ) {
-            break;
-        }
-        nBytesPerPacket[ i ] = nBytes;
-        payloadEnd          += nBytes;
-    }
-
-    while( 1 ) {
-        /* Read payload size */
-        counter = fread( &amp;nBytes, sizeof( SKP_int16 ), 1, bitInFile );
-        if( nBytes &lt; 0 || counter &lt; 1 ) {
-            break;
-        }
-
-        /* Read payload */
-        counter = fread( payloadEnd, sizeof( SKP_uint8 ), nBytes, bitInFile );
-        if( (SKP_int16)counter &lt; nBytes ) {
-            break;
-        }
-
-        /* Simulate losses */
-        if( ( (float)rand() / (float)RAND_MAX &gt;= loss_prob / 100 ) &amp;&amp; counter &gt; 0 ) {
-            nBytesPerPacket[ MAX_LBRR_DELAY ] = nBytes;
-            payloadEnd                       += nBytes;
-        } else {
-            nBytesPerPacket[ MAX_LBRR_DELAY ] = 0;
-        }
-
-        if( nBytesPerPacket[ 0 ] == 0 ) {
-            /* Indicate lost packet */
-            lost = 1;
-
-            /* Packet loss. Search after FEC in next packets. Should be done in the jitter buffer */
-            payloadPtr = payload;
-            for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-                if( nBytesPerPacket[ i + 1 ] &gt; 0 ) {
-                    SKP_Silk_SDK_search_for_LBRR( psDec, payloadPtr, nBytesPerPacket[ i + 1 ], i + 1, FECpayload, &amp;nBytesFEC );
-                    if( nBytesFEC &gt; 0 ) {
-                        payloadToDec = FECpayload;
-                        nBytes = nBytesFEC;
-                        lost = 0;
-                        break;
-                    }
-                }
-                payloadPtr += nBytesPerPacket[ i + 1 ];
-            }
-        } else {
-            lost = 0;
-
-
-
-
-
-            nBytes = nBytesPerPacket[ 0 ];
-            payloadToDec = payload;
-        }
-
-        /* Silk decoder */
-        outPtr = out;
-        tot_len = 0;
-
-        if( lost == 0 ) {
-            /* No Loss: Decode all frames in the packet */
-            frames = 0;
-            do {
-                /* Decode 20 ms */
-                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 0, payloadToDec, nBytes, outPtr, &amp;len );
-                if( ret ) {
-                    printf( &quot;\nSKP_Silk_SDK_Decode returned %d&quot;, ret );
-                }
-
-                frames++;
-                outPtr  += len;
-                tot_len += len;
-                if( frames &gt; MAX_INPUT_FRAMES ) {
-                    /* Hack for corrupt stream that could generate too many frames */
-                    outPtr  = out;
-                    tot_len = 0;
-                    frames  = 0;
-                }
-                /* Until last 20 ms frame of packet has been decoded */
-            } while( DecControl.internalDecoderFrames );
-        } else {
-            /* Loss: Decode enough frames to cover one packet duration */
-            for( i = 0; i &lt; DecControl.framesPerPacket; i++ ) {
-                /* Generate 20 ms */
-                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 1, payloadToDec, nBytes, outPtr, &amp;len );
-                if( ret ) {
-                    printf( &quot;\nSKP_Silk_Decode returned %d&quot;, ret );
-                }
-                outPtr  += len;
-                tot_len += len;
-            }
-        }
-        totPackets++;
-
-        /* Write output to file */
-        fwrite( out, sizeof( SKP_int16 ), tot_len, speechOutFile );
-
-        /* Update buffer */
-        totBytes = 0;
-
-
-
-
-
-        for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-            totBytes += nBytesPerPacket[ i + 1 ];
-        }
-        SKP_memmove( payload, &amp;payload[ nBytesPerPacket[ 0 ] ], totBytes * sizeof( SKP_uint8 ) );
-        payloadEnd -= nBytesPerPacket[ 0 ];
-        SKP_memmove( nBytesPerPacket, &amp;nBytesPerPacket[ 1 ], MAX_LBRR_DELAY * sizeof( SKP_int16 ) );
-
-        if( !quiet ) {
-            fprintf( stderr, &quot;\rFrames decoded:              %d&quot;, totPackets );
-        }
-    }
-
-    /* Empty the recieve buffer */
-    for( k = 0; k &lt; MAX_LBRR_DELAY; k++ ) {
-        if( nBytesPerPacket[ 0 ] == 0 ) {
-            /* Indicate lost packet */
-            lost = 1;
-
-            /* Packet loss. Search after FEC in next packets. Should be done in the jitter buffer */
-            payloadPtr = payload;
-            for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-                if( nBytesPerPacket[ i + 1 ] &gt; 0 ) {
-                    SKP_Silk_SDK_search_for_LBRR( psDec, payloadPtr, nBytesPerPacket[ i + 1 ], i + 1, FECpayload, &amp;nBytesFEC );
-                    if( nBytesFEC &gt; 0 ) {
-                        payloadToDec = FECpayload;
-                        nBytes = nBytesFEC;
-                        lost = 0;
-                        break;
-                    }
-                }
-                payloadPtr += nBytesPerPacket[ i + 1 ];
-            }
-        } else {
-            lost = 0;
-            nBytes = nBytesPerPacket[ 0 ];
-            payloadToDec = payload;
-        }
-
-        /* Silk decoder */
-        outPtr  = out;
-        tot_len = 0;
-
-        if( lost == 0 ) {
-            /* No loss: Decode all frames in the packet */
-            frames = 0;
-            do {
-                /* Decode 20 ms */
-                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 0, payloadToDec, nBytes, outPtr, &amp;len );
-
-
-
-
-
-                if( ret ) {
-                    printf( &quot;\nSKP_Silk_SDK_Decode returned %d&quot;, ret );
-                }
-
-                frames++;
-                outPtr  += len;
-                tot_len += len;
-                if( frames &gt; MAX_INPUT_FRAMES ) {
-                    /* Hack for corrupt stream that could generate too many frames */
-                    outPtr  = out;
-                    tot_len = 0;
-                    frames  = 0;
-                }
-            /* Until last 20 ms frame of packet has been decoded */
-            } while( DecControl.internalDecoderFrames );
-        } else {
-            /* Loss: Decode enough frames to cover one packet duration */
-
-            /* Generate 20 ms */
-            for( i = 0; i &lt; DecControl.framesPerPacket; i++ ) {
-                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 1, payloadToDec, nBytes, outPtr, &amp;len );
-                if( ret ) {
-                    printf( &quot;\nSKP_Silk_Decode returned %d&quot;, ret );
-                }
-                outPtr  += len;
-                tot_len += len;
-            }
-        }
-        totPackets++;
-
-        /* Write output to file */
-        fwrite( out, sizeof( SKP_int16 ), tot_len, speechOutFile );
-
-        /* Update Buffer */
-        totBytes = 0;
-        for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
-            totBytes += nBytesPerPacket[ i + 1 ];
-        }
-        SKP_memmove( payload, &amp;payload[ nBytesPerPacket[ 0 ] ], totBytes * sizeof( SKP_uint8 ) );
-        payloadEnd -= nBytesPerPacket[ 0 ];
-        SKP_memmove( nBytesPerPacket, &amp;nBytesPerPacket[ 1 ], MAX_LBRR_DELAY * sizeof( SKP_int16 ) );
-
-        if( !quiet ) {
-            fprintf( stderr, &quot;\rPackets decoded:              %d&quot;, totPackets );
-        }
-    }
-
-    if( !quiet ) {
-
-
-
-
-
-        printf( &quot;\nDecoding Finished \n&quot; );
-    }
-
-    /* Free decoder */
-    free( psDec );
-
-    /* Close files */
-    fclose( speechOutFile );
-    fclose( bitInFile );
-
-    return 0;
-}
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*****************************/
+/* Silk decoder test program */
+/*****************************/
+
+#ifdef _WIN32
+#define _CRT_SECURE_NO_DEPRECATE    1
+#endif
+
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &quot;SKP_Silk_SDK_API.h&quot;
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+/* Define codec specific settings should be moved to h file */
+#define MAX_BYTES_PER_FRAME     1024
+#define MAX_INPUT_FRAMES        5
+#define MAX_FRAME_LENGTH        480
+#define MAX_LBRR_DELAY          2
+
+static void print_usage(char* argv[]) {
+    printf( &quot;\nusage: %s in.bit out.pcm [settings]\n&quot;, argv[ 0 ] );
+    printf( &quot;\nin.bit        : Bitstream input to decoder&quot; );
+    printf( &quot;\nout.pcm       : Speech output from decoder&quot; );
+    printf( &quot;\n   settings:&quot; );
+    printf( &quot;\n-fs &lt;kHz&gt;     : Sampling rate of output signal in kHz; default: 24&quot; );
+    printf( &quot;\n-loss &lt;perc&gt;  : Simulated packet loss percentage (0-100); default: 0&quot; );
+    printf( &quot;\n&quot; );
+}
+
+int main( int argc, char* argv[] )
+{
+    size_t    counter;
+    SKP_int   args, totPackets, i, k;
+    SKP_int16 ret, len, tot_len;
+    SKP_int16 nBytes;
+    SKP_uint8 payload[    MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES * ( MAX_LBRR_DELAY + 1 ) ];
+    SKP_uint8 FECpayload[ MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES ], *payloadPtr;
+    SKP_uint8 *payloadEnd = NULL, *payloadToDec = NULL;
+    SKP_int16 nBytesFEC;
+    SKP_int16 nBytesPerPacket[ MAX_LBRR_DELAY + 1 ], totBytes;
+    SKP_int16 out[ ( MAX_FRAME_LENGTH &lt;&lt; 1 ) * MAX_INPUT_FRAMES ], *outPtr;
+    char      speechOutFileName[ 150 ], bitInFileName[ 150 ];
+    FILE      *bitInFile, *speechOutFile;
+    SKP_int   Fs_kHz = 0;
+    SKP_int32 decSizeBytes;
+    void      *psDec;
+    float     loss_prob;
+    SKP_int   frames, lost, quiet;
+    SKP_SILK_SDK_DecControlStruct DecControl;
+
+    if( argc &lt; 3 ) {
+        print_usage( argv );
+        exit( 0 );
+    } 
+
+    /* default settings */
+    quiet     = 0;
+    loss_prob = 0.0f;
+
+    /* get arguments */
+    args = 1;
+    strcpy( bitInFileName, argv[ args ] );
+    args++;
+    strcpy( speechOutFileName, argv[ args ] );
+    args++;
+    while( args &lt; argc ) {
+        if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-loss&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%f&quot;, &amp;loss_prob );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-fs&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;Fs_kHz );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-quiet&quot; ) == 0 ) {
+            quiet = 1;
+            args++;
+        } else {
+            printf( &quot;Error: unrecognized setting: %s\n\n&quot;, argv[ args ] );
+            print_usage( argv );
+            exit( 0 );
+        }
+    }
+
+    if( !quiet ) {
+        printf(&quot;******************* Silk Decoder v %s ****************\n&quot;, SKP_Silk_SDK_get_version());
+        printf(&quot;******************* Compiled for %d bit cpu ********* \n&quot;, (int)sizeof(void*) * 8 );
+        printf( &quot;Input:                       %s\n&quot;, bitInFileName );
+        printf( &quot;Output:                      %s\n&quot;, speechOutFileName );
+    }
+
+    /* Open files */
+    bitInFile = fopen( bitInFileName, &quot;rb&quot; );
+    if( bitInFile == NULL ) {
+        printf( &quot;Error: could not open input file %s\n&quot;, bitInFileName );
+        exit( 0 );
+    } 
+    speechOutFile = fopen( speechOutFileName, &quot;wb&quot; );
+    if( speechOutFile == NULL ) {
+        printf( &quot;Error: could not open output file %s\n&quot;, speechOutFileName );
+        exit( 0 );
+    }
+
+        /* Set the samplingrate that is requested for the output */
+    if( Fs_kHz == 0 ) {
+        DecControl.sampleRate = 24000;
+    } else {
+        DecControl.sampleRate = Fs_kHz * 1000;
+    }
+
+    /* Create decoder */
+    ret = SKP_Silk_SDK_Get_Decoder_Size( &amp;decSizeBytes );
+    if( ret ) {
+        printf( &quot;\nSKP_Silk_SDK_Get_Decoder_Size returned %d&quot;, ret );
+    }
+    psDec = malloc( decSizeBytes );
+
+    /* Reset decoder */
+    ret = SKP_Silk_SDK_InitDecoder( psDec );
+    if( ret ) {
+        printf( &quot;\nSKP_Silk_InitDecoder returned %d&quot;, ret );
+    }
+
+    totPackets = 0;
+    payloadEnd = payload;
+
+    /* Simulate the jitter buffer holding MAX_FEC_DELAY packets */
+    for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+        /* Read payload size */
+        counter = fread( &amp;nBytes, sizeof( SKP_int16 ), 1, bitInFile );
+        /* Read payload */
+        counter = fread( payloadEnd, sizeof( SKP_uint8 ), nBytes, bitInFile );
+
+        if( (SKP_int16)counter &lt; nBytes ) {
+            break;
+        }
+        nBytesPerPacket[ i ] = nBytes;
+        payloadEnd          += nBytes;
+    }
+
+    while( 1 ) {
+        /* Read payload size */
+        counter = fread( &amp;nBytes, sizeof( SKP_int16 ), 1, bitInFile );
+        if( nBytes &lt; 0 || counter &lt; 1 ) {
+            break;
+        }
+        
+        /* Read payload */
+        counter = fread( payloadEnd, sizeof( SKP_uint8 ), nBytes, bitInFile );
+        if( (SKP_int16)counter &lt; nBytes ) {
+            break;
+        }
+
+        /* Simulate losses */
+        if( ( (float)rand() / (float)RAND_MAX &gt;= loss_prob / 100 ) &amp;&amp; counter &gt; 0 ) {
+            nBytesPerPacket[ MAX_LBRR_DELAY ] = nBytes;
+            payloadEnd                       += nBytes;
+        } else {
+            nBytesPerPacket[ MAX_LBRR_DELAY ] = 0;
+        }
+
+        if( nBytesPerPacket[ 0 ] == 0 ) {
+            /* Indicate lost packet */
+            lost = 1;
+
+            /* Packet loss. Search after FEC in next packets. Should be done in the jitter buffer */
+            payloadPtr = payload;
+            for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+                if( nBytesPerPacket[ i + 1 ] &gt; 0 ) {
+                    SKP_Silk_SDK_search_for_LBRR( psDec, payloadPtr, nBytesPerPacket[ i + 1 ], i + 1, FECpayload, &amp;nBytesFEC );
+                    if( nBytesFEC &gt; 0 ) {
+                        payloadToDec = FECpayload;
+                        nBytes = nBytesFEC;
+                        lost = 0;
+                        break;
+                    }
+                }
+                payloadPtr += nBytesPerPacket[ i + 1 ];
+            }
+        } else {
+            lost = 0;
+            nBytes = nBytesPerPacket[ 0 ];
+            payloadToDec = payload;
+        }
+
+        /* Silk decoder */
+        outPtr = out;
+        tot_len = 0;
+
+        if( lost == 0 ) {
+            /* No Loss: Decode all frames in the packet */
+            frames = 0;
+            do {
+                /* Decode 20 ms */
+                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 0, payloadToDec, nBytes, outPtr, &amp;len );
+                if( ret ) {
+                    printf( &quot;\nSKP_Silk_SDK_Decode returned %d&quot;, ret );
+                }
+
+                frames++;
+                outPtr  += len;
+                tot_len += len;
+                if( frames &gt; MAX_INPUT_FRAMES ) {
+                    /* Hack for corrupt stream that could generate too many frames */
+                    outPtr  = out;
+                    tot_len = 0;
+                    frames  = 0;
+                }
+                /* Until last 20 ms frame of packet has been decoded */
+            } while( DecControl.moreInternalDecoderFrames ); 
+        } else {    
+            /* Loss: Decode enough frames to cover one packet duration */
+            for( i = 0; i &lt; DecControl.framesPerPacket; i++ ) {
+                /* Generate 20 ms */
+                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 1, payloadToDec, nBytes, outPtr, &amp;len );
+                if( ret ) {
+                    printf( &quot;\nSKP_Silk_Decode returned %d&quot;, ret );
+                }
+                outPtr  += len;
+                tot_len += len;
+            }
+        }
+        totPackets++;
+
+        /* Write output to file */
+        fwrite( out, sizeof( SKP_int16 ), tot_len, speechOutFile );
+
+        /* Update buffer */
+        totBytes = 0;
+        for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+            totBytes += nBytesPerPacket[ i + 1 ];
+        }
+        SKP_memmove( payload, &amp;payload[ nBytesPerPacket[ 0 ] ], totBytes * sizeof( SKP_uint8 ) );
+        payloadEnd -= nBytesPerPacket[ 0 ];
+        SKP_memmove( nBytesPerPacket, &amp;nBytesPerPacket[ 1 ], MAX_LBRR_DELAY * sizeof( SKP_int16 ) );
+
+        if( !quiet ) {
+            fprintf( stderr, &quot;\rFrames decoded:              %d&quot;, totPackets );
+        }
+    }
+
+    /* Empty the recieve buffer */
+    for( k = 0; k &lt; MAX_LBRR_DELAY; k++ ) {
+        if( nBytesPerPacket[ 0 ] == 0 ) {
+            /* Indicate lost packet */
+            lost = 1;
+
+            /* Packet loss. Search after FEC in next packets. Should be done in the jitter buffer */
+            payloadPtr = payload;
+            for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+                if( nBytesPerPacket[ i + 1 ] &gt; 0 ) {
+                    SKP_Silk_SDK_search_for_LBRR( psDec, payloadPtr, nBytesPerPacket[ i + 1 ], i + 1, FECpayload, &amp;nBytesFEC );
+                    if( nBytesFEC &gt; 0 ) {
+                        payloadToDec = FECpayload;
+                        nBytes = nBytesFEC;
+                        lost = 0;
+                        break;
+                    }
+                }
+                payloadPtr += nBytesPerPacket[ i + 1 ];
+            }
+        } else {
+            lost = 0;
+            nBytes = nBytesPerPacket[ 0 ];
+            payloadToDec = payload;
+        }
+
+        /* Silk decoder */
+        outPtr  = out;
+        tot_len = 0;
+
+        if( lost == 0 ) {
+            /* No loss: Decode all frames in the packet */
+            frames = 0;
+            do {
+                /* Decode 20 ms */
+                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 0, payloadToDec, nBytes, outPtr, &amp;len );
+                if( ret ) {
+                    printf( &quot;\nSKP_Silk_SDK_Decode returned %d&quot;, ret );
+                }
+
+                frames++;
+                outPtr  += len;
+                tot_len += len;
+                if( frames &gt; MAX_INPUT_FRAMES ) {
+                    /* Hack for corrupt stream that could generate too many frames */
+                    outPtr  = out;
+                    tot_len = 0;
+                    frames  = 0;
+                }
+            /* Until last 20 ms frame of packet has been decoded */
+            } while( DecControl.moreInternalDecoderFrames );
+        } else {    
+            /* Loss: Decode enough frames to cover one packet duration */
+
+            /* Generate 20 ms */
+            for( i = 0; i &lt; DecControl.framesPerPacket; i++ ) {
+                ret = SKP_Silk_SDK_Decode( psDec, &amp;DecControl, 1, payloadToDec, nBytes, outPtr, &amp;len );
+                if( ret ) {
+                    printf( &quot;\nSKP_Silk_Decode returned %d&quot;, ret );
+                }
+                outPtr  += len;
+                tot_len += len;
+            }
+        }
+        totPackets++;
+
+        /* Write output to file */
+        fwrite( out, sizeof( SKP_int16 ), tot_len, speechOutFile );
+
+        /* Update Buffer */
+        totBytes = 0;
+        for( i = 0; i &lt; MAX_LBRR_DELAY; i++ ) {
+            totBytes += nBytesPerPacket[ i + 1 ];
+        }
+        SKP_memmove( payload, &amp;payload[ nBytesPerPacket[ 0 ] ], totBytes * sizeof( SKP_uint8 ) );
+        payloadEnd -= nBytesPerPacket[ 0 ];
+        SKP_memmove( nBytesPerPacket, &amp;nBytesPerPacket[ 1 ], MAX_LBRR_DELAY * sizeof( SKP_int16 ) );
+
+        if( !quiet ) {
+            fprintf( stderr, &quot;\rPackets decoded:              %d&quot;, totPackets );
+        }
+    }
+
+    if( !quiet ) {
+        printf( &quot;\nDecoding Finished \n&quot; );
+    }
+
+    /* Free decoder */
+    free( psDec );
+
+    /* Close files */
+    fclose( speechOutFile );
+    fclose( bitInFile );
+
+    return 0;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestEnc_SDKvcproj"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/test/Enc_SDK.vcproj (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/Enc_SDK.vcproj                                (rev 0)
+++ freeswitch/trunk/libs/silk/test/Enc_SDK.vcproj        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,217 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1252&quot;?&gt;
+&lt;VisualStudioProject
+        ProjectType=&quot;Visual C++&quot;
+        Version=&quot;8,00&quot;
+        Name=&quot;Enc_SDK&quot;
+        ProjectGUID=&quot;{6D97A8EF-5724-4D85-8BF4-C583714BBA78}&quot;
+        RootNamespace=&quot;Enc&quot;
+        Keyword=&quot;Win32Proj&quot;
+        &gt;
+        &lt;Platforms&gt;
+                &lt;Platform
+                        Name=&quot;Win32&quot;
+                /&gt;
+        &lt;/Platforms&gt;
+        &lt;ToolFiles&gt;
+        &lt;/ToolFiles&gt;
+        &lt;Configurations&gt;
+                &lt;Configuration
+                        Name=&quot;Debug|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)\Enc&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                Optimization=&quot;0&quot;
+                                AdditionalIncludeDirectories=&quot;../interface&quot;
+                                PreprocessorDefinitions=&quot;WIN32;_DEBUG;_CONSOLE&quot;
+                                MinimalRebuild=&quot;true&quot;
+                                BasicRuntimeChecks=&quot;3&quot;
+                                RuntimeLibrary=&quot;1&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;4&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                OutputFile=&quot;$(OutDir)\Encoder_debug.exe&quot;
+                                LinkIncremental=&quot;2&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreAllDefaultLibraries=&quot;false&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;true&quot;
+                                ProgramDatabaseFile=&quot;$(TargetDir)$(TargetName).pdb&quot;
+                                SubSystem=&quot;1&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+                &lt;Configuration
+                        Name=&quot;Release|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)_Enc&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        WholeProgramOptimization=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                AdditionalIncludeDirectories=&quot;../interface&quot;
+                                PreprocessorDefinitions=&quot;WIN32;NDEBUG;_CONSOLE&quot;
+                                RuntimeLibrary=&quot;0&quot;
+                                FloatingPointModel=&quot;2&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;3&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                AdditionalOptions=&quot;/fixed:no&quot;
+                                OutputFile=&quot;$(OutDir)\Encoder.exe&quot;
+                                LinkIncremental=&quot;1&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;false&quot;
+                                SubSystem=&quot;1&quot;
+                                OptimizeReferences=&quot;2&quot;
+                                EnableCOMDATFolding=&quot;2&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+        &lt;/Configurations&gt;
+        &lt;References&gt;
+        &lt;/References&gt;
+        &lt;Files&gt;
+                &lt;Filter
+                        Name=&quot;Source Files&quot;
+                        Filter=&quot;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&quot;
+                        UniqueIdentifier=&quot;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;.\Encoder.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+                &lt;Filter
+                        Name=&quot;interface&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_control.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_errors.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_SDK_API.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                        &lt;File
+                                RelativePath=&quot;..\interface\SKP_Silk_typedef.h&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+        &lt;/Files&gt;
+        &lt;Globals&gt;
+        &lt;/Globals&gt;
+&lt;/VisualStudioProject&gt;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestEncoderc"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/silk/test/Encoder.c (17025 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/Encoder.c        2010-03-17 15:26:56 UTC (rev 17025)
+++ freeswitch/trunk/libs/silk/test/Encoder.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -1,308 +1,269 @@
</span><del>-
-
-/***********************************************************************
-
-Copyright (c) 2006-2010, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***********************************************************************/
-
-/******************************************************/
-/* Silk encoder test program                          */
-
-
-
-
-
-/******************************************************/
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_DEPRECATE    1
-#endif
-
-#include &lt;stdio.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;string.h&gt;
-#include &lt;math.h&gt;
-#include &quot;SKP_Silk_SDK_API.h&quot;
-
-/* Define codec specific settings */
-#define MAX_BYTES_PER_FRAME     250 // Equals peak bitrate of 100 kbps
-#define MAX_INPUT_FRAMES        5
-#define MAX_LBRR_DELAY          2
-#define MAX_FRAME_LENGTH        480
-
-static void print_usage( char* argv[] ) {
-    printf( &quot;\nusage: %s in.pcm out.bit [settings]\n&quot;, argv[ 0 ] );
-    printf( &quot;\nin.pcm              : Speech input to encoder&quot; );
-    printf( &quot;\nout.bit             : Bitstream output from encoder&quot; );
-    printf( &quot;\n   settings:&quot; );
-    printf( &quot;\n-fs &lt;kHz&gt;           : Sampling rate in kHz, default: 24&quot; );
-    printf( &quot;\n-packetlength &lt;ms&gt;  : Packet interval in ms, default: 20&quot; );
-    printf( &quot;\n-rate &lt;bps&gt;         : Target bitrate; default: 25000&quot; );
-    printf( &quot;\n-loss &lt;perc&gt;        : Uplink loss estimate, in percent (0-100); default: 0&quot; );
-    printf( &quot;\n-inbandFEC &lt;flag&gt;   : Enable inband FEC usage (0/1); default: 0&quot; );
-    printf( &quot;\n-complexity &lt;comp&gt;  : Set complexity, 0: low, 1: medium, 2: high; default: 2&quot; );
-    printf( &quot;\n-DTX &lt;flag&gt;         : Enable DTX (0/1); default: 0&quot; );
-    printf( &quot;\n-quiet              : Print only some basic values&quot; );
-    printf( &quot;\n&quot;);
-}
-
-int main( int argc, char* argv[] )
-{
-    size_t    counter;
-    SKP_int   k, args, totPackets, totActPackets, ret;
-    SKP_int16 nBytes;
-    double    sumBytes, sumWBytes, sumActBytes, avg_rate, act_rate, wght_rate, nrg;
-    SKP_uint8 payload[ MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES ];
-    SKP_int16 in[ MAX_FRAME_LENGTH * MAX_INPUT_FRAMES ];
-    char      speechInFileName[ 150 ], bitOutFileName[ 150 ];
-    FILE      *bitOutFile, *speechInFile;
-    SKP_int32 encSizeBytes;
-    void      *psEnc;
-
-    /* default settings */
-
-
-
-
-
-    SKP_int   fs_kHz = 24;
-    SKP_int   targetRate_bps = 25000;
-    SKP_int   packetSize_ms = 20;
-    SKP_int   frameSizeReadFromFile_ms = 20;
-    SKP_int   packetLoss_perc = 0, complexity_mode = 2, smplsSinceLastPacket;
-    SKP_int   INBandFec_enabled = 0, DTX_enabled = 0, quiet = 0;
-    SKP_SILK_SDK_EncControlStruct encControl; // Struct for input to encoder
-
-    if( argc &lt; 3) {
-        print_usage( argv );
-        exit( 0 );
-    }
-
-    /* get arguments */
-    args = 1;
-    strcpy( speechInFileName, argv[ args ] );
-    args++;
-    strcpy( bitOutFileName,   argv[ args ] );
-    args++;
-    while( args &lt; argc ) {
-        if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-fs&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;fs_kHz );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-packetlength&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;packetSize_ms );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-rate&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;targetRate_bps );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-loss&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;packetLoss_perc );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-complexity&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;complexity_mode );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-inbandFEC&quot; ) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;INBandFec_enabled );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-DTX&quot;) == 0 ) {
-            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;DTX_enabled );
-            args += 2;
-        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-quiet&quot; ) == 0 ) {
-            quiet = 1;
-            args++;
-        } else {
-            printf( &quot;Error: unrecognized setting: %s\n\n&quot;, argv[ args ] );
-            print_usage( argv );
-            exit( 0 );
-
-
-
-
-
-        }
-    }
-
-    /* Print options */
-    if( !quiet ) {
-        printf(&quot;******************* Silk Encoder v %s ****************\n&quot;, SKP_Silk_SDK_get_version());
-        printf(&quot;******************* Compiled for %d bit cpu ********* \n&quot;, (int)sizeof(void*) * 8 );
-        printf( &quot;Input:                       %s\n&quot;,        speechInFileName );
-        printf( &quot;Output:                      %s\n&quot;,        bitOutFileName );
-        printf( &quot;Sampling rate:               %d kHz\n&quot;,    fs_kHz);
-        printf( &quot;Packet interval:             %d ms\n&quot;,     packetSize_ms);
-        printf( &quot;Inband FEC used:             %d\n&quot;,        INBandFec_enabled);
-        printf( &quot;DTX used:                    %d\n&quot;,        DTX_enabled);
-        printf( &quot;Complexity:                  %d\n&quot;,        complexity_mode);
-        printf( &quot;Target bitrate:              %d bps\n&quot;,    targetRate_bps);
-    }
-
-    /* Open files */
-    speechInFile = fopen( speechInFileName, &quot;rb&quot; );
-    if( speechInFile == NULL ) {
-        printf( &quot;Error: could not open input file %s\n&quot;, speechInFileName );
-        exit( 0 );
-    }
-    bitOutFile = fopen( bitOutFileName, &quot;wb&quot; );
-    if( bitOutFile == NULL ) {
-        printf( &quot;Error: could not open output file %s\n&quot;, bitOutFileName );
-        exit( 0 );
-    }
-
-    /* Create Encoder */
-    ret = SKP_Silk_SDK_Get_Encoder_Size( &amp;encSizeBytes );
-    if( ret ) {
-        printf( &quot;\nSKP_Silk_create_encoder returned %d&quot;, ret );
-    }
-
-    psEnc = malloc( encSizeBytes );
-
-    /* Reset Encoder */
-    ret = SKP_Silk_SDK_InitEncoder( psEnc, &amp;encControl );
-    if( ret ) {
-        printf( &quot;\nSKP_Silk_reset_encoder returned %d&quot;, ret );
-    }
-
-    /* Set Encoder parameters */
-    encControl.sampleRate           = fs_kHz * 1000;
-    encControl.packetSize           = packetSize_ms * fs_kHz;
-    encControl.packetLossPercentage = packetLoss_perc;
-    encControl.useInBandFec         = INBandFec_enabled;
-
-
-
-
-
-    encControl.useDtx               = DTX_enabled;
-    encControl.complexity           = complexity_mode;
-    encControl.bitRate              = targetRate_bps;
-
-    if( fs_kHz &gt; 24 || fs_kHz &lt; 0 ) {
-        printf( &quot;\nError: Sampling rate = %d out of range, valid range 8 - 24 \n \n&quot;, fs_kHz );
-        exit( 0 );
-    }
-
-    totPackets           = 0;
-    totActPackets        = 0;
-    smplsSinceLastPacket = 0;
-    sumBytes             = 0.0;
-    sumActBytes          = 0.0;
-    sumWBytes            = 0.0;
-
-    while( 1 ) {
-        /* Read input to file */
-        counter = fread( in, sizeof( SKP_int16 ), frameSizeReadFromFile_ms * fs_kHz, speechInFile );
-        if( (SKP_int)counter &lt; frameSizeReadFromFile_ms * fs_kHz ) {
-            break;
-        }
-
-        /* max payload size */
-        nBytes = MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES;
-
-        /* Silk Encoder */
-        ret = SKP_Silk_SDK_Encode( psEnc, &amp;encControl, in, (SKP_int16)counter, payload, &amp;nBytes );
-        if( ret ) {
-            printf( &quot;\nSKP_Silk_Encode returned %d&quot;, ret );
-            break;
-        }
-
-        /* Get packet size */
-        packetSize_ms = (SKP_int)( 1000 * encControl.packetSize ) / encControl.sampleRate;
-
-        smplsSinceLastPacket += (SKP_int)counter;
-
-        if( ( smplsSinceLastPacket / fs_kHz ) == packetSize_ms ) {
-            /* Sends a dummy zero size packet in case of DTX period  */
-            /* to make it work with the decoder test program.        */
-            /* In practice should be handled by RTP sequence numbers */
-            totPackets++;
-            sumBytes  += nBytes;
-            sumWBytes += pow( nBytes, 10.0 );
-            nrg = 0.0;
-            for( k = 0; k &lt; (SKP_int)counter; k++ ) {
-                nrg += in[ k ] * (double)in[ k ];
-
-
-
-
-
-            }
-            if( ( nrg / (SKP_int)counter ) &gt; 1e3 ) {
-                sumActBytes += nBytes;
-                totActPackets++;
-            }
-
-            /* Write payload size */
-            fwrite( &amp;nBytes, sizeof( SKP_int16 ), 1, bitOutFile );
-
-            /* Write payload */
-            fwrite( payload, sizeof( SKP_uint8 ), nBytes, bitOutFile );
-
-            if( !quiet ) {
-                fprintf( stderr, &quot;\rPackets encoded:              %d&quot;, totPackets );
-            }
-            smplsSinceLastPacket = 0;
-        }
-    }
-
-    /* Write dummy because it can not end with 0 bytes */
-    nBytes = -1;
-
-    /* Write payload size */
-    fwrite( &amp;nBytes, sizeof( SKP_int16 ), 1, bitOutFile );
-
-    /* Query encoder */
-    packetSize_ms = (SKP_int)( 1000 * encControl.packetSize ) / encControl.sampleRate;
-
-    /* Free Encoder */
-    free( psEnc );
-
-    fclose( speechInFile );
-    fclose( bitOutFile   );
-
-    avg_rate  = 8.0 / packetSize_ms * sumBytes    / totPackets;
-    act_rate  = 8.0 / packetSize_ms * sumActBytes / totActPackets;
-    wght_rate = 8.0 / packetSize_ms * pow( sumWBytes / totPackets, 0.1 );
-    if( !quiet ) {
-        printf( &quot;\nAverage bitrate:             %.3f kbps&quot;, avg_rate  );
-        printf( &quot;\nActive bitrate:              %.3f kbps&quot;, act_rate  );
-        printf( &quot;\nWeighted bitrate:            %.3f kbps&quot;, wght_rate );
-        printf( &quot;\n\n&quot; );
-    } else {
-        /* print average and weighted bitrates */
-        printf( &quot;%.3f %.3f %.3f \n&quot;, avg_rate, act_rate, wght_rate );
-    }
-    return 0;
-}
-
-
-
-
-
-
-
-
-
-
</del><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*****************************/
+/* Silk encoder test program */
+/*****************************/
+
+#ifdef _WIN32
+#define _CRT_SECURE_NO_DEPRECATE    1
+#endif
+
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;math.h&gt;
+#include &quot;SKP_Silk_SDK_API.h&quot;
+
+/* Define codec specific settings */
+#define MAX_BYTES_PER_FRAME     250 // Equals peak bitrate of 100 kbps 
+#define MAX_INPUT_FRAMES        5
+#define MAX_LBRR_DELAY          2
+#define MAX_FRAME_LENGTH        480
+
+static void print_usage( char* argv[] ) {
+    printf( &quot;\nusage: %s in.pcm out.bit [settings]\n&quot;, argv[ 0 ] );
+    printf( &quot;\nin.pcm              : Speech input to encoder&quot; );
+    printf( &quot;\nout.bit             : Bitstream output from encoder&quot; );
+    printf( &quot;\n   settings:&quot; );
+    printf( &quot;\n-fs &lt;kHz&gt;           : Sampling rate in kHz, default: 24&quot; );
+    printf( &quot;\n-packetlength &lt;ms&gt;  : Packet interval in ms, default: 20&quot; );
+    printf( &quot;\n-rate &lt;bps&gt;         : Target bitrate; default: 25000&quot; );
+    printf( &quot;\n-loss &lt;perc&gt;        : Uplink loss estimate, in percent (0-100); default: 0&quot; );
+    printf( &quot;\n-inbandFEC &lt;flag&gt;   : Enable inband FEC usage (0/1); default: 0&quot; );
+    printf( &quot;\n-complexity &lt;comp&gt;  : Set complexity, 0: low, 1: medium, 2: high; default: 2&quot; );
+    printf( &quot;\n-DTX &lt;flag&gt;         : Enable DTX (0/1); default: 0&quot; );
+    printf( &quot;\n-quiet              : Print only some basic values&quot; );
+    printf( &quot;\n&quot;);
+}
+
+int main( int argc, char* argv[] )
+{
+    size_t    counter;
+    SKP_int   k, args, totPackets, totActPackets, ret;
+    SKP_int16 nBytes;
+    double    sumBytes, sumWBytes, sumActBytes, avg_rate, act_rate, wght_rate, nrg;
+    SKP_uint8 payload[ MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES ];
+    SKP_int16 in[ MAX_FRAME_LENGTH * MAX_INPUT_FRAMES ];
+    char      speechInFileName[ 150 ], bitOutFileName[ 150 ];
+    FILE      *bitOutFile, *speechInFile;
+    SKP_int32 encSizeBytes;
+    void      *psEnc;
+
+    /* default settings */
+    SKP_int   fs_kHz = 24;
+    SKP_int   targetRate_bps = 25000;
+    SKP_int   packetSize_ms = 20;
+    SKP_int   frameSizeReadFromFile_ms = 20;
+    SKP_int   packetLoss_perc = 0, complexity_mode = 2, smplsSinceLastPacket;
+    SKP_int   INBandFec_enabled = 0, DTX_enabled = 0, quiet = 0;
+    SKP_SILK_SDK_EncControlStruct encControl; // Struct for input to encoder
+        
+    if( argc &lt; 3 ) {
+        print_usage( argv );
+        exit( 0 );
+    } 
+    
+    /* get arguments */
+    args = 1;
+    strcpy( speechInFileName, argv[ args ] );
+    args++;
+    strcpy( bitOutFileName,   argv[ args ] );
+    args++;
+    while( args &lt; argc ) {
+        if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-fs&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;fs_kHz );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-packetlength&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;packetSize_ms );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-rate&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;targetRate_bps );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-loss&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;packetLoss_perc );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-complexity&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;complexity_mode );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-inbandFEC&quot; ) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;INBandFec_enabled );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-DTX&quot;) == 0 ) {
+            sscanf( argv[ args + 1 ], &quot;%d&quot;, &amp;DTX_enabled );
+            args += 2;
+        } else if( SKP_STR_CASEINSENSITIVE_COMPARE( argv[ args ], &quot;-quiet&quot; ) == 0 ) {
+            quiet = 1;
+            args++;
+        } else {
+            printf( &quot;Error: unrecognized setting: %s\n\n&quot;, argv[ args ] );
+            print_usage( argv );
+            exit( 0 );
+        }
+    }
+
+    /* Print options */
+    if( !quiet ) {
+        printf(&quot;******************* Silk Encoder v %s ****************\n&quot;, SKP_Silk_SDK_get_version());
+        printf(&quot;******************* Compiled for %d bit cpu ********* \n&quot;, (int)sizeof(void*) * 8 );
+        printf( &quot;Input:                       %s\n&quot;,        speechInFileName );
+        printf( &quot;Output:                      %s\n&quot;,        bitOutFileName );
+        printf( &quot;Sampling rate:               %d kHz\n&quot;,    fs_kHz);
+        printf( &quot;Packet interval:             %d ms\n&quot;,     packetSize_ms);
+        printf( &quot;Inband FEC used:             %d\n&quot;,        INBandFec_enabled);
+        printf( &quot;DTX used:                    %d\n&quot;,        DTX_enabled);
+        printf( &quot;Complexity:                  %d\n&quot;,        complexity_mode);
+        printf( &quot;Target bitrate:              %d bps\n&quot;,    targetRate_bps);
+    }
+
+    /* Open files */
+    speechInFile = fopen( speechInFileName, &quot;rb&quot; );
+    if( speechInFile == NULL ) {
+        printf( &quot;Error: could not open input file %s\n&quot;, speechInFileName );
+        exit( 0 );
+    }
+    bitOutFile = fopen( bitOutFileName, &quot;wb&quot; );
+    if( bitOutFile == NULL ) {
+        printf( &quot;Error: could not open output file %s\n&quot;, bitOutFileName );
+        exit( 0 );
+    }
+
+    /* Create Encoder */
+    ret = SKP_Silk_SDK_Get_Encoder_Size( &amp;encSizeBytes );
+    if( ret ) {
+        printf( &quot;\nSKP_Silk_create_encoder returned %d&quot;, ret );
+    }
+
+    psEnc = malloc( encSizeBytes );
+    
+    /* Reset Encoder */
+    ret = SKP_Silk_SDK_InitEncoder( psEnc, &amp;encControl );
+    if( ret ) {
+        printf( &quot;\nSKP_Silk_reset_encoder returned %d&quot;, ret );
+    }
+    
+    /* Set Encoder parameters */
+    encControl.sampleRate           = fs_kHz * 1000;
+    encControl.packetSize           = packetSize_ms * fs_kHz;
+    encControl.packetLossPercentage = packetLoss_perc;
+    encControl.useInBandFEC         = INBandFec_enabled;
+    encControl.useDTX               = DTX_enabled;
+    encControl.complexity           = complexity_mode;
+    encControl.bitRate              = targetRate_bps;
+
+    if( fs_kHz &gt; 24 || fs_kHz &lt; 0 ) {
+        printf( &quot;\nError: Sampling rate = %d out of range, valid range 8 - 24 \n \n&quot;, fs_kHz );
+        exit( 0 );
+    }
+
+    totPackets           = 0;
+    totActPackets        = 0;
+    smplsSinceLastPacket = 0;
+    sumBytes             = 0.0;
+    sumActBytes          = 0.0;
+    sumWBytes            = 0.0;
+    
+    while( 1 ) {
+        /* Read input to file */
+        counter = fread( in, sizeof( SKP_int16 ), frameSizeReadFromFile_ms * fs_kHz, speechInFile );
+        if( (SKP_int)counter &lt; frameSizeReadFromFile_ms * fs_kHz ) {
+            break;
+        }
+
+        /* max payload size */
+        nBytes = MAX_BYTES_PER_FRAME * MAX_INPUT_FRAMES;
+
+        /* Silk Encoder */
+        ret = SKP_Silk_SDK_Encode( psEnc, &amp;encControl, in, (SKP_int16)counter, payload, &amp;nBytes );
+        if( ret ) {
+            printf( &quot;\nSKP_Silk_Encode returned %d&quot;, ret );
+            break;
+        }
+
+        /* Get packet size */
+        packetSize_ms = (SKP_int)( 1000 * encControl.packetSize ) / encControl.sampleRate;
+
+        smplsSinceLastPacket += (SKP_int)counter;
+        
+        if( ( smplsSinceLastPacket / fs_kHz ) == packetSize_ms ) {
+            /* Sends a dummy zero size packet in case of DTX period  */
+            /* to make it work with the decoder test program.        */
+            /* In practice should be handled by RTP sequence numbers */
+            totPackets++;
+            sumBytes  += nBytes;
+            sumWBytes += pow( (double)nBytes, 10.0 );
+            nrg = 0.0;
+            for( k = 0; k &lt; (SKP_int)counter; k++ ) {
+                nrg += in[ k ] * (double)in[ k ];
+            }
+            if( ( nrg / (SKP_int)counter ) &gt; 1e3 ) {
+                sumActBytes += nBytes;
+                totActPackets++;
+            }
+
+            /* Write payload size */
+            fwrite( &amp;nBytes, sizeof( SKP_int16 ), 1, bitOutFile );
+
+            /* Write payload */
+            fwrite( payload, sizeof( SKP_uint8 ), nBytes, bitOutFile );
+        
+            if( !quiet ) {
+                fprintf( stderr, &quot;\rPackets encoded:              %d&quot;, totPackets );
+            }
+            smplsSinceLastPacket = 0;
+        }
+    }
+
+    /* Write dummy because it can not end with 0 bytes */
+    nBytes = -1;
+
+    /* Write payload size */
+    fwrite( &amp;nBytes, sizeof( SKP_int16 ), 1, bitOutFile );
+
+    /* Query encoder */
+    packetSize_ms = (SKP_int)( 1000 * encControl.packetSize ) / encControl.sampleRate;
+
+    /* Free Encoder */
+    free( psEnc );
+
+    fclose( speechInFile );
+    fclose( bitOutFile   );
+
+    avg_rate  = 8.0 / packetSize_ms * sumBytes       / totPackets;
+    act_rate  = 8.0 / packetSize_ms * sumActBytes    / totActPackets;
+    wght_rate = 8.0 / packetSize_ms * pow( sumWBytes / totPackets, 0.1 );
+    if( !quiet ) {
+        printf( &quot;\nAverage bitrate:             %.3f kbps&quot;, avg_rate  );
+        printf( &quot;\nActive bitrate:              %.3f kbps&quot;, act_rate  );
+        printf( &quot;\nWeighted bitrate:            %.3f kbps&quot;, wght_rate );
+        printf( &quot;\n\n&quot; );
+    } else {
+        /* print average and weighted bitrates */
+        printf( &quot;%.3f %.3f %.3f \n&quot;, avg_rate, act_rate, wght_rate );
+    }
+    return 0;
+}
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestSignalComparevcproj"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/test/SignalCompare.vcproj (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/SignalCompare.vcproj                                (rev 0)
+++ freeswitch/trunk/libs/silk/test/SignalCompare.vcproj        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,197 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1252&quot;?&gt;
+&lt;VisualStudioProject
+        ProjectType=&quot;Visual C++&quot;
+        Version=&quot;8,00&quot;
+        Name=&quot;SignalCompare&quot;
+        ProjectGUID=&quot;{7FE8F544-9175-40C3-A187-7F15CE9A75D8}&quot;
+        RootNamespace=&quot;Test&quot;
+        Keyword=&quot;Win32Proj&quot;
+        &gt;
+        &lt;Platforms&gt;
+                &lt;Platform
+                        Name=&quot;Win32&quot;
+                /&gt;
+        &lt;/Platforms&gt;
+        &lt;ToolFiles&gt;
+        &lt;/ToolFiles&gt;
+        &lt;Configurations&gt;
+                &lt;Configuration
+                        Name=&quot;Debug|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)_SigCmp&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                Optimization=&quot;0&quot;
+                                AdditionalIncludeDirectories=&quot;..\interface;..\src&quot;
+                                PreprocessorDefinitions=&quot;WIN32;_DEBUG;_CONSOLE&quot;
+                                MinimalRebuild=&quot;true&quot;
+                                BasicRuntimeChecks=&quot;3&quot;
+                                RuntimeLibrary=&quot;1&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;4&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                OutputFile=&quot;SignalCompare_debug.exe&quot;
+                                LinkIncremental=&quot;2&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreAllDefaultLibraries=&quot;false&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;true&quot;
+                                ProgramDatabaseFile=&quot;$(TargetDir)$(TargetName).pdb&quot;
+                                SubSystem=&quot;1&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+                &lt;Configuration
+                        Name=&quot;Release|Win32&quot;
+                        OutputDirectory=&quot;$(SolutionDir)&quot;
+                        IntermediateDirectory=&quot;$(ConfigurationName)_SigCmp&quot;
+                        ConfigurationType=&quot;1&quot;
+                        CharacterSet=&quot;1&quot;
+                        WholeProgramOptimization=&quot;1&quot;
+                        &gt;
+                        &lt;Tool
+                                Name=&quot;VCPreBuildEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCustomBuildTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXMLDataGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebServiceProxyGeneratorTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCMIDLTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCCLCompilerTool&quot;
+                                AdditionalIncludeDirectories=&quot;..\interface;..\src&quot;
+                                PreprocessorDefinitions=&quot;WIN32;NDEBUG;_CONSOLE&quot;
+                                RuntimeLibrary=&quot;0&quot;
+                                FloatingPointModel=&quot;2&quot;
+                                UsePrecompiledHeader=&quot;0&quot;
+                                WarningLevel=&quot;3&quot;
+                                Detect64BitPortabilityProblems=&quot;true&quot;
+                                DebugInformationFormat=&quot;3&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManagedResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCResourceCompilerTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPreLinkEventTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCLinkerTool&quot;
+                                AdditionalOptions=&quot;/fixed:no&quot;
+                                OutputFile=&quot;$(SolutionDir)SignalCompare.exe&quot;
+                                LinkIncremental=&quot;1&quot;
+                                AdditionalLibraryDirectories=&quot;&quot;
+                                IgnoreDefaultLibraryNames=&quot;&quot;
+                                GenerateDebugInformation=&quot;false&quot;
+                                SubSystem=&quot;1&quot;
+                                OptimizeReferences=&quot;2&quot;
+                                EnableCOMDATFolding=&quot;2&quot;
+                                TargetMachine=&quot;1&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCALinkTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCManifestTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCXDCMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCBscMakeTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCFxCopTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCAppVerifierTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCWebDeploymentTool&quot;
+                        /&gt;
+                        &lt;Tool
+                                Name=&quot;VCPostBuildEventTool&quot;
+                        /&gt;
+                &lt;/Configuration&gt;
+        &lt;/Configurations&gt;
+        &lt;References&gt;
+        &lt;/References&gt;
+        &lt;Files&gt;
+                &lt;Filter
+                        Name=&quot;Source Files&quot;
+                        Filter=&quot;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx&quot;
+                        UniqueIdentifier=&quot;{4FC737F1-C7A5-4376-A066-2A32D752A2FF}&quot;
+                        &gt;
+                        &lt;File
+                                RelativePath=&quot;.\signalCompare.c&quot;
+                                &gt;
+                        &lt;/File&gt;
+                &lt;/Filter&gt;
+        &lt;/Files&gt;
+        &lt;Globals&gt;
+        &lt;/Globals&gt;
+&lt;/VisualStudioProject&gt;
</ins></span></pre></div>
<a id="freeswitchtrunklibssilktestsignalComparec"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/silk/test/signalCompare.c (0 => 17026)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/silk/test/signalCompare.c                                (rev 0)
+++ freeswitch/trunk/libs/silk/test/signalCompare.c        2010-03-17 16:16:27 UTC (rev 17026)
</span><span class="lines">@@ -0,0 +1,366 @@
</span><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved. 
+Redistribution and use in source and binary forms, with or without 
+modification, (subject to the limitations in the disclaimer below) 
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright 
+notice, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific 
+contributors, may be used to endorse or promote products derived from 
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED 
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
+
+/*
+* Compare two audio signals and compute weighted SNR difference
+*/
+
+#ifdef _WIN32
+#define _CRT_SECURE_NO_DEPRECATE        1
+#endif
+
+#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;math.h&gt;
+
+#include &quot;SKP_Silk_SigProc_FIX.h&quot;
+
+#define FRAME_LENGTH_MS                        10
+#define WIN_LENGTH_MS                        20
+#define BW_EXPANSION                        0.7f
+
+#define MAX_FS_KHZ                                24
+#define LPC_ORDER                                10
+
+#ifdef  __cplusplus
+extern &quot;C&quot;
+{
+#endif
+/* Internally used functions */
+void Autocorrelation( 
+        SKP_float *results,                                        /* o        result (length correlationCount)                        */
+        const SKP_float *inputData,                        /* i        input data to correlate                                                */
+        SKP_int inputDataSize,                                /* i        length of input                                                                */
+        SKP_int correlationCount                        /* i        number of correlation taps to compute                */
+);
+
+/* inner product of two SKP_float arrays, with result as double */
+double Inner_product( 
+        const SKP_float                *data1, 
+        const SKP_float                *data2, 
+        SKP_int                                dataSize
+);
+/* Solve the normal equations using the Levinson-Durbin recursion */
+SKP_float Levinsondurbin(                                /* O        prediction error energy                                                */
+        SKP_float                A[],                                /* O        prediction coefficients        [order]                                */
+        const SKP_float corr[],                                /* I        input auto-correlations [order + 1]                        */
+        const SKP_int        order                                /* I        prediction order                                                         */
+);
+
+/* Chirp (bw expand) LP AR filter */
+void Bwexpander( 
+        SKP_float *ar,                                                /* io        AR filter to be expanded (without leading 1)   */
+        const SKP_int d,                                        /* i        length of ar                                                                        */
+        const SKP_float chirp                                /* i        chirp factor (typically in range (0..1) )                */
+);
+
+#ifdef  __cplusplus
+}
+#endif
+
+static void print_usage(char* argv[]) {
+        printf(&quot;\nusage: %s ref.pcm test.pcm [settings]\n&quot;, argv[ 0 ]);
+        printf(&quot;\nref.pcm       : Reference file&quot;);
+        printf(&quot;\ntest.pcm      : File to be tested, should be of same length as ref.pcm&quot;);
+        printf(&quot;\n   settings:&quot;);
+        printf(&quot;\n-diff         : Only determine bit-exactness&quot;);
+        printf(&quot;\n-fs &lt;kHz&gt;     : Sampling rate in kHz, max: %d; default: 24&quot;, MAX_FS_KHZ);
+        printf(&quot;\n&quot;);
+}
+
+int main(int argc, char* argv[])
+{
+        SKP_int   args, n, i, counterRef, counterTest;
+        char      testInFileName[150], refInFileName[150];
+        FILE      *refInFile, *testInFile;
+        SKP_int   nFrames = 0, isUnequal = 0;
+        SKP_int   diff = 0, Fs_kHz = 24;                /* defaults */
+        SKP_float c, refWhtnd, testWhtnd, refNrg, diffNrg;
+        double    SNR = 0.0;
+        SKP_int16 refIn[WIN_LENGTH_MS * MAX_FS_KHZ], testIn[WIN_LENGTH_MS * MAX_FS_KHZ];
+        SKP_float refWin[WIN_LENGTH_MS * MAX_FS_KHZ], testWin[WIN_LENGTH_MS * MAX_FS_KHZ];
+        SKP_float autoCorr[LPC_ORDER + 1], LPC_Coef[LPC_ORDER];
+
+        if (argc &lt; 3) {
+                print_usage(argv);
+                exit(0);
+        } 
+
+        /* get arguments */
+        args = 1;
+        strcpy(refInFileName, argv[args]);
+        args++;
+        strcpy(testInFileName, argv[args]);
+        args++;
+        while(args &lt; argc ) {
+                if (SKP_STR_CASEINSENSITIVE_COMPARE(argv[args], &quot;-diff&quot;) == 0) {
+                        diff = 1;
+                        args++;
+                }else if (SKP_STR_CASEINSENSITIVE_COMPARE(argv[args], &quot;-fs&quot;) == 0) {
+                        sscanf(argv[args+1], &quot;%d&quot;, &amp;Fs_kHz);
+                        args += 2;
+                } else {
+                        printf(&quot;Error: unrecognized setting: %s\n\n&quot;, argv[args]);
+                        print_usage(argv);
+                        exit(0);
+                }
+        }
+
+        if( Fs_kHz &gt; MAX_FS_KHZ ) {
+                printf(&quot;Error: sampling rate too high: %d\n\n&quot;, Fs_kHz);
+                print_usage(argv);
+                exit(0);
+        }
+
+        printf(&quot;Reference:  %s\n&quot;, refInFileName);
+        //printf(&quot;Test:       %s\n&quot;, testInFileName);
+
+        /* open files */
+        refInFile = fopen(refInFileName, &quot;rb&quot;);
+        if (refInFile==NULL) {
+                printf(&quot;Error: could not open input file %s\n&quot;, refInFileName);
+                exit(0);
+        } 
+        testInFile = fopen(testInFileName, &quot;rb&quot;);
+        if (testInFile==NULL) {
+                printf(&quot;Error: could not open input file %s\n&quot;, testInFileName);
+                exit(0);
+        }
+
+        SKP_memset( refIn,  0, sizeof(refIn) );
+        SKP_memset( testIn, 0, sizeof(testIn) );
+
+        while(1) {
+                /* Read inputs */
+                counterRef  = (SKP_int)fread(&amp;refIn[(WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz], 
+                        sizeof(SKP_int16), FRAME_LENGTH_MS * Fs_kHz, refInFile);
+                counterTest = (SKP_int)fread(&amp;testIn[(WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz], 
+                        sizeof(SKP_int16), FRAME_LENGTH_MS * Fs_kHz, testInFile);
+                if(counterRef != FRAME_LENGTH_MS * Fs_kHz || counterTest != FRAME_LENGTH_MS * Fs_kHz){
+                        break;
+                }
+
+                /* test for bit-exactness */
+                for( n = 0; n &lt; FRAME_LENGTH_MS * Fs_kHz; n++ ) {
+                        if( refIn[(WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz + n] != 
+                                testIn[(WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz + n] ) {
+                                        isUnequal = 1;
+                                        break;
+                        }
+                }
+
+                /* apply sine window */
+                for( n = 0; n &lt; WIN_LENGTH_MS * Fs_kHz; n++ ) {
+                        c = (SKP_float)sin( 3.14159265 * (n + 1) / (WIN_LENGTH_MS * Fs_kHz + 1) );
+                        refWin[n]  = refIn[n]  * c;
+                        testWin[n] = testIn[n] * c;
+                }
+
+                /* LPC analysis on reference signal */
+
+                /* Calculate auto correlation */
+                Autocorrelation(autoCorr, refWin, WIN_LENGTH_MS * Fs_kHz, LPC_ORDER + 1);
+
+                /* Add white noise */
+                autoCorr[ 0 ] += autoCorr[ 0 ] * 1e-6f + 1.0f; 
+
+                /* Convert correlations to prediction coefficients */
+                Levinsondurbin(LPC_Coef, autoCorr, LPC_ORDER);
+
+                /* Bandwdith expansion */
+                Bwexpander(LPC_Coef, LPC_ORDER, BW_EXPANSION);
+
+                /* Filter both signals */
+                refNrg = 1.0f;
+                diffNrg = 1e-10f;
+                for( n = (WIN_LENGTH_MS - FRAME_LENGTH_MS) / 2 * Fs_kHz; 
+                         n &lt; (WIN_LENGTH_MS + FRAME_LENGTH_MS) / 2 * Fs_kHz; n++ ) {
+                                refWhtnd = refIn[n];
+                                testWhtnd = testIn[n];
+                                for( i = 0; i &lt; LPC_ORDER; i++ ) {
+                                        refWhtnd  -= LPC_Coef[ i ] * refIn[n - i - 1];
+                                        testWhtnd -= LPC_Coef[ i ] * testIn[n - i - 1];
+                                }
+                                refNrg += refWhtnd * refWhtnd;
+                                diffNrg += (refWhtnd - testWhtnd) * (refWhtnd - testWhtnd);
+                }
+
+                /* weighted SNR */
+                if( refNrg &gt; FRAME_LENGTH_MS * Fs_kHz ) {
+                        SNR += 10.0 * log10( refNrg / diffNrg );
+                        nFrames++;
+                }
+
+                /* Update Buffer */
+                SKP_memmove( refIn,  &amp;refIn[FRAME_LENGTH_MS * Fs_kHz],  (WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz * sizeof(SKP_int16));
+                SKP_memmove( testIn, &amp;testIn[FRAME_LENGTH_MS * Fs_kHz], (WIN_LENGTH_MS - FRAME_LENGTH_MS) * Fs_kHz * sizeof(SKP_int16));
+        }
+
+        if( diff ) {
+                if( isUnequal ) {
+                        printf(&quot;Signals     DIFFER\n&quot;);
+                } else {
+                        if(counterRef != counterTest){
+                                printf(&quot;Warning: signals differ in length\n&quot;);
+                        }
+                        printf(&quot;Signals     BIT-EXACT\n&quot;);
+                }
+        } else {
+                if( nFrames == 0 ) {
+                        printf(&quot;At least one signal too short or not loud enough\n&quot;);
+                        exit(0);
+                }
+                if(counterRef != counterTest){
+                        printf(&quot;Warning: signals differ in length\n&quot;);
+                }
+                if( isUnequal == 0 ) {
+                        printf(&quot;Signals     BIT-EXACT\n&quot;);
+                } else {
+                        printf(&quot;AVERAGE WEIGHTED SNR: %4.1f dB\n&quot;, SNR / nFrames);
+                }
+        }
+        printf(&quot;\n&quot;);
+
+        /* Close Files */
+        fclose(refInFile);
+        fclose(testInFile);
+
+        return 0;
+}
+
+/* compute autocorrelation */
+void Autocorrelation( 
+        SKP_float *results,                                        /* o        result (length correlationCount)                        */
+        const SKP_float *inputData,                        /* i        input data to correlate                                                */
+        SKP_int inputDataSize,                                /* i        length of input                                                                */
+        SKP_int correlationCount                        /* i        number of correlation taps to compute                */
+)
+{
+        SKP_int i;
+
+        if (correlationCount &gt; inputDataSize) {
+                correlationCount = inputDataSize;
+        }
+
+          for( i = 0; i &lt; correlationCount; i++ ) {
+                results[ i ] =  (SKP_float)Inner_product( inputData, inputData + i, inputDataSize - i );
+        }
+}
+
+/* inner product of two SKP_float arrays, with result as double */
+double Inner_product( 
+        const SKP_float                *data1, 
+        const SKP_float                *data2, 
+        SKP_int                                dataSize
+)
+{
+        SKP_int  i, dataSize4;
+        double         result;
+
+        /* 4x unrolled loop */
+        result = 0.0f;
+        dataSize4 = dataSize &amp; 0xFFFC;
+        for( i = 0; i &lt; dataSize4; i += 4 ) {
+                result += data1[ i + 0 ] * data2[ i + 0 ] + 
+                                  data1[ i + 1 ] * data2[ i + 1 ] +
+                                  data1[ i + 2 ] * data2[ i + 2 ] +
+                                  data1[ i + 3 ] * data2[ i + 3 ];
+        }
+
+        /* add any remaining products */
+        for( ; i &lt; dataSize; i++ ) {
+                result += data1[ i ] * data2[ i ];
+        }
+
+        return result;
+}
+
+/* Solve the normal equations using the Levinson-Durbin recursion */
+SKP_float Levinsondurbin(                                /* O        prediction error energy                                                */
+        SKP_float                A[],                                /* O        prediction coefficients        [order]                                */
+        const SKP_float corr[],                                /* I        input auto-correlations [order + 1]                        */
+        const SKP_int        order                                /* I        prediction order                                                         */
+)
+{
+        SKP_int   i, mHalf, m;
+        SKP_float min_nrg, nrg, t, km, Atmp1, Atmp2;
+        
+        min_nrg = 1e-12f * corr[ 0 ] + 1e-9f;
+        nrg = corr[ 0 ];
+        nrg = SKP_max(min_nrg, nrg);
+        A[ 0 ] = corr[ 1 ] / nrg;
+        nrg -= A[ 0 ] * corr[ 1 ];
+        nrg = SKP_max(min_nrg, nrg);
+
+        for( m = 1; m &lt; order; m++ )
+        {
+                t = corr[ m + 1 ];
+                for( i = 0; i &lt; m; i++ ) {
+                        t -= A[ i ] * corr[ m - i ];
+                }
+
+                /* reflection coefficient */
+                km = t / nrg;
+
+                /* residual energy */
+                nrg -= km * t;
+                nrg = SKP_max(min_nrg, nrg);
+
+                mHalf = m &gt;&gt; 1;
+                for( i = 0; i &lt; mHalf; i++ ) {
+                        Atmp1 = A[ i ];
+                        Atmp2 = A[ m - i - 1 ];
+                        A[ m - i - 1 ] -= km * Atmp1;
+                        A[ i ]         -= km * Atmp2;
+                }
+                if( m &amp; 1 ) {
+                        A[ mHalf ]     -= km * A[ mHalf ];
+                }
+                A[ m ] = km;
+        }
+
+        /* return the residual energy */
+        return nrg;
+}
+
+/* Chirp (bw expand) LP AR filter */
+void Bwexpander( 
+        SKP_float *ar,                                                /* io        AR filter to be expanded (without leading 1)   */
+        const SKP_int d,                                        /* i        length of ar                                                                        */
+        const SKP_float chirp                                /* i        chirp factor (typically in range (0..1) )                */
+)
+{
+        SKP_int   i;
+        SKP_float cfac = chirp;
+
+        for( i = 0; i &lt; d - 1; i++ ) {
+                ar[ i ] *=  cfac;
+                cfac        *=  chirp;
+        }
+        ar[ d - 1 ] *=  cfac;
+}
</ins></span></pre>
</div>
</div>
<div id="footer">See you at ClueCon</div>

</body>
</html>