From 659aedce00808406b6f8c4f72a1967c74e6a31a6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 19:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 19:20:03. --- .../20260430/20260430192001-Binary.backup | Bin 0 -> 361464 bytes MikroNUC/20260430/20260430192001-Config.rsc | 4158 +++++++++++++++++ .../20260430/20260430192001-Diff-Config.rsc | 57 + 3 files changed, 4215 insertions(+) create mode 100644 MikroNUC/20260430/20260430192001-Binary.backup create mode 100644 MikroNUC/20260430/20260430192001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430192001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430192001-Binary.backup b/MikroNUC/20260430/20260430192001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..56c1b20ca3096f39679432597004b0c4bc3f609f GIT binary patch literal 361464 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�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

-saC<_Ti4%_joD^% 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ИFtz`+N3EurR4cg^cF;fQ?QM>D?su1N+kw*rH zDf6BMP6Bo{gMJPrQ$)5*ui1wMvD$g}XuU<9W6(kGC5o52(Iji4(peog&ygNL*hB{~Y5(4XvV=wQ3sntR7>t-D`EY-@Z4NOyz4~8!7Mj>;A zh)SS`kTVdn1J-ajqdH+VAYuksoQTlIE=#p(6#> zUaoH&cc=*w;27@F>*z@op;>g`a*;GV&eyU74O({SNiXjPHLeJZBb{O( zA5ho#_!mXQE{PJ(N9{6?m=PP7=Fp?m=TO>NWim`k0w;T|s_q(j0AlQLkNx8L1RC&*x?qb`y6k zeLK1|02~Q6J|)@2ET*FT>wAWV-z3ZG1KeE{cv;{|+14h^7^>1kd!t%D^8@f@3E54s zPUD6OJncc8P|1@aRsuvjJ6I24c$>{>E6zM4wmw<0jOrtm!e8UVL*Bt~W0`fdV0Vea zK8Al6p{QXdoF)~h#y694hT-yA_t3oBO1B)|$YD+3@QLzUA&PG3AntzvrapJU?3{2- z$(zkk%AU`|#G$|rY^79luZ73?VrnI%ieYVcjQzG)<)yUWf*WMX0K=0~xm<=JVMVN*o z4jRGq`nb{1$5dgQ#4UU2m<wSBv6l1YhOqLpzfV z3HWx-+7+5Hl~6s990Kh=9EbuS)}JmTnxwQJsh6+6XfrSyoy`w?bQx7AwVGWqV(0X# zy|ZUun#(0Ws~o?d3Q=!F#g5X%l#P`b7ewE&OS}RbW@ov_lr3@l(XvkcqVwSw>Ebx8 ztAJ}-$wTQHC&W3ABpM2nh@agn71?T^dA;&5R!^vrLeb|1-~Bg$gjt&apVy+1?uPZ4 z&*QKQJRG}d@pnzhq|t1{Zj6k*J4~BZkC_J8^ifFfy1-tVETs#N^9w~;KNm$AcV*I)y`|MJW%8rg%@Qg1S{;X0Ku@hu7Y_^O zuk{pgXmt{sT({a-la3;?$is8Ou#)5H-@)35{v!juB``IEEm@t%5)XHhln$vH$TY%l z_Oq{9p(y4(jJlp~xb)2ZM9u_pUw{{7r-Y%GcS*wEiJ?8dcdXS_KE2UL8g7wLU!G@J zn@3PWpS!YwlVuRQZ6+=(dqAW}%wowD+RChB>q@Q}(9es@%=uPEH&_H~RPBzAbn_3= zR>Fr+q6}pLgivb)bjCjQttv{mAK;8JFj9~!Z1p5`!$g`8-n zK0Gr`O+XSP*o?fnS-qy(R`)P(f|Xtk0{i;!p8pDN7OKjNKvokjjOD0kMmoq{N5b$` zur8@-S6Kj$QL=4KO4XgxbZ$;9htE!4k$qA8pM%q(htlt@7oxtN47`G)(K z5OYbrpY+u-XKs*t>g9Pn_>^JS2pLB4?cK?SzHo30!sViB124JK%dmX*GoL&1SXCQh zgZ544tep4t!s}8HSz(gE&Tqp{X-E^GmY_Q#wnp=tp|Z@OFn#8X*BM1{?x6S`C>JMB zOUSkzvXm6@^vu-+`>eZba7BQb+A+@T7`V$Mwl*a*eAy{eY}c6SH=_3%AeTe3458IV z7TR|)>;*U6NT`WrW2r?wgK{YgmbG&yU z8-yvarQ4HRL;9+J;h0hTFoMEZhhkl8T?JwLCbjN46!>Tc|2-@%0=SiJJ!oVkahZk? zu6-`5s>y?G378yg&#uGRsw12w2@i`7%b!k2iTB;%=jww^==LJF{@o%Q*|;+FDtTmr z?O)U*I*OAb$0+Wvt_9Y$`%7VGmqH)Tw>S|6d=G0XW4V{{K@2z-)xA!eNwVOsPfPt+ zj#OT$>ETJE@xEOaY15%mhABy%XE|Wy*hcXhNjwhpoK%fr>@g@t;`I^{Qi`zyUI^m` z0>S;6ZpR|f%A_xVia)Nc!Ist2=iU`W^pp;oy-{WVykx-$Y}W$}6U+NJ@;=!x5zQmE z_p^MdN#2RRW7?NxVFgf1E7w&_|C|->Jg=`^KC=bJol3kAMU*j(ykw7I zCkV6^F|ajamFyS(hYJ-JPb7?Gsx(Z;6I!&z-otUz`?%%R{bm#EI?}BINBU^ptnzJp7GWK& zKWk7BHvNxpIdq$p6p0bQ_1r$P9lEYgnDS3K+Re3tRNlO z#Q_rZya>I{rFO`0YtyLYhqk-Zxl!BYX8Ac%1TVk-U?L;^9ar?N=Dg_vvodzA*$vgY z9Ypi@jb?G}RGTYwvBxIJaWxL);%J379K=02ug%F~fkYsG6XzJ4xciv;6k&X4VSca|F;o!-DY@gC;Qf3} zLzq&lXlXYJSDrJkD#`hkdD`$?fc8fz)Z;xL z8GjpUNk5bIj8NQ#cv!Oek~jk+Sn?!KCLNGo3l<5cfFx{|^B^n<{b|X&NioaR6RuuT zQI1iApgK~l!Ljd6H4lgvY9#{Csj!;c4^kFPq7;Tf7icXPMo_1NL^xbCNbFG)nHPZhltOu*4XT9?NKmS5SZo*4gxP4;L3b|9BW z4FUQNIBO@7D2Z^xZZBh-IY|JcAkPHQCJ`SZiqr&$r*S$A%Zt}0g&Y*-eEUo-C!!oN z0C@)Vw}5FlnSRAxnvnuW`!o2|l*V6O$`t(0upk$wig8sXcI?QRog6Y!kJN~%Ba0KLpe2Uul5ov z<=>$-mij^Ip1b?R%>=z4VsH7xc}DX3xWj+$i#(aB@QIICOa*ymM~} z!&709z;#wlaL}{M4;h*ou(GzuSeYEc9w;ELLH)+5(yt+Sf7`u7x>r7oh2;wKu1Voq zPteSq|1)sCXw?IO<}M&8YL&lPPdk#C{Am25%HdI;qxMZT7O@}&5pe%oI5OPEzWF2hJWstHTXz7rKIk4d)Pt?va@+-pxT z-Uw*xlDLW2AwX!Zzh+jmRkgPRv6ht=-aX9$wNIusH5;Gh?^9X=r5IFA^M1`5Cdr?7 zQq$aBG8hMGLKYhSX%3)yrO-a$JYObfi^G%1koSsi8hk$6NZlHIui=*Y%EWt*%1%D6 zT!1<< zTp*2&YNBMn>j4_i9a#2E?V-OWOSO=&6f`W+<$VD5|)tBEQdsAmD#0Mw8k)SC@Uh9 zky8`^m*MwtPNY+Dw$V9e#oP#;$0Ni;tvPK#*2W1WW!oc!vsQck8fjMRazPdQoXtz< zT4Kc1Y)K26E}XwKXFtJYH$f=#b!Rhy`YcC>Wiw$69>|O5a4EHbe2ZHl*wyd$sm?Yarubj_ zC^Jbm*L0b6rnY9>{&1(ziEF~FfS&-sY;G8T-?r5N-q|u8`#NfDoJ&;aW^Of^+OF{5 z6-KhZqTT9YZ3|yhJ1}nyW_poRtnD~bwE|SDH@qb{-|9+s%u&BjMS->q+aL9q${%5y zn#u4eEXleO#(2{ z5pZGqMDD4kve2fLJHh^sVj*VFNX5FZV?*3e6R{v{rKyIj@aQJ+-f48uSOjiURPl0I}pcCTchst z!;l{qEi4DX^Ex~>*qI=kL33L}qa^tm7XyKsr^NpV6?Z~*!Yd}N@Ei2-`$e-KO}Q@5 z>rNrm5J!j{k7ii?DhlbC`0zHljM~W*qPnlYmaQLcE5>{94A~?G60l_6GmMxng7_ae zuwUKL*TXIr`^rT7VX~|X zo?|a|_#7$b4r}q3In0!dRe3klu7q(=-%(Fi!*HM*#~Y)USTu?V{e#GW#is$~nH!|J#|?IWW(xa(ssl2h-I&nRhu3V z<`a~;;KrIx?{fs;Gc>v6`R|ioi8OKBO#jR^6!GKfaIwt$DFLUEdwah#WkZ@=3*}!c zy+b1)z1Y(RE$P69&oc-8Ft zQ%mK-HK=)#x3da&kLZZ(5#rqycwHo=B?Rok959%=XsGWVpJcf6tk9@o6%0a8^@?X2 z2tuR9kw7d?z%8&6e*lMXjr?E&dy*(pps@k}>GtzKuzOehyiD!{g~=;T)YNf@H72`l zC+OQyOM&RQ_4k9t!rKl|ml*48a_DD`&r`-!g&^(&b_)bvTJ(1ApiRnz_A#Uf&ATa; zSeQ&_Kac)m{93cAoMJU~TeKd6t`B{ya>56r4RLh_wa+E2!>C=0!Fd;a&0{%Rws#n^ zO}$eUp5SrB!soU>r~}Xv#%SO@IL17M5h)nqt!nE}bL{D3raWp5ZUh=VII6^Xz&DTe zd+g1ks`oWMkz5XZ&hBr7By?uyIt;FozUC?E3UKS!4-s)1WRe$Qd$|ogKTkDF`|>5n zpOqLuIji1yxmBk$rrQE%H7ZCO52;hVB@(=S!HGh)@cP%%UXxuMuV@&^2sT zsp!erox4A)I^&LaM29s@dA@tzb`DHLyn_pFHH~zJI1N3qaRyw_RjbRmYt3?T*@U*h zZCK@}2sh}@#~mhN&Sb{>rKX?^hNC1v{_;@;@r9(RAXc-~#>ukgf!-((z!Ya)tkgjzFuIrM&-dP3#hP7z@YdfO`25VzR`T zYYVD=DlHI1@nR+fO%d* zleNP@7T22#4C{zPy%(3&&5jS3d(C<}^wXo+ZUhMeeDo*g5W6A=-@bL%UvrTK*)jz& zy9w{?m!S>VT=UL*DODm^)1 z3H1Gl+;FU1)?hq-?aOV>PIwoQ4Ri)#QD$r95_DjqURa1cJl`F62)rE1Lh(-YNC(Q= zh5*>L7-iH;2<3Nqb=+x2so|5WfWVoi=(gFl8NU2Afb8O^Eggfw9v{7xs2j^AmYvq& zfX zmi}=sMo}6hCTvnO!$A~57z~sKYHu3WrR)y%$4iHUIMA6f!7+|+NYpM~uZaVwYgOrQ zl3vXgr=6kGZ|I6qGvI0;B|)Vx8=k&w)bJOK=>WtjZL@8+KAv5tDeF`GbWOPH`?kN_ zeap^&We(1>fKW|arqa}_um)+M)NCyZEZn+gL)XG8fOZ{{_Gh#Z(xT%tt0;$^6}IG) zAa8gqlHf4QK<>OLl-~@^j6=OEvNO|K{Z&aVQoj7ADOQ?ivL3hkvjt%0IaKZsULZk!B)*({!nTX^J0J*IF8P9liK-vf& z{Xyj|q!pK)K^-}p#C5)lzZ+>~{XZp5s72;^-ou|}Dg_u;Yf~>$%1C%;*`GllECq7y zizH3~{oEdc0U|5kN8smql*_Svu`x%#n(4a%!N7lq*{UR8bU!wQL5-EaI{mhI#cWei z-$o2V+Gguh_mS4bG&9$8RNr32nU&%dXHN^&B-MUXNz@%|z~B~2HF~nc_d4eQcuc3p z@kv0U6F4^{!+6nf1%7EiuG#cV1~|__-2NWg5@3^x=DQM-8z_sRO%_Qc(8QsGNx+*j zV$|-yu9HoZ=r$)ei7!wn@`UNRG4CF5GB>YK$(hOR>=`VUwsLNxpFVmRUrLZ4(kxEH zHa{c!{i%gj#aSUQC0OHLt@e#{CCi;|OtfOdZD>q#A{r($CdT6LIu|MX#8yYiD|%>& z6`Bnfg<1Zeid$sZ9_m6m5B?(sFH_%He(#4r zuHkwvl<9)e*JrfEWXb#BnPuNJEZj2JC4VM|dkok!XOst#45u+?)p%<@c-hogZ|7|L zVf#BavZDJDJqKh}RgF?(4cOX*+N7_f;>jO07_iDZ8q>5!(g}EYv4yc_eMc-4e8y@E! zq8l4mlLXA4Ft70U1DXRUeprTu6m)O_9tv4T(HZc6=Ly zQ}x*fJpEAbZ@50?G7ucx6-JNmcCM|1?HKKRlZ|$1h`s$!izYGoIX~NNXZBe;lHPIX z(VAG398V4(SKXC8uwH*|Cb7=nYnE)R5eUaR0#EU{<(dc$ zkmEb+I@X*?>Q(y%0MQcJLa6c`MHR&8lwTV%54z-Rk+dI1NB@p8oV5ud0ZrwjZPsUg z^Xo3hCsKMe?MKUdnh}19w@%Ml46dvzoK_hdpojVFlAE5x?54v1=!peKWB|2^9-zy! zN4&w>f@u?O9cH5b>l5cEcDAQtt*iRSa{17DDxo* z7-Tk!0Hxfxev+(Tc%ug)d8bI4s86RdfiX-IwkBj!|D1J_1hgO65Y)!N{VUj$Es_Z6 zvuw;>E}4?D__uTCzJ<^Z6L6w$x=czLRAbeD0xR0Zk9uM2g=l25V?P0r>k(r0OSwG? zr9Z=*tSIYwZ31S2O*mxb$&~5uq}#Pn-Jqimkmzi*%^(s=1&&w?G{!D^)qH{rZn{^J zg>h+{JLPrK_{pZBBecJ|k_P6I>A&Zlgy=Xm{8dt(;<*Z{+`1-(X@sqkWp}mDtb}bi zkbym~@gCAOc{eu0Ib<_i{#QT8Pz&$-2XVUA-{sP85u3}C-o$9oQQ(w#xQ0tqOxEW0-*R3^+kQ?dg;B2U zYC{AtuBA}^cvJc0mSz8&(xWIJ-u(>;8&aF@+Ug12t=7j5I;N%IQO&sU0sFm;_{oT` z-mXJ8mkdEp%*8j-f4u?2`77?ur47IH4h^u`Tb9ig{@3f^zCmU@o1{H#6}YGBo-=^j z`7xmEXb!Dg)hmO)Rf|;HgHk@kD4W0YPlnR2<3Js%Bwj{1yQfq((I%*5i!Qdkjwa$% zODE{^m-T*H!9#5$|D69U%G=bll(3c+WPi|udnHd)1>PxnW9j+QZGh-XjBJ$TX73H_7t@u_M`{AZrpq9SfHKiDo?#bQjKKCvn+56<#cJ_+VxSc4Z1XOXXT1-ClVEvqu@zm@ovE+7bH!D9bY7-b8pYEsZ}FP ziSs4+L`ybaf-2QVleF%}D!!7|sw;V5X8V*1uR4yR<#JaIHqmJddW zNlS_V#@s0Wc&SbEFKo-kNFRPmiZ)Gh&t`j5%&|rR&-nQEV}KNg0fX=50VvN;|Ac3V zxiMG~1&)4ZUPHK)4}bH9zi)zVLu;T%n8q|#RcC+|S@cC8xPv}4RW+luBoR$Fz*OBI zL8vNG`YHuBDg<~+C|+f*nX@SA{fcwxFk_74+DYZzGk$icvG1RZ^2rR-;tJlv za4;p7GuGxkQsdSRLAO5w6H^J<_*1tYHZLcmcv7W{zuh`E#`!688Jo^Nf&Q{`T$Oab za|^U~?fCYL9=`V-FDizh9NxZ>_;f~m3a|j(qs1@yk%Isb-7e({t6BNR5sQVhqRL_o z3yOn}!Mmir2QxkXL#fzLA`XVZCGez8kneZiHg_2eaV?qc4qX=Ac;yn4HmS?;sdFs4DqzTm>@Yk$o`QoCO-V(B=uZ6^r_sY%HY=R>#NmEZnkti4WqND}|j&2R0lPb*sL@17y7 zk=qo}eB>CDZla0GkD+n-`hgG7vK+f-POxtt4iV~kb(dof6dLuSI(|d~GoBb6zt~$3+q&h_N z{N@>~71u*99;!Cy35ahAj>}Y)4s3(#a4_#SeN38 zvIr4`9hVGK`wz0h8U(osaRus>M!IYc-1u5qdx&22Y@fgt^`$~#h7?KYv}pMPl0I7U z><%hz%^e|5&<{;J$9kadBCR$lm**R3=fck4`u5<|On^}f4+IpHBn1948C!DBa>d$? zK{1&Mq7RE-*A_t6sqy^UJRyFn{I#2#;x%6Lu^7nrE~d|sw%zbsGO%Dt);=N1S`%sr zSI=Ob*`097g>_;i?pA}$2_dylv9H;JUq(>M+S8$T2*3CWF;o=HiubfhN2yUb1+Yn^ z4f7N2?_n^+VW8d+4g_i$T=sRZ0DM`yGh0mZrXcbKAgZ-~hEqY1An-0)jzx{)22JI2 zvPS+Q`{$!^NN)YOSG_m@t9@|AV}cH1r^IgS^L2YL*nSh%i}!or)*Iv!`u2>sa`NKF zuPXEFtick$sXeuY4c8kX{jkwWy22e|)eDp_MtrD=R}!h& z0$gROR=ZnG-XM4>E-5IL(42Iono4qbge4E*28?ZMw%4rp=%aDx|IHQ6Za6Plb1E#v z1Uut#UOR44!^KWMXu@UN$(dtFm0*)Ad1H5x44mJsJS3a$cwEExnRVs2^UPame(ZLLl`1_GKBwqvNPB>&hiQ{|z9&^r`e60rpsT&O z0O!V`?+-t?=vZbpuSj^Zvr<9wS^S5V1V|z-boU||yaD8Of*Y0pM%r-9XHh_m#gvd6 z?}l|uN8EG~+O^P7l&=^@nU1~-HlF*msf*W)YB}nH{5V*m-+}?de{Ggxb7lwenU5fq zJ;o?FneLBSdD3rNmDnzJ)>DIrxS_2mKCTgF2$tt*ZJu?T8LX9O=uo`Lpm)+R(oKhxf~!BR>;ldwcswhovp(bj`d!7gWz(o3JB+ zw>@M6OK6!Amj~0kGR%gA_Y=lCAzf^KkNIelus{I76#t032a@Ux{hNUC@Ami!#KQ6K z{Exu)8*l|+|8ygmiT4$c%oKypA;u6(mJHJZc>??NVw_k!tIJ;aLNp}DJs7~zI{MbQ z*d++HIwI8O{D>L31{GFNE*Y2Tf(rq#LV}GxI{c6#5ND;!8`jM7yQ*0$jP;Bqh){4O(! zD{H+1l6F7Pgx16A@9PsyfQC(QhxLdMOzGtRs5dcRut^&5681e(fKSG;y(lu7kNd9- za0K%6-;nlWH-S3)YPafmjT%<#{0u?Qa(R9)vnds<`5m*YaY1 zNQ%pb21f5Wuh4ggm?zB=y}w8+u^lYdzmaL1Gnh7fM_ITqf+#i3;VLCHu(N+dE!w^t z>f5(ZeM25N+xsGC=%CVWP|{HCiwcZQ!@^}>6sMgzPd?!R{w^M2DUmxA2okb!u03i`?rbINah_!BGKV?xE5n)oruD@P zg_5pWt1l=DTvXF+BM7Ip^Xc%LguYLe_|)IMk?Wk(WT2!tp$q#Qo;p;BLjz{}vxWdE zWl4d#9G)TRNR`M)Y1a{Q3XV<3)Ve?##dgQ)WJWk-SdKxmDe9`aEU0u(8SyxJ!Vr#? z-GY$K$-c3Hr<55n6B%C!C@%fmY%!^?5EB9m?^yIJZP7}+99uXI7ZhIMZ7RhSkfKAV zyG;yyZ``YZ?LEB5{aCfQ6^r4v6hO^A$g8wU=o0VR(h2>d0Io#hND;3EIep|C;=0Wl z$L0gvl5S=Tb7n!EPhI2l~3bK(_ zPc4Zn=7K#+S74;31>nHY_gmPMD7Fljc?u|b3;#50C+LUSE(BEeFYovK`mWXbWDAyH zU8K*ngUePJkUgucR6yx#20Oh|bsXN(Wa-nMJC?G%N8#ud- z1#+*cr+lJN6!rwTY(CK}%x7>!rFin6)PQ&r4#p|fkiSz3(nboU9asuUf*B)FOPeW5 zp6s|MNSgae7g>%Y#P~oD|7I3ex6x$8rU>~keT_o6V$#Z4*I?apKOLUvL>mp_<(Ow& z=&Lf9Mwfixm58&Hojx?&rdtHI@gZ5D2ai#0Jghzp&5{WtqzUI!t^Pc2;ENZAjI1Fc z2?rS7!0)BhJ>d2CnA;>o^qeQMeoq2B7?|1inV#;A$M8nQ03;%LbsMKvg!z~(x%Jp9 zDxFnN06y}Hb584d8*~iN1ZUW}HvFP6eb~|W_|20w2P_Nfw`n>EKc$Z9PTmVNGiiLw z^MmA7qu>zCdfOLh$i6F^_=DOTiq%3ZEesh4FwnZEjYJIQGVl&#Et>K9uCo^9tS1{n|@=J zMj5Vv>m8;oOTQngN#`G1M@Q87(Du$+ufjz_M!woqpZf*6>;fCFHgHkHJh+fhK%qFI ztAeMt>_W-7ib5KzqR%)Z6Qyr588zC=o#6z&z<4V-LVM?rlIe`8JbEz0Wu&FuSU^Py z7K8#BV-dy}R@98C&tFOo8UFv%6N7A!S2H9&k-Ih7NrlA;%^jMyW6FJhidM*s3(B}* z%(Y@^{dU%g45Dm_r2fNt+cN_t6C7mK`Q(r?G6PekNY>?Yl#0QEqeCfX&9P`r*c$A> z5k5=*EN+R2Q+jypv+2)g2>xrO!2uv{s4Ze{CBMY_04^-pDsf+&ZleHg&2G++X$E9t z*g1n<_Bh6c1N+IJ16giO(kVb?Om$$uh}p^D*aQ?suxbGD!9DPq{z~Ozj4D=Lyk+NZ zoRW#@DOxpLQ1)!?%@H z>_rxHk)SUk0lBKwfkKhFGcj~dneAg@`tkJp*kM9cX(u|aLbHU(oJB+*y5%quLRzXq za=GRKB|mPq>9oOvr+fb*9~HhX?b?coXZk8$L~R5WZnS8QnZc$^#)DAWsfm=OU+*|MH1-)ju1^V2f5uPNv^l#VpL#wU_5L%PW34SRx4 zOABmLOn?JNnOje8$ocIsp-0%pM#5&_=HWyune2`R!stZpLAfoxQ0&YRi`ZwK-J88o znLuTT2pgcM{_2gSk&ici-@)EH2e2m%m!|olajL7Irgaq{X)~S29HR@rj|odP!K(!C zORvhgOaxBaBHGLjh_wclw~JU>Bqul1BjCJfHm&Ve^i z+>9_`J#T_4M&~nijpfaGAMsF$pp-%DdED`M(|A0Ga_$_HF>J1*CZ!e^)hL0DhDg14 zOS@G)?Doq`!g@BQ1iHT@b~UV`tIy9qR;7de%Uf_@i+(>m110 zhUx}sbm(QQ@Wl?gu-X>oH!Nq68bF;Xmy9s*n6GR@zjv-q{#XA(xz_ddK1dlWZ)Pi7 zK$AuO4x3VsTq^lhMr)QxnSyC|=@nbPQEhfgn~&0UB0EpdMhU;f30!6M)Y)Gg+0slH ztyJPS1*4O=vL$JQixayP&e~yR=?0hFcBdoNf;mn)00%v{-wW z4Uee+t2?_5)YyTo(y=16mM;x;;?_>8q&bq1_7;1d@`oU5OTF{N2J9)oaJDXO;45Yb zUK&Ou-8iHY{K0I!5MJJ1;tfY#LUeCz@7x~>nkY7)cM+Wo>_>KV2G{xEyxHzlsrISb ziAGcDd(vU+IM;!6CGPq|q?-X7PLeV_D>z@5!sJhPi@lg8oBdIVE}Ot4rU#JEvaTifP5!GPyC^QxZ-ZPDfI z7;38;+-#8QFR7t03!c}Xg#IDW$`n!+`D27TJC)w%zi@bJC&uCbIft$HY=~mIqY)`g zs(8REh%NK1GzT;L2;&K-M(K(vVO*?!H>v_GjT76TxLBz>O=JFF&1A4WZ#4FI1Sp8% z0sl_}r3P6B+2#kkId+D=FKK#@Jw73ncLP*Pms%;bCchQgb2*wEIboX|_0=j;Hyf`18nZB#sPOZo>Nu<5^4{w1jzJN$Ko_eFr~cxd|6=Uxw>aLjlm9E!Ih zQ;%A)lY5czmA$AIQHx{9Y85*GH4Mh7JCQ4CS#AXLtdpS#wfV@Bv@w){ALxMCA%faH zX}Csf+a|_*zg)*$51BL|0Py0L&|^M_-!ZXRBF>j%m<)%pFZt>n!{F=eKj<|7nh?$3 z@{#uR_IlnP+J;Pm(F32@d4?kt9NLyEG6aB5L@ECBWC`M5mZw+!udaq^M_zp8 zZn|Ik%4Llur56=?hX0r!!DMbVUJ4(JsM2-ijLMExlu>%-?b|->VODTcifTHcZ~&d$ zt+;^tVeGDA>NFDsfv~JrNL4Y`^oQbY?VnpPy5zYpFa;eWXM4B~+}KTO=@T{NO4TQ6zQy@oD!scaMsd^L0rQNrBB z-@Xx(&Fv(TT&BpTaz@MP}vKlUu8|{xX9*_WM<-V{jlJJ(AZ1T2s|Ht(HrJmZZ z(E7izNlqRf$Ib8Y7|-;7Lia=^lItE=f^I!YFw#k`?mUNZrOJ69)^jw*Ahby*w0TAsH69Oo-c55h>XF+BVzBsx z(6FwOG8nCz_7{6DKZS;|yf6@fiMCs}D8g1wC;(%Tq5zaBz{@+QY1ToDJ!xj?w`h0D zBNVlnwN!n2A{4nB<4+)adkwctEpw>;{=ALde->M4&9U+kZzYid**WG|a1K zgCpXKZqFop{}q|tJ(*H-L*aP;Qcygq77^RwM=}p5JRrznVRUOis>d3gOrj7@Ri=c> zYoKMl3I3@#C@>dfDBfgCR)XHE{F8=CQ+#ZJ2n5IL+M_(cn?Dd;O)l#iR!~{<)#%O%5Rv@G0(w&zv8@$YJy2k^^~k8M%o0sUl%k zKl{(|B-m3g43SnxI%Q&BbJW>S!5s33DOGQqJyVi(=PHd1iQ|A$K`1BE))P93fKt8N*u9a4K0k9&Mt#j+N_7dV(5waFV1>A8)gJYL& z^XFLbaU)VO-zUek!%e`YDfG)IssA1kafzz_f{G(}&$H2muH#*RI80bw+)M1qyM#cJ zZbmPjH}jsa(dd#mnSkEfI(=1-1Xhj_Jm^r=T?+^z!a}ta9AYAJ5#uCfGdMXCsR;)2 zShSduSQ|opmJ$1r^%zS94eI4|n2C*`|4sqipV?>qsk`~LJbw`Y4hFW33tQ2_iww-W zX;o~1s9NT{dLOvpIY!=u92X;ZQ^rye=7w0_ZJB~pM{E@yXAa`Mg-^^6=t3E7H!)cjrDG}pzdazF9^|0GFsCxqt`e9K$WAP4bblBBiPI~4ovq^B7(^6WKz zA<{ry!a+=_8T$_to6-Y0)j9@S^eZ<`-a8$)ERxml%k3H%8wGG#1l%Y82UMKGLPWF; z*gJpL{JW>rjU!S|Ur}tjT!jt8W&Kf0u$)AWC#z$~rgyospz7A=Yytab5UFlnGq(FE}PRm&t*N!jzszmp5p3DBAoV-YVvaE}xVaK=sWGGyx+LU@9Ij+uA+ zCqCT2Z%b4eK6-H$Afkt-Am#KY-S-=*v z9txbaEY7_1X{b`DL+eNzSA6^>=*j(ZpDraHpVLcQoQE+#FueY1-4=@^AKs|GHk<84 zU5`6yy7=9+VhW=TR}p29N%yTto+4CE^-@r)qxswQ@@{-IA?5Z{6@3Mlv7%cQLWr)b z!~FN03$p7|81b*3#2T6&SlZc55B-9bC3 zYiqquh7j^T7}?&wLPgVo7m2}2OeJqpt{>AnlVvLZ<2)pgA=NXT{0^+um8mO09y>Ph za#zxd(Qw~}hGsOkiI56)#JZz9_W}k(tCo%QF3AYUgJyYESI+yC!C11RHR1I^T z0sD(xXDlQ6NPW$k2juUVT@a^IDy4^W+0~9YA zOEJICDISVRg=IJag-iGIn+nI|i&czVyapeb;O&u2l_cUlFq(w}v_T(J_f~cyK=VA7 zP##Ib*|YRaFT{)rz=qQl4S&D62?$-X2VXJn?%9|Ek<%1=0oj8>$13CFflTH3cVl98 z?ZW`Zxa|ZEF?Ea&LXAL%nxle6=zA(LBzz_NCg)ff(q;PD8!DBzo`AiLMW_PM#&px; zm8`WKVlFMU)dL~!j&o!aU^?Aszo;+6@fCB?0gb#`BQhCC{+YDGk2tUqo7QOiq=VOK zz*MY4no+Y0K%s$WyTqo!S?@;S$8*y9#PnQ5rLMdSJ zc)RR4lv^1Fr5WRh(H2&GV{c zC79VyRa3FglSkBlU)WT!$eeq-wy$Gjum8(pjuc4cdOM5e7rd%h`oL_2s8OlIAt`@; z6SLp=lg?~!&lcc@M9bm?ABAc*_^v zq`TESH|exy!eyMR+7 z9?8u=S9jM$p=nz!sq~uLXA`XEkS6nop^3G`;@Jzb1V^}~v1v!MS^{Z4I_&3k@&IJ$ z-k5@3US@$A9jk1KoqF;u@f&|)lJ|F_Hx6e4Klr2h?(e(Vd3uF1RgBY;wAGbSq@g*s?FDQ;S4$r>FK?@nq21@OmST!=u<%S z6c-}#31;nGzlz5aG`8?#X!ujK1ZTL{fe(S6`dX4MYC944B_)@T&xKI2cl`aGAnl~q1fjbnt8N39xm0E(OpxeZ5ER( z8khAY?W?lRHIvw3js&$6{U&TAfG`{neefQ>kA5=*C=ke+mRZg02AK4q+ynxv4a$o^ zVA4V{Of|KCE5sMg>ftv9<_55h!bI0#h|jfmRStWzB(yUvV2uUaR_WmaI`Rm{=o)t}23n#mzHPdYT93PsN0-KOg;J9Y&5Dz2m`r^%H0 zhJbx9=}Ry@j^Z_UN?&y?urS*-tvZZbiFvG=r$9>Bh@?X_jYhM_L}ozP!2}rNlog;m z+7zt>mJJt#rIi#SVz(bzN>hA0+oVL|Qe0hTkH+NnGG1g42RJRM=Scw7Xgc^%{9<9j0i!R#Jz~`Bc6mRA)#Wk_OD>n z@3zVvK86~|*yycdj8b4&!0w0(o<1~tXw%bPY1GYrJXSxYJXziUD9qFJmxqR~|E{p5 z7W{5ZOC4rV@3jc7w_jJa7e$m6DoJShJY>L8?qOKC8Yl_ydMqfnl|H?T-L!+?4V&%P zj8vskh246}hT$X&kBowQyq{ zD&ikF_)EliBqkX zbIteddCSY41E#y!rkbNBB^kfaL6R4FkOwF}Y{ytLnYgTXRNrYp$87z;ITc6is#zF3z|_abOj&BcP~w@AsTl;-biDFC zNit<{FD}4nhfy>ox3=O~4>K9oI>iBX#s+QuRB@aLUI$h6ZZw#3BetW1vypsYCXHME zx7uLzN0Jv|N7%>a&y|)V>(Ip={!xTuI+Qgd0P!FjOG*UD)jQM|;v1TZsrJP=+nWhM z1IoN8==uliF$c&~t{LZ_ZZ#^F*DSR&CoB)TWiBO?((oCDa<(wovK1*01$~yEM ziMB5QJgy(;{&sqeHIi2&B~?~JQEtl?Q}jS3KzB7X0mDS6Wh7;N+zz7M*f4MS$(nmCcNe(S${X5hHVbPB$&06?$we)K5b zG(`ibqq?5^%qiQy1Ar}+HpG1|)244KqGNy3yP>HC*N_*T$@xsWy#g$^QUw9pg9cZuTKX z)a6jN2~uFTI;@X7deaNNeN%JBw++%sJhGA9l#2ev;~X|-AGgN_t{=B$(e=Xj`MhjW zd(3{HGD`VSD9v1M|58{U8jzh+T~+H)T(;3CZ1aWeIp!<-9gNA8fE}$!RFu`ZMMJY=sFa@e-OJ)n^=N$XAkr)JNR5%ViPB(*#=oDFomLklhdUUj ztqAT-P#p=N5rB=R2F9=^oCT<}cjVQastRwoFbyvQci_X77#2^?Z>p=f##>Z+6(^~s zy^zAa>he#nD-WI^+&Z6}6Cz^XO6A@(W_{% z+=X0QzUkjyJf!@7Y~EQ}H=#X?6N<7CN^gA_g|EhK*M#wFdE8N9{TZ1v72P2&#|I5U z9de!}lZsC#_SH3Sx0ek`A5?Rl|DE*O4Kzh#LH}qmAaHC4mF&X}N&Ihe44Y@F7x{xu z1dhuJ#CL*iT+-p~DTt1o^?{zvbq$4Ac%^~E0D=H{pUba*KRfPQW?7(nH59Yle-@LZ zseo*KAM7VHDic!#ejSCXqRF71j-8eIUDkCm4^HSz3~v|da6gW~MLJ-5cuqJ~?DlfG z1ZfsYB2b2<3%Kx4!p@#2Eq&6@ClTExGBbh46oP<#0$)9#Q=lL+97C#s#@&N%fLV!) zN}GWx@WVwc_wx~=i@kUs9^kw4H^ZYG`wq&oyVp%3(-3nuvn?P6<@j`#%wyyq1;E~F^LU;m+MK@C z(4i!NGOxt=oH2#RznrtHz&EUWKfX|c(HKbQ1qP4sgQ7mgR|RWC4H=m;_n~Qgr3?fp z_o)!_{6*~9 z)PyFmiFtbwnqr_2K{z07%p%%iRyu`Fns#nhesSFjc3?G)tT`e~*7KivoGhHVGJNS3 zmF1D5XXs*Ne7z{8tRs!b0BS9f$-=Bv?6vueUK}Q~3W|WcyCDJ6fqvCxt(}byvBLF< z_GN)$%EXpuNyh}h@Y6cSXy9o{ zs?f73y^jkAl#+mnz|jJmZeYfK^WVxu0zK5y=`+AI6O1_dBSUGaccED%d)ndh60VzE z3m|>V+YIQ*lJumrG zjv8KJ>Nvd$mmQJ0rr=NdJVk{5a?Gc6rAl?Qb`Y(2%F;qeW;05GQ?8LT@~56-dmkXt zPnu{c^Xy`=ra5+bQVlHcBe&9wZtmzHw6ug$+rc5MRwyJd1#7%#3%2ODi0A zRM9;p?(p;kZ}OJ|O1d$6pEQ7=;t5#ZZk#j5+p_gEj1ZM3nVe7*biVSiZgH&qD1(6e z=>{vlt{s8KvI9Q(3q?a4 zCP?&UJEj*MLQCZ#LuoZBm|s-^*%&(HtI+88$^TEtuA+pNb3Lr7%grs+(pIL*;-Gqx zW4FzOgI>1h(y%M%F;y2t2ZLH_N(g$j2d34E7v)+DuNPWC=T_*=c{8HfaR z8l*cD8Z>y&=RIWc8vT+zJ`8=uMUGKhBpboYb=T5gy$^0Aw$jLJK8JFZl*}u_HW!YK zO=R?7fk?_^zb6xQGq{vnqm979JCBJc!iX-KAsV*ALW;?)>wH=}Po$&z#UvT7NJ5_# zn~A~Ky-6uc$Eb?Thn=FP}TS=okXVW z2RCb6zde$dgZLK9yM)>85*gexFSIiN{VDNY4~#}sF7o6TVbFM!MxKwAyQ+)j1`hLMCoplcKPZ+NlpPx0NIL$4+p4DW^kO2+h3qAhS&$!M=5(r$+c zy1OQ(+}kFBlg^^NO=i*9`OvL_J<;q3YKknSps6a*&)xZ#Ee_A5qThaXmfCjq6ab!X zoAC8>fn~kr7uYDtlu%gvXSVRV!T3_a&ALWup(G_ak>TEcZZqC|vKhLN2HZGG*U%jk z+`Zd|nD4b5N9PuhV9LU+Tqn$hg ziFWFEF;C#wf5U_`1W9$!G$tSdL1b%-3nq;(K@EhiLK$Z5y{^_&`NUB@osrGy@f(qk z`DPE|)2?SPb0n~wI-w9PFB0-Vzw!HAehTbkif@Pd`>_)iiSX8Q85Bli;+|T>D$*H5 zI;Yh=k%hc@4rCh%$*}s%%YTF;AKwF{&KoPd{BE*XZ@6-=AOXbV1^2_r)){7qUApX7 zE!!874Ea?Q=;Tih)-(O^%G9hqR`WE~S&Z+3I)10C)-vbKKax10Ovbflsbn-3)O!#Q zgYmk&zbO9AU8ivb7tR4<#igQ^3+zaS}P_d?OXk||UV~4=C z+$wUBdilh{<{oYnRegb)l|U53qIYI(e4ow%*ZTsf494((r3uDk z>Q_6@?X~2I<5pm+aObNr0^Tivk<@L&0GxQua@qDM#tiP>^Yh|AJbf`g$f7Aj1~%$c z&T>Utf7O!kI5f7WW>6TrKpm`iPbJ<|UDeo(1$eXTibT*xATRMuc5}=&G9|h?X+SI+ zoK8F4VBV+^6|ydqg4y(S2BI`{k{!|XiSQ{~z1dIG6QGPSbf-m`zRCD5H0Q4=Ap_(@ z*He>d5ha^paeavjj%V}GBmOb4Z_G*5MIRo3d)HYRe0dZXIS{eiuGa9Gc*VWC)gC_N zIenHjO6~V_Gi{hc{?Hop2uJmD15*%e%Og}Sko3+~u&GjtS=Cy(CFv)OW$?iOra9}+ zU>3zGnBir1TVnAi7#PaY{dcy`S81Ll>ZdyHD@EjX?A!c)A8OT7>l}`1?zFQ2Ekl~8 z!%Rt|SwJz4kg_aF;0qt3HZ~?%W%Ey)U>->l#8p7Qj8M^-xQ4!T{M*__E$4c634iLp>R$+4Og#R`;3E#kml}qyHnhVxlR4| z=XWIVHDvW8Z~dUa2umaIao6ZYb|h?DJEazO@cI~xQd7Ut*iBAXRguUykAI~{$K7yb z48TMyEN~H%6SsmCyp(vKq>X)gaO;ybvp@l@?45m_Al8Y>P(2tuD{VIAF>!xrB#}@G z`3Ty56@)XJWZwTdMXSFk!9VTNwi#326-%j5+|^54W}V9)8{_Xs5GQtMXYqES|QtiXN#R;T%(?MEX9@LNl35s>XfoZzn-L0f3#bk!4zDqiJZOLsh z>F<9~RKfbW*%%{Jl>jtX2KL~#@*rr}Xod#w@Qs5__PoDFE-)5c1vQ$S$3?K20fHXU zWnT?QV|)q;yVLq~$uPcAP-K>_u>Ix%@CIw9hJ$IM;NJA~NICk^TG-_`j!PL$zJR&- zb@gcOk4i#86SL0yuR4io6IQYB=jJ@`Q(?Bs9L8;dt0(In(4Yz&I zYCftOHDQYa>20ofrtx79_;WP(TBC`^0LK#ha7ZjwsCvZ*CzflN##d30kav^)AY->D8c;kHNKQi zQp{2}x^%}mh%~|$mQBxUW67d#y1mM@2S@gO!uRNY$te%tI2LR#P(SIB=|LwUsg<_G zY>>O}s4!Zu?sJL}c)aTo5RMsEkCOSZY@!=3P0hrZiIdpax+;SDa_z-Vb&6Vqn6lK?~LbAb}<`qO5h`|T)!)y=+1 zk7ru{?P~4!UxGubvR?Uy*)<*M0ta83RA=qJxDj&*mdn9l!VNqa+~`u45+UlNENtqB zN4l&8g#h>^-3-^pWnmte6NZC_${^9&OSH2G+Us`d+=j+L&@0b35FG@-O%rQ#()>4$ zlt%Ya=*b25^?pcppqae! zYE)GKy5h+Q!x-VQ>1abbb8`M^WE4)VhWT%sGoA@k$_|bR{9;({gN_lsZv!c#9%ese zmA?^VZs0}51|NY7lI_QScN!#8f@~oIIT1-xpJ`9SX{(8q7D6^!^GG1nZ*A1^N}$Ci>~gv%MMMK z6K7VZEny?JX=1K?YZ0*wG%75{ipD2#XBb3hSwnidaj9tY*30Y@l`a+T0RKM#z|mC| z1RCx7%b$EnenC9wut}W3YdIuFg{-(-UyK_iH+n@f(UoXz*p$m)r3q(ohH%GRYr^1WNUu$JbqHaFo@5#d9t@>joAbNcn8oOfAHr* zL{ac889H&K$J_MUk2*$iP713Wj$L2?G~u=bc}(lD&9&(^H=O?*{bd%mpd^YeHi8fd z+?g!UyhWyH{vo%+X#K>^5Z^=yOT54t6geHHXV{i`3w{W9-<}fU@8~3;waWsj!OtwG z)P!zQ3pw8j8x47Q6Bf{nUwhc{kH$aTlgqzW@Fu zUsMt)&vZ~cTT>E%-KqzzoxhJo$4{FecU>V3C)LG+?>*+}7{_{CC||2!NJ_lVTwFie zH~WYeU-WW0240nlg);OhV>J%-{7?;;(ESZ(xjNndp%?FG+%37~#KeXj%t{bB42N-Z z>~}l|@IjRDgGO$+kHD1Z{p~WQ;bgXUL59;Z58Fm}GLt=_K{Em~2&7D#WKH1-5|RH2 ziyZ{|FuGXdSBbHfMm=w% z5&Ic?BISk9J898vwS)iFtC6Ep$cy38n4o-Wkm%Q zrZgVT%>gAbFTb^GVV#$Rz1{6J2S{Gh*>vFi3z<_#*ug7(wL=0axc~COlqQ&~&AP z49@`*-^bD6;;~l@)q#(oUIccYj*epmOanwDlusWelPj!oLIhQ8U_iDo+L4y0Ix^cl zS1s2}FIskc;Ja{!UaN$8ul^jKuut!t za#f3qU15;yfaxnS0C*2A%|2|4-Vivy@pxk4F?^4sI&=@^`r`>D23biT%h+OY*bc`( z6Yhp6l!*(=Y$XeQK`SrPMl;87-m*ORb-wwe*^#zGFwd&kx0$^mfXn;AEOI?2KV*#9 zV#OF1R2TyYQ0Csct)1L3%T;04cv9m`39ui}MEsRwhVVb3* zzhe3XPD@~fNZ|bL|2q;5ozw6tLypH_)&Lu2Gg6clLO3nv)o@FvN&n8>`@7OVtcI8xeLZzX z`bxsduoM2wWZ-)AR&#BCA+HSAYt!quRmGgxLZN0kn+sABtosKL8;=B>Vt_G+xQToEJV zpNnog=M%SC{?r?*6`29yQDBErFSt%$UXm6XQb=B*G~vfMCjOZ(E<0G;G~w;SQoA=U zC&cqBT#dZYihbMEv;aqTa{9+P>Ipdt{_Ww}9cuRSX1@^hu8{vk=00gv;*yBOnVCF_ z0$(}0Cv4A?5Z5Pf=9>5IjDhd(k1zkPVRdp(ZDszPK~f$3wyT6*qIp*!nbNg}EyeQ%@n%A> zi1wAz&+f$5(VgacMfNjz5bh!FHWI+#zDYV-uEl2gG`Ryjf#~0=PWFnSL3P5Mpx7Pu zhL}dID4Fuhv|&qV%ns@^9%S_h`5HR4n|5)AtdlMSvy8nWn=8bm7)&Vlr#BWXNZyeq z=7ZjCsI|sN1xXHc=GfM6mv_*yAS@=)9aRE2jI@|^PGXKOiqO`FXAqIXHmk5|ox3!g z>YxC-&6?8hMC01T)NU6kX7FcWP}kay5W9&_Om*X$D+F2D&TYNj3g&MfK(3kcU6uKE zdVG|FStt-Z-xdb4KX;KZWtegv5B%T~eEBmkPIx14oM@FS7;bm&Ve8Ce?oga9TxBlf z(7dk^$B^Z$)j1)m+M&Il{;$cKOF8!$ToN9i^*ad&I|KEY08&Ut&OH@QA%4%D#eU6) z2rRov`SZYzcs<=}=|`Qq;#+BQVE%^hx+H2V?Eblq`~z^wns0|8qu)<{ClNf==hP+n zaQNoC>*Su=plD5Nv;3iu+kPW+zXFjV@N z9ABHOpRz|Kl2Fu`REVRLktjbf0rLy{EVE=QvGQTJs zV3R=PlRd`%KQExC$(yMDuCMY8LJZq-G46C>lPDF*UUcapW z2`fBkS88Hs3s!iCv#+&e+yxo6;(6Voe5Uz{fln{+xSv~GL152zFmI?%T#5M!{TPrE zQ4%Gh>|2jEPkJ(M9 z>rb!3!xp~ZPBc(@@T~}&pVo1UXf9@D1T#ILvZKzo^Zjwlb?+Iycw85JkZ2%@YqJbK zH#>nxE>iv9glyQTR{N&5snGJ}e{xTTjNH8M>5 zgds0vM1vJ^HRUbE4_Gg{{r`ggU7?nsj)T@Vbqa(fM#&sLRUQ^QzP#v}dwVDXpOxs& zSbcE<;L0yok2=-hvfBzL!olULY6XJ$fljL%4NN7pLys_ah;!dUh*p36rtqVAklx>- zM;LZI_ZB@!YAeeNdL4H;)Z+NFBKbX1ImFiNHP<9%XDB2|ZJDaKBVsj%42?h~-r%2t z4VVrvvzy<_Z4DL&iR1)Xfu+1qyQzzLf!Gl&smGrq>pO$K*UxW^aDt)(GF8J!s(R@L zT?lSe3}-mlhFHGgkaNP`;iBLo`6qlJ_8%dVi3tu%<$@gnt=B*S%XJ@srMgI-5RGvn zcoBi7ukaN)uuC^=Q_Yi=3$U{SLUFZ?<(Ju;ix8q`BQPQ1rVe=svk`uG;vpv+w<;~A z>WQqvvj)SA(yqWcpCz-`p}fq3&poqcw8V!u%G%Q~(UY7zd_pf2F;g`en3ui+iZ+44 zX<>jU^?~s)!jwouL2hdS1$9;dzgc)57VurGBs9voWGC|EZ*&x6{Z z`myh7G0f8Lh8K{?Yk09t`f*+#2|>7vE?SKV3f|B0x4oC9vpP**HF|{P;49AzJ86wn zk^^fp%O?x*b7{RO8&FuVG24yssemjiKAJL*(6#XAv1ArI3y1mqLvkHz+^^SsQ>Rjn zviYFByZUhYsQ4SL)4#MQdk_^eoQ^MN$iq_ z<48GSEwQgP@v!?HD9n^C?Ph;>l2qu)zBMYGwB}OsFk{N}bQ2I$i zE!&drkzrNIJ(Ryw0Ri<7G5L+F)v;coqfXxlnD7{tOwl^Eu`h|&xRC}M8uaDL<}0$z zvci4U25l&?dSLpdPGuHp0-bh}+FooVv)62oZ5*UuExEpo)CSBW9`7SV1lBY9PUQYA zWh$X&0fZ)yp==wjnvV!?zv}5h%FgSC1`m?m@bSpOV67!)!_uglYMkRH2_J@&obld&AU09c|cu`0^TVcXdBLtELhqaPp4l z;&vpz-!^Yj@!)Q#Q4;UIeSXL&7axOfS-Q@Ji?cFbL#s(76lb4YZ=S`ddIP<&D@RgG zYQMezpIQkR%$(RhSZa#64m)3=v5AFyEtZtKd*UOKxw_tCk61lit>%E>m&PBX!0g~H zh>6{BhAc1(knpt?mk+*+duMG&$4psuJ`kcBu&?$RKNX~D5)0kw?5V|Sm+XK>BHG`I zrP$c3Aut68aR{c;h{8ffVj;S3VsTKsWjH4@8|$u(vS7oK68S(|kfba_?N{!~Me^+Q zar;o-PpGqQK%~J_;h$OChWY6IDi_;#u40@>UL{|Ti%X;CR?2cRPE7rk zRFG2s+D`H?%PC>l)Z~JoUM%oCF`dKATd}>q3!3iSk8FRxKUkmG+t@;- z5DKE@%mdvQvAp6=Nax9e(eopfRLI8iOs#BN%eNX@>fYo8Z)R16MPaoPmp7JQ!8|NI z>c!qP^^;4fs{$h@wP#@*pjH-M98n~*rw>(5DnQ(r>4*fz@4j2QeQX%JuU$)-ZRR7v zJ+uNn$90SyAr3t5_VrZVzTg%81JCYP1L0`p{x#gF?kX#0jB#R&L~=<}RWTO1_y?H)?u~rEN|Ryt-kf%{DR4OA>pt` zQ*8I|crZFCrpBwE1&i||gmYZ3f0xt>xXCxP|GbFY{HH_v$+)2>JXEw!!n;TR-#}6T`_;%f^lFify_praeGRe?e6C9Z zj55xNO<3prj0kbQ;Q<+{TImHoUY!?!Xu8E>j`cY1KnO}CgMU~F5aM1Aw`RIqwa#KM z_>HfpU^G_dVI2n1AEwJ1Yl(;?$z*KKI{y+FlMdd@{y=2Lk#`KwU5(3OAxSqbr~_s2jW-OJ++zXX7@PaudKn$W1AyZDOsO@yfAk2!4RhvK0ds6# z3W&8asrU}g6dkc|I|Ly=VqDjLWC$xPgj+qP7#b~lj0jv)znX?Y$M*n&G-yk-FNm!1 zH;TrsZ$p)LRI7DJNrF<{*=rO#qZPspJ!UfK;@ycVe0NlQJu&f9E2NHnp(tVz{mvAhzSx1)pPl4hmx+|KIlI&KTuBMT#uE<4PsTM#r&*eR zalWB3QJ(&DbDcz%<{n<=`*r6LLY!fTLeKIC3j>bJoNOT)|OC~ zj7?xfD^E6YF)0bbpJ@*`=sQnB$pzO296QQsFm67g79zLm8w8j&nHwDYOkM}&y1EaS z9+!-|%__y*!8KJB309DT zqBzyeFm#E<_+4N#ek7qxTNd|7`{%<L8rwk583XXA}X2 zzk64FAqv?ae$Pi;k}7b5!g&U-UJfV>dtt*$Nt8x8XW6YB@C0g?7`I}Hq{)Q!*~es$ z<~5IT9>_Rs%jeX6FQ3i`Ywhd`Gc7G%sASjaLV*7Y1@$hu&jvFZHG9%@%aH=Zm6zg1 zUNL(fv|oSZl;pRM#y_P0-J?!!A{>^;J}-o49BiI*MM>2ho4qLXmt(8&bC9YXgpUO< z7z3|(`AJO@-ziR7bEwFEqw!9(?-%K+H0=WRaPOM1PW)9=M zDX+OYIr}=(@gjIMA`D50j)PFZBzN`;bWb3nkca{}^X@qa3Zk%`bj{3nwxe_wFV=#B zpfD?P3lVFtmUkLTYth2B(O^kTZ;7r-!9ol;k#9pt%W{5`6y$+&*9=qz7R@zz?DF!jSYZF>iH-oB1n$XfC}E?JTCQje%9t_8NJ>y`<`LRUg2nh+cFn z2&Nb)XMwlhJ_v?|E&9tl@aK3>H8F5Gw3A6OgWC|@AJt!fWv>RyUlN#i>Uk{%m<1WE z*iO+hZQ3Md_eNRig+83^BM{QO$ODNCvU_gnQkwO4zTB+y>2qjtSUsILY=0}ku*}> zaUusLz>@Rt-H{ZP^SN$AVdx|+zhv<%XZdQKUh-RzAz6t}nat?uPpC@N3C}QZ11M~> zZqC7YU0w-MyD;^(ht z+0>qy8%eXoCq*(AR&akh;U#u=1*cx)5oB4nOiY^LrcCkMX&dY7+(GQI^-bS&4U|7( z;B12rgW>S2LYlHwR67=!4_bF@NTgXiQp_bO%5%Jqz|M&(KtJrZr#Vam_>M~7auGEf zXJ(BdPW|4rp>CCq!kmFzDh4(Xb7V23#xhKqv(hG=veo!={okfw}mhJ za5cZv6Ulvzb8_79HhJ#rEuUcWADC4mwxQP5j6g^lw2S=9I8V4Y*;_K+vOLtGy)~6= z-MA}vK4ur&?|I80H4Ey)8z7iB?MjNPH4v}-PF@u8U7RN+mu>L0t4rw;ILZK*8g`ES z*A%=0o>!I6pLP~imK_xw^c3gTTv5wB-&iX3hx~5S;zlxkg`LX3InCC}6rv7JTlH)Z zuHQ`3v*XcXXBGP??Q3yn(XIj+V6~qjpbI~>y%FcjGc$dS4_#RYBskGTMPiQd5Jchm zOvd`<%x-mC+w%mJYM8%1g<<}NDU9aX{Y&KW3NDU}BnLx2!A3tUL=A_L17&KL*w>OD z|?9YF5nnQ9A8o)Oj=o6d(-qksGnz)~HF6JCo_(neAUSkzfkhpWt=`jqJQ4u3R( z(Wjb%)jlN7vC$eha&k!lu>2u5KQq}+bxbwxxb&=OTQ5njafg%$EV8hMf#VP9J8XhXpz9uu) z`!TVLhrX)FzAR#A%SOi8kfD1+plC_N%P_Rf81x)+)Bi(iJ3ucVkP^#CrW!6eGQj{O zwdclOIx#EGabsVg*z*w4aAq4eR2^6ZSjeOm4V+!H{ICO%?iU)}$m$ZR9g}jq(okx$ zg!=#oG@V?tD|WfB)25Y-zOor6tG&!~G`f=6ijYlN z@hBME;1-HnADpdWu8x@Jr6A8dGm7dzG~;0vjP>gNBZ+W3@rkrc=DUM#pIX#{>XJ(% zF}XHm#izj2pQ)zoQHC5f7o+eI@qR6A1))lu$UjAQ>oTH;mdi8pEBAZ$9}#7DCW{rbA6D+%+l_E@)%0C)r%1k(+Qls{~ti$nPi3|^j# zRO_(By|77|+FJfHIlWXt@~w@w&N#2%q`-d2Mf*x@_4BO9<{d{-PZxUZEa>6wlZGG; zabj2tLt9?<$DmlwSz8zD>bv0xYPtIpkVj2FtvtGS^^6HQx`4YEzvVQcFY0j5Y=Bw^ z7x9h|z)csS*u{eJbL|HWXdFozIL(I9d1F#kF^eZ;m9owt!yU-UfmBf?gl&)1o%h~f z-E-y+prJY8n5}`YVXM1Sj}Nmv*wP@?8u*c}bS$)uV1Y8R-z{W2eKVw0z!R}8S$dy< zG`=?6zT!d4$skY%x!FN3$|^h(yGuN3P(@vq^0-%xcnjZ8^KR}V!Mqm5XgjT5$l>~g zpz^l_@**StldfvbWf~r+zvOMv9hQj>fiEle2wq9{) zlgfhWLtT;EP&uS`u3F#put3rkdA5FJEDV~c@`hXt!HZu%9hI3Eb`&jI#x)ix=O&pD z(imdote*`O)eHTB_#grbTUNjW?+&GAFb24A13^0h^A!GH{w3Je8%>KU6`T2@t}Tl! z()WO*VNinwvU>VRq<#cRntIL6{vz~!OKiW|?m*u!HLLOGx%>=i0OHs%Taf2^;c1M% z&1on!!l&?~(on+G9}Ear7k@8N_=%x5TohfSImW_)%f<+b0+;kZv(h}hk)70rzAmgt zI;$u4Ffo(%98fuo#h=bGeybl(k3;iSGx3V8|aE5BN<3S8~!Okt6SZS@Y zo>;n9%9wT>U803Z{64w4{&J0~w!c@$cO~yp@{b1y9!!h<8agL{CoBCX6RW9kR5^8_q=B6RPCDv|iz1-`e#ba9k4)bpP^H*Y*7*#J1DCn#3Y}7!2&mZ1 z4Rp4!=t2-3X{;`ORNnQ_$Q{-XlSJOG*GKX>?}~hsUId}MqhhNlp(G?YH2IpEq@dI@ zl;jj_84MuZ?cpq%b=73!JMb15%V^?{Q6N3jcWFD(?M}43k}!D`u;Ww5kK?CwV|nM8 zdpCSED2Dh7TZ>QGF=9O!4Qm!WBM)n;*DIT9-D#{^z7cp?8nn`kXLVnvQq13cc*8pi z8cj=hb{@%dXm|-1T~7Sg_@`apER5IyHi7nQ!)mLa$ysbb=?2oPzrp)U9~W$p?daW# zb^+avj0`nO$Hka-8ZYC5fcjmviX+mZw$-ABVVdUvTAQfb^`+!}y=iDYsUWwoxV^gurf085D%359lsBoH) zfw3KWCO1+&K$q(EX?g2)dgPGW?60) zUvJ;L?ZL_G@;g(tl={Wof^=tg(O zLK=xqmyQSPg>-+5Dj$LwI$2+koJ0uCwfq0N@zspz#dWYJHyuh)r3-Lkxg7XYP9WTTpVoPIL*<^K{p^cX_aqJQ80E`MWYJ) zR6LBGW11XAUUNjKleV4@Zmj;eQjG$Yv7405tu-X*Qx{LND~bc7`pfk$Ldf$3rpl%_ z^=ZfImOSz{h#sM}cmKf{-4McOn+g8b4w58Wc8fcV9t<+nT@du7ZCC&_AJ^o(*O8mR zti>MM_2xHt;vqhAqR*X+RnKTKs64GRSNMVSl!d{n=B~=<#AGll+50=7fHEg93F6mS znAdwY!x;uY%eE&QT8tSGy|ZjfyTzjWo3){b|rUj3pp7 z^2K^O3*rPD%GD9+%eRGYRRp7-GRWQ9h zGcLOb>_Y>R>XLk zbMdLpPAmMNmG3e`LQqIP&NX`0hz90vV-j(~pg<71{{Jt4F_Y!~#5%Kgsr44r!yunW;ihKZ!Y5`Yf1Ws8zZ(jq93!h=)XI&CV*i&~AngFT}L95vm%jD$Sh&-FdEGGNwX?#;(9m=h8}+QcT*+F7Y*LMFgl?kgEvfJ zgquO1a$?9Sw(gCNQ`MeiB~o>oKqgJc{(Q_#4wZjkQU{h@ZC{BQG!wRJ(Ccj2Zlc7( z3*pN0mFREP2NclAuv(rQ?Q^3JNnRy<3N3@QR2|L(H1H$@D3i;#{re66n0Dj# z8`#rCjbfnIPLEHp<8(vtAzc`JF<2VD|4?EQjXF-cZD7B~pQxSY8Exp(totf3LpCw_ z0ygtFoA149{8YA^*(czS?&Tt~wlkCdUjeS`o7P(8mD5KYWbH$q_K4P#=*j9Hku;NOcCJWA!O5_>GX3zc+*C~ zB+_c>aVG5mlR>>WeGCPXbV74yM#MIIV|`59rNC7l-rFr7t4yd{&J>U6LzE$BIr@!S zj@_!N53JuVSx02hlY4I3sfm@-Sr3y&d)SPV>!GNPiOT=W+$W|O4)>TRcRmOP4$3i1x^PgchR9}VtMBa+)#=kmsW^WNcXwa(C!j- zg19RK3gDu9dU)~EdD}Ai^#O%ON?2d_X5e`+x9%=Gtd3Bet4z)xCF&S55l^%eTNH;t z(s?6UdvNgbc3)pD5@w_mA{WTXulIvD*QR$bwPr$rRK|7=^|4@n7$=!wX<;twPf|h? z(E(On=BNNle2d~et|F1zF1Xz&c!i(lIR3nfjUcWd(U#n2aJx7V$E<`R2(06qj)UWfP2JBPa z=#{~d_HCST0MnW8yygkt+RKGzRDp}e$MUHOi~a%vS=D8@RoV`FHF6F+0Pr}~mBk`% zNHAWj?~N@H&?THHZAH+5WZUE0@WoiVkjy$;!2VuV#pO<)lpbj!?ILZP$O#~2aRJC# zod}WghWOMkbeJdY)>e8}fmyJm1y~r&4;x55kOF#iy`>XMph{+rfq*kO@0H5IM=3IX zX;PeB(QBF5q-SF2`CV6E*k6Jsk z0O-$&T;d%i2Dl`u>qr0x{QLmR8~}uGt}~Q*OW1}T{6Ne_A1WcKB+l}6+^rl(VyV2X z?6taJU@eremI|u>^lClCe*S#5T)^`5>}-wzoy>8APe2OT|`-w)bnDc~b%8G8R1)SG0GC=*K~Nj_?jG zr-IkteApm0CyNA8NS)fKDaH4b36gf#1qj~0yjcw0)J{VpYfL1;l=sTgva z$&}I}H(-_fC=o)R6H1K_$pcd-)Hn71xZZia?#mk-<-{th?W_mQqucmA6JlwUO;k4} zkYSl0maB2q1FG=$t!iY0u@VFWy8l&zGmh24`gJiJ4sdns1WhP^Gl^G)0X8!|zK05-cSD0o%% zc@Bx2fR3(HnH<}r@@95ts91|~Y#CcI@GX-!qMdW02OLO5*7>NG2ySHscpkrcY3N}; zbj}NI^%DH{Ghu(o#k$6v;ys?3sX7Ii_Tc0$VrUlkj$vmb3k13g9reR##_A)WaH|P= zs+u^|!GX_sZmfvz0Cr=F)DcgI(!TCj;_5s#ELa zZ{cOz7I+3)w0R)bt~S^25{~uh!{&L+cwjd6Rg9?byW4~Z>}Ykcsso~MHQa-xkHs}D zr7YF_S&%b7;sliX3+_bM^V#@KN5Jy$!`stWz#BVO7oRt-6f@IpjYU z%s*>Lv?SbYk>IoxjmX5;SNEK9iDN@s{8z;l_ifoFwHn|rWICbMpU3VjqfaY-o@aT8 zw9f7C4s9ACB!L5X6sg-@|JLD;an_Iffty2Y45rqG(@Tj#zwyOZH>y*{JGbe9 z<7H;F`tJysiUah!i3aweWTmOG8gzhh{l=og?Ts2lVziNL=zFO?bTVqAUMx-fV0eKd zA!Ce8E7eEv)(3?pup$lOQe=_zcJrQow<5KJgFJ<0GQYxIP+7Uc!S5i&XUZeK6*=!J{^{T7Dng%nW_)r?#eo<&L(-i?6^}8^+9!{T%I@h11xX=G-&$Gw?8^PMN(<7zJ_54V-eUT0d!CQv2 zef{{lmjtAczexN=x7rPcq1QdCmcc@KIUubhe#XkT-K-Gv}`x6aZ z>l0Jo&ii~2CE|%hcDy>=WoaV}7aaVzyw_>b{ECzEeyHfHw0FyuU|9_` z?MEU#&iow^=7^8wv<`B$oksR&QMIp+n=FZTG9xiJUe?^jc)EXc&P2Wo(4;v3Fs%q? zCGvKmHteANqX+W|c6uTeen@I)z;d4FdJmUut7duKs zjIys>OE4t5r{5m)_^ADhSd!#+1b)A`)LTQb zBj~A0{D4tQ?rA$YQfZti9Zk|oqL=HCQ99uMZ{|Q0{o^gY35A**WMbu7$G@1kEZ%vz zR9pUUh2?Jm?KWoP{Lv_n?#>0CJOb%+x{-Uv%u%}jJ6BM8!sQSLvcOwtjfiAxezKU&_Cvw5h)3^2{CHQp7sVKpeQKe997P zxq~Cp^uA|Ui9e=Q!sddCEee5Dt|RRcdK}`hfs7gs52WD{{-O?KM0)mjGIl)jeH5k9 zokS8EKvbl2txjUnw&zE(6kaLUAt2v#V6$WlVVpw;wrAWWYxx0hY{o>B3G7RakLArw z=Y;W-s`4$e#-^#RY`oF~O-g{vNFODz(gtj@++cB(eNSg+sXrG25#$EP{maI#2*y)7w^N4XAmn=6KQeXrs+7KHOE75#ubokislPHQfP=M%=GE^QpJ2|n zuMFy`M$IS1pmN%_Q8HPHlPo>vQig%(KUv|FuW`=cKt1c;+E2kHUm6uWSIt6q=gi|f zCpA|C^(cu8x93$FC0w%w3=HuV8P{bx=Lpd?m{vz>DxOB#PB|HBBws}Z7v9cpK!?l_ zVD90rQS>$@5IMHbg*|6<#TQZ`H&aZ-tfh)o{jf*;&7OZ-L8O_O)t@LynxUBaPE37t zJb-n1cVB3lLLh9tU-gC-B%NEX3jZJYsaKL2QVAXLEyFR5--dTgX`mZkA>%&*!?3=n ziOT8n6uLQ-Tt-S1k2z5XI2@VS+I##_`;S?vS`GO3IHd9*!pXwICohNBc%ppZrDEIf z?M|cA4DeP9+t$nLJR7f4rrM6|LuCI1#MGNeTI>QvmV&{x~#m zNv1F5r@MK+cm5(KZ-HkbC6tGjz|B}jQo!f|5sjQ7EtI%#Iag9RENMC{Xo&C01N$@6r9JMD7)#&BF^Q=UUTJFXfII zAw6#>^#!J4V1ulVSeFR9@WoW(Si^tY*(V$|vwr*B0E^xMH9FRyBLn1vpO{{m9VY*a zj8Tkdva^7)uqo1-^ST$nUJ(kD9&0szN460cZy&k_Osc;C8JwlF(Qqa~1Bv*Y z);94Q9vKH;oSpN$iFu;LWXgp`Xo@WubTj(ds9i&Mxr-zAFEF57PB^+vSLmD&hxsDycMJiqJ~=QF zYtxw;G}O%~@Gbd~_UclbpYxt?z!hup@t7%vPrSnSpOTBlb;K3XeBx#T$nTfncLX%n z^Twrg>Ky!M`)=WRAG*a^8SO8(pXn)FqYak&FSVRDww|>#;SL-<1LD4eU+{gXg`?R} z5HKhh$MFR-&XW}Gqf?40^fhdA$hcB!k!WGvs_P>FFZB=A8U@Q*jQoXwnhp!;_HSK2 zzND{l{Ek$$)KWZPSqEH*Eh${H$ELt`!q*7%5IHS?cgUMto~LGPa$H=g(qo!wX6ENz zEI6Yl?MOQW15Xs@4l3nGeUp9AS^s!TyhPH+izI1P-q*x5=<1QRrTOcdVfWu#9ld|L zx6-n!5sLy15M@ctK%MXwQzL19S+vzPr+9&lE(A&phG9hI7jJMnDxSi+@UKh@r+c+l z^o7g?*rI=!0wmG`NW|KzLUgM%i%j!}>w?F%6#G0e+!J80)+~yT&|1{wK4+-F8Q0nM z9Zi+Xcg#h0%}?yF)PKa!tuQf9YkHsB#hnd&R{?C*RU?9S3=nvd6+mcOs8^XJ9WgM_ zw}eR_>fbj33?8~lh}-9AwdhlULEA9DRGmn6^a-@4n@-pt+dfDc1x^6mv^+X|hRd3L zX&J!;TMbo;b)Q!dS`RwU=W~omA)<|Yx@giJ`s79j2G5^A1!h4mDH-0|^t1n(=z&Qu zB>fc&6kQGDDg=n2C~)Ui zq{~sEWpoh-3K!)Zf-l{TrX!W_xkRtnyt#fuHQ$ebVnJbXQ^zI>_qe zKgolssc7Gmw{T{U{D~j<|G?vfF;M7X=pXt&!N47eYk_w&d=j@i;#9bB8KLRKF8fR) zE2VIygAkuEJUz6O$qy|=&r|0V(u>aG#av=~~<@D6PyVbAcJJWBzU)Y|4`0ov)UN5F& zNDA=(MNlJ5yqR}xy-N%A42?_og1b)E8I&>65^uti#Oa`FjBRAuxiZFeJ|^%?*N`(A z<8!biJr#}@RAqPM{Io9lrEuXPd|F8_m z00Kb$zf*HDFOaNPPFbSw&wlPFVJuRO@}xEFdAu;Y7^L?w5UmZM6&AZDWr=NFOtK^p z4Yx5Uz!+WPHNz@Z8SXXzXP$|xF5uteDgG_mwTTe)NU-s@7-Ir9!L*aQ&#W_swX6+L zyrLo`8H}vlM7zA(y|~>j)8#q-8p;_U5arNn7rRu5XI;LVP@2%h-W5{1%Il8$*7B^( z;Jhg)tf72bOJttIA=B=$*i1h8h-~KbZxJ|VT5K}+mo(=_`ai@hl4RKL6S)WU7r_fc z#)W<}L+TPeP4n5Vp|Zzdb zTM(0F=GY=@x?(bu>l>0u#3%QAz>t{r20YD@rqw6T?;0D<9AxJ3PDEr7FKGK#m-$R~X6h z_)EEVt|gCW)~HOG2w*U9bPA`i7%CN{9HdBx+ioPaGMqDTmLa$>8Jnl8#`L9yZ)1zB zo5hjfu18O)tsVegpgK~>JW)7B<=FN~Z?@!CHEzY@izuXuySNI+gU**%n^8RDr?`^m zZ;j9GVY#ZFps>e)zvwiKZ04B`HLNcFF#bICR*t=5RjKT|kU44Bbmh1kmmVq@1-klG5VWQzgVa|M{%>tJNQSyoCf7fHYz(K_e3z; zT%(Grv>j)%hJ{DuNTneW;Q^KGn7Dxt>x(#i-@KUhC4N$uuZ7!T1)7*aYdpes5fjb3 zo1)5tW|x~cseE%W!%Nydf;rlUbNObtqGB_OX=597K>9!7?1^1OEsmN>10q*iIt!5n zWHH1gDS{Z@Z=zfS6i!|#$TPP=1(1QM-~6M}X3mSzbb1*WauWZG=NJAx-Eq)e;@2%} zTxd2uk|fvQ*{e$Y{vD8m#XfS7s*1lr`Jm6|2kYAo%F|Y>(g$9(%y|izvrJ$A4~?Wf zEZq=x)D->ssrB^|S-@wTrDD6y`QH`rywx?#04tMl5_Jqcs6pBH;eQIBGj^1|aaB;K zw+nC~lO?R1j5EMrky-Yx)q8M{FMi?p8X#thIqv6R!5eb_Tfd7^<@ur$n)tQ&4lU~8 z6OT0?xLjmmMq@*E1?)mg!5!$&xpsmVCH383jPh#LWKd3^)%Vha>+}08;tb3BwueC5 zUHChbY-otf&OIR?-)&GYxdgn<&2B*IGB*i@QrkMOo%)4DLEHvDF1Lh9=!p|67)%*) zr4k+rSllc4gMf_+j3|Q5z*Uszv@H-f@^2t)y`9}VmkkX<1!cb$J9mnwb0GNhPlBu! z&YZBzG@pn!Av&hpR^HO};~j0xdug}g@U~hg#fVGqkB;vIPZel%Fm0j<^CZ2 z^@lp`$dDh;ceR{c>Yv0U5h+oY%X&bGj(2{*L2@nmX;0yMvZP3aj)x((+aiE{ws^08 zX%&rwuqJtL`NqyW@QY#Znk|l#Z6ol)1f(RHeKA{s2Q~o62LX*dEP`-J6HBO6Cx8NM z{iz#fgt$1>$)op9cz}qnb60+VQgXm?`VY+&%6N}LzWU6X&-K6e@Dyk~%t|OM+@ClM zY)=?71r-JLo)r&0sBE}roKX5gEC?UDGWV&@`nf-{p#B(>GW{!|6mDd(L&uKIWM7!$ z@4pwtb8v?;-Ra8XVePj`w<85sSQaL=DuDd+wZW7^x(=-xSNTboc_Ro8-X}(Dtofq`u-YRC%+hYZ0SDgyK zBiYJfcH@V{x23_LtAF^wl-eU0zhpW9)DowAN50UU+Jn@3dE>mWXJUWt1Vb;l>ElTI z``RgQ86ab@bmg{439Eyz%Wr4Dk)Iy$S1sUW`U7_*rct9WsW`UiO8s?<~6-lcBl2H6Skyx7I zJ<`hlV~|C-G$k|Oa)Gc0%~V_XmN$NnhrbWqX(8}SXTN~R&Olpt(_kvnrUYqzZ+IlV z8%UB8M-lzDkjogG4#8K@GP4ZBw19)S=g_h03mt~Ck=6Mc@SPAevLyJ@v&f5k`2B34a|`yOXUaFBW(#-wEOM2Ayb>us6wIcaiot<*pSuFdlVDEZMJPkElMB(~z3L<071Z99c;4359ejWl5r zG(S>lET=gRO9gw#>;a^1T}`bm9r>SAL^09^1uH|#&de0i`L?Io;=7=CsBes3pqroi zg(xdazj<^9O1lE08G}i|Ul3`e?um!`Oy7-%AG+XJcEJi!i7hdvUB?xN-mgbjj^S$E zgi6hN{a9{U_QgVW4Wn}ayKXUb}}YBooAmbsetCN3vRg>RfwLC zzZKx$vdPUxl3%?Ag(K8I1+c#|BSQ%tYPd=1YC^{>U8T=>?ujWjxwKTQLqH$xmqiFv z2E=LKqB}}`%M?$b@>if1EAsYtaPP&T`poh6 zR3zlnVr1D~7T@76pjIjTzV-7D8^A;ZnOs%09WY(h&p1a4lobCYhHoyGX@d-;L}lV{ z^@AgPjBY~3`LqYmwu@`USOwvP9looK^bD!?;P3~?6PmF#M_AjA;fF!jiA*+ooLa}! zT}-@^J5{qGB9~Q5CjwZA>h|F)F45fXW`p5B;Wxu_R;v90s&j_T0Ew*fu6)w<`eewr z=x?c?^(VVWvp5+#NJcH#X&AGHo)B?g;I}*A`di{~Ao0iwBpPp1dlYR&iSw+fSVJav z$pK#!=yTi-nf&+?x(`@dw8uWHEEj!<@zKG6O@NkI&7KpH*QgTmI2}M#$Tu9lG)5C; z8o?&@NSL5D>|*}l$P+1-G@H42;o@?EE)uBN*hS8urD6&KP6eKX3N(LdN$<+>Qm)(r zLiNvIcoLuuGB~s=8-nk>$12&c)XEUEpay-{ni>>Ox$eic1QxS>rghiSM&SoBd~PEAXlH%DxEm;Cc2u}4fxO2sE!>^OSMPfA zB0Q4AN~Y`Vlr$-Wx>1TZgp%j(&@eFB5UN?kl<_$=tB?x2j+*?`Ram>8GyAL^K|@e{ zRvph8zxv>y%!C#iS2qBMl!>|dSjUr=9a zxxF~+2*2(*t4370WMUY>XFHi$YDzJ4D>W4i?%+H3#Tg7n4IOD)H8omnc^1Y_3=OX) zb6Y-g#U}f+bl)5s(g|gfdNCk~1qZTO)c2=NV#fs=b9}FM`D@x&Y|mfTANI+_lyG>6 z#m>Y%eyL=SQy^+-!1MaR6AmJOLL#yMlLwrfrg;N|Mh8(A?4&|qb_A77i*b-aSO3lm zkiO}$g}+X!V^GQQzB5QhkWEF`S7cXe z(P(PA_w`D%d&y$f z{jwPf;sDBMM{1m2=dNE!lwshh?JA&|Fw`p%R}uge-CY3FT~Dgg&W5=#r$`}e+Dfvn zx_vGIyYPXkf`Ctvo>2GL>@DZ^LjNbQx!kjzz+bMz>d9C}r*r;3T#hr9y5iTBP7yXM z83f%y=A%CUneJug+JaJ`$o`G`XiU4l*Oz(DFEj_FC^u97dQVKfcR`)`qdiIK&C88< zi=%QCCUT3J^~|UAxfexsrJ@gap5apga*a(g%A9^wu67qL&PMEEEkP*rWFN1P)!7K% zIQdz~!uo3})ryTT0>=LFkLg4$0WB%YEGIdK2}%QBdNfuopIhepK0@JAuVp}9vcB7P z(DwfH#LRV(w$`f}w6%+LB<(s(UwgOtKcLHsnzYcs` z)Zh394>A(J-yGbMTVPA9riz2BQ)wOwbjx-hqy%Qo!T73Q?E^K8Lz21B&da-1>Zh^p zWc6a?<$f4S)gwXSnT3L9ry1`t;Z2`s_b24A@jmIpptqNfCXm)YVdVrM*HPRZsteu! z1`aDpkKESxWdTDW(f@gd5gyY_%Vgq1RrzbOZ3MxxSG6&vk-HY%13FNfd3^id%Td<- z-CZRK`8`NXYr<)K|5EGVQNB|r?u*iZw}tv#$va(()JnTL>DmFkAfpavA#8|e$mA~9 z_x?z*ib9iFzz%7GFe?Ta|n-^hZ=HiH>JM z_-Az<$>d|-LI?&N9itqMPNQ!yIJd0JKeEeW!caeh6{%wQ)QHdeO4QmLze#QBJ?;b< zx|zI<(sgj{%}u;VX?^NEGBF2(?6TB}OQFqBXfH}s1yXz-9(E&pQ#^Ath@>;{$N^3! zh4gNyxvVd?CEz*IXQ;tQu6PMU*>#h}r49^f%JEd{<6>h?;ab-p@MUsF-^DXPVz6i+ zXQQ$e%l%)wHBPJdL+A#-p<-CIPSjXqEZ!aTpWA>5S~!e+Jlam~6+a=GzV6DMZsbf(@WDPwhG! z`X(k;Gp#~YUiKw}wdM;;IQF;Gk_^*uvo?W!1*?7h5ag`01%0Wm7e`=6`903kU(_Ri z>YT{brw;0*q8kU7kt4Kd5PA?)h6{jDm(6*tPhm&sf_iKKf$3+4OE`S2B9xOw%HJpt zyC`Dz$f$gJXoA6r`347~=qF6=B55?Ty5``ibg0NdV8^!_4o9QcJD<5tf6Kp6o2EJa zFBQ+Ep6C~KsV7s%v!l|e973VEksRs=r6B#eU0<#l0~tflVGLV$L+|YB0K^N|v>9XK%6~k-k|srz_+ENEx82vjxX7osqeIgXGh%`H0B>>AxQMm{$iBpQ@^@0@ zL8ZO+jQo;G)M7G*&^R%(YQ+eL#PAQRYw@AvqOc8@#@041(DYHkD^In~i6gXKl_HCO zTf9m#`6~~-iP0DJ`k>awZ_uL|aJQ;{ljhGda5mo$yw$V+I{R%OK zrA~yzk0Yl-Xv)UC+DM?%8D;UFTaIlsrWWHF!hSeOhkJk@MX7VY8BTxt*kHH6g^m4w zkdnOvV3B7~PEBVSvviUDqn@a#0?TnSv|f$D%Qxnbbf2GY|F2{jdPqzlPK z*l9r1z23e&Dy-fK!LRVWhFxe6Q84Dyq!?BQ5vu^sBNe9_LG_bY3XyjXp8oSGqMmE^ z8bqOin*!u2_hb)TQ3VGB-0z;xom*n#TLVL1N6czOAp0u~rgR;&l1&!3;0_clg3!;(i?b^6e z`ozbnf(KD$RZ6-bWnPqL?ex??j(WtO8_nUpL~I@r2@v>20mp)|qy*D1dGvRmW} z4|b+UH&d{T*`FMlI1~K{6)?B*i#U<%{+iXF8jGDtNP>X&X4=Oj=HW{)pdgWtx2mc|CZ-C;z#7pWD>#jWXIjLT2JJsEfEqz_DFBe)>UmySVg+<<}w( z^dqIeiMzF&St~Fwn%{tQpW5#E0ko#!Rg$BR7{TbgY8-vy*>h<>YdBV0{Ela!^W>nV9~ZO}wfnyX;-3?A8v z{Xr>{Y8s4V&zeIHk5VN(60P92A{DsFJkBO@Ta>alGGDqt1KG08K`{#|;F+M|OH%C0 zvF8u-*)Tiek=r2K>+k!GYy`?v_VUVf51FHt*xz~(d(*tL&pPW&m=y);*iW|$5H8+6 zXr1sDY8Xm6WOg?OAa%-b&}uQ9I{|Pwji*&)nJ6mp(7o1Lcdks|9p&^Af=I%7b<~_J zP7`ko2ApA(Q&Y$o7{HcCK%bloW`YmB(kkMoVcezg*xh;vLl33Ox@TPoV}J4xr*7*q zqKyl*z1`2Fw*{beOzD+kyNVzB`>STW1-O%i$?F;i{2S-4tb~?^#ie;GJ=a5q6D|?) z#YBN3jkUdCiv%SlHS8@~Fg7+aSO+R0jjFd!W?VznwjK)9muo*V;FMm&)WL~A8;}rgPy_H>E*r1l_yy7= z+U7@7-V9k*@16BbCeQ37lk9P$pP^lZ1L05$VT154y6R3rqvzb&Daz4+2Rd1bGdRlK zCZ@50vqS9LHO%4@{*_YsU+g9ncSZ`;$Ay!LhlBjw0`qosPkigJ9&+u?+Ux~A|Ih$n zKQ6r~7eTrrWQsJW*ITbXhZ>y2RwYKeOvm7V@QJdSV}i=O z`PB+B`x0usJ>&F@`N6(WJ662QU(dl$am#^_UqDN>vke%+9Z4|cc{G9$?hBNfS1`cD zKPA7|=1#U2iwnC+Wd90CG~=^F)7Ms;#iNk9 z*9gUg{ObQN-#LqRXIIS!t-Mbhd&LC}5crJVp?9rLJ9VpJ{gBWil4Pl~X*G$(c(9QCt zX>+VX0AH8%_m1dORG%i1o4t-sjx0~OkDD}=^7<}e*xwG1JpgI79YbvtO3q%<5)PqZ z`y)&9DMb62TIg$gGbenRx_L{C%@L$H`q{k4CHiqd9&E+DO>ZVO=x}%;�j%hzj{l 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 cA`Ne~JMh~Ib2\"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 \"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 SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\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 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 :local CertSettings [ /certificate/settings/get ];\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 \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\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 :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 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 \"\";\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/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\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/293/c17fc8f9\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 16:15:02 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\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 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 WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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 FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$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\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\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\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\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\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: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: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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\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 :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [ :pick \$PubIpAddr 0 15]}\r\ + \n :local Return [:put [ \$PubIpAddr ]];\r\ + \n :return \$Return;\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\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} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\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\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +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\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\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\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 :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 \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user 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 :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 :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 :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={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add 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\ + \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# 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\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.02.12\"\r\ + \n\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) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\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\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## IP address detection\r\ + \n :global DevInfoIncludeIP;\r\ + \n :if ([\$DevInfoIncludeIP] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP addre\ + ss: \" . \$PublicIpAddress . \".\");\r\ + \n :log info (\"\$SMP Public IP address detected: \" . \$PublicIpAddres\ + s);\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 # 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# /system/script/environment remove [find name=\"buGlobalVarTar\ + getOsVersion\"];\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# #/system/script/environment remove [find name=\"OldMode\"];\ + \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" +/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 +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/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-download=yes crl-use=yes +/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="Setup Global Environment for scripts" 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-04-30 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/20260430/20260430192001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430192001-Diff-Config.rsc new file mode 100644 index 0000000..fc85bfe --- /dev/null +++ b/MikroNUC/history/20260430/20260430192001-Diff-Config.rsc @@ -0,0 +1,57 @@ +1327c1327,1328 +< \n\r\ +--- +> \n :global LogPrint;\r\ +> \n \r\ +1330d1330 +< \n :local JobName [ :jobname ];\r\ +1331a1332 +> \n# :retry command={abc} delay=1 max=2 on-error={:put \"got error\"} \r\ +1333,1334c1334,1335 +< \n :log debug (\$0 . \" Trying to detect public IP using default serv\ +< ice: \" . \$Url . \"...\");\r\ +--- +> \n \$LogPrint debug \$0 (\"Trying to detect public IP using default s\ +> ervice: \" . \$Url . \"...\");\r\ +1338,1339c1339,1342 +< \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ +< detect public IP using default service: \" . \$Url . \".\")}\r\ +--- +> \n delay=50ms max=5 on-error={\$LogPrint error [ :jobname ] (\"Fail\ +> ed to detect public IP using default service: \" . \$Url . \".\")}\r\ +> \n #:error \"Failed to detect public IP using default service: \$Url\ +> .\"};\r\ +1341,1342c1344,1345 +< \n :log error (\$0 . \" Failed to detect public IP using default serv\ +< ice: \" . \$Url . \".\");\r\ +--- +> \n \$LogPrint error \$0 (\"Failed to detect public IP using default s\ +> ervice: \" . \$Url . \".\");\r\ +1344,1345c1347,1348 +< \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ +< vice: \" . \$Url . \"...\");\r\ +--- +> \n \$LogPrint debug \$0 (\"Trying to detect public IP using fallback \ +> service: \" . \$Url . \"...\");\r\ +1349,1350c1352,1353 +< \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ +< \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ +--- +> \n delay=200ms max=5 on-error={\$LogPrint error [ :jobname ] (\"Fai\ +> led to detect public IP using fallback service: \" . \$Url . \".\")}\r\ +1352,1355c1355,1360 +< \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ +< {:set PubIpAddr [ :pick \$PubIpAddr 0 15]}\r\ +< \n :local Return [:put [ \$PubIpAddr ]];\r\ +< \n :return \$Return;\r\ +--- +> \n :if (\$PubIpAddr = false) do={\r\ +> \n :set PubIpAddr \"not-detected\";\r\ +> \n } else={\r\ +> \n :set PubIpAddr [ :pick \$PubIpAddr 0 15];\r\ +> \n }\r\ +> \n :return \$PubIpAddr;\r\ +3662c3667 +< \n :local PublicIpAddress [\$GetPubIp];\r\ +--- +> \n :local PublicIpAddress \$GetPubIp;\r\ -- 2.52.0