From 2027dabd60cb505e631984d7cb82b0d9f7d57eb4 Mon Sep 17 00:00:00 2001 From: Grishka Date: Thu, 2 Feb 2017 19:24:40 +0300 Subject: [PATCH] Initial public release --- .gitignore | 2 + Android.mk | 54 + BlockingQueue.cpp | 74 + BlockingQueue.h | 35 + BufferInputStream.cpp | 102 + BufferInputStream.h | 37 + BufferOutputStream.cpp | 84 + BufferOutputStream.h | 34 + BufferPool.cpp | 56 + BufferPool.h | 28 + CongestionControl.cpp | 173 ++ CongestionControl.h | 68 + EchoCanceller.cpp | 192 ++ EchoCanceller.h | 58 + JitterBuffer.cpp | 353 ++++ JitterBuffer.h | 73 + MediaStreamItf.cpp | 17 + MediaStreamItf.h | 27 + OpusDecoder.cpp | 261 +++ OpusDecoder.h | 56 + OpusEncoder.cpp | 144 ++ OpusEncoder.h | 52 + UNLICENSE | 24 + VoIPController.cpp | 1823 +++++++++++++++++ VoIPController.h | 295 +++ audio/AudioInput.cpp | 31 + audio/AudioInput.h | 22 + audio/AudioOutput.cpp | 46 + audio/AudioOutput.h | 28 + client/android/tg_voip_jni.cpp | 208 ++ external/include/webrtc/echo_cancellation.h | 299 +++ external/include/webrtc/echo_control_mobile.h | 209 ++ external/include/webrtc/noise_suppression.h | 135 ++ external/include/webrtc/noise_suppression_x.h | 113 + .../include/webrtc/splitting_filter_wrapper.h | 20 + external/libWebRtcAec_android_armeabi-v7a.a | Bin 0 -> 1773286 bytes external/libWebRtcAec_android_armeabi.a | Bin 0 -> 1684248 bytes external/libWebRtcAec_android_x86.a | Bin 0 -> 1529454 bytes external/libWebRtcAec_darwin.a | Bin 0 -> 3824776 bytes logging.h | 48 + os/android/AudioInputAndroid.cpp | 112 + os/android/AudioInputAndroid.h | 35 + os/android/AudioInputOpenSLES.cpp | 137 ++ os/android/AudioInputOpenSLES.h | 39 + os/android/AudioOutputAndroid.cpp | 122 ++ os/android/AudioOutputAndroid.h | 38 + os/android/AudioOutputOpenSLES.cpp | 168 ++ os/android/AudioOutputOpenSLES.h | 46 + os/android/OpenSLEngineWrapper.cpp | 44 + os/android/OpenSLEngineWrapper.h | 25 + os/darwin/AudioInputAudioUnit.cpp | 56 + os/darwin/AudioInputAudioUnit.h | 33 + os/darwin/AudioOutputAudioUnit.cpp | 101 + os/darwin/AudioOutputAudioUnit.h | 39 + os/darwin/AudioUnitIO.cpp | 180 ++ os/darwin/AudioUnitIO.h | 43 + os/darwin/TGLogWrapper.h | 20 + os/darwin/TGLogWrapper.m | 8 + threading.h | 42 + 59 files changed, 6569 insertions(+) create mode 100644 .gitignore create mode 100644 Android.mk create mode 100644 BlockingQueue.cpp create mode 100644 BlockingQueue.h create mode 100644 BufferInputStream.cpp create mode 100644 BufferInputStream.h create mode 100644 BufferOutputStream.cpp create mode 100644 BufferOutputStream.h create mode 100644 BufferPool.cpp create mode 100644 BufferPool.h create mode 100644 CongestionControl.cpp create mode 100644 CongestionControl.h create mode 100644 EchoCanceller.cpp create mode 100644 EchoCanceller.h create mode 100644 JitterBuffer.cpp create mode 100644 JitterBuffer.h create mode 100644 MediaStreamItf.cpp create mode 100644 MediaStreamItf.h create mode 100644 OpusDecoder.cpp create mode 100644 OpusDecoder.h create mode 100644 OpusEncoder.cpp create mode 100644 OpusEncoder.h create mode 100644 UNLICENSE create mode 100644 VoIPController.cpp create mode 100644 VoIPController.h create mode 100644 audio/AudioInput.cpp create mode 100644 audio/AudioInput.h create mode 100644 audio/AudioOutput.cpp create mode 100644 audio/AudioOutput.h create mode 100644 client/android/tg_voip_jni.cpp create mode 100644 external/include/webrtc/echo_cancellation.h create mode 100644 external/include/webrtc/echo_control_mobile.h create mode 100644 external/include/webrtc/noise_suppression.h create mode 100644 external/include/webrtc/noise_suppression_x.h create mode 100644 external/include/webrtc/splitting_filter_wrapper.h create mode 100644 external/libWebRtcAec_android_armeabi-v7a.a create mode 100644 external/libWebRtcAec_android_armeabi.a create mode 100644 external/libWebRtcAec_android_x86.a create mode 100644 external/libWebRtcAec_darwin.a create mode 100644 logging.h create mode 100644 os/android/AudioInputAndroid.cpp create mode 100644 os/android/AudioInputAndroid.h create mode 100644 os/android/AudioInputOpenSLES.cpp create mode 100644 os/android/AudioInputOpenSLES.h create mode 100644 os/android/AudioOutputAndroid.cpp create mode 100644 os/android/AudioOutputAndroid.h create mode 100644 os/android/AudioOutputOpenSLES.cpp create mode 100644 os/android/AudioOutputOpenSLES.h create mode 100644 os/android/OpenSLEngineWrapper.cpp create mode 100644 os/android/OpenSLEngineWrapper.h create mode 100644 os/darwin/AudioInputAudioUnit.cpp create mode 100644 os/darwin/AudioInputAudioUnit.h create mode 100644 os/darwin/AudioOutputAudioUnit.cpp create mode 100644 os/darwin/AudioOutputAudioUnit.h create mode 100644 os/darwin/AudioUnitIO.cpp create mode 100644 os/darwin/AudioUnitIO.h create mode 100644 os/darwin/TGLogWrapper.h create mode 100644 os/darwin/TGLogWrapper.m create mode 100644 threading.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..84e7b5c836 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +bin +.idea diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000000..189c3f6de4 --- /dev/null +++ b/Android.mk @@ -0,0 +1,54 @@ +include $(CLEAR_VARS) + +LOCAL_MODULE := voip +LOCAL_CPPFLAGS := -Wall -std=c++11 -DANDROID -finline-functions -ffast-math -Os -fno-strict-aliasing -O3 +LOCAL_CFLAGS := -O3 -DUSE_KISS_FFT -DFIXED_POINT + +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) + LOCAL_CPPFLAGS += -mfloat-abi=softfp -mfpu=neon + LOCAL_CFLAGS += -mfloat-abi=softfp -mfpu=neon +else + ifeq ($(TARGET_ARCH_ABI),armeabi) + LOCAL_CPPFLAGS += -mfloat-abi=softfp -mfpu=neon + LOCAL_CFLAGS += -mfloat-abi=softfp -mfpu=neon + else + ifeq ($(TARGET_ARCH_ABI),x86) + + endif + endif +endif + +MY_DIR := libtgvoip + +LOCAL_C_INCLUDES := jni/opus/include jni/boringssl/include/ + +LOCAL_SRC_FILES := \ +$(MY_DIR)/external/speex_dsp/buffer.c \ +$(MY_DIR)/external/speex_dsp/fftwrap.c \ +$(MY_DIR)/external/speex_dsp/filterbank.c \ +$(MY_DIR)/external/speex_dsp/kiss_fft.c \ +$(MY_DIR)/external/speex_dsp/kiss_fftr.c \ +$(MY_DIR)/external/speex_dsp/mdf.c \ +$(MY_DIR)/external/speex_dsp/preprocess.c \ +$(MY_DIR)/external/speex_dsp/resample.c \ +$(MY_DIR)/external/speex_dsp/scal.c \ +$(MY_DIR)/external/speex_dsp/smallft.c \ +$(MY_DIR)/VoIPController.cpp \ +$(MY_DIR)/BufferInputStream.cpp \ +$(MY_DIR)/BufferOutputStream.cpp \ +$(MY_DIR)/BlockingQueue.cpp \ +$(MY_DIR)/audio/AudioInput.cpp \ +$(MY_DIR)/os/android/AudioInputOpenSLES.cpp \ +$(MY_DIR)/MediaStreamItf.cpp \ +$(MY_DIR)/audio/AudioOutput.cpp \ +$(MY_DIR)/OpusEncoder.cpp \ +$(MY_DIR)/os/android/AudioOutputOpenSLES.cpp \ +$(MY_DIR)/JitterBuffer.cpp \ +$(MY_DIR)/OpusDecoder.cpp \ +$(MY_DIR)/BufferPool.cpp \ +$(MY_DIR)/os/android/OpenSLEngineWrapper.cpp \ +$(MY_DIR)/os/android/AudioInputAndroid.cpp \ +$(MY_DIR)/EchoCanceller.cpp \ + + +include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/BlockingQueue.cpp b/BlockingQueue.cpp new file mode 100644 index 0000000000..f44ae2cf5c --- /dev/null +++ b/BlockingQueue.cpp @@ -0,0 +1,74 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "BlockingQueue.h" + +CBlockingQueue::CBlockingQueue(size_t capacity){ + this->capacity=capacity; + init_lock(lock); + init_mutex(mutex); +} + +CBlockingQueue::~CBlockingQueue(){ + lock_mutex(mutex); + notify_lock(lock); + unlock_mutex(mutex); + lock_mutex(mutex); + unlock_mutex(mutex); + free_lock(lock); + free_mutex(mutex); +} + +void CBlockingQueue::Put(void *thing){ + lock_mutex(mutex); + if(queue.empty()){ + notify_lock(lock); + } + queue.push_back(thing); + while(queue.size()>capacity){ + queue.pop_front(); + } + unlock_mutex(mutex); +} + +void *CBlockingQueue::GetBlocking(){ + lock_mutex(mutex); + while(queue.empty()){ + wait_lock(lock, mutex); + } + void* r=GetInternal(); + unlock_mutex(mutex); + return r; +} + + +void *CBlockingQueue::Get(){ + lock_mutex(mutex); + void* r=GetInternal(); + unlock_mutex(mutex); + return r; +} + +void *CBlockingQueue::GetInternal(){ + if(queue.size()==0) + return NULL; + void* r=queue.front(); + queue.pop_front(); + return r; +} + + +unsigned int CBlockingQueue::Size(){ + return queue.size(); +} + + +void CBlockingQueue::PrepareDealloc(){ + lock_mutex(mutex); + notify_lock(lock); + unlock_mutex(mutex); +} + diff --git a/BlockingQueue.h b/BlockingQueue.h new file mode 100644 index 0000000000..673a4fdd8b --- /dev/null +++ b/BlockingQueue.h @@ -0,0 +1,35 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_BLOCKINGQUEUE_H +#define LIBTGVOIP_BLOCKINGQUEUE_H + +#include +#include +#include "threading.h" + +using namespace std; + +class CBlockingQueue{ +public: + CBlockingQueue(size_t capacity); + ~CBlockingQueue(); + void Put(void* thing); + void* GetBlocking(); + void* Get(); + unsigned int Size(); + void PrepareDealloc(); + +private: + void* GetInternal(); + list queue; + size_t capacity; + tgvoip_lock_t lock; + tgvoip_mutex_t mutex; +}; + + +#endif //LIBTGVOIP_BLOCKINGQUEUE_H diff --git a/BufferInputStream.cpp b/BufferInputStream.cpp new file mode 100644 index 0000000000..055de77ef1 --- /dev/null +++ b/BufferInputStream.cpp @@ -0,0 +1,102 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "BufferInputStream.h" +#include +#include +#include +#include + +CBufferInputStream::CBufferInputStream(char* data, size_t length){ + this->buffer=data; + this->length=length; + offset=0; +} + +CBufferInputStream::~CBufferInputStream(){ + +} + + +void CBufferInputStream::Seek(size_t offset){ + assert(offset<=length); + this->offset=offset; +} + +size_t CBufferInputStream::GetLength(){ + return length; +} + +size_t CBufferInputStream::GetOffset(){ + return offset; +} + +size_t CBufferInputStream::Remaining(){ + return length-offset; +} + +unsigned char CBufferInputStream::ReadByte(){ + EnsureEnoughRemaining(1); + return (unsigned char)buffer[offset++]; +} + +int32_t CBufferInputStream::ReadInt32(){ + EnsureEnoughRemaining(4); + int32_t res=((int32_t)buffer[offset] & 0xFF) | + (((int32_t)buffer[offset+1] & 0xFF) << 8) | + (((int32_t)buffer[offset+2] & 0xFF) << 16) | + (((int32_t)buffer[offset+3] & 0xFF) << 24); + offset+=4; + return res; +} + +int64_t CBufferInputStream::ReadInt64(){ + EnsureEnoughRemaining(8); + int64_t res=((int64_t)buffer[offset] & 0xFF) | + (((int64_t)buffer[offset+1] & 0xFF) << 8) | + (((int64_t)buffer[offset+2] & 0xFF) << 16) | + (((int64_t)buffer[offset+3] & 0xFF) << 24) | + (((int64_t)buffer[offset+4] & 0xFF) << 32) | + (((int64_t)buffer[offset+5] & 0xFF) << 40) | + (((int64_t)buffer[offset+6] & 0xFF) << 48) | + (((int64_t)buffer[offset+7] & 0xFF) << 56); + offset+=8; + return res; +} + +int16_t CBufferInputStream::ReadInt16(){ + EnsureEnoughRemaining(2); + int16_t res=(uint16_t)buffer[offset] | ((uint16_t)buffer[offset+1] << 8); + offset+=2; + return res; +} + + +int32_t CBufferInputStream::ReadTlLength(){ + unsigned char l=ReadByte(); + if(l<254) + return l; + assert(length-offset>=3); + EnsureEnoughRemaining(3); + int32_t res=((int32_t)buffer[offset] & 0xFF) | + (((int32_t)buffer[offset+1] & 0xFF) << 8) | + (((int32_t)buffer[offset+2] & 0xFF) << 16); + offset+=3; + return res; +} + +void CBufferInputStream::ReadBytes(char *to, size_t count){ + EnsureEnoughRemaining(count); + memcpy(to, buffer+offset, count); + offset+=count; +} + + +void CBufferInputStream::EnsureEnoughRemaining(size_t need){ + if(length-offset +#include + +class CBufferInputStream{ + +public: + CBufferInputStream(char* data, size_t length); + ~CBufferInputStream(); + void Seek(size_t offset); + size_t GetLength(); + size_t GetOffset(); + size_t Remaining(); + unsigned char ReadByte(); + int64_t ReadInt64(); + int32_t ReadInt32(); + int16_t ReadInt16(); + int32_t ReadTlLength(); + void ReadBytes(char* to, size_t count); + +private: + void EnsureEnoughRemaining(size_t need); + char* buffer; + size_t length; + size_t offset; +}; + + +#endif //LIBTGVOIP_BUFFERINPUTSTREAM_H diff --git a/BufferOutputStream.cpp b/BufferOutputStream.cpp new file mode 100644 index 0000000000..f7e5cf4287 --- /dev/null +++ b/BufferOutputStream.cpp @@ -0,0 +1,84 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "BufferOutputStream.h" +#include + +CBufferOutputStream::CBufferOutputStream(size_t size){ + buffer=(char*) malloc(size); + offset=0; + this->size=size; +} + +CBufferOutputStream::~CBufferOutputStream(){ + free(buffer); +} + +void CBufferOutputStream::WriteByte(unsigned char byte){ + this->ExpandBufferIfNeeded(1); + buffer[offset++]=byte; +} + +void CBufferOutputStream::WriteInt32(int32_t i){ + this->ExpandBufferIfNeeded(4); + buffer[offset+3]=(char)((i >> 24) & 0xFF); + buffer[offset+2]=(char)((i >> 16) & 0xFF); + buffer[offset+1]=(char)((i >> 8) & 0xFF); + buffer[offset]=(char)(i & 0xFF); + offset+=4; +} + +void CBufferOutputStream::WriteInt64(int64_t i){ + this->ExpandBufferIfNeeded(8); + buffer[offset+7]=(char)((i >> 56) & 0xFF); + buffer[offset+6]=(char)((i >> 48) & 0xFF); + buffer[offset+5]=(char)((i >> 40) & 0xFF); + buffer[offset+4]=(char)((i >> 32) & 0xFF); + buffer[offset+3]=(char)((i >> 24) & 0xFF); + buffer[offset+2]=(char)((i >> 16) & 0xFF); + buffer[offset+1]=(char)((i >> 8) & 0xFF); + buffer[offset]=(char)(i & 0xFF); + offset+=8; +} + +void CBufferOutputStream::WriteInt16(int16_t i){ + this->ExpandBufferIfNeeded(2); + buffer[offset+1]=(char)((i >> 8) & 0xFF); + buffer[offset]=(char)(i & 0xFF); + offset+=2; +} + +void CBufferOutputStream::WriteBytes(char *bytes, size_t count){ + this->ExpandBufferIfNeeded(count); + memcpy(buffer+offset, bytes, count); + offset+=count; +} + +char *CBufferOutputStream::GetBuffer(){ + return buffer; +} + +size_t CBufferOutputStream::GetLength(){ + return offset; +} + +void CBufferOutputStream::ExpandBufferIfNeeded(size_t need){ + if(offset+need>size){ + if(need<1024){ + buffer=(char *) realloc(buffer, size+1024); + size+=1024; + }else{ + buffer=(char *) realloc(buffer, size+need); + size+=need; + } + } +} + + +void CBufferOutputStream::Reset(){ + offset=0; +} + diff --git a/BufferOutputStream.h b/BufferOutputStream.h new file mode 100644 index 0000000000..22e4a74a69 --- /dev/null +++ b/BufferOutputStream.h @@ -0,0 +1,34 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_BUFFEROUTPUTSTREAM_H +#define LIBTGVOIP_BUFFEROUTPUTSTREAM_H + +#include + +class CBufferOutputStream{ + +public: + CBufferOutputStream(size_t size); + ~CBufferOutputStream(); + void WriteByte(unsigned char byte); + void WriteInt64(int64_t i); + void WriteInt32(int32_t i); + void WriteInt16(int16_t i); + void WriteBytes(char* bytes, size_t count); + char* GetBuffer(); + size_t GetLength(); + void Reset(); + +private: + void ExpandBufferIfNeeded(size_t need); + char* buffer; + size_t size; + size_t offset; +}; + + +#endif //LIBTGVOIP_BUFFEROUTPUTSTREAM_H diff --git a/BufferPool.cpp b/BufferPool.cpp new file mode 100644 index 0000000000..9e48140e23 --- /dev/null +++ b/BufferPool.cpp @@ -0,0 +1,56 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "BufferPool.h" +#include "logging.h" +#include +#include + +CBufferPool::CBufferPool(unsigned int size, unsigned int count){ + assert(count<=64); + init_mutex(mutex); + buffers[0]=(unsigned char*) malloc(size*count); + bufferCount=count; + int i; + for(i=1;i> i) & 1)){ + usedBuffers|=(1LL << i); + unlock_mutex(mutex); + return buffers[i]; + } + } + unlock_mutex(mutex); + return NULL; +} + +void CBufferPool::Reuse(unsigned char* buffer){ + lock_mutex(mutex); + int i; + for(i=0;i +#include "threading.h" + +class CBufferPool{ +public: + CBufferPool(unsigned int size, unsigned int count); + ~CBufferPool(); + unsigned char* Get(); + void Reuse(unsigned char* buffer); + +private: + uint64_t usedBuffers; + int bufferCount; + unsigned char* buffers[64]; + tgvoip_mutex_t mutex; +}; + + +#endif //LIBTGVOIP_BUFFERPOOL_H diff --git a/CongestionControl.cpp b/CongestionControl.cpp new file mode 100644 index 0000000000..1ad0faf6ac --- /dev/null +++ b/CongestionControl.cpp @@ -0,0 +1,173 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "CongestionControl.h" +#include "VoIPController.h" +#include "logging.h" +#include +#include + +CCongestionControl::CCongestionControl(){ + memset(rttHistory, 0, 100*sizeof(double)); + memset(inflightPackets, 0, 100*sizeof(tgvoip_congestionctl_packet_t)); + memset(inflightHistory, 0, 30*sizeof(size_t)); + tmpRtt=0; + tmpRttCount=0; + rttHistorySize=0; + rttHistoryTop=0; + lastSentSeq=0; + inflightHistoryTop=0; + state=TGVOIP_CONCTL_STARTUP; + lastActionTime=0; + lastActionRtt=0; + stateTransitionTime=0; + inflightDataSize=0; + lossCount=0; + cwnd=1024; + init_mutex(mutex); +} + +CCongestionControl::~CCongestionControl(){ + free_mutex(mutex); +} + +size_t CCongestionControl::GetAcknowledgedDataSize(){ + return 0; +} + +double CCongestionControl::GetAverageRTT(){ + if(rttHistorySize==0) + return 0; + double avg=0; + int i; + for(i=0;i<30 && i=0 ? x : (100+x)]; + //LOGV("adding [%d] %f", x>=0 ? x : (100+x), rttHistory[x>=0 ? x : (100+x)]); + } + return avg/i; +} + +size_t CCongestionControl::GetInflightDataSize(){ + size_t avg=0; + int i; + for(i=0;i<30;i++){ + avg+=inflightHistory[i]; + } + return avg/30; +} + + +size_t CCongestionControl::GetCongestionWindow(){ + return cwnd; +} + +double CCongestionControl::GetMinimumRTT(){ + int i; + double min=INFINITY; + for(i=0;i<100;i++){ + if(rttHistory[i]>0 && rttHistory[i]0){ + tmpRtt+=(CVoIPController::GetCurrentTime()-inflightPackets[i].sendTime); + tmpRttCount++; + inflightPackets[i].sendTime=0; + inflightDataSize-=inflightPackets[i].size; + break; + } + } + unlock_mutex(mutex); +} + +void CCongestionControl::PacketSent(uint32_t seq, size_t size){ + if(!seqgt(seq, lastSentSeq) || seq==lastSentSeq){ + LOGW("Duplicate outgoing seq %u", seq); + return; + } + lastSentSeq=seq; + lock_mutex(mutex); + double smallestSendTime=INFINITY; + tgvoip_congestionctl_packet_t* slot=NULL; + int i; + for(i=0;i<100;i++){ + if(inflightPackets[i].sendTime==0){ + slot=&inflightPackets[i]; + break; + } + if(smallestSendTime>inflightPackets[i].sendTime){ + slot=&inflightPackets[i]; + smallestSendTime=slot->sendTime; + } + } + assert(slot!=NULL); + if(slot->sendTime>0){ + inflightDataSize-=slot->size; + lossCount++; + LOGD("Packet with seq %u was not acknowledged", slot->seq); + } + slot->seq=seq; + slot->size=size; + slot->sendTime=CVoIPController::GetCurrentTime(); + inflightDataSize+=size; + unlock_mutex(mutex); +} + + +void CCongestionControl::Tick(){ + tickCount++; + lock_mutex(mutex); + if(tmpRttCount>0){ + rttHistory[rttHistoryTop]=tmpRtt/tmpRttCount; + rttHistoryTop=(rttHistoryTop+1)%100; + if(rttHistorySize<100) + rttHistorySize++; + tmpRtt=0; + tmpRttCount=0; + } + int i; + for(i=0;i<100;i++){ + if(inflightPackets[i].sendTime!=0 && CVoIPController::GetCurrentTime()-inflightPackets[i].sendTime>2){ + inflightPackets[i].sendTime=0; + inflightDataSize-=inflightPackets[i].size; + lossCount++; + LOGD("Packet with seq %u was not acknowledged", inflightPackets[i].seq); + } + } + inflightHistory[inflightHistoryTop]=inflightDataSize; + inflightHistoryTop=(inflightHistoryTop+1)%30; + unlock_mutex(mutex); +} + + +int CCongestionControl::GetBandwidthControlAction(){ + if(CVoIPController::GetCurrentTime()-lastActionTime<1) + return TGVOIP_CONCTL_ACT_NONE; + size_t inflightAvg=GetInflightDataSize(); + size_t max=cwnd+cwnd/10; + size_t min=cwnd-cwnd/10; + if(inflightAvgmax){ + lastActionTime=CVoIPController::GetCurrentTime(); + return TGVOIP_CONCTL_ACT_DECREASE; + } + return TGVOIP_CONCTL_ACT_NONE; +} + + +uint32_t CCongestionControl::GetSendLossCount(){ + return lossCount; +} diff --git a/CongestionControl.h b/CongestionControl.h new file mode 100644 index 0000000000..840884e485 --- /dev/null +++ b/CongestionControl.h @@ -0,0 +1,68 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_CONGESTIONCONTROL_H +#define LIBTGVOIP_CONGESTIONCONTROL_H + +#include +#include "threading.h" + +#define TGVOIP_CONCTL_STARTUP 0 +#define TGVOIP_CONCTL_DRAIN 1 +#define TGVOIP_CONCTL_PROBE_BW 2 +#define TGVOIP_CONCTL_PROBE_RTT 3 + +#define TGVOIP_CONCTL_ACT_INCREASE 1 +#define TGVOIP_CONCTL_ACT_DECREASE 2 +#define TGVOIP_CONCTL_ACT_NONE 0 + +struct tgvoip_congestionctl_packet_t{ + uint32_t seq; + double sendTime; + size_t size; +}; +typedef struct tgvoip_congestionctl_packet_t tgvoip_congestionctl_packet_t; + +class CCongestionControl{ +public: + CCongestionControl(); + ~CCongestionControl(); + + void PacketSent(uint32_t seq, size_t size); + void PacketAcknowledged(uint32_t seq); + + double GetAverageRTT(); + double GetMinimumRTT(); + size_t GetInflightDataSize(); + size_t GetCongestionWindow(); + size_t GetAcknowledgedDataSize(); + void Tick(); + int GetBandwidthControlAction(); + uint32_t GetSendLossCount(); + +private: + double rttHistory[100]; + tgvoip_congestionctl_packet_t inflightPackets[100]; + size_t inflightHistory[30]; + int state; + uint32_t lossCount; + double tmpRtt; + double lastActionTime; + double lastActionRtt; + double stateTransitionTime; + int tmpRttCount; + char rttHistorySize; + char rttHistoryTop; + char inflightHistoryTop; + uint32_t lastSentSeq; + uint32_t tickCount; + size_t inflightDataSize; + size_t cwnd; + tgvoip_mutex_t mutex; +}; + + +#endif //LIBTGVOIP_CONGESTIONCONTROL_H diff --git a/EchoCanceller.cpp b/EchoCanceller.cpp new file mode 100644 index 0000000000..94360b6ea2 --- /dev/null +++ b/EchoCanceller.cpp @@ -0,0 +1,192 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "EchoCanceller.h" +#include "audio/AudioOutput.h" +#include "logging.h" +#include + +#define AEC_FRAME_SIZE 160 +#define OFFSET_STEP AEC_FRAME_SIZE*2 + +//#define CLAMP(x, min, max) (xmin ? x : min) : max) +#define CLAMP(x, min, max) x + +/*namespace webrtc{ + void WebRtcAec_enable_delay_agnostic(AecCore* self, int enable); +}*/ + +CEchoCanceller::CEchoCanceller(){ +#ifndef TGVOIP_NO_AEC + init_mutex(mutex); + state=WebRtcAecm_Create(); + WebRtcAecm_Init(state, 16000); + AecmConfig cfg; + cfg.cngMode=AecmFalse; + cfg.echoMode=1; + WebRtcAecm_set_config(state, cfg); + + //ns=WebRtcNsx_Create(); + //WebRtcNsx_Init(ns, 16000); + + /*state=webrtc::WebRtcAec_Create(); + webrtc::WebRtcAec_Init(state, 16000, 16000); + webrtc::WebRtcAec_enable_delay_agnostic(webrtc::WebRtcAec_aec_core(state), 1);*/ + splittingFilter=tgvoip_splitting_filter_create(); + splittingFilterFarend=tgvoip_splitting_filter_create(); + + farendQueue=new CBlockingQueue(10); + farendBufferPool=new CBufferPool(960*2, 10); + running=true; + + start_thread(bufferFarendThread, CEchoCanceller::StartBufferFarendThread, this); + + isOn=true; +#endif +} + +CEchoCanceller::~CEchoCanceller(){ +#ifndef TGVOIP_NO_AEC + running=false; + farendQueue->Put(NULL); + join_thread(bufferFarendThread); + delete farendQueue; + delete farendBufferPool; + WebRtcAecm_Free(state); + //WebRtcNsx_Free(ns); + //webrtc::WebRtcAec_Free(state); + tgvoip_splitting_filter_free(splittingFilter); + tgvoip_splitting_filter_free(splittingFilterFarend); + free_mutex(mutex); +#endif +} + +void CEchoCanceller::Start(){ + +} + +void CEchoCanceller::Stop(){ + +} + + +void CEchoCanceller::SpeakerOutCallback(unsigned char* data, size_t len){ +#ifndef TGVOIP_NO_AEC + if(len!=960*2 || !isOn) + return; + /*size_t offset=0; + while(offsetGet(); + if(buf){ + memcpy(buf, data, 960*2); + farendQueue->Put(buf); + } +#endif +} + +#ifndef TGVOIP_NO_AEC +void *CEchoCanceller::StartBufferFarendThread(void *arg){ + ((CEchoCanceller*)arg)->RunBufferFarendThread(); + return NULL; +} + +void CEchoCanceller::RunBufferFarendThread(){ + while(running){ + int16_t* samplesIn=(int16_t *) farendQueue->GetBlocking(); + if(samplesIn){ + int i; + for(i=0;i<960;i++){ + splittingFilterFarend->bufferIn[i]=samplesIn[i]/(float)32767; + } + farendBufferPool->Reuse((unsigned char *) samplesIn); + tgvoip_splitting_filter_analyze(splittingFilterFarend); + //webrtc::WebRtcAec_BufferFarend(state, splittingFilterFarend->bufferOut[0], 160); + //webrtc::WebRtcAec_BufferFarend(state, &splittingFilterFarend->bufferOut[0][160], 160); + int16_t farend[320]; + for(i=0;i<320;i++){ + farend[i]=(int16_t) (CLAMP(splittingFilterFarend->bufferOut[0][i], -1, 1)*32767); + } + lock_mutex(mutex); + WebRtcAecm_BufferFarend(state, farend, 160); + WebRtcAecm_BufferFarend(state, farend+160, 160); + unlock_mutex(mutex); + didBufferFarend=true; + } + } +} +#endif + +void CEchoCanceller::Enable(bool enabled){ + isOn=enabled; +} + +void CEchoCanceller::ProcessInput(unsigned char* data, unsigned char* out, size_t len){ +#ifndef TGVOIP_NO_AEC + int i; + if(!isOn){ + memcpy(out, data, len); + return; + } + int16_t* samplesIn=(int16_t*)data; + int16_t* samplesOut=(int16_t*)out; + //int16_t samplesAfterNs[320]; + //float fout[3][320]; + for(i=0;i<960;i++){ + splittingFilter->bufferIn[i]=samplesIn[i]/(float)32767; + } + + tgvoip_splitting_filter_analyze(splittingFilter); + + for(i=0;i<320;i++){ + samplesIn[i]=(int16_t) (CLAMP(splittingFilter->bufferOut[0][i], -1, 1)*32767); + } + lock_mutex(mutex); + /*float* aecIn[3]; + float* aecOut[3]; + aecIn[0]=splittingFilter->bufferOut[0]; + aecIn[1]=splittingFilter->bufferOut[1]; + aecIn[2]=splittingFilter->bufferOut[2]; + aecOut[0]=fout[0]; + aecOut[1]=fout[1]; + aecOut[2]=fout[2]; + webrtc::WebRtcAec_Process(state, (const float *const *) aecIn, 1, (float *const *) aecOut, 160, 0, 0); + aecIn[0]+=160; + aecIn[1]+=160; + aecIn[2]+=160; + aecOut[0]+=160; + aecOut[1]+=160; + aecOut[2]+=160; + webrtc::WebRtcAec_Process(state, (const float *const *) aecIn, 1, (float *const *) aecOut, 160, 0, 0);*/ + //int16_t* nsIn=samplesIn; + //int16_t* nsOut=samplesAfterNs; + //WebRtcNsx_Process(ns, (const short *const *) &nsIn, 1, (short *const *) &nsOut); + //nsIn+=160; + //nsOut+=160; + //WebRtcNsx_Process(ns, (const short *const *) &nsIn, 1, (short *const *) &nsOut); + WebRtcAecm_Process(state, samplesIn, NULL, samplesOut, AEC_FRAME_SIZE, (int16_t) CAudioOutput::GetEstimatedDelay()); + WebRtcAecm_Process(state, samplesIn+160, NULL, samplesOut+160, AEC_FRAME_SIZE, (int16_t) CAudioOutput::GetEstimatedDelay()); + unlock_mutex(mutex); + for(i=0;i<320;i++){ + splittingFilter->bufferOut[0][i]=samplesOut[i]/(float)32767; + } + + //memcpy(splittingFilter->bufferOut[0], fout[0], 320*sizeof(float)); + //memcpy(splittingFilter->bufferOut[1], fout[1], 320*sizeof(float)); + //memcpy(splittingFilter->bufferOut[2], fout[2], 320*sizeof(float)); + + tgvoip_splitting_filter_synthesize(splittingFilter); + + for(i=0;i<960;i++){ + samplesOut[i]=(int16_t) (CLAMP(splittingFilter->bufferIn[i], -1, 1)*32767); + } +#else + memcpy(out, data, len); +#endif +} + diff --git a/EchoCanceller.h b/EchoCanceller.h new file mode 100644 index 0000000000..486ca1d923 --- /dev/null +++ b/EchoCanceller.h @@ -0,0 +1,58 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_ECHOCANCELLER_H +#define LIBTGVOIP_ECHOCANCELLER_H + +#ifdef __APPLE__ +#include +#endif + +#if TARGET_OS_IPHONE +#define TGVOIP_NO_AEC +#endif + +#include "threading.h" +#include "BufferPool.h" +#include "BlockingQueue.h" +#ifndef TGVOIP_NO_AEC +#include "external/include/webrtc/echo_control_mobile.h" +//#include "external/include/webrtc/echo_cancellation.h" +#include "external/include/webrtc/splitting_filter_wrapper.h" +#include "external/include/webrtc/noise_suppression_x.h" +#endif + +class CEchoCanceller{ + +public: + CEchoCanceller(); + virtual ~CEchoCanceller(); + virtual void Start(); + virtual void Stop(); + void SpeakerOutCallback(unsigned char* data, size_t len); + void Enable(bool enabled); + void ProcessInput(unsigned char* data, unsigned char* out, size_t len); + +private: + bool isOn; +#ifndef TGVOIP_NO_AEC + static void* StartBufferFarendThread(void* arg); + void RunBufferFarendThread(); + bool didBufferFarend; + tgvoip_mutex_t mutex; + void* state; + splitting_filter_t* splittingFilter; + splitting_filter_t* splittingFilterFarend; + tgvoip_thread_t bufferFarendThread; + CBlockingQueue* farendQueue; + CBufferPool* farendBufferPool; + bool running; + NsxHandle* ns; +#endif +}; + + +#endif //LIBTGVOIP_ECHOCANCELLER_H diff --git a/JitterBuffer.cpp b/JitterBuffer.cpp new file mode 100644 index 0000000000..ab8910996f --- /dev/null +++ b/JitterBuffer.cpp @@ -0,0 +1,353 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "JitterBuffer.h" +#include "logging.h" + +CJitterBuffer::CJitterBuffer(CMediaStreamItf *out, uint32_t step):bufferPool(JITTER_SLOT_SIZE, JITTER_SLOT_COUNT){ + if(out) + out->SetCallback(CJitterBuffer::CallbackOut, this); + this->step=step; + memset(slots, 0, sizeof(jitter_packet_t)*JITTER_SLOT_COUNT); + minDelay=6; + lostCount=0; + needBuffering=true; + tickCount=0; + dontIncMinDelay=0; + dontDecMinDelay=0; + lostPackets=0; + if(step<30) + minMinDelay=2; + else if(step<50) + minMinDelay=4; + else + minMinDelay=6; + Reset(); + init_mutex(mutex); +} + +CJitterBuffer::~CJitterBuffer(){ + Reset(); + free_mutex(mutex); +} + +void CJitterBuffer::SetMinPacketCount(uint32_t count){ + if(minDelay==count) + return; + minDelay=count; + Reset(); +} + +int CJitterBuffer::GetMinPacketCount(){ + return minDelay; +} + +size_t CJitterBuffer::CallbackIn(unsigned char *data, size_t len, void *param){ + //((CJitterBuffer*)param)->HandleInput(data, len); + return 0; +} + +size_t CJitterBuffer::CallbackOut(unsigned char *data, size_t len, void *param){ + return ((CJitterBuffer*)param)->HandleOutput(data, len, 0); +} + +void CJitterBuffer::HandleInput(unsigned char *data, size_t len, uint32_t timestamp){ + jitter_packet_t pkt; + pkt.size=len; + pkt.buffer=data; + pkt.timestamp=timestamp; + lock_mutex(mutex); + PutInternal(&pkt); + unlock_mutex(mutex); + //LOGV("in, ts=%d", timestamp); +} + +void CJitterBuffer::Reset(){ + wasReset=true; + needBuffering=true; + lastPutTimestamp=0; + int i; + for(i=0;isizesize); + }else{ + if(pkt) { + pkt->size = slots[i].size; + pkt->timestamp = slots[i].timestamp; + memcpy(pkt->buffer, slots[i].buffer, slots[i].size); + } + } + bufferPool.Reuse(slots[i].buffer); + slots[i].buffer=NULL; + if(offset==0) + Advance(); + lostCount=0; + needBuffering=false; + return JR_OK; + } + + LOGW("jitter: found no packet for timestamp %lld (last put = %d)", timestampToGet, lastPutTimestamp); + + if(offset==0) + Advance(); + + if(!needBuffering){ + lostCount++; + if(offset==0) + lostPackets++; + if(lostCount>=10){ + LOGW("jitter: lost %d packets in a row, resetting", lostCount); + //minDelay++; + dontIncMinDelay=16; + dontDecMinDelay+=128; + if(GetCurrentDelay()size>JITTER_SLOT_SIZE){ + LOGE("The packet is too big to fit into the jitter buffer"); + return; + } + int i; + if(wasReset){ + wasReset=false; + nextTimestamp=((int64_t)pkt->timestamp)-step*minDelay; + LOGI("jitter: resyncing, next timestamp = %lld (step=%d, minDelay=%d)", nextTimestamp, step, minDelay); + for(i=0;itimestamptimestamp); + latePacketCount++; + lostPackets--; + }else if(pkt->timestamptimestamp); + latePacketCount++; + return; + } + + if(pkt->timestamp>lastPutTimestamp) + lastPutTimestamp=pkt->timestamp; + + for(i=0;itimestamp; + slots[i].size=pkt->size; + slots[i].buffer=bufferPool.Get(); + if(slots[i].buffer) + memcpy(slots[i].buffer, pkt->buffer, pkt->size); + else + LOGE("WTF!!"); +} + + +void CJitterBuffer::Advance(){ + nextTimestamp+=step; +} + + +int CJitterBuffer::GetCurrentDelay(){ + int delay=0; + int i; + for(i=0;i0) + absolutelyNoLatePackets=false; + } + avgLate64/=64; + avgLate32/=32; + avgLate16/=16; + //LOGV("jitter: avg late=%.1f, %.1f, %.1f", avgLate16, avgLate32, avgLate64); + if(avgLate16>=0.3){ + if(dontIncMinDelay==0 && minDelay<15){ + minDelay++; + if(GetCurrentDelay()0) + dontDecMinDelay--; + if(dontDecMinDelay==0 && minDelay>minMinDelay){ + minDelay--; + dontDecMinDelay=64; + dontIncMinDelay+=16; + } + } + + if(dontIncMinDelay>0) + dontIncMinDelay--; + + memmove(&delayHistory[1], delayHistory, 63*sizeof(int)); + delayHistory[0]=GetCurrentDelay(); + + int avgDelay=0; + int min=100; + for(i=0;i<32;i++){ + avgDelay+=delayHistory[i]; + if(delayHistory[i]=minDelay/2 && delayHistory[0]>minDelay && avgLate16<=0.1 && absolutelyNoLatePackets && dontDecMinDelay<32 && min>minDelay) { + LOGI("jitter: need adjust"); + adjustingDelay=true; + } + }else{ + if(!absolutelyNoLatePackets){ + LOGI("jitter: done adjusting because we're losing packets"); + adjustingDelay=false; + }else if(tickCount%5==0){ + LOGD("jitter: removing a packet to reduce delay"); + GetInternal(NULL, 0); + if(GetCurrentDelay()<=minDelay || min<=minDelay){ + adjustingDelay = false; + LOGI("jitter: done adjusting"); + } + } + } + + tickCount++; + + unlock_mutex(mutex); +} + + +void CJitterBuffer::GetAverageLateCount(double *out){ + double avgLate64=0, avgLate32=0, avgLate16=0; + int i; + for(i=0;i<64;i++){ + avgLate64+=lateHistory[i]; + if(i<32) + avgLate32+=lateHistory[i]; + if(i<16) + avgLate16+=lateHistory[i]; + } + avgLate64/=64; + avgLate32/=32; + avgLate16/=16; + out[0]=avgLate16; + out[1]=avgLate32; + out[2]=avgLate64; +} + + +int CJitterBuffer::GetAndResetLostPacketCount(){ + lock_mutex(mutex); + int r=lostPackets; + lostPackets=0; + unlock_mutex(mutex); + return r; +} diff --git a/JitterBuffer.h b/JitterBuffer.h new file mode 100644 index 0000000000..b871a7b4fb --- /dev/null +++ b/JitterBuffer.h @@ -0,0 +1,73 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_JITTERBUFFER_H +#define LIBTGVOIP_JITTERBUFFER_H + +#include +#include +#include "MediaStreamItf.h" +#include "BlockingQueue.h" +#include "BufferPool.h" +#include "threading.h" + +#define JITTER_SLOT_COUNT 64 +#define JITTER_SLOT_SIZE 1024 +#define JR_OK 1 +#define JR_MISSING 2 +#define JR_BUFFERING 3 + +struct jitter_packet_t{ + unsigned char* buffer; + size_t size; + uint32_t timestamp; +}; +typedef struct jitter_packet_t jitter_packet_t; + +class CJitterBuffer{ +public: + CJitterBuffer(CMediaStreamItf* out, uint32_t step); + ~CJitterBuffer(); + void SetMinPacketCount(uint32_t count); + int GetMinPacketCount(); + int GetCurrentDelay(); + void Reset(); + void HandleInput(unsigned char* data, size_t len, uint32_t timestamp); + size_t HandleOutput(unsigned char* buffer, size_t len, int offsetInSteps); + void Tick(); + void GetAverageLateCount(double* out); + int GetAndResetLostPacketCount(); + +private: + static size_t CallbackIn(unsigned char* data, size_t len, void* param); + static size_t CallbackOut(unsigned char* data, size_t len, void* param); + void PutInternal(jitter_packet_t* pkt); + int GetInternal(jitter_packet_t* pkt, int offset); + void Advance(); + + CBufferPool bufferPool; + tgvoip_mutex_t mutex; + jitter_packet_t slots[JITTER_SLOT_COUNT]; + int64_t nextTimestamp; + uint32_t step; + uint32_t minDelay; + uint32_t minMinDelay; + uint32_t lastPutTimestamp; + int lostCount; + bool wasReset; + bool needBuffering; + int delayHistory[64]; + int lateHistory[64]; + bool adjustingDelay; + unsigned int tickCount; + unsigned int latePacketCount; + unsigned int dontIncMinDelay; + unsigned int dontDecMinDelay; + int lostPackets; +}; + + +#endif //LIBTGVOIP_JITTERBUFFER_H diff --git a/MediaStreamItf.cpp b/MediaStreamItf.cpp new file mode 100644 index 0000000000..94b51963d6 --- /dev/null +++ b/MediaStreamItf.cpp @@ -0,0 +1,17 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "MediaStreamItf.h" + + +void CMediaStreamItf::SetCallback(size_t (*f)(unsigned char *, size_t, void*), void* param){ + callback=f; + callbackParam=param; +} + +size_t CMediaStreamItf::InvokeCallback(unsigned char *data, size_t length){ + return (*callback)(data, length, callbackParam); +} diff --git a/MediaStreamItf.h b/MediaStreamItf.h new file mode 100644 index 0000000000..1abbf28750 --- /dev/null +++ b/MediaStreamItf.h @@ -0,0 +1,27 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_MEDIASTREAMINPUT_H +#define LIBTGVOIP_MEDIASTREAMINPUT_H + +#include + +class CMediaStreamItf{ +public: + virtual void Start()=0; + virtual void Stop()=0; + void SetCallback(size_t (*f)(unsigned char*, size_t, void*), void* param); + +//protected: + size_t InvokeCallback(unsigned char* data, size_t length); + +private: + size_t (*callback)(unsigned char*, size_t, void*); + void* callbackParam; +}; + + +#endif //LIBTGVOIP_MEDIASTREAMINPUT_H diff --git a/OpusDecoder.cpp b/OpusDecoder.cpp new file mode 100644 index 0000000000..da265b49a1 --- /dev/null +++ b/OpusDecoder.cpp @@ -0,0 +1,261 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "OpusDecoder.h" +#include "logging.h" +#include + +#define PACKET_SIZE (960*2) + +COpusDecoder::COpusDecoder(CMediaStreamItf *dst){ + //this->source=source; + dst->SetCallback(COpusDecoder::Callback, this); + dec=opus_decoder_create(48000, 1, NULL); + //test=fopen("/sdcard/test.raw", "wb"); + buffer=(unsigned char *) malloc(4096); + //lastDecoded=(unsigned char*) malloc(960*2); + lastDecoded=NULL; + lastDecodedLen=0; + outputBufferSize=0; + packetsNeeded=0; + lastDecodedOffset=0; + decodedQueue=new CBlockingQueue(32); + bufferPool=new CBufferPool(PACKET_SIZE, 32); + echoCanceller=NULL; + frameDuration=20; +} + +COpusDecoder::~COpusDecoder(){ + opus_decoder_destroy(dec); + free(buffer); + delete bufferPool; + delete decodedQueue; +} + + +void COpusDecoder::SetEchoCanceller(CEchoCanceller* canceller){ + echoCanceller=canceller; +} + +size_t COpusDecoder::Callback(unsigned char *data, size_t len, void *param){ + ((COpusDecoder*)param)->HandleCallback(data, len); + return 0; +} + +void COpusDecoder::HandleCallback(unsigned char *data, size_t len){ + if(!running){ + memset(data, 0, len); + return; + } + if(outputBufferSize==0){ + outputBufferSize=len; + if(len>PACKET_SIZE) + packetsNeeded=len/PACKET_SIZE; + else + packetsNeeded=1; + packetsNeeded*=2; + lock_mutex(mutex); + notify_lock(lock); + unlock_mutex(mutex); + } + assert(outputBufferSize==len && "output buffer size is supposed to be the same throughout callbacks"); + if(len>PACKET_SIZE){ + int count=len/PACKET_SIZE; + int i; + for(i=0;iGetBlocking(); + memcpy(data+(i*PACKET_SIZE), lastDecoded, PACKET_SIZE); + if(echoCanceller) + echoCanceller->SpeakerOutCallback(data, PACKET_SIZE); + bufferPool->Reuse(lastDecoded); + } + lock_mutex(mutex); + packetsNeeded+=count; + if(packetsNeeded>0) + notify_lock(lock); + unlock_mutex(mutex); + }else if(len==PACKET_SIZE){ + lastDecoded=(unsigned char*) decodedQueue->GetBlocking(); + memcpy(data, lastDecoded, PACKET_SIZE); + bufferPool->Reuse(lastDecoded); + lock_mutex(mutex); + packetsNeeded+=1; + if(packetsNeeded>0) + notify_lock(lock); + if(echoCanceller) + echoCanceller->SpeakerOutCallback(data, PACKET_SIZE); + unlock_mutex(mutex); + }else if(lenGetBlocking(); + } + + memcpy(data, lastDecoded+lastDecodedOffset, len); + lastDecodedOffset+=len; + + if(lastDecodedOffset>=PACKET_SIZE){ + if(echoCanceller) + echoCanceller->SpeakerOutCallback(lastDecoded, PACKET_SIZE); + lastDecodedOffset=0; + bufferPool->Reuse(lastDecoded); + //LOGV("before req packet, qsize=%d", decodedQueue->Size()); + lock_mutex(mutex); + if(decodedQueue->Size()==0) + packetsNeeded+=2; + else + packetsNeeded+=1; + if(packetsNeeded>0) + notify_lock(lock); + unlock_mutex(mutex); + } + } + /*if(lastDecodedLen){ + LOGV("ldl=%d, l=%d", lastDecodedLen, len); + if(len==PACKET_SIZE){ + memcpy(data, lastDecoded, len); + packetsNeeded=1; + }else if(len>PACKET_SIZE){ + memcpy(data, lastDecoded, len); + //LOGV("ldl=%d, l=%d", lastDecodedLen, len); + packetsNeeded=len/PACKET_SIZE; + }else if(len=PACKET_SIZE){ + packetsNeeded=1; + lastDecodedOffset=0; + } + } + }else{ + LOGW("skipping callback"); + if(len>PACKET_SIZE) + packetsNeeded=len/PACKET_SIZE; + else + packetsNeeded=1; + }*/ + /*if(packetsNeeded>0){ + lock_mutex(mutex); + notify_lock(lock); + unlock_mutex(mutex); + }*/ +} + + +void COpusDecoder::Start(){ + init_lock(lock); + init_mutex(mutex); + running=true; + start_thread(thread, COpusDecoder::StartThread, this); + set_thread_priority(thread, get_thread_max_priority()); + set_thread_name(thread, "opus_decoder"); +} + +void COpusDecoder::Stop(){ + if(!running) + return; + running=false; + lock_mutex(mutex); + notify_lock(lock); + unlock_mutex(mutex); + join_thread(thread); + free_lock(lock); + free_mutex(mutex); +} + + +void* COpusDecoder::StartThread(void *param){ + ((COpusDecoder*)param)->RunThread(); + return NULL; +} + +void COpusDecoder::RunThread(){ + //FILE* test=fopen("/sdcard/test.raw", "w"); + unsigned char nextBuffer[8192]; + unsigned char decodeBuffer[8192]; + int i; + int packetsPerFrame=frameDuration/20; + bool first=true; + LOGI("decoder: packets per frame %d", packetsPerFrame); + size_t nextLen=0; + while(running){ + lock_mutex(mutex); + if(packetsNeeded<=0) + wait_lock(lock, mutex); + unlock_mutex(mutex); + //LOGV("after wait, running=%d", running); + if(!running){ + //fclose(test); + //unlock_mutex(mutex); + LOGI("==== decoder exiting ===="); + return; + } + //LOGD("Will get %d packets", packetsNeeded); + //lastDecodedLen=0; + memcpy(buffer, nextBuffer, nextLen); + size_t inLen=nextLen; + //nextLen=InvokeCallback(nextBuffer, 8192); + nextLen=jitterBuffer->HandleOutput(nextBuffer, 8192, 0); + if(first){ + first=false; + continue; + } + //LOGV("Before decode, len=%d", inLen); + if(!inLen){ + LOGV("Trying to recover late packet"); + inLen=jitterBuffer->HandleOutput(buffer, 8192, -2); + if(inLen) + LOGV("Decoding late packet"); + } + int size; + if(inLen || nextLen) + size=opus_decode(dec, inLen ? buffer : nextBuffer, inLen ? inLen : nextLen, (opus_int16*) decodeBuffer, packetsPerFrame*960, inLen ? 0 : 1); + else{ // do packet loss concealment + size=opus_decode(dec, NULL, 0, (opus_int16 *) decodeBuffer, packetsPerFrame*960, 0); + LOGV("PLC"); + } + if(size<0) + LOGW("decoder: opus_decode error %d", size); + //LOGV("After decode, size=%d", size); + for(i=0;iGet(); + if(buf){ + if(size>0){ + memcpy(buf, decodeBuffer+(PACKET_SIZE*i), PACKET_SIZE); + }else{ + LOGE("Error decoding, result=%d", size); + memset(buf, 0, PACKET_SIZE); + } + decodedQueue->Put(buf); + }else{ + LOGW("decoder: no buffers left!"); + } + lock_mutex(mutex); + packetsNeeded--; + unlock_mutex(mutex); + //LOGD("packets needed: %d", packetsNeeded); + } + } +} + + +void COpusDecoder::SetFrameDuration(uint32_t duration){ + frameDuration=duration; +} + + +void COpusDecoder::ResetQueue(){ + /*lock_mutex(mutex); + packetsNeeded=0; + unlock_mutex(mutex); + while(decodedQueue->Size()>0){ + bufferPool->Reuse((unsigned char *) decodedQueue->Get()); + }*/ +} + + +void COpusDecoder::SetJitterBuffer(CJitterBuffer* jitterBuffer){ + this->jitterBuffer=jitterBuffer; +} diff --git a/OpusDecoder.h b/OpusDecoder.h new file mode 100644 index 0000000000..ce92452f9f --- /dev/null +++ b/OpusDecoder.h @@ -0,0 +1,56 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_OPUSDECODER_H +#define LIBTGVOIP_OPUSDECODER_H + + +#include "MediaStreamItf.h" +#include "opus.h" +#include "threading.h" +#include "BlockingQueue.h" +#include "BufferPool.h" +#include "EchoCanceller.h" +#include "JitterBuffer.h" +#include + +class COpusDecoder { +public: + virtual void Start(); + + virtual void Stop(); + + COpusDecoder(CMediaStreamItf* dst); + virtual ~COpusDecoder(); + void HandleCallback(unsigned char* data, size_t len); + void SetEchoCanceller(CEchoCanceller* canceller); + void SetFrameDuration(uint32_t duration); + void ResetQueue(); + void SetJitterBuffer(CJitterBuffer* jitterBuffer); + +private: + static size_t Callback(unsigned char* data, size_t len, void* param); + static void* StartThread(void* param); + void RunThread(); + OpusDecoder* dec; + CBlockingQueue* decodedQueue; + CBufferPool* bufferPool; + unsigned char* buffer; + unsigned char* lastDecoded; + size_t lastDecodedLen, lastDecodedOffset; + int packetsNeeded; + size_t outputBufferSize; + bool running; + tgvoip_thread_t thread; + tgvoip_lock_t lock; + tgvoip_mutex_t mutex; + uint32_t frameDuration; + CEchoCanceller* echoCanceller; + CJitterBuffer* jitterBuffer; +}; + + +#endif //LIBTGVOIP_OPUSDECODER_H diff --git a/OpusEncoder.cpp b/OpusEncoder.cpp new file mode 100644 index 0000000000..36e09a282b --- /dev/null +++ b/OpusEncoder.cpp @@ -0,0 +1,144 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "OpusEncoder.h" +#include +#include "logging.h" + +COpusEncoder::COpusEncoder(CMediaStreamItf *source):queue(10), bufferPool(960*2, 10){ + this->source=source; + source->SetCallback(COpusEncoder::Callback, this); + enc=opus_encoder_create(48000, 1, OPUS_APPLICATION_VOIP, NULL); + opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); + opus_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(15)); + opus_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); + opus_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); + //opus_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); + requestedBitrate=32000; + currentBitrate=0; + running=false; + echoCanceller=NULL; + complexity=10; + frameDuration=20; +} + +COpusEncoder::~COpusEncoder(){ + opus_encoder_destroy(enc); +} + +void COpusEncoder::Start(){ + if(running) + return; + running=true; + start_thread(thread, StartThread, this); + set_thread_priority(thread, get_thread_max_priority()); + set_thread_name(thread, "opus_encoder"); +} + +void COpusEncoder::Stop(){ + if(!running) + return; + running=false; + queue.Put(NULL); + join_thread(thread); +} + + +void COpusEncoder::SetBitrate(uint32_t bitrate){ + requestedBitrate=bitrate; +} + +void COpusEncoder::Encode(unsigned char *data, size_t len){ + if(requestedBitrate!=currentBitrate){ + opus_encoder_ctl(enc, OPUS_SET_BITRATE(requestedBitrate)); + currentBitrate=requestedBitrate; + LOGV("opus_encoder: setting bitrate to %u", currentBitrate); + } + int32_t r=opus_encode(enc, (int16_t*)data, len/2, buffer, 4096); + if(r<=0){ + LOGE("Error encoding: %d", r); + }else if(r==1){ + LOGW("DTX"); + }else if(running){ + //LOGV("Packet size = %d", r); + InvokeCallback(buffer, (size_t)r); + } +} + +size_t COpusEncoder::Callback(unsigned char *data, size_t len, void* param){ + COpusEncoder* e=(COpusEncoder*)param; + unsigned char* buf=e->bufferPool.Get(); + if(buf){ + assert(len==960*2); + memcpy(buf, data, 960*2); + e->queue.Put(buf); + }else{ + LOGW("opus_encoder: no buffer slots left"); + if(e->complexity>1){ + e->complexity--; + opus_encoder_ctl(e->enc, OPUS_SET_COMPLEXITY(e->complexity)); + } + } + return 0; +} + + +uint32_t COpusEncoder::GetBitrate(){ + return requestedBitrate; +} + +void COpusEncoder::SetEchoCanceller(CEchoCanceller* aec){ + echoCanceller=aec; +} + +void* COpusEncoder::StartThread(void* arg){ + ((COpusEncoder*)arg)->RunThread(); + return NULL; +} + +void COpusEncoder::RunThread(){ + unsigned char buf[960*2]; + uint32_t bufferedCount=0; + uint32_t packetsPerFrame=frameDuration/20; + LOGV("starting decoder, packets per frame=%d", packetsPerFrame); + unsigned char* frame; + if(packetsPerFrame>1) + frame=(unsigned char *) malloc(960*2*packetsPerFrame); + else + frame=NULL; + while(running){ + unsigned char* packet=(unsigned char*)queue.GetBlocking(); + if(packet){ + if(echoCanceller) + echoCanceller->ProcessInput(packet, buf, 960*2); + else + memcpy(buf, packet, 960*2); + if(packetsPerFrame==1){ + Encode(buf, 960*2); + }else{ + memcpy(frame+(960*2*bufferedCount), buf, 960*2); + bufferedCount++; + if(bufferedCount==packetsPerFrame){ + Encode(frame, 960*2*packetsPerFrame); + bufferedCount=0; + } + } + bufferPool.Reuse(packet); + } + } + if(frame) + free(frame); +} + + +void COpusEncoder::SetOutputFrameDuration(uint32_t duration){ + frameDuration=duration; +} + + +void COpusEncoder::SetPacketLoss(int percent){ + opus_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(percent)); +} diff --git a/OpusEncoder.h b/OpusEncoder.h new file mode 100644 index 0000000000..4e082926f8 --- /dev/null +++ b/OpusEncoder.h @@ -0,0 +1,52 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_OPUSENCODER_H +#define LIBTGVOIP_OPUSENCODER_H + + +#include "MediaStreamItf.h" +#include "opus.h" +#include "threading.h" +#include "BlockingQueue.h" +#include "BufferPool.h" +#include "EchoCanceller.h" + +#include + +class COpusEncoder : public CMediaStreamItf{ +public: + COpusEncoder(CMediaStreamItf* source); + virtual ~COpusEncoder(); + virtual void Start(); + virtual void Stop(); + void SetBitrate(uint32_t bitrate); + void SetEchoCanceller(CEchoCanceller* aec); + void SetOutputFrameDuration(uint32_t duration); + void SetPacketLoss(int percent); + uint32_t GetBitrate(); + +private: + static size_t Callback(unsigned char* data, size_t len, void* param); + static void* StartThread(void* arg); + void RunThread(); + void Encode(unsigned char* data, size_t len); + CMediaStreamItf* source; + OpusEncoder* enc; + unsigned char buffer[4096]; + uint32_t requestedBitrate; + uint32_t currentBitrate; + tgvoip_thread_t thread; + CBlockingQueue queue; + CBufferPool bufferPool; + CEchoCanceller* echoCanceller; + int complexity; + bool running; + uint32_t frameDuration; +}; + + +#endif //LIBTGVOIP_OPUSENCODER_H diff --git a/UNLICENSE b/UNLICENSE new file mode 100644 index 0000000000..00d2e135a7 --- /dev/null +++ b/UNLICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to \ No newline at end of file diff --git a/VoIPController.cpp b/VoIPController.cpp new file mode 100644 index 0000000000..600b8b45bc --- /dev/null +++ b/VoIPController.cpp @@ -0,0 +1,1823 @@ +#include +#include +#include +#include +#include "VoIPController.h" +#include "logging.h" +#include "threading.h" +#include "BufferOutputStream.h" +#include "BufferInputStream.h" +#include "OpusEncoder.h" +#include "OpusDecoder.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __APPLE__ +#include +double CVoIPController::machTimebase=0; +uint64_t CVoIPController::machTimestart=0; +#endif + +#define SHA1_LENGTH 20 +#define SHA256_LENGTH 32 + +#ifndef USE_CUSTOM_CRYPTO +#include +#include +#include + +void tgvoip_openssl_aes_ige_encrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){ + AES_KEY akey; + AES_set_encrypt_key(key, 32*8, &akey); + AES_ige_encrypt(in, out, length, &akey, iv, AES_ENCRYPT); +} + +void tgvoip_openssl_aes_ige_decrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){ + AES_KEY akey; + AES_set_decrypt_key(key, 32*8, &akey); + AES_ige_encrypt(in, out, length, &akey, iv, AES_DECRYPT); +} + +void tgvoip_openssl_rand_bytes(uint8_t* buffer, size_t len){ + RAND_bytes(buffer, len); +} + +void tgvoip_openssl_sha1(uint8_t* msg, size_t len, uint8_t* output){ + SHA1(msg, len, output); +} + +void tgvoip_openssl_sha256(uint8_t* msg, size_t len, uint8_t* output){ + SHA256(msg, len, output); +} + +voip_crypto_functions_t CVoIPController::crypto={ + tgvoip_openssl_rand_bytes, + tgvoip_openssl_sha1, + tgvoip_openssl_sha256, + tgvoip_openssl_aes_ige_encrypt, + tgvoip_openssl_aes_ige_decrypt + +}; +#else +voip_crypto_functions_t CVoIPController::crypto; // set it yourself upon initialization +#endif + +CVoIPController::CVoIPController(){ + seq=1; + lastRemoteSeq=0; + state=STATE_WAIT_INIT; + audioInput=NULL; + audioOutput=NULL; + decoder=NULL; + encoder=NULL; + jitterBuffer=NULL; + audioOutStarted=false; + audioTimestampIn=0; + audioTimestampOut=0; + stopping=false; + int i; + for(i=0;i<20;i++){ + emptySendBuffers.push_back(new CBufferOutputStream(1024)); + } + sendQueue=new CBlockingQueue(20); + init_mutex(sendBufferMutex); + memset(remoteAcks, 0, sizeof(double)*32); + memset(sentPacketTimes, 0, sizeof(double)*32); + memset(recvPacketTimes, 0, sizeof(double)*32); + memset(rttHistory, 0, sizeof(double)*32); + memset(sendLossCountHistory, 0, sizeof(uint32_t)*32); + memset(&stats, 0, sizeof(voip_stats_t)); + lastRemoteAckSeq=0; + lastSentSeq=0; + recvLossCount=0; + packetsRecieved=0; + waitingForAcks=false; + networkType=NET_TYPE_UNKNOWN; + audioPacketGrouping=3; + audioPacketsWritten=0; + currentAudioPacket=NULL; + stateCallback=NULL; + echoCanceller=NULL; + dontSendPackets=0; + micMuted=false; + currentEndpoint=NULL; + needSendP2pPing=false; + waitingForRelayPeerInfo=false; + lastP2pPingTime=0; + p2pPingCount=0; + allowP2p=true; + dataSavingMode=false; + memset(activeNetItfName, 0, 32); + publicEndpointsReqTime=0; + init_mutex(queuedPacketsMutex); + connectionInitTime=0; + lastRecvPacketTime=0; + dataSavingRequestedByPeer=false; + peerVersion=0; + conctl=new CCongestionControl(); + prevSendLossCount=0; + enableAEC=true; + +#ifdef __APPLE__ + machTimestart=0; +#endif + + voip_stream_t* stm=(voip_stream_t *) malloc(sizeof(voip_stream_t)); + stm->id=1; + stm->type=STREAM_TYPE_AUDIO; + stm->codec=CODEC_OPUS; + stm->enabled=1; + stm->frameDuration=60; + outgoingStreams.push_back(stm); +} + +CVoIPController::~CVoIPController(){ + LOGD("Entered CVoIPController::~CVoIPController"); + if(audioInput) + audioInput->Stop(); + if(audioOutput) + audioOutput->Stop(); + stopping=true; + runReceiver=false; + LOGD("before shutdown socket"); + shutdown(udpSocket, SHUT_RDWR); + sendQueue->Put(NULL); + close(udpSocket); + LOGD("before join sendThread"); + join_thread(sendThread); + LOGD("before join recvThread"); + join_thread(recvThread); + LOGD("before join tickThread"); + join_thread(tickThread); + free_mutex(sendBufferMutex); + LOGD("before close socket"); + LOGD("before free send buffers"); + while(emptySendBuffers.size()>0){ + delete emptySendBuffers[emptySendBuffers.size()-1]; + emptySendBuffers.pop_back(); + } + while(sendQueue->Size()>0){ + void* p=sendQueue->Get(); + if(p) + delete (CBufferOutputStream*)p; + } + LOGD("before delete jitter buffer"); + if(jitterBuffer){ + delete jitterBuffer; + } + LOGD("before stop decoder"); + if(decoder){ + decoder->Stop(); + } + LOGD("before delete audio input"); + if(audioInput){ + delete audioInput; + } + LOGD("before delete encoder"); + if(encoder){ + encoder->Stop(); + delete encoder; + } + LOGD("before delete audio output"); + if(audioOutput){ + delete audioOutput; + } + LOGD("before delete decoder"); + if(decoder){ + delete decoder; + } + LOGD("before delete echo canceller"); + if(echoCanceller){ + echoCanceller->Stop(); + delete echoCanceller; + } + delete sendQueue; + int i; + for(i=0;idata) + free(queuedPackets[i]->data); + free(queuedPackets[i]); + } + delete conctl; + LOGD("Left CVoIPController::~CVoIPController"); +} + +void CVoIPController::SetRemoteEndpoints(voip_endpoint_t* endpoints, size_t count, bool allowP2p){ + LOGW("Set remote endpoints"); + assert(count>0); + preferredRelay=NULL; + size_t i; + for(i=0;i_averageRtt=0; + ep->_lastPingTime=0; + memset(ep->_rtts, 0, sizeof(double)*6); + this->endpoints.push_back(ep); + if(ep->type==EP_TYPE_UDP_RELAY && !preferredRelay) + preferredRelay=ep; + } + currentEndpoint=this->endpoints[0]; + this->allowP2p=allowP2p; +} + +void* CVoIPController::StartRecvThread(void* controller){ + ((CVoIPController*)controller)->RunRecvThread(); + return NULL; +} + +void* CVoIPController::StartSendThread(void* controller){ + ((CVoIPController*)controller)->RunSendThread(); + return NULL; +} + + +void* CVoIPController::StartTickThread(void* controller){ + ((CVoIPController*) controller)->RunTickThread(); + return NULL; +} + + +void CVoIPController::Start(){ + int res; + LOGW("Starting voip controller"); + udpSocket=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if(udpSocket<0){ + LOGE("error creating socket: %d / %s", errno, strerror(errno)); + } +#ifdef __APPLE__ + int prio=NET_SERVICE_TYPE_VO; + res=setsockopt(udpSocket, SOL_SOCKET, SO_NET_SERVICE_TYPE, &prio, sizeof(prio)); + if(res<0){ + LOGE("error setting darwin-specific net priority: %d / %s", errno, strerror(errno)); + } +#else + int prio=5; + res=setsockopt(udpSocket, SOL_SOCKET, SO_PRIORITY, &prio, sizeof(prio)); + if(res<0){ + LOGE("error setting priority: %d / %s", errno, strerror(errno)); + } + prio<<=5; + res=setsockopt(udpSocket, SOL_IP, IP_TOS, &prio, sizeof(prio)); + if(res<0){ + LOGE("error setting ip tos: %d / %s", errno, strerror(errno)); + } +#endif + sockaddr_in addr; + addr.sin_addr.s_addr=0; + //addr.sin_port=htons(3497); + addr.sin_port=0; + addr.sin_family=AF_INET; + res=bind(udpSocket, (sockaddr*)&addr, sizeof(sockaddr_in)); + if(res<0){ + LOGE("error binding: %d / %s", errno, strerror(errno)); + } + size_t addrLen=sizeof(sockaddr_in); + getsockname(udpSocket, (sockaddr*)&addr, (socklen_t*) &addrLen); + localUdpPort=ntohs(addr.sin_port); + LOGD("Bound to local UDP port %u", addr.sin_port); + + SendPacket(NULL, 0, currentEndpoint); + + runReceiver=true; + start_thread(recvThread, StartRecvThread, this); + set_thread_priority(recvThread, get_thread_max_priority()); + set_thread_name(recvThread, "voip-recv"); + start_thread(sendThread, StartSendThread, this); + set_thread_priority(sendThread, get_thread_max_priority()); + set_thread_name(sendThread, "voip-send"); + start_thread(tickThread, StartTickThread, this); + set_thread_priority(tickThread, get_thread_max_priority()); + set_thread_name(tickThread, "voip-tick"); +} + +size_t CVoIPController::AudioInputCallback(unsigned char* data, size_t length, void* param){ + ((CVoIPController*)param)->HandleAudioInput(data, length); + return 0; +} + +void CVoIPController::HandleAudioInput(unsigned char *data, size_t len){ + if(stopping) + return; + if(waitingForAcks || dontSendPackets>0){ + LOGV("waiting for RLC, dropping outgoing audio packet"); + return; + } + int audioPacketGrouping=1; + CBufferOutputStream* pkt=NULL; + if(audioPacketsWritten==0){ + pkt=GetOutgoingPacketBuffer(); + if(!pkt){ + LOGW("Dropping data packet, queue overflow"); + return; + } + currentAudioPacket=pkt; + }else{ + pkt=currentAudioPacket; + } + unsigned char flags=(unsigned char) (len>255 ? STREAM_DATA_FLAG_LEN16 : 0); + pkt->WriteByte((unsigned char) (1 | flags)); // streamID + flags + if(len>255) + pkt->WriteInt16((int16_t)len); + else + pkt->WriteByte((unsigned char)len); + pkt->WriteInt32(audioTimestampOut); + pkt->WriteBytes((char *) data, len); + audioPacketsWritten++; + if(audioPacketsWritten>=audioPacketGrouping){ + uint32_t pl=pkt->GetLength(); + char tmp[pl]; + memcpy(tmp, pkt->GetBuffer(), pl); + pkt->Reset(); + unsigned char type; + switch(audioPacketGrouping){ + case 2: + type=PKT_STREAM_DATA_X2; + break; + case 3: + type=PKT_STREAM_DATA_X3; + break; + default: + type=PKT_STREAM_DATA; + break; + } + WritePacketHeader(pkt, type, pl); + pkt->WriteBytes(tmp, pl); + //LOGI("payload size %u", pl); + if(pl<253) + pl+=1; + for(;pl%4>0;pl++) + pkt->WriteByte(0); + sendQueue->Put(pkt); + audioPacketsWritten=0; + } + audioTimestampOut+=outgoingStreams[0]->frameDuration; +} + +void CVoIPController::Connect(){ + assert(state!=STATE_WAIT_INIT_ACK); + connectionInitTime=GetCurrentTime(); + SendInit(); +} + + +void CVoIPController::SetEncryptionKey(char *key){ + memcpy(encryptionKey, key, 256); + uint8_t sha1[SHA1_LENGTH]; + crypto.sha1((uint8_t*) encryptionKey, 256, sha1); + memcpy(keyFingerprint, sha1+(SHA1_LENGTH-8), 8); + uint8_t sha256[SHA256_LENGTH]; + crypto.sha256((uint8_t*) encryptionKey, 256, sha256); + memcpy(callID, sha256+(SHA256_LENGTH-16), 16); +} + +uint32_t CVoIPController::WritePacketHeader(CBufferOutputStream *s, unsigned char type, uint32_t length){ + uint32_t acks=0; + int i; + for(i=0;i<32;i++){ + if(recvPacketTimes[i]>0) + acks|=1; + if(i<31) + acks<<=1; + } + + uint32_t pseq=seq++; + + if(state==STATE_WAIT_INIT || state==STATE_WAIT_INIT_ACK){ + s->WriteInt32(TLID_DECRYPTED_AUDIO_BLOCK); + int64_t randomID; + crypto.rand_bytes((uint8_t *) &randomID, 8); + s->WriteInt64(randomID); + unsigned char randBytes[7]; + crypto.rand_bytes(randBytes, 7); + s->WriteByte(7); + s->WriteBytes((char *) randBytes, 7); + uint32_t pflags=PFLAG_HAS_RECENT_RECV | PFLAG_HAS_SEQ; + if(length>0) + pflags|=PFLAG_HAS_DATA; + if(state==STATE_WAIT_INIT || state==STATE_WAIT_INIT_ACK){ + pflags|=PFLAG_HAS_CALL_ID | PFLAG_HAS_PROTO; + } + pflags|=((uint32_t) type) << 24; + s->WriteInt32(pflags); + + if(pflags & PFLAG_HAS_CALL_ID){ + s->WriteBytes(callID, 16); + } + s->WriteInt32(lastRemoteSeq); + s->WriteInt32(pseq); + s->WriteInt32(acks); + if(pflags & PFLAG_HAS_PROTO){ + s->WriteInt32(PROTOCOL_NAME); + } + if(length>0){ + if(length<=253){ + s->WriteByte((unsigned char) length); + }else{ + s->WriteByte(254); + s->WriteByte((unsigned char) (length & 8)); + s->WriteByte((unsigned char) ((length >> 8) & 8)); + s->WriteByte((unsigned char) ((length >> 16) & 8)); + } + } + }else{ + s->WriteInt32(TLID_SIMPLE_AUDIO_BLOCK); + int64_t randomID; + crypto.rand_bytes((uint8_t *) &randomID, 8); + s->WriteInt64(randomID); + unsigned char randBytes[7]; + crypto.rand_bytes(randBytes, 7); + s->WriteByte(7); + s->WriteBytes((char *) randBytes, 7); + uint32_t lenWithHeader=length+13; + if(lenWithHeader>0){ + if(lenWithHeader<=253){ + s->WriteByte((unsigned char) lenWithHeader); + }else{ + s->WriteByte(254); + s->WriteByte((unsigned char) (lenWithHeader & 8)); + s->WriteByte((unsigned char) ((lenWithHeader >> 8) & 8)); + s->WriteByte((unsigned char) ((lenWithHeader >> 16) & 8)); + } + } + s->WriteByte(type); + s->WriteInt32(lastRemoteSeq); + s->WriteInt32(pseq); + s->WriteInt32(acks); + } + + if(type==PKT_STREAM_DATA || type==PKT_STREAM_DATA_X2 || type==PKT_STREAM_DATA_X3) + conctl->PacketSent(pseq, length); + + memmove(&sentPacketTimes[1], sentPacketTimes, 31*sizeof(double)); + sentPacketTimes[0]=GetCurrentTime(); + lastSentSeq=pseq; + //LOGI("packet header size %d", s->GetLength()); + + return pseq; +} + + +void CVoIPController::UpdateAudioBitrate(){ + if(encoder){ + if(networkType==NET_TYPE_GPRS || dataSavingMode || dataSavingRequestedByPeer) + encoder->SetBitrate(maxBitrate=8000); + else if(networkType==NET_TYPE_EDGE){ + maxBitrate=16000; + encoder->SetBitrate(8000); + }else{ + maxBitrate=25000; + encoder->SetBitrate(16000); + } + } +} + + +void CVoIPController::SendInit(){ + CBufferOutputStream* out=new CBufferOutputStream(1024); + WritePacketHeader(out, PKT_INIT, 15); + out->WriteInt32(PROTOCOL_VERSION); + out->WriteInt32(MIN_PROTOCOL_VERSION); + uint32_t flags=0; + if(dataSavingMode) + flags|=INIT_FLAG_DATA_SAVING_ENABLED; + out->WriteInt32(flags); + out->WriteByte(1); // audio codecs count + out->WriteByte(CODEC_OPUS); + out->WriteByte(0); // video codecs count + SendPacket(out->GetBuffer(), out->GetLength(), currentEndpoint); + SetState(STATE_WAIT_INIT_ACK); + delete out; +} + +void CVoIPController::SendInitAck(){ + +} + +void CVoIPController::RunRecvThread(){ + LOGI("Receive thread starting"); + char buffer[1024]; + sockaddr_in srcAddr; + int addrLen; + while(runReceiver){ + //LOGI("Before recv"); + addrLen=sizeof(sockaddr_in); + ssize_t len=recvfrom(udpSocket, buffer, 1024, 0, (sockaddr *) &srcAddr, (socklen_t *) &addrLen); + //LOGV("Received %d bytes from %s:%d at %.5lf", len, inet_ntoa(srcAddr.sin_addr), ntohs(srcAddr.sin_port), GetCurrentTime()); + voip_endpoint_t* srcEndpoint=NULL; + int _i; + for(_i=0;_iaddress.s_addr==srcAddr.sin_addr.s_addr && endpoints[_i]->port==ntohs(srcAddr.sin_port)){ + srcEndpoint=endpoints[_i]; + break; + } + } + if(!srcEndpoint){ + LOGW("Received a packet from unknown source %s:%u", inet_ntoa(srcAddr.sin_addr), ntohs(srcAddr.sin_port)); + continue; + } + if(len<=0){ + LOGW("error receiving: %d / %s", errno, strerror(errno)); + continue; + } + if(IS_MOBILE_NETWORK(networkType)) + stats.bytesRecvdMobile+=(uint64_t)len; + else + stats.bytesRecvdWifi+=(uint64_t)len; + CBufferInputStream* in=new CBufferInputStream(buffer, (size_t)len); + if(memcmp(buffer, srcEndpoint->type==EP_TYPE_UDP_RELAY ? srcEndpoint->peerTag : callID, 16)!=0){ + LOGW("Received packet has wrong peerTag"); + delete in; + continue; + } + in->Seek(16); + if(waitingForRelayPeerInfo && in->Remaining()>=32){ + bool isPublicIpResponse=true; + int i; + for(i=0;i<12;i++){ + if((unsigned char)buffer[in->GetOffset()+i]!=0xFF){ + isPublicIpResponse=false; + break; + } + } + + if(isPublicIpResponse){ + waitingForRelayPeerInfo=false; + in->Seek(in->GetOffset()+12); + uint32_t tlid=(uint32_t) in->ReadInt32(); + if(tlid==TLID_UDP_REFLECTOR_PEER_INFO){ + uint32_t myAddr=(uint32_t) in->ReadInt32(); + uint32_t myPort=(uint32_t) in->ReadInt32(); + uint32_t peerAddr=(uint32_t) in->ReadInt32(); + uint32_t peerPort=(uint32_t) in->ReadInt32(); + voip_endpoint_t* p2pEndpoint=NULL; + for(i=0;itype==EP_TYPE_UDP_P2P_INET){ + p2pEndpoint=endpoints[i]; + break; + } + } + if(!p2pEndpoint){ + p2pEndpoint=(voip_endpoint_t *) malloc(sizeof(voip_endpoint_t)); + endpoints.push_back(p2pEndpoint); + } + memset(p2pEndpoint, 0, sizeof(voip_endpoint_t)); + p2pEndpoint->type=EP_TYPE_UDP_P2P_INET; + p2pEndpoint->port=peerPort; + p2pEndpoint->address.s_addr=peerAddr;//ntohl(peerAddr); + LOGW("Received reflector peer info, my=%08X:%u, peer=%08X:%u", myAddr, myPort, peerAddr, peerPort); + if(myAddr==peerAddr){ + LOGW("Detected LAN"); + in_addr lanAddr; + GetLocalNetworkItfInfo(&lanAddr, NULL); + CBufferOutputStream* pkt=GetOutgoingPacketBuffer(); + if(pkt){ + WritePacketHeader(pkt, PKT_LAN_ENDPOINT, 8); + pkt->WriteInt32(lanAddr.s_addr); + pkt->WriteInt32(localUdpPort); + sendQueue->Put(pkt); + } + }else{ + for(i=0;itype==EP_TYPE_UDP_P2P_LAN){ + free(endpoints[i]); + endpoints.erase(endpoints.begin()+i); + break; + } + } + } + p2pPingCount=0; + lastP2pPingTime=0; + needSendP2pPing=true; + }else{ + LOGE("It looks like a reflector response but tlid is %08X, expected %08X", tlid, TLID_UDP_REFLECTOR_PEER_INFO); + } + delete in; + continue; + } + } + if(in->Remaining()<40){ + delete in; + continue; + } + + unsigned char fingerprint[8], msgHash[16]; + in->ReadBytes((char *) fingerprint, 8); + in->ReadBytes((char *) msgHash, 16); + if(memcmp(fingerprint, keyFingerprint, 8)!=0){ + LOGW("Received packet has wrong key fingerprint"); + delete in; + continue; + } + unsigned char key[32], iv[32]; + KDF(msgHash, key, iv); + unsigned char aesOut[in->Remaining()]; + crypto.aes_ige_decrypt((unsigned char *) buffer+in->GetOffset(), aesOut, in->Remaining(), key, iv); + memcpy(buffer+in->GetOffset(), aesOut, in->Remaining()); + unsigned char sha[SHA1_LENGTH]; + int32_t _len=in->ReadInt32(); + crypto.sha1((uint8_t *) (buffer+in->GetOffset()-4), (size_t) (_len+4), sha); + if(memcmp(msgHash, sha+(SHA1_LENGTH-16), 16)!=0){ + LOGW("Received packet has wrong hash after decryption"); + delete in; + continue; + } + + lastRecvPacketTime=GetCurrentTime(); + + + try{ + /*decryptedAudioBlock random_id:long random_bytes:string flags:# voice_call_id:flags.2?int128 in_seq_no:flags.4?int out_seq_no:flags.4?int + * recent_received_mask:flags.5?int proto:flags.3?int extra:flags.1?string raw_data:flags.0?string = DecryptedAudioBlock +simpleAudioBlock random_id:long random_bytes:string raw_data:string = DecryptedAudioBlock; +*/ + uint32_t ackId, pseq, acks; + unsigned char type; + uint32_t tlid=(uint32_t) in->ReadInt32(); + uint32_t packetInnerLen; + if(tlid==TLID_DECRYPTED_AUDIO_BLOCK){ + in->ReadInt64(); // random id + uint32_t randLen=(uint32_t) in->ReadTlLength(); + in->Seek(in->GetOffset()+randLen+(randLen+(randLen<=253 ? 1 : 0))%4); + uint32_t flags=(uint32_t) in->ReadInt32(); + type=(unsigned char) ((flags >> 24) & 0xFF); + if(!(flags & PFLAG_HAS_SEQ && flags & PFLAG_HAS_RECENT_RECV)){ + LOGW("Received packet doesn't have PFLAG_HAS_SEQ, PFLAG_HAS_RECENT_RECV, or both"); + delete in; + continue; + } + if(flags & PFLAG_HAS_CALL_ID){ + unsigned char pktCallID[16]; + in->ReadBytes((char *) pktCallID, 16); + } + ackId=(uint32_t) in->ReadInt32(); + pseq=(uint32_t) in->ReadInt32(); + acks=(uint32_t) in->ReadInt32(); + if(flags & PFLAG_HAS_PROTO){ + uint32_t proto=(uint32_t) in->ReadInt32(); + if(proto!=PROTOCOL_NAME){ + LOGW("Received packet uses wrong protocol"); + delete in; + lastError=ERROR_INCOMPATIBLE; + SetState(STATE_FAILED); + return; + } + } + if(flags & PFLAG_HAS_EXTRA){ + uint32_t extraLen=(uint32_t) in->ReadTlLength(); + in->Seek(in->GetOffset()+extraLen+(extraLen+(extraLen<=253 ? 1 : 0))%4); + } + if(flags & PFLAG_HAS_DATA){ + packetInnerLen=in->ReadTlLength(); + } + }else if(tlid==TLID_SIMPLE_AUDIO_BLOCK){ + in->ReadInt64(); // random id + uint32_t randLen=(uint32_t) in->ReadTlLength(); + in->Seek(in->GetOffset()+randLen+(randLen+(randLen<=253 ? 1 : 0))%4); + packetInnerLen=in->ReadTlLength(); + type=in->ReadByte(); + ackId=(uint32_t) in->ReadInt32(); + pseq=(uint32_t) in->ReadInt32(); + acks=(uint32_t) in->ReadInt32(); + }else{ + LOGW("Received a packet of unknown type %08X", tlid); + delete in; + continue; + } + packetsRecieved++; + if(seqgt(pseq, lastRemoteSeq)){ + uint32_t diff=pseq-lastRemoteSeq; + if(diff>31){ + memset(recvPacketTimes, 0, 32*sizeof(double)); + }else{ + memmove(&recvPacketTimes[diff], recvPacketTimes, (32-diff)*sizeof(double)); + if(diff>1){ + memset(recvPacketTimes, 0, diff*sizeof(double)); + } + recvPacketTimes[0]=GetCurrentTime(); + } + lastRemoteSeq=pseq; + }else if(!seqgt(pseq, lastRemoteSeq) && lastRemoteSeq-pseq<32){ + if(recvPacketTimes[lastRemoteSeq-pseq]!=0){ + LOGW("Received duplicated packet for seq %u", pseq); + delete in; + continue; + } + recvPacketTimes[lastRemoteSeq-pseq]=GetCurrentTime(); + }else if(lastRemoteSeq-pseq>=32){ + LOGW("Packet %u is out of order and too late", pseq); + delete in; + continue; + } + if(seqgt(ackId, lastRemoteAckSeq)){ + uint32_t diff=ackId-lastRemoteAckSeq; + if(diff>31){ + memset(remoteAcks, 0, 32*sizeof(double)); + }else{ + memmove(&remoteAcks[diff], remoteAcks, (32-diff)*sizeof(double)); + if(diff>1){ + memset(remoteAcks, 0, diff*sizeof(double)); + } + remoteAcks[0]=GetCurrentTime(); + } + if(waitingForAcks && lastRemoteAckSeq>=firstSentPing){ + memset(rttHistory, 0, 32*sizeof(double)); + waitingForAcks=false; + dontSendPackets=10; + LOGI("resuming sending"); + } + lastRemoteAckSeq=ackId; + conctl->PacketAcknowledged(ackId); + int i; + for(i=0;i<31;i++){ + if(remoteAcks[i+1]==0){ + if((acks >> (31-i)) & 1){ + remoteAcks[i+1]=GetCurrentTime(); + conctl->PacketAcknowledged(ackId-(i+1)); + } + } + } + lock_mutex(queuedPacketsMutex); + for(i=0;iseqs[j]); + if(qp->seqs[j]==0) + break; + int remoteAcksIndex=lastRemoteAckSeq-qp->seqs[j]; + LOGV("remote acks index %u, value %llf", remoteAcksIndex, remoteAcksIndex>=0 && remoteAcksIndex<32 ? remoteAcks[remoteAcksIndex] : -1); + if(seqgt(lastRemoteAckSeq, qp->seqs[j]) && remoteAcksIndex>=0 && remoteAcksIndex<32 && remoteAcks[remoteAcksIndex]>0){ + LOGD("did ack seq %u, removing", qp->seqs[j]); + didAck=true; + break; + } + } + if(didAck){ + if(qp->data) + free(qp->data); + free(qp); + queuedPackets.erase(queuedPackets.begin()+i); + i--; + continue; + } + } + unlock_mutex(queuedPacketsMutex); + } + + if(srcEndpoint!=currentEndpoint && srcEndpoint->type==EP_TYPE_UDP_RELAY && currentEndpoint->type!=EP_TYPE_UDP_RELAY){ + if(seqgt(lastSentSeq-32, lastRemoteAckSeq)){ + currentEndpoint=srcEndpoint; + LOGI("Peer network address probably changed, switching to relay"); + if(allowP2p) + SendPublicEndpointsRequest(); + } + } + //LOGV("acks: %u -> %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf", lastRemoteAckSeq, remoteAcks[0], remoteAcks[1], remoteAcks[2], remoteAcks[3], remoteAcks[4], remoteAcks[5], remoteAcks[6], remoteAcks[7]); + //LOGD("recv: %u -> %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf, %.2lf", lastRemoteSeq, recvPacketTimes[0], recvPacketTimes[1], recvPacketTimes[2], recvPacketTimes[3], recvPacketTimes[4], recvPacketTimes[5], recvPacketTimes[6], recvPacketTimes[7]); + //LOGI("RTT = %.3lf", GetAverageRTT()); + //LOGV("Packet %u type is %d", pseq, type); + if(type==PKT_INIT){ + LOGD("Received init"); + + peerVersion=(uint32_t) in->ReadInt32(); + LOGI("Peer version is %d", peerVersion); + uint32_t minVer=(uint32_t) in->ReadInt32(); + if(minVer>PROTOCOL_VERSION || peerVersionReadInt32(); + if(flags & INIT_FLAG_DATA_SAVING_ENABLED){ + dataSavingRequestedByPeer=true; + UpdateDataSavingState(); + UpdateAudioBitrate(); + } + + int i; + int numSupportedAudioCodecs=in->ReadByte(); + for(i=0;iReadByte(); // ignore for now + } + int numSupportedVideoCodecs=in->ReadByte(); + for(i=0;iReadByte(); // ignore for now + } + + + CBufferOutputStream* out=new CBufferOutputStream(1024); + WritePacketHeader(out, PKT_INIT_ACK, (peerVersion>=2 ? 10 : 2)+(peerVersion>=2 ? 6 : 4)*outgoingStreams.size()); + if(peerVersion>=2){ + out->WriteInt32(PROTOCOL_VERSION); + out->WriteInt32(MIN_PROTOCOL_VERSION); + } + out->WriteByte((unsigned char) outgoingStreams.size()); + for(i=0;iWriteByte(outgoingStreams[i]->id); + out->WriteByte(outgoingStreams[i]->type); + out->WriteByte(outgoingStreams[i]->codec); + if(peerVersion>=2) + out->WriteInt16(outgoingStreams[i]->frameDuration); + else + outgoingStreams[i]->frameDuration=20; + out->WriteByte((unsigned char)(outgoingStreams[i]->enabled ? 1 : 0)); + } + SendPacket(out->GetBuffer(), out->GetLength(), currentEndpoint); + delete out; + } + if(type==PKT_INIT_ACK){ + LOGD("Received init ack"); + + if(packetInnerLen>10){ + peerVersion=in->ReadInt32(); + uint32_t minVer=(uint32_t) in->ReadInt32(); + if(minVer>PROTOCOL_VERSION || peerVersionReadByte(); + if(streamCount==0) + goto malformed_packet; + + int i; + voip_stream_t* incomingAudioStream=NULL; + for(i=0;iid=in->ReadByte(); + stm->type=in->ReadByte(); + stm->codec=in->ReadByte(); + if(peerVersion>=2) + stm->frameDuration=(uint16_t) in->ReadInt16(); + else + stm->frameDuration=20; + stm->enabled=in->ReadByte()==1; + incomingStreams.push_back(stm); + if(stm->type==STREAM_TYPE_AUDIO && !incomingAudioStream) + incomingAudioStream=stm; + } + if(!incomingAudioStream) + goto malformed_packet; + + voip_stream_t* outgoingAudioStream=outgoingStreams[0]; + + if(!audioInput){ + LOGI("before create audio io"); + audioInput=CAudioInput::Create(); + audioInput->Configure(48000, 16, 1); + audioOutput=CAudioOutput::Create(); + audioOutput->Configure(48000, 16, 1); + if(enableAEC) + echoCanceller=new CEchoCanceller(); + else + echoCanceller=NULL; + encoder=new COpusEncoder(audioInput); + encoder->SetCallback(AudioInputCallback, this); + encoder->SetOutputFrameDuration(outgoingAudioStream->frameDuration); + encoder->SetEchoCanceller(echoCanceller); + encoder->Start(); + if(!micMuted) + audioInput->Start(); + UpdateAudioBitrate(); + + jitterBuffer=new CJitterBuffer(NULL, incomingAudioStream->frameDuration); + decoder=new COpusDecoder(audioOutput); + decoder->SetEchoCanceller(echoCanceller); + decoder->SetJitterBuffer(jitterBuffer); + decoder->SetFrameDuration(incomingAudioStream->frameDuration); + decoder->Start(); + if(incomingAudioStream->frameDuration>50) + jitterBuffer->SetMinPacketCount(3); + else if(incomingAudioStream->frameDuration>30) + jitterBuffer->SetMinPacketCount(4); + //audioOutput->Start(); + } + SetState(STATE_ESTABLISHED); + if(allowP2p) + SendPublicEndpointsRequest(); + } + if(type==PKT_STREAM_DATA || type==PKT_STREAM_DATA_X2 || type==PKT_STREAM_DATA_X3){ + int count; + switch(type){ + case PKT_STREAM_DATA_X2: + count=2; + break; + case PKT_STREAM_DATA_X3: + count=3; + break; + case PKT_STREAM_DATA: + default: + count=1; + break; + } + int i; + for(i=0;iReadByte(); + unsigned char flags=(unsigned char) (streamID & 0xC0); + uint16_t sdlen=(uint16_t) (flags & STREAM_DATA_FLAG_LEN16 ? in->ReadInt16() : in->ReadByte()); + uint32_t pts=(uint32_t) in->ReadInt32(); + //LOGD("stream data, pts=%d, len=%d, rem=%d", pts, sdlen, in->Remaining()); + audioTimestampIn=pts; + if(!audioOutStarted && audioOutput){ + audioOutput->Start(); + audioOutStarted=true; + } + if(jitterBuffer) + jitterBuffer->HandleInput((unsigned char*) (buffer+in->GetOffset()), sdlen, pts); + if(iSeek(in->GetOffset()+sdlen); + } + } + if(type==PKT_PING){ + LOGD("Received ping from %s:%d", inet_ntoa(srcEndpoint->address), srcEndpoint->port); + if(srcEndpoint->type!=EP_TYPE_UDP_RELAY && !allowP2p){ + LOGW("Received p2p ping but p2p is disabled by manual override"); + delete in; + continue; + } + if(srcEndpoint==currentEndpoint){ + CBufferOutputStream *pkt=GetOutgoingPacketBuffer(); + if(!pkt){ + LOGW("Dropping pong packet, queue overflow"); + continue; + } + WritePacketHeader(pkt, PKT_PONG, 4); + pkt->WriteInt32(pseq); + sendQueue->Put(pkt); + }else{ + CBufferOutputStream pkt(32); + WritePacketHeader(&pkt, PKT_PONG, 4); + pkt.WriteInt32(pseq); + SendPacket(pkt.GetBuffer(), pkt.GetLength(), srcEndpoint); + } + } + if(type==PKT_PONG){ + if(packetInnerLen>=4){ + uint32_t pingSeq=(uint32_t) in->ReadInt32(); + if(pingSeq==srcEndpoint->_lastPingSeq){ + memmove(&srcEndpoint->_rtts[1], srcEndpoint->_rtts, sizeof(double)*5); + srcEndpoint->_rtts[0]=GetCurrentTime()-srcEndpoint->_lastPingTime; + int i; + srcEndpoint->_averageRtt=0; + for(i=0;i<6;i++){ + if(srcEndpoint->_rtts[i]==0) + break; + srcEndpoint->_averageRtt+=srcEndpoint->_rtts[i]; + } + srcEndpoint->_averageRtt/=i; + LOGD("Current RTT via %s: %.3llf, average: %.3llf", inet_ntoa(srcEndpoint->address), srcEndpoint->_rtts[0], srcEndpoint->_averageRtt); + } + } + /*if(currentEndpoint!=srcEndpoint && (srcEndpoint->type==EP_TYPE_UDP_P2P_INET || srcEndpoint->type==EP_TYPE_UDP_P2P_LAN)){ + LOGI("Switching to P2P now!"); + currentEndpoint=srcEndpoint; + needSendP2pPing=false; + }*/ + } + if(type==PKT_STREAM_STATE){ + unsigned char id=in->ReadByte(); + unsigned char enabled=in->ReadByte(); + int i; + for(i=0;iid==id){ + incomingStreams[i]->enabled=enabled==1; + UpdateAudioOutputState(); + break; + } + } + } + if(type==PKT_LAN_ENDPOINT){ + uint32_t peerAddr=(uint32_t) in->ReadInt32(); + uint16_t peerPort=(uint16_t) in->ReadInt32(); + voip_endpoint_t* p2pEndpoint=GetEndpointByType(EP_TYPE_UDP_P2P_LAN); + if(!p2pEndpoint){ + p2pEndpoint=(voip_endpoint_t *) malloc(sizeof(voip_endpoint_t)); + endpoints.push_back(p2pEndpoint); + } + memset(p2pEndpoint, 0, sizeof(voip_endpoint_t)); + p2pEndpoint->type=EP_TYPE_UDP_P2P_LAN; + p2pEndpoint->port=peerPort; + p2pEndpoint->address.s_addr=peerAddr;//ntohl(peerAddr); + } + if(type==PKT_NETWORK_CHANGED){ + currentEndpoint=preferredRelay; + if(allowP2p) + SendPublicEndpointsRequest(); + if(peerVersion>=2){ + uint32_t flags=(uint32_t) in->ReadInt32(); + dataSavingRequestedByPeer=(flags & INIT_FLAG_DATA_SAVING_ENABLED)==INIT_FLAG_DATA_SAVING_ENABLED; + UpdateDataSavingState(); + UpdateAudioBitrate(); + } + } + if(type==PKT_SWITCH_PREF_RELAY){ + uint64_t relayId=(uint64_t) in->ReadInt64(); + int i; + for(i=0;itype==EP_TYPE_UDP_RELAY && endpoints[i]->id==relayId){ + preferredRelay=endpoints[i]; + LOGD("Switching preferred relay to %s:%d", inet_ntoa(preferredRelay->address), preferredRelay->port); + break; + } + } + if(currentEndpoint->type==EP_TYPE_UDP_RELAY) + currentEndpoint=preferredRelay; + } + /*if(type==PKT_SWITCH_TO_P2P && allowP2p){ + voip_endpoint_t* p2p=GetEndpointByType(EP_TYPE_UDP_P2P_INET); + if(p2p){ + voip_endpoint_t* lan=GetEndpointByType(EP_TYPE_UDP_P2P_LAN); + if(lan && lan->_averageRtt>0){ + LOGI("Switching to p2p (LAN)"); + currentEndpoint=lan; + }else{ + if(lan) + lan->_lastPingTime=0; + if(p2p->_averageRtt>0){ + LOGI("Switching to p2p (Inet)"); + currentEndpoint=p2p; + }else{ + p2p->_lastPingTime=0; + } + } + } + }*/ + }catch(std::out_of_range x){ + LOGW("Error parsing packet: %s", x.what()); + } + malformed_packet: + delete in; + } + LOGI("=== recv thread exiting ==="); +} + +void CVoIPController::RunSendThread(){ + while(runReceiver){ + CBufferOutputStream* pkt=(CBufferOutputStream *) sendQueue->GetBlocking(); + if(pkt){ + SendPacket(pkt->GetBuffer(), pkt->GetLength(), currentEndpoint); + pkt->Reset(); + lock_mutex(sendBufferMutex); + emptySendBuffers.push_back(pkt); + unlock_mutex(sendBufferMutex); + } + } + LOGI("=== send thread exiting ==="); +} + + +void CVoIPController::RunTickThread(){ + uint32_t tickCount=0; + bool wasWaitingForAcks=false; + while(runReceiver){ + usleep(100000); + tickCount++; + if(tickCount%5==0 && state==STATE_ESTABLISHED){ + memmove(&rttHistory[1], rttHistory, 31*sizeof(double)); + rttHistory[0]=GetAverageRTT(); + /*if(rttHistory[16]>0){ + LOGI("rtt diff: %.3lf", rttHistory[0]-rttHistory[16]); + }*/ + int i; + double v=0; + for(i=1;i<32;i++){ + v+=rttHistory[i-1]-rttHistory[i]; + } + v=v/32; + if(rttHistory[0]>10.0 && rttHistory[8]>10.0 && (networkType==NET_TYPE_EDGE || networkType==NET_TYPE_GPRS)){ + waitingForAcks=true; + }else{ + waitingForAcks=false; + } + if(waitingForAcks) + wasWaitingForAcks=false; + //LOGI("%.3lf/%.3lf, rtt diff %.3lf, waiting=%d, queue=%d", rttHistory[0], rttHistory[8], v, waitingForAcks, sendQueue->Size()); + if(jitterBuffer) + recvLossCount+=jitterBuffer->GetAndResetLostPacketCount(); + } + if(dontSendPackets>0) + dontSendPackets--; + + int i; + + conctl->Tick(); + + if(state==STATE_ESTABLISHED){ + int act=conctl->GetBandwidthControlAction(); + if(act==TGVOIP_CONCTL_ACT_DECREASE){ + uint32_t bitrate=encoder->GetBitrate(); + if(bitrate>8000) + encoder->SetBitrate(bitrate<9000 ? 8000 : (bitrate-1000)); + }else if(act==TGVOIP_CONCTL_ACT_INCREASE){ + uint32_t bitrate=encoder->GetBitrate(); + if(bitrateSetBitrate(bitrate+1000); + } + + if(tickCount%10==0 && encoder){ + uint32_t sendLossCount=conctl->GetSendLossCount(); + memmove(sendLossCountHistory+1, sendLossCountHistory, 31*sizeof(uint32_t)); + sendLossCountHistory[0]=sendLossCount-prevSendLossCount; + prevSendLossCount=sendLossCount; + double avgSendLossCount=0; + for(i=0;i<10;i++){ + avgSendLossCount+=sendLossCountHistory[i]; + } + double packetsPerSec=1000/(double)outgoingStreams[0]->frameDuration; + avgSendLossCount=avgSendLossCount/10/packetsPerSec; + //LOGV("avg send loss: %.1f%%", avgSendLossCount*100); + + if(avgSendLossCount>0.1){ + encoder->SetPacketLoss(40); + }else if(avgSendLossCount>0.075){ + encoder->SetPacketLoss(35); + }else if(avgSendLossCount>0.0625){ + encoder->SetPacketLoss(30); + }else if(avgSendLossCount>0.05){ + encoder->SetPacketLoss(25); + }else if(avgSendLossCount>0.025){ + encoder->SetPacketLoss(20); + }else if(avgSendLossCount>0.01){ + encoder->SetPacketLoss(17); + }else{ + encoder->SetPacketLoss(15); + } + } + } + + bool areThereAnyEnabledStreams=false; + + for(i=0;ienabled) + areThereAnyEnabledStreams=true; + } + + if((waitingForAcks && tickCount%10==0) || (!areThereAnyEnabledStreams && tickCount%2==0)){ + CBufferOutputStream* pkt=GetOutgoingPacketBuffer(); + if(!pkt){ + LOGW("Dropping ping packet, queue overflow"); + return; + } + uint32_t seq=WritePacketHeader(pkt, PKT_NOP, 0); + firstSentPing=seq; + sendQueue->Put(pkt); + LOGV("sent ping"); + } + + if(state==STATE_WAIT_INIT_ACK && GetCurrentTime()-stateChangeTime>.5){ + SendInit(); + } + + /*if(needSendP2pPing){ + if(GetCurrentTime()-lastP2pPingTime>2){ + if(p2pPingCount<10){ // try hairpin routing first, even if we have a LAN address + SendP2pPing(EP_TYPE_UDP_P2P_INET); + } + if(p2pPingCount>=5 && p2pPingCount<15){ // last resort to get p2p + SendP2pPing(EP_TYPE_UDP_P2P_LAN); + } + p2pPingCount++; + } + }*/ + + if(waitingForRelayPeerInfo && GetCurrentTime()-publicEndpointsReqTime>5){ + LOGD("Resending peer relay info request"); + SendPublicEndpointsRequest(); + } + + lock_mutex(queuedPacketsMutex); + for(i=0;itimeout>0 && qp->firstSentTime>0 && GetCurrentTime()-qp->firstSentTime>=qp->timeout){ + LOGD("Removing queued packet because of timeout"); + if(qp->data) + free(qp->data); + free(qp); + queuedPackets.erase(queuedPackets.begin()+i); + i--; + continue; + } + if(GetCurrentTime()-qp->lastSentTime>=qp->retryInterval){ + CBufferOutputStream* pkt=GetOutgoingPacketBuffer(); + if(pkt){ + uint32_t seq=WritePacketHeader(pkt, qp->type, qp->length); + memmove(&qp->seqs[1], qp->seqs, 4*9); + qp->seqs[0]=seq; + qp->lastSentTime=GetCurrentTime(); + LOGD("Sending queued packet, seq=%u, type=%u, len=%u", seq, qp->type, qp->length); + if(qp->firstSentTime==0) + qp->firstSentTime=qp->lastSentTime; + if(qp->length) + pkt->WriteBytes(qp->data, qp->length); + sendQueue->Put(pkt); + } + } + } + unlock_mutex(queuedPacketsMutex); + + if(jitterBuffer) + jitterBuffer->Tick(); + + if(state==STATE_ESTABLISHED){ + voip_endpoint_t* minPingRelay=preferredRelay; + double minPing=preferredRelay->_averageRtt; + for(i=0;i_lastPingTime>=10){ + LOGV("Sending ping to %s", inet_ntoa(e->address)); + CBufferOutputStream pkt(32); + uint32_t seq=WritePacketHeader(&pkt, PKT_PING, 0); + e->_lastPingTime=GetCurrentTime(); + e->_lastPingSeq=seq; + SendPacket(pkt.GetBuffer(), pkt.GetLength(), e); + } + if(e->type==EP_TYPE_UDP_RELAY){ + if(e->_averageRtt>0 && e->_averageRtt_averageRtt; + minPingRelay=e; + } + } + } + if(minPingRelay!=preferredRelay){ + preferredRelay=minPingRelay; + if(currentEndpoint->type==EP_TYPE_UDP_RELAY) + currentEndpoint=preferredRelay; + /*CBufferOutputStream pkt(32); + pkt.WriteInt64(preferredRelay->id); + SendPacketReliably(PKT_SWITCH_PREF_RELAY, pkt.GetBuffer(), pkt.GetLength(), 1, 9);*/ + } + if(currentEndpoint->type==EP_TYPE_UDP_RELAY){ + voip_endpoint_t *p2p=GetEndpointByType(EP_TYPE_UDP_P2P_INET); + if(p2p){ + voip_endpoint_t *lan=GetEndpointByType(EP_TYPE_UDP_P2P_LAN); + if(lan && lan->_averageRtt>0){ + SendPacketReliably(PKT_SWITCH_TO_P2P, NULL, 0, 1, 5); + currentEndpoint=lan; + LOGI("Switching to p2p (LAN)"); + }else{ + if(p2p->_averageRtt>0 && p2p->_averageRtt0 && minPing_averageRtt*.6){ + LOGI("Switching to relay"); + currentEndpoint=preferredRelay; + } + } + } + + if(state==STATE_ESTABLISHED){ + if(GetCurrentTime()-lastRecvPacketTime>=config.recv_timeout){ + if(currentEndpoint && currentEndpoint->type!=EP_TYPE_UDP_RELAY){ + LOGW("Packet receive timeout, switching to relay"); + currentEndpoint=GetEndpointByType(EP_TYPE_UDP_RELAY); + if(allowP2p){ + SendPublicEndpointsRequest(); + } + UpdateDataSavingState(); + UpdateAudioBitrate(); + CBufferOutputStream s(4); + s.WriteInt32(dataSavingMode ? INIT_FLAG_DATA_SAVING_ENABLED : 0); + SendPacketReliably(PKT_NETWORK_CHANGED, s.GetBuffer(), s.GetLength(), 1, 20); + lastRecvPacketTime=GetCurrentTime(); + }else{ + LOGW("Packet receive timeout, disconnecting"); + lastError=ERROR_TIMEOUT; + SetState(STATE_FAILED); + } + } + }else if(state==STATE_WAIT_INIT){ + if(GetCurrentTime()-connectionInitTime>=config.init_timeout){ + LOGW("Init timeout, disconnecting"); + lastError=ERROR_TIMEOUT; + SetState(STATE_FAILED); + } + } + } + LOGI("=== tick thread exiting ==="); +} + + +voip_endpoint_t *CVoIPController::GetRemoteEndpoint(){ + //return useLan ? &remoteLanEp : &remotePublicEp; + return currentEndpoint; +} + + +void CVoIPController::SendPacket(char *data, size_t len, voip_endpoint_t* ep){ + if(stopping) + return; + sockaddr_in dst; + dst.sin_addr=ep->address; + dst.sin_port=htons(ep->port); + dst.sin_family=AF_INET; + CBufferOutputStream out(len+128); + if(ep->type==EP_TYPE_UDP_RELAY) + out.WriteBytes(ep->peerTag, 16); + else + out.WriteBytes(callID, 16); + if(len>0){ + CBufferOutputStream inner(len+128); + inner.WriteInt32(len); + inner.WriteBytes(data, len); + if(inner.GetLength()%16!=0){ + size_t padLen=16-inner.GetLength()%16; + char padding[padLen]; + crypto.rand_bytes((uint8_t *) padding, padLen); + inner.WriteBytes(padding, padLen); + } + assert(inner.GetLength()%16==0); + unsigned char key[32], iv[32], msgHash[SHA1_LENGTH]; + crypto.sha1((uint8_t *) inner.GetBuffer(), len+4, msgHash); + out.WriteBytes(keyFingerprint, 8); + out.WriteBytes((char *) (msgHash+(SHA1_LENGTH-16)), 16); + KDF(msgHash+(SHA1_LENGTH-16), key, iv); + unsigned char aesOut[inner.GetLength()]; + crypto.aes_ige_encrypt((unsigned char *) inner.GetBuffer(), aesOut, inner.GetLength(), key, iv); + out.WriteBytes((char*)aesOut, inner.GetLength()); + } + //LOGV("Sending %d bytes to %s:%d", out.GetLength(), inet_ntoa(ep->address), ep->port); + if(IS_MOBILE_NETWORK(networkType)) + stats.bytesSentMobile+=(uint64_t)out.GetLength(); + else + stats.bytesSentWifi+=(uint64_t)out.GetLength(); + int res=sendto(udpSocket, out.GetBuffer(), out.GetLength(), 0, (const sockaddr *) &dst, sizeof(sockaddr_in)); + if(res<0){ + LOGE("error sending: %d / %s", errno, strerror(errno)); + } +} + + +void CVoIPController::SetNetworkType(int type){ + networkType=type; + UpdateDataSavingState(); + UpdateAudioBitrate(); + char itfName[32]; + GetLocalNetworkItfInfo(NULL, itfName); + if(strcmp(itfName, activeNetItfName)!=0){ + LOGI("Active network interface changed: %s -> %s", activeNetItfName, itfName); + bool isFirstChange=strlen(activeNetItfName)==0; + strcpy(activeNetItfName, itfName); + if(isFirstChange) + return; + if(currentEndpoint && currentEndpoint->type!=EP_TYPE_UDP_RELAY){ + int i; + currentEndpoint=preferredRelay; + for(i=0;itype==EP_TYPE_UDP_P2P_LAN){ + free(endpoints[i]); + endpoints.erase(endpoints.begin()+i); + break; + } + } + } + if(allowP2p && currentEndpoint){ + SendPublicEndpointsRequest(); + } + CBufferOutputStream s(4); + s.WriteInt32(dataSavingMode ? INIT_FLAG_DATA_SAVING_ENABLED : 0); + SendPacketReliably(PKT_NETWORK_CHANGED, s.GetBuffer(), s.GetLength(), 1, 20); + } + LOGI("set network type: %d, active interface %s", type, activeNetItfName); + /*if(type==NET_TYPE_GPRS || type==NET_TYPE_EDGE) + audioPacketGrouping=2; + else + audioPacketGrouping=1;*/ +} + + +double CVoIPController::GetAverageRTT(){ + if(lastSentSeq>=lastRemoteAckSeq){ + uint32_t diff=lastSentSeq-lastRemoteAckSeq; + //LOGV("rtt diff=%u", diff); + if(diff<32){ + int i; + double res=0; + int count=0; + for(i=diff;i<32;i++){ + if(remoteAcks[i-diff]>0){ + res+=(remoteAcks[i-diff]-sentPacketTimes[i]); + count++; + } + } + if(count>0) + res/=count; + return res; + } + } + return 999; +} + +double CVoIPController::GetCurrentTime(){ +#if defined(__linux__) + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ts.tv_sec+(double)ts.tv_nsec/1000000000.0; +#elif defined(__APPLE__) + if(!machTimestart){ + mach_timebase_info_data_t tb = { 0, 0 }; + mach_timebase_info(&tb); + machTimebase = tb.numer; + machTimebase /= tb.denom; + machTimestart = mach_absolute_time(); + } + return (mach_absolute_time() - machTimestart) * machTimebase / 1000000000.0f; +#endif +} + +void CVoIPController::SetStateCallback(void (* f)(CVoIPController*, int)){ + stateCallback=f; + if(stateCallback){ + stateCallback(this, state); + } +} + + +void CVoIPController::SetState(int state){ + this->state=state; + stateChangeTime=GetCurrentTime(); + if(stateCallback){ + stateCallback(this, state); + } +} + + +void CVoIPController::SetMicMute(bool mute){ + micMuted=mute; + if(audioInput){ + if(mute) + audioInput->Stop(); + else + audioInput->Start(); + } + if(echoCanceller) + echoCanceller->Enable(!mute); + int i; + for(i=0;itype==STREAM_TYPE_AUDIO){ + char buf[2]; + buf[0]=outgoingStreams[i]->id; + buf[1]=(char) (mute ? 0 : 1); + SendPacketReliably(PKT_STREAM_STATE, buf, 2, .5f, 20); + outgoingStreams[i]->enabled=!mute; + } + } +} + + +void CVoIPController::UpdateAudioOutputState(){ + bool areAnyAudioStreamsEnabled=false; + int i; + for(i=0;itype==STREAM_TYPE_AUDIO && incomingStreams[i]->enabled) + areAnyAudioStreamsEnabled=true; + } + if(jitterBuffer){ + jitterBuffer->Reset(); + } + if(decoder){ + decoder->ResetQueue(); + } + if(audioOutput){ + if(audioOutput->IsPlaying()!=areAnyAudioStreamsEnabled){ + if(areAnyAudioStreamsEnabled) + audioOutput->Start(); + else + audioOutput->Stop(); + } + } +} + + +CBufferOutputStream *CVoIPController::GetOutgoingPacketBuffer(){ + CBufferOutputStream* pkt=NULL; + lock_mutex(sendBufferMutex); + if(emptySendBuffers.size()>0){ + pkt=emptySendBuffers[emptySendBuffers.size()-1]; + emptySendBuffers.pop_back(); + } + unlock_mutex(sendBufferMutex); + return pkt; +} + + +void CVoIPController::KDF(unsigned char* msgKey, unsigned char* aesKey, unsigned char* aesIv){ + uint8_t sA[SHA1_LENGTH], sB[SHA1_LENGTH], sC[SHA1_LENGTH], sD[SHA1_LENGTH]; + size_t x=0; + CBufferOutputStream buf(128); + buf.WriteBytes((char *) msgKey, 16); + buf.WriteBytes(encryptionKey+x, 32); + crypto.sha1((uint8_t *) buf.GetBuffer(), buf.GetLength(), sA); + buf.Reset(); + buf.WriteBytes(encryptionKey+32+x, 16); + buf.WriteBytes((char *) msgKey, 16); + buf.WriteBytes(encryptionKey+48+x, 16); + crypto.sha1((uint8_t *) buf.GetBuffer(), buf.GetLength(), sB); + buf.Reset(); + buf.WriteBytes(encryptionKey+64+x, 32); + buf.WriteBytes((char *) msgKey, 16); + crypto.sha1((uint8_t *) buf.GetBuffer(), buf.GetLength(), sC); + buf.Reset(); + buf.WriteBytes((char *) msgKey, 16); + buf.WriteBytes(encryptionKey+96+x, 32); + crypto.sha1(( uint8_t *) buf.GetBuffer(), buf.GetLength(), sD); + buf.Reset(); + buf.WriteBytes((char *) sA, 8); + buf.WriteBytes((char *) sB+8, 12); + buf.WriteBytes((char *) sC+4, 12); + assert(buf.GetLength()==32); + memcpy(aesKey, buf.GetBuffer(), 32); + buf.Reset(); + buf.WriteBytes((char *) sA+8, 12); + buf.WriteBytes((char *) sB, 8); + buf.WriteBytes((char *) sC+16, 4); + buf.WriteBytes((char *) sD, 8); + assert(buf.GetLength()==32); + memcpy(aesIv, buf.GetBuffer(), 32); +} + +void CVoIPController::GetDebugString(char *buffer, size_t len){ + char endpointsBuf[10240]; + memset(endpointsBuf, 0, 10240); + int i; + for(i=0;itype){ + case EP_TYPE_UDP_P2P_INET: + type="UDP_P2P_INET"; + break; + case EP_TYPE_UDP_P2P_LAN: + type="UDP_P2P_LAN"; + break; + case EP_TYPE_UDP_RELAY: + type="UDP_RELAY"; + break; + case EP_TYPE_TCP_RELAY: + type="TCP_RELAY"; + break; + default: + type="UNKNOWN"; + break; + } + if(strlen(endpointsBuf)>10240-1024) + break; + sprintf(endpointsBuf+strlen(endpointsBuf), "%s:%u %dms [%s%s]\n", inet_ntoa(endpoints[i]->address), endpoints[i]->port, (int)(endpoints[i]->_averageRtt*1000), type, currentEndpoint==endpoints[i] ? ", IN_USE" : ""); + } + double avgLate[3]; + if(jitterBuffer) + jitterBuffer->GetAverageLateCount(avgLate); + else + memset(avgLate, 0, 3*sizeof(double)); + snprintf(buffer, len, + "Remote endpoints: \n%s" + "Jitter buffer: %d/%d | %.1f, %.1f, %.1f\n" + "RTT avg/min: %d/%d\n" + "Congestion window: %d/%d bytes\n" + "Key fingerprint: %02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX\n" + "Last sent/ack'd seq: %u/%u\n" + "Last recvd seq: %u\n" + "Send/recv losses: %u/%u\n" + "Audio bitrate: %d kbit\n" +// "Packet grouping: %d\n" + "Frame size out/in: %d/%d\n" + "Bytes sent/recvd: %llu/%llu", + endpointsBuf, + jitterBuffer ? jitterBuffer->GetMinPacketCount() : 0, jitterBuffer ? jitterBuffer->GetCurrentDelay() : 0, avgLate[0], avgLate[1], avgLate[2], + // (int)(GetAverageRTT()*1000), 0, + (int)(conctl->GetAverageRTT()*1000), (int)(conctl->GetMinimumRTT()*1000), + conctl->GetInflightDataSize(), conctl->GetCongestionWindow(), + keyFingerprint[0],keyFingerprint[1],keyFingerprint[2],keyFingerprint[3],keyFingerprint[4],keyFingerprint[5],keyFingerprint[6],keyFingerprint[7], + lastSentSeq, lastRemoteAckSeq, lastRemoteSeq, + conctl->GetSendLossCount(), recvLossCount, + encoder ? (encoder->GetBitrate()/1000) : 0, +// audioPacketGrouping, + outgoingStreams[0]->frameDuration, incomingStreams.size()>0 ? incomingStreams[0]->frameDuration : 0, + stats.bytesSentMobile+stats.bytesSentWifi, stats.bytesRecvdMobile+stats.bytesRecvdWifi); +} + + +void CVoIPController::SendPublicEndpointsRequest(){ + LOGI("Sending public endpoints request"); + voip_endpoint_t* relay=GetEndpointByType(EP_TYPE_UDP_RELAY); + if(!relay) + return; + publicEndpointsReqTime=GetCurrentTime(); + waitingForRelayPeerInfo=true; + char buf[32]; + memcpy(buf, relay->peerTag, 16); + memset(buf+16, 0xFF, 16); + sockaddr_in dst; + dst.sin_addr=relay->address; + dst.sin_port=htons(relay->port); + dst.sin_family=AF_INET; + int res=sendto(udpSocket, buf, 32, 0, (const sockaddr *) &dst, sizeof(sockaddr_in)); + if(res<0){ + LOGE("error sending: %d / %s", errno, strerror(errno)); + } +} + + +void CVoIPController::SendP2pPing(int endpointType){ + LOGD("Sending ping for p2p, endpoint type %d", endpointType); + voip_endpoint_t* endpoint=GetEndpointByType(endpointType); + if(!endpoint) + return; + lastP2pPingTime=GetCurrentTime(); + CBufferOutputStream pkt(32); + uint32_t seq=WritePacketHeader(&pkt, PKT_PING, 0); + SendPacket(pkt.GetBuffer(), pkt.GetLength(), endpoint); +} + + +void CVoIPController::GetLocalNetworkItfInfo(in_addr *outAddr, char *outName){ + struct ifconf ifc; + struct ifreq* ifr; + char buf[16384]; + int sd; + sd=socket(PF_INET, SOCK_DGRAM, 0); + if(sd>0){ + ifc.ifc_len=sizeof(buf); + ifc.ifc_ifcu.ifcu_buf=buf; + if(ioctl(sd, SIOCGIFCONF, &ifc)==0){ + ifr=ifc.ifc_req; + int len; + int i; + for(i=0;iifr_addr.sa_len; +#else + len=sizeof(*ifr); +#endif + if(ifr->ifr_addr.sa_family==AF_INET){ + if(ioctl(sd, SIOCGIFADDR, ifr)==0){ + struct sockaddr_in* addr=(struct sockaddr_in *)(&ifr->ifr_addr); + LOGI("Interface %s, address %s\n", ifr->ifr_name, inet_ntoa(addr->sin_addr)); + if(strcmp(ifr->ifr_name, "lo0")!=0 && strcmp(ifr->ifr_name, "lo")!=0 && addr->sin_addr.s_addr!=inet_addr("127.0.0.1")){ + if(outAddr) + memcpy(outAddr, &addr->sin_addr, sizeof(in_addr)); + if(outName) + strcpy(outName, ifr->ifr_name); + } + }else{ + LOGE("Error getting address for %s: %d\n", ifr->ifr_name, errno); + } + } + ifr=(struct ifreq*)((char*)ifr+len); + i+=len; + } + }else{ + LOGE("Error getting LAN address: %d", errno); + } + } + close(sd); +} + + +voip_endpoint_t *CVoIPController::GetEndpointByType(int type){ + if(type==EP_TYPE_UDP_RELAY && preferredRelay) + return preferredRelay; + int i; + for(i=0;itype==type) + return endpoints[i]; + } + return NULL; +} + + +float CVoIPController::GetOutputLevel(){ + if(!audioOutput || !audioOutStarted){ + return 0.0; + } + return audioOutput->GetLevel(); +} + + +char * CVoIPController::SendPacketReliably(unsigned char type, char *data, size_t len, double retryInterval, double timeout){ + LOGD("Send reliably, type=%u, len=%u, retry=%.3llf, timeout=%.3llf", type, len, retryInterval, timeout); + voip_queued_packet_t* pkt=(voip_queued_packet_t *) malloc(sizeof(voip_queued_packet_t)); + memset(pkt, 0, sizeof(voip_queued_packet_t)); + pkt->type=type; + if(data){ + pkt->data=(char *) malloc(len); + memcpy(pkt->data, data, len); + pkt->length=len; + } + pkt->retryInterval=retryInterval; + pkt->timeout=timeout; + pkt->firstSentTime=0; + pkt->lastSentTime=0; + lock_mutex(queuedPacketsMutex); + queuedPackets.push_back(pkt); + unlock_mutex(queuedPacketsMutex); +} + + +void CVoIPController::SetConfig(voip_config_t *cfg){ + memcpy(&config, cfg, sizeof(voip_config_t)); +#ifdef __ANDROID__ + enableAEC=cfg->enableAEC; +#endif + UpdateDataSavingState(); + UpdateAudioBitrate(); + if(cfg->frame_size) + outgoingStreams[0]->frameDuration=cfg->frame_size; +} + + +void CVoIPController::UpdateDataSavingState(){ + if(config.data_saving==DATA_SAVING_ALWAYS){ + dataSavingMode=true; + }else if(config.data_saving==DATA_SAVING_MOBILE){ + dataSavingMode=networkType==NET_TYPE_GPRS || networkType==NET_TYPE_EDGE || + networkType==NET_TYPE_3G || networkType==NET_TYPE_HSPA || networkType==NET_TYPE_LTE || networkType==NET_TYPE_OTHER_MOBILE; + }else{ + dataSavingMode=false; + } + LOGI("update data saving mode, config %d, enabled %d, reqd by peer %d", config.data_saving, dataSavingMode, dataSavingRequestedByPeer); +} + + +void CVoIPController::DebugCtl(int request, int param){ + if(request==1){ // set bitrate + maxBitrate=param; + if(encoder){ + encoder->SetBitrate(maxBitrate); + } + }else if(request==2){ // set packet loss + if(encoder){ + encoder->SetPacketLoss(param); + } + }else if(request==3){ // force enable/disable p2p + allowP2p=param==1; + if(!allowP2p && currentEndpoint && currentEndpoint->type!=EP_TYPE_UDP_RELAY){ + currentEndpoint=preferredRelay; + needSendP2pPing=false; + }else if(allowP2p){ + SendPublicEndpointsRequest(); + } + CBufferOutputStream s(4); + s.WriteInt32(dataSavingMode ? INIT_FLAG_DATA_SAVING_ENABLED : 0); + SendPacketReliably(PKT_NETWORK_CHANGED, s.GetBuffer(), s.GetLength(), 1, 20); + }else if(request==4){ + if(echoCanceller) + echoCanceller->Enable(param==1); + } +} + + +char* CVoIPController::GetVersion(){ + return LIBTGVOIP_VERSION; +} + + +int64_t CVoIPController::GetPreferredRelayID(){ + if(preferredRelay) + return preferredRelay->id; + return 0; +} + + +int CVoIPController::GetLastError(){ + return lastError; +} + + +void CVoIPController::GetStats(voip_stats_t *stats){ + memcpy(stats, &this->stats, sizeof(voip_stats_t)); +} + diff --git a/VoIPController.h b/VoIPController.h new file mode 100644 index 0000000000..3cddaeaceb --- /dev/null +++ b/VoIPController.h @@ -0,0 +1,295 @@ +#ifndef __VOIPCONTROLLER_H +#define __VOIPCONTROLLER_H + +#include +#include +#include +#include +#include "audio/AudioInput.h" +#include "BlockingQueue.h" +#include "BufferOutputStream.h" +#include "audio/AudioOutput.h" +#include "JitterBuffer.h" +#include "OpusDecoder.h" +#include "OpusEncoder.h" +#include "EchoCanceller.h" +#include "CongestionControl.h" + +#define LIBTGVOIP_VERSION "0.2.4" + +#define PKT_INIT 1 +#define PKT_INIT_ACK 2 +#define PKT_STREAM_STATE 3 +#define PKT_STREAM_DATA 4 +#define PKT_UPDATE_STREAMS 5 +#define PKT_PING 6 +#define PKT_PONG 7 +#define PKT_STREAM_DATA_X2 8 +#define PKT_STREAM_DATA_X3 9 +#define PKT_LAN_ENDPOINT 10 +#define PKT_NETWORK_CHANGED 11 +#define PKT_SWITCH_PREF_RELAY 12 +#define PKT_SWITCH_TO_P2P 13 +#define PKT_NOP 14 + +#define STATE_WAIT_INIT 1 +#define STATE_WAIT_INIT_ACK 2 +#define STATE_ESTABLISHED 3 +#define STATE_FAILED 4 + +#define ERROR_UNKNOWN 0 +#define ERROR_INCOMPATIBLE 1 +#define ERROR_TIMEOUT 2 + +#define NET_TYPE_UNKNOWN 0 +#define NET_TYPE_GPRS 1 +#define NET_TYPE_EDGE 2 +#define NET_TYPE_3G 3 +#define NET_TYPE_HSPA 4 +#define NET_TYPE_LTE 5 +#define NET_TYPE_WIFI 6 +#define NET_TYPE_ETHERNET 7 +#define NET_TYPE_OTHER_HIGH_SPEED 8 +#define NET_TYPE_OTHER_LOW_SPEED 9 +#define NET_TYPE_DIALUP 10 +#define NET_TYPE_OTHER_MOBILE 11 + +#define IS_MOBILE_NETWORK(x) (x==NET_TYPE_GPRS || x==NET_TYPE_EDGE || x==NET_TYPE_3G || x==NET_TYPE_HSPA || x==NET_TYPE_LTE || x==NET_TYPE_OTHER_MOBILE) + +#define PROTOCOL_NAME 0x50567247 // "GrVP" in little endian (reversed here) +#define PROTOCOL_VERSION 3 +#define MIN_PROTOCOL_VERSION 3 + +#define STREAM_DATA_FLAG_LEN16 0x40 +#define STREAM_DATA_FLAG_HAS_MORE_FLAGS 0x80 + +#define STREAM_TYPE_AUDIO 1 +#define STREAM_TYPE_VIDEO 2 + +#define CODEC_OPUS 1 + +#define EP_TYPE_UDP_P2P_INET 1 +#define EP_TYPE_UDP_P2P_LAN 2 +#define EP_TYPE_UDP_RELAY 3 +#define EP_TYPE_TCP_RELAY 4 + +/*flags:# voice_call_id:flags.2?int128 in_seq_no:flags.4?int out_seq_no:flags.4?int + * recent_received_mask:flags.5?int proto:flags.3?int extra:flags.1?string raw_data:flags.0?string*/ +#define PFLAG_HAS_DATA 1 +#define PFLAG_HAS_EXTRA 2 +#define PFLAG_HAS_CALL_ID 4 +#define PFLAG_HAS_PROTO 8 +#define PFLAG_HAS_SEQ 16 +#define PFLAG_HAS_RECENT_RECV 32 + +#define INIT_FLAG_DATA_SAVING_ENABLED 1 + +#define DATA_SAVING_NEVER 0 +#define DATA_SAVING_MOBILE 1 +#define DATA_SAVING_ALWAYS 2 + +#define TLID_DECRYPTED_AUDIO_BLOCK 0xDBF948C1 +#define TLID_SIMPLE_AUDIO_BLOCK 0xCC0D0E76 +#define TLID_UDP_REFLECTOR_PEER_INFO 0x27D9371C + +struct voip_endpoint_t{ // make this a class maybe? + int64_t id; + uint32_t port; + in_addr address; + in6_addr address6; + char type; + char peerTag[16]; + + double _lastPingTime; + uint32_t _lastPingSeq; + double _rtts[6]; + double _averageRtt; +}; +typedef struct voip_endpoint_t voip_endpoint_t; + +struct voip_stream_t{ + int32_t userID; + unsigned char id; + unsigned char type; + unsigned char codec; + bool enabled; + uint16_t frameDuration; +}; +typedef struct voip_stream_t voip_stream_t; + +struct voip_queued_packet_t{ + unsigned char type; + char* data; + size_t length; + uint32_t seqs[16]; + double firstSentTime; + double lastSentTime; + double retryInterval; + double timeout; +}; +typedef struct voip_queued_packet_t voip_queued_packet_t; + +struct voip_config_t{ + double init_timeout; + double recv_timeout; + int data_saving; + int frame_size; +#ifdef __ANDROID__ + bool enableAEC; +#endif +}; +typedef struct voip_config_t voip_config_t; + +struct voip_stats_t{ + uint64_t bytesSentWifi; + uint64_t bytesRecvdWifi; + uint64_t bytesSentMobile; + uint64_t bytesRecvdMobile; +}; +typedef struct voip_stats_t voip_stats_t; + +struct voip_crypto_functions_t{ + void (*rand_bytes)(uint8_t* buffer, size_t length); + void (*sha1)(uint8_t* msg, size_t length, uint8_t* output); + void (*sha256)(uint8_t* msg, size_t length, uint8_t* output); + void (*aes_ige_encrypt)(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv); + void (*aes_ige_decrypt)(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv); +}; +typedef struct voip_crypto_functions_t voip_crypto_functions_t; + +#define SEQ_MAX 0xFFFFFFFF + +inline bool seqgt(uint32_t s1, uint32_t s2){ + return ((s1>s2) && (s1-s2<=SEQ_MAX/2)) || ((s1SEQ_MAX/2)); +} + +class CVoIPController +{ +public: + CVoIPController(); + ~CVoIPController(); + + void SetRemoteEndpoints(voip_endpoint_t* endpoints, size_t count, bool allowP2p); + void Start(); + void Connect(); + voip_endpoint_t* GetRemoteEndpoint(); + void GetDebugString(char* buffer, size_t len); + void SetNetworkType(int type); + double GetAverageRTT(); + void SetStateCallback(void (*f)(CVoIPController*, int)); + static double GetCurrentTime(); + void* implData; + void SetMicMute(bool mute); + void SetEncryptionKey(char* key); + void SetConfig(voip_config_t* cfg); + float GetOutputLevel(); + void DebugCtl(int request, int param); + void GetStats(voip_stats_t* stats); + int64_t GetPreferredRelayID(); + int GetLastError(); + static voip_crypto_functions_t crypto; + static char* GetVersion(); + +private: + static void* StartRecvThread(void* arg); + static void* StartSendThread(void* arg); + static void* StartTickThread(void* arg); + void RunRecvThread(); + void RunSendThread(); + void RunTickThread(); + void SendPacket(char* data, size_t len, voip_endpoint_t* ep); + void HandleAudioInput(unsigned char* data, size_t len); + void UpdateAudioBitrate(); + void SetState(int state); + void UpdateAudioOutputState(); + void SendInit(); + void SendInitAck(); + void UpdateDataSavingState(); + void SendP2pPing(int endpointType); + void KDF(unsigned char* msgKey, unsigned char* aesKey, unsigned char* aesIv); + void GetLocalNetworkItfInfo(in_addr *addr, char *outName); + CBufferOutputStream* GetOutgoingPacketBuffer(); + uint32_t WritePacketHeader(CBufferOutputStream* s, unsigned char type, uint32_t length); + static size_t AudioInputCallback(unsigned char* data, size_t length, void* param); + void SendPublicEndpointsRequest(); + voip_endpoint_t* GetEndpointByType(int type); + char * SendPacketReliably(unsigned char type, char* data, size_t len, double retryInterval, double timeout); + int state; + int udpSocket; + std::vector endpoints; + voip_endpoint_t* currentEndpoint; + voip_endpoint_t* preferredRelay; + bool runReceiver; + uint32_t seq; + uint32_t lastRemoteSeq; + uint32_t lastRemoteAckSeq; + uint32_t lastSentSeq; + double remoteAcks[32]; + double sentPacketTimes[32]; + double recvPacketTimes[32]; + uint32_t sendLossCountHistory[32]; + uint32_t audioTimestampIn; + uint32_t audioTimestampOut; + CAudioInput* audioInput; + CAudioOutput* audioOutput; + CJitterBuffer* jitterBuffer; + COpusDecoder* decoder; + COpusEncoder* encoder; + CBlockingQueue* sendQueue; + CEchoCanceller* echoCanceller; + std::vector emptySendBuffers; + tgvoip_mutex_t sendBufferMutex; + bool stopping; + bool audioOutStarted; + tgvoip_thread_t recvThread; + tgvoip_thread_t sendThread; + tgvoip_thread_t tickThread; + uint32_t packetsRecieved; + uint32_t recvLossCount; + uint32_t prevSendLossCount; + uint32_t firstSentPing; + double rttHistory[32]; + bool waitingForAcks; + int networkType; + int audioPacketGrouping; + int audioPacketsWritten; + int dontSendPackets; + int lastError; + bool micMuted; + uint32_t maxBitrate; + CBufferOutputStream* currentAudioPacket; + void (*stateCallback)(CVoIPController*, int); + std::vector outgoingStreams; + std::vector incomingStreams; + char encryptionKey[256]; + char keyFingerprint[8]; + char callID[16]; + double stateChangeTime; + bool needSendP2pPing; + bool waitingForRelayPeerInfo; + double relayPeerInfoReqTime; + double lastP2pPingTime; + int p2pPingCount; + uint16_t localUdpPort; + bool allowP2p; + bool dataSavingMode; + bool dataSavingRequestedByPeer; + char activeNetItfName[32]; + double publicEndpointsReqTime; + std::vector queuedPackets; + tgvoip_mutex_t queuedPacketsMutex; + double connectionInitTime; + double lastRecvPacketTime; + voip_config_t config; + int32_t peerVersion; + CCongestionControl* conctl; + voip_stats_t stats; + bool enableAEC; + +#ifdef __APPLE__ + static double machTimebase; + static uint64_t machTimestart; +#endif +}; + +#endif diff --git a/audio/AudioInput.cpp b/audio/AudioInput.cpp new file mode 100644 index 0000000000..6e9c356926 --- /dev/null +++ b/audio/AudioInput.cpp @@ -0,0 +1,31 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "AudioInput.h" +#if defined(__ANDROID__) +#include "../os/android/AudioInputAndroid.h" +#elif defined(__APPLE__) +#include "../os/darwin/AudioInputAudioUnit.h" +#include "../os/darwin/AudioUnitIO.h" +#else +#error "Unsupported operating system" +#endif + +CAudioInput *CAudioInput::Create(){ +#if defined(__ANDROID__) + return new CAudioInputAndroid(); +#elif defined(__APPLE__) + return new CAudioInputAudioUnit(CAudioUnitIO::Get()); +#endif +} + + +CAudioInput::~CAudioInput(){ +#if defined(__APPLE__) + CAudioUnitIO::Release(); +#endif +} + diff --git a/audio/AudioInput.h b/audio/AudioInput.h new file mode 100644 index 0000000000..8d91b971f0 --- /dev/null +++ b/audio/AudioInput.h @@ -0,0 +1,22 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_AUDIOINPUT_H +#define LIBTGVOIP_AUDIOINPUT_H + +#include +#include "../MediaStreamItf.h" + +class CAudioInput : public CMediaStreamItf{ +public: + virtual ~CAudioInput(); + + virtual void Configure(uint32_t sampleRate, uint32_t bitsPerSample, uint32_t channels)=0; + static CAudioInput* Create(); +}; + + +#endif //LIBTGVOIP_AUDIOINPUT_H diff --git a/audio/AudioOutput.cpp b/audio/AudioOutput.cpp new file mode 100644 index 0000000000..84d799beed --- /dev/null +++ b/audio/AudioOutput.cpp @@ -0,0 +1,46 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include "AudioOutput.h" +#if defined(__ANDROID__) +#include "../os/android/AudioOutputOpenSLES.h" +#include "../os/android/AudioOutputAndroid.h" +#elif defined(__APPLE__) +#include "../os/darwin/AudioOutputAudioUnit.h" +#include "../os/darwin/AudioUnitIO.h" +#else +#error "Unsupported operating system" +#endif + +#if defined(__ANDROID__) +int CAudioOutput::systemVersion; +#endif + +CAudioOutput *CAudioOutput::Create(){ +#if defined(__ANDROID__) + if(systemVersion<21) + return new CAudioOutputAndroid(); + return new CAudioOutputOpenSLES(); +#elif defined(__APPLE__) + return new CAudioOutputAudioUnit(CAudioUnitIO::Get()); +#endif +} + + +CAudioOutput::~CAudioOutput(){ +#if defined(__APPLE__) + CAudioUnitIO::Release(); +#endif +} + + +int32_t CAudioOutput::GetEstimatedDelay(){ +#if defined(__ANDROID__) + return systemVersion<21 ? 150 : 50; +#endif + return 0; +} + diff --git a/audio/AudioOutput.h b/audio/AudioOutput.h new file mode 100644 index 0000000000..0d07bfb979 --- /dev/null +++ b/audio/AudioOutput.h @@ -0,0 +1,28 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#ifndef LIBTGVOIP_AUDIOOUTPUT_H +#define LIBTGVOIP_AUDIOOUTPUT_H + +#include +#include "../MediaStreamItf.h" + +class CAudioOutput : public CMediaStreamItf{ +public: + virtual ~CAudioOutput(); + virtual void Configure(uint32_t sampleRate, uint32_t bitsPerSample, uint32_t channels)=0; + virtual bool IsPlaying()=0; + virtual float GetLevel()=0; + static CAudioOutput* Create(); + static int32_t GetEstimatedDelay(); + +#if defined(__ANDROID__) + static int systemVersion; +#endif +}; + + +#endif //LIBTGVOIP_AUDIOOUTPUT_H diff --git a/client/android/tg_voip_jni.cpp b/client/android/tg_voip_jni.cpp new file mode 100644 index 0000000000..55a810c521 --- /dev/null +++ b/client/android/tg_voip_jni.cpp @@ -0,0 +1,208 @@ +// +// libtgvoip is free and unencumbered public domain software. +// For more information, see http://unlicense.org or the UNLICENSE file +// you should have received with this source code distribution. +// + +#include +#include +#include +#include "../../VoIPController.h" +#include "../../os/android/AudioOutputOpenSLES.h" +#include "../../os/android/AudioInputOpenSLES.h" +#include "../../os/android/AudioInputAndroid.h" +#include "../../os/android/AudioOutputAndroid.h" + +JavaVM* sharedJVM; +jfieldID audioRecordInstanceFld=NULL; +jfieldID audioTrackInstanceFld=NULL; +jmethodID setStateMethod=NULL; + +struct impl_data_android_t{ + jobject javaObject; +}; + +void updateConnectionState(CVoIPController* cntrlr, int state){ + impl_data_android_t* impl=(impl_data_android_t*) cntrlr->implData; + JNIEnv* env=NULL; + bool didAttach=false; + sharedJVM->GetEnv((void**) &env, JNI_VERSION_1_6); + if(!env){ + sharedJVM->AttachCurrentThread(&env, NULL); + didAttach=true; + } + + if(setStateMethod) + env->CallVoidMethod(impl->javaObject, setStateMethod, state); + + if(didAttach){ + sharedJVM->DetachCurrentThread(); + } +} + +extern "C" JNIEXPORT jlong Java_org_telegram_messenger_voip_VoIPController_nativeInit(JNIEnv* env, jobject thiz, jint systemVersion){ + CAudioOutputAndroid::systemVersion=systemVersion; + + env->GetJavaVM(&sharedJVM); + jclass cls=env->FindClass("org/telegram/messenger/voip/AudioRecordJNI"); + CAudioInputAndroid::jniClass=(jclass) env->NewGlobalRef(cls); + CAudioInputAndroid::initMethod=env->GetMethodID(cls, "init", "(IIII)V"); + CAudioInputAndroid::releaseMethod=env->GetMethodID(cls, "release", "()V"); + CAudioInputAndroid::startMethod=env->GetMethodID(cls, "start", "()V"); + CAudioInputAndroid::stopMethod=env->GetMethodID(cls, "stop", "()V"); + + cls=env->FindClass("org/telegram/messenger/voip/AudioTrackJNI"); + CAudioOutputAndroid::jniClass=(jclass) env->NewGlobalRef(cls); + CAudioOutputAndroid::initMethod=env->GetMethodID(cls, "init", "(IIII)V"); + CAudioOutputAndroid::releaseMethod=env->GetMethodID(cls, "release", "()V"); + CAudioOutputAndroid::startMethod=env->GetMethodID(cls, "start", "()V"); + CAudioOutputAndroid::stopMethod=env->GetMethodID(cls, "stop", "()V"); + + setStateMethod=env->GetMethodID(env->GetObjectClass(thiz), "handleStateChange", "(I)V"); + + impl_data_android_t* impl=(impl_data_android_t*) malloc(sizeof(impl_data_android_t)); + impl->javaObject=env->NewGlobalRef(thiz); + CVoIPController* cntrlr=new CVoIPController(); + cntrlr->implData=impl; + cntrlr->SetStateCallback(updateConnectionState); + return (jlong)(intptr_t)cntrlr; +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeStart(JNIEnv* env, jobject thiz, jlong inst){ + ((CVoIPController*)(intptr_t)inst)->Start(); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeConnect(JNIEnv* env, jobject thiz, jlong inst){ + ((CVoIPController*)(intptr_t)inst)->Connect(); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetEncryptionKey(JNIEnv* env, jobject thiz, jlong inst, jbyteArray key){ + jbyte* akey=env->GetByteArrayElements(key, NULL); + ((CVoIPController*)(intptr_t)inst)->SetEncryptionKey((char *) akey); + env->ReleaseByteArrayElements(key, akey, JNI_ABORT); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetRemoteEndpoints(JNIEnv* env, jobject thiz, jlong inst, jobjectArray endpoints, jboolean allowP2p){ + size_t len=(size_t) env->GetArrayLength(endpoints); + voip_endpoint_t* eps=(voip_endpoint_t *) malloc(sizeof(voip_endpoint_t)*len); + /*public String ip; + public String ipv6; + public int port; + public byte[] peer_tag;*/ + jclass epClass=env->GetObjectClass(env->GetObjectArrayElement(endpoints, 0)); + jfieldID ipFld=env->GetFieldID(epClass, "ip", "Ljava/lang/String;"); + jfieldID ipv6Fld=env->GetFieldID(epClass, "ipv6", "Ljava/lang/String;"); + jfieldID portFld=env->GetFieldID(epClass, "port", "I"); + jfieldID peerTagFld=env->GetFieldID(epClass, "peer_tag", "[B"); + jfieldID idFld=env->GetFieldID(epClass, "id", "J"); + int i; + for(i=0;iGetObjectArrayElement(endpoints, i); + jstring ip=(jstring) env->GetObjectField(endpoint, ipFld); + jstring ipv6=(jstring) env->GetObjectField(endpoint, ipv6Fld); + jint port=env->GetIntField(endpoint, portFld); + jlong id=env->GetLongField(endpoint, idFld); + jbyteArray peerTag=(jbyteArray) env->GetObjectField(endpoint, peerTagFld); + eps[i].id=id; + eps[i].port=(uint32_t) port; + const char* ipChars=env->GetStringUTFChars(ip, NULL); + inet_aton(ipChars, &eps[i].address); + env->ReleaseStringUTFChars(ip, ipChars); + if(ipv6 && env->GetStringLength(ipv6)){ + const char* ipv6Chars=env->GetStringUTFChars(ipv6, NULL); + inet_pton(AF_INET6, ipv6Chars, &eps[i].address6); + env->ReleaseStringUTFChars(ipv6, ipv6Chars); + } + if(peerTag && env->GetArrayLength(peerTag)){ + jbyte* peerTagBytes=env->GetByteArrayElements(peerTag, NULL); + memcpy(eps[i].peerTag, peerTagBytes, 16); + env->ReleaseByteArrayElements(peerTag, peerTagBytes, JNI_ABORT); + } + eps[i].type=EP_TYPE_UDP_RELAY; + } + ((CVoIPController*)(intptr_t)inst)->SetRemoteEndpoints(eps, len, allowP2p); + free(eps); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetNativeBufferSize(JNIEnv* env, jclass thiz, jint size){ + CAudioOutputOpenSLES::nativeBufferSize=size; + CAudioInputOpenSLES::nativeBufferSize=size; +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeRelease(JNIEnv* env, jobject thiz, jlong inst){ + env->DeleteGlobalRef(CAudioInputAndroid::jniClass); + + CVoIPController* ctlr=((CVoIPController*)(intptr_t)inst); + env->DeleteGlobalRef(((impl_data_android_t*)ctlr->implData)->javaObject); + free(ctlr->implData); + delete ctlr; +} + + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_AudioRecordJNI_nativeCallback(JNIEnv* env, jobject thiz, jobject buffer){ + if(!audioRecordInstanceFld) + audioRecordInstanceFld=env->GetFieldID(env->GetObjectClass(thiz), "nativeInst", "J"); + + jlong inst=env->GetLongField(thiz, audioRecordInstanceFld); + CAudioInputAndroid* in=(CAudioInputAndroid*)(intptr_t)inst; + in->HandleCallback(env, buffer); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_AudioTrackJNI_nativeCallback(JNIEnv* env, jobject thiz, jbyteArray buffer){ + if(!audioTrackInstanceFld) + audioTrackInstanceFld=env->GetFieldID(env->GetObjectClass(thiz), "nativeInst", "J"); + + jlong inst=env->GetLongField(thiz, audioTrackInstanceFld); + CAudioOutputAndroid* in=(CAudioOutputAndroid*)(intptr_t)inst; + in->HandleCallback(env, buffer); +} + +extern "C" JNIEXPORT jstring Java_org_telegram_messenger_voip_VoIPController_nativeGetDebugString(JNIEnv* env, jobject thiz, jlong inst){ + char buf[10240]; + ((CVoIPController*)(intptr_t)inst)->GetDebugString(buf, 10240); + return env->NewStringUTF(buf); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetNetworkType(JNIEnv* env, jobject thiz, jlong inst, jint type){ + ((CVoIPController*)(intptr_t)inst)->SetNetworkType(type); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetMicMute(JNIEnv* env, jobject thiz, jlong inst, jboolean mute){ + ((CVoIPController*)(intptr_t)inst)->SetMicMute(mute); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeSetConfig(JNIEnv* env, jobject thiz, jlong inst, jdouble recvTimeout, jdouble initTimeout, jint dataSavingMode, jint frameSize, jboolean enableAEC){ + voip_config_t cfg; + cfg.init_timeout=initTimeout; + cfg.recv_timeout=recvTimeout; + cfg.data_saving=dataSavingMode; + cfg.frame_size=frameSize; + cfg.enableAEC=enableAEC; + ((CVoIPController*)(intptr_t)inst)->SetConfig(&cfg); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeDebugCtl(JNIEnv* env, jobject thiz, jlong inst, jint request, jint param){ + ((CVoIPController*)(intptr_t)inst)->DebugCtl(request, param); +} + +extern "C" JNIEXPORT jstring Java_org_telegram_messenger_voip_VoIPController_nativeGetVersion(JNIEnv* env, jclass clasz){ + return env->NewStringUTF(CVoIPController::GetVersion()); +} + +extern "C" JNIEXPORT jlong Java_org_telegram_messenger_voip_VoIPController_nativeGetPreferredRelayID(JNIEnv* env, jclass clasz, jlong inst){ + return ((CVoIPController*)(intptr_t)inst)->GetPreferredRelayID(); +} + +extern "C" JNIEXPORT jint Java_org_telegram_messenger_voip_VoIPController_nativeGetLastError(JNIEnv* env, jclass clasz, jlong inst){ + return ((CVoIPController*)(intptr_t)inst)->GetLastError(); +} + +extern "C" JNIEXPORT void Java_org_telegram_messenger_voip_VoIPController_nativeGetStats(JNIEnv* env, jclass clasz, jlong inst, jobject stats){ + voip_stats_t _stats; + ((CVoIPController*)(intptr_t)inst)->GetStats(&_stats); + jclass cls=env->GetObjectClass(stats); + env->SetLongField(stats, env->GetFieldID(cls, "bytesSentWifi", "J"), _stats.bytesSentWifi); + env->SetLongField(stats, env->GetFieldID(cls, "bytesSentMobile", "J"), _stats.bytesSentMobile); + env->SetLongField(stats, env->GetFieldID(cls, "bytesRecvdWifi", "J"), _stats.bytesRecvdWifi); + env->SetLongField(stats, env->GetFieldID(cls, "bytesRecvdMobile", "J"), _stats.bytesRecvdMobile); +} \ No newline at end of file diff --git a/external/include/webrtc/echo_cancellation.h b/external/include/webrtc/echo_cancellation.h new file mode 100644 index 0000000000..ab6da4c6ce --- /dev/null +++ b/external/include/webrtc/echo_cancellation.h @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_H_ +#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_H_ + +#include + +#include + +/*extern "C" { +#include "webrtc/common_audio/ring_buffer.h" +} +#include "webrtc/modules/audio_processing/aec/aec_core.h" +#include "webrtc/typedefs.h"*/ + +namespace webrtc { + +// Errors +#define AEC_UNSPECIFIED_ERROR 12000 +#define AEC_UNSUPPORTED_FUNCTION_ERROR 12001 +#define AEC_UNINITIALIZED_ERROR 12002 +#define AEC_NULL_POINTER_ERROR 12003 +#define AEC_BAD_PARAMETER_ERROR 12004 + +// Warnings +#define AEC_BAD_PARAMETER_WARNING 12050 + +enum { kAecNlpConservative = 0, kAecNlpModerate, kAecNlpAggressive }; + +enum { kAecFalse = 0, kAecTrue }; + +typedef struct { + int16_t nlpMode; // default kAecNlpModerate + int16_t skewMode; // default kAecFalse + int16_t metricsMode; // default kAecFalse + int delay_logging; // default kAecFalse + // float realSkew; +} AecConfig; + +typedef struct { + int instant; + int average; + int max; + int min; +} AecLevel; + +typedef struct { + AecLevel rerl; + AecLevel erl; + AecLevel erle; + AecLevel aNlp; + float divergent_filter_fraction; +} AecMetrics; + +struct AecCore; + +class ApmDataDumper; + +/*typedef struct Aec { + Aec(); + ~Aec(); + + std::unique_ptr data_dumper; + + int delayCtr; + int sampFreq; + int splitSampFreq; + int scSampFreq; + float sampFactor; // scSampRate / sampFreq + short skewMode; + int bufSizeStart; + int knownDelay; + int rate_factor; + + short initFlag; // indicates if AEC has been initialized + + // Variables used for averaging far end buffer size + short counter; + int sum; + short firstVal; + short checkBufSizeCtr; + + // Variables used for delay shifts + short msInSndCardBuf; + short filtDelay; // Filtered delay estimate. + int timeForDelayChange; + int startup_phase; + int checkBuffSize; + short lastDelayDiff; + + // Structures + void* resampler; + + int skewFrCtr; + int resample; // if the skew is small enough we don't resample + int highSkewCtr; + float skew; + + RingBuffer* far_pre_buf; // Time domain far-end pre-buffer. + + int farend_started; + + // Aec instance counter. + static int instance_count; + AecCore* aec; +} Aec;*/ + +/* + * Allocates the memory needed by the AEC. The memory needs to be initialized + * separately using the WebRtcAec_Init() function. Returns a pointer to the + * object or NULL on error. + */ +void* WebRtcAec_Create(); + +/* + * This function releases the memory allocated by WebRtcAec_Create(). + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecInst Pointer to the AEC instance + */ +void WebRtcAec_Free(void* aecInst); + +/* + * Initializes an AEC instance. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecInst Pointer to the AEC instance + * int32_t sampFreq Sampling frequency of data + * int32_t scSampFreq Soundcard sampling frequency + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * -1: error + */ +int32_t WebRtcAec_Init(void* aecInst, int32_t sampFreq, int32_t scSampFreq); + +/* + * Inserts an 80 or 160 sample block of data into the farend buffer. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecInst Pointer to the AEC instance + * const float* farend In buffer containing one frame of + * farend signal for L band + * int16_t nrOfSamples Number of samples in farend buffer + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 12000-12050: error code + */ +int32_t WebRtcAec_BufferFarend(void* aecInst, + const float* farend, + size_t nrOfSamples); + +/* + * Reports any errors that would arise if buffering a farend buffer + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecInst Pointer to the AEC instance + * const float* farend In buffer containing one frame of + * farend signal for L band + * int16_t nrOfSamples Number of samples in farend buffer + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 12000-12050: error code + */ +int32_t WebRtcAec_GetBufferFarendError(void* aecInst, + const float* farend, + size_t nrOfSamples); + +/* + * Runs the echo canceller on an 80 or 160 sample blocks of data. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecInst Pointer to the AEC instance + * float* const* nearend In buffer containing one frame of + * nearend+echo signal for each band + * int num_bands Number of bands in nearend buffer + * int16_t nrOfSamples Number of samples in nearend buffer + * int16_t msInSndCardBuf Delay estimate for sound card and + * system buffers + * int16_t skew Difference between number of samples played + * and recorded at the soundcard (for clock skew + * compensation) + * + * Outputs Description + * ------------------------------------------------------------------- + * float* const* out Out buffer, one frame of processed nearend + * for each band + * int32_t return 0: OK + * 12000-12050: error code + */ +int32_t WebRtcAec_Process(void* aecInst, + const float* const* nearend, + size_t num_bands, + float* const* out, + size_t nrOfSamples, + int16_t msInSndCardBuf, + int32_t skew); + +/* + * This function enables the user to set certain parameters on-the-fly. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* handle Pointer to the AEC instance + * AecConfig config Config instance that contains all + * properties to be set + * + * Outputs Description + * ------------------------------------------------------------------- + * int return 0: OK + * 12000-12050: error code + */ +int WebRtcAec_set_config(void* handle, AecConfig config); + +/* + * Gets the current echo status of the nearend signal. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* handle Pointer to the AEC instance + * + * Outputs Description + * ------------------------------------------------------------------- + * int* status 0: Almost certainly nearend single-talk + * 1: Might not be neared single-talk + * int return 0: OK + * 12000-12050: error code + */ +int WebRtcAec_get_echo_status(void* handle, int* status); + +/* + * Gets the current echo metrics for the session. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* handle Pointer to the AEC instance + * + * Outputs Description + * ------------------------------------------------------------------- + * AecMetrics* metrics Struct which will be filled out with the + * current echo metrics. + * int return 0: OK + * 12000-12050: error code + */ +int WebRtcAec_GetMetrics(void* handle, AecMetrics* metrics); + +/* + * Gets the current delay metrics for the session. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* handle Pointer to the AEC instance + * + * Outputs Description + * ------------------------------------------------------------------- + * int* median Delay median value. + * int* std Delay standard deviation. + * float* fraction_poor_delays Fraction of the delay estimates that may + * cause the AEC to perform poorly. + * + * int return 0: OK + * 12000-12050: error code + */ +int WebRtcAec_GetDelayMetrics(void* handle, + int* median, + int* std, + float* fraction_poor_delays); + +// Returns a pointer to the low level AEC handle. +// +// Input: +// - handle : Pointer to the AEC instance. +// +// Return value: +// - AecCore pointer : NULL for error. +// +struct AecCore* WebRtcAec_aec_core(void* handle); + +} // namespace webrtc + +#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_ECHO_CANCELLATION_H_ diff --git a/external/include/webrtc/echo_control_mobile.h b/external/include/webrtc/echo_control_mobile.h new file mode 100644 index 0000000000..74733d88a5 --- /dev/null +++ b/external/include/webrtc/echo_control_mobile.h @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AECM_ECHO_CONTROL_MOBILE_H_ +#define WEBRTC_MODULES_AUDIO_PROCESSING_AECM_ECHO_CONTROL_MOBILE_H_ + +#include + +//#include "webrtc/typedefs.h" + +enum { + AecmFalse = 0, + AecmTrue +}; + +// Errors +#define AECM_UNSPECIFIED_ERROR 12000 +#define AECM_UNSUPPORTED_FUNCTION_ERROR 12001 +#define AECM_UNINITIALIZED_ERROR 12002 +#define AECM_NULL_POINTER_ERROR 12003 +#define AECM_BAD_PARAMETER_ERROR 12004 + +// Warnings +#define AECM_BAD_PARAMETER_WARNING 12100 + +typedef struct { + int16_t cngMode; // AECM_FALSE, AECM_TRUE (default) + int16_t echoMode; // 0, 1, 2, 3 (default), 4 +} AecmConfig; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Allocates the memory needed by the AECM. The memory needs to be + * initialized separately using the WebRtcAecm_Init() function. + * Returns a pointer to the instance and a nullptr at failure. + */ +void* WebRtcAecm_Create(); + +/* + * This function releases the memory allocated by WebRtcAecm_Create() + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + */ +void WebRtcAecm_Free(void* aecmInst); + +/* + * Initializes an AECM instance. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * int32_t sampFreq Sampling frequency of data + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_Init(void* aecmInst, int32_t sampFreq); + +/* + * Inserts an 80 or 160 sample block of data into the farend buffer. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * int16_t* farend In buffer containing one frame of + * farend signal + * int16_t nrOfSamples Number of samples in farend buffer + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_BufferFarend(void* aecmInst, + const int16_t* farend, + size_t nrOfSamples); + +/* + * Reports any errors that would arise when buffering a farend buffer. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * int16_t* farend In buffer containing one frame of + * farend signal + * int16_t nrOfSamples Number of samples in farend buffer + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_GetBufferFarendError(void* aecmInst, + const int16_t* farend, + size_t nrOfSamples); + +/* + * Runs the AECM on an 80 or 160 sample blocks of data. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * int16_t* nearendNoisy In buffer containing one frame of + * reference nearend+echo signal. If + * noise reduction is active, provide + * the noisy signal here. + * int16_t* nearendClean In buffer containing one frame of + * nearend+echo signal. If noise + * reduction is active, provide the + * clean signal here. Otherwise pass a + * NULL pointer. + * int16_t nrOfSamples Number of samples in nearend buffer + * int16_t msInSndCardBuf Delay estimate for sound card and + * system buffers + * + * Outputs Description + * ------------------------------------------------------------------- + * int16_t* out Out buffer, one frame of processed nearend + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_Process(void* aecmInst, + const int16_t* nearendNoisy, + const int16_t* nearendClean, + int16_t* out, + size_t nrOfSamples, + int16_t msInSndCardBuf); + +/* + * This function enables the user to set certain parameters on-the-fly + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * AecmConfig config Config instance that contains all + * properties to be set + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_set_config(void* aecmInst, AecmConfig config); + +/* + * This function enables the user to set the echo path on-the-fly. + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * void* echo_path Pointer to the echo path to be set + * size_t size_bytes Size in bytes of the echo path + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_InitEchoPath(void* aecmInst, + const void* echo_path, + size_t size_bytes); + +/* + * This function enables the user to get the currently used echo path + * on-the-fly + * + * Inputs Description + * ------------------------------------------------------------------- + * void* aecmInst Pointer to the AECM instance + * void* echo_path Pointer to echo path + * size_t size_bytes Size in bytes of the echo path + * + * Outputs Description + * ------------------------------------------------------------------- + * int32_t return 0: OK + * 1200-12004,12100: error/warning + */ +int32_t WebRtcAecm_GetEchoPath(void* aecmInst, + void* echo_path, + size_t size_bytes); + +/* + * This function enables the user to get the echo path size in bytes + * + * Outputs Description + * ------------------------------------------------------------------- + * size_t return Size in bytes + */ +size_t WebRtcAecm_echo_path_size_bytes(); + + +#ifdef __cplusplus +} +#endif +#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AECM_ECHO_CONTROL_MOBILE_H_ diff --git a/external/include/webrtc/noise_suppression.h b/external/include/webrtc/noise_suppression.h new file mode 100644 index 0000000000..cbd38332ce --- /dev/null +++ b/external/include/webrtc/noise_suppression.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_H_ +#define WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_H_ + +#include + +//#include "webrtc/typedefs.h" + +typedef struct NsHandleT NsHandle; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This function creates an instance of the floating point Noise Suppression. + */ +NsHandle* WebRtcNs_Create(); + +/* + * This function frees the dynamic memory of a specified noise suppression + * instance. + * + * Input: + * - NS_inst : Pointer to NS instance that should be freed + */ +void WebRtcNs_Free(NsHandle* NS_inst); + +/* + * This function initializes a NS instance and has to be called before any other + * processing is made. + * + * Input: + * - NS_inst : Instance that should be initialized + * - fs : sampling frequency + * + * Output: + * - NS_inst : Initialized instance + * + * Return value : 0 - Ok + * -1 - Error + */ +int WebRtcNs_Init(NsHandle* NS_inst, uint32_t fs); + +/* + * This changes the aggressiveness of the noise suppression method. + * + * Input: + * - NS_inst : Noise suppression instance. + * - mode : 0: Mild, 1: Medium , 2: Aggressive + * + * Output: + * - NS_inst : Updated instance. + * + * Return value : 0 - Ok + * -1 - Error + */ +int WebRtcNs_set_policy(NsHandle* NS_inst, int mode); + +/* + * This functions estimates the background noise for the inserted speech frame. + * The input and output signals should always be 10ms (80 or 160 samples). + * + * Input + * - NS_inst : Noise suppression instance. + * - spframe : Pointer to speech frame buffer for L band + * + * Output: + * - NS_inst : Updated NS instance + */ +void WebRtcNs_Analyze(NsHandle* NS_inst, const float* spframe); + +/* + * This functions does Noise Suppression for the inserted speech frame. The + * input and output signals should always be 10ms (80 or 160 samples). + * + * Input + * - NS_inst : Noise suppression instance. + * - spframe : Pointer to speech frame buffer for each band + * - num_bands : Number of bands + * + * Output: + * - NS_inst : Updated NS instance + * - outframe : Pointer to output frame for each band + */ +void WebRtcNs_Process(NsHandle* NS_inst, + const float* const* spframe, + size_t num_bands, + float* const* outframe); + +/* Returns the internally used prior speech probability of the current frame. + * There is a frequency bin based one as well, with which this should not be + * confused. + * + * Input + * - handle : Noise suppression instance. + * + * Return value : Prior speech probability in interval [0.0, 1.0]. + * -1 - NULL pointer or uninitialized instance. + */ +float WebRtcNs_prior_speech_probability(NsHandle* handle); + +/* Returns a pointer to the noise estimate per frequency bin. The number of + * frequency bins can be provided using WebRtcNs_num_freq(). + * + * Input + * - handle : Noise suppression instance. + * + * Return value : Pointer to the noise estimate per frequency bin. + * Returns NULL if the input is a NULL pointer or an + * uninitialized instance. + */ +const float* WebRtcNs_noise_estimate(const NsHandle* handle); + +/* Returns the number of frequency bins, which is the length of the noise + * estimate for example. + * + * Return value : Number of frequency bins. + */ +size_t WebRtcNs_num_freq(); + +#ifdef __cplusplus +} +#endif + +#endif // WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_H_ diff --git a/external/include/webrtc/noise_suppression_x.h b/external/include/webrtc/noise_suppression_x.h new file mode 100644 index 0000000000..ce4c4f2234 --- /dev/null +++ b/external/include/webrtc/noise_suppression_x.h @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_X_H_ +#define WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_X_H_ + +#include + +//#include "webrtc/typedefs.h" + +typedef struct NsxHandleT NsxHandle; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This function creates an instance of the fixed point Noise Suppression. + */ +NsxHandle* WebRtcNsx_Create(); + +/* + * This function frees the dynamic memory of a specified Noise Suppression + * instance. + * + * Input: + * - nsxInst : Pointer to NS instance that should be freed + */ +void WebRtcNsx_Free(NsxHandle* nsxInst); + +/* + * This function initializes a NS instance + * + * Input: + * - nsxInst : Instance that should be initialized + * - fs : sampling frequency + * + * Output: + * - nsxInst : Initialized instance + * + * Return value : 0 - Ok + * -1 - Error + */ +int WebRtcNsx_Init(NsxHandle* nsxInst, uint32_t fs); + +/* + * This changes the aggressiveness of the noise suppression method. + * + * Input: + * - nsxInst : Instance that should be initialized + * - mode : 0: Mild, 1: Medium , 2: Aggressive + * + * Output: + * - nsxInst : Initialized instance + * + * Return value : 0 - Ok + * -1 - Error + */ +int WebRtcNsx_set_policy(NsxHandle* nsxInst, int mode); + +/* + * This functions does noise suppression for the inserted speech frame. The + * input and output signals should always be 10ms (80 or 160 samples). + * + * Input + * - nsxInst : NSx instance. Needs to be initiated before call. + * - speechFrame : Pointer to speech frame buffer for each band + * - num_bands : Number of bands + * + * Output: + * - nsxInst : Updated NSx instance + * - outFrame : Pointer to output frame for each band + */ +void WebRtcNsx_Process(NsxHandle* nsxInst, + const short* const* speechFrame, + int num_bands, + short* const* outFrame); + +/* Returns a pointer to the noise estimate per frequency bin. The number of + * frequency bins can be provided using WebRtcNsx_num_freq(). + * + * Input + * - nsxInst : NSx instance. Needs to be initiated before call. + * - q_noise : Q value of the noise estimate, which is the number of + * bits that it needs to be right-shifted to be + * normalized. + * + * Return value : Pointer to the noise estimate per frequency bin. + * Returns NULL if the input is a NULL pointer or an + * uninitialized instance. + */ +const uint32_t* WebRtcNsx_noise_estimate(const NsxHandle* nsxInst, + int* q_noise); + +/* Returns the number of frequency bins, which is the length of the noise + * estimate for example. + * + * Return value : Number of frequency bins. + */ +size_t WebRtcNsx_num_freq(); + +#ifdef __cplusplus +} +#endif + +#endif // WEBRTC_MODULES_AUDIO_PROCESSING_NS_NOISE_SUPPRESSION_X_H_ diff --git a/external/include/webrtc/splitting_filter_wrapper.h b/external/include/webrtc/splitting_filter_wrapper.h new file mode 100644 index 0000000000..25eb553b99 --- /dev/null +++ b/external/include/webrtc/splitting_filter_wrapper.h @@ -0,0 +1,20 @@ +#ifndef __WEBRTC_SPLITTING_FILTER_WRAPPER +#define __WEBRTC_SPLITTING_FILTER_WRAPPER + +struct splitting_filter_t{ + /*IFCHannelBuffer*/ void* _bufferIn; + /*IFCHannelBuffer*/ void* _bufferOut; + /*SplittingFilter*/ void* _splittingFilter; + float* bufferIn; + float* bufferOut[3]; +}; + +extern "C"{ +splitting_filter_t* tgvoip_splitting_filter_create(); +void tgvoip_splitting_filter_free(splitting_filter_t* filter); + +void tgvoip_splitting_filter_analyze(splitting_filter_t* filter); +void tgvoip_splitting_filter_synthesize(splitting_filter_t* filter); +} + +#endif // __WEBRTC_SPLITTING_FILTER_WRAPPER \ No newline at end of file diff --git a/external/libWebRtcAec_android_armeabi-v7a.a b/external/libWebRtcAec_android_armeabi-v7a.a new file mode 100644 index 0000000000000000000000000000000000000000..253ee69515ab9461fcdccdc08dde485b3f2658d7 GIT binary patch literal 1773286 zcmeEv33wDm{&w}uw$_c>#?}vD(LElWA%IA>R-?FOcHSSzx#d9|9QT8ruwblQNKF7 zy1S~nCuyv=p{(+>m^62&OSh3`*nV`oGcqzWM`@js7^RFfrP97Xx?l8@QrCW~)Hdk7 z(Mx;7dADlUpHQldakXuI>C4J!dS4k=y`zjf6O{47Vr9JdvogLOpd9K_<>-^!){kAT z95t(zHE3Z@kNgq`nqoTWH{yM+nYZd)( z`cBh6QvVGf6PKy}UEgI!gZfu|x2%3D;3s{my0zmI9&Av*#`ow}s@nA{2B;n#`G@+c z9>?;3d0h3d`JQh)t$Otv^Kbj!r`@M|Kk!+I?^}3C1^hd=t9~aIs(wXhsD5W9cjV{! zN(=pEo+-6e{@kXD3SWZ~&V&Y^*Y6AE$Eem;7i{}i_oD-5& z@a7HA47DBL75W<6NWg2V_D`vuJv<}SG|Wt{nqIfW&aLwoG}M(hmHFpY`74Xcyw&zf z&Z}Ee+vsH@AzPY|Ke_aEW zZStJ*a+BYfQ(InCSyd4x%&DlTs+Fk4b*8F4x)v8VcxxLg>Kba=$fx@jSJgJw)#f!d zlvde0`t>Q07(*I{v)wZW=aYJ+qy|v|YY&A@JW*9w3x3-OGj(r%2szb*Cj(=^rnp4-X z#M@9Fs!qX_T0QQB3(PUBxDM@ROBd&zK36g`7ga7VuFDt!2o?J$Ihg zOmwVc&&8-?XX0ool(o&raI=IudsAxt#dSD@W>aUO{m51oWSQclR#V41_G;2vq3H)} zTB@lX9c@BVI9eTasA4N*JLZE~Fbf*45*%D}m)Qr$IrU~23FT5799`Q*m30mF`WBgH zhquL?dc^8j(oXB?811Gry`UpoTGEcKu(sCyCbXe+9a{Y_A}){PkN zI(TQN7MVA7=3Pirt$#Z1v2YpGHy*?1d{g6m^D=EOjd?}H{hYqGhF(I# zWFht2Mpj%G8d+Cno9nHOtM6{SN3VZdv5(R?6O`wSnZq0WWf>WB3mU3w{SzA+>KY~% zOe-t$kM?*Ldp*@vXlP3*Jyd6TKrlS7sir>HTeisG;4Sk_TpSQ&=6n6#>KVSqM(+Y& zUS@}qjE*E(>@>_!Rr@w4WFAeJaWtVBv!JN41IuP)yL{vf?;_uXN?+NcS@lJJ)YpP3 zRaFxwLZxt8u?IfggPaD;wWD5B^RKBd{Fl@h{%h8Y8jBj++DC8j*jo+7$sB2(v^l=A z8qb{iay*UYdmARBYt%I?D;PyKo&kIXel}8OmQ6XQx@tkKuN>OG+H#v_mDaSI)$LqX zSy$loS88KHv(wl@8KZ4xsT`_QB^_R8ae}wHY&vdky$$--zRG9aH*0ATa_!40_tyKX z7Na$BhwigR7cIv)@AHStk%3XR3{0r2^*7X22TP<26p}~Yp@rs=m6KsN(!l3h>hOdK ziJa58tcDL3jc|-M+#U_3v&t3BK*2PBMZ=eqVi2)pB1@nI`ScWVWf)MNo}4 zi!wcp+U)T3usjqs)z>%R%*J!>ByUx1FdD6&VpBFBq0tBO8@x5PTog=eY|~-#eg3k_ zc2pb99%C;Wp7qL*d|RW)GJXXijlQU;s@8sO(Jj4bLS3WD469->om*X3wkTLGKz!P8!#4sagmLDnv}3+;T#hMk43=_#wLt*BaH=jtn~t;T&gkv#P{lRS-R zcTeduf9NS-KiTYdkkN^94x$l<%lYZilPy)X-iBp)c+OuovC&^uW%nciOJ7*)>mK<&%0 z9a{bE#@2OdHD1RRf7IM-8&>W+YLBDje#Eb7gAU^Bdbf&Ss@u*}jT=`_IeT#jkyvF` z!?%g!!DLN!mH#Mlt&!R@!{@CHo+wpItE$YwS*{`;YlzX=3U-8c8=_4YX!kVaMI>;p zna$Ono*qa89g0oTo>qaj)~5E`R}HCXbZ}eO&aYZpuo%}7bNIIGh3Qn+dHvL?(1zsF zq5FDhdOB0q&4>&I;Tj<(+Lq2Nmt4w%XLh?*tgg>7x6-`X(c@{sVkTl;uR}%CSZ|q@ zea6I-$s%thCzj1x z@&o4^JEdacL_BINESy%9?xD@L(u{VcMgENRrrN4=n|z*nf5VhO z8BQsx_hJzse@dZQhKW$jD)&`*F^S9Z$>;Y?!Oh0RiAcNX6rlC+6ioO(XIh@Vj#j@` z@<-LNKgG54@U!qJPcx_J$0}br76T?O^_KakK)2Xal)>Mz+Hh2kJlN}I|23^XI`Ghs zC~R}Hqx=`@He|V7`K*adAPhhrQh#J*`nBymPRtFFa~TW=Gc=8K>Z3WkSK6 zDYX@KGwX7SW@My;%EuFRQ(!sG6Q&}MIyQFLITJD@w{y;f%G;hZA@UJ2vIoZ(J=50S zz}WsIlC73P45OCxbt=4~LX|jug^OUQQrOwrPJM@KSoIxf-0(BLO*MsC$dhWC7AQ`b z!YHhxV;-S0-<$*NNG+?Pw5h^W>CjY0I+gf<+~_}ss+H=LW29R3Yf`0>Jyoj=>6n-H zVo9keV}x!E%t_epW75GcuG1=zV)iEFZe_R@XqEP(pCZOBJu`(68>UJ~GS;?<#>n^9L=HwANpxF;|6EUeOFy7?eBvvH~1c+1H|hHVCfB=5Ry zQr^+l*Hu@QSxfBH37y&?r?w6&*&d%cw_r`EXhBnr2OZ?xfXVO-gr*;wyr-SiJ^C89 zJeWqC+<596s_Gg%jrBgvq=2X^^_Eug!7rGH4zla1ZIjzz4$wscW7Et=ol(yI1&vC^ zLYY!kA|8h%W{9 zHB4N}H3-}08!B;wO_N`8iKTQrBh+H*(3Yn#jl3#uK=Rd=*{duMYZ+GFZBfY%6xPOX z+isqQa_qwJFIZexRgcakcW9mpz1_r9X3iUSB*rP=>oBgDcV(!xjv_b8A{SJGlLQ^i zmCy9ySLbupVuTN9m&JbqnmX#UVUQI9od7xOC0HKzG-6rT zM=Rxlty!K5%+HY}=Y+RGb3Er}WZJkj-ViQlM7WHDryUsPPAlq?%M{3M)SIlxt*S09 z*@Ovt__D#j`5k>Q; zQCH!qtMz%1^QJ}*hJIZe%q z@SZUtyXu#J{Jfpwty{M?w?5V-KQcf1Ddlc`PMvW0tv+r@e{tojp+CMAaX4~6sS8$MZ)LZ@PCpA~b=j{NR@tKeK$K2c2RBF5Z;-3q~Yke#(zjwYXfAS+!9-*|X@~+Ci z^}9HC==P}mhjP1o_*rE}eo2+{utP1JK>7Lo)u6HxW6&V4+A}Wyv&v=t%c@E$9fu9C zI_yX{b;>G7?s>ZQE*H4ppi{z-B9J@NZyiOtU{$<80GsZpr;{TI{6>yTBy4>q3{sgz5T zF5?{s-WQn;VgS5bGtGm;6@k%5IeUY2zB>{}mn-UCbgzgxIJg|W=YbV@7nLL52gguR zaezLKzFWYGjzHMa?_`RjAHu=WpJ7+@59B8@936cr`NuIF8$AX2a11yN;rQr_$RD@` z#~!Ma>tUeFh<*qPPNv{+Gi8?%`7$^VYy!{ah?q^v5w(Z1=!hgz(NT|4=8D=$rYquZ zFk@Vx4Fozb$HDl3sT)a9i@g>H;{yhf=<$FqPazn`gV9&3-3n$`j6R?ljAdC2UB=j} zX{`U<+``~Z6?uQw?p2m}O&`pIw3?g|Z+R1f9ADMI)9=iR2 zgE0#S)C)qJ_dz*9XL}a&L)V>>WVCM&W44j5R8JPf7-5N7zsBZfWFSFjegy3%!6&dS z3{B2KsF$`nlF=>!*&8nisqwIyhnPK#0%Nl3og%C=O;$vcT8uu_I~D9=Xx5o*haX*H z40un#6k?KA-Fl+;8S@cRec+AFJDH)r%;|iV`F(gZ2d6U!B>TqVK)cjCKTMqAm)EUKfKhZeo)Uhv8nV zNn7vj~sFu$gDA_a~5v(NJVFnt6VjF}lNEFWr})A(=sv z)nzvO zjHlFPBy~-fv(r3EQrEPPR`!8RWHr^p_d1pNs-s#mveN5ylJz7vk(@~KT*i8f_Wgz z14%1E{RArM5(EaKtV!1(kcmJ@B`u|L@0mETb>BdQ9!8;KxmBUP&k)Ieku*Uv+p&!D z2)|mcl2z|YQHgG#4bujbr0c3cL_uv)fwHsD-6?8 z3o)L(rZBk3+mdV@~h+olnm zO-Y3Xjew_Jm_qwC+6k(#Kxo&rY05lyHFXK+=wLCS)Z`M%O)icBXU3Twj5C*UOvTv& zEd)%(LP8?Eq2>{&%&IAD2}UafPdk>L{T2Bi3pmXT;;5Y!9hU5@Ob}oZ7|Bp`f^p~3 z1V>VEanz1x%s4j1fRrj2P?!Zmt_~Ix@=Pv{0cR@CCYaftLonkM1mgs%C9DBW#krO_ zwx=5&Nn0%T0aL5UVi7SEP>Zla2j>%3n_R+LlZ#`(nQ>+ZN8XdV*MJBe8Vhuq^V2cNZOlm<0$4W7%1F?3+I68DFSOd&8-DxK1 zA)7&-e{?J}UAYOm!5LgDG=Vx+wwc4l@Xhdc_n%0o0-1Lx5AG=)#^Jaw3R6W0qh6Ge znwFYoF63eUKF!=um4+$b8qC&uo64)|)Uo7ga~kpXa@vB1s>aGi-ZaeXHPls=534O- zG^`;bqb$u|S67V*JG>j3hPkd`n0{?qI!v^DSVbF_l{z{N`^HO~Fu#{p?rp$~?Xabz zMtDYKrBzpzrY$HdYd>NdBUaUxRX3IU)Uk4b{WgBSwu($h1~al?wybg(GL_cU*buO! z>=SWitRy?5k{zMZUyhwwsg(-1vRIwMCT4_n*ND*F#JN)$efkgXpOiGn;X-XIVV`2S zlhc&LWem$4mwkHD>;Xwh=}8X5rtyI?k~7C84Rbhc%=ZnWd&;!w$swAb8Aejd=^?E3 zhT%@j7@RpeC;g&<>C=-2ZgkeWo$>B;XGN+r(H)|@4Z2CEj2q{SaZj9?l$@5HoOxVM zXbNATcbt~te0-HV<67sk)SQfT=bOsye00@V;Mi%^CnhgUabCY_s`C{!-#NtXa3ITO zSMr3vWUn`!`@tY?pqw}g{sC^gC$aQykm5|G<(C8DQs%=a!;KODD0S{ zZM{EJVIi&DBb-K6lrv+ZXI^1WfzqDr>TRciYS-(P!L*pNn6rO;0gYc)zf3hO(bMu$ z;nX$TDqzjZomolNE2g%d$5sf|jIEL~%>vV=t_#To8$Q=;3TbdHoiuZfdx9H7jXN_v zAY%U{`4Q`)|WvAG68t?I^MX~$f zwQe=65lZa4;5F59?Q58ytw6fbkKKmDu;Av`yI6-|lNS5;unH_w`G;XGsm3>~z7Eym zYXGyhjtW&}$Z>U*w-G%V%&J-p-#(1th%s(NR*++*&vdwAhsy9*%GhYNaz6LyniZ@j zO_(soJrs3&LdR8$D-@r0eu2Zo@rt z!EFhEy!hwFxz|Kr6ty<;;)r#wOPrTdCx`bjUS18AF$BSgk;8ISWK2{}w9&~C2E7?$~cpnTc3-mXbSZRg)zNHvEIVPyoQtW9+MPE%NGqvqdm6}sH zBNZZVX@?q&ZE97OFFmT3Jq>v~#BA;kQVG@RIGwh7_LOYhs)Kaw8Xc!%*J{63f>$*? zw&;3ozh>IgwC6b}*Q1*1AmeS+I?jE&s`e!9V{8Y>g{X9#R2wyWGWIJ&2g!t}bev2Z zHG49)!McM~>>3>>60TK_+t3AAY_Gt5uNn51mhyE>-Pk4vw|jOH8>?y;;B7jaMq3Vt zP0J$AQJGKXNv5E4 z>WLFO9UEqkSAd{%VuC8v9_L4b&KY>@GI>tbEzDlGpfW;EJeG#q<6~;jIYX`p)bAN) zuV+vhA*bpcW)D-QHs@4*Z4~wUh1u&DCQl5rXTRbx{(vz3fnoLrhRKt{>?MWC2Zhlo zVfIqO3B2V< z`{1e1dyEA1|0P26ekB3@_X?q@n}Ggzr_kk^PE=0-Ek~W_;b|`qK0zg^w}s}tNdhM& zL!YWr{3^xz%7xybDz|X*kmm8|+ZK;`v*{_Tug8|IbnBKcJ9gcD_IZB;OoS^hAV)XS%&H?p zp|=1tmEu`RKC6&8UT~V=Y{B`0OrLu7f}F)8y-x5N!CM6%6MS0m6~Uc??+NY}{9N#B z!2^P=f|!EQ=|u|m5*#KtS+Gd(9Kk9;e1g+EQ`IYOTybh*$~M8rE^@EVcdLd1FZfY476k?ylXzby10gnm!xkA(h0 z=)V$S=X>EF5x#-G$MSS0!fw3K{e&JU^a(!+AGLCF&rnB2y&wf>D7Xl3tlbAJySey?-0CC@Ik@H z1fLSzA^2OtKMLw`7j`}s`ZK}53jR&-h#((}m~NC{XTb!)UV?7H6hZFRV!V-prwQf? za{CtLa|F4Ai*%(R_r{TK6y#1s(klfo61+r^TfQjYEO>|DJ%Ze@#c}6p!50L7C-}PH zTY}utMg7kOzZU#f@JGReg1CX!`Yu84{9^pxf&&Eg^#FWs1*7~FLGA@3Jz0<&xp>~6 zDOf64Ay^}LuHaI^6@uLP#rRhVUMILoP+un?ze{Lt4Ws^(g4+dO68yd3PQhJ*y9K$I zjPbt{{7H~I>c}@Z4g(_uy9#y}Ocop>sIN27&lEaGaH62TzCeDu(3OJKg4|BW^qK`P z7Q9T5o7yP1t~+-NeV^bq!N&xj6MR9CyWklAUBTUgdj$6i?i2h$@E?NQHploeg4hJ5 z>0W}#fA^42oi-Io;atj~zcMEu5QAWqPjcE8|=@mjJJY5t!;H-2{28T0(*&<0tS!o}S;L0VQ z^kjJ2v*MAqJ1c*+U?N<bVngw_EDxAC3=kaB)q*G>{qA3Th7W4 z+s$roGVHm*qdoGOF6})CPkUCpD-pIk%IMyQM>tRp+Gl*)qO;2J4#M_yD{bY76+Omt z!x(Mze5bnso_*JHR(=kFVYj!`W-kshs~miOradd(R?CneWpun>#4k_|>M=jGMQ4>` z6qM}guCt}vP4pO#TdVO4l!NWl3*K^8e)#-OJ&WFHDF{+Vx6afH9*R^O@XeJZck@uIqrqM zwYGGv{CpQ?FB(RMLXYh+#AdIv*t6oLS^=>M^V;$L9pOMZ(xJz4&=#Flj$zQV_k(n# z%YM&vPY^xEAWqd#kL*0d2{O!t7i&l&b|d^HsJnz$e^-Beq;Yr^b#Fi6dZ+;UdB&0+RNrJL6>+Cwl<4$f;? zacJWS*sEkfoF&^BX0I7WwnB&YFfALf_nR<#0~3_u%Pf|&?D4tCUfy)f;bcRJ_IM9q z)$?Owk9nrM1Q+w;DHKP0^gF`zwqh`_`U+Joz1PC>_dW*=o3rxwNtoU)=zV3=v$F6Z z^z7xRM>(3I$8wB@x5~kJK>X^#(ryRty`UO!R=TMEz&#Fy2cXAiJj+>nL|e70Z;n%{ z1c~t;!AdtCVdl*iT}@BMGdFmav+SkWU;1_big$q1M~upXo*QrVAL||9tid|9z&pUl zVeOIcqh7bQbcU<){Jde6>g1Cudv1(*%lXmg6C7{52RZf(%75h0g+Cal-t@3Sxc|eO zvr}RpXjRz{v?gX7DVOJV*T@LKnoHJ6 z>>939q3ArBx8%;~h%ZS*M?FArMZFDGrz>JKBf6sACDVxh0pPlgMoz?(t#bXA^vTm1 zSK_%9IiB;aS^T$aE#>KW`t`ij#06&=SXAX&LcQP*MfQ(0Trbe92%(P90&u^ zUggkKbg2YX)Cow#v0AH)7M0bst#9C!W15zfK+@?GYEGjp=69eS(_%V)d>nRa^`eAR!f|**QxjWA_-pEw(VJ=f z9=sG}V;H_knxN}wfJRuzGv%9f=t^09f$Sts$kOmf~ zrn-LylN_4q9T!F>d=H$VJ7o_x*e>`Kc;n3djMfv;I0KasivXvDda_|Yg~9-MM`OYi zkbLQ&m&NPN8@z7jg}56n_5hs@G)mZewMEWtXp1)@pe-gtiFd1F@hR|oSv+mAna^-A zOpAF?o(wd~uCXk>1+li+D_Sga9@}Q|6!3dlJZ~5Dlj{TRa2RY1$^_pQ%I|Hp?y`$LMdhd|0Im)|@eGOxZe)X|m5?(w^gSq~}jE%=j ziKzBe#kV|<@5^@-(ExOn@OamRz!Sgi8;1IAY&Dy}_NKz@7KZdVp=Q&FfZO36YJ3Y%nHAc=d~md52C0omj9^NOwFrkb z@QjSNrU>uCcTr2#tRYL)@r1+{vh+EH`>*3^aloMFW@G%27D}R#U=KuUE2V^4 z>V+3>u5q-L^E^$|u^ZcoO$pDtUaEd&d$B2--eGJ?7VFsUr;Utj*8@l1l%p*PtYfFD zceUgqa29;D@*9~c^>{6e)Hxu?aXz8>+};V6Gg2o$xVg{hh1K+_zXVCOHb; zP-hdEq)V;8bd_#kUP?P-YA+*Yy-JQ=n%F`HlLpfWFv%z}nL$m^+FABt^v+fKMKej_ z?)H*6tGy(^Y?}m_?;ruTsA-xZwt}I~BCxuhYQ@SH2F#8|Bib=f%!N~}&uyoi+3jTl z%(j^TlbJYT*71gQE&kc#0sZ%Z{@Pu>(A0G5o(VR8$D|ZV+1GI7x!42<1Z*aFH zBQylw*2mrjsf+(#I5lBfJEp-RqIh?%5}v*oe**$}A$$wpFEkH}RdS~9$O@b| zlz(rk6aIb-b;?^!bplIxH0zWjC(sEQf zQ}}wZdVYkqBF2#rvCdcr+X#6FxC~bPbdf zpL%Ga#t1V4fitW}k3fyFW(30IV@99`i)NRxK;7dLeH* zd=J&$b%+v{eJ3oZKskjAMHtmv@3CnpH$7g-`6TkFoBlQDH_PR30+|HLA@B z1g3xV6s(*xYyWOamW@ON9Gbu_ySQs$*K%|6hMwHI1)sd8_$ZLH-pG-dZ}=`>SnZ1l|PwkG)fx zR^u(J}jJiPJ?#msnbrTQhGWBJ($hvR2>ScbWNqK8)bErbxRG(5}2mbx!lb8+_BEAv5r_} zy|Bv9iWYhO_zPk4zxO=+-r^|FuYO}y>t~EWge4h#169+*GeQ6V*9ZUo*9YramC_LA zCT_M zk6;G)`C;@F#0r=>_N&Tm#-+3lPvCmpg#z#EBCE<3?3U!Dz-LPPgGt5AV=aPe0! zO+Mr_7>~wmFTLveEH7u*5BVcd{RP|5KjO5%i5tiZ&Dmd;{Z;?v*@Ulp*XjQs|Fy4y z>V4_<_dti*t{uE|HpTdl^t}@_TN$KNV&t;)s7b7f8m>J z`sP2-lK+W!*Z2$;bS{PE7W02(^9Jte4I|Z@o;1sWzMAyJmLBchl^S@0z*6VDWj5@ZBV?hgptxXIcc1bV(T9 z@m+@fwV)2VWt&me&RBpyxi7~M+V0y!Y7O!mgZoRiU5U)w1>Vy^BV)!_;qq<1uY$!o z{FDO+)&P-FxSuPDh=QdFKT9x2aIzq0^cn9AL9bwi;JJc)?x5a9f}EZsy-{$J;BA6; z3vLs9R`3#Ap5SW1wSrd&t{1#f@Mgg+f?EZj z5ahBJ)8UjVai`#Wf*%TgBe-8MhW!fqae_kyPZs23BjtQ_B=V7$xKMDd;H83h3f?RD zy5L)ay1yg-$3lN0_?6&Kg4|cdbhuPU>>`h>i4yvS0nVf zf~y7B3UalN_N;!-WmwYN1fLPq=K=U{3C)#R>T&g!sLuo7A)$X3)aL>CdI1*LUHWNn zLAPLvAeS3yZ=_(hpx)09{v4rC7hEVFu*ZcN?cM1I)!IuPI5!Czbq4%B8TvTOzm!N+C3t@iA zjr=sh;eulXPZK;xuvD;0utx9-!S#aM1RoRB``;1XBQ%$EnQl+PL_xP;wqTy1-oFn0 zc|xBn*d)lMU)sA_@GimM2yzLS^5+D9EBLD5*Mi>){wR1*us?3~7=NJP5Wy1#rwei~ z81=ZoOk5*)nc!7|+XNpId{%IWAXlIn|6Rdv1-}>M!ZhXm1d|1a2y%g%^3j6Xf_Z`! zf(r%D6>Ji`UhpQt+Xe3yx%> zoH}HDJ@p853!NfpUFY=u8swvdKUQ$E;B>(P!D7J@!E(VxGLCZ!ll$+j^g;eA*B@Fi zq3=5xf%&pK46E8D;Yd9UGunmgQAT$>JnQ6GdS^o?JYD-#DeIT+WOzQEWW&?Fj(cRb z1@lcEdZx!k3)-{t`>K^8@aQaZjTx?At+{yr00PFh(zCD`JbSvkZRw&b2hx2EVaqmx ziq~O|)t0kl+rY5f`v&%QAhRq7`BphzK-h|dpt=)%9WsS>3)W=6$e2z8kOv3K%6D}6tvymij-h`@Tt(U_ankq9GW;C_UaiB zXUPtLw%fZL_O1qx`9qX|y(mPm;()DQgOK+cma}9|1nl+_2b=9ndweRj^4DGLrHg?P z-SJLySi8~YfH1vBun}#D#34|J{&>+NkM2Y0*&TK0^jF%=pg!(~9?yNtF@JO;5y4)L z6qJMY!E*5F*eb_l=poznU}@I}!VHT5TIqH}*j79>1$y%>p-qo0TeYe?F`#S(ljE6{ zF7v^>+3gjhKQ95#a+c||%n@$8vu^`6!{*WY@0XDo8JVX3vG;vuGea1v&9P`G<`lT^ zvvt}-D%J}V_KtMk2~Os8{HaRop?C%r!lROugB#K$Q#`nIX3aI^M^65uGc%~ z3hW#*xk7IL7vZM(3Qeyg%-Jb)PHp@rg0-oYFdA$EmFY+;IntxWvPb z?_+Yh=Y79-QtQz4&IcTwxzF;^y)ifSEqU&%)~nQZo{w}7;s0FttZ4QhmoX4w<7KqM zl@MB;oQl@I%1HBnk7JXVpoXAH#=Tay|oJ=cDJ_1Fg zvPV1P8B9Bm!RK*^ylyX!5iVv<@3u4`kJ1NTCm`W45&et~zKmlhjEdGiOy)SI7S!9| zsZN!Yte~nhUnDC`$s3gD4VTUmO0Yw7HI1pxUi5gQt4<2!-{FnTzd_~1)3vBOn=yMbW;(RGEEHlE zh`46P>%{`xLb5ju7`<7eyrgyIeZYzE*MS{Zih#ipMEwj|7r!!wkVu3qp4CESIwOT! z>AP`ha|{9r2_lPu%yE77Ta}a2lhfhP3#sjN`a0xmq5GN z$`;(h1X|yJVfP1b!%WqAyAb?BOO|4z+Y)R%AoUlMgN<(FfCxBd!=cveT|Z31q0SG; z7@%2xbi5RJDLhgmY|_EGge@kQ@T3l&MPQ21#WCP4Q$({8<_Ba5SYoEM9Ntjp5NOP) zR<3AaV5i9^yl?VXwJ>0&b`C-T$8(1nC-U6Fjy1UK$=9NgsbwwlVIZCA%w zbGt-j7B*DewkkC_Im5Y_`zH)%*Rhd|XN=_`@($a`N z*W#~At-tbR0{FIf5k5;jr8bxR(8chu9XTC+l3Yh(vNOC(b4nZMa$!Am$=uo%5LlVl z%k1{W@nFIM9a;=*B4{kbC!T{_4|E~her`OlH6?5rKP+R2tv5IXYLFW#^e%x${8wo^ zyCiav*Z}o5Qx8Oz9a=gUk z#tpqNW=*GyqSr=U9Jwyy64#~9%l@x_$J)N^Y?biX8!ZBwziO97i1z=!Ef(gph1qid ziTxEltWKcOrRO^K2YA8T7_!>iUx8bEo8x0=(EY#IU%~vu2eJ^FyI-@vq95Y2j(JXS ze??ZnmT7lJ7#-YCAss8VOr_X9u-aai4xY|oLwpCDC)ge(ymy2P?3uuZh)B@?%ASc~ z)bEC8S;6sw(*=3IPx*X7pJ27%xq>SMFA=<2@Or^p1n&~$!v*bb6MRN(2onfLumbtAlTV0wEngn=x;@@ zRrvoDT7O#(@>t%G<6f;V5&70@$>67x296f_I3hL#Oc%cXh8*IR3$4E$2f9)8E+m4! zUT_By_VwB@kdAVmrNr<(2l^ojeD-O|PZmrU94UCJV6GsaY^bmM0q`uL%LEq))(SQV za$1M+E*88}aD!m@o`d^^|B&GC1YZ+;Tkt)>F9rW9ctG$+!6Sk^fte3ZiV-^ta-xQG zFTvvklLR@}M0u7V=YvRR3v&92bdlhhf*wIm;8AYvVQ3V3iJ;!w1Nmy9FB7~rL zulp_`w zKi>bGF$f?2K4kn@J>ZVqp1bevcS8P@_-(mIcF!D;nH`h2Dfh+g1+9bP3tE#)vRen0 zI1d=kSGQ-kCdcpHyZ<@0y&4&+(Ah$t+IoL8g9duOL%C63C1|&JY-=jOxR;J`q#pG+ z8Si8d#eGX9R)_lFZTI>3ZpA2k`*|t$|K_33rr^76<(N`0#tVO0Xahg?0Z+&M%*iNi zHP$`PLb=D{6DliI5~gJbsZx9=x)6Od6ZoM$IlqogG5Wu2p5~Wz^)|sK39UcCW+7 zR^CUAK8_YxjQacuwSFaPb|-53L9DBPi<-X$wfre+{CTxX{j4rjFJQ0sZMet$v$_N; zAD7|ZF0R0n#Z~G6_H4g~?{oh~U9bMCZc-nro7GdQMIBUkV1@A>EGyox-ct{#$J9gW zNA-w$1OKD(H++}-6SZCaQ@w((H~m5VQN5{tP#>s$>QCyh`cC~re+Swemt4knoY+Pg zI`we)YvFTrvpLC)l5`xNUeyC?YmCO(Iq%oN4gDk@J0*;Y)>7aSs zig48TI2d}IT*uJnorn=#f`gI4E2dG<=}Ap6A9OLihKzxyPG_vrj-tc^ANv3f#%Pk) zksL^J%riJX4v!}v@c8g%OnMzbUS?x?|6ojJK6sVHa$znG`S3JcKuf$^?_AR$6ieE< zT8Ls2_%hFI>NRTuR3WK5Ky`5=&{ZcmmkFAQ&0}J`Rfdbd3x`h;?sho>bt+*b!bT6? z5J%_{J(887wYVW(Ykj8@c%d-{_5>%wxd#y=|4yw<2%TtYjaS`Qf$8dT3OJGda5&c5 zZE(5vSf7Ro{;Pe+2VVGv7;B}q53Wi!5?8C3;KFO?&=uO);CiTDzcv2`KF<0si|tb| zD5SNT+Ra)`O|ZpAs@;R6ZE=-XNvx?6bdObyQF4ai@x|Z(+cc&qhc)OCAXgIGakL zsbHpR#wxJ0m>4q?Omwa#whBYBRT^8K!o}wx9zHiy0$67Tan#PPSqx4kJZgwg4e!MJ z<$-nKsbH+s@;L-ric}f+;7v+Eg?TYmiY=9BQzauYphV*<;B9N8tTzX|3_dzU`<6>a zURH8dn7ktQb1GrVdQfe|tQL zoDsu#OiDZLc&-yVoHbMNI=3SRD}z{};-a75hYzTQF7)Ytl*ON!`efxQupAfGNXJ~h z`*)VD+OIKLkPIy4{p#gD``-x%=XNKU&4LxmLbFk%1_JiE92mOx7hK{)y?91qfsZ&U z(8AWg0tZ(9tb*vj2GvyrnGWzhX6*5^3y5Ogj*m){&< zm`^4a+1~mbZ?%Gsci%zB^|?@aC;fghHTJ+8kn`S};XNoAX}fdc$=2?i<{r-g%V|CW z*k~+%*c|`M)9(1+op#su{pa2~zr3w99d1Bv&KcOyX)>Mq<};|k|K=P9l5NCui|cz+ zf?_?#6c}qmucqdbo;e-|$K|69_8qL{H6uMI=ET)%T2(v_(+HGK>2pB8+9h(f(AH0R!#AFG}9nl0#Wguh>~Rq%))pXwQ}t6*=z{(^kY zr#w|~gy0xK-TshI6q-{3)aT3xu|%+3aFJl0pzaUQTO;&kf>#N0{(yGw5qwZk_Yd$n zfk3&n)~3%>G&08`^67|HKZq7upU2=^dN^gZo?9?QaH!zPg5mulTljf`m69KA51q{F zXAu7?$29?%(Blmwu>aW|y18~qI8x7Pl5O-Tqho(&nUAG+7IebXT?d}!Sbub^2VQNm z;puka++`i|JfaRg)8peL?OFMK7Gb-y^0yjHgad0|)MI=rJq!6fY)|(qTe?xA&v*~Q z+tYm&^bRW%2vdiS=aH2M((6z`{APmXEE&%`d%CSicPoS}FR!vzd3hdMaS&85p>O?z z0dbaW7icR?(bMR#AKMsK@LkC4>E4Smu@yq5%LzOy-Mt7~aS&A3qJVA`Y>LEG)! ziZRk^H;##xy+a6FacJT(*ehT_oF)4SwB6oT*sBMR`9l>2?8PF26$fnn9_tG>h82uP zz;4go%WNy!L(v2F`aq9y(&6b|Mk5>!Yd6XVh3UP3N*khMm-DbrF*2o4aw=xD{ed_@JC1KXKADing*=np;KfK<2;n%vBfA~vNTOu03)HD!luQ`A03=RSvH4?NTAaQ8YKd!*N4$H6{_9WTDN z&oG`i=(zf|?l0_%iJhJIPIu>qh)uJ;u8y4&pNyE!O)u{26gxGKoWl6~TOB*xtts)# zn;n~af}!`^cNk+^>l|rM27Er2JD_6AEf_A3*Nc=kC_IPioF=O{#YxKkG(C?sLTSKOFV_ z)2)s@Jr76yqvzqcBmED@t$cl-!}0h*#||TtZ|xPvJ2$+zFFI=0*R^p`KQ>RA_4Var zf9XCZKceOM)+G1NeX&u_P2~S2FE{U(?npoPzE($l+>gyO-|6m#h68DRd)nPdqZ`WC zEAPp@v-baz-iiODaMg9_Fjq>a+4@j)Gh5I|aUC*#xN7SoXvv8DP8%E>)%Saw@5t`5 z5vS$GPJ^5q8>gL@*Lhrm8yshpQ)G)x1%R?+N4gL`gW&V zT$}Fe6S={;DPrH+sMs4K4>@$tNN-JOPH*kDBR$`->FV6fcOo~Pa?p();of8Rh{VHj zx<~Xm9QQMN!$G|B_*qDgh+~h4+7P*E<{{_LeRGl#Gm1STZfYJm{c_MF_6%-yqenz+ ziqDHNd&G#lbDw(qETj=PTn)LePn4OjxX$)`-HLq0r{_nmXU-}{xtMi`Ci`ev})?rUZzOQDUCm(XQKG^DLz7DNzAn*6Q z?Yt>svvI0(V_xcfS!_|4{&Anj-QTq#esnjL@Jhm!-RJb^-}BEs@99<3dw8GL zKF{@C-7mj?=fpP?Hy$^4K;MD82e!DqNrRHVNWOc}f|TP2?;U*4kOjvN8T#eWJ5KPP zIN+p@PrBjc;$iWrucxj}%Sk_+{%A%`=8)l^4!nKEkEsLMx>AM^c~ zJ5QZEHfr1x;})FOYy9uVH)gwY-pE;&J9xrd6PD)Q^~}v@4n6CUv&NnM^4YV_dH%APF?iGqCwSHR<~ArYhJ5Kuf4YRQ0+N& zJL;0_SJ(f!KKtC8&pmifKKXK)0E6-WEa^>cgPpy1+<##KiSGiY>Ts3`_ca?wD z+Ev%Bx_i~5t6o_3#;Oli?OFBJs_$0)xa#1lBddO1^$YwFgntC@E66^8&I{1J8*$bm zt`{~&!dCRE?_l>S*k6fsPFtC{@*vXPiuAq6N8I_JAy4a&w-Z+U1NmH!{0=_vTjYHO z%HUf53d%EOS@g1(QNHm@52CD#mLxCPg|cTa{sHw++~jQ9hI)zdKZZJrY<#exxZxn` zE&JR*qYjhnchsFzcL?>GUi(^&x26?!J*fJLMN=1jys&!V5wt_!s=F#PDxY02aly`t zxfP%IN_~6F7nOfoR$q3Y^xV?@-dgXzk_9E7dCvB{f6lCPUOs!=*^itx^sLQic0Kcg zGk!R|?DRj*&z-+@-f{CTnfv!So;j}-XBKZNGKwk-cg`L@`}%@Iv(BEieWrV6^Nc;y z$4|d`+M%iQram$yZc5eUmnJ1n^5?%kanQu&d2dY^JYiYx8#(Tr#_ZpX?=^nGX-|xc z8aH?Bou__3X8f4TNADVyGOBLmQzM)sW}I?e)~CaV46n(2G~;l3PWsxk*HhzDi-+BC z^2a9)ILUkB9VdJ_bjZ*J$KNw#@8IJHFG#t2&=<*rlD$bS?%f0X4xBq+<8f~$c23Oi zzq;RZeOvns?^DzJo?d_M*}vzU9#?jMB|#;O?$!{0f7j3B`o|S@xh(dj&WB?%V-|M0 zE&9W#_^3&dD^pj5#KRILfjURvbQQwbF|M13LAAQjOgR|dndGE7# z2fthS$1U&de>>~#h4#DzT$uRh2O>f z?yTS5_tL=^r@VOM3t#Uzb;lLk_dGxR`HP?X_}TPl*FN*f(^*en{?r#wj(hU@C%%7t z#^b+vEb_6kM_+iv{Ydk}d$#3lyJKtQ)~bizcrf$98y@&&OU0I*_m8~)w)u8-Em3dB||UybltVA6$6Pg-b7-df|WzzhC|8>Xy|@Ru`;3X?4`Q7G%R>popK6lLFWNf*?^mP`M6 z=`7UCPnS(Y9UZ#7@QN*0M4{exTsaVR_~}*ISKoehBa5Y=}l(f3k7PHIH92 z_}Xi(b)g;hUU%m8Z(g5w!!tKz-gw`QgErl=sqanK-juNU>djqmzUt=qTQ=O%v*pH? z0k__9>xs8*yKT(vFWo-lj$L<@-+AE9Rd;o{`{uic-ShlC1^0e_?~>od-gn!5Bk$jN zf5nzxw%qVQ=7VoMSoKik);qT5Y}>P~`C<1XFFaEAXyjwRd2Ghx-#>o+6XTxz;>pXO z%6j^fr`JA{{_MxkUi{qf=l48+#r9Koe7)nw7pA;;@WuOHI_tM_zkA_#{+EZovip_w zuTFaHpRYag`-Oi*!QCkKf3YbGj=C_^2sMHpL+k4vS;s}`~F<>S;pr-e*W|qE5DrZm*~B3?A`d) z>3<#g^_O4Yzpvq&(SK9lzVhvr-_6;7+<`9-Jn((f599tG@#D@PulvdKkKjaeRKJi&=z&sW*ls`6hWLLY?usg@LreX^qbK+=3=PAc4I% zn)s2#A|W_C7kfE4rmO@c_vL6s?q26+9!=~eu>_lW+|2S&v`gnDNJ~?*LB(<&*GPH> z!sR5L0g@lEi!BD=jVth^$?(iRSJB!&IE(4k*qs)y&5<9TII{7NVFMQHKleJ%A!H){H*7xaodb_LBb2}o#hzQLpBoyvNi&xRA`dcJ zsLg98A`_&-{||d#0$)XS{Xg^OC3y)Uge2^UFAx?nWMjt&A%qBm62JwO8X^gTLK2do zV5v~WwQ3cuD+*e-R(}<6skK`DwfJ|NY)MXWo4;fkf0= ze}B&B-TB^g@44qLb7$Vnxyw{&!8XBj3ml>ezk@jSoy$05)Vn};Ps`n%WANPc$*swi9q2jN@S&~qAG3Ylc| zx_U5@B=#jNUYC^QbxB-m{KXrIO~zlck+{I=MXl*S$PFD@r#z2^+1%6Dfpns`vQR3+V^SZ%gn6yj0K&*#9K}5Jjfa1Bh7j^ z+ySD9Vef<2kMr-?WWpFqi<-W{4n(fZbS3r*a%+SB;Y+fI_*##rR`vjVoDqSB_}7aY z2`FriJUj*wLwT?jZauIk&;HM`{nRP(A$ysX%YiL38#mbP2VEnW znTu!UU}i45Lz`K?)^0y|6t#3#x73`n)O-Xg*`Ck~Av}Pa&gUKE_VreldZ`7RyPG@O z8yofJE%I9CO&mDDOKb7YijJBwqIdwO?iQ8h4PT#Mlt1#2Aw>u;nK+xV&l&>7+rM7r0naZ8xWtR@aEaD1p z<&iUygI}6~#iKFRc+{cABPJCMC>bzd;GrY)4~Dqsom}7zj&eG&=glwh9$Isx_r6mQ zO2JfOt<_Dg>!lTVXOwzfqTY%E_;WEG*_*J)t10!WOHV$vYEr*)Z&kq%RAj`^gCR1) z>mFUas+<)r9HAew`gAq^wR5ERgEdhvuT<2SdYBqwezccUIt4kxp^h{22Nn%Iv^WpV z=5>wsKlIR%gAXY#>u;)59YyW>k1(IlGF2^LRYTqk?$czN_OOE7gC}|CtSRvJpx&H9 z9n28szDSr$-O2gUvAMj)XLb$>=2$Op!Y725FTp`3X!{!#;gd<6^}DEP(Gu(9NHR&Y zvho;bNpnkGV{AVoGeNqkVMTpyiGxpM>t~7LrXc&XzT<-8n7wSFw5*}FE|}%qA|*AI z2)2icrQ}5F)8{U!KZch?aZ$;r#1A4#6{fQeEv&mW7k%-PMQ!$gviEp8Fb8`7=Rn8i zM<#4^(y58*pJishf7jj5IoQL3zit1Idum2r+ntf7WK0V^pOI(F@@b&FJ=uzk1)-f8 zd6SEv_}}^6D(lkiaMCufje^e1)(!+)>Q=TC#7?n&k#(4xxfDB*lF!G8*-pq`xPOKTnVM~N_=3>Lmn_))@76n=&vjct_YU=OiL@Ju4~eN*_$1aA=h zp5PA!d0r_0gz&!*{x`z&U6t`~3UBtZ0{@=yA4$B2{>S;_-(@fS@^#T z|Gx0%dq~jl;mwNW=t=~iC47J3bA>-t_#z_O!F=}!>1xQMvvOY)>iL!+xl^}izcC&9M_IV{Ndj|B0eX80t*bU}`UQjS&~Vt+x- zpC!-XCL#@+#0i4sg0!$Poby?UvjrCj)(R%h`#0AW%=iC*PYC~WLG!&bguf*G>w<3xa>SYGKN6(v zkbGFse76j|`ED7omxT8d93(hYkb~Atf0$soV5Ok>jv3<3cg%nbB)nGebioEe4s}!C zIf54nUMk43Z^myDyhHFVK@NvA{xQKP1%Dyj`K4ADv zK@PGrevn|kV3FWh!NUYO3Qzee!4m|(CU}})y _DSxiuw*I6*j|%=wkdqCl|F?p#3I0*ge1{G3<~wXa^Bp$eM-qQ1UM-luP;iXk1VPSTVEoa7 zoW4N5MsTs<)(un5^2%Egg#$lg$*9OFns;aK*L$oV#^qQYyBf{)_ms%r$KTg4~ZkO(I+j`Ri`{6Re^$9gailGfvO`0aeJvg*OU zrTL~pnVoM$Bd82S-6Y-9&*u;hC0AQz)be$Q$IkawMmkqL5_;{y6SPeg(o-=FM!TZTaZh0g`>EnoBHb0K~Kt-;BlsFKF<{VPsiQS7|& z8dQCp-lu7(;|}QK`Bl<5K6l#sE`h!%gmU5Vni1$b6>|6m^eB`KVP--aw-6p%-`&uM zrZM`Mzm~6A^dZ{NpD{{bnsDBz^Xvq<+-Upj(fIsJd8H$w>hn?K`2MMW#!QR)yASzN ze);IX210f{9=6(r??PISJ0XW+H){IL(ax<$`y=EYv(MS`L*P-yzxNKqHgZKy z-!0MBP(OFV$J-l^VC3e_o7eW;Qq~$y2n!WCgEH^GvOMY8;@0dkcO+6B_2KqRzP2IF zoog@ZI|q|RC%e5X_k8%TM;YqtN~?5oHH5koc|JF@jc|0Qq21iK(Gr)KfY?Fj&a#6C zb7y-&&>PEx&YgYVXosP~1&0X*P*g8qA$#55wHqdkrMr zi@>BXc++p($SfvHqNG22b`iz=*|R6pYi7?Thkpf$6u#Cbhy5elCPI6XYucTKa5wP1 zGPSVhA=qhy5P$%iw&~!&nkkJ&f8egQM!K-^JG8qSVB)z-`xEuCBH69`u$oyZ1 zOJjZAQDoiOX{OYpeQg;~JeJ-FQgtoE!5v4jp=6ICJDzL}d`{#X@{{2+HdlAUYMh=f zzX9t`ehSBH5$!igIW_)>EKOtX6tXljb>SP8TS1Mx!FJ1lXCi_!-8o5^pje!j>CWzo znN;xiFV1_Z2{n&-_T{#_iL);jaLD zGaB_!G8@X>B41$@v{WO;orQxawZ$sc!Z=-cg_$5b1E!fLwnHE!}utTen=xy&(AUu7D~D~UAj!qMt=T>+amUd z+2XbXk#v}Vh8*V(dJdz}@V;}@8pp&Qkww2uo7J^WA6^8G0D=C$Ma$T=e*V?YJ5?f(eK*oV}(J z)?R^>v6RJClFu>Fym})&)NHZ=21JFJ*2Pr(GmJRRZgJjnd`ylU@9GF~{17k!Q68ly z@Um`uUi=c##uNy|&y3_>3r-wCHN>B|u0~)kK?UZ;*%78E++qJ((yJOa{h+9(dY6dxP(b1ZFWXH zFn8=z&j7RcXKY+m-CWmF-OyOqRMWDgp}zT3%m@qiYUC4;PJ+UhD==ZG=RnRX$}b7I zjvLI68n*YS(eB`WOgGp}K*}FDF)rcbj++xV)9UBYnj7*g-MUnYcA1Ib<5_~wZwmB4PjFnSIHiUwX>RP>zb?-C)PDJG*517s#$eB z=I!{Oj{A%sd~2@Zewobfvu%c;UooL6_n9k?26=XY8pMuF;Y`-czh1N7R z@nO{8YSNT~p|O1+{SUlZy&n_6ER-?CQQ6=T2ehWb;ZadWS} zz*#u$_4wFCwAkdd1GB64e|D98N3mf=OD8`A$3GZ*uSxyG;f;mz)Yl?QwkC$B*ktv`<`fI$#tX)*IlP{QEp$l+T8Fu z)Y^WEgc>K@3HDxuM8OW`eZ}2hOi>duj=$6FJ>LYmeP-K^?A~+TXMK zA;lwej6RR~W_S&>DE83HK+iGHCP6&sn_WGB+ME=l(_(C(khJBo8n)B<5EeYzK1{aHum~YsTXG>-w)makH zGoOX?eI-zd>92>QJbPvq&Y!Uk20U7GA)dP0KGi3F`Z4z3(&5BB5yc%U_GpK&HaGrQ zY{Ff9S>n^SbuYv7Uo4#!j@*0-=Jpi{ua}te9P}Z9XVidEhI5ANLjuBiR~S$z;eC9h zya|^RG<-lToOgu~x)RS}=n$D32;|j4o+?5^9n%{_=u+$z44)u4NpPm%T)}yQb%IL; zmkXM?fzWfF@Rta(4^Y3ED+TK&a|NN&@cDwg1Q=f~SSfgv;B3JY1y2@SM#OnF{SLTN_|<}!39c8U)tK@(3f?1V z`W?a_65jMb@J|Z=3&EF(sLUS(|19`d!G8#TAjt6n%9}ZQz#QSt96j(HFkrmtx4;tN z%^W@OlZ2llI8(4nutw0#b%ng?&%j0r=U656a}0vW!3Op>)1QIg75)xEjy^En?9~i> zT==I1Ul#m>;GYG}+*inRe1hpYnnKk6oyL9xp5qPdmr+6Uy-V zrXHrhqCDfsLqCb~yblxkpT>0Qf|*3LKbpXx(aZKA4~!C_54UQACLicE*9XwtH=x(t zC!n{8<%K@8v=!;A$s_%8sfWo2iA_F8XY_(MdXat<^8s(l4?Q!5uOcGxeBl=mp?9h9 zjYO$0ydBb)HFstVN`@{N%sF9w)2-5?nGB%`jGXdiesFN44$?7j@CS2A%E0p+^L&#O z*?y^TWpJbiVfp8|=U+4X7Uh`k95}mt)4;b^zLg@UMNqz9!Ecw3{egW+Nz3y%0w||^iwX#8`FKCH%SSnuP3x@Xv(rP%yD`|N+9&YRV3-mEx)|Yx!-w~ou(_O5J1eq79#g_~E!6gWz zKI$TAJ$V1M^W9<9BU|K{j&qu+TkCNZ{0vvp^4yr9k1r=$4?fFjJsuT(nvUn&Cgw%r za|wPyJt#+g`qrfN*bX7P9uefL=Y#!0^PPkYsaxxDtLOt5((+`(W9#c})uS&YRo`gQ zr|Iq%JqpZ=RO8D9^`IQZAK0LGCQvG*~Vr zmD?k78otTCxgb!>$GP_Er!3`o&sJjjNZlZ3xAQP`x&;VlJ^0S0^@u_azeWTZ>W%+q z$|z}G-4Ot}fTlx^>uZ!$j)zQSM(}flDXG4~@g-54 zWMY;H^8Nl%=WdNI8Y>App1akEI)H+?TmA8Nian?&Ut1a3;0&4dc11?=4L6l%KkE!F zt*n@uhFMxUkCn9MRJo&4Zs@-|Y1cuM3oHJyy{vUeV^f7Y<}cf^r}a0faP#K7*Yf`9 zpNp_-?ztSM=F4alPD$rroq&K~4%R1NJibN-bFhAo5bR(0Ge+?JFPMWhixHs|3=cZq zW*&47)_IJGr2Lr>PFaPha5#yt8sHWX+(-rG;nf*fCsD|sfi;(2GXpCr{0tU6T*o`Bb#9XXmzCYiBt5em88^Km>DE|pUy z-7K=9E1c9+a@m6o7f$6Kb#9K&Mbfa3UJuGO!=+(1lwsC`F>|QW`QG66W)Yu;!|a#a zaJU?S8P~uw$?5hj_>*#Oz%iL+Mj_n68QEPt>_&TRukLOp?x(O@bm=m&i-%i-*Wp%n z{?wh6y-wY+zvKzs_Ln^IKb96h8>fr^z0Sn1cPaOhA;!JPtyc@5M17U+G*z8Jx9m7eyG%SuL^X;~1=@(Wt4p z+hPAI-t>60^qiJ88|h)e5RRiEiuysvONjrjVi^BQqPNWO{vjEFb7h_*nIl!OHa3-6 z%t5#@h0K%4fe9817muiET2{ECxk)EA{D*x26H^45s~0vjVLZvqulTIfE3(~!q5bnX zRbn^~Cz^e5rspm;yS4Nm9SUI{giLuQ?o4#E939nPME(BHb}mcd`1(R*F;c}eGoFYqqpT!YEH z{eNM5rtEc$zU`&9?-BaF$ba>Qj`_Hw^m&XM>pQ!zGxpz1zP)i{{x8Rf|JpI)xUo%b zzdvc7?*fswtL?3E_b#mx$&uV{8cL z;~?YB7#nb=@N)&{3DyZN6*11=E0R*bM^xl>l?qn|M|uhk z%{J}}$8$qDrn>}Ab;E0H%r{#B>b($gw!W93uL_aWr}-1Fh0`?fI(+}(_@a`=eIEhp zXWW~RdsT(3I9|_ozQb@$Z9^FI#Hqe# z;MX+Nu?_l)=n>Mmr@-6#Xv-=?7|X|NS@rS0qiNtZ`!eLB&Pp2hG6HOU^Pq(7N`1WN zs=l}3XBsV2F-|J&Z%T}#+a;)SWl%mug(Qx0{}R7OEn*=oq6{eu9`%!73^~(0(t#w zzM1f|Y_`6Y=+8$ZOiA?>78j2+hCexUWD6WWy7TKeH}EEJ*#e93uNk?&`xdOT+!J|( zUo49}64~N@bMt2NnP)AUCDX9ODchS&AERgOR(IPGAM9y#wzeJBO^ zcLq6!Jp8CTa(a0*4}W;2$`)(O8;8Ol%p>CQdnpSU-QIhdyWJhHWasR5OG58#D|*ane8jK%=FQ(< z`&XP?zmJ98GWgw6oT;0Grtv*$;|!+^L2URs9701UBF=M@KQ<6~7Z5fB^M@SIkWf+~ zL(F5z@FgZBh4W;>#(?A7IHw^vl%LPYNYXb9q$ESe3#YtgAc=PaaN`MX-M)H9WRG<>@LEZ(UxAN=1QE%# zb@+ft-zN}10nSN!j*>%oB>Cx%57L>4MTqdz4f!#=o8X)znu^^L@+AJtx*NV7q${Dq zXW;yFMvgUiQfetVQS)ON+zpvHFMc^qL>bkXavHVfjRd?v7Q+pgs^z1f*f z(3G=HN^?Otvk@MUFZ*xIB^_D&MW)X$Q5At#-9GE0DQ9ntrJQZ2j9;ZlAv6<#7iL@4 z{6oZYPJ#-=Yls?ws)2w}z8A-U`of3g0|5EHH;96Vu{75c$HB?ETlft5(X--42k;DI zk`Q@v`7IctpAqlP0r4V3-3X@`FJFKH;*%FjMqn&!9$ztEV2&*iTThyWBo#(O6^@2r zm@?mLNx~N(aK%@Goe7tOp&_tF1cxzj6X3AkmOzPABuITfFLl@8jby3NT8+z~V@yyL zfn`l~R%ilnhS>c48$klTGm{sOHPYN71lKUrw=&be{M-L)^WC3 z(HZRPk8>96>yQ7E=3o`4IgPSGe_watz)3|Rd-dj!wm~HbI;zNwIq34wiEbZnRdnd! zLT_c%ON$OH#NPH}iVq$*u<+tIZEremG;erGnU{5rw>-MCcma0e&#NdLQEjwg%XY4* zjG37#mYjhAtRb9J*UXiKcx0(wyrlhQo-L~y>ztX@d_1VGUZD#XeXlXz&#dMXPn>e7 zU9q%fdj0H?#R(%9abhULv?Vhe&g|?~_hvwV!xD*FSO-*+bqGc*{FRnVPOa}~h(oIs zq+|}PsHxrl4Ewa-YxcED)D%_=qFKk)^4O6j$4V`iqQ#J){?xi^?qBcV)Uf8C<8TT4 z19PcqY;0;+d0^n=GYp*Y%o&Uv;$#79%!a_gXn53iceQBX3v(IIP336?7@^69rSicDkD$`L; zw%p!wlAG;5Yv$`w$ z&tp8TS49I)o zxb8AuKVK4J#C4bP>GhG-m*IF_e0=v)YmIPUwr93 zGkO+F!gZPP<%{RquFK>rSd2PehdC%F44>!FoDw6??A~efhnVujT5)(R5qn<$sIiI zp)2lg92aBXPutC^D85wC`Ojw}t){J{*@Ruk^Gc6CL}$g2rP2BraYr z3yqh{V7PYQQU3T{TCwQs?;~vm=2d>6AJ4UyR7K>KK{VsV=yti}hxqe!8IGhTezM>+ z!J`CE6s#6pD!5#5wctg9mkVAac$465f_DpU5qwziNx|m@UlaU`;6I2-xO1UXg>X6b z6^s&5kKshz*39@Y;^#>GJc&Prh(`IkgkLPk>7z`4JrV7EuY~_p@JWe(PWaynzfJhR z3w|Q#;ti7ex)4#0?!xyY;(U#ga2h}PJ&Q!1>jB8G5PpsD z>xBP~;6@2IYtW$Q2g2V=L^)m)IW((jSN22GzJj#WkT?AX$omQTJVD-Z$n*LqP86If zI9-rNB*q^vxQK}Jbef>)N8ncozeey}!HWei6Wk>)@)GvfydntlkrK=?8u`W2^Q6K4p{5~OvW;byHR z(5$rtnt2Ssb0q$J!Ak|N5ZokqtKeON9Q&YN8uW>#KLdX*{I3LQ<7fOI1!?3bzf16+ zf~H?1JeB0%%Gc^Q4|zVJ z5i^PCZ#jZSAJQ`^&r_5L#$30+#XO(TXYPYYk5^BV{$?WNxsHMIMjswCj6TTcQxAAk zE~Kjvei{+^&li3H5qesLUrB_%&Qd=Jq6p^yjA=&kU=dD>p#-VfIdDqat`xHM-DlM!1H!5=PxNWJ%MsUJ zJ^0*!Ur>(?kYhcli=_29Iw9YOt$N^c2=e898^54G-wHqfGnKSFt3^)vKd68pb&$U2 z%LV1zhA@^--d%Iw@|q<#4D-3h6H`LqVPo!qP|=>)pve^zF$Be<&;$4ISKk+guW^WQQsgq z)pu=zzTMFGt}20?dap{*mxl+)VWMxarH{|2OrvGmp5~Zu{UFE?Mv-{sn)I-|^e}_T4{2p>RosA|D4pBTn7b^qQ zym)W0x`!DvlM8U|}SGvR01Y<(MWasLisN~*80c;uL)L^@t$+2Xfxn>CiRc6jOMSEf{ER65bCrl#zSq$KZ*BoBIiOlxFj`p$6r z*w)A;V_TEw_ud_D9n+dTv&Zi6t}(6QnbSV@TFWX9nmnvxY-@NvLf;?T8k*mKa=2nl zYbd?PZf8gD$xK4;GfU1dp;V* zO+(8j^b1GlFpY*luuk)7o>e}Y2J1Ax4hAbLxrE)D0nuQc=FN-oil$%I>b5K0{gu=WaM0 z=_6M_q1*Kd6O7Jr9oY=B?(Ec3LbrS#=cMxe(#_K%!b+(3tOtsT+*_*+I-ag zvo3|~=8in%aNN|~yi-pdQ8*+2@WL4*xE#`5&tqtM?tC+sAhuAD!{iCuiB~i%T(PXK zzNNXaw(g8V-(WhqZXs40nlIYRX3ILh9ormON50z*VaKwI8=gO~oACZG+T(O@I<&JEM^J#cSp8+lj#4_Vt-(N48H82sH^im%>? zEdRcgK9BKOzB|S!_OHsY_SQGzvEL$nTlRy#jP;Ey51%)D>Zu-somt-)g(TaQ{hQ-~ z6M;%b?_RI%#H~`>>y~>NLz4`GaWcH@vn2z2CNk#x5!dU{MnN>=4|rD3C69M14z)3y zHWVVqF^Mw;&3FTN+PxTFC%9B_xga017=NDNC4yH9UN3mF;O&B21RoYO<5ke}D)}Vr z5hUTeh`6zQEPM(YoB5f&8i9wBNBlTJ+LIVhvhBSvwHh8(H#k6WpdjBtDPJIHUSGhE z7rsoeLeR7i;*S^JjO&44D7gS@z;FC>u^$U^g2DKd&Vv|7l$(YNKuv@t_I_QU~c|IQRp5 z80BDE37+@$4s{~J;_MOVLu}i=aBOSJG2P{GsvBPCF}Rbh0QFvia9iJe>O&;;Y5v3w zaGC~QX8^>_q+O#`oU4vZa9 zdW1CYN8oLJrMPEkyFhiIk9lYss<;LED5s=x&mh3oH`CI`Yf;PhC-^lDb!>&cL-b@@ zaesi{);Aye*siQ^cR1DezwlFE5gh3iTpO<^=wtjxaJJk-P&R}KgcwH`!hxu?jhR}c zab|lbE1Ys#1_rZyq%0(`>rrd93;%_*9vlxvQ#6`HIAkJGu`)o-mvx6+K$9WI#ac@0 zC0fnkwBVky7JLwS%o>L?q<{Lh#MVhkR}r!HsYb z#GJe&-wyU&@JYTM?3?r^+QE{-n~^Yu|6$2hUJ^ti{3=g!6}_qFGkA7Bj;ZW<$#dw% z9%r0FlFWNtT9^O9F*JipJpK`<9tmG)1`T296X~7FD5vX1h;y?B(+^q==WaL*b<3zl zY2Bf|*`7@MJF>J%y1kh8L$bfY!R^f~ zdm;0T3bK6|I~HuWpONj$B5n~%nvBY=>YCQtk6#Qx|?r44q&W% zY*u%Ku)@3rxuddk!InT{j)wKfM+nE~LCLH|&)aaQLO`!;;F;v~egy)d9Ev2DQSNiw zZ_QuZHndN)3%@(aZPw(ohB!wtV<67pXyn?Zz*YI_*?x-j*fKYqzV_DV$)dZAm^O}D zTYImO3M85Q%4=-d+l{=?wh1@PATq3tQ)IooF<#2cbuTa^;o?hbtHH8$BiM>s+b z*BpN?OU?G*a++YRJYbbh-0crGy})Q&cxK%xO)U!xPr-g(=v578*888+t6o&o+#<&2 zV6hv{EmpzR)-5Vn%>UzHbsR2`V0By){5ADUT3`!qf*5Xh_-{o*bpGD3J{{sl7U*g-DLI0EhZRNW9+Qx?F&aQal zAFpjokMfQn#D9_UjOe<^c`4^7UyyWR_#*G(FMeIx-q%qDH$lHAcVtVC@ApRffE^u= z=N9n^Dn{+u(fO_(BlE8juwRB9o#n|4N)TVV&e+lWAT8d4%yTyF=pzGNqPOi|ZCe9+ ze9zja@%;ai?ffOQ6>Z*s7yMX|HYSD-6dWNqUT_K#&mVJypHIY%r$+eGg*S8Pq30~& z*GN2H=P7@g@Yf1|qwseKf4A@t2>)Z@jnx3@&0Koue^KK9DEPmE?}@yzaYG)DG^SqJ zM3jFZ5#eUeJor(<&lWj$CEHd`yC``b3t-^{$kPZxG^PyTRN1@CQ-Z$}d`0jL!R>+{3hoy4 z*uKzj##Vr|l#uTyI7o1)AWbKXKTJ^j(GkMamcsax1WyrMBxw2*;#-72SMUNs?%%}p zR|;M)c#|M4GK}9U_>iDkqk(YKuYhI_KJa;oH*1c-zb3rtXW(hlp+2)#1E^yuW~~PJ z2>TH*T~Pa7FX3soW4!5yKw5vuj}bgvaI)Yu!I^?I{7~Mk-2j@k8^F^foOgGAuL_rl zkpmdyzXa2nt-gRc*nUbH_c#J< zed8>By!UGPUWQ-OP{+TZZ)rRA{Vn2bebb|i9VfjdD5VGr0WwlFB#A`ix|3$GI zO(Gnsps!dNpytK8Th(*E2|137E2)=gHLG(s#+=q7kk`NF%k#*x+4}MkNZXf^>Z_}- zYdUpRK|^8Gr;f&cMi-Zi@+CVS`&rEn0!xVBe#7wJ+}CNmzeiN&Wqf4@m>_xZ}+gv{|h$@huK;aK^?1MLk4q} z-vr}@Asx(F{%?d}bmd+~Y+{6t)o?@tV>LS&aWx}!tY!)$A}PNlgj1>!g>TEO^f}(8 zq0I~l!K-tY`R6Hfmbtc3=PYlAMDj2k+?*d%8f0#Z8&*IlB^Rul^MnZo`@cBL{s_qc z1f_hFu{|kR3SWdfFPg8voJbC19%ejb6`0iTL&ohp7+&U=HXa9m5X3zu^)fOCF^^xv zbwS^8Zh&~YJ15kF<7{)R!cKu48=?yHS($G^L_aID9R8#nHc;l*ap-<6gp!+>lNtIk zbEVAz8GXht&g^5TA|-yPg4+dJV-wsiP&Wj`$OXSWqbyEXm)QP*>DK;$U3FX{L&qho z0T6#&BGaFq-95fwrFitrN^+*-PumbKTwK+>&Shu1{=*P~E#U5kFCWFEDY6Sle z^H@6;e+{_yi#8Jd=-?vYnY5$(gNGtQ9-QYitueE&{bX|xWQfUz!=bzc#)i!DV|YNS z)s1b5K#l(W$G;*e#$-0x{BQ_|{I8WBn0@^p{tX)WFIb4~5VLvX`~@~|{GkLkZ=C+v zj&OKzrO_6aUCiEISl8T)39r>lmz>g6)3gc(aYP3O@t$rpuYXC2w<=1@_s}97z5IbE z4YFDZh(pAW$9Y`xSj9K;LLN7CPfYG&bav4 z`d{Ta+rMP_(P+OT;(z)r;dcs;=`h3DFLrsG<4 zrZeBHL4KD=_y$2_6K5A=?_|07DoNza5OJX3A%Y_W*%ugJCU}J43_-pxG5%!1MS`aZ z@)e5lI>-Aw;V%-rT#$Ak%H1e zUYSGwD`Xesn+Z;7aCaI7Kd)aUJXRWF81G1BhQs=K^bOjBXwP69(2?hPq&`iz0DhYo zM_LL8e_%gc0G{dfuBo^fVRpXnBVV2a=4(s=K&HC_PIbd;CWigc3Q+H*h_m&DaTBgW zB=s>|>%sn_Y2bAZMupy^M@ZxD0k3{WW#QTTPa;FmxVzxD^F0Q)>m3MVzNk`=?@!>@ zH1Im_Ltm60A&q+oysfVS7oN5Y{|U4n&%v*0s3HdulvC0;-d}8e$5{F(ulnAAU(--W z9wG|#WLt5s!*A=Wg+87q)|W59s_*acQ(qAriSN{(Bn(q8Tq z^_$9PKO4UO!t&QzolWB&#V}DMv@;a?edVx6FRYxk!_DYbnRLA~q~xQ_XqNZH)a>W6 zyTVBsJKc=&t)Zvg?>y2PuIjNn{gY?j356yg#P=sB|8=`t^jd5B<*&6y);==e{L0Iw zW!v|CmcR{xOW*0H@7(UaGud+n-cp|SY|eGXty!6U*7h*ymJDhQ_4~*6Xl2S~%!dEA ze?m9klf3p>bPB(3hTUE04{kMj)9HvGW}S4kv9jX^Hdg+lo1PcgSpSL;SVj9Vg8%!0 zjg^CYu(AFD$^8u@)W&)ZBO)m^gmB7_5f2;dD?WD_!Hv8L@YXZNpAUaFgZ=sN+*e3# ztj|Cqc{2_&AO0!CxjA|T9!+k;HK=Q(#xl01W-{D-Vf$btjjWW(=zKWvw~8>6(a!^$ z#sOxxH*bIVf_GXbIb(YbT@g zjLFtaMGsxkyGw)PM%e_^mVO&cmP_^lxGu2t4rFDXCWG1ShRKCYdKU^BmP7pMQz76E zdIHBw$#U4&&0~HylcibF9ZZ%xSm3V;_H;B#`bvroXDW`frtgHuJ(Oa_jOCmIH=pdO zWUpiF2(s(R{ukK-vX6juGCslKhwwGQb%TL<1&%Z@cXO+}D>9Rv%m~y`pqo3_yCRa@ zMkXg2_T}54Q>tZ+BdLnXcx zVgkZn2BhZ@B$s1?IC%I-iw}qp%yk+2Hu`)7J!@j;;An_JFTq)+Xmk(r_fC^|5&RdM z=qkc*;XJ2t%|?3O^ut;H_kAym%mp2;GoMgtym49a@z8ZnCY%q4+5c-c(&OiGGT~}C zv?1XZ<2{+c=O-ggk6&QEY8YZ2*27ufmS-K(;BW?lwu#m2icHpvjpI3A4{e0skR`yz zGsMzU1KOKVYrMx3&VuutGtb^gk6-BH2{)PW6`_sv`~c2%jwL*<;Xp%F&7!-`Nra`w zdjg>z&cm?w#tY%O%n!%W5L2BE=Q<}6DB(G0`J#R)PDGF)vbV#bT?h}udCtnvMtb}v zoClvFif)B-of8PYC<+i0J;BJ~&>s$W2vFD@d0A;A_fB1+-?CJE29n=`$mUW<*xx9awl15~G`G~W)Tx=-FxG&^l!nGtl}!!Hrqm?O&FhHT>U5#GgDTYx2(x?{G1urX0++RK+OIR#B^#DOgqPZEjRHK^EG*4 zXIBsS|4#P$fnnBP6919PGxFA@o)2qtHgg>K2no6IMNn!1`( z@WwC%-lVZ3COgS#DU%~^YADT1ceBF1+}>^8N%A1mQg1?LLVyhHg0!EXp&Nkn?H_5ks>2!D^@!-D@!MEoy= ze^&UHg@0Xm+MlTJe}!)q-pmQd<9;$OIqEU%c3B_cX^UsNJmG17CO=YmGY1@ex$tK0 zH~2Z^(O%rIn0TkebN^lDLt;3uTp~=a24V6wNShPGY0DrE7c3AQCs-;tMNr4Ks)Xl@ zAJZ=qJWX)9;0nR>1TPZ2T<|Kv?+V@__<$f^X{n#aCn618#NP=1UT~Y>n}UB6+$qTG zi0M8Nq-~viieQEyr+G4*_ATOILB6w-FA_9sVZfWQMqq`6PZOLaX!;@IPZa)S!BYiK z7o-7=`e|Y$(t<|3LXajj^0dtn|4VR-AZ=<4e?m~#ESP?Z@IOlUp9S9)+#&dppy{uW z4@h%;69+#pC zS2@1XQ?9q5u?T?Ya}>k#1-nT;Mjn4QDv#(+5yzfz%Hqa4?SxQoC>KY{=|B7^KR7rt zjx-dGb?QiNE@Tq(<$t7-=F580WM3u`n_=!?8?oGMLptU+9gfL0-8q&n1e-Wwqwf#K zSl2<0>8XdLxDf`;(*0%r= zJ*@!s-k%_M2KvNb+R1l|=r043{(_EDhLgj5+2=Ih$KhAq@H!`>QKIw+Y20Jr?RFW4 z4yWgX)+p8YJNPvXyw2IsH;x`5je7ySt#2IkRUwS!qh8hbSNJszyv_sAcS}3<{WIch zeHTI>&oA}SQl|QL!B2ffaHM(oW80{m7ChrjemK~2AEJ`>Gn~q$iX3&34&ooAMU*2Q zlpx3b<@w*J#PX3i0A<(Xa;u&B6sq+Y4mlLN(ImoQKJ*nU1Jr!G!*5m3xfF5}G}4k| zkkzctQ#c8iBaru>o^Z^U=Y?gn_02=$9)~a`Rb5y-t~hE@M`Ns`i^q@g#XDZ3@vh&- z!5C|Q%(vngYr_sV`Q$07H@@CFe_Lo==$$Dk?mJVHzE__2EFSmXNltyR^43as)Q0lp zXEEOS$oSTrP5pMKJ+o{3)>db2QEO-x_OXBenRmkB`*yCJ_28qkcC4&unR@4=EtTP2 zPHkRxZfj`9OWc?K+j~CT!&?FNC3v=g@Je?OlL5 zVKN5E2V@z8+)3|V_T(CYIF~2fzjJOl1G*#MMcv%YCm0Hfm|g6oag!TANyNXDP1Uutv?g z=!R11u>mhLe5NB}89E}?X88syYwlk%^3@kC28lu&>1l-H2v$`v%7Os1Dh=aZw!rK- zfu#`Q7EVN}2$_jv@CY#_$ETDhYS=LN`KX_Q&7h*q&cKaiCcq^-%?Rqhk@vI;i-*?` z&+IffDkk!tfxVds^Wn0wMOIl}*^ox(st|F&YUpCb0yxMKcvXd+mbHyR$*7biqEg~w zIE;_sXsADq=tm&`3Z;(~w#nvuK{#Z-hVr@WjFez!KCr)0XZAN**syF_Lw$A4irOU& zg>BYn6fUV>xO7Er9o`pp4v*OYsd{;F$!FbhAGZ*URs6bS8lkB0Ofz&*eC}d1JOT4{ zY#VgivUQjOTMD(TYOM2jUlD6~%u1t%8*WfCyEtL@qIlbSLT~AC)kk35Z(~)D=?!F9 z;y9+mH5^Fs`7XmaumRArB`qTsHPtMu8`0Q+=B;arj#yORFaieaB@0_V!#C}*b5rAr z7QYAD`vC3FGMsiVtIn4P`W_cHvNhB{V4Uq3zBR@`slxAnaU zC2UvLm$wxpGyGdX>MMdHU5S(W&jfvp-w9{ST@K|#m_UeebRP>!u=4;5VG(6W9H&x0 z`3E64jvgVFkHqPwc0FFT+NCGrwH}Fk#q2<$Vxz%7XkM&4x=28|7#lfMBN3`zqSXw} zOmq_3A$k3){gdaBWwZ6YnvSm=B1}p36_yl@j9S#89kQtN-w9a94g$N=C&RG#u|No&u`-7yneLl^bg9l?GvF)QQ4<##?>8dw>7 zl)0l{r=9WKn4R&z);@>|`R69={tA9$o4e0s96P9;aUp^NJ7a%Hd%QFQJL5-)hGp;_ zfcH2fbU&FB7!gY0z1@3=2VLuM9U~$sNeF|T@e~6|uP`v2avH&nOr<=}ir5+FP{?2F za3sBZu`{kkiX?0A|0I9!|2r7$@BPnz#H4oi{@(@ zrq^>60cDh94TOm?v%6&pggdwEn}~G#@&-N@t{beAX8--;$>?VMXMo9MX8fP;hSd&v zKZfUKIGOK%7xL2i{@i3HIp+Z$S*Xv?7^&OjM?1N#{-i#dBF=c3ZW%A}Kit(~afxwD zeKlSpmL^GM5u2&D%uY<_H?6~)AIy;x0F`hNOusMATMo-1xoLign~}}wb?Dbon6#FrIm46&Hh*!t=-k}AROCxCYe1( zwp#D&j;6UWncJtk$tz`N88X%Da143N=Y^6nJ-S?{1H*7cL*!?$?Zj7R@7vbIZN>iY z*lAs?r-7aF-(%S1zUQ1r-F9m9l6n)-sfo6UCf}nb$6npllp5QJ=D@t?{h#;TNn>O> zt}%Naa+DXH5bx6E8U5F#oR@rl(gooQy^FYu`Il^mjP;n#*dY_757;63PaY%R4$0>N zpJM;m9qmUuA>XfwW_~Bo*cvhPUv-9)4#+4i$U`y-ch8+)AKSi!>trwDRV z2IYSaE*KH3M%5ZM>unm_R>D-FEPG*pQ81SQpXI|9_tIPC3U=3Xbt-GTr+-_@`W zK8rBsyD$4-1{xv?870kY3j%C?GcCIns$|-c^>_+S)4=N#Kwl<3LK^otcv~Om*-?(= zqxlEPO#8eH)HLuq6A^Kgo@^`bxA5EgxQ7bMLw&sLRo`3iQ(qAr>07vf($I!VjHBBr zsB+(d@*yfDag_U5{2KLR7Q!ORkP_{K4?~V`$Vx09DbYUIVzmqZi?ts8pcut&G>LHd z&$ADfjJC{!(GKl{W5$U{$MY1|`uFj`J~#kY%*OlEE0Zcyx6azJwv2nCbeW!dWa^An z75D9O)?D~#b|rT}NqN?*xT!~RYtIFPTeB9pCA+qBU+Eot9B11eJ-6Ir8WUDI#$F??zGr{NF7Ba-TpZcO@ZQupMU$rmL*ksMB$lCm!4 ze^OE+M@BA-yb$S=TAg}F>fckxr=6Sj%d|dS7InF|i<@4RzA1f2`sA)xc73bs_>4<4 z{+Kbg+a=xJ=r$p9edgPlQ@Y>S{lo6Fv;He9l3knq-`N9lR_DB&Gp@%qJwE7hT+au3 z_Uv_Lua|mF=zT-)fA+5K^V2?q`(DuZoxVr++uE;3|5g28>p%IR+YU+_P(R@L0b>uo z;b13P7kxTfkh?zjgWQt_K00vFpbG}QGwA5Nt$95LuNwTy;E6+S9^wtH8~Vi1VZ$yO z_V%zN5BdHfX~UNce`@%UL)RVpr$Z;@Z^&=WpF8575vc_W3mz%xSy*5AMBzb2Ek#ck z9bDX8{A6+8l4T{2mSm1xFmm(AJtL1Ab^WOAqehPY#^@(UcOP@Yn48CJA2VWX)7S^b zel+&5ajVBYGVYUc6ULu8{=V^lA3uD;!U;D_cws{7VG|E)KJ50xUOFtbbbRUJ((jc1 zwDfPKy$_#!_>#jfKm38iUpaiw;kgsbCoY`$&50W)K0NVv6L(Hbn>29J_(?}kS~%&9 zNf%7IcG4Y_?w|D2Nxz!(`$>PA^!B8klRlXA@uYuE+B3;1yB*h-e?5lX_3*nRaDlDU zD@{;s!t9HIO_*1?SHOeLJ*6=iR@~PB-i3@%n{WyvLMi4t=HimTCd?-W*n~eMgi~fB z3Ug2I@;Ux{LmL-WnR}Mlgt^E?Y{E21t4(+_q?5U@#T^HqnLg-lpu&_h5cCAYK#^5O zf`6oRsi(mTyCrsBQOOxA2v#HPo#YUyh2 z;F6(}RJ-XURozlNmfYXHB`YXp($GHBv$=l@zNs4QF`mwLaHHl1}C1o-b1ahhONUID8zxiNkStjY`l6A({+*ue?kNFVb?i8Qu71208v zviS)(_aUbXj|U9AUy^~hvxeML>sqQ8*VNZ@kMA>=)Z?RG`#D{-&6L!=Y#BbzjgI!x z=6PpDN5PpnrGtz3Eluy(QK1xAbj6Uncl+xZuu2x=^Nh81EBDLX+isO(b3>8;r~VdZ z%*t7@A)^IP|rnp2j3;Tw#rMHOf^x@c>=jg=IepG(n>H|O2V+_m-y zIbfCjJm#Qw%1GWx)2&&bX4`IiTX$gIfWOrJ!rSzxz3&~-R&<|xNVFr~;O}3-WM4fK zFaBF&^hM1z<#T~gVf7enZ;uH)kXXbA+Zb_=@%Z>uGq=x3;4j`aZ|$}`Ca_r4b`Nq| z8)D=cYk|%CFNYf9VF`>)ZTA%KWy;6r7N6{^f{)pWJm11&&w&Lk589e8%QjRu4 z^GX9Wb6bHte<7?#%q5~Z`8q_o34)UZX9~_0oF`Z(xKwbtpqbkWJ?9C3iQtuj*9+b( zc)Q>h!G{HZDfj|0$#LE$;)MQP!aow8wiT8;hlqHt2_-*7kn`slKAH$UUz6}9M6{dv zt|8>PHj(K_l;agbWYZGSlm^*T$kPTz%oi*Y94mO3V7XwWplLs(n=d?P1W`}D;5xwz z1=WUpweaS=!tRGEnREbyT3)V~rao4M>*m2^xn%90w$Cr9L-?iX_LcmMiq#wd*8OX0iLBDSWsP|sP z+4(jiUoLB9eR)^a`u+@lO#`npoDo)ldVdoiZ0;GiF@ccEJqO;-_f9nOCWJ9x-mNv? zH{sVb@H)RnUyITsq;cE8+xn(;kDWJOTdMCv_%#i@&flSr=T}MN-a~+`Z=R(O-aua} z5@;Ig*aLkNwNrrCxFmRNeT$)l=Zf{shSTzKZycs6f+HOcq4yH>F+Q3gSA-kM5R<|` zP==242Z>6@@rGlO#vPs@$F=yp7L-^%(s;<(^=P!(h4%uj2j>~$nrt+Qa99U@#mWFR zU$&)QyNtdca-1uuq+X)c3{ECG$+HOL*cN&D;9j@&_LsRC&YJzi-DE4R zye;Kq;|+M@ZO7K zafH>7SG_k6hp^fq)5*Aze^H8ioP^a5Nuv(zkW-n0lc&OFZmL(s;C!Pl;;(#9^bdFn#J(Dnc{{dh) zo+{Y{eB9z?=?>216AQb4HdBO*To!FcSajn{hZA>U!J)&m^ZOmoJ2JPC!U6 zb65N9##5aIJ3ZTaW(?8Wfz()xpZ6BPwY9r426k6lAZBbuoM@P13(N^DtPG99K?8xeBF|aw8k_6_ zFbK!d5JgMiu$MN)j`Y390Z#P2I2sy`;}|&1(DeiSGW0h=RfIe^Y>9BT`Bo&wQA4I+ zH?*v~WXt>@0&~p3YAbFw;2#HUWcKsntW@l?WquH$y;KM`#Im5zg8X|SeG7OHVq7L% z4qQ(OBWS_O;je(32X``@O$#ih1&Th$T?+Ppc5K3m^#l7GwAtUlyg)4C@l!g`cEi>zCYGF-3v9771d1MLf)Mj2X=FG-_ zA#m^Z?ds|kYRC1zf?0pcl9py`17X<1=3;w=>GkCd|J=ToS#wG=CSzm9Z>&N`H#9AS zIok?h-U~n5Co{Ej!F*-}IG-dU6QK5gO)aATO9k-pA5?@OJ>+~%6u_eAFQ#lM1PZago<=!>v($F%cF$NU=v zL9}zn+pX2wu?1LAC$4nmBj4P5;`9)!Ek^*qQMZ&K9H{HJykI zy9*jSGk9ZX#yfs4!(r$#c4mb0NsjWy&J3I>{9Hjk*)hIOaH-&O!PSBn30^LEjo?j! zw+Y@YxJB?`LB8=ZpXUYN5d5cLFTP+QzF6=uBDxjrCk#J^h{~TJ{6gUu3vcEyBmPX` zFP8Xk3xA#PHwk~I@Mh0h=>MVc|0D6gCnEpXh-lY$C4QHL<8j24NB2B6Yw933K*EO- zk$$Z3vxvxt#Be^36LCrn(l$pvS8%XkzF?7HxnQN>QG$GnVfuxF#smPqUic=#uM6_k zn(~(kt{1#c@J7K~1@9F6p&;MSnf~X3zY?U~li|M?{FC5Yf`1d-DaacY7NiY^ytz)&{I?qNB%-!AZH?s7RSeQ7K;FD50i(j_2@Vs~ z^Ds{MQo)ZTU%o+omA)(LzrTtV31#OS?*cd_bXP;HH>xOak^Wq3KgK^Yj&u?n{DFP{ zD)4M;wmV7jc=&C*sXcd@=Z^Wl_zDNXnapaLVb3!n|ePLc#GY zKpX$~OvjLU%Tp-i4-)WMN#`v;1L@?=ILLQ9e}p)fe{#kq>25d;d<5%@5%?Se-Kq$- z=aW4sW~X8rBCPhjcaYLDaPW7bz?|g>HT9!ve6W+&{eyUY<-(S zGs%8~Y?SN|;G7gbTDU{$&7*I_Zp8aV8fq13C=IsDpzjet`GRig2XxRH69CYnHX9IZ>Qz^U{nho>O3^b~}2?6{GVseJLjBx69Toi-@m_~^SkFh z^Ul2U&O6JQv&=hl>}1mk9IN#P(n0uHYE8rII6H}Ik1hzbb7Jk23fdtpw}+dIwI7-+ zygj5`Y(_U3OA(qZyj*G^Hwp+naWtJ|^CJ{fVFWT^ip;mx%N;u7#uzp=z;SryQei~a zm1lBnq>93yTw&>B2cpx+By?1dPSZB!@|_63`mPE-Q4WQES_JX``67t&idiLv3#v*> z%IB1q6wX;#SyEFzzjDD3TnXV!Np&*2b>h@fj@rHErh#gE<4iwsvt)2NAGmZUfyT_9J!a0F^2*XP zOG|3zSI?Mlqdn!KRv2&sCv4L5xZ8BQ@=vKKomW~}b4mFE$>Fqx6`ozW)owS%vu78U zph;?qIagGEVP)y;po(zUZG=oGg%H){7nWhlrmTDprpqoY#y!hFG23L%F}d2>RWYNw zxN^Z9%#L~MA|zAXGO|8TXco$yJhBtHxlJowR9d~DbV~K?(rQ-AnCj}{OQpgV*o!sP z9GIH|t!3-9U`*xg=`6GH)2=!{d{>?F%4{~{51A)C_Na2AlUuyPde?jKc0fB`gT^GJ ztcbYUe~opmJ-_wO#PizLQhHtkTZ(Tk{g^By`p@rI-ttM(@?_g_(jIe<^yUYxmh(DB znq%hC%&FXR2F)dCNqV!x`f;;pKGm`FQP+;}0rNPy96QZV^Pqn9z7A)aIKTENY;GQu z_vNmObiMF#9+dC@T*upc*Kz%i*I6)b43)>5ZP#(VPpCYOVy?5ozJP1tUO!YGZ|q%X z;mv5MJU&mk&QfoFy>wETJiK)FI17)Hq4M}#>AI%ti@1k`*YQoM>zb}F;#*wTSz)bF~&!^Xj0< z>OzQ&`X70DfCT3uO_11 zACvIs1UE|j>w@nJ@_Uuc|9c|x^;LSlFjsJ#;3UB*g69hs3-V1n(_bcdrQkJ!s|D{6d|Yt7;Io2%5PVti zRl#?NX#e*GKN0*)uuVT?W0t+ObZ|cd< z`3s`%j|+vqO7L1izI125x<^pidw~9p(9Z~RSqS;~R-U+3@I68GEo_8;A+&m{1e&ky z$*;EB0453DRxnerry$?!lRr;T?Zgb4`*AT`^>-lWxJmOBKl`uh=fGN_R|u+a1S9-T zq3;oVKu~=n81d_c<{N&>dqt4%-`TIX3GNhB=K;dixQL4{uSx7z?WJ9VMCixs59MVM z!B0m%-QRg9!*){RDp1KmIwVo)l{^r9ZlatZ5pr+}D*T@H4SAiY7t*Wo0qF}!gTGAl zRq`;Iq~w8r5YvMmMnt+9LeC^3eT~qIiAcO!=sSo~4tS62cpn25RXve;5dS<5>M56o zfAV2iP%fO0adeyyW1St3ZwPq8^JSfBr}OQL0P<;?<@Y+BZy5sNckDLEM?Kh%bQ)*F z&%4oF9CXj)R*Y@h8wdLe`Iznz9A5p3Kxg96PV2J{0bc!9Xa+&8-&UK?(T{x0hX)<= zrQ3wVtKVxL{m=~@{SqM9s~@ks={U60`q3VVe46HX>2-{w8*KAA`qd$fy0PEWY5lUn z=hbhUM?c0su ztw%q29sLF(L$Eq71;lOoq(Z2U>kmG!yg1DF%|sacb9)@Ryd1Z68VY>`5pU2VPRDUv z(tbu=im~V$glVVaCL_$7?`(`Y8xh8QIi~1*c^%McD5DCMl1q;`9mng2S6(It)GY8& zUS}LyUUitfI>;lRc3NI#n7kQ~R{$o;J;6kI zX*jgJn?;`1sRTDnzYJ?P%DgL#?^~Qa-4U)Gd3f9}d^$WGW53sthwhm$zD)4d*-`4B z`q4cNK5sq0=BXFvugmdg@Imb=l?Z?Q)(-FKwA1;vMu4YyMns}v`~zvV(|klvu(6FN zBNF1#Mb#nmMN*}kSKc-}zekw)wuYYw|B2msw`6GJ0FLWRyj$p0Fyg$$EFoSaWkQ-Q12< z!C#vv-MT($ebi${+69eiS*vo}$8~FLZQNIHj7@s@+{9pG>n!swGy9i$U%m5(Lld)p zd&rmjhsN=B=NkQ1TJ`>Mtq$Mt^@=?^t9q?pSHH80J6Rfiw{F09wlhoeX66RRZQOUd z&x*^b^|whr;`{pk^^Y|!%FXn@R3A*7zt?V?3fYv z(!SIEZSWQDPDiXGJCoZSvBvr9>qku4Gb#4D2BTGA)6*N~?}_!Fm;dzP75mMR_pdj$ zpO>GpKE7dbAoj3zB);MPXkWL#?K|C?vZvFj#wy=!QIGmpnRnftm-&u$=al`m)01n> zbn~t|^IE^%`O%z1Nr^rApLMQb)th6jUjh#pV>_j!H6~@51NZDUgT{6v7;)ExJ3E!# znP=?%tX7pXXr|*!<1zlb;v2>%HZ1AeDh zgpPT-#kX|)L!*%eIg?&QZ)t}-wj{SZ65AvBNbHd)PrJw1?Vj*K{vQwD^nF6Z(NSH2 z#`X{LTOGb>U(GnS{r&6Rb~iI}9vRq}oY?u1bo`G}{+`Nj<~*9W_Z@R^purc2Ztz9# z-8HF>UvxJ%^p+F)iP15&=i)@S$0ENu8z&hyOtlR|vv|sh)Anh+I6Ldv9|EIQ3Q>N& zp1qQU87N@{??;{W?758aMSY3E!Wz#Adp-N9V06~A^FaZoY8($?oVEq5FjYhCk$R7T zW`NJm);h$d&I0!6XrwXQJ_jLmEQ+}%8dVlE4Z+*&P$Omxh}|GKRK-jZ;%pFnK*yJv7=AU5 zIK6zG56E%Y)>Exz=TmI_FQJ0jiK4ArUb`ZGEprmG@rw8&lAZ0?`z3!B|JnjjYU`jU&8Mk^0y?vX4(wK_Jc2B6g)OrPI4!iRqX8~Co*64 zL8#x7e1WlwTm-!nrZH_dR`>|?l?1-TvB|q}jZ63yQrP4lLAK%}ve}*aCbBW~otfGD z4e+(*!i`ojcmNK9ffpwgauPz4zW|kvgZIK%VBh*X;Ms_POQ9q-3g6h87j%HOD&1;I z+JP`f(nDI(9)v=7N7DazB)to1ybCn1Ezy!*r=$-M?ntUfNE_<39ihC((>g_~wzqZK ziZbD`*D$v}rX`I*+ksH8PP=SLZI^;`I3nJHjCSTU-(~op>RX8a zg18!EO7|M02O-sH&-WT|nNb&dy0A6XpV4(1;(t6tyYOudJQjAi zNoiqQ0~*_TZ0}+{ws*KS=S~Km*m!qG0d8L4-OB*X9>Y8IS?_)YCak?%>x~VP^k>7G z*~7rQs{s?W@k&wK9JJM2(=xi9XLH*2h%j1X&jd88=0US*^T1BpJTTQQgS{(4XQy^# zuUbm(V((VlwZFj+r}gMCr~~(~Rc;vD%_tyTp}ZFm)EEw11P=rUv!~q{aS;w! zobi1%rTdJ5Yl)dSunjMvy9&-;OPryCrxDIn-ZOaO41)HakF4?CAa^VA8QE)z*W*Ar z2>0WF@#3}LSNE8|wUm*YzS)LjEp!>x{aDJJSn6Xbe8QAjdLz2^_~b8V>5d_8E9L;(%-d z`wRLC@AEi_o5s0)0jJ~Wj?)rnl#w3TmTI5&xiHVRL+T_XJ2QPPc{v3H{$)-0CB)0m zs{$_r$jZGMWT~scgDSXyun~vSICCw%e2BqCE+4&((~PEZ9$|^y`3P6ysKga3Tmv2A z(ZC*~F9UOz#YVbav@V{&OP#>c-P12tTm6JFBb+5?o*ev5Yuh6@t~)U`+!HcPTv$X%H5_yB4U-`?Lv?srLFd+2 z7Yt5(V6bly&P6v@t^)rnaG>jNlU22*I zNU3!!pWzN3Gj=;-b}$jt3a+JZm*SmH_|%Em1K*c+gqF*O{C|V zk+^;5N4`r?7x>ZLFX3H<(<%6bx!2Z5tGFHHE){fv4#E>4+KbMw{`to{bL~>#;d3f` z1lv|S))T8kSA-5Hdei?IvU~=6+>f$$;-{Uw$}3AM7S1jmFt50z42JyS#`;ZmD66U{ zuAz1Nf&n@zd(eR5>XIhwI51aOx~RNz!Tid?*$b;@l~?}2ZM<6gdW7m}vddRHbE1_L zv?_zxt*c&b@%0Pr*`@qyldfPSH}Qhkr@kB<8EI`+T#qj6pPrgN>SQwEZJpnWB$EmD z*#7;p`=)o!wxYit-K|@%lgIW+%^h`e=I8@1J26v`(9UZ{dJypk+3hBWGy9CwBPJDYTVq+&OJNz8PcnpwRq$Z zD`Dc<69%sBm(y!t*$C!j)lgyTWOeLsE$KfwGj(9^u0#5ypWL(eX=k&vPcNHD#>ke6 zJCnuTVg&i|jzOIZ(=TL-5?e6-Q9;+Bkhhp~)YqBkbKQbkQ-XCUC%8hy-9KwgMO9gG zVa5DQJYS`#DVedtlM2hqjWLA_t7fa(o}~UOasC@M^QsiV zY9HuSd&oi;yOl~8n`k}z;4>*Ql>V)A!FYmgj6IypPO||WbtwxE%HQKut zrLX7W&1-jFLgtF-s{_|WT^qSF;yVBJ)(u#bGA3b@&$`1*z`fp>EF}21tqtLaKx#@C z*YtOrI;^6P{WX$s#umRt(j4=D%^>I_-g}%pGMmSANZP!__ z*yamz)-lfw+Sq&VgDIDxlM{X+#uK*&iePB;gw^I9ZVIznOlfV5wk*;KhQM3tlI9 zv*7K5zY=^v@Hc`_3O+CR7r`xpd}L()0hF7VF31;3v=ilaDE!7XUltM17i4{rze4Cs z1+NjjLE`TevcYXA7<73fLY(D?5461*Di4Tw^Cfd`ED* z;7-BM1@{VmBX~s6$9@cbA_ZybKw8=B18HnQx|^Ur@3Mp*E~wU*fNz}8;|0}uiEzH` zq8zo(1Xw8ag@S6m3Bs2My;Sfz!Ji4P7NmVE<*gOGPmmT941ZQ|qu@(|ZwkI8$hS=7 z-y!&!ptAc%I3I!;A1z1|4AR+xBL#B>X*0w4NrGnzo+C(`4aUzCRQCR$mAyZZuYVcO z7k)$y9H?`LVAhda>1(w zcL?qh{6ern@EoLN`U?bUXF__kV7}l)!Se)*1gixX333*d>6Z(x6ueRJcEP&@?-hJd z@G-$B1)mXoUhq@F&js7#Hi-G93T6oQ5F8+wBY2YFD8UJWrwPswoGDl+SR#0lV5Q&= z!Civq1f)I%KN9>zum+Yo)OWGqGQq0^uNS;YkcK|wzen(4!QTkd@`v#+3ce<|N$@Sf z_XKwc?h^b$utBg<@LNHe3{ifvU`N3&g53qVwvT)?C?bv$JVkJVAnl46f4<;_f^!9{ z1s4e}7ra`KhDS_)hak<4NIxn_Ya`Ns6r_0(>CJ*~3vLsnu@U3H54MV)X`;k8lXk zN@1KJZZ#FH-akW5Q0PoSecc=+bQ>9ecz4frHab1X6LPqPRrm1Jla6w|4&s$d!#{>< zJg3+$oR4vIJ#es0$K&I5ooT%J=ITTUXZ_IeegR$C$i+c-ITQ&3sW*9eFuy4{C{OEK zjNflIR>E|y8pF9ye`K`@Imb= zl?Z>&Kwh>cfI2VSx;y72qdx=RWF6_@V~{?F$TzI3J&n)tNassEsGFy{jK(1Dr4Xi_ z7Cj&*dvMU>j<*hC@Sq{Wa{P4=uTc@)GTLKNPpreS*FpTgF8lQ5`IEcEH^jv(9XF&b zr)=;lvjLB;BMOZ_q)r)^Ti9mYMg#WY7+%J_Ke*91a{k`jNhjq`*=q)1t-kM1^|7&& z_PsFzd#?^hZ0hhs7*%g=jhM6Z&0Ehk{#0+|s?`8@PHgOH1RBi1x>G)V-^{o#FLKj4 zjTymdiM<+=gJ#ab-3gO?C!f=p8T5@_g>S4S=Z`sfw0c$E!|+XP%*?tATU~WS?$7NW zd}j_;8JL?Wb*QpRH@6=>`ixX&-4jDOW}?1bMTA28v!OC2h|!vb4?lOsA7CY+%+Z-EK@w) zz=Q5?M9p<#PXie}&oJ9Fu9C!DA(n%Pc>;fC2THVVxp8SMA2v;8u=^-{u^E)wiAsEr zBd!8}e4M!eM?9>5FN0z0iwJuPw9%>#e~aNuyb+#kqt%^&m6{%Hv_1!Ze+p|biEPOn zup>_QF&PD@FPfz=FQZKZPo(2~!7S5=jU5$hVd(U?HS{i+kk|_06VO2;9b;8|p)6!i zP0xqS`1vpz0P9UOK}Lrf@_N2rMnhh1vFTxs)AqBpgpK#u*e19(wym^bZK5`;ZS4xN z4QrF^Z9tP9l|A;gDYkuWn`Z25Ih?`}gYb&-o=w<0Wct3XIkAV85VYp@FW{8%W7(6_dt0#+``+4x`xctkr4xGqE$dQys@ndyVn(W6 z4bLP?4*vX+uSBY^cv;^{Dgsvzl>sEE z`AneNNl;}HBJzZ$5*IEgEwpF*-OUW$nS6IDVscf&#m@f^Wo!8w8p1eXXd7hEa$bHUpL?-G1a@JT^Fs4yS)S-xldh=}>YT@t=m=%a#h zrX8>5m%!JBG}8AI94hgAkHGMJp(ha`U(XwAfz6AVkGi;nE1M2 zz2H}Zd}3t0GjB&4h2%NMa5|zc{|c!$jx+yF?_*idP(9>*EXM@x^vKBe-h3w`U$z1BhhS#JNfBwD(>Fc;%f3d3?n|c?{R`I6th@z-w^d5uQWZY41x2(0;~!jF)3P=d{z_ zjR^4Odp}N;y$EBzaX56oZ^EzBz-xSqh#)=Uble-Dz4BJ0QgpqbNRB*?4>}D+q@vG~ zPdgpA0|8!n_j}}#U+dQhzfMCLeIakBCqR4mBhD-DX$WEavb^5+v21sy$-+UGh(@Ii zgm#SM(JG8D3G+PNHIwj=uf6c;sA1sqI`YtQeqH-XlP{MZaV#%gPcV7Q@w}&Ac-7VQ zG8}wRyGkX(-(twi)&x-Jg`t#uj{7zECg@0nYA+F8&T;!O_H0BT-w)_~p^DPYEAMHH z^|ekaSKfe}oPX+lZ1&*n!9&#h+vC5FU2Qj>^FDSQuafm+Oe13@z6+Ig$k)f{&HYI1 zccJ@tpL+0U)l&zIDeX73&o|arol14<>gsBZ`sI?QpwaK78HTr}`*(AnlRNTyB88WK zj5%e$F?MBMr}dF4A3KM;)*smI<+JiBnY*OikQcFOI%MCBx3Y=(-|P;R1-%w{W$}G& z^RlRoE9>EKS?O87P0o+VPt3moU-KG#C^^^Y`^<*fd8_kYg8u3GX3p2Uv;JT=QeEAz zYmM~1;73Wu-GFayWi=)jbYDMU{qMouF~2Xk_w7#1x4-_ydU_Q6l#lX&KWbA!V@AOP z4(|c*HkFN%)r87^zD3z6pGUUl4VPUj*FT&E=3*4bq!EPoq+}6&{-|5gk?{(d5A=Ra zD`4xCZurN0PyDGpQ+#G5=g)j*fZIFzPh&){S@`$)BGe6sFX}W#R5C(+h04!;O8k8( z#}|nB2!t;XwU*$I8lfO!0VVpQxVRO94+8u&HnI0i@&69Ay=RJlKSR}?DgKL)CS=c) z=a4~!{|o#_zKp*pen{MRCNG9o0+Iy^3oC^-qPe2h?8X#ylgzYFJ*8BXO9kRKsSet6%g=BsSNEDw2yRTamR?qzt63h~l#qS;r*TA;wljkq?tp zIp4#o+yc^w{uMK*(;1{A$Xs&|V(bj+SbO_G+8HQ5JA)^g1Tzbgfg*EAstne%UQY$7 zE{=xzg3iFMO5U~G8N9#}l!LT0P<(aVn>f;U0poM&5Y(HYn! zC_#*!!4{TaKS(t1U^9471`Sr!%#K*{BK0A@fn( zSjID_beylac{hH+V5awqY2^{p9>vy^PObH%Q&RY(6Ur`q)+k_2v3ob2H)1!F?`~;^ z(0L;!4gb`Z4kPmU6_Y`!05z%_(+Ry*XaRv@TN?|En4`<^XVmt`9b?<%wFp%Xw|8pD z=0+r|)zpys?iU{uvFMjT(TJ6aBPSt3?Nib&9&>H6c$%U4;^~Z#Ck1QQLP!4$Ge}*BKH6I56)=2;yk5RGJ~QR7~o}D~H;(^r64# zCL+6M>JF63&8r~8*eK9|z}j!B0qX_bhM*ZjHDJ;R19j4MExoo11?(*3hiv>ijvV1C z{8*KMZufs$36b_T9zU=aSToWP-IezYr_$ij^+vR#r#BbfT$r20>F?~B9H0}>v9mK5 z>U|>CGAz>$$3_rtID#CB27EY393pqyMs*YBC^8HNOIU++bzNjggGt->EZ>`*b~RP(vBL zY+kyc`gdve8#;~5f-ao4L+$Gd{r?X6YSD<%h%Fc}2~D*~QgZ z<<)QTupxy*1`VhvpEcmZl9J{V4q!srO5nI!oN##@BZz;&bYWh3W#PQy#f9^$N~?=Q zzukxuImQdKVboB@H%pFD1G?&hn%Q{h79Pi_fwztNQ;nIXvQEexfHm@c`om1&f|`qb zKG+;+h7smKJVl$`$k3V$i)+;KcOAdkFlnz~=G+&O>_fv;8xrIUxCl?FuDCCnXFqZb z_UlZuZE8GW`JR#eBQ!&28IZQp1lM@tXz&^T%*lmLZqXlZclUUj9dwPiML37ELGds zptl=%EjGVmVNI!L%|FfrSI`f!OKNuDbG8Ri8c`Xq6;Vh@oCa$q6zyA4T6tkj*@=C` z^u)|h)N48KJ_2zZXvOh%!AtY9?xllaG;br07tf~-?RXoJmk_tYy1ME2GVQp~?`e9| z@>b->N;`&g0spqW5RUmJM*AG~bhs96WSVfFkX)W}Eq~k5D_3#1B=?_C*28*yi6^9{ zE%7)yhMd7IS7-?9v31mJC!k{p>#-$T@>FX5kGL9q9%Xxfx$JbBG)0{uqmf8D(=y8}&u4`&*7Nho>a5?zc>^klr5-QJoRbhUZF!nfpvousczBh3l_Ztb7m*_^q*W5Qt zL*;R$mWGCSuXNNeG_{2{yrCg{iRU^C5A>n(^aH-l z)AXCCUBcw?MUU$&ych_T7jz@xYx<4U^e}n)#etp7!n>?m?I=)w!yxw8*dWXgL4U^Y5EWTeD-9JoT|FC%8V7Sf-*?orP(~~ha zk7W#Ync=h4&J%8sWej%-6+a@3K3VDG_VQ6-@!|Byu=reg<7dCpp{?Z*4+rIPz8mji z)T^E(oc|XJ9R%{5v`d9%&*L{~e<5^G(J97ngtp_`8-Eg-Et`bgw}sF_<7=VWlakPX z0?3^C+x$J1ofBz09_`iat$4U~r}yT^eoSq4tDTU$ap!4+Hv}Ou?k!I4OM^MZd7+#*POG4jzC zk2Ais<03tfh*MVCzk(hkG&jO#_;lerU+7svR|vh32ze`nR{I-4&M!#g(tAG<^y3oG zwSlDnAoPnuzb5o%q1E?Lk^iR>-azD~+=m~+qll2xnuvZA6uLJN@dJb&F7zm&#|wRi z;JFfBN<@FF5qhb_^BZ%_=VwCGc8ByDp?@u?_BTSf+7AVtL+yhCdW*!rMFg!(bD-ZY zq4!GscY+pPS&}cF*aff4h3-y7x;{b=7Mh zdbQAMKNj%cC-lP-zh3Cy3;lx7uM#s1;~k;56On!o5$D|@p)K70F~0y2@tuWE7rL*| z*+P#HdW_JMh&XT6K1)bHTjI+leyPw`3H>vnZxwot(Dw@c8zRp8=Y;;V#J?)^heGcZ z`b(i{cR~HX6WT(bCmm13xIsHo(%p${C!uqNK1Jv$LeCId?N7r=O^pfF$XOu=&mX9>;`oF}NpAEaL_v>Jy%UnTUlf)5HlBKWKz z&G(r9OMpN{Ewwnl&~}=*QSc=}wND$u-xc~JLA7ri z!fDIJbVmdud^WB2bwYTe&?$m6_ac7}!J$NqOCtpH1oH*eK5d9UPv{cC3k7NS#q?JQ zt`xjcaFyWgf;0^yKR2Hz(gKX%DW)+W@y~*P6?{+dLqRpJfp3q{v=L)E+-NGK(HZFk z!8U>&1ZhUb_`ZU)7UMXWD|o8lBte>wFJI&+lmw z#|ustq=6a7*9yS}f|m%=%#87B90dMC=wAxb?u_wj90Wcs^fQ7R1pg#R!!+{$ui$n; zH9jI-jf)tczhOA=dqIu`q-m8#Y%drT%oL=V8smow(oT)^B*8NU)&5=xr+FI3?|Fi1 z+yuQ?Xd0<8{wBfO1n(52)f(d;6a1~@p^w_<4*IC^4*B0tKIHo*5&7;TBEMt{hVTV z{>V@13tH)m#4{wls$b+kTj(+(^r#VfF%kOQEc9w3GN}{#X(IG{P3TQT==r(Odx_F+ z@E+H70tYTdsvnVg5dS<5)uCJ({>g{xP%fO0adbU!1aKUWkI(qw`La)Fr}JeP`7~Xm z83c8{yq|&JSuaIC>fy&hr;+zR(KvE(&<#ReCj#?u@LVDv)7^x_t6v%Do;bAA`m8{J zSHGJzgP_)Lz0K$7M?U7mgHG%BIQ(Ay#(DHZH*@sc1;1CnJ3t3J}$_T0aX3y!y@X=$8OqU4O&CN7<}Xx{WwECTOSi>o0toroLWB8FXjc ze2#wPqke2VI<4Os;PdJ?+oNBS@G%`19#FQ{Zzudg9NKApYK2eJyf5`SO+IS#Ir@>0 z`J@Q5*6$&Nd-bdF=+_p!y8gD=@*Mr*KsQ%^TZB*R$LDyj)8uzHpQ9i7s9$?w*7_Yn zxL3aw9{u>{SL@dw8B(^czbp{lMHWHpqZR;o=rftf<1{(dmgnd<6A{!;ms#t_buM20 zR(tfrFzV>HB22%cW9YX;_yEfBIl${Q$?F9Cj(#gaP`{usYyH-N&#T}49{tk6tLty8 zEzhaHn<0%r%Bn%r;mIr?!~5cSIxX00FJFL?EP+M^%aPwSUyg|_eW zkk?%Mb`(CX-wv&ivNItX*xlBgjegw_a0vT_#8(4^fgJ>-_79j>bEt+)vrJJb^ZNO@|A3i_K>#%_YK;$k6XkJ+LCgC-Oy0$iM?USeyu)Ggwn1JUm?)38 zH(FjIJUR_!Y=*o7q}5Kx#evUT-Wvzl_qvof9EX;dD)LzObZN#(aPn*<1NQdltb6cC~%OE{dOumP}^y$z8L7U zl?3}w=i3^jr+CKs;49XdAx`rVeRfjyzYzm7-(`&jH690(B;ufMUU@tz2WcUQ)7}9& zgNFt^E~|;(4jD3Nkct^PXy`zj<@oDu+uL>QtheofQP5ZBpEP}}nUk>>Tf-N%kHgB= z4X?-B+Hh^HuPhSrkrS7U(>(9R4?L7?Xg+-%CvW3#BlF|)+vOXXzsZYycUV4mC+yys zVwi&t?(Ui2s8+5%8hEny-HiJ`?rFTo@Gy6??W9rbluYMD4 zbyzs~vKJ0^*bunC_qhEJe)rtI3j(=AM|}2dO6y>G(seO`&$o@rKl0oC9d;$w-?{m! zPfj}!*xlauXz#_n|CC(w#e*M}w&`vhJ@WMaIg#ty_Zas1*4B|9AByRH$@j0cx-O+{ z)}0;3e36mdfA`qPPmj#_W@s?~XyW^+n^U7-NP6z`kK12mJec;*r}uo={-GCIz5LSf z_{Za>#x1S?T|%ODL5CNQ{w;pXp{*lt^WD7nci*qrceig`>h%ZC+STsd5g&B=?#tnK zywD?ggt`9BQ+wt`t^KGtFtSa*wm(1m#@i=ZzdwA^*qL44wZI6?|aelXZg#m^{w`7yQll#;^VjUYIr^MlrPuD-PGx!4>oq5-Tp}K2J`Oy zKOgdfZ`Fas!)*?|v~gU!?~*@mpY_hn!*$Vtl%<_VZLdjb6a2@nPF-d-#=kl+^^#8i z*gMuJY5Vg2hX)lmOv}vLw>|#%Uw(OXXv4Q}C)by@`Ev6qft3;2?_|ZNTfIJi{lkjv zJmZvvjR&vjc7MR3^M|_>X~`ANp$76haS$`5dXi?S?1hNK7MO>;O3|^zYl(wzx|ZM zHzj_u(|WDU+>`pj_F(o~arX|GzkA6GZ)UvOs@=BxGO`ZtZ-3<%@4xT&@7Pmx$ZR*~ zyV@`2CVvrsYi7mn%vR4g^na?PbH?6lO>4{Polk2RlYIEy4{{E~+}!$_E*ZHGWlef{ zN+AEhQwd)sRVU{_jA(o)zSTEhMeWVL%$hg!>bSgMGwo=0N9&@tSH+*T<@@jFG>mC@_x;Y%i-TvscW%$oIe!nX z?$z$;ExYD!{A%->(aSRzjd=IuccLbJe5KLvFVoChKaGyxKYdPgyDk&HeZJ3Y-<=-+ z>%hxN`O)WoHoE`k>A%|C?bIHz-}XES1ExKc`pv&#s4=@?09=hj-*m$ZTWq!P8#{?6 zgGKEW>g-Lr1@V>{cnRQt60zZXlk(-apHCFNJ{0Ze4Z4pz`x;gt;u-}}9}xUeRp7!J zbFRz;rAB=-z>O7@g0f91Uy92%rJU!pw<+}>V44BEl0^7oO%As@S6MZ7sa_j z^L%>2!Qem?E&=8&GSjiR=9&@UidL+%6e|K_-eNQypB&AS*xicYU*I{)oTDXVGJee! zj)XaskcJ~pOMu@nFH{m34hi2gWUiJFB(>%vN?4{MHshZc|LAtqwSs&_B$bBqD1SMQ zc&r<)WZiO6Uji=zhj6qq3w)OV6N8Xvwr{|HE!^VPEPN70aXK>jc6g4OM#=)9*^zgE z5y%Vgd=DZ)(gX1ILs%QKjW*hHCc>XG3?Z#Ml&)lp3oSrN%LQnt4XMnXzYMUMfCxYgO)%icMa#lTlySqj0|Vx8$KG zB)SV#Q{z!qdx33|UeKDX7PLm-!P({WAz2%}(6y}_Ztt#&sTiM(c zsvWhYqo#C0_3!>g!b?$nq2YBcrQ-vk&)&A`r;SiAtSqj;hppz9lrC6MUU{LjvdO5% zVyXG_%9p5>M1^w}R+e~{6gf+W&|c2cA)L`6`=R0_SIudCWS9v{@ao)j)(U-MV0n;< zJx#4e{jKPUX}*9b@^ixsj>6S|U+Gkz2R&<`j|+`tIfc6%!&!9TSG z7EYg0JgcHquVn~b;1IT;ZQT5lh4V@)YZeTcUAkz1ZSOOtw8Z^Rr?c8Zt@QA&NO0vk zJY2NkEMstuhp5vTW2&o*FLf7=kaaHXs-~Bg&OT#7>Fnk{L+PwCvhxO~fn*{3o=&JN zsV*&EP)aej(jm&6&?cxYZ+)sN^rtOP|Aj42!#aZW%R*VDa$*Zm_%8cc>rXgzGG03l zz53lF!-6=*B(%ROaz(_|{%fpjxr$^=76SkCYdO@Ja2&gK4^P;)G3~B+Y}Z_x_h z!_$m(IZIp4LNgsVABS=N?BbeYyV(DQM)kP*I_}5Vua)z5uJfz!t?PFb-dhRsG-qSa zcjd0*4TbAyV;?F%pya#f1K%*Y&QdocUOHCsyCJk%avg2zL*?T}(Bmw%OQst@oBB|F zd7tMxe$z8FK1n?sC=T3JnPE3dmVtXxk893`-V=@b(>GRjC~e}sjyCXKXN74)n|A8w zYMtg~hx~B5Ygl}S`aUN65H+EVG)z$)N4dP8WIV?$+DOk9I;d#WZ}l4k25_TGOd+B@ zIVVV(&TBKmCMJzn^9s|52xLuPR0I6y?M@2&!EHu6pf)pAxA^TtNsa8{7A=9f$4)1&vTP} zJ&Djql^dwq3w)}b5Pz3x$8$XQrMvP}deAC8_*DM}Jxt^QPRMcWMHbH7BjtFVPlz-i z`P54bU^pM+=>8R(57w1-tWP@D3uS9PCNt3EbiM@$gWs7`Bp=&C%hAYi@0>{;hJUtg zHymth@-f|N9F)y4x*0e!mCydu@~S|3==JrrU)M(aRH{y`^D%t)S2!nLwQ8D~89L?>bz#HiC!w zdTl;x!sNXUd08Thpylyhu2)_Wgai>!c|4zV{aqU-?>opFhIs9?ysN_G)k0nYm?#gI zT}R$8!{iNy63=KM;M3k;gvr|kdDM&YI3{ZSXj9EJx{P1oomMwJ*dUy7JlIBFz9hUZ z?v8NnG~ctrr^AQwwX(;NkM8wm_*h=;s2|;5!RM{#Pf-r)%5tRP(B+`5H`J~|ka8=L zZ?-0Yh*l0my)%|F;92nP(UG9Fm+0xf2KSo2838Oa^JcyXQo4Dn%NT@Cd?~`U)AI0g zqoQ!moSOdg2L$QtnN{T#za66ITC=mV1`Siu$DeC03aZ?kxz@f$FC(UB;&1)=5pVm0 zoEc4g(qEML2P23BuCDIk+Q5?t-{9^o-0!o!V{XpxI`OdswdY@17nQ$cTvAyeKmI`N zR5LTV%%5#O);2%3$jBI8)-nIa-23vP-^Cul+q*SpY>%kFD#6ToywMljhnZLAHoVMC zw|)1f_R61TMCIqIa7df(&l#5A5nsL2Uz9`G`96MCZn?36jkkQgxxB9KH?XX59dw&Q zy}F%tRo$jWbj9vhjO$l+bAIIE*n>zvtxuVMU}S?Y#(ZLVeq4TX(Xjj}dnWp*$;F1h zKHs|jl(=_u8vT8v>L(ih5j`3^24lc|&dOP*%HCorhAIn>QGl?eyZo38{!fZ1TLg_ftm}^MIE3P&+7p8Cct$MR9V|XXi zilf6kBuz96Oauh{oNjA<1%;_37%d^Fl7dvqZcJH-z@$k0aRC8RTKmibd2?hA&^fJC zDW@SjJLLeTya9pn7gL3-7vTLp$t?&svtNVvV;sqtY#K-zT{UZxvF zaw_904RbIFTC1gS$(cEfxmmaDENsKOomEgS9sy9$w-66XXCmwogwZNG(VS*x>xkKi zplK18!6Cw5iMj3I_L6{S%2i^TR%r&Pm zXH{JjS!iA|;yK2dlU_jlpGk6eHFGix-2jq>K8-TiVOZ$XNl>(1=qV%@F%E?;Ah8aF zUFd0cp|=*cISJt`MR63;4h-fjfiBoNbL)c(fNO&XG9uVQyF7) ziG(+Dr;iPh%HpT8G)C9MsD;QkeI!@}H_DC=eg-)dKoct^DOLHX3Oel<2u(}R15XBR z`y#h0LE%DALT!8-)f2OboVp9>Z!t#Ob9gbyrj_9G z#l}0cjl*zv8rQ;nBNol+iAl~kCb(04BwM)?iHV+x#MWMcAv^9S*$IA;*MXCd$&ePH z@)MFNEqq>43pc^q7KC9>S+>&?lI`_`WCuM1+0j+co`LM-)nr2Q$PSc+1%UicWoK`k z9n-}L!gnC;pswB^Eg@(Ja{hLZ@TGACPY?Z8WJY*e_6s=NOyQ0~ZQ`1uyfX;6g<&W` z4V3C32ZZf7ByygTXeTPriNZH%jQ|S-5jY&$6RPy7VKa1tS5KxFsAOjmI7&91hvf|? zww5J~SKb1G<_(>64Jd|bge#SICPDMM-?wC~^~b?75GUdAZ2Q?D~73r8s(iq(7d6w z5mXG*2j6foI{{+1{2reFx~FKRN>JP2+7WLDv2zVLJ7oQ z;6On+jH-)+TQlTbr((~cK%ALChf$O#Ef>w&zrgJbO^W=yn@q6ZCoa=*%>e(|i`D z<~4VgS#wdU6*JRX669W-oW$?0rtnMCN1uG&u*}iEBoFuB4D+I4x%~F2wQ!^r%bhyS zs}%c!tkWiydrbf)E+Xc5uO2AST^ z1gZ~)hIXk5m5WNN7nD-?g3^jP_9>!tgAO6Gk72J-UAkalg{%Iog>&YVROWhTviN0)P?u8VTL@NsX$P^yaMU*ILOcIKoa@~A5OJnd#}E4QS!3%h_S7ct*!2*{NF`R1e?U#7Lt%HZy(fN8>L2Sb=zjNhUgk zv;AWR80xb{FcVkW)!S;H^ZY zUk7y3>(fi8$NTk2#M9=6=Qa1O;2BTknMwqU;Y-6SN@6-zJV>~D0fG3@LQfW)E;v)L zRIoyDf#4Fs<$~+9}0dhc#w!k!3gwQrdRt;VHijen%}sk zjY|d*e8VMtG!gA`y3ky|PQLRce7=NVN<=#-TO7#0Rrr)m4(NM?RyH}Hl}!%h{6WHB z6?}t;_;-ZfC0H-ve5uTQxZatl_m7$&^lT#1R}#^#R|tJA5&5b8Q4oKd(057v146GC z+#vXp#Q$ArwGR~JY?tt_h{&h4Wuw}+4m8(=GyDP~@~afQN>J@bhww***844eCG>tl zG@EJ<_G`8a-Z(2n(G?;Kg&hUc1iJ~MORM-{g1Lg@1o_I4a;FFu64Blzf)@$${9*WF zL5{biZy-XMp9|h5c&Fe!f)5D(UQqQ{q?HlAs~~5cn4Xh3#FGR^333{W;mQULsQNjuSi+Sp8fazP1Y98D$|emoXRer@ z`*09{Nkk*vEqK4+!-7u;J|)PRB=U2Pp14VHtKfTr9}04+iF^kH`9V<9eCJ5yf-PdK zAZMdUrwR5F3kW0sSeO?4egHMguKwgts|0#k>4$`HP2KHorNPh|u z{AUuuze4m->2O=4(t)op(}BjNNb!#pI+uuaWkRd*T=YZGaozuw&Du<8hOVNnb5xS! z1k0)&szEuH+iNRQg$p0+x;GBiJrB~Sf&_IrKDYUta*&Vt zQWl*q$EWan^S#+qjyU0CI$meJ<(Q4Il{mE1@{+*hmA4M^dV-1dl7K^(W3b56<)^;P zPdhDdmd)psqY(_$hqCB2-vwd$zJh$&UzjiNjdZ@Wo5IiOS0wHSt(}&4Lzukno^m9E zS<8D|hBbiQvP+*^METsU<(c-rcGX#)&a$FW@8lS4Zl z=LerxUJ&wDB8>GyxmsRIn7mgorhKV|fKPjA$)Nqr>v!nvPa#Y@9hZ(UZ@v#>VB;(!KJ9cIuNPkZHbP!5n5ZAT zj=Xci+S{}z|uRJ4Y@TcUZ0d;xjh&+zdbSvTwV*~D`w4*#8%3uYk`NpCX zV|aI*=F|Hq>4HOyu?zU^I4lmRY+*Ch6?&al=@n*@usv6qeORCWVw)l$o19*bT* zWq<9Al-h2MnWxnqGIDn&&ZtezzbP;C-Ahul8ht zi=|!KRZEplcz$^-ruG-847*+ZW-a{Y8bo?uRFGHOqWPl^gYtI-pR*6bID}vygqs*~ zF(Z1N#SmWvM_ien5!@UhL$>!R#<(34DkCnF%j z|0w<=?^Is?N3olkXnx!J##~bZ-oRW0J-{%y=nD~IrgVch4M(6DL>)Y*;fN`&ycEV} zOk>^h{IXawnC%!_i6eHDLq1Cqhr}i#LF{GtGutzpXW@&RXP6zB$yX#`E~N+#fbmx% zl!kpq0yXA6cB|#2jD(*9uF~{qBQXztf67hxk0e{`=h?}zJil8)a;%lmDdCKEt<6N3 z$N0qf2iJt-Z!zF}9D8&Jz1Kj9A&%!8*)+Wg-&Vk5n1klwhp|21$&T~HB5k~DnvTpX5B?OV$mo+2CpEbqw9tTxiuvIA79kOdM#s@e{LJq39{C`VBPal|17 zEDci;m*HE>kX#%wZs=OllW|zarAyb+!;DSiYyxi*RX9*Nt)btz<&Vo$(gK9Xq6cMX z-eRN&#-*-h0Mo`AOQDkl>cSw<_(df|H|>qWjp(f?6pKHV;W}??5enA*;;y5+Tr+DjwfX< z4%)8}Sp_f?(lucjOP4v#X&M(4A(~P=mPDx_eK^>Aw4-ib=cUzKA49z>`cD|8{PQ1X z{r|)qWKKn4$^6neg*EdFE2>KRE3**C6a*FSn1bMv>{@iFHgGIDtk^l$LS>-Q<7Ap! znCDp0{coWMJ1$HnZsNCIt?^T_M$0rYepl6~Ic!eMyA#XKWOgy5-S@cDO6OFJg^n}k zPp&F47&$QH+l%hZIcK`V>h+)8LE(p4A2g{%SEZ0S{t%*BV*->wSu2zkyOaD%SV+GhptR67V^Op3%3feDYxXDWlpk)L;+>yR<{l?zf)Iyc%4>g+=^3^-YK=`uT@iJ4 zC( z?tdMTegn5+p7$;8RgNsp&1aL}b-eR-UDI#%sT*O3f#2ryI?h*n9p|IHj{5+39lxFD zb(}AzK5nW|?JO1Rrf9k^KnJxRj&;oQf%CJxBhij>$7%vd`iw9d^Pf$|;qZCT&`U{^ zli3^4!t7%fZrpH-h&yZE<`m(*5uG!q*wKFXeLoqy=2%695q|=4&D|EKdBZM9=c!uCPMC7}I2sx_-k(~`zLV)r6PzkIQ;>JvjOXn$v0Csl!DWI!6TC%`PZ8w5PmqtAq;);M zA+(wcMYyU*;BE<5^$B{v&_@K13i4T%^3>cYP|b}3Rs8~UBz~x%s#ka>2(A<4!?7xl;7fw92yPbqhu}8B?Sg!sX8L`CM+A=wM&izr@iBtQ zg6#zP2+sK4f&&GI2%aoBMsT9w>4NH;V@Q9t(2=ZHbfQG5Ux1RY`&X&x#Zk?NKb+bs zo_r_b_`VY&oOjNH!V*CZ<)r^O>2-b@IUafQE%4;aE0)gpLHM<7 zc#T(ZaNbfo?Y$QPUU@~3my1Z2gW+1A06bYd@nVqQc8`;XQF1 z;rHgd4g*mE_?R!pc%3iLcdxwl=z~FoX{X~jK6vHr#n`9Y14VM=?SfyYp^Pn%M?URz z+zteI-N%2|T{l5x=Dh2kXq;;7{q6cgMo~mrT-m8* z3&+-sU4O_|6mg*Tl&B+-7ffyRpXWbNJMP-Dh$E4wtUu(>o!S_vh&tlm9eKom#`;5% zxi6Q&cgfVoxC%QYkQ-TUha^f!Om4n}q)13y?llt9UP2NeH??B@p~N84p84l;gpb?{r^Mnm&>WOaS`-hgfd(XZBtP{GoX8s zdBm6ZLh_Rbj4A$iW5+MgduD@~Z*D*J;L(e>B(GPY5#z5!sLu|q?of*|)}o9XjM}5T zJy7MuOvI_ifo+SehTIsdAs8K*-zvXNerkSJe&4id`F+&N_dXYm&riz_q|Y3ZF>CHc zC9@vA=)PI?7kxad&)kfXxpPZO9-Vt%N&Vc9OSU%FX7`!3wQ)uET>P)heiZ*VX4m8Y z=IlO*U7bA_|950RivKm)^(92O!GGc z)mr~P7x@pYyZo&D?)e!-C`A!UQG`+yp%ld^MKMZIj8YVDZOm1r7^g}xUX^09Dn)@R z#SB%7nW_}$p%nYdo>H~ld*Uk8cCuaD3wkuR9hsH?T$jiOyg6JoG5?{46zlcIxQ#63 zh^~odZ975v|iaW1W(G8ithZ+(shCkF0up%2$5Hn823_(nSiivD! zZ{!Yns3FFRZopjTs%+#Er()hmPHl(IIi+rMprIfT(@+`n_9@HuU-CqR+K+(kpD6=E z-4p(>IzB8l%=)jZJ$C=7bo)mI`$tUrHujGS^p6Vkj|%jUdFUVW&_Cv(f6Qb5cssk# z?5&O4vghJ|d-kLF-&(a zhcwqeI?ibf(ZA*X^UV~0e(%#);Y$HVkEP=x89&hHZzIwRhTMnq_G6s4871`>m6Y_s`8pTp>!WisX4lUxLH(Dh9$%q) ze3k0)HLAxiRz3c5)#Gbbk6$6@E!$-%+9lW8)@-{_)n&%8?}kQ?-M#MIYscKu@T4{8 z=sQPu883eOQB391&kr{Gx*zRsEHui$dpr>PX-ru{&Yk;4TbCSt>gZq11&8w6{pHfP zzq%r#?E6zOHL&Tsil`lXhE>0jS#a=n->qu&!aXLgnfCSBZ*tDxY>S%^-VFAXiX!Ma zOXb)5XPk-NZ&f46*+1hh5ZL;HpLVqP?Bnd8k&h7UpTSuG>mA10+qefJ_#}s|G$s@L zQJh4?RvK^HR5Y}Kv}eixF$LHgXy-B`dY@BXJAnSE zqKL!34#*&|5PuOzl;2SEq!HgLA{gMeFeAQGM6MCdRNM_I=5{7GVrhXF@xAX;Qn?WU z>ud^p2vh_Mv2G*(MdWX*{NP7bN3>J?xq(zf zN3>T&k)1hBV^!wZf8dW4-NE9M5lWJ-b`}Zn8;=ngl6eA&Ogr-czuptk&6aG$_F>}g z)_Nq4>w`aYlW7h@?Z!{QRuh}d&Cn@+3Kr*?o6T+XPcqCcCX1g?Gq1`p-?9CeoqbpN zj8^YMyg3Y#@O^6>=9*U^EwQ{Zo1qj(*SfrNpr*~KN!K#XaPwuvq~S=q!=`t@pNAv) z6DoF+N!oXdk#ZT(9I5gvfj6a=^vR00z?pJ4iffKC*}yc}#JdQlpF^*)9f!H55E$(LtOU^^6P{;r*SZ5@I-1k5n@LA=nr{jIr}_eYJ7QB5Jo0s@1=l;^ zGLZ!F<}gOrz+2$E6b}(MA^HHKA;4O=ksQ8Da+L)97l09+$Ila?%^nCai$JUQjpmy3 zLEGvUQC)s=n)=P6e$RtI3YLBWQ{>XOhL7Z`^b1(}P2jOhzksFZC#P+3HRS7s7Pd=Y z!_uDtlF}DZ`f?DdY%o3s(V4fukD$(ca}m*nHm<(_*@echFT&H6EJ2#OegP_tHm)6> zK@htwKU~eayQG38zZCwd)}proth|oCD-7QyON|bH7j9~yxGTYJ-BJ*#*f-hi0h|4D zqr)y?ze=-LDdCxl`!$<8&gNc%*N;$>sywN=s}=VU#r=}aonmt@HagK_gxpGv8me*W zD|81fkZo_dkuWQz+TMzMoxt zIYejfJJfrUq7CftyouO1A=3JTw9b={4eYKsGyMQD>9T8Jqvd$Kr3BRD`5G#={Da=N}--S_^L#&9LDxJ=W-k zGFpX0dCkC}2k%-_`)DLJ?OYpe@I%{;Z8-XE<%IGi}yWp-%ZL}ThM_YTIu0D(Oc3O|y-`t?@MLDQk z&y5Io-%UxdcJ03k-LHGyu|Yo`dfF8~fRMzk_|yN>7(t0759|Zj1_OA)9>5CPpJ3o` z;mtWA#ywyF&&e)s2z){R$I+aLBe{pUP)p0Eb7}jZ$M`|4POG*DHDdH9`a82(X@f(& zY;~{|n7EKoLN8l&aZ54faE+l{EwPj{sSB4_YVTi+%JVNqb&ypk;2Nh4>oZ{?B&<4= zw3VE=>=IW-vRE#*YUXb94uM z#s=rYDnzjCrS#yKlqw_|Eu)Zq(#=Kvz7YM(Yp83#wCG+)>z^`&+PXEL2Dk;H2Bu}ggY@PAkX=AjyZ*~8bL84cmrl!bd29Lysm!XI&&3ih*!scNT;>waluM6-# z8|B-uwMW>Rz=A09S0~mOBDP>F!lRfOeF|JIQbTacF+W#6`UYb|V&W$A&LUWKyz7O( zDM#ffO79cFA7!f1E<8^1rxwETB9MDE75?0_;9u#&^T^AcKc8ePL#Kdrx!1y%atuai z5xcOp>@3zE?-UYVA#*h+o-*);A>kD=d-D}jm`Qkr%--CIm?$PhlGKRW16O$D{>9#Q zwLYD=0~^|$*lONs#6#wtPCSgQyLE1%>s-9c*e99jwKnKIw*O|v?!uP!j%Ay@?MBTk z;%-Y;OFVDh8N>_NdSqrdJvWJ=*l77NdKWe{FaD<7|HLq1_i>nzuGksFgk6APLX??z zHgN;Cc(8WsWt-`{*+t-Q%DH6IiEFW8^)Z4s4NxV5>0-eJ)gc3?BPivZffST#{K*^%=D?S7N%$}x2tFQ( z1s9#OnI2wR#)FGq3pUfogcb$0luN>gb|9SLSwyuZ#PKDgV7*LtCgF5z!@8OK6Agwd z!Q&i%bfBTn*-TFo8~TEv6$^)sIVvYCem3FKt*y3nF6Y_OwAVFUugoNF!4?hH=98PS zg6mI$=h=0@?T$5EHeh8@QZu_Y_?9~!H>coP^>do|Q!xmaD50dsHYcFcxTuOYy zymJVbrj<6ZJ=4X`B_6=Wb4cdkWvMtI$syR#A%rUyUU5zrtCdd3KIm*fN*r`D`Ytsj z5f`q_L3=-A{Irs>)y?&9D>b*Hj*C5L?=M4%qAZr}0Oqk%KYhELXoog>c}SwG#*RnF z{e+I$&~fO{c|Eo^osXv`g1_WRZUE6W)E!wVpCaTGm4KkS7M54qT( zGdO?Yh4Y8a$9vmLR^ii!SSK+Neo-F3pz)j7cBk0)qmlk6^eHLrGk93};1NA5%ZHX% zo^h)CS6+F{(7q+ZPKdS(BB|96-#tiz>QUvx23M9>mX4k6wrC=h54(`{Ywyu z?Tt>3-SFwMG4LeeNyhd?%VJ;r^q7ldoyNq@FU!g*_T%UnmbLP^Z$I~(<=Jpg?1!J8 zW8V3bV|~YDRDDatXHSKm{W5a@PULW_H?OVg{XS*C)arNCfQ%gOiTdnYtNqqkq%2mD zjIBzJ?BA!-YS37AY9DxFv5O}6xuD_EN55^t@*U^{yvLUA(vSZ6qW@!yQHG~axPdxs z*tzu=)vg$YzoEqeGv*cG;R_b#31-e8HVprR)T(_5uMF^KSZd+H^aKaaxd^Z7H*-E_ z8VnznF@IzA609fKvJ|Tuv3y|qTb3=0TvcU79?p`73{F_lIBnI6#gmpd)~=YzbqP^o zWI76{s>;mUlGd)Ux`*`BGa@qT-*TpfHAPibDDzn>$6q+ia;;qfi><8**|H*P`^u4- z6`9Ef$cV!Y?5w7<_kJv)s)5$NXi4LRE5pk%wWuab_Mdqk|NK0UbQeyUmf7DnTZ+?Y zFy<<`m!QikA>g~Gl_Nvr#QHX)-_kZGthit~tcC_;I4(W7*^B8IzYB2>_G6(zA6!ih zV_R-BoyJNLPLQ5%l~#h`^bXoak!{$A3Tzcd?c1;t&a$;4g%3uyGy2cQa`sajHZyh< z+v6)MgMV(qR_a>dux3)7%h_j38x}S2OT5E}vF*{}I7XtwXU-o*a8w-Ta-{jVA_&g~ zD$zA8!Ry;`1;wE+p}Kbly~?gu;*&lS(#E81O|xGLxB_%*R>v)47{werAF z8eTKEx>o7Q1*4*0DB!D$DaY&kWJ+?^@rTNf*Ysf<+4()T(Edu6+;5?AM3 z6Tdcg9ZDUowKY-?C%x{P_SA#skUs8Yra4qL2TRvRwKEQE2Q5^~Q|`f= z-&gzab4V9IGtJ>wyJfmIsvSPk9=g^U+J`EQwNpllHb->EDJCPyp)yG~RYtPI%PD*s zI%FTFb83++t8H7o+-kdVTUS45#oJDjRTMw=GKze##<5Pz&^~BETD6ah@Bc4$N zcaC?|(yrxP&^*&mYviT9@NsTvW`3Dc%ekVRvh1<;X~(sTGc9yZN5a=~ZfTb+dw5(N za-2JwX|Jp4^IpGmUA@QHa_(vOEc@NF^pDK4&pVQ77qeL~VYwvBUigZR_3M>okIzKX zE|zgcMg7t&d!=b*_+mkyEPH*j;`?UF{j%)!%ZeY6Wp6-MeE4dS`47snmpOW4SkWo7 ze~vMI-feg881FI0Y~|W?Pz(?3GA)*+BjJl-wo#^iUi_t9EMw*{^@nHK8=h8%FBXi* ziXUNX|5E8pY!SqVUCbWLr$b^HGmmKRxO60ZvEcYD`GhQaY?eGOOFqfUSC|T&kn+(J z3$o?$S@AWt+>8&Toz>X5yYTly5n7YaT)boaJzfAQKbIxH1DWZ0EnkHFy8{Hu)%a6{ z{d2Hn{$41;9sScJ^S(d7D8G!#a@hOex7#ol*u8$>pE7m5VpnRRT(WNd1wt3sD z?Yjm@n!bE#BV%tqm^?!`4;g`g>RMo9mx+%{*mNoCBH~wKiIACkHk+DpNBU!nQtc&t27W6ktaCG$JBlyjT5A0v_eMwIhUOAZ;0&@kWrtGWN+Ljl-!@J!5R_baS9(x;y7`- z!k3EYDt?XRizKg?{CV+a66qfieoFuL%VSfWT4sWAK{=T?V{7~$c=k!O4ILu_MNx@SQ_j~@DB1^@7BAVL5 zE5z|4s$}7(iqpkK;@P4dFJX6$I!=vj(Zp^`ps!;yL1Sajkffc)7@H zQ>ME?yh*%Gyj|pMFCI7V6CW1sc#m+-{$l*k#b1iQ7CE_y@wR3P_>ttli<}+C_+s%W z@o15=#Takr4bav|0d0*Gkh8}aZ)>A~wr)PSNa5#*_T37EUm@AfCy+Nt-Y9Z?VA|U( z-YtGZyia^k?_)LFraVeA@DSX z&kz@gOGM5?R&5mWrG>mpUIpze4hH;t3+>0#c9fo|31Fb45-L zWcYG%jd-ER`GSnUUbOeCaNgZQ8T^{~O_B5W7`|P6k;M7#W${_Sn(v0vtg)zhFB*q7S9z|h@3G<{VPPy52Spnc!zkm zc(2GgdDMGCd|Ld8_%m^*=&uLfll+0$EPgD;6V7g~$QgFLZa7NpE!y=1!a3=V@yCmt zV8`?SRB^U=rno>{BCZfui=2_i^jC_X6Ycr};kQWMB;F~0O}tNhP<&F{A^uc+N#qRHa>whJ?&8s6ACa^07;o1xAg9~$I%bMEQ#@Vd1U$xbLKw+O zcDzn$60Z`k6K@i47B`D`iua3LkDqoP6(1LOh|h~JiLZ*B#>aHKMb6!$yifdC#O-7Y z=R`locN2Swy~RP|P;sO}r zJi)gQ9eANg2)AX|NqpOp);l?(Y^&GJFMo<#l+NPd_^Ii8ff zgJgLm|B*zwnk9csqI|i$o`XHRpMY{!N#^qlmiKVoQBXt@8;4B8dW9XD&s-_~QV-2! zE?bXrbSOG^{X^=Z$Sv~ab1v_EzNotCdHGGRAo_gWJ@)ika&IA? zHu%Hk8yG4de&VId$2Bu)+n0~u)w&t7cfLHk5D>OE3ii4qjP=dO=Ih&D_Ix^C$A=yB zq8sD%QuSB{J=TG?=zKjm4#W9Q3)O?aMSZ?p)r7WvJsM%Jn1Cpz= zolY-RKI*Z2oh>$9zRl1Jm#;2VzAn)9<;z2Q+VFsf#FgalEMZZHy_NIqBy;MD@$9m8fop0xI=!NUCHB=Awv(K0P6s`w0{NCu#=boKeqq?& z4%qYKnNLK0eLr;NOSLn9KZKpH2i9|9zNvapkL^rbbUqn>4~FyI6{<(6^q8(Ls~#I+ zpc@Uz`FhNjo|nJjGm@S!AMaa+%Xg2;*GGCj8GlcP%lCe$eEpzHJ(lms%GZzQ2N2QP z{t=u8zeoZ7~X2^_ZTv=xC4ba(Ke|R)^}r zC(P7ix_6wtR6VYTy;~6OoiERWS@x#EUUw+59;}bI_iNen>H7Kxl0jdOPRIxTR6VH2 z^3WC??a_6BUbr6hp?VBQywCRpXD`)$6|h%F19G%YH%WR@2-rICvMaVsc(@QC7ZN@%Vfj^q4Q7wEKM5 zX4$L2L29Kp26}s|vh2C5+DS@yQV&>Y$0Gcj-PYqICZ$Bt4=7e|($;IP(S z?K%k8c1Y`;F9I1FZb7^p{Q*5>Z@;yeZy`384f&?rU#hUoO(>zaS6)?7l?=Ix7Je7v zzcW@jV$>)Xa_F^JbCD-pYVFl(j2NulIIg&+XARc&j26`NshRqh_s{3*gmK6@A0&gi zs?IgB8mz*4@mI!Uh0Tli|14+UUl!!-YhJ{#TgQ*Lut7CjdNb9)nqg*R%lTNLa~wh* zV}{$d-P1Jc!JstRx4L(ZtrprFD;HMdA%j~7u`cLc6O=ys?x<>?0{1g>@8kM~ATT08Dr zzpxY5Yn_&E$9+w8Xvc(a$NN+5_#)czWwztF){f`0ZC9=x*t^pDucF3!Ft*MtB~fOS zBCBP6zqj7DhZ+HF=LB{dw|~bY$G{W$0tQo&-&5eH^J_Qq;2ia9H}dI3j6dyDYd01^ zz-o(p>>c|XcEr@$jo4oUtlh}(9>!i}gkQTc4ppq(cq9|X+wr+E)^6luot!x2`Ainc z{T7q;rr)jJ*pX^OPDeoO9VWEZ8x!#t5YX;^{7J-rN$;cPbpiC}^3O-u+TV&l?VOy4 zyiD#C{U&M7hK1|62;K$9~iwj2KH4kseNoKsDx3-W)9g5;bQqm8_} zoY}E;Ow5N#Ij5US(BY@lm}5e+!?lb#!&wUQ_fk4D_9-B5OU}aB6YzB46Of!mO3c$= z&SEP@vO`bCEU}on4%f4QOHF8UzxHy@j;*JqrkoYAd=#<+&&4?_WvLH3Hs^d3k{upp z#;Z)Ic4b;^0xHyxnKZ`uT&rU>@`&(`L{LZHrk7#0fQt?uwS$3h1-3TZQE$Loimell z-a({T9e3}-+N+&_# zX;5s2BEL8Zm1yo3Xkg{Jpr{Tp#krO|hl}6T(E>g^XBMhuVI~IvyRld=(Le1^811lWbngtQy856(|gIEaWdJMxUT)7TQI#Affr9~z~`Ar`tr#u>wqUCSHFd}w5PD4HLyuBnhHD4Yj1j#fTHvKm-ZbF?l)j7DpM zqqPYGG~L!)LT$}mzvJ2X6S)d$?6zNI(@{j^?5%bxfFn1RT(hsoc2( zslfKHL(F@K;WHt0lRKcOWum$3V1a5ytDqJh_jRaYtK*&r&yIW%Ao2i`s4pHy@m)`CDj*vIF#9x8RP!K7SS5_slK?ig@!w}wB8r~*kY>&^8t~ay~YMzzJWruE9N7j zb}VjjHRQw~4$ZFYo31?jb!EfbpP<`yh|f7L#u3`}B_G^%2z+>M7Dw76IS^b5OUo{G zX^%J#?ekv{c`WKmPuG6@!}DrTT!R)&B-vZ7XZ#cr=NunnZ?wp`j%oYfn~KWHxcE87 z_xwp)wu|{DTw=(3nd#G&?#?@4i9RmdtOg0NdmiiquLoOm5Js`SG8WxK*txuw!^dyNq@8usm~ku|M2iNUfuH1V*G^#E+}?bq=lWSL7nT zIKBs$>Fbic++J}wKeyaoSGU|=w^U4OxxFJ?(10G3x>RXxzV0cl@Ctk=5PqXhBkHiV zT-2@D6s8kAhGO|7f|q<)kBX?n#$=gGz46{Q6o}sDttFT=9yD%o-yF5;#$Yw1u$|2H zfcSe6t3wek`&sGir-hScu4~oNl1(G}n|Bt$E1!6<5*gCRGe^t%c10)}gs5v(p~w`b z6Rt%6aD!x3Bo?f${zqD%_8)D5zE}L_fE&G+okUkcuWqm^g;cNb~{G^9UGL64M68* zC#BQoiQ|Hy`~Y7($b@kE-gR%l+5ra0!uOd)fOp!6+}vp zFD*YKE5W-#WcVQDG3}aXKRYce?y87OlAXyHBR-R57iE>}fvhCy={mMFiM6K|CDQ6c zSklD43vG)7rI#zw@<-|Pe!7oLxM^0ctc{Z~u_!}Xs|NimONgWfL`Jz<%%iewu~tac zDEtqtzJ$7FFR0em2dl9#6Q+1&PM8YK<#svP0!B32MsZYqn|g&6OsZHKYlXHKY;v=y zd<818FjQ5hbt{CQn#Bd1f`cwbqnTySV0huE^paAk^sGsS&~llbwrA62Pxx{}DZ^Z9 zfva?LrBh8p=2=VE*aSC(yOp2PiL{=N%^7rYD7md@lh(-^uGR(6vd?ncz(BiNmtZxS zbgIz$J+8&lQQ5QYS}tCd*7ccZG=9ry4G-(g;INj)amxTzxuwFgY8>9d-QJmAb}OBC z%e9c)(muofvwqdke}4TcElXqr3;VVWEDW&2`&zksCn&r|5ii=ktAl5JLHG5ED{`)k zUlqF=EA=dUVaGF1KlNlmkn~C*ucpQo6n-|oK6V9kX1ws!lRqjz*gs=yV5Y6*YunI>Y?oHBUy8LzSqFoS1Aeeqx@DUa~qI)G`FWXqR}4tFhW**`gKaorm@Jg0kf+8kdw|ZOfsn8y74(H*96;ss-mE z5gTAZW8Mb&-5yO*Y-pENi+;I;%uGN!i z4-ec!E*5kMNwlAzWskRW(vEBOWZL5yIPGHgCQMlFoMo?bIugEE&?U=Wm#p~A+Qsk& zWo8KP*QH$yZ_H(uk52&8E@rENhvlQP?C}v%+QovNS@wFSBjJm=53{Ahxb{wF`I4zP zdSZO!m=VJJ$7vVKxSFAUzbt!v)RA^E-1^M4$2*{D$F+6BE{3b9%<}nrR8A{qvpdo$ zxOPt1#R9%ek#@0+H>+4)-fc@eu7wkJvEbOS2>s)%JiHO^+-UDH#%%S5bWqE+amLs? zlH3RDuodBMUN{HZosP{r$}7D9QocS*z7sO-v1N*||2&fw|AOM{EWRLkFDst&kG-S) z{#kN0WCrmXv5b3U+llpm5luRDt{KKUG+DyvNH9sD&*zY}hA zGRWy;e5}&a$*Fq{Skb0$c-@*-ujbOfu(E$Brem@ay5D{2=$1dt4rlF~^vOb}V7pWa z+Pr^}aV3+^yzL+MzSJ4_9I_JHk94<&PdWw((}imzTW>sk`H;5I@`rvpuC1E`8M(G@ z)@K?%DW?r*-jYa%XBZAA#bZ^BpFHfElgZ=VBcfhoAi$;8yg31Jkn_g6_uNT7p6UhC z4Q3=A^mxq58z+0?W$z@54F-2|q@K5D`NIx>>!s{5kPdo03*^q$3VVK^0U(arMO@0n(OS25NC+1#2dtK zi7$wM60tkkxI^ z&T9$s60u3VR=h#nBHkr_Q~b90kobM^aq%hfRTBHluf#XSw?$rCG5!PbfcS~Xml(M} z*cvaOt?>dT70$OB89!1yK^!Me6sL$Y#nVN;2Fdj2iH#!PPh|LI;%CL{#SJ3go21^| zqOIuy`98@Hi?*fFLt#W^BhaiqSj@dB=qY-@-?Zjx+ki9xd{yLoiadV2C;mlj7VY?q_!y6$AYbMtJBxkDKAIa2 zmPsBa@})w?PZXz$Geui_4Dn}4ULrP#d<&83FB7j6?L2^RTLT9CqQWt5f`95_YeaY}Z#ve2?U9B=UJ#@@pjXll(D>eC>D!`+d28Bmcv7M?n!u z?D~>vs`w}5P(5>{_)9%h&s?@1-uZmlU%Vq#t%!A~8{70m zY#bZhnBOdHwCB@pgg@+j`L0GF{3|b4B=wk{cIZ6U!ynFf1M=mVW4<_*r}F(X{NZ|R zf;u>$dh~!&INygu z^~jeV({XkN{-?&li}2TB^Ul|U*Xdz+yAjhx6SPst11y`Fx9!AyiZK7zF{UDd)@cdX~NSL-ptaZEw%d>G$dCXguV+ z$nzomsd`Y4^`I>}Uk{!?!}Z7=lpa_7jq3B=>g=WJQ4f2|%#!=#%dp@#|z8*ZkhU+mZR1Y3ge7+-aAfRnrR-0qHhmRe; zJb%x!H!)O?o=EBKag8XDQl(>;?_ zkM6L?YhdquF?e1M+glf^M{g+mdORw7KHat6BZI6X9e>BcpQ^|8&|`UMi_X_$PgcIS zgzC{xdQ4Y~1hnn@VF2cBf@Z931Cw^E> z_C}!Ry{}~H^~I~!{b@wb>-`*I;e2=DnrI8cm~S~YCSg5(506g+F_?^l*&KT0eB5ud z>^0#Y&qV0ZUL`hfuQ|)!9k53|@4UUgWZByRdreTHJ^V~g+2dMvJ`I9{-LS`XFue0| zT>CCu--$3%4JF#+9e!WFZnDSgFS;V!z`7J+-q9Yn(k#6VN4k4=*?PRU=*z&khoBdB zKJLUUy@#P!?IV$Z<)a%7y>LCQMm?Gk&U%c-=Ie0^^w10|5oE3z2R-(KciuFbD|Icz zxIrbjM}f57c|9_`>#Q#gY+XX$w>u6S^X2si%NA<>U_yV~(+MT?_Ez~@`21LC*^2Ut zWZF5u`y(h23(H~v6ck1qA zPMLgC}j8W^heht{g5dxeg4%ae|X{fxqFV9_{^T%?6^Np z*}JZD{+^>wd2&yOf}=mW;p3^h%T9|N$p09xR$p4Mr({BTk9PZ-&iTgtS0jL`8C0i5Tf99PZ zp*Z5o5^rPnDU7HuYz96;@GtqCf_6)XtJBs=4){gPWhWN0J?-ouAKL3Sx zlTox{)2$7!HQ>ARWx@NGH$`qoeJ79HAHDdoXyoQ+_q0nK{n3>NMi%FxrSc9WW}&7R z<)Afo?8(WDxfN~1IwnxxVx-wWvN(RA{r>oY#FdFXJtoBW1#2HFddTY7&Fc7&tK(X$ zV@>bo__7y}8~X1;q;4Kr-2OmrbNd5{=h1J2^7nL~^7x*7=9rFoJF%zx#O-@>6X?AP z#Qc3^ad4pE@4-^jP|H*zliV4ulwe*QRb zR>b`Lao$mg*(KS4Nzjf*5>v3_VZOIbEI*Y&gBJ2{G=~So*k_<0AKYjm?M`Rn)9JUV zk3%PB!G6#K3qvu0@MHc)KCS`RF-rPWkWYb#uyjry*x( z15Cwu6C+s{JuY9G$|b zAdeRqks5kW#IYo@=>o_dIIp^9F9YE^EL%d6XU~%<+BEA={SDrw*zyD-SDOoc% zu}W`Hv}XJa8-nZVx@P=LxEU{JIk+~iYeo~f^sQ?~6YrpC&1m8foM>D#n#ifbY{t(r z&p$BEn(+$SJvsr=n(<1C6De9VUPbYIiq?!*Q@o9$HRLrEAEsyxc`e1?QnZG=jv~MO z(9s(5dWyp#7PBeWL$Id&GS?%v=A4eWA|Gze`3)Pk*7P5G{d-LJed_u!)8+D?a9w|f zKfF!V?Ou9 z!I&}Q5-T%>XI$o|O+@j7tz+5Tv&~R7D9j-GVv7ZwPqUc}eqKK<4YAqJiFWI~i{!JD& zkJx5W7Y3IiivEXP6!E-8tqU$d6#Xw-)LFzXY>D7vEP7C~8D4WE@pl8ZNN^^>hq#g8 z3?gaXIi`g_Y(egfm;*>OW9tA*Yl7Z=nsSftznK9ayLjU7+3^gBn#t1%TF*$2Xmh>s zm%WEBCwf6I8hqNwGzcc_%oWVA6!?>mZ5lQdouCFPL^#DW5NNI&{w~IbZetHp16@rx z#o4BXKPA}M0g+%HQDBO*38y#@f#z7qyRc!H+yjIf&?%-GkQR5C;#ov!XgS5y(CUTQ zU8ZJ}U$!;6gg97}o4)?gK6W^w3R@Jr2ssK{ELeN#W_kuAH`_Oc zm29S;r#LDiD&<%qbO%9O)=MB&TkfRnA+$8H9vgPjOE%NPu>|4L&GeKYDU=9WF(m|> zI}LxgV~Yf{h+d{Tk6`&id*))qzG8}ViGdb7hj5D15onI}JP{kl0>QzQz;1IP_73{l zafl-7Eou#R&Jvr;z?{Yz@3u*AG;`Gr$t?YcP>gc)Bl!>!e4X4@YfYC z)wk;rbQ3m|fY^vFfyu=2(f#dMaEpr~ZVN@xf4hq!*rq-e{c&rH=|qBCu+j|DpXZ_o z9*KPv{e>=yU?F`J?3wF@zq~GD|C9Z(VOS7UXE0e~!LyafMobL^bSHb38W_fDMc(Z< z*A0K`uwmC;4D>d|S%kBg+O>~F?4_nShj13>rY*7~&9T7T`6EFs6`h&X$Y$)r7CUb{ z(4t`T5NMA1y@Cxxj|dG&XYnl4!XNG+?_)!w5TOC-6jK9|S-)Y5)2QfTr@?3L-!dXt z9X}$%h7U5HILa{!3GSFt?71W@!N1O1`4FD}k?}>tdB_aSN3=0IeKGpNgUdd+xc%iH z9yaONpkdcqxIH}%-hpQH-!bR9tlYg@H*U$I@(Y$MT-CU!oG+cPSU!Kjn#Bz($~jqa z!Ls=)SFKpIWcBKXc+*3mn?-J7x?oV zFI>4~HT)PB2*)f*`0)b?zou=t#GVc!vG!$y#tnjl?ZCAUvu8V)}xqu`H~gOskLnN(8Uc4mMvM-c*5Ds*CdCY zog6xKwcD1iWY$ZUu35gQ5#<=V8cHBy5rnl877uM)uyEND$~MhpDE9hB=&V?UX(y{z zEQhJ3E6!_Z9BOk;hOS(JLAqoW0++9#Lc=1Icv-^&9wiWnQI6>>Sfv3eP8eC04)OUj zpQQ^{H=;2b>w|{nn6io4@Rj^C47&ijw!)#(L4m`aROK+z;n)E8E-*AwGo5V`Gs0lB zdUTqVW#$Py0DwgP6|4#F`Wy@ABSiO2! zx;(HFngX9HCWCzjpjk;x=U?2gbZICNb*)<2*`R&uSFCDGQXy5`wF{Q5S>kKYnDDgo zbX{hxOxNVFCO;qEY+7DMhv(7`44u|^RvTYXvA+EkxmUKkDsgqrHSud>*I~A7^h*Ui zJBD?6Mr>Vov+0hjK!OEa{3D3;hd1Zgq2q!?Ub}I*k@nHNSbn4^eng~uq(|h)=uxp= zaa@&^t-kO)40Et?m1Dj4apokZU)fjQ7p}%!tu|+sWsZQdgH9#O(rwdbxF-&7v4!S; z=A-c$SK6hotQgkXx95w~%J3yJBz}87(_U^?JfDE2T?{h-GVSH1BjMwGwXkdLTk@Il znYnZRS=jMg@L|{TTkk!rJcTJG{t`&Lmh;QHrz7Eu;RgY3&f$92U72#e5}y})N4quH z7|;E)h)m{Qzb~0jTv&da|A2IHT+dSOEZR365uTJhn1oy|`8dgZZ;9!q zlBn-l3ST67rQ~%a^e!baPWU{A_P#1UAbyX8-qRxA-=N+vB>zV8Tay1I`M)LqO)@T* z%}zdv^gYC03g@Fah7Xl|tmHA0Yb2i{d6r~*PZ#A|EZN@Ag}hqwI_Y07`6|iwelGI6 zjWX(Q^D-dcFZnU)^V=GX|D|L;0;0_Kcv#*T4x?-z`<5a&PBMn2wLg!t><8ScH+B+v zG+{V*RkEKrNURX6#FNEI;xw^VTq>R;o-eKuFBLBrZxDG~iuvCz-XT6DeqVfCd`f&? zd{O+3_&ag8_$QIi%a{*-GZ}M5-UwiLchPQ6K<*=XfH++A`!TPNm~Omynm9u|L;OEt zgJ}CZ(ltt6C$1N-7H<^4Alm+pbl;SGzi9hC!XK6VxX34tEZ@uGuf*Sow%;TEFOm<4 zw*MoX@4+#Bv1t20Ypvz<3-4;B!5=4;|ap~ zq?pGAe?0k$}_*!wU$mO{izErety+XEcyMlZ#kn!t9`_?Pu8zp~1 zdONHeU|mXGvZnHi&D)3&keUzTu8^8zgTO`Arz+yIK6E z_-*ka@%y5E3l{o6mTcdGh5QT2e2swixTZI`Puwr^0+HcyF<&ec`Q8EJ`-p=@o8O1< z5t8kj@{svr0`+aaA2?I8ePbT-S&|oud~<>N_N{sF63I>CRpNCbUu~fN?IKtHru=o0 z?>bPnZ_fbV4Z>$7Uf z6O;}(EO!*Na7s`8YUXuZ*daS}rT9xd9LCLM>oJaQ05+EWPH@5hWIhVXjqBl^AD&YL|U=i|<7MXx@j=ZDU0=!NT18)_HcdGhUYHuO;J zmEOcaG;*aEK%X!BCRDxP4Cr0pBSU%&3N>r+B5w5TLLi1sz+)8iWqY!0VSC#UIS*mp zdDG=p!`$oVN#_przWOjc;&D2Meqa6dQ!KaC`|5a+Etph@FN;kL`c;3pd*t}Nw|wfP z4___&-1s3or!|jgn!5X`{Fj>JTOuP$>VLc^w*%h3-q2xRFcQ? z((qv{v9GD7*MevFBvLt|XOLre=9qY>%RIDVWaR5;!^F*1N8Q!scFI*~zxA&#=vJTD zvp9~gv7PcFYy4R^O1Evhm*1gdZTF5Ci5|QFJy`I$@vLoE)V6p-Nkh7}g{{=q@^-aF zZdTidaBaJ%YrEjBF5}T>s%^&TtWbXcuGWq2c`83L0;3dd{8pFeo8#5br)ur%%&{8u z_apa)@qMv}^q=PH{Oq2b+@1@3zlK^l=U&&!BiPD0UmSu~{&J|5$2X6xj*NWm9oYSF z_p#XfPQ%_e-8zyl&hk9p3aGkw0^8xR%atN)PKKe zjz6wFKBEtZBhP+K+z(3{+`isj`?}lzGWK=U!S;3ZU3y=4`=9OW=sWIRv7L)ge)zG) z+OvAw*nRe$-!!k^p1r?}Q10<9|BfR~Yq>}FT#*|Yv9&o`{Y;B}_@(BG?X4dND|Whl znENgFU*8Y^+`c=antQ43q1*j_@;rNg?}!tzH(i1;mV3kap*t_I<6%idWMswuBQVCg zZ+I`3v#;soo(q1wC&!M8Jo*;6BVuTbF=56L+*q)sQ*5qgB%fgI%X~U@t#C>EqT0J1j{2| zKR5qC;%+-$QLeIDEi+M)HUY5Wa)$L`y7KC~E?*jOa@6(IgG zf}(?_FeI8Y$AB3Jh}g>rHzg@Ihf|?qx$WL3;_Z0#7K`Wn#7PT@NbVU-bQ@!aj6+EL zCVI=xgg3{2aq)657=^&drXl#7;6$OL>5EKjXY*T*zKt4i37g+?v|Ufn$en?ZNRo=Y zfNy^XQ}m|lSc<$U?!*Tva;}vV`RgMOZyWTXDsO#bt_-~$;y2=N&RV9s1is*HY>`cm zLAD}YLZ2_vrWD{?VcVb5sMCgr7>tux}h`3U8 zvQ{aGxMCDqqjYl8%+A(PolTQ>^g3HlIe8vsD~XeDf?R~66qz>f7olbNSg#}VDX<@Y zwN|WrmT(h)?h(kYM1xF@sOyd~?VX5qC35oR1-?X1ej74NG{m&O#@}(p9M0cBA-aABo{0U8 z2Hh^CQ2YeK^GC$qIO42|-5qY}`|9Y9EbgJEO7+Dj=}znrLtgRl$Ln(1ob7};=BWux z_*vR6B;r?eX#NzZH-%q|oH24*q+1*;A(6^sItZ8SrJfj2Tz_s2%O(U=kI| zP^cMK5<6?66GdcNq)a7t38h7Bv7a{8)lZx1rsSBR#c5OKI0o=?GhxTsV7d!;e|G`+ zOdP>j&a6m(`wF*?f(fQDhnS5m8mu<1a>2I%+nkqp0vj|6$=6+QGvMB@uJ!L%=V7K& zVr@Lpdu;#B+;sFLu}9_cDmr=C=w^lz)aqfsc>FI zn(K?dL$D<DbH`D9tI+vJeG3yvZFRP9zIA;R$ET)k$ z^wwKUEgNDJHlGpwTd*M`Vkbw5bL`Jz zY|)@%Gua;-W;+mzvBiQlmu;q}(S;@pl3?RF>f0z#bzTUGOcy1I|mZY|t>i=7I^DMQ|=)ZVdj;z=l30R$@bRF&l%O ziC{vh;_#YdX)3V!KBd138(NhZg-xwWZ#6c=5G;E}pE6(~HuWjJtP`qvCcu8pK?Tv? z^wwL9?deD}gH2)0W`?hJSsn{ua@?S|ahiO*Y%4V^@=h1hpDfLpL3m{6)Xyykl0Z(nQ)Ozq?zLH}TEXg#6~n_7?FkuHW{**myI zZjWHV7;HHRL=Vx+I-x$3fhiVatw--{i>bW`Xu{@mr~gW9$ep+rn{uc3CKp4nT{3cK zz%AI6JH2;dL+*D2TP?}dpV0)FVc#EaP2cjU(|nBYkg!KuDuW1VKvwM0Et(062`3ntcLO9ZP+5;#xO@3O4@ zKD-=}s1fltHYARddtET`7i>tJ&&2e*$y>GXnd^)TQZ4}>X3G-%<$&qw(aotycwGE+ zACGf#IQCBvFr$^Q-yPN*roaRzTI@Vx8a9p#ve5-!0=Tlx+X}C%`7DCH3gtp_7d8}` z*o_Ur-T5Y~{fG+Y5EHN=I7!xFLnGY)+-2U`#QoTyQ9;@-rC>Jkq6=pKnj49~Q?OxN z5$9k-syK(+4i`+Q6!@rfVCyeIyBc15Z8lhqJ2&WFYzQWlM->v9OX6>TZ2sU)e;GCu zniz&ngNt4sVh}^H5i<_n3>c412XA`WxHx!oB+RxL8zS^Bw3u49^S7|^@WZQ7`tP@> zxx_=*S|5wsEyj*>^s-~nDK7vVmO4k#yVGK7*+sk>_Jf}O{@Ab&5xn45M)a~55kri$ z7#sBTvQNP08w#C%4r#E8b1rBRO|1B0Zm)L|&8PV&;#9ZQTi?M4NdO0+3 z+rbm7Z^E1j2k1e>YQ^NI_Hk(6V3wSV(>IQH*&Tl+WTv-a=T zEw!y5<6>uc!?epGi19{D!-k#3*yMs)^=;;zP5clWGz!TVT`=*Q3+}!bp$FF)?`x}2w%9fMt9JMaWH?bP%> zj|~m=5fDZ7{Z36kM=3HQim)jodR=GEC3;zm?bP(LZ_%F>z%YxkeU07|EvEJyU?nzx zn4-VYqUI78VN*u*UhZOu^%i4?DSA0Huy5W3@VKBF(R;ha9L`SNh)Uc3MbA2G2>ao( z(Rm4;6-YX zd~p|mzr1ro_qKywfz!**qsv!3j}LS-8Fv3l`Ug-9tWgAu|CSl$<+D~VS+%{Sh` z>(5`;#E65apF6QwLX^QgLcJdrMnymN7v*);F0h zOgZC@={>AuTnW?k=~daQqEDY*<<;jzqoG`$jYNirD%y4)vA$zM#7V&`Pk=-}!-lP6~M&RsD~mX8c7iRG2`Q@fm3R)LBQ$>^XHe9bTczr*F} z1}t^uxG34X3KRLQiz?GybY-7Vmt?Bi2nY|r4xs^9J{-oFT*IhhEqp(j`A9T=KT}nsA{@hxWHd!d}z2XGKM(y?QJ4zdU0V zXU&Cwe$9n{ZZ3b{(1i!DJ5DO-+j1^Hbdn)GUe}ydP_n+=6^Sczu8LnBy9V?9vvmFl zdHf-CcsJYTi{YiQ%#dE;Xy_-iQNCdW#~i&*Bo>^s!UemC*5AGBUhW~KMT3h_K5MKNr6q=;7Fbt{o3DRYnE_gzcL za`%l8hL2SI3F3HhsyJJmE7pq~A56bi{Is}UyiVL8eo4GryobyQf}fEXuD?_Gdy@A` z<}EqK^UX}=*MWpwDEUaq1H|JLK9)p#FIM9?5N*8#*yC+S+UKoD+UMJPljZ$d zE&%wD^z1u;$j`q2hwzsb{u|kQOESMZ#B%&ijNuf_a^{g3*L_ID4;N1o`Fbk#W{V3H zZu9yPe!k?jivNsco5v4(-&8n;m5o1$M(&y%kDWvw@hSHfd4#4sROEZalur^Ti>HaU z-yr@>$qU3K;xcii$a~kccZv8}@hb5K@h0&O(e@{#drmf;`8E*;;Z7X#NUbU zh<_4oKZJeT|G*rMd$6-;-#vv~A~`7@BbJLJ#nIx);v{jJSS!vK7m0l6z!cvu)=2?vofOd4NdfPb-hJZ3;v*v8T4#Q?&Jy^l5>eowS@QlMw+q=2?A6ZmVz+i?-{yORG~wC|%LoNxZKK6ZQrizIgw zdy1vvKyipTLOf2i<7gq;i844-JYBT)QV_mKvaOc_dAZ~@;)S9eXAyseB=|F-1sia!va5T6!b5qFAji@U`S#C;+jCtAJYBEDo{GTyH?CdIyDxj0av z{H_-{Njz1o73YYH#d>jtxLV{l$Y|$s@fz`S;_c!c;=SU1;=|%2;xpoNBIjbz{u|=k z;%@N+(bi9ao~@UH>y2DoIP$uqlh{Q(O0@M;5Z_<2t)Bw9QnIa|0{H~V<3w9W1>v@i z3dq?T%%@H~TRc}>EnXmADqb#fwg=PSEZ!mBE#52MC))Zc(BCfk8Sy#sb#a%tNBpz+ zq4<%Q)6V7JUMv)g#iVHKrXb&AB$tb$MO!}w@h3~3B%UdrB{qoXiH+hq@w1|>pTc&L zY~P26e23(_#e2p3#O)-m51$mD6MrhcD*j4*Q+!)|Py9gKFaAx8;}!_*=Zc&rL%Brk zBMuPD#o^*;@kDX5c$zp%JVUG#ZG9EwvrO_zk!w;g|BJ<|#Op*(+hP3e;y1)^i4Th3 z6Q2}!h(8ry65kNt6#pQ;CpL>8i!t0HV*c&KF5(elFR`~cRIC(7iDSf1iKmD&#M$Bk zaf!%@O3Z(q*d(qOuM=++Ib|uD#5fbbF5WA03KQd>5T6x)B63O-<9CVgh&2_Z8^te(o5efDZ;0O#zb8H_J}K@HUlLyx z-w@vv-xEI&o5hdC+{efbISS21Wjuj`0Q^c9#>Ec=9Lh)R2g~$nxyw7mCc#ZfukrN&ne~0*W@m`S= zAQ``1d`5guuASIH>>?f^_7Z!GgT*p&gm|1dPCQwh zBJ%TS%)l>8=z%Cw^YMRs6Dem$+5jCO#nkKzvMmMtn~Ex%i66 zDWuGQxA>v>kr=^^9LDE}g<`RIlz6mQAy$cF#goLz;%VX;;{OpBi}hloxK6xG{H%C` zc$0Xm_+@dcc#rrU@w?&^;?v?!#Gi@37JnU45wrZ?6u%>WSNx&)g!r8JQ}Gp% z>y6RQZ^hq>e-ihK`^CSBIk@4@bnV4Lu~_UWmWl(#A>wfHSg~51AmV385FL#B-eitm za>uy|hfMq3H;}}2e+7x_xKU&>2&zexi;n5=^Vo>XPP?Cg!?n@u;t!wPaV+qO8|~rA zjWJ2WZeP*zL*Nj~pyi8vswjhfb^mKCiE`R~FW6nd`#rGxa}xG!eQc!9;qP{&v;2oE zf0TC&?Ln?4VW&>=ViNY&OTLkd+n zIMDpfwtVZi@X`S@MmCuEE8m!ge3EWZfIn3} z-sfRHJRZ{d@)bcZT)y?8^5L+PYQM?OUaEZEVUN$mz4PU%mY$b+Um@&#l4VXWRX*xb zmB(p1U%qo{x3--yEVnXY%VXB)yuulLYEH^VVoFHd?t{B`JsoiAUnR`mGn z&pThGBcT@_f6Gu0-!5fP_VwU8_xR5!bIqt^r58YNnnMG6DK`k$LVVWao!2ALG%2@u zDDE*q52t*4*Ma#KVq@7t$%6^V^gV=m=k1kORgFr9Tty4N3mI8eWigfiz`CLH`de

ztEV^TE^Bun{!ZdReAfN@6V*@G!*{{-=KN(YB)2-z;6e%&l2=`$kYa`8S6``+?g}Y@ z-I8VZ?=MUu?d+!-f^%{X#2bSH(FrAW)0>lHVh5rNbG~$B-TRNa*4no1n^?c{uTz6Q zziED8!xw4>pH{s$Z*=wEu@g`JaNm%V_MVM(Ex&if)c4;gn0xa07o+w071Nq?r{o=o z?v3ti8sGjvy!W)`_!O+d);nI0^%eV$NByD`E=OIW6Q01TozV$Vtn(NhKdyOr5-EpJ z8?vQF?U4%Q>^%Xg;(afN1*Xb{e!PLUi)$i#eiV(|6d6AL|6%W1z^f{*_1vYx2l z#Bgnoec?&7aQ0?xKzoEIKF)TU7)GmvC(i7QFeQ%gyp~xkNw2wRiFd=bC`Uh*qpbGQ zTC~LLX_6!J_3BbiCeEru`H_Ek-Zk1H+uz^6KZG`U@`Ly`375ap`9j-foS(n8XL)Ct zGb+;2C+*A=k~*R(OLx778vUZM?1OK)?&Oy|mj6Wb6MPSG&lay@*6no+LH{ZIecgz& zQ}=~JxwGAUUT*c-C%pHA($GGy&o|F5`Jkw`v(JmZcJ`n-h;v7r6D?;<^*I;if*uj> zD0558PwdQ`mehf7W^6uc$o>yM*`L&r?S(rcPPhZ_N1GRwCv`+TKRgTJcqiK&?wH~x zb)P5A_pjRj3-3>RzBT&? zi*J6TD0Rx;FLK_&0OOB`VVCRw?m~%FhAb2Rw~Fi6L(C zc7e!NhVh##-q@842_?xxE0ppYBRUu%*7w4ZBxJIk-CN= z1U}19xYW9aVkO;$X)hwgz5Yp@b8#?lkT2t0ii3-^j{9|zp-oQui4f-A$b71Cq|YOH z6G;!gbne@8zrkWrr^M+=O)Ymke9lfB?$)1yj+_J=YvWlG#zy9^X$48~FOZxIf(fX@ zk%8?jjysXk2S9MfxsE%Daoa&SJ*nO1o`#dW`?_04B2;9bM%k~D64|FwHa`_b*{3mm z83+nnL86g_WK_kBwt;kdMv=Sw1bp(5dv|LRle64UQ1(c4AYb+ql+DkXQ1%lPN1Y~L z+%pu%rE_NWbH;JKy4TI{{2s@BC}5^r5n2<@bQguz!N1UJeH^eL)QT_me8~x|8SM0W zK)I>1A>0viUr6py>oj4G_{`Z(?_VghFs6&xJYj?%Qdjtlcv0)aD>Mjo>U$$RuAEbx ztSW@K{Z7O=n&y4-;f(P6r=L}PY{&Q9-@%m4_uOMU&MJQY^cmq#K1}nH*&-rlr4bV{ zV)j#J&MgQp+#h=KgG*AERIVQz>UcJEIyN3(`pNe9*UnixXZ!n?esYO>y7O!()Ukf- zlFCa`F}j74sUjj`siPqRJvm35e!VF+N}UbnjV}L9^4|tFVbXl)b4G+4VLNXcl8; zuCFmOmley6%X0l&}P_zI7L(Ehi8Tb<}j3K8)EJH*=Vaqom4@YlU47)y5l2^r0QJ5gC3i%7);;u^4{& z=o^Ovi3!(<_f!IFW*Gni<V!;y^ggfg1&1g4GH?Xc6JN61$wR6GvA| zaV)&wCZ-y&XJcxC=BY*ex`2niD{z2^aJ_gJ6L>igO4y1cABmdMlZUQ%nj*z!nEUx&o2}j^(B?5aJy;U>=dM4TtBnTx>N&1%d)s2p`&pum=a) ztf`$IPNpQZ*&o{wm4ddaI1J16Yddj#diUZ z7ZFy9cOjwP4<)pUcL8C& zcoz~j;J`pLDLHb{&}IxYq_30c3c~d`LeBY3fWWcHyt2f692hMKtg_gwpvSKguba3@ zIETa+_5*OfPklQT*@@`b1hzXIKGDr|{>*OZ?#t*2U1FEgaJWaX%{%dn@W#+YV1uHy zv9TWetLqwIgrfOee51T!&AJK7#m$@(@D29@e7Sw)8hjtVU{zH!zK%X&-IU3dlP49_ z*R3o#tGc@Tgau4k*HB%*W>w80OYy&H2_wJ2-D<(c`f-~@93byf`URCws5_*`9)s;sCQ0u!rX$n)9D~;ZUH@r_q_U6uU~X} zX((ce`iG@vId~a>kJ1^hMjCvR3dudT$VDw}!J?gDNeAGKX-y0nDDjDM)HKJhp zSp~x;gSTM%X?`|Aj>iux7;#iV?y!P_>2r}=s+HRluAA=-iF&X#(KqU)P4nub-T*(Z zy8QWhg;LBl`6HLlMe5vPMMDctgHaHO8ab%olw(h>dvx;O}hfPc`KK{e`8+0@#srH`|EAO--s)OKPqbM_4wpfx5Iqo!SpIEiIrv#^L@Gqwtf zXse*uIf4PFAlSMVcTaS+V9-rrrdWkJCl)`eaZN+(yqc<2xc5%4X>M#mWfoVhtgmsp zvx2~;ay~bOaO9>CVh!(iJ3nPgCT6Iy}n>c(KA5w;v9_iq>a9!D%oD zJ#~C8&dkW#khC#;nRmHw4`Gan1n$I9no-!*wnAuWMjqm9UOs!f=Uv~0m(S@JG>maCTXo%*P5T$A5j#0 z)H<+vfuOQ+?9Daxnxt;ky8Oe+0lmMfwd((?aR78-zCaomb~-o@6gV#~mhZj(+pS^n z5MnzIFZGxev0Pa8i!%@2$05Yqt~>hxSeCS0vgK#~kp%e>hx`u*T#>*>Pj~hL;^n6$ z@TVupPZ#;IX5dH_bDq;PM!-k=0rB!P65=xxd)BjEF3Q+A#eLOInq*uQq-;C}l{l;&8^{r0yh&GDT3?GNx`j?MFl zgNgNU%Ujj$`{E(@(+9(hJ*Fn+Q(qG|x^<0?8`DsY*nar&q(DQTOPrxO?Mesw1^~ZR z%=?eXANs`IKu<5|=qDEr@W*}x)tW)n1gs^SdAd5WC7 zVY+3CHH!6$=P6#KxKZ(H#m$O0EAo0$-ZsVi6(3Q2P4Q1e{CcAG&Jem$77^)&Dm_B! z2}&0$U7|Qg!{;k~n$l+~P5mIsm3_33OMNZs)m^ROTqk0@=E4P_McLPibg~~F*R4#$WgqKs$62AY=m&ycuk@FR;QzMb%ZgY7lyX!n z%6I7@|4Gv5AG_Z7w06uC6U@D#<~iU-=KEp`*Y zZ}w|*Esg1qR}>q&pru~{7istsMd?=vU#WEBKJB#{exV}mz*7EYiq|M!r+BmCEs9*X zWBZU?1U6GR3PDH!I$#$Td@@->&$e;=_uMDgH!}Yk1_Beb>Mjlzv(9HN`g+ z-&K51@gqgCQ-Sm;con3)9*VLL8?@}h26DZY zqWGGk?7v3(ca@g?*PuUAnlpivFZ-~8vJV?5`>=uiH9kj?Hgm|IuXwcLv5K+}8}YIa z8+fXQpQgA%QTAga{#>QcQ%vSK8AX5B@se+jyq^#x*L4gL>F794p&EjGLnmLlqNK<5 z&LRyIIY`Gj0H&Am1?i9CeTH;v^?rMuhp7)Li62ixLMe3QYGm@nVuj5GQ2c}qS+ z|K2btntYf0d`*{V`0GHHgV%@7;8OTgag^YoOUJtauNAK=uRZygj_qid?;X%PaTsUh zU4{U=eD|0FDWf52cLn~SeB@(3Jm`$Phv2u%H`pp4f7O}ty$3&Kv&?i4g5Ylhmw*j6A+K z*z%@9UKC7YaPYbqd9=@j|DYZ_Ob0_49pmV>`Fue=$j5q67M;oWcJSHxo?+F4zdlXA z|Lw~Q^5t`6wn*|%luh@l^7$0b5U|H8BcjFqHX+}7L)mj*st z-t{AWS(L{y#mLJ|khdH1$YY$5N4r?Iyhk9f1We>b69w`nCdiB6Mg6#L+PNS>-rpcE zs`60vKpx-AScXCzbh9uuL0d1zF^SdF&*}U@U-RGV|p<#j;t=<;=qaZYRQwGxGeUzq;1^#)2qap`87b@AuC}Px_dn zio+In>!)E^b7H?3l>hoik3rL5iwoSSNxuV%Vcy#kAWa)cMfL6 zF<=dJMIU7*p_EcaEMSDu6{U4J=!){k0<}*Cl1>K)sIiQ5BP9UuHCz_e6{UeD)fIh< zp`t75%|x1{8=mDk{A-+(ci{9kjubhuXCbBo=Llmwnkh>9cNYSZ!u-i9x}|(prN~M7 za}f~v0r|(FXh{!KzBid(e9Hjd)%3n7q0RKZ&Ct}%^nStRFVv(k_d6wHjBqx=;}?bn zuzZY6kyy=@@u{@SmlO_tQ-s`&bJ}whAgB0xr7&5FNZ|>oSmM<8nDXw>>mqmf@n;6)P<2?7+ySpUWKk@DKl$B3H^u@U zWWZp~9Qa9wY=Dg9zAoFF8K%gIZHtR4?Fya9kr{pQZQ(%~rw-`tW)46@szzr7*XWR% zp8ed>15XmA%9JFBx}OnW_cK*f;)A~EY2>2fWsiQ&XbjKkM++;IH;sO1vgC30*&GqNbgv>xGxU(8R8W6UF4oRU|EmTz}7dW8yd%!H3Vv)4Ds3eB_Wll zbM`=E^hw6d$s`TQhHfbA1Ae`9U=d0;(5Q#z81>LWu_F2kpo8rI${Z4u0iQ=csqZvt z1yyv!MbLqgzI%9rWA8MM*9qm3*FqC-;tXx`%ao13LHTp_q<_VSdj0|Rq~J9}KI(H= zI!TGTPLBasJr6w`@8qaAF(2pYr}+-HN%4^3tRe1q zC`o%&ZYT{wf$9o%aG;=am^wGHPhOl{wQlChmL*m7YigDjO}6wwf{%!Nt_gDFnjno0 z)iu_NSw(eKea*~fjhC{?p6Dz&d~ ztUkxiFrM=;m6P}$X6q)AHjWQLo94rCW+6_WnO+bzR75YO+YXwj@6tU}H(D+SW=v3m zksgj!#HN`l4&Cci94{g?RsQiVSj#vi~j=Q((9wH&{n!ScjhBJIgM zHse`RH*SUl&vP2#vK+skVLMN>3t}PEZ?PTqS#0MeXwOhTh2@J$rLum^@p~4w>#E-} zIBxETa!$m-y71`jytjV^&^X3lh{KNGY$Ab-=en~U|C5CH7Zc+5B*gQ_yPbZB)d4Ag zQbIiEg^go;RYLswg!r2h;_pw0|IdW@j)Zv5!5YW>IDbeMj(vU5-;Pg+*LOioXjMB< zvgvlDfqD(c>io$^A2ZRZJaOLq(wXxr=a-jPoUpiZ@yybBCsZC_7>|E+SmS%qVK^F)6(Y zeJv*n8$HBafBR3)aDP%aXN128C@0U~(3XSA2kMUGjB=bdA{O2@5HT@)1rZaqR};ti zYgsu*`P+eV#>1uy!=d1`m6-21w-T|x{0?HFZzC(G2m~D0Tg4Uo?*yEq;r-!ZNXAr# zGjx(4JL+S+1J2on>%6*=mW=2SA*C{ac17u9bjAaJV2&rqDFSfRK~u|~08 z@jOM*wSt_DN?)zWv5fiNtazK^HpTlDA5r|N;)jZ&1B3L%7!W9Dy5elb3Pp}VjQ@?I z=!Aftgt3F+C5m$u#Wp{}Mdt%p!*I0sI>q%wv=is&nf@vw8ui~4MF#}ef%8)g{|OP- zhih%5Wi1)$_L2tjF&2vYvsk2ilOB$BCnD(K#5}CwDlIx3=wDNm7F`bXualHMm5Baz zy3(tO=s)sp5Xd{9^mz1BjlY73{`OU+rJrDcWq)G5(G{fJfUaxnh)0!Te4qy_9VH?X zMHdv^9K=u8cHkHu0<*|RxbT5SRf7EBJ*4Bh7A|e@wxV4>NQdmi<>E{}R8w3cALHn7 z%gQ}u^WpLZ&iFYmo0#uC0hj+=C5fhvTPxa)ir<8=p*Sdu2k+UrI4IAQcQ^dDGv#YV zApA|2Xyk4n)0=V`Y(f~{xJq!)t;3DZYs!4lJ%fCCf7$hT6Eun#I3w>H2(jf|0eQT3 zl*e#Wj|bql>+v_xwlnqkZv@))ARp^NS#&1fXW_T=z16A*`<}_S6MiEbUaWpVAIn@s zD{e3Rw!9sX$LV3#gKv;V9@E?M9zetzE5LaBC-9BN4KxOFj5BCy+W>h*h5#a39IuVljhu(TN4;C)jF)INt5b#_TMLko>)K{* zo9)T6+48Q(+BTm(#u<5LT2q&154kp5jK$fgxI?eaQf~n+Sexx5zYNh%k>30FXJ7^* z3&-I7eK;3koRc#!JKSTyFfS!7v;R=o8%pk(y1&={e*1^?6&80;Qu=lX^{+$N?SS7s z2PgBh%&dckQ;sIv1k~9bJsDolP3COA=SF@(DwM?KJ1>;NwL%XDG#D63SxgA0lnNxh z=~H}2Bi+lO!mr{K8izM3Cuu!SH{wWcz-fk)ayP*1dl%0BT2bV3cx}rciEBYILmy## zSt!XYizJ(6k(9($5M2|JArys!GaXY1hbAUNPK4*gb&G^q=Pp~M|93Yhf9m;vYsWEa z8|*knqnNH;EjL1JLXvZM35{@|k8^jO((D@2b&~VQrzq?3i}J9h2!mqCte~7wEpCgI z;;@RJF9jU=Qb25_rna%UH5#-w+tr?qZINg{^un6f3z}*$+cIm`)aV$r{@5sN0z``o zVfC-5cw%%6%nD!{v8Jk}X6$D@rTQs%@C8$n{)FS-K*$qiB>)ePF%| z5cxht#Lp=Q3yAWYfi&OsiN`9ID4wWzisGq?XDC)Ho~?ME;yT4IDc+=b2NCZV@>?yw zDG_sE_pkV^Wao}?UmV+oe*b~!>n@f^jDIp$e+o#GhB2)Fee|d^ag#vX?|8G(2Dc)N z?^k?ZVDF>MG8`riybg6zzCe#U6Gy!<<7d>RAhMN*VB!|RZ|D0a@?}2EmuT|EU=yT) z*VzIAeE&DjczK=aFVu*8(LlAPku;9+e4nxTpvTdzp5sR41Bg40jbS;H@7EEAchDvi zMZO|K01Y4eyZx?O557CQ;Um9QY$uBy6M;<6H3zl}+bHqfm*3%q2GPq>@T?m@4mVGW$^Z{rp$+CWqKVYC0<9{%#3+>f7|E0x5%j|?UUuc zUF{CaT0U#mU;k@jc%RpM{@xX3vt}(Ybl;M{4t282ocEoQ%txKaoE2)5a>re5&X_3= zgOiqu~#a z)r`p5fpad7G^}nb$rNcbp<6}~KYrbKN5;BdF{H%^Zg^hyM${8B}C{W40($E}t6EyfCY0!Y7HLUNB} zdP}WFvV@mY_*w+Z!_U2vGA=nigOxSc)!i}zdGxA75cg7LJ_{Dcu``4&P44w7kP)~w zXXC`C^erT^u4*AMYb#QRvSuTsA1h%0PU=o??m)klVw!6w^^JTpJDj#_xw&;*4z zq{_4v<-S{rXE==|LLrXYa0fM(=xf9E^Hl-ap3>N`AjURdAf#;-kyC5@(F+Cw8E9f~ z!Tgap4KEs1GAD0v$*6V&iyMXWI2^%Qj4r`l0(`!qe$IZr$Wq*3oLO_2 zWHSwrBn=Q$KfC*C6y*h#kC@5_RnP4{jaBt_Q}OzLWyOPw%~yzY9JttRaO>Miu*0CU z5O_&omXS~<-UBy2S5Ryuk+*H+ngMSnjxd|Loj#5}h#)jc1o}acatcDYzJ%gCR;Qnapn4oI6-i(^ z6dz}Ci*Y_3hgC_25BGz{04Nf%rkz-rfzmdVfe5~KuM%$sfp6WGFcwvX!6%Nb#*xs! zx5X2*FiU3~lSXl{)3PA8TcCu^&u4SUk*{bcP6i#pR0Ygr`M+vDy#=|1S(pD)Q%~~4 zP2L85_0hmw9j?fMY}%nq$@TIExL!|}M(KJ+hZn&>owp{MH{I(M^_ruFxx?p=A2oPE zX($;gpeDhSus!z_j)yOf0;9Pz3&({+SilQ;?HA_*lf7r1eAu-cn4c@*$=+&`gQI0* z%Z7{?e)>7{h7}ASojW1~dp7Pl@)lcZYXNlgYtvYXi~S_6z`O6f#_Fp21S@eek5O5< z2J;$XNNp_@PMvj?wN>@2{rRO}k}2Ve9%vpd;BRQDty^s?Lb43j3i&CG&F3zKVn8tC zB2!!Tl*^c{CSTg`3R0PFz zeb-espe;V1#hY;Cvv`L$73V(;xwv3#wecZn9LLjH8IcXN(#CPuIF7HS8JU-cH+UNv zH?t4{pP7#20qu{)ZsCI)9ZTR#P=S=2@W3jNe)K_AAY&|tqXG%dC|hwcn0{mye)@l@ zMkF4Of%~lVA?H~+1YUT$&RHhwDw*L*HXcFFVe)+~<|4w+HyGbVj7PA$IZn=%#2kKv zSgx!6uXygR`i_09)U1zv_mJ+N5O3c_jL(tsX9iq@0v|nH?Q?N9H0C_)_hbop4SBEj z!Al|Ei;Sb(={OkQgoF09>_(5oL}SD093Zav6>$E715!iZc~wE1s;#S5(TWQe3Tgp5jG{8x^ls+^l%B z;%$oC6z^AjMDeGJ&ndp6_yLi>d0ilW#P%hkJk;?d&FLB9v5K7fAiY@ebRzi0))ep} z(&&<3)o^abBfrcRAby+D-_rPplzv?CCB@wuPhC&Sd!LB*#oLs~>q$iT5T)~!rmiQ; zLucFg;9WwRcLOn3airpS#X?2)Me^}y1hGo7MscI!m5Sd`{5QoX6`xj=c7q)1#!}uw z#ZwhmD6UfER2TU!Q@mbL^wbdkn9@H{6n!a#&t(09rzkE`JWcTnimMbkk4*kX#TG?w zDrNX3ik#OX{dL8yinl6mR}{TA@I9jRPDRmU!$s&M4cxEDEw7||DvDkk=xn9M78q#G zf{~BAnTebRBZ@v7kUA8k7b|jJjPzNGoDd^@q2iYnH!5;pE90+KyjhW-A7S{NigzpS zP!t;{^r@j$dpyj+%_8BZd_@+LM-X1t@&r=iCO+v_xwlnp35P^0*$j9_N=uEyl;J5RQTJ_-NH}&{6{6;psqW8uz!Z;K6O9a^R z3L%f*v}8Rvp={*62ER!Iud@jKp3e&7jQ4#67(e4Kf`DIv*Ekc`fdD(--FRlSp?u7j z*Tv+UsBgCz4Kl_E0~&es*z#83naq2H@=&Ef9&O?TX%N01@(O{*nK(WdZF%b;uLMk# z$9vF}FHtY=9?08mgn-X@6ZP^QhCJ4j^56~R9gPG`W6E@O8tReIevB_k;JX7CYZStb zBM*<0l+T1eEvp2Eij|M!4Ec?F27G0P0J6SxTvo8#SN+7B!1;{A)miZ=(d&DDeY8CeDfj`FLYaT z9~0k#_>Q*FbFQWrx+HX+Pw#2-7#|HSQo2Ow%upYtqe4eQ&pDEQPbTP`A=fDt0d@1> zMMAaZ%-R$7E-iidu~~aU-m=W56WIi`iIR$j_xn)Ty%J&WTL|F1uw^VHs@Fpoa5*4+AxK3~j}SX}oQzGKsM;&8XVgLCo*@WdigmNVv9^6~x`?L(jZ1N&FxYdCQLPyI4Z zGn}+15E{QJVrGLnm3eYwTqb<{R#Tglmya~8 zrSVf~^zwMFwPhc;lgs}i9O7AHck6@AxEqX|1;LJ z64o&OPpwKF`C3~r$yK?!zOk_xip6NPU?B_59jHp<^~NYIilr0Wka9J=W88iYKCYCU zpS)y*c;+O}{Y-J1$~PEIo)HRRflHQEf;FUs>vf>pX(3p#pm$z+YrEY!s*#|O)J-7N9htBtXhIe!r}rtobR zM}zNa9o}kFItDd+t%j^y7Ehh9gr`2PPb_FxbU+&^Qjr%xb_p4jt? zRCjAT{!cl^(k1(#=YL#3oj+n@?r>~TusoSTlKz2@o~~;*Sqbsk@)mhxK{B?iW?NaqIj($=lqy{o8k^4=3*aH`e#Jk_axqH2PiuOOYPI6;x~BMe`tc&cKRVvXW?ifa_VthiBelj7GEZ&SQe z@qWdJ6n~`ngyOS`|E>6{;vW<{6yH~LUBBE(ioF&4De^Zm>oq}oZq`g{HJp1u8Bf()BIl2YvNi?WsPvVJ*D9Jd7V6=XpEfv&vStO` zuJrwi4=FyPxKr_`id2ba`sWmXrN~JEhW|gmSqfk~mfI1Vu51i0}%f#fAasGnHPcSg+WmC=)8+GiyQ{HT+7&&5AcF-llk` z;ysEx6ykG= zRUD}(-@QP%*h~OU*YKH&^8E{h&r^DdqS#JAxU4k+WvvO=pz+O$@*NC>%Xct!<4L-9=pPh!4&E*fX@nmjCUR4Y@&{9 zabDB-8TT?Oo@WYg#oYkEoo^JC*abf3Yp+G!ZKZ*in#@jAJpRe#btgz$-X3%)(=J@L zFzxaP{3Z=0L?MrS#+kT>5n#*X3x|=%XR(pT=ekKl8HJG7VFeiP(}=U>WkMd?mG$k7 z!^nFPex@nJL6?g}92<>e9FIRJ8onpdXrm01#*yz`^_!@7*tnJ>4_ycz<0nnNC_U;} zKDtkE*!9S^+ND3@Og(x*81A7arlCv6J5Z7Dm9xoXJ zm4ByvdwErDK{2PJ4zIoR0ViwjEO(z1b%#4|_br)NK4!(76TFVFm(meV8Sq?o z?b1$I3ct?X%rx#6q}pB486N*-q|4anc4Q!B=w`RrdAoPXlohYOk=oIA;;Xgpj3u3; z3rDOt73b;|V`}~ULYd#JoxjITzXWOLFweq?<<8rEO2(BJu6X8zPzSV_k?-K=GHa2; z;GcJm+$ySdC&K6ub4LPTHvjVhSib^Ph4M?SDRIQ za%50#&-b#Hdz(kp_FWMwPrAz)@vTy}K#yI;AB6{B8JgQUBD46T5PT)@xfB2L#w(ro z?CkkL)+p!3vE_d&D=vrs{Oa=G%eC~jj4fYQKDFH0oYoQX*xF9+-K9tETGE+YxU@6Z z$;l4A-?s9(J`cR_%n!fVhv%2Bdmy~~#1Hm2ySwM_bxH^2jOpwh#cE*nOMSj0Tz!RW zi_g^}T(ib@_AYdbo_zx~s>qs{Q#+#e=2CYT^FzoNQv8;9Y&Y71bIzAN;C^|>j&Jie z3LM(!M7Ga{9YfJBw^bZJFLPqAa<)pp@_}fh+aQx)a}FJKfszgY?lj)-{!X zT;^<=T0XYiv`cCE&mkES7mO{hkhXJ%Z!aCUYgy;;LacqZY&l5nM}cSQVelot4dczl zbK9Pic1rKkPGPpw<<4X8p;flxxK!HdzPNVkGjQ#-_r8K}QB`bvZ1@L`^8wzA{Bbkv z)*+2cg`xbQS$&ULx8#e5_xv$9<68@S3x@T0_|3N*I*=4!U)Y23%R7}3V^{JVN;(e_ z9(UG-$F)jGN+uIm((f;9@)IQC@gg~rG>38`DSZ7!KA%8bIGpq*1H&oP{5HhEHu4IVfs_Tp?*Ul zHNu}ZJ3~$?e_FV!7)2Mw;cl%&Tw0YC++(E@?!xpFkfnPTe<|~=%ISG0m_r5h*2Cv+ zJj4Bh$$O6=G1B6dYS0yDS>9lD4`y@%v0tklJPp#PlY zc*Y9(5y>R<$WR;WI1&*V@}4ea9mvc&Y(Ax+dr6=HE@dg+CDD3rlM~v&@=@)spZspz z$kKS5o?j}Tg9u%wWL3Xkvj~?fc}_q1XxCd029D4XF6l&)W zrU5K-8RD`{_`qWj@_V_Ng#U5Fe>*=EDE!>Po^8T~e>*}Tb}dfqSNDN)kXsSD5a&gq zwKy*ft-%K#zl18_-8qM^xa8wcAmNLU?|j4OE(m>5xWk*CS(@zhW>4SC90s#dSeqgD z!ZX8llG%bihae=h4L%a3toh-x#$u;Z*-)13b(}|s6 z$CDsN;cZo#{&o;@seb073exoJ5SMMjrRiN67=>T%2c!u-Q)Kv0Lu|GQ_b;vR=d^*3 zmtX}ryS)V7rk9t-uGn?TevM&AqD7%~u`34lDzb+zK)2<)q<_J91Kx!+LwUhMPQRzo zxk5SLLr4-X8tzbDtA4LDbkKiEC@ScO4*mgrubZ?poMG(3Zq{EAlKebQ(eEMEp_DXi z15n}EX6K|{PLCe^;zzQtP>~XLd-Ryv<2c#r92w(y8H4fGn`-ZZj{7u6T5K~kH8;46 z*=%ag#`qCa+h8m{9}?3Di4$XeM}&;n&}`H_Xv8xUVvJP8+IyPqf<>j!ePd~H8^j8L z){PPJ^$>frG`CR?Fx#lJ&38ox%6CPOWe&Dc<69#|^4*j{S6zawJlUH{QMAEERb_~% zs_-Hiot0s+?0lV-XuiYhj~+N_;55!5({Xr#?g|075WE$HD2_0dRNCPYM+V*j;3Y(H zq>$k}sI0&rIQ||14?!MKqI(d;qQHnoRJTDg134Sae`hoLfD`K(BOw<&3 z7UDo!LOqU#A(`1VJjGAy(i z7REJxwl9Ie5!7{-5sa`!alHP8sv!8hr`fy}U3k$NG8qtM0&IOIj`RKN1(6eZjFgb` zCB(*@WaMlL6QejFBTQ5oKKe4kmJIegacpwdoccq=CLHLkR{*ZkVB&`oys#6%dZV+! zC$2jIx*guI@X5=rf{sME4@VDV)Zz>u(H1#wR67G6@Z$*&CdM=1VLzVm{ls_%JdUHc zbDmS2x7Hb+++;*E_&FS?65;s-uEBl*82p0IMR>7$E(ZV3=OVn`Jr{%j=to^_3ZvN| zR2-Yk?;NL^OOlM6eqqtbpnLo)nk=ybdNsPMfJSNgY!fdI!(t5*yRLpQ9ESxtjO)w0 z5A8&tMAlXYOcL+-0saUIzqqGy{y%ZWSr9$~PHHaWKB={FUgug_K>4w;s7Z;1Ot6C0a@Cq8ZuR*jNwss=9`jf~w|o zC%|sxnspPDtEOsY-2@oGEP&a|m22wiTMJfIHRHPo6V^?cTse7C0lu_Wa8`A7_X!J_ zu&$xHe$A?yLzd!y(_pQoIf=^!U6;Dn*1CqXDp#YzHB`DpKMB4>hszo$V4~*)3Yhp& zf-yjPl=qtBx+C%&s$I@WK3*`Iyc};At{V;+rXqKmH)xJm6ZHm78#$ zST1d@yX<$~x~SLl5(-I zX&M4ECQRd9m_HdyxppP)f_SfYWRBOE@1;kLxY`MYLkpQ=EX=6P8-LvmCIV6~yLg#O z?R4^)&7~$lvUuN_Gpa~3v9@zpwZfdp;>O@}dDH?FRX!LQInvMY#gqa+*9SdvebCrN znpt1JpsJ;1;mPH&QB%39sr_#FPUJ+c-@)N5mEvAlYwjzQxc z!Lx@pdlJV|Kl>t7@O=M@1uEgT%C65<9M^@4;;6&?4Bz1?^kV2v$8jK?-YDYuW575* z_e(SKHl%KhT$XZq@)b!}hOhFz0t+%TGp2;@&&Vq@j6l9abjw?samSdM89T>>F3iXS z-*_tx-#1D#q8lO`Q!Y!sJn4$?mEKj5UYc<$QtTKLx+o+1zougx+&G8OF^=a;uvKFX z76-OiV>2DpZcQR%VrJIOe30C1u7hWn$eEB|g?&dJIKz0hgXWmP`Y8>A|KBpygRUL8 ze}?XMRv?X@uzZP+c|>vWyM?yvPM7;An?a_BV*%9Vj+Y;aMZ(veU7mP(@k%+g%M&lJ zr$c`3XZIbJ0W9Z1J2+lmFDsV$XC}mFCdBti$ghv^o8L9MS{bCF-JkgU;!Df#9>&K* zNyu{i4q|-#fM8kNpLic2CMem8hPINUKG`-2IwygqR#42*ZjkLf*>N5V@kE>2rbomG z_&jH%lsDFDqY~m1X^zw}=i#ZaGDgbOF&3ooOVpp-r=6l}lxCav!S%l*f&ZZd`lkuB z|I60@4cdpR%iTOvp^YDVcZt2)#MwlOf5AA|tH%K}_+vR(JjG z>i#o(cB$gVJZ+O;|3JRKPLqap%u^6Yyh`y&Mb70ie3BwXjO)QO9MU%f(x79oL2)m! z$iEj?6hoT<={(LB!i_T>WFkix&{)Ufyb{y%`V#*}M0#Flrss-CkRFR$;!JvUYxe&T zx+C8^LU_68t;joyG}o>|=zh7x(fW-&gmZq2@iP?XDOM;hQ>;-uTk(8FmYeA>SG-1vdNmQ(X^qks z6A`~bX|Z_&db861rt!BceUH+jpO5@S4 zp7BG7kViAu#3_npigSqQCt_m>@ztb}Pp!s_z6a>@mHx8EU#9f6N{ekJq;FUH4viO^ zN=W|$4Sz~e^y3jueO#97ZAHa4`X~-E)1U+8qBBhU0xo7) z71wL{R}^nnyjyW6F%POUioYVFe1B58XF;Uy)Bj()^u3EL1#3@i@f=L|UtSI9X_;x7$ABsOvq-q!CJ*)VFqS${%_-jhPp-9~? z^8Z~CQ-4CsxP|auO7~Tyav1r?Di$dotw=*Cj29bnz>}0dS@Bdw8RrmB?K1M8tGGt- z0!10;5Wi9BuPSa*{D$JcDc-AizvA~4A60x@QN};W-KF&NiZ3a?qDUP#mhU}985cpz zJ|Q5L-WX41NTS%914flDQaoCbx|HNAQCz4f-%>^R8A`8EJWp|rqU`qppV*iK%6=c< z7L9*E@wLd3uUMgYmf|^z&5COkuTs25@#~7;P`p?1e#M6sA5q+;_`D)@DOrxa zihon&CLo5VDE3h7t2jWB>X+mjr&z2wS#hS~35tspmnc>#)+kbClk#Z8j(Dl!<%(Mr z+ZDGdZdd%F;*S-7rucKkR~7%DNQF@5!_V#z(-kun^AyJ@7AQ_sEKw{|qzWnJd_i%Q zVy)tO#Wuyu6~Cg`uJ}#G?TXasr`#VaKB@S7#XlY zGZuWmh!PPvhKPLV7>{905X~ig>57sbC(f`ioybAD!K8s7@_CN*vdqyQlVJla&aaf9z)_1`4~qx z8VB3rP<)fYlbCN5VaAz!`94fOL$kiNGx;(c{$L*_X_kZ6ht43|4VT_2!9llmq<^i) z!Ov??KBl`32W2yi?hG9DCNua=dDg*i%ex2i3K2$mCV%3MIGEg|d&-i9V2LB{^!-6S z$j9_N=uAEMJKfIrWvd?O9zi|0pO0CYdh7zhcWmQ~ygwkomiG?ijX@ae!C6bwF21U1 ztRDPb%06$Lkyqg78`R@X@UaeN2GsB!1wK1p?75PAh54de2l=-7@`8HofjnDp!^k@| zLEd=CGxg|W$y=-P%=HLEKzH@H&F2g1kqJK5gR#^9X2j_gq$8@}&_z(I) zHX>M0HxlvlMEH>FT9?1zV*mA0$#Qs#~hRI?gV+m)1WTKf~Ygz_Y(M? zM`y|guW^R&U3lz#Tan=o1TbHYDJEYR4Q$d-#ye_6e8X@Ud7~2K&4WDJ1TfCX8=fHVYRHR%iSlxB7HGgJrYj-H`{o@CY-`$SXLy@Kfyr#`k?EN5vg_A8;loXYk5{rhyxSRfrs?^P%MO zp5+6|oxFQW(|1ko%qnc$Q&Q4*pZC|DIoy*ux--jhC+&Ho^HE9Ud<)-R zg58f1z)ITA>?35wLuMc0JiqnP6lNbG?Py>hA*V&XW5DW}eS}*X5lZ&&!__-hp%SZ@}he z!6#kb-C7Dd<#GvplA&-Zw+YEdHfPpTWDM)a*l9Q-E$8W17*8j4uH$Bt^D88{NzEO| ze756AjpD?K87J*doM;lJ2cMraoOJH^Ny_>HLVB_Q8QVZ7&kp?nvAuXg8GE}UGy3-M zG6rRI_ld$oZs9rL_L`K~o*2HsMdJ6NN%((IUQ2f}11V8pvNu(z~c2O*Lsfp!GBi}+(opdNf%xJ;p z7m^$lky#YL@f2R114lW=>ZzaGViU(FA!R~8lR!Bsu(nymy#erxV+OcVaQ^*3AH~?t zre}aTsKC9JMnWJ$xq#;f##>vg0F*BHmxdvfFlPLrZIlB8H9FBpTU%4z+SqLL&<;x>@B#{ptx5CaKJ!=4Z>Tw$-ELWh-|6t} z!%yFv58jD`f>ZzR0A@#x>RuNey%;}JC#d4ZSH_o3Hd|Tlu#9pZt|A+>qY5SKqX zffT&2S&n*4wxiyY?L25_@FkjU%6oz~Gs`Uo%C%p%B%gziAl(_%?55Ku3m~c@5T8vN zI8u?iL8Ol*LS6+C{9?NfNN3OCqUnS-YxDdO!+7>3;#fs#H_+3RE>S#Dk-zoGf4btC zisvdyyCHs^((4uZQ;6xlrg)>`7RBv~vNjLChm`)FqFnzpzu!|19g%l0F*oERf5rWO zve{RK^5W73qYi(U^S(3=)e<)zXM1jAC$4=2VS{k64S0}Vii7e@I$j^!F^=wP9PkHo ze=9&Uy%`M+UV$(>-=~l-yBG82NNDo?5&T9ryiP3+>OmQ2yqrR?<-GuTg@~j)h8uaj zUrZW!o!^4^DLv{;+$*4spHb8~`i1fkOx#QG+xbQ?R_sC;^F;$^ z9(5+}Ezq{S7a-5H3%r3m7YR%nintE)^!6kf#Qhz9Ti%6;+$cF3D$F196) zbK|zWPRQf+Wqs|rV(PfDe1$mZsN+NXq{cCh$G8N(=OJvAVNxFQO;kP;^)WNG9C_$Y zOyK()_)HlXZ~EUX@Y(gC(P6d+>%qr_X_v*|LsK*%NZfcNDl!Dnui)rOg;C4dgzxvy=KD-VlO`Wq zEc}O_(<}2U8qDdzC?-WcTF`G_=>4N-=ECPr+WSV6 z%vSE$v7LM)$@g!i{lM3+Bx_%2@1%p2D;GTO(Ql{(=C!?TkI2Z{ncN=PdMEA2foEc8 zzuhUf^xhZVJ9uBlCs{L3`8eg1*0NEO`t3LNX#U@#Ex(!W=-+l`@4mkLrt*}VQ$Ei4 zFtX+1%opx|q{Hczz3cn;f9L)m!q@jDXVkRL{w0N-{TF2Ii|p;U&n=r)R`zkm-r)#! zC*M-~muHO{y@Bb0R1UchI09~=M>{`x0XR%boCh1b&PomD6`_K2vbmNPU)M!LuMYk`&>E6#h$)6ke>td#puZXfC5XE|jI0 zq1K_ftW(bn2no$&l#^14V0RY1t8lnm??PMzyY&#r`t4;dQomUgJe#qsUm1(Qg?7IP zWg|gSzbpeqIDwoP4V+#B*f8bHvlp_-Wc`9E&bh0=(ffV`J%+eGCcH1LgAd|x=k%G3 zQ$CKY6<~EwVIFQpKT0WqH;3dxkw6XDJ|;{gY!eBnpUWaF0jm?m;clfeZ+~gUCA>uL zg8tIrOITTVVgC$7yGz+L?xOyCgpdZU=r2vZj4?2b$7(KT#D7D4uQu|XL2-LYQeVye z0tHe7)=62yBGkg?TkP5TBI5lb)Y?U;wTn<^7opBB!r4|4&Sk_(Wa1a0f#SYQQi{+> zfe(X}ChHGEnrw|U8I^4Nm@sLw)04r0;&OS;y?|c69J*U?K=B7~pQw9*7PnqFq=XCm zvtsTABY9o~wqnP0w`F0YjT2{iTzCk(CK;N@v@O zCBK_dpk7=&aWAIC?~xqDwrwN1hosc=%M>%3Z-@BdhUl*`6FUBAaJSOrS}MD>`!%Mk z0%QN3B(L>rkUEUlXA|SLATE_^-|lsc`yNTT?wcv{MUv86u4j%PlayQI>nwQ=-Y8h~ z8%RtAk+q4L+{l#fQfJ_uz?mpY&W-TQa0ZP-uA!`X2uWrM|KY_JwU-twgY+0ZFwUe| z#4?43H<{G~ zMFjrFgpC~nv-6zhizMGsemH>{Nw~?;vS5TLd9}o%5;|m%UA(;=Ryn@r;e*yZe9)SQ z+f6zC*)?B(fSRula{LEs&S#KZb9($HZSt#9Vq)mwI||ss?ewhjiBLN*aCmv=)g|y5 z#zt7!PTv$ig204+1U!NBQ_5OnCIV3z0taGT-u3b=z~lXJ!b%fP4+SPv-p{TgmR*Z8 zEGVcc9SUj~;Dr!zY=S5b*I7(p&xWC!^~o*HsCE*5=c8(ltZ@c$V-Ua*5a|eP#UQQ( z#3?usM_7PE zk6oClpxwCHU%N28T_Tv%@v}BJ4?+%H7?V+dc=AN}VgfH+wn=xr82oB>N?`VD=vs7U z#*Xuu3GB27W;R_KJ(xXv(m|OKDUQWCk{mR-4Bot1jnV*fO=vep<057PSgu&Rkt+5> zx@k8*Sw&V{GMG0E22;Pe83Gn@A)NifY>JrdQspvjiX_JpA_)0OkR}xHZ;J(lML7JY z1AR+ypaKNm;$0sb%u7c@e<(Nu0fA!^X1I%!Bsih~%K(b{ZeH;=|p9YhloO^Mnm2)X=zM^%z{GbX0MwA}>1~i*GxV&fup>FI#c&bVA|( z8J`yY^ozxZYxL@KwGu}c`CF=Cg9v&YjZHPpRjqZ64K1n~5~zLP77g@7@LML(6G4{? z^hEfJ!{~nGxc!bD;iW~X|KY96A5Ptm@jSa{s2?jHu4~u}KOOr|9Jl`zvGA3f8xEC- zMJpHfu_PDKIbrxzKim%$!(1l27aZ41je6(%#Y@c>Ygx_3qL^ZM-b&ypfNieReB)WJ zmnT9e6vd_3hZH@c-Wp$Ok7>sjOqf0)cLEDFbz&Un^{!hu^z`w=r9qO(ADTwCXmaj? zP2=ffDw+$M)zw4i2zstXjrFE?pY<$>TbDCjPtF=-tLW|MR zvDHqxGuw5r9%AlwwWZaKJ+Jzj)j@`5!6IRi!*ek*FKTLS_LX1aRBf8s;VS*Fy3!bz zKbnAFeMK>=VpN)mg;#RGp;0oEB&LKDmqDyP3GD-eWh@&c_@>2BOcpT^SRCZgDxEa= z!mP1d7t4?(6Rn>EW@e1v)ip4Wn4KD@BWIFQbGND`5rO&upE7g*L2l&6+heItKUn*eL8tMvDuJps8IvF**h&DWQy0 zQ`J&4mcxEJ4qI=DuYbnzC88`NvVr ze|8u*37(l5S(et6|Fguz^W~>BBYQ*g#-z)_mwQ)y_IgzZRF>-6%@1zps~i5qm5mNB1iZ!yPjWJhBpeEiKFbF@nqFV7zNDNoi?g9Nl&77ZwRa^fftlTz{W?573g#m9P> zB9F#N;1pKOc?q$e%xv26BVq)6w0mYdPj=eO+Y?gTO#`kah{^+p@Lqfbd6%Y;(3Y}DQ;A}T2b^+k^W|-Z&Tc+c)#K! zihol43lWnJ5p=}RI4mF%A!mTnqGyV5>U}X>^i4sZp!8fK+WB;)sSH6mbxOA=y-w*% zl;*BF%G;#$?MgqO_^9H~6#t8e>-Q!R^8c*iVq*X_x63d*jR?82uL`v2g95n+mf?lU zcPtU|xC@c#7Ak$F(ltsq5Rs0$EabmN<2NgPtI~H9!S`(<`W5#wlKxM{7Zm@XNc9!Q z%QwD}e^1Y+2M|Gv4IjjhQhL0`7ZcIBxPO=FPf-+GXP|497F#`_zd{=FxFApdo0V=? z`fjBkAVRL#=mGzeO8-*hUm_y?t3=!ve^)vUk9CIUDHbc9qPU6(d38#Q%^lF|l)gmc zFIRe#(l;u78*v15uay42#)}Oe6=iT5KgRk4p^f5oU`o+5R9$uHvx@OY(56;DxIq$uMG_-d7IRFv@r;Tx5{Qjt2E zlz+YA7R7eOyA;Ki8Th`V^nWPsRD4|Vmx{ku{GHuY%hZLc%K8)6}e}h z^gzWSiZVVSe4Nq~6^~J*f)~@tcm<@&0O_TQRf=ZZqAC#Mx!sval`!IEiekeIG<9JZ zev=}%T9dw0QN}gUJCuG<@lnMeDeh8yUQukAA>AuVcPPHE_%}toh)I6bLu0;F2PEbw z4pkIej|eYNda~kF#S<0hDlSswCp#&xTJbDJu?dOrW~DDyyj1Zj#cLF|D9X5rbla5P zu1H-u=JON9rxkypDB~yMUs3vxif<`?sJKs2Y@dNYnd23Zns-F%L=i_RinbEyW0XEl zagL&l!-zjsX|X{GdbQGLE1svgMp4FP@Li_#R~2P^M))?Rw=3SS_>kg{6`xf6Zz7(H zzfpWuQO0S6%lHiJ)bRa^GEO5L%1M%5Y^Q;y1|Q`WC{9+KsyJJbdR*jNNyPJQwPJ%} zvm&+g7{5{RYQ<|6Z&AEmk?MQoe?*aLd!+wM@mGp3Dt0RVP0_;(B>7VmM=Fk06q{*? z7n^B7Dgl!JOvM_-I>pNszoJMTJwB&zQQW4uU6D$AjDJ+|aYeC(hVWl0{h}hZ`pCam zai8LTMX`N`_});yBOlfNh({?-R6ItpTyc&fwg32>uTiX5Y*M^X@gl{IidQO9Ly+m) z6}KsFSER}y;~!OgT=6MI>JT#icZz>hd`po^g^d41F&Wbjq|+3sWk`CcqS!d6=#!av=w|hR757Amsf87-cx*<|#^kkUyR@Q1V4SlSnf^j_1g)fQWL+do<+V zLK^aZOoY6>M5LE-9qAB-&suB!kY4127Wt4x0O9J~gH;^TW_V!oVTFwW%5 zb|RmlR~rUJlP}u~{-#SbycWoEuwT#_Tn0a9&`NO74MtnBk1%icMe;G-bvW$uHG%G~ zd{-!+Dc|j&ZD-2I>tdJh4$#bp2c0P&ucKYQ@mBfJO@i{h3%^~ydqA(kVVo(?>j)s9 zp)*Z^l+lm_;lY2(v{DYuOGtg@=deKmjPb#G2LQcUeK?&pEHVZ<4k$xD4(IH zfVQ0>TYbKueB@(3ymoY^d`$?q%Qw#|UmxXTx;uP%LHSBR^EZoeraZI-jQ^nhE+k<& zL;k1F7nE;3Xy$`kSDY!|PZ4gH?+mMa{lRJ44~zJcFZ(3j2Be$hd*y7($Mj4Xrr{v3NYTc68JtqC1~%{IK%hHgnZXy;A{dP#~2hL$oHcJdCPnIdaH@@ z_^_e%79?!TaZ^mk2({_`5If^cs!`g7|1c+$m8?Pq@jqn zA@4MV8E4}7JI9u{74oKliRBxM!^j(_@(?Yq3=@rOK5!;4 zG*|GfWaO*hYeYih3?C7fIB*Nl*>{3(B0@MWFyBlZESr_w$sCS%HzNdb##>!mQ+-ZL zeq%w@cm8fn+wX^%{h7y1Dn5F$L?3#8=8C?OORzulOlP^|%asYv53`-ffu@soV;x9i zx>>gHv0sp$ienm%=}L1hc_xlh9RI`Kdw|DPTy4N}cUQ$~mTj$V;ey;`TlT71mSnlg zwk+h1WNcHHm9(;MKrF9DN;5LzH$2qg(2^cG4Wkc5wrMnWhF36KV% z{qK8b?%mZ&a>>tMpHGi=&)hj@X3m^BbLLFD>t5zLCT&^nvTaLM>n+82YuiKWA-kI$ zIB;Os(0fMQ>$x>;<*^@m(swMK+&ZZhOR$&m?QYgJlUlD?Y`w^^>%fC=XD{*`=&H>_ zp7@2tvkn{>dKZGuUstUTGEeV{$i1g89n+e#GI`mUR_5yYV4b?9Oy`@oj5!v|cV^x8 zrF`P2WL&GnsjK;?5H0-v zS?Zxi@URje>JIgbe+O>&{Vy+&!~f6ZBD&z{i#&aK`jWQdeX#*|9!P-=U=NzJtP~on zb+>hy?v+{-CySOr&u%N+HAzj%TZZ3iY|9IV!=2&0P)DAcnTLb4!8~Bp5}M;Y{sd*P zxhhZPO;dS2k-|I-jdM@Y#vR{Q3oN3i3nPRZu68O-r1^6_i78{!G#U{1X)uwV3`M); z`SV?t`rdN5)i#eK=&O2dR`W=?QH?uKNGMc z6@x%Z%Fb~D&Mp+NXNiElCkr^IL%_Lv1e|}1fD6AT;G(AqQhV?sM}Xc+0jDhyaQa38 zXGI0pvqvacme(&ZYEX8>_NDgt;A3|0)Jqz9*y3K@9!& zL?G5(haDZ}a4HZjL_Ul>Rkjp(!c0_zWmr3b*+VR!4ECg@C`_<8KA7a+|GqRC{blLdmitB=eB>K76 zkW2%b7wR>M$z>99Iei)=#F|=ME9d&SkYrHn)v$k3d^`UP0b84a;x?krf#s^P?*v@&iGVA! z=P>zIV+35iNWj;c1zfX7z_oV>*#ESEum4)WH$M|_{b=x&lK!ny0XH8j;P!3-2QCtD z*Bt`xepdTa^6HVR#t=i@6!M?Yi`7JaMUB?*rSST&|3e2@0@uI+k5E6u%VgDxmOy( z=X`uF!6##O4H|c}e_fYoMXul9BLTE5r@y0MUK>X{`}0aWGm%pFph|HFfC{`{slDFur%v3#FD}*lPrdf9*Unb1E zg5}J#_Q2-xSyL(3QxJ06k1m27Q-&9>Koh16F9`@J?G-TVLIJby5K#V_fQn>}@WU%h z1ytQ2k#m14VBRMJ=1&#e!l-~n4FVRg7u=FI0ZVrasJU7|?c)NDd0#-?SV^$_7y&DP zAd#!y6tH@jM6Q`H;MkCW`cnu-%-##xrHm-QP(a1a0Io6&C}|H;SBCro;;?c~x*pwh zf_DK#Vom%L40Mj4En-dl6{2#Q9z!B)Vg~GbPV+MiXa710;jJrRuYS+xjYxh9J{f#c z8XI{74ItPaV9v6!nQxI~L^s5ovwcLa8BMOR(Rw6NIYSUJ$&N4p~=#|Ht zZH?nT zfhkq0?%h5X>8z=nV6O14f@08EIV^Q@HU#FKVBO8aC!U&zhizm;OUZjWf8j+-$-ARW z!pA|kyk|bTknzXBSbER;0GV17e+G8EyI(@JtclklGw<2IVAx%YR2kmOpF&}2)8WE- zuVlF@tsJfFy^3K^+MVdg-mAZlTBR!YS>Pzcd+q5M+K;-Dq@(7-T#hUy)1wvvIkI9t zT5VJ&V;4_c221rJP~LmjqWh%bap*YK@*&*j5VMm9A?D+g;R8+$eFn|ree8{)8aW?` zB@Qy{ugJptR4TsLBl097JWQ2EpV0ek5{AM~M0UpzDKKu{pH9U0xrn^XMr2AQhc1O_ z_5P*^Vq$B32iOBPg&O(@IeCLV0g+Du@k<*i?W!Ahd@%$*a)N7FG9(3FJ^_v7uD?X{ zvYv#Y_rBKwE0G1U<>DiJ>l~(6;(6qctnUHsLy(Vg=qXQt1Fy?!8m<}P1?%-Ti7I$* zBocSJW@TyYW*ehflxpI4$e@7U$yNmYi*>mSL|-G}N9-3GJI#us#fiNOm>&`Qxvj=( z3a{sTXIlJWAy)DgpkIq+;Dv5`ORXCb(}Jd^*Y{Bj`y2FaZ@G03(h{4U35M~}g-`E+ z7J93!7Jvf878ApQ)s*Ylbk)|!7-?9IV}RLcr_;i%fS#%8l}VsmVXdEy7nlKmR$m$> z%@o2Zg!`oxsiL^5vys*j5;0+sJ>VgQxT| z`DO55wSGDib$0M!;`wFpms$LQ&I=qo8&^0n_^YgQ(35U=@WQ{;Z~X0;A$a#&=fhId zWIsz9VUJ&G`Uew$zSa63+Wogc{R1DZEe?&A!}Kb4_1mq@NR&Dh+K-QJ-I-z&?zA3< z1ZWg|qtMLWA6ieKMr?ko0;KaD@aEP6K|gLz9hC zOffH88^M>*d>#1j^`VKYr_S+p>vh;gp?(gOe;R~3o{6`uk03xv@&(9qU}m&@92JSD z{+mV9Ez~|x&hJYt7DRLMFY9Tjm=LZ9(H4i$(VX~fv8@dkN~rgM@*;p&rG2oXdF&TnjKbk45g*KY`~FV_j=4 zdZ8(GO+oVrO)l`09U9R)ozHw%2=Wk``M@9J&`96VG^<=cE;KX&;M*J;T{$W1c-Ox% zNs)Z^0)MeX!^$b2Mcr(1jX=HFsjORpztg5M=&i2XLCZd6Jq^?gM2pcZ3U)Lr?{-&r zo=N={Q13aZHF}ThPv}6BIvG7VgC9xlyPWppLf4teFuBZp3Q#kMW^*ZxzS4CwEYMD( zmjbmsmiiO~z29)%3b#~Jb7%+=ty2s77T5Q&lp?8j19dLZrtBF=eV5CVZ&O{W(w`Owmo*Pth*E z;=0|~bZZA@cs#b@>E?J`t#ZgD(CmRN4EUs{kBY zJ&67aQ51>p(xN?@=s&LeU}vmrL2y$aB31k&8h_<}64BNJ_~E8lx=poY00vP|)> z0rfkgMXtpcP_FszQ_x*3u1avrI99wWKANMX&&`9AmKV4&HeUH&oDS4%_cl~OmMO}B zsv=sq*v-%)?^5@EI0z?DEPT(#DK=VLTA$Dy=bnsKT}_%^;CGY85r8TRM3r}oI~}o- z%{2(zND`K!vk{WB+?`N7$>l+ypC(Bx7hfLzqD$R8KrJ-C2mURaMrrgl?%zQXq!ix! zNyf+2W&32L{+2r#Rh86712u(ct-FH$j{CC(CiMcKxOHe!e?}SK>;5;2lYV_NP_1_A zOl@a`=Ev?<2u*0t0{#MrM%x*odCGmaZHsOM{(wWH?Tpa8;@&jN>Jqs4^g0^s*MG|s4D2uFD~LA*kEFNhv?2&JyY{aXmH2GI?D2n~DtJUe0Yh2}@VKj+ZI z$xAZ3-m?p`5W+V>^u9x=<#ih6^*zs?GRP|leg7zYv@FDti{(}O-Sl?&7oZ zQ0gT~-+tHj(oE5t8uUoHQ2-FZKL8P^s|n6YHtlN2ni6;+l+5PXOhjL8#*! zNz(ly={}6SlJ0nmo zG?+8%Oi=A3rFbx8Tlw~)vwO#+TnOIDt91kLx7xWW-w$B1y;D-^U_b@^C{Rzw(61rr zotd%*Exwq%{2tG5#n4>a_RdQgH{Y!p}5R?lXYG<%B zgd0=7i&BMf1Bf;`gif}GFqFdcO+vT}L>D`RY)Dh|No<>*lpQvsw}R*g4q;r;LU>L} z4~AID@n;}<%OP}%j?eb;lov6E3N?RxE*qbO`YWGgdt-{nuF-T5&2b3h7%f-~M!%Ob zYo5um9z=}}VH~4E_;||e@M5Is(?N8xLzu{@P`{LN8>Xs4eJdz`(4SiQgz%3kQ!xPO z`h(~VhcJ%OTOdmB-&42}FNB|fC>^PE)#DfyLQm?335IYoh~_wiiHr*Mu+*F25J|T6 zpls|Xq~4xDx&d>%w^ zIE0Ce3iYw6Ghk7K`V&y5qmKQWUI-gg&w#@tgp)y3<`Bj)x*y|-cWdhL3k=~Z5S{E0 z#xW{{yHi)$qVECG`3_+sqe6Xg>d$P|`!*===})bELU?^@5C%opA4I=)2;&(2IR+^2 zU8%>SAK!$J^)C=5qr>Q`Gp*?!+&J?-p1K~Ulq+l2(IDbJUQ9=nPiX#_I()jJSpxh< zhsMdw%y)$P^VB08q(otlFlW9Xf$ucz01OJ9Y z6XPU~ddZLt=mwJGC!q8~)e?jt%dwh?9PT@mL@Kc)e0t$RJpimgiqdD{W;sJ{Y%e8q zcrw@;e+(4M`)u;x07!HOQ$*p550qkg5>v1U@9&deMny>Uor9!Mr3avHY};91E5Ko6 zlsIeqOl%FIU6t!`Fg9ud+t@n+yn9~(Ne&-}{B9AvzR^W5qOVNkF3jk1O2tasie?^N z^%s<=WV2`VY}w~Zo3t45b3GvU$WG1Z3ZWl*6~s4s!NbVmnPV^)0DcWV8GOhbi%=$$ zsB9ryJQhU|V{JlYyG^IExzIAY)(hTAZSBR^`NaMdv?`lRU!zyt02*d!-GHxK9c&qw zwnneHyVPJG0p=+OI~qI0l#QCr8*`rAS$+tl{8{umRH^gAw8_h-yVm}FsuB>7=3oR%KwrI;3-G5s9mY$I{~WR<7?xd!<8FCxGeP z9Q~A6)!7tPxuf*cqB%psSMC`7v}^8L5PI%-{iLk9HI>o}r)e zDpygy=UG$`tEw@$N#$N(y~09N&JS2fQ+HV9UZkU}D)ye-OZAgWr5sg12~tius$sN% zb#hqfsFUU|V`OlHfYz-7LSF%>_yEf1o(?^I5vu0;&TRPq53WIB$DkK9;FIwfo-!x1 z3r-w28zi+;5o>AkhiBO2y@=fHkn?PT$+2w2LZZ-!Y--P=;&4 zp7m2Cc+E*fGp|Pc9c+wQ__Jh9;`%qxrEh|JG8xCNs;GfyeJ<+e<8Ab@Ij##aQH$20 z4pR_01D}l3@T4a4Fw5ApXl5*512P)>wl&EnT??}H4yo@Z*ov{kTt~qSNKTzVbvx+( z^-&d-P}QG-!gn7UbX>qaG!G{}@N9htUkqgIS^)`*k*g#p<8F2dD|3GcA&mQ>>vaqU z_%&OV!+DhJ4SbD1mu=vB64e`j`FqHs;AUJMOI__0>y{-yOk`19h~8j3FlGJLHybth zSv~S%?X>BDjvkGO>^q-Al(7H`TJC0rw&YWCUAO>JxN`+IJxO~J zw1K!xs*4)`HoRWfa@Q7!hl$gnBo23d^EHh1zM6)2>Vlu?AkAbzzEsJ1Xn~x)AHoK4 zGhi*Sa#W2KmMOEIH<#QF&Cljig}MYa4zs)#w2=5fNfc(uFThgX3Ae+`-VchelVS%( zD4~dbQ2|uRQ5m2OzlHuxT5iLZcEIAt$QV*NRH*qQ!Qjv}zXT0BfeXoV=+TT{3<_77 z>t$d?e8_7s2~>1o5U2)0ne>mH=Obwu9<4&g;gg}D*J`44kJZvUR8A)1^X|v6=zS&a zoGe{P{{l*FUro0m=Lncmdy@EaO*v^b;T2lLg`Sl9MF6QuUq?GGO!b_IHeGZ+bj9^O z@HTPkJtVS{A7>xm4IP;{?MaDAT?6~!TAqoR>8~=zmGp09)8%?Yb~EWirMGF!dP5zJ;Eo&9o;x0Y32*RG5ex zVPqFtsU=MKE}DK)!L1A?qm3ucc!0rggVjkhpJ%WJuFoXjZyCG~y?j#P2Mp5gOe*@6 z!7z7l?-Q)w?rpZ@C2G`56YfYDZ#5rTg6jjuJ53xljchBUNAaoBaf-M z_T?dXJddimrb53aoyenQu6Ha1PvY@1R~=Mh(sm)>FF8#*O@c2CLvV)>T#qNcsS1_p3-T|}u zD_N8W8Bi76*TNXD%isJg8fdYR2?Wd8Hg6zg`@F`!?R z_De`VfA>a&mn`>pX|s%`wK+`q+dasbH#4-%_>`%?kV4h&Ce81dn%6dBsZHh+QEL7h zaibfOPqPB>HIw%@A0B0U$^CpEevsZ!#4xftZXZ!=C29&6K{9W;Ie&W?LWL@qN^suS8Y26)cjAF!7Y6-QfU#MI_3qqNco>rZnbk} zBKQT9K237Tqwep-D~p-@fw2teLYJpbz5IQYz}qWnS*X#}D~ME!!@+hn^-6|4%H@KI zoO%_Lg8tge(dT*1Mbq!6EDim241@lgC~xZ5@zYjnMW8XFrmkl`ybEJm>I@9iQ_C3H z&PaZtks<&qSMk*M)ML*>m>(@gjCENkyq0fVnJN~IcW8`+dCq(4DwfO}H70WASVRVC zi~hjK*jG&D-UR}sz5}qj+Vehu*aP0jiP5Vy&7mGO^=p(5ujpveiHK@9VoE!;oD$}( z9bNFMe9G_ya>F}3nIfFpo1j%wze$<#Mvp`qOb(o(skbpdUh7v(`Nm$H4n%UpOlD3NyAWf*9thInBpvD=9Z)_x4dow|+5kKKS_ zZ|dp1O_V7Uu-f0k#!OwxrWnUa;ea7tgAX!w5v$2dM=`u<>3_j)OgBsZV(R64q2>ArY-11rddy-lm!Z}L8bhk`CfA$D=(uRRnmOIad2iYs$ZdKd zi%@B92xoc`!=AL|Xy@t045y}j8>7MW5{5I<&W0?fmol84_Gj4A>9ZKlNeiMmr;Eyu zPFspvPoK^Bv1u=0Ae&y!a9&!=9E2+=%gJeHp=#6TP~6j$>ofTM1;uQT<(`6)O&B70 zk0-5X5u&ABjv*+ZpyV>dulE$p%0dyGzL&qZ0GyYfjEZ7)33YRow_!MTmw%X!T9hw> zwMZ(zDi15aPTAoZTSVpOFy~`+oADyJ&I7ae%kv2ND@6Sc#da5)p8)2YN-5aD zG`xhA$rd%3Ygq6`lJZ`X(F*XYYG1-v!STfKs*;c!4yI9fwZ!oDlEzS-HmKTPL&yck z5XBo!eNY!be+o_@54`21i$7*Ij8MUejI8zKAb2u0vWj@8XJ+yds>KGXor_!xP9YI* zMJ4o0OiK)1-_O zTR|2ujl}QVye#pm{G_Oz{J zgLlv3)BJ_{6eeb!lg1HgCgaewCjjJp1ios&jgDLpApx(gNk*!6BO0S1%5r&$Emp1> z7A`*u=x#F1%Wbj34LZz5>tSkMdh3_^M6$k}CH|9WF|863E{*C^X0;_=gza$w8RAVrDI0dD0{&#dg^cCJK|A)T zafoeaR_EHWrmLcAs-Tw`UM-B(0CgJ*%r;_p+fZX<1gy=ZoKGi)7ZBsqaH?By4l)09 zFfo=>H(>;rv3Gh6hQ>cwn43*b@y+C7Ns72f+TSTj5$>k_tb?kDKZ?V1{bt*FVtyv11pQ0?Q8w1tp_+;=&WefILKeSM= zmjUy28=LuaA&Eeled{Mc0vvv<`+$DLCdm+O%APtNB*%A-#5XY3|KRJ7B>5FG$gDv~ zX_AwlfM(1g$*1^ALDe+Lu|o1R=zL9YC7E1~2D*qO^UdA=26cnysWGN3lgSmBU+RZoaY6Dy-nus8NLwY+==VARBf3 zR0QWruzV4M3weih)TS{AE@EtH8CVbjY|I=7wJv(X#T!+}->;v{@B_@oL2{i^F6G?bv{ z0aa_GGi6cFmxn%5^rmYqMxl3673);sTS${lyY71({h;U_*GEvUe-nKsP{Ze|G|yY`}zlEv?Vf6Jy(8m-*Z zfR-%yrk8Ylqy#&Qqmf0D`_(C?4wHc|A`R=1`D^g4d^~kK=s(@%=buRtILo@SPBQqx(Huakmm1#HtO;u>{mX~ zci`)u7}}`IlMwL7WZ-$AUM5-?u+`-ppyig~Ux50zjkeobs|(*pE?HzRK||nUvJh=j z?zuoq7DYf+*=RcptuEbY0jWa+@TZW5b;!&>fsVR(yr!65;CDOuXd0s~ms+N*Yk|Kh zAs?eIE1{ag?nA);Bq1N8E_-3Gh37v2|JQ_kjJgz}>DUlf3X~udA1!xhVez;KmT-i_F55AQL%{)iH1<&mOZ z7LMyZ6lJxCgG#-JBX_m=9)fOP@8P}X9FkXicx|`Z^D8uLwTCvL+QaiM_2!%L4H923 z-%D9R-hw>|ggiHsLu--4wyph!2X4kX=E^N&JxSn{RMj>l0domw4ctZ67;ZVM+MlEP z1(!0+jb*bQ@H~c|g1t-{+v2MCaQiZc4VWB`HmR~{JW`VS8cHvl{y5T(`3ZO^o1une zKw$TH{&ZP>( zBjcD+V;{lnz?zwixytRpYg8SIQe(e?e66zMA*)Ai%m#JJ{b+G(!J?^Px-uVG@18pi z*UiZ*KBMvLiLB)4XsN)=6~`e@`4XdF^1^5)`8SLYlgu(n*t$$Yn0eKD`%5SBfC10$ z;uM{vB_RpbMJFlQh>$4-{m--ec1W0|e9a^wsZ)wjOHq>K1pH14lB8nHXA;(fx=M0F zIc285gdDobeeY@y_t5J-zr=U7hf0E75s9Y-sQ1j07#fm#4`Zr5Gz#^e^g3u7`(3r? z&w^yMpYs@Z0Z?W5ocavt8NkdA9njCq$nIJ^bBj2J#A5yoU{mnr4g%9@V;N96B(C=G zP(ih)orD<(y1$CptMQR+7*IJpa^UAA!hIV;_u>;n`gzj8{TSk&?-L*R5BjnDO~f@e z`LXxo{UOu@fBuuuV(z~q{xh4N0hPmB)6G5TP_t$E+MNe$*ciMq4-p?T3=-y0?V-I4 zybsB^k4JRNwcxzCnzpm$KSwi26>ALUKxoBFNQ*Lg<=njqBs=gC-dW}*{9F#M!!b_f z@Di#2R(K}vi}3t4n@)u6=lwkQ&4|0JPkbPnjQF1+u4OOW)?pt?aGwN!iCC3GE1ZM# zV9L*n_3n2O`42k_skWat@!hT!7{>64XRQOb@_Bqv1;R5xQVFy$oO>O2=n-th&OL)F zz;}zd*MOka?~m|>B0-d>0^H7bpN?o}b3ODFItq6587Z^~i^}HE)IqdJ;lE@$l3fmp z@8BaGF#z%=o(17Bq;j~SUoYf=2WNo%6+AoJ{ot(yM*(Eh-_Mf^?l*w`2p`Ff$|t$u z6ocdz;9&vxgq6s`K35pycpN!i?jjajD&W%3d6~Nm&$akSjuN;5^AXNQR1W7!e!kkm zeF7-jZ7K=GsQ3~LKWBjMU7)zgrea>1d{Q}__WAh&4fnV3e7{Y>e556EB8)St!{hJn zpWyiwn@&_`GhcUs7i75KMD#~CN&+!f_%;mx&sb3UDvWRVNVP~6ng&CFH)zlvKxoj{ z;T8!@sV9^FMR;CrCnEo93$Ky8{fn68DZsSaSn{s?RRf-1nn81BbG5Ib|hr_5(05B4MJOaUItaKDAf*r5wPsT@uY0z8f39Gjf$aDA-4;Zwt8o7@a%dRYs z~Mz9y_&@wsFYXY%N6n~@jK=(;P`^vmM+aariF&f@pUBsQu2 zyaVoDj)+tF;rPHd4ZV|xf>*g1sd9LGu-e0uEB=2?2l;lyo^6vepmKuv_VYG~`$~kq zX(P26q;KKA199KC;~7vn^kM2fJbG6xev-c!LH93#`-@G;07Tk>0}>p^RnB9G@cT*k z1wuJ%4bw5YhdCmvb~;l0gKMCy{To2n@hnnVGxbo5N4^)&nhBj!sF>=6hoxRS8QZ?r zvF^WHpl_$^!oMX#w=WybZrO|dkf+tlGkkJ<+|k5DBN%13|YA@S=VK) zbzibJ8EeV;i2o0YP(Ad0_=mX}vWD}DOqTHI;4cu!WI*|Mvyy+r^T+r|%dnCyzfM82 zHaSz+OApU#!AtJoSm7f?B4fu!Y-8eoxmlKe`?`qPf8MX+7|H4r&Q8z zejcPds6NORCP!4~(P^a;*)dipv0m+y<{coqvrHN- zXB4Pu!d$wnsPU zi)|#cy&n`2gM=h^Tgwbq^}ddvb&~ojuy^3&C}E4p?j*{tMdT*CM`|0Td;tr@-&lOC z{m&rgD74ph<}nexZodkFMGSlkfm0CJNvX_-CVqwpaA++uDiLJ|r#g38^r~9|uv>~x0&l0rcsrGC+S0|=K9#<@+D3*Jz}oR|Ek4%%F2r!wv7OoNAa}D6 zxRHSc2+&q}(4zw`Vs|^H3Q)mg4bJJhtMoW9>-Pd^g2=IUd7o zqqBkAV?`p$b2ewT?n@5r+-tQ*HYv|u3jATveZ``+ps=ZXp1sx=V0Amq#czO(vZES< z;lAXao#eR(Q9EfdD8A7s!4V&9$UKArZ=vm8Y{x7& zF+0i7bOp~>$1t-S2i!qqc?sywcm`sliY4RY+2g9&08#!9ad!f_on!1{ z2z0aluc7{$oJNXziI3lm%Bw_sjc<^>?7W!^v_u4O)eP~%!=D2mvg3Z?uf>FEUxfj2l% z%UleG&@welz?K;cx_ zv4$>w+1>G5xaa?bSoM2@99*`nq3;iOlP1w8Q z+T;e(vv=iyOxkc7=?Ca74}&4J$^S3`+hi{24%sFjf_lI<$w1YBII=dWl0=7U6E=tR zmUb?6@lUtOT_@=_iC@VwZ9>#$)W@{ReR#YQk8y4CC?3PFBCnf)J4l=S6?8ER^F9(l zW|>GMGRsIg44LJFdO(>i(ue_Mwv*P7W9P|+q!(>C4{;nScCs;vJk20`fb3_9t`y{< zWXq%TIs7`u>Of7ceaKqIJZt}wlOZtioc3|}oQtYzuX7)V-)20XEu*F-=-qfeljGkQ zB%=ou?;&7da)!X!f~R9=hOBcfx{dbuwUmc?SA*sxb)NM_8n&!1BqQfp+q2=mSCW(S zEFShLpA$wrj`e~0^Q`+9A*PBk`>dZJzw@nA&|m)QV(31Et{TeF1(;;KRKd_y2(6L0 zRZFq3JfCsf5jrW8p#uo57{<^8#G>T7B~!qPB_~2Ty6S^Eu_L%1~8`W@;?q z!d!|H+iSv_w7TXO+8Ljp-8=>Hk-9l?*d;zv3uUI0pHo#|Je6)j&0%4Ggx$79f^sAl z(}&{tG_mLsCptYQ_ENMhYL5wv4va^A%bbjbFqXq?PoKU}J`HKd!U$BbkLbEpnpT0_ z*(!4qrAghXLZq-=H$sb;k#qY|!V=AMSQbgGOkXv6oai@OYJQo~Jc@cOtlxsk=++C; z-Kkh0F~KZMNaunK=7xQq60uiPx%=9=p^sftm?W?INI-Ii*7ls8qGF2$spH zW1O}`epHq^hXx|hG|NX=x^H!4G0BQTV|Hx(N-vD!D#RMYqEoHTN9-EOP5O^by|yr} z+SmiK)9F<8*`}Hei%no1-cc;lrfEA4y(Bee71w+EaJFGIirnZJJn2Zs$J(VbolSaz zQ$eFf*mhqhRXZXtU2FNNNvM;ymjNA5K{cjhO5TK4 zHuc9qYFD-nNl6ln=>Qf2n2WZ}SboHVldjb~ph>VwYRKeaGmE3qv02$tsK^(VTJcfs zL=UruCodX()naLI{O+t>hzny*=Xtv=3`JKg&MiUKUHfn|&Ncdy#SrAyI6^#z)2-u1 zk!4&&a56xARA<1{-3Y2-7K1(H!YLO{vSBmbW^-F1=sL1AN%IK9-1a0@GJMvif;ycTtbYgriajHq;J(E|v(sjUY@Vqf7~Eyqr6&}3mc=@<-B{*sOY?7JaW;{r z1&H2*d7kqO4)(@B1OF9^EY(9w>0A~D!PB3K2~>|)`w&wLn)3yA zpz~i~Y4xL#r_T{nMn21*2j7-jO8{pE!3F~GiM1dsEPn$5=MM%31jjnh2#k~{E}+P- zRay!YR{d8BFdH9aZej$$#bFe|Mtu4gq6zo{6}1Q-OC3jG(;nN0Ax&E!qg@wITkp`q zNGjOtcwWdcWe~?+IUeWqjlz?ikm<(?b{%8wKV}V?5NNC;08;2e>tkuL+!FhP2gvdX zIB7vu2`H{OuJEMd3ekicY(mPfuS|5N^|4IX$J54S!hAJtLyUG^JZ*y`zXH(u@JV2c zGDH+XSc0<0um{2Z&6*^22|+!9&UYh$O&hBMm4ZuI$c%slaU3%L z4v9LMfLVAH*73d(%j^t1A=>%-e|Lon!RIV|T&maM*p7><_dFo0g{;RRv*Y5({#QKz zE1v(=9%pR&FS-KR?k* zZ?F;PG>aMok)SF%E)on!iZ+Eqk=8ANqCiJ;xHHu3>uBEM3zw8M6-7F`!%e|RQPZ|< zzDTsKXj4bGuPxMwUk+@VF{7xga86OEqp7XCIjH{I5~7`*ZB4C#P)DRF5N=229o^e} zhL0d_g8EoUS2)<%9cqgfH3!1Ip$^}+%5r~sSrIrX+SJrEaKb*^eQEV9Y79jqUxL^u zMDi_F?5POYay-2JyV?TLmd6}HllH|YmbGZ^Z$Lr^3JgWH;dUC~fyhrcTtMiQ(Cp@%kgcC>_;1FS+* zFS=QnwDY7d`9d8FXrrRryMq2`I6%E-?pgS^{1n*wb?1_NyjBLhu@TtZELh#}NLcENq0m?%VsIE`=VZPp~A zj!-ldXbYVd4Ex(c5h)_n84;FD*}YAy3kx*jE{tUb;Wu`-5U1Jlw*;DkQBw`%gK~(} zjNn;k*}w8F-5pI1vbj0f0z$NyBNXgkXb~Vj70Vu-kwO3`}ym+k;`qT(>;(L0o*@ z5Ce&$h1x?+q3Cu^&{r{#LQ76_p=tfSonf{QG%gZo3HqBl+q(i`@(hjM6m1Rrz+Irb zEvjjxeRO&-N&Yd^!0aOmVeCH0w|j-;q(6;7m0UQ@rKq12D;RyRaSO8u++ zZNb16KWuPwO^@n^fuxCxcKT`i#ptMx&ZwV1Eg25>!1W6{9H?l!KZ2Ktf=wDxe4=2< z&o@#U(-BlHy&<@I24yTG4J)j+9>V6aoSAtrUR71PNEuipdVz^|43Un_TOh({i`1dk zC2@)Bnrdq55jRU)U}M1RnjnaV+5WXFnp7XNhSAloA`-v?2HTo(jJ6xnuJlLMreL%e zl{;be3P>GptRHr!qyooo;YI~w<5?Z@ZHUx#wbg`#xFJ&66zB@j1VW&G5l0J5ICAX5 zNQ)R4S;ayyd_`?IhM}#w1{~ORtzNnMxK+rgAv(LItvk|M*K~M#w9XIt*EE!y z&Qs>E4|Y|c1A+HO_NoA?EnRDsKOAgn>g?LCoZhFqr08#+RI^}#vekrjlIAa!UwU5^ zj6?#Pf=f%;whey1Q`T0NS*2Q88X~h>!kryaP_(dT+BIufTfL-4bgPeA^~txa4t=}^ zN*hu;dV@rI)TmD#-(+&I0cF>AMI>bA^^XbwIDl0U(doX`Vb7y17uHMz2aa>($v#PIjsV} z!KN)RX2MuZ_h8Dvb2!iuiRqCTn|@k1uMrc=nR(H0cW^;fmFS+fe@qRu+LTi~2iVgmus@De5_g zt%*rPG+48Fvr$pi9@yq*It7#C@2>*oVZ3xW)PY>#pS4g0`KD-ujeU#GaU9$Md(Lc{ z{Eiw)qIv0@gZ9CEJs6JG!JO4Mbgq*=GgI)ZjvSe1DN7Q&tL$M!j zgm7tlHynDU%)^j)7cHLVuUu?Tmtio1%)yPV;k3*$sk4bA-B^JNqYtoDzOtOn5D7Fu zOLca-LKMhm+(-hg!kZ~uq?eSp;Wct%cbnVRYI($jzuC@!0u03@7MYDPD{}Zvq2lZf z+L=ySBwAkPn0vcRCi-CWoT0p`s-J5TKin8sN_SnYV1hnU*DG%U+^>%Awl?@Onmfp> zj3Wj|dB~T7U0TL=fm?`?J=_tX6==ZB9Xc{g#s|Cqa%5@n2iv=%+cA)IQT3Opem>B= zw$6@CeLRPmeV$~H7(ho2Q`AzjB|~iSTDYFknsB%?Oocg(h{I4ksFzW^L#jCy6RsoZ z%~;tOXvPwtRJ5~2Le*T#@VCNDhMl2%$?A3WD`lXUrl$i+vj;_Nf&Fe)%~-AobTkE} z(cnDTBkOT%*Vfc?{A&(^xN|!zgchkpOk1cOBR$%r1^hIrF#RA2M^vDBb9W@FJzf+O z?cBoBq8K|+8U_;>Te<;o$HLuBQGcL&o4*vT(-I1EG?Nm)5b1?`AQQyK{V77 zYJz7%DU&+RG;J1h6-Pz%A!Uk=imnOUVUKeKPH2V`@_|9R>DuUGqST?C>)!TYJFIBm zmM$$D%9A0uj2k>;WbcGpjhohB9zq4zzW( z29&>AmPlmTL+4O#l8Ze~Sa@FA*@ShMj%Wl6j6Jb6dDYd8*$L(^ItLl-+2&X<>j>J; zsHpwnc+1W7A=r8{+vJ$g5XJOr0KZtqu7M_5#yPIwpwd{^Q0B*sYh4L$YfJl!I2?WA zjI{>Mxz3Nl1N0mZNyl->to}f4(LHtIa{ST)Evt!$>#qGgCow#>lI&pe81+G#JmfTa zS18yN>u_sq@L&@axGMHU1ziX$>Sz+`VUxcnpcfhS;G+VKm;jk-N_)xdI~0M` zvD{@3wMRaRQ!KJ5CZ++#P@HlO=9tc#*_LQZH^dlj;&3~s9m65#>fp!UEYm8<0fRHP z2RhsRfhO$XU`lVV*+v6&V!{G01VH;rp<;)blU$wM#1`faD zMVwYZ70_diGw%mWBBMYfR)R&HM0};Rw1be)#&P7N`y;CVTu^&A@V^@%>1{z+@o2D3 zeCtE?ZdscsqmP9iPLD25fF;FRRb-r${?DHl@%M(&>W>*rTL& zC*z0T=1>cUgCNE)Q+*B!{pXr-y>*~cFcpo!aG2GrLyj8S3+ZcCj17UMDJd7t<)jr$ zI#DVwR2NgW(_lfhl#bY;hB>p{Vbm_t3SVQ3A8TnX7>6-c?~ODCI$F?yFaR{NAGL6C zUPXEXaD6a{G&f^5t=b#IvHn#WzzD9nvCSaW#5h`=Z4rZIsQtg>dNoY3S;gWy8FM)- zwTi8=9I`2#$sAo|MYme(K^V5y*2%7w9JgdbayZHca_JCydaEK^LS4O*7*nIT@f4D> zt(YSo%$s^JA;w&?1H)*YF>;vV2Di~s6OSZeU9rL}f`Uae4aVYWOo436r_&BJQ`cR1 zv)UQ&fl~)C?<3&4h)#WoX%u`RnMOfj+BsE@D9BegWw(Sneya^17H=+k5ne+L%!DFgvRuTFv z1`qCWEGen!H+xVvKe5U1Aq)ssvuHpDUP~cgvAjpwXF~(2hnICi= zes+Qdq!r_Tw6y#nLvA>u#SW6K*2(f!n+3QowP;TCa5Q!<)(Vo7^ps1x!wWwsv>w?nnnw z_>fgk)y5ao58hhhgTRot;wXw{ucQq8nRN$FX2@iMbBSkoN6v)hNT%=N7<7j*yh&Se zIau1v_U!0mCCuJr-T9#NZ*FqL%^&j-i#l}V${s;G7gW?ky)7k#&)wg)j@-7 z;_-!WFoKO`R84!9D7Rd%AnW;1Td*an^m3>)GMDr@vBY9?7}G(q7qO)>phQb#GtO$rc8T&Y!Hx@#opH-T zNMZ}+ve+Q2b+U{n!#d`H>@iddE(Z5eK}KrZ9&32$^C1m_S<}Jt4Ln7>H3E~=&MhI1 zs115~tyGrRumwX?jMcT+^uu0DJm`2|XY+6&wUiN1@Nr&h9p@`FPDm}wa8q!xzZ zrmK?+=S^FjEk{}HvKJd`>#NrugMP_VIarj$GC?%d6Vz*e=n{R$oB=zxJr$Kr4qY-z zNZ@v$^&#j(DHb3DZRYS8W=(oFHP|}dJiXxzn`aAr0Ee9t!{|n{j@2(cgWyl^0}mq+Zq8(Yj&uYT(3%u2900Ik!93}9rm-=ypj9ga(TNXEMc?rN;T zjA(#GDRXuq?yLm(iIWaZeQenwLLXDC62@`SeVZ9=XvLhF5tlKWoki98^Nr3z9nnc4 zEe?dxSS3SFY!4R}2ivbrty{oFs7>|6JQUa_{>E?HKm*!ARuZwzUa42msn3J$5f9)! zLV(+w1KZ&@M7U$B{T5ldHuHQf0dCkpLR&bp=}=$Ez#-h(Xa7p!yl6Do&X%)x*XgI& za~_WT(w*X$+_dh*N!C79C}j<*BC?LWsk2jW9O&_AfN6n8QxaVM~2iSYvJn*5F!>|wSb^6=}_LRsH z8;7PEOrk>#G_SV(j2^qvJuR`?AEH2+2H7RDEoCPPWkStq6EMbdo4luwKqHm5jRc|g zxMagyVFjs$`wSS(aJotPm-RL~OAFM4Loh?v2hNqfx=`L^D;7*82L&$K>i$Q8h#STz zy^7m^&kR~RGY?-delqo8ozQ`iglk;A>>x0CFf=>+oZK;bd1Mah(h}27{S>;4Rs!21 zVrD2+*~jM*5#yt1?r5oS93jZ%3dYFdwKTlFIC@x)qxc1)!Lycjw|6au0^#HbHpJ=i z!?jUOoW$zg1gR)j&DJi%d4vXRRNzMXRrv38!w_rOu*v6g;bBR&RcCik1cA*sO zJpEfu8gr1tOWbi;pv0hvs$o&m*~P+=WJlE5KaZ_mam$OoX-6+7KaL;5z$`iW73U{` zAi=?sf!Z7{`x56!TO+bhJ)ug zM9|#X?QA014Km2ULhH|UVx*IFFwGVFp<^yu@aRF4v=_ zy<341+aQj3n}-79GA(9}W-RE!F-;6$`Z9s;PJsrQyvfF97Y=diSqp|V_~h`PIhVrW zyFRO4#*;+>WNnweRK!Woc&BXc*2}^i_`bE`O-KOLi*J%?{y-n*B&| z2B18BPA0OQ#RkH~3c^#Ri@+`k2ZkmoCJW9q4rP)2^vh@$u;wD$U2!W^dgBCLQtBDM z;0UJm_EyL+TG$gJgzjGv#yCY(5$3uSMi|i8dK;@+_e&Oby%9sENbfoZM`>4 z#35yk?ujLu%-M~Mp>eJ=`VnIE30SP5hJ5R4rJ zu=|7J9KrZohi)d@#X&%Dcqt5+Ze_3GH!*iU1*_SE$BeXL0pZV#X zA6dbYJ|^o4+?U}h7}g$T?ap+QfttlEDcNqcC@f?mw!&#;n!?~#EN(SQyYs5XEWeV& zlPWe^(~b==0hX-vMGa^j8VC}d1q&!g!R2xuu826xXDE4{e=V~YR$#P2J`m%?A7bp2 zAxcJ0T)4EI=Qw}(Fq1=!M>&3)HME<0E{N=4Nn2Yw?XXqz+l=zE2BBkV-XGU9LEPSM~V+i0eC6|OljYv|1sCt zDbMPaYw?40As$zVtvd2h7KDJR^*K()MJ+i_M(&zJVU9IHC0kjBn$uvE3`5kzl?BEg z4!id1MBHe3sBU8K=L{xFY>Ug$>IT2P+GU@$9$+P^T(>?rkC`LA5~ugwOnu|F-O8wz zlyTg2TMnwS$!ry;DUt&<^>X&DT8_Rs8quy#dSW))iz{*i3Ey$_W3GdNpZ|b&b)mf&0I?XB*nSSe@JT|1yq;ez6xy=^KC-Fe4bXL9a?HqNKu7<#Y;%G<q|f`%0>N^$bkZ}hPuW9j;D1x0 zrF8mHu(drLB7?Y4%7frIwp_dVxV$AZX5`^T8F{6}C9{i5N@wLw!!_`5kYjvsdY-Sn z5pM+ZzW) zF?C0j{UpS5I2sKhgxl;#^(PIY+lmc0 zn3;4&bS^BT4fPz2tC#k2apJOq_Kf{J;?UzjT%t(S33PO#H? z)3=(ii^}y^R#>}tGS+cdT_y@k_4>AU{*HqdEQ);yF5SPV1x5OEQc3Gt2 zu`CBX;>D3y?)r)eG!htKEx;%Wm*g9aztD%@gJlk5yaWxiPW4%BH?Md=6U6Q%&YP#= zCUWa}uXmlZSXH-ref7$^rG`g)--k`EM|aEt<&+NiiaBTExiO;eLdC#a$EC#sj^FX! z3Xaf09p%BNu5`sYE9!IHm&zrk(Y{p<^U@l?R==EP$N3F(m5xm~breq|Zi5^+5m_9f zg=Gq&Z*FjcDjz8N=H#kpIZjhkU>rJG}|Cb1)F-<~!Icf-k{KIaJABnLvw zW`u$U;0hEy<%sOr;sm@_27ArXOo+{k3=Gno0_JLzP&;!^)xin4y#}y&W%cS6uy^*r z%I-`v&5GH}cXkl=9mTF16Q3j`t0OA zNqaqCai7EdClg`*_5iZ%@tos67x?O|7p-U(3iy9JU7lSDK(@)^tejXam!KAi zt0p4A_kk%ZAHk#wU$sh3OQ}w^hPcw)8P;&mC~LHpYaQhp;~wvsXsN=;_I3=^fH-j_ zu+}iw9Eg9!Qa|P*W|Y@y`p3u>F_R<8Q-xRu;8k>0hzlUWLO7dPK;gMT8SHc}vQnb$ zVjzkolE&^Ri`f*$1OYBezd!mh_Mb<6@P!>Fbj#1~#bVqFFGh^}bIb3i#v(ayH$2Ve%UsmKsSC0 zp>GQQCPM7btwto2hhJTY`*X+DjL~l8O~{YGd=mR}t5FI0jS_nL;refs{5XUCgkM{U z1rc(~FB!z5+<04aU;g9Y-c0(j3FVCydcOQ$|BaRRJIf0jC8AD^0gSa*oy-?vK7S%V z{E@HNpIaTBz|YY!BtmXAA%UL>3HV6~&yy4Ki=QK%7pwY zW5j~5O31$|A^)lb`gsY@^Aqx)pMYPOkpIGj{1+zBS0_9#PRM_80)A;i{!4{^rbD&V z2{GVS%MzYz6Y{T3z$fbK@&x?Kgy&TW&ubE%`~0R0_-RPMJFlddc(>Xh{Kc$h%u@BK{=M|% zb5mRfd~Qp4J{!;Eg8gtfYPUZD|J{V=hZ3HDfoG4^S9}znCCr+o2X`}b#YBfeojbuzN`;@v3fKC|EoUu*(%MW z%hUN+sX2X~7pl$XxmfsLikA~RZ}6TRRg;@l;mRe&{DSYca!Dz_X7Q_xU$gmD&aVot zSRQ)SC3e?=FV4b_5*LH8C(B(gKi|vU6)tvi>bID|J6Levu;6Ph?ZiiH>c)2Wz*)-4 zLSe4oN`}pK|8)klg3Kd2|K)8UCjD>T`3j!;ZsQ*AK|by-$khht%{@}-zI8KKANphB zRyDvugR@!JpVD4;AlZ@L1s?Fd2m`hPC}kOEU}W4Oc`asaHYZ-d)W;kLc){*L-u-01 zGH-xdYks)IVY76Y%L?Xz{C^=W`=W|)GeBtrtpu=D277_!p!p0iEk8&l2bu~WgnZzs zXTPbU_|d0!;Kxy6i^jL(3x5T8MZ5fU>fcsL!vHlA5oufXI`gSvjV`bquZaFtm;&Pn z7Vt+__=oiL_S1Tl$}^B_&}sP1D0+!$+wcqX=9ykp+IFQD5q9B+9|=!Wirz#ToLAaz z=Ch9Qbp4wy9AX#I%Bh52s2YjAvApIhTubudj zUPH(E2=k{mLw`@UMWC;2-j*NSHrZm3$>X`UMS&tEDZ^E5w)l*j+od{9aF_y4p!sLcF36d%yPKKg;@FST7(Yc?D{&Wh>jG@#O; zR8(ch-mtUr4}2#BxX}68e_R3mgOP+>%^=Jr^ecFifT!yI#CXng2{{WRTyEgYmVW+? zf$tjlF9Sa{aI{O)jW@8wzzPGG8@SfMO$N3bxYxk*4ZOv`I}Ci*z?TfWtR1IHNng@I{9G=7|c z(+!+$V6}m@2Ko&Q8o1lQa}B)N!0#FOq=7FR_?m&A82E*Oqti4WlMO64aEXCy3_Q`m zO$J5`Jk!AQ4ZO<08w|YDzy}O`+Q8QgeAB@94gADF3%&;RC(XcY1E(73GjOSa%MCo) zz$OEG4BTPh23~F80R!(h@D~RD)4)tPz|@-@17{jI z%fJ-|)*HClz^w+JXW+#K-eTaL20mrr3kLql!1oMH8llV2FmSSgGYni};Bo^S4GbB0 zj)7k_@MZ(=Fz`_WpE2>;8+7E893L##RmEfY%%aW18+C*83SK5@NEPC zW?%{&63RQvz zyn(M6_zHtH}F3O{vYhU2Y6J~`v1H4 zl+2_~XdysICItvBnIsT8q%l+>Btan{>5xcBLW&dxB1N%NtiTcM9xDVa=NuL6*bzPI zQPBvBC>B8A1W>u(@7nK9CaC9k?tOmuxzBx`|JFU9^{(}RJSg^hlJk=gWQJwPQu~BbYY3`GT{xvjlw5|&k7F-zY_*Ui+$l> z;Yi^eVVUp-;YQ(;!e@n_3%?dRVhsBs!v4Z!;Y?wnaJ}#j;giB=g@=US346pE_M?Rf z!pXv1VWDujaE)+-@DbrI;d8>*g!_db3BMHnAUq?qpVYcvMVU@66 zc!O|*aJ%q5;Q`?x;kUw{gr|h(gnBQ-FQ?EY3={Sg#tHiilZC^D8Nvy|Y~dxsLSdz_ zR=8NWT)0|zop7D-PT~E+M}#|sPYa(DzAD@={8;$8@GIdD!qY-)Z=*e2LXU8=Fkg7N zaJ6uw@E+j~;U3|;!q0_22+s-q`xxbh3;PR)3C9Vi3s(sr75-fqA8*)65)KjO2@8dD zg{y?u3Lg+YA$&&oyzo=um%^Wfw!TKW!NShM0m7leF~UoPbA*=*R|u~aZV=und`kF| z@MGa2;g7=Kgkk**zhZ?0goA~ng=2-q!V2Nl!VSW|2pPPjz4UU-M_e&O@Nmxb>Mn}y#9PYQn(1`RO$>L}!U$6UWW z!fC=wgr&kd;S%B1!mYylg-yaYg$IS-3Qr5q3quAP<@Xd07LF565nduJ6jlh=2sa4t z6mApVFML?|wD4Ks>%w=0p9-6WKL}30hyDC0rcQy4Ey5sns45atOBgqH~$gpI=W z!Y#rFg*%12h5Lo)g@GQ!uUKKCaD;H2FjrV0oG-jtxLLSUxLa6}WZ174UN77xd{X#^ z@C)HdVdrEce~R!T;X>g$;S<6Sgx?B(6Z)qZb|Qs|!Ytt&VYP6L@UOyM!q^bDZ(7#<-&EsCxovH4+(!2b{%2ZNfH(c8-%wAcMA6l ze-Va_H1ekkrwi+a8--26*Mx_K_EARuIANx6rm$Lgt?*vqbHa~=r-k}x!(Ny$MwlQR zF7yg>gmZ+Y!YhRTkY5#dk5pmd}BPC}1x zh%iq$OSo9LLbyeEuW*m>HQ^V+Bf=BH^TOZ^qx|l|KEgr55yD(yzHpInx$rjOUxZHz zpA~)}{8ZQ?JTL5;Y4{N-93jjQ76|7GR|&5ZJ}7)#_@;2b@F(GEVMvxyURPnXaG-Fg zFjF{1I8#_6tQIa6t`V*iZWi7z+#!5c_?mFP@PP2RFmSBlX9r<-;Q-+{;ZosM!mEWh z2_F*vO*q0 zDSS!zy6_$02SR>G&cak- zy6_@lxp1BEA>p&a*Mvuf)=7rld|`?3R^cAuA)$4$p&umdA{;CnEu1AR6<#I0SNNvz zu<$2g&_#y*F2ZzSfpC%VU&4P2wJAovKw)oTqHwHmig2c|TDVxaO1M?{s_@M+;Y z!jFVUg(ro-3WIZu^1_7ugd@mEO`A%>&r3-7Gh5`jBF`7OLFDBm^4%u#W|4OY-;nrs zMLr-rE%E0>_Rlr!#E>YrkH|^F;lfPeCBi~sgYae&{@)?ISGZI7G}%Yf-XT%WN5W>| z*OLC5uz#LmZ;)_|aH23@IENgdX$>UoE*D-STqnGfgkF=#PmBD5@Dt%#VaRktKStPJ zI6`0K*kQleGi2N>zeD6#AA&EaC@%-}!rgsyj2uBLX3a1D! z5f%#TgsX-3kT?UsNy5)hgkO;G^IMUBB;jX=OANj4B=RMQJVZEB;wK8{Nc=ourNmz$ zTtUL_&60kL#6K#0MfipAi14`ZtT1?n;ZLM+B#ARm8Hsw;3zv|n*D8_Mk|_TXk#~{E zw^!u%gda-$SHc#F*JnZ>_WelY>muw%!fszlPmp-8ut2y(xKen%@D|~N!e@m0NbIF& zNR;c$HyBK!UR_0wAW{Apk;jwBH(TT~;bjuPSa^fP-zwZB@qZOQM#AoMlK!H^eNh%lRkz1hNY z;Zor`;U?jI!pDWr2wxPwCHzqMsqhz}bB@LL8 zsnR{dF=SUw!()IVj$4Z8Dn+=Xh^i~rkdemsj>#)TULjmByj8eGxJ~$=@Dbs2!WV>l zg>MPp7k(uCR``SP7a{+!i2k^QorL%y6}4aW77i393DbmGLjKJa_qVCSIl^LLg>ZrJ zN)nCQD7;2^y>Nr@HsSrkzY4btcM177U9`7b_@3~e!q0@w!f%8}g}(}Qi($tp3=(z{ zb`|y&4it_gv2Udb#|bA1bA%TQ%Y~J~I^iPWa^XthEy6p5TZQ)u9~P?b;lhtSBEKwD z-^)e(yCQ!sJShBD_=E7@!gIo4E9y5A`=c;i7$J-m_7M&fjuK`G#|x(lbA@HX3So_~ zUU-FYg>b#_R^b-mHsKS(ox+!d>U+Yd$A=<+BK%JHqwrUujs=4Cb_#=pVZ!dh0b~X~ zcM=W}ju2)Dy}}v7*}@XxJYkivR=8TYR(P{;qi~b(F5!0JF5y3fyM^xv_X`gS4+~ET z&j|goR7@M2-Uut-=YTqIQA(}w;^k*^lsC|obR zSNNdtabc72Z^Gw(ZwhKE8!-es}0m2c&F+#6!qA*W5L#VzV zj?JTrGN`^M4lWV7QMg)on{boxZsGmHM}^ykFA853zAb!D__6Ra;g3S~{d4%CzJCt> zD)H)j=#WDlhQD2fJ%qi4eT5@PoDaqby~2sYX~OBkQenBUT39DsDZE;Eqj0?tZfX{s zkwQuIVK|9R-c5GIb2y3pTkYrA|AtcTqiJa*_7My@wVr2_nEyBqYaIWDBofO>)L-rE zs24BV$8=G23WJ2Ie5}6_ltH&JPN@7q{2-B)Kaf$h(pUaKm`oWo{bJFS3x%aZ2|p&$UY`k@gU;x^ zr#uqvFU%&UJ-X-BrloNzMi%9sfk3{+E?=Dd8B7evzuQS^ZgCd+nd2u4glPGtF$g@e5UoLVb z2|regyq1JN4~hIJ3BO(zc`ph7z7qKe2|rbTm0}*U-tbqoH)Pe`@LRPPWYu2dQ6BXm zuO(5BM@8OFqCWrawZv)sO_ixX2!T-CtmoCZZE|0zmxXv!@7n*MM^{X}>;Hous?w@= z!++4L_tCr2N3RFMsJi-lF+lYPXdScQu{EA7gM7U<9BvOz0X^WRx?mC2h z%Wd>2H%RoD?=)`TdfW$@W5K*kd#@wH*WNnVV|_VZLU5b)_#R=}Gwbm&!Yt3cOncp+ za@bsW$S(+31w!x^Gyrv1o7pNlqlRU3M( z?R*SzET1ndKfvyl*|yK4}}Le8#69^NmM=P;G5zuHQ2t zo0n;?GxU7zWy79Xj|eE6_C||6vmUIM?`4X$hF)tus7HTji zQm)w_FT8f&}iGN#}NqGkj=}q$LCJp{x}AE)Z@77jhlM3H%;uB^%!afkj9H;@mgc( zwbp}r%uidq%yO@~pxm@i+s0L2(PO?ADc4WRO9NNakX)v{Coiy<4SS2B!+P|`ZPtU& zsr1z%_V}Fddztk}LI#9u_&x$J>d_zC;$@aQ5CPxz+v`)01kq!@orXQltjAlhx0;6J zGVRq|VDDp}dU&8qJ=*�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

HW?)TWdbZPz)W~EluQ2Pc znyT8Wn&ujw5tX1rsKX(N)M5-YqXLQ+&ASxiePJ~wSc?-BMiQq1a6kg#%+W2DkVl;! zt@>s*7}LJ=^cNVKTq7aVK}DJ2>u7`Dtf|Y7aRjd@u5Jt&!d)#b?EF!I79!0}kMfJN zvL#N)x~FO-mqkrgSQp6>bMlP&-{Mfmvoi zMAXK5u7_qEQ)6vZjkS2CYOGud|H0NIE29wGrefEmz;?kB3bf9a!-p*Eovn->K*BX9 z=U5;x>gt^ocCR(2jkQ+jIvHJ@&KT|B#*#`N9O^zcN0x~B zRV%Hmj9{xJNv^=HWw{uMreR3JIEU7z+Hs?q?2fw8z^rLD8mQO`y==h}9o-6w)Eb^` zS4Kq^YF;(U3^+9%) zs5$DYLwd*22FAc)hCX&KpQKM0a+@nE${VJuG3}W9yq=)g=ebp`Y|zbBEgvc{5V@vK zy_XGICu2v#B@&vY-r&R2`fgM;2h|UdQZ0_lRf=`h)mCPf=~Z)i0FRNns!6Ru%o<}l zW^w2E4n41`Y8FqkoDE~kd4|1MS%;GbwfJ721IM(h@yA2EW5=a%c9_}q3aflF6UUl^kOqWu}IXCyU_|R zlESj8B^-pL*US1m-0+K;qoKMSgMMpg5?oe{woWT7tE<6%RXtGUS2bXy;^>XRs-ljq z=Z}Z~;yJPbk|pH0X|pDcv%+OrWs8kVdO+)IMj1j?zvl8st>1!IEF4u-`&>4?cqOWH zyjt1K9?^P^5dr5fe`*rcE4EB?uIOz4(YaOYt*OVEU=@aBH6Ez>$dR$+W{xaD1FKc1 zmR+NeYMdM(ptgcHy6C~el%ug;3A#2KsujArq;nRerkwDn8m7!!ny3=HY>t}3OlKQ6ZN|Lm#1^$&T&*&z)jpV8_&@>U zV1mnb)j0H2g#cAJ;TFQG6RW+S5<&Sk)v2Sq`jUoa>J$pyK!q;TP|d*8>u?)i9nci2 zBI3k~{%tlZ<60kkTUqX*+m|=V?M7!5RcriXEBK*$e#Y`jdQs@8Nb}5y8QcraoXjav z&ciW!8rjfkjZ=7iYLJ@{SU9j_ zpe`!$9Dy@1&zm(11G95*pl_d|KW1hJXBy){V@Y!bsY1xb4ljz&_K6lIpJv0l6gyY zTz5X$?@GB$pis?RgGm_T^~!mVy4msk7R0j^o*vFKY1GVIcf}(O)G6c zJ95hQw9FyyW-u8ueQ*(JTX-5!%ZAqKjN4)%%h||TytLE{jZ%Uwd6u#pZCc$2TkhIY zw7fYO-deSCGAI4)`_8zk4gwp?%hfQb))39im)If=B6u65mp&*pYvTCvIsO!!j`wf< zXq=BC@G-&P;qY?T>I8fvkdN0H$4BJGCA3@XJKwv`bD16V2pu06%uPr+FLrIr`O)j5 zE{I$oaiQ-b@5PkkBX`F2hG$$t^jd^ZkA3Co1S>Z#D2?IZ=epA1BZS8Bkv)m4>@?wg zywNSkMgGb zIKDfNt}-bw&dVZ|kBWTh1@ zo|ZWxxOM9r$Wtq31@BO>`AEZ5C<>~|R{mcVIOz@xNf(3e)TWSBx#tOI^D)P5#pFK~ zUo3X!#@5aTFodfK0sU?h! z#}X^Ng~uAx*k`ss&WS~9GfEgMk3DX9TmM{qvDmqn&|+z7?sv4b^cdoVweT3@8Ouz5 zLM(GF$-|g-43Wayc8n2?apu-l%kCVuBRgxC@bckJI(iz6W2`Y}YT-IB*C=5M>JOuY zx9OOo8M90VTK3kX7gBin@CF?{4Obx@%d;9S%juY6g|+OMW17-3qhYw+WlO`3x)}{W z*&aPgi^;v!!~XEvTNiJkIjhyhba>TAk#C_p>OKJ`!2{^F97hH|XmsZodE)Y45B zJkL(UsW=~YveIht1X&sm3h)FOo+xu`QICr0>AkoK&xn;YHzAppj_;fq=d%v~Zu~^N zx8Np0t2ZE=FfU(EaXByE!Eo(Z3mp!N)FMN9ALudwfO3Az6|9dZHUa0w zOQOLR@gyVQyy_KcH{Cx(AK$_bI4?ek9jtF)fC-=1N)4gYLiDAD@H0a6@z5pUyg|Qg zPyK^K^zkzc0q4c9h6md>B*28vYYhvbhll9n30=T>@d1foeLO7-IIlG_K)~mpA@2RQV4%?2t6f4-;@ykv=Dv4 zt<`Hy50Re{qHjhBe^!XTSt0zO?^K{Z3PSW1gvieg(Kk1QAM|M;=$jv+Z+?jU!VrB6 zL->nA=*1!W7KiXp4$*gV2>+B2`qU78r-ty0Li81d@JmAI(hz;6A^h?XedQtiB_VWW zh`!1Y{?ZVAOGEh8A#_cMzM2qzU5LKA5dLW)bVG_*&*~f%AUZicy0(klwK3UUu(Hjq@F8X5~T0P#reNCt`3;L-vJs&{`-ai zlI9orDbJCz1O81TA&&exA@mxN=giar^Dlo*%s9$_9YTL6@?5!a_V;^?v`)VUG^1oF zezJ8%2>(^#^US{k=D+WR?ycy7RwvgIjOot=O?@2MJ3wng2>*YCuk9aVy%oZ5@6++M zy*bt}(8f{!O5t~azk@Z#x;BLWmhd^xbigO-4hzkdMh9yWzvZdy)B2}beTC*dkq-Et z+ytR{52FJ<;Z+gDUuaz##6Q`3L}*=pMb;;vjibFikr2y6mtVOxNocKqsZ~Tn#8G~u z@EP2}s3U*1Fg6L&uP;tejyAM0I%!a{Zbrcl34QdnAFkLQ>(c>mLE z)q)>2a31b*_MR=z7@foM3iZJIf9n+qXY(2E+)<~An+Edg37!uyPmgNxa8I5{B;?k~ zP0PbTCpVBX=aH0ZUExt5tmi|`IND*F<`DP~kM9c?{}&%lMAbSE$ppWS8F-WcGA64y z57#+GIhbeOj+#NfVtNcOd_u@8jwWy<=M?%ab^hbw?E{)+2(}H@`|LvVeq+#kPd>XC;yVjm} zM$wpxEYUAL2hN*XZ-P#F2ZUV*V6e+PFx^6@Bi70zkDM9@m^t+le03dk?4=Avc)Ugn z;rM)q6?-}7OyCCn>82#mbORVj2RTNGy;6VdF!n0T@(Z0tybOQf2AE?EqxWk4%t-7t z!Z({(@VQ({x=zBAH8LHpH)1i#bDb1>gYf$W_*`$q;*%s)UZ_$C(Ru? zu|Tj;uuPDql26l!=LxPCL{n7ZY*OU2N{HJ9|0ehk!B+*}5`0&1zu*so{}IIJMU=ia zg53oB2&M^+5X=*tDY#g$T(Dm748e7RR|swvyhHGQ!6yX&A^5r=e?g4-{X&rY8`5|P zO<^o5l5}T5?srHJ6dWozQLsSp6v0ZtCc!m={Pj!f*(LarAb-D$;fDl&6^zEdhT+^F z5&eRL1ZN4JEZ8KtMsNTcD&q|ioGQ3LuvD;4@C?BV1g{d@B6yGB!-7u$v?ETiy?=4{Fkf(yV4+}x;7Y;E1+NyoSMUMBJ%Vouek=HsAbz+(+0#>Sgy0y#lLboz&lWsi z@J7Mg1RodNE%>S6zXg91jKH_BSPtz369tn6XA7PpSSi>jxJvLYLH=wG^*tiE850X> z{?ZTefFM7LMLJOsk7O!(qF}M$I>DO+|0ejB-~quO1QX-6o-u-jf)@(jD)@-tJA&T| zwrQi|4-%XuxK!{$!CM8N5PVzkuwWeKZ00XVaHb$X($8@I_!x1k;9G)+1moLkepkVv zg7XCVOEipsmEfI%&k24e7|~A4^%cw!6TCujv*7K5_X|ED_z%I?1wRn{T=0M;*VrAbyKP=}QyL5zH4X6s!?kE_kls zWrF;jXWDhU;QfM63ceutmf**N2L*o?jKso*dO8Ru3G(NR7(P^Ro?xk9wcrZD^8~LD zyg~4G!TSZD6x=KLq2T9&-wARd#Ps6@`P<{9vjoQpP7<6eSSYwuaJk@S!3PDOBw`MD zS?ITk=UUc#LVqUo0inMa`e))={QgfDE#E~jkqG zgx({9d@!HC|I(I-@a{zDO%ggq=u{%o$&&Dq5Rn_$;Ogu}ih!G6RcSVs#z zmI%EQgq|hzJR;;ymGCMF=P!g)-zuTcB0}zB3BN|dH%a(?g3k!PCAgmmJqHDUAm-pb z2((p(wMOYlQ~LjRM9_#X)UmGHk8nh!>iA4Nod5(K*tm*BV9gw7yBZis}Bmhj0E z&ff@P`~`xA#AYl<=p7ensfliAe8z zLCX&s_CyJ`C7y=`4=PgwUgfo-FhXBGR8D;ipP?snE4THxi-$GQsPGf0N*y z#O0Rtu+Y1SNdGwr-y`AgO87nrKOo`X2>whw1HWB}IfnV`M1-F1M1=R2@Kg!UlJHRy zK1pzqV42|Ag6jpZ5WGR~R>7@;4+%ag_>|!Df*%WhEBKRObZ>2Uf?%@XP{EOcQw1vp zYX#30Trap;@D{-xf)5M6D)^@0r-EM!dirR4q6Phe{RBq~<_RtkJVnrg<9g927$?|P z5X%Y0$8e|+(G;E_m??;Q(+5wYG?=aj%Qq1AaM=oLbrA$YFfI>Ac?`FscU z+$wm7;C+G*2tFqGq~J4x&kODqd{a=JgF^4;LaXyo(0pEm>EVmf3L^#8xhTTB2|Z9S zU2rN9orlkp5a$an7AzJl7pxYn7d)GojPrBBiv%wdyh-pj!FvSn6Z|`|pJhEG_>$lr z!4CyL5&Tl{py2m{KM8sCt2g2{r%3#JPW7R(jQ7o09QTX3P^$$}MvO9fX6 zo+)^~;Dv%41UCw95>)5Mu=_sJShqhQ_?Y06g3ky(FR0FyA^(QZp9re+WrQCT`WwNY z1pgx#g|U_CsdHx_e&ANoNrJ}2Maw+Fkf(rV1eL#!BYf_1uF%s1y>WXzgQ!9 zf#Ai0R|;Mu_!q&O1@95OPw+`12K(KD&kMdR_=ey+f?o1PAb7Fhje@rbK1syBX1Cz;f-eic zA^48qhk~C7enT8%Sw9H=N6?Pa;T;9L3aa}8knb&YHZc#+*$Ivj94|OsaJJw=!IK4R z1=aln=vgK7nSvJxUMzS65&N4P1^+5|m!P`80RF>5KPk9d@C_pNH}433DENus*Mf%y zj|l!Mn85o4*w=Ir>@L_#FrA2f%V5DALG`mh2%jYMG{HH73k0i(*ss(GHVLj2JXdg? z;H83B2;NF8v8+1;w+Y@asP2P+zf0)n1YZ<vW+$7p$V-vsfx zlE%J4-8TXD7P_Bcs$izziGpJUX9yMuE)rDtTcEE@Xm#HObc4{#1?N2iIGBii+AzV{vlpJpTc!y3i((sVMdtVeS zG_s?Kfuj9_eFakl2MJ~fW($rLL>5&1NrKY^VY*uHpDb7;SSDC0h%6|%m4d4U z*9fi^ROJEVHwvxF1@va2?$l|L}c zV;wDcMDSO^Xzo8y5AlNS1Um`(iD*x1{{=MruR#n)J~D`~H(PKx5%!K0982tJS?W0t z;3U$?mU>Q|sP<`Se`=owTu46J;mLwUMC7kbu#$-NMYUi(5$&@{a3vA#bhY3bVxDEK z6B`-wz5tLPR@%TyPf=<^Qzc zKZq#rmjw3^(f;2Me20jB@Sfm^v4e5MjnE=5F?$7&+V;W8rfzm1(h21cyy#3mdLrDN z?su+y#EBf^T%+{`>KAlxDiUY%adL=0-&);wnGZbT;*`rJqR+&e58CYv`K*?6^05#! z?V&C@lMkMox%1Hz>9zx(=@Kc&cs%E#Zq^Z95s2a1tNt2$ehtw#2>Sexpgs&Uj=nU} zXX0`EcRNEa)pAZgC`Ws!i_YYu0&?zrOmpRtdy=ln$4$`Jmx{z0du|EQcd|<# zhDRqKuZcbrkK>2i88RLn7k(!nl%qY=MQ8HC=MUZasCK2>L*y9mT&>TkkC&j& zJ-H$JRzn}-vpz7aJNZ~C`b@mnjNy=>Gvp&$&dCSIN9v<4I+KqFL(*OA%Exgc$9RJf zfx3B?tDywzTOBo&X_R}a&CQZKwmcqt;2=s z-_bWu^qF|<&u(Y(aiNxT@=*;r+CyD*w2$umkaWLt(kfAgA=!FE~ck;0va?FQm)6_@T9dhpS>v?{lJ_dtt z(p{_dIqm8Z=)(I^qF`Z58ck>W1E(9@0At1nA^N64AJbiji}h#pC5S!~?@Qx>44uixBrWIU z<15HfpJ@vwA9;{-*T-B}K1M;_q`M;|AKyWrnTwdNG2^TdePynEV0r84yF>Juc)ZWz zb|xQO_rvexgYyLQL0xnvAAH`~osVi)K5|8l@jBvEwy9v5)%`w|%Q!_T@v?lrzsK-S%ZeALl>gj6J0yXXqKN*msqdbL^WX z_DvFn#=grT=eF+>mwi(pYwUYo(lu>(A@mtPRT_JCikzWOZNXZ>yGb?As{z%@v)-zB?g@|Bii+yX>2f zaAV(oN!Qr78T!JN-}@qG?AzXoecfVJeK__}j^(#7#J*0DbKCcl%f7`f`xa?^PMhPp zEL{1`6ggwxv#r>7S%`iA5c^IJvG1Y~``&ZecdE-ip0B#w-yY~Qb0Ae3d!7%`_mxXu zkxSoiA^C6`9F@VDacGoI*C}Vpv7C!21ZUd82*|n1`BzuEr6R|8kA&nS8VUwbkvNl& zl_C1#*9GSDa>$x?wN3Pycv;3E(P#2;P|G>_$c7y4p)NWT?aPpKd%DuC6gkG5A0J#F zBcUK%d*Qp8?s6FfeT)yVmb&y!6MZHhQ;b27p)>hdspXt}Op|<27oCaL6q0VXD<3>t zpd9UZL(+|epKdM~#!uSVb5n@EJm@p|sDqr*_k!p%@whK=JCl#!w49R<-mj-V>Y_8z zehx`@nkyd-BFA`H*oYh5j9&%?)qUvG&hXM8=dO>Fp|2YTB7ph|3)7{((INWwoM2hA zBeX95HTw8|jqx))ITdAyHe{UPO$$l4=?0AT$Q#pLfy<;@7^1Hki@tY^GN93SQi#5% zZ`b!8sE^M=8GQ{Q`lgS-vnfW2OJ8k>zDw>vf5R9w)hf{J3#o-i%nwv8s1b&Astnatyv%7Tb&m1c@H&ni%SuH!k!^Sp?$c{bA> z7uTJnlX3OI)mP|#z!Y5lh34L97%uL64m}iqLgD!Lk968+AHXwRecR+;o!eoLcUf(Z z@4vE_zPreKz!!h&5no19-sZ2Z)8E3CfAE6Sp9Oxo-YN`N!w|{^M`I$NQ~cqQAA0d*|N`?HS9SKH!Oe4LWu$v<}z_ zD;E~!-3V&W*Va;M|M)AL+B4((f429D&kvoW^>1BM|4^HxnTIT|FW*}<^UL!i#}}Pf z6usx6!)s>RuQQd5eEzlerQ}YXWtd6V(56OH}t8@$iE@i-a}s6c2$}? zOHiQGaOL7+8=%|1H5K{VzP-n^$ow|Sjy{#?$_A^CeU){^M>{%Csm!rOi z{fl!whvPlIJq1VNOf>{Nu_t#tyKj*<{TMdUD@svRRbSY_O9~h zzkI}6Gbg{G$Cd4c*e9gBBjHnoem>Z;uKdorg)1m!hyYwF~?L-M-u z^LT4Gdg1ni(HGs&!|LZbkn5pkGrwFH8+kZBKI%Yh+z#Z`pI=fr4%SES!aFfnP0iQ# zCs&qKmM&#JW1V~^SAAT0QvUmpyeQXuINlq*=YI6mIbVBEpLj6(^zp!N_QxFd#>5_u zkNs%EUgY1K_T1jVHw<)YeaQAFzVcj*{9n$w_i_Q;+|s_p8(hxZScUK@E}t#5SEnMIEmvHq+|NDL#ynXw&HAL2* z5A_#$aWq=*=jVBo@%I6%-;um`&^CtTU%34j`Z6N#n|UZBHcIuboP1k)&PLR*?{K`8 zlfS6Pg{lqRUi?{czmkfQ+eWH=LlPcffPl|o}I4+G)d5qk2 z;*M_lUS)}QQ#ajb)i~no-7(*~+UUG>>Bp_;ymhH>@U11(*;jPFf27-*M^KItd&Vk# z`ft0T8ELoewTJjpZ``|NS)XOwru+vz*n6etmxv$Y(yVVTTyyKPXAj3mzni$J-JJ2` zC$xQie7@DY>yDhF(~BM}vQLaU93S=L-jZeUeZ0R!_bDx1wr~4{K|3Q4M0+3TzIpls zxt`bW$sPMm&vWAamE&0ok@;^N$=HW>?tSA(_Acv$1oY=y4#(SI-Zdd6qP5B}HwR}REmYo?6LKQG$y z&lw-zyU(Gq<2}E4OMB#Z*wLXm+0ZJV#CY{5qnH)iXRr3 zFXH?3EA{>oQU3Ii>@|Na#S9m>gAGz=9+(A3%b-%jX)u=ztczTb*P49fuiaUd%X>T!9fdZPg|RBY&CiQG5byc$>!i~^L*A}I-XLvt+Yxak z<44>u_~woc+E{{`{yL5-~ExskyONzBTad@Ahp= z%K!K?EA@%JcjiB}KL(>!q#CWPo%elft?8DUH}{w1?qlz{`|i8v&70R5IDq~BJuK7s zox$g$)i`!8!`yDmf}bD#&)!@9Hu1FnqcdwRK5=F8Cy%9me$M01uI@hixP84xu6k8+o;dFB#->4u=H>He}Db)cYe(swXNH8 zCsw`i!eeLj&Ut)DLFvdHUZqfGqYO?=SI>8s+D2<5rd8N7NgeM$R3blF{EvOV_{tHLkogeMLEb z|Fkrnzm1$;T3KGYtTC<9@>ezb@j-8Y`SSAG>Q(--s^wLURrm>Tf5|F8et5AEKOlx5 zr7cY353Qy2XCly%lQW+2%ggermQPq&T-ua^UmIJ}R5{4MY({epe>u64Nry?irmn2H zy1X&HxVfyVj=zXrTHc7?U|o{VU)e0j?>5(#@pn0!kR<%e(n|U3v|)^Btgpt8!s}G6 z$0BUm!uafgG4Nk94)1E-f-@u6-oWFFz>iE?-Wu#}+r7b+w$B%}vKyqMBj%Bc_MOuW zkJ=Pt?-AM9REC=s_hFG6)wV#xymu9K(hmwwZifaHU5-V&-C<75>;C|@pYS@=#E!*F zH|-~0dIfeW6Gy{4=}LIxo_`eHDfgvW*0m4%fw z5pzeW(mT*@RqwyPq~0;BEbHHh&>n(aam8;5uh+KPa*B^$d@J;JoEF{XEnufbG4CiW zrfc=shi2dTqAyeN@mgv)5$tgkQH7OwT_w0zrJ=CiCwHF1vD#jY z^0uNn=McTuq@cQXahuXJ2OIOYO%RNJ1-;DfTB>?hm&e(&ywBlHur5!~Fz>hNXeSHU z>^d&Saf03L z79@2g=pP{bD-9%NX>McDYr^dW<;USt+%5?eNi4e;a;uh|BBjT-YZP0ToYnRYXp6Z9 zLxCMpUC;O*m0%#KPhEip?9+&K849(F^9Qmsr^Al;1=}E-oNzs~owOCVT`A#DL}ARX zbw?!CMg5@wZiwGGld;=+{uj~v{0nV3zN2SeCp(aqe@D4K3($$OL{SCZ$F9GIaB-P} zOJlDkb=h$WF3(Z0VUdC>8Wmi5se-HSP_S{gf~((GaLqRguKkaK>v~^DW!L8`xS>M9 zrVR=<->u-roeFOHP{GYVE4ZZ-av#7HE>N)jGzB|0D7gP_1rI!};K2_RJak0C z|8&4kE2{g$;}kqHU%{iz3Le|2;BOBoc>H|@PyDFh?_D=B-tM6ao|>oN=_UowT&3XI zI~6?loPvLRrr`OA&5ZX#Uj;AbD0pd>f|r*ncxA1ES8r6X=Mg}30{+-NPKdt!R$^XE zGUgk*$Ap(q)iH-YVOT!jcnE1uUX!M=;(bEzSym1b^JFz!S{E9v5gq%6>e$#n3EQ>PHOf4xub0*M%wmVoNglEd?RD^|K}5k9c%wE)v_qhcU}S!b@KhsL>Es?uphy^ zX`wT`Oc{Ctf>!^?&mq&nj?dIGhr`LJBIsg2hXQBx&L}LchcXNkv-9it3qh2L_+0o|#W5$a-DD;4c&m;a4c5dJY|`U|5NQ z;g>1M`CW;eI8ad|7bqBYo`NxZ6pX!3LGJxZa{NCO z1=Bh!m_AOyj2ZY(p$MM$#EPn%gu*%(ceR?-kXog|&{tnza@ zNm~7y@=xmq|JjLaDf8D2@Sihf9sMt0&`&z|x<2%ukI5kEyuZ*NGY|C}pR|$pI6M75 z4>H#baJFU#HX2pp&k98_ho2ig_Djd3@5Q+<279DTrmoPDQlivS@Vd#LM6v z_A0U-`(?as9hZA1iX#2O#fbmVs8?`{4rJV=BSG%`0_L&-?uU-AamB9(&x#xV6qrw4 z|Egy4m6TXqn%UKU1kC3Wv54ZkD1FE%WUQ`BF=Zvacm(+!iolTp#*|_(UcG)R-nvEL zV#Da7G8uR9W^g|k{xHs@Ve)CYCG`qOV>5Pc5_;~Q1C$!xLNjWlq27rdK8?U0q*upaEIEz zVoW9XZE)UqxEVvof}3NH#c+g!DC+QV7`2NMOf7&!(i}VO6Rofag7qzht<uf-mQ4Rk$Z zu5#p*s;rkQAW~*`{SHw>iUq>+qGSoDQw5 zji~ITi|h*M@0eipv-G;~kMJ+E+u}~nV23|~eEt#sRrYmgymK7B8j<)%_}AKelDE;} zEBjUc`aj+q>2J0h(1$rGUr8Bd9{*SwZ4<%1%bs!^J^}~U-*D;H;>hT7$aw5a2yV4g zk;hjd^rjKC2CFgQK6_ZB9u%@)z_KyvG5aIT&a8g>H;DS$n#M3hv7fOA7YMr-SSg0B zd!knHl6}^rnqN4)w-sr(5ue-s zT@vM4h`;MZahix*`rr133q|@nNc!5D(p1uF1kslKVE0GURK?Q^LRpTW({kKuEzfzs zi}X}T&Ud6w3zS3$&)+b3D~)yFpY6!p(FZlIla51|OzQ2)8zdWy>mYQi5!AC-HaB@m z13Y(OVp+l3dmQ}dj7%3@^hzenGi)P9S<37K|9~T-+MU)j$}^>l=<%Tex5cGfm+Bi@ zX1a%;EmnF`;2G@5=*+3K7J1eeip(_d7dSG^oRuBVZeHQpd6OQOY<>=Mxseg}X`YWU zKeA8RmxFaR*=o=nT3%abC9U#!kpjD5_)+6k~q{);DCUp-;1~@ytrKtO;btb-*qYm&865{Vr*Xr#osy#U21w2H85cV&CbB z#0;)tPX=pdAojQch`qyeDSEOptrD!-0Q;+Aupjm8tQYnLU|kwu^QG#f-JXe<36%2N z!P**Nm$k*x;ziHq+fc0X4eXk#}-|)m|=^@zu6s#`;Y%af({^fc5F=2Z*1wvRFUc^~PAn2#g)ITKTl zg~L`{3x2A1CdPF8J@7s@d@H--YhVrWwngc1#<70^%kE?}XYXQ}=Xp|l)g}?-*FSTD1VtvnchJbp z0l(Cdab^t>?CN`at|(g#p$i;AmDgdv%|u>PeJ5cRWp4)W4u`MHi@VmOk-q$%qGK2M z{8XsBZj{VqUnet9d4f+ z7UiV`PxmcC!&8EV5Ly}}Xk{yzi+mSiucTzo1OF;V##LTQ@Md2^cM;qQp@$toU0(OH zpFH5Z7YW)gf%lQaR|~m-wqZ*0Ro|3zA^8KOIC5+Im85QJO6U{cpnE0B;~i+C|L4Hbq4_1L7Nkqqth0lI|T*cUYwPz0yZpN?X}V za74t{INnuiUxU#8V8K8sXz8gDBd}RkGb*1iYKO~J61t(?&q<^#;=3i1et!t@o26P% zY2+U(TM0HrEJ+rP1rR#L5o97Fvp!xm8udPc2f#cy&|F;mhAQ>2;6Lh ztn8(z;-otw4#IMk&&R-e)vyEQEbAa8{Y1pauZ#5Okc{eKQgqB$(t*g5%3Be&`z4+q zadN`MbJdhe>dS~D84_g<#4B5gA_;gRBYYx#4kR~)k#^OYN}yBZz7He{KYjYV6GgRN z^+&f%C4E9<_QfLoF(iKtBORK9k@N|esnc?`f6QayTyrz>K1G6;}C5&`v z4wgq=H%+1}hxmptQ39JMoywZXw@#EOcR~EAFi})C_(zKN;>hY|iSi!A`MK24Y&az* zQLc_WV!Cl#jH~=|YG@R$;q#Xk?wrZ#DPOYRTNA2n$(%(ZeBFSWo-9|}U*-CI> z)H_&ds1itm5I@kWOCV6>TCggr<}4AM2%!azpelDNu(B6pAW2#tRa7K`^$=R)2)dG1 zf)_;H`>Y6F520<2pps-!nYy@KjghCT<$w_8d}`hSi3%Wooh2txdXtImzpvzDt_;l2}r-@)Lg!mEHkTMcOmGs`I>n;=NdPuHmDQ#sd!B3;2 zR*E3M@5*nwwlMU*oiOyF5?JM+YEe`HjZV5>?Xeqw6w7 zx;rHMx0JTBm0;iKMSVpu7eWP&psPf;Sm?-E(f_(!1eZbR3`fvqs1h6>z5izs+z6q& z9KldSmGtcBjOil18!U`h1(rjHze&@Yal%h11|r6!#gec2PDk)Md|i%S>1 z%TOhFZuD(fOR5qb1)%~*Fw{^by&-xtdVrE%2FWv8N?X}V@aE_d4~gJL2;Jrgx(pq( z1%~d3e)kgWC^i{XLa^)NG@naS{dQCq+Lu2@}}a|BhDF4JQkT)k`hyalLjTT z5&XLxnSdoO>G3fG2Z;1;NWRyKv^JtG?>h{i51Hf6*fva003C2Tv z)n%*=v--#2ldMTEMqd527UBnO{nvQH$3U+|3?`BEQDg?%2bG<6lo*!(%uaZj22vvm z{)MmNVAvTk?mp~yyinx*0f!I%(X8X1o_zdy{x+OYk?ibl^H zC(-2-NOxfrtD6$b{pWjH%ua($wvn^C@t`Gn;yqABX?q$t1?0XBEmk)keI-wgZNxo2 za+iWr?{IT?w3R&b)uF;&56)!{w@u*$RW|<*W$yuBMbW*F@9f@$1Ok^5FF{%;0YWE) zA_NFX2}PPhf{@TVmrxbyARqw|R0IK~zJLg#Vnd{>hy|2pFQB4g2gSmR`hT7?GkX)% z_xtBnHtpD7?Kc&7o z0&YUT88D*qi@?G|sQm9n41ENJ8psz2R0Y0PlrVI`y-c9rji|C5o=0LOkvsuM9Aoy~ zh>Yu$M(YDu@vpPO#3dCIgLl9E`*elFPdlm5V)xTuLNFrz4vdEJukl z(HJyN;+5n2jf$3k!C_AilGAd~*V>na&!B77V6vLgbC4`ulGTe2A*>Sli!3O~|E1vI z5h@rI{k*SWWb{o`AT2-zEr+~pTvsh`s$?^+ykafW&5iyL+!oDYb0zMKz6W7HnG<{B zB~Yq%KZPR73uRS%eUApOkT?kQeE&}o^rStj4*Ln|DztbF;+Yqaqvu_Z6?@gY3ZoS& z)WNCh^0$Rev#R=VB}iKD`3AxMUtr|F$g++`Nrw<~`(Y(b7@Kr|R#5J-op;S=y=5Q@1N37tWGLaeo; z;fX4>o`zc&fI}g2QlejhikWJEPsbVP<5XsJlsyZ4vx)*vrPIif@sr&46Ch8jc14xL zf$)Hjc(ILuy!)Zb zdZ62V#!qCFUIn{#Cyss@ufYL%)kl9PT5Z6WDEWLn7rk#WJq_t;!|i+hBFs6z0P_aI zBHcdkAs%0G9fHrrL+W^Z2f&@qDi^sp5W!hf=b`7JzFtl2K!GDJ3Zu?|cRtb|zD9su z0Q4kSL_prcxOaWl7DExjkvMWA;N*n>7ri_fHzFV}0B|=!tyaJ#XJDg@ZvwE>f}s-B z9i+x0LR(ha=y(mHGd_)1Kf_pF<+N7xEzqk47+RZFv}(o%O)FIkqaBA7CL~R+84umL zNi!M&P4^k4rM6O-_3vN;W|=dA4llqkSyk0>vLb*jYjZ31^%7S5e>e%`vbrUa%hx# z@?%unz0ep}xW6SW zVwi7_xWCtzFxM^amER=Hw@2Koe@K{bkGOv@bN%*+`)6|rbGCK=V#!sySf)}mO_f?R z9YCzw^P|2PxW_PPPvM9w&n`&~;yUOit3UeT+6RI97SJWaj5&=2PF1s`4O|4*;}8yk zL&@X>w}P&TtyOS~A*O=V)+eq3MYDB=H>o`(3^5y|2?dGupw{Saj)XeNDD`k5lVlm_ zYy2dQSP0FTrZ!^clzKc3{D9AC9^uSVYfBo=yTHHlInj=JM@ep4y}h~KBaz)vFjg@ax76Bbpjui7TMh#E!Y}4sM`R~v6PUm zB`NN=>W^H*Sq*%%&(XCMj_ZCf!Ep8if7R!(OimMe&E0tSg_g+YV_@I=xbze|z>r$I zL&t#Rq5Q>g=oSzq^4Qkx=I+HKgwg0GRULR8%h8W*-5j^vFYr+jZV#vnVKF>;F6)Nf ziWtd~nk_WiPp#qU?kOy^B=tN%i~Q8`T-IIe_QEJxO68jXZSzxWc)8nVFJ7P_d>GKt zNNPTpbsu(*Y&NOS0s1nMTHq~iiwY(+_k@VXVTMfWnn?YGJ7~2jT17xf5txr{-RIp0 zZZmL8Ky4$i?1g>UeW8<4o(*Vl1m8nPr75U*kn(sHGnom zV6GqBkK92^47>->K_8Y!uI@MPFp@7gB>i00t>I1o(`0`GpjL$ST*HT}Ze#E9_GX2e1t`ad%bbPcBCU6y zhu#U0&L9#goIF=`v%P07;~^rez5@7$f8tE?e!?W#pPW6wUnYkIFqN!u4yBmo9b1n- z?*ltu5a)we_W`eeQHEn@+vTF3R zS@(d~8o5Y82Ll>uRXFl&)_uc!22Vw$u5$q`jHKqXS@%8f2NX?GZveD4lA3N)_dBlw z2D#kH9R$P&qtcpAs=!ygAs=7^Rjf$VCxFiTspaXSTP*P3qkyhJ9M#ZPUiUwrKDw0x zp$CCq4=l;YJD`yrc|7Ab4DfXT)eKm=#c?kT!zeO#({VH8vw)1SXo$mHo0vR+a;FAL zVIe7V!yJ(AEl8BSG;wjD|0+X#6r?=`iF&SL&hEOv63iE(@f1j36(mMxK6zZ_7LU4! zM8a0MGmYaR=E#ET$5n2vsPniX6;2ZHMg=%hBkcos)1#KpMSFAtp_fnMH1EjU2yU;a zi!FhV0yfU#PLmgLZ{+TZnso$)pAYc^77|l7K=($qPsg7}L3pMB$tiQ?B{ceP zBQRXuR{_1}!(1#F9lJJy^QCHWBS_za;NhM^SC)0lpWCOy!EEQwfn~Z0U{&#%GKHkh z!nZ+1rn+Yxef#UC0dHeDPU`MEkwe|+nYikb@Ad^Wny^1~^aG?Ox4=5xwCKUl;?Hal z7F!*m4s8B}g^!^e4@7^gd&u1cc&ATcp$%orILy|JyGH=OU4Rl2Uj1)ik8bzq^;p_| z4g8AFkqiApXeCE;`bNK30hd8sK`Y?U?IRrCQ940Z$X_*zqe||F%GK!t?^M0fU_^mY zsw+eacWNZ$);lG9)d=Qm*?LNo?NE`~#+#yj;gR%L=#15(>Z z>75dfOsOwH2t?1hu^H-KcOuk8&$|`03Uot6FFlS{SB^I>gvfn|N8ldoD(0N%`$=(R zr5wHDCWKXmXTghpa3QX)Dq%mKLPkG)BP{!Urr!X>t)+nEMXw)Z$R~Ym4^*AIWQ5AY)i_bfH0-qy^z7%j;_&og) zmz3(*o-d86UVsPql#`+*p(CpG)#taFMdB2|cUnrmMPl^tm*L_3f;C?Qc#EZkM2ozZ z7adX^zr)=TIR}8h=5wSlsqbDuPKnByjm0-Asy+jLft<5!!PH960Is1nWx_#=W>M}9 zuvr`$ZajSGBrJ&3lxzc60#x0HQ&)FJ>PBh;Z0KFoOQi#9PguG~!_Cz60dVmU?hk0F zpE@`L88+f)WYH~E&qT9SxD$Au&q?Kn7SZigDlT+VzKwt$AuKsGiKc1YtPbP3uG$Cj zQ48tbm&cOP*=pkJz&`@^m5;N*oK)$mAu4f-=_>`>jpIS}p>Ku5Wp?yX^%Y7Yt(*kB zenE~*23eToZ|vW8oI}fXf*kgxmSZx26V`2x`$Kmz#Q)@k6+<#kSf;X0*i&sVo-kjl zmB{U3=E#_J!Vb$Z=rceLS~OHxDB1~o_#tCo?*jhJQnY=gDO4+;6E*{|IAK`=6rb_f zGsD2CGO`AWZ=A41rM5zg?S@$%PS|@$&`wxZ=I>6}-PfV9K^lxBRGdZppH5iXrZ{1x zmt#|lAeXA$FSkH4`l_q;nuyXFkL7R#t;cdR)EkfGSQg26Eca5ZJ(hiitv!~fAT}P$ zCAc1jP%O{EO2qeA?gaS`>IrG7_E!XKMQb62b&Imf#x2_JNAx1pw@0EbIO4iUS;c31=jV@N z20(l;fRO}y3aH(pFa3eef^asD1rboYMZHI$4&;XcY$B-DYPaaP*EF~Xz{?g4Wl?vK z8jV{tVXLN{gXmkIChkAYSbq3*&G6D;|2QNU@gHh!#x0t$Q`2gK(#WStlN-0_i6=Cp z3(!oTkt4O$ZqbQ%X~tNfGYc?GR@yE4)d1Z;4}h}X(sUmgx9C$V@JmAIi|2qIwu}O9 z(VMUgI|JmrkCI=&ExPDI^yTls1F+^uts~~{4*(~~p;2nrIq=*Ik9HQhS_=2fqNg)ReSP9CP&C`RMQ`Y6h?79dD@eR;qh$wsBB6DQzKn~l=-vwY zE5y! zV%?$@#=>!jZc;6Qx3wJKE&3wvPVOO`4QMc7F+A%QeFjY@sd;NQ*H3NTqWqx?NxcTp z20yiRiw@e4y82XwjHEVh(Yv2DsY~Np zS{{cPGR7_1rK~AhV?b#U*tkVcW9cI$?**uD1U7EbvBiz@Nr0wCVB;1Y-q*nQ16mb< zA4|k!a?(9^8Y6%e+XZNM1m+?IZqc|B20j7k9Ur!C(f;F*@>__1CBz{WqB7qtdM_^T zDy}_l=5a*ukTwhB7CnfOrW%0I#FBisXyaKX`|f~x6V`K$af?p7-rVct0-Ef@#w|ML zedx`DbUBeo;jCNqH{3vvV$~l5zWbjzlf0Qr@m&=;CxCxQ4hvu^Y22b^OQNYR0=rre zH*V4B)h3(x4tP@tN4}yMx9FbYO6Sr9a2rx0xmdSogJwoeU*H3+8s9BiY^W*dR6w(> z3g0dI$zvwUL!0xiR z?-u3$D(*uN@34@VvKf!YE!t!-NQXdpqX5aeMQ`l`_$;6weOTP0x=)Q;wBj6)qB_C# zgF{!A&6+&Wg#?8R{SdQ-&?T)XA$#*9JnoHOpItAUL z&t3v)B?ud>j!+Jp-?&8wSJbWV?g9L=Php|0TlCW;L-`2scLgXR;aRt+{N@R+jwNuI zx}$$W1>B;C=io93yiq}pc8jt?O^y`CqWcAP3Qv~Y9I!^>kb68v^gW(dF1L4O+TioU zBH1f$Mc>~I!b;0#M4orNmaDZirBWuXn7Auh$jBOy)N|3i`RwPoY-O)P>ibG|JxPGwAbYV zN@u(-A0cSHE@e>;<8}F*Wj0=y6pFRi<%F=c*QF!G#_MumE3RNDmUkOuzSrf>CGcQV z&)r(8y)I=vCH3$&YN__RJck9Gjoh@? zW&2mglX68%wb!K*9`=ZTr8sKudtF|{)k>t*L~6Y*RY$-niq!2O4edvLLcI|4y)ONG zYj|Vvib@KW3hfQ<>3Wye=yq$KxbOH<2U8X1y+>w&T)==H2Hb#_Lk38!pN> z78NhZs^L1hcM&Y{f^ckzqI_Nus&QiP2L)b`BqTRpkU`+eO&|&R%y3^Z3=X$<`JPB+ zydYk8ctJ#u@q$oby&w!*F9^fd3o;LP|8Jq$W+KaZIN}(wUXV}m(gEXZ0Bo^f=WL%ndnv2-f@BuLT^Zsd0pt?=SwQUt`2!PJO$Zm@ zxH|%BFUWJS5Ng^4U>iZLR(nACOtp9V8W=sM) zuK+_AyomOKY{=04vj&tcmZtm2ctM{26WxH?>;rn#G75M>j!i@V1Np{B$uHmqQMmi@ z{sLYY)*PvI#N7P>-~>4|N^OB}1747uaSH`c2TO)O%pQL#Ks)}h_wk4QT%KusFNj=j zj2DC@v0jkwFgEK2=__IF1*x)(^36EAS8GW4wLu8~!OX1}Bum2o;02*+`d*OtXP9Nl z*Qn-?tZFp7#Ck#EVIXl3sMwofIXL1N^SvN@RvEYkpoSI>l_V$l60}(_$d9!Qu?I*4 zed2CVG~0SXp2p%tGMoz1(t^YUs5QE?kkEQTwy!Zs9s_;1pQHi{p*ho3sYeax1n>`i zPSpr!mO8)1a4rLnx&;vyBt$*=%eYWA#QZH~tN>D7pGal-i5t{}6^7UWq)eYU2t8wn z#tTvj_m{Fl7zffcOVmbfUJm=cF6IK{pza5})>5Q&jy(6n%VD)%H=O5yAND!Amc|S6 zA*Mdj^8xTLd=AUxdqJMSGe-4aU`2Y_R*;@z2l!r)Ei|J<5Ni1(QDVIyAKwdi3%W_Q z1>VVWd@slsSh6f9JQ&bO!eV&V3v%y$CiPrE3;opA3zBslx5G@m0nk=Iwe^B@+>BcT z!Uq8z@l#tb$Ya02flBxjK<6W=jThuryx}0J{{$3ZXN%FN8ZXF#FHGw4fT|GIL&kVP z_M9WZ+eR)H(b*|UH@av$4=0Ydm4Kp*+A^@7yrqWcoWe-IMmC)@Xe%;OgrB{LnTGL8ry z(q>`2AV>E?NfQuSSd#Ar`J#-;zBizLgmuFiFG%A&;{}-vXqpcjFUY|-WWE&A)kGqN zvtE!HpW^))*6k_a`~QhE$@{a2a;8iDfqzO43lP$kG+vMwenwOM3e3$afEzE!Ex2Ej zY_12KL`tM6#tV|w7(bKETv`CmD5%AHLBd0fnt{NFTQ$BHr2Z+RVm6=!R)y~cc>%r& zDa1NJn7bJO}NxdJ?OOe#Z3o;M$oZRbt1n9F!YU2gD`5s)Iu-;c!0lBzI*1crC zAS(_7Dh+XELQ;9%|Hcba2{xvh0Bhsp^<~=NxBGZGY$$qJWdh5#xb=cet8Rw;WFYe` z8sae5CT6`LbFr6!%q(j`+F6h&d08(=8w^Duz5>!a1&MmDGG34;iWuULAVpyq=!!|! zv<{R1E{?L|Q3qYat^j6o0k-c2Nx~{svTg&sX914X$oGPD_z&7+I0zGb5~pY13sUAJ z@VkI5vAFLAIfVjmL2D6xd@LBOy36pE}DpMu;hs486jn-=!6=vU zIG&WR!VDEiYWNHEWHk8%J)bch#^7dD#>F_0G5SN?BV}wuZxqkq4`?N3@GY8yPR5C^ zaj{St3vf-H?PkQSK`fB5x<3BIWVC`uXm;_8o|Ew>F(ah{{vbs%IY{zO8T^ig%2sWy@KdFqRuJ8FNpvIEMzY zI1}GA39C+H!lnI~@O@l1oQ#bPnf&SzCckMRlgE@a}Xg z-jSc-cE|8QWc^T5&3I48ccOMc@x5}dWwJwuEL+rLxv7^lA^T8 z?Q{tj^rRRa3v?babc&NyM8{$}HMtC|xQ-R?wBs0J@j8~+Id||RC#kfKrFSZZm3~rL z9h=>yHySIcf{x)M&lEIaQe_i$yTpVMt!AQuE~{oCnrxymU7F2Aw6=*B?=p|kdM29K zg&XuHH8j!mPRF|=+E_=Q=(GmQ{-hgptW%dNm{pU~bS$7c?MC}0bya(Fq#^D`Lv%`I zF?(o{+o{u+i1pU7K&MPLOCKG>mph#h8>wi6s`J2cyA5w{MpP!pJ*Q=u+O7TaMz z%kuY+kjqZP)vi$pfvH_>R8TTwX3x-ge>z;I?l5|Q>(ATqtbXcb0fAb z+=?VOL)ZsL+*61-6}SO&jX9_1AiLC8FluUirSL;XnmQA-c|J9DC>pCq3AgGZ13wIC zlMnyBu=qZw3T|RQ#HdJK$O?I}u?Q|dfixW_7sj%CAY7IcCrxk)zoXut>o~syP(R_s zK-{rc91ON^F%SyhtK@_Fzh~ipl-=ku79EARs^vdnn*`Jrbn@{HKxI14T8mJSS;S7j#HxxO zY77%C(ta}VmqQqAg}_%36~Yn6h*PG2C4eV}?L$A7g|wPQLPZI;jE=*F8v(a#_5}Qi zoxhiQdxi&NieyGkkuB$;pjY*!(1jHJk$xz3Fk-;0q?H<+4&W{ehAKuFeVab08Eb)V z^BGAIM!&yMeCj+1^mU(6E5aCbzN%(?3iOiC=pT(H%EifPnm7a{o!ST1+W^UmpbDWT zOs|0%{mbDgAmUXC=&T!EM2h~sI%vgh0d&KWxZoFDX;FEpWaxA1@Eb}ca=%8REjwcA zB^&QKLH0xJkH}dS{W4`J+U{evU3rS(OkTGe*?dQlF3QD|C3P7eXHi;2%J}mHd{M(P z9wl(202{tR;$LTA{B}hATqK16SGr`P&;YLZDT0d;)JAdjrq1x10u7;Q%HfD(#OWp$ zOzJH=k5H74UqY(w7<4;Vpd8p6bX{ zj0y-I2KwD|6 zmOuxT!{PU1*BN6?)vxW$?zH;$V(3nA0@^M1OjBIii_Td$3{KKAeNpEeRJ<`FDK z$h!v|KDiJrIx{ztr#!;k?67$Q6xQ`L;7@#t6j@Vl#m`A<%CCT3G^5T) zwAf+u%0xh=fmQZ#X~1sK&SBFBS7(;BC*VOi{C;o8VMD1NAX+ueK#!tsb6~4TA9GZv zzYolfHa)vr(o>p0J#FKfQRwJV$Ru_s{%06wq^bX*brf;ikAh)Pf(6H7T-=KmcYFVU z`)FuVKS2Fu9C3^}jRcN&XO%KAzlyDZL*RV?|cTOD)D%sp-80{H%}Cjt9#`s-xK*ZYN3yO7j*>rN0uvQa&_}-^Fi( zOtY&8{tyNwOsuPz%AE-8#Ul8xYZ|igV$!rSd`=-qVj_} z^1`@(aw@(flq6&&F#TU4|Af~2=6%UJZj4_{K9jjNYo>5oy}2DDspeB&7Y^vrcnn?h zSx*o*J$MD)^%o?j(plY_`@C;aCY8=@Xlm~Few7HH(bqg^Xahrt9P++Ki>lNaSPs>E z(fgnip2kox2L-wdM;v2LBY|J>DxwJmUJq!yg+tX5!Ujb1pyExh`XRIo1nMQ6UL)rh zs*vx0YM%1m_y#ZG5&jIP3lW&#|I~cPTYC@_Heol6n|vH5b?#$;Kk(Y$g*T*FzDj_q z6PEI&3jC>e>jFraIvr4F3+pG#sjoZ*6<>Q3_ZSsJfRC~qJj)<_(JO_<6BTy?y2rvs zMG!BE)coDMp|9a=1-^?MRx#8XIXkJ`I=JQ^UQi+t;Hxzg_?*5P1F`qvr?U zSFX{MavYqPKnVj^=Nq0aN@&=2;m~TW4>KOPupdT$9 z8iSB;M4d5%QlMgUvC6;^SBxsG5tT2lob`lj0IC~-jSNko)9r2nI3&3V$3(9@%fEtdVV9)G-E{9vrnuM zb!>$hm4YJU@g^9KIL3S<+Azz&H32oUaOg>t+c%=yFhx?Jx&pt2oN82Iji`4L9>Nh0 z1LBrz1~x|Y8LmC=622SIeG%9g(To{bd$N4n0X<1r%4dyeBYJKHQ@;l2jD-st(blJp zitmB{Y&pIWjlzT^DvF|&6L3fl1&!!;G_!CT08b-_RSdn3oP8rI@ruc&7w`eT9?daE zRP;lm=MLcWuF+$RX!H|C&%?kUxkisMqT?G)n;ruGMnOGdL}DdD7P)d?UZLZzsKkkQ z{U~$^W&cz0C(*7$+`m{xelSk1nz$_E24vhxeanvPXF?8@q;Ei)rf=Zt7T31z-TGzQ zfmBmATGuObZD!UXIZ08P_Fuz9oiSrDgB3Or=Ssg2A;$DcX400c;aZ^200nsGJPHth z;ye<1yb8yk;>6gr>5mAWeihgK$AFx`A-{MRS#`7=I?(E|BOhrb_RQ}r(R;T8&?WkSGpR1oha1r+t$@I>tbe*s zmx!a%zxCV*e&qbF`cHmV%*+Kpgq9mitsoV(n)~s;h$&m`nH|>=tAwv}itJXkjjp>i8 z*m(5`TA9r)D?+aCLi|u&pD2gI(R+~$3j5|$C{V{TxR^fxX~Hw;_*!?qRU9unWrI8& zvbi|o7IC)tyYJBnQdh9S05s~7Z{bdUcz#K2!G)yzAP+GhCnx#hN;E`C_lJA5*Y-T% zM7ynIh<;rCaH;8fEJ=!W+lp~YFI6F282lw}Xy-N*qG|tLWVAtJa_yXK8FCv}>rpV0 z2Ny%C3vR|~I32N$9tsM6bakY-1ta(F?f!TW-alaa7ERxSCzpI*(jIFMHz{W4mHE>~ zJY`*(R{Ob<-#&;Gzqr$bI>nm>QnaHx=2d1wBQ`n74N&rH3nbm|S9K{1-JZXcl1@SN z_jFRb@7-po>Q2<|#scYl&xF*j1r^BMfxc7MdH(6DhC1!E0%;}B$=Bp5H+aluw?FG0@1~i;}KbKiOHx-oSFQQa$=BGr=F_M7W_Bl-t;5uI{<@Dovin@qI!sYEo zh~IQO)kl_r%6Y(@prX+`;)N1vLp* zK5=!LK6?wx^kkl%0q5IXIn9J*zmV!j-(s15z+|?m04kGV^&-+vmuBLP7n`BX)&9w; zei{{xT0RO><*)fEQYOjA=gMoVPSY~uP^NCjFZ2C2xOL&-6fW&4)c85JWP_J51H88l zLu%u0JT9;dG$g*ChD1(gfZo0+ga^%N)Ev-449Lkz?(;L0Tz2n9+5cJw$0p#!SS;?@ zZT^)ae2w);zwo7JCwVC*vYHhF z_v0eQt8_M#vrR?&rh_OCPfpWEJ7D&oUoJski06SOI{8pc_NOUuw^c{{8+ z8FW<-fy|SWysj;HH3N5HQed{H|Ap7|{ufZQ(L+w@Ng#GQOBelrtW%P+M}QKYY=8lb7Us%eAt($iee$S)J)$5I~yWv5!ZK#!ie z|9`VM-5TkSs=5ty`rSw`1!ESGg83Qhf;C-rfqlFk&mdW^@1$JlW77NqsDC zHrV`x>rWHxV=lq2X?&eu(*0R8yLE90E$W6Nm5)%~~w`EKM#-=b_d~PQ~PnQQfeN zw#rAPO#d*Ml*I%TH##^$Uq(L>8jAiuZzPg0ua_PV_SdPZ%r+G+kV>j0B`SCyqOX<7 zy>OMpsLqJSRuE(GkVABs0!oidD$adQ@_;td<2^ps`Q2~xlZll*E&=v9-xZ2@Ds@O^ z*XmaSxR`hP=qG&Vh2$t)1BX+Nd|R~#60?7XOa}68RrQA|GsU8&_#VNgV0F4)hh(DJ zsXhlb7}cr%6Zql{JuFH|5v4&$+B0Sf#GZ13yq&oDRrGDCZnZ(c3mo+oZu3W>=B0;T zj~b*y8k|YiZxx|7xu<6F8C$O@N03S5z)&sXw(Y$;qCzcFx5nWK?NnILHbBkf9fg^1 zC*V;NnJaK&Ag&3$IUki+MAVlNBH%GqDk%RumVX3pIkv{ZVF5Jf^MFn{83A01~3eDcSBt zp1NZ8Eb+rUaH7PT~}VSXYNGt`HH^Rf~ejI!IKPCg|ir?UOKbW zp96TUd26RX2k_ePeoZCpI0H_%qIIyWV*GKG)rY@^G3#xfd6YL=Kb>?sDRh!*;nyo5Qr+pGUJGI??aQ!g2+h_N_N#};lClJG2qrd zWwB7Wg|;`CpDK!$K7dD(!jgvif)e7M>rR>ISHPRN?L(-U0ep$iVKN~)31!cMGi3wT z;7q7CgR`AHmPk)N>^&#g4QT8#TozURCfowQaBgAl)KnX^!neWAR=>FfZ(ajwt0l<3 zaFY`Vrc;`j4f_;Z=T1-+zZ7S?_k`jjJIFIqd=$CJ`96E&6nLy3#=3F zs7p(6TmWL5noyfZ)_2~Lckhd0RHnedc-GpowwyCqo*i3H~~lg^2o!MGTyiEqG7400q`c4 zqt`&Rg~UFm^pBD_t#V6ibKws)=%+_VU71sSb9p(xxqOh{T;9rWE}&@pigYI}LaTa`Ndh=2G%{tea2*H30Z9%hBdSTZouTpR$;~8Z?>@jvM407W-jK zr1P46mWMeoa_JCO+Q%)Xz{|SdI`^$MD(vaRPO`ROu2_& zIZdQ6a!*$8=TCs#yT6@Y@78pc|&#k09@;x$?UtCGq#vhfC<*hV@eA+19-f~k%;q9-o?;+9A zK4Nz(?na`&*&P>|#_rBC$d>S0)8%07jyoqByQ|R^ZyX}pZ!zAG!4b!ZwY%TPY48pJ z^DG$pO&Hqlo`6SZdkvvonA!~Q5#^A+8#6Q9Dwa;iK z3~hIF7h)}fxI%SH;E+Owia}Dq?!LtJtSaDCpTb1KvvybLP2AZ)*cp@_q_H$kX>McZ z&1_yAUnD_zHx9fwGA^=$r_}6s!1mF%^RkSWe&R~s3A)f5d-8h}Go?Rw#)7SKr$7AR zj(+&Vjr)q<(;Qr5va1m`Cd;k-jLBBsh#)73l(97s3?4@2#$^A3Nzt zAK8EmjmdUE)gnz1*^{hXo!?-xn^6DQ5m%AOYgTM268+6&d52|8mY+Krlch({m@N0* zHzwNv18F%M<{ms2!x6`bHQC^QG*}xz6AOk`3qzZ1g+x77b_LqUG76Y%g@^E%4s{y` zl&_e_t!JZt3W+t@`ya+9Oo-nH^kJXzoiMb?E`3|;cpB(SWU!E-Ltqpz*=B!25#TR< z3Nsd-HQDS7j>B|+f)YUENojOr%k5u~duYTS!qfn}H#jhMR~mEKS_)-j1-TVAb~gl5 zsaTe_yDC>qRNLKFEcNo)U18k7NmSciYS56i-IY3`qp`9*N6I5*P)TEV+*d*DPMRX} z6?nN%JHYN%RYJ@Bipc}F9JxqjZaFeH`L`Sr{P$Z9`FtSuM2u*7GNOUEt>&ghg8!~T z?tNmb3FcVO^gTy`4Q>B-=`xC3rnH=DsMC~919 z1cQ~+5v)Iv!A>~{Hkiraq$vnC*~*||7ELAibXiE7?V@z{Z3s4(VDae)X6>W2HoCBJ zpHmFBN5vZVJ<8yJQxWXM8C7Zj9iELI}c?8-FAk__cGBl2h0b zC9x)NdgBN8BltM(=x(TyN4-Pv{z|jfUqBig^_}CyH0x9wh8_RZJ@8C*X3&WrI~3tA z%r5{_U{}ZT$ER;;HmddmxKqXca?M5yb721oPO~vW9N7PMr&*Z6nD~Y5k$x=gA}+o> z8lqV)!^H;nA2iHqHm(rzC>|e=wL-J;h27ph{XwsZDs}7 z1R`X)M5sM!iB*eM-Qg| zh~h0uL9xBJaBaI`&_!f0bW+%<-MkJz9*ZwF8bz)v1&V*AGQ#y34#ZDrgfM^95Pg(z z9l{M5j*H*j0O1sdi^t#aHo^@Vj*tJP8^Wm!C&c%}&~4s`;d1e9pG3GZ!-?_fml1AC zd#f5hH-zvFtWOQc3uFFFt4~WE7D#KbdlS4LEL&{^(j;FL{}wz;OKXq|`S3tm!%0Ko zwLm!I_q|A!F)1B0c1E~4+92aO^p2NtrY&lbaSR%wGGcqQn$Kj8wMky`>a%6RE} z*lC9P53Vd3k+US+n+*q@o5KZdkDTdg7tNq0kL z8O#J}y(mnjkSFvkyCCy1LcQbBF?|RzAc-_7^U3poGnsNCVNRe1X^s6N)3VrRONdm8 zAZO7-X?=)nB_dfe=49@|x29-2j}w>*8<|Uadny`E#Sv%vUFYIgq7$l+1k1c4Rw{K|~H%#L2w-B?t#I<4=6W zqSG|aZ^^)i5WhlP+S)*?aN$iGPJQv1!b1$04w{Y&NZJS{YDh%7K~lboes?lIz&ULc z;Y`BPAby@9&6zj=oRQ>=CnsO((!GJmuXHRULMNK8rL=kGupxlQQ0Jq*a;A1N6J`P# zOO-GADmBtF9Y`*bkFP;i#sL{eZNFWkZ927$XR%AJwguGMCNBjtfkWY1jcy_h^Y%LJHm2t5db$Mp zQg7uzy@S+u2ulk}h$3scIrUK?qVLA5~R8EnTN#9!9Jhsjw zglU)5e+Jyf7NI!E3zr7b30)rV!|X*i}R z#>3q#P&2~J7W2-B{gG%1rQP#M4^D(MOjV<-RLtAS+`kCO?L_AJ2vs?mH(}+KHigJq zA7S=RW=waanMP!{kLWc05Kp^{2$$))Zz4tZmi*#4EfZO|tiZHro^x@|4!kSpm_n53 zvzFAuVk+PkACF5$AW*#IH@J!nD2|Ixt0tKTmf_idDy=LH*9|?zbEqPVj138g=apu%L?36nAz$x}lm3kG!x71)% zEit`xw{@6aTcF(OwJ3Jt&ttKhUYp@S{5h;!((6!HO#Jm|oAkQW6`#Pg>51>7?~jA0 zcC5vlUpV3z)9+q_=ExIC{a7+#E-r8BRgag_w+-rJurJsYakK)b%x}Fwsd2U(6#fCI zBnoz|Lb(m(2fH>;aCuHg8cTn)D4|sD}|~o zUXRLjx{PH>n%q*y4~j>)1;cUiKRkzUOYY>E5I^Swgj+FOHU2&HU!invoKgRJ>M4|z z^)@D?u5t>*hF5T%=m5?@pBGUW(K>1m##*5!V_?kV zd}2hQ5T)In(TC8uV^Tgx_E}GWdTmb&Ys|xCfDd`=-|#+le*|8K_T}~Q9!I#Y*jk_2 zMG^UKZ_UxX^9o$EjNg)jd)wfEhtZCdP1 zc%}Ks*IwH*t#Y%yjd~7Fd$RS<&3G_O88LFmWg4cX4(g&#>Si9yi+M6{mVsqqnOHWK zk!59>S$3zdszp0iaAPw{7|xb(R)Egc>;V1US>{YXXm)_V z7m^()g)?R#32Ql>rrCk-h0hKUUi&i_|Acwq7EV9hxOd5Hq8+GrGjCea8Jz>&dr*(}J zn=!4uhnwTp$utZE`oFc88hZ)9?-ug~_q2=WgSMDU zM+Tq?5-5-P>H*Abp8-qjk5#%)H}z7wS@CtPGA~}mSg5R{^nYCfIq^PBNfdFq>iCB zzO0rN=rWcl!#ROF5Y7tlwZ*IezgoM8m;|H%k|_63VaO{$ zHg0@>`1C655f7IWu2KZ@+K@N4d%Og(Pm(I*hTkzADhF!Njw$}>2mjLdU#|NaA=3g1!Y z1dH8=DfPqvJZ)S)th^r4-X}n0qgyb?0gxKxejg2G&Nk#%qbS~Xxg^2nxH~O-DGE|2 z_&qWW{)|)jR_2=kVPzbCzD_ue^7@dq%P&VRW1R|bejE!Wx$D?z!vISulOEV@ktMb!bMoF0YT3E*<#_j z{LaTa1%^DX;dn%5lkl1;WloS^^n|~L)cXRVA8|-+7;u7xwgBYbHeTGLnBj5w`=1Dl z5@;I%-PI6ug4}H<_&HA5fd@vR%=~)D>kddVp9#QZPMH(r$3kK5yyA^VXfY07zwECf znNU0>JOw(U)iQ+dz+WfG-C-oBFgG3Xb^thJ(=#7QN{KGtk|PK@LGDEoBpj|h0;w)S zSYo@$m15amg3|VED6ND9n|}!5smMQ676GW*X!Yr$93Kg#>3{~|`1>{rQYJ!EelG>Q ztUH|HKXrHv!sw0y3Uj#`i+2|g)MAiRbQ^9R1 z|LvQrQ^0f$VKzv7!6jR#4s&Z!?(gTt{H}tNgu7wn@#8=)7eG zQcG3tWTI;u>raFNH9dQ6Xd&6;kosZcq`&h;*d6AzzOo5j&MRvfG;6_ z+=2|?*O&>8ZUpcg;!(J)N=gpmDK%cht@%n=?!LlR}Ve##aFn>_Qn-9i=mL-7*YYSO? zd(Ybr#vaS!-s7Si-Unh91nJ41B4hrURb zAST*Fd=q}UGvifAFze0*`2m|i0+Gsp$s)I7r#u42F3V!4IN@3BhJ%p3X65V#Cp@qv z$>o=?UgA?`fKz6MumtrG zW^lTb%gA{oEY!^+oVtB*!}G7f22Y4z}LOCY}!vL#l|G2(hKbhPqGkq^X-S-Tl@A#`KQ@5d01@Tv4MV~e0VZai(gM$;~HZ@^>N#i8~YiNlQ@H-*MFI&PDd5vrj zMjy+PK!g=@A6U;&*BCISSr&DL7;}RBP$zs9lcIMI;+rgkdeEz!z$w#rd*P+!!Fv|* zgO(?^&fz=bAU_V-y9MMk55?kZp5n^80P$4|Ngz_ho8-y>q8EG)FQem-ej;m1L+Gtg zQt?J!h6KVS=+a~dE=`0f@mq7RFQj4?T+yK1ybq%cyM5vu?mY~g+Y!1OhujL0C;8;N zl_7{<-(f!u;$6&hh`*CRf!xJV`Y(4eB+FgQhX@!|`Ua-Nc6u_H?_yZO+s}L3_^6r1`pIBUY zyTP#qGGQrDzLiHFS01l}ch2fFE025y8lDW!55NO^Oe1iyA&uvbpv(z=hqC3a=gOxp z;?l!>q-cAXLes-sOXc!&0k0E;wuc!u>#Rmxm}VnB9EWrw15U6AX2>&6FmyqNh@c-3HD(bxnG0#8{$&Y zq}#bCgII|UI=ML{WKK;_5THgBnkrPMG^NdXIwg1`hEwaHjBg zU6h3RJq@H;Ps0g>_55L6HMK{h5xCui_g~R=i+%$iO~CnyGAGC#B*HD4f>UfSK6k<4 z7Y@A1PV_O#oFHG$5AzLwuPfqV90lL#r&PbuFXA?|#mZeoWr2MxQhsIUd}Z23mnd=&hPEY& z>Zamvh;Q>kldmq!&mFvSkXFN?YePzqpEl$kZUK;Amdgm?(=x3*RZ(b0NMX)_{5ruK z1ED5tRt!5qVqyMbxHk*&JRFh*15U6f!QJfuK7{xd3o_sYhY;kC1AEUS{$c?z%nv=h z6Oesl<)#Zbt3G1toaSJH(}5{hLhA2DGKDZUD$zK%De=w$ z_jf?>_wbOscn__IXMz_Qo(W!LcqT}4Jp^;PrHPk(0NK5it@k4E)rl5t8scj~m|Dh7 zn~ZjiYvS_zS(KPtn|NdXQANQLVRw^=uG>Uci0Sm*Vou;9#(6IHKJivSDrtGoVp@(e zeG?PDQWczSh(Cox`hoYhPPh|i^h1!nZsnZOop3Ja-uEE;%*w?n5I$8K@{5rD*UGu7 zc5=Ccir4a>X%wzs|JEoJ!iLAUo-kg77^1i8&*wmhuKjv%LSqw(Nf2Vq4VQUC^=Aa}dV4)EzuF1K&-dP6D&;2dHLK%p%_ zUrEOOT7o=VQqBSHFY=}Da+?vbHWW0MsCw5O@rv7d)s1fc|W&|j7a=BxS_qokn zh#asI;HD9LAwg$eT{6*`*U(|fJXwbavwAfZRp~P11peTR#cgK1VlNtdprg%GB#n!Scje5xm48|s{X$F zj4t_6$y1lyghjzoGiOidEnyxM{C!UuZG?SUW^IHzC_UCs&-mQ;#ykB#Qjdy9!eOjX7(y+(K~VGrW&5o4JC)0raeUHWpz zO}l;;UTnC8-=l`y-s`()&BD7v)(JhV61!9sM_-dNJ@r&02Vqu~nDom_6t<2^{2^HfCJgori? zVu4T@b^V&m(wN%>K8x3~D^8c-9k`O|AcpTi1j!7gE1E({OzIWy`ZX4w7y1P&F5<&# z4qwP~OIASv>bwHAD_pI13e{G4J(_x_P_GH2SMk94jcAfXQ=nkFQPGwvM*m&KxqK>g zSgSY}O|nTH4wgXbnGh_;A(IR5TBcm*p%6E@6ylv86gWG;-|xYv1~`Xb!O43H*ioB^ z0aSgg6MInZ9)jy2$O>>nqwxC!z&?lgHWxxsYO`PzBrT{Y#=k7=X%0rr*K-bC0rz}e1-3~-X9Jfm{6D?&< zkb+!pspLInIUE4eo5i+KhTtG)@;o&(tkE2lpWvnw-S4%s!!mzn_zVJTR?)C#OZSg&04@`am0c^4!V z#tUCpDd@F~8%>$Hu1io)id<`5Gbw&TRZU-G0j^agT@+cWU8kr?&r2q3CPk_ZQHNf( zsW1s*&e1|#~J?^hpE?_oET8Ad(`z1w#3m6nx%dx zNX6vgEENn_MXBRSikC?pnIr~>I+cV(x{k%sK)Q}eY${#H$_Nb*;T{P9c7i1^2ExZ{!CmeN%9(#IN=9UL3so4rY=o2QoI?4dLA)I39dP$fdgs5y>vud0SnEVk_sL%0nQ{(C^tUyE*W&@hhsK%V*y zaa~b*YFRz(3ZvNXFdOG9vTjtX)for^KdBz;Rx5V8x@DE3Q-d75sq47=qZX@S5Uf_W z;w;R?sw;x4)EE0BytpauYE>-4a1mUfs9}vNi?CXyXirvc+zp@?Mo$@qe*)9=Rf;Yg zpO=7EI}O2VbrfgA-izQvimq783zYZJdW~KnF&Sqe=Be@smPSKr)eoySgitdhSgX20 zpn6ea{^dT5DaiX0jacw*H);rP81<_d5_G}?nxc6wgL&NvW6tuHjC~d~Zlb)1^EFWz zGv6Bv&rC;>8W1$MN$3X4_i|E?8$sv@u%9JxLXQycS4?>+kt*@&J`VNJ6i8A}(OQ_W z4XV3N@j*0aAkIYYX*K60r_Y`cE><1noQCsy#mCu}7PWG*DkWG9&P$b*uU8yvHWoE= zvHAe{l@@OkWi6XRxK8nrIlHJh z4p`~JGqlgH5Uy4?;;ecvR!#ADz2c*HON?5%S_KUnz+Y{tRIy&M@qFIQ)oLQ*s`qL& zf`5ChP$!{>hDVNA>UjumMOoG>zCYkYuvES>KxC6*qg#Z=l&9FZI@OI&8jEEOU`~8x zCr=Hq0Cp#9~fmBuxXHAC)vo2pvIarTX%T2vf|7ZyV*Q zSfBbQ;-o&P;-M^JPKdDNG=KzzSY15~*z4Y;`s>!K=BOWM2Rjh>(nX%i#`%3IMNfn- zBcvBOWUW_x;e$O1v6Q@oq)Em(CW@)cBUA;UmFknHB1|bc-xtYK%BTK4^HsfQ2qp#Vhd+&4In)O^REmd&9!IPV5b0>lJ$=1<7okBE8XA%E#Uqg3wZBS?d*h zBNb_Eog%$)yQE=n+=r0v4a>ZyH#C*KLF$7FSB8AOq3cAMu2bNgUng~ou8{>JHR5E& z`ZW8;`fQf6u|5Y8TBvKxdus+`-r0Zju*VIQ-Sszj#ROwI{>7$LR2I4=V z5_&CK)!CxhB|4UXod#6L&4}aQJRItwZSUa*`I;|RmZ;kr;NuoT3jKv>3Zgp^t%K-% zmAe?tHJ9(H_d)y-m58ZwEzoUh;zTFr&LacR>GwV{^DY&h`2TVDE^u-cRsMM2?#UPl zAc`Prgb`VmMUu=+o@B>JNE(?0l3^x+fRCo9r#qQsW_r@yGf8*^RAe2ZgoqME)&%i^ z;3^_M@wuxm>+bq<-G{EP^|3yF?u+&3`r38(|NWj*Rk!ZF-7`JYli%n6|95id)~!1A zK6UEUsZ*zRrWU@Ar(IqLz;^}jf=GfBBR*0KZ%cph>qNXy!t+7+Oa&Bqd=##G1NP-Y zBxB;RDKt*o4_%xuxj5gEIG5Tu4+npZg!=GF&T8T7f^$%|semGqe+T4|UY|Zywb%1Wq;LeF0A!@pmhp;C{KUQx6lpG05YD5tg&5j;FD!2hG3BmW^*PdAfpJP+O*YL3)X-oxw3D<|= zIwJEbXQ4kb?QRxKXg{x?ISv>8y6sy?QgP!SB^BbvFC~?Y1h`(iCq1dHSA*X>q~-qu z@z9|C>4m?Rc16g&!4(K*mpl^m!$mAS0~JE}Rp|+Az6wHEXulWAcO6G_jRSUq%kLdr ze%EB}eeFd^s3yzq>*$=275B@z+#27Dh4w4x$u$g*=LUDu{S=dRp^p%KiJ8cNwrqfP&y6v=0a2*Latk`L6t;~^k%3#SH zIew6>$<%&{?%j=~7#=KVD`v1FMsI9G;A=Giy>Z00@4JKR5MaN6V}tm79-eOimQD92 z)>4qSHSV`8n{@D;GXm=5q>DRR@!e1{(cKkhk^}o-4|Spzp{ck9M~8S1Vwm~ z)ZdT4%#?DKqjad(1#rDzWiqfA59LBn;M2&39%3RtmS7nU?`85!KyMxjzKe>! z{vYgccvxu^8+b9I5c`9NPeQOZ!nGt(IvhySf5k?6IJh3+b~yZRc$?wyb^t34`zBmR zf>j6#Y1kVM64?dmkG%OHY0%{eKY*m*2dsbC;`zISEeNn*2EFNZ8oD=l{mbtfM1CJDelY@W4=#uQ9|S+}2RM3yVw*qu3xE!vxNm2xUAgJNn4nb1ZyO_iWHX{XXzz+b{An=`V zJ<8z6f;}$$n+#V3z6&k{BmCVGOa%Tf1S~|4u(Px7HjpXhNE~V$sddby% zC|HFL5GywE#}VcBfS`{DTk-vUe1AB21ntcveg*$@XM6BDq%jpx4T|tsI6d?+!*$>b zO%GYs7vaSk0H zjdi>Tt_xVS&j;_6qOpo!LNtU^b)pllOBnuS@TMQKVqb&jRPg8c`)$eQGjKg6t`EVL zc?QL9R0**WPhJ{8K6f2_rh+Z_%UFkkOW}f)1b^QeeDQN0^m9;~U%^Ac{spc>!T0g^ z_JE~$JZM9dGm*(#0uBwA$w5d&@vX6LgKH`{fWH?4(#CunzOTji9RY_1V_uIGPu`3+ z{(E@rL(o(}#6BuOsZT1d@GshL!NDT+FxeoNrK^bPe2t-5=jaDa%L*{3_QM#&_lt8;F=1kp!pQO z9}JFsGz2|maT=xn3Vamyvv5rX)Yn$n>wVaT?1x(gVxNJK-1X0ggU_H=EAa6UN)2oX z&ipYGqe^4uG`fBZ*O}t_7r0i#b$?Lt;+%Jwau4cLD*XE${4oQ6M{t1;|671liBrK# z4*VJi&OYEo_gNGvbBpPNtx^W|!8lxZNgoi1Bc}b!_xy-uWgigku*{PT@%w?$k$xa3 ze%cS0z{Qc@Zu{Z&2=)8naeQk(SkSN^6gKP!g=IfD*jPUh!u*bjOm+-ki}5V_```>v zz(z7z3l^8jT7Q+v+OMcg_G`#fWwK;n&%)zmvgv1H#uJ&W3o`nMS z6;DhidoCipL%7rb1S$#7ae(CL^#G-$!1~}*en&;}$|;r2zv!Dl4~kw_A{iCGUM?<* zUkg$e3wm6{uXiF6do}%qDG|R;3N%HqQ{tis_MLF42-ZSFsxc)ZSOupTR>3KTCHTF; zn~-QI*-*XYVN627x6wWSjz=amet7E0oX=hzEPBPyP{yU%yS9k&3EV~+sLuZt8c1m;|F=>C{RwVH{Bq5Xb z0+4vQlE_TejQtTz)v3|k%K>*c;QquGhi8Q>m%%-3xRYE4_pp&mo?OPMKQ&wi_wHSZ zRqtve{ZvUnoyuh}f6Haijii2ZE0VelNx1?`lXk*KFG%u=E?fp-(Ws&larTSRde_2Z zj1RY}%@!v%xbLT5>KV^LHlvUH9x{0~zVEScMr#9bRr;l#@#{YX+-Exh_g;K|#=>!P z({_?@ZVY(9x1RbXSOMmEl2ezRQEX(h`r&Tq`KoNrxu2bU%8S|O*i9a zlfhpWFgJcMh3l#J2hV#oQ@Q#6V?e=jY5?iH6_3=M68M^|*~=FJ=A*%D5W>Z*7*-tT zdQfa8q6g@EGl9hS7P|1eJ7Br)`?!8_JO%fE7(R=^vrYxf>!UK5UIEuH;CeWq{==C7 z|2k-NuyOJs2EK;eDAoTHIAN;-uzlQ@VKHLt!g)Hi1=B$5Z_OFKLHxN7(Q1RjE zr*o?MEXJV)OrP6^lKd1t3dONYsJmnmya&mhglAFVxBtR4I0a@As#D-~;^GuI3fF@& z1=<+l6sYi=0u`Q9AmQ(kDbT^&DNw;V1u8hFKn3R%crWXR$4!B^N*Oo>-VK*dfdrCC z?aMbysW}A_?r>m3bPBZ7-2D#Tup93Nus_Xx9N#+4S)O4mLK;5yJeA z1dqY>LvUKMR@$c%L5;J@!vPgs?ttq8>Cg0+q(5H;&%ZzdQvr2deht@Kf{sT*!1jj^ z1>5m`U(k!c?LS+BSOC5R9|XQX`16NDVAkSLaFT%k2L2A5);bjYEj~CZa$oRaAMkw! z5Sd_&_~Wl&4FcD*@dT4?*?(i!+{C;9K8K~Q4Du&TBJpW>ViV>yfO`kI{M1q;!s)T? z$op<-$CUX+_}M8_{otX<4>@D%5;oR>%o+dAtcm>lkdh+*yWvvgw}2t?D-@BRP>TFN zMRF(MSycGVQ%r-%|9we~{NFFdMdUx}42%3WMu_|hPvlp4B0u33`5nAPeg!A;D>#u~ z!HN8!CsE{o0aBU@i2R*!De@CYk^crMHIbiihXWfDMScJoc!T^K0PG|G)%aHAx1b^N zD{P4T3QOd7urcH(g!vr_U~?vk{O2K9k^ehzT`&Ea{!{5sBL6TFP~^V{uD1yCTfjK- zUx-)$Ch`+lk>3I*k>7w5`4ybV@4!9eH-JQb0`jNG&kAwy1_#>K{ft=?`M&^=!%|lU z`N&T#r&Hkk zNpF^9sUElw5J!VQ{!kb!$?}*!gN_G0;csJd&gJQThT!-5;1{3-7ofTCVr_0Z=eHD; zoC4PHxTe$EV%Z=3UnHxr2i%T_y31g;(>DpLvZrBFQG}0$fHOk{jcfZ;C~X} z>+t<_FzDMo6$}}QYW{i z!5mD$XB1&~1U%Nnu&uB(;kA*-Yp5kF>1^REeJ`W%$JiU*wDN8$P>aUFu|zu|f? zpyslTsN$z?iFLk-btrfqT!(^F@%L!(b|0GJr?0?+i608S0N0`56Zm@=`axQf$AfR- z`8{a=eY#a0Qh$+-!@`b-*_Key7JXTX<+Hj5ee1xz}%=2#$b1}Zs`!v>CFP06{ zSX(6)W9m<-%g+(N10IWV>GH3cA*suhP?teTs(^2$FcuUPW-53QycIyHj17ETsLZX1 zdNd%VvHp(Iyct1|J|O5ba2*aTfYO?;!tZ{eHT1t8T@uoorx2#JhGF{==4j1n&$qP3 z202>8Af+`f$j};wxSy&~b)>Z)7VSxY?Kf-`QM3G9vRh7zy z9T!z9`?Ub*PgN>HPKh$rD!5dg>O5q;5QTB-RJ{mNbt)HR)TtPv>Mk}U?bN9>78PF3 zM}nMEqv}+{k~I}xUI*9Vz(T3Q%LRx7f(!A`p&(S?d8@>s!pn!@QiT@_8B=&sP%69- z^xohiBp8Z?q^*yN%2c;0-J(&T5_P8jOfsR~)OWWip%&9c~ zG8McFf43sW;lKty5IhFI2Sp8!elm_<+8+4GGbn|l79QiOCZ2`02&6DXpfG)=rAXwU z4H79dHS#8qq9W0&kb4A)?v~7`ljnjA5-~)P$cBVSq_K!Z*CW9s5`749RVVL%!F4#W zP>Mu@h?7L3A4nV`(f`1uNMs>nNTi@dB7)uHY@zO&FHBu4BUd5|DX=6a2w%nGp3n z7z|GEeO~}miSVb85IMoUlG2~R_Xm;^j})GR$^MvVlfNC1oL|5R{`Y^A8d0Mh8%Oe& z%H&5yncRX2CrD-TLjm>34+l2j0nsHtDyrnx5A+!;{x1`lTI3<{QPCuKU{;g-kZ6+M z7f^{j=zCDq$SqK)Mt(@t$W?>>ZArA!KlD|K}-^YWW=V-qLfcEQIHt} z{&?_j@cSA3$olbs!sQ4#3xxsecQ&Mp*w};T%5#_`Pbv(+g(Eru(31)T7ZSjoNuE^L zE1*2Ba2s5DTEPMd>&Mdy3d9o&M+KZG76^VM=tp`U>t}W*j|DvO%FE?gQm}r1j_b1y z1^2=8P;e*yVmknTACbf+;ra|*4+cENYa=P!_X3IWO!>P&{{9*;M+2S~c972jF?#|Y zhk{4t@4N8#aA1QU5B?P2UquGT1D;a0{wG7p{bqr$$lsm#dpzKgXb17iL%});>z2Rg z-;wy$za?ziy4q5^-lLO+B{D|DF;`&f`U6x=4T`yK3vf%VIK1b!^<(SX8f zm)9G>9bN#s@gr%q#c*kMr@_VS{3KSw@7M4<5{zena=KU3Z*>*+J4B{KNAC@QlhKYUB!8x%I9Gg~1*qd0627e90 z%&pzFl$r8rsuMzR{QWs%91d*Y1Hmuhhu=LiyDUZ=4*B3_40*2epZ!7xJ|eoYRJ!{I zkaY-5LZ!Q_Ac|QBkY8y)f7(iTDd6ctz%$z(5d_4HdaY)5K9()V0wvPut;j6&?6kf71#LMdz$=^)s z883&=CxV{?VgWLO7DvDf9zW7=!nI`G_ zE4Vtvb=_UKh2-t@yB)66K1tW7;9B?wx}JpV_LVq=7W^&JT$?3QNkTg*XFLw6-UQM@`Ykx^ z$6}=UjPntQep-yz8hk(VVv{H&P$-k6&qPj7NAiAlm^Wjc5zo0`@;;M!qs#noTduQw z&)(C!7ukU4`T?Q$^L%fGx7j>D88n1!7pGAfw#*B(dfh1M*u!gvB-7+L>&;Cq|Vn6`mR77@nQw@cy>iXTfusFyyM%?;V0Brlz>d17?? zk!??P`JRe#V8eV*E$(uco-6JOAIk6jmB|3x&8sBH)jC9t)qb4NdyVrp{lTWYSUdP^ zRCBFMPr}29zwd_K0<0EYuP-9Tyu=_78Wl2Kj3jglN775(2odDCBm`ru_0gg*D;DNb z=PeCmy*KDcWf?a*2$a!=XaC?e0mdU!xNMn>u$Q$(#^>d@>GRaZr=(K7ES2W9Dc;X4 z^=5cVgZ7@Tolnmz5|C(yD_udPs8=ky@~jt_K?_w16bLzDAsdD2d9LldJ}q)8brnHj zs3Oc`jkN2)3M4>6M?6{#zG0j7APOpl+itwj_6l>gLoBooG4~pmzof$!+VKofVRqKF zHbIGvdS15_jbpPU=*!nS%KHk&f~x6hCi1H;HICf*DE;*;Jx3MkYTmRVG9fV>JR|58 z!dnQ8W9WtGqh$yx0+kjjIcIjI(*yk&ldjy^7Wv#2){OeRc; zk;ohQWi!Y3oyd%(WfvSaZptf|75!~iM}jFd-!tLM{kc2Ps_CYLO6)kJ-e4%}QfG z4xg7vzkNbn?3yRUMFyT>W1#b&LW#+2DnG;2KaB%N^dWzP#dEL0KP6%U%oC=U;K4HP3fvIrR^OE z`yD(%>MFi8rR`x#S23j(0)V+$6J_16I))GT({%f7y4pA$2-c+gZPFSLrrvMM8EsB> zkS005MGez!wK0i!&6W_L@?#uU-A4m9=~_JKNWKg%-*k+QOVuBL-ESdW0Of0`IJem# zdMN^L=Zjd8Nln~zj1C3e4ww9h!u3E+aEh(OXn`nci0^s$`+Invo~kWuA5Se_@%&@r zk3TjD#j;-HpBg~hAP<_cyn1oq1DEM*e+-ooP6xv?DICnuE|dCi5B z+<kOcZL@}L(-XFh4f1NcxG}U1@}Ro` zy;{?LwrO{w$xGEM-W3+wOMv(lO8`Fdvq2v8G-=x)51KgIpd>cPgJz!EO?`Y-@C2!A z___@b$A6#eGI$6Uf+!Igi3~tSzAS8%{BYw1w3#nWcZZ*DILDBxjtK14d@(Vvgd8Tz z@uXAx@K=A<&jVxK*5gU1CJm5|Tl#rmEbW+hy^=2$s4azK`NzVd-Hb1IyWbgbAqBq1 z#d$Sfx8g}QkHTIR!fy9r!{#9ho+l~br2R3vI5N?&d@%|Ng@7>f&G>@1{21A*g8@gW zJ#eoMY#BDOM>s++wuk$%9H=Q@my2^7U)SN$n$q=;8o<|6E&vYq<48wE__|4)SMz0I z!zO@dYKZ{!^JM`-v>?D@0T|#*Gv4869C9JtnmJEkTPXbsB+!EgZU4@LLhBWIuHuXN zYCu?mn*j!I`7!cZJb*cV@EBbN^SsCi@FL?&V&cyr9)^Izh5-K1V-qUC)o{r#^lA|2 zH30h(o&~Ay$<*RwbTWwrspb5HOMds`ucpl2m0#%9AY}qjD*yD<4LHA7JFER%m)v9U zW^$MdPIi@TCmDIs$qoqNX7=mjNbbRdn)9^ z6xS{i*nYk`@nlj*-f)nPm3Y#rz4B&k39!jzQa8WhAUxeqv3r0o!hlvBx$i)a` z-7uWyUPVsJEFy5~4F`|e!lJ?~GxODeummWqYh*@d)_{5Q!DDnW7RuvAMt~O?Ux1L` z7W`!hx+Mhg5whd}9758ohR0{5ZpHVLc!Jcmd@-#|>cGt|pLf9HVLVSq2h>h(U)+6u zA}EajK*;Y_{5^yRwcu;o65crzz#9O-+@6-Io!5RtD#YRACZ^yp^C0ro!(lctio(}% zabCmML*neiU-$Ef`z7!MPsG=8Jj9x-j?tyju7XQ`8}WBH9=7Hf-pBDE9{$R&9eC%tZot4gSiHan&o5FTH$BN!pw_Ohh3AlXVEk6s6ya~*n^m>oO>s8`4z}NM7 zGO6lKE;EL|0uQ3_bv+(gHsCEkA{X<=!d5+?Ipe$>j&Nkgph7PP#fj@U9I4v`1)9eX>H@{332xE^%eEy3ylc?mp?p2&mE)SS#XlO zMkrqd)Q0B=e~iS0K@872W^=%@@2q1s4+*ikNQgub!*r71JMochX@_RG>UMOJK@bwK;0W;ypZaGGmR`X_jDKOL_;FxPQ z??K#$@JKang4WaPV|u*K;8`@!W3vPQ2*5vu2Q}sEi+Ccr{{$Yh$erMGMV+4_?te-CwGf}Ir`I|3 z`UM`ZbN(5hKNm08IiZ(p_NS6ip_haDhJli1V4_fOVCV3)0#BrQ2t14C;gP3VfS(3% zo@4TeAW144cs4}jY7+-oKkM=QiZE`cPYXJITF~j!f>5x;GeHI!W*v7UtDcssQ^V&; zsqzjKMt%&v456q|=P?^D9~Pn?5ZB=WlJNBkJeap{IY!6z>hFW{kc)?6jIB`D@Ws$f zYF{W4+XfF!-QgQy8W)(M(-)X=3E}m%jntm{*=}N=t*HIB71)okLwHbEzV5{H+|>Tm zvo6_u-no;hGoQ`(i_sZpo<0cf+?hEf4qrsM)F(h z^Y}Ii?ROdd1w6ln2c_ccyLi&6%6^;A-{9NC3Heq6($izF(`d{#Y4)r5GRSOGVQ9R$ z>36cm;OkU8nbh7}j?wWf_4lJ|pE^Pt<~P9n&XfrKHUhmgjefou8fm?Dcxc`(3e#6q zatvVT0TIC<=&5xfoa;dyq0rHl*~ zdalM(M+R<#Jg$&OICwTAk_0^)Bw>TRBz6FL43CH0p_gkbdhw72p!m`Vj+uKEymm?G zcD{DwiEJEP504_AdK(8e%-;wYoCe;8`S2_bsZo%6Ip+tmi*Q;5qFJ{;#>3&m_hJcl zg@4j`McR-lD%{Jd`~E&nk%=pd?h@Z`0Mn`E$1Eh>7L;yV5DN>0v!HNVNN?7;6N!p3 zy3}?8u9e)k^K}&-NCPX72HJS$(`FLJl}z3taqDHm^9Y)WTV%{SGe&5f1Mhk`BKi08 z^=3TanI6Bz7S+bK)0nN1{kCwd_~nw$cD~pK&zClkiLDZu*eaOVY&zbAvjuS)7nGs* z<3WT5ad$|l8xD-1UJi|{mrtZ$0kAS2jCw56^k@A%dP^@B&Y!@npT`AU50FVb3$Xb0 zND;l_vFUdM9&b=vusUAtskgi0v5?d-H;rWqEne(H2$&W^@OB_|ZiE~%27?zsx{NRz z>rQyF*L~DBkPQ-Ij5-Ou8{QA$0aZEq7#%twUE_1OHfAtCDKWty+Rl}s?yXuwPF0tr zEPvP{8%=dA(|MWsUTWSp{5JD_t9f%t!QZd+CF@ObhDoE#DUnfy4x0{Pe1CHK_UHSb zWv>C-HpR^Ir`27CaR^HP8Qi zxL4KjCoJoA9UjN?!cCUg`mr6D*5Bc=KO0W}uUJpKegD6xWX89e7wq zu8QsNb~x_9W80T)`_w0;`s?4$``Br|s%d{T%y9{xjRr0rPKy;>Guw5sjb~S|aroN+%e7(LpX;}G;^8{$DLnRP z{kf!SM5xJKX~H_mM&Ym?3&_Wf32{-SXj2NI9RC_mW`H&CPs?YW%-Gr;c{-g zQZ5v$)#0(7sb$-%#Y%PA&dP9g*Pi^c{Mb;XJUp~yY-rDtN>^85S+zV-0qnBE{{2g; zwUK2z$0nAH3=dXoLxmT=c-e}j7cUzgD~wDG6_*VT*Q)cFTycLbHJggmfgQ|Oi}P2a z8B?m2%Oizd`Qb4%b7d5*G&Zq+iD}ScesFjRTWh>h9Gn;)sVy7ISN08$E!n?jRc_Ua zWoXi6I}3&S5&dSKu@p0R7`u-dNtq^B=V#Z0ICfSml`Er2!r)5R3Zz!pwFF5no2XW7 za`RA9i&{fyvzbw~>5?rQ%@=kJkIjr5&8L{Jj?P%$=2NR4sMf>%LV0wwJciSL7{eg@ zyDCMV{~H_1m4Hyi3f+5_77C;S7^*ov47hX`naHu?zFdA}q+H1303p0UvIvqN*;(c& zQ6Tyh%45}9Wuj11uZgkYy%WXUc#V;ePJ>K$kqIsADi-!s0k;6FDI`+NkCNZ0hE7wW z8p?>Ym>tp|8?FuKM}}`G4w)<_#z%^bI9i@G1uGy45-X-w8^Xy(Kt2tHIWS(#)hc-s z9t0J}$8(;Srp8Rh^TVe2{2E46u@%rtA9}xQK18B>aCdLXbkkta<)4|PitiyQ{l=V=NVhICvC|4dgpkouG#R^)= z)drZ1E-Fk^D#ft^@dX~S>cJ<97w~W$k23~6LXnpYkCEFVhM{}3FyrOw@O}q+vZlk5 z;20X<@)ed8n8-L~jZzyPWhqb-K?`-Vt~JFkcmOMafTO6zzH)_K3Di)N z4Oh&_hBuh+YQ9v&_#8zjbHFImREBE@@QFI@#OPdN&i%p%sY)-xiPDVbYrE8izw$AS(VwENBtOU1pZ4d-p}{oNauZidIP1xxYqy&HPy`NebwjE0T<&noimw-Zs~YQCjiq(;%`%%+S)RoYU_aeZ*J^3`-LxTYm>4)+}3d}9GQy{@Z^G} znb+>?$ozI;2j6MjV&i4>)lAUQwm>4?eREG+d**dG(ZT9{@8Bl9)9pQYGCxRd%AC=G z+#kJ#d3`Uv6s#zcd73Tnxkx3Qc`ReoI&w1`>(5e4!)VMTov9@JpC;LT0B5?G-6m%D zh9HvN?|Z2{Edxl+e4)+!)j_c7+9k`DF(D-I^!ChW(J%|~naNzz)An@txd5M=+fK^- zb-Jf*Vdjr+?hto}fCicO-@NoC>C;&)m+~)zpl4_1qqpo}TJ0U}s8LCZxsbjLbRhK?U{3k zPx+-N;5i-eMYagZvu$mti(bc}RJ#*61NL?Qa zg7*RR1FU7{t2d$(&Ie?s9aU=2+`uZpjlT<|3h#G~@z*yl%{*}n%k#4~Rv*aB9L~|6 zc@X{&nd+r8Uz2jZH}S0v8-|ypj%=E+j^B{D?`|uZR(a!%JET=Ie+orG)N2WIWj~*^ zbRiL8k?q7!WCE7%57QlOi!wg|;;6eV^9Rz3e|wS+mZd$YVCL}}VV{y#eoDgcLMvx7 z??LYEna6^T%yX8uot*g}jFD52Gn4!jFcMbFQT6{pgayk0_alWnCG*9D9TJwwd=gEx zDD&FPU1r3-6$SA}EYXxBc2RrgNCqP*^J4($pk0*t=k(HxKp@hYZ{JK>m2THzWNY}Z zso**U*3dMWlR94d0vV2-Ye_}`%I-kjfprZ;}cM&0IFR@ub z8c?9!tn5;jzh7LeHC!2BIqL9d0AfuUevJ%u-6l=xaf$m&3o1N_2mIJdhwzEV2kP(i>O<^@Nk{jzO zjg<4X3oq)J7^@EN1P|B&*o!*EcU{PW_ki_UyH*z#8s(x6@p4SM`mXE1zf|tJEt@aS zsKJhCk6EoE2dhlVPUjAZ*amr}WHT#4j{VQHmD>$!GqtgIKFZ*q&)wGsHb zi#jGDU6FDO)K=D*e($Ef*)?Mqn{mU6-hMRbz>3^tHoJ9OZtJ$r9BVgFTcvH$dRGnP zdk0n`uN6c2T0T3Ox-!3~xPeQ&t>Xi-9P5epjQ^!AeF6%z9JXvwmR#>xuUW=Pt*c$j za|7Uw#}DMV-l}H%3VoXk16}bp$@P{{tx`72%CR9=Vl7xLX191qu^N|eLB5d>SBkxT zn*ltq9Pp`JZnQX>%JtPM+T5*lVtydI6-}HHJZOY77y*LMbHT8#?%dU4GDucjw(ec4 zVLzyV<$0}$1!uXE-&xG=mZ33FU6JcAjw9NYx#4PVq=+t;<_2O_S67OVU=#qmdv_tV zvslw*uMA_q?@tgKcCA67gfxV!-t6xF&1^s*{tO*h7^q^*U|2hx=vq$sf|CaH_LT?# zoofg#DwQ(2cY_s$D2)l}UZbwU@RqKc8FF@gYDw1#7*Aa*(5li9dB}rzjsYQ8=Rmwy zgV+{#Rxk)eAe0}g^$uP!*u?=rTo~R@jOiU4pQyQUI0OMi9!u~Zj=&4orNVA9!iii? z*4e{j974=9mAg7WGJzMU@&JY~mim-sRjRdIxx~Jz3R;HMHiK6?5(KZh3vz=!xmp>q zYMM-~YgIhs-a>Xo74ju??pPU1yRb{~c5=Hwu(d(PyN^rF#t7^v0F;n(=qNp}yqzl$@l9V=;qy%~p2~q}r9kV1;Jo zd{11?%Hf7&BstnZ0zmI-%`-f^`v+Emp!E*zPaX6n(r8-9Gk4|3b{2Eof&k+Tj2+tv zX?89LjxjduTOAV|S7b&(`Z+^EwpuNWA4u(UGYOU{;A?V9-Ust25O+IbB(mk9X^YXd zJTmo=6z2+EQs=60Ph_2PApgQW4dh1i`(-@$$Y_f%P!dZRELH4EVb7L{(GBHdsZ`}) zMGrtAUK|-hRs*%w*oWJPJm!JqU?&Z zD+r4LNIrG`OSi^S2Nds`4Y_UC_GNQ@{k>bZ$quMnp=kD1y8FN#zxzPh89$= zTaq>7<#CYg!XDz?l~_&-GwhLug#4+ibEs(egkrX@WR^d6c+Q0a=vt|pt)UB(Mj|_5 za&uQrU@IOo40<=0$Ap&4cb}+!USV3MJW<2Ku!Q+0C;U9c4%OQ7ZY2L5z=N zvG_CMRN8IsDdk71MYHaR6~bSB=wQPvLAEPYQ|MYA`CP?;T&yXbLrbj~FLQZgH~)M4 zT5i2;SEoy}4AiIe#mur4luBcg1@aaay?q4;+&XjHaylwWVWg*}j~%B$WFs@66O^bQ zh>!p+eM1?_I^=kS2rL&OuoY&lq19%n0Obd(;>)2dWPrQP7>YIR^!;m>@RoYE+-er* zjNAk?%oZPt2xVE%=4$ytv}Jr5D@&OUVH>R^&}YNvv@A-nC z;sT=XKu*{xWpqWpI8>e(j1P!Xk49J9-U5<6X z8CBI)MpT9bk`fi5HW78K$gviyqO=oOFyXLmWAw7w)}W;gQD}B`NJew}cr}kfCk?Y4 zYMxzPBB0Oi?S*ge?%mmJ-$1p0GkE*WVC*m&&?nW)dapnk(XT_hC#p5Onuu^VNg<8x zLu~_p52YTZgXq1Q1$~EP-K@a6>WWGrh{r@6E{}T2mtaF?r%4(x+1Cci{yh>UEY3T%+k5mbCb{`sah8-oJxlM@wwmxuK3LM;K&||v7`)c+^{J{%c7xiMjMEFXR873;TbP7MwZ4Og%fgl?a=tpkd?lO=1!5v?+NnSGl}yZb0x zQ#Dkf#avJ60@=22qzawcX?V3O20OFau)L(1x$DOE?d~Jm;cZf!VX6m--e`oY^#@l= zovw1o<=6|LviNv@Cz*b%-B9@&G@QXva2013?JAiZsCMUTWYz~Lgsf3TFpBVoVB1+l z@iHy}ZvjzRW;@Y_(>=Kod|jyphGZ%au7&ir&Ril(524O(Hw5IV(QXKOv2H46g*FIv za5e_#L+B9-XqAF|B_P~JOL0PtrqOb**%p|ETpgl^)o42sH@o-t4;6I?)+eLnQG^Vdm6Y3zQ9%f!dPAVDB&-Eor_Mn(+nu1p zK9SqBBAmB&p8fPQaH%OvE8;E{>ZnSHsI18DKDiReQKhQY@hd17 zNDUQgP<)ULavu56W|$4ziDsNk9n7ugK2vTNs0dU>LJFpNHM`v=B)uT>7ddv>_KkH+ zq8pn{+vzUpPTl|}%M$Vs)r)Ozf4oE46$}Jl(MMQyh@8gqSbpb*OFcLmR5VI>AlWi@ zt-=P1jWY&?UAe+!Zm$s|R;oQ1&j}qqioB4DO1^L)4#L@4Y|miA9-9~$(S3g_Vm1BO zXqnl)2Gfgj?$p4`Ss9k2=4M2O5&=EsQcofPrLmpJ9KByDPU7%ns6^D`R10xO+y95> zXJLt|h5T4awji``98oh0mFKT>dj#A2`m+7(0Z?>r%`6kFDl2H96Nn@?rdJe> z&5EIUTB0%@qY@VKpYul5Kwf0~8KO!Kdz`BBu{UfXVTk5mr-s|YCn)KQIykiB+;4*D zn7PAD8%`pqqsLA;rrTCR$56F3NmYdR57`sd2{Wiv7j@tXuBJQA)rgX(XxYr`>?w>E zb>Fbv4ZaAn>h)w(`mvnah6M)>J`T(3$77aa%bf!E2FQz1+!8OFC>NSdHw=t4aEM-}euH2T;530tuSR}Q2`2P@p8Bq8uPkXG0+ z?HWkjBURKQ@6g0;rcU}g<^rB~sK8h~kN)eF$}h470VlCM;_t$QWM z@s%PzcS<;&**TrnP%121IE7a9a5jq~PA;xzjVjv8a_Z^sj1Mg$Xs-y#Wf>|m0`S7{ ztdFFe3Uvxxl{;~)l$=7a`l+U8Fo5hXm_7Yt&ijOWYApy;M5xWZ%EZ{@9vqgRhM6;Y zQn@%+f-VAN22>d5GDZ155Pb%6cLn=`wep_Sz=5&au3~j29wB5&&CoJD1G2%ANQo{+ z?k*TzA@*UDp-`Ss@)j~4-4HU>*I|Zu5mF$i6M+s08xq^xTEUSS(yAE*SCo7;(ndURm8gtd<9AvkR%uph~0#(ZZ`%Mb(0F(%gox|a~wMx5O$5iKZel5B`k$x7x4 zc7MHnTdP=V!r_k zyRuZlMv~>0Ef$zDVYZQUvN5x(sBxfZouSMZ)GHQoQ&x@_ZX9=~;i{@krU#d(Zli~n zLI!gNeN(5LgK3@JibHp;Y^4eT+RFJLsb>okq-vL2&F)k<;8BS>Dx@tCLX|4lAKX4s zXt=kpD;+0c#!`3>L@Fc01-Lw)q#r)Y~?j|6Jgoy> zTdIx_k_KuHnrE{pK()4drUg7Kufxp7SDG?Fr1|PE)=KU`w>{qb!j~wT%sfG2`Q-@A zhArFruc(jZhDdcKaXM62o#r%O6Xgic_-PZz&ehFP*yQOICJZCgZ~3Hh3F$-5Xu!>S zlM^R4=3QMK`;kxyr~aAk@0XbVj*RX`OK4ABO{kf7-cXL#!E+YsrdVZSg#(1P$LcUu zxTA91Z`tO|#>nxyO^~7CU>!*Y=fmo_)!K~ibIeiSq!)5zu>j*Y4JFiOF=VMvlEJp; zZ<6eD^K68rxuzSMkC@;tnvZHYkO`bTHVW9%saJjXzIUbkS-hSM*<_oO3P3&Z$D!!!sDM zGjEMf{-6>(^yAKs&I_l8X@M*LCfBCb~u_T8M$vIp_j0R1&^Gzr!tN?aX%9& zmE(;`O>2|4wU=mdKU@yXu-PQdW5=z|><#-~>+Mn8X4iHyr?|CUcJDNMcNcYZPMGG6 zTgX_Y2W~`>8WP^p@P1efkb~QeO5B2_%%-{nC##2Pk6sQDa*9wxp5;;<@sU9qrw~$? zEs}%0qR>jgrc-20PJ+sFH`90zSrc2S1q2wU7vs@Pa6tfH4xYeWsX6)zK2@5e+ zDac>NNN7+!J3NPmX?uaj^Hn~tovB=_3UcLal@-dqtbcvq<(Lkj_AolgJbayBq^Sqp z+<;6nqcS#^a{*%yAJiY9i9roYV<-?+=a#GLoR0AMV5zy1-jr2EHM@nJ+f%HJ6-S_< zRZ`^vcK;eR#6LO?D^OyRe{@`o#IDHh-8$aAbzBZ!59;w6m?jLF%=s!SWjr{AIYJ7n zLS%}`T2p=-Pwd7gdrm}`J^|T^CPU8kmC~%S$OaQfOC?r;<;+U`GbpJv&tMs*P-7UU8K8;NW`>^m6^TRZ2^U)y#2Mgn^&xPzE~lEeV4#MX(LZ|)Rhkk)@> z^4L5u$0Y{Z1(eksB6BlY z$XZ$@e<$}51@gpvWrdF6{#o6#=*VZB3CMg+hS>`7S|{qkfT)2D7ml@je5lLs`0H_lV>A!BO?VaL=Wy%M+AhFxVZW4qoO(*50#H92VA$=oa$!8$n03%J+2T zBsNo>s4sVUzIv%80qjJxVy4C-G`FGNj}?Fs*zj~j3&mQ&DNW9OxHH&plHd_MGg>2- zrZL#vGyuC##hvBK0e5QOs={ecI%?TcA^o~@K!FP>^wx}_0I389^ESRj(Eks>$S{dcVbvBePcE=9D z$XPQ*12ni~SL;`<-yxH0!`8BOvC~s_wx{*#N(EbP8BjbKue^zpmY)qTzHwWD#(X^M zA*JzLX}mL69WRVHbI9C~FO8GMQ%bgi^bhGP_ z*{+8S{LFI9*(PikT1`t%;%3&CduG-`Ej&GjBM4)S(NG3nD?^q~Ba&jF&})3oPr2?{ zB3Mj_gV^CluiVWt^X9G`yDaR_d$urj&)p+B2@ch+VsU}0_IGsCBYJMZbVvlmHhOHx zfTy9X8N7=IxDK$Ix^!h{~r-c7R> ztQH_qt-;VNCT)ACg*kEx^pdM-(0{QT9h5D$n*)B=m^!<4hhd;~?;>(^LVG?0Ow2~p zB!x!6zF4)0G7n&N5s{kOGmdfgVtR`Z%5l`ewdqR{EB*-~FNxjf+3!wZ5|~-J0@he$ z^Eh0Hnwe-?orMw>pwTVwdEasNt^%W`jaqR7o2Aq)Mg!{H2M{p}HQhlPkOC_RkEhDZ zc|=t-l;s&EPz%}eL~G@Sc0E3mCI#gpVl7T?u9BtWyq6_ZI@rDqVs7bbSncx8j7`5G z(o&^-$Z68@n```m4YIe1<#M?B3N~J8akW_71ACW3iW3`Q zGZPE)<9gRkT~x>9C0nbOpKo+ogKS()$GoaVJaY2$jzFQ5nN$Mi->q?(t3xG0og*3& zTGrjevUw*jDhYx0@u6a2gv`qY#-`ElX{*;!)DiXhrA)P!uEvXrvMO03?YqE=6Q+%vOIBMFTGhf z(Oi?9yADm$xTRVDGou2DuIwnSN9B$!%njkMXIug=I*Xp z^vO@7n%SKfVIXi!3WwZr9-J1xbxVdxdOEQ4hieo>;f6>#?M1|f-3%&R2zL^a&1ozZ z4EvS}xYH4*9ylMwyAp){&l6W)d@TDL*k{m8u)5J3d%5YyvrGX5HCNT@w3hvduU))OCrd8t`!9gOQ} zN!7v=W^uYchby_X3q-CGxln}j$No~qTzEMDjG9^4VALe%Rm@))o0!um;g7Oob;b(M zkkL$T6~|Ix+EZ+m!!Q%5vC{*L?GDeOnN)H^OucO1P_Nxi^)DqtL4^e19z$n|4IWAS zHOASl48gdy9yiX0tW<+6e#36V-Tc(SI)dVqSgd3tO5r>B$S?X(+C=8%7Sj)Vn-ewY@v4yfO@4U{tWZG?K4~DMyq5Yzu6qVZ5zU zQ@dG6c(7>zTEU@>0UX|VU*{GV&fYRv8664~*-bfmQ3wZ`*DNjJh|l7$vD@aDt^8{R zlJuqJEIBF52{WC*=027ga-kj5X2)wO3_0wI6@bHX;f2wU1QSC9w#zc;F`chDxc< zQletExe7AUt@W%vW0i+%%)EP`8VF!8<3T~F?q&(@NwIdPVUuyVRy|SsjywqM8PCyq zf8McFM+OF-)n4;SUSc}2$Bm6*zLd%7b8saNZGw?}LGSbq8UN_o+e|Qx6q?B2%nrrO z8oz2w2a6TsRdZA-f)d(>G1-kRjw>V;{JfQ5-Mw)j$O>8`Z*Z>;rD^8elxI8>sAHuC z_UL;Pl3YCyk5TCgIKO&LVY=?*D|Nffog3(lB$v8M38$S85{z+TU|TaGGH0juT!G7U zuxPMXB9qw$S0;@nJEr+=F?9*+gHQs%p?gg06or5+Kn?6f9>8ft#q2T=1x+$?c1#*X z^4D}HsLL>DX~7(<4tfebkyp_0rSP<1J8Pg`9Umd?;HM8#}q{hDLZ1SEKVhavh<+7{e_H zBjvogM^BMk8g^P@=qyr5T%|3xWs~|>k$YrG;?U@znCL^jN^`6_ymPEL)WMS`NDG(- zrq>;Ss?%xEh~WVm<~!{U4W%NasX$%m`-b)3*>>`!Qib4(T5`#As z^qSr-aZ9z4a~x0rvv!R)ZwC?h2|s#(lUn35l|&cGtaqV6k#83pqB$Ypq?XD z?q%FrYP6$JYf zu22mV3)JvYrRgSzuI`QHePdVZ4N5R7&GYh5LX{n$=}t*5-!MAfy9ErH9GAqfyP|Ir zBp^G;6A@g!CGJyz*#XfJeICz`cWLNq?j*Ot# zHgB@X?wk&}mMD2je5u~c@kCr2n(83aq}9bx`MhU23xG9kfE7XD12U*kzdbdaJl_ z2s9q4p^!7wZghKfjiVuHl(o)oA@Cn4VpS;KDvZeC$oPh-6EpSnbf|bz?H8!L(iyvA zp0GRdC^$nM*`l%f1UM^en_RJ^+PTD+?so$umdnR;M zY!zzJ>9#4@3df};8nS6sTyxu9z0sihYGKmJiBd5^hYMy2N6mRA1`7O;-HZ%V4MU87 z2zzV$oBbLJAA22_7^m4Br*XTQLL=>x$Wt1NBU5;%{S0jA8hg-BI8e)g;*c)pnW&ng zrH-(OrDrO;)>x462yh+V4fkv4%~PCvxa(%c-OzNiw@;E3;@b1^@nWT5&v90H*S8^U zeFX@b!TgQMo~dj|ipU0xq!v;nnDr1UaX?|(>qBPla1MQc@Fo!h&0@69L)O$>7;8`Y zl`DF&t&k#bZchm3EXo)XkqwpVN#wZbDo{C*+%Sk)+1wscpGBNOZm!Z_u{Rc#n=51$OB{T=mLG`fwBGR$zti``DM zN1AL$)Q+J0Sj)!A;H|X(xFkvv(Rho{O2F&k2)#cC%~3w3H>C^I()Lq)?V7G*a6V6^ked z*S)cNWYV17wx;XNTP335+y-3pBu{pAM+C-MwVjX*>?#)a$Ys&Z=G!!RHZ2*~t5kD1 zDab3TP(8#Aj8)jx!bFjxutOGIj{kQXt*V=QxgxyisWR- zDBMw~pA>DhIQgquul7W9TLvpQxIjghZHF+hx@>1_?>_yq3v>~@i&|o6PJ~5RN^K(NJqoZ~Ti-`}rM{3~gsgBC>iNK_eK#C{6 zb34Z-FdYs~KoAYd4J%ZK!S}I1gl6IHj53xN1C?s9)xabz8{$rdZ|r?p?>5f@Qv@qX zn^fs?d}N~P;tcey-vD(?pIUd#IQ1x#X_@!NlZc&exbnd!mN3cFn-iQhWt!c|OqRkf ztLI^!Pz~yk_9ds$*tIn+3^Fn+aib^osD!ng#LGRW?^hW-SeIJe8rzQ{5>oF-Sp_U5 zoGyjWXBt>lpw)zYCZ-<$M72N}SCP^uo6hYQKz46#X@iuwxl`l=Io#r{Bh1z+nSo-l zHCgCv0fIWl1&l3pn=fQQhPxy7dIu*;bK+18?PzxINEE28iqfv)2$nNeNPGgTinBT9 z)YLv|7n24$eGYR0BQ0c`5#RV!`MT8B@oCJNf~+;Q*uvDm7Z)I7&S}KHg-fueU`;2S zAY2JMCaQeo(0RUA>+TY)8HOW}R|S_;M8G|vG{2;{G?OHC6Cxx82D0{| zO?>EqFi;+bg;G*;>BcH|=|)VUw`8xq7Q0(WhyBAuPE-d`4!}mRh7Qc-NJfZQuE@w% zR<(gnVK{LZG73e+)&4<;F_;4#gM|(mH*SAxxIAXWiE{Xj+96SCRf2mpV=OG1@YOgG zOii*`s;t>&jdPGCHA630lxTB{wWgkShbDxJAh~YPb+1AL({z3v(^_Qag?)-(NJ~c_ zt>snh9Yohfl9N+E&&&P4X~ue8e@$S z-Jge@E$G6;H^*DWE8DP5?}^xx5d8z|anFm|J=L++1g~b7X>~+rvb{}}3xlRJ$WH|k zbVW1+o#86S9Yj45@)n_CmJ%;n0zLcLT+%ZO7QqlOL(`g%m>_)3N7cK)T(_M7+To4} zi!P9uHsA;*Uqz|XZZ~5uStn;Bc~spVjRXVGwMs4m;?+P@mw}z=ERQUTVONAel0|$1 zpgTb(8WXv~M1?}RT6vFM92o=5c83vZlt+f3h6H1OdO{RyCt5QY!aP%k5WGi>@tU@c zGAa$%H5YXV@7N(7&}5wC?L#rCP{G^vfu@|r#0y~PWM2h3TRNa(jGri73B!}iV?T0i zD65)f;L|N+%M*j8EmjbMUU7$UT{DwmHXp2Mt}tm%7=v%O8xXwS0TSo@NEM4zcV#@( zp;UjY6J#IyXq2j25v1%54tsYi4V1Y`&>fWCQQ9pmZ!HdCr1u2kMSzXx}Gs98_0U}O$kZB)RbeK>DD11gHNlKU7`OU3{s zyU{zgt4J&wN~xY75Lm>#Cjd`8)iSSV&CaDI2y6*C^|Ja(G}s1iC~O@ckUb{37XrrC zX`TZQuA4E6qqD!q%*32dKXXGjh*LP{xpAk1n_Fc&EBO&DPjH=meynEf#VYo$T`Ot} z#vhHtEA;_!g^i%lAujJ|tWA+EjATW*51r~36GO7TthXa3G(7D8hBTk|JvR?a z^bQ+pn(bN`Maltj_FL&ntn)l^HX1gaDF@bCgkreSJ z4ft6Ly1iSjUVlaJMv(rP+M+MEX`HaH6(s`nez_rGy0~8l?|R?_*$M-1OzF|QLF}-jJL0Gl;t3$u z9)dysW3AbGxLbG8Pi8!{4VJuCE-a`eLS3C!US2C>*2eyxGv?w9ra=e0kuDNV7+Ccp z3ctnD+HzGj6Km|o+LhInwRT38X%uBdt6nX-wjs9(6)pgU1#YP)W1ADeHtz_bJ- zmmEkV7e%zTENheGWp=!($|O~Co8*BenoL>iZ8K}ks(884h|QP|X^<}()r zqOq#8hEQM8spX#H{vXC16_vO?=q0CwV{yB2Zi2JxK+TzB3(>5&q(v~HC{ww+ zezX^oBWHt6MXD+d6U|U8g{;BWe&~|eP3zgKQIp|Y>ExlRX2yoa2nx?1#xOf^*4!hy zz{&WwWs>@HStpB)h%u3Ray=x*cE|$%wGfFehj?4$P2lEXb_DW5a?P@-U)T>_aM&IZ z`5#4kuu){yJizT4iTL z-12QOIA2}s$%S1J+q<0q$DkloG3Nv0tFk$tT;&YdTkW-mg~Oc=5{h0kEJI)Jf8a}* z0x^xHv(5>l_2Fr8Xv!7JBVvws*61ompzL`e;b$gO@o9qOLk&!D-C1=4HQ&m z!UG>e){a)P&^R;VY>senS$DJu7 zuq?=lZAEZ9-y{ir9m$-`u;5U+-B|{ez}Z+UIuQCCxl9E|GQ~W#mavUG90qfQnl zZl4gjv3;b0;U9FRenIRlN%*5Sdn5CRbK=ivDBQp-E@Atsr>OtlVL? z+_+WT^LHX-?d9T<5_0eu`Hfq$rQsw}5??YyDggWDXveY9 z@=#Ij_+#f7eGGkG>Ez%tZ@`G-*VMQvjAzzo16t>!sK!?clCH@h%hUOzY zHr>0+39HPDi(@o#k{d3mu|}9|tOBmMYL9;1~kg zt-D%brlFWE$xk;uQ#sL7-5pWXFM7v!ys`;?G;+jNI_K)}c9i;p2OXs7&EYX6 z#EiRH)}*J$ss=^tFgqUh1o3br{AA_+Iad%7od`yi@SuiOb{8{Zx}kf-qitq|2#g*gT`IwrlOZc%trbPmIA z3w9sO^&GSerTm>Fe#3S)B`+ouhX5)~v$b<%GP0(#1u~chQ7P>a3w4c% z>da=dJpvYs*8HZKuCY^tJlTwr;hrK$Y@=E%$~u)mQPqenjr%8OhvhjtL4fH4HNprkWbCGObM1h;2ZFko)yfs1f<6egIopqv`^j77s%$IgS*Vslo-^ z`H}Hmc}P6ND@huj)G=K)cMLJxWK zr+$M7m+byBOWt_smE6@x9!#UQwYPnEpb4QBrt8W7Ys)*;ZXGC(R53w#``uRg2P8DK z9KeRCM;~#O6|H~>#cA0LYHSqpk_Kzm^y1vWnw%W~Cx|=!zbW<97PA#jE}g6y%aBma zABk!o6;z)$S`B#dRlgZB}B|y#DAMWNRuf zAbw1{TVPfA1)=1R-?oVf%@gI;Me_~NoyHU|Vk^rEgSZ+IJVrGFMbnMt^5&{KINHY* z;}AJ)Yx!PgS=d^shz91toRPYS86i#)AvYr1ik4H2YCy>(sMMy8HmHn7rq#+wF#N<; zZjEr1PkU`3(ANss6`u^>p46+=VnxJsb5w3jW(m>{}J z%3=C}Dx5qn279YR%@Tt-3~^{bU0oKfBA{ywFXnJXpGtGM?~Q%-Vt!8!i{v49`T={A z1G&oZ&RsRik(yRWO!aB6WSJN*?n9(j(M^0P>LlhpRaZKs7|W1eXS z1;Dl?7(dti;DT}LIk)toykjcSDqTO6#ju5211K1WlZwd zP#dLXM!gkP4Liq$Xf4e!zD&c@gV`!V4cXrr(Q`;n3E4;_8tJL}hdrv{CGhqrN8k1> z8@8b{gA4l$^E(PS zh)z$+&CqGt)SfL9qnBa}ALyAN0|*0wq$MdK^2h^QIj`P1#R`FxMW)VZ2WlY|F`K}NR!LO-SqSAq-}CsG8CDJCmGg&bya__i3AjVaBvqEYT(R|< zY=2@G!Lh?Ry)0o6C)tGDG+r&{y7ch2;h~kIsiuajYDdrk9iLTu|0#Ijq zt7G_+Yo->j6_Du*3v)F^i*4|oqc!YaW6wN?nv|g5jJi+HGu9dDc2`*WOmo1h9-LWM zBwEV|%RDvlzG=>yHhT=nYhXiRogr~u=rz!IvP_3v*<@$9r(`=RDuh#_w42*k21}pN z6cQfGD^Rk>y+eU9Nlk)%5B2S>d_)AQ4u8FKBE)df2{t!a=BPBRI>EYluab}AS|prs zJW(78XN+|DegkC7e`=3>~EJJcH;+{ zFkLH$hKYYgzzG||oebtg<7BR4Cf_-n+yX}$=uQ;KN)t>#vwT1SMTqC~~aSeBUvDZ}}xsvevS(MmMGK*B|3!4qQC zIgF8@Mc8pn914~)m|bkMS8~EQMyG{Bp&OUd(CvC-np9wLn2x1|k?E2Tmj zGz-jEDVm3W^<=PWjZMvf)%4bSbhg{{w&w?P5c`IP(8(r)GK$g4P1DSk;6dU>9Iyoo z(_Em#D3?`JBvoE6D*QQY2UD&ghAKmL!{{|z#b#sOl4h)QCUr<_PH@DgP`fi84w@)( zpE&!LY^AX8DCw?1wUwpzx@AV$X3Rv!a%UnVR?nEu2S%+q?}rU2T{q3Ly{5a|%knhM z9S+`X6dkm`THDFTUX4}FVRB@lw?gND!o9iA&=|2HW8vx9%pJ!;286V@>l0-Id>HMau7klFy}~-8(gaTKaFmSwq*>( zu%!ldj$JqkvnL03t28XT_Y-y}c7791u1`js3V4c9ghliP&{o7$&miBkslY=lT1o7yak z^;>cnhye~MIwpKOq1`#WW6)W~8 zR_r2)7&T&#Dj^Ap8N^mq5_^wQ)UG|EMk$KgYQ$*K+FHA{iCX{n`<&N}>sH%uf8Tx| z|ML*f`~G}B=kxiTanC*H+;h$?<69`Ymz;4icjXHE7Vp+U=1x?YylCGmEV63*UfueZ zFWz24xoW3s-;U9J%M=eU<*%_m)}eU&4pCL*@yszDqa`UOvQM`T@6OV(yGQis{1Pf5+Ow83w(A$6O7ZwjX+G%{uM=-+a{S;h(u@oV2gx^!@!izH_&p8uZpN)4L93 zbw|=FT1R#og1g0Z?ApGQdFJyUe>nf?12XhcH`W{D@3!tqCza)km^Zgl*{}Bd%af7i zlTIbsi|Yvm4o`Z^w-UO&?Iynhtfx}n{zU)dVlAx)arST7-h3$h;oIszd^|Z`66bJ( z`kT9~>-09ie>2`}RL!+r&cSw(vtnF#@fVvX`_tzC>@!04UH`$OJ-8z6O?&^%TI%?% zuH$Ejp48!@G(FW|os9YSKU4p3GV_0UcGZwGt9tU=dUn4oi~sK6Ty~M=It=qHs$L{z zt(|fR#wBp(v#9EIko&;pUBUBV-*G#Gd{1WH!(hmr{qiivw;rYIeAxDX*g@5Oa zh;Z5v{#z4ezv960jNQ9FeUdJB*Uj0R?JUpCF)snJJ~IAr=-ScYr@Wlc9F!{MaHp@H zLy&_Hxw*vX`({^GzU2>#k|Sez8b{chgHr29sm;0nAAR+qGqi>t)s)s9z%tfjHsy|F zovV)P${#)^lD^cmUx8MX=Ml(ln}7Et0(o3Q*Y@&_oBqz)|7u%mo&}c+R^$N7x-i4~ zsS)exz;aGS7MJrLh9R06pDU-<_~~c+*FP0>+v#v?o;la;AGv>XVT=9l zT)j)n{J~#6KL4xB)$|vdOUdOO@BD>kd19*lk*P_i*R2`*A9hFQmiz*@t^?*&nG639 zGw8qil+Z1Pb=Qx1J-&7MpI%BMA04tiwhlG^^sw>2_;@lK{=09}-(K7Qt&K?8Fnvz{ zyPxaFfpTxzD-P3NIko>ZrJmZhUlAnprML609-li7yC-@Xrv1lLoDNz4{Krt_wkWxF zMy}>E&$Bt69r~}AvVQNP*SwgQp*g*1=hxZb*d!}+-kNjDpqCt}P?w9P)~ z>ZNOuAva@2m_KUyrd#%}a_kSFu%DH%I{)Tdvw!&QnlvXT&x~4uft7p<$r*sce}4FH zq%sWSwG1}HWpJ8Qsg3Ls+lL@|Q6r6atb3f>2-lG=6KoPY=C_nMAWfFoWO42z+(x>N z(h^zhBa6ZES0jyAtXrJx2+eaGw}hFOWq2}&+8xKW+I}-`K8Jc^<+W40HPR&5V$w(j zz7FMv%4>)AwM?HhUWQS~q0Bvb9gxO1)*~+Yh-4$(N4br59V2}WN^`^J(m9QGIK5y?j;8|6OQZH((!DIJ)mn0rV{_eP$5ZerUc*S{nY@OFErpAxYbslMx6HOIwyZWEmu#*%-SXIs z61@j>lhY@nT=8KVX@4a*CC3;g%cV-`|+=RMg^6YkLSOfh<~}MzncU9gXZkB@2}n@ ze>NZfew=qt(0?|by=VXA=V9Klu>R5L@9ytEuHvn(motCWCL%m2s&CEy?ZaZ~$o{x_ z=YgJ4{j(1L^+f8SQG9@egorS1=vDpAVXSqYEm(5I7p716PW><^i*+jr<7hXRhd`qQfB zo(%=er*X(mlXk~S`eTZIpJcC5+A~VX_YC@lt5HHu!A6vjop|{MOHS4})?$8DWzCuP zG4dT%2YGmmG}Eb9k3P|kdz9vD-FLSSZpQuB_SdSbk<2laIJr~o;S{GZvb~j(;;qQl z@N|k(8adxeN%>afYNU3mFSS#CTBq2{sXi~K{Pa%srFY8rc8W7P)tAvJKeJPPnVs^p zI>kOt_4zpEXLqX4@yJM*$J=wu)yU%INjdt$)yV4<=X2_h9U8K?Ym zPVMX5elxfl<=+JI%GIdgR9^+B{7O#sRWi$8N?M_G>Ae|T`mmUd%>mSya8gDYq{6MEzm-d^%)jV_I7}tIi$SYT)u2Wpk zDQ;l)_sv$Rp;LZCW58P}He<$HvCCVLt5M%6ZsZg@Zr!zi&f_O77;`*VJ;~rOxEk)p z1Bta3ofGM0OHjn2N}Y}x5^GXRGe5P_&nbTh`N5K(M{1bkl)up_-s)8TEU~_G@)((o zvJR7=?KgFbKag0fw3pvRZ1q38@uO4xia6G+KetibVU}q9eVyVpPVs)H__b49!C{ta zeRZ7T51itzPVqpAb$W)%Umn>K&U4D&;S?WqimytnFn=q@i9v_I7()_gsO zm0q?-y`1t#ldtEf^2pZMRdxxqysj$gWoukeV*8-=)pLqNoZ^;F;~R3PX@q{^B+pW} ze#cc`cPSATX5@=8@`W2E>IM4gf3l-hFR--!S4RIUtN)eL|NQm8^7>x|JwIySjVs-* zR=tJ+HR`o%*PvagdZo&Csn?@lv|LdW*dwB2$KFoQ6R=-STF&uVI{*Ha3qj@NoQ6Xm z-}N-%KRqcX-yi8|JNeQ~uV`u)79A}=uHg5#)xG;H(wl4G-|XhwXM)26h2)4xzFKv< z8CWNwdq1b^TD+mh^GyZmd%cC?VRp1o@sn&)gB zdil;WR!{%&5Aep6`j>8|?%G?wYIV9WUT*4=uV3YRg{Uz5&*Rhyllw8{+Z(wtK&Q;t;Rf;hPcp-$Kzn~*P|=ay-;b#yZz<j#oTI9g5fwDW#l#K5DvIpO{bM?uJne%aX5q!AaxW z4}MDJ)dFfy+Le*2Yb=%NUa|H=_r*OwqTL~e z(MIEeZ`zHPSliY1U1eg-_T_-nY+q-J3`GiB>Oq(}y@QxOX*Wc&Jf(1RRqB^nX)eE2 z>QKYjsfHQGkE%@P&!V<>Lv$@;7gAO+0`&&Raq}4pkNfK zuK&v*{n9Ra%Jf%KJIlTn$|_+lU#Z&gj5CZi>TtvOT9tagRi)kos18I6w?1TgH6C8&#aWSsIeRvoz;xCwpuP~!5 z2W>YSmcfeH9NXXk{21rpLfnCS@e1BRcUg|wUP{b|MKAzsV`uDxALB@zf}i6u+=_Z^ zrR|->i}(w^L{~SfoG%u@n%D?iU>od-AK`EuhtqK_Zo}Pp0FPs6GOHhv7>$E*6i&e9 zxDmJD5j=}O<6V4=8RT@V&L2OljSaCY_Qnx79#`NxJc{4r1AK;=JgoL|U^%RU4Y4`) z!66uj-BVcg48-v`3m4$GxDPMlZG4HIo>qOCFb|f%N*Iidu`PDSzBmjg;sRWSU*WfS z0FUEo{0$#rN;$Eq%PSq`!y;G}1MvfFkNt57&ch|R8xP`Tyn(ub)%KHPPRx&iSQp!4 zB*x-cT!_nYC+^1!_zNcDYxGTR^`{`#!4T|;{c#%3#tpa?PvKAa2%n>O8mql*SQaZ| zQ~Us9a1c(#S-1^%;}3Wqui>xgF8ho+|5IUM^uzkt6bIojT!S0&99~6tFY3oKSP5HT zTO5ibaWSsM19%MY;6wD14{DvB%vcsHV@qs@{cs3=j@$4Q{)7+lcT6ukp4whkEQJ*? z1Y2Ma?28j{I98LalxVPW*c2G|U{V;>xilW-ZX#RGT@ui`Cq@wVDe zfd#NQhG1`;gfnn0Zo;GZJ^qT1FqQ0p>HN-sepnux;s@9tKgKz@2zTOs{0$#t=1f+5 zIk7SZU^sTcQ8*Eo;aWV5C-ELW#hjU~_VQybY=B*`7f!?3xEXig6}*Ybvsm@(^@lni z{jfZSVP~9-Gx2NOg*Wgnrjs3Gtv3r+!W!5XBXA^6z=gOR6Yw;8_*nI)#mX3fQ5cPL za1kEDOKE+p9B)e5_DQt=Da12hyZMYjR;dOM&Vbzxs zOJhZBjIFRI_Qy#$1J~jvJdZzPvYb|Xsj(#bV@qs@pWrB5i<|HaUPPOGJ*?}C2NuCn z*b>{}CpZdM;5s~sKcdZ-`mqR>!Y0@n2jg&Df$Q)j{)jJ7&r#@f9T#egtH=e|^coXm9YfM(i>VHnmj{#T* zJ75$J#^LxWF2H5D2@l~Zyok5)38pA)^(P}1#4=b7-^WH6iQRDwPQq3AB_6_~cpaaj zOA)IdX)r71LVv7+O|TV4V_zJPQ*i@+jX&Tye2K0_t$yUf{8$5PVI+3PF*pfV;g@&} zzsIMTteDka6|9X-F%-LEe~iURI0u*EM%;#{@F#qTzhm~|RzLD$O{|Cg@nf8Wi*P6I z$D4Q$)0eR7&x(~X0NY^%4#Uy71XtrBJdStq38pP+wU-G?U^#4xy>To~!4ftKDK)2H(fV*cp4`Xq<%0a4qh~qj(K}#bjleUMzscu?E({D2&D__!(}+ zZ}BGH!_;N1_Po&_t73Ef5PM>O{1iXOO}Gtz#LMVb&T20u=EI^W*MFFw*LATg_Qr8I z1=r$6JdGFdIlA~;^%lqSSOtTzF}B6d*cXT41e}H&aVwt0vv?n$V#e}TfBZ238{h}n z5qsef9D|c^8Lq+a@HjriXPB*m)qZY#4}-8hcEVU3gG+G@eupRU7T!m%idK7tuq4*P z2G|9A;TW8Z%P}4gVgla8dziYC)vh0p2kP`9KEYr{mq6YupHLLCfEwQ;#i!5i*Yv|!ZUaWpPtc%UD14iP<7>5gRDelIDco~1eSD2=n)qYmYkACQn^|1+d#%LUg<8d*r!0+%l z{)!LLySmj6AN0p6*b>{~#~6nTa4GJ_gLn<^V450MdpWQPw!<#i4~OGKoQ+FyJ?_B6 zcoJ{p1N02A+E0gNuoAYxFr0{=;(GiVPvZqN0-ZXz)wJ5piTSZA24Ncv!$CL7r46nEf0 zynw&pOLVJkwVMO;VO0#mme>}D;z(SM@puByqTb}7=UtLxJ}ip$u_<=L7#xKYaW!th zBX|<;Vs$RvhuN_Z zmceRR7n@^y?1cUBBOH%YaS<-ZEw}@Z;rI9p-p1!>Ye2s-GZw@W7>xC?Gxo$WI2jk? zO8f>7Vgg>k2lxU#8e09zfCaEL24M)c!AR_maX1#2;%YpI$M8DdMz;{FAKsV?i=sbP z!6w)Wqp>fJ$Emmi|_fNe1x<8Ul4#npHakKrABfZmO*_VQvY zjKH4w5st>`xByq<7Tk*`@GRcPMD%K6wVxR)Vs-3*Q8*pv;1=A8=kaGu*3_y$HI_tw zY>Dk~Fb>0cxCD3OA-s;iVX9_Udl|48mcjS2G4{ksxD40gemsiT@Kax;45@*Vf7;~7Qy$hCVq(FI2ecFY+Q&ta35a9TbQDy z)owAYgCQ7+J#ZvWz$LgE_u^sv8E>O&E2}+E%!@@Z5bI)F495{T9@pX~JcAc8S!=7k z)K~;dVH0ePy>TE;!0EUizs8ez7N6oP%>9AYej%)ZwJ{Vs;b@$M%W*9p#uNAmpJSFb zR(rXyE;hwh7>1D;g9C9Wj=*s^1!v+sT!O1{18&7{@gN?@vv>)w<8SyBT|cy@D+Q*- zjF=5`V?p%8Dj0yZu>m&44>1aRU>_WWu{a)Q;S$`BSMffkZfi|PHY|b_u{O5Aj@Sod zaSG1IwfHS2;03&cKJBdb1F;eAzyo*`Z{t%mLRk)&7IR=}tc(HJ8arY)jKgub7+2#q z+>a;l3jU7C+gtte!mOAF3u7?W#~wHsN8@yyjbGwsyok5)K6-Sp`jG|;Vks<-b+93J z#I86BC*TT<$HRC6AL27i6=wA#J?6)vSOw*Wy3NnO))g!aXH50VLXX<@FBWISnZ_799R%5U=W62bL@t_aUxE~ zb@&yY#IyK28Xc{EWWcOg3`=7mw!jauI}XEfI32&hZ}1=X6{@9oj)ONaHa6?VklI2u32MYtCCU;_Sv5AZdn>|(X+ zi^Z`L24f>^gB`IKeuSfN3eLsFxEgoiemsnq@mEYl*REDSQ=<tPe@g1vAeev0eyYdnn?@Hx74x7y8x1uzgB zV>|4I192oy!v(koH{uaIh4(QLy?R*v$c!b?9~)pZ?1u6~P3Cf#j59GFzrs`a6DHzo z%pPsklNYOFEeyvlI0|RrV*CWNTNQ}dAxE$m02%f{6cn_bUOK+>*Oqd&sV;QWDb+7|Q zVjmoWGjJiU!7aE0PvB2@4IiT3SgPC6)aZi+u`E`{_puR%V>gtCotpK<;zXQSA75e0K2|$fFc$`3Lu`W)*ae5na^CeFi6n1HA8H}vRdwVxIXU`Y(Z_pt*G#$h-X=iwK)1{3fHe1M7Q)!*tz zCd`Fpup$OvICjPnI1U%%3S5u-@d*BaiTDbA23Y;^#Tr-(+hIrSje~J6F253k@& ze1h%+t#(sk9t^_wu_=CtJ+VK2f@5$Meu+o%d%S?x@j1E-vig$}z0n`5VqI*D;TVVG z@H1SE8*mqXk3ZoJypMXXxVhhkIk6x%z-HJ1yWl|l1SjAOoR8n&9=wFt@e%rdWc8;Y zmc>A8d4C-%iS{2b%)G@iq!m~NQWt{+y$5Nv~y7=uG` z9L~hKxCyu6S-glZ&}F#QelE<90azP5V>C{{X}A^l;|V;EH}E08#1yes`)M&FX2-%< z9)qwEw#5ki2xD;pF2kL;A1~rHe1-0DR=@IKVXT3*F#@~dXq<$raRVO5Gx!)^VAc^< zyS`WfYvB9X5<6mV9E#&{8m_|in1HA8EM8(~X~#(p>rXX9qvf#>il z>Vrh|^CCIs!=hLl8)7Gn#(_8%XW&9yjhk^d9>r658}DQ4(N@1QU`Z^8jj#pw#sN4B z=i_$VjW^M2jMYvyEP$o32G+vX7>Y4C5QpPvoPslP0WQUO+=M%DFCN7o@h(2YSLiy{ znvS&SgZa@9D`PO$!!V4(I2?;haWx*qV|W|yWBPGcf3jdXtc;DZC3eR-xEqh+S^OCv z;qRDwJnIV<#Nz0WRj?+$k4>>PhG7);!v6RPj>m<#3fJK#{1%Vk8N74% zl^rYKd)OL7aWD?Uxwshj;&*rhe?#wyR(q8(7#m?5?25fG4#(m=`~uhD2HcLj@i3mi zpYSr?!h84(-6vW7^}&2t7)xL!tcfA`0d~Y_9E>Az3Vx2u@Jsv#58^4jh_~<&8k4Pl zXF@;p$7+u^r zh^O!(-onRdOtt!#5;I|LEQaMV0PAB*48!g?0Aq0?&cZJ+9=GB?JdWq^IzGUc=rPUe zzc>0~84Sg)7>ko|4lctDxDyZKJ$!-Q)2()WaR(m4OLzwp(d|=fJTJ_Sg|IAE$9mWj zBd|9P#?d$f=i?Gwg`Uc%>?@iS}uve*)P;bdHid+{PZ!wj>mdIGQo_QmPA0WV-8 zW|?h`UmlxdADo8E@c>@OWOJdA!JFfUfc26L@)tuO+6 z;zu|dr{iqgk4Nwp-op&@topNJIjoG$uswFe0T_pq@pD{+J8>Ug#haLFzSVwuEQgh` z14iOxT!+W;Jl@2|_~9a}{(d+am*8gFz#`~}buk1#!r>T?n{e<_tG;=70Dr-kSbUjPt_s%29ykz3-~!x=yYLo1#;nV& zdQ0IboQ&7eZG}}XHHKq1?1h7HF|NiR@hU#R=U8K@GyoXsgTlJL2!T1^8#>!i)a_w+19>#m< z{k2uDEe^t|xDF4Z>sG6LD$I%g7>FU*3s>R>+=*$oS@l)NhByLGVvg-rIe#3ApX1kf z0`q)hmG6qfa4fFG?f5<3$KTO)hgDB@EQ?jKA+Er0@ke}s$#z=xq{S>)3hQ8F49DrX z0WM4gka3s#g84E1+K?Kcnu%mD=fIjYNrfV!{*oyBe6FQ!D;w8F2QxU4G-W&yn(-Cvb|P6 z(qkE{f^9GYyJJ5bjuUYOVGLKB8^%~w+M9**Nnb%6Py99UF;&L@ zh4?nH%MmL*lPdN3Vo}mds?y(D#Qjuhe+3@FU-1dP#)3z!@=dUXn$|FSsM6j59FF73 zpR7u|3rSyvn{cNp_3Tll+$qv8;0^NckpGHww_{fMG^&iBUzL88Bn~DH!RDlg;voE3 zm3GIfGX8X2K>iox?7uIMEWcA_`zyFmnzdy7)z2Kh#hbUPE)1)TwF~0 zmw15m6L^mFhr}<@^|aM~W-N;hFkF>(x?>FK!*C|)3vm_cyNQqBNz$+4WAr#9_2-n| z1yH4(>KLpxm*1%%Zmu?!?IiJVRmPi1ybza>{uLf3{Rccp`fa?cO1;KeQQA+YO1-(U zDz?UO?2i3$JkG}}s`US*T2OwsJ7H1L@!3 z9?~!1Q?&hLwUZeOV2~>9HpKp_pJ9w6o~BCsi*PyV>xp;cK~?783G%O~QqMKgpQuug z?VOeFu1fhVs!V5IRq~5t8CAw_h+Q!br{P*$uS$KpRjKC?>F4kP=`V=A&RgZOsnU)= zaed-;*b4`%GM`4MQvW2WBJ7o^9NzK8fI@kQd>#CKI0&$wXKmt2*8q{DL9M3r{i z;z+fEVaz68q)LCj#Lc9COMC*)sM6kL^6#rskNZVyd@ogEZ&k__RAsr8Ccg>>s8X&2 z4#EjIMV0Xvs?x9J#9N7X5g#M|p7vmO?_R^rYD(N{@sjnpI6)}+Xro?SA61$T>1}CUe-#qeHkiLfWy`&$* zvv^gN_OGil{&UjP{cNRYR3$x+D*Z1@{2p;_RmQJJdP~wHu{-JgiHE6Degx@LN&g&| zlE0Gt&7^;ehsjSM{}Sofh@X(3{1>ag-m0{hpST=WBfSxEd+b8`aN?Q7b5xlRYe?UW z-{N6a+DTBQ+y&Ba-~)W2N;%`2RW7wE^EET(#-gf}E2&C-RY(uU5c0!`I};DViKNdV zUQN6m_mh5>_$EFiJ>_+)U)fdZM<9NHQTVYc{U1#{i+C~d2I8-YkK!++-zI*E*=|_v z6;q{Nf2@wd1YK@f?d8GNI1E?ddOV8vFx_oy{2W*q{jn*2i1TofTGKGLsxqJV;xW=ss=#280p=xANhmGA5HpH{G9xC z#9MJM9wYxU@ojvJugUlN)#|Sg=ED-I^tT#u9c)5+C*p3z!*Lqvi*XIRpw_^tVRC&8{nE?5fNkKYSk>s?zUJRr=i-W61AM{s_`1;Vkmk5O2nB@i6%ph;QHnd_jKd zdse%dF*g=frN32(gE55kaN^FyLvb?c3vear+li0hY0~c!zaY+b-)c9PD)YrpmHAQ$ zgUGKab5&_~Bk4Ox zKSg|z_^K-99+UnWQ#`Wz<%f0fL+q}~^b95*Lp+Um32{8}2DPc2Pa^$0(vOjTj`VA! z-y;19>F$rM@zbi(ZdS}idS&98s?5*U#NpT-W5^#yJb`$M+Ek8DNnefYN#CwYy+=tu zgI7p@Nc<9$Ke76mT9xq%V-V>LuqAdNe<1NB;swO(iFXlyNBk4F<-?kn|5p??!r0(ua{gmGni#>xuUhpCrCa{4237(dtKPRpw7N z;)2BGi35on5qBaUMm&Xh5%F5$?Zo?u&k$e18>BxWHlA7ia8qSIrB`J>WhdR2^x~wK zC%rQ1wMlPGdUMh{klu&%NyPJsv>;Ri&SKiOUgJBW_0A z4kJkKjiX7Qil39df%qHTL;89Ajr2rxd2aQ?LzU&32@8o;aJkA<9yN=t5WYq(s$rN@-GnI zB>q*E@~=rx@k(NuUl~+szY;dVPB;`N;Cei+%J`>=ucPtWYR6NRd~ft2-JiI+D(yBS zZii9WgZz((M-z`%Wjf}Pz6{rpzFC!e50ZWo&y)TeaU!}HHnX1|s*INpYm(j&Tai8- z7h*j5UlX6hSD49W)$fZ%RB0!GxE?kpJ(RdJ@gU+joQTuOUqrl|_&6qFIv1PJ>p`jHolV|nsx6F0^-*n#|h zIDzzO#4B+d>3fJTs)-#L+#4B+l?!be163^px{1rXjt#-UH zFBZm{xB$OELk9ic+YM7s##xa?1DY;6V=l&;&2>J!g;s|SKu1l zj=S&x9>xnOrw7e;|TIoQZRA5iZ3w_$6+^?YIXI;E#9#f5Dsh5TBy?JJmA%E-u!5NQGXQ8O`6X zmU6|3OJN19f`M2I8(?E>g&$%#Mq&@_jd3^{C*d@ljq`8`uE2G;5x3z^JccLnN4$W) z;7z=TkI>cCns3Q5GiJj)SO80684OUp4I>!qVO2- z0zSrP=poxi?SCrFiv`giD`6e1kKq`J{csRY!B6oET#h?&51z!+_!~YzTQccyPQ!4= zROp47F&h@gQdj}2U?A4QR`?-?V>JJ77obkAuj=X)q&ZMPJN^C9pJB#H!d3n_z2fixC)wgYaV#VPnHF2hy06?fo1JcQ@)65htUsQX^JJ|x48m=%37ANpe@Y=q6QEq1`ZY6bbe z7eB!`9EX!|7S6>la5-+p9k>q<;c@&Puj6fefKTu>y2_5O_A@1>#VnW|i(@IQfK@OM zYhf$=5W_JNdth(;2tUD5I1cCHLR^LM_!Vx&y?79R!i#tlf5k_bh%TwD`H~E?V0O%l z1+gMl#d;Wmp%{)`um=vsSe%XXa4oLKukjn)iwE&1yolHE7QR3uwKbg?F)QZ50$53{ zZW!-jO{{|<*c8LC6L!a5H~>GwkvJA-;apsTD{u>L$31uekKswYg4gf?KEao0OJhx^ zH)g@2SQ6jE0IY-cu_?C1PS^!|VPA~H(KrdG;UZj$oA7Hqgh%l_UdDU)2wnA9MwVxC z%!EEz1WRCftc*ce8(ZOr7><$H4+r5e9Dy@%HZH^^_!Vx&LwFR=<7K>ukI>bN>BUUw zgSjz3mdDE25Sw6YY>UwtgQIX9PQ@9x0KdQuxEc500X&UA;T61wckv;*q_d_s8K%Z` zmVBnCl19}oQgAW39i5`xE&8;0-nY5_%q(XXZRA` ziW5?q1n@hjYkd+-Pz$18XZ zpW<`$%xF!28q9&Y(GSaFAlAa>*czj-8}`M4_zA}0r#K52;1{?S*W+G1hzWQKFW?n? zgo&6ulQq35F+FC&9GDvmVKJYucGd{$p_(}~i4A(5ybSK9&s-$Nl&V>cA2-d;+*akx}3cKMD9EPKDJkG)S zxDGes9z1|&@EqR8yZ8$A9Gq_F(qTr-kA<-``eO~Oi4CwZeu(X{7xu+C9F3E38h(xo z@Jrl;+i@43z#s5DUd9Lb1e5t#)9s1bFc%iUB3KFE!-m)dJ77obhCOj8#^N-biSuv~ zuEKcSfxGbp{($H4GTy^S_#9uOS2k<B zI{t{+o+oe>P3-e+TEP>^)BG$%w_yM-Vj@TLd-~b$llW+#k#uc~*H{upN zgh%mvRX#UdjVp02 z?!eu60)N13cnhE5OZ4)!rpp`iVIeG!m9Z{1zz*0E```eahBI*`uElTgTRe}K@ewAX zEw|NQcl5?Am>ctB2`r73u^QIKdMID7nCpieZkylp%g3|%J-Re+eotOVm3?zRRX)Qi zsIrb!R|^_OZB;U56*JGjwp6RjbvS0Ogrm$)9W*$;`E5{IgCjyN16u`Bjh<=o0(9E!0x3diA0oP+amF)qVZxEZ(M zPTYeDcnZ(pIlO^)@E$(GM0|lBHfwrPp?N)oOrLo@gy^g3vi$O4AuNXG^%0V9ULT>$ zne-qGQDvbt#g^Cx&Fdm0zbkPx#^6wl#Zfp8&Fdp%eDnGUaX#sbF&;PIX55Ac@GvIe zDZHdskoz_82HwF$e1V33?=R)u(7aAUVsGLsm>mmYG4#W-XkI@doQ5-T4$jBL7>^rpGj78JYIVanj0t!OFX7L41MgrW zzCc5-Gm!e+&CHy@j-IUT+~rlHL`~>n$YRyxu|_ zN_s3#!f7}Y=ioA2h4Huncj6vAfQRvnTGKGj;U)YT@8Kg%#24t{W{sZ;z0e!8V0J8o z#n2DSVs#9{+E@=muqlROI7VVu?2m(SD8}L>oQ5-T4$jBL7>^rpGj7A3xCayP6rRCz zcmwa?J$!_QeAejlaYOU^5{b?0OT;XsXGdSmhkjTVD_|9@jrA}Dn_?)M*QL~y^_RFS z_Q%0E6k~A`PQ#fv2j}BrT!yP~Gj7A3xCayP6rRCzcnN>Td-wo%vz?~IEmdhRnm9(4ktY#P zQ>A@#e@E(z*I4>-iu^OG^e2(n+)t5y<K`WwYog_hS=OMkpBLs!vUEO z@>NRGP*z@f$zK!sYb}5Bwl)8p%LPfgz1#&xt@PfF5IEqpuZ>=<4|t6LpeF! zV8|>mWHm5{ShOP_pXQKT{?~G{xi<&ra+;@uECNGToxd&TFJ+wD)p=td?Clnl1TANe z57-N!z1{v+x#(e}YdP(QEGBbsL!A$rR-JgUTmWic9J{@1z19=N1)u)wdefIHmeRLe`VO^_S(sXD!txxOH!9E?qlJ3~CtjJ-nUkLMlu@qlQ>w??Ss8Plbq^1>`Ifr)TtBa&|M@l_fw|zQ>N>D;8Vz5s~7J1=V-yNwhiidZL^!j8S^m=H=!5-@Vq`Xd=4m~c=>Cn1#uuq5Xe>%47Hs;NGC8s2l+STi4 zwQl?SP3LEjR>VMej22SPu|999&rizebYz!5`|^#WKKpojJmEOl!|hhNr1eV6>2zpa zI@qUUi&MKn4$~p0Hj>&cDBPe(VaT+;H;ayq`&rGvd)z0TKh{vCFhj(n8U@qV%DOPUTnju|TH_Cd1E zVU@gatnZxE7b!V99R=i1%V~W-$qVhPeLB2k`W*-Rba=~Wp}bC-4lSqSYh60n+x3!i zj_n4GeY0K_rksv9(W)-P4K~?Dgq&#*XzhmHKqMrqfYW{_N8cM}79i;9;+T z`s~y3omDPrz0z{pAFWFV`)K=}+Fj)^9r`}Dx2yX*TDSfE;UyV~S`mZ2zSL5{aXPk1 zeIZgtr$gT-_WJ5lU($3)KV%mrX|UHf*(#Sb9lCsUI(aqK9ap5BR{9u(!S{{0Rs0qCZ6He`VkAJf~s!~qJ^OW&*I_&MCCcDk}Ft@#w)i;f*Iko$9GFQXT*J?LN^6l+5 zcB(Jsdp2_)T+9!KU&@*`BT83P277(Io$A}*=bE%#t1D&g^$n*!`};bknawDW)n3b+ z9ADF$-kueoT`+od90)J zrJ?-Ur(?4el1+THB$>m^XcwcDJrM0x>oJOyOBxPJxntS@gT0*U*z=hKU5rWcrqJV% zF!|GVb++rMj`bB9?qVKOO0qfF>nrK+U)I-Q@cYASE5*O8RjhQma^))eYoSojk89Qo zw%P18>9iC|njUQ={716~?q$su3mNr|x@LZ1iS={Ge$1esE4rL@z9epR3$7LA9<@Ed zGoe|cTNk6mvjo53*H2%)w*G%`-8af(oyMV&mcGG>+hs%#Z8-5a; zIyh6Xk+0#sP>-{T9)4#N-F#>Je2{KX;GBR$Ckh2OycO%IwS1rG6(11k7u+~8pRel_ zO{pPKqr`lEE>ksfomC?;FiOTYJZ}$o^?2@PeAlv7u&t~yDT|+Nl2@?HEG>29x_kWg z8}i#*J65h(u|oS2zt&Cq^0Z;{;55M*=||E2Dc9YOGA=sihO8wCeO_K%b@e%b?R{l1?|Z9ij5-C*0Kmgd|^ zxbAB8z--$^=R>XJ%!5i%gQ8~pY`DEBZC06bnbP@Mr%d@!S~lAV2(A;nJ1Qa3<5EcQ zY{Tuj>s2jfD|_*}OxZ|tn&Q_C&CuDUsO`Aq>~O{CT2@}X+2+vTwB~#-Bh&g&rnQVr ztIvruiC%scbQ;Z;Ps>#8ii(q|9xd(InrSo>itY_{Z(p;0Tzl`cF01O-$((0EkgwU#_v`ou4+zp$^{;jv z>$R2VQl#f`qeNuFd+*N;a6KDPyT4h^D6uYB-a|%(9S!fvM&)^mdphQ+M7Q`;i5~NZ z2B*C3ZW~iGc|w-k?uJW3s5wQUPVv7q^SY96SA!{^4O;APBbQkMY)v;YkywSb&0sYwM1;?HU^wKUUHUiaOKEZ0Vxx- zHsiim%GCGWJnvs`8QjRM_tN!J=6grpx-Rnmbh&mc5D5HmMB@G zWQ&Lnjbp-UM1+;>7tx_tOjyZoJ;M8Rjp$vneV_2C9_^xg^$3gT-8-s#r;@#+yGF&t z$g6f8qq@dK^ePb+W&}n?gmv-l*gmRjM0h3N?tQwo>(IV?c<*+;Rjc}z_8mOfDXEN+ z*VpJ95f;;bDDz=-9qb*O+$gqoX6bhZ{c>vGJMYW*hf~y#7u;4EoAWNo|Ku z2^Tl_sO~X_>yse4QS4NCnHD#<nt5fO|4F^m2W!34 z4#>k7WrP$`Fs=Nhy!`HZZAKc+NSiUe^f!GyuaC>f2ajL6`!c$he^&W`O5f_J%mJ_W zGsx=NyK@G{ZCBRLN+XH?KTEL)zFY8Q*DUa;ekEY&O`s=uGLT#I~!F zqql8aqguIbd_u{!$?{Dle^!4|zp0?zJ~@UkE669=C6kKy%Jk7j*ezLW%p!W5w%(d; z)sn%i<)=Y5!z+6AN_m))cB8Xo_em;ZHDnfvIp5M|6_I^qL%&FLtfls1sb$b7`EBNu z+Tta9tG!6d{L&R8OAc9XUPHEfNMH0eY`yi`szKW|vd*a~^J+}JdUEnu=9TS%Wb3zu z*39zRBpIkJ?}ZP$*u_G~0YTIf2EJ|dTN&b!SM87X^{U6NwUv2vKr@NQRC zQfxW)=acm$teAEnM@iYu@ebGLx!W@DA1P&eu9CN*KG)s0S_-e1zmysoR&MVWt;qdO za(=MqW(?6HK40aL3I;r$WUVK*TlQ>g&KYUiN`gmSc?a8EyB3svzMR=gO2?z0%ey(( z(8+R}{!Lj)lm3&rk+HfyDLi?`u}e(G*ZV=E3GGcL4mO!I+hp=alPSkcrrtD}=5|^~ zn4ZhzQ+<4Q@{BX8natFOcPG#I*(j4)%S>jUFqw15WUlRu7MY*hWI+{^h5E4Vw4z@hX$X3OcDOkVk^3~Uwg7?cdE#Eo$ zepixG>Wkd+-HzTYZe&=~Tpphkyj@@C)k>PnIo%>sBDvI*QeQ}gce_c2nQ#7(T-Js` z{bXIceP*Y;Y}mqPWWJMMO62=!n4~^fD~Ee}$|a+pjF-`0M^57-asG&&M&>7evux&j zPQRowGp!Q&yT%xqf4?YewZ0+sj&Fy|0&_1&#V)p<`=l1BZnb7t(b~=b^!;KK=qQ(I zWKL%DkCg{AO2U478KXdlijw1LJJ(0PdXtfE+jBB%Iji{sSLNN7IgM>>YkBOAlu0WS znNeT7)j~h1C%rAX9EWLEnRk^jXF(>Lr_69Iqqlrp^_XqxY%mH893yS{*ec8SO`6bC z%hZ;_MwReiDAJH1SU__6OM&?4c z_vG!WBNjR($4{Ay*{;bc1dXjyM)E9vH)T7JJWHw9CZ#i;(5OsNlXCS;{QH}fUu;q# z!K6|Rlgiyps(fZrb+1Xa^e45J>i5kk;E`E%pr;uH=?_CB&r;Lhq*e!$+7nFbd~H(q znn^wViHPJ`>JK+*u-2sEPbQ6$n=Lecp;6XyZDfWe&*~p;Qhtb#K2BCjH=pQSdE^m7 z-^nK2&Bx282djB>i)IwrChNFQM%$yE5){>ZpY*nVspRuj#=R?hHYxQ*M$NW1l!m!E z_8HJq#re8TuXoIm*TafPw{1Bp%68Xhcu9Tjaa4AFQu$1am&P(o z7$s#sH4nWrglauA^tD@t+pXmF%&gLL55wapc?+cSnXUH?=lNK&jTEOw$Y)b&?R1JM zzsk$T0uTApGvli%sR7sRt+VZ%l>(` zZMM(K%Jx&Ta=)EjvXCxC7hBEfpyJYWv zQ^7!;$)#=EWj;2PwLov_zWgTlS`*3jw>^)O6HAi&Ombc)<(7CVdzwC#Y&O~4WRN4< ztnz0zY?Pe+f#lS%mD(YFl<`VQP7Te~PFpkgh%7Xt#P^k@-21j-jci6U$?yDj867pF zS+L|ODdE$^<{mA(RgyYP3QqZBVWZ@ikEFs6Y|E=y>);A0voWchS(V@ZB~m2Z)>^i} z-%FPDhSn@=#qvunJL^8(Y}sT_^zpm$XX)FzuWgH)&CnaXt?|vS>c^eoS5Wr6ea6`S zA7N)6XjAq6|GoFQ_c}Sc#vNVrbh*lOO_?dWhRjo@NMs5LnM0HzGNw{QBcTi#(xfyf zm5QXIQi^0qkx2Tzo;96&)aU#AW8b^idcW7Rrf0A9?DyX1oO|!`y&4Xe(F^5|!5{Pw z6KZ#Icz40&kHHuEgK*wa4p*y=TA8%{hkbbn_mIO?`&IwaH#DGskNf9Wu{~h#CE=*% z$se!MU9A3TtNa_U^E~-n_dyQrEsmqdq0+|;K-wC=Wg*Wy4e6XEdR5h$@S;C%8&V__ znz>>ECb#()-s7hmNc$yH*`+wNGgMRXJN~{Y25tz{!ovDG(k4FiYY@9C6Ssj6b)2>xTfk`Lr5JR(RogGvtBS~v1!B*m}4AUehS2lM82TpbYpQo z_zK6V&E{Z?9WB7jlnUNxVPg4hklwLG9nWXV{Zv|opeGy4%QAc4fd6bcp&ok0$qbtR z$xA=N3G#6F%n|Rar|r}aZrW_@q=Q#=9CdAIPOD&i5o4zXcqhlvol|vn4X#{dI77k5 zI*xSC%iQrh{klE4HC3-#{sQnvEXTmZgLjB;%fq@zM%j87wMqN)HAa9xpw&8Ku_;gYucC%>tSihlecz zemUs8*}$uSUW~(UGOKBC1=kWks;2D(`Zx|3e36dr3VLHi!AF2j#Ni)ht==2F){zO2 zj-}8D`9!$sn1t79Uj?IT>J{2A3v^8!-g^h|x51q+nbJ*wS~$4IN6ci}iD2)2+(Pss zTRsA=oy%Pxo+e!g>Q8|*4Z_?6l2@Yw%}Vnk1;>Ct4fednz09T$0p*Q6d%J1f4xsl1 zR9C7%YDPk_g(_i9Z48@ytqGHbej2`nkU!M)6!L{9>IB88H?{)M&^;oVRP?m-DN}H)Togya**K5hh_68p;9JPzf0C?4J9qFYF zjx>CoUv&`5RNw~_%_z#0$k>|3ihMeJeWI1j*^6lGg2;jGhVucqd^+6tu7a0DI&L(z z{0wwTVC}ol7Nqo(k;e|2((<|RR1Q;G!Our(U2VEr4ydBQx^!OTn6yoiq36tXeIrmi zTiUEMit~EpALc==GlRfKIgYHUUZ&!_7g@X1tTPXSKk7Jool%^9k2^)E`>Ko;OghVbtunR@(ke$(eXX%; zqWEvpL82)CbujsaxHhD1$X#h#y`)i9jScyP_zB0+W1%?BlXh-3y-T?Yaf?IS(QCKj z+>-Qtf5WK&E}sV19I=yqycBzA(qIB6)$*HR4sh&jlH~We6mbfq*$G51Q*mY` zHGRx*o&n$FIPq0P6IUcny~YqfhV-Q)>hVfOPfgpHbUU8zp9G5(w0%&4T-;g>#oV1F z3YA|7R{2Dxb~Q!%A?ay^HP!ycklHz-vZlva5zi;hXPHvOL6D~Xo0xqNRgpZ&)fbxX zEQP)yu}HR&RP0j8RjrH4N5a4UH`~ip#M;SCpD`^t1L+Dv!EEjq9|g^Bnfz80v!j-R znd#VS%(SB&lTD;=^7pGuYbCnu?ug2w{P8jsab$9}`o`i&NRu2*=1Ha=wo# zvJ3i;|4~GBL;jeCJ&@A>EmPzY^g@OI-E%hvrpQAnwd^uj6?)76C=$Qx(+ztexeRu z#^N6+R%v(VxO%Z6$|u&Jbi`~`E8_GV1Dct*_Z3L;vGmKT&Te*5jzSHM*`Hy`hte-& zdzs4YGda!@PO3T0#~762(8O#FU34SUwJ}F4+x5DTS~_C3hAQIQIlkIrs_qL(K8Jo; z)uy3}{b`POPuTv$eDdFHFH;c@=SX?S5MP0`%Mtf)cO!Zl#VGCf934*^;$cW<95Gu% z6)`FL^a9iMD~r>0j{k0`V&{$C*}<5t3$x|F*oC@nKu z`d34o18J!vW^1S--Vpt4o@wZ2NV^=-d7T+i#cmhWTqwMuQ-p=AS3H<2H)j4@s?y`-*ClP1O~-E4D-_eVCzPt%5#U}ZQ;mR z)?CBJEzcEe-jwcp>VZn+g-txUZXjb?IC3X{ek}k+lKGlG=X=qjl`~4?JMz?{XiaH_ zpMPU#&g(Q4jYmCPDOy7wi~0Fa;)zA;_9Q<^JsBxlOYw8A#aPh>cd=-+J&pndzLFy* ziEtEWp%n27D%$mh*p3D9x0Cs<<#`1~*eIGMU%D%7{~P`s7PK>5ub@axMO$96jT=!x zFY+g#*&3}SQc}@2FLXC(8b}F;=IYf{jg5C*FqxvUN=d2GogBs5dOPG_yA1WOy-sz| z|2oRQe8*X^dG=p`r;bJHkb$m{{n`JRB0QqM^%FeKFDh@n6zC_v0q>h<|6iX&?h|ZP zX6aDV{r-Jx)5DF^;Di ze(pjkUr@TPv?KS`DYXEKH|*?ta#FAGYW<+VtM?u`mv_{F=F(3i*m$H1F1d%63hv~>msrW_UnY6Qsi>a}XBtMluXs;8AB+PfpCl)E=& z1eCfn&(PkfDP=i##k}bJCQwSWZCs8%%gmSPbRPp=^o1py_8QA+M2%;O+hgwsVs6kFV?#L}%~H;mrHX|F>KxvyuWBR`T?(rY-s9=QX~ z@>u=>vGbSC_19ox#E|`ZY9e{l755P~rxN#+$nrc@XE~kw@e6QgcI859Cl>1K+{q23 z5w-5;-E>SwI_TU*C9v?sO6pf#9H?`P5I>Yy{Yr|jb0_KCf7n$^Y?+SlDeglmH@($z za{Kzrw|d@U48KHfSP*;R+oU`VkMJ+G(eVBRI9w~7Dmj`Y#<_daNFHaDnOy+;>HWsMflHujA zfNKS}%6U@$TNtdMkDNzyN~xf4q>JxmFfhBR@^g-uBs>icxU0Jcj{}^uU|2cM7*cl> z9!okElUH-7;$aP8G&=kk6^ytKA208ax`ODdJ?Q?y+Z1d97U_?31YKvoLv!25_??+8 z_fne|k>};X1nE-FCHQtQsT#!_b4;YrR56+*_B1%P;v&zJwk-izE};C>IUwPFFgjVz>@yiv)(YrVTw>Fps9)3PrX>ZAcBNW;|Y-hmT@tD(Hib(N$Wc z8O!^!ZVKZW&`k*pQ&rjs`n@*7$jTb}A(SsHO|S4d%hZOk?cG0+o$2IB(DRm|dv(wyI>-_0B~y}FV-j$NUvi%3^&`Wt1Jp=hNqN;2T;0F&3Ilfq>TBU}uy9h( zGH{yM*uNTSUD>%8(gH{P8H#4>3S0TJiyDioA#G124#%vqJ(GgE$RPg{p6@E#-$4J_ z6&Wp!(46u9Pb_$f6I{#lKMvK8aAKS@$=_4VaMHnRI*!=M-o_bztJQ|s22w9a6l2+m zEBvZ6Os~g4n&F5KGBbwwaa)FYkN;^N6Sk~?w8j#(Qx}xSiqWl28NsR4;J*#L+fqW^ zOQ8hE{Y`|eigOhFcgNAaRGc8F`?BHWsz}ttp+`d6IrD@Y%sT`r%Sg6>KHFAk2r&MLGy@d+7O@- zaabO41}_IWxr|lIX9F#W!}5qTcq^DS(imS2v_1~YBhFw~u%d;5KLGk94$GZD@LBL& z53T^|*v~+x;;?M{!NK6GUkn_r%=O8k`>h^N2EPQ`+0*^fWLFYM`W%We{rEEYCm6XI z{06WN33#a8LY`p;#Up#yQT+f2LoG=^!wkwt_9D8d)=dYRBd}g;KSCvGtvcrS|MFO41VgrI3pvimhy(BaH3V%v^i7* zOeg)Jv|>_ZSStU@gH=n!D!URV$lErB}=CEgT8c`njwx2a_)@YqBv>N#ex zAyS_^5M^co_#@Vgr{OmuYpF#wbUn}(Yr@Nv2bIBxku5wyRHZ)w+7~aa;4dRnI-1g_ zfX>ECi^Le5h}_CWu5Q3md1zLE!??GCFGObC=6iBC;#UN!Ca{_%^&~DxO=@-%^U#d! z4z{G3e|b_DluYXO4@C!njd1wPgW^Q;C?lwrG?5!(e+Jlt7WWFuBb(^Zqn*rx@hr$@ zi-vNs=ql91nqXW~&D+e{up831i9}VGCO(j~-!m5fgcQxRlcg-`wMuFZo=7T79cr~H z38`ixF~0Jt$2LKpFn!r&#(t2^wD0%%CjK?Do zo^m8v!u6B;pi}ZKvKDUzd)?w*jmnSF>J7XuW`_<%81NrwS zgh(~pe|1q8+Q$7@^v_o7feQkabFc&p#>UdTaE|y7-2tf{gm#W3eal|kw<{UpromJ^ zGq@eraK}`&WfoqCrE$R~ZnNZGHJAlH&vLxXsb7&-DP>Vhy+8%4fL<0@d{5W&(RLY? zF?eTCFXgw&{QDTfm)1u35H0cw=HW3!^r0mK^ymktfiF6WG}=&}eVx@>(m?@szA_y8 zLRS4!yh>Fh4s4rJhtT#q@MeyqHu??{3~EmIltJuPJ;3is0rN(0*da|adP82ed80S1Q*5m_lqcKh z4L@>O9FmrIBG2g!pWe#5Nn&TP&eeLu=_hqRB2#p()*A{wz$0DZKCE-K-Y^`UYmwxx z)wx=4IFlEduPnJcbgtGL8s2P_g)eok)*I5$LzJ>`O6O|5;WRc?ZZcz1(g+HD{VkAF z;FTdaJVJlM>ZF|BuxP%9nwVXoxD06F-cgFVZb78ElIZn=wZR|pEzU4HQ#8)2+(^R zBbkA)BEuR6WR62(f>@E^`uDh)R)HCj!Qbgbh9iuC6&a*UMr3$yDj&qc#P<|BDn<*6 zJtH!_QjANQw*3Q;%q?=Ps0NkDP=u&#J3tYDQgKj=3|DbWDwb*kG!#&q)gnXDHX7^< zaH|Ew(qcPREEiPE)*7+y1&p(;xB2vbQ3}VkWB7?NViVUrAHY+mRtj@K_P-3U#%f~r_i)Gch z78#^+D>D47&i_MX5Z81fLxmkWvJWP6n{q!#tTF@cM1~y4*x1SNp8$GBU`aWVA@}D7 zejVt23x{=uliH266&d~+Z-__8Jm-k5In!(_GE^R6hWRId|6hF5te)`1%Q4B+aP66#(W zks*bZSaDi`-|RTLmquhbi|V8}!@(ywj|eHybF!kdny zj98Ij%m!ZOVSfFuz`wH`Co+sb$ETSDJ`ePdz{>Hg$S|s!uS*wdfEf<$cvfWSPKc*U z*8-|9uy$K{j~bC-L>)c}C&oJi^>C%F$nai2ZY2aB1vEZh+K3F*=JHuPf#nsHCGpY< zel{qKz@bWS1bR7M+K3EWxvNu6`wVD*95y1u2_gsup9VS?hmFWkrm$&R9-f$7#bG*T zM20IKG;n308gbZ&48xIxWv2YrKpo?-5gDcz;Q|qO2+#-zTan?9O+YiqUMP@wxVr9~ z$l$Sk`zyh=Cg7o5m-D3;&PV;FZ_U9w{ugItWbrB1Y1M!5F~X4sm`)mz;Y3ju z)j42~B;rP7*b)$OiHUW;e8J(TWur#`iX@JqP}`aKwxg83sLN z8hTY@wh9h2QbuIx&z+QNL=B+20_)O7WVoY*DcupMTfDRp8CC`?<%Asm2%xd?(ne(X zX$kLr3A_O45m(xZ49D3K{Iz6nwI$8`8B72s{F%<3@h&hKLPf;#jVIt zKEqt{vFo|#;?P4Y7mKdKiVUNFEcS#nB$24sDkCzC8D@z0 zLwYQc7+?9U$ne8mhW!%EHxk%RWcX>LY2$wIqY0c)dgMfgzIz$Zzad0#usxRL*@+B& zi!xqC!Ae`)i3|%;aMkO`Zf2qQKIzpkBEyhnka|KGkU;W`$Pk+iJOOC7gO$jjuW2JP z%x9YqRzTS7NHYG}YcnFl&@M1{!P@7TGJc*F8Qx{mmB=8Uia2XIPGq?4QN4Zzscc8Z zIN}$m{>+{g8HVtLH>d`ofsoWCc%csU7?I&IVkl{0&>8qvN0BTmGMr|}6=f{&%mhlP zcvfV%JqNGBfUk8Nwb3Vt4DxjYZ-RfC$dNm`_}#S<8Pu&#;a`cW3+KCqH&?dO>cSmY zuws1Z;|K+MY-q|AUtuQ&|4UjBMbkCC^Sg{pOZ?=V*KLkuTM6aPNh0hA}w1;Lz){*C=g};8` z!L`_VSLbSJq2ptGidAwC=v*x={6To7>ikXTYH8s;RPs|&Wi(6K)zZSEEk;@>rgOEl zP>EiOb49A_TrDlkdD7&z(79S#`1~0oE%a8o_EmUO$6G;&3r$Y#3>wC%1fJ^q_E*vsr0jV{zXTuQ}%sBP|qS-qekipk8#+ zcpR@p!!g>6LCsY%UA>-QJNe&D2q>nUNS1?iHJ7Fzb37Ov{2&@0$a$70G0@-&1z}koxe4>9^h3AhVO{&RIzBJ zg^>7OitQ)s2S>{;Ee!325)9*l6l!5=QTO25nvoWsFQpBYgmSH;sUbDeLaB7kxB;}a zW9*U^X~yy=w`)c}&`}8tQ_+O3_mlkBPbPn#NitFd=GC-XB=Z2k>d>}1DMUd+Gmz&Y!pUgi0 zWS)yi87D1>Ju59pORTi;&iisM-xLv?|3sZ@Y2lF%BwtGlOVzoS7Nl}3Ei_T*{~;}i zYdUEm<72bef6YaCh$HstQ5vRi$us=ZIN29u_!ofW=Z#{La?(O4-`DWfKxHf(9u!XM zCW=^Tp#kHd>|772y(6xIqS;nj*ujpkh=UYnjAbXT@PA;# zSG8UTshK0TW@Zf0NDJlGm}dsJLb}5e6QqTSt%=2`!Jh^^*HS{=OCv3`Xva4f2xleu zM#s^;G}6NG1;);Y;9oe7w8=>e1)pPoJ`Q%#;cBL20-UrkdlVJrrBy{Z^av;;R$6%I zcWzvmCcg%FUCVLOLf?(Pcb~u=fw~E-9M4J%ubefdM*xj=rLDB^W+zj60nj6^w0(c! z&Ja~xjIRgU;!0a-p)a3>nJ@4sK>OmQjkHjPhj6O&DWJ3Q(neZ%8u>z%PHn^UUk-E0 z7-^wdchj_rK-J=~kroy=*@#$$dbO zc;l?Ja1D2dw~Fzn!C(9@&dA7|RlYYwI6J}j2uB)VI%%YZK{L5&ISTfBB5tIG>qioD ziHTS{q#urKO)=8KkKMSB6-p)G+CqufVx@&)PZ~4r!Ed%^oV4&^SJP1WQn=C9gnNIX z*l<&N9?)WeWjqZ0WhCQk(|{L&HVLf9*+>h0t~PH~eGIfWUfM_t%TDl87Gb)70_b;F z+DZ!@8!->j_7e2i&g=O%(n9a+Wd6abIs7kaoPB>`(qT+D18Z$@D=jo6YE%ox?I3qs zG?a@)yO@<0rakRz;#^2iBob9!R$BO^n;~w6v@?;Y*D50|%qd{1J_PBHL}Gm9v(myB z5yQ^ifrlU*+6SbePFnbKtEsvg_zejh)gvb@++Tq4x*5W4jwDOClNR#e3jP?ddo1px zg*j||!9ud1vXF9Rb3GbqA(iVU*a~4s0?A4XYuKWKFMy6XSV;?dPK~rs@d|8QgpjwR z?W{~x_S%fJFaTjGNQYI`G1U@crG>dqm~f*7cw5VH(!zw>^a>FS1R5)_yL1wzg&TRj zJ$Mkpqt-^)NrvA@3-9OFGZd@`e$`Q=(No9Mmg|X5kBQ3lq*;-n-U9q*a@D15UT9|evzjq}qk0GNuY2gbx zJ5B7A)VW$(DEzqYN2Hd{)zU&at~pg_E1j#Qg|cIKLtHG}rgOElP?dOCy|pk_=W1!; z5Sx^e7Ut?)EiD}0Y;vE`xmsHAkct)e6_uObYPlz$k{DlzD}(C3A~zgHf5Ky=oV2im zceDh)lmLf&gkz*(KG#bP?^3^Sx5VEgkHygg`7$Cx9GtMq3mx=cd`1R3wpg@Tr@cDL{4h?;v~i|Gs1Y806t za#gMbGaAKd(&jT3?=nJGqmV8ejiM1-$)lJ*M4=;M^a<5g^#P2jJ$~~%Y5OIBB!ZjR zGa6JH#YC2^HvkF)l#GK~qo{!Qh^6ZQ8VIP(YK@}vEgI|u(A$FHYO$Rv7L7*H@_S92 z0A;$PW!ETvo9C-qmVv&Iz|hu=MlqYuM@aqeK>5Vc)Q}sE;-imrRYyR7bBy(>x2ny{ z&t_;FSKvNZbEpo5!Z1~7jpFSddVZ=vscUHo8pRs~JK|35L3>(8f<}@1OXeSBvO|TR zpi%UAhq+t?{)FSiH40gE-38#K%B7L-OCl#UilhCM4k0Z=j*#m4w-M|7liBB=%ySVb z<1`AfXEh3GiPb3T<6KswXr|7!Mv;fXv>HXI&b3A%m0OMCggXBZjY3@0X%xwXjOuyB zB!=}qj@TBN601>M#K~SG!(RsUw7`;b8pVKXd=0+_w9~@j4&kJBC2ci|N}~<&Co=zV z#8#YXw$&)UDQk$id!l-9s0u?xd>^yM_6f$-Y7~bmnIhLiZ{>>YmPS~OqS#Z0b36EO z$N43VY{V&14wH&8WJeJDy z0)hVox+Ji2JgZS0x`|jp;DWt4;n0p}HHuTHF{*S;pn3vpw>7Unq}|6>C#5?9b$6w$ zMltJa`YP~9pmFiiMx*#>m?^yw=+Ss-qfw-xaH!H7fVRd<8;#ZezY%~h_5gTPZcW<18!*tAO6qg2>x+?)ykHbczpy8g(l-~-dLmW05Mb700 zz60nk2V0GzR~|}ECwqZFaw(|m&S@0I-vNIPY)b+j%5~{pf9TZ^xA+jkXO`qNiq!>u z-MU|ZP7ACj&1e+g5}c~nA9CKxMZlq9qfuNB-!DUMWkKSNvl_*FNJGie^=9B5{);m* zQkADJd4+Qa_-Nrs15784Mlt?&mgU)C4=3VAqmYkxt7={Z-X@fIQ;bHjc#5gzGvI@X zR;)&`ZKpBw2lz#6#%UBk5Z$SUhJD!mIm}3z*B|mnOkb-5)e%@4;WUbZNv3oMpsw-K zMx)q+1SbK#e;3f0cxj_iTod&@3H<%}Ko7gpR-;JeB{6>u*;{N$Gyg`Tcy}sAKLq>2 z;fJJgR-;IL4g5IRZx**2Mb$gZC7+W!)ie%0v~scNDy&9Pl!aQY4b>pskVsT@S&d?2 zc|+_0>5fFAUaO2o@#{%LybscnL}Gm9vl>N5=1bMT5$5X&Y^PBy7-v?$FTjr^a6;*k z(-~!ma`d%5mgU)L6mJmD`$fP?S=?z9kF3H~YmuF0q4+-OUVpfGB6ssWAoNcl zS&gC;J9sc2=m7^SjY413Mx*#=02M8Vu*s36|JiFZ8pZA_G4}zi&mB|7&%OTe9nWo5 zxN#EvjO93uV(?9Rg$S->J1WW%zd#c;id`jWQ6_}?LQDcg>xv8cl~L{+u8F` z!#fWrslRDZSb}Oyl^;F)uAvkGF6SuCl$AMmQS4~%iY9Vu2;9O_vPDiw=X3sp)+&AL z13bi1LS;pLcW%;E{+J<#b3gce$5D;R%sZX|EaBgBD?bcKNB!r)*9qr@j9_LJnvhi9 zf2RbW#i1+y`#`%LT)lt4kzP_2zrv^7stJ4)=%j-)Cy$~VHT)iRP;Kd#pMz`dN)A0e z8m{C2)YA9lTa^5CplbzIb*DDLVl{asAgO`>(K@q#wg7MIIGM#`z)k&XNu~h02n?mm?-AtKHSU+Mp9ardu>Ds3=;y>srcacTWI6ZzNAX2cF{GXm^6D-YQyj-*Su;U)*UB1g+gkXa23- ziOIjPQUPLERGRpIYIouvO1o3D9Buam%_!0KRrXk;-POUC(e5g7YPGvNFmJTG8qy@A z-A$Ejt=*MUY^~ibA=_wo$5}#3AEU&3qbCr;aljL1QqtF^m73g~`Be%HBLyX#z$ zZBMvY3|1Djc9-LC-V~MG;yPDrcPCh7ly+A`=W6Zlt*4D1*HY(d?QZBNCihmItF^lW zD@^Wam20)TPDcoesBSU2Va753JWI-HcaaSm-j)D|bA@BIyJJ@%{W)BW85>5sn|Oog ziP1B{QO;(yyA`kV?KBK;D$}G9quuQ!-D}0+pxRkPEv_i?STA`dx%H`7eI0zef3dudQ2`P|XboON%sP`I88>QdJGmrU?vFmDURP5&DR((gR9=OVe{?zK><` zMLxkoC+`8BX&DJx;WMq7e~>i}6@G$Ncws(sxgC6$xhCBO;HAo?k#F`|u7%*| z;p3DZC@n)4lj2^XKtJ`$8`ZZ3Qxbo`yc`@2YNPM+GvH>r9t*}j1@I7EZB;cWTiwak;o)wS0%i#HcLbzl}PAeQ**R-x6_eVuJ z%vxi#!YwbFd!3p<^&D)p!lSbMwI#Q^Ao0dot#Eo(UZRk`jRc?cU!0MVueW+$ebs;P zr-UOuXF6%L!lB7@V=LH>MBHeFy^wBHHD3e&B$Rklj8@qGK2ysj;46q$veja>!aIwZ z)|LVecljf zKzbyRsMji^6*ewxR-5&Z-c2ONS3av1el)?bzlC`$f$g-yadQnPGKQ#+L;H#9jQnw0 zVbPw9S9u8497&dNrxmvT0=yYmYl}Oru=%&R>TP6?u#nzR_4R1pXR67963l?GFo9&X z!p75ZxaWYjI9O?g+J=3f=~--i2;q<;$;zI+Hlr2ZycKhQ!1Bl1F3b2it#HvH6KgYK7H! z>LTgjY2cRE7JO%~d?>K6sPtXeASmAre!7nCqv{onsP-EO6Zf{=kf8s@l zpe)yC6%KWeCkcIzr#(bTScNLLh2C@746c<95N@$-N&JiL?!c4~scyCkKN=!LK7kON z`ol1UNFrkI#yqP~Y)V!uFrGD~{a{RIWwOf#S<{bm8-iUCwdO&@D03 zu(Iy#B;>XIq^=jZ0TP?dUYN!QL?`mr#iic9SF(jKt@4YOs*7mx&wUKK-~46fwq)Rc zDuAE5g?}yj_Pfn1nXI#d=3h;R5Y?%q76bZ?;YSX2D%yPiOswY7sXWa`bR<&3)VyeatQ6L%$t|aFQ^C9Vs#3lK?0E*LWGRyjS}s~gGTkJTTHf~=$qbW> zwj8jVt6?a5GH-E&BB9@0FbG&y-5M)S*(zZKLk;O3u|;ehc|#>XHj|D)4fY zYTtOD$G;9W)xVCjORZ;R|pOXr|=8sqOURstb>wvVSc-xXJD%*L_(S9Mg*DRSgC5BTZGcW5z z>02YCxMDk!_M7uZPGVU^c>3pz8ptmPmwqnTj|so!sxc(C1(}E!RPCk8uU|xV;Id_A zNNtgQc{yD)8xzf@qV zQG&muq#=Hpdr9c0BzOAFDbqkbCK>NbDP$e>oa7#VAJ7bE5{7{63`nK4*PIs^zc{xJS}`} zVn4Y@6FA`?GaPZJ|5-Id^e3Z6bEvwMv9OQSsvEW2pLw+*R)AE)5eLLMd;GVS7*1>O zu8yOhW2h%4-}$lb<_7XE@QIeAZy@#akkkI>w0@`zz+&(fmJ{l_l$sw4UL9gM+rZy( z99@_E`dU&L?9IcPJQF+Lfd4F{Kj$R=zbfr^=VNpLBxhDALLmf%@eZdDgj(#$d8T2UO>jq2( znklfVK|dL36ufu~)|ZjJ%0hak^^=h{K@F_?uYk?oU^3{-vao^g5isCM)xYU89ma6K~FixrZ}U=TbL6@3N`2D zP!)u)#2I}GBx^=_(CZvy1-apR{&;noE~nVIo7nl^q*yyB;d@eE0~71^@I7hMAOTd> zuJ?ZN`->vpF|zd*b2qh@-H&Ba1~=N0h|Z54DRLhJBI}J;M6!7-ax<50?1W@#`=?)K z3zdpL5c?m+D?T%nxIrrZL4Z99Sj9v6*ts0V`HU>-i}4Z)xbRLH-}@FIB+$?$QlEvR zXZqqY_LCn$tAf_zh)Ke0rQE>tBfNbg8ErtiSyWF(Wkt#9516VccL7gy6xA|Kxzg`P zG$~dd0$%PYzeq)u#bsmd{o8Uf+hlA7-r*?PilTJ$=Wu^7l&^t*auj8yhH}iY{wi+O zgTKI17-7{DJ$CWAX)T`FR5_!UI)`D1ZcJlsiA||Su#mst9E!c5wh8TxQ{ODe%SBY$ z7K5F|s3eT5-XC()An73hV=Ne+i!)}HTdf&$L6F%Ra^3^Q6}gCvcBhtNy546nm1V_$+#c|XthGsWF-3Q4a8=` zD+Q;bj2;pj-ss?f4x+Q7muJk0KC{yloji* zi;38R)nJ<)t_CnZLE2wshOEYe_m!M793`7i%1U9MtfrWSe~GHKSCF(^&?8<65`0e{PJlpVD(#vTg}N7$sk0Q=tIQp9WHrAkbe zG5kI1$o*oD2mykQ8`tGfyGF*K>XgiVJUQJVCz3l;RBeSDS)Oru_PdOkcZ!7r$xR*a zpgQ-W11e!5spDb*6M4?7;Cr*NF@UV095G4Q$n*81JpUqdwg3wN!bb#E_3c)Xr&Lk@ z4Pp_AJeSSR7J2Rfv5}{gibtM*&W}f)!g7)4CK4|46w5C19L9sKmM5iGvuFfIOj0iL zY|G-N;7UNXEgT*Y<2p`!)$h-esyOYz`y_C}LJJ*nr{9fbN)g9HdLWV5PHMH0=l84^ ziug377ag%noU_LtM4X^FJHhujPD12)@*fj<9tS^XIf;?yKkULiG3@7ICoasP1|ZaR ziSs4J_@;4w-b6Un!5cbGLgabhSlUl-{hPsW6V7dvNQ^wU-Q;^Rbp8bJdo9OBp7Xh$ z21+%L0j&^NI%wc>!DRG?VFGUh+U`oH{)|N%d0xN9gcIL@A9frYc{b%kXsQ8!14VEu zU4xB0TbILnA+k$bNYAv5Jjd0=$*%*u!QnD2F7oWe%Aw|@2Y7$S8KpRCEV~4Ev-qg7 zoDBXzBFDMEiaf%C3`E9Pz&|>QwxYI?ZvK)VH05vLC?lv^8Y(Mx$6fLZ5n@rW@(x!c5uY2q<0@z5 zm(b>5slqN5A$FSQB1E;En+S1NPr^~!br%N5h*3${2(jxM8k`HT#Dd}RIAiAg9h$Ko z^i{_=7iY{GxkNMefPUi`f5#c~?n6?QTF-(e(@NEZ@N!pOH8{%ao+p`qDB%^H*a)$I z3!bG?zLo&0YBwA@LX`eGS7p1rfr_F(eybwH-`SQ*$vAmMB-^>FWSI!D8T+$T{IJ;1 z9k2LI)(TzmIsrljXjgq5b)qoo_v0nBtG>@7RTAKPS0Z%;rzS!yNgPoQ^b%P~v@0eF z=c*_AXtW5(wH8&Ak?60lH9#7mU=uiP98WdR`fJ%owWZ73;5mBY6fNf$ev=8o>AjX@8X&YHFOe8@;cex0Gydu^@$A ztBB;pBgC$6v*ytM)|D6vz4G-}I|;M+@mjKUeeoe~QN zlKVT}L3Qp$FCe)PA#MdQ5n|4d**~a$7FqK+Vv?{C;?-4o3{2(=0z3^6s$auX^?jux zM5&_w6dpfFgt&ciwg~Y@5E~(?U$=1DWEym6V_Skh&%mbM~tzhkk%#=ZfuD7pga~m)E%Q2e>O;Jn&Y?P&7$KhdiWk|Whne8@ zEhp4c-bRSO47Y+49+SeMTH)CU@rR100mXsJ z3ao0d5n}ngSg%8NQw!;twh`ie&2jQ>VEr5}L+2vIUy2$}xCeZu<4jN-HI`k1f{c+G z? z4h4qm;*9RcDr-i0&}xpcInL95;%i4bKOi0(<10Xfq9Q5PXfw%c~IMTqbJ zPB?`9)JL%YalGO)&A2Y4;&KA)Re;`hdvZ~IMY>VEgx+?exjgSXfUd4Y>M>evw%uYp zg#HP16zF)4m?Ye`JA;QblCcnEnML(v*a)%TGlV!$HUq!uD5_<4#~ofsTlo_Bu%jH8 zitLX2`FDI*5*ZhPb1*!r8M=R((#@~HqArx;z!e-tS+P6r(ADg?4Z&JCT#a3PZuE|; zoY71DlwpWg?IP>Ml+i?LMnhD~xrq>KAXxlHrHe4QM2t$pMu>eF9Z9bTc-4a8pK->_ z1=BTS59l|JaVgH2wQR9woCTFHkx&(cNpjigCd`}KMl%Y6mUE2DU3Jye&Xk~7BPd}W zDPO1Qa_p_iF_*7ap~kKPsH)v?=m=5z>s%F=>qk?fdp}hXVu+uYl5z5iNVaoT$

u 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%0DrLT+Q)wX&_NyT)zIgbgiRY*3l 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ÈWq)D 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