From 988426dc96e8e773522d39ae9f9e0c25f3c38edd Mon Sep 17 00:00:00 2001 From: Anna Bergamaschi Date: Mon, 5 Sep 2016 10:49:47 +0200 Subject: [PATCH] Added adc command for chiptestboard --- .../jctbDetectorServer/firmware_funcs.c | 124 ++++++++++++++++-- .../jctbDetectorServer/firmware_funcs.h | 1 + .../jungfrauDetectorServerTest | Bin 134952 -> 135500 bytes .../jctbDetectorServer/registers_m.h | 2 +- .../jctbDetectorServer/server_funcs.c | 14 +- .../slsDetector/slsDetector.cpp | 102 +++++++------- .../slsDetector/slsDetectorCommand.cpp | 28 +++- 7 files changed, 194 insertions(+), 77 deletions(-) diff --git a/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c index 0b623c757..1a59ba186 100755 --- a/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c @@ -1212,6 +1212,7 @@ int64_t set64BitReg(int64_t value, int aLSB, int aMSB){ v64=value>> 32; vMSB=v64&(0xffffffff); bus_w(aMSB,vMSB); + printf("Wreg64(%x,%x) %08x %08x %016llx\n", aLSB>>11, aMSB>>11, vLSB, vMSB, value); } return get64BitReg(aLSB, aMSB); @@ -1295,6 +1296,7 @@ int64_t getDelay(){ } int64_t setTrains(int64_t value){ + printf("Set cycles %lld\n",value); return set64BitReg(value, SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); } @@ -2075,12 +2077,21 @@ u_int16_t* fifo_read_event(int ns) /* dma_memcpy(now_ptr,values ,dataBytes); */ /* #else */ - a = bus_r(LOOK_AT_ME_REG); + a = bus_r(LOOK_AT_ME_REG); //#ifdef VERBOSE - printf("%08x\n",a); + // printf("%d %08x\n",ns,a); bus_w16(DUMMY_REG,1<<8); // read strobe to all fifos - bus_w16(DUMMY_REG,0); - // i=0;// + + bus_w16(DUMMY_REG,0); + + /* for (i=0; i<32; i++) { */ + /* bus_w16(DUMMY_REG,i); */ + /* printf("%04x ",bus_r16(FIFO_STATUS_REG)); */ + /* // a = bus_r(LOOK_AT_ME_REG); */ + /* // printf("%d %08x\n",i,a); */ + /* } */ + /* printf("\n"); */ + // i=0;// /* for (i=0; i<32; i++) { */ /* /\* while (((adcDisableMask&(3<<((i)*2)))>>((i)*2))==3) { *\/ */ @@ -2110,13 +2121,13 @@ u_int16_t* fifo_read_event(int ns) *((u_int16_t*)now_ptr)=bus_r16(FIFO_DATA_REG);//*values;//bus_r(FIFO_DATA_REG); - if (i!=0 || ns!=0) { + if (i!=0 || ns!=0) { a=0; while (*((u_int16_t*)now_ptr)==*((u_int16_t*)(now_ptr)-1) && a++<10) { - // printf("******************** %d: fifo %d: new %08x old %08x\n ",ns, i, *((u_int32_t*)now_ptr),*((u_int32_t*)(now_ptr)-1)); - *((u_int16_t*)now_ptr)=bus_r16(FIFO_DATA_REG);//*values; - // printf("%d-",i); + // printf("******************** %d: fifo %d: new %08x old %08x\n ",ns, i, *((u_int32_t*)now_ptr),*((u_int32_t*)(now_ptr)-1)); + *((u_int16_t*)now_ptr)=bus_r16(FIFO_DATA_REG);//*values; + // printf("%d-",i); } } @@ -2130,9 +2141,9 @@ u_int16_t* fifo_read_event(int ns) bus_w16(DUMMY_REG,i+1); - a = bus_r(LOOK_AT_ME_REG); + // a = bus_r(LOOK_AT_ME_REG); + // printf("%d %08x\n",i,a); //#ifdef VERBOSE - printf("%d %08x\n",i,a); // } // *(((u_int16_t*)(now_ptr))+i)=bus_r16(FIFO_DATA_REG); } @@ -2449,6 +2460,95 @@ int writeADC(int addr, int val) { return OK; } +int prepareSlowADC() { + + + + u_int16_t vv; + u_int16_t codata; + + u_int32_t valw; + int i, j; + + int cnv_bit=16, sdi_bit=17, sck_bit=18; + + for (j=0; j<2; j++) { + + + valw=(1<=0) { if (bus_r(POWER_ON_REG)&(1<<(16+pwrindex))){ - retval1=vmax-(retval*1900)/4095; - vmax=2700-(getDacRegister(19)*1000)/4095-200; + vmax=2700-(getDacRegister(19)*1000)/4095-200; + retval1=vmax-(retval*(vmax-vmin))/4095; if (retval1>vmax) retval1=vmax; if (retval19>*lJI*tI0HLPZx}GBmZt zG10PGOpS~T-->muz$m$9-POD|Z&~f}7*SHKW?t-?{62Heo;_y~z1{EckAX8Y&ph+Y zGtWHp%rh@r`HJr3PF=#Bu@iF{h6z9z&9F<2412tqVZSml49AGyOvpUsvD5$d;8W#~ zzr`BLM#oI9TGD~9TJmf4DE@tXy}#tH{bt_8GBlho+Wnu76Zpd8oe>P%nWhd5qfg)_ z@@wk#2xh*toZ`q+l?FOW7s4r_uG;F9(oaNnDKn&l0XEK z$fjs?TSx($*q>R-^2}03NO^_P-^sZhI#XbNjh)qX=FGf)DMN$MbqhJl_Od1bG+}8v zUvpf8zz9(})ji8&DKMI7CRHrhm{`K%GUj z=4E2ngr!L2PB+EOV}$)LGJ4vg3n+mgtoBy6-pE+&&N7FY=aw-v2=5TmtckIjm$AHg znUSyPsLglC8ZM@x3usY4YykZgBc zaxlVp#^$I^XM~M$wa!d_%ZVU_S_emJk$3MvkZCaU)pa1%xg@%7Wry6~EgV z;Rd-spiigI22(6NSsBoiJwsj!=so_U!5lDd0pynAZeYmq&9sBvPPZeC@5ZqF$aG!c zhY@D}5FikQr#AMDRw+ zGmClGk$1f~4S6M-jlR4LF)wmC!$&S3kGw^jLwtD*@@PE|4qo-Kd9|5O0ThB@*(_rY zE;C#CTqGk1_ib*mGx|9_8DT+^k1TbZ<6FcX*&gg9S?7&{i7t^)_6?#tv))&=p_lXbymnS2928|t{S2D2_JlW#_> zxsGyV4NxEm#~~ks$1y_33|dWowi$nCXUpx7(7HJpkIqt(#Sy83lXaATnY;@)U3Dem z_ZfVjsiXYK?8%=+|K!hzbl0Utq8u zR8p8;4A1m(sZzKI==}&zm69FB@Yzw>s+28#pu75TjUkLxL8XgfcwG$F*j>eehFFGg zh~*j$sRBY2004>0Ml7j4I8JG&|DzsnV+N#w2$)*Vtc`mOB(g z59JyMsL~dsKrg0njRP4~|6dsnF&@q}#;X9EQXyQaTw|OnE%jcA*S%ch9jde)NZWz5 zL8`Rs5g=v+*LbHYt<((r%FHz;`qHds-jELIOy?R+zC=u#*g9^4wwH72XlT9DR)w7XSlM<+l&tP{A#A*#e(6QNTka*fZc(()%U zeEuY^(WXj^oy_pDlexyBshplIA%X);Y^go&H7O#HkWdkoS?41f;#3`*xS#Cce*!rkOwUHaVJZvcdK z1%!14BMjIimrdi%z-V5v6eag=ZCkQ48PxSoD?7mB^f*fN-8iLGHcDl$_!6a-Zl%^^ z;Ej|Efj1a^Hl{X7S;A1#>kOHE{pUdlVvLLDx$EUKscklE2Q@<&{XnF}wNSfm0WdCD zk#3p^oY`9yEIO-xFp$bce@AZ5t?_&;h^Vn=nkWmG_4ha>EHtH`#Kp&v*p>@5KvJ{f7>cwIYq#iorT$3c zT}XGWIFIyiUQnifH>^&j867x-#pTR0Re1aDF7kD^p1u3`*O@#HUAD*B)!4Q-3?!6` z9wFD!j5?ZE{D?ZXypUy@4J@>w+Wyou_3taamF4x;(=b@OY$S`g{#F@90x}Y;=aJ#r zU^c2)u8;KNcz4d@NYRJD>Xb|RbDj}g8*~<%GYS(JBV0(fqoHmXD{fd!9tW!nFwpW{ zuzIjj7IYLPf;(j`l3oLN8!-B`iyx`tG`tv}4o;3&- zN%NL0(@Jmo2m47K)wNx5{bGv_Y_D}xJF6jn9Szl}U2D)8Vdy2hojRk=;&yfv|57-0 zhiN$%N}$`i`t@5+5*!k0?FOQ6)o-jX&!w94gD|-15=dccF`83s)u1^m&>Xo(J+V@c zw%?rjXpY^*YtnNgc^Gk4AfYJJ^jb8K5&lN_(9ppHP^Q*PM}-$pZ_sh8PU=Sbg$?ozu6oc> zZ(WZ8^$h5kJujt#>V<#zy&WBegxJEO`feTUa`Mih5U77+`K2+jkQN?elE=!N*`x&; zft(7vXYN@mED^{ghSgxQ+SF9&c#=SYq#Clnh)Ax4L^$C`z)y@(}q4ROa;I0Y5k2`|1%zQ=(%)Jt7 zpXQY1Fv`G9Xb+baYD$_Yb^}?hlR;27vZrdo(CI@sTH&n)F?juNM!Q4NE~UC|5Z!9$ zPKQ#4D`9!A1Z$ji-vSovLg#GqN_a0#x4GiK?)mr^PMX8RG*1+WpP4=M-M){Y7I-KM z&=H~|Y>&RWixH4_;feWTvF8_vu(lpSR-38TdA|{>&%xEs>G*#jwbnTm|JNWr%a~=7 z#eQJ0cVsTL~Fo@f`eprn0QdIh2}`qpFhte9t|s=3;$$%;BMO3VFO|U+Z`MYtyTt-f2qKfNJM{2Q;#dPE2&lQuL-l)N0*DowwhSj%iPWFp4iJ z>40z?r99Px_iM1i?g67CyOfTB7E%56M;m4JH`|*Q3AVX0p}E6UGaA6fLE4oJ=oOtS z>%XI5+|iP~VBC6}GO(^2Z^yVNZM1joV49gfgC0Lqath5m_bl1btG{(JT3qXGaZUeP zvAa8a2U#Nm&j$I;8&s>S1?6QB&{j~0(c3CjqhyQo899%nMfCPrMf#PnLsl+D z<657Ga(}qRJ_p~A-?ni-l9wWS{xxzX+(s+u$jp3Jht+)w;wfT0{aIL0z(mD4{kE8# z&r=g68!PNQ(2=+DnB#NwqQ_y{&zgcvq3FlRXBi=t^ofifE=z(=f3teB-A42RpCwBp zW0Fci9)j@2+H42YrL!R$-og4nIH(@enOKu0OP7=FoPzPW1#k$$hil1ak>Q%Zj3Fm$cfSnaSoJBWX6&?&*7nhqWFDh)3s3LDd@k6SbZ!(j-@0K)HJTfX8Vt!o(2z+yhr18ofs3(&lHB zX=e@UTeIpIU|xGhww1InoM{)>C({9{LnoT~9Vop6rKvr>=oy&_bbX| zEYUii?bXjy+F^h^>_++W>^?(NQP6Ic;MRiJ+Ep)tAs=icKlVxPMLnFm?hR zw%(1_cb=*kAEYwY*ZT9ZaaPF#&6RQR={9VlaFQQdO8H=u3s#&P!Gj#h^DlWrdt$jS z)ha>m-Q)&@OouE`)OSuXzqHBYY=PT$(B0Ld^&SB2#9%Ukr(bSU6U3lt6}2P2gOyxD zH(T@p2A6}QU_PjT)hr*dnnIlxp%{x1#F^RILztTpOHm*L6(g(%T9!CMK z1QUZFSSr9$MKHSvCj05RGS?Bgja*qRzGbOXQX9ZQrLf5P~K|n!mVb6 z_g4~E|FGLmJteo1rGqO;)BuwqW17u*sm2DYhK^%Jl*q#aQn3`EZXsD+j_IW{LA_+# zDffjRH_FUqgbN#GR>6U>(Ic`Ae}%IfOGLer(h=LLa9j5hm#{W4S}ieI8>yAwj*M8v zJ(ZX?LXxu4bsHfWxRHvG%sMJI#*K6pM7s!o{klkzmd9Z5+CT({pvZzX2z-|$bvXK0 z>g8LB(j*au%#&M*%y1D(=GLtwW`GC<7plyr|6OF172A@YRE^!rioRS*TV8^x*oFp% z!_u>14k^(G8yJDSGB7eoJI$x_>Ie4MdIixlFv%+&@?6rfr_KbEFIya&!rl!sCm3PZ z2D!bA@X7|6kFZxZKqfGX&==9w=o9HN`(5j|m39Ps&vGTC?!NQHlfJz-tJaJg z6*Hx5jD}gO(Sd4bi{ubco8`avaEWGlH_peHyaYPT88jJQNT79zdeQQ%n&z8rTEC8J zL#=B?fD!AsL~1wb;KWnf)eQX2qDnNW*AM-?ri>f&mE3vjdw9g+T@^}G2F3X()vaN9 z-I`Dr{N+@C9pj0z7doBMcejfsmD~VG!uj zXzOx$UXgU%eGpA)cw_gRw*d}8SiSs`1J0&gdK|>#2(*-C>F^x{-)N60ko!1F?KzbUGb9xWGJvZM1ApEPCQZxl{D|x0w zrZ?bO?3iH5cB0sX+;kDkN~tvW;gKzZ&^gHBdWOq4F*7rlYd$C(jlU5`LitRrV7XUD$FVS9lI5b@I!o!y;V5W3TvEva#wfX3aSXLEn2r8eSKuLqK6a0 zZnuKky_!TN_Zlm+SDF7dt)_N_4YJV5w+X}uzb&OHE6_MaWc&IWPF5rveTuZLj5aR4 z&&WGg!cZ}F9mTB_-O6VmvuD=HZsl5W;k>r5-MQa65^Km)7&R}8u@rA?Vl2%Y?2QHX zqp^5z%qZsdwPJ+It=RyEY*=?54Cy7drn?vP8L?njtnqEm^Kfa%@RfkCgm9IKt>jeg zUa(YYv9xNJc+*7%Gjk~pQmwVJ;umFiwTj)7)4*$q-}Or8MGk?vz92zQudQn zJHK~OAId0x;`$B<8k46w*wn#9kGVa&gp3#(F00g;Lx)@Kz=R<5Sfcdrq4g|(Xg#$F zzFesckclC;>AaxyzE0dIRoj1V^il{`UbSlbFRhJ9Wm?h^M=fzI?GBf?lu-l+ zMjOa-t*6V;=T|DtCb=oTIbvzbXrH(=1G;(r5kOBsBV@0LxJ zheugo=<5Mbb@~W^o&m};D!PTI4?67hh?TewPUqdvX%G~f`j_tT z^3+D0#yw50-ZLj&MxL^PqOy{|k8hURfggR_sQahpM3^9K143Dnn1Bl<`BFAt7(^*Do!X`qHhAg&Q9 z?KGl48lm3^lXoK{ECsHV2ujj)7Jh2_a?XpRqH?7EzF@Xg{NEGkD3hCWHY85!;~Xs}qo zj*!cF2bkw_s!^2yRS60tJ-Hvn@g>H(J?U}mpR3b_`c=CPu-gC|DZ=7Qj9pu-xC1VB zp&jm<96O+GVfx?h;Cmk(Hzedb-R( zxZpN$*Rcqa?Yl-yDc!>IrCX$wWn#(&z+CXcED}?ik<#oNWUZknR>Y zjZM96&I)vOG$Coh5ovM^{)lwYG0F$`Bl#e$r?n!=3+>Gx=*vIQrevfqr%xaMGTo5l zlWeTI={b9O1jr*}=yLTzQ+lF|`fanw^z^%Yda4>7Q@xQca~~=uucSw|Bh!<_6;V8Y z<;HZJ)oMV2hK)FBf1`Y6nkff!?h8w49zEM-dnk=RiTsnuZ$b*qUF*#?^7%}riOp6p zoby6F>4VtHWX=*nWF&4cNWKrGp$(F=UWlnM%%nYVy5c=2HT$ zO)wue?S;1Owv1$siO-Yx5n7f4Dlb(h?SE?j!Tp~79ns)yv}H~-BeSmVmSbF>UlBSs{^=V|*6LIY%`XKlrOzKj^A|56B^lwfZ*KprB@~^^V5;$Nwg%`iJPM`scw0N@L}5px3q*D$ z-;VD=x{lY&)ELJrGp-%f*q_%xOqeB#`dt)wJ62yT`u`@c%V~Ity!7egh_xfkEP(dNxgnF-p!1NnA(jZa$DjToV#}f^ZHEIrsc|G^FZj!c7eKwNM!d zw(e>Lu zpHe14X;3Tn^zBv*8D9Dr;HV7yZ}k1+QIWoWKKeS|L?5gP@k~#Pmbeqch-I?Q$4wKc zHQ6qsrl(YPc9ZsY;ye4P|8Ftq4LLaZXh(=I^!$LfazFyId^$WnYqZZ~&jzvCHoB_( zm8{GP4JxqVHir$y*Q4Z>tZ=OxQMZj8$r^3c#+NwDoZWD2Za-@1BgS+%cOvcdZy!ja zvU|zGH6nXKSg}pR7u(c_r;aZm?`Io~Uk;SE3#4KFW=E;(RT~>uvlqwOQ89wBV1ZdY z$1*b>wjG=RxS4?*1Yy#iQg3%id9Y!s~B>?x_ z(z$c_3F;}aIq0ccx)rL3cAH~yn2W00*9KwKC=?#}Yc(`iXM;=BWd9)lni}ETY-aTI z#9OtKo_MRqQXm~|(;&zv-o9|S{f_V4@mG?Vn;>(`lH1>U4qn`I@Z#dIH&;Ek(D{au zvjkc+Xx>jxNv9xnFfLlqO$fqskCdY(xQ-ms)hVNedIkb5A%K7HDb7;V=z&8M7qXtT zIa79H_vy)^#!Ibq57gyYh4kf5m54rk8QIJM z-LpH5N0Sj;s-3&EM^biYf*B%12)&FJTLvc^7B9(vONJ>hh~YY=;z;09l#BUA_yJl=OT6%F$Cd8!6d}oh#?67E*Ohg6JiL0 zr(h&v9>frY9|}?sYe5V_IA1UrF$M%62wxS%Bc?|TK{!)Dw~-8pAqbxqL>jGT-iRoI z@Nq$RWX2(eAbe0jPq3H}Ll9~TsF6-_a7X& zQrAI@GYs;u88IV<`@Eg}xVB@7Hp4fD%39{h-v_H_yr|KPewa*rAU5iXEr`Ej3oc8k z=v2>|-Ovdw_KfWFjv6~7y#5f`^gw^Jd?#}U1aQY`Y&YnPdf**r zU2<&Bl@5$o9o_bb1q6a{5fEGjb*xtdq82VpoVF7oG5~=fdmM7okkJ8+|kiQ2tti7m2L`3xPs|H z@T`^DW}bTi7xZ4B*O+(BHu8*#YPMA$>sCpSITuhZo1MuAoC!kU2tc4^o?)maOF&Ts zp%ffQ#W#Wg2er5ykU0hQTMZ|X58;K+Nx{4rtwaT}%`25ZqY7f>&y0e&&>BoDHOFZ) z%)pF*%POl2`f883HYozQLVEI!$64GdxPRR$e0hT^ z4m-#|fVK9}BZFBtDSu>Gc)&4u@Q+EVA-K%Q+gR+vWRS*3V#5xhszWbqhS*YK9H_E< z7K!?6udZi-=j;my95iY5EHd`5{jKVx`Lp&r;xMPT3PG)Z!QeUyJ{&zh#ST@8f(Sz1 zEIBpX&U6VfP<|^ZwQ!wMNmEivM%BV(VYWh$*@gAO#2!gd-11OiV+2 z&ip|=Q`o*Be_hZo?3b|~pdJml(Oa+CX_uUNknCEJ6Q$;92x-B->*qIG>}lXLijI-%x?5FOmbb3QACu~5QU91fWS-R6v!OB-&RRePf{^IGZnNfc-J(48(= zO9t$D$T2c`VN{r$0SA$iQL->9QO@9S^Xi(ND(v1&h!Jm?SQx>;bb*MR1kRJx0u#c! zlamYkYpYOc)mGB7aI;K`tEaC0iPhPvYHi9a;GyVxq6zLC-n9(re{Ej&ja zUlbbUUmrY#I(3a?=b}GDX4_&i`Gapm=)*UL{y9Pi!w92229beCO}G)+PBDKzk)kL1 zC;fNkwxyc5o`{^|&yRNb25N4_efJ-Kg1X6z+fp~LohG$IU6^&-ALH5q{a>kk@{ibd zu=w*(?m{YSU1VA7K*wV0ld=#WeE7*kjXn;t9#>A?P19x&`_q}$3z)Z9+_5fh9oD!U z?${Inq?D)e1?4OPBb=S#cEV&0>vcq9tS!OUj^8bR1K-K#srcR1uDb7b4nq$ueQGmH#x(GHB6FF-K_VbOHb zwA5&&*DE^X{@bwqOZT_fQ}9GmN=1r(prOU?b{19eP#}d@@np}WT4zc{%On?^&>m+^ z#U-TYUoEOw^>Jml8v3{6D1OcM4hVFeP46VN*oRdV?%yx&OyI!9^r8w!1&-7)loWdW zx=^e)h116M+ICc&BeA&pbSEiaw z!%Q%kV3WW$fL8t}hwNJsnI1AR*mSv?Gik;16P+i*l*lRC?|}6;A7+N9n%4e^Wf2UH zp{-b*-GpYVh$c*!phmMGgAwX;$f4qxu+*DM%#})1`;{1m5@k80*Ya5QGct1d$grjy zHNmhcgl=Lv>jQq}?wf$E8O}TNOk)P*d#fy=%=YSWvH(==c zQAk;Okd!U&9m@C-xNaQI6p|$?qC>GA)}{+qQuwgXGS#e`4*0jHkZ)GRg~s|7pe&d` z3#4uHD^Qk+h4d7u%VzuN>}6R6GT-|HE2b%JtBn+^o$rU`@>pE3n?fqBF`>t9D)0k& zYenzbL;MPSfC4?HP?=1&ndqee@yUv7)mQ|-h(+*=4*TyQ_-d|^pDPkoW4~r!FY<2U zAKpQQG98!_p0VR-XJxBUOeT~}vfc-hr%W-JqD@BrQa2kUP-E#}qML7XP~(wosYZ?& z%`!M@zRhCE+HRSRrVjhV?YxBb4b>Qf+by4t@-OL*aXUc@ zi%<$dn2_sx;X`aZg~wtHxd_7bsf>jzDhVf5D@`%~z6{Qs9f)cA@@0BTb(E1>)PY8t zx^ix-@cm_SV`U_JmPD)?81b*mIukwF+ev&pLR=|r0-(E9I7w!$>Kn7`GSs?oPnN`1 zHo&f8>w+#z+`j zJE$?fmxl9tlc^)G=z^!UWgeDaX>?BOVumNiTVBEKhWutsF515ou<+Qt$OPig5)9W7 zQ;BVL92-a+tD`k7m&m!*{WTXZk$^QL*m|;mO?Q&FrWad9o>+4)yAko|p~aV4<`y;n z+`8n#&#l=|vx_e+5pf2*g!TPPbigjDF!Hk?j;+GOm*lUfN#HXBtrIU%i*ME?xwz$!vjRHW_KN@M_Z|HL5fjNL#wdv64s>1y&!oTVJ2UP|L=O8k&o#}4Rr<@ zmpNwSyCRm2E;Pc&hucqB%k>5(FYJJJfR#%`bloJq07lL}lbCScQwhOs6|Q*bayJsK zLlFKwC6o7{W)Ds+(0ZkBlC;*XPXS2EOLSyBJ%vO)8)<#e<90giEtoZyw|bn{z?BIi zS5iGjehj`G_EuqtXE>%OO$lq!nKCSesBe(xn%&5c6Cnq9j`(up@HSYh5aprV9WUk@ zJT*I4eO$7tXlHGDTDC#V@9Ob5>e9Da3bIRNnw@FnCy9ugkIXJkOOS`BrCX>$k_BM4t+Noa$?sVWqvE8}ogzwG>( z+K2Rn<~fu&C(0C)?SYRrpOJ0}1nj_I+X2r~7Tv+>Y6JlxV9$l0)vlTE$-V1)j&vbS zVwuFk1`#F|2oQu%yrirHDSz>ja(tH3>Z#;~_4l!B$;I^%IFs1vxqjA8KhqZy@8v|M z3qSu<)Ofvhu(4GT@HkPdH+AaIG_~lv>#g*L!vGE^HBcXdz(Ix^Z={%{(j$MSr_F81 zv+bY)VBk<8jwnP_|Ealkc5q-Zb-Dsh&k+F z$Z|tZoYbXLB3gynKhYSKylXhY@_K|UXE|kGVtboP>3d#b?%Y&bZU)xV3%$hiQ5>PtUngS>yHHkCxPX4PHCk!Aodj*N$e)FqlI736o7P9(4l~Jq-h6w2 zs^=55-rBx-zSnf`{RAje`KE#n;vr2Szh1=IY>bY(Smn%$Oe%F~$|Z2De+OLGJCyyx zt0c?T-TS1bWFmCM1S3^jf+XA{8xs={h3c$tPmU(VSt0Zp?kc5Uh^4R7`>&>@F z8q8EAt5Lif#pzKD`k?M5w9bg?5rp?AP#5YHqb!#c>N4{4kdGkj!(zh2LUx5Oru$&f zAM#xnMt=vUcQG~tRVX9E_f=*9i=}ZQzJHaS#uvSe+ZZoPOJB;O;t3ucbMlf2Z%v4_=DYo-PxHmpTcQO>fGmmzuMUc_Nh9xI@p7ww zb84#p;%kmXrd6&sMQp|Ww`j${A7Jdi0%QLb%JcM0+NQ)dZR#PmN#cNilY&%D3iu&! zHtnN5O?By*-ZFEkqZ=#ePV^#*;twN+SlLweV>Re0(~fe5kaMiJ~b3cJ6_$o~a` zQ-<$1z29lP)5#*V3Ok#W`Z_?dDB>O_i#xS#g`8=~3&!}W6b)fn&`HJ%@x2<5+#n{? zDK1Rq6C)+t!qUezOGDV>Fm$;Xu>m7cDnQ3SEihbFKz5fwAar*?GoA$MlgG*V7ZNO7 zb2k7ELn}Hr2jOcxzO>EsQJ)$3VpWxV6fxFU3B3#UCo6euYeMpgi?otJApGbet)wTu zYA@1C=$G@N(vpubeM;>hpKa|QdB)G*Ovz7I$mhyUNnczXhQt7lo_~1U$Xe>0j{$3| z@X5vTzVwI0^f_Ys2N%hra#K5a>8prdw!B{+Z&-a%2g@NC_@W@Owc?X6twPbo&D&zN zUi#vu;_l^H!~y z0d(eDRFmvijm$B^m4}nd+l?7FON7ynSwYlh67K&|77Mp?ogdQz#rz3Bl9?~|ANS{w z#r`PC5(f>R(+;vQa{R>sf0D4DewZQ3B|ZH{Uky}xQzGo^AIOlGMp)&2U^d$gZKA!3 zdo-|-=UmlcENxJZu2yKWUgp8&8pZTvaTKY%mOs>5Y;k63ryj~4tOQ%+g zGaT)3_4cu}drXPl4WyJ<)=R7%7vCgeqd@FdAF-W4tVkHBNj`311625CpEw1X>y^F>RaPIaFN;v?Z5!#6$Y#C$bx8NH=*fge9 z*!MH%j0Wj9ela=IoGCkXrfZX0g)*#=0`JwCM0G#w7t-tH%=jM7aN7PxU)ygLdZ1Tw zu&l_&TvP>Y2*Q{#J{7*{<)i_F)2NdtWhWz?Gpn6E!7%2ihj_GU63mxs^8L$qv5_R= zmBE8M{LJOkW!+IAL=bw83B=hiT16955Cqp~9FchyM`T`|g8m33%U{_)Al@w3)6cJ- znM0&{0!&>{&s1{Xt9P;=l4oA+qcyzRi8s7T_P!d!&L*F}dRMpK&Oh#0<-mgsxY2+u zY0}N!+xnmLb?NDR?yDMvCmhd;xynOrF{ACUEGVC`NfMw7G(?#B#UO0)tFu8^=x7W6 zt{*8A_RL5%1CHEHtywc)0(b=B`Y4>w!Z(8O&M3|ijWK*Itl8v9!^h^Il&-5JAJ~Uk zYXDmFDzz#;9#vy6$?`ZaIWk0-$SdcK;-S&nsnEQcaI=W1#G86}D%{s7iy+J&MW2fg z6kU@en_YM<(#)Sk-pN-_Ip`y<+eb;5UYaW7E8-YCz@X@JysEB$8IlJ zwKUxgW1T93du z#1Vuv(q&hVdy^4E5C#J$)}ZObfw3fuo#tOM2KY_^;|;eOUk@^S*9_eWH?8YyH#xRz zX;9#g)c*{{^&=U(JM}KJ9nUMR_+sPQVil~-GBlwLQ? zYx35f-kK3^a%OjbO}v|2-#vm2BKPdMQ*-%SvS3fD=JRjK-aW>UW8eChJ@PF%x2MODiM?RR5Z>P?VN;2~G z=!B=gmE4T$d~j<-xD9~YAi}LROAtlhk`1qqU>B25Uhf@u2-$~3j!!l_>_&b^E1PX` zS{!j*2XeE;BYYbwfS`hKmAS*N0~kR#HL_)HiE|>}Mk&$9L&-A$K@dI~iIZ*iv>X;s z=auI04p<;L8c^7oyj(fBj}A}>!j6&A{DvSIPL~rcjw*rtRC(v@x4)@%7KuFA`wbn$ z9LgXFZ;iyRA--cP${-wjM%pm#tjw1VGU`k?_nRw~TJlXHRK|{0{KSDqN?GfNXB}Do zMh|N$Fr`*V>$RtWIS=u?3aX^AXEw6Xu@e7-HS}ek5`B`P1b^=|NZ6+N=$qn)Hy2nI z1IuEOzDX+jMCztVrK7(Q{|^!F@+&+9;3fJ|-YWWi!!%@J%8O=EkJ58moQ603sPK4e(c63xkT#P(LA z=FmBEq3RLMigP6Utr40BrNpu4NbOsrwYw@9(8<1u|+9d~TGUD+_`U=*j40wV-Zj<=thD1(qnbm_{quEwu zUqSX2F9S0|9bvrSI>?FkptF(Fe%-cy44;kdtiH8iacBCQ* ze;-C)_G~f^e``twJ>ts-(ub3zTvB?d)cc&;!SKT)SZfmsHSMIkXqK~P{yJjU#n=qL zSPo(e8wkhqET1ofxYOqn>ieH-Q4E@A_Ta3spnF~tGI#}T@Q=^VTMciwc_gvenbQ!77NH&5mEz^l#2d5N!FWa^6qx4i8}KIyke*-MXc&m#1vk9`~_5`)Z^l_ zLw~+%v1TiTLd6b|8xv90M6s%EsLFzvMU0gprsS>nRV*pL|C#w{XaGa9YXYo`QN?1h z3dEu51J8HDFKV>R zb&Ee3CGCkQzqV1TYl@Hn*PJKS&Tul>shcThtLtdIsgAFGb)5Z^Rn*fej8++a5t^Vw z6PAjNI4iiF{lrFu8HZI|7Mt;zkYb`uq=(2G1i2j{a4O#1j>ZTX@*prtCo<%hN2w4~ z?+V>ls_zIPseg^+9vz{rmp->0P1WY^!Xceq$rDUfCm$^i%O*S6ryKHhEv44PLNH0KjcJFf8auV3+NElJ?GW#5 zld_W|DLZdBL&|!C?mNrV8jGh5rJn$hP1R~=l2HvQ>t0qzcS9t-K{3eitTm7x5Rz3= z2|VBwAzdDI^&#TQ>{xKfFm%I9p5SgKrWSc}TU{bClGdS+{=`V>R+=FfU`1lQ^JSSt zOf86UiNwh1v9r{47Q;!hYe4X$+k9?-56PT3vVsF z-yAEnsxI8@!iAe%^mfOdBuYtc4EVn7*Y+ zndTltZVPf-#9ZeodTOHw$}152{UG+9G7nc}zIG}c=#d1cnG-)p${UaDv{V>P*VU9jUzNt5; zNbcr`Sm%eBZG-rlOHJ}+#1xV*x^!)r@h{{n{d5{Jr8%FtD4UhiANpZF>WBHTi=mjU zO6k}9Fz@ig{6ZVd8~re^^}}p+72PBqPx`?>robmbxaNt-6+&hqTWMk*VoKf=m$41m zBmJOL{GbQ7A$uTl73qjUOkq}ptHw*VQd_Ve?jQxX6=Zj4gZw{#S0lfIn1cMLzcUuI zGX-1qX2(i%O9h*ojo;^x#*k9omnfq&{By*Vypw-d_braN)%#WVo?mtE{M`&I!;H(s z4p`eCN6<}T{hicg?F3mC(Nfp%#-_z?I@GuQ-GZ{zgDG3;N;B32-sChnSQ6TB z$trmbuv4zjhB}ljBR8h>3``L6WUh8}(8(OfR02}~-=5E*&Wzk_E{jh4T-lK-`V*e= zymO?=hM1%#smr0Er|7bxS9}}H^z=(wwmdD69e+!(da1^l&pn^fUt^=|5pOGzw&OE+ z2=nP(}5L=Fzw`&l4O2pq&8G1-tUN9 zeU+D?d%lAatLqZ3Xj8yX@+&>ouk=We$F+gK+YdewF;)8qpn#!Gf!=-v!u=}f26)`v z3G^o^z^}v~pQ;;l^;6u46DI^8SFA!aK)lk77JY}9FH`vDQ{!3hd!}^TyY0v%`cH>z4!KFjr+ZQrT|iD!m8Ke1&>ibe z%6g~Gs6yVdlO+DLMAdxr;7Ol+AbUDuinhx>sge)mW*}El+-Zm@gbepp8a!JUcoeP$ zB`@Km%uBDiY`x_&`F7F*bIfOPmi!45_14m2l}yw^^iYYPiAt+bOw?S(XZk7#oPO`$-F}LWZHc$g)gOU7ujEIkF)wg$_&m(lW#~9D5y) zyZU+Eg4eL7ANdJRC1Q#(?xwL6zt~{JBv%;Ci~oeG68aQrGT@U%c;hEj8kD%fuS76n zN?wqXX9c6)^)CK>DJgJiAQ>h^tU=M=uQ#@|!;k#fr8Gbs_yEv5A`7-WX=}1XM-m1~nsz%rT z*+$=wN%>Zdu7;e|`pFrsLMBp&bC7tI6D>gyo{pC{2dJB(5UGW`iRtsChl}x9y!(=P z3Sd)wsBy_oY-nYrWd|pPVsm`UZWiIP{|0ot>~fKJR_O8Vh6tIPl*7FY)lh+<3Wpm$ zPc%tx66NYcM|fh6VBg#Ws+G83 z{0X~OO&dn-9Rtc6_FO~x9~*F-6tVCGF)ARcWS(mv1^-CQHY49GW`EG&&jy)Mxq!$O zA@=zowu}B^8A8GFasz4nN0gV}l!Q_hnH@w2s{~A&w^WrU@m8Xa<}E;;qAxyWW^$~R39>_Ei!9p<%tcX{+~(7Qcp_`v#vnl!Z|LN zGtcP4#_r4p`U6z8&arrs5wBr#@>E3PzetdO0_=e=4D#pFFA{yf+eLp3>`;UYmafY; zn5omNRJRk;q`K0b$8q}u6x;SlM7-E0zWI1Hu+X28^f*@Po@!HiHK0}4Ita^-llZfE zgAo{ap+9jLAdWWSuf{qDy#Zq$#o$dinF=FB5asbd5y4>iEz$blmAjM`jy3 zjDTid$N7@iNz<39S|dJG4PTk{ksa)#XVmB_bw9{n@H(`=mw@dbQMY1An@TpdL9+IvlnQ!O zu~qoTM+7j{ls0js5>7x!TRc+yAmZx$H|ynLD!cdS zF#Q13c}ootz3JQPsbZ*XgM4Fsi=FPRwF>9z3HME|Hlb3(CsdM0zF9AS{{Bt>iIUTl zu9!>3A*`n7(ueKUpM(0{#AwN9-`cb`z}YHE zzB{q2deE6aBzAX-tgXIrM~;@Uq*T;l{ZE(i@|wTS>~_@omi2Vwh(fU0b(r$$3n?L( z@@p&c)Iud0!S{-k5z+bG5#fe#QL9QqMi%qQ+AARGN+sFH8@=;})E7IC$*ut@{vzUP zk~bftwg3GG!2Z{fRkakS|^P@lF z`;WB>gFlxpBL?3^Pkh=whX>*ey}sgd&JndrE=(16&0h5}x5|T`MU&VZ_Xd7|<_)~*;Jx|uc8sL^ls3`HW{*7Cbn;S1as+e#Ja8%R z4e7MlQ!y|m&?L(zm-5!;1ce*K?Z2LtG|#PA;nQ-;q!O|?2bfL)70mG?P4S6%2_3JEAd zTMz_Wv<}PPGIWL=c^2`OmAXR;RUJZkZh_cRcN66*q=5|lZcyCq;p=djY8$w|?G3Wx zJ7c7*7A$Dl8xeL8*VT~5p98?TH^`Cidd0}t3IVV#0=9y1bx;YwI%A^c_Tn_eUUK!j z^gB}b;)lNW{%%jHke|ddMoV21gkM{tUDEV7>3<&qeA$V3@=*D0!(C?lzMiaAY9nL_6x6(eV2-!vQd0H}|SGID$y$-aq^ zKf>l^T|EHm_b$R_t*6?CcSxl7!IH4BRSQdS8RchL zgv`knG`3|gnb0$G$lXhbvq9NF&+sz5f(9p#?mhqb*KOkec&`Lqq|_6w zuIKDUUp-OHv6I`@Q;B*iz4cgtR~^r56VGl_&yM$qt$Cu{iu29BisF8{xuT<}=%}}% zua3g@QN=%R6aVC>e}j7XRn+{GucD-%V{_ZKNZqH?fLPt9lMz?vk3A~Ok)eww?4v=D z6OiS4lkEL@xb+G?uZY9$vq*pOW6lwSj#EarJOJAg-v@qv;JmD8mi+3=luJ+sfdNB<9pmQa;M*FA0GcOkBZ zzXLUwI9D0v0r<326xg^b4IfuU5-ypw-p@ss60GWiM~?V&Ef1KBOSU+NaSCDWx{AjEGwLZ&F6&Q>T?gCOxZMs(ZQJ)F?FBj%FeV zJMkj2?2ihAn}a^}14V>f1mSb!dYof$W{Xbq4S4CnP5yl)T5e6$Z+S9TihoP^b6klh zSAGlk8S#|#+BQUz{#U2{NhZbpxjGHRa>YR6|7}Q6Gl$4#tatGs`AkB6%ps5cJHgB} z;7Do%bsKxX@GxuuM^Af9fC(d~v3SN4H=%lD@&#W8Ay9bfi+uTS<1LUh0SVoS@kg?? zJtV_hV$!{s%gp%>7-8wr$|VH`{U+C!Q$}ChY(MYdD=nK?ZSh+{eDPZ(>Gxyu=kLGg zc|Q;4{pYksPBz`J$)6wJ$d@5Zt%)79N2>z)qgC(bYuL&l?R7-1SG^n3g>BSoQ{M{Y zQ{Q^`MkpH<>@D(cOh48LtS8_qJ5io7fL(00)oFPI<0O7_T^EEWF>Ydy1tIjnVY36R zToT?!e>jFWGw|CA#vs#vczx@xR(CSphj)ax)G$|NF|~ zOpoo<>br+6H;sE}oGFd3&&09$%#wLQ_zPPwvxjL;X9n-iXLd5-O@_?!v2kpCJOv1} zP>?xHClf{emiNVw4vh5rmGPJk@Wx~1FUGNZlIt_m`G5wB*fNhI)gUI7hKm5{^_dhm zTnPhZ zvQ9>Zd88`a-YO*j@o3o?{k0xT-@>jvhVG6!{AyWUI$v3L`6!OR*5Q^(9bV4^%l^~F z$Xgjk=*BHf8nbXBXdi=@d-eFAFWz$L_D82K{S7m49l9Pll#b`CA90KWb(F#$rp%+6 zeE=*qQ(@p7W(J;qkO(V(;WBPgp*pFT9$I~-hye7UHRoZ*+gwaB7FRb<^4_U5bYtPAF3;#V`BGdx9o$#xbNNY!K_&mURdvPx}C3A z%r0XJI#{%p@8)uRVSV|6yV%WI=545xx61>P*|pkA)Ka;x+?LE5@C}8#uY6xJ+uz!> zFOYBAr!z53#&%Yhj9*A?0%X&^;L+nvr4}}@VbMgcl9ak@PMvG^$dnOlf+^e6xEmKrm`s$<4$zq<4#c7>}J|L8%}Mn zLJ*JY0y>?4;DiQ&DhcMiy}QBmQ%56Tj5G2f%s|s{Q-`2XZW15)P8Wpov#F4jgtu8f z;q7*hgtZA09@z%5ZhyHiU}JoA`IT} z_>ig;ut7f(BC+5^5JLIzG&Ui3rz@!aiKL zut~ts1tGpH-4v8XZ)Ya5-I5+DoASVXbh@`~wsbaXY}|)$=g_+8?P-op4hoG-&Y3Y= z7u3ne1Fmc>?i9y;cu0gptA*>}qd(WmucWgN4pG`CwQY>4Ap2*rELsK(xMl{?yQysH zC^j|e=CXy^wARC7t&FhjraIrfI*N_cge&@3t&Pi*$FdfTiF7`rUXpSuxf;YI$u*1V z@+^{3Pi5JHF1O&vtkd-!B0HJpFw*#-@Kk-xfoA^$P$h$c5XyfZ%RZnjK#77A?`Dr< zH?dtez!$xt9=|DAkBh4H<;@waF}x4}g(6B#B&}jG;)_p|$BbuFtVQA&2;z(IE7|ZX z;L!uxi&Ebh@c^4>6JgH9h|o)=ji}l3z zT2`v72H(+1AxZH`86Z`MpkFZO!8G!SwJgbW?`zi=PSJG;+x=iV?m5-8c7^C!z#&V$ zu8bp-Fz?YLx&=rnsK1Zs%9dcbe$f@xASJ(^zODJNs=7Tw9T^7t?#+b_UGTE-CKLc44_^4Y*H-#?fiKlXn^~ zPo2b?RJb%KOXo)_Mz_Kh3tX{YT(o|Qi$cG9U=rI^W6eLd&Ax5_+5Lw7dHcarylIwq z!05_+0W~F@5}_3B-1uFL%&oALeTCTTX||({tI0+Wf;hKL2p}mRvR& z-+}mk_p@B~L5+6mVTPZ2xIAe(o2Rwl+j6+vHXYNfH+|o9HeLR{I-NZrfA7mKoz|;ou=U!)dhvVdO!m6>``zOE*#)d>#wox20H%T}5L0#d-Ne7J z23A`QlB*AwPkfNwq&g=f6eCZx3rQf$O$+fB}$+SP(++=qX8<;E~&OxO~AZJSg3AxE7O7 z%i*3$t7fKr|9R^R-?g@8=m%o9(qXpJy)z1L_8q@bqVE_vaJvEL-#bUrl%05^U-wQB z!n*+$wihcmFm|>QDIYzDP31UX;oj*8t3DK8q3@L2=CDR>ca-h^PWk_9?f&Dty6Ob~ zpPSyYX&Pfhppiz5NSTlZ8d933l%^O`8X=`XDWxpKAcn}&l%{D0Bf}76DPks4j5T2p z5s|Wp$O1)3DKcrALPWrnMx+^vND(7NL`0+vi~EeNvyQvp-G9E1hwr}buXE1(=eg%| z?+xyp8C|LQU+J>w{bloCr%QLLbf-*rGW>g;ndB7{5P5tU$ zuRgk`v>nzSZ{L_{7J4sFyMJ^%n%E<4fPWJ4f#lj=2^sN>2PEr_q<3yj&KLi^Lb~gs zyAaLWkNv5pyVtVaE7@*){eOu5`_SDr-JSZ~Ip1B2vqJCO_sVS8pE`K2aJuJ(_ll;w z?fdK9oLNy?dTGmhWty7&f%Jd)_g_HodAqT6R+QiOe_e4?`hPUCap$aPYmXeonA5VW zyevw(A+fyE&H3l$osA3sOSChkqBSk&rS1K5GIMW|`nw9}MB5_=U)p|k`-PV?{&cW0 zp*(6$t$yV}>#2mFSHE)O?ElogvN~GscR{t!hN@rL)$7SQ8%(Pk%4!y=!E3G`q(~ntO*Z`IZo-ky27ls>p&}uPlt7xvB5^VIgcM&EzmSPR^1Z zcQuY%7A+h)EYCm0N+yx%WHzZJ3&;wxiYz5t$og*C^*@$HyQ14Bj|gG;U&##nvq>dc zK$h%!vo`u{{GsI!`-iQ^htO++_9SiBgy*8iqM9|2g^)GnKT6g6$I39ge{RM9;kv(U zx7qnNvitvW-Cwq`UGu*U{#O_L|9U>Bzs94IYQQw#@D|Y4c!&3jcO7G&fOcrn!l2H_7{?+WI1WryKBR`s4%gn zE{?*&_od**DD-__`s1JXySKZKckdUv_Rlh`yWIz)us$UUsW^{xbNc)2-tRuwE#1eu z_jCS2(mxp8ANKZ+!hp2*B*wn)%f?%x@aO&R?e62<`<=G`Ec8yd4-jRyAb;_B0m7p5c@C4VsWx%k^Rd@*4u zFFCe@9PH6p>AHkPA81_lYLs>3f)7XGRO8>i7TwZ#^3^CYVMedUvyLZ>{77S;R@e2) zXe?-r`X#K$Xq?{7#E&;FY>oQ&-}vz;)ct9k*f`10-SF*%FLrw(gTx6Yxc-eTu1hHX zMB|xO{Z-%A*z>ih|BY4iqR`Mi-mN`WyDa&0jZ+;?xb(Tkg|9_}YD|kaO^U-!O5>(^ zxD;z~C9cLzxCQrMGakkxcoI+JMZ6q`q&S46MC^lok-L(zaX1!W3696; zuEPzu6L;eQJd7vs6kf#3HF5Yrj}ShPgnh9e4#8Y3#L>y}J&sD!LsXIxM`P1MG&Vhs zimO6YTpdS4H-~8G);JopBSeE*@Bp^QQP#l_Wp&~?ybwp(sUgZv!-1HMd$AR3PTA;+ zqrrPZG*|~i%0e`x3K!twILeC*$azaUr^AGM3_;I4Z0SQQ>mj zf;;gtUX7zsSs@ygi*vCOH=*-2Me{;bWLhhtNYR-%dLYS~vL{Z$DOin*Se(J)Avh9? z;%MCP5REIw@koJji_yU2*5L-c5~7Eb;^<)>dzi;2l!s^n118kr3S5JmrQ=yTo;4L`;!@P0j6!8IP)B7IxDwZ57oLx!rz!UIIGl{r;;1q+M3s41 zfD|6oBs6>Rnvldo(}AaI;^_AL5ZyjfEP4q=2Cm1=cnpsV#T=n9;E=7@#Pu_|em2(Q zDs02UcvT1zgu)Yud#2-ZY~V496jP*FyW%pQq0qQ)57uJMN*jA^?Bgn__HYUg!x3Cm z#YJ*pf&nIo`P7pW=%-;n4L?q?k5jDs4lp2&!=R!N1{KF4Yn}zwd{p^am*a4|_0R3o;&7*N?ljIY zwLUC04tHG$;jT-jrn}dKaQC`6=(j={o_zPCxqg;aro545I!|I4r5GpV@!2puZA%8dK|`? z%Ep<>9-;6f#ipi|rCe5vO}HlxsT4}3P|t&0*B*yH6zW5vTe$cZE>1IGngP?ZLrBkw zLk2}NDEf)fA$(#?90nc>Vc>C=uVwlAIArTDTYrNoHke{V@Uo|$Mt<&pVoutk{sXe z_)hx^{X9rpOryRu>KBKPtPJ5JtL>k%e?}7al7wlyC*JBIrlkF_% z$AW%ccn+_J@UetAd~6_Qp%8pb2r|yefeUfCZF&f|&5T24iPhV9`%COEv%lPay?y=O zrr*pR_M7b2==e4rXLdSpLh^{^K(WlyL6#1(+VG%ca{hMbvniBKp=`&q9UnYQQsv|G zxKeTj$rU3H4B>$x2eBPb;^{ctkr=`q$;g9u@L#!J0Ol(4N zUrn+N<#C_#xbFxaHPh+1K*t3XDxlE)I=o+p_bKqOSv0B+H{xcz9zsz<9E$p3 zf6PVxFLGUx>xx`gi@yfHl~=-lwmQ; zt$V_!GRD9$<*DZ40k~mBoq5h}oU{bY*GYhZ{560n9Rq&`Pc$DiN z<+{l_n5=`z8cx>mF)n^A19NZ~&c<>y@M8vkjHQpU^f9^hnB017Ew0BcxE&etSToif zuyNSNF+7fE@GPo=$5g?T1P^F>U@G=PuAjp7Q^atJ7(T{xkMZ26h2qmf@tKAYKC=p& za1RQ_XN2N2*F3ojark5$!Y32sFiR-QgtDegjLO8QYyf5=mz8l@8B5AoVto_J>TnIN zLm?>>k}@59RtH~d4&h6!ai|>`LTyp(>8s=Vn>{*&*<+ALXY=T6hRtT!oJ=1#WaCln zRR2%V=m{DKP2v4=dp<+P@6^r8VG>=)jhR@9i;d7D*r{gd`IfVJCNYVKeo$vbj zuAk3C^J}=uSNEL7hM)%POTEppu##QY0l z{)Ivujn%jS8*o(|{_Bbm{_FE`Si%!acw%XW2QCBR@I~#vsQogE)hwggvU4FUyMV=5 zBBosVC9eEZCrX}L7uLG2mIbves5MZnf&OW32>(=xwYWSED|l=Lk9|e5enql=g@s>X z;8zymk~q|>hI-Xdza4k_SLagH|5sV`)nOrgH6JUmDh^*;7Q)x+@D!ejLj#Q)X#9;i zA$((Q9M;hTwg98aPg`sPKv zs{X$z*5Aqw;afSl8~5TFJgcKVI_iu4aUil}9ZS}U{W`H^oxh9kKfFlIXunqNYM$qK(E)xCJ}#SR7s&7s5*uk%BK# za5n{ZQ($*1wjo#V=IWOz@G=EnK7vQ%ut$jY6smu3Jwr=b99p=xg==3;4&l{QT#2jW zaLB-i418z?mLiJ}vADfFg!T%o#pQ8$U8r6csv~`ey(GUB_VaI5X ztj6F}oUZlaHHXK`UAB8AzhysTxaF_z^ zT;I<1uaBfqQ5@dr5yBfu6i{6qs_Xj+zHRG)Jn{V+uK2zN-`C*#7w}RXcBX`|vu7N3 zo%9IyG)0mql7gi;8<%4}UcqZz-;3+hSlpk*1F;0h<3e1Ft8k6}&g)MocFBn*IngB4 zHBDmOw8()axEj~8n5%Yk)$X0RI}Xi7UTqY|;kEP-UdzA&EJQARZ8{#sPP~YhyLB&iDe<2sEflX3Z0_R+d}rXkiAW@w<%Whwt?O@(A!&a z2X^7PIQ*h1gkS8zV|Y9cXL#fck90}GE=kz+Jg$tx*?C@d%|{lVW#KzjA-q$K&cEaQ zZ{);pWUnJwdNXET0951zBYkzqhT2F`2S|j;duPd7b`PkrxCQZ*?k*89bJzYy&gqWuiq&%pi0YcpP3fA!xs&_;m+ zg}4wG<0@Q(=kS6uN>oP4%4MZ$S&cieN!GW?`h&=lgADmG{utYXq>d#eMLH?c*%$la z7#xQb>!jE_1?vAD1HUs}vdokNwQ^uNZo(}rPiA>4is@@&`dSn2Vd(&tX5tEb9SU@oo&pRfb z->#z28VWf7n)9!f;CN*5Yb@S3o+6V_PVAEt`!gvZ$@Z&){i6dg&?A_F*o*7*z1>u06ob&jvVgV>H; zSaZ%?-)62qh*$6$3wyCJ4duWwIdHVog(sZv@BBcd`A_HIX55Od`>E@GdK^z`m#JMg zj|kzLLipxr7rc|o@?I?D^51g#?}oFaK*O^do{z)7I{vSY z|LZxtAi3sBu1egBJJ7(#4g6NJj#F8FnB_2K}5tr&`?&+a&og_5XIhjkUPm-A*WeArz-KhH!ebeaZ9-$#jOrXIR|T z>8^Jo4!?{;_+=uB^)JQxmkV$a>iCyB?pp7JpwPG@ii&(|E} z`gR*!_|8e>ns>P7+$0~T9@qK<#9}HI zS)YwUa#2Vws*;PUuuxHw#)z!eHyo^9W|wj0id=!WxN zO{J_1QOfE#>b)dHy_dz|-&pW(EVw3i*OnlSuhICACXPSu_KLs6yKygM!cMe5aASxD zdXqHROSi#Zx()V1X7CF1j%@HIJdIx5y_vpS5J$f*XrWj|+o;Z5kxR2Ku_;IfxA72zlQyrMvy-%~p`^M4az9E|24=3Ri zucUT(CDjy1e|IEAe|I#FX0T)iOJ=ZmMjdWP=V!E`fo62zF+783@giQ1qfdLA`02?w zCqy-$o@;{zpJqWR3rbl~N`X=el#alWESb&{Zwcp44AI=F$g;UC8&vFVUkN%sNQZ+M zGH9undh@;1TNXzT^4xyGncUbF!i|pikc>SfWM^=ClbYR*t#c#t<88Xgl!=Xk~?gVC3=828`KZG`=0tIdWEG|l<^g1eC0HD38iwrQ91W0 z5X$b~{~tT+70P+B)ZpV9d?MLvG$9!<#*4*qVkvgFiQR1jFjGv;@dM5A1JhA%{0&$B z4OeEeER$uKJdnu)gLrmOPqEg1wDx1%BgVK#Jj=t+^6(0tTd~6Zf9nA;KOBc`Vz*7~ zwsqh!yoi_OK(icZMFVX&(2Mirznw?H(lT@gSkueSNF@ z`VKsWXWX78=bMuAO(A$w2u^O6J6ql5hPcb+${ij(#iOT$_>>Tz653NjdrBxy3B_q1 ztU1kvr>97sX*eGjB27=z^bD7s;j%NexEu|9#=yUvA(=|u<#?ovM}8%izbZtE{)(dK zTHS2g++^g+ujR^l{him}Z?yl7_Lp|bt=)1d$^HNLDK@y`_dN0YwYXk#iQQ$f`$M6m z8jTION)n0j6*0b&hr?03E86vtD?Q}OfTMDzQ?96*+f>cpw8@Qwa^jqvxFFQdZ*_j# z0HKvj+e+2{HZIy;B(}w3%5^VtT?bcoaOF?3EJ}wMV6p+G8lcMn=Omxw10By)|Cw2m zjVlN7zR@?8|BjLa_I6lABO%ls)j@|2)ctcO@RSCr8ki4ORAIGyM1^}q zl^N`^8SJVK5_OPF5te_F<)eAzK^_^qz{{#d6gx?=({Wfn+Bc44a1k!i|26#u{jS5B z4LUB<@f=UHdEy&9@r~8E*3)a2tYOL0Y|rg;(D|j#f64JLIsR;|+*yu0aW}5S)u{ZQ zZS#snKXdd`-r~*3J`}=oA$-#QllB+zV9f$9T)@HwEL`A%1upo<#a=ut^}<0277D?_ zHMmZ)Bx#U>v#}h7qDCmb%mZKMf#-PaIUaki94ll$MYmD(%el_yIo{XtemD>3JKtCR zZ*ySV5EtfRA&&O4Xs?$=EqEMHnnEeodcp!@r3HpHTvk7y6%Fw9PcL8pq&q&%@fp^7 zR!D=bfCgU+(U9Pyo;^P5Y4-7suZ?DHjH9xw5S0xKW|%aZ7z&RFC$3ViAp_z{9bx zj41eUhW;w_w-7DWCUo~#pg$|8Sv8YwOxNKQ9Ztj9=+m?bB`&noDzkJ<8nY1BEq;LEe&zC0U=GjTRv#%n%J zd%z;{fpQ(Pz~?kkp*36KcC=V5ysm?RI^eQVb8tRxKa`3B`ZT4bgud9!Jwc zh^BGj-zJ3UZ+pbiOp49i5=Wmo5TefRTVql&-!Em>lGj26!-4W)vBbaChDat{La>#if zUR=cMzMC*R1+}zdq}iazgl(GJYMQIrri!Y*$c%7QP=H4RmoKO4-St8gdo z#*63{RlnY}wh`O#ARa;UZ2d_*?WNv2FZDLyR@{Mmu|>bt`dwgR{-;x3E1uC|vJO+R zKMuqk9EPPh8%@l0Cg!?kY&8H2>d)gPyyC55@K!N4zySjs_SVld^-a@M{X*v#J3qkr zOog;Y%B?f&j4c{V_qDd;JPQc?uj|bRZlFyMJO~+2+fmyOsIWvJWfKn`{WE{ z$&(9k2`)neJZXS>^JTsHvf(O)uE(KqxG&}la33Cs!%F?stklszONM`z46CO2Lx5?> z(p4;7#Z{}gYSmHfjKkMi@O2h^o#tPs_}91M4s6GcIIQj$!s`B5fQ49xD^UNd_5YOp zr|dWKXd{m{UNA8?UZP2T2rFg(KaZqH5uV431|DMITzno^B1=}WrPfN0=yYQS2#lBMPEBj(U%)wze9w#9MDk)I85jSHqwqngO z8^>*2#LF}?&@%>lCKI!fE1%)YXBOgOY`|66gnRHX9zlveL(ylhGbDjQJW|CYRg-WE zmSY9Vr7F2pwH`OB|Ek?K_Bzmk$52*RosYxcn}Gh_1oZdWm?KsxV%8JK;Y94j6GA6R zS4z@<&JwaALZsa)?N$}yXk_s!7Jps)uWSGHRk%h@Fm!dY`d>ZI#(Z_Jqi1!rZK?@r zx(P`cZdZoeCFOQWxqS_;LyB&v=!<=Sf(Fdo74c+q=TitM0B zv;LabssHA^Hd;_9nuX$(WqxSYARD6!-}R zeliXxqKa` z!$kd6tN(2abi{(~EZ8Qwwn?sSO}NML3dgJB@b176-pxW;{q8Uu zQTv_tEq}%uuVi$HO2$}yG+USzxP$@JOqIK@|+Dupp}_M9Y_oNpZNL z@r^4{S`9l#&he|O3aj1v_4{gOZ9EnA!M20Gnp)zc!3>$h1&)|8y=%<3XXPW+>0%E1drkwJd0QHdK{8jl+2>!{x}fx za5#>^aX1}kVkOSQrC5ura1Cz3?bw1f`)nMw(TQjAJYEms0|{~XKu_$012GGSV}Vd{ zU7}cjV21rtoQLyqIo9JrY)2mY01u^P`}jJ?0#gltPz`^u6lY_bN#KJAZCr8SnnwXF zN@Y>1denUd&mx~nbN6~&1?MKmmm+`8{$2{~g9{Sii+~Di&LXVS2 z<4)X-r?JZ;$?m7KAMa^Hl6_o~eWJj#$wJ(YJ5gvpAv6OvdMvcrkAlg56imehxCnRS zUOb7X{a9%CW1+*3g}Ht#RQj<{BfC2p(1cgGTrjG19LImJecimIhfG zWa%JF2U%R4#l>08*ou-gOOoDB@!KhW`*@s$D{-~Y#{2nfyg%|xHqT@?;40KUTl;Lu zJy>!N&c+<|KX|5%G6(8#1s=e|$nwD~A2P(xn_QGcLnP4<9S+gqkXCH-**6#GaB&U~ z^YcIB77k0m$&D-hw z@!h@~&+y&&05tI32EMxiS$g+TG;n@`A9g*Eg83B8uSH3hZz|3=73ZJAGd>>=J|B#J=pB?@_e6{kHAH^1UvAU&&lP^{c`92N$UUp zDK-{5uoyeh#4xglyI~TJz>&TqpX|HxsmO(eT=+nOU!Fa%3HQWdG>-1(DLmtA?>-)s z^+n0~pyYgTIoA97Tf1WIiYZo1vErHPzqriCI^2L~@T||nGkhLC0LS1s{TEKm8_AN=eOe)b1H`$I{t&&u;~2`)n+D`~Y&YTSUEe1D$k`}1TRhWR)hXW|-MhZpdY@6Ct%-n=08+A@UkiAcfm6r7;H z3HqDRh39;qE?Fl^)`@Fzz51WH#m06A#CD?CPCSXH{eetRe<0Hbh2Rk(ctnUE5u!(g z=n)~B#NtUTPMqpyB)e0Z-DFzbGbo-)@tz&-0mn?$a;T3Sy5+bj`lP9tN78sCok8jO z>OW(msc^EHZk(BJq8W?=11WI(Mia_r6NV16bvU@vd@xVl7pVI}bv;d8&rp_Pe5V)> zo3H#9s+KdV<*e*ZmgT9ES#I1bH}1PEDX&Vx6iL_#id1DTFj+7xLXJJ@XS3tbMFc+eV$9ZxKvUVWO8LTQoMlT_w&g8 zJo3r&o?Bn!!38|HhzC_sad#C}^58rk?4|z4rg2>c*A2h}c$f=a_>c?7)p6kpE-dH5 z3Qv?|@1wGJazB40(Vr`wpW^(K)wmWn<5t&Qaosi7WxFm1*PswiZo`8pM<&aW#0vGF zSjCd-G*2+W#A2Q(He5B0tETCAnvN%3lI>S?%rlSj%%d!Pl!cRnj$#8(H}Fi9gi|Ep z6a!2#z~lORTz`+};c%RUQ-s*{DXvecS#M*bCD>9+uv#%+EapqG6Hi!T?XbjZ5_=x$ z$s;|_;RP!uuJ6V5y(!k4Vz;pT7M7>A$c24YIPVE50jkv*o>{}f8_J(eWja8y_-pcY-Q<#EPZev9+0)Nw^;Ums#Mm_mbE?9 zeG=+$tPV?hO4>dsrX^xp!r~GZKh#GO_r;aC8joV9q+Teg7vlk}IV`(1d_==XX!J;{ zq!WT^LNJX-rtwIb^JUI^av#ddk-}vZF584#a0fQw2|VQwWQOea6GcO ziNQ@g)x=XT<*WafM%b8w({KZBLa~2I?01j!g>Dhfz*0Ph$MFhY^X2Y%U+zvqN&K=T zet8cz<8eI6Lzz63jm22v4L(I$DAH1n6+BY2oJ;C$G~pg>#}4ema~|Bp9^52iD)!IAsrpk(VJ6TH zgTil6_>J?}{dHzXlGn879veMXxcFsD{(2-qB8AJraRV(@p`Po6_}4B zeEdAx$IoMMB2LEHSniqJV$bB3x{e|{D6*TuyN9d)-G^-)5wqc9R)9KqSqCp~#T{bB zRV`fAV!##ywg^>=P_?vU2MSe-P_M^AVU^+aM~w5XVrknv;^nL?(K8Hv%CI><3{oSY=5Nf$Yn7}b`O3Q|R? z$pW&7EFmk%GEzrYlGWt-#Aslh0qSNGjq5b7)3{FKx+%n%>CTq!hvXN{~tcmKk+Soyw$R5&6T1gu@NZLsUIYzpbI7v>EE^>}sAeYD$a*c9< z#3Yd*%zK?aaal3n9JIV7KqAR|c;DJCUkJefkKkr||v%qHcef>e=evVbfi zOUN=(M^=#M$!fBetS1}EX0nwuk(xdJ(@a`P8#zeY$+5(!!2k^gXfQy70U8X@V1Ndl zG*FtE7?O1l6G>OoF*OQBw^U*W27rF`d%RE zB!k4_|Gi`zy+}UECOKpnNhLJ?ULr{&nL4<*pRvopvpjD$5nzb0HC5O_=)9j93qD{94nsD(rFdCzV(yD5e9KHtyl`^U8N ztw4>``I8_Ex5^TkJKipBrA%mn`Q zlhFtyoz2oD5mLgY_cxZays?}SroO`H2XlV6&J zet8bR{fGvE5wf;0`tbm>01QEhA<@=hO)G-G8vX9dqg-W+Q)l5aI7c>LikhW>=msL` zt%#JPHiGc|2AwqvwNIh8t~j#(R@C3x8$dsAW%N-TV-0vZ8qIt?sv-!VZy=?b{xL0p zYC-bER^rseXG!eNFeNQugwI}L^t44$%NQDjS3<8%VPz$!1-~ z^44WWzOF;Sm16?V4V>{xeHTY6ANZ|yW;S1j@-kKVp$!ztRv&fHojWGybH%GiEyK^AeG?;l`5fJ%+=&lWy=TVWS7#ZPP z4QG@qa1KToGSKJoq0;Lbm-xRf)#Xm)vw}L^4_(!8AElakKky+4UCGz&`p)P!M5m8| zG-fSlXb}G6&{@%)bqxM?%+Q&jStvme(l;1+M#l(@m}^Hag3xaRVD(eLXf<-Gmk+DE z;$#E^xi6}3hsGfk%fHC#sGjWST0pngk?p@v)0^uFBgZ&=AJDcy!u>7bT zUGyJ&oB5M~KoA^`X!NZgDSrraql4mnnXv8q*(#32@D)e0tQ;}(R{?W%`7o62bfiNz zQkhvSOIX412`jQuw#8u#m*t9OBTzPC#RQa9JGz9+7?e>uMMEl&nx8WBMSwyOmOEt3 zaSpSMFGDth@TjB3$>^;;8DV~gkuPA13KDsYec@jwDa8WS-$HSeK!~5KN*Ya+RKFoQ zQ_DOvA7ru%AxvOK5OTrHi%iuWSA_WhCe#%W>jgJ7x0+*W++zkGV-BzmS*lf#Lywvwtof7?_Uvc2VAVFBf5Ki zjojT2S#{BW=v_X?S`ZDEMw`smp7{UMShJPN>c_E8Ya(xE7~#9IM(Z-uKMUY^4U zXU2N1aY%nT*2s^BoU{46#$rB5WrReN4%k@0BtW+J(mt^9ogl7mNJignDqw`^&T!|L z86jHL1?@s{soSm&R=Vw%!3OK)d5mD5*)os*KRQhMfAKEq|LIVA-Eb*AIh0?5v<)LW zvjvrwkE4IT6+5By&JIxN06GUj_|tkbUvrE>$mTCWT9;NVMeEjXHuL2^%!R&eKB|I6 zNJXv2QuD&7zxn-O4_|3i;1gT?GU2D+k4KqyJ7K}I97X(}_^QdTVAHfKp zke_vZ+1E+8=z+GHMwYK>``*A_QV|1)2GVO_hxu~Z%&ny--qGz`&d*tRec%0 zsxQ~ng;8Nj1g1o;shdrexj&iV_a}2r236iMBf}pva!p;;dHs;rk8A3#%5x21c-H`~ zsi!J0Efq_4D%X^t%G-&&oyfZ-l!x}4`Q+Oe1g@#K3NSZ~;d9ftrar2?_(2fuAg-ye zD$kERKk|&Ky!v#k#pzsAqAE{61d*h?-Hv7XcCIN&mA4Uj z8>3{_r2E|#%euIYAFUep9gYXaAlsmg0cUNiFUQ02KM zLO&*QO+!_AoAVjowmF|`TCd71nuL{Z64z9t$}>!6c*A6_=}uK%LIId5;F^Z3@>-^1 zSWV@c?!w#$<7N)MOiVratUEO3(3C(_tQ1U{7iC@s*OhUo%0hm;d zVPZOlG!I)>7()IX+xL#d0hnGeB_Rl-UrjN~DK3@guGY?^*4&Dh zso}!t2O=+}g<68uz*t?8W10z^3pXiPbT+8If<~uL4OiKWDw`{EFx6`iDB3TpdmCkh zE|j`}Fb4?7gqYNaOB+zyfYK`{y<<}}?koI(DTjf%P8hm|VJLZ@%X8LU1}fvGOkYl8{jx#ulO{dFcx z{g!~Ild*MQ#FHLe;z*f>ekInhmEVDeYh!_F4zSQ>YWh=CHnOME0GYP(1Pt7P)#M4T zzfDGwkAnP_XHcN8HXBs}*C#~CyBim9XX(2bl+KToJ0mndud~*8`d~d{1b?Oz4Lt^H z=NK%kfSc7t8EE}j>^5qs2-=JKK#Xy{hE(3_^VDFy)Ef#+*&#uc->NhDAOc?-B6yfQ z5_iiCng4R|U%oO1MvD$2SRJZA^Hxb&JGH5-KM@_o?sdC7E+}7ngA3HP2Az=+W|FVs zx@n~jB3I&iWpo1~Fd{N{Foe7#m2c18+8Nyn%ZfYG-z7?7`YQ3V>|3`r(2B$=hjQnz($tKW*rlU)|Z$?l3^ejS+rA=Z`N;gQ%h|qCM1U=={^r-mkuGh=lcPJH^f$5h^?MrE7W0Kt{YJu z$-wwQ3uJXV3%1U#T#Hduw}Ez8Rvn!Re(HBKwyH(8TyCeQ&fQZVYjC;~vCrs>{~VkE zjId#d&%=A}gnIo%K8o+bentKkf0wOgC8qk7jNo~WHcAJpokA&{D$NdFv1t+)tH6cQ zw5&Qh*30^Zn-*>vpv4(~ez;6BJ5BB3If3D+$AZF;_1)saoe{r^<>Oa<3Vc@`1tvBm zw#of&rl#Luo9pt}-KCx-?jfDh;+DAM3e0@TDh5F^g{Lx#wxqO$%Z4dZT0RZ}nHM@w zH}SGo>-0TU%ZN_jg`)&-th$4q``PGpE3;0Ot}~R~<=F-+T<%^I8fsd_2tA(r3b5E; zeqkjackiXSZ7%)C4j~_P??D3H<2CCSAfr2(+(S=NdUVnx&krTLXx5jAHQs)Ntm*K-g4+mT;jEHEX8WSN(AGg%5XwE6!RO}|}S^B7@DRZn9L z+P((+`87xA79bRJcs+XKYDi!VItD>7RuPM#`;g{DA0|I(UXzE;nZz4Ux+h7kp>J4U z)azU^sk7TV~9zIZX&`y$$Ei0I}xbn^{ns19^XCmem2 zjOdx#SwFy=oe}!O>#8ncy7jsTMmSG&6q*y?ANWaWuH) z8RG2K-yMyorOo<6w?>$sQF>RX1W}Fl-mxu|B7A=xJ|oRQ;exA`Z4PnguztD z+30qVQH^LNMR9g=XF}|7Sv%UAc4}@i?cDkdS(T8Kw-YQQ2tPe-aWkxoR9D?xG(>f!C33k>+w==ZNvtVkU0s$<`CEq1v+PnZm5cUEc zR+H!`&VrE@%~2GmP=+Avc)Fu;irWjxbi2!f!S8~(<$~iX9CNrli6BBX;QVA4ECGxZ zeFuX?D0ZyN(*?4=1Z@?$vr>T%?Q0Z3A>vmXmF@0eLGWwo| z-C!dhfC$38r+2%JXltXHwgw%(h%SWaM3f^4_dKmN(#5fz__qd=P8=FThn>}~LHMKl zi-_TN7ucAi9<5YcYoM)(q4CzPuOCe5^xa`F%46_yA6Z+KvHD{;PqCxrVabz~efmw3 zhvh~)%Wt$-LXs8OL(%n*uC1T@Pc|iV}!qwANt&8Ghj{$c)CH3+tK{(q8N9t zQ5K->ptRk72*N$IMz*uG5Gw7X1C!`5*P)lq{C?ElkJ{8?cdThG4YeIM6I_O8B=Sn% z4i-xr?UqMwPPoh&az&N5XU@ekEiT6DS82H)eERKMAce20$uE5~;VF%Q%QVhWrE7;( zm3Dya^HlO&P*DsgJ{WX~+qzVh0om5DQWI>wo9MNsqY+lG%ZCA6mXhqE}H?!cdCz_j>qm|l7b|v=FN-kmY zd7?qT3PVTk0CF)gQzn|0lqQ4CPIAi8sD8PvWK|lj%{khVLa9pZt);NFGC~TX5JpZ_ zgg`gcT0<$uB;87uVvz9jTgYeq2FOgd^fSlHTCVKY_pT-R$s^_V)+8JBw@p>-53)Bo z+{p9EDK^Q0%{e$YfX}@^;UqV!n`c_H9wfsgmrJ6xCwaWI8>iox20Ljt)0y45VNTTRW>_G{s3$Mj9Xd~S|{g`tuG zl`KMCglTODV@3p1E9M3m{9~V6#LpuLvf) z`8kL0L%EHd!;842NpTJ(x6$lEzAQsO;*!)zMgQqV<*VVeUJW0Hy{17PO*J3d!Rx61 zGMel+(WAfGN$LQTp=4T(=R!jbY$7^{6*VGD2aL#(#*#cij_sv0VOp^`X=eyAFUYcH zgs2x}$uYvU>VPOk{1sZNNnn5>LR%iKrbhjZ^dqU2eiT*vZlWI(s;TzKQllDUt`0&DSku_yq6h%2Rg*rHXGW|3GyZtjhgW2Oit3*tt)Fq3h9Exzr0m-wr&3eym&dq**aC2Bpwj7k+f5PQr9x~|A(mVFIN?*fk)^jOei>yd z)IBR%*K|dr6PRKKQva9iQ_<*jmVM_2X5K8(j`n3e1G9CQalo-aC*8LNwQ zPV1Q50MRw9KI8rgtD9_^X0CE!94QVLGBV95PvOOBBf@GLK;3{ix7nXj^LqVG*?*JS zAh0sZ2!CffHE(qA$tiQEz7h__N;>;l)LRA;SJ1V~+8zNBz7rSjxG{rL!mOpBYD(oH zRPFWufwi?FYaQEQ%?$kJN;>&}2LmzOc*+{NHb^f^i%VBnnuRK}D(P-(@6+K5ZLYyL zlUB0G(l>*ymsT0@msP$G{A;db>C^NuOQ%&VRijFE2g}o-g3=hqVL9&t9D?wA#RWI~MTPYCN5CCzbrk3jkAZ9U7$6XYsTD@}6L!Jg z$K41R2mu>*8jMb-qxTeyPvHRcDNLUg)ZelhD`y#U%ATSOJW(MzqkNufRL-`_h))3m zLFiw>q0TDQNn3+$!Wu@nr6L76j{{ny07mGQ3p+~fYbeG^B1WPy^|GBrCW3Hz1?6rE zs;uT2yG$baX&j+JCf}_vp)?1j(bm;c%fR$Plp+ZK66@ZM(#!L*`A&>j8|4isM-V<+ zK^xT%4CdI6+2>f(TgOpNRP!MNoqkrg6azRQ&`1LiL2O2#7^QSMV#r7 zxxv}dgbnb8_}L)uC68qEv?(oSgm;p;VtSQDp7?Vi&fI5lsU|F9bjNJ{LEqZ+~K|?P+D|>yt;%;_vKc{E6XB0MZ$1y~n7E@WFRAw?Q8xl%g5L2n4luk_b zvtcyKt*J-z>z_S?<_{NJ(=7zL=vIoR6Smwno-^<`$ncGTZ-grCUPfEVsoGt=Olh%n zq#^k?VpTB9m*KwDvpO8g14ZUC;<}@|yto{@Bf}yS;i_1ktD=2!d^NReTEwx~uj|eB znfq5$^MMDe$yJ!`s<7KxMkWt6*s77Nu95`^Z!OXY!ZBRH+neO|9QT-^9*O;E>@LKv ziLs%GIg)AK5X7d7d1;8PxRvG&Kg&WJGsVwc5OS0iH+;>9Xdl&&^K zdA8gIQR*P3La>G)*vgejk8VRHpW-)e>a!TlFRW^ZpfLqpai(@AdQt7oa>ZM-tV;l< ztPW?%(je5-93%7Z9B%XiH-d0yxzd>@A?K4-pIUK_YA4=16_Z`j@vrT4)lzy^C!SrZ zZ8z$c?t(3k7t5{OfvpwWQr;eyB_Z?MeB!o3(TQw6044%e)Gm6jqg`n?v1Wy5`)9Jo zgvX`+Ihaw;eF*SJ?BvU=?$c$O3eVF+JV$Jp;gnQ!m<%+@&n?9yH_8sdKL^1-C(l|C z=#wOGSZcD2x&*)_&*cEPyNDVMMFj-G{v_EvtjOjBfb+SFF6t1K9NT$M`f$U@C%Vb2 zbbsm%69ZKcgx{V}+rHGgROX2;SZ-yatz~%kle7hC#@+5ze&^-dnKMi|p}SKod31Pt z+vEM{mQ9BXKW6?CXkAjZr`?l#+)jEIO1!p^!!v6&2#Sr|`AIJw%_?3PeKZs@cP*~0 ztc6+hgaNeaNuV?o_i%oZmOgB+wveBO&&if~SNfvAjdHDQW1iq{Hi$cuO?M44EAnW) zPw@Q?U0d)3(TtdzDzj3wmgS4kgh5a6?mBq$CcxD?fU6Vd)-p7&Y%N(gA~(G?_@&2{ zbI)C!CCMtSB~f>eNRg{-1%<6^lb{`@Rmv``tg|d`QgXMks|@S~uy-vzo7Iz-?+*Kt z8t={wuL_FrPOQXT8}NuATq~olK`MYdvG&RXkUEUb^ymg58+Y$uHXR4*RSeEbm3--z z9*%>Nuj71hFNW%qI3vX>DqUY_M>em29>eQ-`Njt$^nF~`PqJlX|AfeUFZ(+MJTb;> zV8a^fBd14Zwb6)iXhhocuxOuWgr#T%JyE86PikJ(bdub_@hZJnnm-UVEvShgOcQI$ zytM7@^LbPbt=7ZGQPvMma=6jk>7wJf_f<<;8Jb)M6816+So&%OW$_@~fo8rM#1VuU zWiIh1^rRR`d1DRK^P(_=-2(jRKF@7NXuHp&M(zZ1Cs0f+qketF#MI!jfP42movv#H zBMpFU0PF}67BMl^vrHL1-^WrFz|mrO+{tF?mnbn93y8zqEnd2+jfF#)p_lJhlMl_k zduge(A%E>jF7yR&<;C&*{n zJ$pabClYF47-|a%X7?Q0p>Je)XOxE(8jB^pJ>Pmj%%~ufb8^FLh!2AHJ--VqJiUVK z%1LNLYZpNcyq;A4(zO{gv-xwVaPE0rmA_UyGut#3OYR5DXc@g~Rr6pr-;DBRl%GQm zE!`0+HS)zwo{6<67*2;EHiaQxWbz&mL1ZNU5XhP^NMkD`r$P{q!Q_$-qv;;@5)=kO zs9ZYi?EWCG$5!J)WHs*hE+yMXC#M>#+wsQg3s|F;?xto#ckp>XKtBu)KkET_F2E6l zdzO-mqx0`BM6$4251;`{1EI^Z194h*y!WuP`vATWnsmjl2rvAqbtwiZPQ+ z8!ErV=F`E;$@Hm6+A^ zL69P%r$H$%FbI_3;w3T0;b%VpXZgs>7xRjj$fKN`8XLApu8qy(TKk^KD!w~eJZ^1R zmnvRh`HB~)2cvMAVxH{?O(AU`$uK<{CYU&eFt zM5E6gDx3GYxu&pWc7lPOFC2noHo|bN3#|oB(KoXUY~_?$xijeef4yx$@6b`G8`w~> zK6pSLZEy5}S5toyH6cl6E^UIc`g*~f_XQ0U%BW&)=}npI`2U8vCqm4n4LqLHx=H=Rgfl@na~<8i{Q@IRwg{zTP#G7! z+I8bjELpT+@{Q>JypW_%4%3}HS-I9~0bR?wi=g|W%1Az^y;%>fe*FJQ4>d1r53OT_ zi~ZZ^q44xPv|vnFNTp!5bRFF;b`_az5$(#(yw z{+ifnLmd52uiP=~83b~)V2m+kpxxu}bjH=T-C!VFOwns5b>hLXCxxV1!qUpKEX?1! zPQ!0qr@rg-%_G_F8K$}OA25xcKi*`VuWY}rrubnN$$pNv+e?Q5@(vywc+HfuWG{F{ z5UL+Bi?>-S@Ks$l90K?r4J8PI?GdtNN|=ccr%cr>7)Uxz4d{aa$o56nby3rW_?GO}J{SPaQz8IxCXzG8DGKQ5qYy%#X?v_w&u}{!B(~ixUnKwYk5QMiMss(*`m)z19QAR8ECPZ7i0RG>P zbJp^v0GyYM@KjliC+iJHc)YB<=|Yg6Vfx&a$baQ=yZEi7jPI#|54Ftmc@|;48;IiV zk2Cr?m>sL&fUbfon$hg{KPrbJKaBCn8(ZzAs8>qh?_1F7Ur*d;1%6cOY(h(&@ z@X=XEehdVGAQV1C0@HGBPHbwO*wjk2lXyGB2z!>8`OOT@KVB@wnX?^zC{ctxfUkjb z0IxxSi`O;YNg_~L0FHxZx)bMGkV!dYQRv9 z;?XKsxC!mTBRNVOn^AoMAjgcJij2ttpNaY*TqLJ+u; zQAlw}AqdeWSx6a>LJ%}1L+GUuBa#The-@;oFbydL;nD(nHk5@Fg7CwF1f+xjaEUr)d`WQZbeVik!uESy0 z?8gMq;>@+2aW^>e1!ghXGONE?{;;wN%2wsW8N;L3?{Pm`Or6N`#7U37I)smM-@kup zR1C8L-Ms-jt$CzkPKIXNqr^2QNAt_0doIm6!$v2g6hTNJU(M?oJq9TRp(A07d#05j zg&%9`oOv*3*1s3QI{2`iG0@=u(BB|`oE6RB!+GFE z5YAa~Zx8YP8xna9M~C!*2k0ou5~sXIlpqLyvr^OcF=&$?IS9frE3wb-Wn20{9`8FI zgFt7dP|P7!4geHEs23~ep|YOfaxa0`(<;N#foMQ3f^aIFOV8&dTyeN#?<`nt!GsDZ z6QQ3IAGR8K#zg0x%KMJ$DrHbC2bMfO0A>PU1|S@~5DcAX@=+B**on5zLL5PuYo&7y zq%3{fiVs^GT=3GU@R70wNm_{uvUNd~98E1rmZOCwDP6Z?*57`FHp2?c2tpKDU(!!2 z<&%bz5hJ@jv`oB(n#b$CF$g#&=hqNiMkjRjkG57~OB4+)R!SRC+CV;pnjU$8WIVJ* z^T?y*^M{f&_dZH4K9s5%{V3`4aAx0>N9h$d9`{(M;IrqT@Xu>>xO>3{0>1NK^6(Ir zA+J9?ta|{?qrd@aJjXeVd=1M8!^V?~4=2Z;1gVo`1Dx2D88=Aon@v(5>D8$Pcv{H& zZkqM_Y%=wc{x)^ibF+85Q?TR)g_z*|7!Erjhn+{JI5EL(#00mI5z1%FxfUlA8x!*E zNpKdY7yeDEQwofIG~HktQQNrjpqt({oiW>or6tbbb=&h?)CHM|!px1-Ow0p$lSuxv zYkgq3qF7aWSGaWlHFf^r*vA@YuYH(UG^(nHpg9`+q?0yb#PhFGC8k}@E zD%1j!p5KlyX&5NHT!bMLq5itqDBS9%FKaY}`QD>j+=svqs6l?sUK(FA=1DmPH0Nyv&PrylLEJqGN@ zHj=2)4KmHGrN*wzCd{y#3NjKGU;fbl;oOqT4Lpe}?LnGKN6KKSOZv#s$xHIOXQD>t zrq*1Ncb6o~P^Xskw@I8(X~DGdJU}m6pqaF((qN&jip4$3*16Q6>4bYMk@@ta!Ju&B zT2>o)s3F@Lo*Uxe@KqQ(2c5U?+AVEVgJV#qW`MlA^!ISxx|-aYAvfWB{Z%(wN7hUO0xI=me58UBKwfcENd;o z1#MJn&7E3=a-VJfZG0Owe+Sd-kqwW>XGXR)l1rH!)wEbuYf0|ovIg&2`gpoVp9@9L z-9-IGPZW{*C-ZDkbMP59zH6=s4r^KopKB2Sitv4O)h3uYn;4;`$nQzzTj1$FXmON~3z{BCw;}*Pma{=)9qGgU;PB%>hQ69i7{bN@O z1DAd`z6OoO8Jr*pJ7$n$<;Gq+kwg%V&xpYXQD*)y(g?yQ zGl+KC)ObJ8_%~ftZEaqhK^88{j8AxxAlL&1_g>)6s}$cqbY!x2 zFWa3}7Zeu$;s;z%C?T(}NYrkx#oJ7^@@nzT5cv-4(E>BHn32J;Yg-lhut+#er-G>m&lxfTBJarnAu2|o$gQlZtnWcQUdp9~3FlR$Bqo&c@a+i>EDU>sG znvq`s+bQ5GuXERJnKKtw)WU1%5K*Gl{V_4>#mf38z z7QAGggXU!a=J#9(9a}DGvwkJ&|1(^lj-@Kp?m6dP)K2=1ULVS}mJBKwC}#8$(V6-9 z%?yI{QBwUqW_|?HBR2DHdIxg*J)~x};m!&eAr&w}aLH2F0Y;z|APBp=D>Ulw-!%rlyGJ$O&3n~Y) zmx-gYC)-TkuI!g|_#&oFVFmWvR8VY`QzfYSF)%78kw9gtrqN6ip2|wQYqF#jj5U#e z$h^7$Q+6KhLpp6gXi;m-+%d%dRDAAlW;nMdQP)=a*+8&m0s7xe7l}!u7-4Lvf`ZJ5 zQB^gmeD`v|;zA8t=-N!@n^jZE>8DcIfu#MKM4jOx{Umjgk<_e-C%x9_HBlFdWz9(T zELp#1Fnf#~SaUb~4&vQt;hkGAw9G4SIv-qi_I%KSDQx3~Wg_xsAV(06O<7iF1`Dl`A#C3{9yy#pWw+W1d{wrdYb0K zPAFVZh`&I$l~FI@5tf&5@oP#Re;PoiaXe3HNO7|28Nc2L5aUa9McQW}4?mk=TNUto z+|CwE)+>Vn&t*tpq9}n`0V6*aF}E`)Ob-mNt30Z)vsRrc*IEjClLD8WMt-~qIX>`V zxHJV%Uj>Dc0V>G}Vrf>OVO!-i(rdOrJYXbB! z0J<$ILIHvx6p#&7B@e#)qk?%S;uQ0D58#AYg?TITDdu;7RAW9aj`Nhz*Z*|OB8gR5 zUZWV)61Vh* zcTo84yu$mhp?D&n%>;#js^mMw!G%p2BeE~M8Wt3&r;hd@ycL8IgkA*_+Bj=aIEKn} zXE|Nf0f)|0bBbPCJd7HLMddLU1aQHon33+nHzOZG_<1rt`srk(3_KJRq9Pa=P{3Mw zW%#J15;(6j(VO@Ik0ifyNaJqj7I>+)z%LbI?>VryGQ?g76?=~ne(khdc2FF1iVE05 zwR9zXo5?-T-)b9ho<0zGH-|h!Q0R2Nyy3;NTmJRcAieQFfP+m2 zE)WFE&^Xf|8N(Qi)g2H=0q}0-0iQ;IZ zhQO6Uo1owRHxfy%pAP?veE_MCq0-$xd;m7KS+F^_<>TO z%{c_VtHF2m7CMatCQ)dr)|YW*q_(%L#8Vyr3^}ttqC@6fd(mu_OX>Z1k=iKecoeoQ z6h$5`z0-^Dbmvs1qg$Gw5FKRn7rIIcC|929_zo`?6hXeGX=Ka`$(b#v)*{}VzlzvZ zn34z0@(UK>4=c>(+3#e0kZXlHCpMon)F|1m7~?`GUe#eb!!uDhM6o}Z@xJ| zR4k@2p z4m14;i};63OT-J0G6vW8IvDez_Fk*WwH0Sl3y6Niei-V4AiOzoB5u7)iZ$nZD3*?@ z`K<4yoWNvww@MN4uOHXfEDjvy6?>0U=QPPyB+#BJK4!91vB|Gl6p>Zbq zKma!#msv4t^)JJ%8~yTX_XcR_qKV{l$E^5j%&65zWM{dQA|p4XYF#LB9U+T1beF$A zUb`W|CaDJf;8YfUqnWDcRzPpXT2Aja&=+Yhpm_-(hafcNQUB)@j6!)L*O@M&yb$FG z!rx)k^kSjRLU4K*2K^yJGy2oAPCd)$SRVNcnQf%FJEy|U+UvnQiF`sc1PBWE2I)hZL19{uKBO5GrUa!YHiJTbutbE&4VJ^kps?$|HS+g^ z9|z*kh2q(~XRL?iJ)WRoSJ;3ptQKRuEJkW{36`+1sevZTk8riAw!P@hy`tSlXWIBS zd?)af>)K-~qWs+YgFM$6V!!WQjeeHuQ>CKyhu@(7Z5V(Jpww_=s$+|%24~3e28TO3 zwmosz-eNu9+!^(T0sptnF^Ek->})fAe&t@ozG_xz9_c+UOp|`d^ZRI$p_|h(cZx)! zf$(*a2(md{ad-!s5ElIts$p2n=(FV9)`>)jvi<)F|yW!p2c7t zhHvwPaQ=g0{#-Htm1Z*hB~u%C>C1GIl*ltLr5ffm>#)4V0bd{NV7%hH8!$ziN#je& zT1oEY;!7iJQWe^>zo!e|{$3I1_q|_&IHme>7Y+cAkv>$;K^skPCP+l-g*3W0(GFYl zz22tu2;6{FQ>c*3Rb)=}o*yP7_uB6#L$zVb_jF~K$xBpdw~YlAo3!{EVo&wHJxqpv zsYRvn`^nr3bbW3>rb|R)WQj=&ypFv6^5EP^zaf>EF+yH35KB-P_Pwkre$R6e4T=`a z2YyeIw)P+Y`;ckAm(+{Hd^5ETWEaW$tpk21W1oF@uc)d9;Gz$`DUy~L^L$6HZ5?To z4-;97AG6QlU+70sLBaSdeWaFZ{~cINFR_fUa(Yns0Hv3^GLY)HCTes@%LzQirWU7o zm2R>Rdycq#3emR-hdugu>>NJ+B`9o0O=@gsVM;|1xN-Cl&9arz(mz5pIrvKN(CS22 zAs1GY@_St3OiQ~QXOOBRLwW>BnVlD6_P{R^vrc^fBr%%+W(&j2e*Lw0!_O3ll`JSU zeywI)y82m78P5!H-te`|`3!JAq!s6HjSX=wGQN$hf3?SmVzdfD*f7@2+Yv_)s>cR} zvL885B9&^u;q&|-R+(KDlBnVx@%z8(6*f;U)0@V`-gBa zCxC_3>*ISc)8@fpAm%O!3$P^taX1RqbIIt}@9uHzm3I8GS6ZCI>ZI1S z6OW8%liJt&4XbXBWGyPh#5l0Vgju_MMj~@pm`s5D^!h|Dulba?CtJi&ciw_#GI_g+ zOKomIdlLCa#mw=|WZm|fuBTstq56vSO_e zIT5)Wi7a^}=SqE7$MAQ$I8cVu`0Fvw%%M~0pff%QNe6toSC2zP1*pg2c0+s4htF0J zCs*nz#dtu(7lGucoZ&zy0oW%aPKJvt83BMG3>Fa_6rt<|?DRV6j!`AwT!RfS2G+)>FTby=uuvD_rFT<4kWr*keS)tN3e!7>p zKpvJ?>0W+^nO?;2KzCFm?yVka)BKW)Z9%xkT(L$uYLtsL)|e%T>3&l9*2r;7Q|Pv? zIz~5@UY{}I*AM6%Y~+hH0rZ^{)tqAA<(u73Bfk};R*%)4(rF+!NBmT+{52qcjhuR` zF!3CK5rn^tYME#EYuY`I2P4GhCDLB`JGnq^66Q$zCDCJBe(Nw10P*rvBd|+{S+s*SimEX8)Tc zyf;!aQp)WAZ&Ll<7;VjKID34J{QbR*_TQY2w))6m*DdVdiS6BP#O%^*j+`cwT_ZI6 zPm^j_l5OK@s_&Pe@0Wt5V5j=@WhecX{g?mHzXPv^v>(otpy2(QZbzjfzJPcQQ@!V( zK_^G~s6>XE*x2hP$}Q>Q;KMDfw8Uh{P3QtyNfM$r5@{1Omd4#})v`&|B+h9yx#e;- z9ex%--Ilx27D0vKd%(6!k{sfn_7 zd{*Phj3s$IK_fFJa!rXc3HIn;5y>*NelP{L9ABNFq5w(fK-*Gsv)YmxK z=on1Z5+Ghh8y0P?^ZaUrDNqNSp-w8TMqLEqFJj$uD4l{*OGGIt{6kgfJ*+)v{xFiY zokXRRa3ci;^FPe|Ii${ssbLYR45Spu+y0@Jlp+;L7WBxf!MPgGAL`&BsZn1$g+&fbTosx4H6j&2N@3z#q_{dPfpwJmGpE#qem_gL>v#&C%c@E3 z1*v3^N)}1I6T!v~5Dt+OACmd~q(#a$sE$e;qBL+Kz-Ni1%0Vh0seCcD1SzHL;V@xo ziu|92FCO67sQ9fQVHHW3Pth$X{TZw>V}$di0&;n9V+Axp5Yl%E$JXwl4J`;Sj$aD7)jbcJVR2% z|Eb!#{RuYt#|pCQs&I2*SRK7|I$!X6l5n>+fR}PF;KnBy_-!8nn#w zi$CEbodU@?=qb>--V)px;E;~qvv8b5t^f9TZFLxK8{rok46+>*cMq=CD};AkNBEU6 z;myC3@EUI<#xK*s{%M{hnLJmc<)~)m;?Zw(e|}iME^GM6Nn3x2_BP zir2TUskaRI*jaMzqXexBs^F?4#*atJ(c+IsXwBR3X~j0O-un5tGNctW}iqm~yGHN0S_l6MtlceOq0%QI0wA#=jfZW zL80qa>HnXv%42{|#z7(WZ)Afvr8s2#;4;H}MeYtC`f4^dp?3X!$dy;v<0^xwOU7|0 zdN4ZohULU5*Cc%oCZ$P)=;4=SfyIFcwM1mIfWD3;myv}BNAy=Xv%)Vo_1`)Zel#$8 zCT_FY^)td$$>#@q8D$3DPQ~QtlA&Ticc?7}8k{#|VEUn9I1v13Ut@!+oibg4rD@e>p`6T^t_xVzkb5N{uTpFH=5>3I| zwxymt+~v39-6*HK#xoRDuh+`b8*AmR!=*OmBZ@WK@QKAXdOv?hhR$m86ehvbAU>?M zALDWVwqe_X!tN7h-iMS=Ozk?+*(eV}TDlFTXHj}qEPeR|J^b%sP(wH(Al9BR4-YM{ zwE9ygx&xg;Y()gIGNhEUMJH0osG~g!m7Mz`pbI0QCyAJ)rJPb4i&BNrkw__Jcb*_4 zj~b>ah;NNR+$REYk5-5~MPPf%s<=1J) zvMb!WCHH6q! zs9o@>Ir$E$P?-&E3%;@j8N!Tg1%L>k6SQ`Tf|XZ?z6%&pe{h!K33o# z_K{Pcv`m(^^7Q_o1=E{siukeQ=3>H^*D|&DfiAWGPQ(LtZpKtf#+g zC{1c~(=RWz)K@^SIAmMoDV>yjmSzjFhTDSA{DuCu5;gThO+jA8U*L`_uE7a+tEQlA z@n106#lDEiDkNy+75^pNuSngGlu|Zb#NSgHqJYT11t6imMRF`s3PU6RLQKcHt2i7K z0o*?VxG%WjV!JC-C(w0^fbSFm-vRK3R`9=lu4d*Jq`-^~e})0skDs?V@ufs`B#E;T zRsJni3Dx-f=M7j5=xnYC;TRx7Ll8KRAf=Rj{JBc+QThiFw~c{-CsRD9%>x^ja|+s)eenN>d4LTFwGXJ}q?iGb%qaP7nFq41;)ksg z5N#FNKDgdiP{w5%Yy~H_0^T0@@Q)rLUpMGZeLh@M&6D`Q>`=`IkNug>N2)=D8Rnrs zn=y#Y9&_tKgtGhoOn&)Gx@xf)`RA~Lp!iOtLJESE>CY+!K{^Gc%EXw6lrquu3KNZ+ zql?~;O}bL1|FbO1kY#JTiEl5m{MWm(EdBD$s22nO|m9S(L?qKYm$;stVw&= zw!5C08kEVs@BCl2MY6MHwUC&p0W;1Bb)h6=7ja&~(+o9k3)H35ZEaIq;v5zj zl~&yE;tDD)T{0SQ!CF^YUdK-7h}BJuClc6S$=xSz4Y}VgV@uul7_Pm&j%#nP)0811 z6^E4M`J!bp_%TcA%||2PjUqgAjOvP#Zuv}I;{sAj*>_5r4d{f=LsaG8~xPpmhRg-eo!O>CR@f7Q-5WZ{Bx zdLxvRl8~9y72}Q`UxWrC2v4TU9{d>UK$wN>S+A3;Co^m%h?cy5K|GpYm)h01Y#WZ9 z3bHM68C`K=ZGW9bxEOKZyCPL~ddTM=)TPtdTb44Fd@q9wGiTSZ6tZ+3yzBc;g2zomyv0_x^9e=55H_o6X- zU#EFPKW*&>l%_sfmI8SB%uRABHlkjmSg%(Y*J5R-pIQYqa33Ca8-U7v>X zG_m-#Psrjgy6erzFpC-MJ|Q(L*L;*Nf#goi^! zI#i@HRb`S$C8lUuepm{HfG^yRyhntbR%GQ?&k#YY>5C5(azWmqi?d^jU>GUC6_0*BJ4ePI(kIF_oxQIqnY?t_2 z-YUJc(FH8@6@h?zweE>lwdVm^g{_@%UnBYDANXw|V653rO#kc^GAJbEsQ{OZ2q~R} zv}A)y>0YhUU0T7%v`T9l@sLc&oRBbF{!?W7f(;pxWg-E5+bYess_>6i>EnO$qWxZc zo*E77g@mma3EQDR(d(moTQRZkPc2UBQVt5*Mw0ulLal4NhIefz+y1pyj%J)rFI2PD zw-sAGTCveNf{naZY%qXshRB<@lf9=$X!UPkt$u_2a=O3GgsABaiP?ikaf1TsF`=}( zReCqlYWTN~CZb`g?iHMXP%F#kR_Pj~)$mmXM=`sKx5(TW6uZH85f~^6F|h0?bt2kZ z5n0>{$^4^Pb@b*SEnQFeS98r^9)k<35AHfYg zu(9(E^5vH%?J-1;y+Pu?O0oqI4TPB63#h0anDBN;(yK>WUB3MYof4%J6$#>HKuG5; zQko#GE`R=rJRs$rFddKwz+I@;0MQp-j!OnU&(2oJ7aeJF(i@mTVgC_w`l~{%VTXn{ z>>xw^Yvt%sfB$@Wrl1>mI#|{G96#I^{i%RbbNTUMbQ0QKw1Z^vLpd3tJd5Cg(t2$L z$}4sd)0y;6(#$M1*m#&MJd-8=XxXka2`O^zth$3{X~Qo&2M(J3?t_X0;QX2H+WH;% z5rG{fM(C9w*Q0B?ySKC&$PNTz7BaPdaNyrTmJ7zv5-f30`A6AjAf=Zht>$p)AMqPM z_{qh{+y#JQ-o!n+H>Fw+w5m1Zk299IpGo;y-#z#~T0nE)wxwe+&v2 z{wjU;7I!;n z)TO`Na}`aw`X)K_P0np8JMoK7JFhsi>g4x~jEPdGocL7g6j$i~X)^fSzA+2`Pz$_U?+oc8O-c8;xp#sl63c)sC0iiPA4ELT{;b2IYAAUQqR(`bcylX?gp9j z*1{o^zcu|1$(5i*B|FKEZ;eyclH1+8CL}o*09-pI$<>4^^$Y+mSuJp%{sf2 z7`_{0)^E0HJ_eJ2+&YpPees|O-A z`qBXzhvdSPaD029)F$#->dv!r(G-cg1O6#i8UYtFt~O%6q(30l3q7u0lp8@vy@-2} zR+l#%pv#h)wf6v_ERHr@L_~%f;I#vC%jhC~2u!JMv>HIGZL}(+)#Y}P=>!l}H|23a zsqLFZNQ>psqDK&qd>kNWzE2%tLT{MflB6>MFzR%6tMo8XqI+Y>7EXp|kK>>*M|K8{R()GGbK$9D9SLX5qRSi=u0V)5kK z58R~I1UG`<#t=a>2&mIpt%EWh3_Bcta6t%v2`_eYZcJd8s(gdRRUO2xV9Xh1EzmzHVdiM;Z>x!d$gAEFT8A zdRWdyT0JahicGg2mIZ)Pcg=XD)m<}+-A~dlrcPE*5B&hc?1FW)OX90{t8`bS)$kob z+3u+{$^&)AesQ42@6zz`yTpO2|0zwYN>2UBU{fR5;)#^Z2Bg*HYdwUaoJ=$m4Mb7_}t}R2fY!^wolp=q!Yq>OA zD{Z04-b!$j0W6ww-4k{jkZ_sA~nAlv>OrKxQo2|%TPrOCerKI6j>Cxzoz{@QKS;@uie8I zJ!Q+=iUD%**Xd!y;pPHJ`8_m`w&bSCJ`dVpBHOazBS_j4U6lq8zno@n#{KSQ@rrgR zhA&(2W)%)VYEdYG?^#nSm=-Fvgg6 z!;yR77gq<&Gk1YUPE8ll#F8=DnF zYe#2JDFBZQh>HJ%V*#3rl@j-D*?pO%4 zC3n5+VfT3OL3!z6%G*y{CbdVA)LiCXe84YpfG<32hYe!y&=z`Q`9g1P*&ufK^pbkm z-}Q$?2QYKyUs{G~ZjS>RZ#Hu2t58xYgB(UUrp2XSsRaK+CBi{%9-ja`Nbu%^sc8;9 z{?wVMy<`OODvKOVxSYpqNfuKy7*k`>xhr4^yyy z-&JYP0TOH)xxIxw*d9cL)27b|c~&>uYBX zWidMf0piPtvi)r*>!bOT^*R&7| zjeu>ePkjIKqtOci9sOGme3l4Y4fO^%avM>v5%r#%dC$yjerJ6y9tGT4ADzKXcg&o! zNmn=lSOXqPt-X=fXY@yVl+^aUlO5FkQhi7MQvD;QBgNx*{X0xa`%EqV@0)ukJAxf~ zbD_><+T+2pY48NpFj*$8K01CphO#2$+S6HV%FO?Ukqgc_~+WKK^lDgwh4P%E#bt*nYA9!UlSPYEfL$$_{Y?d~@ zu>&99SUY7En zZ-*H(oY`pUWA`)Eo!XQ zj%L$x+QQPq)X5}ad7F*II;;(>wPmB(p_3IngU<$ol;T|G>qlvAd|8aYJs|FdEIk8| zsN)6Kf@sI;=-7CfOF9k8oYuCCW>fpbgX{Q%^t?0_!$Dc+_({MJOZhjCVY_QXZJ9NO z?K3X^;CoXkE&7cy$7aTKO~{;j?;KrBhj5!Y$20iyHvZsV5e}^su0n2+QmXZiVP_9j z+9S1Ptf|CuUaX6j00Vw}0?Kn;-NLc#h>Yv&mRcy)4@9bXT<$uW`wop|Q#9R`IaWQx zzL?8eq0~8i<{?Shsp@Hvl2i{5DI;HA0x}O#Wz0tp=i}#kbM);JI+*4%(lDX$bUvDk z$@(`y?Y%7qq4vXEc9ymfH3}Q|B}`z~v7O4{^eR7u-%2}#Z!izlHsrC!?y~?eOGK$j zpd_qFTN`W7=doE?#f@~rjp2*&JHYS*;28kgX;Rl1@d}oBZFj*Q~UZ+qJ)&|5AGrDA?X5@k?9YXD^6WKmf^U>t|LpldXCOO99^$?gg$SFKD zjp!W9=HM4SI_2>e?8SpGWYo+A^{o{k8#ePY|p`D`ykdx$AE zV-C|+X@d4@{}}#i|Ju3vY_cq->U{P*``=c8&6C;GakSsEytLn>Ud!@QLx4^hbVXA7 zEz3)Vs>gz>KZ@lJtkZ?GLuetb)fKQN6)p|x()Ee<`i*dLz{Q1dQTh}Yh2FQSfbFEQ zS-hK_n|GhuZP;D38xq6o=SA-uHkIU#OnB1t%z|v7ri@c2v?3u&Qd-j~1-zA(TMNcGM$~R(T>`~@T2zBUMpgYwE2kV@2Q=2FP6Db z{_=a-965gIUiN)CzI-OT?Z5Tc@cUpe%{s(a4OVuY)`_@tPi?&wv%C{Ph<|QnlgI7d z^DIjC?qL|sd%Bn6upke?JhgWZ#^j#3G54A#@SmalvppItpt_gZVFAuVDh45L%#;i) zuqZvbr#5R2TVy=D$NL_>1l`j!qjF}}H-8Oo`Z^fQ)eqz*@t5|*BGkI(u)VaGQ2WxJ zeLlolxiNvcN}`r4W=C*WQRC{K_OObEuMp@EE;qDa{l|`;upPlYMSRH{qUzEyHGd zHmv-6kv0#%a~P&Xhbz@;s?KznJ;-#+kVcSEtS^lTibEO?w5~+^ z9)|?4t!=-6?VMooN<)#;$0n=@?PR~j+85YRL3-i+)H6%jBGfU5 zb~*dbEoDE|{-4(FKdP(y%J={K&{MyJ7)q@%)=)!@5`x5{A%uUM~jEOnGHRIK${YP}BiI!YK98ppAO5NeG>2%*L?))H&2b*wd(F^<=9 zz7J;7wR(GheE<1&t)1uj`F`*H+WY-J=X1`%4yow4>AeaUuCGQ@K3Q4#Z@)P8Z@>Rc ztH?X z6uXwwIH5LLF)?Fu2vb=Ro5jl50#?aZv-NBl+r~Bx+Py^Jkj zm8^Q-E9;^^jX%EXi4ZbohLHFL=d+>vCcYFs9o5u79m43+|JfFPxNQy&e7L;&e{#ghn>tII? z?mMtODoCtpPl!V6hqmM+QJC?e&Boua4=xXGA6#GR*x%d2!Sim3!ttR|D8!v?ko6yO zaD8y!pbc&tTrd9vn|Vw0V7UB=D3p%)56i_FAKJ-VqwxFn!R5j2gX_tEVApQlci?ZL zZNqOXX^%n!>tnxP#>UFdXl&ghoA6KIwe`H%k%?~20kAG1OJfep5h(73oWx_w-V zLkExk_rnf0C1eP7=br9_Qi>x{;YYW`6aes6iZqww$c zGQQk+pfk!$X!)1MvpA&rUqeWa8_#z}qm#z!u7d548mGP zCYm$!V<{WrAABUF+ScUwPW!9>H~Z6U6IjT*qp`j#8k2DHj>fhwE-XxIJT|z#{L_us zy7aT_&c^f~M`J$PTor|lgRa~@WD9}w|GaUr%?TMx8|!}@-Ca{0!c8;daFgM4(-K^T zYp?+~;SSu1`|%(i!EQW>{df^C$6;_tB*i!kMUt@&cgY)0GHx2ti|=X z6}Mq4wqX|@!4r52FXH8zINXvD!YxB^1dhT?oPblYV5l08qv9Du zT62h|?TVw%^oQs(XX5Ctb0NCx3f>4&MjS_XJL~RbOvABplvx;}%wn8_^YAiWjid23 zBSJJj)xsszK-T6EWi?|9w#Cup`VdWSLLE-tjaNf-|ByJkKN*MPDy+p#xHXRQ4}~bd z15e}mIC>~EL=R2Cxwrtg;SM~7_SY2b3{gRA96ijDhezR5oQ7+09qz)tA}$f}e5}Ii zI4WKoqT=Pa8aYthhB_`jh9~0a@vIO%J{2kUIK`f53egh+c%mIUu^0Q}n&_F75Ir+G zj-E-!tT=jB!_R8?+4Z;)51elYoy8{RRJ!< zN)k1bNDVxpgPC&v%y0@xQJL*!EtFYGnbnjSMTs<2WaY)U3|HVmY^RU_pA+B<)s(Tl zQahDuu5w<8k}4HNrCd~=Xv{kr{otdOAq=T%JaaU9vBpgJ|D?qs(M@1tE}B9TO(BU! zcA}9zHOUQOvh^zK)p59KWC%B<8aMt)@mm(+L2Sn!?2CiPP$4-d4j(sAKW?B7n-#*a z*>U)Unc)*=hT(-SB}H+#b$tl8)|;AcHBxUiQg7QB!fl)5;Pd7%vN;Z;%mAaz0JpnS zyuAcXCAYW6VYCxRJMq&T`!vVy90=jgt8utHH-x+M;*hz>t;u3Mi|6Ao-rPIh+4P))O3G+2={M{LvBk5xqIXAxs(t-Hyq6jpDT#N119AMOv+Px zDA5;(2X*|Qjtf?K0<xd4kJiDg5FGDDa!Ar2Fz zdSZ=S-G*VzV1#T@@TZ(jq<3~7tWCG=e z*shjtZMDA4UH?d)Jeka+VR85*$v#Q4Cy!Y_p$JnH;cyiBD3Om6@hB1B&Y{~mbbA$6 z<7!-s9oQu`97^R-s_m(^r=Gx5cm=P;;Zubne5wdb-1UE|)WULHiCeG<4`GLD7r|%| zj6Q{@aR9Hz;f~Z0?npxp-NB)>el>6=4&!FIX`UU2jC{Yb3awXLUv7Ps^)=SptRJx6 zY<-vYnv*v4+t6)8ui}x*bh*sbK&A#V4`RDwvVXk&S!If89@?H|`#n-{j}+Xq7S|yM z@8RHt5=ADk3GLX4eRv$NhwzyYhtG`0F~s!3m#n!e^G^GSuK_H29evxD$J@ z4=>{7IAjkEAv*=LFdL_00nWp6T!KqcJK5UFrc^eiCJJDp04C{gQmOGji8PZ)b8oXz zu*)boXB1p8K^S)T8FrIfLzvuVeUA0H_N)FJ)qmds>xa-Nxz8w>Y*k&)~T@c4|C{Y4i!+arhtS6qNj;UCHGjJA)=wT5(yak)^GG2*8;jj=2M_@W;qT>o3 zSLnDx#}z8pLd9CB-AA9NXg$5lD5Iu2#o#($XxN-9Dqsl1JzSwgzT9 zakdkmCh^n5aV%zF8O}o;Kds}ZMf$WzpH^E>tF5OSa1(CB9Vn2e_hQW<3mq1YVh^6c zQ)m=CZ4^9x1+T?HP@yytNnc9(QaLP@!>1|tH0Az8D*i+&o~;ex+4Z;!TTm*Vm5OIC z;egt>sy432;W?>%PAY4jlcNQ4v|uErBFPqzY=KA?h-ATXT#5C#5v62-lq}G|0u6kV zBHyIQHwW;l?b`cO?Jb<*>DN@G=t7Dv6xc$6ElLexQ5qh>ZsUIuj~4Oh`K%D0&&F9e z8|$zEMe@8zo_E6Y-FO<$#-SoPgoF%E zZE>iq^cbuv4qv9&mnrs@k`TU9YW#oYfQ3WYfn9hJFUO%;2h}>L&P0k-tBGngQQd^w zQ4Xu+@T)^Z_-YDj@T>Cl)lIks`|x-imIcr3V&v#DjxKZjGRH5Qf;A*sw$;M6IDD-r zgs&CH;XiK);XgNFJ9c6(9*e`uvmvZJk7{D2n)rHF2w%^}={O?}|3#7h7e%^yr-y~R zM2-H!TOE387~|E z^;hEXSETtX()<+(|B8eSvpq_f6Nm2_F5fj=w#eNUx%)23zf1BhE3B_V%59-slZKl# zyhY?&ME+m%Lin%wao9RMgsmgd=-6s>Y@LLY#KORI8HHql^DIt7+IBMwo8v1@UE|0?xMuhN#QMek{;w+qv6+#OL6#NP6$8DMauk;GCw?lr|iFK|8?sn)=RM*7aIRRB-sy1_SZ*r&>e@r;n3f3 zsEwp;ByBr|r{l0MF@$|XaTTt?OE}=q4Qo9pT8}!|uY*^{gz!o_ZpN)~I55Psz9d|N zOXJYK(UYCcxEJ>u|F7nU@M>WkUOkFEad<<=Z|L}q2HX^fqiG==9UF)4rVzTf<00&b z!<*AXcymS^dMNl%6RLzko9GS|2 zS1R|`$mL!+-z(>B!#OY#r(ywa!Y$Z=T_n#U zc{UbdvB+nOd=9R})!2${*p0o;lZrN}Xv@YN+<`lBFYd=4#H89!s{QBjVjK=t zhj3_l9A29l!fPeC1eYQSUn5~>k|%e`XjpY-;!>2d&U)O4r|~S_2;udFIJ`asXCWnD zr{wDg@DLs|{$D>~LC3G_xQj$xB@azcBj;z62+>BeX4G*B=Jfb*{ z$lVdSdm}>)WMLr|AqC%{;6LmR;U8L&!~ekHZu`6K?^aXYYN}gJbgPLzsqT~Nz8VMg zIpC+AA^h}k9F8}6l)fEXa4+`b8N7r8arnpN5dLu(j>U{PoTv)nL^YEB1nEy64B=#Z z9Qrxb&!P9E>^&)ak7Ms~>^=Rwr=R!E;5p;}bZQ8v)8g=p3qIty6o)fILpYOy6gfkY zvx@MnB0PH-kH+ELPX9{fZWQ4;5&pV4gkSGM`+sf!MKy6zOq-*3lG)h##sF_`i4j-z&zySBwW6Y~N)4ko69uNAbO; z_+FcYlW{B7Y_o8{!XYH-Yb1T`8s0E`rW-~xZ~-nt#n`DBJA3h%QDc0+o{m$o0Ok61 zxqe-WUYDXS5q6D29d_xkYc|foCAbt@jsLDT3*9#K8a`=;&sfaEe8c9b;nRcX@Pg{U zuF8XI7s(qU>BjCs=3uTO<;Zc49G`)+a0RYHjveRNuXX%u9sjx>H>!n0#{X|SEQtKK zr$wGG@q=NkXV=UZ5eOL%7D`L&7Xx7{4-<-lAH*#Fu}T+IOycZ#@kHLgW9 z(Wxe0FXPBOGzwlf3SPg8*EymVy3|6KK)M9-<2f9fOG%C#;mDDiA`8V9s&P3s<1Xa! zkwK3q^LPr6XYqJ8M@4pAWXF53&$ur!?n_bRCq(}1{Q@{>*g5Z_^Yj@mB^q5VM%P{r zZ0A5TMJV?Z%GLZshncF&gs|0wu+6yE!8slLb|?i>Tue0Fqv0O8>yf)2Ro$bidoyW;n;yVyt6)pcNEb(N3jR(f5-lJDf2F6-j%v{rS4tFzw7vSyYPsB z76{1bIky?NQYeQ)xmbdO_x~4LN!5mD@w~`aihMOT;dT-hlW-<3$Cad16Yr~u_gCO5 zj#hEBS_k%@v)?~)5H6~LzINL?P3^(d9%Cw|;dKE8fn{M$wuK@KYT%d}IHm@En(V+~ zI2-36&wtAEpZ4P!blguJcPz#6!?6tKQA7&gk-~R&V=D#bQ(yruL8&`w|4I9QT`2M* z0aCo?w}_(-FLO~u6Ewd#vI2DbKD5~=MIkl`F1qfv7Lt_d6TY+V@=H&xEJ@E+l}v^8{ho`>K9P|RlKgq7b@}!>_f%*i|fY!8M!!p z(p9kEhFPwHipgKmgfk-kRdNWw8Wx9N=7#XgJe2ES%JnZ>a4%~3ml{5M+|}`<;~N~m z345?lO$<>JNjMWr;$Sd@^D(C2aI7KCdD5I;i|eo(d*kp=^&$MzM%3^>Y52kxuiTsP zG@gyaZ+3+6o1J(8FF7vJaYJz=reX$WIiA!PNPR(SE=bLVNjTYgsm@C?{(qwif1?P0 zlZW}Lw_Nou#O>Iu>dRF9Jd~14QgX>Cxnz{Q@4WY&_x?%jkHcjVT^7;63SWw>io*vS z_<#cgTdX(5QNrjDC3u50^k|5N_QcUA_J`;b2aW%K5y8KR;F{cBle_=H;?_B78*W;kIMuElj;L7npo>OvgN9TK9sNhp%JBAF}Vx$Srs2lrnO(HC{}#Y7y6 zqi{5)VirY{CUlhQ60o2SF!F&$P=fM0*^bX6D%E*(-sA5fsD%PXODnxeI za&PxmqV0ES@GgHK-CpJ$jH5>=_sDtct=2jCi1(w9T(sV1owAQ`_>s$A={F`uQ>yo)=R)}Cg*XgRWJ46$9hW_3zv89Saxa}$#$n9R z5XPinE4F!zuDZvm?sUT~-Ehmmj6q(->mEE__rNiDo@n?@H~i`qXT9RweaZOWJrIXI z*&*!7i9<_{Z)0-f@N#YlFX!QLJQ;@{O%35k1vm%i`faFzb`7)_Vi9)X5xj!e;?Tj- z4vuzg!YwYhnJ%{`uAda(G!s|7iEE>Ys)naO=V|{@GgOb6X@Z$)k_jm`AtmB`T!33~ z8@6L7>gcqN&QRzKh0gR~p9zU$zvS32=i+=5QJ#q?A6MgAJb;G`R{>ovh(pcglNS1I zAk}43{ccqVzgvU*@u2aWVEhh2N(@lqpBIMk&lRY_f7alY8NLIWg(AHo(kq7X6~p+0 zk;Z?jRGyMb(F`$F4>48WVf_y4pDvZkGUMO>MQgZIPR89!gbuC{-or zH>5g2$_uf`^}i)i&WB<;X5s)|m3ujRSnWZK%<^1d zHd5|Y%5~Jr`Fgn?D%UCKGX4{n@i%t3mD`EO@Py|FU7jD*9C2?acinRLCMDja#G99J zz;*qM>-ss@^AWD+qfl|aqd4D@f_J3gRKKg;8AUW-4J}YZQqV62{c_wd$Nf^pP}TyYgB zu4#&DsiInjN3dHlsopE9_sSw%j844b#39oZ({wfCxUr5KcTtU8Ruc!+M!TAzOa^84 zB*}3ymSP!FXb**2s-<|jl+HK)UnX6z6MCKS_FQ+T^K~GnL*&%OCb-yy^wElMjD|;P zc(h_mQEbCCD8fA=+*5&-*oFsmK-w0{zPv{Jwc69}5bb`$xc`Q6zh{i&(!Fn}5lM+i zo?7okL%mn5B1jRzh-|M+b3Cs<>v{co&xmV1BVHeezjWeXI&p)@Hi&G)0$ilJu?~0l znb0VDV5`S%+we4=jl^$A@(M>M2!xS`{a&;$d+( z+#AB-W2$wMYMqSpkz#L_DbjhUnBG)OZ*lA`j=e>>wE%=v$2vK7I1cMGeT+E)DX^Xb8w9dJ zAa!fBTdUpa+MVHHw)4JQ%Q6S^t_;e@&{F=Z3I654Rfs%eQ&KFwF~w z>3AcA6$x=zF(2i4g$7n=peDwer^wQgK^XihI_b-Ss}_O z^|eotuYG3PUT1rQdp>tarZjGKjjP7{6HjB!8oao-LydTdv(MLSv9bbGP zM8#cbz1U5sze|fA&qWSCUZTD2+G|C(YEKNdw?upHoSv=4dhM;#ULDqKvEWm*CssPp zt=4ny;hu93_gopy)8Tv_`g$mz68U{TDa-XqSw8CMAxb>t*6Ja*UIin3Vdk@?f;1e9 zi?Iqf;+8miI5R{KXQO+_hnut~fP4Yeqy=eazS5W4^uUF8eV`KIVh1$8>xzhwsgd zpNO7W5Ta)m$I+ae5X~Xsf0`Vk|1>3z=5cJ^={Wk68*WMy;^@x?LbNEv(eryl^nAOU z)FEzChq*Z=X+=XEeT9Qx+1XfeIT|ye$X#-g-v>pu746iib052k*F!X28`INK9Za8q zlNt|Rjy^y5A=VJ1I&r-Zt?GUIveY*)N^|TLSAc6SF=~ID+D|vS(~a)C45qsbri{6+ z2=iSLcDf?$_JPG|A6lG6v%>_lLvDw!3Cu3bW|_ce$KmVx`MQ4U#+nT>OxOndZiBsM z&sBrsx=V)>TAZ-gSlDYUOg!p?i5}G8L=E0{&Syv$(E4rGAI=Hk;avB)_z0G8tb}7v z6}h4mV+od`S>q|Q#xop#hQrTTr+awGAb+XXMEuf83;m{(VWyK2n1*9@%%O=K`sNsK z1Jg~Q%T1swaWihkV|c>6w${A14tHS-w&4NnMDt<;#~L`+Ab}dd?i-l zDqLeiO){Y-V<8sdOf10)tV9#?mrTfCs>h8w9;##W<+mqsXfiIrrFbKRjR|qsxOQ+} zT^EN&o;UJ*Q=LD}XuxLNg%sFCf$x|XzcUQWa2{4+HJ-x@aoC&~!sekk8|UCsT!x)^ z7`4Ay`!B2v;f2*4*us$}4rG{!H)dHl!lQ1Eh@epfo6>chiImwynN3HrM~5Q$j!3?< z5jT6;e$C7F8ye=o3mkYsPG88zDL54=`2r=s%<(UC{L8J_7KbHkLs+sd4lfQqh<(uk zRjRm36))zwS-bj#$pB*Vi9s+ z2?v&J!6w{``>{r3OGLKhES^Uly{MxXQ!x!i{Gy0ol)D$@?!{VMkGrr1JFp8m`XWbP zyo^@_M3E|rR25+{&ckw4OI2#AY7=fT{;PIdXtm)m9>r658s)x9?*H6y{By(c+tcK1 zI#S@<6xcXS%0{3_Hj1QCl{c#LO{CvM`c2Dl1@_|^DRcgJod2C(Jf#z=;*y6;OMfS4DUY4SlrRe3wxCHBQBevlIr0B~O zZB6i=bqJ2ZbS%JWZqT%M=$P?;=(2??eqast11kj&VmqG1ex$^YC~^3-Thg;`HFfls zj^5gVJKel<;B5}Py$aW$hTrDs+aiBk;A-W183BH5$CJsNBwWeX`^P7|Tj9HQVM3jQdEqq(>RoBUE7 z?U&*h_tdl8Q_sdFxKw|+`peUv8mif&h+0I@B7!|fbkL0#@RIG@ZEtojJjcE8Tr9_h zSdGi^03Je-d?1hyj-&gZyG?R;yGGufiWwfnxM*iibys2H8z0;5`ggaBe&#w4VlrLD z$B(tcfyHOs*PL^|;`Zd(Cif{W&gCx7<-4&pjvjZH@c3N&ciQi+pghC&2`m(N0UPIXtH(pKac5e`Z5>b6>dic+=%77LO*oa?Z#2J8$2uE zS;2Iifv)le>z(LE>#-bHclSd@J=V`zzi9oW^?vIbd`yFnjlwbR6cgMj4vC}1^&wj9 zk=9}XEf&yXH)M;K;%ZzQhmX`u4&ftHEG)o9xE|~M03&%m$@3Rtg{z@lO_ZvM`|%*k z^+dUzScz4rC?_h)iO28+D%OdLb&_09lIuxQJV}Zt?Zn+^luR;8Y9`6qq?5jb%WBnl-_D9LC^GFp;E zk|dHO#havflT2VqCa|Q-cqI-u4+-JsBpijKQ9n29=jH;OX8hkg+rk`Ngo|+nu0oRD zOwyZo;7&Y%hp-!ak;FHX_~t8kEe=CPG&C7U;~1QTlW`hO$2m9`7vmCKg*9s|Y_zZ$ zccR=3J%k%Xr0y+9s%BCa7W4aR#G>l60#rII0gp=_+Ui76mC2pt0?L}COYU6gbk;=hT4vxLCN6L`v3 z{v5fJBX{cXP95HP{a$Jboow(ZgpQM3F z8kjT>%aJ0JC^D%I8;~NCC~|L(88H_fcdz5_ZNlw%1iSGnUiYQ=NMDMl;#{1M{dmR~ z<0-xvAC8$g0cT*%EDJikPlxxlVjG^sexH!<^a=THpNtRp>G(+0@%=i!U!?bo^nM-R zujBi#;5EPbIGD@9+!eSAn{gK&!xK1wSA9vI;Y;!?ykz`;cEBg(c|IY}M@meg#1xTD z5!vSw{RPNSoQzXYv3*Xl<%uv)gn1mv<47LI^EjTTgFGEPFv1t*qfomKX!n7oxC~ox zuP@BAd|{rARmT6+Y72*LIO>yf#q*%zd9VnJaS1NPZtTTtc*9jO+f^~g7v$4JaG4GT z6fB@%;gt{yulZ5B%a76)&&qJxAdle*AABeI;5!)==c9`A(N)I(qiZZU@lhuh@vMkv zMYC}ZZp6)a0#Erue7G;fN8(g0KvF+O>c={;%hP`mP8Z>H$4__s=SO)+HySDRc}ji$ zAhzRKJRgVRn)DEgGc8o(a%{$3r~yxS!s8@-oP>`r#0uPuTk(1bGeR6@WMCG~!r54l z8}SUD^U3)HpPWxZ#rcHdoXNqN9Q=azzM#FDFPyZ{?;Ca1I!m?AYQRmn4R@g2&XU_% zeR$m8$PDo}GD#=}PfEd)QuL%0Jt;*`N>Pc3OGKPV!9)rsi#S=tDcVcX-mo6mfId@o znyGrM@qgQKbM#4b@kLYdWmBn!Q#G76%}hAmOjls0n`Q>%KspD;Z!w`XnJ*}jMTvVB zm=6{i_mhnK$;S0e*QZ;Nhwz?YLAZdcDUK>RZQ1mE8dnlSr(P0!FOVJF9lK#%I6m2#B)7wZ| zMbc`LD#9#9cn|6BA>D)&k`5IdGM}Z)=T?(+Ek#dK zw4aixluW}~Tu)JoJV=p;PE+tK1uKpJM@3R(7!?f;Be{G`Emk#8eO|DF`ZKjm)sc*sD);=uuCmaa3lpkxx@|5Qa3be zW|W#4eEt|xWADIu_9>p-k>$=LTd|B#ETeECR=5%2(5E?cCyDPIf#tZ+4aj^qAPW@J zcEhvT4F+lNBJJHAzMI42rF6WMjwk(i(q}DFV~g=9_89;7knA3k-Lna|D7pkiHw1Ms zK?m79&F1OEk%}zBag$;ksu)ugBL#CPc%OFe)6V2xSIuLJlSB7&C|C984pXFx z?z4(+id0NlqF9$I)@8>3RMJl+{eu~*GYj|Pe&c%YM@xe#XX8RNf9UGI;^R)aKu8ls+OA> zax+7&X2{i(PJGgdPjcu<4wXqknG}>!q>Lg9>|bF2f-;P_}iPfA{$hvis}%drj{u-W*3m4~m2@Kq7MQR^M` zdbIw=;5y0PAlVyd@El(EWF&Y(l88gS!ggG@0^m>^huT&e|81)+T*fOR7$$-dSb>!&NBg8`pV6_;=-4O6`{a0km5+9-u>m*v zcz39ecT+G6vvD=9MMe0EB7DVge8q4)kV2W^C}jtv>_E+O3oAXVS?O5~N807MeLF=u zDAI)&@RDaYv1d1ln2Kqbi+NaxMU)ZI8zOo`J8x*`=m-jp!h9^mQY^zttirXp&iFqn zf}L>VHf1 zzm<(SScJvM(YHAImRfjgx$*zjY73<5<#8{Md&gipPQ?OrVy_c>m*7(5XfH>5x8V*v zfQPUPkH~SK93RJa?8FMJ^gZ-4-$Sp!HCT&Vu*vv;yUlaD0}kX!D@XQ=c)y5WNszN4 zxEM_suV~;E4ZLy&&q)=f+9}np!*(6EOI5p6y&6kdB1+Y(QuS&EW_dcs@eeru0mVO{ z_y^~)=AwlG3s>WC)d^Rfa5WF}QO>TG#nGR6HT7qCiP4IMtb$dtDpt*wvz3X_UktFT z?0RCfHn5l_vY~7pt78pp6WhX?*!IMzW^IdwX10s%X9wBd#HdyWwQHG^Yn@!{a=!sVzfbL8+5ioXB%|3Atf=Yv%StSFAbn`>lQNo)M>v?+b`iuee8PTvr(N+ zUMgW#c2=-THn^;#I-S&Upss;!VmzHHj<^XG&YuHuq>9%a#$|QWBII*6|rJAla;bEHjkCF zg{*>Avg*W|=%wWrREnCOxSOeR{wy-9)oi(#vtcC4m2U$DoWQW;N*29joldPYe zVdvNdc8Oh0j2g7xp#6qTHU6W61|2l$pg|)I9B9x{gN_<>)S#n={Y+;KI&09`w{uu7 z%VYVhFfsa`^S)Qjma~;?HCvk)ZL@z{2`gn~Y#u9T&e>K|th!ZqyL`BhFZSFu38RkEE~yES(@$FF$D({`hSnD z47YL)Ggv+=X63Aum9cp&hZV9Cmdo;35u3@fSaxF6;rI^6cR0So`5oHnu)o7O?Hp^@ zPkSokU^|D}tK`3(C+&L^qgMxaI=S76?F(52t7IB$-@>-DX10s9uqF-Hv4iYfV)UAJ pUdv{jcx^Rv>}!4OdScX>%JP`DI#)7nb@s4<#Kh=zp1hv-{{q|6Y~cU^ diff --git a/slsDetectorSoftware/jctbDetectorServer/registers_m.h b/slsDetectorSoftware/jctbDetectorServer/registers_m.h index a178f8bff..74df139bb 100755 --- a/slsDetectorSoftware/jctbDetectorServer/registers_m.h +++ b/slsDetectorSoftware/jctbDetectorServer/registers_m.h @@ -139,7 +139,7 @@ #define FRAMES_FROM_START_PG_LSB_REG 36<<11 #define FRAMES_FROM_START_PG_MSB_REG 37<<11 - +#define SLOW_ADC_REG 43<<11 diff --git a/slsDetectorSoftware/jctbDetectorServer/server_funcs.c b/slsDetectorSoftware/jctbDetectorServer/server_funcs.c index e4551b3cb..27b516fe5 100755 --- a/slsDetectorSoftware/jctbDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jctbDetectorServer/server_funcs.c @@ -131,6 +131,7 @@ int init_detector(int b, int checkType) { //bus_w16(CONTROL_REG, SYNC_RESET); // reset registers #endif + prepareSlowADC(); // testFpga(); // testRAM(); // printf("ADC_SYNC_REG:%x\n",bus_r(ADC_SYNC_REG)); @@ -1222,10 +1223,11 @@ int get_adc(int file_des) { idac=TEMP_ADC; break; default: - printf("Unknown DAC index %d\n",ind); - sprintf(mess,"Unknown DAC index %d\n",ind); - ret=FAIL; - break; + readSlowADC(ind); + printf("Unknown DAC index %d\n",ind); + sprintf(mess,"Unknown DAC index %d\n",ind); + ret=FAIL; + break; } if (ret==OK) @@ -2234,8 +2236,8 @@ int set_timer(int file_des) { retval=setGates(tns); break; case PROBES_NUMBER: - sprintf(mess,"can't set timer for moench\n"); - ret=FAIL; + sprintf(mess,"can't set timer for moench\n"); + ret=FAIL; break; case CYCLES_NUMBER: retval=setTrains(tns); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 7565aeaf8..273b8ec02 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3955,9 +3955,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (index!=MEASUREMENTS_NUMBER) { -#ifdef VERBOSE + //#ifdef VERBOSE std::cout<< "Setting timer "<< index << " to " << t << "ns/value" << std::endl; -#endif + //#endif if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -3984,29 +3984,29 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } else { //std::cout<< "offline " << std::endl; if (t>=0) - thisDetector->timerValue[index]=t; + thisDetector->timerValue[index]=t; if((thisDetector->myDetectorType==GOTTHARD)|| - (thisDetector->myDetectorType==PROPIX)|| - (thisDetector->myDetectorType==JUNGFRAU)|| - (thisDetector->myDetectorType==MOENCH)) - thisDetector->timerValue[PROBES_NUMBER]=0; + (thisDetector->myDetectorType==PROPIX)|| + (thisDetector->myDetectorType==JUNGFRAU)|| + (thisDetector->myDetectorType==MOENCH)) + thisDetector->timerValue[PROBES_NUMBER]=0; } } else { - if (t>=0) - thisDetector->timerValue[index]=t; + if (t>=0) + thisDetector->timerValue[index]=t; } #ifdef VERBOSE std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; #endif if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { - setDynamicRange(); - //cout << "Changing probes: data size = " << thisDetector->dataBytes <timerValue[FRAME_NUMBER]*thisDetector->timerValue[CYCLES_NUMBER]); - if(args[1] != -1) args[1]=retval; - }else{ + args[0] = FRAME_NUMBER; + retval = abs(thisDetector->timerValue[FRAME_NUMBER]*thisDetector->timerValue[CYCLES_NUMBER]); + if(args[1] != -1) args[1]=retval; + }else{ #ifdef VERBOSE - std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; + std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; #endif - args[0] = FRAME_PERIOD; - //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period - if(!retval) args[1] = timerValue[ACQUISITION_TIME]; - } + args[0] = FRAME_PERIOD; + //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period + if(!retval) args[1] = timerValue[ACQUISITION_TIME]; + } + - - if (connectData() == OK) - ret=thisReceiver->sendIntArray(fnum2,ut,args); - disconnectData(); - if((ut != retval)|| (ret==FAIL)){ - ret = FAIL; - if(index==FRAME_PERIOD){ - //exptime sent if acq period = 0 - if(retval){ - cout << "ERROR:Acquisition Period in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; - setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); - } - }else{ - cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; - setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); - } - } - - if(ret==FORCE_UPDATE) - updateReceiver(); - } + if (connectData() == OK) + ret=thisReceiver->sendIntArray(fnum2,ut,args); + disconnectData(); + if((ut != retval)|| (ret==FAIL)){ + ret = FAIL; + if(index==FRAME_PERIOD){ + //exptime sent if acq period = 0 + if(retval){ + cout << "ERROR:Acquisition Period in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; + setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); + } + }else{ + cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; + setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); } + } + + if(ret==FORCE_UPDATE) + updateReceiver(); + } + } } return thisDetector->timerValue[index]; }; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index f26f99011..8407e9aca 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -791,6 +791,11 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdADC; i++; + descrToFuncMap[i].m_pFuncName="adc"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdADC; + i++; + + /* r/w timers */ descrToFuncMap[i].m_pFuncName="timing"; // @@ -3859,6 +3864,7 @@ string slsDetectorCommand::helpDAC(int narg, char *args[], int action) { string slsDetectorCommand::cmdADC(int narg, char *args[], int action) { dacIndex adc; + int idac; // double val=-1; char answer[1000]; @@ -3866,8 +3872,11 @@ string slsDetectorCommand::cmdADC(int narg, char *args[], int action) { return helpADC(narg, args, action); else if (action==PUT_ACTION) return string("cannot set ")+cmd; - - if (cmd=="temp_adc") + + if (sscanf(args[0],"adc:%d",&idac)==1) { + printf("chiptestboard!\n"); + adc=(dacIndex)(idac+1000); + } else if (cmd=="temp_adc") adc=TEMPERATURE_ADC; else if (cmd=="temp_fpga") adc=TEMPERATURE_FPGA; @@ -3893,7 +3902,11 @@ string slsDetectorCommand::cmdADC(int narg, char *args[], int action) { sprintf(answer,"%f",myDet->getADC(adc)); #endif //if ((adc == TEMPERATURE_ADC) || (adc == TEMPERATURE_FPGA)) - strcat(answer,"°C"); + if (adc<1000) + strcat(answer,"°C"); + else + strcat(answer,"mV"); + return string(answer); } @@ -4001,12 +4014,13 @@ string slsDetectorCommand::cmdTimer(int narg, char *args[], int action) { rval=(double)ret*1E-9; else rval=ret; + // cout << "here!"<< endl; //set frame index if (index==FRAME_NUMBER || index==CYCLES_NUMBER ){ - if ((myDet->setTimer(FRAME_NUMBER,-1)*myDet->setTimer(CYCLES_NUMBER,-1))>1) - myDet->setFrameIndex(0); - else - myDet->setFrameIndex(-1); + if ((myDet->setTimer(FRAME_NUMBER,-1)*myDet->setTimer(CYCLES_NUMBER,-1))>1) { + myDet->setFrameIndex(0); + } else + myDet->setFrameIndex(-1); }