From a880619076bee02682fda82ca0362818dcac8ea3 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 02:20:51 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 02:20:51. --- .../20260521/20260521022002-Binary.backup | Bin 0 -> 251978 bytes .../20260521/20260521022002-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521022002-Diff-Config.rsc | 4 + 3 files changed, 3449 insertions(+) create mode 100644 MikroMaster/20260521/20260521022002-Binary.backup create mode 100644 MikroMaster/20260521/20260521022002-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521022002-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521022002-Binary.backup b/MikroMaster/20260521/20260521022002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8810b7e53b05877fecc5e7dba767306614c4a024 GIT binary patch literal 251978 zcmV+aKLEh*sF8C@*aHA@>u`}aDSE64??8DYRv|Y4000O80004Z`SAPzLlIa?k#eQ)TyL;kxQk ztaXb155L-T^&b=+pk!StWo16e!}s|7eT=O@lAO=8aNK?VQp;RZYEgsxXU@r;V1G!+ zJ*~^IVZGm6ZVJ%KHCo^l+RJmAQb6@JEAujn`TKS7Qix{U%x{$G5dS!fAs_1Ans}k? zU!S3P)doY2ClZt037<9Rx{HdUqG;gq`@v0@rIq|@;u$_4_Bt(w zdrwKDHp102eA&)~D_6l0aXax5+2HE7IPW~^ehAo%jqM|gI%RAS=f~F!)O$EZLb#k? z`7cL>tu+aBY<9!U{NR?w=J@jFu+wx3Xg8OAJs%DU(Sn=7eAMD-<8qjj0~29GgmEP) z7O3y``+{Zt2Yc6}*8?zn@4$_Z3w*L@FX*@>is24{Ji@&iv%38v{ zu|h~b3U+xMAT2cNj}f@o2etu0vAuv(Z;FncJu8dzTs=DYZL$vIzrEG*xJJ+|@4#mg zMuXT(P9D+TDtm|#J7XeGqPmg5u-=s6#NeP|v>-#1gE|pZAe@6u<5$3r+SUb*=l1fT z1va$7%J+g4>@^Wf1>RAPSg4}G#0KU%9c+!k#lfxWI^v*%ouM8WhwIoSMb*gU%GQjzibm2&0njUcrO}{n#o)q|xC{N3% zG;`19klTx?^U43DaY`q{OtbNl}($&57kYDYpcw{T#_>KkdGF_aMc}#{=qJthC=P`-3*e z=u4*+o}KnMV%lfeMBW~EI5wxY&vTh(Tyvs(n5={};4sw!y_k6p9ji3%pzT>R8DvYL z9+ATV{T#QkeL%cjmj!;Qi%Y6)_6L0K>#im_a3?xnWzLueHb0~=Nh0;SOFTlMO`Zy< z4sqiA9aw9pC|g)!nOB;ix0|ya3F_UWL3yDPG({ea{LsiPBIgga5m+>u*1F?A+Z%FC zPU`MhowibMoBJNu?JxwFFEEnPG&LB zC~y`z8b^WP*eGYEEu?Hj+CQQEwR`chuN~5vMz`?h?1fryC!zp~tUmWyJF8Yoj&~fQ zy(>JH3zENg$Dbyq!en=+sO^lwJl*0eG2V7~L$0CNn=$!xW-`b|n=rIyFBn&eGNI{}NGId6gGW zRJmtg0LUXkb!+_@&P;O2B~h{VcFk%;;Yy=A1Bs_>rioIIaX6~37Y$WB2q67%(u3G>Fh39|c zftk^-^u!fsXDik=9^?v{ubB_s_2e1B-=s!9j~~4ewI>gbe4oRhw8y0mSrp zcHrrWYqyB+X{wnlN+_{F)HQd7y0+cOAdn5)pENeiP;gzhHpGd12|(pdaplbUpSpB$ zdyp@*#v+;EcU}_17np&f+n$WZsf^GqDDN&1J@U)03|J&Ae{dbEY8f$?`BMLNvtjCd zvv1`kdMN_`^M9~I3(C$gUR{h=uo}1572}%Bv^){_9x)ZvFO#yaxSaP8BaNVPIM-gv z0a|(uAz?|@esxx&0~JkhX9=oEd|U;@2M)L!Jzi@! zJ*P9S*44!>C#QEAwSicz$I7c^R*6&2iS6nTA@ChCTgW zB{?6weQba}zk$X=Y$Sy|Dha+nf^@F_^Xw@zkxm%%$4ydsWb~v^7lK`+VT(l{tY_i#XZ@q`Ce(4nRHK6FxAj5PmJ0 zs-vgRNGmexDgsv0h+Z}B>jIKOS3!Berxr|$6OcsQPGo8_ZDng%A2B)0ZH*_e;EhPI zRWqnG*|>4sJ1-CK-e&)cwCSbw^KzL<6@ny$6+V|88jvR0eYxIMXT5W)s3A2w42VQB zNz)<{O|QEuD_>|rswmI6OJ?s|oS^DA&R7Xn>|y@k8?it&9rs+NN;g&v62LsJ9R<@j z>8gfm8s0_3bZZS+J!{b_nFdqRy>Ji5Z)`EPVA^BJx7=N9_9Q%0Aspng|OmcAzmrkXWX2&^_7 z!i$KnSC}?MCVB1L&a@J%TusH$wq&;>#D98yZ?1=Qo3Ak|w#nxfK(>*jde}d`^gN3N z`&2rzT4xQ`{**O+`p1LJOyK#{?k6w*RAfgR@!Xo+Eb2dC8r#IxM=Yn}bjs^s3m{t<=A>ua3@v-M3;-3Vkck}vBoJ=2mmcGPa*>?U2mfKKBtjA_O+rjt(C~ z>isWc*#QlAs4&F>2Ntd7N_>wE(R3KUqG?MPYoy7xu$K_ORp!)@E2h*1B0DY0MAA=q z2#P?zdc(n~gS*qe23vov+Fnd@M8%l*(u6JYbFC?np4F`cuhOU8tXG6GI3zXuJzo-; zB#G)Q!X?coZvPm0i*OOdej4E*y6wTJ;VtgyUlZVlDw3h7VS#Bn$S{u;$q;v`m)+h< zP!RBBLO4l%prej!4inYx%^Y>+ST7;GsR+(D)^kw#QGFS3C1Cry-#cC^>T*%(;B&F| zo`EN*3JfPlTPz~{rZQXGx8{PM8--lYdA8ueRjtEawJIr0`xyLcDcN3D`qvTzi^<9w z)~sq(63I!@S`$x4y)O<+QP9nPtKNr=_d+O=oNGTRmShILSu39T|GQT9hcM!>aQSgb zgfVK0^7|@w3j>l#ORNZe1oc1GI*vw)AU|=>Oy%3kwMw4qUhxbR;<>Yg!<+~8dYw8& z^j&lzUI6dPB)A{+L7Ru?k@lR;^A<_*^%{DI^4X_d>s+W-*xA!446TYl7 zSLX|$Qd9qK?E{Rl7qWzmmOHldy$O&Roql0^zH)Bouke+SSb4EN?&r-Nl2`<~*LamP zhQr;soLy^!@L*QfT_0BZ8tgrf)V|9?y;L7{F%7$h)xi>wo&;c|q5xw3j%VEky=DcD zNA`^bi1Hmo3C|U|&Msu#JiWljFHs!OB!7u|U+0W?Ot>g=rTr_yfEF^yrgLt-O0`Bc zF?oDMu;g?|o)k>fjm?jfd6VgsndP!20<_t}r5Qla)Fo1L>ui+HHO*M++Mqeo<#s>{ zk#cj&bUIRwAuPl*dtmhW)0$a^lEEH?o7tCh4$k+5B>+p48UFv!;p(^BJc=cm5Ao(T zE0_g=q%0Y!{iU~cEy>bmcuBPw8JJ#s_wn4^kLYCLS^XX_I!ncmb<@5-* zoL~tH8XFeIZpe3!tQm7o#31tnyG&txP4!)90a@&U8qN%O>Yx^!-Ng}{NsHv&Jn+jy zU$9byo3iR~g=N>079T=w-(%z2RTB@#O29mYX3YCk- zAvc|eqOr8SGcnOv#P~MO!@qs2wmOyl#8cnY+n9vEt$bAwp2C&qgAXPjY3!5;D#eF` zD_+#NNvZ~eQBaiT{OG#C$TXtFU1{m{XzxUJF%`8NHfcs2xPGo7$tr9b62Tah5!I@o zflO`k0Ru#Hu(H=5GMRLd1JK@dQn6mo1cYHRm#i8N#AXj+vPOO|I%mhrn>RQ z@%)g*V+qM~rIlc*E%4c(n@4`tT4B~^J5x#b8ams?*ZbG7oBQluueOU8Kc-w+j~C$Bodu znG;m-2WJPoKkXJ_-u7>K&#q#;Glt#x{jF+dUII9xfP>e>rC8%N5{}O432bOwG=O@z zbp^mgk?qo_Hl}dKO$M5p(ds}9c9FY=J2}S12?Yl4&+rxxh6qsY^~nTfo~#3gv=Vhl zTE!e}1nI(x+)FhaX&DP^m^e#5Ii4XkqD-feorJv}@8t0M^n_M!PaQc;5@0ookR_pdatW_WuMI%#H@xOe~tyr?<8xmhxGC&PONhpWf^g_f)e59xTfb?h9EINhN zJyMdHUb+(z$sYJN{&NOZ0BupozEiS#jiPnX18sJ$hLnD(y?Y_S>g0OeYBE0*!;VU- zFgthJ#KRBNmpzU;L7=i2qZr*uHJEjifMPJo_*5o&R#5?N18I0lPE}HiwII!75P_Hr z-;}f?_KK07A31v#2hUzYZcE+^fPKO3IUDXsx%&ley9e`m&ybOJ6l~KOSg+59Ad9&Y zkIAa@u%~@|@g$nBPR`u?vx~D@FQO^uymel6qoo-vgYG8Z_bV(I&u0IeP`2 zm0PY8PggOm1{@mgw#!Zl>q`_P)&V~t`k~>k-vM=#^$Inh#h8r;*~6`iIwK3$%u-}W zNM#R~#CQSifb@e*h`xVDRt%3SeFD~c1f`7;9K^x&*cc|)Nk#+LALCa>VuXo_FuKr+Cx#|OUu$#JclX=TXtf$iopiccf_I^aslNm>?{ z{?mlNyLNqGzKD~G(hN1X82`!JDEDqh`k`Uz@pCo^;jPgk#Ve+N2!xpAvxpb__I+;f z%v-~%0ByP$-+9@Tm-E*qEoP7|xpl+0{^&mlh8N1f(wDEIg$i-ad||3!XXn)E7%LNmWaKr(#KhqFZ*___2i2HW{4?JU$)5 zOxn8w%!q~NVBt78C^=PdrSvS!rE2y7{PM0qa%j1UH5)1CGWlx!VFmg&!@OeGis|`1 zi+@)|X~6Rv1W#bz!u1UR!`Y=uUy%A5T|}7Aw9Vh&7?lmLYax`O2Xh{Rn-kJ|D7mt# zUoe~KY8R(;Ppvzc#yoWS>P)k$pcb3woT)EDoZ&@_@tJ{daVj8Y!ju1AtGoH_0oM7@ zvi}C#M|z3vrk*CJA{!(A)rUP1+or+ce)Hpq7^Ya_>LN}IUmr*2cu7r(pWV-{HX<39 z4+iwYf5WM*G9)Fhj1;+?hFeC2n3v3`&ff8Efr~F3%G;EjSGA6vVfICZg-SSYKbXgM zfmu_I%8aJq?}L#rNNtfPosjsxr$Jyp26->7FZ8GH+l4l3-XQ60c6pU=<57GUnr-}d z<>Yd|@{W#w&GmPbAI^m(SLFEhE$h)PVAGBV&yTVg5HbC)@Z}*UZNFEJFqTyY_`iAY zFyy6Eys);8H&`SR#g2KiHPLZnDNsJtU%9*<=)doj1g=N!y5YZx*R?c=^U&ztnBakG zkI}eFHQ=Zvrv6J=V$kRE;dSm(Mp;H=D~Rgk++ixm(v+umMa`l)!CaeUzWwyftMwJ_ z8aNlDLny_wmUFvQ4;f^n-DsHmp6+1wiUI_D8C^U2cQIQrPpJjYAQO8eG~t%dA<&VH zffI0BP=GFoO{oDraTC6XhPzk{DifVYenOC7DD|TM{KQ|6Pmm@2l$DUfYjaVnUfg;4 zPYYKZ>04daZblxu44=RYYhoz@#JVV!pKJt%YI<{!EoxlKb*l=d>xNW-1qNLALyX*CDrPp0$vnr0i%qq0$Lo*h zm$0A}NniMQqXn<)vU=F!#+`|N&)yruBsr{deqzI_VMWODIinHOJ|AI})yC|iZ3l7g zfMaNf05a$ojM49i!QEZp2nbeIPzw9$+baef7R9FPSLNXMVGSB7qhB2@Tw$;OA{Dpv zL}?(}w$X4+AXD2kiqU_>GL#h^ZRd|nrX<j>{aM(6aEESYZ9rqcLxxstu zCj6!|?ic9mHg0*c0LMu-3sG9i$~_qd5-{@($S}|t* zpMICxsBc_t0}7+^FWW_QOJ@SltIxErCbV4SKcBUNTyInlEV0hal3w} zt_G-0BCHDEF+$B4pObx7-)BktG3A8Aj6NYxcw=c=V?*V|>4iXMJxtHWuPdye#Z^cfMJe@W36D~!Zx1G6T^RUO!b!))C$Jz~+Z1p*BTB6}zy)chb|U^ausFHUw~- zy=nk%DS=K>8YHr-g8meh?g_bZ`GY zqyxXWSJF6s2u0EowUPhxI>T^F3!V1U|8PX(n2JA-I2Eh%3DW?3fjC3J=UsE^8U0_x zFKV3W;`UIEZdBmbIdIrb<@qk+y1mvw1F_ocUGDu_gJEm*(5rr zJXex2S^>iZt!~eoZ%*9e*|C_#teeN~Tzm)cx{JUEH}9##ODunU9&h-sXF$ur$=7IO z5@)@1#6_r@!hG|R@T_8Le$j-BiXMlB0L$KqOmsY)b5SG(^)ykmEVz#qwomNCg5Aqz zZ7LPV&L6}h_$YyUmC|U}DhP7{bm^~`)@)=_6s{=f^IbF1xNhB|ws}$2WDug>!zjjN zy&V^@u`<38`25Vzp-@q4&TZ~<=`D)_RV(O@v!A9$WV2gND~BdUtKt&;w;=@0fzk3m z2m0=@bsUV+9n9);Moygabh?0~O>w!Szddh+^8wH%p)3G>3Gr~axh*Uf#{zO1vybIE zaC)ndMD2Grp#2u0@=mzR(tJ%)mSTgMHGFP9O9`x*o#-Hd{a=h{W0TjX6Rl$2+A{Wj z^(;pIA`ujC(m- zhBz4qas<7@-(MXveE{%oZ$YzvAtFBMufv4F3`SXN+g0bKm<5{RR$~VJM%L(L$ib~%?Nh(t*thzwpEMsG(ln<#W0`fs zY=+D+BLM@MrG#B|EZpVwS-v&l3-3#CgRhrwi>+|cEx`A9b5_L;vl(+&fy)n0NWOeQ zGA;5=SzbW(VE5D+gLv+8Q7VHM@cia88E&^lY^?nPcF%vG5{Mw+?JF|NNIwuRi zA*hxVP-Ln1i{$nNqvNT1V>OP^J}!Ioj_OH;I~qPEv&a_+k{rz%JbmMW^DDs{2E#t2 z(6kmq0%oUq-^{UJWG%yUP90eSh|UXc z`|lf1)^bd_e4qO(a4h*cN%O|cB>yQphz?@Y)pl&y95KVa+q-ZtTIEJt#07|DQAFz_ zn33?4FiJKM3odme`7yR7ly#pM>L=j(yj$?j2^110vhV-lX`s+-PMm0*O!-}VSkG0I zQz-nyU>5WOM$2@#XVq6MkJZzbd8EHL$7JoyZNe=}mk)g0=Az+>lRys4pWb`C3u)%g z^+eX{Di&!$dr9mzn($<~{x>-nabx(c9jf)4oAk~-2nj^YXPuY&)q&A8*5=jx52ZT# z!wEsCsT^L7zMVSvT1{5`K5%`1MfGFx`{;nxT=6!cBMmDk*n%)DEPV|R@Fd%J^PyaP zMt-)rC$@|Y=vne1wo{%OirT@l%+9tcYA%St$BYWLS;pn~imMQ{X0Vu%_uMUQUquvP zj9t`eR1_<)DCrm@`v`sCJ@jAlNb@@9bv4TmS=~=J?vKJT z|IFhdtKJsAAAjEEdpaKyv8L%fHmY;Qr$tUL!tcu6^?QhS; zZA=gG)p|yYykhA&uKh&y04I(O>?(Pk$Y#JCreAX_II8dqs6C>(tUwCqwD9Q>h{z4; zY3$Z8jA1MP`6eY&wl!sdv@XSV9~oNZlR-N@AGpFq`zqkw0_Bm<`bXdokk;Mhz?F1m zL-d(Dw+OC0A?q~im!eB8zha4x5~5U3TR(ATa|7aT=;~z<)vt_)mN#vQM^e1MexspL zQlMz{lQ79pgg?*YaTzDMTS%eKpld!~fj`Ejh+a){u|t=U5xMl!zi)>~zV zYmKw2A#rWk`#pnC6F|8jpTxnW0(`ekq6n8Uqx9lMv{%2>*a=gpX|S``S2`fwVF|0D z=Rqv>ef9ZJaVB&SffRMaPbK}bdf_&+M`*EVYTw8!MNKORe)WxiCvzQjd|dLf3u%-s zG?2;CL7C68Fd74wt6#_BnlmrJOF%WzE6_&to6HJK^-KuRmA?Uj;u-n+J59`Tw#LU2 z->#o8ZqyWifU6=Cv1+R6*9%~)C|ktP1fbXN0Ta$wJ`#E9)U*R&j4K_kTL_`R}=w;*gH@{RC=xo8CsJ})E%20;CxIu8cm7Lvc)ALP=}Cp zxl~P>sSpaXd%3^?Quh-2N@)m%$O$se^3JJkoHoyoibD7Ik!Lub4yso>qqa#BK zymrt60f8z8R(Lja-fNc0AxdDO-$#=chTNpjz8|aM#5-({Vd2d?`ywhM7=+sVrf%n4 z^e%(ciWh1o7Z0P>?yl1A`aIzcZdUmQEY>cvtIv+~kY9b=ynJ4+U(v(dZWq7y6}RKT zS*B4)7D??{?bvON?EMGZk3QJJihMhbVexvXo6z4KZJ-YzC zs8Z5F9iSR8e&V7NTz_Kpch`#e&Mq+S)a0_%>VC4DkN|kF>;atYyuDB2-h<-Jl6k&l;P2_BgB>$!78VfcB$`FY01aQ6G;HjT@IKA8vh!^v~FMaX+b?h_BR$y1M3s zVOIH>zHZ@Copx>zo=oBRrV41fjH|J*?4Im)pk5F~h8^XKaDmB7DuG)%(Ih+cpa#1+ zJ7dPm$gsLQ@=V>Vf=2+kik#JnZ^jm)s2nl9stw!v#P8;JYV~z_F+2=yMvK{Gr6@d>c!K1x+|^XGQlBkStlN8>bV|c8Pq@sZ|?Ie zCQlB^MY}YDLIt@*wSiUymP1f0B^WSVlyII*h_8g`pvWZ(v zJ8xQDE9i?nI>@tALXPA$db81_`DqWEG@YH_FiBBaSf#jyE#y7BwxCB0HY-UD+vu>Q z%bMb?;azIS%jD89!ogLZIwVY5=3!BgB7OK`WYgfGX}=4b(x9F`-9&B*Qz9{nB?sbR zL81ZX!syQi%0e(1$zB3V_5Y;@EiuYD+Df>>_o4ZNK0&>OOu zsclKiuE>r3^lqO4Gn7`ka`6CRaUUvS1^Z{bTL*T+%yiS3z_%AD-JA&D=BhgyL-SW* zyXQ46H*HIj3iY--XPdfapGaiXEGv|;_}G3XR?7U`4Q(iKH*5y91~o$u_RYXJewB>%!tt`>vSN^RDxLvEPIFAYKTagncQksnIgZY$@ha1#t7PhA`G7r zUET2;?=G*+!}&e5pN;=aRNDNHXEMeKdBJ%;k}hC{ef-_9t4P*A1+0c|$<0!m{GvGL z%zRYio45XeDcmG46a7?A!MJ|rOgvZWK0i>=x^QN-iv@hl&GcL3$$Z~=4rC~EtmhPd zYHx>&(7>lRZGbj=yqKfiy&harX?us2Xxk(8JGeC1*`bz_N=eTORB2g9PdmUfrF|;u znX!Sf1YwqM$*POzC3GJLhgOPwyar^A#u1tw-%n-dmC=>9T9b&tpIK`4V2E)rz5t?g z0|WNv^O}!Kjqli6vn3KhbaN5_8knABK=HS3l4O?7f@q;B7fQ?Ra~)-9A=Gg^xj})rts2|aB6F*iTf(aT4{^i&iNomog#|v*RmLx6?#zr(oI9^f7LBNU@>d;1B znc%Y2Y48qz>$=2p96y|>w5LDVJ{kYy(XehrVDVjz;SShGT|1|hj;L%VFN?1jUMPG% z4gvO60M5@&abUTMm}IG><&mAG_x37@vYJR@#@Be$JqEYcskj$8j~y+vxRYu=VWLxj z6IlR)us~G)v_z&p`xhRgsiyfX9G#PBuRN66{~+u;b=e?&1~(={h8bT0Nfs-Xi0jAt z?v=4CkH)_&jru9~w|K}!08|1NrUUq=j(}eFqSkUXDh(HJBuJVd+FL!i4iF!d?@)y= z+l@p$gIqkAif46(*kit8~mXcu2pxE$(AtcYc%Y1d9ek~ra+Qw>eUk{#q#1Q|b) z2^3|r6^|7K)`T~&n8*(&b)*KAunX^?ztf4_#H*PyzphRkALW4#8T(lLT7~In3HI=J zpJ*;^A~wR1f&PJIIj2N1(~$%|vwE@dxA>>*j)s%Sb? zq+s@+e5d@qJJ=oMqd()&=^M8*0tJl@^m&Lq;oKE*=qh?q)Ddl&yg~w5y}BuD-Qomu zK4(^gs9jt#>U)CWihHOW$7n}?5yWL>M^Jr>tmJN*9J34@yO8M?h2(E#4E7T=x5hPQ z@T*ats0_mr=W!vQ5gmRP_{n}2;NEigeS^Mzo5l|QGO!-2es1c{>9l5=QJo*G^Ke{+ zp_Mb!bw2gsRrlX>jjz`fkx5=2Ze^B0@4M_Gpy1|IHik;5|GaJC`(+jEr)^F@TE?IYgzsx= zsO(zotPQGRo$FILv;gW@n-jgdpyoL$D6OFuA!lz=mpn~ zb!UDUm`e~;D8H1`RTLA$ncXIh05xDlxP=UxnykGi4N(thSR}vZUV1AE@p*Fw5g|;d z{MlRzU6D0{`>K+P=2~5RkApAWe+%g-A@(a zNwVR`L~DINE+M9r`Qs?genhu+#3jf7zrUl?8b+V({MFU>0Sx7$LP@qLNydC`9vHL$ z53Q{jz-L1s&rvVwEO?oOI}i^=l=OUHe@Rw_psqLsvub1bpS!a@bXnsK*La+0TxI&} zRTF_NCYZ+Q5)^#!SA1V^%cJxsOA}U^Fh@TDbyzHZZ5~3`(Y31+a)z-mUViA=qICFx z!RvN|651vN{ekglxoqTT;O$s&SmftOVIA-|EhOh${&;v?1J3O3iJU5%T5llJkn>?U2(LSU-tAuZR5Y4A$Uc!F84(1Ch^*4#dDif2jPY;*P2smqLMY zxW3p21WS`;DZ5LYgmfb>cP?dze0PkD1Gy-7e&Z&c9yxTdA_Nd}lTcn4q9Xo}yC0WQ z>B-WS5+;dRU4R^g610Ue+z>z9j1`|_cFM}3F)Qv@?_NX5Cr@{otd)QK^T_A$E@F}| zx=8P&fJ&ZG-r3{cDqME=m6_nHZq0z*%e}E7=?ulvmjxte;PyNP95P?Ok9$wjvdL#xt0=Cnll-FtSlS?}fLQ$E}mr;F-hiw_6YIFVa(mRH%Izf=rBVPhocg zpz}!jT7|qkyvN385}y*{(k;U9g(yL=dynbrFkW2%!BF zx(h$;$SoZ@>RziU04kWVLy@(Tzu^lCLV|Azn4Ixy@bD!z)F;dpmb>^jX#=_kI5398 ziBfVW*o=xO715$J?;_qx%}T~~wKgzG2lumtRUX_`He$yq+7R>x>Jgu~c1I|Nd%2R< zCFTw*KqO$5^iFLo-75G|Doiv=IGBmoPy~>O4g46F<&a@AJD?S#@mk)VLu&|qi{4&d z9t1?Gwx%EozZrTWRm3j>Vr{JoPW!YWu-AuyWU7TPbqbv4A+u3H!LV7v)>u~PTE@-brXs$j@btN^%X<@WkCEx(u_;PFTAk+O+ReK~vgCYP3drO3k;lM3XEoCa zwtuq7v>%*yZvy=ci&7#jz=0q!ClF!kym)^$(bWx*w`&D!**&wLKpnPimgfg_4U?*c zvQNyf)pIL04KofTwlYDLfl#l<@Kqk?5v=q*2yvqc1;37}z%TrXX$Zgh`9AamHg@jm zd7L?Dl+A1``4ME8j(rU!&Lkpl|Liwi@&55>ehylojPL5NUctUsc~&ADg3zu`4ARmYP|G+~?8<+A z5x{Iawh~@@s-;vsK2orJY@o+7d{G1uMz(MbOvj4J?^m5(O%gDy8Npsl`!pduvM868 z2lze3-WwEPhYKJxEbC%XMt~a$o&-sM<2knJhbEnuO?#4dtp(4ZIp^dZL|d;KQx|>c z*S_$g^;S7zEmyK;KNtq{Q1FVlMEnyk#N~ORgtdp3-yHf!3oH*vfg3{hDHAFuy`0fB zk*Vb`IQPIjOJ+NRV_e0VI?8PD2R^q(*8nVpy>rUIH&_q9;ZddAaD0vhdaRdCTW0x&piVAZ&=mxJ)afNNS^+X{ zlY}`(12ujDs6isYM??WQ98B^kR3sl;y}MBINyp0>ssT_{1ZM4nSkM*D&@cA=s3x9s zRU-|SJ$EPM4WN~%NO~L|7w-AwZX4wu27$Sx4R2vjNCl&U=hAdwJ-Z|`CRaR->i0D!GOOE99J><|@Kc2Dk z^mZq+=IIXbsxsCqj0wW11UkZXnqeR|YYXHirbv_QqP18eb_L6QNwhqT8iX$$y}NG(x|g=&4=BK#{{87SwSBFdV}){V-{I1-L0|+brW1&8N=YeTD9(TRPH3q%N$iO>RXjma-(;EVisnO_w$|rdRC$_NiD*6qTn*0bF)lm$$ zUUaL!xe;o8$J|$xMG5VpV(peUiL=0g%^FDH&28k3FP`VvF$4UD+6nlA=YS1h*?}>>`c!0S`LZ@u2D+T#?MJOZQRXY>@()skq0&KV?+8?Fm=GTw;DzThd zhPAd_yOY^x;XICa`cmx|Jx)Z+EvGvyZlcRT9igIQR<6;l+=%s+z%wjxbCFtcath7R zwseFs?FT+t^NJHKU%USR|B7!)$@Z5!TnMvZ4AkqcBHEyMT}NJ~Y6l3=jG3F}!XxLQ za1_=>NN^}Sb~<|4^&I;jG33yea>Lc$U@8zFx)fL*;3%v_bWk#vK0$D*?Hg!EDnEM= z=Iw<6ZLb+{{S8|56b;?ipog&HdBDm8l}c$*BB7csGi^UV1*2O1G75F&!K#}K3nZti zW^1nv%F6Sl>)8*7ee#S1X>mXjiO9Y8HmAf39lc60_xsbRJGJ~O^kJM|-j47AILY`I zj7BNJ1?4x_KhggZOLT74f{GvQx9Bb-JS*cjFV8-gz@U5X4Kg?S(o}-}IRviD4q=%v z@{|ir6lGv)I?ha9@7J$VUkn+fsagNWmMZo}m0)>}`d*z!cbE<7+V}_6K>{CqRG(Gg z_(Mbf8ftapy=c)ivRo~)I`zYeI)35kpIF~2=0e4nsK`A0o-0bmh85??>!f z2T4M4MKUBrw_@<&IpPQi?FACqzYPZIh&dOQwQQd&#x>$~tH7L&XB6m@-tYgGuA)5E9>v(qF8wLE&{~tnx7~xY@W|FxX<#qd&ZvOB}bR zZA5tUdrwEPR0-bao})9f!j=g+y_le{vsbQhe+>r*`!;79G@wAgs;eucf|ojh6BdAP zV6(OLw3L_g6>OayR=7SaeLbnhCQ6F5x>Jg^3$y%lP@(|R&hSC@&^3gWq%3Ne4t9SK z%4rm!U09+x=O;KpH=?1VdBnV({wT+Hct~iu&#$nkdTnEmkNO^KJsg{JAu6~V`C|1B z!M*Mx0X*P?6%nGCy3D)e#C`I!Lv#2_Fe>XDIu+5ev|!m%H9wD`T=XCNnnEo+Z9!{63JJdNSp%gb@JC%10Br<2sDq$u_l~PJR zr5nacL^9z<0+cW|EK$=^5nQkwP&&4gPZl`w{}yc5)(v;sU?I36cXcK7ZzOy>ou;tL z2$%~;B_u`7W^l%sLQf-i;~_Y8^7y4?5ep=3zuK+U4~HuJoBX85+=V^6^|(xh-9hFS zYx^{c9kfmsIoAAea9nalZps;?4$vw(_Jk1R|*;nVp}bcIuVz1^{*GY8l@H$e$D$fGts|CUgxYbgEn^?bvL?j)@gfs zRZ8)b=|kmBkK8vEp-- z?-|#)Gsy0XXAe;jk@8PSo|0po^bQvd>akV!Lh7UJ|C`015zyu$(fy)i%8z@LRN|>y zJ^D^zT*wq2H1BRY_<0DAuky%PuDOeSJgsRo zb>QxO`?`FFTm`|N>8HmMg+i?l2IuFuLPDDTEipd0#SP2QVqaDuV8ZP z`QXfU&()ISOpBQ{#5LD?<8q(;6E9o4rbF$7c1aeaA53&Ns?+f}7P(~xI7K>(VDl?F zZ$8j#qPZ#_uu@n5vxUz$_VZ{@dyji=@2hJE~{J0#3(0P`i@r&J!6!bSXRcew&@tX|%j;8f5SQyx`pmN)i~|5N#D1mh6d%uJ z{2Qg1Qq#w04jMArV%v4-&e2NnS)s283glizn=^`^%l)^%eeuf~;69Wdd54=#2V1)& zl7!VF&g~IaF&Gx>CL2K z3AXZKK=f$UB*Aw)btYJz8Wh6Gv768wr}Zx}Vis|USzTe@g4dSI-_T|et~KmVn95U=KGLlWl0FY}oR{W=`(S`4sWyX(LbP^1 zGZznCYJA>7Cpd*LgFEZ;ya=#1)dat`2NGD44}3;i2zn!Ti4~~*I{dSO2e@^bpar*X z!Fk`6yKxclNYiPY)X{Ten2lA@QFb?{eQWDqGUHf%r2ZcCpwV!TDFo6?X=v(V_uG1W zUSDDMMI0*7!f*mQ#a;gb*qhBY0>_mq>m`D_5l*)XH!)zp$ML%SSAO+&sKm^)TT`I* zTR6CHQ$MCQ)DMd~`(1|UOl*)IEb|-a^=MTe0giS@r>7)`0)_!1q!2+)gCDC16R?k{ zhLk_IJm<%z8%USi{uVBKS1AaU7-57+x~#lig^}l=#6jya|B7?BVDWyXh%_Ge9Cb(i z?_}u4Ze(8>Hp$%^_0Qo@tj84lOzm?Thoh;`@*_$>4^kuWAEa@nQKet(IBf(ipRR?$ zHtzPxIk{@2S_y-YT{9`zbpd&U^|#NWwK|n-Wv{y-o&0eRJbrSg ze*%*8=%}o3u$a)!NpjDFL$?DX=0J)jyM@&c0wEEKTxZYulaCBHZg=ydo_B+NFPrg1 z+W4OmU&fmMPVOlclm~2%4apZhPElmR6TL0BQp5YR5|fVbtQud6dxd43dmeuuvj@I; z|Cs}FHfq{W0IFUDIkYpg=A5y{v|<^dGsB^Rn9=k-jJ&s?f#M}kaplv^SdO2dDLY8+ z%}a!LykNgptlD~c)PD^-71Avk=YWx)h?nDcL&&k_?K z@6(Y-IuJ@z;YpIfykmDe6`0nvYDViImpoYCgjvL+k+}b})$}o>qt@?~?9oqnUAaQK zhRnvN8B)Ayk;D*&KhZ!kfFN5DB*BD4ujga?cnz}y%3-m!l)x%lvKtYLe4W47BL$T= zea2)#timeUD4rQoG6m9S|yXB4>GFtR?8^pc6$gK zsX&5L%$1RUzlt*)xz*U~jS)KrTQ!_2>`3}N#$-paQACPyzA9p<fepCG-%BP5LJgO%Lu*K*}p4tGZaq-m1tEph|bFS%c~W78Iuk z>Fe2Pn4IOdrDZByj*$dr236^<;i&9BX(!68L({ULyTVuNm4F5Tl~DPICm#KbpR1An zmBe$`GPoCKKnKF%%)S33?b*A{^Nl};m?XT;I??cKWY8Yv3Jm|>l!GXMNenv>xE|$0 zz@%vbYm#FnRL|awz!tH_s&kr#bOd+X$a*2s;V(8#Ge|AWJ4Johl_D|ioiD6mnU#Tx zyWRK{=DPo)hVBG6@@)I%_3rtz>mkM<1nNSuw8duzGUi@uiCZa_;uF+2ilL^0`mBG& zgV*XvDSF=xhwoI${aE@_J@5nST-k%1`#^y`39uzEiFF||uy=^Ny#ojekEHnw-4|eUE zvQ)J3Al+zFB>>vfD*PI8Ki`_x^^3h%^dQqQS?+)t76(==*Oxr^1RpAG0y*^V2J2vV zL-_aK9Y{qFUq;ZzoV4DaMpSufmEAE9^;FP!iE$R6eYrf?z!%C_#l_QFEgOt9teC(x z-GIO)mxC$VvL+Yp38Bgedy(vIb~MUL2f&~G_d`)`71(~L3`d%ul*N6Z&+3eNxo-Xm z(luh_7!mv0r8V&GXr>1vK?Sj)!K=V^l_;Sr;iQIOk|Ty=J+{@B2M{mVkOCkBa86N4 zuA=2lwf!O}cZZp$yd@V3uXnr$rJ4$_qK#b|!Y)6awx)xP6=%+b4@Kbb5C#u{r%f zo2kDLq`M#*0`=n_elaqZ?*t=*R(89nd&pks>+0&a(r!hOa^)K#D>p|~^{~dk{YO)1 zIQ^AgD<|=LJlhR-55~V>xtSX>$ZSr9^UcilRCCDOUTVOVUF?@MkDIwsM3~lJ2qRhZ z_M$d-?x&QwN)|}Tvj7_S@ABbr!8yy`X@~!v>13Vheh|CU`5sDmtYnZ<-OdSNHuRtv zWf)hBB-hqHqFDff>&OS-`y+Y)g%Ek*2hU(6nL>}U%af_kER5zY)`D$Es{v*jiD;wdC@)dm*TkL6kO_m*N1g$7#<+=E@or5Eezt&p3fL!=}!)Ijk4MQ$L3DE zbX}C?4*Ke)AljH{GmPNxmXLh2)MrB=a%#Zr`K`d!Sthnz$GQVuA`h676#w62Z+I1{ z7h+p%ojS||!mLAm0+(EnL*u!zNyF;f9V3Kh_O#sy3qyp-x4o<4KUFzh+<}s{d~e%- z*B^}gJt{GZ>^;$4;M)!p35$TEa}de8m*iXfw}TgeGVBb8fhW#L$2yUve>fN#l2!Y_VcPwRo2M%`qJO6Oc8aYQ8=cOX(O|FZsF$EsUAmP9b5h>b6l) zU=9%yb~DtDWo>WlQ4~`8`^+g*U=RO$p<|TCTy5NGYVzOW8#Q5>aIZBD{$qCW%hxDK zqc$%xuD?ZeWm)cpZ0mnY{%iCe9aAk|0WSH|U`&4Jsr}g~EZ`wCwalZ+Ug?<*gV8by zlb`J)<0I&NqLb*+8&lw+Pw&cC62&tq*MKMuIi6?DL_J@!c5FCvWFyi8xa2|K8Ak55 z+8AhFUSo|Sd?h{S{ zceD#^Pl|_!6)LtH5lQE8{g(}{6?n(kx_pF;X|%aq9!5Y6QHFCkn!?Iy4SgF~F(wa; zhlhFg?}t{$Zv|0NQ$`W#L#KXzg!g)mWDz~^cK?ifQZ)5dTc47|5r%+F&5Rz;K~5KX znjHy8l}W6otxu1y_1V`+C?Q#dFIF+M9y%|VCqCgu=swD+tk~L>S4Vd{&W8cvO(|S- zkqXKd7?q`;-xDZy zSX4}_jm=+j??P4ot*pQ98UIg7?6tC$3oz9&c$eB1Xc-rSVyDGZ9EEY9A4sxcxx4R& z@H4zF5*#YZzvh3K=K9PB4N^u_dR{KNtQeiR@VeJJ%NuxIpGk7z%$W-|AdCqd$6NTN zQyIW#l!K(TA(UN;EfU1jb1AAuq5_$Zxw%1_QHd~9XpxltkQCj2(W;oat)dlmy~BJ7 z(|EWZVJu97r7u+E@D5h*6Qw`%10pgSQjiaU1}3p<9_UMlrThka^Ro=^do}vcf52_Q zqi)^uzK1^IWg*NZ48gz2v9^A0DUE`08w9a z>CPLGUik-qP>lYWh9_Om`P$vrQ5#yn3>!$DH~|d(<}FIBqc+=0A8~IDiaXmeY3pwO1T!jItrvq)6V|9DmT!ONA32zl@HE3iczAOd&n87KyfZHF)^A~H3Xl0T( z<4#F@DmMzM;BBZavdNw-fUWQc!r;6G?t3U#CqRSn?xF0px{%$!1R@+cOYr+~fk&rp z<66Ciud`8vxU~&W3v1wmD@fg_jN0@-omcpX(c_p>pI!N@|Fr&b1pK zqh20LoC#W9MH|tTYzPvsT5IgkVIndVj(=D)Al!Pcp|!L~$E3=fA*T?|^G*AVcGN+5n69n^`Ek+Wp*` z)n#3{4kppIQ1*f@(aX=<@QTQ)w3%S~Tp)@RGTIt6uk%RBcpo_tKM#`BPppDLp9rx$ zv)$3w;nGF`F$_Jo_-%iVqf0H9=P#wyH0a2v>2L@O1up@cJn#=V^n<7iq>v4&h=RxAz%y=ju(vVY0YIEo=ixqEnk@LdHy-P#MM(BE1dzAb0Rh_B=bMHqJYU%3GzZuPBxM?H9y@E5ZA)LjiKgUo!{{7P6Scwti}f57)QUwFw!1r!Y!J#Whs|` z6${T7P)+8UYD!Xc10V#cC-7+mBLtaS_~ca{asz*=V!#YS=G3Oll3lQ> zVRhbeuq!{Q4Dl{|ISlW-D9ODW0OOm8g&B^1^C9pw#SAoL?@nq}N&_cYaRbB+-j9T4 zPIsgLQbKY5+4ExDbr`BVW2x=0g2)8|t%h=mrjHBY4t|c)_(_QqY3xL)5d76zBSA2o zaIIaLglGxmF@kQK)l(#v^f1k;LV{!A=P10p>#=w@v1l$4Ru9KJDo-CW2}W%pY$e1$ zWG~rl3{M6}Akay+n1g{m`(*t_OmXv=mt$!7ajW+rLT=P=F-Twu*oS35ef|-h)@r?YLv>F4rwfZBrUW&gw`K zfdcS?w+08!VHFIsy_h4qyVFLWGpj_qfU(g?Y_w$0Q;iK8u%3V#Rk)U1HFkE0>(X33 z?`>1gmPT=BBfx8ztw;i@PQs!?cGdBxMH%5N0g~wG|L(73Xc_$&9GKS(GSs)(o&ors z;LGc=i-JbkV=%g9IjEp!THO0ut0bamQz(}1~l`&wo<#gZ;Z!qgXg7%{EohqfVfIRduP zmJX}dRVi=lsX%o9QFGCn5TxXX8&JPCKVaVwYz!c*5QQASoB2A^1g}bW?z-`a4t z5n4WvC&Bu+qBKqk8Fc`*HaN@&6oL$n0DaxZ;yWv73}gog|0F`?vHj_u z1ieM3O_9NHV>W)E{-~;d4a3h-P}+n<<2GFMWYiC8&qaGaIeYi`cXu_Ze118Z;&};c zMn=I{>?wHGWc>UrAM1_D0mTorJ!GYt{c!Q-^Z|cLS4}Lpg73JXE;h|Knm!~7p`(aP~`5?4Tl^~UKRJ{#XG&}LehR>fv)0p=RR$P z2Kd(XKyvv0AGxm&=q5=nf?^>Iz^<$(f1M}c7pc>rtj}1-+*&he(prAkzIw79_O+?t zwZzX|QDm@#>(8Z;yDkD`5HLEHu$tnXeXvm+Ii@P(up~hNf=hhC#lkNd`Oz}YJKK>B z>Wsj70AZeWJaji=IkqmZrfU9NVu8pxz2VS(VvTr)nDD7Th6EBgO7=KcJ{{DaaL@F)bB|+gA5^8RCsJ2 zMG*QZ#C#EOKe6LX=4V1aQBxarO?@sf_iigZoS(5rl%7enCBWY6ECco0eW9w!VlWJ6 zBSb(X%y;eN0D(SK&TOLtv6?|abWemm-d?RUqH*TU;Lx-?_QOWNDT(Q)*7`TMMFtm0 z%2PVIR28JyZH01Zo~ZR+Fp;Vo{k|=pKwd^AGBVSiuZ~QD7!&9#=DP)E>lX#ic*6!! zt^-X!ULiinS|TQcq|-vlJ$0;q%FOvnH`ro-#IxKL$B3fp1H|f}C%xj&%i$8T<}ULh zsd1M<649ORmTWfH59m&S72Ie-Bh%h0^xvN3;T@@GCmD}`zz6}pH^w4;M%r{R#4-f! zvL&yV_cqwxe*cm6f3Ph>u|o-iE#>r+P#q?(YU}iBo4Lw}F+xt7tEJkOap$BtvKv>G zDB-w|jFf;o;FPK(Stgo19ZND1n3^DSo?-L_{4oxO0jhwZ#U#Tet*v0Fbt;YsHQ%#C zo*ElR4-G)haWZd%hWsrl6rWyf6pw-2nwI=2@D9tgW)b2LKB9B(mK!b{7y^3R8IgRx6sao~zDo3GVIV%n3O4F4-S;qxS6 z!iv~}7Xjny(kSW-RBR?V`7JX9G5O1d602K$y)NiK6=2SQ;Im*9mNOo9YUBC!jl;QR z5JJ~=;Pff|?};-UQpPRBWfHyEmhM|IcfeetYl(+f#=PXVO4L{$57ivy(*3z!j+?M! z$h;mbMR>6Plxiqm1ToaDw2H!W@6r^>~+0&d(A25`3mVPR;GtbktohqRlNGemf zzvhk6LY-F*((KFZ=6=F(S_=*&iO}HDG(6{lpxuHmViTuwr#&-$xHMg=kt#XGw=>2@ zk4ZqPEO@~-f_AhIfxUQ2jyeRlR)ZBF#wVvx%}!T?1tnSGb*pa0@5Q`f&QN;T^vyW<+P| z-?76MLoSZ{-vU+(qPA?9G$dfy$Q*Vb!l8GosMKivvaR$Ujygjui7Ld<|(gk=IRF(OUaFpw&f${iT{mO?HrM@PUQWYa@>u#-YfmoAU2=^axY#_20M4usx8{8(SiGw z-ZD^69SU64d^U9GqnVF>q;2@XeF5%ZXZS5%2vQT86O! z{SbB{`8x~G(VV9r_T{0N62xxYe(g<)Yf8Jrt%%4bRlubx{CDT3XZ10w3-5hU54eySJZZoKK_ zN6p~m=4g^9Jtv^J!3Efxc6vOTVN#7Z3xY}OeT+wOnh>51d4D9%31Di6@lt|>#da`k zV;g#Mh*-Ru@%L>&6`eP|^^ zUi4us9>eExoStONdm+rVS&|3v2+0uNwpR913rUA`#YppH_sG7?#0_ zqx{iTZb<2&iZu7N3^;38<~T8zv2Yp{@9YhKs*8p215C{wwzGwxZXXHBGSSG<$<>>>M&4Ejw>!4{+umbTF75dRdfjA9dLA8{Y z&XW*J?m9(QqaaQZ5y`KTmfHCqb94;$Z2_H)bSLw8ugaeSFy8!}a6pwAJCM+mlg3>( zx?~kF;i5Ic8GyDQB54{rrg8QyTu~4z0dGjKtG#tv)n?vesj(CVXi;EJ;tF$6a`|F& zp|&aAeMc&lE_&g=Iu|pD^BCJXHgLUx!9)Mb${8fLQ9QK-qUlK@2*6s-WB$)#T0WOC z<4A{uheG)ja_o@kuw;1 zm;W^});-A@)APlqDGp^4jI@Wl%7xfeeBGVW9O)29#OlZ_`ms6#m6B}nL&gpbHgd^k zt^mb$KF8pVWMPc7HfY5NQ)vvVpBtVMgv8kKivcTQ>!@t;0MNn@7M;qeGCH`W2dz?KOnO%&teS$cEg3x~8e5A? z{{|&Zgh$8rERphxLo5jwno@IPGNoP~lZ)rIep>vjCbxV)q`wi#HjNSd(mN>ZHg(!- zzxd29OaSNu39>N|irjB_Qj3q~Cb~$vpXwi1l_ulNBG6)o$Rf7S-2oS$ zn^=zywI76zr3T~!`%)Fl`>@Jt8?fM`rO$!h>mvby&ebROk16}4YLJT-y-&J zL+KDdV`Ggdlb_vJ`ku|4(k&YJm!LFENmh6hVgci~G$O&~pNcPtK|8IY)ER3O|1481aC=?|U zrcJh7ToBg9#k?%>4a}c%qrb(-2_Dm<#8nZHBYxW}ShMBu5-Q&4GFp$n8c7B&e(krl z3AH7Xf>3h>lt{E?O>s@gYEv*%Q&Ww4180a{?7|*%9Y`&viOt=FvhD(o3Rgaecc&=6FmKwiS9ZoC!8#Lg#?0h(C~0F3 z9JT{t_TQ%pLcYp_a$L%r*_k59CBZ!NvZWbxfR)W)$oJ`|!?R{85Is^7V? z*w`M?wii22no>_m+88;;J~b{~jkV3OyeCuZr5Qq=v3 zU-`M&yneyI%KC_hB+;$Lg}C=Ln}`iTR)C}%m3{amkS!j5T;42mV}|PqZbrM(LMPjZ z!mZ>!4~4_mvdihcFKSbjFwV*jHW>*yJEzaJ&gN*u_wOFS_ln}SZTqklvOCuBw&|Bc z41dAHIvt`jEHWc31AOQE66ZT4N_#+;O+SBQMg20Yi_cnPk z1+Ji!DIe~886gr5J>zpM!2~SrQe+BWVx4vK&=)tI5W_t1g<>}Wh+)+k2{5wa&1J2Z zW@1R^&9qWY8%-kQ+FxOcOnEquy&r=5xYx~wl;|AX*`jIQm|T8X4@iu~^I{{iG^ocY z=IU93c$0WFziY1?DF8|Qf7Oo&l<>MzSX+S%n^}fP2E-2BLMGJrSDSoqH^uNd79}*G z4lme-l^nocFZ3~BNiGw;R!A2Lt&Rl~VeAJRS7P-CpTu7HMeF35L!R(6nN<_0`8|w1 zxlGfaGFL98h2G>pR9l~!ZOae&#p9BR6G0}XQuJQhXi#R(Cn}tANrCmM z$WEeOAmzub``*L)otOOUw|&fXyH^HTt=-}N{g0uX$vzLv8ok?UOc77WHUE&?5L4t}3lwN& zNtR|M)|sECW7l;LWG|2@hL7IU=lvEAuboHbw1yNHQN?i}h+IXD0OG~Khjl{IJOd~s zgW=7$g6u(1mc9WRh%Pl7!#Shx%aa~=Z*nQQ2BzDiAF)rv&IVnL@z6Y?FyV8+EQFmB z*0H(h0o9moE{LO^T;eK-QIntm!q>#5Sd?8P-YSh`qN7+4*m=6so-xkAGCAty-9-M5 zSzImTO@X1d>1ugg*u{fD4?mv2AQotVM13hzz8_lxVNjTIF#2Fn!+Yj=R~DHV2(aY0 zQSk+;YdH77Z@F16B1;t@GZOCIj+oJR03jyBjc%hI(2amu##ne zT4Nf8X==Z@?BrEg!hD+2fd~7oOovcMGVLX+_gDY%cTo2@N@T)!8&&v_Yy@;`iX&SO zWTY$G7bz6oF{Pf@L<0=^$S2n%v}$S`e8;5UD%?bc8{Lrm;UoUG`Wj^W=D@QKimxJb zNbZum`A6X|P6iBU7h@as>(@ZXZu`qMH|)2%Z+46e80t|5Z+bB_0aq+z;- za3ooV1Ni95(axaG2TWK%xm2Rq-2gji=nI`Ti`R0iMW#7b~1UOC*!>A)Uk@h>0U?V#3&Fw(G zzk?IASY`;4ThJ@(qY_F7DZs^_Ly-3$6OE&^IjQKTR0w$>OT{ne(tsB7VxtpO+X zD(Bk?^vzyDDE;(gf!V9p@z;f&eu55>44Ps9L#k}tk0H44WhS}wC@u*UeZ;pgzi$GSvmNa2bln4IsSf5t&&o=ZG?Q;IkaRgm ziphiHkGhBOsVZr$Op%$$q*J6K7}jJlWI8K*0R$S4*9TA`N&M)V-x!EEoyHlWVH4Ry z;^ctPL{z~=f^KTRMEQKEf)q$6^O^H@cNio461wKU-q3FZny+zZ^D)RSPpy8k^7zfd zsg8C$9W#$volt}YfmxB3n3QDpia_ogENuq~5#=6p$*fAfKxQkh>WG=s16eSms@Shc z&F+CUt&Ln>(E-N*03ixh*(fCsV>Is6)Y$(&i_f2h8Zj*U4I7Q7+53Q#?i2OrGxq__ zXCv_`4@siKRe1royu^NKfdPji+9_V8OOsT+n6ae8lo-vxT*0@fa)%nr+ilE6?lekc zOdJJ>gNDDVQ(Kh=*LbEGH(Rblse7b&@ao@hQIhXS#|^e^^?88pYR)IBZ_Op{@sW^D z$!=POh%|mY*oxq3LgBfcvOLK)d`@<3sg`C=wa#@<$8clGL8wui(KI$`M*J`SF0J3k zn;dQvL-nesJV2?3BprI>4knMNVvLn6uezXPPY(Uxhq4g>mPES}nfSJ&#fMm2xyWFW zU|iTCqFErv9E(glXP!n^M(`)b(_xu??-3irb-0Hl-m-EaDB-9-7P-Jj#-LApEu_Y5D;8JS)?G{&)u=x zMkv77L9Lv!n@Mr`vyc3C+ZjcKCH0OxI361-ZoT^xL*>JxYH+ov9gVyFoJ(zw5ao>$qZ4q;Azux-=oKnnX8*G1ilwIfZe&L;?&xeyAZj}G1)PgDz#|y%brrTJ@CEeo7e}i{HaDDZ6EPS`K!${bW_5-9m2xS`LLceKhJ|p9 zZKoQ6&taz)l-M}F*8l-Ii5NlbaMi&!r506Y$C!K?a;(CBAi~r=7i%O!R_?M(PT|Tu z)F}z@l_tsj)T~$bQ@#3=!v%+M@!$M2GLP%^Z;X=~=J#=UjQUSw6Bcv1tfe5dq z_`TRKK0`n*y9AM9}PtSyP|)v6#1nU>a3#9~eE3Fd9~%>>9E7ZWtuN>S$i5rDsz)uL-p#L z6TLn>t5kMMBE@+0)ZGpp=Q3CQh0FlB0>{Z0af4ZInKh1x1Mk-b?m!zi8VDE6xV9W) zzG+bw0xNCEMM>f|_4a)BH>M-m))ZY$Jg|&*1+Cdll}L+h?d!lAm=$4AP5Ru-AAwDm<7S~Zc~g{B}NK^=4vR34Rbr4Z1n+xq}jl++DMGpzlq_7025QZx3neLyGf`k z&2EP2V%HH+C@HSWb%#NK(9)e7;KB?l@v{9*O_*(>-bq_ zb5#ys*sW@Z%bWvsNC1VmV@h++s+>>ut26+eCpV!qa#uHCiNdMGb7){8a{`a?FX7fl zx6GFC`D44Vq;;N4*qs@4F2+p@ip_tn^H_UzSn0wpx;%}FVd}T=s~u!{5G^PhP!E<+ zpoUgm^ynLyk)a!RxGek_I*M8(jar$`Oh{aF*LAy0H6daIaghSRD#Q|F-A?_fA5^hxqQz28AvbRP@)se+HDt+Y?m%04+P1vYX6a;~YpC``WQ zC{EB0_p^W^1ylNga9;{~`@7lv22^ z(Yml^omtvS^VgD%UtP7SIO;1cWQ=2BGg0RdIO;O*A9ZDf(rzETSS9mW`wtzXM*5KQKL5qskx) z`M71MdVr8yEiD5MvFSjrUh(#p=c|DmZ2g0Vcqn8RwSILEu>b8EPrVU&A~f8w#^ltM zVqreHw!WsNliTayeklm%>aQ;_i+jd!!ho&Uf$c<3&l#zolsI~>XajcF|w<|5Zv7CrCw_W-_&H1qGu6$lbCEL#}@CjO4nkxe#`Yz)d8rQuist-Ld zlM|1K=nr_=S^3@|}xg(hYGyFZb;hvVr?}XV=(MC$7&#Vxg z2WcUQyL=Cuh(w}9A9~f!6PGZYqfd--I@V>c!gLmd*^hWSY(0gSrN=-B^g}xaXKe-F zd*zsgY2bClATIe`r>UG-BWKCLbw37@fry8Hz#x4VkKWE7sXSmWWQLG*WWh)XaFw>O zKYx!clu1Jf6>yK^z+w%sl;r0&bjm({g0kW+#JjDPq#M63Vf3uas!k`bFW~AyRNCD5 z4_6f6K(MTQ^$d_v6Ni!7_|14(@dKC(-mRQT$%ccjWUMQwa~ zC$%(s2}l@1tKGCq1R>5J9 zDPLC~mKGu|&X*;8^vC3$TY;ZuPTrs#IQv*NM5Q#aEq0>PuT8K|B9`A9yc2LR8eJJc z7!;NAZ=c)ywqyC&4Q!pG96{Pb#V(*x`;Qvy#Z8*ffJaUEY?4DMrpfI8uG5qDq=&khg=6jMHfc zqk6>TW-Wb8gep*_&D-BFdXK^>x1}p@wGS9Yw(DG@ma#C_2LeGC_qJs(`h8TOJWMVZ z#|wsE>H@qSAvW}vP-+*Qp5g1_8ABu4R!_RnquOB#dyd0!#^Z#pu7Dy5fdzFOGYvY$ ztam*1tbvZMnGkCps)bQl({Wp2_p+LU2!1}WBFnp`%Z74o=U`@F*Ki`YaCB5Dpj?{1 zvSG3lmTE&pgU)ns#s|a@gBf+;oMM*D{-Bop+Y~%6c>F9Tg;4wRA-X_kfP$wiwFPXq z-&>UfFu8 zutrG-KRAQP)CdQNqR5XqB^~XgVUH~-$Y7R_ms^6C!#O<*2j(opufKR`ekL>Jg5)ml z?g@oNw7ir<{<{ zx~6SkLrLrMxvBZheKy=1yaQx7UEr6P3T{d@;gD)Daox(CX+F^Ium?O>Zjr|T;{p-u zi=?>BGQ=)^+!``{pTVSe2Tq7W!b-Iuj)2YEUj8KK2l+~MlhA|@QD;mz5{7cJbSZ7t za>p!&K(yO0SNYL#UNuPL)-Fq?1NzVe>;<73eB)a@6aW$kr|~xyXM^hM`^x|4 zY%*1roWb=5U2eO|5o-63KPP3UJjH71(h8{fw`In2CCCp)4BUDRfGPb6)Zp9sybaBu z+OVff{6D;X$D-weq4T>45XI!@pZLCIrj%{r=nNfyLfE%?O6DLM3fFHTkkzzDlT;|y1TsJ# zpu}u0_h%NS=m8Ir*@ozW2nVQ@$8+J3smT5uKwksRQt~g8bD+oj`_<;}-mDJup4XGpzHjnP=v;Eowp)n{5F~kqaO}-C{ z82VVsMLn^wh)!wkGma0!xp22)Son7KIby#G{liVJ;4Qbz!e4b^Acno68p+31thnYv zXd8xxQ+D>PHY-_B8$>?1z2@Z*XAGxtoCMQqF^dRv^7bxF0s`wPr5nd64*AuXr}_lmMWYSuZDk3%{){R#%eFHx~_w=W2GA2-c>q4<)nxTT8F0 zoX_Mxp-Q*6@D{f(e>Hg{oQyh54%Zx&5!g3w1)JB=lh!s0PFnxO?{w{4Ev3Ey;_Nh5 z76iqWI`l{HRI4c>{l=$QjhX^`=?$S>ENNq1ap=8c&GBN7&GF)Z*(q6gUl8BC!%4s6 z_UAXZ)WMOJh#HF#$AtaNY3o2Exxnq6dcYR?YW+sQyX|;kCexk$6|xUWk{>FxD}_}O zJzvWdJxK_v5D~c-&UK6mb!}txy{nf>v;YgrPi8MH_r913vWBa6aV0YTkgN3;yMevh z3yRfp4P5X5+-&nUWyn6_g1V9=J`8R^F$C-a2ADTBC|At;j2p5mv@;Hjeayc^S@M4( z%dZZFOqLClf$8VEhK$;$%OAIorhZT91E7mZ%;j4Nw2S02HoUoSifR_u(*J8u$s>uH zA3S9yjabF6aw1H@&H;}o8MFF(X1vkxW6{llU}q}=4BLV@27!_cotF*6jNf=)ks1|O z>)x$ECEQnxxYW~7|7+CGmeql96=|d{>wh)x89TVw%zafD1I(&CAVxDg(4_3`G|OJy z0y3A_GiY&MPzaOwT!DIRGk6=tkdT8z*%Avz4{YhjM*wZ)N zeeU9IOa?Sf$@+~CY$PfR0mPvNvSlE3iG{7@UU=}2V zMz_zyX$1bT$DD^bTqloj-OFL}1t#VmGl)_OJurGAg~*|>s|Wu4<^w<2^{QzcW}Ya( zjDX^g2Bkd5=(?d~dNx2?gV<%a4b5i~H7FfuuffQ&Q8yVZiu;Vh89MBaxtVeF1Xol( zPRzWejWPUyN)_zNc@+kZFdVNvH>?ccD#M}g4=Cp=6h0k-F!JhDf1OQf=n-D!o>sY}J^*N6Q%`~ss zv`n@g4!mG;_*KtJGHVgcPYX?}N$}~}ZG;ZPwzq6xMrF=7Lw=q6`L|`K6Br=%8n#wgmZhp@!C*~Je)TG#0!J8nbTic z0jv1t^r?1eIXo^~>0v@G1QevJQOVRs4%rZ}^{TktQ(Ux6bKp=zJI9;AXnKMQ`0FkZ zl03_}B&y)X(o+?bKwA%CeUQo=omU%x)w)*48wJ5%pr zog3$?-=uJk(xL&}EWHVi7!`jp;A@U8--NQ3t~cbkiXONthr0I$)@At|)F#_DHO`|q zhW|XS1QN`eX?Y;lGrhJqtw~IJH=IIah=Zq0y45oFKY>0Vs$^< zBL-KLO{1)P2r@39$K|6blNA@0w?A#lGND#Lx19Xx@er;_BHGP!Wanc1zB0puSn;yJ zARspNd^3UHL(pMs_*G6siUGE=ePr&e4pZk|fuKmoFYvT-3pWc=M6=6Yz$55Jz%x?) zS#a`Io3t`3c1eadP&1n(4`<8uW>nhDKM=aMYwk;gIy#f6@xxQWOX9UUj;&yh2r$`W zFOFE5q!_!fU3WfC3ee8%XWF++bRk>h@Ju6Z$kfsH*t+Xm^ScY2S;{0rzK6Jp;Dv0| z!rCqTVqTtEWHDBM*U;519}Y8F9+4fO=Fg@EIlbx<>gFA*r#2U7n+Go{Ba0_DZH0=? z!i}`xySO0qhj8QpipWNH{%-}Qj6EdEfkk<_n}F`mR`lH;py!q_=thHOX3|yFgr8$B zzBl~(JW0$&qz|Dq*esja<%NIsrLxuBe4_w~=kYWPo&S6%C02tqX87L#DF`@&BU|_=2*x3eTrNIVk#N&;3gx4-raDoanSya>!fP-v`FH@SAw?VM=smgq)ZQ28v6MSK*KI5iS(&rOupQiB(t+E zm|uanPXGg7QyCpJL%wM>p#-a=eyfaQ>Q1j6%-*%9iF{z7p*7Xi_A*9qrM{oHuKTi0zLp$p{1<4mV<}w$0GkR&^xz zO#X;i8EDz@*sJ$=3M&iiJLZIs=oKYXwdF$0yZpCLU++`mW!qPNxIi(r&+Xy-dK8WM ze?g(XYQfaknG0Wt~$R@d{7z7R>&q3s0l=`*E@vq;6(C-&vS6&nj(4Px>1p)($pF zaP=HZCQeMB>H;XmH_U+Y*x1q}MGhQNL}N%jV^~7zwVLChaQ|__)GsujxILKYx~^;-EUf_?=t-b+3UB(CnE;>sy=aO7k*aQM92i-7{`W_XbI0mXW>L z4unlhO~dw~gnX#fyqGBcwG*+%Kk$+P&2X?L_Qru$^#AkKsy7wXrtHW$^6e&x%x2=f z=3g>53|flz`}HZo^6zo|`)gUirwuyA0g;LM!xbh{UiOBR)D}rODPaAdZ2KVDS?XP| z`efyDB2h%AC|Sr#U|sDQDUjZ6Pmpvt^y(LA#JogUm(dT`^oSbccjCs}lebc;7e!TY zx-_M!yv)TItneu#wpm5sXjO|g5R;a>+2?L*lXQb?;}|62zhOX}c}V~*!_UZdqECuU zw-{?!*XtshuoKV_p)m*p`%UhEBM{ojGB4Yvw5;%Ok$`VWOzSTtjTvxpmzVQ06th8! zP8Tw|h*CcFMLI%95wviNf42V^DhEB4KImU9vA$Nbn^~l}q5(gf6bd}9YsWn0O|y7d z57)V})XV)AX_HedndH__V(tA|)ju5usl0N;>ZE@oI0mQ?1{@>(>TdcvNC&pyOV6rB z)CqYF9#-ViumE-}a*GT(l$Sr(gc_%&iNF`1dRucMxx5OI-BAJupEaB@Vwz45Xk#(W zVol}1=lv&yLLkU#UDu!f==_~O4Q&&oO=m$lya&`cEZ?I2tCpAo2L_7|iHj{(mM03v zFnLi7DTO#K0I&4t?sbYD?7m9rrF)ZsFqL zB-1NSl=O|muwOD6)4fw4|B6W1BuAp1LGSy`U#Nn|%{tntIe1$sXTJG6XhMCw=~CdQ z2OC!w2exfaprEk+Z9y5@r1k7(s|j5xA)81wzg=o zECcclz{`kCFoeA1qo_cNl!nDl8{QEKDdUHQMw73>^Gg8MB+7l_^)6mz>=v*~!_24ELA&w)PClcQGd~M1zxKqD&YHC> z#WN%8X}wyCP#?MVtUE}fo4XM)K&h%ZLu#~&&p0mcH?YxhDaa#E(gI_ED;j-E4uT7a zv?+Y6vkiR0m}Zh7rllGAoxz!cR9Z(Wi)2Y&{_Z)h@){aeuij;L#3sYV-|FB6;M(Hb zkzK~Buk8;0q=U;20jTbZr8zBNC#jO#;`)hCkLHkH9Z)?z#O*PQo3;Ggvtabf947*O3zC8tmT5oNi*>Ax( zg_E5*LVvv>+lO^aH(!+rUiTP!JbOK~H&Ub)TH<%4HcrN=lb^8ViGSUWCezZtqTvhq zrg<0{#u@)Jk1X38cNq9-F{|Sdza#+0khAI7vahqEMvx-z+Ru^NUh%PKd3kW-eYzosAVhJ3ym>C5KL z?I5oVvkuf+4j8N?k(WYw53NpKuEWuG?zZ%n2E{HtpgHeR!2)DLHD4F*bsSyjN2~`- zE2foO{B;0pMszd{5@}o<-z(Ap&cO83voh8BqPVFiM*JWlTmR}eMZWENb+4)mqAMy3 zLj1-&$1fG(-|+ApKifz9l+5J^0=}(e_IUHe@0P=x3q>I+W^#?>rd}|vdV&S@>tQVY z??0|=ZAzB5H^B0K2cHW3p~3IR2N5c!<+<&Uw3>S5m1C< zUr2nEah9EWT}5JOn~u9SDj1V@BlqqK=k|#}2SFj51j-YU3t!6}=HK-Z=qywfLv$MF zXIa3&NuV1?A>evPgT7Qn`+dBPgzzSg%U#(4W^g@zt4*c8d0V+O$Thg!QH{|@-F48v zSMq|ODakiCr~*;?cj|av$Fl8RvwB) z$kM9Oyvo({W6Mu|44@XzGre;Qm{V{(&`^9>DtAO?zHnucRcOPXos?~ z^zgv1z`a2=;w4kB;egALK-v01n9bwk{ho(P^Cpt@V+#`N+cW6|ac=t5?#T?&@VM8I zm^Y@;T0o{;qD>0%m-5caMd4xPK9YJRcaT+AHh6mURU9A&f<**Ps3`NP>3e;qKA7f= zG9Fs2*bLnjr$uG^6sM>-fVDxr+v<%;_Bhpv(D?26KYh^Yh72)WIj2r{ zvdA!_K+i@OU}T7pnN)Sc{&C)-zWe*!EM-*JS4%}Abtll=K)eX@jWqfH7Z?@i!djyyK@4|MOc#qasS|vZbF$6U4uF^!v*=Cu$K4cr&e2uaAc~dTeV;|~89z*~|KD|KV)@@sVg6jC-WJTum-l9U zvtVtHgEJYzLcR+?pkO<3HjDZCIx~?oNJ!@@2JSg3f4Q5uiAdF_DxfJW2S(0JYc5;q zdbWA9DC03A^|FBtyITsg!R1t%)E`-`rlY7QnvSIyVo%B1YZSkxun{>|=K$~Wz86SJ z!NrW+vY~d5B+^M-0+zQ1_yDl)S>aC20a*Y4TMqap(2&;dIC3~zfJg{fJCLJn<-4(% z0qCohdm32#D*>d`M}K32;;A}*H!~)pP`k-}VeIl3K-Y%l;uxe-eE#^%Yd?R|KTD*x zL+_C%?T_*G8c|VAe6!ikfw*lac?@VQBqm3PwD@H~(DM)Oa$L>Kz(eYRRY!}K=j|HX zwz@`H&tS$}+oveHWJnJn6GwvNaNj}yv=Z$@x+MSdMjSkGw{kG(>ngJqsA(K-+uqn>=- zVI9bAQF=G^$X=rm&;3E{k;=<0kEt9ZfJJv-l|2v<;6HVgLR(W$Lfe{5NP}7l&V5t)nJvOBi%??Lr3h4>00hqGnnv-db zX|wo0+KELeB>7%Oxd%Cuj@;%mm!n$f{YlU78YV*LgWBG>3NddG44V|C4-w08XjEd>H_M7B? z9Tjfvs|sE)yCSbdZZ-p1c{01A%50pS?!PaEhI>Glk!$r~$l@)i8pV^EVWn)I@%;X} zT%X0^p@HQWU3uW=SPFG)Me;)ZQ}BlgdNwLkbs#E)Vznnf`m&{9%RNp^Q^ROqcleEn zB8LHbnVbt3BjOzH)VxOcGTnX^d8>NTY{0`4-pCm17izKm;Fw`DG89QF4fNm{2&x+Fm<3EplX|MAvSE5`2d!Bp7(2hl@-cSNUp29O1V6~U83k$gTWM?*gu$o0NU??d`h#u zw7pZ<8y#RZL42?)?L+uiJ7+Qp8FqB0TwI66)3*BK$il5(*oOW!H`ksU@he-Mi_%}& zT>f8^R(2ha%bVP>%gSMy|3ezs3;0aE*y!WDh&?hrqK0QvHGjOoTar{Tio@k|niWdv z6`spM5i(pE2BC-1DXzKG{~6A@QO5P*o1j~$mZJbz(aIR4M@yHQ0FNLc7(@Zn8VCsC z?GKwAl_QKwNet|p*Ro@-uodmt+qLl-3g4Lk(KZGf0J!{NBHpjk0)Cox&s^8_G^cB< z;2ss=_~>pH`{KR;$D|s-Y;d*0Dcc5Z72~gcGOSA3%Kg>?`G^*l$w+{l%F*E66%~5R zx|3mOEWB57Lv%uwnxG_6#Y>RT5SCfF7VWeIRR*CQ-#&V{>jsWZ$h^GiM)Ewi|E^>x zNPXW0A)sp<)+1Qi=2CF!We!*Cea@b6`?xCd86JG@;HJmmC$O4(9n5=T{;NSC8c2($ zZ8tMOPYvcW&fFo>EzJ0=p{@QTR3IQY7y7QNpol0HKyUfA)p}3YMn%{r|^$&B+G%zEZfKJfvMwQkij$nHo<9 zh5p$u5mcDlco0(3KL_!{d^-JGZSHYL@Z77JxJ2=B7_hJu;#%pRRZ^KiTH8VJj%*-n z>yr|KH@yEaARwmGMt961#0h9Updn%E0Rws@wRHh$?4rT^KzlDbTzG(P8c#?Jv@*@Y zE+6oRKidFjoQ)4QDC`iEfn1V85@@BCi3(QLBt{y$IQb;BkmsGn zO2dkB^0Mj4=Ef)|@V#MP=^i<}=^(;Vlic=E8>G|OnnvPS70aXw9jt#}9qe_|9t=!z zTFsu_Ju40M`Pc?8mXv-V$rh|2PEM!rd>vBl5Hs_T6VG6fBAL{maTi<>jh%=S8?Av-`dPzW z-nsG=9Di97J!zTis~z`8r0g8myu>#LZ??z*LgPO_ZE*cm#g&GzYWWyQ?zQLH_EmeEdg?WPHG)^t#2-Xf3A^;;Aj0m=IMl!}^) z{hEgOHOF@!B+4HYk%B+Nw$A-Rxb&5~4^oiA@sCEyJmaSknA~%Z^4U@{LbnvP#KdB< zLELMpu~;Mvv|xF@)~gTIP#^(KNRcwF_hUC~7ut;N-a?kCN~_?j0WK*jsA~Zqhe;PY zP0X3N+@i1?O=u$ISCfYA08`>JP5&^)eDIMHY2&QMcm*amVV;xs z-K$mhsmj}LoAh`XLb3L zLn(ouJNw1bdwXIqff*&wef*ZnZUYN+O~!HgH5=m$G1rAhy3B-q-i`TUJ>FDPz<7(i z2aV@WgS&cLbeyhF1NK}@(Gf)=__ITnM#v@;>e-lcr_at zvwVHjmlBZ>bhAv3oID`TI3>hskfN77L)|LJIw9Af1-FXSfF6^*tPF86-89Ee2>JBgAe8PxYhDYwwP`~@b3eFyu2AwB15p8FKKfyuPg(+bO2D9M+ z7GUe*wvVf0y=b0F@=qBoQ0vfxg(U$T1A84wZ2ppA$cXvj?0 zs&MqK%o=`t9n?&nCuR!Fs|qfv2u+{>m?Qw<&E5D-%7Rro^9LiSR;;D=NZ{MgPk`;A zm4;U~_U+7AA~8IKLlGevV^M|aD}eEGI%I`!A@N|PL$1uP3RJqgOROcdl$j(Kkj0F>yDz5b~(Xc`GdM%W9OuCr-vObD_$*F zqBn{f+d)Hn<5wEbc>6ORLMK&60unzPB8z>r=8x|-7U%HA2ia$cRXp8c7BsAdXqp>R z6jo8BxorQ${)F7%TTwDBxfs!s*Z-OqxB2gji8}>KE12_rX)fVr&t6UqbO}b1L!bN> zrJKFF*BE85BA#%SyO)X=6%Nd=0QwX;;Lr3v!T#NrHY&q!Yi5{3Pn4mS=4X?%9VLr|Z5Q`O-N|lAo#{St)%$H8AA=m#Dyt{uhxi*TVo2D; zSoL(V6w9Qu6d3i2gs^@@GAvqSjQs_lWSC30{}#x;xcW+LGiqUW40NT>{xQ9E21tlN86m z+%;oy@XIBn0#llV0TQ+W6#f9MK}l>0>hk_e5hfWa9=F-#P@SMg)(S>sv`@$t|C zemUQ4R41zr8o#pQ)tG!q&1LKAJ^U2pTal;ihmY`WFjG)oKmVm980|Q{*fz|_X6q&D zuq0cjt5`9U8Yc#WuRI2KJi4Iis6+lNSnH7Xy11Hrp4DMGw-&n zcicdO?du9vbm;n{2?~7S^O1H3EB(w1L|gihYh}@-+`mpi7QK();~p|nLD(oFX+_9- zNeLIm;mN<9FbnX;i*}DeG_K}Qj(9W#Ea(fu*Ya&`mhT%^hUln^N?d{c;8&+8^Z=HV zLI#pqgscAgxTVQk`wfD*eANeip#>~3%WDei03jx8_bqmyWC4hdr+IxK=Sx-q`wuGQ zR$;s%v#Hg5b!$%D?m;OYD%_!HFjtd9yQu)qU(5`%9Vf(Hv@hm++0&3LE4CMJ{BZ~ZX9 zNK* zVM~sT@c2B3ava*5PY0{mZ+?1Bzum{*h|>C4l+bJbo~GNOXH9_^MZMudxS@HRJcQX7 zITY|cA^S(of5<1Hh#8BfHg}>5rNb-b06}#g!;6|zgs&o>^QqVoIX4xYBT|47-%Ra)zmTB{Kj9gc zw0#k#cMxGLKn5cLy|AjaYn{lr&zc7b5CAZ)hq)f*eF_tOqMf_y1lY zK;s-LVslzJo&k_~5h((ZmzCfWObM_#C3OH;E}`u{E`|6w5QcvioVIeZaH#!u?$8b> z4poUl;{ik9^&rkkov(zcOX1l4r^LqO?nv=r30h}7+eU(It#rieX0mPl$@WIh4)yal z*FEaf65)QMK2{j!;qEk&8fJ^;OZiRMos;Oml~8p@tXTt*a#bwu-&5?R^Fq`f@zAUk95wajbY^^n^mW0;)RDaQ+ zEbe3XVtKV+pzDX_9h6NN18}@2aKxLSvnZAA%Q~=w^ao%^ZroKZl1{LANgeUz1|$NX zM3`&&Cz^o6L_EmaXzd%|&{Ew4N*91!2#@s;awJuSr^288xcfArdEta7h?^P5YVTvKVn#}+2&IjR&9n6>MA|PTs&%YE6b5!u3`1?8^ zD0WA(rEZ^z1a3dsO4~AhUWlHhCqtMv0tA-sKD}A zZyZ6{fvtG1@i{r#!pv!!N?cQ{-2REUu5L$ic`ERgx_@lTsryriFG+hEhzs<&H19SP z!Auha#vg=#BR>Wzn0=J`lJa#+5nw2$TQL#Oh$%5<)JD#j`3tD{>}OR=BM%AmD4)Zw z=eojGjbcGmyKZzfrei;k!i>G2g02eOWeqQYT$YOg{oG-KOnuB6tpeJj?ZZJkCpz+k zU}O}k(P!cce;%@Waln3URn%4rr|IQVtUelrV8ZwYmjhkTd%CDVM&{tbDY&S8^H#Sc zgV3LsoOGD<)cuQ*vsoa+6;Ja`)Nz&Qa&ESPN|x@p4B-}BYxBFy`P$(wL8Kb5M#JlL zt3@|WxT60#sR12c{8NAG>T`u(mbD1=pvzR5m0Yhq84Pe5Cowoc(gIYxu^eD}OG}&G zzll5yqt*Zb*(B#Pq$&Cj8lW@#Z-M8P1!bn~#%0PC`!sVB2(I#!<55`D^j|F-Ly1QO zSYN|+=&EJAM~yR=481wFBpaxxOl|Z!Qy7f#E|-Gv7UdY?Q3c!_)=i!9;%rtu+k&H` z!HAYU_vW@BK997>tb5nQGhL5|2!1kLS4i18CeSD6bi*qrR8@1)KBO_Le1L-oGML~t zaSV=n`YqoLV&Li)=w;BxAJVy_n|q={7_B&E@9xlSH+&*rIIG=pZbu|2N#~&ZG1-7O zuX?ysSyk4Zr2)TH3=4fJS|Mh;9?l3X3Anq%)Mb4zUFw5GZ@BZFZ1bz&nCsRn?$38q zahr3hSjX(bdjvEBhaBeEj(Tk5pyHmgE;^;yF~*l%Q=(~4(+`Sy9{bv zKUjzy&4$j99zPH&>9_iN*rY#X_#I~oXf3c^-}xXifIh5N%CLj4>Q*QWg8H!z3U={& zB+ktlurnznLa17BD;%fTyz(&ky_-T4{jQNUz8^koAXpSheIAayRZuz7>`dIS?*m3x zpR)@|edO^pS|lt!U|T)Z@fr0RKCxp1`N(uayN-{>2=(4Ljl zA$l3^PPO)ZIE|MFtK}D4Kb0|(Q3aw^$4)F+IAcli{e1CR45 z*|ykt*d*K3Ei^El7i^e<9>oncTaDNdnn(ajYq9C6jgnVym-UK1(Bgh2kf&CWnm5<~ z)SwiP4tQhl4D@R6E_Oqf)#_q{v|CGV7z8{BF)dRcqefaHYA^xI1FOmYf}RvFZK?VC z))I;3wvV{_Cz5aGL^p(1u9QUY7X7`ntmeP=8g5Mm1;I|&0}=`BKYP;eDpeUJCN`CZ z-qJ582xRZ72$DXyKIk0v%Q%PHbr0Qyc{&e{>siBYL87=j&2$^yG55+$XgDCyVU=Ki z5l0y7{yt13)@Vo;-3O}oE^Uq+-qSo^B3#rg!hkUWYQ8LKld3~CMo7}j3uwwE#`yS{ zp~QU~(KTNuW_7|9T+C5fLf zh5Be2A1LwDM`rdPTOU^`xpf_m}xx^h00H#u;TfG zDF&72*|F#nTEOX=Jz0w8{-7rj6BJ1N?O1wrj}H`lVECcs7qym@+fy4S`7{aVK{{hz zqt&_h(ZyZZwAVihe9#J@FO=$QKk9v@pcuFDru*=~M>V__ev89+k(jq|mmIFOOmDay z-Ha=DlC1eSwC%*=KN0nPKjkmKh{}0($D$UK`R93mS(!=#qIMwGe>dv)4{r7Wt=sF_ z=C3oG{E-bZNooit?>sdwAEwCRDW&GFo8@_%C9N`c@-RGX{@vHL9E&@tm zhXqEY8C^;j1kHc=sgJ6M8r6On@9lCYiz|Xk-&lDLafsl+-R8CvYu4fzs-L0(1V3ko zk{u;SA>-0^JO;f8b8vI|aoSS9Wv){Lkv^Jmn&mRtTiBVrQq30{k5?DS64Zp$ifY;C zeaNSh66#SvqYT=_3JveoE`4Nvd~BPI2dk6c?A8dj69<{XT-iWJu%bN2!a zB?T5N^NwFIGHL^G{XvV>rCQn^hxF&f5Ix*Ld#^9_(S?cW>+iBQ$b`Yr1eK-b=94Hb zt`ax7*~-S9>QVxQWA9ZS#vXPKa@_fmGL1;wZ0e|5;b!UbJ3~j!XZS zjiFPq_b*G@2MP&05(uwT$r$=$w-qjD-FW1cWZ>`vnSi2)^``E7iTFX6`08mc!^2Z< zxHm5q?DZ-`86#a*ZC{92U@cN_@>XIov74=%(`qYNz@fb!AVd89xXy7(8-QrG@h8cU z9CC@p*GK^0InwR*@cmM30-{G~JEGbn`MFixWSlbU_Wg28tU5kB(L+O@8?&Ow*&G!% zNcQ#{S6i!&7jvjn%Gvqp>D`WH zmNbnBk9nDf;T=&QnI-=~&h_UQ+(JjMAOFlv!SjbD&u zftDZ~XjT2fDlV61!_>QSs69*5Tl%EKo3;?|Qg>a{B~XMky}$xA>;>Stg40b(;gd)2 zU{s21x+}T{){|QRd0? z3bGZ*T0?^$K^>X%>pv}2&xk2WI>3z;!kA=^A#tn%1}fDTg`E=%@1R20h+RIds?__0LJ;- zhU90r;U2om*PLEroc^e5XE7)Gq`YJB+(vmCqEavWt-ir@KW7zi=Qj7GFIKz(nF9s7 z?kj{pMy?m*_aP)inE0ugsrEtheZ;Lh-O$7yEg*nZwTf-wa({(KkOKMTBe?8_Bf6qV&!}CP-Dz6sg&SN7m4$^%bO}z z4yCyjJJf~~U;$hn;hZ4I)f^hX`Qf%RyGrT|wpL#hBX>yIM0ksceym*bBA}J_E2q_M z=Oe?NPYLROtr(DVf+l2BP2*bx?Ft`_O|Px3Mb|AyY&IiB={ea>I*Ympk1U?DKPRKm zSF+ZU;1roM2biDFny(R3%KX9f5$`kFPz-^!@;7ldKZgNxL%r|zrR=c0e{!lB7SuP)(Pb@iSP!V5LE%a`?#XV{?YR~JUJ>NzI1NWB+*1Cg$?X%|UYqJjCUV++8e_L{|p$|ZC& zj?NB{Vsdt-^(q4odkcJ2A0ns#c8j)Zx7JHRw4i&CF9bQldeDdAb|(vXpQZuIoh7H&s*BUYP#&92tsg# z()hF(f;Y)*+HpvkOhg>U2l)aaRbn|gCC;vy=9&a&9I;&D-U9Es35+8`32D@RgxwbY zMpPZOtX8zWkS;FY{Cn8sv1-LbF$T<)0RB**-Ex2wy@X6XV~>53e1mtslI!ueCN+5` z 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260521/20260521022002-Diff-Config.rsc b/MikroMaster/history/20260521/20260521022002-Diff-Config.rsc new file mode 100644 index 0000000..a0b6995 --- /dev/null +++ b/MikroMaster/history/20260521/20260521022002-Diff-Config.rsc @@ -0,0 +1,4 @@ +2448c2448 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +--- +> add allowed-address=0.0.0.0/0 client-allowed-address=10.8.0.2/32 \ -- 2.52.0