From 520e4cd51265b97c6fe00edb9ab8ec381d22c3dc Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 28 May 2026 03:40:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 28 03:40:42. --- .../20260528/20260528034002-Binary.backup | Bin 0 -> 259483 bytes .../20260528/20260528034002-Config.rsc | 3462 +++++++++++++++++ .../20260528/20260528034002-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260528/20260528034002-Binary.backup create mode 100644 MikroMaster/20260528/20260528034002-Config.rsc create mode 100644 MikroMaster/history/20260528/20260528034002-Diff-Config.rsc diff --git a/MikroMaster/20260528/20260528034002-Binary.backup b/MikroMaster/20260528/20260528034002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..434a7e722dbf0d860de5cad68816c8a4c3c66919 GIT binary patch literal 259483 zcmV+aKLEh*sF8D<^#cGPJj86?>FcGJ{Ly@p-QZek7pip zTE?}&&GU}b>gC+G zANX%A>ux_wEO0eG#c5UK@rqu)Iiz3!+aFbiPl7C6hqp02Atx)TeutSg&dzklV4X_d z0V3r61=uo5wam4Qw2`DAuz>8WBy4kTR;`X15ZZphJwD@=7C| z3vWH%dO2S`UYi=@i;pDTDy$^yo%@+{X1e!}JZoYXU>x%sQVuXUG_-H>X8#f5$a?<^ zcrZDN*6Tn4el-nf4C!?ycc~0WEC{#(qH@h{|CJrmwUJyl+Q%6@Z6P-xVNbRF8q!DmwwULzI%|jGnboiz147Z_yBR5Z7wE7MYNCunH0%|A%_zU zGf{G*2Vnz~$(tYPMU_X(+bvve+sDEcOVz6~UaYhXi-X9uNpdQmagmSje)<{B9i6QZ z4(J|MLx~RclqMpo6k=;}XLiTy7^==ye4>c6k;&le` zqMo+2Zf>EPOeE}|U?WOv?<>F=0b(~iIQu#9^>@C}_2*Xw%dv?2_ZWLq(hdE4Df&O1 zv(6)3Q&YQ|;V6%>$>c=js+;86Akcn{aa=wOsp>uxNr=;$I?s*cj^f8C{?DVzaJhb= zSA2BOuaa9U53lUtIPXLFm$LQ(3M>cPsV6#kQ+H9YGF7!R_WoL*1Hd5*QFxPj7w$&= zW>P10E!BRtE?#XJBoWLx=6VK@wY?0-fkl`3c$88-Ak-ph#>VFEwJZ$|r7vOwxPitX z0SgQt;C_gJ;8T0suyU69Rn$5$ya)*Jh6Y7*Wy|uy{hrIiWdOXa7eKS3_bgNpbF|_> z3yV-Wr@%Qw7OX?Vb)_2~w9D+v??4B?N}Xm1;1)Nf88-fXaO?grEw?O$)p-qn$dGSmAIiYd7v<$&^*>!L75OwbX4WKHk zEt(5es>fLfc#Jg&Ve*9JkOT8!n(S1WHWILn10hTIjjuZH&-VIi1+dj9aOa)@owMm9 zN9Ja5M$3Jk4l_A-9G^Q%8>xc`N2mOqGrNJthuVO2aF0`O>&;JNYHZQhdohAAi1hR! zxo}S3qgo8Q!s7)BIH&!7AVWAg`-+2fXp24d#*T9kW&8K8BOgq*72*cFS(teb+B_XOJ{~AVAm@w=o!?_%qlj)~F4t$UvtQHhWQ5&}-Tv`Xd zYTU4*9&i)b-2J$1Z}OGcN8T*rwZ#I0JO1X=Nf=ZR3go{|_bxlZ@E66Cw9KdKRRH6Y zF1c}}GboKJ1@W8dw|bXplmazHMVCoI-ojfjcRe)MSNvi09Oz>lCR_uFiZgQDizCtB zD8))8dso!6v$Wc#^};sbG1sGe0sS&W^25-0B0J7o0BvJ1n>O111y+b_u_0^?NA&gx z)?XkYgYB)eDNgkg($68`)_4IQH2|mwg{O!%aERYTt2cJuSq# zzE3lCCt2(^+N=lkDA5=l_Fgw;ri2&>w($R^83U#BN^3{ZTC`Y1=0idF|3s2Y;KYWa zQ!l8a1NYUc%L+>!SY>j2n>G=o;YBTdo$M^Ea8h$1-R!B!0sF!sRdTt3ksvtKDCc=w zOKi1I9WJKxW|;IWu$uCtVg?6~K-tY8Bt!F=^mp~BwR(bO^Y>L728zo+B_~xRmoWAUxD%>Dsvon^_#ud+51)*bXXcZ}zIFTz>nf2H9 zYV=(Uy27S8DMA&hw71WfnD~Jm9@rdH?jiCCa@1BN$|JLaJt?Bm}Jase&#oh=kB{t)z3Wyo2E1h$%J%JXi(gA+u0i@kk zwUAm)m@Z2PF%FB*itzr=8aVO>=8JT2EdCxVH*$LV^s8z+FfAuamPEir$lw8p+UD4Y zqpuM}x|a`KQxnVDd)%VbE}eG0H%1SibcQ&hqpsXCbS_b9U@1tAXMf{-265@*P*UGu zu^Yl(k0Zn4n5Wk*VC+#*8^#Lr)G(4F#4@{+8UTPYR?6gfrZ!P0df(?K@ns%6+VX7^ z)c9DI`~N*^X+vpvXB*oM$%EZeK5L$hE?%KbM4Qp@6SJeEtO}CUiFXs9pJmH>6lMXQIGRQ$M)F5^j*OC3}lQO+NH81N>OII1ErNi3~7UF zwn{N6RpuT(V4fw?z&Vnm=`~z+#H!+RIf(C@)N%fyX=4J9cPp}w!?I(IePl%=-)JE) z_xn1g!v02nbKA8Dp10}dN&4;7_9XgPSicn&6!Imm^^;$kno>Gk$XU%+Z&|PtK5fSb z^ZDx&!No1%N3&VG&a&=s#l?0bJQ0eSV=DH8va&a8EgTUkBDT-^IvF8aX$1w|+<(qTNpIV56>O}ihg$9!96^mSvc~|IGe3g1v zccSvR{{y`zIRHU++=Hjxd;qaPyUBi+B|GNP8sGej{-TDN1LN5;$7#EN+j7D|L>)7e zW$gmeyNIh3CSK!3c@hd(6cEvxzo;`jg{1*e@(rdwh39*i;DBZl#bRM73*(6-IOHV0 zYGxRO))PjibRWoF-1FPMF_Uun^{WgJlfYxIlFCfQ@dYb(D*Mg2;khiOoT$53PmA04 zCi}^~5W>4L&KRP$KN)^BOq=13Nn8GC$X{C&3VE|fj9C=mxr7*s zB)SDm9TI@-W2@uL6N@ojBYBu$&Dqkw&hqTCHD|`30e|XerfHm$jz?f-EkzbFv0r8V$$?`3~6idiJ9vvlp40?*@y zRk4UjM@m)>OVOe!o%@Bk14wuw#uHIOnbqGQ-6E#QtgViJ42!eO@7NBxg6wHud6>WI zcm;=6VSH?a|0B!l_jZsx_e>iyqC7(XV!mxp4rzyTl%~3e$-(RM5 zq;0a*0@Bvj^W6?36XbRq{zSf}fHzQ$`r$?<2xBA8#a;e5&qBrhN$Ps0cxUGzCl$lR z#sJHkaEtm~(rPz|gi9Llon#xPKtRFYSSX>@w*O5HK zvxZ^*g*m1DfzMmnkuA8nKZoq0{e+B z1$$F@u6UMtJAN6`1s8mF0#|HobRwfsoO~GOxc;`5P*?~6M#<~XK9NLo%F<1w+E497 zZwEcW2! z2m1{2@tmxu8x#!DNq(~>>(=J{&KJo2i>G@d^l>k_6oT>$y1F2|w_9~<%ryY-SMBh$ zZm!g*uFpKJan<+%QV8{(PVqx+K^T}Np-rCL-!w)Ob#m5-8um;Ry+# zDhz4fKN&jE(Yi?N)D*WMgxF%N5EMiame5c9lbWK%A7KjH3bm*`RCix}#F<5?G5TvU zp}J0e7&3oIe{?hbd8&2B{aP4=AQtTO&B(woO+`$CR40#xVA|T319>E=WBFEo3Pi-8 z*{ZJ&%kv)o^UtoA(x^`&vX>(FV_J{^*)`QMTCO58rK>H{WKC^O*S5iGLwfcEf2tsk z*_nI#z&7|5qPzdP&yjJEz>kTYq`&CJFmo-frN56q4#>g0h^<=rDFfc3cE&9IdEY~d zY};4cut^wPi|V~^k8g6LN%bMqo!UVp?OzPvIC)}}6lmqmI+lg*MqzI8pr&}(+UbiV1B9WN#8t#1 z(wvY?Q(JSh_!G{-r5NM1^g}rBIBOQWn4=gcenQe@2Pno~%9X9jViD)!wDh*v5TKZ^ z40sp#@^&1ea(qYV34ahL)lh&$%h>G;K%{Z@RvnUpfCoQ!>Zt!8cD}iQhcf?g34rk| zYJ$udtduPzE&nesHF6MelSIuR`fW1R{JN^z6I6@q>tinZ2*`28TD_QW!U{%3E$`2l zrQa}==@+X@QLTj&buwJ=k{hywLVqImQZ}}3E|=-%cO>@K#Sk%g&dy3k(16m4w&XFg zz_`oB&aHd?@y!1~>#Nyece_u?>1CdjkIp?AqL`Cq^3`N_)aKb2bZQ!!mRi>B9kNo7 zTjPNy-1po=3FStk`Ntt)_=3|3hkug+4J(bjKr9C3PW4&JWMk_C*~Kzwj$fPlofZMv zJSdkq;EQ%EUBJqP@az|Yu{+Z8IB^~3_&%DrNq(r>!(Y-Ezvsgn7D}-c zkc{c$`)eCtv{%6W7XyjbbE}f<4r2|Nb-$%h7 za#3+iE82i4EKhmCWyD)q=6q7QNUbAuB1{f9) z>CD+Wm%ZGqIK5ehY?s?hkl(rjK%s2DHCs;XQX)*y3S-j)EI#S4YsPp73+@4(f};3w zP7mQ=hXZppDJ#xGWhi%6a}lOmpDhiWxi0j_q}(sN`4BvxK%Y9+)zm_tfJf;sEuS&Ospv$Of|*%nq10DM9SrzNhiYAR#0kww%APh6(4^dGXCX$dc!hl|&Lj*;SxN4SauLyu+y0GtaZ?9rnNpu{H zSO{~JLeIC=ORW5UvIiKE#prIb0SlP$RcnG*5^$|_kXr3qHC@b0cX&_HxY=Ni5@ny@ z)epef2}QOP{)fvq%)ouCCpiG`Ho;!l_*MZo)0=CkKQ#xH+hKX1_G{&7g}>#;p9m)8 z|1lB<1guT+Hx!e*6s+Mgg{e@u25TMOd#_1nGTEn4HBJ2w^@E^m@+Lp1X}F@>7}HH@ zj0DI9036KmaSZi}mp50s2;(!mHvENkU%Q#zCyjDS;Glwdq~~c0dkO-JFf{{EKS{~=SqYEQ}PWQLyMRCQ!BY%6xc<@A-t7l`Urpbu9L2Hv)cx2usI zye``=6BJK|dy+WYu_Q|DgmEdl9v(KKawAzV1dL(hg?jHI5~RW2S<(h%{cu%ZBvf;S z&BdBfBb2L2A3pz^0(^rZu2QZXI-$CzKvR^a%3PoLQqa=0IdBo2r8S3~@^YQ}zvIpy zl1kxixsr1pP3;xrN0)N>q2j=PPEO^Enf;UA8pYTH0W83QUB%@}SOwQxPM8yrrp@y5 zf8ZHxh_CR}wKd`6Gq`6l%ScF+VY{8U%GBIuxAo*8FZ4J`OFv7POdY1tRxLVlbv zm5eSAUdA}sY<#qPKBX@YGBoK0C&2u8g3HsOoG+17gkKooL?U=m#p|+HlnU)iS$c4G zxZd;K2RfFhtA__MPqoC=e!KR1wCCm9rGK2G%tjDWr%^0MxL4ITea+}5z>SFUXfrH1 zttiH`rGbpLp03}K5^(Rm%@)N9&scDSn1usR3BDhIqKylri4%Hp(mP+vn?Sqar_IXs2%M! zp+VHp6|+Vc!e(B-=KmMw5NARn`5<>5xW~-m|I9WFOJ!q8b0u(q8U?ZCUd?vLvNXGw(_TzRF$(Xasj8Xfs@PvTT zIg14C4P#E-XZ=H`!1fdj$Z-u-t0TiAdOREbksx&{$IAVy#8+V{fjYep)nSF^$L^Xx6T6kK7@I9; zlr#5uP-Rcn)ViQ(bTI3sJTLgYOvu0;X57ET2~xkT6b0BigwZF>&vGpG=`x zHIFVBr32jKKRY|>NRE7>8z99d_{`3C?(~7C#G`eLa~v_=&m0|1J}zdR>yN`Q)Ek27 z^D!N2Y0x#G?#hd@*pj`xu?RD*lF0}|F^;eN7-B$KZ)Maej0KI;^(*Br|H9Ko((zRj zkkg+fQ(Lr)^+-`-7d^nGE(D5mai0)Ai<{n+68J_`lDOR|$V&~N1!hkS*9+-LsRs-Cv4!T0?Z!&3kDve3^7K>J zS*&-7dus0&ftR6HWM)=e!gR^s8yKQHGOQZG>4|)?P#JVZ)N%pH%~CpIF#Ov@F4L z$@gZzyP6Hu!RxJ%u3nQAHzpftbb51+^B6+QiQA^ha)MA+rIVrMWxx z4J5{rHvE1X(h*3e`ZFDvdR7x-ZV?d@?>Vd}Eb*y3XU8nt$;IjgBq-|KZ}BQ>9UF5J z%%pRg$pTM#wRfv837M{JFob$em2Pj(w zQb1d{!IKzC9S7>sZ;e7N(oUUQSwTW=tg1px6%4qJ<8uQU6AG{go9fKsK7hmiCH$aK zFDb}&f1*{h98q4oiO&v$W?(xMIN>J)|4dv&-kn<+0O?P}d z_A5-GvEEkA;F+?#_vzKgO4ZH$n@S{7q2zWz3^s?2h5e4#diIZdzY(P+>^@T)4$>r%^wmJ^XUF!*#ABT{c{(9)4+|hX*y~A#S|Vml?8pHR{m9+Pe2%;3pA6X_U+Of zY@>8mOBOB1D4?q|Bb%0Q+us)G;`QLbT%_(V&a`@nXTs5D235AKqAAN$4^f}UJEH5( zx2^Jv$SrC>i5fD#uVZ>14FY+=@GU$$Mzfl;kb2WO6CCMdO@4vU`K8wEXiAF{=&E0pOY1 zAwnPk9#wcH(C$zJJw;wuE@#eCE%6!JjuJIcjZ=}feCK8J8I7c(c7VE<*eFR~7qEpa z=Ma6yDPQQ8CzSpyyR5309++og%vM=t23Br1-2hjB(mB;j0?V7HzJJx26D-oC!dZ_E zs(rB2#+#9r+#9+E%H~yMk+v}@nKM+j&%)&@Eyj}1U-xQQLWh4B_>;Qk!FKS>3?qPJ zI=MnMS%o|l*hYWey)H@Ow!|jQ{778n$6C7kwhU=wj%B%AEOn7{{B3O)GRH@RASPlU zzmg}#pwZ7$bPNcP5DMhm9Lo<1klv%m;$oG?fwkw`FnWZd ziUmnm?BIYdDRTIfk8;3 zD7N3{mkp$`*w~nV{+~XJ@QM#X83FoK&NBPU!TT3tfH?B+s7Y=z(Y-Y#g8Ir`GuF+t z-6q5nACnhkBpH%iN6xGRAOIqGuq*0XzYuHbeHySE^p1-47sZ_~oB02kH+|vN0{iK6 zRj3U&rKCLg*^%Eruz^%{h>e0MFH)%8;D#F6^#pW#F=n}IQhgBGy{);&J;Qjsc$!ym zafVv5c$DIy_Dc;F)+%fitwM3%>MOSX?j_pl`?(beblHv zb+P7`Y6RO`&4M8;3R*kr`-2ZkA#@DI(q7j0Ezhm-a0OGbS|0GIQAM>2X(G|?fhQbW zsbjt432vXx+sSENC7YjSj+T$29Jt<5^Cr*qs&= z4i|m#fnwLjwtQI@HDf|gp65z{^@quc17z{`yfWV@JM}yjw)j|JJ5u%OFNRp3u|lJG zMLKf6=lO!<+BJadD`m$Oup87Sdu%V8=M6d83M5_4%sxKi);dH+{ptFi`e`#j6je#6 zo~Sr0qCWz`)0XVu;9DOky2i2)N3X(ynnCum z|I2rD?mN|WX454mvPePj_L6+SGlwLm)cI7+@!Ex^96%b%;CQlabfnopI=m(FFdl1A zywHIpul+C!RFKE0k5h&5OFodFr#0gE>{r)4E(o8e#3*LKYaMllV+-8+!O<0x?No)hbKX2AJ>H6=u5|OuDjBPa^g2Rmx@TuDndtWV?IyLJ?dyIimvSjeZN-#2o(tZa2J%j$NRa zMKedZWx%kg{kmf6`2Qx2xT}BoUhZO~;VX{{1}Qp^1)*t`6(^tE&fGYI7VZv<#w@Pw zivCL2j~i(!8_%e!OjRv0>Ch-coNig%CtCU0z0e3Pls0*~2X*6x9*!-1T4LIP5AR6U zR%UpA!O|M^F}J>A6DjaHd(KyjlPS=7$6)|(1c1`0MoIUum5S70(v zlmu$w!Ac$;p6`lV)~U$(%^!Im8&_Dvi&F71wMkvSJNPLeP&#DVzw2?kvNbN2 zUSMe+_tXuY_)FuA{&qfIlBqJ~P9XGq;|4sQW?!ixqfezFa}0p&bKI@CE!aI~ufUCt zfphlZxh!cO-KE#Kw@r>#;B_dOAe3~Ocmp&JsVYUqV@->#A)|wJ59T|}xLx_Z1nLA~ zP-@FH(DPzHrBz$139=zBMqqEP_k&~1iKwZrBV;+tw8snMyT`Im^L!L&rzX`A;(7GP z+NbV(bi}w5*jaLTAMn**n4!)AQ|-e5wIaK%b*e7RNEsWG9dFzws$NYl^Ukv|sqbgA zLAR!GP>YQnT7L_z+NVcC{O>U#2FlY$Oo~eR#$)T$6+S^nsLDQE9ZX}d|6=owt4Y)@ zp^DG9-N?H&vC98pjGe?jbU9MMf{R8{c_`0eOJ|`Dflk(XlWjS~pv(`P5l&3?0^ApZ z!x;_+rS=5=d0k+wa^Nom^qoj5M0s3}vzw2jmBSg)gtT?y0&uKmPvIz2DD63GTZ`Ov z+KWWPg9cqQ?@B7GnaIN=p-?7@8dY>bD=39~#BdHF>RV;cm@ z**|S2k59Q?t;Fs!>9&FI9!e-ighQ|tWM~xhr(+g7xp<{#Up_Bvs;0x4%9_h*QrsB5 zb{O=<3=l5l#{+!K zr*H2|3s)g=u(MWwq)(8v3W?nxIXdI{p@$!+$GKsypdN{_$xX1dpZoEnu<+4WW#IJ~ zM1Cf6JC7e#8h5$3V^PwuRbbMkbw|6uk}*g3@F@xaYSnR#?QC707Z09t(_jL-fi6jK zr)%j`vkTUK+y#$aj%Hea}oH-wFZ|GGfC#IRy&ck>LAV}TNLJZeGn?aH~062Zf%{9{}Xe7f~3S-Do3w(SHGpoA{E3x0JTv3GmH1 z%CS~2(oJm(R_Oy#MHVOE+3;A+~LLc0IPdwJRj zoMnN3#VCresH@raZ`HNioOyTKa7Hx!w{U>eNwrIfBS%c?&WGx@+3N^eKa|-%p2yhD z)epZ$cQ4}YyTZ!e=S5mCyq#HW2{pM~H6^P;hvpOMMTz+vurb`7%xNb5he)b*|f5J2fqTM*c+%-pR}KG^{vY!@HC;uaL_o%P=Dfp75hw0@a_! zujU{;_Sq_w`)uQ7&0Q_Bl*%UiSe|GjkP8892B^vwbp;{#?ze*hEEhgs=2Z88CA}X> zv#N#tIycfdF-P#XhQM{?wqMnzx#3vHgt4PKzkoAInwW?u5$cjKeG?dFjqH}QVz5%{ zjFG+uFGHn>_x7cDee!sto{?q8u)TKM2VOpybTk453Ctu@&PLKB#DkYh^I<3c%6{$I z{8nxmiwQx63AuItu_5R)}vueb8w^N5K>^Xo| zAn&v#caco_H8;+Y_y;tUgYzZb5H%Sx{-c_1Qwy3Pk(xlEEN(>#armk05b`UV>Rx$u zmHzU}W~V_nUqmf@Z~DFG^xKn4<~C=e!Rq_qmPzqAq3@0igf4^5U~LbA;dSVzLcO`O z1Znf;pfGTrpec>sndI**AWm@S+@&1^;sXyc4KG4jYcBOPUzbx%YFrk%F~KoeDX6_Z z8Q?|(alozPH5P@b`t#S&EM*fhfLfQ*DC|!)In6yj@n@GkN7EedMznViQv?TNGTZ=P zoFD&*CmvS=K2>}+XQ8?kxHH+vdo$X~(1eAuX|K;$!QmB`a7 zASoJcPsmDo3kVOVJf`pJUr*pceUr=8FXae{suk(Um!QfZNg1#3-5Ge=r?)6(ri{x%9@1uS{^)(HHfRpIxqba44 zFQxWnE!PQb+JRx4b)o!?O!==svPFXN-I? z;KU~c3@Vd5KKqi&vnWN&KyC@JQi~&&R8CvLK&Zvzlf6^Tn87RWP^#;MQ3U@I zb13flD5PDj1nuz{^Aj(&gn|67;K<<0qIfHY77dA5kVNSp>zh;{{aE4Y!yE&jVv`-nYS*2a4jEMRJq~c# zHf_Z9dD_lLtyTYn` zaMvgv zeOCV*58STw9g_jel)eeR{02E5D#86bs(taJwV_@-##5u-VrZus7jO3EO=m}H$&#!z zU*C)qCICr^R*daWXuwdd5-tWFL{~<3j?UnB$qgIs$ z2j!i>Kt$6{k;RgSR|7Sz(RQdCCp^Mhhy(zsm=PQl(&7&#JkpVv5fhF8SsG{T#X#gY z_&f!JDI!TS^mkWf$F6x{&pfD+y)ykxYm=ggb}3G6`cNdRog|V474Jrh9&6tk^7=`Y zDo}--)I0W1YS5)czRbyou_w7<6)nXqM~EOH)(z%Q>@^?cDyv7b;;UCt8 z8Hy3jbjhv2F)q~&G%!q6N2msDFNK`3n-JYAz^)l)I( zSNe5*oH4m5J-|(=hNkStrxfR5;S1TVLKrQk{|pP zSb<(}EVG`O9YZYyVa5-=m;Dbf0kPd-twmvP0p2TyA@=qe1tPjIr=~-hrns)OSKTj# zM*1hb=*$hwwMMn_=JSgxNN9C9q^DXPwu^Z(5)pd@Kda4=)rCa)Zm!43J)v%)ZLw&R z3sYviCPJ!*Go!z*e1=OK6DjUSBUtTCMyUO<=t$2}q)S6o6iQ{B4Ib-oN;N zT`|GV{3!oVMdgGN`cBeWhaQ)2CssI?@iV}5s%epBg*Km_?s(8qG2dzUk(~E8>^q%G zUnP#>#}jAkM7rHPp|`9vlKOc>33qa@Pp76tfn%a_kov!3E97_XfG6Xq!U^c z(1Hk^*)QKR6k0SZucj*OYGjQE*>BAsm|O3ldIh0Oobfy@0|TYD!t%TfT!D@N*aa9w z^NW92ss|g8L8}trKV zOpAKf&Tdac7`t2zi7_l~rNRfPiM17Zo0p@JA?NY%sq!OTiJgCob{+PEg6}ZE658JN zPKaJ=MR?UtL&M9sAYtwcEa0B6uabj!F4mt8rvSoFzFe00O?1D z)e;FS-%0#TV-tE4nlJr(E0Vpu;k?E-gQ^th_y;bc?}NbuEQCh!JC|Udw{j?k&2>}P zaAz-I+G9@325?fPg<5u;PWPBVI60gDKHM^s+b}D&SQxX~u4iG&5@J054kZJx&Fo2$x%As^?a4p*u;ThXZFIy2ofMlzXHX z&m_tbkqDq+<5BEYmSNj$QbH!h{ZKKh$i8A2hObVn`t8KIyF_c?Hj~;+G1QS3c_Yu6 zSgd4*?YD%23d=9K-~jt4tKIzR?3aYp*M-z{+yweP8WI9CS?U~+z~wKvGK>8J{efoL8IaFp!$Vwodgi1-ul8>r zGm3DjB<0G>=@3dpD2L1Skjs<(^`Gl0k+iQ@&?CVCYA|0iflm8b4K(8wOuAN^6gpNw zr3!yi_X0MxnmzP~!j<&qJ0EnvZY^Z{n9H_GYx2Gx4~}cUfFmUqcspIMO@OFsT6r11 zQ)=5+-UHXvR8iY+_%4ZMX{bXpJp!jn9pfG+f0?~fJ1RGI&GhN@k#PSI0xH%P?@YLP zYDxm4L%_7_d9F~0xrveSpI@3djHfLZeNza#cjM~`XuJhdbBpuXQ%Vl7M_hjGGvy?g zW9Q}^L`|~G-N|(&45pDKu0nK^6GeZ(lbq9O_X&FJbD|sWpu!i0O!5t|Hmiaba0O+L zhD0_fb;z~R-lqTYK|-|FgA@NHR?s|?>Q`7sLv|EF2Gu4o93$?o%fiA}sm%%Gkf(%Z zx4|nbq)!ksR7`1K=k#PeD{=0}(Dmsl_V;z}I7=u4ie}(!en?pTqQuO5QvnrJsv3{s zS5fYRe~p3#VTdrl6n+w~%W~n` zAK#X3tp&Ga_-vf_Vy5gim6wVjE|U8XSVWjEnOeBD=%Jw|7!GWu=3N6wZOCOl0OB^l zyqFk>tK-5(#v)ybR4c;cUT5O)8&p=2?n{Gej5}|cK~G3Q62!v59p|1aqUd$Lu<6yD zX1^)^vNOesEUe_^7Su;~@q47$!#7}%|BF`nOGms|4k|VAYHcJO)r){eA{o$*Mu0x_CphcWGU|9LyrC)?qZLex(PG)=g zgk@Pcf*=;f)lB;R{QU4crDeEpfhDE(MmqO4F=4hO4ix(F?LpdR*=Z$P2@L88Klc3f zS*lIH1ci$cSjt}x-Q;o;=AlXiCA2a4H5P?aMupIJYZvF*CHhK&U+?t|cEfx;#WCq- zXO7MrgFQSoGN4-AA$T_%RU`In(?faH^9{!DI#?(@_(io;W~rhs7`qLtM;s=Ml<8c- zrJtJUx#+`HTnAs*Qf&2}V168Q(Oqu#kwUOw{noRO9i*3>>NbsmC6|6Pm)Y$Vej9;q z4B!Bs?Ff+Zdr^)pfZ>!Kv_4yabtG~^JZn=tV@t=};`0>!l#6+Vsz}Mh5Wdst!II8a z=^d%fAS-*}gA}4^g4M^d{K&c@$=U4$^yZD*SDH>q{g(*9`=xB5v%JhukI9=k>pn;N zRl|cDp_gdxgoWwbGRk;|>}JQZi7zVQMHpLYtynQfBP^Trb>3(UNg{@tv7jEb>Lk+qpr+5j`WBwfsrl#8D40 zj>>5CI=U%Qc9Ra_01Hq`Op(R+4AvMJDo02~%_fqVH~EOuzU z30D6S;I#qKTCEv{7FfIthU()oot%nO4XOue?bm3i=Pp9{jJh3^e2WUD$77BEdz@CM zgTEC<9sHAscM8}Qf<9yWr8l(*7EIHQbI4HPD?mvT%n525+xbEUEc~%T42`j$t&(G+ znn7!KYX;DvaO{(2EaosNvBFtFBIPKvKNM^+3*oCnaoqdvY*M4;MLskaaUUu*(RJ=( zwr;Q}eoUZgbmQb1D_mZJ$6zcl+Z@2{7_Ay)NGl0+5^aK)3u9_wkr+|pVnMb&iZ|`s zm69%syi@$r=V<7#!_mER&gWY7^ z@l$c(?>otGbn?A2KQYKxE|;Ai6${?oXd}xm{cm@W)W}gi*aLkCm!KR24~mo6CumfI z*5+bfDp}aIu+GxK3gSpG^M2xf0LE15&$9j^ubVx=8Z2w;c|p^&zsz;*fAHA&=$$3o zxgAwkU@@uz+W%JFoMzWKM1Gd?FF#RtDabZ&`gAn$9@iq;DP9?f)mfn0+w%t<&KcpI zXibqtEU`+orjZwj-&5lq(l?5QXR1T)N7m>1Y_D^{ooJW;nq^RM(>1U!*~HzLuoSgv zY#+21pe_lUA^1x@h*&m%C46{Z^4>Tj$u6m=UvuB1`9K0dDxs83o912e$fo=vIA(L6 zo&ae4!r(0j2v_VTXCJ$`hky3m=U(#E*HpAZR8Ri9*`+Acty5`3F7HJMHKXQ8**4Yn zdvcOV`VBfFt&YKCjg3O@C=P9+Kp3d7FZ(W$b_o^&ES)xAuX>-!b-%i2|E9>F2v<;r zAT)(B84`_zzw=J*-wJ#>Quw)AP_WBdPThQBbpBf*9h!IW>}fP`;bQ{p83^9uHbRUVV_XK(%u)UKBBy|ef;tro?(XRb5fe;Z9L(efilqFS7G)Ed z&an+E+!9X(Tsi9&D%8EYjVBBR)L7R+YV@DST!5@FB9!`f^cT3Q-z8(SUb17(A@SO> z7D9UO@Dj0$UZ4t0}KP% zz6ww?kOO0{kDbUHi`U5*t;YBgBz1tBzb42vaa9&JujSYKr1QkLD){#%W>dWfu7oa{ zxA3TcM5MRoSL|d_875Q=zs=^9k|dtSkquO}tcYy^>FcCe>~H0|^cu^#L7NToPoy#$ z3-j{B4#el_3lL-y0lRl{;eLp!`>PkL=5$zv@67LJCuimXpeSw8%kJ#S^Uiof_l3)a zq~sLqfAxen))|x4Tu-wjrMj92=g!|NB#9z}gllA|<@%y+PeoO99tb3RP@#zTRCGdm z|MUEx|1%474d}lkVfQn=vt+Cs*5zaXM-d%mHI(oCcCOvcpFT z%`e^bRTUDSUEc(xO)3v0qLx5rgbuBnZI`lq$$DOGiFnZdq@q?kaQU@NhEt(_Y|UZN ziediIS^94^Hf%l@#ck5n@S>a#&-so5L29Lf5lJV6dfc@1@+!ogH>5UDIEe0W4?^Ry zsvHzMa_k2h*|`no!GPsK_kjs?xuF8*Cu?xFk@&nDA_AkIyfqO?)v1u)E#{!7Z3ZK*C{$-RI)m0077Tkxb2z@f(n)E|WJNtS#>EeuF;y>6#x2 z%>C~e!M)%R+-`@JX7R|PK_lE7W}wRhP69%IExI~BFF*C`NEzknflZzlpIdVn7LE@K ztZjfqYIV;3Ls;!vopMesuf-mpRjXkg?H7(7{H6Z!g_rTify$zEh3Y#-sP__FOE z-joHCtO2zu-O*Edts7*yQ;Hj!+(fHrejI(dp5s)Qxu;##X}f`@$s~kL>*fB4dI9~j z9hN1ok7c1^Dk&G9@PuhiBiO-d^$Z?n80Ky~?_r)Qz zw?rFi`NnxoqDat91>M>-0u4^(VeYZ`SW7j9gP^)#2QTE}=D$0Y(BC}3cNME$(y$Vi73W(?VU`;lL4K>ljI@cWco(^g!xNG=^&pl>~u zbLI#+B2Yi$Bbku4E@A){n)>PV(e?avl(Ha5&h9C@Gk|HYXf8?D%jK(iO@J6oVUCD0 zLS0J#DMtmm!yD9djW8LtlPf6ioUQHd*8F((m^YE8!DnN+1hp*b2Z0GzC$Dz*1=OL( z8=$zui&Kf7mr6;QJRiwMQTx;fMOQ-kg9k>I0^9wlM|)-7Y>WDh93!^XJnFwh zt*YO*#3EhmNchWL3XOHyWV|*_1W38*bd6xRZ1Sqe!+vozvir5e<58A(6=6bQ#!aBf z@L%n7>&@-o;fS);WvfnoF3LVCsEwwDgMbzpDjhh_$JlCbQ6Ra~YwM^AVfmMQC_BaYkX`y98ZO zwP!vyCfFxcsBiuoDRN4GbA1Ki?AzEAi!qzjG358<@*!G>Ga{<`-d9Zo$J4U}QWWlY z*e@7)sQ%DEUf8$}9-2Kq{lxY4o)8eKxSWL3wLhXCHG%^COWfIFBOYsi99+8CfFVh? zLJ{(?pr+_FhP6U>Hj9y-PVu}?0<37dz~S49XRuTc6TtX;p2gadVyNIi5aIt4@8M$v zTVzy(S7i@IqhL>50zQ%;Bj<37)C)-%Mnk=kLMra%N9dyxXZ8#*40y)k{aN}UlxYuk z<`6J5Hh-XPR#koVheE$1P#@?Oyunf3nn*(~*kkM?#<`^61v!;HG~vvJMYO^9>eLA+ zs%4ozE<|-~TW4Nw@tS=&k9H1*pH01}{wBQbBdz!VS5leM`w7~j>gkwDwxIYE8!d@K z)woRo#;@+W{<10mblHBcxY?9LU_*M<$lg$z>GB9eUKeJnjY{0Q45rY~uYD_rCtk{6 zM+WCCxii17|Lo)*yUtVJVW!C&5;gguesm2Ixdcr855c?x{N^3^d~R5+g|~Btfa2iu zar=DADNpX=KL^P0(g^fy{JCfqkim)AP2i2cQZG%XE!0ENxLVb77v-n`qM^L$!zZlz zU?F!BCE1}fE9zf@FjlcmH(;KK#vARk_@|0ne#(GMRNk)Z6h#b#;!u)QpNHhqjAG<4 zmyvkga`Idx(cxmB0@wA6rsEwo@>z&|`eP_**G+)K9!LFW$V0v%HdjMA;wXag<&pO6(55V3EvSEcw1f@V&ixGkAFX-g#(T#a08UB>mJi23>Idvp94ta2MkYm zDnsmGkcIp*7$yuP1{JG>)Npw8LF!UUJjFh)9T<`h$-#8#n0ndalC6m;G&}?pRQZ85 zCkDx6_Y_Kh%cGltOU@EDlhU7X+V=rFpcxy^RFKA)Aj$IlJ#CDP!_qf{b(Y zEaBGsM^k$~*XV!5zA>Ce65P8nvCv;64U-2qNb{JiFrX6X3%H!u76pl6i1%IO`q7=w zjOcLh5*>)|YG)GPeMR|i;7cBJ(3;$-wliE0u4Ns!pR*<98woPHV-ILbg}8jovfQI7 z06cH8y>J-Bq@gPpjft2yzf1V&@|_FVqUzqN$q$$g@QVZVevxohG4)Tx~w=wGVFE_L76>g>D7U< z_Y@4$0rYuqS2>tPohsP~bSJI>q-UwRG$;8}R)xkH6q*H}+#-&6KtK+&BA2ia0TjMK zf7Pt~IWo_w*L(;$HiMRr|MZ4Yw{PJb%K$?nMKLk?=T?N@-os1&0`lvo*YrX)-Ue1c z#j0fw8MEcEhDde0cJ;QO$?%<|F9B9DkdgCC|B|Ew4nFRzeb`V`_!4_i_`NdLa@A1L z0>~SUp_4LrA>VZ<%e~N_Wy95EWp{Sc<+!ObF6hUZ(rDdj`BwIh!#K-VFJT6m=eP>+ zf$8KWb6GeOa`@O{$=<23jS*4n+tTG#SAb*pfMYFLgBFbS0>eh9BH1JqKbH)ne~Xg- z#1~Fm7)z5T>AHorq7Q+P9931o6@|`CCn|AN6WpP21TmBCu()H-nwUK$(W9}D#L;l30f2_+A5#TtQec|8G3P*O2j4W7P6E4fBpu5HY3d+Uw=k0T zy;9V;s_uJLHyy9t9yxP=)qP0;;Dx_UC!ksdNx>aJJ9r2V^ zA`B9+WPRO8iJ!28o=Ea>bmjJ76yl9}zZfWP;vV;7Wh%Ytt7ft}8 zDg4}eGU8vzRZ{!gx@5!jZ^Ttnw+7?AOO5>MJ{43B%QyPj-8AOwwiN*boz7f!%+4Ew zP`9=%B0N+-=(vU?%f&hOm?&mE)@_g>@!zwpNKJYG8206P#8VTvyP4p0;agP9JdX() z>f*{|myfx3U`n_pbjN+%2}q?UiHWDGho>zPbe|ylr+8F0o(~}0)FAjWs0o?olK3nQ z;cd^PVRfpbaRcnubK{r|*H)l@Y}hvPu)@#uX(b&pZx6t|jW)<-<_SPoD2cr)>BYoe zoNkSG-+u+UDg~{IT>X?e_-26(`3=wQl*8oMyP16*D#he|!+%=%&g2LDj@dX}>?rls zz3GgmZjaXUoJ~{eX;n{?^IA-pxuZZz&Y zq*tO`xYXm0cSV3acBG#=(PBo_eBqy`g^jb0KhT#wNC6G(JdhNx^BxkjX*4$}8L5{t z>2JCqu(*a#)fvoP(|Rak;CIJR`~0)X)*8+y7CYRbUfVK1Cp8^(1SbMb%C&6WTTMW| zlVf&@KDqHGGG9~%Z!@~yV)q>Sytw6cV$%EXvLLduN+ohdsO8n%!LFaKgeDCfF2SFUS(G4q`Ng#%cU>#Mn83Lg5nZ1nTNKIx=S#ui5V(LfyJv z$;TKhTns<+!zRUS?;;(4l=%4J?sT|!?E_;Tq{XOOpZnK)GEPU5qAul?*HRQXBo~)Y z##<mlwU73IN!^I!+=dO-w|5{t<`B|81K_2Bh3zbh-dYf@xy+*~l=iHeJi- zs!|X3l}$UX@tD_C*Q5ujcA!f|bpGDu4PfKE^86>*;xdV6v!fsL)eg&{c!5}MTFG@R zBp5OgfE>dit9tgO%|Un*r{M|rhkoL&jyUHtN;mtZlnsy(1JjtFg)lGRF11eN;OutC zex9UVT`!P>AtYT4y3084e3A@G(=CB-p0)N+TWdKLk$cA6%t|1%y~O9DYDC7^jx=Bs zs4Ywx)4m@t9o$<|GR*1&(EE^a5#a>5ydstdj!?O`bvNUL;*CIfJ!yi`3)IkjmW_|BVKRaOa(n*CTR4 z_}&m)kZlbqb=wzOl%_>N>NpXQZ%3dLYbbj~8q|+2Eo*f%S)bB|(N2Q9E2KaCEp1^0 z<~_E4^Mybe)Lqypj1X=hc>%k@4b}Jiu?K1v5F+X)=^OGh9Bw*a^Wcq9mS~?j$kIeo zn4~XAj`GL}-Es0DZu3sGOUP77+_M62%h~qY{llpGjt3z4vVG6zwZc3Byi!gqB8{HU z5)r>Qd6h9(kJ<9cLPt|NGkUkXET;;u!L_G&W(P0O0KJqxY(YbyYY3&`jwnWN8AzZf zPHotvq!UY3eHxtV%<31;R5hDZdH-N*_8pQ1Q2nj)m(9&e6j|45j@nfKc zvcK&y_KVCOC|pfi^3!DVlQhzz?5tzV8vSjp))OB;d@d_W(TQnlV+v$yHGY1 z$s-j_G;{+c5vk5EU)r7okQq=vrM#y80vM22L1M4~OZ0H}gcRiiICws*bxwGg@GC@L zM0Lh=M6JE_^de7+n{ND$aoDij9gU$D=TZs|6KG9a6;`K+W(IAm6KIE{DNEA;*@zF7 z>-3tPv8%)s0nL;8UrQF<^VIsC>Tz+qq`-=N3~e!1r{5Iaz`oe_4QxL;y3dG0OZk0t zI2n0P`a`V@@L29Hj1E`k(|x*>Cxy=}H0##Qe?s)crC)T7NOKRIvRwXz&MbL7wy%Hh z2LokHE;njDr9oFqo%j#M`XS*?Ev8X2Y3=_H_G9V23>}&S6<{fEZ;=f1fZVK2?3v@W znk_h~!-}sqcj?WW?t6>G?v)jWvw)n-AQVRzV-!cIM1zZX;JNHsf?hDoRL(G@Q68ja zvvc$F0!M)p0?{+)BmO3me8VDgt9GGtS`0~LVmWM&_`C=l#2z}iOJ|rlhl3b93D$Vy zJN=cD_Cle09WPndiU$G^iC@ivRN~;1N*ef~<{4u#(X@PvomNkxPtSYu7AO$Q5<-Y6 zA!y@azoO_g#RN&UJ5cEX@uAox+WJwes<-tae-z#{+1s9+a&te1zlEZW|0QxaPax&1 zb8MS|zrSKR05c>St6m%d^{9P7uHcqGG@}fG$;a_6n)5M`WetYp9cR#MC9vLI)LG;7 zm}N4e^~655nq|Yc+DDJNXg07=QOB6|;Vg@>->})u&QFqv!ydmBn4$$>g@iWS(Zt!_ zJXnlW*I9EQ9$5pD_VwJ2)vpf;ZLfk(8}Gd!7Y&mz%ld`x{yciet1>*qNvYBbq}yd& z<8p;{nN8hqyd^{SxM!69=LPRNVg)#Mzju8sxH#BMK8I&4#;ptM?{c!IM@PW$F)-u< z)u~>C9P`q%6CZd6lsG`MAxA7i?#>SirGaS~a}H!)exyjVo+eLqa}GtekOx((FWe%$ zJ!FkA5Ur3Ufy+06kE@~!E3AE*q=c@?sBaUT*BsnkJ%y~Y)W=&^Ga#m-Id|i8aq+!3~mIMbQCHbm}*GO+kq?S;Z5D& znu+Vr&30Sw@buO=o#%EV-Sp4AMDYv`fC6R(CQ$zi@s&YQtq0=j)U;Z~UBMw6b^QwdL zn_tLb^<|In)1dLQA)1Q&j#FHPF?o_mso*rP&I0N_OUSe!v>64w0f4N@C=qY>JDdK6 z{uUml>hoZ)IZm*siWFcCARHFb8NsE+p?4&PU@2w70>>LX+VgFoW*DjKD*#OZYm%#?D7`P5{Kvl%`DUW$?1TL z2>~k%WA_E4Wn3(xB@tliZmg8;zLaM)G~HUZ*BqyHYyD?BL(~oNi>(FxN3*14F?TY! z9D5$p<40bv!NNtM`iXt_(j!%eqnvo3Q8ZMf0ttHXq$V$5?=aqFCO_`;@HQaD5lk2$ zyEli2qJ@DMxz=ma1g@|!Szo6z44Zl@6_Zw!8>KS6KsXUgW*yyu=;6BAokM zmz1TnO=>dLV6gFkN~VvP0IVO`DFgUaXpEoj6|H&iM&g@nwobQIZ9sVPyZOaTHAAEU zTK?(RCW#?EKg=A-;nxXCq~Ad3?zbq~*(iFFz;e}K#@aWlC!H`qwoC0k%o#JT;GaBW z#;kN@qy(7Dh|GJB!2#2_{s}iJIa$pVf*#8RV>%;T|M4OsO&S84HToWCC5#j<9O~;*c{?N&9l2tBLgbm%MQXd-iEuzCMPFC zkB2zmpsl`fXWY3Y!B-?NoT*f4aH0`Qg&LCXP>R`q5>8=19Bv#!Vgz~jRQej1OL#GL z&PZD;_vO-sPv&f-fG2mhYUM)TJRhnmqIu3LtoE5M_;q#ks}2 z8lumZ@W=Cum|Rc(eqJimP$tevj^2hs+w@4v-ciERtw8cImzRnAr3OBT_$I5xU|eDI z^PaAg+>}>-=PBhsY+X?!qRal$mshKdpIk*vsU9rUCSH!bkS_;{B<2o+FM%oL7z@3e z-Uq9{EyC@mLme{i4}i78mAYA|PNzeNFq;qKM>wsNs^5%jP8$o;qBK8fb3=WMs{4jIrKas0M((z+r_Q8EqTt(@hX}QQm52NRVaG7Fks~W`a=60%hnin#To)n z?IH&p2Fo~aN|-(UH-GaBzO?lJa&sV5;L=ltbttBCCh&DiZU`Xv)9q&D{kd2CoHozOSqp*e24=H?tBqMM2mv=?dVmaHC6RnH zr%TquPT_+X^kk7L77uV9-$kiDl1m9!}A!3CJ|%Y9qKHgg3|%Td_aZr z?g0{xQIef}L*~<>5#AmljxzChTG}*>7UaY+3-5*+<`Q@qloH>63SC|w(HjO8b$Kmx zXzdP>^c}I%#U z+OhQKY*(A{Z?Ot{N%`Vzf9dtg-65UsEN;aoPuX5iKr?K_%~o+D9I_#Q39z#!EF;qn zKxak#Q`^T?xds+9uT5+R>*p&;2_-tscCJ5D{&}_-huz>D5Lx!_8o{WNv%3Cq=pvGb z?L<{1N<61DeJz$e+&7V0wfy(OFnp})vZTcO z6g1owR%-F~FnIEC-YAnXK178{S(E(TvKu0b2$GDL3g=3$$f!2>vy;4B(s<`G4f(QL zV|askxc~h*e~GwdYseDxNskBdA+=l1U5;#C;C9vaIDAop@Bxo1vfTD} zZR#8E8!ETF55OWzKL2=wJ~+FfUs16s$PH9tY``)XhT^gQD78EkeSBmNiZDd!73S$$ z2tj7NM`4{YUlT!i4F^KLR;(|79uO@AUG3*=Ct5`&t89%W3(;0kx$KTxP@dOKi@4bn ze^UO-V!(tVTy`n|a0EOV;pMx0{c=d9tG6okoZPmzi|LPk`S`vNoV|xUUc#V#Vs%uG zI2|NvwSrqbF?T{1!SgJFSrHJRb1f1J+(StKJS~-fhOaz&d*Y~zG;L8zLI30Gwtx`i z9+kx)C!;mKZOv1hu_n3|i6ZY;%z1)2p;Pli_ZAL3VJDIy-c!2Nr@oJXcSKp1Hq*-t z<$?s7$UVL_%bG%Ek%w*G(o?`y&q5mnhC+?}VV!ZU-iLN!R!(e*CNNg{$a7vCuTRG5 zx3JIL@95JPA1EFsuXA=ZX~PTlu+Cq;7)d}rr?l(?8Y(msB1%%=OU9GNsi~I3Eg_52Icf^%S1u)E&)Cc9*MUE% zz++W1av3%85ZNxIhGi8;9=}SyvH2GV+m9j@u!!FtdS_^nOlES+{&03$7g%(PehtPo zcJ`wLPD9Lo=*}JX&%yI$Kt|c)by)06kh7E>ogu0K;E^*v?UV<_I@44aDNEek!Be^* zI4x1XePV!PVvRe`J8q6`TTg|P(x+D(RD2u6m;i|3u4o5qZwnGLM3RQ?`HX9u+Fa|A z#Ney}{bQ(?GyB^TwaRO^jCFC@GOEy`(_z+&n1$tql92IvkO!Jqua z1sQSYsg+iWZds`YzTw1^({PsEPK5-In_SSsAg5Im@S+}( zW%U<4EL2)+W~Z(8K}@JX;~)W>x@oEAkkXh^b1LG0QV`euLRyK_0OT9_Sq>`=e9i(F zdJ9eRasg(8zUNzBM%b2|+rNG+@vje$x@p>5^y z;b)|R#IxkLS!fpQpi*}Ei(VTcKZqix+S!oRf)Iu&XDY zw934roGJ8y-bL*4o49g25^beulFe%hN^J1DsMbCMN^T z7I}5(Et$fO6bQ&k=e2dnDYYHNsay0>H5{v8L_U}#vZ<6x!z z364sUjKfI(;tFqc!<=_mc#eWVCv4GsM}BX1VKwZRLZyIt*)(z

}0M(Z#Dv^2J(~ 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

avKI_Ke$;1+bPF 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%0D`n!m+K5n3CN)D>v7?0x2Ql+ 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 k%rdOSpIPfD2WiBaU$8cF2YKPXZCs+$2Fd`H\"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/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.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 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-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 disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="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-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" 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" 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="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +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/20260528/20260528034002-Diff-Config.rsc b/MikroMaster/history/20260528/20260528034002-Diff-Config.rsc new file mode 100644 index 0000000..eac2a75 --- /dev/null +++ b/MikroMaster/history/20260528/20260528034002-Diff-Config.rsc @@ -0,0 +1,4 @@ +31c31 +< # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +--- +> # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding -- 2.52.0