From 0eb44edae224db86f1cf7b9b497e172de374699b Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 26 May 2026 16:20:57 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 26 16:20:57. --- .../20260526/20260526162002-Binary.backup | Bin 0 -> 257845 bytes .../20260526/20260526162002-Config.rsc | 3462 +++++++++++++++++ .../20260526/20260526162002-Diff-Config.rsc | 6 + 3 files changed, 3468 insertions(+) create mode 100644 MikroMaster/20260526/20260526162002-Binary.backup create mode 100644 MikroMaster/20260526/20260526162002-Config.rsc create mode 100644 MikroMaster/history/20260526/20260526162002-Diff-Config.rsc diff --git a/MikroMaster/20260526/20260526162002-Binary.backup b/MikroMaster/20260526/20260526162002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3e41dc0ddffa406a62d208adf60116cd5ddc2615 GIT binary patch literal 257845 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

HMRHSJ zvuyK}VxSpzpCtVw3aRBgQ$>R?wDgU*nDX_s7kUL0AOipsAOuyu(3(>d;t6YYwvBzd zz8H*Y-q}p-;d~JZ7v^JqCY&eZr!^poqt33U(8Wy8pMqcWb{x&yo!hOWt=c-TiziuW zcv~#2`Fx;vh308CPW|fS=1~t?DtMo~Afz9}U~N#ww3@ZpCOnY~Lxw)|Y;umKwVZsUQuBaOuZG?T5hU{lprk5mJ)x8o)Hw1CU$SoJL2=54<5iB6EDA;>Nv)2Y! zbFaCSKc3((WcQ@})aBa@?A!ZZZUnaR{)QEOx?x6-Z0~x783jh^Mpwv+pH;A~ab1yg z3-I#60@PCH5dr%&0?_3>rT!Qj+6!(pN~F6~cH3f<3gU6MEuRB} z(LXqtE-V6yJ&;431btDx{kh=u(5HHo=thqs8l_Ft$Q?Mn=Qa@D}@+uK1-_@$AMp-F^ZkKSN z7(%(NJGOl2<|dy&nTMT{yahu~4TCvB2yXS{09z`_HujTL72emlF_WE8V5v)~e&-yn zw(xB+@NK-?_t{Fnn3uy~euo1`hL)eF_{(x3RXZwgRQ}Wl@E@f%sVEp7xbJQCdG=uZ zi~Q^XK3E8b2^NSh0^wEVPYLTG?CY4;@OAk|F4v^1>c~6jkl<$x~- zxAPkdwV97if0F4Er%Um0UyB@?;mJ({>Hw(28ma&W+Yo2Ke6lQ0D?}QWqwrg?DpO(= zO*YfyE7kat)qSiVQw1b;*>8YrNaip582RYLKLGkt8xqSkmolVi2-}R8*bAwlJX6m| zk#R>5Sl`Eck$SkwFHa2Io~9Swg)8y>B=9=|h)Af{3`0;`Y38d+p`DgsR~3TX5zOMk zF%DM>y`$$ZD-i((A(H~IAj2j3ch9MF$;=L^ILEoCv}<_<51z?4fHvK_qBtgx!L42g zDo?TrMesyHmz=rFS}g4>ESdude#7|74Qvz6lfI#VXl6%h)h|ov&}62w?3iJg1a1E9 z7vInxXGCP`*ar1mn|sqQGKo+#U8tl=KymUxj7g#l023sO1uwBQ?|A3t<33hhF(_ZC zBKLqgF`xaeYURSI0Pnvvy$;Cp^9X;hK{hFNWN^Fx1?29)4YVi11vQSGw4c_UpwEBp z;XomGgP;j739!Xf^^kcEG^&&$3l68CSH6y#bK{j`9gCqH&~-pD!o#_Sv=#JuQnBW z{)QSRoE>oC9<$><4mwJiEP$WA4=4Na z3%nc-(=oq_z&ZUHeYA>2W5Y~ezR`~E9ktjyvYN91#G}PE*o9E>!R}{r*8@g=XqC7oQTt-Xri6uF%~K^*RL; zN>L$YkP^v7U5dEI%7d@Ewx7d>ydjPTv`BxBdAXX|_ej^(bNFA2bIU04cZ5%1Ci4j+ zZBX&~k?~4tDISLqRk`zL5cjo>8MK+EhkK7}#6rp*i&7GGN2vs1x73D9zBc2hx#skQ zar1-^+8yDL!E5yRSYAM+GBRcWnwx%BvcfOx11g((9$gc&ErRaaB=&@s9QFipuG9P; zoIa)NQKNzykmcHzOMyZIH+Pb*UpL;6V4eLk2h`VppH z_tV&#Z5{yJS+i221|vz)9nY{!qWH=r#$F*@>#v_FzT0xl%n~X&;4iOP{0cc=ZRS%(-Pk5`p(oX%QHu zIt=Iq&FB-~&i}0A%u~<>X;nP}KctGA*@hR&Xo2Eab#z2(U2!JmvA6?n)0B8x8j#RX zG2n~s;vMVtU7(0LpGNkhqzJ$%xsC$Hq97nC$9qy~FZJ9DtDe90A8w7sE8`vA*h#7A zV!bD`xkIQ#qUc6JOgb@(@bJ4jmvRD?hMz!FWb*(mSh-wd-A-2#Sqy5BsIV4=n?ofK zEBv%nRezJe-;BR<|FRn@>N2Im<8IDvj&xg&mr}Qjk?l26Mi!FMy?#CuN3F=GiNC-~ zn*NrmWTSn4vxTA&W8AUX@uYi6n+DM$`=6(($>sY62dsux9tFEhM8^w+hE!SL18tW; zGE}Q7-I1Yq-2#$=69b(`#Dc!o@dNite2OwM<=1#d{nywk9W5GO{z2P|<+f14sdt0? ztTN={it0IFHj2BUHqRYSeMq4juN=tN=4T^qvwq7Ro) zMasjZCO=z}o)Al8+KyEga2t*fXbRlCB~dN?4Y48siVWRpHij07A}Rw6`?jAxWl&ex z2i>I-Z#Wqg8O?6y3EW2WW@PAYHvME|h#4;V%6JO@ynFU^gvF+G25sK9|1E?!cPxT2H$Wd=cg(@S6 z2YW)w4ELzsaCzR>D)HJ(Kn62k?lsP89M#{w4#1Kr2k^;?y@NcH@dCPSh?IaYU&ZqX z@7FHuA0U7xP?=-rMqUUc9@aJqEz0t;cya*6FQ63)n%uGbTFk_~;}$thY<{Yrii z!I`0G%iK7Vl+k%xaKn&XOR%MnJie|scV7y*flzu|5Gn&Zap4Fn)#KXnFpMZVtpP>6 zfqd4Tfg|Sy-GZmG{}HYhHF6!jhrVwL*xxl`PYWA0mna@^Yp8)i&5z35(svL(?P?BS zmD%{gkH)Z+7D-hO(Qqv!$T%VA)iKE*f4a^px=emf zBj$Q=Bi^2rw-B-F6$xNS!K002Ifw9*jbSkeF9h-=IC`pBvjcV{@|vRFxoM<9jzEuD=yu0qz}A z!D9qaEe=M(v{uYEysN;vqyQf40>E=x+yKuxTg+6CH7W0wu(5fmt*u9xNEw<}OsZB?}T8>Fmm~l2tZ*o3QZF%A&(EW4UQ!}INg7V zl%2kHnV%$=Q#YX1>kpU4A}x2%9hx6&37E;%3HZk;P@oi{{&K1>W&P+}V5zXN+9^_=a$-2Sb3uB_KK3J6*{u^eYGTU0ZK$^y!vcq$TM-eY`xsnl zM^qZfbutvJ_nx9^=$7*&%4H{IHwYvtdcbEs>4hO@xS4l1Zs75`NSBW#KIU&S490A> z7+(i)B6|HZ8V=pSM~N5QdJfuiexBr0@3j$N}l!+m;Kba9O}XR(dw# z3E+ZfR+(A~L(vq2=x?#5CGZm@@G&cJMJ0%)b#L9y1e4p zhNu-58V8WQciRZRUa9`jX=~{|E;=i8%$Tms*7pYsH&7fyL>n!V)jDn>MhtEa|Ej)q zYpRzf5|Egzgy;n#R-oR9O8p(lU0y8YoP)F^&Lhy+LaGw5hBw-hiuLCBP%9N-rGe~w zB5Nf_mlsYAKUckzuSAqrw)}qQygNwFm+qA!gX24Q>onh`%w`jmJrw>k0_b>?Wbhyn z_fFbCn805WclA-@e6cYH{GHrnv=wiG#- zn6g|1*nR#+Swq`Q?TD8Nq5ZwoI(UWkA}|=`s(83w-Hn#6@|B6Uj&T*QMFg$e8Xa6_ zON;93lx0EVAA~bSx5s^k9eNU(%~dP2N=8z;9FW=lUqTbG=@EDecLlYOUyg(8TaSKb z<3bNvohA0r9VLzBkR%JXyE`hWb0nFcHsRFiDb#2DoRvb#W*&x#yphwHBS@OO6TFXz zboei2`JRB@v$YOiMfC0Voca~)RdD*FOMz^RM*=?>Nr#MLL}$hAd~R5kKH!5i=X5nKniD6|Ae?BYg?+0Ke2Hjw)Qf;`~W`;eRXUL=Qi93$LC$C6!M+E7b{V2NPuIQQa{Gj3cRMOGER! z5_2!1+}zCfcutUr#PZ_C!E57Adq>|b<6^54Y=Hr4V%KG)CzUttHd-Tyj7o$Nh_xuk zQ1lrH%pP1&FtKM+%V8w%{iM*XJi$Qpw3mf|A@c!_l9Y3Ph6h$9UVp_y>MDE(AK(jZ z1E!9qXnNML2$}f%usN<`Cts|RFDn|rbs;858SPm1r%CG+@=e>tl(L7l4@dP~Zqp`d zi)UaombuKzm-qTF+WxJy%RNYofHQff`geOEi;6v)-9w?K=AAOeAP}1l(IHBqzz8<(I2{_PUS~@wma!U);!07e6@|TB>;SjB6!;0&=^^oNs?cFjWzY`uLx*> z(;AeUq~g7`J`(rO(oXs!r%lXVOsNM`zy?80pu9q#qOm~PIz07-uBVVr69FFEn zQTL45wsO~#`@N3(5D&}o7@gYhoi6ZYC6rQX1~|t)n?PE2HgY2`7g!Z<9YuPHiXhM( zH^hb2$o2L{K;G~Qrmf8#u_ys~WN-B;L~j0=_h|*Z?4{IuQl0VS+Yc0UYEyvkH8l@| zx+ZUPnz?*l-s-3?=Xmeh^SK&!?y`t(BqKPt#{WjGnx#CR3ggP)VweF~-t|TkEyrCh z-YXO=T}J&2TQW0BC27a4Lpq12)FZKY|dz{nd{QKGbq25b=^As*$5fcuh-)$ty0= zdIylA8vb3#22Y?}&Azkg`PiVY`NRKc=XY;m{Q>(WVLnFcyD(I!$=t|tZe=93;jh}C zrFppxo_81HuKYUP?WOV-$sFI;mUzJRG5+(lK?HH?+EJg?2TEUe9iQR-W( zVVTKfY2zaD_E0h)QS7cEUy_d3y_K3y0m4NLAld8-WyH&rW5Ge+&5%ba$Zt15DXpIj zcIM^X;ZL7Kmrve3&Yn+ouIS!q%H)K)WAlr?M;Jm}!C~iST6SrT6#(>4WAh?&WDe3L zFC_EMI*$EPvR9nskL+B}!TdJaJe>@UeX^QEo?*oxSg$-s^o33rB9`T*deV9&;I~G% zNTKSqX7_N@3f!Z-EW`NFuX}GjP#X1sWYr!ss6 zn}G+S@pHYm)WJRf#)#9_tCYw2UnSdv=mdRDyTCi1@vLOgf?X66Xz4P&T{JM7qmX!_ zz@lhWYbSl^(j#&il3db(?TG5ry=g5T_hRQYqCaP{!5P(q)|MJSA5{P`!%V36d|~$0 zs3eGP{jL)3sF!hM-a=JW?DH|Ki949&-#f0At))X?RkU(YO6g}0Az0mBHRLU5x5du z42Gu+6(BzmdE|_0Y-p&d6YSUdCDyW?#^OW+-z5mo_z)qoFk@yr!3N9tRcepsf3yDx zcSA)_K`-U-3_Dyf?IkU3*Gas@x+!VEnNneS{5GMwtJP{_SrF80>ZXF8)91j{8gU)1 zu$`|70dvXl#5<~5w6fg}8D31us+0;<+kBLnvg8^9i8_Nr8eF@A^tf-)nO`|-(lXYh zz)GQO+h49|i-r^`s};|cd;(`S%Xz9hnAPjbd8(%`bxD!Sm4Rua0-jotZOjLiiLB6k zoC6ftd%emf7@G?$kviBl{P&P-oso3vZs=2>Yk)>|rtvZ%6LouH;-fTh{Tw`|H}v#l zZfJWDX1Z7p<51iI0bBd*L-7eT(Y0ajv?AqUI{n3K=wxn|mNy|-^Z#RfY*on4;%7q+ znjK+K`}NG*aD)azeDR%7K;O?q$c5k7vbqi?#@SvOtbQ&S|F{UmEs=#V)8TFKfkR7@ zz#gDz6CO~1tJXYkbH6Z9yZm|Iuvm@b;;g`W@If4V$Rk6_6;0y{&yl*f&oYE(bEFCp z(%u86-N(5)!dQ7E9B5~kBVDyZ^E4Wk&P173PSN3d_%DJgMjAvn=g_b~tIZpkjxAd8 zvHny0t%CB#+`U{9bZJBVhqqtDG%Ub?n*Y1 z+6kY+0{`mM!_8*3-Zx3wZLfiX^qY&@Xg#5m6JX@t^P{C<4}5qSodSY$18tP}?Q#>H zAQ2zPeckU8v?NGUgO4=<6?5qX$+r**YRm&X6kSUGlMlc5U+4T)Im?O^c}xFt_ zEjJhUKU>B&J&Dhw39xf23s6KCW<<54!A8r;Qw)ZSIVizvbiduzZHi+BI_ABvh;u)d zg8@$E0U_xcS9Yq9F-0SR6C~$EB&i{hxf;_|q5+#nd?2TlTU;gp8s9L<-BqX*dhuvb zKh2mxh(jV=buJ|J_XX{6&jCiDy1(nVBPadzYLlBuff=hiMKRL}aH5_NL4pNuI}uUaD0a*WxRqC2aAI)E{14;J>@fdg&S>o9Eu7Eh zvxup+MOIq89hj&gfIl%&AL6!`5VpVSp)!`<47qEK2!spRBg~!jlN1BY?Xio2)BcV3 zBYDx@wN*zC_i!h?pmO7BEQm+zJXEYTA0m((o*y1ngr{AYGF4^I^mbP)9226z4@+=+ zxunTkTgJ0~A~d|L1z^0|UL`+1*nFmMIDR_-T2W13_;)~>F(>1%-hSIn1m|O(^ODZ= z=c>c%Mu)y4tMF=u9U5&(PUhgL9WTs$)#$+Oq(jS5^y=2fqB1*ZU}r~sDt`TzkWbe` zr1=CrZa~}8t(d-`k(LUf0bCmvo zv(tq(a61NT-zSMio-PRyw`{>Byo_4O(}= zXpir|A0ELIitSMT&L{nsIiVk+nFp|4FyXd#TaHMBl-igYOA)XaB-?n2{d}taqzpUf6G%v7gYchL-((~u}NC5#MwY=>v132Xu zc0~~ZL$Zw@(jSB%nGPm6u_z7_b55IYC}A09m2mj5(0kpa#MDsB^dS$+!$&;b9WX%? zo`JM>Xr`bx+Ssfu$NTg7b~*vpH=^-$cjdY-a{jfvrqi5O_lTyU%vLHs%;)0%S_89I zUJWC~XlV-14O)`ed6u3W=LFiM5vWegtQ`ijV4r;#KF6Lcq6KO8cRM@G6Ay0KO%XT= zLpqgG9XVs7wK}!S?51C z4dOyP*DC_g{lya(^aEo0^Rmv`r!g!Guk}=^JJcWw9Ag(+vV9E{Yc2OZN;g-B;=E)h zzww$X*zpx4=cWdcNhF-oq>lxb=+y2Aq2JDtvFm$HVDQbjG$3Q{Hc2r|hLx+T&PtcI zZ1s)MiVfsu$iqzP_YzOj$2Ypr$3WgRHQshV%^sr>&9|^n#=R`5AUF=2da#Q0bx%$1 zR1~vY18f-$_$~NF_eCrCPO@E8Xh_CoO~rZdl5cmVf$AtFlFK9Xhsb|dLZBqBDPXrr zWiL1o9YlKUt^K)(yD;DE|99A;O6o)@T3oCyV^957{Jur~9m`0{bZxiu`jI$Yj%Ej*#}=*toJN1I)1999049^$>h0A^+$ z)39G_id1ZQ5r#TS$L-8IFz*TdE4Xje$0z)cXmsD*i7<9+GEgs5=pjQSB|n%Usk6i{ zKEbEyl^=Am0(=DsMK;aPS>vim6)22MFHc(};E6vbgc758vvh{#tCf?ZZHAvDC(NvE zcnh6p0ZV+B%SFJS2NNt|+tXJcJy|qBySxZQZ3c^;rvx7&Zabm~Px{_?`egHEJE}Pd zbPZd+7wZ*uN5|pe@M0e&LG!LCW*MnS7R$^#O9Sa#N;RDw~oQu1Zf8p9b zX8>@$xvcQ*H{f|=x?;wiMZ5m7ClI9)S3`5RBFy6js02H{Gl%umd;V9JNH|$+k;_sk zwt^Ix0wkR@7!jMHv(Jt1_CQZ0lY@YVshGn5p?c6auN-H!%f0a`m7{Fcz2`t5tS7RMhtQ=-!FvU~EToki8+Fsga>N{$^N@!!Eu%pG!WUigh(kQZh| zwl~ri2l$2a(zUXh-(|M)wkpdFJ3YtsXh>N=N&&X&9TU( z5t0aZ&>U~ZPc8eRCR-dhYY`GzN<9fXDn2C1F?T66OEH(lYPH!9t!u~Av)lJe>^|MM zZT6()ykVf&(<80RW{g*ClQOSu4wI>a;4#VL;LVYNRJRV~aHJIRlz-ZW+&5S;>Bywn zj+ z2V8kWq&e0YOZ>1#T^Xb&W{wOl0V{WuI{>D<2ZKCa8UAwSps%cPTa4q&dO?elYvauF zQC|l#p+&d_7Upzbqvcoa)reOb2#8a4UU`qfOK}t1gPHUIR0V;-xnP#<}QAoSnNt z>_F8bJVb)ZjRTTB?1j&UngPl50s_Z|aB5G_XJwnWQ%0uDV7NZU!Qt&JNz zZBf?wGyF+#Dw9~+NkJr4-&(a0CYU$4_yL`Pn5v&AZ_0N5LqB>Bz{!HAQh49qPxnVy zv2;JCZ3}0eB+8P6(j^;7lLXD2Vv9KfCj>95BJ*?+s`>Fa0biWk6%FoFZ2g*^AgXK! zR-s1$)O(o-qIRjrEG2RJbG$7a)I%kLGJ&TNy3caesN=fweOFJ2oU@+&myorJ<4elK zfE@lOrdq2e-ft>#3;Y*Y;`E-z&Sh2{ofmWjErIY7EOIcvP-gH5=Srx6VgPZ@IY&Vw z(Oq0ynhfh3S)`R3zoP2b1}(}LQhmvH{tEQIkCBek{VV^Z(_Ra7Qk)ICp{W{+P(Fun zl5P&DAES+FukxAr35kcdzYfLz5i_z1(kE$=oJ-*vO3&|{3eO=Wg+JZ~47@9bW5@+s z|9pRg4}zG=Fa0CL8-oM)(e~ecd>2HIHQC6bx~wECB#QozX?^{O#+M^YatlV17)~FM zdV?a4c!Ylt$dF9_;a`|q zGi){-yl#~$q6KPShha`(>cZ~_Y%{f2Q55V6q33>~#-Dn}3KuP)0+4T6H$omOQHe%x zfyVa1{+>%(9N$wJ=-3)zIY^%%coxKHb;%T6MNQhnCmxat%eB8POCn@{TAG%Gr*t;) zt-QmcprHbuE$2V1Y{w#ZbSIoL2Dtc#{CdNIHaaF4vlnkezMM(#>%2vBHT%nzaJLRo$@s%T(pr;PZMM zC&X`TuUM*gC-EQ);8F766w-at2>B3e2Rh&mlis#X;vf^>XOPMQ$x_X-C9>j8-<~7m zT`8TD{_Mc?oiess97ua4@G!&P5ASPfiMhDM+z1HQJ}pH8n|Lh$9-IV{V9~oq(HN$X zH=*MRyP}raip?)HH#Q8iQW-MM>7zqeVpo`?if+G-F55oX8l7OeewUW}InUeoJ6z1! zDZ!Rh;GXFJX|^0^yJe7HLTNGdRj4m_eLn4;#Ux-QSLJ0y^+fmu&U1{;X^B*};j;Ip z?D&w9H|jOQ(p*|R&D`4`MG0a@iZ6zNV#^Z2pMEbGp)&sNjw3-sR%>foJDV}x)6Pch zD$>@yas0?iW0-dU(FU(pO+*8s2vhv<3dP@morJ6zF_2j4^fc_+g&3u@S(@}N^X*j4 z_rU)45^8DP}`pEM!DN(LP)B|mHcEzd!oTlqxPWW@9Ke=OgVVs^Ay*V&0m1V9Rl_5iq|eKqmSw*Vn0 z;LgMFH8iej>p98O%Lcw>Yo^d+xFW;;J9}ON7}e}sx~vXl+>kIB9{-iZ_*4JTLiI@| zMynUuoSi2I0vp}oUaZem$B;f2nJ4?~_EcrIf=4;*3-Ck2R@RIUH}&79?d+0{id7gQ z;GxS%kfNiH3m}o;6l8!SR}9C1 z*?2_S24jm5NBsa4dis(3Na8$&I#}&?dVm&*ghC|V=F-|rZZBv>ch|WZfFnnDTs|Y^ z#5CSVV8hM-=Oem8&P+HRA0Q^cd>BxcA#SCKIdo)C8uUOUwQ`O?SK(alx!Odm=lNLpslOeQ<4Y8gAO+DBg*pm;Iy|FakK%iqfjLoFMP&p zZ^P}$3Gz6Ct9G~m!^#am0n_(_XU7!cPz&ufUcfDy471QQ9SICSPixB>7hL0ip1G%* z%FYL8vGWn@R@*w6Fn>i3>}`9r`W?vJAIN>2Wm(Z*lb{hrX740D9*w0t?;F( zqBe((N!-%KQpW$bE4L>ZV98>=fUB+Ey7jnB3N)e2_ad;Ez`F>?IMG$o$L<+Wc3@Ze z*=VVzA`T!3!Gs{OZ{OaZ^|eg z13kds?ND(n<4BI`KIFLJe885LvDcY&?Y;HM&~$w36;{vPnF&P|Wt76PF&tCY5jOYm zsu}mOma#(Nxo5=G?Pi6i8j&PDJ0f2sSQB!D$~3Q3^;*@@CyR<(Zp&^{+<|@hN>GQo z+PIoV$fb!jBb^JB7~qnrQ-}eG2*RARkq4aIp-<$Wj%i$XN>b`s7pPh(7gbJ+(_Z>t zaxcPVfzT$ekyXYAB;YsU?}9+1%#Tf$_j<7yFiYB!=Wf_I%Oc54*VVtJmM{*{$nJ3M z-62{Fa}+$a;LS6%AK;4t#!g0j$DdZ)a(S)nnq;Zn0x?LfT_aAQdH0jM0*3Z+Ibf>L z>^L)owsrNfNa?m|b+oa4CrcK5^*E)rotg`mtHv=nh3u@s2arL198L`R81$!0F{+#2 z^TJ&=;Mmj7aQl@{z_zvrpCS8;&D?~l2o*d0F=nNeqQoJ!0_3Sp|Hy5rs<2vA1Nh6I z%u9S?PW~hhHiSZ#PwcWJz8_OW?kt4?a186e>1H&!5&oK@u8>;rfL!IP`gD*IH1 z+7+2{X#VyyNJ^_Mj@z*3OgTFj3q9qW(N$z^(VR_V^8+NFT2^GnGq-qPntH{(mio|6 zWg^^|!bHoSazJ1qHY)X<^m=at27@2@F5ITs9idJ91|v)zgLgTw(H@Xvr5rVBLVMXV zMFKvE8I2rf%fyNne6o-%fCn&mia*OiZf(-*iI`_O0rJzzJjUI!xt`4^z?416gKd6g z?dpmE+YN&o0MCHlrLTzIw59M!)nWhoDZ8Wc-xRi*Ct}V!-pS#;%^hDH8BWGB9xr1s zq(Qp4%`W-VzBuCzEb2Z_C3c4dFRf<`0pz6FA%sly1{#ip3Xl=_LcIef#^xrp=6f1M zrIi<25`sG*o7+<3C}Y)w0ut@6Ff#ZV1>(IKL{Al57{ujzO->-`y$GPLc>n$t@nEGP_s3Y?&(`pIiuG9?Ch52b-v`y{WXXqw??i z!G}(g1lH3aF&F=uajY4L=??iT?0o~bWYk4%heHys7(lNW##v%h=l8xg&=Vqs)1)dC z;H2VqJt@spXDTX}lfcj1 zw_S?gDB}aAw>43FKEOeQVZ0|$#w9aLT*UMh=h4=ZJuosJ?-EzGV6p7Lo3{k&mlN>s z{#DagvM_{|mI}f$sBW$-OiUvvqG6$g)@GnX24{s9oL6nbyuPgyCNE{)Z7`)!n+DVQ zixx@1tfO;=(pQiwL>ve{Y)xFSgLfhwfLMcpVYi37c?Z{ujZ)}aWF$+FuCIAg)e$jw z;=|4yvB|kTGQXL`U9r0i`enQID%|UF2Ta*q8qEiAK^4n*QZEJHt~GxNhFRF-{dVw( zYS#x^&W@5C&bV1li4l8*n7zPM^D>?HD;jT$YK*i?eJTEaby>CXu$ZS)0*#C{y3B09 zJUvm_J6KxWE|AY({nNpMiJPI3W;{+eBpSzl?M1PQd5ICrJ zfz+w6+8)0!nL@e~sfYwmb$ z$-G#8@1Oqxd$X)aM^{4ahujExbN;xW(<*Tn-UAUygey63x zTK?}ES~*9*LSJA0e!XSg6|G=tz$oaeo#!BuBS`NMA{oPgEQ;7v!;4V_BHwiMt5LbSpahaGu8W3az+)bDKj^~JN47?#LS)!h^;1M)lf-?PoZFL z8EBw@U>WI#mag8bTvYNvZbosd#!`lU%*4t_`l;et&+C>WJLYr%yQ za{v0{4y^@MH6K+eSJi(^UgiEx^Um+*(wxjnY^MwiVxi3~tL3;pS2__{6P$t?0hfzgBQi#^O_!4T*kJQt{Cel!I7>&MaQ4bQ=s#4s?5%nM0QjLE&K5M&_M@x zcF<07v|2CW#dp-u$D%h~C0~Zn2v81)P}3N^tfmj-pEH*nL8LD*TH{o5JZLWINpUdz z=_R14jvZwLvhk1J0^h2BS`!OnoPq8tsxZqRqyb;suwosnkk*ob2FrZ{xX6FO(z%VM zYLF+gJ+n_E&dx3q+DGd%5l{3^l8wL?q&bs*Y1+eo9fcBgsV*2|^|NVX*vV#p9+{oErBE$((}drsHWh zf)LVVnss5K-7h{4?=dyH@JH`v3jRHzl5czo4!96LnrJ$CyPSu#6Vu-i5y-OQ)9K7ab|u_FCvw(0QGbqdwMk z;gBZW(=cEzQcCz4qaqT2THWZM`>g6On-x1OH z!0EUHa7N{vFC0G{5T?!WxP&xU@h@zjxH;5~iA!^I`@i@^^+^pq=+T8+{xJ0$gMWnTwW;X9~FrK&)(?iUNhH8NnValV>qhyvih;BJCH=Y1}ToC6kL z{h750#rJs;eC?t6!c3*QeI*H>C)2s~po~VW`mzG}n##?hzgUSlt;I3Ub`02Y-Vk2M z3b`rkZ6NR_Hkjh^WetOONtQ&7iOx_*y3+5hDKvJ)gV!wzMbLU^DC8*Ah!T-{9T|)Q znQJ#8j=5yv@EYMixYCX<(VsFi-{q$JTIZL#e(!Mcu$|e0|E$9m2Sjeb&WE{{qG9L* zeny~dZsT7&z_-7+aM>ZOG*l>k>pd}V5T`=e64%N@=?$IvOxewdM0fx4tOMK&py@6u z)I{?AM!`81L9c(5+UE2Pia?uIh2o~{-I)bLqVOziX75QlAT}WQYOdJ=Ik5Va6#k zf@%S8m7X1q7@sfN4DaOL9kPg@DZa!beL9U?WaCUJnIsI=gDUHHyUEU5pa5PXjsu{$ z%5tih73o{n89f*;O!)XbVoru!DFAgpIzJk{o(08f{cE~d6soV15CyYfI}ow~+tbxx z$jpUD99V)H%Oa+JhE1PU70ZA$Dt}Ux{3lf9o*Sxf$gEDl9AiGK*-wkIzc_Ml&c3M< zeSQYlHkfYc8!#w=IPF3VP>ls_Axety)Aq9%BkyRucb^k-W}}0Zk3;B!8rD6fHF`w()zctRbJX2sK#tbp{C<%L&`&q5vGGxz|+J zN_V2=VGb{F^R})rOxawUj!((C43gn8><~}i5!Nuc0tFEPmzG?=q#^nGsSh|s6b)zv z{-5Bv67U_2oJ9_$Z4Ja4T&M#@ilCP?3lPXr$_0`$^rDjs9~%c>ez=Ths&BG@$Pj59 z!rNK!S`F!ln@sap)iFCdQR(VDZd5XOs``J!OC6sXt_3aM58rA{H8+6|vy7uK=Z$xjUH#+W|h`rNkOdYYO9O*e5mV`@ijdz2S2uUeZ*%#ij3y*M`u6 zWDzlvHVNV`hM4wsvcRAMb2q#5?~kv-e=Cz?01&5R8ggZMJ$bi`R_2FnbsL^xxuyPt z?#+;O99@R7vC9QD^b?nufW4@zOY3v+OzYG<9Z0QDw$yTICAIPC#C8XItnbc5?xb&I z%%;mklF*x=)usFQs`{BOEYK=3H>m1!8jWDhRZWwutCaqvN_4zp#!%#uqli;?bQi4H z#lxd-olvLh(LJNO1u0f*x_9Mka{GWyI^*uRVqYyIu< z;NC6I4O|v0`xc%|sfeKqMK*_=YFudE2#|Bhp@UkW z$(c!ca4}5A3y!3^hx_qT8F++EtDz|ySCMK45{6!|s!Rih1mN$_9%%Bavo*VDv(orf zMrT!daZ}ZCwJoF%?AJNvF%65&Tvx1RE ziS6GEWlES*PbvuI{P-}6(EQ8>eTHI=tt{e$PK8~IyveDmgGb{ZBX==J_f+GXo8kfv z>2L9(&CBxr^T~)rdK>cHF&K%5ji+2-uu)DO_AsAJI!M@`!9Gmj{a}D8?3ADG>yzd! zIJeDj075_WkhGgz@5s0{VGB^;oLySp{@R3K{4pkLH?mO=7So~2(uj(v)UXx5zpU%S z9fgq$U`p@ae}c#cLtk%4cyonW64i;{P}ffj%l0sTx=3U5r3nL#fg%ln9X#9bxUcSA zwA6udLgv~HRQu6EUo9yj1uTRrJ-TF92%_U@6+gW^Tj<{Y+w~wvxUEN3?gs0nnvL8H ziY;07nM52uL<6SgUmeyryDs|j&F0#tf*t4{L0#8y+92CaWYwUGNfSfXA{O0wyELal3CSDX{3*Wp5E*uBv!`iJLx z6kpl{wI-(<8iYCLZw#o0HlZ54?aCcnuTj6}Y~ExKlS7#V2G!v|YETR(-zQU^)8kI> zvqt+gTsTevwfb5?jYcU5^Nzy`kk7mGDOE%_9tqfqxiz0(KuYtzi1K!RF!eEII4GmZ zM3Hxd_jrd|Fg`ScQ!#{RGoZUl9^3X={K|@!vC%*p&`BGiu-X3emgPx1NKu82lIILz;X`0x$`PY~Oi?JsV zo8<$`FT*6NjXq|Gq!mBT0ZmK`YrYp%%inPu%htYZ|7Q80c(0GH-UjOLvSF%9b*$f{ zJ;3AlaBt)a>k(NhShx)=5IbgVKYkcl3tl;6gx$NUU`#-^FKW2{dxDfViUvG9pfGIH z>l&l_h*NJ=1EOC<6&2RL_B}d*Qi+>iw|&J!oIu2P*2?aXH2?`j89?J}DqxXodkZH6 zYyU2S`PzOfSr0zUI1kBfCC9Dsja)zyXd)}`cCxWaprIE zX%q($Mt*|N)t9!dxySg)aaugp>&N1AoK8RS)}l5nNDX6_i5`L?OUi}v_>|~MyWohH zgs4PSSqQ2c4|ez~4fhCXSAHLTh{k-a2|Net)ita?qdrqA)V}H1O*ffcCmr;&q==kR zWC5Pna^J~TD1WC?yWc3tmd^yN&PfJ$|whI~~meWoCum?h6<nP zLsgQjkG?GC27A5+$Me^ozOURglN7la0gk;VnaKi!NLJaHs?}HrA_5zO{w(?W`I1TM zKD+x#7us+KeC{qp%T$()P;^Ov4h}R6DJ`qio*!Fsr|5dYCA!@qFW|8t?5N2$6JK%Q zapX!7f@f9({(7xM_^!&E8i3CKvoE-3nRUP5wpu+A9HRKmXWkb$9v_w+;DeQ#oD-)2d)osSB*uhAD@Y`JOdFHh3A3(Ms zKhvoi`h&+M*D+4VkB8eGDFA+>5(3>MV(fo52cxAi0|rij$=HFnyqgOIV;Sw&mGp

KS^Nb%oMS zq}7&emeXVN2h`{4MzbO;!%(tEepmk`ErI(H+6T9Tvo~JQ`9#b^#mEIM1}EH%MWYZL z`4@t!jJP}S;HL|%0xjf?1J@K?xL>v~o}YP|us92Y#2AKeJY*%Z6uO%h7AHNzIZ3y+ zSY42v@4hcLb_!}wMcn;#%TJ`XSS_z*6^8^jJU0KkE1}RQU>{&w9QQ5rzg1kIm*#UL zVFs^q7O6$G*37xtcIu~zc0as~sNk-ASL!vi_T+fLx0++L;*u33aWU}#J@wM)bhq-z zLQH>k#aRFztj^YcZ-V!B0(+@3yv6=BVpfBzapsU)A{oq!NMc^%uhiyzp zhR5XXTt8)&eJmw^7k?un|JY2n}YW4?^{-LWU{N zE)T7Ju4ek(AB8$9>{4ovzf70$m&D*eXmAY4Ng4>Br#!cH#B7Hiv-A?>D6`RXWPSai zJ@!ZYkm8ODkMQSWnNF_1(W}?uZz1*u96|CT__P>R611XqbU3JIK&i%lY)I~-On4td z1c{~Q-<1YpXZa*pHNiB|Tc!fK(I9!-Gn~wXQMaDQ1IZ-x0%{hWy)Rxa(6t19>`H4@T2oEtV2aKAK3)QmE~Yf6w1h1Ii# z4K1fvE{i>Yh<#LX6mF+j*LXD?SYM^{pa~uchx*AdITXRFGkwaJR1ez6u{yKMz#of- zN#pq4W^Pi1c|agrwW+K{jE3@2itL-2bvBt3%do{N327aEDJOh>j)`>1bkb`~6WbPO ztVEMGr4A3F#t+U8tgr zq4Lqrsdv}Uqj5LaOr~Onf+VzzhN0A?1>1%JOKYjYIkYV{o+6#FzCzyHN>@XW;M3|t zOjaWZ?bb#^bV_xG2gFK2SUP~Oe^rJ6179!V7z-?O{Ly~tj#PcwG1%J|!#9Y2x?@XE zDPIch3fNVaub52ijT4&Om!_E6cBI<#pw)UU`KY=05@q5J6gw`2*(0LER9T>PUpg9sEZUbiEn{++2*#k}~j3WU7>tcmyKnJa!@ z#)-!!`WE!LiX-)jN{&fsTDKzQ`P_VbAo>c7^?f$J%juGskOwLZ-7L`e6TKt0IOXwL2M}Rv+gUb{oTf08@+an#VS-RL^{D}toVA;(-BMa zZ_~k+mX_FT_0It-KXbNr(80YM(|^Y-4ZTD3UbN*Hgf%R-?4b3qTC|GR?x z166Nz6VfvwaZDbgk#N<)bN-@!$3eil6b!#;+KB2%hMc*A?c3=1v_mV0(ClTDy?swg zk0$WyPeQtnD7D|xzXZtXu^h48VYcQ|nmMGD+_lu&6t+>queg0MQ0Q^U`4S4VhLC7t z1Au(^gZfd+hbFY5GpYEe`D=>x)41YMrNL7(5tYD#_Lu zJP@!Fydg~wku*eDaQ4{13crw7*!9qG&OEHt%%}2lq`(ZYgi}H*dK;%WQD^x~Mt1Br zD2z{3f)*4UypVJR+g5v`DN6A;-HO6^@X94{pDYig5~16g%qFYY>?xP`GXfPIdp_DW z5T%wRvjl@5HaCfERNr5-aS)>^U0|XCF@Ao`RSDJq(`hBA+%1DmT#r(B2aQ;)qgc%% zfsV6Z*0uKi>sK|(wu>NS{W#k#7pXMVn!ZIIMR|N`jqY2Vw;4*?u?Nr3g9emv^&e@l zCS+Ac`I@>^1cz446jkOSf%QABP{FXTp*2}aua^vZ726tHd=Ul!Z*Cgi_|EjTo76=NBDbxsWwpzfYTK+!HWK~9oOL$~ zjCd1orr#~q_1W|@VZ)rbO&xB}$HLO-NsfI5aGbeR z@!{}a|F6LhCw1qKnuvSqi8mkk;p{Si+*VcbMoUtt9C?hgS!zOvRb{aB&0NpA?)kQKO1aqkQK>qlkO| z&DY`<(5t&xZA%4sfia3L<%yyCJi0R-{*!~Ny_U_bbEAvTf^N7t-P}Y{${Skr2}b$r zT5w>?47Qj8%a@C5XhUvHR&3cK6!aZ%{g2HV=xX1mT|;zBx^*vLlp6;_6{`B&rD!)W z(T}x$0W0S?`Kh2;8yWe1z&TFM`>S{?*swLeoieod<1`Fe@6}yOFq$dERL{f_&yD%i9|D$~1EQtoViDcE~f2rpXbWl>X zEn-=|ztMMB4ys$3m^Y-F)=JrPeJ%BvO*tGt6Do>pfV6vR|25s6uLEDg_8b~?8<999 zNZH`_YN>v-H*@|*Xmu=v9u92LEi&n}nMlT}f3UuSJob5_1>Js*IVsOz@`g^DJiKGB*b%9}Wm9aSaN zr#kj=Uf^ILxcmFr%`}^});-fKOiORySQFZ{Y+p3NBKN!saN~Sb zW1;+$k5mtK_|h2A+UaCfPZNxqkFZ~3xa!d#o45=Sg!m3b*x%>n&c(rt& zBL^xBeRm`KPmp3+Xo#*a8JVk^*@hS1-Vb-+RB-sigYjtVoEZ%k7y3QtI&lyd!ZQ(& z8#;lwv^wy)t$35k^RsN|vFf|fma5xvWuJ&W;k1?#Vgc0}Z>PGzh4@#_NBLV?{Q+Mv z*6ms3r&6!`VU2lX$qS;85XgDqXJ%3!j7A+~tuFSSG!Io~cG&_Bh1qHC#?tt1Oa&Uu zjWN^J`@r+W28ox)gUW}BKFUE?Qp0udv{qxAe$l*V0lqu@YB_fG24OzIWz)3P!j3?VoflTr zv1EEZZ1hkl-~wA6~dGJqmBYGMwF6rnWQwK%@QnoK2hN~<1i#MK(g9U2z; zOjS60KE*F5@wdE0702Io0g*S##8F=ND&%ap#0Tc8plx|LeI@czLwqlhhY)J!Ir(r9 zhRpvUhW(R94~K37Yy-)$<7^Q9NH%BmuQl}EfgH+=5-yef75aaaI`d+>Ll8e=3`in; z>wiO8OPEuHCU=cpUpg3{@F}4h^HSROMjGE)iUS>CY1M)!tO3(UP(<5{hu5sgr+@1V zD&b<0**F;FvDCrDhk3ifUQJ^0N^iZS_!NoZ(vgTsoE)%9tWXp`U6wSn#48!WP}Wyf z61Wn%uX2oaP))FA2`xcUW*R>t(p}|CJ0!*DB}{oVpj-ey0C$Y{aQ_EW29o3`i!R8M zSeK;M^#uC(TUi!(u{4$NJT%oYH-s6D$dsPNXaO=r_`vo}^H+w+y0WfXFVLnPh-_JH zf(b$(S(hQk9%#aT@cr?*PYyg48_x%6y=kuM(29vlW;6v`Xqq5u#y(D{(P~ICw%T|c z4p#NXVH$-TbnG#uHO>}PO*5%8RwT~&QfXlOjr>lHZk(Bo;J9hj-~c%bf7s>hEwS>_ zm=`=JmLCM3dij+s>jhHQ$>-STcp(Ky+rH976O!Pe76=m7I8hYY4Y_u4mlVqT+GmHn z3fDnarVn5LZy~K-7vvXMEUDAO(`vU+mYaoqrgkG%B^9vpa>NbpxJsp7+q4YETN>$k zc{VBr;f3SDRO|e>x!?~=UV`gO^z$v!Yj0mksI1TPd~j0YLXGOx7>xtihZLk zh)7tXa7FPBCJs4lk|r>Y?Qkc9E-KdKxI10S1clA2W^sbSfn<}_RE#E09Jx|YNvdpABqFE z5BrVbUCPI&A4Wy3Z+O+^KV1H+EF80`Ca-1C6Z3snF;i_<&~k;Z*`wG+_yFUKA*Nhe z-n(Wb&I-Y`7t&$cOa{A}h)Rs12_pkg6~3bG<|U4;@8k;rQMLU!d<$mBu{&d;uXIq> zFN65}{YmUH*VB2epFdtav9i0L1pf3JyFvrDWG0(KcFmx02Hz4@EQFq+ z_9QoLZ9@u0R0cnUQ+$~{6oJ^Wd22aoa?y)ZZ@0|yS2y&24-4FJDw935{$!wE;|3m z1Mx@rQz>p-2ju{U1N{3qk|D&9e2IBt9y{U?8=-9=PVNoBSMToD)=z)5yTrm4qfh-i zr!*&<>}FOsbpUHaIUy>8xGWK>Qv67x;0v!HR4_ka4K`x$Y`P zDa%D45U)p~6tIH+NvmsR*TBlfpGb2F{2B}g6B&zIl!M^0e#wR-1P`ZM@kwrm#u9a- zpu2%k`#W=jg8ACuf(y5g3JR6g6tD_Po~WH~Npi)dY`Yld)NHo7=%5q+y!JJdW>>Jh zO|xi-2h>&^MkV=3za7|0hgAk~RY3aBSDp zC>>a7OxIfQ;uruav#j_w`_l7~8hl||f6TiB@b#jyM?*@nTDK^25PeFk-Qh6A^y;Cd zK&+P%t{BQw>_Z6m2TgbIRl)Mxt@msyAjYN((nkp`(9@VH3uSEkz93P8$EWU$n2Sp7 z1Yr}&CNi}kJ$7j_tQ8C@a2nvREB7!)$w<^UOgW7j8Ogdr#fy*p$F4z%rr)DkQInwp z)K(F9MvBh0u#9fE7H#qBl`BVsMH?pA8^Fk zRfG&5>a8qtS&h~6kfUaFFBFL?#~D^S-m}SMv#!V8ck@1L7OC*T&L3a$cvJqtft;8gBVb{2z<(iLC`8E=tj#mB4m>qbCF| zy(`UP=Hh7?dDhje)B4;H@@uF&+A{LpS?oKqD=M=%x?Bo;B-Ai`Cv$1PDm^ffTJ%g# zxbrQX`sMK-Z8Tn4SI?~?r}1&da~cwyA7O^28DL@u4$0>ki+ z<9EgP5(z&pytI}xx|>oryuB$wI?!v9`o`Vig=fdkG_4?iP+$Cdrde8drg)sT$gE|$ z+1Moiqlrn(07`*`&PxyDI0a;7^VE82twOlSia-u2;$~xbgDx#A>AV3f2-=|A*{jI6 zi?)^C52uAzWVJlI=4&P#1!$X;He~CKU-zn>_8_nj`-iD8a85ei``!&b#l#tT+Qz}? zdOa@tJA71$)^g~ouOp(t%I&{|-f9^znH&}bFu&I=Efr3vun(7v!L4^P z-_eheXvIPunpDDRo-Ec`8c7dy`=6I`nrzhUOK;b0(NG?fV`QW(wx)fFIewu*(r!wO zB~zGSC|}4@bb_FMA!DDC+@ikf&?L1<=J)_KV4z@mCT9GNfluVbT#VP3_qe)w1Isn# zs-dL)32``JO-c9HJ73ms=F&~u_~80sjq4?3kBH0yCR|w01CG>#{>x?BnD3cbcdNlyf3!>6ld`T^E*Ii|y?l7JArW>nLyEYbp1x{#JL+*Cm=9pwTWMiWgF{|#g4jkIcRi9i(}{kPv#P#lZwbp#W=7V80@wFtpc_FkeSGxCy2zx#ScGEjjyR1Nc<>_< z{TAr((8U?ED#!*w z+`CZX;oNJMPJu&JB`!*^;~SUJMMwgaMKIRCs!JZig33LE(x=Gd1`UFr8y)-R6#I&1bjh+jEt{kj zT9)Y85!9s|le;w~5c3?r5yraPV7c2g9DRo}Tbk?W;!fCdnEH1wTtyTEn{lsZ6OipJ zWgFz+w$HlVdEYq@+6y#xpGs`IR}FbTmX;|~31kA(AtR`{`F{VW1GFHxZzOXG7tkRZ z8HZO^kH=rpLaONu@UP}#tBz0Go-QMVupJX_RvN%739Maxw#2*hx&Tb< zg@Wha?|}FU@V^sNGkxL@zuYM;yz->BGpbb^aNE)pRYbF(A>?by!7$Yx?LXx~dK{hO zI(sQoB{37i;1@+1&0QP?oJp*A6;_j5nZBX&L+ngP!P4N)ZvG9(#+mUUcHiKZWSqJ+ zp1bhlWfhQAe;!=Bcag=y{^p|WCo;Ox4$O68HX=|EU%p%@cO3%|P{mM!N=!vKZ1P8Z z`PiCmu8lM={D2mHDz-XqS<79Uh+O4_tjf; zUj7RsSq2Y7jYdrj1e@1Hj|z*Gkmh?g_S~@-j7+M2U@NERN$MJmAM3=p%OhnkIoIoE z7eyFJi%6JnusW4fCUim}%;~0+IU_)nkr(V_w4ovTkUJ^?hi}t?8R>zWyn|u!suOVm#6kxD{+M$JiitIJ~N!?&3v&iSO^S%Qsx!-32YXPKoI z#XaHUjx>tTkOD~NWBG1G@n`;A;~;qDfi;Z=Qyv;Xyw1Xa!X9SJ)T6(4=vuF4Ud4-{ zvqk;QdQhojI3^w$`5pNA3HeQ0xq8t4A$chMIp3cXDGcSfYvEGGf*3)OSRo-s;pEq0X8Ll@aI(;;yHI9dxO^s2SkOp*s*shBJQC!=$b$ zP%2!_U8K;C85k`YQ=*Ht#KG7fM0fUqAEgZU*N{1&7QosFDCI?Og}NQPNIDk zW%Db#Qyb6H5E4IoO!|Q(l`ZOSBLFskep^)I;QHY7Y6boZ;30r$7}5}Q97KLpU73B5 ztez<04=`;u^8gT9?KO4gC2%Pg7l)@=LFCV72Nj{D6lArN|4gp? ze6Z7PBx$Xvb2w63c&+kEB@3H@o*%gXcR8vI9^Ps#>CZOW_h|osEAtpKMtzN zovll*5RYbJv))&iy4dG^I!(Fu$Ud2YpCgS6UEFTp`Ce-&#Za)cBOw#&44GBbX9~6V zl);mJ%D*uyh0wfjcZpI2ND?oy;kP=tKBJ-IA4Q8cZpF39{4T{#efSx_BD6cPdEc~> zK2~ztvJVTx(OohH=zLoFrWwnj=&AUxJSQJcDOeQ+(|%uf-~k%qAevlY_ilgcND^lE zrT7^|vZLk=(88^4%RGCDK)J3DQznd*-^Oy>+1=~L)oCyBF)llchR3*KA&2<~Zt&I? z+&G8-ktA;M7F8L_6)WUzIL%?7S^e8Q1kQXgV;6^yJ14n7GZYyhEjjM0z&jsx;vVUX zj38uK4KKEF$({vE$BfxO&S5SS#37~RUtWHcXzgH65)A9m=H^$sIUxoM`lMPwMW_=y|qI8n4` zG*&@zZ!d}QOF%X1^q^n%@dwp{apAU_-J(B-;+d`xw8iXJcvz<&e1M64 z=IKo2Lk&}8rTdXwPXzp1*gVSd$#=e3n(=bEdO2AXPAo`w`kpV_)C8ouC77dW+cH%Z zN+)x3Gkr2J5orsRttQ5&{)pxq5CPVY&?0w(rXh2%3yk^A>qFhfag}^%A)KBQXach! zpoFx9=K_EP^kx}}sF7n!ZrIo5RN8wM@1{!c;nF^_4@8--6CCC4Gs{R|8ABl9ccv~_ zZzL_9Vk5I};!>9SaOvNuZqqUrbbBm+{znbaTHbrXKcmaLk2`l8#Z`C-&%<4Ov_^tb zgZnTusW+MZeKcl7tY8^XBr>O{D*1fuW?TP-2EqX)XjB7ZFs z@bKN|e%2^vEVh=OrZ+2Rdii@&ll&S<`4oeg#bMU2XGBUXI5rvfNBv7&O&p=gfF|iI zC;1i9wgwK=nva;k4wu{bi>;rOQuSVxY?OQFOMFnWoBS5e8Kk7aQbYuxkRU-yM8YCC ziP4h+C1di-SNr26dPOSZgsr{7eGO2gXXBlnvW*7_V&{I8E=z1feRZbm>ItIxm zME17aNL+DApQ4TA{3v`Mh6D&qB73K(+0A|oEf@}?T`+0?ItD|W(VPZSy&T1p#Kt1c z%vmq~CPySI+4VO8=s-e)4(u5d|fr3W6%TB(_Bp^Pyp z@&@&+lL%Y^QX{f)mLi8*J&d817VSixS0Zl@*%+?ycjbQXw^zU_3de2GF{R_-t7tgC zpdTY8G+%!UonGC^#+5KJ)$l{B1O+7~$9=TZ%m2z?iPhfG?ODOzswS06&<3YP#_@nJ zOP0i{t~zi_JGgc6)NY@gDKskH{gkoSoomxunSuOjy@%3v# zt;S)il3^8%)$t*Bb{CkJ$YaU*XIOQ@Wr@hu?z!I&K4!@+oZb4q^vwOc*^;4!t`0|*!g42s1#0A%T;z9XhyaoeUIQRxV(QA^7E&~Y5# z^YEnrnNE81-CTF{h3CxTSSRXll4R>#-QJh|DMzE*42Fr$!AH22#_M>W7cw#<*Wt!& zdj7XIhk#J0l#6jM`w|4z!tZPwlYRd#_$`ulBfV_&Rk^<`S|wS6*)R_<{(QWaz~>gn zE`MKjfiM))p6GH_A@z4@@-r0k6nD_erSY@TWQ6}^p^Q32angDMA=y&VFh>-&E2sLs z1yVaz{}c)cfJV{S)htC{JD;^%5!LY`U_{bMrIc>MRyKB-pMt0s>zbM0^BSR;-zDpJ z-h95NYuuj7%!fuSbJZ5+*wv(erj@rpirt@k2D}M{#H2Nj zUJf!)c@ob@F?leTe4%XV9?JG&h1f$^@W-Y=%8W^&rNjp~KE9{70x<1*b8z;M1Wpk48H%-~6Lcnf{#s(n_^??W%rlF!?H0?xy)bLO*= zcX;NF2IQc%cJGtbI^Vf2Rjn8Y!nrycImKbNhWu8P=TNCAihD$?eIIY{vI)nyOD&xA zB6`ar&!D05?Ma|ek606cPuW7%=tBo3cp_ESB3w>RtAXcJV}7B?$rpe5Pf4E2)KalP z*ovj$tcClYraI*0bzDsYzrUL~C#gdKviXKYoBNDJC+(~#!4A2P&Ie}kw|6TMvMXJk zQJ_{WGke(C!*00>INyRNJD0}5DPzQ?jp`NG#q?t;ke_d;FCjD+rrDv>%IM+_+R+Gg z(rP}_0AdK=0o4cpP$$&)Hd*B;@@b*4!yv!JaZ(U# z?{>sAIbR}1^Nkv|$&(sp{XcI;g*%rwiFB(8rw6FJHHrqv3lr@9ju)lO1hC5|h%qF9 z5Tj$Hk+fhvyuF^z!AWla=G!b*>u`h)RyRX)WZ^w24@m|k4%bj2{PwL@2YPOahB>m| zp)%n}?FCN-pc@QzwHHBuK^ugKBkAXjn2ShXDVz}Lc{RLskI-{lUQsrcKc+Y>hGtF6 z@41dM6IOO*W|fbyM%eBmRGGEQ^c4^BIn<6vT-+Q|M8jnP2++VzEia}zMWsMF)6}}* zyQEp!~M{2P#n?q#X5Z^+#Ds-eCy3=jfP6NlT7iGPg?{DQ2?}}tuc0v z#4?pSSTRW%(b_l3B~cn1IycDQg#V1o42a%#?SI?=Z_!h>H#FvW3(u|N^gm8(0P*%T zerF=)-#x-jQhrCfWHE{B?RS2|E?Zkb)5}{=*obI2Yaz^5X0Q4(Gkio?UR(ddXlA{k z?baLi)t5t3Z43yvRzE)yd1!C*{1UwzkiRp>6Jfx{-zqD%vGYLV%qtVnbm;KjA1m)) zn2shGaaS9kvr@9ni9V4gTjP4UQzv2HLy?rmn&EjEMa}pvgD`U1sEA)Jz>TOA2}*kA z--Mf{cz+U7lBGXNzYZ8cHXt1!6FjdmjVZC!2&yt;kNnR5lJ}t%tU?wZ$QnDF%1+c@ z`$M_pT#yYptIaCwWhO-O-5q%K$iIA>HWx%xl_-}Q2R@vyLodWI*T9ez3aarTMJ;!l z5Knd$`<@wk`)jG!%jQZ<6mzWLe8~G5qI$R1d#vZX!nhOhlMrIx{8@ zn>Ro=qSrtrmkalP2~7bAKmjqTEM=OWDQ@8=VEMVJ-X?a-{TR!lgAMiTVc z|3PfJ@Aw01L+G8^eI`v0DEG}XNP*Itd@+}ds!YA%UBEJ<&P-#r@X4ImI*{Mc#)+T@ zJ~1GW$8Pfz;s)5+*=$g7s_AEeiCM24GVplu8>LDKsYzjYKzBmm$JCKA+nz^9&Nm79 zQGyrY2tq^|p?ddWyzAH?Ju#6V_cAzV&<>f%4;iz>k$%jHk?C0~OO8kz0`eq&!vtOT zcuoTNCypaG{ex}l!M?U1?O2oJisw8u^p?_tvk z(H`#r%gF1JthApK!0q%{{w?x0Yv3li#K5{wfD?OHLtQOROd1+EO~|Noe6i(C)PU7+TG4_Qknf%yk1g|??k5&&C9Dg}d_7Ng;i{LT8qf4`lp?IL@&Lvh}bO{$t z&AO`nXv0eyF8%S%|A(+YfQtJfz4c0g{~cK1-uS*@^xDsZ(buDuF(5+9sZRJQ*J&l( zv}+{O(#!#>zbGnQ12n*~V4dSnYOc%cR} zFGCx(Q?ttdCJt_7X#E4(=VUEkSl$cIK9YC_oIri?hZ_AI596Qsi<+c1>L_^oEzt$5XG(Y85ytUx3Nsfir z6EqhgF34vhrDp#dkWIf14TF=Q zAWDoqHao#3saD9k%Iyh3g==77v>E0v)MUvsUkX#gQg8y|3$7G}5ikgt+E%DzzqFO7o&>nFjCl)fjROK71=J^M=B{+%UhzAk5Q&lc^ygb)@B;+ULC#0UI!hMW{WWloa%5n);(h2?*k65x|@*YHtU06LVY=q33PFo)~+{*md z2JN+(L8s}w2@5_GZC`|rc+#A~J#_lkI_Fq^Qo!hlbjQ>bjdLpEQ*r}w@BXBqtE{75 z=~$izgd9!oC}6pnB@b_d$Z`ni-ttUIy&VG|e2YfvU} zn$CU~bh=m55S1Z;M8W@4@@lFqcH--p#ph2|1apux4iI(cJhq&{1zT&luGc)YmL%zl z^@d%LW4iY+J~^hT>|gQV6iKKo!;ybd0xg#CVvxF(j?uOAUoGHd1wSfRZIMYl&uAf# za^sxCJ$ogKo4~R=CY5$j`mKw1#Y5zV8yM~tv{C%=8t~O(ibG$88Is2r0*Su63VHvd& z3Z==vn_UBY_}+N zfqk2~l$h^K;jX1aARf_V@AFy(+X4d0n;1ByMoNtAq5DTM`rT~nW{nWbha?hkt}C$r1I#0B_OpUm6OSG3K->yug z)KVRqPmjR$r4pc0r`QcNFgq=}P|r3$hRyZ+C>0l0I0-5ZJnlzjk4 z^VUGJ)EewEWdW={z{4&0j5o<~9Zi6v(7tz|b@~Lh;+U*xaRfBcO*Rk{$F@NHLdJ|q z*ou~~#uDqN{|Ht-6@B@4mSWs>qJu^}zTrBpfEJ3W38*VfPd1{^GE}0aL52?5oVH)M zjhZ3kbI2)!ox6(YU44`t^TQ)jsCW=z%HeW*mp{!6blCTFH=N~lW%#0${MZKK*HKol zg{NVWSS?TKHcf`}Nd|up_8q9-eaY)|%_CyD>W`JxFFf0C55+3wjEz=VDS0YBTv_FR z7%;AQ{jh1bH*0x7F-M^azF}u^((Uazvzw6Jp77rwFZs!MjJc7pQ zY8Nc@{=@W$I4FkX#xMhta0EX;4JAFGX#ks3*N(vYFnS8o!Wkucg%T*^M%3Q-D6W37 zTxw&>+?c#CPM0$-qTG53N>%_3sH_*jy6}rg*fPgv5n!6m`8tqHJIi8xMAHtPIFTqODN=*$!ET8b}#3~vxHJHKY&d4aJy{kuC=6t4;O{R0AjemgJEFpB7*u} z{66v7{;NzQj7i^CU?>r3Qiw}0QokMVoQq&TvMF*#sj8n!w1VeyL{o=)j#{V?ey5TF zh7|?9-6Kw2Rl#%JWft&FSh3O#=TJ)F)R7y#EOZTUe&;PStoR|=2wx6G8mQ6ntni^! zzIHqFN8Y!lD7&NCe1pl%@wDk5XzcEroDL?Uac8ZxqCA3W1+0C7>3USW<$G8^oERgM z$deRwk~Kl`pb$9`nsX&?=|7_ckd~F;0pwsPL3@UG{R1fO@-?^7Y&c!Yy5`IFauq0k z1lSF%ZTnyOoFDg%(-2Dec~_=P8-_24P$!Qh1hh05?R#MGPu{s$Jx+}eG4lchK(=Ew z-2%)qM{evN`JMrDDb6eO{?~EJ0JegKonKy(uFeF84hsEyYW&Nkj1~xte z|2Dh%Q3X7c7P?Gu?n7(LQWVNQToulAIi;#V#c4t9Vu| z;xfGK%U=zXz2b&7fo?3XlK|LKO)ruJZ`zh`P1am_#0+5=Hx40{x`VV6;-Zt1G;6 zZolJ{C}jJ9$4o16*P~E^@>m+4K?2srdW)_c*4>ska_TW_(2yR76u5_(CDrUymo7Ny zA5U1a6;)6k74kN23Vj(+&skM&5Zu_dbR6;_&O$H6#h8ot>_H`8bFKclZC!-uGS0Ol ze9p_IF%I0zS#Fv=4~R}T(HS<^wr!#M`%^Kp=7p>+?f}}n8V&6N zN1Q~0(%gEsS1nP6IczRmnm;+VA0-(*_}Y%5nI+o-$Y|V+0p3Cb2(M%yuh@)*NQLDW ze@d&iuaS6j^yU$ebgkZ?XDEs(FJD4-9lMiu8v+n;sMAbAO2--Pj6sBgc)YsBrK4{D zdL{JhIm`uP*bpA(Mv5PI04bB)T;rfXPP_ZRrE8R$iCh$BX(W3u^71YtA)kCIWRM8^}&< zbmd`dKDp<1CMRc*s+dO+mP&$ksrV7#)1o+MJA4Xz39&fRM#33nA`n)mK(wy@c8L8g zyQ2gXxs?EDR+1(fkI_X0-YIqJ((}_*f?ZY?vW~1!Nu%KQse~s~?(UTJ3!j2&5cz9? z*ys#1fjZ6V<n1K!BI%&AYLA4 zeV??rCn;O!(d=Xnabu=#1!sm{Pf|d|&~pb-|K{eD&^=kyUp%2AmAAU{7P2<5USLrp z2jNn92FvSCT?iJ&g^XY-rhI)#SmqU1pmZ^NK zKNzcZGYmf1{P6P)M@9uxHW*AWeCL$!yvJB^R+4UdC4US6mXieWsR|Z;bety7SJJRa zoE9SV&UKcJ$$kadMeeNgO%VSz$K#B4xkyg#^u~d|pPT663@dZ{LXi2eT@dR(zwFw% zRg$`41tb@`3b?f#&!gU`a>BQXShanh9`77L|6ks}PrCFjkU!b&2Cw|~E!W=(@h8(k z>KL)+Jb`mOU$Np$G|%A>77h6%IMVMRZjRE0?$^%w^1}{~*A)aO>%;x&14RG?kCSEd z1(wgkJkM2nz;ve{V~z~+CJY+fh^D=4OH8yYk!u>RC?EF>8F=;6{r%)|I@N~j!k@RB z%@Vfjf2UfOiIu^*7oht75EEnS2RQ3bK=cO65W{NC^)&&62 zLC?lew(Z3d@~nxT`wHQ|z4G)?tD+1#g@9xYdV&|49Zr(GYWe4P*3$X|uDgtZUDwYc zb>^CI?|5byhSKf3Sb?Mi@#qj^_bwO(E@LoTMPBV&nqbt$mbGDIQ#1hUI?|G%B0&OW z{jnj66`N2ixs>yfW?51HM*i_HV744eOlpxlXmXBxR>W5b8M;u(^MhuC@D3((M7pec zy6tWh>eyro+QI_vbqKis&KpCl%0)b}pVf1qXCI*E=~m#I=@z71tPSf?Kvvrt)Jkhz zKZ?|YdRq_W)pFS{jD4yi^XhR`)V!GF7?@yd-#DFvCo6CQDetW~;l+Y@SBikH)7%W^n@qW#p#fDCg> z2b3(PoQi|901(sq@Buj=ohCQWu__OSZ+xCJt41}p39HTGzMC3f#4v2Qwu+&!x^5pil z)2wZLAYHLc81n7>kCpU9CiUOvuJ!NtQK)^=$Q31OT&1l?y_^DchRDzju4I-i$JRn= zqcuOOYS%K%w|1YAri4@L0U6Pzy%Agy+?nNfXqHr{=#>05xH`^nm$aJA&P_PEcelrP zbZ4Q@c$9B@caE;qmjwnLRW93WdoTlxbsx6QDL2q&_t2LkmW3-Hy7TqTcI!xxe5;hj zU`^Ut?8BT!+j=nevghpI2PTqxW>dYRev*-+1)+4OU8f%;WhjVOpM`TfLl#K2lGI3C zTJ_jKxEMa0*HqFhX>=0?7c=f~_BY2}eTntnNMADo9$$;NN3HUpuay!(fhN+B3IFM> z$B^r&3DZotmtGPUNcx#)pj}Q~p6rp{#v4PL_h;5rx^`8ogkdC6_auof&qO!atDgX|Mj;`Mf7NJRn|r<>!N zv&ErzhucfO&Ls2D?=jVbpw|Tk+s`ukB-bTx#cuvTmeEKO#by4W9V&e`6+L*WV$_dY zFb}0tMH^{MX{aTF+WrmKIN(w>#wIHrj+!&>=%)Jq*%}xXZUsHzp%cE zz@YJ`(v!|z0xk@f27FajzO3FFD|NW*_walQAy>iyIWWz%EFGH9v!k`D0!oH9KCWgMU zgB{dR?p^i8dEqA^ngKM6zlQxAEn`jz;ITqd(`TVTE*zW z=lr?6-OKFb!RZr*f%*$dg#Rn(XAhR-J&M~4Bj1KcdvcT?r>5wJK7t}iV>5u*=Fl_j z=@Z#zXW+9cxkfy>(x#$qoC^DJ%$xhx5~SuU(N z?c1YUrA5e7<>o=EaOL9r%Pte27<{()iuHZThE~^xWo~1zSz`^#7D9j9iga7V- zJWHaX=Pe-fEGZR+u^ejg9ghFW0k$jNBMLVjZzIG038@fYcIV0CvMHpTNRRD*VwQ6l zHQSw1mkf5zK+f}eEm0b9?(p-NKEukt-(+=12VTz=^9vkJi~sDkG;*tgiOm5^?1DQ~ zUL);n?XXxu>>HEEtcDiDK_KNh$$eTH^D@0hXy@!qP`au?aCKPD32xnhC?L zhToU9@{sCfdz+q(buqXc;!1hiL{kh+ssQg^)@rD>A0xYZiRWFHuy;a{g;5YymYMk^ z2kPHvetfl7E%-4$Vg81c8R`!2F54Ah3jgLzw*o^KnZ7&Q2^O2h)xA6X*?Ao2Zw{?! ze=zo{HOJ$CdxTjyId%%%A{AMWxulZBjuaS!Nx9>T_XFS`SnX7%nPpWW=Ge~r$sRWG zsTZB&2yWVdi+ab6rM(%q8vfD8jdAXthmIpodF+BjLDMk%P3DV`r30JCVnG1eMS&%r zS#tl`5+cdxYax|G_ZCw42(weKzWlDC5~J+-QsGME6MuIYv+pei5kr)=bKR|%eHo@> zZ!^rS%pm|w{QlQH?M-P_U>+rkkK>bY#?NZQI>v&srDSgY2m>;AzcXH; z8}B6bs55Ko5T|l0#g1H1oC>2)e?{4|p{IS&^0G6Cyw1{UWcnCEJjO2>+e>%G!b`@% zdfbEc;6$%|lp4o8B{_u~>_Kmu@|G|c#@sZBk8x&(Wp~(%V}%-b$|Oz$r&1OA^5xD} zay)f9R6Euh{5iWZdQ8zg6R*k~O6rO5nF9Y_%+gIyv7GHl(nyh0zPbXo2(FsuU+jv< z=1gB_Wh&fIGoARRG1_Z|SI`-gq(;{A+ClTI&!dsh+&Hy{j@Hl>D#t?iixU)RenNrV z_xldRV)53X;E#ki>0YM(N~B0KTcr&c$rTjCTIqgOs!A>)sPmK?joxvmL!U$JeIma(T5Zq(+?ziN z-gM84OY|MbKrwy#?xCtO9K8^uhT^`25IES65A_TysI;Y4Bs{ zuM6XDE-}c5&Ljov5(uF$KV;#PvzXL?U9NIdF{f>wemvy_7~Pv?;SNWYLHVWWJ2v^` z0_|xfszO2nG7hJ1moKUKMcj=S5@~k6!3@s^-+Tj;`<{tA6pX!BhAetC6kgL&_b%ql zE(rbvF~enwkse*WW3AgVEEbbG%rpi4!&*?xLq|Ixfx0cuEkM4o#7a?wYzD=z(QMMB{n9H- zlbOzfL_8o<*4fHC0h=H!NWgD&oE#0zL}{^~xjQ_py=z~;Ufp94XedST65Gzhb0|9K z2Nr}-aSq5u;Jp6dxZe21+@ldQgjxGosi#Y!$%^V>5`krbldhQh5#+Bb20x88{!-^K z(2nQZO;ybB&`Q-NEDzb0GvZ&{IL4Kn(36EF_VQ>xix(gx$;usS&j~oqfFo!yJrca>OjAGAN?D=k;Jl!PxMSkhW3q zFu;S)#xs?6)|MIlllcx($d_(}j=jvV&YRtKE52gbEH4_&Vasem{{(aesXMG$>RY4h zP8Bh6Hf&aSs5}RW_G|b193W=zNq_-lEDO^ z!c`FSycBQ9HrqOTgBH^E>>D8QrnMavW!H_4tu$Ih{gv8&^3QHP@BY*;f5?#v@Q>RP zXQ|O<4riN6WeKCw-f(q?B*XH^d7*uEfz|}7?S?t)&K@Xz6ye%q<%0Hv+p^`s6&A|- z15baClKZgwVw*eiwOMWKg=~-Rh!;)3_S)_J?jw`7!&N#spH&tpbi`f}WYlBP1EEhI zm!tJf-Nb1~0G3Vq#)(gPNI=lW4y!3L(mB_A?jX?)hZQhc<1O^kAea?Io`&%wavx5c=_bBH+k_H@5<(2~eW8^5F6q8Mdn%0wp`^BtJn@t5{r)uzc?W24M@&xz7a z?(P$Swk@cJJ!%oYR;yB{DC#%i8B$mb-3{5{47^tE0PqI{+a&caeeE5+=agKb`#@3e zjP|Qd5cnh$BE-H|hBm>s9;nh1zggeyg9%;MKheZv^%1zP6TLFWFL@@QW%uM^(}{Av zbLj<*j0YIkSXl1ktj~Lf^f3k2`&>d-DLycB|3oc>e0B@cQvdSnoMPzq_Y30TN&uF% zZ0Y_V$gI)DH4(N2%s2SQ0V4gwY?Z}CM#DeyO{YF2)mb@94ut_-4aGwbrMU&EksN^! z{Nmjh`7{7fU%JpJ<{_|6)wn+E4`{500MN9VSe>~DxQLysX;OVBAd*{;C(zl$B8*%7 zy=C=0)c>#=}%NlZOit=8#0cG%ni*h*%oL`V01K#@4PSGQMZ$eVn| zAU#S#Dck{h@Iy`|{~qa{H+HH1dK{vt7I2Z9uJlJ`R*c)sL1luK&WGt^74_P7WT;r- zlFkYUcs@NVnAV^G?uLEpSAY{~0~1!?&LDxKzu+!oK<|a%*TkZxqB*sa6fCy5?_P}% zS6Y*1wNB$x81Q{70#`H$?MC2q8`zwxf~W8O|bUfuhKAJ z;>1pVB<|1l?+&P#rxUbd%b$i+)*|@{#ZlHjIh%Hh#t}V`YJq*-TpxdSBM&@g@WQm z8TSsK|008JlNOBTpJED#8qJiRa&uuXP?*;(iGwBJv8x9V0eou4Pr@u;w3F>{fLxF* zv3T1R+DFYu-;^D`G-Br{z=+-@n!uSuyg8zj6ga}#)f1TIU7eIyZ7~S*(3c&?pzE8B(C{}JxU~c@t*J0$$*?L>J$jm|A2SsH5cAKyOb%|UO1{B4^?1Wr= zvj9pRPS=TpJmoR~BEuO>IzgL%J1sAAEtJ$Mt?B}G?!@2w!ehl00`y|Jpd6n_sn|W- z0cJ{H$1@m)egVRuiZLT~H0fL51st2$i@96Ja|IJ9{A{%8={(ws79r#x%&_;rv!J&e znu|MwNUn=Y)|SQPqXX-%+u?^A-8k^6j80;6PN@Bp41iuZd`ENc@aJn>pBYx9>e|X1 zFui!6(J-Q^P2V69IsB!}%<*irqOv^>!$#yNFLq6rA38E@LNoe0dpjz&2mEER6>!Do z8DYpUdcRqoAG@sgL;#eXv}2pY>x8=kS~QTkvn^0H(MR zVBKNQ&U2(oyt*kZT^(i>Hd!`!Uj|ik9?dkzvj_S2!m=t68GPfuc$#hob6?zwnL6(+ zMnUlusCohE^l*<-QW&EArxtuSo<gZz8YO=1E6*%N{J#rJ z$hs||x}?Y4_`>4$^yK_Rpo4=f>KKw`IFx@RC>s`b-iKnx#_8yvWYZ&chLS2+m{|FdVL z%e*;rwr8rxIzkp7pxMV=oQ}E>iNtp`5jlz;5Y9l@*|l=~YeVw})mz@J^|^*cEx!OC zwK(8XqAzSy2z@@^XUGYaK9#8B(BRQhCGRtk3#TfDIdOtB=tyK}5B^pNb^7<%E?$Qm zo*N;?6fW1lH}agY&Y!;})P_1gzP(XZqy?5pbYanj@-urd5Wm0)0YoDBvH@3HIrUm* zlgSxj0Jp`xqEbQB-I`BER<_?6tIg3Qn47Emo3x@~zs(xI_nd2&e~LnY)*g;7ZAX^M z2M5m!0!Gv-x{-GjzmI6rg1HG(DX`Jb`}^OxM+ap4uj=<)YOF^jj9&REZ@=w0rrp-W z-Jq5>L*V1BS$@m*Cu*Ta>-Xp;+&TC@6is8Y=sV3?Z@XGWw* z47kz(9Oy?S1C(j=*BlZ@7D|nlKifvGNi?`2kAQF=3obU{;J_|kGm140f9$pSUb4^ zSC%`KBBy3!%=L${6qhaoB_zO}eeBpIjcjueqoAEUH)Z^n5)8C_bmx)~4|TukxiGpw zZg2-5FMe}xBM8VhwRcX3BNa%^9lZFqF9qTUlHD9k*eTA7pXO9K>70J(bdF= zyd+Us1Ai!nf6L927ybcdv4FNy#d4rx9{Lo@Kz=M?v07 znw*Ix3Of7eOq)2b+xi(wFte}73b5|eYCN(GPj6_d@Hbu~dIqLuIO$|br!-|+G`{~l zw>V&jT*4^Rlyy440KdBbyiQ}jDK;41V_4M377L!T<9wbP^WZE=B|@VJL4w5cU-3S- zr;lP+O-Y+RhKVjca|^=YmhkM3rC0H_!Lw#*CSEnsdhFs04Bt87vi@Y7+#rYRdN~x>J zOD)=CBkeT4-@*S<*{J^gzsPy>$is=AmU2*Ol1$wdGlS_Muu(j*QDNZShw7#}Gbyju zognfv7dkpo)ck^9(r_GO%pU3x?8wY0wka^0G0r2~DEH6;l-XCr%k)Jf-7ZGfJEwImvk~_NqfGw0t9r$u51GCVMWs=ps75aZ1KN5vt zqDSt@9>|IBH2M$|>;7?*KDy3v#zvyS!lJMCo|w1xR^73L;4iyWj7#lF=aMu8u9!PK z0SRQp*;YH>55ibg@CxQjIld}C_io*~%U@bZJvbl?ip`6|<>7h%L6HlBR=S7eA zuw)D1JtA%|kGggWc-- zTX!o@ywsmm(IPH0uqZJiw1vWvN4$}uC&L){+!MdW^;Gwhj^NB#)=U(z$!DPEM)2&!VduGtOGEOL&F{`ud(l8N z1G$!O?`OR^`f+~b=Nq29 zR_FWu(AY4qQHrZpmZ3`P5Mvf-D2T`BR6e%ONAT>vQx=|9b&0U~OO-mZV3jfixkJ@f z?U74t>qmH-zg`Z7%lj>8JKE4Fct!R`BYl^GKioT#&!TyswYE&EZCd-}!8u!#yekIs z1-9bQDrDt=8wEds=Yg%@*#t3nU+UX7*B2Hn!~0WKS)A<^p&e-&ciPAL2igFsE_(Gt zMc*HyCvpv(lLY>JQy6ON8liq?SzD%icC(WdDQwsW+dCgghUtsmSA zwhwkDn?j5-m?B?Hf@^|}VSymSAw{e?ew*-+g`VrAT`7S%36R9-lX)W@oe)?R)y=|B zjl>=(fZ#z^Ps@va{knB7R|#zy&!2~7}W5yF6i5+}bn0KJfN zR?vj_Lv-ul*$qU=ReF9P_eum9ID^iAM$F763#_fp7=1EvxSvG9Ue+Io&(sEr&$zmO z-ItQ1w^K+y%LuW&b#Q!F+0xc>XSIm7N7g>yu3D5BBw~xs1iH1zEojV0Gm(6GGJkRA zcJDp;sDXn&&Kt3Ut}yj-p(d;hT6gnm3tulWkT2@SmsJJO1KPxev6c8lp?oS%9Hs$X zJTcM5druc1)umkOQDz&6t+A*9KNxHd<{Z;K!1b-vh{yNLyV))W0@Jy^tTfCsO&~R^ zhYmAZ-Kx}NnczU`vQWw%JW?u*qVvH@(0!0uynb7s!P8%B?Aij-II$l%ozEV_nz>}P z{CyPeIB`MnEWx{VP%ReT=iS8vs{PwZ-;oRn=%LVqjD-})NQE4%@6KLxb~;7kJo<&M zgIcjdf}y6Do=vkjJrj$lQ)DW6#d3hETe~cWZQBT5Bx%M9co4lyrx;u4$;##o^EP$j z%JRhav|BeYn8wpi?)$T&gLjE}}29CeqV+_#Hd_)F0^~S;ha8I%=bGFwxl1A&G(aSoSI+aPq7pH2AFU)5YU| zyNb)6xKQ7hCbcI0LLD2mjn>g?@{VCqG4tb?m4z6#|IbX_I-ZwOPJowCe2iwV1^=(+ z07`rQa1`AM4D)lYnDqqYe2`1j+0+v?Tk0Km3Yq#)Lt4VvlFJjNyBmZBP5&JRz2TM( z@$x3P^0P|Y6tX>occ15zeeNLY0!D~TX;|?0_Dhw`Rb@tPd#i(G3kP6iN$}sR>dBQT z#BL=u#S9VZV)wfrSBuA+K05Zj6;X{gs&7#)WqTEyg~Z6@5%{D}KjH8QZzD+f-G;Hu zg&In1^j&K)8-2DbF*(H&fl3y4&Uq~H7F9q(HdoVqDMBxQv}3G_WJy6Z5}r&7rHz9f z4$GGs-jwwoxtN(cVE>fN;q~^a36mB`?w;<3T$o0npe$O`fRxY^5?|uS%~3HfBdANf zv9!`EtZ3-Z)IKcr_gH~)os;154=!I6^rn>;O51XERJ&Jw^{dxebxa#Rwg@!sRW(YY2} z6s7;7-@)6uQ^Q?+GM}VwN#wmAOElvY#TV?Bemq>_Fuz%e?>-8&|6ENRv( zUz8R!XCZvTP#MYagwz~Rzqj7jw)v;RtvqB4zH9;J z3&sF>nCV-s4tUB2I=5a+EGjWgqyW3!`tyKCN;;UH z-@Q1jAzg|IQv~$Aj(KEa?1_N5Are4_7pC>b9e!+SK9dDAh37^R9#Ua}_)I zW1{B%Fl51r7s??%>~H%Ubcr-GOk-B_i7q(29g~dBF+cTa|5KGjVSK=C=;x9EA`wD= zXib>f$e|_76x&9K*2m1h6E2!0yqUgHa*JbZ7b? ze*EW8QdRPnJZ|g+Ig?eG>;RqyfR1ATQ|KJp|C@RtC+?^H?zm8GdXv76!^3wce^uO~ z@TAo;row+w--Bb*T_sme?G$+RD=wWQCaae~KOK0!a>!;!q|mpow7q!~mw+iaNX-eW zloxr#wgk2cjd8!!nnj8IU%6TUt8}OgqHU*kiNOc9@S+@SJGkJWwMN6Ppo;}X=H1^= zO$_NAj4)}!XL)>V<=X@nOf?QgOCyY5qs@oB_)Btf+tAD)WsYD$0-0EfuLaK zV~G5N3rqmv0ZE4{aSQN)_bV3CR^BG-s5*Duvn>p%Kw$~ z6`Us_7a2OVl*!e4?h+uEc;#7xT_^(mNfB1~c3G(2+&98hkR%cTfk^72DgtO!4!0pA zdl(Mqk&BHa%LglI~Wr1+c~MXfC}{ zktC7YR-gvvce?*x7HL^u_p%Kqe{+W?^FZfVqx8HNEMtog4z-{(fF#pX_;hfNivCkA zUy*0ZUp@{pXH|bUJUsHg6ZJD`>&{$jaV-oLuKL(0>fVqv9;kfXG*7ze9yX4c=WF6rty=p4>TPk@x=vaxIAn(2Z#jVRNQti=AT-q8EB5y3Hc#lamHi{u*fpMQLP>u0bvbRJii} z_(v8>rb?#K+9crQ@A%ojWbGKicQHAPtPpp8Or+RNx+|X)!u0iDDFn?|#s(z?^fP3u zcHe%1e9Q>rf-^m-e7S|^c zWD_KVQi;asN3XdqdNtiPqLQb7=6rGzzhi1Gp{~TyvMM1#l%lm;!gxk?CoLmHL+s^U z!SYl(JlWzj*5x-liCS@Al;Rim+M+S80j zU71!sgb6Ec@`_t@MZ`F}MF58VhtYZ}bjyuV0Xem3%O5)m2rK5caTb*n?~UOe3O6W=w5`8SPf??TjTV>3|&C;NcbE-B`j-n`u0 zq9cJvb2w_9{yK4USxnqfNviKwtZu@zzpUfrgGW>?y7f1vpuT7fHu=^9y(D*0E#V;C zYN!0t<1hi+dW9|z`})71TeOEtjyw*3Qq%Q%p84dr6uGkRQQq^k?O%$tSMaQdK@J$* zRAg-Co5!}YRPZ7gyryQ?{Nx~SxmLUFX~vGV@t*K@-}l6U*g?kaCz) z1g^A`ogxV<>DW_LswsOP)OqM458zXk@c9?6f`r|QvuHOfr!L@FPbY}ALL#7X4K>eR zXMA`CXA<_$;g<{C-90>@fQhnp7C0KcnTa{7bnS@oqsztDGNVGEI*xy^I5R79=GFK0 z7=m|*IdP0eJcuYZ`hr#rF^m=R`xz2bI8qh#Q-6@m*Cc4j4Ywl`mn7zcQ61s5Y9}vM zyOv4k@_(5Pi9#WRlO!9Zrgi6gccKJ5np(iYUo?34Ps9krXmXDtvmcYZS=OhdnUYSA zz`)Po!&9$7hJzwsV`V7%05#(J3kG<>2H**q#6|50P{q*uq;$f4aL1`ct-^`0MZJLz_oQ%+MEizu z!zm{(Wr3U_^(En%;c6j8mSFrBjTSd$m-}YZzv?exFCG4z3$$hS(~Cnu#zlm^`+dk_ zGIIg@gth~ptW6DQ^F8(h1b%Fy7SVMfdAaMTpQ>9GF3Ns#a2m>%=}9X|TjtU2|2*l4 z@2j@;e&}}3kT3>&N1&lN3FARmx9Llljyq#fm`VM)*AF@lB%6yp5af`OHtf6i8tRxc zRjp{b`X>NADU@$q;VrCsk3#Rfk5{^;I~;YhuhosF{}qXM)n91fHf*s1wdmauOEHU| zP7rCUC!-SooIkK5(dVO_9iR@*CZRp4lDl|+#U(aYmLe*nE>)@w-wZ@u>A;M66X=O_kqe9EVrXhg@S@Co&R62v1A&PI-E<<)KHK z8#J_VghTMvWmT&BIS^4abn8kFn0!(4`RlDZE$_UsOG#_p zeVM=em4}&|p!6X@oI|5TfN(4KWDfcPa}-4~6^n7+JccYK`JS`W(ue;<^&z*#D@``N z$UUJQR~_G%N6KPj%LJV7lH2L5;>81FPLfb(L`!GyrT zb2GZ5r={x{0PV~`Y71XsBHg~S2TYP*Oq3lmZc^?kdoZw7d*$)oq>e0hGQGC+M3stV zbEqN0|ZKi4q+AUl4CQgVLE9psf* zATdiI&Iy0d$M~2?bWj<8b3SlsdFR*wRYm>o;!m5ScY1R@JC)D6;e6G+iBQT+E8B!!lYkbF4r&SMz;pBa%G@a z%v6Bzw82aTq6x9Cc>ZcRzg6k|?2V@{&d+(V%l{OCVO%B(AA{ z3?+tkJ&Xmkz6{C&Z)#&Gl1;AO=ZMO(MKAUI7VQRd#CUq6|!8s@V2u_KDG;rSjv&=vr7CpN< zm+n{r@RmvICR@1;LWda{8n4ITXI{EP9PQqp zhDK)d#6A5n&ugiOW+c@5Xyr{YCen57BV)xek46SKX3iyWlzy>=lKsmber<1Jg$NJ`F{FQX8u3rF`IifC2eww= zD;g>gwB}`aQH0n3o08~$wQhZ65V}P6Dl0;c%C9iN*+{&= zpx7Y@1ThBQYeC80uH>^_0Wn-@zrHdrt;z)I&57s{Bk+fDoeT%dolSXu*k=v|2+2gu;sX?v`>6csI{oQ}c!Znmizon!O|oNMmH{3k zarz~X5`EgZdK%5+$D~PTpN8WYzNeLKkMiE873xgSe-gb3g-s%DS+1R{9i)X?6b@F3 zW(JySU zBWS&LX)3xc>dqg!I|qxTf)jY-l=k^Gjw{}}rB?s^kmV9^ZxA^lgngpRRGR&@Sz0iD ziS-DCxe0S`ev$qI@*NoX3+TJ*=zzg-J>-_U)|}8b2`A!Iod6wj^XAEpXmPu)7JVRI zT}hz!J`T9sy5uSJn;?jp01dGmVYaylL0RQgTMYLZ#HY){$KAuAy;vjPCV&seoc!jZ z#Ga*z!n3CuQz7bJcx$A3dER}t*+Mf8q@*@G0E=r7sL%IZFK?AngLajBn?>#XrgPz9s3 z6^zjopEu!U;w&*KQ2(cHEaG6s7SF_8<}@?kXhZkNWTv2dA>q7TZ<`}Ax2J?GWzP&c7vZX=?Ti(7dhw(07$tysvMGdPNh|;{ z^GUb5wd?b5x#eBaSw`|>vwS$<0+kmUfLwfk{%eQ^Wdu_vi5XJ`$jDTyXb+sVVj~>j z>a?0bmu8;F5AKp6Qpo;)5i$=X+d;da&fM~woJaa2TZixfLtHj(0jbauBN|3j<=~!- zt}-k4?;fc_-dz=fr?{^BQD&Q}TvxejG;b}mdc)CaFYb7nYp2)gmwrBCovh@;o*JcJ zHv-kQUr=zGqQ9)H=^?>N1@vs5&MIE=_hwSa#<145&zX}*WmXB>6K=JGaB|ck-A`1Z z*lh{=6w2;Auig=Md_O79E$kpG#Zr5ivaomBWxUbMe1ne_h(wsrZc?R~BHR4Wxn?}Q;T zH_;_4_qd$B+6E;M)`(jY1oEyBODO}&O%KF>R>@=PE2Ay4{Zh}P*o)>;tWgX zX8RqA4xY9mwP#pz9vO?Yq94X)n=oUZkdEWP?F(+N&ah`>F((GTpyhkZNgyn_(fLHZ z)G@BvF|){U(`m$x$iFw{<_O^-(I)^cgSgf@*1L^Ydv^niuT7I7RWM~UZsf=^(g8L( zYJE6*pKtv4{aUW)hfQ}1tJ(cV|JX(Rpt_iX=NbL^A|5O@ z-`l4%)b1baxLCS^2T%;{n7oUVDn|?QZ^m9G9W2Aosn;-Aikj4o6P9R{e&3X^JU4@e z^t2IzTT9_qn0_?90nTAGJF3tXNS9C#J?jfkNPXSn@&duC0ht!>F3uGjX}kaJpR@nP zDehd%TN;=NTLKjWOR9oJSa@PKwPWa#I|t+dyb=X@8=OKOfbnVo@ys_eGCozzci@LC znQhMG%h0jU?P=7%e)F@5P4h4@Kohi{z=LyR6UK;kop~t-bQ~OZ=YvL0RL;WuNxi3p za@_}m3!IZfBQ&JK^_#TM!e+zJ+Yl>^Tk4v#Lyd)f=PL?V+VbB#@+InUU{BFwYt6x# zn~Ll8mStAEagNOuHcz$eh+lD#DSOzDhT!Gbp^l00*D0XSC$@R4XzZsHfTFWv@C9el)f{;(c-Ko1{uLy^PL{!xg^?3Ga*4rr67lVd z2ho8-t}BQebX^-$sQc~yD=5f~PckdEu*0YSYtX3BOoL4X}3~ zBadP*UK0&a!*4sT`Z8n_PTti8;xnMj@wS@q5HIYMALw?~d1+ybthyT$0vY0o-%bXtfxK|2$7q}fKl)p5g^A$a zW)P$nbuxlmCe%(8YM8(r$W>>DBSBy{;SULB2BPv%GDIQKo6z zkYd&R3Y8i%Qyd*YpUu|W2q96__lrMo^D!Xzam?`lxav%8=M%d@O% z51w#Q+Y>eNj9F!2X%4!~5IO(G6g$SI+)(?ci;W_9$72Em{LSOHZvo4uj&{f2jL4Yo%jC`bRe2qa|1QfX%- z%)867RY#x>WFG;Kc=stP06Gcc_J9t^P>+h@p?8$5tK>(EurDqV^`!)hH&KIb?dbPHR+A-g<_`WvwnGZmTeZI{z;`S)i{vKi5z{_;Yj{~}}NfX0( zuS;6DV}@4~_*Y7bs{YRIXghfg1htLv7v-ku4@`8AI%;6#08Dx^1m0ZxbM|rS%;!5L z0zu7I*W%ZV-7ztDD{3@mf6>85C|MOBEQK#}g{8~~VLX9T9D`?IACms8tM6ySt;Ybj z%5U)9eBfw>0#%4@1kWQ?- zO&orm$dGD6uV)sKXDfs*RB?moA$EqVy$Pn@tY-Igl-Nis?jyX5V+@LM42?d13sU`f z1Y#j{xwDC3z(IW#8e`@lKJp3A&8Ai)AGMGX#-)Kg77}^Omsp?K>b+0TRx!SNeQyob z!NIGb|ANr3SFek~fHoX87nx_IGv|%5D2AuKJI*Ac}rVS)jt+{*79{^zOmfpx>LZnP24zdXkB? z{UZ(=@gFOrTVIZ~NLr20Z&+yWGeF_T?O-A-8}?}TuZE0@15g~NN&AM3@TV7+ zWtge1;SDAg)t%u#2xU8Gk#?$Q8;W}$(Z`xhG_=tB^yG6L-@+hAV$VHmKA7cu4nQ4R z9K`09=%(B(7IY}&7UP>X0(2*_E{}lZ%U|#+NYvV>*vTGQ{emQJN4P)^O)!vuqqqDy zN`-c#4@@}#b!Rki$79c#ZvVD2_G_)zy0p!7JbU0z8+COfzjNC98kU*#eP@19<`~)j z7oN0hM+)P!?aLQaeb!?&X#r=vkYcaDlA_vvhbos-gXr9tgS&^;rI^jMWX~gpFLldY z1Z8vm5^82zOLt=agI*&A>@zGnEZ)HNJqqi(L^+%Q`Hxo^=jv{K7uKB)YJ-VLgu2hv zO%~`H3*?EP4oQLz<+ehR(L>=|654hb@j<u>BL;~B7{vl6`xoYM1IP< z7RL^$oYmFn54l5UBO1u5NNOMLYNrQyEY+p-_FV!eXin%u&55nr01&RRyJrq zNz{z{d5ZKDVSfM{5qaf0!*HxpIyD2kh18rvULM*#0j=ZwMlnrq-xm&<{EG&;2WD}a z$z*fO{Sm^@Bs+B6S@6=Q+}AKaPTnf;jU$H7`_?snbrWOjw@gTI69A^6K!v0C1M#+* zv3ZId;u_HsYQ#?UOXDu71`AL66847P{MTy6Raw@ll!{Yz0T~=>uSNG}mEdbz;+o331`?2S<`w3oEu&<9A&t&~gTM3w{2)0ktv*E~8B1F~t@nH1L zVhnFj3-xu)*6p$7p#q}1M?QijIF9Y8$1rV=H|^B@LoFqgE1&^sR=WE;>65HEy>B=C zC)d5NbJBkrwI*D&&bsSm>5wRHL_72W(xZ@5_?6v5xTc>iPUDUVV#N+GY|Yk0ncen~@q+aEm4J-lP`UKj9Tmh#fvDWq4|Ok6C?#%_uKU z!Up|MbQM+gF;E=I)lMTEd2}uWtQ#RG&u=h~79((|HbF7=>Vm6kWOCwhRO#Px9#+~# z&~xs=BMS!mv;uISzw# z>z~<8X+njT!>q6pbUFbwVD9nfJCIb8tg^vY-qwZ0Fs`xgurV!Vkn{^2GZ90Fp@Q=k zm$N&050OME8gX6>SOPNf=rE|?S8Pf(aXH}aV-%=h$D$+JN0y3S(iRW%yHo018=4MA z>AcR=`wP$a`NgD>tM({cZuZ_rJrUb9(chRV?7P(5ofP6m_^L`~yUKMws~)EyXV94Z zGVcKIH&M202w0Mqd1V|p=kEY)4$)nA4?6AA3JI3clX!(sq_9g7N?r%Yl(f4%O}sZ~m9eFBNHp&WjG;!3BG)zgoi$ee$6U9TVEuWT7bDE!zQ zdY7zUf%s^yOP7UHD?onqvOY&;X$IbL5rc$E?q~vJMF+6)p_dPY=9L7)4o|%=$767>gL1u zCs#*~GAfWj2~+0mB@d89nFknN?47Xe2NsWpYjeKUP-}Y}E=5@yC6n)Do35N_&06wD z))@Ebi9k_({fclZI7B%bHT<)jBbhJ8=h+k8;RgDMdxB6)8<8;Bj410@P-fZGk&~_c>G$R0R5OxJB)aM zOB8))4_NvS5ATJ!o@bDpPtkKD|FmO{xzzcSCN%z`mVYou!ZkGSIoV_d^90DJK(Lpt z>gx+NUK2}(F?4Ne0xjpL&u^;bAf!*GhA38{u4}D z^5|}iIJ?z#UHvn#kg&j3EjRRQzWl@92AbntbFFI6_1IjI^+i!71DAokI|9X$|EVo^v9|%fgy)$e{DVne6w`EfzaBl!^Z&i%>xIhX zWGDza@ipQ6MY9o6sJ1SI+m}uQVt66SyU#xo$=8Ct3{UxUK0@#hDAY#{ z5fN8SHxPVmiUZUCUqsNC^PYu%-Tn*g|7Tj9@-g@b8$S?0!-%EY*7L2luD(o$bn?c6=5=s2nXl$M4*L5Av2msD>`fzUCd?23- zwP8J-aJ|=}DypkE_91Qqw}Lh!$orzZUJ{Pt0|iA@7xk}!rI)b0bluY+N8P3Yj>SN& ztKwPp2ZiswxsiQ+{Pl}5JFFL0&jZ463@NV;xQ|PsEiUyS3t#5tQ6?TPnvE~@F>5Yc zH&C2KmGI$4%~JKwsgZ=qtPYIbIoo8)0BO0@wEdlc`nAk1cfji5o^t-!XoR)PWsit+ z*=9oNGmEQsg>;P){ZDBYe~_Q@QpY$<&#~}4GF92GrO^@6C(HEoRRx=(6#Im?!nXF9 z$myL{Qo%<}S#$;pICgsaCa=< zU-KZmTL>qF2wdES!+vzq1k0Y0MRKU^^LJ0JF3Y?DT%yk9ecCL#adX!D#PIb~ZWd4((Dkdga}El6WU zf^2CsiU>vb3dqIZ2UHNZ)A+;QC(SC7KXfak;9gX7(Qy4<<}e-E)@L;vU$A(PS1E4L zviqX?RP4kT2nShFtmSf_7IbqvP+~-7rL8hAwd-Qkn>VT!)3ZkKydi|9Z%%e7np(#b ztRY+T6Qkte4p)1EnPGVl0oSaU@%r*#LAt;EJ{UyQ2Nq zv3|tsNdJz9ao*iJ*NKFXPKZ8KI6nDgeR@@(9x6Aqz+meq-rN9O)OPm-b&f|rX_~)!`nG|*AMxN zQ)>L-!VbZ31a2*JE6$AqCPj%8mQTwsE(MXHpVw=7 z862e?Pv_Y>9}<^sH;jb`gGgU95hnh5bly}%-+#W_a7Nn zDlQza=;Q_UzTaw~jU>lYPtQei-c{{;UQJnd1AFYSnl3LXz2KGu<{PPpX$7UZb7ZB= z>}_M=o|sSC5Uh$YrHtwN#QN>mn?VxRYtN0)$^BmrojkWSZyovgA+2Lh?N2 zS!I@Dn%*O~4wn^G!>};;zAX}k9B-Vf%dnD+r~@yIj{vC5lvFOp|BZ|^?`2UMghTz; zdix%g$U4CqJNlnEYb+{FwQ^P+X zK82iZM1N}~R7ykeRYl(>)UiffTTpKkf)TB@wAH&A66T#>MX|L(> zf8{+TI14pB)D7D)6ihxsk&x9rJo%0YyGA}UMdm-&WT`vOX$;`RLs5_^-OpKjj+Q`Ht<2hubRMFCx}Uxwf{a) zKtk}XD;nR8rmd5_WKAkF#M1bmXAW5);oL9JblsYVt z@EK|iqP8wL@7-Skbaj1BRr+Gq6ba>3ZNs`>GUzyjNT!MEX20LJcVq)Uc^QfTc2)Q8 z$;tPPrwl!_8RbSI4xd_gY{U%z-I8t<6IC6>_gQD$rU&Jeg~BAfofe zFJ+SKc$fdLDY0_r@{r{KyH*o(E|l7K1ou2=xT0gO#J;Ed=`H|rM2-zU2xoiuKN#4! zoyr7%uTOY8`PaLk`nTUzFX1IulbS{5=26S>MfD!#vlMuDliIR5(oMpoDJwRtlxtB^G7$O=EE5 zrR{{6Ec$gxt41|d+<$Bmlf3UK&gS6D5EwHOwv~VAiM$}U8)`5{aIge- zrOEAtp{m}EB*3b5Tjm5VZbezUR&wa8FcJQv(JT`Sr+Ys6YnX1&Y4it<_#SB1m0F4x zO1mcL)ZIE-NCQHqT?+63(_Nm7(l^?KiX^+X92k-)#Cj6vXhapl<#g;ny0P6eA6isu zJfP7;JaStxHCnTLWTi9kqp_IZYDe`#Yz1rD9MT1xEnLS z_1d;F2hQ8kwdBlN?z;w@X>?r)#6UqRFt(YkZ(AA{A9?)uvph8wkpXkatfUyUm@1YKkiH$~`cPT?WR7Y2xl+Bp<6+g5 zVP3`Q*5_LI%Lz;T3R0lMsud)kK!JxM{-Wt{tea}vvnU6u^5YegM9j9t5JAQcihM-I z4b|<^6r*irjGX-6>m3I%DcnWCxj&f94t~onoj_cBkiyFGNLo~f0CO2`=@|@el&M>y z^dtnwu=?IJ=Lss2R^t>7>n7#~%MUyd$p40mzd|nr9Y+PJFN@K=S7`#RnP%UJ>-t(~ z(51{*Wi^Y%Ce#TuIFg`7!)V=Sqk=hOYGpX@bsK`m9H(exZX8?0E0&1pTYV2_A0H4j zZ65aFE4Qtw09BDPW5_1s+GAH}PFf+z7(v);c+x*PKwuzqtGt%ciK{ZvyZW~C9ks36 z8SU6P&cT}lXadbZlm8qy=om=i6V)=VLQ7RHwA0_UsMHL6?0zD4n;4r=K=-{?w=*Rh z0-Zn!)(-meh6yw#+Cg;aM+ZOnNqqKjcQowxLnIoQw8s9jP|I_$rljLy+ef((NAhY8 zEc=(TO+-Ru`n!;PKshZYhhMXeQMX~!A5f;7tJbK20P3Z5JS_EktTiDFSk*0dQ1RC4dL7HqC|zfa@9`z?~MW;cT)a@(G?H z%Mjaevr3mkc%%PsG_-l^OB#vp2yQ`}F0aHWIOc91FS8_`#HY1WNimXx2o_$pl?yj) z72|EB@?Ikyaul+EISApBg)X(HM9A==q@N^zoSbOFNe7_R-v@%qeRcWgU)gM{4L?AQ z6d#Cf+bWx&TjH2X@@7rV;t{gl+~UOF2^vGOLE(QUk#Kiq9-%_s=)_PQ2Aq}&yJpjZ zU%?U%fOuYX>mHgk(A9m=`Lx@pvu`C>RKOH_=c!a)0 zVM`zsO;lgii@pJ>a^P10CMtx?_EYjX2UhL1^k0~9nzGn8-hABZ1U&D>AWzIKb_QbXW#(5!v4RHIKnseT(k&o%TMxzPk8 z;2yKY+c@mL`S)~X>+1J&IVwpyA)1gArZUV<7RF_HE2fpj((!r|dw;5OS#C{B{rP{; z5yy@ZX+CPaHs`IU=7($D19Dpb-j^pNy9F4>xMJN&d^J~g;XvpGymkLAGo_xY|Cc9j zhLeXgdLcjJHy&01jm=!x}tY4S1U-G?nsi8xjGTtX$5tcjM^*7 zapu=q9cn~OF|W+w^>eR%5nPoZkohP@DIAWBip(|6dp7)mv$_U@|3r%AA3i-9sF zB#|@sPi+(bI$_oypahEvi7SK3QXQ0j=LrhnG{7=jiZqHs0AzK8Wi5!o7c~uiE=S0~ zJvgHqAK=!-KyB$^(ORh>VFGDAI7?`mM`HL0Fk-cGN8|JLL0tt?TJE-4(fHHDf zG&bgR9p8vj(YV1TT0+1Mq$c^|QM2V!wYa*m1?j(#jm>4OvyUb;=lRBx3@7Atg)k+X zIVAG6E8Oa_z3S`?8&dlM&$1lt$em(dh_*s4kVpxCg}nMh|#vK1V!6aETP49j_4g@Kt9Tyn@~}kvdm)Er-Un} zI`&6nq!KqXPB7inivf7Fh(elig^K?jMXK&}1WVr3=}D;(v`b zap0h{jlDLM)(fv+DOBL;C*f+Q?+~qqt!49lozbU~2z_r@(aSoNi9LglbCkfbwJT;;oj<3{J zEKS$X%K|5iPX=Ra^sHCj1$y&D7uAbx(xc@S{Ahm4Sce*oDP)C!Z!PID(;8R5I{c z#Rkprp!Hfh*|F_@i`1w#9u{K zH1Iu!xXZexM(%Lw$3{eCIopduIwno63NgyvBy)l)WSPi?cj(CT5yt^daX-;AyQR767s?tQ^WHEtp66R$wC--W?gf_dm6pi~ zdr(hl=G@f3+|q!VUwcFK$cN;AsZT~ja{A~^POeSEUGeB25Y#@e;0PS_S#nZ}}sU4-?G)Jc4ihelh`svO!>V*Rp43Noo>UQ!Tj2&Bw406vb}5zP=|up7-wKGSP#K=wd*lNexbY6* z%>cT?F>tObWu5Ch=7ed6kQJo28zzKOL}LcicQBnM-do?X?~Kz^mRmU5PO}%Ck46AK z%d8MF@eJh9b>l4~{=~{4BLFeaO4l>=+&?&xx>F-zsx-X- z{BgxxS=0(ZH@*a*qNVb)gg3NkD?f2%LE(Ez;0R!fg_EqyiKAV8)U}2v=swwI`UX#n zPms?C(;K!sMyWy3%v}ITF&lRv)Zl;AWZ}NxL31k@mBMe4w4s6UAzbwkrUUknPI70K zFbH>Honx=l-slDfaFeoozhGEdl>Ov;R%nlFrEMGCEb|@do~6tKH`!cD_WJ}o%v(WV zyZQ%0JEhr?!F5XIWeKA(^m;$s!!kECpAB`7EV0UGc8~%axwWjR9f|mOcrv}?Fw+? z(d?_Tji)a%AfjWjCahNUe(vUm3rUFt>@vQ3L;)j^DZW-- znl6@PEl-&@vkSih61_1Muct4A1C7BfSaze8=^0BDvuc|q$6cbeslckGg#6>^9w9%7 zDSR{b77uiGz}kr{2K40_tg>$rKJFn=YL;#``$dkT%M5#m;h|5Wr|zl#(zt_?bl=68 z?HG6;k@6`*Rv{^OA~)h6w${PRz1kV7hr!F|w?_Ta z`3dG9j~j!?dSo-aOkXI88Z@N^i#ER~mXnZ%^TYYu&hgcV@v-iAQsItM&WPLx;9 zMuYPRAECosx(PdqHv@d6#Av3<+nA+Q6@)XUm&Y%h0X#4b&Awq#juLWctc9)hmn&t0 zA09z^>sa>SEj@Ob#QFXSJ8u4ACfWo=xtO3ohUp~PL^v+;hmgvkeyPXbKcBZ_pYkkI z!IzsX1C|qbDI=CLbwcw$l}+?0yi4eXqIcV-4ZFdlEaqsXgffi(zjr8rFfv^!lo(L1 zOO*<(ko7p#nsho;fRjy@8TB7S=};d=Nd#GT6_eZw1|G7Qh*?S6kDlqPIFN2JZ(=Cou7`Fj2coc zu=u@L5RB?&IoS73*Bdv`B#le2B*qui+2LF7-qL`y5za$Rm@cajn;N0s2!B3kF29Yv zNK)U``*_V+3kO!j{iDbJQ%9JHFc5EDmhJ3u-Tq%pNIYoTENw4Yz9z~s7nz~z)k=uU zcC5=k5$&!i9nA_I`r7PFjJ7(JB%^Z&8ZdVtv5bSMi!L~Urp$<++;?Ui0NxH=_{QMi z8i)rTsm8Hqf(~IQu*$u;oBhuxTi)~zNCisK{h7(_a2NTv_=QdEVWLJMePMkvo7rg? zB13va_3XOW)5YvVnIwSFs@=&v!#n(rz1AzBP$xg58=}dlSi7_oDvjC9ZHQ#wD>$_X zJus*JFJQuhUdjYyS9!h)!sP@xJc~xcDLZRHRcbm}0p;KJ1Cx#jwe2 zbYk}kktn;Y&_n$Q1)O~W1&0!-#g2$e6t-+&UKWJD$Zo{GMuWBfC(R~>ud+$^HrHqZ zz*lSSGGrEsI(Wv^lBY-8ionQCg;^;|HXl#FHINUXg zwWt>Tobu|qyR%42${kU|mNJ`Ib&E(JxZIrew6-^x)l}_oe_r=8DCdR@g-QRLp}rH3 z*jPP>?HuEndv@%;(_@|dY%w;k#t8Re3SuIxcX>8F{`H#gz#U|Y{P zX>I!wd@Uiy4Tcn;P?9-k5~#&kFH#tGO1D3Uem4_BmI?Y>uV-82L)s;+j)BHZR}eoX z-qq~N6(pA?FhD4r>(U+EZA_(Wx__Fkp7Q5W8Qsj~#y5Kh>onBJ*0KNbw19&G z^2yUWV^SUCjQWE`o(pz?ix%s9XgaO`m-WK!T|~FVvuG)CcTk(?8Zn~i&ye$3=W?p_ z5J3BSPb|EL!oDyysX&8qM+r>19LWZB?c|Wf?X-7zxad-+0NTNruVsk40$$e^zE~*i zwH5wFTBq#80o`K+xh%}0$ES^}(*`fmUi6T!qY=>QRQ)KyM4_u--#!Q|X+kB6to535 zw|c#o3gTU$iH>o!9)o`l;eiZ@cNixnx1Y16G*#vUJuhI{76R72TRxltr??tz652n+ z?yDOqHioYHPf|r|TkHjwwHQ+x9TzIQ-=Fk>2;4JCWl@hKBD|N2l+ZM}Yu}*Mf`M*f z7O_M-{R!?*YZ%5r&cWX(hf#(WHN=`${x;I{-4ZBS-Zv;5j{i&&j)vuMAl@98MY`_u{h1IRT90V5lUqB=DodyzhruIGmMh0EM(PJG@^vmeB(@7kz znPX$QrTfIJuXx-Ai0udZpPii$RR-kwuNAUsHYQ~}8!83o(3qV_bt<{ScRaGVL^Ee2-L{$fouAKUNf1Lp10vCj zLKP&MsoaCx74-YPV*2?UA$`C53wxxwO2&?5Vt}3Y1b~w?2)`Px3XJq#p~1t7o$(yv zAOb3s1fN5ek(8c{u)zX^8b%_kgZ|!g=EZ9D>VFtSyf!2bS+}%)EH7o?|2nb8XxlE{ z^=&_a7xg8p_O^X(4Ya(sD?We-FvO>%w!1B+XQY!u)%t-fTMqU5G^I@f6W_j6LOl%0 zP>D0gF^%ah*9l&2E2r%MY$9mr5er=ij~CMCXjN$jb9dRrS4+~M>YN)-Q|A+Zakm!z zKf0CoU>_`#^F(exGKOF}_>KP?c|@mtJJH7z1HN_s_UCkjX%?6CRU@^Rat&&Gx!(3* zPbp#soofTNCx-cX3P{3fryWgQfi@8Ka;0~^;q(f{q8{39+sb@Eh#nQ#eedplRT|~W zItfZz*3u1th5bZSmYg{vUC*2np?~dXjDN2DUGApLvYnk- zU}WR0jGyevy1iz8@qz+si@y0(g`%Ll8D{!&0G+M>p_5e;8*0_!=7F8Bbp|J+j1O8x zR!E)o2-=%*O21ek1iWy7$!#$G6zBLbO*WD^YnD?Y^SB2zDAN?1^ByJ54SH}iGGw>z z8At{xpU&lca-}?S2sYD{FsMfvP_{UF-5XqLU5e&BYaOqPw3{XZsey`oMlL48!{XFY!{q@Ih4?jdcv?lQevxITVH#|opF9Dtc*rH!*nN!H;6}sOf+2s^v z_yRz#0wC-Ju9)1d2z0fGvH^%hj0*?YQAi{XFKweol>0HXkXh1>?V5fpL?=zWNHOA> zwP^->8Y-$z)$A{#Dybk?x-=S3yaf52g4U~B%&#SMU z+pYt63mkFrzBArdaMPS5v!WNk4B!MMr?^}K26+5!V$YtK{erp9X1tM8b&;}Vu0iKh zr`}j#`E>Q(F&0}%o1o7RsPsz}?fZwdXTa3?E_ z0M=N<+PayR)Q!SYasTQG{GLtW!C?j4Zt6zhR4!#JyM6qpQhLgg<;9Avqiqex&Gv=+ z?=9i)uwx6Eitn=cL;bk zeDU`c2uOu7MHY~D1k-Rq>8DhE+R=#scfZ&}F7}*22NJE$lZr>vr-i1Z{zHM4`@4E& zH)J}$5tzg01>h|RmDc0(TA^ZSsrV`=94=kT>wSCDnB_u#WGOfG#ee1HGY`w`gbiku zknmO2kp#A)U*;z%6$QqS*dGxnj_V6$Lj*V1M_pxA$YECLaSh<+4JtF7Q+)ijB2@Bi zqAfTKcsny>L29{T{Lvn9231gsHur&#NKTGnd>AKMYaVU8g!y1eA$pF4Lz}82e_pAg z^4y3>u)9JqB~t8x8pG{e%}UgCs&&f{=-W{zj+-Bik=vK@)j*c>l9hQ7mnlFGKCD#o z1ZFV~U#9?RSu_n;e>IlP=Gm0MRzazw(D?mu|X~P zenk-ADRq(DHS_&5q~gc4v>Rgtp^0oAY524vPoqEbJcmUVSaM8SyG=P%-Xe;4yeEJx zGHgM$n@q(%a$*uuS!KlwK`dp#FFMzoxAuz_N>0>T_VCLo;asQe4k}yK=dL9Ptw_a5 z<9)+yTIYLBlYWU!bh-?ac)){By=M8Pzz)Sm2%A(0$Wd30N!Q>jWp>wN;o z2#74kd8g6R)Yn*O+>*(*VcH~^Thej~qJ17MNWz#O9R-Z?wl#Sy=gGY0Da-((Ui@7T zW)Z<_YyX~$;Z-S8TUT`WZ4yUG>Jz$^@=;wPt~=!bW1C9_V%)hvi^S&29`{Nk#o% z(EgDzYzz+IfbG-v^`VCT=${RuqkQwoxEu2hZ@-rgDZd5>+8N%#}0w zjf9l$t<#lfYmZF9P*{UjR^l|zCJAdKt`E)EH`7%&W$RlMxY+0@OrFTiqGF%1LW}8| zpFhhN1}{-C18or<%^HR*>%d2D*0?fb$ZS4PW=N8TZ6IV|OqKHsR%*d*vxLK3pDTN~ zdN=9vp$LnEjOCv;sv@bk1cZ z^cMI}i$1ntTBSouVlys563sNn@^%3)?UZLctV^%6TS2|cFhM6ZlpalXjp^&B4Dr{K zf>!F>rkUHnlDzRZd1`w2vINS-Ud*giQX1qliN635(n?g`i9gd*hBcjLKu-ov%C%;- zS`)f|*p0soG|p>n*U$4H1?SeQGT;?PW=Qi?IL^zck^-f_vDEWfj$LcL9#(EfkVfUY zTN&Nq2K}|AM*;k+M1k${`j!2_6t3Di0diUu&y8tq;h19q7_r%3!v`-bm(gCR4Ex?u5cs^FF*%! zrnM=DKyuh!?9=&%z?g;QVzaqsa7S=Cz1Sw-SV-2W5bSUWb1=KYY`t$?N%?6?upqRg z=L~h7Pd4r3sopQn#osv&->y-77Tu5T zb5|nP_m`wH84^n*0}~1Y+#J*oTfvAsnW*KlhkymI*$m>kFO!{WZiet46@!T1$nE06ij`RE(X;H&Ulf@f^+d`zF$+A`_z32hwIp;JTQ)!Mu$dk*Ke@&*uM#o&Bl>smbxAj_QeEB6 zI5Y*1YRBjdn_TGCPn)VVFg6hgnA%b+edkZZ&=R)I7VR5PB5CKV2XQ8=5M?JO%mWA@ z;^V({&d!PZZ-lMTLKy6v5_TMfA1SW-58r~CrGT2VbwyN{pQ31@UsmPe(&!ilW%V|3 z8)b}Tg3oNpZZTpZYtr;N+xb2NG8)UdwIpC-xl{7>=P-Xd_6r8{}E`p z9`iwPrZ$omi>Czd{r6<9)yj+5MR(#g`YX%nBki|HETT-R zQn@Y!!kypCeqg{YMXt`7jAZAyT3Z}p3o+Y(--zpzrJL<5aNKRkv%Ig@K7+445ldh^ z8b$)c!S!tdPC@K`gOm><6^4?_o?cjn2QdQdd`UYSf{NIR=%R z+C6eqT=@v3$vi;wK+;t5>=AMdIj|d_+Bu4QQ#8ITuglZ71($2}1J$}T_Q=1Z!H`F~ z&;i|yfIp|$cwu4PjwlWw`+maC>E&g9;W#Q^(wra^#e)WMPn4*`jWbh_K!vO9;ii|T z9ew^HA+ROMJ^`*|ct|A8-+4H%em;}IxKo`$7p5n%-9mV?*9ZL}Ku|_3`TCn|K7l{a z4B(#KAyL%7=u~xlvRyX;MjK_jRCl77o(m|!Xt*|#E5`rWd9V6e*_FK*vX8LhYsnG7 z$h_ul^tf9r8FGbFvf`d#r#Zl358NOqhb%?ZWexz?sW}yhO`lBc0kv1HSR|xn-JMq#U0T6 zDLCN7BZ$QYYpG=~JyST$Qz}prY#b-8_T_vB#RC0sTrL??iI|{97<2`6-RcNgPn66E z%-YSJG3y2I6@Y&Z;+Sqy*;O;;Y#n>^r%cj74yUF@?KbiSyv3X+M{#V9a`_WUHq7$f!x z_ZrnUYc`PuH^I`%ERu#IHh_pL;}TucsPxLXPiw}f2Mb)xln?ibX`9i~Y`Bx_cndNr zQb-O^DszSKzDr+a7g%ia5&FbU0Ebw?C<-49{mVT(Bi*vftEr9Fi~o zlLBmJf=5hLHGMA`V(PRLMh)JoY1u=febpOV_I#YDerpleVd7 zA*aILvpj)7yFHP$5&VBX+KttNhbHdX0Y*t|rL6QTH6uW0MOXU@Y)$r%z;nXD7W=o{ z5{8w78Lb?Ft9S~PblW=K6Q7jHW>r@OB$@j--0duw56ypK7Mx zBML+9-FBbP$^>+!y@*Ho+1~y_;uhmkbx2|G@dZEirp#H>0btTaxLK_HVe5?gHNYWI zA7uGfJI>b5>WU!*6Ye>#SE?KQ zmupg;fG0daC&_$b=XipBd8EgrVW8ZS+?Rlh`EHvlOvq*X=J^|*%{hu_r-^|bW=2NF zEBbgN-f?;+ZyqV`d!hYFkyrB?fv;=|4y+sO+qA(3#vU_x)wM{vHLn(?zfhz#o44a0 zh)bYS;}Z8xkZJBU#Xh8*Q7-7|DI-^Gw?!q`RZ*I9Nv@TP6|z5Z=FY?S7Y-$x!%DC z6pdX&={B10wyjg`IoYxd~M$H{3ZqD^MXgQ+eH@-iN!NfINIsk&% zo7FbX$Pm=B6J$eBrMvXE$;ve$6qD^k!Sp1r48q(*_z4-|)UgTLG=cp)>U@iHF2sS2 zFJ8wHj15RZKg8=Oi%KW0k024pP!8jH2!atByICfO;esd5;BP3lca<^N4l15OrQv7|jN0C$CssouIUGsGk47+Kpgi-slQs7g1`N`-1Qke?sZU(#9gTD>DkO z9cRIIAX;kBYQ*hjFnC_cN$d8)WoMVmR!Q5)>A=~IVbaFAsZ{2UU*B&)0CF)=+AjJl zGQ}(E=4W;0Iw0=9YDf7@xL&8`dR!~crxfTg!qlli;un{~YWLzJnoj3^|L)b@JJl3; z;>a|RO={(GSKE^s`WXA(LfmXjVf-u(M|zL7B#RHYmvM{btChMqtTjlyt`8?Nu0feE zjX(ZPbY^A$+~5}ngJPzN`}D#Ry!@voMV++dZ8xv_RjEdRK*aMdL5DHG4g#sV6!dbh zu4KndBl>q0~I@!v?bE2WIa@bBmST(;4OG4Ohir)6sD5($Q5w6%L z9#ff(14NmuA64e`yAD-7CEpAjH^I>|h6nMsS6IsM`7?Fg&ER!dg}$AD%Jh=Fv1&XE zL!W}cmCVYHA{(c9C!Xy?dNXVWDC@`mWy?2+h4S6Q4(#^9L6f;s!3pZ&??RILs zmWhQ^nys|^#GQJ3nkaMqhF@`A^>{uK@07XfJ`d5hO!LuYaODhficu}OdYo|b+ z=TnZL<0y{&!%yN{OckmVinqFEa1q;GcVNlu8+(W6FXEA#AsSoLhx z3R6WrHg&9zu)Uj8Q|JvToQCu%*@P5zvdpWESrHY>#&=%>r-N!KCa_8WX>*!F9RUnB zE5K7gC9LQ7?64svnE_>O6$=Bwq`jZH$H*LC@W_^g0F;PAvZRni>T$r6{O;-adOxtkNZi4_p?vgNV^Lw~pT44E=w()hbTn~^&Mik7 zaV(>F8Djdu9!LnNpCzU+v>6Tv8uJLT+McMm-V^rsO%lHOj(w7y=LjvD!E6+yBND|$ z1&QYa^b*J{5PwS~Lb1s%!%ud=YcMHA)raa(_nQMk-esm`jisyUGNF|}7Z=%Cls6scP*~1nAfA zB)&>jFlQdu$@^vc^>0wVEz-MKeEtS1?f#LJ7Y=cD*b@zrRt|Vijq&L2voS-Ea2RaS z=ZuWPnfYAcgYLGha}|dU1c}v9>;Tk+@DkAXva8b|)EyzwutCypVS7E?#7oD2#TuiJ zKiy!swOZUpt&WVl@e7t3)F0=M%z0Ugfr*~U|li`TGQTngiIz_nXY|HStaP= z4(!uiG?fEyky1O7DC@K?t%K-zcT10OnsT%@-OB(xxfZ95TB(iJ#Gm#8=B%K?aGN42``f7?#Il4Id^X}pbn zk_j)iif(8vNqG?TN@GZdbz(;XbIMO7o7xpZmJeZ#O_EPf^J-X2| zy+29r_`LE|U3oXX1R%p_PEW`e$bUEe(f<(1+*=-QmVd6^@MxfWCUebAF;iy6u_^M= zs%&RHofFr@2(LthEvZSNAhv-%>?B*CxvuX8z;}N%P(Qrg_lb@WG*t2*EFx|ImIq-R zVm|6$+4pr6fu-+!Qlkgwoq9hFpobwxMHgCtDAW&-2c}x!pllUy zASH>dnRiiI(`d$`$*WyOs{1`E$TNC$5Djn^(g!=oa^b0VvL?9%*sc4mK-@g6)Tm9O z5(jr}3qL7NG)n`TKt3x*v?cKZp||Lm;zr$8cMT=yMd#Ff?@;*>%+IER1MsoNf^M7t z2KlCw@_eJMO1s{%h~%U>X?ac$1ycaSnuybyZ2?q-Io9g-j4!0chBC73jEjJ#^4qy8 zOA{=lfR)ay(AaaeQQR!sU_HA*FbO~%d}}cw|Db&eTF)*QTI9NV7N2DlPxmK}Aiz{N zMc=X7>K9GAjXJ@JjA<}VDQ6k9=qe4()(|HUY)~cnMRUB9Ui>sI~l%9t3YZN;HVshVut_^M%ZX*4Q@4?hLt@c3q z3^51{+$Gp@2St(vMgJh}afV1r{_-iFt5h7t)wCyCMY~g)cyA-$GV5t+T4=h*dT_`c zb1N!9lVCg@6BrY->y++2lC{wtCD=0>6q5f!QMn*V;cFbkr zfwkse@k4v7ks|dr4mUfi(Djp;EcNJ}sX{5G;bdlWf6;JWgJer-Q&>N%C1TD*Vg^#l zu?I{^b-xkFkKWg)k%Rw7)Bs*O!{YFbpvrL=ARn_A;`lz&q{@?qqytjndrz9kyF6q; zh&}7>Q>v@8ArK)UPoPA8X-j+@BH~2=<;9KBVnO|Mqp(`53?9LI7Es6G_Ao03E>E)R z20^a5hq}R5$IjzCc6XSEX!yvrU{WEkBU<$D-VL?ol&5T>A;UeG`mNz1R!RIz2a+t? zOG;H&dwiY|3WnJWMxQ1sME`NrcN@`IBtz~Tg4Fd=Bi=JGZI$~rS3c0Rw$37xk0=o~ z7Sy?x>3<#imCES^-qXmBW_WMID_%Nh57}-`K7khg58;im9RR#XF_YT?f*7vSTR7NR z&>xfX#*Mo%lU?)#t-bsYK*C)8JfaC9J)0G$B2bfID;v3#=1TI$D$}7f$@Xx^4!(>g zltx~AdCEiUrs@wB1SO7?T510?W}!7ZE+TTN2yMNB=9Sb0M1_!IPvYy0A`JoezR_!~ zAznD1)UynM1c~PeWocqr8qa(&)FIB3tk_ftn>6$T+Nuv1ZiGlj*KJFPXK|i@S4Qmgb_IH zh_vtHBx<+{BM&%LUx$lVFa7aK_ErZIH4L9mSnZERcs-cKti5IY3dzt2Msu9EI>)2J zuGZ+V!ml@xXiqS;#HLj#Nsw~It4}ZZgBgWGoKGY@kjd#3gc{^dYJ|)GQ>yC&`vyCx zc&~c3d76&_y+j11Sl5Y@F)XZaoePZDTUSZ1686F`?T5A8^@}(0$*G7?0EV7aXo0pRsgAnelDp!tAxpM@TOWtAa9+RRFMh z8FkrG@D=SAqO??6<}rzhnp#?`fRli3xj{?kcz;-^-jMbmovCqcn^|PW%bGWXCOz75 za>?DMSjC_s-}^VHL^a%O8YL1W&0*!W8p6~$Ig1gLB;o~3s&K_yhNd$Z&&zHeGp!m3 zMtBl96&6Vl+mxeZ;uT}x0u!T*Xo&kwhxEhTQ&lc}nCbnW)|Bc7!=F8nm#Xd6hLhdA zpHq{~AhyKnQri=JJ!GCS!O=H^S|}dhXhfrw<&Pvm?w&RC5$=k1Z;&l0=JDnLk{k-M zLzQV@{#MUug6C{Ff`dVoCxfGV{#wa~)JsOTc4hR{!0IS2y(Kkk7VHhZuMb4cv?%?Z zBXIp)oTv5MB|P#21M&_JbRMahAXPzsdBe?d2UuDWneav0B`ZFBHaD*o6X zcw<^<6McVY>=9nRrXczA-eEIu)c&3I4Fs1t($aoH?V4<1g!^U33Ssz&pqrc=Aen+1 zV$Ge@DCQhONu;r#2wzoYnl64wevpBx!Nb4Pd>dd};9wi_;Sic&gL`v7CuIuc6;imT z=sIo6LAQ-Aqj&EN%nH(Y3aKPOAt6D#XD*M_o4KxB$s~xwU_$*6BQ>9Vm3IqU>8~% zhxf{~bTS}2tsBE(*`2@;57k!7?gDy#8;TAz=JEQ|PA(V*7-|#-2r-|8qt%uIlm+Og z{&WW+tvT=j{5RwjH{cAfEi*mIL69jI%2W+u3VJfH&VRA<9)Ehy;eFr}MF*zy^rx%9dE$(;q`Ju4wy?D6iDD(=DP4XyTAf>p(L%6NR3A-ca4JiQlb#*^*7EKr?phm?plQ7VC4 z_g8%YbDelw^J=n7T%08w_9{*6U(F%Ulk#hGxmf|bQ(;Pv;5Iu51$IVZWUo)f;g*bF zSZXpc5J&AwGvQ4^42Q#V+{GYR6Q>nVi63q~ZSaLO*$dXbMs*@O_-Ien$pV2Yx?l!N zQHHPlgkANjsdB?7Yq*HPrPzW8Usl{7k9qna!JzXu1AdzYEqCKOKt@>^;5b`H@M)I@ zIh7Ox1$l5dB!dav?$_O1pfi_C%Hg|Zp@Mdg0|y1GF`ua1pf*-2doQJFBH>%vz4?*N zC*&5Ahk*i(6!W$$UJW9-^Bax80K)a4v8#VXqWj^$wCdjz-vRIAp9H>8Ww`xhN>(7- zW_F~TF;4g(YSjV{KbhAzS6)ysbTX^jq9nBSamgU2$Ba|HGzRVCYT_#iVL4Z^LwaR6 z(z`{t$adI79_Ec!w9p*aGe#Rf?=zj(OZ~pY5ZcYR z{T+B5z`W-F$KzfI2*f2`_aV~83QAGtUpegjGU803rsHMbNjnph#?t{*5On>~Pqliw z^6knSe^=MIpuYdb_7&c*ce5_KL|HD9Oc+wo#vLv&JX%?xr*#z@p|X4?LsDTAH*~B! zrN;=6k3mnt{tuh*XzTKu!Z6_fnwDJ|2cs1p=!i%Wp`f33XE|p5BA)Y`uE{qzazcywqDolrM~q56{fJLtaLm)(QD$86wuJY&YmXQb4#S z21OyW<*VsQsJ4ch^o4VNd(hPLG^2t8ge~?`!PGVW&O~HM<>NIP^9`ha4v_WCWh1)? zqBg4x&C^_v6+~;Y520+x&r>^5(U{BIt@}~udDAr0fW#%n5nazlC z8S?wJPE=@6gBn;5o4xb+88+P$BY;um1u~-79E(^vUl25L!-w6>u)mMs7zPLZ@c8wH zpvQmuVWw!@D#U8!E7&MD-;qVX@&|{3GuTv&@jeI%Mw6Z zBo7(t^+GiBq7U=VZ;kfIfwm^HHbWN|jxov_+-KRno5~YR(vEAB z_|d>W>(0ubQtG^rcH3$r_||t;>cQA*aNo#ucNcEC#8C67Ua8own5urEdFWnQX8kPv z<-&+NnrbXu zztS>^CQdYm&8p^yjl;^O9I=;i57jPBJwl-wrn^PYI1=v8wvlqGVaR*V`wh?NOLRPQ zn6i_@!Aez66$F}NtRBT2>uXWRW_<*3UbsJ@SXfeRp_S?lmwqK!U40>bgl5sYI*oxL z^U%73W~01bsV*89@bd18#nq*qd|5^Roi6!9eFu_rF6da(A8ykoX3@T-6E@+kfQ|5f z-g&2y;9|kM&%S0w5KA#G!g(0&I(B4TEbmzpGWRJ%&<1jAsveT}I2(;g;XbG0y36zB zlrc}#Q-GogL6~5YJ}J)70JvD6nP?jg!sR7Zru{QPssOc6IYqEedF~7SrVpSLF6p%F ziPsOT%3YH1V>>EXK!Dym;fh)$-$zYtP-AwE zKj?Yc=**S!5WftmK6a%i>s&5rWwv?_MquJ6jUArcmSOp|-e^qh46CT4yC7aL z&>{L4O%a$baLV1-Xp*;QUFv9<4C2j`zqc&$@WBlg^B}qDzw*p~_L* zFwPUV{xE$@!tcG(ob#8IB5IDs?A+5+SR1|SQq3rkf^H4eN#8zpL5!j`s*bU8`!^(8 zG|V|r+BkoBC<(40deq-1t%Z49vB~9x7{pZU&4pH(CtMAKB|yPosn&Fc)Itug2I^aS zSRkzxj#b=7e?x2 zm=WHTi_PK`J39LC5ycE*r?zP9o#VtJLqaDW z;EPXi{N6X^ICKcF^M*z=UF&QCAElH`BF|zsTxQ66tP5^35g-iv z6`iN5_azf^Yn~dNKC|Dos%E`U&)+#yN+8WhO|0WWjEdScx|;OcS5Pz33w9$@sEI+BY5-r&^~5IKv316&DQW zxD?I#KybiDG|T}+R-R)vN{tPvu47@D2;G~B@gHg9sfr~XXAKdg_vEs{k}S7pP05r& z+WC>FKO7S;QT|jzjypk807PwYp-$Fg^XKd;vbHR`1MRue!ga^Ki=dSO7y&Lu;p+no z_b6bW1yO&HqtHxOs|v=7ORw_-AxA9^(h9M7dHiXM=x#;-HzgL?^uZ|vQz07@eHCyTX4!4YmVmxXzOk*$$Z z83uPr69$1rLQRF}VO1**T+-7|ACrvMZ+`}@bRAN*8(pQs_^79!%!->Aoc|-od7Y52 zXmgms|KNBm3nXeTD2jP6*=hNv;a7hg*!dpN*BUA!OSn1_OYt_S!P2Q=M8F?`j%QA; z&tBqmw++~S=8-Wm&ejv(@4WIHHAokB2IL)<9+p$=lgIS(zn0cL%+mmhW!kwNtU46|bl|p;pe`^L zE=2UP(OIn8xQ7?#MS>KYSCraLf0+Rs89s9jXg1b3l~ z4Z}hzLUWH3>~SjjcN*+h&(v{98P^Z<1`x`3Lzj89fI}lYeRz<2c{bRRz*1 z>KP!S29P9>AK;>?O1azMf2(4#@7^FrmrxR!Yic`xo3r-XXX$f8EcFi>71(uk(Td-} zGTC&pb#2Y^)Z@qF-WZL&AqHwdYt`0z>^dx#q74c?5pMh_S%tPVing4gHk~58#Z?uK zOrT+!pPXH_nR-s_QgApGI7c;@-MBCmSom~d{zNYgqKc#Q_S8BI#tk+EYwEH!c%;o~ zwOq~~mvsR|SB(J+*$qJ8sxw#LEYlID8A%(B!akui1=tv8L>>5n?R6ntQpq5yCA^WkRaJ%e@I`=bZwJpECvi`81O1q zkhXBdSm3>b0!{N%!5eXz5J3;!g93|eY(mMFPAUg~W zC&bL0;^M{w(Az?9Iu(7Nv)`89RRO8AY`_5pRn>N+YRx?24nk$&xbnIl!-yuwn#Sa` zGN|F--3g`dmuL8^^Kb`c_OHE{SAWoWTr&S)160<=r#TJh$kw$n;T+wkp4fR1YaVDz zP(=M`TYtyln4%3#nnNGIN8k^BO-?N^+m305uaNARS7^8Awj@{u9i}sb)0y3{c2a7! z5-%TO$)I**n!^(IP!T5ArTIyt_>5NJ^CrX$B`7iC301G|h~RtJ>oCINaMw0U2D}v~ z7Y@)FWuaj~)&eXPI=8g7j!VcC@KZ@Zn898i(2&Sw)}%I*eK1iT@K(eE%$f=egZupf)8)j!6AIEFH& zaSt&c0OP#uD?brz%e#1)N+z>^bjDzbhV`7->&UDVxN}2E{m$Hnl8Y}pf<{si@2^=z z+L910b0{*w2ti4O@)b>=>p~!8ZHw3vU_QDm>@tGCeo=%Aojy7sG*WTqXyM%vuMS&+ zC^dJ4R7ty8-|A3GH(ETG-2@%J8Bi6py!9GO?~j~FmD`Y*Put*KGYI5xC?t8GTk z&J{w5;I_OFk>qOchG&WIvA_z8b-CiT(({=lh(!`)dRdQ+?v-X*VQvNNDvMGB(}y#Wg+ zNS6u8=R|%+oVm)N+jP@dom>gckl!UHef&& z5t7b&5yF&%!EN)i^P=jcR5jtU_avGb`;4CXWTlkr;7~^;a94D(zsEO%!z|8Lb+YaR zdQs278%RbMOOMdPCOkG!x)_hIo(Wgy54QKN)iDUo5i=PpE7SvX#zkg%Scu-8aVUl{ zEHjPCFKsmx6VY;A=yLPk?3H$((+jpm!+|fiF398FNWhf~I$h4ZNbCJN)84M=tGnIN zc464rdo2&pd1-pvfRnFf6RBqmGaFR~Aiwt72fF1UFtP)u-uIT_YF_~HIO%0y^4ET$ zlwU7g)SV%E^Vq=sc z>$VJ!mSyI?zZ5%>*B{b01!Pm~6wWmCsV$AO83T~t>&(&Yi^qpHM!C&y8s=KpA zxL|GW6)ix2ERonqiN4c<>eg(&ld~#|{ouq;WP7JaGW}TmLAv2e{h3pZIhaN>>_k~x zmUzH=H9io`Z_-MeHGYM>ay*?gv?yi6?Ev7CyyG!h2Bw^E4+{%Gh;(>*bTBnKi=r=z zqV*643a4IW`dS8~*db4RGUB5Xm=J`i!O;V0_9HN5A{khamvHS|y29UFwpaV3 zXCqe5yf$U&m&vcdr)Uwl9KBGMMqJ1=0olzRC${}-e|?Rt5E`d^Wypz5CCV1@-7=#H zncz5S!UGf-K&M{&1wupP%rD8j7Gp0>Hzls5>1FP}914>6l7fwFVTGIty0UyI;Lizml--d&$&VN1s`k4~Rs0+kQCIvL5ep$$sQ(DPc;VIH;7g^f}zZ;yq@##x33uwMLy4J*G#`f z;&F1oxS8#@jTmQe{~@B!`Vc)oZ#i5k%y)(nu+G$IM|Coc*{FxkuXH*K1+a-u>lUBV z^>udf)sio*PT@m7eE%#7{9Hj@ROz!Uj=xS5DhJi@TQh=N2|5mY+%fN8!KN!V+aLrC43t&C>!)-L@!|vg`q0vu-vgPsE0SUVw8= zTDd$mla;D9eu7}{0ZNv@c*!aNCBY*krvm{dW~95f<-pk>5AJ>0wIdxWtu%2l<|88 zx8w@{EAtGWvbbyCZapah+qntn?JaZ2y-SX<7e(2q9_j|j;F0f$a|N91aoj(RwVApw zml6TBn8(e|(jQF2`Z9@dg4%Y%Rrsw>z63xTCljs1q}DT+$9xL`;&r^$4lC8ChWz@* zQ|`HJseeFr@G(9xHWgh%5p7w$4e5-ZX!9TsAkjj6xs23RqNaj_$JsFoaB0ofjrNOr z8F{CtNTkFN!Di_}YpZGA8H{|vr6Kyr2s%0hGiVwVP}mV&q1Dc#+B@Ah+^(kXYWk{FC3xI95@kn`>_<7V^J_~{Ir?*%UO$K~%5sf< zTCExz{hu!VAOFw5alo3*c^AR?OoUpu*oF!|CkFoj=l>lmid6Be?V~KDCz*Jo?}Qf) zw2%*4hp{A4mE3I}&$<0vHlo7W`nMAoX+|A-eIzU z$G)wkTlW+zFf1IrSN9k2mj^J4vi%BOP;w4NVuv8oNX-JP0$>oyd1E1oG25|qv`4hg zG%@7t8RZ#iWTNh&77p?61eFFM0xV(OBwj#T;4F=z(kyBe5B z_5&sCy2NJm?PCCG!jgc<3(ihsJZj}^VJe7LOKiAI2>t>yhg!-upE4>8;b8z66G@Q zzKaOP@r_MYs0Db(MVQtzU^|wkA*puSeGG)0HAc$^uy9TJxa~%l=u+EfyVgw$+Z{G0 zF;tg|aK}l!hS|nwbOj;x-6<2U3P!jjV4cqa6}&d(n8q>vAKdyRlj_;E4xVK*-VCX` z>342w#jsoOaSHKtyEWM&#>M-f{2iH#A6}%npTm36moKeD4co*fC9)NIA>db(RH|3q zfG%!NZ+V9G!6=3XvTgX-=B8lX*hDmpLXG;LDPYsu^)o^He!vQ_jl z6S^fM$cO-S4il5SNSDf%j)_Uv^#X-y&CmVz@^!%0;JJ*ODX5h|MZUAPvtU(mM+9ZE zj+{-=Q9VFj6g8=qzFhNxmA-VfLF~Aa%{(Cf^!EXyoZzn|4f$uL7UQ}z2|>M>a#*)X zN&6{vb6EqEY5G#jfHT2UhNW&(OwID`+AX*l!#Z~Xpm!&Vg0v|SB5)WR8*N3Zq-aer z0pp;|;81ZiNY>lObE?N3r8y*6dQw4+KGV&RFl$X7Wdu;AoVLvPIH0BgZ9^_a;LTL& zb1;S8(6ghipuRVf%aC7Ki8wh${czIwN|+g_Cd_loJkB}mwK$z_vbl~YY!-&&d%(p?G6087pAO=6K@^8w1R^7}96CvFuxEN> zf+?`C_L26X-wUAaXfjckVVDo5)D4c%uaMqkP4LNDF4Tz!i-SEcy?N&6IQBR7)qC$> z%PSzvB_cBVLq@$-o|^uw?!ycYh)o3$&S#!ulKr~w()|7Yr7X^Lo%tj*o7z? z9CeQ;n_93(dPNCWNALoQb_~HN^SOzUXm2W$r@m%oFF0VOj&4C9`GwIpizSQ+!taTPT zA*k0e4f=~5PYbjNV1ZyRC&W$1&TR>}`D$!6T-^BD7vT6QI0L@W|E6p584gH9i;QYT zV}(Z)VC278q}Md9Tz3L7s7_jBR`K~;y!1WUL&NkI8j#o359Z4@)lNRwTbLvwdnI09 z9~7k`2j{l&kpL@>YbnV8)s~7T{BPktqen29zyDx-?K!`h71#qO%EIu8@{!aBG|uhd zIfP)K&);RI1n+ zi9Wx{+85G<{EY0XmugcC==u%(x&2RRk@dtSC3B0Bx}OkoGVTw}L%28T7fpJ6(gyOR zB~(8i%(60zbmzf9^>bhu+fW-A1z7jmH90G2J_bJ9?gg$m+wQvJ=kpEIO8d8g**`QV zD<@wh%`FXB?yXb=f9&PlaTC%1EDTyY-YIvEV&)rxIMYqFKED0<-T9JN-*J0il`dhy_NeFOrn6V@c;9*|E50n7+MFQA8lPh8Hq-&VW9M>UA`l70%Q zlD^-6G1o>srknx)e_>FQOXwj@-FO!m{g}M9#JByT?^#mXET|@$ga3hMqMM%}#9Ey9 z9Nev@)Alw9j3}H%+P7+0FInQk0MevyO^VYs6nOtM0BiKvc{ZwmvT;MNvI@ffV^^n! z%?QgY$j6E#h8Bvaot%QY2ib@r2s%{sn{jyAf9{=%UvQbujB84V$NwRyTbtdta982Q zjweh>HM}KImx%kqm}M$m`vqp_T6Oq(6)6pYAK8G23RQX^VpMk}lB(nuDvHq+8K`s+ zahm|`V0Hr6CP$6D6#vi?>t!%Tv;2Z+Y3v`Hx0i#3&pthvPRt^g zA!jQSN>+uaJWI5_EEA9jj zlzZ7VCR-Op#{;%D@3(MEXamaNFKP=osH>Vk(;^=(hSfT?(dQFT<-7+zdR9)lc3bPc zf0)N%F5GdQIig~LYr86P87&XaY~W*f{A2U~tAi2$Je~rtzTiSS=$J}qDUxXN!7{1) z>&6!7v=$pJf~vr;GoK}Y_4R`HB|)in(#tR>g$mWy0vc(~vsd+#`v)Sq)U}lwd z$81Cj#n!eS8K%e|HP|bUAxLnn?!Cf!Y^kP4PCQsa+>@@>ZT={rrD~G#LcC%1N5Bne z4?Sm={38scW=Kb+CEkxkQKg%C(R~DVJ;=DE;ZsF$4<)^sIy-yMLzB5Dx*o_QXb|BQ`EeD!vt<6g?rovV#B$WBxt(qUbfRLW4sWfP6o zBwc3?&SOmG`!Kt?b0ZsX*)mjsCuRphB9yMd{{CUA{;Y_R30X&C5&X#&dI+cwh@SbNtk&0{7VBc?QdHpr=6Vr7jBz*?O<`Lc zX}<*D*T7uJ<>gE18~ANgYVS{Pgv*OdbfFld%v$w;TE#$8v|dxPyb1VE;=g%v+K56f zsv76f)t@!ASqJ14y_^Q!a@0boFfdmu7DHCsYO0RT)?AOTlqrY84!N%*LuCUF6FEKq z9e~hqbSXi1a9e}vfqgcq4)mLGkY`t?!-Jg@ zlzl~`ono2JG#d!D`_a)m_1sVR2P)voT;wldUKyt7Q3)tmk;^g6V9nSm;We-(iY^B# zyGQJf9fD0_CWLIFkbLU*v?TO1e;fq6w#z4BbNysa=dl+65BDO;87yar=Y7NcAmiTCW@)FwT3Dw@)L{|)IpI{ zJoIHCoG`LEqLILKR{o(kKN$bPgAn}}ux-^I5C6I__6cDzB-PU@9^nfFepNDKeo|j+ zkwx%HaXZQ#<}nsSX{j=z5dV|H#f~rq7>KyACC9SDH-L{avUW89?KkDOyS8EiNp#l;=5D`9w6xK|-Fx6o`!N6woApI^Mm8S)>-|2^5KPh*|>#`j(ZbD)7 z=w7&*WT7F<`Qt(i9Pzj@(Xo;QS#r_nI+4ygWS<57E^U{c@s`+l&uicFHfH_o!<0?_ zeYT_zcC#qZSR&XuegSPpP}T~$t$B1ZJ_s5<9*9lPs(*NMwxFdjPZH)-X7%{KYSfrG=u5w=zHd&c3me`MKKQT)@`8A(Ts=e?T1o{~>HPqZKW z8*XIKgB2KRxrjF~!jk`$=2yW{?uh)+Vyms^(b2h&WO}ZjOozO=F>ZG`eZfz9)$vr` z8-P|*KWsomWe$irAxm_yeB-BVMaGuv1nlN)8P=c@>DoF6Fga^6>TfLZ-s#p3lmYNh zq1er=R|lJxg(hIe!nsFWhz`1tw-^3UQb_94EbL9<$V9Bpe$F#Mc07y@n7(6;{C&5& z+lmDNJ_$G>!&iJ3(^1*=Up|8c|9r3vME03ya`nUr8`WkaFw6~WXdl8T4;5i z1oV7DeAt?43!>d`-?SI_S!1wc-zWQuZzm$>jm$qBy_<9Ni=OOB6^9SGr+~YzGOocI z-&2-PivGeJNUdPbRg>~=Jh6sLQuRsrMLr{p?B}4tV@jsdh<55G>?UZHo>mH~8h*9r zLxUbT{_%<-kZEAL;^%pLW9L9_y1bF+@F+G?b>I@_-~m8!rRnYuQBbUMK%wPg;uQIs zpcI_$(%pFI+R0yLx_C!@pqZzKAL)cp4!Ok=rX+y(S&*l~YvefU*hFhXA7p+fv_(Hd!)JRI0P-Xk}JpOqiZG?+Fb9@3C7Z zL1vQh>_4bNF7IKVB`vHqI<~Ajo!85G<%Z@&cBh$U?gaoqW*%{Dj3wNk;>R(|xGs*N z87j`5(hCuvz|5?{OW2!$r>KLBoRdSL-~3u3B-qQb4Z?6YX`6&Tn^aLLjAYA?ov4$c zjARrm4n>#K5QO-w-i66q}B*8=_ zO=OL3&bTx6uHUFj#bA^%O&Dg&_wuD}N3iPUIs>@?GTX4;I{>mpc}b(cF^;VKQU+Fw zt%s&bGq?6{8N}=-O|Xn)cGO{{F(KFj3m%-JW(f@R0}c)eRv?V1;uuyj5I;x1^0vNw zkP$z7J;;~a>{K%aFg*tez2*^BVOZ@!6;uT8K&cOKc`%+nsb%;D1@lFDK7BVADQg57 zTq2q-F`=9&-UJo`+vweX><#dNz9W%?xQx+lk}6VT-wj{3+gcZ*Q^K-2e*nF8L-8Eg zr)`~cJ;1F>^jsBcyBoJ$XLXNA1>&)dD_-)otJ(vl*hkKR%e_V976mIpD|(qY zepJ`pM5PnlOIFb=JVUBTPWp+%OStu(4zO`yE09w9hTUwbFg~I=uI=5Fa6^-^P{9g1 zsml<6C6%dvl)-Y@a(0QJyd(;ZJDg6}oR_0E>Lwam`eI&F_H2U6;ZpPtN}IBEu@dz_ zAu)F1DOmbWQxmG;E=4nkmJ=Mf>3=0kU?#=yzR{S_e7+{^M^?E!`@U}2GZg}oh#2+q zcf!+~kVjj3QTLXwWYb#^{ghC;gpIa*Wu7@2^miUU1MHCbu%3@0o^V)vn-R*IN@$ZN z?nWa*y7#lT*ba1M;U0u*e4Zk{K&Qn{KQO3Ro8g+A&l!mAHsJj#5N?-r??fM{ttlhLhD1w;Xk&7&A!Bl?Pk%}#h%;(*dwkHtgN-Z|joeNf>#xmR; zpga?MgqC-{Faj4coEb1T@=TW5wdREC;3TCrwE`gOJV+eNroa?VKFz$waB*At;p*yt6RvRtS+*Mde2V9 zr}4FK{dmgLiJxs`M)gR^DiOEmc^KnN?GKFeVE!VtYC=>3z@+3*)ih}bI&Ne$f-G?lcYdR)K z^VjWoqvYBZ=PNFq0dO`(9N)!5qzteWF)4Rs8h@pHG?e8c0jA&qa2;P+nkyq#@rAC7 z03BJ0{%R6W*$zc6%62O_G~sdB%WqxY-D+xx2|j}DG7k_$@Io+ILo7tLAsj-gjcFWF zZt$FBdckx!e9_l^oF0P86bp^lhAWz~B@3Sy)r&)tZe+yI$R;V|M4H`)lvXF)a9$8N zRdndGf^d7c_4UzKRol(43KQ^BSGaYz4oZxKYT8w1%}L{d^gj6d--4tOP^pU#@!+M1 znx`zP)wODwbNP>#G0gLn%t$a3V=xnOC&QP4-#i9wlc*SPGLezH6V2r+Ok$8tx?LCY z3l#-X5%=hTm{5zfZoW2<@5~6PM+C&yH^{;@vtEHdkH#sW(n0eRD^a7vX*M#bkBd#6 z)1pjEwQ3pI;=Idr`An>xN~JS!;aqNHBA>n1nG#r1{dSbeu);$UkAs}gLy2g|PhBy_ z?FPE=Ks^CP3!uTp_|OPr8lMx%+&B)Zkax#_kQ<3)=crwqhp}*zA8f)LYM@oNMre-2 zL{K>=cqbkFTbmi~pd;3DR17sqAF?1fGGs4}NGLs`q+P-QuJX(lC^a}S_~bG1a6vI( z`40a(_S`K%`h)!CE^l#9di+KL0krmkUOhTxiQ*Sj{sfzt2A~iPtlq-vg${gK^%Q#b zD}lMhVLssI@dp^;-2l%vK?L02Hy(y~hGFLR?!uBWp#uw#Xmc2)s{Qt8hE~^r&Cs~N z#3*{5j%%Jv&@(akKCDA~Td7MqU%;!TW4l0vFgEa zuef%C=}sbPYbZ^-RJNU+PtyB1*WsX?e{61Rz)V7EC$AF4SJ|4GAemad>^_JRic~jZ zAqZ`XH=YBTdmPHC+&6FCGZ1f2afIG-y|Ibp)h8DfgUz{^3}|K)N@X=2E+BKMGKdRlPTSj@)^Z^*n| zT}+~J94W>o(vqV;h2{KR=H0!d+HNGY{rnrlZu;@K|7er1L*8*uynm7&xR(V2yuNEz z)nB(i4Jr4Ly*T*U@?l(0fA<=%PcjN7n-2uynWhL0wsmwDD{SdC1z? z-7P-b570DY{pZTbf79}^fYO=Lmr%TL7+s`L1XMi4*)+bI%R(UMk%98oWo*BTf(0xA z*;o4wqqPHtm|GpOgI~8(hcWT6;L*_b<7jfC|C)U; zUFhSM#uafIJ(Li`W^qOr>X>7EWNNT&U99|)c*{Npq}r2OK+my_su zMhhF2=Fn$J_C!U%_uhz6dLf5P-Bv*>ZKLE65EJ z_8lV%<)sQn16D;xYLu@@*e4Pm#gu!9(01Qc$?WjDLFT(^Pw{a!gbi7y){rzLkacsb zu#juVaO!3zb{#*aun_LEFuyB7K#LebUn+lNP1?!jWT|2Y+!o$5HE2*Qi**sYGxzlb zW)gG0PY`@ZRSddBTrm_X=h1d0`JN^7xPgiMA^IkVE*8<{YN*Vtvc;--&+EU%h_MkDmBJP-Er(7Km{2UyHe zuh+t}GBCH{iN?*IfMt_f;#jFd*~G$=>QrWAXjQb8_Ch2M;EE0o^ao|nhGX@0{F7|H z4J}j5W*-@r77vWt_JzNokYb2N-uyNbyAg_qKH^;LHXn=o&nS~gbCat~k?-Bg|49$6 z{YikGlI1^L4!7I(?kXX#f=LMxtp?QMPN8Z?^=%_Plb=s)Ox?Z@4BvpfmGu?_I8P#Y zs>mJbnqZQ99YNpTOW{9rES~O1(oA*rEeLNAFK1Z(+?VkJU*TJXjP^t}|TwZ+AQvbh}+C z_GLMY33t&I@Fzk*B#5qF8vsFZeOeVrLx4xQzc^)~O_OFps!63`o)}`Zvxo2;o41CA z8D9%AEbiKvx7!#?0SW+!JFpW2Y7;XUEQWXJ-zFPlLT3LwCGrkzgP*4M){c0htL4F7 zr`5;iwo2*R#G2d(%sT32EYOjnA>EP5*GHXJLu2chzI*In*-&#t zkIov~ATpwV+V?-x9cDs@+00EujfHaJ#xsU8S4B@&P`GQd(@SXj!Ds`_5^e5BVzW1g zSr~B2l4Z;J{h%}ROWw%29^t14y;)hJ$r{CuQAw`6SI?Szt10$aRnp%hzWD@{nO_r4 zkoS(_SV&DZ3rhe6%Ek69TAZcTlzXqP3|v*6Im`B};DYG`IySB-)h3W#0v*MZ%g3;> z^)Qqz;kf3lC{xNMzl@L}*Dy04x;6i$`8!;|}O1?_hKH_wDDi4dwT+CNkbyWwp%yxJ| zyDqp%J!OElY8^COxLagDwvgXA2U$ldG`kROS#&3O&;qz9d+vd>tE{RV!Ugj^WI{uP zl`n4Du}|!>u|KscSUWbXF86euIoWDb;u6=N`hobC+hijxKXEqhErZFOQ)Lnl=nb4z ztjzApv)XZid$H|w@ii6tvd{L{%+AJzuoXI(LTrVG!QL5ThNE^)O{KHp7a8f}DTup{ zF&GcJsHP@(q+*^X{_Gjj(7Ke8SY+M^s-(!^0;OrP`8ITO->fw1qj5_ldmcxU?{kVy zwnT$X}NglC0elP@6LV?b+q*WYkNscg;J#D zO+>iksb%!*mXozzPBPR_E73JtPp70n9_8x@T0W5!*gsY6_y%UXo0^>(^WX$a;|z|F z&9Z-9P1mLw3)|tU11(JDxmPBMBN#jSb1V~?Gw+etB)_pj6Im>v!yxuE&Sv>=i5sVfhh#~IKishB~ok+1C?Y2OL9dA^hBvhtNvLp0;4EE#xVMA_n(B!MDI z(DKQb7F*nh&v1HKuU?Ly{*p{uM9rd$D1XMQ5xaL*kx+V#QVpZ)Dg7`w&&~;ef#ljQ zHQt^v!I`rICW86{-G;?m9kEj=8+v7$^*oT?y0fIpG}42{G=> z>1zVR_`cGdY@*ucbxHUKo&rvW;H`I3@h|h{?avU=(SFU+4O^OtJO?<9B0r~N%&#RZ z=%j|M3W6!3<3Rdwy<*s!E3p$51Fd*(cZ^`5oO+K#1VIFb!s3frS$is$9~V)fuR<7D zmj+5gIAUT4Ats4`gxzr>c1uz9LdOOnYBn!of+1k#ZUJ)7CJvuBH?yC_yuUW*mCcyf zCcO?2G8cIQ)jocgDQcvR(;*k{P)e|Vo=)7#B>u;%3UpIpciCD-3*df6u)*w&@Pdz= zXd##BUZaZx@nf1a6J_SMM;6=~WozmZ2>2fW2EMt|7BKzIV}hi68PfQ7Jr=uu9so}7 zUte-&4nxdivz8ARo$t5^;pnSqGcsWt$d{!0|CbvXwp%jzdF1YCdt36kd;%6W5=DIx z07vMNc2j(|KbaL4G*b`cyDbztftCkwA$SS8fLGk3(y={=D=%2XM_>7n)vXr8gs9;S zlD{)T!K&b|j(<%F#f^y0L?*4a%a+1?hc`IIFNANef>K8aqD*$vPkUI!(K}C?i-a24GG+hYD^skq+(&CSDX0Ifn;2ZxP-wQiEK6phG1)9 zNKqj;*$Wf46(_32<7Bd(T?bqoINd)}kn*`=E!_~ibuP@?{bp?toLOZ6rlyhqDFIAS zPUl6oR!ee$(uwE1ekt82_;dY;V<~kTH=Wz3@CHErNgd)NY1akwY}FHQH3o33ruqPJvd13vRJMbrcns{uH@pAAxQhR zpUTP4!$|NNck4vq_$ESX;{}b1hCpr#t?chZ*pwi_H0A&^NbZ{bW-+&yCjLh8DR2?E z@Jj{ZH-FMwJxPB`V2;I2m!WP&)QeUUKfAb$=xD!oTh`e}GKh=iw@UYhye2`3R1FDU z6Z0eWwU|;pS>x2HabVMi;pPUNVX)h%Z2SH|0V7sbJ*C>^XI0>wXm{FkLO3;mOn+DcBNzpy8dZJMyna=ibxzD_!~ea&-l8OCZ7YR zjtVta;zRrs3E2Y%#inhJ$0wxQ(-` z9Xf5s&B(w4X8Z3O#+0=gz=1C@4IV?+=eW_rf3AX#D7Jf9C=pg59==b>)~# zM1~@q=56fLRZXiN0r4CqLLO$=UHLRWGprIu+HjxFTwr=FSYx!Ye^u%5kGRs3RetOU zw{xCjv70`(Y-Vn?5(gw0@v5P#aq|;bt5aw;NYt z^##W&!4LH>{cP_ce(Ha}sR{A(cY7Vu2RA`3bFaj_3)T}BdZE{b*D7$7MjCRc7lS#F zu6{|2HS5tZX z*An^U#-_cPC>p8lcO*d-<=(x-DM85f_1PQIT)a!ZO8Bu@@o|1Gk^V-j68XtYObWk# z-7Vsh1K;?Y+9Ou1V>Kt{_-|G&mc4^1k2hm=yOVtjZmhtknhdI)P{2hGU&=l3hMKse z;fN=7t5`5ZEYF3hAK69uClk6dzLow>@F!Mf9>}_YT_H}bV}7el!VGP}AF}O*4VcY! zb?2toc9qN^3w>Uyw(anIln=lJbGpu4RXI*}1WTe_N~EZs5{%Fhr6vf=0Gto)h&^D~ ze8Xn{AY90=@6&D^s{D6<8GWssu#)W*Toi38XUX{hs?!oc$}OtlN(Rw51TJJrP1p5tt0(pbN`bxXHqL(W`s z__S4t1Ype~ysAg_Be!(ST3vA{pt~*^hBg?|_WV%f+e}t6d;ZDf+uO~~%3b9h{&2t= zkJnjZ)AAlW7n^%HhPy^x3VHH&+UI@&U0$YrBfmbU`S5xdCGLB%&ccSpQ(GM5DKvk_ zmt#m8agxC=AECjigF<>N4J0Dh8Y7Y-9%G-+#U8K!lf;nL%2%B)PzduUdF{A_xD1?|f^2x`}UQP&1vYUxwsI99UDBzsB3&O%a76Kpl- z)0*Dqq6IuPf7_C^L`8JUpJ3p2Q*SFl)m*!kB&a6g*bFhYg*newK`HT7XOqUVEO?@@ zN4`jHu#$el=dythVGaGaNe1Q6X!Dm?E6V6dn%5G2^&rT%>EL8V*1psHbbH4b^RHcHl#ld6U-7r&dZUJ@IN$i#{`39P+ZXB380RK<+ zmGy%$d8F&uY*$@nM26qG{vOsN%XKO12D}A;ZD)D$L@>Gx_j`Vy!tF-9%1S|6_dNr_ zGnb75`N=XL_bWz(b+ZpGu!m2B@< z5x%Kn90240uz{BYg}!I`SqP~Up%aqM82iHgqM^vr3ucpuohm>hqmlDtYl_rceFE;{ zDQ6{5q`DuhCY7z8U$MxVS+YOenQdE~+SQg)+ko@ihg#ohv=ub}pqYn1?goJ*dLbsEOu(a{)-z{~gCdl%eVo^bV8?tx65o3}H zMz_#aTTOlY^D>NQyyrze=mL*7{v*0R67<~sup}pKRaFnaM}-K_&qWe25AdIP<@a@n zTd}L7@^FU*`{4Y$ow<-AcZmq7QUR^1+@1K*<$=Yg8in8zkNPG47dFWZO|i5(SSoPs zaLH@-fIpSl*TwlN4--)dPC7!pi)%@4))!tsSl!|8uiz-F5!1-e=yKQ0qOHgtDd z5!oBp3DaP4vk_T8w?UkDv0G7Yv+NE5I?F!o2i#n0^a7^Q_4m2I>*;uH32!6UQ1 zc`l|`m@9wkQN19XQfNVg>>(Zg>b#7&Z66f-m26}gnYbdEZ&$!X;Wd|l15pX8tIyL3!K&*G7k@2ZKz>p z+?O~@oTUqWDX9425(w`PJAXmV_Z3Q!zkjG9zoML@sA_Biv*XQ7SpoO@b|v5 ziV%UJG={e(L6S<@JH&~Le#627582l*Yo3eAP2eoC!#qn>eL8Q1{KaOlcuxS#EYWLc z2$J6^X_6W+?O(KK6NFqjB9pe^f8v#pS%x$-zn%d7uBKP(Yk>&>B0%=7A~{98Ips5pC*ND-YxWh9B&KJD(^t8u~Z zY}itsOiZn zlcV^&uq}qF`z-ZCI~!h^77dk$MZd$=e|oBN-AI~5-H9l*nu-@}{{wR#>?^<#Z+3>; zk8!g62*!Pl#_;cC%m@J+VWWTrY}7~r;X9K)GW2VeXXiFkORxxwBx_bUxJPUfR$g>@ zzy3!7_DnAs*Df2XU>H^;o^em@ggd*q8vTb*?ZQ$1*d(R%aXC}pxHs%yKas3) z3OZ_MWopdj!64K&H@At-VYCEWFp5;OfD6U+UB4@BR1Kt>L6Yce|L3L~rs1Ch8@Y<^ zzar>*gAdBeMAGUtx=`=CBZV7&Qcy@Dr!rMIdf& z$O6c$Cc|aSpLqg9>hZ5p>b=puuXe=aHtI1a&Zo}jfv3UIGd--cwtF#bx zewIeQ-@)7A@&K@V=Zo_E*iz3Y&4nsaH3C5WXtYS1pU93p<8eXYY!#xzuRb8dckKZV zH6U<3oR+bpU07$xLKZFmwE&)Y4i!o~B_R?FAl;M*^H`}k$(0sjnMRXupvby_=FMpDSdBh;pppFCsfSSwXO%*tfFw44kH0Hj3 z@_Z{D%gFSJcIjE8vw%glD{DS`^BpWl)1=hW@u4oBPw*fD-p~5X%sqX)lrg|CY|T8m z^N994vKylB%a0YMj5g014LHn`wAlYakaE1#2ZRT1`($)k2`&OXdqRd(GmkqIs`ks~ zpK1Q^-23Qq@Gj@&eG@rS@@kiX(54UxG^&ajG(u)9BjjA}nP6 zQeeIR3fSr3GI2G&NIH>w_rM>8IF#b3kHL*$WJ}=a6Z}luk5Ytw{AB`!2-u=1uhm4b z4JKZ(z#{g5PWIO|9{yOymg*iIN z3UEoy)pDj#Izu^?@OJOhDIF69_76Rnh!j&HyE)OLT`ngUeSE@#wxfI_Z;HvV^}sFl zExvtAlTBXeer~0*LG=I~wLNZq!hV}rPeqNn)}a?CbVXCOx5{3OTGIf}o5QAt8;fJn zm`b3C#`RDH+~zj-SWocZ^c9z`?gq~6wF|o>?jg!Ni&##HwXjFn6oVUmEtp)?y=A$=t`3bO#wg|ju8|bDv$P$wr-*mxxe6?M2{ZG0@;7S(e;H{JIdy$}+qX$5S`O1{cDK#6y>4G*D;D zUM?I2RuL^$8DnuXuBz>Q$z-j{`7?qQ+~Zn}Gu3dI6fW3gH96VM z;~|((3cm;LgMxCSOA&kXx;M8F6|ek)Sj{rTRR{XGsgGmpV669(6YsBmttwhOI=1)URF?54BZD5o1H|(()J8=a?93rdfECr^_WT8&|E0AzLSAfP;m#xN1*#HUEpo}?p&ZGlG$V|0-u@seINL;4~ph>`A^Z1g%%|?CY5w@ ztJBL$*t~ZLUdt1p^m~qJrq~amzB>bu&I??(mo%iW&6|Ea zr}7sly)HKz(|uO~PVJI`*L zr4eGnuLmu@GwlZsRx&6?03E;@|$U zz~&5%JYk#L_J&nQsz^v96jt#-|HQj?k1Sy}bz_5Hgx++B z;8$yA(RY}FCcaO12RoSXM0mhpaBB>Ac_ww}Vlc%Jz ztaE$c8IorWHld=WPg*uN3yf+zi+(O8((drzhIny=y@p_jIq@a|F@AE*Mp5!zx)25` zXeDd6@Ri8gf#8Je_pQbicqb$(6&SI2z!moi=jmB+21x!q?{qG>k(6_7dHdQ*tGZ2y zp>BOYu~8towF^qQaEGO4$BZ{&mXn@D!Sy(HFi2@bbOUg^8iB|*XFCT+FswmPa<{(i zSynljHC5p#ef=USZhJIll2n96F zoz2Od(cH64(z1P&?i22@-VDk;{J5WQ!z05ni^X>)RGgDFk!qEHEypH_kD(9cjl}aH z`RSY8c};pv=>H=7djo+Xa+}a}LJFzGv8fOo8G9_ZmDQa+`ubW`cEfe=uG(<}7b~C} zrT5U;>=a&o#tN@~dA#9xn4&RG8^)e$Dlpdbi$GyJs?V^lt02QXs4 z3te&ve21IEddIwv4o$`IZYlEb;LX$mJMPVl4Rj!kF zem>pCA{P>nMr1_IUJobzK`4LT8`tt^9QZ0E@`wsB-{BMHWs*LL+oJF{4lV?s5i_1h zFXrECm14($>xPoAZfAg@MXnFY@gW+^bj_+Ij2okwI9FX(EaqGEtR5${WO~{@2l;0g zeJWs84apFGWkTEFE9-?e#XCQh`S-)2Y%Qqgtx09YpXA4nNZmR%^w}-er;R-(yM}zkA?=FRi9)%^JryWnCist`o@A(Yh-nbl z173UM%&7h($FNQ>J)Za=L5uj#Q=f84V~|jjq~SyjU5J}0W3WAHT2d{r0%**UQ1LiH zMYN~o5#g}4qnhZ;tfTL7+m=-ZppWly%0xArO(Y2%byV_$qwHx#y3FR^IJnQKQE!3! zgW~G6l6xE4W8g{bmD-03YZeq1#`$D+#840HG75(b(%ZfH9XE04CfjutyK4I1l*G2h z0(B+4KZH3~&&*gf9z^!Du8L1gE1b4&TWO(Et$yrG{oh0un(ox`!A3s4zV&4OnsMK8 z87NA2E5g_I)B=g7Ee(aw@LO6Ds-_gjhd25w+tGn%1y)!_txH`Jtl$+6dScRa6q)3Y zW~8$%tRy=2yZ^q>wj}z1cQ>8F*C&jJvlMjfZCSOKnT;!840>i7IV(AM8SgDPmVel# zV}A`;UO=yY#e90kCIXQ!1y&`^R(=HRM}c-8`fCRnKaB`Fn?XA3gkF-O^SiH~WUXCr%^F&jlJYhm>SO3Yqn!TRIk=P; zZg1Lr;-SD45SnQR5yn}^qCBpTjbal>4DPBz34}8r}Bf)n#bP%&+&E_{fN}~@ST80UF0ab1489L-kgu(q^uci$nOd+ei zH?Nr2&{53mpr;%TO})~j?CEXoQymW00LB1W)exK~9h~9Qc%3s{th+j2F%T#yZPt6% zF;+3YQ8+t&x9ZhrJG%tXPh<@grGnGN5KDs;uK26}TFxh?^WvLv6*VGL!h>ZP@?~R# z_DY(yV0Sf`k2t=!)b~h$ga!hhI|ZN~H*Xat_3Z zZz|lBRL#en6U%RkQBA_BuicKoy?~ zu=Oe2&tcz^?SmJw_VI_X9s?n%S34;KKvABGR*k+FgKlGO9K7I3IWN>JWuM)AvArkl zy85;~zPZS_E(xGvxPwpF&7IU5DvV1Wp1$8ls+ZVY^1nn7RjV)4{QXe^d80~6+z`xM zSySKeR8G*XGS;7kVo;^C4s3q`#ds`4`1+*Rr%5D#N3G;KIkv-^G-=QzHNZQTjyipd?%V@UcvLUe?4R<9DdB4 zfCgCVCFU~;e2TfOJy@DKEl=as-p3bq2t9Q(ceVLvtdh{ps3}CcHVs&i-Qj~o^$L^E zN37o36eVU}0de+ZlGZ=hw|r&$Y6JZ`Dc@csGvo@hVvuYujAxa#%5fF2CFaT)f}rs6G1_D)4RsyufCU_%eha%)8(WjuyWVm*AP4beDYF>0 zuVWOR>sD66o{9U;Nce~LgM0gfK@h4$o5a(NB)|MdU$Ybyvy3(H@|Go1bdSm0qdR|2-VdXp3P}Em{ zw5Jd8S%9_(F<3$M6Eer*W6}jvI+&2`^&*cpZ|;ummn4}}9{>nE zh){*UX`yJm{QZTWC(pLo2kqk(Z-2UXTe6G~J1?3vAI-_eB&a2+D8ezeovw-4JxMPY zS!VSglstg!hw!ASLfc?0oCNa$=_5e?Y}xRrvZ`A+hGCuXEbF_KPBwFzd?QJrQEe}a z1n6I~`5iqpH)i&iY_2MhhCzy{tw8&2>9=uZ)m(xJFahYlQR7-#M>SMh&|v6@JH*)e z#crYe8s!U+zAdA@V)Q#HSM7H$lp56+i-^n1tJ85+p1Nhb?Qn#i&Vz=)@PT6lttxCE z=ZqZyIb&mH!9Ho1_@El;8_Z2X@K-L%?ngBq8%~n65fP&EZCMB z6C3T~#WB*W;(zPdIO9-{CI~}8Nnv~|O+Qspnua#|1))ui#bW%qg-m|eyxhU8im9ju zeI9cykRbkS=7{D!$_I3S>Gh!7xZJ-2G@n#a2=fe0zJ5`J7vy0Gssp}U?mwEf4;iU@ z2UmhDjHBS^;g)|apbwZDunU41b(XPOROqXL?O?>kM{l^5C@B;(;=N_CdML6u`n zX~S=C0^vwm08-=&JDFe@&(ujUi!sWZGhby8EyFN9mMo}%^;_BT;Qy@2Zt_@un+qbb zq=H*hO!E{JLb$S>0?f~C_gmC=dlSr^tax9dq6Xe&K#d2wLYPp%{#-QG?%AtMz$k3a4Stov`LErJujQ6f$xBTl%0Ab75MXq`B%u+ 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

9(Qe-GGn7wV5d^mp4h7u>eY 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +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 +/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 dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack 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-list=RKN-dnsLookup new-routing-mark=To-VPN 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-list=!Local-Net 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" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +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=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=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=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/20260526/20260526162002-Diff-Config.rsc b/MikroMaster/history/20260526/20260526162002-Diff-Config.rsc new file mode 100644 index 0000000..38d20b6 --- /dev/null +++ b/MikroMaster/history/20260526/20260526162002-Diff-Config.rsc @@ -0,0 +1,6 @@ +31c31 +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +--- +> # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +3132d3131 +< add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina -- 2.52.0