From 9406d641e80539663138a98b3ba73d68bf6a3baa Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 31 May 2026 03:20:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 31 03:20:02. --- .../20260531/20260531032001-Binary.backup | Bin 0 -> 380167 bytes MikroNUC/20260531/20260531032001-Config.rsc | 4790 +++++++++++++++++ .../20260531/20260531032001-Diff-Config.rsc | 8 + 3 files changed, 4798 insertions(+) create mode 100644 MikroNUC/20260531/20260531032001-Binary.backup create mode 100644 MikroNUC/20260531/20260531032001-Config.rsc create mode 100644 MikroNUC/history/20260531/20260531032001-Diff-Config.rsc diff --git a/MikroNUC/20260531/20260531032001-Binary.backup b/MikroNUC/20260531/20260531032001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5c245a82259c28e7a0091fddae0b5f15392a12de GIT binary patch literal 380167 zcmV(fK>EM$sF8CA%>@9+B}`q5%QiE_%IY^xteA8F00000000080002M*arx%u* zA4i5~N@O(lz1~9%?HExrS}^J~jK#RArso7(HDjV@Z8D`|>CgIld)Ib5snX+U)g0k* zRW(e>DlD$4L+CEQc`ol?8I#oa)btn8F=gF2osX}iW-urZXYrSsW#sJB z6Xv=_1FUjg9C7Ctol7Ci%@&_V-s*g|Q$%Xex$Cv)TRd}Lzf(o)9i57dm~;>TYH$!;KSOp8F=Z~N z3P!XKEoW?W>wQ}Ki0l|-9|XhH!L++|qapUf|NAP{EbNpVu0#aZVx z0%$@~vP-adY(E#E5@s{MtYkI~o~Jrm0<4SW=H&BU$pMm^5n*b1Tma3=kM)T3X{1Z@ zjO|UBGNM5j34<5>Q>}|`5PhY;%N;5#sV@x(j00=89xcw3@v$#4;CL<`{~Gf={M8_R z65Dfxrz|WJgcfQh2K02$b!mXf)mdhALZ2o>Jaxa@;aC0TFkNW^?V2Y?qLMIXF8=F- zlaO_?E{W+a{gd9`ecWk8&0Zw+1U$!Nea)Es|&YiAhM~I>xYpBH<>ozUoZ(W}numeF;-mUWP?ka=LLdC`g?Z zX1C1K{|4PN% zS=%mkv8{*Q6<^8Sd{VqPi9k@b1#oRkD)K|wO&Z!UK!sT#-2W07-DXb^%}Uvni9fCd zYw!)E+2dPLszd>KF zommCnxh=z=Tv?MXJJsMsXN6$o7XtArHto(KK9mWd=3r*5L*6X80W$?iSMC7+Moro; za?^i=ssD`j>_`OLeN002jyBZh8PfsM&ZZS2*wrDZ&Hs=&77@kW%2lxar|KyVIcbb| z?BPw*5g2LCGgqbLe|@?B96Cx+UpGH2TNR#xZ~S=6SD z-|0Pef8zEmY$#;}vDdB?1Y&r&X96dT=jEr0(Lv(pPjtIKCdU)6oD;806$eR}(DP}-RcB8_JF+AhybI|Yj%i&p!ux@pPx-v z`C~&dka$|cg$?oC?3eaLXSHV$NklLuwsq`iWxrZ%b%@hK?y{3DcjPiFLJ{j4Uc2Uz zg4gE<%Kc#X$Mdw6+8lTqRwNovRP}vI75B=^#PV(WSYuGBVi?A}M?tU^&y zS#j9X_3x0kYf}~oSiKb~cQ7m#c)y=IgAmJ?bca6n)b~Foh*ko?jQPCKG|DI%Oy!oMUM7E?3zugSCZ2mcE~l79c|x2;-L=rhS>)6lYW--=BBb_s z!Zb&SfxK=-bbZFq$r22ORg@X-6PI_NT1r*9E)s!1kV$5QU}x>g*c3UTy4Uc8KndIE zkHE&6xBqR+^zer^G76nmZEK^$4yIuG@Flt?=NcWVCUB=oO|E{R{qf@728?}z1|#fC z$t&$O>Ff$n=M0Gg#iuDv%^rz2pDgFZX&D;<4Q{UtA`f~nRT~lg=YcD`JcD{~P+p~; zI;3P0#}ed9`;4dY3Qk2aqC?ovKlpT$3qz3^wLCs`L3CU1-cco|W(xM+eHYdi&rXVc zu2C*aJ9b7vgbRwfahGRglb(JHo4{|E7We_60vlK;g0}e}mQyZArr{!Ot9&xK;#M3i zMlt-xAy?n2WkX~q76VG%nhIdeEsZ9*NhVevhcZ}w~J|863f4BB-lHW$*6#?Dk+ z`=z({=Y3-gZfl3%D=O077rLKf#_ZguBO(Q(&Tu%V^*txi^}^(>tsRlzH+-apjQj zp|M(|$3iqptqP2)UnHrz@K-aMjTLD?lX9w9crBKj6{D?SmJ<3O3ih`@r>7PiNA9!= zvv3Yky(LTVvfR*Pogj_iPIH4hP7;Jrw?&SEg{nRhO_(Y2BoT*QD|s2RN=H3t*qIpx zApb-Ny0yuttVX<_W13nBddR4wy(}fPnn_Vd4@=D)`kkzPSqA1RUn<_I=)Q)4zAfY& zRJJgx&2gm95!6FaR<`qS0fz4Z8I(#3Q zeg>W50+X5WEM?thCx-ZmiY$kf*-Or(<=$vx%d^SXm;8t2Dqm^y{`C%+A@8P& zFEs!7UE@cKfof>DzExkH;5iv?5zojaO}GCzrLi1RphO6Pol7{;Bh7P|II`bso97So8S@@ya@$~H_fvoy@ekk3HUp(`Zklf#_U3c zNmud}ywjqW2+tC7?xW*Xiz!mb;o9G3v6D~lgZk6frn&ZI*q@R5ZZ$<7>Q{E`A`+=E z?t_kOY=aj;;eHZ`sT`&lU&x|gw`84)niT3^A$@2=lQ2A^Dv16%iRU}&QxThQO5>HG zmgMbN9!9(>|Z+CMGIFGaz$ify1 zB290@SbCbumJGPcecfK?1o{$@6ao2ej9XPy$^&_X^%BOkd9XS<$zD`?^Qw5`FWsSZ zz7?^y?7o&wMRNzkb#f;Id8mv;0ay5Kn6l4g7I?+$VS0@Ynt*RaZnpy1?p)e@SU5I5 z09^?wH>S#7DuAOW)>n}O2-%@J*4qy{BcDh2!2eYuHNAtLq_< zkXw}$!G{a=e8t%$fbR<0Ep;=v~;;^|zM?sq39z3Lxf*bBZB@rugh{*@~7#iSy5-l(}4s zonG>7?y&s>Qa$R>F_e6I?D#Li8d=+8cuoqTAaCT%1s3{I?n8_6C{;|ynD+toq=N1q z-`ZOTlN90v3Yb%JN&o7!rc{q6C$sg*2m7|cn}Mn;w}{Fcvgmx?3m8hIZ`}t!!51RNyvSA#0p>|}CPc_6^4a%f6#2U4NL}|0B7PTu3_S=R$6&6IwHqr_sanoMq{wj^zduaWmxzO zv8`u>(l?hcxz%CVq0aAfSM@o59b;5i7gS+r7sw1iVmzJmsqh)g;z!ok>9l#r-Ct@ji+_QLaI2sDQu(W9IwWWkeHMk3!T=v=E*B%nGO1ENpJ%KYMn-S zBP5iYJ3N?LR3rFsBsEl~R|$mNZCvn(1MX$?EOsr^B4{urt_o=LJ(#UEE^gv5BFS2W zKKjf90w;H*Qo;RS>&i&f042%q~ox)6g^Xt^l5BQ_OC*9kT2{8SS(i)Zum_KV zG&#WRlLYY~5pxz?1XfFmS;&@pkq%P#6Y@dNS(vXD=rbBQ$T4wsf$OZEAEXHHuZFrG zT6I(x*X~sHnWNMT+{k9D+s1g-GN=pA6f_Ab9-lj&kZB8)LhwwdLv1hps3&Vhf^k0d zWP9>yetG&oV#m|wwNCE!AC_l2imJ{W7rC+EOEMH2(Kc(x`$ZK4r?dAdp}cCk@HiC) zam{0?U?>)i%$qeXd;5))4u`^?S{Pc=m8L}xY|3uwS_fY!vxmK={7dNdQw5#(-i+>e z%#Hh)6;rKmwUf?^Wk%k359C6;d+f_!9xN9LTrDIlNHfVKmRb@0C&6UWOLq~%UK?lh zZvmjq+7u|EQytu|Y|qGP$nUs?&ySLK{3Y>YgyxpFQ~K71V80p9jpZnY#A-%Vzp*w* zrglqTQ0-mF?ktkX+lGfRxz3v7Vx4WUf2?FgNGeg$tphL|=;NC_Is~D);zma*XqS;M zD-JQLEciZTU4y#fiAbVd&`0702Jjxy=PPRMSRulk1ea4Nu9FpTm z?8V&wz|>Bx3#cmtRbR6m|JM0(Oq|;9!}>w}4ojXDYpPlP`z`FEfKyA{Gqha_hZv zXofM-Lv^*0)4L$Fw0pG(muyu8GFC>F{yq5zMMp}CPrz5VO)?qS1MMw40RXaj{&cUH z){H|;*Uy=LjWb4`bYd=>1+a#ruHrY@YQC(PEUpH}-Zp=(tiXgLQjQ^}tWH>7x|Wf? zm`r$5fV(=1Rss9%L0b+J;c)S2%)4C5kYON+0PubPPg4E)Y$8~wTzE4#oR3;z6yR`u znt$IylL@vUx z8RkL6qca9QsNN!w5xZc321Sn_mDxQe;r689F(eRn%;HmLBj$Q^Eo{9wJimKc`$gK! zIXsx?IxM=lE*XL|v#e=Ep(3(cz=9kD%QrT8E{b|s2*q8~hn`U&YvZz3(Q^Q2d`*ay zuuS$bF@bO}kL8@>d&pC{jG0`H&R3ieu)V$0-Y6Yj$O(J(*G=v35zt4$XSGvGzBo9h zjf}I_NPJ#RF`LePmRi@}{birQe?zultA$kRHoe`!_%BjV;|mNK_d-FFbA>v^sogA}iqbbXqQ;TJbgXHA7?E@Q`^kJZ{e_!O z-Kg2YkBpj1ZuB4>EoP?VJK#P`%oWe;li_*@W)oOp3X#ln;gbKcsLkQc_vxhU(JBsf zH>>E3WMGL6O~A#(T_R!qLgQ6QG#ZWrBhC^Ckm#imxct)kUF4yf?Mv!kN2Py&8KXHhrz+>21Hf%z-GbTsGh{AJcu>v%I!kbN;6mcT1j~K{Tic9W8=uf^z_Eazi zh7v?ho_2MWY4*Fj^5dea4hfi=)iC}6dWukMwBj6VwdT~C8lQ^bdzgdnJAnpoG6cgz z2b*?Cle6>3@qc1PZC-b6rqYk}o*Vd|#0Dp^G%WjAX{FuakMn35RhU(cjW%gSUcWs= z+bYqKHyItTP;NKYz8rZhBaxDtqIL$*S1XJ@w6pgP;#aYowtUdMym`Qsbk;kGa*Ng^ zI<66y`H>&s20hm0Qn@KYO_=b2`OGKYBmfbi@O;d^t;`6@C9`GdK3};6Y6pX(xw-+! zlx}2A3_G0IyXav_`V+>YscKTXOpJn%DkDm-tG7EbRIw9JXIT(t`&aZ(Fm1<8X(I5` zboQYi=r?ey<=x?(o7Ni^4-ji!A@AjKC0O%NB#&`fy`hhtr{>S%!E8)e z5Uznh`B?=(!Acuzp^t>EM4GIB$!kU`2_N>1a=tP*DZ;nv8kerR#KJYH&&*_tPrZx4 zIr0~XPo_i!FMOJ+4)Bs`NdWC)Gb6W(aRJ8Tq z7i4sbmNGXPJ|A7Wy&E}sb6AqV2?u;lQc4|W2xs$E7(2W=(fb|*{63z_FPA6ynNbO` zq57BW4<{GOfwL`j#7=k_tckUm>NZe+9zQXbNdsZ{vNoCcQ zbdOIDBgff^sqx7I5%^QR9#0Tiq zpeJwU<^D8@s~}%x^p(^WJ77MJ*38ckJ~`Rxq;4v;Yvc+scyNBALww95Rku+QBXavr z1ewF7b#TeVKF3OE4U3}zsR@n48nBARm3PIJ7u01leNm^KyrLf3H_;nN$-Bsyvj8tJ zUK+7=VZf}~_}j=Zt&@R23fe2HXH@ar>g`3*8;!jBrbNad`|K}6W%`P^GMCLs#rsRc zeS{(L=Uv2Bm06-A`DK7^HoEz_$Od?=%%_q8m0HBXPpJ34>u;BxmCKi1R zJr=)%AyswHh=9|EL~W}lJ~E4;W<;(Sumljts-mDL!*Z<3@&$Xs`|apEC)siJQ-HA` zt+Bb74q5??k-On&6*McfmvN4=e7f&m9xe7ytL1tj#m##`}+CnyANs9SGI``WZC`q>l;KAHBdG&)ZlW6hY`o zik@@$m#b(J6DpRxP_u5tzCG0I@cvPu2zsw6C`_|P(vBbWTLT& z1RS*k6DGoqVeg~^jI$N8Rd`I@EMqxvz3nV%=Ag2dr-JxWsL6*UIwdoIXOurPdsB%O zS@{G-ACzJ#0b++YY|b5^AG4u^(U=i^wyQnn_@D={{~PL#@D`za^V$$SK(qMCYspVm zE}0B``7hhG-Ba`9xrb9b@B$-~m*abKSZcj-OmL|ducLOGNHVE;*cn6q2dNKault-% z0+`ro!EW`x?yZiQut65=3ETD;jb`~W?$`VT*j@mBCd1;;d|T@K85@)*z7Z(+D+H-{ zOMJn(6e-CHU+VJHc^3Z3fj+~l4>7)tI~syZ7C6DQd86TVuJszs=-S@npEFV?_x!Mc z_?R9oVcpuw_a>C$B(H^OZ`tI4#g|Kk!te-!5cS~VYMUIrKI!V4pPqk8PX zf~YcUxPY@x`yMf?9*jUv-z&t2%Oo~@kwT1WZqw42RXY+Up6t<>mc1`D;&H*9<-s41 zt3!c}(_O=nLS&^`JxS=0`lCoBriz?6_5MN77t2Pq1)Zg}VzBD$70w zBia`Fu3a{R%-!23zFS+*3ZBol-Y-)$OD@0icmmX_=(=!)G#6Nky~BUBuH%yBA_WSC zA4P`-*}Ei2eu?SDG{;3tE>7sw9I1Wl&B&Xyl`3Dx9<4Zzwa%2iROC7Xm&|uN z!O0gFzj6YeG>F9OhGC_q8eI&K)69pPk_Fkct!UkE`P=oK0Is;CsjN`pV#f7sAcf%R z2N(ezc{8P$M_Yq6DeQlpInqgaA{Qedg-A>YAae7hJ{{k|S_n_3BN>7Vjq$QqYDD8W z{-Gfn37%b{i*om-sOf6X4=NCXG#C6P%p9Be&jnz9fbOBwtqCrAdJiaiXtw-IfaxU9 zr()S)F#3VT-(R`n*5E|^828Rf$uf5H>DZxK62IwQwcTt zIaWYHT}i3un}Sx#@zC{>mnOBO@SmJLn`L44P&m8lvFnhTQ+o*0>lB;5s||hBW?F{? zM}=jMnZr5^fbhUG;&w9BOa=~867nla<2oEExn;L}@Vw`b0Kw_Ax`k<)JsykgC$v{f zov9}qTGjM=>rNkN)`!lo*~o~J2XH`Wb4WPF;0;?*vI@LGh%2_S$TL+khhIHuBPAac z*TLrnHtVyB>jBeep=<;bG0Kx+2Q!>j)_xiypJ_UB1{8LO48HW}*Q9bN1t^XID@hSe z?hGLd9D^Lb;tt~{%ivM026HfsSNcQ7@X)dyYG9%j^lec0`ibwUuWYlpcTXQNsj~Se z_n70^!FC^}4g}Y{_HfU31ng7*0IaX(T0r@z#K^GB&QdAz-YID7UFR-q6JK$n#cj22 zdTM&)leWjOz#9|wK?6nuEiXkseO~C1a(8SZSF;88g&AGpnO%;|oP$uYU{cwh5TvvE zz;KOR(o*7|0A-;PTM+OJ#8wyFBv+5$Av`CeFn2(!d-rA!jw~X#B+Q<-2)q}zxBjgy z+x}8_lJe(DikX5Z4$;&Sqh=}zpT_;@EPfXa)>yqROWB%Y5(S9J6?K`m*S~`bm3!6kxf*Lq36< zF*L(qe)VvW%Tq1VyP`t{rt?nXv7(wX+A<332+tVS4^3)xf=P`B$dU&>G16OZ^w@=k zSu&}owY~G7YspI1h*%s_&b?hhx0cY;}C6db2W*7 zKZx2dtubg@v+A;{K#dm&Kp@T}VrQ&jJmUBx)r2YHclCvlLTfQ&p-p>YP1u)Mz=)?K zIe_1wJ6JX5MOGpuVvU$@^hTDWl%|l+SSsLO=kKXCPEu}__v-`+CwIfq+*S80kc;Ie z{cl~uSJvr_;qkng*eRd*CWA#UuVKl1B%6S!M2r)$UiooioWT2X*{0{x2=hui;1lhv z4KEtoG03OrnO{XVaHjjWG(9OKFcGoh2!hGp?O)7@o;&5HX`q6S;+!bHwpGQZ#yOWq z7rGDNghA&m)yx4yg5R#9zA5`#hBo@id9yLebBkxED4g-X9=x@yBoB9YYd6YvU zG_p~R0)$XLqp}=a453-8GB#Xv*6g(ZBfG+Fjz_BbG3=PvmNjdQ)Rk7EQ0mI{mPtYx zg_wsY@6~Bb?jufZ0K)I%>#0Vb7F!9qg~pL%E7Y_un{#F`l=#|1C)7_^JBwOP7n#&O za1awdLc+6(V>qbgM1ecB6e|ubzAejFp#msZDtucfzbPvM*mE1{1w_sM7%J*Fn>Q|N zPW^OD5?f3_CR#h1A;fr?CZH(BAJ#AAZcx91QS&a1{e77lUd_vi zW%sc|d(BWZ`rYPKVE!s9+*K`ri20BjDP{%dw>7x75E}@%!{(37T8iqHmr0;zmDp)_ zKSiLc-HCBy+ifT}EWzWZYbrP_6@g=)F*Qvtd&aBdh7IsG$8ORH>#`mF&V|O1nhq@L z5fw%-DrRBQE<2?)~W*?`8ze|hXEOw#ZG!#bG=FuXB~*{!P~b1Z0~ zzbJ?ModWP+S&$lM7LLHdEuVZ+s z1Qk5nR4WOyzZrxe!j4SFE#4uEWJl`2uak!Uxy~O2d2SD@7|a2N-OP9~hs(5;E`^)H z5QZ9~bCvyUY5YKw7T=s_qs1QOW!GjfCA`o<`@R8h{H8%A9@;X+pA8!E2Wfsj3ReL4 zK@RZOxI2~@RPa)@t)Q-p#`Bs}!F*r}&30MeopO*UPl%7q)Ec#pcnXju+)GvvXA+~R zcob-8Ys-_0!X@fj6`#W5BdZRc;Jf=PC|3B}T_D|pp@o~}F23Fk#jG|x_8M`fdMmj` z$C?2j$B!Ad1TqplS{h=&s|j=AkG`Hi9DSDXC+NtZr;nlSCd5dUuad7Is}ens>0C5V zpWWTOteV-W0DtWO(v6r_t8Tu>DJdAi0~b_k!X89NB{ zVn{I7c~EQ0G@o~A8L2}>FO635(`8FZA+t44L%V9Hi-oM=PMeW*FKNf-FKO%zq_UNn zPJETa=#*A#pXMy>CxivDhql3?7?h3324uVAMLRB!&+>pb%WaP1LX;PP%i&pkzTDkL zA9R^~@2nOirRI34*PUjQ^+wKe>S0dn6Wc(6I89WW1I&TK^>R~B#5Oo$1WDDVp7Ha5 zm=)|hjq=#j;C0hdc&xhVwYmqQWRN3QGkFBf(Y!Z-PWuSk|8PhE z0smvN(;i!6bz${rNEv~meqzmZTj1FoZe}6dTfG^Y$c5D1p$~m;#U@UQVi|gRyV|Iv zxSp2IG#It{sE8J1^Y5XFTq{RhJY$yLkD-%=X1&#AaAQqyB|HfoyW~bjo%2saJWH?_v&_w5wL+dKIa;d8t9mh zUf=kDZ26XybTxQA5L{@CcPuAv4@7=y9sYF{MqHYH=PIf!bE zuosN)0@(yt24g-vK}ztDJNskHKc3_qdCaDbNuXUF>Q{F?NYXnChv_h_rbm&5OY>Aa zRCEM}BB1xsq-7+L*a!OSt9OHs;DDCMQMwfC1^gKaUp|+nLrP?72uj;_uviiVk%46| zcEOY~l*@WZ1`?IAkA|Vn8U-~qkYWl+Av=pXzI{LzrlYzLr?RQo(iG~y_^4TRu_`(x zZZ;iIho7&Tm=%D%;ii9RNTuX%V=!pr2h`qG$Ew~JlgxQq1K3n4?|`c)Ls7z61r=Af z#L$!DJ2(a0bZeAluWq+06;0M3@75ZkO5FUwJ)1pryjcSN!jOg;?L)^@)NfylJXO@A z!l`iF>vcKrj3bnRxaZ4lGXM_ouJ!xta5u0qa$Od)rEav3G*|8SDu-y)5UZFu^)gpDES~2sGpLzHBSFlN zE~N5^d-3(qR9SOsOJ?XzP}1;1M#LgE=5ZU{B9GC=ZL(>VDQ;DK(CB-~FEbwU_@~qT zFnKgGKfS<4$K1D}odlvfGY;flXXqUe?0eU70C_0RqH)vt8KVLzQ8yzuLlV|DX0rXQ z&~e&B>t8TCr_{|}UgV?)S;_>^^|S~5Gw+$Tm8Di9yIbg%4y0z3=j0_jXiO^wmYsLM z=V#vW^+dI;eK`L|OY?m4rb}V2%}lJYJ-#JX)EO={A0V$fhRHP8!WME*;m{;sObvV< z0)xC;{fI+vms~3$o{Pto*F@4&?|Gz2Wf@hvWtq!4hD z!7M@cry+qD00Io$zdoHfI8J8z5M~l#Jg%h@ z3|R1eilGPZ89b@+Z7n*u6TrG`&RMcFrm2IRwP?V*;PYdAnN02um;1C&w_6fa@`Peh z2c*+Eia=pl>2aXDt5~WS!H@5asJA?Hi!EoMU>cs6(I5|T=PH-{jQFZa0M#ESX}eTS z(Q8(B4x?{l#=rj9eE+~2(vt+C4_lCeV4F#bO8go!*;qaC8p^YEp$>L5+}aC12IX9l zN~l$LX&7M<`=FnxNeFnF&YsKA%th0Cf$_Q-5B2g+*dMqr zfP+w{tcu4u-c(k=k0}k5K+eU}^!(?|5rI0bx%Z3_%@ZH){{3Qb1< z_p6f3#>9_!kb?3ePI@YY5)s1XTmzlezdz%D}fIVm{LG4g@!ZvUZf3^cfK*CS1VHlNN1o_)T_PF&Iu;=ax>!0U=8dNncC-`Kt=9s$W5}1QE{-G9BFHSisd8?8| zXtZT*Y3dCZGS+nG&N>f2^i<1EKb|2PAwzNn-mOqPUyI`8{z}xfaa{wy@9wrO zBT5gTQ4_c&4z#e+r3FzkqFYCcPzih<>_dLevM0=f+2Luy7lY^_Upv}fK4IIDO0pb5 zm^Tv3^Klo&J6@&Lrkd9~(YI94VY`{7RPXg-mCP;fQ1NdKN#x$5rf=Ex`R$#emu)wYl zrJiToWxL7=jcuhH*!28QCMj}a`8=lUq-8?<*3mzvC0#Jsc6?zGiYL%2NXYOMyyJKXk2`*CyI1g;(K_B?nxh zpX0X0A^>iAN=wiY6x&P)K2P(Y8UtRL6=QQK{bLdrGAirUoDC~S@{|CaT(~smq8HRC zru8}+3HUFut^}V1ZUka^0eKSyE1$JMJa4n7US3bHly;gZY5=gIlwh}1`mYzY>03ZP zwajImEU)ek2w?`w2}2*7rDnh9Dv02}I{B?f@$sgT^iB*X*`9th(tq~kv&!tDDzyV84yb&CqHZBJm6Gl^Y|M0q+ z5!n0MHtWtqXPWA$Ou~ULyf;`9%(k(VVA{{bzXpqYp8%zHhC}-81q$4a(5pa@HPu|B zqykTSzyL(1{M?YAnXTxaD2zQe7DQmgfA9wxT3e_oO)k*@y>4bo!8L$oZ5zCTm;d+> z1=E~!Md7WEN}#o`e=npga}%*W;32wSgqbgw86_& z>^H3@b7Z;L&Y!Flgp}pcpFVC3gGM;KZyVP*K1*TX_s$T%Z7uKp6dE5#>`n7U*>TFf zoMWsep>OWeVD}x$S|TkmyR7Rw!WL9}4x-cT!pFLkC$$efBh>;Bk7AR4+fY7MZ43Q9 zgM?2_XZ0$Cz z_Oj-BFm8#AYWyv>apYyxxhrTr2f9KBcffa>sff;1%!QD3SI!2-`7EsBg`~kux9b;% zM|Y8;-^1j^&x}=|ifc_vM>=PaNq=sdnsf&h$wzHF1W*$@O2B1pYCCeMLQ4dISlb*n z#~IgDs)*UL8~r~6cfv2v?dJ|84}Q!}!hKQcsy%vpKs?9UAS9=B$awCOhT^$s&ldTF z06_EHr7qD7i!RkfC{D+itA8NX4SSC6JT?pgI}@8xG`!@}*QKortgTP4=Lfg-ogHK? zOI@V;@=vtob-zFJaQv&5rcrPBF%x4JI+QBGu7J%Wzv2@az|N{wYu)s(q=h(SwEZup zKyKPQYHhFgi$fPRF^OE|5-Y&;%x?#;PJy&kt3#j`0CgzQlxwO+MExvbSL-T~Wx zZpt=mKcix*1R4S%yTWW>2?3NtrB9M=Udngj({aSV4>_m{3J*c;ln4>NUG1uJ#a%jh zQy)!<@RY~sl%@0o6S)ejcXC032j|G^UUe@38e&_KS@bO;js3)T?R2cuEKpX9eLajx z*9#$Kiuv@->U`()8FiuVZ4U)AqY~Sm=dNn8o#oR;V#7N}=w{s;TcVF)0Qr`kP(289 z6P&)6KlTdiaSDSLFRX8HZ_uhE7D5>U+s8YJ`Y>!b?KETteScpri^}TW9eu(J2=E@} z7ED7_eEP1El$<2ekIDLCRsr8_LA*4>(7aJ`YsH|fdTvT19j=~ z_~B`KUFWn=@B-2)&Wi3f=3e1H+=OFNzuSP~C6;P7bmLByt#9Uk*x$`Xzu}QVtP>-c;W3p*e)7=r-q@a=&s4-zwu0r)=CDJMOVTPrS zPE~rlbZo+_LWb2WHphnGTSG5YC795P4*irj6JtiVjJ2Av_>%pLyWiDY7fUOhtz>gu88vj_dau}UB1CiQXi{6%ofUoaFv$9%FPwe; zcLl{xox|UO)Mcv-6`!}z63I>OR?zaNWcr;l-ny(UnMrm&hOk=l8&30UWTepz5gnnS zQ>cqqwu*suh@M_uG0HkFrqmebrd}0p!@jlvoRL6h(#N~2WA@@v_aSN+N9R|Wd#8*Q z+&0iSU=Z}`=t(9; z&knb(N~bZEtI)2?EzA|iUe z@-b~jcY;V&0U!eAIO;t>RmT!3$QQEJLATq}c0aUnm&W`+P<&b+x9TjUW2xtvI)}ks zG@9t%KXb{bF=iFG+dQR_R|GD`HA6D%3B;MWGGbhwbT)a*+@d_=1%nUM59IeoMPxjjwAtz~fd>DG z!*1X`7lbwjOiW8uDO2mhEKts7_qp~9kNSna<(yqE>Hv2--EElXJyzT)VZiO^1@rIq zuW&UIg%XNM#iXs}2@R$XWuDo;Ftc0NX_ps0p>#8_N6!4(HxaQv&c~n+NwWh4MzKf54b%pIhi?@i|!i-PQsSxm0I6_v%E{I7uTBD%K~Kx0hIqL0TIB)wnlz%>(G|#(notz&=>sPdy^^gpFxF^e*CiF zzA&H{q@fI6k1zTL?R zg40@v^=2K7C8<5LPWq;SmiOz|hC{1=&(KCbO-cGgF4xH9?8^rT;sCRBo7|vQJ_g`7 zPid86#Mar*ilakjD_u+!;#cxni`MsVqKZeZQ@x36Y(o9Qp0n|g$p=<=f>07J1P}}2 zTLZVVi0M8#`VOy%t0osW>${=W?K(-BREU#526L$Ir&ZDn3>uD*sE&~>`u~U;Zn7`R zq>Is16XwVQ(3N2yo@l?MxnG?ZB&N8c=Fg}*_pxFx&&cAF`i zV(BRx;P;|G6UHs9WL(@#2SZ=;^n9+cLWQXpA6DZz4f-`f~@Kbr+e(SkLfwsQ-uq4N|T*6xEZ zdyz^{M%=Gcx51d>x9EfzaQH?v;@!7+s!xn2%v2Hu49tiHOI;}Z`d6A~Y@!w#lve-X zqJN;BmNNKGiI8y}dTQ6BG$=Ovl~5SZJTkOM8A!F$nUwUF;ft zrQmW3GguS6BEb4j`SRE);1$mua~$hr)jdIyPZsBaoy!s{GCIYOxl;#Bgej)X5AX6C zsZQ$<|Eh}}FEwPl(+oQ+F02eJ=4nOe*9p1&H*M%T{8AP{yD4E?<;K*Oydw%@Aa!W+ z4jIU{i4IYS%1#;gY9~jcm#Ei|YPH%_J$w`lRnp5=jpkxF09mre_JHz+Kq8rSlvY{V zxHmCSQ{vmnOz3_BK0}j<2;MUm={4Q2VpqeG`hwqMDOZ_1(P|ADWx&Td$;GhI1YkSaIY*Uwyz(Nn`YYloZb0G-nYJ$&M!Gblh2kw8*E!nDB-hXS9aPxc>+9^+swA)u2lKYpGAMph|TW z!sX<^Yr@8n5ZBWLiBH&EU$;eBf8H^){{xt!*5SeF;5G9QH?%!5)G1aV`WT8F0D>Mv zZdBFh%?XnpNi>bO81Y~3Rq#eoHIC)P2dz>JlVA>_&}JH_0^|DBv|YAc%cULIO5`d^ zRFz!x!N~y8s#K%SbaDZ!_5p5l(`+aYt%JaQi1d7!^@bgRcPd0uTsIMT2L`m-&I4O` z3-T_c$A;o=l|~jUkDyRdVJMh5Y(XP9{lVa7v6mTtZ$jv)?i7+`Iwh%J_^L zGP7r6-4a}%$sQUoV=bge{6&VF4@=lFvsOHF%BX%0;sq7CRKtR5#jvVL3>i!SdLpb- zR_!_)c93`O9$Et84Cq2H2o%SRzJmb6!R{!TR&{PJAv5~=eZg+%L5PIRSbXL&)?{FN z0qh%>GkDg5U7#&1%?3LjD^c~o7y0Ida9UX|^uC*9je^+L^cx4NhIt;KPgNZ6Gr6Dd z^$?VYlpfUkK_2O_6A-I&GDTF$=2=0SvfgR|JtcSJLWFy3KwO=rVmTA%)3Zu#!a%#G zzS+)P&@Z`xAh?paaVoA80RKM#zySTJjws3Y$=4K6Dt5(x^2=7gMpZCCYN{O(k?RN< zqxid8LP^^BeM+h&x~WoPsl-`TcPGX!ekFONvSpY&+L-^n$gCc}nyVfLf;KRvC}?UR z)i^Oz$NbPQ{1V@~lK_Bggf+rqNSbWMb%f zXSzRYGKdD22RYf@kik{JXCgg2)aM}!OJi1Jbv=MtG>uT@5#DDN$GKv-ytS;eW>V-LwQBB5F%*z~`x=KQx+(JKDZ$5L(5O|2p zyd%4GZn)~aaD4XwG{P`Ao8c`HgHT;bIQ*N1d2LHm3WxqNtXO1tvu8j8qrV~9n0#2X zY7co?q3EYZ@pa%E{_amELJkhi?8O~S{=^hihspXh}S|f+?hRFPks1Bu~sS*`qxYU&)tN^$R$U^6kiJM7P#BIl9?pIdfcXvqO&gl->R}BcUTF~&Wu9#hx&Zu>OZiViJ z$)Y!i8Dt>O4C;;5+)6WQ$U$a2#)9%^(4*VPlq1mhyB*K{aP{1$S<1Z2DyE=8-DVpo z1a~pL9npdi1?J?m(X}}vk-fAREKVxlh+xABd3Xruai&~4+m8>#eZ&iLz0}7$=FoCB_SdL2hz}ryo z0t@^xf!CDMV2-pJH<0x;U8pLFEp-*8u~~Q7A8>5q_3Ea3k{Q1yjlSsXtXS*pZ4H5+ zuGLwv*N9g2#-7<|8m8}1;X<&e%GH{-fu&HYKMOe)Nq8Z+uTt`ck&Wi(cgWU(()&Om zln!>HGZu@v?PEw=foa&r&11FviE52ZjtrfK<8KP(TLFC{pz#c(8KcZfgYdo3(3F~; z%wu+-Mg0^^go%(*Z|o2&lqoYAr6Ea)=H%3M)kK<5kmdJkB~UrplJ?-hi{T;)F3BAW zh{DU;Q)7^###i>Z+MMqyEZ#VXqe#+M8ou?mv-DDbejN&xouUMkd@iIhFEsr ziRa^vq6|ZV_xsS>)PVvzbijXgtPWp~vEXFdnOub&_=KHeAGxx^b;hZ!BkKGF;oswlY*Db$DNz{GYqi>w)J*yMaHPci zK-Yk7Leh(k#kzdA6uoxr-A*s>$f7KO9jd($DVP1P4+^r)Exl0wM&zBMxYe0*MC-nCmQXSVuRX9m z&(`6`|FE?P1r#!cQ*{vcOg|C?%%VSWD@a1JXK6RujIDX@^vpJnKl)sR-FUh{me(hq zX*{0UEWi<=01M0#2LPj!-z@;}C6Nb~J-Y-1;tG62M_hdkn-{HqT5NxVKN+@>>F48T zT=&NYzz+M=hW!3B)h1nOn3unD-iAykhb zbE=BQCtJfH0-4n=%Bp{)(*$qfq{~Q**c@B(*wZ^hr(UJT!-mbJPoBjiAE7ZFQQ32= zb+mF93#mT!@U9con10l4ps$yh^+y_}3rtCc22H8rgU}riDg|h54{z z_}U=Jd_j+Q`vs)xGpM>jd3d?~;^h(22(h)Ik?R+EY)RAKHjo^By}UDJKYB3J_-}Fs zHx!}HxE7nvC_&SX%z|@dMa+2f5bbczGPV&-Ay+t;2|cmh{QsiOMn3M_wxuENx8En+ z>ix;s=JH{%c{^;rP!_%zl%E5e#6830K?chY47{8WGVi-_Ss9Cz7!J_IXG^CICq?6G z6j%{Mjz6gB7k4IFgQl;tVuuGSmQyw~tJh-C2G8bIdN^865qA|pGYqeETaMD3LE^*k z6iKW5))g%81o8~<7?Vw&zmCz#pDD@8jrOaDkKlH^f8wuGddpCIYc`s>WKB)^^xLKV zz>yK3S@U~+q^Y4gf{_qQ$A@sP6*{OrU-Jy#w=Chdg^#2y-@KT2~SoBADt|58?s&_2EuQ(N)_)-6KdNteJZiaePzcGrkhZYkHFVFMdJnL zBURbUsbd};gE%};zh^J@o4`NlR?`|r1H!KlI$%w8L*^!g*KS*ycEOzzjEoeVYqdSB zjd82KqSTX568?BF%ovSHaX(~lN8mlmH_3zGR=^mSbYn!3(|U#nx@x#F7BYjvVogfU zQAXK2G?{suBz%o+pM{BRy7JYY=p84A5CjSwe`zSm6HYVn_w9~w7ZHtOcT&$P8d2Dg zVK)u7LjQwfb7~mrsaUmJ1%6~6Y@fbyuJkuT^462AKW&F~tgFM3 zGmxUZm(zkhIT-RF^R|kHcc@74J)xeN6Udnhv#HJi`8XY3P*QL0BTBf8!&r`2Ivn*h zkSj_F4X-0=kk7%NK}N4$+rkjtGwHreMd(Fj+$Ytzb#4h)4fpNIWqG5G!gY@@0RZ9P zvlO`z1JLz-MIjwW*;xGl5U|Eir9K{6FXdEVL ziD(I$Rm*}=!TUAD)Qk+}OZPsQ@M9e2#1gLijLCa_pLO9UrdAjS-wZYG^<&tZ;i z3XX%$;)XmNtEI=oMX^KsI|y$O>Pxz>DCtQf8|1V5WRl(iee)6iO%~(y@lh!ne||Nn zf#lS==~qNEZfY~y_?n1j5!n4JyNp1J!KISrKMJCcH1u74JA*oQm&Lp;P#Ixlt05<( z%qHTqXb~nfZH9I9?jmdoO;x`&h67!b>%GA#j zyLt3u|Z>pHislc zCOpb7Or{B$Wn+lND58~;7kwXDMkx0eHyMl>f-u65t2BfB1ui8}wCa>tt>F$-LZ zFJcqe^Wd=%_*a+iZ@g0gK>Zs+eC+;6xe)fDIxaEjC0vtDw+q?iU-wr=6BDWX@R3nDdZ zB1Yu>ME2^V;dG)c@qw5qo)czl{fNc$CP(1P($JLdC`}6$8t?C_W=k5XE>UImxaXE3 zGgQ2CL=t?SnI3pBSk6V5xOxd zcA3@v{4!f+Lq)9c)7Kr!KD0P*FOg2lg3fM5-hl7gm@HB+#??m{*(9rx8Q7?8V?da4 zLV%EXpZLzX!1kmlgfpb$(p zP$14wPyEuniKfH#NV&tFdA5cde?p!Ew6d4EuD`yaChVwlI0O>amsmIHwV@&eD|V(L zx4H@jn-LFW4yPxL9!qQO@uk=}8IMl-Gx4s!4)6%p)+4Qx5t7u;(@IlTuY%L7j-vWQ zM-K|JAKG*YR3Ve|58Z|A`l`^ru`nIgV)^iN*&BMr9xBEJv;Ki1h-WB)tQ!1wu%JwaL=Ecd> z#SrUNmPc;4EkLS9wGxs&7Kt#)n+Z**N1mzl6s3`%Qp-i^gLo4N-vvaSdef*iGfJA+ zE#q0`t|6JgdAAYLA0KQKs9y-Z$M(^31q1R|=9Xp=XAm7V*KObFz#7qw4@_Ebcg7m& zd-44J`~UbKmGo`;u|TV@ngSLvQO829)bJH&F5w$DqO5;!B2I6;W3sq< zgN3U7jqbRuMx-+2#w;F3sz|V7p(nWL6qm&>)@f$THAmdbBD`LYw4`dI4+slW1_W%A z)q5@o@iR6#nGK59SVR4$=0Xk6QD=s9{+FN}AqbjD}?vbZMKUV{22z{bA-4!FRPKbW54+GlV&wpT=|&t!PWb z(%WpIng@#fpIIKw?*UajKT?33;}wrua29eA7+?*r&)2G) zgNZX_1^yS_7EcteLg5JrH_}Whr6N=45KRTc-x9VE`Hua)-m$U@D}cX7tSqmq)Yu0S zObU899M>dq*fv%TFg&E|Ma7qj1+|dR_#Ify2c%nI)(a%kaeoHY%m3GRUS%)OP4*^l zvNQ5u6pE04FZ7lJINdf4J^Jy#{bP|!UgUmCAIQCshgwUv1x3BK=%1v`hf{1D@@V1U z+|1yEC3@7a<8RFo$bXFZs|i3t2faS@U} z7SCkB0|DfOT1!=8i5ih@ki?L?b&wQ7Nr-^!Y+{=0)qW*;JW*I1`jNYCwFdT-JZ}6y z80%)@w!(m=_hf&_5u&qr=e^oW-65j;hSHSL>CywNow(iH^7jqQSUa!org+y{YJ!P# z^9e7wHrq;hb+#Qm{Ht14RUN)Le5pW)QY#rSi3pQmZDs=V5xcdcZ(wZ!Z#-@>M zhDMP6#lU-T+Fg5cX~J*qRdGXY{6Hj>)MT|k@r~eq;pwMrS2W>x($u$438nPGA>F(_6s#0N-R)O0(J zSxL6_?>QygbJ(D#dg=<|QoLx}hvJ3pIINb=doTA+5xN3Hl0~;s7HqfBSzfWHR(icAZkxuH)cO+6gq${G=?QNL;w^Er*wwCo;LzD!%ktXF`hY_t#%y?*V z2w`h1>C@62`^H4;jcza{WZ3ntx^B4Dy;jTZWSG{4T(?`|V!N5B$8}u7d1+bM$`7(8 z-CJ3@1_7<`R9}`4<=!~N^PM&`oJZ(ZVzRpGlq7s((=N_@yoC}pn$TVC^WdK>= ziA55QwXFP|Y93on3QA<&9|PBrBD6zCD&wK>DP3#09@Ln@6*JE=aLcua`WLDix@TUO zBs5p{$luuV!xrG-nw{Cg-6Eu&%A0z=T1}H1|!8X;&7ja=>;=ZJuR4jr)Ft2)o?u;x}YP$vc6>1$()E0 z#f8&c!p{f#su23)O&fMtXXI|7%SzvSkvN()FuZ~I;ae<4{n{r8CCeAzCF$knYK9Y& zPu#FrmM1PE8M@m?hx)nxj(dTkqL@y86BJGwmPRtl(r^K?irp&_NXfq5?}Lm zT%fGyk?p0wS0m!DJJy04l7wQlo=^G3ZMduB>#KitSndnmu}hW!moe|cDg(n<=CX8bjs0YnLa12suSlW)RJ zd=$U(X%fx$d`ck3qa-oK7x~>bmwc?{XkW3{7rxs>BlnLh4NL<{;3{iPipAj#ZG5r* zdC58Lem%M<<3aU>DDa+#ND4v)F54i_UB*v5|4P51G+NnDITvPG!M`1hI3P|A@( z^yhKG3c@2$EHRfM0RfV~xkq@rZe z6)%K=+|vZXlQ|)PwdL;k2=4SLwZk{UATI-;>Ix~Na`vKoynvVR6d(Wl^F8My2AkZizm5-u%I6bRpmR@Svw6Y-Ou<=>i%RZpE;jmgK@AMGvGZozBKyjte^@&-NZI7IQ|zF#ta{*|iQWO>lg&t1(gjVXw^~FM~y| zfExV&VQwi2K>jO@ojnBc>9vQ~&NGzylBh zDj-C#Mu2DG;nO*sYmzSm%x|AZfl#OxO8wAA@=K5DX;tRxHOhSbdn4JlfB9tY+1wL0 z#{W*zb2Nbq0m67E=ZhYLn>4mSArIFuTWhN3IrH{K=LeO+%i4bij6|{dGK$(r)<_eacbd+1A%-KqgR2AxN0hB@inY^_^Qqj@BG0C)PrOY`gRBzeaYN^|Fj5c_Kr+ zpnyspIqGj#B@9&{3{6w{kNv2A$yK;2N|)M$P^1sA;(YpVRDb9R>%hdNy_FLQdq5iPl{rIr(yuDS)YCd_{ z){}nNKQ7sPT_wV?w$eF`fGF=0I;iZnGS&1KplT3{SXr6?jl^2gI}?mS)^VMD17=Mm zP&{|#KJZ*{P#%M(Do4vNi;U(^Cjd#ix%hr%ze_wVPtD{$c(3n>@V`dLCDT4LHAY?(SOB6?EjZ(@|Hm9)y(6ojauO7J4+;+0Y~N{!}TzI z&Pa>noL+xJEv&Ksrd&n#A>q#&wb>kTzB|Tpn#TX*(#_NI3Q{;FnKSMF;T~mi?vW^l zgKv@}m`5L1)pTs1=my82M{&Z}Cde3SFxfI!EabUp zs?>>^3@I+eBC6l91ufpqCFEO?WlwCy^kf$>gKbcPgntx=*q{+y78s}7lX4|B509io^EoCw= z+eS&WH()(SxRQoBlfxiIXhJ@D!w)E%HC_Z0oD?l!!u(VsBhkuoLYP^gG<$ccx}%?= z{%1&yaOQ;vB-gMq?F5oF+LwVrKqc0lz>B`kXNW_!exGxcD`7X0GSjjw(-OZd6|vC=h-Fxke4k zB1&eAl!Lh6@itm`jGmQ1OPQJv;#hvLGSM^EO7(O$$Z!hqp{B)__pehbKQ@0psoOT^ zn~(DtrT11Pn$zX;0OxGxbSx?xXjSff^?_(K+!$YkqFXnDu4Z))L%l+K;mF+m2e={t z0;;_NrtRcJx0S*@GmeZLAB5kG4-U5#`adEg(u|WFEjY%(Ds=z!vRTjm3)4pP-4j+6 zlETZ^+u)3Tri{b{33uKR458w!UwJp%M|2RA5BxulWIG%$d9!2-XGVGSG6w}&gjG_7 zYHft4fHahjqypKyGEC8};Jt2K1~d5kM?*l`n%A}A^CMI`r$m$elLAl(fGoH8ART)y zV|4UD5`HzK(+Re_?3chOA;5bUAtNpsPoUuP;g$vzHhGXYJ#!;D8>$V!+%ar~BWdUz z8hEQXl!LgE4e37ic|}Tei_FgE@64oMXaA%(J?Tq95&lUt=2O--x-TB@?0T>rv-%@f ze8a zvK898&-dw zOCe+sm%=WBDLk&c>NLh$(4dwOOrxi%jI1w2tifYhs3c2R&Vx(*J`TLaC}PgyER%X$ zOA4&ShzN68#*l?ZnFW|wdpm)k%?TzfRonOGkNyw%c)4sJPE5n;_%`uq{cNuzj3?=!wy;qpRBJp4720 z1(=fp=(<)Lc2r*dhPys@U$RIy-vkemj_^Z|(Zty`-Ky>awo8MI)WQ#nYW1 z6m0+6D9u3hz0PH02n)1I+R4!scw-94svZIbRY#9^lDXFMb5+bv}C}a_tSN} z`UG001Vbw{0KR1BmHR9c8>bCt26*pM*ICJ~i+^+>t3)qn;n2bfzXLEU!p&Ty8WZ=E zB9V{+X(*AdCtN88GGcO0w0|Ev^%t-lf_7IkuA~9m@qM*dts4Bp&bq1f`)C9=wF%n!$LnyWuX3=GB8ITQiw8 zX(8g)6O`bop=Ix_qKPYk+}e&{p|R+jyK2_pTFWrv6S0%M)7MsRGW~!A3Rdwx#+x1g z3(CriG4~PCi*~q)i^*6*LteSjX|2YRJ~3Z9ZI;clDI!E_x;N;HNbEk?FQf~kugWvd z<$L_l&XwjDKx=A^#6VHHXd>Rm)N**M!j91V07`_4D8rT2nyg&=yJ8AN>wx@N0YlP< zCh8|--p=d&!Q5YTtYmccFI5%U`Z1swA^4ud)W(n;rrZXEd$|jsC1fE^?xPz6Hsj4#@)n8l!uS9_n^fna?hVE$PvIXtq=Y`?`Iz5psi9lR2+msdaQF z(Vc&K7)vLp9aTd62~r?hd_mjI+^4#lCB<>ea#u7mL8jU<8NGAPBpxxDFES+*Txfsf z^bBICtK=EKB?hdKw`bcY9z|RUN`VJM#O_wFI!;bth&WbSM$* zF|XQw4ZeJxkvB7xn}O7Ih6gZ{`}EfBsBV>|>DSE3Dj{<>jO?!h`8Nk z=|3*GQ)1B-!kzSVxF+{D3pv%gHlwrcbmEZCdRummrw}8B2;H%!FyxkQC?-Mk6t-uL zEUb_hmjheXWWq+_m>y!Y7|N=ZX#AO^CQLy?qOG9VLFrHi>>LtMT%{eIDAboHn-Kkskq6nZ=MR+X2y?xMf$$7x`} zX+HJ%Xg(KfU7&||>|!d3fC|pxvj1}b2xVR?xp1$I%YYg6?BFmLdZ~`}0MJ9{b6aRG zqqOX6GS?F3v;MB=o5LD8R3GhimX$#%cR%#ATr39K`2Y;cCBQV}{pI`HHj7Z?^2HZ**IEtaw`Nxd*lzs$>xfl+?@pssZ9>@}ER3|g> zKF)3Z?F_N|;CFa*4#x_=2VuU3PjATwC6uBzF|Hm6;gQgY?pcxnml_#~`qte;D|AG@ z@jrrO&>#tv8D8a>xrQV-IDD!TT+7I;@&#)CBGyP$6BbuJCZYg{WJJ8w!RF%Pb$2a1 z0s}~TO}X}5vbK|2vxXeFCW7f0TruG_{eq3K6FwlbGZ-`7YJE%$xb)9WDLWUAPF#ot ztP1;>3_o1e51x-&WX=*n=`_)dV3kkaSq&=hYy`V@@&+Q<&Mp8}qfTD;bY$B;WvU=H z^*4@^#Ip9)V_aS%_UC!~_x3!_hKvd?JuO|g z1+fIoO(RqwLL0|(hnsTvq>*%`RjKazt(+_hCO`+*_aChR2ddz~TjKUmBzs;s_B}^9 zo;<$&>|Z`Xwc*(##B!h2r6hGEZ4sX+U@CMP`17e5OhAHInnP<+#ei3*8^HA@Ds(@n z9-ywWDy4EfD`;xBy4+I`X4u(=1dPjD(13%fz*Ivxsl`M8nz8M$i`6*`1vq&VIl4AU zR>#w!;3t>L(ZVKak58OKawG*A(s*^6U{H)p-`)m>CO9spokjE;ETvdu7BA-`6A;k7 z*h6nA=&wiR#6J`OI1l!I`R|~v036Z)gKegv+(wbZX@^Oa#*^Nql#PltXk_6TG1Rk( zx)hIYjD`qZn1_Nl=3x9y1Cl>MwzzitNk3S<(WdAlP*r5VMe%g@pG`BppB+4Nh(TQg zn499nb|m4gvC_QG$WD>QJ{dsc89gI9k%D$@MC3d-syQ zGS*O5p^5=W2{#*!lOp4X`PcuMf??7{E)_Tz$|9x}xzYY~DFtjs>&QZkL#(tS*IR3! z0FixF%5Hj1F;F5YBy`Tr7Woq`Jhg{N9?w`@Ngc6IyI?fbT~cR{KMcjzDyVwve^O;6 z7)^pvvzha8#2XJJ{gzT(kO;tEoQazQ5|i{wF}t*Z-0C>S9%!NsS(Z2C>dqlmFjJa31u{Z?Ya?VPjdLp z@OI^pbJ2jiN!~JNlz|9tRA`5M8k^*3WPHP+@Kh#2U-H^5zuY;&pUO}BKFj6{+J>Go zSKlgpb-8=*F5z`iqR`?A$NAMnX_>2+Ex@p_+2)ilNn;{?5m3Q_0GzG*ELqy#qqD|g z2l9Q;OEPu|`O zsu!nV$|TMz2tvW#pHoNKOnD)!oi|nqf~@0S@r)E~(xL(RbVAqH)eXb@9e@fJ_F&1O zAmQ-+YB(KOioglPt;dUZU>EQ#=;7kiDY`R~`WiFAhQ%e}0I791S{LNNN)INFLjUmw zrWs7JkTQ-EFhoIa4kd*0W`&&hePZ46`pl#V+GMLW670L@ z@htAL{Q$-FVT#kJJIfRhGhgY#rNv5w0J>79Zrbd2LqJf75Dnl~UAZU|NsI7B0_J`m zWlh_Lj3Brq87pzs5T`-H(9LXn4VpXplz^ld)a2XQM;)_a)Vs@(>DbLYNEBALQa!3m zxwq8-^)aUhKgh?xX8XX>s+iH|+iU)PkSClq=AtS3f8c!VzVu_Gg zPz0<4b~J8h>{;f3u#2VS0gwNoD2QYmd>;l1Vr@I%b3vj4>F#k{yS&`2Q@~%-LPTH) zZLxjw25^`i_88cv)yb+r=I!Uj9I< zGpa_uNqlQN6242U7o;JVa%-K9q9yo^DN+b2NZvB(OwL%$_aA9~<3F%3rdOS?f^JPQ zdZe`Um#@I=WUH(&AOQnqPBi{%7EaJ!H)I7M80%o+IF8!ojb`b9`nmeA*)Oq)Cj}M- zmpI{Jw;cdfqOG%|1!yz15r^lX-j&+6_m!1~e!5BiU%I&9w(Lwlnbw z@#>xL85~N&X=}4AvqF4cdydwUuR?aOgS&98eq<_`-P>d3_Rtil+%WvEr329etB?^6CAEz5wa8TvId!r?1QmvtgME4{^z@Lbg+EfG zZMZbVno+~kB2^ar(nRR2ms=+c)S{ibDI z@!|9)qhN50L0i1Fyr!tAU4rbi4Pia`J~ILx&aAiu=_axXY2g;<+w%N)p{zv4-~NpIx(|7Mk&?V>7{d;@Sw}f_ z0ptM&3NDk!$Mhz#2={(5XoMlN*WGGXQC_8%|J|R0Npw(E%l5nmB%m;bc@<^gSS`XFzbJ&ll``shoLyamM z2`GovqoZV6O+@$Ao&gix1e`PtfcAfGM!PrrJvDEvBoT(;5ivko(j+N$#)azu`3ldM z`(v>Tf5$Mge~pQ5dKky44?BMV=kpOvgTUib1=CoI{Dj!#cU!vl`_|wlK2Dp~45f4| zB5@~As|Pq3|GPz2yBLJd%#O@7L$TIG*bJu(ajgvz7H8!7W~)DN-~uPf zGaSq7{%%r7@R7iYE`GwM%YP$0CJgAaWeaCCH`<*ajj!8&1P_i(2bITAk#baM9-u5B z3;)uj;+KRFp)w&Qz>qCFD;w$no=vGf;&2h z*CnTEz>~AwFU(1BuU0s18|+ajvfdOx#P}+LoV3M$&(C}-U)QtIkAAu{0616m_M`l| zB!AZdQhF-P4?q;+Z63e(;BV-X;Ivu>(xW`04af0R(HNTwOJuqcQtU#y0>ilj+)Dp4 z)H7)IK6Mpo1c@}sHWEaYf}Tfw*a@d62o`8KU2*nlLb!=Vc1AoRWG8mx@T4_80QrWC(Fux}TFkF$TjQ|}dp_Xe4nK^)cjtQ;Mu{>1y-=Xui(ivi_v8T0u@dqvFNv-XpqJC>!U{UqiWDE_o;g&%w}XV1#Ir zTSzfyf0U8zjG{;e+LK z%>xJJ#^Y9)4Of~>m$(^YeTV}ngLr8M#*W^{s%wokZIXkC1<YOo49c4= z@DjviIFZ0**#zujVeLx4Kw(V^n#bzr)FL@b9o^>@U{_4`7+)-4Ql$|ES0?6sr=>^JgTch3I#u>%Rw=(qe{0z)%HfQNoS^vA;jwj z(h#}PvZT)Dce$ZQw#6&PaH*jiOcHl224SUZZs-e&E)b04Sc4OnC9M{Ds+*eBc2`5r zIx%|;7;0Op4T6&b2u>twlbxLbb7C7P1a6`VLVhw(##3H& z8L|OCCp_}g8r>y#4ucw+FbUxi3zawW?{$e7=v2|siD)R$R+=pCZL>Tnz4xcDPw z;-&_S>Z3`R;C;{62GhHV9}g`V#K0O)ZXLC_@@NDuK0Z0@vim+3%Eg+$%w#SZF&NSM zJ^H}oXDi|*(;U0`Ug&U6K?R?9uD$){aJ%Wulm zXqBA>BcD+m=y*!kB12=^{0~L09y?Tnhri7w*vLkG$F(^aM5Dt+9j(BV3nN}st96YG zMe325*n^;YxKtt|873-F=XEp%YU5q-rfJ!yeCuWeqf?D=zo}}hh!IBpi#HoAT{z{?NdYVod8q4lVLFg04Qy&a3==Kv^3SaX4aqwxAqRnOZA!hA z^uElz)6@TW^rv!5@2@lS#)54%jrItBlqoh2`6(4+c_r5##yX~*IF#M-**gzW`2o+f z7KIcvsvIM=5M2a~J7CSa^soCRC65J6`}`<`&#La?7wH63XxSZ051S48{-+5yLjuD( zS190R4H4Eqr|)=6klPE|3$y1w>O!(^H%k0m-tK^g^y>}$n*iL4$K>RF%KbA~7UuBO zi~NnN@ckNTLtx0fC(+5GO^asYyd4yGA50G$vWe(LK18(OvZS_bG#_$dR?w2jR{WmLEB;@0JJ_5aeO z!X`3~Y?dPdM23|h-Lo(b|8{sipG6;6YW@tPh1J|)?uKCXmPM+wvOBvAEU69c~ zuW5B3+cvDYX=U+C4=Y`&VT1}lz(=B8jp%xi1gbBf;}?6*1U{PfP+uD(^8Di-p)}t} zNItxNb&A!(1=F99V$E2R)5~dY!dje)H`#5|n58gvh3>Ec$H_^%jdVS5BU*X$-N9^X zcjo55Q`0T;HyG|K)$pWEfCs&{UUFfn2kd2#?K- z@l5$>I&~u@*^n7<{VsuqkVFr6^W?hS=d0Lr`~_XSxN$pqiQ} zv|MH86p^;>A%BNU&K41V%6Mp;%m93s_(3i$6Oeyrg;~Jkh)b=MPBoU&OpKT`1xCwY zFLG+d-Gzh82^gya!VEgGcGmIx{qY~B6OYqkVZWHho%&DX*FC|9-(BZ0oaw43{wG~s zO0IGg0zf_nqFaj$_A4=RFc`}wrgKm`AyE()pW6kYXb2HA@rr5yk>Lg9KYuBO!2z5) zg})RTo@COH%Nt=!w1tjAAM$PqSeSzw^&UK447C84P7Bi43ni(m z)_)g#Nh~w^VaC>bkO<|~J^I}1OS16_aL?g&3HZ*g1HPIKh6V%3;QSGb4v$0)hlpOA z6&I%^L>yubhz%}X2&=xZC7>sEvh|iG)ahg-re>yZU1>FP30PYsrOF7U2kjOL_jgUU zubIo6>nR%K7QnBrt`}D8%;gXWl+~Bjj1|2^BL7h6$lUZIpf$@+7NO|vTHVL7T7#xG zIbneP#ofQ2IWbo+nA({$It~ItE;AtR+RVnfXI-ljS7~u+pXLvrRX=^gaWYZa9qfXv1MA51q)s_IF;DXz1bH61Hh?jBi zJG56xdA3dvo|yT8rFqxGnXqg~!35zj-Kp;fkIn4?8tyT0jT~O6cCuUT21XaY)m2%; zfL%8caQ;)913@A=WR`+z)**IaOlg_k`k<*9la&*3>5Y0;rSGq&zV z873bV^7Pm3T!@BZ^kt#BHMOmiXl2^Fbyiv0^AU)c+voWJt2v$o@d&?&5<3U zet{1 z{^hySL3|%88#XN608yV*iPCzgRX~vO0`j^ zATp8-gD|tM(;e=Grybs=Em#~rp z#|?hBX?U<6KvGY5uTNd|9K@4sVN_EwcA&3yxF=G5IVI&jsnW|bT;Ab}?UsEhgJ^GqI-3w1Ov(AY|JiAQR_ywh}3+Is|lbC{koQ{LjFS3^d zP8!exJ)W>gZnndhJKhM(UCdzLJ9i!$VD@iLF{n7lZEyKfpUPg)Da&~UD{f#!&(QL% z{L-tahqgPb5GV?75=vO#725A`R*bZQIHy^e`C_$XXtUMGtppyxh>-AiMtJr=KSB^- z@aV1W==|ulGpx}a2`~Es#3&YpF9`~s7!hy89_tqz;4L=hgwMNA;KSp)dY*h=LKCax z=LA2TLd{*B`O_a$c4P}xt^YVIYpne8l7tp!Y2DFPq>uM~ftgun@*JE4)Z$YeG6ej$A*Afp_7uC-9xy_ZHmjc?ta7uSHjX}ll7^#^CyS~K zHmK!M9HgP1yhs~zA5O6OfxX!$AsvLVx8*Nk)GQ{zBE~$`*}fUXC>a&pr!xS9DkhV} z9VVgh0!pm8J%`x;WcmiViO=4(G}P~8V?G}pzDPV& zVC`PG5w`L=+fw|S&$B*xFMxvLa>7QHP9&=mUv_N6ms@IzWtA<$8-A2`4L8eIqgFM8 zx0RU3rHqg7BsdSd>$%!79?uPWEV=+6_nX6NA9&a3w+0w&mp32@Au1xnm&+w8SgppQ zT16akcxzpuVugTkC~h!{6SqmA982L?C0GZF9+GS`pk)yxTPCX?s>5=M&I0qAdKB>$ zkJ<{V(v3ksg8QX0)JqReC9PL7D@rIVKI#-!dFzdq zfLivb&9PGb+w+4Cf9wvgO0POC;k1-hHBB25a5RTkigr&IBei}mKb&5#UKVCq8ZOt& zx~!sLqM+X5Z#g^ z`<-(b1DB-^imeRo*}fD!WoYW?2M+}E=$u7$E!60*7r^)xS5&Ep8i{zw{%7!r6LtpU z4TWpeSpS#mQ(f{ZGuxS9Qz8U#KHO$i5t?oLog{As6j+G`we%*Abm#A%FyP@Luqk2iU$h|4 zWzJ+P(56@tpmAHzds3IE+G$p>L|yrUCdSbBV(RWTMGBqYE)`JKQ4T=orot04=KcUW z?hGbde?S{O0p{Wp@g%N9A*x3V1Y*!2FtTjPsh({cT=P>)Pw-?s^b!TvV2OH%qjg7z zg>E<=-GTqH6NsjNTx4G>-mA*`RO1K^12{&+LhG43=L|HaezBUuAd%oU4kz_5qwjh> zqj7tEka8UC<6AjT9TQwb77tn@v8L{C=&(FNk{iU8H|y<~f50C~jOt{eK$qBi@$Vf_ zp7+-Cm@UM^FOCq-lNj|c6}=nW=?Go41Nsc);F|?d_XayLs$?=HFtGvDV!YSiHr{LB$sK=L+jhk(=(xTPjZP8 znkncRcPm^$H0Qp~wXbKkWBnnnYxDD(T{#~1o?zBa^SjdDC76)WSbrh1<%KGvi<4=B z>4Ah#o@XO-oy^%H!BKv~yX~y|v9cn^kFduUtmQ?#Bj3SZ6fXSpWw;+4-oV@G({89t zTMyt7FI%6unUs!hc*+7;Oe&t3YR(iQHA&TU#vj9HDQl28=lWxCXAM`5-z&<#Pgy@u zo(ITiu+H4A+pAAxEz~Zl@6WLsoTG9$c0JNzYW-0p{X3hVy|le1>k!U=KjKjCdU$4frqSa4px#0Z&B}u}UOh zG_og9yQ@i>8y@(gKAW=#(mv#s=+NGzo!$!BTNQz2tYje@W~L?n?~`_aK5Kzn%bX)i zRy6HudAOInr=qKQyvdD{Ta@dl=triZ7cGL-Gby8w2)N>YkKeXH$X7UKS0YDsQI3E} z0mL`;A~f~TrZhsWo|CVbzGukPZGZt2n5-_$G%u+f{Lh_6&}KrjS^NdL;HVi76c<~k zbxl$&Y|Vd_Vg!e4L?V=M_#-a0uukLNl_0yqq<&p>T{c` z1U@)CoC$WW6TQ_GkVI~iNTA7^0=_ScPG}5$#<*Qv=F&f7$!@)J#EG?lmDRVE=*0% zaSt&=OSaAxXrNA|xo$Ov+op;S@g0e~mUz-#7H$ z_>LQjkYHBMe=I*)1EQgC5lv|pM2HEXwshzdl7{JY{29wOe>o2VeE{)d5_DwmrbDjz z*!&0H8t!%~9qhvu{I^?W0dtDD+4-46?D#x#U%?gsHrLR-5m^%Ma^@krSX1hGTX0nc z!cTcb5rk8CP5_ezB!p2^zxR6^)ngJkJ=;NpgST59bNj!a?^8Os7&wtSbmSRE@;tRF zKfje8gxwzwcY0jbKmt{|IFD>VwzMG(Fd6k0`&oZwO?#V}X6XxG-f@FptE9Fn(Lx)7 zt+CQ%TM|$cp$YRtx{^-TR3MHba0AAIF2u1xX_tB!!i)S>0rHT(6%72^!+{NOJf;#B zrnZr>%Teut6dl|5Pzf0B`7A0?BFn$9UALuc7~TRD?C*?iRTpCAP7(LXV%wf9oevjD z!27a6fq{6q>Tt-!i_4*%Huzwk%rk8&rl%vgoZ~$Qk)ZMcLPaLs?$wk0LLw7N4H*J=yB_8MfNGkFhUJ>garc9^{xz}Qps(@_0tNxF25?J9vcFnC1&FGW-@u*D`SXE?&VyX znufY%esf7z2$im8U;gRfLYqRJWtN>s=y$hX7SMn&FO4Wt&Pw4ccxAt|%1X&|FG+T9 zd|Pk$kww!-E!p&zyh0k_fYYLGzhnD?F?Aj&%g(>aYE6Td(|4soyM;^03(I%Vj!Kq` zEp#dEZ|?Q~N9`HV;-(M&>z<1DoooP!l3`y1fSB9!0#OGn-)|$;K>7#K0c2kVe8m3Y zY3pd_YdBP;F;}#amn8b)MB+71p_$Vh`hh49PiF~Qr~8`yud9GMt|$lFI-e=Yo00;* zF#k#J2NFP;3{c(5N)T@6F3uM^S|Z((zi|(9&4oKC64&TeLO7TtbUvd+gpLyvxWgs2 z0FvH(==;Z`1RT zg`dwr&W;lR3+`nokCwqrb$z>bp<{_>l`x^ATe3kNmjys zSFBg*%}ZRn0aAiY6a%B^;U+xp{5H8>%G{KAGgfZM7j}V@Q8iuRwgaZ5!|{!-p-`4*157unlSfWHe>v2?X89pq1p17P=%ly624aL`J}8R*9v- zD?TfD%PhljN=uWiXQe;=8XSn_e<^KTnvrBkBg929N`Iop&=mu|3k$JJElyegY7bXNNakJd&xlP;6 z*9*?i)9%P@L2$5V!MU8b0*&opTh9U#z_ha~3JO7>(P9 zsul?w(Y}l{9A{Rl2><;yY`P=WIFxLohh05kydG6=il>#LfKQG6-tJIS(B23rf0NcJ`JBXq728 zoZuQgR374|p$0U1OC=vXb-3R$%jQNKbQZl^scbMJfKEY@JB^NE>Mwg2wCW;yT)#qk zB=I!YK|IQ2EqeN~a{c7)Mu~4%0#MQ0m1@6g*LjWoAXH(Ow@E!QQ)M)b?IH*c(jD4d zD<0fms3nfF#S6b^0KU_)6*s$OLzTNKZImw0X*_RWbtqKGXD2Vvz?3yEZF12ySg**E zz-Vjmza|-fOvoBskrxH*OV42Lt zNf-UFqu(~BWs({9*%3pUg57r~TZmw*5Aq>qUrzy&-A^m(ztzR$UxX9?1}FFtD~j%r z`qBiYkI0@pV0{19qQDvO3Mk(1IU`e#jRWnU9T=-KLe_7konuvdVV$mdgl!k__NEvEOv8`2SG`ql64bo%rUp~;zvy14F z{|gFXA4r%BnG~b(Vt=rd_N=rY+~iHtPc8&T3q}a{k1IvqK*OuOjyNxn_?c5R@_6=y zn?GMM^Obv9I(GV3EoX5lod=fht&+0~Y-{QfvJ6VepRL~p?Q_|EWblOv% zrMKXuyeQS0E*#|i!si1UQw0+SuDI%o?=O_xs1tX4N83l(Vjc$vD>houiaSmJM%(H? zut9`r!4HoW`6rdoUDtyQM- z#~nySsNLsbrL|!r95jT%m1pM(ADxdizRBEChy+`U&@*^dEJ2)u=E%dj*t=Kccf@b? zSGIioM`pNzKU6jO1gtpXk}*-Kax%?TrJhZwv`D6*C#V(7JDUiubk3Ts>_iK*bDCLn zzbG3=*EQkvt;B#IwPf<(-ET6-&9K0;6`kTFRk~Ng{as%up7l~xQq7dtz^^`wRE{(9 z%suhARP&IpPLez%t9sqVQqHo3jmMsE?NO(DAUHE*w)ApH7Vy5gsBj3I(`(^EmpsQc zM4|uF#k%B*`sWN2Fg}Mso$hD*kP8CWcpv01C^>x41)PH+-mZ8vJm_Lx|qzKQe2t$(=tT9sTAb|048A6Uuh+(nW_ zFdQ+pNd?-L#4Q*aA8Rx_5M;La*gLGlI3F|re=l%Q(oSL9R4hd)4oZJJdwDucwsqPtEd5u;dc9_&n$(x zgnSOMpX3-C_1}znz<+Rk2yQbias-1U%rh2E!bUAdWI<1k8&-HVVIM9Qx~Vq(+*&{} zH%BA{`yU1)v4W;#Meep=1pEa%XfEJe1GC1DIu*7{g!np9%NrH7h_8ksfEgi{*y1?Ghs%Q-xg{y_d-xb-=iBtt&p-v~HiGLe9$@FrUkJ>%|>@|HoN z;mO3=rG=~499BW-W9-3ED=K0NsmHXLYA%gzt$NB|(aab6C$vz0>-##5+UOTAJpJt~FqsRZNE9RGJ? z?9ow$gg|Pl;D_HGC373t=~qSx2{)yVe7v!H?*-eFNI-z~MKA^gLx=hz>-k$|poe$L z6m>`;+HA5~c|TCPX^rCJQWT_+c3wi0oIj6z8Pi_*bwp-;6Cd4@R1}7GgdY)a4#gLl z9}=VT?S~H0-=%c2c28rlN2ME+2QV90r3w2XXzC@&B4t;k!+Yd_^NM+OP*j!#NR1wc zpyqTTkVQaJdz|yj(C%o;WQrB#4ko>k%j@~P9kiN!CsDqOJ`$vqzE(@|K4tk94ujx} zt{;bT^;tpRd2Q=8wlgdx=ub{`LxEN?t{76r9Z`k%gvXoTHA5{%5MX@>4#p5YwEwP- z6(-&tVNPwxpuSgD?c{I?BG%{b1XAm>D1GP8^lcB%G4n{g#aew(%Vlf!UDJ7a{pfQX zG3WuHA1R{oc;Sina_b0CNLiK)ud+m}&(bRTx>C3Tk~wWU z04|}6R)_Vt$B_(d`mx#RUh^vbtr+xw?V;UX0{3vF)@eeu8_qXcn9pgCy)YF$7o$U_ zEQ#o$%kd#dn%;9Um>({1KfXk)e{uI z=}8|KlUoxT%^m0RZ006KM{QKoks(h^QA^JG3R=7WB`Kp_H*E`{cm88f{F51EGfiZ#8XQkQPJQ2pJCjEvY*}0(Aecy zSG!gD`UW4S#_d@*m7h9y(NR)Jm-AvT2xQeUt2=cN(JO*oOKUCAI=aF@DDI!P>L%Yk zW;IC9pLatqc;Wo1jJ1B9fe>syydmKq6P7A)s(L%Xz&Hr+yyR0dRB-f})QY%w%wzy`XHX~(Z+xXc#+^{rU^{HZykNmfLEODN29emP z2x$b8#3%h$00aAavDpJM*^o2nDLBGv*Z?7@jX#Vw=Ld(*-`z*nOd~qoG~8 z-hn891(?R!VeaupxL1#vGJ!ZBIU^@gkv6GR?0N+zIbb6KcJ2wZBq355Pd}bl5>5Hg z0K{TzY`bR0~CD=wpoTu%WEUhq;pE>XgHAU_I&R!u$6JB<5; z9Kp8BGh7}O+`L}TO6O@uX3zE46Mn1!B9d4B8mubw7MhgInOKgt+yyxtj*mdM9ke5f zD4>;D7P63xS1DC^80^t&x*;&DT923(-IyBIQ!gn>+)~vvc%fLQB3XD!%6#y~#Z=6WL(Fb?ut z=wAtrTOBBjvPn{4d^32qpj5{q4#q6DZo(Bfi+iZzVj;dbSv8ymjmTi?_#?8|4jM3=nY6u1Oeic! zPo=)N45CC6;`-ZO4Pa$Sc!`m2oCc)3&$26yKD`be>~o9@>=LNW(I0fHHPWXYc<(6pRP@=flNHd^8|D z;%Y`#>kGQD@g@L`t+$amxMqi?!i+4xlif9#hP>wui3O7L{+@X60FP38g~^{#eQV_D zhiT{oEi|!y-g;Wq<)1QHP{P95?qZI00nQV?wvF}C-mIUQu(YXF>GXLXE7(-`rSoFv z*2QP$hbzGN1$Xg^J^;0@fzI;`Hf(#`2!gzPOmL}?t^tKe2RPL?PbCRS6lio4N-X|z zSM5v{0;n=5=^}}IG1fg8GEQ`F*OJjte?%&-!Zn!RDcJ8KH`0R-=Fv|VmY=f}Rz@aG@wG|-?@wSy07qXi#H~i4X&K^`Q!k!4 zPzRg;_{P@ZI&0G?Mxo#?yg4DQ*WL5C1-r9NB9Eo}e0L&L)S3Y7cS&mrl-@G142giJC0j`J|Yn};HgIGkpBdiUzECeFmA*z1XZ}82L=P6 z584@k(uNa~pPkbymil3uLbv3cyg7%o2&%jZ`AGVcj0nU=6RVNvHfxGlW8ltqA-Q%N zJk@!9o{exUEmcO{g$j~H_<9Ms8?8S_6NNQaN+NjCOwqr$qud_qyFnxFI#g8od?`ON z&*Q@UHbc9jV~6~JHh=u2vt~nEol>Qc{ls5_qS{%!!wJ10#pFRGHx*d}5}Q`c?EGvl zyztcdFx)e|O>kIgy%9tP*d;tl{g^8GzRGo-0cA$LAMxhVWEUmcCd8VTE*oGt6n*Mg zpt30`T$!)CBO?}(LbsC%T7;2BG+B<+VerTsJNh1U8Ed!Ey5<8kVu;{-`OdQAqw#L`yQe_;}a@=9WV(Hi&_-yty`;!U& zXnv;G7;2TuH3xmSUIYZgA*9ke=p#xZiu9HI;T{r}Rx_`4%TwI%p+sQH%(xzWR9-b~SF=}|Sm*8lY zoA#W?Uot7Cd$ZTn6t$` z)~s39oCAKs5OWK|q*>j0d@JZS`~z(KO(-5wDP#bP<^q=Mhsq*@sg{_P=M@=!4bOH9 zgUt|SwnPGf;>bY`baW=7NxNrS8*)i5O<*W+@nO=5#*YOp`8<4B17?$z87*?+v;zkV zkDuPvs;%a*Isseqvooj=V(-{+=*oeF?(&+w2!_9oTOpN3}RwzFP}Chp%;2^QZo6<2ml>S zT1OYqFRn9>6`(Imrz`GwUR}9Q(5zz{DtD@f7zW>m2A^%Lb8vdKseRCD>T0JHmy&F^ z{9fo1hOCbmMSrh4XL8%>j*=qvF8hul|q(P}Z zY!P-4NLl!}9u_eQ;>#ISR~K?4-0qT)wy;H)lJViUNWTaN1^^+Xjtrr{crl*V)g%J2 zO7V0>1D?QyJ8OOJgXmeyxI^4sY(_+#uo`&q44jDmVz0@HbaYC%Jq8oVTwUy8)dx=QzG^A zx!k_r3`x1JM~lCTTL=baNZmZ8{P7>2OOUdG%H5Tjb#S2K(p!a!!EE)rhKZ2+)8vSp zdouFBxdHGvDC*!};)_q9Krs)XrO?|aI36NC^`cVnb0FMzK(XRZa?yZMpYeIK1i@|Qo``Lx|f@dwr z^cSE{`_F9?8W(Xk)I*^!p?4Y(q8!L-=sy$}_84Am)dJn0?I}V&@MuzT!BmU3E&vaV z^H+e~{|uLPQS0l5Dn@%f7EU+~<9*uT(Af zMiQIi1X_2U_ox5UFF?+1-Vf_W%c>nuG)CD}WHZ)M{nx&D&M!1!eI?{mMrqiiEF3|X zg=Qd2M{V=VlIERkbmh{2r4FuZ6iZ@Ho&*F0^g$#%)oj;?arDzDJKDF=HIXA(wS3cG zN3`@lWU13OUHPQi;>A4{TNtHY{F8d<0uFCK=@jZu0fggc$fQ?$zpV6I8@z40b<_ry zx95k`U#J*`FdrDxTaGVjSL&UEv;H<*4R#nf^!Ijlzd11=DKJAwU?=k!KONSNr;?8% zX)npx3Qd%TdRC~Elx7xa=f^$NMd7=jfO^_tJ0C`@&v~eHk?9$LK+(ZxDeC}a(w;^F zBRqEUEr25(2X9yl?_vzobsAgQI%Z&BWP$*4(>@wI9arY05#)2YSD3>!XQbMp@ce@| zR+vr9Py7h{QyzBtwI$xdkB;?LB$x%0(y6R9R&vK#F0Pk--L~x|td*Ue=5s=LM=5ZE z0TXhHJzgZ-qd9h!GT^0o0;&f6PqFpY7JQi`%A;_rsU?`Gq8qbJhE-Ie*U~s%2BkoL zJ`I+g-!+3haiA!{q23T5Uj75Q0Yxv!95usi8*FnV^8T#}j>%dncNQ7na@ z#&zpzS0BQY<`u;mJVpX`W2LV4FCVcp!Qe+LV1vcu;zDjwU>g1@_|W%hGKBEJ)=#}# zT4JT$^EV6CIP73b^R?;}ND#Q>s~}Yimd@Cb+y2l52{t69!sD7Nimew7hj|A%n_SX3 zYpDP^K{R}WfdlS5L!7hRG!GDMo`}_Y!$*luvTs>!Eb^)Yj~}*2Snx9T9Uh_+3v4MT3H^ya&mKt<+6UcfCt|Bftf~|tDS~BauL_-3!2l+_iHE9_UF59YS1=_2Kp6r~y@UJ??g)B|c|WNR+(-$IzM@{?ykPwZTBO90%-%|jvN6J4Oc|3_POJWPmqdr! zBr1-&zBb@GxSYWq3!-USOVy${3bAbIqTL2g1XYH16KCiy^yoQ4-7B1DYkYaEvTfP; z^2~cBY>lJ^CS!rn*mPb7^^p<|8!o&<4%A*?SBmhux@CF!0L{_3uxOlOf3ASYtGlUF$;8+7=jbG?yKs zR{TeAL}yxL6EiR{T*YhAj}ee#m<~G%sq>}T84e~#D(Z}rvx2IY9bVpt6o?MFD?XQ8 zf&^Sj_DD$K_-IZK2JE6TQ4Iv)u_WI?Ju}_QTssr+qb&e6siT1<>o;Jni z^X&ECS`9_9(JdX@l1p~K2(X6+zWM}qkW^TBfh#Mn_SXxKP5j|^aKA>ep=)wi5RdQV zuGYc6^=MvWLPS?+(j-03ro6%Vg5jZPrdx}E6DPeUkU_^@D7Zk^uj;77=`SymZ{Dri ziYM;c7x4Zb$K_mGy0a9c$ETIlNMwVEo1V%#Alw~`M0r3D;e|`Sg_FZAdZQzmDhBL- z$moQSR?o(#TRopx%E}s`yDuvw6cqFO+WM%GtGD8=z_uzugoKS05x|qhmlQCjocVHW zPzx%8G6+2oMAjYV+K_`_#on5Fi(!Ncm8!|vernpMuoF(0_$6H9b!e+ zsNmmqyjQp_%l&w}FOHujJ(*o^VKo7s$FcZvrVYC@_`=6tmVE3}x_P7+%@F zW_0FIuiL-~i-}LC9t;r0l8BgbO&c>ya#1^qQna@uu%3>(MW4Pdd0+E!7wjrP+eqE4rbs=fj-0)9+;}xr?pxtj*ST zZ?i5{4SXop>d)Jd13O8(atm76j{JRN=$KLrh+Egqgfm~&`t0RJWjU8lhCU(p)w`fn z`#g=rem2Y4mPGdw4Y-g*jfc6B^B#6L$rOB=fB-^+g)4Dqx5$W$a8)MkTB z`Z}<>l`vd_y1u0dusS<=!`ys)AFYdBt2vNgkb<8m(aXzDlr@R_{e6KwRWTPmthK3@ z`J!#g$n09NB>a%fPXr{*(NM_k#ADFL%fi3hZflvmLZlTtP@aZ529sSD+4+P5BUh>`l_ zRr96N>!h(zBw}NxkaQh9n>VkSoI2p~+oDiAzDcy5b4Kz;u`;RyXj4HO=!#zO$rpn! z9pARiU%$Z6FuHr!2I=H2nOhz(iBS8JDLyh}3ob*!(tcAl$?d0M$t9kA_crIGgU%Pn z5kylnEnW=*Wcf{@V(UD#t4*L@3rh5%w;|zuPSRQbjZdHcDiF7P7b9kR@NO?rIViKG zFLkW(hv%LMw;22<0>XGt2@XT=Sy{?Xe)EHGgo-W8ub?mWH+(_>cxiW5ru{h*)ax*X z=ji>FIWbLg0gfI1Zc@-F=kNfY)a>Km=mY*dYg7MJ-XwwmP-*K~;@vbuC-O*k4)8wH zrH!FQ+Dy7yuT-Nq4lEvKhHJoM7u6bM7=Mu_h^ISea{c>!fAA%SV}-|U5)~3yhhZbw zlSubRBe4e|g1frXu2oyZQ&L*f+HkTb&>kaxfzN~B^~y}rpaA)d;x{;T4-0K+Oi@c5 zRxaQ?%+c))mwnGDRF?$%+r(hAC?SR2RC#-y&W5@IxJg1;8x%x|JzippeV-%vYpcRX z_$#l;TU+&d!I&baDE$Q3ww3PysHZNZ#32Mji67$!4P(CY75#-T1PRFRe_imVZF?bKpyj6503xhU97dv;Z|E z<|UXT8OT-0Z1Zk9Bdy6+7OSn$=V)DU^v}T94=!u4Esu6F&^gg zX#hKJh%MFLhqR+kS@uPi6RLPKTdl*yTEeF6E@I;1$Wq+PqM;D9Jvd#H_akb`tM`4*svxik1q zDEg@)aNRJ217(*#h1k3;=s6>>t~K%9ezEAR3PHtr|L~wg|0mO##4i4g#jkRnptm?$ z-j%HnbM-NB?2UY_%aMw3p^;a!Q9o5Ox1+_nnkQ?8B!6cpVa&_>LA%e(oY8MT24K+3(bY)_~3neC$S^XO7G0e z?3<2QNc9hxhYkXWVEkrIL{k&$SEZ(V2T*ni$cZ#^ZIaj>TyAllSM?hd23L$f zb>Kpk;CDA;e9PYj%s-;Mebn{!Ie-espePwOHC;S{jJt1K;Px*Dhkt~}M7C$kb>C=^ z#UzqkF)J$G|1C(Or4AEd_Q!W0lm1{r9Q>eY2Oea0ngukJ!1UuzC;$8Tl%*dG*!}_> zl(kMh;Id&r9e(5F3<(8si>x_+_dp@gwXMHGNg0i-!9DFc!-9wsZH%2&(WayD&(SOR zyM#Mcbv!AZ2wLbj$ZUR804Weegdf_t-^QYtX4yWvpci@2n07#ovvVXRqfN%pDN$i! z@W3SFQnuA2O0iG!U3JZ_I-IHdC0(;D6S}nCiXAo0^h3<$$B?yK9HLc}ADgJsU)A_e z|XJAtR%FmXCs}8X-&;2a@U=*-E9}#BWuIGR|ABSZ{=ll|T z)D_MtpL;{rBIOA!Vi9_T(wOv}2u-J@nD$Pkc=sj3SRq=6_H#1;2B(aE4u;~r%>@@H z)?i*hcj^o!b>lb}sKqZB8njWuNA+JZkI*u zmxO^-XjE0hw9m`n*G9^Zv7k|MX*_|m;o;toJD2*Efzxc;+I|AQ>RAMJwb{}Z)C=(5 z)>LYMcbv|+v&!kyG5cEF8h&T)Mt+mi#|U=9328k%gE%X7{Wx|!mVM=~aBayLf5h~( zG7tRmZ7xEArl#fR0%G|^4TL~ICeX*KRQlbS+*M}np5;-`kbt6(!!!Pwdp=06Om;u5 zK`CJ6=V3?mdUTOb?|Cl29Q1C*Ox?<_-5gX5bXVZd!lA9F)lc8fH1jZ{-CgnFh%m$hry@Cjsxzwnfr9?XFgD6y9Ozqbd zu&I!tv|Ce-1eihMpmzYOc1(IIIADGv)XzZBxr|1hMvG+vf#m4opz&}J>Od^OXY?$n z@KX_e1aYj-sAKS#+upS!KFF3WC;=Ga(56UgMGd+&AF@ zuffR42TPtDeKaQxhbgO73pV^6=(Q+@ROfHA@9Mp9$+)7+(^=S}2&arYK0Zky;Bl-% zQ?r@t=p+a)U$kS&K)CKSo1?hihTL?=A=u(%?ZPo~+oNe!E z%s{&021QH)6rG2+#Q{}}pQdRG6N-qP{Nf!_wK%s2Qo=SRDyNwu%Kh3k>9_H7n@O&O zET63^98)j~wXvv*jSiipc#m(55HYep(ueR@e1N95U1#=9=931GR&5w>B=7700mgig zO7Uix3G8~iYleL!C;vewiczry;gRHY=DqEsBk^{8+yz^ruoH7Ux{>N!ffx)&3IO4B z?y6mI0?4A0JVoIgJ2?+$ej&A;h7h^Y3sMUjorcwEH%F&;ov=)*}9;?n(8MH7o={nrC+XTs?StA5RA=9P^f9z zqO^|qo!-0684{F%G%ZARZX6&nel zlUr7CkT)CiXa|`10|N5fw*I+blSg`lD zbhEPu8`i;TcEo>g$yg6*lf$1z6s=jqw}mALhpv;%385rL81ksAXG@NEBvQ38rF=vGiOL? zz9$VCN%0-<9`w*pa%lht18TlftOc+loe%^$UFYmv6EOD>NeUn@;}VDXp;~ds&4D{577kYAsr?B)|eV(S|s4 z#zE<(q$xR~nIKzkNm-o|yVIm`M3^on(i%^vu2po?c6%iEZy-pC7vzy?YC#MVCA}{>S9%E zDXPjvwEfqoBKB3aL3c=77au*@m=~y z2299PRG$<9!anoOT%?OnP|_|@Fjh?rn}LA%rAwEF4e2TPe~4sp;vdjb*I z*LZU|*1DV?lM6YOFSUCWLv^C=?_Xa!ay?L!x3E=MsFvi8o;3@=)!kx@`1u<64A0%-_OU^nCaA}9 zN|L{N!Ze-J^_!~1Cc@aHLL}jJNp-=Qw!7vXuiyuhx8%doh*iT$abqzZ+k|dBSDl7Y z?-HU8*s!6Fqza~3wR+zcL@>Q6T(144j4mAM?P26iJKe2H|y(nn9VES42xn_0x!ENA;&L z+Eq`n@$!*9Upb{gF&B!Na?z$IY;M%Kvu=nF3s{nF&-)D40r8<{2%>aibf18uH@;koT(stQPZ2dg{NvL_Pi?SGmR1S0n6&% zz`^ug6Lb6^w2+9?G$IwWc3)7CG}Bs2=oz+U00fU6CINHzJi%SfK~P#XQvTP$cakC1 z*vnm9CljfXRS&r#A(b*L_y3RMpIA%Ry*YHLycs32{E=5n|-;u~adjA;$V<`F1H+0&6>f$oe zN;P0kgrHrXY8AZmi~Rfy(5)PVP@WSxuI|%+y-(EAMnfWPj!8Ce`Ft*4n462zk5QJ~ zkAD-baQ917T%;(q5t(5bQP11zJ1HiR6%Be+k-=ynP)T9mb;b_Q)qFx6a62V~V}ES6 z-oHRUl1=vl`>Mb0Y90wki&id>_9FRaMg<<_hUmY5Uk`aLRCi}nX#{>Wt^r8p>`w6i zx)o(JMt(uD{yd|fk&`Y!_F3etr+Q~J*mmqr)0PTw6PfLMdJ(cwdq7T-?_5m>HGryC z!vHhYCqyM~yF>awS+?OggqW9T5J+B^s057>sKb1H{c6Q@zgB`-_ZrJ6zAoTmn|LO5 zTXTYHh%CPB>Q>9Ys}CT7OQioDEwEN|4`Xk5&~czvX%)fXBfK)aRnE#P93H$LuhKz- z^7;s1L{L_wksX`Aa>8yfzS(RKnv;IV$NL^E9%p!bDW2y>3Z}$DeOUKePYHSC=zr=1xqg zK958T4pwK70jygfJp;?sv@_T9cR?jMDAkadj#jY^7&z5+ot&ZV(Bvu3l|zD(9vyR7 ztl{}iB^9}M+4bx;rDOe_kz3W7r+4n|&<+h}u1~IAGozP#$-m4(|El5R5kfX$e3B36v0fVD!-_`HP* zuA;BAZjL-h;yCE)0c2`~q{|8b4AqA@j9OuSGxpGkv#3Xwt_(6)keSTP0pq=tvUjQ{vmPN?j z{5oeZz4fCRes{i{-%lcMCbeK0VT1t;Z|`?`h(19AEml`ElcuGM}Y=>Ue@MWegl3N1D@R(gVM!f zCZdCdT~*7OS!lnfwWf4!5llEFUTzG`RN!ZI5U`0!jrQNKy-M{(N1F}f99p5^^u8G4 z@u8r_If=rN&IwNc1(`}#>_6RBXAC`>^N!H}SpN@1726k>xXbTX>Y$oTiMT zE@f)FnY~hb@P88U0$2R&sc@(|!`p?cl(HI_!P+Pu6=A7s|C0iZkOVoUQIsh$q;_s= zZuScvtt*#Af-dUsul+Q<@JAcm!BI~oc9%ntb;%;Uj9`vM3pjOsl|AfI5vv=l6JS-v z1tON+T1a#_RfV&@lq6PW?sBd+$X)IZL+d8Daxm5D@rc9-@$z*alZrvOXrGsByG*w+ zwW>>kmxxdoksUZ+`{v<8n_af8T|mVU#TU3>jxYJkOw zp^wulf%&p(8gKcscM$sR{d?s3$DC_!K?}&%kM|x;k&2F>Y_&66v#M=ZZTR{?c;aHN z`afVB*5vh-DXGZ{&Qq{RyFEuIroB~?roNhXFg%@GndddWSvJ~ zc-xuNqBtWd8_gh;6aMYZvo7A*MO+8wq+0W!Q|JxWyK}}9-3-1dCCIty^G#8k1D3|C zYw$@-+zQrYMC7b?|0lpu=%&sEC|49}Qp|>709m8FIF6dA*Y*d9*bLAybLgxM{kvI8 zw1VuQGiH2H7Wqkn>gbFJrwn*_3+SqjZRKFZ0m#65J@e;oWoN*e!L9-1W*Ff6FS(va z;;dgUJxm<|PD-_Vr?^TcEaK5?EKrMy>!4Ex^a<`IjxFHV@j?f(L@r3KWnbxVGuj8V z(4yCb5y`;nKVw&c&7|ScC6G}Zr7F{_sRd5^e|%5YMxuu3*qMa}t<0}KF~x|sQkWME zyR{rF7Q+XQoDGx@n3aT$p(#8!J9p8tVYJ1T^jXTdCHPt9FI?08`u@oeJ?yL`tX+11 zR;v97PLkrv2X{>O#e*KSrspA6j zVh-!OS=GUz2GFZK0Sp%g86zHxRY!MRC%Vy58U&zNOFuR?8s?r1foc*VMEgcG^{}bm zXM2?|=#5BAAjJ|WX*D^4{Ir9-60AC*Q>awUk)^xeM1Qh)2M5pz<%fN>% zpHPq0auD8ZIw!3Y!?EDMMlx3P3V!``ft5ILpvxFaOL@H->%8H-e&|ktpxiEoFt1ie zD)4jfdmCP1aTa!BLdzgA?swd_Mu8iie5d8q2C^;4tHvL22DNVIEw8Dz1AWwAk+Z zT%<^ZctIAW3W@Wx&4UPe&>u@5a1qM~@N3MCsxN1UFL= zgwj#g+-9wsoFeqhOS62G5sEQ*%OKC7BvTFsKRjVnDaI<|h|j?r@5Be5X!#cCffgbi zh!l89GnuL1R_pT`r=lwo+OO##2aq9y!-g0be=%`5=59SH{4!$3orT60wTs_;vt7AE zoDbCyyZq@`p9`qOOI|**XQxR{UQRcFum>z|>p#4&f6uW=ViulMxB^>WHVFK)Z-R|a z%&DlmsS1_9AzMaM71ef#KyhUISRxPYoP5gXlzQ%|-!@%TpAS4dkv)IS7lWeaS)?eHR#{TQ zP~y-1R_`@;!lqrT$$>^r%FUcYmy>@FMlzRD@<&6SP`OhsKKhYeRRpT!q%6Hf!^>*I>9i`D8uOB6 zHqB`+nT$<9$(->Tl0g9CueYQ1gZJBfZY*D76n@3A#de*@?zL_nF}KdUa_%cEvk`l& zjY$?L3hs6b2My1kY1_zXB|NCi(%UC!n*!>Po{<5A>dzVqH0j)nY7E;EhJ{FS0_3jG z2`$jlC=?l+bxE;*R0JUfaMNx!U;efBOYGM!pQ!MeQjg zeutYI(0lG>;-#hlu~xl-u-tKu#d%ux=jEdQP-nV4YON`3d0+=zp#B^hr#iIK%~PTd zI%s*tJ;D&x2Aj<%dE zO6cD3A+O#}=&!0OAw<<^OgdI?I27s6Pl$pm9W)N9Y9axX34(KiQzBo?>(@;$?uWb@ z;m;8HnU;zt>8Gd5qH9IOpMho7;nVqMOrHmv%~nv8sBtrv*8Sg&59UE4rv!sX<*2R@ zVMG71R*X<(sX51WpF3vjS!?1H;fkrzOx+<{`T%4C|KX8yGtm1ZgF=o3%vlIk0$UT}Lnj+J)eq^M>3 zj@F)a?#6bbGFuH2kcpc{q%f(TuRlO|g(BIeZIdzqkbn^N$k6V(Otih-b!NkGdSL2g ziNlU@!S}3BHHOf)kP)pbeRm)VXJRMGeKANXx@HC3zx)LI^z_>}Twm*A zdZmwWw+dut8Fni2c)S+nYSgZ%VJ3!(eQLd-ok})~WO;*4dERAgsh%W-3|>#aI9>L0 z%933W^;zfnixt9BV2Qx^Zr&nle(o-StARL^=!A!iC&qBIUJOl`h-l=oYqw2^vC|QU z<+0E3A} z#_JB5(STBDpX~y3@{!frxQDMelB&FZWL)*5Bb~Yk;&kZWM$6m*kPkuWHKLcBe1;BR zi%8QBl4s*~<70K92leS0Y1Gz5^eBO<$wYOq8A&D^0qwQ&ol3@gP|BdOZX?8EEz0}E zBU9ynU2336_*nLcm(&b!!6kgjyjiew^T3W{fIF_Q&H(uH(?yh)syNrIh^PIwv)&%+ zzBg$*L#L_R)~qRY`u9LNve+4iufnu}OlTqONuf@PFxzh@vq;RnFG!v;6v||+QYv>l zdS4|ms=RsRN3#1COx znZ^9n7i(e^o!D2Z`jyeJx6Tyd8LTJgOlbq}Gr1V_Od8LnZ@`1^)whXaN)SnvrI@az zqkW$#v)b0cF@tBNj-9d7JgOqG`uRmKm5Z(VRk58HAmWBst7(_=gyIB*bXRdsIw35T zVi|kOeM@SqOoJ(r2o^dNhc4Bi_7%im!20hvGUd8PLSfRZf^O`2O;`Y4kB7_~&!KWIMZ=A8M%ozD#&1R3*Q2pia$?b$0f_fGm zxjN?30A#FLj0ZM^33MREyg6P(uc7p$C;D;R3%!&TbV0w4Bq-x|bjeECcxL9}jr*;e zVuTd_8b3oSHUJeleFA$nJA>e>C%FQGlXr$lsL$(y4j|e##XPJ`4RWB~Z1-u4Q3!$}bN7)Vod~kuIQt4xv+D z_JJjfb@+_w(xLbw5Zb47()m+|JV)nu@YtaqD65!e2go(FJ#gtWqtnv!o(yFb+~-)XJ#3s8Zni+w;=CyS&5Zgyz-0XLCT>LDXR!qJ1_CU5QIy0OzBR-i~m1POEdN*-l)ao{I3TKSCjrwTg-Xq696DiD#X2d`U zsXMiJMcjNkE*j@lsouB~mmnh!4a;s81X?AGjAylInn-`2ipB0U>rDFX@l28pqmv2B zTwihDrfpsaTy+lBi`HUo(UZ%>tguB!z;uk%-4~l&mG%jt*>J|E{rU}VFf`yZ*l9;5 ziwTS_B*Se{T7ZonPnTvc3z>(E3Fic3ji>hFc7>@>k@Nji*7*r!}UhgeKiL-s0ZQI zq;X#ei#3REoXMyKIHo9fdvYw|+{?Qybz1gW;uKjVmqdxJmmI0|kL(6Ym*v$Q(hm18 zVkCkxNMJMaEI;so{&~e0ZW%XSu$I>0lqf9%xmz^-Mk!O|Lp%zRuIe0wWk&apSwZ<` zMJ}5yVJ0lO2m}$kw~ClLXw1XRw)>Ec1Hxda2c=(#VM198ojK+SQ@t&Qosv}oiw><|>K(hol@-Eo{x|0+)3I*?;4EP~DL~}kGsJEEF z=qF6sq0BJb^%(1uNBlKCdZnW2+vI|72sp;7&&D&=+2ikpCu|B#Y)$xp@Fb z-&*2SFl>=lEVy!xvU^M61P^;djEd9%zHEz)31u++6@B-D@_IJ{i8s61z=D#|mi~IA z$Dh4Uc2AXK@o0>PN>mYL66vwMO#vE>Ra`}x4mJSdiS-295a&Cq-{sMXp2Y&w4jf7{ zl5UqUi!$0Wwf&{6pmz>qK*ZLzUwKp?^jV8igN!>{95Jq>lV%s{+b%`smk+_iN(^i9 zW!ogJr7Bu?uy0IjS2px@>8a*RBT3};u4=B4-)JHCYzEw)jpp^YT4dj=%I1L|i}1)B zJK@PVjmHsj$F(WGE2|;IBK2-c)U&;P_nZ%#N09h++JVeCb<7r(v=?ElXvVhT7nG?V zX8(t#46fG<1H|RNMQtR}@I?)ahH4nVqzl)DQ2+(_J0UlN#zm^5)YHfMjEkr>I3n`s z@}HW~D7^u8Kx zu-f=}>)0v8>PI${96q%!(#etrm(q`TSC)L`S;=MyKYcSamq1?&sNZ+M>Z%Pzm^DQ^ zEqTpmfwgJLOI+1KW0!pK-{OYLg{~((4mtM=o&hvzoA2!gOyR zjW@;ro8=X9g*ilehE{`fgqNldTDjCXM!rH&JLzo_0f{!9qsUWWJ>_z@&lNj)VmTx@ z{(c3dT#+FTjc3@bAq7n*=pGj%R4+oOU{IyF9MbsZd~Wg3OkZAA(T@$&Km70mBLt$2 za;jttBQhZ)=*F+!H@lj5IuEV}#O~uU{3kzQ!zlKwCL33SxL(_Syz+E+6cG4CNYhp2 zbSNk;`J~2G`E%<7QKDuf##@E&GA}3jWy{uid&tJnD8mEVd?(ziF<}%1ELq@q;phrCqF

`kBX~Mut`fT; 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

$17lMEdquc4%XOpjwHg1vUIk8tqpuRt9+=R{Ll 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 QmNi%Mf*7n$V-b#6k^op^h5!Hn literal 0 HcmV?d00001 diff --git a/MikroNUC/20260531/20260531032001-Config.rsc b/MikroNUC/20260531/20260531032001-Config.rsc new file mode 100644 index 0000000..754da26 --- /dev/null +++ b/MikroNUC/20260531/20260531032001-Config.rsc @@ -0,0 +1,4790 @@ +# 2026-05-31 03:20:01 by RouterOS 7.22.1 +# system id = NmJcEM+8XAP +# +/caps-man channel +add band=2ghz-g/n extension-channel=disabled frequency=2422 name=2G-3 \ + reselect-interval=20m save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXX frequency=5660 name=5G-5660 \ + save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXXXXXX frequency=5160,5200,5280 \ + name=5G-5160-5280 reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5180 name=5G-36 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5200 name=5G-40 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5220 name=5G-44 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5240 name=5G-48 \ + reselect-interval=30m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2442 name=2G-7 \ + reselect-interval=20m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2462 name=2G-11 \ + reselect-interval=20m save-selected=yes +/interface bridge +add name=Bridge-DOC +add name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] disable-running-check=no name=ether2 +/interface veth +add address=172.18.20.6/30 container-mac-address=00:00:00:00:00:00 dhcp=no \ + gateway=172.18.20.5 gateway6="" name=docker-xray-vless-veth +add address=10.10.10.10/24 container-mac-address=5C:26:FE:05:6F:12 dhcp=no \ + gateway=10.10.10.1 gateway6="" mac-address=5C:26:FE:05:6F:11 name=veth1 +/caps-man datapath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=xs-DataPath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=DataPath +/caps-man security +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=xs-Sec +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=WPA2 +/caps-man configuration +add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ + ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ + 0,1,2,3 +add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ + installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ + ssid=vados5g tx-chains=0,1,2,3 +add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ + XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ + datapath=DataPath datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ + rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ + XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ + .skip-dfs-channels=yes country=belarus datapath=DataPath \ + datapath.client-to-client-forwarding=yes .local-forwarding=yes \ + hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ + vados5g +/disk +add slot=tmpfs tmpfs-max-size=715827882 type=tmpfs +/interface list +add include=dynamic,static name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroMIC +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=P1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +/ip pool +add name=dhcp ranges=10.30.30.150-10.30.30.200 +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=test owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#:local ScriptName [ :jobname ];\r\ + \n:local expSrc;\r\ + \n:local FileName;\r\ + \n:local FilePath;\r\ + \n:local DirPath \"tmpfs/\";\r\ + \n:global WaitForFile;\r\ + \n:global IfThenElse;\r\ + \n\r\ + \n:foreach Script in=([ /system/script find where name~\"Amster-GlobalConf\ + *\" ]) do={\r\ + \n:local ScriptVal [ /system/script/get \$Script ];\r\ + \n\r\ + \n:local expName [ (\$ScriptVal->\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\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\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:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" ||\ + \_\\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\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 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :local Script \"mod/AM-Certs-By-Ident\";\r\ + \n \r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetch \ + check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".\ + rsc\") output=user as-value ]->\"data\");\r\ + \n /system/script run \$Script;\r\ + \n :global tmpAddCerts;\r\ + \n :while ([ \$tmpAddCerts ] = true) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n :delay 1s;\r\ + \n :put \"Removing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\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/666/60128ee9\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 00:45:03 31.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 dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \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\";\r\ + \n#\r\ + \n#root.mnuc.backuper\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n#:local FetchFile AM-DOHCert.rsc\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n:global MkDir;\r\ + \n\r\ + \n:local FetchFile Binary.backup\r\ + \n:local localDir \"[usb1]/scripts/\";\r\ + \n\r\ + \n\$MkDir \$localDir;\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\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:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\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 :local 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\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$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:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes require-peer-certificate=yes +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-store=system +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/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 password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +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 +/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="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-05-28 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260531/20260531032001-Diff-Config.rsc b/MikroNUC/history/20260531/20260531032001-Diff-Config.rsc new file mode 100644 index 0000000..488d8be --- /dev/null +++ b/MikroNUC/history/20260531/20260531032001-Diff-Config.rsc @@ -0,0 +1,8 @@ +843c843 +< \n:global CommitId \"main/666/60128ee9\";\r\ +--- +> \n:global CommitId \"main/663/fee06fc8\";\r\ +846c846 +< r: root, in 00:45:03 31.05.2026.\";\r\ +--- +> r: root, in 02:10:03 30.05.2026.\";\r\ -- 2.52.0