From f1e217b0aea144cfc218d393590967991959514a Mon Sep 17 00:00:00 2001 From: "Daniil A. Smirnov" Date: Fri, 12 Dec 2025 00:38:13 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + fw/Makefile | 53 ++++++++++++++++++++ fw/PLCpwr.c | 89 ++++++++++++++++++++++++++++++++++ hw/PLC_ZTE512_PWR_extctl.lay6 | Bin 0 -> 86370 bytes readme.md | 8 +++ 5 files changed, 152 insertions(+) create mode 100644 .gitignore create mode 100644 fw/Makefile create mode 100755 fw/PLCpwr.c create mode 100755 hw/PLC_ZTE512_PWR_extctl.lay6 create mode 100644 readme.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f41fbe --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/fw/out/ +/fw/obj/ diff --git a/fw/Makefile b/fw/Makefile new file mode 100644 index 0000000..79bf108 --- /dev/null +++ b/fw/Makefile @@ -0,0 +1,53 @@ +# Название проекта +PRG=PLCpwr +# МК +MCU=attiny13 +# Частота МК в герцах +FREQ=9600000UL +# GCC +CC=avr-gcc +# OBJCOPY +OBJCOPY= avr-objcopy +# SIZE +SIZE=avr-size +# Флаги GCC +CFLAGS= -Wall -Os -std=gnu99 -lm +# Флаги LD +LDFLAGS= -Wall -lm +# Папка с промежуточными файлами +OBJDIR=obj +# +OUTDIR=out + +# Cписок .c файлов +C_SRC= \ +PLCpwr.c + +# Список объектных файлов (формируется автоматически на основе списка .с файлов) +OBJS=$(C_SRC:.c=.o) +OBJ=$(addprefix $(OBJDIR)/, $(OBJS)) + +.PHONY: all LD DIR clean + +# Выполняем цели в указанном порядке +all: DIR $(C_SRC) $(OBJS) LD + +# Линковка +LD: $(OBJ) + $(CC) $^ -o $(OBJDIR)/$(PRG).elf $(LDFLAGS) -mmcu=$(MCU) + $(OBJCOPY) -O ihex -R .eeprom -R .fuse -R .lock $(OBJDIR)/$(PRG).elf $(OUTDIR)/$(PRG).hex + $(OBJCOPY) -O ihex -j .eeprom $(OBJDIR)/$(PRG).elf $(OUTDIR)/$(PRG).eep + $(SIZE) -C --format=avr --mcu=$(MCU) $(OBJDIR)/$(PRG).elf + +# +%.o: %.c + $(CC) $< -o $(OBJDIR)/$@ $(CFLAGS) -mmcu=$(MCU) -DF_CPU=$(FREQ) -c + +# Создание папок +DIR: + mkdir -p $(OBJDIR) + mkdir -p $(OUTDIR) + +# +clean: + rm -rf $(OBJDIR) $(OUTDIR) diff --git a/fw/PLCpwr.c b/fw/PLCpwr.c new file mode 100755 index 0000000..221b90c --- /dev/null +++ b/fw/PLCpwr.c @@ -0,0 +1,89 @@ +#include +#include +#include + +#define Link1pin PB2 // Пин оптопары светодиода линка +#define Link2pin PB1 // Пин оптопары светодиода линка + +#define PLCPWRpin PB4 // Питание PLC +#define EXTPWRpin PB0 // Питание модема + +#define MODE_WAIT_LINK 1 +#define MODE_LINK_UP 2 +#define MODE_SLEEP 3 + +uint8_t cur_mode = 0; // Текущий режим +uint8_t new_mode = 0; // Новый режим + +volatile uint16_t timer = 0; + +ISR(TIM0_OVF_vect) +{ + if(timer > 0) + { + timer--; + } +} + +uint8_t check_link(void) // Проверка линка +{ + if(!(PINB & (1 << Link1pin) || PINB & (1 << Link2pin))) // Если горит хотя бы один светодиод линка + { + return 1; // То возвращаем 1 + } + else // Если нет + { + return 0; // То возвращаем 0 + } +} + +int main(void) +{ + DDRB &= ~((1<emF6}qE;ynnp)ft>1F zRrfsSxzBy>t?KHk!;#2{y&xY+8%qU zk=k{+FYSgD!*8WvXLotKC{TJ{zvtH&+=~B6_}>N#{<7%*U;e-4fjpmK@c#kJ zew6UPUOqgfVSX1WOo*`d*jJ?f+TNvtLOA8y=b9=^O>+nfMJxlQ`0&;d zvVIa0g)sBnWlagw(;dPxp&?;yD_ly2te=ELX~Sj+tGhXbrf`$cI3jU{Y(v)1HgpJ^ zacRa;4xzsnS4r4lw2qMVlaQDUyJMDW_FkWnd!(uxA3{AeVa$##e9%$a4*QsEyP9S9 z|Jw?E^ujkoko3A3k+k3JBSx?^U2+B8UnWMh zF-EYMl3Q44MC0|}We5KDnziroErN}}@M&*a`%q5Q+r5m)L;kgCN&`-l{FR=F-v}YQ z;e9b8Y-3>HHboB9+f%ka(ABg?BYS0xNA?PyCCongYa5YTKc#J~dHQ zg;e<87BtTMG`oDzixx5W70W7YTbo_K&$4`lzeL9R$A;9X>kfqZyTu5ZPh@K&!gdH8 zY=~!@uyOcb>YusT63o2Y@&!R?Uio}e!isqgVfq=GFzrGqjB6m&gi`;)XDq>qRh~(- z@hMZcK+zLijVGQVNEWS-t`6TnBzxc7#a1QomQht!czAdW(KtOkhUI#@X0xlnq))YX z?!MW2Q`QGuO~epZ#$2quN~{_7w8i$9F>BwLPt5$gx;LFKrV5kH7lRIIfhrVtOVT{Z zd~x55kEHH>C+!gQk*t|1T&YVIeqSprmo+u3ikFOalZ=?0-~O|4M(~l>gB>p!M>p7G zQVr@wEclS2(jBs_8{;377)aBvdCdH^_#5lvKRsdo0!;Qd_J6}Lj(o$PH5BNOWk4DC z$5P~w)sAU)I)nKx!NSkr;O zUb@?wz5=8+vRrTXGNRHoqR=s-^0~x}_;|u&=KQn2w1~gX`OMm0f&c=34AkYsl@?_U8D%TJvQcIhVb0B zPnq)%&?{1Hy@5@?x85vQZ*D?*wXsC%O|Sa9gA}2+d*z@4upuim2ZdjyDmpsR9F)4^ zBD43G`>aD&&N6!ey>gJH$mshFM`fZp=n#sZcH=>Y4;JS%&YqwE}7|&C7Oc{x#A-8vAch;Qh~k0d#%*3Kx!k)^>!~K z@?9g+9U~IWL5G}kk-6%jZ!BW(H|ng^w-G?VLx8%Rn9{i8X7jPdb?FdgEz3+MuipvJ2+szpf5c9ju^7(M|J1r$1+H>$?C9LC}eq}_u$vfG+FrlVyQd)(4B%# z+;K=pbm_cJ)*-AYo`pkN;2(c8gUc=JtTDF=28b7K zv7}rhwmU{Fdg`8utlTytO&MWy#km%YFnly(&b+tcHiGUA^j@IIi6CtkzV>g*y+e9r z8xxMsCZVBD?BQN6nc%%l6lbi9U$K{pLR-bW;x{d*I3$fK(&i?nBE0`*F*y;?k>|2E-oTq{%B|LVqY5ZwB&L>xnWz}*)KusxZ zvZC3elLxgS+0OB%Pwl`x4_tU`UtP>P9KY$p3f7rq)Xf@=O?i2J2l?w3p>{uOpKuT< ztT3DzGL2O=R^Z!3f?fogw^IKTBF|Z6B^rjCiV(^2lR!T7ckLJx&o@_43 z+y1Gz`GNz?Xo1DvL|+|nn0>7%Z-G-|=^U=oJqKIZE48ujcgh!|-vy5A_@u>h(?${F zSy{@B*meI$xb7WuZA|=T>n%RM*8zrm*5_VS^P1yT|Kzx_{AcaP zL?@a%a6Y-abhEV+c;!{^Szk;*+W~h1S+2Kx8Bq$Ec3WDG;zTE!GjN8zd&x%@an8(7 ztjlobO`HML<;0Z2>80lGM?PuNCnZzcM&!XMbicd&)|1_aHcp=`NAt#?gS4^4z=Th% zVTZd&5qi68D%XM+1e}7D|9tkaS$}|D$w9W>khHvW1Xg~l-U4YxsWJFVB6_v4#F5Zj zxxz(?(A%Yba4mb25&UM15iTFIomzZG5u{+7FSX6ue60FPnEWapUfp!4%JN6cwbvN~ zsrb*T8r~aeuFP3)?Yn2X`5>?X*!{(STYFGW)Z4WoLthBpal-LWEIh$BBn>e{Lq@bQ zGO?N=gYukf9YZAE48Jj~B|~U64d`+I8$wLa1)cq&er-a3}H3y4V z+DqR^-GvJyg29T2uNTNpOE)k9#~mpkvrh>dT(WYks#8MCZti%=SobyM^%3FN-rhYM zGgkg+8i%dZr-aoI0cF=+hcu7X>!c^vUNc4-Q#^f;KU&!}LtYbQ^EUk>azM=5=P{Xz z?3#>;m*hj)pXM>)tqhG#h)k5d{Glkj_R_ChvL@%5rgEcEa^Z&-+N_;ZY*lk&1lXbu}6J%MZ zu`R=ilEJOlUXH+lJBjVsxbysPM~u;9vW@8@vnzUFg04>Ep^Tq`;8jzSiUa~DrT*AL6BvZydY%# zfnHZgvLFY_c!i`EtF602;wZC8y{?cLuCh9KRHcPPuaIc>5vk1U;zY4(GrBS8v{|B8 zNP>gVX3KU(<`YMJ7%3XGGP@rz2xPh5?qx)yaxaa@|4_GOqE|?Q#^190Y=y4TPhtWx{BYbH}l_47Eg70XEZ@`>(r}_ zB?h6l;H7d0DMD}e%0X$>CnV#0A?Bb|$I*%ApzxmuOAe~Mc}8}>7IILrBBPd|qcYJP zR0*xMjYu>Hg~tt&Ttj3IsvI{{ zauBf}a*y7gvMznKR}Qj0Q6bUG2GGlI?UU)^TdA$aakH-63)v^Nu|(z|>xWeiG6(7H zv311cpmn}rcAw^Rkgd1Q%@}q)zg2IsTVtiH#(Q$1jU_S%gd`4dMZwG znS=72&J%AA;!KuzNH9OwJkZV@;oBHlH}t#gGl5=nArs9BLM|aEcH_-MO$kTm>=eS` zK(F~wHT(%e=AxqdL~~J7LMo(E5_{#NG({*9o!E_cP83b3T}h-uuXIrNs^e0#N~eQ( zbCM=x=c(C@HXQwIMDV^%k&1`*W{&`_BkFRXmmwDNfZeuPMcR;f^HPimV;$>g}=B#B{7raypxT zJK&cFZ$7*7?kkBX^v1)p{`P_z^BddB0HY;tcnEzGe5tOe7>h0Qyrnip-7APZd z`$!FpNbL3z8o|a9@?W+JX%)~{_EK-N=%e!@O>P~jg@2)#U&RNps%{-A6{i~qy^}+e zN!^d16cKDcKjK>rvgy6?RlI$lihbKi5W#DcnWyV^wFYzT;J1xvGS*!=Xg9`Va6Em8 zmD2yriDog_oB1vhWL#3025`C=z5Lb)t$WO=vGg*o#(Vm#jV1c`^@>zIIl)1S(A%Sp z#dY=QA0hV}JlrffK(F*jTW`TK$2z;7->Nr!g;QfzLVC5a#4PH4Le@`0qA%R@rLm#M$23(Kjv~BV6B@JQCuC?-VepGCQh)x* zM`e>o5sta8DPd!Q)J>O`=9bynHSavG9lXmkZO0Izejx-(1*}9bX(wSV$tbu{)r}7| z=W0T|Pdvy=KH@!)5brKss(#0f--~;Z21T0G9uRHu^w4Ny98$P4c*#(4DWBHDUo#&- zs(&&s@}!neOAF>h^GEC1*6Y+{DJ-OCdhuKQD4WdwfDVr2aF+U(rMZz36gKh7kE z=4F`vTfY^oOzL8Vwyn!1R+rq8T~YbpNW;I6F^Q!=bT^HTje_O(w6`(`b~n>6I>ZXU zSdmQ(rre+1&~AUEcu_Z#*qEDcrd|K5V9|5!tl(8^vIXt^N<(R~pH+CcnK`4Gn|SQz z4~%gDKTJsZw?Yg6iXXG{IW@QeOP>c(SD9$)=kNRCh2 zdPjEIXE;8%OfdJ4KV>6gHq{(<79&UD>BmRRRY#j;H>`+M|LgH=BEvszY>pIe9&QqA?>^lOmUR})|2b25^G^vypf#IV`%5I-m|H9uT77$j$0NEUMU#e^ z#EO3mGx_AJ%Gt-5+#YUtKbx4_=l$%A+S>%7Ia1T5jag<6iqt*bSI|216f@(9ei34A z{Qzfms*KUQ^*c!q7>0K!3SuQ5t)K;Aoh znxK0NbSz<+N_r$LmQ|+vLOT;CLbwNnyv2GC2#G#~S+>8&4$Clp!lcA`LYJY$kT5K( zBrH!rA^Rs4`u}pb)bD?By`T`5zg^#yu*fA$&DQ<4&dxaTD2yg#{Ujv%(msAuR+=cR zaS5{=LQB@-n3RYC#LWK!h(v9!ra8AX{v4#21ovkah5?-niGGw&@L^gZ7cN`1P@mV^A62u zj<8f%ZVJJ$7sUzRuE<-oh9{WJ$jBy*i6UIcL_^JYr>*d60&|0 z5`A=OGlZ2QOI#Xo6lSWzgPx-6%Ph<^bSdknONEd@(+pvmOK3R?(^^5upke(C8X;u2 zXoj#tSVUn)!Mz6{jt5EALm@F7H_unlQIubT-Xgq zB^gDwH}N4&>`0WHT|_I?MjSw9ySL0$n%*j&~RXzRDL#WP*?jz}9r<%2jTt=M3bl1w0wS)I% zn#@3}EuSEdyUW^gcs3t<=RS@umduJGn=#!^jmAu_#ZP8DK0zLJ7XTR_dFNiAjeY8D znJ`F}N^{7nRpCL?A`POl)%%Z@Yrm`i;umyh?6G8-E}1EM*kAo|D&w%GPZ9Q9H(Jfu zzx#ulu{%Fnj3vx-2}>{4t}JQ=;a(8(N0EC$Nc3$h2%EE?z6Vb}DZwd%VN6+*j*Qek zA9X_$1Em40U1gN1i6WFQL0WjW9UFPuzh5L6rNp9l9+>xv>u|lhi&7{S3>%^+(@j5qG7mv!K-6hJ)@8LZ%?JEbpm!zZo=E-)3D!z?t@sV-IsWY~lbwzhuf?wZjO}+U; zvrZ$*ebYd`i&1WquiKPK^3335N2xB=>5n?( zR(?;C2hvAra)0+xw(@EeCaQe*rw@zr-MOnoxq~QI%Ev$MkXMg_w|(uij&{fkL8+oV z^O(fQMRC`1rTmt)O1Vaq`=&npFZ1h{+%~UVGmzxwQ4V?Ov7_uL&levg(B_ElS+}Ci ziQl8m{r_|kpwd7j(mtQX2Hx6Mm4 zbeosA!tJ|{D_6=xYn5`1D3<|6qCIvrt8|qYIm*iuRL)Us_ZMX{pzO|hOa>GOQ7+_l zjCPyc9?b$Sd7Z>KGg=1RLC3`Fc9ItywMNJbZhAt<9YncrD+ZKk<@RWn=aLuvG{7Fs zs{cD6A@Z#lNT^&8%C}-bp>jbg{|MyK%I(oCeBNT6UemFv`gvXM;<$4;t^5e&R4xeR zAAy|81yP>z?(~<cQv^!8Z8V!lJ4^!b~zYwSG(9QF)buhHp&Xv2R8z2$C= z#T{9Byn3~C$q$=38d2^mAo;bYIplWF4Y}l%j_ULT$qPt+=uk^=+Zk2?$u*+f zH)~kf92ceB?zwefw3X+BQq4oF#fgsDEFF&mUR*3oQGy&wRQ8*x?ynp=Oz=|R8bx~4=q%R zdA60Grpf9OAY-E3Rs1hA=fOUfU~qu7Yc&*WM7i&4kV{*~&O-}brKOHiQ_P4@DapSE z`S^CjEWxi%x4s7Xc#S9*@`)eg4icN(o`?FuV@G*|qde=-_}#3@C(aoqcM#>ix=pLioJ<6mt=yi677lil zr^5~v<>lgo_}wm1{Cpo3%_|02b?2`#b2Oq{$j2>3X0yrBR5A}8=#Xa((g9bUpmLIr z>oH8o#~CAp+(DH4zJ~G%-@9#YlN&C1!2q4p3leQ}kWaW3ZBD!bZ4TuQqFj`ZzsPNK zo80e`S3tRH^9B@hdp!M`0Y~NI>(3SC>L@*97MSqN*V33^U#p1yv(oLJb)-nM7a#1pH5Um>Ejoup;RNv zeFYrNqLkaCS*088LA1FV%~BIoUcgZd3I(COfTNj4Q4aE)DCPEO7IfX720K)n=OwBf zi)YQ4ZvUto`>(-u*93{Lo=c1rahM6qIxSd;Q`aH5#@^fjGYcSD+hU+QcCg)p(MH0 z8uDRZDDqJ|6uCx}`_dl1(|o!XPoKAySM}JsALO;*L7S4iJePV&UYa0z+LKGor?-A> z34ZyNm3H@X^J$GJZ=2B_FOSiS`!2B%7(vb@!%%`9PqT5vi^b4UQ4D(zO!s z#G57Nz)lD};(EkFJ)+*mLAo56a_E=K%-$w6R3$ zz3>DVsaJ3J`dM!=*bYNp!R#~NakMF&D%M3_pXirh!4|XO_NCTefrYm%^n6Hl#W_O8 zs%o*S(nsp3#Ikho153#89CbzJ@kS;~k@4rejaXGb=Pf!bK{8vJCiVI$Z-%QZ%TZQ1 zIx#ZsKCR5_*R#1UnUSO2n0{(vIcR^k_swt1&}L^>n++QC7g|!T5#?S+q=OlO!==e`~_a*%C=Up%1iXyV1WMHb8RZ4@z{m8BS+H<@4l_tqwQB?sAh&EH*b@i<3s zz7tlSCfXaQR~!2Tbkb&zuwV>V z>E;S$g-lx$Qi%G65U2?Me05VobEHFhWMk#WW&cSVd~`!R62 zzR@6zy73#COa6q{3kr<{Qi5jz+wWRumUS5rAy)6WAJ5$lo}T01&@HF>@*z2aG3ol0 zqin2@2|ZSoI~xWkmh!hh@}?pKDl)@-qparWoZ#m}bE;n&q{$4WtN_YFSREs6SA1?e z$p|#zU<-G2l-Z=o_$lfeX(|1hp1I}QZp6t{0Ls*vTV*TAsE7)QzUkjonE1&Eer!8c z+RWeoWS-CDA{5bP>;{caROX38<3E|&KI|#8`iPYvd&b4N&qt&j=$oEd6+>=>koj>k zrP`3>L6ASM+?pu)H5(M^$1k}^a+VAEj7Tgw8w;nAE_p4;)upRa@j(L0pL|V`roZkY z$ypA>yv};v2q0pD@4a63S&4n!;ZM2fkZ}8Dmm{FgG?LU?i_BaGls$YOB%+w^wp;7X zz=!W{+J4n54wik}H!}UwSIn}>{UX!fU+-Yxq4zfF{bAIA9K5Mubc|6+f3hInHmY!x zHmYc1lu;b7TUa;{On<4;tRDJMWcu=dy7=S2B2umq+r5lPb&bfts`5-IQ6m~(QRHvG z;UdXduCWCpibgx0sKKf-qIN`ro>=gtBF|gzBFR~<5k~m7A5&!px_!4v4T<)3j-=$U zGJ?IM9IGnBnX;BZfNp)-40L&T)As3`94uSfGqN4!#FY0sZ8nYEq~?CAj#%K5Z&RvI z@&0XTYFCHovg@go)p%wc3@&Z#UuP<#iCLZ7L|Cp-#CTe%^v*xGiC#(MwqCrPOIznz z&4C+Q(rdULEKXc6j1|2$W(}XH^x9~k+@9K*Ll)h0By2bD7yH^80k9p8_40P>(y)4H z8gEuE-Tt`Nr^hc_`GKnF^d}}RHS;Ik8zENJ_l`VqAbNd;88QF{|44jP(6> zvAMDKq)6YdOU!UI+S`*iA3Zf2Z96#UacSeOwhqj!|;B~7{Dh`@5apKt{rwqxG8t?}%PDy@QZ>4 z9YX^bG{`CyVNO0lUQCVy#}6+YY!laD%7hER{;5-^rqPDOsCdY?j!W%xbhfU$ z@IfRb4kO~|Qbu4e;I3K6MFN*DF-!i~BT_ULuKwuQ$TNKu?(V$AT!!+LHu#MFdVdFx z;Pb^F-XZ(l`{Etu9_(NJ5DZ2+>)(t0G*9xK_fH+5O^6auES}5q_Z>VmfYl-5Idc;P z^c`&U9Wu1l(sqb}$>Yr@u>OQilq=C)*P-&1x(u%7vMHu)b($i7 zHI0A1ORwm*pc1zEo)?amwy$5&Es|{AH+2~Ihu1bC@V80VW^%@U&;4K!T(D-WA8#3JOGl++&XMb1NB6OD&v}PLl23coRkrBp`?RvM;p`@&tie&% zmiaT((Rd-$vF-(K#rg)Kz2Ije2E)DK;dT*;wspyoUFZfS&!kRhrnf%~0>dv6=(da|{Wmv^urYLs6*d-=x z+34Ez$VH3Hmmwi9eUTZObxMSv_Z-tN@&u&S1HFjzgjo7ZCRY7ITq6A?hB=0q;mnG| zgZf7Lp0Y?#Qj4fDOqng&%KXwHrLIchqOy?FU0*38FZH(}FDYrb&gT|(;XQg`KI$c*ayN@W? z2uxlAf@TynvhCGkiWm~)J2R%#_qBpDdoKdrk$oH#pyK_RXp58jMEby08y-1XK8KDy zIWiX8H*C$6HhLN8Wk8y(5LGr(p}Owj7|?NtHlUKs_M+Qp<6)VqjeyB>JD>MdGYa$M zEJF^gbqFdPg1R>~!F#%Ppl%})u#Jex*ELU2A+_dV>6_~i%;BUaFAoEA`M)*6T~P!& zysL6fl5l<*$nakFYj62n|5Ps(-oWIWnkOz0w%R}rTz9H=UB&*@c7q=Nt|pG+HQM3> z!+Xzn#|y#6O(#S)p+9W^O20xmXS^@!gFgOoah4s84X2YuhUz@z)4V(eOXF)$Dnm8q zAnKq()ePzbU3uDxi_9tz5F2a)9IBS6OpzgqWHJ*5S6(3rtUVy$GQ_VczQCwHLmeuA zxluC2A;(7~?15C+FzmS4afo}{NZ*b%rKNA0ZU#4~bau%jfhES5?{A z@R#o5vWKGf)kH-?G!zwHP|npNDq8gw6kPygE-(s)M;~ObYnN>V0bRC-1kw9Nxy-bc z^c^%b9jk+fk|66lw#g6!g=iTpT#2fH+4`?Z2*-3}nZzM>!2!g8hhL9LEH(3-zR(j?bufpQ-Bq@B&rNCSv^z zwh|mygYpK{!~K?_-dKVED$%1yKoW!>^T46Gi1L9VaOQt0&~Nk|I23;=5IaN(%|2k4d|JZIKwBgNevfswe${?Z`h;kaf5&IE&oCrcay8c+h z-C-|NrX12+477}z>sUX~a7=6|NEz;rHoQH`B#0*+p<>L&CG8FugZBQls}L_aqpK1I zWJ|G}vB~}P@v(*tbh>eYzD>A8B8OJ2c#^xP60C*`lC$$p`m)8x2iKn}BeP_FA|h&ABz z41`<>w%>#hTm+=hdX$S$)JF`XeklhZL-l3w^EleWF^G1sUfRpNCIcoN|FIil`7-iJ zh?T-OD#UL2_241)9YSo;Yn_BR1QbJ3I!g;IxyY zj0H~mOCKpe@%xh_+%NChlOv&9i_Iy(C$1|tSzcL)&)6?AtJv&=&tFbc+uNLjJ_9K66FK`<@Lxf4Ar#g+^krUv9RDScl-vP~WDk*a!>p4UGWsj7#ZZ_aPOwrQ%0 zx%77wi2eNr556#C(9k}kGKTms$iT;;BjuwuxI0#)uc%okPteT6WW9|MlzDO2jva67 zTFK$~I?j%2DYt7!Q)@LpYA*tVh?c4G;EzX6jP>zuz{z zdI($phYq!wKNLVihgCE@ot^xL4wzeZ%##M=Nr!d=ur2=6uqBb~$k>0tP~c^27MXk7 zn}Ssn%qHnj&sOj%bO|@~ok9Kz5Dt=a=*eC9>(V{zJLI1-~S;50O|P# zlv5b%llVgY$D(`}_}D^W@QWvL&6#ssST$$hH+3@F+|;Q= zuEyQeX;t)9ISOMFRm~h7xd2VJ>-f=;v1q~#D@TdICEZ3T!FQe=xf=T|I``~I2*N@@ z3adwXC4?=)eiYV#&pRQk7~5$u_oD#rCoP8kh+))E!F$2S{m7r(;ghLLDT<3TYiVPo zi7>w(bKp`4^UK8e7Ji|{7CTi>j4?x2hss~+$`G=#e5CRu@PX9DX34aGeBRUPED^d3 zn7re=sp{LaSmK(Yj7`oThh~9T4M1=4TDP1A4pn)a2|bFK7v7}_vrkvV)6Wp48-Y~1 z=cqHpb9)w^E}ksGery4vbS9KbC+adn@a4NksL;Z3(&VZlmV zL&4J55Zl?A)-i1l8H$0_I`dfD(DhLU^I8`Pmn_Z_!f@H}$XYaQm5sYD8XkENp4(V+ znqbM~(?meSzq6#tOK=>8@p#D|D5nEL*pJBLB(_lx_uGhilSl8Hx<=dJjGS$Z2C+Je z7x}9PLQ5tE)Yn4*m!U?Mbk5bjSEIk);K;cNvA1F8FlEr@p^@b3Z>Ao2k)(~0>Us!u zp;{8`+^0R1H%WVFv@ohaBw*0je}u2Apn#bCbn^stlFy_G3T2f96L=OUO^`lC6EKJA zg#>i*-iL=p_I`pGITQq+x1H9Uf=ZXbaulR<4le}70ZlMZ*A66sR15<4g8CK+@?3&O zhoF$Bb8?wyM6n*ZGNTCC9+Jqq4pxnQ{$OeRl5Gk%<_}SM;EN&R!k06LN;Fpi8TAb) zXAp8fB9D`NgnAhDA=I1v?l)6kY$oa}#7e)Bb@aWZj=}3_uy|y|X~)}!MjOohz%gzE zz5^p6zYF`Y9?`jKpfrKTlBEMYiEAa8h8jEnb8q<|9ZVB`1o6FXjsM)+wwESui1L&k zbVKj<6HgGOdmM3!^4R?fH)ix#ssAxt(nipQ>-tLut^$h3P%a+Be&R74Cxb5P5s#r> zJ?Mfy>T+%yBSYLIL0aH=te9hq^1Y}>*YD+_8fj1QP^#mh^?PBsf2c8NXv3|#6Ks!C&MwW2 zx8$K-k!(y$h%+%Q+4Wg3nU-wm)f?YPZJnyVtBGwA(o$c^NV$E&291+0O4_DP#$b69GUGfN~nX z4ExELgyUphg?hLj>ra00lc~=-0^A8>NCf!(2!?#D4wQLS>Dv&1(-)q@iGZ#hUoF)K z1KC+f^m4F=2q+nRtPt<{;+RNsQRUQ=WZ&`Ta;z_xoYuzh3(?OV%KHCY$-%ELhmO2z z5dGYN*E!S$z@IyW`$rKmvomj%{CuqBuO(O7mr&c;Gepc3^$an3v_NtKK;0D9P+RPI@cqiA^8+(nT91m)Ck!>=a;C#ZJR}2ag>RmdrRpb%vsDVqn}1AN4cC0VLxIOj$?T}>fwGHQE#jO zH+C|`<8rc5j8%2AQQ8J4gDsqFut^!j8}U6eaT&kJW>e@TYQj_@9uk5^tSW-Mq=OU4 zeCFw{(tYcJUIgI*Yyu%DbqLbi9h`vEj9u3sE`w?P*WL<(u7YxKDFrpj2PcsE3<%hk z4J{D(@k>}+K_Sj06hTpH%LFpNMB^^m-9;seQ*iYbjbHMt!i`yns>Jfrp(+C!heKMo2fS-=B|Fbxu{!lSNzl6WIt%WL@3Qs5 zKnA9^dDDD++YZ~k2&((rUdQm|5Y!z)uX__P2zv})Xl_Ks|I5a=7{}wQ=?VC}65qe# zb4j;85!sHr)o6&^wFZT!Xd|N(HlE@b;D-T2B-y>y5e8sHidv$tD~LiN#N|ukB3$;Q z!sZCdT!lprK}ly4#4HC8%<#i<5D-H)fgau6$&=4076SS1E)%Om`b z_ipX@PqEo>RIdmzJRM)?g77qbNED$ZZ8J=+wPRJ~^{TEQ9J&_L)##&@(dcWCRN)D>RVEz;c!-Lkip=DMy-6V|(2Z zGz3wKFNP#kI1O};cDunwOd|RqNH_^ep1R>&`<5PDyU+uG&j{<}EIID;;h@Gm*4Wo0Bz191r| zCh?w!dkFDHTn8mFZ+jzg12FmG4d)JShPcQj4mmC@JEmn~W)`+pRYP~x;epAQZaCMy zD&xAe8aYw&x!+%mRi!L&Y|8{%*+!e71k)tCv;p(6u~4??(PKne2{8Gx4dQl7yl1{jjz>2Kl|0b2IfDxU;)(S!6Bn;>-slYpa)- z7pFZES^LxN=5*i_#_eW4$_23>@BHS?*LLF2#@Y2JC8fa?G;UwzUko@XDUGw%BDwb{ z$~ZAT#wO>3HjX!6)2OP70g)$w8w2T)Ct%#hLVOVlwE_3JXT{{ecLKzQFcmsHm}euR*i5t3!iEG_A6I9W9s z4$GI-c=c*yiPZVXnB}6INWFTy*Q06-upI#j8Tfk0Ax`vBH5H5Jn*Qot5n{K^Z7i=x z)f6eRS@ZA(3|3qBsG6;NZZZ3Tj3{ItkE*H66lHu=O)*wm_oy1J$RYE1R85{D%uHS16Qv)TWe>d4k_f@U8Z`+r{_sX%!jpx&PHMe0Jc|Mt4r z@y93Q4`P8!ns`F3$N#sbd~EfiZ)M4n)p+xpZJDa6?Oa%Ull@B&1gxOPw_OPT;D#WQ%$q0qX4s4D|M6B1%8!v$kXj zIPrX-?cOD9CjCQjV&K#7HtC45IRzyw& ze*NdCBgy{8{%_zXS#S8Wh60`E7u13QWL$C`*CzUWoRczko4Y`k39KiX$MbPY>x4|6 zj|1M;Js(Fa)1+R{$H`P~q_PU|s&OdM=i_MiX=PrIrm0oRNEQIEB1`o7IBP!n#N5?k zMdYOQJIpT~d?upGHLi$w8BzJQ)0TNyRYoNGe4I7!)!_@?(n#joZv;;Qe*MwYk<}g_3O>b^0P-~OVx#AgRop%_7*B(k)W2+DUl{V~%~c(BSj@z%ypI%|)a0;7pNpWGQK zhlpN4y*;+B;N=0QK=d9``OhYLB|X@BOTTcea}GQBN=te(+!`%ejW^L#4~?bH4mO^6 z??%y?X(P9LCB9sjIJjGf(!sU3doc0U&A-hw3de4${{9?6{T5m;(gHWzTCE~w#hSGI zo`phMP*DQh^cvpiC0KZ6y=k2J$4v@9jrjb}e_)2@l|`C7oTp}&G$to=hOE-{dG)G= zdFtGT4cEdOCKwqN_q-!@SA4il(Dzo|2WIs}+nSOUs(MM5?~vt+57e|Z9`chW!g7 z`uQ+kMy9z&Hnu7tY2<5{;O>gE?~UXhd7mKOTWp5Exi>=m{-F;e|2qExbHm;pkxe5uSo{|=2|}UB zlB&`jHy^BK=5KB6BcCawi68vb&SLq8Hi{U}%2FD!>*#xqYND6fMC;A?51pRq(vseM z*Ml_)>D9(Q3Y}wMG;vG2qpTkxf~dE9<)CUfI$hd2t;s>he|M4OpyL|O^UOg7 z@EgdulshV0lY@=}8GEXbdE_9Bgd}4Q3S+f(CuPh*RK^@cQm-7;pvb7KQG$cxM{9Br z6=`K&-M`j#W8Plf{S!SYW3K7Z`(nvK$7_7-Jjp>lG@{(gh*Z~zYR8B~Ps*5Ujyv;W z$w3Zogb^&)i0zVt(q0|bq)$o?vIDAEj9>#Kvb5AE%iJ2%zte6$Sming(OBjljSmhU zCOPOK8%2y~Ws-wBZq8|K z)Z4vgda16IG$#igj5vBb{nEJMb4=Jzv^e7LT;}|twIixl zrb)d<)O=T2D#+9vH_;JQyH6|g8qBI2rOoKZEQc)75p~*tMdsGwuSK@CU21;d;3pAP zuJJYR%bczemSaSsBkHu?cbVH$(Uw1z3T^||q<#{aigKdfo-*yU73N?5m)c~6kr9=@ zTEvnDd(>JYe_I++Lq9q-nz9;CI%J>J#wLeWnDb#YvHex4)^vzC1gN*i8X9w%le_%% z zR+!y?85wzZ^K$b@pjQs^LmJ4q6gesr%|Vku)@AJNku4zW3iQfBc|Qvob5I&qTQ{rM z$~3804$4w)q_R}Ujfv(U?LMu{D+lGeWQ`74qB&^NF0@&&Ut}_|-{i>Twad+8fRlhM z*W0~}NdLuY%W|x??#jZJ?^l>T{PQEku2HW)~Zeu*CVWqt6iiBz1=mHYccmY<(w62Mz098 z^=7!%+4cNZy+zWDQdwO>dbP1c>OJ&_r4CZB-tILM%>19@=&%z?wy3y(HwMcqXE7Nw zuX)zA{-iK#*b&yMm!30&Wu2|}POEpY=(%>5{`SMms6yAMJXwvW^`oujbzc1{+E@BN zBd??_GoLX-XP@RdBWy&Y;+{{=2m=mjqS?4H=M}Rw=N9V+pnutX&uc7YU{E)h^06o| zmkJZj#*LLP2-){QA@i6KRw^=P;|!3sE*ooQn$#;B`}aG_iXAs5nvJ#lv@)+mSmcs5 zI&Mrf8(;U+Yi8*Tv{|ozIq1)xZ?Rk>w|g0Z``VK1wk(G|t;@#OwXHJK3vaQ$@Bh4m z{(KmLa*f=ca$Uo7X2#{0Ha8=*ji?Y$M0baH)?1np7PoQk_^FiDc={t}gxc7i+0Tp7 z#J|6PiN*4#Y!oq`7N!(o*X~#UxrtuM#VgUZH5gzQ0} zka^@F+^0!0=AbgTv~@X1E7PQ2IVj&%R_(N3qB%&rPb>54{&irm-B^&M-I!<&I&Sg1 z=Ju&*vwytp;KxTlZArOCZ1*xE3(U3=HBMV5dRBVe-LIR|uXx^i@Sm@`coK|YxkhYH zIqv3H%_)6WHR+QwBeabu5+gi&wa12*a!{lARt^k13O(v^ikXA7v2T2+j3##f{85YL z8byqARMVA|4D7n)sVAH0l^kU24Z7AfJ-UU@E$K~lYpjsfcyq2c_D$$~7e*8ByW&af zc!(hC?Ov0wytYoVFO8cxS|qOx>X%ay9~p4qOR2ob11@=OtH?W$ydaEM@vgK!99Ah9 z`1Uz-%F6pKV%g3aR%*#}roYDwt9mNlKnk4KSbt)L*>823U`6Ght@lp-J8x;R8gokp z8!lgJ;!YEb$Z2iieRrFoZT*zdK$(+wImOfHLf6x2tumT-m(bI7;~%%~+Vyuqv%?y5 z<(!8tVojHut$Ek3HrxIsXmxz+Zo%r3Tg=dP7h6RC#Ew??D;Jnndt52FVnbMlH~KN7OP1BJ|EJj`z= zWE>AothR1E)XFre*LYazDywtcnCN(@-KUj#4MmwQS*hd3M90GcfBeE+^#j^$VXcFY zJzrr-xkhaFG9oXppVFb%HVtdMf^FJ`VM;>i5 zKFD}z2UMec#S`7<<5_QMe5gFcNz++ze}BaBP#e4T31u{K=S`1VEY~PvJS|M|W7qp8 zG&>&JdNW|TTJ zY1djFH*vHXG=hneS$*!x*9E7)__{g&$44x|{HLtKQzK@<7nrL@AINq4rvL%hpT)A8 z=n$ignEmuU*2W_?o5X%+Z!v2=ULhEK|5=N7Qxd(5sBnWg7xlyV$W)!RM3WqBo$B%q&A_*W^%il+Pv2Q( zpY=BLKL6fY^@ln^Ua-paeJ2;Lc)`jyr`G`UoxQUxqpV~M38t*U7yL=>LkLQ|q=I+O zTJT6$xr~!$TR4+DGNfC$O_y_}IeUhg@7!^jC3xXg)|{y)n(t^txvzlaf4J5mUwJsj z-lX=WT^#Z}Cnl;BBrhQOzN;<4jW<{YB-e;?-|TB=nwz7P8~Y$BseO&BJTFbZ%g=B3 z(Rh{54$L(-L!lrP&t5mp+^mtxNgl0y$j*27gWPn<3*dxq;&!}aLi%YU_Dkiyu zC{GTK&VL<0f;pSb$i@EVI1_Tw=7)c}e}5TP4;Au^y!c;($zD)!-Kplgug$cGb>}X! zX8&`#U;$8<6Mb`1&o?*snr-2ooDz7__P#bXot?J#i*DwFLYPBC4?c!`!uDPQCnsljVKr8v+{3t z$gTXIB(HYKO~=gvF(W=VYvo^`6cpuOmo5?wf zqr9dS$_u95Cdv!mDi-AqqTE+-_dxUQ4hS%tymHMzl80UL2CS+mFG#S>8QpK+cZEdx z+w;-p&-ODNM7fZ^bB){Pj9!qJg2z^#DwJ&V##WHO(`KHKzq6xA$Q?wvZw{32n&Y;) zOlk10Yv$NZHB+6#y;oW~M+tRv^fpT6aqG2>rP0)Dt#Of!rp5TGm!55w zJ#}W&UvSkbDIB5m#Rd{vwm#-8THVq-lzyo`Crj$CuAU(1Gd{b}436#E^eyLkM~X_4 z)yXQ!s#T#R$au(%vWcqho|g)GopS{2dSPE_+%Bb9y)c~g9F};^MFT8c1T@Rv>~FpI z<=KMa;@;+6a}Tw=E<>fmr+B^;FGH0(?#;UKeqI7Q=t6IBN4mJru`|t1FPYZKzz!Qm zcwUN1J4y&yci17U9g`>F%hHyXXu=bJ%oW0ZKq2(F9OYLEc{wUIU0;s!zjS)Sgj%5{ z_PQih*4P|wKrd?JwiO7@7fP4Duhz|=uBCSHyvt&Z#rUv z7*71hug6;~*C>LTw+*GDx%Y~pO*Bh5+nW7HJJxwt6T2ZE%^|ne45xKtt2yu!!;0Ey za1dHGKASpJG;3tJSB@$LTZYO}smJIJ)!H1jZS6&pqqeO%&of6AK`97j5z%bj*5s&6 zf`MfNp9K>WUksa{XDBLaukudirc*m2_QS$$_t!eYHg0%{$IEnxoMk?pZ@tg$x+*E z&1c((F%%Y(s)#h=g05f8yz{#ZYQjmzz+3)dsV_Ho|b?t-DXPSguh7c^WG@ z>c6)&`}3g;byS*boo6+%8{*L%I@Zx#DFlh+Wg1Ma8gKc2oaCs#*~oHVxaS!rp1aU= z=2(545Oe03(SxfbZj?23jz{YcHcbtGHc09Y&&U=$VDzysnb)`~8)P*emC?=|fDgPt z?C-HdE)>t~_^FjKKg%>e+#CU^ zhxp6IAUJyns4kPU@qO&jMfb=P zK>sO~wKeKMdOX(g1W-RCNuB^&a?dgyc|My||IXU}=mN+0nfTqwmNg}obhq*@BmEg<+%(f9>#|Zx+juE`-1pB-nLn=m`P-1Rb8nR}-ajT1y@3UsI zTqCx78DYWawh;mLW%0!51dXsp6biYuXoia*mvW6X!qyJBVJseYH!8&R(AFrjJ%JBJ zC%}j)l0{OLCwQ_eOABARu)VCJ%grsua;t9OY{4ipb-YcM2boapvsN9Q4_;pe$vU=I zWFyqBEv766oE5mj{QRZm7V+$1%PcFkK+uacO_8$pTqnx&Y&XY4%C;t%D4aFRJUe%p zRR_HE4JZa`Vr9O__}`GxkS$`uY_X_d9j< z3OSC*dM1_PGwNMDU*W6ys{Gf{YQOYh>Nq0nVL9vNeh?V@ta4jmt+b)MnLLDmRc|IY zDNwz=LOUr>uMnjP3$B)yv4BGSa-sR_zd(FUp?oH?<-9ywD#Y?`*f5CIQ`pV(O5j=b z_78c$HlMT|#muI%R{x(O1`4sE@T!-tQi@kzC5n3j=_!`eb3L)2coLt*!`M!bb3bV* zl(VI{9}U+$UIOYQG(?0JoMch)g%>jl!uniQ62({a+Hg5>?g|Y<71WMn@;SEx&%V=l7%0RUS1RHeS1RJi6kb)Q%B}XwK%xXY$|cybp9sTo#H&z`1iM{7 zJ!;>8t)97V8=fH^#WUmw4XqXpOqdxLwrsdG+4Zwk%>3UhK`+mwqn*Sv{-GK0j7k^9 zRU|;VzzgZ*x#-Lry1jwSOFcimLV4ip0teY7S6KzhQwGWz#MqBPO%#uyT$GP05KmaQ zD&%qEDb%OCKNF@bQ8AXOnv$zMJ2XOL(7{ziC4b@#G|k+EZ!1M|#fmnn|`+1A!6mrI@@zKR<}dY*8ZAlqEL z%le`e)`E?54?L+q7f(@B4}}ju3Sz_oU((auA_^avDa1X0n4y9!cZQ>|St5BboDi81 ztB8V+wM@j|>N#zuDC)U!sl=5zR=&UG7qGa2pO3Bbm zm69cwC?(&&e$`UFZxm6PJLqLOQ9Oa8YYT&(C|Pl-Qu59vf+<#?Kbc#Sm)Um+958&F zyUz3DxrOay_Aoe>kABf|KVi?}CIZ==r%>!C!f>1*>Jh=HS6U1x4q`bS zhW(_aahxFPk#f|_{k&STPy|kHS37QUDnm?O%yl@2=*jIE%W3k;ox4)2=Vc$scn~ZkIlFau~Tl5nJ@EB1T8WGPzw= zbbgcB(;KrCF;IxA3lz@507Fj<$H2kR0g9(s&e+C&;z@iK4|6*`4wM#PIa><*NekIL z$=h>tn+uIH5g@at0z5!ajRzyTaANH}{bR?lP_Y#>5u_V^g zV9cuQCe4uNC}LKHcgkW_%^jx5eA0XFz&ANrRTwweWI!=+4?eRgCe2g=p0n|27|QYq z7*W}2fN~tl#X#&QA%WurQIC|{^~ZYJH9TF?nM?=EIWEatcnz7!drt?&(>G!qq9IRV zxS(NOFI5I#XCuZfDeq(p1B$^M&*)L?Cx+rULDVDVsJA6g7r6!(IR;mDV(fVvECcD= z`O3ie{-_AIUM!!zJd-NtIO3TwIF)Bsa-3^{NP>Jeh?tPi{G(tLLCocbbeMm{psUvBtTos5^Cia5b#hbS^twSBq4P-MK^U|`f%mmBuUcxo8&ocW6jPrAZ< zc@%mTkZ1hXA1@d5B5nMkvs~4IC55Nww^f&A^Ens65)Y|lTaZy%`Tu5`mp-kK*E;xF z8#8I&GF)!x`WJJ{E2TJHX!deLZbjeFuyGTvG0^WHKj6ZQ zq4?+TGb&?nzhM_<48wce^)cPC5~Dn778Ve>@{+GKuFBMW-xSrhx`L)CE{2G2vP!L< zb8j$9zqnVBqGE~M)45EW2yfA@#HxA|)myqdc)UfMiKpksMds)(AOfCvU#WG~|BB3S z{(;XUuNN;`e^YqXrt78L`s#YwkI3U#e&cudTHH?z#c@Q|!*X4}m*Ew|84%LFaN;ik)7L4(|6hC89$i&+=5I(yA~Kz5YfUO$#)wV?A1O68 zD%I%l*n((O9uY&xkibNjCRZ^M9+C@1jRhgLNw{hf5`#4;(uhop0vc+R?F{LPXl+&- zg%-LdqSioD8wXnE_xtwQ_uf2CxHtB%nVz-ace2kp`}cj{{`Pmy-giI#WU%OaMj<`N zC`c5+kuHMcJ`o(xiQvdb1b6Zm!K2YGDT?=AkAKshcBmG?>yj!?)%kInl*cdAOg0tj zl03zmlCp|fuA7ny1)VaMxUlabBOs83LLiwsd&W8hy+Xj<$;KDTDGAb8Yh;t!np1U7 zrkxHFEW!MhD8fA@h9LJ?@hkS85a;wc1mh>9CF9g=o!DtjpPptKx)i`ZYzguoQa_t% z2nIT3u;VQwNKkRLCCHQ4H_CP>f~!izL@Ad&7&MU;B1D4@4tr0&wDCziu=A~^C9%OQWUoUf!L(8I$|Jf~VFz+BF*we`t1U>(Wg_kjD3#}cs6 zu_cifD1xBFO9Vj&m=*FqXAOz9FZMo60n^7-HJRO z=9bDbA*~#Oo9ccfXTy+1F7X8I7_lHa&WN$UOYvSiNYQ2m30gXB(QeK?JwZ_qMmCLy z?*PU0M^e0R4noj`T&)Ip$r%j_^1>jstmv=V?N&?8w4vI%{UGvti_#0*AomHEsJA#c9x2C{BaELU9`O6^hfK zuTY!@eTCvQKyezRi__pfaT+`)PJ?{JY0wAB`}ztTj1w*RRFeMd3F+|=*fePT3n?%f zH0gtPhH~R_-MPpJunR3HejniXFcIK;28;f*&z-f{U71-VVY^>+v zZ+o7&O@qAR_t?f^a+pJArD7mKZU1ZAU9TxHmRpu@itd?wH9rahe3UO1)5*Bb0C!`7I5&|3#;$KE zzQX1e^3p7oB1NQ4Piw-d`L)Q~LqWddIpt0Ao-z-GzV%IiN6!KgKm)}Bw=6KV>iK^& zrU$Z!`)CwGoF>GwFKjX_U_SLWcRd4N>a#Cw`)(^WP%Q8tdBy@S&Nmj=Ki^p3pYx0b zZo_q2U~!(Y08lLO@h8QBe$J%r0U=)7EGfs2eF8Yu6e z7=wCmu2>|c%wW+(v@QAe=5rJfD9(#?abDaFQfBHw`X#-j6a`gHZCx4HOD z$Co<9l8chsw=GJPQ~J`F&!9lQvx=dyV9&M?OG+rOnr8%AnRHr zfx!7R{39(i^p{&v!aP%rfucc4b8+x38jLF*5nBkl1Ch3-I}Cyc=NYHlnqxvaHKd7> z?@(v{s;&4;Ya*#`OOp~;F73J%#VtGJ#vB8|(j?ErOOxVP^1-D^$$~t`K@$~$KteeP zB$R*9R=i2B;=d3ls%Neyl()lLrp1-Y_9RU-R46|&*EqqLyNnaezsop5gTbOBCS8xr zk^6`e%8@RS6!%Fa#d8wMk&lFO*Hvu1P0y00`3|l-x(;b4ZWBFFJMF)7Lidv-`}lT6v;ly+O-mveaXlp6JB$ z0@72sAqIr-y>T*st=d^!txp~=58~f`tR)>7f7yX?)1FR$IY6F1E*293V?E$;ip>jh zW0_1yMBZ@8dw+Yk%Gg$|d%r9Q;`b}Hqyyuc)>o*EgJpe(Gn;*8LC!Rj9Vri(RWPAs{i-#|LT=ccb^buR?utWQbNBa+p^vx4Pb6BL7QxYeH zxX@5FpCvd7|7aWL@6B1I1#8#p5tG}?)ud(H`x7Py39|x(%_h;z;9;&V6(*FB`M2Kr zk`{dW=Y2mdkc9`M#85*$?RN!SDJ_Sm;h2`s+k=j1CkXrh%O?|s8_ruN)*Rr!4r#YA zNe*h*q?Uv@`Kl_NHe;Q7zp!ecrp~C-iXdsrut*aqFuJ5Smp`eou8$x`opQ7(apKme zG?vg2)aV0)?RN_L|7Whs`j?HGNF^{L zQ)zFdE`MT{AV;TiH0l70ViG8eF)^rI-msKobl@Z`PQiToixNTA`LN2o;}K09f8KNY z`>-&5)@`DL2h1t(cLeQvaVz>#xDy>{T-FrdUTpgG#1_38SiiQ>b&^9l7(m7&A=^4` zxRV_C6v{F5zuP012<0dO@iWl^JMxMQS4_1m}TRgdQj`hblOG-^q=i0g4b7@e2b_nAwn=Al7l%6 zsGrUoJ1v-_KVat5WlqytVLM*USKA;o@xjZg^(rV)0<_oN^NRD~*2_bF_S@T)V+^T;s`ZOFf9tw2uL>hyh%k`qzC+)1alW7ep7`lDE$J3XXmR}2u<97PlLV*O0)s( zb$8L?6mESq25KoW!8+Cu_gv(U45ZL9BB-ye}Ap2Nov&%z%hxhyT%}I#`z@U5r5734q2ozXw!|W zg{&SZWNtCYkTC|8UVVPd@M4hF%#ymsplbt~bxgFHMH+*w`K)Gc)jtjDIA%O_l_iTb z23@dby{ehes-NBVxT*y<0PBwL(M-3<>uy3+oE#bJ2$AvEk;9BZ7pz~S#$4a3Gw&}8 z;Q6N@1k)|zdfcR*mFkiaFZZjH5`(NIc0TuajzRIFmUyebjhTmAC#|slhB7q{LKC}R zZPuAk;uz3gm#hc0YW-R2hp#5*f^8V+%&iujuG*ajc*;e-2i%Qa6ZPg~nSQl}MK z7}U18>Z_8L-nv3sn`xh-A*j&m43&=Oj;8I^0ZkL08ZK$ap*fh%`E?ziiUuJN>-nmt z>N8wP^Y#Tuy~85Ci3%LdP%AFS4}2gc`W7x0^Lkz_5mXiPItSW!L zNBD^?a~7yc1-k?{e_pFGT~x)tUaM0V-5}_jn5jB%uhW8$y@}06?p2+@)DeqC&*ZX) z1X<$EV_G$FOi_z&xoEjMGO9(ZuPqd0CrkMoyQQ;5|GHjhel?8;XSN_aZ4$>fO6Sdval199*Q%_X-8!{xhM=$UX0>A9E=|Px z%UWgLtU4zBL}PleVB)@+DyI24O&lGyOJ|LnCFPww?KV^Hb8l5O*Sx0Vfh{vPYo_nW zK^KWj&F}}SWABfKQ#05gJDz^4s{7-6y5OY2=A${Pb>VOH$p)XGYfNyerw$6?3p)aa zDnudF1K*WZK{;8QtAqC5FAwBYzgzV6DkB>3tSJC z>!8+r@X3&ivDOQNJY6{Up<$3Q^y<-Xt4UW>V>A4=YxTmD;69_B@RIAxl5 z_K)p*(jUXqNM9~2Q?7AKa}pWdu=Bg>ePoZ;t7-*L=UClAAu6JWE5ux^dCS#*)8l?G zxV7_$>bbFA6IYD?p{#jJYr9z@;pmU7B@#d3X{455S#!}VdNHQ)3t~9})qLB>dc>Ie z=dlKW?qAkB4XOMpk%*PNh16TOF`}}rDSKA(u4&mS=+>C2ILjYg4blVCq@mwLJyZI`q56u~AW2OpZEsuO6WP5>bTj8}Q2pJnQ?F}1a zhu4^~npsk}#*D7rNHg-t`r4Byb!rxAW5$|~NX^{Z5&koujCRP{M_aN;8#7fGZdW(# z`-`pw?mc!~SLTD%L8ja5ZbGPk3J8&iQ=@UD9V+LXyIp0z`a1>FW1!FG0_-M8eq=BJ}vGTf;St3gnnAnTJ#PM?wNCEU|h~mu^2Zh*ZK} z4;2>mAaoJM@?Y*!nFI8dSmfxNm=KW8$>*!;tG*t{QOEN%Tz##uMCzOMXb`D{z3vue zJ>Luv=ZRL~5QiF%M(3U)^+yitRDY9T>pM*<=9R;mxTfqwN$;BRp=+q`MWu4`EX)d5 z`%ocb@W+*x)T%?@`Akn-wq0;t+YSl&#I%q1xRMv%5g>04gpbh7Pj^ny?dyb?{nESI zSM+Gs_UVazrz1_cg6hfP`{r;or8eDl$ER``B%)q?Kzpt` zICb4KZGvngHmCh^>deo7rVll|B