From 2254793800e6d43946e231a5fefbe0c5b004f562 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 7 May 2026 04:00:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 07 04:00:03. --- .../20260507/20260507040001-Binary.backup | Bin 0 -> 381516 bytes MikroNUC/20260507/20260507040001-Config.rsc | 4778 +++++++++++++++++ .../20260507/20260507040001-Diff-Config.rsc | 4 + 3 files changed, 4782 insertions(+) create mode 100644 MikroNUC/20260507/20260507040001-Binary.backup create mode 100644 MikroNUC/20260507/20260507040001-Config.rsc create mode 100644 MikroNUC/history/20260507/20260507040001-Diff-Config.rsc diff --git a/MikroNUC/20260507/20260507040001-Binary.backup b/MikroNUC/20260507/20260507040001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..df6d998d7f3d1f90df4207786e9722520c568e3d GIT binary patch literal 381516 zcmV(fK>EM$sF8C_(ggq?f3ADT8xcp&41s#R)t6WR00000000080001R$p;7~|7(}% zmt5CnSfQ}!v#yq|Gb;7?1_pmd(-{0wu3@=zTNS@37O#0{j>|P9XIyDR4_;U-dakxA z=l-eZnI3fk`CA~*f!oiYC84-~F#u*gN0yZQp#=9IY7&R?QJd3Taf-4nAoqt_<$G^v zc3cOFM})(ib@6>DtUx<>j^z~jdDZ(nhNX`LIsF`PYTs=SFA=hlb&*G0IbA+F<$C4H zWjW}!br-|n{Ph~PGD%P!r ze=E9Yja-jbf$KA?Dv_Eed|gh{nLRyVL~!;QtL()dy&Nt~DpHW@P4@hZmA(zT3@uhg z-dyXNaUWpo53WLBMYUXwjf=N9@arogQI_J}R#3teXot(S@(=8?KT3{Bl>T)Yw+L<5 z?+G^fBJv8;!&V1AhJA9yo*CkShZOD0xBbq)6!yLvOjrGZWrqzE$n%{Txfrky>T+3F z$|$jMph|B)>!wjCH(36{cBE$uv{Ti!@4{~#ti*PM6ihL$T@}#oW=CQP@@LNJ*8KkO ziTW~4mOic4d*}h2OJ_YpojY4OfNA0jOS<>&zMVODHp$$3a7Tc8*!6D!A_>|j%RWa^ z&DWR#hL0R!SRu8$Mvt@Z;Pjk?6wzB@72Iz{%~S3W`V3FcCUysWyg&YBu}PXq1Gww( z2C1l3j*bWJWb$Rd1(AHE>XTEyU$1|*FWH;xHV806@Kgo!G?&3HwSD`kEd$5@7(v`z zj+~?Ysl5i65aR6Ab3$nMJsY5}KP#c;XN37tCUU>o!s2f&&093L!TMrTU+>FX0nfqq zhbz-Uy%H37aM8A1ZtjijSRLdE>!Yu>JtY@bZ??!xe)bU%NE|%qN2-4#5X1~oeZ-Yl zh{>dlJT^A={Zz*6lIINHqPS2rVpTM%?AF>Qx)&!y#`#}-BdiyJE`qFKBMQ48-pT6< z3pV)w=*aICv%D2W>ZuHn);w+h9#zX7`8om)5OpMLuS^~b2Tx8v!f)y^WisU9Zdokr zx=Wm+gt{jazf+>S1FxH6>sO|`xRm5*pODdVh!_ZwgCnS_3Oj{BoHl%7a8o(MZN*3Q zZWgY}$OU;v$25{VY}}i_5eKDM*I&>jG8$1rf(O63ib%CEtT;{3d5^aGR`0N}lalJ+ z(Y<#a`s@Z+V0~;D)+1~^FDktiW_l{=bB$e#<0K+K*=u9E?)6tWX@{bTcL`svs`V-> zPIOZ0-Fh0fISbB_S5{NOuwqz8=oibZU{X7M^ns1)5V2_w0UHkU6jyldZDEdHrO+M! zYl;T6*-TB+vN{iqN>hY6pSY!k*7oX(1D3rtm3tL=;ChBk5tcT%MU(_SiS~^EC< z?>p(e<_O_^lb}t3MU*`A>2tB@`NA+U&^c4DAVSDGZfgwQIkd66Owv1hdap4DGwMTS zl2gCXGXS)i-9P^W>-TGmy)nKvI1RL(2e4sPQBYMD4h(ycDKYFhqbOVoIN(5k;_O>^ zJE|b_j``iNTL!V_B@+|04omg9UaqvEz^$a!xSdpiwBR>(e(<_}lGbe|zdNra>@8lb(RxKv0 z(_TNZe~jHQpt zm?Ql1EWFo|VC<>pT6SD!ql7jf7uP2lyB)Sd25Ern(dN(Am}!U{;l*#JRR;a(z3jqA zx$!jjGTIR)F1Q#JzUzMBDKc8g+3a&3ZNVwyhd`Pd1!csvMX`Q`f+lsxuBPy0aoMRy z5G^&jDzrM&#MzU#tWTH|IHe$HFUwW>WL7jp^h9Ohi;)v_QwK%1p*Cjj6k;#vt_vPd zrd6qX9b!BMsUHb}3;)X21x^fn?8h{cpC#f#8x=Uf{mu-JITe12%tK(@SIAtO!<>?` z^VD2z(c)ICzw@OR?v*zrv@2jTRw=id6FjoBi;@*OO7b~ z3{!*p`fUeEAG~y0k5i!HD$$jR-~@(l&%HyC?HxW`buzqV592P^xQs$MHEe7(os-E| zumYxxA;KO&5}$lNqmNu%uLItR25g--NUj(I9qRV#J{aiu5%uaLe)fZkO*?!}a)pB) zM>!be#zkx2N$>durNhR+5OV(AfUvtAqKeWtR)aqS!s+y^-+#J)XK$6K_&XTJ<|N`b z6KoD9C0O`{*c`Ok(l3UK)|g)SkIuFueY0}}HVrgGf8`~PYr7j-6>xHKK( zKN))$9Ign+yb5uqD?!1(C4_lHX9g9K7Rs*Rzx;U$!yy)t4*J;BHK)$~c#ezCYoMGu zx|Ceps)D?QZ5x_nZQXi^wj24neJIfXofW8RdDkK7hh6%agf~lG(FRbx@fQ5fcaNP1 zQI8RG@>rr!!7O;nWG3n~D~Ibtdprc}VaviC(p7M4?wZ-N zbLm6!^L^e44dR{bUD>fdLh+hql^2^=csyhK`JjqPc7fiUDed<)DtRBL0F%V9{Mlbv zKhscM`-M4{<}c|Ti=P9czHjMM>F6>%Mkz@GvXi>lhcgEWR?FS05_edOSr1EmR8Q4{ zc*rVdl%j%+%x@KU zPEm?W`QyjPfSL=Z?(z{S;XIyK5WlQaya5U+dGR7}4rXHh4e1{~tJdvW^%$4R&$}zj z>WHeJZ~(Z$0)?l&9RW5HiJthZ zm$swiLVi6poT=-jB$z!Moq*f>oEh5UCByktv7T*>+FpU=5x4TirrNJTi15xck1xKtf{9DbXhb+FD8uH5$EdmF?YhF5$xh89t#*YB8{eJpWAw+;sU#TM?_o# z0^?NrNV)C8>WK9sd{1k^Xkt4OiWLyUr@h3Uou!05NR$p#c+g*V&9nbBE)d8Gx2Ue# zh`y^5t<}G_i|b<3#&Z63@{bPNsQMfXd2AND$*!Q}S80bYlS$tpK#Gvs8Chx2M4E#Q@ zOpR%CMv)|fiIHCLg$)>ijC__dh?1EQ5ASys^&>!F!6Q;*J-{g+hKoz$h0&y-G!)kHv3Z0m zM>`{Kn(XBZk_TLv*pLt*e~87GFg)O_)$W0Aoe{+s=uJ(X8B4DSdX+P&OD0nQ`82Y2 z-L>Ea-wyS?8hk=!2;lirLMst|x-si#1$CE0V3>=IGS3S?>Wy2zp%umLUmW0!3;2Ma zoJuN#t9d-`$HuVaL|b(M4czjBNXD95{O1sz%Y(XvZp*e0@nFr)9g+3W8zG2OUd%Jm zWS5lhPF;I>zD?JAifHmP-QSDM;Esvht(=|MRyMe;8{TqaHc$^wXcF+Tgl#u=G`x(d>7MBtT>PVSc=$76 zYdJ>`I+HobwlQyhO?X`u+x?==WDJRR+)*rNysk|tQtj$3X*81kAiGZw8(pzERL$io=49aiy3lJ|_7P(63;G`LHo>}(zUA!5EkU?+CJ zrPekx43aS7NI&jS<5PUckUJO^QAzL}2f_R$npb8OBsb#`!D1W}GU)5bNj2<3(5f9% zdxg^4O@(0yHM5sPpWQ{zru|7x-x~rjvV*D~)QkjeyB2!_nA|<~EbR`nPB0lSgn*Yl zZ-29?hgF>p=>}ALvcauw(3~mWqEu*<&B&(E^J239`XL;5`<=b24s3r4T%?1TK9#%1 z6kJj_-DBa@P@&^6!DKPBigrRj0XD34WT`^!XojtARBIGdB9!D>`(CcQgf{Qf$sufG5I9&T&3BKo`cdCwAMu$ zae*t=-04gU1L7-`8l=os2`XW2<7(AVX^1H`UoOxW?<)*tj~PCdb9*vzBa`}nS7mv* z$>9vO7m-?I!Hq6InnnO09`CuRx?Gu|TvahBgT518bQ^Xu-*dsy$xI z<+iWK7F2j#$3V%V5U#m_$f^76!Vu$_#8DclLKHn?u5|9hixTlruVpnh#F){L>wAb% zB_%6rf!U%8g7175CrVBcNvFi*1%6%tS8=yaREY@48jwA!bqKcG?a9xBw)mr`&8Kp) zxZ85YGM}QgxOw%Z@R(J@j*czw-PBo>XI=gZ$y&DJYj9l$eyDvua*yuAW6vK?o|?#S zfEa{En_j0$LjY-T3Y6Cf_j&g@4h;W?)2l*!u1TUTbcRtCIuc#|_ib3hxE?$)XLF5w4Bo6RbA6FesSe$A!Y?Yz{ zHlz^)-Y?JhIuf~nUt;xOVr|tkD~3omMF4!fwxo+T6SD3b9rBlGeg;9Jk*^f-?QvAM zxtv$-UX(jj6mzZ?!a|Ij5jE@Vf!nY1BGIKWhcW5ig!}6DWanAGq$Fu#wE7Fp86Dlr zzmTeP-rtd&Vkg>(ZEp*SHuJqOE82%C(LL_;j^&A8w(7~?RnM{Aam;>)83rV<7&s%! z16nQUsWY_6ZSC;AaKuK5QUEc3+%@fE4GGXtX{6=Vp zs}03^S#~mrwWu7a{t!?m3p)=#JvV>m?`4A=)(HIcX zid;xg$eJLc2N_oA72CJ-!eqtR#gY277i^8M>(2kbw02r1J}i?L27P3B=v8G zIXCQ!v>Ov_t~#lH_Lez{+l~@i$nH$echUL(AAvb6!}5pIObt;C4LlFWF)Czm=|bU1 zNADTx5lf*B8aL9|J4(aYA7$X&<5D}yq*A4}5`8=z4HJKX1sB_-i3-1Ve!$QK#}MW|!q3WTmKWP5JgM3XQ{^h)rah$Un!bW#Q*?rP20NXh{BXfo#kb+T>BGRY0%b^JTtk$XX1m*M(7Tui(Q+ux&3a z7a!XiNx39um5+xZ%{+faK67U6;>;0r;@G%EfM}bBr^|Q?+zu-XRi=f%4aKw&bGI*I z5lKJ%76u=S)88cK;>C0FqjMUgc7FEZTM0=%Kqix{!b`ID&{iY2$))s7HIHUkH(LPx zD9?}qqp2rs233tgU_j=(k&Rua%^%!$SG)f=D+0J+rM_yELRDCg}~{&1IU zY%R}8_FyQbP0%UpyukUzN?~IwEpf$u{MrWhie6AyEy%>6HY^_ZwAipEM3ix>#fZ4g zdN;BulmxaLayq9*Qdto#{iiv@*5Fkrw4H_-sQvj)UJi+aEkw}D=VtxDA=SQ3fn0&@ zkAkt<61P(sOdb{cU<9K-8bek-I5YBu_;s|tj6<-c>-wF~_4V(29ZM(C17tqn`*E?a zXF@s56M-ZR)EO9|+ujCs&?mz&f!h2W;*(H>_o zT#j~w76A$8LyP95{1gXc=yK7%O%pMpP~_Z1tQ7WP%Vklr+fgu$%2r;z)HD*Na`p3@ z9y7^*TYcgjVP^r>4)0*Yav;eHop$ns{sKgQw>V3%@<1;v^`(mJLBz(|g0HZ#?vUrG1b1p6jQ~i(2@xSWVTv%$8$^EZ^(J?7>!RB2+ zsxaU`osSEra==r3%tz;5SnD9)sc3D5IqtT`Y@SZ9U!kIGdz=JvgT_PPN1%x^1#(Bu zN=%U$eR+?^ifL$G;V5Bb_#-&@WW0dVTkD%ms06ZcKJ4!xJB*-eYBWR(EY?6GMvvQi zb#YrxVoV-GAha#J8z565v{a1gzt7W}I%mE_J{?jH94$e-kIy`u+8i}SWyCbuPAJ1< z+>vsVwEn8iWKaCthTBgsP5H3{JXi!fwQ`!Ys2ifku@ zO37$;A!&XMtdaf_oSTNkY-jL)>A#VW{!O}vMWB(x|LG|4H1#~$MbczGype?rew3?v z1fS?|9p6KQYTVQUQBj9RDm^zm&rC##;|LNG9_yoeV}{}d1JM)FE)(C+tCkC<* zHztgG>OK7}nQ>82r2~#1#4Cmdx{Dchq1FK;l!kCw;M@!&s2FdiMZ@#<+1`tA1l80w z5_m7NNW{BMvIz;@f2vNpH=?T~w|D}|tI?o6hW^R9T(&dW`4Ib9%9)Fwzv;upl~yyH zRQ^A&lLcwu7FpmGm7vqW9lzYSav$^F@>5O+7e+|-lonW0)NATXqliDdim}`;{F#iy z^gWoi{;vHBMP5L6)xET-Cc|!1Z=XN#kOyeVhI3x^QoU5%OqIeb$SReYl-3Hkk?|$m zAaO^(qq1CVaiHj}cb`;SGuA}Mf~p#HpOSEJ+Oj?(xDxte!gwF@PyvXIjIL4)|D^oY zw1v?&;{N*gNet<4E29i{{(u(|cT-CZf&@@E6E5(|8J2WnM(%)>q3GCX1X7ni7N;|^n0vsC=TNgz!7)ELK{?)XXJDjT7fyfwP z7A&^{6&nY!$bVpxrSRQ&)F%k*2U*nuVQ`P#YR;dp`H{t%1G`Hrmtc8(M3f4d9VAhBN*wm!UDjn2zZ`cPnjZ5!cLBM zTjHiX3rV+H-(*S#4BSp{qN6r@NRt1)W9rRS7%GnnforEM3HWxOF}!tVGUQY<)$Jxt z(0Vf%Ud2RmG=Q%yW1)5ky(dy6>s3)~LzWy7KNFP6L)XTp=gMQTyQaw-C8B7}O##I% z8+GU)NJvqV)GJ}Z=4aG0JQk>gXvQjOdlY+hC_bhh1L%Cd*=OFI|lDg)FK z{>#qdj|*NNm;lDwtx2XXSGE_OEk}pIA-Q%DEMbzfQaI-7*L}Wkb3X)msaJ-Bv55&c zS349UyksSm(hZZe%D27r$`r%suwUW)7w>L=aENR7>8p zR}mS6)ViZ=v}&c#tl6FUB5M;y!)nW|j|1!rNt;@}TI}Bui^}x5VTbOY71J_LQL1kQ z2x6?(+`P!H%lNuOb=)?uSa=U_Ni2tk;v;(E#{d{Um2%3C^~qg)Lf%C@hu|~h&Q&^N zv*_i$1(i%;yLO&rI_0Cn(74p7R_yyP!j?zb(U3=;r-7?NkL~taofr-}oc-wps!YLN zrfi`&RM{!(ZfA`l|2>1L)s@k}FbGhmMq2QPBk8j`-|YUXxxOMVx$Shj2gPZY&42Cw z-E~IIQmrk6y=$a>EKLCBjcYB=xo{jLWB}}13V3nENGH*WAK|2)8!!H^1~~p=bjQ`E z8nFflV*y>IDNrZihy~-yF29kg1z}_aks8=l#Ek5(s5t32L8~OpLMrXy;Vj$P)>N%i z;AnQHGPemL!SpyFAhQWSaaJHnA0Ehy|MVn9Q2gTqJAXn_v#jNjTe**iyQR~&XEAx-dx zgWq$9izW0$Le0YMPhG4XW5O1~fZyMhV=Mi=ugyo5PaW16jc@IF52~sFFclA}tSwT@ zYvfXfK0&l)+uDn*!CJ2-9NQG-1ZSn22(9Dn@>X*U#xX*Zq?8f&D9SrOUJJ7d%Ecx} zc+$_ZyU=Ff3lOGwK9?GU0b(IMKtzG=7a`^l^)tmXMD?RQZ_`=eP?9(GCivQs3R$zHt;;>5Nj1Tj*>s)ZRO+4)I>O66mK8kWBW8t#8 z|2F6^R~zZf_3UHpXn54VS=QGPtW5?lU)&-p_FAwe;%ccbKZRYW;i`C8b_ zzs2G~sECW-xI#tT#z}@_=# zFzZILJ5al!AbQWn>+%(A8NK+69}q`wV6irMe*Jb8L{iE2l*BTlCCU8dOrg^yp;PRF zIZQfi7CI7Njo?3)&E9@f?& z{*XdM@DusH(<9>sGRKb=8aghI2pGBa(~~4Pub+;D%TLWZ!>XyxpZGDLYg59)NKX40 za8p?{J$zBUm}ed}PnyBsWUQC5kxL^%g-I5uHH_)Oq@h16&EUbRTOPLQzvY-7qltI@ z47Yg-2j7d_eXj2sgn3oSnSppq%BLn{QafyU(?h6e3j!<18`qQ@Mn^&RxwK0$lLa^Z z*EToTj7)Iy#57@6a8gTiKWXn6Pyt4huV+secZ~$OLbVevl^8$!fNv)IKtRK2Tzl+Z8=rbu? zg;5Coh}PONvobz8T+H7;C^g@~Y|x+`CYmBRI^nBHLgY8?cj}_3!mqXi{fLWSDu+=C zhG`1cfr_bJxjxFp7d=45g9WR&nLRQdn-K~piCqDbTLVdcoGmqjF~3&pUd;P1-%iEl z2Qm&13tW%*BMR@-vkIQ}=;x+|mwloR!X^Sda8=335O_OB#31Y>0s80w! zRmT5otn+u-A7?7;Tn!uyd?`u z?n{X^NIo;+oG2sz@dG6OF;0S?O?uAPD-Z#C9TCkaEwfrBKnTdgg}xN*VU6|i zc(o<38A=lqo)_hhE&#tHHh3@UFJ@PmJS(nvyLYfJMxPY-MVS+7htOi$Vz(yzvBPvI z;qXT9^vavuh>iV8O<9;g=BvM>!xz>=&kouhL2K9J2g7Lbt~;^`Z# z_UYh*^AGBj?WroH|J4T4!uyUNKZ%uhkwL95^M4sh_flQ_anM{Q>eLa>k{K#45p$UN z$FZ1!{+*OsCUBd7xS!n0*xT~g-Cv(h>Tz3iJ(*@@meeS$MhKCG>xI3sI?pq|FC6Mc z=tJ%BeTf@$fpt8G6w3nSEpRgztpI_XiLy@(%UG$tGPm7GXKW8ru*l%*GWj`NP0ipWj7>91E9=;{P>nC4W zNj8SA5d^tAZl3jz4e8DTeMW~oKf%D@u-Te%Ju3S_?-W)DgoP-eG@*QFd?zDmCdg# zi3#DXiQeC#=6-Dvti;s}_Z0+}*P~K6DlkG%aGdp>Htyw0`Q(<$4j5H7wy~{CLv4ny zV++wSymp%S;8v9ESeK5BIN?1kivbbw-OYeI-6qI)UCc_}Z=i3FdYOBL{Vv3JW(qfd zkHZs+9gk+!3Dk-mD|H)dnDIk9?xG1J1vO~&BW)-oJ6*8i=`bB?AmQfbPJm)GIQ-$0sIyZqHZofSAyU)AbezeW z^b(2n!m4QrplIj;9;wk-S!p-kBbK0AkuLNVey!~S5Pms1W(`vme$mtO*8Uce1}7Be z+xT2IH}}Umw<|5tY>pj)g63^DsoloT7+_7KUeH735UP1)$w+;e||Sc4l6q7M{?aC700AZ zaygI7(P?E1S8y`}*!;$F*d|b%FDH9G3T>7_K6((f0Rt)pz;}agHW%wf`Pp%eRr~YY z;BjF(;SQ?OeurFUB>-hd}6CS2>B~5 z8d`Pl8RgQh69eL{_pPA$8Nh{)eipy_TSfM!2BZM^5w`!OXO?$|M z|HqO2gDZ8Hzs6dH)Y86}i;j7RhjHO`M&T7M`#y(R&OD|yUeJ{A%?u_olfIz4T z+MC{F+DRo&{)Mim5_R=&Zb7T{ZyJOrLQI!{9^i=SyoO*v8uI2FuXVP+68^-dDHdHx>15s3U$Bg1C_05(q#zyu8Uf({hOfp3QT8msHuc6HFEP)8Lz5C->|< z@H$NgjHGF!kZzFUI-iOi^hg8cj=bvGU9`mRffSdF;l<}Lf-n6}0tYbF7KJSrczqEQ zogsFmLw0Z(NDl%|ZWf;4rS6HPt&l5yuvAuOSu2zgMoZcg|B6?g!PGU1L%heQh-4Le z`c$`oD*9AB$ADFP{~>(#+&Amwp<9;1zMfd<-orgcNp53CLRNOS`ZRzv55eI znz{uiBQVKho8D3ik7B;V`G20Y4qEb7Ej0{}ftcdg7H8TZrt4a_8@B6nRmWZ7V$Tol zU*5D$z#N$BQd%osy40JK?LwCfBEpY}b^$g;F&nE34rQ9Fi+}X-UFoE0Z3^d{$oW!| z069v~k2R*?I;;8S#AT^Pf!Q9>N|4Il-HT4w61A- z%@OxhFDTKi5jDXtxShKlBmTCQ4@m&Sg&)qO+CdU(_q^XBtFra(cyIt0Ur~>a)`z6@ zt)8lD6!;v|onw+k>s{r4)ueoB46~mn*k$*$pA=X^E8HMwEEXwTDdZ7KDKb_PO@r08 z%dwq??S5L%c?}%SI{?xrnIq)W;8Tq4+Ef0_k}%oFE;Nt{Uf$^bOs8C6Yo6Q{DtiYz zG(kX`J^-dU(TE(CvP~D<{CXsR$ScmQxbmy#pEbAp8|qTVRmc)n*U%bpF=gQ*+;p;B z#VCAmt#&;e>+EM8!{UuMAuvsODae$atgt|lzR_hETtq7 zK`9@{Pi`}hkKdjTy7(H+tu|kXqS4|MLF_^vYt@~2q$cI;_Ax@NTWBeG3vOCzQNvif&;1~ zpBO5s;a*B~TX@kA6n^ls$o5+NTVwJa+o4GaQ;IH*7VfJkj8G75<2(8QWK-F#uxs%f z-wfEbSCr>#wMXPVwaua|;Cv`oGN!ckCD+YPS#c-M2h^-CfLzQIR`}@uSD(a%w44y` zp>RI%G{rjMy4*to)X|T!;6S6VapTl2m%_^FQ|WN!E78@BGQW(6t7FO18bY6r9c`%G zDxeEjFF7>`Z~$8@7ArD`MxOJ-6_RDarb#VJ)&0mR4|a$*sh~H} z9uH(_Lg|q^Up?&F>ggSJ^?|j(_Yy6wSa9`(olvNACo{yAXH}G?a}|G2Y2o4_ruW+F zHe2w_U}W+yxN2;Geg|~B!0;F6@L@4=+*&^?cii`S@ z2{&~Zyw&$0&W-laaXLpL$p?6Ii zaC;3_9suc?Gu#(c%n*9WVtd}cTDj%ap3!ab_H=}uP5YmnV^UA9e05X1l{AiFI^n_D6+$r4e)ODpl>5E@K0_iY|?9 zm2t3a*{Rqp2P2fsp93r0eE46#jVbE(Eiht}k*nohX_fLUv8ED9H3Yq3`FoaVO0~4y zAxd;n0Pa!iUZ8%wKC0}jKx59S& zIsd9{Ot;0{4ZLR|D|0E?u7_vZtgXaw35|zumW>cX-OE>=a)A{!H{hxw@H>Xe& zekfy{(fODf>ti4fULuX&rl$BtmEb{IU#dUS5e^kc1kQ)s90L>ZiFtmKsP-*P z#a`y?lu4+1eS0p;yYUQlov_7b4l>cYMaT*6MtyQ`;QIwqfHAbW|%6`Vy(&I`r zM2tIA8hxp6?{bVYM5gI!LP28_dnlslu~*Stz9ko-_bWsKwRwZ~;XGod7|1ozG0 z261Rv4SGKv)eVRJzCM*aco2B!f&yW<<7f`Roz^cVKCm5oO?M`jhax8dM6ex?}+hmpXm&bUQo%-p^S|}XP~?B zo@(xj=wus!!i%>Ff4?vzRBl<`-sJyED?H|^NI3zxAaZqB3YE4z$xvl7sk~r019-I- zKKDO;`aZfNa3J8a8NJ2b_d+WwC_5Sw^XM9U9aThTFbJTh7b!T(dD(6zCrZi{4A|I! zy&g{NBKpuj^-B+&l=69AtRTA57F65zYq?6IsT7rnr?Ss@@2S##%NJGP@5t~LZ@3^VkD_0^P4(0b8@2SBP>cZV zhENI{g>MKaJ6!S*WAn*>x}F^H+jqP|+N>xR$7EHeDH)SeJHoOTd`bdhJ(Xu8J9`RS z8huwnT3a%%fw+1k)LQzyMqOgnDg_O4*@Sm}%8eL(O{1qy*%1Fx%*e%`^heH_G)i1eSmBQck80##qv}mOQnz|iWn_8 zNv>WUlE{AA3+?7**AXvhvRTsJE*V*p5-jH~ABe_{A3ufFI@;DpSZth+I6m+DHTi5b&Q$ z`J(%csQyopCHT_L24^olB!7dTVXC`XwgE!##7d2>Fd;t84!SvNsvFytPN{|ib8*P| z`5?MF+7Q^j+t9si=~Fv=yRZcbh;WNd@oYVwf!*Mtv`yNUj%sz;h4%jL1S1%iJ+^{o z6l*=n#!(?*W3P88mVbs}qV?FB%ac4@(?$kIt!30yh|}3YPzNv2QS)2x^|U(!Qrspj z%`nqE^Of@R_MLgv{_XWT9dk!gscYRJ0;W$V67tCX5C2N>KB~x=y5z6^y!l3IzO6*T zT#F=Ud3f!sZbm1blFyjgNHn8AUKNhOTz@F2`{=zs=h-ozlq>KIJS08B-Wg75HU z--5jlN7WiYatA&kuGbGLX zSLO>Gwn7~vleyU4?JK54W?G9{VDdqM2%w&5&YjOF2=nKjjM`S4(~NMRRsHIQY)D6- zoCJQ90El>^B8!`@g*DArDFVHQ2%pN?=cAk+g?T|&+5-4P*WI(LE+Z+tRGP*{E^ z7orxQ#uM-%Eh&Weh4SoF5|?%3n8m8G6PS1+UK<+@VSF_Yob<-WB>rG!vP1%rNV9kI z+m;|s{1~Z;V8I?4iTMXqQ(z`RYr2AE4;QbU$_^!!5Rab734zBoIz;wYO#>w(5CT+H1?xjVWDMA5 zFP;sa!T$GA6lIg5ix}k4=;v6WsmolmBV{H{u+b>OSSW@)+Ng8355foDfpjVtg&lNjhMANuE-sQel)y7l}=jroBJWoTm+=jQDT$I+@X>%OjRSGolwhvUHo3 zc9>4G{{XF_#%{L+GnJZ{RDfQ-P|bIWo&kT;(<$e6 z*NC0yBX5`HMc!81N{*LSszeh^xM?Nz?+l5P!g6>W{1I27TI~4x{HMept$6Qq&h1^7 zGB@5mjoe>#kgk0(84GzLo5iYeKs*GIZQyzgCYb~q9K}n^RDBEnB22Xf?NF0ktGWE& z2(Gpj+$WtVVuMLY+NZxTlGar9MBxg;ZM2LFb^%9NtbOD?PVXXhNedHS-2ULNE+QYH zkw6Yq_|-SEz>93MSfZt7-+2`LkG+)~b(bC2O71-;)Eq~4W}m)?3xIz!Nztz2*s!nM zKJ}iGEg&UbBZHO}VMVV|t#`oNG6ktg#@>*W(fwN^BNj3KGDXvK#q-Kx#bwM!$QI;o z_hiedlYfjTCHpBBvY*&+Zd0_5Vc{^D_d>V{k>h2M))Rm^Bt2 zS;es=n8gw*OIhR5X-W$bp4XsTVB)X-SDlwJ=841KC+A|P_hcFol3?<5g&ZVvj`*f! ze5RWOPeo&*nJgvO8SZ)(-X)B#lVX`)o6oZG+mv?n zF#&jua78;V7Y6?yf`7vU@S`LE)vQXyi&d**z*P?hQK4ey6}kqI_dTrhRh|c56Y8GP zH8JPG2g)j?((Qf8kwqCqaVlOf`axjplzg{~TWGVZhE%Yf{L zI?ks!_Taz76EvckkJ>*PZ{>YAzC~(#JNc`hLNQrxPdBdgb-(+PidnxDTnKWRwj9^W z+_5!?;sQeA0G%*`KJgb`uNx?N3&!DvcBzZCC{H6D<}bVO>f{LhM+JP2W4UrpieO?( zyT#8AXHtWK&Zo$eEC90wYbMnoEQS zime`d;!xSVQviDDO!fREcq36IZ&KjdvI!Aq5l3>R=Q7@!Iqwy)RT9cgl=vkM3OX?B zc5$OSlevDDISR!XmFv-f#9GdVt)`MSz7WTPYXUbcNWl)F#IZ8%si-nCZ(%Fqe}fbT zhT0rD%0|Ro!`q0C;{V(y5i9n|1>B4Mr+z4BzE7+-3G0=D)y-rkda4^mIr>Om#jT$} zqFUY-f;7ENH6+9s7mOhVCKQ4|T34RJc_;wl!PbJn0a3Cfaw(q>?o@)!q99yhEMUu# z5DN{#A6?EsYreQ_B0EM0r?$hj(!7w>m0V&CHd?vKD~mb=>|Irp1a_uywmIzkeh`j+ zjQ5K~4u7OYNSw(k1AuLGUO8vu+^ED;i4Sw90E#4=*r+g)?R6~;XCi9!rmuar$;6ol z+2>Y9E+M`VD{Qk758nWOvSY9y`lq@KAWFCAnwwnz zu7H$ZvVSr8rQVajsuO9(2#N{Co0BcAEu20ib*t1GxMr$~-*|saW|YoU6AHaT6wp|_ z(_0i+Mo;pzJ=s~yI!Fn4`}u{$E(fh_T|s7Pl|4SQGk+{3!rs^KEkk<&4XtIZSNC&( z;rA41^O(D%`wY_UGbc4X0RKM#z=%LDBIHc_gpub#lKaznhd^yd4gD)WXW%SRE*8Yu zaw2k)g~>1PEuKPFQ#Iyy<(2s9+}=ZmXP3KBP&~^tJghI{HMPXKhV>JFt!aqv-~ku! zb+#9$jo8*AVa{--bj!8&QbX~!?16Q^5_N3LM5?~hJt|KoF*|XS6ogfbJ#%Kb(M>|W zXZJJVnywiS9vbLfv*;q|XLUnP0TIF}R}R|}!+$T(>Isyy$OP13xMK8sJ5npvqAg)zb#cX8eqla!KY@P;n^#Tyo_!(4%-*0*MExWvvG+9@xHqC?i5%XQ2rz!y2LUpRmCgAkFq_gP2>Wt%vm?k$I zu{JF3XL;%5#vU^Xg+4)(_n)Wmh9$w*R+2ZLZ4$CI530UX#m)>JfaR&X@uO- ze#hKR2C4Z*;OeK09oTt>7*Ly-x^jr9RCb`Pm7Jn&!?Ei(&c}_IG0%f{If8B6=Lh@rlM+zqVT~y$U$BID<(=?tF z;^Koo`SYcQs$6{A)zi-FGI9_qb5J=^WWGy75 zCZF8>+P^$HS{-zM;x`p`H>>4gmp$Fw!S991%w!m>ua1;Mxd-Tk0NbM+M9Y^CyDfx` z=lwQviMP}2U?g!c4JdL{q4=hf0pf4Nb?`(0Hpnp?Cij3AoLDHu?zu3%2Tx|Zdw3ht zn31~zcDzT9=`p(Wvw$2hVMn=JYpbO03OCbrzcscXxP`3;G}2+0JT0&o;gfQ1$CfG4 zYhwe{x@N4{CK`g5`vrZdxK0MrR+$BBk@41b>t!J_5Pm4t>8s&aH`IDvMcN4-R?4<@ zXDaUA+mPR&jEA0Uqg&y3r@M2O0EpHRk*vNilKNjiyAm>#n5~25X2yG|_!~iV_&4-J zULTM03Uv~}W^ML6Nl#+K$p$I6HQdY>!vsqwNu0L0Gyd@~!?>J?^=|KbZzp7cuw=m! zWUlYQ2}#!^{tu0MX5YVf40u)r)4=z%i!)Jby>;CgJzd+#FHWIXvPx~_B|>To)0}j@ z=Glb2{Nq6FoX*)yviZ+u#STzLp2Q*_Zk|hM zF$SG*YdztBh`nw6F^RhYDl{O4+QFvk_fISr%0N__btkk0rf-)MN>ss2u;^Vk4?{uz zP$#be#W?h*mLgxBuM@f>ys`WMyaW&)POnkxv!(~ zjj&ZKu(EW%W#k3YE6#~KE$kMw{C-;;>D=!d{uv;|dG5B5%87Tuv7kAV-OMMudG z2xSq=MvDpNf103fg(jO0C6|Bb8{HJ$yg3 z+N`BO=GtY}(7`p{d0#q2r@seH;gt9{bGn9`5TrPEZ78!r8HHQ>-1CJcq7x*H9VBq9 zSga+X;IjQ;a<2G7LU1G|rYs&0MTOs>%yIT!#Bos?Y&G!p-kT=EEYv`Y(vb|Dy$4rl z{iGX;bSUrS*BeeU@!ip9r0q)NW^&=5Kqp~sZr;diQ7nTIwsC1t1A=CR)X-w0P_KA| zgp4}xmO7`_9Pe-O49TFOaB<#x*qAU(f!ocJBcOM=UR1-a&`G}}o!2lUVwpsB-aV3Q z18f`FnfB)cJ~X!2Ie4`W54P3qi#rUAT;SY#V{fvhuX`q*!UX3)&DNs5;NI{c5j4P! z+jrm-@oubpAsiI+VSqy}*t`uuZXs1=`K>PZB6Z) zF^wK7tojYGT5k0F0O=mDxR|Njm+IIu=N0HI0)3%sMd|VOmi)RJdT*VZP@PJEZl$!pkz~yS4B$*82ul|wrY(+?fW^B$ z9{FFcO5CR+>FY<9p;Q!|02Kf*z*)0Vy7#|>_wVKXf$iD+czFf>ejh`WVEnK`BS@1z z-uzelG*vSoPydE10?C0(HUys+o(=to%`p{L!_K^hvx18f@E_bD=kjgrdwo<=46-** zFENV^W%w@1$~lLTmFIz@9V?f$nh1g_$3&T1LlT*VA?2>RS%-?R`{Z1zvcCLE$6xRS zakfgXzE>gRSMs1Z1!N`n6}g63J|~48|1YhzX*y?=^Vyk8BCyS8R`_$=UJ| zA&T{vCR^9UF&`qFD1b;5y(L4cTTfY~VYB^NaZ$JqnF09Ph>(A|7BdsX%n_RcFq9X3 zHn{9TfBLp6BD!$##-(3VmK9C8h{%FGAEsY*yh@J({^UwMyHaC-*D{%khSy`?piDL! zR4%d2(EZkY86i-|UkGjbirADaYItp~=HMr{kCqng;UW@^oM>*7MgyHz?SHhlO=j zFBQ09R>^3RB2=D{#(=$4ym7a$jA?1V(QVa12qyAD@46*d04W*w5d0QMxfs&e+|gF# zz%V=5IEO%8PdSgO>Y(zv-Im{b8WjD%4^(AP&!1*wEPMSGG~w-8;*ZI7-PJ9P?{N{Z zeXpF0_c1>#YDC5NA~*-oeNqnJzD8o`#8djWV>58pL2>hU+g5Q*^xe-;kK-s%No4ly zd3!z%z6i0=sZ*amRVHkIk2*+W1=BAqSXD3#Y;JCj7YTl|K&)Dn2d*_NQT(@Bn*LK` z30+q+hn!sNQgiVeUoj(!4pH(W+I!&o}ZHyqRZX4;PD5^N!CJu=Jj@W zda+A$_>+FtHs>0s(YnO@{x=P`SYvv5L~yqSC=B9r;zf2{nKSQ79%njU$EKl}6?kX@ zpfh84)W2Ht?S@Q+kLAMk6&e(cBsUYjSY-A@NHe-WiCJEUBoAk>ixQ#z9TjT*oKq+1 zVGHddA*jd#L+tfnNXt4L;A`9(YRl}Ww6}|8mL^!#H}g>aISs)?b=gfEj$`UTz6uP+ z2D|*WJgOS-Y5rF&4TcCWsUx`;^X`3#^E&Q$AJVqH_AFD+U#cnb!_4~&V`GJw(+v3D z)(mCRC3{yRO};pioohNCu=RI^FE8Tz6LiI+{f~~qll6|0qAS%)>Tv_tZW}o@2f|2E z=Wox=_-@0JXsa{N^lzN_+iR2=1K}$1e7r$!zwQQR({72XBob4)v#gh8B z0-iQUP@+IUArn2u?{G8Dvq|;Auox{KJ*pLF5|p0~WVxHJ1I+%QxM1QZwr}$|9!pAN zY;IAkQoZ)gY#LoEHcxBfhBvI=*OQ|TTVX%X4-|NtHG6a;F^9QWA1<2^E%wfVls@{> zv9qIw3cQ@d^HJ`vZu5DP>(>V5(4_+DMQHvwb+0?A0sVa(EXIc8`B+G~7vC&N!b6Xd zdc7JmWCb3=Ctqq`8A^_4e!_B0S96{GO!Ndbae*nT!j3qY$F-E_y==j-hzHJnW|H)uXLTeZTQfo;kF$zKwZ}XP{h< znKC4otxv+bu_JS_fDAzEW&R34n_OF42}LdmjvO>MBCH1ZIs`e&2Kw#mxClRO3+J@| zKzmZMvO~}Qv+eLt3j^q@Zj*)M6WQ-G$gR;Nop>CpB(YQr&~P%q6^()6M2mdA^SS`B zvW!(dhWIEUA4}~Cux^?ozj!0tV%cTiq$k&u_Ujo0Xoxs9UJ!CEfp1En% z17f(Pd9^FB0_<;CoEg?r&%XE<)@o8K%_*WpPq%WcqDl=1%AZ)JK`X@s4h@&fq@A>A z37iqcDH5*X32$nVxpZ-%$rS*WC8TZ1QucrQA&@(`5=PiBhK0wZjsKbZYw`76>(nI| zC~ABrqr`|-1}n4?&rqv&C|(OfCCR0i2xYj~C@!40M4V2J(-a_AG+ z3QzTa=VQl!=x(c^lb&3mpfX1@%qp6> zmKo%tHit&M4%z+w76s3K7RdB9Hmp!9PG{Z`m8Ae3WTP=Vf|so68A>( z5o|W#DOL-Bpa#6*ey+|re{chKSaJ(osz9XF!-`X1j1|JGY8GVSEzK{MwNQ~V3xxai zf9xyJoh^w0mWa$Z4QtA@S0vuV1xeE4|AzrAN<3HOv*43a5?LX`hg+M^>QmcG^X>fQ=R^DFj$x-GZnUXv zBw8A5rb3mKyq~fd(Cf0P-sl4UwLn+dJ=M<@UGdUki8V_^m?gMj^)a|K08tIIL^Tc) z$eY;c^J&^E?3>;Nq-7LC(l zkR^7C%@!9+V)|DXQ_lYKaFW*QdwIQjzC4{=DP<|HmPz+TKFBdhCqwENTzWdeaFV`k z1B(<{;f1xOqB+z9CfaI{XyO!NbWY-B0UwElpA6jeE-OHkp%S({FP|ce5y~Bm!Si|u z_CL|RX@75?FrVKH1FiUbZNzs4&J8w-Mz^p-d&W!du&>SVPrc(pyQtfidAy{&n8_ zh6{yKgJ~pg20Zc>wNGs;hfuKjbUL|ch*cR#3icn$eD8_U7nF(HXw?JlNqQR?$myP9 zKvF2Ns!<4D&3r05ExQ5Kq6jXQ(^Gg%Sws+ib^KvBl?c8mBhHC8rpXB9tV*S|)E(#) zrE-)q7N=M!bDR;vXI|EVaku$z<@SA>t@uFJ*84-E?loo;=O|%sUG_V+9Q1U^V z_wtjcY$rdLJ>q^7``9X?L@{>u$%KUJwXtV<8alV{NomhP-1Tvf$2Vow$x+3}Dzjn; z&Cc(r;LrW0{#6X!1YJ$?i%7vC@MNuJ#BgXSk%^8(j; z5wnPM$_hOd_+$1xKb5s)PH6Z0qh8u#i9U474-~Uc zqE64SaMP=yQwO`7f4P_)TKake7K+2~)jE~G+yyeSLvFaSSTJpL+Y!F{+2i_%Z zLGjurNg{ZGtIaCb&#j7&5!7fxqR zECar#TOhTJud|&-hj6bydcH$IuXCiT(@(PtHOMw1!(q$3B*uR+Xt;U|;>=%2zf=MP zm~q}hTkz31viI?Jo442xu+&>-FdFHW^d$Bu;+UNnzUU#O^{!h~`b%+T;OggMk0JUn z0DiTob2DJU`>LJKMG$F|XBLuSAu9~shw!X0 zcIptSWjAgAS#fpm!2UyAJ{I&RgAU$o+B*>Z&VgTzgzNiMfWq~$>e|F9!=S?YFsrC1 z5e|T>&RAm6%Hvl83^Mcl`~bOmUU2$R@O=xg70!}$AYE2T0P0oq~ zr`J9LI!b5w&Kf|tTmY8!uCXdWVnnwd?17fl`Ni>Kys{El!5(B(#RapVBv1YGS4_Tx zyTbxNWnXG&v5hhq9)!1SA?j}4uIG@AL-D4W-HgUxh6a>mb>Qk=eDa zw5$7)u3c84xp>FJ2P4L2n>LgtHhO*`>L{qIXR(#ebF)l2v6(E|%T-)&rB%^3js=w+>gUpX%Isf)%6 za+=e$BWlxdT)5zHkvI#DQgC!E)vu%47GroeNo3P+>R-=z69371pN?%#z{yOFjQ1#_ z$9+%@h{oyrc*s~41MS6>xr9{wdm8p+bjZ2E8yT>KXs z9O1Q?H;KqQNgD>RDOb9>)}U-Dc2ckulIDpaN`8F1I;W8IckQA~NgZ#$s&O5~B$l+H za6?b@;95m;X;eN$!FhMnF^&NMp4R4F$Yb9dT(nrER8FgpCNwI@o~@}gq+%%KD_06W z!CoC7xCCDS&?mEHIw{cdk`GJo5-z8^RhU<=YrdATO}Y^Rz+H}I%UkbWAN+dRBqh%^ z{3czfTYdHT;+hCA#Yu`9t95Mk&(ibl5=n2=cY(SbNsZByUU5PyIp!#YR!6N@`r2zw zc_A+j2;*L>N4N=MT~`oDgz-L5_Zl4sImf(APeE+#Yixad(xpUUXm9QyUuWK`Y_yQ+ z$;rHZ|123^2XxSfxmP|#+~OXUnsk{w<4R@_()qAoI@#@AKv8Enve~g4G82cC`KH+56g_4PMvGM&XQ6=;dkHdzY>>34GX6bv-{_?Wk4HVeTV2 zAuK{G_)SeAxq&d3;E4hUUE$N@W8NUUnp7`N;~bI$*&G9IlcghGkC187NuSjEa=YJm zw?(`9W);@rt)jD!%H!nhv4VI{q{NWRa7KkD^?1?UniIuO;L|N}1(uuar+W!?xTF@1 zXjyvD(+3`1ppWqtJ*Qj(qj0FX&KdH*GGx7w`iInNzeE4tHOGhI*x7tE8lVm=WdXhe zZi~?sLlh7S1ap7dCK7^+T7Mon8x2WhlDScSZ4Ln(hQGH2QYm)cIYSeOsWPBePK*Cr zXL&(K2`B+Io5Dm_8M(PgC7InuxjT2o)xZ{y{*WFlm9G(ohFlz*b*u2`LdMb=s{~|q zw*YkO*L4q&GD4wt4AyPUQG+OEFFORNG8|u0s#Xs6rA4-ZT>MVZ zC8ApRU7=MmF`PNdlfBg5bB(X#aRES!)TkZg)Z2&LCUBrsn6*=R()GrySDu zlE#{62$i6x#686|i5>JCh_upw`1N>nu0>@G`nuPVG5Ym>;NHh(#CGNz^ZS$IyE~3m zQpF{&>9`9g6qb#v#i7WS81YaqNF`3QmDeEIPhVZ`Guh=y6uV$Dd(q#O3K9&P(r&cm z!g;QIDp-#cC9QzX(wDu*J5A0cT}EWY$!2nyhl8XqP1ERnHAG#(X{{U=Npy&HO*^Oe zTX;s^Fpm-{SYrFJxuApF>(Tm#YjoG2Ms?$cDsLI$ba}Ohuh4Zp7zl6LUJ@W8v0)Lm zx@@|MNpMD|togWl7&i-x(L15(>LH@F42#2C%hY(eB2OR*F?mn$S$P|H)!FPB=a-t* zQQ?GkMqs64&ijCXyMdJdQKi#MkJnFoF<}lxF(!l=nuSY3nmLAzhEL&rvW%1%K7O$# zfi1cEQNB?uv*ew2O+f+YUK2yT4+gent&KRYk&r1O?2;!*0sU~)GfM4i(90lC4vY=3 z<_5BlPvqxAv1R>?mO!_Vlpm$qE7M`mHE=315gOHNM3Zk!D(4>wPOJ7%<5R0*p?OTV zw7O_l@H=^H4S0241gwM|?W%`GPU}rZMfg*GJOXg8wnc)m1h^UjU>5>T#n+u(>t9*KWn zY^=;ZpScsla0W8pSXz2MO1#XYlo@UXXY!^1sE+-d zQ{XA3_3UlhFY6 zOu035tr9#D(6&dL+x2aur~KrLNO2Uoq~KUSEk${NZIv!)Sh`Z>N};lV^&fN+SG{Rt z9qLH)@eoU_sBR!W-^firZs%0Cpd#n-kZK(Oz9J!pfYE7ETTpa>7@c)I_QG2}cd^iY z7`M^CPhlRwcB@?wZ9_gAH2aSk3q}ak*#U#x^-}%G@Z}4`AT0PbIbcK;`1our4ZXB6 zy#eb!%S@MFlyoH+#$rfobc+LB1Ba<@L`h!@OSk>Tzy@u0_eNPyJ0Jk-g}{ zhdlAL{~W9|B09N(;e@TMV}4AEqqSeUK(e>Q{o)01JBO#l1KL9ffo$IcT9U0NARwYg z8z7fC5azU_2k>;*2GG&=rX;qMKMj=T*-)zbDR%+iJKk(eO8Vgv=#uPehbWyAM0xV1 z+aPyqNmwRTQWTZReCrBPCTR0YOF+d0o}koN>Uz3A4{UiNms|=wr~)Lvsu=utR0Ld4 zy3&j&G{)b4PtC)K`KSJug0o!9_+d~s03haE2)NhP#|rSicz>lIhIQ%X&<~BZE3%2n z@8>^*Qp^$Yr$dJQB_j*orzxL~FA*+c4nN|zl|6Y0us*7|DxhPUpg~&UbiWZ4^%NPP zudVUuwP@U#96Cc?D&n7oBiOWB=TA1y_h}&Q9!C+0?L#zaK>5x{hgnp9=kVj(6r}*Hil#K3 zRyGBY%bJot$+^|*$owC-(=m6GK_4OnyLi)ta=qmqxV% zDJ+I|lBg+d&O6$5k^W|MW;6uGTT*hqKf8OI4%ua7J1&MGgn^dY1r-}tsaU1-Thvi8 z^FS9?PjipdlHX4NSA}&ti!jTFZVwiye{w+IJfKjBPt(N|R=i4F?<5BABLR5;Iq-_u z#NPdn!N{*7bpP`IKm1;0F1Hx5P}thu2=_^EEg6-i1XD-?BVwVrYPy^}FCLE4;*4>0?-EO7=PL z5sZU0gz_@BcUw(onafNds}g2URAV;1;b*Gtr}A8`u_T#Y%o6R3eF%qO&Y11e9k%RC z-6?H4Il&>_qvbnM3W&HJel=JL7D?*q$$aqf-h0RtR4=7_yt$@z<=o%H~zAKU7n$~ibkeuH#9UWW%Of? zEG;B*Wy4*qvA?wi2NfqIQ6k?w5{6|dJu#KY_qModnf*4j!N4}btH6d6KNoh2!FR-9 zn(;G=?En>pEnd1-D$c6a-XohzBN)A7JL<+nG##`-26-Tt+xb!x@h6{&;SMk+UcnJ? zb`XgXrDzi#)ux0^jk>g1DtaYpWy`<~1`~he@&cq70p<3MlcGM!h=|E^c0iXig(k3& zOJ2_2{LsSn4diq$A0sLE@6>|xM?PuoXf2e%d4MM@-*New&Q29*-p1g@A_ODmX+36A9+hvO!F37k}(`8oa&I1t@Pep>J~A05Rp@bmAL}p zfG;QYyQ9vmXCFItSWg`!y%TU@F{*Bv;&*C`tu}K1^SuqJi-jXn7^_y!h_r)V-Sm$E z7t4`^bY#dZsW95m9>djF{GRt|G*_9~N6@Y1?2X+V2J%f!M)Of@i`lknCld9{v9yA{ zjq*Y7+EeGbI1Fn@8l(I@ozCG3G~c|HTHsoK_Np;yW8Kvy1vUgbH4|y=8G1Vwu`k3* zNE33#rjbwb{c#&*iqBX@aAdZ?(O_0y?JEvbVm$Pu6|_~sT;*OTRpJdjxw$%Ox@B;# zTvx8?{v^#XTcU@|;lXWU@=XtffKrJ|-5M8UmWet2EzCZ=;cJ4%`De@WadA_P5aJIZ9|`vzqGvcW4Ge- zRzb7zp>SZ4o5j%dN~NxRej;!O(Ia9lFrY~diNU>0!FE<`iWx2BeJ;ILOW(O6Y zzj2n}nS+u#I`7ZY=RBqmCWxR=r^ii5N04Aanp>2&xf7yN#Iq|CEr6{)xE3FvJSq#T zcR1-MYGm2>VPl2kgg=Qc*~vNN{wA1IF1T(HbR1LrxgSBTGNeev#mK!P!Or?tdNY3Q z6yO>`+dd-irl6INB84 z915R|v9UyYc zP2mBhO#^iih-eI!BvLh%CR#XoQHrb^-6{o63Un%`4AKLxvYmb4Q5Gmw74C(Ckd^%a ztxY-Q)D=awoi_{G7)R<|-Cd1nLsqJ5=RiVJlseXdU!`H=7$P?Obbd-a{zpwh-`Aed zD!SrRUD~5lF9VT_Hcg`!P|n|(03dq`is+lq6X!rjs&_yq)LPX7^S9C1oyN1uwiVLc z6Vo~K3J>0hZ?mUutE85lr44YodM1^Tz;*43I?qj0G}8?N)=qt*F!GFqIz&rZSDg_r0x1G6DG+K(Hs@E^;hMi6p$S7kD5F6#%l9TGh)K z@1e8DaqdRVn^-af?w|PLx`$lDM0Ln-H2?)ZGF=Zhn8h@SYau6|`xHp$pGr***~&)0w3{6MIF~Oo$4(inf}6z(was|zK|~nSrzKe*i*@V^SfTse#AZ@S z`k$aG3uGh0#&7v!8Z#>2?Phxlk1)|_!q%bumFSjdNxo2|h^SA)Jc!ii}>*~NWU6Y=SFK)@_U}JZ$?RQFes-NjTI-nt3ou3Qv{E4If&yNLT1B;sD3= zYD&F+OPST>_8|94f}Oy<-T%{VJ_@2uBrevp38Ht>_m^!bPW4Ucz0~KNq?xrkI|^;@?5r3o3a^snc>heKdY>WcvSk z=wW%=Sg{li_|G=5=wx~zmat6epVGf+ATblAKP&a+GJO#ACwU2xSq_i4Wq2k5Haby< zS)|RXXLiyIvV2#^mq? zQE-Hm0pa_Qj(KGRm6En<#o=I%Cso*}mZ5l2P`ms=dJkIYfP4}${mIX;fAANue4jy5 zPJHc8tzut&Tzd}ktYFhfapKWXR7&T;V8sq6| z%TfQe@9muBl7&o_{S*dP+ea}HT|r)P5?IDl@gQxd1DVsTyOOG3g7mXMkD*rHhthdP zuT8=&#x;`kNnj1Im{k9>$EVkIQ`CF^L2Mbw@;v4F%Vfe(`wfT#FRUf8i)vISXEA%U zqtzxPz8DXmraYz)hRxjMIuy6xD_VlCD=HRL(4qTM9VcDWF1lNr3qa@ALcQC;>? zg;Ap7tsgS1Q|fJ99#}5;Mv6m}6QRu5c>x%B2E}c}0ym`_&MV8bA=n%=D-&<}Z#MG@ zFG~PdJ9l}k5V6(R&8+nGT;7bz1nOCA?yZTX(-;VdF!in^w7MbTc;@7kmgZlVEqN>F z9>W~qN}W-q(fnoDksR8VK5!14Gm}#qx+el@UY;ViXeSlAYSe)alp0;)iGwNiv9ASD zB6Tnl&+)yNc@igM=`tz)@i>VlZg!~K-=kQI{iK;OnY=`*pw>Um?^OLH&__47sYJxF zYX9^B`|j1=Qd1N+9pTJL1g~5N%_eq(gJpO$AXU=7^SQFp{XgI(l6c@XPpu~729co#;fZy8jA9| zj#|mKMG}Ic!y8;SN!Ii+-yR`Sl2lF=*+PAJ@d6R=&$j65v*LnDK3E-YOqPTbc1AxSp zytlaNaVs{8LGs)wEnaF=|HA>A_y%rIiva8iUy`laZaIK|GPo7yfF$tGtRNa#A#JDj z(LV?WL^dz^Xv14+c_y^#EIkxyKC0P6Ce8#O{OkJfXrPod2hbi(@78sKSK4_H2dm>S z6S(#BvV``90lofY$jnQW9_5?b0Z7%hTvM*}o={%q>uz%ljy{9D+q11z>K5eAN?+_v zKz4%NwOME+zDX@)>0F7zSbrY6E!m6=WPkl!)l`*ozEBrmTW6ib2;qYN#$KsMru~A7 zQVFb^0Je`W(KG!|Rhn$=Z_>CMRRHq#g&LuSft(Y1J3yb<=TiX#$f8=}@{Vlm@ALKE zJgK_$CBZYmzU|?)ODX|w>C%)qSQLqY);6Mp>~YFl(@uPLoq5e(K9C^SPLAqPQ2Q^S z&3hsHYMpSJNA@wpnMPC@Md<<4XIen`L$j%%fl0D$a4!MBvg3g%ZRD|rZ&+B68Cm`P zdI3G_eWaYtN1;KS;JcN_I91hSY6H)^QdQ}+5s+YT7V;6*!@z{9hXM_tv+S>Z7yU4b z3t=`fgEC}T4JgL^pY6B;Qw?{L`WDuO-%K4A4HBVZc8y$Y-elI;0NKe)%p7940~*^w zDvw9V2v+P&Guu07wF>^OjW`sM16fXU;GZ(7%wO3VJwo8ezJ7->fR&5d*beuk8sVQx zZX3g!G*hxKa{6miRi@bb6y%hsxvW)<&0JB?Zgm^%1!n9ueh&uR0$!jA^1e>3pAwo-+7+!DC1<6sg>7-Y&Al2PC#;vqi`7HLC1akEf> z`E?q+Q3hcyb}9HgBu`^M7APJAy4i2g4Sw2wzea>M>K^m0DR8KIhFMI1u<_g1&Jw!X zz>bZC^4&7}AN!FgmfX%orA%dMKxlRMPSCaMoyTLvKFMWf=b}4|JH;M=UItCVOqK=; zkQ?*UB{Z(b3_L4A5DZnx=U3zsF4%~k?2}chu1He`vyeU+>CxVGEMWGOWx+U@jP=HP zcP7{TE|9h2P%-FMj9Z*jw(XqMQ?CG!xjg{{*qjWaMkCoPG?*zy1JmQ5xU5x<_H-9@ zQ+2f@gscDBR7zJ8T;A4DW|V~ipomtqTR&FP2Vw>X9b`5PB(>z!bM1cxPe=w_L?}~P zRfom#x<(lMR%|=~C;Ag$y!JY^dUM5PqtHT)zeG?#!U&n1TWS|LAK%b!| z7b;wS_}D9;>@xVfqgRLd-`Mohnc4=@zl?g)588y}K`Qm3uPkg&qBGh0%$*54+fu_f zfj&}-=!`XwXw=$rBa@>xVEowQxPR1B_hsNtgN;GF#!&?XVmOLo&<#nse+&saWDBx} zHWO@~ktsnbr7`7`ffviUTlzx?I@_6)bFj#3d^19ShPGkFu&@-yyf$VnE_t=i(|l_J z+=XF9HLLd{B`V_PzGEJ7g?N+GCf}_6Sc=Z&mNkS-4*Svk#zfg_7&szi)x4cj`Da`1 zfj}^Kp_w(|zB3B54CWHZd=2O>ix=}(_B$Yc$Bu-v7Eg3+het6K$53s@+6l_Mgb{Sk zvf>_q1j{p)=cIORE3!=i3I>r?sJOTK*TWXp84-4Daz@wLMjiv;%ENTyVDBad=l6Lp zVE#wjpx3;Mbpo=%oU8?8K?YYcV>Ut{&vKN)nzVt3ByOFg;Ell7HooAS9;4U?Pf8 z7bD~52yNeC*9*^l$@Pbhh{wDON%Rf@TKmyII~2~J^@`}qHY;|)DoEZWR}I9LlM4zC zyzj8_$q#m^-vqTZ(Luj9P+;pWmH^ z1RkxRC#4dsD4D;69Sf*zikT$@iX3=68oV`QTu5gmEjw2%fcwEnJUzEYiA#((v9G*Z|1+`^d_xJ);uqAy)X*klXx#j=1KB0Qz9ncbklG2Mw z%~R!`IILD;>|I?f9;{}eiuX-Ky{wY7ik9VnW+eJYrXA<-smsKJG}4+muNsl5rfZl@ zjF7cWqwqLR6(-8s5TfAJ-TvQ2VBrV9qr3|osiTns*a43S@X zjEOkIl@5lXd>NeI<)XfxN;L&FK^Bu&>|BL*TrPr5#li_G3@el4%=7imP3>TCyfkxk z<{#mAx^Mfuu-kloeh8~GP?MyVohB}CF5rl(ek-nwH3N6V<~HVVaKLZLxscLRlZskn zf@6520qVa4w45^q+y2Kly;>kij;_mQ~5CCubceijah9{yg=GPn*Rj=Lqlo`Zs-^s% zhurA()h0wk*^y_*o3r1oyE3{>2-oRZP zd5r2yi$|^w{^CNZYCK9a~g3n?W!QrT=JH((!U0X4GkG`g<>qdBp z?0+A)gUh^asWFvzh856CXqQxtRvJMM2S*h2O^ke-crQf&D&Q`s zD`biOiEabBKJK^P7zkDQf;$tp+&e7p48MEgI z|2JD0iKaEZf3s$4U(^ST&3W=6)-cbG9 zSxeLlt9}O0<;lk2SjY_NTV$kd9PcA~7oF1_l}eQBF9k`HBF7E#cdxD)g)V)GBK8Xq z#A{fK#h&{D3|_pb*O&>8Wja->7e1x+S`KbzV+T6)#udW&_|#>imkJb#lRN-FgP8Ha z_AjgLr1eMl_qPD=MZE<m1cGnG!mr6aDR|>ez^mMY(`&LHOU+S6zYjD; z_M#`We+P?2l{owxI_SwT&~I^znZUqN{^s1VMT5LfSXFPu92qR!mT-a;XH5pGZR~tn z;IUPkY4R&1rt2z@0+?r=4cSJ`PiI9D7G}E?>utFHkbZLkbg}!!bn`t`P}`D4h8w{a zYnjtS2wXIx$xE!s%MBWyyg|`8{6RW(_aLRL@=lL+)c7+F14rZ0h(qKLP(Og^&X?v8 z8A8b1MNHXLFj=wJY_HLmZpk9pxw$6`9S)iX(O#5Bw)EJ5Owg_qiL^OBsU z+NPjWCxf>2PfxYm*++6~)Pt_{x7t82{{GVc4TWZpG7ZmWmm;M)8T)*F z2ZC7$ysL6sC^i0jfP2!lXn3y^U!uJ1pOW#Qic;rgy~bW8p(4qWixe~ ztc&Oud5i-tt@$evb=3u9cOVgW05=hn9v)z1^x)aQ|96N!IP{ZCk)k-gt(rW*2v9YF7gQ22wY>SfNu4OQVh`yJKrW9dT^B zVUBV>t)H-qR7&1|5Xl1L{{$i1qG@X5#l#7wFak^xQ*bqgq~_1M={8zhs2tYmuk0sV zk#8>Dj~L2+X=!!+$^AuxnB!jV)pDl0r#_EZVw|FT%Y~T&p>*@7qt=j(`=mH+hMsnu zeAub_yfZp4l?k98;%~mDYo;s~RxCN+_qL>_NGLbAxlBJE(37Wb78FjJZyfQ!^=<)T zo+T(*lbVf@ajC|8`Wx3xTZQez?QaaX5r zvDohEfi@D=QLld-vQLR&%C;uZTjJ3)+_|lKm4 zGnNV4808AH(F#p?>us1ihb{)9Qb~uWLmT!c89Jw_2Qhp>a1{KDEfH8%h;Nq+t6e)B)!UU!S|r>Q>COiF-fZx8F@OvdAm zw&ZdCuk&q?suk_^3ptmBN(E*BrC#EfcD{QwCVNhQh<3)~Jd_+~+^^C?_7W|ex1q_X zvkg+csvaRgdhR7|9PBw)(?{c-UVQYnw(1?vJzAi}98-FamEJf9NH=#T$9k_~qaa47 zhoIZtho=uCXHt>S!p?ZSrw?jJs=zX{ACBdxEQ3Khd8sCH&ErSc}>cWfkx>q)#tog)7$JXQ{_=!fV|0*X1} z1n&=k<�EUIhb$9sfteENBXng52?%{HRp4{{GvUasb_(g#Eoe%3!x0GrT4S?g_v2 z7jKBW|9Y#LszbV9IB;#Ht6*;qOl|u@S;CY=4*h?b!cKplVCmRZWm}}XZ zr@T~pahqW}b2yPn4%k!$z56LdQ9+>brc}aF#ifDHFX0Dg-v1L3ol%oGKj7=^g9PU| z>H04=q-;y9=%?8HbwLouHSyBm26OsMCH7pk7N0uy``l`d=Ki@Su4`;^^bd_&pOW?f zbPLL{=N)fACy6hg(8v`{SQ>C!(Y9>_6}6c*XFEE->j-WM`~WAx4enfV7ot)kA_P^1 zBo{o^LULhbpO*K98S*;Sc*UzCQz%zOm510f*fU!hxIM#C5r_*@!`F-qaSa(cn5ciOCCFuz6w2MP?olq)9*fe`nFwDUcAhQlX zz~Gdu|NN@`xo4d5=q^-hnTbIk)CGEoBk74%uv{V;Fr5M77uI zW0sL~$0a-r5sgW-b}01GYQ>cV9zQx_T6D@wALXI9POUykdEy^=nztUzc<)$eHA>?q z;M|&5=ol!+gL_f5KlF%Q0B~>>4x@Tt#8D9kHUI7!B}W1Q<#C=jOLutQ=H2cLuNWCy z3xf|==Ine%u$dOURCMWkvfy+2M0sENtC1L&@deTl>Q-8mvw?W+S{7BMO%)T^TE#;%}-+Jy|OAarSmlENShgOb7eS0UGka1wsfIuTeAQW!0u9l+R*9f;hbK1VYQu3-3Zm=}>Xp`-3h&YC2QjPH z6QJ+%3WA;c?N}{8F|^yMCCZW=nnSac2C>MB?-dDY>$3lqobGuAP{sL|F4o4>>0iko z?Dt{=KEx_2tNtCp_KUNiH2h=I^xLQP5Vd7S^pv-@cF}zJ!&Bn13@$ED3)o2 zf0AD{MDM6D{}H-oenv@RuLIj*t>8WxtTNF;JtbJ>giqvjWveH2hk%b!tHxNwtA17} z;T^3$e7j8;*4o;~52(OTlj8U+^GgWDB-Qa4#m&x5fDpbGqdf}$C3gDCz76fCOm%^Z zsbUGW+GmLFJ`SE?(hf)@)>^^r0|F_3XgVQ2C=!wf4#8EW@hy`o1)b)3Ndl^Q-d+Xo z4B%=5kD$e<@Tb(Jn;#GuwhO8fS2KuC?>^mgg-2!zM%!qL#{nc(jFh7l1~cF5VbTHhsUa`|!ZbDA1%Q zxW9K==ohAn{=*NU#s2jxOER|;7@ISREgix*?-V-_xh^zNec55O;94}cW7 zG(D)89lIi&yXHOQjOIcn6C5@>;qTOv4$wC=-~Vtm9Q)>*1B}jS7)5LPK9kMSKR2xp z_g;IFQejnzoX_gm+Kel_!Hu~X=t_#Y+M`e>C~cB`ycn}fDnmG6qm4?tS9b~j=VZi! z(X@BMAw3K4m>{Z}MgeriwZLT2BtA@@DN?yDM_p|zsJ+v-8FYv7dBC=8BK{l&Uf>e; z%r)|jU#xCYW7Uq$S(nm3;THwBz-r(>qhr7)9(F+mH5qBJAVVYnYg#M+Mb>7$ygP|& zDUpw&rG#~a6Cbwcinktbd0G(Oa|8oZi3YwoJ!GK$3gC#Xq88O^1$QI~Wb1)fZ0RmK zc+9@L0f6bcszUBFK3 z3k@sfhoP*na*QrLErX{;oSE2V*UgLz>Dw`96gq-T=6RXM7^kv!J~P{+8>IsI{|vuh zG+Hv9IbF1s?NGK1Eno>cF)C@X(q5j!z7JuX?r2CCj|}Aqp$BD4gaHKn8{KedS<-+i& zj^@7~X=**YlA+rIBS6{7mX%$ffN3vJWza-pfE`gaz^4p7-4HS!g}iZKSFHZ+93Lou z*~YFVH-o^aE2HFxrTxFM>{n~-If1FR{fSBE>xNKRowg;k*u}1(-)*9Qt;F8>-)7fJ z@^u1)j(6kb(Cdl%heI!<(8LfkR&=}Bklzu5BZ|#0*-#D&>ICHJmn0XNChp9bHNUIy z5Jv|yVQg3eWn{U#NJ>$X>lo^G{B9b!$O@$vR(Z5>Ja3VDhRJ?{YD$mdLa^^`uzW7! zCFx2qnUF8*-V7Ut?$%uLiq1x>B21n8-mSq+H3JpwcgKdaL_6q7gXIUqK$mk{DBoPl zYF2aFc+p_kINGbk!Vkk0)b8l}3`|Im@GRP6gU4)+zGq`^-!G=BMokwusLL<1W|`O) zWs022pxoDuSkq1G%W|Sn;i^Y17m3rWDx#;28>KB2)c|g#aBRy}tPt5NwQA|JPXUo^ z!Rt@%)PSAPNEbuW1fGyzgK&yrJ|3d6MU3&l{O0=#Bo>ttD3VuJLA zR{WWxh;rkbCE47cgeNo#Jw$(1cr_(D`m^OX$%MGeBB)XY;49|Kcj3P>+odLPFF&4A zFY!Wi*q2!KSFnqiV!*x$8Y4T1F>M;6|76MYp4`l!)fEAHqv9QzenzAi_K z-h$JmHKLpLrx{5YDh_hgimJN9**?3kjXNEPE=oVh3xHJJ3FeGojO zZUJb~zR(V39twLaU~HJTba5o#ILC$0D)pQDCo7@)w1;;CHcg9Th<dcKb5i! z%;dXgXrve|GZSvF_4Y3 zRn?|1+*O5B@Ma*d>S*I$%!F-8c!>i5Z)wyz)pXBM7*jjGYRKgsil{jv*CTX6$(`gG zZ!NI?v6ds40jHXwsx^rPLaSjhBlM6xWn~`@?V^VKPQrP1JD!8r&k-8BikYt|^$yk3 z^w9zCA#pd3qu9$@w!+`@T(gbwRwg6Z>}>H`t=lsFkuga5q7Tt;w8F_$8s?czS*NP@ zD;-@3{v{0d(I+=jy^nc< zJ}KEnC_5YCZEt1A=SQ4djV1z@FG6;lz&+B=mpfn%?z(?b5Y$mYq(y-nX+Ud+lA`J% z>CQ~d3uPw?Ub>(qP_EmJ9=VV_=*ibgX`)ZtgXhw(u6@OB6Wes^k}1Z?bh9kz`}fm~ zGYy0=V34w#}W2U{KHjvmCzAR08+`fH1Bec;U`9ls+Hx#u&MT zVf1{HV32yw$1cwo85o4L8=c(%S!sSbG?4~|_Ln#4;Dzdw+FubCSF-4TVo##Wt* z8tFJlKcxdfAlX$DcdZv57jf7_enT6m+|w@>mWHp}!2UrXY1COw@XLq|B^yzB4FLEa zfn^3?&8jBzpwjy64=FOOtxS-^hi?dk6ZN@Vb;7)nq0)|o1`(%4huDN=Ez|hsZp?`y zb!Ts2xN9gd4dma36Yj4CS@OD|P1npk$`{3nOFWMpL}4ZmV6c8MunK_2A*&CX7bGrN zPxHQd-yqAYeMR7tlqDy)8yCqfP1W94{tGC|<^ZB_dygCajmsZh>pZL-rF;)JaqcXz zxUc-V^OSUV<1aF{wYrWHq^Mp_W)mKlUO`wIBWc&h+xgz5@z&z)+ev|ZJML6Q5jM)W z&8akp2GHl}-z#c(^JhU{M_XR%ET;UVaZW$nlI(fz7G2jr2z5wf3!N=xNzZ-ZD~Sm1-{*RR!Ei4w9=)}unfO=3J224H zA3Un?b>b1gMDRviJs7vzE{P)>r}34u*Zog zOnEB~L^OVmtiQMGJ3+hqR4WM8d`Dg$m24#iTragnr39ZkkxzQ@?Mqb$w#tYjy@E>xz_jt; z428j>hckZV1$+d*g3ZZJ(|cO~f=RrdzH(E^x!t6jbPRUno33NjXWVwuhmO@Kg8PyC zH{F4aTLfdHNe!4+QgAuwr)MXMb$Axt#bVMB9SY~J#$P8nOj+=YtkL;wG`$A3<^#q2 zCW+%;djcBrzzntdWdw|`y(^bT9Z<*{okO0qMa1NLr~C0GYwVDol9R}dHU?N{hFat6 zQ?ZY{aClqmH@a!x9hcIykUn>~6NHQ)qU=J?Z8#i(Jmsjp7yycZ@v|O#9|MH?BNG#* zK>AjF`v1r516RPvz7#xnmQb(5!aG?gRwXWz-BtY30d<%m(R@`b!z}V56HhA4LNID? zXjKk?gfuuOP8cmE|1J=A+?!u(A&=$ z3{RbRib2M*KeoM2jvZz4%SG_L*H5Vfry)c|iQ8MTvB({&-eW(sCrv!&$(@IZ#&zh9 z&dff1*2U~(?gN^*OQKRFMy-%1jUCzknJldUWz2oe`o3yN>fE(^QWP-vQ{}Xs34ur& z@99)bM!WdbMX1^fRfTmQM$;^MSmKzD3u=-ZAJf`QIBu!_MlPn5-6!fqNhmb_?@YxP zcP($$vV@36&!;-F)?SP}R(mZN4*ZrX#fOS!nEAp^59Fq7vKbPQQvbdVsv!C~B8Fwf z=*qy?kyw{}qUm8|hO)OJa9#WYM5%1?PnR&-Rr#&j)!n1)eq#thes`6Ip2}XcnA%b( z2NvktnR$pIIx7}YVC08|%Cpd_E~BqOhAWQcu+#M5n1g4SqKYgVR>MVPm_a-poLw`T z{Hz`RGeT^C0(Yf+dWBReYPFYGgQDuYt;J|}z3^b&dsqkPvO*FK0U%J+v0{QI{(&}< z@lmWG-H$ivbVPv#?mtHy)+?EySaFm09mO!41{Ygs-%w)~z*dQG(^7Z6^lcs%n48ei z4VGBo;~G=a*QtQEr-ALGk7soWDe;7W`s+Kpg5@0PnYiDH3{?T#WH7>U1mT6^W)U5q z10i(o|2!tvRx#UxWIE%H(3&YKnb5dzg^Osu?SJ>vR4Mn%3Gh=2%>_@MPDcy`miI7!o27R+TTq zZm`^_I6>D^fA~1# z4bJbtc8o&ssLUus#V1*YfiHnjeXt|a@Y1O^foWz-nz^&kexuTis;o(Ch;6DXwIju9 z!YbX2t>0Yx6IUXFovEX6K2 z`q@1=EZ>}CWs=F_fNH&X#;GU4T{8xt zW`A=}W|NG4|HdfZ0$Xr+M>^bRsan7)qSCRyPK%Q(wG1B3(7}?+;VU5)5|;}e#Cs_T zA8ILV4TAiBwq?d3O4^AJ?!)+Osziro6{o>iPx2xvwyQ6@y;zGy$V@6b%EB)$O2IKO zuO~ko4r<`)xDUzrL4vKXSBYlT59%G5nZ=(XkEJkH)lTB8fUx<}*q|ToM`i!4*4<{5 zVK~G&(Q%=I%ihvfvTXDzlxnYNz);>(An#c>nzU?$l5o&7Q1tjRua+%XSF4evVEw^M zFe4fKxrX(?=B1o|iN9&}qf9vq04OG7KE|sF~zfuE;lLUrpuk^MQ8|KN=nva?fzFj$?4nX zfZ&6Of`>`5ZurY&2yveUMKI2u92$hWNne5)txbfQbu#@KG!yGR_6j0_3haijAX8{? zZ3--RnM(2?QTP>v+*_N74H^txU}pwCh+364kRttX7tLl{(XJButYS#@N$T7Ki+vrc zP2XrEmyywKEKV6LMyjR@y)+ ztg);vRJ|bc+qUb{miQh*ek)*A4%^?#JD9I|rrr$8yA|^2g!#u-K0c@5-0*#7H?<@} z^4!kX6kZgf>Jdj&C8l61UX$bwM^W`ca>WkO*PnmhN;FI}0yT>pq?2u*KVsB|n2J+e z>#++Qfh3Fn7Io_ynm)gDM>2>Gq@)yC6_bol9vyant>nz|SlzDg#jTe07)V42eA!sA zN%(g`t_ZE0~rzI=WjL-i<|0*6Id_x@oC26_Eqc zF-ra$kMsmci)|)Pon$++h6avlK`!T49z>59zJvBe+V53{Sb)nQlp_=c{G7hLtM~tC zdcujZZM{DSvj)jl=YNtX@ivBBLe%`NePa=U+HzkQZih1~A@c2;FXAY{ou}rslQ2M z+4%LCo8N-nV6xkpyeDX>6gI)eJ|7nlhJ?&J3}&g=u#eA5o&6g{e^ibgxjFnW@CI{)c?`pA6|(4-feoB_ zy}~r0h)}7?i0u==8B%49q6u^l&%+2$r${Rp08MYjYXQ0@t2l_D3DS~M@nDN6Vi%zk zecsZ1w}~KRgK+U;BuRaEWocKLTFyVRCVVqKYGYt-AM)H@&h=I! zVvSY(!facARcDyHjMz}hL?iq|dL`IJ_swk6)j83V)bc)bhF6?b3MN4OOyb5RDq^lM z1HKvhVs9IXxU=H$fMR>UY5k{2=8pzVwNa!xa5m&B#xEcXY2U9QBZwklqWNiEA}YMZ zP$K46Zg<9$sl$Ct$EY5-cqST@o*QFx;tqlo|LE2T6|udEluQFs?*}u`LIG{L>k70(mMs%V@cE4I?72=_}PA*-QXf8xrwtn&K!8b=~oaiZUKAb*9UU_^%)ELl{= z`n<{%Re%oZbzf`urDeE?;_;B;TX-Y^I9U7F9iV>)>qs!mRBIY@6bq&8zvLVT$~~5U zB;7&aKk1j9onT+c?WyJSK~FN1jrI1Lu^)};mXY#e`l%p-UW3eVP$QEjD=KH%ElRaD zOR^AJ&e#v(&He?6COCH2rjw|3kuognR4-INz(*EF(4iT$2}x8d1epsdx;D>Y|BF8h z$S8-at+IwNKbB_0wS|XVH0h?a6f|cEP00`YNva!ePi5;V5x!5uA#;3SqTJ*Zk_S5mKQCl0MJO*eJ|kTc-iwf(oPcNDFmw2mY) zM1Lk7n)rF$En0iC2>!5hf5p*b=G*Rl<-7 zp~7KN9^9-$h*atsT>cth#$LPz%-uQFa3${m;@lWn7CwPAD8Au4`id8S4_|S9*>yRC z`2!dD0HyIg{})M5O!xn2fjkjmAP^fhubB<01a}TzVB%aX={6t%%R^M7ZM6>^Eik;$ zvZI*P^CXt`{dH0f($E4=kbF^+%15JS~*j`-XhWnphjcL8LpB@yDNZu^Ohl zJJ)0V=FzsAd1$wgMuDla(L`}QYXKT-IXk8}lVBSXVk zmW-K)ZZb4kLlH)fDRzy2{@`j~MzJ&uxI@%^Od61c^&8T)_&t>o&j2tLC7y_@-_>Jw zgxRYJ55T)|?!x7lkWpH%CX7f<)U1O#nt8;$crr}}%0c5Sl@7_+j3c5`#G*jZ(eri6 zxWJvfM2ANQsr9saJf4qiUyq@|2BwJ<;4E{E^89+#4PHRmDmBRROaIYn-rd~!Kvd5` zSRzf*I6iMU*N+ygirTbWp*Hk^_5r|O?>Hvl@_*{sWfRMA;g67Q)-^Tw=v;5@Lzw7F z0n+#14CnT(sSa-t0Q~T9phjGv8i&ZbGVSGQ5%pbblZfV-$0CBlT+M9L6tqe7|7ApE zb3K__#J<{UqiC>C=+&7f-^DolyGocT|QgXrvTf^-#QA&MHn8VrFe5k*H8Puj>q$~2<4HzJ{+O#^JW3$O$`iwm#dt;j<> z2wBx*oO7#=pKRg#*VPXLAdY~{KbtxBBU64#3!Wpc(o0BmUj)O&cfJ8b9gtLNzaFwp zDnl85IHKM*QfQkh{eVs9`~yDexPyJWuGgjmGcMfqg#Wu}YWgZm608AI3&g;ow(z|C z%&g5fJoD=payI=_;t_6*>3pAir1}I)ejnQT7o>FU^kzIo?>j>Q+**-Lf9I;rNUIQU0|C?J*HG^qPh5O8$P0rfg z=LJ2J6L%hsJ_S$N>|geqw+|VPPR&-k&d-u{!0<8q_a@G;>EXu%$tG0<_g3`gl;MJe zcyvs4>w3h}_=+a52h2x4!6$`9h6Qi(z0v0j=X%Xxu?7W_e7n5|-hojer)3TlP~vZv z#0IOp&K065Bk@FuS6{m=nV*Y!tCdNsY$+*e6SUVbqv{1ddewkL&vWh`e^p*db~t7N zl=hBaW?ta>zZ=t?T*WV3AzxwiTA2jV_Ha_;0c?4rqC?TY2B@&!jw=}|& znH^9FO9jw%Xq8dt2(oTzg4n4CweoNWpl4^3+ek2CD7A&l!$4os~b~)QI`JD+!s;~*D<`p zOfsK<2akuG4C5VJv#k}Rc~we-wZp|qRcD3t>{j*te1@c?EHkZTVTJu2Of)M#awC9} z&)6nd1p~ZBF2~l0?2Yz-wb~gb`$?|2yq1{oak18hQplX*#Wxt9i&Z@7dBn$ieq3IV zq+&4S6HYr#5;l2$Dw)H#6B*uv*NM4M*vDLF`iEus400)dOJuT7`Si6!<-pICc?9goZVLKO-Eg}#aP30d`cjl3RY2O#b^ zlc)h>ToKnuLb`zWPF(I7F*xk{*Fs)-`94@?K0oJNr2B3jCdOr1 zI^xE65a_H{2q)5qUSt8In%Y>$a^XJ(AQ$Qb-A_#@Ot@Pixfkt`?DpCOktN;YhL^|( zs`BZUo|Djl;G6EP3SPyq+7d}kf^W%5Ecmu9oM}}}z#xRBQPUXbWKUZMNsO0Xd?4ERI)iiHQqd&;_ zUOV>;R-T2utYNv=ZPE%b$SQhYhhwB$rP5<_)KXUwU7m^0AhBiMRDA=gMX62SrLMNy z1*DjcgiLOGGjd;02=WF>4FWLtg*;ILsTNkJhSUU0-lyPb<9BM;ZZrY}#0!0>x5n2> zDspeTg`xmkw_}N$Ec79`aB=uJckGS)b+a@Yi7AdE&bJB0Nlu5w^-qpXe)EPr72YtN z#%2=k%;%sP^uBEIXFh3=wSU9S@pU}Y^1^KNNdu)otm*2J zJ*ulTrp#@f&MV->J+;NN=ru%5wKfX=^z@O&`a7l^{!GKb zqZzJ%#R}&VQHo~GgI~Cd)uf@1W~W_DTj}zNVaCrXG$i4es8ke#{Z#{)GA+; z^kh@+suPw_YrzHhB1=O<$+xKYN0=cGTI{<~-$FlgInVBzvJhLOtJPJ;?y<(JQmrhD zA$uEt94!w$UnE3dEzhr_AUaWJ-|ph#;{$63>{b4F+6tCnz8dgC#sm&j#VH{3EI~UNX4m?; z0g2~`>IfRK=z>y>hB;U#*3gTkc6DQg7d0UUP>xKT<*`$5_W)@bT6Y&&WDgk2gKiGe z)C7K95m$y1Mg>OD?Da;Z2+RHnnG?XWI)uiNcU@v9h(jbTnWTH40P#V#>v6}2|LWGR z8A$>QXASua$`@MLevO>soM@?(2B-yh^Vn*&!0nmL=-7x+i>%}A$sw4h?`Cst%>$9+ z+Fz$-j}8<4EE1QYpv%)7JV2PwGg`;$yvpg|bfWmS#Dngc9j&e&Xl*hw&hc3GNHKn# z@ny;h8>cSXRq0cG}#AbO=f2L}By$5MG$1{}lf zz*^C&J%?qI4I>wei1EE;%G{R2e~SUYEvZN5v79@Ep7 zB*ztWCw|=Hc@?Lm%a*FHP%Av!1#mW-fwo`0Z_A-wVWzf`n`HghYis zg0E^}X#hB@PT{-D(15-T?p8Mib{iW_9_UktP-*7I+%<4uo?T|&-8?XXE;2iKkJ7rf z#&flZL9bOmtpz_#6tn*2dSa}-a7afe1^A1j`mCe+e$DRuo;q&+U^i1bk7>cRt6A}txSJ3^eoS5!!mz-9mJ)36-v z7>D8M!U$HiT`^gRuZOG^ESrsm0B%C8+$kw|k@4{ML{SV{g#QR9*hOt^5)Zi^ykQk5C};mxxrk1I9R#Af<`iz_R;LG+8ZPkHYX?#%gV4HP92dKjUZ)2_%gI66bK z2Oy!zXUH)2OsVrq8!n-H2GW!uzGY5|#PB}vv2fJF_3CMnErw+o{VK23ik_f92Tw%7 zsFXs*vDtyZU(Gd?w9#^es!Ef30=8?l*pN7h?Wpd+5ie1T3$lJ-ZWeLa+f$Jw)U!fTjd1WEJk$fYmeLbBqDH8#`V> zn7lL!00%v4Fn8W`&+`W{+5Lr+B+XGLe`_F?&(~eKO-uRpFS4L*FJwwvFn6>X2})^w z0vT9Y2&;clS1I!S;TpAuqJGq|Ed!~tc(PB$+Q?=RX1BqpB<@L~H(-R{k;WeRsUoO6 z;kjCPmQe2qCb`my>X$Q~6c%wTQp!-eevAI#=ke1`sVVJyxc;o^@_+M9;_2M*H6`_E_^D8isiinsNPLpmRYC zm6P`^-}*K~Du(OAHMMH|qVbtTkBlq=GVQR;;MrAKt@wwQg@x9a{ftvLuK2#~8hjZW z)Q9}|Kac6mhv8C;IvlWa<~f@ROsOa*s)VC7DQS7t95`ZarARpOF_UiFe%6xZY+hSD zYx4m7f0>onzU1l#CRwJ8Ge7`wn^DHTyQgxkPIGI>y?|rLspjUfj|p~mZG;Dl1KoR z;5%ZJQHIV2CWRn!h_miOpCOQ^BoVCgiw1;X1qA(nzl&RGhDakEy_0mJ9Pp3ndgg(( zeEHyja!b)+?#Alv0A0<02FOP1lU)hdUzuQp!K{-6yxSbOO8SBaL^V;LcY}v8p=6K3 zxEf&nV~&N}klg5VbDI1LkvgWD8Bdp=ZnnVX2=H=|)zv|9SVv%minZ9=&2lzlnt}Pm zt}{9Xw+PJtb*I6dSJnlqpBcmKkO=)=VdPTznRFs z%6ZC|HpjinX$!kM3Gh<#V*+#q8ZB}zdIGXOZ94{L9)lo46)c@Em5K>z#}z+$q+$_+ z!keq2@<|~`wQol~LAY&yGwp&>>i!&^XySw;g5vED8FXjDKFBx-qaf1tjobbcG4c&L zpiU{DI^|)$H%AA$NlkP1o7WIa-j0fw4*SObL;dL0sgp}Xg@vzH0c?d>2ZU<%2VcJC z28T`T7%aD(4a7U#Ik7d-is-QLb*aH?V%UHY0Q14@*1f22McXM_40HNa&p?3O+E9Dr!e=kIou2}r3Zu+>IT zmK14EUax#f!htRv4R_ioGV)F|;bNo}CejbS)?6y5Z+)P{S4P_p;%YtSk`MR-aI6}@ zy_ZF~J}@tlTPbJ9_C=T)zB@y9z5%2N5fScQ7W!j210FSA3WM-#TP)0?;}<+T>9`Pv)PDm#g9e(Z77KLO z#HBFy2Xh~1p~B{|oHBQF?5dw#E+fi2C9eP>$h<-f!%=kZM2qQlz_3-sJfiK9T!~-1 z(3wx<5H;$SB0#)0mJx|i8y%4@_(Q-Pp!7Fkw;Y!jj}P#KCJ(%cR^|r52VtQfwu6 zrgK-wwMM)6_t-n6%lG5K*{?MSKc}Zy(1uwHgO}V4S{wX*ETnwdwDVcM2s0&n(PbkP z8yof)lA-2cOmZj?S`2aG7KTy3?C|6`bfB1K|5fv~Qu;M5I{{R%@G;$)Gq112=NjE! zH5K+SId`;!mgCe(A|>ei5;?_3r6&46wUaO;{QoCkfGs(aFhxz(B5rNLfk>)83k&Ux zt$b;%eS?Uf_8^qCp9(dCWn|&RpWzQ84CI>3V&L+i%8Bt#4KlRk*E^RKdDly^iFTwE2%L7%Vu z+pI1HX-}ARU}*X?f~ByTSdA&hCq9C95KC^+unPh=sQC%d`C@Rc_xvoB33eNg10=8G zYR^w9hK&D5A=6zVQL8FJ)hUKW6s}cZTGu4B&b>8mVqu>+Ee+@HOr*?8$dMn!tEG9Pi z%|Wrf^VCpqN}@y0^xtjhxAgl4j=sOE@&V5eD=c zRoFZL@m7zYR|Hj$MhdTu%Sc1|TL&y-(J(f%6GGT4+U%7($lC&#$xj6$%7h7?Y;=s= zstX8IH>kbbLRx7kd{SSewtgW8nTi1W(~1%8!;B|wYP4{vy{wN3SF+OU+q`XaM#!A;^GRafK)8Y`HEvo zmX2a&w$6GolSsSh*B{IBW|XCxrES(3w2NV`-pG;jUgFd>-->`Gi`w2SKfb0fgWroE z7RuT#54iu}e5=dMW$E$hE`|_U$cVJf%x<{Vj2MJ%kV!z4-Ug>OZw%6awaX%e^I)HB z(GJieLmF2yY+XtG_RuZ>mv&@(YcWrL7YFu>o>45dPeD_US1j5G+3o# zVjE}Q5WOdj_N}0o&dxKVjCZ&`xj&~~>Fm8RpU#9Amz#sVd*nxvZ!6%XGPp{rxJ7;A z0%^zerfSxeZz$6SvETFna$MNCeZLhVK6n&4RC+KT$E!WQbL@bB(mKLGVF*q3 zF6uK!jrp78W~g6dU}Zm*?xoQ5-~og9+ABa<44EOm3w=nw$r~MJws9R{r~JZ_X&c)B z4?9pS(k0>&!!dPSR9Lx~|GSZL3oNcY6^#KZm?R@XW7MI=QPh+&sJ_inx=fc)y5)q6 zLVMybFj?Ux6SS?qOKMFdOXOf0pgE~F!+vK-#-R#^y0#7Biepf*d~SoeRJEmK$3QP{ zmqF@J_6oitkIdF?bD?U;#jt0~X=^(upMK6x2{)(hxL6;jPEX#P8%CgEvbBztL^i_; zY4$7FY=oQgqKc44o0`=xXrO7)wLudX7W)d=RRLIZCHONOf8V(tWwfc=Iah$lT6MOl z3+nz%=?4k0WX!yKSbcy4(x*=;KzWKY`sCHW5*ch$?zNTIPTFz>_QUru9k2`fbY6j= zSG1EE@0qPZYrb@N1ofu+&R7*kUkqhNzHbhxDTjWfEaPMNW&JRZ#eF)){>>Rl`?>rd zR|0~u*pvgBkXmw+$KI`!`2@Puc)`Sm_{fg|<4Tlm@DG!1M=!45TroKZBt%`xe2h{;bTC# zgd|TIW%BeA%q{z%G(v|{aJ04cx8b0f_VRElHVOMC_jU@@)L_erX)e$wfzW%uS@G79 zleZK~N{1mF7600ke*~dZ)k_gPE;HehCxMDRPdCi%00Kb$zr&u>EpwuHpqQO+Q;{!bSx3^9r~vB*uDswh>cP4gIi5F*v%gZ;Ybcs73fd-`LiyxHE%$~u zX&S#A*J%8Ghv5+GPK;$R@Z{i zvvaq&Zuq-S;+YAr=~4GZquAZ)Qy~}g4k37=21<=gi!IuyG3=iGlc}RkI-CcaWa<0{O}T_bnF-L+IamjKrpAa$TCZ#bGELmOn#$mx zzIZ~rh=4L7zM^N~#qy$&&*I|^64~I9knG|M^RJHRnN-n%lxUZc8XTe+y2=N%{6xD1 z!3a0gzYq%Dj#YyWYjAx0kDGQjnEyPa(d#Ba@C? z;&Gkmv14*#Ob$6WyeVSSK;fx)vg@&B&Vca-j)i&pvOgiLvFRPy82_N1O?J&^{-Sns z{2p7zX1iMnU<$%l&CynQzflbAnpB#03o^76ag>>gmy?UzE~Q};*zWdHtG6CD z1)<~LO#%NQ1WcU5ey{{Vd`PE{Xn#9U3?gZVF)_6xA;MI~yZ28S97zmmdlO>MohB@x zCuLCl zN2SeUxF~66XrsC=pCpXl!vh87xdh8@wnBTY)%F>|eiX1+t~>Xm87EO#E1y@f>T;$A zqvldvC{`}s*#7QfPr0$K)-xJ~cbotiUZM(>VIxtZvepeN{1M2j1fb_^#5b{UW5|pK z?Q13%RXFPp4+*z_ibh6i=RYu7an;=n+j4a;)dc7n!zY=3m%Fx_^Knp;Bfxl_|(yscoWV=u@F{pV$2eMcQs4FvW zY1hlPbl-8(s3}D1RBQ9J<;H{%Fjc11I-DYwMfu7rfqL*o7{egRCxXBx>_Tc@ItECY z(szUPS~HrUXdtLNA?XeiG}eHE-vi2`7g~wnT+#l0r=`SBt-4+V17bU76NnJcA}@CR zO9GkvDaSx5lV1Lci1cV8u;_>v*m0^xw?@yIh>7JQ5zP^56JLb$Ti+omxKGQp$s-(g z5F|`nv`BQ2luuF?%A(Qn7<{CW$e^=1L-(Ty#JHM$|1uon%%O(V?Iol|b zV=RA%fi1!af$u|#L0T~*IEBHZ!43$Z(q^t94PlS9s)yK@5iLwq`!=Lsf+c>8k@(BI zpI2@_`}a+(1o!vX?Z_w9U>!rb)xcROL_01_EV?AyPk=pMYN5ru&oe)sCd{(03iEP6 z%4}Ep1LlyEL7<~+fFf1QcEImsNF6j)?5^2sH1-u?^^}<#e3eESk5m?OpUIMh_>7BL z_gtX!#8|Lg44Q|kr!|L^T_)3ZVp-TwPX-@Uh%UcBVUDj+(a|Z@yNa*`UD9iz_LBlv$ z`i8i+Lq9lhqOh8C=%oLfaq~(xy*77On+3GJ6kw8QLVicpIV8KOExG%>v|EmFndxo9 zteS_7H!TzCwV)+5q79q9^(l+-UN@qNMYPW7dA}~4m^R~aPG7*O3=x15Of>TW7l(`B zWvb&Jj8}IfyE71H0*56HNAGB17<=a9EWK5CfNu}gE%JU5I*|c(0dwGE9HqkA!#=Dd zgAO&K7`?q2(1dy}0|#vV$vT8(zauPT&DMBg%YA-?lI5M_JLn_JsEI;s zBoGd@%k45FubR3Vl0ex-r%4v9M=#1ss0OJM&obJca|Ya!eCI7+Nu z&jS`d%(#-`3>OKasWB(hb*=5Y%O8OpU%s)pJklIZ(g16aq*K;Zl@0}k>>m-dcH6;O`H@23fTPwBzmuDEG zl>O<gTtpNPg=WP3ONTrHZuziTR;9;8af z3lAQ3=N_0GSzHh0Rhi2YLYuI>oIObtnvY}E>QJ%k9}pyXzC^m0$cjh%7rx3lOj+|M z(!EM?OqGY;00-SzK%~j-O4LJ8sY~qa8Wu*OS-ozj=NrX(CX%It_ZaiYZzAc>z^9Oo!I_5KajF=@Hosu=l>I8qeu5ul+vnqhWfD?w!`XOw zjCHs4UnvN_ll`)Ddku1^oc2vOfP1ynoD?hs((`{_6fE$8v)bpa zmPB{}0JSwFEj+(A*HK3leJCL=!_BX)G%-pBw=>X;vY(S`jzjuGpZ&?qY_+mAVWv9u z@%c1ZdG30=CUy#J7AtVj-_x$_;V4kMRx_7wj+N&G+;Yl}J`-cj-$}|JDQgF8%PSR( zqI2~=#?V3n_gzE{)v+9%sC{O(Adh_Zuc<#8vQZEQ%3SK^DKJ*?466y>OH#GLDi1%f z+EKo{b8ZSX6Nu>SjxaA$na$5gT?0?&Kb=;#I0x=C4!!HJ+QI| z^Y8zACl`^9Mrno}I6-KFFJQyVnsD%yv}3E1>p%T4_I$;nOg`oGQQwn3KMSkZp|OSu z0D7FNmDv-o#-6m$e42{VM7!V#k1<{xd_*2LJNkk#r{}UQBz%s+p=2KI`>?m4xy>-o z7$i2a6+CW54W93vpP&r*tk*uUfxxzMW3C-0bFb&n$Mw$_?71hDFRTdgMu zm@6DMpkt7Xr@qeUa1?c5FrLbJ6bsEZLbrKuBYH*?>z^iI<&$=YX50Y44{LiKYJjnu zfWp`rca3_quc{;vuBI2X2j1;O@rp$k3cbdf_LuJmsdBAjvmlE|zX|)sp0Y zn|BDi@)vM>dk@;kFDxu+qQJKb@B``4Yb@jPE8a^&-k$sU5^HPD6~QIq;w>TEU-M~b zRYLVB+YpRz>)0$4cLY9Rn8>-&A)<(H0C4lIthxb8FSo@^tPEi^y>JnFoi5(! zxXytMYIh&_+|`4ug%<+EVJQY8=^wvAIG*YDc21PkmQMWg(>T0r%M#EhkI+ zAJh;J(%xL-AAH=UM}~k5vl0;n6kHQFEXnU?7H&+BXRL#g6^BC2Br@fDu0$_5vsHN3 z{sSnJC}Q6lC&CuTbH-?-JV7;by)nr`O+P~U3Bl^?$|QDX1a%iNS*0%~$XWE|^!eww z_)eNUzKX4{wKT?@>UW?P6W6ekblCcF$3QR4gBgl2O~jS^5cd(@xpZ8%a5)?|g&z)zRZ5X*ps;-`_M)dHSP!_=7wHMLd4?lyIjOLZRxvohW8uJO)O z7ju=HbkS~bNuWwq{Z}9?AjD`xA&G>%d5Jicb4%5Ti~v5oqn-}ds?CQ_J{*#nCM7l1pum&|vo;w~ z702?sstE4u`HsAD1@^-$ldRbtVQS90y2viTrw6X#s>htq!+&5q5ZUsU_TX*P<}Wt6 zjR?X)$Y!CqdoC)W!pZ=2z@}01WSooBu6avtx#l!p6s+Z!EfMh>-t9FZdz`z`j$t!kZC{YC z*O3hFz)}~?0zX6>TfU(x{AHcX)UvRElg$*92Bml{H-EL(ToCwi3$JhRyFUF*G86TW zT0U857+Cd^ZC9pWJ9zwB1YcyxBY3@xi3DlMc)a7=e$4dhT3>rPcua$c&xf2>p;uRV zr6OEOo{i0zQQ!Z)MV5GVMN%9~jyQe!zmROL~qoQ{ybHJ9@n(>g#m_f9fC&L~?{bV838D z%-TqC1@Z0v3-9$q*ZvCC_ER`4AL{^+9SOxp0fX4KK0qnA*i$ma$*FU*z1lZC1tnIu)CT9RG&G1x)si3#MnS9U92H6Ph;7Gprbo6TK)j^J$K z@0iWiXbZ*3VP17;6!HC%Yde)dPbqHCo^xk&H$xs}CxT!(i!NB5;88ZSPW4S}{8}*8 z^W@wf5|SjzIP~0G-=X9_wM;MAdx-XeQgA|^8lHr`KFTdIC7i?me#dQi2p&Nn$35M< z_u{)WtY;pmWp3`Y_zrp6SZ+uKLO#TmwF+T+yfva_MEFH}NF?z7Ng3O*iTxQYM!o`Q zx;K?fC?{VzG&Ce+kue(oUPYEoV*Z2W?{d>E<2$1f^16+$fCM z+O?40>Iow9yQel{&w}(lGUHh2Mc1fXllFS4)9&xWT~heI^kMP7N@l|(c@(LrXN$)M zUX{`fscFqYh8eomnq~@JptDpb@0s+ONf=$~T*5@Y(j@wpE7CO*Yc8fE0pk%;RJ7`J zk&5?J#{)PWkC~rt3ntiqT_3e)upP46f8m>C7NuFl7lAnTVXi)W3l_Y*LLe9 zT={_|rgZ_D!;-)&ZCeiny9Ewb$a1nJQfNYzzpc)GVV=SQ%t>!HP9o!lBBBpEqU~p4 z@as%d3J*6mZb!4D2jQgnO_no}5HHuVCtBJaL~MgfHW~YOpz|9&2;lAUi#?Q505-k3 za@#41%kYyYk5St<9lQCmz<*o&*A(SixQmG&&_Vh1`_qQ1a=HviP?^+MZ?Wksm!N)n z9CSum!eu4gO&FaXV_%5PnoY~+1UxKe9VlOs7Ka0!DKVin=M2!S1o>pymIGnn!84Cr zo;Rm&pfib;u==8Gh{K1o>UoV$!WZ?W|B2w0Taok$t{>tF{>drSh-qs$Y1px#Nk4|U zHSu#$-RO);;p1Hl#K(#80bcb$YD`S>3U(g4u)4}6FXzgxWzZ&R4HE5WH;4jsC8sM} z&judKP%gKMRro=mSv0|UG*IT1{`_m_Ab*$PRxc_m)=ElG+-f3g2an+W>418#lzDU( z=!MzA)!(SZlh^}-mK3n}L_Ie#4@r9~q^6UW_Zi=}V9)b1nI&Z;hM`?FCS@teF$Ofb zD*zOoN|0#2T-yF1Nk};*LUFg6c+UmlmG9T+Q_y$8hDrdRQ5|x$c?$ZG(|%xGZsfT% zX(JX5Oqlc#$5X6S$$n%e6I_EE3(CsB+w9*dNj<5pX0oE*QMF)u`@bs0)@1uSTNb&q zzdm*|Rr_Tv-^cF>0VpdutwgR{%>f|qE*RqzD>qki{|$$R7>y@IpvsF)yYu3MWcdJN z%jM8bZz>k&`Oh<<8Xali{Clb#Ak3-ZDey>Vg zKF+hUl6LN!jYi0OG!OWJZiK$UZZy^m=NrMQa7r}DMJSh53&1_~&NDO?F-H1d{*cHA zA^5HB;2KqwGbrss)Mc=iqZHwN8wu_ssDnxUVYH@?Ilvrs(<&|SptMEROZoMkfpzQy zwpeV$>3$1bHpC+u|CHI}<17SoQa&%-Y2jxixG2eWAS%S#;1y;V@7)vn^F5(jVO9@Ht2G8@|?1SVA#1vYu3lPMhJ2?hPm42{>mIvk#AhFA8q8$B* z3!jxdvYEHV2F`xTXoIa}?oQ0jkE4<(`RUn1+X_0gv~7M!ahyLJIHqvqVDekGUSPKO z;9oXE=^0E>1}IN;yb-EY-{;03?7XlL3}UpPuuFsxm=9{9$;f7TQ2$++ul<7&R6Fq9 znvZbF8<6Ep8`xJr`Tv4CdKzUXVv_nF*lv&4c}N_^1bqOnY5VlFmlctJdJkdcwQ4jK z<8{=jij#iGMKr@jf}8AVw%=GScx2t#O|*Miq9Z}p7*s2SAK0nR_5GDi4~o$C>0e8q z`Oa}k?t&-M)Q`}R3RGy@1r$5h2sSUl|4sH!;s9|2Re^;8%Y|{f@%6&@s41` zLvXwR%=lj)C-f~rFEr2K4+cUbFy3@sk=cUZBwKotyg~{4r{fUuUK(XwW6idY-^O^; z`%N>zF{h~7fR2rMG`wgykSM1~wsX*>J3l`P#KCK+HSjxfYwX)vGZ6;_N5{k$H;|dt z>{3&>u9ZQKBFxsOp7M(}BArpZ^%n~D7Q9ak(r_}-Vz=`484m5+L5aP9@=S~b5yiWG zsm2fQ25e~DM>TmQX`h}qQK|GSB%=~60iq8jAH$sMjm$>$KyZ6ty;2JGO#vu~5Q9|Q zRflT<4ESA=J*vU$L`IHh0u1Q-r0R97c+T*&PbTeUm?VxSR*0Ej1k2=l*&;JTIP2_9 zwgNbK(5_7{CMfDEanghS1pg=G1feEN@{ng%Y7Q|%b+U0#4Gw^`1X@jkPX`z>FqQNw z-vC{B>H99CEa^US16cuzAs8A(R_|QZrxpBUS%JJO8}!;K8CTykDb+}z=DPhq0<=*qi>1wlBzTw`EhjNFv1Qv-wuBuJa$8oeHC(FE4DfXYu9<5oD`vk&_wB%?H}_`&`MKMenIBNw zaDV0I*J#9qVAl1rSKZE`5enwNEH@y1zzifXH^_UHEo1u5f8rcP`$sOtryX9zMKS$q z{2ZW&{oKFKP4TZ|#cp&nd0XY9rm@~PdgtT zdI;$8kA1*u5I(NnA!Aswv$0@V2LLYq6Sz*FqNwm{ znj9zZbD&|PqIRYst(E)wuKKY|Eje^VhB!vQ3G|7*E+MF6@Wnrx5dV!=0JRf?533_4 zexCr+UYRGC?2a_>Bq6Du*~lTiJd1&Yi_%wC!7mfHkzBoV>r5wIfH%T9g=;rJokBdR zNyCFqYW8v?a1Q`*1N&WAMD^u1FJ5yb*2gRGu0^OcN!2n^Y5SQL!Poh6p-yl&%{FXl z#1m5I{?Ud&JG@DlwAoUKV{hWRK9JJHkwNb*G$pB-as_h*4RqAHdTL9eeJQYCeyNn> zC-9voC(4%u=)NDo@b?HcI_uF+T8H3jk%%TCcAljv60=3|MCx%k-gOZW5Fz=d{J*+m zF0ydXpWer`R_F8MQGa7=cddE9SXmJQD3Q#-30;#;FaQ&>@1_Sxah)bCYN{Y9S54LZ zu2DkZ!MbL@0Hg|RZ9oZ!VkX}sONZr9QsMMkBosJqgINoQ3ltI=k_tu1ZJzk|d6-d6 zaUZpyv2iGtfX9$B)&CeADCUyHWL^s&WJtmg(a3#FrYwuu8tK^Z#;q7`xMk2}-rmHN z4w94*Q(YE#6HqJUV@)9}t~@Ds)(AtVfVkP$Zm$+GTE4nWf@OhV8?Vq(NMoy}Mf}wk z8d|SM;)sIM;f{kO=5W^1TTB47Ifz^dwG9j|+j;MwxMRPH|x8=PK}bObIr0rN*~YDX^B6p|poCd~_VJ~cXX zCS1`+h$x1&PKJZfasK_Ny`s9ATn~Cnall=$d)Bd!wq+{=v7;+_H|($d5q|?(v;Ter zZ{SzpC$U~dJd^=m#{g!*QpV5{7-x3b`w=wZ6Kn1Jq?X+*J&u@YYqdE@e42M!^EOF}Ajkf$B(6dh0_ZzrdomxCDj!kJ&j68U}Ro~ki^9Tp6Q&gs{2Vd_X1NI`#w zqe>>0GY^;Lme4FOXjTg4OA{^JybYI03DE}J02DWt=* z?q4WBs1~;SaM(OXb$qQ@SFe`qPq|YKKKMc2dMAFDQ|%+u$~F16d>0lZo)Y<>h}6C` z&W~ZSF7z+!`KCzB!-dRt=jueOEX(Wkg_a+_&1l9YY=%@+0x&m8f+)j|Q^0ULntBeD zllx{E@Ot4vM#+NkABfI1;&XG}DC#bB;XgiK;z|b#vI;+ArA;TaBS|4nwQw%zMN^JR zBZ7-G4^<1r=x{+h?2a8W2V3%Yne1NFh+yQ86obponJkN29-95RjP(zKUjU&}vM;~Z z?Zk$wfBORZxG`##nT_8lQLRFHB;E8f>drG!hX8(BI%3Z~^X1!%7cF-UfWN z88ncGMQFDC*)SSB>ne$)EAf3t zeMkGH6$SXnrbtyyE@R0u%c?Ot{k!DIF^L)sg_b0VMHmTWDvGplCVSZe$a?~5Bci0|c+0-8N)h`Qm3&mT=l+A3^tn9h(}OXFofJh~V-lqm9(R)+n( z^Ljstl{=4MTOvbu=5owy#TBxS1_^V~a)#eLT~3EV@K^JH;)N*NQCmo93LKE;W+ zXebYg1AC~vwY|=vU2Ad->Nw|zuK}v74x;4BIH%yagj2Kj>?2(J=VdMXFbTj@E69uh z5$3JCu>11i?Ek(D$jsqrw}^F$6!@uQFKw#gcL9B3KGYE|_H!mr?7_{>N9GO-_Seg| z_4HzVHa-ONG|yElhGCo1$Lpng4*1_)6hzoV7<%G=XK|u?YYW}+vwecI3s}?(UECVZ zPBRS*KUeKpgjYVituY!Mq(FeZh&$NBgC)O2Z}IY#*Qay$TC zDL9gIteA-2vxPS*l*o?ANVT-ti*mVb3IU#NCi-M*dg(N3o2q&rS;*(uXANS zA~i-F2-!B@X^(0|J?v^H^Hu!)T2TVnHp}!%xDp4-hrxvXl%C=R>Xia__{|UDdgrZr z>gsIu@`%RX7VIu;$#~^iMQw*)wvbST>?43dnIp_{sO>}X9c8_w3e@(`@4HS-1*A9H zrE$z5`OBEjzscV;_^@{z{s9-3;oZ!>T_Pz^{m(f6j_?OYj}BGcMJC%hSl&XGfGVXU z7?750D1w$5iC*k-TU+QIq(A=ahv_6zZQ?!{uKp||Mk3RZQ4x>|6n(=TRZ(ngUf^^v zYiaa~ggO+3?X|xGDFGoi2@NmERew1itqcyJuH_)y_zD1xW2E$I_JI`Yjhz88R~<~y z$Nj-#wf}X|ws|7hzW+l!D1h6o=d#?2+bYLrpkk)J=UlP zwqlf60fIZAzgW3f4O8ObNrnxLxa)~Y_eSfe7b5T!t zsxD4Yc6)F@Q~1i8w0LXNh^bUHLjP=rB4A88ssA|D;u6@wy?19GC@^r^)4V`|+i<5D zLAm>Ie!Et<->TdFx`xocS5u+Tg*u4GRLUa_jK>0){c+Lfv7Y_(XzSuPe8cnyVu0nFj+o}=EUC?2}R1jCU@`F17p+5YJVF^Sa z(WR$92&~jMqt48i;rN`mf=Je$*mpLPUg5WTFI2ZQ0cLolwQWLTqAlJZ2I}SGiGR*i zMuVQ5mBJQ3kPa{48J{$Vl6)0MGe&VFK!~m6&$QFCh#UCjvK?RWYO zN*#8$aFT4K?>e$Kwg<_oXtJtl_trOBD{is*?$Q<$Ynk>@fifb0*o%c)?*_)I(!Wfd z+^kR2r`lEb@y!C`x}(uh?p_{e-8z+%oUg{kAm{kgE*bIjxy_468!3i`+q`b*y zLC&*1G$^~Wpz&>W2ghkZ!(s!0yij>i_YsYX?SMfQU=p^VKujD} zhIe$dxm*>`CWk`gGl@P+P^h6^Y&FP$Y~~+tFpE4I9N$3HhV$8u>Xe3D8{{4MLpm2{ zF*X&zWP3Gsu41cY18e8Y1pkndQ}_L?4ii^|5nL~ z?;xlWVPeaE3~Q-r0uUl3=CMlgX|(vG6AY;2wJqT)T~s2z^razh<2uI$Uj6-PO#0HU z8yE-|6yfDU_f&SeIOtSIhQWr+a4ip@GJbSbaU(GnQ@ep&lXutBV5lA2BtllJWU0>_ zGu9+3#(6k!!n`1D@j;}=mepp&4qZ!Ze9GBW*41^^Non>*stzOi&44(EDwRtdzH{3+ z3a)Pb79bj zHA6cu6(X)5L7Qrx8O68X6%;Uoh*N}91)3ge_@}Gs>u@ggQ83s;8;Ut)u`2B(iAWXV z1XpjWx=4$&B(Dv#E}?}5n;La2> zbzxpj80l{DVSRe;tu+nZEG9nTbeajVbz&mFPI-4Ocs@s4paM?557&baO{w#zpR;#Q zoF;r69?<^!1caWAwhE#Trv*r2Iw~q~i3B`mGW43DO}gdmF50E3$+RSq>HRWF`zW=O zW&zUuy9$vx>*LjNu03M2FV{*(V!oUdeHxjO-!B7rPfmGG#?w=lnzKMl$v?RiSkt2r z&F3?u_R|hg8nlT=W|z({eTp}!FYg8NlCGYHyA)5dHG|FLtI~GGrr9+lz$~3u!)VFK zxwnHT0|^_!t{y;Wi4>oikM(c~*IH*}u_I&aqvV$le4AZ;*?!A{57Mp>obW@5<9Uy=@NT9EC^qj4M;kWl!Q;}Ch9}wAU!Ka?B~ifv zG^x9rrY@gk8Hg*XX``bWCjKL)UoWr>y(B?ZA(x%u0=fQNptZ-gRfKUtP*vWsYjoq* zpBwpx6JVn&5RbFQ1-F7VNUCcLJlL&XDhs56-R+=$E{d7=38k{~;AQF_=;fC|-gcOs zh$`%xsu$uI5yFk@BqIWs-U8% z4$AQ{OyT#$G|n~#_IgxLmhUCEtOH#-73Q=t-2CM8zL9f}HZ}0-&{i^Oj79EJ%GG{9 zNIccrei^99+h%D(cjdU)4&4;7ox~yekJ?7_)V{*MjvnuZ<%j<6wtIvVp0Xk^h+k^% z(M{Q#!d3%DsD_IgzGy~&YmpVRGVzqyYS^aWK)$D#Z*#0$Q0W^^>6A4#_TpNscL+jV zpNS)!IerU}YS3@2RGO~(vDm|1SABd-UpDnaCSAKGTQeRWNyk?#NFS! zMfRZ?Swd3&zgYUJxUf(H2U}rEe}3FRZ`rc_G$|J4go*hoBSx&d!n+Kt-5@7Lol&Ezh=!C*&QUcP zV?htTE0vgQxqZJWcdq?cP3>l*(TYwPyw-H~XoI}pS}CFQb7&NW9zPj5GMgHOz95{N zD#*P5-+0(2tgkH8+prdG=TOi5F~0!*WX^ME6^-su-Afod2MLOPxWx^57^&lqGR~#5 zo;sizoh0RbZo51}Ewd!2s5(t5J~;99+k=sQy95YVGkg^_$HHyQrZ%GiV&5x;uE&)Vyk9GT(^LD2I@q1CnawX^!sM&FpjjP46V! zh`Y`a&n7jK;!^$j`@nt7GMD(ebO}7&DYBn3_n&^%4jfmMpAO8pL!P!q4>HtB<{Z+& z3wPIPSihNLx{!}j)E&-b*f#!4 zrl3p5jj{kR4EyMvr=XzW2*zVKGdG4`WAKinyYbe-e#ig_5;~r(Gv!C*_NF+iv^N*( zHv6ag?mynDm=mPwnV30zty9k>}rzfZ0@>SXWD1KcwtSVa#24 ze{Y1zo81;#f~CVTqHm)LI1q(|>^2c>8w?{<)O!D*g67_afBgx??2oHz- z^sAZ?rklQ9kGHO{Pnu$w+!o^NNuE_%t`VQ_n>-PF^b+CrQY3y%ALKop$*Ts6LrDlp z0f3LO_QSAF(w{?B+cwiwR_wbll)AO%zS+ezQ;;P&L${M*;$cI7Ism@0Y|VVYw2w^g z+SP!PL#WseVUg>lOo`;}iST)eJ_+k{*e^sP+F5 zk+@`Aw;Ui{_*VbkRHOY!=MuOt%<{mlJmsz{3prWs_R}0%Q4f!lbJqEyn>k@hcce#n z0E~=5_FFf)+x0`=ktz?daCdw_ha&Pvt>b4gpoBd78r#!dW)SGbd4?(ch_Q}Omqjgy ziT0lfMnR!eevI)c^Y#*^qraCm;pbRj=o@UEV-TQX*2m&lf*af3o!ud5<&dxjp=oRV z!VmNoj#re#`B}d!ecfHSgswU!k-Za?-M@YaJ-R`pag@+L;%!2p@2oI|EuT%$%SUFYNvz&Z zXHGp#wbgeheTHiqwAeHe+#_sp@DnY$!^psjUvkMXH(2~4*cd8b>6}Sco!5L z?;Jy()ytrwG*r@t%VW=P9Ovs`NR4Ms?}rO*VU^*| zAolpm?!Z6WPWdwFv9}^^xz{Uh3$e6*PS8zu;mtrPE`BezCkH2A#_&qy8}*({bz)&qj1J_6ROE3gba|8c=Q9}UjFg>H5@00+9Zf1Y1@_Tv3)-hbJ^*ldoHjuVPc_f-#EmJFsbGhNcE=h+X8D zETU7>W-heW-jvfcE_V;jn~F{mbCj`TzbTUv{B|sXy9Ni-&mQ)N~JFiv(TOp@J>D5m4bT8 za}hktgq^ABQ#-Sn0poB5mP5fgpLwl)FXuaf)l{@q8mZrF&)wh#3ABHqA?M4%a}MX7 z=?r5>5R8f*j1kIcN|ojaPg>Zh#yl#PS*CuC=DlyRi4fp>$?C8d7@WqC7G1O$8dZ8K zG0N`fk^q31-hNrh0eIQ#I_>!e_7H3ckw5sW8_uK59YF);Ys>yAqe3G4q6_}f5%%4n zdBAPPISLqmk~mwfQh<_wso-E;8U6az(66RieZ-H^k8QVZ^480k5R&z!KuiHIy+gT< zaP+9X!25qR+y2Bq(Mi`ar|afbcOc9gmDvn+bZEhq9+>dqMucZ7p&`qD2WYZ29^|Ku z4ZXw>_wD=ETnKdP1vrs^{CG@9eS}%7F3}>geXuid<3>-alobg>vJPhvxe_K9Of#i^ptaTOggc$B@_B4MoT*ikm?7;oXZ`a%`63 z^s!@hSpM}IiozJLdA~9+t;_21fLf!zDZgHhi*9Jka6C*VAtZnCpg0(n7deo5=qsyiTv}TtV8qCABqIYZ0YGYn6lgQNO=XUsoWzkAgo0!R%qG zCE%Nw8ghg>WIcJko@mJ4$|6Q(=dQ@4f8P9b4Ip#fY;E|IXkXIK-()4lB<3ClPv4(3 z<0{UOg`rhdH&-86o)H#(D7Qn)`Bl-#2+wV?LB{rQouKA3@WD0-f28%_h$`B-*;A0B8l7z5793xm2E3>X<{$TQf)TDW7uXJa%bML zcOuA$kuNp?YKa*S^#QwqUh%fn?0Zr%;|k8!oTS@gB>%5voZ9ffN5pJsYzdoZ%>B!G zKt=@jAS`C$&6kEgD^{^4+`ZhJPc{*Wl?AiN37M?|v_sC_P0w?#ODR7HkEwHm=Xqw} zdrccj{tNt|;{JQW>eCgGqLg{-i1Up<&xuP3y*Uvu0K|fC`EC)nlh7G3rNQ}jHm;6z zquqizz^<0imAo3GJf>Tie%^D=-p%XIV;he!3~%;Tzvq1Sc*sRhNUMnzOG(o+k{F7t zFcr`=)(DJm2U#BWT>}cu1$}>(4$;1fF#HTnY8R2}p-vwMFHm?{W~;fNt#{z5HQFz< z_vefa#VD8a`I>P=?bD>>_zuMV6th+0Dk={Hl^<|%EbaP9`Mq%Vyt-l9Oz?w*DI^1| zl}7^}is{FkMW4kwdO|lX)@=P!vjcI0JDOzKIs_QRbc`U@Rcv z`MG^9ShSB)0rykkmO)qh-&NJ~clxYui5otCaBdB1;1mD#_asO+hdwymnsG0EWn(L( z)LLs^W3Oaq;o}wa>9Ga6H{K5if_e=3%41C5K9!ichL{ePy8L#RnN@c%-X$#i;5qWV zbgx$%YT8cd5johLKSLQEG*j`f7mdI)IF3B%95k^mxP4;(v=5SE#0HJM>+ZnEE4Eu# zo(oh>ZKk>rn$aHr9(7MKJG}rHNn6?~X^H& zWnHx18uPy((uC_0a?XEe2^)1wMLiyj?d2DRr$oV z))_W%oaLSM-BLJ`?eUd}kM^12M*8$SPqR zwxpq2A~VgDn;WC{SVELd@|bPY!VCp?zt_OxJO=g5(1VkGpt)QYs^r>it)Gf&=y_P% z*!4mXEOpSy!_aczV&l91w;RBaqlCA3Ssv#ec4Jz5MpGdHpvh5poR_=)qqWU-%7qUw{^F75 zTx8(^wn4V!NJue9NRtVFTjBS6H~oKmckV|L4UqxMKYClEIMfE-po((D3Ak(0` zo;(PI))t2zu@mXUGU|W-(DyjSx`7v{0m4f__Zl-OxS`OGVc%BnO^4C~X){;C!iRB^ z?`5TqY`MQ1aUnOTdV;qKIzQDdA16dc0HFg|q8lEt;5*joYX@y8V!A*k)CiWcGc1ni zUwML4EO)DZAq>?OJY+*!_fx}tf*CD%t1#1bvIL=^3PIBLX~kW($p77!W50J1zb{%Q z{4bt~xFe%LWrso+^?Ki`X4hOe#r@+Mf?~a_EAnR`n2)b|Rn=49gFc~wVDVF7T-c}t zykUY9ZE`dTYzP*CbnM0xUzoS(Mc#}>T)E3Trw1C6uxI@K7}@1jwPfOz?1T^g+|eY& z^#^av6$}hZ^6;+epL=Xr^ZZ3_>N)*FO{kEMbj3rgFRaF8VCwW(uO2poIYw&AAii`; zfbt`Am?ua2DqrDkZyMt|HjG;QiF~mZ>JI6ct>2(^mwqGPed!I4FZlSvb3w^eU7L>a zy65_WN^B3A+$fGWbUCgU^xL-kN-)M*ikWPyr^$V7OvTZ8Xy_i|2FnF~R=!q9OdkEGIg&Iy zuKDjVg3w4#9ikC-LYgw_3O++nM!1c`>tHEe)tYI-xDn|nk zC)<;>m3%k)9AOb#RC?|6nx8rRe6*zp`E^u2KD)H2BMDM3jRsgQ=MY7gaqeY?(k$?{ zq4KT5U93NMLe0IEQ9bFmYI-sQ+;_NPys#yne^{U$6xkMRurtYcmuX5{Y5qH}W4dqs{vDv@pc!ON$zS_G3v zIw~&=10|Zmf*@uUT;Kt}pN0+k;0-qC2M6Rc10~oIX&=I|3lMeo5y?)Fo*iZ>;B;7 zfCE+B2s(S(l^5oVw-cK zAA?iZ$BGR7VcdSnc_K&F)TzdVPLWpNk-jA>vk7o*To=OKn8mHrNGVBNbmEEP^*5~d zf<$Flq$6vJg(BaNAZ;DNtMGo~U%8@i2T8ek&&A5AWXf+g^&)h(3vxPKp0;=yK7^Yb%W+c=ll#<=8-u>Sg;P!3!GRkYr=(*ywksr#k;p^w2$&Olpk;w*05ubmSvrQCgXLTxZu zfL-3|(gU5RJCbs&fEUjD9;=^UBPW{{%4Ta*5L1gd%|#Ior&3|0kV$Ms!q-};Rhb6g zPpXm*$G*FTElB1q+u-1TAxvU@k*Om@vn3O)JKn4IsO*A0^*tNjy{ z=ZwwT!V9qXrI;XifdG{w&?eh9m`*QzbqIhY6-(|(Nm6G0{!mUYOCo`dlx~OYS zcHT|{DkMnP(Z&UG56LE9X%+6>wF@E7Ypdvns1Y|57s0kJ4B{u%w%pH+X61|^5(!eo z@9ri8^;Uo~u%K5F_kYH~u;$Mtp)7;`mi$aRNoR9NX6EJqF({3%of{;Kw%*4&&#YI( z#nSvA1NY^}kMJT!dg0siC3Sdj69Sr>ebb2imPXUrPVl7Dd8R(U8Tq>KL_aX83Q@xb z3wpl00l7a%iCrvIk=z8XIhqK(7yB|2G&^je_St)ei61gCz&~Q{lev$tOMG%oPy(|V z)vue}uFP2oNUBXWztLV*_g$|2z?Ysv6G6yBt+`qE@r4mN4u&LXx+_vBJeGn}s$~XG4;^74cs*#!4 zQLw^ke=*dsRZ2f$b0Jscpe6K~OF` z8i8R_$yRFCb$!(K0U|i-p|4TkyrK|M!=8%V#F2BKB8I3~#HvjDTS|qA1O>~b;`i|;4Z|*OO%p|zoCEGq@;fz4eXPp?W@^Xh| zGug2W;^}C|Q4r#8de8E<=Y2u;G_12h_o6Mgp^7#vI|p0P9t0Z8vo-%thrM36Bi;`} zuHqY2LbR_rhGm}ToI_jYh>t=~`{WiGz({$vj`uq8F&q(iAgD(|c^{TJP2Z4SypLB> zFs6g5yqw5-j!sVcz}pwRv093w@+0`r4fjc}7TaCjj@Wa#FG>BeD z%H)>mjf-(F=K^h|w32c(PcZ%_MzlDm&-Xjy_ev^G&nHq7m1S?}S_8Aycb5{XL6;K$ zEZ9+9CUnh6N?G8op|#g3c7luXu0`NOIT5P-+4$gmE1^?oxWkS12D;H76JM0@j=wQi z`0$huI5AJtwoRCdgaDB!2A>sdo?^-io zK^3kqz)Y?EDu1oVjK0AKsNBBv5tYFY3m(0lx6=odAq@h)*wg(S3*Qw?{sOY|2b4jb z26ob@^~I8K$^&y*ghtOJJ_Yw$o~V?XxWn09%$YpMQEJ3VVSWs#=M4WmcL{QZtQ|2^iv!c85+nst5w%Lno8rJ)rq<_$5mPVw+U1SxZL8*iIWP!Vs3Ol9b_q5{id8&=A71;{F% z4jLkdT)?ym^p_?8@N05hxOFw@yTZ}`jhloYHWRz(>`I%RkKO4cWwd^3f1&<-;@sM@ zoB?M==BYs0_bY=DT8v0^jhX&F^BSs5(2O7}N9Epm`H?7W?4JH=6IO)%gcCV+Tjhg6 zz7>s?5SVIgH|>cHLLB+hJmG`@b4IkPXZ2f*p?I>v@OJ)fW{~r@jLzywt>aN2|7l8PgUhSw?I;r8tRXi_nAJ= zzrBf(Dl0FgF?bV{ljptN zyu_sVUeY@Z5QQ?dvg+$90adsc1{rsF0Fwuia>u{2KqF8s z!jH9o4Z9}>!sqW;8lZVYK|OcU7bj=GMJM$v{SXW{uHv^OjkX7 zIj-IE`(E#x6JgQ5Xm2IBb7rk#Fs>jqDEHSQY^q9&MUBWdB;rpS8icC`q;8Hbw(HuOvDdd=g_|N!k^v` zotz)@CdA}MrZsOT6!oZmTUHZ{)tsZ9xFQJ*IfWjd1pFSg2xag(C?ImG?5`~hO$CJU z91i%l1oRn|#)HW!*|l7Q2P^lnQ9B11Xu<|%-;zZA8I04wj>di2@HXyY;mK6dU4RVw z!Sy&K6%wy>87z>9K;wuuhO}L!s`?rrc?nRsz4N!@W%NG|Y1*pEPZ_CMCjRCN=^x+7V)K%w>vC(i4v($z(}oOV;(F(__;c6KD<8k;myu<`dIs&v!i zS1m~n2u1z;2;EN_ej|@qd^C0SR7xh+av3J6j#=_o>zp$|-Rbhxopb&P z<2CwjNoo#{TVyXwa*!{X#u;$j$GqGkPM16pYzOib`Y8=5**fnu9n`6QVNNd#^w}L# zaX2PH9_xWzQ{?Lipr}@IU>^=$4)H3oNH9sK>J&kR(h& z4Fk&a;dgbyAWt$%<+y(icyh#HB3@DD3$C5X_%NybHYdC&DMS$e@>fi1TDUCuN~XlA zw=O)Jat?Y?^EiQ6x9^q7ZtaDa^chRW!P58-fPB}(I;!khxzCS+LvmS2i3537(`GO8 z{1mn^&YqJ%GKX~$cl%uww$zG~mcz%5og{7X_{1!l+AjE94VgjY2^n@XI0 z8)~5#L;h;SyDdOJ5NxP><{i|b$L$6XCR1Cfe>rYDN3ZrK zPY7;KrNs5lQ5YP*_V^Lm00Q<@Knw8Fx4m`mAy=ZW3VHp`5y|9wL8zw*w|D;rU;^UU zDKQM+4r)A4=uSnGr*@=CF^@4QoV31Ph*w^YVAO}MTf5@7j(ROV`+BLfSBnpH>KVb0}pz5d+FqJk(56qyhuMt~6bEoazFO3f^D;GHrva_C!uj zbR-sQrjw*m$WqGiHb!ROUp@k(KQ}!$5&O5b3+$Uwe`UVv*8A$w@SDA?&+l%Vh$agS zpTL5!ZDU-+N77f0!4gdD8xZCR5(x^D7nIA5Mq{5b+MCa+?UfY?mUYRE2=&J)&xI>5 zH}L7RiSHMMu}K(L%i>h-$a{_!YUS=gw@W^J@*e*!MAw25-d|_EyM^hOK@az*QA8*t zL!9T&i5QcbSz4_)VB{W(4(C-@t7+^63w+W54v|7AI8(I1L`z|lg(m7%%EBeaj1{t)Z>LuMU)~0q$Am@b@~&wH#$I#w zCs*0B*Vp8$PoXgNVOo9D6wgu@7Vb&o;veze;D_>3Oq8gi&L-3IsQym~B&(W3#Ezs! z^J@q_t$eP8b(@7el*EsYmj%k)vhSwh6#IL~n|xy>_-hOr)9XAU)yT{|q1|VAVCGvw ztv?h)PXx*8bmWyAmOI*OCKCXRr8$FSd<6<7#bww%a!*l_;{i;ua6E*31c)Hb#^z06 z-sO(ZLipcX5`!A>$=EuchYyOpHvBP$?VC1WSL#>)2GV-#VMg}f-tR` zEw#PI2>=C?G=^UoGXlEDNwinOomb&Gxhi@m_5^Jhv-Mwd$QU5$vQ%hl&!##-eT$&Lt!f%8i3@UqsNe9M$zX68LAll-RtQl&weYWmb(`XYJW7ujjoP{ zZZ6;_J;}$C_8)`Ov?!JMh;Af|?u3NERcpL}P!cS;eyh34iibVwA~bY{*X**fF*rb< z?-5KHDK`05!;E)z^PQCw#0qoHVtW^qFlP)sHK`Kgvav+ss8_9*U1KCvh6{Dj!!6`B z>b}F-56T1gR+4t7=WiRL01LT~gu!rKTsdjLDW#aWH`iN;Z$l7%wY1lEc`J^|la{_||Un+ucoLv~$lapg?8R9aQz?&!zkghG&f z__}=8*#VZhA(g15R!M#BMNRgg!wsL;xfy*V%okbOkCd>YuRq34AbR|%jZybz!Nr&LQVv#socNe zV)`Z&>oh*jKUM@(G_&odNHmBCY|z_>I$bx@4YDn^mA}a89eZJ@JPkcj9=VT(_`bV64Q6vi zx4!|Qq&Ak%mi?GqRLb~`n=s{(R=j?=#)hvV$#&QVwsiO~NQD1Ys~V-G>>3)2%WxFX zaUVXW6s*dH8Rul%WVj8s5y>r9cmHz zasF86-TA!IX^Q>GOA3Q2P{pgtJ7BPT1@iE?BV4QXWF1cAzgnH^w$fs}1>a6oKyvwS zL`fqC1SS?Mm^Psl4N_daP^`~LI1$qPSW#+CSb`o1l?RSR&2qU0zz*6~8Tlkjg)Lb7 z6rMEvS4G7Y3#YltvBH0uy(+M|%<4b?CWtAlG`@8LfYp%so{(}nUA+(Ckyjj@yT4bs zt(G~`Vd8Fifb)p!JCqfvScn2Fc0jZ}@mtuH32aX<{umLdQ?%kT4n}UYf5kZr1Hz)v zJ@ta?)Yv*l_5$%lPv$e*=Jn6$LqwM9UFlS{URa4!$Pg_1xsLR9?_EolmPXU3kZ;>|;%P3Bpn_!;uktkJ0w}YTLl*$ICP@Q4UO$ z(EVsN8K7hc$@I!YjMm*zEM82@+rr-x1S*BKp`0WT5@w9?E`&v_@Zw$H3+Ky=)Dz5Z zezklI+&xgGVX8V|38c=j!V5(2^|xAmp|H*r3JV@{GFMF7Ovj7Nd@#kItCHSjG1$9( z)rRK=pdYw>1;VlKnnyP=O+j?bNOhWsCyJ%$^=gdt!#K2S+cD&Q=pgpgSWS!)S&L{xBLudm|>kljK@of-QKX^S9aL&c9D)y8tp- zD(HUyIJFB_8gfZWgi*R+7eC>IRT3zR2J9Xk7bde6Pi6KB5b2m(AWtv!2botuxuHBX zYI@e4`_L$#uR2FG)-u%)7;zdO=p+yjiTv)H%`yKgAoU%9Ye9TPa}HmdSmR@w$zmgw z{Ow&K?T3DcnfzW=>D^#s=Vgijg`8Sn31uop_AwG3$ZhAT*;g$I$=;7NK}u-?)zu2O zMQw|VV<-KnVi^K?Vr0m@9vCp^)62M^Tro&!k`%-&uh$bK^#`jj-3l8TIt{Q(_v%Rn zl}85O+D@DZGWWRa^{zISp$3GSNKmeFXo?I@k$34;h!sSC$&uvcg&M? z&=h#^r%rJ2zy8Z-_tYA3M#gqf_cXaKsy0-A$D1XCF83GL{WWMIStvCT=pY*_1GZpe zfTI#AlkqtEQ0K*H25OCb{*Y2w5lV8s_>g`MS`29I8`N@Ij@dG`U$hYQY9{1~>mo20 zdt~+|Yd4F>Bhjox)hK9VUn|z++Bw<&h0!SaZV_m;pMGKIE+aCck(@`Wm2m;>If3O3 zb;<|}(MAiIk^K!2T55E^r%8Gdpjc4L)z1M=hYqJ{O_+ig$6he4&i;+=jTc`)nAJ2` z;~XXx%(;Y{*n{Kd>Z?B-NlStJn9&B;<{xl^bz9Tn6oY2Da@cQ1bB>(0ziKPap*3}3 z5fxvd07d)fbIA4>vPA;zZ0ofBnY5|wG)Cu@Gc_1X3OTmMG8nx>GsQ0(^*7e)1a771{{v_^bL31nXRT&r~(7x5BZ_fpgX{7T^L!k`SC?#AJRe zGqev`oY(CX%kpd+&>l$+fKc_aYp6`QKe%RROWCgF;C#B z)v)C8e(@-tt}?o&Wpm{Ao!A9zJ%&%BPfD*_bU+q~IXDiwH^2-vNvPys+f^D^??Ady z!QV|`-$m<11+IVtMnl6kXgM}IJ{`!)J>bAop_7ef`OniO)oqgUx zXl?f*h+~?DiX(cPdmyAzb+&@;9LXf8=zR`&5)Y*<&xKG+={L6Dcj*tsO;pb_whE4X zoBbANp3gOrc!>R65584bTg{BLaN&Pz9Cn-bm7q2WB@uQAeBA zQfTE8bAN}MfrP3kS}q<)UnN>nH24@faTP>!j7+l^2@REyiclr6!{cX7J36Vn)AOm6A-Yd*Xa((caeMx$(!zrAgUK$uz*8e6iOK{ec9foL_Ui zJjb97eOW5e51`doHATu4$z!|j-~#9ilR`CGGT9+{$`D!edSj;`szImj{ zdQ4ztCEiKNjW)LTXjwjbe{A>X8xNNTFs=as9?q6moPC3J$uc2wjM!{j+MXOSu$aZheZA`>m#lvFGh`rZi|3gZG4+B(ZP zm>?E2C9JhFX5)vZjb}6rw=8Ll3gPB5^OP$y4M@V+0%rUHj+04!S~L_xH83a%lEerG z(Zi_J0fd~wySRY+QH5varYNj-`}&?joEKAcQL?_@3b9Z%Bda%cxq~B_M=HkDY+MP? zgw?B3??Afq7$ok69|EsjRLfpNnrWLaM&IUOB>Q>kBRFy>Rc5-z6F5-b@7iI33Ao@n zTqqUJg;z0*&{>bwpjo*>t5LhN0OeABL6-Auj!ZZl4+~Jp9Lp|JehcE;38|J|?cH^; zyy7yesT){MsSWC1J26M=XLVaZ1J7Ui%OaYb^heg+ zMa*vhB^{R+{mBUS4?OgqD#H@fTvA|U#Xu;vho^LLv(Zb$Ftuz*ZslK?X6B?%q|oA^ z6)K>_oW?2XhurGkXb8&Le(97~zLEGC>L{r^u(UM%YnqZg<{P76s>7_x;Q-fUFR`+b zQC8H+`v2hk*bT&Emn$sRN)fySvwVKyp$DfR=@V)9>`-H`5;EcGrgJQ+wq!-B!5Gs( zj!RbKy*PU5hx+i^KX*Gg&J+hKb2a zQM`E>io{v#AXV~(7|!D0Asad#g50}RJ)BWm@6L1vz$q&eO?58meyS^8p7%CUaWiO) zfEmzjiqJvyn{{R7f0|fY%9G%^7=VQ;+UUO*w7$Gj2$vS=@vokt-kpla@87<)oonEh zT4X2yPmwEE)p2gk7mEP4A32lOj7DyuhJ>iu;n|L^eE32^LOuy4qPrE{JXp<8Oz-yU{D3o6N|G}O5ujM8{!36_ziAOk}NQv5$O~F*=+PxM4R?z4iLq1zEfWuRX@_AGM_4lJ3 zjb`Qk&-m)I$6>vkQj$s6qX|jR507_v&6gP>ECmyJ$E%8h>stUsS7+nU&fU*9mSbkK zZR@=od>|^B#Zc1Cji9}fk$$5`Ty%r!OqTKST*>{Q>q=k0xnmO7t#jpiQT)2ZiY=DSkqHqF2qSrjCr+@;UY;fYTMtbpL)ov@0_}AF2Y!0vMQkLuD`O6L~XTsv8ZL+XS{Q7 zf3EPk+q>aMLUv81A=BVSv=~jWm^R2P2Cmay<9^L={Oo2Sz^~fmo_`L9fuGGz(y;h) zFF~lEDXY6Rh!-Vm5OLC_7S3yR*R*QkHSmb91n zghH(X8buotqbiiMxS)tH195ESm?sOR&;gm^z|=89J6OS62h`sfk6S>iFQC)AO7B)C zdaGG3MRRQ~FsR zJhT^+XJ9hm&nuKe)%rdH*+%pg6A#6GzqER%;k_f2e<@%v+X(G#MZ#Xua+V~bF;yf# z>V5bDc2Jd}!jVP0oL3Az3pshR^nJ$dL|50YAm`>RlM<@mny2QhOMcgSK@@Ve4uW(i zp$ifd43iv7COkZr>&f5~SX(9T?ZJizDYExyGWLhcNxiz+Decf2u4QMF&vdsivFP*T z=t1p=p(dvuG*70~F`VR4owR1u|M!!ho~7@@nQeLakV%qQI0_;Bj1a>klsG(UZ3e7r zIr#RlYCeCWu$^7saqGwGvt{{58MbMq^;;LoZ=b&zIgay)>MY7UK5y&K0qO;*xvXw* zkEKwLattN5)Q%%M$OLqL6SE9?5)>OPC%Xi<3tvI|(g2krY~4frhih>bjChZ)@oejk zA5HNT9WN|r0SpE4GmMRvhZ^cKdSvLGcM7fiES)u37hI1<;%!%%9|JS{^?9@^`SCK) zfj(HSzbCyD8?Af5(fbQarbV%Lp~2r(`rpNToUeQzV(tjsdmil&o?k=0a=cR}!tamt zKzr?OYCjFgX|Dxsm?*2^-(TAsRUpY=bMp4VA|_`pOdcfwH*?L*eZ}$Sh|Cb;&j83J z)FVxT_sxD-mee)d`v9$zwe>wpsVJ|sHgNL!md^^PlHMa$INg-RIgjSvFh0jK6$kXC z8tiBPAR@Rd__Ubtl3ZTr;PSUE4+M}^N3s*r!+HXYyR%VJ_PhDy$4`vei zF9d5`fv1Pl9ZN-xe9o4lp>9UK&8_Hu!pH{fnE2XBV`wI07nYqPNn&vadn-o)^_+Xs z9x#X4*xs<;GBglBimUS`&ERPeDd=}&ZH_O%bXdUrzmqp}eIVAD6CO<5hhM=-M4L<$ z;7LqNrPRWs5;Z;b#oz_(y{f}5dtDW+7UwOjFK!hW}FrN+*daw@ z3tji+N2eaJK2e?C($P#VtUHlA63z3a3LocdWt1mwFyNVAEfU)dm0*u>fw+EwC3#xd zE)Xtg-KY94N~`W-y$J&q+exGL7zcO*-e5iwzm#E43{=8WBPUPcn(c!Ur2PTzI_sl8 z-za?@K(z9WKS*%ky&bTNp|cSpgGh&mglZi09Fev7b54r$<@@(6^%tHEp2`OwwxKDk zwnS45pUc2!qpkQ`SOG~!pJjJ1Q2XX&_r%QDxf<4Dy8HFtwpcI~&C&er;uDgx^El2> zo#~&Nkn{KHZ@cbK?D*Ko|3gqOTGp33^#A4AZa+DxhZZZgkRF463D~R5B_exhf#H<9 zJzO!!bPzJyF2iym5!cN+Z#sy(9rb#o?%YLM*ER&Y!ae+u3;SXdQ{_6X(_4w(LI@&) zDv#lr3uqjQ`VhLCaWBXUNAt2CL?tmXR3Wij`_kT=C74iWo{vW3M{>%M>}JTj8Brz> zX_cZKPemX!OJhoLj%=qThA7Or$2&QrINL31xpm^smTpbf4uiBb^sdP?hFWc5J#6~_ z(anA*=;$KZtIepC95@wl8`US7bc=1X3% z8r#gj-BEtPl9JFOpB^mSE&ZeSjCNpB^IqD_#c7F%ceCqY`PoGY>w+&TXc_fpDSl0= zj51z#ON;z`%yvmLviFNLR4=1FqLV$|Y$Oka8W_A_Kd>;v9aqB=n_X3jQ=Sty_&>X5 zJDYVCT~vRU9FDRW^|3s+@Ae}PUQj?%Kl24_vha3?h>B+XyHCuXa>kX$z+n-(s}xJp zyW%}Sa38o4=3}O#C+XZJtNB`29$+f9$)yMiQ_UZTxKz+;aj03q3^8FgAM4GJ^iY)? z{ocvb#8P+%s)itdA+`|llZ3&Qla^l;Qm+v(oAxTkX^WYMYI0p`tMiw=a3ep%BH-v= zS-%i_>X0?74G(^TWe8(eEI5{`uChr=__W%OXX)I6ZKciWfZ5{3?)#GXA zxJqfDZ2Mvj4~ch%u6`^7AYD)=po32DJ?Z(2XA+kehr>b0j2&S4CJQm}JZh%@yD?i? zuLpjVdT{!$sfvBO`8A6Rpe^^&0(!Qi7UnQwdI7P8+X)usx$5zxwn!H6;Zv2p^0A+i zdOtwE2ywElYqzpAH8{|qkb5jx#{H1_mz=8zFe(n^@F*f-)sl^`g&;}TX2Wn zgKu|oh{&DNc^Wn&uB3CtLmwdn)Hp}wtiPe@u6(HR@RHfuaMMe%#%;^^i)i?<_)8@3 zB+O(K*R3{Eu7lz8{kBOV{nl8^Y%l?&e?VRC`19Xx@Zip#CQj6W_H;zdu84S{qE#uJ zfDS8;`=M|ID4kK)?*lYgA}cnN2+_2<+h+iy=RH<1)?5xc06ec|zKBFUY9|NF#^mso zqGP^qBcBx&4)Mp!d^bBSGA0!WnWk<7}=v_M?(${s#pvpxqNDqWOYmq#5$qHF?*@gDOdZljW1k_ zS+r)c&h+YQH0c~ZpAsRfbJLx9w{a4q#qqm`(Az7E;Q>i<>kDj(c=vld-Fyt{Rgh>x zPjU=%$*V#Z*p|)7TS^&kg(?S9uLo>Kf$-qJrfH9Y1?6;(@zb2E{=r)_$lg}VF8j-9 z-H^*jdi?z+X~l~AS=+B=`Sb;Zu8<`xH|AKMsYvnTh z_l3sIRj*><()M)}eh%ZC7gJ@7VkLvB=NXBK_Q!DmR`b+~b(%qH?jYyl&nqzSNpMU^ zxNgDGO?wcX-2^nYbWTLLCnzFx2teNFT`@VJn%eeB+|Ckm){~AXbw3mF z*rE&g(Jq>ZNiquD+jWi^uI|Bu${0a4!&tOk zX}bmoFnl4^IspG=Xlz%XZW&QW5-{zI6NtHYo@F@0@1{maq)O5eqESI9 zd8S?7lGEk>lu|(-fedg=ETRrMIY;l>Ta@?xU9pCkTPsgNV`Mw3cvt37UABLUMKU=r zuN^3M6XvD*-G=lf_)Ojr@fT(22fC^xSHo=T)no~t-z&oUW7l)J6!AsNn9iiMesqTN za>ObZ{CJ6>wwGkdKPlAeAiF@`y{1kkfSc-I|6aTB6LGoC18uBRR*?aa8vNeUlksWK z?c!}a|G|7}=NAMF18=^R*-#!j(JE8jhP%gN%G!h?YC~IZk)MjEFEvAL8wd-JF zKyl6R>}xer)e_s@x4>caN;xMIa&VSIQ^oKBH^(fNC=sBB4=~{RqF!pCZ=oLLspqrYR3o1Q4hM*w9Qh%`-wHG zLAqf;hZL`y6M+I`Z7BBG$m0xh zz@zIt@HdX0XD%~9-uunf^9v!#G_d0-b~&I;IzvYfVHMZ+)uHBGDGRTVt+t`zAPn>| zq0kDh+K>%`p{Td|M`wIX)2%5=FAQ$%06}?v&@ZCnA%8Y>n{h}#rJAj7&o$Njhd9Jr8DP^Q-mWS^ z#*46?>-IHx14B)+%VCMam2%VTOf?SXB10>sw-`REAXYtC`Uh-oQr9ooj_UZ8P;+-O z5kDCQ zbHG5nWAG2@_1QN#g=2v1Ta>D5#z``Z8f%_?OWp>%q+89aGqGf|EOE-{_aUM-rl!Ce zQHe2tFktvE9s{gJfW!G+m3*YhKLZ}w2penwF1hwsx+?8Nm|nkg?&)0hf#$Z@8_bTZ z#K4;xs189!PBxGYZVyPRY_XND2xgE&25W8yvqsOD@`K>Sk}jILznu#cxpC2p zLhbR@R&;-r-C=w+4cohU5kU!le)x3plZA$FH+${372=*eEXzEAkGQ4Xi5Pn1ergVk z_Hp4w1kf>BU_$vT@h_Bz?VQ6g3-j`Mf~TzZpkE#8CzKcf_7v_w%#-BOf^&91&9LDv z*7#LAD7iw#`@+NqX<$5$ATkiCW$aWh1sEgAg|F`7*QD!{`D5@POj7M2?rVhrIW^c3 z&a!{;+`U)%@uY$|o;YNdgan)X=?vMNd_-?9gw8VpmLiLDQSzx$9UNKAw8-Md>aAiak}HM=jrjZ zdSdzGXia*GR?J7z`MtVDxp1?oJcRM+MT}TjM>u5^> z>?&N7Js^qZA1?zvPv~||_?MxZ;&wP8j$*;$*Q9@Oi_lk|lG#^7%JQ7&Dh;qI%v-$u zhCx%Y#Hiz~k-!Lu2I6r~)%rlBg6sYYU|Rd5)aoEO;MSHCDcBh#tMt09V=F%6vYDOa znYsf|=B@*Z_86&TPA4D&6L27rwzc%)oXkuNXTfF+X zZvP*r?!ijVldOZbD9~X4l{KfuS_8hWzE3_PH&=r{sp1;8Nt`7f5Usd}+Sw4pAGY7F zXxgobg&^_yBk1rFlR6=Ag$2d>OdYmQ#41nVza)o7rog-F$gE3aDwHx1K5h8hp! zmW1tSnyj|Hw)*Z^ME`Q@>6?!-jtgJr<_OrT;Q_hQ(=mM0k$X*suW`6;!?;=M2lemyeIZ1)3m&~ z5J!wvT;sLaOB;{yp<|<%Z7U2GLA)L8D`Tu#DN{8eZ2sQ;#-8ifuIvcj*eWuRet( z?hUGt<%nFcVX6ng+?FJFw!~$Q45EFs!TVMLHb`7M58l}AjqM^k37A|?IVdu8yD`Mp za_$|*QSK)DbnyhsFqB`};Med5zxl{08Ts7a9i`HxzM~=9E?A)p#A!p^MpHx_WUcDt z;p$qG_&MOX-!gw~^{5nqZZ}TY`fWFE;`1S+T^b6Qt(KX83o<7S1k;Q4nN!7OVB@w@ zn^CDA#$h|P{WO%Xxy3x9LXr@*@*_6)YLZa$vtdQbUxUrrBo8kpsT>SKvmWFGaP zN!-ma1HGM*+zszvr)K$e+Rx$*)E0-v(hUprHkV91qXTP1!6eJx(HcJy`S-x+gkf!O z8HAkFvz50-tN0BZHKp#9rB2u>3s{8!^I5&N?&$sE+tM{?N&lW$Uf)ILLP~o1<l zp5Cm+u)marg@C2zG-c}UOiF$eDc^avo%wNEp)^BC88QECEd+j0p73V8M7z_UNEG`6lOEI-{w_f5}Yv`N>q%rdJujRQ07I{3(YJ#(q zlADd{Yz>|Gnyz2znPSsm`=aw5NyyEIhFfk0w&v9+0E1ekNQ;<Lt%=w1Gz<7MG%ZTBs%yE$_$%YH5(;fuX}h&~r>(6HGoEaxOlZm@RI~3`r_F5EP0z z+DxfPwcUexnJk|{b;^5vpSir<82u6F8Vysj%!1)QQ_uAkO(lAln{)-oSWVnQ3It&3 z+d03Ik2gA~+i%u3Nie3px;)T#m(|*3`oM}K5j0P?Y}d&RXMY`5{cu0?6nyo#88?H@{%TghEcvq>Ia!eIM!%>o0F4Tl{7XTW%RQ-do(u*7rR?1IBqp&9yO z%8K>Ennnp+W8Nf)Qrw?1U$Uq@J?|oA9o1MJtM&@tDd)_JFVMp9E^6+OjfPtGBza{8 z{!yUgNk%BEnF-ocaVDKmwpqcFWxlMhSiVBH{#PbMh^;<7Y)AyhT|!QeUi>io>wk~{ z|33i0^syG2pi35z1`PII*&IvRV1N-2LHFw;HUlY-LN*jibM7l=faz-Q}9s`urmc+X?${R{JG|U`=qun;5j=T zSt4yJ-{iz1!h^>MElv?0g5O4Eerd+GEwer(v#TBvwdLjf>^y^xuc$)jN$>E|pNONU zXzVHC7FM5%tZ`-wP44bpw_8Z))4olIni^^#3OP0E3m6e{W!$%7j^1ogx#KYy!oTz_ z$n)p!v*k_seYHkY2~MlE-RoH>{)JVB#mcSRH-*5K84`v@m;^!nc+t<4H)!c_fD0EF zOfeAw{)}6@0HI(;rc?&s6*g=p64piH8S_?Rg+DI&ERh&BY#X4-Mgn-4=YAb2O~+rk zOG$4(K9SySoVc0{PwYXuBPuIwb7z8 z^)9+yE6+vFlg%5)ER+k*CctS}+jZJJyY{Kv-*v3wLLA?yYy~OGI`(mRZlam2K zdKK5K2rBcBa(P#FXJcZ=&q+npDwb7X@VO4cWmpnlycQo1*QLr*#j(Xw;~8$?$6fT5 z!2vNnork#3aytnw5K$ zN3_1((Kt;axCP_bex_af@cQdf}L3IMFG## z0xgu1E7uGPw|DCpnEKvix(qXhR?r7D9p297K4ftpan;N8I!k!~l5xptu=RY(P2A4H z22E?ALt8F)Xw6^1R;yzGVubuBhGlcNCCD|v#K-ZDQ?o4%6#*v99I)lppc<iEu`? zLt}{LSzeX0g zC$|<%U}SkkzpTdf><4cxwx6)BZrt{Kq(LLGtyOUw8-q_>YMM;qJ#m)43|7ae?zr*? z9#tCsg})dYZ+?`~#01AVNF_SoW!Oq|u=QZHEN#En!1 z3NvV@l>CVec>w?qglM5%t+f5-Xev9QoImiRFfY#=`cyB63I^C zzdrSWQ_1kT8cJBK7N;orI(fwvJTIEz(E{G?Q^zTJ0YDI}`pfA1lG1u_%(1qvrZj6h z^{#)&S>pT3?Sw`-xbkWzj%u3hKkC6gEh>&$Ar#@PyBlod$*geYC+@btCBIBhGtpT} z$*?`4wU_@M(1^> z(>>TyiRTgB>hDfaE};>&yGA73h+9<=I}1uOlQSWawI{kA9U?2xJtrEAFm9&80cqu? z1_1YrQ#F;yP<72ZqsluU(dLx}Gv_o*pWWz~r{jIp2++|2k@x9Sg@EcLQfm<>5!qSe zZ{}74NuW6YDBAS;UUonV@KkS#iX!F_^~S8>z^BWUlPN2NB3VI|2!Jx30-i298KMQ6Q=PsgEd+@J@qMNxxqkx|@ArDfFP!vTM2CdAn5>8!pUf4}2?&P|GE^D`oP zaOz;>ng*}UMfP4E|mJ)^gH!aLdE+!JJY|n#56PZ zkbmLGDJsMn#{p@1?z62eZL*3yv^?1j9!kk4(P-m=5|cwtKO;57 z=&}k&(*9rx+Tr#iv$B-{?krSOJ*x>>sL6DKOj;XLx!2Dz`r$N7q`Q3I4B_3H;PNfqOFFY%;j$(_-nhRpSJpX(@h#vP8d@i# zYZD?-vH?0fU^2YZ%Sf{oW=*cDRRx%gG=Va3X!`1R17yPOhSVM1Qo%hT|KFN3`{@|b zBRkQ1xQuV(qPMwx^!PlP-Ksxc;^#it0_3R^AJpY(X;Uj^JtBPp7=2sq=wiwz+sSlh z*~^Wi1lMoIII-Nd64MA$s}&1T?VcUQx@O;_JjOM!Wi0IriKN0;?#Fxf#AS0VL%+?0 zRCMjoou`NzVW4pMVdobg|NT4q9i^8Q6px8f69w4w#OcaPBwZ%r#NlbaGwAL)LqE%( zy$C3c#)z6rKp)fjpcYnt&1UBSa#;;4qS};$7N;H|Ngt8))JaLmD#Hsau|emyLzJ2;CMOXf7+v>DU)5KBp& za2k2W+P!2WFQtXcP4U?6%V!M}Ss*OXRTXw(@KxZWY}f2c89!vdGWoM`j?bsxFV-j> zKHnwi8UvFvP9|8#3DX1~=7_K5b!uB&F;4RX4`Uq}ZdNw5Y#Yx3NVmHypi~ZncgTAplI-W$Jid8MoX7^U~tA&9CVP zS!%>6z&_6QepMxQ{~{`fd|tjRm6cETf24Tbe)9%Q!iEP?{mm;tw371C#$Wn9rDXV5 z>KOrn&#t5tEqb6m=+8OtmJ%_fQx&|06tI^A(+erJ@9iVHbGu;pk04dW)$;5je?+*M zNNGxIq_^AV_B4)M0^H6S@2^hS*@Q?rR_Miv3DNo%QnkHckK~m&&^6fBp5Q>)Y>nk;x8_gRYIq@{!{h0=iV4 z-+ZTB=`fnY_hC@l(<0 zESk%@-n?R`nlzKxr@TqP zN~y<#jJHeaWNQO%j^ASz&doSsSwcad?C;Ta1*F<99@=(o?1akQ>G#U0huMlpGGZcX zS?D|Z&eoHz_`Sx0KOg|!(Zlxr0;xv~eX-0Y|8TWcZa!x<0>TsqPV~F`>A=ouE263q z!ZLF9fe#PX7?FSy$x(k0o#;&~^EbK!0HU=8$8vWfro{V2IHRj`LN7lF=3qT=JfYRb zCcuvVs4)4-9*aZE|5ZUk>D6hQ&3eJp%ighi5J%~cZ9MVFIRo$Ki1_892`+nfqq=9D z-TQUBrhjWIa8&j}ZG`c*o|5^Y3qIdY-a)esN|m|6>x9=23phhOV`#Z%y5`K0@#imX zf~gD_BC7j9Elj#i-pS9B;G2s*jnCg+Y>&?EQEEQ$qXeMw?x#D0!*P0KRjman-;js{ zw$sX|VhLNiafO4_;;a;=Y+f`ZQelhH7K#==PiEx?rHkg`JT91iagS>{50g5OP`$2U z8qAD)>Su03+Uym_JxIw-emw5MOokYGHz>+i)`T~1Z#v<6f*(thp4HBb*qXmJTn!w@ zrF49C%BxNZV-66xKvWCAk;|Gxk8;f2Grm&Ww7kp2+uYwZ&&b?G{&;qfvQp>!=+?w? z)Od8x9APcne!Vs>FPgrY&`3zm_LTXX-1dpP>qe9agsxazdIN;&C$Z(L(CFgAxAyo# zyal;&Zk(Fvo^`|bm0*D*luk}VC;U6pJ009gt!$@mhGFctnX~{9_5k6XG|%r6BUBds zYI%eoi^WNNOSNICaJUMVxrun$3_R$A7}HT_X9(uO$8Vg7sT(!%8sTNbjcDy z=X8e359PKrbB{x*-;qlik<8XqLK2g8E|6G_KphC-oIvd@u??Ou7Mo|lT6Wzj+WGbv zf_r4Y&umHbx3ATL>&i>DEnD`-4!y>$2=#$yE*eVjdoq0`#v9XeE>|Ow06qdf(+i%C zYvkIuyX>G|GH59Ngv>$PXZ_#z)@|Nt_;#+zmjVN*TDKIPpwJK!lnGq`tTVer(#Ge$ zHr~xQakSy&EcZK9LVrtl%mn3U$<$4!vH+e9@o0Jr>+Nla+1sELH|WFozyit0>|C8n z%gnuDuI|TiWPQ|`(N`b62UGsb`wt7Q5%uwAb&W8@2WgJ)UxRHaqMDVWg(y)4nCL(O z2~JAD+s95v12Etm*OpzL-5v>8VL$7S-fv91R3pjDFY9n8WB1V6lsp9F$ORTbvXO3{ zH94c%B18uodC7u|LE98LFJ{1&V&u8$PN#@Q`6r591s`WApX+OREbV32)CO6F4yD(X zF^?y0+;gxO^;Cy|#h*cMKH3$0_W@RZF!e+yG>t;Bohj*dlsepbw|X8eCiDhVs+lRv z=+jW-oHVA|fu)|GfJQ4T@9nuhu;Wj*_Z!P=j2w7LXDZqMLOQA=fXI-9;18jw9rOK) z;$uqOQJyB4S?dMhKDlDudy8TH$Hn1^n=0vJO@?uIEl$bp$ZQ4vo>ZuuVX?D7nUCUK zBIC~ESp5Nccp)Mk!OAcFael`PN)G=q2Q;r@EyV7=OkUvh!tZ+uN$y5@lv~JA60RzE zBd_INHmNBrx&XGr8x4ECI^S19&@P1va21L#C_|}@CrSbG{zBF*Af{)`J!TOU-#lEZ zoYJ5aD8WMMng<4FPXitp;g>Z_GPf6OpPF5^wjRyY$ut_p?09^bO!gJVIB*D8(c=(T4!YIiBN2Z8=?1&Zqt6kG~EK{l(vJ z^|;ILZO3;~KGKL|>AZEK7jdnEc5wE)DB{1$pTA^u^#{I#IPp5PM=b%@SJBm|Y;G1l zgWiA9&F-5%i_+PF5j2ckPH^U|^;2rd0O#c5@WV=QGnCssYmc2?`|s;6^cEd_6g zzLh%9lfC5n91tbi(*w@QR=cO|Tvd3Yo-j#~G4Qc?Ly!Hn z4zMaF_5PgY+T4Csh@XWQh|D2P2%1Zjd?Sdvhpl3`eo48|BKk@1(1!xZg)6;DYr`I@ zKYUnT#t@IVhEUu;Bm18A`rLK~e`_S*r(^`@RynbVD@TVR0EKao#%KgU`fnyUUFo)W zzanI~k7-ZUX6K*>DI(ge^i$14$=7`me2^IT=NH;kAnNzH0m>Oc#q2_`_V06KP6@1! zYQN+b8Ru=8t+Sm*Px+#$jhze8m-r?+W?eOG=sbXIfoT{2OEhU~B-_~DSffY!_oF_l zt6-$n7&2S-O9Pq1A5?PdCBDZ4?E*3iIP0X}BR>5s}M zx9;6vtS4A-OrTWdTp2?+tHp^>!wmenFKwFdjfOspojqKrJ5CPk0B~w_##_YjQPY-0 zaF%+Q{zRjqFjOJTz+~$c%B0S0&EGCefh!7VvpvT3KUFfBg2GGgwT!yMbQ@?n`ncyF zj(Bz)Ge$%oBSeTPqp}Lr3D3ZjHz^=tSD(EJ`q=a2>DBQq{<@||s`QEGVq#gIDKSOh zv|irRz;E{~%-yX1=dLb-LC|*y2Bmgxk;Kgjo{Y)SAJRTgYxktN;VExDgtjv}kxW}lU5~p=XFysq=fv!JZ1mMWs=$62!Q{82=q1O^ANdy;tU zv}L9QujV-2?WbA<@=loJ-B`$eD9&;nwJm|+<~3SF_IS`V(fU05vTWH`f1-U`yX(mD zZ(Ie)r6(V`qn~P(c-*Vf!$tKPTW&-EL2m*H0r^=AC)-`M2QT4~tbU6O=rhg=&?}7v zOmpS0rN{XbZLe9%H6Rh1^>sRr!}(fSxAXZSq6q4s$Rj*V;heSKD8{z`o``i+x^kQ@ z9TT8`TJ~+qhq7dM_tzjKPJ8U(I4uORjVs*PB6CH-txEqUdBa>FQF$*rs#TPkbTe3n zMsoY4S|^(Yj#7EetfFV<*0nGUC8}KmwNd0?MP~e-Ki?Lqzy?i;g=na;neH(%e`_KJ znrz`uVf!lsbcOqyNr$7trobA1a^f2d3v=M=ng)p`)ty=N4rP0Gb2n(P(=@_3_HsH$ z;)G!Sz9+#zd->T6dI>qM5}$MZmJhoStngRb8>Os4{#0UMBow2Ox?Yc6Zn-ilC3kg! z9Ei!|O^FE94GoD(TreBe=oXO;oTjYrp#nPLUwvi1{((;mK7;SdhNrv7;N5St6}T_&(GaPq?^aY^n*cKIcmA>S z(ABi)D~_Xn6GMJI ztV&n+{5*i#X-PXiScBG7aaC$Tv05h@bWR=CX2ajcivppC*t^AOsIwSv@vne8>;TK1 z2IIZ`MBMT1js2xWHv_`TUI9k@j<8pN*1lgvk!a%sEw_1ht+aO<$A*8LR!PVQ69dzg zck|G$;x?&6z$Q`PIf(J_e0wub{up9HTaVR5W!00{Q8E5<4#EPxlnX#=<}zjYnkMn! zf{u;lDj?4<&x(=1sc8fGdiMB`@GSQGu^D++iH|_G$T+H516e?|T~U%wk~+fgUlE}x z&6=B&K-kNh2R@T`xAil4ROgre9Hue;pQoHt_ITUjP@7CRHp`bwu68bp)!31pwiARN zYiR_x&)!GYxr&-We|5!lJaWT@3*sv=c`aeMiBY;EB1Rpdg)#B7<5Hq5Rr<_p6Wj5*#N`Jth3j; zWM1fP|Gx?YsMSUrX@XL<#|k19t;?g@xne`WHY(PX3oE-Cl>3^fnR5P&m&}$EOLG>F zv+U$MGl5U&e?)?VE6BZg~H$k9OpD9F=DUY7O-$XqNu-0MD^#Y zlNGP3GeIa8&S(48#bXbGwW>6N#w*SfQ+N(v*pSsZV2J9e7qhs#-cNxs!m2NE>?b6- ziOrV5B3M@lEdV8D#saXo15VMR6B8#*_0JuDj%1Z=;W@<(F|B-M?{N|{!#oR=7fCyx z4Bx+vqRee~*dlhPt~-fHcsc5SxVGR=b3#@hjrm99M2#DNEceiKS%~vF;g@$E^drg= zAWUAf)J%z`Q5};5K`SMQ?Mb$_SpbW{uxikuk6Gccwb0g`hc;}!04>&51S_BOXU>DR z`MLNlq>m7zah8@Pk9VEy_Nl`}F0@IN9^Mz#W3Nf#OtgI7l=*a1FKbluf&8UCz7f{# z<9>L(sn@V-X;!MPoqFggrnR#diqv-7%SmJS4+&e}o$F)H)?c>DwRw|K3NxO$v^b-s z6Tyip3wGUM;4;BioadWZy5FYsWgk!@E5|U;#+qv+0k7##zsT$oQ+xi{cr#Rlsa~+- zX>`opr2w*ua^(bqibE{tr$Y5@1eH|T*UvoT6iYqeTMm07sjGDG#KFg^AoMoMv0lxQ z+4AlZ4=N~m6FEDO!BFdsShVj2R5vn+>aCU%XR75E3@>wZ(F*1_(DgG+B;34(@Ke|v z;|a{+1hKj(n){JUsY)fdjGAms(KATYEC{}yDMzYz^T)|=lD9)24AdV^YhbeN#q)qp zFY^%z#n1u_bhgrbTRGe6Ret;ch6k82Y}0QzxUGEL2z4ADSULT`2R0$wLq3LadzpO% z4`TlTd|r6VrwP;;3yi@9G^jQlkwdQ$?eJRQT#FwbQs*EY`$MbwgOWx3nG)NuUw#fOcx@6EcPU^GJwn^)vhZ-3G`UW_IBIaU{3Y96BrO${oL* zUqYayqHW&!dKuG}O)HsJj8H@dezszZmjla%J3@b`Dm#G5C+a2}`>m;f4r(qXE z*Wac1L&~W(`DTtxI}KhTyiLy7kCsK?`5Y0!ntB(LsKvmQ2wfYKYuMcoN(x#JW+A## z8cFxUq7Fop^)CCk)6dnK8D_SJZ&bh#O>j-Pon)cQO1o?vMXbLgI+mp6Hw`74H4}fc zuA}o+w?+(isR9@QCwj4-ZICV6n99{}hnDZ7_cZ&xG)YXVLvX`y24sQgF1$oIf8Dem zFi(tP3}zf79FaNKJX^<2jz@x_Ypm191>{E3)cYw~cB#SV57lMasmPzbTe`&;6Urg0 zhF#YR3yOt8tLAHvxzgXafBWtN@i5$_ah;#=rrU7QcbG^xvaiCYZ4##a+fn&3*5dwf zz~D;bjKb+5ad2?GHbN1!S~90)(vAqw=pP|mggNSQn%Q|ZyO@xHB{Epl@;UVjR_2QD zSkd_3RtN(?3xv)mBkZ1$`z5NPMTToZ`d`Ql(<=JnFfYmSfa(@G{^tz1AvT1~QI`XG z8a0&TP<@N=?B+DtJ`4&a0#MV0-&2dM4JMoGIYzAn5ItGvHw(m=m^oF5$Az1OCXA)l zH9os-Ag-6sZZYUst9fAm5k3iy{$A_G0L{v*CXg@PxtqWvcm9CTp57SOS*i zGxUNQ58)~5BqUaS%UDcOv>xKB^c@Prr? zYgWrL-T|Z)IYi2yEo_};vuC>PIc$l}Ed{MjRK$S1+NUG)JU6kTJ$XpKd0uwm*C+vm zl7duawQV+uD-a_4;4%D1^S|X(IlnBELEzLSz;JB|gmZMq7`_HD?TRjbtwbD-FG+e`DmJG5_ z3?zq8*Jb9e(GwtFDN4i{7LP90d7&Glm zj-m#x(ADaFR;Xd-yJO1oY^G^uWNWn*Sp6Z?ohKsr+b!7 zo0nv<#pt+@tcN5K{4Ap?(E$xt!DzUf3ROzyIY{GY$me_!BD^M*tHJxmcFEo-_vKxL zzPc~jVJ|aqqi;E)9FblH(O_eLI_wVVtFqPB=3*v)hQJ%krEC1ge$ySF&Zh7SKEmyy z>UOOiD&5@Fpv3ZP2Xs|AeqSmZ6q78?4>4}WuQR1pt~d7=@T2fu2sc$}iuD#}@7suP zS+fs9@N%UnyTj^(%%PlX6OChsKz-lC+McYh=i_sX9ch;}bPSam)2$_%?JDKyjgsAX z_?Ac|unTSv7u-uoe~lvDsU3r|{m7?{W3ymm74i{wBk| z`?ZNa3MsaNe=j`_{QjnyPv-;zgreJQz4d@^Y(yc1@D0m2=|ghx_a+i~p8*UG-uKR$ z0w6A33Y=7r9E)U>%NAH7ffQ3yDGkI)o3A_efcnySh@3q}YTt1MV!}b4(nY3&YA?s? z2CA%hJ;O#fza!yI<;fiSQP*JWiAR5wUY3qAF~&=3u9(^;K2VmWZ2q=t3}qasmrvwf zOs<|GbpGUIcqk`h1|tFOHl?aH{6n^tK&Dix4I4 z`3R<15wS9O{tdcp1;=2FmFB?YjvLji2oniyYUI+HT^jrJd|y)-R;C9T!_h2l zVUgpchRRMm*uMpy)=76!N^!V0oIYD>2~WCh^$+80uZKWlDu{ST1jsPT2Tc5ce_7p4 zO*MDJoqT&RD+Z_ep3ejGE$cPR0wE|xULJpYR8eF-2r0m-L%w&=vzu40UtRQ7dqb6v zLIMR5CYZq6t)Eh1K>^e6n84)c?GDA@3$3qoFz?V25P0@GZXrffv!axV(W!Dpdf}9} z#u?YyM~xD@D0mq}FXG_e4=ApBu==6Y2?VAu-0zRNZr9_hFsC#aLRYqf4d$d1h;7O{ zh@zrCjHkK7+l3s-;4ajF6QD9TlQH$}++5%%hz9}UKK-sJ;0h5I!0;-slCYjd)F93; zHse;jK5_~s7?vZ04CvamOvlOlw|#pPsL;~V{&US0-Y5{6CBTWH6kT~KncKfrNfF!olTWNyGqV&5 z(`sb-nRq+7@K#qdOg*FE9DS?idaTMR+&-9ze!lPtwxO|QWxZ2f-t>kMFT^Y1^6A%N zI_$OG4n3=<= zn(8@37p7TWsq07o>u=~Tjx z_LtH&&yY>#1w)tKsn`HY-7Hqpai&2Rj9)^Ky7;761F&%N5e#2fTfnj1x)}@2X2amT z$&kDvpHR_5?}tmZXKDpVTPLfbRc#!dr)eJjs@x}5<$4533bh6JU;lPDr|O8F2;g5k z^)E#V$xY=?$1(_S1^xImM}-UIDMo%PLRBf{R&57ED21^~utac|&tTdYSBHtAMwJ7Z zG^QrJQJ~0_%c(MkUgF(pj@bij-$pEL^{_^^7@2VKc((A#QZMZbG9q?{Fr`U1ZY*qv zOomYoqWH}USKN-yURqlC2x!aSUBTg_?oo_x??f{+jc}zffchFo{YOtqfIK3K?x@L=CQ^!?8Npk>Unq`0;HLr^_7 zS(CHiT6>o1%sKX|#DL$;v!K$)gLT=x(0XT8yobs+&EuJ1kmO)|m`ftX*iW@!0gipg zDbf1w|3=2R1R4q^tt_oMiChbTXyg~UxwmYWQKzfQ8pc|WCF{Vl;Q>odB$zo%3ZW$$ z0yxzBcz5?IJh=VQ#LGGy>Y(jEkYIVuXwZWL?dP-S^71-;m&3_2Bbv{>bU}t~n}8N_ z(eP|p8lNf13+FfCH$kpGfRqW0p(#%#h6KyluUy+Ls{9W+jy;EWFhcD-tM<{5f;a{B zalbRn^aE3F5w~i?V6DFszDmHVHrecLHwh{bcgzkv^E|Y?vCS)A6RVebh-u%bXsGkd zCaOjUT;v75E9?74Y6lIEXkjTj2SD)e_4ym7k})XLv1Rv6gIIQf4J)qKB@foj%|Z%i zK|Ba_LDyQq!Ybt7%$7s>E60Qb{0VUF!?Bgw(ST@?x0PAMx+hUbmc5`H7f{5R(kCD6 zS(l$tj%J5y(1Y#dx?+vE`#J>X8kS_{#koBsoVypf9sbt&g;^kg6e2>c!bR}bD}TZM zsH4aSk4K^lXzD#2+=T8@SHfL8Ies!WA^{KTup+{jIf_V@zoaTRT#`1IN@g`7JAf!$ z3?hW6wK1rmuS4e2S^4EAG&||SR>hE278y#0-bPp~_|~km>jgy*fbXgK9=FZ^A&?L%|MZ&93be&w;m z5}U-5#Xr(MEp?_9Iv$?~gg(`ZsdG}GiGNj+wlHL+zuHNEIhCg|B~p~8Ozo?DfF0w+ z$3Kqh)g{N}d~oPIpI3&xo-5~rF*w%XmTmo-*$0lO<~(VsMDNmF=MoGEC^>Pt5(t5aj^bmx&` zLUSe>Mu>g%C=uH0EFSQLL*1j`we7hi(*_J{mo(2~U;(D`gMQ zX?OP@#V+b7HCb&gjIu;TfhWVEjy4xmMT{Oq#=keFagMLt3)gl&9UR(<~% z$JfQuT;O3$FCAa4lyHkoj)8id)h9D>fj=BI3p+a~6s4;&x2weN|95QRdoua&e`ZT$w%7|F?sgl}y$wCq?@kt|VrDH=%WHmkUD zQ1~NfQ`qC-+CjV+>-nSf$4km@hUPe!v4~TA*1(nDyqrze)@Bhz$4pLiIjV6W(MIN8 zT~F{HGkOU@j%q@y7#Jyek1{Kk+eeMP*VA?D+P++jZ+kiqzVpV>vQAHU1_nGD2r!(|pu^>h1O;q&ti0j#@zb0sKZi*pK_N}TBdD&gC z$?iZ(3faI)*GoJOk?D{{!SKFX5|t?>r^^{K{r_fGrZz%r6kw+wMHks~r8Ei_e0zwW zGp=ZJ=oKO0SnC8BlO-Ms8aJ zY>df`y#hUEqF1IiDSwdb+KNlwpS5p(=V@JTK8{V(#ZBF>rP9wA!Z?Fuw>x^tL6D1*4? zQGqea*s7;T|L1Z&!lN3xQm5A14Yv~)>*@E#-w$HJm}H=YavxipXa3(}cqrR_xAvPVtWaHd2!IlKA=bNXkwIMlapu{7k zu+SqGT7G1`mRELo(*isV!rn|*;pMFI_HdHc>8pvJ!IuMwpgFVEx`}{Rp{;E`Qz3{V zr4?cl@JLHFquHkeg2F*(*z;zIP2`L?un)h@zj|h1bL%28XPdg;qgLK@YJhX8XYvZT2L@E#0_%3M%ZVVqWGw17 zJczRKw$h$^p{yZh7AZZcKC(M>=9p6nL}z>@;z+T5Z3M=@wI6!v(i;i!eAKN77*s}; zuRft7iA*WI+y82UJ*lJEM6B;jz14%2YRg?NbGNUzS`L-j5wxMUv4d?~-__HnRA4p5 zW%$@-5wUAidEJ%}0${c5!{CY=gaNxg36An7Ar_KHp+!qCdjP#A^tZ+1I7S~Z0Jrkr zTXc6+A7QfFwjq^y0;$^-UlG|o=*;IQs-$wV&A14@zR^N%O4ra_WO(?!!+B8 zQz-MQ%}FsNCL+_RuZyaNG&xZj&TO#*7ci2RZLL9L}oU+cnTTuhO_{lia+ zFAngHmMBuhu;$8&2HkqA?Xk}caZ7TF98gIQSu;eSP0j+8;t7az4`%d-QM#qumMU4G zw*7TOq?UvW{cXpBwF;SE0B}aM+wJE4T}dhYBPdAl{u!|!U4pVq>q6eCysYScGP5Hw z%QW+wiSvBG*UyisK*54 z{oY&#q9z*Xpg#E!ZzuR~rKx&{g^hMM7sC7KCDC7-_BGnLNxVl6Q%pX=9{BZ)7-}7+ z#_3oGJmDkmo=TrquOlL2*L}lYv}Vq=)AY?GBF~kkp<<;=)(~=b>(+;Vl?8);{RmF} zGOK^~^7Jh;n`wyejBm^OK*56MR@K&uap={ZKcBW7)_e+X+pMlUfnxF7{TA z&_g=5Z5UqP0S}a90VYz!%NNe=)+UB8iRt1Q0!r;YQ4#Dv{p}lr7FCe<(BJkjykS^J zE`56{-caLJG47Jt#{%!<(S=~nh*FVzTUhA3yfC{vZrH?WJ@2L|nU8t^LqKgw41Y!! zo~VEw1v@&-k|8gu-hy{&h68USy?U0^_}uS)%DdEQTqyy(sd0aH6|L&lV|~V$ys#j| z*zrIUXT};H>2p)lc4gt-TDAvxqixShR?Cy$3n|sqlN2AoHLbC_3JPx$$*mKRWzM8Q zlolD+b<`hoDBK@A+L&1ZF^s2nsy^?lUVHNqS{7XguMh!{S;JgNyHUQ{Ph=JbkE=L! z%df8UWs@ODR7$W*^ri>_et)K{#`4;34L}9}_j7;;5DFo?{o66HW?u)(#(!%>;#3Qb z0B#K$$pmzgJPK0>b?b;CW*}YjI1|=T76O!V*YHpvCWZiHb?gp7mkeXb|9V*KgvBG2*G`} zKbTPv=)+Uok%~OtP`@VY)!g%!NMK2%FmsBmc0T&bGm8Af7*NEKyI(J}15@}TW|hFX zUAlGJL!wAkA4ywr_{gO|`t8&r9$t3@AXw^H4mkAuq~$;_DMkU0OO|fi15ec;1FL1h zT{$GVOsF92SSp_l9TyD*G54*XBD&s%OJ<8DS;(MA+xWEZ_6E9G8JruD_7mC*`y)o{ zzuBl4vif-;Khgxtmqxor#g#vHrcL*uCC?>sM7$t}ib((AX^@NX!)z$fBDo{D6T$`v zR^yHfKgwT7X~3UhW+lUp9nfUkN<5-Wk*ULf7ZK(Es_bkw)%+v6 zwzNRcai9ne)%C=fQPTyk>Xa@G6P<*na{}Cp!q@9cLVGzwho7QP^(GKiaq|4}Z0`gD zdJyZglsw~N=T`+yU-LX3(H63Yn%e%mMEg)8BsZ=w&Is9?WAT>#hK4&`1?CRJL?s=Z z4j{za|2@nT$aeoQq$Lnq`=55r|E4Soa`8b+*a=6hMg^cb_#U47vLNe@Z3fJzdZUvX zO9K&k{EsxYOwglQ^5wb=!xaA_=E>soW1+_rY9687SD64Klt+x16uUaYkzO8JH8Rv> ztMG6VGg^@^)bu$#YPs1_E$)s}LB_;T`xutmrIBF|sHcVEaUi~ODkcxVwTy)PN`+13pf@wp_FID5yIpn_3o?{Fpq;th#G_g z5w+bFCSE`UKW_A~kjm-byqdl`1IM%ES=QB*ridu3?=QctW*HT7I&RobqUv2Eb0-@j zd;GR-ONo|V5`$XJhYCYScI_PTUmhfi-MUkQk7j-~(8_ENuk?l$q~`laTWz0KpRxj%9D=lP@pG9|Pjim< zvTxIlrMK|$ajoPfOSBW^@o%C4grZnO5a5X;4{aYVyRtwkMzgRua$bPVip`%tm9(BI zGe`#ohpJ>c|%sWV? zTfrn*#U4s5TDwaqr=l3SxMzK8rVpMyyM#Ym`5vAya5nfBP&TT>d0q`sA8~)W$jx#W zt*W}d)Qo_v34<*sMOWc@dOMTA{fu*h$>hN!~M5 zl$?zxAC>@CoAj#Lr0C+d+ zuE1}n+%Q3K9eMb(W+{vKP%*D?_oOUb8`P$xgMh20zb9TbH7;wc9gHZ*j=a<-`OjN5 z;k1345>kPf38#O3=F^y-@AS9K(?<|}0SNz(GMHzNwauG=*-J6u+GrCX$I1OP1Yld~ z+FbA0JfE2+PR=EZ`f|KK{X`bsMmcRwz6&jCnofNv56^G@(atme-6GkIpnY8eY7NZ= z@G}rQ&^Kh!$);_csmI2>fl}mqD-%+Xl8a?7CJy*4qfQ}hn`Lj$IorhuNSuV37^7ufv8!I zoGe2&bl-Id%3xf_*=mc3o2Fo~KjL-A=NVUJXr?CLaf^Ck$|*934e% zb^2*E=$;(e-S8@K`u-Y@yz60Fz|d-KI+J*%oQ@0I8YRXX))w# zt?bB*bRzCwfAO+L_Q!D;(%ie&Rvz>WG%Nep)kl74%%06Nk`hbScif255m1ib?=5}C zM@2b>7hBT-+2ttKq|lraJ?Sj?HCQMD$b=r@0gN0>#T^3cXf9@Kj(}p<)5nDc1`PM7 z&M)Ult1#89-8MTL9N6CRN9ZD8$FA~N&pmibU z`oo*aq+QP9OrO4^`H<0CtVG}peLe3s3kNMQsccI`X1VT?)H++|JtZ7%0slZNdCU1g zK|*2-zDgBj%9vY=Uqqvk2C_cBS#2ttgP|vIb#6ezhzS-cKU#pV0|>G>lz_ozg5B&) z;D;T=j}Ckp*FK}k)4yv!Y?E+$Qy&rwK1m`gl<}gYyL3jG?YHhwI!y(F+ruN5E^-#C zeE?~HPLYn;&UI_GvOwlY)O7B(E`WOWI@#?@d3c$rD3hWt_z_^<|L)Zc0%s53aJ<2F zLh0GP!MET zYKapc9zAS;vqNVxh&6FUb8s!y>S(ANwYi@uRIa3+|G9#lxs&U7;v=<61)dw-_V~l&jfD6hD7T!x zfJm4mVXx`{0zm!0rmoiyZ>6u;-93$%Cf7xD()k05Qb*#$0?gM2hVfCVD=Gb)?F7e? z*VCmTr_Og4Mb~c&8hg;(^c<@UKUv97#3!U!2N~YTRXn4UXzjl0}N<+q(oadw@ zU37(qA zXTv;)nwL74ucEvaL5=Q`+mfsn>-K3@mCnLH?09VLry>m(H?uYV*&RnRvj_a-IH8r`39#1xv_{<;Z}#dVUy4K}Ove=8rO zH_Hh=s$u^UHuke06CU30umKEVgz#xNA8dv4{F9Z+ZHJLF?67==97lnL3_cMUO1%iL zG*X7PoKMQg>ziE6LSP%>B0DAJsDuO!s3pJP5&-UBhTZ@T*@N7C<1OVq?L4B!0Lx zxaW-netwNSZ3o(eD%>P;baL79cTIo~b%{DHvm-XCk8#(=CLQ6J&d-RDEJ@6FYkG$) z18YMZ7)KMKFva`T__EAt#+i-*YN`J*<53oeT*+TTFQxLLXhHrnOIuELZheHU!h z$K->Krr(dw`ABrQXUq8vz57+2bX$B5C&RIQv>7{*KFawDcOq{m@iINUb#3T?Cl;WQ z@ylhtHLE5g*wV%Uj*0wsT>sgh;18HZ)`|X6D!wKYRUeGl*b*hMLQfh&o2VVilQyWEfYLBIf=~+!^`N;x9;%+MBEhdFaT>omeYY*8ewj*_wEc$SkUZ z$W?g{8o-zvYp4lQniQnEsD48h8@HaO@)Cr)>(@@LPF0`I7_zX2B&d2RZ9T%~D>4J* zA#P+D`>?KATY+OcUGpLsEa!wsE0#GwOtI!1UmpfcS}>9J`p~ntecC07{9njIW&`E8 zW1UgJR;AoXg>T)Ygg5sh?;m;kEpHQc5}bJKBxW3% zKDY^$O=kbBvLcEJU}G83A`f7>`}qtIU>yZ2hqiob)`>q0*|Gctvl>siqtl3v$xB|M;2-OHFEA1Gq#@Qj ztgcKj`b5|Z%2uu?#dzNR%(D^Yp&0?-i%29`Ny3ix3IwvKlRlBacq0qKB(Hn=>QvsD zM|{wGR)D=@XzR-)f0#PCgtK~+x|Pt@F5k^e;W22%O_<6)z!C8r=QWk2C+M2)U&1_G zJ_3oJ7G{pg6)~wUwEb0oqsFJkwESP{GUFN;OCW0cqPTf5 z-i@$YFUN=AbH;+D5=*?bQ_T15S?0YQYoyu}d%{8f$euzC7eQ>d zg(sG5_4*n%(H~RH1xFZB9FpVY9WYj8aCw;>xz)`;gjZR2}$o$MOvZ2!rG*Lu9$Y$)o?hu2ag=~7!iEBXFbV^6RGuM2B zl6^+oES?OoGi>lFYrtvru4wm1un>;69gv1Ul`|&C?K%ccFyOd8pe2D3U~{c=YTiG9 z;|kf)1_tmafZ=%x7MRSS!A@0sjrM99nu!Gq734G_l#<^w_S2+zW|N)=>4x_d#cO(C zpSlyCO}TgS`uCs9O@+(O$=AdKC=M(hul%Cu)I3L~2Tjqr_B-mMY>a=F(ZEU(1<Bzpw(}d^`GUD=x!W?VtuWz=-&V#}^IPKbf8Y|Z%a;_4o*MD_PNQd9GIK0`G z(h*gT=JB}9s}FztatI2x)a6gpGm>y*W;=!FMtahVCzR=Wvb?Y*&R(T$AUhf&e>5{; z4&tz_8B}4@XgI_9#N5joa`QU|;S5CJlX+S5JpZtC)IzET-RwnR5-9^9nG}U|FPDvB zoSW>o>GJU6ETswlSl(qx8AY-jb1TU;m^n{a&THq^qRvz!;B7 zX!o94capd)-y2JPo5ave-E#wmZ!NY{TqNJP8$j@Lp>*e+tt=Ts~Zp^@S)4b(fUlw*sf`q&TSR%cqW zFQLw@T9SaPm)3=ei{LodWQ-z-a9@C)O?mh)%%3Y&U&0z{l2e)g+_RV_&b!9D@K7uo-b9N9SB!i`;sycJK zJx%$Y5+Dbab+e^S699<#&lVefZhju)3qp%4g*4F&2}LB17*_%_gn20m*WA2r$Wlc4 z8Hx~}Fo6az4W4a4TjYEJNQG5A2$x^eltIYFE*)c_u5n1e?9F|mv0OwPdxMbpyWwE_ zFALfAj^-nm(!}+^3I4~9dQiw!UqGctI8j}7Q~}F0zax+?gPY z?CqZm^U@{PPv_vo8#AEEjVWFE^0cF27lqx0p5!{9SQ-vMA%tV{^4%lGS1f1O10Z4i zOc6KBJk$NoOT5RY=yEd3;(maGXhdUytSE+I4UEd$yPz!=5a4W$d%YEFmY6GWl=mi@ zwV9MtGv?l@o>vgLn&HUO01i(}5T;<4lCVW67yBp30jz@_j!$yLYsUw~9Xc#vbdg^cCI0lXfkqIBzSyi%v|3cPG|MBRw^~aS^AZ*~54O zShH&5vL(+?3C!EUsM{yTT_k_ukqQH{z*?v7dP}ro@Y{PdAi&@~ezTCasKa?>Bn&D_ zYsjV<*++g+@=iZ9ah@;}!f5;XDtC^{C`v?8%n@`_vymj+Y{g((_J0^Ytwu#z+WufC zK%o2ohGZ5B%<$V1ZrmF+0Fe&?O-RP?8@R8`YlQ#cAs%cd(7^^3WKqTx?mth|8hx}d zlb7QYw5WC8O5U8YzJWvtJ0T~6Cq4Dt=q*@!VHX>kYwhUvL(;`XxBity1W&5jp%N&3 z`oqJb>>a1&8i88#YxR_<1LppjE)#B7S>R z2txpRv66kW2Yhg-bZI<0KQ0isK^nmIs%rR>tj!}u%P-n@MiTyT{^pA3ztSnXIt3-^ z4!AnD_*5|^cjPz>+AFq-1F7^GR39})Hg)SQn*WQ|DOMiP3TO*sF^c9R!>G%er%*&d zgsJaVhhq%UER3?6iFXkMlD+?q>*Id2!iitHle7C90c_(?Yq&H;D;2OmO+#XHkmT-l zy#m|0Be!}8;a-S27e^x#7ewjIBH%j>EaS(DNQjat^|c$<@Pm5}6HS?kwzb^wz{{Kc zG0~iH!As%x5XF2WFPUCwaROl143())O{G@N*hp?(l|t8t>*>B7gc*EjHtV3>n97Ua z@TjFefW|G~czxr$<7%uG&Z%03!Tdv61X{;eVQ^?mu>)<0uo3L#zNg4c9He-C@X(~q zN&gK{TQp#2HEycn#h*PdBo3yPp!f5nmr0TGOgg+q%(2(O#$WjOSKC%g1_n`oI|9%p z|3TciT^!~w<{+LL*KAD0w8X$$#k-eWkfAvKJem`>lsBmg6@y>!7G0Cf0T$vnCGZ@ zIyypDN-DnOOjD=-8&^5Jsbrd4IZ%0sx799eCzSSWD4^_haC6?i8)X~ehyHVNy|(U( zO0GIF+$uu^!|)Rlqe^=HvxRFmAwW$jg=i(s;%J25JtDP6x{~RTSaVH{1RffkZu>S| zOJ#XPtjS_>1g)>kb7W*kUc>co$BOxe4@U$4ousU-e3v)Ks2mM!1%y zMP62X&6`-2(|8~PaB%$6Z&3$`K_M(0vI9@5Am$IM3Cj*m<4tE`B27?bk#=QgvTK!D zX(dLjPly+zt6S%k%WTpH4(>J#zas=0J0+V%X*J6DkVC9HpIt!f`a9lcm7LWRUL)HHS^oLtfjd3-H zmcuxfb{CtDt(&7TrnX7=a7NKa4P(wm24IAuk)#v_TB26kA0=b9`KpuK%uKjFaaal=yH9t-J=mzn;;DC^fsd1{cQ+N^vqw$4G2!j~! zV&9LVm!igJYh5|E5J5Y|T>NzzUSYGDkfj_S)(;-<5RjYDw!_jS(l_e7gZ5Pw*wyWE z_`o2%eEhkj20bH;96LxA)I@2NSw%bvAyO>bsyldLGJOdxB zTnN9HiCWXt$DTtbOEop-hIV=^VZx4XzM0vD-qYYGuD3uGt)9m5D z1@PFR4$zPox*lb?&afW_#m>yJqc9!Wix3_R`!g3Z5M>W!+%`q(vEED$HBt)ghSPjw zmqh7_M`U!YB>*zHcrg=O1(cmV3FQp-gU2ijwSTAb#C6{J?Dh}&=qiH~1F|jiplVt# zU22S3K8l9DbGjbKX#etZ=X>?B{~&i@M#r9|Wej-Q)U27MeyWTf6_WxC1c|kOm{6Cv zDxhrMcYKyRE+`(f(pIQxeuj*CqHIH}_|V)_>@JrI7yE(DYDK{ewgxZ^o7ZQWF!Y+% z_Pbq2`2fwWLzFAF%uQz#kZeH0Tq&AmQbWjH)KQB~*vvlrOprQgB=$`eE<-DnKrd0@ zA?1~h>X$18A%__(J_=b)(K4)HS7fZJ6~FZpmM(YSKR(ww75{4v71QD*W{<>ZBqwaMh^rhgAbvH~Wpv0^hLy(M>80w}pFW z?+of(CR_UV>Fcuh23yx>@#t?Qb^-u$>uDkE*pK*TsaNw}uuO|!DQ6&sSpTo^9}&F6?VYkfeTVX4t5}+zZf-?~_#C&B-f$x9 zsnjg-K*g4Xc_}(nzYFRIiEKtb!X74Wa51@LkB$x)64uYrk_>JLM8-|aYfYt@O&=Hp zSvX+U*B}^p73Vu2q%=vIYoI~cI9{q6&HgbxDQJ&F4V8Z5+&ECfM$Q6WWf0>r;=ceC z;+&g5?D3+_-t6y1FZ6UzvU_9!U?rzW+GrnW@e2q$4BMZtb>E(=QePLOH?(rs%palQ zsofh?y}9Z5(*a4LXlI>BgFLfLAJrms2PtZG$6D~7?L_+${N@q_$wAFLoX6FCe+Iz9 z9MV2_->CaypP8x|Pi)pBbxb{=YuY|JL@u3HWIP`v;_4u{>v)VfmB#96>B0-b@D$h^ zEzMqOe(T6w?57T%z(6({g;sS&D*sGU302}&Vb?W~51Qc<3G_4M)a&uVEH85)WlztE z>alGGODHwm7sC8tY}^zksqUW=yAhl3>Dzxz`Nt#=ov4t1v@ummVyxdN=3Nk78~d(T zZDBv*FP0q!wkJJT3DI>S7K9|IqQB6<^VkURAiQ1T=$`j^Ky%d6y6!?qD3BD#rIP1# z=aok`=U!L-qV%6gEke!JNUdzi+&7MrA3mIhUcyt#cDQH>jk<(C0G++`nCP zVRpW_f+#ZkL@h$(Q z4oB99)<*h-2B}^tdv0P60Cf9dpc3VybejIH95{j0ePe+LDwiow4IFQirE2=@TFbEO zsK>jX*|!wKUiCpT)k+{{zE?*PxULcb<~IL{QLV9-t{TE3dzivR;z*NrV($0Q*6j9Z z?%FOKOxAIx+%hdFma`(H6(6WyF2`)_z@nbIRDWWr8$q?l%|J4+*!jy`%Ny}lwp3milW;w(rEkI$4yG4wq6Kiwj0{9}wV6a0r zw2AG=S&9wc>`W1Eo}s+z3hFumPCrfbvlz3T_sRx1{uQY_>+q^1c;96QNhYzGS_B3% z&WbgG@Y&-m-TdZRVo8dTI5(%uzIC{SeMA6+quX4B)@rT)q#vAXLmM@9x$z}B68S1h2z%k=f>wkAiU=tS_Gam zTF35fQp$J+n?V<>TXYU4`+9mfbjBuNpGvecPJOo)X-@T~40HLrka;c9YR9Nkbw5k$ z0ASI^?YUoywgR#pakOxtJ2gE6K}NmeUwycK%k#-MwONy+z3(~=XgD=!F_ZK0A(NYa zc%2ytPZE`(iw~_8jL-w2aToM^i4sZ%8H{K4j3a3?{1GIS?O4qrq?g0}H`^vc@Fqkb zUq3FNGotHaG-{j<2jA9;;$1Hp7EaiDHl7c{LBybs(48g>5rY61aJ?d&{OUrgAL^|d zNrt+?3J+h3oNZZ*ExW^Dl>YC;E+`h8*wm-%hHDiBr@uS)a&sVmHdMKGp3B&Z1_8(0IrLN%u#GAkENJ*F)btIpI6(kh4@+m1Ff zPv{t)^>(JG6Zj59UrE$e$dzb2dNZoaPyNku*AxA9`{40?14NjL6`1Q55CEJNnvOxS z_uk<${tEMvr?O;s5()RB!0nv>&>w4Ung>)aR(usz zi289&jL%3#GFlo7@q;e7zpymU-zU*CnGffW=cR2C3mVeaIocM_0x4!XMh}I*<{O# zVKacuy%$YP22&VN&kmO>~p?X=2r5P72}8!3)>a>ZZ2!^|fS!A$q@BRMTNPk0(0 z>!g5F9~7$%Yt}#_1Q0NWnY*0`-1Id40m4gVP9JTBp9JGHL&*=m?Szu|NHkQA(u7}% zJQkoupGO%I4Of;)(mCkHFh*~w9yRB+q*a;SQ1`9NMuCfA^}xFbaAy?Tm*9-DOS%m|hRBW^KQTw-mj#r4V#oDM&VF9GOW;jspCsDsIXAjq32)`A zOZKju$wR^>C!j%6x=2XSDH?xp<$+fi6Vl$|XXiee?rO#k8aV62=6Rq>(Ftdb?im}* z;aLK-3Xd9kna|Hp!N|%rsr(~Qx5WB`-^yA7Ky4s2Ke;1=qBa{fHu=M%A5Ic(xFMu} zLWi;+)zl1R{SM5RIOL{sx6*XnZO{gnHp|Ra2rU%l6)lO4{_KtV;!ecr2Q2CBz*D8jEgm@0 zGnsQJC{SqdA?r2#QYCI5kZ%8w)^e_hGGv;~r9M#~?p?qvwxepbD7PYpheG@`i4Eh| z$&71a+DZHQ>pXf6=3YmZ`jtZqsa4v@88n@{OLrW>L#U3^9gM1s=Q1hG@@hAR?5f2a z%s9SD^^0G@c7C_1=+m$q=#-crFy}P&M(>G{uW-UY^zJP1vhrFN!N(Cxk28#tc2W%( zIkjGshZSDmxrX~&4OeK|H#{HrV1f5lRa)Fam{s?f^zH#FeaE@_CO%B9mc^aVsMYv+ z1vgkE;wj|2k0M>MFcPs)$bV4^eJiN8?ZlsRj1R{SK>*s5)v0trl`s>=i_ss}1Ud77 z(o9&TDIa1Tz1vOHqJT~Gr262w)_r;G*0hJloTxt}V|yOQTj#=b4JjOBbGsZ(j20t9 ziU2~Maa*kpu|9d)k_8W2-t`QE1ucI-8yVu!Et>GKG@ujMt(*JyN zM(~3hMfI)*rV%NQIcV}O6|NVvuPpe9b{!HL8%~f zGv^-kIZ-X6mxzpmTObT|nS|lj2Pl4=pzS*lM*n71Z!CYlXy#U#9-pum+|b2>Pt-)| zR?a8tFNLM=)MeVC1UNz_5NMn(-FE*6Hz0L4UR)@{%A5cfCKCksld#d{RGBrnD;!L3 zr3Npsx5(Q-qK6N3tP3drJdxRHH-LhW0T?wfmcigc&UlxPPjm37z?&;YH|J87ep|AA ze22@+LRN^jz?%*H!8UkNv9tJ){>2ZBqIHjyQN}!E1*`oUiE?)sk;`g{x`vf??rP3w zOw@*rwxO6HMSSA>BN+FMsV3!|HjX%0Tz!SOYCt&S$}v@O??)};Im+G&5|5oK#2RLA z!kKD@;hPcejh`@dFb1K^$SFC218(*-%pdcPVnz}sj}~8K!#>Um4$WVymM`( z$o;(d9AC1$L8=OOB%HxKuG`YmBEK?g%6F?mjMUd*jycD&ZHj?*bz$l|w)xw2&8NZ}X2I2Cc3gkuuwmciZu&LUY!GDgk`NV8xTRxhar_wzsMSQD^aI;g7 z-=JmGiYMC25ooT;p)wPky7MGhbAr!zcIj(zke5>5V~G-^2AnDAWQiIU&PZ8Up>5}6 zm%L?bi9-kcBD#!RjTG`N%AL8UC~Lk-!N6Q$PRD$q-=@ZZDL8GPw=@J3`1QYf3!wVk zwf}3rW7W`jn&jjJ2^MsaVW9C!J%2xg)1LcgU&}Zx)Y~37v+#UCd$HvHM;d-XQRffW z%7Kvs_@9VT@D>6OUaU4(~<||PE5X89Bl6pk=)r~ zj&}KlsqNzBMo*)_oj7@R$BW_d=#K!?Iv#Vzjv0AntvzrMpBkm=E>5>FiLc8@&^i9L z4=@v$V;Ai14xcGHNe;su_>@wK2H+cL>&HZ&LZpe6khHpQYaoRZdfq&oXsxz=Noac> zn#pE~i(g7lK=-L9DvY6{-883<*~tRTrsoGDODn{;@Rgs0Ua{mwGhvnY*Ipn47R!@9 zP&XhfX~KfUtBM2v71TSj?g4}B_*yBI@{@|Ig+(U;SnM}hap-|5w%+OdnfsCdU(g{^ z_C_a0UF%aPs`)L(<~dIvcGb|~9nA7x;--eL&a-ymJ+rE^!Z+gI25)xa;0ZAqPly_q zVh>kI5K60K$!mW{+B|VA;I^n=J~I`k!*LcNg7+x-NveaR89|QM9{Bv^9f~xH>no*= zJOIoa(>4S+9jpJ6aTt6^JBA54u~Jk3gH?LOqB7Bgi!{V{JDbLRfp#Wy)SDqrh1m zDZ@(lsJRMs^dR&QOFq5`Rd;AB@A5T1=xu+VNr-OYBspMxh8RUFI(1AwN(%E%UBaPN z&i5&2J%YBieh4Hnv`W*KDJj<7|2-^f^MCsx2~F{an1??9jkwjH2oH_pzR zZt7flN^K#cvR<3-I!o-DlfoNIii2%?Jq$@9T{rxo&7*V|;(95X^FKxff z#C0%@mfju%?vE z#7U=kz=W+XIlcKF8S09t_o!#i`bps~H6tjZF(?kgH!zrnsR%yzhgy9_T!s;3<%I0n zK#U=&GX9v9TPg&RTFopDYS`9G1;|utC{GPOCYRuT_rA?C}uj00*%`1 zjgp_g4{*WkuSJSU=Y1dV+{$uIU}IrcgA=fzY&lx7?Y^rY1CH^lP}avXXy3re==7>W zfoJBIG-ch~Slq|y&Xruu_s`Zx!%U)RcA{$ayE8g*dgMfw4~xVk+WIP8uh5#ARaw4N zvHm7lC_8JbBKoLvp`W}v600Yn%sNKsO2wGA($yLO`){heu?N&LQjDSz% zo?pRu@;vxmRjZUd!>VImjtFexZ#o_lZaOP3k089ip7caV-&KwlzR?-kxaR>doa~Al z>tIQvm`U?*^G2~dgd)5*=GyaAvD%-_xwu>Cav!lE_$`&S4pj$bKV6}R=M?DeQxDVN z*%T6K=9**?`gC&8f_b|dfoZCrQQV!}52dqzAD_Ko^6ItynkM#IF*8S0XX`(&g^sY< z5V4mGvtIpfAS}=y`*CUFfJl^b(-VT7ObQowd0uth{88IY?Z=T);*8pza7PFx1Vv$M zVu-Ox3Og3HVCq#)3~H7S+0#=(nRgjn|R{Dvuua#~8O1Q{eN zQ|GD>s5H`aFpjDE$$0+#Z=>^S6^B9Rp`oY{THbo>%%83FxwL<$ah_%L_+gZ3YU_+J zom(n`A=AD=5XET|GvTgWqig9VJ?IMLoGqs4t^)_XhlcjJo}&to#~7t#fb^y}n0Um% z$DlB;X2b8oa*haER+Z6cM^TaDC?iBKs zd_%K%7u=qxA8$H?$fMNmABF>XoKr8e+0_>UFSEl8*YYd>_?jHW5~(@!CH ztkOV3+^aR(Nn0PfN^4bqEOD$9SB>HouTk?MTg+!2D_<~*aD^reEv)$` ztE4U+{<@dWp;M0`ocxlv$7zVq-VqC^b$xucq#8MHS~#jh_5#0#%<74^6hBF3)Bi^z z21_r85Co8d@Kp6~O&0r8L#K4uh!mZ6y(SOY_RiON6o^wZ+Payp-$&Ab(qCAXeU|)e z{dv#LBNNs~crYM?&-_g?_iSmaF;26OM=MQ~c$_x%;SyJYw#iV}E)FRVQ+B*0#aeIK zDr;oFPWW{ooUWdqora88@gy=zSyX<7QRNTs>bQA_m0DOQHO-sm-jratGE%-`NuVfJ z3-`Kk5o)Ci6QyIEwgn$#s`V90pni}9h)E5nVAJCIU244dMjT6vlXMf>ilDbhoGVu$es@kC%6<1SQ<{Gl=H<=T2V0W}V4+7+E*}-Q53_zvOVedD; z8Ax;B?ER_SFv9@WC;TDlSA#}phyH)xDNuEwcwerywv)rf21E+JG5oCc3}ps|fa@Eu z71$5InYZ8eyZuQeO+*(P+1myoHD60qN4W;nsz0+qBz;0s=I=g|kj3r4^kmT(ItHAu zn47t!u$>_p2(kCT#i@s2D;J?+X3Czq{{#~&M^UbzM^#rW+gU? zaR>lCxkL*HL;+2}tJN|QZ(N!DIL&LocAApReH@SRig(YktgA>X(2!2b*enm^sQV#k z9o6?v1&Q+j??(*<4j5qvNzJm1y9(_Rgclbh<%yPE9G4ZJJ~<>-CjCKeG*ixXat~NP z%Vb!sT@F7(h~l!2v`0C0MIA88Y=z(ix(*Kf;)yH>mPIUup}_Uog}yeAh*-yP8&2h0$qi1) zqc(ePKPLW_r)Bhclxd`BjM;`Q6`o$3ADj!@j2v5)7Rq670@+*ef-ZsE(wG-wXal2K z4-%QYz-OAZ?XU3fcR-67GN&F#aoqS9C%c8L5c0?@^SYoF4=4);_2(@L*QuH=_$=N@ zz>o4P76l521zfUR6jvxP7DOq=j6{t+<4ORj$_)fm6UkB{G0aA}y~xRHW%teb&9+F< z7CYE)l(s=OJDWh)+_CfFSX|r^L{SC%fgFY)?d;&B0;IXhN&w2@YtnQt(r!?~yZ*Kbku7|zY; z2R3VjNwd3=xlK0pMft6vjy>jQumJm9lpyU0urd_n{29Nd4})&lFV~~J+NN$^qcg%$ zRc5X@T%+1GhE#W7fdAzi04t#TZFFRv2uR>X(MUZ2Gn@O6qxc#+9__rOx}TD}8Drfa z|E54?C106=gtzR%%$Px@oe=$KL-e{mb?Q}`12p?eU-(^r}V4#s}kstCzb&zS=OMUsadQcBLS7oNm*59>E9 z<3&8rWs`>1NOhd>VF0GK>Okq-oZ?AGf7m-L92z&UPv#mysJI2zMkh)6APA0-+%0aD z1f3S>**w)rewp3z)%lehJ;$B#JA@yG8I9Ub=|(Zj$3`=Ojb9utf+)WyaRet#lgI`( z&H}0>Pr|WRf?X?FF7hl03ETTMWA+6t3^N|U@Gnj%r6Yov1OZ~X%blorwiW~Bk(6w~_<~Wxc*vM} z6+PSUTZY8%&XpH-OSYO}=Ljoq&D1PW&IiS@MSdB!mTRaDCE#ku&E4&U`!M-~7gpgx zO}yfIqmhQj&1TyA$l;vMkBa8s&9TLtNznKNK7Of%{TB8m69nN zAgAX57HbTooU(6y2;hV~!t||m!8NuR357qfF%jBGv-Rwl82_HAcC^h9NZxtXE2G_$ zri{WMp_}-tqGvy3wt7~&*O`+3=bv5ck@fND^t|ykC?uvPaMA?rw`B~igYvHTrvITk z1HC4OIipP1RE@q7(Cbj_TI(Jkw0_l#F$L;xuWPnjMy!riNqIdNtQ-7XboYXuH6)OF zq6`{OHoH40=*1B;(p@jIa)$t3v#@tIOz_d8k|8N_O^h?ycuIt0JOE^~C^_)Qh|D(Q zJ*#V%U+E7bUEknn$bEL(3$t7!akApJeftDHA(tqSdfGw7?kCbN5ZUp z61?ls3kdLxqL+r6igh_DfsW)(@-^B4ith#TyJo>!i)<0vw4A_(HaB1ppgE$Q{$)PR{#^AY+;8Mmn7@BdYg6QFZORNBa7CPCh1 z9cr$y*W6;LR0)j3)QcH-y$sjFGc9&)so}7Rop>h;WhHvxRc?s2j3LokTp~gp(~cHq zfKz{_9q;<^l_pLc?IO2duOB)Pwhw4mE2syu zmh?*HrfGDxoG?bJAICsl>H9XR^)xAn=?0_UJUx&D6$1x+;{YW(0tL4Sr7o{s<{a1 zI6DZ97T|IZGGf#=P^MVEqX`^d0#Jb@;*a200I+6bqw{Z>b`)OtqG)|>y^=JhAMBTC z2ZDv0cOs_x);XD>TV^Qj#TH@RE(xSzQeV34F!(x*I6Y3Gw>oSQINmo4_vZfRtzw!q zcg~M)4&(**?tuo4R2!}n0Qm-8R$hug1C5d4P#H_*m91^hO9ABhqrz~q(Q>1p*V#1= z7l!NEYKPjJ`SGu3dCVQ^xl6W~KcutwmW(>D4O14d>!?&TpFAu6Ajpz@@p3d}FX^E- zKK?kW&y?_rj-(rT??I*SW50eA9>(BWnu`mePj~TH2eoRG%uzKACHRI1evIe3Trqfq zwF6Mkc+%GO!m@?dP$ASgv2eJF!IA}pNHYBZwH#7`&w&VYq;tItb;v2kV_?F2yuJsW z3Bz@LVj^zTa7qA!jm@~s>QQA=H;fcPPAw>&6DaNY%NcnIRUEATp(Uath^H^=4VyV_ zH(Ie$bT7mg^J=hSx0c$Rr3@weVU^BIeOdNx7GY4R%xFn2uQ72-lyyi1V z3en_$S(oPx*Xg6hKtNY5vvU3Z-0M^dv8H937SqL*VX#7Mf#s3-VckUySU*R=D>>G9 z&KGG`IqNSx{{NeR55n=_?U5K%YUlCERYU1td{Hx{@v}`&GUroY?yr*v6cYLBO8TDt ziq3LXXB46?q3(nr`R9J8jdzQ{w&E9BL@sfBI(5a74vBq{J7mcteQNcaJA2MUGGmY< z&l^4$_Ntj(nHLkerjI|PL)9g!#BbV0NL^6n*Xh&-8h@#A`W7Fpw=b4LRPei9H!zkL zDfVAG+1X}nC+1^Q(JiqM<%uX*s$Ln%K{$8N7=z`_PnhUw!<%e)a!K=->!QDWv%se?t?yXd&Ba7L{GZtH_l6bmsU%g@2sP#IKMpcytPxxxggaulz70ejH-l$FfDv9V5rr{K7h=vEKurzEeiA?|c+{>;s?2)i ze+f&D+_!3*)m~xU)yd7md~p+o%d7MvI}70I@vub@po=!TL)eLKL{JMa22me!vePd4 ztKE%DtFKrko6qI5O*lME=mpFp%eM1~nk}C6B;FgTn2<2CH^zK(f&OPpx1qiJ3W4G= zc*JxAA{`%KWF6M_0I3=blM8wZ4;OyX)zm zUY<31$-QYT%T_0@uBCCclgwsse)QkM-$#SEXsiZSM)}yHC$-{?_$iu;H`7JGAl2s6 z%jUKkB*lnPNsFZQ>kej44_79rxFPiZcU=0Qc?kNU_xTK0MSMA>fi6TJvPqt7W|e| z@QZM%!}}SW#z|<^p<?X;_mUiEd^4O?9)T9Cd!Bcfj2S~bl z|JP?Kr6BWngR_*Y&?6s1TMIp!WZNGgSJm`JMGXouKnbff_@D+Zt}pG;)@Q?3XiYPl zT_ZXCz~iMUDsrTY;_I5CiTzAMi;lS#94mBwsh8*!L8m9WJ=Qp6!AgsBw-PGl5nZh2Zb58=J45xKsfj?LNVIFfh`Tk2tKD+cy6#nTlq1|z`A2~S{ z=}+#3WBlg|6BqN=Xs!A?120FqhsQv98*_f(O9N^q2*Hjm<^blP3=wWA-6w5ntG0a9 z{*jIU^1Qe|mBrAJNqI**qTo&Ig~t#)QGX@4t|UzVSK|-dzXJK;)6=Xi^&24vhZ7I{ z0Hm3{D9xdjiNW>#v;e0dicM)sJP~?!o&rPAk>R4yB|!XTSe_Xuu#Us9hlt-UG#j zAGCIwH-dapWvc4a+b*6c{f7T_|8){Kado!`2jpZtAVduYwI-5?7OFYy2gY#j^3>~7R1yH=ms-s1-^V6qz*$>@;b%09GFMh>R@c_`vlduufK~d>uzqe4uW2 z2D2GANEbn6!2&$04K?xJ2|J-gi0}NwPn_8Ir4QLWhZI@RzMd&U>;;H-Gw_9uXi5M~ zfGck@+H-=$nFKZxS}muxHvX*)N)sbWlmar5^o zmS}9SCa0c5=5lPM&WmHJ2Ge(X=Z}il)Pi7(1TxOmp%_iHh9CuqB-mhsA?T=sT-6(> zY6oLb4J;$rGq_1q116Q?%FQzq(tQU2cr7zI@5wV)gdxxqM-jvULY%?C zAM_Huq>dAlw9iotO6>B4j#1f_PJMW0Ko&< zW1+6;|LsY(wx7fXF8%3K3izGRH=$^W?f#US!m{xgJ@wMR$gokT$kgnCu(go#Q6Vny z<@(KaNm#KBmN})Mg4o`de8_K#`hy-4%DPvjaEMEATLDwuTc{+9lC34ycf|+XQ+gC z@3>KYs05hEr^vn}2TifunP2t0vZ0+|W8 zy@`2c=D97$j7b#t?PuqmxpYNUZlh$p0&Vb{TqiSGv5qVCE&U-{4wyS3>s(DNl`c6h zag5Cgp8~8$RDnc}BHR7>*jcQ+&x)j4YBzG2ICx3iR&~2=c8>Z&=7A8GjPM zs`gDG5LupaLF_MXD@kv%ltfX7v$Gd<@3%vDKp4Bx-D8W)v@089nQ2xDjrI@xy5KwF$cG zSqcZ7b>)G+qka{|@TupHP-@t6oK1e7=M37bB?sV*VwKaK4w%234W5xL0z4!l(3dWH zODL?*g~d<%pg|Er(6LxDhLVpTXl3Y5nA+BEbHBlRU=P{_e``L<0 zUVbCBSom!xtK+9b*Bh8@nN0xyKLEfBl%pp9sfqls=c|{S+{P&Br4VF4se`k5OIOZ~ z`e!*u=;0aRBw~?qGQ~V>eOU;R9*RC6OC8+CrpMEDftaI#+Yi`6x}8Z!09q*r z^x{k7#m7o9s6`HZ!Zt~BtDcJavC$3b{3r;BjL6nVtWKg$f=>_-jl(&y&v||w&-$fB zFuew1DtCG-N4X^ZRu$vRIO6v~i>KygzCGxHJr$`D zPFq(30aY`PxwiMA@5wkXl~TLu%PL@8Q~w=Uwde`eF>EZp{~Kg#xO@m8X2|g^ZCMg( ze^C-UQHEhTPK5z8P;khx<|n}-?br8D4JYN^=I2><6KuNRjtviE7(n?Z=?=dZ1+zJ5 zUy8$4zZL4jq`26T*Q@%C%+?WI zO8EUkV;{`^{>)G9`4WJQX5v5GU{C0Gp&>n|gn;vhbqT#4e0`VZ$o^-gJg2yW!XwF~ zH$Jv0*l@1VF#N*w{XWcwF5(%?WLZJ*Fec68qV3JG>-mntS4D?YyLsqWud9K7SBe_6 z7h|qMiFH7XJ2TIZv(Bm0C@IAvcE%)Cc%&{D^y&1A{`H|G9ag(JdmS8kj`z=-;C8dWuoW{sg9%-~3d_P7L`Vqouiv2oixTFac;oJMisHz(@9G(Kw} zG7mDdl}9xxGQ!GsP*6Sv@}z!;H0IQ9QPRz}bTOhGDaIhs-cce6^#O`0@EhLtYSu_ z+LUAhmcB>;!jMQtWte>I12oUQ?oU^2t=HJQ4r%6T;FGp+J8>}YGb)VFXdvsCUZJ$s zS08u;uWlSCzShV0A&qJih>gt-MMeenFO!*bvuIu$iu@G-UnFiN)2l>E@fhhqnfs{S zg=yZ{(G0kN2r-%HtNA?A*N!>Wv<&6fjWuF|w3~4llRYer#4qlcww2WO_AZM z=_m816kHXfIlyG;yDPLrM+J1=mT91-y=$2Tef~H6ZD@XkK&C~N-%n%Kq{k(eV_a+s zq1Lb(ai+Q5I)0VWb#);sWnBH^1!HtqBgj$Pq>^^Y1eHUzO}?y4D9!-nlMsC-x~n-k z+|WlC=R*<&cio@cKc3Va?t5U`2Zza;n;zL)0^;m@I@LR2eR;Rzy0sO!Z7T=yI4yh~ z>pmhm@FwayHFP<(2n|o&x*-Ab;NxC)izq(hd647d+OWSgsCl@Q(5t-!6{-79 zdGK-3OpYyPm+DoW?znl2EiG`Ki6bse^+%3{U0bdy2Q;_L(niYP!*=BXZzkObUSvy2 z90-rCp2{Hdr+Az0)mL`JT6-o=Y6x~WOZuN|dorS!gf@)T+})T{`AURnMns9}L7-}j zJ+wB*=_|fH^*80lb|qc}9-W$2Ac&*z^`V(8xXRX*pvOQ^8}+b$ll1YC!mReJkhDesY_OvYE`u3V+z?jC;4K%3D|+RHl0Fr>VM#n`vf8U zv8Hi~nU05b)!a7G+U0qDAej620b7=WQXttM!_}|N=P@-*DA9>WWw`LxeM>0b`Fg>n z4b;Wl!?lZUddxm)eGM)bpc83A8kM^s~0KC z0CI0RpGJOq@4@vG;dkwj?OM!sGfb(vj!24bH9qP?%PHl3BksiCX5%X)!{f%Hqv%qJ z^ldV**3gWO7mY?MMEg|^V9wSjuY~GA0gv@9Q5vdiho3Gvl`QsSZeW;f;~s2`@fE~5 zWaBkFcVnH=_5iv}`bw>F;v&8)3beqlZFyttoPcbya_k<>wV?uscds&l1H(uXOBX6! zm6LZ)?H2Sk61&pYdc&GFDrfIbCqa-lODWqIx3}h^kI*T+kaE3ddO0@2@bePW`Q|=U zaa95iq6(`%?-oLVbx`{?W z=Q_}z=>$QGPDh1@F`bBtKHS{1H;!GX$D~S9hap5O7{$+3RXYcLAJDG3QAp9{!;vhI@WTV4OyGBp@e%&W$_hR*SdnuBEX`5?E)3mcJi%GrotQ4;y^gmR&7pA{4g(b5aa~^Mr5j zR3*?qWCv>Wy&2m$8~OSRoD=a|+v#54Zr1C9UlS;a4QWAVP|AgUYxr2GNFsWXhmfY| zB$pBSCvyOkNSHra`SMw6^lXfgR)^r}rDsz3?z2cOu#Ul-&*h9Lu1kQAz)te%G!db> z!OX?WOm3L5nA%nM?@DIO?^(L@l=ALI-zfkADGNZPxqx8FWCa95)qG$9>Sq(ihO|FT zz$U7LFyV~Ot=ZXlCMW9=t>Say;LW!;;3guEm?etIo0XG$Jg>Z4zL3t z@jA*pRXyUAJf6jl7uH2B)|g}Pcu7K&H-NM>sGR>sIiV+A6)(YV%a5sd>rEiSLT>oQ zsw)yDa!%9SiZBouFpS+`K7r^0Kf4Aqs{PRxERq&v!5B}i#eA8uQ?a_;90#qRC@N1c zy7@LmqvEDf9&N@KN9ni0CC&)k29+A8nb?G@gTOK&oA-Dy`AGbn1y!vzLXTPIgzLey zb!EGw%!_#VZ#X!K6t`ff!PUf-^d+@WD1V35e`2qzD{TK*NHOtMjtz72QR?uochFsa z15X1|nxz_NnWgzC&5s`v#cb`wc{kJwBM6hN(BYuJA%`Ef6<~-D|1s*OO+q&f%YSd| z7rj35(vA+yMmA=KF^kyh3{_neaNLyudvOkx&WFgZ>IPo#fNV%6`E%26o7+D@Yw48e zI==*F8(vsbK+t`_n#UsL$P*NsNR$;6o)CE`#EtJN z{2ql^PE{A3o)-mXv>rE?u>;55`Bm}V7QhSa1ZDcus1KMvW7(Ff7c3<}8D-~6Jrsmj z+CLo~W)IX;|JA9v-n5rvlw1<2=IEiszV7SWmTf5Yx-G)=+Vc1)jD`3{C8lR;Br{ON z)k`S9v=ax`I|Vr7vtD_;Fds1{!$3S@@lqdZw5fZH&e@_s2p9Kxsu^gfGaLr@yRU6N z9OaBZeLcQ zBkM|#XT!oolmKSXYvGAfqAbd)Y3Y$qsV}_`eL0t1LU)>wbPk{ruQg6QUp%pX)C^jr zq5L4{dHS97)=eYa&rT#@?2@;e%gul@ZpzEjQqKb^AAP4;0zCM=5!i-;j_V)S(y}E2 zlNB-F@o=w6ZU!b^{f|$Q7Cx4Jb`!@C4KNq`;wG}Yveyy;>AIrLrdR8Ix!ajZJdk)3^XXnA`Cj%G9aK(OG+10qQU? z^H|bQU&dbFFJ{zLZoQpE4vgMzK%RK%b+UgjQ# z);&bOB`wy57qG{*g<|L$r`sj+F#;x$O zq>ddA%49^>^=tG5hRES98`H32A(}r51_g9Fn=YW^|B2rfX;rX;l4j3CrxH?W>`XV}X<+Mnw{4#m1kldQAAVLN!`>1OT)t7lh+CYY@@ER%oW z-km|7Y>_4@GPD^PE#kL;)xE}XgJYi`dOm9NiIrX`o;(nPEe(9PQT~gjJWBy6jCXxU2|%hi30cuF5mJdSnL*38I-e zT1;EYO{O~A*OcH#KveamrLtq6G;Ue79`CMaL)RhGP`<<;&@4I_3!aV1qoxV;_bgB; z76tR?^9m#$2qohv!)t2fv+Qd$&@ELGK=uAp>6NW27%xBAx+F`}9kH~VDm6jCE4D|q z0LJm~WXIlvsXy$jVZl(v_!p*=_XN*f8%V*Kj;zmvo|^>m#4#X2N58 zUrJ^|Hzculd*LU-v)5Hp5eunz-#263C6EFbe;C*OUHhbg7@b?Cxs)c|{t_Q|Fi58k zuskpWPE|R0a94^IGHveh^ng=8qN*xvua9De1R8HXqHke)oOxrVQ{xv;Ira6cKX0v= z0?Ko*aEYOSeH9dcK4mu)U8JEoz3WTVS;gUxo1dz~KNsEl0%tz%1B$QKRrTF=`G;7f zTiJ2*6QI#ogNGR47`@NN0+u~X8SgHKC8&(OK2^>QlFvLb5-Pz{qZV~nA?5iR@i*{Q zHVUzHr&@wU8ffry*VRASrs(sdpsa;@R8BAv!FFDqaKtJ+boWO>xfc##y>mkdF zv$UYU`&G5$wX;h^3tOr5WS`9nv3?#==}t&ziLi(!CbS6ZDh9ccrVIl&tf-S4td(+l z3g(8lH?Fd$$O-Z{fFXJdBGxSyTOiFjccft!6*vF9G?+;GxvR?DN7uc0*9f@`S~934 z#C{s++O!eEx}f@n9?I6$NjMt%W>`$@id_PJ^0|c56Jba92%_#1FT-2H_fir|P_`zo zT2*;WRTzDURgTNE4H!v~V>m?xZ0@(^bfV!d$_-4NvDx0n+Eni5s!3$RR&DPAn2#dUxzHOLX>Tc{d zCk5<`>3-e=_F7xPm`xf&UH;2zW~I!(rY5FfA)haPGO0aFEY`b#+F>YmI=<4}DP9`l zkE0jve*3||0yX09iou5YtFu@!DZ?NEzv64|{uG2>Is2WlG4kEbp&d%CFIM{N@%_8r z(JoX1Y`P)fIHL~SM=wAnnT_gGeL_Cpm4AmD7L`*xjBVoY@GWGsC`ja%p&dOlS*WUF z`c^P4&g{4cmiKtEDMxNvcm>RA9z;xHIj+;bP!R%UOZMq7fcS#q1Aa8&Yv!&w%248keb z4}Rck;GCmgabeyX5`jjLS6BCv=-IrmHpX#;ajA4 zs6eTNNm6jFjeg)29^xM5t-qLmL!4e8h1q3OK~4H2TMsWV(F|F{?5GrSDBHKg2o<4x zYt;2dh69lRD{Xd>Bfk0;>^pE3(U@44^0bbc4e_PSG!W`~ZeWA|&^u}l1L7d`qsFMy zVDu+^av2zB$LqSvpovwO%~s|@Nh#|B>>H+&ifHT>hNbSjYIwtc%m$57j7mMWcji2B z8r~#s{aBorPN_vUmU`nbw61^6{W&ESAR21^;$1w?cE6yR=@qrtcc;?7BLAj^jwsCo zdnt1$XEk$x{@HVPQXlu91c_dICZ-QEm|`I%lGiFyxoW=VF1k{IJ14qBL7>ZWQm}P_ z{mUH{4)ukes>gdbGRd;=s?B3ufZr$!FXcg&a1103n0$KG>hg{is<(x2%h*hE8n?{O$aLLp3y1_89kf~cn?|x{;_h(%Y>jPK0%>08A@4AK}>rS z0M`9)?JkdJJ|6%!bTQ_1ep0uCD{Cfo>alx}_hKHe$z)^9Po7W=yr!R{s7v<}qs|B0 ztkEuEd!56Cj{6{NLX!Xv_Z>zy$|5jgPrdkH8O<4m^t_tC-wsje8%oi zn$S?=O1btfZ#?yD`7*RrERR$WY|36p+B8#>-nmpII$l4T*%yI>`*Nnp_d9t`V7>ur7q;3aCzpn3*idHE%F z7IId>@jhyX;YWi;Praj@Z^eDe-Xv|Z!% zHH)FTLv}W%E^g4ip&zTMr9anNOorc70~3nCYEM5L)o;i_Hil*Ox@0!nmlvx*u3BVub!C@+4>F>Pk4^3pM)PY}`{fATPMOHQrJP*K-wMzYCdeNFTd= zYmq4~V~$Bw%0o7r>W9MW>Mrs@JAW)|8)wLbHQ^n}42cezasw^QHT7_?cIf!v^eKoH43gBHLUyFHz6GQ1t2gm68!&dbkr2>oY4;bkZ|3$cZdi6aRa zFL(jczfcIPlOv~Z6bB>+`5V)Em1a4=lc3KGH<47sp2|@C#jF zuun9SeJWjEY{4U4bp}kQt&47KD~qQk;32>j29KEucvRG+pqx@NH+$knl1!xXbU(pE`Fk<%6wroV znfrBz3{PMfKdFv6{I#dWeu5<;72=6qfM@|6U^CXA!DW&5a;6>GO}64RWVRAr^py{1 zb^y6L2nwfrmGru{9tmZ!sy9pv-Betve+6B))_JGZX)coB=T7tQ=4Nqze2ma9;a)t^ z(pM2R%9J4}knmPbt*moWxcHS$%~*4g6|;v~v1ECs4M_Tavz95Ib-N zPd3lW`6bd->pvB;gcB;$ie=K0{2tlZlOh9@a==30W=edp$drh{#ZZwm-U~VWXd&(j zL&|&fZ=DV2If|g7_@#{7nTMN{DHnhp$^bZ2?qznx#$FOyY8BZ|iXE`Au4Qwk7w(4Z zmIPTL3?d@u{$@OrUC3A5t za#ZKnA*jI>47`!k`g6NP3d``)aS2{o{pYWO6i>_m7hs^w#Jcpg2HEqVBWltU5lF|( zM_C)rZ`SYBNH*KHE5!jaS=4g_S*tu8?RI+2C>r@XR%jG1YeT^~2_oTg8abKt3%oF0 z@M9UBTu2H1omJ4PfU(incyqqg(#)m+`N5rINvFA=r>su@*agGMQ`r~tSSXIWK zECzxEGlXlsZ*d;pMX(7zNhGCfaQs)MwP_=^(CmCP)B-6EGXHO_+*J3fX;?mgnLmz< zc1*8sx!XTG6n1Ma&17Ne(uKj&dHe*gbAw+M)r<7sc9Gz5hw)@G24~g7IfTfHi-39j z;%|)dtM!_iwSGhI6c%*fszR37Tdj9`E(q0OhIf5Ge|1T&iq;%LMvwSgjqI^o{vb|< zk6d@ykQ0$II|<|Pty-o7%97Mmp=(9b+T>eP6;Br&dB4j|G|L-;B3H1V5%2>z83f)t z@Q4pX0n`Upjw;CY;jO~}zCHq7=}W;hfr5Hj>%`)6hiiF@{78|#jeO&tMfnp9=>7ZEihE(3>}Wz^U)gphDhpY4 zX-vVp(b67%zcO3=#%kD4n>GVbVGCo%-h)A?|0M`u?S{{zOrbscUQ|Z=8a6)U$VP#( zW_bRB_15lN>;N0mie>G%2~uCfJG(&#^LlYa;!R4%I0x{+;TAZk{#N@h(Yn(DD3Y z(+u>?z2VM}V2M;!4;KJKxXtOK=^Lo-&BuBuJ2U!^bQaUuf#^KY&=eb7^aHRx9KIWn(KC zSPO3bnT-P(HSBR7GF2tv?;_zYH>*dQ?hROI8W+3JwYGLH4><$oPizli_mOqe70Nz> zWzytELYml{cO1R>40J-^XXeDD-$rXnfKV%0SQE=g%&J}Vwb?leJAZAQ+0AmHQMR|V<`kveU0{zy|7QD6c$tf ztWeRwLz9m|=}JoJ7afx2s*=1O!uwz-DtaS&sQJzzAIGEjgHK&S_yUOwCy)RFYZ0Qg zxi#)gT)HGJ2QbiZt&r{2p!=m*ciop!5T{<2wX^OIz7Qy>uzcXDJ6*^-3LoU8T{ra1 z(GtyEwnS>JjmAVj4_>O4QL9M`63nu=+17<4bAEv)MWR32MjNH!(@ud=TcCMEs^S&1 zt?hGhc?pX)4dd?stbOZ7n21|e?lRreEDX3?|4D$t=z=DC&@gF8%$E~ikh|Iu)kSmM zwWN4>WD4`)MNEFPU_UFnwzY&J<5j{?O**N`nONN7*liOaD;fX<3YtnacJ=xMY9&5Q zOli4-aXl`~HQj@R#8s_QSOH1BTQPG`ID!6cGJ2WGN!WAO`8tYXK3Jrobi>yH&EL$b zd~}p6Xg&1yMBQ)%*f?EiY+s!lfbnLS(mdZ!2@`1P+(x$6YX)87%d)o`S4P8>qR zdXE}Mx%o#_d-Az5!%S>y9&15?vODT$902Z*vDJN@Ew1T(hk~u+Jr7Og_18qt_4v|w z@9RIxf}*&dQ??jZlJ%)r$P|Y!nWHI8#!mR?BckT1ABZ-lY$rw*+?8g>X5_S|34u(8 z8$vb<4MQi!hgOM^5GWTBF1v0rxdYjE`S*)lE z(cB8T4rYqcSXm>rwG_=cU9m=^>3iY{ zp>`jegY`}CH!I?+P{l@${C#f{&KY=7-AU)YCCQCDx7*-WhAy!5SyuzIz9!PX#AEWNL?f_h%xyCD0N5 zx~B_mB*tHcb73r6ZXo%}uxkvupt;ObRICp1X_NU4QWdQevmsbIO)pmHl9bADUCH4D znBK^}0-VsR)&K*DQ-zed-7P@SY9&zUlu9ZoJ&z`OZGL9|ss5W1?Aa}w!n_5Yg*FPC zsML?^UZ_?HiT`q^02M=nd9$-x8O72J$6gmmn))HebT4Brf&JKTStv9RF{L&P9 zC>s!WVlc3-(`Ofhm02|fVM8Q9{?ZXRNb`bTX2GvHelQV}rLFQCj0?S%G4eQq14cux z?0TxDKKd+gAA)v1K57GXkrg{GC165d>Le>8Evz20-%Yx)Xn?ksQ&h3iYXRHoZVzv+Ij8imJRbrsl=g+6JVX6uXrM@M6*~e5NuWSDlC&vAd)${U*W zQIW`?QbM-z!!cH+zqY{fL=l+Ju4AJaOoH|%dJsd=*cj(us7{O8#c+{9i|X9ivOzi@ zx0U6FgNFYeTSvivq)P`4P4k|_W+pm%>UrDLo6rRl{axxeUB3U9FaHN(oZxw$TKNo=C%;f_Vj>e)~9x5nZ8DmQvm zOd9O0e4fy={g2)i)oha`H`GXiwF#D5|F}%>oi0JqOco!MqI!O|DspKR45gIPMZBoZ zy~0FrQjh?R{{}TBjYqDOq&4|AB~J6Aj_RRvkYvVp)a?wdv{hxc0ISs%>@e@&ONdI| zJXSOBTdJ>DA!IaAXM?+LIy%Uq)~M^+B;*`TH}UL(KM9Dq=2hIh%I3 z(5ezyvWn(Q?EH-*+><{wlfwTG%}v0B;UHIUW(duGePW@pFYA&Gw9)ED ziNp;4HH1sXP%Y8T){~(%p^RKAZH!FZ0@|)vTeMnyGCY8RQ3fd!Kd?j+_uwjcNNGyO z_9<@rIoblf9xgbsBkbamaPDvEzQ#ule`ZnbN_uBn(9ik&9ImD6*jjg@epcx#VTg&~ z{yX$48Bef$LSOi;H$4glFFjgkGn^Q-7cR4$xcjd33MB0y>Yq$iG%5~vP9H~BGD&u@ zRvo%I#4QtSN+Q@Z%ZDu6|MonZ_ck6-;Gs_BS3AA&wwsxyuCJe} zUKvK5dXKJ@_lgYzW~_P-RWagyi6rtJ@GDxX3jKsg3zgpGX?t+eUn$AYmG7x zU6UD+Y5l0tVRvy|ej5_#rUFgAo2tx|Q_TQtc-Jjq>%klbUm^@=G5E^y4Qb>;kbUy_ zU)l>hl!*VMvab0*$kskaM3+k*|3V^Rz zA7^H&e4m9&TTHaf!VgOQ?Bz%TTe{N}o3hQJY_o>~=j33Hwd96~aD%dsoY({fLlRBQ zVh_pGgYsp!w>hkEVWMs9pNc<1P=9zCL(PB~p@)YPN_;diKAMxiLG&}bZMcA0p+6_v z1PzGRY)xZM&h0nMz|``^c7xqja12}?T)uIP%ROxW`zd+iP|C#eB50Y@8Du8AVP>DL z68xUI#7l<&-b`m1hyf;zH~pB!$$5{sxVq@)o+RcNPef=ani<5g$OT;^D;8TCa#PC~ z9<7B4imM9BxEZ)U@MTNcNb5&8<%hu2*9_^4D@FSu>kql|B7Y;mgh5DQLENnRBEB)?#CC*^sWTmEmqnBN%>N5O7cN|zKN`BTe&&Lpyu{8!V)ljqh zq5_cU)1m$%OHr!LFVEE@4y>Te)41q3JXvdZx>xAy6*blb?K%hw^4qJztS6ODkC?gJ ziq!CouM{r}uAvoQL{iOfl9GcKPhmNVkTwxs(QUf3kT_{^Fb(U}zrX?H*G;ZRPebkg z!V^;Q#1!uF_P8OPsa0Cd-3Ez(w3T(T`(kc~;C^HudF^UE_`%&{0*+WxB?xNhMpZn~ ztvaHVlD2f5qO$nBbM3p95f~X>szmk2SlvQ*mavB`hHROd6B>-#9X($xPl?~$?{FDa zssff9w@H4sES4CFtMr3&BaTF=h=$G;CmMe(0?q3XBw_wd#viGLp}8S<={pqsHj|Zg zjJ7l%UO5e>vN3{5uJ&|1cELy#{kJWd&`hFZ6D+MEK_tsj$wKfm&;@O-?fkiQ;M8xd z-qxgFJW?3!Ou&@)hQeGvo`DWD$}=F8QB~pA9b{P!ZO%iB7Ev$kiD?ib*V7V{`7fO0 zcQuK7DuljyFNuZ!5dEUR#}F!GdJs?wyG`M&TvUHD+ehGonSnogp0P~7!?=r}(5n&7 znAGVFRaa0cz9uY9NECpOjU&UXs?+x?FOe%k28TIglMFrZw(z6uWCXi!`x$%8+Nz>p zuZkS)rQ)o}YY1a0t7crF)3JUH(oax+b)?vqTB>MHJbssCvcgyJ&`bLyN2rqea&P$unA@`GovHty|n}>m! z*Gdp!ZCiTo;Eb<7&!xKy4gd)#TU5qcddff7hCV2#Ka^oPW90X~M`SYuwTtr}|5OLu z;P~xP%Codx&@iAta*iBX_meuE621rqs8|E!N{M+}BYe9nGq{>{1c>QpQz6xCb>916 zrb})v_Uq=5^ML=ZFe!i3RH-qFE#4{Z1in4RKwR;!TD0NBixI_y{)TqvfTO0VW`%Ct z>Z+#K3w^Zh&&TByhEwVt01`SUtrb5(&>?%=XBBinq(5)QGaFn_#r& zXX!gaAz&Du7Ow87B{>ZicqadAK>BV|@l6sU!AWi7=8XjU9dzVPvgpSgl-H>s{0xsp zSG?S*PsL-B^C*vK&|R-W9|#xZdjnOuLG3um_d=OJO6JZbH43W34{^hb1&xsaAci)v zx6Vm`<7fOo+A~U1Z$<^dBojvf%_SIYTCJDdWYQ}dLHzDPUKOZ$zInrq(LLnIUJD#em;Ms1o4@!S@2i=b zgcBU=`|ZgEqAY!d1+l)#t%8&WO7R7yRnbxmlK4@1YAOGMP+1lz#1`9_mESV(8KYJZ1@NKJSeT`?dQ4_s4Nq&*s(9bBz;$d7Kj8O&x(o z@96C@)iPH0!FLh+Sm$2pbQ4QXgusXu;BC>$J3xq{3v}(XQMM-BP8ga<97VdZ{@VdF zU5^VQ&Doh-TEKpOTWDT)iHUwONt7()btRa42?Q59Mj0}Rv)WFOaDbev0$#z7j^#0y zu~EPAq`cATP3Xl^fNAynE3C_W!xOi3U8ERPd}Fel*Ci3 zg*oFXce7h3t`4E#hdE>|qT2&-V~!mWN2_=Z?(2#Kc=>&p;PRA%yK zl@i@3Bl1+y5#Iz71a#*9&thp9>y6<=0beArw&;R7`4Ttd5x;ObF!SrsQU|`I z4Mt?S+@c^c(duk^im|y0(|*!7JSS3^g5lmjn5rhfbffeRqBtCQcs&liymk@TZA9=j zNc~>Lj7C8q-cF0|^u2(6UE=4=9|{AN{77)^1JO#j7Bm7q1jEWf9pcA;O0P;1Ic!C# ziQg0PnTty52lUPj=8u3*&<=8<*xcNhuDE!@9j2NbCpDxJA;NkQzPWzFyzP_9)~Gav zMK@xb$nr2G97!Pz?@529^6(2xQP7>{$FtV>V4nm*GNhi0IEI!Cv!{=5#e)%nz(;Af z(5T>R4%ug=ev->BI4pn;=2ZI@8adgOzOvPbS`YR;`858}F=lND$c;Yp+oG~ohmXG9TMC3xb zgz{MyVHsFVmIUS)bwzZ4cjUWO;sC-uE^S54D07b{+*xdhq|=HK{f8j)-faaBW%|-O z%pMQ91lL++PL>SKUan#aMR1+tAAb`?#+1FGYp}>vlPY2XA|lU;|DcK@0}?p({9Idx zT7Vi0?OJelX`R{aM4UI2-K2DZ6}gsP;OAq)lEGG*+q`xyVGjTN5E#KHu{75$8PBV% zbW#vrpSd{~$$>rerMn(F8(19Np{T2x8SwL1a-9{+W*~p>n?{D=WmV{9S}+-xE`w5J z(EeyXUooya0P0iscu7*W+X%a%7=(3~o7Czv|8p(-d$WGLaSS3|R#5}ABQsXo&+hV3 zW>M|#gNKf`4~N)Vmz5pSSBV)zI*4Vt5EeGCVza8|QQbC;;5@seuPIssxthn^kwFNL zVsM9KU*4w9P;=9S$k#%0wBwkpDp?0?^Q9n!YI?WLV}%r74Y=bexO3gKBiO_Ul`)dS zcz%4$G_4nX?yyEA2=g##rG^y`|Gp7oTeWnut-s)t-`u9^;D?2y0zQ>CtvEtHS&*j?tXhtet7~j9Llf}7xv7gsuaQarZM{wA| zx*w z-$tLP3(~beoa&o5X*)#y9_Ik6RKMO%#X_uS74F)<%lLbfLanvc`)?>Soh0kb-5^6=6b^A zh}|vWI61o*+3@@@;U4p>%}q0dGiu=JQsgh$Vb1U77CGwafZ- zK56O$kNTg5YWySbvohc?<0m9o3dxaNumy*gq7-dWqVM9Za9NfIm&9&Oo8?v zIVAu6Ricu-!Go9?+A>*?#;~Vi`Z$f8uVpV)7lrC9Hp2C)s?$Fl7E@n-8(%|czHwdQ zW6lZ!mLL``xBZrKW8C8>7zD2C)DUH-NS1CETA*wE36(P(W^eO22{KCz%p?>Uxut0O z{TkRc`@!vw+IQc34iz>zrfn0u2&>&B%yP)Ccon3~%}J|g8$P41JtxMh3^PIIUDhuF z_5|DWB~7Y?Wyrk8Q@mN(B&ji7sE9uPi!r5}a33c-#}9~MQ*qhGDLSN4oG&Mln!xYb zpUA+-2uk5~$D#oLb8P2`@z)s6)#O=<)8P=_AFrPT$)kso0I-xMf?+)x-K`d5a%8^6 zf^=+jip{7bjVZ5S4#|3%xgd6<-HX*QLyeLGfR4kgjf`$P50QvVn>%1Tlb2Mk(3>f0 zLljG7GDp3olKQkJ1?>L+9pFJTsjfHaw{d*9A);Slpiy_}NxIN!OJ7f5ucTU)ud^L0 zi$v~=oy|^^6GH_E)V-E(!e>`8c6Lz9Kasp0$XBZe4z#O9abdc6`LGJ21X%yyL;MS3)0PtVdjfx_-vaPDX zna*yY9kTa3)ofQkOw79TVgRkLO5^TGGC|RW>opB}36hr`gLm9J@X9-MAMlYlpA0S!pI<=C z;qmtxfH^tPEdpFoE$@$e2et27YG9ou3yu3aY`7S!tA5-~2VOw3l~RE#b9|^KG(RjN zXlo(Rs_huYE}xKRYsc;q4EQj`*YfHB4Ss3Sn3^Z>j?anCv*t)*MDj|4p+3f3Z!HVm zY!1q&K>FeaFgfIIO&pTD)dJ6G1-w6Rm#lCNZd@@zl6?5h-QfHUCYo)ygRKaKMYj(u zY6d)s`x@@yML11gSsN|X_HK^C>A)X$YpeYCTwXE+Qi znfFpA?s6h~O=^}9W*;oHBlNes&07eQTJ!+_KLEg{nbI`wuPE+6tnedQ=kFK|uj|iI z!BCO;N~{DX*ymeW5|p39(E~w$zy8UyqHr&pETi*}orXFxasi} zff_o)lO)E~-9cTy$9N#C&LAP#hPkrh4Q>=^`$*jSfwuZltkeWJaOfAZ6Eg7<*)d(1 zhCBJiW@lxE%lJoFHr0r<_)D;Z<_Z@E^qhG`vg=poh6$D z&fIDjn+w=|1;rV>bOuduBHRKl!YZPKw&Yv$3F!kRS$Gv?OGp1{*I5Zm-aGodP;}~t zZY{V=Kg5)&Fd&|vI0@}FEzHFs%&POEi!=1GNXSgr`-JorfZ)ZOn}yz65v2G*!dVxy z&S6g_){C!K-**EnlGTbM9)YFmi#^xsXC`2{0T^OY#hg02;hzfVJM_JUGkVW?<7BN1%crm|ZWdSXvy;+v* z7=WlE$*rp#MBu25=|lO3IF0vm-|&2}<)+e;vlq3cmTDqU9cwuh9h=dRPl-beEg{p$ ziBEq|WUf5MkE|eTd7QQE@Bi&#sxDlkKn2{UTQSGX8opuo_HO7T`h}z==h%mwOk%djqZ9TGi>y3|UCU|PBe9TmrbGe3 zQU#-mknTzS|G;N)62DbD*T@d?!!Tqfxn`?BgQ%< zaKDth0~{jrlzSpXKEH?p-ZAISfqzvP%kex+2Wl;PXQ!UjCuj>H0@1od{@ccNeA%N+fX(C$=H|-mu?%01BxAGtw}ihoE331lOApU8(mIc)tu;nfKgUfxBZc&&--d?Z0ONTcp=Zs3YKG647YvS zZ}uTplGH4xA&6K}M=9N1LI*a3o6J7r<+B-pSIOJY>i=mnQ;=5AB#o>Ja-i?v@7JM| z5B1F3`E0*R!t|h`CTKkBXa)psdt{|$yN5or!Y4>#UB>#E+hH7JoFpCJ{+OS;%$#La z^+|GZ%(DYM+;2Hp>B2vvhfFfFJQs~Vy}(4t&91w{^AIFB#FBlRxl&ZhkBF2IwmF0i zeTOZ?lOM3`$apMl1mRi+Y2;Xf*>>afz$fqn)8X`mMtT}Wm@>v!5bOVGYe}JUQg68o zd6a7pkhIErRRW7<3>~&8ilF@ay&mrn;n%wgAR=f)a@lkgO-X&yPeFO6oluZE|G3@c zyHUHCPzp1V#(affz_T&bT$#On6o!Nwk~=O60b<1{h8d>m#JPlBIywYw(zBxm3@ad6 z;xiQk{`^Cf0yMg9I#zC@k=yCIA$)~|Hj(tLMX+JIRg^JZUt-pMU@DVjV z4avn+>o3^9 z0$ETCHCaxTcYUd76hk=^wsMIlAL2D-RbpCz{xT|xaydgqnAS}C=c@!<71ir0@i@%Y z_`svx!-^_4Lsqi6Tab3eQ{)PV8%hH5s<0$sar&Gez#u5%@zCQt3lFJaXoQJ*^|n!B zNVU}T;6B@^{SppXqGm60M*2^rZPh!C$>y}!S5E`#IhHfO~ZHz7ipu#*OsX> zJ`Un5&8?kv%0F6mhMrj7S4<=I#|!IV>*HT($*Q;CI+CVg3s(I3Jow1jLoYrUAOC(k zQ`uvIAMX{9H%j4VkZQ`pd`e01%j_FcF^6JZ*k{GiqJmx5`I0ZmpdQ;RlHsz(|8bRM zySJq6yL`%{%zF=7cQ0B86n}xL_8YHWe>o~vTz!4zG$DX9!vaD;K9I~!l>jjsVGQ8= zlD|~wPb@d+`=6|zM!lAZCz9nC;9>8cUg17~9QkSFDW<9dYzElG5V`I*E}_s3M@7s@ zTDwH_hO*fs0#z@+@}-y#m#JR3rmt%t&^Smw%P>^`-H(UX=mLe-$x7K!r!3}11*Nrb z;I4x^HXX3I_PNb7SDmj*u=u_ud^2>pQEub}6pk-!rG;CL5d=gIGWUYOB+Id$en#?+ zV>tCrPMnuLokFqW#!k}QQ>t6)z;}*_(V~#E$U|@B+zYuGk0Z<{HW_4qu2Bw#3@w!j zMlaztHVw7kfLYghSX-zze6x;@^S;u1E7AZUC|#?8=`8x?3%5A`@bz!BJFmxoZ`b=l zeLxe=$2|P^YSP^RtS{%4aA?Jc_LrFwPfj|4|1rgaJRlNR+Yyn%pr>Oe^4(MviKK>K z)uss$s80`X#Z1Trg{BU{AqX|n7Ubu#{VIImS5fvC#L^@`Z)OENik3X^KxNcQW#Q@4 zegFwMy{F5@?+>Sj8nCl7Z~sr8T9s{dU3B}EN|~lI-+oqKYz(^F)Wqx*@*VOXB&>!( z<{XcGC%rmHy6Lw6LRWu-v;GHvOn~hzQkvi*({{>!cDEMgKft#b+41CNO2cWFq#@9j z*+}31mGX!4!(`5o#Lf#Vw~z!j0R?t%gU$^qP$RE~5fZN1A_klk#Xp}9S4jIGPLN0N zRD+Yo_8q=8i#Mdr&pd|C&3B<@Nux9_EmgQlad}?s1|^@V5!{n5z98IDT6qG5u~Q@& zBv{zJi-Er@-j6Q{`{IGL{Jw{y-4GgBd19TlE#%%!%d!`0BxPf#@wrM?IE9yela8=+ zL@}Kp`)wn%Cfs6Z)$~7d*m1vpc)Uh+{)#4U)C(~x_#w-MZ|u1PpHY}nNvq1 zGr3*N4|#Z}<8SOX+4n^4t#DloXku%0C7QrX>m5X?(=sU&?vxaUN<*uWPbl8)Q}!LD_oJvB--9*3Zf-Z z0*s=$0WTR$liAdkA-H@0O3n)s55grANlOM28Wg3Yb9tNQO|?ps&1{2i;HotO@`~%Q zyZf`fJRxj>PsEUW1uMi7c}h$WhP!mssH4vNf**;5$EIMvHn8139J2=6e!gY_Sm78u z3~RR>A3Pq{CXMD@9ytxU`gKaR8NyMqA~+0Hr}zz?EP!nt3Ffbtv%?_*-o&n`*FqQy{k$?uM7*L1-R1=6H!&X zBb>gcQ>NaX5W$*1GS;e3lOA7B>EaK{3hX)iT{`U9he?;#d9cO5a#=pSnHf^EYw!Gv zw%?*2(*65{qS~{rl*KzSx7@Q}bPEMYBF^ZwD=Ax$ewK{3$~WTLUm}_%oGw~~I)Cvd zS|q_P^I!q_s(TrZv%!j`v$_tOsQ_Yt>3fD*{ha&N`B#fyLyw#Js(mbX$_Z=6Ni~8c- zCc-kz;yCATNg`p(TMH{{KczT||7W3bG`yJTSq#)<%e#FdJ&C-rO+dS^IMR#z%EL@_s&&2 z5GI(n5faC>dQF%3@nFi;y$wjbIBXYah`XUCn~D`Gy`f7EnbCy<2O4gP32m#F{m(jc zM!2{^yQ-Y+7WH)d8c!d=chZ>BP-X+VVO_}A2aCuVnyQHCnS|iprFQc_e+(~C3PrT{ z^|eWiS*X}k+spFv0Sd`<<-t_=y?gH2i?e&p&U*$>U*I9cO2)Nq?KyWo z&PKOS1Qw!gc*S z5Fxb0pT{!ut?St8o?xB|481E>8&+J1DXHn*i{7 zJVzKZ5*4#Hoc9I>2IhYuxa)SWBgWNC9$`QgCEhVRr{m8$HDgI0@Pf!{rrtFoSyrYY zG{yV2SBRo(J3eksNijf$-0w}I2{Qmew2{Qw_MM2a*a$l6`dX@%s|e1W-#II%Un9VR zKyduBoe>aztZ7qv@GbJrKaOc&r0604^a|s+4r60Z^t|gIl_>U8Gt@RJt3Ly$A4liZ zV7rvGB7rzu;{Q+|W$=)17JB4Ajw6QBuGhPayOU}BiV|FlUEMLSqX&@CpmOA?dOpxYhZeep2Bu!3jCRYJ^iV|54Bf;tS@dm67Egk<<)aI7^s;Lbg1>zN9@|iC%IFpG342 z;op1(a!74hKk2u(`h}SjIW&e3(AAqU3(X8BHm0AItopl$(zX>DFGHN7wJzthDkHBO6t7NmymW+**h0UX&oN=J+x*foKvR^Zbj@Mt9g$tJlk z^H$s(6?{z>GO#ys{YkVCMw%o?+Vq!?MSZCXLiii>1=7a{h8#_afqHe)&53Cye1@W) z<*qSgF@JKVi^k9P=3a_p1?0e7J=w3XJW1<7`LMc7L7HLRIjsH2D=Up@He15bg7}NB z=n$e!mO`&%8`|e}yO?}mZBI!}k9(FxL{eV^&6h!V1B(pd!LMt2-5{rxXD7}SFEIkO z=@+|-@w)9w-{67uy?u~UJtp2f|5Km*0DbUId^H|1=R3*3ApY-VC_0I0eO_uZ;`@f7 z@>Mjj-f4;SZle6T!Y;($#*OzI)$(u^h&49|FI7Ewk&UF_Q$2DTQ)#NyA5ivOgkd)m zVB*9eRE~;Rrs`!qw&!N=VqNFhd4+D)jqEr|HP{|V( zZ(3OHs#2a4F8-1dn=aQUY{0WBl`Fn-S9Aigh6{>Cs7_abamuI7e zLCbCQvW>gO!+3W>N^|nU)3)uJO*t@~u#H6NwH$XP78G6vWs#p|Ie9%-Y4qZ26{d&O zw2C8iOOO_>1f09f280o_oBw`@E8NdZ47*R*o#z(-z>Dwsu)vS@2FKEq{}pOJdHd`PNDYiv%j zL-1%6m$^)oH;p6nQI=%yv@DfR6!mjha#cs(X@IUNM^zr48=4DhA?ODI4!nx+vSLYkF zcwYo=Cr$~S@^HzyFoBD6{Bt*w`%%!|XEn`HRnuPeZnZQvJ;bkJPP0d1dDw{Xo@)WN zJ zC+Sb(L(8Yh=2i4UuHt}*y>fW1l)cu%N=0q2;(;x_XOWZtF3_?2P;nGQ-j`b_`<(sP}sAthwfhjTzX zTt0AznSLytgg$#EURm3;_<@l+8cA3TQ}oM``r>=4*O{-#QI1x&YM+#I6sU4o^%coKpj)OQ(>MDuLB5cH= zo@T*^)5>4LN6Ar1+Q19>F(BU!=k)QAv77fm;{^op7~ z(?bNVG^VkM3OD*nHfl$NhX(h>b)C`zpA~plP??AL+?23J8M2b@>8tI0<3xtx>XwQ_ z@w}js9_Koof3xkog+nI%Mpm_gSd%nIyYV1>sWptN8$J{NQ~gZa<%Ig{8CM@15!~eU zP^vI?9N1Ko?8OKanY#;PTMjvVS9tF&Fmn9mtv%_$Z;h(=QCYYiGbhZ=a<*L|3`x~o z3930AgTMZ#=(eveD|x@2kyxv^ILw3NmOLnWAX156N6Fx_E_+b;h;wQP`EkIOS;W|U z!J*Gy@p{+VE9;STu70Xnv?1@D9%F=AqXUMxRuncG#w}4!H*)7e)`&QEZ?~82Y+I=c zS0jYcvS(E%B8(g51ilvz%d@I)MFUH$+uL4?Q18-oT(Rqc14Hl08z}&1HM5@!S6nw~ zdLy#5Oas)QK?N0(!26?XEAM)oyKOpUKh2)=JfKt|?cFbQGa!u{Ls{APSF&6?4iI*I zzgpo|K+a_=fH~PK^<?qlm$cf+~i86S%Iy|riK zV9xj$l$rXm6>8*sC%CotrNgnnRbUbNZJGI_NSSFcU8T>7CETJi3B`jxBnB6)^^<1SQs-!i-+B3bl=0-k4Yt43e<$o z;8Vppyj^qqC=H6!!}(FCecYJUG``JFS z4f@Y2KLzW~>!`u~)ElsT<{?}(=hvzYY?o}PCG_v*awKOP5tza|HKG15=5-^W#DazI z(=>dI8rd9T5sIcAaTL;~5bQ?rMaO}dJtpq^85b~HnAcmaKt|zBj~BpKSK==WeW#5T zHgvBCd}3lMBULd^M0IQY9ND6u6_?7G>0W`qKYc`zFq&r3XH^J0W=H_O_5C2NwMqP6 z2Tm5tRE8}lWj=ip7S%x5ppAep9HW(8@towh=GvnB4qdX zEi7^x3g#m7&qm=~*bw^YpwLS4s3!5U^+pn_=Kreo_y^4nX5v|jbhREQ)1wK%!Mv`1 zECq9iN7gZv*oOG2F^CUe(Ve0yc1n@MiZE%Yi{;sFkEhZNHCc^zXuM;3c%`7|(=7H1 zwm5L0QoyBKio4(DI{P*|31kQ2avHPyH{vbL$Z&ae4JN>!kJT|jTX;Nmm&V6AAZ-OA z-b8ML{DBPqVeALfEg)bEoa=a2M^o)q3RSc?T3^m6;cRy=bZk%AjUhOydd_m=FHaz1 z!st%E#wC3w45&N{-zGty`cjAvO9818!jE5m!$xTawzkrzozE%_#pg~a!!v@hNEkxgvyl;i){Fbc)0uYhdyR~y5LbPZY+42E#&IGnowh@r2t2{m~T28+CS|GzjD#YL@a z*u|#1(_S}!4#UjpFlikMIccL-ubMF;BZCBS{e}>BOX`?X77Oe19~7lum{;s+dh=w?@RRL;yWQiakp zNdpsn-YicK+Inh0`?;GxqwxInXt1xlIk-e=s&uU8MZ(wWo^W@jHMdQKA|D(HhpDlo zv%rdMnW>#%{;I3TM{{C=&AkkGJ~Z}6uBg8iMta%K&uF6Enef;vhNv+TgEl4pDv6jc zUSBhWqRlJ2dG^|lQt6M7cJ_ecdiFbri0t|(=x+%h9H z5DGVgmpA!RYD#%Tg<%9(gv{|mE%vTw7BLf1ob_&-XbxQIwh6 zh1e_y%Cg{6w`P#SyE_E2=14I5Z)LXE!e~F0|KS(7dMb1DQ3yg@gdm+cQ7QW~cpKr~ zg}?frw0|X(S{fH~V27vVERazYrAQ~pbi4%dNHE2v!xz*yBag@v_9`+u%8+CTDdfB3 zdf4r^8E_Z&GgO$ci&@h)(}nwwS;WC@h8EZ6J2{EN2OWciX$Rv9*o&E3aXpXO)VHh1#@ngXzwo!buu7KOWX8sV~T9+o!t`I>Y-NDtX`ko(<#!V5>fg7A4TL4{Nlnip2ZH@M83M%&=iSxp zLWkXfw4&M~e>7z^=ooudpKqs{J@eDlT0UFw9=V(BqlH_9i*v@=3YQUb)L@;RhANZ=$@ZHPc$X1tf{`!usTtJw+5vuo_b;7rXhm@?a{O$yS^ zI|P4|c=QF9EORiSGLRLicdgB*&@OrEiYo`w6z4Q+uv-=UDX15_+t|BrOvnmK4ztIw zNU-3njWe*3Sbyfv<%$Lj>TTbNf zFmcO$8#*EoNumAcqy;QTakCF6kAv77Gc1f&yVz2*U^IpgIp>8mK`~vJW5sS#)6(cF zAOeOQJV>XPB_GJb(#as0#ZYCw|C5Cb!#lYWqXz&b4k4Rv)Y$aN0szhE|Kbt;CY$|* zm*AAfXRMOliLdJ6V+}qYmu>%xDFY+I8Jc1&()E0QhH$chKP~G!X@IvWVu8K~D=<0g zeqVj91P(XmUx=MUzudIO`4)VaUFO!$hcXlDP#7@&;GPnBjgi%O zR`iyfezD~XA(nGDQ0hd#K5pKZ-rxrLL0ExWxJn-Zf}4@*a3C-@iEPA3QoA$uOce%q z^fI|DDZVL487`72U>WjE7Qy4ys)$jC97HZb#4I>zdWBa;yWDtkyk-0%k-6iy?5I)s9{;GS45HW{PLBhU9d&Y7n$^LwxU^U7p+wKJw}z7J6o;| zQW{T%CsZ8c->i)RlFv{eb^`23b6TU9=}hZHzwdF&3hy{!A%`C-$~2U57Z&p`^m2}5 zP1jr+e*k|7G&Ty9nzxexcg4G0^ts7?ILnFM?6IYk8B+r0KoF5X#wS$PU8DsfICo!g z*>>!RP-CZ%+}BYzP>|zp;AAgdIzOUB!}~D$FNh4RKq~nf$yAPnX#m6I>W4;Pd5xHBcROt^xXJU=!HPtl0Vld&X^6DLJ5^*~j2Z5DXSHV(U z8sZao910+wVcLpJiE1S2tI~*+ctt|;eHNWDge$5Gj6_S|?@ks>-z?40@;k2wZ3?M99zfpb8q7UhQgY(xGGX%KR)kpqGF29_ zX$%Uk_hghxd|VAcB1@o(hCIK6LuuZn#v#v$poeTXFIb;#HTt>~2tPHgzS1Q9 zF?iscW|Nepjz=CIHy}MVeZ+&MM7l(!6FezQJ8uG1#-!fyc_px+Y`vSa&KP5Vq&BG_ zLz54TAH-DGNo4E9d8enKv;$5e7EfR~QOGk?$?JsmgLRDCD`QFQyG^%3mpdl0{ni|= z2u&Q1xjqOH2#7-@K3Tj}yO37f2` zBq044jTP?&n^gbJ5zlz9GeQ zI8;T#RnG8Le%4g0bEX2gS}Sn0;HlKXdgWUhm>_`8RR9ggjyMSe<<~U`sM~-_Pm6MJ z<)sMsj;zJw=UE*k8>dlqT*JXQ*bR7L?-)E;E$O73=5GLSWZrFu!JsyO?ue%cgt{o0 z-b(JZ?Twe|tX>)1@MagKuZWiP(J-Z&U1cw7H{i4L1iA&h!+1(W^-6P?$V^vSiJzHL zXoXN6&n_7|n&~uSdNYXzo%&;fiRt#DEz}K;=kzkNg!2b>tjs^DowKOhe`^SEkq!LR z`(KAGV;cjO9;9~hq`gWDRaQ_<7`3EIkwTJ~9Z}ZgOcZH+j$$sCc^ zt{stF_s&=U<3(d$F5zQX=gzTBY*O$G0tk;j<&(CBkqJm2u6H-!g^b|W=%}+e$9FAY z_7xpy<5k0+pvA>_QYg$pCXv~Gs%>8Ah<9fIQ>gnsme=7bA9Y;kGYf3q)z{*X9O zb&70aB~%6WOooRJzW|8L1N(8%Jk%C}@QRa&&0E_^=H7=_V%+#zRtw*ZXsGONNdc+Q z$RlQp<}CT~hs!85fqHO2&)|Co`;U-LyMp$Z{^%5!n>eMI=IxilU>2>+RN~jZNrGum zj6VKsMKgN!{-@A(-Q|ohpOW3Lli~r52FS$S-hd9^yfl7cnW5jizs&}EGmj}| zPPr*`=mS_ZB@V(#zZjnFr`Fq*eVsidilm~VTF21gSn7|+?q}858b#?ye*JtmanOTZFzaZ^g!$hy{1UbCU;2v#88R|MV?@8Y@0oOTBRJ zeqp7Zauf}jA?BMio~j?~Cz3so<NPD~UaC^plF5a7F{B)6CvZp0D=!!H{^vMHV zld7hyw15|hB)HCPt@V=_W=U%}E~BAQoz$KWT@lEc#2vjA@k=D@Vc*N+yCnPz-u*$e z29*Q zC4+V|=NX8Ow4c*BDf))A-;~uuCcNPs6iI%H;El#XIz6V?Rzf3nz;Dc3j<#Fg(ODL+ z_NEYrmVn5_>hU1r-E%CfW+HR{x*m%U&uQ^mV+0frH~Obf8EMfO`T(KP3+_0LP!~HP z_AwszLH#Cm=JI8|j&wB;e+m>*WrxPdeyM-7jG#9=;()@3|8cL?oh62N=!)>PPS`{gSoO!eyYw* zFB%I~)Xhh7=l;6&EmN2RX$BL;y#>ME?qhc*P3ZM>k%zO{T7b{n`b4kHo4$2vY)o-r>)7m~$7)6GzCNU3f+JtMM3SR zIv#!oU)ApmX!s4Up?Y?D9po`kLp7vuWGo6y_Gp)eaABCVerM-UBCRe_ zCDEs&w_P78fn_k1=TvwNU5N|ZZUSHih!_%J9;B03m? zX@2ocL^c}fvYY++58rFvja#+@k6C6&9#MgAs6P(qjz&_SmP8tl)(|AblR&5VVY(Z(PoD2myfOwgBuycB-2hO{4o@KC_vWxvuGgj2|b z@mg``>m1II-th9%B!>BDDm(iY21ax9rWfOWfREv6QT|)4zzgEtSb;aiuPxVyigXl~ zjt|JKlFT;Blhi#N$`^k&9B*JFSJx^c(84QHgIFiE!W73YwFv`D%U~WW<@|C@uyS4} z$hhh4S@*qcmJBANP;VRnhojDqq24}Hu$eC&QEjIAKG=~mGzFV36|iB#<}xX(^&_h| z(0@Jpr`4#pNkJ zRKd*O0bDqkq#u`kIYUqNl1B&q@)8mdso4mDM^OC%(ktc@s6m3QVoMcyEKqU45QKu`7_d# zYbI~(JQ}%MoAufXT`(FIQfOdJpDnuKm2}&pQj}h_HPM4(08O_%Rf5& zX1!Kqhl?N-pt=y=Y84x~e&J@q!QCYl12(tLOO#;Uvu~1_K(vk2-u908gH(j~LmIBD zbvOCD+hQEgjZ&|EfyEnKvEh?0M||&vEO&f9=Pia=zHiK3FJX)&R%I@3`>Kiiq{$dl zmx3i*Ozaj>n%~=0v9G4@Tzdv3kx@(3Ok0ve7;5gAf0>kB9qIx?DrC{*(v=78PP%m& z+ZuZN@;AqGrCjUQ!5?+%F7w4TZlLHUl<36-;YMDi;m^n7}nzX$D zuB{sNH0FoIB8V5HFTBu^+22@(2|a=DA)E|;CxUx}v~56au|dMb?IQHlf$od?M&3QL z&^r}pMh-+lPDoSx#f$q|5Ug=O!QFs)v5VadMl5) zqX8$l>%XJHBt$j;_9h<-ABe!RMG(C*T)w&=FT#e`@d^Y0~LKF);q$C8;%xn(2o@Ulzy_ON=7JcJ=Id~C(AL8J_u6Gb}21e zqR4OlNd~$HDo6T-*oVeKubBnQa%$m;Ia#1Bl?${|Dej$}*^mDCKC4`3%Y%f&(~Yv z@q0-6=g!@g^Iq(X2ra+eF!Eh7Yn{Je5WG8JlucnE$5 zUi~1!I*9k0zCm>zP#;bAw#X@(cBL-PnDwh%C`EDwgC-yCHSPAH0%4z3^RN%F0i_ID zhMm7nABWK6Vtu<61R&&`bWLDzrT0;dW|Wa~_X41mIT2Ay_{~i`f$fJx;-s$d%gGw< zm0QE=nfGU#HfEOY&}gRx`~s&V1*?{Gt@XdeUXlu?LLP#7GrMU@iRZFVZJ>L`E7F3L z0K@DjCv8-@)_QfvA>J=uG~_;DgYdpMj}uDpkfu6Gul;K4Y`!Z!KM-u2#Q6=Kv@I4T z;pc<4XQn0X13NoZc%aP(Ky}gpH9`G3ce8bN%G}zHd zm)b{QLNYj7J-5?fGc1IjHgUzY$O=)jUX^-CiBoPn=A5stJ~Gpiqov`;_Z7`-t9pfx zE|rFIHLIo$4`w%NC~tuqFpzQXEDJ09F`y}6x5w%`%pvmrg4#}X#>2y-*JK9UHiU!+ zcP_M*!bwK|lgQ_58YCj|W$mAvj_NVKiWk-qN?U8! zytpp|mcBUKQMz!Ia3_6!tcvvn7YS_D&{A+@OZ#EZN{UEejv8)LjV_Ghx#z)@Q-uzW zxM`ahU&FG4YBIs)+cWqKon`eDM|MYsR@atd8e5#=A)-Sm{njy`0{jq2_;HAM5E5|+ zn4~QH;u>HYk4pW@7_NB+|I+M#4$su?U>z+9!i0C3f{d%h_qaE$3TU;LAQ; z2AaSE?3>^M8^RZs4k*3Cv$y^hdpqG?>16&cRew?bw)=H3s!nvc$4K+8A*m+E#^vC2 zd2;oXZteeI*VHFsBd$eR?$JTFCA!ttk9ET(1`J zr%!zVSjm>wsNg;wbrl&73ew|)v_zmn3etjOs29vi=_t7V`x5rDkwp{zugzDTZN0yi zK2Ah?Y-fcgddK32yE~4s&$xS0S?Qy&_a)dSo=poq*8iY(r;8GCi7IPJz0D!hBcnKx zu;Q7RywX&jx!>p@kh=v2Xh%(6PH2%qQpX&+?3oJdMchdTAISD*-#{ay5B`{T0sWVb zC7E*4;}Ss#s((-7i%ejla0)ic zIltSHgoPY$Kz_}KzWDTAbYsM&;abx$W9{L&3TYg%*|Dl@fZtNG|EeGQnwZn{O9Hd_ zg^3l@yomK18dr|;w*X=|FG#9vrZ#sLfN8rxY?)(|bj@Vl$WX1}^>$nOQC@K)*UN~! zD{T^Q%OoeV_0OR*w521!MBv-c%z}_0&p;j4KpN1OYB`398xDAqTZ)Kf-VXG?V&P8z znLbhi{LhpO(^@r+iN_*$kKRRI4hP$s`}}PO=(Goc10>BeROv8{_rC|wmbUCKhS`>K z=9Yi|^tz3nHGK~>aYZX6(&ql@r?CM|-1{Dc);XkoW-LpW^HHv`DVkU$Y$e5{EV37* z-}QgJuOBwFv$N&YEzJI7@|deRJw7@!LdKOGJFk8QqG8awNf_Xf8(rOfcngNE=XQ3j zm!PTaCnOh9H<{ z?L?6E;ePB2^^}+SMxfJ~FzT)%B%kcZC9|=EhRUpj@+3-WI!2d5aEd_b13`9~s2Z@B zY^_T!@L#bMKVUCnF;}Q_r8%4&uf22 zwC_A)zZ6q7s+}+e?-Tx}#Q1zD!yqtRL9h|(@L%ps%L>cvm+T*gVcuct{AR6f?=;R} z)HLMr^1hT$Y$AHy^|4>IBa}X^u2A%hZg;2YSzk_0nqqaB`!`jt2=A6YA>c%ce_3(G zvhZ-;(nNwOQOb0=l_F<##`D8K(BMRT?N{JM?gPJ)Du{g=Pitfctq~Hzlhp zVW<<(kz=K-6WL>Y?9FPn`ec{(Md+_01`=KrMcPkB z#T$XbS>6z{>i2-dv5eMQzMS*W6Iaja;OZ~i1pcBD0dp^R@l>usuz8Jcw~H}b@Pe`{ zP{AP4c?-hvl+AgD+gpl;*KG_0`Gu;S=_<6d-gLQvGFA&PNJ>1$O>qbEvggJC7$`~N zSv(<=D}`sSLbZ?TK}F#GH+4gB*sr!i;!b@fWO`!>6A72PqYg>u!X}5SZ&-5u)5Rc7 zN5)cM0`E?ETTKnpt2Af`El%!T9hj))+1hCor4(z!9skr}RZIojcy3Kq0oD+~I?CJx zUf}E#{LD#ztn#@(9d6YO<^_1iW0I6~5%kWk@>$aqc3>mA5g*qJZQzvzZtKO&FCT$H zSZ|O>iZUINrAnYiVVCxOrdiS;LndgLPxr_EnNJYuWn$-FEp@VwAe@_syg%-LU)}y6 zE|vjyy1pbempaWTyW3OV- zn8E{g8yLP4cm70Z%g*Ydr9xr-Ebv_1MyqAr|Gq%%eU23&b>0@#djydLD1A|%7Kq>H zqf9PXJjvePx-beTjtWO+-)eVMMeyq@UHC;FOJM zEDyy<5N7748Ccq+goyz!pUsR7~k3P^j^KS$L> z>Ul8r>sJH%JOcGvn9BxQRaxQB=M%=K7|fHj3oWe9&Jm0vf1CqgM_uX8)}s&n_Tyt} zZKB+j+3uXaDrCtY*dcW*^9FToq9xIT5uk8gN__+rA(xq`3bttBzd9qKy z>VbO-?GU{qiS=pcomez^q9Ldd2x-)bujvDb%-%A{HM~skdEK~uh#^OWMMe(uMa5Xj zWQya&FSc!za2z#j!9bI_)Qs)bLBhV+8??ZtOkmnYIhz3gKLEgXVahIHh^vlau48!K zTgG*ob>cT*J+KzkERA`@YyUN`qSkX9c9+^c<}gYSjIHn|i;372&p+kd4C&7Y?Bk|^ zLl))U+o!p7OomGOg9(DLeT)iRhG;*1DmagfQ?O}Q74|f3LX_2A9KHy67*;F~Q6cvs zs6s;z;-1Gc`3b()HsTBYuzv(Pjahm)Gf&_V`q0_JUxU zFTAf|YK1po!G7Oiwo)^*#hM_)tk)ZK@EGBhB%jfJ;cA@;{JY!0AC$lGcQ(73wFC~S zw9r0Iy!+RbCrazj#;clrcA(jc^RwA>I=3n8OxL)>zyYodQcMS_%+f#Y$AA zC7D{;0sVWIF&-|?5rc+qLdr*7uf};soZhEf`(OEpE07fRbGSMxO3yqCik(`QoPijC zx!Zb7WtPu+yP?y|3_b=c8tmHXmv*=GpfJ71^In^cPT4dHBwS4+W z=lXiP%c!pFawnJNxT`DzhvX4neE2^fW0V0OiK5s9(Hx-qB5xJ;9!0}`QS+}^6?0<6 zETHP+c|8Spi;!qrZ$ZEwYBSu1jW~UD`fg$$>Ko={MVayIvNaGjK*uCF4t?=P8uc+e z2Al!IP|)4SOx-`DC3v315O+bZlG58tMRPe>I&M%=H4noQi2%pgoQ8f?aZ_}Sq~5!X z=kPA|uZu&Z9E2LEb1vm_-)EpCj8wZ`zBrckxgNYDi_&oE5$58^?j#aRyF~g$@xj9^ zr7eEuQWvVV##75;Oq9k6uOsrB#jE9`tN2`LLH{mo>}`2=&jwbgYY<8)QU;2rLIiDR zoB@P9)u+}m7^{sh1@7Jn{X$E#?JYpbE7`ruEA}0gK~v;;anKyRz;CU38$`V!?lA-L z_39@faIAzH>)2iL?1ClKG${WIHX}dnu?BX`0Nr-}MRQ&8nqm9qJQU*FlTLN9!%1vc z?yk4`)?TEf+BeNX;4XborL$2GN}JJ$ym4A4iay^k(?_k+6OF+?_`B1QQXb5V zX>RjtBNiq6UFoA_a#m6Hvk?!UKwy9= z^Qo;QQy zpK0;@YJQQo9feu-%|4gW|JM`&#b^inECpGq?4B~7t>nQZu$S}krk`NUA)fMS(y1!o zxb9%??+-254vWM5!#?vj_r0!WOV@6{#44fOi z>{ibI92D&P)Zn;Q@{Kq;IHrdMV_SlkmaMBKq{wD*RY`Ag5mwrO`=-Pg2ur2=UU5;TwDQdxD z249IAgfz{de}2mAw)ww*ZD8LXtjx1u5)1kK*_9&<{NvaPVDu+ zWN}(NMa%nEPnl`^3|v$UglNHp=MInC5)X0B6P?Tgn34fm}ndzA)5&r;w}q0EG^av{`_^Y~O?zdU}BFSf&g~G2NkT zU^F%ZpA_?t+QE6)qFLd73-}pOKd6IO;J4t&<@U~OL6f=4ywfXu(N;Elf0uC-+NwS* z`Pz7x;%yfmBJn;tFq!ARVJET3gu;iCd^;-+sh=h4A5PAme;4#&Yi=QtOt0U-%(Br9 zjX_!K?hEx<)>NvnEc0PIgK>tZ5Hs)iv6k;`2+)^CmToHCK$;0B_z1{n-~6&{5nB6q zl`X%9-ggp(-9V*DlD06*=&t*;RRKiy6<`-nI*9RLuoz-Pf->DUcq5@p>e}x|*pcuJD>@o^=Kq-> z_%kRgt6h5^p9#%Pt0yHleFgw@0p*E668mr_{;Fis7PG8UcB&9Z|PCi)EwnTuI^|YANfO|^x)MX37G*r@!|}*P5AuoSu@Q& zLK{Msl~>~su7&jBmR4Q~c)YwJlC&rtqTBvqBK;^Xlc)4#0fR0#YgFTqRPxEG{tVcE zK5!?_=4wQiX5y7Kymw9uTchO|MUlhQ8bQ2IyAPM3T+8zr)jxLgC~^6#_s(slp2MwS zs{A%J0{BN#qO}I}N+P8LEWTYpXlGM3JH&@^FLJC5iAu@UA?4??g_oYc$Oqqoc*zp7 zte5ns68I_T^P@(-c_)17CLk{rMXrnQ#aq=lxvk-Lt&1@5u6M<`KLuwy5$MCwy zdss*@9#2ewj(67Oevf>*{1?qMi+-~2RCujuVN41CKdRfta0ig51g{(vME}Hc*(C=~ zB(J+|R!W^G8-|)6H%ZHQ8Cxb3rpqj(0#H~QioKbg2Dsflg)QJ@dxY3|`B-URg$T1B zCzJ}H=SfQkk_tTl!R2l2pIf}t5*~@ zVB=HnDtXqHo7*2h&|`$HQo7asAdYj|(;mZu5V*-3JcrNZ5aLU`^zF3R;{8h)9I^ljZX%>PJ%I8}oRU zON`4yIZ8_9Htc16{eVTWXBN&`M#@4Tt-w=Ic!=2p;Tliqd?OQ&2BSjVIT#I(jKa&L zu){P?I!ug0z~xk=Wjf2%wh0LDPll`r%XRT(kGuVAG?f0blYIeFdcyLW;?d2m-K>PV z(v!{V;#X>%!rDob#mF3hw<7nwin!|i_d8-^&_syFA{NE6k;ba7|z z{5W}W-?w0)oNg3C> z)`&2g(DN^+)Gvy)quY(!q(kOvfxb_U9C>b@W}@ zxIn1~^dK9*Go8@8=jRQr3P^%M-=6+6(0&_{fdVAKVqM+>29Wip17>Bg(NK=KRglPO zuVAFp1P(0U3*vvf@;@SCAZaKYTU;6w_DJ$#z(3MQh!;Pco$jUl3jfuOS13cCp~%ys0zIj8H;L9N4V}*ToxfgNJfrffBXa8jR@qcGgoe{q*U6USs|mva zbGO#yaPlkJ?G;9w$V+Z}`KD|BqtI!wWM^iQPL+DFch#Lz+4C=QHCnhiE%iL%CmD|J z5rqb>m!PYdjv;P0XXa-9azSi7xEbPQem|=3$0&Iym20=!JidR!p2BXIGNxrWFmXaQ zJD^@*4HNa%vY&OdP~l~4TmHF(&; zY<^cn2}&TU(~+gQ+Z5rHuYqWyZlHLZkTEhxI zVQZ~#@lFem2_04v+Xs*VoR3h36GP7KkVkB5(?o=kboDau5W1<7UO)cD(LD!7?PLcT z*4mjT7Uy0~_4(aT`A@ByMDKZ7MP)o&uHPl9D6l-7UVL!M{M`+)0i=Tt4HRt+OMnX$5m0=38W&cD0M=~rwEhly4hMHn1hBl4m8%9sb<~! z<~wdWm|=IlMNd)6Bq@h(J6LnJ6sD>Kake-r=uds-IaUJtW70ph@@a02%BzP)Ezh^9 zo*mdjC+lPvo2%awlzgvlV;&%_n;C%eE;}uVh)VW{wAPvc4kE}2R%!`~ve38`D2#CC zW-1*k2o1!eTgJ>u{qO(Zub+3{B!I!g>1G;wq2^!(E()x#a&iqP$?GqO#unD-f1;Q} zNgEcrqf9!b6nxh${Nue{tFa0AZU`F9-kQgEK4W#p(Uu4t z6%h~d{_z_ZqkAD9W34LXS{w;)8FZ@snI9%a;wtBfI?iyzJ$LDUXwDyPpnmZ=D|yyQ z9MGGFlK@SWyBG(Xv*>d~%7m0;EsYQa)<8b{%|WyJQfqrrPas+H59GxpP`E|wfmm&d zuDOyuwPk&e^0N$|eYLx5?~SFm?|@h^=l)zv6Y*?AIXnKd%PCpu2-sBeJM{d4ABfY)Vl^733;Qxe&X{mPEb(;q*z)1pjM6J_yC zcH{4BRf@`?R2dTbRf@qgL(B%Scj zm%j2&XSAxe)bphnToCK@)4lbC%nB*P5bAj4!QXlL_^b?LSekH^TEs?SF0(m2!&}zi z6hbV%(wi>2*j2GAF(TEe%lI!qg!nx(PZSYfN^=SjCVABYmhiau^7PPj56*iiUk286 zsc|B*%;-;ciCsM?*3zLW;-+&f7DO$1fDRu$$-) z*bCj{<@B3WBv+{7R1xhu3-}Gu!sd-8c5W%bZm=8@pHlsnZdYH1tmFQ# z(h7_7)zbR1hYqrH?*n4!3-nz_D+!B7gubyl{9ZL%(p0YxDG|knd4zktpH54>-!Nv( z{T_FsO=-Y$!<#TS#vr%OxQpy&w83E$KkcxYNVj8E?wkRu@W0Tt8Qr#Pq9mGeeH%el zL?{wxX~kxSx8<_+zs=FRlnZFbq4F|0_9NbcMbq*ZVyMc$u@B6iM3+|rD>FSgkA4oh zW5?wAsFKoESJMFeuNd|>kZKpDVtR?5c7jgX)ncBhF!Nb+SR9=3W^*7(um9bU;G?xb*D_>N07Cys>*fK#tEhFGJM^9Od1HFdzjvfsMd=k$c4& z64BD>UtVX^MnU5_8cI(Fw-)@PDFkzEO&#I&W8LWc2x0R!La86VzJ3r3%YQGxL5oIgi-M?aGm;VZb!$Oi74&>((!h+T0&k=ec zfR)T+u-ez*b{ZqC#Gt@Rm$90Jvx((Fk3FGHfO|Z zfeNa0oog~6ZY3OSRMRK(FVKo+77)^J)UTmyfFNLJrgZ-(m{ z`Ppl)IZ)?)H7!*c9UUC!GvH+&l6nfU9~92Xi&aumMM@bn0Mv^9)D~vYn>?5I!pXH2 zZXuo3;<%mB&i{0z#7|@3Z4Z095FMeaT(p{?>{#Lj!!A~{5XD14T^USY+f6G(psNE@ zSMH`Qf^}I83DO7C4bW)4l=g@>gD*#`d{R1E5>#UKMRtg?W-TQvAxo!1>m(eS^ZbS2v8 zNQ!dkwVwk6egZ`H2Xd{Q0VAV2fuH)c5c~`>4pSSMiIaSeKfqV29nq`DxgCF4veC^= zqcBF&d^eEZbP58mcn~S|Px!Fjcwtdn$LJnYu6*c&_aUS|OCI`60*9K~aal_Iu*Bcb>ak~ynW9|-`8W_isB1q)n9 ze_#Av^2KCt)yUszUjJe2EzM`*k74RR%Qj&MrVD#NTCJG*fa0+(uk0Px#?cO1nohVO zgZ5Qd%WG97=VzO)7!2>y$XlT5RrBI@D8D=qT5Q9U$sFP1^Z-Ji+TZO__enJ)S6ix9 zc1-A~>>~>^pJfJmp*Hn`CkCF3ae@}wjPaH=BLi);`2uz4bSjCT`Jdc2-qlK%Vl=I< z9eBam7xYoBrUciNWKOhqKpY>s5VhEE2u|_Fb=?r?)84)-vub0saHlxF;^ICs$B2cS zB1QXDUKeh~n+l%9uH=Ihb{hW_D8q{m-jq<6-X7jvYSHPPa>QMLSR=ZXJ9dyP^}W$@aAz1Em7uHy=&8vH!f9_s}x8BBeQ1 zcZGOFauC$}M%N(eA$Xky;3av!G7|-b&X5A0wmTK+32M(XmjPg@{rr zR4`wjZUj6VxnlrQDefw@kERjG*+bB+BkD6lX^6?tO*wLf;;6d9{BoJ_a z*#=GHdp0sG6FD6WBVQY!1c$t~YvCei)ghcfXu8T%*R|{ovq{XVHd zTba5o{MPXb4Qd$o&(eq{Nur9liq%Rz!~+?r3R}-I{)phV${9$XBO?8RAI^QKWQRcP zP1o+T3;D-m;G^tzL9ket^e1!p1(M;g#JOY|kp^LL=&;j6-$-QWcoeC5)B$D%iT!yQ zH5=dkqRGoGD~PUy+GT2?ll&#%BB;(`IKSaGs4r20+Zzs)>_Ct5=EvG)-0a*A9`xb#XSwd!FW>(j)=*ElH1SAZCOD=eVl~f| ze@hbj3d6u&BNo|1YI3c@Hy2A0IA?E;jH7kW#gUy0jr6~(d*OY~fH+e8FnRy1) zmS6RVcB4&QtpF^{Ad|9s3N>|m{0skQbH6(SLMlw?@v4i0RN+F3ff#F+S@@ zP!&j5J+D&cp?ie^Q@n(#n#cd*~#2g z)Lh2m?|*0l2!JeI|LOV+7$dFLpwD@z7>Xjz*^1aF`t9Gpxp4lA)nH&f8XS^?*DNv8 zK?ZgVE^|PLq!|7((c|Um#^>;(#!5 zUMj)MeA7F6Thp^H!P3 zZu+7`0MoY^Sly`0pkU*)EoGuPe&pV)67;7^#4Nuimyirq{kMUZ&FgvKAH7CXg-B=T z^;f_tT~1(Ih_+XMeMN|wSE>e`Of)CeZo z`2={6iw~tIcCZ1O>tH3X)me+Wf#?!7_bv-??iq*&2<6JYRR$4k;70-)y@*R4>+=5f z)31>$s|(!m97BX?-Hp_pm^j4Mxq6puC`1&+?VcfKBx6|qf!>Fr@pK=kwN#)}#A=J+ zfb*ai@5a3xhqb>1#wG3B1^rk@5ahgQ7dgnL?dHdEQV&6X80Q0xelN@;bj!SfQ6v-_ z>6{9k+6T|+^HYbpwGcFd*i{jgJ*E>N@_~ zzBz34P_woRM*Wa!ue>THsS-;GQm2B%X*w~mjTYPA{b76>N$i5)X)XW&SS$k$N>BWW za%G3KrDd=gpeZv+GD?-g=M6S%&vDcgXl^R>P|-@7IkzdI(x*Q6x7|a1&jzS~>h(ms zH5Pk*XV+L+7cc8rUr@^K2NbfrY4S89iQgwSw}Lr0PTK_EmBs~bA$h;w2lg$zcpSiM zACML2%9ws*u+GO93tQI&G*3yzukT;+jb()+=) zi7n{$T;~EIo4O2NdfTtqD{)f?L7+Y#KTZFl-u^B$|5AVt;zG1Pg*A~khLz?u=?eY`zi<8@JzS|Mxp{>}IKpv{ZFs18=>rh@vq$-s79lY8vuPCr7EJth#%6@sjV(T{BElQbNovu?+R_icNuU}Tf; z9{Weg{rADVh3urCD|PpFbpiOM0V*E8Pz<|eZ2?LaPtW$jhkJA*D7ZYJuIF+BYL*pu zV7b=;rivt@6Yy9i>OB&E)vCf6$@bBH)xQb>BF&&$X5Rj27Bz&tf%gFdL|OC)pzUI5 zjp1X?_8yHuqkpWis#rWIvEIaR!b8q`@s6tBXkjB-vyrWOh%>7VRp$g__wmBsNT~vg zG?)7L{BXUfnDGqLOGc%sIF(}6CU`7f@3|b@ABGvb_WCVEb~~;E9j2wK0fI~s?G2pT z5MjUU#=V-PYBqr3Xsiz9cQcoptis*7=T^=bKBu!|+gTM|K+bE^z?%hq)z$*PpOb>x z&lKgbN*TDa3mYw$Ek2y#A-Exj2K`2>>IfMF{UK_!G(4=sy2n(5s=*C-#hf~K#%uq7 z36AE^C474P@cJ|0AcZ|_$(ucgQDa|Vd#yEO-Ijep-$Y$mRpua`5GzzQApzXjqXXEbwBCTz#?Kt62C4Zr!+aF(N;Lg^toK@ay6)lo&H7CLO z{vQI?r`%Dp?b=G~672`x0+f%|8|d#Hi*Lf7TSbSV%^!_DU(}Uk;aKtkWS8$7l#5A_V9v-ru0gbZxqk2 zuL8W)m?IwMk86a&M}Loa_>A+61ip$)pZ%&#UFF^iVFT^Z4cw0=IXK=EKdCwG!{(^yBXYHmaXjHKH?dI)J91hV_FB zy>ovw#}epT>()_=t-+?q=h28&nWk=GX1K0pnRIQan|%&Gfs##R9khzE3R^SyRRTG;j7zKS{5AfE@xr0l%j! zu&SzMV;xF(%vsNJeHwNEp}wNHN-U)b-W7C&3d{~3YC9@SW032sh%F~e%HRrxfVOeO z6<&2#)w?>oes1k5Es7k_i%P`LNN%_gmI7vX2wG|n^o%q_YDe7Vd@Wb+`HUeDvVmHO z9h8ZA2tOeXwW87-l>nyN3I*e93M9JQ)xocuvZS}ueo;Cmzr?g1!!=_}fRp6ScE}Fw ztvcGSL1jF2msQU{mvGN(y$K^XqN@21SJ|ZF9s<&Z7p5$O-CEgqfh-ScYChqC(i@CC zar*h(T+mSx^icMy?=}~eHZEc}d|Y~F!FiID-Nt_67#u*sVM^rZuovmvz|Qe)<1FWHnj{Gp1JAtoO5nL-3Cd-unXiZv0(exGQT;V*lujHMBI+8rtPzKu2gIMOur+ z-qjVXOCdmIV8-r@e#r?Owpezma&R z_lxGXV;`cp6CGp!kS4jpW5F^Yd36`!%HFbyVvrplQrq9Cv@}M7bbVTUk&82i!`Rv@ z@EWUOe+$qlZ0EjHw-$uC4Oqgh8#2V}bw4)RR-9BG2+nkU!$w2!C8XgI!$Uw~Wh!jQ zyaT8WY-Zd8goVGP(WO}0L!%i+LO>(W)jHdWSnsg=Q%A-Cm0aHsiGYSvp|oGMcpjg13eQLLZ`xn?FL@Ao&D_nkR^NGTxc-Ylq43^Un z|8>JKS|%V>E~w+~ppOJE0A0vE*JEnhu9?QvvkmI`9nKDr6-7tA_~n?TtZP7`f|@mtR&zS3Gf@8 zC2cj%xnP3q&u*mzl6aP)C+?1P5to_Y>$QOgCfX2_iW0}vf~9U|aLr<9T(4K@H`xW& z_j9un!X*x-5ai%MY3kFH~d8I>rDrleqD!!2%m-RTf#Ww3P@qi9>= zE(wXRjmh8tL7|W^D?#+GCP#h*bh+n8?b09ghCEAaQ0Jl#jnXIv+pH|Ro@o}Bsc@(B z5jnERAHlP5oNcc)FZH6?#?v}4Zf=}5H~DuS&PCVFjwEi<6o>XUTcDoo-~`@=uddh2{9%}SzV8ga>+ z0i>h@F3%{`hz;zRPc>F@kd2u)`#{sL&Hh?h#AFD@QA8Rv;guG88C*O~2(B(eGH5@2 zofU2DM1m~a#0!v8CjlaAWno$(Ip#kzFICD^f%G;+e$Ft=6JtrZLX|phOp6O{w|Qzt zPIUj`=SdxdG^JSdw;Sn~{x~yQkU=V{)C{!e0w8l)gy$c{2AM=WUU};_QHy1nfu%xZ z?L2dB9I~QC+Y+xj;#xaUz~p{9bp%YBr|0iSEMs0a(LKoFP8{<2!s`@3Suaxoo+NGiQ-k zx^zUpSz2`gc}Wzoq>?%BiTgeR&>Pe0^2Yc9<7luZcrAC`T>hVGdg6tm&>`1|#AZ;E3ZjeWP^>KLh#(H^CzKV=ApCv(9EhWQM2SAh&(-1Tlfou8!&O=Z=rg53b5y!M^F`Wn?-vM# z5@v?(2)=zPJ#F?s${&Fd`eH26+5p$s_ZsuG@;s!bPq*?lb_G{#@5C!=BCsq%RpS)v z-y{}b5$^P8@Ivi%RiX=rDhZ7>7_?bsu{tMxX$ramvU7aS_ZvQYEQPfxtu9aIJn`ij z?;1s#Fm^)qS_AHY6PWuU;`NU*v&cPOCfE#bOWpsnyApjmGW4s;)F*yEwTt)_)N#;s zI56=B|3#*Tom3}L&AflHythh~R`h7VP3(pi#3rG99h-+zXfvHHkXfPadA=bYSe`}@ za$xx5?KaX0zIRYe|})Wo{Z9y-2H6K43kEvoM2-Xw?`S)42Sv! z=-Oe$bp!)%_515>@W$BtCu2R`I;F!K(z?)lrS**jcEyEelHv@-=}cqpNPW@iuHF?Y zDm%en6K6-z_Q(MkP1j7RzZ4GU1+&ptF+YKXT_?RK_CpHh7Nya;SwsNVf9GLq96Inz zxXoY|T5(3+(hZZ2&2u)<5u3PfkZdE#kVt1k7Ehw2qPxQL3@OEKYnHry%YuC6!RZF= z(RrImFa~gp7uS2eUu#c4%Reiz#1NPtOq8{ExG;CT3EX}vUGT*Uf5@7 zF%)gCu663>Xxh!GFvA!WQys9ffbb4L(b~-kZl};$cnj@T^}V1Nyvhe2M`uY9VH?^Z zj!#Kz8Fy`fyddpVUxXwUrS(~rHR7KJAm~<475?60y=gVF(<60L7m@r^m@6M^W39bw zVQu>@Vl|o3?4l!fV{^GWF(KN%E3XtG5zoN*mv%)|%;9WDUoW0#RNbjHa^a<-VrE8~ zM_#i=Z^YD4Q(yZID}04CWK$P)^PfV^X8#9$pSmFUH9dNIUA0w7kQbT{AfxQzJTNgb zCcHL+AMn!63-s`u`o$COIIL+=;HbmIbp=I3KOUMKW$@qpISVEEmozw|e=kGFvW)lo z`+b~$Dc(-(^+oX^O1M^)Igt%x#7Tq*uhSM$SI26})H9DSpxCzZx`G|BHb z1eCqX_gm8u%H`+#qq&tA&rY;tCmh!(EtM$kAWh`_OjTEYmfN>Mkuf{{ubI|*s3F~v z@w=5>8bV)mR=E!EtOgZ?L$Fzk%bwH?fi8%qiU>pZz2$g>&B{KHYKSM+n5i6ey2`Qc zl?n@DCSRNrjfv^!n7YK~1!{1`PX7vnXPbaxu*FPfjY0o0^k9($r>UI699MZ5mCNc*z83GR~JHQO$dR4Kr62xkyjA z2TlLLIXGf-gFj(%m?RJGFym@P2cPRb` zx7e9D7%Ovi08yl?p#E_C0tEdi3N_nBv85{@Xqur`uKBmw`VCrBF0I!sg5(ulrn@n2 zJmx^U$AEnmit{_iJ|+8fDXVnyeuR;4l6B|W&xO5blNh@PZXZa%AO~TUWFN(>nd9X) z+awPHSN+T$xyXP!m9@ZQ1%HzEi?6Bw9L2T7^wNVcpq2I=52|zuQm_!RK6(FR^eF}a zZadZKv!hq3p38{K)g!bbF1JVEysp@TCe3T9j;(g{*gzfOp0Ut z%|;R$Ppn|)@^genYh7lEwhKhyiIkB^E4M{WbJ!3XH^gT2(?~034s;l%)K(8XmmM_DjLz)mjcC!l+^`wtx% z{a-DVfya~V!@U`e<^>G2>T^=fp7gotAtra;rHRzQ)u!H4-Z2Zzz_&Mf*HlRx`7(L&>su^! z6>?2QEE4=mv?+cGUM|I8AASsBCZG*nR&gf;B0pX-u3r(~e93E z_IcO51e$Iefj*T?$Q_{u)4(E^)6YFean&k_I~#zhVNnwYyRl!^$iZG7+9UPlgI-bHd*mVhBjIja#KFQF8=8X8Y zSn5%K1{(LVK%BdsLZ`ZKaO7xjY+_uQd&rwHNL=Y}18}#a%M42BNXF;hEbIW zw`I6d*3n@!V!U-iNAE^8GZ?kHlu`(K4F4x_WcTJM$5_%+=NH{@>-$M~1e`RAS6zTp z;(DeU=N0;~tIT}ff;8PlBXs_CU2fuTJ}0vUiwRY+)r${_VY5;g#gcO#zJMsIUH79s z8-obTU;()2ire;@CNazZF4jPT-aWQ<(G&w7eLs~ELDeple~e;G9vHpdSk!?zDOX`| z^s6O!;><$4_SmCTUkw-lbM*0M7Nd+P_v*28qh+`g9?1oCmL!YZj2NVG2?bZtc&&>~ zb@02Gw-;ttTaM_PK{$b9F4TH@$UG%H$QFNY(f3&7{dB}PCnRMQWy>-y4G7GEP7LeS z21!$3f`T|>Oj#hS|3z6B`h_k38*{~tsv1sN6?+!~ZkJ2Y<@P@RWSzhSo$hPPWC+4z zxB;<4JB9&0M7y|4N!FS&U>a?524aih2b^+@$ur3QBjx49RgkugP_jH z!onbt^(L`sJ~`98B|0`Q*2A%lVtidyy8|BZ(m+XXe1O`eWEXHPMpyfk zf)bi*^l(DGh#ZbeqeR&k?VpgrvhdKZCx4|;ba;hLWFuTGyr~7X zRw5%l<1(3(K1>}c%o@n@KZ<#hb}k%D@PFPKPgEh2!PJDLve=-txlGX z%Ij{L*^P99l55-N0c`g`ra2$t;deWXdVxjHfthuKRalaPWy_u`4Li#XFCyltl_s@W z4DZHE@!?#;AdbYMvW_OJC>Ivi1>ZQ4>$m4t$?9<4JH)k?sn(EkB>D<5e&t=*{44X@ zi*=C68)Y0yD4xZ7DdrnRi}DkF|EffB*Kyh_I>kk!Xs&A*D+_@TzIH2Uym$@jE1D$2>FXSb7c6e@_o$a#rXF zLPeJ?tV;_UXi3w^erb>zfqF$9u?;JV!;xb0JrE<{)RhwB%WS$g$-b)X%ZVP_h)YXN z=Cu+Je`0a#`)Ph0OsMs-wC#0T0Dpt(;KJ25P#-DlZeOYp)%nH}pAx#4e6i23pl4{g zEX6khjoGqJ0^@7iU_iQW@l-ucEUoZuL2i4b--~TYwl`i9XKjA0m-99h zR_~K!D^$`>gK_CvKNY(gO+}3|T9;Il+&#@jGp4n~Ey5OJ*TCBU$)*R^_kt1W><<=% z#beXLFqya(KX=l}m#$FqP8d!-emGnRd+=xCrYYX6As*TV!czL-$iDa-AYVfQ_Lk-i zQ{)wg^GJt1K*=%gP|+>bDtl@6xABqq&Ii|sah?B{{x{B0yEYU!0#UWiJ{=(;uu|KW zjoO`LZzBCU*A_HUguIlSGzN5U4qP4k5Z~WGg*&ut#Ymtv!L+Ka=;Q4}ykQ3~w?YzJ z2kMl`6bRalFkX)fZpw*`ghOD1?8yzw2%?XL{pgz%Xs}S*DlQlAaa9F4Kk92ctj*?v zAD{C}$4{85_AaGfU4AzktXC>yT@Q)Fj(nKMXt)lNOn6`-x7k{1bO(iliEOh>9P()9 zTb*f;)U7|uVuBhB`G>qJF2tGyp%bsA?C%DqRQd=V;@fhkH>0c4pioEemtyV5~W4 z8(ylQEH-4T^QcjIiQD&^4dAOF-@hT{SE2DGMCOp&z1iA!()geWl4Qd6e^mUl*kCvq zc;)4C8>@WyKZuyh9ra4?)xhnPxCv)WEwm=|beI9y%B!htvEg_#onj8gpO8on0WTDX zd~wPu@S!%{SL-0>HJLQwiVbZ6m3lN)enkajo76f>M`vLTj1~bq81Bndi3Rzfa_SB1 znniRY$lCAb?$;edCrrx3o*-e{tL1L(Fh0FZi*jx3*CneVBH@4Kl{bFnvOqU+`zv4; zC9W`CFX2ak&4} zA(thc0Rj_uvi2%3d#@thDod+i9xEfo5CsLx4{O99k%hZ5 zr;VW7j#?yxW&`r+a9e7E{Y{3in4Ap)Ri4g`q#s66f=;!QV0rU$shLKdh9{o}a?wJI z4B>bpO!#4#UoM35r_dO_ejS$mZ&(`^;=;Ru-xGkyW1xcZh@gG$pn7G=)MBy} zmKeq*heiZ1Nd4TKmp8I%l`nrN__Zg{s8%mgp`%($!Qo2=FyZveJ$OwkDj;fkM z1^S!wsl;@$=_bb$H6ig4%CF-5ihP?%|FTx7Gjsz)w>~~))=EP2y5I+4Sb7lu`^`H8 zM>Y8bvy5t`>*eUK;cc#z5YjhEk+VNM-9vZXY0>@I+XdmMfsC)~!Tv^7Be)`QggXfm z!mX=>=kyb+LfU$KUUdzs#=8)ii)hTP1jDp3u4Cc(h1-r$!EGYGD)1r`Pxk{lxoiX-7(LPwS+uw}| zDwDmcb=)#!76Fja2n5NHjfT(oUARC8deN`57bBB0hh$f?{NxX2;Pe3hKLEgN4uFIP z6Nmj#bL(+YbbtiR>Z#-}fzho;x*Pseg5dhq-mKeEqKcz&mO+Ry7NdGlowyY7ewUI;x{}!C1`9 zah!`v>5PWVX~A^0@EqTTXS^Z05m*$F4gQ+@0_&0nw68M1v)#p ziB-1WcDJ0nV|IR9q|zw@KT}uw4A`sNx+Wa&jm3RTK>fJRf_c$++@Y-7nJ-D9%Pc=H zI!>VYgY2tkN=Bv7ZfFs{SHMwC>%5e}tK4?iwx?0>^kp&0BhUPRI<*FD(zETr{7FN-?e_HI+n4bUqu)O_d*5>NSbeR9SlHL~-FflNbetSz z0ahNNspTxB;!cRlazSyf#5(x}HTfRM=KRR8j7n98XDFxaF39ND%%@c!7HuD|kD9{Y zHKjBu@m!S%X$i>-aB-S{YtdnS>bp)QxBj@?^8d!**gi&bLlZI9z15yQJA%THBnjFE z%}&icu^CbU1C$I@7l^xdVF&&%H{%Y^{-u>JqrA>1GaWIw1k3yk52ffxJo?cmN)z2~Ku9D1e zh`a!%lM{B>%iw820eIvhxevoC@uh+kqFU~RfItCMxvyWRqN~^ zy&d`pg7B}!HrDx>?u(?Uqns{^ z>RFJ277f&-1KOb+UDQSp8ga2bVy08pNM> z$~N7NuJ8ll>e854h*z%+d(YL`p8nnL+yP~o`Ac%<+E6ZOJDqs#=}F> z2P-lI(|lV{iH+(NN|p5waIV!sAmnHc(;?R@cV#Iq* zA;cBV($H2i%d$Jp<;jni9yVVvAqIt;KXx;O0SsnI zZ|TIH4W&>-5R;vV>K;bHIc*NZ0CxMXh2!2UO+NG!6Xt$8z+FDig;i>C65jjIeLWxPSA<>!C(C^=la|mcxf!as_IWltr{M+0!wE%_SE_!kXQH#6*X2!cWQsHt_+6<6k758S6so@$ z@)Q8uV^7Y`O*V3Go-6gX)XJ#{KX#Bk9c?C+yESk9|70$ki zK~3-*!&!t>kE6g$@Rh;8)vflv3vatQ^yEr#!Kl?V)`yV$7>7BFldh`t`tPsn=&M4>yaBTYGd2!Gt z;n=>ZjuoCVzgiu&P@kIGv(j3-PS#V>BTbBrOr*D+n6s!qqUGfb`}nxR5S11Y$Zc;d z^@5FrAOAI8tUZfh>|eaeAKnhH8H;*rmxr?zH*iiml%cZ9-&U<({IO1ydr-F$Yo~nh zS8MK^IL^H}zch|H$oCNp28~m*v^5v=s_kPx+G}hw`(9WSRyykv_GS?nMuzN}tM2X@ zDg-pzDDP8=Ueloi2X3EOs+PW5upjoBIknMrg4Dl(D_`)0TgYt1jH&}zP8>HB(Sl1t zi$k(p$I;u%cbFIJk^4paO=@7^Xo{zxUTsfF6JhWmFmV!L?M>HxnDw*~GpB&m+2fw#aOr&KlcqX*8 z9ECb3;34(5#HH9rR`CQ#7C)ZO9XGeT zOIYY6ErozZZxH3a-?w@ld0(=0#Zn-Su8)VkL8?f(#t_7pK_oJVNY!k^;p zCOx$1Fx6V6e0a>t?@1=+PukxU!1Uw}xVt5U$J?i$(gvf&MX`p<1r5S?!`2>0mW>3a zfzs$mFV5;R!8UyWCL4rJ#Ij`lpa61)7tpkox+RwSospVXBuMRKODhY$4Z+o8-1-ig zJMe??;9`pu+rbc3N|RXRW7hhD!tP+%rmp)r%r-hvW^cvCx}}kGo#=@KKS=UvoG;ZQ zaf*`OQyiOMbEsB;sXy2cvdu64YG_nKb%f)iQAYn27n=rHM|%8*s4-Ih-ld2`{X8%! z^F}4~M1&RZ;0VG_0Fl`vNU6kce~IPH8C@pjs;}Zm2#doT1y^u%83wYKEB^_Kw>%^z z7V+Y~*^nfIkFt9`d3*MEm!7iO!F`|h*~m@J zAm05*kDKBM7!~GJiJ6Ve!p8*UkTIBT0+EAB75mm+pL5{X_y(IhUz9hYfZ~&HiTg$Q z5@b!Q)$ct5@9XWbK^FW$pS`d2MwLRstgV97IGVI7wuh)IL~WUZ2S5~Wr;PN)n1__C z7C`I8YEF*piWUN;&Euw04AoF`=* zpmv;79SRxu15Yt2w;xmyaSUOf*x;f}6aWEeEa{px*4K~z#ATt%QS?l;gqc@mKV?AV z?}$D?qiWuq#Kao=!TSkl1LD`{%qk+bF3R-hrSa4P19D$)h$xj#>~M?50kVZ=+AvylU@-cae|1Y!&uNyMrs&~czgT4_81~g z4YgyIFR2&MP?Xv?q^6S<-qZ)QdW0?t(Nu_JKo!=Ex3`ZLtS5u`aQ!HKgkcJq5n`#z zLLL?J&r|A?ytnvdw944Dmj>-js99ZSufwek*srfXdt)7z9ipdTw2S2##rb{wyJvqE zeCfPZ8RH`c0b4$%Cj2LH+qc8-z^+=9r$d?nt5i=Pr1q(?8}&h28t$%yI`ivv;Nb3^ zrS;52`EWqo$E{aID`#DIO7oR6q}cJHfv)M&I7*6&8j&57bF9u{`_RMWf)kJ~Niol5 zMbFzdFoHJ_PbC796+J`RvpnLHiG06c8)CrQ`v!W$M6eCq8!V1 z4hbSiLatf5yq79|p$!eA*S%@BkekvhP}7wZzN*j4-D z(v9oi;KspECfrs>1)>%NitOFwy>?9s>h=g~55~XR-1#eJIvY2gi1OM*!^qlZNzk{e z^7Qn5=juM{sy%o;k}X@+Eb5Z< zOhi;=fTNsNG6npaeN}A)7EE4hd`BK;GGt5xvCBdjK>fUN{silKoI~q$BT!OpTX*Xc zhodA(9b!^-)O*=RZy;oJMCd>wN~Wy`j*o~L!K4f(*})54Nw`?nwIO)!0I#|{p@j)G z+)$MTMVm7zD%3>8Q{M4a`ZA{Z$8!Tps>}@^cAD}z<|BpitUd!=eDVJMl0A>Rd)sLw zXr>sBjSg-6CtV@Abzd}J#A65xD<2LsK;AF6j#Iuew*t#7R+6MPw=HGeMq@jYZ+9f7 zMLKC$vB8_RyuV|qbvZjkuAGaYW!~#!?DR9${KuprRwfk;O9yWaRzFt!UTQT}utgpE z;XfEYQZk8br{EruAMl|U+qC-W+oC!`0@T31*c1rH?9M2~F+`Jp+(yReIv*q)-3My= z@edAHn7e|YmuX^1c02|+JJc$Yz*1h=FqE>7rk8(70fpM6VFGbu?XX->mCdh-cc>uJ}Og=HtS?f5w-T>By64f>pptanN-AJ#r}jy*Ow@1 ze_25{7@0;H0o$wmNue=9FzO?4tuQ@T93Xy6i|lnG^@v@;YgXLv z;}0}OU`@~oc|+_}f$gbLgEowxdWtq->2`1IGoOGNa@rQA=-Jry(3hRhAzgrC@E}%b z!-=-scQmTC1(iC6VGjt?=<7mWq}Kp1vAg;#X=mvf8%!6J^(YLk886vLI(GBFq5>J6 zV|_gYZ0aV%WK3FR%2`I4eYBndQ?f-^!ChbbV{@am-3qsBfzYISKS(|S(;_9$FkF^w zAZi-w2aGPKf=R!V@KXIwlAjAj+AWWFyfRk%tuT{TLvXAqWfck4BF$}yZUIB0$k<{< z4>{nU^s7Dk8t7YwF}(%832B2s1;?soqh1}pArjbjXttPT**@N7oSIp{2k29fkqHk# z2`-~#>s-z;-e1Ot3?*s?dOcdEOAuN|8}M|Vfb*__)bHOX?1Z)J>;7S)Tx}C=VjmEKcXnhW0@9Ut|8b+RlbWt zT&W(^4?}pUsf>beL>G)_Nq`FQLCxUtvFw0bgyd3i>PITKTLB1<#QWROx~`8jmstYu z3xEwV1@&Li0%e)9CG4Z<;J>Q?0wj3l>ceD*VT!G18O9-nD0*ZWbwXK>N~j zI2mqY#F6(`p+^_=goS3>K1!T1o^APy0V{%H;usR$7Enm6F4k-0t^o(27cz+5?h>|z zaogkl9#tWh7lmwPe9Yq+7F0-E`0p$8ep*?fOLZbua4Ler!IVM5#4MQxFOoEiw%J@@ za$=_1T2l&95JKu3_*b;nZ&v7ET;2LjAKnvdIL(fWTVK_{o`;vZi%YPR=QGx_bZq0c= zU4~ifqOqdbDuP3Do18CN+&AH99Z(t{q0bgitf_8v*IHkO?j+HoXh2)OmiS8gI|=aA zA?!AyzOezaM}sdFEx1#}x-WvCp~QVocESi9ykW`nu$xLt-oP#WOzo`E2Xi$__CdL{ z7MuI2A`}L*O~+M(4k98_v+3ax?LBqv*`5G8TOkpzs^Lk|QPwpIbm!y!nG6(z6QcQ< z){(H@5+6s+qcuE`y(lqF;dh@Z=C0GEZkI`oQ{JBJ&^{1dvh%Q}<~`b|84B0yW#_w> zx{4h2uvm1!!zPYMiUE1Zb7EE-8AE&y+?>UiLi+Qgrr!HG|(> z?sU*TpP%Sv4H!TcvbeFTAlUPoSY-&k(D{Rf4BRdZ`m$xtB1l9|*sHi6?a#(YkBTVb zI1JoF+dgEG_6{k{llE^#|71}-#HA6tr`m)d%KXss8+?Qs*sM3?Wn>tQzC>d}*1Cgx zeLtyDjZMDw&>q0?&?JQOS^OPVW2nrZ)p7v~76b-+9$F-*N?#EAb>$Oz_a6m#BY`(n zmOW=I?kUoZxc_w;+ORMf}=i2w3Njq2DmrNgjL@ZKC_HCYo`H}Q(Apc(&etOc_;OQ(t=pnSO4qW`Y_cwq6sCm(WsuL%GnJPPf2+7G$ z?i4m@f8K^?%8JWsqv%T( z-9l!hj4f0ZKOlQQqi(>pe=xxLw7L&dZ%5iI6+8GKjviiA-Ljuan!ZcUC(wG zxkl$c19x)yb18jDFu+U1;p5Q<*xf2r#XY^^fU}LBGsV;t1)mP>A*IO zddc(QN3=H7UvkfaAxyI*VSnJ8)Hc)f2;*}P?B+an?-_|y#al3lVsk91X^8lH0{Zh8 z-1c$!>dMcKc!rM%Opkuj!vz6`7}v9{kslxcqvt|2={|+T)8rV{=UdST#!%ch*hY0) z-aJV#(LtlbHMEszdL47A+=#FZkH|iIr^FEQ7|xDz*RkV>j8=`_=gPGbM^(i&p+aI( z!pD~+3`}Km-{0C*F~fg1CVRrp_2I;P&W3J*DYSfl;G~#ZhGhL=SbekkNMyLF{eqO(=V>%m=L5u5e>#EDA91_= zWckhBxZ{VhFem_mesZXHgyocup^L-v!z2t6;|g~nvA>)0Mi7_TA?gTh7WlF{Ah7}U zaVaTRUd2`47v6I!X|eAenmL#bLEHr-zmEik*Qn(N8(yC!%SAd~!UKV}{x&q}ws4r4fsQo88&n`L%?dtuiR-z!3o z-;FN@IQn3D#gYIAdIownfzX>l^H1pzc9dh}EeFdk%}gD7ejJot0^t3pjr>RjsOPUG z9#D;O8hqfha&6}6Z%1f~Xr&8Y4>5xV0wm%X{-h8auIs(XSW8T3Vy@zm&fF%y5Yb9+ z+f${cguTQ^%`X;!%0R2I_X5LHI;bbnR#r-3-|=e%XKu{`A#SF3|5U(JvYCA82bJ)i znV1ThIaev&fQ$clZ<@)issOp#<zbE53(mfynJ9q)C`LYE z0w9h7o(X>9Zqd~*P3gp956neGkOKc5m&Kp!zDmU)m13tF*dKYIkj$~^3%*Wrl&%41A+UsOVnzOIWKggfQb&u?r)~*oBWfL# zjvwEEtKN0cmX9)o@DZ&Pf5t4D#}kWVyXdF^)eI*g%gl^sCWZt=!7efzJh)6jlg}7lQwD(< zPWw(P5cK57xpY;sGp}|AlqU~ZDBs_5Eq!RJDl&5CLR#lp;e4-t#9hEU1^*pHxq%a{ zDV#PaHXsMr#)A2RamK_xQ;X8h5^Wc`=)5iv_P>LWc%(^khO7836 z2rtXucbXO27MderQmcm5VxJWv*1&$yIVPr<9gjM3z|Qua;2C?{p!-+J&q%9Px@$Ru z($!-$0)vnhhppde&mMn8F@rf({!R7TdDxVx1^*5;9*}MjqKg4s>4q?~(Fy-Y@DZH5 zw)#(bDZL1>1P5QRQ(#NHF3cqA3pfen$UZtwY8gEIMr5|^0Mz@~`(+*~&4fHQ7mx6T zz){u(^bzdoB$R#)M@UTiEZfwxZ=X(pxlawKo()OV!nyk?hT{erVKm+$U65L>S~pic zNy78Mn6xe7$$NlmXKYN{Z5A*0dv+I*6f^f(*Di1VU55%HTez?wi|YzzKTdP zVlR&(Ma^8T+q+%`Ms&<~>fbjQBgzDevC# zIV+2MAx_pMwN_4>6L$S5Ha#ej5=5NZufehse{Zz7N| zJw^oWG**p{g-?@VI*BzDG(3?I#OM|5Qm?o!Ige;KRU(oiO!5$PJgD*y2f$CP$@tB}E9j%vupOa{w*?1P87ySN=dj*C zdi*>*suwfg)l^V(>n80+3khb456G7Gr=8ir=|~v;IW435F}~tr+`7ueRpOlC0E~?} zjV0fYo=xLj*=aius7(G= z{Ra|OlL|dpzVeEW6|e{jEoOW;??+7s8nH?upM}rH&R`7Q_tXYj0Q<_MT;2z|bGQ4f zCeR9$0sAsI<>Pl;c|8%rxwrmegyHt1YJ+RJ z5(t@u{@Q1*Bc*!RC}|e5Q7dJ0w-$>TS^D zlno`F`)>Rfi;y~TTRBC@0Yhw_qX@eGCc5#Id#d+kv{;WRDLt@3^a)%tgBv)ghr~PqcUUf!CDXl#*!R(W7VsXq+7H$#CJUqsF$CTc=8+16=?=9zZOSE942G7=J`^pHu+w1cMi1 zIn{>u8J~O^6U(ZPqLydpl~hF*D+aNW3_msI!(M^OvXQt#gdlJ zDLT-wC5_Phms6Zd+_$m~6>RB5+R{uZF9=TclFGG#fAKynHJaoA_}jr&`_|-wbGya$=(i^P3tAQI0=0>ekIxtaxWwQ zjv$4zbUL)(An9$^4Dqr$BOdmo^s1CuAwIWLfOn2jxLr-6Pd!WpI@jGDes$OTl(YNM z&9i0Z;TCpXk^QK3GJXfqxX}g=sEz8fgjP z=jlKO4jP0wziJPp_E)ZCE1n{*)ZtC{n_5!x7-?%Mqb=j4$7RIgSX+ef4=S@O~(`ZqxdGuUha9? z%zNFZ^8ac?>e?n^j1K3ZB*+JJ8MS55w;_r&BC996UU1|_o2ui$96Gzd5*S^uAY&KT zJ~y#ym;M?!CS_FLly{eaxWo36x_8L(R-!13--B@8$tTavuT-mvjj-PXR?|l$whzn=k{K_{2T3 zj1#mqY!1MM6LXI;RUOnE1#6RPPc~Ibsbtew+m>iH$vw-R3DUDdQt?vbHT=5fK=uIx z?8ai+tr~_DTuiBsNL|l#>Ji<@_nfhCV?_fwBKRzWm#@b`bwle0%>mD6eHq$(Z%@07 z99t*XoL$gImCxV)3>e>4o6v=MAZ-7`wfhJxIn!OINE^GBNk$VO=L5dLs-htW6HbcM z@6Om+F~H-9MMby^{6MDv2F_=A^vq$FE5+dRfv>;~yzM;%JnPUx8hrto6(i88BO^_r z9`pgpCB5*>=qGW*dNL3YfC;UyJ2FWUAN+zTc=ZdmKjUCHbo&k{)1`1ke zY$dKx|A&+{-HX`(udAin&5q$4H})9wzxKq2CxDgWsQm&(M%0dPbaiyb%d}X9 zJ2z!4>vAyArw`cKAi`LjUxq*MhP{U!fyXYi(RmILMB)B!^sQc0mj9v{c_Ty;tQBJL z&@o~k4&^HnnL;x1$HofE1t<(Kg#CKmEsi?U79)a{Wv!UQe{5W~n*ss^EqE~!5`^g7 ztkEF4Fo}=?*>=6Agi8B7S;T~XVOM3?+WHFJ4f2L zd%6*b!G@o^4=uzY?AW{#ltoxwJ;M4?%ngqmlD6ilALtNFE8z037*I()gQ-T=D_Xvd z1%apgPETXIY01R)?C=+V3#_j%g@o>3v5@T}u}WDdF1~{uR8|mSm_E13*PL;nlcSuT zeRZ~yV(%dt6=_n1h@Ops;ZJFVG6Wi<7@f;nBvO#6ZrSGB`q`>*?N^}6J#P=r7L_XF9fqI~+mJuG1aop<#+?VH`j!!F&>&MR(zEGD$RYpdvuiw( zD#{lx)+|<@Cn54C1IFn2L#>W*{n@s5Y)_5Hz~dn9#BclFORvn+ClQ+PTw)tm{^Ve<>sp%pNH5I4 zRenK&!Q|ll(IPq^Ov+h)7SOmK)8Z#?gHw)qZ%q}&ua8}xWEyJKHoL+Dh!-?bHSCxP zi?q(hN&iCbuA-2wm{GkK>%VrNzijZVh`#n#0bBSxesc|!{a71+y%k5fkhmo&MJwCJ z!N($_jk%mN`dZPme|X*vS<#(^!hSAREUrh-Z{bJyK*e_QM7Eo^BN)UjM*t5|`Oy>A zC?ruaYE%qq9FB)ZqVChWv)~#mC7G>TbG}SRc+tmgDr?#mCG^sL7R>Jj3Qe!z!JaW_ z1e!#1b92gJA6V=91~&JRfw>uMyq=`uoSyeSLG?ZqL<%LZ=_D2*N-5kM=iJIq5>{&A zG}9Dk5CG+~6-{WQlTWX{l(qR+H0EBU1A zEObs#i9=RSmdvMz8rS%f`Am462n1LqRAioe1Mj%S(V;+SSLqIRZj!448S$vZb#Qj_ z9kRdgbuCkzs!puP%k`eI$c1CBMDrUWo9)tS`5gCVa-?3|y;*JUhVwo5PYnBz1Ob$d z=#IMb=BSBVTz+R`hX3S-^Z-k<$JBqJKnko~O~fJX4*qY@8*q|6i6IE|D2CmYR*Hj5*dc|d_^ zk9p1n9>iBK4#nep#he^@lB6|;FMud+p%(0*=Qbv;)CJ{l*1u{r6O;(#ODX2D>>RO;3k5jket|%Gz*J<gqdHmia2hN?md=HkRGa9-bYVjTfIZ}9l-=#bc6 z=Y05}UiHupp=~518#;^_LZ7E2hKE4Y?9C9??!k*)Xlllalv&yHL*T83DcQMRiRsOV zG+AvQX>k-(2kj3W%_k%?`hB18Cs7f|6HTnC0Y10<%B!&DNdv&kYG6ldAYQb*ar7bb zgNlI|OQtXI|6s|zc_qn~yBCg)gDOiYk~Q1C;!kA2BD=`+ja{!}AMsoazSWhn%z4d=Yz zRy7r_D!ZRG)$t(S^A0*Vtty!^Skdv^ihxmQ8P0z8IRbo4wgvY(7?fU%P#JGj@5P8! zWeL1Z23>%go5^jIpgd)dd31Uk5KAC>URQXEnDLF)S-*%Jj-r1$DI_7V8+pUijpgcS zmzELZUB5=0hplH3Jiwx^7$6|)w538^#DTp{vq7$rkhD);4ZY<6*NDDXsUw|8HZ z++u{S`DMQb-LMZ88YlS6c=xllU>R`uVJ-D;3UTw0JVgHGfLzsMnbnmI@8vL!Fu(-X z@_VOu6;L*T3q8dL@9=sAM~jssP=ce3_LKeEEfzK?6Mro^p79IH@g8 zP}BZmxs7qd9_W#(R$HHfCXl__{#PjddLA>P1$=OrnKSui5Kj)h(OE%M*;e^(69-_IYfCk1;M^fQQZ6IJ#-Fo3^Icep)I(cnL10<(Wb%uo+1U+jhJ0Kulv$h zp#;^|nBt?Y?C2Mm(06`QQ0S3rY3Fl6woLL%>?>L$QkQ1?8MywcFo<#y0|hZlnGs$$ z@J^eaIZJ1yhyXgP`-YZwnU$5IG4#Qu{ur8=NC#TC#atvXkAsRLw$d6p_#9&}MGc<$ z@e3-Aru-a91Ue`KVuk;m?98@gqW(q!J(WP^oK=iEzz3&f z!ST?c2aUy%6PyQdUqv7A6@9!y2~Vr6GVRV}m-Dw_7s~CbmjA}smxStf=jfd5tu{Lm zv>%U1^KPU2%q;iiF4z6_&NP^?sTjb_{G_fKz|m zEYwJqv*~>*?81{2(D2zYtq;^#EA@eK#rwkD2CA{cj!HI=9PF}k>5hADUz0>ew%Ch) z`j7cZ{p;3+@=l^N>9YA-)qobybyTk97gDpLp?ITtsj%hLUUbh*l?ASt;{`%DZ#)30~;_QUdi(#hBSz z=2}4^a@s{(^&*CUn2PuJ@yLJ>2AB;qwZAflWV&RR&qH6w%WhEggmNvJRR~DhyRr-t zTT4bLkGbSoes$^Qmjy`O6wTPNX+@tF2KZ1z2Y;9exIqc76jRF?D0G#+QH`D)!OTJ! z4jWD1$Kb@Q6OS!D@y=5EtcmYu(`9#y_gmpi($$>scWaUI>+!bc0T0im9 zd+SD4n>xzVhfttSc7etiq{Z}jVMlMvb80+jZ{+n@_b~Uu!fiU(_Vk-%3-@QIEFU17 z+Bgnqvqr$2zkLe=09k(6AT&xd`rNZs!2Ee-PhMavoFk*0nKj8hJbwNp74vOfB_3B>935Flf1!p=1kR2zVxn@O z#yxOD_|TQG&Rv%7Dn@Fbfb1n*lWS>Yj28jl|5{<LA?JzKO)QclhuG~v}5 zo#$PeK$IOe=lYY|P0|%U1_VRiFq99Iubg0l|165(S||#}U<;ghh{i5!>)-y|M)dy_ zGZRkTPSS+^LcH>#FL3eUb$1n#WQlmq zRdGcE;AS#zq#7BqbppGNzg{ANps6d<{-Y}wATBdWiDX)C7yaHaOq@*On^Kn6D zYq6Dgc|;Y=axp65k1{i%)$8>Ch8+>DR!{Av&38^mfw1w`HI#IHn80?owKi31V?L9_6PA6tjRvg=w6k59E(OBbk1#t=+ub!#dk!&FK`=oa!7qGQrT#3uMcxQG*! zH7-Z6>ZnNq*E7sn=3jW&MJDt=CK|+6M4H_Vr3|rGiLoWWX5h1M=o~R+%-bHW5o}E<+TDYQl!P~_D{5K4 zSx%cl+LPvsTUAsvS~n*KH{Jc!LNQHUY&y*jW6v*&TI? z(&vSr{*A1;G@qq(EY9|bN0DR(X6uLtF0sURs6bs76LP7QO2UI!y|z>MnF8o+J$&Sy zR*lJBY<}F=N-91bET+cbJ_sn-nq-?Q$aMmClG(zT-Q|a759-3<2V-yk6O(NiO9)?Q z#Z?Cn1+iF*@qODi@)h{5=IAU-3(}m%$UAZTvh;)pd>Y6eg*|ATx$js!m^1E+7Rdkp zh@m~B8#;wMfx_ipc>R1Eozf+R&(Q*dLrzAI-q9}6dDk>NLM?iOChOh)_9L+OSAhw>wv;oJlLiV1>>$=% zwmu5@Y6jqkIT&izhjOaq9a#98imgofcU$%Sd}Fuz6L+&+|KyP|8(Y$44-sT&0d;9` zIALSbrHFB>ADSLXA?L&WiKv_mG5a1gAWaBk`uazi6f0nLAa%RD6L>LMt|!96Dv8dv zS;HsOSh{Z$)JKEQu`Qh)K>>5c8F!T+7e@cqvb}m#_c12U!fqiB>nrFrC9=GJ-Sl?Q zvs%x~m~eN6W|-NP=RfBioU(L=<`e>F$Ne#W^)4)ho_qvxlfObk4cqh~%Vji>ABZDb z8ls42S4IEw@)e&-9<9#ZD0x9)r>!xx2eGjJw&b04MjlDBg~mEr?r21w&5=c=QbRMe zHegW4CMjhIyGbnP#aLbZbVhX?w7r{Yn=cW}gmArWOs~-5(4o?jV+YV-z+BERj~gPx zmT$EW08X@^!FefFGBOzoux%^0dPGgWI~q-^(3 zg#v?5kNL_wfi*DyL6wR6xT-+%vh|%(j#-_}|ngj$Gc@ z=ZHrsaIV9A2L@nzEZCsVtjJ8KKWe_JPx3iHZWi%}E3R+^nu+en;j zq+-fh@J&GU#j)pyGnbh>fgufrBH2NID{jGwL$nW?e%Dt;0G|oeRF32~;tXR|;oFIs z+Hl>aftQ@Dqj0nE#}`CQ+OkxABzMPGxXQyC{u$o-1pmLuO6m%f{ge&kJwrbL^Wnwf zU0N&5w_-2-k5Lk3;3-r>$^T4f4f=}c1iN+a{dHV}0Unkb=R8VKba>-D^Z=~QKk=5R zQuHB?_yTlZ{CuW`hN`twDg>5(qKf|!=yCPtQs85!hs#Bs8ER`UvMeactd_TA!Rnek;YXj)^EyvKZeR`EBc-s?Vhvpc24qBBdSP zfp{S;LWJ!F;BU(_%Z*n_cmq)JUz(`+!V4j|xHRv_ulyp+8Kg7MDn+($JnQAmQ%>H9 zOz0Y}Y&p(zj=0qD0^PYrXR;N@#wmu#CgP~KuVH1Cro05G;r#S?{AVyOl22ck6xKhQ zZ0<;*hX`rMA{H5h(CzDa^6Qh-+LV$t$U_kVRin0j)OGuI z6hW8We+oKsZhn+p`99`G%}`vh{R_k!#?!p4M|gAv57>E|04$)Zdc-WviZ)wN{i{4T zsFxfArZXQ5O@2ouXQ?XypvI^g;Qyi`z+<@u$uR-~-LVVa>XfHAvKurHHv}PWt;+!a zKLEg0{4$Sb3(7Xk^t~w^mmmQd8a7>ebGz~z+U7$l8vexIifP*V*ib*t_h}OpaC}i{bAg0v8*Wqc7hLfj3R_2C;HUo*S+dBG^;0=7l4(LY1VN| zEKGD7?8BXX)4Rrfzml#4_Y#M0@Ee|8ficZWmO@ENYqlz|q9sQs1G#J(G$ z8%#na&s@(TF#HRnG9E2tYo0xP%;YJ1X8hJ?w$>W)e<)lkb$}*#0k}YHEBjFpz!vIg zKIE~|InPRP#JOOLC8qo2_qbGCO^Mq^WFBSMM}~2GMC#|7T+eDoBfWEtlaFbGyi`Es zV`f3e49WCLmhoXKj0`Ay)lSxVaR0M@$@%UdVEJ05b}ls<(i62c^|~gXrNT+bh~N#L zM|rn388j}aY$1MPxVSsxLkH<`aaSKPQocR{)JK5Ow zpBMTtZU|@rOH*hDGVg81dsF;Yzn_EA*&>I|kdUxNL6k4-%EYWVGOjG6jUCiZQNk5Z zeqixAd{j&`KF_il$TdY&t{nYp#>V=Q553wS_+z|P+>637DK$iw8>wGvqBOD+S#jFt z+9e%%B1j>rnGfRN*U5;JCsCE)X7zo;yW2wKJEe=GNwa#5Xj41+|A>@#@=@So2;Cg5 z&1X-&qP;-Nh_VkhD!VcDfw351p|~sxBHIIHThJC>%dUS<{j3*BXdmS$1at7Sj3ZEt zu1re~cvB4XVqTjG0PFd=Xid(SMtKNHbBM`IEHBJuaHs_QD=D*1_=(?ma8IE##=KsO zsnp;{;Zh#sBev^r=)c*cuCZQbUo;(?3Hq_j#~3a)N2?l-@8uA@LodqtR&m`E>~ei^ zxM={>tn%}MMK?j#H33)f2nzCO}cJeMHru{f*bD$ z*g9Um6Ec%R*B$n#r(bXn*`Mt=Lu0FbxUFvHe}n!30*RmABG3U zEn7=8&(tn$)^kplpy3DM*fJ^@6?UEmmV%1{fm>QON_#xz=1z)1#RVyUTOPKF@|Mu! z$PadpokQELU$cG!;7gl+)K50xnS-Dl4-lXnGUQ=g$EPgEutfg&jJf9RGO@j1NHC$s z+Y0ntK`1RQqzviE8m`7+p(O+>VKw=N+79e8TSPOud{z+G&r%WmPsn=UV9iL2Kpdbt z`#MOR=*V{FF|Tkako?dJy7H>gC}FlYqn2qT!7w+Uu7paNaJu6UrFStRjYlm>4|^U#pHR6*VftE@6TLG zvVhYw*S{H&P%0a}dj06GFF&Y~06#&<&iFuY^-eaqZoG_F=^2aZfY;q8l&^Uqg$Xv= zIof*jFNMD4HxR~{Q2F;)t7BLEa3+Tjz&H5{`y7OGS2qRDE@I$%VuVC*l@O^Zh2S%P zBSD2sGT-jO)QbOagHuZ}3rs*c)I46(@T=dTRH!ZCpYM%m0L7Gjr9R0-la#{<=PyB8 zrD*o6M=?<8JOrvX+`t~>c0U)IwoKxD zR#=5;(!#vcP5I6LFY&`lRoz3apfC}EAcNLW1`eE>@p8qYvhC*a`lcaG>9LFHp^A5; zUvJ?x{bLTudw>(y2GlVv**M|)UTckdyK)FhdU5t|SK;{8zD(V@9;0gmyZX(*LxiIC zlJ2~PmqOWAPGMeJg8;vTlbo?2gK};~7@?M8GR{s0H}2tFF)jycEdckNr><`Gsx_ys z*)ld!N;svZ-+Ic$F4Ug$Qu@vYeE!@vuM`XQ%6h-AyMaeLESOgap9(#9;QoeU#GmN ze|s_O?{5m?8Lg1?985&Zfqg*+Zg2hYn*!=e{q6MX^p>jwje;3TV4W7d)hmk=b~77E zdGxvIrYO_~mp_0mr0B1KUn>*}VYZ>|PWmSS4fynC7;vm}I0;OW74x zwJRHOv!Py2+o5tA)gsNQ^*@$;ss>d2Y^`#fOZ!-y-}}^X+YLt3*~-te+;(LHmWEW! zc^+nnW%IX?1#QRt7$|?&oNtYy!fwQcV`>kv#&k{7)Ns_IC#^jjBUAY~$>FUnONaTZ zm#tN0wILoaG#VD>OJ#W@pwbgcxE_sI9i2ZJS+Fx1^|Vt>S=$n223PgXMyX&gv7uCe z_e|1OZ22vS=Q}BH3Yy>%-emkryH9A_`i{@XBd7`Rs}f%;5+v|K@Hlu^hK=+dZhL{67C`_~m~4P6SPVQrP&p+G!^W7=*vD)*X$6n6`=8&A zyc35kjoI<{%>5EH46;4Hn1_Q+Nw9~zdmVfmUS}2*H(~$bohg7@&qaVzxuMvmDof<7-6|_4a*6y$h)UJtCUG>ZuOjx1i0QLmGWrDuuM_BT{CM0 zlim~Mcvb7u>St^}1(-j)YDV|*M|MpAyg4$sgH~c=hH!_@h_QRlj<1Ezg z0$P$0B4O65aYQ6AlmP-H~u%@{XhCd}N+ z%YBCEL|-~8UqynjAiWj1kh;RK!L`!i-HeFEZON2Dd9?g*#Y1>Rv35^i~Om4sme6-4qe+uoI4H2< zcXIztp*{~o9OdtP^FiA~ufC`R@trhb&H!pAR5(EXZ}T6JioLg<>TDuPKcj*oA-d!7 zPzN0nBF-Vi-Q1PFjW5zc&p%kmH$XW!m%F#;5l)CO&XvyYWZ0I*c8^d{ZgI-ZeKF!V z-6-Hn5HhUt5j2yL$`8v`{lB31z^&-*qdkOwZ)da`@(Nf6At)vF51mG_WoMYK3|fzn z_Gt?gdxV>;*DC~pt@|3lh8Er?r?lJ5pNwtaquyMVDQPnFOule0_afzTB9rPTI!ReI z4(Uzgn*={;G$o6sjLB(`z*=3c5TXw##}yv5OW{}#!hZic%@4w-*!91}8Y6!N49#F_ z=7B^9774FbHtOhF@K4ttpC;#v+=RP|e6b?nYu=10ta4cU(oF;=H8?~CU2U#vljgmn9!s$#l(IbB zZ92A+rdJzHBg_XJ{&P!O0@AtsJ)>gMjoFCoU|ukc8DPl!488C3dy_}qY^$7w%4q~L zXWxz(?w3q4V;Os8%s38AjSW&>Q0ysQh`W%guEI{YYq-PB)_c}A`v#V|;`km!MopR| zgM#?_i0Q3~6%IR7Edhk3wDIhRvm6m!rYMDDR8DRCM1#Uo>P$ExByju8CH!N*uksGrqsKIZ{s}(1UvwKt?#-E62Cs!45*eY@Vb$sJ!5 zqK+WKyJoDwMSoeNhE8zzOj1!2!I>M}Y8=g@3 zz`NV^#)EpkJQsWyR-YmNKh9sSpL-$LY_$rUaHTt#tN+-gkfdMM8sdJK3hRb-N#bLi zv&x6se2W4%W$GrF_ESLGt9|7JAUU4j9SO3p%hXA%l{8%*;9X=9=vUaPC-}d7T#MU0 zS-kift{6aiR-E6;GW!4_TPtoFa)Cj!GC%*srKlRc;6C_Mcb7_{U}RJ~ByOdGLWV5U zDfdQ{LiZd=>r^529EvBkE~OEpR4F6BX9th>)o3dy(^8)Gn=#n%58~1B?e!8 zlq;kja{cYVKH*6F3ZzDWq7bv-g%(&ZGfmA0#779bck_=|9+*KroXU{)quiBktZAK^!gEU4PzoX6Vtk__QyZcWqgRO^lLs^2e7@>&RA zg0xrcIxis4h(nU}nGtjdFlcME*1bo&_1u2~32bAj|V#&qMfwfex2k6gH zT(hKk_emEBWgf}eG0>}WEtHJpTsFj3JN zozt{k1RC!SZx@iNSx5A@OrxtnRIQ$1j)5#p{-_#biLEaPtnqzUFoV>j0;TrlYe)o$ zrqQ5N%a_c~s?|VjNz~GvRfZ%DY87M^5^X5&qLwSCQ39T%v%4-YAo0w&xY9;=O3KYb z;EV@d;L(+II%Hmv%?CutO9tY&Ge%}@gw;vto zGq;e1zANvCT;&A~67A<03o|84l0W4l;!rRg?HMuy-jxDPB-62}R|OO&?U>Kk%92WF$_x!x3Z+*4DHH@~;^=*Ut$aDfgP+T9z>}P1AsA zqS`sd*seh%c@Ue_Bi$SC&^!&)HC4$K;koNeS(p`|dUoUFmw|4}|G=)MH$I^w=xAri zoJ{ylPFF|2CovLHtb=}7LuNV4w@Yb@3~v-=o^`rFo$CJ&tbL8`I6#n3K+}JlRL9Iy zKq{0RT$65%tvwwp2~Z4jfZc-7M%(`)m?Ju+Bz2L5u0oS$F=RRe8ap#qr^k47;3W?5 zq13yX2a#0 zv=;v)I|kzVizz04Yw$r4Cty{S9D>RM`S!J3mT;EGstizUn5vko+U`#gk+7p|XLN z1PPQ2xl~nX(EMTUADNtiszJl9tZcsJ>T<1 z=I9>!9VWk^2Aa^ca98ONq^F~^U}02%?V}v@6_!T>hSB&JxXj=e=1%xowj}52#))t! z?b|9EBlk)Tgg&U>h7d+%tS+1|E6+@f0(5YGSBllgT|bf+O5BJWD}@?;@x|Rs3uB$b zFW9TnCRTm1TOtfQY$u%7Z2njwe|`F;t+Y=Eq=19v#?3G&G;H#vu~7GcB$_;rOKXA62D`3Pf@c~Y;9hbU;A4dV;`K*hD*5@oloCl8E87W~NpD+HW# z_%2LVyNTe>oQz^yv2n`4?93I7okj{`84*_+pS_^&XsnCDKID0(TSyB5yb@KB;Tp;` zVBB$65F=PDR&Z%`+ONN!-|{WV zNq#?W;pss_wvOdyPz60xROH>xb^(WE-uPh+#cNi!^ks3cRX9ya^;ErrBZ17Q0d~@E!`t$azoH*CQ1M)5KovsHd+d~WPdJ| z56-T4PQ)yUL<$d9EWnuZk5shJuyY*H=Sw@ZE2?Wz505qg!x!&Yv)M^xM<3d*4$wQ# zd_2Ru7Z(6Xb2A#ofT#srR6lRixa1iQP^X*%!ZsEVd3%S&O1k=%V~Bm+NZfCG=OA)Cc9M^UEoR~CeML}_P69LE>ZcRLD*jNh3a0`k)G<2w zaI%#j;KJdcNtGQ~YHrc;1F??CqQ-e|v9F_b_^=SGo7i8RcloP7vjeD&E%O+K^1F-H zKL{5@`*}A)_h8y?vOuon3K|r?6M4uOA+ONLi|3CjEt6Pbt*U;&1ts|&UC2zu^gZhP z2dy|N_sN6=R($bRZE#MB;be}UOune%7OC_|#$sxTv|;C|pO;JtU0P0lfr2dH%40j5 z)!=rJIFMG#p0sVtX7|=1_63x6_T_!O4@_Y;N3$=|)P>;*bw==~@`NZNTQ~B91d>cp zh)mRbSYtif;&v@yD-WFAQD9@1E8HZqLn*LG9-Al@j#dE;LBe8?s^Ge@LB9T4BJW=u zDF5g1%xY=ax30oq)|$9cdC%ygin>HQTv0(=1#g|a8iPk1u_wd>+bPXyS?d=5dCw-a zfdG^}ZTtmL@zwBjLs<$8`6cZ*aCp0hPxbL%dCRf4jGGh6hMD-k*tIxMCcTAlNtvJ{ENvTI=y`8eLxszVGTquAbZ^IWE;@Xda)Yb}NbG%V@K_vV(9Q*H6 zBbrIfN=se~Z60lGc|hbPs2-pn22(nuLk_$p7-hlF`%#6^eu+caVmKbjrQ4gz%@S@u z4W?}BaFJ;0vavaPXP9^WM-fZTiSBEZV z*;;wd?mkJWJRcb;{KibDGWYu5U0G-er3Nm0LFi+oYND{i&D*ozG#kq#^lkKHkm@cS z*4;+EiZv;@P@$n_)D3Z+@_gB|#Vi;t2!p4}WEyc=ga ztzzlWU_$rUU1r=LN%ggeZvuYAtnjTOA^ee!SV-LJ2|Zq;I50KBX%eP~!T;g9q&tI5 z6Jd&sCQ(B}V;0?%xk=u zE48sm*(J1@RF}qkaW1Yaa)9{=ZHEoS9!QJ|pNllye3)7OQ*isdNYrL1IKD%Bq|%o? zlu5J#X-FC8*gXPNN+)Rct&lDuJy?s@17t??eBu3rkiQPmF`69`GHI5>Rp8ywj!L0a^&C=cO zTsyP}HBLN>UQe>y5Z$lJ0<$^nr0Q73q0BJr=vDn_Xy~HvF+ep89P`UXEs+#tTwT5@ z+I~%K;Phyx?22j+$6}<8X}h7fh5CYn40mh=ri@IS8w)>jH4hXI}j4q&9!NALZ>b z>@p01@Fb8GRqrFJtj9qCDiIVmvK#WcP+x48)}vDH z>}(_#V#W&0>=z(lRZN!Jdt`0)KgrCk-%+U_y{O?`sCQ-1kLtVxZ3JwN8Jt9(MoMw( zeOpuSSXII*pmjYS!b9)yu#|ee28RP7!s7fLH+afcmL@(E4KQXD_L#X4PBwc{KI*ys znbon4>#6sz5cZ&P3SU`M40-bTFwjeLw=3Ni_}n*t#%{Z@E~jd-1$#mCvHP*&1_o0C)rlJ?W z11AA|GKpFm(PSUJo@9Mzi0AYqP)yjMx_1BPFl%>mx ze9}J@;zU#DzXg_Pk!8;|giHoKbgm&^3&@GJ1ij8#veRd{>=l-R40Wsdsrf{}8co*3 zGH>Ur)$Y6%j_Zgc8sASBb@~b#fO!IY^gd5GjqPrc8uxy<4`4Ue^W%|G_KAM9ty&Rx zD&-wx5W0m6{}rpU!C-;t%WE6mi`R<@Xa^Ii*O~~GKpvB56QHC;*cI zqS?qvx+FW34f=Y_<{FsgOFJy~vg6TT4%B~r_6;EkYdJEIl8jh-3_L)9YaG-}w@BrW zJ|YlTy@dnrU^d8z1*U)BM);Z!Sk*)xC z8nYXhX|4)bz~KX_i6~I4vOiZ8r#kqxtPU}{k8aQSOIfm41n7`C7mV`)%HP$@&#~5q zq{+@j2T0?wUo73*kpP=f>xe>sOU$#pg(#%BGyEpMj=%_W!%6)L2aft(mh7acUXdRU z=SV5YZnBw2b9Oyt;qb4$hAO{01rXZ)@0^~JA770)ih%QTG*X?EyQ}NcLtRb=$f}lb zG?2jtsG;8Nk?zadQ$x?((J*|GQKTX9LHU;AY_}%M63H8f07;tJBy9u;fh0OCh#BM% zBf!m3+j8RJ1x!TK!v+Bz%B)j5RY7qAWKBbUS(SAA>WAxRLM~~dyIvq;MoiA1RmG2_ ze=PVHSMu4wm{N6ouAu}I?m6xZ*miI=%RJ~Muf!E!^9dW+e~w+pWrtGaUFfd>+a&9_ zIS4qYnv;M?UFjFz>L);-%q~Iv1|HuBl#o7Os{3)&{8~=nu{%kjPR^)}rV}!hy3v;b zn(|vgZlDTRy$E>P2a5_XiEX37pl>p6s$cxpzY2A|GGtYnlSTy}~POj#815S~&7W%uRTtuxd*8ZblCsHu`%JSY@ncvnL8swnkQE*9ho^ zt{+DYc>~?B7i<|zT(8RAKF=*4fjXs}dHwL1(?DXRN|_ZWaHV%z(+MheaX5KS(7}zN zE#fg>f6`me#asF9nr#|Hb&}0Q=I2LSP@)P7eGA~NdCOwiPy%D%v-`#0CxHrS1H(Hd zbCu?IM*J8>FnFleI~R{dhnU}U$tUp|LbQs{mpYYWgq88Dy?}sOhqyotySW!zLO^*V zjvN$`UP&i{nIwj&9cm0H(GKeT^XBt9eFHLqG&{6nBVcO8U5fj7j`uhq&?+K9?LEB{ z$O+Y|^8#79R*^~lL%zbVyA5Tb{29KxP{fKV&B8%B>c&5dU3g1=Ia=LNRj2rB$K z*I7CmF6%p?qo#tY=?vG(q)uX~5LB#;)=#eC)*T)Y1CwK(gCl{wat|g&7b-ZOK9`OK zB~2VUuK}KzmRgIkaCOP@K-@i=_)dyyJ9GINXQIlsuFv8_V6Fl8|FBXHA^a+xjcUr0 zxLacse6fn{l-lwgrX3j|M!lk;-H_=kOQP4>QSCL!hgp=|_H-*I`EqtZ`ecAqt zk@JKj?onGeN$>3)EyaI(HP9Krmg2no8%k-AaQ6+O-;P=wZ;IiYi%THnRqwhy=0OdD zMu&@49`0w^PWzKaJzBVx?3~J481uc0cIm;C=clC~0M|H8z1!ksn3Q7-VC_S~!VGRUu zPU%^Z9jE@;L#VVdoRal(-1i5zi1Gk~l_($EMIB(642o7Xl&6>y6NB&k@A_b|uh2Pp zP|uWF{qU!+?OwTpWls+Eux)?}eN>WOYd*0Rld8}C^fpu6RR+Mj?cHuJp2b_nPR01S z`87qnjlCbsd5X1)x+kY@^htD6eoQA0hJZ8P+yl8Xpiv4DH728GqMx_8!soX&Rk#Ia z|1W{+WvGySGC9I7bgF;2`#^#;iGMHWlumvr#bMTymS5;Y(>KS+hT?L2P;a>%P@h_n zU^UAYN2`{>=b92b%ap$LI*d2T`Z7)?#%dl$#cZJ14L*IxMS`86)WL?EU{j1!t_G%|4 zeZP>k5)ht|DlEM22I=ta=tyT;6T=OerB0F{%Rqbz4^~H%UeD9umd)*Fg`p3uL{u;E za8AB|HnyGb_bv?u8D1)fdU^nFSZE39=4G%uu@ppPs(F8%KHCXr9@K4DgmK7dX{hTI za^Y>Z3i{oXf1{*nLzD4_)fF$U!Br=OX_@UOJ5`RI+_4fjd`y$D7}b%Y$wqson+gdr zljuO=aK~ zw4S3?B)LLkk*9HR23{?{gqBE)v&)9|eT9c#E{ydBv?$jxiyijz0P;`wc6E$XxPl*8 z#*)~RzAKr|FE~PUo%Zlz3Be1fK<>v2vLLiVR5;@ zR5O(f@Nd(S@WTG>mJ8Sj^&;2l!p~F^S%@cq8NYu;4`(N5eLGy-ML~Ltl+SiWe9nK1 z_5QNPt216^lq`nrbt+@}?D18%6HSfK&3(xy8!|1Fpb~bs=%GGZhN3KsMKA;COA-ya ziF~Wtr#Lf{?64PY2h+DBV+pZRHzc@sI+or;rhS^r6R4JH8P6K$_hix&R z*!`;Aippn`i>Ys1=U?JTV@`Yr!kX<_t8sQ;@6O7sKdU-Xbj|jYD4mcN?npc9V6JvlZK>IB2#v^-mC?Kd_BXSg;f;j7}-IV*v5~ig<+C zZ7+Md@{o5Ej$qmV+cV*68h5B(6@PMUUhtXyf`BdRE->r`nN+#~>vUZLvkI=d-!;dL zXpdFNnTZUVyQmd5_P->z7+Rw-FVTkFi0MW}x0% zqwgAzwd)n4ka4rZs7iCM&+l${_zibtGuwdrCS$C_wHrx69z6;;g}y-zD^~)`#_+%8 z{>l;rQ?r)Q_QN=WqX92ulOF$Y4HX;}>VB)m+4o5K4(qb3o`JjM^8`Dnjy(}@a7(po zph(EZX1S0jPv%uj6GVTS*`KXObODV~AAZP)8kf7=R<$Z#ErUtS{!rArI zUQ271tkikeijw(0e&Esaggh8$ascdC5ircSP?DFJjlK51k;umjCcMyvseZr*CuRKF zNUtV7E3?iTo4>*jU^iM_MM{0O*lR&`?F#VRWB6rrXW=Y}wPhJ7VIVbXV#GDTc&v3DPtaV0U(GYBK>brJ4wGPcBz`7>_{c@^5RVD;>1FA_s3# z!yLNV2ihAi{e~(E*zak@fq*hROIG9p!=HV?A&;fj8N-p<%F$frdnnvq%rY`5amF(o7OlnY05t?HjHv~ zb1WJ&`wc!+&FD3~h;uIg6A6@wZEGJ9D4@F2+pSItjp$UEYgw3(k9-6ulUW@82)vH6 zXnNM;;>dqpgyVl@ui+UB~3ik}s3X5(h%?fqRJh$iY{ zUO_xYf)EZ$k0OoOzZNzANZnl%Ooxtfn3oPg3e-l-k?cT`ygEW&3*|)}KUrqwkDGE5 zs5BuKdRvOFAbB)-AL1b*Q`qtE^Juv3p>*r3Nx8MILYpryhrEJgG4MFVJ9>`7>-rI{ z1@)YoOnwueU>m>nJE1hs*I!iknq0za;O z2Vf31JqWcRPQxt1H;lO9GL%P+XsjsxHFFljHu%w27%m40GjXMA_dT`nR7^IqvW)PY zsJKJvsC#(Rq*F8U-sHo#Q+PJP|C~*;{d=w0{ilRcAo5kw=0@?rJf!%4rd7PFWOiJw z=+coC6d`O^3uF#>v4GM^Cd8=xc9AbSQ5e9-H8!TLJ&LX1F5rtuG(~>}FYjAkZlR*c ze2X!16R-qD+CWAdLfC1bDAb~uP+i(Clt`x(KuL)jrScJP<1~vLLfXMi)yq1a8iHGP z%6!TW($GqA^A{78l0FHfGhO)kRr}jq71@CG`NqiYa(?kblmJA0CI3G_(wR;+J6(KW zp8o4U+btu3)Ch`ql6xX6d++P%ZJqe6);J%%reEOk8nmDId3h@Ck3LBhjh`3d^E*py z;)f7R(u;kYU$r?x2PJlkJ~5TxsNe=znr0C)I+$Q(oebw*Qh0Iijq<1`e@$e9vGy0v z9_llz1+3(9oSpBli>gu8QOcr8#w0h{uY&r2ihBLh?8PP_9#CU)Q@?4K#y%CcfHbWE z?2~a%nOUEnu|EZS&~Mn@L2m-a^k)b_kv(ix0K?Zabr~U_8#K%Hk-`%TF)ih zJ0cF9D+OV@tO7X;SfguDqe92FEiSNLV|gApho=4Ycm`=a6#o@HiHBqS|HtnMEOS}D zAxk^q%}#}7KNvX+6Z%NDlic#f%gH@W2r=8QoeJm5h67^tn?vdbmmlSvjcLqpWHTYLeMa=rDk*TFClU2@D7oi>!Jn`9!9c+b2rF(JVew;a~G()K%9)D{Z zL6-l;wFKr z?%mZ-olC^&%bsf>rBp@vDSB((wxt39QvWh=pGJxg`Ln0fu<`d*y;mp0`;u&82!rXR zjKQwY%08Vt8<*;GG?dhCvAWW^9gT_ZTv?Le0DkDQsK4bA={U!sKS_SKS$$;_n?8H!% zA52OYXa4tFBRT?mpD!U}Xz>8Z@~Ep*fvW(#f{k5l?v zr?^MFsuS5kskzws2RM+ZVkv3uQKTr1kWOXNOAULAY3CwEYFW`0CECnMVnvOq0Dl=RzV{M^I)W^awth5+dZjGiTIbvf}FCIl!aTYHgd!J{S#LnvNA z3feDxWS-0cm3L>3Rf|XiTW=9+ozgEkVm}bM!$p$rl=2O6&%r$cB|PdAZ+8nUgoRd- z5AdLCBLj@qCul>pKf8LgNLwcGUBp!ExkDFz-7%}v28$7g=nOOd+#m`r5Ym{Q75-XB zSVjVRO@SU1NWj>Dn?ePsp+zN;;!l*#ssYUmvP|eR(z(!V5=)7qLHq0ZRE=F~IAX`N zM*iQ*mpT+a+c2PD8bus+bbBRSlG|MyVbJXdokN;~z{=i!^{!RHrfV<>Wnc~F5TA%) z%ERNIK{pgfc{ZyZ^VsfPl_2I#=hwre0P1zyr*QBeWQq`!ghHi#d#i^dpgijb8(?j3 zE`M{}LH(3zT!xLm?6D5L2x3{Q zO5hVBtN4)twoq*cC9={oZHQZOy}WVl8~c^F)~7Y(eH{}64TKNA8p#nsHX0D+4^hJ= zHZ7fd|5}1gU9T#pkAZJw@-n%C{`aQcsEp?*YFXyTfM}muM>q~*4!XKAL*(}`Er8eE z?a+yDvOh6p43hi=^U(ww{9HAg1UBV3-~^L>Qy;v%`;)jW;@i`yb-Dz|!Mg>bt~*=p zNl?~t8{tj5<;;t@&A>WPYEMBT6_?tF!bNJ8>V%lBn9K)j+-#L?_QQ_K(SDTWcxUzZyIK}M_(_6&^ zek}ZkY~BLPG;MB|+gzHwK(+c}OTiLa96AJ}M&XYYJ?m5|%naYWxUedAt^!bis9n_8 zPbF5;bDg_mQwz%$c^bLr5-mH#1FlWMGEWxVJcl9WWOGr_Bi6_Ehp`()et^S8NP)^r z{{fjC0e=L(E{7wbVOPJ(r28Zt*0i%UdZ84dB(f+R2=nTzhVFkLhLbJqB7ZP*NyU@r z&rYMn2zj)a%Is)QV8mZ8@Cd-7{tX-mC9y}c@_b;F3`PgmURqnXORD8 zdfmDo5*-u)y7SGT=drU)wT~zDonKhh@RDsGjk&0L9t)b}GE7lX3(H+VJ<-kiz$RfA z#Wi0sroHYQHAN?6aY1bdwyA|Ex>)h(w6Ih0FQYB|nQo#UI}tL-_IekannB@E8N-<3 zX5~hUXht}-o_1b~h(DX3uHfqU9|Pns9z@OQK7wm&ylMLZ5WPZT7al|7wcEGq$G7y= zy6$_s(Gc#i-_pWcF^nI=<9C+J#6i-rQM1Sm;>9tGXPgos_}*i7Zioo88E7FTIcxy{ zd=#&daVVp?Dcla!@z>a09WVEIz$X9~S7WYHC}#4cY_&xKS1bB1Y0+4kpBHCJNqg+ZXS$s7h4--}pA!*N`nE1c5{Pq?uAYjb}7#DAlaM zA|*u|>ZsiC^O?i_XSvv#jFa*m05N-;gaB zz+o#V^aTtTQtyJ9f|b=ke8u(x=usuAM};CUcqxwR+#JSb5>{I!M=PhCiLXIOW?##+ z(0(`6a~db|v-qp8`%99zoA3+_pyX4>o+7+ihWunXmnO?T)-?C>Uxxz#wB5d4eUBn5 z5=b&!khYi?`Xf0LmXpA*`+{B5s`YRo`6iUm&=bcoqb0)~l^ggOFJ%X{4QyE@+k8g` zcR}lIb1ZsS;d2Z@Y1um94k$di@?Qs}kcLfjfsj7mP|g}%*mHGR!jiP`xRuP6QZM14 zDL&O8M&POz`8e4mxXO=vliqF-_o-tKC`4Eh!Bn<2?jc5*?SlW8{y z^1Ok*=3BjR_MxWF$OG6rcPynZwltk4JddNvn}xWu_XuYov7D+3O?2fn4__yF+3zJ^uobW6?Yl*Jff((4@ z$xvQpsS!~G^Iwv4dDUn$cl6mOP7MD~5vnM?6UlJ;E-U4X$mTHy)o}k@y#dq;1K_Kr zh8knUvE~g$xfb3?^^B~(76L?l2%{P(=YIj9wtfVkq?caK4#_qhw9W7hE}g0t*IZFF#uBlSozu7ezc-dWiAz#|~YJ;*cIVn?L(%;bITq_J{k9><7|PPyC0_8^IFyf-h&9=G1~_QM z|2NU*gGY{Q;WW4@`uCK;fN!#YkSGq>8Yn0pssYm#-popUVM%9?25z9orxqR%!0L50 z)QY`XNvI5t2m1q;wv-&L$-m#cSx)BrsXRhipuvqfq3$VfY-@u#>!UxxR3T(^9~BL zm~zd)tGmN)_jt*B(Dw_r{EOKhp$2j)*K~i$K$Zzk24Qq5C?SG-Q2>~1_in-?_S)Swn#aG}a zkU2eRbwvRGKLEhVCPH^4YIBR(92&I$6l=jUCT_M3zSh0P4T~=E7EcKC_$~R35ZNc|Rc|D&`+JINY;UTj! zrwx`#Z+-!#RkBSeRA*D06MsEwF0^%2i6=aG&I6}}i zPOI9{a;i&aipGuKDn$u&cLJpAMDqHYRtGo{exuP5^?kylsP!2WgNe@&@tcQKOXiqw zpMPa3;~Wgku%3IZd2vPCKCCuF$(W8vZkkXeEdzhg0ai(qEWOdo0#?6#<6a6r^eskO z*Oi?Fh7_MV`x^aJ&L=ucM>f^f$VMrBxzYJ)Z71nyy%O68zp$(}?jhk-N)YmTTxuXE0qRuz zk6B;I6DO7#U;UF^fpQ93vcJxq;*w0B_H)q_@m_U&qZl6cgr#F)oyVG+li85blmbN( zwf*Q(iL1;gjW>nfr9LxrV?B4iyy=;B_U-Oa36JaT<6y}u&{-h61Jw+so1vQF7&w?u zve=Yste)n31Srf!*;LW*Iy9Bm^?TC`6bCS8Vtz=}NXQRwcyxJqa~*vC&iF(J=oI`sm= zn8TwaVwD6itY7Y~XW+ILsY(ur?{8H6y;tD`4_xctL^UOpA0oz_kN~zyjbxd;{i$*(c#u`!=PPtUl7BsInXc;BoD1Q_3+B0}HNt$x@T z)|K;>YUYh#_{=jny$mNTIBNXwSbN5%Ci@Ek%J_Y5@6n{jV> zT2;3RBBwN}=^$`bor$%xv}NP@zcs>!zYjiM-Np{V-3~zr9*I`%>;cR0RHCx7GJV5e!a!2<fbuG@I zRYN+ro7dS{4ruglqRPx8K-Uw%XRUu~*j=#Vl!V=^=EL`L2G&4iX)Q{&$i z>~0sNEq1IX(096^B7QaQ1;n{!ONM_RBZaGOSD5k-$eF6hKxE0ge!-^Hl0{9M7#YZ9n&B-3-h-`lNoFIJ^90 z(2sTMEt9Xjm+s}&9cc7`$^`~jU8103XLsF6 z>!?26YWicO50|e0*zec^!heZ_Y^kU1pED}tKk$LF3ZC1umE7Eby{o6(BQKr`6*$G) zlhjB|`WSVP-R73_8CSXK1b!Xf4g2V%G3Qcu`{_3(@5KxiTBUSY>D0y;xKIFoh0<0R z0%&5O7WQaWz~%obcO>i~pj0!X{z4Gj0S=_O1|}>;GjYhB^vLjPNDoms4+1#Myy)*c zLJ*ke7o0NJJ9axg3%nwtqk9M22F{}tD)oFl90hD2?jy#Whv&VlN(7e{u{6LdqAH1C zh+eA#3k@LIo)YiEWeNLuco9vomHI=32{XoR7;!ML81%5vy$`XMsIjgt*S*EtI;6&y z2}QjEPiC--S>NXv8z?{3=(!#gUKnu&%x_)j=wD+=-|-xrC;oO+*q_uPSsfIhe7 zhLC_B8V{Tj9Rpp1R@Z4Yq29O_At>PccL0%@PoAs@=HPGNO|#eAgMcc#&X^1{t2N8M ze1IJcz8;B30N0#c;T4)II&YH-Mk;!5?WvZCK8PgtOLLfFC4=|jStg(i-~MWzw8U8) zhb9UPf{ePC%?d$ge0iktVmezqWFSI$$VwWW+%l)p&3*xe#h^c>fTb8|^3xFPKeVXo zm}pyjA~#cJNJp9M)1S=!_F`PEtZg75jdxBH=~=6QLldiiyxkjKJ`{K-#}?T!|FC0;^Y}J}gFd)FG zW!PN!_DnEjdm2 z4u4;zctE&9Z*=skP-_nXC835-E=8^MXr+BEM+!4VcXNluique|rj5A;5OFp5*sEX4 zxbn=T!pO9I4d`HL-x*v`ts(cbw;+{ZR^u`VjyRbehNVO%0%{UE2&tH+jAP7OgH6Hl z5=l9sM@Qr(VOB5m4RIT4^4n14L{aHgm9>`SK#W1xVlq&}nw_(1XMhPZ-_MyTqOlsepf2YjhKE+x?!mvOQn2Y&z5g%% zGktkB(7Y#O9M&BC-8^RU z$svD<%oB6aByVWjdC_p*QI-7%EVi0rJHy9Hs{tKR!D=8Gwn185i46;y+<+WI1^_F< zmV#&pm+Ie)En(9|t*yS0R7P%?cMQVYKm(!PKy(eWmxbzbPva0L z=zhOQRZE`x?^#9=4VO$(X7N1!@nj$p;VKtY4yfS1w*11Ly>-6kCqEw*r_})neDAJ2 zr&RueWdapd7eLjA+!iNhIWuxE{AuFqd^PUSl4@>VrFg)7=wm-l>>C-NW$W6?Cdo2? zX8Z&IkM0xw7#+jT#v;0as#yDMwl-skjLW=}9J%EN0EKz|01|C-Y-{1OUeJ1H!8(54 zxI84m54UBY)YWd(;tNqxiq89`4VGc?Di)$ zT~|o+whv4s8a=xQP6i+To&_n$dTtJ*oBhPBQP6qJX_9=;i@&v9{>Y9|=4ed5G-%Kc zl_uwvh^#0%c;C%Enw&Dbn0LV8WKtz+YEb0rtG&*fZk?AACUr{VAm0zRo#a|_AM_3R zQVgG}hRo1mJ0Q+xdDz<&f$TT5A-YMAoT7UjgLM@56&F#3)_)@Jh;x0uNNNL&@+!$y zV4SZqiL-__+lCQqIOw((tutVfOUx9$F|nLxx{?Y99z+e%91;A_KS2in6!G_ut64|B zXtvSW3MX-JJ0cUCLTpcx)Akr_D>yoDwD!Wn0Rtgf%+h45aP~}_{vXBrWLf6c$ER>1 z!%%C5;g^ZI6EZG(y*ZCE`ANhwOA^|tu|NuhH>-^Mq>Wjsq6l;;?VDMMmDAEd z?5lZ%=p*rlKs)3_V-&YJd9*1*DQL3*e1sX#c{%lcnc*A z-&tfMx`B1k&iT7OElKb1NsA+W7({PyiZYnI3GmEDiM-5_XqV?ah`64hS8;8->fn7z zG|1X8{~6XfLsEFH=^?f?YjwCuWBiETcM63kupPZr_63m25uOloE zq$)T@vqD3Vyb7it>_@;Kx#sKbZr?|O*{0k#ah!3}yUR&cFB3?+C2{M^3T8E%n0%eO z$ln|@G{oF(MHfb>gQT|zm0r6t|Cm;LXr%0l zI4M@*DOlI=3GfcdFTrE$s-68r;^hjtsds6x{569+EwoPAiC6jaY-1q@Gt+kJAG*-- zx)hUom_A3AEL&d;Ro1=IBB>(|iJhdT-HsIAowIr@5L3wLNw7^DH6)Vvqy)@9Od}xw_!H&fY!LA&p^*A9l@RuVn<|&x>Rw7A)-d z1XsL~=tTDaEiX^iC{3cOTsvm7iA0&+&V3h##XV78($|67YUP5KXu41@DrXSbEVff!WFB%0GKM(L(aX zoWBNNTfz=tduiJ)A|J{=EIj0UvSgY-NzqtpkENjW(A5h5%dT0Rx-c*!z68eWq+d*T zpVxx1afY{3?}Yh(&T{>dw4GE62M-9(SPG|v^~n3)^mXO2(Ncr$C>XEoOV~~nADXU- zkh#2MH$FqW*Ioh2KNH~Z&|uV(%l<-D^T*nJOiCtq`C|pzecb>SDd+#KtUQ;BCSy`d zpoJ`3+Xk(VB+YwqlKd zAC=@j2MC-5Lps6Wx)9?GFPc(GArn}+NNZM63$5EN?}q=ys- z-MxpSoW{6sO*z<&@0RSNI0%1_D<>g~OEWD(v!&}Z`XPvmgR7=1&_MaH9k_f=x8xGM zhy2C9{DL`ll0Gd~rs)BTtw^)MzRZpDL6(%}$iDlgM^5%d=u?)rQ&}WGd3jtfFc#{~ z>v@Rwd5%oa3-t17ch}yQ%>`_q^5N}~HP+SFaSJ6W&GVBegWe-A_1$Yz7G8%e`Rsww z@wl8<Y48rqb!j?*64crlO#D!=$-FJ=qW|gD*hp-0J~S z`O~F6Z=<>A@|Y*;4LlN1PE+-&CJhD5M<%TFR~o=#cC+_?h-cH3|JYPk(KRAe024 zX%vFuv}#aw!I2~DJC65KRLr?PKTwPIpjbI7%+oR!Dms@GYB>D)`}$ojv7H5z;NP?+ z-HuWoXn(7j?$SROM{AFYGZZl56Ey(gQ$~Py`Sa!kQf|{zxrn+UNqPZa&{RrL0%M<*TS zIAiHv(22Pj1eomM>-tgomcu(juDKb7(EH8E6Eo5aA=%4Z6m2%f!A|9RESX}*FPXGO z;@bzk0k9Rihuf|tOrO8(gCnvh7>&SY;tl=ZIksR5#ocBwuJx<}F3AE`K?XqlgPxBD zZwHd>XLAVEb%y^~<$g=4nH-~(V>Yb<2XsF~cvpPr==#0Ns+Xa!!z#V^CYg4lE}xzxYfY)CzJn#U$_g)tNW8aS_{8 z8XNofRxClSxD$|S`fWDo{vKxqlb%|6+T< zw5MMw&uI1=WY*!2Fe<9RcI=o;pNY*2=0^>bi&x zZ?!GZ17T!Ly`zUHW^f4>Np7~F1M%MvT@oss)H$;}P<__6VoCfs*T{hlAB|3$eH|1&{76wkXrpN&m2^$Mhh zk-3d`+YMv2Tqm|Jw_0CY4L8>n=bZVssz)+;_q?-0?Y{A;qlNL_*<75#r(E0&HB!ls z-CoMdyo^4EFNd0oIT~C(^Pld3FnYKXECn-=9GxYu&OEn(uf~}ji5=5~F6DquGS~l{ z63HL5hqd?WVig{^T1Ec3LB^5EuA~r*p<6^o>qR|!;+2(T>kQ~~zQgYk} z-inu-WQDDoebJY>-ljSj?@nfe9!YO{wnKR*v)7e;Mup#kw%+#Sf*1UGhPTp*-sVXQ zPZ=pv0>pZHS_*bHwb6L+s141GEavHp4=R$0)CXeVn-Rrp_f@|{4=4b+U=dt9iS$hd z$fzG>ff`PYVjWg~$xBgh%W;+-b9umuMg?!9aPl2r4^2oWg}}xWeB7RYe*0&reZ2$W zvi%D5W4=P?BLmAA~^_8U_vJRU- z%N@&?B1-Q!59^2514-VZ@wPg+(L_*=2=oDdD}9hO!cIj@bKRH<819D_0=A=BO@* z$y(X7uKuQoIW1WGs!ph{?Bm)7;M?ATU?4RsnVS^hWt7tz+~j3@yYQ7v-4KQ17u_ol z035wh5M)Ldbq=Y7zd$bZGL~>>CENom?U}4uteCu+42s3)A}y}U7@odQf}aZI;sNHy zXF!=%AE+UXxMK=LZL0oyk`-#=oJ<_Ld7zTlQHhF*LM7h_PCS)`WXX5wm&=y_9)84_ z!oJk=;-F>#17~i)AHs5KyC?GN{(2}99~Z3b2{4hCDDge4JnP>=5Ysjqd9+}kq@RbQ^al{~XADf?yaDsR2+UEo9v=a~Lq}&pZMx`v^6MjZZ;C2tS4*MTZGU4HU z3{BXNzNa!I3DolV;DA5f73U_Y{}L(WM#e&eiK+|;mmBcj$-D_#@Cu9<5Ob01db_Z8 z7#qLb zQ*|cP&D?G0+q;%SrDFuJIZBxis0C%q6R9))e z2xt7Pg{InCF(hNRuze2=Qa1hl-Os`cr_jdoK~#@NAP`wGF|S}KTmdqvkxQLNJae^D$FjjnXH?sXs%Xq*8e%K*a9RQY2}@kT`pDX>Is=HMIZN-r;rIP zghRk8WyWyf@d*pY-ay0~Q?bT_-Tlj7K#YQL_0ugCZU^Z{$m@O4zDIS4=YZ&V5R6|D zWO&I7;&s*kb$h$1dM)1NDc&qAW~|;FYyXflvM7sd&}$QY~zuxcbC`Cx$vL|LJAIB z0xY(D=W&pM)uow7lxW87a@h5hsVH084qvpQc7j_4)UM-(!P8{bzgC#0c!1qL5*CUK z49yGIU{?)&fvEN1h`fP8D@>ZZDSGN3=l&kwuihZ*;fnl{SM>lj_eBe!WG8 z|MMv-7GZl=rK6NN==WJqQyu=;U}DWT{_$jaDA9wsIZ$B(q45>G=<@R-E-|`{gVsoQ zbCYRH+hoOPbpW%jjd9CyClTgJ!HJ>a5nZt6tcHrcQXYmQ=ye8ir{l6lPAyoupJ;QD zQKJUVa5SXaAPfN08lFIja8Q$qTTI()DEb{n7I7uO)L(nQe#;CB)2sL;*E3xIij;F! z_g#C~ocxbDh-$cAGJlgMDU{XP3ZR@W?3P9y7Cu#^BU!SR_1iNPRmK__z}Lo|QX@Y% zP~=BRx4-_ssLG!2vL8kQJFF}lrHg#M(`tDRuCnTRofngZxRqKM)Pqr@$%+how(GBC z8$XyqDEnit-~3#WiYB>$T8ruBnvS?hrbqfYQh(Cg*BE4RO!c%+8yQ_5IR{HO_~&J} zre|gPF8X9fFdI+2Adq_~(75UW);_gOC!u7sRjpv;JelU3qDjVXZ=0g)WPWI=AM|7} ze2t`E{&a$~ZN5u)lewjKZtJlt4|*ic!7>3;{L^la-gh)il{={` zcZOeoCL2{W5I}Lo=V^GFewxUnLtfxtiWS&(!t~}#pEjOGZF>azWA>jVRB zspy+FmBYO>q}m-vdq!0?RwgaUjviKaD>RMwp!Mp&RtVzuaXg#1GJIQ=4lU!DK@;Tf zO%XkZ)!^@Y+C!&ZU6I{qa$_)@_xAEHN9fD!m$jjY0#X9gIpq>yHhWx3iic0nqYZOM zzXSOcJI!42qv`RMoGb26rwGdjz8P}X@sl7OnK>Z=P`wzsYeU+=qjK8jsKO8K^c0TS zsE~Y#(!Q>zrJ(@Bgj*Bi=5=7ZhBVaUDJme2@#$d&Ral%zMqD0YnviLF1!~V{bDHkA zje;(sIm&PRx&B$iuJIsU96>A;?$oYOEx@^p6&sVDc|yaSP?gU$D#7hxzJ22D$f0Ct z&__ijf}&^w{&eKxGMlUf9u}#Ma@PV$mKPcvvV(;c26|1)0UAgnt*#@sI8#)F9U4@g zBa5Z5s2XY}^IS|tk}ZEv#onyAkVnrEUF-zsF9EfS`ZEL7VKQvt{Opr_oCn}t zp?w|@&iHqtYbPEDDGJ^paMTJGsdT4{ws{62@lV+2nSm;#2o(ZrB0*WWX?{!{Iu!dQ zTmvOtLVm9HM!V%SIhoA;sVCu5J6!lpKO$IPTfm4wYAi^4z#fvR7?*Uz63m;K`uB&6 z&J^BA<;%ju5f}e8t>siaZDy*gKACa$jl;Mh{G(yk%qjzN|k%rw*I9aCJiZ6)JVx5RY z<^e1(q*O##8VA70U}r5+GCNFF+y4u0n>wd)Bl{gRQjBTO0G=kDn6v}cpitAHI*c$K z`94uoa|ujpc@IWcJ0)y!;YWBDjAXaKn6yu~qXVq|U}G7|Y@nTNuKks8TZH@J+Qthx zNwo86fYiqD+yz)pk17UNQa+q2Xp|m%JI7Vnhi`fy97|mVHw@hOQ>KqzdLJA8%!H}G z>R<$a)bzYyj>ivV5}l;rEyqdn>oUmm(`%`!``RXapFusz#}oMy$zV@PY*s$R=uT%*g{F@`?$}OXj(OlwrF6%aU+GyXB2)^ie0PBM_Q`9G$(QvR zX49!EZM3lcItq|%ur|UK)Q8AdC;|@i_OzUKM|a z#IU{P<*XAil~q|QUq~6gVP6HyA`gn&Na>m=`-U_&Jj|Dww%cDh8`BEd^vk7f;~f(|3dTY4vn%Bm-eCez+ZrRiwxG+YP(=vE6IA#}%JN zm#%HH@&|38(i?TW0|?(c^QShE=l~vy{rgwN-r}IRHsBeKR5hwy^HOzaupw`e=s-Rd z@$CZK*oa1yIhz5UJ$F|)3>ft>OW9R+ex?`aCGm$fbG8)**H0N1e%7mJ$ zOw2H_s7*E}rztJj*%?Yk_8)d3PKfgsSR~T%fPTj4GDvYy$x=325i2_dj$-Jc%0uDn z&mrW2|E7NDy|r+_a|k`kD3t*ibm)*yat_!M1$OMpIaeqFn}9^yO=w6}s!TmGeY+=a z>7(GuTI%luxsu0x8GLVe+6g%|%dzI6xllWWaL%Q2w*NqkJjAz?_`hQ#U?QCpCgleS>+I};Y|39=Waj1z5xin zh@1KG>9lJ2a3mNondw{adDf{DVd68vRaGo=$Tz>Hc>u4cD<1~NUn~dMe@k=6-76NN z&qwV6UEF+xGtcHP!jiwVNH)WUKT+;1^ay>QKIjf&zW$XIYbQvJGtMlm<$i`D=94Cp zL<+bL=DPW2?oF+ys?Dz z%ky`!d6UinFA+N)EGgL~?Plxg>84al`r$rni}+EJlG%qxY%hJiO$Dr?u(00aRLX`? z^bl0kC{yAEe(PUBE=QPfuj;AtR3I#Fb-9CEE0G`jQw~+GxKC~(EOx(xW%}vspYQ7$ z>QlO)k!rn3T5q=K=Rwv+Ztr){aT1FbxTgTmK259&xwT*(80a$Lrpm;(wLQHHmd?G< zl)1`>cv0)#<8&a)p%g5R{K?awmj+=TlMxg9K&2+1Q3oaIFzEdkH@>IvM!r8@cb!k) zIVnxJ_K;^3i0}sr#vsU^m2SAd%?I`#ZhHyW%Re;_L%~fVAPnUvzAaflChZ8^Hst<6 zubw0vLz!;5bun}>HtRMR%^Kdz;x%Kxe%sGa&zlq7_gPyu7RUU=&pS1FnNjWb`545uQv zq*k`V)Wyep86|`-zqH0Z1PwJ9|G)OOFw=b>7TJ-Mr~&<>nQ9#}e3#5gWw@;Gt?O|n za}P8}p`~!`z(5b8=burKs5+HkhI!UFy&CW8ow3(>ww1?;yg#4Ih`E}nTm}~QoNvsCb z!SK3FQH^!I}p2rAHe0Nljb_>$VVu?T30JIh88o^tv^4lq2}s<(oH zX`HOx&c{p>h==-Gp-@%}xPwpvOA~pItlndw>Qwb1n%XL<^1Oz=QQBqakgzTAp(Kq1 zvu)A$UOK+!<+QI9qL10aSP*W^w-kwXSvgEoqEw06S{UQ=;XXJWhy-t66)fwlv*gk? z2z_4zPf}IBSTDQ7-I>v?*RV(u#CMA@G3WybDx<=VWq4#{Py8e=>yV1bb^}VYWJ?_M z2AZy&u2fIO?=J4!Zz_68r`JsXEOia@)HGTi8^;de^xAl^`ncr#9}%!d=^|@o&+bCs zC1!PG;&d>S5tdRZ8bF_r<~tZ+)rgRB7rhXX_bf!M#zyn(vKz)3XAXO}-ZLZlkzsK- zgl@`&rspnP)MJlyp&L!}O5Zm302bqzdrm}8%Rj1|duT67IZQ7h39$$lL>wf$f4*Ro z#x9_7w5i$ZjHD$?l)qzHn-$Hm?M?`u@*GFej1ej!bAN`+#!1rS`f`(AH;ia5nv0`o zb&>1VDKu`asJu8U1gZbOTm1UxgFCwYa`;EXl;~^+s46;{G^Snnd~D!309w~aNTE8O zPUFqV!pm}&8-Sf-z{d}hjuh%qnbXX9$ zb${YdZ$9c87ht0%+RGD29)4t zrViC-onmB+&}FDbp$S=;s|0=Jk!nJUC{mUkRbZpF@AGlV)PCrq$$fkfj%XE zEQDy)M)rFKBeMtB76`X019Pg#FBk$9G|~Q9N=?V(|1Xaa2d{^2Nqg}K@;>^FW#rlq zhDK@#(I~m9T&C*xY@TDOq(W!gE3GE^Ez}rN-SCX}Tc?{M(<4l- zj);nGOtwUn4U+BclI!uxkhCp;J`-@Z8DEz9=(_p^%)S(2WiiRZB{LKx7O?>*(1!Q9 z6Nb#TCXpJB7L-An!mn^?**s86?9w=m$7749sqJYp5aj7nzF$gMBDs5yQs~|6&4Miy z3Q>z4tlRdQJ{8)xBxn5z3-@{pMDmLid*{9nK^Gd}OK`f>S+jtxedo9%4b7XA)$vh#RugOrawly<5ul;J&E zotdXp8b0??a*n*TVm_Cz=e_H;=ns`6z#Pa5$OuZ65B_<*K!w(4#Zyma81XYqdnRB4 zxw}SG>p&DBR*0^ctXa{0j6g&@x8%{6?rnOf{BE|-TA`2GnY!3ii$v9!zm!8}0NwJ1 z7PPORuWec}9Xcu(BTp1Rk6F$HJd##`4WWBQR=x&RHPHvf7ZNLX3%-w?!HCi8ga-xr zYB1H)k|6`C(e9)pjw^u_Ns8Cx#z)w1f~CV`A^Q+|bavO$0)lqwq4111Kx3s@Ha8OF@?^RR{&IerJohr}5HrfnS|sK`5n zzysJt0Xm$CQPALN!{C=;#EYI%j!gxr*bQ>~z*3s4*YiFHLLVobm%9jQSaz!niG%*k zKCGu8lOq{%N*9ja8%uEndw`iH39&>v5;A&sTb$)0X4*xUzy*~iz~^tb9-ohcbCdx9 zV=^59*w9%&_`UE)e{zDgseZI7PbEa-*$}g#fcI8u$yb~Dk(U~WyJ)gwz)rQR8ouO= zk3^Y=LVww2?-j~^rLXzx*Ho~o%bY*JwkVKJ3iG6*)n4uOG5IFgw~!aP#$i{d3&zQH z=oqYii|DHTRW0E$3KRPV-eIfq$5}OQ^od$b6-)}gSG>*YNH9ynm`g}S$g?Puc6LJC zU}B(fP~RfhANHH7$H}lzCa&S(Fsf|xoL^HKKJ?u0Z#wpeMB%cLB1(j|SfLj~ zRC46+ZB{SrJY4lY+zLzW_9jBA!}`o z;(_!66o4<7xzD35;OQ;wyeeVjC->_Bs6hSa)TCoFHGgqxnNmIH))3$y=XsNmfCf#u zqy$^slPAOn2ec1(`*6oNT~3negV~N(y`;qX@I3pD)H)?|<7R35E#h-mE{RzsZBsYQ zQ*4SDLn<;zjtjaibzHioez0phg33tm^=Yv;qq5oF)y^N|TO-SP!-Er7VG9zJw4hOs z07WFXx$^Y8Fk9G@KJ0+7dJ4C1swYL`$Wn=&?0$aA$qi48@)!bOTCz*-2*M#@XDM_e z<4^87`pWxuzI?#W`AQ)Pl7XI!)9s8><>_$=hn{NE1@&~{$C5M1K{lE*_t@-Ub0h0% zKL);Jx|*qZ6eQ*99Ln{l*A1tjy387b39tHi0L@*BAZaD_C&dIWh*OiLN((wJvr%LP zFCMjJ^H8~K8Fq|p&5BB|D)!Lk4UUGfWo2SzTT7gksFRqMJ(jdIR01I}!*i|Opxz`A z!3g3i_!Dt2aXv5kC!R^{Zwz5y`2q1eisJ)2 z>FM;EI@}`8RNaI;et*&DhZlU4IK3`4Y^&4Ex}~`-ft*A!+AXnF_%#HB;wRe_$}>BL zO0}&`@G{O^x6Ia67`BZfsva8=PV?u8YEfUYqZLURD(JUt8?C#%Q6UEdj^cf*W6PVx zgR4U!*`__dG2*M@@KAdLjr~Hokz~QPBWN9&zXR=GNuhd6$E**epM_OW>!-uQ$^IoE z6JQjo8wRy6-ejThuZ0U|wK0+eLwLU38_Uoxy*j7m5PUUs-8pi05I6JQ{xg-bHavsS z$B#!~<I zKSPw#6M|ua8Vc^=_nL(q%n(LM}-y$wA+}GhQ8TXsW*;OBtHr#Okb8; zfXh)=z&t|;6n0cd>yb1PGqKgrfkPN3fglQ(Bq@js==D&#F3Bt)3~@2Ra!Wr+r&;nP z6lP#KFR1piBbUj2E;VPwgn(=2GcBXA^JNdXNt!hKzyb?Rc_hJA#!Ef3`(~9--*Tkg zH8@J!*S;@G!}A<&UTYdQ?T;(tC*_In-{=G&8E$`OWuW35i$x7R6AE){F7ZGfiS&F% zlAp$2dsBT^03^=9{9YgT_T*nhh4ERimzvwRz=F^Kdm{LO_%_fv@Zf6_siGo4+GQp`j8Z&y7gu!4XuI z%JENB`mE&OJoWMKv;uEu>|+=a-^c#|K7ad4KLRRO&Ufr7!Q2I2RS|I<{dlOswgC(i z>Q~e`+jc<<@*YdZWW2gp3HHPY$~ejiB|0PL<8b#sLdRaaNUd5{Ov@O1QZn(ZUYUa& z3b}2lWVbLKa|V5^9TcSz$A8-f$9C@;6xyV53LhY6>_esQUN#h4gWd^r1;7TS#t(O8 znCt^*I8@^|QF!p_Mws#}=3R`&gxxsLfNLIgS586Uo_5i_sfqo=XrCS zm47f+<_wOBRq4XW%Er(2h{yt@W{nUGRzUcf#4iwQcjZ~z>Uot+BTb}9-gPyVZ}p7D zjW(r8<+fJ5UZ=xjt({*iYOrWmebk6d#IcI1W-P__L^u@WvB@NT)llRfx*vyDbwYCe zkCv$kgm*%S>7s020~RLb1SSs;ha1lGoh!Ou)_+CtVX4_NYs1rX0|0}Hiqf34G3CPT zAccVKIU^+L0E2hm0(W59Gl{L4jn-kCKWqkejBikQHCtlSlWBnGNv~-)t`Cfff+}>4 zL+d4CUFu^()HYrN8N0YoGip#h5+Y|QvKA$jSneRXAKt^of(RXVy;=h+wo~6}d(X##!U>IO_w1t~ zJn|3*R+@ypBI}Lu$~Gvm3JTpL{bAAAJW_5dW!R2*dN;QTeLpJWbl7q$l+mq{@Fk;X zGgUm~XGSRtHixnwfH5tMfFLdH2|1#RHn16bU}6e$F(V)66c*Qj`joBx9Ys^ zEvLBq1)<%lAU6Bs;c);0K>fewTLZ9$(jJ6Ta5`Q-XeI*>j*&|Bz?}_P@cV5Dk#XVW z6qxmax4>-&V8d0D69WIXgBZtYAmT&Wle(lKS)n{J;)%pEvwE7s-cta}USu7zOBPHT zc2VcTr_UgYA4?a?GdT)9)|lUAeI*n0_wP;jeV40}SntwR3Jvq5bg^Yi$nVEyR=yng z-A^oE<3DE6hPV~gk>sctx3)>Z9BMD&^-ThVa=Rnbt#Qe7ELA^$CL2g1;zpJ{uKm{> z|H-P#vCJRwofFVq(dQqG@l}D$EiYAhx2+aBfqKxI#|WU!fu+)%Ttoa`G&4v}@(u!< zkyhy##7#XIDx{5S;Daj-H}XfNnljV8l^+#gFy5|P_`W$5)rvmEi}S~tbeTuHr(6PX zxl$Xe6BHxBc7!mN@AA!dFpdha7gQM7Ov0QnR)_A<(YaJK1#`_Zsi7sDF)Aq6YT6Ua zZFtZlBwTj{EsBN9CMRAku@!mZz=k@RVyHU&hHIeNd_nWRA9z>)5M*KzL3w6-!J|?{ zFLh;NICwqHo;zA{_^x-ydqLVeV|-{5!r%VI8f;f%c_o)uRK`Pkc4^k(EDj|Gr9~CE z4+SsaY)B~b(y04tn{V>M7@n5WELkX{qD}{?BC3|=G`Dw=dxgDf4TK=yrE^w!^{^)nu6c9&@4Xw~@63C5*W&$pQKZ zIyVDrIf>UJ;`Cg2vKD;%8)D*cPr0gx;5mac2BY?Ye|8mho!YMUOsEBL^wh~WZ^!>| z+qpLXey3q_!@pU4L%?J*P-^dRA*MQ10}~pAQ&uf54VSj+jaV>+KDpXi$L)GQzXcXx z6<>}GYrG!4g+)9mq)K&VNEYUOfo=*x#n%T`0+xqYNFCsMN>bhQ;jAe>Vdl%Qa8NFh zWtv)v!+(~}Xb@~j@iPuXUhwQ?S%*4fbct4gWdEfY{z6)M8h3Un6PtizRyUaP-Z0tzA6|^028J3-# zyL+=4@j1~v@{8)~`8#Auft;^Q;R@||)JJ;SzJgG-f^HPGkUH1o>1aW^K#3+7s-WZ= z!H^znnIB|J(;5iPW$Cn@13o>dpm<+B_{tLF zUG{ecv2PVZ0VRAj;yA-=r$78FIj>A5#a^(79mtTJvGB?4Ms3&ajM{n4ZfoF=sXmuW zH927rZeSM4h|$@Gu$bgjha|=8t<8yPD0`C=ZEm4+so-k4)HFEy^Z}Ic4{s2DRF{R= zb*0-0A)Aa^4KbK2n^NUhSzS4lO^XvD#^;+DdELtZJ-zjf7XHYPn=5-9yYxlczXf-+9KIP&d2yJn4XM z!xYOT_M@n!&R(}8G=lH{pN&(j^)&>jltR8XNJzma4C7B@J>+B%LQM|iIU7$vqy$)G zx-Nlk9`hRMBj)rBf$H4+O$%m^e^|K)m3cO5@v3iALeK>;X(tBM8jHMkWj#mltrEo$ z{5P<1!)bKrMRsibKmDfdj*4WN|CUc}4}TX3+mKc;QEAmo;o=uRCcs)@4^w;?|@j2EC^j5pEWH3 zzrKVbwHj}R=bZGr3$GBe{A`I%wK&I@mq8BTT$h@a8n zj0@XYL-^X9H|7)*I2DK?|3&J*GG_tdJ`T(FhHkql0obKb72gpN}c-ZkN7~9VjS=_d5=1XDp*!*eK9a)b)E|&Z^M2BX) zn8?Kt^NwfNy8?!R|7cyKm#pvo(3ls6{pI7$m+|Tua6vyJ8>kEk)a{G0P-I=fvx8yu zu-4Y7eSV4To&D0mlx0mdX@D(LH7v}@>mK#@NBEM&2>;h;Srv5GB)*|l#ILEAPNuTK zig=m4y-GS|j>IU?pHJ+@-84j8_;j!I4q>v*@8&|i!57!~st0zN{y7c{ag$=oN{vCb z9ZZ|jZ|*3y+ch~`yqLjH20+i2&Om4s_BGt@iq7m%1~TqhrX@Z~SqLRwsug~|<|WKo z8XxaVeMV-cVEFh8uV?l0d)I%;F5eEI@pcvp@;+3EQFC?~5vU`!-*;vF3(%sm_;i(m zVK1Kmi%2zi@hftAHSsi7kNAP+8!8EqE)$5xLUbAIv*_CCYp(q{+%gY0{cMz<@NKP0 z9tCl8ps(5s__gonQnb1NoFj%jT=c-EofwB=Zw0dRj?KpZpK`(pQ|;53{kN<01Kv=A zR>cOgIC;*y+|;x#DzK}`5-Qz5Xj~BHSyW}XKn;`%Us5?ugy*{fV-ycHV8#)bz#=E# zuLu6%|-kdppCn5`JKiCM9lKiKJPLU~=*d(BSc1@3&=W}FC;xv4w!6TNB69$&d3!b&Sg zQeZXhdc4d$hR?*}vJn_Am>zxS*}~=nD^7+Lx7wY2;~k;t8CMTPn~h@IY+v$-4Z`)M zazk)2fdKn28Y$#80l;PTsRfu4!va?66ZAZJFgTHg#9cuSb~vg_!T6~&6%O<`hCxZ) zttft&^(Tl1c>+bksrgb;-A}^Zi`apBSm&6?E2tA1WGW+_2$0|!_DR)c&#C>bks2$1 zfj8?s`igv^TbmI!m>tmTNvq};Ja;LjBX%cj(#*l|%~2i%_K(#gj5tcII<-#cWZ^1-KOY}zJ?A*lp#1?9Nd!Z#J zODWP7@&{quCxeTF{kL3SN398zg^7&>==~w`xyS5Q!3uiU;C2xeUxrk76pD?q97;|} z)+L5$M21%#>$SA%U?qb~EgWR2H5YSQ5FrWN%d7wnH3T7#-Ojl@%H5nL* zjd}(Vr)3-2LJYq)k0b}(F|W^Eq}aRp&4lb_4z%KTOVP|8_bCGURdcMtouD!Z7Tzif z#4Mnx5mV9+Ph(R^cUdXxDehD6H2$u8Ky=SL=u+KFf7rBnKs&%Xl#cU zcOR+6XNOA$nk$%==8pOIf)E{D7(NGJ79XHDI^F~f`uhqZJ5BYusS{56$}$`3Wk5?H zJxO|$*&F*ZRMQsc?c`09LU>JsOc++1&MfaS&1heBe-99i(=~lDV>oqfdt?2#q`0UP z;?6;ARxLoj4Uo&(^93nB;d+xSq?X3IPkb{$P33TFk((}cl!C9$u!qv(;={3OSqWZg-&zgZ269!QN;O+Pf8QdRndRwHEd6v27){4$t3?%UqqrB^W<_*>L6HW4n5U3W^ zqd&23G?6Y`YBvE_QXUFx2&PVlYky`tE zOjpERyN4O|WbP)El^L*ZHNYn6WEqro35qeyGz@a^B{;!1a6pe%4=EwK2kyBrf{rHY zh`A~^N!DYbneHe{RF0QE$I2kNmW}`1U|$fLL^Qf1{W=AuJD9fuG%6Vh7&7=t$9EmF zl`Q{k_W`&Y0sd1p1W>T}o_jjiM4|~ac1NgVJSpUiP@GD^P%Sr&wXV*^Z*{m;)Yiqb zJkR0H?i?|DcMksejg3a&pi|{}(Pgd2V)D=qO#ljqrT9yL+^m3@7SD9w6Iu!+^L|?| zL~@*`xR2apefZJ>30(^TeBp?ikcJm-f{clZ@`j-}R_n+N7V)yo(Ys^|()BfTl~{eN zbp`iOmyi%yJ7t!l&*qpI1m5FkKY{K@OQ*Dj#vib~Q*`y6)VC)FOHNC<6spk#Iy%-n zN76-<-v8n%r8!!;#0$z83W@4o&`aQ`EHj07nf0f)1%0|XeW?&GXQf^U64H>P-e@7D z6_-N17||iG?tL39kc!e+n}4(RN0#0%X!c|`-~V>2#%m;_!=+Ah8q`YUAYw*#@d!FG zkL6)FPOGI!n`CNw-9&zqUBpGf(zU>(9Yh(DKZ@LnR?epQM1OU>mr zl|P^XxiJ+Dut#$0u2gX$;@i_~t`8;^;=m7rXh$COgHS*NECxr?MF!}G+zKjw(wn#4D${ z=l&vU=7%4tqgC6PWY-82GHziZ0rDfk{e9~c6~6Zz;G3e^qgZZ z@q6uEVCs0)IMv6$kM)CR%)w#SjI^N%kS2PsZU95}+z@ByRk(m?l$7a84S^_gz1NmL zui4kN>b~1ppWb7<1IE~!oqGr>8g|vIDy_SLDKw`FD9mArvHn@#iOeBN(SxO!L45T| zS-1k26od5?1yvOJmPS{5F+VXD=sT(%*~*}zdjnsOxS*eE2BIc#=6bl;JrgGLy`c7H zE?85Aj#>P(r>&k{4TG>k$#6AGHN)lR*BB*OuJK8@?p5e9RkBW8S(|3gs~yiIL&Zg! zO%cyzO>ijK>))sR2sI4db%;EgI>H2wt9Eu6SVA&_2WMX{?vpp@bVlf32lh3E^{%sn=4_;}5>I;6$dvm24a z>L|m|7*gTT`K>b_@TTUiGJ@IRPyy_u?up&#%M+fWj(xxNP2kK8u;I#i9>eyW(TC14 zXX2{O#~Wr88V=|+2qk^-UmMqXgvWZ;s}jJAs;R|>P?Pd)_$OHxCPzUMGSE9hPJ*=~ zju@iuS)=R=+KFUxS%7M4A2^Ie(2<(KRoZtd%qyLQN2+lIGt|sR7)gL~RV-T5*(A19 z%1<=O$r1%V`4L{lq2RvE3a>gtkqXjZg?`v3Xch8VslraPZE-t55U?+MqLH6Yx@Fh; zn71XO>RT*hR=(I1(I6ClAQm?Cv!?pqO24t0X@F&VP+W>avp2f&ZO($BM*R}gR}0mo zlToy|ab2Zqi#>ZVo9Z<6n!?S0O{c8Pz2PE#B58dByRY4lCt`YTOFaqiiJ_U&2<)HV zoWL~)L&L!1YXE@V-+XmKEH5jsi)h0P%B`1Ivg){-$zv^BqUj?g_J$R!*F(&8U0`1$ z?azxMQV{1NHxz1rQ0}e73L2aXFEI-{uvojl<&zCf6b5Q8`LU+}1^SjA?ZyYNO75A+ zq8vdgEbea+fft=`%4sMX;q!elEl0=CCR&z17fQi5^=r`iz4GfE{y$4=R(v1J1z*c; z*33vc%AG?T))!6mQFX8InnVrRuLg!e9NYR!m_&I0O(b3|Vm+uYNHIZY(aEKjJk7s3 z)=n&&`-Vv8yHX0TmeGR8Bwm(m-Ci+WisVYGe!G0SZ5xWm8AWPsnhd{(Z{*;H@fj_W zLyf}gVwaCWwUxaPhb(VG4=!!@Fj<4$o(R+k$+rAP%C(GC9eg#0jTf7z!kWGRO0-R2 zU1cuw-ZCGY>pk@9<~GXaeJ4mc{(-ODcFqmOYk6U4sK`Z4VH90AZZ5vQ_YgVx3f1$ENt!jXeKW#f#sb#A3 z29UtBwen6gj{Xuf9}J6K*_7(OtHrzf%wmdPiXyZ4~QQm&T10jK?hMX1}rxetLl0YDHaXfVn)X4ZUp3>*cWH5`;rv z0fo$I>aHyYg@2jKxnD6#hZ=e?;cK2!1S8oPW!no*)hf^z)wMd%}>@W7XnsoXzeXWRA9&MjDc3U86n*;WAw6Hdq3F^8LV`2Ntv!Amdu9)T(U<+VY*=0%e#62l|>@CxoE|b zayMwYZZ8>E(u_rqX(kJ%qt=1>n)#X;*yEFr)q{vc98 zgcWt!0#y(^wTmj|*dXojs!`VmM)_z~aPJFh4rXW1c>xrWP0>e=L@v!+kwqYomtWDZOK>*MTF`v zL|T$5ueL9Ddk-SW;S6WkUs@&>!HKkF#GY*5&Tt^`>$Kicu1bK(3UHIB!gzedXM{8R zp=iPrFKFA-ILIM~B4$n|heC_Jz<4to_XNm4!_V4u+qHVvmqLe}pxODqKW%0t!4kS3 z%wJ*niNIzol7_8R;~O~ql`1#XIAWKXz1ce-x1LM~7S?Qbi0#|pejx{h^K(idqBmVP z(Nm4duXQvbRbEtS1!%)rySA=k#->IGyoi}hWWPjwc}4w<1NLj!xrFMC)`T}0-;8jL zJ-rR61`_Q{c$XkEv?~h%sMW=3;H9XS1QzcUK29E^YSe<;5b2;#ONsvTIL-BIre2|hcDP7e*))@76dm zB?U?PmYaXNjfK#-=?q03KK73F)Rp|j$}%Go?zPh~RsfH+*8**(wdHOLG~kJQF%{*e zc96x@INqHch)A<#HgCi9jC51T1GcRqwh5}n8IX8y56xBR;?HuEYu-hh*VJrKOk)oZ zDAGdL(zq)^vow8@iK`t#7siq^q5Me9R9a)SP~*VY-FTiADT1-xHjXyH!r}0clc%>W zwtQ3OsVnk5ZPn(ihGfF6o8->zJ~n_`0%OPzdFadrHm*h^A~VqHlq|R1jT5hRm#;{| zqyUg1EIP#=9IWIL%O#nTVzJWGD55IvsfpB{i~TGtYK?`5h6 z*_tU0eU~aShFp$`pa!PsI-5Ed*+Ef&!=>@eit@gRrFDp5cH)ei&!XT)msU$f1WSDB ztkCv!a1AtBj>;o6!~BrV>L}*Xs6Ag1spqLKnbu`F)Cgvgg5S2&RRI{MG3)BoAd+X( zVi%Wwli${IFZRXAe3IOQdV%$_U=^Q)9d9@gNHvmH z{};;P9|2_;ggJi1lA_X=gG$fbp{x28bJ2xR9cwmaFzFIH}-uY~G9Dd8bf6{T~d`ffDAlko|6qdameQ2b5{2F-@?P1umM2>>q^;t{>3qr8oT6pdfh!PET5C&}HrZog+R-|_vx zJe|U$jPZ2D=WDCw<9OPyoJACsT%Ybjds=k9pG6!1wb6yN7%-3t12{Y$-URrJt=(My zNVKA=ancY5=DhZ;W{p#N-qN=zb2G=Rm(%wC`!Oe8N?XtVWokJHAs%qRfq>QFj%|ZI zw$--XKv35NqW-m|gw#ylXBLH9p~|#s?>ndPyTp!Tz~W$rWahH}R+LTYBWbwrB6J=M z>9eUW1hrZm1v+cjnAk6QBj3bqtKHhKD4f;7QUd_9R+}F~smG~?)G+!g=EhX`T{C&~ z^|7Z@Z1F^!?o)@#es2Y%g>%qf4>1f|RtSIY7O@pC9C^=;)aQAyo32!gwC2XZp%E?< z(n{b2njx-=(F~P9^&<##m^c%2u-^+kkaWNwV@FD2k?cej95jc^wgQk9>+GDK7KPJ= z(3WG)C!nDC5w^T*;T`%RZB;_$BPb!>H?9eX-|zDK8sas4$Kzg6BC@@8A$ediy@Xv} z&*=of@<4G$Hs-f*cO^$&Bxa8U6brzqC_|U^=_8UO2fe*m5M+Nc1ad+llR3tPlScou zVpV5gXQr`?ueE)h)TlO_4I(O4{~MD;HWB{~3^%|g!VKJ~_h0+cXdrCl==#rFe;}t0 zFVg;ueT=LT!#%FQ_6|EtNdJGZF3KiaS9G|(-~Jf2C(P^P`zWYcVA&(KsXiztTXUGt z&KJ7swES~Bp>aL!u;C-A*g6mdL*pG2)xC!sU=h~KxnC$1na=(qN;WGxOv*NkN->Lm zyCM2AMWnB4dXu;-nYaZ5LyGFF-tY#L<@~5J*OWc2Lfe8USrgTp>lzBWGS7P@dpg7d z*Q?lqw9WL`Opb)MOg{PSaT_Qyp9E!y7kFvxevigfB$oMy4m7)@^*!8K4;)h(9LZV(nZLOCn zVfR>{%=;dzfnRA7OdEWC7d`)1$kY|p>o5_NciD`73|=^-zdO|Spm*Wa8Mj-^B@sb^i(&F z@tL+->@#2d0Yk|JDRtz9c4(H2tEe-PEiD01C5|MWUUamrEl5z_C{*$lnSjrKVF9~l z6QzWv-;x+*cfy${%dP<=3PI$+p_dmV3HuF#!zZc4oNGUpa|rkEypC)3(K5+?7p^2? z?LO3^s4~!!K1TZ;(I%i+xUHB1?Kd%aOc#B&j18{vZF=TE#@67lEfiTKckuz!(F4Nw z1~TAf6l?*Hzy;E}90{dar2KEyvI0Q_`JQN3a^r3xsv@I!UpWGTe8~7Ry$%7Ti-#D7 zDHRuuCQcOcnX?&j|Nf?1kX$ztE9K)o8weVgi~{58C$+P|Pq$3RKt5h9$WKT45xkOX z+~%qvXvl0Z)J2q=6`qSf2uOB((gRxjcldHgGuffTWi3Yqg)J>WH#_9v^`P^z6K1nv z5F}$!2dwC?8DOmkifq6S3hN&Uu(ZTDa7pVJ*da!dh#mmdJf_%`kaa~I9rADE2LDol zQDME~y<+_rT(Js(fy4>+OmQZBp3gg*e7Uu>&LdpLCWLgUgcZ}`0Uu8;%C7W$7un4e zm6DBZk7hPidF^&OVW$co2?R6OOG9WxR%`o!a9M=>U%>2~<5DI6y6|Ym}9>wH{K`0ka z+#nWwYBEK1$XrlP-4O^s(c6dYdtGl=c81S!lysx2f!7C8c?rwb1#s%bx4gO1pPq$p zCdzWL%#xhi=gw7s9zq|*W?>38V4GbOgSAoj3l;(9{a&F5dL0B0gIEv*L;9LVKYuj% z_YWf%fq|`m)nw@EWwRj^PKS}`H#bonkX|-e`{EYTJZ>0|J()RXNLER~Q>+}*dGR9c zkx4p(un>C@O2D{eo9z|6$RAH3g5LvD20*PxJl4EerU>(=_KDgsyDDO6TQ;jlj+sVo z&u<#`)1McR;{u)*V_LR`C-Mrh#S<`D`+h(^LfjTyP!dw#Q@*xU8g5JLBV()d;=s%P zeZLMK$6lh?OBBrGzkDX20WNP`f2s;-1_~b)S_v4K%?${(@juZ_Cp<+@+RphIx`bk0 zc~D%}+K8XFS9tALov8TO!s-c?*|^3$d20`4?QLpt?~n}8wIfNB!z2)BEmD5?zR6|~SrUCN=64#}xRUUB#%4sW2DqNC^?~UCM0FDSLIPZmWlfE)Q6bd0gZ2sU> zzMKxiUfYw5KH|o?21be6uC$c zfnqR2VZv?`wJMTrtVu=p;W2qdDzkC$`Dz$GPdj{_CVgpE!x#z@gl?To4)ndOL^V%{QVK8gkPt=T!p&+K9G);rjjF^(o; z8m0K~;>_q+Q*DX-=1DGdOqQMfq7|*LspG=(CGTzDZtDn40CIQNYW1C+YZh+^JPzJ*q^Ip6LbgTKaT?$OL#VzsDk;r;|EXZd0nGWy)z zAgLcXqQwl5pLvPbPDF_C?{^JSo!h3kxE)KtWJ%W`ZWscGG`8CAHDy}D^{{h0^yhP5 zua;x!)erEQqv@KhZO>^3w4FLXDJs`Pf3QU9!=>#EL$Fs}@X$iGiigqh_SNFMJ}{Fg z6&@$7c1TauMd8v!#cUH_VXFS$38^)6cgK_{5{9v0Zv8-^sJKrp_Va(r#!Yj%I?yt* zjZDKr{7x2V?Xo;xchX;to^o~8DEcA$$wX_;Lu^?}cA-nv=Z;xuPhjx4N(1fcV5l?~ zpM<&=lGxw4g4^@2{tvnBGnb$t9<~jrK9w!tQXXsI8&$@qbq!sAul(7I*JapjtPvg{ zI~O{0($N39VT+nm0ml!^Wda}t?c3foDEQqw>(Ov9aFok?2wqf9OfJ<%rQU(zmOXn@ z@LYo>795|%S@N!B-&P*FMcwJuqqA-f|Dj01B}Mf_MKxxiU_DJ}jZ z%c0T#r_R@Km#+eGVAH-$Nci0duVnF>N>6)RIKxF+CA&d8nx5yvhI2rjV(1=UY!a^m z2AN_OLb?V<+MT&_SHN?bA~;d6Y%ZF~h_O&mfgEE^ZsaReYKRG@UeY(9aP$y)n5v6Y zvAfsy-qOyg^cBc{@<`o!3YNaI9DumulL%or@hrw~fcs97+lM(!Z%GuSKa9d^)w~%p zX%#Qu9o4>${9#0>pASxNH#EKQFfTyomF)`PZ%OZxc4qB0%x9n@uj1+ce@uY9!)XZ1 z6YDXj>-#=k1tS8KTv;Lch4-K-Pzs>`nU};ckyt4Ph$Sv1VYIO;UL9{vSq!3afpPw; zMM!DrJ3dvC)Q%MR)jj>JKV4p|jzvbx?^T(eE4in#7(yb{t*EBoZ};gk1JuxkW$}DzX4@2b%Ijw7y}Jhz(vE_oAhG_qGy|p z>1Wf%G6J!v`swQPH87utm@g8;s-5qQlX-|M&QPTe5SmIp6(_~&0W?$BZdnMGM%tKu zXdT}}l^iwAL*LrtI7c_Gt_RJzU0dT(gTlm$Da!t||8rR}Z>sNP3B`*tS>oKmNMZ-2 zk+I`O_Rji!)j+LPatsbL+#HU|9y-1sE+@n6^U%XjcV>R)^N|x<#Ii}t87TQpUNZT; zpj=OU9Pb~9R5+V12r1*I4*oz_o(~=TQS`=ezptfG=0jm)*>0R5E*}0PIY#4QXR^#Lu=Q@P$~Cmz}12M zc~ibDz^*`~hD(=~JLS)_``lpkI}Hr@MieVEmVmVxchte(N2#YOL7vNR4*HIX?2Rar zG#@|ELy#LL`js|s+U$GWr6a_8f+l`;9%XcKqScfm-C~i%nXEhXJQc(C!Y&?p*`1u0 z(4ToXCmbI(qgior%%f`Q@k1fV=$a$6?#?g*#|Jv0XdOMihr@K{bz4b<62Pbr|5j^osm^$}(Grwl3F-30sg4&2;~ z=73=2ytM3;?pmz@*&oE)d$tkRizklB`9{ftu8Kv1-dg!)m@(~qxkC|`$PPkH9J32W z?B|YqayaVD+NeG32x>(19L{r0m0Vda<=N+VTw^2`vi*p7uCy3?%C2V9SblBsbB=U3 zBW%DY9LAtL)3W=1=0cAkFPFF6tDe3C{t1Dq)Zrof?H??O{izKsFlm^UhSc3%3*ywE z(a2vCt>6W(bP>fvJmEESv7&5;^G^UW*YXB$&4v<6ZQLKvg0Q;@_H#oD*7599bp0dk z%oe0A*zR%=v~_%(@k@Ot`Ga<%LxdLHJ`$M%{^F=GhWk%;01ip4WU=#jX#u z`n~0OAU-e}x&Z3-cnx)zHOTI!}>hfaf%mbI{f(5&EsLmr(XtqC?jZ2V&%I zx(5Y^TO_^DF~mMn58_bv>5J~34&enJX@igLsPj4SFI5MryR+P6@@6K_ ztvmXoAb6Ffe%((cjvzOEsYZrUa42V_O#etMR2dpRc|?!`pWbegZZmS7d)u4C6e&zP z;8a-~Yk;8!;Q1vqP*p}~PX}Wqh>C~#VT6iKY~=E4Fx0GzjEQ}p)eJIIwujd#_qeeM zwo(MCR1XrRJHgWuo_AissZ2NO8w${H@aA>Vn_G!YRwqz*wYj}!7GiC$v51hr&O6x} zv?GgO&)u~&Rj-yGJ6%u#DS!|JcFA8IVo3|!&r++v2N-*={A3flzB8X081!a17)#YO z%|wx7@u#V+m9*cHlq7*DN}We1sE=g`?_cnM$^8wEyF(3afWn_136(0r~RWVP=m;QM4Ij}NKL zP0F9odgmQ;#3NEm3tR^6jT|CQM0T+WSmeV4Ehh%}N;U9PVclc!b>j%(yCksbCcdfd zHBiP*NBxYe*&6q;4Yc-C7DA0ydTAff%Qcz0KC#*=2}#}xqiN#vV5rDZ>V@x_@@M80 z2hC->8EyE6uWa1;mAO^H30%$|RjsTv+mDb~T=09orlQ0U{FmW3dHay<7%WHmnYORy z#%m1qa8omVj1}RFgNVWs^aM6$lL+dETre*l&uFZg5U-(V7R@I+2{HJFmx0&s<(ocs z-bYizi35G{R8G<`!C|7|bZH4w4NKN^1&Z0hxZZhNS64F-}+fJZR0#*j=THQ z%tOe4^f)#d@lW|GuLVU!CYe)}Bpc%`#3S%i@D<27GG<3Zoty(}wf%G_RmMg?o9riLauKkxcVYO<3 zvyY3kRC=xud8i~~sJxW~M-C>Hf&+VO{}`Nj4^&3x#Irq=q+RGr@(}(?WxC|LNqwHq zR5MbWl2B)OIAJV8XMW!j(2%uSE?P*at6%G6&UfHp|G!26NFZmhYtmyFf@eh)&U_|$ zo7Dd91tg-?U%0nIm;Qz_F7oCRhQmWnnX9pp9YmSV9xX zQ|01P1@?xsQ(u8@{)g7t=bzB>-T){05YQY2J1MkMXI}!XWM(=(%AnxPm;G(j{}QiHSPBo99+D6-f!t*AOP$?rIcy zGnwm3*~u0vq~z!UmG2ox05JFf46Gn+77Qvr9Bw})-j^9%^gRkK8f)qOlk~`{IB>ZW>0OZ zA`P%X%U0bF3)@*Obiim-PdEV%H*1m3n~POYTKjKf29T+GfU*nnceZ2}>E9ev^&1V-7NWWp5 zn--+0DzpPu$VSe<^)ntJ5$kz(8oAs}u%!+QD5|A(L@l^DcdIjvo{&2k#IVE(xdZab z+%=M(k&r$Tn(M{L(F4ZFB7N{-jPGtqh+j`0BtKr=kHxsdNw%XBK40-)Bo5vZhsQeJzP{bfiAc) z@_ju+K6ZVhT4F1_Vz{=^LmE;U?M1l1Qf|UXHx%u4rb17W`*=ZAl&+#rP4~6|k_04& zEUc`JBhYBGFy@bS;0CbGRT2w$-&(s#f52N$OY=PFF@ zYV5j}7-I|`R?gCI1~LIWh-ougX=KMO?$L4{1*HiKq^<&R*Xpj;Phi+=8rcGOyPrzK0-AVmh_y~4?_yvygl$8^%$hd;}fkeimod0 z<3^1SjU3e6F;c;%RW0PCg^qr=XMF^_?NtlcHa#A)Y;{E@X6$bgPn^qXcqlgYfM_1y zH>yRy35~4QAv|OFkY@#vi9?QQJ*~^hZON8G!GGS`e*gD$2`SS)MdS#nuI9_&vxGTq zbi$NTm0)Oj!rf4P@X57U`mJMw^m7C$5c=D}4FPLXv&C>XC*&MYId2XUB) zB=Zmiw&~~8)CV~-&~W`s72gtNWEW>5;|e_9gFX{c#lNQ0B}Z0^8^Zp}Sh@8G*;EN{ zJKJ&7`1+xUSyND9`c2j@9U;%#=Lyaj`&tHFP#Q~5K%;}(H(S8f(}NbC&Y(QS$iMH? z8FV?zrvRg3qb`R1v(Q|SKv;UP3fnx`!LU$&1Fb;*05Gv<=z@%igyK=xcJ0I%F>^WF zp1`-boeBynIb2^J-`mDxYbc4SV6gpSzkRqxblVh#qg=HsP*}uY!crPM`^=)@?$$iw z_DL$d2w){BAJ+tD<_iNZWt=x5r=Nck{RuW*IlE)ceY0)4e?E3}BeyS$JA&JDo)W{o z{pL{))E(Pj5rMPpK69tmHYbeT`~4}RV&)^ZqcL8gI_9HEac86<2Lcal*>tZkCGt-Pb>I;rdAgY@Q2(saj_ME4!| ztyG&nCu9J*H=hZNh=-j@qb_?o(QYg$!Xm`uK+Rxt=v-nSqO{(2dzA+EPIm6Jloy!m zrl!b0uz`0Sj*8ER+@IWc} zUo#%ESh?)q+ zPBuRtjF}TszqBJmlxy=bnPG&*s&$CzmGd0}Ahk!trAfRFFYSK7$M(>EDtxF&7_ulz~)5k0!Nh}Ie)2%+=xYtyt=vxa# zrRmMhIN^21bR3-}y=fKxcIuHzEL$dO#Ted>me1u4Si|hdUW*RxA5u6r<|8s57kww1 zq!?QPzIJrm42M2jDNUHY^Iay`Lci>)=seWx@BJ1;MyMj@t>9~rc*$~dSkb~Xf*RtT;jZ3+P&el39~nn#aiaUcG^NG=>{ zt$ypGNvX*4%N?jXhXWZBuV||zJX{&A``Fk06%kF0b}@C!l|)0$tUpTsd&psa_;l3b z5|eYk`$z^P)YgP}vgn|FYwhA;2V-=es!r^2nr8+xt@#l)VZXoAHu#2u)) z1hGr_7+u>4)rQMvXgZ0gBmsTwxqC(+3~=(VuGcjcV$}o9F@H)_O$>`SqRTgFmOJhu&KuuQo%w1v>{6TboQer&k2Y(Y+I9jJ7wW|^US z9y6Il)nPp4Ut@3If%BC}TLE;FOP$sVADC1G9S+Ka++2NypI&H>QVx$Oua0?%#er&2 zI346!d`~~YQRy8jclmBm%qNuJ)!fs-2l%&+6Y|;58wKbRxdQ zM>Qcn1na_~VXcd@I3`@g*kR(P0T?tj zgAi_je7N~0a)*{N1z!w*M^-0opMYr0rv%n~HX~F`z*LB{_v5t|N?9409O038BLz$a z7hR0m7wrv(Gj3&4b>ISDlN?CZs5bjbDFFXJ0KjCsl*bk)UC^QIbb_5VPXkFk-P|9D zz)NZb1+q9AqW%w%MoROQ{fs3s%1tMA=Kfc30WEj2iiS>vg~OV(Rt<0 z2hV6RM>neDd7iFM<#OO9hkFE;dOI*9!&L!%KYp7MXupu>=M|s-_fU5Ljzn=xn^F`c zq>O$}p66uSy5*SmsIsbA=cUT(5)(EID`jj%l|=EqwRvG!1Oa=q7;=t$WISp(;n zzL-u{Zu4zBNpMW@Ba#K>BhMM+o>ucKBuq`C_ z_@3Ztk$7)vY9B8Dh))w=20=+q6Yr2|9X;)e)ZiwEw~!9;M50{N{fsO?7aUjq;RrPN#mZ{GZRJ^~`M9 z>%*Re6qOmX3tzLwaZeb2z6V_y)V$LmpXWP*kfl5F|2vV8l1(T$L%5EO7aG;d&bpy;XAPqx-l|nu&yYq zGQ&K?LRS-{R0-mLF{-$G*^p|wi-~}SpaK-_87Jz)RGXW5D8kzi%`yw0#5c|-!oG;Q zxR5mh0@j%OQlm5P>R|6kr#D=whCVd+3Rx!sF>_W1P5w(B_P!-$dafM+_SzG}#7xk( zz_TvN-BE4eqP8% zoXSMG)OKvC3Qj^zxWe}$RF-5;;Xk)5!(l1G9)JstG9;7Q|m^4aAZox$yMj6|) z4j>N+4+{1^L0XP+kkFgp1me4H)KTWtf}i41KYRh#7UD?JVOJD>p>5vEP%i%N#2TQ* zta^jR3ydE!tMI-T3zJ^P5i|aH8$hj;wNo2x7*NhGb(CByJ~La((MH_uT0eH$HXw-; z{3*ukA3=v#kt8Zcr=rc2sPcdVmNWL!6T6G4Mej~43PATeEM`@gaol<`1svd!FD&rr~H~ zMBqC2b-Zv(7p1Otee3F%!{GcDwzl#1r=z1XPO{>ka$@g1*&P?@?lYq~XW`No@}iw| zhqwb$eJh8ssZjqy+PQuU4^t>xYM1=4=BdMDQL6}qCmK2U`TzY*Dm&+DusZW)8>UO? zt-cC`%X$98*F&Cr%+58Zzj>cw^%{X%U=T>!f2TJpm59DenFH>*Wn(J(UW~po2i}6A zn^WGm4AzwG22(m&kdvojG4f0tY?L)ds}Pn|Bq{YhV^k3lufVhxmDig*-@}b1V^5bO z3bgKcNRr3xdAcO+C9@!*`E>n7|M=tbhT#(+Nr~79V01U@uA5OhPz5MP4(i#xItmz_ zhS@JG!Y+^h%b(4#sp!K0t)09Z58wb#88o0K{_cC_BM8+eM0)ieWjc z_$-S#*KaYExozU2*ldcUcdr3yu^&cV)O68`&ZBN_psVX1d+~8&c+*9&Bv5B`4RXM#aSfaOq=@y3OAp0UgLin0hSqxqaml6D`sYSj3E_cZ zaFAdvk|rvK5b3*oidd>kYV;lMDPC)DOKZQm;sx&}Qo7tKmJozj^bpcE{GFx}PGF|1 zskq@mYHJAxf}a7%9(XZOi=kG0u(+KeyTEtK&O7T$H8^5xg-1yoJFNRGbmww(aNy4C z1PuR&W=j1%24Pp;T0&7vcB&$*jWrX#)cqpuDj!3s(g1j0z?#H+?~y_Y8!pHnS&f3% zezY*qd!la4Y!KlrbJAOqW=TG@0RBIn(Hk|PG-y-s}{YUQP?^Oj(CU(%rk4*fqYC=VV38u z;N~riO5~iBQ-TIV(`B{3P;6o1F}wYMBQPxZAlS@sQq~SS7r&=zOyWd#&}UJ(uX{KE5c~?T0qW!IbxgSN!#9in*HP$b%i!d9SHws^pxjgYRBn>SmD2c zdAj8Z7X<`xX!dRdds_b6TW48d*OgYZ2J`$fGeIm27GQy>}8y{4Cr!Ng7SOR5W>`-@>99tm(ib>L3rETk*Isl zLn{2Iu7H;pwV(32vd2c(A3L+w^Bip-YT^$RPC-R4m|l8%j3l+m>2`-qGVpl^r~Qv` zBB;(-J|!^Q-;Kr=oXUUp?TB+tYgV4O=WNv(eS?oU2E)E3+1GbXb?GcAk9!bMxGEi9 zBucY4Y`HH3xld&UfJVxZ6bj1ATvA!aE5i zfuZJn3Nz+c=vJZm9{aLZv=*dt_a&pPZYAxw7vDW zsaSLc?Ngq+R$IacIu5grD7S?PqxNQuvLryl1Q%W)`YS4Pt>_|)t}5&>Rj?j>yxX&K zR4eW>+dK5{n%I+^B@BmK&&Y)mkSTNbL3--?#9=IH(*|QtyaECRl;u~vYi9qkr1?ev7pn380g_UH6 zXvX|6feh|XbT#HGypIAzXke6bbAckQCdQzLTdQ$X+iA`F?(PDCSDl}rcXwR~>;uQ3 zM?tsJNEmOPp*eA2*r_GNHU!|y*iyk!FU#U9fGkGl21p3Ju9uEf2#htA#f()tyFoma zHIX&Wh}1;OdJa_!+I;cE*-?$NB&mG%!-PB2Q=|-3n3S1RE`l-5M8FdN##6Xl^}s1D zifR=6x-`j|neEqBwUi3BTCt}qe?zr!JZ3?Nc=044p$hB~#ET|J{oLjFdT93LJY4Il z>o+J<<Oq5{*%>C$*=?=yCL3{A!jVI%x)i9p7;aY3L0BX>JS*e*j9w4m@$Z~V61y-!@b ziAeE%CdRkK4=BtZx*=8y6o7LloAr?` zfB8z~8dNSrW-ks3BzS7hp3EqA^T`S@UGfN&3+s(2X9A=DxPysP(El>`EW%O=NUhNj zR)+U&I6dKKlC&vPrJlUnQ%zOm9gd(@zALQ&)$3g`+6As{>6g96WE7xb8oqgE3Y{F9 zaAEl^Jz^7}9ehN;`oK$e_l#UPvgIf{2b^C4&| zVAhin>_+x7XXwoyx4btMwU%UXZ&CbJjy9&ERcz@-8^&Y$9oGn5{c`SDDiJ1DE)eMN zUW5o(;Mr=FY~fC$VvyFpqdR5l(%8frX%NjmAuQC1(B@`zeb4>l7N%_Tff-m0=w1dG zls|c!x4;`LP^rJv$$!s*{PfWKcOb;JhNmDBYvHBaLOk=~)vC1RgTKpyahqC_G84Ad zl7NjzcG0-pgM3*^b*&a-Yt-nt+DNk3agEL5-SL<}JZ#beP(q7A-@qQT5521F+ z>^6)E4(6)=x{pW^i$z|J!myOOCzAO7n1-ZIjGCsY@pP;Z=PAl6;l)?T6SyJaDwbU%`RV5zg*G6{)?0RS_HNn_3IwN2SKYhA#SgYK03m4J>j;$Or)1l!b!$l?#VY7wxN7Fv!ZRJo3SiP7pw;CatPDY3@|MbB|Cz&g zXf!{g)JjQ=)VCPd66;NU*%WR=X=_NP3w+<1E0qO8EAP z7A+a1@@)K9qGY*bB<8b6O&7s-%@#Ave$fS9%{wbq*?c}020PVnxW z#*~=uTlV-&a1Ivfcfdui*|}9Xknz&-KA=ylj;N-6d)^qiQqVam8p+j!Rs$F@IR{<& z=ilt2(ksR0{D3gd;DjYJ-=}ndnsD%3LZ`QR8}9HwJoqd*1M*Di*l)Wk3TG`8>Rl77 z>#0Nh9i8+#%pWnaZL&L(HYd}PMhza zw=T&vf z3M?{)?IK`~j0C^(xTu5*o8mly_3MP#L@qYL#wZ^&NX)8aFSpa22#}@LBlN0_ zvO#!_HO@dDm5Xb^@}8|n_E?}^A#Wq(ekP1y)441I|!bGR&4ZJm*_khUs;zVF{vlJ)yJ+JqlhXuMJa2W1TM(y zne5_lQbE@m7Y-`>CoRSp)4pt6C(@fsJg(>Cgzn+g7WFooDFNK_jIzfGiLR;QbE9sc z34f`g#(EIlh-TDau6LG0uF7sH|2!XXddp}^80BArl+ixT=&@O&6iw>pH(ShO;WGq zXSxb+0*aCEglV!9?mGV|)DmmG7InaiINbt{Gh4=Hs)&VAbQ2wJ50qaW;1fo`)C@d6 zUiV}*A#Zmp%`~zqT@>_MI@%Y&`xhP{th>T9Ywtu#H(HSvb5^>ysY=Et zC?ZN=`$9r2hzO2Nwc^E0FCQhOGAi;gs-6x6N~Dhm2WD?! zu8E#Kti+DB{JN=@{9^p90B&rtIyCUqHaI-nfL7s1HR*U0zJX174aKuB+EZws;?6G- zKir-MAaYvSLUdXtX*P+l%d=)yg`sm#4K>)+R7U?WnK2cL=$>J z&W3o#$?Y$t?lb7|>o8Dk$7#8_^xfTex?s<(sN=Re{jquLwXr4^?YDuH$ED`$DwY&| z#o@1U`mIg5=&n!NnUv3jf90_JJc6c2-DDaCi=34QYT-$p-P6HTrcJ-tj2k(2arT$)}G^Ap5N!>E7&UYEQ9KI*D$_w>1z^4Qk~x6?z{t zft;#q5xo9}hLD)t4Dc!STMB$emD}xlgWWMv_|}$EkS}DY2gcL-%$v+Psy{BR$vY*tS$p>oOMd^`q3E{>jEr;3acYFppDD5F zqv{HE{r*mByiFZfi(e!yExTmK{alKFDbq#6jQAp-EJ~jW7Srt8eKnH&!VTHP3I(7% zFukWIZ4I^F#tQ=%*7VBrXj(1OMpIgzx)tnj=*T)TSr$Ubs0tZr<<)E#+{917)L;nJ zWPPpKl8=ky1|ERq=iXfXBy~)m0Q(-l!rK2E5KSym($jhA-YY9oS)Z&-YWR%K7`elg^lxgF z5(YfZ6g5=Pm*a}CL5847vr{#II~mrj%!jlj&2huQgAC1*18X`{@2lT7(jRXUYu5@p z3ABXuDlbi*mB5xCXCLV?_}(OjsZ=Z_fEbR|f7%om?*$`dC|5WORf<16hFq?W1(*c(BO+cB%f z=uO@^(UDQ7gQI$jzU(rBY=QdU5KnPZ|S(E%HStF-`$Nm?UwW(=PjvCYm zy40DrAe!2TDr|#PtJAkITg-nA(fN^9U$kEwI+n@6dSNI<&SA}#A6?bel)vSt^%a3} zm&Rq(mqqPPB!|f#X*L!YCJMVk2ZqkZ8GmbaE7JR)d7HXeOt7S{s}y9|lGSqq;p7J> ztyU(6Lw>pD*OaQwtwliuZ;}L9hYnqJU?0NF0u1s;L)yVk$um%@_B9TzTDKL1lTj%UPj5&gXdIEM3Q)k zc4`F%#P;$`>q4k2UwaPoYt|mueP;}t-7^tc zR0Xu?0G60jz%QN>2M6KT0v59&mbk61-owGc5bxjKVF2twX1!_)~iaweS5s z=WHrTmWCy{GGJnU}MD& zp-eF82a-Fl-VGibXZJ`Cu@JD(V`)vq+><)Tvm?=uR$jqAfeoEpEp$3yC!Z9GZj{kT&0Uyqzo>lU?;95Z|W*+G?4cm*E;F z1^Voq^Td3@4bM&aV57>Uc~&Z8Lj7W-RIv&rR)V>w^3vdW)3bf$#1;K#6wQaugW{=* z30hdg4hoA4a*vUw1Qz2`+vhR_@8^P$J=qUiO*zWl%@u8+lrI~3dbCALreJ>e=pMM! zae^AQ7AgPhlIQW`eNt52-u5m@_MoBGIgnL!}CP})S=*An_=L=)ZA&zPBu@B#(F59AYvXX&LQcBa$ z<6ObEnktO6?)h7>NU<3Nlz7SRQJ0Ryfv4xhE8op4*GqO&)4eCr?wj?uQAEJHZW%B> z55S-H_cN!YhI>qi3_ZXOkDg#uL zwceDw3k;cqp*$aK=s+>t3?C7jL6SpOlO_UijSC}Ta1JDYv&JIfvOpmAao72>TgT)% za2H=3n?H6t)yrQiyVwz59NQj}&Be@SUSi;%=S#-fJ*DQDV5WLX0}ZgR#2_bVjFw7r zD-FWs`3&qaICR~ilfInrR78CT_Y)IGVUd78e6qjwDO+PDT&jDXS(l@L9RML^w8gqR z`Dz#($n%Q_1XGE<4x;cqL))OXAlV$3#WchyfFoRQ(G&U$*jb2@^%wNkjgt5z!#x-x z#NU#Ev_(L=F@VFyv$7;4lfp*D-4@K?I`hLR7B(P^iqRGfQt4+r^3XVJ@Fxx zFm`KmuKyrmt|uy$flGLZm3HLNXtQE%&3K+VeF#Ij+P0bmlBnx7jU()VA^})PoUNZs z#ck%`3T<1MN4K)3>PWCS_p(hOYsZOa-XB;g@4`wPqK{F>=pdz83wXQWV2QcBq;L?e z7if)EiRQJM0@8KX8h4$?6u^dDUZiY&Q^l6?G{fEQI*D#a|Ee=CIPpDdWE5Uzg)3ar z_458EudF4z%K=M(@dm&nXSMls@b)YliPPO}cl*^$^NNGv9nU0chKF<{^dksO)Mbae6`Hhvm(g?wzsGd2DvSIWM zvQ^IgR8<3I=n5UV&#(|rH?i7pZVl9VVq?TMu4@5wV-~UikJ(1Xl`b*_7WY_93i&Z% zOQ`o}v zpcviIF68tLh(-jWffE+A zwfHYP))U;8hMa`sCW#2+{cV&i|3mUbM| zICztRX#zjY;fWb+Pf5%KqeyDc?M6v(ck`*DZi`11I1UU?Lpi=sVUIgoZfvJYp5b&5 zIyKGmh&Ulr03PY^zU!w1;N;+8#2W4(j$D&d85sxK&JXNk-{r3cA}1Nx4epJ1X~A8q zw*66UZQFkyuXO}xlJ<+4R%`Rpbjex0M^;O0P5tFusG3*#*cIorxLGn|E#MT4<7cl7d{Bi~4Vj=K6j{jByQ2IbNS#cig!x~u zmUPAtfARALCW!rul)=)@X63RiI01w&Mq@e%)=bBb^$ytVvMgEz^!4MQtQQB9GH1(? zWU6h!*@yI^UR7(fiZ@;mXLO&y1&-?sXHlS=@6)={9AD<$s@&kw}eKoSox(|A!jD(yG&F4-8!121$;0C$uL zv15X4ZQMGs?8w+C1_&GNDmYZFd;ODvjc=UY99G)&(~J5XXBs+kpbfN-FX9y` zbrb76@C?`Tei92HK86*I%lt3#WXHiY3)v((aRdQg-W|VXSR3-4xTJRq@O)jSkH&rZYfMqij~8*DwKq`qiS9C7HHUi|w&NRv z@pmsN{IuZ?w-b>#j($Hl$gwH`O8~~%pwLJ=Ews38jp&%uc1$ddm%)~bXR2%kRxpx< zk4fQ9E0r&d-(k;!*s-oB=X?cXiRx8E&r+59sWY-(}YpEGvD=;Jf1%$z3s$P|U--v39njC2OfLHd{?yu1JRf7q~pd6Xr$nl>t4 z{CbB(l_O4J3uWS=)cwH&j0C+{wARplT`45;vm)KG5%YY^sG+9eaPDM(>9an)oTbBv& z?$=G!;By+Ve}n4BM?>^>ZJ*ZxFQr64`pb{FPq#QeQ%gajdJIM&&H7X}HyV9Q;->no~A7SY?s@K3~k13ZQz&r*fr!OyNS=6m-5}}VG*m1G$^WY%&eeL4Z z(Ah7@W&1v5kI_k<+|vQT^LQ=N;OR*a^!(EBJuUUDGE+m# z9Tv~unY2KmK0^WRTiNX0{Y@zSfY=b(P#kteu z__NN+eS{U5_i~zXCarNhf|0ZDm|^f4BUyL0B45C<`uxrdjTpy!q9{S#sncv;2L2euSsY zBvj?pN1aIrQL(d8UUw(|e)F2`QYCJwnFJ(kBg^zVnc|61F_&z6kwMwu zy&6($3(wpv7*U_Mdom66Y`hTMGS>pf7`@tOk=T%gU8yQzJ`0Q?<#_hP(v`319ouP& z876{6`gFlX)#C#R6>!0%sNU2{+5mDFV z7`NbZh;BWcv?;ZWQRsA??HZXB$Wv`{6U_QBQd|K^V}ww9UMn|#4&>6gTr!U4uo5iU zvQWee;n>*40X>i*m=Trt{FBOy`xE5#I%7_Zb_qyEQOMZPY#Q;clX9f!FOL?M!(qT5nrw7fYskVdsKo{!0o!5P6>q5xPk? z>=ak**J#N6s0~Zb4Qox5q8zRecY*oH(EN&K>#$D=0jJ4uPm^QWbR4pN{q^$)s|e2# zK1!L=mNC7@Y2{(e^kF+t_uqlboOQT+0Z2Kz>{rkK9kSG;o!kBhX^>B9+mk(7r}}qV zrf1oRfz#wY-(uJTcM%4ZWW3Z|)+4W& zWse>E8u_W0YyM09cggb|j&;cX4`n$bY*LSHy$wm3T-;wR$Yj3I>CDqF*Su&uCpwQb z#VK_=9L3yhizpypzYsCgb|&<=PhO}SHkp}~Ibn?+s_1%j2ufS3In0<9a3A#pgiJh*N17-@#3o zEM7n6c8O4WX*R55QUgqk^Xv~jA%n~S8GmlPaWeL+zSyA6piq+TJ>BSOFiaR(9M?SM zXP02y`vy9~HMMs_=TVB8yAi{D#aFQhi|T7hvc zH!n(5OGt*_*^cjIgC3?hgBUbd-cKd(aLyc0`9S{-77ymoGg~ zRSq?JIz#p)LoQZiENSIedK{0rzlQ-N9!@xIG4?9Hi_e{gy6Ufl(KBTIh3BX0mhz+&N1 z*|6b`Vo6(gBU0HvX+HTvq{pN_z=hc|hW^G|=Gr*09bkgPD$RJVmHQv+PkPE5(tEi} zaBiw2;ltk8F*ODt24^2HGYan0j3(T}fa@=*3ZZu?p|SfNNZI;E2Jc!9TQ z?m3sus%fqKuAm?WTpYnXw)r4%H}KNfo#1)jZOeOo1H8Af32WK*nUD#C)h9JJVS{(o z*Dr>>Po)GrMWRUI>Jxy4>Z1GtH~;x{@^Fk-H#x62452QWnSvKKrBSBsi64^qr8i$` z{FQ$I2b+G+TR6qOo0wtzHyj}v;uG4SLmhg}VQQb|6=W*%5JdC#1!aj%>1|M;As5t~ zPSfY_o0x{JgR*GXJCPriaA&2jZ7{ zIH%7wQo3Ei=KNYu-ozxZ$Mp&u$P6!FNQ4&0cGYu-6fF=T*z_j-U5!K6IcJE3BGxpL z`y%bE?Y9l9lO;TK+u!mSJq64>{0k-`0P&4s^S&x8CdRmE^GIa?#P+}(&RPO17D*Y< zxHF0V)?3;*w3_vdD(`clD~|hvQ~=WIK58;(sCiOCn9OUr9J$ahLV9BMlfc2JG+ha~ zX+^PA5ZjXZCrr%o7YTogC807Fi}iz>PH=5>Ca7j1uN}KmPrDCtXDApukDp7-2~;lzoA{o7>l^@zc3Zh%c*r%}a}rx(KD%=;MMlwJ zz$B!4^k&(W@-#oE+vA2+8e}GN5Nzn&!(prV-A$88UkIn=I8;~&vgL4$d6>5#L0#CI z|F&t79QLi*)7O2Cv4epeyomJloCZ3@T)8)4KC7wmjDfupg7o7X^0Qwk&voAGAE6Y5 zUAE>qOYqFHRUKpiX!O5nH~DdXCX``kan+zp!+iBbL0vl+5^cS=>Hma|OL3QH9*J)4 zhD`J$BnGzbXSGvNER&Z{LO960)Vcn5FyuS zhAj0vdKJU@rN=&gJ5V8*;P!s|WCfE1gr5S9Eua6a)-4r&y z({V`)-4+(O%xQdhkO}_qoXBS;@m-5JiD@iuOE12+pFz4`D`p?C`oIzEUCK6}l+_Fa ze=!U*?Yj0n4l%Sg_yb2Y^+A;Zn?qU9%~-s?8x}9<1B9PKEt!-4p0EjwW}Vw6Y7;OQ z9iWP5iZ$YxNPv-Mw=HM9vramUNMYZO50qy$sy)(_%E>?h5EJDoeQ(s$8s25?y(~qn zB^WP=XzjMN<*aYrGHAB_(EI&O!vvJa`5#;I``&#^$BP;dRQeW9Rj4_tEfP zVQa{m<_D7lDmfPGuy!M-AsuDS6;eq_U>v&(!7b;NJ=dkN{>WFO?0G`X$Ydv_S3!(c~k%^*{t0CC1-OI!_RnNlL!5ce%R_kbe}u`{C-nv57RUh-2ujT@)YS z9BM|UE`N~*6B2wS5{)IrnBN~yvmIR0${8OC>PxGL?62^W=v8`T30aixi@{&^tBI^} zo7r=UO{EHNiXIbelV=Meg3+7z>Zs2=GwsgQrX@y3nJChesa5NRje^eQ`357ZiF6?{ zpIPI=liPo+`wky>MmR}Uov}=%^4z zOs%*|H^88FZ(-QuT|_%>-h%9$MyUN)#1@ah>kRVdP6ur|5JjgZh9%nwvRlzagT&{? zcWnGg@L6?w1yyZl`3MJK!ezHS42%c~&K(rn30*8c`SMJ@=z)>v*W5 zg`6dqX=;6f&lMJe6>({#x?#7%GIbS)>2=dWMIOJYbh)f-b<0F8b%m@TPv|Unj#*_N5ZkneZ(9Ve3E1#1RQ2%i?#MdOcxR3nqFW&CqnU00cDuV;E;TD$mPowD>q=fzP=4+UH3$ic{>8=)K>vgYe~;A$enE z9wSQy)U~+Q#AGRTY5$b&8G2D*Ow>w@@3+~|0W*q8Gp`P+sxoV`u+*PpTLX>PFMf@~N{De9_)MXK8(1isCj=wO|fI9kW<^O5~DSN#+cyT7@mj z<5+LjLxcvZf7;)~I|TASQI5b5lSGA*g36K6-to`T(magCeK;$w*FD z9IV&|9n_6`Pz)!@j7pWNe8f!_A7NhkIE0Iikp>cUy8enIfWbV%AVaC&#o3=h&Ccwj zaJ!jfTplu!z%61+8#h|?Ysgp93s{$%lfC=E0T*8fSwkJ$CaLX|)C5^E*fxg0or(Ct zNRW~p7xoW?{a*per`J>aQ3%FGUj&lEvh4g%)Rdu{9vUT?}a0bA^Z^~&(P}?iRfjO8%Bs|Cz zI{tbHV zbCBpKC-!lDcpY=9Bf%%u>DxU#@GcxKd?7skmj>27RZWKHuZ+bm3au{+$3xLW=n*;Z z-_Q>%h0i484jkpq85zD^-4qfU`>I$&Krf@g&VC0f(iIq}kl1n0{#4+%z@!7VUkLvn*A&tps-6NMOOLrDZY|sy z*ONNi1#)gB7=Ta%;%uEBcO~{-6~?5cVw6j7XKU_a=18L#YnQ`KRz8~@Tt3_{lQ31f zomdSj`2SZA^)k#+m>s6Gw4hV-xeH~~~?eSiJPdi4Qf9aWAFmK+#uC`qM zR?+XDmIX{e#Z-C^s>&|Po@U1$&O!M*dte06-^ZiC1}f0%f>%Ee!Jw``ja>HVu@$kM ziNI)@WcNm}bxxw=c44@X{OqyKo2a)!krd!>oYXXCUV-;C60)y1GbTgom~gHUdT!Yd zKr3w;>-`QA4QxWirx+|S`=j6TFw6Q!UHawuMmRLl)A7a@5aiS-zU^LX2MKud*8elu z>Z5*aBxJ3XldraNyEt;K`jS~QkG7{{>)#nhIR>V6O4gAGjfe1VqM!5&;XuL7pagRm z9!?9dA8T6rh{Bpo*id1IDg?UX$P?;^ui5d#qgWBX;#IZ_AcGkeKNf(Y;m@dh=a`IU zFFoHhaeSWtf9r|}Lf{bAEMq&Oc7wZRisl}z_v0R|xRZX4(v;hB+!Esttgm zpw#1F--0YyLZtOW|K8olBte^|+?O8r4a1WwzJ(<@T^Y_+q(G7u^ofEA#lO;{7nNj& zZImVXaXyxuxJn*8Ipow8kU(7*q6_1rpD{aqZ>%;n6FEgY3O$eUc-E}}O&OP zf8-$-PcM!(bmePMia~tULKVLc&EowplFRz7;zw*B?dX_vQSPojqjGvrw6hiTeMYC( zB>mfvJ1-9cK&G(=SUbr=2hB?r^nTFzk1R#K7l|?qs2yL&P5mLG<&kAy(|qKO#12AO zBKs5DqwRMAjWSmG_9&oDvI53sQ7t%zE;h&L+(++<+1f%>j-G zKH8;mG;iBp51zjNr}%&ki%a7O?Tu1*EI%ny9Q#L4b!n&fw%8BJb?nlf{ssf%XvWg9 zV+XV2*W)nqN^p!TrSlU^kY=*pgqu#R6w;-Zfo%8~v&GKFgO@+R_3DP+B7KwFDyOYg zX1D}^QQlqNUgU*dPi{g9*i7(C3MD58$TJAk-biDGEow~RAi?1s;RdqnF;*6q=_Q`! zMmD}jSj@4RiZ3j%$wxiYD-(B12tb$j>e@p}{rmGJUU1u8C_qGxJE4cCm@`ry@e_Uu z*&NxYy@P16k|-nhc7>nEZuYv4v@dsm8}~GL%@^NRZFwpCXS}ny`%jzgdtG6Kt2N33 zFnb$+A6#*cpS-9m9v%-{>fac@4#O(er$`@0AxXI5`}Ni9&hB5*8?1P4D&ZOWylQal z=*hp_1JXkYd&3{zv54)KDQJf7G>-}uJv~hm%M!?{L&v|SZcVEwfz*H#4`879e-#+D zqG4ozk9Cw{=%*XgopoFb@@$IE5SFu|H2~yn;>79?&stc9D(;_E*GM+kRS3=70(n#h z9#P44+njxiehfdAMlOvj3-w78xc4gfAkl$Fzv9z%VVaqtxA;S^($4tGIb0w|JGBU` z4B}t{-ec~kozq*BB~2+YE6o;RoX2~mR^nRf*kN&NJ+<;n&l~^JBbXhi)ihv?$TAiS z*sXxGK0*TdIys0T;nYv?J^u$?Vh^B?5drW2fN7B}WM4)_l!`-lKpLHoIj%MK)pJ=w z?HP#|5&z7Fzaw;DR70`&N2B=GYJ_rmeGv%zifR^})pRT*hJ3@3!PC_vG@sl{d5Cgo z>!svB#o>W>WoqbYea-ZMZ}q~b5_}hqj!O2#gdNEvBi$QN@+)k2X)Rt{(wZs=kmy&8 zUV>OGG?8w5%a~Gg(xMPDMQbntsmLYOeQUooFavw{d`Z@Ukob2tQK;@9+)1+&>QdwHG z3CFkK3GBeh4tBL~uT4wQhhB41EvCA;V01wpN7r8CVa(kYn~h)@JfC2GljIqjDNaV# zOQKVzHN~jno=vpPY~$r%(KN=d$6C%;MVV{qU269q68yET3WiqIyz5RyUz=7}Qcu%` z;808?QZH>4)izX0A|DJ=tIdv=uE8M*0n=Q9uFlQLG0L?#Nd{}|zn2`u6A}@QrG_N3 zAjlKO$wv&P*@@(R1J+NWUWb`;_^Chvp6SE-q6V|Jv@w0W$h9Fm+gxy2Sp!5(;WcYJ zdMfhM@k&a62O?5#jLe)QiZT1sYM4N&Ec7qE&pJI}OPsA)4KOHsI^8u1?*oiWbFg0m zm&1qZ`8fpOQ%$?`Cy|3degY_f)S?z)yam&$-!dl4|}bGR3qCSeAy@ch<)6^8;N zOFro8&eBvOxyWfT+T#9nf;&eA4O13{mU1(T88y>vTL?|tinpSZk&^Mm65K4zFgdpI zG47on&Eri?sN*N}&X46LQf@jbr78JrW=-&iOln9}k6$!XlKp6%i3Ir?YtEDBhUbx2 zsXUvwZH~W&45E>6Hvo-u#Jvl(#~;r;FNFcEecU?KasdB70KmF8QMIioQ@8o&%_%DP z2}90F;vlE#jHXVc;7&kAW1rrqB%EoDmJ7f8N>SOcmiFuxyf63Xl&(juTi%HmvT-C~ z1~D;B`4-eDRLpo;*YyONs6Ot&$dPAnU?=eO>DU}6NE-&G&PWhkmmdf=uu zsbiHh3~`iOl~7n+7|Nt>^j`d1gm(6hwvNe7tOMMr) zp6OspPoM7p%zP(XKxkMJ&~ksDiA{`hGaq$}jm^7z$&MDHaaJ+z%32OsSlUdn2{`Fn zClfXmjnNk7a5W zh4IFqa4!&R^3t&rcz{t*l~sV*JyHtf;ujnyM0p0iyH8hoY)M?vQq^QSgCGKnekb&` zI@;AZ>vhwkh@T*Bj|H2eDv)l6XA__8EebI7;F@8R40{1k4txKXdW?U4?Ntlhe^WV7 z_0bc`gKE|)DW21?qb1^#yadVG))fFLo#-?2Z*9t(+OHk6D#o;kHvxW^MMwo0me}4r z6qb3YxaWZaod$EGQZbRl;}XhPnl%;%eP3tO zfasj0Q&`@$1X!esKpc~Hly(O>q!l3>t{4eF@)kvqaN4a^IU&@8CNnCdc{MEq2T{K> zS5TOoHA@g31y<$2 zuo}~YKN1-COnQXAy*?)D5gborK_F?$7@Zo*cF?8~pts6UF zaL8#l1Y}4lh@eQ{|E`>z3fzR$pClhg{2=Y@)TEFcD643ZH)%U}vruCF#ARocsElvI zQ7t?yg{HQI=bXS3{G)QAQQ~j5@qWaH@)#cinC#?0zwE64x_jGm!^r$9fIMft52M)V zkc2PC*(PAG44cbNcW%-}rhb0}6-GRL2%1b!7J~%aN@S_Qs!O__m(*Ff__bmU7?b@#d6$4>l0k2W?ukw>*7kbl2D?8kAQOp6waQh4THemq>ce; zB^BSiK)$h)!o*Y}90?6!85=9BO7**8gO)jkO90Qdp*00ofX9PWrpp+jL~`!MV@K?# z_=~z7oc#Iz1iSt1mRHJT-lEFD!sG>$67V#+C0#u1b6}*G-cRN*4YK{c5CVEruXv3R zn28vO#h)hqj?9A_!M8`jgJqqSCp;#aQb?UcnjM1}l&^Yuox7I!GTr4=*zpYs* zV*MUZ8&Gvl<|G8*FFk<$pqP(4v!@klN z2Ezyf4c}NZMMpWT39gRYXg7jewj@6=xM;*zApsLr$~+VN5Ix#4++`-y=0J*gM`R8- zh#hrc48F{N9P2Pwm2VfonNO7k5;12cNK1839-<))Ui$qyvg22{1RYxxe*FhbtM=+Q zW5}+5z!qJYveBV`Leo@&!|F&lBoL~UamD;{$T2*y=L!7as`l!~-3 zrFf^+mAmYX-#Az6>a?%1vLvljI2a(jr}29MoV@d=04N8aYoPrZ3j_{6>?a@%H%!^^ z-!f@uA4!%|8`6Kv4a{D4NqdwO1{9m8K*28^M+q%+fP~YN=6Ahg%gD!gUTZqu7@36WleJesY!rH{~%B3dE!uK2a_Ud%ZY*t$y0-Yghapff4+qRzV` zJR4KU#_*CWQW+fpaMmC7^6M9OfBx(lMcrgaWY9j(Nuymhryt17@JIrI4=9gH{3>T) zuxpMmp(@2(AfKcXXvBtyAn~A#)cRdxTX#XOh0}i=^Zw{HlZytD02!l8GRkXbJ0+m< zhsmZ8Z5w`H#e(sE8q-cW9n^)k3Z4`6DzH#Q$sh(+p0}cKuB5S;2QUa3BuML`I@KN2 z+TFpp=8cH&jankBThXx)&DXcj-JJ+}tf-8w^?*wcX#1bT4#4!Zs)y-8|HhuOgX%n+ z%2~kOeC;`H@G#7V`~e8Kj+lg5pJXEQ|Eqo@4E9KI(?P6wV2r@5ZRhMOaQElW8=f@i?lPv5c_iCOTjUK%C zKJ&11kW4)t7)u|JE|$hM&k6H&m&}kEq8WHk$DUz*v~ogWa*6Bs=uI+78HD`|wcv7V zKQeci;aS&s5s+b+aM+v!EWRTBp4eWLy*y`^Ja#LTZ2{r;jG!4SMexPpe-M1gkzmAG zk!Vz?W!;pO7<`dl9F$6}42%ymM?A0KPi^CiKqCT=g$^dZP96@`5KNOdpXV#g`Sy#$VqR(Z_$L3pY;Rei1++Wi0vxt2u1}J|E`VadK(jh1vp1Ii z(H)l!6!(Z5yNdgndM*d*oJtJY=mZSfTgtFqdqav{6WakE#fBUvS{=)v-87sAjJ$wzL6t8WuR~)SJu^|>Nsj(V*q7x&I ze}F2>rO;lsEj>EaRI<)chM6V|aL)0R z#$KGjpX2?lOtCy?`k9+y1lWHA-9%nx7!- zKHE;-#+8w=L^(C9@rbwD00xj}eQil%hAsBr3FaxdGid~A?%T-Zb5XgqYm4hj?{fFpj&@GiU zX|HrG^e%X*d+Dd?V4=UOWpe5)UlF!x^tX;JXW7bAk>H9s!V3I&7*Qy}TWCavCJhdL zm|fXzEmBz9#?s0KLgf`HhPRVOl5*pht(~kjR)gB3tT^U-jFYG{KSY&;qqvd_jp~-A zS{%YSt)M&#-^8#C&v^kPo1kx^f)D1-(-%ajW&!73hX?87H)2G?5!wbantwi0PNi4) z$)+4UMd-tr_=`eAd&b%JEFo3Os{;n9K^d=UIPjy^J#i+>`2Lwx2oRM>VKe@iA zS`s>*xYV1=*`&T)2`_}z!)IvD+88@n!36ZLLZC0AB23EG&%XVq$D zIgi6AGKm+>HvB2xO-Q+UJ#C#__!*0k90xPiqizQU-T=*Hy}~qN>xgIY&&NOHN6_MO zvongKk(15j6|iprnLnv-Kl`5(MOe?J2Bl5ede)%#RX)prRN&=SwU!H$f@}eAslGh@ zk2!QV|MGg`Oyb&mQ13U$OGM}r& z!+U<6z6YLvjg~}W&fNdl8;->647iIowrc$mOgb~ToI&$en|&uQ3KWhN`0R^dRHks@HThl5UbPp2?D$$L1I;!+JkZHL4l8}6q1l;`2JTd5OT0Y-|606OFox(VoSW<; z?xvBggODFb0|dfkt)EdM){%-yR!x|2dUF8*SI&G-adSN6R|>9@dpluINAg_Jt+`6$rCpp(KlG^ zy*jo*>72vy@Ie?$VvoTx&dzURugcBvDS7Pat>;FLXusUb&>S{Hk4J)pAv#HyAV<9cp z!CI_lh7aVLsj({Z!w3N7wH_Ax)0fhp26u>GocV=1Xq5T*EulL!DUkbZr_CN>@VJ1>1djkx(p9`O<#aulLBduEcp(=K`(^SO256AByiiuSqvb5vypU>FA- zznabKuPGb~#I3C?S*!PyWmejA;5WZ0ifU2M)fif*+~=dRx5wqPK?U@H+121{`%9E| zJaxb2Wjb=~tmM6m`e*62OE#fR3`DkZ@pBx?roVicpD~kG!%Fg!?;WsfDlgsmEk2#5 zG={B8b`3dB$jSMbh7c6uU4QVGAaM)|k=^WF*RYb|YC@aj*c5M_-I~h?iRf&i4Y?{K zC%SBPfPQ;1o6T0B4kdUc-i!bcrGJw9P+w>^Pp4>5+klrOQC9=$Y2ItWeL*8Ar8`okCMQ$JSe;e^R}a=wDj8p;h02BpNwK;_y;V3=(sK+d zvt^d;rz^)JYlLvq)Fo)U#gj3#vWfyq7Aw+?ew=TcN>)fd+znI*^wYOxm=)HnlH2Uj zYFxZ)f+X+PNW2fsw_n#4qHYLqFOeXUVpNri8-;ect@m40IJ=vdI5j1AhO=knrKn_y zU+eb1oF;Z$2oN@#P4z8j zrR+-p$ER&SEw^gvnHVlH4PXL+V)&98U#@Pg0d(w2VN|`N3zboj#YbX$kBw!pU}qmf zyIbCrBVDe~>b#9A`#l;QwcLjul60T|7 ztm^_rQL3k61oZ%Ry!RH)FR14l08+st>Q69ULuPQ}2kb)gBp~<^$fO#PA9jrrK4 z1(1L77oqa}fMjZYgthv61%G~Wb#6;fQha!$BkeD7Zl~&(hTuV!_b`o$!xMbeZh8zP zWo>sNN80Wi^B3X8VajbHlbCN3voh&x%6LYRCtuC;9PbF$*$?<-hR7z<)y%BCa)%P7 zIt6CLchP3%xyQcX*@Z{W^96Ww8fsK(p>kMLjd`c&YW;Lfv&JF^ux&-($wTn)tItkz zY=2@r+A%kCdCWq<E8Cd2Q*d!J92E2~w>dqv||sI8P({u?8{w1}XO zyF?eEU{GfLA$;0N5acnONWjN!D2FR;$^II^Bs3zd{l4_Zoe4*^iO!B89t~FT^^CY%8A`B#P$!B~4!F>jNU`zn z-vKs?kh$j-%?ELwDz~lS0!8z3lAy+T;tLeb>)B}i@B6f9%<*-5#E;{kj|PonVP=>b zYJ5F^24L%G)?|0gdOA*vhza%2R}0tOi|m-&%ItdGMOc`@hkvh~D@{4ZQO#=vXcy`W z&(^bc7yqZ!puSv?G-+zmv00S=C?yo~xEj}Oa!w3Xm+NX3OTmM3)|7~PWgdajvA`M- zSRtK4<%;R`*4dYpBphi`hu%c<5APHYQej$RwFL_-PH`tNWcexTSGP9_om4^PMAFg} zg#Q4t>ayl_{O4Y zg7LF+Al>e;7ix$^$2f0h;H?$hiJ|;`GsMCjlSdYrq8H1qC|Z2Iko*Rn805`fUkBdz zFPki9lkoGA3J!D{wIrVG{Qivugt|lO;ZQfoxIoYEJi5VZgE_`&%!FBGLJJ)5U#?=B zWO6u%vV$U#Ym_@|kmGz=$r;vLfUkXkhieuaFQlobb9Xcl za--=Fc*b;D1QFtUTA;`%cu$^syI`)GbJup~Nj5%HU*Y6AySk#>C9j~MX|2iP9AIoN zBFvtf7|VjXgLQ0cVl<)J+#pWd#X4qq#64PGG^^~GClWQVdF8dRFEN%zjfTly5TUSQ z66q!Y>`@^jhm(3?@6l4*ovppQMW0Ae=v$`i{3Pw60qe=a@D&>Z)N#+^Gy64Z`9wqo zf4GP6CUUY}{qcHQ3Tetx{~uRw8!SsFO)kKie*w8?*eB*5V8W6eKw7r5SkM@yWGX;0 zlx(c~QQN!Ohx8B2TF^@=*~r~K?X|c!z2ycObxmo*?G{lW#oA}H+@D8HUGnj^5ujw> zx5Yii0*L-1l$d?apQ3NwFR7ZU=jT2ft7DG7FyNI%X#*(GlCmCd{X7J`*IJJZ6bW4} zl2Iv=!JpXgamz0|!Yom@>3v{%u8kYq%lv0l$}|898*i{{t~o_?^{?V`t+NSVH@Mg| zWr9akyK#E_&`5{@v{lZp&`y_?*qt)4W++)7VR9a=eqo`t>rSd7_wF}#ncKRfoP`0! zZ-6o?0${-=EMO8;h*UEb^Ar*euf^xRHVedfZ$vq?eGy~4G5@)!=4fj1zxAH{4d+RJ zu{^=KbktoAD-hiZV7|C;%0wM=U;+g~LCAz}l9XWmokBNEKug=@A<(|%+@4w!UxNvm zTyV~%JLvL?2{)mG%lE!0A#nl(Jt3!Nklt^BlCXtn(w*WkhNeb*;@d5imM4A)ZdkUy zP5{DC9dVrs5eEO9x5TiXuvE!HMCJPW^?pRD*+d!-wh#VoywW-kG8%Q1eaA6WaTwr(p-T;^_vOe5B(^mv& zSC&$Nl+~I{&!V0$u2e0^U}7azq>fsyIX9(#a-l!!3X-n|I8}2w0BqS1PCrPUL)%e*ZZBHLN@MKe0n|c+YHA+rBDB_vUQzLDl zk?L&u;Q*VZ2Od1>zWpiC;6B(+AahFuZ&H?LFF(!nc>2VK)JE{FL%quZPX%gKl|zpA zJ^Em>y0^uDwBX+O+fAmXoK!aK^MVX$F7q*5NyMsbKAyyAnOd5RO8ZNv3Zkfs3``&f*=PCiLXPcz8V9uVBuR#tIW^^1inPX$^6KgDOGvJJtLZyT6+ue9h$~ z((8myxJMU}*{%3FbaTfwThv{DE#X+u4cgDDxVOTmCaDTL@-D0mp6E@$+1OLOb4{1# z3uS?Cl!jam$Gc09n#Mc&(JYR^@6j( zRtfMg>Z&%Zv^?h1il@KF&nA17j%M`el}S=g2oxwXQyh+gJwLfU+7r{X5C73<2IJcF z*w>p6aT&^nKHic3B(W=8lBLuUw=)2GsSKi)Ly1ZJy<NS2MXTO-rVbhbj?Yxr zaVB^KkEiH4M{FUw{ao>FAIYw`T}uD&Unp7qMknj|elxfzuWpcB7#Rd`eZL^@`xmo~ zWUvxb|9Msdij@aRbmmISWHqT7UX8hd@M4s!Iu2)r|AX4#7R#-T#QLvp3aESQHD&98 zlH-3~y4k3Xv)&;-oh4cWc`@*8u<~60loZH_D>>5Nol!|+6nvb3E?DaKL@u>UB>(x( zLwAz29}Orn!fn-kH?^P;dVrDLFD8arWqKpW@v`^=vUcLGne`z8iEX)H`vxQVs!rq= znVO)M{wVRa4IBXeAz-3>LW^^}w*h_AT=i>Ft+e10`eQ;bbYMSwaVIRxDkhx+%Km^+ zwhD?Mhf|U1?85|tV2{G*0;7-wsU@h77@HN5y#HZ0BW1nwf-$MHa^q^%=>JVsF)*-m z*v1zqwOmca9gon&;!t+e9qmsYe`jaNIu-%qo37@ViwqCb@m1YqFa1&V+ zWl*l)i2}PV!K?Nk3l=k7qD8AOjJ@hQG-P^lbg9It5fyJ42M)4?rBbbv^KM$nPzLcpShsHhVB^GhlAsRt~vy+I9Lm9bh*g#i;V4O59LhX*;FQQO6{4u5zXlJAz)_XRhr8zdQ?H>DO_?KgG`Qjb_8WGH$;Jm+?&ZiL+2?^Jk;uesg%i zkjm9cWrNS8xHw&D&?*17jgbhtEoBg&9qqS@&q9Ys<#knV%N`T#VncnIo+w8Qg0Ymn zq5|H8LKR#qsSdUrE+NT}D~}lq;9ovH$-3e|u<+*d%&XQVC56H;Hk*0uO_XE4XppL= zdy?}>1TEHY`|&-vnOSD$TG1K8*H0_il_9GWTr$FX%n^Ef7ILl1?0=;J6+Gd=0xw>h zt3?l0PUABE%*U}abw-rtYY#Ht`;ahT{5TX2dc(}8FJRW@chDOJ#WL>tkk+@$!`ii2 zqO;J?#)6Dt(>5!KTU+)wzpmON*sLsh1Ni-wtFGO|@}6hTG0!D;7pB|`VU~rM;_2^m zj_|Uw{t-)cz3yQ4v($E~r@z9lWx+lY+?5C?{tX#5T^hf=uqb&A5Tfb+W<}!cSZc!= z>G8Jx_dDA@#{@BMtSXy7mA$Tv zF|ain^A&o!vUuw71+5y{wmv+1_t-bVD5oamp`P%Dd?0izu6av&WGGS*3U(+ji>ifM zv>U+r0BNk1YLZ|dsSpocoF?Uj$IO+FCoop(THFbLT~O_`zwX$_UMw>0)nt~8mUdd(t7isorJk> zlRr5XHB8e&v;?FDF+0Npj+~;%5Ou2O{ROZEo z(dZf*3`m|u4rWP`xeNS4@*k$X6Cv+Zad&WG*@~Y$mozBvN-7}gLjyzH_M7YRs{6cPWDl4cfZ;bs05`Z*|{Bp-htY-zCmX=w=|_7=Bhue4OTg@l%b> z+X)v(Z&=I9R`PD7z>7Q+BRdxl7cj>8zqSeNe|JL)3W>R>7G;7v=^U%WsPUnXHrol19~;G-XUoGe_(wl0!sP^RI^5|V@#_fM z^5~sE^XQzgo0B^O0!3K|X+JeIt0=9>djFWCwiN}RqrmeU{92Inb7s+4<`}Tu3>^RU zP?jPp%+K5UmhrQ1w0s+pUK%?nlhzsCc0!3*#qtGLH>;a8bJ}L#vkEKCrOfhiQ|8`J zjt;~1+P712VDAyjlP9~|_x$*|goa`>IXA%i5=UNj$zAJ}6`Mj^IxNEi1Qe-DWY{Na zWy!)wf*~Ai6OCVoy)K9|%xZ+gY*qyYj0@ZN%08-JRlo|9-Ycb8*^)?5c-J(643qaX z5<0(C_D^wGU!gUuI?8zt=CAO4;qagOO6}TeFbLr94JQpdQ%tP&SK3^;S%yu0Afh)9 zhOq_CcJ8?A`pS0$^bXCE7GF$wRJ0lASz&B=@C-WW|r_g%Lrt>F|UB&VHC9zN<`@ zE)w)(NEYM~6@yOoKEBGojkTyT$8ZvB%@*R|9%k0ka5WKp*t7Ctr_X#tW;cOqz9-jM zH%SsZb`ijS#g>Xv4BkMU^+eqW#r_jLG1HwyHcg)3th-es33@nI3=F296Amdt+unB6 z^A85s7sS?*Hdfi*KTj8LQ^8=Jn@mia25A`P=>dD~a&$(WRx4J^?Tg5k6ZK(Us`;4t z_N>PhKw=&N&oHM2cNoj41GEBhUM}}w)R805*qRyBvbDxv?1t1w8VTrT5BqR{HtAeU zYVQjHhwPdIWxp34R(5*>@Q~in47%xUhP>fS+lvvzf9vL0PX`MeR+`Z69S5o#hS@jY z3tUoLH~rlcpJ4g)YvfO@Nwd$;msT@iDO@qU|I=vg5-W`L*1?l=&GpMWeR)1`K4oey zUH+f8i6<)si+?%AtQDiMLDaY(`RSRL{nwC7WXdnqEy9Nk`Hw+;0Hy})+Vw6Zzi0*< z_~fec?p;@(=Cz7yxrBIk33L#`*7srK=k8PZ;qPlGe_hKyc#+BE;c&G`xe==Ee6xb{ zKZ8al2;YWTp-my3s$CcIZ57&0um=`R^s^s5qX}5vaAx0t>>7GDj%)nw@I$03t^iZ~ zMhY|BivNu9DQ#0lhklXP(E$Zp!EK>7tqpcHZnn+Scx}|vkCh#}XLG*G#){(B{t^|os!wgO!oG@BJ)_ywFqCAZRukV!08}l5`Lc zY*kSH9GUT%yXp~i6fzdJXH&C(Xl+-PPL|dQTFUoC>*4oasjkQI zdQ-T#=t?Bge{{zD(?=-kdLLw5g&7IZ*gSWK#;j|;?5PU8d|YmETEI2{m<$99D3(PU zKmK>=m`g%bx>ulY+>SPN$!nmCNSh!z5FZDQZO1|Ux_Tf$DTIJej8yu*YWOlp4j3ed z4r1epgp}DjYa8p|wxPc6X5}Nt#8&~WL)fn@j9VXrqIp|V7#o2wWpTS;-@3+5L|?5z z(hOGoOV<@@lMn@-Xl5GJtofmH;fja3%*j)gjt$ap*M%A6< zh`$0<;8ItoDE2d{jIvLE@<#nVpL*F-PnmUvrPeZ1cx7!qiQ^`U9NUQsz$-_6cDYWo{@@#wc&=;%I<~qX_ zKy>R~B_Fe4L?T z<2uiuir=TGO)SWhJF0X;I{%2A5E5-$`2 z)SF-^>^aqB0;5Lx@;Lv;k)+E}tgdqit!|}h2>^``Edta2>&-Q28mL%CTZalRKm&;u zvWW@m_X0jtu=M5(CMpk4mqgGYZIyS`Y?0nd&+HT3Zw>ay;LdPU?a1d8V(C6&8TTQt zdb=E-DG7Z8e2piwZcNHdn~M;4?`xOtwX_iu0M@66AnaZpS1SaP8AEPOb`H|RFvM>Q z`=Vx#uX&u76`V<}$jWLTlQ#*;n0HH$rDx<=5^G$NQlsv*8UDz&N6WpU#nsFAA+I9* zfc6ci)IkP0E;2=4ff1igTQj8an1yZ{NKb$%iRqgeV)AL+*%lRKB{e*mv*Z%7j-9W1 z?-AL6ZU^Xu7-7Zu#Y2Z_3B$z=abd-P&)g@b>My+F^a+6E`aLSOSU~tcLY{MwjA$uO zIe-Xx?6CW$ORZ$bD={73GOu8mDxcED16J@Fbz#8(*<2M(xqAqzBpUnd7RsOt9-LD+ z$N+6T(VV*m0ZTW@st|n!nj4P5^%Vd(=}5DeYSxbZ|8>$fU|3idXkU32#MbE!Jj1Yx zV9}mG{&7l@rxneN5^=SV(|Nw*P9p7t`o7&}m$Um>ohDCru7n%z5uQo-q=Lbm1Q-jJ zK68ynFg3r-gvETHsQ~I8ASA~9x}Z0K6B#CZyF_gAbAvM^#r!v)p0F^W(YWglAhl{J z(KX^>b^B8C#v>^J=FIQh<1(7NJSpjY7e^9SR1vi1bGow(nkcZMgMSTj3M^KIMbn}Y z)ql-}?Vg{fFoZX%FuYhD!C*vc2&1`rPtc=Jl`})-9EE;y_uM zOuOFvp3(9lc;qZF@|ELpxc42}r_XCkY)QMdxt6-K06CUqm|n!zbNY z#Q0x~r_d=#c@}O6q9&nh{9rdO)E(gBG`@lk7af6o`e#@Aga7pPNmkD^q`^9a$B7 z-%eIq>?99$P)G2E-J*{x3jN?AQ;Bdt(;cR+a4qMItR@q|c@+dc$vls^$HH!idrp$H#e$5sF55Sv0$N2f{!jDOgyjpXICt`9{eVqw)p zFfAZK5!Vv#SAo{;!f8g8kovD%#%IQnq6+eXtd2VwmRk@l2%Tpf{qeY%X#VQGbb zSE%+e?EP_~Fg)aw{2u{o6V2z4H1egk-toFMU{q3E`p)Pr}rF8bESDOlED77zkuhV%s>`rIf_Sy0cC?gw>ZSdSAKf0e9 zMvSzCN+;wKMNz)yotG0t3VDcgd>IkqvBaKUZr$D(1;ES=mNHh5l5dC^Tb*#cx{bQ- zgAGpC?5}P50qrF>_}o)19{T8#8+fpJ#ZxhHPChI57dO#C;tTX6(R9P`dqpuwbh)k{ zz^1gwt&pp|JCa>XHl)jf1R^^Qz&mn!+F#50;uWyVDegw+s0r1r@G9F6KRev3ro25w z2-GL(hn4ebJ6`?MUp3vcLn6?^M&fTEGl1<%i>>-8-6uj>+(q1v*<&)TR0GX&Rw_eI zXi)yfMle(1lqED=wlxdh!U>OeKL|gh(gNd%)aQmtjuDP(sGnF4StK#XkGUGNa0>R7 zyTCHo4T=Ry8}K8rW~tj5lr8&7f$N?}y^@3)GiOa!VKCh%fBx^&v??#E&v62)F29NX zMdyss%K*+fG^o@V?+XdZk^BIc@r>rM1G;Jy3{}&~AA?SXZuJFZ?IbTB7#@dtI>CSd zvlc)2)B8-gWP$9g+3h4d{kic4vJ>1N?@hNTFucsQaphNoh!)MuXBr_B|6%+4AnCG< z3{1&xdA_%49d=HB(47u>%x;)sCiRG!l{<@#kxAIn^Jf6n2v*}1EGAO(MO zBvfGFs#s-+J1@V4nYK*KlI&o|Ox~bk{k+n}iA|^hvv9J=^(EUCl<%K!Opw+=pbjW} zy1Xy-=)ZAVNQ3?R!Xms2a!V~iS7*H%;RJ{tiSAy)Q~Ym6EUZlG5rm*D+m($V@^DZf z%%*RKiOmQc@fFZlbQ)*_JkAGPxJ&W$D0HijymQaFR)L}O`~J`P17SD%<6$54*gPBoU5M@^syiGFfh1|_MReRRxXMz}XNPtTL|>4~a!+m*FB)C;JG z-5$b=IvOk_VM8#k?`FRAgeZ4^B?Bw&IS9o3Twnc3^M;NplI}iLMjV|CM=21O|RUE&`BTWkutotqiNPyYj-|D z0tN&y#;io27@3+T$+x^EIleN)j+-;KE?F&$e^M1LP238I;SJ#Um!F}k4()@Vg3bX^ z(~?7}%uY?pGkpgrVEE5x;5k)=XOFnH8wuEYsM^~uz9Fee2C$8AIm{xBSyCLYOimGs zO;OWe;=5|8iohLM#zdV(9lZovbw&VV1szaCWqK?&EN;C`;9Y>^4RbvXxM)f0fQno< z=vn%T70lXoL(y@YKVKkh{GW`cL0g_p(TIdPeDW`f$r}=ScsN&^8p zTbL4$Xnf1>r5^_!K%j0FNv=Ilddy_m01ihuGZ7azQey^z0S*ljN|5dHii8qcUsd$u zS1qV`>KE69toE_y?L#qXe-;AAvXe}Qd7LNbjQMoe}@*$xlS;vP`y*`OsvQ zU9J*jZ>a+YN|x`8GwYSZ2|n7)&PU`r=o89+~(JnY4u*^QoixHFX+tUSo^Rp z$Rme(9{FdU#&+`Y`2~AIctLZx{bI(lhrpg5hnc7+eG)KuYgx&tM&Y|QeeKYxNmzr9 zy}>l@Na2WD)wplrQz4;<_#6|NK5_y}^!ZxT2xjj7AhLA{21 z9AC8D{Kf&Be0VJv)K63A@3wJSpw9 znlUWV;QAxZ_KfRKgvp2f(tz;2IhRcy(tyv5+Z^zaa=&KwVw4}eiQZJ71oOxVTvuI^}WRbK)(ksNT%md?^mh|b{d}%9gS%WbC1T*y;uWs zTk@Pl+DGi1j$7fH(l2{LjQm#}!cZ?4Qb4I~-`N z6yI8Gd`XL?{-b{!`ZYjuvn?b^-u=d?L*U+^GN9)@cStP?PTdaJe~&@BxXYaoAWT^P zc(5VLo43<1Cwz3~5FV$fG~WGXkF(C&3^Ou2p_^M>rlUi*IKppqOBiUAJW=&3*z5pT z^;(22-p+61L3bA@e}wePCra#Gk)KbO6_`#F7tw=e03+V?g&@<`Fq@CKD2j<_yIF- zTn3~ge>6&+t6NsZ4ZyOS(~(b3UTU!19%z88|xtIiENxVC7oxCVLUChrxc85u2nRZH&3h zF0xSX;N5-w!Du6#pRN#QAnVUAsgMELKs+Eg0{fLNL)LY3-91$g;*}GhLmj1O-&Hz- zi%xcCF!Bb-#6Y3PR%wcaOclWswf`q${p}a)bjS6sLMk#rt z!K;GnYzLIHq|C}Rk1`fe-s{zZGcyh_G_WvJB_zXzI!w&ST$MJ}Cc7$rI(Xd)9I*fo zV|Z|_P6Cl%Hr#x4+v&2keZm@SRqHwo@17NS*LUD$J%qg~+W3-0&ytDTy}HHBgspJkrpSPB!8M zNi0Z$U@eeiS1rjanN=Lbsq3P-ytk73+8{0pdcV}+MA}{qqaqpFO{p(d39Pyxyf@A{21*n76Co)wM`jQ9O;>o$*u%0Ljg1`p`)X zuu-5jA^nV!)wQ5m+1P%4oxPNln>CR3&DX|J^FhiB5YlBXdO=EgPoO1tWt#b>4_fr# zs<{y8lKSYMhRNYlCF<%!1iBw=vQD%HRDoDBY1z5`-mPZv6RPyF=?^%WM~BSX`fxUmGXdC;)BO&_BWVBIF$_y%%z*< z*%N8lbZf(UmpWaSgh#$Uc_{G5ByemE z`>wYbA6@K-G2J2iQ~^R95q-OXBMsd!q)T~bz%Mq^JkrHAij-%^yPo| zn}Izd!1NnXa*TFFN1Sax&@4=KD2<5YLaiViy0_h2tSk5Rf7lH|;hkXJ?4FD%sv8bb z@&}KB$c$JMB1SIzUHs}iy+6l8AuVk#z&}ehRO*D+=m-!X8k&(FZJ&s0I8`hud@sie z;wlRnh#!VI=ZCg_Yr>G3YjHjosGoUUs=OXZZp7i;jAug3l-uHdfzq+wdHM%n@JOiM zJE@R9fC;|cyzaB7wJ%aUZo3mVNIeFvB!%aAPvqzc2savc>SNs{KARPET--3Fo<K#kFhulf%vVFl9!mFAhio*_n)kDX@) zf`dEx#eb;lp3IZ@5M5Z{bhqpKi7f^=iU~3BC;z7FB&g>4xTxO#B2W0I!LSc4ef*!u zdTwoe(k!}^;MFqk=7Fzhid4cMTa4}kDjO+RSVfk1m^4L6(-0FueA7<(DmlT(Agr0) ztWs0)$NPdcgF3sCsH%cdfnoz#z;=LsO>34+*4@c;iKiQDi5)2zrNJo4U4JVD+J2MR zukj&H!rt64OTVtQ2J9F0OuG}(+Mxe&xk_>b_y^ROpjN4a{6=I)1*015IrjkB#z-;y zaXEr4_LNt@XpQ29{V?7pm^fgBM&vs(h}kk_vS*KTsP7nU5qc7MRm z!P-y)5|bl^2gtesM#F~%*^{7YxXiKZyG~V{{^X8sN0|tB;<3{Ly)n|7?YyEjo&pqj zANr=JjvHeLBf2y*9^cEYYSQI1d!5PlDD`{~wB=#>Q(7jV9P;V5#h&^JV|P zt6El99`e4?TGGwPJn!bBUndS9=Ufl3ID8Trj>W0S=$KnsSlM6OK~N-#{L45%>9`!b z%;!5Kd66LerVZOjERt%QRZ6an3ruZckv@iLR2!-fQIYr@V_r)vWABF}W7N-_Eevi|++2#nBFBtgJh$Rx z)lXj;cpxgqp2J$N-g4&gDf&Gd&?U#~yiLjS*1=55rk|mO>+O;zDZ6-sd(K?NV`ANG z>Hy#_Cpmgcgi29ls2L4D1sLW`qoWfGsBnfC1h^1-uw>#6nKju%HLQOqYn=e;!q=C@ z&}|Yg@a?b%S?{l`9w5iSsZHB^3(|F^%DNq5O|q5 zv=a9=QV{2oQ8`2)=ZoAR8Xn;Xamly%2-L8V`CB*J?^HPf95fjKmrw&Y3`q3lnDZ&6q>w!^LQ81S@QS;`S zh?Hk=MSE|ms%|Q#j&CQ9f@cS*y*vvP?56VFQca)zyYvY&p~MEvmvc$r{OoRw+0HKV z=o-46x&$|uKfce4C!CrvpY>8x?aKm3mzMg;*MSI!-MVHtS;E8))=~M%y!1}Zh@*fs z@LO4{H!)gMQrG2DwMh_)S7J!Kr7)-gQ(Oz#7AJgA^L1Tt@zv1y)E=j_Kgg6YQ#PAT zoMF=`4l_W_V@Ks|zT^z}tY;^_8*{S7U=`+QfX;e~9E@Me!z47@v}46hTFQqDEP$$8bvpTb7MGsm;yh{Qk-IPh$CZ&gL0eXal$cUwl%^fN}FAdrlsto2BO7a(t zb02@goB+IWX{Z9e_t%s<5Y`H1MOV_eG!@u~@PdOQduJ9n>z-Y@$&}XFklcYf`uQCq z;@s4i6Jc%(BU4gt&K_*Jccvg}{e(<-8h>s|%Tv55!pqU~s)8 zb;-!4uj=z|n=ZCUNXhIdHoR_J3vTuwK#yk(S3%Drft;2Rj3C+J-qe^PNa)#P=t*pa zQtiGL+-*LKMoAMLo;)#d&YBziWxry`d@=F^xY+aDHTw8}mTB3Z0L%EzzZCk($uf6> z>}d9u7|v|%)=Wm^)t7-DV%3coWH**~baGXe7ej^6+jegaPJtt;`jYdk_!a372K>SW zk0H``HBYjqAYzs_dQb|@v!oB-wPzngx_s#d=$HZa+R7=`tR0laENCvq@4+=Gv4dLQojKNXm5A|W0I&o_msTWUN^ zl&xpt=Emy=xU^yG7zSzc+hmnykJc{I63VDB4tu_YBj)=HJNc+{=cA^@L2L|cZSkd} z)M_$WNE8)7wzpJKL}$_mainDMnJ9xUxF(Je7#^u+B>^2OMknNn^{@xKU>9IDq9ts?)s?`9>1%+?lVK zCKe~*X|Vl{*8*7@oAVi*iy_q@mImy~F?P~z@~}h%{VuuDkW|P!(SZhq68K%=?fm;X z{3(i+#i500oRV-~7jY|?dVb`=MV@YDrtfAx*Ns1d1&nMo_hhe_U$qe*KQ^tQqv_kY zJRh}YGnecK6NIg3=H;aRFzw=bSi30;w!-?4Atu(G?XDLoYg z-ao!a=~*7CGu6Etl#YK=a8}hbNBMJmR%&6S(!`F=H<)i42kub(b+ApiUkrhn4$B_J z_g+m{8=D~ZElYaDEwntQRr>iC-oVfaL?x7r0a)Qnq^um^l(G1iV;dMg=y#UP=xiF{ zUJcTq2g50Lnq=9?yCmSTrr*=N&Ml-inW~IV)1vKr!MWKlWEBc zRZ|;NYh%*3gJ*dFBYP%?|BA~>n=b7ua?4AD$Mlde3(+P$gPhH>GUX|2G9@@UWA-db zQY-E0(uuGhmewXstlI)&EcpD_iDFF(h{X89Drtw7b{ z5-(q_gS(1|D<4Tusi^^m=AxC#oCJ9V6AWrLnN75&dTIn>*R ztiNq9Fg)%Ggv6ObU!<}*=#>Bezhhtv5UEzfjURz8BEP#XRF`2k1(k)RD}FWKOs6uW zNyxsTnau_?tEi2J_U{c=*;tH8u}PnVa`g*7j=e|&n0sMsZ8!62{c{1gb>wkXEt`NZ zU-s_aE{fy+f@+MG5>I@zBUqFi ztd}v+au+sY6SrT(1`!m478KD=E+yA8OJ-mC?OouUwI$>B@im4&$0zBLh=8AII2zb) zThiB%nzR^`x^yJvj8_EB{2?Dcx1zlMYFO~=OT#FQ7!fDef{(c^sM+6J%xit zl%PnI?K$W6rdw)F{}$NS`^B44ajj=o``WABr(Y@A&5B_2x8ZC zSVXnI(MT4JG=AweEKGej!@F-_w3w~>_sGScD~?)|tyG4Kxv4z%kh-pyV?M_Iha1h8 z4}^_OfHthzP?#FvX%bz2kyIe?CtX6}P!#}`pzwQV-6Um$A}qOGH89KxcEmfo-p}!X zbWjJ_k!xq*7u5lm8#>|d4oLPjq=4f->tz4Ku?;RkSQBjREVVI~7(gY~+NIl0ki8xQ zk{J|ePli4Df}ycjL3F{GpSK!TZa|I-Ac5l+61?gh_DD$E zv>m2*?fFXCfjAZY=Vf5Z5i-$0X?h2<*+i`2as)1HliH$mNQ&S?O6Ped_9 zfM|Wd<#I@^JE_P^V~-4d#21BzvTOM1b5U0dZ(X1lZv>vO30{*k;~7l0ek>6JB}J1K zD7`BwTWn4jlZrpirc$P2qHuvo@oeu~&(m&8q^KOV<+_%$OoIiM2i5LNTs9jR8WzlT z>-V#xD`AR^w~h6Y>wm3Fo#gXrik{3L4G9QOlu)c|>H8v$nl4~Vc5 zgR#68S5A(p6^S`z`ri3mL&lYLXPZltL=u_+K5JhPHN5=Y*WWik!sxPMO5v+8b7*pJ zn@N`UL4vsD*-fulC~ObmMPLYsP&0f<_PJ#CQ?)?zL%-hr0Qp+|@(jFBcHQ*^eybw& zTyvs9c}|2L#58Jgg@!}o+7B#9K7Go<3xJFJVs{dSd>zZ9IKzb1P|*~WLLdjc)mS1Q z-Cbya3vd+k!sK-S(?uw^>DZFIx2+RA|H1l+E#|_Kq6Injt*4BEXk@b7eJ4$g!tHoZ zGU?=X>S#2GHARuBKKyCG@CC2!Cd*U%;4C7yo1{2gF|pP}u-IQIDS;FEz2|P{(YtQR z$`Uz$X4oR(88}>9HZW(=i}LlyRxJx5X|q$aa+2Mp0V9>faL}iI4~1QpL%=Zz?z=`_ z(GiN`MFw`jX=P!l4+T?Va3$8YW&^{qi<;;=?)Z3k^S5S8k=Wey6*Tl6B+sP`S%U~Q zzCZ-47MhxB@{g#bpp2Yb18;|9PLc}d4U*B+CM1QG{dq!NjE{_G9%*++Fyk-Hf4>MM z#k3HY#HBem$0{C|F+ZxGJ|1i;dBGN7Hr|Ce&}y2knce<-pZwYu`!_3TX4L%!Mc(KY z_2;A)oWB1<3U4kjg19fQexCd8u}_?{>9smh+1Nivi6&(^A?>TYUOXQE>iT8Uw&0&8 z%W0oYpiy|ADKL$yfCC#oX2$PrARrR>)CPY<^y$ELTKtDF28|CeB}SMI1a5(fWab$J@S2gSaN3D8*La8v zUP59N!mf;XUSnJ3WOi5QdTI;nB->e@#{G zYY1>}uUa!LL8<5SG0G~;nzPVud&`l9i_%hueTWEyiMacIGyf#vUsGG3!o3MY4#2XB z;t@jk)e-+p~TN zR-7P2k-oGFi>WEz#w0UDTSov~aVqh8BQg8;K}gj8+WPDCqTwZ1w6=R<2cl8Oz{-Q& z63FTb&%qHqc5N+C4lGxRQdVNDQVNkO8t3-1r59wGJ^tqRW5$N4-7dqHU+n6I50V-V z^nV3Q6uwC_@b{=D^-*XQrIa2K`uSCv+6%J;QQ+HVOQlE1G&sS~TgKNW3*!S4CC6(X z;`Zpg{z$zFXixob>ge$qIU?5`us>|I5yv}rl|%^hjs0XG%46Y+@S~2 z?`dq`F#-nvA>s`D)1f5lLJmxyw^DD8ygy@);DawO&&&uTsNvwLpt)qFz*SYaQg$}4xQ1a&Z zZUwuUUe`zljZydyg>r!n7wCWoEqs^iG(bI;*F&8)qmLy#5C$6x!+5bAmzL@irX&zJ z6*3^`95d%-^*mqg42209zU03)<2ZdnLy@jIL0ty)`^pw{^xdEU;_}_q?h^15MaD4={`_QK7hc{t@-nw<4 zo;szrhygr-r0=iVe(l!Jb`TB?o>TwW2`ND1-&W)7%mL0G(KGIhS^#953Gk@q-^Oi9 zHF|S#ng4t=MEpnByMC-m?3JjFxn(xuYNgblZ+(bdVHUq74u7c zL>5u^xnu>N#<=cL9bf5TUIqi_cZAhx2+tB2ZGYAIv8`a0K$(S-T(VZ#Ipll36BM|$ zi*dhUyR>3gY7alQo+lzd6NzCCC$6-6LzGvEMhkl}vz~j%ch+C)`1*$FfT|bQ3WS%^ zXjOjJ4%~=>w*R6zuHanDp>Bw^Nhk0pxMqNJ+KaBk!fg|C1`=DD&ti&adFk*`D(GYO zEY8F;Mf^asX1_Z6Rjgx;Vh;|rOB^T7VwH#@EY@McM4>hCkaxL8k8sFdQ`C~-cUf`q zOv!58bPSQjxnV68j9EgC&=9%VwBLoh44O#s2&g=;z))1UqPabqR}gR!>E%v1Oy_zB zvridI1Ka)<|5b}1L5W1^$brqoMVY3E%KE5}wsSK3Ri^zqi-1ZSy@h9G=q`42vSPsB z$yquV`I+b&pH%1!IVIjX>Q6$IxWL_MA(d8)-$i@^^#%VH|( z2!8P5lubpTWLojFV|zml6I;z{1`mjCu4i8_i1DG824$EI9@t>HezO@CS8|nRZ*q$e3@m6p1gSTFb%(qYru*qk7iEikYLZ>Ou^0kF>Zv{-94fMWYo#5~(^asO2 zXU5EpoNjonxuWG)@5ZlYE00`>08KutuI_CG?PfZs=550K-7LnQ>PJi zUk43~(n8n@xlVEni0f(ST|}hOfyNC|ORbv5Rnq`+1n+83{=}amM93`k74wQ%=^_lh zn=G1`j{%|M2*Y`0(ggn@4QNrjV+0e3uQ{j!bTMbAJ>Cs8Po5O(nCJA6dLtq2T_Q_0 zVIbH9z;PGVhZiRtB$5I9mHa#wI1U0f2d>6+3my$vynQI70$k7g%vy<54z;{tbAisK zv1e48D)CA&K)?^Lllhcgty9uy$BGBp>i;G#vMu;l*78pYS_N%vh{Pu0ZdSTRye*lJ zW2v2TTWzGhL?MOnyg((32SQ7se9pN*rvH&Gf4wV~gS5%hz1nm1Aj2IfHH~G0NKapE zTwX;jg)U+CJkk~7E0$SR=EL1JqJ49HOQ3;Rq`OjnOL` z%cT}yIwR#+cS9o86qE9A{xQgom4>%fnYt_TZ)-#aAR z^IKK1iOUhL;Q;IK_Tlf59yVh6LG9bvEAh{0Te~EBoRx3=YP@6u#tWl2*82)o{Q)yt zqIfD&&Lod|L*1rY4C@Q_A822X8jv%nR))6htIGz1(Axe_8vjnbOZjkaJ(NchSD7N- zmv68IUqPi7oou4zDC2!GT)QpVxB;`^N-pZ9XUDAcPp3UKD{N=^w&g@h_?p^5Q1~Ph zk>vYo^CfEBilaY~pMgs;fwu)|Cwte#Ttg)@X$?eWYT52DerC^`Maj^E1z+C~#iv5` z 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%0Dq&?_me4!sYpM?oAq&HW41 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\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" ||\ + \_\\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\"; \"mod/AM-\ + Certs-By-Ident\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/633/2f6d4158\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:03 05.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#\r\ + \n#root.mnuc.backuper\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n#:local FetchFile AM-DOHCert.rsc\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n:global MkDir;\r\ + \n\r\ + \n:local FetchFile Binary.backup\r\ + \n:local localDir \"[usb1]/scripts/\";\r\ + \n\r\ + \n\$MkDir \$localDir;\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-05-07 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260507/20260507040001-Diff-Config.rsc b/MikroNUC/history/20260507/20260507040001-Diff-Config.rsc new file mode 100644 index 0000000..322cc84 --- /dev/null +++ b/MikroNUC/history/20260507/20260507040001-Diff-Config.rsc @@ -0,0 +1,4 @@ +4766c4766 +< start-date=2026-05-07 start-time=03:41:27 +--- +> start-date=2026-04-30 start-time=03:41:27 -- 2.52.0