From b585c3d84c4a6ef49f9d0943cab5db8f35bf2331 Mon Sep 17 00:00:00 2001 From: DanInvents <55188328+DanInvents@users.noreply.github.com> Date: Mon, 11 Jul 2022 15:38:30 +0300 Subject: [PATCH] Add files via upload --- .../Rev 1.2/SDstartup.ino | 24 +++ .../Rev 1.2/batteryStatus.ino | 8 + .../Rev 1.2/beepnblink.ino | 21 ++ .../Rev 1.2/control.ino | 197 ++++++++++++++++++ .../Rev 1.2/dragAndDropFile.uf2 | Bin 0 -> 199680 bytes .../Rev 1.2/kalmanFilter.ino | 20 ++ .../Rev 1.2/preLaunch.ino | 15 ++ .../Rev 1.2/recovery.ino | 34 +++ .../Rev 1.2/rotSwitch.ino | 156 ++++++++++++++ 9 files changed, 475 insertions(+) create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/SDstartup.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/batteryStatus.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/beepnblink.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/control.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/dragAndDropFile.uf2 create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/kalmanFilter.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/preLaunch.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/recovery.ino create mode 100644 Firmware/real_coded_rotary_switch/Rev 1.2/rotSwitch.ino diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/SDstartup.ino b/Firmware/real_coded_rotary_switch/Rev 1.2/SDstartup.ino new file mode 100644 index 0000000..c44ac91 --- /dev/null +++ b/Firmware/real_coded_rotary_switch/Rev 1.2/SDstartup.ino @@ -0,0 +1,24 @@ +void SDstartup(){ + // This program checks if the card is present and can be initialized: + if (!SD.begin(17)) { + digitalWrite(statusLED, HIGH); //The blue LED turns on if the card cannot be initialized + while(1); + } + + char filename[] = "00.CSV"; //File name + for (uint8_t i = 0; i < 100; i++) { //The SD card can store up to 100 files + filename[0] = i/10 + '0'; + filename[1] = i%10 + '0'; + if (! SD.exists(filename)) { + dataFile = SD.open(filename, O_CREAT | O_WRITE); //Only open a new file if it doesn't exist + break; + } + else if (SD.exists(F("99.CSV"))){ + while(1){ + digitalWrite(statusLED, HIGH); //If there are 100 files, the blue LED turns on + } + } + } + dataFile.println(F("Time (ms), Altitude (m), Filtered altitude (m), Acceleration (g), Perpendicular acceleration (g), Temperature (C)")); //File header + dataFile.flush(); //Writes data to the SD card +} diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/batteryStatus.ino b/Firmware/real_coded_rotary_switch/Rev 1.2/batteryStatus.ino new file mode 100644 index 0000000..5c204f5 --- /dev/null +++ b/Firmware/real_coded_rotary_switch/Rev 1.2/batteryStatus.ino @@ -0,0 +1,8 @@ +void batteryStatus(){ + if ((2*analogRead(29)*3.3/(pow(2,12)-1)) < 3.8){ + digitalWrite(batLED, HIGH); + } + else if ((2*analogRead(29)*3.3/(pow(2,12)-1)) > 3.8){ + digitalWrite(batLED, LOW); + } +} diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/beepnblink.ino b/Firmware/real_coded_rotary_switch/Rev 1.2/beepnblink.ino new file mode 100644 index 0000000..6bc8de5 --- /dev/null +++ b/Firmware/real_coded_rotary_switch/Rev 1.2/beepnblink.ino @@ -0,0 +1,21 @@ +void beepnblink(){ + if (p<30 && overtime == false){ //I will transfer this to a tab once I test it + analogWrite(piezo, 50); //Turn the piezo on for 300ms + digitalWrite(statusLED, HIGH); + } + + else if (p == 30 && overtime == false){ + analogWrite(piezo, 0); + digitalWrite(statusLED, LOW); + } + + else if (p == 200 && overtime == false){ + p = 0; + } + p++; + + while (overtime == true){ + blinkLED(1); + delay(500); + } +} diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/control.ino b/Firmware/real_coded_rotary_switch/Rev 1.2/control.ino new file mode 100644 index 0000000..6e6a621 --- /dev/null +++ b/Firmware/real_coded_rotary_switch/Rev 1.2/control.ino @@ -0,0 +1,197 @@ +// Firmware version 1.2. Release date: 04.04.2022 //This version of the firmware features a real-coded rotary switch + +// In no respect shall DanInvents be accountable for any liabilities, claims, demands, damages or suits resulting from the use of +// the flight controller and/or this software. By using this software, you assume all risks associated with this product and +// its associated features. While the circuitry and software have been tested, they should be considered experimental and handled +// with caution. + +// Before uploading this code make sure that you have downloaded the latest ADXL343 (Adafruit) and MS5637 (Sparkfun) libraries. +// You will also need the Circular Buffer library by Roberto Lo Giacco. +// Thanks to Adafruit, Sparkfun and Roberto for the open source libraries and also to Homemade Multibody Dynamics for a guide into how to log data fast. +// Thanks to MartinMcC for showing how to use a rotary encoder with a microcontroller. +// Special thanks to Barun Basnet for the exceptional work on Kalman filters. +// Special thanks to Earle Philhower for providing the support that allows using the Arduino libraries and IDE with the RP2040. + +//Changes log +//04.04.2021 Changed the sign of the longitudinal acceleration as well as the launch detection threshold. + +#include +#include "SparkFun_MS5637_Arduino_Library.h" +#include +#include +#include +#include +#include +#include +#include +#include "pico/stdlib.h" + +CircularBuffer FilteredAltitudes; +CircularBuffer altitudes; +CircularBuffer accelerations; +CircularBuffer times; + +//Initialization of Kalman Variables +float R = 0.3; //R = measurement noise covariance. Larger R means large measurement uncertainty +float Q = 0.3*1e-4; //Q = process noise covariance. Larger Q means larger estimation uncertainty. Thus increasing Q corrects more +double Xpe0; // Xpe0 = prior estimation of signal X at time t=0 (current state) +double Xe1; //Xe1 = estimation of X at time t=1 (previous state) +double Ppe0; //Ppe0 = prior estimation of "error covariance" at t=0 +double P1,P0; //P1 = error covariance at t=1, P0 = error covariance at t=0 +double K, Xe0, Z; //K = Kalman gain, Xe0 = estimation of signal at t=0, Z = measured signal at t=0 + +//Physical magnitudes +float altold; //Baseline pressure +float temp; +float currentPressure; +float altitudeDelta; +float filteredAltitudeDelta; +float rocketAccel; //z axis offset +0.03g +float startingPressure = 0.0; + +//Definition of time and auxiliary integers +int tconfig, n, p = 0, r = 0; +int deltat; //Time step of every loop iteration +long int t1; //Time variables +long int t4, tout = 300000; //Here tout is the timeout variable tout = 300000 equals 5 min of data logging time + +/* Assign a unique ID to this sensor at the same time */ +Adafruit_ADXL343 accel = Adafruit_ADXL343(12345, &Wire1); + +//Config. rotary switch. This configuration is for the real-coded rotary switch +byte switchPins[4] = {15, 13, 14, 16}; //Digital pins assigned to the rotary switch +byte rotValue = B0000; // Variable for printing value over serial debug +byte switchPos; // Variable for storing the current switch possition +byte previousValue; //Variable for storing the previous switch possition + +//Boolean variables defining the state of the program +bool initVar = true; +bool deploy = false; +bool automatic = false; +bool timer = false; +bool overtime = false; + +//LEDs +int batLED = 2; //Battery indicator LED +int statusLED = 26; //Status LED + +//Piezo +int piezo = 12; + +MS5637 barometricSensor; //Creates a barometricSensor object +File dataFile; //Creates a dataFile object +Servo servo1; //Creates a servo1 object +Servo servo2; //Creates a servo2 object + +void setup() { + // Serial.begin(9600); //For debugging purposes only + EEPROM.begin(512); //Emulates EEPROM by allocating 512 kB from the flash memory + + //Declaration of the I2C pins + Wire1.setSDA(10); + Wire1.setSCL(11); + + //Declaration of the SPI pins + SPI.setRX(20); + SPI.setTX(19); + SPI.setSCK(18); + SPI.setCS(17); + + //Declaration of the pins for the battery indicator, and status LED as well as the pin for the buzzer + pinMode(batLED, OUTPUT); //Low battery LED + pinMode(statusLED, OUTPUT); //Status LED + pinMode(piezo, OUTPUT); //Piezo buzzer + + //Piezo buzzer PWM settings + analogWriteFreq(4000); //Set the piezo frequency to 4kHz + analogWriteRange(100); //Set the dynamic range of the piezo + + for (int i = 0; i < 4; i = i + 1){ + pinMode(switchPins[i], INPUT_PULLUP); + } + + barometricSensor.begin(Wire1); + //Set the resolution of the sensor to the highest level of resolution: 0.016 mbar //Change this + barometricSensor.setResolution(ms5637_resolution_osr_1024); + + //Take 16 readings and average them + startingPressure = 0.0; + for (int x = 0 ; x < 16 ; x++) + startingPressure += barometricSensor.getPressure(); + startingPressure /= (float)16; + + accel.begin(); + accel.setRange(ADXL343_RANGE_16_G); + accel.setDataRate(ADXL343_DATARATE_400_HZ); + switchStartup(); + SDstartup(); //Initialize the SD card + preLaunch(); //Here I store the first second of data into the circular buffers +} + +void loop() { + batteryStatus(); //Check the battery level + + if (overtime == false){ + currentPressure = barometricSensor.getPressure(); + temp = barometricSensor.getTemperature(); + sensors_event_t event; + accel.getEvent(&event); + rocketAccel = ((event.acceleration.y/9.81)-(event.acceleration.x/9.81))/sqrt(2); + altitudeDelta = barometricSensor.altitudeChange(currentPressure, startingPressure); + filteredAltitudeDelta = kalmanFilter(altitudeDelta); + + if (initVar == true){ //Maybe this should have its own tab + accelerations.push(rocketAccel); + altitudes.push(altitudeDelta); + FilteredAltitudes.push(filteredAltitudeDelta); + times.push(millis()-t4); //Circular buffer for time + + if(-rocketAccel >= 2.0){ + initVar = false; + for (int i = 0; i<=99; i++){ //Saving the buffer should be done only once. + dataFile.print(times[i]-times[0]); //Here times[0] sets the time zero for the time variable + dataFile.print(','); + dataFile.print(altitudes.shift()); + dataFile.print(','); + dataFile.print(FilteredAltitudes.shift()); + dataFile.print(','); + dataFile.print(-accelerations.shift()); + dataFile.print(','); + dataFile.print(event.acceleration.z/9.81); + dataFile.print(','); + dataFile.println(temp, 1); + } + dataFile.flush(); //Store data of the full second before launch. + } + } + + else if (initVar == false){ + t1 = millis() - t4 - times[0]; + recovery(); + dataFile.print(t1); + dataFile.print(','); + dataFile.print(altitudeDelta); + dataFile.print(','); + dataFile.print(filteredAltitudeDelta); + dataFile.print(','); + dataFile.print(-rocketAccel); + dataFile.print(','); + dataFile.print(event.acceleration.z/9.81); + dataFile.print(','); + dataFile.println(temp, 1); + + if (r == 200 && overtime == false){ //Here I set the rate at which I send data to the uSD card + r = 0; + dataFile.flush(); + } + r++; + + if (t1 >= tout){ + overtime = true; + dataFile.flush(); + dataFile.close(); //After timeout flush the data to the microSD card and close the file + } + } + } + beepnblink(); +} diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/dragAndDropFile.uf2 b/Firmware/real_coded_rotary_switch/Rev 1.2/dragAndDropFile.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..a5c932525996d9b805cddcd14e0fc6baa508912a GIT binary patch literal 199680 zcmd?S33yXg-amd$_M}@%S<;o8+?Fn3NgF^Gm5^Xd8&O15)-i1zCMh#ckS%OO1$97X z=7mPIG|B*VoC50b*6EDzJJYd(Ix;x(-hlk3P?utbsEA(IbV+mnpOduMvGaeQ|NnXZ z&+~tta^d!F=bW4S{hZ}{zT3H{v_yB`T`La~j<8KnXzWNH!|`5e&xfR?#A)P~xa!?9 z<1R)4j}}zM^i@Qh+MWI& zWoMjWRR*pn;+p+aBIT5BYSh?!f~>4elt7G2T^Z$>^J%QCtH^aIR>r7qmSSxA=z%Bn z&!m6|q-@muv~rD0{$}l0nq8VQdCP$s1xM|D0>$6%puAPqVpwHZC569~3=bL}l(iBf zv*GIugs2IT-%pGtLcYeei6e*b-FnS6(uwESw{^{TY`%Um0#7VI{ZHLJL-7X<82+pZ zT*seNaADj(h5dExul_IlUxz$9jq@|u|Nj5;PX03FpXlt?&me#K^6IWNhc;3@+o#Hi zes5z&h;T;KCDoe`qb}*o#?L2iQZOZ$^y~j!ymL@;LC>KpZpdnlnF!})!h?9 z+pHiQ>7=jjvqysI<-5uTck-A15Is##HrV^ldCM4G+Xzyo5U%r4swYIju|0OK$2r@v zdCL;!Ys5GDN!jOLDQnxBy=8<9v_XO8-C9Vvk6VcT=ue2=_(!6@?_NT>TiQxh^VLp$ z%TBvOP&tX2;@92Lt^YH6g|fC%mM^xWe9e4qxi({u{&dP|gTAF)|6Tg&|2Dn8MRPmv zBW7(-3jbYVW#h|7@HPy8c^rQ^zIm|yE9aw6e1-D7H%{SNJ?M)~^Fyjv0R>`~3(9g; zER_^~L%NOw(maB+ES&+k{EgSQD9Cbha>>4_iV|t+5qpYoa^cA(sjjz-<;1b#0dqp| zP17Q>bBV(Gv|TRjT&QntTliV1c42R5Mb^B<#Qbe=pH;G+T=-?^|I4!UE!mt(oENnb zt$15xT*Wx2R(!LMn8xDxTwhuR`__@V4Z~j%$6tXD9>jkP=#UUm@Tb%okWSH(7+jYNNETeT|L z)}|udM5ox2cudshqK=BNcpn*D(B*ar~7-@K?uZ!I47Haau%q zLTqg-EkGY@!TvJv)8lBs{%4%CewV{eh&V@squBDx6Dskoz6WxxD8;&f-dsSa*x6U? zlpi&?isw`D>4>&oC;nG-O2rh^n9q9S$4k8`qNz_II`R2vK}8{+TNG@|-lw;L4jXg~e!ktd{&LYI3Sj_gFc*q6}MBKiDt$YhQLnHgdjz zoM-y77SOB$S0-|vix#-0@N|i0rQ_EiH$H6F> z_;fG{HDEXyyd?w+>KYI19mk;u`Eu&v7yR`X{IhQs+JLm7Sx34;Q=-WB^ zJi@(&G>ehP8r!<&__8s!V^2&aoDcVxIm0cP75C;L@IWnAY#t_e!1K?2RNCZgn^vcc!~%pkJBaZ+9xQvV1yG?6+0SMGg5? z?+t~&I*vbPN7ws*Qm{w>#oW}I=2Dnf1j$5Iu-G}HJi|@-1n(?ohHLVI8F!f7CGMiz z0~y4~5$acp&i-D0IdM2>LxWx4A;(>%I2Rb?0)tQcRI%%s{W=pRMe|jnp(i(nM!rzw zp6+I4JejE!3;R_@B{~zOn2XXT8J3fkju-7?I+U^887OTON_)MJ@S}mKwv!kOvUK7t z{iHxEkclq^N1^|o?WTU(pu?|xJVYjjg{IIZ@RSkoC40c+EJ58HJ%Mna>u}EMGa13#u>M~Y$6teQevHQF|7g#ze3T2?fL0%l!m)+q(mbuRbA?Jg6)7S| zZ0ho}%?UnIpbVxt=+p$SV&dmPZ>!(Y9TG4m_&`T*3r3XO=k22|>h7RMtD8=32N$s; z@+NqQDZLgT&bW%rvFrTaPeNXdF>fKSwlnq^yZq~4-jfKyR2x{nUDZT;nyUNs6?sfn^2B95%u=dpl*N{QHf%&X5jq&(3|G> z@$}u`L{|siEaF=?;5WaC_p{$Hg5e+D|7+v;Ylq<9-6Dk_m5yLuq%%(o9=;>XXhDlK zMSi^?GuE?aM-JXDGqP5CSA>EWQ;Lz^2Y~CT9!2bKDekg<`itHtIcj>sX(Jh4mH7J} z5_@`6L<)PQUd{%jj`hU*g-N)#O6qP+Fi!|RI`FEO*!x+83?2FSY z*~|x*4&YVSmub8Yz4Nd767!_+<*3nTAs&ZPe6W|%J{(=_H2E??dr_!y+;OMOID?#R zR*HY_n*sX&t?zOu1!a{El=WkjH4kOEV`aT^y{!4MvVzgML&})_7l(rG7A)a=mux z?oh=rnii{Fj)B^xnXeXq+TRyq;|UwH*?7&yaW-bNF?}O;JzA@`Md8M1Gci@DcGKC_ zE`q+FcXK4*t}koEokrY|$L@6CP66>kDlE2?Irp7V`FHW9cPyuB|7}hSQ61HQkC_#@ zq3}|mWAATzqan5F)^b^sPFxxxxw`zB7$`O3?0(sCi^brL zUrl9K#Y?>wl8!RW5oOM;!D3SElpRwwDMd%ba=SW^&`|Bt1dN_Wmo}hmqW&(IE}+=Q zS5|wfDwY0({kr{9_(>@-kkrsvnH;#}`JmENqio`<6#HnMvMzal5}rRMr38|js;jb{ zD!&xoE+sTc;jNP4_Kb2iDkVkPUrS#q<}G8(*_+QxK=*)B{Gd-s*!4t-Oi~Hj>t8p$ zw>w0qe%SoLL?YCMZYcbd;`k>G!T%!UHg}iKySoXzAJN`I7*F&FWO_`l=L4VY`!Usz z!g&JrTBEn+run-;@1ox63v}QQh?p5kh#eP1thbLgVs;=t(VrGO-WnYhJCbN>?0B-@ z9K(R*GH&osJ%!g1Y3a$oe*U|jUKFAdE4vw&;p;X!Wya1GbgD``(xaFd4(8lZh_Q)? zw?}2@MTq#fe!}bXGH&Nx?COYQ#60hxJ@gjNMJ9a{{MNWzsS~gCaIR6e-yQoEFLZN6 zZlvP4p2YaCBO`Yk*8eBR@lVDlKStyH|Lh(qyscjfUyDlNr~16Dtj~Qujc~t5ePHrC zRv#Fz%y@k!6JYavCKGsz*S9Pur&cJ)9=oFbZEiCWR_NQIeD1Y?q(SxQotQdXKj?^R8aBNU`NV zPDtS+y)R(aDEDI)F9bV}-@))Lk&fLtBZl-`>8Mi)DO1yYB7Q6-K+2@*eXioSPV`by z1<}6Uy@IGlyhS?b9J%O|;rxF}9RHLd_#0eI zGV)Q+(@q6sX^d(g^e`zZlch0=8zqfcC_M?POW^~(`)}WWN1o4uwnc(_I)CN#&rgR$ zEx&iBdmki7d~dOPFOK7TmEx<>|A?cUQv3Tgy-U}9bl;k`e< z^NVK2eJ+uRQ9;<*-I6h5$L%^3>(zr14Ei|!GO`(^{6Nx)PxQ$0<5-fXl;R8h@#otj zYw`RJJb$EzJQaV=BuVk74@NwAI!CJIGgWN{o%qm@G{5M-q43wo@z)Q*KTe|+kwmnh zANJf^aWC3NL;rVF+%iB#XJmnsPG<-%>PaBf2p!@+hRvG(2POxC?Ce4GBx55f7>AXj zJ$k3JkYu?PnRkHpA4l(8kee|PHK@1O32Y0&uPMc<$V4MM=0sQx%>Nf;ZT<0Q`iKS3 z(uW{s9e5&-Oo4P@5L3;N6sCa`U-q$Y>gzUE81YS(A>Wibkm6FG;l^tJsd4;Mhv3f; z{kVH5qMH8PJFMlD`jCNbyMUWF(UD?h|cY~c=d@Mvw3MYpdzf$}h zBo&Ir5;~n8~1-?3nQ&Opd33 zocV2}OKW+{^d|Q=BgxIc+`pVGB2O>QT)2GUIA{DgcHlT>;5fQsO!*j$5sgvy_ldq< z(`aWMX>g@gtZ-$xvMO(=_CG3)|EMAOuc&;w@}0`8sufkVi9A7{ki!3nB+XZdWl{Eb zUNjA|Iwr?wxG;PeCX7FrX(5F10SxCsK5=l~hFM$L!#2?2GJT8O{q$59d@OVL7uf9D$%<$-EA3opIhIO=}{1tS|jjyW^miHat#?SI<<4V zzLjz|dtYd1DwS|U;hz@AKWzy9aVq5+hEm8|_Pm9Q!Yc~2@dKdIHJ z70+aN>(qq1HkRo7v7?PM49!Y`;TOTIjo;X{QQvxtQQsnS$}8mab)vJUt#l9Ona^Q=2YWYa zTM95f+ym5d=tU{~k<@De4PCxteK8my(>AHqSND>sYUH%GU3!lp`;#RBU{0W0uQ;vBdHt*yTM&Nw`HvMwLS` zw{KLr(gVAW?Wwnu!o*-<=6w6yxs+3ppO!vp+f7a{Eyg&Iu|C?WEB}q11hwTl)D)px z6}wWEt8sO@yR9@8+q`-66s*oofy`p%DyqL9`#$Xd+q-Tk{Lu~xC1mUn{D;$e+4pGO z@GrFXgVrW&yLRo;45js7LFXRqa*wwq)2$#EYZfWh=P^q#9x6$7-Q}Xisq2|X9(mrH={_`#S@#uSbVq&TpDi)F(p+h4d5jI253;`~Lq*On`w4QXG|1J2JWLu; zUlvRAlYunql=CKXqGXhh6eS2I@ELmd_5#&AnVww3+$=gZ)zyXmDAN-Op{K!Ycfe=fb2l51F{|8Sgz81a0q1S=e)Ql$L_n9*N`#y&qtcl0wAoW2-`jISwU5mXv*es!2P!fy?`G=-))`@Pl z|FP|V-S}s_F1XWU-$u7t@Se$%jDOjFSs;8@NbY&qt!YwX{JPq&Y0w5BlfVe33aA^F z+Q>d0JdLtmEpCiVaXn%`6NH|S=v$P$!lW!$q8H$!nS6#xQGP?=pB~3QeF**v&>|c5 zoHT7kO zJaYGP%-N~!X%l}aZ4@Z>%uLxj+l~mN%>}FW>P|J8u{D9GTgI=av%Yp!diH-FenV824G9nE_42SFORq43X$5mn=x~m^PMO{{yMRK_$ zlfMnpNjiZ{N(iR;?($_S>U=j8{+V(7Gl$@>l_fY}*VT~bLf?&kSeD-#TF8qn`%Wa* zCG4YHlaG}H`E-XGxE+<`If}hRINLdMtIf*p&mifJlw(r(X$kk?v-Nssa)4P~p6g6$ zP}Pwl68uN!w%sr9o+MkDd39V7Q5;C}YsHxnr|h+)EJrWjLAne|KYLO@{xK#Ub2@XR z7juvf0{LRc;Z8Ybds@*Laq89nGviF?({+AGBav=gWLyUWB1i@#HbbD z?)!ymht}ly^R7LqF2$t;ma}`8rcUc8#v+mgoBUIKx2w*i65~mv+PaHVuoTMr(Igvh z`=(cSK$WGg*NPc^G|Q5u6*u;dho%1J-h@CQF}OIw-l}S7%Q!rjVfjqo8QDD4n+0Ro zcrUA$9~hOfXYR8Z&&*w|=u9v;K2Bq0rl5qSy@>&XOHt3P0tm0f7i{m_lgjE4tQk-* z*jLE>@+S`5So;6$IR4o~@R#ul|0m$fa(gA|d5FdcdDHG~xh?BzOj@HAWSB5!mE;yn z;jbYFAf^IqhL`f4o~xKsF}u%#X=Wdj>p-e^J>~mRVye!%xRLU%8nf36`K}%|BCKYq z!40Y_)X>N5i}`jCPFb!N1*BIvAr)eL$ZZ$i+Q0nGIZ!>$vHj+<&0EG~#R|CZX+ougm#fB8U8!)ID!cHv5j$VyZG8+pi|(VW zQ`jAizvFJPv`|b#nIvrFZo}GtP8|Ond@@8ZG5_B^Cm{9l%l4CfJKV3j6-`8((Nlz3 z96Q_ClW@Y)3ObnxIQCe&y6@8E_OLW9J#EbiCrB$~#5_wStCN)=<&bpxSh~YKB$f`+ zWTO;5k2$Blr37bPv9qZ-doOl29cLGC=566ji3B)jvwlY3m&?-$ylb`RIajqyA&!!` zN;dC!S5k`?qvI+Js68vAwWe{-vr0&(qiXR^$rVcxM2geVl!_FjxE(2yV=2mz;#TPp zQjFwn82;nq_>UigzZ8BQ6nZ(TLaS86cB0m#icx4fC^Sjxth9h;di=DL6_s$D1)Y_t#mKi*Y*|%dJT-p<}9HN{<8Z+{0$ymt6!JV^W|H7)Q8Hx?GS839aIUxAl~(HkNk=@~R>;kT(oVE;%RPE1MzP zn>9a^r+YKFbW@g*ySM9JviHcn1*Gy`0*j&o@*9-e+jA~N@+M>a;Yi*FDXf!5o3f4U zElR1xWQ?5=sfd{3XJq7V!|+G8uSC%-Lr}2sLaIrgg3k8d=ai7T^CPw z7svXNlih`|#v|fix+iR4HUfIce<$J%e?p&+IUUAi&GQp>>0Z!2pYXd$zB#^JpQDln z%GQ=X{ODS{i@M|wDb_|?w__x*?Uo;Zy_x8icsX~rmlUXl2ez>B9Q}{@b~md*tK62H zUV+<83gp4<7Nsp4{y;LMqwpMYZ6SNX)rj}?ejKWWJ`kiBvD+~GjdA>q_~OC-U+MTf zw4GDh=FI2`b+>>Y2G1_r0&AS2(d|l-GOds}DjzW%vg?GOZ+WkoOi=_Udoy)(8ol}J z&~s~hLQ=RzqC|t4c^sPrND$>mPXeF$z(*Iur)mqyCHv_U!|{;?YiGzDNkB&nbP@!K ztJ*^MlKl*!n|eROFO%7H-mgM7AO*h>@EhzG$+jp^U;m0(WD5EWeoL3(X?vn@WDAjz zB1N!ai{3$J(`jFaihMmGik#k7>XNN-tN|~zIiy0mtN2ao2Dw{xfTdFh zcG}y6mr$R_l9R9&Pa)0rQRi&#LZ8C@W%IME50yOzsUpdJ&aS<1L*dWI@dqD&9e+1N z5ctfvhfaOA`I`{KfO3)0TA)X`Y@#}DJCo@{o7~IBh-cB}lmg{TU`xra{~>J{kjN>B zrfJ8$LjDt_@W*TVU~N^Y(q~$i&~$ih^}0DKm2ZZJtD>BYJZ>{pSC!Hdg-}(x*EZAR zs;aD9mZcCjxi2Bs%mLfsDgkzSnH~y@aLW5_T~*ou$!~P=WU4i9?W(mJZoC(s#68-8 zYRzqH`L8xkf}qTJM}9A+cb*omiGqSadp zN#~Xu3jf?V{<%Z&r)F}28WrO4sGj5Qb!1_bgtwkTTn#F6TNUE3qp7j`??W@d?%yB1 z7?ar%cQShV-6t3ahxUjX#B{>c#BY(+F|A%LFZ0V9tiHqUG}|)!-E+(5cQh;gYS{9v zE~R@jH_82L)75@;;3fM90?D`fWY4Jlam8SYCpI!A`7^i@ek@d3s(0^l=v|72e}w)$ecSrvSy4uO~`OF9KQdCzg=znI=)PY9A{Xy7x$i{QMN zKM)%m3cPgMw*$0(2DH99K zY_KQ&(7Au9#H<+G+aq@}eSBBr)^%&uez5wh7p>6W6 z-a-jW%cMhx@Lr>rPW=>q-`xT3 z_}6!?!~1^o|KgoD6#hkV{ELR*A8%XBhSB`j-=q0cp!qJci{QWJ`!v4@dh0w?&u08k zA#G*WTT*x4dNK)pc5E!}?miT|`*pV~b`-mr&o(Rs+#g`R&NM_!EAT$#{z=Z{`IeR? zu3CBp7U`Tztn9Ba>;|Q23kU_?w5|FLytFA`wW)jxw)_L_rm3 zbg2Vf@Y?1pVN>O=u9O9Mmm*N@(w)$^)471jN?CX zDE?c)0&$sY#rbnJ3u_D+g+)&!bjiZ}pNyxPO+6EwpXBA!FL zPs5z=oos4?h#GgsO0<9mIp0{wqL|MPdmEDt07*PmBmLlgy@iUIJ*=ddJz*>b6-UMH zuxHhM`qub-Qf;Ls7{KA)(!S(YwKLJeW&u7`DnUaM#A&_ETgPTs z*cf(grSQ$t57KBb4gYV`=woyoOq2R=(l9#9$~EHn{&?9>fb8s^9{%BDV)q8Gk_WD! zjRMB(t_^AA*V9bIRV2bnVbAJu_07N)E9-N3DCt{Rj!$A|EcNBs8B5uTGXifDM^>%p z!bVn)$|TC&Q20-d<3D)_{-6nz_~VH)s{^{*B+UL_KY^AOl)D@*j@$-5ea}w`BDo|v zGa&Od7Snw@jHIrd=qlt*N#f3k$HT$ek35xKBR^&(O=Ta3(tU~wQutAjR$K|Sl`{VO zXBd;WVvqO3RM3b|0*mkW4+;O$KXgEgAQLDwhGi1#DRiXHNLo%4IkBzSgWe<&@<@#p zej`okm?={6)IfSFX7n?AggV|b(EE%bEIl+uyrzOSJ!{ZmaA7^r668<_Hx&L;;`mP) zf)CkJb}T13ZqqmL&lB1218H_60D;df`j-B>L` zd(B&xIBYT*IW_JN8NZ(UoGavF9vy9^Ayf_g2Un*8=V;jKg+yq;hZH;|yDyL3C+fD8 zm_8Cb0S%&FwZ7)oPvy{&y$3&pZy|G{;*_4R7}qesiOPj`a1K6mw!0lQ zrw!La2aR%gYbxfKqh5T~+gAE0`t?6y@4@~Zmo~_04{~XPzMpaaEe%p$ej||Jdrc0P ze8u`_xUa73{gyv>MVz>R+u4B+LBcdETb*cPTSd z=xilg`UAS<_G`L@Q)!cYzv>CCKS8XBGRrj)JOa&^dk&nS{)88pMDPvium_b}(8Cld z1!K#s=!gX$A2tmCk~sb)cs7W?dF!eyVzvn%*O;=y8-qVGl8c&IwnvI}Uatw7yBz;q z6Oq60Xh|VFKN!Wbp#e4tA3t8OM+zU84z0Sh>f_x7k4xd-NZgMqk=tf67N=l5xzxi_ zAB=tjk8d?=kqw94MoW^I*GCFo4i=DfCIN)q@sU+st4u$t{?Vn-R~tVHSz1V*eEUS` z6^|o+e4D!o+67N3>DaKBoX>ECKI_!eQ%?=AD?GxkpK za@{R;dDk$zx2+@v#vl}n&eS_K(=FuE$`6)E;lD_(d%$xC_c0HT6~wF)n7ohKnWzwZ zF`njmq*2b7iQh)*kg9VfUMmvakyfDRRfuv{| ztbWr4cDAucos){YN#bj`mni%kR)+8sJ|OoN&rk4c4bTBv6EKQg=$}E<;sz<JS~OO0obp`Xce z(gR(t%F6so^-+UG3g1xpPmkk2eF*+rqnQ7h3X1cqepF>4I&Ttd8PK@D+6{|-q6O8e z(D!POa-h|zsII9${FmNh!qp^+DLooo{jrxPiHOVnW0$H)^_23d{_u;v3fw>5>khHG zk-Fh1aHIo|C{3Y--K@-?Eewz*_|XF?N)&r zclBzU(>@vI9S`fQ{9~;N(;1l@U6Y_l>Y2qxkatzP)SXG9znkQ# z_cmcB&&7I@eB@IfWRcpnv3CA!H=R+k!fKdOM1$GhFG7j2c1-%`In@mszx?1BpJqCl zlom_}KHo&l@DrF*k&U*!Gy?y^qwp^6pXJo}6OU)2rN1T^J4s$K#LVeU>HE?CBMQ8E zrl1a_H?deI=aFC0P)u0&>qwJ)yFkQi9fwbcU%e=Nox4b&xxi7GMac-1~fl}&+w;%w|ccF0kz~W zJ--a;LERI5Q;h2RBym-@GAB8P-BU5_^fB!E5C@uJcW=Ksa44h*&}nin!-)Co?~K4F zAfRku7=;GX+50v7e>os8WU|7v77mdmHe;qZzQWr*Dz_*&c$S}o};ir zyaTpFJ6(DwX}F>ApBcv=W99Ysk3QG=8Y1DzOmL*E)c{VqKkV#DYh`l!XVLyy zKhESn>sWt|eNaYM`(!|1(KHp z9rZfA35nX|o!(cy(80kbM?rGgEMNR}|8HDZH|e3{AslB`25mg)D#JAke&b+NA4`r;-h~0+u|Fh!w&%zfE_W#GQK7!5UcYF~dh{+`Lar_uyl5NYd z%Mf?L0?XI$rVD1sc~1DZ8>c-FfF9aM>u`U4$N2#Y#fK4h*>YmU@f>4o~Rw_ zs`GMRhT44ol*jG~WUv)#VBw5dFoo8UTS~e|mtfBlNX;Ze?Sw<_KM*pdEJ$FPJ@4Gfn*H{-V0eP=1ZsxzQ! zKflv$_hjx~P6HW%=D&yLZc4Jr_me5=Aep2LlA^@ma>Q$r*YK6`y0SYW4`dsJ5MT36 zNMka3((FpK$>l29d0K3&{4@l&6tvZC4C{`|K`(FeW!N1-8Crjp&xW>I?VZ#4RVF!j z5J=|0(x@=j7tBQZPlZ1>d}ZS5J;E#t384A>Piv_WD@_b5N9NT`*pl8!LAI- zH^~ny&-gXU7*BpC+YjH5+2qiTCI7iOj{nU=@P{{513~ZkM`**|4Zaq-n(nuMd4aX* zPR#tT1^*O6%W0_3P=comLr4EUbo4XPLzH@y9w}^xo?afD;agRiR~c<((%zns!*f&1 zyGjL_l!BEz3r7WE?{DG=v*k8Rwr1${(Zk=`TJ0HcJ>>ogwOFbvZRy{JIBS?i9`Pg* zidGD5Lg6T(%tN`~A^IC6h{3!{&P2IJ-w!MO=)0q>32N2(E)RN`v-o`+U-?aFk4kyI z(amb*ar;MS;WK7Br9(yEh6N2Y>QcB-(&SMiljJ=N>2PAO8l1lv)L^9Ly{g%14oKU)1Y>asd5QT; z;j%d-Og3K@PHi^ZKL~aJ_Y~Bq9HKd%=^I0cG1tU+v?u#scF(R!F?B%-`J37?HjDKq z^pI<1`qj;zJduc#!>hfBdrocQ|keO8iFZH(7%z0Hrm@nqt!UfT zpJ`>Oj$=Q|lxY=dj&#Rb<>>RIP#64;Yg(%?yiK`itBgM%qT(m$BSc6JIdExThcKjW zH*Y_-T`Nm>T-`oO0WMIL;OMISFvO8d=q*xEJ351*kk}&kJ$ga~4UZhYLb{;N=e1@) zx?kbBYxZc8Wy>cq?t{zeB)O|SEFzf(LsFx|oP zOk3z}MBFhEKBI*9pV0c{zL?G#wFg`(mxi&)%j>{3bPF_)>6>CsLyW2n-;^R5B7ISR zcj&O2Nh{g6-H%>~Nwr=D_i#zjK0kutA3p!L#qqb{qX*kRt*6K2M~S!zE%`!>da(9^ z6xN8EAU}rnAArc;K_?!L;XD7f^VHzZX!$$o{g9OmrcCVrZ_FVW|4z7vv39q7z80DU z<`=|tIZSWBqDLp;jzdzgcwo6q=1h!C8mH)|Indji3W!?ddcQ}COwT81~Bp zW&cmxYSOT_%G&1_sE;AkyTST-w3igTKTtn&hSblyfP5m-u{BF}p4oYFaA)=N{pkB4 zG8q!XSY2kGC#2xx;GaW-*9)XSqNa`9Z5aOcIR5q__!G3VXHL*MnNR0W^Bb(p7ayZ9 z#`J8ox1H|C-F|y_FzrPt?2cNQ!v1gksllDKHYq#-Eh~hUC2LZP_8y~8V@e>p7t(C0 z_WPlgDIimwv_T3Vj*|SB?dOE!9%^i?JiZG&VeM64m-ni>3-U#?_c&TH#TsHKg(Rcw z_-R9$DaoQ1GkRplJ2qc^h)gL&S*(_Jb+cMZOl*eoGUhDDm{*vID`sz(_r%lu8ghn% zLcCU=iKVBp^oNk11owrI-Xc4y7O!@b8;k#Q#PN3w!QWaXv%ciTifL9Wc=QNb841>g zSWCXGZ(E4r$IvsN<&faI(3F~k7@H~DcUlXRwgl8{7BIF|UPHk}^g=d73bWBVfz&Z( zV+qYb!Dk&RA*CWN3HTeXuL$%2^Yg0q9PxEk!s8D!d^SUn!hh_)5Tbr#)n|A=6>kQL zp9cSj$%P~-1)SP|gr@;KNTxdJ?P|mb=x~fhA(oeSKZOcSKi)P3;F6zWO*i&xr~Q~kWA76F-6JKrCpwV6d<&b>S zdR<56hy@=XHVpsU;`rY-1pni}*G%r0?Xzpz|8CfCS6(1__U!W;scDh@Bxo0>+z%oL zLkt1cS=M3)CFt@_d5q8hCK$KhjPvZ@^$U889|q994lOwxY{cwA_x53Tm8X2uIprc< zN0JU+ovQh58J`Ty54U5?|19_cR&@O;_&#g*l-YwS3RUgp#9>(GtM?I^9vTH*p(1uC zW7CpNEMiGg;nzYrS#D_9)V}Fjh$0W+5{ge!n?~=*@KI~6p{@CV{oA0o?2MbqF4zhn z^5AataW|O$w=|A_=@9(AtxW%-67QGvd|cad+}-H9>gKDU5dd$n?}R!w+e$$^P-3nU z5{q0HPGJrX+Yhm$kM6yH$(oDVxAcsZ<1sF_mX`oWX_{z(b>x!Y4AcwvMT&ra^!Vb!y~|v zFEUv4;Z1l)f*^xrT7ThZ1?0jUP8p!n>+ewn4%)9`{{Irzpy44`rsoO&r+bJ=7U(n3 z*%@9$5w#LOdvfADjmHG#W_S-l4uM#8BX}Fu{>$R{mkq)H=O^f1HfQF5Ch@QrEt|W^}tV48A8VIboo~9%mT4-N5w>qb-88K$?n-!QB z$PO$=iZQTALhLfX+A8-a5RG*_QSLip_g!T9Ip`KAW3-b68tjsKo$z1J>#=9v9GLH^89dr5oc^(X0*#zn5{t?qW!Q~w~Bz(n}t*d>>sxi?*1E#|1Xc@Up@r? zR~SD}Nipl|nT1w-^wylGHKY(0vPQ-mw!p#zx;?I}vlg6}7joDygW=HS35d=UCH!PB z-3u+fn{n`F#$yXz7$1rSBVqPKS@vp!a54L~WZYkD~!v;F*Z1eoJnc64qV(@3C#&lwwL6)tR z!qX6~mDx~@?x8t~pwAbN41+cJfN_eTF`e3+hNyfTB)mzMRIJ&8`CX7sd!hM(Nq-Dp zMf?015*D$A$!xv6yiVs!CP{na@&zWfO~S~7bw7ZxJfNyujx|5zxD!yT1y~jt6Df!!G|ENv{(qG2tLCl+=1wdqw{i=p1?DQ;K;hX)! z%jPvflD`&G2MbxLmBJ^wUuaf<6Zs&x7H|GjaKwU-4;zNRGmgJ=2>#kYK>6}{Ij?Pi z)@(L4H@6Q^F@QKLXW#2gWcCt5cV|MtLYAV{zJL~fNKn<&8K;`FiNeoT0+wBhqqC!1 zk;CLG)cBHn3Q<}wZr7o;Dgw_yKWEFI;z;4U9)b-^%oFG>*P34m zF|^59k~`VFM^H4J-JDXiC`hK{1;>-(l5w^)`@_Qc{P8wLVEGp1Q>Zn8l{rcLYDYHF zAod*QKJ7OY{Gt&!k7y9>| z$U7^PjFFuLZwieeZ-g{_2JTrxWJ;m{J|4B~>nnMpr*RCj@O6`;%NH8ht zlZsQt-(z-2gmjGEnA2Ui<|IPj6>T6>NzR|Yq6icb;x8uJKoZJX-2L|}tX@XLf55z9 zbgaD-;p7!|=W&cmB>3kmFWp%79}D96FBpP<<|Y;aG9jd&stSDA+=x{al_A!5MnNa} z0V%wYQA&`mJaP*R;kOs$O$sjU}|!QwV=ir9T?p z1`Q9^gSx`OR!1fNXCFfmQ6h@jxdDBBCT4v6+A%TdL5`4+muyTv_JSexcgam!16G%a z=?eLE&=syrKHjmraV@lqYt6puwTSK*SgC!<{X(8V)!4;Fh??qf0lW=VKMwf{Tf_}?)E|L#_oDT|Co zPpK59@CjbRJH3?q3ObT#cqXuiR*h(k`uvkCxT3Lw29W_K8w>B5Nvg8mZk{_~gZ=lV zCs#Z%Z&hjfWJSAbOES1@uHC_sBN*2JKN>1s_FE6Y>0;MfmV{C7j2!1>ZuSv z>m!BAU_8$l*Q0RVCUx^wHECWNP?+@SX*4C2myE8OR~O$<_}>}F|IQ)! zQ)`30H&|73$=&IRh6_R0bCAh);p%{)swNud`rit5!^T&MI1ZDr*P6U7^J-u=Y2;w* zsS;21Ugdf3`q|aq3~QrTgIRlLmP&lNS7tI3(^|6?k_A$|*8EG;x_B$@=Bw8ida^9h za5udCj(RwpeHD=qWpFw9U@`oF4IeCKep^iT$KHjN0`VSO4dOlawqcElAJ<4Fjf>A3 z8W*4B$pp!IW$|nL$yt*1gT=4SegjY5FtO)mQe@5WUE<+$hEo4(DfCEq&ntN28Ozbw z`F{<(^M=BIVI2R3L-7A#u_8wEVp3D{5o$nF#M>I9J$(C@6Nk$IYijD36SMWU8bkyQ ztU@gA`b>p5t#3z`R5D6;H&%8zT>LA0%DD|0M_eT^7^p2VRhCp}WjhRy+Y`>QHmHcT z)Y|E*T=PUmM$Gkb3+{O^k6f7cNFt7?oM z*77G}=5}1DMm#pXks}Qm@VbdU3)w(|C`oG8?)dc!Ds8F{$mLFZZRUF3}6pj~m6<^0z0pzG6+$9c?E4?RNx>O{QvUWMB5P_!rX!wR3{ zCByQJTH|Bsf#$0DyQ%rn<%X-SmkcNDf0%o`(o8nk6Q&ng3*g};g}=hM^nNVD=gaU7 zI|>a`G#o_a3Ym#a;K)R_LeZ>@HOi8PHJeK^*55a)Vf_zEF0Q|`BxA#CvzBe(j6d)m z^uFi)!J7Bh9Nch2;lC)3|DqxIt7nx##_HN4~QgPMd^(9itZx??Q z>(>ujDSG!$V(0Aa)9YuST|X0JXYqF~#XIN3-cS~b-?@NaK0S8l*3fbH4QBsycO3t_ zhv2^qYpfNJOy5}p)?(?O7SeKrd@T{e+C1r$B%9kGYxF3E>%`l5k%F>b-F4~ z89H>lOJ&x!$2hHl6&}Z%?43E6Pe@K-{$IO_QiLbb-zWRD#)Nd6t1Yh~=*#{VC9kGu_?A?u^s zA>lnKD9SG~eW99=O#E&O_FJ)cx6lc4SSd^+R>T8WV>ODzo2+COfi)oHm|w%%1R9MI zybY88ERN&PnBGD8A6u2PyOoE`P4PCO_xt<~-uq3+34}KKd z8PlJ#$p3rbs~um-llA1@*41hqv~JJ2c&{8Yy)ibEFVQl_kq2*2*k3>cUyP{YiC_%!{DA^^|9iz31GiO`O?)^?y%mPaBxW zm(0|LdirN@1y_ab#zfn*grrBqj$S$W#6!3S`v>Q&E^2u{q&Ig2rTm>9t!}1mXwF|F z=Rbs-Z4VIB3PpOgFH<&x;U6ylyC;tSJwxzMb6mpQEQyQ;?I|=OSbqzY?~PG@+z`sk zW0cxc5`c8aqMvcZ1RdM)%?Yy2tZXBcC8lv;73Q zCVHQ3&ei?cdji1*Eo!GREiJiPfCukSVa;#fpy^cV6|-sg1Ba zV4ho<&>Vj1CjQSt&%wWY(2mcA(vv$r6y!*830h<(vHaAzk6v zC^wMh3Zq`ansg+?KOFyipb@UR8?jywz4=oYeVR=EIJf~ZRU`1@IOX}=v@+||CKb`oj!P8~!w>B_ z+WN4EOqwJ(v#3AbjzzTNcJOhZgM;{D6BrXjWvZQZ4Av;enhCEjObjk1bC*$T3fW}e zH1`3+f#%2U-?Y;MFJxQ{9Uya;eE-Q87!S@s*ML5sr!HbV<#J@dx~8`3!p2{~qmh~d zJ7$oZ?3L$QRD3~`9^EKH2FIRm6D|!w1ZEcSdshKYxR_}|da^A!GpYp8}gXGA~qzW&0H*UI?Imz&@ZFN>xWrFh=yR1Et?^?4vq{X=$ z`~~H@*4$9|FNx#7WC;E{Ll!a-)H>YF@m$q6A=dsGzxQ=YoDW1yH+LWw|CgOf#=&z1 z#`8+7!Ez+Fx);`9*-AuNALV(h-XY(Hc*~Hk!p<@l#Z?|#;Uh_)##*HMyjL=EZe}sW zAwOGv1pXb!1@8csZZgaF9z4oen%5->7C%hWLndME?rE&|W_;gyC?4QDkoPV6oOsmI zC-bSO?%hu4UY75u@6E-pz(YsB0ZtLxRZ;UrdjV=mB6@ z`(GNzf9VkXsbJv04sq@mp)nuCm#yOhyE;hfr0^p^iTU+W?h5z>6}U7io?~qvcQ*hX zv}Ey2&(7wi=FE&n`&aKW4uZzk4?`Rm;2D>*OX2krnWPY&G;*XI_+6B2r~`!#DSW3S zpFod)v4Xv&T%xyjpWSbSPEkmn$?n)5l@!h`fW3r3_Fv7cKLBMZeiAM+>y`lZ;QS{I5(Zc&d8LW;CrF-CJpM) zB9w85q?ll_kAk0g<9e3%cTrZFYdw3Tia%CxKKR@=*{y5sKbZRmHSHu5e!IRmUqald zLgZ&rjbu4kb5b116<}EVUmnMQ`4IfCb${1Citmo&|2x#UO=eCH&Wcef3)~(RM)AKx z4*_Xxv<(qi>!HnWogJt7`Y5~qQ0(tdA&bMzKWf%huQ4aWR~zGf-kM3tm)GzQxgPR^ zzhrAP#MgV$5jlAD3fZXGTRx7$ZWQYZCRn@Hu`*V{s>pyie;7qfiALrF$T&rnpdF|s z_o9~QTUpAxqLk}Fzr;qPF}N;>GHdY94Cq_1LM5HXMynQkI2a#s(xdU?nAqObbrz9G z47ro2A72S9J_}p-X%N-)*t4Gvpqey*Y9FjU7^+Viy)E&Q?}H>r70ekZ`D#BK)B9t* z!E62BguriXh3>(u1wVi|K#2W|*l--bP9K|V$jm?$tGIp{L!U_`r0^B!2#N`-7q(b^ z$s8#8Fa0D>+lj?*(EA`&zcS}5e6192#v4cSHmv=xjN`u&A3Z4l@wSd{(Hd(?rEmxQ zZ0ivntEP00ag^_I2W&7AyP5K$M8hZ7b>xvK+#u<(q3&wK{6eH0U=IS*9T%y9U0E*5zQv zz&Hd7%i>e+J&5?qP}#})oS4Qa?zwpdScYL)e%ZyZtIa2QuOK>^N4C_^Vpj{ZVrXxJ z))HPt)4mLKxhc0Yy?X0q7csvVD{X~z5$nK?A9&MPBKwzjEr6tRsT(=ZkqanBX>i<0e*ZQ@lq8D-W7Kq(!&@y9^nkMx zZAwBsKh9t@F6I{)I3f>T=!3OaOpA`w5 zBNzQ2vH$y-g#XXN@MnUD2Gk|;;KzM(vx`UM#lAd9DAV9%Im+2u~}Bf1pm>^nCbVc-Li)Ad6k}Nggv4S z!bc}_s$a|s>}FvPJl-#Vrfe=T!#*ka0qllzI##$AI}f;A?w`zkUq^GzHjsuTu>EX* z!!3v3GUC(v-ay7kdGL##O7|S(8j!9D&UZK}-M19}E(w3y>4(ODCVi+qt}g!ErRkhT zw849N8Cd&&6et{QZi*UoStVX%A_Gvo!TZnVI8p_ z#=a+a)Vt`MKTsgJOS)P&n82VAA&B~eu)cGSCf+U4iV+`1H4tS+N52uYTvV=H)!i1R!m zlPG=5bY;tGX^guOybYWGDb0*?Z5oC{zor^5GnH-n5`_7U=&?d3*rqRc zYvEr{ODcRSl>A>r;8i-|ix)fr*&TAsr}qVtNl&0yOH7OKSq27V1va^p1%E&+OA&|C zu+CF-9p^|e74bl;geY=$jeMm)S(hS5X6e0d#&VztzUM2oP4tM)z0Iv72f%4iTSKyv zg|(qvluoiFb0wshh(4ZXFky`$m5`y1xLeEryHdixG7SISXs`GtvJ%#oeyXV%(@gWQ zVeJfkPY3umCi5!tuw4xhv@*5Ggv1u@2pMnnS|GbVN9!xkiSuF2Sj0fjPhdgHS2HF; zqXof>H?trf8enPxAkUY+nf!0SEB2-l>mjnu6)~H4sVB28jl0CnmfOnrfg)$SnaQ(V zTg%@smsi*;=osO_*l-i&!j(fPqrc+0WAIEATdP}%2=gY`4im&Jm)3!oML978-?84n zP1I{v(zllOM=<#hU;i(c@LwK=Kc#|Ju{|i&gy2&JYQguHA(Mg10caaThKsQmv~+)6 z(aYtYW~X~7N5uQCD5pAK?uuF|FDF*M+_5sM++MzOrL%lX`G+gz6@Mr{Qyy6rRpG3X zRqz#*PZzO7K1N*%y>pFQL<0LXYqSbSUUb(yu)BzA259dCN;j@8t)kbaicdr`V=3yQ z?!dBAjyU0n=2>1@4$X0`yr#G7fj;JNZ`aDcRPdp-C*XI4u`QbD2+5A}n~3@daz7!m zctI%Q@GXV^y%PTShT-4ab$1_ZE#Zq5lQC+n?ASG3NS8-$M-LbU3F()X1ebMDeB`!19M^7EYS?QRY6sMwP$FjZALhi2kfK!l7-7b9aCXi1e$RN!4VW z(yuI*1x?rCRfq{eT2HnqiKz_p#$9&GcM!z;R}-_#x`sIt6TAZ}S@qzmfyRJ^e9IjZ z^dRoDb&ZLPfy7F_0ew5?mcoC9g#U^#{J{aCU9LfPt3}=vtk{qzDH;}Be+yY3OG-hO zy|kPS2cfUMU-%Sp+)S|e{;K-`WCD|`=_qj_WFj?Bsshx)oU6Q=HazcY(GkE2A{5xq-CD z$hZjLpR|FDqie6z-Nd8-4=+*L1&kYGnrR=Pxs8bsVcjJW!c~t~aTb33AF|{8nI1NY`U*u@tWlp1hspT~T^SE<<0`i|8cqP$2a# z*0BV601PfY=8YDCo~s+2S0wqOc>j`tt}Tc(-y%?770SH~bUoUu0MwzbV2IOuzz^&? zaleoNjjA^23i}lP(IZ4yU;(d5}=udhDvIiTcI<4Ez~RObSPpHaj4MRF0-m@%_JKEKM<)hSlHu$J#h*=$ybm^)S2M_i=3r)d2kwJR}nZ$ zZT;-x5krp+S4Q|cE%c2?@-__rDhYqO=pCZ}na((+JZM5IDSda8P+b4sql9JGK(o|7 zw~Oa{=`8Ih2>(ah4Ef!#pWqvBra0ai@>-2bX7^i|vU-&LU!)gB_mMq_0vH{^NCg(cns)U@6j>H&i-OQwj zprucq!uS|d<{u%65m$Z`UmmhK<}729^!fqJ=RLlIkU{;|Z*j+asFrsWiAArWdfv-8 z%VHfD>iR!$EuQ9Vy4rWY>|%pka8C=?kP8Dy_;ImQOv20 z81e!`*9V#w+gg+!;EdS*u(F};Zn@F!e-i7amc&0S6%gwq;3J^-55Ce5pWgO6F#EF( zMKK$k(Qk5Y!};olP=B)7?%M$*}m5kLiZ;Ny}UAfIv zHmhy&rG>0%N|W1qFIy6m%LGl`u*fpUAgbdxkm+O4z%|s;Q{lv{EOKvh{OT8f(b}br z@`oThGqFT~=sVuD104{H-i}G*u-U>Xgwv&1xh0rIg#n3N@ zsO=yLzSjSl*;HI21G;^w&eYj-jhTwO=3)(?!86XlH3R)rQlPf5<^&uuYD?(gfg+epH1SlQx?yZnF$cdsPreGJf(}p%cE?(b>Yl9)= zAjNgTCK|bpt~u|4oWa}2G$iN9+oTmI>!<6y|LLQvyt|z=!cdj}u6ay;fmZ=t!tnt% z_-0S(?1gh>yVL1XXvA*A@Lw(AzZ!2mgn#aKH_rx-^)N}YIyQJm&)gC=SPO1Y=9>d6 z`Hklp%WS7XY`5KLw_o+7yH!b2nLQ{oEr|_Ud*G#~V1pGX#rRC)?`xy2ya88xd(zwr zT&)`G!aX+N`b=CO)w5N+-q^zipY0)*gN?G?`-OxIEn(6YstdSvd~V64IZJf+=+&-F z*TgwY-aYzE*MvD``g?_Bm#o3*(zsHx|KT?|lRPG;e4laqK2Ad{PUH3@8_Am3kpz1a z#4b9YgxsYptXiiJAg-awph~co#w_HGjzf(NI;LLB$(X&I!7*aN$BPZa-y`Ag3B#YW zYdO8ct24M4K^I>N6;M2{bNw_>uzeMw6qD{+9*AVug z9bN%VQo5vcOvonw+6C)BrS9C&%Rpq^xyf!r~@pTja+ zo|E22WlSk4W*;(kTu(J;!hHK;KfxL;7Qcf1Gz$nk3;Ye^r zIAUFRcA|I3+OPY5>VB({&int14TX@D?#do~3Q`WvB_0eoNuM zM#6th82(e0F~N&HvNVnEWexxazvyqONFE38TW9KB-ObXm4&cC;O{58)zsLHU%KsIR zj{l{ffpkVX{zCu5<$oVM{(k?%6&KJ)?m+*L;_xJAMz<+Iix2fjIenHT_b}Et+>B zttgy8%lKGllK$nD2i?zM9->_T<>V$cKXsLi;B6TFua)p$i+6sCA>{7RuFKl(o@N?V0~Wc#zw~-7m10{~Rv6v& zy3fn|^F#TTii71}1*#$A^I3yUv{f9sWbM?L%gv2r>CS5>WCdE9-s;Wt|L*?+BUFg}sepuNUCug_U&G&X3j>TGl0M7{y8 zSQ%U$S}w3l?ssdAUaii+WG1!AZmT9+?bFY97|S3AxU7p$UTS#Jo^{@YY;@y*ywzPp zzIHX}a?06;2g)z&tnLRYzAndpMP{1U#58!xGCmVMU_})hT-57v9b74|H@GUR49Qg$ zUJIndBN+W38UNQw_^%7Yzh3usc{UI}64+<|D;r51l|ynb4bwn7rQ^m-1TYay2Z-s+O!gMA$sVZdSiX)W(z=Vjz3Tv@-Qe zd6iRE^MY=pdmm9aeT&(ku~+Vt)hqTr;quSlk8y(bEldunZIC;3H+jeEX1_~Fy4so! z*}==MFI?&6_m;n0{zZ9u#l00K6ARn0N_e6$1+-86Ne3&z;1yVyQ4ddRxwRtFxuU$& zwW6Z4`~YIgWKPa?9kl<=4~{cAdChaKd&=8ghVt%adQZuoY2! zxlI|fA!&90`UKVUvq2l8Y+79w@ccTT*+H^L`)Vwv66P=)EbXo_$r0_}BwAzDSePSh zu(-R%O076^TqgHe=;{(n2rNS4Q98!YTWG1Az0 z;R;A|#Cqq6S0r`Mv$h7l#Pbay)Vzw(=HQcx6(r<+mxWh~}6LN z;CgCfUBejoI9&e+8ufDxzh>*2PXZ-j>qFY+UxHTznx;_K44?%Dq^ZT(e1c{VBR zzjywAF8x*YS@Rs)#~%2MdVo$LvS*o2nHAB$>yPPv>p&FgS{Y4H<&Q`1@1~Nox{gM> zC2dl|VO4GPad~h(>^wqUnvh=PR^-8zp@@cM_??by)FTo1p?4aF|05FqH0aR~{_sonmPDloguDni(-~S$X)~QO- zxrjd+(O>2D^5C7J2y4DaRj|&ZY>2SDiEQ7KNd6kex^B%2`B&Fi3-Z@agRFj1Xd2n! zjL4;^c6Z8mlkr(T)>`S2HAI*XdZ=}Vb=|>r=KRmsDUi((F(BhAA5vKlJ|rvn{GliE z&7ShL)`xYI_<|SL9(-7P`_zJpHJ`1mc-Z;~^a^!j^5j7#ByZ3o`ukdpKg9oTCz~$M zcsMQn$Q%#z%*PLndgKwk`qkz7KR=Q|($l_Mugn-~tC9FU4FB~K{_Df=PaDfNlull* zzp{R5QpWMX`qst`X^w{?AC_6zhUNOduYWXc7f@NQ|9t(%H2Qzy@eI#%_?1CskO^1*X&wTy!MxC&#ZN>+rBR9q3sXteE7`6G3%Y{&#b@AWAVIz>n)y_@ZaP)n3nt6 za($jBgQTTR_PmT^R?jPG^0CYHV?DnX_l}7FkBL{OrA>P6Hc#Gbd7k{&CVO_^Zeu;K z;f%%edK#O7r|?WZZuPt&mS`0JPdRS#DAL}T`iOqA=dFxK^!c9O;6In1=b8H26i;)8 z`c-=7_c%6%q-RW^OW_f_4a2`$!oM1CJVgKMSL@MM`JVSOroEcup{x!C(% zE~np|&U$V?tnmD=N&PCPmw7nTAM;A}TF)6vdPb=}!BcQ_jOSxZsXpHGXX$@_nSPl? zUYF{TL-wL^>fCo=6+lO8CjFHwc1yw$=WX)f_yPH^NC4~a3BK6OR#QN+he_s2u({!EV|xaxYUDYk_AiZkX^6QVfukl@eyQ6N|vQj(Yy zrajbkreD&qP@5ZA0CzBE*&aoSi7?NQJ>b{+73c?)ANybMp-q$*h1CdMuOniMS?!2- zNgp+-b=UEIeifDKm`g~!I|@=APf?3NItfRD__WXu%+D8WR!SSPT1Odaf6|25C|_x1PY_w^nCKwaSZcDf}Om@P9N6e?{=SkR0Bc zhk<*siOSVK73K;*5oQUUO=zbY!>C#zMW%o+-wpv0-~~-R1KI8@=L2NFuv~wLEHA8d ztFT5Vtu9wiYDZ(8&|uKrM)(xt2=NkbHu_L*lg5O;0~vxMSc?@|ly7|T zcn1T^-ONes`@7()mE+_q@Z_oy0_cxG|x$#O==Mv*34oJVG6;Z7qUw7i~@W5kQIB- zIqp?qFYd;k8hcTpNZ5~{5}&`oQbJlVV98 zxF9qB1_glaj1z>*#fMCEFCktTN2cvhA}#pF1>BN#D#qz0EsH%xv|NN^E7>b>mdZkS z_PSe01=o_6z)=lDJf8&r-~EEC&<0H}+rn^!W4H*E-7iotLRaBw*y+Qj#H#1zZYQTf zt`^!$bv)zp6w&L|;@WpzAfmE&B?jo;k?dL3i+S+;U<%G!$B@|(}2$J02t z7IUolG-L#C!|;Dx!vAr+^AP`sEbk&33ahJ-A8cQW2V>pJQ9BPg=4JZv6w&{E0q@^2 z3x7sBz4$PeEga1N7|+qX0Bw!p{7a9cEF+e|n1JhLPHk?3Tk0F+8`4Rm_CS98)Y`XV zpzWnTWONRX7O&byj7y>%wU8kqYlsiBrt2zagFATvy@Gx~=@=cJx=Q8NX_)6}eIGM$ zO2xeO6U=8B>I)uBO&yoiBb4%`W)(OwqM=<=u^?y%D z_&*Vbzry#jeT;A6yswQDa}v(aLt8%=*47TR^-i?)_h;K=@>PIh+#oC!W&wW#M{1S| zg}9a?)ZL}-rMdp(zRj~Jf;HC}Yc{DzRzFDbZMKpnd_;6DG_-2}(oUWr8U*Rn)wvJY zV|@mqG->ZfM3HtH!%^W|D&(Th@%S_bmI~wW{aQe2(%}kohn>Xgc96$(+l3e1`&^%G zIKM_|F28%<8j_XTacFywVYwo0bYWqHzB4UCQ4*adGxPhrak^w!62Gf6RO>vyTk}zX zse?h{2;PR#|0W54sAzA{f0RFzyL*kUc(->9IObSS-I|s_GbDY1K!PKoq}8CFK3~Q~ zGqm+eO4Z2c<2?Zkw0C3WlzFP1sVCWA`9X7ma9X@h`Ru_lf{qstV{Jj2L!qfEd?TJX z=?;aC9>vn3=}!Wa0gjv~`R=Y&J)qgA*S?h;Mzh9wIbyF#5qpi!xsB8b4esegx1MWh6Vo&EG1{r z??O7t5{%q!82%8J6NXOZH}QXGjnes!_j3_H5jTvd6fZiaQp_ZrV1bhs8tct4kvm9) zGZr(omTMtTaxe1bg;8!M?-)M?dpUfR%ar|3e-QRtW(VbHfK<-i?0XUHev~n`BEfgV8OaX>fUg zC5Mn;#7yU!`D2NxyGa`LKgGDePtY7ou8uxttX7iULcO3ue&7OM4tan~cQ4n=XT<8K zIQ9yS?#jZwf?Y5&m4&xh{Ey8N{+q+_cL+;ek@fYisQPvnvF`FXJyD*G8yf_YGu@X> zHoBJxzlBYInNUW`3a7i}2@!edLbvOTZ zBgwqxD@5C;>1f+Ks^#Q&>!_5zcOCW6-RW_7B0Wukv%2RzvHG}sNVX1jMR^`yXBV78 z?&Bo*WFMQN#EOx69wD=kn*`ghk3zI^lJlW2$@4*=($f-H>bWfTo15!aV(mmG!^qlI z&MoBZ;;7yG1Y&JKjjCFj-(0mH(h5>R``D9f-vakBg12GxzeU1-OBnu?`?3(#UP@tU z?#hj5t(+=fjr*t0-GZ~w$kY|`0`;Rp5FX++z6}ejii=ToBzRjN94|8J1Tq$Mw!c!O z(4~UG^&}{iBBu6}%s=^~zqd+{Y_JJBnN!g5z9RMRh&^E_;3=eMQ16StoZ{?I*GDwO z6087xss`gql5>wA-|q7pk(JWtAf-CJ`)Q#>s3??AU*K^F?dyPVJyYO!f4Gdv`*2Yi z_TtMIe($L^!A5!LiHYe@fFKX;EjIsemGIvhhJT%(m`#|971wzo#r-qHdR5ie3%mgD zYvHWhS;!O^t0QZTGI(v36Vr}>6>kD}-%}#U z_Sghw&jLYJM|}of8~9Ct1ZVbAL@Dh_9(iBDvar;CHu3Yov-Zyhe_zC!^SdsJLp_-59Ytq7y~&%Ce!j3M>H7|f=!qZm7_`-HRWd0{CXIk$-;=is_cc66_hYOO3} zYn_6;R#v-EU~0>RJV;nMp@4+CCLo$4)ymU8Wkf!1W3^o<6)Cesh;?nlctJ7?e6pjh zn@G0WZ-lQP{K~>)dk8+4ljU0=5K~)`oJ8?fAACttBHHsv0f{pnv%O%~w#EC#kW}(I z`q{1?>hE(%caJTDOe9C(`FY5H!2Z&C2D!?*5}!wJ`^Vt#x&Seq4vb9XrMDV}|C18_ zPln;oAm+!PKzH3ucEm`yF)I#Y8?u_*e{QsIjN%$$ldW|dXUzu8z4j0?N= z9~TMLGu4iE(*BoFO#7b}639y(h;1mG5@H>(^EOuPpT)MlUG+cqbLaQZx~1@cO2YrC zF#KEnv4i|})D1~YyhxokK`-*#rgy&xknG?4{DD0fKZnLr!YMe>zXz!JZ}`}GbxUl! z>lLg-xAo`WIUksL8i*nn( zSB}7*bK42sT#9U>QwC%epz&P9q7HSvIKZStUVyccX-UN?>}I z#%^;KJtcL#jY4f+P=kklH&q%vf@5#w>FtG0Jc$>u@3>Sv%ArpGD~ zJMbVE3+ZnxwC-Qbmsajkki$qa+bHKtIM z8O02|6(uPGliti(OHAmg5!E|{EdF%k(}GPvQ;gVc82&pX{CD7uhwyg^YR~P-DaAX; zy_Jy*-X>A=%~iydW!L-4tJGo}Zx-8F-^TbG?PJy;`e%UlElR&bv`b}#(#R57a&s1<5@wY{ zRUBU-tFGr|gX2S#NdKOqaQa8|X~-@Z+`URC zzhkNXC)H#k^|Ed`^|o+A=x*LXPV42jZ^vl71oT79OAr=z9b~a);)R4LAAaCt{dQ2) zJ^I%@^@y%WE&T5HBzR_!5?Bs|x;_jkQvL>+l9{Y?pFoK!Qb|hnM*SqWd^(jY#rbyX z_If_hoe@he^e74_vhfr6h30MlQ>SM~BcV#tzvXcYMS(Uzn9)*orhGPI>@T`poe zezpef-8<_IW;qyO>b=%hYYb8e*DnA!*Rb3%*+RFXW4r`6qW` z6*ze8Yu(c7o%U;fd-YO87Gx}2J-mm`5j#RFHo_uhLZXjk8hkQ%|5v&Xh&^f@dQ^kn zJlLaR(W9On>`}>ng=Y$3O!uxMov=Gx2R)-ZZf`<0$= zkeOGHHvUP-wT>};1^KGd^Lb#Q=aPuy7_8Y4!4)1C6GK_VlOzj9A>zW7%`b0uxemHK z7*DB<-T<<7Fc7b>!K6^gdeBSf06Nx6=Nbpkje`GmnSJOi)diuKz;a}_kcy0OB*^yL zmGS$r|KVcOp-6EFC(hZqDCz3++p7)Iwmt5GNn)tbkO1 zH0GOFa?HICc4RFUYcjP&H(N7Y2VC(k^wFH_?P_ZPzrCk!Dg1vS;s1*;{Hb1SCSqp9 zb8o^+=AhfCFh*~+xB5SKlZk&pRye}-ze`#O2dd$y?VZ;u15YmJ&mx*5@hZ5ZR;9zp z#JeV16(wg~3a8$+P;6h(7J!p+7&0Dhgtl7tj}q! z65K+(hdmN)iH5v?v>7?c$;v`m@S(m4SR5rFP6b1B+u3~Mb{a(xO)+A(VdMY*NcjH` z-gt=r8#CA*vcdM~ZYmP~EO?t@QuMwA$o$xRP-Qv;Nk8QF+j&@t(RO40NLP)_6wa>X zUbp`n8P|rm1SX?9AjuPF2~;PiL^Qy9Vbn2FW2h!pHJRj&dG5>#CcoHqX2n85`+~d% zGy8>Yuo)?{FDz^j80$i=OeTZ8u?})X>eWR|`yh`dX;cf8zkyns?3WSie&PLDE}vZ> z4GqgG1S=oUle8#AlV6BPL5GW2{xU3mHU3F%t;Ko2!47|x@x5VZ{^KL#CL!z4{#%Rx z`=x~cFT?QfEd0Z)c;6)V$H=LBW-(Jsa;CxmM-O@3`?LP#r!n8-eYBnEbzl2ALEezR z26nt*^4Uplhv2+F-kyp!?)gC*e~cMgk9?cJ&eyJD&KXq~&&hyvop2s`dr$b91G0ww zLPLN_bFR9C)k4&RjnLB62_M3~gkJS0^rcy%UC&ToVrqzm_9tDnwjt)ZIw9XJ-`&1~ z$y?%TUr{QMY{x~aS12v46&Q=1E0xJ`J)|0fckI&DTIiEY1nk4tIB&y(l%2L32$M$c zHjMsvOZe}`D-Y5CnOPHj)XF-NH=TNAq$iXJ#+6L{!bP;dd{+43tbh9Q-R}ov`y%;|f$BctGI$7uv&F#M7u!@; z&R)mMF&EHGAT7cJDliO~W4dqHac#xup)hH{O`Ppl5|B!zkPCB3UonNdS@k-2}y2Z{d|SR&E_xUlwlUe3x&_ior1N37Z}sX zMgK?Ee|seS_k`g;FGqfUzSxo<^&YTVNauX7wR81jd9%3jY#D4d$7_;ZjP-U%TR&d` z*=_Gl%I|Jw(b8|ArB4IbnTQ?feYTEp)sHh;ho@Dj(U3mVl^>i-`6d(S0Y!-ej#c0s0~)~qOe@}4QE`!%={IX1R9^g zrP?$6WP;uoRb4OKB{-3-JDEQ!EEIlGJ)TWQL{XzMnXe@OSn7--{vEn_eO!J6VJ7S6 zzhb}I#tQ{}Dyab1^1}R^l0i9QNauke^}T+`NK9WsHhfFbf31W+?es(V$08aRwZ*1m z@>UX4oV1v+noPSm&cGC4CEl?G`IKroElGkkE(1*tIOa@QdryFw)^pZCwr~lMt9=Lh zA8OO6u=*k#+sKv^q()tAA)h1i&&(B|M{Gx2|YOezJ zK`-5H-azF>uOZefGnvjtnV{W&_jWeYb!IoLe3jV0h-+22HkX(;gu3b=V~XgILB>Q& z+Td%-2HTJ=1os z&b77@VF4`nZH1*wgEF3vBx-UYFWyxtwB;&Y@vfWmMzGo2iRFD0ll}{ibsy*F5Z3j8 z?lNKFQ~JSFl9TOAbzhi#o9k!p^{y9?1>iR>t810+Ys91VrunAK(l2Mm@!s_D%5+z{ zD|U8t^3&Wl7n3%Yyw2T0)RUg(Qq4+tBsYauxD@VjJnL%FwdKlOxa-(WvfEtU_`lxO zGWNpcnQ~e)nqtIm!}z~vB>bPj8xPUHA2i5dYq84Avg8JF7L}2-Ja|w-gAW@T%h2dh zBik$RcB4k_FtU|})FXg!*WaZ)8`aGS(9Udzwoqw`2FLbjpI7jjWae+9ACw)7J}Tpg zqI35w)mdu$v)P{Q(-7Gt#P;-gGsenh8XqCD&Y4DLg2{I~;o#H7+zH#i?!)%)&My$k z`KhoNODZ?Iy{4aXA*)fA!Z`&FJ|9XK<^R@n-yGdF4;}Go~2v6rH*vFL?M^$Qa@rwW}M{qg!{c@PlJh_(B2tw_vq) zHT-v)yyghy9}*XEu)Xtrz-xlY5o~4=mpkFXyB_?>>M^TBU7v>%R@}AXC-;rHFG%Gx zzF4uo_*U(T1wT?BjXFn6EvV@ou_ns9+^p-1AJny1nCqxnU8AlLnAY4*I&Y2KZ5aLk zO2YqFc;zAb4>mdGHmzQzzJ7M{gAYHre)ZJVB$(d4S15E0VNd}HVT%A?t{d&P80{8p znlY^09F&{-gK{J%tpgT4S$DRRrqeu!Jkrc05}ejO^t*#ErN{C~Gs*rM_L#8AM2~@G zR?KM?<8R?@YRH6xupvY2R$K!eRbd~b@Rw-w(bdyd-zQ*12Q8_J87hYleut=Uw9TnK9T6?=QOt)p zO(Cj_YwnEKfIH6)_`D~z^KM6L(wcHlvYL&nZ(nU>t$cxaB!sbeTjR#ncZ3}S)mg`} z<2CfI)bi)VDcl)#2b=Z^Bt2mikrkulfDPg9Zi()3H&wFe| z`s^7iMrmprr8k(ddIdjKvtIstVI6-ds*G(hylsoutm8X$rwxBr({pbX);6x=Q)7(G z(7DtoBh*MEcN<3k`y~AL;gyHzpSHzQ(Z7`4$`M$*dMZqcme<27;Y7Q;SU6rpv+-^P$0)CJiN>Y|YyUb08F!lOHv?#CH>TbY7x z93x@Jy0FSm(!kHZQ*)A}Cq=Tb8XYq#pQpVhDGGbcm>BG#@9f8319=vEv?lKE?N zWsqAZkzeVS+nCA1ypfCkkH~-OCH(8d@PBNDAkvXUMJ>WjI{H=PdcMU-QIr0^fc?|P z)5b*2dj1JE6h*xOB+Al^&+mAvFfJ-pF`YL?-7F`Spx58Y&eYKBhk9C;*fTVDtQTHK z&&oaZQsXi7k#*=L`)osfg#M;u4|5wa9bUMxk3N5O&R3I={if>o0+`N{-3kg0%Eg>V|_7a+hE}lZB#HBPA=k{laqgf?8E*o_E0md-SDoV<|xby@Mz%w>l?`(VA%M-U&4QX z82+dE5?u&fc1VSTh~xg35ap%`S{(djSoDVf!oSJu`G%;zL)dKzX0Wyg*)3oSmth202>S<}0{KxS`BX%2x|8o-l&*6=S=6@U^ zl-6jwbgYuvW!a_kuMQnQZI3-mno3BC8r)z|*A4rgbHu{gciLhFg2=HEO4=g`5z9X) zm4D#UrQ<{8>G6iu((&p`ecwCYF?js3OZVQmpIFZW()F`1#l9Y1k8$w%=3jdC#_@Qo zrzxqL8K?C{UDP0lRARSg4nw?%8_fha_Q?=Q*wd_ey%b-nxK|bnjed^CH`8k1YV#2b$6~!09*gRLV7nBQr30R z`-EN21mY~DHXqwh(5xEUo%?2u_c@_Ee`;RHP@tfG9-*!&p>2+BPGr=>>U^t{`u2so zHV(i;*bjS+oJl?c%bP6n1g>!7Xdd!M(fy6sUyS`J@Cd`$k(1p)%vqf@->Ap22IpwB zanE3Fi*Q|sFBkbpA4IgCP}e*Ct8j)s885`Z5BOt0#gU#5bs<`OP~FRRO0}NrSYDz& zaZ@%Z`41iL8Ok-q)+lOW!QOvM;eSBF|3Dc228#??G)VAa#B|%?lG)usvaWTI3E%lA zX9fMX#e6lj&JzEUh{ZN;) z|9-MXkb(Y{zKJEszvIi2M?`7(Trm!V-Dk?@a&+e%7=NWvw|t-@V6qkoWri2H0y0nd z3zy0_!FtPNDYK`LQo~=lU0gnYAV6aRNItv7WPrbq`}#r=^`&;Hp7;8H6BvyQL1Q{- zyuRIbZF>x2byODee5|8hN3!ECYD!^*g_F)n z&)^Jv3d8y&?Rzxd4DFk=-_btkB%Y?SXmO-MxVVwK4a5JSg#SUj@(})`d>Z6mi1MA) zQQD6L;*l34!f4;qd`6^wWRYdGqK8c)7XxQvSjW(K_1Pf)6#ES50VAUo znAhs<(=nG>!C~mHlg!EBMsB(MpNAy;4~5}x8f*_5jVGnV(@fhW)U_9R)&ztD3U%dN zr*bms=wp3}&O}G3>oD?#9lP!n=hm|5%f5Kb7@zsBq6cX%LRW{`<4jD{4K&V)H0cLI zbPjI1b2AMftco>tnPfJ zcryAXeS(p?4Ws{;CH!B;3lGshETD6=7Z*+6hc+4YS!&)+jxkpXCH8$7&3EyW$R0k5 zC%*SO^AUqp>IIg8Z9)`r3DW#2%^%brdyn(GfF*jN!bFxtgRA%Naq@*^!pshmlixAf zeAlYuJM#a&wZOqB}Y3W4b=bA?p*kae*FvBk&M@_lUpOIFAO9bH0Nj zeeK+$>2(-~QuDUp9qAk1L4LuHRP5<{4a5Hx3IA8Z@XsPs$TNI4?0>KLCnM$_KyKgC z`6smar=Ji@dCBFN%PKP;g)#m~cm|owrS{R}wBci}p3CMt2IqMl=6N6Hc{%@VpwwA! zf6HGgVm}GkzazH&Z^gD>8`kzS$kV);OeTAI3+{aw_kIlbuIl&`M=`vrs`;eQIXkd# zRvmi5os?qFjfKVd-j197Fzq_+htq*Co;V=V@+VIOD8^I%fA2$ls{+zn-hn$^RgrVI z6#kI$Q2EcV!|=Zsmf8CS$~TV&A6I60p35h9l0S1Pd||+ZIs92J5Br~TWB7*$@jq>d zCucZ4sYHz6NIq~y>J-L_L3Vl4i44Pz`SazwRn1hU z8FNy8N^=U9W@(pImCzjon>5jXiCK{{Rk6dkTp>RzS`3Wf4ls=V4@>wT4#S^nS*bQ< zMbfoMmG3gFVmFZuNjp?K;=D7`qeW{WnHp*+e!b zHK-cmymyS3Pc*JDE=KjOw+p>AepPz|Q_)haJJh3dd&$lhG zRS0vUGyT!gDp-D``qK2At;EJmkB;u~EhoyejHm-fHaI`0<_I%A>fGL>%h2}5DPjvD z0W1tQpI4cjdfwpusG@@n!1r{UjA{0eI?J<^5m4N&@|v?Wp2mB{6a<iBhXt^@lTIL9LxlYd-G!eQA+bZ4N;?=rSJ+igYv3yWg6|LpJkwr$!{i`JU zEr^@j0GrM??W0;(5f!E4j5W3u!W3SjW254<4m<^@H>#bLf^X4b9}G|CK=cG2`f?}9$fL~m}~lzLJ66NUibvA zlv9nSnVUINey8y*aVyc&PCK-bm>zEsdS2PhyibhjfqI z()6orq<&B1@y2pK5!9HY`59k>Qio{ovBa_O>MX2PQ>xo&WA@YXrK8R>k$fR@z_7Wo z5xq>FuoRX?>-e9;!sM@st$H%{3ENb*L7&Ku(QHERTsP($-BpHUc=I2&9f?u;my?x| zUn&BWi(hW!`OAi98lP%>7*F>EFCTom zx5THrrSPZPSI|FIdJnDtC^~s;zNQqG*`@aVHZo2I{VtQcz{aURRB17P%1%@We^b?H z)y`I(8r;3SHBPZZcUq76)`U3y7jB27hRN3}{u@Agbx|$^`;QM{$(LnlZ_$<8%7g;j zGT|gwD)fRoEEMJl6}J0ryM=v1j_@XThwVC-#Fq+X!b`Sewi?78gg2n!MVk|)W}}o{ zEVW3uM=V9p-z;T^eu|c&by52Q8Wk8?>Lybj32M951bS)gk)Wpg!^C>X{z-Ei&zMiE zY#cokHTsKl$UHZKw_)Qy)v^QsSHtiJPQjPE6B3xoq@9@0B*xD+6;%{Yo~}8k$yT+q zWDmESE47>Q&T(c~QMB>r@!yoEI;Ro#ipOJZKF)+=YH~W!lqWw&uhrUMX93;-_7`L{ z?uqy!(Fx90L;S^1c1nAz;*6+Sc%N`Fu-%AM^IE=)FlXUklVNzht0ZzYNi0E-+1>Jvz?MwlWALK7!#NKK{QZ;s06~{w22A(YzG$QOv>=%<+cOp%oTZ7^PS-EKKUa3L_3HjOC*z{KoQ6$Hv&QncMl7FEG?%^i!!H+6=!)Rh%YP*ZSoBs*_uI#(GM--3f@3VcA zxJmCdzHRdqX)LfDM*>o2QiP%-5FwL~!sc_a_uC~oT?{j<+ccRlWsCQNwZwP!FDKSJ2CM)66rdTJymMIGcVMY9KtL^?*DY% zcl}Q;8wZ^sncuo;^jsfv+dM>=ED5nEOJsil7s|<)u{p2cnLz#YiK6jD8a$Cwe4;|z z9NTL#3i!EXkrhJjpJ~)sb=sjq`gFGx{wE~-PlVwg@b4fyv{bY2J(YMU{v+nLYJLO% z7(Y*OI_~4d7NGcR*`d)NC!W?nV7n+{^MLJ6%g2ewsbxUKC{->W5s{&q#HYow)2{|X zU4I-vu0Lq%hW=BT4P74|{Vl~Yo*eu(hL{th$W>?EyZ^La)&EsH=i|@&ibg&9_Nkp6 z@9j{1v}l}6CwwMXOEEywp0^!8;@w0xCsxcF-8qw7(H=V@>rN%x z7tgwj48)K>9z7E2h0y5kS$8p=7)*{G$%fjGA+zpMkO4da@)&qS&_3Ta8gs}@LXOFB zI&~zY|0D9>HzfSu2*dv_4BJ!>6NToXGB*azL&su5m8KXg=xH<`p{LP&Q0s?i^NFX$ z=EG?er>ALgdRi<_Rj#x+PK(9qCHT;dqyHqk;!&_F))i@B|B3&imzS(H0+z$NqMO#j zp{{EoMVPHH1506D(fkaIS@1VdHAyuwnDbRli19W`?h9qh{dSqIttGmJTA~gfamZrY zPDh_sFcur9IA`OSPd3|C7+ps0HjMvkl<;rFD-ZGi+tCILU!r4tkjm-M9vJ^S!fbv& z`GJk^|NUV9UCHJb@?*GYz~S|#lBzXIsq(?jG_pmZ7dN+Ng2{u`k4614+nV7aTqZ;HLbp)LAD z;vRdiPqJIp6)n5;^EZihCEk&qmpiF-sjld;OK;<-R3;v=j!SI(aSp)XE{F@KRD3vD+~EKPlmV5^p?2 z|MU3@K8ZDgIo6(9VvA?vG%dOXw(>$sb2M&axE8AyH!KDcw|aEDvtzmdd~Tqvcoppgc6d9+CU!_NG%lY>rm(U2_hT-2N;ZKDgL-^C!OFj#2kq#Amjxn3wrESya^I=4< zTZLW#`}(I&5JX;A>}K*~OtM;e4ZG)h7jqpk_ehNCde>KdJ}XHh8H`zGGAhZq1fOA* z7OlGst!r2nYnS^?;&-2~eieNCd?e!mp^+R~{EtBWDtf-p&mqD*GgUF+Kj*W=8sFs96*3 zf8VJH`2v0YI=(-neID@xyPI+yxz0%?2G=CVBt(ZyAiLcA;rl*<;UB*Ke@nvutuXv2 z&dHtIgxHJBosSsbQma3%E3(3i=1oL(x!%>#o9!6P#p>?hJD7_Ru%+;GmUL&v?2LK! z_bt88a9{h1Q})rV%*>fak`YoXJNvsded@{Ul70`QQ%L0o0Fv{azrX8huXOY~zkaTM zc8ldjH;vGe9eTxu`}ADz`uO_wt|tc)W+%)&DL&0q`ZOQa73IL=_jx=`H~Pc7ANLKA zPVkQ{gd5m21H(Gu{)n;Q96lnu8DzLa_)U-D6-^X(dJe{=Ci46KK!ih1v| zU3OJlybITj*lig7|3<=}rgObX|H@((t)X@8Lez8yQF;CwxNM^B$C@6ahTCX2En@9# zIe~dKJHn@QA_8Bnj97`Hm<_gEr|0EP1Gx&DyIhR>96mGfi8)D{)Wus*u)&mmwt?iR ze2ODF!t7B7XZOibGQOXdL~LMO>%|9AIpMu?IkZjujo3W{+GZ_y(K`me*AITL6TfBP zR(gB2=o4z_`4P`2g~>AbVjRS}S764*q?HRx)jOA^LgpJ6n@&b^SqK(=+oXu`%!S;% zSn}Q?CjU*u9@XZ2b!*Z8ZzcS(6u*JLHkVlCo?vqexFy<_Qao_;Y;V(Th^neY2MBd7 z7|>cm=FX&0*X#ikiNo*sT-XN=kYHpe(LvI73yF@zd3%I{>clx@{21Rs#EJjh(9tN% zF~A4#EIju3!ZOf%T~R?bGx>63ebP(zuiA$qhFXzL)FH&VD`8_~)OV1|!Y^SDQsxeQ zddNUbNghV~9dgD$Nc$o-nR9Wql(E87M9<5dx@u0<5<}-Px{o*{)%5pjTu=R4X!No1 zPHJOLvjWnrqD)w(0KDS}-iFct+Yp)MsGs%^X-$}W$ z;3aTgOz_K)#c7>motNYy<5|S_#0dPZ8S4Zykl!PuI0~w31ey`zpxro#dg>tR$R7v4 z&YPHj-JVNi!QDOd|NTAG1~A_9n}C&k5h(p0{+|PXBk-pfQcRcOa{-?N;O#o`O(CQG zf%Xg9Kf-hW{sMW&lVRUW{9ksSc78awUii=%alAp8;{IwSatv$^&s>#Nkx8o>vD+~G ze<$JpJG}7_{$?Qj?!Z?obE?El4dz(aRxu+N@qf@+S*_0bdt0f{fINyX2$hKI+~K2f z*4qM`Oy&(uPBk}+d>B!tZ_p(ZW~^yS)rQ~kRcop?$ZwCJ#G{4I9WU<3|KZ)IO{#*#aZBf>P;Zd0-qpD zZ>!FQ{$X^({*z{t2z)=Eq||3f@ZSEIz~W-s-+mDwK}SC^7YmU`>C@wwj|prEn6j&U zU;%uO2P!v2oc8Kl3jb3Q{xs!NbRdg}(l>69`ZwL6{%L`G$k#gSoDTAh?n~70E!LC8!q;LA6t!2bxR6=OxrCoz)ckt51w(Bo!`%Tnt6||cWT_N#Kx3#)%j+S<7 z>uPUXyLQ`&mktElAi`;DZPRN42>E^A1lm~k7hwEgl5^hko|EVMywCf*&-+}?mQ&m( z@f3GbNPN%sZ5RK!m~xa7$0$dg6HvHOSSkLluen<8){@OGniYul{-|H>rO0n~lEBd5 zq`u8A)d@*SigPit#?$`euf_NE>^@qZ9!L4_(Y`;AjPbZ9Nnqi%#kOPBOkj3cVlcYs z%<@%l&u+{SrvuulbwEVdzM=Tk;dRv7#sN*Uq4ku&a*Gp`MH z^h$JjF4aj-#vVnjsw0sx$6J3X_UtCcWS<1s&^h;tUlN!RlIR(4ln>Tc$HD7n?Kb+p zb{nwu{kfOQjIRd=d3bG{SZr&gzB_?W2B&dX?(V=Y!IQlc#ogcG6J4KPr1wp7GF)`@ z?;qUXyDale%V2OLqJ4-jvCrzlY%j$3G5Xi4JxS}5;>_{p6%49VSo2*oi|df@#pqPS z+x?LRmB?iCnrkOA3Xfy>$IkyRNAagd&r$qStgo>Ox5CSKpq;gK`x)J5E?DbA)Hg<8S1;pHc*%6HmKeM(Qg?;@P0aR^2Ce@^%ha~Pks0DmXm)hf zw{C&i=H;axrU?k=PWIhpXKqe+g`pWp9)AJ4!E?PU%1M5=uaxwNOUi#jlKGCb{k9IG zY^Yq&Exux_v8i%NTXV0}OJ|@Xy^Po6I?1-XP+|DTECe zMBkG|T|~26(o6L&?AV+%uAh^ zkM19_4UCRuMWlbek3Px9KG+hf!tbF5JXVzO3&Ts(YIQM0W?Ul3+D5M#kMCpT|0_}a zU%`(Z9sd&J3_)s4^=VGajY&SEUF$ll3|)}vw62|2tuxo2!C#{5=9=ibS?wDXx$hi{ zR#()mr?!HsFFy#mVIw*BRx%E-={|*HNp+sc|)038!(&bSs@Hu3gp?=fv;y z_%7~(8iII|XChA`!IQ|p)8=)wp}GpyTWEDy1@b(k!V@sTz&wczGX0xvSlK?Ax$T~9 z;ozfTS`C)gA$#N$^E9n>2R|`=E;w^T|9HfG^f!&c|J5k|ug2idaGRYI>;>C0_!-U! z(z_mbF6o<^ncR9hw3vWy46c--5nBvb)cSK!b#qOwQ(;mWBu{R3hJ&~DCye6tU;7IU ze3wt;sLe$CqjkV)kZlY|{XUUQ2BNfn(^OzJvEORroJy|JnP}g*Z7M%~+ix8ao6dE2 zFs?^}F+B0#2fl05kd0K1K4XjC#}>%|KT50d_&x^z*P{5p7K8tp)~Q70-Dyieon5bu zOe6WTg#0@zU2t!3r>tVpf~ zrNL3Hua=mTC2>}d<)cnLS!QDb*IUeXyB*prIOOh`U%*ONWe-*e80cA+wW zIvl<2k`S-b+3HP{z{V>zPN$JaMh(sW#Vx5;RdeV?YRy<&`T!u0qs^>tn&l9b(R_;H7j+wW+E}0bk;`8g)XA|n^=<#t1W4^yyE+33_i}*?b!+D zN|L(dE%jw~1FM@=S>2)RN~AfNE34NjnG4j9fYDF5qs&sos{>cVqvzuy=T+xrhRSLt zC&gO1P2wjxqDXRRyQc7^$UH#p!%pl|G5W-%WtLo=c_+MGuSdPtgtE)(w^((WuGn5p zvOAQj^LE^?6L*$gl-*eN|2LxezY&AKz1nTHZ=>{jD69hll#X;v0k53IB@@hB$%Zrq zc~hMY#5PtF-Bqm5fK!g6I@jvhRs`O70^^(d=2xPp%59a^(h~aq@d);z*5oCqJ{E;3@EwmlTihK91UjaHp4}ZL+;+Xe^^D^SN4;g;{9Mw`P(NVm$Lu^!uZiwy z)!W!RYFbsO7E%OVq0u&snx@ETHjZCo#{b`<`2Q^i|7RS8`(nq()lXGtOA@SH#)5^U z-D>l+JhOuo#KWc|p;_OIN!a%Z2b;p9dv@DlF_?plDjViwBiPW*go8f_BbTD?lL$td z)>PCoz>0Z3`C-*`-%+iyxpj1JBr=?T+|qzS~eWK zHhi4#sa=t_F73GE(r#}{&khfG?e;=xJM}y;g)fM-k8uqD*!BP4qxkRYi0ok$$vTp&|f#EYi_OBwNdr2f{iT$F%B2uGg0xu3Sx)zLcif>^T(L~3l zoM>jtB088nbUW7XPQ;0I!}k9(Bj^ngrf8dMQ~U!fgF zE@n9Lcma<6eYgRb_OV6qsI2YZkI%ndPrq$ke=WG9f7*tP8>FWKBRoZ34Tm+Y>LqeW z6)NkW9@3G5S+wWBLf0UH7sCvWlR(!9PIT=@TJ6;ecpFJz^WRfVb$ODLOC%#}x3{Ym zs5GU&^F{0leD2%hQs9NX#1QnarVLmPq%bL#@qm8Y^c@2rIKWq9P2is(_t@Q zMtNoR^y4oX}~`cnzO#6C`;-p8@mxmqNFz z*`<~c9nI=NUS@P3izIIv&WpZuoWBfhpnht9@a!<7L%rBMJ!vF0k{%^lX^rh8R|2v{)>-cHd0OZk{t2t$Jhl@H zim}?K@?i$3K1JAE9fob5%uE(OPph{{{me~wEKI=B5|_sk^3j%`43XR~d{xyH=TAjF zu96A*#UyYE$7f+i2nXATPP&>c3gjKpMRIjUbB(2;CCyexucLDYY6In7^`*jBoCKc5 zwW1Fm2f~Yr9$&$&X4_Mki{@XGWp)ZwQ;mMFzxJ+p(zVCZju_S(3jcSa_`ef_KjvM~ z@$cW@PU)eV1nT0IjrY9<#K=RJUjg~O^qS`MW$1db$E+jAMt$whMCA7bNN}l9<5N|? zPO`Phvz}<#Z&9}u+8b@_Ai0+dkHPor+}+eGlmJ^vOrGYws1v-W)PpLYd#B%PU9)uCVRp zRw7&Me^|ya-!^aC3D-YX*=>zeOUZ6i8ZR*@i_Ht@?;NkMG4lVPQT+djA3Q4mhl3vs z{>4S|UKGl0i%ZO05wSqdlWWhw2d~NIvAqC&jABmb=Bymjnu3*CD$t#3W(rll`|eDx zp5xkwSkS$?Id|`~OvAVwovWeXw11ha&@Wemdp>h4CuvihAr5*ZB>=GnWhm z!-MmIl-(L;C5RI#B7?ib!JKQ1t{uK$`)pmJF83U+j5i8x_EE2$yc9_Ob(ll`j#*&P zw-@}h(u!3EYqeKzqml&DfXWBVRDTAub< zBBM-Y3bQ@c@V$VQmAG?}zx$Hwm}?;T*pL)Ed=HBABFKh=f5CNI#VB6KfER0@3%ood zcrm(r#ps=1W_RB_kB8TX@2-fRmI68M9b6_#@*WwvqrdvM)kIQcU2G!zF1d2aG1nkF z5d0oyv0F!Yb_4ubM#r|ZRbQ?k`(1arcAna6nIJr7$rc{dO}cyZ{CIpHGyeY_#sA+i z_%lVCyLY1^=VO+F5l!298vAIvr!13&<1Qwr&hn)%hj?2S&&GJx6SooLHD@TFP)Py& zf>#g|)+5p@;>wvElHY~#cCkfOOh?~;#Jwe{gxdI{?^j1~p|qy)VNp8)*5iYtb^_Yt zrh!pAK`)Lg+YPwaF;`m&o$H?+xFQ~lSP5ze`b64CLB!TT0?$MCqjsQq z5#c7fA{-2chUkh=g1y3PEVcV7muN=Tg3||dg!VP}8rFn(pA9{Nwz*!9m_(S!I*>6c z1TuY2j28HIHR{Lu5?mZfNL%m9&Q}U*zrpnc>t)xwye--J65mP7*X@@@S^g#8`f4Ws zec$nFX?~~AUrln`eY*1Hu6kR8E6F-uv8TUl4F0|-{xs-i6#w0}n|)=r# zsSRG!Ivl(QpPa21v6 z#-E<NeZ2x?BF~1UV*2BSD`x(gMZM7Bb3T;EnhmbI|YU3TKx&9t%ulr$DG*?X| zQ%IBT(NiQ>D$tC~>cHor-de+tb#=|VyLUfLqqFl@`|@%9&+!b7+GKq4Xf+uPEiYI| z`%nFkwhZ71BEBBaC5J5XbL(wqv^6b_mcg_8ZE+-B>qQQ_h8DMNy=^C3j!z9X1Hah1 z&sJ_TFJSU-@*S~M+*tlU=c4$Zi^0Fzx~Ju!&8u3I*<`D2q5gE6>=M|1cG^rlGnb7^ zaV~S#wy+856ZbjKIb|jD7k=)u+m<0Fy_CH!kqD z9I!~b*4KLBiRP&4*+ECPIxsynhbT{dTgNGIdQL`-IEsCZDCO3oB8VHmLDEp$B0-cF zY<%`dkQMH~|AsRB28WGar8R>T3GK0VOHE5^uSU)`N#FAjIJa*7LTq1q8FR)N2O4wZPUKdUF9X zL>S!y<*I`bu1XOswqv%G#T1VW@YE{sR0eoze}t!YSU&ev+LnN)8W%{p6}IIOo+7>n zL=$heMfqw{XtT(8%8`+NIG7mPh={S@i!`%Lp!IvUJ0MZsgG||VYPT)nsf67Vp2|#D zlIL1fupUXyR@XkPeXiy7ZW`tMQtg`bW0qB&ds=3Y(w(=|J#k~@f4C6E|3VD@WQJ8R zW&GN*xb1MuZ!FTb4e3wdeXxCCw=q2ldjA^afvvU8<$si3XVa67X?IzdTc2)OzJSTS z$#>XN+V+6e9g!dRLVmmq`7ud|Cu_>@aj~w0u0o02nk~yg&c`+vb30MwT3>F_Ib^2C zEuTP!cwxtpat=sm)|>*L-93I-ajqNXDH+d-)wNaZI&k1`#lw~#wwY}YScihY3V(<( zUmh9r_h#;o+&2~XEnR%KOA9-&!Fmw)%a$3eZrk0qi|{o_R?y6oGLymasO4jylv{#1 zAOm;Jq^j_^eT^Ca??&-|7r%IP{L8rX^el|}la{;MUTkTyUDXoKKq?k6PcrVI;My>A zl1;PQ!Yxk&TbZ!jHV;vvcZOeB03FYxMMUTm!b#QL808pAz#iJ)ovVRClZ!|+R<%rJ zoe%mmwI8>|X-*mB8MEk&Xf}W+P&>cf!`R93J@-{Fs?-L&2=D*_Kb{@{1P? z1=GS0;;aNS2=nAnFgYB(Z}pZ7M{9Rj;=3wpSFj$oq2*|mVdQC3hp7kISseQk z&o|oVWY{Xd?bk9)^gXqPI&TY8Pa5(F>;U8VH3t8-DE?IG9UcFay7vrob;oKwE$P^2 z-(yMWs;oW7z6K5KXw@hu^bOHHSm$Z)b+rAKu9HXb!u~oC3kUtz;9-IBM!D!sTkhQ6jB-&sv_5<~zT0Eb2}W|jB0U$;JTMns+O5Z`;!U;~vL|V{ zx%Q+buAQ0vG&DqJdT&HWR0R$U%^{)Fm9!1Ow&0J?WzN2!4 z&J~fi6xX|9X^oCu^L1l)-*vs!4mqlF9*A;+^_y#N!?n)S(YOL>c?u%SqfrFTMFk8I zB9Z6@39|ImAQnA(%-M?8dmngi!cyZmt(DnttNzBGxtrk<%+2NuA~Q=ZN}tqfa?&0O z9DC{2r#0Z3KM&J>L#>N!|FZ42)r|C|Us}N5Q21Yr;(sv)e^L;oyvI_|c3!2NF26^S z#$-=1zho}3WC=<=GriWP_McbL<4bIFNvipnIf3L^k^}}m*q@)J8DpY&O$1();_xHu z81)k@uxiLG=O<#M1!s($r&n09KKNKrH4X(g51+A7Y>>x;uNleXLCz@5l1N^sTEaM- zi_C<~Qk7fz<(n{ad7?vA!nTG@Own-*Ij1?jPP;bKJ-@A`UnFL^S>mud$YSTBr|?_p zIA?VI!Jmg|mMF)98lrR1C!ux@+GitoXE_;BwsuI#`5*dg47b@= zNVFSii*;yW^}T|6T=MHQd3wz(TytbAVhm=s2_<$ijmh!YqzzL4R>It*n~^5WwDb$8 z3B7ftjWHbB_@L@;l7}k}+FDRYU<0#Zfewqk8rb%fzCT)-o3;`%v&Sd(Hlf}ZvcT8T zT>;`I+;H&wgS2HwKdMLQk)1}DC})WI5q+TH+Ee}+9+35@;2!FL8~#WHY) zV(}U?)?h<4mM&=-DN0)Q0W7(&A}-sH{Wj!r(#v%N!F%C9$QZC)$Z1*?i!G~Obz$XJM|T}_#5;~YDw)%K7q=>@EP1g5`#zP9Zim5n-y=uY zOC6Q#b*4+JCfK{zYd6#w8srx@>@&objqB~7vGYHCbO}R9R}B75%fi8z!_Lz~ke3vT zj}g65!)TU00z3)cYv?<0))X-$-nC94@!7EhpoYDcjvl$a-I=y(X0i66wX2+q>Rfcr z{!EPWL((!Oc608u(Hu#tn%?kF`6sn?M5v=vMX z`?!;t{zLQkocCJpo&O(axsAzRBA9dUXuH!EJ-=_)&%E;sb{>DxAW2M+%*=04GN*z<|Yt1Wd2NkK-qXtT~ zFW7Z_GQMRv{wdZN&XRqWQ|B0xh{aW&E&E=iI6lck=f1685X{$fw}z*w9PX%%3Is% z9wkXI|5LpI8AcsxW~PYU<q(F(}KD84|cB#BdwZHZZf&xQCo0 z*Hal24kDj5`T;4%?Q4wue?N-<`}oD9@_&?$asP#m3eb@l6lK`k4UrfsM#eYfKBZxe zVWNG7Ow+1$Ot4Qtc1;cPYBnOTX8e+ak)7V5U<>A4qF=$Nz$3pOP;-?(keZr*K(U06 zfSDkNBRPXVI+svc!$~Ww6}uv_BAV7+h(u+C3|?<0`AI@e_GOY}HCPe^EpM>I`{K&u z%vwiS{Py22J`Is1+YLKhvc+$!lgu*s3wc&U{~rtwhQk8*>~$rL39!0kSm5jlPzlxjO9TV|0C z-yMU$Y;hX2x!gf1MrY3885_k)lILHvMzCMtJO!bL1X`9O{*jW!-3#qCh)( zUyx$lzQ)M^OHuqU;TMm}e~Jlc-mNJ*0vgx!A~)<6(64(Gm!p&qM%sK44oA+ZG)H@y zfMaYsC)!Yar0DA@^nncVJs78PDqxvV^a$`d+C!E-(km-^y>}Fk!2H4wrOu<>x}wJ} zu{DQ!S>pacN>+Ch$I))u7p~W4Xb$xr80k;G?Da`X98+qJb_2ieUyU4RijJm`nnxzd za9&aL`XoY*_5|if`HJ3ypf3i`B|*RRemh34Q=zYM3qF3>82o#p`1i!%FD2jWQ4mr` ziuU&^bVs}8pe@BUwaDE|X_$gBGD^!)J{aYdKaTLjD6fzQ#_~!6c;yb=^}O=gorNDV zz$DlF*d;0MNA>|5C$Omj->LS0P;~TA?<~im-tUdzqyZnHa!U^}|Dsps{97+@dqHk~ z#4jUjyA|f6Qec~+F#oNW;x5B@58N5WUP6A<1KyA-ivA{ts`61BS=Eh|r8XY-RO2_^ z9_fGla=;k;FGume9D_d{r*h}tCVd(XYgMEvB4=kg9_uYS`dDwlsmFSOQE!Id-Kzv| zU@S-YW8xX`$OxS?BK%SKAsxSxk+I7FOFDk3EKpM!Kz<$Rm#ulMSBJjj=u3va=s2c* zQU0R+P+q`*jL449!r?fK@$1L2b7UMZL*I_0-4)^ha*WaJkX*?k zR~X{N^l{WQI_4Q*6iZJ9ygVg={|hm?q2L=KX!NZzdmM}oEKdURkme=HOR7chM09YH zosuwtWXjYD$1HPwzqN3_LRpfmFhQMAh3Kt4{qjuY93iUGwY-$`SY`9F^XIlnNlJcP zyUek`p)#fC%iAAuyza=(&qX_pi5RqwwGNMCsy{EIP?n5J7KI6SS>t4B_@qu)j;f?@ zvGECN+(nJM80s5m{4{LJ1tnkvgzf7r{tMWEBf4 zSkpOJQLhD;g+CVwK@2}nZFCgB1iQ0!Dt~1&=4fP!$wnQB4~8X~A5_YGC3=Nj32kyi z=)=uA*zw{*(H^7MnK4Iv4}U@A>QE4Q;MM^>k;Cg#9=K(|Rc@`4kt3{Ei5jo^Iq)>U z7{=N^PvLtL-^%d)Y}jtG&o9#3t@oF$V;Q$JaG{_6Z9(-9Vk{6g^DkP`eR2Pq!RKz; zw291^>Vx-UXP$4jWqSKZTbOB2ZbALhP6ppe8<{q3J@%`|@oNnJVibQs`OWyB8li@^ z?T?$%{BuyFQ~Ew|=4 z*7K$L#xBOx?6_s#ddG2oO1`P9r;0K4R5as%g^}xQuIS;}dB+`$$xzkfU>fU*di5TQ zylb7d$FVXaK0j69Dx`sB{fIJ-a4#u5f04Njz0dx)Nb)aSWJ=L@i69cLT_lD|^lGT6 zthiJG&-Zcs8iW4_QT#uM!Jp(`x(HgAMrd7{bUs4qk~Nv#j^hrJcizY0oa#JRfp?FW zcvts0{vj&3D`Gsiv5KqMoLN~h(SDUZ85yxOmW%mj#O6juZ2vGFv0F`HpxKGF;1($G zA7K0kG(@)5wQC${I$gewG+ENl{#&IgUe2n>5?(du zksE9Le;CF8!x;RfzIS-Z&BrV`0=#*7kM$UzLN4+DaMZ(s-ovipk+aqDKYrp}6L&i# zu}qNV<+Ty7S3Soho!&-j*w^_-5TRSalS6;8-jSX-V|Eu)dT&N*)$y{umUZaU0c)U? zkjAOn#KL)9%rtUD$KGt6Vf}$)S%s$J6~_*T&C$Co$Df)fX^SW8FyE}olj08P@%Nkl zDW2dcX7qbU{QsKX5P!M&XWS0UEA$Bxerh@`_VQ%LgpOvu%W=}da20GhpJKH`K9E4h zH62kEJuDWGKZwgKk}62yuP-j=_u63Nf{zP1x6{8`-LAsyGLBzk#{WlA{6C7pe;0C~ zzD1k*=g}iT8i7A0c%k^3QvSU4>a4JB7mIe$DJW!Zb30Swk{n z%^<$Bewq_j+P>I+825SG{}cWrR_gt+qZ!}o{poTd{L()k)uANbd(s$gs`W01*}j%< z-&6>lZfAMAUguaYGLuhM{|KH*+ zaoW7TT;w>2gFwD?`IhX1)mDp>dyWCIMfy}`GOQe7p#%SxqzpHD2*MC1YS+ze^( zJN`Huay;rNuZXKiDVt&SK?41c z;{S0B{uvIXVLBn)6mzOYBB)Fq>6h8{X@|6h^1=yp%t;%VK=n0ihSGOyrnE6q|0PH2 zRn1}9?DCcTy0n#$6(rqYUzj$@deE`af$`{DEK0nI#z}4K9a2L&srT9|3gRKlNBc*xq?Y9_sn>6rpsFEj5 zjAtE-EAqE>7#tP+=vk0r+`h)h|Ep2_ui_Vv+JB{iQ=#S&>NJBoKj>KRIL1!_?brzI zj)i(g&i3H!Jsrm#`l@)GO^BRr2vt^%P_}~Puk0{XY^=)QPAD~4zfo=Q$JeGpYf$@c zwbvIT2Y2y6aN9MzWzGC}l3}{UPemPpja|}d8Pg3_Ea~PMWScWB-ABx8c3AH2QfrwK z_-|Asoml>lP3`r<+Y@4bqjmR(Fc9(LRWA^U#GhMZs_`3@lJL9 zK-50wy!dt?RH2&@qK^_wa_Q)tRU4^<*8J zzL{pJzpskPPwsjq!d-Nw`Su`6Pk(iTx{u>JaPowyM8iT(?cW~)F);H#R%eNMViw;=g+YXdB zvX7TrtTNrJ^B-Tl519b(2YppU;bBb4tfJwty!+>5g|}AF+$!;@v;tcR^2c`%AaRx#PSlpsjYR8r4nn zHvME%vUbmWS%cjD!j{1;2@Mn6FK*J3gvJR?2W=fwYP3!BCHtiHQZLiA2N9@JA8C?! z;j!LETc|v0FKxjbddjk?6PCS0Pg?G4n+p$uje@+1Y20C%fGcE81fNuGOp_E>R!~>C zar+uG{sU3`1NgJq!OO;jKaH4t8nuoF-{(t4?Z7w9xFO3 zPfEX$Cm#$@3&H)c5GXw7(4M*V9r1oHDBiE{5}${5*&#{-(~x(J2=|Hchj#j-SRVcc z%ceG^m&qYUS4X^evsvP1j85NrTbvg)Dhee+r7h0m)v}NStbX zW@-?lPv_oW4v@SgU-CDY{{k4UnZFg7%ly=K*eyN>V`igXU3bAe_$A-X#N z|J}cOHTUjcN#g#~Olp?HNo&LwG}$t9gr~lb{*B1^Hp)}~6X~Dw6dmvSi#-(#a>C|` zrCUdNmC2#pDhb?iP0^^-=d70%4FpTk%fyaj6-8t&NrYuc_L64N{rb)bS6zgTx<>o7 zIG!0`4E~=-@&7yqe`WC}A~Wq_OK{2+kz$0542uG-nOG5^Lh`A@7TLuby;|`gn@I|} zWMpdBaj8e7h9g$nOr=mt7M8BT*wr+>&1&4tJoQPLTXj{bQKvB;I&CO9Vvz+c^RWzhP9^#BQ^#0ycDm}lg^(* z>u=jUjW&#+^s3!O2DMj-c|dh8m#DpyJnPa^9PuOezcm@^dM)A(0(^}+4 zPU3_&*~KLmiD|P_U0~{pn=U(fL*f5L6#p+`@PBWr4x@wl^+526e&)8KVj$t1OC5?O+@Fh$nZ&xY^#j-j8^JpS#vs# z)TcIB*2S1qPNuk5EaEP+C!HTVbEkd^L=K!vAgTtnTYE?eUGSgRq&!RF-Ate!^?8!r z+|M!z$0xWGnv{kK`;7cs^0EtF)@{`iRY|@>i?!tO4LuteL-Us2EphJ6WSwfFJFf9* z`^2UdmH}k?Be^EzB7e#r*BCv*;Yfaj$MQ&A<3Ml{zDos;6dJ51t@G&88w&p~qxgRr zga4u#r2WWJDVN~kDj1Uom01jqIJerXC&WDml_642kbrssHaFpzpF!l#q!DzLrf0=C zj}aZ_VdTm|RaAB_lwKUA?4G5IW}Iu^v(zW*48^39ueVODUz@Smr!-YMYH+s>l42zW zMMLrlc|+0(X#;0aJ;gZ~cO}1qg;fyuHWJyd<2+%+ZcX&cNmA1yquTd&hNPpCZ?Y`v zf?O$0SENtOBpYXBx9Jec$;@3=lvE!M%EORTY}`Klo_t9s=6%!_U`*J-;8Z8PY&tw0 ziSL)FIveGH8w&rgqWFImgMY0!(X%MO)kloa_!!eE@xB@9K3GfgCUog5sBb2vp9J(< z!|E%Nyv-X47w5(vno){TrstEO$9pmi6`zSe;4(>)HyPGkMTddsD$Xj!2-Pnm&IWpa zXBqpJb_M&PXy8}M)#o|*dV;%})Q3pmd;Qi7qi>nGaRzA%`l+Npx}|%|KyVH+dfhBA z+#E8mJlfKNmc&;oM(-o(;P?*Z#0%;}bI1g5yhqhU0>%9#hqlQRlf6tS;zT<+-iwL_ zhVB%vpKnARt4xt48KQyEe$ngU8w&rgqxgRvgTJY9&XNe#Q>+pnrTV!G6TEW>r8#X83{jeYib`8??j&!VXPpI>zRqOt-WWR5`}9QG zb@atyh5jM-0>j}?w=aH>(Fj`@%@Vx7gZKaYUq+McY2F&wfW7%Hx;~`OLpVrzZ-=#G zN}{`YYoaFs-%`v8ST9Tj$Ia=Ca)dR)5$5yBo&;|awAmHf>wBR+kerSw@$Mu~vNyiT ztBv#AQ1}O<_y=R~k28Cb`GB5JmRk zNbCFiCIZ=s$n_J;9X!sp`W$@;;FynCRa2aoj{3WC^f}*MeHf=k3HVKGK}Klq+xsky z^tiAuwkK=kSZUw4GGZFy0W*Ec-c1=y>8L!JiB=k4?suLrCvxpn{GO;}__WhN;=Ieo zbpn7f`hO^jKismuS^vG*M{>Rr^U3=$_@@EU2@!h9L9ZS@1^W0&%O{o4&17^y_9`S7jJyP&4ZMPzLb8wvHW%8L z)s*g{QM(4dK{4w*cnMY+)nO~{dj-;FnxNoxd_LdJ!z0No!(8*2_6o-SRC6|;czzOe>k*in{|SBlu~W*1IASePxfT254HJp_ zXUSeyUR>Myyo9!udBk^T_iFs#>xUxfo8NsivD`e@Y4EE^<(x^m!8S!;-_T^_3;#MC z{rBxBBeR0^M~<7Bufr=MpN7cIM9U{lO>?C1mYYkR3^${@nAh?uh4e!7sNBC;A&-0} z+_~>(5QTrYTrqMkU6C=lYl_;hmVaLU1)kepSPL-S1| z+TY{$8w&q{DELCZphwp9sAo$|(#|ASHd2V?Nxi3|;@B8v50{G%eJRVx3HSV9&;F5FpO46aBd zvIeDD%QMLGH_8`pV@;sr(tx}MT)`2e6&0Gq5?+TDWQk)lUGu?nsKil1TzcBmZRPEv zIU8HEW_=7s*$KCjc5!bEMskupQ4r}p38OSKBN)X#<11p6GrL79CuZ@^Dk>{-6wC$I zA@Ofi$S$xogp(gJRaA;k$iKY6I)jmxX^ttVHa&+tz$*e%uv%q=GwDvpgZvFO{;x&x zzZQePsRGo3U2lnKs+vcXO^Qa*&&PWMk+stzteqBuHyAF`?hu_} zlOrwXh|H`n_;~0E&CnD2M3NnZe!mPleFgq>i=sM1pmonF$v)CRbbl}?+jwc?qn<-t1Hl*_r ze+n>XOev0^ikH$zex2`!kWg{v5{J>r%#Sdjq+p_t@qkx+CA?p+ zA#V|tdACL3t1P2eFtaX;l7cnD4Tb-36#wBE{F#{&K{k^J8${;j+ZDG@M9qZ)BHSZN zvd@cTrY1r`BCLjN|CWYCSS2oxQt{?j#3B7aCa5l0#V%2To^BVV)1MO+_%u&cPX80G zte2DXvqW3;3Xi-GW#^eDd81mZtXCbl z8P}b`ZW5hOh=FO?ElRV0A)diL;uov2{|jFt5kBk0_j#X0WNtOB$#W48J=z%p7nPbS zWa3XU6~@Fi*#XH+L;FwDv!MydyytB{^1z>^V_7iQ{1nnoA`_J z)fd*u=U(_mQnr267faD+MkpE(zirWeU5n%2w2;C6CUd8`{u;#zh^XBp&@gfyHGGGW ze}Vpm@HZ3=o2s^C>RlACjd>Gy*N8!hJiVVBcLmU{@{;?Lx{_`2|j!eKv$Rv8z2k&!o+8%w8}DN!YjSlIz(gLI$7eLY2A z8EUTj4PvaK^nGDylKqf{^=;%6xR1VH!_mxOa$kz|}E(~J?D?~BxpKOqUsM^(s) zzPKXwsiMeAO^xdq-*5O!q6(kh_x18!B3;RS0)24?us`}EMiYJ?c}4Kl`jdoqJJ=`#7@KLo}{D^b>u^GZ@g);Q5B6IxsmXf zMDdrz;Lo@fh@O#n$n+G)N1}#9o?WjTHuW#hafrRVmzTNc5gLEVc%==n@^$jvGVk+? zz3fhYzilmla3QL*1UC)L+krA@zNnWlpaS)Zo(PnN7srfIKD=B-?? z%K?8u?qO}F^?zV7P|aJ;$B+1!OB#oRuZ5?Rr^G*5l${rOFESFj9kN5)u^*H|`muv^ z$*(7>xf6I<)6#UQ{)hapaF^{Y-OD@be>d&m!ZIJ@)tKN7-qq+o!C&FeArdr>%p|gT zs++U(XSbCia#YpM@h2UX{1r!fzP8OsRI?B@I*wms#=kU*zcdDa1G2fm2NO|u9tY$7 zh^?{H_ph}KM^W0urzc2t5#9BR2C!#NutP$VOIG?EcPTOr9F zA62lkE{J-JI7Q&i(7VXk-eOtSnM+0yy~3Y}AS3kvm!j@icZt0`G81;Cn-OpFJEz zJTj48_oTV>NsG>kxr9DzWtFbz3ZC>Ic+&Cw8iT(qioYxde?{P-&^sdIebG`3oJL2^ zC_dbG@KKM!=Qi^6f1&i%?@+oIlvV_84~e22`qywUV?c?jV5_hT&lpstG(JG)Imb#M z6Wo|bzK@9S!&a&HYj&uQK1p_d9wNW>BO^G<8|nEIa7?WSAhP)qo=JXV&HwT!{_+_7zY1R#rH9|@ zQ&{hJKptZ(-5rUUA)K>Sxl~3}*wYydUV@cJ>N8^gCj#eij?BYf!f%h}S|#Mnc4zB? zEeNqGi1XFxhl9WG=QogCTIIRMq&d@Qxkf89z0&=nDRE%QGRmg6@}=9nVRaS0ZxT$16q!Sp{x6n{kw{&$6R@UV^ILD8T{d`s07 zVf~hqbAB zy#sfDs>en3wJ;*YH4$Ej9+x7kKsb2sb;qJH!QtRD*Xw+X*hSy+WfC}39{3S<1HQ|d zlrJ@{@_=bLdLPxZMaU?cN)Da^cU;^v!fzSSNL4S9ar_!1|CLevl`;4;SQYK$HlZSe zdnf8F)GO)_!j@B+DRV2`434j}oZFd8bSJYslBej(i~5Q%prO%03c8RLOaj|+yO;n9 zv-Sisl|OWfG*)%z2kC9Q`} z(dSf`Wu8>l%j#8SvbW{+(WiS8c?#(hO+BT0iQbj^n1r{hB;oKxTo+$<@YK|k65O9& zr(UeamE#!xvHstxDE_J#{N?q8kJ9eM2<r(j6$pl1C`<#oI zqM%59zL7uP926z4cqG=^em|~=jrCVt7wb=@Pjoe& z7_wy)LuwBP<3qAc*zjQ?7zj=o){SH(A>6BX)BXm1t23R8=&06YsvwD&dB%HG_w2&T za=%6DW3@%mxn>rv5+4+$q^NZ&A^8d+!Ntrgz!NdWs1N5Ode4ou|F4eXua3bVd#%1G zwbDSBAZ7xRJ%Jp9om`Iytw+K#?67B$)fsvC_J3h%W(c#ZGeTX08lICei%SD94j~F( z*vxGrD<&Z7!l>*b*|PF<`61Q_pOF5brr#Oyy~kvHdw?Rr{pOU;{YON1%lENF=~mUJ zH-v-rVKNQ&xalfymOIOn;xZc73bwWh#@pLe_#?(LNSlf91kds+u&u#uG5$ao$(bPQkUsz19uMVV9l2X{@%}L z%5oKL@<8@bymT@fPYj2-Bb@R@><6VQvaHXGoOg5imNKnb??ud?Tx*?z7N3axogX7c zfxq)%%LihXcWp*i!#YF`^b5pz7(Qch?kukc&k(0iM2wl*oz*CJ<&&a$DX{OWjnmr= z*wqXNKSY&ClR$Jv@`z3CN!X`o&>7N5z4eB|KR$|od<_0^gy@y^3z3)MO^l^DkJOrC z-D7bJS%}MHOj&Lf#+T7pEhLaa<4=7|_K*B(>aEck@3mXcv7omXGT#KM?|W5Dj2ugJ ze+iT_(z5oeJsf6*c><-j7Ko_xliL}?e%mYGpvV*z8AF1W6wg!TTiO!#5nYx?u}_26 z^D~O(6&WWB3E+eTM038v?zP3~D;G}kDVh-BS*&K$Sw+1Hu}X1VeA621N|xy3!3mT* zRAim&Z=$+U5LHHbXZ*nlWTQ3y0AqSzyeC6bIMA7RD1mITChq@ARNPqOKOu^LLJa;y zuQB$3hKY@j^E08^6ZYTBpCceVH?5@d>H$N=vK)paZzo_^! zT;Df*TFl`T^zN`$8#)rR72f-nUe6b}Cnt`w6d*I1D*_6e#IikcKW>wxUGShw!oQ_IKE?uWiP1wWnU)Vdfp98!t)DTZT4X{#zZq@s7-l$?hbd7tY|yA? z3*vdsEBiP5(Tz3!6QlSi#^6s1J`gro5&>EYGQh+M7s({Mm;IJ2QX^PrCtVP-3UaSQ zIf^lvMy3~1n`7T(jkJEy-a!vZA2Q=y;+8sK4HyjSfZZVhw@%9C5DE5x{cjj{h| zqWEiK@Q>d|XU!}~MrG5*DbTjGS~HE4nbZ*H>6oH56HeO@8QGxM8eS4OGOUhV5iiDj z)2rf}JQ)onp*W!^!95VP4j4`{Zv9E(rejpznEdOM$EAVe1G>l+pZB3MP(%(WBi}#j z(|fg^Nr%n@Ii^E<@SZeP(>m=!Gq+8n`VKMSpJ}DNtcfj~=ZbIl6;p>*~rMq4Y0CDE)As+7n&>#q}#9ciM^wp4WI~ z)2og|WN^I%@2z_;CVEZK@#_4gQX)L+f7h_cepXfrxlY<@=o-H&4%tIw&@j^Ri7`Ih zrD$Rd^odr6;ETGC=6E8xo4Zs^rDSe7^&)folgPWex#lyn9pH(*{!YkySRFf$_eCU( zp~xNzzJ3jv&&Tm=4F1Vc{F7twPb4bPy|B+fy?`BgeRj^HT~g{cr}0!!l$tNgnh`g?r6_&EYg&(40}sG#!AzhJKl5??8iRjI6#tYM{C%*jq?nt^y=+rtb@Z_1 zO)=GLvb-U5V^3#d484X1>0C-_77A{H2mQ0cwO;B6E)6{1U&9eYhn()|MbG^RbSK6| zu-HAa1Th2dr2RXW>?%({%x0=P)w9Fyf&KsY{+jarwgmWvWD$)gDS{Kt_#+LtLlh;N z(}96?5L#bUex(jY^-RrB zRL@Kpit3lDp^QEAO_yfD6OekJ-E(8b|D;CoPmRGp6ifh?T3B`S5ZiMvq~c!& zX|@b%k?UbI4or1tc&2(a4N309A~Qn@>d{r%c4+E%EvXk153N}8AuI;;>SegrJDBK^ zQ|w@ESNduU$%;Mfm3_KTbr5+Mycn?qR7U&?XtNDzuqP#f z>T3u81phv)2_mwZ?gP;E0U>_;oq{w!5?Kr2J3apLf!Rm*hr{pRKD+miv*BBSYu=w9 z4*&ahy0aV(zSpmbSf$U{W=){`yeWk4D@zv>>>>-_oQv))(=)QgGCMu@>UHPnwIN(P zo?m0|pB%-1at!{ILfH}8we%}6ZlkssIug?{IueD<#nALF4hQ#ysYG~#&CLi!c7KM0 zJHzsfAbeaIw|seHx&L;qWDjV!T)#!tK7e!opi9JW*!xkpJD#C9c`RhF-Og$1|xnCTg= z0~ut-4+PB&wXdi^>C+jEF1ok3#;2LK#U+_tY#(GkS{mh3NP)pG`d?L0hb`|&quPQ z-ezd>Om^u^(n+#O8Z(D*rt(*&^apc>OjR;u2bCjAP=4?XTQT3XNrCT5><20%-{ZWe zDn6^oz3CatzkDBV*|dq_5KD^8kSDg}(OmCskPtefV>C*90q#og|1VMPiTA=^#Rr}p z$FDK-zcz|L7V_W3|Ii&ZhAT4AEWE@pd9kc?8_yg}XPJ_Hgk7!LS8vgDD)qXl!C>kz zHUTdvicm}3(F$MmH*$~n}9b}rv1au$=(GBv_P7)}lE#U$0Cb5IF4A@rRvw$Ag7?8mg$r$c82;Y!KZAt7AqM|>Mdx(ps>$X>0Y$zE)1eoO z!CQ|Y592Ab@Y>2%{1!wNCnoy8CU`Mi3^~3xuq~Jc zOlM#8LDT$!VpAIZ>KE|L)2C>}dUK&-$3ok@qAzq$!^-S#_I zXOpV0sDBt83{_*yngD&LR1Y1+3dp5KwqLG;>SqUT>8XR9E53fGXpsb6v_8D`>i^Ru z{L^CaSNbyZ8FO}^3Nz#%x?fwFgH~3!#;2#=nas12_`kuAmW7N#3xcyA)PqIA{FwH2 zPPZgDnKPlCkG-OuD|Y#Gi|s;?;UF9KO&c)_+5zc=85eKLBni*RLzWJyZs@8LdL-@E@$ zm+()I!T-jKk#IirM_^1_&zq?$)dQ50mg8 z7K1P@CZGX@hK)Z*uuvqxc&%lJ|tT_SFb39t~t(~ z35KXmzz+2OKKU*U<{Q&is!7If>H$Q{wucQJvh=FuiooBEN1R7ywuc|>oW|eBD-hG@ z&Xs)^{hwI>WhMOC82nSfCCB?03JmA9&f>T61%wIxaFLkqT&d^f=#xz+8Q6NreT(2} zInEom`!(llv&>kRO$of}9A2L(PvS9;OVHVw013U*-8gfE4{N;8DSpX00_%yY+O(*L zE`nS>4QhOGy9RlacG8t3Dn$;5-|beU$6*FC9CttERC!0>ouB)kbbcDtgKIE=YbYR8 zt}F}vqN5D*q>cSZ;I7sr-=0|ptTgKFG?#&7ms7VB9I46Y42QG2>u1sQ=4hIYm|+&I z9ME^w&Z@`*{_|8O~?GN^!J*4%#OlGXPk*rzJugoZdxn7co_>wDF3ugGutZB4M{JS?A4OA*a4b)byX;(MBv3CBk{6RrA{i&jcC&)OyD zG&OPCwcZiVWcaSo1hNr(fJT)GhsSo&D@*X3Qf&!-E!K>+-eg}UG8jZ;!6g4H!v?9{Xt^>YMo&Ae^7dh&mW;Q(gA8 z?x!9&I`yUZ_-&aF{&8yO9godPns#g|)%P0<;p`w$H(YyhHlC;Ye-eI(2;*OD8^Ha3 z7H4f1$Niojq@xotLPaEBoIQLXYJ-1gE9^W1Lr^0~z}KqT1@FNo+Dko)o_sXcu1TP# zmHMb5fnT=L)oDiyYL9rw()1^APoPulqxe(Q6Mgh~ZEZ66#Ou05f1uYA{=+5whsWR_ z4!;e(jyjanBc0lsf!nDj293_}Fmy8pqTLULMsG4o)fLs4sKK38of@p?OXG%|BH(}F zvu!i)a}2C=O_Rn|O?^1rDz48z_Sqm`lE{<6*2+vyu0JiS@1IRt%1&2_`qzsEgAngc z*vZkW&0z`2mLFP)fAeR=v;lD(63~Lz;*D{>aQF|M>OEKz#v6b38IAL$@#aDYJgHoY zJUaige49GjzNyx4I6SX2k5IkQg+bXKwXYhQEeq2Z;=Kdvq)`jis1I+w+JAq&OUAqa_^QsY0Kx@(l&*v_80}rFf|?pK$oi&g7bKxIxqilDLE)JBErFB>RTe zTk?|1Y2A@(#d2W3At1Id){5Le?V#7f;akKyakMqXr-9Z!>`0+IGSR869SDrOJH|Wd z8>O}z4xjJPh`9~*z6tp)XmZhvM6Aj`_AH@ogIMtCC0xBA3zc(s;eL zQ30AqGHNz4X}sENOaF6(g#U;b{0G*hqea(tT;_=NB1YA%6fwdM0eaOjSI=XnM*_*< zzVPIN9v(# zNPj^%oG0Eb)xt)6t3lLkl5+Spj$v7ZC`8(i3JBteg?>R@;r7|BSNk6+;Xg74e~h*8 z&6iX@9Cmyn5{yq!CX6FF~O%>IWt~g#h~o(L+hoZ zFxx@rb5fZvK^gn}e}!gP|2^@$NX{U?sh-JRaY~2P;U)gP&@+s$KdOu0(XXB{9@8Om z2O|GW1^OiBBA|h7xWQ~^s1_BFf5aZIk%G2;rV zeM{5(`(CoCoA(&hKHzNjp8P^jxSC*pMB@5Ee@xf^k-@MR3n9A9ArbdT!h z^$)~B3o{|G#2E)IUA3P^1c~?d!++EV+%wq6u*7^Y&<_!%hMDBBP0`vMerD`Zy&`*R zORDJ@tiGgL^o8!2uAdksM2Y!=g!2*LOzV=e1suNk>kdKJmvWFJ{JF48U_zOgr?QA} z#}r;u_-9G@XT{);)fu#1soZvV4Dcx-y&-`WrwNC6StfB_*O7?$OVH*$W%9|){Z83i z71@9ECn16_qBf&U$BF01w!jupv>HeZpp3;QH$W2*EfeJ(qFiFjzArggmdLPrukn)M zxgs)CI!F!){2ulMO8;|+7H$;Jj_t@2)6pHzo*^T~k=^vBFwyR@;b{vm??zN7u{=k1sbEDJFDJS2pQiBVqbT*I@zi0J%g&0o0&AL0T);f;C-<=$kbdci(BJEk3bc z1NlypeE>YnB?i>KiD;j+mzQBA$c3~4Hc9pR@|EaQkVmr#chNhCi8{!k7L4CwEj!wY zFREce*P)KdPkn)Wn$@R|)7+W^6S;WI4la*l0{W2SK{`uRqrOfw|HI#xYe295-z?#8 zj=>+jH@M@Z@(I)e45ginW3TNxXzs_GlyzeJZ-aJeSJr$D zJZNuET40O|D_(<6u+zoI&4c{0of>w
&prb+1cfS_}>G8@p6a_i~l90rWX&_;SuItr{M3d~hSyRY4QyFj@}? zIzI3NJh!vwx@$h8EpHSuW~JY3?~f^WWo~EKa8W@$_ZYJY!#nsy%U)g>+ZImk>hUfk z=?O)`C!)GQlOdD3*OP>ABv`E;I&1TC8EG1u#Lt7D&}8TgGu~Qw|6#a$T`a^?rZ%3Z zX?ojUG1a#blfu}_^H}A6Fv6JPjC-+ne?(>?eR%8D{&OV!b7JrxWNbxAR7V)D!Icz^ z+kP|Z2`%ro#x!TT@RA2AUC^AfV72_sNYnV2g$n3@DURo1Z7$tEUbqlUH0@hTa)w~0 zHOQ$kWs%Yq8GI?f4_X@;u2R=N7p*@pbe6jJx%ZWPS;7)YgIvgO4l2NnN5bnOigXKq zB9O=x^53Fu(swhk=%V^!lFpdIsVJseV-I%p)G50D%-}mwYopihy5gD=*V-Bri3%ED zgFB2j9u$_qtK@F`Fy|=47rNmI%;bT2!{zXG)`z!V_>Y$GA030g>Lk^PQ+B`_Lh|Zl zw2~50QA({X1k_!&Zb$8@AXm^M7{h)`3sP6W8{E6T} zff<=&m||bTtDSnmLXr)sd{_A6_5$)(;QF41u;0Su?hw+w(A5Yx_Dg4Ka{OK4KeRL8 zH+MNS6K@ojI||7Phu8j|Zn_{F`>@?PYl8I=;lFIDfki1~j4GfJ;`9#*2HktYS^j>W zVRiPI{C3_pYmh*r(H1$G+7#62O%bNHD_qwe7V9(_F`fUtEiN!XIAUl{nRxxLg{N$z z{C^R;_&yAO@A=;t3I8!M_&>$ZNVyBBO|~VVeD4>?Xj35f`hD=5e;v8WHPH0|{}9h) zWD;7+@6RElj|HmPYI3hF>1dN?QQU6pJmC;Yv){~b)_H|LWBqtLe}aEIxWaKPcu2&j zHMk^Rku#{NHm<<(NAf#eqaYvo8(Ri?>T2!1R>^zshj_<}{8#+GU~-NOwpxoUUj^r5 zPnS?;`6Bo%YbE#FWKB&8w_93*2{-(LZM2pmZ;|k~#NcmGFFc+AzxlWN z3k8|CVXMrfBU)>c?RHq_Fh;#K0aDr*S}~8SQPe=M26L~J(dd+>XneRk`u}uEaLUKJvGq8R-b-C*sW96!^6)h=5#LfiR7UP9UOWY zBjI>C`~rLr$1^Eb=oe14cs6pTT)gK!NiL??GW>$`ZpH{HuXouuh;?r$8(1 zaX{F&HKi}ZwZe5ycR`=QKglz@ znLUljaUAN8qK*~hp@-WWghhr1#F|`^lEEX+TnaRleLmE~gTfxeoBZB@8WF4H7z@6S zDAWHIFnZ*elh`g+n;N!yk^eP?|5yqCu`&3+3a{Ar+T_Ppco^Rv+fc;Lq7kyv#PXGg zR-klEDBrm$qe%mA;)(f#Xsa}!RsPAp8y?=%VABtK?h~mqbIFA;)1j!(BX&D&ZTryL z#@9z!1cGeaJSciK&xMB-}$b=Gf<07(S*;X=RO=!|!=t4=uhA zWxf+u=xT0nwCS3dJToxYX{29~SEt{qWn72|8z7wBrNpRC^;q)+ zdEGWEsY|iD9kRo_98!K{``?0^Bbqt6$7Mhh09fwCJ`T#~%&32|vQ^n+2GQ*I-yazkYRHDHAd{{tUudZWiyThgqHQ5Uv5Nlfz zSERmn@orrt{4(aC3h!Q<#m_v<_;gj4%s4##OvGlh6*1f>qS%4esND)YLHUhyh*q9i z6$#fx)amW;9YAyL4qpH_&_6(6IV$&^(~TnZjxF#@E(??xo+9#AX54wig@X@U*p-eZ zUi%#LHP!ydN%)V8!GBm_75sZz{5jC&r9RxsQY|R6vWPvM#z)hcM>lB;6r>#IO2l)_ zczQPd1UzTL+M~oa71n&|7?#-oqRMnntX!j6NFe>WJ8eLe_~wjTt2fc{8k&2yGZ*j z{5U7)DWH!+xOAezD8JukJr=iH;j_MbPXD~tLNZ(=6zHN{;2MVUj@Iw7Eo`}<&n2)_ z3?0DeG6b<|h8Z(SMS6;Li+mv zWWUPCLfRkavmPcR;0y8*4cc)e{HKcpIGt7HtFH zu}pZ4>JAS<`#lxdjv7HS_Sg=e++#3em6yKp({2%c^doN>eh+S9sqm(49k}=lhL>yw zr=Sri$gp}KH;?u+<`m2#UV=>tW9|pJFy&*J`gornQVK;q=St!S`Ie7J6B&OGE6aT!d?tji468k?`NUWxi#I z$6W+HVTzg-s0{*Ys=%{q#c@TwR#4j0z$s|CF|AC-NAOQ{7PW=OpilDBw}0H>aj!ZAZ^@=p$sKt+4DJBp_1Iqz56_m^E;i5%Uo%!z#%`)*a;7 z0yD-QW(12EM}4^h^lJYF68;4-_z&`>!nST0zwZolxXyO6N$z_>@Y;qpy9N0BOC_PF zI+W?KlP32WQ=PAz!Cd{)YGF9+yeQR~=8jP~zcAJ0VoZuWANgFjkbf;`^2qBRw8gbB zM%s(41?oP5nQ+kd&dF0}hM6#vt7AqCwhpu%^ef=;PfA>XdRN`=C*1#!yCMV`;nC>P+}KaY%31mrx!T1084 zzG^Tjnv#-3n%J>S?i03ie!_kSo+d%qc7WNz)GZu%P2oRL!hd26{yWHnI@yjCGR!p4 zs;N^hxzLoF_u7Hdt)32zFgl~m5 z#e7I;SaS;Mj~es3K`pP_R7cf0ic{I}zDDu)MHrtZV;3SllZ=tW5YO2+g;#@fRCDipd-gKd^$zjo zeuMcWQ{NRH3Qqle09Ir5^{A6fy>Iap^SMBw@P%IP`)}}fsXP<CXr1dk4ViBob53_Y{80C4 z<6b_FvEc3py8DyKxN;tLLz9g>PxtQbKAURf)yDJTs&35HPpWetcV(vAi(p!r(_aqG0o3f?7;r{@RsiDipT5e-o4#r#_@WrJLb~-N{poDeE5#;@x@FH zeM4n8W{LXgDP=72MJ#svKlI9s4R+bMI&k>s!=>F!O&!bl>~I$g#Y9i{NLjik!5xQi;0L1tLL`4MQ`cqOmoR2wxnZu zB(E@1__-?;-nZS3&w0Y#=3-ska>VBmN7sJN3%VgrNRI1<%-X6}Va7n}ZnA$>lr;Mp zo2H5Q=GpZ`!JRB3oVIwoZBfxUQaJ8w-N(V|n;5dXBc8lCNk->>4~%DnC(k8$XXI#+!cNsqtAKtAS~7~ z5s4=ATR-9i<9s9bzruKbHkh@B(JEkjLj6gvcO}tBk_CDpi0wBV{cBG;p;5J4aXoqXi+soiL%O!>qQ01DIc`SW zFZdFCMw_nk6SK;nRF%MMtL*8uMY02sFJXPABgmr6%NwV!q<-c|4zSu<-N4lnCRaeQs%WqiuHOB5Ff5pmX;R#rPfj@+wO2*ia?6a;+vydH#40Q^6 zL5copcw#`S5gHyAoIBcCvGOe6jAu^=pxGjRqYVCG2q$+P<}YB(p!QAis1N0hj%&;Q z_c{sx>tgVyzCOul2@5r_5P-#l#&~Buu(-F&!T%Sp;{V7)qUK+<}Y3nD|uK z>{D55Pg#axM#6yOd?J!h3e)IJ zV+ns}D(C9yk)$~T#TH{4(c!mgEOAE0I~XIv%bk!#8Sk~lH&acP!U!YEn69bzKUKni zY7G8*r(x!Yx#4iXu0@2&{T6l|b{AwbuDBdMJgLX!4I{)`l2TX|4_}Rz!U+68G7uj; z1&@8B2=Qqqr>2Y{jPEgo>?b8^L3EU=O{LEA_Ld48B%+L zLTl0YX960FL8c$T1QZqnQ;$?;@j>TE-pp7Q5%LiW9W}WiBWk0LXs{yP&#%IyA_0+N zWfnQs|KGQ2ND^N@!>38&JA<^|G3Z+ii7AL#C*~cWq89Uxt3!&s5&HY9kC3%%)7GH%3| z*@HFW4@te8p6kO~FaEDc!oMg6f9n5ZlIZt?`sPABoO+UIvuo+O#LYTg;vgN`DExK| zQY6_me}eCinwM;?O-kQ;b5N!z(M&%vjV2nBASiYuj~^?L$EXjHTkVsGT9}%6G)3{4 zL2)!?C`!7}F6XO1B)+MMciM*$yNJl3#7>>$djxTwEx)yW(xj~4Hb;@K$o&;$z)T_I zeF)=qPrVB_%DKTr4O?ZsHO;2+k0@p)Q8^>wa?zt-he##QYp3|{T1iF?5P6GX?bPpw zGVnKJnlnwT&-ERbJ%8+iTp0GneR%7IzfHp57K6VAE4)KtAJKi0@zsJyqB_6~mxf3% zxuRu7B&><#Vq~X!n!#>n&l+u_pU&CUuj0OzG7wU&=)!+uaUj4tbH3E$A4&I$zV$#hQGJ|pIyS=9)rJv+iX)DOS;sv zel>?=Q3;?7_|O)ps5O#2S0wD|wvZmJImqAMt+#bH{UfGr$~*}k3v>zm`g&WxfR9lB zKcDH2=oFI_69)?k@DibfmKOdWlO(e{ZQmVh4_a+uNMrk>O;hhs4;)BFeL4v}ok0O= zl@vwqTP5dRT)k3T_i> z(Y8yqNLKe3owDwIT{;{>$)WEt@R)q}>2$(AguAkcJU7ws-$9N&6)&EbI z@Sh%oKY=|qoh!*PXQLLMX~RYdEd2M=l{#}b%Ng{A{IKHqOx>vjZX_}2KebM@?{Xv{ zYUpolvZK)Rm>4Gvw%ljs9dBC`?IsZeIXEvGHu< z#Tx7J~uY)9S95-I4)5rO)<8?gz<%%4CwP~(A z$^KDrwd>0u^K>NqdKWXC@r`n=aYDALL5Nl3Hl!~i&2oFnd(z<*B>Iob*$hL zB%j|{dnhI*rIVR_KJ4tE+CSgp+o*2>a3xdwF8ZW*|35>*e?|=c)Fu{kRoL?}6O%l} z1DV{d7`uI>NcXv}!8V{NnGDP)ShtfmA@T=iU%N5NT2nS*#VsoT`HS`4zXvsk&O@t? zc(jelW1RzQZG)Q=TZRpX`n}Z%>+U-8%LPXAwsn&gG2Ltma0kb9UgSVnX*0>D2fC*TqE(TVV^~So*lO!piIPFv_`Q90W5!RKwl(Qt}9RHKT9$PW6eL}>x$S-G& zBDxAukGy5TIUQ^ZuEKUEu$9%ehdUuD90F`*F?!?-i@Iq$$luB5VvQHk<>48WYX6|` zz-sRwf(jAwPW68^<8_$&S?;z|+mFS~mXXX^K)9E3jh2>u}dS4h^Y z_@4PdHW2BAtX3uJ*UM@zhIe#O8(XOkJbpl4lS;O29YBU4vV4+gZK4fWjqT9gEZ_@V zbS^2`126@~sLaO7-RXj7lIJnbKg zKL44EcEpYQYwJqSPKOe{eO9^Xy(I8Q#DFE-T-!=s@yz_Ob9H9^YkohURKCBI$uGS@ z37KYJ-g=Gyvn2dy#o%wOVnPGDm#31waF|b zLE>YqTAif~cK@GpHlfb2Eo$}g_u(FHVjxl*32M%uS zSG!0>K8g=gi!Jq~`&8n6M=t(7D8Rp98E8Fd-48_jFnAU(?2WaJURa+fPVV$H*y5Vw zv(y+(7NlzVlyVJ`xCq3QfMhuwY-=1woMkHbph_k_MZ!maOL-kD2F9vvLf3sxM3{Vg z>iIyw*0(fok-w!}Q}|ym;eUM${;yNp30BieOGow>68e3&J@v-`MMts+4mI9?fT^hw zXlX*y5}3pH@K4S%pTcx}s6a+g%fUM#efMeP7;E>~5}V~5sjam)2s-^eAzduvlCUS^kwHgnU=e2*E@D|8qSZ|91g)`>I{6~Xxorm<$O1U(qyb?2}EW2t<;jb7|Zo!x$$CppT zmk)!MfZA_EURLCF<(P6!;eUgK{|zzt|L=~e?o^d2Yo^?rwUG&Z0YoSGNBq-KWn|2# zQZJ4w`+AKkyMJ<2vB1wnM|fe!_wqCig#_psgH(78U=o$0tzjg$w) zjxW~~{_xQPRUdL=4F1Q!6I>a8?F~eOkn||29uQ%fVyY`eNZURAU$!)E;&vTa=@|B$ zkFbC7ZkE-kYC6L&cO^IzFtc0fkk_bd;${x;Cc|&kvCXn)IM|UAf!Rqy6T4FnSYFq> zE4YATZx2v{yh9A6?r<5Db`Pk-6X#b8SvS(7_7~46SRI zcmi5}J!MToCvmSWRT+@(mr5IQL-5%RoA^?yZ$Dm9N1FN0euPOX*lJLJN27kuLz~jR&9X$~=bz%ff4iPkmHOuRg5Sv|n zOpX|uNrXnxbUS*YXaj8aHxXR8R5BerrYa ztP~sa%4-X*xYpJv`a7rmtpA$Af3Af8+!*|&xINwBo4T`|yKEBztAz$n1K$8HyYM&% zF1x^=$bGi7nwy}S+TX`q2N`UEpMzJATD=>71C*zX=pRTZ8Do7`0BiY$4Y1aSB@jQX z-0gus5cpng*xIaCACDhR{dv%PFT%zz33dTeU(ye6WdhF$hl7dOI~4dvcoTJq-Zuw* z_#s$nZM2;Y(!OMQnZlW5b+33UNXPS@u{`oA?OQJEux^jhVa56DTSZ+}8f{P-)2Obh zoM_UO{z$gs#Dk`53jcW${_|q+XIMRNwUy6c*!c2JXy}$>6-9&9cs=C&s@Y~9cwx>Y z5164(OZ*(PKBaQ}QA^l~h!>S6NZPzg|9;dK8FaI|!~47Pf#o37C0ciqu#P-XJ?5hm zs-%zN&=chG6Y?mYc&nHft#`BroDF7T?@QEx&x4E9NylBQNS4OWk!g8#ut}m`scwUQ zh}%89$8!hg#;QKYYocC6Xl;!T?8Vg`B*|Jm$t!vjrE`mU9f_ufr3{-wXfz_mDz^=Q z=efsumj`RbeR%6N{=*L+9slRY;QzRbKUYPjCW;JG@M5q=O+IpY9vA(w zQC=;!&0V&yq4lHupVkl2dmH-NMCfpk5tgXd{^fZ+?0vh8zY3`-yDPgF5BB^aaZ=Kv_EA;i-5gXjGL6t z4ui)|1fLkMP?AB332JhDb!#=Z9CFnJ)EttnI%Qgo$hxNpE3F_0SCTPp&=IUQjux_c zJt=15p}{-J&#!6Nx=5`$?uG|B_bNL2bE^;OWfW~Lli;b)i*1i@wWq4k^Q4(4G>w^c z(t1ptcO2S=&IIdn-k>mf49N|fOnkFKdEA~VlX|ECU+P*lnkQLrUg|k$EtmxhG~V5a zS*BEA!F(= z-Z#VAZX{2*9cmJAgFm3_cjVMBgOe~)Gd|-=>Q`$4+NkPO>`Lq1(7ZC}8ShlxnIJ=~ zY$P0sBzVeck3hA%A$OEUfY=_PUuObZXWXS8;Ty3>h=lEtvzOZKcWAe}Z2v&L{pJc@ zfWe%Ct|qCRYIuw64iAjZWNBpKNcbHnFiO59*P$F}pJtg+FryE{-@ElRra3cO#~lJ+(Dp0?r%8IWqts68>$p?-}?{xQwa}T2nNrDY>YHCQ-I8)hAW7 zfB#;rG2fz|oC{t(hV}3{*A)H>B>We|;D4FVYXT-e&F9hhooSE)99f!79)X=#;>kqr zyQS4wS=A6TuZ0c&P^_&r6OJF!y3#>HBVl=Wt~tapbp~0AH4YkjPTS9ls<~t!`2G!>#t}E7acccftg44!Z&+>@a(sF@thw^s{Fj)=kDP2=_06f2u|9g-tp&Y*3E$15C9C74*=1wo?cp5nlJp(Dm96%c#$r*ol zctr?Qa@Y z3fRnlG?CEZuKCv%{);61 z7scRzE^;oijnMy>|LVvlGF<#S7rFP+wFdG4xj{U79RD|od-KWkDYBgRnv`65E3GU2 zQCIX;@bT*ZTPu^dT;TW_K4ubuwa0RPhS$}rj{F%s;6vK&DTuzTr#HTHdk9%;F0-ZE~#?fIfLHu<>Xhv}PdX`%NlQmH=TgejM5>#c!e z#4Oo(%7i*8+iwSN;%#H#+iFXz3~x*cz8&n#6`&XYzgWV5aSZR-;&fMR#&wqYKlaXm_^NUx?Po25Cx0sHau-kt}Y|nyzg=EWG81Mi)d)1sA+`rZD z3a;*sMA9&>`9M@YOxN}lX3Rn_A%0ie{lR#wLXyDaXL`=IhhL5SJct=6gbaOm>xKUk z3I8QA_>+&OiMlvNK}YRW%#YS|5v?@OA50z;U>90LvXz0Y9<0;ASq9Fg&Z1{ErX*W>Kx+b*Fh0pf zIZZ=VA?6O*0yB0MWCKrtdtfH5;-3KO@mLQydg>5-Q)H3P7f@XhGe(mmev_c(29gx3 z9&t!M$Jp~Z-vFr}@lPxVU*Or3GQuTE9i+8_5IBg34h$p8nri0|689|kKKITq5M#Q* zBgdTgZtVT$+LHe+mGEC0i$B{S{48BjGnarfJFyi0J`~=iTqLi7=MdpZ=Jj(XQD+W3 zyN_z`GG18rS24c0r+oyz!WUqz5VHRq*jO-TAwYX#c<9eF32weUF9J@C<4c?-A<4?| z4Z^~7U~3-g&%?ZNEH8)8z@+jDcy40~D|q?Cklu=jf4+dmjX|toNPy_Lu%#7w!x~L) zep}3+3B-fD)EeEw5&aEL-UIue(93P;!*(;?26!vRSDL5$a|O3YQ)NJ1oa(n^j>7!J z!02t6ex@FpXk(cj@GtJy6S=SNw*H^c|6eBIzbpoSW)gfN?`Ys@Opgknliretc9jRT z=vvOlkl@J7j|UDJO+qB^2#MqkwAR@U2EIc*aq}VIyCXOnt1=v)P-QM>#x)0No0Sj* z4&oZl2`WEQ4md7@pGVD!H#ug?BFGA|sy<(!M7y5ah7~{91&;6=(YE7>-kM_51+vR! zb<_i$Y7g}wT`1_&jKU<|AUp{DR2{EurSGPPJw5z%Nb9#_#PwTNlsLd2L$Y4cuxU^t*7`m=ruz7}X5=JTozvN4B)l49 z$_Igltp_2y*~{;BDWYVWlTQR?t=aHuH#dl~D%WsnpF{f}QEi|E7f_n!YRm+)U6gFltUyduhCKK%(<%rH?FgIF%24jo-< z?^$=JYeYSMqbg$7-0x{jBk|7GymUbU#*AcPv?k0mEavrkthqqu&zboL!O<(Cl0Uj0 zf2FR*Cs(XFS+M4GdA*VP^P^)%@7{^7M_;~=-o^jKU56a>K72d*KD@DmWGPQxQ~0|j z{M|A5Pcb5X)-2`B^Wnq}mUr*l+iv3It8M7atllh%Q&qzJ$&rY^80tk$56h4 zBNBc;LiR9^kx@zh1Vn>cB>YadtO%Cbvn;UM`2kU(2uI(jj2?g3{semFkKZ`tC>TJ{ zn-3rhOfn~degf4${7>FX#{hUOLqB!M!MrR(M0)0Reg=7KumW}C&|_bwM#h}J=}V%G zy>?CEUn1dO5`+H+88kd&%4(eI%Hy|{R~|oe)$u<0mDjI+{%6cp*RQ_+s`o=cd&T#> z9fRHTzrPZ@aaVmyzpI{YCzo-bp+QW!nBRFC&-P{P>2K>b{?qmh>`P?qRav_1irX?>%PZEd-hk7U`0Qns*`wGEp0Y|jR+&ZI zlNN8NC|zH%xWrZFDP6tTRZeqoEndCW?ZVOe65QJJ`}<4k;<;tZ zT@|H^0o-cT6!FZM$~($SD@F@o&mBeci>{x<7FAXP^GZ+IZEWRQwxYC>z16e6G^1kl zylF-3?Sf}@DZ73{SsAYXM^7LR&+65sx4Blc<(@J&qvYQ|WxxKX-_sXy@A*x=@V`yM z|F#(X|2Z-!vEJp}lQk(#BHHbPi1udCVC**{{Q&d>XdjNxf#4)g`!gIb0c}87x%-ix zz_~k+4#o8}5F?W-;|3N@TX20|e%__r328_}KA^`zb?L|-=|8PZ^X3$zF3nx=(-8Om ziI?uLTpRPsKDXNoe?h`uh{69qZb(v@+2{Sw${6?eu0;O^$9Z<=|Li67f&cMa=1aAu z&w(EEgL>ibk?{A#;Qt?Vyb|&#uij;R`DOQvAlh$1Ge#1vI+JK$MS44q?*Kgt+61~2 zbT{aMY@$7kbPUO;pnoKD&DxUEDO2W^madvtTA9V(br(2}OQ)unm0W$wzF~b9+2~nc zxdB4}*oD<>MahbaNt5PHbIb#qQd+#GeD$PB7054>vIBWzmsO5p#T#&HHge7)_DPFx z26J%v7xcZoUihz+@Lw5&f5qZy5_42kUOtU7N7swYQIW_T{pZZVYR~fZuJs=95EKHD zMW8$20b;fjU=A!R^YLHB@qZrhNDJ|8qYmuR2D`6Hn77NVVQ#&e(+>>mV` z;`&5fE5*5IaJ(J#73$TyV~O_Hpq~74k(Udk98I+AaPKD2cF;c1tDv6y`eND(|5XzH zt77m!f--19S$>;?F&pLAQx5Goe+SO3LAm`2X=hAXHDmt)ocj{#!${A^Tsw{Z-8lC- z(g4!-7;Hbqx&1h2#<^ysX`r6>wcy&T^c=2ziL@x@TF*Tva8D`DuNedE^U;6c_+9Kr z@ZD2@|G;rXy9m!`O#q*P?|ueUhwFDD{SNn>2epGH;<;Pbdqj4$C-1(P_QD_j@9F$+ zbqxL(i&-+7*jyzn82AcI@L2cS4P}-6;)xy80M=81ZXYcB8rSO8qjA!)cKsSxB|B|x zS?T2?hYNjf362S(woBVmyh{_Qt{J)4L>zmcBx;>)?|m_a{LFHU0ig4sEH}{}N2)}6 z5R_1Ixn684MccoPXiu*IpNaH&q&I>3fhus#1G)z^SRmRmR~hk?tsrYRt{`q#Ss7-L z?)9aZGqM$xC6gwVl&;%Q%3?}-8-8S^;3{L+xT<14sn6~9!XI%EDE@0=@W+(<=cSoh zWUi~Ce0k~m^>?syJY){0deISp*w)f&V4r3uN+wSAICDRvRHw9N1qYK1=3&hSW|Qn; zW`kxEJxj79&?FuaArGr?hA1^DOqTLtbUqaiWZ)m&I&wi!z^g-V$iUm&}Dc!*~A|MrXe9OyAWs2Bca68>c|_(u_u z{VyS+fj4iNjF33Q<7Kd;P!5MYPdS_+jAFPR`|k1oki@y#aj?=K2ubtg2ukn_yiV(doFBuP!BICTb{^S3of3TE7P3 z0PLXMm)wCa%>}Vg3G&4A=5 zTyDWrR(f^e-ngNXUAux^Q@UpD`a4iiV52vbxv8vg5=+a?RRJbi6#bbpDopGOaU__; zuAm|vdS(>68o2@!%IE{_`0VU#c23a^#da2Z@q|_YiXSUwM9#iSw7)n=v@1a-P$KB! zYec&PG#-=!_!pub2Py_-eE`1uL+SiLKX^0H zcF^4c@Y*0+wsUaLb-2d_N(Ry6tLYy&_YUZHpqtAuIG2E4HfL|vt3nlAhRs3oQJ`Sws*>+hyyz*EvLsBxXFd89PI{T`U<ch02mMa-Q_q{ETkkZW1C z%w1LGTJG7Hn>zvftI_(GQK|7V@Na9U)0blt=yRVD?Ql@r7ZSB%|CgtUb|%uhK;K}W z=IzJ5^!_XI9*g%>c>Y=TsOU{){j|VTE2EnS?TQ% z5cDM2b&sLTHDgx0v68f=bhMig>WL*4MAP)E(w{nqTf}<{kuC($hWsd~5%dx02hc$L zP78?oJNjq&*aOJ@xc) z?n3dzDNp@4t$V<}vAZArqthf zWzkYg&cspXoFzChJ44uzQ8qf}KN*v8g?uXd8GR<{g+KJ;X<=8!;Ey7iBo>MEpAfcZ z%cNV+!R2&|_R39hX^WmO5;x{2Ht7bNxM7yiYopiMK2!St-~W(a_``1s#eYK#{=L4k zxNL=|%u{&>xxsbAzwgE&SfM?8N#$A>dU4y;!$7ax|JP6a+kqzfg}2d9%(<^H{XZ-M^ZoEzsAFZhqKUQ@ol)J=;}+?4oFov7X| z9g_d7zkV;CRJTsJ<8YCEXqmFH@fEM*eEZa|M7Di_AOFNo{Th^m^~+tBCy>^p|KatIk>-y$zbet*gA>`? zbpNgS8|~!18*W?k_I^8=vYr28!D+komyK0vFASbG=iARd{zC7Zw&VD0)n7x^(=N<9 z{U=#YXIpVfFQ-bj5Ac9W&tn9eO{cY5^(Aakz3;6in>l9F~wf z@SS&o?g5oI`ZFS2j>=q0LMYYPVy&eU=mQMxNYLdQGG-&lcd zF=R$~ZaB#pu96Ag{-E8o{&z{ROzHB!^~17XD>!00e9IHJEKMEa_g-80S4sF+#o(V9 zu;0O$<4!Pz_H}ZBmJc!M`At7)x0Jsj9jA#$>{};-_B&+jsE?kr&p9>Q9YvkS5m=0G{2GtD5hmKlk|5ihvbSSBFn0jNGVRw|?YN%TD+m%3bw@nss z*!s5w(;YK^=kijNci6oga2i` z8TPv%Q|Mmz13YLWMj}dVa7Twp0gZq7eSuv7F_Ms?Lq-zFpp;cbyKSl_IlOX3!cRxq z-q>ktKS3kJ9~*ie`1Njc_B)6jS=$PTC=4|lo-;Y!`E>hIn*rq`sLa9y${lU`abFRZE{pMX3V^%@V`^S|IQfv`%}N}p-hx1hcX?G z(Ca3oEbxtlXGC6^@$?MBM#9S@WR$@VD?p+dDPxP3Q^>ZJX;vNW-ABdwlMMaL!h3xPA31!Tryz(T%jOXls50ac? zev%#V|8NN}sczippmk#_>I5P>ryKlfkQ2$cT8E6rtjp2)%|w$|cBfHO>^6++R7!jB-a@0aLtX26^M|dx&;1C2r5X)AEhRw zlv<;77Ad7rl-iI|B5@LFkW$h{=~BjhaHkjk)e`>IG5G6H4wTp^Wg?|yiBbVlO4caN zL`rE+lolYR#79X$N~t_bRY)mSM`;UEN;OfcMM`OJl%7UP=|GfTK}zXRl-@&1$seUA zq?B5tbQUS4P?Xw`Qi7t1NE)P+v{CAVuwVK~z3|^8;lC*sf0Tm`#6~F-DJ4sk3XoE= zMrkHeN^_#L04XItN&-?!VrGI@ZT)qzd06vl!Fe$Mky01B}= (1000*EEPROM.read(1)+908)){; //Here the 908 ms correspond to the time covered by the circular buffer + servo1.write(EEPROM.read(3)); //Move servo1 to the final position EEPROM.read(3); + if (t1 >= (1000*EEPROM.read(1) + 500*EEPROM.read(6) + 908 + 100)){ //The additional 100 ms is to prevent both servos from moving simultaneously. + servo2.write(EEPROM.read(5)); + timer = false; + } + } + + else if (automatic == true){ + if ((filteredAltitudeDelta - altold) < -0.01){ + n++; + if (n == 4 && deploy == false){ + deploy = true; + tconfig = t1; + } + } + + else if ((filteredAltitudeDelta - altold) >= 0 && deploy == false){ + n = 0; + } + + if (deploy == true && (t1-tconfig) >= 500*EEPROM.read(0)){ + servo1.write(EEPROM.read(3)); + Serial.println(EEPROM.read(6)); + } + + if (deploy == true && (t1-tconfig) >= (500*(EEPROM.read(0)+EEPROM.read(6)))){ + servo2.write(EEPROM.read(5)); + deploy = false; + } + altold = filteredAltitudeDelta; + } +} diff --git a/Firmware/real_coded_rotary_switch/Rev 1.2/rotSwitch.ino b/Firmware/real_coded_rotary_switch/Rev 1.2/rotSwitch.ino new file mode 100644 index 0000000..afeea82 --- /dev/null +++ b/Firmware/real_coded_rotary_switch/Rev 1.2/rotSwitch.ino @@ -0,0 +1,156 @@ +// This program reads the rotary switch. + +void readRotSwitch(){ + for (int k = 0; k < 4; k++){ + if (digitalRead(switchPins[k]) == LOW) { + bitSet(rotValue, k); //sets bit k to 0 + } + else { + bitClear(rotValue, k); //sets bit k to 1 + } + } +} + +void switchStartup(){ + readRotSwitch(); + if (rotValue == 10){ //A Automatic mode + servo1.attach(28); + servo2.attach(27); + servo1.write(EEPROM.read(2)); //EEPROM.read(2) + delay(100); //It is important to have a delay to reduce the current spike drawn by the motors + servo2.write(EEPROM.read(4)); //EEPROM.read(4) + + automatic = true; + delay(300); + blinkLED(EEPROM.read(0)); + delay(500); + blinkLED(EEPROM.read(6)); + return; + } + + else if (rotValue == 11){ //B Timer mode + servo1.attach(28); + servo2.attach(27); + servo1.write(EEPROM.read(2)); //EEPROM.read(2) + delay(100); //It is important to have a delay to reduce the current spike drawn by the motors + servo2.write(EEPROM.read(4)); //EEPROM.read(4) + + timer = true; + delay(300); + blinkLED(EEPROM.read(1)); + delay(500); + blinkLED(EEPROM.read(6)); + return; + } + + else if (rotValue == 12){ //C, Configure the time for parachute deployment on automatic mode + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(0, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + + else if (rotValue == 13){ //D, Configure the time for parachute deployment on timer mode. + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(1, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + + + else if (rotValue == 14){ //E, Adjust servo's 1 initial possition + servo1.attach(28); + servo2.attach(27); + while(1){ + readRotSwitch(); + servo1.write(180*rotValue/15); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(2, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 15){ //F, Adjust servo's 1 final possition + servo1.attach(28); + servo2.attach(27); + while(1){ + readRotSwitch(); + servo1.write(180*rotValue/15); //Work on the problem with the starting possition. + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(3, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 0){ //0, Adjust the servo's 2 initial possition + servo1.attach(28); + servo2.attach(27); + while(1){ + readRotSwitch(); + servo2.write(180*rotValue/15); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(4, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 1){ //1, Adjust the servo's 2 final possition + servo1.attach(28); + servo2.attach(27); + while(1){ + readRotSwitch(); + servo2.write(180*rotValue/15); //Work on the problem with the starting possition. + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(5, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 2){ //2, Adjust the deploy time for servo 2 after servo 1 + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(6, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + else { + while (true){ + sleep_ms(10000); + } + } +} + +void blinkLED(int n){ //Blinks the blue LED every 200 ms + for (int i=0; i