From afd733ba73b0c760b3c2aa165a2843bd3f5063aa Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 17 May 2026 23:41:10 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 17 23:41:10. --- .../20260517/20260517234001-Binary.backup | Bin 0 -> 252263 bytes .../20260517/20260517234001-Config.rsc | 3445 +++++++++++++++++ .../20260517/20260517234001-Diff-Config.rsc | 12 + 3 files changed, 3457 insertions(+) create mode 100644 MikroMaster/20260517/20260517234001-Binary.backup create mode 100644 MikroMaster/20260517/20260517234001-Config.rsc create mode 100644 MikroMaster/history/20260517/20260517234001-Diff-Config.rsc diff --git a/MikroMaster/20260517/20260517234001-Binary.backup b/MikroMaster/20260517/20260517234001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..994efe1ec9ef6081395ff21eeb28a0ed5f402694 GIT binary patch literal 252263 zcmV+aKLEh*sF8DL*#iJ9Kd>M-HB&`T>Bub+VtEk&000O80004Z`SAPzLlIa>iL9{+ z{p1;I+Hp<6LN?^(Fe`C7qUUv#kWb4= zdcC2cwd{kiNW#RpWpKNQr-qQ`v-8vA#`rK_7!u3bOTDGuvSe2QYLK&w3l%hF*uTuuTyTK63A${Tu$_jDJEbJsF)6<<&(}ZMds{{P1!}d!UnfyfE?2t{?{~1j*9SOTAPARl1o* zl^?KCq6FQH#fD%PvWprM(LHX?t87bssd-NonW||fZ8Ar`*40+{@0J~t-dBCJ zL@Px^)fQug*a*CI|4~0k*a0IG7GdD&v2(8zc0Rt7k#Sj}U4AJK_ouar{E%t~C*7=P zmY8DpiG&XaKgTxTCDKJ>#?q%pdkp511$S!b99izOA7-8g-LCU66jV&#%dXDs)-Hu{ zZ`xBiiY!Swqn@r+TkPALJUdu!gaaKxFd+RYet2%;7UDsz_*AaGodluOmqZd zek0CI(5^TlsCISjj_|c`W`xWb{yIf2c`O9>GE#D#V?()UzeqzXM#k>qVEp|05;2a2 z38d~2iz*5qrvZKy?R?d+wVEtIFYPMbOtV7SZNq%n(ns{<_@Tjb<&j#H#*1(N`YNM@ z4#301QKHyAQ}9dlT{Ev|7gHoja-yY3hzE!qlWF~m)y$f%f53^^XGMmg|5;j<03P67 zyi=nS1?6K(X6;9fGWo0{FDNCbOi!OP@N}y9QeIezOQnE2?e8_CSS}wB!`vhpz=_J# zKWjrcLbU^w0sTtv#v)A)!rm@rf5*huW6H)1^ln6bRkww)qg{r*B?(Z;`O^2W_i+3x zoa@7rA|W8pZR*xf>OZqvr^=JZmDmW9fw4xE0y}%d?2bnTyBYBDWbwLjwgITlTcwtXk3FWG4%56M|tUqY|0Q8KBkfZ$F{Qt+k zON{62|3)w-F#Hq&@3jx(hkk#+LEGPPV<+~RZm9FA36)u$*zoWheBab>NgY_+(E@Q% zukJBJW`)Dl*hgB4MELvZiIv326bTQ{J!p=}xsPJ!e5n`l-4S&pwQXw1uc5OnXzx8UbW~PY z&;_W;g@LTX1<10MHiM(BtUyH&fW?JCJhOFb#)ra?ypX(f@A*&JjZdq(z9gsqnu8ff z)~Yk6vohn!;se=o7u*2M-a+*J9wBpE9^D{M;CaB|ZCG1>P6>m*T`}wJ#iZoXQ%ARp zzkzwT@JRkJg=aZhg02TUE?|RS=u(|+BLFHQhagA#2j10*3aI?MHoiHa`->YJ8M5$( zkcBq~NDX170s4IKR2x5;C8|ezHabfvojX>OGm&dxv?$&x>G-A)4Ro11G

A*od6khlv0j~#?$cbi1oX-q= zZg}caSiW-`MJtv$llB#Vnx$Z1^TiACM+%XbV$*?(kDE4%^%TU**&P0Y+CWb=F;1&w zpb(eSu)_Lg@P;GRpKB%g(cT@M13t1FB?>NUv>Yam`XO#baVPODwd z;VNkh>wG_tvtIkNc71Roc?gHGyO?F{HD|6$Xr#QeTi~aaoNpRde#NPbx&DC=yz$Z4v42J^{ZzcU8RYbf5VdXbykFXnP8Nxu!l&<8s2hebz6iQsq*C!HkLh#; zG<+!CTZ*!dK9xZ^|=Pa4G^**E?3#kPM1l4nl_=ZaL!F06X6c z!fjd@ym|~dh%^t{s0Jt}5-RSwan9RAzp@$OfCFCSxlI^F3A z0^9I4Z|e^5)B};J`pdjH^c#ZrSqRm|6wz&@{unu5AQT0G&4BJ-Po%qOj%I5ptHBY3 zcY;N7g42W_U>A3IHECXX+61-k+Jh*1m8jVOOsD44rmB&_>2PY+JB@m&x}o6UTR$#! zGQ%+y-_OH)(P340qzSl@96Cc11T37t_2lT4e5m{6=EOfo>qi)Es)8Fuqk|3_?23e2 zf$-*CwBa|22+>bOm$f=N%DHQ!G32rfw#JN0u$FDyaJ#qJB*%+NnM-#ElQr*ea}214 zvjg;BJ{juCeGg@J#TXog#VPDgQyj=a}^yr{EMPlm){pY$@)*D>Xm^7}Plt(Vk69g$PfMZdCF z@@w*NKP^mfFr6c;76Dr~Z(qJ|FyAk2BqjoYvddnXqlR)@3CyqkLR#>CBA2w0>Bc@^2&uS? zxX{BBIP_BH@_s;lwuel#TQI|knmnTEu)wK_dSdctP5F$~r)k0QthUPg7wGXP>p;1P#eX7QV#QJCB1+iS(r_Ul=Wk4YJJoYVU=yV|vWZ^Aw=pOWD;ezk! z4eJ5mFI>w-IFp)54t~-YXatuc9EN+ZdcKkx+&F*lV1rT zxx7htSyKzz5XP}9Y6K=K{O&c<5ZG6sty;F>{)8Oi{+tBR02gm0;0BTklYkE53bxWg z)xKa*xYsb~`!dtBR|V{29>FWAFnt0pWn1b+E?40wu3!Cb|k;_++Jes*xxgP7y-IehZ^;2&A zO9dO|#L#zUyeH4+f7uCy*lW7>jChIak73xNHc4y2S#15I7}JyWn>Zf*Aw&M@J>QL? z7)sCoqgQdUY22VuYfyvVIs9%KC>-PPV7ja_3mdYsr0Dx(LmIDM2W16CQn%HJlD8N# zfrb-Y5d*+q#ng{S{^@d6tW+ojY!V!Oyj;AtHByG}abc39e^&Ge5HMMg^?<~s7*Ruq z=`#wRT;SKT#BN}-@?$XAul)~HD^8#;M0`W8Fly{ARFA2a<9UwOKT|WFTanEG2%)T; z(xQ)-id7tF^M2TpMQeP4c$G^9i*L(k^+RKLd2V~&3Htn`p7&Voco2TLJ9F=1T92~# zoB6LA{CjuP5*Wp3CO&##YYvt(zkm9?DpjwjO*U`JjHvy8-|f24)e^mi%DhlS!vYz@ zfIEFcQDOY{-mAc@$u4T2+3gVDTB^o26)$wnbqR1SF=<9O_Ox@j@&{KxF7v}<1G48d zz&(Kx8y*q3h{y7@m=_3omYi8dSSGfqwG!nmT|Jj6FTuN+c$+3V6HS_AhmOkkv1Xb> zdQN>K*#);0T$VhWs9@21fAby#2GnzkHP1b9o5c;U+YL%d-?wR>!DgRN6^@IN1wgc| zjP_IGSXI>HzZ4d<{;ok|Jy#n<%F)*THY9I&Q3i$50jz7llhriw?sZ%1G&x>>{tb;N z*EDd$9Zh5hjyqS~z3=ehPgngS4uC<#$ECUM67#yZ>_eZ<#nRK@OOb@}qPt!upQkk- z>q}P_ykkYg?TaWr95#b{H8w>$1=FM28`;f62jZ^?Lg`V@sny8*`h*Ul5`f+eXd@P% zTp%?f1h#xX%H93IWc6Z}opTqj9~A)ZLu!D~Tmdih^ayO-nb+E0q+=#y7Fx~shvFb% zFaAS;^g_r%1S%hgbff5OL^C^V=IMO^Y&qcCayXh%4j*Rq9ajPL15R{Dz<(|q5waLm zmf1!&yT*fvMiEzX>!RomPlP9L1TZ8vzYbCgM?^o#>1MdrCB&&-9bs4RVbV@>9+Bu}dp005Dn(*Mx4mWDLI*$STh( zE9>Z_x6}h?(tuFsq33W;=r!X5UoQ03yw9S=38g zE()V3d@P`c7=|?#?gy)4jydAkfG}Dk-8NJ4bh{NmP-b?ehXdjFDwDu8)}n}R^eI2c zrfWZzU?|C8h-FXqVYPySzh-eaq$(&}(&pZVWf-}Zb4X+J+WOVkZYuLZ-R4?zILA97 z*Nt9m^%!PY_~pm`QW<^1-8n+>oLx=QrB#(}$9?r>?#IYKELv(-u)lf1LU`0yChSKB zeAZ0ZFHfAzwrUbmtvm>2Y3V7ng93-1#lA^NL}3j%g7pc_AjUZLD^3c51``$3?o)AhMtDH!gG@t?ko- z-Aen%CbI5l=9nQj&0Ji^1x&NTyu}DXTveLJy3ogGtXRl?@}f$pb4`tpSE&m z*U?NmI||p_ENuvs^1D`T8ng=>!tdV`b@t=AE-Gz}4}5CY-Eby4>(w({d9JNb6& zuk*FlBwf1sTx(|5{ca8exQ;Fy314_hSjI%%KG}7{ZQ@*4#9_org$v0U#^`=ycyGSn zzvojiQhEWQ*j1{ByHrz;42wzEspR+@u9PaMKBI~j}_E{Svf4wmmL!GA!@1-7?LXtgJ)3z1dfeOsyRwjx)Z-x!CV z4Bm@I8I0C>ZP++$#+Bf*OzIx2+sU&iq+nijQlm4HOXk(iXexmbY|jhYZZ1*j7rrf~ z9zof}y_Y8ZSmR^VGhT9<=Q*lVr|y$h1IWJ|fGv+pSSqF!pgCqlBEU(dtoiA6sld9#OF8c`lZtYv(gQQG^4+o ziO{~K*izPD6tAnE$3rihdqC~2jW0>}YK+*%{fBK5IaW%izZ7>|_{JzOdvwt`kj1?& zjlZrjH2f3^n=-;$b!XcurwAAd#1_PSqF)B}Jn8^=2>U*hAP5&VTE)(vwaAaNT*rrs z#+``Ms;&)Xk<%g`ykmxOB_PbgPCup^F!h+S@mp1Ba>pgPTZ~~(1J)%JlPROL)T_-! z@Z$4A6$)g#4BBb9q79H{h*}@xhB>Vd%rtz-lh`J#l3~z+qmJU*y&zg#!iP!C)8fII z7>SIX;)CyneX^4kFDZL`dWXdO!%j}|*);e357W%Dg>s+4KtO!{l{ewfpKrADkH2TN zl6SLyFPdFhgg7dL(&;*2Kn43ux`v@u&(asQZ!CU&W!Lt-SJ(vX5GR z_`~^szTmF`G*lb$IuH91TWE%FFXv(z_OR(0cI9V`$%Gn_s0!`89cYfdHZgAswVlp3p5G8U9etyT2chvaexD4C5@IV5=S0!_uuyrj)nduNBz?hQUD8WNO z^dxu?Ev@j}z_gRrAz$cAE~i7|BCbk*n4@=UcA4?e-^Fpfn$wcbxvd>yx3|d(NcF@s z!V%`Js&$~p3r`K~r>+YF=DmJsEn8CwIDz){wj?#VbiX9UXS6h1eHA-Dya`DInmDIf zdkX9WT?tlR@a6k7Y&pk)*Km`%B&DQPtMNkq>XnTfZ zF3vFHF(WGEX9@OVn3(4qENpb|)1^(AzB=ii&D6KF5?ZX5w*ga|3H9?L#4ctddHlkPkmw#R-#Q4(E|(?gK2}i?mrC+@ZWoqcYg6Y&D%F z%7%&q-{MVp*jQ;@9PK-|7;u8C99^$6R??>zqPyn&hhu!OawJRu?X%$gcc5 zFL&)=O5CR4cb}})xY}C=l11B zi)L(lI%uYrPG?9;y454;)_+Y9-zEyMQM+pJ7zt4r^!oD*3+ZK?*DUQoiX@`aJ^UuO zDx4YS8lU3K`awo#C|l*(zedzg5AI7Syu$Gaj_OwXqC8WzYF>Cok z+3LsO)zC=?j92{PnN;J{BFQ0QVfMrTz&uvEF+%8(T9SsBetDE0QSRqq`k0$4OCaU`!9uB~CB>+pIW(xMJ;T(4>`WwTtx-%tauoxjEWW`M~gu%e$W-$l0V<-T)d#}17o zq1UQQex3$w2K<`!_G07J-IWHJbm+s72iPSW9jSApq;_>tQl*Wv`>JJK8w0DnK!`*C zn-iBPA*MI9sHwSgUcV)%b|zb%zUqHz73p|SUKWE=I8A$9l=7*;_q8CrRJCTSN-5&G zTJ~0Vd@7x_l=ePAH1r9zcHsyJvaVAkC$E@a14sLqXxcgOTtSY<30J#n0;)-jKXBKQ zwS24azpNt~dQK>NHF7>!$ab=KUh{EGtV1Gt%{y5MyK4WFX{KlNi7T++Q1*i@7?eAj z8fHkch)ok}Y9`%RqFBbo`FunpAOpNTGM}UHQpwX@Vu9rq&dNv-4TBOM2S2f^9ZRdY zUk0le;O+B|qG_Gfdm-eqsM^G8$I^RHr@)JP&xo^xDY+YMJ0KMnPw%3gdJrse`IIdq zOd*#uzcKe64;f{G;1%F8ZQIU@5eQ|1+(ZWezTQn)l4Q^~zJyd-G~3-S4M}n*RG%y93}GUtNKkLHC7kfHW}kEOH!`l0S8&8A z4rx4MC1h|RV$5SyajDIIx_kg8IH3`-4BF`(E&|n; zJf+~*X~yH&zCJK6SVzA18kK}p_c!DW;PrA|F!r*^9k*gT{jx{oLDP_F3ohUcW?T;- zRD6~riCCvC1grj9a9lA5{~IU}Bdb)GWaH&S&*qKO%T4CGpLqR}W$RKx$jF6r2NQ_u zU>n5UX9;Ps$fUQrLAx}YJkXgLCh>7^e^AAlN6c~aqydtA5a`V>RM%VaV`5Fm#5+b| zr2r6*W@4EJjLlA>gyw%b>pBdMGrM%P`NgDVc5#Ac6HQ)?G8-CM*k?w2`dosO8FB%O zgMl=)-%|H83$Q5_6w?x~RJL48x879qMF7Axqi(F%+>SQJWh`ZQ2z zXukmM64M-d!Ng8v64pH5YNkZl+QYB3A0*F?%oGiiyRpbiPhQ=x4hilF}s( zRz~w&X%lrkJ{uGEzJv;#uvIZ#m7L1xxiRKqZ`7@K3ZEhfVt9W;kNxN4DF)t&1HMl@ zT_<9C^G{F35u1a1wsSSv<%;vnR0K_=E0mNARyIy_2I8P%sieMVgDriKDxAoEIpkb2 zZSwgD8G5Xx2fJz}atwkJ-m72PAqgI|CKl^uAa#cJ7j}(V9+6EfY*IaggKTTI?=~nn z+)iG8D5te2)$@9!yvcz`syi2Z4hQ(mY|X~YMpG$=klu3VGr zKoQf1(P=rT0-taLW)1^pt8{cL@gVW|&ECF4tdA=!)IX#qzb|2gr`A+yFIa5udh!l+ z>WRFAgFWGytv0?*2;x%Bf&98MrB%=)2gai^>op{1nhs9Z#_j zKA59a*o6%H$@o_^i&D7}1Fx!A&<7ee{SNcTf^=j6cN(+bLZ5L+@!A=K^YE4~!bG=Y zq{1!5_0s)k`0kAgSoA%y{(&wvt;{c=cujb4X(}Z!Ftf^o1{-!wXq1D{vM0p-5uD6o zoBxDqkmK&e_5iYjJN5~jR|w=#T_<8SA{buo$y&HJSPbEX`rfhN<$5W;Yo0!sH$}v% zA7Zl(gABVTV`N%!z=g_a>b8?y4*(OG#e#r^7i)kHqE*%hz#bT`Ve8%4QO*PRZO~gT zQ5owzhotIski$zQ`7ykNIGWR*Ui|b&C)r2S}R*{bi6no42IG0Yo%7F<{xT2!{`ua)? zt_8pUYL=wZX|kT@9|#%gjuR?|3G;Q|#w}Sypf5O}Fa7OaKokR8M2^zG7X|&Z-~nB5 zAyOo&RFZ3~zsI_qP9qujK+`??d-`OXC8`{Dcwoz%&H0Q7nZqWKQ9A}h$YTot$no_b z8$W*}+v*cA#LxFVz9MmghJEY=`E*5*C(62Co}>p@s*GbxMW~x=ci7Rd^%=2FriD8A zA1cXz#*Yoy7s8PaQ?BcW%nX>vHyfd~%mg?x1-U61YVAwKe{mTSCozCr*?Ten!}Cz2 zhZHisWfvDGe!J74d&W;r~ zZo#O*e`_!XVE%EB#U|+G4xaz_zW{WDjwI91+Tjy_>|OkS z-vMYTsCGto3_UeE{W4MOZ)?|^g7boWax3WL-~W)YIz#=-i4CO(27j(yT2fFB@Kz+? z)yqW(q!5%)F!YveATWP4N7&^4rxmqBUX;>dS7<%~Af>v1qqFFGy92O>G8wz%$)fqr z3c&C&xVSB(^S_{(_T+^|!M5AQq8~j*xPPc+1BfC&8sFD3%z?4MKrTs7>E>=e4h+~- ze~Q#Qo%Ky;a|%}e%!OM9!!z)aou2nQG#6paUUHqMLo?RFps^6CrvP{?$c)3uI}e}7}tm2 z?QWsN1nyURAFP__tO{QXfbb>Y1v^Shw+ujIOmKc~63_+k!(l=$UpVX$WTFXK)%y`6 zEZ3yV>21lWCNJXF@gul+4)L;#(0U%NjX|b|PUz8o=HWJoW>B6?`cIk8tLjfMjbNZd z5e~<`gO(2#01xlRE{dCEs~yr;p?ZtUj$t zV_GQ(J_bdYRckmVJWwDA#pvF)%SX#LdxmMqWk`nq`w*}9u=&v(fCJU3Xj`E!KmE*B zWgURrayrdcu{tl-ZMKw2!@Uobw;^~%tKK2wElo4$Hw7D6`Y$q~R+TBo^NRdBbHBTG z#++ICNT>X6KqW6{1d+DYi@>jTl|4cm&_Q(;;7XldpfsSJl0VSc z5$k`bcrO}?bpemA898;t`I{2x8*qYXLYJMcW2usKTDIknzVn%RiVDgo8FZY1Ui?&t z1SF!~j0uRO%h*NbgqaP1#AS#YUKf4BxYuLuN3&B!)dtci1Y?~%JdqbDhs4cWQ6D}= zqt)?kyo2bY@QvRtkL2MzYT=i*1yq++#|_@PVm!e>Hqyf@|Lh8;i|f&LEtx@=JE6Tt zC$>|CQ(iQ-SIC=giP-Z^V(n~3oRE;r=m1%GNS^-|aS;#PF*0Wd=GW!Dz~#eH`J6wR z*_m@pZYfKj#hA5Nns=KaB7=2a-=a=e0Lb@NacQ?>Sp8LZhjg)~q7g<2&{Aah=Zm{a zA4|;!XZkJUa(zGo=5E8VTr0~)mXx_&VHZkkC2*bPpmBM%H<|;Hyi@hUk>@cl{2Yas z|ux#n}KnVW(GLe0t)NsebZa6E|4jC7uG1Pow9eQC&UoxxTviWZqwu? z@w0W=%rl&7H__o00?lKYvIFY8J{#U<2OaV=fK-^R2i_{EV&b7v5S8mON75WMM!!I#O}I(~ zLdrj-xt;fwTz|Aho^{QuW>CmE-&~ZB-rWH;g5@W8fOY_ziVIDYlfIXeA_UA(C{Lwn z#e>?SisKT4?qEdbS7Ol;0QzV;I49CLqOFGCiAO86QGlvuy6xAxewat%Xji|by?qYo8UDpE)XE$FVO3oO}?6ZoTi zD~7+W+q~BxJ(ucedof4#kTeef*jt7bdnSgkJ0+&Ko7dJ?H}a!52GU?_k**6-X7ll< z>ku20G;n|s#iBe9m~rtzzt~DY6thfT6$LApvW=^D-NJx}Ft38s-OU~LZ{J}<(1u?J z+$3@ZnYzM%9PM;)1%HZZ?}lCiHg~+Ctn{l7Ae{R;=HZ^0=Ux*92Eo=#o;a?g%(^Ua z`~Tl6cI|acMvWpjH5}D6dd%I=3$Lkp|vxDJ97(mbRp{k6iOco-^~w&IqPa+ z$CEil{AEM|Ug&WNu)@0dQ=0=pg9xo6N^t2 z%-^m3MDFwr_{v+sEu^4F2fN6!VeWBvT#3RyK(w%{eS>#o-jYt6R$le0;3Itfar~)z ztq>bW;6-FKQFYh}tchmLryyML`#(nF6Lp~{a#)B_ICnojE%@tWhf_Upb>8=mj-Bkw z@IQe1@+&0dN%jd+D&S-$rf@*Q+Fj8A)v}5O?R>xkVLSgkc%O`{a+0N@=*!&Je)lr{ zEb5OA%n9axY>T0wW}QfE2-hNN>m~ud)4>-R^pS6xWrZnI0tg~1kn4>T5JnSG!CAxe zlxj33^64-GeZDrf@)R{c-l+f7C#B0ay-Bn=M|!zH2Eme1pP)z5_@DZ)(l(_VQ@yQ9UX95(EI`pIb_0FB(db8H22~$<@E-keDKeozv(_+Yh~oaGEPF zmqiaXZ*t~k)9A?Mos5?G?tyk6a0?2XcaHXv?~NO2otr8YOJSs%zcUtc=PA;cHyJ+~ zj!Eo9vK|iM)^pV^Xfoydii_FVpgEpbRGr1pSvhbcTYt}!{c2tthxN(Iq;nh=@BOi| z#c)+wJf@8#(56bT3@1Pdf+NWdF7Y%A3JT$j8PFEi--hoS+1<4n7z=}WeFv-8cmqPS|hCPA>C{R8$vL{8t9$)4G>}?)Y|Wvjs|CldfE6W z5>>nTB--66{=}T~S4|c#2%w%;B>MYk)C6I)$bg;yHq$Vs*5{n7neUy4#ECXQv_c_T z&d1mMxuBVK2$H2msN9Jl3$&%G{hZ!>_-vQhaO}?-k7x@=;I=YkTY(%VrR?epmsg29MF#1d4)Otx_&m0Kxq~CPK@s%mViCcYb2V_u9GDePMmJ*NN z5jwvpS1RMYcTQUd{B;|N(@1|crN=ZwZm*TAz9WjnNW>{IXjxY8y zlgb5a5;TyXBihv`9$Ds@yNiQReeRz=SCd?p51g%6nIhZRa=5e_H}CSCZ6lb~AoGzN zyx$I0_ae@p9^aJes4x^EP{797-~cE?1JMueo$3QrPXG9(LpeW!-DbsOIZ?Z|uIwaGC_T4=N2Zc8KU@ z(f>`O1n5}MDc6)BK>pT0{}QX!{x4MTQEV|etp``AwK@dNOMSW*|D}p<&Joy3^OWDj zCviHcTGe@d7Qkw5Ff0W(MsywmNVOGBh?BMI6{r&F*tI(WQBAdDfxyciEiYHhS00aZ zu6>`2H-9ubu7YPnvHob5!e-MFb0O%PqsS0c)@^(n?!H%U>@gm*g8KxEU-I|o3G&u; zpZSM^UEr3SeWwO}E>D$=pr}#W;vIFLn$$#2pHxWHw~^k%AIz*d5%){hAn-MclZb#m z6wY%(o$xWEJdkOlpOwJxis124REcAZ4-^@(SED%eI*er=;kfdQuV2NREk*_`#|v$H zv$>_-^JMs2X;U#wOmp6f2Bw)wVbX+q0`IFF8aOyraLWCw{CW{+bf5s;h@dH2i%?Mx0gVhe8O8Wv z65h+h@3prFRCM2Rn1-4O+eMg{w>D&B!4;c)|K!+J!2Uwo*p=CG1@z^he6mC+iRwYr z0<%hN{?{n1ScL|^LO7^+y*g$gcz)E+T<~oMP9@f`*LWF#3SYdRSNQLx6zaSn6b`AZ zT&ABJjXtL9HbtnDpk2fL-|Bs(lvnqsLLQ2eGG`_I zgu9S3O^bV`1%|BQhtATdk&h8AI;?SGrEvmonjOsNJY0v66-`-(Y zVuM?nokQf2pHb?=YAM35^E~%YkayDq-dp75bnf)b3BVN!xZ8Qwk2B8(m%i);;tmzA zcC&BX#{=Hs_nQ}9?;|@LLFT3|-1A2S!;40xmd%Q~iN z14zKaZ+&?pAQ{iMfp}okXnIBn4Q7uIkpyZ~Hqn9K+z3qYG6pibqr281`7zY1m=W+7 zxMX6$@VKiFUgJ*L`6+C;`J!cE=mx z9dbI^)NhelbPD-e;{xzoXvW4Su=q@~Ygb}P-nwZdHoy2Z>$3VHbRR0Qhv@t2%8jeS zvON0cma2wyXr>AB`O;#0qg^MtJv&QcU9%o7?JJPdUWHS#hp@gnGk;5$xRhARv?EwV z4YN9WY?wR;RYA(+eR8~EmZ8S>qAxxS`N&OEx3az@NJ!l3Bl`!4QKm>e`P zzw!A-ttEL{lfZy>K8Xo2Uu? z=cp`JV)E-)KWgH;atxMUZL1e4zhu>Ko0AuvOOXge;gOYmIw>HBP7BOZVl_`3^GGQ1yhNdH5$tlUNz zuQPeJ=<*rYNcgXbQp#PLz#n%}a16I})*!zn`NZ->=U1KzJeCTdk82iMIe>UcOmw*X z3ciXO10_tA=5HIel9r^|O!uc;3zPC)(tn+x7dEc3j2yWLcp?4l0i7;;DBUqeLm9l# z2V~s8t0PHfZUTda!MNSB#a-?GcCyJ#Kv-1L4p*$7$UBAw>#)G{XM{l!^trBcN;9zC2jF8X;R|Ybg9Ip?5z5r~Rp{`WE_UvuTREX` zn(=J&zzL!AXHLZ8bY}?tSBI?Lwx!yDxoR-O#UDxz%mkkZ2({n@3pdZ@)cd-z#LZD$ zt>Nk$(pDGx{3hC=bw=!$eW`q;mu!ys?0D+4v3z9eRlP##qT&AgfRv+C519sMda{IL zKE$tG>nFRis*%0S$`VC*-vvYvj4aw!3`I!o&Lsi}3Rt-;Ds{Wfw*Wr>Y8&Tt(war{ z+cslNlaCLs!?ZW0;IjLrM&Nv}fo%Qf&?3HmV{VCXfawvqGKa}rSRk~Wtx&$yvtp?B zenaAY=j@=;d(4ioF_B?NEi|r|<}ioxOTBPu{A4TVys1nZ(*ARZ8BSCw?!H)}|0{zI z)?|Nm(f9Sejv1`FFOdMhnrXE0tLAXv@;fK&##|eH$!mTT{+5H`^ld`TuISsQ>{g^X?X*Xe{e8?ZiemZ*9{=1 zF`~Wn5(}27myxxU8)~$EI_})51F{p7Ac_v`#Ek}C2nd`9Ll!0?yY}5yzDH$5FYK+7 z7h^zO0M^rnbTj~HK_J_K`xZ{;aItpPVDG^(2-4z<)t$uRkp$|b;*g@07=E0d``SLuZoDXYxE28MEMpIqTjP7tlPJA zx}GPDe9|;kwrwzXyDlIeaTR|7!IbJ`p+;9B7S3Kr^2$iP_p3P#y1#T#*QWwr%j5t{ zlCW-0&ijYNhOa>LhqwZHXR$zkR!#dA?ohuuu&S(klHg#hY6%=GYo^0$WoysrUctWD zG4S>gACizFB{VPrdu-kyJE6L5ykHDA-b#V7C%Q_5cF5tfG`(-^SJn%z9HtqPl1lDo zA1D#=52nkm!1E>Z!;Rt}oFrcx`xq_$8Ir9HnB2}cNz_PeeuH8p>lYhvxCE-GmyZhP8Dd8c z4XtX|0>r+F7*Wgw$aAMU1odZWJ;hM1EPccSBj%>C%NjACLa~kI$Qj}t0&X`CNE2~} zREWWB-O^V6@P)d%HGIh^RARbQ{{8R^bXlr<%XP}2<rDE%r-!{DpuuL!-$O2KzG{3>L3VTnlEN58NVr5=BLc(DF+=qr{ zJ&OG9Y5A{|(M3UBcl{>ZRG6{gwh&IV_?x$QR_fD)vJrxCaTr0dEr=H_1rcKiJMg5& zU##AIx&aQ+ym8+Z9rbY{tf{QLoemKTpEm}~id;V?Ykknbo{G$QgYr%_ru@cmGVMdI znCf%qm_dg`i4_C~i_>uF>tw5d7x>Z;Nq5Gc;!-(B){GgK9OVLur zsw&2eS9`js)dor;XkHG`f;qi0vEIB=K)!CBpj>sQn|>*bT&>T`(HvAp(1J_x`LO4W z^`;7iR2rdN>fQE^KUOS0wYsccwMs^RSLAXvP>0JAhm1y?FnIUtHMv{L+)%%7%wsgB zBroQad+93w8j`q-9N8(Afi95iF&;h-8_rZfNFpY9BW_)30&>DK!g+-Yauw$lB~iY; zBh4E(A(GiuAjF4_-o;>U-#IHm;MHm1JnfWEIe9_JbWG9FL8~dg8WjX#9sr=(DgN}p zbUGgmwX6gu20Cz~U~^ubbhQz~J2c5`6;y#*RaMgHD?J!XIKrkh2O7(Fd8se_3Bui^ zL1x_(9*Dp@a_(Mz@q4Cni!0=qp3eF?Kj)3lLE`x#=IZnD{K$5!qM@Lv_ZiCt7{tQ8 zl0CfY#N`SSRfbd2-pMn zVJVA=DgJy1E;aGe)R})tYbua_;FX>Ia4$*2{)9F{s!^Jon*;xgj@?t}`S3Q{zo_a=A9WBo59^!w>va*X0fh zzWZ-GZ9wb!xJ89vEThOUv5l(#zKeNnSq9|q^ngtPK5?=am;NJU{tG74Q_szFFh`+cgVI3`Tq5-= zOI*qo%wocB_!_S~%%L>gF=O?&FKG;Sx%Bb#*5GyR@sLL`e6roX&2tkfH?c0ZIws)Y zHk&M!rQL>ll_LqcIN?{UHuMClRu-DjWZ&wR(*hzlz+GPh>b2GDak?xcTvc&IzXKpB z3O!|4p}?Qjv6uFxYO91$zvj*D@ZN5pG0njJhW0>mEGuc|1Vb)4yu2Ug5|oIn$Is}r z6E1S3ZS^%2PIm|D&|@1yA}_josGy?f0j)$0cswi$*JuqgsSOcmcE~h@}tW8FLQzX~Fp@ zYiBF>OexPg%AS(E519LA56Vi+)OA-Ag;5f2@zB{;2IS|cda+r=H!EBm^BFms8VI!y zoPyCzi)n=3Ex!IYQjY4G_FxX%Tn2tH1dQjEC1qg#KO?> z?7OrS4J+==D)5_6g-!075w6aJ8@R~W{g*jI3%cytuFs-lk0y(RDR5X|xzk$rdimPKfnSc_*d~HP=Ywq+P zq3NV@x>r>~U0^$8gIJEWzOHaSjMtHfiPs`|xyXA>89-7ZeI0!AHN=NO#_8x!h$9U4W-^Oq?x;}^?Z1!ERm0!4p9wbLI0WHi0vI>pC>e2o( z2VJ z#ZaS5<)`wBlx*g$2gn=yy_ipPfbbi~MSti(%znd4kk<9phbKzl%J>dT`Y9qA$H*Hw zWpofZ(e?JYW9(IoB1))C&_OpT9mt6rON2DQ5^dTEN@f8?-h_n#u*l*H|CY<8Y`G@w~skA7sIJ5WL0S)DNJdnL9h(j`n)i zSSzK4Y>l}pajv~@^e3l2(}5sY)S-b34@J9N0;5}$+@JQlQ{7T*^o00AH9a?)NO6?r zU_)pAbqSGQ~PAubcVE2s#a z3k{fF=n$#FVcJ!@W9+WxTJF-33k%VL zACx-o0Lw13K0n;X_uu-kWxMx2Lo7tRF!JIzLksX>W-P06cn8LR0|=I?5iPX3Ki!}> zdueO2{}{hW^L`MS8Cf9td|4pE-ACqlj7A$mAm3dDLxP+uUU{8Ewr-CmOeqgzFM`CU zWz^#SzxnXH-{s!@VOQVZ<(BMpUN`HsMN`rlexI0$p0+Y;+=-kdL zc0DEmDh4$^n8C96H)t9|*F)?bYDP${9PgmsxXL*Bj=UWiYYu>enBipV$U6LJN94 zBQz>k`r`}p-Q0DMwbPNgDKEersPigItizs5l0_j9cBlj{qUVfUJTWQ3%;zxc+vvd* z$i1f;U@ATuL2jAoV@f*$Hh*Fj;|WENlQGSlJ*&UBpk&j>SMx(aJ_r;mDNn?GHpy0Q zs}0|gVR%+#7&F?02fK*e0{ybzH3^A03S#OIvSLQwQij%W4f*^l(WgCwE>td6$PD4X znxv`3u-qEBH-ieOZKFuuGOCI1hr}q4D8!MrrfjLx_QK^O4XP`6H(s&@!i3mPND+`ZpFK1h8LssNmGe8mBu97sG*c{X?Oa5InftQp zj!ooVdwtEUsg1btuKuaZ2PFb1iF$8*saZGsGiW4#2l~Meab*XYc*om}cfO9IW(wwi zJe|(zS(yIauc;DdxC!?OOx=C`f3eXJTi@IP zqw>je?gV7(P`IR(OG#}SHu2P(^;_)P2Z*(??KCTM`Pelsn5m#z^u?uRqDlX|mtUsu zYVdeP;}@Z%%Eo!+8+=DqU(;O|Km?zJ44aE{?(&J+_U;%XPnV$XNN~UE*`Cbi+z8VO^ zVMQE7zPaxPiN@KN{4fjZ9qwKjjQk{?0PTHv9J=8UHKWM%FiRHP>sTq3?LVKwEJWNF zqTh_{!Bad9bgCv3c@~Ghmd2~hWa*9#ebeP3D;qyUtz-(8b6y&z4h;G#jQeh5ft%qM zDl&`UcFHnOn47iuJKi9=9(Yj@)T~^Pxi5$mHN1|P7m?8mef{AQ5q)8)E&{Y;@9fro zJaJ>-WZt2D5X(y8y7+Z6k=jN6n9+$HF834t^s71f$~lL9G|6Q{My?36Wl|sADFuo33ZHEM7bFod<%Gv3J4x~D>Z`)600_@oI5|V0g#TU zThw*VHnqBL;8mo`EGsu=#7=rpUT7p%5`@JhrVTDn_}aOW*A0N_6~IYy`xQS67wtBM zxNmx%C~1K%(Y*kTb2pQ#Y$F&(xv94uD^;z^ao~hTQoz{l*!m}UZc~N9b48kWK7`f| z^C0hQ%teUw8mpPya7fyFAx5DYlfW)&{l+dU5+?v*irjO6xSzhI-1t3jGXh_XCbO=Y zykJoXr-gFAD=XuygvoxLVx{IptcMHRdI%ws`U$`11$;7xC2{?v5K<_r4M;UFqRfvp zkhW@;#MsW6@PC3HbPibYtoFP2#!6idEX_r)#o5o0=B)igT0e^q45=SGc5; zaty)#!1O%xuB$)G%(zVd(-ApbEJU~FrkI}J_yAA~|{`5I!S$QJ_ zh>C3bJ_w4|3Ao`rAh0*$&XZm`vv6sc%M^wwCD~0c=+DPdEn_GaM&uh$ePXS^fBoK? z-g(29TzXVeIXtcTE&Z$gpyX3Nf6vIWLJHZt@GuN-$E-fz&1{L?2NVv6N7gv9Hv4m7 z?-QHDUcSg`MmyRi43wB~EYyKcJa240Dk5!810>7u{&3`D>nrt9f))?bi`8uTnQZkc z53{Ttll~Hn(B#ChgSolrac5>&g7XRP{H9o^JrATe1&CflUARMv?h%EwWjvCLr|+vN zF^-mZF12t-{QvBxTO(Tw?I{^BNv7Zhcy4MV$McVmP0Jr^7E(c*rzf`kD$E)u#=+rJ zOkNNU5n~TPRP6{3Mctblb5iddm<|pUGh4nLI4d>C$EP%^pKi5sLLyR1{|mw(>&Fvx zKi=5LNaz;b&2d6s=z{MH)DzIxI81! z#C#957qVb@KP@^l>O8TE%cZegRa_iG#8V_TSN$Xqs3=+XFGZ;1`@0Pv1WQYrl=*RZ^4-yHbeaEAN@_5|J50!ZIt(N-_qE?P!|dw;K|cF`G*XX`$p?sh z@cQCMkQncW;(d|z)VD0vRy*^=n#+5??xK%)w)?PbNbXjyqWt|~9aO*N`O@bc?LV8G zNn?Sdy9+ASg}(&cb$iTwsq=IS+^OxK$5f5<^do6>)WX$a+Rbbd5y=Xm_4Hr2!s41RC32VeauSh;6b+YaB zd7&s=reQ&{K(6esZ_^4qZw^sYGq7rW9|ltrtk}$u=J{^a$KR@!LWZ^n7UOO^>0%Lp zvGSt9_j3f#tr^xInt$#mo_Qa&h2%ZH+D_7?gR&@#9c?J^AZiAg=Jcu`VIr>qo|2%# z32nT5?)*nL3G<~(DaLiha2Q?c ztzM`--l2C<(XPj75Y9$M&{T4jsc`g+nWRfFR`ld5TBa?AxeWL)^&IXE*PK$IFpD0m z@smr}f1wfJO}ocnnbG2e5_ObcXihf{k7ShF@cZ%5MLlT}@I2teptKfL3{l9WM2;~k z)p9vQ!7*6Tk1ue=g zeDt-=$oXvoBNU;ydPj=gHJk|N+b2OJ2Y0HwG>z~bQJiN;B{F4b((;R8^66o%`hT@B zVl2i^pAL<7tRg6|!D~*{KP)}g{Rfnnh|qQ6-9kyGuD;=5P?MDlUl}|6P%<>OINXk4 zqC>(w$$N-N!j3=NBF%H6fs-NM15dNkk;cua*OGzR0RUoE#;bbe4~c;6dLDf$i`8R@ zDS3M~7Xm2jT+K^jvA-RF6?ercqC;!(2S+Cj)>Oj156f9Ec{#!Ge@2|0@*OG=+O&KP z`dHbkDHqRN5mUE&Fuu!{=N*3U$OdIZo7Fc$D0b2vWz#he1hc_9x;jPITgtsABds#2F6{=ruH1qo$l0Sx;bA>IfJ6 ze_cnDZoN_SWCHj)JAZDP$H3}K_PrXfI;ww|U&#!YWkaWw!lVoGR``3KP0+Y0*AM5a zse&ZFh-KQ~dOo;4Gbde(Yp<>V*G%g?I#|y1)D7Zeft7D9bCj>XxkDUla zfJ{ZUK%%oIdS&6Cb!|CEcr{aFE(EW^^=VLop+KZ#r=H|Wzhj&fAjU#ztcx`46VcfO zTQsak)qZT$tby&`DW|MfxlM*xfO07}KtmZ&laA5R)yHaN6s;+vuY43>Z`g!&jlin}DbO|2%i#5XF{{vu z0WD*%Ig8x*gmLN&?=TQqoK&OOf^3zq$aO=y47TfAVf_?dd+CiUF$7aGU%w2C3h}0O zrcA~xI;D3n#mQfe%KODujkioXes7S=O4IaVqJw=?I(ovWM=6o_dKzbHaZDqUwT5&u z?4|*ANMtfSdPlu|R}ARrxpS3mM@M;i!G~$= z-0&!PO7N;4JWbwj*P7F+6KhELK=39;qke~FokGYenJN4BYTa$4S{gf6t~PxMgAW?b zOL0Lr@|0Pp7Z6ZY0#N4b#*W#Qf{70<-6x6>Eo2p6s&e3|Ic;Ed`UfYX9$>(@^V&+q ziaUzJR3&-LbCXTtkTl{s2DJ=_h2YhhzOyRPd*02FA9N0)Hvj^=0L_luL?IgXH+uXb z4-j-gcc;ZdHp1l-LQJPsDjG(;h|%G&`ZS5Vh>f#4*RZ@G-CM#1fTolNyiuH~Dewne z++CM_he5`$gDa~fV50iFl3f@x$-JNFd&Os8gJzbQd%JSoqSyF9eL`k(^3;=nKK63d zAc=an2W<4;1mn8CMbOwd>c}zcrOswo`|T?5Ccde=;nshRR%ONywb{9#*yhb?A!eP0 zZrj%#GL7?1Mt^VhOCku@`e-dryf>xdl_)hbau9>COS-V#{e%A%JQ|N$y}C8aUqk-Y1Pz<$lcaDxp%2ZAL#k zu#gf9YPy)$EM<4UUB>-IQ4C;;d48{IZ#d5fJ<2W+-{S#!KHCcCbScPEQ176xL*GGrh)`exXoUA1T=$A4#8*r!l3eo2<9tHszWLKr*dj|Z)Sh8nusW0 z`s~4J3WXA4POdfLDt&q=9WZeHN)I1gLnf&)Z@Kz^fYPO>=f1H=W2Echd-KXcw`bbw zaCH8Er)_Tb;|^f; zLD=r%_)T2yiJse0jULqDZ7T$Hw^A)vIYtyvxt{jb_h=K#+ z2cT15%tt{PSu7-jj01i$CVe#xxSc-3h?an@J-8e8Bl5u5ujjmN8E|4M>gQur0=cs5 z7QcJjR~Gsdc@>+kiYRS2$6LUB^hu=WMmt*J-0(k--NKu~kLgJ>=0uf4=$|CY!?wTG zu1PDoYWzZ(n7-8;9ds#I{S#hm5<1Y3c^V>>ePutKpN9cP_hfZ#?R_}4WEHrIfE$Z4 zi=pvBdf^r9F7*!^k@QCQy(=T?8vuI|xX{8>(pX3CBA?vH42kEM?bx}G&mcCcLzITc z(_ibBU=TLs8@3l;*|OB}AoE6W(q6)I{t+m#R)*{nFeMWBBDyC24><|n-asqmLFuyq z)`Ik^VPyZ6kI;&q;cfuADq-mepbD>g1|Q*5+)~S%h$1ehQm>^!vRfr4X*{W6$l))|K5?3CW^^k|MP0ghyf)r-t!& z8;M;v0XTCH>Vk(*gOO!p2J2T;Y=DmAwn@A$kBb0(ouv{9^B1=e;kDjT9q;naQ6~+s z#HGvnn8z(cHIy*T=!YLc9-)u=p)0{J<3C5Hz2_5wUt#qoH_<#l{Qgr)I&wuGmjjU=uuP{>{H*mVC^ z4>Iz9&ku1V$W?WWJdZ3P2IP^{E6;8A{?Dq>0NPeh57n8w1-|{4;2KcU)8GkGUjPH{ zYNOi90HPy$&3<|5YCYBi&^e%5A-QxYp$(S2df0hP>fMlFMdV(RV5&0KoWwN!F{?J( zIj{dRb1mM+hp1#R1uWGK){ONhutQ`$sGJ5iahcqUp|L{(?TpU8%DGqjQci-bCp76x zeiOLRA#w%pNOLWw2~&8(Rk4rJ?3hpmZ2 ziP5%~4O;4Mntvk7$k9j>zgx|%ew&3F7BW#z>k5OFV1@emsFRR?3+*o7k(@**SOWG~AAL6A618?n@0Af>ve^=7-&Zk%!P}FB{@v4c6rP|`>7l?e1fJm?;>Ariq=3wt zo)t-O4xMl)H|h0Ig?(8H`}6AcsO>7D)jr$z5PVC?@HR`omiWOz(%IIu+CBJcq&Vlk}(n{BZSXHi4ti`r;?^EA^RV}%n z93XC7+z=2U82)toshos=D}gmNugytZFJG9uxRz`X8Ji$G6rBb)z0v7g$?`^Ue<-6i z6*4&mCTa00jmjLV_NZ*7l$x_SAYGR241yMXN}-rgso7|d-n|EP66Uh;RvuwL?>iwQ z6}xz8ia*=6hhD|@+1Qmc&nqaKQBN2q(j!Fnan7|%`u*tTI;@HiKaQdbj-S09^ z?dBj{;}K{C))A=H+x8n#fJMn;YoFo~Zqn~U03Ot{8Ck+sWez!jyn zmdn5+w22NwoELmyNGw+3qF$d=@J+IKMwgU;Ze=Njf4DfdPk5SXH4Ux|{&hcE(3iAS zl`>JAJLrt6WJB1D7%yq^87{0-u-Z9IpVPu%I@kX!J?Z!tq^aF1lC1O!wv{eVYb5@y z`cu8ORpSA%E^J;9RDq%Ljj+Y(YyS20#rVDaORxMjtU2^Xy%JUL0Qxs*?WBrYSZ(nb|@jj$T{6s*~w$<~<1SoAJYZXWsi%RrbWk)c6RPqXY~ zgD9-?8)FPi&K*G&Gc9`cK!A6mSZpCe$Wib}h`kuW@=-fdESp=zdNq!4gy;giz!|5K{jQiPK)*ZU$$gNjo$ zskCrj9U3d+0&v*wCa6lL)x=l- zTrGRMCh9oO#$sI#Y8Jx~16yP8z<6+N8TyQVg)bL1NA)P_P2{?B$U-xW6J$ZfGZ$iNbJ!%xAv z9pK8l7~IHD__6X~JtTiFQty)Gu2f=4$(@V^MxoYkudXzB`!?}YygSjXXubixBt(!U zR+%n0o3@~?3wJn6=jG1(6(%|Oy!JyL)5OXa9sXqZaQ*^jocKwHNw%JpX3nR_)_lp| z@uf5-2VCbe1Dl^Qz~C&}Uu-?NvU2>m;v_M*)ygs=tOUST5g0TYsu5xLoe;mrkQh_R6*U6O7T<4EBfvj7jA?ypW ze6I=B)pgfCs;%%@>@T>`jgdTNia{YW=%yzLbsPu_+8iMr95c(u8rAy~JcvsV%jPT| zHFOn9zHzP=#j;3Mz0dluOP!TP!&OeK;bCbWYH`| zeWQPcLcsi1Iu7h)Udq>h72+XX^5MG-xk&D-~D+9D2>(Ne08 zSg%#$Yv22*YvC5Hd4kx%m+h1dG3-`i0vv6uPzGOOWdd7=n?xyx?w0P!nii4+Y3-xo zIM`3>hD7StJ{p2#OW~RXz|=g_7oOxmQInTnj?m=I8j^fd*1f=DiZ0!eazHE*!P|9H zAkQAc+GtIF!U%Ut(*hAF9$7S1N4cZBCt~ah`gWX2q2Kd$eNb~TNFmh8{#OTW%{{tb zmTGMApu*t_VDz%$w-Z@1>C>4467Nfg-GXkJ?5uPGTNjjTFCIPa7(wN% z7=7fGv^b?p=0>3Cwrebf^w?4qtSg8IE*aOqtn6!XQn*w5Qm>#TNB3?;dtPk-oT;r= zDG*w;`VI;SeEta*)+3NJ&mmZ1PGKT*avG{RWYr^ha^WxyXeTH057m|zB=W_&HMGTW z#jGW)`zWd4UH`ZEQIRrmxRXD6k*ik!2nQ+9+eW5!z-=R8FCN^Thiiqce z^mH=Wo7M9gu5iZwm49N!H?(U-Uq$=xHr<0Pt$2U^xP1WiWoGz~6WUE5LI@;CUE_b` z%h+*K(zv(f!0!irDW8+?$2uu~ymhOA zi^=7jTByE$lO%+fu=K{T`laA_>FT5t1OlzaR;N4dgWR6PmiVoEkk8i$W8V+ z%Sb$+9mL}p+d6JJR*v7KOwNoT)dKjhQt}bBx8%T;C+VqG}|Etz;zMkC4pLmE1SnHUFaH_cBMg}Ic z%y*L)kT1)-L?@h$fo?E?L0sV zLEHA#3iRG_(7tc--=f8fQkBW%qe|*;8I*|&f8|V?hwKn;$l_tQXy+T$K>Qo@G5^3* zecNOR{d2Iy@mMNbFf!99&5ss=9OG4+HYnrq7YBidjrDh409Lu;Mw+9+18!j{;PNv5 z_7-xxWcYm&DeCbxfHy|&?XvTQqJJTq*fqGTXmgV1 zr4ZE(dOiT$h*jJ#8=_T-ZsAgW&*TF~FD(3QD6;+`s*9(;raeM7l>k$>{C#``-SSNl2kF3z zPdIpC6N-^=x^zYE9hiq1Kau)_y{VI;2uO<`I>-vos`Z3rpkWfP$yqeBXb67qWo}(# zt1Twp3an%kgWr`_3OwJ(0Z5X9$Orb-$aUMFu+ii=o$vUl8*{MC;pa+i_C95Ecuzzp zEY5(jRDK(bN>2=i=6kc@bz?Un{8CjI5P+nDv^fdUqqThddmR~%kZBj^5_<5ah2(-V zW3NU<<$C=LJ9u)=&ri;=9M~6$)8|W173W)!UwKrc#*w)_+DVLP7VYfNU=XtsW zXIUVvczAmAA$9%ya#v*-TjcmJm=CchhDRUowb`fO(f7^yK5#qbSZPUxY{Kt_$rAOb zH;UV_Jnwhm1Tauvj;u&i*Aq~LFW>=Ch04;!FGktufEMN0Cgtewu&LL#5Ye4qe|&q7 z9jlKm>Pf4N>F*cDo+Uk^lWn2er{&N>OhhCvV`RH}Hz|Vyke^V0&I zz^(S4|3aQ*)WZ!_Ov0%rJgYv8O9^Gf5n3F(unjs{xhWx-ZOe=O_V_NAxoL(3EZZj) ztK0?+eN4jcj8Ma2whO|aM$mJ!gS+*iBuWF?zhiw73t(EBB&EZzFu5j|qKmTq6DSH` zE?EjO!mBQXmr!0h<%0H?-~Q_BvWGiq&({8{qKyc+CD8 z3L8)J1K@_xAeCH;70q&lsJZcsgWy957$wuMeet`!U|9jN><)$QSJG?wW_>Ok{!vxV z#%m4cAI-tAt@-SB<54|CeLle2IjaM08h4pzwQ~qH+nUU#P8Tl1^}#+2?xMgvTH@R6 zDvf8mpgccBpGeH>^A~%xxL!cf*y%I|^NIQXyeectwh&ydv~JS&{zghQq4(Y7pEa$& zq_qSRydwecizubH2q;Nd!899FwS0{UKmf1X$H%cRFH1%x}er_nt+U_AueBk ziGJ~O``z#98M@8adIb0uu`Mr zlWR{NW3KE0phX>%j*{$fw2bMfN3P)h3$p#`2>Y}^ zX;?+Fdes;Y*I_atNCJ&;cwMm<9&#eOk!8dFlKcB1c@kU{RdsSbFaxHWIOGhF5rPmy zZL>`s7ENjyayL|-SZcVlv5Dc;C_{u0ri8hro5N>Ts?AZ_R%8Vs@+Uso_f^Qoq&}_? z$7dP(6lVwC!>P=!mcaZIc z?rgg9T%QZFK*bu#Eysfi*;G2}PN3hw=Dtyv$D%8JDO}YG1i71uT5;$RO&8OkTz%fOfL+O!^{YERwq zF`AnnsYddLI#Vci->g+%1WcnHpGe*)s%b(sB?avu9-x5v>-C5>rMSdMP*JO{FX!S1&IC^EoYzl*Rk-bHK(`#AhIBGuR}T|Byw3~dp? zBUIx`6ct}FP(%bhrF7mj{R>o8EE{$P~6qQaPJs6Pu97Jupl~doBwc;uW>TA3hR}OMX6miNY;|^9`iz>Ur)t>`bp)%J> zj5phJIP9qcw-AFl0md;i2d@a$-DAz~s&y$ua^12+QmTy!{&eSj*9=-o!^6SjqY>2Q zW+S9*GTwB2*np!x;^CP4w878i3b{e8J{B#C4RBzUT?$6K&_$i+P0jkjaK2gNFqTN$ z$&>yoU?1Ytw@e3*B*m1T50Da|Rz~i8RUJ!=|3iM{R-=&K#RB(!;_<5lKI9=3maKD2 zTG2-IPX0e$tV~^E_paonB8y&mDT51GWyEJ?0F&9E7(t5{xMOPY_@#AR4vvk$b|I)O zUF~a!i+KChY2AD8=68-w-;@e>^CUyCH)}0`PevP4CW#jO0f0d-PgC7{of;j$AMKmz zGqs_@x;Zw>amyWjnJVQ&ikGdp2N^SctmEb5EB0)y6@&Ud7+_gK z2yKoro_3;Hxo2@9xn-bRn?JembEW83KZOJu0M&ONF9Ea%_Wm`ElM5h)?=aX8qtKZk zdf@FT5Nxb}oZjw_@G)b68yE)|4npixOSt%+R^dNh z#;vHBgDW2#D)+F5VhOxi)VLJ;kF=^8j(P2G1W(4ncFNf>91{QU*9wn*2|XO?To;_* zLKi^S{{}1Y{$(IMXC4AN7r1xDN9(Ov(MjyVHL}CvV|G95Q-eV-gGnGn++twKwDgwF z+dfMPn@u-hkoYOx1wI(GrPT9wE5PQG@8Rj2okgQ5+)DzVyH!m5C~>U4EyhfE(Q5`5 z!puf7dgvR?MhA0i7+97phTUqqJSPD=I~}o%KJD}mHXmv;DUA~v4o zylg^GuTTn0%p43rV|XnMA0eQxmanC_i=Z{G_b0r6XIy{NQC!Z?{;a#c^AS9xuR&%-2^~IdWTyBHfQ8|xiw{XP{|S6f zvb#5|TWVxR{4eqZd=C_yc7oQwqKnh0Y1?umKz{o1$IxB_T%q)U5tbz_LJ3K zC1DbqOPD+5EgCHj@?r3p*=?nkp1)y3oKi5oN=MHNuH|B_Y4{)~>Olo}TGMrdKm%JB z5Y>W}u=gaVi(rEaUg6-aH@7wk=EcX2uzY9SK?*zY*=K5-W!V}JbQ=n3BO5V@?U*?V zX7LSE`pqt0XhjHAfVB4ie>6Jt-;CKs&r9vRt(EfllGu<&#ebvc`7*IgfAim8!?K`m zX30wqiIm-Iq(sBOaOaYZ*rX3n#)qezlY&ao=rK!&h=|i0D1LHJXD&QXw|}~;FESZa ziAAH((A5AcsomU`2ce-l-6$d4*jJ6i;-@O9Bm2-7#Z*vh%SAoQ8)L^f$S)qXsdTRn zpn705nWirCLYPs2f8ATo&N>fPFDb6GqKRFnjl!SEK!+?01F^weF+d5wm2-%y0`jy8 z;F}{`wUfqRMGkaU0=lo0PwNm-f}SuENxnH@YxwD&yN%BxH%X`c9h<|@$!H_(i}lO7 zZh}M-pB)<~f4xpcmZ-dB%XZf9KKLvH3dvTq1qM`WdN4xUYEuhHB?y3wmY<0n5TZl&+R00(Al&p*9o!i%ZimWW;_`7g^H{{6+?u6su6Mp1k4t9Aab$au)dnTa z!33VUI=QP!%A@hEyhbKhB8s0Xm(`;`&n_s2WPb>qJDtv6cwcD^bG@5Cr?Pn9$#_r_ z|F9GH;}k8xojcuT`y#~SD(>%1Q9^#^9YHsyk1;023*a~Gzr16rv6Y1Kg7#@u+|tt*e*f%fg6wa{SxiE9gxQk=ehi#~KvX6yg$Kh${I&)?~XL@}GC zH=`2(G+JtpC}25&+bTLYhB6_O@vN;%ZE|ao&LuV--q=HOWHfG9A5n9S@%=kX>n?}l z(|D1cOQMp_PsmkCU%0qe&7C3xcyIW(lJ_oYQiQTX5!^JybYbgbCS=jdE8zrThP{@7 zC#&COeSNe)Ob#Z<%{V>h>`jx3L3t1~^Q#oW;rut1vkJ&`{(Y$%vmNeGfm_-54Td|D z{rk80BwKY#69kS5&pECfx_`ijOTMumRut+P!&V6Ed;G-WfY{3dXy>Kk$&%t^$4@Gs z;2R=AWVXS{qNnc~Lv2gDcPOxvwd5s!xU*+o{98FnpfWZNf2_*0Yyp2oRf<|mHu@dt zIOb@$RQy)_Ip0D9F?)m~rJwFz4&}z_A#b7ZMu9x(z^)kXa>=AhZ*%2mq=S*p<=o|d zq?S9VB>@udYi$I77Jj~YqMkfJ*tiob@Q2xpGNeGPe1HjUEqZmD@uTgS`}61=RaX6R z^!oZwq&LH0^>yjZLe)LaqpXs**}@_Ju?Ut1Au{?h-rE!wJHxOWKlQ6La4$8E6Aanm zCG~7@z;w3b(_KHLb=3dJds`Vd_B>}&quz;`8re|>S6F|(cd*1}C7jo#tACUK{#07) zSjTeCc_g)g*@{rYU~})J(X7LqcJ>)12G_UDZ^JsOlmY!WO zlye$L$2`widvf1YzOrovi;?k44SxOvAd-y&Ld^jD`2>Y013si5 z7JdVpwQ4yIPuH1|QMX5CWc~)jn&zrN{k0Jau=SJg#t#>LALylbLtu3jA~Z_^CEwl_ zpLF{0hvL@cVBY8`Z#9v?%;n+ax)*bv%U@sy07O^w6E8p~)4K5pu{8WJ

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