From e238ca577111038eea5c064923b1c4dae264fac2 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 13:40:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 13:40:39. --- .../20260521/20260521134002-Binary.backup | Bin 0 -> 251960 bytes .../20260521/20260521134002-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521134002-Diff-Config.rsc | 8 + 3 files changed, 3453 insertions(+) create mode 100644 MikroMaster/20260521/20260521134002-Binary.backup create mode 100644 MikroMaster/20260521/20260521134002-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521134002-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521134002-Binary.backup b/MikroMaster/20260521/20260521134002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..cdf79167a597fd6f7cb64e302197ab57d24c46df GIT binary patch literal 251960 zcmV+aKLEh*sF8Cx*aHAoLu6Pk@oZN=?!b~2YArwj000O80004Z`SAPzLlIacrBMy3 zJF&t4yx?SW^6JorW`Sk`=B7&xu>_G=Zn*|iPPbw>HNHm7hbiWG!u_38ecAl>!nfWV zw9{8CTZeQ>{j~yt1RWmfjr2WOR#$jH($cZ<(*bDt%$OWM$suc?c%bTg3Ox)lpGXSO zHMymk$#AL$I}v1jgUQNIrHi%NLlp9|KHfpI)$vWE8)eX{P+>XM$OZ)RlXy448t zqOvDeX1mDRadQmBHb$YAxcBUIk_FK$aNjMDB-(M#+lt>uox6joKh;5}QQ8cDvJo;+kViFX^*J*k7+M*be1eCZ#0_yJLS zIRf%c*{sVc1Qu3f8sMcW@YRvuxf zn5`sh{q6UT%^TkswU$C5NGY+bC&9-K1Kq2Rp!GGV&8E_et2&&!GIY5)mxR&HX<|!I zX`-*YUw+^&36KO0Ei1X$L1J_y2X_ZIkJ3yV9Q!`7jN13ZLGUt6-8RKpfmYE`B+wnV zEiyUvtYDfAjeUKHRxen$qljJXI?v%CddqelFq+2ZKi(*xJ2~Q5;a*FlmQCxYbBW^~%Zm<>~X11Lk?v%Y_!YyfTKTh-=y8BalrL!cQGp{7xprE1O5??CTe zFv)@6L+Sn>>QZj?y>%A29%BNX(xQ&nl!`qX4GOav?$!$8_yLJsRHk}Oq;k!=IndIE zJ(ardEi}j-Zd0Y!v+_W1`H2VgL>@Q+lto)FY9Mwjd@+bpH*QEyRiVvquhny9;kwkyW=!Rnhx<9u*u?JhR&c_)bb% zJte9Re!gQp{?MC1c#Y=H{bI2@(Y17mc#~^7dgpXOLa}UT!nlyYgLr9RW0*2SNna-x zE+Ti4Yi-YDUTmOl(~ozvqAIn0~xv>O*oTJbnZjRC)D=;l6 z@54{j$H7}SDhPFn0TZRzC+y=u35@B^7J?t_nas55e}gD0$+v1iDLLPZ=3bMdK@oTs z%V+UPZlj!wgw~bCm1=(JlinE*8{pZ;S0@z8kt3vR6F&L{ZAt8wzyHjHu6kdy#eC5m zpDp=A5?o`aLLr|#7!m?;mFk(b^1Bu;D5fdV7(+ZV?G=FZMuL^Hsh&P(0ffw-u4iY9 zO58B`ptuzJD;G-N^sx1N*>@$XM*!a*G?Zn8M2n(OJ&B-R+i)4kwDJi2#avJ|hpE*) z;N`DpTVKF#66ocia1NJ{hXChNhw zrZxJ#7^e4|A@SQ=idG!7sxA4}-=odwzSJil6q^-JiW{>i(3s_T5Ry0Dx}@yECRL4* zDRJ~eu?fpH9*f%3pvfMaV4GUofQzHo*AnuXA!@HFJDrH0CqE0v_UC3M@ zpn>@`9-ExpQtQ8LLP3*Z!2&Kz^LbaJg?8{O1@ZlX1wlRbjn^Z}AJLIM$n`7F4eaPE zB{GcLHDz+kfAs4?rf6MX8ZXC0I2Q2r*4t{Qg9-5H-n~1N+1XFlSIZ!JI(=}F3?oA) zl*e0o(E+gCaS7wI_6)+MJ})@nA&uYcQ88ib&>+MXsn+gePzMRo!61Jyna;0gtJ^*< zYt9kRcN8R1$YbA#VN#3C-1E`JT$pBW8BF}BoV;)#kgZv_o|QSA32Z@Lg7_8>ho_!| zkQfU#;9xCKD1SJ-x%T`1V9t=5n~j&V7#g zPt}f={a%R^z%``MxzA`0&}z|2!&FdfzziJ@fD>Oy#9c<)<0zl4&cVf)Tmx76`W^5$ z2q?7bIW;2Cso$rKtQ&tB9N55}-2vr|IIn;OQQMpnf#>Nx+qKXeN|%siI{3E`v`BgUkacT)&!tghYyNAVKx`Y_aY5av`N+SG^cJgFp_F8$f` zouZULB7K$;Eqa#GpISR=|0Q^ww3j(Si9Q+*(RknwMWd03UPMFsg;181Vc z^H)LkC4a#k?kGys(i*0T$5CpH_dts1W~+-$7{Z10_dxM=(@T5f0r!Vnk!bGqfbKC) z>Jg2d0;reRS|7FS11Y9s5G7URT{2W6Z>lN08)Ef*8NBCAroSW&&H1&MW)lL6+WrK8 z$u!bsMiKXlv&IdkhcJs5U;KQluqMpwfob6jUSRN##TT$a9hl!*vmxN0gAfkGMl;;p zJN~T_YCNiewY%Y4`%H(chjl0mpMPZae)-?Vo$I>w@4`;nY8f^}Io9Z7^y*`y1xq-f zpFTv+Gi(9ZQVupbV-5qg-Bd5u()4~eP1UT@)|af)y*EFnvr0u|I8M38A; zkd)GN>s`OlSr)yxVW=AUj@O>IVIPxzb`O54*gtr$Om4sBm(YLk$xwT`^+M~m zAJKL69wX~r|Hk;T!S{VJnT~tO@bh%>Jk~UtlLC|j)?ARA^+8O6g*%iQMb*$G|Lh3M zD2B6nt5UcDv9T_?`Rwxz(mvxbwfOVYUQps!3E>ajJfdCyS3-$4du6hbNnFVPdu?p{#j(A@@ z=(#>EFP#yz9yFj$a0R7p;{Jj8d@z}eKQ%Wgb|{Dav!8js_4k5f$lUNpwC!pX7vvoS zFuaq~Xqex)M{kZZ8#%sh07isHZw4S)Xr46N-s3*i<-zSa4W#4 z?vEGK-pP%#5Nmiy& zs+R>!%^bW^z1MMX?g>2yPn%c|R*fdT&6TFa|089R zO@mSuaLd5@m~xn0)mwm~vyxHYZQdut<5gxVKFtB`tEoJT7SqwBswM4_p%4E_@af%~US_gZ2YXYK9M1eK>QI)R=i;g(< zmTgRNWAX;3(D*DMs924X!s_~@9D*CQ^XU-o2ePnt~MY}I&z7U z8}@?Rd^Va{kb(b6f}QfmdK#Xhn#L@CON^$*9)4uX;I~);`v~$>)NOl{YH=eAS}u|w zSz-x2zJ&h~g34U-wR|;(Tf>#Q++NFKoU2Oyj0hYVxvP`&=v?2Dv$$yJnQGh6zCWec zBR8A-D~0CXZ#aOx<4JECbpB^$Dr%13_NL@`)zCw~Q=w~|6h&jy#X_ft&SLg;Sc9$7t4O2?g_HGZh`b`!mmIcb=@1ceP-M_cwDZQzh-DH2d%PvuS1Q6>FO+9 z0|+OJ_+yT~moAi4eWO(t0!q`25iX`vqo%3cbfKz2lEp75E8}DPajKq#I8@J~fBZ{2 zAB3pY>rwGv9Yb-GDNFPKPV+91KC|KS^Blvm(b;&!{+M_>nSqx2-jSfqoHf*r_`Ii| zR#(YT;tgCw8-IIXxJ2kRvSFW-hhYrLWXVgIhVU+rB2I(>(6GbaQX^Gm57^+#RWt>b z_c6AlMP!RiEntE|)LFk8ml3Qpb}9W;?&vCWe24ty>_ouyBW8@0aCK@L{Wlk0$?9O3 z5B#;ZDP~&3plWulsnJeB43Ve)`}`c|R0wHxso|T`>8sB#Wt{jz_?vX<7(xsG?L>l( z?;5mU(i_t7;@(1|H9&g(x$J(vCM%b*YAj_5g!5~I0!LmI%a4x$= zl#bWm?o*ZXC;KTXxpEX(8Gas0RnRCy2Q;wrn%KitM|%+eLRYHod9_%vNb z0_1ubg|QrF5%<+E{oxUYjNb1X0_@;DFerOT_jreLM)y~ z6}Fi6(a%RRC7LI6VRG_YZi=|2{dEYv#1LcUhm*2M&7vugr{8UkKbNxbSaqT~f%dw2 z%nWmeh}2+w8BzRb^B&29b*zJ;A~Ts_Z7V(V{O>5m2NLHs8#>04yoE=)H-)sY66K zcF01DgN>1)zNpa)%NDiBsP@amm7XQDFZ62H{LE%QnQi&y7VA(DpjY-ZWpQWfHRm<4 zp{O~cylw3_KqO02N1_HbWgTVB7N&V6U+?=A$o0v+7Ln(k=id1GM9xUzYbF)?IvZ|~ z0(nlKb+GC*QP}DIdOm94XLIi4o1v=B$7~RGFV$F24jbw^MfmO~O&>c;mSD?NPB7-n zJgSG#<-I0d_T;+Oox1yBCR;bq&o%rMB93yj;i=Kpp?56~s%kZ7JGT%`t0xw3nI5^~ zQ^5|dvI$Yoj`|)P6g9hOjSYu_c&$^oh7(+5;_WFtm8FrpR;=^9BeZ5}+r8X(6;_G5 zm|{5*I~#iiKneJ3NG{NXe6xYbM#7$i(EH*VK#=+SIU*60vOv8VV7jjC6`)=%WqP@- z{HKccW-@4GH;i6*?(-0nr~&6_`517Qwm~(JNj%p(YuXqnNg3BBM3>j*H1VcxEXnRs zwHxMSehL=8o+8r{)EG5=p8NEh=Y!r~|1Y9CnKXD-eM|FVXOIVzjqYB2qfx^@&(fd(^t>K6uwMv7|(_3-iFw}_lyCb@ovlr>2$*o zBFec~uC^mH!AKv>N9LX5e@NUJX^yu+rxU>a<~4Gz7}J0Yy3*O8&LnPe*p+;g2*HJ= zC~x?$*%D&M`ey?MW^Chk0h`kC?R26!j1*!x=Ysc-aA~-5c*p2sQ`Xz;FT*1|y~8u> z5X^HK?DU4cco?c6@G}4}zrmwK4PL0WaCOlXBSOPQ7a?d5n=XtOwa2kHti*M!m3q`# zPtQH~-D5MhDJSUPCOuc7TK$smBO!%v2k}-8MC%4MuJad&XTd1HpKP8ty1{iFvUuHQ zm>t0xg1LLIAA73}-yQ7H)fcxX#KgdKb_{EO;ocHh1$kR*MvLX?a8g~US&8nt^Qo5X z7hgbm!i-vGkD-5Hd#x^H8Jr%3nswJcxF9aVY+^OqsxGNgj-zVG!_rkboGw_?Z>^e_7m8 z*8}h?WiH&~()zo?74tH7hJF0X-ep2Xjcq4I9=@Cmrr?x%-~kDcAaOXsfX8kARqLhb z1Cc_u?gNvJ(!gYYpb+%A8wLsIab-e{88_=bRz0EwIOov&Rn@XT6j7{$(Y(LEc6-#q zjjI5qD)EYXJXNQIJaK`CLPe8BSBrZ7SRrmq^wOy6&MbT*f60DuZJsC~rCy!P7FKLH z0#eD3!~F>;AhE3HRv_5JP0-gH+2%kJ63GXo%*BB*QZ9=% za^ZujBXI8BI1)iQI`^XjXm%^r2yBi<0#4`)FMwpo{$4N#nFSZ-ls>RNBWOokSa_aL zd%AeXma?IB^_7pa{*Cu{Z(+Q169hX@nUIj@JxEzgqun;0>`zX1) zNq~mQk~?ljpaLneqL`XWHCA0mCy}U{d*tUlz*?0(KrE|HF-w3NA9EG;_hSn-MvvDK z({z4S0rKsFPT|w>UhJ{R4$}~Jma18;FO11bgSMC!5@j@fo?7j+Y^ms_?mLZdNC8&t zl&+VsM6+CVmg;o?*#r2bU#5O|Er&7L=cZP^MRL>7NCFSOW=z7eIA7`KVXZXqe#PX> zK00oD`+_*yfGB1@-@)vr4Q12DvOw9L4dh_^e&`3qNNMFeJ(@T*pmUixr5FXA&Y}3L~^zmt8e|eelM3I zzwMBX$<-DA#u#FL#u)d`qxlRE{#$s2A6#bKx2G1$nU8ss@yW3=NSnful9c@7z_ly$H081t`!72g>~c+0}ooF}p+;sgp<(?k6D74l}AMPp278?D94|`F-GlQaLYPN~DYw zL1u`yA-x6aB}GG$LTY#g<@^b^oY|)Aucvfwp!^iAVd(j!p!v3@)@%bB%G;W!pty7L+|<@emX$EqBQtU)n2!Cp z#xqEH>1CReN^qT1V{r;uO?Ixj=xz5K$HfZd3J3)sT3{X15m=@>@a?2ot4~%Dx$4j^ zeP<0zLw2R^OUlvsOJLCd%cr9^f8M5Pa6n?eeB)7ZpicY$b_@%-f4F9Q`7ZSD zXS97Mt!xJgbJek45~@*_Ee1{Xx28lF)J=ei+Dg29s1j@-w@Xxf_6AhoJ6Ic%gA;_} z<37~k8j6YRf$&z?>($JUrea7k$j~-^Lw6gt!NaBf+9Hl-Kb-R4nk{80Zoqb8gmlwE z;~h_7_Z?YcFt!p=!K3Kn=vpd*(rbOdd@5kAxE-JuySXD33NWl)Ext6RM`$P11${_B zXj?2zZ;wIn=5vd6dGyF9#CS129$5E}sSnO!&5*WHyE2eMhAV4cEF{P&)QpAr8S|(I zZt{(hwB;sH;Tyj$-s2%~Mp3ECm2#kfox~6%jT85=B~peb{P?5j{Rj=b>>Ik`4nN#- zez+lL2CGc;$j|jnpd&#iQp_VZei!`e_7@#|7A>^qc6dC;3b6Ue~pW^aExt1Cqk+v>9SklQD%O?4L zMY@hx?M%35I#FLv^ayP}5JVzTl^2E6-mJ_5d}y3DS}mh+9~9BS`JoMWDEj7WBao%w zd$y(F61FCfNq-e7^p6z$o>)ss4{zQge$)^06Zim1d@UZ*N4o=?s0Q^_jr3vuNnS6n@-`vMkh9u`m!cvluvPazbjcra|)A7?u(%AeWn!!ICSXzyl?_ zU+>%Q@+bs+$%w4{p#=mVPPRt?VDMXjzx_wm_awoK?DfTMU9Tu+mfP*yYh83nnq<2G zM4!4m%pBSr5Ir(8&een|U5a-jMWqPEtCF`M_qT|JFQ6h!Qetz<_%f(S<%|Ej zTtE6vt@XXmbRUi`V2p;~>hBy{+8t_|ee9z`S%kv`>|~itDN7AN&G6FA1*5BB*=lt( z@K`;F8;35mvuI6v7;Wp878>WAl4f@5lm)GaOphiCtlofi-03v%g?AcCB+?AZQn(0) z3OwD?s}-XfStgJv;mfG_N|k_D!;ISNw(8ka%b03=1aFWRN=L_9OWc!lk8@z1%n0j{ zI*610cFEr3(4>tGs=;a@!|9gl=}54PU9CAu2#M~L$k^_EzMeRSl>}2gbw60pzXc8` z4HU*VvR8_S<=jUOXoW`kFf;}u8G#3$<%oXe>se--)|%TIVioW|8f0Z48F_7Xj(`WXv74tf|P zk1#}#vnIM#HcKKen>^Z%)fPt|>r-e%ORNcPUIz&I%#2SdrhR7*!(I@v!P}nj$Dd0dzE?tCe0r>mD2Gv}kdBx37iL-JBnKBo0O+zD!bg)q>rakZ z20#_4IIM?U|27GWnz&DoV6H1sDI73!Fo_8pTt5h2kP!L~=dzWLrDfb4$qLPI^w#0> z0vHv7<46m^baO46=Xj7$;j-4dK-l8)EqJ6ado#8GIfmx- zzk=>?s&9n2Rm7(yRM507HsUTK+)8%B5-v~t?yTKu1mM#8SNC}{QTDfTFwjP-0>>B7 zQ}S;^0ndv!2)+4pgK5uUT?r~RR=CeT3Og9CZk;{3^u zy^cJ~-nQQkQ}HE%gs-AtJ;&J=Gh>Dlo9rI161wzXKd`J}+MG~-3yE+5T8WFt)FsVe z9D_uZcrU(t{Od-U*wnf8LzF+U&+Mlx>rK=^Arw~7=w;?#;);y=kjjpV5GEF>))9z4 z;n5%xpp7-r^I_#n@1OCXZ}ChA1$TXlS788fdk3&s*<%h`buU%za^?%ROM{wRaE;MxDNLm%hWHSH z3o^hXK5wG4!m}rcd*szgbNOTahHGFs=t26vTCpP`5%}9GjrMw7CIA%FhvIo)a?0`Ft+IB9#esW4`>FeV@{NCQRn`j}7{-{J*6rJEt&ViKV- znRl_0(-ugn?E8PGh(w!$rSJ>JA&GQ;tW9g}3;MkB8Z!ca^`F*_Gp49IwJk?v`+aZz ziLF|}x{nP2ZW+7}6RGudXHNf6C?))QpN7K8_O_q&0-T@REJ-|MQYlz>rTn(O|4L~( zoGqi`(Ji~6eD{P!8!ma5f2S5{4q$VQ#DJ9!Ocv;MV-zKYI<@8CMjt+Sj!w91_G`r}C zV#*BwyTowYSrs8~m;MBx;7EFrS?v88$4tT9W(8Y08?G!i{yRV!Sz6kYV^3Fc7&MeD z8t1`CJ|Dmd$`X8}k2scq^umN6bxfUR@j|lZE>^LGcBfqa+WVGe5k)wv|rE4k7Ult@IVU_G>U3T^kjL7bo1%M`ypm%AL}@)wcZT zWyWRfjrH6_)k2-ew$vYHT7H~UlG~(`k~X_y$&HQRDPmaBJ2er0Nr_`PanyFGtsl~M$UWG8W)yxPEd;ysaE5fUW za*-^l8MZ+*!atsnt)ddZZa47C9$^z^{t4J$+Ix$U957 z{+6@mvRoyZf+E6KAz%h|_H45n)J1M*^qpIr;#tYdRk=s1fI^=vTiQtZ@IA1pgbl+P zo-4=Q`31{RQv_8-BERX_6>XpzaZ#)X)pd2F(`G2KHsT<{+_^+gxgZ|>p@=%_8z34R zi`f&X5XPHCq$p*;Q}KQfQiW3+4r*PCVt0(2xx4LixJEyedVZVMJG{Sr-eRkLfQG67cr-nZX_ z@Qba6Vk5AV6_0do4Kqa1{oYtjMNO(+;O7U{x3gYjfiC0?E}ezV=IH_R}BRI6X!ow0hboE78+6${jBx?>YqzV@lkj zgf*}}59*03tioPRzKhVSw5qdC3GpLw3p^LunV8ju>UifNQV9_uT_6H z;Q0Gar-=}1lRsP_j#qUL!&B2iC>gF= zjQP7GN-sfTSbivJ9g)KQQD%(oY{zXB%m^zozK(0N*4Z9!e{0guF7r8L;i)xjfV3I(lEA&XKY8uesx zs$+7@GJfQ1$-Oh7lWp)Uj@g`d=6Ss&ID8OQHFUbA5!2(br@@AUKPvp(!`H$tj!paVVe`oacNvl0hmIVS6vtkjVov=6KqB z6*X}w4jdudx|7B8U@c8Zq>v#z?z6WGrb%nQT@aaa>YCz*DH7MAB(4cjboOI_DtC^a_|}T)~u`)uqtR zYslm7EjPLVTyI>AG7+0r_E)HLSK=uQkC=HFA7K}!>2Lg3yL-msF3 zlz?gCF98;0lv%&`lw??+a7b<9XQWiFY9VHaxF1m}%Qeys=O_7a8x}cf0@@nTnFD{S z|G<=;JD)KCceisYy7!gfP3*zFeE3a9Pt(Bj9UBlAh@^aUk8LV_AixB**ktE`vEr5Q3+VUeA5+irBKG*>lslhIy= zHDZ^CrqF|)sm3yOwqE$Gex6y-h)3~Xu7r5A(A*Vmh2s-ITM=f1V(OHI!Z(}zr=2~C zko??_=4K7$U)LE(&z|XQr+=rdoFsQ^6af-bgf_C4pc@8Nvg|a~~l38TB+iNVwbP{br3A&YG7pbA^}w4eC`0tOvZH-UF5tHbhdIktMhdkfLgE!-jbWcffP5his{GkprmEH4CgKIWkDJlIn-U& zwDP|O?E~&zoqXkjXPF#ID4x6~K9aA*SktO9c-pP@U>PsjWPf*x$ECSZ2u~>04waUP zhK00DvC68Oe=o=$AiQ!*^l~tp_&ED#P0$YO;k*<;8gK{c;0|jZ{38g*%o_={H*uttuNPGk}Sbe_~z{EF;r_DV7NR7i6R{qaD7@pt$8K;XrV zz-ShP^@lY&Jh~t;MQWG1IK6a;y`7P{dSA;31fLiu|6AP14HS=!r|2N1Nc&6R>=o7y zu}fIAYGM#R&k~mc0OVmJ6Ff+(HP0)krny1CNC!=1f#dZyuss1dFz<)Tl-jb167x?& zp|o5L(eNphxSJh`Ns#6VYzlwri3AA#IU1QV zoGsv!cms_KZR zz95rVQvedIRpDCAv{SXE^U7GVgc%$YF#q#BY2B zn0Vaj^RED?FN*FUpDQ@s?~h3<_unG2ROWChGrorG;_8M;CN+3T+4@#+Fy~wN1d6E_~APbSQFdU@e5m5-m1&F#{5VQ zSPc=zKrbonp@F$ zJ~Cm2F}iZ1&%XK^kV5dfzLOh*iww2Avw4Y2X|%r+&pG#*bTuA|8mF6sDaz&2dd;UWpER zb0$q=M92>4BYt!QYf4jNF7+^tN}<_DWGxKik_9<`$g25*s)-HhAkF^6g{|TVc=RD~ zfYEJ+BRy|5aKp%xwjiHsb#L?H`aCeF?@x}H#V?s2TUZO-KmtgFrf2GYn6Oi(Q-O1L zhsicBgGY#!W>qAVW~Xc1#>xZ1U=a`fHWlS*duZrkg)hFz=zzB_IgFeDoEzxiFLdmg zsMfVeLlgd1{48Q6%A>li-a;MYJjfU_nM3XiEEjmMqipk4|JwOl2KB^wp1%{&fdb2d zAJscl?zmY6U$ze-=Z_lbPp{f4jM=6=WcoX467vv}zQ#r9NDo{aakn6InU(;><5Z(? z(o^9;`tRdA?#*ZMLsu=B=m~JN=C}Z)Y<4I}KAIRi9FLYzs(-7!Y-*o*##WM<^drd; z0ap_N`>@P($y7%Mekk)72s4XGVf5k(z5Q0P5OeMl($Mp42X*EFZ0^$JMKSN74<=3P z_bzI(UcF*0CvP(ZF*mMSU^Ypq=r4WP~kFu^2EWNMRAsaZxFb|zUf{*G$in8YzmC+s( z=3(|-wjy~K3p`&K%4!!WbHYvtUU>4~y=`Z_&ZIK=V0eU5JS+h-1z;5NrmE|Oq@;*L zO%(tFmw#DC1lL}c2EF5jm{C<9jZ70siGj-gx615znb(UiJpWA-Bp};+@^D~oMPDQ?Wyo#KNiAagUBw5H$;ZNgp zLu$+gE_(=(=s?X6#ISS(@yLdWVAI(8xL3zw6O(Ry%^^4(1em9w;w+-fc@IjcxcA%* z@1^3E@bF!rELZ7+VvPsMgho&?+NpIr)@)SZ|01kzS@tbbBHUfM0NE-?2gbGn$oL=B z&`9>9!{G{cGyJAn+oCilT2_8p&j+a;V-CX*&+EelaY(En6W__IE|=;mKxskJ<E3dbV@GDdJ~RT&k!9H_b!) z0H(i?A}SYCM~DA>n|xdlF6-@vxmdBm{#2cm0KT?DGy{{(QZ5+pV6TggdF6Bi!x~dW z#KG?55}1V%J|k-yZ)X!>#D0L;M}gL&7K!gR`w9DCP5vKnx^!}j>Weof)Hd*T?2|Ib zvuev5gy+6>ZJw(S_@X*f59PpJ7?u_+S+(C0nike>O|T-^RoRAc#OT;?%Q)RcmY&~M z@>0D&;gWm8w=xN~!C^b#I#G?7R}3YOEc1{%q7kVw*cVRHxXxuHv$IwBiQ`AAo_H*4 zC&n(P&yBdJIY~LgtC?iIqxpKgQZD7;$1YGS^*+MsI6zstP47%-S_ox|z+$gwW-W^d zghtl4%t5Zy$X+CtW~pltdtHtC)G<7A5&9!FjN&Ae_cc>N(P30#&n^W&rx!5MTmQgJ z-d)282*yb*p_s0Ad9>}pJ%ocXoDIg2W_bjliD6h#H7bml2(~)&yWLN|+{U>oKCrlH zvzjyA#hZL(@tv%b3nx63v9T0{Ik4_5K;kD8}Hp^5Hut`fwp8uh-;*gkjJMtTOUEA#Oqmoo^R3( z1GeWk-z^T%VKnp#Fu0-(#+?QTSivQ=aubFqG>V0?k34*6(X3n@J;C-`tP&pxoP(qz z@vtzmaS>Oe!E(RU^O;8n#ynqaP-C_s2!gu|X*8x|Ulgc0E;7Ptuuyqu!QIcA}cjv%x3f^=NAURXj0>z&Uu^%#eo-Bm;HjNp?u8e0T@Po-#h&QYG^FSt__1b^w}lVtc#4{!OyI? zw3Po^r&7PI+u;*l)ncqtJ5lD2G~--rX$KxB@1Ofx&(Z%I5H(er<94fcan%+@p4E1+ z09cOFo*dr7U(L_51EDHM9 z(kVVe(KCCG8k6abINcBuYRHQp3!Ozc-H%+;gLy>$8bRVb5h-aA{AM_#&9@v;Pv4R#8i5_>j6)8Y?9u$i7v(@vjXIC#_zs5!NuQ^Am-!Ao3VXTDT}uZyAtDew7UB zQdd6yrhspiA#A)I3+~YxEOtztG;xz&arPxZJV*q>%KMqOzv(goo)Tj^xfuXk7f1>a z$*p^Sm;7}^WEGbrZB+f)(u$UDQzw!fe_VPWFKEU7&otACA-^NF_MgcUd|}-qs(dRB zcOT>f+dB=d@>9cUMJq6by`%WlMDj)_1DwGh3$DC*#%?g;XCJeW6i3BT>7ecl$Y>uE zApwo2v@&t$fda0Lr#ruY<_#TWsDDh!)!#u^a5&ENM`3hjgAwCDtAG$NwPPPIcR@=^ z;0_EsNHE;|`m-xA@f3LI+ZpJ}LEowMb-$@FH|l;mx_TDevmHEE$)3Z7#;pLu3bz>3 z`U5t-h*hzNcAC`Sl{LpZTC`#Sa^7RxREIAxqpgMDI7=v)T zdz%us(-s5Pu@mqW&K!X6bFBZ4gE@fby^PXRR7?)j)rHhrbe2i>>YxcGq@AoY^DMYE z4qZ`Sf^#Uv(-ZM_K0Ee+|4peqcfJwKR|QzVNYdAfV~JFssR%QAa86 z+`96W@@;^0nfM2Dxln%!XfnwD-#qZ)GbqE9RL@`~3rP(aPu|9po{OQutd;5ewpv~b zkLsoL+m49#Mj;__ffyPp0f(&DKj(TiIC~0~(Hvw%y`YE*HMUJMzL2jM04aHjjIKsE z#Iwg${|6QIWLOX}04NP3BRQmzZjw-Bb-pVn&C44$V=*wxYiGq)A+s(e@5AWoWpNpH zvAeT~O}hrhEv4jOFgABcuXo3TUB#b|Y;w zJv>vThGd=LVqxT~y7$eJ-K(h9c^)fQfQRM|BKUl5j%fawQy3O`j4MoEd|@t^qRQ|k z@%Fc^)@0X%ID!TMMY9s&mqZZS6-g3!S-&TDI}Q7S#TB`Y2#)Ak5%R~<(G4tdBiQ~W zRN7s^*d~Ula24tH#7w|tw*ib^H52FOd`GRFBzd}6*uOwIE^Z^)RyPTbCy)lJe*Jck zp7|pdXkMl7zbW;WjTSd?KEg?!kA(Q>ev2nt|UqYDECBWUIZ-LH*S$G@+Uwe$9K}Ld-2^^$12Ph=@~FI)*S2pZxl@_Z zjbDQGAX*Zm;A#N>KLEhOzEXS^xeb*QW?|0j1 z97!&6HoIXJ$Kq` zPc!DwkmJxy0crEWR|V$p-dqXSUJ$64dcm|&t-P3D!ZL1fescGF5T|S73b&2sk;3Q5 zW`Ty0&OLlLqeKK{FwJ!(xaP$*{msg|_<4U6%Wy8 zb)Q*GS|9wAcRvQozz)agb3L?Ob<7@skA!#$18n;?OIjQ1hdf!&Gz}dcLv{_$!Ad3Z zdi4)oX9!hsf#;Lqxax(X9i(9%{S*)Cy^QH7tV}0LQB?}GwS&>ylU(A#F&SL3Gy_4C zzMp0)P&@Qw2q7y^Kr^92md%JjCC-wB7Mv}A$DM-?`x2SbJBv*12wqi0)XMdCB)|Z& z-P5)5+1P-M6ZOuFPLl0Y*%q;GQC@QfKfP!>nvuts#Qa9+#m8?MBRT18o1*Y(WrPJI zPEdBJqrgOF16pgT=DoL{Yy-Cto}0gV>poUn53zYYWz~Rb0*@}YkF+t%Nf0Gr%WEIB z%)Rerps_!~hj4lN#MAQBwZ3R$&dFcLO0Z@unKx@Ri;_pQxvy0&I23@bCWlzKz57$j zSIl!2n<%q~=``qt=awVRWkE3YD@cKpyoV|jf4u!^|80!VuJqTP^dnzn42r;oD`766 z_eYNZkyt_Gqr9(bvE}uYzYG#+T&vJiZeqZ0AW4}OKRl!gKTIV;#B^;OTewVjy+mTv zkF1P=v}N0cu5}bE`PVM?>C@?GWf#W_zp!cUGCPBx^bl3TWgE>HnjxUPk85;f4d2=7 zVSRX^Ljy<#=VV{>D%phPMF^~qfmP2ZtN~PZe(DxV_ zZSm9G5hljnqYGRQXJ>1qh5zWjO;Kc=3K91LN^)n7DGJLer=?0D6FGJ>y@?_$7o=zU zAFULo&;zm<`QNr^^Wf~-Jp7-aMr~mWqSI8vK#x6je9R`ni&FmezmN>3x(*bEF)$f7 zi$J|1)EtVb&R%9*ulk`y?=Y8R2ifbqOl^G(Np1Dzimhk0t^m)X@=bNZRDG&D(c zS++j0%}vn!eYy2mk)Ozl7w8l*oc9yVOuWSEWBFsR*9#4~mGkBV-3UYrqD9DY6)dVGt?q#JpG4J7fzK%x45CilM9 z(H) z-b)uD&p~$nflQ%tsjAwYVL#&K7Bb>3%U6d|CvkRw-B$?&P1!H-8Yb<#?eGnmNqeu= z3-c`{p$NJVfbuJ`9g0MjNYQ|`y?<8L_``$NrsZWqNh2F1LGT1K%u;EHwcpVzVDDG` zS6O^q>pOoZv}&Irjpxv>A9se3ce#-LRSN4kzUub33XGRgb9PC|m)ewK0%u4OLhJil zAe{P&W=sqk#S@b{DVxqx+`zF6%}%PEFfvK!uej{77CgDj)hS+OYmV2}&+}xr^Gv&K zNqMC_y3~AXkysk2|F{zusMeA0AK7Z9@Qs*-UmBuqL9(djBDOmK4;~%gPh>$w)Y%GN zzq-PZ!dX8Ucet>?s967J?RP0iiL*Av>hG`lKIESxItyq#)Ezl>gy>;Xbs}tz?W)#H2iX4$4I!0-ltJ<} z;MjsQ#LBcvIBwpP2DnrCJx<|D@DEMq^x6sdjFm}G=~(Q7BJrk^-*eO1ItpPzhM|OH z3(1hRN40J^Ghq|_du{Vc;mJn_z|rf}`!nq^;V)zTtBqng!tp`ZUOY=;bNwyJO&!)V zY~vROM6iRPZ+h-4V6m2YcPuhxNzy>8Ww*2pOQWj{MBk$GljbrqVOkR>7fdtd)lDcs zSMXt+F<`TeFIpO(4d4Bb$q62~b7=caF%5AWeOaGC0RAmiA-;t40_Ry?%_Z^OjoBK?&bj0e)x*a+l9QgckggVrup?67Qr6gxq5+=fVP22pq6TE-==!HHQWoC z%9r8EV;|B-dE)Y!D;>_!|8rwWmFeW_BSWk*$yw!r4xo)R)Lg}xKuUwU ztgAG2q3OkMbl99}>D1+4Kqsf|dfUt8O!dK>RE{-Rkf38+Fl)GNd3XJk8`0y5y|5|r zZHd(#y}G=s;u~-n)Tu=0^pkQ#6v;l)NP_s@JYn16gs*S~n2428Gf_nugK`UnX#p=W zdgo_K^@MXsIMz}%p9C=I?5zqj4M`ODJ+Kojk^3Y96e?8YyhOXx-`a!ylHM;74B2|$ z(rPPd;fpU*+Q(vLNhZ=yZR9RLYD_kOjjqh|SP1y^w`1xlnIOZ@n*3wY2RJ(^fp9+y zvsc(MhKwQ+cpHn4)r~5B*XAnbo>Qy(tiO5f4K)ymJ{ zahliJuKTrsIaG?{5X3Zn8|yD3I`$$n_iw-7I2%!&D1bX$D#T~c2q9u}93qyP=MOC4 z&OKs{LhMV&$g|aD1P@ptl)GRd{8o+yCi3g62gAiF4PGuBFr`aGeG#qhj2DY!Y5o!X zb;%eiZD?b$9kY-%bFD=BUwwUQgs8B&QTQ zVCn8*Wo}@wbxEErJ~XDZBAdOv|iDAol4euJ#ph1iA;8%>4m0f3UN8p#sf^}c#wn|d%FE9L8 zQSzpE*H~)ikoddDQ9N(pJJ=4vyRrV#-Fg*j6?=*)GTntc08!4jm0 zd+|j$V~qY)1wg~Rf~BT*(LkP?cMF~;`4;j@tl~+?3gpzw1PV~{Dy?{pJN{1(lc;*3 z-==}!OVW`JNw~8(Vvj63Ah*YT-K%&GKJdEWeKterqPNK7VK0bl8rQ4K3M`b0r=lJv zd<56RK^1}3P_uGRb9jc9YOfgjWB{@?Jj>MfgyFZT1EILHSz^ zQ~6(1K{W?i3}UI37yIax-CfaYErmLf&A}OHpy%<%7-DF6+%6=*aX8sTPmCNh{KEj8 z+gxNCE0B_u{?^0Rj6)`*yT|Wt$S40*oYoT^i%No%t_0s!k^HYprOnZ;pf^6@AL4Kk z^XI`hphfu2CLY(xz(l}?$X$t3H$@29apfP)43Ic@%^ob?ECc!Hw4hsCj|82j3Paj$ z%j;{=kZ3OcW4xrx#%bc#jh#7U?i~R3_CvyC=hr#o&xpR(*bs1rj+Rd}gM@M;q3N{pyZ--Kt7uIvzTV|CWgu zdtxcld+|<%@16Nz+)s_ZVyK|M0ag*+4pDe=enNX6-~-gd2HVVDaU0+4-p#qJ1t_pH zHd7v9H(zcMdT(-|2yw|F-1AKiP|iO@Bp}u%9~|VWXx6@z-shU_biu9YZ!1Mc2A{d*n00h18C}@fWFavQV3a5 za{pUs>2}*ro5Imn7e|Z_c*L#TcOw4}&lkVSUZ#&U94NjaTI|JAEu&szb9h$BOO0s@r zomSRigf8q?Wt~vP{^zxNAP-zEJNkM22IVnew{yq``)XQSb7G7`u z8(Ih@0%vGgP^zMcB?Af-y!O&B3h!Ur`N^<=I8FnNq5h+)3j`{)<5^fU>PSZU>XO0Z zU>BCCwtDHlT2pF>rR2ezgsw|OG<3)Dk};1>@t-+cM=IvOEz*XfI3mV zosp049TzeTYITp=-AEuOcdGXd* zi4FM)c&7GPocTr(ulY5z=nkoa3X~RwCNrF)2F%p zM#%EaIa6+@oYukO#71gsD%4$B%_Q*PH~2@?etzfDtrcOuw%{6%HXb*5fpNOmv1g~+ zl9qEQiWNsZ@79)Ty5}JC@YfW#Z%2_Gi$Tt)ywzg}2Jf?3lEoOQn`o0mDgrMZlS(5(VEVj=doAs=1eR+2*sgRCDzG3??zZLp)eEyn9jZW#BbZf_KU3)f*w9= z%LDsvzTj)hLcq#5=)u2n#?BV)$V`Y!b@$JpS{}bVRqZO$r}eN*ews9wM9(wR>^-1o=ho2Y=p9% z=ScB}A53+WqD@)bt^0=Ig;bXoIaWcycu!D%N|W89cXS_-nEi!Bhr18;uEQOQWuxh% z*mrWm0E1Jh>JagO{>j#*s-h1B8Q>`{axcaQ1wtu3-lA0`wL_qPu zJ^jOC#K)?`c+~)AQ|dqsSbcg|xt97F3a%kGvRH*ZC@x zoW!`3kUJ@zJQvy8c6wb7t1vE5pSk^j+v6E)wBYCQ59bf-c}ZpyQkgPEtaA+-xy ztBcV_X&f%rUoEx7DjL2{kknAPx*1bQ&d-2xxrCQo3fJ1m%yH3Iza)uKmuGL`_6~`e zYrMT^i?)L9d7p3^kW<4tbuJ7xw{^Aih2XQ3DAg6@NibyM{jE??oT>?f9K~bk0Acp# zQRNcHUXxGpS`M3q_5zJiCQ7`i>iqH>$9g4YX*M+II<0tw1P4vB+(Gw&Gc~a;#ka4T zc2@PhtEETMtsb4S9)xx7U3a;kj>Y%iv--C?aYuR-w$ZPulf|kMk#V+& zdbB1(gbu(MB$3>pg&`(<8xOhfu$7Ll$BHOZ%+AQ3tSQWlCa|O$id!CG! zjHuQ~^ji7XNQMZkW$K<2%i)$4heHJB%L@<&uf2umlB7BgfBr*HCxvR?+;sN*H<*1n z2^>DPMXCU~5w_toqj}|u3d}*ivN)$hc%b4*lr|VkjzzwRj{oKWm=WjSo|XtlPVI1P z(fh|_nshqD;<>`hV96wX0GhXaU3`nFai=1)O-}$~dy5P2f7gyTri|3ZNrbyHX7<6G z+j&E1RlnSX&b*7yDhWkJoLkk}*x|g&KK9saeX@?3zOR$<47Q56-VlqT4TCBC5EB#BUd>5R z%4}OGeYiSDq?9%4kacg^CN+GhZU4>Ud8ys|h5=PFgx#pyu}{uT1gXAH>16v1j94PY zwTGM}ST8m{JD;#io*+_eTtj7wr-GBtnHJ*E3Y=*@selC;pIVVOf(P}kQTPpBfCVV& z>Lw_-wk)5&33zqwGteV8FPpizNO^>_I(%}typZXJ;)Om?WL9P2?-0XU4XGID0QqWGAXc%8zjl1p~%int+m1;EfBIB zZV^6yU_O7b%c0$VY$7qoXQw$S6oNaiPN8jrAYYSxYMcgqGX@*+oY5cXW|tsUftsLm ztJYvoVJaK895z=u=MAF;QXhA1WYjB3@3EVYG?f#vwcPsUx~HSRshL~<$#W&1AZo== zV$^nwvl_W5@t9$f16+o=CbGS~h5nhNsl5c|csGA0P`o-(?r0(LgC+_X3E$&%bd-5* zr)|){0p(Y1{t@^KJU^$?y4jkPCpg%x9SgFtoyD3j=>uO~K3me%M%DR^7P1WS9r{Fx z0YS@K!+vtLieDGfQ3%xa)58dm^W_)Hh?fmZt7B$+cEM3dV|PkhObCMkJHHt<2%$T> zQmSi^a?v(o;Z^pR&)xDYmG%Ni!ywElDjMM)fEKxn5nFj2S~;Ht8xEpS2){VG+UkY^ z;Q*Vv+#T9y)`o|%XMRV;S`Y-dl;QW4)Hca=`9 zhImpoWpt+@l*LxA|6y;H`ISHt%df*sWo=VbJT>(46M_vJ6XY97)LitxT$ItO5LN@1 z1I@<$Fc&xeKY6!LP!sr0YR$jmG$7ao&hoG?gJr|nO`YD9wc!`$%Gj7&+2bao=i zZq`o*DQD6=$qsx_G8}mjf+K+1(xk^6`j>!ci;fYR%=-e%lH1^sP%3Oqn-d`@2sN8I z^R;dzgw4sS6_YeO#Z)*o337Y()+p+&mN@sTp^biSzS#m!)-+ZJkMEfUyr~8rzFL@K zu9WH@PXWSr14R&Q0n`jh5NB0qZS!E}2YM)vDEIwQMHMdJ=#i)Cbj&<~{b4SP>9TeV z^Ge;d^S8%PJ~UMG=(l?BSMWndL;~SiOgXHaQn8COcW_37XuajPyvSZM~~w{)(13rVFb>a4{e7(quY1=G)6!;*tU*;3jcAofWT-US>rn*Myu{Db8vPtMNbV^(ot_Xf$zl*j4r8Z&*Ui7WQ zJ&rr{Rq)c){>WrDq!4$;^D(} zOrBa6ho!1K!U#pYBBGyGK^Xg>t_Pcbj2=-yQmT(nCq56zU25L+({Lji_@IiUiX3^~ zc2Y1RoPo2u$`wZW15d2$7h~Pd!p*N-64xHKZMZf<4=CF-|2ThXw44MDw)8DY$eY!y z9IX63iYjA`4)47LF2gGA9BPz-m_uKayD2ggyW07)dG!#Zuc){Awm3h55d_w6ZE?f! z*sgc0X$zt(ee(^vRZ(&-X)lA4&8uWxTDw`HIlyyXa7C9_{mfs_+)7iyX9~x)I#X@< zun@*o5BsIYZTn#e6YNSq<6sOe(W%g{K(rH;BXTy|R9}ehHxiN(GihzL zsx#sv?gY9SAc(3|*-u6@4aU{7$fzFfRk-YeX0p%GMi89YKzeUw!gJwDac^Z>LDYfY z*A0QMY8PEcaB;df*PB-)6i-J#DG?%M*h7*bjpKt0GF1Im-q$IaAGGuk9v(l|BX<(4 z`MPZ5X+~vRZuk~+jyM65pQlxNc5M)k6ae0_eh+BcrRqWX&ghO`bXI3b;Lz#9cDr@N z@}6jmh>4#ap2`O}k{{YL$U>{Ir1YL@YEyXNNvsnC)*=ES6JoGYWplbiU$Fob!`-G~*lil&~yX6&VNI59>Pe21&^lec|| zrGP`R(#T$UohRVVUeFXrid1$O+R65oQTN(llkeia+WdjrJzzW5)miIhhWsk^r$+|E z^Jh(_PWhEb`@6o)x+z$=aIMHWyZAcT-L7=o&?S5;aGba|uOCFKrZ&dfsDg8FG^9;4 zIAu#o3eLuso&@PJzp<$~dDLfSDu=KIhKZ>8dgMf}i{Ec=3#z`73d)X!;E$gJMS~gT zF6C4;5};?20gN;l$@XYZIo5X6EfTii3L7BPMGJpb9z8DH{jNd6?0~2Xab;X8^Twia;)cccK3Y`ioviK9n zmDubtdK6&FwkTQ}@c6YSGha2+Acct(Q>gZ&2C)$#Y3|is`tSC&&vxPkOwDGP(MaKQp~RS<^T!>jwgoCd{pr+m zm}Y-DjJ{DhYZS_B!rdDegXH|@*_lKu+X^B=B3PH@^ofQOYU9<%vs575MQ8*x5GW9S z`gbF?hH9AWlg4BQ&hY*p;t(o|7yv{TezgAvooDRHBmok^NkHsVCXeW7P38-0DE}FF z@rGNJeiR9ScXT&Rt-R+Kc`9A|y~hrNs|(ajPu7%rM{J#-CWewIkmd>EN|IvG1;Kg4 zXuD>8`CAT&gDffzsESsSbs57#dbENVIXL`+<{&TeGJd=YzJTo4uYv%`jD%^EV*UbS z^4)2}zy3!|vufeRNt-AZJfbQf^@xQn%BBIjlm$D^&lG>Pk09V1v7Y_jd)_Jg`J*4{&v-noNchcL@!yDE8sz8J>SjZM`85(;=;7bD z(I(e4s1O-p@hCDrZ^MWKKenE_ju`FVxpX9Np_>+pL7!rlWOyW4grVMpJz;km>( z)Jv^{AQEx}Gh7Vb48*7r2}dB|ZqD{1>~HmXp=ix5*PWVU^AJ5Dwaim!p^?A1_Y3fo z3GxY6=6Auxf7!3Mg#X?8arK;S=5bt`XGn>Qn8K0rp?~x88B$>yn4XJfk7`6pKo2($od&>_ z@`Fo1!g$Lb^>lzxFY1A=ImyTSHS=caWPja>)UFf27$bwYQc17Gt>u3>Q#_5v!l<&7 z#Dym&QoC&|t<9I~4Da@u?pM9pgbr$MakI*@;@5q9PC3D zW`arpfdP-`|Jp;?7{E*Hm<{({Fk@K- zBtn`HrHBu*D6^+U`;2OU3)c7(HUz^vf@k7oJBcj|d%V|CF6YxEXJ>Eoyk7}v1k$1- z2CA0=LF0QWi3B{dli9CRAwi8F7kHG9F3Y^OCW&N4bo{`a9z$%S#gp+K0a*)WHt`0W zVrC@0Yb*Pas&U#x0{>^gG~bl`A{_$zS+Yrzg;9S04MthR0ZFCSX;hPImwOyiYkaDi z=TuFYvqBml@*qd5g%%X_^}GDj(Z_sNf$Rg=vIArFr7l}CE;QYWU|6{%Pz?*@1vL=1oPC_mIoo8=<>k(3Lo#`4A$)1bE%q> z80{PgP}~#zDhes24yeo;q2q=O?pth%p(BVf;rfOJqOzTkN_`#d=SjQ(Ee=QMe0^p?fg(o$x z`GXjsFGOuZN=md-Ca5y-R{biM01{7>sg-wyBW1GKST@gI@0DHoa z>&C}X5(-sFX(a-<&RHy0qv8^s^gJ_UmVo@{nm5!t-`Q%2xqRu>xpI{smJU3ku<6>4 z7;0EYx73h=QGLig7(csXAWM=r{j^%?mKb4$%`!h-%c zjiEfCWF z??b5n3^$w5q!R7zJT7D;h-3-|FT}SqPP!WLSinoWMxVx^lv+4KpALfUI1DH!S*;KW z|I=MGT6FO(mj@J{8>lY4P-{Q&TpVAiX-AZNn@^{{D$!Ll{%#Ul3sUz7eWYa=XZN4^}XjU0iEE( z?efNE^w63Qr&k6&{WL(9A7ZjsS~${!5_cXnOezPFtT9A%CMKa#|1UAY(hT63lWiIt zn%flKIs5fWyd5EBa;qr1;w-X%4MXvt7i?LBFQsrxLND~s)GzhMrOQ|_-T*cXb7c(U zNsf?#;r>9eZo1Os$@G79LOq9g>ie*CD|E_;WjXFO2p#f$tgf7*CWSo#2_Ock284-X zjbilhIy z0|A_5{bOH;`x-wXQnPB9BG-o40E4v1T?q1vwbH{#Aqe2I&l{an>Yf*0oVFy4(0|1Q z9s9DqyUXEC(~LjKHtn(O!3WFxRHBk{XMRxSlC)J_7=qP5VxYH03G1QrsW8Hq zsJj9T%^p9e)S5PE9!g#r?8AF?Cv-n!=PwK9msmdVyECEJDOW!kq5yN#0T z35ZOw*{p{b2#}#Ir{?i7$kLw*_d5GMoi9$$2lzJV^VD_oMzJ?#DqMYCh0zha9r%(L zs3aHB34~b*eH*MAs6dd`$Lxw5ft0l^sjc|;e^}!);xm6X zdLtA;JvDZL|HT(qWFdBXi|tR3M@Y;zN9@;rm|YfmvDQN&D=2Bm0$KOMX)4G3xs+US zwOl(efNO`X%L5GAbCL?xoIat}!Vo1#K;Bgo4>x0W3=T|)M`GZG3FG6sj=NBz8$iZU zSV{N!irq4BW95wuBm23xr?%6mOmxi$vPFIxPyk*)-Q)>xMM@c~ei`Hg4X>r(0xpgi z4<#P6-QDJ6mgXJlu_lKCgG3RDq1yg>LT73oxJG(JaM9&Ld(guRM1DK3uoAT{;-1jd z-=_D{jW!j46#+T2CJCTRRfp5?v;#=Gi{n8{I^Z-h$F0U7;bSGVUkMAg)E5DSvy|yP z+W#iYtA$>aAoRDR@~1oKj>llBa-`%;r}oIWWcTxO8%Mu*_x>!R(J2iHDis&4vrx?@ zmIXlO)M#fnUTxj00T5jjF@c^(xD<4o_AF=N>2vwB-mxz=`k>blf_05>(rS7iJF7Q(34rLw4V_wFVDvS2G8rK_77U6M^-rfsXj88cK zF}Ua0^LpuePXf3?F!Xq<24wX8rNcoBt}F8+r#H^)=?z~4WdHk3H|v9g+e$%0zEXwT z-PJzrj$Isp&;wL5>Ucb#2G1H4L0ZupAaEY>0Xz(14CCYl@ZQe4l$Ke6ygIgfHUjxEdAThpyRDBHZ;o0Su>UY*fJ^xa@1+z}p*;E}^yLfZFx zzhL3DjBDWdBB9X7nlzBp(#DJ1yGT>SSiOd6#4HXR<*3`B&)2+MS5R^c5rd zt{!6C96SR+#o>W3;s4upxN07B)DG7gwcRX*wOAtp1L)zHfB@uXP2J0wDzY_C%w#4_ z^)DAo!#K?&`Pk?>eHlXkuLgmVux_bC{jf-4#sH)z(j+F|rZ#H3(RJMdfTT4{q$RUu z#Omo}7Rxf&*x^H$ZJ`(AKa5%g?di7MuJn&Xmk%kSJ}3i8tVJ@a({!K)fz~guEAqxz z)L_tn=pco;9)pu19pZaWtM{H`cLR2~UCprW#CpE8qr34UKM0rWjn>j(V)G0Ic^K2p zYgS0*6F*^v(IY{|eoI;y2(*?SbToXn#iQvTe;63ydLMP9QZ#IiECVMt;$8l&KcCX<)+~)Np)Ha|6kr-C)@(2=@Opon8SlrT!$T?0h zunFvhXIO3fE}tEt4-@1Y+;xnK{l`UN=&QWFpUI-?BW_cRZWBhdI0Ot`|E>$2Dgmuk zxUjZo0%p&GK53msU#1KAd8$5>!1{uHtKRt+6$^b#FNE`YHnc;DJV0e7uwn zj}jwef^vR3Lth;>d5xbQLDTq@X!}ZwZ_gHV(Shl7(j*Tg+4ipQpaOv|{MG99wUOArIi#X3 zR?5`%AB>?W@(3PVt- zk&j`v^hjqg9mVg?Siiksq5=pLD~Ab=k(yrpF}Z19?SpfpmZ^n-gR)J~p|=5F$?@AB z?OeY6E`bd8T3W&~ZHjJQ_cMd0q3uZI-H{|HKpCNmkkCy8l`H`JJ{Uk1{+i%8TwPxG zC|Hvk$5efIou({wSDf3rVXB3IW=)K0;q&9ql zJzG6fznwG93cN&uA66M$>P7=>;K#mD-Lq|y;-g~}Mu=SV1P8i7Dk~WpBM}+ zTO0c`h)%+d{FR%a!q}~=^-#fLJe3fN??xU-S)%EiKDSPh#?2)7`BI%o@K2|%S8qa@ zuT3Mi#pZ*|;-eD%D|#{E#g3loqCBKTwn5!LN`<=UyF(r!IC*V3_|0)j46)@r&2CNn zXOL>7;zI7`*oVh`Nu>_IFN5-E)iTq`sA19#_YUH6W3B{tXydeenW6XiVAb#QBItdX zPKaZm9kWc6#g4gfb2Pt1WXi35O5fPrZt|_7^voiuomL10(D}xFVKRHN4oOc+UF}g^ zXlTul)3;~WpYN);FlgiUFuzw3J%z>5t?gBoB$w=O&NkQD`;Q#-7yb0_-f#H61K#j*D z={%d1{Qc${S3=k$#TlBUp2n1eEY3f2n@(vXrO%Rg5!}=x8JiB5AOlankInVD-87h-tJ z0Ak3HlzNIyn(8lE$fZsIIpS=(k1s}E+OR-dJ^7)${<{5~AmCf&E$z!ttq$&2ckM02 zKqA@p=+C+4*&q@O{OM6Q>mz6>nNA#;j9Gp#wqfWQz*Kh;@kA`ixG8{P@a-r5>yi{1 za4#WIyM|?OsX3kQ%_ea5$G*jt^i|qilgjMz-|qO@*TfkNE|ik-H}qprQ4`7zWzU+O zP}D*c$AaW8iUcGhJF=C$78^O~Ox{hHEn*&AD-6Gjl-2kM8>6K5{7PGv-t7*TF1DM< z3i;I>&WuhYft^Uq1Gqs)Q`E2~8E(%sDA5xJ+A{iVVY^S;2vWsJa*49_fY&)ZvhIY& zeM=@GA{-?fnVnMIj(F1P%#IbVXw&3Fl<}y*=iJ^a$6z@Q(MnODN0F!MwHQMyr(@5p zLhC9keo&lNPMtY#PBDfp>|SD9xnMQKh>}PG4Mia^X~Xo=GV*RJs*?c$!LZ>j2XQKI z>bVvtkh7k6h{t~q@)<9t-_ik9ot{>Xg8z*hs@`Q;VoSX#{tGCtG4S8cb|(~rB$7<&Grs|qS6Zv?Ghb(>TUu&4aEOH3OKA)!q4hGMcT z1gJ7%S;&&i=w>Ouz-hpv38-!-g+HSAf|mZiZ#Wv`dZ5m_nEaS79az51qb;n9&G!&q z=#{`_t={e0$Uqd_a%lxYd%$*CS#fgEU?z$Z*^f|HYYL&cRFa`0@#LDPr-^91hnBbz z6LjN_#qN&gYJV)L_w2{xrILi0PC}CTVw+n&KVW<{0^z@8-@4$urmQ%AUEn#??g>oU zzm}cbxjwZ>ZBd2x1Wm^qjDSs?@PP%z_o?A+v*#RPq0V56)#^JfzJ=OCPYXqR8QQ8I zr0+*qeoGpgbIABjntWUaYdAR7PWU{(O;Evvnv1qIdNvNFWTgOFk{WVzt!0BScUQyS zrBh2Be`Fp=8Sv!34ca2>UUA=40msF1csXj;HyAEwZG3(Cn2i2e^)U3+VZpjAO(26l ztAEMuTpJJa8OU3KgP!b|>B8H=(Re><*w)R*AL|U4a_}qRr25qF>YgzMnTRqWQ z$KH@3CBhwQ?5h{5iJ7NaE~ff zM|sj)iYlsuy)-DPwo)f?Vy5#~;1rlI>I&I`i+dYV1rv{Nlg*3T=IKstA|*EOyV+*> zd>UC*COrV6G6z(q7WE+6Aj)prZk+Dvl zU_B?{l-LnVf?&Y1n1wy5ER}$*U4E#|mPRV&rm*4>;?*nU&HpB0DcBbj3=DwfKLIPC zql%)&ka|tD$zzV7DGX<{<+ptLinsVkhAlD7hDL*M5UxPl4QLBIqejz6vZfA{_N#OPz4 zUjGe7K9?CnhFE07HyX+gkGB(~(cffvD*E3WLLuKoXcj;%ql?!uAxpvMtefKs)*3u} zf3P##EzdP10eBZ2iWEVlGjH8j4!^V19%o z@{egN#1vaYz?Kb=gM4Ik<7{sY ziNXG)o`#~YdqRCv(HY_h(f*vqgGGFpy#;gSOn6nGEqqYCE$l-dg>ZC)-Md68*htkMVhVno;Jb!`sVO>;uz#Ak&kBY3c50b%wlnHC&Bq;*wGwO9<5(odF=#W=(#WcCag=3kv|&^ zN&}5R-Jo7THIX4RH@3ltYpP(GXOS)W`V=w2N7#j}+D~w{&2MX&nGB7}(b3jaL(6#6 zMQ~FVb~zwAjIZlRPOB5it#&P`_jH_UMT8b@2vxU}9J|vfDb*K!M(0(3Ag4z4PyVeh z5*z_4vHjsXfcnIr5=Y*adN%)_B&Yupij-NJ{-iVbkcj@D{%?QGN>-xo?}bMXn?z%-Ih*(YEw=K5%x&5{O;i z`2b)zpF(0F67hcUJZl)&ZiS1s(>tkd|+uL`Sr$%sP<|lGr8D_s)<_iOl zIi?+s$}7U)Q35vGr#Ad0}!0&2tPsechzP7LLlG$z0Ua% z)t$+a*cy~SmR35Zbz?{+2%MCZDKC01YI(8xA#2uloED7EZ$6$K>QA%Nvud~ zo~?GC$#Z`K@2RdDwy8F4obxHreghy);)HsvS5$q^N?N-!W$Iwr6R6*;0XzG^ihtHs zCjLH#_2-dg3#z)vrtHSX_A;Jpb48bj@1z!OA=^SR5*1{(x>gvimjrA2;}LgN=00&U zWNS@RH={SKHlvNDwKakhuQ#{JDhNcaw9FhdY+Gqc4B#+tq-U;A?isoai0zPQ{~%%5 z!>UFN7h<_Wwhg@E4!#lR5bfeACMyMpb5x!xg3WyC1{CZS9Hj`MW;UXBYO=A3cs=w9 zlT%l+@(Oq&8u~c!f20P(iwbJjoc-^yg~Ny+jWhRLjlqzM1WVtt<^BFEdvbF~b+IV( zj!U(qUbD9s%_EFOTo)KHFSvSRDzpEBu=<8q78_DbHREQmpzD%CFlwz7jU*6iYJW)G)cQnFVCvi-8-=2}d#Lm;X z+AzP((J}5rG?yh3Ai@QP)Y^BUwB(u;vc#~p@_)MrsQ5^jk4(9n?O>9N2x|M5_)|Y# z5xFTp5=g`o^4})j+3kGFsX4&8kLUPq5z#Tf>4?C#^@VJQk)i?RuJtvN?S#vgE0bE? zhFOUtsdk%3)4HbP!CxcpT%F0(;lojm73HsoPDus3;$4zyM6yn}HcXj$1L6!fN$+4N zYkW2w_&p<+7`qw}PiGiJR8Y-?! z{Rqd<49HJgaTiHI|K87km<$dg6dU!M^eyuFD2l@AkmdNrj2YB9D~pRf_3OpGHI?2h zdq;cP{Z*pso1maKbHhLtUPXLl$T5)A+-Yz84wOniN1Hq0p2f|i%(U1FCzT2lvzHy4WQ{+~~zWbbioMT$V zuLsM|@K*HOg=6)E-2%ia?v+55Cle;sy47en@XS@2g8zaaom(* z;P1z#8N?nad<>D&6AU?WrWnDK^vOF9DjjGgWyG0(>Dct&kVaP^M~Vo`f~j?lL&n$r zx#Ch;R>~HFTTGulb_DF)U~N)=D)#J6lPh%ZG21BH&h)9GM(E-Fe>ZxdB8-evn7@kH zhJ&LiRSA$CEIy0`ef%h&mD2(nMYs8~Bc*rg-*t^grtdq>+|}R4k8svg_Jjhu`&&PZ z6c3^OxTx=nmPAC2ZWAM>jThW%0{mV&rmqYz)!@E%^vaoRCuCJ`&jVVp<(r8{(p?FC zQn1!5#Dvb_pbmi8at%a>a~v{PJ03_$UU)(@&RWz&8a;J=%bI&@A9DL4$HvMs&_c75 zC4T^*Som*eM7LT56bSSdrT><32G9ZhWIJO9uaWwME#&%*;*jNH9-z`*3Z{0t+dr9S z{$7K+;>Do24lCG(+A$a_Rfad(M3+M0#CZ5M24|*U53H%SQq%Sp*Mk$2#<+3%9>B_2u(IK(y!T-e z#9(Do%KIVBnt7+VFN2^_iA zMNVmJv*0*_Mq%Ri+0;T?(TH4Z`%99{Rh~AS`fv@UFFa0CjQ}BUzn_#VQ7ZiA<%*j1jnrUKYCQ~R)1tU=%A2uz z*~KF&n%!PeAb!*W+$)(cUyNe3BYD=*rw)`8c7{<+5Z9o#hfg+AnraH-V-^QNq-8wq zOB&YM%@>c%p+RRARF*qGEnPO(ztg@tn9le|MyZP{#XMOyqOmgqOeEN25Nq5xg7TBbfgoH0CP;lrWoa}cpz z|AF_D1(iSX)^q&fMTZ7u^(qo4LtfgIhKKkIe!|e;Ki&QrHKqcjwQ8`8JU~rRfdIT` zOLd?+Tx;gyuyq7M$d*lC!{i4J6i@=Ga*KXqz#pZ=Y()Gk%r7&ne-Otp1{9v4N($VSrN|} ztyzua$zMr=K`9~6&a_Ug32{pdN#}Zt0UL*@xeY*#sU(^)QmIrkTQZB3-xmV6AlFpo#g6@>9;+T-B(0Ke|gs{ z`9F!kvE!Ehh^vFGu*B;BHL^)uS;8yg`bb{lg9$&0S%j(dS}v(@?50Ry1!B(4RE_p#K80L{m^+{L9I6ETd?eHq0fb}?yOYZxUd^uGDEW- z{m#9mM`HUqf*Sj3S%!#Ey1NHIRkPm6SQPn9Vz{`UIC{5>e$aq%@?#2H%vktpRj1h# z5$v8Ul5aV6Z04mXk`gX6bWTz^s?0ymxw@7=yI~P{-#P+ifnllI-Gv)rLmA7&%saNH z{i+m+J@C7h^kHL`?F?`PLYKE4Y_-0p+KaBz$(GE;GW%T+xHc0wlx)dIhC7)9BFXWR zJRobY-tr8%3Kb*ZxQ&Df29s^>-_Fx<@KUw@$eu9~1Y$GDY1#f~8lkVQ45)vqM8v!x zGcbjLMz}E_beBRS^iOH{=4*@R4L&218HYPrMkYVVeO#$O(YFr~6C$Sz`(n;owx3OI>_H%-Ed*Za{X{yXbpxt1$v9 zm$M)>QdySDc4 zS93`Qy?~WBalxig&HdLvnJ9#k8=Oo0GX08tUslj2d_PQy!KZhbs1+x+^_R4twBdk) z@1)R=ff|=jtZ~ayp|2}&d5ICYkjxd>=EtX3u+lV?-`G(~2+|viS?8%t!4W7a{KAh= zSHr+8??u{Y{?NXGOAQ%YbZ{D04no3K(pFLw6aXk!Q!@L!A<N86U|-jAzVk&IB}w-QdS0R)v-!3|ki#|!HnCz-+8 z1xyDH%{@)r6BhIXyYq}6qeP%ykpsucH%fS~T-ZR)AUb2B#xzs20Gv?&{@8EC3y-dW zpaYCTU99*X;yr=DqnwlOZGYgVPJ*M(TB}DEyJb9O^<32G>)%oVA_G0zpya%6EPuWP zs?d>al-B7oAfS7`-)U+z#*FNSQt#S^P39t+hKoEROb=FIyb>A8@k%CQ$^nx6#Tj3s zH1aLVNyhKJ;0QwlI)4FN`XRbqOyNS!Mn`;sO{C*=V*%8;c6=Ce7XwPmJh!MB#D0^; ziL3yT1MG;HpII=8FcABHBZtk6n-b^s_A4$1*lLEGZfD$8v{mZN>aCpdOe9?E#eBSZ z{@<%DKhB*eC2lnvX^g4&EH~ zGgeJ&G?iW%iRzI~kw#FL0lJSTX1zdP@d7s|hdHD-e!5nQ9j|S)u_7m0umWhzN2@#} z!#Hw5o_n3sjh?EX34h-saZgfK^Al{US>N=bu1Lz**f15L*kmY(WpOHhMg{n75FBws z-YqK*B{0d}px+-sQ{8bK)$H}z%-LTb5)Pdl0v1uAswup|X@sB<10@+twaba?9szTv zE2NQzxK%GxrrVB*0epz((0-@t3G;K{U@Zw0NM}}&f|OSg5gM7wJX?YbsH~P?J2b+3 zAe5ca>eO`1hWXfml}bn%y8wEdq{2779iSIeb8o~3eqDn4O{bTQ1*6NbLVTM>C#9>i zRYbyGlcfaf4_?)@Ot;7n{>Rd=5MA^3htWAi!AH)3GhUThVHxA)jsX-EmTkfX06HwG zO}!clnBGjMr(GO6RF^;VPz-~M(6Ll}eV3s1vOJcLvohz;^9%_@#vedBpl6a@wvmcVRPZ?ECDnmksnu2fRIuv)V^G09-x#4A|0!xV zuc!Di5G%i`QGrWH?$>@GzG2bZMEWNXQeY_}4q&wVvk|j3LeL$zrt0ahX5sx&I z)2J6^Y|M&rc}hA&MD*R_ARBf+0+m=n0WGqDnGGY{1lZx3$pQ2}zW~6d7!4J*O?;(# z&1BCQO(xRPD|d=2ldOGU7~=!XyGI-Qa~S_8nFrI}4$eTggrc`)6rBM`?X~qq(RL(BH=uiATW3^UM;X8o(0J?VJ3uPV+E_p z)HCLa4Jh`Yi>GQ8N3z5BR~W`Ouf@G=KH~eY%%X3C2xw~3gDQaLKFZMsRLn34O#;bM z#X;FY65!`fKwVUWVB);4u_X$76??Fjs;hbhSUOmOA;atF+n14`Qp?lr)rfei_^?uk zg>Lz(#sF>RI{V(xaNuZVf#Uqqe0#1p>I+W4>ot)Km@5g<=;~4I=bSa)x9IhnS{xS3 zr4e?4^M}N3mIrxJ)g&nddv=&4Bx7Yf<9$Ra$elZ(nB-j|X6A01V~%B>s*W5moqnE% zsB6$1It6{IE*bbi)1WSoe2kVfb`dd8gsxP6sJR3=btFVvin&$4z7El|)(=^dO8mMu z6H>~Q{Is~j?|S;elXXwG?Y|)i$cbfY1wGF4kO_Fu(YlcPwOyW_gOhB7u19C1BAsbi zwAE?NQS&URit-4%Uofn83=ksKBJB(t)p?a|R4$QBj5BhQh0I(kHG!m8@H1Px$(TD-%aH*CiLI+`UM#REY@*4a+#bgX4$x zcOKm2pH|E#ygu7eLzm62*g*9D;{O;PF-9#p18O?A^eUzOhErfPyc)VPS9sQR%@2S) z(tS}(`*x%|t*5oRggRsGhp6%)&H7C!vD51vSimM#v8L!J`mLc&auIxd{*RTSP0#VM zeKcSTr4|-h1zS@=bf5wr;t_(OMt-8637)a*$spm;3>t-8R5t>+Ki)q+WCk;;gp@|6 zBR@VZF<5jteOO9UD#yC+6)Au^kiEI_k{r{vx*$UNVP1;2&d}$2XeDRRW$x zQ*EhQ*eOY^gx3MjxbmBDawwiNGI6H?Oe$9?6qVf4!%j4y$?=;t44~;$ErW`Fb#+o= z_F!K%*KCW_L-syE+fDX%>-Y}80@nhlIV@u)zsPs2H~1)rmfyD`RJzoZE1Y*{F}HG_ zKxvI}0nZ)y!>ywtttH^;VI1?vJM;SpDS=Zf@Ps)2==+|0R?=T6OfoL8MZWuTJWDI| zgxyK6?$chDm{=yiF3L9pj-$P|+tfp^b+3Vmkly|Cr^D;l`~zhsEnXF>IHR1#?JiuJ z*(&XpbbOsB1VW573p0Zc5*Gtrl+LcuMi8?%nRlFGYC*FxV_j>5dP}EAb9?=&$2|U3 zTNkueR`8RuEdLy&M{w_vVOos%jRxPq{tib>5irre{&hWO`d^yq#`d)0iy1HAV;hYqCo zc6=E=iqtDKFglT*9GoeXtD{?@XB#8LBeWbiM0(4LhaO^6#@yRq#LXK;bcz)j)B zOu8nMCsc_J1p$DyPR=n>QnpXB(Zjo9FGADpEA8UO_ z*cqQ5n{^_;1y9^ehzfkarOrPPIx1wzW04BzIsmc^Vhq$yVibrswyA?UaXPvz#*MSr zMhyXDUEX#oa7A0_gZ4%p-gXlHA?x)u)a3)_+XgNq7fgI6 zq>O$Mr@=LCL##TJd_Ye0jRr(M;h>Cd&d3<5<(Mb>HDJXrR*V+FrsA`1{#IP;Z$v%L zmUoGq;b`R@#1DD6pg2|jum(qSW?l)V;qT9`f>_IfAwP@(LbRuT2JJAFi<@uH7 z{BE|9q-$Kb{!OznF%rPW%iLu$jw5|-mW|#~QyBJj$D(NH^1^icIPXP5Y?S>sS?Tr1 zAXbcJ#bG1obj0`r|_I*fzV%aRbjj+pVm z00b#7>NE*2R78j~|8T9=WqR8$G*+3c8e};fsrkBwN z6SiZ;5^YF%jG`xjD_$PUY;XvvK`7Q%DhKG7FjN+)ZTwDn*{q;Z6&z4xgUcYkhA#Fy z)J3#E`85&JP8yAP=rvu6Ge zU7GaX41C}tc(Qty0`FVGctc5)*?vzI83R8katD*)xj~hmQMx$DjQ4X~Ir77a@5WSR zgD^M0@TH+x0iVG-$DgW(?NEQGKi}5Az4T*{KzLfhwESr}cI zA=Y~-G0H4mV948p7Yv>6?(1+@kSeZPx^W`4_KAt>;=Q$QB|>dcij(4?Zi2-_*Bd;Q zSe2r-f`Zn3(q`sPp~LTYgWyGZeo-7K)YD+I2t+ zmF{-4{V*V@s{w-u9#Jk5C{<^IMSWKRsjmABsJ};=fx=}%g!Ukd?|}S-nRi3^7Urvo zgHsZ$X%NG6EwQG<)ok`Xw%(zCVDBznC)9|!$s^? zR*odlsrH~8>it%8R_#m8!x6DR`mL*4iw1@=$Ev$*)zU%?TTSCYY}^@VJWrr%PIQw9 z7k8zCIkGO<=GT6u>TC!ocBGp+Ov-7x5~>if8*KO`Hy{yS+XEFg;+%uTmf7cLQSu6{6g3t#6MJt!iRMJl_RAXFX7 z(6rlmh*)>pZKF=|IDNxWeyV<4>e38u;kqoCPL^2B;4Zgjg={&+9IIY_U=`9{IGsPF zJ;S+y)fZ%IE#MRb^>YKsDX4)K2*D0owX*4^0-1L)QACB8*Tg>HuYr~+PXjUPMDGB= zNmxXQn=QZIf@kZwjeB)Ig|pK30+32I(!%?7&j~^Pb(UrAU(u=ZeoP{xl$HRNDzH?; zA~?kP*j|va#xfzk5xO(x02}>!nCK3%vLYQ8>bZSXl>2)VzS6Ca{2|^b7Advz&ID`-v*B|{u%TQRbeoOVC6#mZ#CSBEa zr&+p0Vcm-9!Qlu(5$;&!`eqk(q;fU*n zaa_8~zmB=gX!->Q4EN${}Gb66}xG#b@6x{GRf9z}9VuZniZKD};V)M^RFjEu*|Ys-uj_o11*h zQ01uI-coxmSLxHFb^&n0hG%U3;_bKMxZcP^zhrJueUp9Y)@V2oY*G{0Qn+qp+Lvu< zGp}AWkcT~zd8RLVyry*0lZcrS#9rDc(#-vdI-;*tJ{$d|(dT^PUagF#9Mw!-EY z&@b{mFwY)a?sMVie#(N`GgO5Z?C+t8Hh8gF5Ae<@Uwz zyxIK$&H>nKyM*N4a!Y5mGHV$#(}Z%1E?BVet2{al1=&P9oBH{&DVr#Fl>G|je+mak zH7b(0Zf6x7zIYA_ldNo=1-x1)5_lQ1nAGxa&IQa2g&^@~QxzNguW2B}_-EV)U-2PWUL@7S087#lg+B~=evx+tQ@}!24uZgd zIW#ABy|pBz$nKZO`_ciFfeF7M>`O2iIud?2wou;AaUqNrJsws4d zQN}$R{bj>}LSpeq!-b2Bm)25Q+N^dzN0eSo`Ru_$e2j{mgrQc>^+e$D5O=cWtMC)( zMqrr2K#y=1FLr6(Jp@b7%nd5j{9Lx^FU&RK02ATGqIIQ~FgC{u=!w42>9gUFE1O;l z6wy(C(@Ca=O<0~ON#J#i zw6-#+?UblvHK<)@2u!(@8Tam^}5YBwN}RH@_Ww!*%) zWTzuMshn*DHB?nG5<{1ehssgObHeDcm%v2`n!brKAkB=(u~sX!X+*v0(OmqLYp%j! z^Q&yXbInKB4eRou8dw5XKl?q4Csr`74b4H;NdaTD8#S-Nw-mAUwtznBExh#p9}-q( zothNaprPKSbx<;nieF%4R240QFN)AP*;-TIhB-9>_qX+*N!^4HBcf^KEc=`XWC0I* ze%`sAVc-osNyuV=my|b+FDqt`{1$^*s1!=f>K8}fGaowf4a-0%sI7@*LOw-EnqO96 z2CBpJU^#!IvdXVGioF|T_sV*Uw~j#sfzr^1wj52d5{SK!Vk9Jr9X^DLpKRzMjJxgK z3&UUqNfl54H;z1h4|JZk~}jEX6!xi z@T=_FA_CSQ7yAe2*0X?Q*z^sBr6<5C9ZKtE2phK>iL-u6SPq#2IZp{eIj;V1x-zIC zQG2_Msba{d?e_=|d9DITq_);{4@sMO%l8`H!7(fu5Pblv(>seM`g}y1FnTyc$qtJVs|z9!jDaMC*KgZEZBH$3 z`J7Vi5mlgOon<&@!pD`9`sl&j59_A@#IkS3T zk*2eObn$!^s_VnT7%3mzm^2(XudT8BLn+n++rFgV$+G&i@Y@5^M`EZZgcnFLDFWA% zom!%ycwoY;83;ODdRiVwn|f2@&w*=@plMkYgc0mQ7A}sThY*)StMz68iIdV@pTWx0 zBTvDv%Byp_y$g|`a+M{M6LCHE%7CCgNiTcWeV<>J1=injab;r`w8%FS39o9gFTvkv zXI`HBE9I+Cw&BF}H+2@>7y6hXE53nWO6OvCnqEtKV=T>;S?_6(-KTG?R+1*lwyD4C zf*^c51-ng*%o=c6$K)n;PMQ38CO5 zWB)QXvSQA(of3BqoQAyh+~z3j|})D}yii<=Hn#Iob_` z%Br2JIatktTO5e&Bo}Bq_roI(e78jwqo>pshclKx!p{SH-ieyYyC)_29j0nJ`^E(5 zE1*FZsX9>qB6C{eT?yw#FO@Ldf|(I%s_ zz}&n4GBOgknSJetGc;8!S2Gv#OO(5*=*f;Ru5N%?vIOctyQ5|y^LD8ywsy1dvDmQ3 zav&3}Tl|v)We}xP;M;LfD~MJK3Og0B;_qYA58f8(Iwp8JX3n;PC2USXRVOBl1RThc zbQ9x}wsw4mx}|PXFxaq|bcNW>m1brAozlkOrY(f(}k6@!KJS z|B>D)o?xkuKj_os?&Tj+JrMEJ*4XExPzyt$w)MX^HQt?04@>zs{S;zIMkyha<=X3Z zDXjXX*f6FLjfD=&;EHf(%SlEdr2f4)D#_c);#Jt= zOpBd8OOlGr!Z-2)B~d`kFVc7*9N?u&7}9OCAc~f3K{RZ5QA&E}d*uA{o5H$37O!W& zVyRri9|uYjeX{X6I0%erEE@X^p3pOl8ULJ)0FLxWLCm|u!kdm?T7;;M=b*2b<#;G5LwTnx28+b0vy8?8;q`n?FyY)Kn*B4)@ zn+CnBvD&g~!+PfUi+$f?F59YoZH|n(TMP*V1x2PYW3$-PTw<%daeQ$)c%N&UXCX!U zwEr|dmRLy@7@7uw2%~fG-M{^#16??FmHJZZ6T~B_({PDR-n@vgW@dc1C1gEqwPK=! zO!7LtI~WUu&lpDa^j?kz|BDL96jLBy%pH=9F&n&=##cA~;#M&MXo^s_43z9E-y_Il zE@M%)nNva{vM<)Lo2g|K!=}q{Wyegvyl_#;)+g7GTYEmLMb5WKyTR)O%;}{)U(=HM zfop+3BD7-nc}iroZ^1gqI3GwwBzIYP3j>~H{a>LiXCQ;z_JtL%_VC!$qNLs;R4N01 z2kEK!jbcWT-rYM936(TbzX_{YCmaxOfdx?9{oGsAYx^Q48=SrTZu;f=vBrnY4;CaJ zU8^WuFFl-+%$qk2O=7hiyJ)O{yIn1_7x;t=6HhCh$h&S;Ifqt8=M+{TDAcBJxOKcyUjOPKU5+xsFDjb7$b4Qr zRIa0_3qZXIJVUcsnn=N41LohO z%DL+s@#!6=UiBBg80-4y;>u=ip824MdyN=AZCp+Qt2tJL36}e|(}>9vk!2$oiOYuf z?sWtUil~6hOh!}eQH=%(*E8=fAZg;23TA9;nXN4Pko1L&AKr3hol5t{bZrQwRivv z6BjCFI=?)9ffLI^zOYU;k#4beUIG-o`__i4E?M$#;%S zWR|!qF0;K7lP_4t7RBNUxLYpa{;ugO*4kAAR~vEsYosS58oQVm=-Qem1e~>?%p=C} zDY07O_gM5v?UmsxBM>Pw+4cbc3fhI0_M{uDSBF%%b>bqGAbwd-e?g`1Qc1M-gW4Wk3o5%YcOS2ai6w5zo z$yr2m`Rt1(@Gl*4^Mc4ASzn3s3jOtq@B15ys`&DeAYA=b3UOzwbG?g3iLjR!)+cpn zWHG@rlFeKur}Bv$n?2b1duNyFl$CHKNPQVsw95_t18ey?U~iDln>;)|H;h;}MY^u4 zgp;rsbCFmNRvKrDfll1dv(o(w()j4p-t6`xtBpkbrn^{$Iax`(QiAP}+upFYMEz+#PD97q3>6l|&3#G` zDOi6{+Ed|MpxjJrG?Gp)K)q}T*Yvxgrr?tYh(Xx5JKwHSKpWG!+D}Skg7M}guRS8L zs$6vRpxk_y)4z=-5aB(~oA%4^J1Kn(3b}mun5m!?j;WZUR+QNPM7QlFEEhpfNgUGA zA6kB<0L-j>21sEi<)U6(QIs;Z2chi9O;j9dK^uIFp{BRLg<@75WxHC{r#1|hlAABO z$(>e|IFS0iiNm8snHgF>rH51>szmjyIDDGI)Ce*uqvf&~s-oVP zM8lEYrSF%imaQ9&Qin>t2U?CQNxZV9t^Z5v?FweMMc{1nT`%?spS+0f7k&$XG{LvX%kxqLzh!$C# zm%o^*lyFE6Y4H_>R!zT0f<0p^T&IBe9*7K=LxZuM%0rfY(n3z9z^oIt{_6nT8RhUf z1tPP-I`*f@tC*!aA;9qWx!Ve5U^ae0-avqUWBB%rpzG&%zIPPS?IQ|IfjQ`2Ve9PZ zO~S`IW)u9w?DUt;I`3@ZD?NGxxf2pCg#9Q%D9P zHkWKWBv71Khbb+5Z{yH|tka}EK>N}F9ko*99)BB*|NMr*;cNa^f#i3c2j39N{eQBsC{%ORd!Oe7eP*@EO>5$e>TU)}Ie(@31#)$v-#a zU}nry=MlI%Rn6Pbd8SakNT1N!>At(&l-&=A>zH*Ju`uIpV(0Jw9P-EBY* zbF`1&#!HEEupQRL&>x|irdx$Fv9NtBvBgD8-ikt0jov1@8a7H^tw3;H0^+eN-03cA zTW@weCWZ>(!ZAFm+U{F%)RN>+SeFAs!V?fen&nh$s0PEAi%<=IS#bkzYhE{DejolA z)$g=jm+L%35!i;gA@bvd7GzH1WOQRl*){XsR5=exlSTQ2QSqv3myMMOmOWyMLp?7- zKCSY1NEVP z21$#yUpn+2R+>z)9alRMbu;(yT=OTdpYLO>#R-8O9NvAoxUhd$^XY7sZw4(;kaBSA z9ZZUu9s8=4b>Sa4L2{oRgz7wv*~>@gapaC2U0TeOifI??fu2|9mqr+;GTfbMFI-2; z&peN4QeaWS#I(L!y%8o~*ClxBo4*zmd<-|2fS+*T0VxJ{fG7L>&6U=egij^OP><_h zE&v+=Fh4lm-UvCR0Ei-|9!%3P`&(KDEW_(EU-4;dsya5A{>{UZ3gp1x7&H~|2X8gM z8`W1(v%Vg$eg=!Cw8~Jq0~K#{y|P^krhTJ%YcJ)s7Rtp&JGbMYY3$(@rS`qpt4(am zVGl;3XsDZlY&J#_#*`4-dGloddj1%g!E!SRv#+UVV*`5CeT2o15Kaz;DU)C2(x9}t zWuRg2KhjBnfR4&i)@q|z&s1=-g?ox`r0x_Fl|P^)S5zRk>RdcZ_HWLFkDhK>rR{&2 zyt9aGeHMFI)*B6o7u&v)1zctWi7uu_KzL9?@+9EYDheA*5*?;$K0}Ew=q3>noV^<|1&W4g0 z656~wWUow*mIGdwa1-ujJJ-=5b_(GFoCHG8n8{OTN)AaDFM7qB|lAKam=cfv<*nZ+i&tq z?R4d?tLt3CnHL-VNG-F90*Xtx z))1Ax!fpPy)ZW4F_u|fmu--EF&h^d;e`K>1K9T|BKcNfeZ*gHGvH*9}bauY=>F`9i z|3VtQ!H9Y}BT~YST;(MWtS0z9qmWe+9ze*}>N`L0ha2oJTc^M^u)_N1x31UG)jy$S@U8!!i%W zh3^U5uj`j~@;3;kaJW%sMtl-PCW;6FKWuSCJV8MTl`Or>*)0JeSf>P;JRzp7+jI8= zC(%@pG`r0h&|$lDRNGtUkr=+VJ-cs`!8N|A(lPpRb9V|w%r7rc#`>rZC2}4-bsxC- z|6)UBjAFou`RYflFX-62(G0 z=1GRj3MdEHWk-;z6FuHo{PGXW+^3@dL%&vYAJhO57mVwfq(-R{u6nT?1c58YTTbT-Hw`hdC4LuZ zFIhmOJoTfx;sY@~mKL<^t=V`-u?Uu8R)B1T(U`Kk6{Tu8qLK}Bv$IG@bBw1cxf<)> zMna%IKZSifZdZD|nD~qy(dZ~a-N0%4{3r5TgG~y5FHrDYi2fNZwT8ltt)vUu`)-oBay7liJ@wxirI0ter(lu?L0^{t9h{l)>sa`Ej}X zU@3S}YX|>Y)Qv2CQZn^AIZ)lZ8DRokl^!pXrda!}w`Xb(cBU4mnl`nh3VI$+B@n=RFn>{&2*()stNuWy|G+Xs=>`Yl zRu>6dqb;#3?tNrd6QI-FWek6B1mnxl(_&UwBit@I!bP1az#suOr0MjDc4{ZM!O?pQ zth@}g)@PQTP@3?|0Uc4eYAk4{Z8OZ_8Bg4b`O%Ncv~vbunQYl-Br*B~ivucs8%e{z zhxGuAa$}Z4G(VHfi}05yPl5(t@k^}#eRj!3PeA@WD~mh$&6ZNzImnT>wNLIYozh&6 zW^gDNiv)&)bp?!8G|Qu~%LKqQI=R~n72GoUuR0;V7uP}-s98Cj zx<0!@?cnwI5Bgp6G8y?9xj<#kTINs`bk~#hKQv2UrEtk&cEXWUOb(E@!K~Aq{4w`9 zKLHH^9>ZAr^L7@L)PTiJoH}3z!+d$Oe!sa$n3~Xc4U%j`D~j{+NtM&ZILN1O31DC~ z9X2VRUBMX_5U~ZU)tROAzt)&Pdmflu29}Ct$}9o@pUUG>c0hI;)LwGkL!Hu$?6SJAFZ&J*bYx^8Ia&?_t8Nef(D5=X$5` zbP1@_c9fDWD^+#p-&BKSOxQ}W;o9le2;b||L}U$tlYO|KftVv=W`t!w89MY-!S;ic zOujfN8s6UD%}>fW^Ww7qBCT0@v)}+`T8DK^7@lJ(=g*V|g6DMA`_NFoY-G6ZSRj6B zbVx?NZtc9x5-;_umxza1`i^#A3z4rLo|S-6{1BYlaF=`yGowooHWs{h)U7Fxky|>S%o)CCMoSyO_jeEqm5 zumfyll2H~_xq6UpS>L%<0oJCEBZk?@=&XaJ`@8uJ-WqPvi%QI2HxwQNB!^sa{*L+;|^`f2!e@~uGO`N;c< zaH6uBD$PgUfF@Jzx133GJ-5v7pk+qXDm}4$C5a*fF53R$FA$43!+Hv&_rplElXU>9 z?4(9>0Ll#jLoMbjGVs20vkXik;uRmpkY#(TRJh>XfAB$mLTx(Nmb$^Yb5mhp?0U$S zG_aF$FNBQiwF4oFca|kD$m$gsT+Y?{&y@i9dpkbn0#&GuC!c}xO23a30+e(!R6|cO z?en!9c;UQnE15@)-fg?5Ks+8#x7I;6VA&^F)Mxz21zVEa6(cv3x)@Mz>V`vF3_r6h zt6Vpqx}74^TDEnPOVq{*1b=o}9U#!NUi!6?ac*Odykb5uS%cjUFg$@d}QWEJxpI(-*UJf#$n~ zO^$)gx-2?9Z*Nid&(3bf^8%A$k0iGGeTGc^2;85fiTqt0rlO%$w?FXQFT?d<$VUt6 zO||7rWOUbShR}nlQr5D2a@RZ?$TJcEBR1}Yv23tiHUWV%@ix!a50Y?nb*o@VF^ju( zfBC)3l&--5Q0|Z)ln>MJ`sL-ZJt*KXq2=I3Hw+6?BrTnHwfs1Kp{QpVK|t}o3$xOr zqtSCww=aC#JOHdY2-O>C3p&pE+0V3O#^FL&wRaV+>muH;HcXa%>!b6gbGPykWMsz? zM(BQ%{1CZT?pXOsk{gnEov_}B$t>i zYtp15J?e#E3Pj!ukQ3(%`~d2`6@5X@EUE!rR0sE(%0pf7E(b@k8gn(YiDtqi0#E~C zWkK^-4YK3@*g%+Q} z-)#^XQ!`oI%d#;_!KolU_<=u-pen||+rsb3Iwr}wX{d;vTnaEg0$}szqcwtSxHgZ; z1@BDqCja25vH`MSE(wNiYjJ)?y*^}-MsXY)Mn92i#Gzwk=Q364OWa6{jh0Edo6F}= zATeaDLD@t5rk6dD;Y#|4@;4 zeOx|PbtWm6#7KX#X8X#yV13O74cFItA;B)g%5FjgY|VC^UNkK;A@4VaPDRES2J5{4 zz&B{z+dRZn6z6E@XNuZ~XhLbj$Qb9Dr3y3KU3yIe13oM&sz`0>VirjVnjYw!42SzE_=`OFnnq%dlJ-&G znq=&wELclxRoBqE9aA{z31VF$(!`d(vHP_LhXbGZ-xYv?Jah50bv!$$Yc+Bwqi#Qk zde#gES+Irjz(Byi4txt4b6w}FCPK+h-~g#OKI??airE06VjF zOlh%AMRZI}7_aj2&GE{f+?5NRYI}mibq4WekBws~KiPNH%}@ony;!e+x9Sr^TlYmdH0Xf!Lr>nXGO;^?}cVHbYyq^s^>WmE4@2<#LQw32LEq_ z%)j-6D%13^HHY6=8gu)Y3Nw5kkc~W^yBna9S3i@xVpl~E2fkz)pb0RZ`sYiR2k4oi zKa*BleRy!;(tWe;JJ3hE(7hkg#AZi_kMjkVi%IvMO=@qJl>P(!6{8s=2A^L5jsJg*58pu&57xaa)rLn4$dO}?PGxWkjouMvpEhMenybL+%U34PfQxyd%(4;N zIR%SufY8gF$BS z8ZXw!O7?5b+C;xju3!-mx0mS;WD0SK5`VkqHR9y*3K*eHW{jMz;;0+J*OrEV*!9#% z4?g6rrumw-5!#P8fH^Rct=gal!;}AJmq+OS(qL;1FdL+99Cjdj`!KAsZ?~~nPkDNr zv2R{dYCc?&#aPCQJ|iaDDVuZ9K|Yb^Sfh8aXEUrM7l^!!Y4HY^FlE7?_eT#q7>&&d zq%Z!Kp?w18S@tqWvxd9F=AzCD?qHCkM<8{DIEGKUPnPR`0^gpANR_lP;lbg*FFyh! zt^lydKQ|BSuiQ4)SkRnKd0N(s2{@IWYX2+8ed@+tZ=3RzduhW}CRIuo!}pha8zEgg z1O3&4464cTXl3-Qt!FrL!|kf<_1hBM9g|ZaJ;?W?aG6Q>Av9v7Y*T==`tm1QwP=%t ziU>J@r?gc4_CGR?%xZ@{gl#cG4=6ilFgw+r%}fJ!Q+o<5Th9M@O=g_YcPW zgl)pTg=Lf|-Q+({E(gw;kHQv4SM8a4^gmLN7jQ9MTdiVYIv{_s;facqc08@84pECV z9tGE){~d$40u72My-0g?hRygS$*`&7g^!T@vu|(nEB+4Yk1>rSgepGB_+eAz5nYVW zhr$6hYzTe%i;!mRvtj6gFn0$eNMC|9Ww2AVTBC7(U|YK_ZGKx@??d}0dU?f!sAux@ zPM2Fzl3;bubslo=ovq%=e@d@D1Y)I33tD)uhvz;WH5&hJ-F5B^{E83e;$BJ@cf4~2 zOGr$=kP#4n<+8ND=0Km9#DlnYFz(|~Idhr{SLoCL<@|0?3Z(1wxHvt$g(WVYDNQhn zN2$4&^^_z8ol#|akk)M+I={L!<{AQakoF)k?RxL`OrYuNzcLI3Gq}H`IF?nwNKMc!-qAzT|+nJQYNab zQq^`%#%1CtMDk}n%NEQ2kQ%0jT0!bvDX<1)MS@A8ZfU>DZN4XV!3uvuL)yZkM)jm6 z`~i99sJcqG)?Kc)5OfeFq*)N-%quzgCh_?)9qHmS21Um4hW`8*(+--d>8Eq}L(3J^ ztes$U^7O-?rM=3*DMB#tLa(T6&!)=GNjF&o5;60oG5y4ZzM>J8C{JahsW8NF5*0y3 ziK%;CV=!kvX@qoM-NO4B-Reho7y0|!1_c~^0#%O+n2eQky1L%N$7Ya&vG~P}cM>?Z zPhsOBjUpQgJk9{2L3r=TaDyG|RQObb`Re2bqcvuo_lqxyl69rjP}Y@y^MrQ`U?YLm zHN0V@P-&cY|Fx!q*y*2p^W8Kx)au)?LLj(YSJDZH7AnK_b@nyjdz#)9V+(5k z=e7Da6kc2L_DF=g67s7b_^=8}s7?k^`fPf-fk3u3c2N?h^Auss4)3pLfbE?MA9eUX z^>Fjt_>4Zx=q*TrxwC$S8>p<^sKYuES4-kJhH`g}($Jim#t^f^&JL}|=)3n2ZvE`&C+WPlrm3PopLAlcVdVtmq8Vz^<>L2AXR(bLn@X! z38t1z-LK&l;pBU6Evgz~42&CJ%Ty-eJaoYzJPa6B-I&&=Aql-w&_bIN2D!|6ObU~A zi?rSUR-jg+d^R~dcLb5CS9Wnj5jUSXdw{F{*gae;jnBQ71;eX<2NbVQ+>t-G+1I|D z+z15LWp3+%9HeCWH==luF)t^@tmgN(Iwi|uVf5DqhL6Lp&;Jw@Xf)SL7*PScncD|b z#R7(T3BT|l)COFwf72jz!@@Ir%8{pQ0(#urcMdh(DqT|8`e`nw3u&Y4MybrU?q*&f z)#aq~BdfWNMdxfLYjgU;I!%r9alWPj9-$P+&7J zF=(I>{P9G;oO+I-n?#a#2S1=ijL~$SR(k0OpTmWmeU5t8DoZ!}g4N)~WBbVu z5VS-0ZrGEI2R7 z%|wX!Bb+&%6$wW_!PSyhG|@+ND1(H-{_5{mjTIKH(b6KKJg6Z~H$P$iUQ2%SfpJzmIum`yw>V3tUjv35iJPonvY023hfeem<+fi*uU?f0G{4Y zzL~EX2|NIV2TVqm;iaLLosgU9y|yjDLreEZ-19~z^3wOjXY+1ExCa4hZ7+yyhw`N) z$LB=YSl_C@Vb}sGu!tP9em7k%!K&s|A}ew_d#IA^e{3ejQryyH^paHRzptrj*aRLT ze##Ap-%}T!0>Q;5v)gDTE*p2lq)QlR(H1>W{7+*U?s7l@H1z|cIg>Ykyk|DYIL{}7 zJF3WP@G(N2&N419!O~rp_RZ2^G{BQe8kaC(Dj0~|2Z~cpA z@B)~b7sTZsNsOsClC>IW&e0!j`cE#xKW;mxmSrQ3$wpZ`_+j76ot!FQHG!O8w&f<= zpQ!_=kR*9cXhaszL5{o`txaV$Sfwn(2|fJ+wSU--!QoZ6lo*HC+VbavSZI*ppRM3l zIQ0}McY3kGXyQc|e`CsyoO2H6QHY)jO&o%<4rbA@4U?5!x6~@b3G=!dgNx&WxtcTM zWhP5U#qlC*3sRzV4ut1<#GL_wvKEP&5&OC~-SsNWrztMCTLZOSt5Bg3sQG1`f5a z_dIOSm%i-MYnU8(f1?VD)zoh+@ja7r@a}20)}JW~fG@>$hLxaGVtu-(OQk{K?sgRU zHNeOnc!B<52ZXU3)wrCHDU}wts11W4w9AD43E5l9_EqVjuZL+sB#r?BOGqj%+}?wM z$Y%K-%VenvH54UJUNVy&KEumX!&}9W))yc*kU??Nc5(n);8vf2zAiPxOK$_+;MEmf4ghf1$iU2i(WJZkX1%s?Gt-Qo5-N zX8SU7-}@^^47ye=jL*sWh56<=nDYFsnFsXDPQW(@XBEB@VQ7+oq)GuIecY0EYqnce zm;THKermwexl^;gUA17YSy`4AXB8yk&?H$w@^HXXKNoLI<4HxbKqcHo2Xk7Wwt`X%mUB1trZ? zEYGrOs*4?|Z<{ns#UJwF`)dJFBF;{fD+aC=#@@b0dYnUo>>EF2_NA7AC+LsV%=%65gN+Z!$>10JNV3C2?n)>ns z1)bqUaI9tEJ#yXXaY|Efd-y3~Ozc{nlx+h%Kvs$c$5=&lSFPREf5_?gcIvmlkOH~& zY>iL7Pkyg0V#84+|g|ZL!vqdCNpCKH*xJy9{r4KHX;Ef){q& zvSeKld-`xDj>X4FXk|L*MOIY7gjOo>q{Z&ukUbG_8%LH@usuInd=>AHPPuyl=_EPh zNi%)Wjo$SU9Z%cVS&%ZE(z<4-==F%W(IGv#SF_T9jL;1=xYvAcHImtC1$>%q1KZS& zQCQ4Dv8sD10hf&l0ZxZ7qetJmjE>MBaevbQT7y32>{V2i>Sd1G*F z%NzS$Fe^t$<3L(oDD%ak$9&2g7IbdQes~kasG+s&)^3VC=@)wP*HNtV1<^yA${Lp# zTE4g6dFy5^2~zIo1FmjQ!8Y6+FxzLjU$Xqw3Z}4WAT+ZcX4`bQ@4eQ*SH57Mj+vED z+e{N57_r)_wz0kO*fnpUnpe}zXxi*24r_{Z-fESaFNK4|0`6oFf3Pxo1y=E=jVqq~ zn-ww$vH5x6Gn_Nm6FZ7JZb`+s}K|xKLGafU?Ad<*?6Ob?=3cGq!&-)B}SKz7;qn@Ws z|IpgPxy&T>5ZiQ8tMROzjfBPf4Et851^hd$12VEql?$r9 zS<&8vndKMHdD2+EgrHxl$V45AOS{o{(IoyMLFidjgnXi`kB^qUZ-bUrbHdM&gBEqX zY62-4P*m4O9D^9ib|P(izSO+n=L0ASTHL*Z)OvOw~4xw7xi$s_G8bg5Y^l9Eqw z*N6<7qPMv)*SNn7L0Ft8L_;mxDGK%~(fnbgG3ah`s1K0*`1)L%3oSvIRN?&^+QF&< z?Yd|hAh&R(thdoPWOeD`=r7nD7D%CuWBm8j6PlID9QMWF+4TEy5O9_BTN+fP`gFP0 z&_eI&lgczNeaw6yeO@(HOf2hUOe7aWvoklZT@|s)e=>$Ee~?2)I6>^4mfTRo;nC;Q zSu;m2&2adxg{?~rF7r5s;EK4BHq|zlp^q=&=*LG3WU-UbXD~AUc996Q&xTXhCfSoe zBq6kk+>#0>rh!)#wU~C+r&rpB`*)p-3=H%XJBU}&&2gFdi_60oy*Gb)s87GA_VKMj z9*HisbOa?Qk>UL@K9UkH3_U1^xkV$BQqegZ2MPvX+>QX+BW&F6z74m2bQ!X)p)u3Z z0RCW*arzK*TgQPbjt5k&BcoA7&Hz|owI%(`#!^2jfIq@I!01bU@*f9FN8eFJ%x5jI z2A#dr0|bwF1b%1#etWN8inNp7gejhmM9WOcEQ`F3No9~T3?uB%2DoJG4f`yw|4+$L zLM(@Ej=LqbER>A{ITWU|am^Oe0$Wekh`n8rw!OQga=!z;swSr)7{X_ZZ#4EuYv(rK zVk~OfX_CL{T193w&@wg_L%E6lUX%;Jvl}HqF}tlfK(Bh)aQrS&c6~LSS=TZ<;34Ma z--IFZx7U{KiYHDf6V0k2i<%uLd@cIMszGX7T;acBHGGV`AD=O#6qQqlU8hCz{(yp~ z{X|HaS=Yh=y6e@RQzsqoVsY`;qWxob?+=2K@JqznfSK>v!vCvm0m-V_7C|ehu5z>O zjqehg9^-NP7H<*HSGKt*BPP2!r@WSl%bH2XE;JBGBh&r>av+V< z6_3?yC{B-2TR?i#sJ+gXhrC?Ks{GURM8Ej06!Wd0s|@EJJ4ZJWI&;dFA%V6+O=9OHbw z4@Z*)7^OvFjeSJIPM0ZvTe1-lC)A__$G~dGuX0@Gs?~(3>A-gJhsqspt?7Q?!MIj( zl-42G3OdT#)&uOtXxZ4LR_L-`es#MK!7=Y9Kf3pw0i+>YTgJq#Ivp7M7%bXL4{Q{7E>SSj*X>GBvPa~J*(>ID~u)oxCmo6q_V1I9^aEtUkLpXea83J!}0Yd9}M zH@;twuVBeV9eF&{MG1q)xVd8@2cI61p*WV;sbe%z64Fo&6Ny01+^@)L*t=2jnwRa< zTGD|2R%A8Ze21QDJRI4*=x&De0ExXDOKKp0a(bQ+B$M>W&p^NhqSD`L8b797yGI#N zljb#jUI!_8P2Rs89EvQ;FUiKGq{V=8Mwx?7?rpAd=8lb((PL*xuWzUyUvJ-g+qAz7&BDU`N}9taGv) zIYH@w%>bAR7~su;w5*OSzMq9C*(p$XW?7K@{TzG-is!cq56R?9HNf6n6QtXfVj~|m zqSU_@_nBvDd7p=%?3T<5{kQt3t#I3(}n4>cdKfXQ4+rjJ4Bg2nMP6=y^BE;zVWUoPIv6)mlV^vf-DzEO286a zB*iD{V-F@@en(F@5a1}{QKuGSX6@%d9zMO6$~1e&e?Yo2+Wv-<#F5+%%lLeVrtCfh zn%$JXRot8(+6wq|WmA10SGnM>A+6!?8+dZCc*$Ex9Ag;y zKsmL+$EB*p4~FYu73ad>rX=`dp;tp$*So43^LbEhj$PbE-b?pW+AsYao6wSqP3ZKl zGtNoKlqzW^6}Kffx7b8_VBp3jsoSpOy-^HvNoI=%H9HfwS1WPW1?Ri5^b5m9R|BqA zA~UU9%f;MudoSbl%&Tbkh`fk)eif+n0jM=0z?7iYrM7Qr0TH`FnbP8JyN1%a7{DKmP~J8n zE!+CNoeT0cGkp0K=j-f5ZVA>=laT42l98|0`s+{y@}g;YbZXYI%evkeY`F7}Q_r4| z2pxijvUk>mmHuoV|pIK{YIzNvTk-e|Ki%-lpJY;s~3F>hSWA$_|FQ4F8 z$0?EBmT6-4R_@S4a*?MrFH$~M0e6*?e9Jj@W#G>p2Jv@BddYMklk$z~Y<*Wq*N&1c~ ztErx31M^L_|C9W3tVcyZm95~l`+K5kDr3lLST@_FTo`)(ghi-W*VzaGh(XB(4Gl?W z5bf#;BX?$e-)2*}{;!^%(9yMWUp3q11?*=78*fj?GI*iT|3Y^NeVl^I)>Z(P{>kOf zS1;Kuz*O*C;8>KfHAc}Fv8Ph(1mbB}+Y<*0{~v1v&v!TCj&ppzj36IMVTh0*WDSGf z!`t4QWEO}$Y8ZKsONfn!+H7656|i3EA1FTMUS<9(v;cKrK|i1n z{J1CLs5r)UB`>sk^C2>i8x%z4&H!RAXuM(kzt} zqw|pV7Ys=`Jtj^cOVol|N2BMup1tBsN*;CU1<7sVs{eZYzGbsyMt?$72Tr)sEiA*! zQ?7||?pfjs?ckqb4SWf{m@4^Gm=gLq!_58+#69$UP@$VO!F z>b`eIs^SrLmM4)&;nfDwEQtS~WDd&ku&Cs(ZCN4F?nfp+aQQXElO z`D6%;lEDgU@pzgB2$CEwDzbD6ju2(yBgsyj{$l^434oWU7|U)huzJUmWgJVUt4rU8 z*v$%R&eJBh&HqZZ7pi+~@6M)%&i6a&CML^RgKO!7ZNz_4p-iz8)(peKDg&q);v?b! z3J}8}t=sW))}W2kitJH z>8;HGDi5IKu52M}3bF!^4g&h@=>N^QmNmn)&|z#M0UVo8i{J5oU(J_%A*j{w8GU@c z_VT4|6k!X{D;9i#VjZqX=rLIRy^`^mx)z>mMSAlT{s+Vc0Tnv?wJSKq8E4VEC)EXS z*UD79&bFBgdK?##m7svS33)cvT=a_pyij*lX4+xf6YKiGNAhg9uVZ^{3 z<2*u+zRG+8>}DYKYvXgZ{y2QC07dg6Sn`;6VhFCa;ORze%^`S%Nb|&L>BHFpXkqP; zw0;e3)Navio8+8%)6viqDcXb#F;|5v*_I19Reg5!q8rx0f6u*vRj2SMz}gW#C9rra zK3(?Q3Gj{aVCW+1QzkGCssZNgU%vPH^5Y?R3XrBn!8-()Q^2zC()pB_!t4{ z8j|EEK)%V|X~9caEyg^yf0o@h2GNlV$5&5R>jzZ0qr5VfCaJ%N;s5=&8i4cAr8oP7 z2y86K7y>h88V5InTW_cr#J_aX@AOIqP*Q=x)DKriws{8pZduLDa0rhHc4o7yEG^s2 z$eC34pVVPloJu9WTPFqOF^?=DVpORZv@K5TBx}Artv#2n(-=x%f?o4%X)>>b4>7D7 z_P#(UpUtW8I-AcR_q2JS0wqkN;)sI(&dloX_hH3LjCvG+af_q8Y&N~BH_qKz)dnP|2`;D#Lr;a~S;ovgXB_*1d@sBiIZ#Jlk+;wZ*M^hD zZmlf67l9N@1U)|3l7zGKhCg4?w}&X>Lj1p7Xl|DB$)81zBp*EJPB2(ECQ^*z9% zUB1zn{v2~|Dpqh;kZiOlB3SdSEsD{qDYz4>-H`{C6+Cs#b~sos;X{^>Z-Vl`s>x1F zng&!Yd5+Jav#P*UtNq27Y`IeE&3Zg0bpi0nMn)Se_h^EJkbYgj7}!v>`kouRR-4a- z2&asFRt?)F#s&y`0~a_XkhT&O=56co(~@a`xZJ7rM@Eac{Q8%4@OV8GZhSCh=QTXA z$*ztSJxs_8f=XgdF;QGb(iwlLw5jSOx+5%7fF_N&Y?Jj``^a~o208FrF3}n4(4tIj zjawI0K^1-V)W>9EP(h=eX8oY`+u)uMzD^~G3_53Z2W3nmQs}G0EcNL>v#C$g(rmum zc>nmibOHgxi3ccqbY7s$Y7W%&mu25*_qbCsX>-5w*GRtEQ--uEhBoJ zJB`Xa{Ce#lu;e!vq=_X#T-`}earjX0zP_&&Ft`e!fXm-YOopBgn$t3U!NtixBNx8! z8m7gT_%3KamJC}J@b*(R!s!1(x)A%K1dAG}E7P$tV3;Jy(Ny@win|t16A8MQ^-JNE z^QyOZQD(exmRE5CzBBe9Zvn|@uRbwQyGIXpbU<5QMT)+ROV%M%|l6jIIWEi zPwGzS0PN`O#aMGqA}vO`IS%}lzlSN^ewl%^#-Q4O20$wnez=wP9)hBD2U$ozK{SM< zlq3d#Hg|En2vz(ZOe9p`ce9M30;z!z6(~fy=*tMz;D&NN5$c)xG<6VCE@QER3!R-? zAlCXpF~I-I)?aLgMZr|mIw0nQYS#-sNC5+6H6BWx{Y zGscct-JN`nHf5zx%FsIx_Za=qB}s%*mz#hXE66GFFS0L|t%bNulVPDN6x-l>rGjdK z6R_*7>Y(TM{UJVLRY2mwd(1xN<5GGR8~bgK{Einc^nEY)aw}t)wfMqhv&k&#d`_6} z#+#w$rCJ-XM2*nHj2;H)wu{yuK~W&^^gg zjWm?Z!Y0rmnPKs}zmhX~6RN>1`Ickrs1*4^%cxY12SLoX4MD*(2Dan{{ zMtNDA^TY&hSB65@0(X?=xe~+cUUxnBw3DS04zpVI>e8`(4L%M)NR}i#I7LAQd7_c3 z(Yn}}DUFR-k}n6^ufhwLJp?}K2VO`A z-;;`4)%l&mO07ih=GiLkjJMxTR$iw4o)A4K#jEK53>+XZ0wv8r$i8SU?-D1%W{}r~ z00>xU{6e?H0sU4q?DlzGDWXx9CGFx%2k>vHr3Q7%%-Ld6p4JK*VWU$(iDAPcFhuP4 z+uhbKn9R#Z)NxHmQI0r)kQUwHRO%_GITCr56%&94c$Q~i30MvQmG=eknKHI@8Sn$g zpUc0gOrH)|Z-kYhM>G(_!c^%B*r@Bq;k<4y@QuW{SmUc?`Z#Q42}`6Td!ZPVvgj=G zBnzE1iQ{jq&ACQG%hi~*PWwd~H7624ILZpQbdpiSR--*NExHMt*HLV5&tBW?@cSVm zB)ZTQ?~SC=HNX^g2R5}vcM@Xef9EYq)YBA2H!zndL)FZ~ewIl=CL_xht>4NQYtD44 z3>J>~z9kftE@SM56?9Vt;u z!hs!PPQE&n1v?T1{=w2Ag`WX^C%{G;~AWvr(LiOJJh zukj7v+v;^ArjE8{$%!E>jITXgM2zis5#X2z)_sn$UX(bumu_=5*tM}_tBbLVFi@9Lnkm55!poJvx3Q9=k_XA)+@P}7rWUUpDslANf(jLO!0hY zvSgRPjCs%H^oj%*@HBvmogRnKfY{B^uOM3RCG>Kh+S=9jd#%9rFhR&jIt8b&d0wgK zQ|?fJ8ndnA76s0N>Tk~O_tNwDPi-{OiW?eD z!`x1jHZchJ-ukiR3-zNJ?uvYtsZ}%H7HaQWpxG7qPrEx3S*m*~_Bja#Y%}Fz(S0ow z!p34qzemWCJTjQj3utbv#9&A4q%RbFHu~9M2$OBU9r^+~?Ts@e-GN0EnG%h)0^Hth ztk-~Gq&bBaxcszLQ3o^lkOLi%SysizAbRq#s;tvJ_3Xnubi)pfKlI z7ypR+QSV&sN%ixon4Zl=zi(S`u>U|bw0)f4D5|S_rglhcUVQji8s$y%yF!CGDq(ZS zA#~+9x*&t#rkvkYM#&b*`uy8#2cZ{%r|UmlXz_=cO&3E78aO#Dy_*D+JNike&dGTa zhTuWh*?Vo(`HA{$g!TFX-%Wwa-Im9j%{9d;c4!sOt=K6a=)IerIn8R4py&}jqg|fO zmp%A@sUJ!XUyrO@irQ<$Qz-Dor?{@6n6d#mdR6Dgnu5zz0MRhoyHFW7OsO`u%~Ll% z&b+^lo@HZtu-!}T*5Do%NS6TYtsX zGRCrQRT3fU+QT&pUZ4)TRHQ~(Mu+0U_HxJjbU$~52tP3-CCD2mU5H3 zkjMK%f#^?ZL7zOW0;6h||99AUUQN%&VJs1TqFyvG=1Ii5Z)VJ7JkX9g95^1D4%ICD z%V%MxfD{7q_|p=!(4bTPt1n=xz(ok*qN^zbK3I>=@etpUd#Tp%OVFXF1rX!erI!sS zOH({;L(MUtY?8iYv=bhr3*N08l8oG6glg(3Gm)@`xGorUZYv71xY;yaZrtXUrig%+ zxjymejnh`${1cXZ?+!h9+ji&k<(EZcxe@h+DIObv_TFF%e$x*l3y#E@%5ga2x|sXR zK}6KdR2U4Gb47G)7aQN~7$AdgiAOG{WXBW9om}z4!K=J9Gg-)EY>pIj6;ha-l03-> zo(pF~6U;m!9cZOsCarv~0U+DrT(JA@w6wBC7;c4it47{}m_ZC6=J(fs0!-Yg&KuIU zD?DFnqoWvz0mZok=~cWvH!t*S z;dnKBt98+JA$Q)a7`j-VMcKvW(BpUeE;Nt(JB$#-t@j!=LXb=b!dZWUuL^Z*;eD&G zd4fRG_SS1E7NHi!@{~ETD6VvrmKpgz1${ihiZ@t!x`O#5A0iXK5mYrRvAoJnbm_%x z8)|QU%z0lzEb`5N$)J1#`qe*XF@?nZc?*!xIwtr>O!LrtmZ#CD+6+qX-D@Lb?>9DP zB8niasRebZ@Xop}f)>u=CgwqvA;Qae&wlrrLF&7@@T8+xKy2^`QS|k+KVjMjiu$8> z8;}B-Iq)J6 zIvm!COTIrp`m5L3AJ(w4T~u)z71}_C$%cWc*r3q0uQPkT6;FqLHD^@pXgV#|S1~Eny}*ygKG!Q?%3@<6q7* zR04bcZGj`v3o?k^{#`$!@iek;|pzju%cZI34?z<@-PSn8HvN9pnPCmcvKRqC&t*aiStJ7yoU-BF}8rM)`>xH8Or0-;G0f2DgWVnX0>T}$J?CCBj_4FiNl*WZxUEd_gl4dpkxo&cK8C0 z6F!4bVO$iZEafD0J2rB0+xc~C>EbqRB(GLcS7p=#?*x(4^R`oT%hDI77$FV-5lq)kRa90pzKn<;H~6ra2nG2`uk|F7#fjlzV4_9AkgM^ z50Qm=?I5{~njGd21Q1f6`ggWpYgwcxJ7KS)rgKFp=}{O`1B4lq)fFHw4;;ASTqzW- z%=O>J+<;#P?AA3`%CM(*`zH$1! zncdZZrP%XxokiOU-yBqZ^IWjopGEFiWcD#V4zyXK7(|9_Xn>Chh=b5ox@(}u#FHvF zCQ8kmtaoH?BnG;o&8LvOf;w#sZu0lOlZR?0;w#c1AML@S&_X#%)}fX5@CB7=Pd zv{)|^>;F9Z%$#B*?{Wx`)=m;hVLWzoSt<>uuL{sAmb@%3t-*y!S?fVH5TA%O?}pD8 zvJ-0BsM9YKEy_?CcSg~A&xNYXT4Z;8fH*UN=)gD#2o9dCVbk{SRzJT z!OL~}*sHe4dFIj({)8o2zZy9;T*#gWvw+*^D3n7S61_&?fY`gk7x`ioJYTj$o z4w0cAIbb4Y4Iv2Ids5&eXt8Plz#+#dO%!Ia_c26i_S0;wL6=rYL24`jAaOe2DBO%m zpMlp+=_f~E__f@EeWi)$G&MPBnd3OPwiyI5%gYvJEx3SPGIc@~P=EFW6isFu7G_Lm zHMVMRg1uu@k@VGxuUNi@>?fK*d<%vjMpbb(-BwjTU-{3kgc$8dt=PsLgJqE+;# z*7Ej-)Dit!R`c#SV@BRzwd~5rFMs9^Oe!a_JIvQ1ENNAr<5&13>mz5)7@S)ShWo0} zH%hndBFjc-V;_llB|;yPT$MFgH`MQvMs57l8(@_RxbokncR(*h@Wf5E6U=eW;sWfv zW2Xy7K$@1U%5>wBilf}UEenVCO2kk3YNg}}eJp7;Q@w6V-{aNS5YC>~5Jz9plUNBy zNUH>hmGE5xA~rUWo?z2wBk?9f;G*!6_-z!7$qet~?`Afeq=~LowUFB4Kn$NTymVKs zkS6Z%wo!MG@EVs<#C8{QeG(T`dpQ0H2*h$50aM2`MUMz*eoN@B;(g+d2ALJJZZ_FM zs(mW>a;>t%=HZ-+$5(94fr5edAQ9h=hqdjEcFQa$6z$yW0(*6jUYZa+uD996}ENLYL5`dxNsE|pSAY8C`A;LlXyW~oas zonIfaOFq`Ki0(?L2Q%BrRzOAn>9 zMbW7+ch37d;gmBeX$p~7j+cW!<;HKQ2|PK|Xc=Er{HL1+Y;+ej_|2Td1(tIjsD8>{ z3RK>>ici%x%(h)RB5?q$6K<3@{`E6k*BvM}j>AG^tJn5{V*2n-ncN{J>A1<#?pybU ziAV^bSRH1`kc%77?c6UiNtP(3S|EtF_OZ*Wgn-)7QZHI2UO@%u_tt&%wit?k((bsk zD*~AV*(~*?W3_L8-yIS}adenaJe_G_T(ApoSm3rMs*Tqb5XJ(XwnF7Xr+-+OOn?a7 zR#C>{azORm!DZfi1%Uqr0Va(r>8A;(vQDiO0K=hLw-s3HJDr}WznG(DDZz?uF2@&@ zZLqDy9PnQx<6q=8$k}dIb+sSvd6k3LWrU~-@}jY4J~!b<@iO=kH~`M(0;iOoqQbx_oEAq zBas2=ll2@VI&Ycr)yeox0ii8l095VKvXFu<9DH2&0W~Fnu6v5p{;9Ak(E1~+cNG%k zJ?Sb88eq#&ie)E7{2ezaZ!L5#J1Us1s!RhF5x2iXlx`?ktG;l@OMiurP+qVlL@lh6F)M9tIz2gTbGC>0&No7Ry*p#=7o;XbC{7A%+F6}TJo1ZUtVQ1mTAt;^ z>u|TM_H#ElE7<#kHdiP)keRkF2Vr;TF9be5b44qpK-3^c*C_rupyFW`a8mbA%M=(9WVX68AxBE>m%_d| zDx_R;(hqEDdzpu%qs{C2dxn*QffBCq3@zPOI0Lz`R!J=^FLO_b9Hr3OvbK z>_~|oW(GK+0uWP{KfS$e8;%Q6%6~oZt^7lXx3JM z9H_Ir8jv`KIR1nijIy1x)sInQeF5kz9d&#i zbmW(ASRzs%bYdyUy6NsU>h^i+!LCXl{~8=qM_K;84y?tEb_RNfgRurHbtl18)RRyRQS98OcA!05QD@z0H}KW=?m^hid8E2YQl5 zTN_g0JhY?iCoq*sB@q-k&CDh=m@4R=G7Rf|?&oa=ArQ4!SeO-4;hd6VNd7LpVut~9 zBS!@uVVZg>K~t2BOAD8cGQWSD5fpTvNJhjXE3w`I679ASSA_xZ1p9EzT@WHEpxO%R_>x?_So7nQP&!%qgk@06M*6Ri zWC5`imlAx4%WLF&P}4MhslXv^m!21QTI-*+&IZt(~$`N>8T9u0q_)g zQz*M5>?k=HH*CwJ*Wbb>opW9XJNG!Ra^rgFNjXCtsBb^CRV-C*SC|q0FEIv_%!jIjI)kh>uQObx8*-99Y}Xzu^jzOeNeBZ$e9N(ODsrdUG@_puF z(PZ}w5re=1l)xBu1965C;4fiLa+M0qVg(dg!+bHvN zd7kZyid0(z&=5-lx5H#VMyo|e@Zalil3Jfifs!F9N3K+gUzvPB$sa8Lwtek{q`0pv z%yRfivC0(&>|>3us6&q-&`;oCj==n=m!md6c*FR!lVDl$h#aYb65D3iF1e{hxe)WD zP(hhQpa#;-0f>RYdA~|Zgi*1lk+LQzswM$7V_i<2^@aH@jIR0rR7VPKtuq>HDcdDm z658HaZ)Y8d{}o}$@~C}G)>WLT0rQGV+_9^P?Gk1;2>tXUp3C(9qOKnvu1pHVYJwo9 zBnKDnBrjZwmjaMEX=ZBzL8w`!%-kn3rZi2fvc+cxg)@^?r{-nfHlQ|=M3oYjf7Yn8 z*V_>feEKG<)HRPswZnZ>M43nXO~4l8tE57=JmW#Lf&yYpi=bXo*)&9A_!Yd8Tq`@J zgNKfk2%GrSGck<6onmu0>l9zC!_q!` zuES_q{)7EI2%wLV32UGn4q>0|sGKpqszG38V?QC6=XXU^5>_1WBpAb%K6oDGe~g^} z*%95$h6Nb9JdzkrGgJgi(4Z?_0hehrk<~-054(*}i0|bo!)<4mbgI=$#%7Jc-VzdK zi&f_P@3Is8gnRze?EpWaeLWF1>CeUbD)bu#>F}sxCsug~nP2xR8c!t8+ueujMf; z4a;_M^-p;*1#?H-q=f(Wpp8hkZ$V%|ftb;VPQk4x^%MaAKLEgwu>(*`3(U!1%k87* zY0Du{7|%ycNsp1b7bENzXV7-)o@;93Wqcq>%%ZD(8UM4jitJ_)wqfgi>gNxz-^P^u zE3eW#OA8UGvLYnKO~=RNU3a%Xld7eiim*vpKvjq^{ND-XI;n-`6DAt}MrRi8H%f;L zzVQfWf7VQ}&GQor%x-mZtt^7`;ukQK0-L2*oXByEnU%r^qrUU_yk_GMMeT6N87_1| z>?2}S1yFcJI{o4keK_Q6IslK#5psnO=nqOh2)&a!3suj&jt(y|P^KZl;lUJwK+JZm zyzGs5#M}lF&l~#w3*5A=v|}Ic z5`UEHEUtY}ZKCQ{9{RmqO&1_O{l8kGN=6BLmXxbuOQT9Ro6Tjd=(iB6^>GAsK%5cu zILRCeKVpqZ?QBJ5BnL@K2&N`BunnJC`a^4`T>4-qg~7rrYRi;YMi}FY51sy?d*|11 zvgl63m3*6|(T^UXJk=QHJtd~pBD%sF6Ak`ejjJ&Nf z@?cpYuXk2l(3e>2(tHLxICJMzt}=hQkesQz`KOh@%0b2#b*LW;<1rS1^LI(}y*m8R z?-QAo3;L-$y+Ye$)riNOq?1qkj?$Zf4qChh;-G@D9VMtbxp;!zV8U?^+cR8nfAV!b z(jJnL5CWc;BP#O_xw3^UGn-goNCVb$o>QmDRr^+`HY>3%B)`sg4c9 zaGE*i^MG%Gg_}o+2YZIC%(dEcGaeFlQ>xa9BynGJCq8g46H*thlE~?J@{b+c*I_6`P1ffU3$bhLC3#bzM z1;+c&ThEc+{&aj55S5T@)smV@E1tw%Y(k-)DKY4HKKQ+VHMD$Cr;|UKwmr^cw!@-9 z%LZ&)qtSn0;ZHiTfyOu=0bm9o;ikSgm(+YYTrElHwJDMw9C?*Hp>i|@z4^MEOrP;5 z`yy-U4!H+b;rx#Zrt`x~5|-wxeS4CHl0Y zqU}oH@zq{`!FNB?y_+8~wbdX>)9*)0jT1DK0V>?>Zi zSIma0;G`=Ly2!pD7=UoLGEBcKlWwyH{}dl$$&Txp{&}smv-VSItR)xI9%$xORXH@-W};ti`# z`Vh~nh?Y^@FhTSvS$VmSg?Kq1B>I+OJpfCKhX}%t8T^ZV<|<4+=Wi{@sK)Tnr@vMn z67)9sq|;!7C&l#r4|m{$Ogt)XVK>6%Hv*?|amL0f=j)mmet<6Cyi!GX)HUw(KcS%H zBTFd>F!W!I5sHJi?!aBsEB3T42twLZ~iI;X?M4GkzbLGGj?Sm0<0#cgPp zhTuJtmYc9D;my`iY;%%vfMYBDlGH3i#-*8_MOyGCc|EBY^Xw5#~&sMO~P#hne z3F33=f@Y?viQmsRVxBx+I_-Z-xrS09*>*rx8rJijs?YW#y_R(fgO1F zzJBWPuavex=C^Tixh~?XLkgtj{dJ;#HSlTux>LI6eIbQ13idG2J1P1Vow-RiFm)$9 z6^*BSKL=&Rd?0@QGo=5Xs*3GA*w;lu2{~(t%;xga$*9?};`pnMZ@Fk!@lWg6!ZV;w z-K;w9mbbc6`uM2n-LUCLa%C!GeWACz2v|dlPi}%OjKUfPyN&3Itv$xmsSdmnT;X2>d+uUZ6M7?ziM5$i z7N|7;RpNYN*E}CLz7oIaI~C3 zzU%PRop;B(@pfgHc%yZ&b=ErKF&%SUKIUU8#T%7H$rICGp_ruX{aA<~?gA)&8TqU5 z(<<^Mr4orXXVrF)(&6yC3U-4nHuREllMU{{?ee1nepZx}>(e7`q4&D%nm{f0^!+d^ z;v{{Cxf@hLm)mVShBFSl1j}C91|*_VyL+(+_g{}0DdT;pZ*zAw?mGH1lRQ65Wp?4M zS5(o-8g%rw(Y;?y0eQk{J)`Yx#wq;M1Ba|b-O&K3Srn9NO|HZNA77SLtU2zD%Jb+f zg4v1bYr4!&nFsqttrY|z2=?DnKLT*ZoN!}0GEHPj`}v9|SSS zNVq^k1yf{K490&kLrZ?5U@?!OE&*OYF1RV4DNX@Bbpw{QN#)tlT|yeADDQg(pxI1A zKVkK;T%3!86`si?R6m2HL;6$=Oyzi6={StxjaLD6fzJB?(m+ti+#QUXkbcoxlb@re2b?BYBTV-Q@E(7kFoL+2gQgrigAEQXpCb~ifUx9kHwu2I6yV#~Wa7$5 z!_lpY!4}ll8&>UZ4u(DchMOk*9{MNlt{5d`?h&4D&56`Yfd6mET7S2nGo#gJzWk%d zVJ>|{&z2tBi6h7eCG;VITY!~wQO&$aPyL}*T_o(y?S21v$)H z22{i&6^#MwT`Dw}E~hPvi!z1#T~oTc*~NgeSc9zoYN*9cB=dA!^86q`lWg;;qkW{b zjCite>0OoAWe{IlBvcn#&y}?ddEQC*4lWRaVGIv|Je)Fq^5jUKPee>Xbl4pE5zHpM zMoX4L)=s%~v(-Y{PBj;l4eH8P8!JZ3C1)-I(S69{HYQccima)2=|sEa{5?62Ct8Ap zL!^}w3y-YV4TISNEBXGg4?VO#gQz^w#XLLfcn~}Or3QRa+&K9}q2xY_A#(cg>BG=6TW+J!!B{lONRrQf>PTYgfM> z#3NxlJi|f5G@1i=?&x76$4fWpzUSuydt+#zpc2&DyeTHRd&e_SR01WVQzOU8;#SsqiwRW<0_Rv-yc;aS30jRt^WpEtX z>nwnG6}8RrF^Y_6RhL1C@uRF)^I1T*!a)9ge!=XM=Ul&Ecln=eL>Jh_z>s2+}D*vS30mHrE-Zhzb6i$6L#pSN20o1@l zvhR6x#yG6>EF0-#bE@hZWKi9o4WkWqLLU|A%6e|@yrT%zn8R3z zmGxbzO&9D@so>8by@hS$&zPx|xE2f%F-%yTUChn)-4{*)b%I+d>k`A5Ze@nQ<(rZ* zJJD#&KQB^rKP4-n3$bZG&KCyAg?D?$P@Qu3-Ug->v<`&`_WXRMTPx0MKh#9CQ?Ue? zKT9TL4c~CBjmPb7{tHygNefuAK^{12 zWM|mH72OgcX(sPVO+HZh5CV(&fF0y$$nGoDj7eGIk2Q${!wxZyw~Q?a`g-#S?Invu z!VZLObB&w~GP^WiU$%W)VZ-fL=FZfOt4DQ#THf*9zU&3}p`;jXeBwp?)g&|7C7~hO z|2q_Wg6_S7$m2|h{Cw1$GHT~y9@@WG^luZPyPxWyH}~*xgZdnD@WjC5Y4GS;o4iSF z5&ZMTUe&A>SdQc&6?)N5;AFgz#Dk`8pG%S&4I*M`1Pez}!?~gFuH(h-cJHMJWQG*K z&7OrJ(Bg158pZvKPSVJu_C2k2n!I&3B(8Fq(Uv^%tEixN(6Qqr1%PZcy6o>Lmwhel z$FkMr^~M6F%&#t-Ufenb?HyOPh_%~D<{Eu9Dc6xP?aO};c!`v!ACL2R1!Bvj&#?+& z=rXV2zlP`OmMvyeBBlU(M<)x`MC>csk+>EwTn4a=B~ncDgR>d2tdfnriK9~Ww2z?Y zWmu7^vGCC2dnU=_wbXVKiY~9FdLoKbA_njt|#b6`P$3 zg8OFFA^ybFG8?cmND7in@-ba=cgp)=fBx-L`O8ZnArg8+w~6wxWN&*R18jl<*eLZi zKB(pXAC=6W%R@v%Y9BvjE_<#oPll|9XyJy)ocI<;yy`V$0!YK6knR%i~1j( z57nM~sjZqNnZ~!t4Kl_*PU9-YYKVm1Aadln^gB$#T0w9C8$(b)a>hdrK|KuWe+U#9 zhcIXmA(}tAuFr`eJPDL5V6}?)9-@A5y0~hOCnnG^`B}XN#fhGuiUT6*&J*INvb}uW zw)UBwA91X?ix6vUqB1GH?qJr&Pvi{0k;X9FOw}1-JbNX5yqOAe>VG;a?Y7M+1oM%p zqV0H!dP9}9wkZx}e2f8-^RJ5KU9&PxvlftA5kqa=Wjn?wSE?(ky`7HU=;k8xZj@yK zVCHnNYrm+h#m4r8TOnPT5$OnP7%Bsj{2|`oP1+1N8x38HSf4|PYYWM91t?v?gu@*c zMGg>jp*ymU(-+g=C z66g7I61KNWpGc_ z9*s#>H@AEEyDQMzBm>V`EBGqhxzIHXCsZK@y=bz|i#I3&{!H<>ZSu>pV)-sZTkdy{ zXqrEOW6@O2sHrwB?AvtquCG#a0x+HbZ1Ow+1^lc+`dbQ{8qYC{kbAAfDqHdw`Vq<+ z=y&+Z5IAE$YA?qaYmnMcol$&=Q-J-MT!d0){n)62)|H1Z1SIkJX?$YQu} z2=2K5d4DrQW_<&#@A^u-kxT{j!B z5IQo#Ut-eWhim0JG@&H?WxE$*@Q=~x*Y>$0yi)Fv>tlKo4N+Z(4q>4qo4;)RYLTe# z)1AAJ5@GiVz%b~M;14d@mLw74f$#9cI^rP0AxbJtg9%J+;34jR!uP0ViSslv# z9s(BA&twV1dlHJI2iNvxX!N{e-d806^qo)@kvAB=shOg1OiL7@j8eRmFGxCm*4e@y zQ?7e*`AqOyeWry_MnK|YtJhLzVG(wMiEyMf`~A|SZi0hocQL4e`#=YnNE1xxI!%9t zM-$Av-6Bj7umM*yV*GpLbCxxg8dg*=jy`#_12zkh>#SujPaA479X4rWPW?Z;uuZMv zeZy1PC1o}t3|wHy&u(`&|9fEa;s<30<^sPaG^rI^#q5=!`nV9s zhyzQ4a*{JK51D)LCo0g%g{EmGU{p@x6EMJ6V&?ThC6Z>qcH z9>f|DA`N@;1_+lK5NEBcG4qxRMq45w^m^aeD)fJP`4eRr*26+seeH%e*8GhA2Bx>> zPYKHnd>G6OWAR)*f7ETx8Y`~o!T)How_;w8-O1A=wa8MWYy+)=yV!71g5*X=oxFJb z(7EiG!w)4O2OkS zJ5XelhS_@d5=(ad1#~h!%?94^f3{Za7%sSGj#^@g_VjRY1ZYAJB$wB%4#fuTCaor` z{^A$6z*@wVk41W-($+8GB^l_s~s0|g#lvHg1T|k$HP_>S`enLbl?F9x1bv3 zqym0O$21D2j3qoB$oGFUV9HEsQgs5t@u_!psVCJ$GP7iGblbSCyY+B~Dt){PD1f=M zG&Lr%c(B#nOCz+I#u*6rN_bl4XUP@176-I2?00G$TM zXwu(hl&|_vDSEYVu@2Hr=I2d>E8I;G|48E?BYOzoaHfVO=E zXb$r?L-*LxrRMg$bcUxvi z#v#Cy2h=4!uy9xGT}jQct~u+4p{;qegQ$dfpIz&2D}*CJO;u{W6H0j)Wp!?-&9Z0J zxIpQr+Stkwe383yN+JtHg5=}&v;Gq>OuOvB`}EfQup`y&@&pxe0?^OoC{InV89#k& zG8BiHeo)_5QiAaHcS7>{j$GG(^RG>kuMg+W>k{!`!l+;B31kZlEeQW*@IBL2P9cj#?5On1+TXc7WKFDYk-7a z$OHHML6T_nfBpjS&EsmkiOTS&{64{~!VGI{dKP5~bbsY0Fr+|fLRbR#&p$;VKv&`I zJ~r%O-3sTMehGwv$17!2+Z(5Ej<;G=92An1l5r&gl@{X0xo2qK%y4XPLrN+{NEdJK z`GvwY22~LAfx=ywnlrNMJl+<7;jpEIyU%uj7AYCDWIz+7bO>}m6*giW%@LE$t&;mo z--JwrKt?02GAKn6mkR+#pchijH`@@r&YfJ`AlaCob>V~pJr{*h?gmUvbCZaKJxfaY z^yQk+*i!tBq{F7-j|H)-P`F;iY+9qtdwCTTS33Ga(67#H;qzUa|CJn3MnSWG1Xu5` z@uS87jGb3L%P6s#xI(|TuPKF1eEN)Mdr<=|01D2f+U*UQs3It(Pody$?2IkxpoijG z{_^fB>j(kGJtDr&b&1vF9)lfHQO9AuuXEpd+M8m*7H=n^=~++(0oaHZV}MT2q<@`V5WAi2TTL0 zOI@3VANsd~Cem>ZjD{UIm2ohrJ=wC10s^ZEgD%c|{}(yOh-bGqP~LL2^9#k05IXRX z*Y^!VprDj4$D>xLo1llBG$>MsfpH$g*%dP&9)&L){#!?J9zlNT&5>Z}mL44DRnid~ zx1M9acU@2wn{j`4iSK@j=^CK{2_bQP#2ezR%>`gCy63$5mrLZxQ+u*@>ftDJ*x`w? z&f9q(Rj!BZndI`N4xo_@SBsVcU3f?b%>j|7Ec&slG(a-tiEQ95>mQS z8N=gM&}SgM5iOchqLO1f@;Z)Ky>0~SAuso#`;w%s1V?!wc2&KuH?qM(eaQOUHs%}f zr{e&@noRqXz{jUhM`i)o<=T9dlRt53qZM$PxY+o(UOv35o7xG?=51|>J`9U21kv2R zA-)D;b7D|-A;<=OQR{v*(|N4HrLP|#kwK?}HFPCLkzWW^Qft%8TP7@7vkBdu-oDoA zs%d6EjUmEXOtG)jcQv@-6moQtAt$ zY@2L*XiatdiAtY33YO)?TU)i5emvas>WHnWD01`(+q_n@^d!O`&@;l?JFc*v!hrCo zV;dRuf!NU9m|>}_S!Bx%w^fE$4FjDa>1+!!fjSRZ)ce=K!Ns--PS+G`uvB5He!{W{ zOeyr38-vHe$*P1`Vkt5toWiQ=O4!KmuzCbl#2?@4XN;ZSdpK&xU8&VOmh@ZylYrZ~ zHI~@yiq>Uk$VQWKaHz@@f&{&$sZ;jbTcra zKSnT9fqayR@Dsxds|g1W7@tlo*qk4V83)ys`+{CH$v0ZOju3!V8c0Lh0{rISXM#sO z`g`C+Z1-c$bVeh1!zon3Rfi~-l|+>=h?+Hnh57sLT#LDH`XXeFn%r9BQ9)F_1&i+N z)4pKVT<3K-d=LS>>fQ>reBpm{CCv0HpdKBBXRk&k+TFKs7HZ||8u=$wRnpd@x4P!liMw&lMf$nKB#bnq&#x!&b*+t zvDF}W@}*G4_(qhQ`Gjn3$NxlI(jXGx5%^I^AE@DUXCbDLp+R}$%S&3$ArAo@Sse!! zK9}z@@U{)s00?rMSnImvwzZx@16s$fvWn(2nUSL*HP`}t!KPEe(IyeQvq*9g0o{y6*@$X zwWx?jM{azpZ{?!+@?{-1C!3luJ?BDQNif-%pfR=f&DTKzANVZMAGw5&X;w@?`1nP~ z3cRYawur8FzjVk!unk3R0~XK>VN%0PmNv7p@%_XQ7)`!DTBN_Lyg-Nq$erE<`3KS1 z1wM~=!PqHuL^(@*c(97xq9@%m3Tk=#BrZ{15&H z5WH0yA-5H!LGU67k7L>Jbko?2y@_$toJc31Kk_Z9P=M+PJ;Dk1Jf!Ws-H@<9W4%E| z9BaKC!wv8AsW|w+(RC}0D*H(Cd4{_^VfcPhj(1)DXuDX=MB4ecjWy-;&Y?Y?B)pk8 z=*#Mq!&wtluU!4#A3I3Fi|2z{9U{EIXr0Zu10Z~#!4#CbG6d42MpP$9(4`I@Zky&U zW3Dn4rU-uxm_|Ezr_K`*lWSXG-puIS!p6qSRJzK{gO-T1#nKJnc}_$oh*|XEcbPmW zBNG+h--gY|XM}ZLJvF$kd~BnDR5Xjnmomw5d%^Ray+XpM=s*p;@> z{N>>gLp1NVJNlTaY8WAE7J+x66PRqcYQD9PdLBnWm(Ezrlilqx>ko?ukLNB`qp|#l z!DS@Pxa#Zc@wA{0Mstnf`s}E9s2!2T2%4as@V8;|LC0=La9yGdPD}c2{h;|Pk5Vc{ z!E$v%4k6lT2S*pZ+0gv%C2wbG*>_wSndf8gmrZb+Z&(0{Nt#Oi^^NK|Fzt4kwosst z@hrWfmvaU*zy<)JZ1ghy3Z{Aa1J8nNl?)=G++TjCdz1bKIR2O)r1UTAR!uby858GD z(9R_LLv`e3#z|=2!ucxWwAF9Li9ZgjZk#H82nCcodF25_9Ye@)><1>A7dH4U;q^Ai zO~RJy*xdgSkgt|!T*%O-&V+?Cb)0$p1OlGx=Yda)L&eZhi`$di0g2qgI7Y6!$ai=I zj1^~CZCWM7I!5&G`ToNiy+cqDgxGw^>IvudhDmlBY&M$|QZkCRgyh#! zU*5Qg*`vouHR>kXKXMVyh>QYth?m8h&ax?vQb2-NgV(l=l}a7M7LbKBnhyLHv(tc5Bjs1Ny7yH&kHd;aQ)Dc*!DRH%Yi)%Hv9D09J_-(pV z=d0;QdoS^yrwPdGj!dB>1lhEyk%aZ_y&{=jt6Au({2ZlT z(}GQ#*$EFfFyBhao?4N5K%jtqmw}tH^p*Vx&)Bol%L(&lOO@D2mb$*i$@fH}NzD?Z zayrphiSfiu&&Z}1P}MpG1bMR`OW*v{SO@55qEt9iR#7v!ozD(RI{Goff4z1Z>CUl_73OVB@)mejPuY zTtZmB#?2_>6U%2pW~tT>--zpsv^e5N~3(i$md?+d1ehsfh6Xxr&=>OjC376k;s0SKL?C1rQ?_a$GpYr3<;>; z0Gozqa}ty!Th*XEmXce^h^70^baH4U3^@xMq5H&&3+7bJ9?6=^9Vk5hUwen?SzlT6 zpWZxsPF*1xjZatP)gS> zb$fpAaeiOoKHCt7xJslH{@wRPvEpIs}wZ98WHpi1j>b9=gk|Qv6 z_7d{pk7yx`$bf?Usy{MHeqrcWw`1}AKGP^?bXql1SRSO~R(KOhM1r=exsgKok(L~7 zVJGcopH*?~GAoYdJmV59QYf+-?itAty6~>+FL(7@=onng zmA!XqxaQU%z-*FdOH${I?=!JCsK5`6f6$%IE(4xY_ce6(m(O>@{o6R3;hjYr66UPPiqidI*R52A1q) zbzw}ZP+>?bC4E@V5p%sWuQ+bemYZFu#dY+ID?0PP@KH!mQ^A*7LgCy>G3GIy_%`4v|QL(p?5cZ2g=pmw4zp=~R&qntae*(@5Z}Dp4BI;82s1dZIpNvqN zM7*86C3yvA08$a@d3k_QaiN-7?YYqV*X$Ld;oo*D{*1-+e`jeVcY2XBVMO;30^*s= z-paiLx!s0GG15Dy+&(7qdBUG3-(1-4UTo%W01q1FVa?U+{2TzlnYc*+F~n0w?Jj(K zOz}i1Rh95>(xJm0HtB{Q*_W_18``lg!@V=Sq)b^eoJ>?pV$$)BkSG%U2>=+wb=els zL+)s0ozXxRS;kX-=Kt_A40K{02XSi>j9IPYnPobZw9=H8+vp;)*Fmh!c& z3Q0J}STGT4Dy@8_tkWLNG3^OXa&P8$5s|%(p;0C0t_QSO@;|^#91;g#c**;M-U3x3 zI4)^>W`H|5ESkzaGxN=l-pPlbVX?*uN@0`TngBd{yS7vvrOg7Ua)Pc?VDs~|)g!)5 z*wb{!AdQ`k++bd16)FBxu`GX=Ipu+8><3)HYGk|pDJbyOxf8?gSi3YHPbakm{SRTA4Ny1y85;{BhjZj-~yqN{0$h;GK&~s9FR5CnT>TmWy969iW-T zVDE6Drw8tv=j8)qgkaddhotE2W+4srlCBSbX;d=^2{24{s*7eW$4+x}joon8dR}mn z$3mMx1j8H&WJcPfJEH|${q80zbtGY7pOR%~D%8Gr_FlhUGg|4G@u|yFue3N5K*w98 z;)&d((L)l%dv{zX?2&1^m%_YTS>Q10x`zrhZ6woY98jnfvUSB0?9fgCh>Uzq4Uzg7?zA1JXaycb z7;ve&+7Yg!%MkyAmli@%%yzt{zTQWN!8%d4Y_}}W*LM~sDO6a$V8WrlO6HF!s_K&llY&$=q<(-^8(#U#vW8wMqAdDbEBRB- zFBu!AGGtw1@Lm`xU<5TSInjw_c)%@mzD&F3>8jNC1f!d>!vHVhtXQ3_g&PMKlZQCJ zcEpS4Kr36bKZ>W~HNewzt8o|Dh7feZY$5y_C|qvJV7~ksLf#QJV_-;Poo0+IA9#ie z&pnu83U#7g6Nop3me7}4V~2TaRu`+l4Epi;=xh^?lR+H?oe;_p4_*g9>XZ*fi)Q9E zDqcM)U$xv7l*h*%@tj#7jp)eEU`bKy2fca*eRzYH5GhMx%65{Z1#z_G>*+YLj8vEZ zOu`j}3AzAlfoql^tq$Buoj>LS9;}`)S4s(>s%ba(N91Zv&N`*U_{vgfEYF`zm*zJv z>(St0Bk4X9bY*>L>71*j9qmzey%POQmUBBJ968G5jvX>(uvwgk0_2P0HvEgV{P%H8 z6t6z1yRtM`L-h=7q$-pmq_YBrh(B)GpRr0h0Uww;B~93VyrgGyzlB%Q$ePty2uQ>- z;WY5(zk-$OvT;)M8(XdS-npQ+IpqS)gwK1~T|LWjXIf&?@IN)yk4JP~{;^TEdc9xD z$w&o#)C%;>oi6OCD?cQ~*SLOR6>uqdC;*sJWX6u+Ixi@H8Gn*@KP>5mUH9AD4 z6Xd%Up5}G*xCACdj@I_jyqg&IO!%NESf*dVd&i9A&c%S>QOc8GY|)CAUgu8dXD86{ z{LL?(@)tR93UG|(#J8#8j*JFuqU~3FJp(p^N$h;Q8%Or{Q;5Gr-BSW2^&>ZOU&c3> z*y%eq`X282bAymeO~a|vzBb*fe7}jx%w5rj!RCOoj$l_HUu_XOPF8lfeLOau1K3D< z`${?rkNQW=&QTBKx*<}8vsEd5fa8C9aTY7vo8Yv>T0(HoON#~#we$UHv;QT=ymh!o zfFc+=;i>VaB}+aVSUV|gWZV{S=06HYpMR|6u88OjjZhUCfTz!kmS^-L7u0$p9u~q! z0)?FQrjo$IIS9Agg3o3`JVJIUI2i53!$3m%Q71mp7?KX5lpg3tK(gi}AIEXd#w#0M zHZ#r>gh}dgAq>ucCxc{j20QU0dwNK5fyedhh*02)cXJ)ZEyh$V@oO-I(n;B_4ud`k zt}6A_O}q{=sMQYupk|`9t@Az0zOknm8<0)5G5W_}CGy z$YJ1z4uM7ySuO2HC4Ooz3h7bm@~$8Q212ZM-0NXDpaHi?_MPeeG#RYr4kNH72|#c92Y0Kh;FE31Ia`J{a8OA>#njGQcX2qA?gX$Xch*Q$9Q8$mbfWWK1Sz)dV0Vp;SFw{ z_0=5i=d=&W744^K~{7&88MZXXGI}iTa79jTW#DQ%*B(BCVz?w&I#`I zh#&Jqc0MbpD9%0v$xD@X{y1ZMF-~$oPlu|VP>Cyq>lDk`%RZcy&Otxu1#p(DFbi>= zP}GVEm^TPGPmTg$P_^7!oee_aMkHa6yJ8AWco?TgIE zo(lcaR62*e-6uQb#miRC4cu9kB0KKkkPleyBl)AO7X zAC&cC57gr${hG#LQY_?7N(-~vhc4glg9$r2e}ruprn))8xQm}Sb7Ou0E>Vc zd_-p|f>E40PM+XE6~T{$I-J|Vqh3hr))R|72oCxPf3K{Ceeor>JjRs{d}rLMQri+IGj6UVtP2#Z9+(nB^e<*F2O@%9z5B+(21(}VFnS|Xw~ah?Rxb; zLEBkjj6 zMv`1NdV^x<*BJDm*{l*R9`JNNMkWPn#NttZL54dgn*(9S0}NOdo7NXp+d8Tg({Cy( za9YRx{7IZdEzhh3U#;#tWD)dOVE5YW2)}c3hX`Iy4Xz%-a>XM1TEp!!6%IY+KGr@e zS*zv&Aco=`nAaCJhQD0JGXP$X>gbe#Z>k=By^>Io1xOG~+CoM2p2_)&1K^b&(`Yb% zS>oih_J84_`3+6tF--5-7SW-F$W}#>?g#K2h#&fJswT^eFCs@TtWQ?OOgtV`#`Jr8 zU82nh-g)1OxSgN3{{l?B7XI(z&g7uzQC0xfko2;&>#8~uOa)gCnY~_lwA5fhdR$O9 zp)GUc)}aebLDskjU8exkwx9z+QSJ*oy0=UtkG_EZTGFUm6&sB8qEHnRoU~qYncIWjyLpD$4U!lttgjVru?lsvq@tjy=aSuq) zPuf`XOZ&JglL<-o==yuM(l)vCER^Jvm=4Y#3#7%chh{Bzvoz<6lx*Oxl`^n{d9nq2P zJTj&1UI$+#6Wyx8qT-%;!30?vN_ zZhASdli;BBoJM+=j^|qX>pkh>oj-g~g78Ye(3%w=k+ZWYg{knhKh3`7v^SgoWZkN0 zkJa5KdI_9{<+Do?I0WNXyIC=lqlKc3j_xOPSmmp%vf0%}$@03WG za_JX?^HiUJqqzTwN6S@c`KNh&SZtW}zmT%Evu(Gx5i*PlP5NiXM*-}Wv#l+~-ZyM! z3ON-RnucCgdGnSNN87KpULSuWy+ztoX#e3Ww822=WNQGT_1OXr)Nt5QFh83akbxQT zi*zVD&}JE}FGN0Uh0cAx+vRTR@Dif05tZ9}yoNPvQ^;R?(JX<^ z1ewVhu95Fm8u8rgK^l)G@8_jR#IFB>gzvt#$;?F4{NpxZ3Rs32s^xt89XB9KamOvh3P?0=7pQ$4+ z@MOWUT*FNvFF&|yCwI!mhhByvWG;jDwMBpAV|=@K7%H6?4}vvP#INf6CI4y70v)gg zN^e>lh}Bk0Y}lCZB1PN#VyanWsoR#H^#PBb?8WrcO5eI@<4`eOH3dO+AdpF(Ni>;c z7INg7p{wthJZ;Yo5Crc{I~S!ZTz-2KCm3M(E( z4iPg4Q;)+HhNOofC~LQqd|_mXh5+aHA7Prp*l~K)pjygcvbRbV7gU?m6}P6N#UR-Q zk1)kXz?znMII;FKcUGiY_xar+{>;VFCzaH}+G04{Ssy7NE5@S$MAxr6=o|~EysfHX zzV_NC?i^SME42Dvqh|NIYU44EQ~qCU7T5U_{-mDMu)IE86;h;GXv%3Jw5DHTFwr_j z+qG`pc-Ac?9rcOA=@6UjhNVBIz^N4PN32PamTyDTP!eg8dUh=ayZ5pj{XlcMfz?Sy zqU8r_Ov=#-4&bu6OENJx$uyvZlZu(^m7#^IsS9c=3V`}<$`i?;P>6o1L=Z!QNd6UI_PQV;4s>yi05=b*sJ4#X7In3p`{qHos>kO*D zzB7-_tOlRILDK&d{nKF(?Ue?8=v}-5DO)zn%Zc~XAAw%Y?Q%)LT}6%ge@ajkR}#*5 zpST8Bje2;Cn4f1!A~TypA*_#z70TDM1+d*0&5c|O_a#v5gwC_mMr{E9KLEh7QAAK; zgve~a13wff!J}m3{bQ1iANwo5nJ6RB_>(vm(V|xFFyraZgiYVf4g2os=g}&sHAOJ} zN@9@iew~k~kl=fLbwOG9EZw@9Y#yT;=$J44D@_wR9~i;geqh`#l>VMkA!dpH{MBw+ z5FkUGOkHhvmQpxKQpgssZDLvo#_EwmoUZ?MjVQjL7>5;u#Kb|4iFTwaMB19}7?wM5 zEwXApqgH)Az2izBxRT>9ZzB)=m`mL}c6HI15n)AE2SGXGQr*CKoPhbFZ5>EUMuxqFUsc3*U?+f($6SbeDnjk25R^$RzB5&d)4 z1J=(hf5(+7m#FYtT;oIoHm5PA7B%9q4^#@-AZIcNRfLZP|%_M&g2Kwe4G-!Pbd|%6iw2k6%DPEN%y?MbTRRTk3 zV&QiYD$EX*X%YyUG-03QZ8ror#zRsd_$b3EGdKdY?C0pR#`g>#thcEA-Za}C6C%b0 zpw}#Xm?(dBUFH-QJ4Vn}|5Y{saNx5Kc8p1Lo`@slkXvxmI=%YjjVVJ}fz$Z`!7G7@ zW_vFbt4QPxTpz(_N>-wuo@YPUq8ua8T~P-5Mj0^#V&PthaZ%4?FLen)E|2)tLI6k7 zqC&$6IKmnMX{qWZhIenOB(PxsK=*j5C2i+Gvs|Tl#ct-El+O@q-93d8p+L-CN~28g zZA?ezlrbTPt@}bjAonWnDJ`EFcvMv#46ps(8FEI>Bv(`I&e@kYVa*ti(~j8-AaE-f zV$q{FBNC0h<)iOdt4k|_I;yv?a~WOm@04jZ0x)#eH$X#352d8Pn;3k=7yc5QLP6QhA-yGS_VE330E1TtLJjLq$v5GJ07?6q+ zA8=VI(?nD)0O13|#zQPHBlQ2sGs`!oO;utEQWJ-=3K5CmN&U^eb5 zEC7>>51b*-5_7M>e#Dw|#{&|T)k4fjNveNbf=s5w2kUJtSfVf!3`Va9C2%U;LAmd< z$J}7=N!K8@dNqBpYDA*m$5XB$hK<

JBA2dQ^1tG(1ripg;KfjV0o+81qUyXxpq3 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 BGj0F? literal 0 HcmV?d00001 diff --git a/MikroMaster/20260521/20260521134002-Config.rsc b/MikroMaster/20260521/20260521134002-Config.rsc new file mode 100644 index 0000000..136813e --- /dev/null +++ b/MikroMaster/20260521/20260521134002-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-21 13:40:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +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 l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] 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 +/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-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/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/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global 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" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/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 +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 +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/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 verify-doh-cert=yes +/ip dns static +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 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/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=NUC 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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/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-list=WAN 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-list=WAN 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,2222 in-interface-list=WAN 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-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +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=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + 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 +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=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark 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=\ + "!!!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-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" 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=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" 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="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=reg.vados.ru 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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +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=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=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=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 +/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 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set 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 interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="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 comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260521/20260521134002-Diff-Config.rsc b/MikroMaster/history/20260521/20260521134002-Diff-Config.rsc new file mode 100644 index 0000000..6c58c1f --- /dev/null +++ b/MikroMaster/history/20260521/20260521134002-Diff-Config.rsc @@ -0,0 +1,8 @@ +2448,2450c2448,2450 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ +< persistent-keepalive=25s public-key=\ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +> endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=25s public-key=\ -- 2.52.0