From 42c3863d093ab27d90fbc3052a07d7da054f3a33 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 17:40:17 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 17:40:17. --- .../20260612/20260612174002-Binary.backup | Bin 0 -> 273023 bytes .../20260612/20260612174002-Config.rsc | 3604 +++++++++++++++++ .../20260612/20260612174002-Diff-Config.rsc | 27 + 3 files changed, 3631 insertions(+) create mode 100644 MikroMaster/20260612/20260612174002-Binary.backup create mode 100644 MikroMaster/20260612/20260612174002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612174002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612174002-Binary.backup b/MikroMaster/20260612/20260612174002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..91b88160905729ea3ee45463f91e2af21d48119b GIT binary patch literal 273023 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�A<@_?0cIc45W=@|-~DSmd$#lq<5npQ(L*Tj>a zB(Y3&B4jrpM)JXF6kd0cGCisIbr7wfN>K7&8gYU9p|In6X}}HF{!uHBR)%ojk~dh8 zO)k#s<;MbZ3+cYiR`&-PAM8MO?(-ec^!<$Q-1laq5qBj?hzPHOG@L2ziRBZvyy*&| zDf*c8%PQ<*5#CX;SV<0~)#PNQnHEW{E_qB5WBGqZmuzR$#6{^Bi5DYxyt~w{ztiE z%&HSPc1?&dK#t7?l5tV2f7Btyh_D8OdLs=(S~UA8-9@<|n!#3K2Y?r*ExMe5que~L zV6aCD4%K&)$KOudy%F$N;FBI#`Eac2z-a?#2*fz{*Zz5!?Lg~kS9Zj$X^#ZF+{5XT5hJ-)x}S0&&h{Cx*-MdN?}h79eZ=W`Oy zpNY(laL>(@JRT5)!5KkE74$+9Wu!6Z*mtOLUbYiEBlCFpEaHHp4)qp0DgF!u_Q_UU zdl~*K%NZuKQe7qY468GiI`%bM&Ri15kS53;#;ZfD?{@|rBhx^D_Z)YO~$Rb zUIk%PszhLWCw>O^VMg3chXFcJ)Xy|(Zij~KyTN2qkdS&msp0=nex&+k7r_=T6+JZ~pOXxC1P`C*eb zjLPK>&W=9no;9lpR8~Do`R2F_1&WqP@i6>FnCwu`7teZ;z2H*bbwx6@gn<((L$PP? z$Kh4Uz()i`EG`r0zDi<*v8;xG@x?^=X2!Rs@T~Qthotv(uz-#nsc zO?N=25G>$NzYJI!*OQz4Sv5jCl2XJ^C`{GBmCnnC#rSG!!Bnb?tokN@4f;a{-5Xe5DWW(4?F;$>RZ2`9;&pV10tYBF=aYDv$9Qh5tf z=h8ou?C2Xj`%YYG^n&Q4b76ZToN&c5ZgL+Xuq3WjQD0E@we|L;9)C~WYUJ@9RaXEX zi(=%Qf8pAW-FO>a7Fd5Q~tA##i#l_w(WN4DtRs2oiw%SdYVx=RL2u1 zBz#vDmY8ba3}P%<9>!fzm;63tX^~!DR{KdvA7HA-nS(TIU;g`WS0LD#P5InTGp0Z5 z2-JP+OLxVqe>M({r=_5&5ut`W>c@p2?$pzr#FYlFE zc*?19CFm6obP2v+(I#L=+FiatG_(xlLh0w{PmDI0hTT{R1K~+|Anp(d1YgQL*r?u2 zqxNcFwimTLSn1d`{a;IkHVEbep%%N`7@r>?@e}dGK!=q*g~0e|F^D_Tq2$QMbFx@u>~o}+^% zEQEP5OFk(jcl&O@c`xtn< zY!9ktm=_E^KVJ`s-<6Z9YQQqf#xoQkSUGt*ki-dlwB~{4q;wRx?^&PRd)}S2 zb_5F_g1CW2iGUyXYDAQ{+aSm9+#0#>+kq^A4iwL6ytoeo)tpN{UwUwtiD`qN{5uh6 zS|Ex*%zKZch%!qX9xsJZ89F|uvELuI@2;J(J&UU2{^+?2Qr5xzXBw%w8t;UQA#a8_ zB0x4HKeo`*#GHCyhANs6JmX|5oSzg$^fMvAL?eK_$hG_t4H3(CitIjycDYI-`^VN% zPny{+>J=s*G$ROWc}QxvcSKNV0HYkFI@wPwKNAr_%m*CYm#>ysKgc$o73b2#YZTBN z!g#dBCnF=BJbzCA!Z@)_*ZkB37ez)j%6`xrq?elU)5iP)cQf}DLjv%Re~C#Z1wD2a z_+YttTRJJkAd_+{1g=L9)OV36T%iZI5!mJ&X-*9Q8mVU>GjC*TNaqyx(xg*&UxM0- z1pB&jc%jGM>Rv6QD|G*x{#jHU{1i(qYM?IU@k6W4q1yeYgo~;J4t9U<+Sd>jWg#4e_dYBt9%;hpeK{h7XS#(3 z%Byot&q3#_kwhofoLbxQ`PbgZukaQ5@Fw03;z~YieIx_0onF1{b1<@4_lrDrS;L6u zaes`Ez(*w*%EPEDxbWCJk3y`xS9-ridZ51|dkE0S;JO;a9ocK(IH!^+D_`$M+6U+d zis*r{(>z@ndH~M(ZG54fd*>H>m1F$!qo?8g#8C4SflSE(%gIjTDwv0XQR4m$3&Uz; zj6-F2_9ne!)g#JGpGpS@=Ef@3Kya*>UDwr4MYj`(CT)lBL_{PE({1(~ST}T|^bT(3 zl}Ap{qWx!u*(zIpY-<~mr$Du*xgx5@tVn|I4Y21M`@>s zJpq@{ROp#L>0;R?n)%*3FetTJI5Vj3>L&EK3$>bis; z3SXJ?=*$<1=+0GFZZhAmow!?=-nY}L%Y)o9l2kK zCadVQz-x1M9qH?1D5<@?!)zhgoXSHR%p0&t{_Yi-4>cx|KD6f}0Hd5Rw0AK6VI z9K>XLN~2Ek)6V$43h;0W7`PO7H79hb+zKRE@5@7FqnxHOJmyOSSZvgt1*2 z4W1kMpt#5hFr1<{5qkB*uzrF-=p|aor^1>)iu7AbOa+9cM(uS>{nP^#%WY zdnsIWDJNQ#CUN#w2Pzv|Y{O~jE}gkGWyfft1k0*07At1F_oAAW1rHDX+)ErZT~8j8 zzbdjE0kzzgjubo+_&r%M?N{cW7{i+uV##$p7eO3AZ;mSF;}@4AVPBrA1zw-@$oL&F zgg(zH2ledzb}a@;iWEilI7NR!4i*-{6Z0i#We~UTqc{%6TGs-4f0d7od@x9!aqkm) z)gEKgnW3me3{x=#>(lRlk;)70Bc|!zMG=--UOpikAoa_ake8rkrEd4-Oag!?H|6r{ z`zn(j=B?P1*AR9dF3hv(UyNdxRmYz=z9$>o8>YpU0D;&-uW$sRVuLT(K3~spkZ*Q= z1>LW*0?6?e3BROn_r+9c&7lUw)n0h&ALPlA5F7;ltJkl>vyj!snw%KpfjNltj=fgE z`#O8Qz0DNRvKLxXdZMNG9Wvg%?81*5I-IEdZv6A8=+BO1+not!5mGZV@(2?EL}@on zu!(Uf)pPG$i0}h3v^%X0?`rS04GHcOD|k|$mTM&IV`6cUKkSw5Nqa4~d|?ip(u)yP zO^{6b52F3c+!a{jal_knV4u>hk@KDBES248tfsV}eJ)OvrCUG`4)~Mqk`GwD{mBs(}B<@N^`D`KyO#VyDK!HU;-^`CgskQyS;@Ft9{ptycMQ zgMS2c)L|{>;2f}F3x`6I=>H>b3A4?wOdOlmOrg=5_G0+q3T!1->`x!%{2n77_?YNK zdz>HUxrN+eJ;qVX8vs33XgR0of*YALGsL`|h#EXeDL}EnsmP>Z-~7`EugfFc$gI_L z^M@MlqiBI5I}v*4(*B}m5d8ss{mr&22$WV7nl!cs{5U(iQce=&Z_7O79j&gkif_{!N$Jmo&&5FP@G%7gP3TQ!Hj1T+4iIP*?|ZkL%s=p=ku8kpRsV;ImEF7oO|I@!gx z_m&+_w|i)#S@<7NJ;RcJMUJeZAqpeqd;%;cojQysnzHAa&yq_wG1$5e6+L-In0e2x z%&Sv|6sR+fCdLyLn#;!P5$OSiH`p}DQv-dMh7LLhU2_#IsLmg9411TfPdUiW4+K-W-t}H6#jQ-8C7BwjbqA5f z6>l2;(C#(Y=DnMzv;YCl8L|UOql9;(n>$0i_Sc(#&Q#ibcMbqs43M#R487yBfM-Tg z-Ff5wv6!-2W&AH7SknJ-_T~0Tc{t^*d7suh=INCWS?ka~2G3xKgKNURvw`t(Nkkb| zkhlgBT{gkW)TFB=U9q6~k(SD)du-Ph8@fqfln?qOx}ISEFc#`ZH`aMBW#Rah4IZ(Jv9<5pJaARM$?L3@qSpX zj078uUDPLyt#WU2c;}pqmI+!L)RTY@ox1&-doH41|NZh*HHpi8lu)C(T}L=JJskP5 zx^`7XI~46qWp<9j6bRQ1*&@>;s%eT4W3Fjew4Pqd!)2aL$+Vv?pL@XIn#?0)NNwtf zPSIv8jU1%~PPfP;2LI3W1S&s%nM%2+_SuD)D8-d1_XK_jW{_K7Uv$t^+ z0q;;0^j>XN9}bGvxhEkrw>F)nU*sM7TXoi|4a1I{ouxW5`68A7(>vkw4IL0o95-K= zNAcRZvK1_#2p@nP{lydCAQJQEc~Z@NHY8fAh|x`cx*H8$f_8c|G6@wfHzKWNsJ>)e zxr5UMbQCo}SX4Lg1FMx2xI}my!QNz4%2aPL9K0$H`1-GAi&rbGq257xbs%?6YPA}( zDe-d2fxTG?xmzN4wOcG?xLEwphJM5_aNSYEGR@7lJV1?h#yG{-Ja|??iwJ(&Ct5{3 zhs^r25cgTWHdwd89s0?npBfnIj;@sZvIZyjR+0My+HgaSYQKu5*h>Clwv8YUZ38n& z>AKn~0EOG9xcypm2!%bPAya|;V)~@DRIL0|p6h{!^NLBi6Xw?@L!2ji6}M!)W$-`F zZ10pH-pKLYSa4oD*ozNarV;M1p55U2$D*p92el&K6<#L-`8qa1=fEaTYm%-|^jlA} z=e?5fAe(?>RC;U#AmGQ)qNc1Sz4l6wc&6*0M}%{H?X#IMIOAYI$C%tF)x&TZioO$m zr`jjXbig2n9K`5TPi(1_XH6DsjnjT5{E8&_2i_t%m$o9nrc@FP3b0UmC!iK**F7%? zs=nAVj#Ya6@_XsGZ;U9jqt%VohUmxNATD8=m7P!&?N@G2pd@RS3K@faXuxX*+~NgL@WAsQ0=8v+;XOa5`9%A=iG3-nj7mADf6_*oQWY3~ih{r_JG>MZtX%)~CN7Gkk{OtDHvk+9a2qhGU{q*^NDZ zbBa>k9og+@@M#!KU8?;bG1BAdSKJ6WaDYmk>EH}bJ%$L|mrW)7K=-Vd9f#v2!ocDgy#DNMc;5ES1J z1eI3X+b|hc-4o2=Nwo*Am3F5|4wl5AFEbx&o)&Q#p$5y3!?XMH2N$J}4k8_=U7W0Q zut{26lq@e2G3ikK;%ZoR2GakvLY}fS?P)Slj$!k`Fh{!&th43k6>si5n&{RUZ$%DL zHV$BIZ_FU`r1BzyRlg@ckSwgn?sx(vn#x{cG}JL?smXcHU9DvnId@C5cLGTDCMdV> zb5hrED`)uZ!6^%%%#=C@aajFtH6u1MY4jdVuC70+_0-4KOvo@z?%HS#$gr**A#fbT zXT^4Rq$-%Jk3AFQj_3Sb&&X8Vj=o2*9 zJd0bqlzlH3Sk%v$gcUW zxr?!0LS=N|ae~x-UQ9^4MYRU16=1N690?1qcwY0*+yUV0_GrLK&HlsN%zjN$r=$XZ z=pr%(I@x9W9IX_2wt2pLEeWke)VbJTRI!GJP_t0YY@C9!f>;GS6UKe0HxvWWsnXK9 z(yyYJiTfn5?ugK}tNWIPkqrWEdVJDsXs@%MNev;3<`5gocrO`yqf5l5bjNS^RAt%H zu->)1bk7k`5Kg>2FHK{M$omW+GrG=YI zzJn-eDG_rrgoHEjBi{cDi162g<7$59(`x%+s;baH?hQ)qx+UFJs3r_`w|EA54X=!W z`p?0`tEN~ILOZ&{dR2gI0U8RxdQ<%BM>BL>tdCdb*>P{p-dp@2SgRA3`jfc3?(mc!ud3Xr{)%ZjQ9q?lHt1&QRSOT)|0n_el#m59>^VAye?!1bH} zWFi1??=MI%Rcr@|3ZDiC@MRb6 zuZa5~a54Q_qH5&hwAFG~WYDTF9;)2QhNrCJ*uFOzK+Er3C(N_SY2rsg^s)V{Vw`LH zlgwH>_*A{J*BR-e#|^nh0@6Nb2a4^3pJ!!kGNew%uZD@I)*vUlMZ`sd(v0coL0#H( z1HbneRQ0|TbZRBtDPlUr*Jx^)LBog<%!+v_xZo4;apE5k?!%YVBRN4n9u?ZE z;I}vUBk9K~EU^ol%LROLW`U%YVI6AayR*@s`0c=yUGHR#z0FnAo(@gSe|~5clh@qZ z1}za0&dDqiKwx7DTe{1$PBXip2QOC|%98Kf2RazDO8oJ9gGukgtLOcD6U_%>}5rr0offohlavx_R23ZY~92i(QR^ac0q z?T(_VwwHk(mf2G6z(6O!a1m35<&js`O(>wC8ejh5KqMdDgC06}^iYC}j4f^}*D#Y@ zBhV}`rC07P{%uKusPjUsE*esVCn%%}+6$jdo7nZ)udC%+pG8}BJa%F-gLqK9WoGC$ zRukFHAT(V&Y~D7-S-1hCYfL9VZ9l{r1}(s5uAK0EgJq#N1`L2O@6M-HJ6hNq+BkZw zUe%W66!YP&PXEK@SFr3-nxx~U#;Xz`oIuUt#xCA|l@;_-{xa6=><9{c3VX!ih|?EK z&OjCJ)`~%|RP~qbLWi{H>vtoLyMJ#7hvN5lNvAYTUj?)1JQ3tQM|q@JxE^^~?xEZn z6m4*hJD!R>6)zgivGIe0AP)4hi5*qFI&j__JYN*=;d4f&ECPfDyaJv#<5{wRy345A zCx~o6$2^L(vPER6E`!3)4#JroCt2oGDJB&2%ufd|-jd#nJzohLxT3dB=NV!Fd1yD0 z3S;gw6W3cu%_o!UcnArj9|eo?FL>&R|H9%LX7|g%sB#hEzP@-GFaKU)5l@K9}xmQ zaT;sfEnP~9ot9>H8OAWTP|Wz*kl83!ds+u(CYT!xVNA6<&AOpYH#RZ+XkI4xdwxo% zSfwKaV@vwTSN*6-2l2KkgqoxyMW9}k!pmIsx~*CkbbzGS2K;~PmB59gov(7N>+^m} z@o1N9>=E>yNAb=cHig>9dcM%RVNs|WXSXE^EQETNeqW&1pp@GlIOo0MVL1WDu=o}p zxKH<;kW}4B-Z$__#kqY!CIe!Nmmo`toh#oW6DP5yr|K=NW|)Z|qM6rkGtN=|4oPfQ z)K{RCb{sQZr(YhnhEsjGgE+giy3W)i@ey6HhdO-e+uJ(11FLb-LtJ%2bD+7XQCze3 z^fQ$1*ZG_dxifLY%g;ALbx&ibP{cEd21=HfyE%}Bcya>~7$2ftc|z0lKE`JFn@QkK z_HfxmsVtJu!St3(MuC-#7dpJLQ$$d=A$pD&Zm|o&`8BH8S88(*gUHb-VMe~Bg2bUh zSyLFe>+uuG+aV^q+aLa=IMPa#@lvk(CW?KLw_CU3FalFufzs5l_t9GFdf323TWD=I zThR#)+h7(Du(+`}p$xEeD~2*`H|vGib-1IkXVc3jT+6`xf6@a{LI;#;%r}3xFm(y_4=&fugtrhB>RXW-f>Dyt;V^I)mEarF{ZB zxkyYvqe<^Aj~jddxQda#Gx=`wdwzR87x0=uqP%e0T?zuM(|DdBLEEF*76~U_2(}u# zEnC{4wzh4xunA@zqs7~ikZe%$+CPoi$#~%sT*CEERSZUc;K@uQ&CvZ6NZMfO@922< zjjGM|vhICh=qlqQ135ZLebC_gcG^A-)HD444&<8*<2lh{Txjg}aPf-8PdX|}d}G_r z1YXeARuRy|5$@xx`R&8l6|@u@K)*l$`N*LJ#8e6avlKuY_`)uET|8Ual>q~!V*9%m zr>3Lw`15BIe$*{nOas?Wb*D6wDJm^dR!g!LfkDA1Fr))B8bUU3fqXDzvDNmCarQi+ zLdO{EcHGv+R1y+24kq-DO2bfX;KLefatR&mDw_H#%pqjo%^#ps)__{O4za~i$eRpG-zMk0M2F%dSMPgqo_=l(5B+ErU$@xCb6 zM!i-eruTywax8N0rz_Z)mmXcBbyXnUor0!|e?LjE7YFH?bX!IDWM22!=Vq0c6qfezZ+QR?3px}* zv1xP%M)Ob0jFZSRoeAa_ysEL!cxg<#0HEJL^I|L2(F{b@g>!G6c~#&y6+n~T!OOsy zr*zkFu&R&cKECM}zk1&+FG*OK(IFuuY~-@pMvF7LkM7f z*OyzQVjt@n<7D?bs`9ROl@S?lI?hodQGNeg368DhKhK~}v*YrOK=nTs;1f; za&ZLhZyWuPL~eq9S0$)Ri@g3gc=vPaEk!{Vzl#7|loE2wkt;3FmKN-Z)$-uEef+X= z7{^%q2yPb+L_C#)h8_4$y5p`D-y{Nm=oLk)bSsx#3)7-;gntw*zBl`B)K4gH6dscC z-?wr58*;jwF}1VOu;H$%+PZr};b4Zt#~g6}hQc>BM*DJcCI($p=+@IdP>5P|Ib= zEI;4-F@VD*K;#2Gh^hu<@DgR&m}_cofN9)qllA6Cz`_`pf~HkweRU9W=R_TRShPda$BP?U=_9A_6 zQ@G=;YjYsP$+0R0;9oeMZg`0`7I#opC=wrHdB;IP3MG$S?11Bz#7U`g3gVgaNty82 z8$A`^mi(hWrPWBis8G_np2cn2t6rZ(yJ+qN5ph=3CWsK;@*JI=yLz`q6P!%`bYT8b zEsoW|pq6R9_FTH=a@1>lL1J4Fkg$xJJr?e&Im<(EpUcl@=*>l(dvU3IXia*2s)fl; zc^}y;Hh!Rtta9EcSRpVl91NJJ7;`#=t+g9|-m_GFF=qHgg2xe$c~WSOE1-UVGk3QHb^|ggTHKn2;Ex zBc%?gj^k$4f@mc~!!yjx^Y^!fGMjjF{lKcFEUBZS)?b>)YnGLo0UGmp_*_3{5#-W) zt=yITe9)v+k+~O*Xwd_~BexVMYWaXZVQY1paSLsZv@IrqFQpBr^dcm509X=sw2`Iz zaIT0=MpLB-!O}5MDS9c3Q{8ou5&3c~>GtzwQ|8{+=3g;|5FL6sn8B$I7CJ{Xew}3S zEqOE}dnFT2Dw+Q8ROf>&aIOc&Y$7ki)eUrP;&%N?-3F=yOv(5TQg$i0?$*hQ?-K5! zUm|S5=!}1+EIFqv3FS1aXs5_Pr%#Q~$6r$wa<+pO-=)8y{262PlwGI*Dr{bv&vLLN z|MCl7I^nNd$j%6GA`n=G0z6fNy5&FsFT8O>jV{u!NLQ^*!6Jfe)RAK1 zVE>v0HMzyN%oUz-ijvONUSJ42jB2i@>mLW(Y3xS@gbP4s#eiYs_Nw}oR=gULh?ca# z$e|kO?yAQ_eVbbGuZEdfm(jSI4Rbssi%V=9L~ke11;y1h`YKP%7|%}A9IvQg+vBb& zi5zx=1)xjt@~HXS*W#R*&}ES@s#ZBTuN0<0@EE8{CY?j|BOkK!=j=g$X|Xy<_zR9o zQ6m?fZpy%?Ecs*k7c$PKLI9K0RPx}0)f>Nv<6@j=b=65SoiShXgenw-(@nG|Mz6mr zuTob>akIKt1ZiYr62_8}>6JO}^TiMoI&GWaTGeQjj$C*d!@NfzlhdQ~R+k^i3KuD+ zK85gaF60&gjw7fYnxP0A>E-7L1el?_`IsXJCZOU87c?1o_mooG-*)WR)C;u%`>KE{ z4AJEK{U1v>pSyJIWD$u8V3pUNF=2>qa)&A%f9gY=5rM-pN}Rc%)pouTEDov045>K9 zU}u8IbJ+|Vxwh<;(sofmA!@-{6gT0v(HsE37ofDrS_yyU)a;ubB!sVXU2G-SK*a)` zDN`XL4ckBvD3@6OSDgH2qMg=mz<<-tO|-5~?Oy9zR5J(Yt@AYEZM!NP9r3!Jd&mnJ zNT6we=5k&>vJESPp5^OT@N{>O2-KVr9PUBKkcOpgY8ia8LvpX`ZIgx^7aYXO95csS z5M+*rju9y}_ln@4zCW)gyayS9OIuJ^H~XXNfp1qOXty;aH3NuIZ4Efh)}yO&RAE+a zZr}8+;#$mZTVVpjb|&~xVb8oXP4pCSjG{T~WUV2E%V!`8~TcP@gDe3uZ$8S8B_lI0${BJfWNbbWiHA z@Ho|T2^RZCBm8i@(P#XT_ruyojH0a&x#{Ont#{+MRCQwRN6LwxcSl?%G1E1FgJnj; zKJB9uA>4wTZAel+SXkGT&45A`MpIlafwA%+PNwc(g&%R|u)fNU*zr!{;Bzcedu-gk z`M&+}q{qRgb#vVa#grMqwrFW@?{Qs!!b>nhIWzE-0u8B?bomsJh(tPX!DG!;UKU1p6Qe*+LM zyiLVga%U;K7ew9bbCzrm(K^m$FD-sAp9iv#B}SE}x+sYdp>rlWMEB#u5mM;GG!)8@ zx;7;N40-@`%+T^Q6-0gRbPn-#E-pE){@%NI^w+z_4SD>^>?LtXgjt_Z^u-TK$Lp?y ztDg9n!sKa?bK%lsnP;8XQp0u@MT{}kXDL9uxHJa$EozpXQK$$bD!YOl-aC!?aW6~SysYl25t zJ=BE<$2H#6&S55eQt$Lo^RGx6&fqAi^U;=KBJ2=?#kZX?z|1UMDpGuu^?VUj7v8C? zodH)!%z<_*Pd8aogH9$6ig~N9i6U7#bYZ`%OF4GFkF{S#umSRf-hYa#@({5EeW9;G zLc(e!tOQNa91(;gmP#P0d}` za^*I(use+}jubY_iyo_jj#B}?1;Y~HLb&^5+6o@*?pGvoH!be&r#!el%kB6ULP zRPca6{^El%gzq;|Z|hQH>&ImB*h3?*=7b{%88>9izt^j{gwvOhP%Q+{WVc>&tS-!~ zvKFC=jZ2^t*8FH&QT)-y92MQmhjF~)q*k{LzpxQ7h|%F((N=ctSZ~&WrhHKP&pHX! z!*)r6X&ud;!OPuC&djWOT3PEClv-Z`r-%fI)s+Q%!bA0_*H%FHA0QE}+=m3?KaF&L z(%e4Y8=$Jac}qupCJbcFkTnxy zE|=dkP^F?|Tha3YWBlu5rPhVwpwM&y^4e3-2cI*r7yR=n3% zH9e)}7~zV~2m=)GD=*SUOk_T|q=QAU$Y`3V8-*HkfRX@>GpC19qffd@n@)_M0Y1rS z-Ac1WEcq=tT9CdwFCL`LY<4lcK?0e8SM|zun+IZ$R7@p&h*CET*aSCxHMM}tbIs~- z-xYj79>nfe2=~A$011vBpT9>xIM=`_kZQ-8${w0rKu?-ewWqQ7Ei{8JCMO^ruK9zzcSxy3T(mvsV@Jv(Omk;L06B5HDEZhM~?cFa8>8p zBp-1A9|y)5fv|ZxZ&BWj)x=eB*3HKQH%^l1cD_E}myh&<8G#Kv9i6o{$y}0gKl&yr zf&`?U(_w%5Pde55QpHG4+6lQ{^JBd`)ETrbKY2l0RXta_XAMY0>mZH}4y1_M0{!hdd7vv;vv zg@ao83~ECM@-5#bV|jY`UoU6mR$Y{X7f5$K4T{i9S_YrPX(oQE@eNJaNQHW(BUGJ) zs8Odz<}xn=K=e@TAI_oi^R^;!#AJs3&Lno#0FN{9A~@NFR1_6=%~c(-1|1_D?uqxp z_&#}FODW-xvar!kbwC^78wEeP}R{L$b z>q!IAIw7qWT0lS=dKf2>QX(}Mh`&(TsE8~0$p+PeGl+<=JS6G|vvzvy)L2#e2H;9z zDKPq{;o`C&O9;0K!63LPt>+Pjj9ldGn!=NLzU| zaWycUDFi1iLlL2ZMrfmuQ}=Zv9zOe)<&3>`FVBe%u4#muT|G<@R4saZY?DJ*rGg)K zGn0eGta#)+O0FxMMPYFTtQYg_2Vz?gn=!;3+1Pd2WEfI|>@tY_5`m8_hk2uKQY;$& z_U{4lQ^$vR?ZhM@L)+ioxi(SI>r}?^YoL3%qbdf{(jJ3L+_0m!VYZv3L$33NRRG-P ztt_C@Zqh7ENKRzRY|U}(Ucd_pyM>&B_pR)%GX>BhShY0|^lx0@*NT@y);% z*mYa`iB9HXMKvPvqZ7&I2ab(V(;lBaJDJf|TyzW!dHCQ})X%2Xa5a0OPyBddrG$#Gby}q$C=Vo74vcHBGP!5yE*pW9OpZNIEL6 zY2Zek58*H=61rfHhR2&9cPD8&O#uZlI)1&qeF$j|qC#*QW<4^Zpbiny3oR{^^y@rN zRMaeGb#nicRz7usUl60TFqIA`k7Rho=%K6h;X$zyq$1kJ>97y|;e~IPzXs1-j&naC zznmGq5_*179S7lUO`k#Dg+-}NOznQDpSU!%@xA7cXuy=EEBBkhNCx=F*$i<8Ptz67 zGtKu{VGo>qSi57{gv@jP2eK}04dH2Jk zGLKJmb=_sNX9|K&gsYnYyX6eRQjv%)lHTgeuzW2?&Hhf}+mp`#czxH(`h&PyIf|e| ze&5@vz7TqslW=Fr^*DA8FWTqdTpXDtEdR+)OJ7}ELZr-O^n#vuxAS2J-C7TFV0#{0 zeLMwI0&;j45_5IKP6YJ={=}W z)-aQ53+(Eu-eD~&mCfB6XCtlXiHq`2PpYW(7XLooomFg7qhR9R2pVp=gfk~tV%h!4 zGF$QPr@Gj27nLfc*6vJz5QA2E(pFJ2*fo-90}Uz1tv-xxt$T<%1t&)qk)cO8{`ab( zIbuyvpG#PPs*78o4Owv$wl|B>bFsFzKS-T~f9>A*@%*PyZ;1*-^+AGQ-8>{{z4}rJ ze2md@grW!TqeYDkQjyIVY=vErU``137*j3&7pmni_{U}C^nHTT-{(n!OJNC0Gw()F z(m}3rNLrmSk5FZ?VMfqgK;g4cZ?u#OZ_?AM^QjF7?Vo_4|MZ5?(g?q^GmLrowz+a9 z9#l3%ZTN#4P{FWQ!>X_Kb+NIn9?l;rg-FnGCKD}2#=c3%_7*n#SxJFL-BX6OgQLJ0 zaEMvgr2P0}Vx=D5#tMnx6m?P0?kXl|x*pq&Txq8}taM(}9U^_58CZbrmt?N{{nElC zNx}>`?;TjWl*L3lLAU`lbY$R93abSiXy_UR^CsBlqZj8p#9%J1LQ%V&RW4N|wk3CW-Y|WI!SKaN!jTI)wx%(+ZU%6@kIgxfkQh~+qWLorBpk@G$$RGSCvV*=pEQ2;nBHcD}; z5}%0EsQs*e=NaTRf2L6Y|I7#P;htlO`NXWhNO7C?2sPWdTu@W_wEgC$8=LHv1hcJV zAA#~0)iH`W@sj*V?N;~+SsX7V^)SM@aOLMf9<6^|=cL_7P)H9+Som3F1S)ZmUYJ zFJ0aj_S5Ps1JkI}ehqgr+^F=xj3G)NV%x_vDA<~&UaaNZ6ODvo(^s`I>LU!|pAa7? z2Y!aZZ-}7GR(6g1Nmf-lOy_Sl4+EN?t%E~y&7G3sQ`WK+qA0U}mFAfv?Q&8!Ah@Eb ztNr1}H$p2N>M8ap86giKMWU?Rb-@yB(}(aFn`gnw z9MYTK68pwD765D;zJdFva;Sl595u2#==+hHai#jogOOr#X@6>S0>Kd9h6bmHC-1tU zvPNf2YZZ4Q$}=&oM81!ZlYK_}6BeBIWD$Q#0m|wD$*>yh*-Y>Be3Ej;Q=H0ceal}O zDz9z!)5LV1i60E6y8anV-lM_os}H7FqJsIg>_2&_F#C`E>c9=5eK_F(TVp87FUl3w zi`Afv=QIF(2EyCKwb0q#f+kaAfTQe=knfcbpBaMj^9sl9D-tBu|2vqLQ!>d?*p%`U z%v4Pcf7}aqzqzYUn9}&em{{{9mc3RJ&^$h*(<9Q z*UTj9NO_yIu6vgs8hIC0R>qDkjdW@sr#Fq8pBHd^Y_Z2>i`ot<7EDJ%4Odl@|85Ib zc6fAX;=GpUgN&3t|FW zJkHI&S#Qs4b?2Fur^-Q>xrY?aYYt1adgxLT4IXe~W06=e5zWec1L_E9e#vU=F-RWI z|6ei*x$=m97u)HfL@(aVQ*sKuP)cINoL1|Sme?YIFqgTW71GjOAZ}Xb4`_?njzZBU z8(MJtWVh9s($?MO9oHYV#w)=*N}$UToYa`ygt3`L350CldaapSeQvSNd%YLqW7-h& zGFMWyKd?ncbzlgUQf(t+9VM9~!9q?4btBmn6$#oKnv!WgN@YFU5+R{O)j9}@!~*6u zT9aRuQ;vqhy$TuocD-!CqwZA@>D}I8?1qr+Xj3AwF0q#vS z1K$(qt#HgmW8YoO&)9ed`YE=KW_YIug&IuSDKIVd5zYkLxvz+oxj)XK5b9~3Pvj&d zM~jY49a6s1Gw>3MtuYJMIF9dug2b- z?jm7|y+a8d;0Bra<9CO&>*i7D?j8NLa9Liv+1^w{<7;%i&P|){*o7!_rPc3;58dGo zHI6%dV)z>zAY=8rwcRikPTeI87%H%LB$+Vitoq?~I z2--7Uk!D$P=Vp|zGyR0qjg+;AHue~U4pe3$#w2}IX^1=bJDeX&H%W2>ygr=XRQnqH z7zu3g7ao&Fwky1ii4gWO;HKL8q&H;B$*Glb?SZWt=Z<;LVW6wyG^`1{{!*qngfxtD z!Kmdj6Qe2bg7nknD8lX}M+QcPR7kE5enYY<;(kgtVYl*j(Owwv%3phS&5=F zR*Xly^T2b{EDcYC5@$sMi^Qq>vrWN_Vx$+nji&%0P-6$gxh&R1TKXnS=|DMi*3g>Q zUa|LL5dq+8SQh?6d2*CR(wirM!Oy;qkl2i_EX&?wgJCOJO3L_H2v1k>1hY4g4q`Hn z$(&~vv(IAja_vltc{PQE!isR<_d#C4p98tSF$)kj*L-dcVrr7cnz>8j`A5AOG)=cw z_k~uuW98bpK32m;XAy4-eB!@YOq&c2(3%4sJNvYOchxdcW?jA^*Vd{Weak@nU6D3w3OO0tiZrNwl>^T)w8dvvy?Rpl8d*c zUJAH|6TIMli9$ddYA>Eoft`_7%=dZFvbAZk#*JX9j~wqu-7ZB!AZ!;VTGe8J{q9}9rv9PfO4OdC}i{& zuYe9$3)!LHT?)2U;;%qw%dSQCTh~jE6MB^2$1YSkE?ngd%CWWbX$o5E_%{zED9}L_u@w!z2}Q zjXQ+O4XN5Z^s@gMTdKgH9<3%qLmnRZ>8DRhFhaEVxr<8}_z=8)1M(k_vv=`Z3#9 zFI3dKev+9_Uaqda@bTp?VpSHV;Ggym?HKv$E0WZaS8h7@ZCI6JEzb9xi}m0M9GR~Q z0{_#nSc_a0wBXTIS}$?7j0T{GdnTSq_7&Jdu?4HP$8ruzw6giBc6g<)P9jm;2jufv z$M%kmjuF0Pxbqm8hHl&X<47$D>~jCtQjK?SU_2!&(w$z?bhc-_HFOPR~7_rZH&IXr^P)H#Fwcf=eoh;LLn$ILexP2G7Fz+796N~+EzpZ3y{JxGt@gV#5IUXg$EEo1bhBr~*X zW)#aCW|=RkmP5S2TFV7<0d99$(bhwnP>07p(Ue?jYs%l06U>j#&ClA|UXOA3d34n| zl=k;RhQco16yCpDW{bONxyr##UNeZ&YdM2mZ_o-C<7HU{PYvK%LW*Z465&d%KqoQJ!BN$O7 z_MbYW7`Nz5@ydYh1d-aGyxDH}E*sw6{_cxY%WFsWfLqfuqy&~9gzinB^qL~K_OOzL zD6c1cK5-K>HEBE?-X_j~X6;*RM?9YhS{c*Icvl$QY44BE_%^`f9~>=c+KC-b8r_Ea zaf#83_C=Zo6ZVeZQibr)Xu!dhBe$CRq$Z{ZmGYS%#lvoEkPHriB&Ty<%rteQ=qhlx zD)HIPk%KgE^OPqqGN%~KOdgJmvF@~l)U$Qps1A7hBl@`t0$t82-?3KvriK`eY!chK zlUDp@{^o~sP4i%yMYB(4B)zm8@{c1Pe=xrVRMatSpcDSsXpUw zetL5tS<>w#a=Q1^h8p_OX=M=z+6+rAb4Y*dls)D2sISK-K}b!NW{xDt(LYw7nT5VE zFUaHYMk^$oT#WTY{Ge1`*NhLpc#(1IKtWMC-hcnK!ISjU(Oy}u%93z@MonF{CjK6e zQGsRFyHM|`3YMm5n=^4;k%*z;+=t|PVQ=t1K*L}h?_ix8f?mx@l7+_Ja_LZ9csL3+ zS-HWH!5ZHPL3O4PT*fcqJgkj|2^` zgk5*7nWgSKVIYcDR4F!@I5^l)`5 z2b|dD*&}j> z2VOr9PL(_@2B;4Pq{Bx7D1X%xhXC7b>uOO_(DF4dL)XStH`Hy<>(R$(q&TA5I&O~q zyg(#A5Fx#`zsNi4wGgb*;B>rK?mN|+Qr>VP2W{I-|Dl^WiV3~9k)(`pYjD~A_rsH_1#-G$uVt<`qGX=bF5JRVq$wJ4q6=Lq%R4qSc zNhA~N0CUvc3~o(woA%1Q3EiWg5YZdR?!ZhCvNUb$%69S3Q|)3KRmH&bfv`l4Pg0o# zSKO*M`1wwb3H%g1Y4s_Gb%X&ni@q3eBSe6A+TV4Y)yQax-f&s97)PYM3X zNo)K!HsWcd1cX*6nqG?Y+hR2Hc(*ZrhcwE*4Bt$1rnetlZG=ljT<>P$(WA&$`Kxs+Q2hM(ysOd*rC<>0d1w-mZm@Qc*sUo2?SFSRCwrBKh}^v zg2&J-HB%8uuY#+UGyVXxd-Sp>n`RZR; z;cT(@*k0z$J;U=cOg$0WQdndWflZ!f$dz3 zB0N^EM21@GW*F%ou`L`;o>^7jXe8VO9%~VKcaav0CdcE&y4>hs-Ifh=Y0Ny~nL$6l z{$cxqNW@4I@FC!5#aIr>aMt;<7YC3nUZHGV887~ubU~<`FKJc+h`-NHx%5MuambjRCl0tjIkZ8dIszsDcl1uI3Q~A+zm9LH^Ami{g|_2s3b`gi^>NY{R`t6_o9`+K zw6n@XwmapL;Fdr=ah4WI$BfUR#e4PZn-s5Mdl1-n{c*(J?ZXkL3Eh1D>Af;Id{wIq zZc1n5;BrW)&&d3v4~iKmS)nRF$^ruV!GvVI zbkodXvz$x%s}D2C2hB8eKB^%O&EP`l z19R6(8M||aE`{X&9t+12P$O>bt!2F>Ny?|3kS3_;S#%(rQnMb!vb$3VW=Wp zfWgzL_Em@F`F`OrG}(Wf2i!+%Ijzvg zRO;|ow~Ejr0L(!29y_}oIus_LZ{f8xbe-ht6FtPl1pBAW6VL}-iAV^v&s4J`wfQZM zffkJ*FM*8O{WXVaeT7Lzj_&LL8#)@@YjNkH|4B~|_tk0h;CT~uIkGj`w#9q#!#LMd z{DY!~03VJ7wXV4BP${x@N0hAc6zCQqW-6<0iXQwpAk?&X>P$}Bp#`P%sx1clMpqs; zO7iVJ_;+3Geng*t-lMuWYf_|8EUC8E{=80yxTrnE-9s-F>dS+*-oEj&jwLs7D_=XG zX>4|uEcW7pT*efhWEn#Do*;5)`LB`Ckk;mgc=m3R=K}~VpWoZO$2CnkkmdPM$L6;U z46_1F^R?_t7jrgs@tFbhmK7 zS)-W_O=AKatfs}m*_;P|1y@8|xq9wKwZNnz-kd|Jk(2&jCkLNIV9h4|xv4f=17L;Z z2p)wFKAn2K`RM87|1#5%B50IuO6D2Zgh)3t;=h6s*5)-jdFFHc=2cd0qC8$YV&Uy& z@f<>kS59Edp5M*_V;;Ft{>##0Q?vvv>IuN2)x;+hx-;HrXdpL`HeqB&y$xmd4sLN* zIu$hkBeQiG^bcwm^WzMG*7EggffA5;b1|c-OT14O^B0QVHG3WxNBb57EY$YK@fl0} zghJJL-}~&&A7@>p~gfnqv{Rjyjk53p5$c`kWmy z;pGHXIGP#KJ{QB#JB%8<4n?sU(pVA|I?{J#2cq$le&EI28flKgHwd6L=MHm2rW6k| zfoP-fSPH=|hpdwRp3GVEmoJ9zGe_J6yp>%VY@1hg^4u@vlnB2w?PYGWOcSO`PL z!#-Pi4=LG4=u*3kvM>?^MO_ch*lg2BNlFh@|3sVkm^ItW{iYx7N9c964ATjf^oicS z=>fjFfk2+T^_7HsVecp8*ktF6m2&Clc&a_iD>4Yp1M$38*3;!}6u3R7&Pqve-F7^z zg5_(2<|gM+7MZ7~^pI}~ed_7lU^KFkS)804N%jynR{fl@VjDx+i*|)c<^1~Pk#sPO z0UcaV(Gi{3uJfBJLg)tA{4kLQTwq!=(>%6S6S?D z6sP6Fpo2j=UM~6e!b&X^r9|+#-=XLbGxT}=t_DB*_vUAC0lLqasa6*)yvs{ zf0JTml45FJk4VJE;Y!#m^MfSmt*&`a^N_T6KFznDVhg5=o-!H-hG-^z=lyVbx1qem z+Jf8f3g$EwbG__FFjoMg;oruRz5rs8sH}cFe^gcHnaadSu%v{g&tJt9=ny7?yz~a%xCUP`E7T%asP9t8E2(}a|-)psMQzSRk4rVf&U?Ua*YuOr;jYQuWG)xgs$Ua~&C z=s@4QOKA(GKr~Z3Lt8H>E}k&pM5DzPtLm~Y z$kue1ov0!^h)Qo}T%&k{4UB16-}k@NExG@SzH&w%VKQ6I$9u+TSS_o8oaq*j>o-WU zAn3QtGD#aOEOjG6a}3C{2-iD-DOYV7n8!rDkJ3o$(uyOhjg0e&I$&{hCWrq&;SrPK zh-9vC#PHAFid;d_lqg+z$V@_odI~ zJ-euGS%F3p!@8_%cypFwy`+?Z4U4Zo@}yZAK=n?fF0mDF1X8mn`yQguU^a zn*D!X%54sZXoB%ih)DEkF{kc?r<-D9ZZCaqM1KqmjJaSrA7&@%Ies6@Xe7<=~n)j!dK6BX=3yPPi0Nw7P4m_014vsgrigJoDbNWDWrC;fOA zAfAAVb8ZxoLhMsWt&XXHABYj~!W<-KakDBW2gdvI(}3MC<6YzOvt+fx+ydM)|L434 zC5VxJwrc}j=yU2(GJ_39(9S97xM1h z=PIOTRuW$J)rL8&wDk)iOULZrR?T?sy%pXeTHSUfS=!un0U~Kb*@VS_(}^5wXXh#; z&FXp-u+wtgwzQ~d+#9!|J|;H%Lug;(Y;2nD@f5TDqOLh9!wI36c={HvvD8#sG_nc| zR$6S|g{2A4jDfrpl=8t#n|3L^Cv z1;m&^{9+anYt4W^G;-Q_Ah0EC5G*$Jc41SY%-r(2`yq6m{`$=d5QJa6!t!2;a>n|Cvm>$TRS*l(Gq% zC?AO{(c|ERMRC-&hKcBkXRL8C_ZNj1J9qiWC7C~g?z|doe|MsJNs##Ka=6+XoXyc1 zEmbnoB%1{*T+_7jt!YjKp`-EQA>6ii1fo^AknbNhPn~nUr)Q+60*iV&-budwm}Eb? znz-!#EHy$(#c!gBVW@N$M(R{Q`2>o#_7ZUMApo!0_y|mUaNo z!`l9N#%pf9@B`?opD&@f6j!WEyROMQ*;#(rof`SfdK44&EPn;h$bn*TaWyYXFrAWu z6?JoM4?;4;^7AAm^U{jAz(hB19hAOz%4L^~Wg(UGR#B!kG|j4alD#on6_T^Y4R|IH z9~|hes$(V6@C?rySio^rQ}n*fp5PuyBmjfu<6k>dm?y3h^!x3!+q;JVG`1%MJq5N>iF8YDKIl+fg1`?Owgr2-Rj&kyC3n zc;8{D-b{3e1r7iKPT?!=7Q6oUqhx;|%jXGNk6Uk9N`#+=9JqD8|$9`A%Ve$;PWJ;_`E_C4Lqe^Bd?Msr%D7Yl00a6<`6a|I`7-nX{5?u$_(v zA9+9vB1MO>tDPM1; zgWZFn;fIp5oaR+W4g{3O$UU|7ph3}{yQzaUN}OERER{EV^oGbwlT{J;XhrpJ1c4xz z6~YAlofxUu*C~3ieSG*izJtamb9CgdUDoR!Fd?AKSlV{Ax5(g2^lSrRcP>sNC`%fY zX>C0oUHjSi=mlxSGutGl;+@>x3H3iiKLZV2vcvNuBcJLp?LcN_7S%Z1@cGozTiL@7osQSX>Kw+mp!8>nMtO{mox zsMeJn-N%A#4I2)9H2Hp!$=VP2^OL@`|IsPz_U;%DYIz|G2?M8G{EJZThOXi63j6th z0!abDb~ow=uX22`jT=(40d5=y2IEMH`jV6L33fO65=n{%pkTDoVJ)E7x&>??uaPJV z584g041vL7tYmXv1*P_33{X}S?M1?^v#ii78?gy zo3;k|rhPjVzs+$u_&RfCuGNMY37o(nE9E>MN|&6Y5NYC`aA;pDwn zrZO937ye>R-5mR|84u-@E=MKq^Z^%qVIw`GHK0TDkn2hzJQyIY-nAe1#sez89!WDs zQdhvO4kmC*zlaKjD>E61Qk%9%&MIpzl?m828%+tsKqfQ0*w}L)MXO98J?x+;(7u(B zbmC@nj#KS_w;;whY6@(`v=$gCUu-Eb-VmrtX2YEhk+H#xOdo+ba`~8Zly16xiBZ`> zYfZnHo*)_s?1D81gRx~rxtBZSlpnpRh60a=zLJz%)$Ow|Q=|e`B2tw%k1AQOnt26B zPpt$y;(1R2D(SvQj&cd+qo+Y(laos$Ow^-cS<1Z1^^c^7{>PD+(OW22kV99MgG%HDH*>H4w=jq`0xy+K{o%Sg3=#X@g>4=x1lG*%sj}DLb zkVsc6hXFA$=Gp(0dEUgZn`7lcKV51~Hxke019jb59O5`HHIU{-4qVeyhs4_PLbg%> z)a)4$7hr<2GsIqzy5P5>iGnWIEheA2eIjiK9CP>1)~uvTsuvt2U(o;tED3mxiO8ct z&p9Kfdm!q|>RX1-LbVsCwXm%*)8BKLsBm51m|4STnJkk^vqrJ-%~l4E|OSt#07B4fb`M? zD-@U^*2uPTFj^)8qFW7Ga9S?*ZW31*-pZ5<-IwIQdzUTLKC=Kucb|_yInXcBUT7|; zTk6Jj6=0M39YLs}zTf{otfWu{Jqj|=7oBmk4XNv2h(P;gQhmPz^l@7OT$Jo0^B{^y zm`Cirb{OF2vL}#!7D8Kl^v%%VD;^`&dI$_;kDyc0Ew)kYT{Ru&3oa*lNKERDwnPSZ zpwjp^|5#K!D)?O1t48&ukAYdUg|W5h%n;hEIfQPZga?K3li_?c?t!Vc=i%?H5U{Sg zwe7>e$rIp9o0HVNW*2l~OCnmGDv7ujndsQlJm7x&{NylEo>Nq4y&*r^V81qo%W|+K z#bZo?(i*EYX$k#!#|0&x*aawH=nqh04bd?G^k+fL#d#R6Zi}x?9ah}yo+qU|sEc}T zQfP+rq74DZ+v3%H#OFh@=l04BU}8mA_ytz|!&gL3UXu!`u%L}RcEwnX9UF>Po4fW% zZ;|8Ts-a>_kb3k8FeAdms|ks(D8HrnkGWaJQ&iLJz1cC^+R_;cxPW;VHu!o17`kf8 zUz#~>HhuhxcO4iTO&V>)q;5hJYj|01e!CI}ZGjtr|D)T&N;TIL9h#)jZtW#;eiAlV z*Xl#pVyn%6uee7usG0Od!&P+74_c;4lc1s#mS?u>z$!|(;CQ@1RN&ZUoc!-zH$&7A|2m2Nrx$#|RUNRjC(Ra-Rc4+4pdF%7{2A z4gs1t1uN0G$nLGz&o%0WmVFKl`|M;aJv%s-?LPq<|oLlru&^Q@0z z-zV{(@PNZmS`ZlH--D%So33R+8(T*NEgH6P0c|bu)sr!YgTA6Id`+}137z~fda^Qb zoI4H4w>_!(GJc4lg)LJu;oE8eO{%CFaX$}W0j?qfQ5N={HMt8p86&kRELiIByI!6t zGgc*6R-OkjPVoDoi(^ZwKgOd34 zmFJ+7 zuMY6vG4hW%vPW(Uv^z4GOOE+t zusKnwEWE5m7tjg_E1dyr#Jw1uB;5x4rUN>uFL0jR?@;^5loK23#{4j(@F%x^db{)n ziujF{WrahmK5@zE7tY(0ir&DEpD{kkaJEB~uSsCf7+Ja1o!X0JF}hb7Sa)~ac7r!5 zHpAjG$2gOjet_{MTUyWkvi>T-G2=qc&L`h=Y|^H#RcH(`DvTa_6|q^h$1LCpXo2AX zXkT!*GZ(4c7~|ei!~%d!b^HvArTDm=Cln&*tIDlv2(fB%P<@B}vGn1sA&)jDDb-L= zvp!B_5lL7V#EWmm3p?WwI*dN!Br1%kgvanDjactsVa$u)7#~G|h&{ zkDOK{@QnzQh_1!g$?LUQ>f$_kj+ChPF{_tzEHL&`v-ydJpI%D6^@g(8?%V@WID#D; zikF9idFw#8!-NDlvb-%N7g_!ybF`6hKa{|oy~}QRa59(rRYLS`YIu|-#uJ#K`#SF@ zwIi$N=Wa5ctWf3daXqv&)C?of!YwZ+jJ6gp+$^`o%OiOO^Hw!l$7_o@PilxM34rvB zhPvu-fNnGf`VL?x1o}>weh<6YP`jnl?ih~!MdRG@F_I{ zJionYn`adf6;imaFVj$HuDVRc5QAf>pyg?h^YR=PbimujTb@~~DWJ#&MpS#|apPDB z?KwM@#6txz5g<2Y2lVlV(n89Q1~=}c%7Ik8m%ml_UZJ6a5H88fHB?#0RZMG4DJp2I z2stk*q*$T0rhd*6I6{D;qTi<;6ZWXPe_*DIkxn4IBDn|lB2?;U4?|jh#DID!htp|K z!cz%nu;ZVctKa6A*ckJJIxY4U&yo&o4)!B>(j?(RXzj>vE}k^o#D25F)=GxQt_1+? z0}xwm^?YrFkE?*EAU+_znHypsIwVyEdZ(MJYcRyJPyr7QQiW)ou zLin!PRH>FlR_ay~Pj9m%nK{+aTAF$*QO`Y-Su$x(D{*f04??ay5H#zLxp{uxNI?Ky zkZKeQ&vDpN|6!iI$elr&{)pB7Gk#_NyIh1J>E-6=SnG_#1~rH!i#v;F&6*^uP!iC8 zLzC|sBN~k*aVM%GXwvQluO{2R{&&0}yGf{(FoBr*;mv66>oElg?q~-JXHQlI5y(H! zqZCQS_PeF+;5B*Seow#HpB(z1M_Qhl+?7Fob?=95w(xN=%wGa{jbl((4L9D+&m2r? zIT2=z)|EQ+(7pGwW=qeqluw;3;M3Lm#Uk-0g*l0MU=qm=f7eL=DLY9kGDdDDzQ}Nn zE|YTmp>NXekn*LFGa#qP5C39Lg;YYRK^ZUx6{l5b+D5ei;c#@G%gb*`p{A0f0Q)l+ zlTgwSi9po_7pCW42WW6dEqpl2NL)_Rl#1CPVQ81 zbuY8~>UU#fJ97IGj|;1nI8uG@gH3uDK6#-shT2*u)gy;nmX^w0#-9ZH$y?pP2jN{h zRG6tOj>3^8y7Ov;U2WQx7~pvKh$iU(o=5gPBs~xD0R#r(SQ#yzLog9zH_qQR4Lng&i_8f<3gqgXN<%kd?-W@L6+rtFEFz#Jx#mE5ALDFdF9`M zR^)`(_tDqtTXrXxoeOdA%G!BXYP0$uxNRJ+7*X#{k7a+b8ydTyo9S^cSb<}=&l&W`1Mq;JtXRn=4GrIF|)Rq9@eM95!?)ONV zGu{_LIB>MyK2l#}u3h3v@LF=?_BURdf;(<}LaP{ufhWN|h8v+8WXFnS)>5o$xki{8 za3BJ%G$s`i$QBh*%FzmHlR=#W(V@SlYJ14p;#Z&x6wXMxBbN-Akj~&NK6hsgGm?N% z&CU~!>z^1$*DMcPZ%JJt{@pjM4w>NV1VMm5M#|I`w5km;^o4kKeUZJ0gY0YZxLdm} z)u8kCNx<8z@q!J?v9H%00W+- z_wc|=EWDqaRYaFr@(|r@R*B=uLJS!fhdV$Ug6>flia@K$5L(I)9bWPkMC#s|OeRm1 z!JgO5r%J^>{5lh;&+ac`ne#rwO8M~x^gzer+}dZAj{B?F;~KT<9JWR*YQW)bq4VfA z<|ESuy$hS}w9u~l7T=czJWTYTl_GyloWCm(A+G$nG3<*aBh|=^Sp*)n9uMM(d4fS) z2@ki^qC>7(1Be#JJ)7l&wSrISeRcNn((scPeA>@q3F!<4(r4TS0GIj5syp>>Tz zKxRUSiaO3{KTTMn1jo*y`j3mkvNje1Iy-sOEtiNV&U`i|h6_XP9oPR=mVthF$UhA- zW*tEjkbp|TMdSzJ(hTn|$?=a}aoak?Tk$GT4H#Gwio=}|q{ca>G0E=~uZND*uKFtM z&csyXo9)B>BP#g+9DS%rz?!c{6eo+*I)pf<#6&xzl|di}o8(n{do}t2YnY8>c6;Er z^uI%ait?-uEbL-g`2mC2$gH#czL_lY)^jO#iA1Wwd2fT!2pQ}^Ee1_C$x13}*W7E5 zl*x_X*WhP*v$YP@cYrJy2c?mWqgV-gpTvefmCkJ?!_7h<21R?uNn!2j(}2*1ER zRkP8Q!QH4J&A9WVE@&bS<%~x!;?K2b#^T^F7v>t6O|3HY+ecqFl*CW#-<*i<;TY=Tym}8^r-4^ zUiyhUV^D>f8K$&qc035d@=hvy<;sba#)aA#%oHpwZy-W&K%Z!I=*%*12u2X$Iy^}% zj_NN-#>AYc1#RO=BbmckdLmaG1(K;{SrevkqnkSPoIYg}xdLWJ<$FLHC^Wi}ip0-w z1t6HrZKlJDT+tvCJUJ2hfE(cl(ja0oeRqwPZS;^UJ-85Ukuq4Z&GXW!j8A8$?Vq9I zc1DxH3IczFO{L6`SY#=3x_GS;!);*(T`4rg1i?XMi1x-z#FCtzvcba>e88kLT3>#h z4vIbi!v5$9ZaBA54P%}s<_HQn;`WZ{*i-M$TA^p{|0BR(P<(RODv_XdB}&~oVH`vR zK*v2~PU{+32*mn#j#dE+WD_LTY-;)|`vqxq?Hs(NjoPOQYmAC~mz zDW1L*4VnJTSzUj61kI)0b9k&}tR37OUG?ilTr3~OsbMcPOUXCSFVL%!oWHboR7Il`BW%%FyZ8GATqcWM>oKyyXtk zp(0K(J76>U%#0d>To@bnIKJw^vbx7=O|$=#@s)-rbu6*h9Xn}C`r7N!?bo3`1lLI4jFFue~2z)U&{kZ3F z^e@28fK^XM7)PRIHp4Xp;2ufz)?R~6xuDRmjK|IyHP$JJfLU|Zsn}?0fx3#v7N;jeUd)#Bbn_R$*R3k|Wm@q; zY6c3_PpQgv)%@{RVOPh%WpZlFqIr|>mBBW;gV6FlE`^J zFeMe_IC;4$#NPM)>mEHOa8Ew1Kqp~@20KPDsA%$!i!B?{Io;5%T!N>*aiyV8{jy$3 zK5eL~P@zaV{`4B4Ev}4To$mJ#y+hZXj2PewqCu3>Dt?VPFn19duot|6fdp+-%ixe^ zosfcq!wWDxmK7Zz9$Pf^Hz~@B)eAC74cy0(u14U<;QptUp?;Yb3}7(P7fKc_PqFsE zkLc{N*=pKUOS)Lm!YAS9ankvOpc%=FSqMZ)O~(1P$#2sX8E3_*d3^~Sl^XK3Y+e|- zu`MF{vwkuT8O5uxs(PW1SSO~-1#fP1KPAmGIX|_j8kMGTFw-71~RgBO)x$~!&)^(SA zN6aebmG)yZT(baQ_+e+npPsmZrZK`rI}ri^;DxY^h44vFpjIW^sDlYdQF!Yrh_K9x z)3JEVv$T7Q!GBN#$2w6;!m*Awxw?D49sg+rPh%k_lC3CIO8oEus6{12ZkMMN+(>-) z@GK|eG~w!=F@x^V{~%UE`yzDhfEf6mqq_? z9Iols>Qo>D2*c_*#uKN<6Ce6i^Y{rIB=I;Oc-o>nrtRmz7mGqMKH4N!3#Cx2hY}&* zTZ<@`=So>;jGE;>agsb5T>v?b>SA|IniP4oLzWzF7rh03-ciD}-Ua$RsvBDQ)Uc<# zE8Bgy^4*SBrkT!75F>`=hEbF(+43c|Mgc)UInL^K27uYEaBO;KR~H&rtbZ2=|4ePy zmRY!@J2z0Qv7p&Qfc?w@t7`Ce5Dd4$hWIm4SE=jFF7iv{=wz7QdO*5&(ibna)^#-$!+R(H|cciS! zpUIZ%$5~mIz?@vh;C6m_PeY`iNgbcW-f59;PO(`xS+mK=wwS#qHGpY`*bnoN{>Ma1 zJz%04)Ue-XFCQM#OLkMF|5r-V+~D%C%dM;bgM!7NLVRD81Q7v{xbyEI!1z)bjkemF^OlsCOOmFETlTaM3E$xwXuKSV;{%pn!n~XEehZZCbJru}N zpzOPVzI>M4#RQnR4zV|_I@Ze@qCPkWUPdxOTiVBQ+#bY#28C}2q${1~r|MkNC!6s%hfjjSaMYJ~7 zrl3UhK3aIa*8is#AtWoi%JOL2o_YL72Q&s78Jb>?Gf?B);U7xZBGC^ zb}4QEQl3BS5cvNTW;(VQhn;bOU?+ndM9^MRPQY8H>BLQ{7Q^9czTgVCK`fpdfW)*~jRZhhP6ABs|jZ9m!XvZbv=3 z<##ZWnR8|idI6fi;5b!GtK`xW0Ls;a1oX`=E&`-!OwbN|)2M~ox*)#^zjZpsI9m%! ztD={Cli(m9PNm28sqhhs6JOhGX+DA7R`oFQe1U=xJ9X%ao`-tBoCjD+Fw?^X?&V$V zkCW$2poCk|&ZP5=omEC*C(FN0AZ>dbLR zx&1HY^`8VBgwn)fHd(IdVB^;Zv~aN4*yu=Pkm;M<`a*yE*)xrGBcsqJ*Z&3>t^Di$ z%zGnL)en~>6QA^^PrM78`QUOdb5q$py8B=7Im+fI4sArqc;k5jU#WE5&4~6)WCH_d zV<Bdwl zaEKfb?m3!WY2eQrt^T`WXs%8O@Q`RpNUp3O{aS}$ePVEdOfzN*k+5=N(_P$0ADpPW zjVX~)IqH(Dgjzt63u_USqe?`7-`M+&Q{b;jxhTfZ!h7+l_y^43ms|9>0OzvlPi0HX zlWD3^QaRRqhCP(d?pGPKgcuih+?{Y*X@su+TGs0$@_jVI^;dhlPRJ>jJ`wXF zTeJ4x0Xz(lVw!l~VpB{@Bv;Mbn{OPDzulv19J{gxd#yY%ZL4M+dx0D72dj?#h6?vg zQj-(F@%Vr>+OrZrt2PkRWMUJ7gmAALVLX*_$+!D9`J{Vm!%@ZrwMc?x%|&b5Jl z0{|^zR)2bVI8Sp^a|7<169u>8o{)N!(WK(Hgsb^bIP3aeg=k z=_Z7aM@2fi8mD8H)>H3RcO8|fCeU^Kv1O2n=hXY|LH-U)pdu3OPNDe1^g4nH#-}G) zoTqMcqC_22395hZlq)2R?ORnvPo)N;MQ28 zSHB_oH&sN8mTbQP6q{7a2erT?KJ>*nE=ihgNSGp+!|jtJVBadU(8n5P#f`~VQS4to z;@$o$c5LJSk?>UXd6~*rW_(uO(R6SI4L+~2;Py2V{vKgtL^TCDV=XFleo6NqZ7Fln zm&-@K0g5LvnPs2*%H%lXzv#s_fkC=I2h{@+E-h#9u)lu`WKU|ZoF0NPHJm81Wcp9Q=n{)=3OtZgAUYkzHN#O3Sd;*4F zb2}APM{rvwc*==-ejv-wn!*~JmkUG|yQ3VOPqXx$P1bUOa=(2@Zdi}TfxtC}-LpbG zCj!L)S3=Bg9Mh$@s5NsTW+5ifTmqY&d!T~M$WAi&0pubRI9fV3)6FGnFmmZYF0ftB zm5FlY;>gQd0NRi>*zDFd0!EesvX+FFwUrXgTMtOjC8QWYPaci>jQ!y-C=g4%73^6C zn%fBubxt~&Q@Jx#TV5%Yzm6}IFs;rj6TZ5$?4%&7f?u>qJes=IH$Do_8x6mjgoHI% zS{TKefGs^me_AqxMH@a}(Y0YUhm6wp`+}^Y8`YZi^X1XoJ1aj^GXPI(uO~%=w+P6d zoxN&L{xW)lf~JH=AExi{d1-iT>@Ig!8$b?|V5+i2T`5^jtJxXviZ#&5p)0t}Zgr$- z?g!+eLpJKoc|?}Wv4*9ZxQ)K8KU4Q0JIT$1>u{?Q1)0NH)KTif_+RDPaE-=zCkme` z5lyUITfY7jej7WCDHJ3at z#8svIJM(-AxHN$iq00IV(z$R!!c6;Nnv@)Y02$HyYy9Q(IcHC}V1c|~`|qQI7_w1- zVe`oizjY1iRny!kBvn^3SbMUt=a?&=ZAY`_2?5?t(C|scJ@%*BWlf7nVI@+GIrq{8 zu{|)-Tscr%WS^bk3>9<}f~?h~Ut1WX)kVW-YhfzeC0u`&Ajg%XzFK1&5i?OF&@##E zJYj*v?k@9VH7Mh?7bnkL(@^9@4O5k-p!UbR7gJ5E7TmTA&r78PNSIJpHq0hJ*L9ES zT#9lx?Qe~#M`16^;nV zjj&)Lcuxkso!O4Z^g6~ky}9&4`R7g!B6?=<1fQgV#-C6)z|%%rqvoCSXV-Aw#h9eA zT6caUw8jDfSqsocXJi3+N$0&$1LOa*r~4+P4GrJ;DOh5@?nT(9w)jTggbs2>`>F_k z+mdXH57+J!BYo31uJbNY1<-wvUF9QzU8;G4 z@P(8!lm@j#U)KDNWj}K=3u@zj_ORxSr0EBcODnq#{wj@Vu#-5zqR!Sc&QY0O1cK}H zo6pwII5$5|TJm`SS<}b@ip;+L z`@ZHso#kV2d_mT;Y2TKf+u~_h`$v8Du(gfD7azH+eQ>5S-qn-*^68>j^JfSR(k9ce zP`sfeQ@UX%k`7QNE_!bsl?^XTCfF=t(_pUFK@b}Wa=382O{uM@)NA=)4BvI-rQO}E zjEY%=B#JDl`DTv8w!?Ex%Y?pAUu`v`{#veo_Qfox1Kw=Mz*Hcopz zJ8sFSrO5Rd~3i7N5PpUc4O!Ifc;r#kaY<8 zD;HlTV;7-q>#flT&}|%a|0?&jYYmvX(t(`DvhXS1%}Hhqdn6XvE8+kU8^{6pO@d+UP1&-e6Lf<1o;CvB7rlU*-3gxcn^n({A(ejFBxrVfJ7+C%dqba7ufoE zVFh3K5=4DKAJtB50N5J(HbZg*hldi@6&-x6iot@6RPK~6XOxM+;5b}*ko455Hbiom zyWm%IddqnjDF(N5-aeAK@<%*!;#kTeyFn?lHr3=H?>fG`5_R=ASOt?cx;TVz?3dYf z1xvnC90PO4{7=@m!*mFtd9wSZ?s9B{St=eakaXr7 zezb)lPcTja2A@;X8c?o+952zanG1C?jww{{fiuox$wx)+^%_H1iY5~!UKM`Za$BJ`yFR=HIf-zzdXVP)tQK0!An&>MnMGWlK&*8Hj;v8WO>*drtQI;nqsppvbH zHR_oK`nE+QgE5;`NuL$)gOZzUmhT1}6;f9TlIrah;Sd`_yE4dO#fX#yk2eOOLkO{?F>;kBWNZ~f}q$A-Z$0&fndbyGijKC$K@L!3S4^dke1Nls`i3v z3s-3Mdm9ausN}|dcU;VsR#EBoW9;brCSE|zU@CeYKvTs}e<;hS52&#Axw{A?nKfn3N5R#*FA%-G2ZWoMTC`< zxN1J*IrQ3Wc`5alfc0|w$y!(b8#bwNCY6l9w@Vy}@l@*!r0z&`4H2(Gk5#&YzvQMBE7gUp}QYA&$dbh)dwg-v`mZ&t_siw6r{}ZQ=~_zB4s=8B9D)d{Wpx zszt`!siAZHI_PvNKF4J_7$L9iG-aPI4qr+M!=+0gXxmZ;K^BY|*-8$NavWj0m;^uJx8-m;fl1irQyE+s1EE7-WMIho zobnQLidXaoLrZ9KT(!6x&hLYxYW-<$^*?I&qajeqdvdh0k!%Se;zt6~2Ir2Y#3L&SGA6=ei zxhd+aZxr5SY*BgM;&}_aeF!GAsdqdE&}S0|r&vm=XsM+Ff6H!Wt;B6sWcGQs`8QMX zO2dNcjjMuIt@+wu$h3Y&k`$bz_xsfJIre203IDhufl3&9n9T^&^-iP5YII!TG~OTI z;zDCWG4n9gOr+R1lxads#nBPhYm76H3Zo|o?_FEJCLy^XvEVa(eQ^dGz<65|9dzhY z-f80(L@(^K?%#!JUZ@{}*k3sZF7Y1zSX-V@rU$C0E-|*T`_sTU7;m;&f=cAE%psUa z%I_rtz;;ubejxPS6l_v%ig#coTVLu5?xQPkwNu_w!F>6Sdj=^VI0f2v{kWQcsvvDH zlA|H;>-)W2*GOE#>VdYiwoFDi|CoCjK7|M%)B)$Hx%=o>P*#l{1`OaMPuD;Mq9r~G zI~GmGS2DHpUOWLtNq4J+W$k;-zx?KT^>N~M_y_nQXDhblPF?#h_t$DT)D^Af*_K{D zM2?e@3G(X;7eRWKrz=<>M|~-m!a-5as!u`w6w4lsa|}7a$EnELt@p$|g^y!t`ChPGDmsb2!ynG!=(fA$mqI(f1Th28g$*mKm!u77djZ zhp9Nmg|kIcD?(LGB!Y^A_d|z`#YfkNiVd9Jd}?}RT6h?ZKJ(4ED8II*aoIddt06C2 zcyMkggJtL4q+N#vCs$-l2v>z}R|OTPf?Jx>aGotD8A>v1J$r@!6EN!_c?S-uUSLYM z&|ag>RP!0X3y{GIbY2I+)+x`2pM{Ua&=@CfI+}zuu#=GxWeTuyo6JpGlL93b3VP^2 zoYikYLK^^8VTAGe2C4<)F5_l+YCaWA1*~PgWYn~ zASd)(%q-t#Mo#f6EefMAgKvJ1oO$ru%tl3Bv=;wV=t80V-kBUE2v0MfvPXd~w%$5g zghj5Xe;bzNk_#mBuJCVA!OXfYy#V#^eOlnF&8}IwZF+(w5p2I8Lw4WLkRqiyo(99Z zDK@jE$E+-K#<$X`|IYnL6rrMkx7vscEq;rsHYM&S*J8mJvyvU8SkJTOx-vfO6vj{A zk5Y%FA6NWVc}ApVv5TYX?+pUk^({jAob+Xs?~zY`VDr%GJFP!?=~7^+dEKfW0uqY= zs^49Q-ZkOYgHZihGihu*KNLjn)-cCbyhCYnMC|rKEu!XW?Vd$gYR7k z!_FRUYO^=k7R+DMe1chU)AxesF71@$M$O?`&%E;z!$p5Bc<3?)bI2UdtZXTek-Ll> zy>Bw-Qi`^tXWBtZS`z(p)bv?)PR@O&sPX;!rI#7}N@|7)v3Xd*0>MNGQ7U`M37rmB zMzA9pC+QTb(+#(DtxR%C`H*B5Ijx-LH>DIshU@n|FsulCj=}BYLAqU`Jyes4=ULXx z_6{~ct*5+I zsWjz@U&-?}-I$__`!es3F$5$oAr0VA`|>0~x^1yIP9Z4XFqZY{bx(Le$VYXLMC`Ec z_!%`ndp%%gNn`6!)R)I~y8};yP%l~iYQrj?@aJvyWl!DZ#}zUacW);9+P+WMPS0R8 zFsxjPzNkyHT9!%E51>)9WV!EYEX6~bi)PW_BFbTB5su;PK9$}`VOyvMhJI%PcQ=ae zg%ky8ikYm{98NEu@X)gLXigMe=)Ad;7Lv~vHLG)0aM7)ny|k1wN%Tn<&4Pwl27 zf(imsQmCA#=dGiqy9q?AM!e@ux*Wuwp@KOzBW1K>L=Mh)ezR~0`Ei~i%(P?M7A+CX zC*k%f$*3s208}==iRaUbye=C`>^w6z%`k9P56F)xX;iZUOJSnxwvph0=H5&o7Mdb2 z(9gW8fFfQTyAA`|+!s#BFHg~c@+-h%5dHzxf86g$>D18p#5e9o(NR_W&^_E$E->0g zH1`B1@yU9kHA&_BtZv~=dr2N?V12<}5h7r-OJi|HZ$1#9iwI4N;XWDMVO5#o9W`MK z*BT(mJ{P!}qoEDF_S$YD$A77$QK3gUcD1a^S^G*Yyiy$2qJr@7{V8Y&GaJwv_*M^H zFj0&!sh*)vl@8YTdUCt5!fN<3{_^KCCi2Pqm3CtJozc~f!?%UqF?MxdkUx9lFc8E# z2{n!cNODR)h>&E+Pyr{asE1-%zF(*e%PO%p?ga(3Ttyvs z1QFX90i0Z?$ z)F_gDt-#ltB^%FrFKJCr_j6EJ^oeZ%5;G@HZ;Xdm?Z_Q{`$nyC*U-yIe0Ns^a=U_r zeVnVJ?bq|PO6&6ni6X|)d#spMUjSQTcq+7>F2Uj=7jE~pDarG0u4ks^>BEa6Kf&9F zUeJk^W~>V5`$X#5!Q>g1*gil6FC16$4jdB=SD@U~QZdtJQJ7I$+(LuNnZw*sqo}}e z6TwRKcM%x@EoRYR#F{evd9`a$78B#6D$-cB+O)pb%5Vb?cmj7=M4sK*s$g<$; zjve%!A}#;8`dO#_ipmHNzBN&tO`rWA*`|iBKyMNc(Yuw!^Z*I9~;*O!I_4YAN!92ZpoJwoV;^N*voqFC~4ZHi7&VUyT5wJS2S9P|Q4xWJ-k4COcUU zsY^TV6I*G|_vRF>`A7kD6I`VV0X8p%=?6-)NZ^S!Yd44~1tR3)%gV?o)up=UW3+`XJOqLplGXN9O1?e zlj6IUR5)6f+>HEKci`GmgI~1?#VV{m<;_q@fG(F5-vZBUr%V(}ZMMqGIh-Dy2$@5; zhf%faew^lqYC=au^9(_T+7pVxR{P45U*=*E7H@2W0*JjKBuN!~qZ^UP7F-E8LAo_Z zf7%x|;yzKib{B*@_*x&>SWstwxd3Is%r1#yTs{Y9jYA|3DAzl8e)LPWMo@S;wp+a~I8Ky4s)^!I{ zt2j=x4a{3^mAUKtdS102pZ98!|7r7l#Py;H$!+5frDR*>SfyQVK^p)-Og0$JYxSu+ zNhxUFz;7IDf$K9DUhHGSV6Gf-A%I78Dn zuC+km@z0dXx0{MByv5y9tR-PgV}ahP_V0 zYUNlztf6o6fQNBkB8=7m**#S{v&QJ&{y5jp3xA2^;p5W2aAp`DsECMQ+t0G2&mR>T zruUp1mNQ$zuT8SGI9kQGvQ$(Iv@A>#Xai4lXbk2GC(@eg#hP#^x<-9?Phmq zhc(g!8t;GICzLnIC}bnG^L^3sYpzo`P)AiMk)o0^W%If9y5e^4$cD4CDSW&ZL1@|j zt7%3r#NhMa*73arAFYDvf7BDNg=`KSpRmC#ef0McG(F#@T+YKFT1^58c;q++JRkvX z+QSOeFlJKomX7eQqeqjr6A>LR5$E7I%6^Ly;G8pj)LBsYDsWNEEda^&%Pi5BaHe8r zF!0X=PrhKI9&*7w`sfu)&P)8&$Rs?U;_LO6St>H*(jRO@nUN z64JW$T%9TS+!-GZP8?5YlXcGw>t3{@e?jV*EgJe&P%UzD+l}r*-ONtfxYeOG@ttOn zT=6`E#^bJx#E0HzbjK%;`6oGwD4e;_3R97(`a?jphSVVY zt+yTDKT*Ri-=+E0oTb2RN&kH4~zf=^qO8mdM*F_G#1i@IlSTCh^RZb%+(!G z%DI@?+uI>!ZDo{=)xW9LLxVJ7U@YvM5-~Yx2P)Q*PiL{JoMF_o|3^i2e|olP0!z~ zDXx7R+T)82&a`+mDPh!hFQZvor+Kt9AF@jqda3Dm9=Ta1Zlb!g^I$dqJFXKcUJw64 z2?JDPzRBH^7IH8=K z`x2pUob0D#i)(VIQSqb7MG|89&!vN$3!ET16;Z`ywGJ>FcRM)Vu}_m!pl;87R@hXb zC6zWx0l6258%?{bTq_MAQ%zpR&po6J+u8JQQqH^Azt_$*cxAZ4>sr#`6V+A!DBH5T^_h@!F=(`qD*CruUIr)wt~X& z?xgzrnH>rmS+zRggmaE(4{^)io`s?G%w=4aC=R-u%GSLyolOW^7JO&>rfoGyE&!tv zFF}q+TF4{TEvRw#T+K@Am3@vy+B%C-e=&b;^}X+}du+*@wXiig!KuaK9Wo6TwIDRI zYfGUUgVRdP#LFB6T#q=W1gV5OmmlV?%~1O0^60zb)|2v)Qv3>mkMZD|MmqD`Kl|_V zslXq_I>WRqd>d`j>J^ktX`d?tf#bfL$?cl$UNMUTq1e%;e&Zvm`=A(<#RwGMqbEJE zKveNAD2VK9!n5Wch-PQ7B;0ggR|2?&4I6m*Q0q)LVMIE;jmNHmIox&{)_y)aPiXpU zG9L>?{79%oca82lrE&Eyp?>;9wmxs9gv40>*3d;{=PR@575Rvea0(A>LhEV$4v^HB z1st6ZSXy+^q}NPw+X>b>h-ODwzj#rB6_Ry8gDo+-s_qT0&q8E7!BrIWbOHhc1T1zX zo#;yph8VF*Piv54{e;AK+<0E7J@5stA{{uPmcjLo_8+I&<=ijX)AgVuoH<7^!UNQ8 z89Fc?whMQV{(VG?(KoycSdT{eqKV95m-@sqaO;!jRBYnfh!2KX-g`o;tJ0DT0qQC# zY3A^9G*Tgf!G>Chg*;BYz5K8Ebp$2avICI;0N8ykT4!Xy+(7}WxXVIzgd*iO;qTV* zX`PqUzy8-X>=xBkMQ+Bzo$apMwlwzO;_znyN<6!WGOU!i_}8 zN&TN)r7+9X+Q(#!EBCU5>`}{Rm09yviR5rQE$cc@a-Zu2c3mu;^qoTs&1Ot02K-1E zLpIkUfR5HwCRsy7TjzG^`oy2YV6SrB7R2AL31 zOY6mpy6I0~GTZfucL~P)je^F?hbU|deA8PF5naj>-%jNtVU6g7FkS!d@#Fud)-lAdlbikJ6&+j|F(N_X`j|3c(1pf|A+4=h|f+n<^%10m6M6faJ7 z;KbdDI+(Qs&-C&LgIdxRR=bDq)^y1yIPJ>~5tg^Pcr4xdp~VdYaso_r&mi7tVPeiy zi`@nD{68LKv0h}6l9Hr&&8ZM4)W4E8dzG06$AZ$l>lB1DA3}K04bBtQp_Sio1t!?b zk(V_9OSNIugIus~e2rbHHfG@<*2D7XUcmf3V;X&F$)}mdUt`8=Cl!%MD4BDX`qwl@ zU>Qjd+_y}-(!yF|a8SNs83sTj&eDIn6oePLm1du1d8F1e@3}|H`GSBSBtsA(lmIJ` z{m==#;>sLXoh%jM^thLOW0N(4N$l*JJ)-HThYZ%DviaeIwIQxj&i-69xfjI^z7|$< z94I$5vBhMWFda5o>fNFyFycC(@C8ubFvULD2l;ip4f!~= z5l3`7OK@b3UyjyNal~RY^HmP}SV0}GlzQf?bt}fOd~bsQZ8H)mGMBzp>ogN2oU61K z*w7b*{!4_ce;baUwuYiXG2`u7bUD~YaIPhM%tvM(qhaM=VK{{Lrny8_Zo_FsaD#|B zttfO{yv0Dv0{?>gFEBT@1dvQDl+}@prUvS#>#A1bjWdr~(iZ$$ z&K3zt*9Ozvfk5CvSmlaSxO~Qu-1I%fmVPcKQ?j8 z0Ay~p&3~>5(*4dvId&@h%}-%x1;$D9T?>r3rOAI=KS|hFHld2LReCp`UK0-@ z+JCy;o4uMfBm6Rbu0A8P&W7z_1=)o4#Pz;;MZxbUFxeA%$pVo3ku10BiPC7*2BDeR zVEk4}%`_r=TU5$sjQ&!LCPDMw zpRC&^s@x0HK%}e4@5~aqN$yK$8TNxtS1WET%jN9jyNK`v7?HrH1{*&rTF zj0CGS9Br$Jb_+DlXYOBQD+ZwGFFzpzMw~$wsxo&-IUZV`*64DP;(YusC=>OgdP=TK zW~oQt;J^J3yHp(i^-HG(u-%UAHvc?mI(j(`cK&x{t>v3Y@EZA!_Iw? z4lUnM%V>>GCu1qD?8rwXPPfkEnQ4tcpy0R0QX-Efrfs#w?Ou^6CNxQkL9nB>2n~9= z3*)c5JT+23G*#PS8&=OF{6$Fib>{}S_CMFuWF!sijsL%}Hy5Yti@9}mvrWy#C_$RYyt~+c>9r zonipoZ+5}(ycGK+kV$E`tXyyGNh2Y7fGbSDc-d2mt{;#dtf0p5n}Qg=_vV~bf6UUW zaNI8UTCz9{;IBjDC~J*2?GhKZW|vYI^j3 zX5_x0dQ;-QQAew*BbXp7cT*6NN87^d`<0Ni3r(4!dYQjL42jkJNAa!UfK&YNjf6To z%((5zZ56jHW_*=(A=yI=)B-Xy&&9X`$GgQ}rInnIFT(2X5130# zj1feRD%jR+bl@c9J9}pm(DL`TEcBkj<3e57M}?OpEc?%TYAf|F zRwb9f0NsXfof7v@4#h3a1|Jh!HpLOyV1475UTZA1fO7>(eJN%yR-Gr-26K>A* zKOcV(JF_e7y(ZcFo@pQZMW=<(tpy+JGNGc=N6p~7rRD__j%bJx1uDJpE1Fkioa z-7G9+MCOL<<1xc*l9{8=PoTwbRn6t))%88!_@Km*a6I0puET2R5m(n2lPlIoXLYO6 zgcN@lu0uX@*yHq1i`s_W4|WbmsoQ*pK(1OoeNVCuJ-OjFi(FpA%L3%c+$X4JgJ$1l zq)>pE&TLr7Nb1^74>%H*650J6TEol&CY~$|&6VG#!)_K@?hjijDr)0F#n|2R(En~g znG+f}mUPJeJ5L{7rZ9xmlTWQzzgB^s#6RIUvYhyqS&G-Pcp1s*Vd$7V8@y3JJ51o} z53xfPr?mVZwesYM9G{U0*3;HNS2Dg%+QP#GHm)d{@^cj45vO2n1@*>rvwJwlQ1`x0 z_~s*x&I_>j0o$<0>jc>M`H-(vnk&Wc$zXs}tt~!@%oV)LYpq$g5l$%A`^0g<-L~bm zH7{AHs{Dhv0A#9>tvm_1Z4&Dp92RGFA!JW;CK@ez_SX2U&pD!(nRi3;t^j!$8pSoaq-WdpcJ>C5#|I^W>xs><>OtmdV1RAR4>4NhW}h(wS7LBEW>`Y0Gh zlY_AiV=CzuXEbl+mss(WF`SlaDIckqYbts4_2KmBTHhp>vwaX_!Tnws_n>;!y0K%WnXG*jfLF`m9+H>QC?(c&oeE&YX4@mv= zc!oQsUKdk7?B~k-omimj7yVD+aY-4MQi+oM9J09H$_h! zglaEMgAdJpyOaLCHy(p(El598iB(s^XpoY74a_+CjEhUh96SduPA%eQk-Yjksy8|> zYv!iObI!`r<#(CNpdE)ET+S)Wg?^EWxB-xJuQpHtmXwxHM4-<2Q^t=(S+adg#SU(1 zjvQgmBf9aB$rN5B4-;h_DJHfAi;jr-vDS?m43PUfIwlqCzA*wi{dG`MF4}tW7UU0b zL;Xooru^}9|j#Lu`h2wLp$E4BjxzBnLZX0qz@w$l$f~}1tZWCUBdK`ffs;Sf-DlsaTNto4fKDM-oYr7-{X|>K&lV@?cJcYCbRuYOnUbj(NO*dt^=t6w;vh0X(i| zbCny+#)~jjN7e9(Z`q6Un1D-*5JiR8;imk~+JC#pE)t&^4IVg|PRbjBr&Oi?vqHh~ z-okE*lNA&r>3L-V^uHJ}Z_mL!Li5|D^fJ02gC)%mtSgvaFjkA)J)1&8>N}HgQd=ER zmk&{nze*k%uND2E^$=)}TKqH*M`RJ3dPh@XSP;7|er!=4#`lD|zj6Dueg_g$0E4U< zg6^VPh@YZ|+<`i~VkqZ67$enUn`b1HwVt#(Q_et^?H(lt4=p}OO=6Tts^B`NH5~G!XSm?> zrYW(y?|jy)cWa9P6CCkp+katnSqEl!p=48LDx{kqz?m*2-r4jaK_ zFLNyXg@G>b&0p}w7C5ZW45GJ0&UKXz4u%cuXeG2*vn<+#P^I}Uoj2a041=M6;qwE_ z;3*5wwU-HNs}Iz~qn92@Rb@Mcy`a94eCS;b1J^UKV_xZE!$$BL0*-3kohM>F_7yT& z@`8BtKR~~WpdZ31KZOE7VAfl^;c~+idef&5-^_01bB1<%=#ZgCRlm+CHw=~^o^sLF zl>o%c2yvY+AXUHVNzTKc1Q3uDH3T0FucE%sRH6&zx+iVPLy`#?8c(yK0 zLLScZ(GLs;VP|jWI=JdWh~g5#ogmT7=&$9Fw8*VKx`flAZ9$c``Q0f9(&%=?SzqKBeea!m2eG1gVSiU4e zqS5=ozG~p5*~5rwQ#lP1nC@Y{FE`}&Rrm4h{6Vtl{nHQDGbF=dj2UB7C4jJYJ*>rv z0+yubY|HM5Ke3p#)}dT&mcrSRm>-&0zEts*a1?g7-(*2W2DyFbOb^=7_Y zw5pe_Zp(l1H9X<(mMqt76ZEt{pN=luQ8a2Bt(B1#oKpZpLyn4pIQaTiC&T`P6MDFy zrW{+m-DWE1G?QV;ig^ppV2ZNFDpJDox zfbelb<7Vt7#fek-KvWKD`!ySdLneP<_(G&1SO?`{=8%!N_xsHT4$k^@8?V}Zp+ z!5QF$y!A1vt$fL21hAoCwEZd@u>Qk*!CKmBT2@cVxN`&CqC=Q52s z7b~rS@=gpICBZw4)LB%9qW1kI?LOBNT4&2t3T1|a`lj!~yy!cqD&`Z4i!sPp5@y)? zr?UT6X28Ss3nXKYIL@^wR$1L~{oXcw|7;20d`#NQT$vgCio9 zVYmWMcSFX*dtF1xCfo+wmJV>L)U+qdeLk!p$?Fm_iAAN{h_Idc2(o<9bbBDa?Hh_p zxWwkKBX?x&2W9WOGtl+3K*o(RXtvc&TP|R>VNDsM&w}r?W zDVd})a&UP+3L;9#O@BAh^zq~T|se4|X;8O4HR@jgUP+P-9}Qz!1Q;(f@n-g0jKQMK4F*@f(?i9J^bXZ;1QWA zs4}5R%Gf2z0gt~GLRL_ONZ5d0TlGW3yTlsf3(6ul3Ip7!)MEFC)=xu+4|?!Wg$G6b znZvsy2=KcKpm|&?#b3C$v@y-RAeZVgi~_sP$T5ks_2*Ex8t5TIO%@VGq)Mw`4z<@* zC@1N4ZeGMnvd(D$q9q?5BzJojmBIG3fkc21mP+cWW=mua)1^JY4(KSt8%O96;67dj z8!+xNzel)9wZrg`HW1wv=Nl%`m zGr;5z$1k-hp=LGuE2UyE|HWre2wKJ)t~=y z{fcw@@%ICzG@BYJ7CM?|+N%Fw`iR5^C2I@rd&K0tO~afAGqf%bljOf|^H-{rFX03} z)Agq14-@^kAZ!xSLK12r>8g051_R!etx>Q0SIFn>F3S9K-^+B+i5}~jDDA8UC`6K~ zkDmDZQRFN6`5iG+u84OcS~YSxO>-r<1WSLN7m~1dcjh@5J_8r3SOpR)qlTzWx3pqXi43`I{W* z@vMq5wz_*HW>nMGRH->Kv^MFcc?w@RB*Ydm2cpH243`jHC& z2Z?>CnccaB3ao8YNxyIZSy#c3?#7j=)9VmFm>9o;N0c|x4)nQz0^Wn?)~VF0B7R|< zyQIc}9RdysIUH@POr<%vM#ECMp_n>#>i5aohzd^gI!hp^ny=FNxzPhfRPsoV!r$s#9_` zEd@C}Q2#}C|H#-oBEQKQg*V^Rk{$YXLX>_f{BK@aWM?HGviF$3R%$j6X%!Y4i6;Fi z<;Jxu8KfY`?71ogrLnx(1)ju8699AfHxwe-{8i@vijoD4Npp3!M_YcZm1Ns^oc#k5U>%z`jL8^bb(J>c%guc$}Xc@)eRa#x@-os267DsNB+(Fh;e zE|-6xJB3Ya9ZcoB(^5jm%?l3P!UBLQ_0;^7kV!E_2>{csi!on=p*pB9<^9&qonxlS z271dFU;en7`Np2l3U;Ub=xH&FyCo{pHOqD3{QQ_Bua=V2C8oL?Bl$WK{vC}Th1^+# zyFn1sS7P}q6d|AUsR`np4y!&v&zo+H{&C5KlVJ*@9zO>Zp0+_;n#wpuA{;d=0*h!Lqkq`XoYZAiAv-k4|NgD6g)JB>scX;(bg;ts&*M` zpe-;`HDgd=2NItyTgpRavCKKom;aBP?N514aTo5IR!Q|7ybc96BM{29co2RXd|PZX z-?J8nhf4WfyPNWX3ibPc9`9<$)K`!qAFbpnxPv)O+k)khOc)2tV%*M)?Q{7!sv+!z zNwd9oa zWBqAk6nuH^QRYIBORv%P=hW9MW8T$&&&!_-Wt^hcTC74Pl_M%+n?pLGiTy;NSFDtj zt3{C}8wy(IXE_!d#k7&FTI^jRFu$r6?LZ)>BG8rgYBz( z)d&x!=9*P9bpajHCjn6>f#!fq7JN$PF$uB^ha!^+wPIEbVT08cCez^vVn5vRjOAB>(5BNZ z)EZv=8BB6kjFrof$i$X&z<{uQtsh-qG;c{^ck9Bd! zslMht+-fU*vqs;US~|3zVbX}PPjE5w%KF zhK~LMh0;ttR^vA{T^FQLH0=v$GRr7QI#4xtYW%YD04navpVC|}rB)}w!wVxV>pi~% z)fP@c zFbA1w>iOHWtF_cvWy+3tT!w@+sg9n31EysbQ?RA1p#y@Z)* z)?Fxj`Fd~pz7&ij!2433Fyl8LFclR0!yt$r?7WikCz;W$~LS3Isna)oFH2? zWwhobmD+6u%4@0&|k6PboK4!trxAF*Z58C42F_8Y7iqcgoP98blB;2xB z26J-$KqGr>OfC?xX+y8!vHkxGE1#kLdme1%JtQ@mJ0is7(q-7i-A`U=%XmwI zq-0#vidlqQ`#WXB=vjjX+*+w>*4#HOp-H4tu(UL0hGa4>RhmO%7?^-5&&;_LCk?TK z@WnSIwe;Zq-Kj=Pdf0u*-Exw8@06x03RIHW5#@^kpr_w||sF zj}8=L`we^i*JZJCba99L8b;}!OD8q(QKXob>d2(Gd_xwt1ZSmYmxT-{-Exb2SX%B7ihvyOt_A8ZHryvi{&ep* zfkpZhV3~VWLy>eiK7B6O1xuH$L==StgG#~r%c-W`2!>3!hFkt3Xm5~X;&8*$4i z4>7cIcv2l}gK74UL0lQhSupSa!Gl;c7!cWBk%>GIgl|5-Ui&Mk+XDphfQ{?A#!?wu zbBQ^g+08Y1(?p;=Q1a9gm#xcmKlv;sZtGE0t7T%iJ4GZB)gszh_S7Ud2&TH^^}Dva zPFEc#<(vsC%m!5hRDY{wiQ9Y8Fi6-UfACtmCyM#okZ}*G{91bapDqpG5Pshz9BSVU zqg&f<=k<&3?PM^kKqXBl*Tn=e0)v3{j8zmYSeI0^Jp}rJHLWcT*>cFnI$$aaE#A53 z9Wz2d>*81TcKaCpc!)%4ni>jm{g?z;)tB+4-c_43lotaaKeDrBAR#H_eJ8*6wL$ zPe<2-24oE={hHgAJ^u{xyJe8}%*j{>aiuIz&MP~7n3Sr_SCur$Xt9b>S{xv3)6io* zh{nPZd4n&~r`6SA|@B1$NIauj~KY65zs_e&6GuRSthihm#HV;4G#6)Bh(_N)rsG z5sZ@AGUpMXLq8HiL+V9>ix?9O4bTNC*YncucAH{B>%?hBaC`o}OHE|Iw;O635arH4Ae7MtbaZlZq@5*9aP(Jh-=0A24*uz68Lkt zih8RgXlOPJzy;@adQIAy1;Z0ajo}ISpm$up?zJ^S&f$#s?(8w9Kp8wdPG{%93rTq> zCgE$nQc>dCOkmV}MrFYOn>&b|C|z_BuE_}w<-vjXblP`SjEcohGDHN#&YWdtmvf`31?{?IOn%FG1Y|AaP`lj0vI;z(>uj>1P1F$GfMeLBD{MdCD5cUbB#Nl# zrERnMq+V5&?zCqPqx3+wf_bMQ%M!jogIiSScZsdSz^7Ou^qc-&7%tj3&7!{V05oq! z#5Rk=I3hol+8*GOwOB&u@*p3<#YYoY4cNNFyC>k?7VS2xHF>}yStV@olINTuHVrI$ zr$aj#pyv30p5LD0jMI31Db*cP4aN_&RY^x+<|zDvfZ?j+D7q<0gxdfTZT>pRNk$-j zF*5)zk(c!R=M?xaOIZvP7AdMjwwbTKy$GzDi!Z^*5?He1og2ny@-LiZ+x(q0LIDUQ z4C)*Rsju5Oudr5CPlHY*Mc7W;2>}uvPVHuL3WVt06zuW1w;dJ)sLx=-6mN<8ylahP z9aoa}QY)OvM*82tqi`oPs!_aAYb?b|X^G76(rHrl;p5?~=YAhf|Ac{U`~B~Lddv=6M|{rxt6{7Fh4F6uMo!*o^x>rdhTe;Qy4hor!=9yLh-c?@Dg~ z7Ix{{*CZaA-+%KTU#l>5tWc-JOdQyDoYf(G=feZUDglMXo#>h#rMeD2yxDVRpfWZ2 z8+9YP3yazq{-MEWKEy$&2xXg}S~J0pmPU(4%oVHR&mM$bC8x@CA#JUF7%yu1ho~Av z!f64q?14!R9oWhEoh^x#2_4y?YV@Exk~OJJG>mA(Kl+y?A#}3-2|6s;QCNMLSI_SP_=()KtZ4E8&rXNI7KYA10Ztiy_JCU(Q0#&U=TX}q$ErAg zv9Q`1u*zfuih@Mtns+_0%s;=`TU@p?>yu#NZ9(+W8iJ@9rPljHl!4U{Y7L>kVf8BAn>3w<*c{){?CIM z;t!qV_WayO%sm_c13~MNhAHOf10M2|r(;?v%a)fVhDnPVt=a|*RRqnDe7l$BlqxLq zp(s&<&_wmc)ZfLqD(@zW0pigKFqc<`*Gp#)Ws?-H;}nDxu~i9o7mate=a1C~+ZOjK zpIJX*n3eCNJ<`0|biBsjVLzKozcsUclW$B9l*E~1jE&+zJ zZR>pOq}}iE{Z6dfB2_{$Mec-8xA<^=bIc~EdSS8Zmt>#|M*-#e)8E+J4xxz}6Opp% z@|Kr_IfLf>r&-k+SCD|1eP%-MkZp!wcMdY6ZDQD$lyZBJ9L;&-P@M*@;JL&v-st}& zf?T<2`9|H^8G|k9aa(6mMwf3#0M<_#Ag;GI@Ds5JADHHA{ z_!J()9H{?em-7;T6Ir+5_#}$awXFV7Z0f4qk)okMn<$nwL}tdv)pa!f$cRxTbE-QG zpI_)$jMA#3f}S96(Y@inqm`uGk`YUCh=SOy+M%5Vq--M5IrKQH95+Yt%f+|Z|6)K& zDoRuF#>Oo2=O5(4R@d$ivgoo|t?E5bV+$DZ7GOQU;;578$Zf9d(U7D7k;L)A1*g@H zmhVwya@Zhm-@I)RM>;*^g>G1&uESC>;d8~!{E{~T!EnHIKg)>W7K0c~_^k`a&o}ka zQeZCULpM44P87-vCDt%t-|Z7nXu`Dha)3^*ELAJjH{tR z``(o|YQ(+Mf%N#Pgk|Xq7G4ySPvZ&oo;2uU^wjy0M-=Zt~gougD_C8rYBcbZKT@A;n9@ z9N$kpyDgJ3PHu(Ok-Ub^-%-R-h2VwNhHXWDO=OTv`+E8uAMwqNfEO${Ci4A0$CAbN z%L6xLA!g#rjK-8feH)`w!vkA1*Uw)$iT98IANXK*CRNsJk1^Dm7^VOtQ!`StTIv4D z6Ox=DN?jiTW2u>J0s4rSYkH-fkB3NoCPm9skZMO`yVwGy!GX=sp*8}Kbm<|L(knWz zmh^yQ=9iG?+nRlreemi+bmH*BX;qHY^;LqNy_A&7z^06*LW-SJdU7#3*H*s5QDP*^ znNzRp!cb357BwYaa(a6C~*9LOYNV8HpdFD-HM-D{pVwVmN9YWV7npdt#K7-9G%bMa0nXE}-ncIB&L>uu z7x~fU=mo{HjgtftnDof1?JCy}PQB$DN%T~r1(sR!3y*r;jO)bUfGQgpgruBRD@n@$ z<&mg+2#Duj?cPC&QGARr?vttgD|AP_K+?MyR1%s=)>L_|hp$u23ecwG_z@e~mN0KA zRir2I@3|DBk?t&P1;|{pdUdTh(tx29f0{T75fYo49RMglWP@-d5r1w7n`q5yL)~GM^nA{tr=pjl~AY7m}$WqqQZ{> z>66ZMN~G4bjy{N%M@uf$v{EOr#x`GL__U_EWuFyLf&qQlEDey+qc8hiVCJaoDo*gN~Iq%7|A=Kb5F)omE?k?Ck|3-IE>2-R7RG z$Mnl5rAJTCv0oUildoOvNu~Z$Dj86O9ZVyr5o}O)InRZsDn3O=eo-t6IuokB+IbsI zNxD>%BoGo?k-UE!s2#djDlb>E945ga@xyH%K`8@r1$|*q9v)esPCsqDX>zd=y#{kP z5a;%ARXzH{sV5o{8H$#yg)ex_#G4CjF}qh~HQ_6q*kui2`LNvswVQ9S%|Pglaxp2w znM5ifMbp^Li`-|{Vy^Pi3EwICK5AJ}3EW+=<4|C4z z&<1kj;BOd^@@7$uI`bQ-V}F}o&k5sSp@sUC#X|>R!cN#U{oD^wqRPd<|G>*muMlf* zExmcA$^-tZrz&f!Yv+scgcy+elvZx+@36pZO#Y!6f+w4+Zmp#bp$xPy!)*Z(*C5io z!?AS3rvkNc|*%k&$VU2neR}x=p-C0&{8{beN?%1Q8!Xe zv-?k<&VM-log1563#to<7^ys9j#iOoEEV9GmokcWKv()PsCI?q$CV`dQ$ep9RN<^KWUlL%OE}MbVkx zq*B*O#2qvYkyV~U|Ngpun`!U2At={xvz&dGN}O3@!wo36vY+$D93chLMXde*Ehe%6 zUMN#l{%NscwFm?4QVFP}H*oJIZ_|?H-*%_w`C@NxAG3}wT;it4zos4xmkhX!fw6Zz zVbN3)=Lsa~S`OIu-~$zKUKG>W)5J~Jf5IP)qxKBFn}Ta;#r!o*#a!RvRRa!&yhLZ< zCtP3Lu_MP0w#Kt*SlPXDpPcMcV?tcb-NDvm%hH9zj$P*7fC=a#8W~ghTK3FLp+v!z z1ju}DT7^_qL7`eZY&g-5^kV>_CH$G$f2^pUQ?NcpTU6uAhlz$uw!@LcmxUJY3!^TW zZE^?!{o==$HzJ^t&+m)n3c7SY`hY;vl;rNx1_;#rC}A@6vc}0D?)gbjc)8App)N-h z1|!Ibmv9;_F}*LTtJ^5VZm$9~`TSDW$L$JWondcPDLPU5A?rQa$4ny*weQkJt&_un z|8gkCNqx0CYLI9QfYSJH(@Qk?F`$`k{t>j8+Mz~|cbI(BiqVmT)0oKh#41p@8KBM} z5%Pcptd;HRj>yYh6WjD)B`XSfnsU_qOuLMQq%twRbsNJaX24>(XF8t7flqTd5tYrT zuRcniY=tdT+WjsD>!jTF<1rjJf=t?t#$}A|kzWSW)=#1Lfe6jGsIlXc>rhSi<7<}H z25P+xf?IiMAyeer4rLmKmurZ7ahAQYE~(0=dc?g&ER}wF=%$bskfK z^emrb>Ua0YcWmA)4J%WrTRbckBVS5~ueppEn?Mrr^z1>kL$WsTK8So)U3wGi1Cl`OZE)_du1hS28nivg*TNmODL5Q3q5=}mMS*5S;oS-#Ew$;@5 zdp{A*JHU@%Dj*XP0w+9wCSDE@gu5DJGUv*@&IG;E)quYGYaZ%j1ADIi7YMhb(0Wd) z+DULp+zS-p;1FsnDdhMmc*c{$AK#l%A8t}Sw0bOlFO>t|&o*=XA1LyP90fyFISG^F z4lwWPyCsdW0J$+O-2!1n%HqllTPR;b!OkG(8=od;6U{BoND8lETBla^?y-4n|092J ztL&0QuU!t3Txdf~O~qezvTQu#Bpn~)(osp@S~U2}(*Y=Ml;qr9z^q?Cz#?F*hQl7` zHvUz8OraUgn2HJB5Zw^4ZOxh_!vSynD36P1;f(g1EZQIlW*@~O7nZQ@;&15SL>eB1 zAS7|s`bFF~yRkfjCow1hmv?4IGNq?Zf4hND2AZDaf^gRu`-0}RS!f}7KdkUz+T)cZ zrIvl05Zqn$LH_MpqB-N)#oIQ^g0$&DDb5L7vPgT?ngnu{ZJ9D_#}uc9{G16W?0|qi zaV0>2l7)IPh2eHwQ#t0n69CVIJeAsaC7(lkvkBY8(osn`C`nHONxOu5t_S&+=>?c9 zC7YSy62%y1)jui;Y3rZ99Tq(%)QSv`>a+=94H-FBLH^S{B89GX#aaUE)d&r4l}@fNKE!8A zFV&cds!15m7!_KkTGf_~3#yD3rvRM%;LogYCx(UK?b(W9Rk4B`qo>3zDkywhXBU6@ zsWf;#;-+tKcUWWnWT2g+Bw#MH(Qt3Aa;{4!pLsMA&!6&h(LIy{GnbQ4SEuwy5@3io zxb}&*W^&gYv>E-q?CWWVfZR#*3rd+73aer9>td&&UZboM`Z`8OeNd5FKZ!n2mGeSp z0LzP(=|M&DA#;JVw9vMKa^rVcxaTr1q6_L#Z*tAUk#>=M>hw&HfIj(yBn7q)(hHX&RNq}eG*^~K|$El4tZLoEadT@IY52zgW3 zDpEJTUOv9a#d8nnmOqyE6vR@l*OOtole4f>LEEIE;6u+LL5i%%Kg~*>$8)UIie%+=VDnPt}Y8a07r^lO|n*JIP zDDBxTsFDM>67i8Jj+5b>P&Pl0!3ik@o;q9-z~idQL0khV{Du7j;!c}?9z;7Za7UgV@V8NAx3vlx$vrO0+(-n6+j}3~i0*`O; zw!zO_>DBDWh%HYjTj~l3=0Sv(?Cv*hU*F(sdU|B8Xb!6X5i%?*Cp|ozO)RR#e`Q;X zM-c_yD_`v$D4JN>)?S`1yhy>U?m5x;dWvMW3_iJsDjI!!%NoAV3Yx0uQfh7vW`-`@ zZ3Uu)b6*oX8D1?g(@U111lWOqQ~_S}o*9LH$hp%g##@cNH;0}iX~gu~Z-QQ=1%2h+ zn$qwmQ0!9dN-qMt?5bctiU@To6GsS6tLgsZ+QQua8Jl73Sam`{J=`E*1^z%dLbm_f4{KED>bYlA9>ZMTXTaK+!&MCcj@4) zPF4&gfA=~*xUaMSMNc8(0glAojt2dccT?4UUyPqm=)B(Gxsi*o*?BTo*FGg z?_xr!zjj%vS%CyKdpa!*X8M+pgPYi&mv@h3aiSZQ+vSDS(au~Joh%vN!oqbYsQ|Frnrh4R%)a&Xpd=#UM@tGA~TiK4)VDh z^*@oEUfxRi(oQ!Uj|KotEYdvcUK{*Z7DGe({Une44gz|)A++%AI+2QetA3Z)WNpMA zhB%I1ecJJGng_p-CD@rm;Gjwr06)kRS7ws$*HNx;yf3+r8Ai?0#ygzbR+3M?Y<9&T zim@QQ-kk*__MUnkx}}XXz!y{}7Z%gmC_-jg2e=Xpzu;|p2tee_CMP#{YA(@KgLs@@ zj~{O+vBWIBzx>xq07&phort#WEHU@|z@+Ar6$*i)vCR_3BNlig><3?2V5 z5XczJd}(Srr-ZvR#uG8`P&Z_`s1R;Gwx&6AJtXJ%m%;5=(tKVAQgJ6!KowcdLXo{7 zEvhgOdmiX?Q!PD|9B|FVocF}B{`1(ErMe-tb=SHCBo$2Dqw~M!VT~QK7nNQdv(`_P2 zFnzxRm6)A^L15tG?$AnL>skD<%285}XRd@q`t;j0AG_T*4=BN9V0p+SBz`u;No`32 zP3=bB57*agmpgPO=g%IlT7DnJZvM8w{k3@b<#EMWtB|qTY6W3tc%1*0)lSZ}83yb6@#F_`cwB8AGO#>VI z60!&}erKOWt(5S)*nMP54sBL#=V#4>r@TnQ1+Bz?B_rlX8cil!OJ}T0P)@*7KtDbR z%P8G9XjS0si~5jDMT))~!dHC7hjd^8ikR5m!&pfYT{0z3!mdNWvaw+FyAd;d`GKs8 zBF>!=e%`PhVEc})pEtqezh@OVOJRz2`3S2|eiS=8qWjgEFECIA`!<-MhQ1stofcXlFL zp|{sMLwexovVaXDqhKO{Da-p1K@>kx zk*~Omi@o{sIfvikGuOfnV(!z@O6eb=w-xoq#jstr;QEresHa~q}p;|L3zyMybGuT5K zm&jq1kpcA>$Nedl$m(yP3#hXsDGI1!{H}|ZD*S{!_lFw<@Z@Lx7uZRax29>+TcOoikUPwD?U?0}* zIuJ#`?=@F+(32u4a0I*J?9fQQuPk?>{D%`}8h7y{Qr5$wL0qmf-)tcf%oOaAb-l^1t6T%HbUKY<{*APQx;Xpo~uK$t@=A) zHej$wLayf7laL+=myc9^@L+t{h3#fg+$ap@ks7?{hJJ{^^RF+blW$;Af{gS`JAk5U z8jK_GGFX#Jl^@w|y(&vi4t2G~WDxY;LL%<>T~TWnLqZV4ppJXyq)2Vu56~M=7tOsr z$`3(Z7Cm5v{A}kop>1v_c*cx00a99@3rFc@3lBy_VQsM5%Jo{zPG~izC zXRJ7@a8qo$F3fA7dWgoUf>xohiuapoY(6N41O`i z_ve2N3-Pauaw~)Y*__^(6)h9)k0$ZUi#GwSc)5UzELA_Gwb4*D&bfEQci~_ZEpV9; z-iy)SjpMWoZ?x-CLI{<14;(w8rng>#vfHq`-syoQG&+)u{cj#x#-3BZ=41oJjG zCx-sXY?WD`aDKLF^XTN`X;GTOTjyAa+F?3%hxDnVAXfl!n7+!hk3()Iu_tG#=nyj; zvE%Sp${Kbf^r$R1lb$sZidRlhE8ve4oe7?jxXv2-H&XA7bg@!VIjg<}f$D02qTlnk z*kny1If+WHcb1V5)Rw_Ef{ef6!#S|um}=KPzVB$&oZcf2S2}lRs1N*Lae>wimvKLz z+GfxN-3je1Nj2R8r1qvCdSp(Q^EoZ<7ib{jcqX!F>y!8ysd%8nllSC1Bm1C<)0&MX zvw(!y&G$X@mBKPcoI@H^44{iqctdk4Z768uj_J51R=79lNwc@4rMP(4kN#Hxw>Tkv zq?lx4o~9+DOfp}0gY^_Ek8>gO7l$B%T~Gd&>CTUN4X8z-8?DFGx@F8)I ziwOA;T`iD}j39+VnsZ~w6{VC`cX?}^$1KKTFHK0t)3C^yfj!bSr@ms)Sd_N|X}EeY zNNeNfSMQ-w>JPs~_=$O3{FX?Ax|q%!J?0eH2rdW@hfQ)kleRXy^S+Cvprdm4;+h{l zeM~S3Cx@me3~tlQ-Q(IEmvo3oV##m$Hkw#8g;MR=JpIMNb;MZYL+GqDt1*h|2A(%P zY$cr=%|fbOE9jMsT~D|uL1YM$t}$uhCn|zbB$P9hqxTFA*SF12b1&!LQOEdEKNqh7 z<-|@;RGj0}3s1q6wtr~K0~hFT774`&Zisp5OO^b6Wc2boZ0sSM#;gCs$z`)ap}bvI zkHQ$LwJb+Pk4tKW_dEdvEpm1h5UpxO=?C#sUWKH3Gn69Gi?}oaA?CnEzsntNDHL~D zuOZ?WyZAuj(>4P5+-rCAO|w#DK8Y|fGhCeo7QvPqzKwa)!L4pmZNVXH(VQK(_LR{U zUMIa0z`c0zuHDT6hr=~W5(g7D+=!sm13oLa5z-xJuzJO%>zbo)cD#CZ@tzeD_+KpM zH7>##dbc%#iG7d>n1T|@u3)<{tK2Q*cWNZmAplxxfIEX3fp*~#cpg`9Y!j2g0+iTn znIn6eZnyE`nin3vikqs_wGbdPZ;2QLrmzEKn|B$9&oV9Avb%TF3)R`|O;rn&3iKvcqq+-0-?ShSaPh^m~ zgi&sl*G9% zjh$4I>gr^pL)`RJhe#k*EY7wS17l4fo(MPX?`fZw1`# zS_)m_-VgtvWz1+MT!wDMk15}fnTrl|>`kd$8b- zY%S0dRhr;cMcsH^(^xV#BzbYlfc(GJ3+%)&v3wNli~h2o61gQ9 z6?}O{yr?^>8=mPjBKb=fqL4+lB3Z>Ug0kx@ll%*!dNc5wsx?Na!1%$n4z-w{x5S1L zUq(k5tTHqz3rxGpa*!Vk&7cM_f>)!Q4qm-#)BjbIipBg`68EBtjH<%@S>h!^3`iB*FU(U@lE&R##5nDc zcTFOWri-p&!&AWmpo(YZTJ@8kw#Dr2Kl+?%7LeHCF>4_y$#(B)G&F?t)@x!DcXZar zh?5Aig5|)^#NP_k%}YZl^HkiuVARY5$+$~>xbFk*LW!9$gY{h!f2Whpx^S|%LA0UW z*f7vLp;t;BX@ZU1nO-A%KLIPA({zvey^~zb&8YNjd=m>Da1G8}8niYY;6lK0tz1nw zDMgZx0X_6p8aJttU{p)2mKoykk>}=d+|d_-$NjF%0iQVwD2G*6WEUqxQM}*KhS-CH zv~;=-w%e>a_2#&F$`SE+6^^Yh`D|0ahJ9FAqB%V41}TXuagWEz?R=8SbXJQ= z-T`^uYN{&O(?^gR9F34aEc?AA821|{$LPsm#Iyvom@+CD^poKI*BYM*h!QJS?r9ZZ zoGHfk+Ymb#bFQjc-pn03VXj0Fs9a!@JHn0y-{O8CfaMLTVRtR_r$a+gyE+_zVbCOy z{=+)ePuZydtjm#4MzP2(uXcI?gU%Mx@??lh>WAPeGU_l#7nY<<3Ohp=7IIh{-IO#w zUg0;%4e-XEHj;W*QQGpl zcfFB3`n)|Y`8wqvn0xq)cIE|`lECTu&?)NTN`YY}Lb7lcG^^BBA9Qz*PrKyCHPVDz zmxdMwwQLF`*&N_uRyUf&FTh!2OuJ66j_I@`p#pDg7~YUOGgKygvddSP3NzfP*ab-i z2E80*Mk2b;)>ZVYb;4GM%1tQ;s`)pto-S<;6&08q-=_l(idjGlEc+=e3RS>??}>vl zUR@lbK4c4~Rb)hfGeq%@7c6}S@82_C_C()3P#AdIl-h7YPGC+m*`$V+uZ$XUN8&VLb{9FswtkQ{Nd> zZl;3noF3!DlHNuXLf85f2huQq{rWVp7eu7*iVBK@sbS3suz@e5f5NF;0+4iz zr|?=I6(Gy}ZW0t^Os9r6UkiU-9>o{S;BMoAGdP@YDxap1%;jsDIHCpyQML#0ut4o_ zX>p6X1aou`Cj$ocjq65BZvaK=!!%h$PyX6kQo;0aR`~I$$^1UY7Gs>dy%95h74FPj z>@ilr;eTI)um`vWHc26OSDc5A#QcHLZafh#Ri84I5E(?mxq1^=STQ>qYtp=>3#~l- z63K=?2qf|L^-lhZHEumR}q6P)$nfRj&hH7$@aj+C>o+7L!q8+8mwP^4h|_BRO@*_CtXh#I2P7Gy zIxihdc93y%4B_Q&l?DPb=hC3S1g0PK8D3McTIj%p9YXT|bADs}NGvArmz8n$pwS`* z@ef6j@ATKnC?J;ox-Qn=a6BlV-7#a>@Dy9XJ47{ofI6301{_&7b(!hA7aLptu@0p@ z6*6jKi_kz%_GxCN?wdg3DL_v}pUYX;oIQnn#dA6m9zU&^<^tg*;5S-xkP97!t*~mt zScAfJ7AfXtPVdR=v{22i@yl4T{S0baL#Zgd`)FcV&O56g1efAK zM9ZpIDw?EA#4!p0_0d*$7)zzF;%v`%8sSW6c`;l1eKbl%yrg_u&UAgexwu?IcnwJ^ z3LJN|X68+5xAR8yI1-Z;q-fu;AmefG0%V0}zOFISK_?2#m1OhT8-$I<=%K(~KyflD zf!tIXBe)ls&A8wOIHu&EZ8#XqF!3r&02dl?L>CNyxsP2?&X7RrrKDD0m{Q2_oZ!~_ z?@Oi?^$>0Z)#hYQd!=j;|0qet+ST~o z;tR3G;YUu$!hs$pD*6kxqIAAVX6o)X3V~cbK_pYhju&es`0X5(y+Ih?W zq3w&nj#w;Qzuc$;-o#Z%i@1PuSQzk^w}7YRwG*E}E$>DCK8_`gJleA(Rbt2&>FTm< z_Q9yG>@0gakG%Hy5x+rNwK_|FG7e}T&fq4tDUmP2vr%iMHVB??sgxaJr29nzyN8!H zCj)q_#dmmg82PQ_la4Q+7!|RRuJjb34b$PdstP{}SiOT!Y1s3UxY#W8lEDNGkEgTg z6jc%TwOBCDh=(4y(R=8m1W4;;bRkgYtvp?8CIV;nkIG@2PhyK%8#@42D1TxJeum50 zcIWx{EFtDnyT&@~T=*=reJv!v8)>99>=L@~o~p10*E#`97_ z?ynbgc|OAQPM#{dU6wQ@neXm>sh46C46`AEEKyZLdYc~0DP3=ZLQrlRhnMqbt0|AM z8NQ0H#NG7{*MiU#WX$OC+uLpkvnRSg;Eqv}=--^vMeh0b{iA_wjz8is*6(B~#Y?5WBNy#F+ZO1KS^ zyc}>`*qeByklW^5Y&O zC%Wx4+4YjoIie!GcP-qHoKN<)5OLvGE9QSwa45>~wc|q44Wv0e4gmi@0Km|b9Bx7| zYHZQoC4>b_%i%}6UXG@xX)^7@Z+e?a$AA|ppc5bg#X9$<}P_vdr?vxkjf-gGDL z*?EEh6jH5=u$jk{zH*=F>hHv_IlkUJ1_c0k5kJmUzf0f2x~qA{MKqOY1`^nv!wN&R^AB@Zz!UgVPd ztw8k~R3|Pui>{~HJ^F^cnGtR6v%3GE_-o?<6vGH;lI*i}n>U#Qq2Z!>;b^glr@`mq zorVqj`zUps{m8(2t5H&53Ou=CZA?k3j#~(59EvZ(Z0~qu#|7=#K+`{gJ9FyDjp^fA zfqUAyRMPoPUq`ok|LR`(CZf3=@k`?$v4w_likJzWR;esN$huCzgDZmQ)#=gE6*PMU zu1mTqj&np~ivbeLG=%lfQv zI4u9~If({FZ1@vv$B#Qrf;I?;2KADD0zmR}m^%5JDCzyxA^?inx;gw5&HTAMG)^VL z#~p}55l7Xg&H*67ayl=+kcD;AhZQ2Eugvhmctu5!I`YnPu)zG&1RqWzgWBn4IB~PWDRCo*k>zR^49ttcYQRp)dHV;;Plt$S^Y? zYM1E@I#yan5NTMr$~mcU1(5lH7inTgu%Fjx_XOuZ1h&AUv+W%tIKgzcq8zn*AHG9)=nyP2Q zp5JcomUd=*i@Gey(%l!x?(H<&v5ywY$>g5$rG4Pf%8(aI(w zap_QR`1>qQBblkBc#u@;8>c;4_-pL$1?Jt{PF`H>v!AI3k@4)=;$tq$$B^$^Di`t; zd!Cz;^x0`>$;VXd<+}|j)^>PXSMM{I;OUh#HRuGnG>HMdQ28O+2$f?XvFy7{`3>?> zDc+hX*&kD>enucix2e%a(w0dyouLN3cqT@k-myV$B zVNu(t`xq)$%&touglL{$3DQ0SW5EhTY%~@(d^6l zAe`OeO3C zh#nN!R@KnMU2?|`H`PO=kHH3fq#29{9VCTdu%{YOwm~`FMp`U`K>Prd%C3d$=ZH+tV`g(Cu4Ggqw~5lbSHvQ(Mq`xJA1`?BJXq-Au3}2b_}ajR734*@9)9PkCQ>diTUp{l z)mxH9za(inM-yZI=ni9PS6`Jmk~*iNrlELmCZv;f8z>hqL#WQNt{`}=Dm-9$91E-+ zWX$%C5+r2pI@r7xw#gl<%U>?LWP($hHuny%|>Ys!76VKw4VHn@wEh`+w}9i zQ3x$etgG_CfHClCZOj{+P%yd_rcu_O^N+U%<>TDE!T7-H1=b}_@5F~1+t?o1j9lU< zN8$k)M%JaJ+Nft?(mOb>!CUfU5DLNQj zxRi;Wc3uCy8LKvLVUatU?%|6iMLgp{cqcwB_Qp;8yAh7vo<}0jN>Vp}L=sOvkG%@( z0>mty4hoXXPoeKG_8`3B{i^r{EgXFtrwEK1v?Ow2KeU%WMMpvh*HaNAxxwaH*iAuZ zp>A|mHCF8agb`I_Ux!N7T|JM^SqBzt9?Pc%#=fRRr-@r!+3H@yVGN@n`Y_y=%-14UEReUjQVe?P&gOLp!2pMBu!@GTBBzOppYcwbpnqOy#8c>kFT z?Wh()TMZzCt@_##gdq~ZJ`S>7Ew4?=YTwF}Ms?I|CAgt)KA>QJ9mMzDJk$3VFwXy*!Mf1yZiH134zyRThx}= zO?_irB+D5=eijd{Vk#dw1Ll-!i|YKjlg#SU8XBMgeT_j~a{QQNKmNdYFc=M~lh5%M zmvIZ^0Z6{5y=8tXRyQ*y<1VEIe}V#>%mmY`+IWN2f&<_L@q`zyUbs|(N8!;_JbG=| zfIok*?>3}e#4!RiG4gX$f*+OT_%uRuO@^_nwv3F^0wSxuz7CJLodDRyrBE~viz%m= zhJc>B-mKp|CV!MF6MS1@E(P61Uq0t9;#RHZQ?>dLr8vY1yl$5cJC5}xGIEB7mxBBmCAy)%iAS~k z_#z^s%sIHYNrN~`XO=?U&9WUxZfQX@=o^!Z!i9)`B-J8g*}q<9IrDI^b5oL7j(_=X z3g4ZwDxy?8fU3|lJKKGOCOxdKzlb!*2u8(~tV+DTmNhbXct&ugq7Q|?oJqiB3g2Lr zG`)YAO;>k*af{2Y5#^HD`OEUq zboFMS*mG!aD5%U|t8uDM>3-hkuR_(FCCtf(2kxdtVOEbg$6bI$n=OMW1vbppt3oD4 z8ur@WKZ$a}u$U7P1rAA^{r5fc0pZeaD;~Pa(zYgqmISMJkdAeyR3Kf>i)W;)6f@|_ z&OK9?!@S}R*nx~KNrQh@eJb-cn%`PHWV`5AbhaqF*LQ9w{M$lo@q)`UxCd@)cJ#); zA42OYp8|qgADj}gZgkmU8~2dC2+N=84P}Fx_Mm-e|FeS)N;Ysa(4rHrpUSl|3*96mF5u=rp}27RT`9HE zgbQ*&`;m)O8oUrn*gd99SJ6J)T1iReAFY-1SouC`pF;OgLt2l}dGIG5iRtYzlUd(- zp-Ji+=j5&_oGgH&A|poQ5yaog7gPVZ{v?PukxfkeCrAZyAjJf=7^qxMX_E`DFX^Jp z!%Cn-kUok30yOvYbKE*Vo5R@Fj+`d@ooM}Eao5TYdUrj|f<>oz?$QLeNg!7~&#}m? z=ch#{2Khl4r3Cf0Lb6y8JR2mxpjNRchLhG>nQII#T`zBzZSD@a6bs_bNvWcPfZ)Bc zoFp%IT%7-HN4UhQdU=n5hPLZ17w?_@=DgcVdw!5iBR#j^m?FAenaQO+TOUy?>R<~nc$k1Vhr(O}P$&5mvO+Q?&8AT$CBIeMc%dI}OXHU`n z*E{`4*Ti|nAJzvU1R=!8-cXfJdnmy>LW=q~ERKtLV{{aeJ~T+Zd{G6fN!jmcQCJ5u)*YHN~(l% z9K<5J)`}e_U=pP!^M>{a69SsUb<92Q*P-atT=PHpK3G7iBgHc?5(#fWg!|TOy?L(l zK5V1Nq3oYBSFJoi)cUy#i5!bsbVU0}i`4+p^1V-Ql}dLSc}sg$&AMCZ%41bqO|^1N zL)LKpMaPrA_WmcWU-HK7wk@F?MMzM4s<8;iU{A&QX;1tmM$0+`e@E>4>lErj6Hw#- zZ$-$q7(k$dv&~J(<5Ma(@Bk+4!1oG^6jA=2)hk#@Q|5mH?g?S71XIIExr*hYJ&bw!=ct9iutvw^LM+fM0$X- znyRH7Y#0CYuFUn4ZXii?%vODEY@RW{FuHO-ZJ(E?o5&fkLpyyz6P4 zCQwW2L1YKc1B4Cy*ce{%A@az7O=BE1%oLwX*y`Hl(xMS3BorS-V<@iRN;)C%f8%h* zTRgl*fez~hvCF9Qy-1k#1x*MB;r+}xWgR&agxHyV;4_)o&X^l$^P44p4-quia&L3KH0I}g zR?NqFb7+fY=RNgu5!607Vgccc!Iqj>Tmp{W9D|U+k_dYi5}&*deE(cBrEF|L?6Av8 z9CYN@?XeqL?)mZ_``l!cteC^IhwD z>C!J1v-tGlh~M;hd7Wk5D%DRwMVzuUN)bL2$D^ByDX;RNV@A|uY~C6#`{quq|2)^Ok)tmkKS27Ose9<+b^}Sy(rn_enc;Z&Yncsasbydw*OO5#GAE1+TcPV z8&Kvlaq~^s*+Fuo7l1r@?7$#h)`$m(pO23Vnm%VfD#qY_OO^%hn~V}_4nPx3U$au) zf-5fE))rrb)8xXtG^sQt!c+E$t-waqf`yV)f(OYE$I{$3ABK1Je(OI%x7vUA#XyD5 zqSF`rJeM2u`R|$ow4>BkMzP2+p-O>XhUZ2j@ z2G$e@45Z507HcP*NJmjGu_EfGu->NwXZ>Gn}VcC0hN$ zwStkhTV$3`G{JfWl|f=r&E$`UjO8iXB*)76C2Ot~FXS1 z)Kq3|n^sO@u(&aoVg=k)a`iaZ&3m*$X>y*IsCwN20)Awf=ky)X%kEI$!H%Oiv&5Ve z$s{-8#ezPG6b%gdkrkz|5jVCd$=f}z2~O+^lf6jKIocQsr=F)HtcfNh?9fOWDHQ;LrYdAtVr~0Y_P!3qT_uV3f??_+PPYe= z8j@a#ZVvnbjws^IKfmaDQkceiTy#TLngP9dHsVA`f>nw#eCPGsw1hbGjTpmPq=etQ zFmtew+c5lpX>#F26XI3yulVodW|cQ;_G{&IN!WKo>fA$7od_vZa%C)};9s8;nyt5t zWkxPvyzEO;^ddvRfRo*!*REW4Ylek`>nk>g64^H2c$RpWrqa}fb5$5_e4F7V zF2CM?kB=hykCBuaLX;oeA0rW;sAHA`pF{)6V@wWLAK^(G6iVP!S@jl%Cf+fR>sf$* z_a9uKvA1vH0#3VwpP+SwGPF zV7S3IKy|T7R*le9A}^V!35>bDG1`J_$I6)l__7Ay7sVDI!{8lxD|mgNUXLXSl{6z! zCAVYK&}1#0dxnnq+JiPHdC_k^ZvC2zAo4!V7xdxW(3D>lif$rFx67C9ZJHD>=EvRHiFAkw8CO?+ritKGwbKqwy~2ODbZ4Fi zn6J(ZXb*u4K*o>fE^FJ)%?(ZNi@z273J+__|3uA5OXL$(>Ln&u1j{99R_X@SBaB3+ z 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

8I~qemYoyke#k=NhN=t$7sy- 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260612/20260612174002-Config.rsc b/MikroMaster/20260612/20260612174002-Config.rsc new file mode 100644 index 0000000..6413e3d --- /dev/null +++ b/MikroMaster/20260612/20260612174002-Config.rsc @@ -0,0 +1,3604 @@ +# 2026-06-12 17:40:02 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=29185 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \n}" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=Internet internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.2/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s client-listen-port=33821 disabled=yes \ + interface=WG name=GitHub persistent-keepalive=10s public-key=\ + "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-ntp=\ + no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=dst-nat chain=dstnat dst-port=44333 in-interface="ether1 - Unet" \ + protocol=tcp to-addresses=10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612174002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612174002-Diff-Config.rsc new file mode 100644 index 0000000..2c1beb1 --- /dev/null +++ b/MikroMaster/history/20260612/20260612174002-Diff-Config.rsc @@ -0,0 +1,27 @@ +2585c2585 +< set detect-interface-list=Internet internet-interface-list=Internet \ +--- +> set detect-interface-list=WAN internet-interface-list=Internet \ +2611,2613c2611,2614 +< add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-ntp=\ +< no +--- +> add add-default-route=special-classless default-route-distance=2 \ +> default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +> interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ +> no use-peer-ntp=no +3277,3278c3278,3279 +< add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ +< "ether1 - Unet" protocol=udp +--- +> add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ +> protocol=udp +3362,3364c3363,3365 +< add action=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ +< "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ +< 10.30.30.33 to-ports=44333 +--- +> add action=dst-nat chain=dstnat dst-port=44333 in-interface="ether1 - Unet" \ +> protocol=udp src-address=!10.30.30.0/24 to-addresses=10.30.30.33 \ +> to-ports=44333 -- 2.52.0