From 7ffceb653130efe58f20948ee72ce8df79fc33f0 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 22:00:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 22:00:14. --- .../20260602/20260602220002-Binary.backup | Bin 0 -> 262431 bytes .../20260602/20260602220002-Config.rsc | 3456 +++++++++++++++++ .../20260602/20260602220002-Diff-Config.rsc | 64 + 3 files changed, 3520 insertions(+) create mode 100644 MikroMaster/20260602/20260602220002-Binary.backup create mode 100644 MikroMaster/20260602/20260602220002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602220002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602220002-Binary.backup b/MikroMaster/20260602/20260602220002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a730b4a7c60629e930509c45003f6b0c39260f9e GIT binary patch literal 262431 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 z zpmsddZp%D*>aU|UTEsK$&b5_d#4Vzcwz}^^ueQ;}z3fv(x2AhAq6THhD??l3T>mcd4t9wze-m1Zqz>`urNw?%Jwm6xeU8lkq~ zh!@?*?AM|^y++66`DBIx>iotfr*ALB(??<1=+$yWmBmsuSOkgl6v6fhVty1x|u^rZZZn{ZIN zB>QfeRj5}`)a9WN`&gjBf0u7npJL?H&tT1*)fD2PJr|G7+B9GPOo*7|NihlfKzsT? zP)&S}ysecpFD5<49!t^WFBZ+)VU0*r(Z4A7aRu#F@tLIFl*e&+o0>Np`cLyx52EH2 z!s=%pUGh-Dm+jWI*8p}!C~*q&hvmmhZ`nKdnAAHUXV&6@2}=}e=PIt$bKF#o4FDYp3bjzSD`fI9imPMo_MEb z{>y}MC@<%1GaRxy7{ankg=W0$#uS2|h2j(5tgO1PLi>it>Qjorz;00zXlLhCK#B2CNvB*U&w)$0Rqx>ErQNDvSJop<|1YoA{obnV{ATte*D_5DgP=imouTbZJ!KSBj;u zZPqW{qU9Vmw~eg5a#DLE>jR4(nql~33><-(wN8YLsCXWt6)A00f$l*dOJ>^fYg8)h zHsd#SLVT+meP|cN`i`rz0ehxONrOW;ISq*JdTI}Wg;D-tvRVxR4;0>4sOW`Ou+n9u z*cwBP)K{w_^NE3NyasxdY)7s8A>dk5FuO@!#<5jC2NB#OX6J}H&{r=hH?N?@)^7Cn zLoOnIMgo*l>*|tz&txq8?~4pSl}BasE8Sn~6fO@)6y#u9mL5@|uT2WUsb}RkiiKkl+YB=f5q3(BMYqpUTQ#9-fc>j~vNP8( z`dbniX(8#1m_to_-3Vd;S}P@Reh#`g;5f_AuE!g@+n$@6m|lnIb#RE+SN4(A;Fd7fw7j+Tlu2oIyaDRBH(lM zAe*On6a2q{KhK($gU7H6EKQ}xmwI~q;w^ZX|jik&!4s3C&p5#d)4^iK6XkUZ0 z4#z=B7y;Dmf*c{zAfnlJU168u`O9k;(m;~E3(l3_SWAQD7O}&cbI1tg-&0m-hCzlY zUu&qKH)Z~&4gPG5FB10~Z!T=gVGh;bVPSA=pnP0S;>O$dp0;UsviWJmxd*Rp zWdzG7|14>*gfZV;7<{JN7n$E#cgRb}0A_19R}pnkw?9$^peF5n!47t5 z6eLlRJg*#Rm4r1`>he8{U{$3uAd$VsDgJ2Nfs&Z8#oc%IWU1UdDfsH|-x<5#;oUdT+3jb%w`7J! z+p8pVI$ZhPzW`nqb?x2nUznd0mdFpdy@1Yx&tHu-?h#rX|i6Juvq?A|3S}iw=xO%+IRIy z>vgrR7oc=!H=h`1_lW8nTXwp;wtQns@b*}l(mF=U54ym=`31GI*h{(~xx)FI zb4cho>QhcG1;8(#CAP2N+uN9U-Pd5WO^16@h;DEDnD}50cZaXx-MgLx^0pZW+xH|; z#AI9jlJv zVNbhl$OZvJ51kLL__%<1n7XKZf-dTLVei(yXrGJNGN>d?o*2 zPQKT)Uza%=)uw@n{Rc&u0qzZsR`{g|jf;ad4l+ad*i5_qi=-=5!*pB~SNot(cJb{9 zyK?1lC$u2ZLPlLDp?i!Q&eOG{6IA2v;3%EAB(|P;jAtC#T?PiS;cuujLJ7{*p?7EZ z5ke+DDvGN#pruT4d#*~rG&MThk03Xjc;De2rNeu;8GuZ`JIE9N9Ws2w0R{&{0UMr; zCjMgMM1`v?&_QHN@{~u-=!Oj(a9b_qdej^Zlo3MTj;hR@Kt>cmK6KxzMhy67 z^}YCHN+$cE^o$TP5OX%R@!yN#I@xaTz0NP=Z}Xi_Kc&6*||U;>7nHpwCUS z=*?ArI?-AzT$@f4cq~tv3cC?bO4EHm*^MEWOpySh&Q3B~BkU(!Tc6Tyn>uBY=~h9y z+m~7Gfn)MHBY7SN=srBvSGs*5T2JNIroJKSQNGa%)94)N-SZMq1B-Fav$9sMU&qW;`L388LY8 zvS0;Z~|*NBli9HyKG0R#K8kdbiB69EEFt)EneGFZdT-f2H!;W5PF z9z6OtF=NtW>=oTb#}Y0cLT?Jp_@a0t(`zXdZ0rIUw1TN1Llnsl_{u7HnnR<;_{dDT2g0&yA7iMlO00Z#go&v6_leb|7u&}|!y zc>%aWv*ZnPK50Le?e^bHyrntUHiV;H@Nb1bD8A25d~Qak-Jg7Gw;ps$OPc%gQbAt2 zS{xpNQ6(4UZ%Q5o(4l!b%c4Sh|L-Q={u3_09sG^(B26Rlbg5m^Bk8CFagbp zj>5zSW6EDQm{Qqu@B}gt_$p~u+M)H=o za~!zEXfWFRe z*UXx> zRTy?a^Abeim);CFu#eu+uRGK+@DUp#Ah7Gc!rZq8eboUf0m9EcFJY52c|iXtQIO(Q z_V6Ke#-&XLii)l)=xJt}{Y?)7D!gvA>)|yeAYb&Xr`l%Bc#qff!fcIc?i^$>T<*-$ zDgu_t5o%SMVLIaloa_YPdb4={ZYvk)p*0{TWX zF|9z>cxIAbE{rq*%($6WY7)c^ggb!zr)_n$&r*&PE1ka1}gQL@Jb-ZFxS# z%T=nt=M~mx_()nr#9E{s&fd&{W?#JE!re{it280acZZNAF)c))88m}~|BVzD!+iI-}-E{D>>+#X@^oRb?Ay~k$Nt7Kj0G2F+{p*$S-!&b_*h9_25OF;VCfEW6Vfc=?4BSjpa*A z#GcT+bGT;OU%H%?v}Z5b@lF8zg{sE;Oou}Ggh79{Wudx@Z3#DT0nTbtIVqDZIGoC0 zJ8$|}6pxBbPdBj_j7Wh``65$7*SCU@Zfvwb4ce)Y*0p#ixUeuqw}Zc1;#W=lD|z-c zq=EqRH;@wvaf>lwSuN$z?tC{&3o{vdJk}{MuFWvg90g38Xg#Rk9voZJoFA<|mCL5- zIBEqU zN$R6N`0Cc;TC_|rHxn{3Zo;wr`KVSRL&$V~JlXK8SJPBUVW?Z>S&Q$wNgNj=B<01c z)hUMUCm-Z9{GxZ;!lEMGm$zu+=LaUh@)RIs!_y$O$3FTS4*$1eX(J=Qv?{(s>7V9; zWuEos>&9!V7opRFZVb@^J8T#yAnCL}$56k(yOaReD(-yZ^-@Y>;S;=5G@pM+!l{(e z#+CMIKqsn4KAwExr}mhls|p#-rzkFevMo6W5JSlmB-&x_LUbmc@!+Pm#Loee;maAQ z31){6y>CQlS-|>oVX40xuZea}U7^JW=HJ2#+8$2NwBOA7#LLuRi#*w) zJ)>?mC*QxDI#mHcX3wpov)OcFnNUtr8IQ&%)(~6y=C&kjKZeoSL@-+RyytRI@=-m! zbXnxRq@W~N?Guu}V?VKqI>8)mhj>~tZHdl!+B^DKe1GiS*`b*$6v7q3qQwon}}U$IVo;R4phP(w|X zJG1`Zg*ex(E7z>eZ8U4t=d)+W#b-Q3eoWWK`;_x1RrvY`gPL#4D>u<<&SjepOfKg< zU--^wEyR{1p|uL}v!chDfCiJJWqn(dwYF%@XOK|@-EP-;RYMA_l)_FpO(4!VDcde@ z4`V`10l~28_=uW#=CGdDFUqMYoR6B44D8QV$Rp6PuwJD+-|eU5(60*6>Q;rX%>_j8 zmRJFs&qn1ow{tGu!B%LrcVLXBMuT%8h|N`cK$c4fG-Y>c++%3@9WYGj;r3Ib}5bGIq7mJ%~FRJ}`c}#NpNhE}|}kQr)$=j9eu4 z6b#ImJ1Q|PX2=?m$mng@j~DQbq-fx3rK*Sv9V=1@-4G%315B4~oBR~T4@i-O57t>b zx31`8Ho4YOB^=l1P?b!8!s@;gebLLR)FI^_?;2Bv$Xf~J2YI_z3SOTi{%;pmye$y% zA%m8>JhXFM(5m@4#TCI2L+?RrpQKJ_Y~$Fj7Ud6_7zJwwE{G zA(e(ArgU;Q%{C>p1wBEcu9>95=fnzsPkwH_L?7Yu)rhc!z2Jw@G!mIGUaYMD+yWE( ziGoTEvzGD#71WE)B55Hn5mTMJ@-w5N`Ejtoxt1)D?>0>|q=!NWzxgtn#=9@J11r+`Me>~fmNN`y{H+?$GVXNd{Df7opTMo_u_=oIN0Y zqmoCu6%>6&SY#Gv=?$2ZmCuZUQ!0>Iauqc#E)wPJB*pgOK2HwdlFJ`R1;r$~m6#@7 zR?1o0qsIu&+L*n|KOW1YM`m<8PO38tt|{9nl4i9haEgdDH3Y1FB1a}qmr*VJRCJxF zVBCpABcm~Hl;452Zw=8NVKf4~@o*_w3Z0r)fOL=e$U&2XGRu6`eIE+nl5)YE*SvgG zj0q71iJ9H`&cU;Qz>1jKniu^im*G=MQVDGb!}wIDd`gXMXOnssTpj_CB}?DWMC^0q zZ*p7V9lF7eq~E19d%1sjYd@^u6@}-s^qJgMe7mh-15Fptzzi*_CdgGbj`0<2&weY` zIO0UGp&oDoX-s{Q42=LYTo!8EHL~e#VAI;NurLhs@9-xXQaZ|WKZ-f|(E$rH9Euitx0Lq0w6Fu~@H zlRvjIut$kFR%&=_{@K((Z_;$}=rMLgb@aO`JIf)IvjQTMuh~JLTSIaPdqcJa?-yXF zBf|2&BJosC_<>Owd%r@MoP8BY<=Va{nFmCKh8%utz|AUyil3+kM@Jg*8szZ*|Sg*V04Md}#Y%W&v z%nbT-%}Ct0{;n6d&7@u|$C}&0O79jDw8^pB1MNE`2-U#~$KjoCvU5wdHij4QGY@J_ zHBn3|EFVs8UDbfCd(j_|_$u5%Jk&ZML5}#s$^=E_^u}VE+8k#XcSZb?BVe*zuD|ia zt_JtU$9afs&kBXMt);!W2>}F1p(PVGqV@9s zLN#EKx_@tyAa8>S+BKWc>U-+Z;(yj&khN?|g4^ITl5;Y7TxDea(hG8JoA{I?7m84? z&L}g}BurJw4Rkj~-iV!n;Gozc3HdkSXG#^<#i+Z?v z;kT48`Gg?=!B=|*#U})mwgt z1BBpt`D;M4WUlKAm?d}M|D>}jcs7FH*d$wQM#>Z4VB!0N6O>|u*tB!sIr>}YB@(sF z^5%FW_g=D9CZo9#DlLXX$@`xpRWU6WlfP&CP3e0&54VJ-o4U)aa5Q zjEO$HSsri2yb;I}xE;PFHl+nYvfyYsTx7B)Mb#SM*Q*=11|{@MGO zgswL7=%@{FTGyh#DCYfp=WLFJA&`a|GP-vUnAk^lh$(z#XSnM_jNx3vhaIs0&;jPz zjtCN6UVyLix*QG98EEO19-t00f~^g4;?3~L?k=$cv}tW+fm+JeC$JYh{MF4FA>fud zP`48gJ;6N^3DCd7^cb_U5u%9ANb6b{UQ;?i2$)rq8=2_*5%W)Y}&FdZcAEuSUzHKgA?MIBTD>~MD+ ze_NCX%M;-HA~E?*9q<8T0OZ{7Ch^VQXSFZSb!@ZCQvHDi8*}!Aq8O&X!*N@23 z0PEra>%`CQ<~9y7^o}hH&W*QO)yp_0VW+D95c&4zhVyCuTTrI&YJU&_d)=7FaBow; zuJeRRA-JDohtdjbqC>6-%j9S45hXH_c7G=kKt-lms8(n77o3$4E!(Bh8oJxqd!%%c z?$!i}$7&k9Yywez#AaFsde$t9^9p`q4_{TbR#~iaidnU#HF|vy{J?%7B-r#HKV!ARrjT~5d*BxM4?I(<#unGP(~~bylj-kPvoAMRs4+3XK-NB+pcc5gN{qE)G|$4@}TBVv3?=SNa`a#`RfXGs37c z79?<>U1MZ<)lspw6xn&-1oMjemZx-MXseZ?#n>44EaXI)8`S}~VM=f4U3|T{?mQ}y zNvEOlk(mFTZ-2?ky+EvJDqZp*ZmAF3N{25>@@}XVgIa>bH*H|G)Z4BJ`yAHRKXm;6_qEx2hl5G1n5ses!4Od0)NHyZBJTO2O(B{yZU&j=yWU(MG1GBwHqq$XT79}zNcVmR-&hr1EV3NS;A2!_VLEC^^5yKNrq4@K9 z%g(>|5mcg03~sE<%bDZO1{M|&eM)5h^EN~D7gqaL5A&kN7F^rUGQDs^LPXN9S9LLM zBho{7Vdo53mh3V<*hqhl1XVZtb1F^go;*K<_#2Kull){*CKm2>&=h-W;9Nr_0>Fu8 z+efO5p{=29uVj7gz~Xg=Ld?9d^Y<5Q54XCF?HyM7G9hQ9vUpUQ_`+gyF3-Pdi*@i; z^p59PoZQVaTo zO4-ch-Be5q*AKoAfu@xm(^xUlxc!=o=YX&m<+adYxU_m%TTGL2IS-O$x~h@t$?=JZ zdNV@SNIo^929VZawIbZ-pT1B|Ru*?|bL?tw=m#r7TFn{LfVZn{!EA4ME?Gz_Z_9L7 zHf3-|>^OFR+7n(`v2!>zwE2z$NBjVC_N{8lk2?Gi_PaZ``Ks150GZ``9@eyDw2+Hr zub*DUt0ui%uBH3qz4vOc+Cy&%f+vp;cnC6BAkvrWdWv2Uugjsfj02Zy`WZBk0c$>8 zU1s=0W=u-z5_;m>T{*^xcEyIKtVMz0746S^3lNbCa_dxBw|JrImar>TE63UvO*T5U z1tXspFRxT}R|%{Qt_n3MZ^Dk&M}h)C6DqJzbHsRFt#taqkhm9JMj^R+?2 z1$^R=*~B!7-3PXnlI@92=zsWt^mv!^-a`tY!JAn7j!ZO3&%}(4u&G9J%u=p96cn)D z{=c~j2+gA{Hj#7K@?c#VdhVGmx=Ytj7Fo@Kw)O5ifvC&+;?TTmYN(w=Fw54U$)G&` z8cts>dThCu9bu+cuUFI~!}twMb1voZ9ul=q!lVH^+yD0}DtOC>MN#)stE3@ zSS)P$Qb2ByenXUO;vqD_sUs*m3MaSu7!~q*vryy{)@f4M+O94uS+XG{Lb5^MLU4PR zsG+EDUG{OojneSTo&a63C!CX=f07xlCcP+4VK^Fqb*&f*$8ZH^Uo?cd(bGsUNY(bv z5abS-DtWcAECWT%$gu9$xrE!@lQ?G6R8vHzZWEfbvv(LF4(YH2#f4z>2LmC)&JsNv zrNHAmu?--xtN#eXWEXBYpbsV9gh^tkq9-(J_^B2o{MfAPiPE0-f1?Ig3e;AzYwRE>jKoP@UGUG91h>o=U^c7 zvniV`z%=-DGb?S?Mg$BJv+Qo^-=bz{By=DE9LsopN5%<+$4rJe3&zhaNzT!AADdJh zqwz&+h~`qf`YPN3;%gm2Ae)L@q_NKZQ_ZZel8v%d{fZF66=rT;`&Cmh(rR= z`w*7Z&`+S*%fVMYWn&Z-$q3ZtbzNxAmwLk)O7&)1oMNnGZ%pEcI^;zz`RME^u$O~! z4e`q2Oz;P~WK)y_pD4%Qo?vz0!MVNDOyW^u*8-WBPH-p|puO)+kY|#OJu; z*9|r#fC=KXrDrvgm|KLWbY)wz(}6ypQzewQNZJRAlQ6c))wVnEtX!oydobK2qTJHr zI>_!=1@F6=JpP9c%hd&R3g0I zSf<_bZe!=%v!))oa zULTGh7}y0xK}pfXoXDloycr;S4TC}q<>QJ#x(6@)L+^T>1o_D*E#$bC6Hp+J?4Q^! zAR^uU!<==uRfqQiWQ>H9uu5}1uv81$9?&GdwBcr+dOWp_1v?S*(i%;XTu#{(;DlezM$4*jOJ%;z+h2od`m^VZP-ss|=9D{_ zi#iKPV}(SEM|LKm=e|78_Tpc~xy5~=G;8#!;1R(8L;r61WJ(y}oeC+**sX2yR2s3L z6WsuUEy8g>!;aamj&MC;Ona}&m91S?kg?>xYH;tC?)#8w(ln7|Wy^RW7$r--foLG)o?L~XAo=ZbGi5kXRuO9vn6^SiRcWd0)U^n$8z zRUxIS#(?)bqJGJQML6Yy8X1AP4|**^p(by@^H}Z~k6j4)1+*-K^Ju(~KEOGJlPv7d z`GCt0xfdsFEj_Xu<=aD^1(Qy6H^EbB|5><6)s^Ymm;36gX6W}FEKA0b@!b+cI91Y8 zz@c_;g==#@NZb{9wn@nY6$plMq-9TPH)IPV| ziBB2@FkDuMsI)X`wtahd_<1t(@mMjRWRstuA^}A?smvThD;WcfKEKesbl-Jor44;R z=43f(jLF5^n_}4P=)*1c7owAwGbP1~b_30ttKgZCQ%tU>9H01kk^mu!wb!bI3F+=g zHsA>6v`U3oq9ri}9e$cwm5p{b5P%ftR9lR3KC5=wzmd&R;*~KsG8r@;wD_3nWA454 zG^Yr^a`dSnkGOUB?ZreyhCkN=UrRo_7khRMdaU1`pcCw_Gd+^V(7L?J1$yIMzQJpD z!L+R$35a%%V4+OSxmk8kSXA*8F1&edia$*rY$)4>+$h7W4FzpzjJ95JaE@;&$X+@p zMF({AdFW=FFmmvY45vHx(1UbeEX%Z@L4dSjB=MwdhY3@4_j@y)%jTQt=CT}b6t5kL zGCy(u6mGU4QfCgr{%SY1x9t*d6g#*|WM-NsV;%dGTn3I9_|%zrUTp^o}J;3#_Q)1<)CjsiGenrq(%I$ ze4#!x+dJ(%i!0fi@}M@-`}h53gV^7snJH0>^RSBYXPW~NF)N~sMnHKK#DF~b(u>dl znH_|QytyXE8r@u7Uhr(|4K5|}#3fYw&Y0-D(NEldLg+ROQvIHy_+T>$rFiK%so3Rjj5@S%3v5<_-79-PqiGH;Xr=rgtbl9D{)aa z?(SngW9fPX0FVH(oJM5ybCY;qxo?VnxHYp;y(r9I7(!9yX_>#c9yE~Yz#$(@;j;dQ z0nsOz$wiFC$%0k&PU{a(D*1aooV=!Y+MF+|GthB2nEvv0$gt*W^+U?`D%mC^60l2O ze_I?MdhC5A=|6hkKZyS3ua8GrDrNHD{6mm$UZp&COj`wgG6W0|7la1+@f1d&nU*fO zi~R5~U95fsEvbN_EJWgda$k8*Xq2e*Fn)^ErNOYwrqDiGF+XX{n6FgeNiX}= zB>COKE*%yPj&}>Rk{i!$(uo7wibLrUYq^@DzT_n%ECd)Fi7&tBqH_(Ea|LUy__w&< zfo9QcNoqe1=-gSy05!0&8IP#o_B{pdEBQhaXC*IT@63;EKrILHN*&&|pFb&EOk=2X zODvZD`s)5s_f)q|2dA+b$!siNW7P@du~*4D(nUsard^SyCBW1-EJ=xv%E|q@ldIX& ze%A3w!mm=IY!)9Vmhh8jh`21}+c6s}pz*-Ukae$Cmph5tn8Xsf?mZDKqo)!Sko@AM z#>#gRq@r8u({kOTN^qYlN2%QAu_B+WH`S7Oe9}_;Q^*sN>=u4?-jG?OS=dezvC>^= z%DK1nS^ThhP5kIsQ$K;d$%hPK?R^*M{yvZ>Q~a3UuqxDXw30rTcGDA)xtlO&h;kk3 zwhALOeHo#;BBTl(>iVw^XM0I}-^u+AOBW<8&Ea22)+O*l7*u!K&0Ql*s3gWM1XpoR zM7-r~Se0NWTXs%e5HFm9>9@UHygS`=H06i*zv-|bvj|AcS8$t`rotmK88;C*+!Yf) zuSAyn4$5HQF>e?p#*5%Gf$Zk9h>DxoV9?CAf0Qo_2R3^N9PA8n$W;LNRA^y4LCITj z;?fJ`x5Mq&g#Yi8=l~_~Ew?h+cRh8DcK;c^AeS?Eq<0FF#73gXnRl8MCWJvY3Nh7VuD*HM(WZ21CXPg45m=P0rQFy0C@%X{%K zhj=#Iwap}gQcmbYB3ZHCa2Q6;TST?f!cp2dw?Cd6yTkKlg@L_8y}_u-$6Y{tQ`|D7vg1!(2A zHL4IX>Eoe?rZyJ-FIK=x@Y{CtAU?(k6Sk=jcn_ZZ3O&is+wElNbFl=8)dZ2^n{D5(K zAdlY-T#aOXGIz@b7@qU8wkNJRH48G+$GM*he@chG11!5YevT!yMGCI`F(4#oOPiV0 zV2Kroo?_PSP^BwSgOdb)68<45JjsLi#;ez4snjjj34HF;dQnAQ^;nAWnct=aCZ7VE zgEY|z0>ItHwd6t&Q1W)`LH+%@fH?X?<13`rc7}3iIKb^k-TdarOi{(|Z5BZ;Q$W)@ zyRbkSgaJw!aQGN!IypeeUk$Ud_D`^4j=o^L)}A3CNIZ2a_(>h}-;Syz43D=(qsvS1 z0F#~IO~h8yn%hWe$DcM9O^igP79HerYX%rBW0zw2{isVRvyw7E4;e@W5tww>hYmx) zsqmSqK5S0P2(9?!vPK5RU)_>z#27t))L4d<0vgv06%#!IsZAiAv`Bs*^!qM=|72SR zx&EruDDGjB5byvjZVY6lkw(%gAS>e%iV8PP=REE{w^FmPWxC9HJw6cw%uXUj9m)gT zv9CHuah$Ici@-mDYr>I>)r+@On6$tRrwOFA|>=Zy#uce&CgnS5ZV~qw& z009}&gg@Iwzy_Z8AvgTxe0MNE7kFwZdIT%pV9Rk{okwJ;_gEXE8_;k zmm$EtL|hPnw`wOI7=2O5`_n)`!=abk;x>71Z)d`>IMS$b#U?1M7QHezZvByr13D#O zy!~)QBsy0?5TX+53X6n!Tp-{I*}i|M&2s9M#O*!LdMI4|1Cvqja7;#Iuc^9hVzrgT z(t(3)x>KjYppbSYQ{DPuxl_8jZIo4vJkis-+&!xP5<@FLl^@uQ;&b5MYyX_~CTeY4 zp;?mfg7iv~(cH>F46pT<1vt2Sv#U>F9dq;XNAatn6ghSku2h7?rf)1-*fdvNk>Y^f zCH`xoK>`aris+dxXkEa9)T5ha`E^-$7CwZ%xzJ<^I-3wb9W_n&`8F#~49Do_icl>e z9cvU#S=p-Bn5086YX0B)XHr&+&cPvi)5>j|E@F=~wVM8WFc7~@t zxprVgAACJI`bzB6)%g_)XrHv(n> zX6Qd5t4Bro>jVqG=!#sixAWVbd)t&?GA1*x*IUZX>nf=i9CF-BLg$|~}bMO#8X1hewa=pM&K-G|=B~?@FzbQXa+~lfkON-2PmfBd5X2^T&vA!K0l=90#Rw;8RETy8gelllmfg zi@KI>y@wnzU_-K_F3{|E1^EE~KLEfX7DWr5S9y)4x)T#GlHpjsZZ*CgBv)O8np+a5 z&pQc0jOknL$3Oqdi8=0(=oe;Y-NZXnrC$2_Tq~ILHa0VKODV~M^ah6oC)uxHpGf;< zRbcw!R$Ry%=k?P)l)4$df8z&7(w1QK9X_&7w=b@FybTx!}UjIYyn}Bl{wR@Jut6QU4)7~9z;aavh1t=N8 zF{88Xnm*e=tOCfKaSd~sco{OTu6h#&8;b(>fK^LupZ;MnP+*z+U z@9P9;>~Cua;Lv10ScE>^@+Bg~lG$eaHYQrm`J%lkm#c~)wq#4S!@8%rxU~Wvmt;r~ z_=q4e+UE%B*t6Q%HXmD0Y!^XfZBJtZ-YlFpzT7vjo4u*Nh#+9;UY#@m4)5`fWh5ny z?m+A#*6oymZamIvCK1(dYcCmY>g>y_7h#Wa;R99G64QeI%XNp(91^EHQ95w?9%apWh3PDqcHN4y4ZV z>)x6^bs*K%KnC9f)g}-h)JLGvLobjJe^&7vppOA>n1R$Jn74R5&uEz3j&7CLi=3?< z*m-US@xaC@`zdqHH2>v7tRnL?{(HF(YlLhEH1&2jpD7fF)1Uh# zn$0z8-nX10l`;m1w`2wb?NOPhkLd&uhR9K{E2yD5%hKqV+v*_8v_BT^Y1LG==%evX zQ!Cw%$)O3}W43ir>vNEBM{$Jt`AbB&Bg1aHW9-)F3OB35pte_;=SOEH6-Ym%^?6Y! zW@UJtbeWz}UnY6vg<)VNy8*zG-6CStNQW-|(R1N5;{#gyinaB0>nHfVV}mtl^tKu# z`3@7m$Macfwv`Fi@SurV_r|V`vQcB1yu$$YYVU?aKiyWL_5|BS zzua`bWcQSJPNX8Wvo)T7*-BWlVqp2W4Ve7kZ}4m-Qz(I1wOE*yxi0b%VhKSE#-&;F zw4+Tg&3p9PN+-(W|JCACV)`h1=Y)H7w!~*%mw^+nsITc{Hy5y1$|!)^Cg_Bs`%Vo!7bTDYKzMsb+p$DRW1Kf(1wuCy6VN;Oyo zxmg;!nE;=M(LGOsqlG|I4+F`iEF3Lf@QPH2G#n{)`mynuii!sAVhGg3!QKI^X(v^_t;5r zku{Fz6dj`T%ct(avFGy5>qT~E=ywDwyYx5s-)s4m`Mk+9I<_cUBQAaWcPsnKN z*s9a%E(oHS{u`!%yH)P1MInFcJ4N2Yld3e^h{^td$oT=%m>mow^6pE`t}^gMTQHdz z^J{ODn6RG)59rWL1OU*VCBia6ojGpWlyzRfVzjCPP(-RBZUUVR>vlI^A z#HVeKB}yZHoZ=_5IwYbSPReRo9o9k7_JNR(hDC|uBMW|6f}ed-04!`nD7Au#n3|ZK zye^=-LKY>;xK!Wamz>(UGyN)#HE7j`E_SMZb!|mU16q^BQjKz6qZ@Gt$!M9FNEaBP zaLMYN;_e*03cz{z9qCHMT=b>sRvImG7FWjzhJrXUyp@OZd`&{cP zUf4DG*w)jN5NVHUVXCTe2yx6(zA=nvrVSc-QGjdfG31!W4@Y#csnQGP@(^gc8LCs8 zT?*I4y<;yQN>96^!L_5&Lu~@13*LXhdCs$l3iQGqli$o13&>mw)uHykW>8rSnAJI* zlfU>uy&JYpWk!pZNlTYBwAqDk13e|Y^zQ#dQ3c^Qr{`>17pdRDgrZTH?e=?bJ>s)t zRHD#|2SqC|O3kbq%(kP0UyJqz>9u0r?9kzFPWSu~Qr({6-9#J7?QOZ0;~Bfy)J4ch zDuqMXc&3fMevHh>Ey0cQDP#IU`cjWsi7{(<^sZ1tP2@^{=G(bZE#M+9wZVGo39h&o zi?NZQ;l5`hWYP!q=it}Q<*nifhOBL}$Ubys>$9=@ED=FI8+rGCJM`)Ul_E4fD8s@Y z?ECV5*W<__V)E=XZ&**CwkK*2NJ2=oXhx_`ohx-*XM}7v#bCTb$LPhdPv+Ezd2WJz zv$9TSqX8zc+jKgm#N7b0IBZ5}23LU>bGP~477Q(twf5>(PXQu0x@*0x)a`sjo?v+w z{J?f{o~dw>TILYCg<`6n$Q_q=p)<^n%=B0=`pUcIyIlUT&W@~tQ7n9cCJoNxiKyto ziw0#y?`mQlx;kF6E_lumoxoQlRIIQj8}RoZbrvr)Nf_Nq(n6{yBN{ z(mU58+jE>tfve!tI!cWkgOuY9}LwjHRKHLI+ zL}`w673zb+YJ)DF0CgP-V$lf`>rgyXsX!A=D6F_166rx~b*V4la7k~MG`2pl6=s&| zcc`@Z96?t+(?^3bJv4UU=V~f+fV@uzu1a+l4@Ex`Dy@FSs;TROQRL(;(Qw)u5TL|A zg=-9{JigaCEc$Z7z{2gv2qut6?w zsQQIQc&nB<;yJaH`E?u^{zIJgmFWQ~D;U=RdCv@9(7V3c4D1YLrJpcv$d0?`p+zUW z$BkJZ!*8?uCb-H20Cy>9fvK z2#wl^E=%-EMWbVuJ~G%%Q$-PH^;DFj^EVSK9<|Oi)5Ir{8C0}#iHL86g%i1k)ND^v z_1OyonLFPc!R0MNVlhWHBnI)rHi8kH zfdDpz4OQ~!Di)l9B7NzS+VBU?O_Av@_6>p6E4dn($HXi~k@pi@Ft!TRtAE$Z7$hOi zkrC*CFC(E$`-MK%^B<`RC=$`-N0xMc!|Q48jCBC~@e{tdewt*C_i?iT^wop22ksMJ zLm9*(Er6S<&5Uqs;b7LXl+}kWl#QQIAWsea%q7fXh)2L+q&*N9ndo?zicPUheoRcCu&h6rTHa=x%5z1#`E{+sH}rMuL{0YQaZ! zDK>3=HjAG?Cf?W93=_2d!fgA|D2rOT=B;^jk^AHW6Nyl};Sku4ml27$hccKqiZr4h zb`92j$^?O@P=X(Qb>Nn0=BvViz?6eAtP=Rly-0@o9U40<#sAkUE9R{>sCT*%zP1c~ zl2TCX$)dlc%qSZsP&F<|%8rFavU8x&o7XqK3qR#9*jg8PIRYmATVC8ZT0RQa(mppi zXz|W3<}B`Ctp(nXX^H+e6oO;I$M7+{kwrMqnHwpvHb%ytGeLF3a-eJ6hs`=-bFfk) z&RcDfw6g2J3F@pIaSusd5#}S~6#Ns2Bz=6kk-@cI45-P{-S6H2RfT3{jZuemw@feU zNB38#d~M*lLYXGo_hEiVxOUJcBF>t8DsOd+v?^>mMg3h~=NhJ~F<77-tBEi)!&-cq zh{;#Gmsbgs?HA{?kDIN|?UoRX4aAGMp@NuP%jO5%3~2)`t$rH#vsi>Wp?x?r%mM38 zm0$78%+uxe;AAXmj9uGmedoZ$nU~2T&FF8py;=Zu_uQZOfV9egcLpVUbO;MTg3t2V zqHAFl;ol}uLec|tJF_#C%`oh3hJ>9*;=t^+ge(^4lCI9ke(`IbrmU^f3RUdC&uAHT z?6UV{_JLNaPC$Yh^+eel;gMIf4vg<-^;LQQ)HtGTmFYtAmCjZhHw(KFbcwcQ3)Gxo zRMB$=Z>7*FDQ6J$6F^Lk`b2%Xty`pm56^SQ_E}kbU09My{}eTpJLJ7jOZ0_484W4pUyzaH$Y*u%zvJFpfcv$Bt6g)nI6W2&{u4; z_n}A}riK)YjGQ$|m(aOF8@S=5UsazO`^ozmaM_=+aBJ21e-QWx`umh!wLsXlIiBxa zJ5Q|z@_3p?v6L&E`vIXOG`G!!o$IYup~>5p|LNluPS>IXG(Wkk{FCMCsrGp3(+nU=%+WZk z{>rMUEpQhk#kID&Z;m19(K&!F9gN|HeaXLA)>?wAn&r(`SRIk7A0 zoKNpksePn4sZ!%5KTGQLHkw}7>bJL4lD9R1XgYxPS2iob3#)rr3I`3``f6_acR0so)frs@n((6QN)Z2dW$q@(sVaiu0E8fQDZ3yKxy43xjgG9$u zx)uYCJkQ9da5J{KK+C@^AkPQV3;Yc8{)_(FB6R3gFa;fI7VZg@k7CNeIWUCSp4NB# zwoWk>G3xcF^8QShQ{QzH6qvz5)k(CtVd^nQuuUyX*O1jw zx78Q+t;cMuU`wtCcAG{~o>$Ityb|9VN&0Tf?be=j2@-QfnghHMe~y+i0BtPtGLZn3 zmH$kbH5n;6T}v49jLA;@d4J;%Ow96XYOo#kE2yN&!r1r@4VDmcERYfuAge}x=B5Pa zPd1g!0t>Au;WiUkQCOin7rcoxrvc`(#w{tNbDJyGqnjrA8zS3B{yF310Tshjpmm30 z1t`X%(?hunAzx9>?zq?=9O%t6IEBqR3%5?38JJG(e@&?ZrOV)UrpzXda#Ndf9D$#z=C^E(SDvNehnn^ zje&s#kd!)K2`I}7HFaRUgc?B6k1vxSe2jcb4zUKZc1O3UdMUscYzfsdOjH>a(VRQg zX~0-t870=WRi@R1&?snLhxs%ji-O^--RMkeNHa745}ay8rs~$8WswKBW2YALg`~Rq z!$r*^w~zXL?=a!ppu6$dvhNu5r@=SUV-(tLHvpRCsBDv6_O3Y%Ue{SuBXiDq^F=d= z4T4Py@(hWIC;{xpIVvoj84KWSqTg-PB0g*%B+M8C=OuAC9EcB`ZLo{J?$a2h5 ztK2oTcfdarU=*nNhgItt1S*P*HgXwbsInpAcE?Ks9A*h#Z=0^50M#jm7 zOV#IPa(As%#Bi)a2&xMqMqr;N$UI)^d47%=gwI@~33i|Uwu}^}PG{>#{Dz9NJn^is&rF<)ntJD;wF&D6fiaB=Vnb2to$8?I8P7^Bd1)~bO4Dh z%+i*k0Q{&)E^2;XoXtpj`9LEE;bJ@xuNZw`cZ377VV`OnI%C(eDB0#;d2Acgf-N6) z&A`5cSQ#CYH${X~S7cF`>N*E;N^-%@Kv_6?u;Rl(Z~adHib1+YyKPkMT=w=jeXj z?|hvfK8Yj;hcQCqG$sWnk0)uaXGW<~><7cgfkZlJSc=>PpA)VYO}Z*i zjNK1D9!*j$-uTFp`=1gnh7c2Lru9_{?79(fZXy>y?tmG#TmCJaF5q$PQ*K6-X_#(P zrVv^)<@Sfn_ry6~oVPohAboyRc+DDJT9zvs=Iw$K)6TJ^roi|YQ?^y}(9x|O6LIPHC6?-Y;6K|SpiD|}qt&u8@r&00)FrR!g zl#^}#~^@hkdu4n|K&L(Cnz`OBE*UEj? zJ#16-|B;?^+G+X0)@Lbj%Xp;~WP_Z~DveT4oapgd#QI-p}6AgzKMbfxOs{qM7K<|X?22n!CvY12Q83Uv(gyyLstm~t7 zdXdbT5|{h)tZym=6pW<1C95t!X^`429(!gSG9&rwon5je{RsxWe=YGpJTHixt@@Vk z3uTlt8=!;S^e8 z)>eyqVysbh%CBMkM-^2fiZsOZo?n2>zUCrs!8k2B?-kVx`@xqgsfaK~arCLrdpF~6 z850f$IAEaA$ck(KvI#=;Y}}=#YPp3Kv;H|hokE6M4{(wkEf|>Q1XV+GkwFy;*RyT0 zF4CNd0oTYpz-bWocsFT(RxcGeJ!ylGMBhgYKb8%rCCBj}xO1|xW(G2bJlCg=s#$p! z1IF-=fwW(g612OIz^)cve@J{#tCgM)UwH0-0?1gY-uP5{-Rc;a3lD*ppvmritlp6I z%l@s7e}f?GdRbOAO5DcwobyRMBH7U5vd^c+5s z!$$j?n*^r{#=;q16*qrLaiTmU@a%~77c*0{jal$e7LK;WY}-Gh!Lo+&Ov>Hi-%?#B z)>w35=g^(Vz59Twbnp~8-)ebh#8i8d&zb4ShckQWSg3;g$5|6|li5XMHEFQ2>#F21 zvifUbHhb$B!~x$B9hH$@w^-?dGY3@N59RV9jz@URWpSm{xlHh=^};By3v5G>AM0W> zpmKtLSVruA0tB5A4fk3ka91YD^c*umLa8e%q~Mh#!lP7yLTQ z?EOjK8W9ytu&>@adX{NG9x)m+7FwEZ+83ZLSmm0Q-gy_>dw|C^kd`S!O4A}OJO&hB``XuQbR zJUI)jyPID<({|dsQILdu_;ebQMUfUdipNIMp-eAa7;zbKm*@%s%f}n6|51FzZY&t$ zb%Da`;z+U(49k7zDO=xmT(HnkI(F&iUvD23fd40pUxh}8YVmStZ=n(|S@;Z_KC!Y?Sk$)WeM5P4=V2ti%E4e8tTr2C*M zrGpwqV8l>h1@5yP?AaO{-(xLZr7{a~u$uZJ)6@wwDyx|h+afHG z^`(h3mg^R@3o*4H4FCaj+y;mL`q^>}tcg8)qSkIz*Uj4c&>8n0R7@K&|CFD|LGb|=q8qwbxwldkQ>F2^@N zS>QyiOT3_B8;$}1i&Pf)U5fTJo9Cs39{`#6!sXdIz!MUG8vYXy0{>Etsc?M3wd5OM zBl}1e(8R3U1+zw=xO_RstdRp0!Wo06a*jn6A?r`js@YM~D5Ri-6f|^h^`CP zMZt_$X@(_ns5FjWq5yW$D~%g2Kjbk@@`RVgsWBhF(&3JUb~Qcp`GLtS2%8pK|5*;$ zjo*7MIr>GT6#T2Afgy6<9Yv!}VQ@?V&r2M;fY7K5Dr>eFEJ-NnagDT;^)!NjDBS@8 z;M>hBT`LrSC)?C4gKkysH6zk&#S~BU zMYU`lGO$$D_WWIIR_S_tiXwvHX5F0V0jS4w{RxU(*rQ6)Y^-!w`1Me*t89Q1l-YSR z@%oF%12d40_RWbmF5HA>NHRb%k^Wp~Xf4+rTuIed+)Ni1DZ`oi&(WkGfs zLiUF5>30Zs#hte3rTflzRgp-QtOrAUI-o_kWRnoY{aOIMos=V5TvHA9N2#LSn{w9f z->&ZCHp7_w15!!KEGIJ_roU`%C;yL9@#UmB!~?*jq-a}FvXEi0XL{Hk08={MBrcvf1$>5EXxbX z%Bnh0)k0vCw==N4r{FU!ab)H0A`+zLXe^`4)K_;N3YuRP{HInTC=_Zsq7wdIY0_;F z3rEeg<;n=pVwCtAXlbAz(;6!Wz`TOGliNjANrk@+1gM%&9WUUZDX21{WE#<;sKjyg z456gRRA^Tpi_Iz!A%P33)+3sb3FaV4ZFGpB*isM_pL%Z~f~tLH-)Km)kXwn$H#SxI z%bOA5VF*(1z|l}5>j7XvR;{;EO{qV5#iH4+I~QpP1&Fftf4hKV;-NP*J~>p2^iP?6 zpq!H9EZM3%Y;9qOJG&yB7rzO9A>dcpPeRg{SQPtxBudxZz(z{Kul&^ZnTe`B6DveK zvbSzm1D4|#^fsJEu#+6Zb$6r?Bv;G&<$bsoU+`G&+91zV3@uR3itk8@n3PePudVD7 z+Ye!J5Mk1R9YPc%I&mW$IY;}Ro-aIcu>L&~uwTI@#@mp}b5zvldqfO4#W}7p_~T27 z)p+h!t*p6Z8Kl|YEFow1Nt_wod+p~J{MXoFd{i7fByD}b>yQeq7rxm0)1s;L7UTh)&IkGiNseRQBd%+M{#_%RItokdLpg?A=aKFm%_+^yF#tbys+YO)lO zTp7cN&z>p&vCea|PZu$s>rk9f+@hpu&*n_I#4|HC&;;lF8|%8m1U=bJGzT?Qqe9gp z1*D`Uc+`qdWaVGVz&*T)rJ3k%EguLk;{6{i{!X zOQf%NmI~MqL<22>{v|aFU}s|^o>!hQ{v<;f&JJ%_Egj1Ta&T0ote6`wA#p?jW$}9m zBaXS)#Agt~HY(@?kFadLnUj(SS~ix+-O)MB5dmOGXOhZ$3_ z#ri$W%+hFy`-H|}Gz6qq$XZU1qb+Q1ZgCF2*1^Roy9r{5%+#NJu+F?IGQQNQb(}UC zt>jWc>onC-C(jE5`~Up6pm*-Om0f#CRV0#U4Rf4ehInmyk8FaB&iLMjK9$8RFjvss zom6QByuc(RwRI-R+UO-%e~}7SC$q9ERJ9h4m0MB@5ZC?#6gSU2Cj4iy#K%<;4U^zq zirG_?!!c6WJ18tdF**z+FetO#L@-jQx{wL*iHH|;zSA3Vto1s0f5~bY-?d;1bT>VJOm<+Y4`F zj?wZF=!(6h<-Pm`CnO1sEjDwzz9T%N-%mW-(PHaWSSoT;g84USaR) zOx24#K>p(kMM0Mfp0!+CLxp6xF`$|hX*4|w5GanD;}}T=UJCzg7&%>a((O5k(dF!o z%}G;e9lIDnYw!?d|Js$Y&L>VRP+E6X@mzZ~M~yV+={n+*d2>K|iWXJZeWm`FXDk|2=f5viUzhpzLxXriyDkhQS9@Nui! z+NG^jb9!xov{hL^ZnAZMrQ?D!4RU*vykK~2gMjhl6U;RNmD3NNnL^vJ8C zHW7M}FSp*p5uvg3m2^y8iG6vUy62A2LpbZ z6_@trr_E@puX_D^{zL@k5%g54&N|fNc}mX5(POZ?;ZgKuU(iFm+GQrsOz7n8BLTA_apEjN@7wN21=* zkr(G5^_}4>LeM9Oe()J<{y*8kku>or-2`eQ1K)hxV_1Pn+`0GpwL0N`X!{3PI;4Z6 zFGpKwJ5)PDE5gw06nA*xn)IrJ;E;E>>s9RVd9}fg@P%t!@C`^}mn`rG20rTg_J4hv zyLh*7nIm&s*|oeD^M%XEacNHHAcfzohV$CQ8EJpv7@o1t1h%-V)sd^2rV8H=>^CsU>MT?R+=_wQB5)Oa!xnFXR*jjBtT1Tkd4V+!SrF6TV>&*r8pi}H{7Q@J}DYISiXBSLOT z?hK>>mqZ3Iv;$Q$VxA_Jquk_7iY4N}8}?+wIzj&@3a|x7Xl%ODW|^`Z-`ov+J=LW* zEeZPQTbr?=ixYxgP@+NJxsjbr)up};1?#-}BEvZiEtqH-w_Ixs2fEE`G~BN^Y6T4y zvcI6t`FR-kV2CDmQ*4gZzZ2XphG}Tt@LMV|=fTq}a6yyrNn5P3WD=R=`?j>?s#rY8 zOu^pOOCLM%+D{@^?^YCBnku6`Z9}DYl$mHb4YYG2b)qz^pR2~!BY;MvMufb$ef9!M z0~%OV*8%8rU5;frY8nY*%`+FWAWy54wh@AJ`$QLu`iRTZLx4DQlxj$O2SM4}ktohR z*|v3fFEsUrc@)An2-BLBH|=X|pAB%eR}ufQA4+U_Qv`thsVqA9+Z#*&aJ>owxk_ z@H0p|WFwZv=3RK4ci`9%{sBTK=ROJOGC-g9A==V<9D2bN)2d+h&n3uCV*YR07MHmtW+-F$)|Wd2chVPf(y4t`gclkSY&TVNzStZ2mcc zbJIJ-Lqir^RMyiN+~GlLLl1^9M&1#!TEqiNuFqa&#yxJLyQ$}2ar8rctuiO7plc~H zP(F~iX}-#-x7bHfJ0tw#e5n{WoItQ%cz5L05i`t#f?6hyG*<~UKnu80dN3@LnlBCmmptGWEU7$u#9?5wcWTyads zAp#Q3I7tx;IjBDTJJmWTTm|AI%MnD)kOaQf8}Nl!`;L0;Z!}K)wf0$dpbgmat)i79 z7sjs^L^~BNzU2;Nanz;TF|Im1dM`Q)0n&r4SDP3~DP{CTv&|;25xIBW_@mjD7cUK{ zC*t1ymqB$;b}qMqqQNhfueh=bmcC1fAnoq@831|O_6*3TTci)Whic3|7kCmtj2z|Q zGF$l*$P9W77)z2_k$Bm^2G12xirY}^6|JrziF6UeKKmkV)#dZDUUkcqlmWrDq8U(9 zYNMd97oDE1!R@}vwZtBNU8U_V1uG3OBN@p_kJQAn!=`+hf3;h%Ahl^>m@(Wg*f7=@ zWb#f*{%Q~I*SO@u)_H)J&)~yoqVy{v?}njqUfCe{QH%&EM>CLvdIrZKE@P0~zX$&f zN~_?@>9njzn>NA;F|WWk<pi;E{j%}?UkRo-cKg)er=(u&($NbxTGXux`(_Ewq}I~`zoL&dh(!k zyVOB#T`&%Yxs&AqBAY!cn{M6u_8eM-`;$-k3g6yCtm$n33x?2D0f97D^FRZl4jPg^ z0Q4Z&YVN_3il~@3?I=k4U^Ah_7A#a3N5?5~mZY81iGA}aXFKa@^=EztDe}u*)n9;d z{QKDi8GaoR3F90rt$=u=4E_r*qhBZ;!wkNMRwM|I+iA9f>vjA67_rRQ39eax6}bg| z#2E^aF2?ug`R2|a)?HW=HtiOdxt}hxZjT_mE}z-5++tC*{aaSnQ#~~y#R=g0b{J4; zjK{MLj35eg_r(Pd5CE}A8ln6CmNLv7!6k;rznJx(Q@&(A6SOMTun3k&vv;Wqk z#CH5UP~7P6;m!x;{#DZxT@=s&@b3su-j^L8v2)A3PTH9!pgD@j*#%=W46!q8{tv>N zM~SK*_RA*Ncrb#>S$T4^UGdt9g1}($3Hg>`W9Lk!T&oukpukS=>=m-k&A^HMpvbj} zW)vl1OK>>zoNFipbopT0?@(B7+>t6O7|tD0uy(}WY98=5P&SO+h+yoP1R7_yCwStX z#95KzC!p=nN4-^Vtyw?w8cnj4Tp}DLE|Z`&u`rsjGN37%s&BC5Q`C!T=}pPis;e5) zxq$g&IRc&ajY=@AQC@@W$b@X4586K6XO)oL$mYI#WXn&$h-0H_JdjN3#P8daa0uia z@MOaaWG#n1|8DgF?u;<5z47{R60WCrObN!Gb z{m^QOlJ8-!&sEEukQDjcKtg(s#c+(On0FBXPVUa#wHRMZW{$(=6cU%|R-w+=PrWKx z4L3IVe|NQ|O^KLe&bXu*9ZjgMehfLfUjswMuC*5~@xO`6!cqFMRRM}bb2as8Ow~i> zGcn;{bWanKd%Nd~E>PbxhZKRvYP&&zyFu!B)b z{`0H(|Ae$O8NX(O5Pz0=w`uu)YIo2|CW!7!0Mhyn0feIZUR2xknxWOqBvh~3z;#(t zh3x#?MlK71?85S>Ni0C^uGMt$ltS9@L8tnrDm4FOhu@9PhX%YgrUXOmfxQgKeuP#N zLzL)EGLgJxI!x_Vbj)L|4Htct;E~5M-(!#boW-H$|CnQeNE+G6q^so9&v~PRNPt0dgKjma z0U@GsIqMCPhP~5=Rk}`R4bzdL)fr3|ga0alSp+8M^#5td#kwZz-chV-8~ZGc=h_4W z-&N+7<~_%@JrzLN{L}5K_eNv@^?D?Im8=5-$iC+VH}SAVT~-MY+`-)=E=`b(ZZ6-g zRWET>p*pZufuWy37bYu^52!Wd_2!6iMRwf+%lAOI@{0yzD7i?H&P08IaQBU~i6m}& zv|V-{R~J_@#xk!5`%+52b99DQx_DZ_MBxkmjbhKm!;To#`w!mc1$=oQ)++5{2s*A3 z;|M_|Ml9fr0MA{@(s--E8w0TtcWN}o`Lc4BnQP%|!wHc^mBPLl7O&_+26koq1}j!; zw4h33$W@f6=4en1)Q8KT48?p7tsw27PXGdJy$-~!!R95OY!!yS-&6LcF6owzt?p}e ztSCDllDbery2kU%=sbDv#wXjNoV*(fE}+CfI0U@-fBWkY$yom(Pyuk#PPeU}#S;CF zk!V8UdnK6I>`3J-u$jF(a+kgULT#BnACLSYUjs%0C&IA9#y+u3IhX<>6+tJXX?DO9N2?b{D4+dNwaT+r$)~MNWogC%3bLOn?|bWp{FH_wU!VH? zV+@p;>8M7)ZIqO!y@{dWU0}p9{jdU|DiCOnH4{K^jt0J2xVF0((Lv?px|;@gvOYXj zW1GGGx32c};>9?u7IoteS*@iU6vdGKtl8P~)M>s&>RTZ;dz#Ih>Y+Eh#aZ@|(I%SzISp{*Owm})U z7D?NzlyW+re@7s3JdU?SN%|YjYU4nJ%}3iM;??fIBs&O~dcV!89ErVwrz(y3T+N+6 zu#xQ(uCssmEE=H*17PGZvrzEQ6z3X$0{Q_)K>zR{?b1!wx66GU->W9|KaIME?iOY@ z1;$?X$9)gX9&g1HPQ4(Y&|+AMlf*?f^IBZ8CUlzoNEeT+Cm6unFs^>JliT&Rfig;= z%?#AgSD0gQ--H8fZaH+rydJ5#_ryr!nLQm+1Yqvi=-%8)^Y~+KyWeYQ_G>?_@t5W; zG~5k!d7{L^?Q6EFC4OAat}xA`sN$g#!ZAcoXSal*iskzyr14)* zXW2F~1SgA_FrjBjyu4{!8xT{;3`-i56+-wLBImaU=Zv37jzjY7+IUyJ(3lT;8>@&& zr^_wT?T3?3<>H6VWaFqyeEcr42SFxkMmqK(1E;@3STUL`7rF{m1Nk#`#*G=0iLgiCEN!QFLz3I@52Sssi!Kz+z9lJ=Aq4?UhnVDA z@tQ@>T-~3ffmGkO(PL9w?ds&+4=MQQ_rU=#0nq*vZ5$=I15fP7pbo<|2CP62U`Nl` zF~f5nz}8P@RI;L>R_L!EH52f*f&qqIqqcS9Nk!r65ZJy*KeFfs^qvknj6M2w<$?B` zxfvn@k1UN7(kYg;zxyjj;IrZs{ZIH8|5NceBDtB6Yx2^HJ~cK(-!$4c4WPl9%h?GW z1cVYyUppkkL!&}jk#J^7>W|xofGU~#FziuL*e**a-4VzX%Q8hf0MineZp?N!%AfU_ z?9~B0+bc2{tR_D#ZR0Gz%;qIv2CmE4(9nF1^1!>)-toFM$Qh@l)t|7F!yCH*sRYP8 z1vgccPd(-)LFW;JW{eGZTtu68m77Z@$Zqp}LkeKR$YB2bucR~sEd5R5u_*jour ZTymA~5q#g?IU-zEHttt;pKoqo`i<8Yr7!>h literal 0 HcmV?d00001 diff --git a/MikroMaster/20260602/20260602220002-Config.rsc b/MikroMaster/20260602/20260602220002-Config.rsc new file mode 100644 index 0000000..0eacbf0 --- /dev/null +++ b/MikroMaster/20260602/20260602220002-Config.rsc @@ -0,0 +1,3456 @@ +# 2026-06-02 22:00:03 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1500 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 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=LAN +add name=Internet +add exclude=LAN name=WAN +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/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 +/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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=Internet internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add interface="ether1 - Unet" list=WAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ + 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 interface=WG network=10.8.0.1 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 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.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ + type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.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="ether1 - Unet" protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface="ether1 - Unet" protocol=tcp src-address-list=\ + !TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp 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="ether1 - Unet" protocol=\ + udp src-address-list=!Trusted-NTP +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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input 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 disabled=yes +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid disabled=yes +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 disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes 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-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add 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 certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" 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="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602220002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602220002-Diff-Config.rsc new file mode 100644 index 0000000..812bccc --- /dev/null +++ b/MikroMaster/history/20260602/20260602220002-Diff-Config.rsc @@ -0,0 +1,64 @@ +18,19d17 +< # managed by CAPsMAN +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +22,23d19 +< # managed by CAPsMAN +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +2443d2438 +< # +2446,2447c2441,2442 +< CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ +< wlan1,wlan2 lock-to-caps-man=yes +--- +> CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN interfaces=wlan1,wlan2 \ +> lock-to-caps-man=yes +3135c3130 +< in-interface="ether1 - Unet" protocol=tcp src-address-list=!Trusted-DNS +--- +> in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +3139,3140c3134 +< 22,8291,2222 in-interface="ether1 - Unet" protocol=tcp src-address-list=\ +< !TRUSTED +--- +> 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +3143,3144c3137,3138 +< connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ +< udp src-address-list=!TRUSTED +--- +> connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ +> src-address-list=!TRUSTED +3147,3148c3141,3145 +< connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ +< udp src-address-list=!Trusted-NTP +--- +> connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ +> src-address-list=!Trusted-NTP +> add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ +> disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ +> out-interface-list=WAN protocol=udp +3150,3151c3147,3148 +< "accept NTP clients on local area network" dst-port=123 protocol=udp \ +< src-address=10.30.30.0/24 +--- +> "accept NTP clients on local area network" disabled=yes dst-port=123 \ +> protocol=udp src-address=10.30.30.0/24 +3168c3165 +< established,related,untracked disabled=yes +--- +> established,related,untracked +3170c3167 +< invalid disabled=yes +--- +> invalid +3183c3180 +< established,related,untracked disabled=yes +--- +> established,related,untracked +3185c3182 +< connection-state=invalid disabled=yes +--- +> connection-state=invalid +3239c3236 +< "ether1 - Unet" src-address=10.30.30.0/24 +--- +> "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 -- 2.52.0