From 4c2431e3bbd8129ff125732758170078a7330f34 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 07:21:20 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 07:21:20. --- .../20260612/20260612072001-Binary.backup | Bin 0 -> 271272 bytes .../20260612/20260612072001-Config.rsc | 3604 +++++++++++++++++ .../20260612/20260612072001-Diff-Config.rsc | 17 + 3 files changed, 3621 insertions(+) create mode 100644 MikroMaster/20260612/20260612072001-Binary.backup create mode 100644 MikroMaster/20260612/20260612072001-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612072001-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612072001-Binary.backup b/MikroMaster/20260612/20260612072001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8ca2d0d236d9d4824e8f8c2dd72db3c9059e3b2f GIT binary patch literal 271272 zcmV+aKLEh*sF8E1BLo0;+9Xb8G>#oDM6?DHO=|}L000O80004Z`SAPzLrz%AqrW<# zi|kdU=3c~*A{dhZ-deU&p!V-JXCLo)2Tb>TB>|>WOGbfPdy9k7(}gyJR1~DT zSwVC53pf=feHt1RP(e+7OznlSlaaS&Kd8FDAq7)_6`WN71#_=%J+Me5Wv(_YC*86; zRRYYYy^(AbX+8|c-erjlh!P;&S0wdp6=a>mw^KT7PSl2-qkR2w5kUoP?7~L!#?&j7 zLf&-ZZVIV{%J*zs8Hs6Tl}aR@pCw9o%faP&a1y-ORqjTx_2kk9F~d$70}L}XZ{dsk z%F|Ec*5Wk$N8A@0jX_mgEjD^7uz%v6S8w6K4Fq)%%WNL`6D5-dtKD{atxj^%ht|x7 zfrR^14d#;SUjaZGS1WPb?rwvhN#c0|#kdg(pGRr|q;8*_VpVUCET0wgEv$yPsQi9H z4$oFxhP-Nk`FgrkI2?v^cUe`e&~7y6hU^2+f4A@k`7m2`@p^%fM%iWur%}xrgjPQ< z)xK%;n5gVh#NY2`>Nf{4f?|qm)v0W#@#BjU;iX9o!QMtigZ56m!AP{C9=1pDz5g5$ z)`B1n9kB_Lb|8hSm^e+Hua%1wu?)hj;2K0M{s^yeaK)P)LI=~f`D9|-9vQ*=%kUlq zvz5dyJXhSW%1YCJpdWlg6DKxEmG3FVajBvgcKV9 zB!Pb%ho?RJE9FWrnwkAE?2dygXFid@zk>WNy3#&Byr{{W`6eB>iO@g)4EisPw=!S! z3nZ3KvXH7V%%ORa2B;oo{J2lR@8QoX6gDj4?StyS+ur{)z2Ga~J1fKk6zNgQPA`Y{ z{xnkOH}B-O{$3sw+WNs$BqE;yEk-U!E04^CM-?Ps-T2cWpIMxV?4m(k+$+lAR4WpK zE|xb!o=ehw?XoK$xM+GDz49#ZGFBsyi*>#JA*H{-aJBp@!^e$BfI3k5qv<%6$8%~x zNz^#$M22O1+XCQ-eZaNJ<-g_BWCk(LpSXCWOpK+$E@KD~Jrs8Gm2)57776)~qNW_# zHqF!O?a7NiVZ|^nLWip`*GV}^-)@L$G}Sa0l~Z=-cloGTsZz-=h%3T0N1NgzO~G{y zWLZmKvAWWTmCk=Klqew7q37!!bDt*GSnY7os z>0>B=P_?lRUn^;ZrcgT0*nWr^8UxOuYp4{;jy`I6Hs^`OV*0&tbVTIGk63l|Hpoi> zMBz>voQHhdC~&*dw#&qco_;;zwg_1$%t-T9o{t>uFrH_b5OC9I4^aPn6#Wvt#r=Zu z&rUF>#Mr$eQ;M35W@794W4A7t!yr*fuyWdQyQL*_o9mzJd$>>YoeL`b$jkCwCWEH~<#Ycz+C6yB7cJhlUs#h6kpJMxX zzW0{)@9C=2F;24{wG35~39o?Yh*fzuOSgU3M`ZL1(Iy;m7{mp(E6x!KB_-%-@tg&V z^%pZsb3}KOM+%u)M58e=-EVSPQS@?hc$`jy8hr7Bj^5&Zc-P&*j982#Tf|s|H#UW2eVs_ zaHCqZQ_4;j1D!*q?308&NlwkHR8^oeX5UKAw@4fOEhySyibu^ zv&351gCTiHlp{6AZ$=HysZ(&7E>UcI%kYbJi#hlR!O)a%v+}U6A+G?tku}(iKtvHHqo6NrS z!taH06*b@-Ul~Adi4AeBN4O6-3H!&U?WOoD_*!bKpkjcKjF<2%p}an~{;)50SwrqM zr#idC@bYLiM_%C7sN$dCGb_{E#-Ds&w|9J7pg-gkI;3t8@~P#T-T6!@<>R-XY;%^-^ZW z>%at~xcxp=O_q{dqxfc5+iylRya4dzNZ9` zmErgy3g8h#jDc;C24c2SXz!6%K5^0GsuT&jP|ef?2fwATQdVi0F!GyxhRK!S+rx-+ zoV5nQ=&r0l(UYpBcOet^DqHi5!Z(tNzB@_-5-~-ZGcrFeCWZzF_9?PF5 zL{-J;0fN2p6>8JHAtpOU9*U@$%VACKqsi@(z7;`xk-qqV?3@ibGzvuR{5(Tc0sj_b zzhvgz(j8AE?Aei!L$@7GghD@Z0#P3}+%yj|pv&?T$>s~QgUM_=$^l6F6it_j6FBXr zrKz`db)7gEn!B4Yz8sxU4#N0wqUjGVfG99}ib=c|4mHH30S38;WlkQFqcJK=RJ1oi z?rhg;pN(?Iw7EJ;xANPmB57RCJa$^eM8X7F>xX037&r~vO74gwePz^)TkK1OA{bfJ zjR~3la_J-4|64Gz{&KzGh6|l*JRNju<34QRi+5N?N&{6~4oae6tk`4_(}_gLEOx9{ zpVp*{q1M&8V3+^(nT+3gW+ed?PMR|m{aDP?t#S0ZfS`yhT2$uB@x5q~;B4zR3bFFX zSS}FDGXdGF=JdnQYi?tCG1#lN4H{=sv74+v#}6@9rtpC0LUU5CrG#cF!gUt z_%z285)MeNdlN}scySMMOD$CEec`d?yq@%W0(59lUOh`*@7xFubN~c2d!mBUdU_QA z7E1q@uzkZjyT6z5WVgs?6|YCfoUzK$n@B^B7zDlQ0E_Dc(B%m}Q(}HO8~W@Bxg-hZ z$`HY?4HJFc^0D~6A?tFVpECblE1vA9S6}#%WYbvkRt#UE5{)G2GYr@{MDvTIW)Wke z8;=W(W_(+uo2H_pqRsjRS=%vSO10NX*fAZOVMz#Mnz8DpB_IzlU)wx9g-8bZC}{GD zHup@Qu&dhLY?w?r6A&%zJxNd-dB%aQH%0S78fBm;A87|()mrehV}J_Y^^Uq37H-8d z80vbHy5HOoO~9n?HlCfkXPjl^{$ub|0^BmWQ{voondCcMjex{XS&0T2Lv^G2EXryqGqyzHy(yu+F5xflW)HD3|O5?PSY?x0P} zU#RnQuwk~bjQIg03P-3b4D^z{9 zPO0hZ7j08>aiUN zK{#Z|@!e_aM)GTx>dSvnf#>T-@AccESFVOovARWB?X~+mlhQ#q$YiJtDXR+++oIof z9c0#5%iz}BUALRBqX~b4s#6Ja<#I?LbkO3{tBz0`WVPEQoSsI2y2|W@wInDRvrQ!o zURXf|i;%Pb0DB+oLOenLE|qlF4bewGYdS4G*vC`4F<&)jy(zcf0y~JgVfC{vW2b{9rQQhoL#<1sAVinGI zu|w!68!A(%Xszt;DeO?Z&PsTo?*%x)xK~J#$ zqYAtzK5k@ulBHq(Fu_YtrZ^U%nVfkWm zJ3MVzj4&jF3XdnFk^C|U*1%mXyJ}&htZJ<_ToVbf>}Pc58|f$NKF@hhBz1&tt$)Gl zx*3d|+9e91(qlca0s^r6N<8)j$JT*?L4ol>!IlV2)W9opPlCd)&UCo5Nnp!XrKQyI z%^d0S*#IJcd%2~6$yYckPkw)_3oo|sirk+J{INw@RLV9! z8i08lB>X@!y|(uj7gHL3IFhfG?GCD+gqEt?{gziLmpi-F613MLen7@z#<#cuKMpyh zJUm*j_wvq=i4BOJ&{JI14Xo56F2O%YbJ-KQj0pE{w13a^w$%AqFn0YkFPv??K;0L| zwkMF)uCoK?Oe0RUgzhUDpFH|`MpDo^5TLe3f9}*nbd~WPI9Imae}a*y{zpr}p4PBv zaJ3imJl*YHv`v@1xXR2s3QUKdfK!SLmkct|xkk_@5T3dNS5rCFF8xSr)<*v)GbKMd zh2KaDW6VgyH+AxVt_?5qdLuQ9f~MV2#5N#?B?OgxcMWw3V2ZB|a*}8LpDE+aUUqLM zGSE#1Ujfzk$&gq+`|J6!naCt+lp9jJtJ^U`XkN8SL3RtS=+wuO|1YCkw++vSmc58P zw*$=4#q!yQ?>@9UQyPd6Z!}@JnQVK8d~H=ZILS-n=@&VC)7H)+BCbB3=D+tu#5-Rj zTLNq|BF<1BW~i)=aTiSE?yjGV|L4ols8@i{1*UM|?hH4$|AY1pS-n|VMLQY(l)?7r zrVAOjy7XYKeF!^aK=-;goX`mt6HHd?`jI1?Y;ecc74f2v_b2=nck!Mt>qnHq?_9}g^e zDBB*2&N0rG!avT6_g|g%!crS@+%!hx2)3>7kDw`QOz%)rzkIy-JQ+^2!U6TQNc1PU zK3XO3(O31LHA+kAgDxLzD{c)aE&o=;&5>>2w}~tnR=$PkPyjun#$%xj=}KDmJ9lBE zw=PReBm3X4#J9`?qnHSzGC$*0W! zv6U-QO^YvohWxovavFMN(6hf*cCI8BwADD2U z_Z_CQ$P+FxCbr&<3(|B`QPuL5g^k4{8xS;@+LGvV3(E({Tg9cP9$4(f3_#*wLFAS; zhgmfs;9%$bjJ<=o@_SmSFoi8t3OPEfZj}=MMqLcD*xfbul`zF!aYCa>;N4l7{$VWF z)8sDQ+N0jZ<+Zp`U}7^3SjY;LIT}juUm1Gd+_&HO0oeXK4w*A@SH>Y@W@GR$HKjh? zBiH#W0^HQNPj<2wZ&KS}Xp!MXrDp7L-J?m8SCy-`XlTijW*~($#|-tMq$WWH>$wiR ziTm@Vq0KqK&byXiruzf#wDa`b`_rkR?VT$%4&nM{{$r?`T0AP_gU~gVrw)F9F*4^R z{a1y;;xKWg|464Y{_Y;3TuH7Gr>en(*1*Q{y1ULFN6$(fTRjx@RV&T*a!m9y$5gIR zCHVTCd2x^Qku4txbx`xbI*d5)s-rIdj0$J<3QB3_iH^Lm$-l+=PnyUIHaWiJ&_?v#GS?1axS{n*4V z7}zG2oW(~u&RgJ+RLLxMcTrYq06|quz)NWW{)>~;+W(WUyFuy z!=@TGS_YEOe^i1bMB5kjE znidcmz>HBTF6qMl6Ykg;@%@gI0#3QiFWW<)jvF%-$IQ!oM5nyvB9*bAQu^V&bErST zOgjY*F0yH9CGAmtx3pRrxwL|)R0$`iG@z9@Ni;#U=i5fcv{*1yDqxIK@fD$_3@IVw&TlU#$PYxs@ zc5d9#KE|kZ?&hex!lDnNcQmO~9t5z`rrfg^M28JmTRx|TfdJhyj?71Mh{q!VKVN7X zhf|BhwsM(+_GPz}9xUXaY5Jtul~}}OfCc~a5H=D)Zl+%+GB}Ud zI+*UUy%mh!&hlXOb|F;g=O8J*T@^Fm^@YR6^4v`9IuX%m!{>i1ER~G_W)`E3WTE^` zn-l_ry>%MOXV*~kmeq#sYLT7fzbGQJh{(O>`GH?i2^zNRz8Re`FX^e;T*nr`nDap% z@bnjSMbjd;WpR5M^hwK+4|BgL`Hfi^qeqq2JO|40rdxknEjslOX(^<;J{IL0tBovB zs}cq^OH%-WJvFcC)cY*d#%63i)-wNcdT?HPsza9gPl?EE^Da9pBCdaxdt|TSQlu&O zJFr#@ueCQns4OaoqML?y;7QMW@j$V4!rIuo0(KkN(C_7=VXgnw0d_^EEJ~L#N}oeA zEG!u<&Mw2$=a%rI+x2;eT7D);jzq|LU-#_ui2yPg8w0kjiYGs6QFA((1RE4078^vN zNFlAtVK>Ci=)+N#^pY-=ScAargFC7S4(F5$tsi%W-|#091G$nQXyZaPI?%3%1C}1M z>XPa^4nh7obXT>ZH~&ymm#&OIkypA^B?%LUs|Ob!a7;+DPmO^PS0N3+NFkwK0`S(u z7u1(}Xjpf~1QF!wNlL`oX0<2uJ2qGcKuX%mHjtjqv{^BXhIi)crd`)6(*&;Bz#-7) z7qJ&Q>YRH(i2=Z`7CCrdRJ5j4ls5na5P^=JEAhK8c^``ues4>QSt#7-F@Vlt8rOSGMaQQR{UJDsEkoss9 zhv-maecDtd4iXT$~?#!I%OI6J`bbbRt zV%2kZNM~A;KE8lvm^(-0=4`eoKLFeXkjKgG3=q_(pks0%f`g<~^Z|Ujz9Y&tW0Y*sW^0ldLzVr<4c;jkd& z&oxGPrHqw8ozBW3LP{cBWVpBHK|QXWj=BB~CuzJQm#cTZuGvQsdigX97LyERHbw|a zc{Z?Gc={}6J~Mb7#ORcr1DI;46kUIhrtbYJc0>Q+Yt`T2&~!wr{3%vS4t6mJl3#3u zSuC2oA05OY-o_T)u)OZq)g@duxWmE}fvJwcAZaXx{I~4k@LbXo=J#Uq7l@Nl> zC4rP%&1CK9Q%4gZM_@$qkn!_x9}S2iW8^rDjdE}*(7DKLltu@QoWlZN5^R%-ZCYAcm{4;Bvr1^wx62!fKf z$TN-G?A;aw7EsrS4W5kgLGN8c2atk+8dR;UlH>0rn@HpbOdVF}Fq!f{Lq(qPz(_!MHaN?%pS*tE2%9t8$!hW)b@jG1>tq)2p&m7U1CYl{lVL3XlAd z>(k()2!Tet^dqoQb6?yTP1Mp)!4SYz9Z0GUKv`g>b7U{(FbB{1_KY%&l-hWsNvP$Y z<;h?N?b_k8V27d$PbIS?^7}TGc}lw;l!gfjnlv`i9fD&Kh;N?o3J3r|1f7B)Z|XJ|*CEz*EBteoV$74-a8F$qQy+4LWu7}WS~O0Uc3 z$h@ww*t)v`JP8baner)|wZzVQ5>q}GMJv`nGs4)HE#qF%5+V*x9kz#;6_{~--S5Jx zl|@^pVep^?rGx3eB|8aC-#_V%lvF?TcO0iC5QdE=L6sDH7ST6aYS)m8j3H;8qV%4g z9V+z!IY7AC6#&rHC?ia=+u5=JnIQVs0PBEJB8|2J)S=Jq*i6Fc2PoKqZ>WT-8IvLg z6(u!c6Uw2^)fLztvqZOep!te#0x!*Rv61^P{O6hyg|fx{iiLO%ei()Da#Sp35EaKY zhKmOOM48Ew!DO7?3kqqf2B?A%EGoN-&1!DHX1^p-ouj^ zXyJ3>rVA-1**Ywn4M*@`h0hN^s<#M0EY^E4q0Y%&*K2<5y(`_|$ys?s8PJRVuOu)+ zshJ&(7g=yEnK8w>Ld~plp#?6Xn$;m&Fx;*2CZw<43fLBVe8zeAw~u{JBTV$Tcw!yI zAE(onZNe$FTi}@aa-BL&9l%8kT3H5Z>NhvQ&NVpMwlWXFCNrB8qtTKAzL`F&uM=jr z_{-3xDVIxEF4~oM*x~8GjU4|?C1Wl^>=yJ$FS<^AK$+?3)l>|6i2>=6LGqkH%sjcW zTXVYeIVy)%TKJ4LY1#X2)Df@?7k1D5JW;Ka<=zQ3y-QDn^SYwnB->utah=GAYutqd zuF~J@$YZT6zyEL~%29%8>{ETpVO;$K<&&0hBOZ;4^Gx^R%o^i}?cm1zW*44cz0d*D zcelNK9@5aUKQynNKKnO+!EYS!*+^MvCTZEdFSY@&;nfUth?|7e;Z$@QI zG&>sOgz8mXAEf^>ZFd2~yK5Vb2AcQWAc537>HoR}s&Ib;oGIZ zN5bgTUj;|MI21%e1{T%Se+(up5ts(Pi8!W!K}eFSu$i z!yG9bE}8+)4KBP%tD7wEq@4Ct({_wVM6Xd2QQ6CcPvr(5@)J+UWDPMS01)ab&x_a5 zqo_%qqeh>qK@Gx*B0m71^7?m{{AfL9#n_c!>g#(!5g3PdCBPvt6PHvRsJfc$bv=b5 z@aw!1uvKiukSMWS0yF5$<@$7ui{BAVWAy$M zz(Vynf)x}VT{-?#`IwUrBMCF%FG>O${V_nzGhb@sGC@zs&iLcCt*yXx(mc}KjBBpD z>uy*sc=?sb6sMkwyQwqr<0 zh5kqMy&#~kr^T329s>ltjNf~)qod-DmC5nJ>d-=_%6iQd!xo3#gYgKc(mIU_tu=5L-U9vQ_F14NyU8xfN3U; zYF@%Gt#G1kd-0Z7LcV&p0rLKT{bHHHdbAeeShM6XqOpy45c7;4<=nlw$~NZv!vQRg zz&)>?G%sL4#EcIv9@xo3-I6BI0jM-qR0u6pCgC9;SME&k;-hk-suPl$*t=h378BqJ z{v%YMX@Oy6Tt}W0&0-W5%ix&zjVOhIR@XxI(USI<_d8GxMp>S*`YmDoe&u1P)wC*p zjmq97iXqjbc+OXk9RrG$P?5XTZ^mTw5yPTjDay~Z8FvU56Ffk5+t+4AQg*nuf6#q9XyEiECktuec|LC(ShTIGd9Lc8W zk^%hE#Md!$iw}myR}qp3$XxYm2tV9!7#}TGED!CUu}=OMK6H z^Wqmd^~XRX^;Tf(0It@WH}EcA z{!A@Uw?BwLFN+w^>-LVxGhu9g;QFM9dr_b!R{uqc=Rc3RDHp=vMOqmkiXeSiX zExymh)r0T_qP*iA} zXebLw?ttt^j{LiJN#N+X-(QtD;xizL>3mbv@{*P;O14)spy@RZYaMGuO9|1@VbnJF zi1(QT29YuINuREwfN38BlquV-xzXu9GJgO9^DzKB9ys6S1p5x2uu__rkkm4pNk zi!DS&ry3>F0k*Q4Ns5bd`{cVhM*wDELNoCT6CzBoFQW~BZrdSO0E5i5n%Qn9wB`BF z!5EVob&$kYO^r&k?2aUO`eezBKGCr?B)B55UBh@LkTszhNb}#bLov4_y8_M!_f{VIR;bU z5ROUkmy`uFp5yY<^I+CWzfJKVJc-FHZAivLYuf}V1yDq;k$%?~o4%kCGNv@GbQoQZ zbRf!8MzThlr0=^!LBpA^xe4%}Q#1##RJ?c}7o^vZ!yzm(HB$K*^UmnZLB_9a*uim|udy^8AN;W2$24RoJA?!? ze*IG7Zuxz(P)c0e!l>S2un!ERHO|Jq;y5I5NoVnVmyX?5`<~_$?M9i@#0pZ)6x!|vgU?4+_pn?~x6Ryoh#Wc3 zAcr>$mWsEO7l9J!4TYpdYg?#|^eJ{YDD9>j=u`Qj_Pb5Oe1e1m2JfjdRa^-Ow$7WRKe%3UXmwr2KVXz(AH{uu?58e zslLnNX@$P|33Gio?ENdOH+U*vU>%rC-ix)0iD^Dki#e9#@NvC1cyRu*Y6^!uSC2Y$ zTPBdO2MK{3ES{T%8y-O90hv_G+*wDDCUFbbc+fW(85Gt_bIX+Juf^liuEHlf$?0)h z{dP#F1YjB3EL@z}1};5NItcQi-R=wE$ENHMr>5Jw%_i@&=wYxA3JD-Mb|Y>QMPYc4 zF{5<(_|}o?PX?w!Xo~u6i)=85p9bFuC&K5GrSBia8e86NA5TUKPYa;=@AU~$1Za+6 z1yB@a@42I_lM#UEUyA6QkYUW6IdQyTGfzx8pQih2_xAOT-D^nE^L;MwOhYc-(Q>{? zQtI(klco$DJOI2aFam!XMp)p&w+kfcV=0{1MjAmcE&#`%%zN`Gk<$+Ggk#q-WjJW_qee|fnGPp;p^kZ0e=Yg?h5R{3u0!G5eCGTwz#Hc_p*U8p zu{f6uzr;ij z;e)td6E!>jn9F&^`s^j+*31IXH+nbiScZ(177KHbB^TvSOd<>_Jf$vfa9}icrP>%A z9t1553Vw$FP=|~6?jd53|0;tNz0Z(;56vMIPyLfC9`3YL+{IHVVS+gXo1tpyi;KmO zG3C)+sBQ;aG69h|*DYT>UHbNJ(n>1?mKu{rm#=q0o7Hns{q<{%nHHr^bz*Jd1ya7T zPuKTSpGNgdQv}|JRqk-XxW9^kI9n~jKVbpBE7Mh^gQqaHvkgvnc<8h14f9_YMFyf_ zUi6C+%iKI{J3|sXe#oDO+3Jtrg7kcs`VjZusy;s(x5#mS&D1BvpZFt{CzSex-fnj| zqz{OQTHy+~{QhX|vJ)B}eL7wz_G39t3~&b7JL{0v1t!%mHH zwyh2A&Bqnjq9+J7esH-Lsj_H zxK2(A@>ZivABHjR_~hRSDXpMj2YXw0Kev~`mbqrjo{tfo6K@YMbi1k^ftyEe(7zJ| z6!4zZUxF)&u+;sPopVHH$j9rN^>)Azug%%BK2COldw)<#g>lkCReaF{ z?k2R$an(nNa+BHXoiE-76IXr(cA8#SR`Ng8z7zDHf<}blX~|3=|AmdFMjW%cw;5@) zkZ#aW82hVDuHKfBcl+J;^z z;41)G!Fv4L^o3Cq05cQn8rhL?(4IHchbWVm)aY%+h>=hHA>{6*cmuqA+-^{)!d?iR1f(1F;dvZ>-%g{na$Nybox479B^%vrkqhI^@6?l=;Ch6 zf@C`6cZG=s{8j8$t3~L@Vp(ZY`0vV?n}RtZtQ zEd+LSv#;K)AP$tBlru^O{>r!GGU73c0jbYZ?ksA2(%Y_RI}1}+n4g<%$)p!`#&y`O zkTQCoeAuEGhyU+Q_hCmM*#jGN3mc!(fK#LeB|$1)y$Nz~601=`3|uTO$YEM7eY6-I zaZzgx>tt%3h9ZtL(uETjIE@VYkiz9I-#_%IfWhFH5hz|Q*W>tc`yW|3rF2AyrWP7f zYgv!9OHjv@JOMRxTgz(wH@xBw_a@zlV&jS3^1@+j9)VWm+N3g$gsg3F;8}>?d@>4? zXAp|o_LM8&$!MM^TYrzxdNtRtt^(={)Svj&11P1UB8jE-=wLUi*B3F2FBLw@JGw`d zncQ-c5et7PG~9)orWUn!3#9|#VRTT%(AsB{x^4$H0RNYKw?%g zGtE`6fg{Af9q4DYLT~oe?obZu(}g3H_Itp-O9UVAa}Qa!*nD_Xacvh%+|v;_Z=qMa zTp{ai1E|n+l(f!20M6B!+%IoiqJU=EvTbe6aas8QWj$ESGD70jhgAB*<)7;qGIu%{ ze!#LxVe?p?Gv2qYA~xr}QU3R&QE5j|!_T_#!-*-CmZKE_0&L!9W~76h&(IRvH8pUF zn5ZFy8o$zX(CA4LRgiZiEkf@kS!C58>uk8_NTfkj3#Ca|zYSig>PEGM_Yb=AO>p}) zxA}6uGg+5sM`EMm4tPWrG9f;(5xm;bMt2Si#IbqSNJX1-LgmYfBb#U{US@&%O+J+I@HA(Y>=q1UOc~1{4l+dXe)B6Qzfae{GWK>`cR98n|g5G-TA_IJiWfVXbwBAW^ExW(kov=Vh-N&7L}Ok7$(he z8`sHTW;SB7cfzV0rubSsUYc3HuJl&}`oeh>HAy*~+LEYvgt7=GHhqPvz)GN0_(p?dXzy={LU}}tyB7@`=t&P{LPU(JQn{OrOBWt1 z4`FJF@w#d$hChb@sz5FE&cE7MUHY=FVCyX9UYF?s#nVSD5;#f%&X)8AlG05k{8@OR zTg1VXvaJn@=a3cg1El7R6v8*WGCMyd<@g5&XMDA=UuGW~;^Z-MvWc2odd52p*e~2U z9S895_wk`23lVTd1AMm8*6R@*^W#+r0mAGrZmj;?yhIemuwOf%GT?(`q~uVRrZ-FD zH|WSa`-OUL!7_`2oDD~3+$FIQP@~w42YHq~(~-Wz8=b~*ys`9}8Mf53D<%0aNCFo$ zqRW8a4{~~{iJTt_rMq3h5tO&hvMZlqR3fM`Dw`}%3%Z#Nh=yS<`$uK1UY5J)8*>vWQdLC!$xvctmaTa$J?KMn<>Km@g2K9WA4(9f=oSw`i4t z{OF<;0h(8`0Qzz1pI@SrS*6b07b|y=e1pk=S3q*AFz+(Jd0hYPXSo-0lewbd`O>$UK0U z^(exZ`7_Tcwm;X7Ri{-Vxnf^m-pubE9o7f|ICTN1`Hx!urkRf=yZJa&z!O6vrJm@^F`Mum7N{On3uN`0(N)m z(^J4oHxe8xb8y@nmO-n(zL5JfXLb7IbZz4_L1mUE)FaXF@*xMXObgHhr-j@`;v?XB z+1>qHudebC>*!TVJ=gXA!h9Yuk`GTlO zF@Tff3Z`p<^WN}x!i6L54%J)~Gr*^0Cczc}{lGKAQB%)n`-P>Iuafook)6aT=%6R5 zj;+FD9*Xb8iN@9ceY!xl@JX6h?n`U+C2G7+?v&f%eYgfgT>v(1XL z{ncZA=+P(X_V1S|Cs5N~M-5I8cTZJ>n|~Os+b72WJq7CZ#O*6zLibitYi5xP1q9%% zX#>63ZR-j|sLHfdNqIIt(&s`&Qd}lP$OQ&RkHCc)u-Ubh+Pnl5{fT-)!GzdUK z@TJp{*Iqrmp2I@ZWej8+Hq{@kDi?suNC&|K;U|s`x(U(+aBfq`0Y2dU2wsUf>FywMqBx?Vh`tY38tcPe>X zD+Bw$e~dOERw|(JltD){Nic=9*IgHo>E|08&wOo%soGsKWg98dx@4UfpMAQP6SQc5 zEw#88=`bQz2u!El!|~u_P6pd{LX-?C!kZ9};Y%1fYyXd(sd$U#V!6B*cGEZm2o@b; z;KfoZ&n+&;0ZYI2$!N=VEn-5(F3m7IM?RLRgS)Rv!Gtc-dDtZwL~$+$A2xkvq;f!i z+u2I9hZqx`p!hvLf2{?7o^J4~e1OFRj1Sp(5!`=i^7_Z)ax&c5z`n>TI6O@k!Eo;QCS%$+@75sNEP)EHnB0g<$-kgMT``Ot`1J zEil@OO9Aj1(N%T`y46z~V@jo{6FW5z#`^M%h6gEyY4d@|zT{f9ypV=Z0$y_PsOLIi$IMjF2D~N`a%&=>kB6Qh z4=%;hMRmCS*Hy$MwhhFtK0^q$LYdN63QJg^&cW2fNl8QSdi>yl&)^36(?kw8kqQfG zg@@VFX6FmN@F@Ztz8P1yrDSRLArDkGj(QrK3eZ(VT@lxv(iZvT6MkE&08XWqj?4oJ zYm+reY)&P6kmsO;`=+01uF^;i{qaL8Gl z9Av}J_9}rTuZE8Y;;&7hlhW(jA96F}AZFQ;KCfceKm$)^<(XCftWZ0nN%rwp+b1w! zmF?OQ8$|JoQZ1-Wg033*_MT*hn|Q$Oziaz8(}c9|UH(SvTg>h&=khA3R|#Qplt={r zjn8t41lLyvd{-_*5MyMCrS>&J(-E%iQvWU==P0utb{r(`^17W|YIN>fx9KGW%dBxx zkG?vyNugIybgmmsXT4g>qoO!Eif_<}^|^*U?XuI+Cz0Hg`Q3h*Dba&f+R=~LRn*4k zgg@EL%cYkHEPr*lspP#;=xua~)v9kwkYi^)ZlZIQ7U*A-wxOm_<{a?A+&)_GFRN`z z!%cHS6(`c-Fc zY78O1xFAH#D&k0m0VdlW^zQcEMbTe(d= zbQH*4V!%4Vi*#S76-=v z{USD(wBW9Ti`+bcb7-UGBMRe_dK6i~I@^CkTqPU>eJ!>|Ro70cct#UHrlH1#XzOp7 z%N@ZyA-0d!On|b=KRr7+xil9w0apvykqpv$|97vIO=H#zT)$tfC_QVZ)wK-TFlVi@ zY_c-BF?H0_42OABPJ_>`Ea*9C+HT3Gssyrc{&tFzm_K8!5+&_U;S|y~Y%8}6?$^bQ z*+dbNEgt!NzaOM4kvM|314-n`M2#PJw{)S=UKrOwr;k=Fq08XS3_LW%4#r<8t%?5m zK++r?{3KuitsPQOS~gJB8BBK!+S>Cglpb|FE_*qMv#W~IAM!D*bVt^*U8bt+P!nNK`&%f+{`fxZW%t4ubb5u? z(pKVnB$-!~2iJsLQktpm^E@m3`aNz%x&e+Ta}>z6b))WY=42ytcw6H2oqB1D0HlH8 z`ij=AarEmX;KxX42MuzKvm&9rE>3vpym8$XCht2ZRH!`2MgN_B>>Mq~F4Qw>Q_G z$fok$oDja}@Us;xM}{iw4+d?U`dvtIX;&;r)Fi-lk9CA4x{Rf!8;PT`${H!)Q6Tp` zUE%a~Qjv+C+r3iA?#reUH@bp|@t!N6vz)ixn?%`)2&KU05(y%mGHGow^S3OXvBN{6 zRbCv`v)mpb7}Xd5DHK6!>=GT3I-j?Sv$d;tNLd7v}^?ZwK$sMLC92iuA1V$A;T1WD&i7?K0;3ricJQml;oJ(-2CS?$G7r zZ<&(46RKSxZU_>Y@fdCxDZ-y0XJ3P1g&p}T)4#Q0+(G~U|#iOb-kWP z;n4!q?qg9TL$cFtSp6{_x~2cTL`{8-SmU@N&OVi8eSXH~gt0;>KLL+ik&USv%*dWO z4_P00B?bVumV*Q66b&~%f8P$ zWLe-+_U#a3NI+?*h-JeAxd^KF8yaP>lSCOdi=y0^PH9)V!SL`P5w{Q>P|BCI^8{Y# zM(2FZreMpZB%F&Vr>Gv4-itGy2Jow|>H_0vV5^zSNs0^Ptix&mcJt~Ek6%voKxdib zobddHti7vSkx*uP_1M{U3FoCbUhtW0Rtj)+bR1%1!~huO@4zY^xyZ`>~{j*42Kr>r+0yfGFSS-vcu?dumQvBZtD;uaw2qt*_EiqQxf!gfI7ub=4A7; zK3Sz!L()mtW5EtRE4eFaJAH8LhJB&R@#PY@Fg(cw&{>?gC?@KN4FY?4+ZF~IL5JTA zzv+@>Ytjk9Z*+lu7u7C9rM-mZ7%WYQfFQ@HSMY*u#vp!kx78Na5FEwn%=B4@FcP4h zVbygp&;Pty?`};P!9shw&=Xqd+E~TcWH*s(3jCZ=qRiVD1*Z|dn>UWIYz$RW0&KW@ zq3G{>F@C7)l>xHNoEmpmc92frBFd=xO~m$1h*vY|uDL|FjxJn6oK)sc@z2gmrXC&b z9vL_C74`=-+anpb1htSAx+q(PM|e{Kp6rg(;EIfw%&|S!JGZwza415S!BMko5y&lw zg>yLcLwz5j*x)fzrX{zyun3usyc^BiHB zKElc$ROZcp^O&K>po8J8J0qV3#jOnt!557HfY*^{Z}m&yN+navQ0+)D&SZGO-b2 zStCxwEBNY0>PZARKk(&wUf?tU zEkxN}nPq6XK$ef(Dvj<&USP7jBH9#T*9tbnaq$UXVcF?LXaA;3L0r1PlETIT#?2h|X#)-s zS0pF$CPhZWWG^vQO50>i#L%g={{Hzw6gt>z$IT+H9gO(IiN7Uby_qvd#tCsq!;***m60r@Hu(sR0nL3UW4_7~1X z7M7j)e+U~XYw7cmQZYLD#ep0LU*15V9xCBlskG<8RC9S`Ny9qfN)tE7h!X3w5q1-J zdnQJLYU92;1sqBS<*)thxB6{;F_BRV=t-Of@yBzc%K+M`cnsSFVSbnN-~#&x^|i7m z7n}~1JzW|XX54S8XtVCKrrx|MUea7vLqIW3QLFf6I*#V+BEJ zYteBk0dl^iAhY|IyF6q@FZX$o#n7MjO38KIfb0RKWAWro;!^^+%lnUG(AA$3Qy`E@ zNS;OWz355Kbv0b*ua(G(y0QtXg|~8dUow&1fbn|)(;bVYSbl`WkhqC1p%p0zQ_a@4~vpnxjT_LgnPU9i>0I(O8Rrd+cBkA*_B+kTnAN>*yCTU<2`lV?3FRjqvNlJ$;n%&? zeQk06{Cr|c{Z15{u7W}$Nkgms)gUb_BRHtIJ9Z)yHfx*LBU!s-5KOUmcF)c27U}vO zlj|On|DbKQ+8-N`4jMxe@UAwL?C|OCBx~mqDrQtsiANAd?#6ZR7KN&66S4i!XoBA$ z*sN5B@7q}6=-Q&dn@~W;)W_*=zK4vhOa5Hx*OqX}a6{N{O=k2XW^Z(m8&l!XuccU^VF0oDUwg zq(p}8!5fZ5t%Z&wSNdP}@?nX^X8yWc1U+J4qZ8Mjjw9{nhfh~j+Pjh#%b^$sod#|A zhu4DUz)KN3={~ulZ+s*K?S_qVd*yji)*79vtU}2-FzPRAjz~|$psiY0IcRE_8+TV( zW4_3T+5O8N`ig9ITgYPaY)`yL+eJ%|#06a{s8^;Z&B#E=fj&htFYAl)aDxgv-c|!} zgimaaJ8y@fK4!JGa(!%B+_=oePjHY2X#J{2@w+V|qTP~^NB*{`Ky>(*eWT!uyj3H3 zxNEVww4_*1>nO*rn~mZ9ugOuh-+T%_SbBf6q!Yf^=d7(n?aCbj3`i!y>g|PZHJw{Z z6j*FrmJDg)qNE2;w9gYoK86y>cy}cjC~$XqSw+M=m5R78HK>0~XL5UO(ev z9-j#&89<=0-N_44`}S>vh%Y5%TqY5?Dd)>q!(R|y<|O@5Sdyv`jV>$-$89MrYj^*2 z`Fc_D&)bpJh!FXJ1VhaCu=SQo5zL^*y73_3v?kf@gsa@8jOb^YkML~ApDN~|=w_ZD zJZg{M#YWaLT3LDxlBBq=cl6j{G%Tt-f?}u|&651eu?6o*Ks<=|Gk9;y;p?Om<;ie&FEYI|445s&=NVp==%%{|^L3z-)bl zt0DhfM*Vx|z0*9dsjuQ*GNutXQ>&^ZY(aEA43uWvJU~-cr{9xp{z&R>>otHw3{_2y$Om=dBpPT8kQ>3^fB5nX}QIqho z{+1FCUjy+NMXah%Inp<+vP_j}J-y`}YfeJ6VL!}}VK6<&Fw;GOW8M0yW0zf&WD84n zSo1OP^<7#xjYS`=0I|IhDW{U>>!2NXB7dhvq@2`-;>*>i(3kc$-~hU@!rf*L z3dq$FP%~G7y|HduW#Y+!n&Ithf+_*Z7mv9dJH19Lgr+8kHQ{gmAZzlrDLAL)0&fGk z1W}l>Vp+HIH?Kqe*bRd%g&7g@oRQ*@B_%`9`nzd3a^jK}G50r&{DLBF%p~ulrHP?<8spdzK07*9CZA@hkiW&4JupMxJEL(mW z@tH0%B};r`i|Ex@TGA~GPp2eI(PgUB;l?a#%SB15_C9Z=XSWM80K**K^PQ}HZr#O{ zT_1D|h1J(k84N~NLg&2k0TZ)i9%K>g7a%) zD&>xtd+y2-Dc!= z^{rFn@uWJU)ehx(foeI$761j@mtiEvX47?b*>^FFgc@h{-R|$k9~Le;;|kdI?wNVp z3@t;%v|a~P-7;@M_kdb>T;e;$aIqzyLqVWv@|)$>TI2t<>>w`k zBX8h!8Kkn7g)wU)QP?qgCE7nMe9&3n2KDo=R?LEqB=g0FLx_z_06|1Ko`L?_iuspk z(-oi}@>>!VTJk}|#iok237AKU1S$RUgLYW%wN4a9?{nFg32|z=_Ukl`jcjyIuIHev z4~1WAK}RhTm2Uvp6O}l#fv0yRU=_a)YfRRJmm)fd*O(W%xfoHJJWMl)wC)p2H}U!=9mtv8+cCHsOW+4zw+G*NW9m}QUfnGN>9`R^ zbk`t7APi4=!4=2+LEL+90Iu_-e*VzFC1w0ISjC}EmahSwST={)^E~GAec2G+A9LV* z!?J>ySfxO*BlLGkZ|0C0+)$U<6?iv#9#2=!%0Wk^1fy>hMma|ieYptN9+!tg0i>Bx zZVuEA?!X_uFvAN5i7i2VFo>t*+?BvO>=*zcj0X)j4NspJ5IDp{i#dMA60KAx~Ax%*t}L9 z)bK?T3j8bv>O;?^SP6&FAc1e9qZNi-lo;n7gEd@|&E^WAG$zH-N0eK5{UE($YCOfLoqc|I=%_5ZyHWREzP>9N8WLR5L)CqLLg?LVwJ8q+05m#CT{_1 zLUcV2KTaNr5Rc0{4Zy)-N1$tZBX*tgVN&?>OrJzCyFicvE|6#U6=Qb4hgbqAX$~40 zbw!_A#WIObjIT*1l7)_LrCNSY{n^n#dj~H~aetFuh1zQz^I9UoBt{la2cjFW$dR`v zoi=bs-w1eEOlTOB5nl4W(x+*Z^i2x{Dzcua39l&^;;wVI9NbGN-ROAo%((7ac~aEz zm9;_i8o^)lTaWkE5C>YB3Id(w$A)t;>3E)HQ(E$ozn-LCe1#957vKypo!pZP>53Fy z@Vz`l1q1!kn}CW*Hq3a^(r5k^!=rf&$$j#>$th@Ju4VZYY&o?3OjC~DIr)2rNQYnO zqMq-3F6|waP6K5~Hv_%zE|}Q(=?en+*s0HiOs7EE`ku>f4;!@gp%rK5&OuB%R6Op$ zY{1SND^!WHD#Ih$DkFDqs7A#f3J5WsXa?7?O3w3eT9|LY7;P}0DwH|JX9b!se--_h z`6Q-wkuIw;(6!B#bzH=q5|9L;Z8YYOt!1^lF~}HPW4aHw+n6=px`qiTx+6>RBNt|C z?D*_HRxF&WQg#@}x`(T|aY}}>6>U2`tt^f={W21}JJSs{HA+pKA$q8Xrft;P%Z&fs zxY+P`s;=HUUJ39~9;DR=Iou#|h0(+x-zz-!W9pcgYnXqKGR(4vtQR^0>>T@aaG;w3 z3#9O>OUR(8tYSQ(kWmN~^10s8K>CKBBHmzc07V*_07`y8^Gz2-gyukP>(iwF#J_&s z2sKzu@%IvXjMXPTQBS@%p`ITH;TuyWwNy=YnSPSj(?@C(vUCTm0SLE2J*iPxWXplo zRzrX1qhG>dwi8Z8KIF=5az1BeigHY_$_z$hqT>^^_j?OnW9EhNT5E zNx+hM2q17zD6Mj#P&p8kY9`eM-@?Cn%AzJfLU=r4AB_Y|* zcwieaPLhZKTKRbn4kLHm#Y@239qVozzVFPye&tg6HwBIIOJ0Ut5EH_hh~@7!(OvQY z?g|b*cpwuyO$RXt0K7}nCI7vQA6A+NMW@XU8U-WFrZ{z+EYg4xjBJ6{wuK9IhS1BW zb6ObIgn7+u+24ZO*3Aycuw5$mep-NX(*MaK;t>; zzQ}{Hn2S^b$$F$O(ji!xu`1!bmH&oP!A){2Z$hx^(=4ooG|XTYe3vux`yfSk^>Xl$ zyyo&DorB$kalVvw@OY1&DfD5_j6v@?25Y2~np&-_I+%ZT3A{qepvUB0a#b3GHxjZJ z4-yGZTn#v%t*qaBG|Vqp^tCDdzgPicV5K-1k>wNYP5O?j1_?3(pyDI0>y3uej3{c5ekc* zR`FQ0Z%7E+(N=;`JNabmRStId`3CFO>OILM6eEyd?*7{1jsLa0&*rl=M(t*83u-MkpD0b5 zR6mL=y8-Du_9qTaxWVL}|CymmU#NRvCjU_~u>5=1aDQ=pO&D7^DLUIn zQaT_p-Zq*_5RpWyfQ~agpN`24MQ0_Twx~3I4EnaeTHf~tsq!JYSE2Rzq*Un}mP*m+ z0QPKkX;7-&c3+{>qt@NDNVCh();qy{PtnJi%x&F}?ZK1E#G@~t;9n!mYm*}d!nMVk zf8>=hIeF^F^={ekTmJ_VEZ?7?hIG8=KUR%(Gr7~0+!rs1{FkWxQeJ5lj#r(wA(lKUhyM#5grs&#iV1U~|O2hfwu6*y=)Q|g&qVFQN$G4;OqbZ zggFJQ_vUL_aSE}_?p0ZWnP!qZRcocFBymarmr`|4+C9J`vj9;dPBOQ~2b@gcawW3b z;SKNlDm#H4_vaSmnG4-cMj&`bojTUNB@EhNCo zv+a%_wFMAUo#kpnx(?|mInw3Q>F6@Js4pO^^-#TplHA<7&YG@Zg7WJOjp^ybS65tG zeGaLVFOQTmQC7rtXPG(qgs?`aYEjc^W@uTfzP^W1vbtGL=-*ts^?Dc-=F;Y7Dj&#% z&Eit6aeGLdL@meO$wfekll)Z{EX^=m#cH&pxT2XoP!g)!tm~i{jEI#VKy7%<ro$=mx415 z();@~_al)o-^j)VYQ>;eoklRPWNA!@GkVnhtUdSwWr=GuR#3qva5DAge@0B?7r0lV z$}s@nduD+CdYU&J0kBAqQL5& zXu~`d*GizqBzsiy0=*BkHw6fTUm6!@=*?va(vwD7VB>-s^JtZBS-+6W*1H^7*knB( znP8*N`6Esmk>!~5`l6AC?*_W5EJv;zc@OzwA#B=(feJvIDfV~^&^S;^xx!pz}P z>t$NbH6J%B9D3a{C^SYrEJBnnEg50bU0Hs-%;WxU9gBo!E<#cg-r(UUZXL#n8<-Mc0}-zqdI*x*czr8&I;R za$AQ5MPQAdjG@Vxa#PhF77i4XD;?&edJYBS?FSNgjUEw-XKIXqj8qTfrn>mw7AB@` zop3HSiHxlMt&D}GMc|lLR9!Y0-vY6w&*w}`;p?b7ifnGQ)iqkc#_EKJVcI=N z?SKZWPT*JWm_OPYR{>+p{Dc@wJmJ{Fb|!*FSq|MG)~c-0ClGsn^bJSBgs+Q;zNPci z1OiU&dEN`f#b(IMMw@czPDOqo&6aItPtPwy^LN||!oGA?P`ow5(hv~VH^kREKc zxP`S6D935HGZ+?)=3Ha0pJ>?};yG)VmUe*ki6&XE-SxO*~&d_Z_g&q<+I z9Ct(UIPbg|yjiueK(LiVdW!E&eN}!wlgBwreKXF`8Ja2~T)Qb(9VO3WKZuWy{f&oh zr3pGSYEMpvBPv0O3Q311Oe?xuB&m*$ z19HP@LDg!ePcLmJ3H?IMP5Ftt^%l zFGmT$8#zL>yTeIImz4az@~3#c(tbIQOX{_4ZZ@sE_21Z=!ED9P@W?A#UAICnc06o=&F+7Pdl zHGclxK~~RkmWIlj2!Tj67x0q&N_%tM9*4&9#-m`Al{O`In{6vo{*Gs_KIXSu4W0T6$){3H7(uGp^zLP z$gtvRn+Et2egpmxsDoSzud)(CE z`W!|_2gm>pMOU|tsIi;3HHXn<-AC{xY;RhPTcZy>;P6oBt`5mBX-kL$PvPLewMyoD zOaRIUx7hSaI40r~SNb$m+9C1;Au9+v-fr{MAL7>F8xM~AMrW`Yr!5_9zSpD0S%}5O zr<8`L#Q?ZMLkE}{=XAOX!SdRvI7Xho5T8rwwj5!Re~#>D0TLz*(C__$P&Dw8OL*s^ zzwcsN(nD0%zQ=ITLc{ZDQzSP=K_wLMr-6cuOr3ws>w|35N_Xi^Bms~hx(3ssX)_XK zxsLBlZc{bMONpM>bA5G19dN~V-2=49Nwi1Ncr-u;K#P&Utd{s`zj{SUz)nu;K4|kB znsjGky*pc40H6?f4`>ZM2W{1>_P44~yhYLKkvNIt>Qb!HUigGYm5bYR@E?AErVHhV zzmtsnTZ`HWr|k5@nd26x5gxa5|RL7j$6~J#7{^I zjUA#Fq_uz6wrwH)4m5wpO>4p*wK3NmV}IqeT~DE(VXG15j4Z(VWHog{2aYU>msbJ38fb!%RfSH=hppw%1CYn35@Hk9_Tzpe)o~=kud3uouKk3;GeJzG%=c%82oiK4cmPb zS$d~Pe$zvZDc0xw1NIC)=uR91E(xqo3)B-<3v;P< z!6VFK^Razy@6Fi8(L3TUKsU2~LKNlm|7Gxg6O0Uf(IJu7_)@$K5`jn$jSw z5#m{G7I#<}SWvc> z0LuEP!r>z8PcL-p(=k4?u|o-7+SlU$Peg)=#q(PbqbSIY@sLYB)w6wk!|QZy8cN)xIFyk%UHew%ATp}9? zX#Dd!=XQf^)ndzx^i)#({R8j0&ZLbSVaDzZm>-Z;wcV7JQBPyn%3hMnNyx7q*cB_C zI3{y{u~1#=d?3eKptfh&GcU+wi+*whF8vV^fw>{Yy;|ugDAT^T55G0!NSpaRUf0R^ z28P*qHSOr8=i~H2-K5Fs z^UHZDU-}*5k{i}l&231vbnvBz`!7CKV*eFFd3Tjv(Q%cV<;-fNsp8Yg&F@{(GvRo0ljufl$fMgWBsUEt`{;1QKASe+gxqK{#)&$SddTNcoi17#p& zT`W=}3qNqazObq(VTk=U{y+1c0dvPFWH8!spyjkg_7`TbQI_JZJuq@L=)D(>1xjZs!EP zM(hCK)S)hcduIyf;(Bah6wQ5%kNO#MWkK8er7m(b!F!ig2p#dHfYL>_F+(e(7N(b( zXrDI!fTc=SMUr$g0R_daK8gV?&f?(!>qQ%o3N5q2c0sAZ*I`iK9LR~qcROlDcIyZT zd-PsXq_MWhILeXTp1xJtS}m*_h)iEfIW^&ca$Tj?LP|_|>^^+x=tUB6ICNFx1drx( zY>x_w&l9k?)O1v#T*USY?)jD<%k1a&AImP_qEx*Op2BWkP@-!ZV(_MKJ~*0v%hw2T z?%ktWJhmrweW3v~MUsjKg74#tj9U~cqIi@m;wj3 zaYT$|GBqRds_^@Lu#w!uky~&%kM4ffpyf16OR{EYa$Q-CZ$^w9>NQbXSCqnEWB&>~ zY1F_M80^sKo^LX922o(W%m~kTo_cxs4&8;8Bn*k{g4((FY!C@0e=PNNC(%Yuv^|@K`;V1;CGM%V`CIx}{@{b#8ZQP&)Q@b{}OnV`nI>na;eh-G3KZuCNeb^Jm)j z%am7J_JV*219L|d?X=hm?_^eDJtVY~xKf`s!wAgZ@?&oF%Y|c% zYO&TesfBy(ZR?Jj?N5gSd_|nga8Di4L7z6*>d8c1=VUWW*B|H5FaQSH)L%z#eEr$; zj7A_NeHN^uQ&~B%aRV&~NeRD5_aNC}7btC2!mHNii4^Xyln%SO-YN#v=GJ^9&XNH(HJyw_@InF2){J6>nY@1?0Ln-m081HvWOzXrUY`k2l%`4z6e32~JGhnItXv23UlfT#!G zlv|+W&}xxtlr4$|DvGugAqufIf+8tTI`kq;P_Ea{pdJ>$S@m>4`1L+{+v0N^HgJ-- z1k^=*<>ExwI#!=WAcg`E1l}JI$fq6rlmklRHzdb#Ny6}rVu;FrUEHlW9H0C%(ivxf zXcQ+(eWRZx(NiRdvhlsVtqd&woOTN?M@9kd1ZAeU`{q12ms%b4Vf1@|5-gLqa+;+V zRNn6deK=PSTx+cQchfs3UOnS*-gX!A8;Jf=hH=u{PcW-mQ$*BGboXM@?D<1<(Tkw@ z*=mX*n<7_z@V<1b(4jqrCpBay?6bB^5RSpGOG?IuB_DI@F`)Hqzd^(OCf60MU5 z{Kk`OF#^Tp(m^K1e{I=8fr06)PXVt8x|ib9@Auq}KP|ZsOVMtBbW2z{cw^saXM@E! z(&X8ykPZ-;8!Qp>zsg!HQ$l($bh_0E_IuVxT&bHfh9Ut#&mavp=W`xI-f}m}nN|i+ zStVzJXC)6kE&`@Y1t`=OcKi<6yZF52vNFp%p2_B{fY`EFCL~- z7TDz{2Lc%um*9(MUmu6`ABWFP-$l~V2(JpYf-?cGlT_1pYWXO`&J%0y5o)*vd{Of8 z-fnn$p@f{&&GH4Ms^@T%6Ra=#ad*YQTY-pbOJ(y4^k99hS-ip5VA^6|bph3uKD|`w z@hEbZgUoknWr|`|(k%!XAAxlUDWoznte%gl1p z7v8>`2I|^x$mM>|{^xSqZZbvJNecI9$2}rPGod|n=GpBTB(-kvt zFo|cPK>i1I)|^+rrgI6r$2B0Sx}DCeB5J`pm8R=N1UuSrA#A!>go56e&a;CNAvVhl zM0xh+tZcv$8@Z>bxlm~8%v-XI21Q?Wa0kx4_a`;n&TH_LX0D}7F4w{$7Xhrg+DA+5 zj8Ht<_NqOOcfi&u#^U$@G+HxPi=-w~-!dq5Pi8^#IzIgJ3-TAbk}_G3jDjeG%`vFs zfsQH2mIsi$Ud`eBpz{ZaaKIOR(Qy2R{kv^~(kB#6Rc_x)SCa+i{A$nZMj@ynP)MwX z``*$-DyL9x7x7{tJS_k8D;=MW8>oJTE6Be?P)}fcG|5-O93IoRl0$9HV~)o3x;4QHRjn#=qM{c_L6iR%e;6L{Lspt&xb zu*YGR4*QP%qK*_pTOLf4syr-d^(Z_GL$4TH?Dbx!J)ie+PgEv5Y4s}vX@BaHsMA7IPb1FulVs~7+pc%Kx8C*}1 zdu4x8Dr^<2qfHayx5$G+mr$;GgDTY0wC^Qh(vf9kB7G9;eNevM>VuM*m%pat?o&e2 z?!+bUNU}yy;V9Dj)8OdnH{eRrN{9K6`;vb=$?yDbWYV^MYbQL7E-{D3cAC+4AmXzi zVa5F^spFkAX!SHGfzVR(dELyKI@=2a8 z(#_aeQcMq${Gctkj7j_70kGiT=?`Qq38Mwx>`#zF$}*jJl*Jyq%>Te)Ub+I8z@L-C zDz{dil|`$)o{P}44rXWrApI_B$ORxGMICu{PP3-F)xB-3b)OrV>se!y2l@VwR!h@0 zde-xVZO&%-PXLGCt z&4d@>qYn03jb_V^{i8NLXD5Coyu7GiGgi!3BhFPl^O$BSvx2RwGm#VbJzH{X$Ik_m zOZYf*(T1E{Nxw;hjbH6`QNs$uI8mb)Mc<&k1%lojr+IqbUd#J$sz z(v9Xz3ICU}PAK1Xi27Y#NVnhx442Cy@T4m=7F@-q^8?n@lxa3qi66l$OoN%TTH>!L znooW0E;JBnEkK?RU8IZ=i)*7EGon3Yc<_+0@lMK>yaWIV)C3b~r5#aYu-=&R&+fe1 zRF4jaPHb%=ueVGy%@wb`pG)Kwk24 z5np|OfCK|=PepRj1~I7}Qy0}CZP`M1z$T4G2Up{*nyRv&CPA8JKp+gqf+gY|fvO+q%-2i^M#evbO1naydA4 z1t@+L^w-d_Jq?luLKl2K3-kCDPM*`n14bGHpxb-t;~6#Id?2QJR5>PRaSC+f7S=Tw z)Ag0seJB@I!Rkx)j1Ck5AiJ>~4?(KY zsMUTf-Zqi)BJG77lL}ut0PzpfvGA+X=?7G($5km*jwey)#4YHPBgTJgk+v1(!M_$A z;g9NP@W02XFGxxsV9izAhEI15@T=}=DTp*=wWgMcR1pD(&JB(PaWU0R?+F{fx>Rqs zy2W98Z~2GMDzkckQcsh{4!AP$WPm5nwm3E8;|n|@A@_(ojQ7=A6k2C${hMFBO?C{H zvnrjKY*i2B$~wyL+TsH#CaK@mYX71iDBu4tHMqp|GqOdcZe#ZrkNF3bL^B}TMwy|R z*3l+@b7{Ax&wV0nEhJ`;&Z+msx0Po9l`Zs-s>5;*FKO~)U6bJ#F3QdRw>;5NZ9LHj z{KH2trB;$2$M&pLp0_u;uoG{a(V4sqfi_;dK4X5TuNiQZ%|ZUvhhy z-)TEL!KI2ou=qnQHZCwI1G@ zAc^b`xBES^A`hd_fo;n6=jV>Qs)p_5EUi!4r^h-eO-p9t(r$>iS?OL&PYEo>It9`b_1U9()$Ms#MsP7QF@Jo z*xiIC=})2LhF$!|y20Zktv%s>n0j$@(=PU_rc`c&LBHbliKy8l&p(yiP^v?&3A3aC zi*&vIZ5aByYS7Tq5Y?<0_^Z!?lI-909K&TVXOq*J7rILOQBP^K?Zs%LcAx7UTcM+< z^CM6~)pL^+RMPSwl$2~AM|5J9Z!aftL;6MJx-WftnQE?$jq|U&(+bDIOYUMEY>>Cm zytObblguULB`vmnG&$olSp6D$cMK`BEzKN-?4D`!PoBA$jOA83p=3su9pM?45FfHy z*#Mn90{#rA^J;fPpB6;^G6uU}Z^nKA`Kc+cPNo(`B#eZAl$vbpfwk(tFmXV#c!8$4 zQy%n=`@sGjFxdfEng7E4ud+u-pyo%_TQFL6a4k}AA7b&c#SUFyl}#5c8p5*p<(h?D z&#*w{%rWK~mgQZHR#{tqM)Y!pL*I&Fj~Nq+ z_~2a1^B*!jf@eKRDelPuV;}Fmg&CV@l1mVAlVUR{A_5BI?;|+G6bbZ$x+}b^hK+XO z$06+W`%It{c}u))4;gz(5Ix)~bG`M7F4jifbCT;8tN}8aaRIBynx;%VIDk5 zQcJ9d?Ax7@5ATqpn)Y3ehF;! z0?j8!jW)SIr{{W~zLOr&MUSogzN~5;5Ta}2FZT_b$mVMOSehtp;^rbRz>#cXz z7{se^oM5?y-T(Ukt03>y`tjW0qdmCu=K&8P6(&B^YQgDE_6acU;+`r$1uwh$#N|b{ ztXyGn=w+ydbXWow?qycMxUC+EWQuwL{bk&zfQ(fy_HQ8G?JauJKS#zvg4mB$9B=me zB)`@XVy4`xK`thgUM{f?h# z)ZO&SqW)QSjHt<^hg7q^wacO7K9luI*CMj=nh_O^p-|}n4g7)5u-9dCrL);v%fpDx z2-;`{B;`7O(K^2=9eeUS27c)fa*-jWR=eW3-xS+rtQS1?O9jfp+Ty!YVbrVo7@;h6 zvd?43rNxH~Efcc-E!|iVt1|Snr-ikR6Q~o0IB(=K$AX7vNHa6HI|!c z5Lx>ZCOPekc5G>y3lj47A|4%VTuPzYahU}xa`6lQ?ZFfuMX@&POT2Hm4K;Y^WJJuR_~kVvibHO)tRCL=DpYcoE@8Aj z#R>XoZ^-H}s$SCtd4Fd^NBk0qWjXVW@Ob7in>j0oa+W@yB~d=i@>bhptRaHR_Oryf z3IbW5XLBtNHTazGvxnl`YrV-m#Xbq-Z1`${{7WW|@H-h2K?4;5?bK1zl6jd-bJdVB zP_kG(KS(oF2|ZmOrVGHwvkx2_PXzkoXB0Bom^vKyUjAFkPjA+IaTf6AfHo|J`(;}- zz;`Yw%iRRm#wL+3;$`aMV?E*mj>GXr2O@a^A$CdnhbbeGbEA;=J^U#y48-J3Q>exC z_OD;+U+U!{KKvL`a241Vv@$?@cjbO(XObpp^I~n`;cQY+NYv&`ra8vAcgS8B>&p_X z3I-wWGTayh`<|0Hz_(%!-Q{^8YB2w#sPQCySIyp7fi1{!eHl54Z5pDK(~MEn3b^ij zw&t&l6reCQsxh^`XN}ikJm$(3URV4HV#{Z;kJIXg>Mv3OW~T&rg7T5#gDMh=W^%$N zwS?b`yXzokTD>pK&Z`zmHOAZo!e zpN6%+3~B!q`~#Bf4u_0xu{+>^gR|J)l~f{T0dr>8TW$Ig>8p-xUetvVrk~mQ=ms$E zkvwH4f;Tj8D}1CQ`?gPJb8d)Q-jrOjj>@M=C=o0r0rq$;!y04=>($5Yb7C6j!&r>E zJ=kb$&8SF6guw2%PY9Mhs!I9ZPu{uk?<5gJdo4hf2`B~*NU+xHxcDj(w%kvl@@0Lo9G#8A8_AUC_J8jd7J%S$31WpI@aA5TtiMDBZ zLbm98YVlDCN(%Dx!8)<=7#|Vvxzrf20p_ao)2nt(JOR-By$t_ff{uPbrv{__Xs*h^ zT60E1WcFAs@(P>m1greY{=$$r)(^U5k4p<+`^v6^3GuxUT5i|NXDSx~G(IA%%!=I6 z{WHor&!XyKIxxtDm44bQ8kHIdAMlx4BScpd&|6Q-aF%VYcXii2OoB%ka+p-Q$4)@= z84+;;JFFNf$B7d5VL^tQv5{3uN~(c5HIa_x-`zy6SOYd~KMFfb8^Y#CMKkEnk1FjF z1j`ijUwl!e9@Iz^AUF?T0VkTI6ikNv1^T1JcPizopJ)7=TGgr%fck=Q$Bw`0Wkh>W zAOF+kY8&v7Fe0g5T4l453CQVu{(n%iWlFa_Tll<3+WU?ge3pZ~rS1^d{>NFD9znmR zJ2K@@BE(tWU}<*r023nNL!pt{o>IryXEjCak(=(JAd3RMz$ry~hX7U}lqSysfC@%9 zfsJ|7SUM!oUaDppE2}BbT}5OSiJD{?XsEEyJ`RzE{>Ug&p=zw9kDa_>y`}r3@aiAS zE>cJM*$g5SoLR2x(;e3X%$Wv!>un&hLJ zlhBj7{Mx!*W=^4}N3#IaF+ZJigmJXK0Pd63C?kj<`6A5dtRpR!X^+_VL~f2)zK}hX z?0_RByEB)(%j{xP*+U5`ZFJ2!c-fDMS1GWKc2*n2|JD>lg)~9H;R$!D-j%(S#%gK1 zGS3bqSj%BVO4QizC#!6`a7g!mXD{zVEX5%Az9K1_HRo zhCf0Dq2?mslkfeyIl%fu*NCbn#6Lx89#K^msJXn^)k3<|`@Ov7^|tkW4=)R z>zWyA_4jjfCF7n}Ke$e7iBxduzX;ODx1>|o8Nsk#L<*L6(x;8PQ)uMg71Mzi!Jgp( zzUom})vE~uV0O?v^!nIh;Dit!-OrLJ?<*D@@RScmJJ#$#WsK3tv|T`3eS_*s>_ng& z;OA&pd$Ke6{SCrbR~SFb4DAy>sR7k?nDSZNHkYl)!0yYf0Z~hm-34?bw;*m2$+rCc zX(HwmsE)IvcJ&(s+1+VMmN z`3W|P^>N`E@61Vf+meW!GY?RT-TOrUbUG9Y-HbtFS}G6I78JVjv8sW1F~A4A_cO5F zjJ$G2@lNw;t&kvPmIB(JBT99vZRox(MsE3Ghnw#EmH_&9i_=gkP>vw;p#@f!TuDL? zpMjdhVhti_=`m{=ngvmpAb0;$fHCo*gAcW`*F67bruiKERoyEoaoc`|vV;}$z(!aN zC$b$BxgfZ$IKewPR+HVU?Ek$GEEJ;lR(ASws@1-`-OcLwY956pYd~a zI?}QtiA=8QwG*kaQd{6*-L(0+HMu4`*)9wI#fh)+jGU~tbd<*`V>?}IIa%8Tt|#?Y zAittUiREkd8kqM1v&Ev+C9#aa9J(NI9zMRD0mpATbSpn1JfYy6y|H#K7<1r|f^1Ix zg=_p(?5ChJP@rd_=Zjhq^0*K!7(GoibdwGPHm>2INBrjUuO-enu2@o(H~7^wUsE9= z$#T=XDL9L`Y7UC)e|V4-BN;8BI}{p$ZLLlMklKJ+A!3wWLY4b)JQQ!L4}v`sRDs3i))RC&8N9dKGsiA+ad8Ro;hFY(EbZ zNyxsw@fl}Xc|zF2X|b610PPS@MEn%zKQ!=0wgNj9YaeiuGhIxbF$0sgbCo%JN=`Bkc=Di=+_|PeJwIf~}CzR?*tm_Qp<- zLdO|cosdJ6D+38z`0uOB?sc5NZ!q@H3f>qPh8>x74*9`XfL~?74A(!ds)3M;Gw=ja z)nR61QUgbC10an$8ax9r+B&|>OZpA=kgvXKo6FOy4`~;1E3Iy9!RswwJP3}rjxs3p zBkzNA`J$243^vmmvLV88*EsX|+^|-8YqTV2NNP@b{zuU%RmKeloD=8F^x$SENC|!S zerm6iM2du9&$b!cg1gVoLajW=Ul)hLT$jcddk;+wRQ&&CT2UmE>IjDZ;V$Ps3p%t% z#&%x^j=`Tr@A~i1n_%eV>M?%W3F+EVwgvpxz;p>h8FGaHB5e%)aC0oC;Eg0~VQU7U z0B-H!7Y)>MY11%)InnXW^r1t4j&g$VqVs0(PUKIJp*#r*A zsW%1m->xgb}V{gOB)AF66M~gD8eQhQ$76X+5-u;B<$jf9^Q5P@- zD?%eC++0wj+9PbOL`6Ji>w;3FZOLDrAuwoVf=EHCIikh)o5P=-=1&)!HXn#I3TtIi z`y&t?L}6DkMT5#DW9HgbL9DH(VO|#7i0|%AV^rtH^6b?i0OdCjrK8qy*_Q4Z)vJzJ zn9HT;=)DVRd0l)}bN?Pj(?21u(B`}@GLjuWpdgVSo|vX?BNFCQz?8=$iNy5Wh1V|i zxY+Ql`3Ic|G+B%q%HqrL5Qkc~H_X0*Oli_}_@YGO+O6x{^H>?Vtal+Ed=tm-zN=eP zZIlqSsp}+PxPq{*^Fi?w);d$~i=Y+zNd0+qXZ=93{4y6A_JNTrwrtwk2|tJYgGHML zc!JLRq#Pn3*@`RYQ`yk@WzSb$L;ba9ef_Uds4`gn2%c|oMH1JK{&dMDYn~~qKHbTj z*s`k2O`)RGEdGgrI;Yzc*$@*1v*jpz3p`mhQyD}|64jUTJab*i(drokH>MhYzO!9H3-Yjne3?q+MyUrPGDnp5f z>1zg>h<9kNTimDbApxhRoQDu{{8|P#STn*re+I>v(GbkXhNABMMcKFG1WoY3$yh!= zK`K)=-EdOe8vfLfQy?*=c5^72^AIlQ_K5e=>R z2kZF0VjJ$FUzB7_W9S`JIH*-v9c5LNx+>pY6s3F z!$Rw-Kj^+CHB?3A3tx4E`U<_KQw-A1bC2?YWSyr!lZPoyyptQ#o#5Xnd3( zt}q4Uw7|5W6MmX86PpXiv+(an!}~MB-=qh#oi(o$>-Zae-A)~gN4yJG`veK}iW zZmWyH#ACnr3tYs$uSUViiSw4cZ#X!2IQ_$EsjnLP#Lf?Th8u(M1DESKUOIZR%OyBiB9@di= z`U~W_9idX~Zx+ydHNQ{(?Ek&MOuE&NZ<{`34TI*`&Fr2>w39gxZreKabmhFe0@1-_q{xP z+=EvqBY&+c=r&8~Zo_cZ2%+`ozY-z`A}u6yyxB$4b1sGADkA5w=GB-Y{SOCZW`a*p zJ6*-~3OkSA_ov2gk&WVzseKS-*D;xdlsxiKsPmDyvHn!{RelKC&X5n$sHIex8}>6Q z$v7R@f*#z0LDgezlw_hH@$bG~hc}|X2Ob>$7ne-{FJ89kJxS>Rb8rYazXBXfm)_|+ z%>N0WC-TOe@uIHzZaE^Gwg|%hH@RLuB53Y|t93sL1`n)G%;AU`FP=#I7%knD)sTO6 zGYiiyYFQ9IH!QO$5lCPhonU(uMv$YkWM#Kh_S&l zbmAX(zT@ZY2bBqv50tDTMfl7P!Vi)IA6hjBoU_+(=cT8YXG>+SWo@VFZ8o8**|fb+ zX8$~WJsX2%7e&7(;*N?aPuK+730#4dndJ#%_jZhU6o$Ah%-H_;*?~lW;nU9t+id=T z;~Poj02Ah)DzdO_muU?#BvkQt7at61Zi2>|p}f@7F0?!1sJzHFMu~B4!Xqj5NfdQYEnM?Cq!75+uS8JOMgr7Mc!o90H0XlAe(K ziyMpMP+_7f=1WP@hxq4dD(Cpa%?#$}IOoU(o+(Wk0I-|6*E_}U;xB5?7!%wA`Vj#5Qi9YJIHQxlF2?^F)PanrxaxPDThW< z|1bffP^tR!M0Gx>gfq%qFh+@9HWEMim{M4N4H1`Dovwup^nUW78X%kb&xBw(!Zn9i zyCFAOY^q#rrkAo>z+B3=&llP1sg)@!&-qZ6z%eqMkzMm25W1_6oviRtEy)8)31iU^ zK&{w%#5}j8FtDrVqDStp(%H}6+MzWWnpfq!x&$lREZ}3Z|D?EN%`DBA&k2MUeffDo z?7}Dv5qDf~&RIuO!mzyzHBTZrMIrWX#jZ)bE!S!7(}?3L{Go|kJr@i}YGwEk;lkI? zKse8XEv(SBYfy3dU784Bon~1(AKD=CZZDsCg*{@^|y@^>$GS7 z?O_h69cAP2(KQB*pUW;uGC~>7jw|=gzkQH`SQm z-t9`8yKMr=UH`(a)|$8Z_&dw8o>&n(#sNlhYM=Hc003}c9flGA%5qnC1WMtFaF(@6 z{Jg9(nvk|+kz8BFZt#p(3NX4n={{{C(X!1-a_JE ztwOfc`EcIZ@%0x&3j#3zvc6wG?hfcFHpMu3rvK$UduyU5=jP`j4d=4xGc3UEDx8ma zL6$J!wfZ2GtclB9!>4GTGq>(Y)A3^o&y!7fGEO5$Da3P?52-dG9AU4xP?-tn?46f@ z{F@khV6&yywQ||IQ=mOpi2|i)jVfZ&VFiEtkSdnn86od6#(UX^B#OtZpIlKySX_&s zy=025+tG1&%dxV_5gR_tM+Wg>zaK68<9KgB0-&SnK#eO9m8+|B4UxMUNsxnwFZ96H zRPLy@ak?wY7iGqMoA0cGQKroY>@C*`eu)GDx+a*fUVK_y&G5!XS!F>l(V856{14*G zbThOv-=GV|Q%|+$yc&C~1gNCdyi-ot4t%wH-tP-fzp80}5{(;isW!mf(^T8AjRt^N zlO8(mG^8CNAqt9TqkRWxx6UXiTqtq=W3R81Lwr6@kWG_rG1J;xtMCzbmD|Cj?^=5& z$HZx|J>vG&?Arp?x$xM)V+Wyd$?<%Tb|*WtoZ{)TO}0Pdc~$3#6$e? zr}Y0RgXIYD^}PMnoX$~tB=Y2!l7f(i%zwnKp?83pFgtCYwh;*7qMT#tK{n}48K(!)a#~TX z8A5}a&B&AlihSfj2s^=97&R)Z8#^dM> zNbkkrVg~Nw2XGKnQJRQw38{x($R6MBEa`E*MbsAhu4JT;W?l|hu`WnZqzKslE}(9^ z6%z^XFN*aFZrE*5oo(PrU@cYj-nG+S!;N`ex0mU+%mT5Dr5q<5m;R;zxLVp>K!coi zn?grx8>44%UQB zKY$@q(}9RldQ)CFTTJYQ3lVBWBHLzPvEksIPx3PdE!k5ypUZ1zyPi&X%RVERVuVEN zLgRo)X6CYddA(YcF%ye^$XMU$XniUh4A$%;_eTf8)_UmPABC$Xsc@YHRp?zFFPI`mw|R zgss)#v+8}TKcE?u&sQ!#d=qY8T8hE zOEsrx97dT~p&;I*g$wVP1*nwqTl|3V4(a4JwtTm!Bs5h`9&r~=-gIidgq||sI$Owk zCq~j+;dZ zv;GjJSB1RTJA&;uhD8bF*a3(Sy*+p_kHJ4UT8 zJ+z5FIW1A1tnp@6A{O6e4neI@42?=Qj-;YhQw=#w`EL2kTqN;v;}U8hdEfihFb74h zxlPJF-DW%$^blRETQ0d~g6qocrKfyplTD(SKe4lw!5i&p0ihg10ik;QamOl1P`$qYkjSsf3XU96h|Iml-bE$@~< z%??#D$Os&R_`0A>kS3Pv; z=g=JTNw~;{+;3+ z5kq9hu&=DX5pdvcj#RqoS`d@Az1MnG1)>uGzQDyLWyj0@k;#3jHe7jPli8jLAVC5m z>#H)!YMggp7!bC$o{9t>SGw%cL<@Z!TvVD#{+5eSJT6SdW@CqM5Oy2noG5FZ4q{W1 zo=I>QPth02l+-+5fq*$r>{ZhfEDN{_hFCuF-v7ewHeK$fi`LwSctxA{zs>f< z*59ipd*|4;%W@x1ddR@@*B{iGq*xa_JTULS$+9U_35C%!-mHP5q2l4~@|&Be)rrHSaD?r*D(D_G&bJp>@X+E1GK z(9=8@ffd+Jp^v*RjsY&atq4v?5sons$Ma&eFJIkPU;(em{&IDrUp`7Se(56_L(x1t zK$RGbx4@TKSqQPuh-}knK72d(RyF6k^(LIe=b3=1i!)>@C-ApG_Iskua^H z98`;U&CPU_u$D7R2SAvf1b4$I#OypUp1*Hyt7{CL5s+J=OXPv;Q{ZwgRxaynfVF`B zAGJy-5Pp;rS`z$#t4)~u3;ARopg)I~L~8*Dwp`bnBuyab-@`$Cd$^)}i9A@+b?$+n z6oLd%Eid|7V`E#i6i4Jv~hYbPm3|~rbm4-6MC}jz|(MvDCs=q zFw{}h45;lAwhfa>Q1xQ@Y!SJdE6+Pjk2GY`8@3CGrh-I~%ARB_%T&e)ZbRs7Iw!IM zl={smrAKBLMbA`~B1APSplRmvRCy^BuiM2FstgEVDfpkF;{U(p9G5LIg(xT9mzBo) z{hTM%0=32pE5}-aB z)4xC0y+_o7zu%CjIhw!NqU?R3q9{#_S12STO2YPY*t`+rIb?j6C`vS|!SiICl%y_s z@Gl^8H^J$f-qfU!;Cp#0T^Tz7&Qida#u|=zFKh!RVzOPsT%DYdcE&xHz7j3o#C6%( z^IyKRU0`XwXZqb*9a@~l9fh7};qI3%uV4YZGuHn5;!D~rHHcYtxW={v^oB0_l-qG1 z2BKVijc(?#_UF;$qXT)(3YY)4zagq)U+o*V+Xf#nAfV1NZ)3H!_hCo8+twXE=4wxJ8xeKNq1z&Ka>#YxFx$hy_G25P;D#Xo;X#Q%5j|h6<4er?`AlS-AP^ z^$5%@?bV?sG-fGwpRX0p=*J%3zQSuP3_STz!Du$vXY?jKc4Ml?Y0=hRY@4!qFa;h& zxLN!7LN;gur9Z!Enw*NX*R#Q`sui_5QI8AZ*DHeZ-zIV-HglP>d$j*#{uo??FGdsh zm7y5P7AVn2t%Y~8>vw~amkFQbL95a@}GUUF*Xtv>~+%b;(Hj!M@da*Cbg&D*bF5(fAxP7J>-X@ehI zb0bK1Z_?Qpd{ps#>tyt3*=h&V9$9>y^v_;UN|k`itj|p=Ns)owg&39(9(?_=MZuL+ z%87`ooXlPUu&}xb)Q5I)NCe4kigB#t$8~B=k9w6t)eKJ)FsZ+%+KO()9 zdD`21A8^Wd$@kM~0e}q=&WR#*`HPp`hbrcs>Vd*~_)5ZRsv{qPom&}4LafmW2kPdu zw^H`pLj`WbA)C1Zy#*wbMeu^VIbs#p{tT4rGkBXAQsjZN*HFZLjaB3g?Rwn{fO$MM zvm4`sbf{h7Y+|m(rW)%pCL+%zje5!w#ki`NLkmCLsY84Oar!q22Q%WP_WtEtQRLza zU0iOoT4#@!Z@mLzfY&C{3h?B2#)!r-mvwOSImj%i$O5giimwnwcsTh+u=3OTF!LW6 zH97gR<9#g%Dfmq9LU#>kpq4(1*K6Nhv9Wc%?z7EM%s2o)B@2teB(@qap_~1A@S>Sm z-|z%H&zp4P!rkYSbS5prV0HZ7fDiDM_(}Z0R@dsX9>0nw#z6Ghn8m)8SjtbF0pmf& zd5)84)@}{~@|nz8&Rek#w0Zc}$B@j*m1W=`bNFPGgY&^a$765l%16|i6flFw6)5z? zj9HQk^90h)DTLKOwhXfJ1#3fQ!yOg@@c9BTTTq8gzLXBJ62MbN@G@Xn>LcJ^GTr`I zZ*4!a62I7Ml^7ja?YTD|CgARgsp2X2UG$o0rNAXShcGOdqt;9Vpo|SJl6us>4K$?K zvzrmQRoNTPsIc_fTB$~8m>&*J)c8daIInRh;A}vDQHpk%^RyDPRKw7B)~TFKicP&n zFe`0PU)ohPGW3@+!-f9-<7&2|a`)d%naL1`Q;K|%s6UH-S&1Sv&E-ZgqjaGhP5jUc zWPWG@j`!Ll!T-_=M(h_gQtk5nn<=h+`|D*M#@2xm=n z)t)+N#z@6@=fTfap{oY9>QOM_DiCRfT+^^Bt$;z%AW&Jny7`43BJw9blH}1MAqIOz z?k69v^#>}fe2iQbeWQ<&ZU?*Ez{!0I$Vmoewk!y&-Q=2CjD6QwK>|xO_+M1QYfbM6`keN(r^nOn(~y@X77Xh@CL!E#Low0&15IphUx7opjO({-x3DML+%-~* zlD3EuPrH=D4I+brmAi|z2)y2pGwG)FR(D*Se2o)fyzqW|T3Sn02)KA{>UhX9IetN; zCsO|XeuYSv5}=t>%@afH8FZBGRB`QC$N`L3QMlJ%KNwb08#sBhs9xmw%6H!B%LwIncT{GO0#durj> zq(;ZzK&f{od}AtJY!?ye;{TabodxPhzw@mAwjhX~ zdF>oStO+8aJ>wg~anI7gUV;IL=`S29f6MU{K$*=(LS_AB^K^Gf3Is8cUqPi(xo zx>k(v+7Mv%I{T1kM1}k_6GU9h5U?r&Kv@pOzvqjZY2fck{)m09;zPf^X-)ZCg52k-{W?& zP9t=v2lx^z+an~8zr*f3CR=wR170a+y-x{DLQ?+v)>LkxXi{HwfCF=XfBUFI#^Ht5 zvtZRm;i8mvq{ZVBJk6Vi$L;_)SCK^%baEHVPXiNfm0P$lJN~`>1T6(FxXfhWHyzFM z&SoF&OonfBHof`oIutSKh$ALSDrQPwgfmhFxL@;c#B4XwyGNxVIKXbzisc6a?TUN1g@5zh>7r9 zYzF1(%_^7&_-}`ZH~;w)C>-hKdGouRMtD)~>#*V(SO$2_rRR7-{i80JnoBeN!u$Q| z4zJ;ed2y7rHY`i4hIYVaQrQR9_nv5UlIR;Bkn-~shVWhQ?%Dc(77PwqxpA!CzBj6$ zaDwt^f)O2`q-;M)Uzu2fg9Ls`*m}*kJCuysz_s>GLzT`J4Mv9(Q&bmw+|+GhXnJn# zzk?X)Od0bM=*oK}+2~Kt#r=jm@-WQl_vT_~ksBc&x|k8F21l z*d-0?$+FS+X8r#Y!3Y&6}B-_)^YKYC0o1s zS;RB{KYn|SediGR4p~In`S(o6nUY~U$r~$jX1s(XxH}h8_~v7s(g!UPKWRx@3x zv=8Ysv|-DfhO{D9zYPF|jCsAo-h)195|kOVhR_r=+^y@XI%i*&^~043Y}9~bHtuQ% zYIW@Z6@ElbIpcK z{ZE)hmzMW@a-I6gli>C6;|9Oa3G|l7S*mp*E1BTCdw%0jiJ=Sg6}s=C0suet?B}W} z5N?9Ggs)Sog9qHIqM;@_skutj2C0}$EDc8JKOs&J^{8VDCZ2=ZNcp-UmLy1|@z|7m-FrxB>%fX46Nu)m+#-5ISfn?+% zd&mjPEnCyn_d#fEez_Eax>@@pa&ALIyu{1#NW?%ekgkV;83liWaBEoKh9cE++t~oiVy*pwU>16g;Nk+Z z9_i1)MBvt~A)L=3_NmM*SHg<;4-j3FBR1qg<*07pX8$(P+pK~_cV&0^H@4nf{$DB4 z^cRDMI<$d!Gxkj{#TOzT<)U+MgTV%od6&z3S8~F$dm1Q%kss^l(#oj1P1IWJw^Wq6 zTrEd8Zh4?r86;xkRLhrTc*-KYkI_$9nKLTQE5iSzcu?QA;2IJBj={|^NZ@{ZGw%OW zgjIp6TYSrZf0+~6X&kQMdI?e9f7wX=rTb43%#|c|xkp?|0euCaI!AqQoXy+?ix87j zE^_+O1-I7jyD5KUorL9gkv6@F@3+pIFWp{$@N4UoC z!5$hq{>FdQ4uvq<8nmn0$lUd!)zLQW2NH5!3h%<>Sq6LxbLZo4>m&g8j-{0-WRl5F z8E7WLCoo!f8Qr6zV;ruK=$kD0P|5Rc$$ZRfqw&w>vNbq0s#EGA!XGhvIQCKfJp#VBW%`G zGzO{xhew}`Koy3{tGSQ$di1RlSN8+&@JTxiG42gh>T>7<|COKHkGG|i(ubcjeaHOP z#=r!Gn*@q5UGS}_`A6#k2=kN4RRbpdsuc2rapAq0TQ6w<7$CMyz=q#xNz(fW+5_ak zYd#ac?9}%VQ=iIyjuM2!wrLcZQcCgnD0I(0E9nL7R-N%EVDl4lnepX%pr;^H!m5~L zPsFwf*0BgipCX8ejB>}`oo5;g4$+@t)z7Gmp6+U4HQ^kqgw^S zhch&*gKyC%zPMF!`h_=L4<$u;lp8R6B2*}P{e_ub>%DEi!1g*4X>gpt zoa3Z%Kz8CEVL?VV>$GVPA|j`i8|$8P6T@d0H@P)SiQsK0RRa!yFrDbYwaL1kmiixy)N$gtJICJOAuyy5l5TP(QRm!t&CpL7}K@f5n&$X!PfoT zp@v^EDnEm1q&UBDNYxTMCe-Ll9dNR zhzz<7shYM0{dI$OD;=6$uz@@Gd!5*bo=?0>5O^Q2BPLuS4bwFAM5`XlYX4eovrQB~ zQve%GyNh-eCd-f=(jPpBjKW^)*25X2gvd~JAxMtaS^i+qLnpX6eGr@&Tug?#b=4jy zKm2~K@f!-Qfx!K-slQ2rSq!6H*9LGEi-TdKh_9IAXK{gh0$Fm_olc%=9$*RGs>BO&~O%6aN~e zZKB2Gl?M!@n#1|GYPG5u5ee*{JZ_C>(Qjh^^mChfpwj7!Z?1$EiSqHM@%MOGxn4?qa~Xxw;l zw$k8glzf-lC2V8+CO2r?@9J8Db;>F;r~Fv6>CZCVH>W{vS<)tsB3A<5^loZT^cioE z;sVk!wstB=3LddHTIwjVPV_;P0fYbd%63pj(k zry(u+Tu(t~SO~p((JH5JiNX#1YeZQj)Pkx_8I#@VRyjzTQmd2;U58OyH3}V<5=jGs zV};yDcCxIKN%@eVOZV^$bzx#Tnh4q&%z&L=f<-^5UrPn@N)#E5z6Km_oNa*8?8MEX zUWWbZva~T?=sSLe{_mf}!@V?wb&4W#x!bv-wI!;ctSGk3d){O){V!EQ1YP&dO7S5F zyNb#^q_`B#3h%CZq-~-lOH)LK#6WGD_aMuZ>To!t z|HKJp3Z!&;!_6zUG`Y<`rJs)Ls(`!dV1kQ8?#-+P@cYuPAH7DUJ~`#nz=Tz&wfQoW zUfUd1!t{UxL02iO?9O>v0sE6LP38bPgDvGY^xWgh#wX|6R(_ImH%+g%bk;zW3jfAg ziIfNOALG08J1m%n880R3eE9Hp^DwI4CtvX^vMhgIE?eIcSze#ue*ZW!jiblSz;@-O zb5%+~Ae=KD7_CQPxX(@8TA+sEX6B9Wmhi>!b*1=j$nqlCXPX!Lq*sdHjuD8(a*TC7 z^u?@2%eIhfP_Np`!80)N0HJ#Nfexo76qe#a8wXrcNQu^hLb~)NNUL#$KooybX;luu zIEsd5m`_J>A1`$w7sB9z8zDTT0+IP-t$Hv??}ec!P*xaJ(Ra)qXdUZpMN`J z^AT-Q0Qgmf;%ftCm@jdO&x?3jgpIIsH%j~ z$K{jZ?n2)*2NkzWRqDB*F9fAhG6dokcBY?G- z;JlDMquoSx)BY|d?TmYl&F{vU465;5ExMeiJjwjS=2qc5TxB=8O^0yHXPk!~fpLdN zIRB&pOjuDe|3RBMok!eMYD+ODC{9P(B>ofpx*}#aR4I{Ww&0PszR(E0B8`e~kX``g z&Q>iF(sAZeO;$RXAI+HBX$L)C*-qiX>FKLEgj7!eaES(By+JUVFd6oN=UFxbK+ z4Irp#N}gdDReN3*faBLu&SuwR8Wr|BOeLB(HxCNu%088&T}YbV+_sI=d@F8%HSVjy zG$UM$CkhJyl$MeIMa=+W4gL5z(Zm~mAXrl4Rj(FJO`}RO`R@G*{)S~n?q7l^wpiha znmFaqo|1gjIPBNW!za4wh8{jlq8(=v zWAJv1+0E`$eeuId$M8qZdVmHqrihks_%7bCxGmm^c+;3dC8}#UDQih9ieu;H+Cx+T zk${|2tueGO$@f?r^D`Mnfba*OYfS*xqB`numqGb&8P?1bm9wPt4gQa0g!lXzx@`oO zfK7X+cY)z?+Dws)3J5~Vc$0&hPv1r)8d_>s&s|5!y;Ksx{rt zB8cXVO!B1;Pqwd^=VW~!4EB3Qdt#0IGyR%0c*{EwBSg3%sw`_oI;!;7kT)+-=e>pl zFwc&yGI!mp`z;xTbB!VG9`P)PcG~Gm&UK>ZzU71n;|@SCfl(TCIip*dvpWJ8e0ki~MGXz)eN4XLqEho)Wdml7 z0ep1Bwn4@mep-tB-WIWv!|$yo$od&?8kzW&1#?MTJE`;dBUV`p6f1~cQ<*(^b^WMaTx)G4Wm2^&DIHdUzB4{?irbvo{vK5Zk!rDU> z7yDodDNpU;mN0RF*LH)}aHk`vp{Wp`&k6D@Z(((?V@a*bTIb%4uZ$oio?(^e^GEkjpx6e!vtq9#{tt-Nx zb4kf+>Gxe9aH#H~`;?Mh3QS$059To5sXl3K`oLCVx>hFOd$yH2XCTNw9^|O7?_FOY zK}$;&$@~r3+6*BR^}2T#*+F-!ITIADNN1 z>u|Q1{d(LUu0 zxrq%3NDMJ|D8g!CrcJ|$tD8-I7DD9*Dq|4s+YG{gRez_qrpeEelxg1SLG%yAc=qd>eW)f6QLc)6O%Q8=8Gj_8jaRW-V`y>2u9X=w z(QzRJX*qbdeArdRj#ZimRZWtE(e@>|o}@dGD}nv*1r?Y}_%M<9sc$-cs&|Eho9)+2Fav-O|L&>v*by8;+_xgJS& zOUgwxV5NB;U^7e;x8mCv1z`F@qDrXm{7Ya|>VAY(5s@2IC4wQSNoBJA2o1IbKiv9R z$MJtdg)|M}kZ^hdMA$QL3y2Pg9Z8H`fi%IrW-R8)n-mKd>w*JLqRup^+aQrfXQKQ* z!GSb%jkWckBq|EMFQhWTu1vE4<)9(+ms>@IA61FjvQ&^BCz*o;`W`G%Vn%X$_8^Hb zi^;%2NsLyR2>lGc#njgF;Fl0THySDO+d2(T5UqR!x(gmiN;!SV-?~sPY%Lz@-iQ!0 zcyD6!NWSVhWsH=aaQuBg&djBX*;EC+r9_>5?+;=tTH)SrcT*Ahtrp4bul*qRlIzF` ziokaONVquGK|}p`DJ5{SrVU?lHst!<`ChO0zyUVXZOio|!I6-|r>3OxF@C-aoxh&( zt*82LJ~_@9csYyU&|3WmEM5ZBJs<|CKbV=1wIb{ycO(6aPMif~1=l}W| zAQAAf6eF|h%Atq;0|s(SIAjLvuGFDFhDz(kS)aCaU$8@x@KN9ZCgORTCjWWfhAevA zr6&f_2(!QlDOiNCjJ-jE-eeFqkii0-UvQrjVSJY}eNK=!qHzAgqHNfx1Pg&2ozZX| zM8b`NxBdKF@@GTPV`T$tfxfF$Y>VKsVf3~B_OTlbmI^kq36ok8Nqb)aW+3J|IezxOZ+HI zm|glI*`oq@x_%8%jN8pE3ouva$<&_5K=i&BO6wCX`*9Q;UXD>r>579C2U`p%Va6s& zYB_O)XaxC@PU=14EeT;lGXBiZPzYHme|8YWES1Dy#zLjKG}wP;RG_T=y`(Fq^95HS zyQY!9tem2Pw&$hi%0{-;hsK2`6nw^S)^Yl92!CZ0zBe0d`3)lbJ6DwP2RLHce1E@vR6%R*9@dpgaJDYJM>i1C7fz^*LZ1ZINe_uroc$BWN- zb~UYpOf>8lXj8ulH2VJK;jnhFOqT?#81R)CV(9gn(lKt`B%!F?XA6>}rfh*vJR0sf zLIbv)b*Klb%cC-=fH=Z}O{UQI|DAbhj9WIlQ@nTw8Oq8>^r;{%bH{o6@+G?L7WzQq zJ8RRcA?}HHd5vU(XKLU!Na!VGe7RZqedoqZ))r=HtQ8*xXB*tqISX0CF`%Wt6JgxN z;~p09KMD9%q%0dZb?vVLoML0HZ(?aP{JlXIhEEs(Z0Ba#_G0^zbcf6w5ILTMaoZ7A zFRNmqu$3{^VYS;|+rflf`#g*UD|MQD?VEA@|4q;I3F)*wfj^?W*F*QZX|ldo7p~H0 zH)EE&f}5>bmKb9Fb0((1yDBZqr0@5s0Ji%rc<<}u`0bpeC?Ckj!Rq(sP1(i%=j>KM z7uXIXIsqOZZWN)E+**3myG}yHXir5E_Bzkod9S1TkBJT^9dhQw$_6=>RB%>?US*FW zhC04GMZXE{^>F!m=xGXvab=swRQJ2#t6cwc5^uVo98p z3BU(n5=7VZgq?JFe-}+|KSbJW-Vc|&X-g^111d|x>bLxLq7t)?m2Sy&KrBmwH^+xviGEjf*Tfw^{*ntlTn0pu5h5L!Z)QYnb&WtuW=A zQ@QAU=Ji;o#!T2gOg4kZF!Jo3@a#aKuq+R`E4f|-E~-U}oNy&n%*9Jkk60C}wI!UQ z|7v|QeVHWD`V#{XF-&|PA%<4wsn=zO2MaEUQm8r1Q+}8-Rj|g#+>lO1%Lpm^=;u$K zHPd_V@IY-cI8luc5v~1K!XHe?W=_GBD&3sfFTrO#i%HzJ7xt(FF~$w+3@M~XsWb33 zd!sx4%#m~zaG}&q-3#tH{Vvr1ZiPx49#R;$zvRY{5lLnhy|vX*masIj#W#DAJIGG2AGuna5S!tJgnm0<<_d85n)gWB$`gTcN@baV z<_KEJ89}z(%4@tl)1knmklcv54_<%f;NI4{=&`*Z2px80cBj;*;- zY}w;nPSYJzo@O-lYAMzWn?t8kg?Yr9R?6G#Z=6`>wjpgGj+GAe4(+Hi_26!+d)qHcCB3;teC|-HyVM}U#I1? z=hD%a7aJPl_V63^wz{;U9xxj%@wCitz#RIfN0rN?mbHU4l1)Q+EQE>=-*XamKDDDd zWI^~as7DsQ_#r6B+{I&hc`xn6V6W5DvdgFUf{T@X_xA4umq|dA`QK-m4LP7a%X+eb zpo}I@>wMdcSja_ajAT7hL)} z^?l_EHqR&8j12!{=sOmt6aafGS~Fg*%i-A^U-|k!J{b3+mF8=&-?EY2lDi$=!}8PZ z`@vW3leIG71nys6dZe-3SZnYCvV&9*=aOf^GIf@KH0nqny)eL8W2wI&qnS~s+U{lt1)|`4F374 zzw#FU><~#U@|>xJ`e+_g``%lz<=)qnocLnHlITRdAq2v`rU4el^dYmqX2KpCr(+0m zYfC)Im;Z#5zGmhxVNk1gGP4SO@VLG*g2K+!yA-h^69<-mRJ8UNvn?3|+^^)JB?OnmE|5{aS?OO8Idw6)DK z%(Za&b!rg_J?48_^)8P4eq)`dpOm%xMu$)gFh_%4QdMy;()K_;UXmI8ygD{REf!JP z>joSkh!U09L?yo70cufSIkat!^XTm4Y*m2rA(LVk;1$VYrGg8Gx5Xv1lyOea3Db)@ zDmN2YV)$mgUnHGn%Y{eV%wf9%H8Zt!0^?1`M+KE#=D+2`lPQ};VW9l`!1_GX42Y%w zPwCZ@i>e;OknNDxm7hx)thrpfm=Hn|eckk15z9gXPPQz^8n^2Mm$A#$pHvL>0KBRN z)Ds#vK$a0Wt^~d=c%EC2AwqOrYduG}0r3lP^P8JpYXRlo>GjAG`N4zY$y(dZ)S6}H ztU@Ol^P{4wo7`utH<<8C8b^N_Dv0tGvZg&{cIb3P>fx{xZWJA9vD>*QVwfVQ0878S z%KXvNLMg^6O9C1uIY&6*M3l?_Oo62}mnf^X!ZBGblz$J$VmZ=;kJ=la%BhTeBKo&b zZ#x+9|_9PbXtKiWUZl(ry6ps}bttJLUF(lC+kZOONmz zrH$RcYCdZ`&5rD6pm7d(f;@o63Xk!=hwf~sYbR48=%2Gat7M%Qo_h1N*{N`$uHoM@ zE3=oNQcL}M+WK5Lt`xUZ*-~FL^EMhH-4hfu*yk6NzpJO{&JaW-iSLgAxm)NX{g=>Y zhktYm@FU3ugGW9OJ7BC$|ER{*baiz}^NWqlD`zpLyDrh4d-?lMHr@7Y?&>q4nWM7LH=@1sU{ z1}6g8@U*MM3L4x^WEFmeF{KXadjzj6ImF(!+bgBBF}?q z-!VL#E?`YABF;m8>+6ug$ywAUp>r4U=CvT|kP<)C-_n3h`TuAwCPIJq(-;V{5!}Qv zwYg2D;;=AU;LQu;(Chd^7Se>GomB?k(g{_$LwHJ<`wfkPcem-5uALX^G zDr8wsRH?w|osvP&_vis&r*h4X=U(8W1EXz`otz zsDt8ItRY2}jPH>Kn;&OHMrv|r-2%SeEry5ycJG8dfV(8P3i&=s-*&3jdS)ry(`S1( z{<(VkI9gb0kgDjX&WZ22xB3H1n#|_Pdv83HA(1@kgvm$EmV85SYaF(kgjtVtNe%;R z!*s$@-qXj)&F>GfmB*W>&8c<{EAnMHe%o7%3ihsqUZevXLb0%>FVbUpaOY*t&@So) zgSoH2$CwMKX&IA6p&WIOE%2Vr?6ygBeDX)H67sAkbyD6_2=bm0q@b?j5%TlwF}5vV z#;P@nr=~J95WA*pQl8y(QBk!Nam&o_9>C!+2%Q7KH9%_Pn>)jh?N_!!8`D9qhH9y$ za@cD{baLJ|Yg%)0pUbs;StnUF2;M?W;_wh)IV3l3Z4cudtX5WO423tBe!vi7J!^c; zuY;D^*L7ZF=_YU|jt&vz}(l&%5f-ZSIkHKf~(4!g>c#ptPOP zzSZ(VDMvMX`4WV+UHZ9{M_UPm-BI!r0vE;Xkq8)_MaZO2Ihu+qJrb>{Sr7aUpiYOd z>il3RvL$WHeLptMh|$l1J)&mYD^W8L|17buS%B$N_L7vs0sjA?_2L5xDd5mA(@%VY z-%bab(yqo3-VS_(8s%s@E^bt#X&#&wv58h?l}|^E&0zv~<{z6~xzz{Az6Y&_Kaj1g zd0++9`N>cZw^ubJ?{l4+QBu#0K&yggud$W=&@J)te|V~$L|gzf!TkGzOmuz?YuIjk z$~zSK8mAM9d1KfBq3}LFMQ`vp8S`y0)<|?Uc7bnT#_$5N1|Y|siRmr zLyI1L?EL8J6JmTifi8~~9YQOV3l53T>X)s36+}V*(W;rfLqq_!W9S9Ej}G|(*6gnr zn}V@$_I{NqU<93raUr&}-31I|;Dm?hSf6Fy42&;-!q~e3=qE!)%<0A|&~L(;-Y{wS zvQ6h1ytEm?IB8aLTy*pjAl=_%Ps{&C!ZMU0R#tI|VfhXavzI2nVStX@i((WAyoA(M zpjXk|${!rkDe?`F8FPfd9x|aX7Lm82F@i+YXFZ*uQtP!*`*YyVM0q@goq^oY0SPu9 zht7fsb>j)1cD!&uMK-)>KTyBN(@Sbf$?RTHw_2HtQ}gkIY=d(iXm$EGAenl|O!}c- zCnrRJ(im;B3GW=cy>7_wrgXBCzJE0P-PWifKVag-hTaZ!+(Up~z{TZapIFHtnxq5+ zdG4>LCq7E-MiIl#K^kz&Hnz?DdTW9ha=i**Z2*?zml}fQ@y>*>zx&f>jDw4NXh*8E z6I5fmnQPc{3UA8dt16n)k2E!JKlvO7Dyxo14?3D6hmGt>J?=LbsiVWU+5P${28UPV z8bFA>Hr6Cgmo};l){s1E2Zn{3ec!*n9ei{H+i-`FC6tVM$R$&u(LI34!8hh%*vYak zF1?j=V&FpE4GH1?T2A_ijvgk;@tyQxOmtzD1<21WD?VoW(PpdZkKrmqi$(X6T&V3O z7)U~1YHljm|ABM>&vX6TUUcC&>-Y(+^6CYW{PQkByPNhX+@(<0VPz)j&74>4sX@fWdUY0W7XyvRZFUNPmVm zlFnYu$ZH=Dt>2o7~c{I-E+vgHpu!m2NrH~MmwXC5X7R@**84ppr9aTRzr>j+@yRUVobvI~(C zo;3kV^VA5mn`xs}<07;Sw14c|`~(zLlg};CbNhHrfW^tqs|QDmF+3*xV%B?aC}1_P zBDSN%OUlBG8X=cm$ia?Tv>$URAX>YVeclqC+oUH0OLyS`@DTte%X(q8i%L68dMIqr z!w((RorPeeo=+3>Ro`DQ^nFgKwtxS}dcL)t(2xL0;6~Z_M}AY$GIZ}Q&a?pf4DrtF zH}M7oyGJ6T^C`KlTaiAh&unG5y?nb=yfTe2szpd~AmD-eNC-hgNT{;vDFPJEJRWti%ILe?`EML0D-RO3VbyU5Glv@f5gjZ^u*AJn%H zGIoDC%Y66-i%>pa3yf8d?tKB^V<+0JkNLtGSKvM@^$m6Xdjn;AT8o}<*4N6a z`got7qcKXOxRin$u6N3e-y^_GO>uR5kLMJgdMRPoF7= z@to4y#Te-KMB9~*s;!0u$l*r_UpY4ikWTWo5n>!J>lb^y){E*QLyn7A z0ujFmI*FpBSN?k-{<|OgZTCg3wld|;c=qY&#drsfO(A|-Wz_u``47wRv--t);L~)A zZE5F)*gcowb99nNb;ppRT-ms5@fA&guA3^|}6==gzZSp*Rh}x@?uESH2+JknFloPSr!95%c>Wybc|$x-D;y@WCSRe~UZYoB z6k976g7ZNkf+5?^PhvX~JXQsiX46G*m#-#@hoXj!Ya`?5)@4y1_f;0f<=b;+UqT)bLYkO$LZQTm*VN3*+||` zaX5 z=X26Qj#zB%j`F7X$9U&43neu()6Le*?p)3_`DU_aodQ4uPAW9?$E&Yk3#X!XEnSF= zT{+jV>lNWbvOJe90>r~_8jptGh&B6zK=yRg1TLg>mY3f6AB}z(shUZ|jf{V9b&8RB zz0+5y>0;pg{rXRvu^Iwe5~Am!YbWv{ai(_Mi1i%aevFSQ3zxr{W)&`@910Fd9%}h9 zk1k@p-t_k;k0RaZOqT**o)(}(S)x0M&4}2n2O`*@mWPv?6oKD+8Ph79buQTA?Z1yi zT3EOCFugp&?h44x*BEd<_iS2=qSbXWk-}fP{^R&C?up{S=>VipKcjUreyF*hQcOmM zv$fLdYmgPPCtzh2KK;HC>h2V8fq3!&+-A2Z<@=+&%x`lF5~|g!^p_uls&I;zFtJ_H zgd3WJo1@9uGfSM7(d~fIg{4RoI}hsAU_vX_6mZ-eFoV&kl%)AQDtv9;P*&2_n#@GV z@L6cR@m-s?~PQlr7maWSy_d_ zWqvm6cRF07V#*Y*ziqyOUiQz}vNSA9sryjIpJka!-vUUdB=>V}!0jNp@SZLNaoC(% z>*!OgucV8?VZx=qj~`_2y@|woX|s|m;{9Nf*Mub1yh8(Uzn7VTnw`n1N)J#mQM7g3 zC~FWG_f48r>ywuo1uX}DN0kC;)QaF~`sMD^nI&g37IvVfJ29R^&eE)sUjb(Sx(wG@_o%mrJM1WD$amcd91zBN2H&Dq030>PK37fZAE#g?Gv8R|kX{bZJN z)WC~7%088rhtbdWp*K>7Q++Ty9iqgwj+6B(F$wE~U|oQ-NsMT4XH@3skrU4tW>PQ? zm@`G?aD29)T0(i95J?#pvIg7c5og9;@z$L=s#o7qc;W0Uy&S*&W!gZzlRAR3nzDz5O8rHRmrIp7r~_F>`myxA&j@oz+akfr@&X^Nf~gz(q`JozlAV$K zijwkDXl%6PV&`gQagaQD@w`JCyHJ?hFv6wb_B^kK)E6_M!_y#j>?`!c?{vVV!QZsG2c%3;s zEA;ARTR9J2eQlKIas2>StnLsj$GkXCe433U z{c?NawiwetyB{2!yuRe_7T>>$Rc`JnW0#=Sz6;_4pRYbBnjh#qZ}7NdNs?R9taAtB zRXDiP&%%*eGK?2>^yBq~3MMsdS4&qSv919}B=!N2^m}EJsgp#|C&~nth8cnALb*15 zSJ8Wg{gGKlWLC$1Qao)yEl#2d9RHsyFG24E^`UGLk07K(|K`4EV8+Z#TxA!ATf(ei z$_K|`qt5w)KSUYy_=U2r!7`DXQn)x0e5yu!%fxRzFsS2-^GCpa3GiBgIw=45?-(`I zpc?guBEfXCUTdQ-Q%B|eSU-sJ_kD7iR(nl{mRO#NX78BGnQ3f{EuNp9PGcT;>p@6? zbRMrQkr{?P9E&@C-}kP?%8l`7pPm+Q#<{WQDc=_)ad}5<<3k*2e~TmY8KSRKnH2ab=}gdr@-XC6;QnW7lRS1D~+ryvhc(5QzK- zrDi;}H7^R*Hg$@H1w#!cZT!kqd{?0*tkrxGq7{|%K@G-$wSHDn`a8Gl{0=*%8@?rW z)85grg__1Y`U%H^e_@~Q6+rSOf(i)*a^56%%#7s9t1S|@DaP_>g8Z_h2CUA-3c#jG zRbdepKFqMV7-g>I6Hbd|)Ns2YqmgLmwPOSTqPYi4#4YU1f^l<7RoC?xGG5}U^(yr7-z#Ma8~q5Fx_*7%=D z;~;iV;=y>3KW>pQq(p${3-pUTzQ=V{m{w*KKo(&%Tm{p7fY>Q**V}!Hh`@|g$Vk%R z9@W}Yw6XU>^Y-4s*;*~k#XfC?p$m*Jns%WFXuq=q_qc63Elnvq#gmCDtUP9?CL5v8 zhZ-;}^EdUATnxC~BNipUvbHA9+bTn(UhDQ zvYW}a-M1cVRpt;~Gu;U2254S~wgs3igci;SjyJs4C1Qi`SRgHYyj)Rup{lqPNPAqt z8*hmrKryx2f6lEIZJX8LY47U_mhvEq5A3zI$wT_l>hr10M@FPAWX{y3iuqhTjXr+e zO??=UP~`;zN1+||!2K@c$o8-j`LdP*`^A@)E>Ohyuptl${SG~y@<%r9xGMPQFufLY}FnWr@=gL#w4V!*1cy zZ4gJ-5d0wy)lZ2dG@g_KL;dEeRgdQnAhy9PRjpLDJ|TT#xr)YZOrrN!IhSjBk2Y|? zumxM-Qf$`;wsuwM&>6O6?T4FjM<=CjBO8 zdQY998|&f=Bkbv$NhZ{ScL}Toa5ATsk_>h;e7=;Yi>Mn#44TBBVt~f3+jKWWF+ulU zLtrIz)Qrxlq6A;6n>85nKBAZRSZD4PT+1oq&^I;oP=APW5hR`GMbaIp%UQG2UKaQV z#U(Y7r^OCV2Zu^y!gydy5Wd_LWjKUtYP!bqS&8@Rvd`7KtF~GouLZ;A@r3PcUakPZ z?*#NHWx~TTsv#_=()>#HQ<>oL*65kDv3VLZ>Qx?c^!d zc>S@3ZL?kI3$E*&VT=S^l-4NoOzggjOQ0lK`Vc+s84w4`+rc6PuZh#&|6P%a+<}Er z6k6BNhYpB4H0t~HO2DOvEr7mYzRn4>haw(iCi6d@X#tA$G-%7T&P|t=_b9Ds9G?v= z6T9Mt$W)^xo+)1mVT$hT-?22Uv#5{OFH!Se5~=mWXs{d$xKTFGh*epoR; zH0DLC^aAOBn2r%)Ry;9OvFIZPn}%e)6)6&|o`XwIS(WlJa|PO%DfcjN`I8O4BldS2 zf>~so=+{>dAzc1NHTTYss^81z*tYGuheRtBLT6v9v1 z-s3GeN!|UJ^R(^=#`FUB6V7CmQ!7phA+3D^^XRTqYYk9=n%%Y}iKG$-0QbJQ3Kn(6 z5`u-PbnKaFu&b?tku!n3SRRn5(OcMAN z;n9ZBb}YmN3gRdpr;~}F1y|RVl2_(=7$I>PJl;6`jp2oH?>Y1;#PIIbP7s&XXV<|kHJ1w)TBJGpgB>ZG zFz?0>uJ8Y?ZWfzbWZYxg3Sq0r8?b-X2l6|_pt?e)Rvhp( zJQ|Z=(X!j~tFD;U!bPdFOLgT9N(N~W>bn&gDOijDkhu7DOgUEoso)jEwIr%;bs;tI z@01x(bacxLCW$2ANAKrIWG~PWHf%0zGX5mtxe=cl@)Vz~7B9Vu2rqy~N%n}vq_;k( zc4qDmombo3ptgFp;kTOAUsGQGlKTxO4byX) z-%HK*If-~_m&E;q##I;3JINoS!?0>bz@K}v+^=r!dApvI_F#cJ*nG}SWBUsnU_WyA zCu{7V?J43mu2mg&5M@~5Q=J(`%01ngR#_w#2#x1AzwK6(adXy0amN#c9rwS_&fh-N zVJL1(@zY!j1G%QI5shdcawmN1REqeLMTK5seoEXw+$gL!rQB8zW*IPkuFumsnY4OF zkY^K@jAgw6H`j&F*l88aE==Z0Hc%&e(?2NoayRUi;LWX!we0p3*A*}?FwexEXXN(2 zMzc=eJkG%ixtR}GqCDG@vGWg}2V0;7FM3u?E1d=@;k)$vh#7R3;QbLm1VfL_+>ma~ zcyWa~_eT6X2@H~_SyA8;iovsPy5jy2<3>diM@^_q{o@tZc(g$RDi8AJV8S8GFQOtu z&m`7V2>$AwL*t;DiR!m~CC(LXYx;H=MX(8l&OS?6rKk@K=)!1ype+cAV2M@TT2^DL z@t9L<_=D#)JseZ_)8pV($q^oJ#d;X?z~64iFi^G zOk)0J0-?61aj*5P4H#*evWq6#Fp@b)fd*b;Qd7!oD`Q+B=PuP@LoPxY^>lunJrc&s2~>F3}7wI-6XkmT+XJuf;fOlvb?j2+s+XnONyte z0q#ud;wFuKsOTgL0^8FUqNX4jrqcCL(N&gvB!xp)_^ubZsgE9Oe7IdsmzKi%+a?U= zAb}GVCFIt@{J;!t35wi6!Raq-nz&5X3nPgbvA6sGQR2@zb0)==>G;MA*F_F8pmS&@ zjHvon!82K&~uhoB|8s2>?=+! z)$cb_o^=cMl5LoB!s3)AgK%aVgU(BAr(~V@M-lgvt}f!3xS^ozg>er2ADb~{bAuMVznQ$4kn}$ z4i|t80J{ob60bG!@_xlgWDfGs;Dq{(+n@>h#{VKl=+{!NWdx;N4Xsh?k9@R|a%ttA zWQuaFrcvBxs{*Z!^=c8peJ7j!ZJSD+#bWMdn^fd2Y~9>#|dkQ0$X&m5?SXbHZ8eWJy|C&T6(Xo)8( zv7l7jlpkE?warY~C6IkkD7^64@Xo@dDNY-3v?LBP%NZ|pnAl@ARobmte2co13!;p` zdg#r<;o^L5{@ZR}M2{BHIh|F3K_pXDw7)Ku{uLn>ObZa>uSsGJxF*i#6pYJOmOCTa z$Q$EILAoCjbS@lVijah1!f+8AV3l%2ZU@a7EQt_m!>A7# zMw)hy6lT5EC+VVU6ui4L_|>m}TeBH|nN5eQ0%9AYdLI037(^`g;%*t1N}Hi*?F9<= zb(TzxK)LZbHMQQM+4LEKGL4MzW`NfGSuRXi>iaf1Q)8HqYzlQDti5d#XY~GAs;@7R2&E+7dkiY1? zHKjF?kB5#Ob+E6dP(gN)^Nm3UopW%A-hA9t_VS8{P&)SQMbO8?(UX&>^qGa#uj%bA zdri+AGyX-o?s)ggeg2ngBtm)XVfTi-6cB1rpzq;?P&vxoO8+47R~7JpF0$~ib5Y_D=-@&gSaJpFYPT{hUVql|6Zt6&gnxc>1!)@WF_CcR01ED=seoOqV@f zxy-;EP4H`721Tm6*$ZFjLp01FO@DBszZf&vBin|p5kWT`mwrK8C$HxZEyDZjo#s9T zuah$`vs%q}J;Q*w{itw!1690e2S`^K;m=8V zE{rYBcq2D~%YAUgCIwqPial0hT^Xpwf=at!zUsKJ)8_3ia_fmsDFEY9YXzH=MM| z4s8u@L2%2}JXkpyR-C~(53l+Ci?!(XlXys0zxk|2Jt}rPa-YKguOyg zsuywOYU{%>3CLDve8J~XQ06kySR%AAK?__=zdkN`%EabYFpyl5XxN*Nzy_)xK8#g} zbT3Yhsg!U#u39iZG8hhVb|xy=_&Mim@2)O?TK#lj**AiksPf9?f8OgR$*U!%lazu0 zbo(~iyQqO}Y+rW?{GfodU5?d^ zl>Z0oR^Axc{o{%~htF#$_Ebl~@wl)CbG?o@x3&^0$LI^jTZ(dX6PYzW0AzsoILH?P zt{_j=$MsUAxqlgyoY2Y_x)ND?b&MTi*cll}9MzZE&; z$zH%3yeY}gwb9%WLR?qC&o41Ynm32gKOnO-IRExuqz+SiG9MvlIC#G2Jxc%Xb^XzW zKEb_wr&Ue8LL6;MYU>MXu1pp2s>syPK%eRUz9welezRtBQVERiP9hPFpe*KV#FmjR zB*i5-p7DR4^6jSY(si_&!Wd6 zHi3x4J=-bwEG@p|fx;nQq5wc}&b7n3jrn?`&hW;A!fzg7>K$kSZXppQd}L_X43#)~ z;uSk)A``!-KPM&xIB78wO(6Vb0V}gu6zad)vL5CD2AN&=`$6&LBVB&uc1DMJ0jkhH zb{2Ztc1?M8)Sed^N~A_ywiByfoEN!U-&;6o4{F`gS1-S}G~hgH6%06dxWOZ)U+Lx5 zrP~FJ6Uv(ELj&r~E2o}7XOLViGC3-%XEMz8R0~`6g(Ag|z@Lqn^1hYJDRlxt`CV%) zw_mDaUNKV*mUr<>Iee%s6im=ZWqYGF5+F+ zf8ixi7u+-Ig!nw1=pf4LZL(w$v}9Ne3xV=mrpm^DO+wJO%d11}8}l zPB}*=8j}@uLRmC`&hO@GBXw$DW5ndEru*V-;sO-lZ%9ZjMx23%{EN$I6P$%7gCk!kud1~{jY?0=MdbTDLCfPp%j3Sx|pT7G2!LW2<= zl#=jk^j%{d*hlI}$TxOC)k&-mjnZzZA@#jFpq#@Mo)~%9(z!EQaVR zlbS#$8d^_I$vrslx@!%r#=)uzPRQOd)aD=w{hD%xdD)ikbN06OLVC^Zl^AY=0AL;C zX&KNKw2EcLhie8^wTdzXu#CI-G8F7QvUn>vM9>ECPCeHkoOgem@MFgfif32}&tCeZ z)k8_7Y>T|V$>XZvUw0zltGJ6V-+rf<&3-0zXUC!^(^ZL|hqPbIPW^yzA;k5=8Oi7u z!XieMtTTzx`TDdi2}1HJx{<%^rBE`ffX0_nLoEIw^!7hpVA4t3+hR2-*v-Zz$jby- zRuk1Q|HSBB+-74?KP2d?Xi*Yf1T)OPZY53T&<`XcPYq#W^*+_=uCz6M1oQhaCob{j z51Q`l!t-4MZfLvs(UGD`Q8q(2luZLF0RfZqepQ^oaJ3WxpTLxkc3>n@rM0#pk<9G6 zZ@Qtg+<;^C59X3bKVLYV#X&ZFanARWwaFGh1mtvg(T=blphZ~#*_&TUMhTWIKRPH|U#g1<~_SEKe2U3PYXO%~-151o?OJ6=? z@ZGf0MUKCj_pl|Zy_DP;`RuL*DaxyYhy;&0C>6R5y6hx;2h!D?;3h@r#$UEqMG!Z) z5g(Q>H6Ak48rjO!NDDVG!iS;cAJj4Q09Dizu=>X|u&J-62!6bpP0>WQ6c|f34eihv zF2&8ScWe>(edu^;3A}dTNw_Sm2!*C5A@u()Qd3Ki`p@LOi zByI~Mncv$*2%-PrSHtPfY6U$rqV23Hs4Nm;eKMKwNdr53c@vSY<8eEE)@kb=PSI(c zYqaF3Z1CY6h=>j%oC&*~W9b4(K1|W$dnZ-DyZ`yv`*+rrHZ2K4AEedszONx} z+sTHbmFt6jiTRgx>w^0z)DkHyJ$us*_21`sNKCq8CF-g;c3h z$`iJQ2|qRGcyrJ_>tda2uyzJ)Mq*8&A<{%G*(l-qCQiGh-yC;-mKv0GMg;ZpXLTjQ z$?n@k@MwGP56p(7ilbZr8s*7up0J*RO_4UX08rG59&;_FoLDfYn0_zQvoz7VAhuE^ z_u69D4;3(`@m>==000b^-KM*i)k!{ns56WqVnKho6WsCKi3|hg`>u8bbS)~=Ru#Ay z{xIwwOh`EHnSyB-j7LR(m9ulC&7UMAC*o9~#secnYj3ba+SJdx;4iAu{BVy|x*3?@ zMx8KpIU$!IU9;@CWTym51o(BKH+g%R%a{Mwyp66>(zBpOKxea^I<0KLzo@D~2*SD~ z8zGz}!n4B28tuFS@^mCUWx|1DMPWC++t$oz}5*}!6d(-JI>nR#|^6lCq) zpxE$mwTMs%nXla!Y_UP5B&qNM^!?_9K85*jau6K#i5xsxF=nf((lUk! z4-PvE*WY}@kle}9`4eDNXv|FWM=*NXJ0F(AFKJ{F?E@s>F4*Jvq(c28%#vlnkH&6e zMa$i5^lHMixVYj3GTr60W1iQF0{v!RPW_NUfzLcf_F}2n6@bJ>VXJB0@yd`M@&LrC zg<&E4^AJKFm3_<-*E_Ao1TfP~FdFKC)3QG!#s8tP+d+eG$R3YXSlY}@I&-%LxYtFF zbJc2ZijmgU<=*S7j_1<+hmD8fxd8bS)-}-{8wF+0#g>bht&*Yt2ly6DamJBh_f%Ah zBZD!HpEbc=h2L`B_(K!~)9I)mYZ2U8HGTlaVPuqq;VGs-ZJ;#n z%ln{_zv2KUZwS_;dA{=?jalPgkdr8eO1gRgCz9Cox&mAZA$Dv`fRD?ROwtR!M*mE0 za~@4wB4)Rkv{m%saJd&lK5=~t?#&RfcYe!vf(w(_`7SYkngRNb19~!Kq!?=MQHRbc zFHHjan`O)*UcO}29|UI9^yqDYbXY{iy1jg}1}Zb9>HB$}L>8Tv0j%C&H`Fwu68oD< zLsHl_KCPro{qwUEwn>RR;+PxMnUwxzv%v85Lu_|ENA^)uSeJraIF1)eB(_lBcPS&3 zF0|N2H@Vag_-YnYvz8bYTj4+iXs)#rdq>$zsl070fLvB@%Pd)WE5FSOPnmx zIA|j?0lNNkZGTCi?5E=UdnDev8mx-_4dd3zllvT@I9rblBq;7%L}(pGrUU>>YQSGR zRX!@!$hvsTC~fN-`RCEmr0`LKy$YSnF2?l+A3B=h7x1Snwf<0!Wt zELU$03KA^E1jRl035ploFpGic{9H0QwnzTXF?_7XsK+D|vml>b{Z9L`xX-ZIH^ae! zNiDA%6ln<&#c;)Q@0qhrL%U`uLs7^1EeE5Z_Wo z(c$tH(i4ldd*OeEY}-=Yc*mFBE`3rEUby+f)%K*yTQgl?NyB$KXwldeT5VB(?+nmN z*eilmJt7}a|3NHMeiV9OHic{`KyO*vpS7NbM%Vbf(;3kjJr6H|gpjvjO|TxMca$Uo zBf5Ybmz7jj(pFbn!g4OFAWAaE=VZ-y1SbapFP(Lh(oMy=d-^PnWx**2jSAxC2qCMy&{Ji1Um z{v=k9L_O>9i;(LpqW+j>r5zOhlyf%Qwm*=1*sh0&m7G)c=yfT{vzu3+Qh%24-$+JE z5P$(L4KRMOZl~1T7Xg6+8A6X5N7qLd3e#bE8o=X1-B+L?E^1St{i@@6hI@;ox|SsU z8@49?_0BV+HCB3RD^ehSNTnqHtFVPYu_Lc7J*L^6U{Qqtcp3v4sU=zC?X6N?t*biQ$a&2FdVBxz|0x?6<71VdgFoU!sy|#! z@%pDCPLB`v!6LK9C0Nt(bi=T&sz%xU~*Rh0h8%L}>aDz!$R5_IjPx(B*sS$6}0l2qPbw)GlXMibo zH$f~~5WvVz{pk;AY8->jvf*1T13RP zG1$FjlXEIeRfH`|4s9zGieM_7c{r^fr-fE#?hu*m2EZbC#mAWAi)?3rQm4V6LClY2 zKq9rcX_+H60Y2kGV?`R*z+CM&mn+CaLJz|!cB^tNxk9L8_tiT)1WANkd9wg5rBO6|_Zs zp)83Pd=hZ>^8m>iVKMNNjh{uE0iRolhGo_qN1Am%75IhtH!jFhlSa*Rf&Y55Gqp!mcFn z55%S&QFfMSOek>s#CuDVSD!$1h7)Tt9I)nQ8fm=2ru>6?y{*z0$*9Zaua|5_fueZM zVui`cs2@+yJLjrK=y(_V(Y9Qkia@EwBN}X|8h;UAoC_r(UrwJ=(~FL$0vMhVC1`6G zxFW5_$BP(8tEq}GPkf^v5ZP1CyK~W3koom|7diBM!cyn25jw6$`N%YSlDCmCpWE76 zEmX-AVe|M9loCNx8EccV`9rulwaBw@=9ccX64^Mkl zzP(NL0kQT9Jco=u&og<1ymsz174;_pTL1n0d6vSwL7Xp|F!crw`)y}?$LdL+5%z== zf995?&g-d*i$h-5HmHRQCDQpz5TpUjdBO^g*_A?Yt@C^#Wcql;a(m#XC{3pQT;kos zR<&(jEZs6k1zgAg@>6RkcClm#d9s=rPT0-sdF*8k*;oFzpBmC;g`4}3l0LkH@WA?R zq|u~DcpWKeAI%s#%yfd2=IJd?`r~(di;9T109{fZeyD~2jwJb=1Jm$9KQn%}%2y&r z0E%1vZ!RE_6eHi^-!&RsJUxcS&htf*B!SoLZ`%0*K9bzYqC~Fyk=?S?b{_NVB{!=_ z#;i1#)7XSaZWzDyaPgxK`XDiY7F(#!7^yJxb+)+!-r&iL}`elSN~CfeaE9WO=_xM7EJ4N(_T~qsBBy zu{Nu#bl^jUdPDv!kwDWKqJM(4QwwXE=WogD#8V~slB;NZUwYIVJElC(e*8Orf!Ra} zu&<*oiIDmHEXd^`k!*pNksIZ!qIHMX8*D? z56ekP_7~C{Q8Rzlk+Z>f@CfWYDm5=Dh`b`7#PZNV7W|aQ zwE?Bea<5IM>>Tx3iSdOBIe^Gi$}j|cq9_^{2~epH&8eCRr2!oCHVilMJte*`89b7? z#lu8a?2Q~<2RfG?vjt7QZ%|D6lId;dl^_cwwxu528SMaxs#~T#1b9d?moYW+xnwRn z+c!RQ8osk;M*Y2@Ro3BJd>r6!*(oAj#fk!SZ@0?XHL@kqa+%Kov?(UU-GJ1A*Y7 zzWmjdZuo+TG`ULRa58iOAB#O zWHf7n@@_8g#C&3SEWQx=-^p`dZQyX>loWiX2bAl6_;y)&+#V|bYAM1u?&X<3;GPSawt{}`+h>D$GBKI= zYpx7ID-UDDG`TbK>B(upEXl4B%^;i^PHRN+^9)YM)6U$8YP3v6z>eh3Qb8CT^%$oc zPjL=t8U+m$ZM01m)f*x3biacd<wZJRxQZmU4$=+%_}{z}pitz>OsWUmiqDinf^Y;ATa)!w3Fw(&Ki;fUL%z=x54Fytw`>f(o1Pu45r4< z=vNbuVd(!$?l+udx)m44v$$L$F(kUmn4aymjF(i8A)C$*mI~l2LCg9|5_$_8u&O|s z?_|4w%W|+dH0ChYD8dW;5&0~42k79$1bCebFpZ)*oVqt4S8$GtI`wXuXyFV2+ark> zNJQH8Mo06He|0ET#;3jZ(N-~;yFpU57f;9KXXWnM4J_Nhoe(L1aAgc7@G?yU zs5hUqz2}rD3!a~((-=~5R7axn()6?dZ-{FefzUk~{`#&eTKe!?0&H~O6lq5;EtnN( z4lh*1LaIsZ*0tx4y0chBf+>~)_f8O=11{-n_9|!ri-1YP#cI=F4nyko5|THb6|SyF z!_F`{@c#`*`G*97a(>6`0Qd?~9Y&r!j@l?%Uped)ql^yJ8#QJj;elbVt`7W&fY;U| zQSo6spdOHWvIMV|zvB$D7`hdBPy<>m70-aa&)b<`-2`fcg^UOsvZ_T$3c8DOm9MLo zz!YTMKZBIj&ECr7exl{NJ(hh!#OZD`OZYzY*17S=sI{o65lMs$BQRAms^PU}La+jJ zAkT6-+s_1BHq70*TgpMJcsAPDiGCGFD?j+%@3m!?5G3zM2W^T6xg)Vg1j2pVgOKVl z<-cCjs&g=<=mm&ZAReiPMV{zSR=El-bPz~BBgiiIv|J;Pl&Q<3?=Jk+2%Zz0TwFOO za~ImFav_e6T-du+pDX=-2H;DIYXbSwII(N{pZ@1pY|J(141wmV_$Xw$x1mrf(%vur z#RX{FaiY)VT#a)fkljf&cHR%B*kjJX4c_k3lWKSMtflfG z3}$c}nq_5XXxdJ!&X^A+J49@TtOI*Bu z>%}tNzcU|{Uqt&fTAcgwMh!#t8|~9MImfO@q@kDY=refHqJMhte4+45T@7_=M7S#< ztsPh-@ggU~GtytO3_uVH?1<@kxXX!&QX&9IY8rg_B>tUo&@xIHMEhW_28qC(>4wEG z@^@OARVc#sdhwag;z@yM0|B|_+lH#4I5IZv%EnS<)>}sJR^-(B zf~DNQw`jz`e=`cXV+P+Bsl|gc&coT*c@>jg>Xt&28%w7O$>pPIprum89l;2~YQJa+iS=Xb*miAHIDV0c7EwL4;9OaX)P}I`B+v(!NrS9n5xP%b=TAsl@>3bNb%fyS6 z@ShnlKkDUO(o&pRD{%6)keTCORWt=>kyc!;A0S?jclJF9(X^eCm^bjdjlJptvdHbm zohnoBjPBV^|EvGJpo^wWA`FDoClON({-z4^7s`~eG?b3hxj+P{c(NxtJfa{=dM0ovx9 zUVH046i>1CnTDeS)zB&CxSI>Ki(+Mo|K7E$d;~1YZo{s{zosC=97*HCc^&@LN>j-J zNGmQIQW>{AwLam{{3zC}{|xgERg$1Y!-3=^PcC64GH*}RNXa+>z|sRgg0!LneMrFQ*<{f#~A?zm0gUD|cjrj6-i4pcorP_Youh7>`Ab0ogkn#%5Ez@;K?d zymu1WcteaW>NjZC%E7A34B_dbA+hn%VHf;6A=TuLIC|cbxpwk;`l0W~$YB9;z$Z%; z4E7|2D^9I2r$#dh+3(!_04ej|X1pT}`Elnr5S5kYHkj8Sc9&5S2YQACp<=dB_hnQ0#Eh#gfDJb9*5vIJZAW^}j zZT(8FzG5uiUUOr-6c>CWnpR<3-vY4e|M8nYOsd&N+kpELtB4wFUBul!(#y{!(qlZ? z$Xw(45O}?0%8?Dv8O&8?y2+Z@>FoL%Fh%!+4SyUCEq!e4?{QSoYs#?MsjYBpz@~l^ zTuKMHYO!b7Eq7XJ|9N;EgL^gk2w&d>k}M$FuW_R zt)ng%#U>~T|Bqj@$pgzcsv&H*h3}vIC|+4h&d^cHWixCgW}Z=yH_>AhW1uMJ>~y0o zF~I=o`6f{&9zc?|oM+hW=^h9Jcb*Uc@az9k zxdWBPWa+HVBBuHa0bOtilo1T=Bkvw$;%7hj3`YOFppwp<(QLCad+)j)9TVI{@;U&| z&Qj~mF}!pHOx@0HU?C8H7N4A6)F~F>!7u4zWfr`K=Vnz{(A_;s6 z+J%ekAB`@P&D`a5M4Cg^crM>-h0m|$*dq+Z_|eh30&u%O+kOQwaWVP!!M=T?4`L}B z3C8wftKc!wxDA5%5eyuD3@ax~P{`ASpn>*1g(c#5@y2@IPFa?2d=koioHClOm+UZv zk;fQ~!d|>O$H3nzFNg9S11^DWV!*yu_RB}LI?&4~kb=`<(5yCe!J4c@zc3ta<5Ef2 z7dSSvWY{HGcYRDXQAvzT>V3{$NL`I4C&m7!np&DX`0;gT;MyfQ3R$(s_NXTj$?pIj zGTPF;G38zyx*gt86`10G1%*%SfJBLp8Vd{`JtjAj(R*K=R~UE})Bnsb-SlCjpgeKt z8YtHg;@|YmN(c*!7k9Y6-(qp-6r&If-$s5HLS(AQRQyPfuq9 zETOA6kvCIW*<@)w`>@}G`TLb;I?>B(S8vN=Zl|uxIh>u{wRgE-q-o0F zw>g}o(jD+_8lZzKApIx+S9${}MVL#Qv1h1;w2)uR!gbC8I6omK@40w3{zx{ccLuAq zl(07g}H^R`psC=vdq-r%t0COH^9wC2Q3_doE(n3Xm zQ|R1uBX2O6o-&oh|4vmXn^1O*l4kZ6+4d;@D2zY>`A1S*h+92K`ND}&8shg+)Y^=s;oR@$zFO=T9=Lctg~v(LNgS^4!LWlDWP zYr0}-p#)J}ap(OpC#_IicsY8Z{A?-a30!2KPs}DB5*PnP`EAn7yA;_k3WZLG{ALn{ zevq^n2_n8g53qNDAnUu0bQ(1=!RjGn0?GXP0dRLt7$^>nim97Q(3u zVWSCG0d^&5I<8~7tqrOA*p!;Tx8U))87w@Snx6eHDAO6B!f)Ws*_$>>a~^~4mZ^>-fVM@;bH8BAqp$3-G?RW*qf_} zF%04F-U&ko0#jadwbB|jkjYk7Yl42gJ@p1*S=DBM@!aWZIguO<-ZyeY64l$JSkMI1 z1qiu-yy85*e`(BTp6a8bH236VL?RCs$Y+a{57jd#u@3nntc=W*r|KFj-cn?9gDWu? zlyiO^B7?m5NavsER4s@hoYWj;#z7MUnu)u;K9A7N4^@SaZna6cH^8Jn=3{{$xS8t3U?y?+lMzh#MgAqp(Aa&Y*d=%BE(Hw zF6@$3N0ZMd#yAI-z5>!x?_*HNyi#C*8UC&#>GE~5R!q;(3fQGajb_WPjbYguX1aH? zF=mzhnWWh29`LU6Y1fz@V@>p4NK%9FQz$%(@Lu2wvk8|W9 z^1S~eFv*Pq;7k=oK;{&Wa4FoE1E6B>4Cb<3$XgTf^^77O8XvBecUnTtX{wwig164-bd_Y}9`w}+Djb4c=$cu5PjFgeqtjO|EY0O~v zFPyR3v76v9Gg1~gIY^fW3qM;*7lcK_1eAI~^u$|Yx9I;MG| z8R9%mUqj%|6D^~_17wulPFuED){4w@7}&Q)y9Fb{IZ<843sLxo12_+>;Mn%9pM{0|B;y8J{t*Uv+V#`+U zpMBBID_e%NfKR&F7u{Krzg{_uz0x1cexrMdtQAhSGuG#BEHbI?!dQO|uq#}MRLKMY z-MADh_mfgdeRTKEM3YjBfLQ6dye$c;I6K!LZ_;_YSCV9FH8~$(IK-1yD|nh^G?8H9 zmD6P1Z^YWaLh4txi5KXKK;Vf1B7@%7)GPTPMXq$Q!ZzvRt}J8{Rsrxt1FI^5!~^hI zz5V#yelzsY1mtEl&z!SPO}CA&9Hwe7L_%8e#llr4_s?h6n1HPk5q?xL$f8;(Igvzw zwF9uZtC}o(MJ3vdlOX^CzvN|RGt-_}8Ut2~6S(#ce8@29WMOrTg2|Q4wqi&;w}E|8 z5Et)p1*|yT1yD82kxWlmd-SGFpw!HRpRzNoCx7h-)PG?viHsnsd^M7*h)$l^mHl8t zAFJU2P(2y&tKutfjDffvV&`uC<@8z?H8o{5kZ>1dt@&>4z}VrK|4iFGLYLGnZSl1+ zVm>0JFes-DYv*nYA#&|&XRBboHPku^7HSW%`MH>?p}NU?F=^r>(H&G*QP*uq14CaB zfV@y^Ev@5RAPqSQ6_O;s~0XMaww7od=n-!TW-phuiuS>vln#g!}k_^Q;|u#&(EN z3_f7rCvEq=y7&j(L=rSVU;l*bwWo6kM*Bt&+Ei=^!*$4RV>zizO8x_QE2S8L`7W*- zV?9H1&lA4phAF_Bk`mK!MAYk|TaRZN-PsJ1L6O-c;XYIlaN&RnmhU2-7gSKaLgD$q z#Lw1?Nc+&WQ3e8fMztE(6Qc8;l&?Xp0R`#8)ZQ3(=%J@d^l^}iJO*nyXuf_PTMPkz zM)mj%=z|Dua;=#X6IL1-sOR!w{rA1)_KXv}I0z0#&g;@_P=P{GNzPXXOAsukC@bu7 zT^fV0ZI0wK9 zm#@%El|bmLjTpRMWZvY#$Be5`Y{)5ABf4U>;frx`w>7RbIrRyYkbC?Hu9doOAyyp^ zri}xc_b^cb%@uPTOO&`d8{T~pn`MV|H#S1+vAvgsCbH)l{k?4>pYacxhH`PaNm9qJN7d;PGj!TffP2b%r1PD(nB3X*|ID z)sCo&{TMJcy><%fXT^+_Rw{ue;BOE?_~H4pM7f}kgeNml?Q!*&9o3BUohfVki&(_& zSaA<08tJaf&$Ers49IYHLR5;;EK9y!SPTIJi&pPkmk$LUT|}s-P$M!-rO|N8AnL`v zy$6t@BgeWsW2xYdM^v~H>x|jif(Q)$fx@Bn>&YS~1~URYN=%{9M4_o>rCm6PTJh=l z(K2&3sL+!~muRsj^eD`c+Q(X112<^;QvK5R8mX&D-!+=XNoK~!I1cS3;=4a^*at^n`myxtNf|5# zhuL7YAC^j}A2p!Rp5TZE^&`RG`o$z3{oDgPek-MS$1YhumiUptP9|DNc~`-p*pDuq z#eDau>|WD!04_WVRpF5Ky_$hqM($L~Is8(qUNx+&*%an%2pG?Iw%+^4z-apCJaKCq zIl3q~R5@FBLPB3Gje^i%9e`Svh^oWanLr`=V$95zw^8Zb>w?qOgfE^XwGrhLQT_yE zp~nntFF%6t)eUUy0F_X`(2NaS@}KaGWINzdo&Wn_Y>rJ^Ja`!9(X83ObSp)$iE4ff z9o1*!tmqx`zf19*0R4VIB9I^(YjJq8Tzud7m=6XRSX8RDmE}c$T}9 z>rKmFT0Gl~si^M57vJz5hF}&P5ihsrAu>zlC!c-Jy9!EU4-$ReCX0cQ!CIH87UWYe z0h^nI{##s+EqNz+)2)<5%+jUH`||@V!4NU5B}aBkUVI$QZga`l)A6xbof4QGpl-JY zQ$S0obfN6_g7pg?x$yHc!hw~Rhhgi)-k7aCHFj>e^Yiqwc8w7qM=&Gse-{iDOQ!Dw%78NkoXt-#p7m zbJ90C>`A^s%5$qjW-!ZY_+6jRy5#@SAizv|$9-CuXN_#vSGn}e`?oT;slSO``qvf> zbI78}?^Q11$WSR_fH>Iv-I-?F9lf|H1luJ&nY(+zzuYBpdcJ!DVR^IDH6(bZh8K|y z^j{u?bifS1UL0$`-nqL#)pKj}cdotHI#nuaYpZD8H>E)H;LY0+ff$+}S->Ma46LTM zzrV~6K+4z?E@^?BRb1AmV;HayTf-}^sH|r2wh1&FMz$KDBpKp;jqk9g^5t$Gb`!<) z1WP1xR&~hl07g)CRv6A`fn_C%+r?2A1c*ojpq#o6@K{vcfm|CTPYi<_3ldlN5fF?n zCU-fHDxO3nJ%Z8R9$FI{fI1H091KK%3t;SnwG%>{ZO1`QK9G&JT;-q) z>9c$yW7D%AV%YUJ5MN%>>jYEZHecs|R!y4Lp5BL`+>F{OEew*1;G+LexZ@sXxz0fy zn!QVLs4JQ+=A4sQ_kbnKbg3k(ME-{W;8o4E!<-aDJt(-`Fs}HvSFDLw!11iH&;#jG zXdeuPC&0n4qz!Qs-jRDYw-+-nNtVuRj!)MutdEudgrxt{R6vq!qfmyo zClDT*IC&?#o2s0zYkZR*X`&r|kSiI~#?spmClEB*T7;SW$a?K{VQW@M;f7_8WpEHu zy8eYMU6+^?;OoWRv>$zN>N-hU5Z#s9D$;6{4hI17%LqcKz3h?jp**RGfaJeC?dai6 zbu9d`S1ix&Ib)DVo{^c&TY_3X{EXtOp6KVW$NFohj5_xa8bmo*P}Hrrjwlq%jGEDx zvbE~gQ6v)Hk}|Ikp4U_9it}E+gPYPMPFE9P{8R7wg4#?Xu5=?oARawEtj3?xiaU5( zP>-CLKvGxdS}YuOOc}_CD^cjq1#>X*E}ee3o6TaY^MSugA22`Pj9vd?z3LmZejAyq zkR}Gap*GB&Q*)LrW_(;UHe1Q)vWLlIj~2@1Tbtpx9Gq(?l6DBifhOq5N+(H&;L8V( z#v!zg^I_aDy$-M4(*L12R)Am;^Ow0)gf=M>soz86)!5YR75k*^3M?~h7;T)y9cMcS zfTwFWYuC@%J{&L?Eh+2IeHDYLN!L=)-V}h<$uspip3elej=Cu~`cR>HCny1^lg?%5 zC2D?$gfAiUO!o3fM3+;lzGdMl?ajd=B}dIdMFIUxYHAGCF(*HIvsO42XW{am_10Fg z=DZ$gFNFjf*hLLWw%3ka1iKo~TY)%=h0JUVpQ)bsCgT#pndc^Oo0C1h(3zSl1CbJj z(4NHJ@N>R5jFx}H%ZIyxe#M(ffESN(a@f%h1cIzK!w(q?o#-fVI9r{erlL%PD z*pt2J1ngjhDe1&5j>5+$kg}g@T~-V=2s^*%dZBBSMa>Kkf)`E%w!J$A+++yB>8U zq5^mnMuT)@MLAf$i>m3mL}d_#!KJrG53=5Y0}%IoTIuUzEO)I$Mq(v04IF?n0skYn zUr|s@d&s<3A}A#U9nI7678Jh+PJ9P4hP>Y~2g8Lo7q$->%%JB5Of(zVaLd0OP|6=!p!c^{i{H9-VHtvT~X^=RU37rDU{Ln~AH7 zf4;a)mtxh40qcCncy{X)p{~d4G&ycHVU(dmI92s5<#BpRy5CmXp`p;5F#de>Mojzx z>3N@T|G1bE{4f3t4#-LopI(f;kDJL?c2#$XGBr{8=6?-@SdaPx3snW42iZ^D6PFmN zFbr(4O;I_TxNusO0a$iA?BY8YooW_LM0&WjFNOnGBOxVM3}piihSDA1FRvd) z{duJ$BkO?k9>6sC4*TERuNV2Zq)YRbonaiZtGT_+{NVyMUKj0ADsVVa2YCoO0UM+V z!u9m5hNpSl@gtD7P_s{{IGaoWRH|IMZ7rk^-M55+vfH0iN%N z0b!1o@}1dh~_4;_)oQ50Gre=wlFzw;GW_V14}T4 z1xl2My=mH7Z8{k5BY72vvRQ0`RPAVO4NTVhGYL(5m$fs~>Y_yDI199qQj#Y+W@0;9 zjFjW4If@HQ0CPXpwg)-3A<7pqGIhOP-^bVL9uKz;X8It_{I)Rq({bODXu5OM2Um>M zNiU!xjJ7yChz%tHufvmuy{Zl40fUWFIrKAL=0tp%Jw z#bwycR0MTgUUV=_NG6IBGeSU?i9Yg93?SC_um%R(S*9wA*O&+nQ9d;^!(TCW1>&a5 z{)Sn)>+`y7RQ06lsy@Su(d%rnLGsUTU$O4;q2V2n!PtZ0kC?aKy(-luOcw>aKP`gB zo_r_mCA9|?m8>hAFO%Gwu$|Wg8TtCY=1>M+AK-?^kkM`p;jYJH`jK907@*NbWIQ|5 zTb$_Llc$j=k}B#lGG{f83{sMPyQZ^TbPpT2TyrJGaX?;-&8_mUk8>R71LK&XoQKVM|C3Rg15trE$x3I zm~e4dU%h{-ZwZFyaf1mQXxGjed3t-i4he4oX$sw+MZAdsOtrXbNVT1H#=&cUfyT>8jsJk)f8n*cY%Ov#^=%f*SMPl#* zwaTZk;fhI9l@ApTVra&wl5+s6(lZp|t6hFOpFbEh<^s+Ld}G2}Td-80e-37o1NTX4 zE))YH{=tasZq`Ga@Zwp$_e@}`jJ!!IWLI^A7HYaam<&2u~$$-R*EY5 z_;i(#nY@7O#Y}!0R;#qcgC*HL+{Qv5^0UYEy@n*o)C$ZiSJI6RdsK%d>-{znXoct& zU(lFcx6h*x7eh``a?I-tVzCsMGsXlr{H{yII##q_TJY7@OGQW1$t;tR<%pCw;F=hg z=bZULf8Ra;_HxHJZnrzm&;kv#ZU=q8ghgRZjsln#1SZJhxAgEN3kaIZAPv4hhVZsk z$8_Kmd5NPlyhkEbp%WI~nImD1XIH`@c4LV~+L>s06RzRAfDH92ly{nlWX=omE3E|x zlYV}#XKWk7(PG|uQ&?rUBT|Q2cLL#`(bawk-O)ExY&eqj!O zC+IMayK$!85RpGy0Ve=g*ttMJF}o zjNnr0sCk+{0v*;6R5M6rACr3P`Tp+g_8$U!*1MPBWWBmApg^^*Ht>QXGl8xbNsZI{3oAlf02ZWq%ArU&&gWmGE{TI)}u z@0j-zhBe90L9erVX1D=_pQjD2DL~w`hY0hmkaR$p>bN4nEw)`E8;{{emWEAb)k~x% zO!E(R3Q4ZNF(E*(ulXz9gi}kqV1pVMd^3oZoB^lbII#jK_Yr&iH2=FsuDS&^w6T^% z-j+sH+qm~qbMM2Q?S@9b0nNgh6*KiTh{omJfkYr6YOLY(k0_Ht&>v29l{uvq_zsvY zf=AAp$O2?`{VFi+-N4eQuGL*i8}%__VHIyMnQs9wGns9YPi zyVLO4hg(7dZ0IQd7aJEhYm#9S95irTx7-^*0X``)+ZJ3-udMj{e&eGf#}%*5Y|C;Y zjNGe|Dqpe3d!3Rt=iz7=(VHG=5mhPyA3vNz)uc!(AguvHgFIojK(egzwc#}}g7|or zdu5CiW*+0Fcf=y?Cq7}J{P@&x;4lkn5kkdF~#T0AQ-= z05bBR_>fS7PcDanoCIy>8Iuj*@iB}?rhP3f8%p;;=7?l*arab6G0jxgNtMpKymZh}%~maJOJ`0)1ZV|+ONi|x z5QsYhK|I0YzAxMI@wyN7dAPSkr?r)eLq)zY**?S5zhT*;SX9If!*u}5l=~BpS83D` z;B5+QFdocoz!&SFKGx+a@|pv9Sgd~M2eMRIKMY=Om&C7RAqH!WC zKl>FHWu?zaiV8f%Kw9$@XK8C-MqAddxOBkfJIvzypOvvbt9+x;7cb9@C`p%$8dm?J z0?uiZ<5om>AhVkfxswssy3HJ@7Wqz22KuI^WksRE_&3Qew&ktg9=o4B8t(Rbd|BO? zhRItC#gchK{TrfSM~Mf*b{ChiLe>K=R3b~rW2Y{jnm*E-=cJp#Ro*30p-JVTM>S89 zw{d2R*7@^sISOB#hgMt1!Kh0kiN%Rc+viBEr#k5uH5&RnL?V}DRO7eCc9U;S4k0c~ z=|5`E1+f|EdAg}s z6@li3vOIupkf@4lezF66$2%6&=?fjGa@KGb%n?VpH8QmQWY329VlM>L+`!1tf?5Iq zJN=8iGNsdkF6h3Hx`n)IRydhF_%+$%?}G5joK^0 zVHwS@)8^4n2qHt6OfpSaj+S*rYgEkCSpf&gufmTH2><5g6MBx&n*(pV?uYcDpq`kV zRe^L6zMOVNAQ2(%oyWnb8}q4vNx$6r->r$!Xss0GjQ^WBY-*uTR7~{ChOZg{X*PbC zgqP@an}}bl{tbB;o5A!YDU~S@$&Jna#*Lv;VWeR*-g7U2FL=ZTSIKK|Ch8XX<^Wf%{P#xlISJZV4t_78daotJ614g0~Y?A7M&_>zH=W znI`qP~`!2C}S3}JVe}Ii^F1@OC8jPpc4q$ZMj*ag~Zy}zh|ExIv zDd}o~g+T99#dUOEMw+V(#+^>4I)A}YBOuU{d#l#4cCdS4=Q8$%6Mb?oyrubIE+>8s z!8sxn1~C>H?uVc6Dgqteg>@t%BlV^T0yzZM;kRIuqOz;fJBCCabWIl?X7>roP# zAX6{%>zC{O8F+i5mJs?luvB-dKZ^{`w_>G{>A_ih$SxpKEa3yasAx#=rGFowp|`OSL>a4r(!GP|q$!7rY&WEUh& zfz=_gkbN2fS6Tqr*dC}X1Sedlkg;9RGwl{D4&ZlNedvVrl{ne(f2bZq$$4PO-JB?Z zk$}R3XI(^JR+WU|ZysqfpYapR+XwYcI$@=wKHqW{?NHtL{~R!RQ3=?7luB`MAVT?U z6E9qP=We>ZlSug(`GceRSP_nM#+n_z%&mB{O@t{!?sJ0f<}&?cb>=ACIe%VPx^9iQ zLI-1lb*rk=$!z%|-jII);iIXYIi&;TK& zTKJ@%-@QnTZaAih#ErVg8bA*1vp45pj1pE*diEwg7v{K83~R|r@LFe{nFO#GX(y%( zdPgy}SSzxvX#5m8wb1p*_BI|~XSjOWe!0-JSlyb$)#*LUPWM)Yxqt;ZT(tBuq9lBD zL>%GAV@i%;b4`?CPHfXk5{HX+^3KRo)l^nP_Nk@_dk#-OK_F*ihEV_lK>fccSSl@1 z@7WR0``S(oo!%kkOYqqTTj{;jx;A|0;epEi&2;aeS+Wc0HE=vx0Y5HLMdnlPOpgJ% z{1ha`%sKU>=P1`pp40@?p_lpV+TgHnn{6-fA(EMAS$&2=96sNHSmvj~uK@(?6!zSc zelWgT#bGTHjCAFjK+)$!#K;HPgdwE490MeVdK$>z6=AsgPKZhXpaa)AlP69r8U>_E zDv^dTE#Y4d%|Rs+i;@MBu`@jnG<-JUM7xjgNFSnFoej! z^9-?do-pGh)CtrP8$QERevMd*TqU^p^bF-JI#5JLTLFK=^^TFpgK2=BmU!!h!kz&e zlFB#gNQwCnyt~Iat~ZN+jLq^*XbnK)EU|nXOhQGaUo6$kfC3{crPOdDEW7DdqB@Zx zWAm=FIiOsj(aS6&n8pqiu(CoMKiP#3v>|**qd=*&4qV{lbT@HXUN1?^m5-XbEM75n zjiH+wh^7tH^+M>l)W`!M;WsY)ICKKw)3QztMaZk~`J#B2j_>E*<(d|-whXV2m@3B; zFv!p{cGYT|ES2=eOtc!{x|2$Z@lv8Jeq2XKdI|&7o<%zk9z*u^TqZ{)Z6KL<#8+?w z4o}jBoY0=MMY2@jAB?jg{$+Mx=L1`y&PSL-*1n9$5&AwXX+iadn|voc5P`{`Upy8Q ziYhfZ6M6d$FdA^;aZeKJQ;k^0<=gJIF2jR5rpfiG0vZ$hXLcw--RaeZ47hu=s`;8a zL?N+}k4r)V>#-r(Sv>j1ffSwMi~wSw?tJX|w&NO7z`AioS}} zBR@gXlWpy&bQlpMTyy^kI|9(g+L_|t;GISLu4+h4|z^pSHK~6ks&BcrhI!uf+#>AzL+Tj9S<)^$^3UU$f zdF^Q+9tBl5lqSX)d0@XCzgOt}j-Pzzi1S)27$mT@US_`$&@C7XKXe3COjL>E=W$0( zy&d7NayB&J&1QY4&aY8JMv$w%Sh+KJ?b>h}Kd|RIa#JPAIh)H)yM4sbC0~IcelG@@ z3AtPzywPypLbUgekHpb7E|GHulD5mAznL$8{}lZu=Z2xEC(hN~wP^atb=Li)p9RT6 zjhB2yXzDNSM^2hd+WAC$l%m5+YKX?I3?V219b>2@X}tp#vo_oBN2TSEKSz!i>*9<9 z$IodkO+0-EBg)hu3UivxP`|_?#0}X|(QD%r zL9+ot0J0=5#TX@aX)@yA=l$c0ZJ<#`oV=fo{@wFOqr23TgJdXq$p*gtw*s~eH?os! zgHs2@!^RNFYOlhY6u7AK9HUT&w0zyjNR7j^q@*IoV9C34S@b-pH5aQuuv_i15KCVd z7>O6@KWjizJY3kMQX3+{b4OBpv>@|Q1a6n-T!YNrEB0rm-x+3T z{*3_e#da1dh61~}ND6agEQQ222O8+x{~~zCLUGUL}wpJw(CB>1+ssw{6!*4||B=KZqib)hD1o_aN%@)J$$T1U&~vWmF5 zN9n`0g2|#otjS$_Apj8P%Y+}H4F&N<;ERA3r#Y8!BF~GXB`UiY3Xbks|K&@&p2}Gq z(OPdv_t-(F%!c zXo~9NqkLz{j62CHcoklup*oYw2PrKgU(B_PCWdSm(%nj&foll#Um(v`pxsrxk0?^J z44)8~FJ4lz2XnXdTMhJFT-I~ej0?qOIQ(nYQ(=f%$%7*4X9jglvlLnTZOa@th>=X=IxBs*9ny1+3k24sA; zWp$D;)R3$Yij;~rU}Kvy9)Q-zs@6WO@#{=czW9?twn0?91w6FrcE&_L3Mja_=ot^7 z7)38L_y4!}T#tG08+ZF72AYZkn89beA3O9 zKSVQB`%aBJ=V}*d6y~uiFAgHY5H2m2=fZp%p1Q9H0WJd%C9JAMScG)1L#e0^)3eABZ=eSau>0H1#ZYQI_twM+s1m*p7Si5(g z;;1tQde(lio~+c{+mP2ej|4>;psA6I4-}ba$bQaNZHLcxL>)L4?Xxb$wCoCHX!!k771WR<%(AW?!vqF zA$Ie!GGEvVLfB$pBt#q|?6<$cx;zJLhYARr)|ZEctUo6lQ`b+?D}I`u zDu6HF6}*x$R}C~-Tci%^*~5jodp%5c>?E~uNxy54Og!5wM2%Ml_`_e|!dSu<8^@;~ z_cFC>7pmJBRaw&{aLpt~kMXpooNl7X(E8-eC0b_8sdUY^Al>qP(#B$8yvY2aUW>(8 z09tRW5kgC-_*f@1&i%|fulM=a5iR5Hu`09cue3e&sC6KUzvGT#{vBf9(mzvv z#Iax&U@gc=EnLFeQcnzRDmDBz5rd_$erLWr`Vx?PXzI?NJ&xw5#h^w|Z|b$fN>NjXgtb z{jpz^&IOIY!bq{9Qg9p=NcLKAzU3v4J`-{kqV)laSBY}}{VcwyclZoB7J~ChZXeXz zrGkwmd$`Ozu}vl{I~#Q1b7+5(i2W@;Q3H76&QAKJ<`Zt;22&>)sLwxh>a!NI_TD)$ z6&?aPBfKov@#2CU)w6Di~8Z+HiK{*yAcwm^CnpgiKDK33#`v5ymEsaYBMVR_tY!yst7*r?>c+`>Y+mB zc||f};cMKH;}0&o&t zc}S_Pk=svhLN9jR$D93V2Ny>R2;=ccq!BC^DQMn^fGbvOhZb#=#P6^TD2x1-GLEjJn9dx~1b!W^A`AOB4kSi9RHkl(as5zWGz>w_ zHUo7x(DIT9ews{-4To(175>Fv&K0JcwL)=D5~SHiK5+6?_XyQfR8`LJt)S3{qE6LK4i8WJ#J z(y8V?y5`Go;pF)@lYy9z$Il4iE~(vTDsV{x3{j$7eU|5uQiFw_+Sm#Io~p%{Ygi;D zLp+=E37G;;aRz!R+If>Dt`QfRj7AWwohIRxam=#&Ec^9WL*<9coyMrvu5!S^pd)_V z1}rNBk|nt^ExiK)w*}B}2S_~)Q1y70GiqLoq=IT*MBLXs;DI~YzOEAza;Q=jBK3%P_ zD!An5HtsH*`~T^!kG^ zA7Zhx9sGE9zG47x0U@P{-az*Mk6L6Y16$tkgfx1+{LpRWz7Xy~CJ2lAp#EP443y`Bw++TF@cU)C_gT-UP-(Zb@Y?gSTW;yJf0S6cNy%G5r zbm&$x2^RtS6?*%rVVOsRukWzC&|u7&lPW9c1h;{h?{%R6X01&l8HPHx^16Z;647L3 zKEo-e-gGHfhOx<}hIS1Bq6mQLH)BecYg~#{43T>7!BLPdjn=P+-yabS_bvk@RqhRy zp%2~whaR0Gt0OdDS{{@ax)H6#y$F*5D}xW2a+rvrhbWFS-sWeD0kI)vt}A?1 zJO!GXcfyV-)vFzEx(Jdm+22+0`vCSiL+GhV6%$8&bI}R3Qeg3Z*N5 zUqP_Taa9o}DTA=)*564|0z$?SXgVH07G5Y^w?+}V)NmBy^0#yG>skCH4;cN#ICgxOJgi+kv zcq14JAO`mVh$y=E=tFNGU~V7pX_WO3Em?6nk{{gJVso9tg(Pli(kA`jQqof-xX^_h z-1uiWTj~tSJF?+)i32sw?=^N8B&I~zX54w^YCt83m!jv+V2VlDT#w~e-jlcs7E3Rw zWk%8xAUlFH8_pySoGrYd55%%?bjuLYuUCIE-54D-VqTIIAGr<(hv*9G>$U{zBU{oR zXOLBVorg6pDTuNF-7vlF_I%v_P=>4;-jp)8L3`m^!=cw!GG2V3@(-yQ)WihWj&5yG znGjsPwQBPSyi(;9{o6>QtqKepB0o@;KHtplx9%W!d1{Bfuy@UzdcjK=D6b>QfoI$c z$zn^lyk_9UgArIEg)=l3x)Om`rdrV1cyDxQ~{nXNdpm z2c(rpR@n7c)|8aRI6s(?W_g4L8Jr(7Jj4{f*(e|>;rcm;Vkj7{XJ78x@r*28%2S;X zCn|_zhOmsd-&l;Jo%K1rdt-lsRj8~9+%|`2h3@HS>j(*G)L?*~&_78spyKl08!6VT zQYJEY#*+zvEJ%c*Y7L8WQ>1p63_z}gyb9xhfAZcFK6-939#Q=-){$}NphVfU@Z4T{ zxc_iGr3wYggdxX^KWu+ihkGnf-~C^4vvumA*Y^{$ETG3+4uKj(qKBA2Gs@t<;ZL#u<2rW1uMh~EuLm;jx`pbXUWWoZw$EV<(bR;qjM#3qEUt{fZpr+O3 z(UuaD1~GKpYFt&OExuEAxA+HJXd91WU|~EPcX94#Zw&fI-Cb`XY_;rRs6`{O?3iVq1D{xpf5bwLmjwV~%({htDCLO_m261FRUD3#rR zx^*Jy$%8K4a=_K}TZxs-iORVF7Hg~HAiYr@)KhbmeG<6YUO7^wHx+DG8d~~&9^1%h zs;;OgQp}MXJ84`VrHnlXdMo#tDuD86qpti0ejrr&RtSC*+;Y4>FEcI`d)k8y*@;9yW z3iEFVq;~iI7i@gfbJV09HlZ-e>-DIS&H7bJx69$DGNF6v&kWG%+N5lX1LGjvb$cch z6J*()$fX^hsL4b-TUEf>w#F=<5S3N>nJU+hu+$iPH|^8U^)~;YF{T)uA4ToD%do?G z4tMe|IZ7;l7jcTghQghD0w-T+tXx6Y^@>&;;>O)ac-@Cw$)-4@u;3}gtkDr}D#0NR zjXsR!#GV>DTxthxN&R4SOd7wIj|8fac>)>TcGG@LRUgsr^ zO*4zRva4Gg=@^)szW7qbY#Sv*%dqmL2gnFpoK~ni#>q9S&~N$_DK)SN+0lod3Uuv? zW4NHB^tTvR|2_J|OezdF^0W7<`|&y)yWG-f(~gS z9w)jxH=JEv8?mMj;zUf-io^~=jr0ZGz*76O9L0nUr5faPNla1VV?A}z(bjzXHh|%- zot6Z4|DvDbi1pU7BQQT4krS4``c~MU`mr``w^l z!gQSg92s{-XzG~xZ@KgK7?8Hw#@_VQWY{Nx(txSw+=Qo>z6n9vPM#)`C2!~{%)Z+g zt2D2RZwKU_f^6+rp$`e~;taK#ea?S?x~H|}Y8mA1CW+nET5F+sXKg~nlZqCDet;J- z%Gmq7iNl&i=WEJVirK>mz%$7{h8$vQe{;E|AqDQ8>C$cAynR}KO4~h2B)=joh`58w>%8@s1-k}Zj7{n>q>LwNh9wcHAo-ufD%^g5` zXlgl_LFig?wEl8>w$qmXJg;4HtAp1sE7*;YGKL@_=M*PI{RACcIo0e#&ZUY?R!u{_%qt1CQCP8U>{rFiU=$eetP-#HiCHy+c91Gw^j@Smnpw)~(U+{{6nha0TF~AMiz?DSB?=3_ zPKS(dxlLHTGE>8Dmw@M2m-lxSSNwpKpvN$X>uUqMgm7K?6l1N4S+N$;*@hq-+)%d~ zihL{4nQo+l^{Oj3Q$SjPbIJc?B{m2M;Zds3`4ZwNoIH~@?10D_2olf})xe%~VuJjw zQ^ozr6`(JR)64KFhl)Ji05zY;fL;2)`DLU3Ys%f0|98+`O_%`fABnVf$e};1CL_>?u}THPv&IaG(z=X-RSKw- z6fim55_auFLk_oKvjjVP$NxFFvawF!v{Mj=9#i>PqOW0Oi9O5-^j1)HJiG)dJ^t!dufj}u_^jhKIh?=wn%5;`qCo??3z+EA}h`qiEK|&8k=2B@w`m8wYNM6f}&*&tM<&;aKaa?0>WCzYz&#q%kC@`o{0SU z!crDxq3c20Jk}y#Dl^DW63@vmD=HvHl!p@LeD8OeugWe}-nTbHg20$z^AGUS{dY0p%IhFhLx$fc5cmpwhg&?rn_Co*PGPCk|P&`24pbfa+i-Ac@3N%{uS$ zzyfO?lwhE|+Kh#b>56x&msNW=zW({N-mxe)A6_}FI$Hj4tyI=}jyhI4oTPK9TBPUS z=uDbmgH}hcNp)OeOIqb4=!&)51SIvXk80I$D z&1brd4ZWq?N_%>FeitMY)B$0j3zOVe3?a}QLwY?ZN#dMul}KiX`ur~DmU1rmaYo|T zdo=gF)hP!b46@8XFW+lqwOK3qk5dFOvNdd%^DXIvnEb5CNpNacd|%86CJh!FM+RSz zj!wN8M5W$+d8^dQHvtXYa()g-Qcv3PYArqVSzTCmyzZ6WO3DCeA?a{l2=={ssI;b3hNGL%eDm0xhD5fc}Z!}E1Y3tCqcdMmro z{RcA5#7ETr41I)WvEN10f2`$^d*z>t5vX#poe=uXKBytPWS>|u@;141Pi1dVJy&89 zJ6rjxLY%;|9i?$M1GU%ytWZ#EEK8VCiN?LqYIvr#FsV{I{FG$UB-&}+=NiFRpYf4s zQyq~z61{5R8OCM<h^+O-Y$d3c$RwH=0D} zN}7t(XTeN=%McW3+Wmwi1$-z-WEVdnUN*1X^n1Nu%g+hf>wC*9^xs}&9GJgr1k6nM zaQp39{4hGAcL%Pu&`%F5#04@}6dbnsY&XjV2>7vJ5ukF|cH{KoT!>nUE<0`<&}+a; ztg@-MYfS}OQ})a+suI=>N1H&+Ur-TEDZu47&q`q<)ZjlNT9zMCql)WZ>k12uab+__ z?c*>|R?k%$rW4I_QD6dv7njkQ%WR0ca!w9Fn{cJ=_k{^=)=E7Bz(bo0ESVhl9J9+{ z`9R6@nP{X5wRj-?N6o`b`K_+zTm*+Z6S!aH`dNJcm?TObz~Qlos1ikQ{k^a?p>Q3O zZvR2yHcxar#uk$h%jxCo6;fznG-^}-|!&Q0eiC-~5wQqP#`;t8>kY2=-2K0NU} z#rt7c+6z^)ozTDn^gAhW`3ss|9-MAr3wu*s>lA)s1wxdVErTK#5k#1O>>3UXGDHbJ zsD07fozQ)8MLZW$rdVYr52~E0L0s9LpLdUC%~_+QT=F}jC9W1}B}pnlV_51?QcG25 zLcT~rC`elZm8Jol?k>bx4Dsw8reQTfqn50x8P=8%MheWQR4`ww`E?uJnAkBMwNc>S zWX7e>ELq$d)t$a7DfWML}tE zDP+23Egh%5fZx{UB#x9ayy#%du+*sT6Yp*nlrC%cBDc@JI!t1t`h7D|!>|njoj1V2-6-0RQ?2jn4nEpz_ zXkUAEmInx|ayACVnzpef=T?Q6%S4>>=KX!uWnkgq?cA+y#AYpkV9f58RYY; z{vO7(ipG?|2;thWdggdi>!Azm#6Lj3-+_=;N*z1Ys1lVZhA^#cl9D{UgA>#qTyHN> zNP2)zu-iux)~M7{_)I+x*GG%NUz^4&(NL3|7>;hlo2)Tm5A>*!R!oWR(pL*Y46kxs z=S&xx(xqA`4C1egUy~$5KLhK?@0hRAs=-8b_J(Ng&Elwoil%p$O^8^9o}DhZ z>(#IeIE$i)etyUoZfH+K!;tUtO;1OUvwnDTVQ+K@d(g;pil+LwTlGa2(KRC(+l;TB zq*uVM@F5^V{CQ?bx2 z&eWZ)^E0X|^1CCe1JaWNgQBlTeklQhqUh~`fU0=$ZO|m|(1BbF|J3s8y_0@B3#caO zAaX=ah?z}qx=D}?aZ6xtjyfZ?$n)3fd>&nGn`T*%zrz|doEk2$zzzjWW%;(d?R<%! z<6A8qXngo4;o=v#PyDY+Av;qnqH%>XcAsTp74SLCH1Nhw5><~DmQG_(7_1A+c8Bfq zc*;q!u3>-VC3!5J;t_w|(;FuoZ~K7^R7Kw5D0D9nN!nSyV@;Uhf`k;}6R|h+~wB&nAGkGUjs+CK?y;Vr?XzY)VD9+D1*YG$S!rr+f;I5d++A?I= zqbA~pw30gq{j)*TER2<4f7As?gt_D`&*km+1O=JPREUS+TP|j1(IVV9hOGswxxB;q8&uU#;axX zyHa%TA$;}`%22>#ZWq4p>X299queypksuesWUHaU71o+M!=i)OYU~d|7MD~_AGE`5 zGe)!Nv6qC>Bzl2dO&W*l5r~V5t+Vp3t^o%z6665ZTjgE7to+J1;(OQfz7(dn*n4&B z#z61)KQ36IOS2xQt%U0{NJ>rsP_mLLAFz;@>!g~{%(pQ^UIow)&GiA37ZYRQPW z3KG_W+zQptGB79VKfa6HK7}XTz7(GlWG`)>8Wt4!qJUjLB-mOFrcuSM8-9S>t?Hz< zfYsT!M@m8t_KOzbm%C%X#?#fNVO&VQsY8Px0>W7?J(QlJNCD3PP^Nr4_r&s?+y|at zQxe_75O`V_T3NVF22oCS$dv5v*{A>RIy!T{SLBq9how4fb4P+0FB{IAb-+L0ok=N& zFeyjndzj6XC!+(}Uoeg719L4GVlLV#1iERWOi@>6u;#*mnSfa?NDJzh!@$c5rAaBT zDD11WO2}ZEH%J-b1Q|vQh~(dA>nxJNa~m%jJ!xqyU9{{G;^dyZ%q^0+>`GV3PQcq0 z1^V8g7iVRMF*jJP;~kf0Hhm*4^C}F_LaxA)?AXpBXUG=Um$rv;%2#>e`_b4;Gk6vQ zP1w8V;0+`$;XW()j4KR{3-en|Nxj~$2NMII9!W;Rdv(ku-?-$JEBCbvgB3n$uADZ? zoyli?BJqze(l9C>TzewF2vfYM%jr8+mlz*5l6s&yT_#k)>sGkzGlQhFdcm)uPK-Qo zA-IGdC>w1Jy-hD^llVVX|{Ng-HiDIr=gT=!T$KsX^a>f<2AKn?&dJPXGS54O21{RIQ;m z?Nk34?3H3{2&<>wV9!Y$A6Z21cCSe*LbdNd1;(WO}a?? z~rWq7MMCZZ2_Qh2@hJLy8j&2$l!LW?-J`BgrdR;>*S zTJiM~Q7v~Az6(&o^760tFRi>$iG zVn{+yt4sA?eb56o!>nBCben`Yq)j-|b@4$Vv^pA;4@G61A4jr42Fs&PNT!*O924d6fPNt>&bO6D`$;)hDtV1pu6Y> zbgd1wQwe`RP}Z5)6Zond7|%6wJZiEhK0gDBO58Vn;kB zygpga9*aqmV)n^B*NE>Fi2B#qrRU?_&5PLL1SocVm_v(V5Q*m_08${!za zMHa6xsujqz3VBdPn|~2{+_tg;*gf(C=Pax>=OAS5N!H_1Xv> zai&-JTPmaa4jZeRjQQ?a+)h@hf#HN266_5KuV_ECJJ`e&Ce`X33DJ=2)N3mu2k{y9 z-fvDKfpnpaoLholyAMj|ufgW{Lb&1y*=s|jJsB!nO)*5w`R08tFG}~s_MyWOy5Z{W ziJWeJlAOr)S@)2jK}Fcg2ee)fl!t2iY}XE@+p{pNRC?X_zb}hvd3+8LYaLnGO>Y#v z-gl(pzgA&eBTlSYwf@wadMsoJRv_rzs@;X-Q|R*rB_X>{yom{POt4>gpfnkfM+Es| zV?S|T2m;LKpDh8mh~WTJn*eY9aeZsC9z4X8@MR4W7j`$C!E*Dt^ay*8ReozEBi~Ng zYc{6HFZ5rHfCr-}Wn;lXs&=z;l{8$I+*79`j-j-8L@kg7b6sdM+%CEjr#`9L5MVnf z=g2i1YPi(tF-7AHl+(&t=kQAliyU09u$m?Wo5s;7ePhK0Zq@DK8*(0&*ImCJ_B$~t z!H(`E!~5LC__6HR5=ywG`15wh4vI;QXPoBI%{p8W2?Yt&H<#eVw5W%aVW59yUR{_CoWC#fL03KEk?C{8)Y0C5Y>}GbSO?btr=(0~k*FiD zM#sj%wm#DBe5or`UP4_xcGn$#cWk?Fx`$taFrcAx9KZ%t^V?gS@j6|E#XO@QXQ+b! zjA5qPPR7qBe_jPI5dW-Hw`xvF`DH1U&&m=QmO(DR`Qi!ftH_PQ8`Y%eGa%Lp<10evx7{mjs!-0>|U zRM7`nRGKDAQ@E!zw!={=|f*RaJued-p=e9E3EJ%im!`h`_!)Z$~)l3|9IufQw= z75Yb+opt!Z2+=nW%lAkj;6uyfIL)k*{Yo^zSdyF(Wuc`4wirZWn#=lXG+Uz!>JTgQvr z!!I2@rWLmll3o;m)^1i#iq~bc(TTE@hmyb+=5*u?_L9`@W;8I4~4 zDo5`D;Qf*-!1{SEm5sa*`=YLVf{)#$AYaw;Rb{}dmB^y0M-a{j8{6pJh;LWADycJsr)c zz5u_f9XGVs0bU8A|1>(D+whzQ#%p=R2*9dCJIM=Sx2xgM#dlCmhy;#&ktvzlk|F7 zC#{noxh#kAS8Xm4tuEhh8W~HpAFi^7Y+uG;dsvWNH|V>nDMK1F_hVHQwmQomKYn_y z+LmAc))*QSt)`n8P4sR5cX;#c1#dH~LeE~g_F#6zZo*|?&C`s?Wmv^I)L5q8QNV;t zt40d2>!D!w_t+`_)lU|pFI9DI(HuYR>skk7Q|wD8cVcPXgDjK|C3A5TT&l%*Z)y>k)o`O$ksar`ZxmDk_X{^ebwsTg_ zN#%wd$55V)3dbHRW!%zuX2+v|%pTN55d1{PKT)#bVub0|iQBqk8oRWbhfiz)6 zYJd~S^5~|yWI+S{TTva>nggMSA27VX4TLZrxLJ^)NywS@@#+@F$KT7GZj#rDrp(-= zn@7dY$s?%KF7I#AVHeX=$bzLOhaBrQF&+Xktr5VUR6< z^TnM@SEGtub6zoPlq@3llEh6xz!X%RyG@mFhF$-10E&5Y1vS5O@C)`}k{Li+)H-Fq z7Lm@EzH-My2Hqsl!mNPY*@(>Tl`l5s7s78ZC$JyJc^EmGOoJMHwhb*z9aQXf--Z{E zL&c(j*SEVhF22u>d9Z@^2$pY?6JGhQK|A7%R&xW5)59(G_jlRS#kfKpR)XQJGro=(?FcY5keBtvo3DrG2Z&(p066gU~7 zdE7n}hcY{!rhCD6kDIr8eY68xa4R)7hFN6~{6a0n<)cT|HV4gnhOi93!_2*#M6U6R zB4~&TE>j0`vJLcpe{%XN^puvX;ZD0-cuc$()J9K6(rqO5R7!=ad3Vv}r+Nh{GA5Ll z4y98+9Qbk=+}-NiB;{Bpn*-0@vvWnaSFMyU(BWx=2L{2Y3P!(^S<}D#eSecwR0goZ zO)mO2B!p-KB}d5fi`IvNpG@Ya`LKTTWeptOV$=~{k2IrhM3Ak>SHu>@{8KNCiuB<6 z$tTwS*&mYd;d3#?6KQFDftPo)^_kDL70u150+@kqVB+*Rq@Ogf zoLDhPV40}bkkf~3ee3dAfv8|xiCk6JK7N&OZWdw-CX2>;@wvr&8Q3eE0|sr9m-6fp z#xVWABqlV`a`;x`lnySB(=JoAC4M^_{DGfQ`jOv7nK>DOiP7Wn(^d&dtI?wk4ya0Sw_`o7Pj3tb8}9RK7E zqcqpFcOjiQfG(_L`8o5EtJ6BWfBy4~xD-xlA(u-fX1cii zdxfeM4CR4o3q#D6i7(r;0}yR2?4ux7@>6uh?LPp!ANk_{{1Ilo&+?qrVqyT?DhGT! zG!TuVRqNsB80+bMKEfOg5ppT!dnQZUlzWNcSuj*GA={6Zz26&0xYydk;!gz(P%Zoe ztdM#X-j!ejq6aA3WhFuc5Pu(zftl`q$ix0A#mA9N4xUxRS0TLd~Z>x%yXV z(CAr9-Nq@j+TjL06H#|K)PIbYOl1OIF0`hUm#8xrCp&9m{rmza z2({*;{PKykIXsDj2>!W4jn?DQr8+ra(R_Q2Quo>@E+R(m{4~Xw#_YFJL4xEdPWa;X z1lhcJgAs^w0RQn+p59lGC`=g1bp+3{I}~(p@XUCa`pBH@c^_)SHziex_V-ls@C1qC z1S^)1D7fcR)n*Xa_~?1GQ$m)zowx>{yZ0j1aK8o&Y|H^U7?z^}0#wLu)O@3z#;bE$ z^$AaFXuPs%N!=4>InNBPG1CeD%P?Pg-?mcZOzd67k*vMIgq%?VruxcScJ2GzS95So z9?#Q-ohJ>D;urnI*Isr308r&c%FyI0_}XVUV-*UJicqe|hb%`I5sU<`oGbi9Swh24 zF^+ZZec{ti+PR4B76hu&{iBAOg3V`^aO@kSKaLtY$t1$J1v1{>em-`UBgW#d1aU9^ zK7I;aq~CUw=BocVP~NMq4>KfZzdW4O2uCenAp528W-B`Bz43}uvUb}ipi+a8Meg34UiHq5WR(TA)8pE~^;IRO#Sv^d ze`_!Jquwgl=YODx%S(p48?K_J%tZe^n)`%>uTk70GOo}PG5(DhFWn5cn&ev5_FDob zv7@a<@Sq!1o(A@BneWAv@eW^KNh6zoN90d+MN{Y9%hQ z#LDr}g}H1`wmQVWeabS?Gv~5SHpiBK0~{!{EY%O9Aef#Q0#cTLN?(zqn+V~X+H^4K zDxy>9Lvt>nl1xy!xw=z{=7$!Pz0qqtJl!0sHuuKtA$CBiy*>2*%vG4bRypIO8$x<6 ze;CrRvq__f3Edexi$+Rs^Q7vQft*4}157HCR=Sjn(_{|NNls^6Fgd~&9x+GMwD4eJ zZYjviYoT3>gM`MBR^&v(;~Y~GR?5>)rkch`G7|y64Tnyh-GkX9O|Xc#hK<7KyHb3w z$*h~w;owW^V^E9nTwphgcz`^5-_a5^^lH*B&iH=c^+^k)tLGy_gWS=(!GS1Ax$ywv z%m5Rhh&{@l^3R5T7E;WoDkbT&;dUvMRuhI_1Ahx-Y1}$mSj#}XsFo0-6;Tw?%SPd$ zwwnQ-bxa2KwwbL>G;z?Y{A*k;CpqWasOk=Kd=*~3GGLfJZ#u9jhwDRGj7@@g{AP@;G;*5 zvO_YedV%SwlPc`Z^t2QpPzz9bWL1#hS0Mw*A)GSqcyY5H6n9sMEtTl3F|I>-;B4+a#$Vm(Nu$4T z&Hq-t-P6?>zN4$5;j^F`XmL~uI6O6FU1byt*nV2>(ob16P@(Nq-X*B^cJ5EDI5WPz ze(9pl;M6Q3KhdtQU0_2DTy5hDNb_Z3+H$Jt||XdJqpQ0hAV7 z4eod(gYSjTKXJd*B&W)=GX@uGYNU_tX=XL!;Y3A$#{h8=&H}|2hbjlx;;eOb%&aZb z(n>c-Y|zZ8=i@mdMTyat>wtUb*MkBn*{iQCJz#E>34-IUc19n%kZxg0U5vjpiR^CR zzZ~T{Hmmw$j9$wm7|0TF_|!V@o%JP{hZAi7&!Gr23`17eREbZM+&(`Box7GyC zQkR%k^14BF;1>djo$r-qs!YK4xXc`q2?TtEj00Bp2k+y{ADz8g zJ&s>z#U)A16;OBYus0ggT154bqXqc-o0|lv#IQJ7kC=z+2b5e$uq4I zNUWB(Wt^4%%vu;0g=t>Ma2LQy|&P84iIl zo;1?)Ir~^w4M+E>oEi$aT?mT!jKE`;wYFh3Ess)OsTPfaSLgetrrDr1C&Qw~Qo6A_ za}`av^jEI5H2AkBET3a^?Za3+6)a3{dujt7d-TRS-CZmLv}>mxZ}8h72Wv?;$M@vP z&#cZvagdejgVGVIo9{X}nQZGr+lrm0J7ZG2p|J34Msa&_ctCO>GP*m-FdEawUDlbs zHa6m75Q%d^6Xql0Xm~H548AF??sxlz!sbT~BcmYJhV$C(p+jJoV^ZpAg$-6Wuqlr0 zJs6ODI;B9A*pKRVqb7)8hCOW?)oUUHeQ`*nTZG{L+HY~2iQq7#-#R_$PktGRgKAY3Bs zee>7~JMhVN4|(E+9X-lu`yz`9&svy9^-=q&Jn@CIX4$4YFxty9d?X6O&xDK)m1;K) z!xBB0NNB|+D1aKn{GA}hb3e5(AWeP6N@$$P#_35xnz;(bLgqE;SvKPKho;rCf!L~6 z`vCtx0KlqL7NO`rd=rkDTeerZU{wVr>zAp0AS(X&S&mmQb{W5^xC})eF67nb)#H2n zIoRA;$Z#W2T1Rct&7$+1$xJ^tHZvI6llwxOS~a9tEAVDv?v?Wntt*?jm(zWIa-&5g z`1iYwrlRen{1!Bw#`)CKMbnd*UKqHo9+E?mb4s^(EA`}Vxi#akf!q$ebk+uH+nBEo=)B_kr!A&R;j-j+5P*^a{> ze9q)}XSy{Li2sL4&ConeD?wbFOsfM{7H9Ux0 zqXT=O=&p^m6sBlc9|a7sREUoq<~h&SK*HyQnTuIiKW25=`TBujb%UehxUo}3cAgZ4 z?(^nv@dE%kyaD!N*0i!Iarb4XK%M8xt78DNe>2tlO62s=eBL?jiLq86{jv)2$HoDKC&<#f2?Xc~J#F|3TQ&dmTkEd!064L3 zl5Hje9lGFn0ffJWn+i)NWRMDpj}0Thj|S%UJYUuGA7^mmu$@W>efb2WbPkH^c5_ub z1rQoeG12T`qE2AOBjV7S5ykO1!-uDM+{R~ej>1TE>AP&5d>^ndW4JGS2s@ZjPyqV- zZQS7-f>39d^0cq)JUs?0`ie@?m%4d6w^^HU1o^!Xp}Vst~t>LA}E>J zKiK1Ly|OKr)xM=q)*7x6=NJm!+hQX=wQ&LJ_|Zn>rukkmZ5xe}Wyg1- zU~pGQ|9Ae&K|CtYJPDL_R%|R2=i+N=XG;kw=%~!EUZyzK9$yDa3rxu&kwQx7WqgfT z-F*aX-iS$N1JkmtnABXCyf>s}sS@N>BjC(~j@O-d)2!rHE=eW~B8YmZf^LD%^H&Lz z%^W}r8-d|_#%J4ADx|Ri&Bp=704J*}1Oi`hgflB3fofg}K9K1eZf>g%?_4OJv}q_* zfTOjT+#Ef7=+j0ayF5@hsXn29?Z!xMT%A!E}EeDa5Q%a=_5>P=wT z-}^taaP$dJ87S+7yd?eGbRD1RpIaO;ViSnp)EozGCDBYnoUPR~@Ix}`zdM$bloLqw zj~-i-3$Z(qItQ|4rf~1BUCEJ909#e>umdANjNMyj*d!)kjKP3Ck=_02bWg1pOh)g}4#@Whi zf~#4@*0<6CMpNNjU`gN^2UatoM_E2VR>=^54|k8H5GIT2n&6ZKY3_6Zh)v*$^k7HFiS_(vQ z2z^!y?K#Conc%TkVwK|Wv;+RqwwRbZ+qS5R&~=%FdoR@p?N5TZ8zP;JOMwOo9R`82 z;JwbT+fvT?Agtr!_-dO{SjPwgVL=r(C^L-qVk~RTYFxL6?Zq1HZ2#C59W^5069%8%kr#@-lE&I7vguKWwGGD6o*HwFrDaS`d{XLjo$?ESVZK<-adKk5Y#SCW2*Gr z_Q0gh(O{UVw}JKzDUPP#{*+qA`dt_RX3?^W4XlAD6H%Rm$8nf#NJh}fIL!L0q_{@{ zDzsCr8MoMMss8pvQ}omnJ&zlKW+Q8$>st_#W6!LE8>kF`3b@H4Y+n%Y2XlD1s?{}d>e02OgDQp~P@>p$kh?35XyL1z3=doj1TBC?2f6f}Cq*B#UY# zKOkbziOpYbRnU*Y%~{zX$el1CL^ow;ZdonZ(qfCIZKEM(6kzIccjs5KbOR5$^_b|^;sEZbtQb}u^%*~6a-2UXcvUb zgTyOL{sD(6zPKn@W?C}WQo1X{X~&jk@RH-R_}m+Zq7~&`yEW%R<7AL!HdV{D_%<`< zLQNsKe9)Qg#yVy#WM_Qs9fs~*@(I3}73_v^veE4(H@DRVtfUm3>a~TF+|EUv$ zHkod4<-v{T4j|lMjW5)-C2zRk1Q8M#y@MIdz|6fF_}4C$16BeIrv8xwUIb0PfD2Mc=~wqH0M7EJ?OE8Ti7wK zD#w?L^OM#{@1yZ{iYM3A-da?P4=Ru*)(PI2WEP)5sJC0|tHX1YHALPeYiG>z!vEAo z`|j))Ebs`BLXbzvm_NHy|Bth-gDlvh(P%^}3unAG)UBbtY#A;to!}00=*gw17fHJS z;n3ThVDe3y$!?t{4Zt?r8I+zjw^5%5k2Woi$bK>+{9h&ex(@0rN@18#`^g)=rSpqM8n?J!jY)ydX`2S^(@cs$`-LJy~RWBcL2y-oLMX?`Fsa4f-U6v%&4}OpMV90cuf~(eygbYvDsj@B7S6Tswv%G;NS)P$>~ud1+SP zblu!Ze|^ee*3-cWr>*4xf-uy}SVZYLhX5Kyq%y z!t~0(4sVzr8|3sFH_QIy59!=#7_Y$I`yhMIddAN`RyoDCWed!AwRgkWlYS436eZA+ z2(&qA!^a5TnivmQf447ZzjrNqM9V5g;@k6xREs zHLhA%>o7|^ZkSs?w<9<@Hr$y_ zVXo+mG~~y7dpovxTvIJ-VBMlNltYv5WUxaKtVBuaVLgh#E z_eBgglT!^fGtqQ}SMD?mCK#qOY^*9UJe@+L4ZT1(d`zFt5+Nq$0Ts9L*{A%Mo(B^2 zZssH=xq+R5lU&_dl6|iw+27~@p_Mjlx_tHvc@yQaOaT}_rF0_@a@4Bv9!6nZH|ryB zxshr@bg#91u9{}~eIOzAAMjsBul)=iON1=A7Wg;VgtkAyC-=f&Fcs}`j*w_>nZIzhR~|h#77g?8Z!*MiMZZBc zmeX!4-@^55uKW={Z;=t!p4Db58maxaUvpNDJc6Ge754!i@rkt9M#p5T~3zn7d`rQmpv0*#LDN^+}K(fAq~F{x1X zy*No*S|s(&MeXtX0=LC#bU8uWQ&9KNS-=P-nojE^?2h3G^}{%>Z(g}_acdTS%tO{9lD@5BPdX}*(-{$F}a~2SA zm1VGINg=a(ayf<}7t!D6b>4gB*U0McsrEgBUfcM}K|drZ(CL|P(jR5}`u;#);Qn#F zk5VJAQZX`KO4UBPs|;SKO#aPgK*`&8R3#=TH0~PP9H^~B@Ewxh%1xZlQo;*2m|d;0 zO|Byc#H3ly#;{aQAP*K{z_j$&K!qM6o+ckEqp+zh4j~S6ouh7nO~+5)Yu}h8D0e_{ z+5T$A(i%=d(PeB6zR=;IvEh*fV_8Mzf@v4HKNASkK(`+Bys4EctUBn;7}^iQi)M(r zlV%LHR;xZ}QGo6npBNVm(Yy=>9?*j6puGfe^dM_k_)|9#zElZq)NG@DX%z$713HE7 zDU-S)?Cyx9=$~hP%UOmPKBh$`pxC8&xL*JE#%OM>4h%`MUiXW1K7-GUHjIhmZZ%EU zm?_{GlmV}mX47#?Krjk$Wcsy8Rc$e}@|X=ML>A0Xf20Q{r8qT zOq_l6E(=OLjqaxMf8%rxLgG}bA!b7=V!A1Yw=z|OjhPwZP#Ke^6P|=yWUWxF#NPcj zu$slIn{2`7UYd*t#Pii7z9UOc+8UXG=HBE0pQ$}>V~nifDmRjz2JUj4U_6@t=h)E@ znXvOr*=sKwFyR@m@@By0J+_4h5iGbkA z*Q<5O$c7`xtYg~X{rFH4`@z}7kOFS04SPPu>kPIMb+_C!uYKQQ73=|}=Z;`89Wrt8 z_wNMKpZD*DNlb%4l zr2Wx&Oltylec?wg%mB+`&DNCx!r$5lNu$v|KLlp1aj%u9NmdKxO)- z<=n5|rM!Mm>7U#o4E__}AvOn~h$uB&Kwl4c5O71ct74m$f`G9Hzd%h&jb8&!HWRjC zoRVouDoql#v#O@~N|foDdXJO6Bg=sPjV>;yI2O21P(Lg< z5A_n3^V-r6oPhPFkeIxEO+d$ao0R4G=ND{X|5;; zo}N)UHzDtdWcAclo~}{RD-SOhD39NNNC&-8CSvQt3!>6yv+a#*b_9>jj>(vn1)oL8 zxf~oGHkR(~4^EUX0_UF3pX>z22g(sK)z7N~ya@A`DajNqh6G#-SRbXaXPp?^zR`Bf~Z-KVZnD6AQl`+elY$20&Hf1sTn(rZKs7yl&1~ zuV!q=&Cwua`xnTC*Vg|FmpEu*5`j=II+WR4z#VJ0CI2T8_GgS%g-X+1Mz%+URDPx)j zARG4Ra&FTuCdXtrS}1T14237k5&nt^rrb?=Nj#jgyOImWl)&%gc#z(D+W!bKvkfbk z*5@?5i1-72a;cz!oRTiqFcbe>9(!16qP7vG;=_7Y^RkJt($>J9s`;ngO{?n~!w?y0 zrX=^y(VNZjI#J;+Z@5q}gFV(aK)A@hwJSA>J(ysGG9QEUuk3Rnb>=MTjO)2cDX-D; z!|$2?M#Q0qNW4A!B56ddWoTj|uXb>!^G10WIea-h1S-q?Rql3bbR6U_px_W)htL7> zkt$ts86SGUUHzjoJgw5-!a4s3WV#>iy$!8}GIz^z;Qpp6`J~(cjL`w$Vy^ zYVM+E{q~UZ;im&;XVm&MbIO_PKse6s_+8%B%7*wad_AG&^Z9x>_Bv8FchF=giGeq1 z4|Wu=@Cgt-Un*eyOWGYs)9!2^1E`9*pQ|c0QACJ=XY6QurcNg&wdHmr*`2ma zD20zP#0K4uM=y8g2s{a^(=rnSOo*Az6v0Ox_ENH@oyM*ua zJQ_)6*C@w-P|TXUg@~!0uh0@G-X}Id7n6doV+=zC^Rs_cfq+nq(3oa66~tYU7OFpq zhWu%9G*(7GL0f5Zk{cz(7-`L_Z&rftKK?_)JEO}agwu4@YXq`Jo$bb?Y^6T9k8h^% zjCOUW0I|jIYr9(b25wx$Q_ugwHpeq-uXTuk4=eaWRoQU{a6#+=;#P$fj)S~UNR?rj zC-^sGYTAS$LmEOP(s(I}{7S3)d70Y$hUe_|@?AoG7}l4_`D!FZ;qOxCMRvcfvqGEy zXS)vj$yrb(J+MWhFAVB~PdXZ3-a0$450vvUBRxUvakDmmj|~&UdK&AmOCA~|&o%L} z&lZBiP0;8n9DQ$^*N&!`+vXAds$npco&B-?p$_1}JP6cBHNoL%D<>$$t~)&~#^RbD zB!EyMI=p1L7r9OCeNTYZhzJIM&HRUxIlR3D>W-Xd!2U)Ii(|0dF^`T7GJWV>lTHJ@ zGYXPu=&YXG)^f$%3o1RDZ%57$)vAWJIrdAxe6I}+gt5??3$pE%ArLhqe2ezeZdQe% z!|IDP?Ba@!)fZ-}qzl?xDX&w`uTkJHzK#+L$vqExw5zs(Hf`nr46At*(g&>f!4nOi zJ13-Ey&%j^%xTC0;@`lKay{D@^Xtg{st^>isiUcIYLTgy4;jS_(T0d7oL=QmF5+V9 z`$`gIeCvcwE}+B4nUrfdd3+Y|eX63qY)6(z)j_FTF)-S$ z(NmlUDSX`G>hfS&NR2~OJ~BmZN?ftestjnKc0oJxdh2%uHRF$^_$5h>c~6;u;{lvS zkH$eG1-tmMi#6C6fQo+fDrJ?Ds$LA@XGl+2T;S)F3U#CFZd@4CdKK{sVRaEY{1yq} zG!;cc*7xl(Hbt{n+4Md?1X^c{+gO?jwEJg)6ht1BK~bbAJY?Pa51cYW4^{(kE%||K zvn~6ClECzlXpaVHP;3i_)8YTnZ{BXNjsQkDL}qw#(Ac zm^_ph%pXu7qXN0HPwnF`8!|ldxp9xVY;Hg1)SfapdTo~Bt&VyppM-LpL@2zHjspUA z1^~Asj4CA+DD#!;Kak@H8e@CTEn#F5uan1P(P|MUtSY7!?UW}7J3Zq)64 z*y(-bqtA=%x^zNzlg>@yBo(_~Y^eh{bt;wV$oq&2kw)Zb67EA*Rj-q>HCEQ3v+*<^ zXzPK)I4m!Ef$KFl&DDS<*n4aBxeF^%Ej5-KH1bZQuPIF<0sq!sXeY`fS+|}(l6!3H zzh1=7y`kyzQDRa8h4ozR3>yP0GOc+pk4Vy|M!m$#Ql--Y-Bo zeJr*Y5?fFOEaXhC$70A{tCRr}N8RkmLG*xG6QSQp1LBWTc- zGVTejQsar%1E}1I^nCQlE_d*C2rO+3@d+YVn|_bT*6tH{ z&+whihKJyp(#T0ShPOdgPc`q5$<+H_9qyj4Em_9?&uMlnM%`8;SY2p(3fZQ3*2+}a zY-}B?Vfp2hG8RPmEI6$Kz#i;a~@f)Uc}-*;2*3^!lop?`FEeci8O>xb9uJi z;Mr*4QBg?Lvlo9&h1&v(R8;$y>Ah1MD1L~yW1s>v*Guhk633a#tjz(%Xhe{>kvQgL zCnlkeM=Sl_oHvytcl=BNlU~5b$!*4Iausx8eipttrOEB=ua0W6J?tn$Ap>;6Rb zbMK8^)3b869PTCkUG6Le-{t_xvL@YCidy>WtqSD&B?G@+Ni0EA!;V9ev-HY@c^5{>@oZZRlQM7C$`Wsd1>$ENUbY5Q+?*=aJo444H)NrT zdfTyNH9C7d$`2EAfS&fpi=?ASLU(3$(wMh?W5tdOe*Vx95bRI`Q@>g5HA>s10SR77j@o>BsozRgGk403Vf8MbAdWL@VGYNz1uNm0 z=rscm`NrH93=SB7MT4uEKa~P~aB^MukEs>w&tHTCN?Z`+ahU?|9Mr&KHjX)kuTYRQ z7EY=p;fVayX|%o^M1i#E^t3L3vZBQWzn4PseMLMRyECkIk5NoTR2CTeLp|HBksLGzQ?#)H$T)4)`1LMVpw|itiAgy zFTmbZ4H*7g#W_T1k`ndr3eQv%{#D2#+p#NDAAQ##C?QCBnbQ@s5vnipf|!V}&RrUe z$XD>AjSBh1IzU%e2CF%Id)|CkwRmUht9B!86lVgzslNY6@zjqTkKQ7!Te*HgfTGT; z{l|}Aa~pW550i~VZ~}qX&4MRE0zIr1(MGhyj_zQ^U%3#OH6NoBya^e%h8r9{mJoA! z#=UqRARu)MYfGoG5FwPWunHOxoYC>_qtx(peV#Xs*{bS`FOs-mxE{_cj54TL3eaIj zBiJ4O%IhxfUMOFsII83j*0w)CX8_6qX@(y*_pRvf-a6n=rWy@=#6GR z_EZP?mHO*GwzZcQ94?LAX-Z^Y(27Z~bmNk0Yvi#gc7j{h4e|k6=PVcz*IlqpbqaxV zNuk{0!6~r#xARG$B8=ic8Gc+%J9)%0RVt!~FXl7)o1~;t{{D_$hXl2bFRs9hZDB=I z#fNQMai%tP%nZJJzf=ltj6P4FV(gy;ocjF&O{GAIqGK*43!Ft%yOj-hgmVJn&bwU4 zujo^?zT9~V&nJ8*u^cuZv-&i^hZ0K|aKrPQGr(9Df)IY+nY9V!K&y;gnJNlv(M>A0 z1etTjIRH$1EgSKnoqCT$<9WSBR2$`LR8V!z+WvGs}bt zG+f74F4KApHm0;`ZMuMY-D^Vo=s6}~j0!G<%kR$hFYl3>kismL<{vTPl((hQyk;wk z`#`!Woz8WB&4_D}WSQo*Q}m7XZf5bATpcrcV@tr%AO8X~!bt@Q+RI$zI%F7GNlU;h zn8IXLPybi{IAYAUY+cnXlS?%65yA2}rIq3rgQQ$75PRPIO#NOymV3d5v|@Zy24hTf z3s;YTVE>h?z}Cx7)pPl9G}dW38~3+@Tx)iN4fv8q&cXlqz~#c?f|L5@V0%=7>qjO9 zfT{tz{-@s1JO{`=B3{}#e|uZ}If5=vnSE0^(RJR><`Z-zOC(uD=xrTM2x)ZFQGghcxcvyz<0<=DCmNvZq7;-1X7N?>a%Iq zS^OYL+VFz0sQb!-;@eV|Vu|$~$||DPkd0hD0E#)!^-J^T)^@qL&=s2^?{d#yn)_VF~ai?;et*TDR5@ z63byEyUzm79w=@O#-mNS2Op*U;s#5x+0HknAAk% zAB9QWpYIFglhq6V(#eVnzcB!L_}(dcg)J+Gl~fa(hqDWSs_G! zbXi&N`?*OZSWbvzM^<7hJWc3cwvjzXay}x&@qu(`L=lzB|Pv zKUOzN7$cXDRG6D1a|*^*mV99J*wnTKvskGN^mng7&W6L!4XGCS9i3VGtSlTyDg)Uk zav#a(z+>SKJP_$*nbZg}b^@J#O5=;hR=jIUj3TH_0~>EkRovUN2^Bb*q+`|azSQc= zxT{Eq9}%JwZgpmSPq~r68s|=$@72+%vI1Y-(+952vy^*?aCedYXMnvQ^n_-eE5sg) zy<(-s3EO)WB+0EusAjVvs@FGstxY*xQr!^jCwTN9bTzurByB?wKi(~<18~Ma*RT(D zM*HLh&>lv~g0}(z<3zeAl_O2!BY`xujeZfgs~_j@hvIWgiVeMlNm%PJjJMi^;Qac& z1`R4y6mA@c_q>~ycn{62BWcU~V7{6fdinCb8zAF2A<-mzLfvlN@i9gHU7r<>(i5Ek zB5aPLpea#xbZTdG~a+ZRe+Jt^X1ndJ;~un ze^SBu)P;d@90p^j^7dPR<@Zw5(5^CZt!K7B3PNVuGV_9gI%z=reFHdR_IK%&J%o7+ z+gHK|u2JC!EcsQWWIM!uWe|P>PU*_9<~@Y81~_XnGqY?AEAV#YLM{P!{$(Y}lLsHI^LAU$xA) zko(46uV5?tsu_%b-XRN~In9BC+tW@;|vk zifA@$jNWY?PLd9{KTB(6F(rT_TbR*$$2J+Mr71ZrcN3@d`tRer+Gr%|Qgs650W{?6 zgLSAS^RM1_$2yJ0R=~=roAQy{6$F|YL;xHK=5wcZFC&349{Q90OQqk|vt6fZ8xjLB z_aNcb?OBbKow&)Fa?frt@_s_^9^pArl=!vxt@!^Nx;_f65l0LkqZX-+8Q8{w$MW7G zpQwS+tTKY+wecY|KvS2-Ipmkj;D-J?7stxT-AE;oE~HcU7s;+3r&@Z)*M+=wunF&J z&Qyutg((0fj!_*8vjn3_L#UcYu?QfxkN46?UNa_QJeoi!wJJ~k<1w6iD#qiy$;311 zJMj~3Q!SM+c9Cy6LrlTRf78e+d5kc4{YgGF={HSwFFgS;@+&^ z<`p}SR)`HvcrDh3hK5lve>Ikyp2yTXo_ZeHgRhC&Cf-78`xTF}>P=GU$GzYN^BpNa<|c*a(#FrY}7S*KG_wTD*Ua63(a;ao^P6gdwEhQZ^>g{Q)Ayn^0zS$qN2F4mqN9(+stvny#%2 zlFI?>hnc=cc#yM-G8wyKa%yzb=t{^BuQp(|Imkw}nS2!qPfV}5a|^`)Wy`%`R)8J6 z7e7dCXXJdM113B91XWhb7*{YXb|KPzBfMUc`E7lRM-^LBnMl%Uv2R>v4;UhI>Xd0(Fd$V_zOYoq`Jcbs1`I znG(&0LPalLFQ0IP-Fi>aS&%Nki2qd7J6)-BMP+)(QO|1jO{ga}qcDzu*q=AQPcXNuvuW z14D!7bvzC1d;I-)`_N>I4;j%j47ku<355*2- z0F)D{9!YXc0d=k?4>QG>-%hbLN!Fm4{2DE2WbPxnP;j5GnL(71?iDroZ?`a;6?iq! z+_wfEUxm*bfeoj+DzAjY<+xW43cB1>9!sQR!7xyG+8~GV92zsiwObvw)Lzyy{ z%{*S6JwMUB?@C{K^T+FP%|&EOi?6l$3x!VczP$k_eq0xC;hlffE z%2#7bN6i{zT5!?4Prpi8aYa5vr^yIZ&h5~^6Eg)uz34)+^ZWHpI7ZvY51I&F-Cxas zFr~axeQRK?24ejbo>JMDkn)*KCq$jQ3AO~Wh)XNuq|Ye4@I`Vtj$xL5ZgVm=njOT)|s-${L7B)LPVqvt}D1iScD>Fia8(?f#Q@)~YE0 z)gQTh-dVR=U%p)tLaMN~{_g+D|NA;nDbamk=--S2L$t;?%+`Hf>YWa=KlM{XWg7%J zy^RnO$6fR{a_fF&09{4?Z5}0FHZ$)mK3?K)lE$%eIU4kufbBGs|ETZb)fs8lo+MU1 z;C;zv$f=Nh{%4lrvleX}+Y+h!ucVf}rrTY-8?afKKqU z>oag=;i1}w*2zTYU+H|SrVynv5>}T+t4pAQmLH3A7HHJsvd;9g`E3zO69BDY!1LsG zmzLNdG|o|SK9`xZcX9ilAOOlCpmf(gpcaLn8Zpx2g6cSW9No`b$mJU)!nu{Tuc? zLav9id4++Lbukd4Ca%`F@r$5k zlaI(ZzNC-fU0N2i8GwXB9vNSxEQjRJlT;O}3L{ zCf$@^{^f3XBi<(cMfFmU`ScT|b8Y6c4Ri$aT*ub*z}>}D5d|8)F9Qa&k>k!hxaXgx zjI(2R#y}z@89%quc!2C4X)~F#3aMc6+h=q^zJ?|KbtFwE=zKW0ubTe9xc>10>CqSChwdm>LZ$+H&x8*L{G^=l5g0c71QS-x#E4Kt zkg%iZZb&&LMSQ1AK@YEdL5>L8v{Pl@5xf4{-pp|e-KyI?^~5anuq!M9?phe1Es%o}_U;fR>)r*lse{wS--2z*LXZ}OJeC&f9;Co( zW1GCQ$9et6Ry=^V13eUQ$yLI}Aq2IM1CSVK0I2UaQAwH&v?-14YV6~{e$?&zc$okS z2Yhfi-4T7*khJjg2zs~Cl*qG?SD)uJx4Ql(>+OSsp^33YWD$mrn?l^Rj{~#l%=DkO}(-bgGCk^c@tg_ zPx^^+ojHB+#De2em9x;*+ONmvVr`5^Lqz^{{{@AYxE75-0WS5Dmp+p|_g`0%B+qpmh|VRQ!)#FMP(}Tpv|8P$DowSp(X|74A2l;Fl$8@BD>REU#E~{`3%FV6v+eVW1LdwrW9c zj>kQV=v2vBJ5OzM6wV}6=X$*$ZTW1k;96Q#edQ@7B_qEuN*P6J`+k(psYoAe&8l8A za)&rP3>Bvsl+&>3%#lgQnrcXnL&7E@O)_=q#csSj4Zc>QD;`0;NZ`-U-8P;QE_UFl za08Lvpjue>lHsYQb$v;H$+}B6aDYW>ge4xcVl}ZV+Ds{>+NVQuT07;QiU|}eMCchX zebes+Hc^;mO51!Y(HYV@(I=TGmL!B5#-s#zqk7uKjS*ZkPsCJK4G3~;&_)0l8Q3Tp zQYi;&6jV+rHx8IzSZGBh+cUj5$&Q_sAgy$}9isAACqbW3>n#FtOi58j%P8)@hADWX zOgO*HQ1P45rd<1_C|Y#b_Zf6^rYMB%M_Cb8xg3k3<_|39e`v10HJnQ_YroMlu<#?^ z%3h?z)|Mrg;3%_lCAgAvPKBX%Hka62Z@B>@?#LMhEn_^K8X02j|DC6?w?d;I))j7S zE*$3Hy5X#BW)=!2Gl}Y8m93%V6)aB*k9k!<_vy$e>lfczYtSe|3W~0`>K1iVf2H5o zps?!m?-g&TXP-#sreZeaA@}$BCMFN~P1Oxk-!rMMiGI%(X~(yLHNMi^-zM5a8sm38 zw>NAI@Bf!t&kNi};*a}<?sYo<23PI^QAS3N0&}i@cMgZMy5~keM5i}ZpWvCo8WW2-* z)m8h(p=z1LOWdHauy&hcvUXczzvvdovt}d7H1Yu_1_ChKy8N&I1HBdCZMfJNMdIaDtB?3octg1lc}BTDY8BtVSdi;0d#) zOsx*K!||y~>{GUeQFF&5U~76nLM4m~KLh`v!s*K?l@^6E?zQ)Wx5>yn3}3IO#U);n z*B34k@O6{U8e|RBCO%`=ALo#p9E*Q1sqqoaqf;Bn+E-f+$e(QrGS&nUhgSP4weDBe zSZWSj#zD#TC4Jmi?$fb*0knMbIa+uquSQ8GBU6TgfW8o$ocdz=0c0wKP-ZrD&+qqo!-4T}=+I(_ z+eDSbg9o7TGQrBo@NytM`T2wb{S6QEGHU#NB!##@!e2%qL`uCe!&#qw z_;AEyM8jw>^6s4QGFckL;cS!Auir*mr-PfJ2OOwmmNWFTi7Km5!WOClF4)zYH=l+p zX0K$awi6S&u9V0tfrnX(kJXt|;3FM-B7Hw-H~$Y~kSVb37AmKj?sdVJIZ(*7Q_OAuFY-&$IGbX_lK_ZUY87~&Q~ zJ&ZkhZ^WrmP*q?QET@mMx9Asvg3OkwYgfGnM(%YsVdNsbn(wvBWUcWBIc8cpx9 z9VLWoY$mt=TP7OeKf>~X#6RPE3WsCci%%OfF#WJAaMED{GG%pwYmR+}c~(^f7z4AX zGRlcA;1>*-tdapVCk%`tdEQFBQY{GRN(BdYTrIUK{f^OI;K_&(1T(W{Bjmd^W2Jbn z>96uSfH`|&7!>ojBN>rHW5*N>$j~t{w5cW9um&=_70Ko%iE>O1-10=TjH#?c`@~xv z6j$>b{Lt$vt#{D$!V)c4{V{XGMfYcHx#Nam0f=MAl4P}GR7vp{tHqCFg2~kNWt8jj zq4cU{e1oMk8}*Bc*)sZgl<44Wq753Eb%IG&i;8Xu_4H?O=SH8?G>-tJnM4#E|Ec6$ zsY&pSg>>kLKEaH9q>>)4awq#E$9%f-5ywC=Ps=r!iF7*>C1k^3Oq4H;)i%2Bp4M^c zw2_VDUbKeYXO~H~9(Qbp=iEYk$xrIt9lPR;UN)cMJpa&~TE4zyys&`{yF_Kbq!r!4 zVS)Fa8BavI=v=P_hqhyWQG;D|-=dEUAQv*SfbsI5!993|L|RAS%p(Ipa_WH{NOw_1ae_o|#vmLJYQmA8_QnvLyj_vK>0WHoz z)ou@p;|8DGx@}=^rAU{AVnRK0_c{Js&A;Q@+rea3G$_Z!beVL|O`C^sRs$Z3$NdAZ zo0y|aa_2`{19!LEld`_^553i;fTxn_hJ!lXcTmT$+~8uwx?W!bh$=}GL*MsYiASWw z!p$M|(1E~k($>Wn^t3G&&+^UY@5@>Iv(LF$tULzGC8{Gkx-$#GfShOy|DUxOOfVQN zJJ3go_hysW zp{4s6o~fQ+NGxnNiFFnz2KxP!A3;H51ErykN9;x=> zo#V=_1|>lRuIDlNxxML~fPQ^tAX#bcKv74R&&!{TFc-aqb%=1)ZO=Z=-0UDFJhtFy z(aE%yN|oEp1Q`!HQCzy7L6%|G2C<3Bw>v#F571Dea1PPBhir2*6p8A!9|oHP_G@*9 zV(Fur-^N4u z-U`Bf8Jzus`j04Pa`4PA{5a_&J(~nPXF;J-De>hzNW_(3B(j2`lAi)+DW)U^dcE5t z;l#QSJbj{E$q;Ovb79)ru%*90q{896<$uw&BgWt}`YgyyGBbm7VYXHh`~5ntE)Wh~ zIHcxul#(LBVO-^J5c%B>Mi+u36=Ci;(|{va`%Ltc&ul0tqk2YuNd==10_z$;V zw1g!2pN50NqBn_Lt_@(aaK<0TYd$D5h-El-&QW;P`MM?~uY=PdKMsh0yY<>$$YB|U z=YT0ln~-P^y0=m&d#30B!Z3fyChp5eOAbyYA6~<$X4+fl&{V7FyvD4=T__T+PH``! zHD^54#}&~M6UJ(HApm?M$$RfV`~7A_avVhYGO8ax60wvt5}~(6lMJgsu$n@dfe7F1 zVZCNv3(jV&D1Z}ssK)d0E^M5KuY2Mqz`z9S80Z ze4!CU1_MBS&RX&MN*)1*8$-*stHbC)ySj-sf-q&x9g+O7YGG-BR9Yx^VfOdDUa} zvWZ7PeB-kd<=IHny;ceQC(nJ0X2L1Kh4pkdJdd`bgg68dd4}vX@0P2m9v&D}r8m6` zzI+bMerrf~DiW`I%tFktRuHhzWNbftqj~2=6Wbi}3s7&e67K~l1n}h8P>zLAlUVcv zWpMOZsTdXD#U`@*m}J?t*k|XGW!7Z;0V>gRA{>sVA{5m|nZk!AvjMKy&O^`X_u<}7 z;_->0BTPxr!@O}Y6v-ycQcwVzu!!}NRmZsE%t(@}u(_V+?tyxkL{T4lg-O{8 zOHp74vI2@MfaY71X1#A3%%Cjg7N%o579))qO^XYp$;~RO6eg79axc}yxGB$P&i?8J zJwzl!*UQdV^}ZhrYv^4fZECULUlC!*u>ZY_@}E}nrfRuB+J;&Lz0Q1 zMC3(^TO1bv7L>$UN9FhI($d{|du{U!?Rh9mk?P(&eT0~!Q{=|C5SQ(k>iD#s6Li+ebEvarCPFULie{< z`^kXI&-}OAFhNuS{NeVl18GJSJF_JoaYBE$TKf_w;p3YV{bioLTe=P)$95C2sh8z? z<`nYh5#bZ(C~4#*ewr)9cdPda4`|6QelKc5n5y0u0SDT7xO7MQ+@y_RqM7sj1`eMg zHQ+l@)v1b7S)L5?;@)9LL=e>_Q`E+QTVj#UpQqfCz1Xl+})!LUN{@({I0RWr6M%PYZ}uLYJ;>-GzA zHJWd(&%EEmlKwzppK9CS*qaxZ$Sl!nr3@AeBu26xmFT}dhoLCCC=}t?#t+O-pN!Bx zkc4;)pm4FRQTsEQIA|{DD0=fQYXhogcYZdl7tOCw=66MYwK)%L|k(mvBe(H48|e zh#%JG464B?UN@e9>hg@6Pm;t^Ve-zpc?hmv0B`T54wMVKO-{o7Xj+maDzX-DQC>wbv=aff!SPuy@K_7{yhfRNX zKhOrwOGIZ)==K;9AKDh5*tLEXnpBgYw8$w+chg~T4%Pu-67YwzaN*rRH3$bBr)@b2 zC95=Hm#%!c(Ur`bTS=dE!+FrWuAG53dO33M9R=lVNG4a`UBep1pLZa_sg=zXws?vj zB1dTY`dXDU{l~JQT++s4im{TH@<#^at{n>ge2~qqD+b!5@3ae(Ywyi)ZHBYaz#PS^IL%3}0~r zY0Wq;`xBfLDx7T$eDf)sV(TNS9seRe!|MyVFfn?W*qvl)nH|Z&i5y~8oktQuq(_75 zj*TT&-#HI!yDS^N;GniQ3&cARq)cgJRID&KGm7{GWALuV)Ow}VgpeiKoswU~e|RC% zR;Tp)$?sx)lRAD@J4tqE-*kYoe5|+|9c&(0S-s~lnKV9O&uNXi_w*Q!RR;T8!X^}< zlb6^618as*nNCY=@DjBz7=Ojv)~_Q(R9$}d+xUd+W@pYOQTkn+Izym5cTubFr~pU z7J}FWH7Eo6?@SnUXcnVZ-Ut+oRRh&k$U2Qg7)wgEFZN&$B{~zgnLT%QMebv~UtuQw z$6j+fov0?OFz`-IYMrZ z7kMdi^yzi!1HEv(t&H^ElB!N(wV$SvCbKSBS=WDWSwke!hGH}+c2_f|p@wa6-mF>UA+e(3j;P63x_~=t%q&J$w$jAvk0*-V<#9@ZzhQXG zx(M?N`zHBla=j85k7ZrSh&_sG$hbiim(8-x8a(UMzIUE;J{$Uwy#S#nbApqn-C2`lt`rFR_;7lKgmQj)#wEn7XS{B2P#uYO@Se&xZ1oHoy zpt`F$Udb~p5MbO^+(x(yH!bW2psq*Xod{7KZlYRh9io!N_d1B9a=x!Pw0M30EW=HP z=7)R5vBmZY88_e!0p;8(f$)_Po$f;g^3f$lL4}drx>e2-WpdkY`*Zd+L3aNwI#Vr@ z@b=suV|vm)?K5sfvM4&IxkF|xSHYblQg{|&KJ4G1ks9u98}`$zUUXOF=%Y1PVEQbe z&35-wMC6Uzr{{XvEb7h0zCv(@q`W`e2iFs#Y3gskU0)%Y{0DHMVkh;iWyNGEfRVfy zA(G?E=sWVZ^|3+=XkS(F7SCsZf(^|ywg(ugdbt7Y*%|bg<|W!bvA6OtL%K+$aMmwR zeO!ab+a3X2K2P$892RR(GmF?w2S*A#8HJ9K!K9$ux5sexF@+T{O`mTr4}+HOQ{`Wu z0BA0(b^o;+LdbVHMX%p9Yls)OYeoUZfDoAS8FkGZ_nqPn-8tY;_{008kd#^SNzizLe0SVaLDU-cNwV+(x)(?vpB^O5HJd`QA z-2u#F`LzIXpOMaU_R$vDyL#5)k*caKmp)CMfZpX%@2IBk!!FEM8>3Uc)aeCi!Q*sdLK6+_(t@-nqXrAgzH?e< zICyCs_4;^ibP}o0c5eHWFeRF@icii;jX|^~JkKYlVo?O$qsN~k zJw2Bcls5U)L&Bd%ix?2W;tAed@?fr8Z$M!`MUBGaD_^We%_>;r1OebUA`dckT|O?X z*ANIbQmBGb%cRVlx=(iv#GHL!9q?sbhdvI#7BCaSYUmm;M}_GDV0jQ$K|7K@Y9zLi z(t=789EN|e-Nm3{!kRvrd!E2w2}5|BCCjnic>i6F5i4)A$ugF;3Hk8Aba)$NVJ{sn zlngokw+!n$o{h;OKw&H8IZee~OL?##8IlY?#CWsCa$g2<_5xep2|XqT9_IwtepsCS z+lNH@b(dct3HPfv6bbTH1!-<}h8Qx9YP5yctDd>!WXobrlQXA!$IdQ<%6f(lc+lQMj=NKPezV?4g8Fvvwn zOlo3L+nD5h=GJurJ%=m_u097(@ZG5_liDcRf~>&t-n3)4s-k}| z^?h40s{msjdKkmioGoV0!8cI8i4OWP#UNQJ`;iu{-V+?H5f}_#VJ&q1^{TKnGN7tGMraGR3m--H3RNRxCf7X%$StuyvEu1xCDmC0|^tZ@VxVngQh)QXYKTsW^*skX{cSBZcy^ zRpFVZvun-SoAX;g5Rw4*?#$X2-qaGnX`{&UK--+h?qcu?MPg*kG0V^7fPk`}tcf85 z0_Ej+nqwyR=eG)49zqAFR{!)d*s%|^`N9ofPbFO|IgjEc z+ck2c%n3pan`1rpXUK#rrh zSA1M1?9~?f#UE!FQA;~v6kk%z~-RcaQMmS8C1U$*e|R3z`&ofO2fm0 zRAFq0e7Ia}1|C(8IN1g5A@6>GL~0LKGhK3k$+2Ti52!9S6!8rykp8(7Qg5+M&lO}^ zdPK!(vgQe3OqFH5mjyH-w@u3zQDBtdBRr?eSkp@Q?W`CQq6BO43>KP|F5S+(uoq_y zFpn784AoIrq6%HkvK<=eJJ}dq=w*y2Ab1_(6Z?tN8 zsW=Chu+m4g313)8?J>s>=7P^!2`cxMv2cPt^5z#8lLm_kBd)*s!?3wF@uX5YyTrlE z#*k(Gd)L~Km&}WTWGG}PHSGrvNg|HMP&R`N`6Zy?RFYBPT%9>ri@ zOvl=*54#|1(g)4ly;oSUk!pbLFkDuVAZvrVnrxX~JF&8;VY9++AP_?G(JJ?E8Z<5K zJXi80Xl4&l4IciN&=Rw|-+pq2>eL2>=wnBDNohb*m$1f8v&m7Rx8Mr+`KfdjzwVaG zT0z%&ObBG!@aCxXT8*1?e(xsfZLR~}+U)26KU9tdI@kKedY!D_HW6;nhh<}G!g^@o zQp>G`G^n6{RF-#>WN)FNJRv=J-KWX^=C-+bZ3Tdu;>u&ogiqRN=?_8)-lbt zqkJt<0D*5To{Bv_TcD+KjfG06S3gUbj`}Y9?}aH!)NN-O+c2CYc*YWTKErM# zy&6Q8>hL6^%x{{?bUh3hr?Y-{8l7H;%WrmMFZg^ooH0VGyHWWve zFs5MKv(R7om5ho{F~=VzaUq-Z0c{CPQ6H>$D0#C&8VZ47UT1n2P9;YsYA=RZBJv4 zF$t%^VJS-DO*3(~6@{~WZDU_4nMY4jSBgRcQF<9`^WtSx-+lDLUH{^rH)6i&w=K&c zp?*S?1_R009(}%j)$K9*g-kx&qVNj4-YY+;-Sbe(*ZTgzOd=N}+Q;6V0ZKDuznA1? z&mAucv{H|$!`!^l#72_Xy60!FVyTnBa6Fudj)vB z2XPaHa~}~~_6T#kEQHuB627NxDI+A1Wp+vdxB+AlYVS6I9;}m~`iX?6`1t9xbBVMo zFOq6%UzqcH#`bg4(0ye*2g}>AiW8RB0hKRwb#3l&k1e}~GHPSWchSEtX|MnKQb2YQ z4!yR4TzHERJOB)QmJZNVAr(VZ3lvdQk%6X3sxGq`C81Lyhm{pEkAPy3&}RdPM}C0& zi!c-9cuP^XwuP(NQoS7>qFq$?Q_9RgMQ87@e=kwp76qys?X2+Pwn#b1CLEH=5|=SBJ0v$Dvx3jaia4NDA+P{*i~Fa zAME_a^wE2Nb+T~8&Z?KrDobQvIuUu^FqY+6&L16@e|v_Tk5nRM$lk1gcdoAGjQrU2 zYmO;fg_xNpezfL1i8#_14B`pA0gY1Fy0qXvQ9(pfS9q0M)E^^&dS@6|V)QHzuT&_> zEA85dL$Mrn3?(F{Vp?bZ;Ac#AiCEFLg*!{eZi z8jNWJBU2-W)!rMm{}?kNoREf{v`xZNPLsgL1ODumL*q=vN6pw_zZk-7s1Nm@)sFpk zIAEGU_nH~7!iCJu`P%1Kkf>;ZGQSa|XRA)5J`tt9!KcXTh1t)A*D*2ln2tMk5~kb> z9>OOt)lA;w4RLQYOog*!HlzZ6(Y&j7+C>9Y9h*FUjP(RDL* z0P!LaG;wv$X|=7qCbc%?9)QOGTIuOeWRV7Db|L)==8v?L_R*n>zW3UI98%|@q;OV9 z7L2~U!PU`OYr(4)70AwF-fD2Iy;C~#q6myW1q^5zy8D*Jrp~$go6b%LvDO2@IM_gk zJEVR0PJRd3;z+g@Z-B*JuJY5XdhfqYv6;p~D+BA(Z^S{?Othz{sA8<|YzbQ?Ju|$K zq(zH)gg>T|UNsv>lnp0)*vBInz%yU?>sU<3^umLUG||w;1R<-nQ$IrzwH+fNR}=Sf zK@UU0s9qfvxHk&GwO&U-vC+r>x$lg+SK-8j#dbVK^38C(#UBEfW@s(Gr6KR%9S{1& zv&3GBFfvC`TulJvbY+I7UgiXZvh<_5sslC^VDPbby8D?ms|o!UYdP}&isNxzL(!TR zyN@#Fh6jpzjm*xN6?O@tCq2lld-XW6rWn3dCa+&5;{fM4{)T-pke(^`{N=S%Q!jR| zcoYr!h=Vv%8Yf;aj)ag4{tnLdg1@yT8&?W?KqaeN_?-s+v&NdUusMEJOROs&Mg(a$ zE?7(>qUVn9H;@wcL-gJuI}91?2AF2c|749Ef}EA2BXf(tlAcKN%^EYrLqtZyTbqPg z;Z|HQI2u6en78(!wXtyd;&Hie1m@zC9^>eA5@_9Sl0m;6{$0pWWnB5L)%}qDDax#e z!D5?dEgaCxK2O6v^RF@#CU6VM;B1UE8=$Z*s5gz{wC`pLuVy(JNT+Dm8j*vP?@mpLS)F(sjEl0cN0@XiF1hA zrzSnzdyJmZUyWKr$s?6~{7AuDv6-oQb=&OT+^I30UlfXBV=i>b2fhpE851PUkomYy zphb9lf9SHYKya*N9@}LTabS4`Vm)?J-xjwh79Z^zC-!2Q`}N*L*ijwlPP@T{xe;Gl zrb;oXB{<&*695>>mt!YFt;I!iB}#YEG$3hg!_g43Qx}h>p4tIbKdIV`q7!Ux43EK4 zUb)mnd(&E!`cs$hBhxQ7nAoi?^?9)#J4+A*gQ}?7+I58fT22UxBaUer8sQ*saOwt$ zp_$gUOK6flsMc<0&Me7JDZmY+kX=!l@*VXfz_jIs_U zy?x-?O4QMHdxq>qD5k=`a&Lr8F3_gqU-4MKYOu;?#HEQ*6}J@*~BU%G-i6 z$x`;X)5OIt+(Tm+Rkr2hi~?66I+HAp!H3AoE|!7sr&B)KWslfVGSaY3x?6dYHvp=$ zpw)?wv>{$Ct(6@rRC?YaQA4SlSke99oH5%d*R6{pm+|CUwZD-fg%2h6w=lwkveD|~ z?p(*Ug8O|+!hN3Ni6kcm$L{xB%z>A$nusRTqE|CMDC9vG01HjjAbh`+ZO~!j8D{4Fh zj6YTG)mumx2-a%$jN8umLtsp6<R)vguxV?b@C`=W669zt1JXul?3OQ$35o1z?U^8 zo?o~u*xgJNHNLx9hH9S6wg7h{QhF4Q$P$}jYpFm~GQ%6hN3X1LWN@=d(z^r_ ze2)R3A5UR#`L?oLXT{M)ml*T+$!1bG&#(^76R$vv&Adnqd{ohf=t|V_gy(52g?|IW zb=s4d$~T`){f-EVJ>YC>JEMXzzwOC4ca&1|nEGfW>#E~I*=k2)n`EE6v^8w6ne!~_ zQyuwArSImcrPm+%g~%!2Psuea7;}U49Vlv$)#^;di|Yg_Rtxr3Sp=S^`UEJt9~k`G z52UdaPq1PI5j$510ThvFYFh3Ap+5!NSr&FdtsAYiVHKn4?T;N;TQ|t>I8T2_*6(dXb@sDcV=^PLClTfm$^wEw3K5$#c9c zeU(YYG1v;wbU#?p@GFYZwT$1sJyPxNkaxKCk%nTt(&VTM3wj4?P^#NO@646R%6_tG z+tAKl5x3PPnfaFtEGyG+8K~=9_;!;#sPUU-$8#6yoWinapI>03r*11j1|#ZuUCP?l zuR69rTNAt?BCr3?Vau4#OgIdK&;bt5b`$GI4UN7!5{BD?^J zV~VNKdRN#THt0k;W7D>;_rt^$Qdtw3(N+uWL8XE9_Wgi3g*bc=rv|wvJM)s?YNzw_BtTjW6S%;Eu zJ*`+}|F%x^yRg(Nt%a_ihS4=su+V(SS8lDNsAS>uH;f9!dfGmg7*ESpL)(asxtii$YxW){QZ$^A08Rz%9!}eC0?gN7jeZ4d0#>!(3nU3Ra)xg^)R!@pj&o)ut+r1_ z8twqLhWO*I@3;cQc~FFzDidJ=PQVCFtTlvL`tp3>6-?(OZeb zXSk2vv4CXVc$Qb+{10$$KeG0C@_a3;5h!i*Mxq2RE7({!6qL>Z!sX2uDaq3>4aJp@ zC143qmk)&(NOHv?A$stz(p(hb{4ZgZ1vk0$Vt_G-p!;3fulmu5Y#$}O$p)%_u zVI`q^Sn=` zP4}vJaRs6MwMx85w1%V3nh;ymBTM1INo3=I^2bvp{b6h0g$%c&b;u9U&?@itbB1o} zm3t&|ta|r9Kz-eV@oWio`=UW%CcZS_deh>~d}rc7@ZQ`U`q2eMBkMGy zrWqm%40IM>hlE)$l-x2jKVV}qk$c5HG-vV_E(fn;A^au=X7py8F1T>H9m&<=S|)4| zmT(PU0@vcmw;fw!X3_7g&VEf z<2xK*1bsJEZdqg@M`%FITe$SjVzlA{dGZm5 zIh%$w#jYv~R~1}dwbtY6^Ia1RZ23jrRI+lUPs0Ef6~>B zSHBF<_5ra~=xdtvo07OHD`jEk)h*ZmU^HZx@ihU4ukh>Q5%O z5O6l@L?VtJA}=a~VfJu33Xf%V)>-fdc-gdL_u0JE#4-f7^_#66{*hJAduJQnhp88~ zs0KWD-tN?4YcgqQsyt2sP#(-qoj#X`B{S?aNd({GTFHabd>aXI&${S_v#ObcV^8uH z?qKJi(d$PRNuU5q;f#@FCnD-3fPZP+N(g>aOUY&1zbw>mOBVv$XW#6d`xfg!mPGxc z{qvlRk%F{`Skns}YBPp;sv~NN>o1apF}DB&KEOF1!AP#OWNhNhh)aTO;PHgo^8UcB7|`}8k>dUF#G`7>>$j*}{Rd_3;!V95R;+dS(3)7zH>DMuE-ho{_J zG49YJFCcyiH-&rZJ@PheMvVn$C~U}|PAzbjNI=OHbX_Rd`AyTfp5fNxb;1 zsuT4N1|H8=t`Mz9j#`nV?^mAT2EC8Bhu&4!zH#CX{W_Zn>^!%)#Z`VBp<42z-)si+}^x4IGr0f77uaJvrY~6P}t8bdj zE~o(l2O>hmhs2o`E9BWmN1m(Z100)jWx3M->o_{LsD-M<`wJr3s5ILS`XFFZnZ%bL zKP@SkQQX5gf1itk*)WYiZ0LA52sczLog3{*7DzaFa^j97ahe90*L#y( zPd~OH9fLvJvo}j_yHZBEIIQt&p?C!ftdrAi;!gc0KezQ$6NlH_v!PKrH=! zPNx8+qrV77Ix@;FsQ}asix!j-c9Zs{U;#nqmk5t{{EAhUe46j>^w${@Favwyulb#s zGs~Yxl0uQZi=WjKyq;`%aDcYV<9HJw6k*&cE|5Ni=Z?zTve8&}_r0)S>DgUKUg~XZ zJ4^*N^}>TpNJrG=Z7qjJWZtqw)+C(Zep&#Y%k_p@;_UkSDz|NM39lr`VBi;kS&DI; zc*i`_Mv8%a6?@Y7&h)0f|29C+=sf?m@|Wn9-M#fS#kuYY{>vx&H2w(q{}sh14PMw}q6@8}Njy#-nEM;( zZmdviddY@#D7!ywn;@H-cC%y!B~n-yBz_A(iEE7g0kn3Cb#!|%(tw4mrNaRx)azwcKq+>sFb`L~mAT zlP60`XV2!T70H!)X~WPrlH?1OGxS?~;RJmPlHQ#;?p>gT@b_JtJ0i(@R+71n-p;Yq z)6I4Yp0Z8jY<7~EDw!4Ad}RH-T!lBggGi-k6Z*&ck;yec$B!@cI7BmE@Tgb-?9FRw zyoBHx!GgQ7Q-WAVBIIzpeyeY>Uq)axe2OAcIN7Y?dve*+cGCJ=)?n1dp6P=Y3OQqS zIiZ_?BKXlFkNrAzrj>DT*{kPjn&`f%uxW8&>Q9*ZG zG7~dZ>}KJL?izoywo}VSTmw?VW_yb0Nh`M;rg6RCxuehU+Ng^&AosTCnHvLqUwhh7 z?MZ>l;6{W&51Qy(;dB@u&_87fx{HrN2B7#%)9aqd0cLS+!mfcjc!|5V9f5iw4`j$} znE=KrF`wrX$TJgwlOqMxKb-Wjh15J~2ZY;ySn<=;L6WPvn?{Hi299fzbT zbYyr(dw@9e!qAtWYJmSpp+^BmVyfo-((+GAmKw9c(|x-QV_i_d)l#iY>(26IF5VLk z>j!~m#-m?joi&^25(#A9C7du`t!=ci=mB0#E1&;QJ-K{;g@Im}ENZP{=P zY$wjF5rZ1SH6DXLJq>FI`B?B2B3TG@HN^srvfJH(F0sCjd+gVgoohnB>~sJ$JThXr zbN_hcVN^m%(Wpu=M})r{R-yU3pilvO^92bbTiN&m6$e)|sME#aA17X1LeR-4m(SE~ z?h}WDxm~v)KBMeU4#cap3SMe@0u+|BWsLXvG1yHP3^W3;|B3{B5DuKq^;OF|xpr)I zWfHA6Q+p~SkCGF(EW0(!i^D2f!RT@xZt?zz^?2WGpbFf=RrYpU z6aMM1mMMXv*k36-n8iZRho#mevE0hw57*9O;8n6xq=|HGrGEDn98_m(X_(4p-yzjV z6*py@rLI+)I*8kMU=|3UZqk)TD#T*Yt?3r2y_^k=4Tfh^IvC-nvztS{FWT~yqO4MW zd|Kd(Ui@CV(JTNYBC3nlnc4JU0-nVG(axk5eA;Y;%0*PCyUtVgXgn+5;MBHhKNl+N zSD}Kq_ek?Q$sjOgEe081LhmF)!m4@xq9^*-Gj_)zIjN&)cjCB&*Am$;@e<7etHeF2 zd-M;zLcSi*oxV*{mC0zk6dSf68$ZpY@DZUwWoAD^!>z=sp_h6z-A6|Vy`}o^Az8k4 zs0+n^0OD-^QVoLN2*;_C>XKLP@MX~vVwd!i-+5jx8NU~`(jR~qxh&~ML*nY{ac zjAM^5k+s^g`eR46;nO&fr6J4`dE|;sMjp45Y02eL(Qdhgbq5+I07OX4yXzCS7I5Q_6pF#MS%O0Sa_+Kb>|1X-}MPyiZpju4r;8%eh6Z9!6UG(^)IW&dg^wGTl1 zShs*ItL6iQx`TF1=04Jhgu3t~H1pf#S|thmb9EZ3qq)$2Up8yhghPJUC7Z5-?nJ!U z4d8cf<)VY}^EEH={yKmBU~K$1o4ntHj0aEM5#$pXsYUHBl7SJFrIvnqTD~>rilsNO z1jl(-UngXChc>P~0iRTtP)R_H3w8~<$chxyGMCIqjgDt1V`hiMniM zNy1Q^nVt69Ygtdc^SD-6Tqc;@>Az@JHtierv#_psVNF3eDH;et|KN5i#Z@b=BXH`C zDWhU)@W-wRC>5UE$1F|UzDQzzIvKSdh^l4y^jFoFy!0++HMkK!$xaN#naHi{YFsaW z7-jIDY3+7F?uE>j#(`c>H+5bnrszf&Va{<&3^|M-rADj zMgS4hEcWbq?Ys!goS21_uQbm_nq5fmnPOJe<;8}Zr1}3gV5fuJ*_Fw{9`oDWGYesc z?BiXA9OW@9&ss;!SPh1sm1jY!h7RJQ3|ID>4SG>Dbq$46Hs}NbhgpM~)2NAMIjxn% z&MW9ot6872N)HOqW~g)~dldGYN5nivM`EuE)j5Ibx06|sU~_cRSZ`y_;=R;YNwtR? zh%IN>S7SWCJ^T~uhaZAdmO$QxHj7cKqwuTarj-!}h5dil8XvZ&rT*@G2{)=PdOQOfM}a#c`^6eKn2xq%CS z8<9)t(Wn1RB#bhouL=K4LpsDDXh-(>ooIKe+lzgdyxTO;u;;Snf&XdY`$vP$Y>F*~ zwMs|&E_+-8&yyeL1Mv&+@KTKWhD|K59Hr&KV^yWnq06Uz7^8Nl&vNccg`&7s4ywoB z9&j|?GHU{$E-&ZJvg|#4%TeHbc*Dh(%O10e>U8B3(ox*Xk}c;4CF9%X+`q5z+e|q2 z9SAH3o*iU)1D=iK+7@xeWxO|&=c#J`!^~5&NVRF*w7V^97;*Ko0Sz-di@ zL7h6qYl#1Awst=Ynj1GZ=+1EHzA7Ygnkc#9$rKuRU>lhgM>uYYtcB*YZ6D#RF=@T98#7Ho9 zr}H&!5_amxbL=NBjGd->Fh_q_T@bO}+e*C<9?!H|K|^ zFtN+?&Xf7d*kMZi&C~TjDI>DKW2j+!^}d1q6yD{UD>m|p3moB0We@8k zn(g^4q9edbpVZ@)g+O+!@1D<=l#E((2i9&mPWFkNism@B6K;G$v_c~PU{vg{|4J># zV_!Uz%rbBY3Nsh%41cn>2Q7?=QR0*w;(Rg|;!%QG9J8Zmz)U(>+20K4nPk`cs2ywU z`@JJmj)d(A69x0HI@!ByK{eOmG(yteJSXNDuCiA2);IY%zwMg~UsdF5bWTm; z}0w#J*sHDb6Di1ZL8Mb&8mL=$i$zcNvL!%t?Sq)C&aQx6)$saEM@v zjl!*x{>X)Kez_b|%SmL7Vb?WJNlV@~^(mFMZ7XNx&KWU^G)I9g{To_Hk$?x|yF;)0 zJ8+}BV5%oA=#vkn9*p?tuq2dpP!cKSh#0>33j>)Y7N+uXL;J+&s!{!- zfHMgX2;iN*g7WnxX@3B`mq~OKJpq=dFGY_q3##Sr^_ZDl@ z19M4H)og^1ZuW5K#p7f+C8MK#&%ZOTTYvp`qrsT-+JbssabWQKE;awwEV*u59?Vd1 z^;$ZgRV%#~HVz6~=K^v2Q+ zAgPnkUg9V`;@SY}_YVn=_S5~{vhqD*hYMFZPTu4J{RF`On~dScTU7^#)b1ixHPXI+ z(FHeDEbtyYVOJu?%YZeW!IM5p^5tJz;bt&V>me-t3V4AON7!^;Fgi6N*xmaqZv&t* zdjI;Wx%cIBH{_rPjKWd%QZ%Jr$CLTNr&F;S&`Eit0T=Ca;aVElnP?y-bh7$y4^(VI zJbilFc6PZ1p`x3M+;k-LAol-piGifn+1peYGWuMUYK{@cY$_PlzKmTQg zjQYKAY0a^Mf4~oBwCpz2zUM!va@au9`&tIClC)YomcYK}f9{nIM8qVru;>1bW`p-6 z%z_lu)17a22MQaNPcW_;XN0MjSCSgAq)$KIfDrNqYgCp&mucx)qG#6@`hDe1{t zA8n|fwP76*Ek&4cI}gZ)%qVuCO`9>oj*w@-W2;*}tF!KVy=m^(vQlN#6^=ZG^_wx0 ztu4}vG`+$oZd1ThDn!@qK)PYA1g?lrpVtn~N9j3!V#2*<_EZ1D`>`?`mSJPtwWW(( z1w*VX!?9^Ip-uLdnF5_L<;`}&V_@tQSWD)lbN&PYY;=Obz)p`e`KBsqEt3aN1}9N$ z{_f{2XEDfu(FJWdG@!)IRzoTVM!2*@tKP$8$#tH`bZrI@N|mX#fwQS;d|TxP&v;)JG=O_gZ^%EWc~HA2Q%AoX0AI`ZqPS=Z>7BZ#oz(YO`T=F7`sUcW{JE}TaA?oZ)1~+0FrQGbHsxb8~2dD=6UU0Vu zpRa969wbFIW**XDybSL?82ViJJ%KqOUZ~UpsRmW=Cp(+%>|xD>NVZN_KG<#Edd%`8zRx7vB2qqYTp)n~G`bB3OOrwTZg2Uj z60WPRV@43_d?eaRBIXf}`ZrlOJ3eC$0p1mXO*heP!TvNpymDuD%9YRu$FiCeL`GnK zs)F#JNsJnOhl1UGlRCO|FKV5+Cz|D2{fkp^AM!LFG#K|TG93U}Xoc(Tn@2sC&D;6> z&$TWE{In>p`S0Rb$_>f!8OUF>nkeb&DHw=wlK}OJuonYQG1b2NiU4l1g{*CMoj;+; z88(G+Vn8rbX)aj^m2g%_7sF{KMgWQ)dW>MVd&Xx*U2xV zO$5G_>{gHgaO8dF#4g!y!Zj785YQYfTtH&q)px5Mj4V|#q+lXR?ns-#Y#BpaZ*1oc|-?_D&%+dtiq548bKSf&oUd>l1G=pjPyCg2zdkwrpLdd5gs-Vm66s0;o-n68Ik1-IC3m0600 zAC?}$a&?$<3n>oF47&G*hY&C;=ZF#A&=~7hx$A6xE|8_%)nH>AH_*L z4w5qk%kuijDa^HULpB(s$YE*dS^XWqxO#MQpW`Hr$rJRd9+d#~05Vvbnsv~~=rfz$ zTC?zYg@09xf~Rl-69`FS`x#IZqx~d5{C|*GH_+DNiUnd9GA|L=%eP#zVN^| zwv4+{;}JAAp~G_znrZ9wv19_250^@wv5wL@@ugY(T0gn z(^jHyxN`?&wS2NaT$qrRaKP0=Ni%1!n95}oqv`xB6$6*6C;?c>tu#N%+|bP{?_{km z=u@aREaCGZHvZ`m5tV=!OkSxPA`E?~VD%!@z$K1kR&Db^TxT4Ig5!)!#$gp>Yx|p;%C0`?-O`-j9Qal>nS;(6IrW>+z%UgHL0xv67mc|C zpdILL4>3F`v|w8SRXMX-cB9xegyjrWXqqNkVKutay}5XwGc;n07DWL#pKpjXu=<14 zs)_fbWw;!01<0Kr*|@^o+}-ZZx}ceI*6S2#u-w`KXWKZ^8%|H3jtF129?frK@89|* zj<}_jU*-G$!TYs}q^UqIdb?1O$>o^Y^PWu26n6kYt|#!U)7eQ_?OV&a)69d+gr86m z)o2sV>UelYIxM+VVgv8ND~Y&>w0(Jbb>{fm=F4$RWu=3AL7E_iDN|8%;~jzzzvi z$c06&bGTvOhe%JJpkzNYnci_AFmlF<4DNFTcsDQ4xa#C-$Z{rI!lIL8;Uo1}#?f*y zGbm10Znubz9smKzJVX&>O`aOy_YT))980dkF6Qn82=8mc&!xcM1XR^|IkxwVV`L{3 zBU6$;O(AN+N! zIjC-Tx3U%PY7xp&U~WV2V5u?(sg=@8J-x76}dbMCP~;X=_MaJ zf%|>W<)+jOEOz*;=Wy#G*p1S-v%CsqJL8QT!@&%d;6!?|l{ZjA%omY&)`@9YqckB- zWwjxS+UZ!Ir>U)9325CBxipzOMkHE55Y8l--HJuTtAf(_MRV_6+ZomQF%20DRGDNGK z_S8=v%*1Ortm$AzPlBnnwbvnp&AA2&{!|Us;`|>wDbDZILcLpg%_xj- z(GbXcv*lp-42$^G+RDD7yfn}Rw*E$_UC)@X?Sbjbx}N6X z4$vZ1eD?$UGrK34F9Z3s&~>&6^ye!|n_-jJJ>I!@Vp(z-5|ypY{9`{;J8-2}5y3%Nt`(t^yvDV)td)j`-c2uQ}WJwQfi4F?`EZz`KY$A6GLD zW-QyT=1C43$}ynJp_W<-8MhBroojp$=$CHf-NWqAWIa*HjqHMwNW8(<)@^J^%v3FL zcq7=hW-GZx?WQIJ^~n~I%qd==FAAvl%g(ZXEtkg~WfsGnh2N<2>;UCCSr@r4ErNdW z(ZHAyY-Ub5YD>M=)T~B+RBRlXTNi#Hx^%s&P4uHSSwaPR=_+GS8Y}Ossp$1T_oxWZ z86{t^w5;qbpEvm#yNI`+KBmKn7N}tEb7yL@{5Uy5{VUOOhSMynzsTXb$xw$F|CsA7 ziTY?>9P+=?6J*JrxY=7zg6YG95q#)OHZ?_h-GrpeBL=ccZIO1}051ePwENp2wp8T^ zY`)I>&L+nmy@mOg)Hfqf;3uzXlVwrc;tbmip|or4GhuF=niPuE%1*>{o%g@noFsRdZhuLPBzj+Fnct4^f)krP;vkJ6?U@7Fu zbV^St-0?LM-uLwdYZATYQT9aJZ0WVFvi+jIymV$!?LBS?5JjsOZe;3X;|RHAAzOuQ zTt^iR@lrV)Gln@Zt3$UPuijva`KKl}zLKX}x)O}PfoM=1o6$JtPUz2&I0}#+$#0se zK6^80huVA?B7<>gjUV7J| z;9+b8b_&WXGGD_ERJZ14KRv1xN>=E9EZZ=w0Q4$P2yHQmMW`w3s!Ur+#0r9sZ0gxU zX}zI(+eDDeMM$|;-COKWs;Tfb6cY=o_z9imLNrwQZtTH<{r%BUuAR=t@Q} z+TSF7l>N4hO5ea|`9v>~0GUqE3^#YJETgT>+b{ zqlDwZsj>wDMPhgC2DNcBJ!`Esye~SZ{h9x-pS>pj&{t_(M;geFLxTR%C5D;Z>LP-_ zxa3erFh||IeVk^u#4iPwCjisSJvVZl5}=x%@MeBMZ0D9@^p0Ab;L$VPTqQwSV)^v) ztE%QD9ffP~(qEzOMG(w$Fup%l#HcQ28d~dlo_2(pOMt|L*YqPnZU_)1m*sj9V5j=B zVwlk4+mTBxwnaOgH|nCg`by%C0{41wB@16Nm^DAn2L8ns_f$bqP3)$5c9y z3H^%XvO_-^Q9@P*@WsdhE3FX{+w3OWFd)fRAkfvc^g8qk4e>K$2@HHzS(LVbp{Nf; z33dwaTx!lL?ZB_fPhDdyLhOI3v?L^Km3JHg9J{0jQSJ-%(<0VB2S45^$?)>8r%0Bw z{UbP;__O$s#DUVi3qRF@F&*ORX6OzXSKcOR9vV=UNCJpSROuc^^qFLnACY2}IshSr5rMddj9JCQQ}nWRU2z4FA(yPH8ou8~M?} z%8Bi*N=e9TZv$c^+Vv!cVWZ8_1Rc7)mlBg8rpAzMqRKr`wH_#GVLwz@j;jjIDN8Sc zTze<#5&b=2K772wiuaV_An4k6deq<8UU9yW0pCk}0j&w-!NHn%AAcr>pQryD6g`kN z?qJhjxA1C>BriI2hRAqLG0n}CGl=Im-kA20{^K31@FqHjASxTSwk1H>7E|D3&%@Be z9+fa(zIj8NS0tGGxnIu<8NQ9F5@?8mo#EO|`C+}0`BTZekJX0wTHZQlbc#o-#+Ld4 z!|PAe%5+ulOLO;>_BN!t&L#@gQCmS7;T1X*jSH- zAlCgkf)r)by4(N`lEIYe9-;8)?X?3hzSJOeFLHdxD~G)t0^QrAd?Z_*K&t4L*VL2h zXS*LyPM>u~{Vgesg$;X)^qBn3itm`#Ah=Kf4;AY)Ln+u7`g-W$sU>I;7@ac&UYQaZJ_li$4xudSZpw!2j5qDCisqrtnVmK89;bgK| zYJyVJMqo{Gn%=P{ZR(3SMLD)l*5#9Fk_e+f-Rg<_J7R-Dn|ewdUUppATZHr1YuziU z1t>n|0}-%LB>793oC%j&YoQwt1=(DpzXg1uw4oRoCI_h8{V5zKLD;+QLsvHR6QFi?zC(G|R) z&E=Io!(Neod$%Eu_^)!*K&^#XdPj_Y!#);8^ptf?@DU(~YtaJPy}yMQBs1QnMqyc- z^NO24Is~y&u5$P;2zY<0Y{aqH%!^+!D-?4h$a1jsm*5Cya z?}%cQBK=@SGSt#AjH!%TQ7`=;YU<5d3>$h5B6IKZ3m56Hm^NvcN)09@dHj@H7(?^R zyuQ&lS>u1)>|j-MNifM1XdTk)I;ZXe{)+DA1TToZ&B5A1FOigv7SNzbuCxtZT}2GO3m zdSj)+P_9UPB=`}HNi`Z_Uxgmti8_6IFj-nlr9||y-8Bj>bev&G0_HuURM878=XHp? zNMeagjLn6eNl<~rVCm!s>ZP?ks1Eb1%4n))wL+-9FoFm6wQQVp2~b#j~gX3`PmLdHa;Y(WPjNnSJq&46(X_65k{3JI^kk}Hrl2-?qwR!WEq%XqFgTw#JI(MP4QRUr2 z{&xe$8J~95+%q;FXoPJ7U3({ZpN6$T9>i3}L3ba@AY5${t^@bVabB3chdPK$7Gqdg z+?^`-E(C#mr!o-No2`b}P+RV<)0N_Z9qQ;6M50fRqTr7Iz6X$tls`Fh5+T@`zKPNk z6}AvJWI&iS(Be5;*9M$(z(wmUmwHnTbVDcAYEaH}3=7fRWkH89U zjWaZ4bjO}wIdwoZ=50~=d4?c5VK|QpZoPCvn?c-B3G2(h+`v(qE9kL1S~q_?f)E)i zsZ*F0npc(V9OiIK1?3|FK4s!^bL|fuEQPFM)}rl`TC99pE49n#Q_-8`zedC#RSC@d zRL27!FtG`#lr?)2<5Q-OrCZwsqS$+>N~Ea=WsthU3gR!D@MaPr>?TGGFw z{LV67%U@16LOWuEhIgb}eFVQ>gZ(SF7SVZZfJ~2z6ZfehfuZ}2E}iPknl6c-b<3*z z9qNR7kqmCKi;a#Gh^xQDa!rC4hcsa=-+{da`&wII)FR0QF;5T=L41(&vxTEa*}TTE zZwoUZ$Habret@WWdyKH)(vc?FIv10ppmWfyAMwb$wTsAa$-xR_n^N*O7f&g zY240JnkJSX)u#TF6oj2G)dl0B%53j`#b{Ic&KFCX-vNIc+ARLDDLst;{(Zy6z zd2hhf`|B*x=1ZRkcUJ$aLi9Kst*FYyFEo>LD;X4O+bZw^C5OwO+%9-pG|dCb(lqVr zHONGSJCfaiY+e({xj|Y+e(>2#b4p^kyw=?%(3b6Qt&6YF=`5(f)4k1VE7K#Y%wG2E zUHk^}>(jsc1jeiq!)_K0l+zq;puEq6e>%`q&+k9WjHSCbiv(tv3yJJ#r6KWcLfyI8 z1j|Jbr!xm6A3u`K3-D0*$MLkR9#*a?(m3 zvl)%o>3l!@F3s>3%ukwReT!sE9(-NtHF3Hf)S7Dfp=CN(=e9- z{p*b8QK~k!z3is|(G{#6OnUGO`FQL@&-0bP7_{jhp>~9Bf)`jzres-S;to4*wKPe+ zX8Cslaw1Uv56yPA0b=oMNGD3Vl{#)Lj(U3Y`_pe)K3)!Q$Z~K_$cjDD0WYrE?duUy zxYZ;JF|QTB8!9bH|pZAFoD5IXj4*@yNS3Tv7C=eug*VU!#Cux?nRrJ>kv zEQc!FQmS9d^mR~G5(X^^^0RLh4w8T+16~Hh8-^@xc`YL6oUzUw6wK3BGG)!tTfs@; z_;)L%H4s)cAvkxtfUz*%A+Lz$ugU38&@e>}XO@KQ;wMnk-b-wa$|hJQ5hDZA@6Fw` zx!KOT8w$nQmSptcS-+5_W_SDQS4w*fLIx8u86&^nA|N;Ex=!L2b7PQoX)DoX~Z*!@bDuc?^azHz-Mvom0so=tF{A597YXJ%YC z)Bc^p@arztWF`n8HyZH7Yhzv-6SQUqxK*^(C__CRxV+pG)tUG5@I&bquD{)c63>~I z6|O4r_kO_3t;4>hO61a901gD&Ar&fP^aQ$)`w*uTaPQh5@4ohfeWIOME0Jc}PJpvGY3CM{ zCS|{+6^l7|UqmE{#pP9o1Ox{K5ivy#wsRC??2tJJgZF(a#kvTdM<(U)1mh}0AI$CI zGcF9F9JSte&8I;FmzquSAu)upVY?F@J^D3%ZDDI>J*_(jY2`1Q2*fe}Y~&K_?s%Zx3pVIs$P6!r~yjBJYtR8)bn zyr8fyM@NWgp49D5m!45c^e7t*p#HBcig3`(nX^&@Z`io+9BPAOpf(t8G$%}$noTtF z)I*Du=d#N0<4hnXm8v(I3k?NUW#0T($|~5fUEZ|@BY>vEa3q=yTa(?<&ZOY7kT@-R z{<`%|mx3o4m}mqp8(OiXR+7i}8Pl(b0V1P-;gd*b#mK;@If<;o-2wSx%}Q*PHjs-Xff^77&e8Rguugs^&2@zVvZlgZd@Vp!VG!>l*+)DhQ8s)#N#bhaQ7z* zd(L}*NRynG>u71X?&7DEPL+c3{6Dmkq=<;WTj3!?i1W zGOlyFA~Vwa7aD;rN3H$f5yA@cKay%evyk8m0C+!40Oi>Qyf2@O#+gjO^Q>uu^SfJf zIKlkcnPWEaB4esf+3JAjwM&AmDBl%_J(-CA~kWw0A;tLSGGwBn8AeOLUsc8Fct1DK09*Bgp;bwBQz`nD|%zp2p?Wh`Cj* zk!TlX{B3hTL0SqJLFf-%oR`53>n;wj&fiq;@Z_7k&!*C>YuhGXg!QEfKh|MRdscJ8 zFq?Ke8uVA!UqhMxv@i%rp$if$tatnM!MEbW-7Y$0_o0(^Of7nxNQk&!9DjjHhuf~`;9jnLRR@~I@eUlxMQkvSC{eHpL9Xsdma zK03!r)KK-uUj5$;0@;#wr_qfO>(E6S{{-fGtRl-zFY4tV5o_kHqq(P9p7})KXD)HZ zTvX~$#@YlMSM>J3fUq#Fih91dxfA%D1K!as`kqFPone0=^{_IMq^b(|fZ?+yx#D8wm@6nFHY{2>8W&dtGgM!n-wKz)UH* zgW?=({KxX#OhYvA9xR%K)U@u(XJJ14wpMLHMcM3&Vp&Idc|eT<9y!6Jurb=MGg;49 zj$u*2lDk|5&^^AzH}WoHT%J{Th)wh-Xv^X*JDd(Ab2M2+Yh6lk9MEl3heRv?=HH>R z-Wvu@3bS&iHszF(ec&Sfx$Vwx@4Yh`xTuV-(w`6JcA#|Ovcj~eKFj%2;Pyl7)~W3W z*!ra^I}(dCqC4hPUS7_()>lS#?S;A8wHQW>z#7a)UH_z$ZgDmlYxsgscG>jm*t{Y8 zaxX!&{*ntg*A&65Z`ks{k8i=0Eb+37c=c`Us#|E}VvMb)g*8S{&rP*0LJ5#(F5fO+ zK1X(I!6Xzw6Fiy1i60eF(P6e8l7KdyWWxaTDYd9BHnJV!<;BBv7hhUf9wOB?5gA` ze>3@7G0_Zk>W$Wk)cCZ71;UjA zPY1!7mb71kA`({-G~>;vJe$Q+JNG#G4nyy`G>JB<3{(D!5mL}Ll#!24O8%zNj^gBG ztMvJ}(oVd?i|Xg5U$_Qr(NX)qGBk#=N2%ri;4el7^GIh}aZD5~-WR65Nq(i>FLqAh z{VwN{Js-suOBPRzg|X3mip2nd9zlwfWFgok6q-|!w2^ksqddl1UpH-{8oZ1xUxaP_F z(4Ld!JH@^j2grba^Nz6Y5bO8iQ(hSHBJno0tiy?iCNOi`km>?d^`q)a4ud_|sY~h& z99h$zeeYqx!{5Rtn7fDA*_J(%gTX4Mis3x*Bl zqt0@Gtq*TAn6g`8Eo96>NGtuA;_KtU%(8)wRpmGIYHboe@&+7gxD~&Ry*Mp`VCsy) zf!b~}ZZBH0l(?zd@abE6bEL_={!9ig-SukCY<_dr2qv-@ep>x!p&jL=iS;Ro=^dc; z-u-Wc^xzsIw<7;x8x&+}69=2U@)V391epQX_6M9C6U7fa3`E0Hf6KIyYoyXn3|P&1B;UP#_b z8aRz|A*)sleh6sHeD#oW7}68bmrY(O|7C5dJNf(eZQkO2Hvat!&|SS+3PilopMS1Jgs@U%fzu`il&e2W}mO9f_ zrRpjPV4*_J)6(7-O=yc2?@aLVnKH_(6>VEH_)-1jg{Ha0dU)MFY(uIz@%wQEria_y z3jf98*LpL6jW4sIvMk)QiI z&47zW{ucc^rEk(2A46BZ9wc(u$@NyW+mkM%*8W5kPi(yZ))8^ zSKrL2YWagxo-0vx8M$i9$MyQ?%kXxOgM2bujPtPr>B4ef&<+*re5ehQ>X=z-LGm-# zx)V3+a)*E4!3)vi_76H%!6UV=G(=}J6B2v*w;|mYmy>4}nVr9C>p|ylDxLO`e*Ccu?Nc&9SslnT9KeSpr3C{nu{?i5_@K* zo%|1J=#^+YM)k`n;?v_Vt*waDJBBHq9%WRTMU9v3E%&CR-FZOP=NG@!$*G+WD~ER* zWiV+^`V3U+PUBKdHi24l@z>PXr7uVAeJJBDgI? zN-^ci&!z*oA9}2FjMVZ?%AmRj$c81~1MhTBD0XID20<`g^(9#yU}q&@Wh;FO==zFB z9A26(B>UwqFI)JL;kYg92HYcNHBp#lbzDV``)M+$-Tu`fwRu>2?9X+vu%JQQOGMyv z+d`cv9xZt=QOG2#@rWj=`J!JM#|rb7mJ>0K$i@j9f4-d@-HrJQ?X=Ooev{%GuY$&! z6PG#bj?-B7NwQe_v(~vmfVr|p4L8rLhVUTW=5{r5F%jSe77Pr*+8I=*PuM0xQtbKl z;HtliXzpz%I!Y~i`8EH>3rI6*f{FPlMU62`13>8A z;{awZ=Td1Z2~Qitw{hhiJx=;?xFnZ_6Z0y}BIVsZX}A#ZGkNdvG5?DaUCzvM>wL_A z?+W~6cP*73S=63>7DU6tTgEbg62LDOwJUh2-jYY#_An*wu?zHO=uKyR#aU3pC1waY z=weyn5rWV;enaau>%|`N%JzilB>t=5Cc#R1ehb$?SFY_^D0B5a{jFiIGezk>l!20r zuj;h4z~g6$nd#nA4i^BK4!O=DGygKqukU*TOJ{mKZ&3L2mQTbD#IbJ1!~(C6%ZdX! z{IS`+6fQX34Cvn33Tpt(?Z+j$TxE^z0={_ln`A!SWAi#r&_VCSm?1WhLtlt3Tpmi*aO*$x&UdjYQ|8b`T`9;fwyk z&KHw}?-cUNi48vNINv57i3kJ=-|%}S^1XE=h_yTQu95WS5$)-In|BD3}sRm zPrW+{hBa=*m}-TZUfE05q}zpfd^4X*Jw2-`JT=ed0m3cNT6`o1m9+UNw%Nw^@x0F z;Cr3kU-!d(+12}GSQ$aWo`YIa5B>|0+Bo_?8aP{&?A}HAEMxoISGyaUVCSe!_-0Fr zt;|%NaQoEA01Ehu(bSrfWI+#jG;b){+mVMYa98~jB0$ON+=M62bV?o(e!xTfe6O6$ zvMQ5NBa}$bkrpV3yQnVlO}y!2!3RsAuSwYzCPofQSBW6_KD)doeQPAOT1yzY;1Ax= zNEVx^NE7XHwDSCXm<=R|iRXJP=GxORs`oauIcp~Sxv?^+z)vJK5|-f&(d&I#kwQ2! z`Iy4&Ng8f3; zL>y2r{>T0({^^p0B^JpPJ>x)F<4%tvz}5YCAdr)T-wfp;rjBnr3vVG+>T%HZP;taj zK(4#p)w?8HtJcwjPK`$y-Jr0+YT%*b|a(@}lweFy($qleB=30M_|j za-Dx+Y*Df}nnD5HXqWVUMNF80BCIR90^iDxeDEnk`11uxbfR+ktC9$ESw`MbKCoj? zWDwc)A^9A}K~?Xb2S>1fEd^`9Jov2S-+Rekeso@vgj9e&&C*9cX3=kpOPL4h^4%~5 zo;H@p-wCeOQ*=Q<{)70Lg^1QQNQ*UQzQ3$LWwoQ65{VYYzm2MA{f^ zkk%H&(`c;-L%yuGD(O4xo_^I!cGOg}yWFQu4yM73KxVY8mg#ZsLMxMPa-q+&$jQmC zI0s(d+WE1))q+M$CC(M!KQrY}b&3Iem&aLW4M*k zy*UlNid%uAHZGQxXdsUmcSR!tAdptvFu z+>IrpeP&2v$_&Yvm>)14Ip!7?RtiKSU?$z{pCktrZ!8+jO@lesCdk|a5j2DtbeaWd}$M{z* zJX{hh3O?be+o7Z6!c_}}9XTh3iA=#Q$f-mQnmi@A^7ys9Nx&4H zu_c`W4}S#zx}g2jk#s92O*m2lj2mTuLb_JBdi5)p*6cDS4&a#j(j4}+ggm?qgVZdU zEk=v~>?YZIT~zL=Xa8!9nedE+?(-WvC`C$q8_gQ?9gm0#Kb0dds$Mbc3n2k{{anPJiyHT_Ve(X~*j9wnU$ESI{B?=_(4kVOnb*=a;FL{k z3huZ$S8M5ERnOkPX7KCtZ>)!>KTfw7C#8Y=@?;NhSZzZt?%`NPDcGAUGR*|qeT?#t z?JPVbf+st}wKbsR($QRVr#6!GCVAbHkqCuUyo+BeVSA}WAcstrvE50lKu#kYk`$!= zo#kno`!{f~{SjrT%R`tA*@PoXpyb_Yl{|PAyVz6yB8dhl{--RpXj|!aGg$aLCOM&TbfSDHkj+=iO=68?+Uw~P!D>S!0e}BNC+Wy8w_ehI5Lw!*iM$%jVQP1fmtpp z+DAGrMer}-oL@tRvl^__lHdl*?ft+6eCar%CTB48r~?TETsS0ynt3JrimdJ*{&0Cf zQ2s(KQ>Gq49e-EaL-EVThJ4;{OS3KeDvZ`;S-W38*AhBU6f+{(jy9tUPf4{?iz;8m z3M`8q@^5n>e|J&G_`L7I^Hp-_1uQj~d5Za#x7epa}3>Lm_EX2I2!on{GPbetn4-QIrSo#{Tb)=%u4 zS)nMKC{L8O@AwK!6jMcXSOW>%zOal`pKf0I0raByJr_4Q7(g`aVNgnY1lZ+0OEj z3I{`)gwLL?{9nnP$DNY#zlilM*<{b$+=Os)$;_I2Qi^9?fev2h%)*g4xw5F2IyORGS>rx|5f;@1IOZM zd>u414`C3+v5k%=y%DlJzG(Jpd`ypq4|{k3qTC(9!Jmu&DQ=Y5`3T2ncz?+}1=!0V zj+hM!F>Fybnk>BFs&HrN1YcsFY&&6cO^9*-!&zx3;-WE*HPa;Q^{n!t(MKDS6Xf32 z0IJ8ntSwk^szR|PQd_ofQG-u7y$V)p_E*(+QA&NXepz6+gf#?qQ|icz->nq~Gx#xJFj@AGhMipD<4}T;`NLln>`~+L%AfC?$w>X`7ZlT5h~Q=QmM0) z#X;)KhvUaUQJ$kjW^Wd9AWaJo1HaOnDN7LXekrT=qkDmqEuAaom+qatdAQp8=L8~VK6_E&Obl}!ce3WJIYR12IkgzrzM#d34l&hDtX88z zE_xEV02(gtq&qKqvYeRR#Qs%nYhSO7YzEYV>|u`F0?oAR7+6&&6zTUVD}gPYuBj<5 zabBd0G+rHOBVmfB2H_?`=TlOshp#8krf1bQV^sUnz{DsrbY`MT1emmt=O|nm}9&a04OE};_71& zf{IngDN7+0ZXtPCos5DloQp`>$rgMLo>$X-$+SX6Won~G)Un^Xt_s%z!?XVkdTo!J zCy*l>tijDaxL;uFr-A4+dh&-_wTK~kStLnSuTNEqC3lnPi!=lO4FU+hF# z+sB!vvtd=4P!vlX>{%4Gr+lhHM{7WW;YM0TC)_W#5tM`4blrFAq=0iX*r=(J_jlkS z*pHWj_V{f++TeIT5U9|YFgpvEB=5hcOB-*|ICC-#uN$5Wj0PG7qCHG zd9&rKQ(g{B+Rl}Rs=#_2i=9>3k8Ib@!;jt-3)-=z2K^-^yFzb1rNgu}chZVphz()h zONO7Vl0osC_O6-97CUv`++olL740&mB{XfSCUZbq8_8l|&0Z+1Kfd2hrL)0X{@9+w zw-2r<3L7=45em{(#g@RLx(he(gUJ%6R8b1H#5sS7@!4uz(CVgIaBo$-4(qAshrajfXplEH{6Wr%T0?B5h#a1 z(E=6olV6DV?^vuhtFOt zPM_2Ikn0dDU!I*`iX4P%mN6NZ#l(sH>jr+cSk%Tvden)nJ=v>I_IKmI)D?AUJkpq2 zX0STUS8X+5>@Q-ewf_Eb!(LDN#TSX6rI8=jhM)J$5uI-4l&L(_aA6ypI1#4+2pxvgXfl0oXtD;W%49(&dEajYwkR;jGq4-g`5o>Da~OOi#(EV#}H5Ju=> zuF-xYUT@1fai};uc7;CADBUu z*<4+}IY&35TtF_=ufM`!ZT-5c1O@B4$#gz=_3xBvUAt0iSp%nzYBY!gTue#ofy#%| zZV4G_8g1b65S-0|vwU61e=S#9n|H0AzySY00KkmNm31F5=|*R*)tnmbum9U_boiQf z>;X$X_e0{NeL?*1uM3qV%{bCDQ;vS0**i$(Ytdd5u+R%mGkJFFjN8sFY*F^Tb0@62fEK0&o@ zj2ZiserHF7o?Ry3mY1uE{zufQ9{M)iK`gX?9;PfyDwnxsbF)DqnSa{!#RPEuQ@>9r zKA%D?tdZJsbAQs$5SML^Br>!4bfgmY6~2BFbCyvu8^f>6p%1d>{s9ETG1fh-w5(N$N9;pmPC5x*J#wLUN8 zI0}Q5+Vgeh?eZ#bw6A~N8q{mOsT1nTVN69$?Fe?*lsKAxTa`c<)Xl+9dwiHwVyEWT zplm-1xjcQF373E-)cnbD(NaFaM1k~yxSIwL2SG{isl+;HIpM2WpcW|0kn)al}b;q6%MxNrrr z8ptx2TlO9Rqc5XqH9TR2Dc5nJ11q-}+EsN&@pM8$4`0xmp0RI~K`d3RRCALXtir2z zfRSKhO0pLY*nG5;T=i|k%SxLdCwhx=0QYS{|9tqTglV3DK*O~!%3J7_1{!OVRA^ki%`zD;RP0j7wOr~SKIEQ)|Httbv}IE>!chlj zb+F`L@ZwW{x1*1__)Sqdp0|P4**5*%F4mWH(T2;Hc@AmKU1qh;#5sGm!p*c6cA
CyjyXC08{p@QEr`n1QIOmDU|~ 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 apYz-%++t&y$U5Z9KM#=3-UfS+<9FR3;t{(5 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260612/20260612072001-Config.rsc b/MikroMaster/20260612/20260612072001-Config.rsc new file mode 100644 index 0000000..127dd4c --- /dev/null +++ b/MikroMaster/20260612/20260612072001-Config.rsc @@ -0,0 +1,3604 @@ +# 2026-06-12 07:20:04 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=29185 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\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\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\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\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\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\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\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/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.06.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 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 comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\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#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.1/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s interface=WG name=GitHub \ + persistent-keepalive=10s public-key=\ + "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ + protocol=tcp +add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/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 publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +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 +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/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="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612072001-Diff-Config.rsc b/MikroMaster/history/20260612/20260612072001-Diff-Config.rsc new file mode 100644 index 0000000..c6f9815 --- /dev/null +++ b/MikroMaster/history/20260612/20260612072001-Diff-Config.rsc @@ -0,0 +1,17 @@ +356c356 +< \n:global CommitId \"main/680/f2c803f5\";\r\ +--- +> \n:global CommitId \"main/679/bd93dce4\";\r\ +359c359 +< r: root, in 21:20:03 11.06.2026.\";\r\ +--- +> r: root, in 13:30:03 08.06.2026.\";\r\ +2601c2601 +< add allowed-address=0.0.0.0/0 client-address=10.8.0.1/24 \ +--- +> add allowed-address=10.8.0.2/24 client-address=10.8.0.1/32 \ +3280,3283d3279 +< add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ +< protocol=tcp +< add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ +< protocol=udp -- 2.52.0