From 1573d0e2a96e393943b6443008e644f568f16644 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 15 Apr 2026 12:57:24 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Apr 15 12:57:24. --- .../20260415/20260415125717-Binary.backup | Bin 0 -> 312147 bytes .../20260415/20260415125717-Config.rsc | 4524 +++++++++++++++++ .../20260415/20260415125717-Diff-Config.rsc | 7 + 3 files changed, 4531 insertions(+) create mode 100644 MikroMaster/20260415/20260415125717-Binary.backup create mode 100644 MikroMaster/20260415/20260415125717-Config.rsc create mode 100644 MikroMaster/history/20260415/20260415125717-Diff-Config.rsc diff --git a/MikroMaster/20260415/20260415125717-Binary.backup b/MikroMaster/20260415/20260415125717-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8c5d5b13993da28ac4a088045e4916a2180d7848 GIT binary patch literal 312147 zcmV+aKLEh*sF8D1!vp{y>N{GM(or~gU2;_Zpuv6s0000C{QrJnX$1gS;^}tsnGT+s zm}dEK{JwOyCaWmLN$md)ZbWvuTvP^s`EA?yZ8B^l0>-Rat1e>yLpY0EHWl2SqFjnx zVz13?Vq@{l+99LfIR+yeg<&;k4Kx8}H92#|Qk1qNk?_!(@tZvK2YhpIKmWYeW?WVj zB%D-&6ryz80LkTJ#!?1msDcS<-e}DkL090(D2ig{#;SniLOXr`S>IZ6@*h|lbosRy z-Bd3d{aQe@`GGVF)QpBrd<||5( zC!;eMgpLST=6H!POJ$oHc8$EPaB@O}^xOtK7gmDrzwwN#=$PiSTsPx@b)`wAJ>TC4 zWdHrT?mWAUyL0Hbig<5J4FmeB)rNG)qA$EN+n&CgK%;}{c9v)20(Q0XSVvY+rkNR_=T;?+Be zn$wWD9n_!D@EI-TkFa@JAfCU|UP52v6rq6F0 zsR!d#Aax}%^u^T6f`;}CZjk`cRZb=wGa-KF3QI+zcz%x+YWF%h**F(}Ov^ic;J#bC zA9;ar8bpCR5=NVI?qszGsl3MH3C78l^Yx>K^)%ul42h-D)I9{^QA0YvU4If*GxS5b z)2j!k+^OjSBDWh70=z}Vj7rPvgE#?h!gkqh#v<|L2t^EKz7@7dsLTT!-971Jk&S6X zYt2Z>m%(Tq$qjPE?4jbC80KbBrvEkN9Or0)IgD&xB4TG(?B}bpnWy)s-Q}aqhi*%} zjgkF$r`8xQ%Hfu(jX&ggQ6g_B!kV`2j*I1L4{m?3&o0I+|4Ws7e0;Bg@RaDrZ(Y<$8?8D>_U11o6w=yVC;R_VjMr>sxvBW<(J#sN|b~<5IEiB52CK*B;!@2a$l0@kP0-P30b}M!gz5El!I_r~6|JkoFMZG50`J zI~oKyR57e;x4_Ai{?GjU73p_)klUD#EMLVLrn$Zh-L1~&?@#_BRz2>z(R@V{rR~my z+lw^xi^vp`FW|bYysd+u=1O&Bvn~XL$l92Ehr>_`#NxtbuLT;fprzcJNkR)F#B+56 zVt(rE0CjXRlb@b#G)W58?iQ6sXal)dXPOyH9&YEizjFtlzxD#UowuM~4pB6Q*wLp! z$u*DnFPW57Yp<508gi0ljF-mOcY6c-Vz>afu+KPvXOx>y#~xod@= zhL^nkXTqRRI_V32HQG};^lms;YsyYZlM}+X1vO+=96#M~Oc*7&_W>fCzpt8lYd5j9KA%bR6n5 z39Tk51`&R+{psZzFN!PDWb@020(D7%0A*?7Z4x6jvnxSBdYS0y*0>-1qb$b~o2@x> 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 QaIys{>0LZ6y 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

TZb)@t~cmm!H$J1HJLYDYWq+Kb;h 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 z z4LfTH#}DstTjmZ8u|svs*ng2m-45BbO$?jLVnGQU2vV73pfy#1krAi4yA&_mvqgu< z+nZBbo%_&KiRwT)8e1^}`+B0gxpwqa{dL_??C@|7J+N{i60J#p!;;N>4-3&Y1`%@~ zptu!f8ZiVb=}t;x+R=iC}wbfEt8({P`W;qze`^X!t|si2f69 z1+Ky};+1(eyUop*IKA+_CIw%iBew!?EfSfCbkALjP^xP9pS}*LGx<`7D#{L+3leIe`o__1uMI@6 z>$}&hPQ(W}AsxvTLd9OJHS7%Cukk%EYB{V=7NOqUDirdr%3GL6FEh0rY4(N5C+dZp zsrH})$Tpi){T%Rl2~oklM^SC71@DR8)Q~#0LQ|uszj^>{GLzIt`)3#99~az% zB?{eKC$oc-{1$)(pHte@dj!B~t6~=_wEyAgG36`U3W^km_qUyxN%!b+9Dv3aEaQ;I zI!gH%BT&U9Rxj-!5z1w5$|OP7&>@fs;>FNl+6l18^Fzdl+Ws8C4)Ht??8YVcjnY5# z5%}0>$68HwIZ-(8m83e9HZ|$)F=t?=9X`lfAl_Kf-SXcj7s}E>vBLYgS+8VEDj>`) z=LMgm51DFEi>L|@F4M%;(>A1 zfHQBSD@||ln_Vlz&~IdgT1cbMlHI}xFbad2MTR)nvBKmb{n(W^OM2&r>(v37Xr~Nz z<`4>Q2y{d}W=dD%#EI}Bp60HDo7&f3%EYISAYQ~QfB2-5GBklky4S!+2^SD`=0Rei zG@HmP7V~;HpBGWLC^Z_) zW3B}KirNZ@FZ^_U^FTSQyRg1&3u}3R=xsvS7{dzmH$O&ZfOw?5N5-NV3u#m})t6k& zwH`g=tnrpQy$@p;DIEEohA{~KS43*{t1r&TG%q}`!oTt*}bs_1*7U3>j}lmWh^+* zvAHzwdmItl4b~U!HV4ls5t(K(YbQZ?)V11jLxZ^(Qlsv6%^fc6+yPW_^OMxyYaBz#0q@M5To2%#fu6p@0nV3h#7;$mmB;G|C}gZD8^ zha={$o=ewMa{C`S)ZFQMWLtPGw4t?(|8Nd2o$c9I2RB51IO&pY!FW{FM4bJmq_o)Dkx4t^BJ^dFizvqkSMdRdkMHLHiJf z!bcgvc(>bpD=qvr?hATGuV)54c0RfiK|h>aKZ%{a<9|!(y=5ABr4pyMtV>i;tqlTs zt}M@dTF1!)YDy~RHxZX~(L3P3!~BGj*9bWS9NCkH+)&k8INKoe3x5}w)w=2&%2HLi z)e1h9I7M3pakCW3ug3ng)w4ogW*qgDSXq&$Lbe&dyk?nS;58YKkMw5r#rz2Pqbsw< zPgdQX{%1_yJ>CnLX3AbaZ~jL@t6BdD)B?Mm5z*H>xJlR6#o^^a7>!Zz-fei_ZdE;2 z9gfM8k(-83+R%=TMoZ&Msg0OL02sOrHv2WHwl+uYp5yK(1ceeo^j@%_e_D94W1WLXa zdhhzx0oWNq>uz^gbxON!Bia>GJ;9@KcFPR`NouVXa)D5-uyY9#j|VKCcpk1k-HY}8 zcW;Q1uI$J}M6c9id>Qlh3`U8c0|rqjz1a76jc5kC1OOQc%YPonri~eTWnj?F$95Pq z5eR|6g1kZ(r86ynL^lOvVaTq&hJh;w8&1@+KMC8(NSqA~+qlRAIP849;9Ify=q?@6 zCQ!$m^FTezl_D&fiAK~!FOKP`rOV@P^EQBaG}*`F)fr0gGBKs8x0HMI>?k+c<*%_R z-x^1QJpPb90cc(phI-DulV8`b#W^^q`**yRh2DnEzfy~@RecnITckQX{MF<0sryL04xC0m*Ktri99O01QLo_?E#1uI zb(aK#O2x;mQZTC^V0kdWEQVSQj-7MFSwhC!vS^Fn{=m^6(bs*apRjl@`4eU)@Ko8W zTv&J4`pM;+kmG4FZKspZ>G=`mLPmk4h4QLq-46(F*9fHFbs+#Hdw<|K z0Wi>iRP$*kTLl>@=~1|<-mY2tp%2{UxHy2Fxr`VTH837DoUsNKZM1hpdadFZM0e-# z1rK7VeV!oaj`}hAp$ZCh2ap-GO>#3zm`zLh>Ayy;s|HPugaMQn!PW$KM@FFyf_9WLA_maYsPnEvh?n|Aj zC9THyK4lZ@25mo})66vYDiKuW1ClQZKuB)zmqMRR0S2Fjrt08_)bQ~*CwzEwA(PUD z{HTW6*?%GY!$^`N%}2}4`d_CvSf%6u4$SANrNxEkK-kz$yOk2@kECV#;Lfuhl8r9p z9)O334qYX8I*{8fiS(3qKw8{|yIyS8;dm~xjRiC;D*f(47#e*8Z>9>T#mQyA2x}h- z-PUMs4YR4aiuHDybUB?j48Rjq4tGk^XH=_643(9>e}a{L?12N9DjQx=w|fej?GTKP z)-?iVZu0VzMQu#iujZQxzj_@S!z6*!G&oiZQ-hvlt0{(ov|VaGJ}0B@pC8ZDhsON2 z4FGOC|HxVN-OtH*2qxH}+`{;;UntXJ`Bq7F-zNM>;^rA^ zs|4tqO;;I846K(L!+VI4*Yg#{LYmzz*@;u{0!$)|$sA=RS zTpeiHJIx|RgPr@n$PLEpImwDl*&d^jibH6!osSFaRZ?f$&t`~OBftwL{+r4PTDukb zdFPX|FiG5==TcbEPGl*UklLK9(W@&s5dC8mj&d&rm$H!iq3EFB09Q5QhiB!39M!N1 z`>nS#qVjC30BTBi&9(XiM6ik^r;@)=->11g619)KI23rGexU*C8n%+d0<&gl3aaomo$jRhZqceb=(iiQbEov#iD3h2Fsb!Q~nmX zL3r`C8<}Wx^gE?5_>sPWk=P>ZBXdmJq_6=gCe58!zrVB!m~?)?Cj5u&<%0W}a>)s{ zJyGsY`E6-RDmMg`Mt*uTDO%@OehZX_bqfc_IbUXACm^LI#TB!kfA?rSytn1aQQvmB z3pF!3WMg#>hLL4iJRQ;Mon#68C_^J{zL?6dTh}jb-%q%$d;IY|XI=m}&*1I}x^97f z&C(#gy?t}u%!+pp&)bO17(gn^QC**~+-z~wS53S`UJI)GDn=V}+y0xWJOKYc0Km7z z+B(uyP2AIn7FhqW2a}QQ>Y+oN{{pt>Sgm?3);#P3?vL4(qLNfR0wT|fEzMqB!oP;R zmh#p|p`7o83Y7goFO>^P9m;pC6a+|4`4AM!9#UNtg2E^o5r^&po?!hug2dqI_+l9b zFqpVBHQ97&(Wd4=olE9@3?*Iq5uw?)shLj%D@@J}nW56qe}B&8LL#f;jU?|6v{+=H z;|-Z*Oslo4=w2ilQ*OK>7KAs!t&+rRRF~II*CU-wA3Y`q0qDj%fGZ(Zpx;q+6u=3~ z7I;aTt`Q^O!cUkNA`6>5kfR)gvx#Hn>g?cOLN1)yT-?o9MoU@iWq($1a3@6yr4~vj z?in6Opzq8`o3{J2g3Mupl2<%b|I}+ze+#ND3)PybFbLPD-_eaY&(-U1Bf~VT@9fyx zYegpxpFoWP2aC@;qXS-Qn7<)ih0)9@P#foxs*NuF+TY@ThC7-oR z6{6>%UCU4Ju$sizl#~@sH#dyKnMajo{1uMUz}(oC14H-q~3B0 zf1A_=veI8qU&6I|k~hvXj$%9D2y;EPr{E~3WkpBqrt98)n{03{eUcB$hc+!faw!Fx znO|5{H_suxfdb(}#wcuXewaO&9Z@nGC(FR=&`5~sMofwVkGG3d$`(MbF)mh6MOH{K zK{&k1?^Lr1k(;j@g6!U7e6mUxJ+yeMt4!cQQ){y;To|10Dq8R|N8^xitmIlQB-)J^ zX{pRMWGQvYlP{Pf(Ef{s8qHSl#mz-YRz*Ey{ei#3y=uf==7Z~0+hrsJ5&LwCrx{lf z1y*biPYzf#tII!Mk;gK9dL`xLx{H#TtMh?tmGoq3BGw$yifeNCnx_B=lRiwAQtqyr zYq;S~9tMrCZEGww9OMWKUlr<5{3##rzG7sPnuG{+!p@zJrC=A14X7yRkM6V}LJl^qnn%`qB($ zPbQ1zZhY%9s^Y*FGhj?4VBv8AkT%;yfs;tSM<>07LBf6V8C5sv^`p4nM7bIkim5a;dtsXzoi= z(R~IdgAaVox=eMbt#~e)D`V1;G|&sSozT|3VkGXJ4I7Hbd$UER^rRzSR7PQ32@&Q^ zIb$k?GK$?QObyl#(7xMKA9aeiq%AB(B#qiCT$1bP%Wh+K<)wcN4ax|cGdH`_{mP?k z^sw2HGYbL##cIw5$Im+6W&T~p>Ffc(c8PdS=!^Zw?JO6Me6;{1S90eh#`Yf|VV;ty znv+}N@vp~P_*`8RO=@HZ=ceH3Ns-{$k2V=HH(UjhXe)?Rh8ZyJKJe_WH)-Th)bGKH zyl=i8sK4yOER9?&&4=$%z<=Al#4dzqnhoE>mN?RSD)Y1sVtr09k3mrw>P1}b3(Ch zBz3Es<-IrPK)b7XsBE)8LYb%~?0nS{s(#8)j6CT(-EL^WP9Uy*&FXp#_Axi51fs1J zb8Kwme>X0KZp36chNomn#bmavP&*dZRuHKi%_*LJ28T|d zXj|O#;YWyoEnZCr8!{yvp5M#i0XMZ+it1o@=N_%jeZ4Lxs3P^=w0 zO#|9hbPX&(ABj%gY5Ow0WCzue*7N3n1=lZ{qpGWxx0SA5#W634Ti2#a-5I|XbuL^s zZ$B-1I3>KR?8fRa@un}}gS{`}j}j7xMO2aYi`cZs57~o^{h9+yYorPNI`S~~_*Kte zP+v9lcGZ>{?kLEGFMh<^nAmj`7vCkgB3eJ9;W(H;sv^f+Fn+HBq6;w3BGrgG%lcxP zh=wjIXSB^{>6Mo<9_LQ1-b&n3-oSdv&ciJDVi4s0r$S;H>P4oyL{5B0gMlT*F~*(* zg(f)MWhZqWNi=CKle1uU3ifwPyr_BBX|?n=v$Z{XU*IS@5GbJ$6cW1~_Hhc#gP1y-X6U}8&ubwgU)UaM7*I|^g_8Dbl3FlH z_UrT&q_GGh)Ziht$}K_@GHj&kK!pTho>)PMPk9oh(o*3{>R(P@R{}>LH$x8SS!Afe z*qD6nrOcBtHn$h^n0AYQI;WchuIQNAcjU<)+0g}_J9`=^6_jUMC9lZz7F+c7Sc^+*XfS-9Av!PdMdwX?{oy2XdsJxj z4&pKU=xaRJI-*f7E;!X)xNb1@g{r)i^_c>Ip`$rU9pnIt{ZHM2T6ySD&y1vjNu9{& zkPvNEtB|sjIsgh&-5??+-*5`)fyM08UvikqCV3_2-D5|kZt=(!Y6#|9*9FE4V!GJS zthk|Mxt0h|Q5-#*(9<7w9;l!Xn(4XS&teCt#n%klTELS>xY=}1w&6%G7gltuM&PV#}6S!IhXm=)FdT?|48CT(34@_!)C_MhVDi2@-?3_r{RMiPtkhAzB5F8ua;Hx6GqYYXe8f0KZDc6M`7F70i&^JM_$3ohP5TV528B<{kErH-loi( z(6cpbVJ!kIYZ_iDiT~6zOPqyq#5!5QM1Z6X*&kSY6pCW8BK$YoYHddXGRpd?RT^80T|cj0c?#ZC+n`%~2{Zv1NT*j! zuqg66B4(ZMi@YGO(M|}XtK7-t{|rN=>!>0zl54ZUmw?Rn93OQZY4t3+<|u@8s1rYB4B>73&NU;4v-Pse-71p?kcWW%s7y%CHyk0{C{||4s?zPgQO@oWx1xWid(M=S+ zM@s%uFasHd(VcrniSdV-zlO3#za#rqsqyvz$;y+7QKQgQpTQl@%fl*dVkbteDnn9= zu>_XE40KxT;qXNaJQDoSobFrePZ#wE9Q~oJyIh>UNxoA9pR}K;F|sVmfc;6D!ZitJc*R4<+!clpuyaLB9tExM?6j`iSA^< zcN^Uc7XB1;e&-q1&qr5qJ_MtzfxT%PBn0FWlp~{h9$kM-OB+@CHek7kOOes)3uY7O zU)%-h0*SVT1kfXeiv_7}u zaci%d@?m|v$x9pfc0J?wIobNnH1S6~ig!824|XpP_vCgIw9A4$3NtiNM`(lhu zP(RiJoW`5{DnZB4T5-Q0IR;2nU&GMCT+iXL*h?5bM3aqO$ z47dbgu8sCV7s^AdGnOcgTQF=u!@Mtd*h4(gQyc3#MKf`urZC1hbT?Nt5l_HzS zg7OgMu@J?}4tOWzIRLlin?!p+rJ=4tp2zv;rzADer#bzK1Q3^ZNo@g<#5I&rk>_)u z5@93cps%%}AnPsDu>~KMS2lZv`_9b7M6LXy-xz5SlUl4PM~>hA#|5FU-E5cmq;zO; z!Gjhf-42~K-7C!P#EyPQMGa>8Z?}DC{r4j8+#xVS3vzC_IAX!1C>LJJJoS8DAn$x& z-Yr!?rQd8>K$w|nf!-LCxLWXP!|uhpQ5a*>`2^Kkw^dQ}w12z2c)SwPABpuFlzGsd zpxK{rl6rA9z#JmE?VbBQ-b7&jOSOwGeoslWUL#@8&pfgAa7K&3ly9Wbl`yjHg!gKS zY5 z%cMwBW})%0;O4Ps#?jzJFp_8(%z~mn_qyX|?R&S6C!7{_@LWb|{5NuCy9q--o~O9J zS^BhJUy7F2aQrvxkTPHSy3F)a7OabOmGSEv;LffP+y%Kq6)`oay=VBZpcv`-5J!h8 zkMvs&+wqaMM-W_Glw9qucFZahVRxQQm+T3H=GB(&)_kg@I$a{@48&vyBn$QfV_X~4 zR2HH>5Zf#P59?rbs^6Dd(}C`on!CliZWElNd5EMHwx|qA`x&X;#Qwe3!btl?;<-B0 z^FSWfB^nrzm)DiJBa8(x>}ory`{oQ>*Ywj$UQXpm;B-=j`x}{#*6L|=i*e!pGnt&f z9vz$}T6Pe*ns1pFZ9cHeqL~&r6q(&eaRk>=tCoYspzug7G!3`UO_yWTt_D`LYZV?K zy038>?g(sFOu@*^mf*MnYJaIgZgdjj=FBL zu9(qihfrUMZ{^9>e6i1+iLkR7k(^E7TGBmLVhqr{wd)?28Zh96iNqu*3Q2A1Q1IMW z??v-@9est6Pq7fn4stIvGxb9{FSUR)Qq;iC^Y52o4YIg_?lN7lMaX|mImR(y76CTt zBI6h)7Nvy@TZ)Dds>SPg;68_#|2V&k)pARww4jK&jx>DyN#iP=dEG!tH!>#4`8btf z8zJKYqWWN=X6`unH>z+t*)gGRA^jsDh4miuNK-{E9Q-DD;!i`?@>{Xpr_E$m`H2Pd zsE{?J4E%FtgI*fM5&`HzTnJ+ASH1&AGs&Pe^UivrW5hQ%IH*tqDuJFD_nfRdfx@Uf zLpI`%WlbqbRDJB%`Cd*r;hoIL6IZ4H*t_vvT^@gxE;W_fuXw~JL=njgpiS3P<O&;RKvy|;V5do{S?VKf@74u2U z>`wR0H}(JrzLN#PcR1*#vPrmkfT<|V!$VSz)`4ZmgG_6~1P$$Uj0ZSRFAC_A&8WQ0Ay3&yPG zh?^I1&%Qvdc#{zcY$JSPli6{^{xbR`$-w*d*S+=R-CnUAex_^Zq5-v|Jr`5=*5NE& zEk;2ytu#u#>3N8Stqg23Rt4vfYPj7qc#4iew~NoUzT9tlu(^PMsS;sVK&`)8g}?@N zVNTCQc;F7->c4>nD7ns418BDV89tZFn^hHOogf;?jM_?8|GRErFhta zO_rFPh=Ch{&N@i&Rdww^qoNM-k>3(pKT}**7o$*dI2ex9+6`&{ms=hqWj^ta0)AV; zmnJMZ5oC|NIvrFWOx0kfC@!k(V=X5kT3iZqhflX4dz7)%|{aLt@nmi(Q z7+AO1@&zBi9u{K2Z-akO+oPrqfLLY6-e5;1j9$i33z^@)Yd7@yL-)(`r!BeSZB6q3 zbFq8YYnrw{e8epPUL0Gxx8uCV_=~ukBNAcNBGpUqwr%?cH1lhUseMQr>dmbvLCMY& ziERZplL5ru9oFdVcF3c7_;9xGYXFu7pmqiuHX5Ma;k4A#oHtc@Bam-l@VWrA_ z_>wZg6>F{HL?h-mngQd-7-vylj33)mlq)1F@`FA51@jXx^tyadwN}_X@H4tF>co3> zQe=IWHqL5Z&qy;14)17J`%n*VB~5HdRjV+T+?m9%32{b+odF9n&a&P{k< zJEk^5w-EoA^*`k2LG19mfX>-T^*#FVY>N9YmZr&Y#%1V327Kr~`#IRFd#G><71Ji< zWTw;R6mVT`-*rahpTHS?ka@A*Bk`-oVi15L^~QtHBEoo7%y#NthA8VYF-n<=I<-Nb zXS_K<6d=`Zt&;$IUT#$){^3oE9cFmTwxzW7519aB4N(5nW`R#_khkF-$;f;)icCB% z92k)rAtett9MkGhk9blu*oLOsF=>h@^8{lP`+6>drSb-^TnDxpl?D1>5hVC$#e&3s zE)g?s{K+|}j{i*NJplr3uvP96vO{YN!QQ)L!(HFwrgcXD$*MkbuoJp3tkshw>i2|| zQnMJfH)%Lj$^PCIOr@N$cEAE%P?A;qz9jIqHS#l@#{UrvwSx8#EFaG7NwB_3a>1mn zw-Tds&Ou~Hv%77nee#C_qO_|wbyvue-8j5g8Nt#yjQ*9}EfWgHW9MK{88`GP z3g6v)TVG|*%{F!+W@Lw8v7zLT#wv?!0n>Pk0oapUI`FO-Kb(UhY6Lldp1+{qO%2Qn zUw6`?c~^I5>7nTwTV0QccVM@{G4~ebSb&>Q*r`kjI)VVMlW8-xM}or7UTcC3^0M-^ zNv_|Sr)=5l;CDO|#uB=v7KAJ!yF}MrrdW1`MQKKT6z3J*DtF1NK#u_s!hop>R$ zVna4q z!PHzPyfM9<<`?nvt1-R|0ur%kzvY|N*EQR7^4?(upu z-IH6W4HFxeVvwB2fY`w4;|@`6WFC@V4Rcj0kCT0Ke*y zujjXg+v=B9jqkMY*rSvXHUGk0kX%O9?g|Re;u&|W0VGnX=#e*=eySHhUJ;mxI0s>| zE??WCPWz(fx(E|MLb&r%D^}En8))w0EQn- z)5pZWH}XylQ@+vT*W8~_F(b<@@3I(-&54>5i%~ZIltwo_SusKk8|X%=upt}y=6fEa z=jHVMT_679otLLG+~UnZ4mcOFvHNM%eMI0zsnc~{C#%bV%!1O&5FL8s=cA*xFumFh z=oYL=?BBZvj_EAk@nGe@pT|V4U(cI`)3KDWB=2L{K<#jy@Xm>2I=j(0Kq7_;nXM+p zN-%u<9~h!1a0v8uJ+p~==G&BI=6AvY{HaJ%>SvlD2>ox90|JW_lUz9n7QQyBzUx$L zS!zL+$FMj8FJFnhKpKxrs7h6h;pp^R)6Hy3Eq`t$sYn)k(&sDNCzvfG84MtS1)w?c zrz2&U@LgwDm8E*gr4U`Bi3Euk={AxFxBN6DQ2a$d0o4LPczW$9SZZPpYX%_Lcn_Z> zoOxWGA01wqiP=6XSk+G+)D6eajFZD+$16H4U#YRW=ONH+*?T-8>Y4uDQ3UwKF|nRi zL|+V6GW<#HSUOKj@@e}Ku(JzJs?8+LcWWWTc>QWc%82|%V(G3$n+d)c{SdaTRjlzq z$s#alV$ROyEW5<#%Xux#4bfaRu@nAYhg+ftsB#kR?6p=-GCFj&eJ`oQ`xzONuo^i2|dt8BbLra`(&w|C2`%hP?@m=yfx8mdsC@>k43@HV7>}h0GjzY+HL8TbF@bk zb9wj}3Kfq;;mxw$gzdNz$EepOKOF1+?8<>k_=D6=?{k@l$HUZn2Pat2(#+2>^H|c` z00!9uDRz=JtXAfA;k>6)v|AQGvseE>) z(5LV=Ay+1$m>0b`Vw;-Ylx@G&T21-AYN$YsFtMdQO7J=qO8Zp_8llkyPW^Bzy)n$x zeqBN~@FpaD%wmPdULcmPGyO6};S?`-efs>%&);8wzsWJ!QgdrnIf4j!pk`o90Gbqs z#iO?02Ugvkk>b%Ht36}$U?zqZncOl8D*A36$_<5b+V! zDr(sIBq_EAFQm_!!PaNF0X=D~PW7S*%1o}$#!%=ErX;XWJm%NGJzbhP_vRBe551CQ zJ;|p@faMv>k|RHrQo<^fiWjB=Eov|FLzqP6L#Y?;$)z-&YL~5*^Bs(>qde83Mb1zf zNCI6kSlmrur`L1&S7>birEgZLJU6PXE9qegigY%d<@rDF4F3+AqmG3LO0-Tmblx2H4dSNDEJ%@EJtyL29-8KL(H1^D*C)f zH+b?Pf~F{Z4?NC}vI$(2?TcUX(oae5uX_2@85r4jijyT#E>I{Pjw{r~b(7_S%8IZR zKu_NU2n24 zy)?)Jq7{@Ib0t5JDDK(Q&m^?HB8Wdg7zweJ9SwI5nakq};Qv0+m-e7-=9<*jwcWnr zHSlu|@0yocnGdjX@qBRq#^Px(O!6ft=#~DJ08+fGIjuUl*R)%7QeqfC(OGF6Zku($ z;xj~y4Bgf?=IyyUSQc=1kNi2bZ71?bpfEL7&&euYDws6xK5qKb8%RnvAPRmo;At5r zy|Xnzv``l7(PPD}k?k2>OS+G);bMGU;8=SqlH#PS0PeN_!%zt5MBnc#@ng`W+DjI! zs{lap$*8ve9LfD3x?`Xm)YJzGxq1{{L35LjkUGcT_}jpL2kO}J)hYeTGeOFAI}9pV z*a;f1+fA$62>op||D36N#YBl11ubh7n;DhCW zR|nH;A#i2FAdO+LucJAqa{7nZ02zX=AM?jyY!;Xi5HLQ zCZ=h>Lxls9n2n}2-JKpR8nke)F+U?LZ9iflos!|+9v$_&NSYJ7@|WI!-vu2)(^}_F znTdjlgoO+(UbuX{9DQ-tP5P$}l7VKR)HQzj=Hc`FC=IT$Si>rcA)sW{mnJEVahUx2 zZSuI^`NFvzIwI;388q=7k2wVoBftTF=!4FOOISeHJp117CdnnuYC#CC)Sjr<>??P@ zl3oY{2|>8KvftRr43fn$&oO{S@Ni_b@WAM1K+A`ashWJB81rJvDqd2I#2XiNtfW5S zR1n9*Vil`p!UPh>5@>eow&Un8FM5U+d2`^2yw8e?o$}TdW#v zuT{1v8{vUrXd~np76@040rGq*^k{p9`^<9|J-* zom%53hvaoT3#vI0ov@VAFYV+W$ydE{m+A!5L}%5rJ%E3ge99=OaKR|urLioDY(Jsf zC?D7L23b*)vg{0s3=LO8z4w20=W`%Q{T7Wvzi1<4Hai|jXJ$jGa1w|s`f63hq74Z! zEmjNBE)9m~>s2~czqNz1;<-1he(@%(_2XmWeZw*S(SFOTT-*)3fYmQ z4dkk2WP7WlD5^^-OJ)}}j=>y1Ea|6VzTrXTdped8Xn^0m)V#=!F;=_a9Jeo>GB*v1`P&hV8iaOYeGtyHov z@neDBY8J9r_#QmhEbx0EV_t~6Z@#121MAg?vQ+zjS^z}scX1Q_UdE@SQN|?85;D~t zPRSV%VS0(niKVkulXK}cW0ikh!qhfI823?%oqeaBcr=jyzs&CSrXfv2ww+ut+P3yy z=o?*X^-Q%5YYqvPk?w*!VjB}Zt_>wjs%;A%5zv&|uL8vuO4V}2icPvHgy&iG_(k)W zk2_I#Gefpb0Oh`=OCSi*#VFF&=~s}^H%Z^)3yt656a{aV_6~QH#l7DWgt3AKi|W~F zeP%==Zj&i@Bd4DM?B&qv4d03Qb;Q2%)PSgLdtr$}qYZtL(O?Y|w=aj#Q|W-{sp`r$ z%Uqt((HA(&O8>4#1QLhM9*oHM#gR?FQOM=ijHr;jpQ6uS+P_PHCzQD~&fSdiQxzsQ zP$P0c9y02Q>N}4C+FE>f6bDHsBB3S6v~+2?%}2B*JbQ$p0a;L)F(Vf;#yJMUQeuZ( z&u{-?c>FSKIW}J_DfwH5`&KZh#Bpa1)GA&2m|FB+*jX8&>&P0ZE2nsczE%+61o1S_2i&V9F@h+M{_ znlK;7m$`c7kwxgvp@5gOZ2!D|9aj%sA$L*cJ9wgh!n(v{b+l9%ZSQ-m!-|`8=7nna z8v+A6R_Xvw6C_$B^gOQx(bJ=}wMxMxZt>m8wW1F!zpmZJT}x+%$hKPhFkmz=zc_Y> zNg_uQO0F@1QGLrG5ByLTFbwk9F?F)~*B_1bJ22{!Iguwfl5EkXf3UYWdU9^xwZ$~F zO8J~_Hk!#md0y>WAD)gl!4REd8wY1+ERcqN7y^6O&P7Ns#*Os8>b70ek6nfBk5Ri# zJtrp^&(sQYNh2^xvEQ_c1D5_e^;|{H?+ff9dc@-rNALG^!3;BZ;A{b1?+ong-^03(Fn3!(n zetNy%4Ob#OFJ?|N_~Xho45hqaNjYCr^=P#q5lDlHw92V|x)V`)CWNaNh^|9o481f1?fE~6SmDc?6 zA9@h`4yZR6VnA2>zk+=>M}_X2h^j*T;H~A0@DvQ`0-W;V3cP8$J7h6%i;Nf_&lXY6 zLOyw1Y1r{DCyl{2)smnOy^2+EWl0>rJn*7kB?z)W#=Zp_@Om5G(hNn21SkXGoSppA zM~gVe>L|ymk#}GdI)fWH*BvbO(*-ycZZTi_MaIJUU>!IXPM|P)3!exyrQ@)5NjX7` zAitxwGL(vzk3k0^W6W_xBTEs@8wfYgr5cuD&D8C56 z8xL|4Zi}L9d+>aA)&p-V<;ydZx`H}Lldam^DP3T4-{5Lky>@@z%b_Ekgls#Uh}x{I z8SJbd-|4bfI0N3s{HPYYvCM-#hS%r`ww09CY1nB>%e+mi~tNqt|Z zCwIH6j+eUN4~O9_BzJYsr3BZK#B~`hZ5AgzGNs|tKhP@5DAFBCtj*D>TB-LHgyAPL z9tgR}V5G=p1M@fb3sNTXLGldD%ohB5wr;wZ!9P1TpIcVMjBo1Pn#U{+2Lp4@9FB!- zK0VjFh4I0~Uhaxr+yOyO-TpxPGG-KPo*-@UfFwkQ;U-j-2}0Sw}iB^>Pp8l#EAxAvh3 zaYo+Nu^KF47OhCgv=;T7EI}T75PrW{Z2UIzthxP5(JHI}TWHQ(sdz5(R0lCCx? z?|BAH?Wk@wO3iccUrt&|D4qq~GGt_hocI#=r}l{g<`#3X)>O>Gbwl2fFxR(NuSjfS zRrgxZ2Iop#9WAZ=YyYS+rA?*agXc090AG`)8PY*5E6SUfRSU|YUZYQFiB(HGJ%1sU z(=CUZx{`v%lAdcRcF~1oF;xe;;o;1ReTKcu#iMF#;Kx8Z)cb(}!KngCm_{Bt-}bX= z=ViOcE^759NO3_=y7bg(sT@0@>|X?}GK5f`Nx=WVtpz5{B-8bb7}*Lvfpoyx42c%i zKd@Yt)L%>bU?ijoOk8}ud+(H4gv^zpqO{}CbI{!6Huo~xNw9~d1`F|la@+GkSYJrRjwsbmT=kxGED2 zpc0jd$x49#Qoi$$J1!v%id;qbd#aFq>AEwCO;Sb$wQ zQOFEla5~~dq#}hv1a&}-$#$j_hrX|Ow@?s2coeRM_AePY9!`m#J`FNNS?K9M7s+C_xO;#m<6nBm}P`nb%Ni0 zXcC}} zF<2CHjmhtlh8%3JtO9W4V(To`efzyGa=BM}Hdt=uj_Ip=y+(%O4ayTFnFN{Z1|kUP z_lvZ&>H(0waafy0GZwUbDZ9l#fc>7)8$$MUucSuHX`jMXIv>3^avW-^u*0&=w- zpkIvmpo;npTf1Cr$T;#a{w3ILQ#W@~IDs5uO%AA$TO8p1as9<1qHw6;WdTu~M!-E=l9?2v|0#CH4ZerBhanO~f~6RU7gnJMM*Lm?V&LvK zjBmuyZ+{q8ti6_TR0zqTEKvC6-THK;jtfuVHYz!NeK@nH!h69)s8NEe7I|Fw-0}M_ zzn@U?TEj$iV1}SyM)_$7OVla`@G=ZJ3SO4>n*U296lGQ&O%?L)8A|{74R%jpI_31h zvJV5e*v6m>3v^I0P4_c)3BqhoqV`efdKLkol_K5du3~Vf3ciPs?VT*_i#^TJ5t`F* zeSUHLo+vSv%Q`Ur@P74U*Ryv%#0j3~EW)~m>;Q%%PZSh9$LSkY>m}JyhZqpJI#JuQ zl|~UzXUQy@5HO3rc&1L;WPNew7&|ntBPA9Og2UrGi1FrAm|QxGQT0FhsBqIZpTD7x zdwdzb8qsr_+6Ixyuml4Q^7W_OyVfb_h6bN)*7enqNtt-kM_-{}En8&vAh@Pm;ZS#l z{b9)$%&LN3#Ok$wd#vlY(-1(fk1~3NP@=1NyiIEhP@;|ldz)+NQkjD)xXf>cgax{- zmW=tw!V6;N+pf2?N)yzWd`g>1Qp*?@Eub)~esf8@c-0lHA*FMa29ChL?d~f40rt6w zFFk{X)#~Cr@h;hk;Q0$!-wv{c8z_>l@^PX=th_Qr+!W;ColaZ0gJ_yz*H<`io&fuC z(td~EKJ2_Zg|XiQdSu6=T=(n_7QlX4L;1Pjb7a(IS+yYcgkdCE?|7pYQ}fiVQw5ai z{uCA}&{YaIq2yA1nwY&C$JJ)Rhp&-jN0!oY=&pNozukD+UB-Cl?DEj zwbM`4DpLf$Yk0S+9M39suK9aq1iy4vCR!Y>Mcb71%>G$5;2QY;f*ZpQ-~N}48oruR zn}lu)){DPGJ3)4oqyYUF5MuOw)yLPE`Rnd=2>O;u)AOwro}GEz8E;7YtPP+4O^h|qbL^DQLo{hvvUL0t+VclIsfeSBf>I3+XuwQ>Q^ZrqEY$P$b#gKYV%Pps-V35w z_Lch&l$HxWreBp9%)_`i>@B4|`unr_{}mUEbf#3F`X=+%uX$t# zd?v7pL0Tg`rnqYk3>m*(l{(NYqw#a^U-E2As*llAgqM26!~HXh5*B^s?P`LR&=`K562`)8vAlp{4c*I85$TB`oe#eRDD29wAx9H6-U1@5 z+MF>iB{g2~iZudVm2fRBgGr+rwd>n9uV8t5;)c+CbU>3;rpE>(hWQJi_6JYyNDIs* zjb^j=9=S8gM#^Dqv?zGO!O0>m_fny#ggDob0{82AhqDNG%K@=dh?ed!mTR*i^W_l(sHD7d+lfa?iL;|kcK(KYL$tWT+oRGHa1Vx6I!t2ciE zgp*fMYUVL~K430h4w{PykKd5h1wCyJX(@HD|=Iq;0tc8f= z(bam7eQ3yt8!l)SbxNdNxyvmOak}E9&qMy)w>+u3T`cp zK@BpR+WO}JZOR~OJTiX{y91FT+NHqt4i}@Utm9Z!^=rM`E<)*D^no%&OPRJiK@{hp zGyp(LR$>>5`NFGO6OiBqr~ejPjqJ7agWbCc5fEn&q7{h80A{p}!%>dk`g}GGS6Os{ zoo7S%z96;3#>GkiVw*OQpAqWPAPyOa43OM!H?AjXlDg7d*Oxrw5_=bd8 zanl71ukJ($AywHE9RVgM z_{ltHZ|o)3;y_3f0jfAa9QLOcY(G4S#BR8DO&Jh*aP1c;>U7jYpf0cKLj#V=%DfZQsXeZ)jo9F!1NdZ)KQa zf7p_)Ik--efc0?)NEVG42qd*^6l=lGXqkAcQ&-Q($3>gv7J1=0IJ7njGB6WHAJ2&4`wwR-0mslvTcKC_sA!EiT zp0rP!w^tj6t>%+1ji#Yfc;T`avjRY;>E$~4QMQ+GANudzCd31&w<5v4a5xjL0v6J( zV~gnp$w1M_p9)OnoTy%Pw8Im|(mSigTc-oL4D@f{w*|c7%BUvDOOkpAbfW%Oz?ZXz z4$Anmo6e#$v-pX#no2G!>t;rQLD(vg@vbcR6b7%IDYPrX7RWs*G9@{s&;)9fAX%r+ zxv8^PurC*37aCF#+0mhCJo8Zc4=G-f+*5=i@K* z0qKFSVIjOKp<*vZ7zb{)jfKj!-Ct;K1yRo`wk=%MwLGr77(m->Y0k^)NKX zo<}0(Hpl7OjZ?Y;)E2B>AY$j8Q!dd5mc107R5QdZ%VYMH1+@xI)$MsP_l0u-*yi-y z=Xw!E30})mNA12UJje8{1|`Hho8>~i$Z;pRewl9CqQK+5aO;1T;PLKb`es8E(0U(P zcjp!#hQ|Ow?(hdwZI&{~enRD{koki*=G!ko4vd&96#QAva2YesVbc9Qg|D-fnm*s` zv-y$8A@MO4Xdzpw+D=2L3Ko`t0$!EXGblw0c=W?}hNa3J=4?rZB|iPzCUe7t|PzZYt;34o!s*QdNobtPmTAi7p}igB4H zurAPk8N;mvx5{_L0%89(v4Td9FGH!w#~%0w&xJLt*P%qnjF>|F`#>waa+QD{ zpfH-ZHb}T&A>U2LN<>r0G0<=2a2nkmT0tD`jUtH)1)Q=F*RDNoCo8F*@Nd}~@r@JgxLsh==ABih<<#j&NhgVO+?fe%}zS{GL;vco#<{_!Ck!1N_{M=G=?3QKVAHx|ji(Tb-F8F%q+Ahp|R zdfgZ&#}PZ{2^te(KNjt}p>#U|hkiVF0^M@Mwt7c`5)VyV>>u7vy!95q3sW_`0~gNf z22jv$yr*Y@@qx&{Looh$^t)_PEY(~{DuN)&f8mV0N@b7WQKw&ZD}j=Tp&l|uN#_d9 zLW7|9bN-l_JTsuVya}Simv#@oC^vwB{Yp)IYx}At(95=U@HS*!yv{uF zRXgtERCm}O!l>6@Utnc#rb7Hbj zg>8r!89bd=8=H)V%|ZC3R<2M;dX9PX8VXXvST*T3XAm0kWpquESGio>02}5?32(J= zjolgnW^yAokDRB359ybQBNtPIg`U7ENjq_I%-I-*svz|<&UWRB^g0!6DJOP3xK1uW4~y{Sf1ltnpw=y4Q@!les{v9)Uq z*I}p@iP1q>N0+)FT+9s@Gdpo?2pq>(zT$<_e$`Cl}@+`d$e7M#B(4ubHu9H_8CugJ6n3ptCtm8`U*Wv{FzU+ z;or;=|YH6_qFe; z17uUl|0h{}S#=i7pTsj(K zS7lWKSthq_Yq+A)vZxj>@JuXmdOj%paqEz(^|mnM^)Ad55f&e)ya~&3McECh-cFeP z6D;EiDRMxX|)JaS1%!Rs+L|5W3>mOGx0y_4ojW>BIgBF<+EW&Z=eu?Y# zH=aMHlKX680LkdE4)h@J?ilgG!|4Dqk#~1}G*Fog^AS{2haQdn01Uh-FRwjXpIF6| zve_yE9O6H4gvZy?Rqk*x#Cem2q2uz%678eRXDc-B^WF)Kxgkfu)xVYsLECG{dX(c) zI6}++_M`_xq$4pZJ#_8x9UB`bOO4UKtH& zg+~)gx(Cc5VC&|s#TPoNoboCi)N?W5=s-#%7>Z!UPusBOytwQ@&s&5e3AD*sxKl;xCp9_^R?6!sT z`~D(*lo15O-dgEs1_)?3NDKIm3icu2O+cbqqv&9`;4XYU}9G|Ohn zBadz1FwNgY-p~~XFHp`7-_>&wu&+>8`<6U1K<`4c;;eysih{(vXBysxY5uj(f9I&? z{fq&`Hy4m5=RPvj;iDDfs^~R}M(^F1ag>F>*6xQQJ^KqEFvihyjs+T5*PO~(+GGdV zgfnP_@ES)5K4nd-w2}Se6N9=H6#fa)fmv*f|NeZnd+Q&>=nNIS=C7Dvzu2|49KhUU%l1i1pvdt*^Dzs>5?H*I>^Hf~1P2G316c`G@RR zJ3b|8KS>86L0=QgHO1{ggpZzlxbvQ=c6ZuZsMtut+Dlbun&L_KMAhpUe6&p2#MI2s z5mwB}SW38-)x+D>`-0G9UqC?t0TuNOCn=@hZgNR43X-#Kgh>n`bJVC6e>s;Yb%D=m zA}LWoOI32mV?cV%M6YBZqZjcEp&nJ^OBM+>AlQB*i3O*5rFI%H1w#*(AU7QB#zTKy zu5@DF1iU@SAvTDM*$ZEEmz>f?xj@>t_{4h!GsIhl=)F4fdZngaI_l*==02Yr_1lGn z2w=njhy*dQe+#J0z2obYi^Ue~4LA)-Ioph!R#Ikr&*Z$A3UK$rfdj3Qh0JKwHA3?6 zG?W=E>F%YFJh-Q=ZbbH=lR`QT}}(?RJKN05X3S*UV+@+#7N+F1`@0JKPzFwG~e zBf_u*(2WF7s;o1J|7vr8WN8y1;bf?zNhHX%Ol4%^X1pHXGtKc36z(&W(Q22mXt{s` zsyX%fU{!}qe2Y2i)1s0y(pZ!^%*r^u2lk-eL{L0^02!_~QF40TEecdAJZ&-Q0TNlZ zE!<=8{fit;Zx|_aZ@wmp^u$z;mdWR8(?~cKyQm`|s5-f;v=eBda2WjSQYhmi>xZ5- zx+wZgNLl<8Iy2yu|Evid+Qbb;L^%YxzMXQ*xa#iO4@hUB+p4Ta8nUMC-}Lu8=Tjk< z?q+aD>XX|-@VIX~II?B1^Y822>~SkR;#n+r0_^Pa0{Ac8pq>9f0v{)^Bn96mxUs+? zJZ(OY)bh2zin_j_N+aCHZysw9`K#@Pq8k)9amw;rgEh<-6HR7d=cC2_y$p;7EtMTd zoSL8?#$AMKVXVBWfYiA=UK2t2urxU&HukQ&HI;m6gq)?vRRGhzH8TYV^kye*D@dO~BI3;L~LEz_dRCqP$R+&iCQs*)73^$(ODu zgxQPb@1t-2E#Da!f^Ppc%=va z%M`?@&e*ystqP?mxaZTM;_>g#`Kr*?r~x-Lo>auq97Oq%H}(CXqsuYsSl!am>2n|& z>O+U%1l}H%LJ6eT>;{m3bRnnJC0|PDwwyP7)3?NY5hOWv@ zC?upTG*~b!_j*iPbaZ7++P%VZv+A(c60NV8Fr}LKD{+529|eO~4%I1ktj7_^k^3)I zAJ}aIZpG6tqF>^ICh5H*3)7#v(JJ>zu}-C?30s;69gz-x8o%HyZnxdz-{0k#JQ zHl&@O5DMr{m&F|amV*Ynm?98zE5g!3BBA0M)q$F2R;OU&TeSqY1Ep|mFM2i@f9rmd zlal`!_75{e{XCT37JI7R0JkONcZNR|>4tmy@qFq5w4HkxMbK-sNG)n*4#k>+^mh7D zG>c+(OPP?$GroUq<*KUgiTVuC1AXq*bl!N&%WQewJGJXJ|2O#kuIki}viA1Ex zGzYbH$~r=wgWxtn2mccn3GA<%&6ENdwzx1#^O#5^8cx}>{E99S5 zpPfa&(B)9*O{(8fm>jZ6(_4%O45~XfvqXr&Jvx@YmZ(@$BwVQJnS-#N>FR4X$B<7z zm&(CA7bK6dOjSQm?Oo*cLMvPKguUMHm+^-9avQdmOeh2@xe(mEJ2dv^dccUnOHCN1 zy@VnE`(l=-Rh&{^`Qa$5PWgltLRk@S{xFm?`bI4FU;~?1&jz zWdD*+v9d81Sa07%dB7nS1Y8iai;|46nAL_K$#W9_Ie-Eq+g+dl-coRPdpDA@D^lf_ zcF?RnIX1Uz>ge=pIbgeM!|G&ctIOw=gox4$-IYZ5Ofxk#J>YRTOA zq_Uu4HaZ(7Az_N)W#9b#n0sLs4NB>vq~b_hXhJSPg8_f|bfABYYOIJBZ9g$4!+Ylj zNcM|rN(Gl_-|#s0h2!&WLp6v;J_fR|6?qZ|Rz>Zy!>fZn;CcJyPqnJ@k*!KNZ#E@> z1Ldg(RM#R+II-ip%CbQ+zP<^`R58X>xYCUpR72M<{gl4nRAY!2#|w{gl{aE$QAC*C zvjG1j+H+f$f8y&xJxY)DL{vr**X4pSaa&EB=_jd825J>r@cY5`w(np>Y!;y1zXCc% z5il2Bw8+v^CpV1T?*EBe#LWz@4N5>fbxIQlCnN$g0^p=L;2Tvt zs%usU!U^_?4NMmK&^O57O|n8DAUbhJPlS7tOld>hQleiNpQkfimY?Dh`}t_&Q_JK zIs#`JkGWjmt&?j0mmYD=8&lo#a6njh^&cB4`*j>A8=}_A zmN^o1eugiYJ}XAvRCq!^#C*<+nm*bo6!Gj?^>u)fr2%(qlfe(&7~m}(gpoyMaT~FeTw1{N(&+>dLI&s5e^Z?V2hgYvWe@p25LlO8H|Bc z+m2ZcLpOmb)H>aW-ir%3ipa-{|CmuXcWzM^zy&EX_z0V)wxjI35YU zeEDOxO zGJ#D5@8IO#rNYdE`2I&5k0&eUl1QmXnt`{gP|wK!Y{s4pRkX8m&G49(QSYp&N89W6OfausSxgW?2rKeLLY}{)1=nuEJULxs8)Gg2_x0C+0fP4(YnxepziqaN-~K_EDO$1%B`aK>6i1 zuuqcmaAU5z%s!VgsdZd&rO}xm7;ox6hF|NP?_x$pcCOx_F7{}6{5L*gSO#*#p&8}K zY5X5D`PI4W1HFOwNnZ!SBr`({nv>tEOlzXkg3x#YJB$vGMWVZQ;wQc)!{q&`fOUWE zXyLyQ7BY8Y3>>QsZxX>5l7Ja?mb;2|@;!n1kX%{Feq_`*!*k8p-cgR{#oVG2I!`=C zw*1RqeYw)mffJHDcyyUL-;EWDTyGxSvX7K3n-_4xdHL&;?{mLLHC)W`Yepcsiq3VJ zBf+$1`Rz%i46SgB-m6`J{gPljj&q#ZG}J>J?2Dyx&S|U?eOkygzo?(4^J2dzvig%T zoc057B#=ZwlBV};@i?B>1HGuLLAF9C_j;JS@{D3*}IS;}4{?})=`{gBV#HNY# zdjq~XP9pvj01B?w^wCv>Z*%)8$h#*t^mws<4qZQOoJ&N7!B>zgF< zRXTw0Stk*xdTH|zy>@>!F{O~np;9tBVOg04{{)sosqHEUyxEDVUhQZcj^@n(Ql}!i z)y{jGbq`i0v8`&x$`WgI9y+hGzYl)MswqtYnqBTE+F$6QEFE^)Oc6U5#%|)d`T@P) z+~%I_Uho@+hY+mj&!|%Yk#{}(v{0DNS(NFP0DyZ2Ncu45K2A!!E0(PD)vvr)rRRhf zIV*9Vhn9LWZrtgb)$lB)$4mcnQd8&qRr;b$kfl5dL@L8f-vpiV2$Vr>XC<`<}77i>RfLPT(oEzYQxAh5W3(R(;}{35%T!_RPnRyQ7A>z{)zTq*&1nHEVUA) zqSW*35+)8l&N@;BSculQr6Fd3+tw5VMh$`-&wP>oXu^vJJ?VrkRqMu)>l9EwNo%`y zJ#McusXh(h*$LbvpC>rUIB`Vfr98U2P@jMg%bf_wDH~d!n#dPf+2Luf%1Sei#KrxTy=E$O9SB+N1%UT{X@j;o`)F4mg?n$=$vAT>-C+l59$OC}C6( z78yU}F^2&^J#c&EqY(pKQ=jsZ{q9JOIM-UE$>86d6aa1L6)Gkl9NcjLAM!EMUibIt zm(cgVu+L_d5l7Y~QF3xY62Bd{!PMdVLBpt9ck0)dYdthpftTDSx`o%MG(YQlOSo20_jUS!Go*;Va1H`F*}hnMbGR$_+%EkBj9+HvPOqbO zD16#o-uro9&d%rVl$f2ihJ($;<<3Hxf%i5F8KLg@#qSgkfQCEi(SP)c&>3*?-p%EB zT$cAueGl7rfZx9D?PGU08n+JmKBF277{{RZtS`L?0gJMv7ZY}lY{I>{ee&a%&TYksfSRO2hYrsPwEgX*4L_ zGKas#gTynAML?kV3=XP|PiS!hTK)Ov2A?wBdvqv+q*V7{>M_C`g&d#Ax6C&0tkA(a z(Lv_Cbh6Xt7knxX`vfOfEt{v^!I{12|NgBYT|Jkf((DMU$x@`U?g(_C4D!0WN(90nTJ(S!_7VWQ$f(`Fljppu^EB7sJy)Os*7s4`^t(*L_lUZnjYd6TxnLES(m+UqKxmX? zVi0df{2smJh9Y#ul^P^uV9&RIJha0;F<}CiAOPz@Szi8WhfP9)%3kLI-05T7_O(z) zD>6Av^*a&y!L2HtjMRaYJIYGLpMX}gP4{pJdO53Rac-loe%3@YEW5W@#Mj9@@9Q3#D0txK}R&%Rlkv=1G)YQ`c zX*{xpq1$EUY%KQN&oST5U~aoW-umNCzxpXQ3_6nj!^{*Axgs5QI&vX&@bPdUZwecz zM$v*~Z6~spp%^bLq4sfQ#HNzZ6X>B4D@zQQj4KrU#Eo-RFS`-7p69a(vQ&uQ(atS_ z0I3z{5a2e|qF(u z>P}z51JhrC+7J~UTj>awFLfO0)*+lBx#TGTj3BVGbz=$lMi6M-x$tQ6kBSWbkISjq-YtTDg@Vyi)SSXLDo%?U7CW zVoyeUyZIlvW_|D`^)OG;;`f$Gk0t4) z6XiL;EIDLrSe)BKQbV3 zp8+hvGyrL_fPhvV`YA9MxQgU$&mlta!auYB@P*DNcU50zj@$UYDO&i<#GF+`AF8b+ z;Ji}|=ye=5W2`c%nUSR<)-uyr23Id23A4(9WhiTC*#*_?i+5ECT4dp zS71G`O0lX2xd#NNz{}ls3!r#tb4b6wqbt3(C65E*cQvv~>}2Jc5p1yAQdEI-afoMm zK!BU1xNAAqpwa-C!XG_jhuF4g4cu5>W#8*|{L+OOHppBqTo9w)TUJHd2z;1k)8IstPBSWUUPsfFF%f!)3bqA2Un9GCuXM{qDmCEPoN?9%;;iZf9UV%w#~u zDbPE)uVjvxWe>XFsS-86YQ*(Ru=0G6}XiAhwuVIB&*pTQrnHA3|-2ulvW@CvJ z6W*}cVf_w3eASw8QXjD<~FKa8KzWr z^nAVgU!|_AUwG&^QJ5koOaGvdMV*t+t(~YBN+RUAlup8-xh%kOLicaJKkFOXX~rG` zV0v78In%SYW5?Z*Wx5Mn#aP4LSv$d3@C8^0#{ef^%pM?|Pn8oWvuL ze`+>{RqzVi`KEEPH6-k0-C#AUGo`4#Q&Bv=&xS~&i^4md1;DoIZIs3LAfH#jH(NiS zmhd~e_H)ngTp9jg@W`(Lw|yz(8!0KE#hY`3%qzv}K#HYyFNbeM&ZgL zU^7Rgr1S*>N5~1vr3%VEB5?e=r6x0+(Hdqv6h;`<+;HnPz%sk(b%05L>fkj4PI?D_ zj1NWM_nkNGa`6sCi44ofYi1Bpxuh~u4V*)5w-I?KkHHyRsX1?=UA1@B&2q3)MVa!S zvnygT)#aVkfrxAc0doNCXiXSxj5z@h^+gIq@Oil#s|A&0W4-(LM!3V`iE&CPUSYO9 zs@{=d6LURUNYy+8O&iOd?a+*%szr#!L5`>9`@7^N20O4Etd_BxQb*QVHP=M&Y+XzRs8=a>#VZ^b{07S7|IMQ8!$cJ(c^#Qfe7 z|4UbUBf+NPay>ZcD?>Ioia~=BH0oLggc&O4(NBwJOxtx9ebm2ao;zz*If4w-M%Fy= zG@$j0!_|wdf<#?Ra;Cd8?H1BqoIc2v3l0<^Ex`_KMgFZ zFqJX%bOmK|k8YB4Lh+z~-Bb|fVs2}Voi9ssn$a!L54rs|Vk{1>$$SC6Z4+Ec_qdeD<*fAX*^M8c0T{(3F62a!U3$f zBy;VL;#gtoJekV3AlBn2h{Y1Lt5`F@r2%Bu*X(crANK38Qz=|0S<#32%t0Ors8KHF z!eC@85&sQ|3q)2!Xv*&V81bquy$};B!)>gHBIj+Df=qw*E(;&g0J8{{7)PIhOa)Ia z8FjItGTAp{+!m7w?>iKmW2IcaYn3!VbHLm;8Tq@2PZXr{yS5e(hI92t-3Gs;)O^b`78IGCiH!upyXRWh~Y=xu;lb)fd zOi$1?-X-7G6^CF3+IGVcv%+zyuPmx5eB=?`T~D zISKQJq6GEfR{{37LaK8xG?IOWTNh8)G^5IYZWBm`CtdCaV=BjJ1TTo#C&G@as|)TX zeKp!YXl*+Gx3;U`X-!wDqy75fqp6A7BoQFnb-1GE0u@k;|rl*D#VT~RyV&?$qz;u4bD`z?;7Cv z>vG;n0#anN*uU>VqITw7ZvA8Lm(qorH0x75yf254ORM(~qtuV4=lD6Egu%6xy({*T zWBDzSA)Um`_Msp7K=@u?yr;QljJR&Hw=!1-2g!=PIZ)K=9e6L7r6P?YwZfOmooG=~ z8;AZ6Ut~s>zPbPHKMaqu-azfdX}dIGebVcI?6I(;#5hnAs*HO)@OOI)^i%rAd@BWf z2J-3)AB5TOhxjEhx~m0-2k;_GD-m8_)c)Gym!}S8-+acG>>oF{$&bjj_qD7i z1<52}wyX7eNRukJOdtTNanjwNYYmPSzFlB}{N)kjyeo+DNZpDYffObvw&)5$-KT63 zb`kvuQDb9_Zi!fAFROO3UAP0=OgU)g@r~nt5kP=l&uI+WgK$$B&b)=r2i8gEWrclA z5e5W}0UMCqA?FOW>FA1j;sS=>Pswpdks=mBr z5;;ef9!;V+;8MbM`_$W4@#>u&E~T!~eubC-072SmZ|=*>e-1?6T)MO{*zh#bfBaDL zG{uOQUyc>lff6XAr)qYf(+`eiSbZ|dec}s@ za#1`qNIh!WMm%P;|FK9Ojn?1!^;-2u7A+waHk15ZMiY|uV|L5)*xY&(d&_Eo#D2c^ zXz+ldUVm~|va6_WYmk{FK`|WE#$45^uOQTKZ_-!?aN1T4xb$vw29h1YgXs@~lhU&P zW`p5N0VClEUf`DK8)02u42Fm)<@ZOFkD`w{kC4Thl@OaKj>Z4hMD!=IS&Rvsz5>0k z`@W2vDBc=_2!kMW`*uBD*DKA1P8eoJ+sh8}tCSwC1gDBP$|gvX9$`tRi3jGs=NdZm zlC03Pv4>gWe1E6qM-P#;dEnepxD!4e8C2T^BESXPOM!Vy(><{#KA&Qrh`t1a;Ft2h zLnuZFfNd>U{l=Sr{~@Qpd(2({b2}_JTz)yp5H{n>T+Qu)&=bd{a0%2!Z z*Flwg)d>AKICJw6-6jlZt_crx2wsyMh}ZLK89Y#=l|(4FKnY3W;=T{9T`(vw@As?p z16OuXb|4g)GQ514J+i38FX*&w8d3n^*PXIz;u~k}AM(pLo6WyEKlgYwG3BTY4n-cBl5+9>Bw=C@bs#l|=Povg>o+nOdryQy>YC!dngXPuy9vt`S0!-zUZX=Qq}vmh_P2lA3qF$ILlbb7naxu>iuk|M`` z24tS6c~7eEx~dP&pq2~8Tr#s}b%z_WBO5#qc{;i00Xm^%cjG{|W$g5{jyc#TAG~`E zU=9bWpXq4bMxDe{VAl zfoj6`X^ay$^`Q!)5oKB{Zc~tz+Aexp$BVrDJ$+1sOU|!4n+1*x2%-6&W~G^QzUF6R3$JH@CgXp2 z&uOgX<>9NS4IJrg#fGf|xaswrfxZ}067Hp;Sn#kgr|D0VR}F9n)h-q7;Me@qYO!i> zXX#y@w@@91b zQ~JFNO$04rm^%idz2ZwbeifUg-xUNEAqQWot*X}TMEc#C!+*R50wL6ohj?f%)$Rf^ zsy|tRUZ0x!>57hwnGUBn_%EzOtMp*34!QpU&zXxw5dbl@!*5fnr|QTSMkho)-iJI(|r=TYts1)*``GjmpIxS zumcQvEO5cCgPuTjqrEwa9p-7X8JoKT7-`3PM;q5LF%lqu&6Db4){LsfXd`C9JYo*l z5gM;T1R(h7cYl$n85}8sC&C1=yFU+3yfwR0xBefmO0z8VEs!}{<`_{^g^fb9Ak{Js z2`Uz!^4`+Jyg7uCA=0lmQy~s8M6JIl{I!WAOp)V7XJK$5Mm@jeQ9LhHS}b;F zBEpN@$Cl4Jap>Rqe9DA$ApY}x$zvl$3`SsHVM|$zyfQ?doqK zRO0|y$G`5KEI8YJ+Ub8X`ojcAQ!AVuoVd^%{Go5mul&*G2_;ssk;g%U+M;c}hl zWn^aSHG=8ujEFIPH9N+?*%gT0hU_bKFY;9C-ltMCGQ^_)`mVv8l58R-b5|6y zCd(6r=;Z%Z{R<_AeFGq5U%DVDiAVd@)(u;7zHP-kM-b=GeH$(b*Fu3p{!TV~+2TxuPkwMaOiizh8rZ7E* zTh(N0`HbYCo{2JotWViZHpyH8W)g8W=Ge?QQ0Egr7PkXvJxVV7;PpZS=V?@Iu>cLa zuPlXIvOC6O!i$u*2a66U3A`K2Ug^Y}jeE#Mee#pU#utQTF6%bfoJCK{dki>mV*S5z z$?Q=rQP(EB=`1#gEuRk3x9h31A1zKz_+j(caIvrqYw+AF!mpiyclxtZqYWpo$%$Ba zU58X1_77?8zm<-R39Cp;LVfH?y4x824vGYQ^HuK}2c_aH7-Hdl4JU;&vxvFMFZ{CJ z?O@KY0Ja!*E<>vJ;b7C#J#1|u)yy6SU<+I*)VP|_!oihX0tkuiEZT7DEaR^uHSTnD zBD;2iTiPU3*+(roa8ly>9^@4i`O4XcCvogipoMJU{_ANGP7e{9x-}E`t}O0|k-Cu^ zYL$$*UWhD>yh zlUB_#6FOqANTah%dcvz7lxS+&^)!!;^(uJievH!#PsaM~A>pzYC$j;OD1gmO?6B5Z z^130d+LGi-KPCy+=Fr2j30o1l zw=O0PSHl+iM@>=Wzdy;|EsXVoed!*^MXr(9sgsCDni9Q9&-D6;#8_7})f9Y)Q?Rha zphY2Ab~q2}aG_FF@o2LChv!DBb-73u*p?ON$#n|d_o4{Kt`0x>TQS|r zp7e{gsH7t%9!|qsM1K&R)od>Z=Atog;IV<@_kywWlcJDSM||B;dScFn@!ErKjYT$t zy-#0J!ZBbj_A$Tk+M2RrplU`leVEjlh55RZP8ByfRG7=X zRA2R7iIlXUpC3n!b-g*Y*T)Ffo>whObe_YLRaDweZ??#wbz^#B*mO21BpZ4Gaqclp2!Kyy7npF(qqt+UCKlTSrB_)3ETSC6&Ys zmFt1DXMQ(!3I9o9qXZ?+foW@FYt`0xdh{QqJkb2DI!Lr&(`r$M8NB5xK?S3xn3KES z8uZxF|G0l{5*9=k(~LVB5+|nAk^gL@=!k%9uSH z`q1m1cVYbQev`N0d)qq6sFOHHPw)zF%Z{#-*HRzs8o)zm*avs1?(4f@yL+mSs`pl})TwHY;p~?mhIZ zCmV}7`x}3cPhd<~a)-Y^wMq;Sj8|VzHlLGRz+iKN1dfv-~vWc**_a zxh#Nyx_5S5`%I}Dk(iCq+$eaHtGTp3k~T#Iz)JLmIrPPKs={mfwxN#<-LXyh1e|=% z02{vKEg0Gu4Uuq*5K;h5>V2}&uBhxIk|VPv_%ps@OtQc+hMNFd#i!cv^#d$qgRDDPKEAzs z!XJgedM#xqo+an(&u5ZxKt{M|fzh(2wMhh>+UIQ{ABA>k(|!bqhL5f-nk@0q;e!?x ze55)_)CG0{IKSFsR$f8y5qjX0g8DSm`HSC}f4)`!!qB#H0|;*Q@zn6z4kdWDv3qKc zL1r^SUt*QD&NoUprVS!F=;0irAsCRWRxDu5;|%FN4gWzgKE=0W)5^6>A7L6`YrQmK zyuq1Lf-|}t7Smd5WgMl-JMeiyhgG9k@D4kS9?xZSpKd6wFxVocC3V$^k)+Dgib*<; zbH8&KPecxseP}@ZJGT#X-Xb_?Y>_8I#&Y6rn&JHk*ld;u~{RSwN(&pkw_M0)}Lno2#H;X z$*g$U+QYiSGc6t?UsSx0%{Dnh$igxJZLixh2z^21YcbOh>uq_i@jF5Ooc#IsO@AvO zxvoVki3wkK6#|rR^n&X@Q-9|6))#k;tnYJ+E-8k6(4Lp*68~PqZfs@MGD)ddiS>3L5s3Cw-D}d!OYg$TX!4y$ z2S!!ZU@s|*;2qv&KG_C3w|!Qjpz6(zJX-RsS8GR8@SmZrarI|c{xiuHV*jMD#RbH2 zbu|+;!rL^AH?J8=*=$h-Rf-r*BcaL4yfOG#) zgg-Xx(k6ldyKfXPo}+pPY$Hk54Bnj3Bz!YbA~wSOXCeDyt;hq{7hRv1r8Z0(6&H1v z`wd4$^0?Sedi{yw_6T}Xer?VWQZ3xQ^usej-l`#f_W@7E9Y z7HI<7PiOE~qqgg?h&)(#y`ltlQh%MbYNyQ7=!EkH(N{GmULg75QPyY#xT&$QH#)6~ zP?9BLn0UuVow#7vy&4&$-ULN|nk?6>jEN+jJ}f&yCkkPdU8qw(u|8y!Fpf_Qnn)gs9Hys0)d<>)bN6!S}cj~Dkr}737aNKxU(D=r1j}NwjKgq+;c?&elsQJpP zbYrwfpbA$!l(zB;^%7`@se$8iGYt=88EC9Ibis!Z-C~8u+&E4S>dY-w0fmf>H%KAI zcoHVlV(06DswArlhmi+NQN_9o-Nw%8g=fKw9S8 zJ#K&kv!qM6^bXG zaS~7+|P9gE29)r9YJnw*CQF_?MUB)K3W zjXiUJtd!vy>JfuFSjn8wk?<%xH7B&ckuI{D3`L8d;`hVZbiq|kuhZ7MQbHQpxJ#Uh z_$CED2r$7@_uSBv2__fksn1d)Mg+`*o<^`M{{(jOR24C6i068eW@i<-$y6d+ zW1*W%>@e6mO12E&2%oRzTA`iDSIUlxl}Y=hUL2iWFv;zDYgsRqbG01K0BmWGY`7l@VV!Up!-l&ji|h0J z<)(yY<94PyjCtf_uav0OAu-$$WJklFUxy)@sqj#bVV?gk6HE9ZtE&b7+4IdeqjE}U z4#$U4d8qSXI|C``B08qVBjfki(d5Y)Jm|}(ftM$g4;`)QAd#?^ z*y1r(Dxs54N`$$l+YVw3magLG9Pf{M(S?E%@Zi~vbb`C@#`W_dN2SpinpSV?j^H<@ zD<)p_q9k7*qI9t@9Vm>FGw=>`eiRa#4$h1IN{mptcwDPffNJMo^Rm{077c5%#cWZKcT5pYy%TJ zYqHK;HRL%Y@E-rIF$RL5D^;OH*H}eV^qVYV%ns#R_4jK^0SQanmF%bAI+fxXxt**V$kNaaybx+1;-J(;Qq_l{x9rrKkn16D~dtzJ3BD!O^A(;#8rOnHNvC zuv|MCtX#;LcOed_*?C3f71XL|BTLiDfNN5TbldSVAAXy~D59S;Q?V+8m8bE=Pd>il zv2chnMR)1Iq-W7;X1zzYa>HsF2kb+CyKKH%b~wxdsLQ}Vhm`svjWF6IZm58^SBRm- z=yZUUM49t3o_MfiO@c@$N4rjWC{}{O8)HT3+NfdeZDO*as;<1QKshtc^O;aFUi%{G3t8)tlRSe0hk8EQ}Iw zzUf{pxj#!jU86OI0RKM#z&Rm!%jz9f?byuFZUOI{yVlwZ6FRX}HQYOjD({GyU7&cu z$7+Y{9;wSil#8T#Gxfb;WX2o3Rx6Zcb?D=*ZB*mAumE1 z?QkBnn>hnYH9&b^6{(45+Ftju^7<|=uk%?GFZ{~23*uxZ)_7Z~iOq#idTb2hGX!}q zbH5gn-D=NMY^bO0zc)lN1FmqKb*CNyhvj(nBcf5kMTMr))o_qxqdf4GP_X;>V|LC@ zKzeXO$Gg@Q;^|n*cYoU~HI;b4i3rmhF6%WgFF}>F`sQiF_x#GAUOdi`f;(Whfi1Fv z1XMW-m0cdfGK?e63FdKVX?03XM#6y3@iO>nx6Mkjm69a2wc613j6-#5snj$3*6=a*!_GfJS24p( z)A)=9y!jf8TZ#9&An=V9E9hQ?>*)AshJr()f{S*p{PBfkYcG9k!d9m}9Oqd8}Kdfbc3lKWFKo+?Xaa;$BGCqJBy>9^g&lnC?I>)A;MVa zy7AcYoa;hxNKL=VE$)`0+h|$0Zzz#_bH<;v*C1yJCLM_xcp)VbtUW0tdQJ zZL&5F2)6;h0hcZk7M>+R>RAak2DC<7*1%hh*)2S#Xc^4eaFZntTrU8#*c@)~#3rDo zbj=lY)~e5%D+{0bss@PY=H!EN(ZgL@m_(I_+{H@Ad!`6c4^|6UdQk7ee?9PghF}u= z6sBkUi`erk0WbPfQ1mD3r#9jKDCcnv-Pv<>!3YI(iTG{a$^^MUUb z4VW3V_pei@km`uVVY&S7pWy#1s0JcfffLudNL(*PDM`zN1gTwFhzW6I(e+rAxLB-_ z;}(r}eJ&|=@%~?Y$trE@mGJ7q3$~rcM^OFJ^(TGFAp})9k}MrQ6#{aF?r_gbC$rl@ zjla>fukLdqK#(`81U10^HFc8Xo#v};X=&NMuvM3L<1r4sYw($FO=x*!IfZ8%tMAW& z34lO9fmE8)97Px2z~&4nmoFyRunwx09)c)nlTP4g}{ z_(4D7OlImja21Xkm-fpt9y}-8Z=W3R(f|?W4IPeHxu;cY8~Z3*hGUYBvr)v8xhjd! zkdCB6vcOR-EGbg*!|dV|@Xp=H^FTHgg^{@@odJk`;0fQQbrB2wQ;~*9=`Z_)CxbPv!+s5;WCtNZBJ^U0y@pKsyx>6$HTzWh5{Dy z_9ha}hqvn^==eXKl*%KP41Ps%%#~-AGvGQo`xz_Mx~0p2?tM~b;q(!Dgb4y?G*di* z_7Kyu?M1nb>}*_7N|@i203ii1j$i`$onZ+CXj>YKCs=YfsCkb&wqpjWtE*XPwYz3=404B%SFt` z-e3rqEN48?2BZ^S6and!2r;ZTJ~JJ>ZMYvOEaJOUoFf)UQg!7ssXE3CbY_Nc+7&Xb zqMO=|3{1^N-AkG-IAjh3pm+}S5nDE(m7(?jC2J!=JvDJ&89>u;XH47}%a_#m@PeJh zBI%cj$b4!fo{b%2X4DVFi-l;o-^_3A$9)TWk{*C@(1xwqZJ8l3bp3W&`FmG?UF2C1 ze|N@pSnO(I-~9<9rW^ zTZJgEG$l^41*>D>${1^J`1r1-hzlnx8f>rzs~vnQ2#Vu4J1}h@IplXO&i=*IuI(1F z0t9|wOq>LNbYmyms9%mpB2(FXXE)=Nc0GDKp@0irc(@u`1HdolK+N|7(T$DxC-FbD zOUl|%J<4?>09GhJC_{$V?cC%>!TO1>T^6pz0qY1xXAgpbcjO%^=-*7wjTSBcO&era z_GqyqhEIkQpEV!Tq-JgA$e1)cH6_ICBDXoq?GJbV`BMjZc76D{}c&f zIS)n=@J+aJxnopv%1-N`8~Y}_uw+I0K7j`Xx;jdMq=I#TXvrS_@e=lPTA+_1u}N8_ zsloj1;HqR82mOKe5p&y9`2G>PpMFzuG4h_q#GtSkbgf$CBwL>(KCGXQx&7KJ?r}Wb z;azkX0{##6nSvl($fgoLvTh5|%i=ylntO!V86b%h19l@ZLuI-m5!KMZ^c`n^sHmM$ zCg4FOb)Q9KM>TbuxKX+u13gNtyZ>Wa<*%~-JDjilHl+{d6-zcY>i5O}= zz4sN7vh9~5-@5&Czu9NkxG*i5hV~+!`qcS{83GFur%|1A^pVpS3>5N;UodkH7&Z2i z9M|=RI}FG^Y*=pmRz|`&uC4Z*^vK&XfHc39t0aqKhR;>|`HJz?Mk2)q9+n!h*?ior zU7(ndD(e_&r1V+-u`Nwq0N)ki&)>zpk*fwMzVysG!jsh>p5FMd4WZXwbxnHd**4zmUs%*~IKKiA{!(ynz+L zt5{snLRRY_u|tk^WTjC1@`c_%S5B=Nf?=f45U3pCu@9liK&yTtBf?)btVMm}QiFy> z2jn?J3!AF7%CGp971y>*6DgOL3{8(oHN=ZFe&XwZ-<7_#-Ay+I^PKM2g+n1G|9`|IPdB=&9f_f&SEA|ac!PU! z9TxPx`o5IO0Lz+tVb>$NpEVd03D&pLi!p)U8JHK}u~%pnP4Xf# z<2x(?vhKkeOSDS(06hZlbN3ZR&T~3TboV-#MxU7WFo@j9x?z|4rO08Bc^Ef{5RiGy zlTY{r$Is9#AaNT=i|2964t`jqB(0~#nL+!j(C(1$CZKv85zepmB;UBeQ!k*d^Pbp7 zH4Y~39N3(DMY6mll$6l6N4xD(NwCE2Ff z9S1OU^~rg!z~Buys+1>xJ)Bu8B_h;&-~$397*2;ZrHM{_9GOre8JT?5H>m-KsjA$? zdOgx~+15|?G$5O!ZhWl2a`(5v?%l@JC)mA6bbWbARWxqw9eW4=wfdqfUz}E(Ri5BG z3+LT%d6HWWs-89Ju0bv$Pc#!Q79xLP48C$WmJ0<@ivRtvF~V6HY*p|}DCyn8q)5?6 zv7o^(eEh%e!g6YXk58;fDvF7I;mSt!|9ne!SkS*x^npvbpzm~8m1^c?=C5MMf)hdA zk}8(pUGKDW!lj#u|9z?-&;=%;x?K9=2hIs9WnE8{>Tv{d_uLeX{4%ym%oK_Fqd%cF z0^~gXa<}htt$s?0NU-KT@e`nlU?P_@oXQNl?BFh1wypXaa@IAtM`uz4UBMT#1kv_+ zkCgM~Efu(FcKNEzg?c$kr`Y9M(>^)ZCWbC1N4#@-7qs4fNN%h1y~9uyhxtNTu_jX_!KE&F}A&shhdTE!dTiR_VebgcTp|`1@gw}PrTqs1vrh& zUc$L_XIe`A)2x$%;)y{OFA%0LM=vx4Ff>4NN^U5lfZ zhA@7JpcD+?M(~!@X*jfOw3V-cUXm3v8yGdpsQvnUzp>8GpS4t zyOT|s-e_Fd=8n=G!byDZ`q=p;^0{n2da&SY1Y{7UDsINm`$IW{kY~;xWAkOiIlIJ@ z)!hmYkMRjucAVv|NVh}AiIVZ*4b+O`X7aPN;uZ?srk&b02f6Gl@{(tH+M@p`*#ibrF}qWgo{+T&gL9~ zvR%$Eh>2zP9)pmB7qp=cMV!HVOQJn;f2|^s7*qV@KG#*U#A7V9z`SI=WdeR_Bzk?g zXOD{t3eriO2wo@bG_Q7EhHK-@yUM1V$3T?2a_KQ+qHTy+{5s_2LH2*Z@8ppZ1l~jD z&32mKt4(eC;YrdIjxSMUhO(c)JC1eNcOlh*E92a?5F)4wAkm2*zb|^?<-{I!L-_%x zz;&L<1+pIE;pfDrTA(NkRmcRRkY`#(c=O`PofDkw`4q0xv2k)7&k6X`3^;H|ef?>r zVIbI_4)RqlR~rwib#aD!u>-&sI<`+>~?x*u@EYiyAZTHQ#)ub7SS`9>`Q8 z9V2XRPXF${jcU2@x@_wHML~RXiGNvwvsoHJCXh{MI4ZJZ(bv%*5encM%ik8D z?sX376&FyRyCO{CfQbw!^gCwb96k4^TSL|OD)QKxDFUTH@$*uqZEAQcq5Y5ae*<+t z-A-B;&b=>38zEl0Snmq}o$R(uIazGR#!Bg&(U{WoW*R!Wp{hSiVbbqQcSh|~XlD&v z%0^V`TVV5L=gHySSftz(07iJX`#DJy3z+z<^Ojw2Kkp^&pPt|9toQ9&@x>J6**&;^ z<|8#+cEsG`9Oh3XVRQ|;x>5k(Kr|9V{TPy82%IZc`N^?-uQxh<;ft(60i1rOmME52 z9Z)uRUw^9^)=6^i34Q3?@T7A*QJOZT@u_s=2nolY6a2q(1%`)d7b@pAWJ&fqYhp0d zyH3r{fpLBFU2nApl;3$ef-0krlznjNYkzlAbetwM-aDtqG1Ci=; zRaQE~tIHiYuAoNDIG-2RR@#jHgqOHXP8WVktZzK*zEetCp^QqR48_HE)118SW+*$M zQ?tA3o{+ANVn|}88CSz6ALfZU;|obkk+{4eEpOwQO)7UL|LV)b;__CB3}eQ?Wn*Xj;oP$)NSQg?rFwY zjV>m_rXzqpwYJM(bS}&(dKTkq5c8IAo^p+Q8iExw&f;d<%or}4vS+H}dRoQjtN9+v z8MX98#VkCQuNiMxEM-ZiEYlpz8|gpD@*4)7`<`&56(pEyK;=6z43&AuS+|@)uDK_0 z`IAIYu(YAXLI*sAMI-5a=a3VSGA?US$-diGG?2%C;!7%_n~$bP_FY=_tQ%ntn)dS@ z5z=e+bJ7*itb(~~%-8?+H?<$-zUj{BR+ey`Db z%ifUEpFPzk^WcSswnQy~j1seMF6a%&H60)o<`t2H zvsx>jK^uGp#V@${2(L#uY(D~!+~v`0PflyM=vj!;BaJPntx|(PnK3Q0*^O$pC%Fsi zD9I~T3-T6(ZBqwo#oI6B=p;Bq0pvH~VY#rx--%+VxOrMCfIil)2XT~em?V@_w`nx3 zTN)IoFB3UoE2UxfrSM%_nBI@~vmRpDqvtsO2O!ZR?E#)1uVrQ+E>fLj>0YBCx&*!6 z4Pq6hb@p#;X8ZI0We5Kvho_nUR15)!y*)Is(2u#sQlN6U{uBkY8%! z50Wl&W8a>8Vfu%iAPC3e2veG`z~0i)b5wEbSmKAZ0=zRoV4<0VB{93mack8s&EZ zv<&0#+nmp9ih`_~u>q|`rG&SvTfA4E)r7Go=+x{Pml%1!RgH#1SdyNsW|(y$ z8D^`?>nV*~3)~izm2dZRJ2~zo)sPkE0ou&KjU+5ype}iE_pjfpBL~6E-3L2bu)giD zw?F1a-|xg4X*X`xQx^4ik#r2jwHlU_dE~NDOadLKA5#b*+)iF`oKB%@MlT|m)EA0+ z$A3yp>*g}nH3CXVqhwdMCpWZnB6`AW-+{&sU1D`|PWg9SRLZe~=>c(P&)7qu_t7Tj!C0NaH>E z^m6S1DE&qNtCCbqfge+i&{b$?1&|?fsV8n=vGls?U+70Ls*N;X+Rn9ATQh5}m#~UV zlNI&gRIHLu_fm+sRq48I&5j&FY#hSR9YU0|Ug}qF7mQ4 zx|eJj=9WvsgW&3OYhhn3VvwmdpL$%dat8r&WFhuha+tX9Z+l+c)Kez+5{BP1BqQn| zGu4gla8s$Z@^X$}C5p#lJ*|Beqg^W0e4O5emDZ`}yvdW(w&IqZ6wM{TsXDUG3XaNc{1`8t@u;Plsm2~-%e6l%bCqgNb97?G zh?>2{z?Y`Ohmu&wb5#akXx_#@ZnOxq3i@Y(=cgQ-*Xb5OMm?lfJC$R_%3!)>5W5a$ z9pYP|<%b%*4h(ZE-{=94fO;iIxCXpOpGb-u=jimDV4cA7Hx6@dg+^dzdq5!nBQI)c zjM$`aVTj_5HS2QgykZ`|Jc}A(7`^ti7vjl~Bl=NjUg0i*s!}mI9>~Qmk@0#3(XT0z zD+@6SwR;euUQ@o zru|7aHPbkc7KrmrAwXSbD2LF>Po}Jb0+g_Ud%9fvI~5Oqu5fZS;2nX=X*>Hr2d;q| zJ4EgzEhCj2vAxZ{J!V5A5-f774;l9{D0{;F`XuCx!|Z5I<&G}32DAd6H~ZWJj9j)i z*me@US@sJbR-!!UjrcfmNmTRqU~6!wycLE-n$ncw*k3w#&Ok}WhDoYj7mAUKJhMrK z48X7(=ctF<%nFCnBYR;Bq}-VhMtJ#8EcX8o*e)$reZsw>qSzyI@8X5f%YXCCC^FiI zU*gT(%o0`Z`Q@Y54v0Phc~LiTD6jwrj&lFflTjPPNfZP9mOEpBIuL9crGLCP# zfE^8#NYppm|E?hP4ET%^#C2A;gO5jiW3OuBlnk=7dg#NlyK1G5m>ic@5Qs+UCEydR;+A^^oOhSqGCaGzJQLvGQd#v<;(nk z`r{Cn{>PUF;1t}D-fDs#7}JISmgPpQuiiCn#G;D7F^guC6ji4`V*~5WngGztc7+FA z%HGHh{xrKr&8x(#TyO=0!mM*$-{uUo=Py~%%$nwa`w^Ul8R>3H_svn{6_yc(j=U!w zhVibc`1si_!X9TmB)h;0sl3-JPsL5do%FBUz|ej^=6IDDdr*>)cf-IyQG|!01GwmW^X5Zc5Bz2b#>$kCN`+oKZL|ti; zBUlY7H`^CgD%@s%FO(#^MGtt@Nz>5f%rJjSmZL9aw#uB6 zM^h2BWCpwBNjOTAA2Jiqp0^r~gz+&VTE8}Q1%uyH072l{UdK@osboKr^oO91$kIfU-8mbS*HP`}~zJq`!fP>MB z&eB|GEUq2WALSj&eTzrmWC)uoRN7B)G8eIk!|sxHJ%&c|*JS0zI@?rKEV4bw5mSMw z;#Z}VGRVif8;19TWrUddie}JTB*`U8EByM2>uPSGN5T+7NbGK98l`ve+dO(ahe0#5 zFMI7OAeqi&sJ7rjV%W|YAr|9m7v`Q~6pYOd(HAaw`AXJM>YIX1+kZw)c;w9cu;oW7n>i z0xU?lX`}~7{(od{B^c?vN5`=hQb$m0HSobm6gcbTacQ1LW_N`FI@EUmV>dCgibWe0 zyg}hK#vF*@meSh-KChhj_|Uu|w+LBGs(a&Yk>&^`s{T|fWOUZTx*C?Jqf(>{8~SAs zpAX?zLv*AmJI5Z=mq(1xLs6fNe~TEgT0|U;M({2C`mbx(bp?h!Y(DMxl8Hc@ej&B< zy8ompwFutR^E}yr5^4W$eWdhW5bl4k0eD@JCCkHofOkAbKzNbMU-GIbpYCC}S6pa` zpDR#oxJa|tC>lP|16pOCp=?4K# zl{A&6?6D@K69#=Wqdj>qQuq(T1Z7Ks#ewpg;(Hpkj;dUoUaI$ZmVv z43~3u1J9J}H2v$NosmR$ZUpx@#1vxRa=K+1dPT~o9s-H37AyE@t`FGE+yBceOnX^% zccv|Bu9fY5W*o2dZWNRgC$qQ-^q4OHp)r@PjqKTDo&-rsQt9p+R(mNB79HDSn}-74 zcN+WAM9?Q3@dmNIJ%H$x1ArGy@6hN9h@3k1xE!yb`^zG&1$GfP*P_T3{2bQGSAV3B z`m3YF(IHKNFMM!9PTm)a6mQ}f!H$XD&F5QIQ=t{Y=>7js8@8l^bjAZ^6)BWrJl~zW z<v@^RSH1ED@hJGPiG{?dHfdf><%|v!84*rqC}A7hv89V5f!3w5SAbAb_QOY#ak~* z4AB+Pk^ewTJ7J7scR_27?6tVHeF-rMwh+73k^<)#Wo<6FO7-C6_#qqQ)gbqp^b=zU z%4b2nPe^>D2lMSg-18jelYD4{$qrjm>A3ibsN6>(C?dEZ&f+&dmm1UZS;J*oIg5~b zJn>;4;TVnD@j@~$iB#dOC-Xi|+m>@*8c&W!42s?3Rjxm-l8_QnCD1fS`1g5H0IBpo zFD7q}`8(!a3}wnovjs>EmOY5nYy+%rEuneH$K7DJZc%6pit_hUUnA1sII*t+Y%D%^ z50pUj%mse;|gzHqJA||chv?x>sucAhNc&D zTFvr9lqD&Q)%bZ`<)HonC&0pthcUs>j|H7gB2jjn0qYepTNl`vk;)4VzjQEu*W#?e5OVc;o=`x>_xZ}SJw zpXHy$2zS>f?tF`uk8gS|v|80g-j~+z5IjVSK4~FgzBHr_s7= zd8&uV+?>kZsz^fqEg%YN;d2@&B*CI(`Qk4~YrS`gRoiNNa;=hJ{~Zo_G804Hw}>Zq&liF2g*7Wm35fg+LO5{kI9udCbgc*EZSd@l3+IPJ&Lt@8t_3~vw!9qtXR&^5{)jT$PpKKU9Me6@p42A)i zpy8YEJ=23Qd!%DZr$XRreuH|v8sEyJFTT)q;a>W$y6i`f&6hR0$`1SeulB)oGx$&t z&BGMA*-&&;sD|L$JKQ5dd{X}5TcH%!Z4Ks)PNY<7^C`WCA%zMdAdeaX@FzS$7eE4I zW^D&}cLk|I20VK*rP_gp$IEBYR*QMUL&VOv#Hine;6mV?(eb!kh=43EUq0j>KZz(; z(V^gj;>@!T{JJ#hX($7=Ci^LmcF`K~8GgH2EwL|ONK(z|dLF_%wjewA+pA%a)nv`0p>pkc)G0mE+NH`!y&upMVjmZfr4i=b{g-CM3Qho=hhK2h=n#J1O=%~Q* z`>`l+XJ(h@sTTKB2V{QCnZa{u8gr;6gSD<2KW-Ha`E%3`3!yyf>?)BAS9Az5H_^Sy`=WPt z56t+z_dcbAWVp(6e{Ivqqo?lEcBJXYS2ZI!Z~z+$U+a~Qt-$DEFhgtVxW z-U6-keOe7be_VkbZh&S0g);#i_Y)zuw6bv&>`Q3)FLJQQ=e2H3?0ra@mQW5PylCnu z?}VO_#>`q+F7PfAyhT>&-byyru9BTHRE2 z8gzpK4>f)M8vjpggUnso%OgL1l0NJi+ zqbHx&Lx#X4lQE{_R;&*V8sGC3TRoC7rV%o!rTfrsawJ*V1W;Mwa^0& zPvrdsoIV}S+J@DA4YH+1<^y6w?*t8_>Sl^wS*oO}a)4*1)^H9+>QY40x2CQnjk){? zC3DARUZa;@aev-pn(&4GmpNV#g5n12+dFq(tEFfCep)Ndya>=`z_078!z0*rIwr+0 z(4(>#0Ycd3{Y?p#7h7?=*nB=Yuxl;KGI&>r@D>G|t<4{}mh4E*31mv?J zIsmV`u-q!rn8}02vv}@Q?ImzJ7gIEm!YCwHW;(%vy@dp9eZG$csyV{9Na^G!fPXi8 zJTAPdS(rm#kdC>ytQyKZ%^RuHpO^K$ekb9~SGLLuX(X5xM|c&jjV7!p$H$hEz+DVo zv^+r-upzw(m-1HZ8L%cu<2uR7$)kjCZrGEHY)ha|F5!F=@1QY!cEAj6jwVb0)H|ro z|G$3^Xn3Z5z*m;%BOng(Wt4eYLoey3Y9^1 z{vCnf(bXI`tSQ4akx>o&S{CdhX@!qauI57Yin(WX&`q3T?v8w_qvh4bRa(}qFBuyd zYIH4hZRiI>1I?oHdiQHcS+YYzFtg+xs@N^M{#Dy0t>w_oU`haR!+Jf1iJg zTF2Zetcx{0MQWEG-2AZ>`zS(ne7xBa1HA^%^V5T^j_2~@%kjmm-=C((OV16NALEiL5A~MrBX_s!VOdjdomy7UiF6eE^q}?jn@q$ zjx+bCT47vs0cO5(WeW1^^x>4m=VlawTL1->C-(W1;o2sk@HU-s95wxJ5-9bx!fk%iAw8BuIuU9P{A#6E1Vb6B=@)1>DSVx+AOnN$FEpQ!f8QS5P}#_B zzu!C)#d$3MZbg8P-fG6w<71JnCkoLv8NcKPVdk)a7YtJYfM25}>V$1GN3B)V>&L1Ixa*-~=;@?P z33;eLUlU$^&LBN1mY_H#wZxgWkx&+O{dv`?46A0Gb5x>50;Dj(3wVGDq5k1|Mgab1 zhiaDhWlNAPi-Vo1-4S&TfIN3p>>SJK>L{^qX%Odf`uc2^F%wTOj9aMF-2#O&9w~MO zJ|6TE%nv;!BsrU&!BKK}$p#f81}R#AQOY-h&SN8s`BpVWO0o~=k$##U&iAJw7xa43 z7zMd!V4`HDvG`M$6P06K-S)V@Wm<)8=I*+5D2|M|egNGvK}-dv-(zf>o?pUf3+3Cw z&$3nRoxifttO;y-JaU(kOaCv0F~5SCXcH8%w5Rl5e! zs0dQj0E8z@fLrJ2|8(CoswT0KhT1!2?$@DWn@5#S;cc0(&8ETQSY%^v?59TvJpJXg zT64=(6RPT!3F8V)VLx-kdbrG7{;sZlyE5ZJ8B9&TTwUO2c~!JN;S<~bc;#N)7Jam* z8yKuXF~Gr(OsN<`ii)UKLLW~hxKEypWGs={Mc}c6_AW#Acw6cT%7$l8CEmUOaM@Iu zELZ{cG1%)yfMzO3fa@l%F~C4Nl(@hX0l3866;qBp_4xs02xpW42UPQk;|M+0``m`> z3Ic$@Dj~3-%jK@lqieGS>%pv4iN`+5&HEs`s|0k#@owglS3Fk7cS>Ao&k=(XqZ=n> zsFnEUD94)XU!eLSVf;aFDsL*3@~H5rF`_0zTtY;0YO=U@C5!=Lu_PW^0t~w|BAz@F z%;Ok1_jtU$ zV=es&IxI(%PibE5&{=#;FACe=!(DPzj)d9sEu+PgNCaEgo4ct8o=v2c##f)9AOU<5G2}!=kvM%h(pkUi)1%UX|<^L$ays~YvY2%>cl4Vi1c#hjE zOTL8%5@lB(v|5sC98*nbuwf6r370(It?f|P&@c)G4yXu-(04AGX$gJgJ2gk5j45^y zFmlM?%HN9=v}%!KDC`vc?84_aUL0+pjn(6zKwuf@rUw?EA-H(`Hyc|-Dk%+|35ams z^>P*TUku6$A~v>B8_b{{y*#D_mL#6kNtUjtQ|&*a%2xT(y6wOjK_03Bqb*L+h@KIsClo}Txx&sF4!*Q}4QUj2Cns%A@^K^qwu zo@-#d#d733(qAm}|8d2V$T>NCN;Xu*@ryyvNpy;`%_-G2uG4x#X%pMt7~(81GY6#A zxa?|H?*9OqHC^-2?lc#I8#LUd^Tk%GMW)=j10kYhAGz;~PDhPWa5!E;1Xz5f*-&QC z9f)OLvsw3D%KOAQ%4I3pfwiB0S2DenCa1w%a5Tf9H?1vGuN`HtoM(t=jCwZ9s1YdA zjag1wdoea=v1L(A1!Q9wgbs80f?;44eL2mQy4@bR4_}U@y{yDvE;_qH%+x8O?k<51 zXI2#$e`CDj=XRHhs?-qwiT(k5m~x*4zqfu^KpcTnf}{rR{1_0~t~*ml-*0z$+OJ}H z;|7N2eQ-Z-!*istWI^M-Zb|Xp=relw#`uRRPqva-!ie@TMK&vyuyWp|SN~o=25mlE zWs*iaNde^q`Q6w%yT@jhjgZ46lnEyOZMJR2RPT|K4YBqYG5c%P4K77*pkuyrYd4me z-bzCe%3%-BL%GtvZXtb>sRM!2_D1Thtkl~Os+1`KVg-rC22dLlfRu${&$(7kz@{LZ zOS7%yy-}iSC$6|T`gLW@W{t1p`*S30CtdSA%Mhx!Tq4b1*~sQw2UB&p_uC#f-qUEM z_f=6`!WSbSQ$&PyJ9UnO3cwRyAOt8`RUhU$)zcY0$M-E^`0eARAV}hytr56-lBq!) zEDzl4a#CP%+-&7JQdh9+JQAPD?l_l#3x|!bF3+2LA2i3~Jmmal=EHPVs3DUZNUe zy*A5*d%qr-<8PdvOViS2^m(Z>LD+OGEnS|{@23N$Xq@Yw~- zYGPFM%t#xb02|OX6%UpfSX}2&XKM!bzNvyfoLfG_#wCLJic2-R8|Ql z3Y=_zzxl;j7vAk2{SiF$j?<7w8=S?*6Us+l?F(=o__Ypd6M{$szl4jSkh@zFksQ#C zkGgE6U<5cp_J>2Z&F1W*E}8-FQbvZ{F3Ep{+d1KHjAz|bbYW_0Mls%{fVC<%-)4rU zo4fKH55@_m?0c#NPu*+hR3!W?a}A<0wt8&=S6u_8F6iw)HT)DR`e)|5t@~t4>Kp%` zwJ@uS%utmzdmC9U5ooF-(XPjZHVmC+tcrAIMHG#*wWYCmy3ZKP`TDA+Sr)`WN0&Jr z2gPpt;o_|A&<@iFIy|5w& zKMV-vLlkbB!K$K}z;w}8f8vk^DAWi7D2oEdGa`gK*>o2`uo)jUJbd6aWqlI<{myX= z9-#2YMpxyKzKqtvv&6O2w>ld?t# zHgQb_6Pg~I(w4nv9OG#6IN!~Xkt@YR@v73Dfk31MONtF1#Ryqad15<+FGR&kjQqu%t~A z#~5kEG+Y(9an=vgTq^&5=fzfulq6V3;LZxm?@febB=^4df4OO?Isj;~AX^)bdD~-2 z-@Qd>4NR9S01lu`Q$!{Ii8XRiUwB=t>()@viG!+qp<`v#N%8fO5kI?&lBdL(Z$Fq5 z;;U~V+8-C9UxZcC^^uoEd1R7>wLfJA_UG}Uf=;uk7Y~6E-EJm$q_kKO6u}#D5$ar) z_N;E)EmDp?ZrPe}5|&o!L~clmoFx=c>~_w9M_8aKcEF!wjuo%fG7fyxHb!p6>RPe3 zg#E0nZ(~0QM%f?bkZq%VPAg2R(_gj;S3A)Vo1mo<`{s#X(#cqJuW!o!dMG)?d3Roe zVSV|f7EjpHVUpm|@`c4MEAM&*MeP}H<{0F+s{`8p%T>xu4hl0HW;(gM&8P*okKHuq zUg#9-VZm*X=*R1tX>QMztU9H(__?N3#_j}TA#$(Qde6Hx%3}}701@K_aL_Z~Iz}r& z&MG643iJR`L`fI9(gl;mq^i^W*k#T%pbudJbqc)d0D>;JR3(A0(TS25hwSbsl69;v zWtcELg69-UgXtI6IfA%E7OrU2f*ZHxi0KhzZzH%s}1g_Ic(mgB92-j#2tCntsvQM4_;+(%n`Cw zb^`46GRWkGC{hs|n)|_Ki!L+n_dzGz4GZoAesB%Sgqv1OtK1TukQ)Xg1n#b~RzL2v z%C)ENM^rJgPFa5(pYxmFSiwhEj6Sl32PZi8dfL;feoj4cE|qd^E@_q}Q$QHm=gB5%4>llMfSn%XN9E|e9` zdVD%b5niE#KU5(iBS=|I=E0(!@LcM>K-mq26F04DVqA>F*k zyde^x{J%ipDkPWhmAzL*ul4R0HDqW83Kq!z&YnZRe$~#Tgb!ygeK>fPQDCAOCcsZt zYV@OR&EnioRN+e#@;}r6K_p>fslN>KUfGZdL$zu$@(w);e>m2c%d=)Ln#C_RKt@?; zQm7bSha-K?_4EpK^5>X+(OGEMnnSedT|-U1^r9ySv+ZA>l`G?hD@#Q0#$= zolfRiOpqy5U8Vb}E6k@o$;7%8w?_GMY6B{2*KVNiE@ItEaM!x4@O;PpA%&%WbzDF^RWj@2Jmx?p&xdjw8 z_)B0cMcj9w&$$I$BJP)fyV^&Fy)iu62?^}WrW}f~E@Lw?{78-Fer$rQbtc{t((4T& z^%k_e_QKeSw|x>*Rqgqfyf4hyG))8>E`fktXDma_O;*>nBswTzs^&+O@QvB8xpJ6Zw+__6YbZ(C z<8%_fp~%JpERa?&a{z42d}7*nqtcjBl6m-0HKTjX8Mvc)B^g%j<;_;8P&C}%;hzOw zW6dDaG;(K_Xv}wnW1*kZ(6}k#F*@Az$>7DPv#r#Y%W6{X;IVt{)OTbr5)2U-srTA> z`d(zu^61_bw&k5CDfXYHg}1^fG%o0rC)sXHl+BDCU1n`l=P{0rVayRTD~-X_>$hR`>>>2?+!{0XRJ_K z?iK~*r@(JgcTkcGlsa@+T&w206t&+dq&(F9Zt9ROLcVnN4UqJ8GhC$neuH8hwa|1X zE>@L<>yqOR@>}+6nwrwOLndCCs&2xzCJD2Qhol83KvHX^R$`7r)bX6PQ{0j-`iwg@ z*!OGjC9zRDaamrKIYad$IzrYO0RKM#z(T$5nS*<>1;te(r}+MQ;qL;RR`-OD4JQvm zQ1wA_?o9%dOtJ`Bg8?w5s9|pu%SH_3=2Tf}Igw~SzOK$JFI&Zv?V}DsMbobTZ?1!G zU-*;k5Z&;pU7goj&g?Uc$fSAz6o0#!26EtOrX zNp-$X-~5Sx65u309hWX6#x&r<0!o0qapA>#Q#i-?@6Dul3S6VvVk`6QVn&qSdF2Jy z9-sD`C-)mY0lo=($}IX3`qqGVej;CnW_!J^+BY+`~=s(WQHy$ zjp-O2II+cKVYBL@Odr9GGdt3hV_Et!8sKFU&kHSM-hCs z?H)9B05+dGc00!ZOr`zwft@iWcBmY5k%2Hc$pt86Q3Kh4f?Y*X#9ocW1GI!$J>e*0N?(JfTRc)<4^`s11|0AI4UtI*n^x6ugOg~&}Uz?nuQGs=L? z?ErpBv!XyfDO=w-#~G!1#K&MEFGCPwW-5e9j1dK5;9wktm6m;r8^*bWhH}orD|{AB zV;@UMq2Pr|5{Y)i?Y?@xlFGcWbMjK-w5Ptg{DLPmU-emoUh~LpKp1Z+!^&6V*P$67 zTEEgY$m9Pjw$F%Ylc(9;v>i9Q1HLZv^52kdJ3GYHZ5t~OwP42GAj8udd|qi|l&+6( zppgm#fyxm${zU>9@XYwxTY?x7Ga#XGerLz=zHtxlhU7qe6 z8QkFdo}3zh=EZ@@T=jqO=)Z`{qlz`N)luI-!DSoL!H!`q?npp)$dhUTr`?UXjvCrl zbh+xyzUZ^h?WbsNBbYU5od|GzEkzCiIgS1jKZwPK_zEa<+br5kFgeV#nZM$!)E^hY zL;c608lklz;Uv`JTgP(lZxI4U0K%)&JffPm)GD(L( z$vP}tdGd!ODNAB~NX5u0owqk|__Wk}#i^>bw;uF_4H3dv-~5;Bf#~%Hkj*h0{1nHf z7FCLW*jT;e4Uktl{))Hj>C9=uf=$q^hX#Uh0^v(3FExY7L#a7O2Wc^9tYyAV2cVhv zdtUDQ@O2cUe#Z;f=<^+`iBTm!leByRMq5jhYYdDj9!}}$8T>hw*j1q}?C9#b13~)4 zN-Ey{2WUM%_IKzZWuku5X9Kbv`MUf2-)$x+_Z51I`VbGohOV?dS5HmeyyS&RW1aUa z!{AzT85l@&zB8uTx&X(18aLV=ea~OgZFBwty315;g!T?LbE#bD=$l-Tn!*KZCG5}k}J3~Oi?kSn1uovjhgkJ9GXo_8wg{c|UUxHX{BDbqOy(zxNjB^^dfo4?h zq|*!f?rE9C?`=<<4c^0&=eUN&1_gqIlnvP=KTH2a4j`iliJ`)Vf^t*m3u59n4|nvS z!C(=i{Gy1~bu)7Ij%y(UV2*@MioYXs-i*;S(ON?6blRjW8ct1RKmYz+;ZCwn9+h}; zBtjX^8IaPST9TctplK(Btfk%#f+^e0nF(F>hMMdZ~C|6;MNRGO~ zcJ@7Hi;9D@voP`$nuKY@C+Nny^yV`Rb!VGQ(FwYc+0#;ocorg~den-kJGcg7P<%(T zH<7QeR_j^4T(sA<6FDug-Y!dE0~*PsOZ%P9>UfaO-*&^F7K#{blX)p4YrZh z$HauoC4I+YqJ?1VD-uHeII38(s&(GxJ?$9|^*KvB-A+TZ?Q1Wd3>lFM&Tnuk%}JO^ z?kU%}2PmCo_4Lr~6vrD}=2Xay;MItl3^j;AKo-GR?+)0P?1sl)=W741W3 z37h(yke$$D4(%-3%eCEoQC|rP)UMLkgDWz|?bMtOlB_7f9^rZU?9;Z?6lxG>rl=w4 ziHLr|t&H#-iYlBfoHGsImk(Q>oPzh?#6scf7bQm+Hb-$1Hsq?)lS|hhNo;dETBQ)u z8x46PyR*s?k}FW?;f2sGn8xg$1nsjjtuJw^n6BDW8fJO>wq;uo&^aVSMv=uN)WYst zq^@ATE#f*S@@&bmKPB;9aPkunC{T5359m*i(_+0>j<#+%q-R&yM)p4y_9h%u|GV}~ zuU#ekSk=b@sfoJ)LeDxGORx-^O@oc~DK-6oR&QkB;i(2doAJ6M812J@_cI9tJ}L=f z`37&QljGN*x8Xm^6bDDz%uA+1+SA3Eq;>=*RaGKh*Tf@76$EF=R|C%XLxF8G|47_s z8#hMl0@A7@+ zzOL^hnQ(!wIeiKQhHGv#&HxP3drBwmL|a_ZuO+OT^D{?13BU~hT^KAL_!c4zb16Uz zT^yFcNoUzK@@P{bqTio)5K^|cJO+PT6`zsqs0?y9AqUwGCOR&Almv2`M0;S)2fvoN zl!?zIt{_D^dwVk@fq{%>B6vc6Nxk7Pe{&k+yiJE*Mjn@kla2XX!TKoQeP^sfC)he1P@(~Sub%3N zg%T!dQ-2Z50sU2t(%c4>m*%#=yP7NcD}M*UVk|SVnm+W3uK{B-t&hx3_y?>BQMnkf zh=Q!TU2KW8Y#MbcZGtaMJ3?%IV2aAr=5x@B`Kl(2IJ|Z?NUOCOK*h8bzGLEIs_&O! z0-6lX$>fzw=$OP*;>fqS3=ZhZkA0a^@oxxJ_$`rN`Sy2(`#4jif?LzrCe7!`Ik65A zQ(>TE9*d#$EaTwy0=%j0vkJQ;q^hgXbVK7Wnlq8wHcWsqP?nnZ;JSzoSA0(jFEf$~ zYYQb+8E;)xX9!Xo4WL;o186FoJs^hQLgMw68K{_>?;%AuzjSp-rnV@yq-Y!ZTyV}G zh_qDaxJJS6VbV%L0ov0DVEK~vxl-#{IROi*#$&%k!g!95^ErA8rF$r z9$~vW5=ZOs0As8+Js+~vluie<}lmf_<4_XyBs`=q?=kE(vDCWmqttS97r z0FK9?e~9S3!bb7}Kz#jFh{L_YQGpfVr$I8@1iY5=%E6enQ8VbYE??&o)f?*y>1Xoigcj7j-*r_95We0 z$0=pvO9YcS)Bs}5<9996jMUK^NG)hzX0f(lXzlX9(Ga`WW7&AJU02PcNmaN&vZcPK z%_`TkP7v{>YdhhUKB&-k#}qvf`}XWFQ(;LIlZ~Q6c>G}9^`2G7B52llsbrKG{>LnI zxSqmYm;%Bmj{l*o5Yf6b)9v7ff*9XB$ihD!hchKk`W<8-Pc9!;1K%mH$3E&%>>&PL z1mF*Kbi4AJ-k|!3)Tc282x#YB9clo`5`k!!892S2i|2gH(5q;Os8W4GClr2`QzxaH zj4#zmsIbGM^85qi5|)Sp=~g;CYsw?uY4*a!TDfj2&ocLcN4NQ};z&eV7da95tayyd zL>QENFf)^wY>wTMtr1#1k#58H+lF0*E!VAv4Y^IHeP^j&a>#HZ6)%B7AytYUNv8Mi zezM@q59T=N;<^#3S>*So4Zy#i^0I``XgLeW0ftJI%i)LCvXR0sv3dw_Exhtt1O_BA zI2EOfGw=tIBD1*%<;2z?!?EZae?Na9)DSOVW0>+M@o<1!;PA2^j0f?;`rxNcwLoc+ zOfWnvssV4Km$v`*KGaQ^v$h{ZK#3IuZiUwDYM9IEG??_g^9TQAYCll>6U*qVHLH?? zf?`Oh9k?yOWHzc&gr^xhiokA6d<*`wxS~+WMhd$MYr(1-wuuk-#P0w{4s%$tn;0lc z;S-qQm8pA(>yI~;7YbqCtX`69DojX03O6YV%{mkH_&3b))E5z-63v?zYr zEG|M}DICCN<~huBO9oTu&_1`@-iV|sk=r_vk-vhjCG=+$#~NtqFi#$EBJ>?as#8M$ zumK}KS zHB1eA4v5_<(g3<@e=T|OC_2#lCf5uF02%48yi~m=06TCsEGQ(8&zq(g{5mpSV()gZ zUQigMQzW?42GeCqH?A)C#$NI!XY{|N1!*#IM^ui#^>lS;t9qIBcX1sIiDBT1oSWzO zV}(g*_fVhnyyVDqIwfv_Uo+0=Tz0!;C1?*_Z~u+@SI~$L(eraV4vW(VbiNqY(|HYP z(<3eteR=Om0)*(2Dk8lbazvFtTLfNc<}o9mszV6vk%hkQU?`m*UFUoy9dD}6L+?$L zH_d^!7W{vFgfYaE)(X?mGMa8y8IkWi``&?!pH2zicXhNq?T?5Q3mf@qjk?A;`v=LV zmo>sXTM)!RFyJrm&qj7%Lwqd05J090?9LMOe<4Q$YHw=`S`*hF_UXg4PTro9iT~B{I757C}XxxI;uM8OD269XnR4d*9FSXT9 zJsg76lO3gak2aLl;a^>6IQy)Hgi}HcK)XSrTqYe12KJd}`_O);ck#5^7uvP}9QqGv z45^~l{D^zO2a>F|SjjCvIsWhH&}8B}DvbVNr^eWC6fM}y$&Q(4)Mpi5Y_IRM-z0y` ztQOp^>EuJ(@qV1pqT7J+%b8tHW8m_azMr$SR08J@HiM!+P#_c1J!usoSy_7Sy-Fx^ zo9(@E)<{;nqhQ~ly>J@fy%|teLd{vIl6HmcL$ucCDl)?qTb=nIAawhs!;F5S?_FsA z^xUA$x}Z+kuMS@?ac`NNWg!KWHeRDMOQe<0D8^;-R&FT%2&obE*=d6w^A_qfG{F$` zb|(IJtA)uKxnjbtoDY>*^7@BZi(bhE~Vi+HOV zxsiQbhveRUWORw)@DqSUX5^3bTtV`)(SZ_T?acbKjfJu`U<7an=Tv) z8>odWTOuS5e~1psj`oF9%5wV$5Icw=zKqgBTsrZ0dJ-Su}Zv?@~PrW}oN z{k2=r9s9_wvcn~-_5{^tMDyq6aUX=b0{7Dm#4#C*UpH5F0K^iG*P)*!|JUuc>w#e*(v>bl&Gq??ef|3Mmj} zKkC6d5KUJn@(xNAamkGKWxX>BO7m3C8u$q+@&w0YNZg*d)pXMe^>NPXJ z!f>CF=sG+nXqlnj4)D|RhpG%N8--cj{>N5pj2hM^=q$8A1-XF)yCrFY+hJAIq|RhV z1i91BrO@?_C63(9df+i~74ikQ{(~#kW+igX0X*o0BZe<%IWi8HG^4&?7!qWVMP0c0 z7Ils!t4j$YnUu%?1Go!hsyE0N0P95?)_Z8x%x>c^Y3dl4Hp*+FJC?5LyZB&G>*!)d zA#dsU$(t#75z?fNRVXZGmsEk%e~q6(%gepCv_u360g}rsuL&R)v$EzLY zjrb*EJo4lZb@a3}V)1We?G&fn13M;*eCDpdcKptlk|0pUiYQf<{X$6&J*ra7RPq91 zwEBlEYiWtP!UvIlnWa-tfCfVcmaC|uRauK7HITXkPA{DdpA_l80nJdIPV(5P78ubH zuSVwJ2Xik;WCbE!Pck10byK?mSJagiq65X5q8P8))1MW*g$DAQl0)VSqOMH6f8y`v ziDl&u-Kl@x@Ep6RYIDb(@hIC*%@+zDz@3AVH7r9^Hxh$wF ziWRcSKndEs&@MV+`ExtX&Z$LwCF7j_f1v%877q?4k~BGAJ+nBiK}!*=pUrF^OI)Jh_nq+{om^(HzJ>{DMr>14qb z5nRow=I;xQT$2lKDf4j=f5(XA>ljevhPF_?UXorGpWjmrX*kO(l-cI_G_Q|PtU|BK z_mo3S)J0VYli@Ive-{{${!$jDXTZsWix(Iq@}9b;4C3aFDKA4?Y=mz$;1`>H6y67duKCmvp^h!pWg0facfVw1i-~8R9lH!I~Bh_6oYplF-o~VXR_$AN{ zbci_T>;uLNd$3~B)R0x&+sExok|t}5Qe(jJ=J;VrnQIf8^NZKHWJH2V5O8@l2)spd zpt~-lO3#iASIvj4@&smY#C)OiAGDeFFLok-lXTlO+k$*NfBb(0`nYHPt0=rf5Nzg< zP}DqaMhz3uS8s$=NNcbO41S7~J4_hR^$98Uu`Hi$xxe4c^b0NM$gszq@ z@>>;w5LfMa4JC(%oEl1W-FlQS6Q|7y3zLzVx@0e^15IJA_knT|gvzm|j2Azt?zuT( zZ3G@8j{cZ2Y92Gi1H{6~($py(lLL+F1rgY2blSOu55zQW+QYxCl=2;vW_qYEhDti< zOOp2a$BS|untAffRrK<5VL`F9kno+1=hM^s*HP%yNUF~W=K*X63-rv_{ag3bKy_ma z5Wpj}H=UQLu{5U_Dp(hyiP?VON)GK_xT?9w^YI6ylkHxPZF!n7C2ayXpK#I={;_ts)u8aCX7q+1oaOO^cahyezi7;ddqIZQ)4Ldb}jLe0{3 zSAoMKkXBHL?pP&%lqYD*H08?>ZYBqX$R-ekCBfpt-9b$WrP}3n# z+66;wWOtk0Gnc|Nj01-^j?b3)NXj0q4$ivR51S2HsIi-$iL~IL7=8S;(VD_!qkIyb2w^9iMf`Z2}A`W@@U1#4zS;UhtVKrHWSObM*Wbn$RH^@R$-9}BUjEdhz4Y-+uZYs zJ<+ZD@|I}Sm@r4%lD_B!I!X8z@yQp4hsqv^mG?1*1p8&%7M|Ef` ziTg&sJ6?BVvuI4-HZ=%amT(7%?r(h92xPR9&JCYF%NWu>FW9FlnF=2WbJ@1tWJfSo zdMIG0d$yA7?NbuFh@Jq7(DF$=XmTuyO0DCg=_!o}S(MSi4%$z;0laK%25}*STS)!} z8h6I{>=Xr`FXq@ zRv!}dleO+_UbK;Pj~3K}BMC8M`7F2}7E-+v+U5`?R8Ymri8M&VW{g)&U5>Tx<70V+ z5x8PI%msHtDk$d5!X8$!)kPOJQNN8PMCJa-IEzlO)%|m~spl2Y1jm%iFqZ1c;OP3C zDRB1NcTp1ARVUi;XHhiL{zz-KM{Ts!gj4WdJ9cYy;qoc{$ceJl$6#Hm;86WF84&cL zyzxdwB0$3Po69*HJ`4yxFR*h1`=$l(vW!VzFy_!=a=U=z)IL59*bFP=H#34V##|(S z{?`cND&1+p{vn*DfDsp+no`aiHguDL`##x_+e1IE=q5u?-9wDGo>Z~K=X6M1Io3tTg7FiE8rhqpG%^XmG83AmXKmI{9 z1&{?S4*_!#H{zq)3ZmE(I8symO^M*SweeM{r}avKG#E}ocDw>s%YMFuE6&Kw=e+Dg z)3rn8N75;ug2o{L&bkZk34Ynp9pGbO2k;U~;(V;#nDA}lV&;-76Ioy`J8ofmb`myE zs$M84^UKS?!~IPB#^F0{Ph&z$j8lDlgg?#+5XI!URFh~gipQr3dIf|;y`iAisXN}u zX~QNl+gOX!~O83P0as3Mi_T< z%6GS&y8zxRRI&z7CDq2mXsE)z@BwUsFrkk|{&`m0lPV;oDMTknK+#i52FhBmq_<78 zf(8Yr0{=(Yf^Rf?>`n%RSW>$Us&m@e7l?N2OZ~0c8%@Yp5H-o=e2SvnGp(9oKgZ0t z+AuJ>J8ry-U7#~Ecm-RsQ;#yRKRjjj?--^86^7n6P+TInPMp1{I{9 zCoJ&1#U7kHhPzv(^h;XrA5}1%j7FvUP#(~gR#NbhN1b_MjA{5`)l>xN-`olz?vhZ1 zS_mhGIIeq)TT9jbOHwaZ1jU%x6EE$S%FtWKQ~TiE;99+yfe`c#{pWKg$UH~|ltv8! zwjQG4YJexOezGMJ);`H~qepH$wFI$goT-pt^LSl?oO3=aTaz@8?l3=bI^RRhCjnCj z9UM)Pl+z~pHo6|SS{dONU)|y#=Nw-7cDWc!UfN>k+A=}{Hu%@QOG6-0@KG6j7G#pW zeotE8qJPTybGMXhhDgO$pM5t>`o*rCRv?LN0%TK$3g`GtZW0h)1~<5}xXwU117`K_ z*$NlMC56FX0ebn;KOZp}D04&WLWbc^WF(i|N%=eYjUoMEREwA#y5c-6zz%{xm4YiV z+Z|K-lsRuUHe7g1PR`sifWfg22IQJL7zGk7wSYiZ)T=TiI3?3aIno-t;R>+A%%i1^ zw-*^8-j|$G8lW{Y$*}8&`hdfm1bo+6mrY2tU@lw6irR$W!Z6)7A2JQ33ZX+bM$f+k zq`>r_uUK!JHaX&r0+xl@h(b}_%s}Ye-(e|pzS)`t(y?j-q$GoVU_0PxFKjgWY{(JM z`SuR0WYxj@k)#f?OaIg+*1y#VCxW!vluaZ}D{&|rIs$#m{*wjhM~j8rB)V5pJ8;43 z884fuf2rOOm34?8G-TOyNup)wQl?K>K`vNqd|6D59a&Kaa<`uhYf|-AciwEsrB{il zKD6Fa+*QpxMJz<*-kzx?G=I`m<1uy`d0QK3N8`enaeCQ+R3{=EOWF~G8DBVK(u|wd zdgD~PWQ|o9=#R5i)DG;_U`w4(NHrM)uD}TxgJlEv6pXvKyYNiWk&3F5@Jk1YQ!Z<< zwq@Nl(7K^3kdpCwcZ1*LL@S~giIQ#$takP)GYCFZ`*->d$h>*v&B+1pH}6oqV}eCY^Y2anTi5f!;S49GvOGW#!-nQw3^YDVWxGMo z$Z3PM+3p>=0oxL7I}Hcf3N~JL1;$4X^TP^>UVZGok&3O)(0~-VOHAaI%W_n&$G0R} zvDb(n#)1at4m%A=M;nT4O7yF;g8>_#Ozs66oXKvXg)sNz=LyzAzHk<+e(T6v$w;(| zCyZS3!m9?!!h)5#_h`wQQgLw7umQ(IA!i3! z!#R0*Z9P^+3`!k*=SBw^b|iVlS>l)>KO48PJzoNY7=uP&?sMjtWT7ym^3c&HTwROh zok9a=P8LL8pA4-p`E^iGk3J56WWKSX-wjUg(hJu|qzaM!1z2mz$)A!N{BWwyuBc9G z(?$5Sa-LU=<36Y&Z_+#qNo@IOX@oL@cwI^-+w1Gnxj$w!13^>Hcehn;S^9cjK-}Ny zUfiFZ!Z;L2;E}sAkz{PO=csT@V=(p_?Yr$ z&5E<)8dnmi6-!B+|M2J+=@pchPw3|aGte_=d((QO1pY>53XP5NW6hEoIa122&h^g} zJAq%vqs^$y3F`AkGB;-4W*ICpwe_-xLFF;!c;p!rUyDdfZTjx<2G>w9J_Ouy9!uPH zkjC9;|IIbWKPNzmf*Pi;RprgzAk$?t;b&gijr{aw__}ibnF}aUugP+c7;xC9W1<1-(%&!x(QwO+KU+s8g+uivus|ocaVYpM!vzP zu}t?WLM1#f)CmcHP`ez(dY(F|+fQRcsIHV4Jg z)w-FI(pGYv)2%l3O@BZM5ql zcv6E0@d_FNuFCOBGzpe5T24wM(tI6cIqFaZhJjHkHf0=7R1^r=)Lv)ZMErq{_pp;! z_ZB+RJ$)iEah%u=IF*E3f+`r2#1$+X`J8(nodvA(qOz%ZYaSm@(=d9CXaa>ly_Dt^+peM&fs+clFa%p2U+l{ z&whcq)HF!RNqwh=5m{gx%y&SGdjgVvk$kb*Cvi(gGmb=0VS_)#JL?DLp5vYaC#M+# z5ezjHZkMp$*|ShnAcZQ~)~fu8cW%%|f_|AHdeY-$TA^6G51QeQ&I+nnRKOVjF7LIT zaR3q(DlMT-hma&cuSx4B8)@6NXywFYZU5Yk17^&qTSAG$iO?o$FHAbysfid5$=JOCB@IrZ6*E{BaJFa~2SB1XbI)f;pQw8C6lDk5oxmPBg#t zk%{WI>&keNAcyqKQN*Uwm_PqbB$6xGx25inVthw--c#@IhJi@J z6>DtqDAfZPUCyTR>}tjKJXSH;ZOFhz_gmy^X9w(?)a}XmhMmA?V12=n8f;HR*eZlJ zF2<^xL_z)Bzh^VH@ud;8b>n{dnji<8(t^G;LkhqBhGx<9{b+zQ7BDv*2fMinBqzf`KYO)fFz^MpH48 zYOPt=VBxop&PY*TuzF2qKB}?awCP=6$m(UQTc1W-kdOLqVpSS$1wuW9GZgcfl`if< zqV4|CVo&K~I7DL>!6Bil=893}JNn|em3jhNWkXVbH`vC=8>f_e zM_V2?G}?sBx&zCyO&DZWwg~=NEz9PuQ4Z8;*_EzYKzxTm;N0@m-lj}dh&um;?A5G! zyWr<;Z!!;XG4!x`RTiB~uRgr3z{DV^>FwlZbR1`aWYK=(i{D;e)He<^oTzzyyQj}w zv3`u&zJ!&is@IgSZTiglvoGm;gT6~1ej!q6QP?-OFRyd^heOYO5=73?58Z#B_$oUQ z9=b=|xqptyhA>3M!~m?~C1=cOIY}7Q1UtiozC3!wZ`F2aLBu}iAK12|%|o~Larl*n z_;(oW=}kQsc7LYpt`76Yn_ zK?iFcXsQliOWkFr?oy4hJPPV6$%SB9D3hTgu(NnG7FiColCuWcQK8{5Ua;pECm#*G z?~8MG2==@5mrU3c=i*vi(G6MovzaFn=7RG{_9@Rg;LVBg>!)mQ3qrDe{~Ie@QC6!D zcxnDHP?Kw>r+hvm#&4UC%$iC>*o&4qgKw6(><2QhBqZoFgFK+%cf@6C+97WS-uPTc z;w`TiI^01wDYV$ zj)2+O;@{f=Z{hWgMe`;Qrb-yW{i#}%_TTioeCPrhZX?>$?nbz5WC`pVn7uJkv{i=6>6$WwX9vOHC=gpKNBQv$W9NNnV>CN7!LiWx+seU9zh; z=_OkWuYjT2vAJU?GrkjrwvZLWLV9-E1P*&*Qv@f?j!t`qc7%HnnNcwQ%sciJ?E8TL zJ(e^+g8!`+U4sLcr*sGOsdDTeM*LgQR4_PZlFUE!f{}ajB+;l3$)rQPGC@2cl!Z!V z(SysRees{f+N)Z=?%g1jA0CCKRDQ-F9<};nd$A^zP>OAC&Vvn%eK;fjnDo7z8-}m7 zc@|4i+zaR54{V7y>U-KYXL1)X(+!ef3CN;5`U5P?D{g(looeBiE{5j!g5m6=zkt)H3iOYFkKCVtxel?SSY;#QMXQ}0~K6xmj3ig7`jMb(N z1ly~m8IKu14cNX$=a#fy{J&Pj6eM(4dGIR(iv5Wr)QFw2>Q!&!1Gm0 zOen^O;Xi(UDd`{nxc=4}|JN9nZk4rEzo|guY0v6XhoO9V?*Ud)`g@lvGM}|_KeW7acdd4AISf8QgF3n>H zHhT>sPE~-vU)VGMVQ{mk-FC4qJ8Fry7jh`{2bKOXt!8Sz$axE1F>`ZVY&0RIU8wiq z`I#a-CRe&pfkbx>|8d^6ep`{vy4S*swk%F^U8%mB;+0@ImGABCH`FkVtJY zA=;7xEP`@};+c~{;S!-z(k~fsq^8!}7#*EA9ll|X5n32k*gj1bD8RkmxA^uu%#y*< z+9UZ^3LfNe_gd0I3iq8jt2 zHo-HW6r&@K>VWh1oD=ej&Ix25KH-rJ#2NkLVXKcTaRFjp-MX}1%$r_|Lg?I7>cX4% zMNvy@S#I&gz>+&^|2kP_2vBV9=IkEWcEDM?LoFB)7A*BHrp^J%ZBDD2^=;36nYX}W zk#w1c`2zr-KV3}1Lm*Rm8pt@`M6XP%AVzKwBh92+zUR#fSn6XUo&}De2D;LSWw0Dy zq|-cLqiTm^^Oes$6pE~PA^34p8_55s5ln`y>+tLQ1n0mC%hhNs#oR{=1sh zS|p1EAs;J9jTcb#-n}x#D5Nc1o*UJd_pUwb(KtLm0n28*ao5;ly#J5Auk7nA)i1|F z(uU~#@T?wQa>JF zsqN`gPHBnqoRCXKVyFefkp>C>9u>{DgKdx~cPDlghOjQ7icml>a705=AMcv!y%x?HUacj=oz^)1idwi+j8mVti}72|+Gd(Tk7M zd`&2-;wd{aQ?&=@OPSL017$cx7G*hLkMtaw3ZalfA)J4pv3~(kfaGG=U}h}KgSAZu z0kEX^RU218mU1S*>1&&;qH(U*ZHKwQ;gM)RAIc1$zKFbH?+F9<6;@+9Kv*IFvd0>fC5mkolq*ZsXsqTR1{*eYB zsadCry~A|-M|oJP(PSOnF$yWOVh2yE`LyR6Bxmq1<{P^QO&lU}K=0zn{fCTk1~;uo z{Te&2nYe`L`rdp4Ol72=qfl%S%BR-VIzD32Rg*dAIUAy*gvbxI)62O%3(Z2bT>jNEdSSKHMk)H&^!c8y@#xnOCj&`oxe^$3wpFxM zfMy%tRC1!Zv0_k{IvAdVpJ|?UCd6GXSKGepw`)eVwZI3Z^Rf`885DLOd_u}9n)Mp& zvC$gSvvi&19-D^d)L`61(L?-4Fz&;Q;QRFZ2j!7ejD60d_Tc98RW(*_}Sq}`hQ?j|U28@lhK)bgrSc=UA@ zl&6Xtq>uA9i}$o9Kq7}0fo4}r_UFq&8rsS$V%O`!+uekxg-9Lx-irl0AV(*eUOg&G zg*&8+j;_m_@DTRCnXKIZoJ~YGDJ%BDqRTNeM&9I2aS;6gLfu!a!hCIot~Y@`=Ly&u zyWH+jkP8guDd}nyoW-4>ruq5wat<2P1^Y9jv%=TqWkMfHx-tmvX!8+RlSGynK%1j> zr$I5-Jp{K9h+f>yG0WYf_8JptI;RcjXR|TY_Z@l8SFS|O43)5K(L4^k>1gAJ+qp~;1G3|J4X3-v^DW!o2R{pf8FR!$t5Hst*DG_ z0HE(S0c#(a|JW&@gRb#0SuUHd@c&~9{#>;P(&j$@|Ai9jQ{3pNnJza6@YNWmqvQ>M zLQ8u=oakxBF64q0RV4v*i{058`dSRKMn!`|b#e@ZjZ0K#C^Nz|I^&5fFZ$*mh`Unt z=NL2BURTfkLBqB@Tky~bq@)~B4LU?9D4}agWtjJHd<;tCUcparJjFsyUoSBL5zC9E zibK#D>2>L`f_(aXS|;T1S?m#J)ACBe3(XSfYmCYVReEiN)Lc-NJiiDW?s75J`Mh7h z#wi38ED9GG`CB1#<+<$9hNWw)@83Jq%dl=-h$BJ3J0dV+SpcxF@~(}cU^18>xyZeO zODY{X)??*f0t2C)C}BgCBLREbxJ}VqOrz805b1u78Z{uiCGr1nqxOM;Hjm-PP?h@} z17D8hgDIp8y2J}hWQSqDBBeOZ+Y8GS$~pQH``E`tgsMce5Xy-cj6s5&UA!)G<4GXd z5#F>g!}3h_1^Nv^0r3Eg#N^sC9+Ixi{Gd|dq_n?+nv^zQ5WYD^>i+bpt!(n*nV%Kc zS>KcW+d^Y9bRfoWm#=r1d=*8I!8Rg?GiAk~gWGl$;N;f69-A#~sLT-BkH`}xZmo&A z@>c6i)$~>DyLQzgDeLJ!L%!`C;6f

_=Ox>`=C#2G#5yP2bgkFH7=dmyTouK$nGH*y%!zo{>zxc?(Svc zb9dij#I&prBq5h@G~@^yVM2`5$X)C1$)z|q2bl^!@!B@5-29y=5ns@$8blW^;7}CX zY4#pTWEtqbeBhRHHY9)1qrPG4Jh8x`j;zTC`KYU&;s4=zUV^4O1yU?mB<5`R8H&t}+Z$ip##%am>d6|;k~TIZuB%xSGdZ;zq1lij2E@Vex6 zaj`W&O5;q<9e5aUT_kqhV)FkGr}!6ceQZ*kuT76>`=spk&U47?`#5BU>A*-zZy=?T zt?ZP>BPGRF(d2oTU1Hu2t}FUUe3(mw34ulYd3;C?_|-vQ4SwKg6lST=)Hs0pGcvOl z(G&FJ|*EQ(% ziKNwTZ4-(buLcupJJPqXz!kz=uu{QIa*S{STP)EVP%#pn;dNu1_28Gr_}&eVmQks()#D+Aq2`9%CpR#2F~7Al!Z2hdE@63|k~ z2Q4$FqXK;sLWnB(7#x5>p_1|u)gkwfb2OS<+E*tJG(q#$iMLh2?-?0`*I82QqbbT8 zX9r;anzfR0B>n&OI?|I9s@Ae;xa;;yj8_UJ60=W?3H4dZ5k*S&?|s;8rsB+9&{Uy? z{mIFZ9+1FwqJ2$$U{_WskDmfIq}m(3vYu@z;Lj`GWvO2SiGiqC_aU805S$#BNfiVTp8LWXHt4VkmE%)b|n7j&Xn`7?N_Jv0z8 z)f4esz=S%Ylf%tYl~XA&vK^piFHJ*>Hnp=i7OD5SX?+Q#E=*FjrAM27zzIt9N1g=e zY~ZWw^T%~sU1@I~j*^F^M0%A!86k||BRYmJev~S}B1~wcY56ux7JDmRLkZ*enjbhc zICR{CONux^qG(D)^o2*uAzYhD+Nu|BdAoGoq;Wi`BqgOpu_4&d%;iv|t*htdDbcjE zZr_vr-Vn5pXcdLh>>ih@#4s7Dpw! zaiLO=H>`indp3`r?}g=mS~1ARv7_e-(0q=l+)zI&s5&7aV;Wby%QbMd<)lt*z&CD> zD@W+1ePR_rWICNZFiEVdO2sL&H3F;|xuZ)aUFwP8(*0xJyoFpdkR9MZfh~}t^kkzs z+PkMOu_%PuSw+3@Eya;er-Lf5`BraAKMrt^0RKM#z;{+D*}ryS3#!Jz74x1oi#_(= zSHlDMv_$T~&@(OOl>aikKJFx2#|*G?I#$P<~FBxqBu(m7MgL?iBo%V zSF-ct(huanpeL)ltS)A|;}s8LmLvK(=gUBuFiiG*q)%gYr<<%h z1cQ3eUaM3++7|9;H*hWlfg!=5E>fNct=$eeC1TsQaFq)lF69R<@hO?H&YE7q-71Qu z@Cd^N#cDN@<`HF}9)isJ4}E-pc`i4FNqFVhKzhgJp{(M0sJXL%X!b}|3&Xi``w#;4M%@-cW#-u?%zF(s*7hs&SVgc90+#{ z#sq$RAQ_;Zw;yI5Bp2l4p~;=ng!|?DCA%&BMn zKn?`8?U0OkQce1ulZ+wd!VwRsCF;4k?@>bNEs0dj(nV`$0sI87Fn@TW?Qj`7?8D?k z=w55W0fN-U?vgWz+|YD1njCDtJ2W{6k2+6FluG^@i?&+$nl8|1B}%wFO}^yL%vJ;3 zY#WO{yQ04ip1jW$03ey6i46W;MS?5dJc@$}fp8(!Gx)kXp#XS0HZR7ap<5azY_9z| zaw9$7jgn-1eaRIU+`Urx|Lqi!DuP4grEJ#4-e4+VAn@ER`}G*;hxPw!#9B;lvMTO| z#y~)NC)yuj?He(cr18Vfp;yK`1m7SPEuNZv~&urepQ75R#FafEJ(3 z0xJxZl8@*wX9QJ}-NtI+WRVXD`C(Mbo7!l$d0HIBHQW(f-vjJ^W^AT&Yz$nYQX}fY{D%Ucy&LY8lCQ(LQmUh`V;Im3_pZsOlJ8h#c})0tT7RbL8MD^s0aw( z^4}72*1XR0F;X?V;yiCkK3khHo@2ewD6i5oSa{SFuax_cl)#Mgir0#kCjdc%(_u`I zc03}Gg>dy4Shb;6+S$|XlGejoYp`{%4E^T(U^b>2F+4^$;OfsC1ZBBx60uSxh}f_5 zk>XjqV)@Ami%*$7kT%;KWOe|S&U}Tbn6x^HzoDIjhh{dJtx8Hl)e`#^ zXHb|R?m0EUv>k-fh0-aZDy?Sj27F~|1rUGE6~7jU*21xdK`Y=*z+34J zRXJs=xFaUXdIX|A*l9gL?n-Rb7+FZTG?rs^DoPIhQWDGz+&z)GQ0hM7$8ECP(PN)F zWz_-K4!n4Ayoy;$FC=5FTbn0YweyrK!<*{>WA%%dyzi3;GYv8M=J)6iyDo0dae`Hb z)BtJ&o)6B3z)q^vGksaD%!?}6dQ&^f-&hHLM*Zb)82(8eKwzqqRBTrqF+R^BdOxQL zaKDh4r?;2-^9m?+9b@Z6ntpmJ=VY^U!{Bm|{#l7~Ed&pdl%NOZ+T<&Z=$tyL2j?-w zIUzZ^3}el*5a1;91_tvnKiwF-Q`dE6cwnDJq~fW?%Ke`?uWObO&=6bhN{mrT4 zKdZwTNgi&b_b|!5bU%3P?`c`!VAMk{T}fc@m>~*}k3aE(HCV)8xf?D}bgK^1$*%}% zqj*k=Yat3lLBOcAk5BdL7CUzAh8EXRqf-~utv2smB(~OME%Q|Bd?15Hk-Dg8D@(=b z5H>VY`7bmN#t`mi!hV$D+wWS-J%JhOAmWzFhk4FD?ec8dI7oaIW>N=;6xG>s>e;^i9ldLkA zFS@PiO8$^%w8)rs&+t-K75x;J!&u@|>wHoJCD=(l0;+LtJ~2!igCH);BS*DOtKu2+ zv8jU(^*a4EedAcx1ASYyjH>ZL=Mbo=GPjIy>C&Wr1p3^H<}+&FK`|@-Ku@?V`3a;) z@<$?+7x3o7irPkN5k3G{xOlN~Kyc=3!rMOM6&;BX4+MkBzKx2t2khf7YklI|AHi~L z0rbZZmm>(Ys>4?E>kD`_1bechVarq!m!gARjkFDk_0v;upLI0P@?_J2L=C_c`?YiCTx4?y_!V9t+mRnC1I6;6MiB6H*Kd) z!Les0hjVRjZ1KR0$5=2ND?r3@5Vj&jOQDWvxs=+@0EDo>_`hyQCDK^pAjs47Z5Hz7 z{+d}i6_#~C$d{PT+$pM=vHs9lOZah8s(2mczhE35?JiKdwoVZ{CTqQ6sFk3_Cc8~6 z9TcP2%K@S-GFvBl2}%Jl_v6jfI{9_r!MB% zp`-K_`XUVX*~o7Vy0-_Q6!>g%i-((*5r8|#99j?$2tOPW}ZO3vjOV>YD{ z6#x=yH%<{PZtGmte&f-!&w>2o?$9}7!Fz6w^*yW!NvEgc4y&Re=PVd8!xsI-Hp!R8-OnmH@?iS@<-s|dZ z_$2%!r17$IEzrcZbtfMZYA5JiiC z-P8ZA3G9UPQo`mQBQe)Ac_f9{`&w+rBEQf4cuzYYm|!E=-0|nRL9s_o-|`^&2d;)_ zs6eZyQH{<7WPI#(vp~IZcK

N1C%m@E#KBNqlM_!>lIrQh`CejDKgpLiBuXYPh}! zhyy-{8nbK0jz(bkCLT)nJzj7!d>*LzfXzQPP%~ciAHQ}al>{hY$oM#`q_w1Eb1PfK zn*+atS|~?7YUd*WxgqxMFSi*u^Tm?JpFG4+IQ6%o_wdSRKLUmh6p*cM@ITyQ8)L`o zYaQ4nZ5l=}_iS{~6A&*_0*WIX-@@8Ri4JgzrVUW1Pf(>7Ka!yl+(xxFeCUrp9pidh zLci>n2KA0zyrGgj(SAcCQ=y6w(8%MxXxtisVuU+)_NkIoYo6cLQfk034S3TZp;`#m zF%lG=wFv6r{xLG>?Le4fCwviHWjB$l$Kg?GP7zFT;r6V#N&WAm?w2i9t+0 zE!Q{T5}P=3$BHWBT39_51;H~q1n9mT!>!alA|uY+xo1Bo2Wj-5rOb~NEhf6B7qVv4 z`(h7VOV0$sImk=)P9f7dnAEY6XB7G~3*y~Kg)&kBh#ofnt09?KhDhtSiBRM+79n&< z?DD*tSz$zvToUOOG=Fp>HhS**a+M&Wxk@yPfz>}9NA(9kL_KJ;Z9>KUf^UE7W}EI> zlKhOwIn}XN)VE)>07Aknz2Sv(n-z=wL~u(S6WW`tdSna9dv8y%Vqq+}EYu;FMfh%; z-y{+LC&7YZ{G32thh({cin1_@ zkAj8zq0cpfPUQtI(_f-lW}1X0`>4QBL?1yBc2v}RE@Yxfh-`Y;Ohh(?6b_b>~Lslmz!N^c?Xlic;yV``Vkh&&GtfMM}6#iVPc# zlI->Y9^iReP=DnbbR3lNl5T=P@PgFSY~JCY z*9Ag%r6tUBk=E&qYRBpI`EOgIqx{~VS+orAS)Ac0p|@Kq%4+cdTJGrU<(jw)8K)Yy zxPGizU|C)25_|aQ|9cupGf6U>%{J~SkJAdU4&c|J5J%jmSc}?iBOqPJ1BJ71w}pgc zrZSS!j&#T|84ujzy20|srQi?SQ1DsW;A^7cj+5n0j`O~xe>N@b;BXwU-C2onNq7`B zWN*#-+SX@?%mh4_P&`0yWVfhjX$w8`n~x{Zhpkm@DJ)>Su-k3RL9YykG@edU?ZAS+ zRW&9+v(LlyZ!XM;+9CoEC zeEry4KqCD`Rx{pyK%cC<5<4c>k=KdABSD^ev{+_lO=}68DCC`;9#SIB zb(KC=oEzOVwi*bfkB1?OtB)tJ5HeW)cpEIqL=A&JV+f*5fH`1)8VR1V>TKNnppa5Y zC;N~Sw#`(3GwMcoIf~byx^=*!u*ptsJd^Ed8fK0JqMJ8W56057AU7R+0duHd`rJwh z$wi%@ggSdBJfna2%%F&Z1g@Hz(TN-9!TcwMn7a{z^I(eY|DT{Y5xyJ%3arklsBd9v zTp$)N{56Y;lMq{mpKAF%!Q(Y@`qn_A8K`orzh$q-DfTD`!qW)8i>^|&okzsl^}x5N z@3>r`d+|w6m*6WJQ@}{Xd^p9MVHg!_o{Nh4K<67g)Dh9LBY-@$)qDu!-@JZu^$$1g z#h^A+^c;T{@W2#$K4ZV6`vZ?U+_*X<+bfGj#e_qaDV;;C;JIgdPS>$ro?lelmdx=K zY=|FYU28rCeXAYz6vFwc4r5}YLTFsErAx>O+Mdpk+^v~{o%P`|*c20@YjSHleVaBb zT^-HJYbT|WzJ(P&^a1EuGWO_`+KGx`B{AszZm@%Gl)(~*c@)T3^9R&JNs7-Inw`v( zI&dER620?24Xg~qHNY87qb^BBgtx4AuRO;Ypa;ldy(foB(31?==Ik&c@AOBmaUS;O zgT*FS)oMi;vqC_>IpnZRZrn{!mp&v+(0o6g8AeoGkMwXsUjhSTCN}5E5f5^JLRho1 zdC_vYd}I!yshM&+yi?A~a`8=W_zp-|zXz38bUjaT8q48Ap*%jrK*Cx9xeTRd%-g)W zyZ;;(nxb5Z6{6OxP$N>e*2?l{%uyyhL9m|`TsSpY!;PWp2V9oh0u9;llwt?PpOcU? z3o9~5II9C-vh4J31yB&FkXkTx*z67p%LKqpiRz1c8hgab-t4fuo7A@ec~VOhHNNjq zyNEVlD)Xb#kLcawgvEQoXl;3EK1|QwQC@yvejRBm=>sj~ShFMl)oP7g!a+*v$`08S zfbPH*;vmFLh=Y?n>Y;fK_2eYec?%&iSNOceG%$FPsQHC?mRz$t?3ZTL z!d~`842WKI(iicMfZ}n+|2^q-M6(awCLYwwX=OWK6|uINv+Hq8T~r>9V^9gM?O+P6 zBz8r06D8-ZOs&lSsQJdR3V?D2{Jk8>9ZiQK=~yEK9g>G{aB>hy+L28xOd^F5l|z`p zb*tZq#jtB#DmVfw)VHuNi3LbeHqRhAhIqi%QD^_ykXN5USOY>PWUl6Ti_uf?gQBC$ zuaL^ZEvV+y{k+bKvsk>!5S`C#t8n5lG>mEHZ0LXTR3Piw&%~~6xP|O_z0#Rh zmaF-+H3n$vLKk*R9L+FnAoI7}03-cGlyfGPJ4>4Uj#x*@I8%LOGFLmt1=n#d5GiL& z1>5O4jJ}?Iol@T;flY%B$LuVdB{bP}2d9NvivUeVcRLWqV9_GLe=F6TT4i%0#JJ89 z^kM&!K`^j|{D=aIbBl6LQ|Hsv{bsr)W>9ZwMfz0Z(ht_Zci(Y2g^teZ*&b`M8SElD zz0q<-CR{PePc>RCyqiz?eTYomrXA?f*okgtSlFdwDd+@wt2kU}p(x)iS=iFXmnOy` zq03-`D$7v48Z`QkPhrJExhF}r1VAdOuZj>iSTu7ejfVMdb)6Xbd&m34U4a2CeRaov z>JLN=IMNuH0~YPf^s_+!PXW2}hkD9BOoW1;`q>?52a{vmBLFEOMfq?SxKL;hxSY-N zp&xpAwjD#6f#+p-KAJ_#)%AQThSCld5+4=|hq16#*{@u`@cJVy=KT$UfJ>O&4J_2r zA3hPvjz`hGIeW{xdBL%r|5QTNMvIb+Rk*nYdK<(+fod#6Ywl$A@PgF%gSQm0@lX64WgYS z$N#pWW{e$AbfrNR^YvkZn0lH;iFUcZK`JhS@+3nqJemRmOXWos)D1F@H}e&?ZdK5S z9{xOw?QN?B5sMqp17VB^*!-%MkCl^R6k$>Wx%&t-U65n+cg_`%wbZ==VjW{y85>t& zZR(z7hZQU<>5AD6_D{4#jQP=iG>NUB^ML3iBVHmvU|V+CEq6`hN6s6GR@s7?eUog0 zY%1p&puSwu^zbg1hE&!3loiYP09WwJodUjmO_Lee?a+JoSK0B*fyb#S*tQlfj=7d{ zKJULLKL-e}R-LutOKvGFMzhebiTi#$>`BFXZD`Z5LHUfwq7k;;%({1gnu6K+5;p!K zsbs$xkdvT-J@uAz&L-z@#p(l-n=e5w(eH#`Aq^iYYrxVCSigEbDFgli5MFKEqbP&{ z)d0}CAoD_ZcHQMX0!3>#@N&!hC%!aS4g7I=*z8R$`^J^1)ica%k0tu+?vq@k9!cq* zVq`r&x)q=wY^`gvrBog#8B=tM?4m1`GQm-D(HTPgV?yBoP4ZYEV^sU`y-oAFDS%>) z%iYh@&GrVx5V6aDa8(y4ZRsxYN{&rrT}zVC~kbS@Q$ zfB}#@U1cM%u2`OKFDJ1SUv+DjuFei@Lx|t88s5TGiXm9eZ5c|ydpCMUsE26RaYw#C zQ-#a}v|KpsPE_5NLkwu{11IpyqTsm9c&X0v1>Io;@JRU`@$5RrE8`08q4*`|6Kz^roaCSaU`%6Bn?pst7&@2`5hbE$ z&gG0j!-=)numwjxG3GQaG-TiWIXQSZwR~=cWI&pPS2uPtMQ*^W75lKpv$szim_H!F zXNMTi1CD|aPeMh7Xt*~wxvMNn&}@a3Rq}}W>+B#~XVF%wtfKI8VKjjr5Qe@ED1jXQ zYO6In0ta5=*;ifDMSnDLpCtDrVN6D5mCiY64PXb5$Y%Y6GX8204OqAT?j&e!pl5+Q zqbhI7AeY%%`5UgdQFgDDcv{4t50p!$Pl=03m=UDXsL;YV@RIF2%2}!Jr93b+6j|zZ z1>}2H;QvlSbAh{J_II*Cg7-nzvu+dnL-ZZ_LxJxMFxEkX<0~+%Fu!u|R9=}JCdqCH z&U@sCyQ<6ZAN;Hj4nOe@S3*t-o8#dZqvZ$us1ff}yal_T#HQRNGwoV0d3+z6Q#38i zAXt5inUP5d>HphH>`p6y>C_$iMu%E)J8TGs0eucoKkX5d#5GLO4D#svDsu<#tr}lI zv3hkbK9vxaxsajBrotg6~wUk%e&02xD$9{gjnM}{ z=*Q<%wYzh&63sleB8#rC=vcg(U(DGqv=T+S8GIupsq61FT92tfNG+6i40HTt3F ztMN@=ZWOboIK9bPWDV|vd$D?&V6dKQLRZRka@*5bN{^LH?AZ2K28)*KSt32Ke|6#hMI2#26gbDBMi+#HnDQZd6CFJm& z!~PyaMG<-)CX;jLV_0XG$;uY!a_zQyQPcg2tv3?fA7+Z`8~E@%yTG=#FvG(T zeh4zEfNFqly;5FGqr48T#So^PMA!ar)g!I{O#eFqP3ZfxZ=S#jHm1n`TNE=I6Oqsu zid`izct#mFVj!^}^<^)ibbeqIqP_S6N!X%9>_yMZvj$Cd{a{&KYIOZ4NS<9)(cQX2 zsn*pqdcKw{L?!{Bl5QGB;33y7-mJG(qv1|e-OVDZAtPYXAIT-1A5>;7Wgj}dzRyet+ymh34Q!w0>o z2#|1~Z3;%Gi(}49>f?Eod|(PKfrhz;8PA(?fe_@!xhDW7`zeLl~=F!zL6x2D6CH0jt6=Pu;5 z5EWw-2Ibh{2(a_{-U>xCnDD|%dd+}FJ8CvZ=$4J2fX9_2BFE>I|0D>}TVKVuSqM#l zzcFFXcNt7_3%s#0{4OyL7%C=&Z^bHH2|jg$ivG^9T?dhEt%3PRlua=ZkK)ZVZ@`G? z0V&}v4%IO-&t;dw8}X#r4i6?dX&vcb|E6H`sxMcaQz=vY3TCDEFJ-JjICK%4DO z+UEBS0i(m>!@pOaKpQJ*)N$L_b^0FXK5k?r&sQ+*nXJJEY0iYBc{CxG2WGZYiWGFV zUz*>&6}>fXofb5c){AWfLj4TBKu|!50vWcf+KDgUnQ%IHU`f6z0f!EOtWc%QWi0ro zST#A_GRD3>txB6Yx{~FL6{@|Sd|zQ+5lp$sGXLhp`w{VR?ZoolRT=Tz)7^HCF}ppP zQ%UKM?}qwp1jVVd7INizX}=3Y>b;m)ziJ%pX;1mGwr{@xH9itftSp?)K7C9KE+lU- zPq-1tMNFNtmt(eaT0jE8(4jLQ?SezYf&kvgqEyNO&It$NhUS+;8Khva$KSM-E+<8eUFPh5_+b-$G{fEgM} zkM4OghujqG%14R1b0I@wIGYe_Jhxwcx>B8p%PY+9`}yt{ZG637n9A6=KHwo|D4jX-qEf>yh#27!gzh! zGTzPayml8@d^xO%aj|N)n@wc9e@`6_s<_S|zti(Un^Vfr4<0; z*zWIyrou)@z1)c`91V7oORm0|i5%|G0%6X`8^^r*p`V0B>-x-=Z5%AEi3hr|a0i}b zhbVg^G)>uQSS3ZDx`ntF*nQ2eiS9*@>Ke#fd}NU&=;)c5e&ZdNxgw1RLss?SN9u~L zAjGDUj@Nt0-kR_MtlecK*$@49igv9lAV(J2!A$5L=AA+D-kV18*2_SOQX!E7up2c8 zAq+ZYYs_RuyUEyB6{?gb`tiFCO8OT>z->P%F^r;_QmI})idE}j;#@0lI3k&%N|iZi z06h6C^53;@KhOT1lz#?H9yO*wfX^f@!^=OGjZ*Unw?-SSSWBIK9;gz~L@hxO)GXz| zTV(+=_J zj)F#Mx|$et@cJ%ew#k6>2}#L||_ z>sdi(H={^7{>=_7bFS3Y6FWHPCrkCLoPG1W5Id;C$E+XZ0Po8+C5*JIJNEC#l@;k8 z2T$zdbJ}1>SV6VhZ@BkvXkzCY-V#B+7~E~c*}R56OseCbZe!OKat32BNc+TeYHfEU z1d|azIY+lQ{!-cpMp@tjEk*kv^crb{m-&Zct0gU$95I)x#%BlWJPkXP6>6CYGz?tJ z%9*_L=clbS;qQ(7lK@*N$8)E4vsYGjNtCaKQLTitFw+#*bk1$$JP{(p3Ya*Ir(Q{T!uSV{-x7>d*SrT#xgTaE>;{m~G^XgTB z#7GtRMNSwPN-B9=ii~2e#X@L4tBM2E86_p>1}LiFkTS)P|9KpL3^%=zCJ3q(+%fe( z%((WQHn#S#Fqgl;LIK%_hb{9*(`A-fv$V>omL8@lW=?q@W(gLynWm$zfAwD`j%*1T zQVIn@6&!C=BWpB%?^bbHWWvLqBzk|08?j!|r#^g1iFm6S4ZPErK&q%NNAe^SiTnl} zoW@s}oK}mJ1miKxR$f}eZoV_Ejx2q*Q-?xX9q})2U>U{76gi7zvTu9Qrwz|wi@x95 zkwY*GT@)e*RU0@5xelRq>3DFox+447e^c*xoech+b755`W!p5<-O}T*!>eR$ZDWkq zhI0(Gs2~J&;@?|VUsY$Nnjh1!^lvbni0E&*b&cvW9a;-VWH^Q$fnr9JXr&*sR=Eym z)VJx?@G;L-Vk19pb#>YC_6cC*HMeBQ0uIfc1&wA2V%C-$PlJs1(ILcPJW2F;5IvaSLO&n(`91w_87! zPZ`tGq|&S%^%6tJ--Y`Y^6j})e=64``SlQxc^ZJo?!}5g3kiqlg;ZuMqpBH{#2_?a ziaG{_(7%kTPChy%*p!7&<^0KflUm!N`$l;vj#IJnme zt(4g~k0pzE7$n{=st3R4>UV>|*%8jmdhz-Ffy|DyIEXTw(L9Ea<<9dwV}^_kERGRz zM2+M{C1ER%#s7g%jU4T@wrnl;)ndX{?Bz`GS9<7cT1iClg#Z`eik#&=@gnj{CNOkST8L3X#D3&54Gf@SkoO>L7!JGv?nmK_sA=fBkt^6=66*Z+lS+E+H zwXb5l_|>(hbz8OZB!C`{y{ja0Jz=GBFchN$Fd11x%D^=VkMq$Ax>(wUsL6;jbR|L{ z$Ssi<6+-WIUXKm=kgxMyxS!SzuTuPG$F0FgMJc6;rzY2TJ7C7TVqida!o^XFCzk=9_@o><;1cxNS^5JR} zWw~TSEh&8*i025*29)%!@@cuEl&?r8wOPG;VrsKRY+xV$cfg1d@WRulNzq*hfNop9 zeI}p3!bei7p_6~H_C7@~z+p=iR?}daP@ardB`4dC+xl!VWe2al#$|E8iM|FmTu(|T zyv7o}b^iLN`#Q2u($!M`)W;TcK?)Q?@6Dx`a*F8Pa3nW@{iu>FQa~@;G{(m>i6?6m z!%oJ6D7>JqNOar|NO=|}>?saUrcnAYv&-Rdp3@Vkih^*sXk^qrHnNLQ8rIVQap*$% zr35g465N*@IGVsg6mWC$hUH7a6-m{ZzVx(Z0#L$F<2TG7XI(Q$hds^UqN+K>K5YIM zY<Uq`P7oASjT~e!DjwYf9sE-d@Uo*XC)FEF@%rI@-xx1L<e3f@pG($> zK$}_EGGHe9t-^$gH;{?QVN*Uh_r{n>a?}Clc41X*H<;e0PiUDV6s%ydsrWv3PwI$1xz~MPFmify$K~(2EOM zkwL6M_up-p{Tr%DJpm=mT`rpCBoNP6u-242DP8t%_=qW=){xQUAE!I!j(d?G)&&r__AREJe0XmQt zA4$p(MUS11b`!Ubu%y?IwBV+S(|jXJv5V*J^4xS+LpG8AqH{hH7VsT-*pAl2(Em

C2M`4qK7ovFdhWR=vAQ$;A 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 k^9aTF(Vc&{jiw;s5KicXF7jCjR z-uf`0a^NX!h5)-mNk+%6fZy7voQ^y>b(YI$kC4hEq}4z3pU|yp2Gvx=RS~?i9|~`! zdn%`Byhio-{&Yjk2}{fHr{j_Q2-?I|-$a^5aH&j*-!24zky7~`(e5rsNeHI~xPxJ5 z+1RWJid{oOz&Kbq4hrxP$VC&58;|GL@)@-c?!C!exoB#uWq;UH!$I_;fG`U-$kvW4 zQl{1BOt!sg2TTlSvY??s_}bD+O9$O1r~{NcEI;Xox}n3y_ZcG}z?B@T6L;p%3UAZC z_y9SLX`nES2;p4#+CR+kRT~*&h4uk>Yyqr=MSC5j$w<}Qx5e6+!q`i$-PQm232$=F zla*b9E3%KO);OmA#fj#QLSJ3o7Un4`e5&!+nPNFb`aum)wUc`BT_u)b^hF=FunF<0 zEER1AX2L*Py!}of-5JJHm5aS9C&<;=;nX$X;D5xktv5=kemRxsNO7Dp2&~`T{D< zKUkzU+FpC=?pi}rZvXl5$0Yn?TO2LA6v<6X+Rya!P3!d#MQYH`HP>^R^6AplhxQDg z`vwm_8vw)*G@(wIg4BtIeJNuV3$4f`PM|Nj=jP2;#MhZ<&j_f&VP;Jy51KB|rFNvpbfy_zV`vsohzc{J zrjLmHD}Sw$*e#VR7>1Nk0A@)j^Ws~5_yn{mYRMsTIb-&S>2Ei&J+ypj5f(a>r%cO1 z#6G;%HH1W84kq@G-8gR5_y{8vll}lrYY9j^t|^Q+rw%-(6l2rSf6wtTzu`Ns^ zR4^V)?C@BwWQN3BQ*j#lI{}zxb_vqA*RR)C2~X}srHdH(x)bglo0y1gYhAnKlRFEl zV1r=2aFOEZRa%?0BH9@!xcFjpsrve>GXiW$gyAq3augI!_5(2WbUsP55d+KzXm5XB zU%Ku3mzxuLp4o#A?mhHRG%+rJO^!T{V~*D2rox4oRVF{vrM~Sq7`evF*ml8z3 zV%AY%i@loVH!3__PO!d?WkL2Bcj8s66towNfnB@23ZxZ{$dPqbu~w2m^xN z+%*U-rFcv7vU>38b|R|CXR>K%`4ZcjYIM7hH}8t;PvRs8bq+iw0Ze1kIF!I@Lz8?h(q`fpb3%K(WSwb zSI)2sei2C3!y@66En4_|3l`YA3N&aNuY>=<#U7@JZGw{Mc~)JNUiI~=W?STR8TK9C z{2zV#%?Mv}j(lr=nGNcRAOcKd?~pds^smQ-zyps@=wv&s&^TS28JR$`f!GUrlsi zb`ce2FKrzyab~ZWN_!2$3g$jX2aJ2$(9K25N{_5T9F;(|m(sPhg?{?`F2DQcDPLv} zERdblxVd4mz5)Jw)GIG|?XS2Z_?csg3&e3CkbL-FMR)Lz z>kiI(N{%o>?ZL97dKBBQv6}0_1R`55QK77vR2$>xq$}s2q*y#~M2CPu%Pes@ifktx zMsuC)6WSc>2}m-HRwp;R7BzqIy)NrmPGoEU^E&_Iw#lAi3O5NaqLR|Q6yeFWgeZ39 zR6cp>~7`v~joFA1nq&F9(_VNkQcL_lY&_G5L|JF@QWWyRM2u{@Q zX#U^$^Ag%GCN&sWPme0HNSY*Mhl)G1h(WmOWR8C> zur1o#qQ%%skn>M1O=peqAh6|}bAeu3YSej7_Nl%P#(I065B5Z zYXh9*{hKd>6e;Z zfP`~$w$%Z8d|~|-^N3I)yt*AfVVSbrFL zydI6C@R7yraqVD&fiD{I;|YyOND*KaoRjSnM%t}6G^)%L%(N@d+N49RO2V~*W^TdC z5K8)vx-HA=ZCVXCIt_PIL;D0C<-;AqUu@!xV7#LrZ$xV@R?xU6aZ!x7?-&Gy8C2jB zt{Q|$QsIB1m+>ke#Is{WTbD{|UxwHPK)Z&eGd>chYbnF%X#73#qk~+S38HVt;Ok7A z=&eB+H{c-IA}mZGfMBvguaK)U~D1(b-0N&#F~NToWWZ61b^^&Q#vo_P1hp30%B{>m=HFv&aD=H!xtF9u5AskF1&5}=$A`;{ z1=18o?}6XgVCO;@J z+961CGSKzt5;^AxT^Lh46UJ8c37P)`!Q{@Oq7L08CC4q%5f1T}wO!rF) z85BMax1F#9#UPED<_18Sr#8iztW*k?-3%aJm?O>3Kmzy`Vi~h!ROmjp5!_9v0ea;( z#=o68FcEQfZ1eG<`~fyjkbX+S!x`Zvg<+AZeYMKE2-bE(t7$$PmvYLCin&f1x$qa& zyVleI1W()+aeIyaffwPxDXJ1XVp{qg#ZeObD~gv;bT|r zG{B;Cq%PB4bypMo96L6l9N=FS2}d4znEdT0tX1dUY~_MeH@)#CafSe1sEIv}<{kbm z?&lxb*21|3TmAAW*?jmhxM3?caz;w>3&9}Yz2AQa)++i3EC2- z#*t&L?&(G6@}|;f*fw0x1?c9QMM7$wYT-p zMHWeZ*BKN&mFsMeNPxhDk%FRFhAQrHD=QwX1}1GpEh*sz^axF373lkBxRfQ z0W;%~wkwM}x-E0`Bs)p0+#oozPcdKAfmFkr?d1x7-=7mnW`wR=`kCysGR$C%o4xKX z=Ep&-f>|j2VHmKPv7km2ot@1c(ldgbK#0i&*}zgjxO%C)Un%7=tr|_85J0%0XlYA~ z1dAOkXFBQG5xCLyUq>o%Pnex4+Gw8EY8j;sy2WI4(xZ1bP-;VI>FDs zEu6f_sbUMo_bphUD9M+kimst}QwAomtnK80ze3y@x3#hV8()1dmJmqRMgnJ0?WFTj zT>!=o7b(cD8Y;oc6`XYbrDxPrkAh#B!7EQ`eH#R8f!4`~M1BQ}0iqPj1JmHOJ&f?$ ztjR~(J}upvN=~iCrFJh+-)HNGCZZdN`%BXH9Us7PFb0kzODvGX6d~X6h73X)VC4!G z{<25IECx?86obw~AEZd7(7k|mI-eS{Kh)x~rb%}UkX%y(1I@zi(yAIy&4+%1crC~g zv(K{o!#89pSI@vk^Mk6z4M#{eYJm)*&b0HV^^ioYkkBU`Cf!;sSTvG1$vVDl@Gx)i zsMZ$Cz)>Hjfg66C^erL13r*)SLM5dTf60A#J2;Lw-hgIE%Cqaj%I00U@kxgGVIt`A zu~#ncD#J!OJkFKhlkq;ep7=$MqCg>@L(2nkHw%;v+DdSCM!_)efDo`^M{M^NLKWwT z{{1rLhh6v6NOGIXJ4)h2>6)hAra2i~a)gLEeKn?%tcZW0?gnN(zq~JYb-p)N;ylf|UDP85_HL-KtUmD1;^Yq* z6Ie}h)%4BAdjmuTWWmHr%KeMA3Q08wc6>ISgI6^Dopg?1+X)IQ>~3-21+U@3&3LzO z5S3-#{8g0siNcE}^LBJz(jte7vHesW{6#R74aISX@!awrZ%w+(k0Z{85N4 zd4Fj9QX#;80KZ+DGF=U-dn#1EaBI!d~)!KcgmS0 ztq!+r^{4q<;l=*h|HbJL&(tu>A?>VyD6jAMGH&MV4#fGB@^E%O`R3bUX6hyioGZq4 zakOZ1CvD^dJuZ-0l*qRETnzdLodskmr%&U?>a+ugtcj%(0rTRdl+Evi zv#?MRTsBO6v*;-y8cqX^4~4|9+QF829}|dNoB zEkbc7SMv8!W;;7+Gdvr6z1H*Ly@{~Q{jMQQ`Yvcda7$R8NVwxx+b-7he2H~w=q&eQ&xm_P}L=p&=ba*B~GvF1)L~H;-*{3e4gb< z`N)KVzCB$9%bRVmsceI|ek)bHM?c7e6?@kyUSLuj!3LgwzZgAT!dwSPmJQdWGt8mF zZoCc-%Y&kk0_l&|DCc`uI-j)`%aoc8!zX{iXN4<1?rmt*DakXIqNm5^|Kp#?++00j z{!pt2o(`fsKjCT*pHR;|tbf$K!+g}c*u}ZXA6i7q1OrH;(BsJ2;dNY?_2K~!r>Gm3 zN@CqPuF1nkcy9qF#>HzbX79k<7dozo_MR>oq&O9=4qf+x56vN-Yc{7;Mj3k8X>8-s z(zX8yJyLz%jBTB{b;YT8>!|_~V^QaIo@;GnMRQ@uhI*ec_Y_oU z6MHuKdjkb~V}8PJDz7Q*bN}ATnQ;B$k(IdxX|~81Uj<<*_=gJ5Xnwr*C@znfJypoy z86xFFMN*ozou&yT^r>>9Q>-zmIlBE!PNihBP!g^j3CELLFw*dAqPapU-9mClaswkL z9)6(qqNvC=bG>3rerlaX+;FLRij^1Sx~2`^6wSG;*X!}RFPx0u03>`G5@6qtpU;ptRAnQT48d08076I^<8CP2 z50^NF>ZONvrUBr{H1~skbC6o932w3pQcoIWZnhwN7@E6Ib)z(ko6l)|448Ki2CfD8 z%>8C2vCQ zt5J}6KQ4{7-bZJ#Qa6tb92ioWY#TuO=8@+lm15_@n#F%V*=V2VnTRj`q&4g+%fctG zUi=GBl10-zbNUZQt1YgcVqCC2sL4qD(E#68(kP(w#(K1ETEF81v}i9%zRS|}=~wb< z2WDN_7yYtfq6701WM(YG$!29Fx_mR$wE;HQ>Ysl>K9NMdGetuB~X8Dt>_ zW0eOy{i(Jigr+|G%HA0CM10mQOA-_|`bG|%ji>i9i0ghu_WtZF3%*-5(wsisv8@mh z7lBrp`wPH@LI1d>j-=bo8Jx;s3E?R0wy1 zO|S<*QjX?Y(PtOOvKB-}nl$w2R0z@~Gp~+Tf`Jx*>|{wpyV+>%8vSYb5L|ZvdpH}p zH6mh7oH--1o&G=KvqhqEUF(bj64A4IQ2FDe4D;Cna6htYHKv^;VJJ7@K*^X43Oeej ziBRqPXN88_USLwG0n{#wQ)p|yjMNB0ZBEp-uPuYjh_b?%pe|A_cslCnQ)Fo~5c8+H z)QT%)U3U@_7ukB%ulvmJ81r2oeZ^gY#$O6=&a%V}wzFtymASwKWv?1MxFf$e7P9;M zeJ++h&i4_ner;n!Xy*=o;}vpXqI~f3Ubz(M`rB<u+YKiUR}XmB<&)fA8sngY&{1 zqPHn+T3$B&CIT1OQ;b4P?^kFEfLxBBf`KLR7~T*O?{#RIkpBZ?F2~3zcbU+=2)x3x zRRnit$Jp*lOJOz;gskGBn63KEe_>~7?PRBEkViuIAgH4 zW)os5adSj0FL`ZM#KmM%K zsEy-!*IgUmenrE!>t7EqNS-!0RB%c1EOL&Aegm_md?Zy6#V|Ax0_R^}i$=RBtYwDu zlyDOsRp3-?xiX!sLn6WS`ryvOI_YuS{D3MOKR%Q_BL|TFe$WokJ@!HXH2kBIi^ufo z?4hnOLpN%l6oAmmf*5e+i-x2{->7!yc-U4dQrG_AuI4fdaT5yr$T>Xk3@k-PHUFki z|E^^o3mSyCPc}oe_|_W7ldwcMD|f*%p+N@R9XUJ0+I|Yyt|fOt8VnwUqb88ol+pCz zFxC5ZFHi7+yXI^aUq4CC_XzJ4BHlf#Ovc8MPs>|(1B!syT*22|iGlt|D|wSV=IL!k zYL55rR3slgpUBj_23OVZXFcaB)t*hYR=(+EOo7w9O8S9VxWaD3r@fPpA%sUEiT+>w-Y^{@Y< zm?NF!vhbNG!ga?d>PL4db1r*{JXK1@!(ol_Xqf9>ay{KxP}+Kqi;=VRc_ zYM1~0ce<71kP2rGohsy+a}#-X)SUF7xr#xPJdZ2)b4@Be3bBnPrO@gfl`!hs+c#Z-eVf~a=~sF&zVy1b!Z$9? zxnP0Y7PrExvR#Ia&AdHc(}$um+MD*Rq0mP&5`MdS>Vu2EsfdDHveYBz(x=$kjLg`Q{B+0)C*37b4>jlgK6c521gq_0eV=2RI4%k!JzHoQA|G5MQ>62Ng|PZ zVv+Jeoy;}y`mI6ZY}{62tr3-d>=1duY3V3wEb8@I7|Qk3-Au*VQSGlpTc!HKmV3ZK z&rlfY5wbd!R@CO?z`nZwjlg{rR*B@~Wm9-GQzYWzXqTtA~eC;8~I zUV9Fu=9&&!>Z{D8V%fmy+Co!DBgW;Y=;vwkQS)-vI{4)32-w>=D3cS!dt4{AT2C$! z=;32W@hin!cuIW5^ZN4y&0|ruTrNeQ5N(yoDvWtlH@>~0S+w`ql#J6>*vy)K-9d z6glpdYCPS;EQvS`QI4jL5ug>`&FNSKdB(6GmOw(1c3080ctCN;sUHqxUC1InDq~nT z3M*KoyC8*1q9M$N^;MH`VzXm<__++E?7EDHt}FH-)aMk?X_(}_oYcjuX%(x<(PhRg z6ZL_`Bb*tUPLY!L62x!;<-L43D9c%`{5iq)UrH>HiADZLlu4k?0g z%xxBOwLitCQ91Ge|33i03g8H{^|yCUq0nq{AFy_uPHX$QC|G%6Uk``t+)Cm6)yt7V zdwu~dt^ZW-CApZIyh_mb?lSuFLXIu2)%o(j7Xm5K@f{mtt!)u#{fRLm{I`EZa`9#k z)iM|);^yv<^PmuE^_vYeG*46}2Jb|!swaSW`OknYYkLn+HFPyoLivOfje2rp>Xf<7YKhAsBj~d3Rd*l$@1_niibvS&4)* z3DzB)4C~@IlRW<EQP>mQ9kj>Dep$5Ol3>Q3iN|)r~Z9$-N80UmVLnrrmiw9p~T9ocnxbD1E zI(S%QQ1x;tM+uy%s-sJui`NpD!Cpm)ZFL1P!C|>L1hozi0}GF1@>5{)?9m{M0|{TWrBSvJ}P<#d?xXtiI{g-EF+9plotjZF!aQU$J>HP19@(=}88_N#hHQEgBQeH_# zxf4Ud3J~2E`wxfjd1&n@`3XNi6l=@tOkGwk5`;DcPTYbet-TWFx?qsscKSHivw+%o zB!zO~)sWmBH5Fbwms9<6-e|ty$Vp7~X}%i6_p2Y$oSDCewI6%(nIxr7Th+s{ev~`% z23=b>Unun;iY?X-yYtq*Ns7vNOXrTJyy(XzO6z#D{eoVj2H9q-Fo@?$3#l8ycff$j z$jP<*0+jP}W7~I|6h3_C(KdW~!Ga295_i(K*_o_32KFuu-fAS!zFXo2b}{A5?>VY@ zi!SI@vWOs=t^U>xk4pHvZUJUY5Z||d5^Q~~O3|+DBAE;136Bn_*D_6rFpVy>v3j*EEYts1v%;N((nX zrY0-*AyZbenn05wbB6kqQ|HZ$DWG2}Tx&r=h9i}+0Q=;=4OE~kO;6z~Z|S?IW9 zJLwe7kLZdhl3vRX>bKpyH{@2rBKK$E3vn6G_J(p6FSCf7rWD+66Ux_FP_f8Rg=k^z zqoJr-)VYdC5GrRvJCE?#i~S_V((g>;_Vn;zJ?L77Kzhq*HJ^5=LG$GEyZt;#!4n`q zLp1MW^=-DxXpb=fD;Euk7bF-5xiTG{uf!*6jj@#|FKUNc3XJCzoC!fG5f=5`b#$$K z>x3cAn6*APzVioW;gfpLbg|ec#YHe&E%m0-v_?U;Wm^!P%Vtp>-M)3t+r`x+>3bou zDK7@+%~K~Wm4NyAyZqRNey|tW@fm-6kNpD>_16l4-T@TFgqe{j)x(q-brCbYL96a> zrAGG{?X8~sjNb&Yq=*oV8b@-c4CulNPXQQpkKOEoLoLE+v(Hn^8VM+_T2W#!vgLjzHiR-5SdT@Vp>ebzC z*`hCzD|1IAKfpQ7Sk4~MV5C_}B`oC}DCrL1kS%e5^+okP7hn&k12s6jMUt0}u_wuY zPg^k>Q|Mf`i-x4UZSfu3*>aa~fc4v^rga-c4q6hl-jqfPO#3m(6@6uPOkGku3aO?t z7TJL0mOcyYBy?Qz^M~IF6%v9~_QP2k$>%(CWhfxKb7$SvtH|O%@~2d@iXRK9@D9qb zV*?)+{&(RX)cb8~nQ#GV3>Kq)T6RYJsgYr6HILyE7I)rYm%M877JWgF-^r)Gzz;8s zt*1Rvwq(G5LHmf|Eji(G#yw~{)iBl2!C`Dis9tm!;jU`CJ1g~TBLBuavC|#H zQb@tT(o}A-=5g(o*z~oc&w+{~_`v1C$GBPBc@`nYuodXC`cox#{7Fm~q6CK*I%t=w zN+|5_js5GW0jZBW(7a4t5MCy|6mhtAF=tRs?_~G@uNtP;3pO$QctsPx8O>i1daX$Z zUig&S)Tvy)WG|6(_4tRFweZ)_zA(Gd_gbsVml z_}9LIj*yBTku{zeuJ=CL_OG-$R!=7^SZjN@Q)>`E(RF@33b}Rhd}ND&NBQ_6lJ-pc z*A&!(HLkw@BMH5@XiOkJaPu*QOf2S1s$#&@l28){DG`$UylgB4=HF0agr5EumANuY zV4xV$IUn(0r#kOaaDoLnnLhS&y%m2{Bpn7TwGq6X|Aa4nsGgu;;oVs(br(oSUOuFj zKE9|->21f|Ld(c99IUAswVfSYGafs$zH;=`$DUwjgr$Ss_qB(KU`Be=fuOS+b z;JsBenMw%@j!Q$6x$OfR_C=H*nsyR^b(_4#8$aNr=)to{!o%&pDO(iLh6AFYd^tyT;?9{*=7 z+-|9mGS1<-lZxDDUm5JVpZ7&~ow{-^lFhbRYuiGrG6SI2O2IP2wLOY3{77kzTp2;^ zOK#PeE2Lqs4U{bItV~+*UiY<%>Q~>MxT{}F8_X~sdYXE7>+F&YEMMY^Rv%o?Yyn{1 z7EdU1N}rdY@?tQ0wjUR{0s}rsEw%Pjc^FVi0|b31!)D58Kf5Maoh>Y2SGD6Y<|HQb zDU7?FlN)O2NNx&Ea9~Mdi!%2@bSwtuP+G={(^xINjzX#0X%}~Yc*-k0alD|Oy@fZf zlppXM*iM8qIUFvd{yj4J1Lnfri?GhRg^V=JShqnC6FzPNC1?63)_%_E&9f_XSJP!I z&e>O+Ss~~*V-us{>PriAykjrOL59-mb|L32nKrKF$Jw(eQA%jt;{f{0(b!gPh69d^ zqQIwLijqPCQF=R-zsPd740Y#~QDx?mQw0bE^Y&4TSl$Sou$~)#SC7wM~MX2bCXi z2_+T^*@tAB{mJ*Fq<^ZI0Y!MKSAP#m=tuL!DO-ACFT){rBvp;V=Gdr5L^_L^o4uJ` zCE&DIQ8nX-_dXzfzejpDFGw`1Dps>GV*?{+Y zppeUO?;QG+f}>4RVQ0y*r+Dd+ED&?2pFAcO`yf8iVM!M4Yq2J0gn=O@_sT;yY8Qa> zNVguhK>=AyA|LZpv`+ctoUwNVr_4tR`YUVBW!83|pm6XBT%fGy|)Ix%!Vu)2Ek-d6HX6h)aKnBC4C z5twwaqp)hIguY%ZZvGF=PlYqUm)@1F#w}!MuNqLn#tdrHj%PzxWIJ3z|;&A8zU6_2-l?AWf`QIIn!j= z4hjQe+(8+KYf4qFI%Dt^G@){sSD5Fzo?c*p>eCjHJK2dYU~2e^B0FPbinE4o`Xa!l z;T=EZPZTruod4x5ar6jV4_}*gGQ^)Ba#6Jj9c}nD$GEyQn%!=-W_^BdA_jUNsOT#0 z@TcgnD2O6^7GTM#hd55LvfHsC+;7PT$?N;e6Ih}?Wo8+yIQ|=wY*qC)mf-3cjOmnT zN1AGk@)DZzBxlY|ce%R)jm;sqkBu4+e=snn=Djje`mks?4YfXu!4j!<`^`BbryqC2 z!s!d_UeX)DgK?s*-U{;5P8Pgw3EWaUUmY+9V0EjHZ!<=uNLKyEqsGl6(k}C?t*2}9 z$#Fyw)V)TZ=-0UzZS%-^1-QqlIU~pOW|#xu?NSY}=(2TDT1!`xbY#(C{$S|Q0Ysed zq1|OW5~oF$QwVyMweJXvA&AL=I! zqqt#cqgZTvLW~0$Aw_C#1Ph>wn6nm2#o27IM zU63eU;_D~A45{ODK#{D;Tq9?`a~?kJ?&V|va&a=|e;I#K8lY^NJ^?qeh(eQrPGJY- zoJH%%;GKWl)g_}!dCqf}OoW_qVh0EC9JvAgf9RJqz2=xfL3z2Iho@G(h_k18sWho9Jhx77ITMC&y7_6!`ea<9x zvdmre;ald7=zyVf_o^mgW-%>hC&CK1Cd^?o#-ZD{e z(t}v7+4Y2>*<=34wb<+;-j<|y*xUv|6!DeuIT;EOw&!~o??IV(AtxPvzQqowUaX*< zWcy|rNuB3?H$a$~brB@Da9tPrj>LQQC<>;UrB5lRnW>7fu8$C0Ix*rNhUW3v807r% z86KdECT#rZ@zfCF*3MTNf$+T*`ET=!SNAp#sre_K*@7C7}#T z_-umTgLq$*?4PCx4Uu&@Lop{cB{P6^pwq`;Yr?hc@pSe(cHeAo5{HBb7|nnRJU4|+ zz+~;=cRQtM#kMqL0k;9OPeYDzkUQ z*(@XgWea4$g$64xGmJr!b4(ixQ}RG<^pLBErFOjHu-o(v55eDO#}p(mg@X1Cz_iGe z6@_KwKbaspE}RV^GY7;CWAQz}v}II?FXnlwI*8fpQzYQMD#ta5Mw;#POq)X?-0vl@ zdy3Wh-YRv>l+U_&3Djo5lxE+`+G*#BpFcV;Y0{$sUy$}G;jyIpzh(rtHDB^ zI(fu?oFYvbi1Srf;~nvEICkcd(WWQW+|?0gFQolI=l2iIKL>@!y8B{3Bm`zK`4H{1 zdUu4C)qA>rJmapGyQm2BS*`iI5oHY@M)9@G?wid#M?5Bp1XsfHM?H=5I8hi=9dE!O zv%AdWyubCLMUdS>uws5}>PdFQ_ihT&C3e@SIgi)WhE5OQ!d+kTYq+&a9~4c4*3J;A`)> z4BxS*THOHdyjyRWpkGM!1(6w4g@pdlzCV3SkqI+7ofsuzpaYuGK&^5Z`DkKP}doQU1Kz==u3);zn@15Qg$tt!a$`zP0TJ1#5 z$}+f0ToW4aBNqq~P2Y3Rj0>yteW#&8_)%ulJh9f zX?V8?C@#AHz_O1*>kJH_XSBe3(*xx7ma*1 zpaF9z5QY1!$ci47_$iSG*r?SXl9_SIIR0rHg6 z{wkXy4pMfR*nRG#GI;}q>%!v_A7om7i|zVHPgXk%Xmp4fQ)*4jh+<$i>SgYLOJI?~LSn7c<2^Aa`7;A85a8;u%a0Ne!f=yzo$2ZaIo>P&f{6&~<3s8c z{X=B>L+RCx-r6MRZ@_pVJ`5GtIvNz*+px$UCpZuGoxruR2dgkNb-KwcMnXJcv{%tS z`{((CctjKQmoZxPZ zrSSDhI$dl8EwEtj3Gm2x{RL4=v`3A(EYZ`3`kGI$@{NyIXsN~tReHSqhFEZX8wY5| z;IRdpf36!%sb1=>e1&xWe!Q#wfO;YN(eXEgF@}?vTw96jvwm{q{CDMwzLGS&F6Z^f zq8+q0eYl8jlFGjsXU*1fI$h(i+*uNu>j9kz~?7svJO=~| z-?=~CeO7JSOHvs51m=D&D3lon=}@HV;+@3)CB9&=ZU{SmRYCW9F;_~o6BI5&(I+1{ z?!3A?FejIg3D%ja4q@DS(jW`Tf!Rz&??M#b7CKGL4}RiO{0^fpI7Ui{Oq zSXl)4z!Wd+1Gu0B4CR(x06yJAt0-3|WgcPs!g+l!F-KZ{7k-}_Awc^IIZJ}mU;nU4 zF~El7ZBk^WMquh0D*4L@av|Txp&(u%Q$P_5)% zc4#*wSk_xT4jT|&oDLKFD*SC%#v|0slYJ@P)aHc%vHlyv{l$;5vS`(K6f0kF{_@ut zQgnPF3EX6d&gg3(SN$Bpwa0tFBB4B)Inex=K61og%8gI*i-=WZilzdFEax(<=3^o1Ad z*g7)jsa%?O{88&@@w#K^^W8}vdg~UGF7>G5ZvHeU4n&pbb!G8#)x6IH9RPyL7CUcXg76Za{8KVl-RAV_{vV} zFHM260VgQ!&YlB`UGK(rLdO99M{t*>Vfb2-d$o?;dhLSSP6_bCqavt^(wurcf(ecK z0e((?=+y4asE!YeRwBhh2V1*9A8XTkXMh29$CVwy!~rxvhBDwN+Bs*ad=)D|TF6Jz zFsT~_*gIcS+4%g8@@jvQ6~D);wOWi+g-QRZa-O31D1tbOmSM5iht@C~>y9;Y zn*?Av+oL&K6C>@5w7#LXoF>n#)9{Yfp6=)6geez@Z!vAUy)q-13;;FqH7GX}wgQ4%0_Yv9{k2z|D|`<|z>%rl9@lkXir!*`TeE@u z%p`|btjo`MmpKMuKP03zKU49ouV=7Vol-YZVH;k?7WGSGMuP!_Tvbz(Hn9Zw?L)_l z6egU4k6Y6-eoNxCZccghLC*TOn6nc6UyLO@>;aiDViMx^N!ZF4x*<{9` zCrLO;Y{Rybsbp`GW9E>u0iNH^h2_w%x@4h83Gn;QK&cs*f2hSH7h6)g2sav_a?w8{ zQPuGzaF)fQ*%WQ3quK_u_Ew{HK)K7(^(J}bkyDg_Z4%=ZG&ERo5JLLG16OHN13iCA zVrM8wQtC71m%?C!)=8-GPZiO_U=&qGSkr;e))5VNDUr@gh>ZOaut$mzoc-!XDrFky zUj||2sB^aWpEqJrasZ)XYXpm{F@GUD7?{cVa5FLd_QC$s%N@R?k43FLOpHO`%XAHh#*Z(m z?K8&8djKZCx`b5JQCdXwIPYrG{#K{H#QoM`G+9AoX%FGsA$i($sZKzD(3sVJZ&~E> zBVBRSy+BJmyE?_!P-v-{|9;i?$OH$URTX*S9^Gk2hI<$I<@`*N*<-2;kcZ0RkKp{x zAIt9B2E+$b7%E8(MSKLw<%)nL z7OMz!GM0Zua}80)Sl#~PPZB6x-UVzq_UH7Ro?u%6g=`LJ*Pa7eRdvzy@`3RG3BUAs z#GWK1t&|QeR@79l^DV(hZ>z;JcAzKrh|{1{1e zn(MwTVw02~hqG6g?s7o7fajN8L}cia!y87m_m!h{ON|?;37GQHk9>xsn1tg2pl#{B zbc%T&o)gZqw2TP=2!OUcwTvI$`#3rxUpSxoI1v~&Q!kP)UKZlU^Pgz#MYh&ARoG7s zzbXFC)R;YO3TxIAqQ^@lD_^Ya{P?p7E#bx$vBAe5d06A@WUI8lT{q--WH9E*ehjTD4c<6U{ z__PAkQoCH%kltWIdy7GN0AcxG>Sjm(l55Y0&WN{Wi8}axZLoV&kX2F+nRuk}=N&sO zlEna=baV>yf4rp$qAeyG`l%kLjY%lSqPtQK1C(-lB@My#2F7ZV{hgM2RS^yC5DdS6`Zk{FCK0n*||&vip=!D783zMw_*4JTp{1II%-px z`KuFuBarHyv`7?GUG*P~><3>@$sPnLeBR;~9fu*=X8;tkc{0HZ8efJ2P^rGaI*Z2D z#eIwXQ$%>1O|wkWasr7*yaB)_PF7QUiN@F{j>kca=7>~doN1lJe0R}s(E2`vrHd*D z&>Ioe`Al%WJ-Oh)93OPXq+Ib({8a1Z8;OQqqLBcMI)%XixMH}%9H%B6E*8*Q)iMUO z6$JFBVoK(@y^h+Sxpk_9B1v(xBk5+8C|0^#fchg~)Y2V4$kd<&I5O+e2^rQ%Py2M% z*kylZ6_Coq-6$1%_?D=oXY;%3^pS2`W(P4o7L-UG*!+#lsXr!u!P-X|xgz(>Q@9;c zN1`9^{e>RGvjZVByeKuF&3E5>U`vj#RhBMl=A1$)`<(F=c&vIUwb%R~fAi~D*V2Fv zC@cGv2`rB9GsD3o5oI)uA;B57#Fgo6<~-`>u%ThJ|85Dv#+w&Pt1*so;`95UKkMax zg;G^%`ID4lz60p~(t(n`y}-f2mnC$!i((hfwz4|(o=nH_66ITdCRJ5aTZ%k1Y|G6a z&$?za_o{2_KWj0~^W=mdY5d4aZK-(#+SiL4Z;do}vIOr=Ce8_Z{3z3nn!sn~J|3K- zsIRS&6))I|x5~R{_Y&%_j)tpB7O@8_mg}WH%nWQ`3w+5#BL(MoZ_+WnJ11kaAizBX zvu0WcEEmBj+@x#BeE$oIR@@L`gbBe?UolSe=)RN8Bj5ap(ydOh3U{+Nqkr2`^hl-( zUdbsoT{NgOtXvW{PsW&A#&l57Bcr%F!YtpxToXa}cBI;V^&oD1T6$YaU-vhFe%GAi zmY=|%Uwno7`dcuv{PvaT+&D$a^-Z&Zggtz?ImAmSy&ENJN#rx%dX9~~)B+Wkor$fe z<>gWexP`DKk{63=e-tdU&(j3&EXig@sQ+iEzHBtquCU6(pM|C-f><$^dOYB1Mplrw zv8f!_J@I6Q{^)H>5Z2WAyPGzW(Clqr2fU-IR@tGlO0=j&8m%5{hoHlAM%0_{wkUJ- z!uDkfn)Ks9w6%tZ{@Y(Sd|xwa^-gEwT<6@oV&zTYuKWgZ08_!x^BM}9%K6s-X&D#FZn?5-fsVCp>QSQ9L}TCRrkdC#m&n-NvBq6JT3}xHDD_;A!{fbR(i{@ zN^G=TShJC442cA{*039wZ z6igj(k*EnD0IUTsWm`_%mBUhXqiJ3Y4K_ML%>scL(Ygg^c+O11ZvFBKFOn?>abiJ? z8k9H7HHq7G-INpmwn}G!d*@{BcARU04D%YV>=N&bU<6Tl8BO!}h2}IQ5`%XUOjT7) z%~{j{@uU;G_ce~&Mf_8jAQyoig2OM*$dc+j0}oSwehAsXh72=`aZf~=97eS3FH=pU zAvVkRAZm`>u^4e$p9O@5p4#&Qf_;ToE50JO>y>c+73f&1J^=NiFroj!658IA4e*9a zf_OPM(pdtxPL3xPF!hkH3;yV^WxE}UOL&osm2H}oEfKnj@RFAu(EjC;+((Cds;akB z1rBE6U2v|fx06b&P3(~07KvaI)WHJd^m=Ad3&vyGp7SCUcb652H4R)SYmgy;@8g(%S*TFCf zwHIp;IarfiLOy>#&4Y@e1CcRm8#)>}=RJ3zevbF>!Bg1MzEk>j$-D2m$5O^7nvXbt z^74v6h z*viwlD5vZUNYY>qmJ_O)V$IQ$#tQ6sC>YT8hY_bFj*p0d&zjGIqRKyTn6;{mjRc4~ z#-0g<@KLAKSX^uQeS@VxXB^uPIpK%30Zel~bIv{L@XVRllnv9HYy%aRIXJFJ){hbH zpCvKcSiL-DF$(598)8j`OkLLwHF+7K{}Sn`W#K?aC09%0+v=MDmq^FhyEPOz!LEGA z2uwvSLnd&e^~H!BxcB_#BAYXQ%XOUOX)%}+(f*!v%p|`8!vk@_e%I%s9HQn=cu7C42?Di%F(*83(z7h+e5`1eg{MAQi z_hY}y>N20rYp@uS&Fw)z#?(jkx_|Af5Sh=5T2RkM)7+?mC4eujrEj&_XhlXatviU3 z^uQ>^`!J8nUrEHN{;6VL=J1)Jw5b;QMu0e|WABnx=-SzQNI&kl83KKAS#B}tRl8*& zFvzK=A^d6c1aAG?(9uM94O%cA5W*D3p>|9@I27S&&Nff-CI7$>0Ua>nwCV9+J+GrW zcl`zBgtFv4NJv(1SAa%u>@d6C!~#B*M&8XQ@QKkrh&?ZQPAz*Q%bR9Gt)mM#4{aSm z5&RF>9Azeqr_1TzDv`c~>kczWRhd!jTHxl8UG%IwNR_&T@PF0{ooQ0#nzp#ikf^n< zO5~P}`RYGyjttgC$&m<>;##-v82C+Hpx?>f>bZAEq5!o2pimHMWd9hgI1)&lD%=(i z$>Q#(!x(7mh&6Tj!Iy^9=)XVt;F#e|NHQicNSWaxrka-ABI=Fg&_7~~0+rzS zO-m}C;LUv8-jq3_Dj^i^n;Y^%gfMkGT`qi)jVX-qe4vi%w(1bXEr7P<N?wMMpWo!W>8wPUI6*8BtW5Dg>4w7WIpbG!h; z{VSvRGg&~yug185YnjRi^WfO{=0=>S4WhZS_|P78LMzIEIr&|df{UUAKW!?X39NPMSsfJrQ z<{agkk|N6;%foL7d5+TE>Dqx3ukfEG2dGI_R7Ili(UH+oSk-H4AFTu(ud{{BWmdYJ zCAqlk84QYOAn*+um`{<7a|KGnKW;r%s8EY2CJO>pkz?GYQu;uE0$eT*ONpDgauXj) znH=08lAZ~*SgN#ChLF@lwm$u`c6|E23hW@CY~NiJ6yp~sbbeiGZ^?vpS3pncVT6)5 zDWNu!3L-IW?ujnV%%_!zlJ0rJBQxo0tX_Sy5sZ3Mo&zx1l*IbConzWNwq#>kVK}AZ zkzTIKsz<+Z58pt;JnH+g#|#ABspU~h@HIqHO6|$#_pY%(2*j%yWMjVM8mRPOex~tc z6>rhuYE;25-e$FwzTUb#IM}~#BQ<%9lwz5we*+0_{|KBsGJ9!`E~wtY5Lw7>=@&)P zTE{)?N^{$8-$!+g51A-skfNF_UQ8tVB z46**U5cRt=jJ)ax$TGAd+qLIQeZ@S(-p20LDMaDiME8E%Es%upG7#sDUdb+?%{az)WEK=Adq{|b=vfAolcG&G|!B-X&H7vI6}I{;8eR0<3!y0FDz<8o;R zV;4e`cUnyVB*!--!=6vL=ac8@d!31U!|{iSFYRK9xIj&+cJy8G zJ*{J+Q9I{z#*6G|b4h8U-}B^dllyu~jR*Nn_YAbRoZ1#tN}!|^6$Y!N1QAIE7Qu-F=)OP+U(YP^Hc69^G;JkA;Z)Jj7Pxce5qJ_XVc4(n( zg(?p$;?{#*uONLdua5mgRohILc_+I6!+VEPWm_X0&JO~lCfkThO~4H7j*VI}<~z4) zW@`~SePW~Caa$I?hHuZO5sR)$2P9PumC3Z?sp<0L($m91JhW(`IhLw`1u?0&7Qx&- z`WM4nZ*_j=t*$*v#nx>LvDy2maK#U~5t-&YBh#SLJp&e|x;>xBavZ!aq=z7IRzn|R z4=n8g6N%n%%aVoo#oe`lU|B*+dM8J$oP|hYqd6Msw%ED{K)zrF|SzUW=<{c?RT|wr<}cw zz!o-H#d`pRUXe?EhP_c+_wmouNvuIJ4bX~13}eD00ZD%ILb3H$w}C>-soM0$yTc}0 z!$MG-kz_c!AgMj9Yk9N+Nb4dH(;1#xN$*+w-s#@(5O7CJ zG)!!nj`~<1nNlBSkpv|ht+Ho$tN<1HElEG6IUJM_VJe+xusC9%<_V=!I~>ErSRZfS zpS~`c4e~wFJaE%fC#P31b6M2DG+?80LU%sl#vIgMG@>y-#Nir}%}FHm%yCc0)S3K- z{0$vU?m4iYVm)c^>f{UUhlAC-B5*2TK{Q*_ZP&=_eIfYw}pi46rvo5i+-rM0Pmcc+_(eJT_eva!lgZCx_2{&?oxEaq_uL z0=lPr#&1&Cvd%+_S>qd7WI~#~cfC7qokhQGSbXiJPm%vS_ei(J|9gWSN4+?EAg|o; zJ~kB~NHH{Ir!1lxT$)qCTb}ti!AEC=JN^bvPf10WmzmgQp5sezUVO=0O>9W7fFLbUq;=5;d?pfrk0@Bh= z!J1}>W9jh{)wn5$@w~!=NoNHl;y=A#=N~T70I|gDfc<5!I~We#9uvD7{B+oFEZUH* z?o2&AZwbZmYpW?YkMCedW+DvJg95zWnI7N&QoHtV7ACp-MBQ?s?d^@wEpyopK{hIz zy^fgrfHgS|o3#0)hzhi*>=^Y|71ug;tj&B zGx#C?+-?*F{8O;6WbX1m8c#DU74SD7DMfOxmokifN*A_SQ%Yc<>4)mMN()UDdH>o6 zP!farBqRo;2}ganvR4p48&o6e2J2`Ay7pMTral_bK;9{A{-sw4l2L1GBPc6t#iWt&%-!_bygVdS+Uxt8Yz9 zrfV`ft0V1`zpYuQ`R5;%#l8axrPPg)X_aBlJ=%R>h)h9SA}c4c z)|V)NuiNsCh6sqXCbu+H2trO=X&}q*-k!ICb|*rA0&thAq3F@Ku`>{hg?mqEBPxe^ zyF#@yR%8EfYpOz@rB1$8aD=VX&TN_lBa}HAbXXjonk>4U0_`gm15iL@q&LU!1=B>A2S8M184+~lcY9%kRpvjohvUXTA{gC zsKT8{0mP_1L6}Y`*E_Fq0q`M(u2Kxp@c5~gM$4K4(8a8jQtMiA0Y3YWkpXGl7LlFnNvrz1xK=iPsbb@~l}Rq;$tEuz-;{+ERfqR8Ly55euzsvqZ`=$^&X& zDGDTAFIaqESXHAGPtmX4HxV1Cd7Ahba3BB!RlG%==hf|e{^018z^UhkKoALkew=st zS!TEh_$lwC;cg%g|#a2v$-Vi~d;^M@rFgTuaECOa1dKqiKVs&8fbAhX#56j@ms^jYH zzdeGU<~Cx{v@&T(|4~@JwI79IiWuYx#Uamm`MJY_=oT@DepDmFk--ovCW3EoYJm@_5CVYBP#vZyZ&)mU1J}~TzLLn?4d#z zGaxw6xpx=aA8hicwSQRHZcR>?K$qa7=e-XVE%^(dK3|?fL6|#a%1M$?a|te;kR6mY z3Peh?evyl6YOn6`MyH6NYRhGrgDoKx5Jm3q&H9ernV5J2qQkV~ZqAK9ClNMzn#UGt z*f)~VNOZ9%MWqsw*1` zbAnMP;sMCXq+?pOWXWutY@lPo|O3KI{epvGCFk4x)PEzIqt#35c z--Dqmsjznum?jUnpo;-z!W?r}|KQhLSb0EmMLwg8uc>yP%f%ZHz|RNWQx?!? zl>kfNTp&*druEzkmOMB&YVq=c@+jMFU2XBghR_OhMfwVK(EV(yzvET8NXNm4x~vPu zMA($gne9zNb|g|&O?6qadLtWE9PX55(XD#NFJo39^h9vv4!*A|gy#|%z;5Iqaw)l8 z3cScFrK#-~zmA6^3vQFYl{OnKUWfrwCo}62=)QKZvD3yB-n4Ue5GrwxHBl(45zi{e zb>ljqbl^qY#PNwYh~D#AtX{q&M)Ok;PJv(i{_y8e(Lh9KzFbgpSye|NA#GR*6lb8e zbNfD19${k;mj(#PyXH$OY?&Wx16;X1^P;;1c<`*`^g@gB>H&P9%+1M4P>mgp5qjkH01Ot|b4`#5lybK~eh8M{YM-YAm+ zNk1K0+k{_Gmy%Xp8E7ISPTXESIYc$3y9Iq4J1!|ROQu2|d);4Q za+_4!bi5szb+2{-KUHHqK4U2VE8L3a$au+_QV#pKcTZPBh2mZ<%tM5aj6VqS*){*W z@gauIW>tj_AGM0TqjYXB&m($qj9uk(J8Z=^b$(=M^!qm9Hm%w?8`I>h^tq|qT9ct>ZE_uds z#y-qQs}Agu-sLTQV z34-=zMbv;GG^;*T_MpPs_sQu)eN$DijcikJm&~@Mu_uEmZ3T-IDdKm|CM}b(@OymV zTnxu+XC#t3n3IlBL|89kt}q;A|yLBj7zxB}9_DMm6=vteV;X z+Kum1sHt%;Lyyo*bAluGR_;$l0aE{=qdazKi1FcTVZz=%(i& zim@mzv`+xO=>;rRjp!WC8d3dzzodw{tJi+rnEqJcVM3Pns+Fuvvx#Z=BH5C)m4|Mj z(H+}Jcn0f_4+X)gDe(+8#&&?lTdEM&8!=a@->6w2+D-n+(qe&I{rYpQ{-0cGt=aV| zVbi2;QYiGzl~F=mN_evxu$JdRZzWLT^eT0{M!X~2+!NlRfzAarHL&H1JCaoa`7?y- z(9vCA^?(#0{$C5dnMLjDU;?Tny82eG2(aV&i71V34Rp3lGzYy{51ZiyI10g~ebcsW ze6H9N5!Bg)DoyMfaVF(v$_d z7W;cw{$oRQfGjP_UIsc!YY!iu4ejbnssrLfciGhX8K%-z(Sl;5ZOiKWbtwpC3Ko3P zA1-ny!cxA`G@@>cXYp4j_LuZ0d;Z3f4UYybw zef?VN=mE`V9}SY-3ZIDhPZZ|wNp7-^9WQoA83rHv z9;%t}VZ+>3BP++*6OzkXqy$!7$$eV52@ONgL$NNCuc)57$4RnV&-e0LMrW*#630c( zWZkVk-5&SQ$6WP=p#d-gq595XBLb!|ykE?#H4sJI)}B|B?;m68%R`&q6&bUxxBskb z)Mj)mExCy>THjT5%YG6}LL2^PRbX>q8N$s`;Tpmdr(1kPDrrSW?Y%CC^g!Iai()h3 zdH%PE!xiC|I8guDv_{rG z@f-GhRbjt{sP4cIB5-cU({0H6sb2z{TM`?&rmk(X%0>pm2ZPule@|jVtk3?)Uq<5X z0+%U%B(efzE(z8fG&Bz+px^8ACF??IjEtgz`9wavBEwn|=>r(03rDX<&ipnuZUkU% zZ-T5pJGz=~^k?O6dU|p1<#)+AhIFjADsObEb9Yypoq?(z4HW*?(4xm=H@4!20Vz;t zb9}IRdr$0Bqs&?|^=g5ft`!20OYF0hJ6z=Sq@KtkqYX89qx$*OFf2P$*%5+u=BTKE zLB9HAyse@1;MLXq!5){0C5ij>r^5zH%DU0;WXuyc-$o9M8o%^~HMW-wFP-)9vFDKO zr5sNI?>LL!y_jUAYGjnlc_jwx(&HpJzU$is(lxrEyaJbNSKc;Ctb$L1J|tT|Ex;bE zT;gsafUsfG_9*gdB}4p6-Ix0ejCTfrm2rGG*RK%$gwYaRZ2jJ>#avETml53q@Dt%( z6A&i8VFBK^A6tomGw^`)hxSrjrC+$p3?WgDBGSgf8Y0*+D6xjztmB#<(Z7+cS@OdA znRjx=SZ$hvccMU22i}$Cq6+VEILp3o=TD-O`nVAo)14zG5RO?BQwTnt6(13ybu+9@ zWVu&fb`-B`vX1#vHaYaUG1-QPOm`~2tVE#}d*+!FZX}kc{?1X-Zkh-U0iMKkd9Esg z-$4J<)AI9@QRTBd&N`f0M1W^{7}25xQ3vFRXou<5Id|e9Bsv=sCAeij4|m}S`KM@D zRmQ`qbY|V0d(siV6HR;K?p0r?L+yvEdBVyaP8;S}u@7%>_Xh~Lm z5SMaN?DNme+IKmQNnm}LIu#|kpEf0bj!7%g#~-I5N|A8$peqx$ebeim2H>`)yM#i# z`08K9}v?QX(K^sS3 ztRoiX!#Mwk4+vUd8GRQDHOXC!PgJwcP;m&e4;V{E%E8}Wk~wGD$iM39fkK1gr}Lvj z;n!@%WbkQ;>f-5@q-UY?hgcPmtFFVz1vjl#Q^I4 z(CwkE=J}F(Rs$VWb0eEddHu_?2oCICEs(XwE)Rx5TIZtyMTp#KOHW6a9lbqRha5R*fv58Q zu}wxuP7m^xLm9mJh}&V#K4y&D0?jO-!CD+nT~9s=L%$=eR-@swmpS|G4Rs@Ued!WT zr*`*5hyD(TQlrVw4;nF&ou&y(&WUk{_JOoeO7rp#z}xJZJQ3GfSoRx?H;^8ib1}?VMCcH`aW_cpKc0s>K!`osyK^2h(a4xqQ{-o{cTI zh!VG1Gz!oX`!ObD$p`3n$rDFb5<*0Kyp$7LWID^)^YC#=&n#*oboIe;pzZDt!I>6f zzUK~>rSl@B`g1gDhY_bk=TIQCZUCq%tSAu}WM_$Ra9Mq$*?k}cCPR5Gk?)eX#b};$ zjPGA1LE2p6v2m_5%FQr_??;CZh_uBam-i(kYh*%ATi#^k_I-h+W#A(l8P$5mAlYe} zpp1kVY(fdI8#j47g0PBYR z!yNlrnA!BuEN_Z!_U5fxgi{WZ813wUcYQ>*eqOC30JL7kQ%~`D&%^t*rPH>Zc!e`A zz%zB44{+HA%XeG2=w)UV~)2|#3(_40SNkygxPiq(YpCOARG>O2i0UzEp z0BAFiJ~NE1Gzi+37H)s#WT;;<171L3mnf9pXo}**(h2S!X$2_kW#DC=x3?7E( z!s)BU<57A;gE)RUvr^TpUB;DboHcR;eT{S-nZkw|w6@7Cn%=RBF{sTwX`)m$rNc!% zt~YFMf#nH&+#JIJJb! z1T8kvZ$ncwr+t5l{W{Wbz9GC!%`=j(A`#q`3@sGBE6F+`&CNFgSi*sQ)5T-ESa0{? zQ%VxrbB{gu5Z_Zs5qrxjlFqN@K*}_p^5`m$rKWec%+9d#>s>sL6P1PH+v{^`6(?D_ zPts$;h@UR8w&4$u;^0u3E2+PEXl6R`?AIg^w7y$h&Et`WS(QdG+?U}T^zrYmRM#K> ztWeJws(`aAv%L#%Eh9Xa$HP14^&2xyU#DGrbRouTD4M?64HNP&M>HdQenR(H8@)`K z1s+tX+A*P=lA`KNz-&LI0(1tbCLPf!T@lRQfR#BJ$$=T^T)*f(=<(Mjs&#kHst&ye znSx8GBNFYjXj$e8d)?D*en;@DXbu-yN9DKbV9J(8-mGIOuiVR7WLB64XXD*n6o

&P%at6~RRj z1uJLa@8Ktz)N)9@+LUSk<0+)a^sWH91d4m~C z`FSNXfCkZoT6x|uqqDq8m;`SO18AO}LA_%Zjw6ODTFwb8mk9WdL=rZ?60#AiX!%dV z4c|3!7b9DAHZcJVsO#Id>#~Oy!jOYWmE9w(&Vk7W+LEj_sh1Xw;n3O40D$|s$Q@BF zB;Tt-96i9W{}w0MMj2$&z!(e@@8p91WW(CocnhN@8TnUdp9FQ$WQe&6v|n|X<`JMmPHf+fspP6k!^IX-yg8C4cb zaM;hIBQoHs!W^32B&z9_6-8jpxBXELug7Z&eGcJTi~2^~%IhO$q20*sZy;iUlFOGT+fGu~nU!(78g9DXf1n`{I@G;)V)S11rv6!%sM^(CU@eLBjF4`vCtb_TQFE*-5-AJS;8Hq9eCt4DCrAv$)oy%z8DXEK z6Ec+uhe2Pbcx7e=;xal%N+Z@~vt9pb|3BxTBTR{M$5~Y3%FVF08;y37^O|ay6eAQ5 z>amEOc(>8tOI3(MqJNhF)32;b93n6r43Zz+~{nKmWLSH!WP&Xr2-E0ec~ z(Sae7q3UYfO0g^mud^cfotMYo4Ai;VIGs%ZQdD8x*%7MID~oXbhWQLtJc@6!0m#Li znZfzrd_!6fm@h+hr{%v$C12t`%4t%9pGebdr5{?P9z9V~?E8Xzf(VS6bp*|csiju6 zF1F0!P&0OQWXd7B=m-1 z-1;SkVELMT#v1N;*tbl5<+256J5uU{g9#93-cRAKmgc%@+Ce1}$5l$T)*IG&xH+cQ zUG$v8)R~L~;wihib%$sMgzQ0M)A=FHtCwXuoSt2=v9+GIY*V_iXb8L@+@>{g+Z0ru zSGHQ#cZ$``jSdmR3RaFj!IMI$BX;F6!^`N&dMijeQkDG(B=tYPk$ z0*ltDP1l<#uk}h%bE)T>hUug-y^pHmopBF-hQ z;yi-SuHa8KxeYzz&+y}YHJeIGwgKia{UCKgqxF%)KySdpHKpd_+AYM3oV?rj88LOb z;81JQfpj%m#)U)XgfKr>KU8M=0dmje9IjcdMq}zvU7gOLOITfzdpZJEHIhM>hBQh( z>}#?9km<3&59nO16I82v4g%vV*%}?j4&RvO5Eu&%MryMLd~DKzsT@YD1t=x!Ng-0LhKQqRSQQCDR25Ul7VPUhOptqenhm|2>^fTrbj^@Bma4>V zS&C_H!A7{Kb^StIs$1n~*t9(i(r}B86HMZ5(!@GOWX2RTk*`Ln!y@I!;Pho-ucDdH z36zRlS6Rc0uATBnc$OGxU>({Z#A9!dQ$M2GiGaYUu1e|01r(R!5RIf;?I(C|>ON-0 z3$BoY&n>Zm?W=@2sA5MT8V%CVcpXC_g@=9!_W!FWt>~!2q$oT<-a_KpkU7@dFF$sJ zQPVE~d$;hPO;zK9PFmf8YT3tR4dl=sjcAbJBb2c9lD%KeCu&9;2-q3g3H}+`&6mN8 zxHbiWJV}esM$6NXEDKz`4lmrb_In1rJ4z6zt&^;AgiTbLq`3oTQ2r}dFl#7dw|cax z4fiU;W7q~PJF<+gL}915Ze?IF2QPG+8DJ8cFZti8C6T<-#{Zy_aMFWfMQQJ+y(JYr zRFi_)VB(((u~*{B7~?8X>{c^Dy^hacgq)<+YB&&W^e;?smgR`y?Z73vq?-8d^O>4b=%JUXKZLJ`k}m- z7(Pm!UJeLyQDN&EbwdFzKpP)TZhncO1YnDnhA+28Bx^E~nk)uwb1qrBIx4BEbBldS zpx)UT>YBE$pt4?KP(;vy`h;S`n!{E!<~;;OW=0t)FrK;$t>T4Dlzjo@RsFSnKMm;6 zvw!Fp!&`K%FHL$%47E+Wmf0T=j|%=9V_2p5(|!?|;p>563cyUVTMn`0R8-v#hL*Ed zrkZC2cG-gV(?aCM$wsnuq07J4gG1&z!v2djj8q zA7WP(N7b0kb297evfa-u?k~cI@vXeXx+u%O&syx)?@IBRqW8RVH7COIO3r;utRC;Vy5Lz^Kg`N`78kwLaBOAL;S|TTx`&x;adjy^N&4J3U2r3T) z6~9t~8y43Y_Yv>wvmUB_oZ*LhdG?&ExD__Fp+LFp#Uc4bZ^j@PY}sRig<|02wtrSi zuFCJd*r1b5FOaarOX%*vMFp-$(~ni_bKd;5LWS9jp8Uz5cX)+_orGP-=%V=dU{of2 zV2w0d`}=hyWSfGn4EmU-@m%z#Z-J8=GduGCk>(4D!r%KV1W*^Rs}1B)owO~`Xe}tF z?w5)n?GuRLT&gLIXuQ2|r)QK`1}9k{ju=vfOxV@X=Usq2>iwZqZw)HHaEOS|7=M#d zB0}X&4ytc|X<&Y?0}gtj9+!f+ouIU}1+j&D1k-3g^o*mlyIxQBT>2r}DJv4!iW#ZHC!PkH8)84P@~;7j?<>mZ$QaVa2L# zuthqoXK^_%wwczt3)SYG#5Am`B`0vZ z;C0Rdh)VGgNr%P%l!zRhsf&xq@m2g~zhLk0fROL1H5D5Q04Dp>FyL*e|Ibntj0oqC z6q-LsurbT-1?1$x&e^Arbc^9%&0pB9#ik;|QTVr3`5WD2I0N1>t5tnfb3!d+YSBM~ z9|=a5I%70W-3W$u5(227CEsI+Yn(Th$K!{1=^(FIz6Sj|T8vr|yf;q!v>{wL|MBR# z@t9%B#PVk;&`&`bf)E_&%(sGn22Yg(995*7`4Y>TnmfVy5Ct09q{1U1((xufqHEv< z5=X}DSVx5dCy=#1bA9U6iaeLPbm0%IJQEjt)p1jFOnr}c=8SI@T|k~5%*Ds&M>sos zImXFD%@1Zq)&5Uwdb28c%JO!iksQv=!9eVz1hhjd+P%NG4GTltgGaJiRG<4lQE2FH zETkk-Ebs-z>P65pF<-8_$zr|$Yw-nlXBl1ySGmi+PwZN2%?L3VSMHtR7n6rL71}mP zRnyrNhTJPJa5$%s`_02p-_$xMlxN0>yW*Ij>Fm(!J8S!)e+0A_YEYb!C^m4~S1iE; zd4*5E36OH_QozwlQV=#~HNC;E_sAr~=iOEdvk`Vq@`!C76RPt;zCLu1rSoBdG$z_$ zk?~x+c6pd%vVjj80aa51RAicBe9^_*+u&RH^eVII^SiMYJoRk7H4QrK;FEqA%Ksut=h@@*EBm>IWWa+N4xos zgW8Hc2tUffnrQu?T7Tta(o}ISA164sHi4`0J0_><`AZSTpz?Q?J6CT)^PlmZhvB^qHVIy1YX$_quj~q16_us=`^jn^ z^X%oaP{_(@&tyC^GnxiY%^-qc1ML;6%N(X4a++BsEON7lB8=3(B1#KCirhp5uip?E z;t!iF1^~YJlcoW8QbmH!<>fSFVn-1XOStKCQ-%{i9rnt;$IF90t&Q~jzNJLki&V3k zqLvfA1_0-`i~ebvb#Fnls8+m$|DL8fdIXGku8v^WIs?}J9kMd3_9Q(5dN5^?>+GST z?%>%h+?=zIXKVaA#m0qx80R*buezW)5rWgNi0D>cqnv@7t=B;*ytQfg7wD}D>iS=y zoVvvw8Zw?T13_cIN{oow>K+Uku=nZUWL z71;>Cuu)8MG7yZ8P22QAr+mBl6zOtwklAUk=THE^-K_O0Q}u%bgGW&N%SAFDL{bEo zsAxwq5p2_xs(2Ja66YK~O!cN@w?L$>IYhtsf8hkv$?NuO{^9OqnI zAZ-2CdLX*PPqls~P3-DgVjZr^6%9@mU0n#+k!uO0(syX5{+oN=B-hduY>}hMH(KB`FmQlT&JYpAX&PCI9;=4;k-9MeDZ$2#$ z?wtGWnY5y|S);|vUq~md>m{8oLO^34#Hx?DRkLvYXJII5m@5*4MEkfc|A!yY66Q2X zB34a8J`gh@I7T3(e^>1|jJvMYH$~s4$!huQ6pgo)>*br-qhZtq_}~5QC8i7LuYdvZ zMm3^euK~oGcu|^VeX*zeRAF(~%qu35n~OdL0MR)6t(~qL_qr3WXtTW9b44y#9VSOz z@HmBfk&<4QcHb8rdtH3#KjDSenA58&RY=6ASz}4V?@U_@S;F+i{CQP1eQse zEGRl5^AEX%WME!fwopG51c!3#Ervh{rHZEAkz^DK=i^{5fvLzHxbVQo{r&)J37i5Y zdnOmaedDMnr-?!@h#E5aOnqD0AuE^Waal%aG2G;~{C$FmRla%kcZFwi_JD3WeE9RG ztHmuRD?J%Lf&NhXuz*OTty7RN9;9R#Ce7ZBjC*_VV0~o^4c9wt^*?N>e!X)#3Xxad zENCtHMGxIbBJyl57PCCk(hq1j5z3B+7!MD%uw{7OGGADM_Cnj~FmM)K`->yK42$g# z5V_blGtAxTB~K>2kYgSY0mU#NjdTG!$#9MdpCxKed+$LLpNE*k%H@Dbez|xGD%>j{ zDE&ZJu)sH2DQZ!IL*OCxLq;(*5@j4aWrKFf{XT3)Kp?o43$Sp@s(ON>`H~mKigU&p zZ90Pis0^}tHH7(_R-7+d#(qZk`M~s-8Xd=xDIKD;4;>bO;)Mee2fb<_sAHr;CExA6 z?yw^~DGUpDF0NbR5PJ~$%7(Sd|Y%=he@ z=GtJ|svUoO5wurg|tLbmL7zMbJ(lmOhqU@_)k zf52s+xWQt*8scx`R`2rlWH9+^l??#&YW4=4>C7ZKTpaKUESS!#^?DDajxzfbXj0CE z+}(X+A#O&(To3tO|5ejmi1}n?4N2Yo^GELYG3pzJWi8vmYG8u5lmGEt@q4ZLAbzDB z%VUglau?+GJ9jcW)_|585EzyP486UR)cE#f@@wr3n?oT#qMfve?qx=NunXLw@I`vU z9yD27k+TeA?MZoYBmuk=YgVpCn5lUJVAcgr2LXUO^>!}$9^unAbGGM;UEhN>J3Ga2 zOHjCtvpixZjx`I>s;ZKRc$#M_XeXQYPn(HjL?vb)B?~=;u9m$-+N^dKN~=QsZ(2mN z)Od0J9dUL0ReV>%)=nrs6jZyh-!`Kj)AFR^*_r#JYEty4JYb5Tc?Lzoq(B@huNhV6CW{pqlI#90~ckf2yls|b~1Dm?;M5eXQ zq1Hh7P;z0;nj$Y%?!zaEZhg^q&^&E+s{Rj_jZ%Za=2;G6%Dv%35>bnU&k7sTF~ z>iQw!xmgXE5QORx9f44_GS#TCVO`-TJpG9i3+BFn=!MZ9ECqn@pUX1oDGK3q<{K7X zGN7=HDqoaDw?vrgsVB$i=lrT_v`x@K0gw(c&)=ZN;^_1P6JraGZmQjXj)S2RGO324 z4$O-|Gv571M z3V|2$yHZ1mj7*tKDmd$ZOB24gP7pNV0fNgk=!^8RG74u)rc=Y4VPA4)YiFh`1$tbG zuh6KHbi{OUo#tJd8b!TM2%>tnrs|zqpBpov*~+iydwM(9=WJ!g-D?6>QkCWpRVw=Y zI??C)ye%K2^jR5~nSPAHoruifld(Urp2quqdI%6xJKaJDC;mylhX89MM~RO8?c9ky>BTh+s2 z(vZA1?uY$WR`@*pvD zZ-c03VRHWp(8SR{V%&j&7yEbD2a^=>djuVOLchuNbIAuY_#7(czx_WlWC?r+*fX?euq)C8X=$ZmkB zxdIIy(Fu+)yRhUag8X-c^b-2{P$0{^5yN6 z4HIedY9d(i8JASD&8UU-*oV@ZR%PdDJN3h#1ca%*7`{|q4g=NEkr+w0R3V_Jq&5CA zF>hA!CwLGBWU+9+R|Cw(09_;xIj*HCtbFt2OO7TPh^Q%!`e;{S=O(^LMvSM82G0e? zDoa?Wda!YTA~~`q^1Zh&xqe%n#f(w0J<8{?mq=3}e**a*!rGB8!H6q@lZ(6W^JKu7 zK_QaJakkgV-D$t~i!3n!Fxr8a7Z?TVN75o!F$Su4Pj6R^2pl@>@i6tb0Qmd}zFmhu zg=sPaloz20IMED$3sr9eAjf1P=DpKf<&k)&b`00z6ZpgCui;x~huL7;v~{BfnU#ux zM0e6_a~stwG1W}9e$a3?(E#cNBeOnFG*>&x^tPlmXadJXgR=U_{`9coXA3L<*{hE$ z$%DGNZ`bhIlg{eeWmUX`g>$4;%GuXlNlIg>8TgRMLadp$A0|gu<+GT@+Sol*g&Z8u z|0vrX@^SH>CpFpnq5{lDQWm5A-YH_A@U*x}B?{w8GCd-M4HV*}PyAhm%z|~e5DZy! z9sAVqZ3X`@vSlibT((t3%vfsxZw?<&Pv=%(@OGQ}q*O`HXpWB0xcraq=OsfHxaz8- z`?1Ph-G+K4&Iimim;!qEV!!tOPa1SSqJVcw-{jf2wop}9Rh$sWz^9&WW@gOmeTRIp2Mf^d-V)<6=U+gx=^Z(C=+@`VYDl?0pAKXa_^B6a>KOTn{FLq@=~W(* z8yQZoTY9XVYb9+srP!zhKoP;QSnk#&b^`e{^IU)--aT1W7oZovf`JY

|=0F&HWU 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 50) do={\r\ + \n # after 50 * 0.1s delays, it's been 5 seconds, which should \ + be long enough\r\ + \n :set errorMsg \"New folder could not be created at \$newFold\ + er\";\r\ + \n :log error \"mkdir: \$errorMsg\"\r\ + \n :error \$errorMsg\r\ + \n }\r\ + \n :delay 0.1s;\r\ + \n :set count (\$count + 1);\r\ + \n }\r\ + \n\r\ + \n :return \$newFolder;\r\ + \n}\r\ + \n\r\ + \n:log info \"Created function \\\$mkdir\"\r\ + \n" +add comment="Certificates CloudFlare, Quad9 " dont-require-permissions=no \ + name=Update-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\r\ + \n/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRo\ + otCA.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\"\ + \";\r\ + \n/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG\ + 2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGlobal\ + G3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n\r\ + \n#:global AmScriptsUrl;\r\ + \n#google\r\ + \n#:local CertName \"GTS-Root-R1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-R4.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#:set CertName \"ISRG-Root-X1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +add dont-require-permissions=no name=script1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + tool/netwatch/add comment=\"doh-fallback, doh-url=https://security.cloudfl\ + are-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Clou\ + dFlare-doh IPv4 1\" host=1.1.1.1;\r\ + \n/tool/netwatch/add comment=\"doh, doh-url=https://security.cloudflare-dn\ + s.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=CloudFlare\ + -doh IPv4 2\" host=1.0.0.1;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 1\" host=8.8.8.8;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 2\" host=8.8.4.4;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 1\" host=9.9.9.9;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 2\" host=149.112.112.112;\r\ + \n\r\ + \n/tool/netwatch/add comment=\"dns, notify, name=ns1.unet.ws\" host=91.192\ + .189.2;" +add dont-require-permissions=no name=script2 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n\r\ + \n:global InspectVar;\r\ + \n#:global RouterBoard;\r\ + \n#:do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on-erro\ + r={}\r\ + \n#:global Resources;\r\ + \n#:do {:set Resources [[ :parse \"/system/resource/get\" ]]} on-error={}\ + \r\ + \n\r\ + \n#:global Updates;\r\ + \n#:do {:set Updates [[ :parse \"/system/package/update/get\" ]]} on-error\ + ={}\r\ + \n\r\ + \n#:global PkgUpdStatus \"undefined\";\r\ + \n#:local Update [/system/package/update/get];\r\ + \n#:retry command={:set PkgUpdStatus (\$Update->\"status\")} delay=200ms m\ + ax=5 on-error={};\r\ + \n\r\ + \n#:log warning [\$InspectVar \$RouterBoard];\r\ + \n#:put [\$InspectVar \$RouterBoard];\r\ + \n\r\ + \n#:retry command={/system/package/update check-for-updates without-paging\ + \_as-value} delay=300ms max=5 on-error={};\r\ + \n\r\ + \n#:global arrDeviceInfo ({});\r\ + \n#:local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};});\ + \r\ + \n#:set (\$arrDeviceInfo->\"RouterBoard\") [[ :parse \"/system/routerboard\ + /get\" ]];\r\ + \n#:retry command={:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system\ + /package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"Error\ + \")};\r\ + \n# [:toarray {\"section\"={\"key\"=\"\"; \"value\"=\"\";} }];\r\ + \n# [:toarray \"\"];\r\ + \n:local arrDeviceInfo ({});\r\ + \n\r\ + \n:set (\$arrDeviceInfo->\"devUpdates\") {\"channel\"; \"stable\";};\r\ + \n#:do {:set (arrDeviceInfo->\"Updates\") [[ :parse \"/system/package/upda\ + te/get\" ]]} on-error={:log error (\$error)}\r\ + \n\$InspectVar \$arrDeviceInfo;\r\ + \n" +add dont-require-permissions=no name=AM-setup owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_RouterOS Setup Script: AM-setup\r\ + \n# \r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n## Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:if ([ :len [ /system/script/find where name=\$ScriptName ]] = 0 ) do={\ + \r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# :global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n# /system/script/add name=\$ScriptName owner=\$ScriptName source=([ /too\ + l/fetch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptNa\ + me . \".rsc\") output=user as-value ]->\"data\");\r\ + \n#}\r\ + \n# For run from terminal:\r\ + \n# /system/script/add name=AM-setup owner=AM-Setup source=([ /tool/fetch \ + check-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" ou\ + tput=user as-value ]->\"data\");\r\ + \n#\r\ + \n# /system/script/set source=[ :tocrlf [ get \$ScriptName source ] ] \$Sc\ + riptName;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local RemoveThisScript false;\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n{\r\ + \n :local ScriptName;\r\ + \n :local RemoveThisScript;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local AllDone;\r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n:log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :put \"Add Schedulers...\";\r\ + \n :delay 1;\r\ + \n :put \"Add Global scheduler...\";\r\ + \n :local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFu\ + nc; }\";\r\ + \n :local Comment \"Setup Global Environment for scripts\";\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] \ + ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-\ + event=\$OnEvent start-time=startup;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Commen\ + t) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEve\ + nt) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Add 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-ScriptInstallUpda\ + te\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Commen\ + t start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n }\r\ + \n\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n /system/script { run AM-GlobalConfig; run AM-GlobalFunc; };\r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :set AllDone true;\r\ + \n } on-error={\r\ + \n :set AllDone false;\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$ScriptName . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n\r\ + \n :delay 5s;\r\ + \n :if (\$AllDone = true && \$RemoveThisScript = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :set OnEvent \":delay 30s; /system/script/remove [ find where name=\$S\ + criptName ]; :delay5s; /system/scheduler/remove [ find where name=\\\"_Rem\ + oveSetup\\\" ];\";\r\ + \n :set Comment \"_RemoveSetup tmp scheduler for remove setup script.\";\ + \r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-ti\ + me=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$ScriptName . \"\\nI've done everything, and now I'm ti\ + red... I'm leaving. ))\\nThere will be an error below, this is normal.\");\ + \r\ + \n }\r\ + \n};\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n:local Script AM-GlobalConfig\r\ + \n/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch ch\ + eck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".rs\ + c\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub" +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/226/e1cd7257\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 09:45:02 01.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\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 Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if (\$CurrentChannel != \$updateChannel) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel (\$Update->\"channel\");\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([:len \$arrDeviceInfo] = 0) do={\r\ + \n :global arrDeviceInfo ({});\r\ + \n :local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};}\ + );\r\ + \n }\r\ + \n # else={:local arrDeviceInfo ({})}\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [[ :parse \"/\ + system/package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"\ + Error\")};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannel\"; \$Cu\ + rrentChannel;};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentVersion\"; (\$U\ + pdate->\"installed-version\");};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannelVersion\ + \"; [/system/resource/get version];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateChannel\"; [\$up\ + dateChannel];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateVersion\"; (\$Up\ + date->\"latest-version\");};\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\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\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n\r\ + \n :global arrDeviceInfo [:toarray {\"section\"={\"key\"=\"\"; \"value\"\ + =\"\";} }];\r\ + \n #:do {:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system/package\ + /update/get\" ]]} on-error={}\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devRbCurrentFw;\r\ + \n :global devRbUpgradeFw;\r\ + \n\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global ROsVerCurrent;\r\ + \n :global ROsChannelCurrent;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :global ParseCustom;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global devBuildTime;\r\ + \n :global GetPubIp;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :set devBuildTime (\$Resource->\"build-time\");\r\ + \n :set runningChannelVersion (\$Resource->\"version\");\r\ + \n :set runningChannel [\$ParseCustom \$runningChannelVersion \"(\" \")\ + \" 1];\r\ + \n :set runningVersion [\$ParseCustom \$runningChannelVersion \" \"];\r\ + \n\r\ + \n :do {\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :local RouterBoard;\r\ + \n :do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on\ + -error={}\r\ + \n :set devModel (\$RouterBoard->\"model\");\r\ + \n :set devRbRevision (\$RouterBoard->\"revision\");\r\ + \n :set devRbSerialNumber (\$RouterBoard->\"serial-number\");\r\ + \n #:set devRbCurrentFw (\$RouterBoard->\"current-firmware\");\r\ + \n #:set devRbUpgradeFw (\$RouterBoard->\"upgrade-firmware\");\r\ + \n :if (\$devCurArch = \"mipsbe\" || \$devCurArch = \"arm\") do={\r\ + \n :global devRunning [ /system/device-mode/get mode ];\r\ + \n } else={\r\ + \n :global devRunning [/system/device-mode/get running];}\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n \r\ + \n :set devRbRevision false;\r\ + \n :set devRbSerialNumber false;\r\ + \n# :set devRbCurrentFw false;\r\ + \n# :set devRbUpgradeFw false;\r\ + \n #:set devCurrentFw \$runningVersion;#:set devUpgradeFw \$ROsVerAvail\ + ;\r\ + \n :set devRunning [/system/device-mode/get running];\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Error in Function getDevice!\");\r\ + \n :return false;\r\ + \n }\r\ + \n:return true;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global WaitArrDeviceInfo;\r\ + \n # \$WaitDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devCurArch;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global PiblicIpAddress;\r\ + \n\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :local Return;\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n\r\ + \n :set Return ([ \$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:\" . \$devBoardName ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Arch:\" . \$devCurArch ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Model:\" \$devModel ] . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbRevision ] > 0) \\\r\ + \n (\" \" . \$devRbRevision) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbSerialNumber ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial:\" . \$devRbSerialNumber ] . \"\\n\"\ + ) ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"nleve\ + l\")) ] . \"\\n\") ] . \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Running Channel\" \$runningChannel ] . \"\\n\" . \\\ + \r\ + \n [ \$FormatLine \" Installed:\" (\$Update->\"installed-version\") \ + ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :typeof (\$Update->\"latest-version\") ] != \"noth\ + ing\" && \\\r\ + \n \$Update->\"installed-version\" != \$Update->\"latest-version\")\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Update->\"latest-version\") ]\ + \_. \"\\n\") ] . \\\r\ + \n [ \$IfThenElse (\$RouterBoard->\"routerboard\" = true && \\\r\ + \n \$RouterBoard->\"current-firmware\" != \$RouterBoard->\"upgrade-\ + firmware\") \\\r\ + \n ([ \$FormatLine \" Firmware\" (\$RouterBoard->\"current-firmwar\ + e\") ] . \"\\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: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: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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n :global LogPrint;\r\ + \n \r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n\r\ + \n# :retry command={abc} delay=1 max=2 on-error={:put \"got error\"} \r\ + \n :do {\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using default s\ + ervice: \" . \$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={\$LogPrint error [ :jobname ] (\"Fail\ + ed to detect public IP using default service: \" . \$Url . \".\")}\r\ + \n #:error \"Failed to detect public IP using default service: \$Url\ + .\"};\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Failed to detect public IP using default s\ + ervice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using fallback \ + service: \" . \$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={\$LogPrint error [ :jobname ] (\"Fai\ + led to detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={\r\ + \n :set PubIpAddr \"not-detected\";\r\ + \n } else={\r\ + \n :set PubIpAddr [ :pick \$PubIpAddr 0 15];\r\ + \n }\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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: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 :global LogPrint;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n \$LogPrint 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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\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} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add comment="Import ssh keys for public key authentication" \ + dont-require-permissions=no name=AM-SshKeysImport owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-SshKeysImport\r\ + \n# Script comment: Import ssh keys for public key authentication\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global configs or functions not ready.\"); }; } del\ + ay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global SSHKeysImport;\r\ + \n:global SSHKeysImportFile;\r\ + \n\r\ + \n# import single key passed as string\r\ + \n:set SSHKeysImport do={ :onerror Err {\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :if ([ :len \$Key ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass key and u\ + ser!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ :len [ /user/find where name=\$User ] ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"User '\" . \$User . \"' does not exist.\")\ + ;\r\ + \n :return false;\r\ + \n }\r\ + \n :local KeyVal ([ :deserialize \$Key delimiter=\" \" from=dsv options=d\ + sv.plain ]->0);\r\ + \n :if (!(\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\")) do\ + ={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' is\ + \_not supported.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FingerPrintMD5 [ :convert from=base64 transform=md5 to=hex (\$K\ + eyVal->1) ];\r\ + \n :local RegEx (\"\\\\bmd5=\" . \$FingerPrintMD5 . \"\\\\b\");\r\ + \n :if ([ :len [ /user/ssh-keys/find where user=\$User \\\r\ + \n (key-owner~\$RegEx or info~\$RegEx) ] ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The ssh public key (MD5:\" . \$FingerPrint\ + MD5 . \\\r\ + \n \") is already available for user '\" . \$User . \"'.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$MkDir \"tmpfs/ssh-keys-import\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Creating directory 'tmpfs/ssh-keys-import'\ + \_failed!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\"tmpfs/ssh-keys-import/key-\" . [ \$GetRandom20CharA\ + lNum 6 ] . \".pub\");\r\ + \n /file/add name=\$FileName contents=(\$Key . \", md5=\" . \$FingerPrint\ + MD5);\r\ + \n \$WaitForFile \$FileName;\r\ + \n :onerror Err {\r\ + \n /user/ssh-keys/import public-key-file=\$FileName user=\$User;\r\ + \n \$LogPrint info \$0 (\"Imported ssh public key (\" . \$KeyVal->2 . \ + \", \" . \$KeyVal->0 . \", \" . \\\r\ + \n \"MD5:\" . \$FingerPrintMD5 . \") for user '\" . \$User . \"'.\");\ + \r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key: \" . \$Err);\r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n :return false;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# import keys from a file\r\ + \n:set SSHKeysImportFile do={ :onerror Err {\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global FileExists;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global SSHKeysImport;\r\ + \n :if ([ :len \$FileName ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass file name\ + \_and user!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$FileExists \$FileName ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"File '\" . \$FileName . \"' does not exist\ + .\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Keys [ :tolf [ /file/get \$FileName contents ] ];\r\ + \n :foreach KeyVal in=[ :deserialize \$Keys delimiter=\" \" from=dsv opti\ + ons=dsv.plain ] do={\r\ + \n :local Continue false;\r\ + \n :if (\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\") do=\ + {\r\ + \n :if ([ \$SSHKeysImport (\$KeyVal->0 . \" \" . \$KeyVal->1 . \" \" \ + . \$KeyVal->2) \$User ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key for user '\" . \$\ + User . \"'.\");\r\ + \n }\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && \$KeyVal->0 = \"#\") do={\r\ + \n :set User [ \$EitherOr ([ \$ParseKeyValueStore (\$KeyVal->1) ]->\"\ + user\") \$User ];\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && [ :len (\$KeyVal->0) ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' \ + is not supported.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Check for certificates validity" dont-require-permissions=no \ + name=AM-CheckCerts owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CheckCerts\r\ + \n# Script comment: Check for certificates validity\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global CertRenewTime;\r\ + \n :global CertRenewUrl;\r\ + \n :global CertWarnTime;\r\ + \n :global Identity;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EscapeForRegEx;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global ScriptLock;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n# :global WaitFullyConnected;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Renew Certificates\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n\r\ + \n :local CheckCertificatesDownloadImport do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local CertName [ :tostr \$2 ];\r\ + \n :local FetchName [ :tostr \$3 ];\r\ + \n\r\ + \n :global CertRenewUrl;\r\ + \n :global CertRenewPass;\r\ + \n\r\ + \n :global CertificateNameByCN;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global UrlEncode;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :foreach Type in={ \"p12\"; \"pem\" } do={\r\ + \n :local CertFileName ([ \$UrlEncode \$FetchName ] . \".\" . \$Type)\ + ;\r\ + \n \$LogPrint debug \$ScriptName (\"Trying type '\" . \$Type . \"' fo\ + r '\" . \$CertName . \\\r\ + \n \"' (file '\" . \$CertFileName . \"')...\");\r\ + \n\r\ + \n :do {\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] \ + }) \\\r\ + \n (\$CertRenewUrl . \$CertFileName) dst-path=\$CertFileName \ + as-value;\r\ + \n } do={\r\ + \n :if (!(\$Err ~ \"[Ss]tatus 404\")) do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching certificate: \" . \ + \$Err);\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n \$WaitForFile \$CertFileName; \r\ + \n\r\ + \n :local DecryptionFailed true;\r\ + \n :foreach I,PassPhrase in=\$CertRenewPass do={\r\ + \n :do {\r\ + \n \$LogPrint debug \$ScriptName (\"Trying \" . \$I . \". passp\ + hrase... \");\r\ + \n :local Result [ /certificate/import file-name=\$CertFileName\ + \_passphrase=\$PassPhrase as-value ];\r\ + \n :if (\$Result->\"decryption-failures\" = 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Success!\");\r\ + \n :set DecryptionFailed false;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \$RmFile \$CertFileName;\r\ + \n\r\ + \n :if (\$DecryptionFailed = true) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Decryption failed for certi\ + ficate file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n\r\ + \n :foreach CertInChain in=[ /certificate/find where common-name!=\ + \$CertName !private-key \\\r\ + \n name~(\"^\" . [ \$EscapeForRegEx \$CertFileName ] . \"_[0-9]\ + +\\\$\") \\\r\ + \n !(subject-alt-name~(\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRe\ + gEx \$CertName ] . \"(\\\\W|\\\$)\")) \\\r\ + \n !(common-name=[]) ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$CertInChain common-\ + name ];\r\ + \n }\r\ + \n\r\ + \n :return true;\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not download certificate \ + file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FormatInfo do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global FormatLine;\r\ + \n :global FormatMultiLines;\r\ + \n :global IfThenElse;\r\ + \n\r\ + \n :local FormatExpire do={\r\ + \n :global CharacterReplace;\r\ + \n :return [ \$CharacterReplace [ \$CharacterReplace [ :tostr \$1 ] \ + \"w\" \"w \" ] \"d\" \"d \" ];\r\ + \n }\r\ + \n\r\ + \n :local FormatCertChain do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :typeof (\$CertVal->\"issuer\") ] = \"nothing\") do={\r\ + \n :return \"self-signed\";\r\ + \n }\r\ + \n\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=5 do={\r\ + \n :set Return (\$Return . [ \$ParseKeyValueStore (\$CertVal->\"iss\ + uer\") ]->\"CN\");\r\ + \n :if ([ :len [ /certificate/builtin/find where skid=(\$CertVal->\ + \"akid\") ] ] > 0) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :do {\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\ + \"akid\") ] ];\r\ + \n } on-error={\r\ + \n :return (\$Return . \" (possibly incomplete!)\");\r\ + \n }\r\ + \n :if ((\$CertVal->\"akid\") = \"\" || (\$CertVal->\"akid\") = (\$\ + CertVal->\"skid\")) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :set Return (\$Return . \" -> \");\r\ + \n }\r\ + \n :return (\$Return . \"...\");\r\ + \n }\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Name\" (\$CertVal->\"name\") ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"common-name\") ] > 0) ([ \$Fo\ + rmatLine \"CommonName\" (\$CertVal->\"common-name\") ] . \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"subject-alt-name\") ] > 0) ([\ + \_\$FormatMultiLines \"SubjectAltNames\" (\$CertVal->\"subject-alt-name\")\ + \_] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Private key\" [ \$IfThenElse ((\$CertVal->\"priva\ + te-key\") = true) \"available\" \"missing\" ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \"Fingerprint\" (\$CertVal->\"fingerprint\") ] . \"\ + \\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"ca\") ] > 0) [ \$FormatLine \ + \"Issuer\" (\$CertVal->\"ca\") ] [ \$FormatLine \"Issuer chain\" [ \$Forma\ + tCertChain \$Cert ] ] ] . \"\\n\" . \\\r\ + \n \"Validity:\\n\" . \\\r\ + \n [ \$FormatLine \" days\" (\$CertVal->\"days-valid\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" from\" (\$CertVal->\"invalid-before\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" to\" (\$CertVal->\"invalid-after\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" time left\" [ \$IfThenElse ((\$CertVal->\"exp\ + ired\") = true) \"expired\" [ \$FormatExpire (\$CertVal->\"expires-after\"\ + ) ] ] ]);\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n# \$WaitFullyConnected;\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !ca !scep-url expi\ + res-after<\$CertRenewTime ] do={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n :local LastName;\r\ + \n :local FetchName;\r\ + \n\r\ + \n :do {\r\ + \n :if ([ :len \$CertRenewUrl ] = 0) do={\r\ + \n \$LogPrint info \$ScriptName (\"No CertRenewUrl given.\");\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Attempting to renew certificate '\ + \" . (\$CertVal->\"name\") . \"'.\");\r\ + \n\r\ + \n :local ImportSuccess false;\r\ + \n :if ([ :len (\$CertVal->\"common-name\") ] > 0) do={\r\ + \n :set LastName (\$CertVal->\"common-name\");\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$ScriptN\ + ame \$LastName \$FetchName ];\r\ + \n }\r\ + \n :foreach SAN in=(\$CertVal->\"subject-alt-name\") do={\r\ + \n :if (\$ImportSuccess = false) do={\r\ + \n :set LastName [ :pick \$SAN ([ :find \$SAN \":\" ] + 1) [ :len\ + \_\$SAN ] ];\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scrip\ + tName \$LastName \$FetchName ];\r\ + \n :if (\$ImportSuccess = false && [ :pick \$LastName 0 2 ] = \"*\ + .\") do={\r\ + \n :set FetchName (\"star.\" . [ :pick \$LastName 2 [ :len \$La\ + stName ] ]);\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scr\ + iptName \$LastName \$FetchName ];\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$ImportSuccess = false) do={ :error false; }\r\ + \n\r\ + \n :if ([ :len (\$CertVal->\"fingerprint\") ] > 0 && \$CertVal->\"fin\ + gerprint\" != [ /certificate/get \$Cert fingerprint ]) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was updated in place.\");\r\ + \n :set CertVal [ /certificate/get \$Cert ];\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was not updated, but replaced.\");\r\ + \n\r\ + \n :local CertNew [ /certificate/find where name~(\"^\" . [ \$Escap\ + eForRegEx [ \$UrlEncode \$FetchName ] ] . \"\\\\.(p12|pem)_[0-9]+\\\$\") \ + \\\r\ + \n (common-name=(\$CertVal->\"common-name\") or subject-alt-name~\ + (\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRegEx \$LastName ] . \"(\\\\W|\\\$)\ + \")) \\\r\ + \n fingerprint!=[ :tostr (\$CertVal->\"fingerprint\") ] ];\r\ + \n :local CertNewVal [ /certificate/get \$CertNew ];\r\ + \n\r\ + \n :if ((\$CertVal->\"expires-after\") > (\$CertNewVal->\"expires-a\ + fter\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate is newer th\ + an the new one. Aborting renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ((\$CertVal->\"private-key\") = true && (\$CertVal->\"privat\ + e-key\") != (\$CertNewVal->\"private-key\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate '\" . (\$Ce\ + rtVal->\"name\") . \"' has a private key, new certificate does not. Aborti\ + ng renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable ([ \$ParseKeyValueStore (\$CertNew\ + Val->\"issuer\") ]->\"CN\") \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"The certificate chain is no\ + t available!\");\r\ + \n }\r\ + \n\r\ + \n /ip/service/set certificate=(\$CertNewVal->\"name\") [ find wher\ + e certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/ipsec/identity/set certificate=(\$CertNewVal->\"name\") [ fi\ + nd where certificate=(\$CertVal->\"name\") ];\r\ + \n /ip/ipsec/identity/set remote-certificate=(\$CertNewVal->\"name\ + \") [ find where remote-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/hotspot/profile/set ssl-certificate=(\$CertNewVal->\"name\")\ + \_[ find where ssl-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /certificate/remove \$Cert;\r\ + \n /certificate/set \$CertNew name=(\$CertVal->\"name\");\r\ + \n :set Cert \$CertNew;\r\ + \n :set CertVal [ /certificate/get \$CertNew ];\r\ + \n }\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; silent=true; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen\" ] . \"C\ + ertificate renewed: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" has been renewe\ + d.\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' has been renewed.\");\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not renew certificate '\" .\ + \_(\$CertVal->\"name\") . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !scep-url !(expire\ + s-after=[]) \\\r\ + \n expires-after<\$CertWarnTime !(fingerprint=[]) ] do\ + ={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/scep-server/find where ca-cert=(\$CertVal\ + ->\"ca\") ] ] > 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . (\$CertVal->\"n\ + ame\") . \"' is handled by SCEP, skipping.\");\r\ + \n } else={\r\ + \n :local State [ \$IfThenElse ((\$CertVal->\"expired\") = true) \"ex\ + pired\" \"is about to expire\" ];\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen,warning-s\ + ign\" ] . \"Certificate warning: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" \" . \$State . \ + \".\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' \" . \$State . \\\r\ + \n \", it is invalid after \" . (\$CertVal->\"invalid-after\") . \ + \".\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\ + \n# RouterOS script: AM-GlobalConfig\ + \n# Script comment: Global Config Script\ + \n# Copyright (c) 2007-2026 Vados \ + \n#\ + \n#\ + \n# Warning: Dont touch this line!\ + \n:global GlobalConfReady false;\ + \n#\ + \n#\ + \n# Global Url For Amster scripts to fetch\ + \n# most be defined in AM-Init-Script or AM-setup scripts\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\ + \n:global ScriptsUrlSuffix \"\";\ + \n:global CheckSumsVerify true;\ + \n\ + \n:global ScriptUpdatesCRLF true;\ + \n:global CommentsInScripts true;\ + \n\ + \n# Debug output:\ + \n:global PrintDebug true; #false;\ + \n\ + \n# Debug output for specific script:\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\ + \n\ + \n# Debug logs\ + \n# Other actions (disk, email, remote or support) can be used as well.\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\ + \n#/system/logging/add topics=script,debug action=memory;\ + \n\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\ + \n:global Domain \"WORKGROUP\";\ + \n\ + \n:global EmailGeneralTo \"vados@vados.ru\";\ + \n#:global EmailGeneralCc \"\";\ + \n\ + \n# \$ScriptInstallUpdate mod/notification-telegram\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\ + \n# Use this to send notifications to a specific topic in group.\ + \n#:global TelegramThreadId \"30\";\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\ + \n# or user names. Groups allow to chat with devices simultaneously.\ + \n:global TelegramChatIdsTrusted {\ + \n \"454403445\"\ + \n \"-1003631309063\"\ + \n \"-5124482807\"\ + \n \"1087968824\";\ + \n};\ + \n# \"-5294757340\";\ + \n\ + \n:global TelegramChatGroups \"(all)\";\ + \n#:global TelegramChatGroups \"(all|home|office)\";\ + \n\ + \n:global NotificationFunctions {\ + \n \"email\"\ + \n \"telegram\";\ + \n};\ + \n# Toggle this to disable symbols in notifications.\ + \n:global NotificationsWithSymbols true;\ + \n:global TerminalColorOutput true;\ + \n\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\ + \n\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\ + \n:global updateChannel \"stable\";\ + \n\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\ + \n:global CertRenewTime 2w;\ + \n:global CertRenewPass {\ + \n \"\";\ + \n# \"v3ry-s3cr3t\";\ + \n# \"4n0th3r-s3cr3t\";\ + \n};\ + \n:global CertWarnTime 1w;\ + \n:global CertIssuedExportPass {\ + \n \"\";\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\ + \n};\ + \n\ + \n# Script BackupAndUpdate mode, possible values: backup,\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\ + \n# osnotify - Set `forceBackup` to always create backups on every run\ + \n:global DevInfoIncludeIP true;\ + \n:global BackupAndUpdateMode \"osnotify\"\ + \n\ + \n:global forceBackup true;\ + \n:global BackupPassword \"Peskar55\";\ + \n\ + \n# SFTP Backup Variables\ + \n:global BackupRandomDelay 0;\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\ + \n:global BackupUploadUser \$Identity;\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\ + \n\ + \n:global BackupSendBinary true;\ + \n:global BackupSendExport true;\ + \n:global BackupSendGlobalConfig true;\ + \n:global BackupSendScripts true;\ + \n\ + \n# Remove local file after uploading if no errors\ + \n:global BackupRmLocal true;\ + \n\ + \n# Local Backups Root Directory \ + \n:global BackupLocalRoot \"tmpfs\";\ + \n\ + \n# Encrypt Backup\ + \n:global BackupEncrypt true;\ + \n\ + \n# Sensitive information in Backups\ + \n:global BackupSens true;\ + \n\ + \n# User Export\ + \n:global BackupUser true;\ + \n\ + \n# License Export (not for CHR, will silently skip)\ + \n:global BackupLicense false;\ + \n\ + \n# SSH Keys\ + \n:global BackupSshKeys true;\ + \n\ + \n# Certificate Export\ + \n:global BackupCerts true;\ + \n\ + \n# Certificate Password\ + \n:global BackupCertsPasswd \"\";\ + \n\ + \n# User-Manager Export\ + \n:global BackupUserMan false;\ + \n\ + \n# The Dude Export\ + \n:global BackupDude false;\ + \n\ + \n# User Files to export, comma-separated string or array of strings\ + \n# User Files are not removed on backup\ + \n# Any directory paths will be removed (/ -> _) on remote file\ + \n# Nonpresent files are silently skipped\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\ + \n\ + \n# load functions and any custom scripts\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\ + \n#\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \n# :onerror Err {\ + \n# /system/script/run \$Script;\ + \n# } do={\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\ + \n# }\ + \n#}\ + \n#:log info \"\\ndevMode = \$devMode\";\ + \n#:log info \"\\ndevRunning = \$devRunning\";\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\ + \n :onerror Err {\ + \n /system/script/run \$Script;\ + \n } do={\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\ + \n }\ + \n}\ + \n\ + \n# signal we are ready\ + \n:set GlobalConfReady true;\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\ + \n" +add comment="Renew locally issued certificates" dont-require-permissions=no \ + name=AM-CertsRenew owner=AM-CertsRenew policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CertsRenew\r\ + \n# Script comment: Renew locally issued certificates\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global CertIssuedExportPass;\r\ + \n\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global ScriptLock;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Update Local Issued Certificates.\"\ + ;\r\ + \n#/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=st\ + artup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where issued expires-after<3w ] d\ + o={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n /certificate/issued-revoke \$Cert;\r\ + \n /certificate/set name=(\$CertVal->\"name\" . \"-revoked-\" . [ /syst\ + em/clock/get date ]) \$Cert;\r\ + \n /certificate/add name=(\$CertVal->\"name\") common-name=(\$CertVal->\ + \"common-name\") \\\r\ + \n key-usage=(\$CertVal->\"key-usage\") subject-alt-name=(\$CertVal\ + ->\"subject-alt-name\");\r\ + \n /certificate/sign (\$CertVal->\"name\") ca=(\$CertVal->\"ca\");\r\ + \n :if ([ :typeof (\$CertIssuedExportPass->(\$CertVal->\"common-name\")\ + ) ] = \"str\") do={\r\ + \n :if ([ \$MkDir \"cert-issued\" ] = true) do={\r\ + \n /certificate/export-certificate (\$CertVal->\"name\") type=pkcs1\ + 2 \\\r\ + \n file-name=(\"cert-issued/\" . \$CertVal->\"common-name\") \\\ + \r\ + \n export-passphrase=(\$CertIssuedExportPass->(\$CertVal->\"com\ + mon-name\"));\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\"\ + \_. \$CertVal->\"common-name\" . \\\r\ + \n \"', exported to 'cert-issued/\" . \$CertVal->\"common-name\" \ + . \".p12'.\");\r\ + \n } else={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed creating directory, no\ + t exporting certificate.\");\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\" .\ + \_\$CertVal->\"common-name\" . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=gn master-configuration=\ + cfg-2ghz name-format=prefix-identity name-prefix=2ghz +add action=create-dynamic-enabled hw-supported-modes=ac master-configuration=\ + cfg-5ghz-ac name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled hw-supported-modes=an master-configuration=\ + cfg-5ghz-an name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch +/disk settings +set auto-media-interface=lo default-mount-point-template="[tmpfs]" +/ip smb +set comment=MikroVados domain=WORKGROUP enabled=yes interfaces=Bridge-LAN +/interface bridge port +add bridge=Bridge-LAN ingress-filtering=no interface=ether2 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=LEN ingress-filtering=no interface=ether3 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=NUC ingress-filtering=no interface=ether4 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN ingress-filtering=no interface=ether5 \ + internal-path-cost=10 path-cost=10 +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set disable-ipv6=yes max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add comment=WAN interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface ovpn-server server +add auth=sha1,md5 mac-address=FE:82:A5:78:8E:84 name=ovpn-server1 +/interface wifi cap +set caps-man-addresses=10.30.30.10 certificate=request discovery-interfaces=\ + wlan1,wlan2 lock-to-caps-man=no slaves-static=no +/interface wifi capsman +set package-path="" require-peer-certificate=no upgrade-policy=none +/interface wifi provisioning +add action=create-dynamic-enabled disabled=no master-configuration=2G-N \ + name-format=2G-%I slave-configurations=2G-G supported-bands=\ + 2ghz-n,2ghz-g,2ghz-g +add action=create-dynamic-enabled disabled=no master-configuration=5G-AC \ + name-format=5G-%I supported-bands=5ghz-ac,5ghz-ac +/interface wireguard peers +add allowed-address=10.8.0.2/32,0.0.0.0/0 client-allowed-address=0.0.0.0/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-18FD746E5814 discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/interface wireless sniffer +set file-name=24g +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main interface="ether1 - Unet" name="ether1 - Unet" \ + use-peer-dns=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.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.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=1:20:72:a9:d3:34:36 dhcp-option=HostName \ + dhcp-option-set=MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP \ + use-src-mac=yes +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 +add address=10.30.30.86 dhcp-option=HostName dhcp-option-set=MikroYellow \ + mac-address=48:8F:5A:8E:1A:C2 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 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru 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 name=git.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=ros.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google 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.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" 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=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws 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=10.30.30.20 name=garage type=A +add address=2606:4700:4700::1111 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +add address=2606:4700:4700::1001 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +/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=10.30.30.100-255 list=KIDS +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 +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=151.101.84.159 list=Twitter +add address=pbs.twimg.com list=Twitter +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 +add address=geoip.co list=NoVdsina +add address=x.com list=Twitter +add address=facebook.com list=facebook +add address=fbcd.net list=facebook +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=82.202.162.184 comment=comp-lenta.ru list=NoWG +add address=smtp.mail.me.com.akadns.net. comment=smtp.mail.me.com list=NoWG +add address=17.57.155.37 comment=smtp.mail.me.com.akadns.net list=NoWG +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-nuc list=NoWG +add address=10.30.30.11 comment=MikroNUC list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! list=NoWG +add address=89.110.101.17 list=VPN-Server +add address=80.85.244.9 list=TRUSTED +add address=8.8.8.8 list=TRUSTED +add address=8.8.4.4 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=10.30.30.95 comment=NUC list=NoWG +add address=glb.tas02.cws-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.cws.update.microsoft.com list=windowsupdateslist +add address=glb.cwsapp.prod.dcat.dsp.trafficmanager.net. comment=\ + glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas01.cwsapp.update.microsoft.com list=windowsupdateslist +add address=disc601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +/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 +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 +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,2222 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=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 in-interface=\ + Bridge-LAN in-interface-list=LAN protocol=udp +add action=accept chain=input comment="accept WireGuard" dst-port=13231 \ + in-interface="ether1 - Unet" protocol=udp src-address-list=VPN-Server +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + 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 disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +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 +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + log-prefix=Mark-VPN-FT new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=Instagram dst-address=\ + !10.30.30.0/24 dst-address-list=Instagram new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Twitter dst-address=\ + !10.30.30.0/24 dst-address-list=Twitter new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=YouTube dst-address=\ + !10.30.30.0/24 dst-address-list=YouTube new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=facebook dst-address=\ + !10.30.30.0/24 dst-address-list=facebook new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina log-prefix=VPN-all \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp tcp-flags=syn tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 dst-address-list=!NoVdsina log=yes log-prefix=VPN-Net \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + in-interface=Bridge-LAN log-prefix=WG-nat out-interface=WG routing-mark=\ + To-VPN +add action=dst-nat chain=dstnat comment=npm disabled=yes dst-port=81 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes 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="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 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=udp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=tcp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=udp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +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=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=vk.com \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=ok.ru content=\ + ok.ru +add action=add-dst-to-address-list address-list=Instagram \ + address-list-timeout=none-dynamic chain=prerouting comment=Instagram \ + content=instagram.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting comment=Twitter content=twimg.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=x.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=twitter.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting comment=YouTube content=youtube.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleapis.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ggpht.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=youtu.be +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ytimg.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googlevideo.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=gstatic.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleusercontent.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=me.com \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=icloud.com \ + content=icloud.com +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting comment=facebook \ + content=fbcd.net +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting content=facebook.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=comp-lenta.ru \ + content=comp-lenta.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + smtp.mail.me.com content=smtp.mail.me.com log=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gov.ru \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + r78.fssp.gov.ru content=r78.fssp.gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=api.db-ip.com \ + content=api.db-ip.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + api.telegram.org content=api.telegram.org +/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 hotspot walled-garden +add server=*1 +/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 disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=yes distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet 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 +set www-ssl 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 interface="ether1 - Unet" type=external +/ipv6 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=add-src-to-address-list address-list=bad_ipv6 \ + address-list-timeout=none-dynamic chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked in-interface=WG in-interface-list=WAN \ + src-address-list="" +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +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 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/ipv6 nd +set [ find default=yes ] advertise-dns=yes +/ppp secret +add local-address=192.168.60.1 name=vados remote-address=192.168.60.2 \ + service=l2tp +/routing bfd configuration +add disabled=no +/snmp +set contact=@AmsterNL enabled=yes engine-id-suffix=MikroMaster location=NL \ + src-address=10.30.30.81 trap-interfaces=Bridge-LAN,WG trap-target=\ + 10.30.30.10 +/system clock +set time-zone-autodetect=no 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 scheduler +add comment="Windows Update script" interval=2d5m name=WU-script-run-schedule \ + on-event=WU-add-to-list policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2014-02-11 start-time=00:00:00 +add comment="Backup Every Week" disabled=yes interval=1w name=BackupEveryWeek \ + on-event=BackupAndUpdate policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-07-07 start-time=03:41:27 +add comment="DoH Cache Flush" interval=1d name="DNS Cache Flush" on-event=\ + DNS_Flush_Cache policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2019-12-06 start-time=05:30:00 +add comment="Create mkdir function on startup" name=\ + create_mkdir_function_on_startup on-event=\ + "/system script run create_mkdir_function;" policy=read,write,policy,test \ + start-time=startup +add comment="Scheduler for Update Certificates CloudFlare Quad9" interval=1w \ + name="Update Certificates CloudFlare Quad9" on-event=\ + "/system/script { run Update-Certificates; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-11-28 start-time=05:45:40 +add comment="Scheduler for Amster-Backup-UpdateEmail" disabled=yes interval=\ + 1w name=Amster-Backup-UpdateEmail on-event=\ + "/system/script { run Amster-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-02-13 start-time=03:41:27 +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Renew Certificates" interval=1d name=\ + AM-CheckCerts on-event="/system/script/run AM-CheckCerts;" 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 comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple 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="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/tool sniffer +set filter-interface=Bridge-LAN filter-src-ip-address=10.30.30.50/32 +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260415/20260415125717-Diff-Config.rsc b/MikroMaster/history/20260415/20260415125717-Diff-Config.rsc new file mode 100644 index 0000000..fc171ed --- /dev/null +++ b/MikroMaster/history/20260415/20260415125717-Diff-Config.rsc @@ -0,0 +1,7 @@ +4095,4100d4094 +< add address=glb.cwsapp.prod.dcat.dsp.trafficmanager.net. comment=\ +< glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com list=windowsupdateslist +< add address=glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com. comment=\ +< tas01.cwsapp.update.microsoft.com list=windowsupdateslist +< add address=disc601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ +< disc601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist -- 2.52.0