From 8f92b4ef7e86e91192cb6639abd4b9f5e201a8fe Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 20 May 2026 22:00:45 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 20 22:00:45. --- .../20260520/20260520220001-Binary.backup | Bin 0 -> 252033 bytes .../20260520/20260520220001-Config.rsc | 3445 +++++++++++++++++ .../20260520/20260520220001-Diff-Config.rsc | 18 + 3 files changed, 3463 insertions(+) create mode 100644 MikroMaster/20260520/20260520220001-Binary.backup create mode 100644 MikroMaster/20260520/20260520220001-Config.rsc create mode 100644 MikroMaster/history/20260520/20260520220001-Diff-Config.rsc diff --git a/MikroMaster/20260520/20260520220001-Binary.backup b/MikroMaster/20260520/20260520220001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..51a6d260f9576b279c0e85999f196985c1c60862 GIT binary patch literal 252033 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%0A~ai~&{1Cv8Xw-p@`xd~p#0QI9`TtOc-C zp)mn|hh`-YDAF9WbEM$?48AyVsPEfECCAl7%&o@KA(<4YEN7zV*v(V!uN1Kf7S~+x zv#f;OB07Q{d$E4*1FUn|Ugl`C&$ayXS*9Bh5Z*C|>|gxYDOOWwD}lPk_!xa7GE|Au z3VD<)gap}<%diio$bxuPQ+;S?0m*CQTuZ&i?-@KmVGP38mbKDe|0G^BQ8CV7T1~Vl z3l~Qtf>8ALLx*%UgI3UTPP3AZKl7z2w>-{neH!W(sdVDOo1|iTeRpHrxH!!_`220* zI;>xJ|D2s8D5kF4zyoR`7N2u*Tn}t5v?Ul%r;&K6k=5gH(NaNdC(WzOX zJ8_b9*nNdtg4%V}`7(-Y)Jp(0VKKSmYbcW!+({*uiDtPZy{@V%P3oB(Bj6^{lbkYQ zO$=tg1~|yD;{gL(kCte`|Cbx+AqC}I^*FnLF2>_xQ6$nmtVe0CzaPFqSFnru|C&|6 zAC!R)#-7F%A)z40BU8arLIU$&>pnW|nVy4tREC$@veAeZmkHP1G%t_qM?4Yq$nP=xv&URS4=7y#TwO{r0;0HPR4^x zx5tmlqY2urYjokMyVQw*?cr@zaz-kU5muUTXq@aR8>>Smmy7vz4UB`HXGr20Kcqmq z8;Xppsk3OMb`${|bP%p29uOCvlhAr3QESB-*38w_vcoN zeG50iDXstL^Yi|Ynqj0~RPp_7(fH3fwvjfFIzj=O28{HTR5_p!Btk2#U-WTFKOXS zzUnef-TT)mK*exP@H;`c&*lXd7d@Fr-&2vR0RU11rd3UMziMQ?H2+~PQS*#g)2EuK>^B`MX8 zBo~0dj7)~s2HRcq&TqACXX`aGwkVH+Q6;R^D%1P1aWtIPQS7;~^p+-?FYc7r0+)%# z&HZM1F)7(M_i~QYj09GAdz{~sN)y`lU~x6ZzxlC`6#s^jC=3?waH`|FFA-d?#CjAJ zL~JhGTGAAu=5?t}C=@PwH-4Do-T*2WGLvw*el*d_{FtLlX8@B3KT_an>nvn^Gm0cG zlsX3BDAAeC0po0=x;i)S2+`A3R*PzGkHuUXLmf&o{21cMQb{Xgg_sU&L3Ks2UNw-8 z`3(+92LIUQJ0(-ZG{!{YMOFrX?^o-16;C%tX7{dfxpj7%FKl9IRPDX;mO+S$SE zwuEHlpUL5gCu0Jdy}q{;7*+###p8&ZBrI@BK`^g8+z*&pQ1#IG`d6U>VItD zeqcLifL1PyklVea0qaU(XBQ7BFm#MUnf+>+z*7bYce~1MrJbK@M{SPWrWs zWiUO%kdkp>pZL-^^hf}F#|KH2TQptm{cL?h#Gsywm+c&XUhmY2PLLK@2&sQ6{VuM#OZcIW757VQO^qFrC_s`Aw7u(-@yuX0TN;X7F4TBscQFtX(ff9FMyU;OdkK&vs|&J)^T8%dg9DTaN|J1L59TLU_n%U>gZ{PC+-+Vtc zMLKvwfvVM7n-;%(3=?S8&0MEeJMyKW;~eQ^kU9{Shs&v&@lK&}dB`{p^OETlqy0qKz@#aGZR1$Ec!*>{Q0^e#{uxKeDRsm$9GGiyYYn4GghrH9qu<-p(=UMkUDhe64N8#i?jP_6fgw)MWOs z`r;J`k3sS0j15zzX;tdUzC*HtZ?d*sRXMU9Bwt7IU;ngvNBEo!914ygQe2Zlhx;kU z^CaI@A0yB|4V5o>t7>#y+C~5iM+)?B@kh zz5KgmN5UCjz67m!15+=Xs8+~*6HcsIr8lcSEWYW^91UG=L^(@^O#rouo$-LJIkrg; zz(?Qzgwz2(fYSYaU>{IL^?*HdF{FX@79&u09W}jvyDzw5T!xH$I;ZkVf34T)QDOkX zcI?xs*aI@A-`A2LlWcJ&?q=x?|c64}N_%_J<#0t-_ zoB?uy12u8CGP$w@P;n~gam#gy8pH$d0l%isTx6Q523iU9Wiw|k3U|zI+j_2o+>jb@ zp`_hw(WAQ;;vaeAINHN{U5e!ikB7gyR;xkVXj6T? z*8hJkcn5gi6N(kO3Z%oaC}n`A7d5}>_mJpz8(R+8g1WbXuue~^S#>Ma5O!uj$)n{a zXJMVO%v}!>>G8Sn=2pGnUFNK3F<$%`qV}l(22w0ND+R8!Tn{2=akGx{fP->t>%kzd zF%f4;tpMPr1=l=0A1T*_v4D=CGtqjRm0@}@WB+@a>-&-ysT!bsoTBbBFn(oH5ORhn;EGmQ;*4c^7 zj}&Obqnk3`w=5TsNEsG0l=)VG4HQNObMaBf)3JZ#+$D5?1-?l$>^dj>P6h=ExV^wn zr!2tq=MbSpadTbWR85^0P3p-}fiT4n&c|Qn*mpN=vd8Oj@(yoJxcU0cup1D$5^==( zaJ-hr6%aAraWI+ZG7_CH%f^T%Y%pU?;x0hvMEP2yQA5~>T9@u`;_ESvRf`;l+*c7< zCQP8L4$tCN;@$N#6ptO?EQJ4o6W%Kd*9JTm>kMF&AodEl#3A$kBOjX(lu>x~ z9!ur0u>w0x2aFO$RE^CKxY}KUyLPDfPoJ`e0B9-ujqr!{0V1-Qt4*PbTYaft`Mr<( zyj!L==AkB;d~EG;BCij{BT0Pl)`?f?n$1pbet^ykG7*XF%1GL<38_A1#`Ieyjo@-3 zu7({25VTIJD;o+pj{DhBrYL4l7d51Uu~!b?Dl5PT0sqvZwBeGB&Yh27Sl%fj05UG* z541}bA9_Y)04El5KNqnAV=%6frTlX`Z>W*=`}D~Dl;ZMKi^x!G#Iy~=jLV*_>ilXU z+~n5@ekKtB0K}&n*f^C-Y?7@TQXU$USw}rraj++1Wp50%ae+Hk<~lphh4SnTKelz8 z^N2U5*%}?oron@J{Z`wdQ~@K`4{vmxAh@_|qb}3I&X+3ud>ZFt@YUW?nqWKnzi~v# zq4I$MaedY>6WnQZ)NHqgc^vD$)CErq5OmP9!ky|^xPn%btT{nNLp@CYT*B=>4ie*t z`KE4cAejt=?GpW_o1!;0g3iC>B4eTlF(xC>505kOJTZ@rIYE=>e{1PIY_}@Ja?zI8 zg|Ql8mU<9>HjEy@o*YN3fs1{8yuL2z6*Ftr<;2fD+aLAT(`1@u%R;-^&RDNNbaV__ zGAx5&hOQZ%>;MYhmTIbwm~GV(HFxl)45{z4SYVAXznJ(he18%!O^72_J7ao*TT?YO z{rclQ@xe|qL}NlHx@!}T*H?jd^w#AP38P& zQns=7-RJR3agr?NF*e22&n9fPrSbwW&V>&9+L%*_2UhG44OAd5JJPC&|0rTWKz`a# zuW5thq*G|uD$ZWHaV;nzVFxhACW%ib(} z2id$A;6^BU=xs1eyK0}|pJG=q?=B4LFf*4aJW#O+j3ZdR(9e~z=X9N{`rB0Mksyi5 zOV*?tn4Ou0AtDBqdzF-0T=$||1m)j5y=GLm3#yXFBN}?sGt-b?f=k8xAd-osOj7Go z#=g1J!Da(`hm_;+2I@;b(RwO4ZGzARh!gh}tH{-95(OV|u}@?GUG(E<${;`~aNv1swN}%u?^o2V zq}{}QI+532W^!D}mW!~Td4<>~DKW8u7obIs`b-CPJghGxjeK_YQA|Clj~-b69rhr* z*}2_kj_W{m_N*>fs0Bw%yfyB~ym>*U;^S?PiZ>@L-p( zrO0Ufol5kE8%>9cq{$)Hau}=TxOM&t20;}eIPcaR1r6w?bl$c}U)(uthdC6A>FPX{ zx*hk0_Azs&zbse|z&jdC%h!ZAzif8Jez1Yl&JJ|0(h*KqphHVbia}OmTufxnD^Ts5 z8}Ke&S!*EbD#43SYZuGsS>l)X2~DqS?YlnO+>T2G4ER&_;h2MTaTck+^%vtEh@519 z-GN1>8umiS#l^PoElO4}z2n2sxevr)6Qe@teaZP%;i|wSniW5mBwv)sVYH6TlEW~J^cbTfiS6#`wY`dXO0a8WsK zt$781Ar&fjp`Z`dqHE5Yu?;{L07086FI!L+hyD;Q37QT8D;?t>RSLdsSgu$1+D{Q; z0f_$z!?LGmCh|3*LrRv7`)C@#x9Jy^ylN70Zs3hCF4XGw#~SCM8ybf6ooxiN)6!V7 zCoY{bv^q||4jpmMWn2>mtG&T(mQ}(SUtxv-oi$8UkRu|tw$TNrKM>$CR^_Vrbj2bW zIxqIr9*=K9t1-Y50G1v{BS3LvGP|bMX7|Fk$((617jKN`c_8*kOfW^y{xfgjzipnV z@L;Ir_r_7P3$ruT=%=x&LkKAkEudKO$k5GU5#xgn;6!W(DUD6~vzBvpS<9Ey@ZAVa7 zs1p{vf~9VJiji%*3z6=eFoJ0PuUx(!H_nSGxqc)Y1s!AJx!W+TN-UiJvm}mlV|XUI z?jzXjN^###Jrtx5bnMj(L z8+IG1v9tovSVlrNoSbMX9fH3mXMD;A5VtqhU1%T=Ha0ga4`%c0Z*U6aL77!o6G1IU z%DPe;@Gefj19MMRMiWmIV3WB?0n-%A%p=YwJOe}Bsv_Eqc&KXDz~srB?a`#f{Q9jR z%1_wkvyVp-fI{$GDO0y%g^^{@`Vp>@gPY-uZBNavF4Uwgx4G}J1#`1OSNoD4`2N9w zFBGacOlkdPqISZZl)-BEWa$(-hM|^YPDN3LtNZM2S_b-2YZv{SD+<$XXNK`jp9>F| zIqe=12wuf!+@>QwHSDF71y5|VaDPzr0z_+q82%WjQV&;il)fl2c=7Nsb5i@X$o?Cz zRlTHk#A-EljfEb5>`R}-8MgA!kVe}|C`Ov2=VtaSzcsgN-wj8xOMIVbj`qtjU9M8v zhLqnUshuQLX+mTAZE&0$XVc=6UtraSOjUR9x+O-)IXl9}JDescSZ8SB9Mm}HV3weN zd`V(KU{oil`DIeVr=zHl4dGbANvuI;0{}nyQ1NNJ^&IQuBb4HS)BttqTGo${+wiO1 z+~`;tYaN1gILfcKX=HDcdGSj_&2B;S?MRRtt zFPJ7Ntk(N&A8A11LRlS0X{`yzlzvLxXotubEdK}0VW3>yj)=9WlXPTCbK((BXp!*# zj>uf{O(=i}PTLXQ&g(2pR;!$%@LM?fd7$M=Rpd*6d~_}>o(3lUX6|D!=vlBnv~2W{ zevHZB#uZHi*Uf8Punoq69jbslen2>LaO$@KLc9C81ca^e>azI%%uP4T%7)ATu_e;; zJv4GH$h5bA+V9^UEbNf#;Fj@g8~EIXV*wQj-&e-}arF?jbRhR2t@QZmmfcD-BPYgF zI2|jln(N^J%}a$l$Pkh%9QyK!2OmFNN6Z+__*teOkVcx!jgfUKg4gbjoAv2l(u=hh z5ds3Rlk3u+SaK}`64Smy0W%>RIh5JU^ob`M31)rYCB)}LiXvV};6A$IVdm0d zjQMdAjF%;g5@?w$e}IPe^=a|Lk_<=c{p;YL^(#>j62v50E5yMJD_-wJ@I*{V0x5Hm zE90v1=H1SeWNvT|uv!=P)ng)QRl+6J%0Yf|R1MYdv3A#QIJHak0j?zUmbV=ehjP*O zaJwIY3}UZbf}3o4CJpJRpr={@psvg)1-zQnQq)Mg@W0(f<->$e_~TuNN)w<58Y(sdKJ#kg2&EP||v1g?w6DVOiGs(gziB2FOCWaS~9Zd0F~6NJ*s%VRQ%QcLD< zZiVaKcGiE*|1-p8p1d&K4%@Jcqw`3A@Uk($aI$Upv5C_z!-_Re;JMu8zI3LQYkCaQ zvdAz@+Yd%(P~Mk7)s(A|dZUu|YCTpEX#=`(2gARjh7IKK&+;9eFON~;!<~)~?7UaE zt5tK{`n^m75QYcUl-=<9Y89R&2dna#RN3a6GCy*y+@w(5Z~tQNZII&in<}jX<1~|g zty#qycfgm|%JwU|c*D@+nqAJpO${ACUO4J|zQIa@cPl!Ejh1+LjKM7UQGj^D3#s<7 zm#Dogu7HmJ7Fx-=m?P9_B8D@CNwgIlyr}K29m$_;$}kDPiqnA3a2r_2sRk};cF5-I zN>4il<^_j(F3d6*|Ll_LuJaJB9P_5@^~+yGBHQ?KB2hjPC)j%H>~F$(IvXmpbYH19I%)>#;b{D!**=lDg`PyC#|5VM+}UkEPj#j z^-&IpAq%t$LjPhFp$uKaw0U;exGTGdQ#KvQ7G@0IwG!L3<cxuze_)0z~(eHkX}9> zqw^u#K(iw*S%Pu-FFYvaIS|07*=VVwQlT%UP3$!n?;nLsv!}IVJmBJ$=i;Iz){~2N zN&JGXp{vD&VvBhx?ou{cCdjMt$!^Rpy@wLm0^he{q2R5}Lyv?1SThtS!b=4zP7~)W zk;^C8o)Ryq+Bp2_Trp-Q;`j#quvbKnc<3(qY>~;8yWqG(UKE1La2pmy2KvG)2)#|! zCx_cNPuM9IBxJsQL`uW7c3#nSsAy~0FWAr!be=;b~)EZR87o1l>b{%JV z$ZGeA8Pb{ZlHiuHa{`4J?PJD&v2KVv4QbOALsq-MJH~Skj2MX%`YZWjJf#w87Z1U2 z>y(7sZ-_n>;$1&W8bF732yMSO0%k9OQ!U!tGb7spKRCgKnX#aFfrl)rQ6hzROgdxbGu+^AT%!^A z0jx5zgG_1*sf+`~<4Q130ad_wD!Nn;o259>SXU=f0#rr%gn3X_h8>i&HL1@j>+=7m z+u$hB%jZ%e(kPF+R}6ZOGvExPb2zDnRcEC0@f=Dk307jZ)-%doq+2*3EHhpcaqG!( z!Yc&5k^OB#GvA{VIeTe;Dz@kQJjT95@y+l{VzU3^sk9|G06D_;rneb+-!cFV?ZMl! z%Dbz`LqhEGrK)y9+;>G$yTvk+t&TnVjB6{a35HgM=x^}h^tQm}%!vvS#Q8gp+QKc6 zt7B2NVoqS4Wm&_v?v0s%nNklDRA5443aM1n@*RAmVsDh(b85o;>vJ@`5slp0U5wSk6 zK8r1IFk}NZq zSfglg5iH}UF+)+0Y&-lL#zuj{yfYdXUcKIK72s`PDQ{!XiWpUyJy9#{OYgwghE;Wj ziKsxB=r5$2=11ElVgbC1R7FPRwP|q1RDiJyMq`{Vy;m(#`=qR+>=yDpGd)bs3Tl|J zmTDP~nZ!p-y`vIwKJEsN>KrQ zoSp(r@JevfcqG-{8K!ms&>MV4TBdv17%LZC*o=7zH7MeMo5lJ25;9{AOcO8H80pXd z7D${gwvMe~chR+()1^=6G(MOT@kix>)mU&jdjWNC12G3laC|pzGO#&SI`)gJv)$PS zSXoo~b|yfE6>>K09Nh{u&ETGPu}XVm2N9McJkEq2_%dyoo6Y~NTrU3E+NQmh7gTs-~|lFwl>4e zuEJ|=)M@!)PG`ks)L{|6F5l~M#GPoUnF;HFC-XscmM1HtBDa{Hin>`5;!VvRq(*7% z>po@Lr|e8MvgsxT<0H8Wkwreg7fZG9C%)gP5woEwjQlg-_VZiHb<~NiEg|o^V_gLPp&rbiMXjwwaU|XV)%VV>n*)*=$JzWte_rXDCA{9rC;Ux>65rt2S(8lAZr<`>c;F%&+ zRj@Zv{K;sVAqVQpAo~k0y;ts3uorGqqx*fyrZt&(zdC5^AyKyb}|fQ9l!;kUQkMVAw%>WGb`TaVeHSGPP#smr$HK}x9) zHsB(iP#3dLq%BX_-2;)utU4RBRH}+5Jy=5H?x@n(mL9$VPG~S5EbJdLARGX$WFLji_jIx)O^b&4#};QOEEpbm^SOOTGAv4f^6EkcrZnU8yuWu!LUsT-vvV zr7`|K9EbtwZ(tbag*#h^5!vw!l98j@8xl{F);Fzv%1bB07g|2yfkt;0K4BY zdE=S-m)XA&#UxbjcI#N%>#T{3&UmXvX>@s>P2PZ9wCwI(Ua!mfNAl3~kaVATD6P6= z?xZpg&L)PM1jrR#ToERX3_>@r)JlT7v1cF$K$911y=yp1S(c`Z^>nA(8Q7Bas?zBt*UPWxXwIA$?zUPNEU zpIBC38V-p{FvF;=iec#Ik9ivC%-+AR$5ca^A()ygiE15a)89Tc(K93$ysL^!jE*Ea zZaoSSI>1nNiOr@OPG~X?8Oscsb`Hc0tLy-|Hb)uNGuRd4qFvIoFF1#-yI+Jyub(|I zIKmOJF*(v!iYJ2W4rn>E34(uprNOwIGNVs!#KSXU5$W`5VBWtYurbsr&CvRnD+z7i zyga$?d_n>5pgJ)euK}6ERSosYTnsY7JI*Qn37meLX*EZuvnOhwkCCM>inzg>Ehhdh zE^C;z;YbYa0UTmcC!POsyip56%vFL7#7X^B7TXdMk5NRFo2YdSSfVN_l9%v&F=sc! z(X5G4Lxe#aP|Z;{Gn}A}QmJWs4Qy4F(b+7msBdK<-yPwHKR{?$NWom4ySG{9-TZUh zm?-qAjqGI+&MjI0ay{>FKI%6J-J15faM}&;AhhH+Dss7??$mLO&`{h< zk7LZ8M`0*_xZl1mu6R4EvjS|~6dJA^?-Ix>o-AUnOGce6q+&q4+@U(?$p> zc_}AUTe9{S$e(+0xWG~>*>DhH?GJq~B=Rg1t=xJ0=+^ZWqz$c)| z8C(WsWxZ}-{#(8wZvSGFZx2P%zd2a%d=8o;1s1TQM=Qaxf}htS+Ub$=81Vz^{@St;{xe;dUYuyoa0qI%I!Tm=d59aH}15^$@c zim+!}tP7qEQwQEE!4sgNe;SCApsr$n)7TYKbL+zw=nb}BT{?!t?vW%2|Lssj&Ma;x z+~m=B)2EZB6F5CM$M4kpWWM7+^#=K;%?1}H^xo?A)i6abwAd-N(L#RIL0 z!)+45P#sPSYn6L+H!vw~4-yh=ipmS${rWuY@MSh9=8^laMrcp>FLufYnMt~tv@DV{ za5{6>Dfq`~%h+-%bq6NHSq9b`mTp#69bLCnQ%T=bQa^&Y%gWHVwqYmH@zIh38CaQA znG5Q0YVp>C4-|ObEYWU0X0akm5J4ad6>CyKG#>yFQ80@pYqaM6r?p)m+i zDN9AKvdzYkGME#0#qTO)WYBfG4Xi2jVN*8Ap%erAGrJ2PoA;O|GoTCkO4K>ETVI&n z@P}YV1n9<%!stUZSED@4L=t1FP4)nU;oMDk*M<0r;yua@k2Js5-IxF zr$UHU-x?3 z{lL&?Wly4U$3`-1a2jkKLw(h%3WU}iq0|K??yMBEMC%D%TM9Qu8@+o8)uTsC8IT5# zKx zhg$CWD0s3A3?zAFURfQdHOX!*gZ-uZvhW|ngxMR0C!=5ig-%t{?=Y88{;)`H9VYv&Wk;rH{Moe#Po5 zb0&V4DTbF>xAj{7>E|q<|I?boH`iL2d$@8Nl$v2-!gTZFoa<`ZLgC1F;iUP4V+VFW zkE-=|7{(lxtqLuw+duhbGtESBPeh!M-exx}H^HStDB5GaC~Z|6VtPE4qj^c0A_{c)4cS|syi{HB&S;j`!!(nK1-Q&2J zPKZS9Cuk106+I>uXH)6zUE`ZLhOa=R1*!irN znH4456AgiD1`wldW;hDWPi0MYL8+JGf^6;-ilqRP3>fIF-jbUwA z8K39dieeRUDymB|xUc-!WsVbt)-X1eu2=Iiayo&D?5?ZjfkFBNOX!WyrfolGM)5_L z6c}lLTR+80Jo_B0b=|GP#Bh&y*)mC*qGQ(#9b|_%G~SqsZBE<7)n3f!F;l! za?Fo4n+64f9c-=n9xA|!d&wQd*&V=#z=L<+(f_p&{yh;76yya`U z?Xo(!#CEv?fT8Vdz1XLn9B3yuEu<95i?8rS1ha%uOt=IhqG8&-e9!*57hwqp1c!de z{L1wu&RCYdB;$ z1LX5IpK3-BzU=>Ay$KLq5)RaXV))E54v@cK^_tcHsZ@obMHy*G|N5=>c9*_oR|rMk#U_`utS^ zcwhtYQHQ0UBavi3>+Rd7qOs1Ykj4tLI&ks|aDKZDDu*wXU9tM*0J>~Z4pqLi|BU1Y zHs&;!hvRq2P=3ObEn{bM}sDm&kj z+FHIyK4U>E7kDuDty0#sLWimK!}bsprq|f$ID!IX^$@K7`n8))FaNAdbYP_Inte=N z6?}aMMdEREK$#o+-Cmd=8tiy*YgGa(2jv>!~gk9OmU*N8rzPhOCc1rARVl%{kP5lW==GT5U^W zn&{&)Uo(-9R|~hZFoY>%rJBb$=!csf!=${oK3I-9WQ*}n{x^wSQnqdbRii%9`Gm)P zl+lW*6!SmI;th#XnRmyQPUvnRYmF{+6JtoW0ny%G14N0;#@SLZ z)#%OEv!F^N?722t1eN52^uG|l2?6j*%pHvs5H*-jC{|_b;0u6yk(4+JC?rdY4i3{V zguH~XM_c8OcQvebnz;4l?bbk%^|`U3Y+yD;7U;1@d^=me++*Q+_xf9O+sB3%{8v!+ z2qEi@UG`EjL>e{w&PQ#@|0CKkcO}xt#p#*#phzIZ5xg&yEK?UB{2ElF5eeUtSiJ@IXHeM{BQ2O(q5WhiK1Kcqk z#Jm1`bvIuxo;tHafMbHwrg8$pfUks32%YYlrihQ5LDIC9oijuVzO-duJ}Zw4K~`*N zv(NG!;bnE?sOOCYL3bzi+ww9D6RtvK$phC*=MKE+y+;Ut?ggaB&6UP~eMGUbZpn}R z%{+kxgR;R?G;sf`!AAW_T6eU>B0V9HC!El^U^((X=Agf_mG~^WTc6_u~V~r z7*XYxn*JD%Wxs@dBw=uLt~mvP09{}}QJa+KYt}gzBG-j0D08Rsh7IG=79V<6RL9T_=qb#n z5stdF?m|^GO!eoq+trQ`gdFNl<-p%)TTb87dC-YhE}1T$ zVao6+S8$W#$)a-v5%=9_u9IMpj+PCzacS`pZRZJwN+R*I*VlFRvZ~LJb!zD^t=7`hI97@WG5 zY?%}$u!)+5CqwVnJ!B~J3uR~|e!YpC0T%{TbbD?61Vj&@bNUg+vNF-Jft)!@^UKM) zg-M-Qj2^&tbNrQ7q@Kb0pLnGlen!G@>sT~pHfTz-eZ(xTD>CE;eaj-vE^yHEF%`XA;5{qe>aOJ8~*t|NHMTJci z3@$$m^99sIm>wR;RWFapyG!_2{-ip{Y+rT$mT+M1zTU5j}qDrX|CsGFMz#(e8(gOH9ek@yMO8(iEJ3+IO0_X8Axm!=r?Nd*0J%$nmZ&j@_vG4YKq27_wNPxy`QDoYlS9jGYg z@v$I)*bWm_ppLsz*8HKaS%+7rce4{Y!<8x^z!lqpx+3aIgpjF4{m z8b%<{s+vWdY&x?f5G~rXKO!Bw2%wI%4uSUXrbjWE+Wb-$mLA&5>bw!3GOj* zB3B_+3gtX!E>$kg4b4?`gedvudTh5&If4q)2*!7d0-|0R)oeIkw9q{)(=Mb8{B-AiS8L<)C3!4^QtW4--23Gw=hBeE92 zpM5>oR{HWcq|s&gUoCF?2sRz(gUai?t=QVs)GcO0SJctU8}#Ceq^_&p%}#lWVlz2x zFT9uLq6fch%TCo6n5yiFYhg!=(U1aoph(0)dRNJZ;~#_i`y}8(3xX@arVrpk(K!x_`2Li$$j%2&*O@hdAuvq(y6n|pv;%q_8Yj=Y~URm~pIX1VR*r^V@f?@^5)=?M1L`NeaeR_W-vYk5khrxW*+ z_kivertB9@65+t1NNj@q*`mAG@&3tJU1@#2_L?4ltUOP_lUYIoR{(Uw^6~j#I6Jm5 z#fT4NWdfOnUnUOVrU$Ft4ciYW!tq2A8RoAWQFX-)Q=C2@4%LIylLg}(8^8txz zvUu{Nv|EH?Im1?RHfBH3gMp`Y!_X)@BPs#bINyL_PRz)^dfE6Z5Oy`&lTeTM{C$cw z;9T@|8ei2EL=8n621r;FYu7dt_r&;wx@PwwR<=2@~XL$pVg&XNd0$~5ZWt%JiN{| z^++faL_Tw?Aau{3ivkLGLr=?Adh z(%@0m<*>f$0v$xzxM<686DLf!*1#j0Scn=TZ{2`ob7}R_=$i`f;L!xW6GO8BgjGZ*4hGz{{@jP;boE7e5QH~9o$R!5 z7C?ZW-R5o%guX5-tnBWR(D|IDOq>9mC?_Pixdyvn3?}R1Oh2r85 zH8@on*QTT0c__lgpc5k~==aUJG~Ckx>)zSxj8N${tVC9#pWiLy+DvaQ|55+A{BUy} zanhGX*=$VP$Y*m6_}O>}8}b|*cvq`Tya*nbmR(|r%g6^G!r{(qjX`UZ^0a>Fpey^EkX2I>ulR z=OA~#&W}%?v@r2>8Z;x?z%v++D|R4JT|Q_cS{4f{_*BrD74Q=M_9DU0c-KK4;0!bm z$(bYC)Xb|)6|$$UpwH$^UTkL7}h zgAwtBS^=&Tfro3fWEIn)1g!cMQ!1 zGZrA~X_s_x=4KB+elC8xWAe%F{8dX7p(Y(bfsavyzd9`57qO;)C%QW2Cus#=O2m;X z*u~%IJ(GD)@j-?v=~~u`R`(7p9NgCa6wacb4Ww*0818VbL#n&YVguLD{*TyJAWEx&jLBVTfuuk5^-|)_F`=l-MXaqZH3neZswZ$rTyl!G# za{N7QHgQ>pL#Vrr^4Bd!nwq?BVIzD5eglHXhA`Tg9qYRS{_EsKYdDiVvyjoDQ%-b{ z+hdu-C-};#&5aT;Z-&CH#i&ZQhssaVzR)dNO=5Q9H%}4h8k56`Q|TD|!a@I%bx|vq zJ9aGhqBPX9$N8$;xy4y&!OE&4_VlLG$OpxoU#nCPW6iE2z=c_%ulUO0@s!Nv|f)HTR zM29DIimtM1m@tn%WiIF`2cz(F^A+C) za$jFNQ8H{?i`4=^c#<6d9H_Ep=Xc@g!hpA6DLCk*=?QTExt)>J+h0K`*Z=~y_ml`&aR@YN1(GG#28)Tp}a@t*jI%>5PF1t%lu;)LfAFop4rV*n9{Os{Y14vl_Xr z=e78&CFmW$r#=a3*98C|6)DiM*|>dY{c0nzLXvs0?=4p5H&+5>P+`xtXDHaFf@{E3 zucDi1PX_2K!m)Vd99fpNP&YT#`zaJsox>i|tCK4BpOI4y^lU+Y%Op0v+6t9_C*Y~; zOY(BttxDHQd74bwj@raJ1aECJmo#?fTR$Y7b`W!2?gSGDg?;_As~alvY2GSz<`OCP zbCcn2MBl=kKDtf%I6)?+?$=gpR4IU|fsAXglyIH?Q0&*67Id5Hi_<>fS}dkKO3LKW zkl#jA3F&yDrAURL?3&191sc^l-HXg_Y@3Gasjy$;h(0@&+P8rBRM)#)434jl)e2xJ z_yC!Sb=PO59sy-ZhV3S5=FBFlq*Q+__|>pY9%*v*4sY+Ixyy3%8fEXwtk z$el*_^g7Srl|6pb6XPJGwP|`Q|7b{I$X?-SGDqB8o8#c;DOh98|Nax`A=nzdBN&A= z8;p-WT0qL~rQI`ewX|c9`U~+k2+Z;M)Uana-L5Lg9w&r>arTg7qvA1)2MeACOPoT^ zVK4~J*U#S#D@08%Jyj>g2H5abHhpESK?pO_G1MFg{#xgb3(Emh5>0@43orFPW<>e} z{?e~ExLse1yY9I5HBMM?L9f-IoK(pP>kYTgiLGkabRGbHUtp9ODM>rF@)(SWd*5;9 zYP}7cHeA1JQ|%RvzX6y@NYI6xE~eolXZ@8ZJcvWWTSnZaMqEB7lzBXj4N8A!_Qv1U zfYPW^j;&X|kv&qYt?*&a1B+=kWPbXbZ3Q^OMiErV5ngWA3E6hcd4$A-faMZ*plRBX z@Ng~{wiw~sIWXHD$N4wZQnFem?(WH#Y!4?Km3B_}s{UlW1mTxq{a43L+8S(D5*%4j zL|@@FJZE}Hwx`i1eptJCHt^=J7yI`3{j)dc)ct~K2ZTM)p38#0Q4f>pw1gd9mU5{| zwXvj&acC9H0FE)MOtQ+caVK4jRAUdUl$lyqcEHX${qBmGf=9BIT}Q1yq{U^-UHxIw zilhYjBBK=~S&7Fg3+g8&gI%mG6{ci-M_65HBCpM?_66V627|=fkOi$Oqd z5`okcBpAl$`Xoh|HG6_j+)epN2Ez4kKnmik0z@lgEG4jPrwXY|u#A39TL&LtuTbd{ z&~_U?KZVB+k}dWC6;Zqih4=Hr+iMJm#6U=7EUu8Ni|=LVO?_n)kI))rF6~1_7vMyy ziX{#Ou%oR{v*9UIGu2h}_oSG+vc;1`+gEYXX;MCU9l!xX*T5C_u*8@D&Ov{#!H`J} zly8Hg7S>frs)U$_AV$rl^6eU)p;vM|bk^g~g_ zo0;dqx;sGc|FkzW8};x*uIT9Ec)ZGJln6&4W)r5)C7>#3J(2hV^syJZCl3})!C^T~ zq2$npIa&}6BF3e&F+|55NmZ}&^Pn0$3GjqgHzt&W#j{Y2{M6;3H#Db3&6w{&5g7`v zLj^#ZI^RYV^ar8SO{PeQ+9*r?3S=>VMUd&<8wm`3rs%)w;i3UabFPT!Da!&sQ$t@-EZ4_W6_{tGx^TkjZ&EvmtaMVm0zb%R-#BK9W9e_5(7H|8;@tgioU`? ze^A4J$#Ld@a^m^QbT~}W=y|%c8MT-Zc3VlLON>p7Sr@<`^{e)6Z5b76tsclB@`39K z!PPXiB6MCq*V$sS46t<@PpQ`g_vIfe>>$(fdSm}-L*knq6rdp7caMv*kwui#%Ubj91!oyo5O#RI zKL}1}skwZ!F4gdsHHULBgEUQ}#zvu*R{85NXV1fZ~t^>4LRDbM29_ zB{aK}sY182_}>M>aFHY552Tn^u;(MIkJnHr^5}&0L(pa@*=rQ{Ppp!N_K4cw1hlxR zm$rp;U53&YnaT5cY!0_ber%7nPZ?dC_MXlsce)|zyv^%Plfh%v&hEfQ>H%nj zS9mvCGGL$KLA9r>ssCB-jsJ}t5~k}>C`QXjt>pEoKZeg6fyjuY0ldRhKC!t#7VmS9 zzR??0e&HZI8y{>V>Tj-GD0dHb1?kIlC@3^wwI@zSmEP}qwtYn3$aBtnCiTA5`_JnH zUo)h;I!xqNZ7PKY*}@Hot5*1VnH9AlgBGFqWUo2!eK01_9+C#!&1iq$I_|bt0Eon; z9rDiOxC8cbu66(pa=Dtl-zLZF82HVRRbMrK_-?NZLex8-M9x}JsI_%fdSn6GoA*Kj zhl`_R?(Hf(gd-N49Vd^wyN<_KgC1#N?;Wj*BNL>Cyf#6bMc@~)iJ6bUnhY2*R+dR} zMmMFIV_2nzTmPiLYBdpL)(bxV4-8ze>rZ3F#Uz1c^pJ^DvdBQLR0fHe>D_<)c_Y7p z2E{p81;7Cic%;O8`aFq{9NQjCgB-}rEooW0^-z{iu?}`9{NY(6x1`Rwkm&4FW<#YBu5iUyy<0{H=+T#sJ57onqn57nM5?V9!jJ{p#7CFI$y7-jJ{^yc2q!HoC!hgi<@BAv=(H5kOwkPs8$e z=)yysR@qibShIqr+sXcm0~vO)fQS-i)Q9POGIr`_>npOu7a7DrE^ujOX ztDM-X&~obU23$q5YG)Xch|`tZf*&(i<~ViMth_W3+ft?p--wV4TUi`&;>)fi0l7k- zCv(knyJnrIPNkTimnOZqQl4*BSHOWvWI}94Vg3`BnOtZ04`SiS9aO=&I|xnV&C#s9 zgz26meCi#}E|f>zjgNs9r{Un4b&sf;Bi%J2&5^-=65iKeoGERERl9I!Co1-;BS%$RB zjAC6;nPg~X77gtw=f+i$*Rf6Bq4Z1k9$@iZ7_;X!W15~_d)nuJxFhXVytlQ;WE|z7 zRpoKh3mQeH7DNgQeaHQ*%#a!uQ7f$)l%wTGw|!~RcSY)-J;poKwA%=vUC0-t8M!Ex z#)~#!$=LNxc8%g`?(pu{ugS{@fx+J&qP|VE$nRrCdhlr#CkW4egBSdPUxbe0rtKdt z%{NZ1r2>#yH*FrLjzV%5nS!$sW-?xcY zL)!lZZql2_yPiV?e;l7}Q(I?HQ1e=uiUm6VC7_^z_mD6EJq5fY2)%LhN==SPi9a`s zW!~}nuC~vW=ym0x4Zo2Lj(#x55@Q>EMbj3emmSeNkF~i2HWuqc#`aj(&Y-w~k{dJK zddGQtIzE7YzC^0xgtV>MwhiY(T1P^3akeqCX6dA_?CK*AB3HSuyGVqlbF4_uF=8=m zfv5^iqjbgkJll=eEFd!|sZyU>aegLvTmyg*Zk*O@fIE4Y%2qeS?PzTql>9Ll*mW_S zRaR9^j??U6qPT+WFBUPk!}`I2g}_7vbbV#f6klB4YZtaj;N9tnZX3er%IGwtAv2E` zLOA(}_jJ!7Yf6zt$;JK*QGM*>xOVnfUSiXaCM-a<1rOdUMpWE$v1Da~@sCV@i79Qu*0!s{s zCJBf+=Fz~jyW@T`p)CLR>MH-j3Iawy;@jOD)Wn8F6?#1cRdm@<|I0AMLH=3>qseVK z&+L$v1!Um9aGs0CnNrxD65;bhr+&fe_AsEHq|1p*if{dVL0a=}uyR2{hot;Q3V!CL zV|tJ)6Xnt!KCp$xUCx&5E&>$XyDj#Du5=%RZt|WBv*YZ6{69WJ_?}V~z5wbS#cFJ0 z-eSL}FEsglpg2%;80ch{gi=Ym`A%{STTxk+AK01viEGa!sjTCcEvd%cR7(^2%WvLt zP|h0b=hK~JDt*uzyUz`$wJA8wb=>Txpxs`k3u-|#Q-J}2r141xpO4St6M}xlw;C}p zchxm|A+y0!1u~nn@OsMpFmmC_Ns;U03U(jI6k^VJH(c^SCk-GW_^n?f7@pvN>e-gq zsahkyR;#5U^RON$@&neV32%pQswK;x$)Bi(4DPD2Y2(e5)rS|qZ0i41-opuL*tzn7%pbbY%p@IBDj%(cd({H>P1 zzLWpk?uq&l>@Yyo%^{o2PF@#dSG*9v&2*I`l`|0xv8HIDLIF9y{i95v)69m%JybgygvWQbR`PGElPw5{)$|h)WO{_6Ki$tFrA=GC3>YnBo}e;cy8ZlJifZf~je-sgKeKW1xb|}lWEMF@ zg$UliTfeb0hhOgPyZki>S<1|2ZfO28^VS=cX5J)nUG4OSx()dYXj(j!s-n#$S^FKJ zOmS@YVPKH(eKnpPCGk()Lk{vMW6|xAeF_X19(!QE1gX+JjKZIEOp_CtgOobUGVm86 z+>g_v;V{1rCA;B&WtS({R$dd30>L@?lv-tGi@Oihtd%Mgwvx6pPOzX&mJk4YS7i>c zV@1oV3P)DES3_c?>+>`y_woDV! zwdUOJnB2iu%+wb}0&KYR?V60GFH(YiLr5b(Vo&3B&F0|l4XlQllW^~vbi2%ZTacU~mbRVXgn7oSXM5gq$cSp)N2 zS-;j}TKRI|NROs^R`gD&(vGG1M++8*_&PP5>adIezOlRCr9!THeRRG<3sZd0+=etE zd2H6b1k7@Z7WoNkZ4=Ik=LoX3;=zqab$7$__x)Dml8A?R=L28B;`Pag{Rk`7sH8Y) zTgK)ML1e+WUbrTMJVWo3ojj03rc)D_%kDi5pb{U3?BXSI3v%q}aod4~6Qj6NHO^-T zf=JWrp2UYt7l2jHKk4{%SX-G9%0b%_YWEq+_m#UxwaU7=CgehRH(?_a=|Qe`&T*As zyv;|<4>9ZUiKgkpxO3YkST=Ir&EVT*>lBEcI~kUZhHZ0Z`25jC6Es(QR)&Sxn%jb| zlxizr;d?tbakWe zuERx_B(mFnOtIIq{g)&Tj-(40t&%LEj8BHd{ePr^}^8(Zw58d%LzdP>P`H-8l zod;MAGPP#ruPkSwzJKNAG)8i)gG(JIe-b{9Brmn%lW^jH%cRn|{mbA72G;FJM`z%* zXVqkF5c|eL)^RKm!lx{ENIrO!>6jUi&#lq`58*4^n+)0)RBlo)lTr@aKxWgnIME}cMbmU5gAy?x0}X*iLLbZ(C%n_Ps`+0 z$EZ{e4fX}L&5oSoU%*S8>@NXHp&V=^@cGj-y_rDCWdh+V6ENmY z@9vS`UcDCpzlVgqeT9OU3Rz8YK%xa@3s5@KFES6;g`!MT-=C0pOoo67)(Sb*GoTf2 zJ;U0q-D~BRiFA9W5~$2=(ZD%TkCu<1oCrJensxG6#L%9|Z994yl2bd2$TNtEAB-P? z%OvO{o4Jg?DpHPUytM!C+WOdGoz(tzw~Du5to!%qlU2d&>?o&~=Y(}n#%DoL^W&g_ zv_EPkQ>&zA;MLp~>@Dxn(E;@2qq89jjQeEWT;)kZF*tGU!V7hkOxmg4QRgkbM7((< zS7?DF^8-L15A3%tiuSQ+5=eSgy@#$D9l*X|7I?m6L#cR*e*bSH-73J$>P{U8xAsQMep*iAn+{FTOvNrLEL!FiSophjs}!hUFZ)h z&9PpTEA>Jj`je2Fu~%Y}F_#sHjQrBB~_j)%5vHm3SI}@ zh4kf~>6b;&J%UF~hhyN1r*_F+U^S}RybZ%{)4Fqg{Xt2fNDG$GJ+oylJ;UV!{<1DS z(u!4kD8bra$gzAraK`L`J?NacuIcT!nEdIz)WkEMu$LEQwMD9U!JK2_ z{D*g&t1;v!nym(O;bZ%fxBR{M&Pw_JHsL@hRqo=x<`A7;QS89AGRr9-v zgn2ehiA|POyZ7`8fH3-x$1;1o;#NoL<;J6}FpeO@r^YXJu~gzuK9AUP8SLkz^UXhz zg|Gi%SR~l0881MH(3RHAc=XG@!FH?BIla4wEW0C!#>g0r{$$>esRYXV(e!S!b%<3b z;|-N%cr(mdg|{^xF~uzW9jYhxLOZU->Pf)>^~YYeGCU;P`*cfL97P_G zY;3gHIyQvbvdy>^&ihKu^oTY-(f1XvZUELjcb%D?%2RwiFpp&Anhy^|h|(Gfy#|N?&e7$_ zsL+cYt@McPowdtz;y^!I<7c!c@yyiav!Z-aq{eQ>(Ni`&!D`*qa#zYfY zp&N1LxSXeQ&2Qxurvfdc>At2b`or+rC4S~c*OC=$iKeWM)0%9F%@oD{d8$3b?el-?D2%r>A`L9?Jr=fi*@i} zY?BZc43BLcz4apI(ULd%BA3`(C!p6S(^cpyisD;DX0gnTl##Ey)?D<5sTk-UJ(YPE z#}&C6qCI#Ee#I?!%4pj3lp>zh;2%u9%lwodEarecD?%vJpk-kY5jl@mKppO%2ulj8 z>l;{j!ws>J0Coh`K?7$1@P0kQ2du%-`#rbaF>|w`SH&7XDG0GDuJzlZ=%nW;4-!V% zsYsM6uXtRJ5VLzSXt+YU`)GII>*YtIx$rtA3%;v7Odykv?xVX*!j-K2K({iB@=%;Z zmCY7gD*#9C7bO3T``-RHmgy`tn&rF86*x6dQQ4e+GDFH_pJ&+?OC~?GLB~4(D!)C? zgS_rk@<3Ng03YEC_#R61kc2|%8%vk+u-9FB$y$MHewkO!lJ5j=l6`o4uEG?Slp2mf z1`?_omat?%MJy-QZ}*M4^pMA#5bo1H{iIKXOE}&uup|b&{Wg_7z%uK)7lB{9l|q)O z9M%n^aI7b)`)3~4Xn7`#Hl8Yc<(H3#I>>Lam+#XOxbzkFuu&Onji)js5)~l`B7h*_ zXbQn7k%9YZ3U7v~?8WwzHovD`!dv$laT6C+*2zz@{*(mo^g~bzh=^fNcfZxT<_3aF z0yEmzoO~$259B34OEkgB$uj$b_V3H)PjV7vBwSWMLYR&4{MlsRdqa_=YX3A!$?3|?*2!qymJk>7D6rplm9ByAR1KBi>~yTyU{=zOxK=+ zI4pDV(=cM}mkCZy>vI`(PS9e0h<_`bZx%9`OC@{WNOVD+EI={-tP1@n43lWe4ApK* zLh<5<1^@OJ8}f&K7GSpT@;;kAVJ(h&<)AGx4*G)HTF%lp8K6UAJpWw=6~((2^aNPe z;~5|LXUs4g^8D-|K=wQ5y?zsu9+>E`9k{my1y0D%?xz^Z*4X(Yqk}!$Zi(U^vNf8> zRcf7KmVr#hgKh;d@c3Sc40Vj$&SnZK;_sc*MgH>(%|4>M7_Eq~iiZy9f`bu** z*82ND-hl7M$G7k>aHmVERnRLUoXHCSGw&-JF0y)Nxd3Mg0enLiCJ>Uudqvh1eN8CN|BV$G9UITqs#Ft z^;883pF;XSKto1V_RKvnJ^cfThh&dgkK4fiCQOodcigf|QU{_ybW0+0jmxTf4u|T+ z6V$BRV;>YUyiV-Fh53#=2oOa;(&+Fq#c9I{o@H*OsZ05i&3<{!rLsmwTV@!ZkOrdsSWS&dof9m7=#6Am&ZMtc z2UYS(79#(N#GLA1!+g-1Dc1Fjwj75qO1%=4j8{47&?FAcCMTZ>V@aSV z%*mB6=fsN@cd+Y*h6gG74ksDjaTUVOxOZzZnBH3viCp+X6>d_tO7 zUx!rJ12w~72nAdY?5x7ej-q;_(EVo>*|CJ#4Fb$%U*zoazY?<1kH}V{!Aw*LP~G(G zA-@Jm$@`;*hk7)VM7X)4xZc0kKTl})9E>M(1Kyu)iFwNkDtaq}Mpn)c>-pQDolbbQ zN0u@gRar{YXVxLu}derRbm!-Bc{GzWm0tWM$26&bC6z*Gc2DidHGEB@oEb-5(~>ujyMR^Or>vu0j$ zn$ql}d`Y{*_$50ERRH-!I^%oIK+|+hgg2yEOCzCp*FXgU-$?`dGeDer#&C=!ShxP3 zzWn!&qI|BogbYpFT|zPn{<3^LZZ_nE_?ZUfGGYt!1+KlsPv9hWV1!`9|JZMFOx8xd z-vK{wxTjRq!(#_KC;ACbz_9D@Xy1^2%9@dDa-Fh^akc&3XjO(};K2Y6*{5#AXU!$% zZ|87uiE{_0vQwsrt5GleRpVME>lxK#Gv(pzPXex~3mE})I~U?Q@G%>52raNQ4wh(t$65$P|ZZCxQisLK*(g|z1okBRc%w{ z9}|Y2bR9y>MX_9|fY6$C>ClM55Gbu>p=QssM)f08_Q<|=w8;Ei?3#qx^j9Dxh5^q& zM0+HSAu&M!cL@5}zAB0?lv0Iu>2_1{^u<*JofRor4_*eNzSEKPV<5zbS*^GBI|_zS zpn8wv6=7mPB}kvs3VS&8Yd$phB$kBaVs~`}3d5BYP{LAlS74)%k?0vKJm`knmw78; z+?e_581!LcBM4ELhY0AX`k?B{t3=@*f)c?0MLc*l$VycW%9ypU89Eipx0rYxkrj(> z4)v9ikk0j2;l(k+)y7P)<)mpvD6DS8Y6{D=UzFjvRC9C6Thj<=;x2(^{)SUd70xDW zp;4Z(>=hzB9r&H7-u@9=EQm^*$-nV*9WY-LnJ=C<|BD#p z`1$Zw=)oSCF~Ml4S=L>?j?Ye~=5M0^H`uFeOAy}t-{d|N{IOFOTv}DmHEOhI6gbWt zkfOKqViqZ7xp|w-L!c=E-Uuuwzi1IVo@Nh}g`g-u-p%U6->p^+8_b5VKa!(xt(o=A z>Cx)|MoL8RdSG-_ccJQw5M4koIFj=pzAnezV zLsC$|9x&rJRaojTdr#FX;4#;mL*Y8AXgfm(4DnIQ^bHa^}7oN3r64|3>7K@ z{aw#CZtvD%@{nsk-BYJJcTim+1wkPgCWwY8`?ci=@OW-&B%KR_gUEX{!*nwy6u(g^ zg!Q7o(*8a-Iz*sHJUkV=(1Q=DlwDyVzpYN1P+p8SwWNA-SF`8nhl7Wt(-yB+*~U?N z2Iy8{16@Fds}b?o49__bP1Hp`av+Sr((CfXRQb0udWa?9g1eTojaJr{DpMRzc3T%E z)mH5PJvS0~5>7a;8L7{u=ewg-g>Q_wuUy7ZX1#jGniOJ@@v~f1eh?3Oeo3y@JRWZu z!A8Sf7UnD6y?!879~dhp)hMh^P>&3>*1m}`9h1fs+#_I(!X?kkfZ=Havm5bf9(p^f zvU}wK9xsWAfW&_4`2I*81aPv7hgTn1ld->Fp&+8GXAOGz1<)a69fGQ-b^a>p`HoRd zU?ZTeQG=O8Oiq47bPf7=uE%=NfxN?+#3MliF$-<7nq>t2EOXr~h1qWalQdxJ8B9s3 zZh+!{5#$#NQ+?0B0V2uD|7m`u5{BkX{==c-hV^<2@$yZ=u=4f9`wlTN88=Qd@ z3m>jHD+R^oBX zkZ^C-A50%zsT0mGu1{O^&s%Q6>9ZL#eim_P@)C5*Nxy(I7!=FMBW^I?`K*5hfh|~;I-ZpL3hGQ7A`GG%s!JY!=Ff5F140GrTZX9#KD!XU3HOXibZ4r=wH#YXW zTzN(jpw)L*`<@%?P*#MQy~mUHEZH2!GE2LB)0wo19~=deX{!4#^^tt3jK=rtU*Uth z&(R?B>v%oyL)PiI-{8l?5&R{1OE^c%aU~65dyXj*dEzd?_pee6Wj|OF;ZPuAnx6!c z6+*zoe%Va9np2RjJs?5oZf}K(ZBZO}R~gcR4FJ;`A{StEM9a(#ug~PnmZ|za*eBj;7JYi-@sO>Z%2ahyPZzn|p&A{r=IWJ)&PA&op2->6xEAUL9aFy8b+pf#6)Pon$p?ox7l)j?gc&xF`3{C97Xh94+5D5I=n&& zOB}J_tp9m#&G2f-f@Q1}3*<&W=<1=YuMC=%{3DLqmqWfjOOOb#?!%%Ck&!vLWGWFg za8dE?;4G7MnJOg#EhGv6jqKg$DV~kG1tt4g9~rSyMCGbQu+!d%4v=O`GmJy?qT(pb z|KHKdqT7j}juqa$`sE`olOmbCTuPv6Nh##F)x5FwS=`jjwCmvX!e{n!X5kFA>@N1=$ zzt9pzm*Wmo?akd8d3x!Fy8YV(T@D2`}jLl2$uRA6;-^ba`*I91rRO} z;*gWP1fYa8o_mRZ&$O*MG$4y$4C)Nt$rb6?HaqTD=GwlO(dHu`xp-v^E1PGB62Mg` zhRz@sgJ;vf8AzzQg3eDU(X%fGc% z!qWd{y#QJXa93I8`c zd?pinBCC@8hh_{!v6#vkI%$?bmmN{s-UqN9l+x9rXzY-9P7w~kI!PsW1Uf z*wb?0dvAS0G%t%p9yjI1d_BLTi_$6Zj`6;!g#_T>@I|^J_{-6vVyB$O9;)f0alth} z?)zyn!~og~c-g?g2p8Ou%ZrkCG4mqR7Gj~u#Dey)&t2tAlUw$dPG^$P)Uc4j4k2-_ z!ZprGiuutRYf&QPYHKwPgu(uiH+Wvl0Q z)1l39sTNsXC&o#zu;w{NQ9gxRMcKTMUS#CDnfQTi!=sRo-$Z25ae?c&sSQ>tcN)n8u2hI1J#hHF1)?ogH7aNf;Eou)lkouR;j<_`0 z%xq{lPjC#Dddko~K?A&#q5(Vhqjw@QL5&(2CjLWmIQIVpnW{RjcI|`Xlo_*xY=~8s z@yYTB4m2PymKf&N9{`4e2jlZf)_m==e-0#Hx`;h(wnpL0iqp7hq~&BH?5NAp0H5#< z*iIMyYLMnpg9Tyj{_%2q2jnXA1pL5c#+5_sQ5dD)DUhOFuUZU9H_QWC!eNO9w#Dg< z7iwPOR1$7z?x5qB8^r@Bs4%?Q6x#J?^1{ZgZG-Bbl!UPkuV<`5w19PKnGJL=KCrPW zi+FH)TgmeyS)Dj1DarHQ1LVK03dmA9+HPB_&>*+%$QfJt8~zEom?S}>uo|i za!t*r`O>oL8vo|YEi59}3?dZicq|M9308S{p6<;p=xHQo^%0Tj<2eBU+fwFv#QwZO z-2)u%r|fv0IqyxP_x^4GRX5mpM3uC5d2}$*s0-GvVx5kO_Fh<5ER!>xv`GuOW|f#r z@c%TVbb`=6U2?ieR;%kELX*e3J5ClaaC^A@GqsJ%1|0%fnfhOUJRmw$v?{s>QQ_IV4?SN>(Ger^RiY|C{m0$!m4bPp&79^9N2 z&xl#iVSlJ*tmjL}HEsM(u@`>Vr%X21XchFbmgWytk&QL#4B4zAeFiTl3Ww;F_WoIUmcl3WCKF| z7$naCUu%|?ejO5}!79TJR{?cXQ0dU$-Q z`{6XeBRnXrlE5i3PcVBDsc&(oMWQ$(`9S0FdoGzQz16@+$)P*m5A?0T9%X+voaAFd zOe!|_`G>@buLx)ows*H5RsM{*YBPdl>|M^*wEOKkSmRD7k?h;k2I9u=f6+ASWi~dB zO zk7f-cbRJultC*TT5I1#)sQ(%vPH&Lt0eCKd{&||mbR}h9CnrwlwV`kusfxi3M@tu@ z>GbNDeMQy6mZwaccbfZ&RLg+I6uh zy2uTEg}j6I&`Y%m1Wh6WPz$WZ!ywD5P^(bl=2Ho8ho~E)Dwv)zUtj~fD3^~(g9t`M z)p_4>eX!T<6G@W^yRvn(%Ud8ug64vkY2^E6Qir*BdoT5Z=cR)iXlPO2e*F*|Q?a5} zdAJsIyD<|*EI`!9cl_s7q9zEv^_?lU3y$G(jp6~_arKo@xPt%*j-pm;EdyTnW8S(>$1t$Qee zzTwJt=5~uw5?eqbF&7OTZv0%o@B}3n-71Vts7#=Z=tj>T4p4kT5DMMYJ2=C4a zhPIIZ8Q8rpw)8xeL}YEiB7zR!{ZXP}19-+c2FQE%2RT-Ea{Bx<^f7PZF1ev;m1Rpx zv752a_q=Q@{xSucS=8A4-?54Se>ZwlAFAZnMZ6AONuZ+TOw#{eA8gcEeV*j*`t5`lML!$cYS;pDY>tDY8PTEs-boNfT87y^*! z?2*rY*mE=t7jE1^Y(1Zs#0=FSLoK$e;1LD!1j|MvXd9Mm7l^KUTM1p(;cW)sF|;vV zXh1>z!O*0)aJ*^E`U;fgPkaj&1hab{KDj!)J5CTg%+f{o6z%qvxMdkv9N%#lp zv}n+z-H-)Q&=P^|$doS=t`89*;ye=(RyrMJtUW#`w;>Ww*S|aYS%Tsh)BYWcf{1Oi zeMVpPsbH);uJowH#AXRF9oeCWUbRe0udS9xnh!oks>W^v&f@GMGj);ss@*GT00-KG z;%f|ZR#$>m|<=C*}lGzOji3abJ>CAqPbuKT~Cm7$eSii0D}mb-fB2=;Lbw*2b3ycOG=#yw^$*?DrZK3r6DrUjHoG9Oi}H}& z^2gyi&=dE%qDuf8E{ZnOY{vHBK z<@N_-5(e7gjV;O`d+W3|$7tLAhyAC>l5fWjZq_{K+mvKFr2^VVjsaG@hy(s|fM=+1yTxGljm!qE0n-Dh`$ zApO?6^odHx1ClF5LdV2bE2qg4w8YLBrd5?W24CYl#=7e<<^B4gkdM!LQK~xOONnnO zK~P61b6^PaL#}nrFu~HdSS^VUuwazz1&zL`F+Us<)mewY$+;po1&#Gd`b+6JYL+VWSkyrLYTO9>{Q7qWvyHXS zMMlTXB_isq$i_uv^;i#BS|xGYpH$4n{23o9iUc*C7Qk8%q>HEC#FNRtR!V%tiJx#$2Jp0pUlYoFQ^65)(0rnahP+@Fh zIZNP561I~UIlm-5y!-G-X5939-I9q-x zPc7vb*o2|J4&y}5YL~6dOsg5lfDtI8QIYzslzEV^^^iVTQCL2Y(^mJU*yZ{OTjwpwyL6rr>au`{kq+^hiRH z4H_16xJNsy8HTum?NIJpr)f%7W9|Xt9&R#DUW_nh%L0xWTT#pBG;a2_>XYS!4QP~Y z`t|gC1$|Wer{SeM$V(>YYONt^yV^ed15%5EgQBkAps%=t)W0V=#>{a)Pa1LvFb!gU z!|f)To%tfI-QgTPd_4e4k-Lg6(j)efF}kLtayW;u`>uFPwVoL=az^1cVg`o}Dizn9 zq9}Q7neO8s>88qZ`KLAdELJ4X%h_=SZRR^mSZS)4N~1oZlZ=elJ+5|Ku*p@cYuxWMXt?el%$5*y zO2-@TD$9hl+u-bdb(31Y=h;N6_{w&b*Pd*pyObW}9sM#l$b1Rh!|&2JiZyv7P2S4gIpCphDMm`K}^+$4Rfp{4Ro&WlB6!D|X> zd`65k!%(#aS%#NeKTGaZ@oQC*8h_|^*#Kr%PpZoF<7kmu1{%nL)%>{3=a5OmzbM)SBolJ#kvJ`k6}KjdbteX%>?1% zBg!EW=OUQ{7TPU=1f|plN2{6Fevcjb_uiMDYQa?tF8t>#T9UQWNwx>Vx+@6mvl1oNz};QvVX>ffQajdL zpMpO-E@v!YcVFbe?~_gV&gN|L*{EEyroA#KeJ?kHYQt&X9MR6ef{3fvZo~g39=VIq z(3ATz+OWaXcB4aDdo_xAr-QhzRCs@O24wOG($O)$*}5a;wWMMBkxJZ;L2tO4f-e4p z172H#HPu3dYRjTbzJc=`7W{7|ka@iRi(MNX!yfhLx`%W5Ome88G-Qw&-_y)wf402_ zWB45-wn@MK0}XH@P`7Y7zoUbf!)WW6zW66${{zGeKU@bZp%t*l62kt!wTzKk00zOU zXQY{9Il27VU*Y&>i^cH< zrETMo)r7{e>|mE8)^JK`B?qAl7e^v1?N{*Mcv3~rQaCC36+(NkjiK>Lk zO!6nXwteE54)-QWZrG`CF7Pa?UTc^fs~#M#`}uqORGB!&p=MJSO4bz+Jx^Bwxk8CM zb<2DCfkv7p^9GPpqp>JQ)(`q~Li`t>TxUSiP*eSs&Eg=|WV}Q@Y*1vjFtp|G-Mmfo z?A6IZEc!O@SC)`WfYUIa&9ak=*>KN$PJ`h=FhdSNAC8Jifa(XROYtXcKhru(Fg@T8 zIu_qpemoN*&}J7hD>LK`2QOgn;nx~^tE$c;+1r`@<3jAJOkJ*O6mT5ZRY+P72z}gpj#u{M_RIQ|>_qP66DdbDsKg6ImdCrqpFEj~g4Ii*g^Zba6lUMcCP2bEV zl*#P;vUa;F@?)=ksA22bhPCXFg0SDElNrw1FvupCvyI+OfJ3Q)!?@hu5X&nK#-pcpX->Nn5%w~SgF9vW)Mo!obUB1g&V#{l z{))5-Lxd->U0OZlmBKGi60REwj9~3FoTl0CbF?1+x9N>HfQLmxSSon7b9f5)3qy2? zBxYO4=eS9Tvtl(4^-;%v5q#?ePF`FylK&E)*pr2%;uevq6fA1i`%d(cj||ZzZrx-C znE-fw#`=p{T_<9P_H=)FvCdb}TNPvw-0jiXY~m*@ zW&9inGD4}VR3{C1DYlgXlzbWdi8HX~w+f;Zd|TZrWUeY*CC&-%?-QhNI6y{H47}AG zGMmtR<+8a{GH!CBYdUhK5(T{T?2Fw0u1XP$yx22`lXh{Flt~R12J{Ps@@YXSIfD$1 z{(knKRnD3Ed`SJ7m51l*R%+Ak=C%Gtv*Jq6`i&sleJ?2iRW>*$&SRK&GXxRDMMsZa z2>Ko-Ah$o=BDeARr`Of{hQP%XdnjJTXfaowKy;y1zUJYC0oo5B@E8Q@dxa+#$8KuC8-i-DJ@%dUS6J5m`h!<+C;8v)>kP>1K36 zPdu5}3Sb172l?<|;sQ52YZaU_wj|7(Wo`EGBHzWKZlM!fp9Rt38R^u zpUb)0@~${=fcQLyt%2Zwjt3E10YwU0J08_n2S=5wrBM^%9uB})uq1jZjctdW2-8MQ zBc=W?OyA3YD7geHuo;Zn%v~(Mv2XXh-yCVh%pC%$NI1v;F?lhPKf9) z9I@Fpb|n-P#L|$u#FIhB;;Q$D)briv4`G=IgA&AX6iKrLFKdu2E&jd$)d3OVAjW8z zm@HV}#PM39dWMEnL${M!gQm-ZMtol5C&Vv#x^BTOJm)yp*eq_7J1aQ5AqgPUS04w+ zed@}-lg^+h#hrB<_W_0N4O=^eH!@UeRZI9?Q<-q3!kZd^@#egIDEaIG=_bwL8mxI? z;!~imR&3MVfAVP5>>_;}G60C0Q(omct!w|rlM#%>7Z8u`dS*%9_n(00e2bf7tqv`E7)vDv-(*LYOkiGE5AuR!QxWDbo2KsSoVHfAwdbmJqNpk_u2C&0k{x(X815w}>VD-JHB#^O@9kBr~DfJ2ou}vMS z;lNjodbDr;ad@k}Ijw+V%A1MOJG<2AMfpO-l9S~Cb_O}H2!CauvMZhPQ&g)dF@^|G z$2Y!-RfUS;uGOxTAF@*O#4wTbD2AYEa~8U}8Fi#SX= z1x3OEf5nq#K1ptSEH^W3am25wX0P;InZ`hGU_!SkV2LlqSer%zZi}V-*^m#5*G|s? zPsMnk+lSX0Y@aWNP&K0o2x96eVHM8dzGM)>>|sGZ(8AEoamr5&TCq&<;Yz63LH}<- z!L!jc9V8Ay5Ep*Ju*;2cJxs=B3AH_w8NRt>nE&CQw2ygV10XXa)LzQOu#$9vzKQkp zEiY?HFIJ^Lf6Y*-Lofj_<+V3Kl72ioNY3sI@VU-ErIWs%Vwf@Nxdp zF=_=@K7ihD(Wjv4TPv3ODqqrH({fJ?YETkRf2XSvqR1j+Ee!uH?|ZzGK;#tmsp5W@ z&a4=86-j!Ltuk_xq8OS1#h4$dy=27fT$m;^k^*wVhiv&M4RmaA)4WykBT^GuaeTccXE&(!DAU}p!^N>b5uo0iIqSAky|-40dl-Im!S~BPze--`QXttkoX*8?B+nW3i6e^~U>KBa|<$4(bfYE{j zpdWRV$g-QIi+xEKK}liKNK_WIPv4+*jSHP4+=^p!f97ay5&I;FsXZ)FJVzF*;8-cD zd7z3c8u8gapm$sH=k%ndGr0vXyDRGwduh+WCYaPj4_) zP7|{w{AmcC^@oRX9q@$aBcYWYX4?PKoXB5H4in;^hE%|!v)!S_sclQ-+;0=c;I zUb+&hXSAJIhONvDVDD^^#E6Pugl_hHAmDf}6VW*U%%D%uT>uG7MKp6nZX9P$Hl$26 zB+1Y_=v|p~7izwx|CnV=0`$@M`DpRo1ZN zoIJw^^VXW^E&XP{*Yk$vayKEQ5t1$7TcPndR+*)dv?i|zH=98scWl1q`VdJ zv7Ctx(et7dAc5fSDlX?^)kq)OuUoEAM=O%M2&V{Ck2o7%FLHYG03aE7U373Oa6B=c zoN1B!66Vm|BTVh&Oc6=}ZZ+DoEA~d9w3b`oM zGk6>8v=eTc`ZNunDlwJpesyA8{BBZZa{5UhAM`g8eXDhR^D(+&r!r$!6q0p*Np0$I z$eK=l&!GCbJLFT4k-@o_lK(t25$Fe(mj(WZdLS3XjV{ZCw*4iL5_Gw?UI#q_yNsZT zJ_`@qZRk+r7=LfQ7! zU2h1Rd%4ibP|K>zkr^tYX;a_0&RBjdF5HxLOHep*15?k3_$7w|XP8XqM85R?1eP@Jkn0@B* zC*7f~IQetnp-%uvSrTnsK-`AZ&^^dWEK0k-E{uwM2;Ahe#4 zD!q1~YVBy(Z1B!hHhedb^N%&5T@Z6an2>r6k%E@#EIpm{+z|$eZhK6)MV`;OWJRE+!fa5weE^%7f}k^gwBc=H zD+yK?c3b0u^%vzK?ka3#U4AIpm*hgWnJlLS|F;Ze2XSGRYrJsOq^FJUE1|V~tF?L?blj-a=KtLPq?58?smh3$X>r7-j zeP>A$AT>Te`eZb)gCk>h<6W7R;`Z9(eV{_YoaYsxcJZDpa~Y_L&eZl&o}z4ZSqS}S zi)ua6NzAJHA^-YT-u?$&!omP2>m8Gh)B9f4GJBnIGo=<3(pTAw9sm*Ol_DIoORrBF z4U%y(bk^KR_wv$kM1zqr?r`-ohV=~^FWCE*N98?aw5!V|hS2-ESf@v=3jnj}=2wl$ zUXt}B0~7LGt`2$+;Uof?sQA+6kG;0;7_KmG+3@~8dj~97KmzMerw2f@g65V}&m{qu z#NkNXvj6~vLP(%6f}{3e!)IYQ5&H}g04MA|8O9fQaRuH*n#@g9pwbC@wLKNp02=o< zU~32OK^BH=@uy35-73|x(@IFp-&<4cso%tU?7#!&BKLrCC`a+-wIM+sjBdF4>LA#P z5Bv<<;tYx~4ZbD!h-SSvATJ#`^nbqck)!tn8C1*fvoIRsry=3I8D$NTCP`}=M6hkS zqb58fIa?x!m9iHtW(YhXwD8_vR5E78P+Z5LN+>PX$~-Wh@4TEM+ONm9QEXJv#G^ zjs1~OO6QcWY^)VrU}IyD^KZe#VS2(1gocyaLfG4WaMO3S`}neRd|_p|OEt?GehSdv zM~K98!H{HiVxBca6VzG=_`4WXj^Fqt033zvBCf>Pn;2$$j_$j|Fqs~|Y;vX6nrmNe z;FRhb`gT#I+tAa2W#GTd2OE#-O_^I8FL<)=gRN${2aQ-I<7-iA)@v$Es12AC~UVN0Xwq->p#f5z__L^3l&Y%fvm2IoRRM(#GF^l!C0UZMN>g0L*lq?BxTv& zE7gn^@nN7$URI}*zHWNKP|l0ECT302ozVe(-q_(DQK$P`rifjpd6No)580jAecAE0 z6p!NKtYufB5dJ+QcLV(&G{n!I(n)e9qqyvtjC$NKKTcvRDhUY~yAdet{96R2m}P%> zez3ppq)a?xd@VX*S zlECt1UA}^f(X&4q-IM+?FmCxM?4woX`+t03tW?6W(g!gokI4h+GL_H#DpNT zsn?Ee=C~oa*!v0L9Yv8<{PhjlSOCL5_V-H)+6KyC^WR;oh1pOhMh&c9|1c>zf;PRF zr<<0aaOG=)vih ztWa@YoKWL=SNimMAx&ii2Mo~?Xb}dBr`r@_JMW3 zzC8EMgCwCdL7j>6t%;(NCi zu%>j$D%$&97A2y(K1O=mTIXDdCB}0A{ds9}d>lf@A{DI0s!XNj3JkM_LwoJS%wN&N zoX3Ir*yazB>H7UImU*!ofpt08O#we$U31L~$lX(5LRQJR=}v*5+E?~BcKvIbEA9rL z!KAfY@%n%9*NDo?-Kyz{yiB5BE9Apd&|v{w(KE-x*xIo_n2CSEt@)CQ^o5WTkuawE z6sMy#*FRIyXT5_sH^_mn(km%v4DRL&2f>q!1U^8Hy;gPTRLf~d?yx2Hz$$9%<8=6o zma!2pozL&TTH5$HXrCnfU^QfRuqM#d#4_w0B^Xb+d?l@xo(H``62C|yF=XtsP4Hg? zMy49Me3@Gb3c81!DeEl&x@s5VB8W2{EB*@n4T>ESoJgo9kY2ju*tM4FZ$9T;6l*WC zrp7JVQAM-9;lFbiV%)do#?5j_YQc1qXjkZ&eVSl{LyiM&J1S>%@n#Q=&rA(V1>I`&4ejq2ccl> ztY3nRE`w*V9r%3(hO?HsXX3GcGD(msqbTk;r{tp~C|0Gj(hX zTDcI?^pSPN$b!a4C!&2HZ_|r@v`ac5inm8QK-K246crYkZHz@gKnn48@dS5g$HVy~ zIFQxe@r#{0cZ|~;Bt-!pRCwSK#jlI*vs0}N^>o_C*+aHZZ~u8i zDRpsY?lwu{Z&gZx(F$_jVU;D-#?;P$h|SIpJFD--S{Jl3>?};#x{d`eJu1T&Qp_W` za%gy4N;wan5aMe5BbD2Uvjm-%jWJja<;TSjZDSa1N~vJ^=n~j`Q|lqS$zK{0+uCWQvvLRk`;+RK%)0Usj7w<)sNw_pPg% z0ah?L()-%Cx!fezXL%V7wIAQF?4-%V)9og5J1X`C=*!rqE~A)O*5ONSs|L9Ifn;7#KgGb2pRYtRGwk?gsF;vcAg_Xo>FBJ>*38m;A$^X!j^f7fF0lP$3Q1AkW@8I zwOwYJjB`l+E3B=OTFFE1W)Fs-&cQyL&iH2+o8{2Ew5_@#A&o;V=P`5iG= zf~izABniCy6+H6~nhR)muVKSxSyD=%{7Dm&>&3ZD4$7SoFJ!odd4jaQDpH7TA>!~C zI%d0oFH;H;GLcx|X#>eLYNE^P_ORjL$Gs~$4!Ez~vZ>icTYwf}ANY~T)a~af|NEL7 z^N-AUb%kzSofa*-NYq)}WoxwjK?UVN=H*W?u2+R~UsxW)99RVzpv*UwE|W^?tVK$jy0XQ!tH_OSjZU;7VhZg?gg7`}MtoYK~hgpuOhz z%@n<;OrRA^Si#S{0Z`e!Gs`Wci!jpod(>1XO0OlG7?-4o1w=Tj&?4Vf!HUSkY@4R@ z1kNEAB@_((tFv_E<4kgT65H~j3MBSDZa~KH6L+ak_{f~agff0X=-)W@xW>uZv^80m z5Jc6*BN(S}VE7pFyF3&rZh}YncTkKppcnP@3WqRx`=*=W$L)j(a;;@@gpN)v{#~}Y zLaQ)my-Ov^<~iK9s>%YNU!QJ#p4hdoH^eC8nq|aEzjA~8Tn_>DO(=Q!^8#aRo|`cJ z5$>r^rRlw!m>oz?_8&B_zS=7rx~xqRKFiIer;DR37~&7JHoWH<#PnURHS@z;5k5=` zUn03nlc;l+We=OvpqrH(Ad;u*bs*H=Cf_pR{nk7U^PE_*q)P%5G8ZB{!uw1!AwueJ z>rJ$^6F830Jo22nyt#ahDhJj~Zen%LXyE<*UM|WQ+dfZC>`?}7&ZcvTw86k%m3SpY zrB`ANe?Gai?$*FkYOlA>2hdFmF~2`sd*sBzD;_zURNP^2eDtcIgv&A_B^b}4;1fcV z4tC+{>!`ij`$XKL3I6ttu|6TPWtL4Se$*>4_-#*m7Te$+3$;Iu4LwSPSTA@a)y5Rc zTXLsU^MBZsH4G7Eso+%8;smEa3B*(&`yC4+y1B>jGh2a^32c=c)e_?sJ&;$egIxWs zP_hZ_;UZPRuUT;zeu$!xNq*Z|l*6B6(#W+`cUpjrBW(+B!~jl;`^0$5{K z6DK+kh@T&Wzhj{~O#RsVqvz{~%7L7YA>Aq>4;YEmx zR5>;zX(hku$s_QEvGHYa(@C0ZaFp3TY)sq8$LNt#Bv+RSq48VwW}zs9^n&$tQHTT! z5rDd_diwQdGy-eQ(u0!xEdUpxb!5CtshYUzC67EzTr9Ke^T*57v}xbn-I6RP{-8u^7F|LH+;#@ z*M)L2vd6lq2r3;{xT@rD*Syjq+cKh|5TXv=<^PP1IAY!88N#R*mwR;^Fs-FAk@cW> zjxr%{`os$~Nd*yh^TwibC^Y}wYFsp@S<|}-Fk@ApI2q3Ub8pD>Zh2_E2?5}K*f#;B0?l~aRWfQ7N}I3pmT2fp{f!Zz@}=u{LMW4F^Mem9iQ$2+;Lor?rZDv`21jr`#sB@NsdM(83e4EQTg5Ah?!3mYhZ2Zc)4? z+x|E;ahPSY{=Kglmj}!HfvybLfJR4x-)9?5W3V{sMPDn3x|r;c!)s=C{WIn(DP?9^ zQG=;F=CDu6)Yqoj0l-+cU~Up#J=Cr|t#USwwMn%cROsF!!1Ral&pFNg9!C(`Msp_M zbWJQft`w#KYlelBV)*#P0}|OD2Vh@qsi%Ht4?2M2@(y|K7wzqM4J?RSW9h(a;{lMh zy1zZ8+s2*8q5*6;J|2FIMn4(@16?`UGT*TORRt=G?~R_dc$q?S1Mr)w_Js$ak)zt* zaBJ3~w2nE$oQOW?hrAmQy9V@C=x6Ehk2`5PB9nCRpl?lAT_5g2v<`pJwl#0QfzW?^ zLJ+-gH=cWZGqJTthM0d2=Yp@JBub;^!)2+LO!+qTMF_3Z3ifJ#X~WQhp-BSU`xu!E zNu|T@NGyF~gz_T-c~3br$r9)o?sk^=D&VL!|_L(s<^8V;wcIDVDP@5NRTC2a4pC9P`Fa3txAY#4G^IQjKyq zc&LEO3qedf`kD8Vr(@z4ry}tL`zg~KO`=A`$YINX8$B%*dT@?Yd^KUY7PEd+P z7uIJqxRi&Chm@d12SQOmN|P^%2RuMNC#;Q#^jIC0xV* z;0s2$S-S9uO&u`Q&Z0_>EBPUm*Evg`Ag0jmZ{$y`V3qY8L(s1JjC+@AeQ@ypyHe8H zJl9JVa+&AI?1aM}%$N&_YWh-kRhvd-tV?gf8s#~=de~&L*#gAP9@J>nYAjnkNaT*19*qLQD`rm}FsFrdT`*TU< z>cl(Q3sT0`nGD3{^L^X>yvkI}((f@=)+TFBK0|5CW*Kaz_Y=rcfB`pnWiIYRR>=bI zHsp2B)%(HAOA1z>bB?7nB&TcC6EsPme+U9G8A{k8HkNrB9O-#-l?;W zwUzlnspg_y8R>H!Pa>8LL!d*ITsnyRRSpH#=q%nhyYDXap@z=G;vy(trD_=yTCatb z7;C4&*S+lwA68VFTHEUem@}FH{nmC>Ie(m;GJ0-60{+L&S-w0Y|K%kjjD7WzYR6qM zia^#r>84bUhK2`-1)9lD{2aJRt8S?6E=EPdl|X^>ZbA+Rxz zADT)94T(x5yIGc35eA_XV~RES3%k)LoeFk=nzoQHP(vOwhY!iz*R*Hb&!nG0(sAc6lo;X&ptH5Y&#pwUgm(X?9mO_8h;v2XK5rpCycLGQA2+@{4PVe@~n0vM0G z4rXhe1f+^?0JXO)FE9jdIf;e3AWfU1z0!qbEp;twwH;OA_9?c*L{x)h0c8H-=2i7@ zktz)#)->ZT2)7RWIGH1eK-Au<3^~`M<$5`@=J!BbT%=o>4ZcGK(xBk8nSmlMJgx|a zQFgLO;W%7xCbJHBnR+mg3)LZ=+ZC7} zPM-i0eQu6FpDI2$2_BgEt!4)Ct`%D{>#@k8D{h4MEkoEG>NGGG*;XYW_eM{lbIyYy z<;}y9L@oAO*%u|UA?6>X{M@4~3dAz9EGGTTh}6{;QXdrux|o#l=v3Yo98-A#u#G~Q zuJ0AXKxsa`MB2Z7O~ue6dA~Yp1_PDP*)L4sc^6;|FG4JGw?Pcp=30LlMLsBd2fjM( z^v%3AoPxuCtA7u_k^+R-$i~)qt?PI!Ll^l+p&aNY*UH&3-d>+=-|JinRswE1rsXA~ zv8=t0xb(nhb=*eP2K4Ra(2|Kf|_h^_f8 zmGZ$_u5_f=?k<}DAkR~ubwCnGK`^=aGr7=cC%O(?xslbLB0>WMu-r6M#P@smp{L~- z2m-h#t28T`oF0*{?`Xo8ISdit&NJ;is^nGt{d2Dl3m}=dk$eNLg#oE%j^8xqJZ@k7 zK_DMWJPuRfgn`@(8glU7je1!JhN`@lw^*6U8;*oPBu1| z+?cTPST~v641rrzgvd2d5FXVY{P-yN;ZVHnIQ`JeC${kI%5-e*Yb_RCnE9gN02Vu$ zv;u{z3H!k>fHR)`#S4CyBdmri7_VjH1OAc#sAQBYQ^D z+eD#Wk{1ZK$=2x(yj4;eRT;|+gGEfBw{x6f_GnP&>V&2j&tKGAOifTb&ZN3XA5gLzJ;y^Apb62*i`Uu?6j0uT)$`zg+$fZ|y+hSA?%PGB?>KfOo(PN|sqtwD z+hDd1qPVqpCwa1Nh6q$$*A7JMkZN~d0LkKaw2YfdrF5?y`%Qa~S4cj~?X%l}vB;S4 zCO8fZCUyA|o9!R`XsR?mI44;^Oa&BA&A?5lH+N;6V^@aE{ccD{e&>s4oZu`4m7fksd zZ=$>ge;nKoFw)XLT`(eG2Z)u>izzr_C?@8JRG&Xc1*dJJ?{UJEg3Z^G&Z?F&FwS95 z!?)$4h%ZC~@+Uks{^JFKtoxM2;VtLfv<<(OdlX$qKPF&6MTvg_sF0g=_yoh4zr2JX zww#UV+wfbmYs|I9NnBJK4e%L%c_O|iHF@{gfFg*`A>iq8JELv0GkyoW^KBZp646^#etycd(k1*WEiB+=yLQTbl+5(Y_)V*&W{PC5E zH8bT`yt*-&MVIVd+e+soNdG}U*usPyOoTAtJFwzEvDZ|R+UK)Ri+J&-bxWI)u28$^1n zZqwfyxB6zJ{TfFi(};2^PW+iHYv8fkU?RIWbcVD*ugjCGC>L-?_!UlZ^-Y4n`_zAz z*at48sCE&n7i(%FO7TH8w=aZendu9emCRzUfBBi zr&Eocl$nXhzQ5qj%wP<=4c~D_d z1tIe>8@CQ$j|3he!vB;if{V^%B_sP(KG=>HqkRtx8eA}~rjTnhnDceylT zfD(Nb9-iBi1*QGH$ktTZ1NO6Rz#fJJisz4?!W&UJ)zCz@CIc7bqUuOZT@PG+2TkE{ zPJA65ycv2Ry$w?KVJNj}yT9(5aL3;a#~-YGBw$j*!dhbD$f`7$SEV3839#C9(5wy_ z)qUqx0MVmgOm?(Dd(ex}c+;kGIhyv-XSELrRrd}A(Q2o{cgj;dxyK`wUNg&D?}R#J zf()OZSmgb`|F3?*)j~DHy)vc1g!qRhKi*hnus#r;d>Xa}=bKxhE$B=$0oI)ETQAw` z?7+()`4l}5PHsh|XFFRya1r+4VLURGh){WBOt89lxCt*33bf?b&(4HENNa+q*giLD z7GU^pkQw3F^q00Y@Lq}O?G5HtPv-ec-ExGKZ--i5Fx0IKCTh^lEw29vOYM&OTC zo~Fz9#e8NpWjI`Z50d>KGdxB+i#ZyY z@doS<+z9l%y}4AQ1mBdqv%q4K2~|Bb%q%kOlOlNII^y@?>43ma`N;;hm8 zOJw%yp2P8Z_PB(JQiZEp|KYi=x6oCkr^&uLVH2aHTNdUNH{`ZM(z6P9?_@v_n{JKO zJ4C;yHV6!@z4bix1-RkTaUDzeO zBD&jd>{TbUpl-qZdy$<2+W?mp8?`=&w9v}9g`>VM$b4w{evNJeyMf@R51pQ%$xJ1mo1j-Kc ztULlGg}eatY4|Zn>U@t%+~N^7&Da~we143F3uo9l|1KEhF&Lj3sls#kZLxuDl8pHA zAm>)n^mHMJ-*0jKDU5O~g6VDD8M9{vCVIioA-~ZDQ26q&O@I%Z49yY$q5$cRJIuH6 zZ$0Or)?QlK-U?g?V<6JUZ?F>OF%`UKm+mALpMvmzb6?Vk@ncS)Qca;?6@0Z*`6XC0i-A#yDx10ws{*Nmx9*#yNUiCjnFgsU z)t!Ve;R)(r1SJCvQ)KFVu8|S>*=uv{3Q}^Bp14b53T-TA$pH~`Qo@~@3;Q=| zCoBjjCy!w_GDiRKm@K+ z-g^V#cC?;r=QKg5tPpEs4&j3IACqHd<-G_O$Qm$5q&=d^sX->iAz70ifS%pPE05#d>aj}9q| zte9|x589tS+AwvK1@(CqsiK5T|=;j`wj}- zL!Z;L*Z;K+2B_+NY&=icN^ak~a29cQ@MepdTEK(beMcnhc6^MRXp>hE%nbp5Ya)0X zpum}_d4c?Gf|29`;QxC|jX8;!Y<-B&c@?PEU&tH%rnM*4Na2fY1JE`&I34oy(T;vF zt6esapUY_zig^f|FgYq}lj#d6%!=**ncw|KIu=#P<}dXJy8ha!UBDKpYXpwdDpPLb zp9zx7h@=X&>o)}$#*$Id#dQY#?ALKIc{bEcqMpuUZS);(71?eB(khRgd6y60l`&0GgZ&T zSo}L>o4|Ppax?xnQXqWb~+KLk^^Q~9=B}YElGKU`yC%%QyHlmTakd&xQ zniuZt)%4Lu0_k-wUk!-@0T3pK2ZA^!7N+HcMt^kvpU3@X<${yL|JLXv=u|Dt`t^TZP+UN)0eyCmtK-CV7)D`1{=YvOnt^Ff1uMVw3!JW7$``&02NbA$SD{Px8;zoiJWhpMy3bLtN$Oib z;He*RO)7-u5t0|*xl9Z}){?!A-)qQ1CN&sne=6`APjJosQ-jG*!HXLiJvaK|BLTV_ zF?iaQRCxB;yMP_$vpyT#jAHT>-R{?A3y_e8bkB|kjgkBoWDmLV;D`BUV;DV{|9cn> zYR8E%n#~^fT1gx;P*jNB{&k*bix*%u{aDKW5c|NqRf$AuW@bKY_*pA9yeBO9iX)eY zaG05(9LIb@4DjNpKfumj+}yxIJFpqeiORt;tR)Z4I?sJ+^|qP9SN&HIU1|YpyDk?` zD_!`o{h93U7jMl|6w2{nuj3B8qRfd8lqer0mWgPlq-jaUNLc?Uqf{u z@|jk+{z#?e!KdV>>hR^8DeFEsnJO-t66xTcPaa+Emwo?+BMEO?!azj_vH9%Fi_54S zclQeyqUbz9Ij?$LBX(++9dtI`l`SuPz1GnC~f~uYU z$^uDxl&p=4R`QIg8V@=2oB;T0F?N{6GXny#S`^;$t0Ad{j%v*t4p=D2dP`Lsx{QDnzaU~W5rQQcXpP+SZCmw`6 zFx5GQF7iW#8?D*nD7*s<`jBbULu32&;=r|=QU!`S!VNN4>=A-M)~dy8dcI9QT18X& z+O3jZkY|M;UGmHp~w^pF(pOLoQRhYjS)#sbFUL&Ti&@r`$tNrA^@ zl<$@O_j^Mm-{k8{Ocg;gb|{i}DEYqiOr$$3dhoky^tKTC_`JgTdX@MKNV-P5u?DB! z*I$)W+y>e-X4o|f@1(&%>>a*zSb8K%gm0d<0Dq@diCd+YlaLR;PYwudZ|%L79h3f_ zNyOugM9E&_#xe9OS{~NgfS-}|UN^*0(wm!WFuxx4F8&>6i;GZga1J6yLJ;`Se5j(W zyxF+Xw>=ieAYfZAu3_~p&E>?J1WS9p$q)~U*yn!Jgiym{`k!N(Jt9C4l6M_jxsdw^ z9{c@Vc@R9yVL9kEl`+wOlA;a;wpI!6*s%ja1qpZFvaQ~3ToXeltWRGi#bA6L!WKQmSr=7 z;t+w%I+=G@O_tu#eMMx43};Z)yw4Ua0Rp=07J>;P%C|WyGlLcl*&Qo9kuft|>*(wv zXH;TuRjc*4Xrj(M{E7&K>un}APz#IGHs3A|BB!%C8(u}%w}kxpBnS-M{DsT1`KX;S zCgbYWmCu(ht*IgCzxnd9v0DbrVmAE4G9~*8J8fzi%u~CS$i|4To?D4^J~8%mPB|=> zJ*UN(oiIx#%)&7{y(G;;SYFP`g~GYX`5406DwD0~t7eLCyfW6O8Ht?e#9d^qs+xWb zD($W`KvyA06^^b*V-@d?2pPRw9QjYA4tZJ3?3HL*&3*aLcZc}CBD2h0RESndN0fn? zoDHiSU#I1r&i^A>@R+51E;+g2jb^Vom}C{ig7c3y|1DWx#JJG#F{Ti7f_`#R93)j< zF+$LiTqu?+gWzeNLT~f=+7r?}_juo*xuu~~dkNe|DMs3iaCne+@_|;AHO&t7Q_C^C zD_Z_(R-HtrkL5gH)Wnoa*3v&;U(Feie+4!I&%4&G-{i*mAj-$!V#1Z#FqF z#kR;TEEkzk#E`O)K7a4tp3D|Fo0<4|4PD*iIyZ!aV@P2FRBa zDOievCsc1DCM%R5RFz=aa&IQu>??Hgn&W97l}19MJBtqsf&V{5b1x_!6(YxO)I^w( z51}{a|J!(D@9GVFd+k#_zh3n_42m1~!_g{qXFMK95=ZATw!@2@2;Tl?6Ne1ydK8Ng zgbk*``n=XZ5_o#q;crD8_h$~FjXj_I)_EE7L@=wq zqF^Q9*bLxLB8JLi-s&9}MpQ3pcjH=?plizM=&+s*-6FV#GWwK>IiT_`WN6osQ;p6{BB$U)T0 zm~Mt4as94$C>z|U#yK6Q-)j#@Au3TV?>bz#hx3|XZH%vBS}?)Ea+ zo1TPCFPbAfzEuRbfof%eglt+ZWm>bPb2B4|$2Us5b6xoz29Raucu+d}?SzD|CW-dB zAgy_G8{m6mjiHvOJ(2joX7Bh%N!Otd45`E0dMaDE+!37S9MF`|D>9`_7Wa2n;f09? z>l$wfdzBbz>6!vm@4h`^_ZqBUw%up+G6ZfcV1Tz^5 zP{a3@+;UK+E|adZ(I{OUC=s1cv-F3Q@kbfnWLPET43k6iB$0mxHuhPy zXBce;4nD&HnRp9?cqq`kbAD#rlPKMM>qWeIIyV2mx;J|_*hH_O_jD=q^_QyiO$j0) z!(6C`M_H-au2UbV(XGmv@;I0MD+(0H(&+QULI9kDWsIwk+UVD4eP_%X`aHa=W+2*; zuY#Vc%o>(7`_yyeXCA80zdMeUe91JzGvvd=d!xieUrJeisF<4m&OmEVZik!ev`4o2 zGR2GS09ezG9*n$eC-0GH4T7w=as~y|Av*8N$lI!b2B@|;XUq+yqtm6_mMKC_J=fG5b)M26HK~fTtfw z=L~Li7gsbL7UXp>G!qMdhT~)Qv21LD@a2>A+FWsAVJG>Qm=%ozoo{4T(2STMz2h&WpqKPww!!&+}IemY>k@iJIUV z?mBd{J?t9K^|6mKRbV7zv1=+D9{4v&Z$)QFAi=)e8ib1|xfeNeICdO|6BPr*Te(e_ zWDHBo9{R{3`fl6_=vj2-ak;4HYz12#0K2-bXjnl_a8JF)y~3iLp7`1lbmC?dp!U{T zA*GJGN43k*XP4;8NKidpoP*OPRR(s1(qY=+CEJ|*`UU#v+!~o2n*hbZ>8@%e|FXxz zf`+v^bTB_rrE7E{*S|iuDjh{Q zmuaui=f-!>S0X9>ERB((-{tuV(3|0~5%NrFwQ9Up`LK9}NkiDE-wmE-$_;YUcTm!0 zYx1L(PrHq=skhxOGxi#YkNBNxeEu4}B#G&=FgYr0l$P-S9G(~NZo!hOP%OvQ0f=!c zyc*d4)=WL}C4w!MBLY8oLKu_OKzg^IgMpT6=uyQ+I#{{wUAZV0+j`OCrX za@8*G^c|y~qj_N*U+(Od>|W;%agqKJY{HM`2F=K8qnqC9Kw?s^*-y1BH$t|Fz^R9|@P zz~dCtl4AqVtO?UFmCeAdAK673ohg_%#9Euxg2kE6urw_>m#B+V9fbpyGC`FcUf2_4Gf|fh>=eBPF`^hV%Yq)^UMFQwGg2P_{u33=|1JW*2 z_vZmub7m~cA{^J=sqmGV!4TiAlreK)*w!n9q}a$es|&R#yI}Hl^W9w{D|fpS42R_3 z`6rQNqWd)Z)9(%VJEgZWa4h4>?IK|~gp`+~!BBP;+#`T*$Kvm|JkkvH#dhc&BcQaD z9)~B;FMOlfa#cc+ZMMkOE!SC_m;sKu7hcDBDRVKowYoJP0Ghz~{$b@|Hw^=wK6Vz+ z^}Kl>Oihg3F}#})5&s%Wvlk{glm^&I2{hqZYfSb#!WY+ zNbKH4Ck$Za&Jp8obPf?C*6-mG^fV3tCU=qZQ)L35$-K`=q?=GRRv!zCdBF->$}|QQ z{L~I!YcdNag+wOb3$pY@8;l8BKl6WEpr9T%X4W`zB+mrayhhe`U)D_s#%ZLfE9arl z&!K6|2MUtPp}yx1>b>W)_FiULpQ-A)ujBge;0nsq)o$egmuH7oZ|%4((u8Pu-lWwZ z00-oLq}j^nB(2@im|`$QYXS{hFB9!|ducBX20qs?Yo-z#!;!77i@|B&j1cuH%#gUe! z0Glb8YOH_3#_9cUh4h~M#Uo@+K=85RgQgT1k0XFZq_=%W^OQk7g#pSTx1=2TrOOsNX!K>IVW)4j zA!42iF{ibwbDoO+)L1TvWBc}oJvcB*PbABfL7I9SP~LYLSN1lqi#c>Nc^5AlVG)?3 z?KsjSk83K$fOI*9%kks?tjNTpo;< zPaC6kY!PM$q@1C%2>sR!2Eqj?A#&Ei{z9?ZCh0vsnqBKI61D(aKTIfQa3*_ua*Mh5 zo~Na{)N2crSF19GXI}hVeVf3?u7Yqdm8Fnljd}yiKQ|gb0i_p>zE*(dp{KjF*ZPvU z{15}8>CKZOG_y*hIoPxX1d@V(A(=!)JtlnyGMP+^o1-TVK?E~q)~9;pcTKoN%+pAH zR%wdaVvmHJvY5cJT&3N|uA?mKi8ZsJGpN}5u0LqzR-lzspzH{hYBAUC{b$;p5@EwX zY89@7MkmivoCf%owteaTRSfiFO{>_<+3zD2H7z~Mtw%Dq<=y587QGp|UM1W>#;;Cj zq(Mb%yb0aeQlT4uSOq=p~Dv)#r_5Nw*2|>M;u&v9dzd zUt1}wjmglHhmELNsEoleEDm!>XG(=FcU~lu4(Z3!0?`bcD*^6P z&q^=M)4yAxeU9Znkt=2Dz;3A z6tn`}8cXhq-MovXxAn21L6wD#c|p886O+|AH6-4%n0FdL`E)HB z6N-kjo@XYdSs7qqO{i-n1h(AzjS^A5|4XE{!DP`fs`f?K9z-^aVv&4!KOoK!o6biN zLubdV%Crznw&%@LwUz82XYZbC|7;@2L9DB=*;V+uYqP~E!yOJ=uUPWptQ2f|=dsJ2 z(%gWA9*dq$ap041C&4V4lLSU|^@hXmVu#pUXe>NDK79f|#8N*FYVBOvqHkWCB^U@U zY-|g3HwE_>IL_DCyN|y-&8^I598>>pbf6du@)Hw}FWEgG&!(X(5p0)u zUestIxnvJ7R=%i3n>aDIiO7cs1r65C@wG(8+nDp8l_W|KW>;~Ke~=Bq96sZL%%dzK zYoZQu-Q*Pl+~8hT)Rq&H9J=Zf*!sa(DEiqbF3pk{{(_<+5~a>wxbn7?lBG^_Vd zjr7%&s;YHKl;lLMe1wm(=xpGv_9?RQdCYtcPl`^2o<5gj?`bIpNt;D2kOlp^zlU1A zVKgYyU4I(fK&~f3mo=5HP79QH?x-yR@h2p-B7ot<(R604v;XMRK*vhYO@vl{c) zO1f$5)RW202R^0;s=cXgX+OM#FQ2h5QC!mUa5eH2?x^}!2&C)5pO0+p3hl4{T839f2dO-`|=c#x7 zPvgcl@3I4tY>0$Fyb@?%z{+iCr}hR}KQKVYx2qCjbX;`mejmZ@0$P6IW$|Jl%NFtd zI;Z;I88a!eLDxWDVQ%zJ;;9joIPs=!O5MhPy#4E3-7$B`cDcqz2ja>d=o*fGoPE@y(p?vC;dXP1?0!l z`%kn&J^hxpK^yCptXy<076bh3pS**fV|3I=p+@FDBr+t&9Wr>f{AO&tL`Nr6qf(JX zq58g}K*mpxYeS^=jab}2-EK|cesnM#Z)_xh7G)&I|9)D#ftQfPIjS4$>?xz>D2%!r zkrs^7Cf8s#Ysb&2`~e)PD6XPPp=3wJ>~lt7;LNTf(T$Ku?P_OSzLGjtgtW9|JnxC)x z5BPl?l+d)}K!Du+r^&3YYpM+N2Nn)sMjz~O zUTX_5yE|feK#S64xVdh{@CrAA?$>u^L1Md)l<0Ur!yaF18%xl?qCDgA=caHB5vTRj zcf*iY-r}u=#t!@-DMqbI@|M%p61z>};cf=6R1Y3(vq@p!iYHPfV6<5&8qL~=!xTKq*K}fnO%+&H7m{2YD69w z2&}O)9swEX%MEL{oSKD2`2Ftp3|4;P)5Zl2)EXrsWCzb#Qe}2dU;s#%wX*j0pJn zFN+r&{`p%%D6MwM#ye(6n{`e7Fg-2S8ZNiQlGHu9r1I~c`yMm%cW#jBNoXkBDF`kI zy`bE_$2~ETuQCTE<02*P_1wIvM}VZpaJ)^f7}n`E3=Z`B zwL%PMu{hXWip%NfSgATw{N3BX{wzB(Gg)?7w`wAb61v_*E~N-s6gpenkE_1Y-X5t{ zw-pTzp7M`OLK4$3pn%ECd2(qW)i9Sy3tC8FW2S z|76(6`5K*LHI9GgjRNoIU-x5|OI0ex5rrt1EE{7~LE|$af$ewZ&xqjCO4eA$o!1@< z{^ayV*sxPLm29OlriGTcL-4nPwi@Z}n_1|V-PRis|C z?(9$sG>zenc)7BL6~ zOn|G;fwP`APq+f+=!~QT#O3Z+NUZY;f?e(!#NFZ|cQ|=gj_xf(@44jOTh~KlVJ779 zc${`xn)BGX<0|&%ZJ~459x5?chDdn%0&2S`Ox~RYF)oyrOl4*%DxLd$X+hjw59x-~ zPdZv|=g^W!3u+^VE~EzSzs(m+8ds!lRcOY2b-Va3^$@dbPdD=X3gNeR?a4c91=$>V-pTI;wDs!@Y?lh(mb zGWeh!HA${q*|xu4{h`{P^2ip+{QAJsO-#6uAit+Jx_oUt{AWm3~Kv9Ro0|S;(w80 zmbSFEuNpp#Ji6XUb+HE9HM&-O zIy-6$D(JE;#bm;IvNm^unlBCB+5UnM+x0GKaH2o$v(J5*og}vj3fgB5p z;e&#!$5GQ)%q!cyM+Ls@5~(k&m#J3&l8b7gkq%|^|7M7(5kQ{!wVAt&Yr?x4aLg}-IVhlpCXSiC^Ga=CZ=chZ-5bE z@)e!06WVa?H0Z242Pk?#VhuT9e9k={cs>_ZWgR<&4u_7K)h3NO@haCAToEg6ZF zc<>)!OHyy2>ceU((X|KpsfnbdkDy*`dN)AH9~5~37alN&io;WbdT!Ry>a(x;_@AP% z(r6lun!>Yo+1(DCdKZapSQT|&AJ!H>8{iFU6qkJS4p}Me!Tb_E&u9afRBwUs%)$sd z)YKJ1Q(}Rv_g+f5i2p&5&R^*cVGYGXBG->J_D-B#a*eUY$pNrGriZrZ1UB}AKh8}t z_N^P0q>7k~e`fKV0fbf)YJQoSo!mK%CuJ$2yuTilgQ5wh0qc`xXbk&-c3TqdM=!|e zUBj&6kq^(iAypX*nB)m_+#&6_RAN#9<{G#A{!CaM*duZDidJomBfiOw@fy6mBy zXS|FMpox6b1==uTBukz+ekC$M){cKF#MaJ_5EN$Q_k)-1_Iseqx5q;x6-<;9kRLpv zt1WMM1Gk83t9I;_AD%Ft1h6szFI2yuh*35ss|(bw`Y-1 zTpVe&J{=OX@A)>w!G+^pNT{V#-rxNR;`ifz1u3Y(lD8g5HtCP9*+eT@`$72>V&XU+ zIVw>fO!ZZwE8H38J_T23rOE!R&MqpuO?#(p$T7V%*}F3IjtcVhTA4 z;G?-F9(-Zx=P{!Kr>%UC7n+B;NGG^iy1^hW#?v&;Ar%yI|%6x^v@ea857Nwf2W0{oSg^pTxbcJH*3*BQ&aq zk5kzVah&I9X#)T9om$49eBVQ=o1SV^&BmRP6LTC-@D(1eRj@i zl$9v^5GDAm{<)l#P}7e4O-A3IawbLIWR24VO8an5L; zunEDYrQhY_Y15+uQ&bugJ~Vh0B;iV_Ng?#rw?XeLoPs)XcdBHir8%r=_G^(6im1~v zB)TSKYtffu3Amc}Hk@$F`$c*!^B9PIVmg`*W4*O6NKG=OYS^pg(E(maseVvE-~>sV zgtW8NEtK`g7=tW?Fg$;Jvqe1eUBWz@VQ(-J^CJFhzvR!r{R*rf-_*~GZ*rZZ7EmJOr`dkvL5X2X zi!@*3Co|00p-8SVlcV>SMwwt~q4WW3+^pDwslbxHb%q=izi#HaY`?~OE6msy0ArYM=BW!3x+e{hO3mZ{>JV;KX|5NJzyb?c6_Fp+6nkW z^4l+1$%4DxaYq_z-0z7+4AIN>23!FE+pNOHEpke?4K(lcu$T8|wF0U4*Jv{i<1n7k zlStZVB7b$EeyFRJwp?>eTy0V?Fo7ST`B-AL(ICuIYB*tTr`23T3!AZdgV-Ox=<&^1 z)3T)c0TihH_eCmFsXWhpj`0}{o_X>#JNl*a_YY)}GNx_KrB?6_XrsW@gezqRYTzq= zK-%y2EfBHLbm_*ETmy;!+Cucwff&=EAE3}1dcUN9(wqsh+3$-LP=d$tEdMU+$2A0e zh37!~DLm4@IFu#har3ofeak;R(85D@Xd|7R-64-09wRtB!-QFTHG&`|apeo|mE@#0 zp@?Sg-`cx8?bzeyUIu@u4c&D+9Gp!>!!S?@>E}~+F2$Ie< zgz~{v$WvDMZ0cXB!fkHFlMm44W)5_YH2QxH3#<_Ra_;ZPxJD18K&v+A^@5t5{XH~FStQIYQGidi};!C~1Glby?C zSIRCYd##X^zi1p#fBbNm|7X8JbXRCfmD%_Seb?uXN0t)eC%Kz$96HLSsMoc>4*c{D$R7t(iR=CKq+$;8X5ELytGs zGqa2R1TO4m?=a)(4;WKmz|&%^6Idk1`e-|6E54M0gGytBj!|bZ$6Y2y0(Y!*EvNN} zlC;7>u`Pp$oE6g=KiQca2HtgO4WEj@EoqU7D#5tjrzm{}S5j|rN;L~l@&JhacVcU? zHB}E%(h}Pnw7T3IqMYjyM4zyUVpvJE)P}EzHzDOQ#`1wq2sJz?MTKi^Jrk@tjiQWJ z_U)HA@#qxmWPw%6Ty0WRv;tNYuU=&P-Q>6Sq?%hbBw>$mdgUWdsR2gmA&bx2umLtp z20PjKIYmm^2CLZ+*Ke4m<69v!ONju%1&x!Z$nbp)a-E;0Jc#3^d!V+}89>jwjqwKY zqBZ_Tn}R%1f4eiyX7SCoTw^rL^VR2Why0G1Ql*Q7s`*NrC-I-9Njoi2IXf3LZwEMu zqW>Gn38;eLV<>hl5D(WNAo<-k)k4$Dhru~5L_K;5l_~)tuv|J&|F2$&*+r|o_Np_` zNT{f+_X}t@EQ>Z2VACK7;wJ-GOxiPhsGHhMpImD4_RC7l8XO%4s27*MmPm6X93&N7*d!yUc?xG2YC29Nm?k71FJE_;*i)B880jMZ=D zCAGu*UttHfNq#;`nDJJjwNuqka3f<%gT1puS+;&AH_Z)lPE%FW4m=r}KG7U>fjYPZ z6jE7RC8GX?X%(>kwe5r3eX-cMST@fNXC+oEw8V+YW~gYZe`fOi1JNurlR80PNv527%4 z$U3BUFR%+DP)kNsxC{l|^|tWSb8bXm$=P}L(Bv>ep>Ie*%~mfrpr5v-tkg-im7Iun zx4etmB^~)%cATq@q1IdvkGc+k6hK-ta9#>supfTGbu>PLOHRO6)&;|@zlGe&)d zND4i@dfspv7yOaIwfVF97{9fk|Ev6a~_2gcQ_ z_w0{e6gc2d{RUCr(pus;Lt{K!9|9gSUU`jqpyF>g(3%AQ)|OI7Ivjs$1$LBeeM5f= z=2K$qtm7aVkQ)zeFBkr0p}?A~$~+UXR$nC0_7U{Nx^2XjMk0^qzn-M}XkTYW6WnY6< zqG`y=2I=XT!JxZIoSIp$L zb_(_yplI;DnfscZzVe7RaQ6A981M?lf7MbCPm}|89pma?j5bs+%>S+FTqfEwd@7(g z6BogBPgcw1Q(d{pr zYc!Z|Pw^m=hN*yUnunCK-u6~`jJ}d%EgFHw8GKFW$|12l*c(Eu8#k`-c6kfu0hSgG zRq$Lv=7koXDr>FFxKJy5DIB|EbWo~|j~s?b3-SD{kz||A8-jTokE>nr?p0Bzc!SUaa=jQu9exAQ7t!KOrCZJxumW@7|(n>+HrOk z#^(uUUkFysJuJ;?h(;{ag})aE{GSN_xIA{fgbPTFWk}BTXk6)DeTg@W^5xwW<5q&_ z^fAvKm@S?r`{S)C8h@>OEZS2UMS>-d4Alf8>PmO3FFkJCUti9 z+sWhNr6ylzCNvEoaf2)Nk_YiW70xOS_2z{)qL)r z1L*ODVeSuNWL-LN+J7$ZzjBM@w>;~d?0x`Y_Bnb#*G5){UD>1nQeM1%+moX*Y!!*t zTd2=xM>Nu$B_}Ng$*4o&xNE(4lc>wuQ3)&R5P>-$q7swMGT!+=uKHT_jeE(9?0X=gE8>(4la>gI>{wT(BS%bX)`2g=eGMqe>{vZBI!pk za0EGkIup7;c?G!nFlmxXdUdlcS|-eMmY~#ubEfJb1+R15)bQDs=kdR)ubPbQQLb0k zHrZRaqkyiAz@hJADyveL#{;`m>8kM}SW@I;MsOdS;C8D4$#J=rV7J-Ax{Ha0j9(34 zcC=ntWexPx0R=dl-K0{kC-Us*piK~_THsn!J-W9KeIo$PZqd~)q`yUagB#}=ECLeY zYASbiD*Nf9WeAS9YZ9&&ioY&HfkDFwHdi%PWO=z%%a z`ZvfMn{aM%(4y!*5>z0 zARAbEvX)G66xXzuE?JH8A=Q?9ASqmC`Y^X4Y`wzJQ)>j`?-%O2LW}9)fT`t( zs=HNs1&a`gK$J?>CqeK~V!gZ3SzXgPdJDtR5{GGW-2&^CA0?FG3ZLSE##wNyMCHe> z_p~=LsX-q%cwO^=9C0#BJ!v7rxbQmQeBN);aaUvb{45R@=U~BZBubl}E}#z|?54TJ z@%|0~Q>>k;D4mV(=5DF=tNUeiK)&oR=vdtyG!2G@6QuRwXv`s-qO?T6hwNSd& z9~ffL9Wa}+>-Ebkbit!%^ntirPLA_~^aTfw(cGp+-8tQY;hQ~=klBZ1RZb-%HmzKh zS$_i+V;t#pSgQhjYHmj8J=W$-l>oEgzos9j*NWN8c(tY*VIXy0+DBHm_~5U7KKC-3 zoacQilX+eX8W3olpJbohL!1j|i>p#0{^e8rco;=NTA$AsS9wGXmu#yu0VA+R=u>9H zh!8!OHjxZ3$?Hh*?lGC^U8z%g zLD%c_>U&rjV3kg)U#Oj}kDBu~98M0K!hTs4LJYjz8a#=jY7ihOPT^rK{T)NTejNRf zTpNIog@LTy0V|g$n{L7IbK!)`#S_^3$r!J?+NULbnq0HZve>4HQnnWBp2rqW(1_ph zQ#TL+!buYCVVQoGa`8rAm4{AsL|x08fS*e&bIFh&@FYxaT}kQ2oA}6;pF@gE;1HUP zrT3_*h01WC?_g_e;7)7^VW{N()CTT?#TK03gGgyIs->b{SlkIU%~j+jV>6c2?Hp-* zX*Z`%3mzGrj^LcNZA6~Weow6t$!Zh&P1(ax99tNSS%wy215{cn?_#0kcuGq!;HvNTx<4Vmsl`pZ5zbqU4P zJCoZcLD!h(@x!R!ku^RuzfAhAYRf;P42AEa=1Lg|W!vQ~+n}$QhsJXPndS{atN@y5 zCGXqh;amPRt7L`xnE+4RUd43vpN?ENMp+AI2ogW7d5Vig22+Ey_xE$;-ThlJAe*Y| z^NHiGET0-0&2Jl$%lF2<=2l-_lUg9wJcE;(WTVxSF;-Y2TE0$<^qTV$i48Y>DmUmj ziw|XazcXJuvtK(jh&cI@K*(Xm^A2yEmuN3u>NCQO%KLkswpd+tO&C906P!Ncl%RFI zC%G4S(%f%&C?^OAEqLCQLc6d(&XCazwf2jr$dCql1sa@hojuunQ$B2(yF2Q8Kyrzf z-d}U0GD(Tw?_SwB|E)Hsb1dhL$&e!c(*ApTj2|>|0Vbkb9rwH}@z$U={&(xdRH4my z2yEi6Vgvx*o#k07wT^GS=ayAASDqNz*Q>O}x08B@bz>WeHFp&)YUo~@M1D>s$^utV z@3m+-d1xWrMrKf+vD-qwNM3x&yXQ}NC5(y6Y-{hXD!&tia5o_b#66c7T857SnGh?~ zC#P5j8qffCZ=M0jP`Bz+lt!G$D@z+fkrWh2h1HvdbR(Z$a0R}+n~UQXm>1R(Akp-! zNl4kZzGK^f@(}2+mcc;}x;);}n}VzSDIqPU%f~?z3q$KLh7)numWFs%5vcutGBp_6 z&!u|e2a4&$U7E0hHyE-vXMzfyG9-WQ65#3Wu;1jSU>Z>G9Z9ShJl-kEOic;&%pemK z-+u~ov0?H&u)!E&N3f=?;ghd#oy4FG53ZV#GI!yN?-Xt$z!S56cjXQcgZP3mQJrGX z)R5Qs={%}8LcF|T8cDvcy^ck~Xid)9?8XoRaW*Ppc`eLX<{|{cL)l-wHKX|%vX-!3 z!2NgVj%l!%QkIc46?tTfF!{Shun}%RHqq1tL!+A9%N~8~afwiBwDnqUqr-3!)sER^ zHrj=Nu2#(9Hx+&4NHkYZQ4xo3vJfSJ;LULou-`HCWr-I{N8C3TIa}rvH3cwQ!HA={ z601^|uXC@Y4|~6)DFp688dgz0gWU}cZ zCd-a$G?*m9(1C|4H>IatQL3V?bpA5`sNICHRY|au!OFF&ZB@;Y7BO zg$BMI5mKPrFmaAEk;U#C>kjv4vt=z@DgI;`YneLTNCkJ{h|?D=BA8$j zJ$8@CAeyd(ncsx@-{Ti4#hu#UI$|eJJP4~JkI>L;RqD6#O56f}=6YKX1^H{6i3*0j zP=&(nckKqL#qao{c#tvw&7NV7d|wPIE{ihN^F6a@Q@0KYsPolM%+^^tg^DS6QFIZ8 z*^%Kq2Ewy(L7RpCd_#mEtkiH7IgH!2(nM|o5_nlZ$rW%*S)xwMhwt~6jiWwN;qvLr zhCamNB%NH0&6Z^n-J$l=*Za4zv@@k7HhBuldM60yOT!Spf`vUI@^qy}Ur^*ZP()14 zynJ%RX?}udto)i8?+)K2+G^U5oraK4HVqmwY2c&;F;0=r()(#5Sl084L3f0Ra$nu{ zL4Tw&eNIdozSZ-tn+xyM;{zIOJn-y8aBV94{wUST-_4@2_Xsio|33i0R$m%TQ1FTi z=1hSJ=SP+h@xnaIcJY7v605uPbY^<<+j~au4Ktvj^|u z5BBFZmxZh z=eM#+f1ixgxoE&NiA@;sQ8#A6mY{kjbQiTjizwLouCiTQ`Lz$L(h}QGTD$?{MY%5o zX+UBI^c=Isno=mog2oh4*n!_{)x7piv zKA#z86!@Q38Gk52eUwRY?~l`@hyg&GL`9Gp583u!{=7s2<2!p|f(jT7f9J`HWaFbb zk}YGe%^T%E#-^sDfER@nq?O1g&xE@DEHSY!G~&@_S+;>)v5$lC249M%Bj4l`t!O+& zV?cuh&Zkcw;1_u)K8}ogWs0EuHL|O;>B9#|#sW z0WC@mGPZqrTr^&4hYdxPn84?UBfOwk`A_Fp91`G;oT0+5K-HB-uBpuV~QRZ-)`{)zJK3Gfmi>xOHLAg&*HSMsR=Vjbg z?wSVB{1~9S9l?2jOj2r`=09=18cRe24wN_)gnhX)SFZ!MNiD6M@zocp>TSV1MOkrP zjL^pnH((8FVWAc|)tRJA%+74yfxofY{z`_5#&KoU^wFeu+#a4(0u#5VCvf@FGmZx< zlY5w)E~tO*Wd~8Tqu$&lL|ql+Btl*lJUSpKMBX2N#`}JoMA;bhwEKuoiER%tZ=inP z0_Hu)1)d_G2eoH+Uae(b15qLK;#$At4y_4Z0RdC^pFFJNf9-H57Olb4CjTU3w)y@} z)$J%b?(AfYn;Q1zT=;pwBA@knbe?O2ZIR!EhJG&M)7~qJ9xTpO;c}utAo}7n?q#&} zPDbZOi=%QSKUv<@g*jDG<@tKOzqifOk6AHuMjnq#le~wj1h!AeQ?hvQGXiNuT!I^G z&l~XVORsr}%ToZ+`d>BqDSRnemraTO$>+tJKh`w^4*bI787OA!Eo+I_m$OKy zVP%{qJrw!N`n3{n=yI+b|voJP(djD&_n*Hmk^#bF_dZ0GNq-0OQz!wO6KyG5{Ls~$aKX@!){)QvrX-KcZiCl8HQ zC?_wriaw?bJg=Mm$7qZWrQ%3cBpXCw=Mg#H&aFGGxGkYYPV~44-}L82VB)Ph8WEny zU8ivFG{aqU%WRplMP{(A>6}^5K|>~wiz^+hUxa@R7{8(O22#D^o&8Q%F=y$$0((mC zFD<)7(I=7z8>onr%MQnW#Du}zIb-pyaGFW8Sxq3stobuiSSGym{86Bz{UD@e@^i!` z%J_J`NvHc(ANohn{!n?cV8BYBPeUrz6zzP`xOW^>A*G$pdO#-mw2}(EHdk51rVz&W z{U`_<0*9z#2+2D5PJ1t;9VmPDzKdKC+@+CK4crfWDg%rURs5R;TzlNKw5zN;yD{OmT)ut z(*H=XcunUk`vmzh8Olzni;c~COSg|&93}WR0H@W2w&)dYO;={f^-dFPjxOqJtoqMm z0}k}KazNGVDITz>sjWpXVm(U;C-7RoiAeNHiAJspcTe=Ugn2F8z1MZc_+kX-Tte<` zChk7^7bWyk*gLeabxS5j30g)ol9}vl-1f95znmoF-@99Jxy1`pl0z#Oe|r!r2+=cU z$}z;qkGwCY=jSl+J99z0^1}2yX@SQ56Sgp@{ZC;gnEd`(3Vgo~f9z{s*qJ zDq;2Blh;nmJ1oE~+qzzuV-$CAS0Yj5ByI6C!r+9~j;yvyTawwdX!r%-9us3~!0XsL zU()3ee^4&*&4@3K%hP2~vv{Qf39K)LeJVXwhc|^2^fO1zX%6A2UmCS;24(Q0YT=lc zv7A3Wfg?2w6`3#gL2UE5fl;$C258cniOvvb*S7Orzmbwt zbFZ$w-rTFjPmzjt-wR|ht^SG?nYgy09CtoJMKJ(4NY8q7I&v<+&9Y!2%v5wI4ejrt zcU`TysDHqjKftCWsurT)UWDf@{W2g=Pn8~o7M-x2Tqpxe+|M)-O!d^x?4r}lK3XchU zw!KI02ln(@@N3^Sri@aplfm!PG7P2F@OlGBNMte*?g$w*DJ z)M4VzP!|d-+fPm1ifzBIvJDYAt7_#C_}AtL5|^R1-?o5Z$?2F79>AkJ6o|t1nh;QA zL~S~N9nM(xec7!vJyU&`8@{+59@kQgr;uj0kzD>+j>4 zW(Y-^*KCl)ev|m?#CROc8+p!24s`rgv3u>2I6E>&%m2cXUL<1H*HurNau>8`$wQY z^g44KhftlX)tZmED4mNp_+ZDQT>ZBm!7uhoy%OMU*g8vRdcvkoU&Z@|lg5{6a5I_Q z@F}+11dGNKHq^6X4@Do8|Bdm-e)29^V73Pj^vbnPE0;C=>09^%8lOiFO%Qy@ zYj8+)P&6Oi3cmfzt$6=&*atiD24J)cnbe-e4hJ|hmaS~oy{@lNpmCGIo*MRXm87Gv zSuK2$b)ULZ>eJvNVS4X&hJ=AV{tI_{kVDpEsx}hv1GX?l^2yj6C@zd^Y!MpZ(HLD-s#lMhB6~o-- zXgK`^>?i6^>>58V!8?%feD^z=vo3{{#|gQ z3H^A`Or{tKF3eNHS^GG)Y>`|DG|I#*8`}eORd>LRn_5_bgH1oJkteF9r@ zHvvJSljJKLo%tX~imf@C^5+;7i`nY(euSUjaol33)Hm@NF~2|Dfc%f!ycA5leqpHBfK@fzhcRl}n2N-k;qThSBxG>{u~uE9dI`S?b^B4^7a49R7)e8|S;5dfll z$a#KuzjyQ0@pC3fZVqaUp1*aoN$;eso+c|7@8gToLf7=2q= zV}YR4Lm>P;xMMYh;`ipV^bFs!MMAK`ej0mA}Agf&T+RXa) zN~rjVfVwxXO@eDsCxXipL)Cj|Xv>HOt|VC9pd}Mok@IB$0A0TqJi#3`>tg+t&ShJ3 zyewCgr86po!C@OX>iaF!YNBTjj5lPdkM35PwotF5aSugWz0&D+_== z(+x|5c=*xoxo=d%ZI>8xSsm@8$pGGury49&4bsq<%kM(Ix>r>$A-f@$MfiWPu`#9^ z=!^RDEAIO{MnObwsOm!2Q--bGDfe7isWFCszt-l)-C%afr_$YV@~ThBa>0IC4P+kq zFCR*E+E;{VtdE_@oKbn=^+y6Hjo;9YCwEhFlr)XMh41zy zL|MHFd4?oA|#?rxVYqSM}} z+TgLY#2dyVqU_mNRO_wyvXKYenaua#TWnnQBUpL>!={lEUj5Gu9X}hs!g)hu`udJ6 zybq#dR*o?X*JLnVxL|R($8^#yk}Km!-Gwm(sHm`!!P_Sv07RCLmjVGmYlvJL=wtD& z#vLzZm>u@_!SY>Vnm1{*IGH&-sCDyXd`V8Kd@cOI=_*QI?0AU-9CP+YYBQa?;`GK zYV=ul8}&#Wl~x_n=;(LxTUJ^FXC;kk#J}Uf*+;rVEqE;WYv@m3bONjyO(tzbJil6Y zboG1ARM3j<&cKlZ4c8;oJdkd>@glHDtBnE(pO~d*TPz?ZIB+nK2c!bb=+e?$*F7bS z$xwjQBKZGdcs8A3;G73cuwsfLrFs#y8b`5U2aC_S)ljx43?x90S_TG_x>dhlCOW+R zTOHifdd%5&vbdD{$Z7EFaA*m_Vcu6F=kXJ&-qSv9_$-*_LTg0;n>A#!tB>!~rNT8c z8jqvI-NhL?x*o3)=HbOqaI)X0NPn!gd=4x5bUUV5M=-AROWsTo0{SE zqR#N!IE|-OE^Gz9;|l0i+hRcGMnm1V=8VOt%dhEk8Vx3|6$r&6R#}5!-0C*aCmM zTv(&_J|?IHsDtw=ok2j7zabI@e3{X-D_v*#^#j)=-WR0T`X}RRz4~&>#;j{7(+^fR z+CabUxpR=Y2Io1=!YNO+mc4XF*@yOIvCMg~OF>^b{R-S#oEbXdRsDa2dljtmVt={>zs5!+lzGPFN%x3NRVLUSeKTw4-e>)CL-ENBs`jib~L!&y?6H zu6an(HO5w2qMfTTV)jS_~cSE#GMUh>i)PT3Nk2lV&@nw<9XIGIOXH6?teN zDvdOI58(9LApd`dz}mq}Jftn@m6mf}F+w%+4&vqmb!wX35Ik^qH-aEoRr}>v8T(77 z@6}2hub3yGVg!jm^_Csa#MjnT@cD8u#ry(=1#lzWCVX1?S^e2g?<*Kk7!|gE5VE^L z63CsRpO=;BTPk^aU8hfJyopL6zV}c)p*VQ%<*ANMU)c*|`~MeZ)`Ha^l;tBOu6EWCE`06arYK!q zYOb-k=7xWY!fPv)odA!$u+ABt?9wU@1!ke1$7lpI#}VWl6C|$F7rwB32pFUx|0!?P z0yC7OwfU|a7CL_X9BT+P5i)%FwbX2VO%!iZ7S zqjBCGc|+dL3M2n^kxA6PAHk8wP-@KX)ldvGuIm#clZp6S zm?w0(V;@U9GWnzuyj2YMXHBKXcNb`Y7-+A&0KCRCR8F&`LPdFd{JtB#@#dJ|mrE<|dtsU<1AUz@(Tp>oEjf+Wj{ovsRuYBN~L&Za&Ec0$x*na@zQ@dWl_ zo8@zQ52<*HE>UP4j#gQMbF`O2%EeVA=veFsQ)P+v#n?3bF29G|A9v=R$!Yr@gqZ#H z%0z1Q)ICcdWXgP1?i77TBU;HiiK4h?R-u*%+L0qYNIU4VWoMkHMaW%ojMV2h2#y{@SjgtcLuL@f41dxV}+0%-8;4R%Flk z;SlY_Kd6r$1(L|#fqbo!t3l8!ACnv9x&{1j)7Tj|p*;@qD$~l3ogweT?YWdkRqIRe zK%?ZSXooH@AJ?|4#@0!=EUyN~=#vwXW$kjqcFYmoH%7nNrbX`m=zC#xnR$-xih4UFNUd^)LF1rVH?cz%)ia-{(EHfI_o>F{12azZ z!#oXuCTv?R|_t^sf`USx3+^SjDn|uq+ z@Q-e{tuC@VOO9!dVw7K;9o{~=Z)34N61^b1Z?BuNV(uE}f5?UesJkBeQH6{mecrBS zTpB85W69+r*>dxA0WRsCBh)7*8zP6@cVRwWR%XNVu$UsOKl+O4S%MGP?JtoV?}~J@ zOyUw@G@*1UZs$_Tg6Hb3CdKQ1g61RpjV>u`2tUF>5k1(hdF_7@5B#5|E_84@?316V^xo%-DcN@A5e^NF3FQ3IPYLFyfn+uE1ZfF%79uQ3PJ z@;SOEu1NbqqTg+X3qT-bKf*Y?lz&vY@-)a#?p?$%^|dCo%z< zEs)6fQ|Bc|JEd$Q%_#@OWRYBy(N&5bbZoA@Q{HfbM>{*ao6 z#0LvFevv)v0@h%82`EtSfZ7sh_-?GDXe|=_=t-8(7g#9&bh3s}saXdxV-K>IfK>U5 z#OVfYvVqWrqxzzDA&`3Yv%!Kzg}Y5s6TFzZ7%s+LGvu$6Hqr&r9JJR)NM$zdhwz~s zg$+-w&f9*y%gjN%bt3c@P)E~3CvVN&E%8g#`#jMSssbF<*RPVf?rX7QwQ|VxwAOi4 ze4Fnk>Nh?mBImJzXL#KPNZKvcIBXl-WwAO}>qPYC`uw#JI{ ztblbEp|cDW^m#)r^Q`KDt1O5VQpq`(x}1y==^u7Y+$yCDx%kx#DF<@L1;}JHDHugO ztOeJDU$rHfG0p#@s{!K(1u;Gnt1z>Wv%1wIQm*Xpr)M<8*|mOogt?4f>w=wR{rkuW z9$=8JFZYUAbKh2{{bN9*!)!+=8Btn$dzMuSEsP{fP7(g`G`K)%0kaIuvQX~xUB9z4r_An5WP*U zH4QpBsbNenVoqVM38R8Vg$pFk7u1ALh;ArSCjHxy_*iK}q%3Kpu#{1_@mxySjVnOD z9h9Sh+cx>sCTx_UNHOb?##LqmD8vRLqG(X&&=Q4~4Paqvr3cs_>+7tXFhREL7h9}- zHwY=89#u6d>!oz>Xo;vFS!OH}8=qpNZ}Vg}2!qJqMc)sunuGZOQrD7X0tK!d!<9N|#ftFz? zVF9ymIzElF+ zV7MJa{50CC^RfPLbJ?7dMV_fEn`Z8(;L|#6%7g&wq!kq| z*`;6?ovE_PJ|k{3weXZW-^FgYr$G<#K1#X@GpeQ`o9P9gac^Z^KHJh?(abc_c;m`IBd)fswm9ZhT_nGJgy`Zvbk2l-!MW~HQ+RLrd?NNkKJLJ)6rJh+u-k{ zS{{zm-pq@?ROE0I5>m5?JzDOV@XN&i%+wrq%Q;Qhn7xau2Q)O3Q6UQd3wZ1JrigTP zX9b3wknDoM{584=XV~6{C}DPa0x%A6mZNYZlKe$a59vHO4^I;{NzWdI0Ip$N>Nakf zV}m5-8FsNE!izlWpF)s=nDS=&&>&14v7Y#M8H7L5=W!q=k`J*~^mkU~9Wbrs7 z)HY`rVDZ1j$@RJ=^sm;IAxTE`?KXC7eL_n6N_acgaWA7?A2&d3WEDB%h4Yj4zhCh3 z{lIBJh%|8hiNGGZut_C)^T3K9b@DjIjdbXE)4y!DJki8c-QRg;mmHFvv*gwz7MF2K z9r5OCqhZZOs!tO{ulSyz`JJgav=#S`xYM>&4Mjd2s*UPko0} zsRx+*35Kzzy6kRc(kYu9up_#qEE3e;aW-U2)hj zq1araFCOXlQ!2j40osIR7e&EBNd-0+I`Nh%jEr)deO8UUXVXm~3M8Aj3IyRn-rvT8 z+h2vkT2f%i)Dv6~wx&JMq(v7rakGWtHwxR}==sTO;ZHp+YgyL?w7O>fQ zGObkTCNrKn+4ir=1d5_CpNtsM1|K@`xoW=n4Vz!0Lm!3%$D4zm0a%9<%!hQMk`?zL zT2gOTTCAjG;=Cdl2-6`CGSkCha{H<65GK$Jr& zyW7gbOdgw`%{BP9{V=1P)P7c>9o3SU(=G;SnCvZU%6P35ZR zn@eYQN~+2L*Rerx2%)Ku@#{hWMz&4nPZdp0@%b>#;9XJ?M!D1Wj6{cne zhMT#`aS&jxVQ#c+Csokqu;6q8Mkg0(fMA3I5~l!Kp30jWe%4T@t^CR@SdPJAE4?@r zc(NHU%qF6g=H+?Y@=hdAY3sD?^=N~jm`P34%&;#;8+_7G?ZcYYMUpp!4=#^c%w_3! zo_ei)j4uu1%oHBrw26;(X?o{0NA*l9$>+VlTuEOSB%mx|aqoCNrE?p0AY%JY1vW-~ zOv)ZQIi?{Rw3g;GET2bQFz%}lqSYEp4`e$Qo^t>QfvgW9*@kXUSzcB1{jPh3ftR~1 z(ySI!u<thJ!p|2lRphdVLjH^82WhGFDr~Y7+Z@{DvW5Cb`Q%;H`)~fnA<6W zmj;KY`=*uvI&_)=(ufQ_Lskx7nhUJ9(yJ}+_o!HFKdl*D_Z`^-lkPWre=QXOp==w+ zJXWO(sPwZ1i+LyEkoQiG8xN@|1Iti@2Pi(M^7$fZ7j5~m<5y&EPxFJ_N}#QYQumnm z&&TSmtA55#53~lZDkiU^Q>y(%8dmXxM@Cz<8CTFCG3@z*D!VsTdA~A^Sd{y-)M97t zfYmetH`c$}o)Jo*o60XX-cq;{KR8Jl9LCyn|6Y35(m2{Cmnj#r@-?&-+&hsB=015O zE)vXU9y7e@G(klpc=>M&xB$n1{_gRYbxtYz)b~`5_WpVu+PA9p*15HN+31Sm~+6XtGVO(i}Umz!aeJ^&E)N6 z_F99xw`s{iIJlH0O(3wld7}SZ*k0b&-;it2mA1#HvmFY~Ot2AFWkY;^Lw>A(=mtC! zXhoW88G?cS(aUT0uiS#WV-hFRCN$dna}Q~PR8A^#VF_nR1Es5?&OugEfyeLi)@?1{ z@-`lImMsyZ$w5iXoG+Ob*)vOME3N5BKpHi^ebwl>f1flDu|sIn!|LtHUnp9lSPEyY z_=>)rXI~0LIsm(a2nmI9dAi4vN^$j;7@-Ig5cBOSOwRv_S%uLv{pcfHW{e_vH5))e zNGrYEekAt(iU%p(IirxBQn;O^kfB6QQbq6m<2z&%IEK>A0?@%Yv??uCPG#fh3! zx4-GAdu}%+(0=tnRZ||FZhm%r~D+;;~VGdxn$^D`|65xK| zC^NR(zo*gZ;JwzlK8zdy)3_K|c1csx!+x6OC^Y@cYoF*w-fi2mm?ZVeJq%GKE4(HB z$W(z$O5BxuS2=S$u?3!{?DqDTr(_d;aZ4ivjHTS)DV@gi@pwR7LTatrZxx|s1D4c} zhN5-EJC+B`JVeb!xMD59JFck$B=&Xh88nMJN^2TvBY>KX5OY>H`ic?D`wypWX%a+o z*BbeFe&iydVZHNaGUVr802uq_+v9+q9_36(calMzz*Eqa7B&5 zH_zgnfX>OoFKi(o!_l<13)5d40uW zR;VxIh-rZdg(h9t297(gl$+^0E^f+Bu_ml*g@09lKYqR_A&a-25cm+z7W-Z|KWJCY zRV%K`wVy;zPwqZ~y38L{7~!2NU-}Azn}Z2C0%0?TkvoeSpPsVK>7Z%Hld34MjR%*% zK_O&tR!{srs6p5EbGAmcztFh008HD;k^PC>jB`Hz&j(@7lwun;4lFVRW8}@cqQ)UE z2JEBkSf1+=^@Tv=_8-$oRo02Le=x-2KL{sh)K#cGF#7n!m}urg#i&F$%w1Or#{<{N z-=-M3IpRCr9&BhA-%ACBA%HQ08;@`Tqdv7;2}KUJXES`X_nM?Z&yo(W2xsW{>jc1T zc`*b?yjeV8&kVk!QYEQh{lx4c)T3Tt)?Llx$Ykl0K72>6u_{% zBdIiy&xwsmlRECf4&x#c(yI=AW&OI7)0Bhg@-$j0db##gXzK)0c%OJ_0v%BLV5@$H z5c$ei41+U~`m0%!bs_|2sy*+}*d_^C#DPJOgU{%Y1-xP~8EJp0I)kK_8NwrLQSs3U zrv8eCmbO9L1lO*Isc1j-3zCGTiY62`eF@e;siLj;Y6zzr2=(L%977>jWCXMR6u4Gl zf4>D1g0_%;nJ~BD=-{rD)H(w8w5jkGh-g=gByNMSkdwxyq$XrH+;oTVlHF2DQ9Q#z zhRni1J%{qCl*xf&!i%WX#&E1)x9*_^;&Io`Nxy>m+d&G`PgYYbduIgOTk=NTFeMP$ zt^RttYaDo7G3`tK2_tfwT{{)doLA+KKm59I68D4Oxh;C?my6$!W@Ni4fP$pUgxdDW z%jc#3=6BdIiBSFqd?_THU;1O$;$S+&Tw58&sUk9C%2hUEgIlDPO-NcFbULu}dxDe~ z{T(y5fx#+#?gO<*C{Kn3eZ5W~@_R%hrn&M2y$C>+S6{BJ=>l%Flraxytf*P|g=&_} zTG92DTV)1HH%|fXJ`sGd@q?7RUc~Xygj)hIpoaM#&CnGC8J||Uer4OT<{2Q1mty6)$@&~Srggvfp|dAaajr9FMvwowULKe! z7eB{?{_Uh+Nl8NmD?=t_n1cqxNFz*GdX+}Y<^7~AY#PP37t5R<2$~Yi#cm~y_l5mv z3C>^;V(dFq3qfj#hraR75riFGg>E1Sr3Q1cRFhwdfP+zFcQ(kU{6eodM0{(CG#7qK z1aSEh-S`ho04yR;@d7tvNEamVHa|QMi61kxAdZu5z)}w&;yF}Xe7>3t^*8K^?zI*{ zG10jwpc$}E8>g`bJi1h_X59j^Zy|yDD*15evlCVylVBDWR13N;6p+KqpRL^^z=M3L zz0XffK-CwaLJBllw+Q105mR6*2~|4Y8O2p{Mx?_Kw77L8QkWGeUJ1El-@y@$BJ z03i9qoEVle%upp%`0BP~Uk$2%a#&z?c&4}OGuiEX!PD4O0vO+BoTnBKSf=QSPN`)0gWx~)z|(Y~kj=cQZ6k*;~p zP^~)4hz`--D@<5Ch8S}0Nu+f?gx0wyZ-FWaENpgwt8G?w0jyX>vQ0N*`DxNE;LC;# za_kI@FSKaa7R?T&&pn2z%G= z{9RrXHmhi@-rRWrd;?H#ZTf*Wz_=LU9P@o395nkX(T_F777RqBVs6jbkINB3hc%BT z?QF<@Nprdst@APYNrO} zoIjKlwn*PLhs(s^5>tCtIV$%dly{p;T30kO&K_Xhtg)rTidB(| zUGS@(Cm3DIlA*LJQM03j@-U9L*6g-3{7@hjcTFR+qGdL_(bk$X*x;S67;(2`>8{FV zI4DW9v9nRP80~+wG%L?eUo}2I@OrsT5q(?b$UJb=Cv%%+su#BPyY6(mk;l>H5)|j` z^K%}dhP+1fp|>&^S|E+rK+p3uZjVmCr40)MqFCk?T)cnYMks*6LQ&5&NR;2E=16AZ zRwC-C_kx4#STTmFZ11#(%VncyzNDEOd=*eDET zm?eV2{%P9{gzVtWo8@yf7jr20N7M4t8a&iQ=C37ON(IxEk&pWPXXgHZ74UFJkop$nlkV$C9MH}i-7^4d-yvq*eN#EAQ z4biEVCt~TB*OO%?)thD~juuCOi%=)R>>T0ul>#UnXb^_B%HHC%q1j8b8`#_e8=F*e zagmW|8n>&A1EGdIp`oNSB%1<#4j1{sp`EROobO!?=Y~q&6ojtXJel}9)R>2HWo5Z} z9H#Z=^yl;5go6mEQYmd_5?H*HteB-aESVRQdAQRmDMw*a4^yG0xbHNXoTDurU~Kni zTUZcf{9~>!ees3(sxse{&X?{eaTy2EXl%w)V^~Wb{-0)$3&N_^Qt~mpzRa`ECq^6! zBY)0@xrc2Ym?T@UJsqjGRc~U8JI$w843dEg{iwc`TnrLGFSsYYVJG;U$xj(gNqchS z{3Yu}MdTC)No?v!p^|D*MBngKq z8-o_Jz)+phW|#n>wfT8Zy0UNNAJSa}4e;PG&hjTXKeq<$NwO1`zld#-hS6cmLI+DS zTYy?fCT>h3;T8Xs{ZMX+&{7jdKe_D{>J!UvH!58OQ;y$PYStu(nj`P5z;u{vCdx7`=&7@aU(TzDK8xl#wawLRNJwX z*W#ZeXTEc&EyLOk#L|o&{x?xR{Pnu{^mOL&Sl8=0Ik}%5@Z?WVbcC-NDq?_}u(@Ksj)ygfS@%ICqrf`A%WOZXQ$;!LK*Dqiru%v;C3d#iCk96wrBy zML5J+o=S&e8C>yP#sW_x&e`hIJ|_`b3fxvHz;vd9rO0oB87M04{Uk*9gjgumK5@#h zL!T-v>n95j?6PHV6d10qYfY1wyBScR64@sXd--E~cG070K~g(~DTJk?M1TnqZTr#4#ZcSvBL|STP*u#-a#jXD2(V+6_Bz zT%n3qk!H)MLq7?B6%d^(bQUr`D*ur_f-!JTi4h)NH~&#=0e%YhZCYR*Y2FZ-=UHdz zk2g`qn!m_v9cCkPYJ#ukv5Oiu;*oBYdz7s`2hkf4y|`)oy!4mOlFHPc+aR6g6thMx z5P*=XY1)2r3^BktgkMHLjsL$SH!TJNgQ%myO3Z^&sdaQR8jA8ggOOLdFfZWaTjxVD ztJNw%1;(`;%1><%>c>2?qUu@mX?jL>$5={M_xMs=MCeE8 zBHvA<3bpc{zwj>;1$QOZLY43p-xM{1!Rw_t?fz0C&G`T;B?XdiAc&_uGJu*re6mlw zdLu#mnDaw5;pL@9&aVXh$5pi3G0rJ9U&71|vuPv=c96_BaGB>=Y8zkt(w&*NJ#6SN zEL7xY3X-_+;<8kl&7+r?T>w9i7B z8mPb~0bY0i*C>S>mHEVqE-)+ei%6mLGnfYxPjDNWo*`~I8R$=cCdA^`xg@%w4!d`D zIN12YFFcmMbUcFGbj0s(8&g@gQelN;~@q1ULd5F`C-X zAE2F74at!~C_+KRz;`qFTPoJqrDg&2!$>@IIu5mI0RvW$Qfi>sWmvolApIT@P)=_} z2Qx(!GEgcLG?4^^Bm3R$ks`>TpE#KZsj8xz6-O|?0-Y}o?f~LnGt4(>>N>4Fg}U)W z3{8Ryh*-BxldC$Zy8LtL#vr114+IP8o*!Z${>rCkS6?xllgjQnlh*#-vgg}Rh`Ov- z1FNSp%vrR$R9E8vSs$WhD_K>mK}UF_0tJpV7IPTD3_V>vW2K+ zcZU%=HZ+<|uI&=h4--EqG6#hh$SRKb#EiX=<@}tI&ru&26Rt6&sqJ>Gh zk|s7*kjB;uEwM-LdMKHDuHYv|a6>A&8g}~j_SbVvLY#3Lh?#u~m*RLh6($%7_>K-L zD|9V9gskRqP~GA{JC{_qwtlKc0jrS38~?-LDd_ z?zmgd`U-%Hrjqe(D|6!tn$c`2kKjTqDDZg7jQ(lR<&p@^AL6x41-QGy%sE(gZ1SFr zl4#PIUg()LD_m#)^{7^MS$aYqrUNUzC}S}t0;CBsmhVQ0`695~y(3hnuNE-*pycGS z2}~G5$q?%Nj#9@H9yx7Ma71Q`zg5T2b#C1himkv9chlp~8aC8QVWf2SfUOeGghqV# z{wS`*V?s>1{U*HRiCT-bRR`veD~!8yjpkv&fFLMI5?+a?-x2EQRM%sk+7o48g7O}X zIodLRZ=OA7$}=e{WM{cGCy$+iPCV8FG}3Rblx!5$|CP17a+mBZq|^1oS7cKF|33i0 z%+nVL*`~wVej)75W+D3Bd+hV+3JSKZTvZ5#p;1qmAaoio1i0dLQYC~X{P!hfJ_|Yg zuj#<_ihuKu17V{4{$e1{s02nTTZj(5~y{Gfh)v7P)cUq`OLZb*KdUd4W zzahGd1dEl1B`1j~DE;fl8^syh(uy-D4g`_1D0kFp78$9ol3gJKLtPCHr+GQ}gJlYa z9Wb8T$wtAygvB_j-IEH|>BoYAsiYS-L=*NX;a;+d9(22a1nAATeu$B|2d$jQ-UE;J z!^XW#vNqGPl&{>N??n%Y8u1B1t5|eIA|;-#TT;cdI1}C&JO?VEEQZM(Lx{67Tt%fE z++PtB(Tw5Mty{-e62|X7fp1@`P^kt4I!UD-geF8EWVwTAE5d~t2aZ}>=9N2{j%T{+ zl{){&@`W>l<#Y8pA#I$8pt1f|_(rGug3o@|uDPp2wz!V$*H|X)Q9+CWM+Pc*+xD`x zQm$!+_IVz-0$y5X6F7F%{*ztz;Z}|cI4{4$e!PP)b5jNf)PRcNAX>r-Vb*gUt-tw& zR94?=N`VRQ?))pY+ist&V5m_y=Bo{}GjpSN$C_-O5+`7W6fM=kRfrvM3e@2aa8GT< za`<(uKwB_=OklWJb$2l&IALCdNbT{bH31v1bUQ(xyhq<%1gd-pVE!s7 zzzp(z_S&FZ{DEOeuS`zUIlnP<&DDUuh+(p~DZ9%zp9P#5OC}TJ#WDy^0E_v}*X!3Y z84_P7Kt}?c7<&j8CorOrYmh%-zG!f>s~ZtJqL-%P5@VfO073|~nhE({6cjN>P*Bff zLU6U?^Hx&kx!*=Eo4f`0fRr-bMFr{|8l5VfEi-JAp+z@)3MBr^LCBug-6;7R>dOxl&pdw?5 zJndsQ+Yne*n%YX=^yw&2b`*a^KDwN~ZKSl10VOWBzbU+v4NR%IpH;qvXB$A{&L{>bpqM=P9 z5LRLD1$tC1ujIFNgfz^~n-i_;$#8W#jPXfD^yuC`J8BK}4q!%m)nxSQKwpMfWlDV! zApOH;CP7XUK@!w3s|LN}L&tjp_dith#c(A}O+X#U`do(So6108=(v;MEMqq`AQ~~s zHzHiz^;?$XAq(;&IavgOjxg)OA~v;r-Njg(z7Cv%MU}+5@n^f?U`?rAUbmPUE*cyY zulQSr$FJ(vBzOm3+%9RD&=OiCKb?L3?vsnr{3qhqRt@R*-yJLO4|AtJa&%(6VmpZ1 z6u(}9uyh+OS+nQF7Pv@R=vz`kbH90Pu5Z+ej0LOR!s_FNsKu916bOlsS&g``05E&5 z!p!mNa3b*jdSkC7dc1nb*#hYjl_Qo68wWRXjHdBOM#FV%u+qo`9E3{@jRN8teF&cNO$4RcKGb}UmziS>3d@psy( z5yfLp+KPS8*=M_@Qj2^_iBe-1ozD*^r2es}cp2t5+|xw}H}+3V*!t?3UyTtmU}O#< z_Dl7!|37;)$#s&|+PH7g8m8v^@dQPd*r=N0IYZP1dgqxWWdg0%hQvT0=LdIqWeGRu z`)OJ?Nn!yGV{!AqL4J=rx#k}%bKkZEN@M_72cLRu)(dYLq}IL-a$XNjwF{L zF8uku{gueXn#!LvSeE!CM8=DM@J&m{yf0F_{EKM95kNB2r`q9^%B#zndyhG-RN~^y zw#S4}D~`uaARGvkAcU=K7BJQAdxIBCZszqX8ZEUj!=zGIi%1N!rV<^X>nq5epUXei z3!M6ZP#7Y1dc1L39k7BSyx~z=z$L%6jc6sB_@y}FcA!aNs$pM9!7Q``F>fm_$?Mg9 z>zAd2aAE{u(tCLN#P8N5m|gVs5|hy6<>n_MpZARoM9_YJD__;lqiuNweXD>Zg~gAa z>z7pk^+?VL84Xe}Xgc6-BQJd2NOVge96DnwJzl!m z>}S;`Xr_5ZQ#_^9SxiCu?NgJC-{i1?d!CqW-t{FXOwtc;6#rn%>OUB1}$S)UGiWXj>S;Xh(@;5N2~A1v?AO5Fl@^MY8Fb zKVuKVivm+H&q9`t^+W`CTIJ52CfxL>X=&m@3CTC{bP|Q(D|Kp z&&qzIY`*IKz`~$Z-{>1WeP*qd9_z>Kn~e#Ro%2+!Y4*V@b0%`&oWz{S0|!RnoW63g zUIriR;`u$7CkykGx+mtb2X$Pa7scsE439la)xO_g5d@Sje?{esPcu;y5+1~tmh;AI zU*W}5fYfYj8X;TDJbR2JpREtJ>Op&oX3S$};ivf0n7 zkZV==O(U>kg1!H*oVtU>WUDm)wN;GOFS{!N&Ch84fwsU1jT5ONmHRV5-ET*C`_C6P zdw80A({FV9pfC*AS0(FRu^7|h;fS;E^K)_ z;Y_j=}skCdC9eF{G4WF7S2l!?9QDgQ}pvi8G(-oJYf_#}D?oT0=VL21vNG!JQ2Swf6% zHyeNfX-6lleH0MLm0)AJVnY`tqe8uo>LtC_F!EAaX8WD%<)IpT z@2*dfN#{%=RIw*()JGlW$$2Wui<_JBg^5S-i}1n_tAd2#i>clnxdi2)F^I(R5%-*r z#QQQZ+gsyw;ow3txxwcF$1h(h>^#?Q?i}q>z4nptG*RsuLxL<|9y_=vno;-rhXtn` zisYs@Mh?dxei?2s_!iE68uS`KX>I%{sBx!WaG4mcfe{}5gwRXzw>8(gWGnK{SCgYf z$GCgZATU}#?d;Oy8VPbEF#sK@h;lAtMH~kkU(#!#B%x#6qgO!Uqg&uk+>t1kq}z6C zRESFEmzv0Y3I!cy+;A+l`%sFgK$~#lXwwGH*G?qu)$vS1!+(=^I*sq7mCGHiTy(-RiBg)u1=dHR*<(deVDP( z&{z;`jN>Af0|E$V0~3;NWyE>8*TVLQg#X&ODU8uYp6R)4<>b^S{5&~t6l_v6VWOrf z!u{Fw!lMxT*%yn)iV59+I=RS##S88vS~H+j2=aV4ceS?3h@P+T==Y&e8^(`fc?g@@ z#sabKz4Jtt{ikR0GE=zk4TFm;NM;UE8_74WyP-!S|HA#A%|k|VNR^|5pp@cRhquPc z_)!$sqkMPbtIaFqRrhw>YkNtS#!?!NC+UCnGut}&7`K)|U3uDTrQjX2Ff8~=|4>L8 zL@DpM!>*FoX&-Lyi~{wz<0}RsG6fp-DW*MV2;cNM1K>}|;AXKhFagm@>UqwV@fcgI zpEYo!Le}tPU8m@h-jrsVB&Z)loBSj1!kC4|I`i>UNW|FVkU zktrHfOg`1tYd}hfl0|0np5q}k)*Gs{A3BhE3nlVEwK+YMH74&%_P>$Bao+L zSvdvg?B%l#H#j?wnm`+|Cb+&-18uHZlT)tQz9>WBa3JP=W zpcR*}EVOCbY22wtY!v`BkOrX6WlQ$t$7^MP0|qe$HWUfnK6+?`gxNq{6h1oe>K=Il zY=V$7QKHq_6HXu=7JJ3@Gcn9OO%z~uHe^Y_-~Ox)tRtZq=RM_mEKGoMP+w@4dC#KO z#>hn>8!-!m>Sh!4ILA1A)$ga9FMnd}w7wHn@@_%HQCt=H^RDkliFRVi^NX3@LwXSR zzCNtfS6Q{Sa=ZqqCz5|?<#~tlhz=asaFki@<%^!~$v??PFNx{#Z_LI6x9S5ku@oCP ztvx(vZ`o+mJqO6it}T%4qjX2Y;d#~l1Ti4R&FrETNdEKZMO2ks z@?K+(cZ?P&bfX}N7D$SrR#f==7I`SNn(tyAoV>CQFn&j4O^GWouTp zX6{f0i|+Fk~rqexutwq|~q$mw^RGyQlZhjA3ey9b$(NrHV%V0?O^~y|rS` z-{5o;QHGK~W?Qr};usiPa;OKde!=HgQM}=5Im-{cEI6NT=<;#KAV`*z0g#C|-#l55 z3a07cx$esXyOf2K(?N(@Pl1U$V-?OU?*Qr!7Csn`GT;^O=O`Ng@=iUd&3_ z%zUEMdpdxDuv|T9R(cL4~JLTF4T-l5ma8{x8vn23&J)xYmg^*&hh!?Xu%J zgXa{wXB@3V3ieD*o)<*|3lV$39no|L~f?Z<43@M3^pM z^t6&hJ~YKaoqf0)tDTrqjT3KzwS8a3^+Z&7lD*h$@browP#jj5IdpH~+wcKR~H?nbocP@auLjEQIz8 zj*xx>^Yq)2FB>{RGLrg6hJfYnHfXEF?n^$0+q`+rMxF2-T5KC{s{VxiqBM#gu17qF34b1|d{vfJ3a@q9%z|+i3nmMpB@{{Uq5Tc!U?bV&C9Rx#2B|yKIO)1$Fo3CaOuj; zFMTVz45){)$2IqY6E1xzgkGL{OOzlrSj}LS>W)=<1;DhcFzA8!1i_e1xr+{I-*-R( zVrA0=;|?LIY-gDp9(6NFx*i@vO@$@S8PMPl9(y~fm2h7p{X$yDsz-`Wg3i`(61Jjw zdm8#Jk8?UekgGZBv$VrN?T1lqbw$bJ)vg)BhC#-?7KB3m;(D6kfnghz*1dDjb_apMiJmPGe{eN62%DL+bk7-EDR+CZ)NZpVF54D&wMc}>e< z<~v54ecg)EMxhYi1%q{h$XZTNV;ug$=T73=aCNW&5rGf-s?}As4+I=rSDIp&h@if) zmr#axwu-)C_r331jZLl|Wxey08J^av{?+C7kJ|ER>1*uY_;X4q9-M+4k(k{nlvDY% z;{OPwUnwfoGTyfBOrG5HjgbfwWmYGWPllOjO|O*KlV5>9EBUf!)Q(E}fs0g8Joi(V zn<$*pE=l0PkmzW{M?Vi+bv?Eq+hY70U29|0l zQVb7CeuNgRnmK#|vB0$i5C*c?FszX|nr2BfQDeO(;{{?AUYW%yNY|&PkxdL1viH+h z$|rz3V&+9wC7Fly=SMzDKD`6}mrZS}T|jrKhy1XHLzH&TQxgkcF$__zi)u6Xc9CY+ zCpy35SXX-hQhAyDL^%NzXlY{KJi!PN<1EYC<7=F5$Y65nJPzsah@ zx5*PSn=kFblUrt-bA!}uL^h>QO7tkmQB!o3#Kp0yCUv4MbNCO`jZls|~ z-;spDy6bcF%3fRq#!mxk?Qq6*u?O*ZzoG(+QF%AG(wdw7TYY28T+LXXff~!t^}}mL z&0Q!WgmF--m?F9>ceC{6_A9(wjSM-!Y;u$x2F~eB0C8K{diXko%A*uKD9fb%{twKV zE>FV+8&ND82opJuBAy??;rt<7-<(C92MnHVNiO0`V+ zT3_wBD(z=}JBezbd!mE$t!Pb&Vs5HaBtCHY>ZGGDc&$70L}b$1Sp0$%#4!*lVmmr(a+~w~`y!@vYu<;kBim!k z3)ETg&|O1o;@8OwYs?Z;z#uoU6!Hb7$e`AP_o&B$^bC0d%uqQ(!R%ZYn-KMkvk)mC z%#CA-)Itb2402vc>R-%bNvk!6IYr=Un7=1-K_qn`Ylm`YT09{_DC*U424rLhJYmOm zKGL1w^wi>4wvlNGpfGPG(#YxM%t*S;kAqoEWGo>%@0r5; z5vr|(IjhH1!jD5h39o29D=uJ5sK)?LV*eW5h}O2x#Saom1h4B&Y!%avbK!|i>gG!1 zqX|85gK|cgGTpG}tTem=&Eh(AGP;(rAUOejpa+1jfG?6u zf6IH8NWhL^teB>ssjFhy$LNh?!ZY0pnp@}R(K@46rJe?NbAIbE?W5ZOb1qspFjQ1B zCdZOho5}e)DTfmC?_-BQXwtE7_&g17Kd~5YErc}PDdZnwO$|<|%@!LZJixM^=8?ZD zKt`1nr9X|iDQn7^UgcbEWR-YsYxL||Ms$qC@?#|2;ez2c_f@)G*IpD4mS%_({s_`0absa=sdrM4dV`1SFUzBFqvh{D_~nh%#7Wd zugjFUlxH8iIMI7wAMwKWli&b}g`>q^=N{9kPMb*wZ#&_z+nAYUb^Nd@XDe1eA9{w! z0u0pDUr@;dPM?_`(-v$tFc?xLouKN}q^QAZ*rB~qvpq!hb~%fzEY&h#EkikUR+ZtQ zxKsoDRZMwtFpA2fGIr9%z6;Vg@h9JT7-A9stYI6Q6%cu#I4lCW$uPkPGe#=dV?}t2 z192GoKiwowNmS=kl25xzt@t-L+IGp#Our^W3M`85dX<+C1ZBK_uV^mIV(z@YbyD|* ztqtSHs(*C@Z`UysTgU(nki;TKa|Io^oOh4Cm}({)L;g~L3Y#E-Tp#+IB#Wh#W6M`v zqN)C=T#1-J-WRpjGtmg*Q|pF^EOm&qHN16d`EG4Xu+D6k)?t%}u(n(wv^NS7Xv_S1 z3F47Z#=$SJiLrr7l_rSu;j8gBuR$|n>Nawasp9-9!#8iuaa|SW(=OGe>O!V+F! z^pYXie-2A{^{AnkyrU77tvD2d?rjsvT(FmI5d0OBFM7E$`I7~Sk;lMD9k@*wtin?^?WH?^~y@#Lfq&hvd z>teHisapoprtjtoX7gEhsQO_7XpuXr1i_HG*{tQiK5Pyxqq8!m-GUq@XMf7t<3FGY zmsxHz-t>nphl9k;i8U`t-FGgEX5QlUJC?bB4pgTC8QePWgpCyCxSQ}{_@{{3Mom=wlB#)I zRvxOmA7e^55m9_1EYG2kY>(oApa3b(qB{Pg3#^qcH%R|1zPmnW|18B5V_so1J|ZJ& z>SsQxgjx2EH4H_2CZejIq(Ub8eQSpAzWUyOR2=VwxG0g7?KvDuTWs-9fQcMqm3&2& zM#Pe8wLW*Vpx~?l)W<$~A`bQ+A>g;_p?R6pT3n>dre)o>=~*V; zl+S%>IaKfrlM1hv@+m@A(g1>s7~a-FFY<`D$k9LBB^?oFXg;lSc4y2%`4AEWJt=-3dX6jP?;ep&YlkRYa3lV@l~& zxi;l&N;v6))P<|WK*6zFZYoU>gS*#+%`kHX}dzh z9ZUut&Czj4U?lAe3^f<1udO<@#HHbX9%iA;*;!tyMaV1;A!A7iL#0)Hx(xk`Ym*s9 zd1ApK<&lblqc?g)d}{!U>*#1a_!Ni7y7Eo-{%sKIlp&va;; z_~vr1n?xpw79^3R>IWgW7Z4eC;stt32Ww-;7wwcX%MR&vB1EKz`Vq+>8v{ivbaWCB zMiI9{U@Wb6fp*}CB12# zU&uMN1oA8dU0vHbkg>neM!y~6fEH&q{?f*lng`9??pO<$k-frj^!yl-WGtBH!*E_5##Yz&~%2@D9{%xxS?{zI_p;%3m&s&fo*heD)<9iv1&+Yxq67#;1%y zboDL0QZL~L(ZXgm?VhAOM*|?1p#=Tk2IXEAyrLzyEI$!{;4IZMU1YnGqKqxJx@W@_ zj7df9)4shx7J$|x$jVXrvJ8-!zEf3e^05@)3bh$#)mAEV;}R`%Fg>#D*rcz55EJ3s z6l5~O$qTynZ7TVYezQ1ze=V+BOq?HjCsJ;zwaZIGPfal{3?}C~CC6=<2{#G_F2Sk_r{J>1oD#BWE9SZ%^Uy=<*R10Ahz|&Ro4g6N*8Jk3w55dfGdrwdA3`wE~nbdrnB~YV9kOK$TeYXo+aVt{Ry3G@z z@#)ra=|@m)L#l6O{Iz~q{=t%meB0*AHkxqpu)+FARoL_W)3<7@D9`9{Fso}_` z#=h?3^&{wm#is2kKl3zogEnyxtlu8gR!L=c=Au>6hTb3|yrP-R@LvVSswqf*9d&bq zV1TwpkwUFHV{(kp3xTnzG38@_VXKTg&eY*^G6eC-?%g#U1wl=igF2=8bqr638hY^- z@p(JXZcq3C%e!eaz>d2G=)2?h^*+(B`25R~AhHQT!nCm)rp=bhX_1uxv-U)&p4EHX2-wdm*)Qfb*3?}NC>B)p&*WZx zZNd-V1A^`fRg;~>{UZ=Xy0-w(o#r`|=e|y3Vg)y@BTRb!3|3i21{1RZb*9%w#En4o-63EU!-FK%VjSMRSjq7&L%Q&R5#$g|c{h76oxKEMmDr+;`=~a6&Se#X zAAC9ZvG=Nk%{I*`@Koby&#D?Yh9@U-Vn1V6F78$TA#Affcr7W1^_6B^FW-Yui=t5{ZN#k<>uY*Q7 z3&y%?*J5Y3#}T}fA-CV3E(}ozl3?RZPOT;67;Izk3v=h3};9x&ssXO~fwbd7NB%qR)sa4+83kmstn%a#r-}S9` zs{fSQWbQbv`t95QGiqbEBrqUp9e5*z#_jwKNd0=g0U=scFeF~@bZsJ)kek6XE#(!) z2rQZpOSUWg#@*_&fj%*#r~j!YUPb^aP|cr_+i$to_}?v#rV?iT`Dm`0N6j*8Vuw6$ zR63<2#wb{-5nl0QIw|9xNb=_4`R$bWCKDc^ev?~*&BzVPru?;8kP7WxFR}{wVFrh} zvVcSEJ08}qFf+!aZlQqLuwD%9Pwa>dp&`TVuhW-zf;YvkRwtY)%M5Caor42=^){&p zMFEHuBv~0-K9oUf4J?vQm^jCo7zTgiK-kJZ?l!16y5LA(m_;f()6Y;#Hg5~B|vB;A8hWDL~yF6nY zr{t#0ld<_fo|pE%w8a>u5h>uNNp%U0SnAC(0b!3z3RJ?mKTnb`Q(VsQ`S*BtPB_$` z^3y!Nkr0vP|7A3J&ZV&uf~`BBQSlZ3#I6xX>X|{g)-&_1<1nFZo0$1oM-RI`xKhNeIxV5c73w zn?1GRt4^qg@;tx76+qG#zg(r*&WPqOt1h!(OjA3~{g|9z?s=#BY`e7i;rH@U^3lv` z^o4sO7Naxn+8<*2w8de&g}0Zerzy!g`ym-cJebU%(R#Q=c5o6C+ogCZ(A%6t3F=6| zZ&<$1OXY%_pLS3U60*7R>9`B(#)kA!hU`}d8FuB|(eTG)) z*A_om+C|+A+P6rheT_(LYyT5Oeg)HAl{1aLR%8S+8kpYiqP4u|%cY?6?w%tSRw0_O z06evp?3dhH7c)RXs%#^OljPSpjZHS+5h zwWY|JNa*S~!4!kCm*W|koxZyZV6G5@l?BXsBU8AUUzFDt+aV)rz@0ajk{7!R<7jKh z!z6dM?P<|rtoMg_uwCu=w!?b}?Rw1%c2*p5=n0Df<#A!clXK@3)j{M&pIT}8>TFlzKZjUhqie3B zCTjrg74BaK`nL~T+_1l4`-f9s5I@R!sxc@73RJ)X4#se)xIhi)?a6JDla9Uyc0I)< zfjh;X3xzmWdS93?2&5bPD`9B&G5~N6pQX2h1k-q0)Ra{z33ufXsSH76x)?fq5r&-nw7)xP z3cApiI@tqSbqY&*Vl>S0yta1(v1Uq3So=$jwMx0DRoaY6VJoQ&&U^QL>EK>c$92lo zEf3VGiI66dnV!?Wy@;*RVEIR!id|p1O$mbt5Jkw*tvq-vv5P{OBmP-|!Eq!}kU>(T zH-XfbXTC~i9BxbgNg48hJ65%+Hb59^E#7&8DO?>7i(8In0uazDnqn=O_IIj^W++rsV>98rpQJv$eoZV?4y7 z^3g4bvMgovYcI++uwiI&@-SV{TcrKAlNqRWi6APG*|femvmGlFt}RST)<4o+YB8@` z#R%+r^N4Xw0!_aSW)^M|=8WCEr@-uWL|FHrIfSk*HG=pRzlmYk_by?PGXTV$+~7{c z4y?gtA#6&J7<$5&h*KSD3Gb{wJ!WJNQ@T!1D5sO$O`ZgT553q)81045 zLIijC<{&84`41t-5i&0^*4?2g#u&eAQ6)Tid?2W3>0a=eatH8j9se&~ld*cuXscXB zoQxh2J|@F7Zhui(8++ce!$YWL`U~$8hJRG`xjfJnV6lVMpq_ z4n|(dlp?($nuH=k69&o_p3}xBr*zB*vncmTx47%^n2>*n{?>CEFpS!k2RyOChvkh$ zxsLPN>M+ab?#+toE20*2f4$hH7eT7($}BC5M?R1LEhpQ2#!k2*&?(_h50i3e4<3;E zxG1TORG%YY2v|h`+qcC?88_T=0$G@DzzQ@mOemC6li7GHreHdlWC?FkiFIu%dhgy$ z`kE$!TzT?%eYI0G#8W&|sMIYSH!UU+akO^Hzj)#@kG&@ZM~m7sk9}KlZ0+duct}ks zzRSoCC|p#6*Dj`BS4dtkBNlk7x}r^*QDNm~Qjhg-^9;^-;J0f&66)7$Db0XVA`0g<%S^#IpoNJsYLRFy>AWfTeQ!5 z{h=Li+PSdSm<;z1VR^Rb0KUpS(2Kvf5|*1`WJWMO2*3pM{Z0WZ27MR)X7Mu+b?Q8> zCw;!@6l))}k%3llSh}0~8e2}dM`8Dn<5ish!;s}?EWXzPaF@@8G2sZ$JP|_mJhN~6 zZ(KJG%IEs~Dq4^F?win%9cHa0Q{$q+k03ALg3*NLK^4_nAYFG$UD-Fi{V7QQX*e$25p$u78^%9pdoYAWu)e< zyn?~p{cE7%A{Y8B>x@3KVN$~CQW^2I?~WN!jpN&EQIr?hkC(z`+z86E#dG{Vo=xtq z$*!`K$|QD1f|2@wj5xcfJW#DEHnDjOEQNwB--rjx=arwT`p@9idc&PrGbL> zxNy$7Bev_*q$g8Z#o)Eq-{z35JnWOGdf^u9e75fWwN5{QXin2c5Ju6T2W-%-?;*V7 zhZ`x)VVtS6@07Z>h5Zq~@T(NibO*`Q2&+|TI`-yEt{|Ce4poK^gK1{Mu>k^>JgTRi zE*62d;$1+cW+i%z^CLE=n~V8M2-}*cP27d!pjzU;-!_}txqf56_#|wu_Ab87#&o}MBUkmNtT%S&CtC| zfiKv@Z1bD7N&`O$6HNp3dXVfNB7i7g0Ob)SgmKb^Jgb;7D`Y=BaZ?S0r4}{3!acJaLopsIT`^e-_5k$bG4!LU6eeq{dtOp;zeWpgfh^aDh&Zt zZzZw^O^ZjjjMJ#-zN#$^9~nx9l+KMCgyN+vS`V&pWGH$F{`6Qs^%12%686})H0|T0E*#ilz zHn59411nvMyx{>mi+xf8(!LDKK<^MctWh1ERu5?q3`SQfUQ`{@gInLP*-9Cck!Gw@HYdB}1P{}Dz~T*DDSwZj8S^Y=2;E}F}HtK0ry}gP0g|oa|Qb3RTR`*Q*l~K zB%-=QB%GtDA=ZZ=^rzSa>bebdZDGx?-0N_i2bqpH2V9areB+C}TkL7c8dTA7H%%)g zR|Jlc2zR?uu_VjG;PXVHYuwgKdQ;3WTWnO<$_>%LEsR9~fv>vo$1==-_MUiqnotFh z@L5w&V`{ZRkLzL^e1VC`$S1u4Z+@xt&*)M)P@0iDU+nnPf^nIlU4|oWs zn$*!k)7=I7?6DV6uuH+s8nkmS6!eUss@IG*IscAyjQb?JnU+nflX&Xm;G`np&#?H39?%g0KbNl(SeM` zhokded$Q{M<)t!vMEDwYk?Kp6MHsb^>V|0`?k4Bp3Sg{(y{36(*IXPLy1Ilbd<1>; zs8Y@q7BZ2cK8A64H7sT1A_VGgTJGmL!|8$ntj0@Fe-_3BC6wjxSzsXY7_d}T`~L@B z-0HM1ZhU(QZ2zAC)s;|3zP*-?IAV<#G!F$-__r0jKc~J=NQCylt=Uyy$PN~%T7&;f zfnhF}$E498pydccHHR+H-QHL0g;54)Z8iph_ih1Le4X_G<+A9sGZ6Ibm#8pTtBG$i zH564sPD=CbxJ7)?Tbamkz-9*P;CpDe+F!$JwUmUtD%IYAaYhc`t1sJc>yuAOpVyq- zq&~OSw6-f(j;z+h(uJKzknqAEDt=Zj4{H}aW^TxQVekYCgU)yEsxKCvP7-t|# zvL5Sf%syKJS>!fdKCwKgQcnwLHDI0+2NLnf-uL(fD$EZ>5Z)F9zT#-B3ypn(%YBG zRuB}zzJr{r3kb*qZ&_InzaKh`zqSWSl<$aV8*>4EThGXyr~Clq6UPV|$sj=5l&Y)# zgwT0cAU&hX`tQNL+i;&j@kOJljXQazvhq=h6?^0fvOzOKb-E%CC&md1rrGUqG0ugA zY)lL}ZJQX~d}pg&y#v1RDE)>f`1vE0JmC@;Bz1wr0~I7vEifRNE}qgBmpf(ZtbS>n zET0|yo%8a6Xffb5YH-7Vxva@8H^JwC!(DY2(VmVVV;#rj4>>0;(9j(C><_9vgVjjI z!Jp$6JNpoTPZZvqSS00L0&y89#Gz~v;a zypia51#h45=zrz993}HwzjR0kNDKr#N+tOXHO{6cQ-}PAMF0@bef52 zf6w4z;*9qH4wJ}Mz_ms7$lKB9>N6m|S!wKwi<~y6XJFY4CUP*UEDdLFj%F|evsf5| zNpMOhacZDyJfu7F&&F}_Hvz5_mGS3m*trwW=PpcAgwHN8#q2eN<#u5O*gAX@2>?d? zpq>5qaBuG*Sz4eX&)*Iy^^0UngHnlz55%GpU4QE7RFBd za2V#VUK_Cas_prEO5!Pe$w=esK?N?GH<0Ln@M=b5anc<0tt+}L4X&PQ@!7$sCqKxp zrM%HsB4_2-fQJ^ZpqKx9%r#jOD(|PJ)xt9}4&(M3{|&;pC|-tb)P_RkOfjZMOU5N= zVRjyO$HSmpI4}iyy9TanZYIPsm@;hlfhJgxdb=UkhONpw6eo{fVMiLuGAkt6NUr6S z%(i+{Npfgop1e`W^r(odpYtVxXwM1Vei8@+42)=sDMW`f@R(v~zy`Epy8=#1MlHoA zTY@wF)GEHNiK0x;>Vsu=Q~d!2XsGRE$l3inC>FUUpTHEc$j~m*iH7t2&Zr@^ zSSXCZj_db-p3W65_B5qMXgL{h1fH`mMG=3`MoCS86Pc8W(B_sB@*{@sj!X4zsv%Of z?s-K>M+?+OM}W?2>762R7IfN1CRoYgD7U3(J75cwf=Km|(y(pbNQdtlUru?rg+1jT z8;p`xa2g5AHY+tp^rTgWI3%Ft-v3$uNwAV+kT;bxo5Wwi{;i5-GiV*DDC04rwDmzS7&au;+h+|$uBEj zEFUIQK}CtWn2Qa>r6U4mdj+a71RZ2~Y>kbb(@kw=wSQ|0D9(+56B#li z4>e>BhrcfO^zYBH-0J%`IVJ4~93Kuz#^HL2iv)^ZOyZxYaBwPL6~38qDxs})m2NlI zSdwXR4&!qmS9wD?EjM#EZcH65@3?O#P47^cJUVs9kxAe8aW#62?%0%50*733$GGVs z0R%=m7A-lrbzdlb8J>fOxREYEaA+FkJ-UWY7i+xjnuBUjihH5cjkOSs*0g)&CLMgj za%NU;V-rs~JAxg*<80fUsBOy2+&v{aD!{5-&QsaG0+m0#@uN17HJ^m4;OdL)SJc!8 zJB;%mZZf-H9*>V$%T16E;_&}l#ZNi&H5yz#=q2CQV_CMwq(wDbAPRHTP4Z8Ue437m zGH7DHmP^;j5=)2oXK}ZAlbciGDPEI!f3C3^MKTZ>QRR&}uE z^Nqs*|33i0)74(sw6aZUwpu&E5H{5&ePDq}TdAPA-O^E}CFEhz&^M5YWyN{*wOQN6s3gf+~L zFgc8RhW%N&fRWd(a2Y)jg>N@|;$HV~Xu z`tvGM;}3(;C8i;e$ei#|4Xz{P0YOIm1(4oE3a*3C*Qi6N`OgTiFYQ!mIrJVtC|yp~ zT}Me>&_+mJfea{byFJhW>|l0;GC`FNJuaymRqfB-;xw|(V;p?jGbTkq|6(cP1Ex|G zc_(N`>}w8VpqLp?ji`ydAHuPhGo&L|GfD`r^%rndp2c%WYaJT`vl@;$LgOci8s*99 z8S^HelomD~$b> z0vj#;{}%{q^!b031Vf@+ry4O zr8iiX)|*TNOMJc!wdsi{K*u(vN0Vqh11uS>+Sks$?sqI(I7*+W^C3ns1k7+5Bu_9; zGQCE+f9^@;Ektt?l)&fIs%$s_2NOhI-n;_}nwV#8cE4YNG;Wx zLYfsa7;-vM70<%JZY8Dm|Jpn3v^)44d5xH_ZI{FJgYi77_~TDO*;tJE2yKuGU|yAv z=ap*hlm<(MjUMMkaa|TDfjdzQl+=>ve;YjVRka6*1{`<3V65LLdfAo z9mKjY?f1JZN>xB=6b0?F8`|5W&g*xWTAIKXk&U%rfTuu4p-#Vzg}F048p|J_B{kvk z;AJvZ-3?K9_5f#;`6p|3`%)VddcwY}gplpgC2l!Owc#d3)R0@A<*dxY=f~NGv&b%c z3pXPfA*r0P{3R9u!i`I%6f%A!-QjMVV+JRi?@M_3f2~icZdtql7H-kEB)Z9_reAT> zLeOD1KlK@1`y*k#Qb|fhcog%jQ3bcXU ziR(KEW8z7XbJ{Y}VYK@JL^os9$|Ze7fr4w6bMC}`a_nF2tN@|szFr1}euCmGFNu|GVw?BYka_k62m{5ek(YP=QoztW zI}hh;`(8tlx*BYE#Csw;Eqf|i$_G1Ten}U=O%Qng9&aK8HjoFL1!ZD2b#p?!&&;Uy zQHj&HT)%o_Vh?tsX5{t#>Tu?o(^NfkdX}3b%Q0=g_%IXMYRRl{V&qGo9Eky=tmk|@mPgQ$6gO0 zZ&u_8pn^D%xZLwdsjp4XCoYi5tm%39aL;di9ijsTEzcQJYdd; zZbOTBe10Qviq`C~295l8;=LvT-*F1K^mPm8Y8Bs%f$_$c%(eF#L0!_ygo0C=>lKwo z53d_u(_KQ8xB{@8QKqv(VNcm{rDPry{|{)m?{d|*46&d6b$an_%TTO)x)iz{DDj>{ zOD)Y~Cn(J{?Zn8E#B@hW?|n+{u($t!qac~gs6AZuzv3S}&5<0Oxg)Kvv@h|6Hs8c6S(73|%%P|( zY$LHp=%9-8$7{R3H)llxi?}2GTn8dMlHwn?PuZRaIMrFU8* z1U3y1vzbT`RMrBFSY)hfgQ%D$M6l{YCTge$hiy!?FcoKn%V4}A9_U45x_H*2%%V2T z>!0Y>tfs>QSidWh!d2+p_3T9~v>hts7e_i-59YYn`I^KpZJ!f)RJQ=W3@{9Od5pXs`MwhddXq~devt#ZcP)~!lfyT z`NbwSwaWi<=t;qQfR;yfsBcY`Ib{NJcS5S!`}3aF@&I5~wam+G#TgZDR5|-KCe{)L zN*huRAi5z7x}T+({0%q5SylNZvb3+ZcO{l&k`jg->fZoB#0e2nmqCc1 zF&e{N*@-|xSU#5To>H(9k=iDt3q%UsPuh{M_Ql&5m*6EH~NEwDuWLwxG2 zRe8$!ZS`BAIaGB%rokvn@b@P)ejiDNDDmimmY@AHvrAx^e0OcH)mJ8}D63?cj64J@ zN@cxbp5Vpy{lBp1J|X<_oCYgQKQZiMnt2QlW1)*Ap}PPsasTo&xYdv9tn@y*eIMJL z6)@5W^rs>6$wgf%+c>L3XmiuSwYNk{PIB?51poPbc{QL<*fp=$@kwvcpWHLG1fz6%(UW3lu_Qe9KGOaAbn%vTXVApE0)J6 z{ZP)wPNdcQ-kWQ^a(Ss8Im0*i@~?&^kzvxOqwslGA!|BsH8F9s8zX`CJIj3c&Y(MkbcJ8tPaf z^;(|=XY{bd50BP}BGBCwF}57Qs7rW1qV8_dg-uXgF8kEd8*K8!qw#yB|02Rt-U2|9 z;etXCbXUWYcjp#k;2ZkF;aa}Knh z^PmgK6PW1&DoiA3M8P%ZPHEb1$3d1ALl1T$^tMJWSCKNdc6^FG{ex7lYR}c-QftQx zU7Dwff70#55nZOLMxLGIvxjJ?4ljKKn`Q~({z7nNE0C^br(&jFCnx5Wn-7P(T4~6g zTXkiGJc;S)lRA^2ur4P~Uz(7w;D=98+?|J7pPH+WCxwl__+%*B6G#xv2*zu(Wgdo{Kl|^@K64{F|7M ztAMWg&)j0*u=1eI;JH&%C#I4>bhJM_5DGZDe&rnD*kQg&kzl_56lewb9$DMLv>d^C z0LdH2=sawaZ68~tGmR4Msr}s@cz$V*$C^k8cfRy3v6}=IENiYzS5bfymO!$7WSi$?;PgC$LtiY`+n>Jxt_m%XGb)b9TbF0g zU|klMkmL*Mgx`i{OCOLmD&ziK4y_)oubTP}#kmQv*I5lKzG;E!m6Q_r2eeoA>64o>L zY*MI+AM{X&!7fO&yi}>bkQ(?GwnN~GqsTCI1~67&&c`hp)`Q{V;=#dxI71f1YPovz z8!?ni_ZrJ}!@5NI`^OEa0Vyzuw|7i^Kj z5GB2d#ge2GOoh(^uD>K_N&`nWo%z{q^SuXZ#P>lQ z?awT?-+a9z?;KGBq7V80b(8F}@DVA6GZq5h{;@>y_AhR|U_Qm_4Az2S$mv5@s{!rP zEYfA`iha9X?q`Pn{V#f`rQ%O)!+4pRKqcT;Txe#ku@h_mQgX0O~a&4sflc4o53unh@kSLRf4E`wP9}@Ty({v)S4AZ}2j<-zK8sJ^RQcRhlVQiuF_BCsLtdSqmE zZd8De*|NGO<^KOrV1Wdj;fwyt&_WMuFyYne?4QO6kgG350~{G#c~@zsGqQAgM2?L* z3oXK4G;8fEAIEkP^-;1<)OPN}73LzH%Jg-o)=1(VPK*4=(G92_3vjC|oY(nt*U77o zdQp=|Ap4f--`cdW+ALd+%B>1^KIErkATwfzK*QAC5vS)d6}f&+Q7+1b57l^Nyd{NMrQCH%6AFwPxG< zp0x^Ik4M}=XqiboM(!*p)mB8evEQq=|0fvxLSmkBUDWD*_$0t2k2lF{<6gkwt$O?A}wh|#l5g(?Kx)@V!k(1)c(?pcGJD*V`2 z*Nq-80)oN-{pUM#mdN>NH@+H?U`3F3(azW>GhALjKhSJ~cmv$>Ii+-LJ#$m7BTHzD`+rY1YVx&i@ZV2TMhYpcMIF z1%IZojqLX}2m9^2nw}*y+jNJ%9~15L8!Q?deS2 z;dk!STBad3`q&~Ynp%awd;~)?dnaPwu~KPHGts<~TScHl?7Y{FftZWBZK}lNaf(SD zY%lp9DlPY6Fp5*hOLe;Mf`mS=yydb{|5)Q^&5{|M%HpCRYCFpLfPvvIUV)DUk~f_| zz~KkK3*mp=sLO8}29@hkGQiU&o=cw2GL)GvLDS-1add|eZfCW84-kF|^l&5zftZq5 zHY8M9LGGsC##wwqXFuK}Sm=JER3V`j5|{v%0Vj8n$o6q5Y}@0Nfl! z?fT`E<6RFWKpX}IR9=3XecH_=OavvBi(9M(>3v!7M}DB;^S>I=?WX<&ynGSu7gCMXD5I5->aWX}c8OzO zqe&^k>q@W{T|KeECLtnK&%-eH=@4|xk3JGXbN>bF@?q2+U;5t${)Gx&Qd&LS;Un^p zSPj@*j-6NUQ}CLY3APLttGvNjUC$4h_vFLGASB!`FTtG%nnlDPvkP&!Nk9u<0;COA zX~GTFHW?ttaZLTY>_Qie(trE!N;b#=35A9u>gP#sUOWe)O3M#Cg@_vVZowl}a{FNF zw{^Psh^jK>7o9DlHW9DYyYZw@ql`#5Lx;uruF2XBaw227)pDmxq*rM(-kWb-+DStz3T9;aV_ zR0`v+^R@-}x8A*DK;zk|E^jU+A%S{0w*(>Xn(Hzs(X@pvGq?Va-!i7i$Iwtsso~zhp5Tw6DvHF4Y=6(|>Ph`N3HXyv zvzu-UyQViDec@x%iyBkpuf6^5#`B51;}gana2k!V^vATWuNUvE+dKm;)BinKGr77e z^5yXz1-);g2zN)zgLC;GPO)J9daDL>ctLNPzORh4rMr<0pm~VsRwui*jS6#v!?{Wk z?jBI8jku{+F#EmUC+QK%F5a2a9mOmswajQl;y*ObICS2+Nucy4u{gAWeyTUcMtH4k zO~vUgtQw>=jDoK%k;3U5s>ztJ4NGshx?+n9LV#u1>5MaqrzWpe!zH9+7yHkLE*LS- z2WiJlL%8L^o(Du5wOcmee&TMV*q+Vc8ndI_6dXHW%c@-Sz(;BI?q{6GKn1>8D(jZ7 zBk2Pp4O#SooB^D7k!aB(_h%;)uV9^^kmM_MgWqa6eD{`+g5jlu09!Vk?zQ-mZJ^#` zg#O|-8?(4?(r41D{xVl`ZZe24$B?jA5Tm@VwYG_%Ff9QOiM*7cwb@aRE7tadLFk2KHezB%O6%DFF5hIb@=Z!6AXy2RqU5~IB?)hWDVTIG=48x1b7`fu7sg- zgCxKjtk4hwP#KobE-QAS?}QMzMxTc~107PTs?u=DqmOLs#)z-z^-1?w+OzBsU<#^V zDitiLRL&Qq_Y}-9r2pW?C9VazwS#D6+`Q^JHI@Z~_|uO&=`UCjV3U*xlOoD%j-&+L zTLIzt9XKEaW8Q7hjP+2X8-QCQ+geT%uMjrxV@@M9EI+cy&dczj@YWl8Mj$&GHS&ui zIrq;`xpc*U8VY%bwUQNi=PS!EA5%j@;-qd7P;WT)@en=Pp-!wE;jo=#CMn#~FZKk> ztE(ws0&Zterz2LlU}}T!qQh`qj|zbhB6^14Gu``Fl)CCnJ|!?hz`%j6pDhJ$DOv9b zjh#aG7Ab4?^AWb8V^egB(5Yn%XSr)}PP@uVie!i@_92S|q;^!nl~tvfKvGAE)@9_v zFwaf{LtFE>M^sA%_HNg0jq%6-6QBV+Zxn5J9`9kdU_N=xgkt5@3on`9p45vNpbdGt*yY zU_)WdeT%TKTImz5+)XHCVtIw;+J))7vJiVoS%Q^ z52tV;QSR?FWR3$Vl03^2oxB_O$MLAcP7ud7tsPnG2^I<%XPpK!55pY(GIPHme!D%G zzKnGh7L1cJ=QH#ZJ0PfWZ`iGY}$q!T{A>357@MI}yK z0|j~Biqha4Ru@8qPgG#>N-4M9&F!iVfv7qIUfp{eov?*@ywLtSYo zkSozPoKQ~Qc;q}U@!`5A>Q68sc)OG4%v!^m0xZ{E&W?54n=1X-C+o1%Ixw8wi3QZf zy8^|E&Lt)B@=t))Q7|9|=Q%*`IPTk6D=a#AYcB*vo-yU2T8b^JN6$08wIJlT1c7S{ zQC(7Kfx2fa!hL{&JnNXwf59p9iaYk7*|%9VcP5GAA&d=0hP7dBAoLw#!T31z5|%{T z--|%f1ilT%2N2B=uF3>fVt+7q5P;g}%Y3NLC$*3=Hw%iRpjm{46 zlh-ITCLoAth|O0Al1TP*I)57x_hB1YP6Yq5CQeToahnYJ14N}KX?dqmLIL7 zz*<>U)}Z8_%jvCcDW$E1O3Moy^OeN@kht*LDFuX!C(1<*l+zxU8Ix26jK)vcN6M$e2C9hSbj9x}b zvr>AWl;NeprcUPc4T!AUO|Qm0JDm{O98D`z5!mK4dt#iI0-aRda^|3XiS=)<07O|L z0maSlt#AOK$GQF57#1vsBmlmsQ{ zu^HR&cj{7I$G=jz9Q6oA3gVv;L6+EPmJSWzo{RP!AuN?DEw|nCF@|Q`|L!GVv&5-m zh4NKew>s+z$80u9z=+Tx0(6yxp z?~*FXAwv@3KfUcmmIa#*z+2`|E6|qLX8FD#el!;o%t z8v~3$b&>Ce5YE`Q%F%&T=6))iVK>ZFKoONo3ISI*b2A znJb?ykg4pT4(AD0S=@%|t6akhHEMS7!m8*0xyY#t7fyMGQ?$ZR2eIa!`k)Wo0&+2i zstW=XYdusC+;FuGP7GhYxa6YhQ=CQQYX?ebBIN6y51I>Wb8cI|7s?NXQ=84Rcz&PE zkSZuND(T~L5r#PES*y0lzanjgeMr%+`vlKnX|>srbcv5)nknQKbdKbzyC=9V)eLH& zQ?efJ3)C#s-#~y}qWlrVd?D{#jR8P4xTr?^n|-BV@MZD=JGK(SYLSnFSdIhS(er-u!I}TDPL@d86)%dUK7|=J(2cs4ik%}YnIM?!*T1P~I&?h+YcEDym zufJPyZE4v=umorF??YsdE>Oi}-zahi%bzVPdo{a)K^IAkm0!IKj!Cm)qj0rxHpfVo z7wBhH`dyLCSsIJB?VSwLNqZ!pN@B?^(nfF*hwLIBBFW!SL2%e_=e&p+hlWxqG!=qb zJim5O6%J+kI&Y0-Fit*iu*?vQ$vhi=KtTZB$F$Aca7f}#op1k2*C2qqkti zIzJVohbf*r7Jh2F#9tf0+7vfTYYMb@W$-9EEATH;NzKz(|J*~~lU%nc!Z;Qc%ei^v zRc8(cxS4&^at}!L4j55Z7+=&?b6%>RSpO(IMn~*X)yH^B7)N+Q$)BZ_UB>Y}iI!CA zD;W%pKgp-MQiUbcrnlZw^&^-CKNIu|U^6#xQMf?{OuSiMZ;%e~e!x@lZWhFX=%LB= zWvA*Rl+)!uUTmcHE;-k3g3=3076qOv*FSj?%Nr%0rCLJ4tg4r^`eVaF@jSSKY)a=z z=Q5O!Bx>sIU`s$P577| zNs$oS&=(r}1j_;Mvf8MeDzEZMp=_r}pofHe3<*KW@2ww1>=Nj{8;p?=<-Ml;KBp=$ zWM~MVr&H0`|8K;@>R?UuB8}wuE}*k{a1xO5MhO8N6TF^jKBtH z0G#NDN1)I;*jJDXQvUflI;i&GnpLdE)YCW_(kDTQ^Mn-HfuR^KB< z{zOvUo?%h_>It=~L%!?7OQ0j!u*AnwhtOCjFs9s^8QX4qojD# zF?|tV7+bk5%r=*%m@N=F-5vTKS{)hr+KX4VfH6P!AA};Ze-AdV?H#BPYQutnH|sfo zzdE?Gxa+VWKVU-_)zgK1EZ)_t6Rq(Oi*L+)jg7TdC_xX$)(4F0hjWCpe(-#C5pE zlfQt>h>ca^){np_;}NU(VdB6vLQ$e5V#C0LENiGcKafRpY}d7-`Qgi(XZe_O>S}40!K& z+JJE2Bo95#lwnha^Rn)jJ1mdC6`_>6dG@S5s`joY{AWZ`LI3q`7TdL9P7b73OIk}u z$0@Y(rlIsWH%xjZJVJtKBRv0Kq1=jWyR+1G`-9IcdQk~YrpTZe^zQu|!{L)JDKZ@+ zF?@Spya9@5a_Gr(r#;Rf=F5?qKCIW(=5ip^cd=9)f`XXo&sD+&rf+!A@MtEtuhZfy z4sEyW+?J{DfOxLjp4oYw-4D8j%g1p;CtI0nH#0K>`sFc8(sU{cYb2F?AJl5g;Jbi* zH2Qdz2KAgW@9TkE13hnSAg(DJ1?2u?c187iU{w^@|GChsUMUiANV_d`54w zk9m$f9)uFyz@Zu9M2?WmLxvu)doH-0^f~62)QV@J-k7Keobq6$mhMeJK~N1)qsiKN z3gqlWsj~ijbR+}!B14lpcuZu>Fk_6wz6H6R)cSOkY|E0+B5^&=u5Wn=J$w-(=YUQs z5tCwqXg(_+t6)r64WZD?WMVWUdm94-Ws5eaI^bb+9v}jQ-CpwYYbI3`Is@uNuP+9dwpTDp}Q!^JHUw_ReDy#YZu{eOwuGM;%2(NCh#`}6X9zG4b1 zz?5j&`~!*r6$=rSvjq4q7DsHm$IYc(=LeIvg|dgk%0IH{e^AERO=Sb4sX zZb7JVOwaZSyAVLbnV(uXj>H^j1)>1K#-|a?($W42@Hp}J*SXV3C&hpN&vSv6992H~ z&3fdYNI5VIle2zRhCx5nLy|MKrq+p{q0qe9l}pX|ZUN>y!;^>2Z;nwKBg=NvMehbK zBV-7?BJL3PN$kJJMY#6aSSc(gn8w&m293>t+m?CYvZi>L^_shQoxEJ^XPw>SYhZ;q zY|DmS)0f+6UM$M@Der87R_;C~Nr06)hZ+s~%ccD*hV4ToHByR`*JnTu~<0F4w#=t!PH{;xX3agl=q9`M?cYB{F&SSWh1 z_IaEn9_>*40a$<=(b&WGk11n7I`+T`nKHm`Hn{2Rt~RWV8%*9Ga07bno=+HibDl=d zx#=CdH2*?Tn{{6-mnLIam|!54Esik2ZmexaZTbB;J<5W{*!%;dhvly5UwDjQCf^f2 zNH?J;L47)UMlC{pwD;a!UJ+Tb!J@1=RN#%`Ds^}Od^vkZopS+F6{{JhOkLZ|f z#^VN10hFmF>a!}_dV@c|$qb@k<+Eq}>1)E|x_cNSKnSmfckP*66GkU7LZ=@;%Byry z20u!&!dHeu7g7kWvI9)cA5P?7$@fp9h^|IaMrFBDy>iX86s(;xXiWoTm42^}9 zEz)bISNOX)SCS(+3>U-o+mCTtA1I}FA$j6{tcFO1pq@@vvyrbHFaM0hyZhV0h9?@s zyFtl5p(gkRbxRrmdi2!9gZg6b>=w*h(X2iyV>Q#MgK6tg)3Ak%bX^CUkqP;Z>?q~5 z7+!-hv7+3}Q-7XG^rat}l;hU3`anC9$7q<+~tz3^qRSmg@&^C1uYoHWf)hzn*JbD*JMs+O)g;)n0*8rIsPG1HD z^_4jXH|Rr&eQRVC)k8$Wo$4s!dj5O*1KM}2lrF|%d`EpGr5*p*!dwZy0FlDJSZa<> zv>at!yCbh6rGgB(rFw{Dl`T3P9?I*?BtMWQpR z_p=@c5L+*?Bv2^qq-%USEgY9~Zzb?&&xr{f3XYh1vqg_xj2c&MU$vppge`R$nWd zhm;Cah9=i1PK#m)P7LE~;CO784BO~Z3Y#d05J5KZuR1K?#Cnu(9qd~jzsot3P2I$8 zH?}%vKJG^}7Vob*2)9?!NgCvs^awX7q`0EcsmT$Y;#Mwy)OXT9ui*zp+H)^v%GTI- zf8w@%*}sA~JhwvcH{+MBlmn%p_$MywKYLM17!Ex;P~@UDV-CF zx4XsexK~wJ8B_N(iEqyWP;qEWtiDx?2>RNQ4@+br$K(rJN>&GB=k97JEkX+bXpX_Z zl}wL(5vjp=LIXEoWQXkiKa3=w&IqMP@=bQv&jO7X%rPMrP#?obT3~Iux({1Io(sxP z3$Iz35y|ZSXZI_Z+RQDWg@P}iHQU>~IBdQP0+umQM$Yx%x4{*n>pjo#5lb@C&c=CW z9r;R0Ru`0(c<|TeKT^Kz$e9TcDoc36YXh#0a^9X0iTX<0XHux$NClK8ZVJ|=qav;8 zf#VIsq2L$vxmc6C0>NpGn$Y4njY7Mpew*gQkQDguy9vb#)x!IMS>ID@S@g;E7>_Ld z`gX5npE2|lwiG5>ERzSJST2hPJPBgw&~9<2MAxQN zYiwtZkJ`H%dVJXvS>A&m#HD*`k&}~=XY7Lr#cD^!BQFk?RWPjf75qNu#ZKyp$c&Hf z9Z>p2LLXm*qm%<7l{_RtA)QPvfmzDh+X%{U9SA2*UZih(6dw5bXBd$QvK=T+Yk>(! z^x%T!zo`daMEcM!EK^xRBy@Xp=VZvr7C`CZK{xi(AIa`ck}(%cNE@b>7;C zsf$8wo4feUNvb_1S{`YD-(i~eDoRUO2cJ43ZEo^T6;VU)Woqg%YzD70&Nm+4$pI>= zYtD1|vyZSJ-f)(>wo_$kC7AO)cuu~csm$++; z_fygscgz?oH0R5Yy1%KWHrS-8Udr$GL101#aJ^;my8m^zk)$|$yID%17wSno)|JP^ zuL(gZgT{cyaj=G(0KaDj61+^Sf;aH54}MxPHE%xt2j{&V@tpdS>d&SYmWzC4u&c{~ z2hjH+#o!ex{aTQ$R{!6?k!yRi$2Kh@yQv5Cq_fj$nOQoGqc2r(_3 z{_H|^mRRt6YqXFn?YYtpr@-C-_ocR_A&-w&3b`f3@&$edxAS+gzBqoo)@~GMseiN} zB?KFM;gCA^@|zWnnvozj=1(%M418*I9Bt4H%+Oviyt6?&2&VbC1k92vsHG%zuYG z*{|wuz067SQh(;^tro$g13`99**?XmfYY0EEhDP*HM^lDc5Z0Ht(cu`*mjX#Vr3LG zBz^2KzS7;Ak_O{_XmgC`p-4@&8&K9^M)%N*FFit6hs+ZotqCU0Sgs7QgTuey-Lp&U z0kIOoOUPqRLK)8f^z-vK0h^PWxi{(8#$^5eJwlju?(@ah2>0*_Pn?vARz{Or*;%J5 zKwFF?$&iu){Z`2`T#U<~xT`~fhJcBCI-CWauCXh?1F41=4>@)9_PV7idqF4->2)x_ zIo#Zf&p{(+KN?Hur;*g^5UZG+5oB;IKArwfPF|Zt=hV1`+Af0D$m!k2CzL}2^`_{3 zF}n{Bp@OU-;R1dMeK(DWqS}*j8R-svW5HPxW?xZgapML<-IVr^digO6_doa&D^_Tp z4LdowzlVHpSRO5}U?bJM%d}Me`eWPI;kOvw=fjl}Mu`^16*)a+UG}^#C@hF^50NR< zGxszsC1fYKGx>v!^1EM=L~>PcYThBy9u;aJanR%+p7?@RuxUQ*=~9kV^nTFvwuyH{ zO$_xTeJ+#O+&s91z$6Q@o%LdqtA%it-Gt-7Hn`F}BLyV+JEK@(rEO;4r}E9M`axIx zft~Yk+8^<|&1MKfqU=;!xTlk#4$a^cvra8=_Fp%;VC`sU!u+pEJCW z=mu@wnYXKTKvIE8Vx0bh{Kgp{rTGQ{riG7oR9`bfQ_;I)wC-3sh zG)wGuiY9J_rBeVi8G-Wc1EvFb?g>Py`P60<#+p zGgY5Z)`OGK5wdD=N*8CXy848HU#PY0UI-4{)wC+UIf(rJ+z!dBp}wjOj~pi6N@m?b zt)0v4e6*Cq(mY^TZHAMwpkW~UVtJ zC^hI(acE-oF@qytFRBu=#ZPO&yJx<0QgK2M+ zXXFKMv8*xOR4>Pk+Y@P<{LNlhj|fT?vaK|0T|$MaPOs<#J-1x^Dc<#zgU)ktrhf88wpHuI3l#evSv2~t-ZGGWZuRP_-I+T!rUbHT>y7WNabD2utGiPw_Q+m=33Y~X$rC2@ z6ba&7=9Ni{KVzjNMNJ3N)vW-*Xk;g{!mbL5NTG1^? z4G@?#OB+ZcF+$8gq}_vy7^A~Z)M~i*LbSgYo|nqUJ+5c6)P$|pr$Ww&zW+e3JO*1e zf5M-NKQ-lEwQkq`^hzY$Ll0r0f!`Cw3`3v7Q~*LHn5l%uU(wR3kDM3y)l^I}J?CN) zr;bzfXP7|_Vaj2P$vf+D-FW5Sxe7N_rgt1dKOAr$iEA`jzZDa@NHb8Az(;5zItz$} zeM{a-E9!cN-xpC{T`knl75n5By`);8BR1t;fsBM2_9EErvf@@9C^}SE=0dkOr26d= zdefptSg8%9yH>(T5KA_^WOwmV{`}nq(5gfY=w}f#c>F}3e$f=| zkN|{<9hV1<(h|7@&zFs+-*x4sB9$)V>o&8LYIoI1XxX0LT}{4I4?gq5iRTfQbI zYN`R%{JvSAU6@)+da<-$j0p8+dwe9eW-@mZMkE(Kwlvo_fY~3oE_Vupo>7voWSaY5 zYNrgWRRl&8T*UWydeoWHZv+MhngiJOxz7eUIeh~E*DtskeA|?cfhP7k&3RS{C0DI= zFmfh29StBqE4Zu1_oDLZd~?yh?MX5_%YWW^u$v*xIc!Q)aPC_7N*o%lZ<@iQ&lvAt zxZ;rrc{{xL!^CrQhPn!|CQ9@jgL2kLn5p9qSiRKJ8t)YzV!a-6pa9er*}4oTR;emW zt52rqry&sO^kLyr0T(|qIa~_?HT`hg3kH?)fuTv%rZ?1=t ze8;Z&abm-q0LG2$q75^;kSv`2*P0mUw7orY@+n#{v%i&k4;=tJs|U(;AfWj?w*yI; z@aS7bNcBG(qDXHOovX%J-8l5(?Qre!koV?ROgL08HsDUT_6n-^*$=2SxgK6*Mknk) zChFUI#1wi==&!?`tC3ZFJy(oN{OiUps$7}k@#I7w2iW6tN-FIC!pgUkz9i<0x0zia zNa~8E_~Q<%+MHtpic_vV_h}G?8Oz)%o|N$Zk`@XS8gJ0W7+iNXtpP-gwQ~!YHZ!;Z zV^%=4qa3c}>@^^D2`p`;kLmyX6TNvG(15@j7MsD+cP(*nx~ByYM-rYF!Nodo^1;)% zcSO9qg?XjA9n5dSd`D2HAY@@tu?L;jsZr-Stu~qtG_6=P(9#T_yY+LMx zk_W0=?g4(0Kk)YNC+PQ@{(E>cCPaUcC}cB)U!LO>;r6<6Rh4PmO%;z1RhFCrZb)WGHiXL@ z;Z~tDqF9H6uH=~7vDw#l?uJm5%@o0bgbdINudxyjer81NQd~Y{%VJhKiEZ=?)rsj2 zt~6Uz_f$aA6I0vCm^pKGF-zDcfi^C8iWyYG`$MYWlpBhH9134rC)}6@nWj8hN$>k- zHYI4mv%<`zlPW1-n(7RMngx!G+Fp~(+Z#t8Df&HFl2voz#p8o0N8$Gs(!Q_03K2D` z2B|k7;F7TaLxw&FOE8``ljEwjc*o~EmrDYA<@1o;HZDe`^fKzO;>&R9yaCCo+9FlR z`qi!80%F}PS&MaV1C{X6H>CqVydZ31LZKp))`|fcCpAUP%)Sysj!!Nbb*;+FG<|hM z9jm{SZhuT}iChL}*r)tspS-C4yaW2~aFoHlx{)oxB7SxDk<-JL*DiVI4%b+Wf6QB1 ztI~>mU#jZ;ykWtY>*YHEjXuOVcMT9Ok*YXP4_kX$`4nQqfTlJJwMTq4kh$cMqZ z@N3g`I+VP-fbV&?#A=5&KW^AzOR~}1)WHybr`MCZRTOKh?p-HyPj(`ry?YLx-^vYq zrEdArZ4^*b{*rSMxDcc@W4*0jHeE`tdRlR`^r|UykicGd3 zfQMeM#jLVK7U8=_CEFJk8L$DwQLl5zX*fK9EG(VPHw4-grt)pY!Bw$Ho+5K` zCDQ#0#ZmTzeahqj|33i0{?EcNgz)2CNxMD9^Sn_ND73q%ogafE(@s%QtkB&qvV{>@ zrv==qsv|WLL|O4Ez-Mp&9QX`A=L$gvZ75RfpHZ75Y5zA_p}Xuv8U8637pq*{IY!+V zGt@AS4HmIs>EGa@C*&^yd-E>y@kzGy&YL1VtvxZCzX0bLj)dwgDAMZCP_kJzAOMjn zH(U%=R5P0E-3d(|rXgh2CnX_At_B&zIZU6T1#*+F?9DAfq?*gbaL+aTV&2KJn*CgVVq-3;D`P15{zbtSz(F6Yh|)ZVB} zUTua2bG2dVfQY7r6Erlp>(B*rB&s!XClcS75kkxoQ^p>$zK zNp_dJzE{>77f^u=s0;zmg2%3I-8}ma9%>LYSR3%MRJJ`VCc%i)h+qw>tXij+kCw*} z(BEw)a`7>ZH`513a)RgHA7Y)BeD$MQPdNEo{Z2-`1;aWr4TrR3$x{9C(rLD)YV=Gr zL)^OI+D3w7wW5}oqMGV@pYbcuhheN=a1u)#`#bd5n-;_AuxBt_1H4)HR{Y(mGId8? z#$6h}jC-R#tk0Oj@`y$(lbBb)>P7r=1F*J=MMQO2<#gwfcKVFpcQdpP@vOFc2mOGC zVzxgLRlzON3z*>p7ph2FmSP-H3it3_%ioSxRxZzAA<#_3b;!~h_Z<1{;s|yJq2i~i zLrORX)~a?7w}cZHej23xvcbxMb1VUN9uCd%=coR5_lT*{h<2!}Q@ad_FktU~QP)hU zQ{~9!8-C;V{)*Py^nr^-#8`O8YA3QJwA;FUK2_wukfBz?9G(0TA^=*+CrNv^-h6WS z4hhmXKuUYWKn6Y`&~|WRy4b zqP{Wh=MsN#GB2!IL-kWz$KT2yq^K>BMH~NHag6vYqTyXzDR(EccpWJO(PLoEA!Y4Q zxG6;k|Bbd*EO3gnCWJ>k7BLNtMs2w)x_~8!IoF4IOG5Xn%O+5zWima0@q^n-p9&`^R46*uM2qE%FB|L?V>6Iwj^zQzJ~zp0uV?DkTdXnO2Y;> zMS z&3OKU-km1QSNH2}4#s$iIQ_*8JY!ag4~@5Ii*`wXPQH6kNj_M`Tc0+9XT%r7b$20| z$#l$Grw!ly$Fx|OiH^qIN0%4}?lFLbR8}%|`TJy+Iu?oc1_3kz!IHe*O*Ie=3E#h2 zVKXt0Mztc|fBFfwD(K7*qlz>Pd4-q^jChtber4HrO?@~aQ-pyyL8K5=s-7P#In&S< z8jr?z@w8)S?>&zdVJ#0Bf93R^^zhG$iFr#Z0YH8x$+v=@m{%~}g%R;Q-u{2|gmSx@ z9kiyij@-WjZjN34&OgEnFmUQs4#|{>%b?J-I zy<>j-2@Ox4ICo`?MTDD#ELt`-aZQUGKg^HpKhiu28A zN|@4|*M556c+#UiD_e}(q8f=-<9R8WDuwWiJ(C4;YHLqTfF@3(xv8g>YWFb5loe8a zVy?{VgviWpb*Pa;0hZ)~U<5_Px7()^7IzVI)1 zGL~PQ0f&#_daDV7K6(Cy3n}QFV~;Q*uQV=TRam3V>-UK$uT^6oum3kiKl=hsidZCh z-Iyk%Pk;6K@6n=@r%iroHKKfO*vmV;m2pH5G;fWYXipa3WXv}JGg~CWcKSkN9dx>- zUTLOh4P42EPm77IvG<=T3=d6V0xUGew6B4^Z-0~nikYTLN8|$*_9ORN8OnrutT?vn zj3=5vT(fu=a?C!jj-*eDTGAtDGV{^ppDe)+K9Un-*VbhhVToa#)?Dh@yIOqHtB4VA z2lThV8W>PNh0>-Sp*5h#Dt{XU;?U+zPws*=Eb~vNb4E91$&9>}Fm`sRC}Ohv`gJDB3+4#^$*NW@(E%i7j$1uK$=^)+|0fN5fU>;#zJ^$wGN1 zb{lwwj1yC-Lu*hSoH*T<#=Q!L#Nz$Wos|(yAVCpzwChyC|I-hN{jCxO&o1mH;<`p- zu2@FHpWX=`50jgz=pU|Get70vk4Spd!yLKypWN;8w4A!Pt4oXHoPed!)Kg5hu3D}? zRXks{(QTJWT9aZCtnM^}{4cF@fPy_$&$H|5(C`AE|9xpISzcGjN>Oz>-n*!yZK7c( zG~tyKcgt~zMF&l!U8ISM8L>NNj5W9EEbEl8AL?;|^puakI6x3Th?egIT3T(&2-V#@ zkAG60!=H9Xm5SG^c@Yqj$*7oK;|j}#i!zKi7hNk>1*Q_lT1gft(ydfFku$Y?S4Nnc zxWZ8|^)fd9NG?oRJ){sZ9eH(SG=!?5v8tPi8(>4}$Ut4kcDONy-e~wy4^L!2saNrp z9r4p!tIpnd8}QSIfKdY3z`eLKacGV%bzVW0+W<=#J|ErT3+|%rMfVQ z4(d#HkDFb0hmTf!ub3|waCH>wHj1U42U+?Rs*9+HT8P?#y&X!tFX};9*LAFT2B74d zn;P`|1xm33Bp^U;ymh+fw8we?<%TeiV*a{_J(F5Aj!^zeM>yL2z6Kmou^@ax>+J(OvAAHjrJaT_5BiC=g|%^tKMHe~C^ zrj5BUItmA3{w<#qmB{Ne%jX2PfUEI;YIu;`-Ik%8G>|-_WahhW)V0qQahF9BWT_?8ZTqC#e6*LI^Xu`!+_tab!`@ zabb=!+0Bm~XW|R+?Us;b-2L`(X6ONLIS^wywA9LA3`OiZ0uOMF#4}Qo?FtJ-&os*| z9Gh(eR9RsVe#I1Wh5-oqb%#S~L_;N>Zyt<^vj0&lRO40Vn$DuUm+E63uPjO1b>(-4wq=jn`!1Lo`L0kQK^q|K~r@@P6-mF#d2crolZEC8&w3%-0rp1Mz{)*;k zJo4(8v43i#vJY!9M-EEy4rW5_z~*Wii{{WM%@ecqVbUN9hk^jVwMfm<$k{<^ayr%( zNeFh**v*lm3e0uezVE2Kg`sN;f>DQbC#fP6o}I^Ait|Ysiq6hDA568Llu15x^RLPy zkdJ)fxo|VOy*!?*YX1mfAUQIPP<6;1eOnM$mDHwd9>IEE{SLvGfl)Qronj(-I50M( z^9Pz&RAySc>Y=?orn~$OIMijAKl~#nAC?3Fg zF>BqPTv6Tu?u!FmRv;h2wBlLhyJFF84D;|CYzhkFlC_qA8~%4`yIa(&$OAG-11uSS zDbGGN3+b}&u*uqV30ACYcp#*X!|>BA*lP&yodv14779eisu^|!DUf8$0tkPc@%ss6ix5`lK-4n@auM&wlF{fIN%nrC zgwqV0S1X&@8HrRvUP7hys1DPMyDMVQVB1qr0t!VdG#XTaGX}}H>`WHioqVO#CCXP@ z=5HuKIZ!0d=_v3;e2o`TUgixT3?rS)3W<3(EGdA%({2tO2-=V=^ey1>o(Q6M#UQ+g zD%%n`3ik?AGIyN<&ZGGd=b4lUPRb>=cdk(w{+1E#eIy~qveQV-N6RtWImi967ytf# zZ`IlAEITRGNfD*eURCEeEy-316sR|ME%5G^Nn(<3?P=+syq@H#|I~X`J+oaT&>Mh? z=GZBiNrfz2N{bfVR|1uyUTeakyT)LTL>>s!Z+g1En`_LDM$Remc^SfE2J{R8MFN$m zQS43x47W`hGl}XS+n~OkiqmM0O=Btff-u9FNU_?#8Kaf7gF9smV#X{qp3HK_Hiin* z%nzYz8m9@*3p5c_Cb5T@jKK3~&>BLn$HT7Qa5dQ8Vb~^5mT!{-TJEn_?@S*?=Ewm@ zVpgGFvpJr0fQhpA4BbuJq*tVs^dnKQak^a@XzFL_p(eXO2 zy&z)5YGcX&J9HtIjcrND3c)hHl`xX5R#0^(<-X9P)1e`)r$EO^1xrH7FG7ZSC@<8o zhkupmDnV4D9NCjDQem{VZ7vEBGs!;pElG-UMt!d)B(90YW$Hx)D#{+IZ9MMFXank# zbg>v3bMg{}uz5gBTHk$!VDPzK9#1u4&z;=WU$VM-1$VB`qW(fXicHI?sgb3W>-h|g zDS1swpub?SqFQovH`z0xD?QZUrjfH6C#d;qF4{Rm&#%{oGz&8%t~4?GE%{yMSKixV z`m(FK{~PM)%RbOqDClZ990+@y$vR3MXQ8c#*HrT*{HCj%)4{*R#jK_f+beeeEh`N2 zRle7+FZa~vhBx!WEb+=N)y>@eQpp#$-Fa7@pDGK)L43uS9v#4;w)+$xIEm(^bY7S( zj(G?<)u0ds6BH?V4kra)Kq}ME`{ixOP8DhH>oU=PAMqKvoUK?Gp`(rTosK(+zBa?_g${B-GVq+b4mp(=k3 z@HMh)hFHa+KuL|ZDd0)V(d2Pffms{&q(55`A8&j$D zjxQ9N#sIJVR*Q*;N@zBqD6!?vWt81G!E@7n%0y9T_yfasejmR@kt%!2$|~bg^~bv` z=&C9O;3DB3igS|N)-hK;{-GCGcW;8LRE(b~UKQc)mv(g22z;VeCui9OTK}h}bB3gf z%pI0XkAMX!x=p>}uvk z;?RYbsZr##Je#b6gM+B^Ur!7yhnXD2ggHv;5cxWi8Zs`xfm3ozo^9P5<9E`gAmbyQZ>m5#dK^!* zw~KSYT{Wu3E3|*K1*;~a`g8)F7uUexMlyNsnB_p(!JY3=xJ3FomuC5?fuE!W3$z<6 z!@gXys(uZS@<=$<<;0iAQ58?3V!wV@2Hb!Dd|~ZY0+S~aKTa${$~X*9IfQ589%smu z3mXD@_+}jdJq5@zg031yxb|CaI(r>TY25<4HRR2cNt5``gZ#o^7gH^l{?$K3eY9A*>J%~PWhtNXt(Q=5@B`E~rYP5!b zri7+tGD$Hk#Eg)S5b4*J2l6$}pDtxevq#gj>!(IyF8fX6DaXm}ZqX1V)*O|%R*Q=C zJckZ4TsmTFF>{pKH*=&I(rCRW4n-M-OpeLxOG+_sK;9pD24b8-R4;*8M92=KK@E)~ z@%8X*)MtQ!J7CV9Lh|dNnkJ%=W|e@zVYMsu!o)FooAX#P@)=^bP{v!RFn-7lY14TH;H^`E{R!*z z*l%}Kgy5{Mo>sb9;=b7j?qgO!Ei|=Wuag_)4U&CY6YK&QX9N#o!Jsy>4So!x8JO$11)DKMJ91N^|m}9}1A6xbh`9 za!eeKB|jPssT)O$gdZ^J(OpWFkUO-z271NBVH5RSmbJ~tFyDglU2ZH(LR1&Rk^FBc zL=D=&K5}%di3KDnIzocR-yFQ_bX%L|$ny5fF$m#LS#7;s`xJA8m$+6*K(TG|X%j2C zbROV3)a@?d?XP~wkpQGksaTrW_qOZi3?zRW2L=L(G7?XChWkVI1FDZPVxZU#ABqRjt{Bqwo|y9S2{tqC6wLIB$d2)`236DN>CRLw(sb1YMXjuH)=a~ zcPJ?fC&0Y1v(wpdUYOKA_p=C!uqF9d$`SqW7#i^v~UuGDYRjVH3+&1Rh~v0}CtD zy+)1N<4LOHWK3L}cAx}FZWs44PO4JmLVPIjgeO4#t>qtn?Hk6v=uu8kf0@P|XwT*O za7K>7b-jX`zkG}Gq(m~!FN6%VsQnS{7tYNU$_^UMQMqeUn0d=oeTX&y?05)6Ren}8 z_W~`N!GzAI`%&Ln2wN6tkJe%gg-Eq!(Ep=9@Jz^~i9 z>84)R%`cSOhT$zh<2l}Y+~A@pjah{;*YX|sS%acQL&2yD09O)24D1Dk~%p|og1c`||`WW%WSaeFbqJ&Ox za~&*f%37cn|pM__5w$6BKL*sf3)7)&15vUY(!}Px&CVAmA&YLvC7X zoG=x!*ZeT}?6o>@ZZc({lYK}n@>Ky8A9PzO2$AcGCMTRDBjqZD^+ozvlLt(~k6Y9;NVLSo@8MrQw(st0LIi(B>8zqd+4cvpoXH zsk-v1t*IB8{AZ1}W=mab}RKS5K?!!$6@? znYn)1HY+pGEx)?SwcE-BWb13zu7c0_+NIv{|J3_Jj8(k@^!1xf!snY>H!{Tk3F2eH z_A8HNR7r=Nxj?99C$o(?0iw*!aieTdjT6b6bBoNrU}H8?m9DbZH?`Q8Llu6<$}}viiBs;#jEoPXSG7|$KO2fU@*95jaR#3O5w5PCy9zxt>PfEG z3QwXc%UvyWnWX}YkW=>QTsGYKA>||jbGrD3|31mCgfsxbNsNF_kr>SDo!fMi5972$ z0!h^M+O<2lrK1Y3g}tU+BWn0WlwXwFSItP)(1Z*h-mWCxy9k6nwr%Gg>XpwlZov4* zOPa-YQV#=?oSkK*|1ib`dv2G+`Bzqp>G*XL``|(CUZ=NHU}mjIqE=Zh1KKek@SF(! zVL4kp3w+Q75D@qcm3xK}IqQ&Bi$lUGg5OIT!u;~WffF)jxF)5s%^d!8vOjubQyvm? zm&{WCXZ^vag?=}hNVvw9HTZ$ekGsumS!HHOiD;~{5X8ufBMhSj4i-6v^ZaQP`9plh zV1telV(_0o=v0lOsHDo4z&MmigD!v@Cz^Z39M*_}sANVs2cKvM7Fw#g8)>JWjdN@6qjhP_oC&pyHHZf|Na&htwH@qepkl3R^1!?&Y;l>p!O zLXcH~dRtN5##Vw3@*=p4{TqP%Yrd$X@H;i7cLix9*qTMWi|8-B|@i#2+L`eiqYB2yE%0}Rz6Cq$Ml zS|l%>YJJb!VCjK9(P<=n(JUfI=UJ3S%M+pj$;z=jO{7MJCzaT#j__w_p^Q08k#Q7Q zKw$mTji+=1-@eZ0F97O7{}>eLtly?OrPmD&+wP{G-Hnd2_Rq%^A^t6cST605dyut5aXxJMtrC6Nk})MhG$8*sW~k&q!t_{?EsL#eS^oo?`M-C;W~=^tyQ0H6pc* zNtYpMfI|AUhCz(nG&}Oq#I7_^ev3G6Lz}x03hT9eF;vbTyA6hv;>3X+$!u0+^f?V@9F@|&T zXh;j2LKmxNCkilbBGv#H4V7s-wa^S>Bk(51ptP*ZJmx0ejq|Cv~o*NuN`w$uu zCkW+$e6ZXhHmi{6-mkJD}rwimm=)!nmlda(9 zYIHZ#9F9GqG3L{f7s5v(b+v&IEf#T)H3KWjx3A<0#*&wcPE)pc*dxqJxilE+ht-Po zPCltxx>tX;%UfsbopUe~u32rOflc-L&CdEVwefDK-~l}hUtg1Z#p#jfHaFG*uevdx zxvOq(?8nkpAFEeWZJJ~ERzj;n+FtVp@(wX3SqF=`>P_#qJ9(3k8|!7Gx3hw{u6(t~ zIyZTJT6$r2Dh(cl2o>RC=56h1MAA)1+GZ6?U((~~VhwPjHf1}ys8H~?K5!mTof)e0 zGd>v+EQ`D1SV2AiZb*69H!w8e7r`*`2r|vzto=ZWdsX77O79)=k<1w^I8UuG!W8h- z-C#M%6b!*J;egeCjF(m*&zt;m`;VREaGhAuM#A7;Hm&kasVieOTz`W0rhl%(r4$>N zqwM+zGC7>v)(cJ0dmCB4rT^WTF7%8FZ^-?k!v*G>L!mmVPexMPr(`NKR`0(SmKjA} zp>ZZens;2Y0;-PB?->m%Gvg^6g5RWjFgb5AN}zWE8@+)-!Zp1i@R<1U3;FX1qJe{s zWfJWtPt|TPtYfQ-^6M1CB;Ibr0>VFmW~(@!bkaM4(cP%`cL+?U3U-R$X5 z?#i*$%&Vd_t0+_SNP=AV!bj3U(kZkh3gjeQL9BGF&ByT1C99R~AZ9Zi%Hzw%c>0BG z@H^%msvJ26W}fy}u0l};3x6uZK|d5yqwN(+Wy!*JDpDc=Ny4QAzPM(WI>E~HC_&TL z%7+v5t72g9cG6^15JslmTs@7Mgp5{hKRt_z)4T`O`v~Xx5r8YR6S^F~`!=4Q@=I?+47X$&4(Uw5_td`M4pZ{H%bzzc(_~e5~=`n->A&RTnBhJe$B@BVc z_gwocyyN>5u2bgLLEvgANGF@>ES2Sp zc;@r9+u#&pdSJv(wNh}C%n${{exI(J$&w?6x0_uv(F{IOg%qh^n)G zfaO(zXUJ`j zaJR*8mHI`m?4L49zG=5GvdbslVfj7Lm%TQpnKzwW`{KhvvP>foShbRQS5mY+se@kV z@zjKednMJ-f!Ze2%!GZ~F-C`_-%sb4!>LU>aYn`k0%9v7qWbtA%xKUZz0of@u?0Gt zb>^eT`>6Lhj)eQRq4a4 zK`{da00u=aCzS|)GW{Xm;F@;qgGT9RPDyASI8gETHy(0N5*~-J+Jm zS7_U@@Sj5I|7Sqb`Z59>iT~AtLUyn7P|*9#CTTFOuiW}F-Kw66%u~HDQuNP!C=QkOZyJs+;b~pSx6jwj_&hTh<3&!DRM0sM+M)!wT8v?|!FFjrR zl-m@*!7i``!7U0R4}6mwC8Ag0uwKNl!CnpepsTO zLCueXWP+Za{5E#mDH%&|0;QU|o?ioEgpdDo3fEt30UO+Y@QD5wGi~UYQyqT_^lCz@ zo5my#FGV&X^GkIRgIce#&!(Mmr-&6E1})1iSuW~g(5n6O7k%Qf6v=M|OR0pW8e4HY zo^_8cV)Zg58s{V~bhae}!+n@Lu9SG+kw~Nu+SZ8UmXR`QR78#no**Tc)u2gU`xF!D!pt1EXmU@ zGq(y=p~ho z1BXmh?|VSJNQQpM?j(qKF#Y<#58w+kg-9ha*~noIR^?bB6tF$nrOsrb`RTan{CeIXxE#v2D)@h6h>nGpnpVCAh#0vO@>3 zME*fH1(f*`E}q*4n9{#6cd=r>|SF zS0~Wp5HLQBIg~hR+_lC_Dq;{TH1k%jXYsqs!W35%-o4hEv}->#wJlo)s2_$RME_iq zVw#^qJv>>(*5L{l;khA23FtohF=Hs@W8l(8B}Z8uF#8ktz^S;X9xT zU;hi}N(1W}!?=i{TYq&OoBK)m(sr10ksojPeG4dglad)wF(zPwYYRoo(17GrJ)cNj z{8443g%ebbF#UXk@hg0yKFAHlz53O+bdcC;gc^W|#f6FIE$+}r+vHKVN@PR*ijgGzE9 z1OmbLO5w%-Ayhy*$Hd|Yyj7E8ziLQs&Kp!40WKKxnP(F`u7HwUOSqi*-7eAFlElBu za_2p%g_E^~U4~5|<@qLQV(xet&V363^T8f^hnGn5VP@@g!ZM?IS4F?uJz>bPl^rV2 z`~Kco)BSRL@UuSy0h_A!CAF?+!TdiMIx zItb}@sdnzS2|yMI$2g5TjAkZ@Z&s-XhBt}Xg~Ih&*AX_h?<6Cv%^ZgR2I7`QCAx#8 z&sdl;>Gd{-Uu+u?`*i&XQhq^MA2efDlCWmK$0&1q#;a*_X1%KBPvX!5$iba|CSPD0 zyt=!XOu??=P+IrWmVH#s@BOaPZOWoErlbz z#qJ2clZiHzDxp=6_`|Rd)d@nK(2WmVB|JoGKBZn?cLC`Bd*7ibb6YE&nrlQ`J%0z$ zJr54s_Gs2r(w>P-IkkO~HgBn4nxEvr5Q%_naQ=mC?ywGUtSsbZ6k1i9I?RBpisOJ` z^*4O}1*=nBZmx?hzsdm+Hp$aYZXqeuV?5-{Yg)u~iJ19HY#)(nkmnp{dMEh;Rv|Q+ zZKO~8iy*uEj!Srmbg^(RUT)~e{DGe`L`>xjVR|>N%`T9wb00fNtB(WzzurY7DQ0X_mb{eKS`k2!bI z$Is*bH1M{x0A`2FD5)IGy6}u}WMxriZ2Smo3`y`pCI71g+qK|p2?mnPb;hUcAkg^j zfxra5-4olN!!3S@+(%?w29@Gs%I;y}W=thwPO{@+YV{a?uqAtJ8hnxI?$m!r*p%`4 zZc_IOlXiPhGgEt76Q|}!7{@a8S6qO8&l-EA2%uIgdc#Ed8O6WK<3gX-+_F_d;1$Mo zOkAq0N7^pK5Clt1ogL-#AsiDq{tC;wb?m0D?@+cJ1;*O}6P6kJ_fXg^cJ0E!7=s^a zE;lGGUnY^>`5F#*2y)Mectfe3vZB2duP7=-%76jmNvWN#$H_5%9Xm##i1?%}$t)#- z?H%vu^lL!73+aZOHR%9Rhm6ftVG%JW!5gnVU#sp%pEdf&<1x)SNUyA2Uijx|oJk8l z_z}auncM<=g42qpvfoQG z#;e5GY_sXBVID5Zta|`(_B%uWc#B|JT{pAYAc5QBqktH)v~Ewi>v+&uiA-FHn~lW< zd=CG?t4^{e%aSW*wUWnvZy zVPbRX&d*PVqR)DjQuEsz@X}k3{l3=jr1Z8lZD{XCe7TuC5oB7KQ7J)0eWz1O=Au#m zA4ga9~Bq<6nE> zb7#G&2jQ~hVK*qH&mH&tuBgRdhU?916(sJ(9h?K>Wu@qCHv;iM5{h}g*uz7Qf!%CU zYm@gB-s(`)9cixy@x+f_15kHP4C9Cem?swfX!YTD&8Zv8soOyqZ5+}z>CzV`G&bRE z5mDg}QcfN?h9+BjmdZO`90gId89hPT_;agdAMvX0@Y8rnI}?@kkCnKG9E1*$mG1!jYbL5sq#d@x3?8j>_nvK}6q#v`0n9-uAy)@gTMXdL-J@b3&P_m2L(-|=S0c1Y|xA4w`fMg({x2`4t-2-sV7cd z`1kb4wc{`heLJpwZIk02p`fQQ61Ph(Re6urG~sN|&gzq_8)()-d|~b>dyVD1g+Xhx z+Y*#(PwBuxvmgh+cqYfYnWfC)yjd;Jbb4ND8uXrUxA$P=r=p6^2P?LAjDaY3to=fO zTYA=ac>Z0JJE``Lkz!yhWj@i*VNWS>&uGqFh>uu4>y&VS5eBkO)a`6=73;R2PkQ7a zw94HnnBl-Py-?z|(pys&Q6fFK6>z)+pA#ol|KRye)X1`7XUPTEhDXJI9MyH2jHeEo|qcqf?tDpfpuTt+u z5nK)TSa`J3!4cduM7s+O>U;T_k`q7irQwA%@*6SD(16_>RFg|ZGpY?bI$KdEZdBP|GkhtV1qr>@qhGK%@D`7UEdn9{q+MQ-qMz{BAtgV_nk3rWD~8=x8ZG4m}|}!>(QSmngic zh#OgjO(I)=mF@PH-vaB50;w}R26vD0p7WBAv7yiqTvZapB6V2K z!+Ew89!X+g0O z13BkTDjOF^^&d>hlC)YZF|wcOXQOey5HZ&YORzMb1YvC&o1oHDTOo$V5DG+t(^Pp9 ze2^loK8mU*b8n(GKJcu|AmK?AyZ45LbcD4P9keSquPU~rLNZo z4f>LBflL#8u3#s&cb&ojh(@Vb*t9}T4?&B=a#cbr?^%XiC=8Qp+3yT%^psg)Sqwy9h@PE>n=I{u*#OJNr2ozIz9#iyAuDeN=>guO@p#cy5k)2}ui&P1`Y z5hE_T5pm_Zan7mg=sd_a68dKTck9j65p9b!#r*`LQnAL|S*nE(cgQoNCO~7-aj9t0 zfR|-v#G#v$-}cG`&@Y>fUS`KnCu5c!Lpl#7t)>ev!;JD1%%X7}Rv#uUh=bZxsggB_ zQ6XxS+JXc*0x-Z-Yt**s9Mp4I+gwmu;wR3e8Vf@!$=ne#s9<+bH)Hq2+*9ahy>ASE zH5^r6>7WG@=f`@NA|jK%fh1f_j3#$&)BfgPpWP$R5)Ja3b-Puzpm2j;F{ zTN5ThhX~vqK;tihY#*t>0mHZ!Igre^Y%%_`pDB5rk0PM4pAZuAasPBm`y8WIytR)z zNXI`N76&Y#Vv1W|DVjDtP~m~PjQiM>Uk{?}HmRK9r??;CLQjMQHy7kGnGgBGvA+d4 z`LO`(=il0A{PsVjzVl~i=Hou1#@1^2p*KiAqG+q1yxXEnX=W{1AB3VNc4)E-0U}yo z#=`H=OXjyh;o4R6I7s>w?zF7EfdYt#6CQ~p z0BGD44fg)>M5EGBe`z2n#P@NZ@^Zjpu`a2%Y7DB>13qT=7Ug}xtCkX0ssoikZ9ISP z<;B5H@T4q2bByo}^|V`%10ef2wQzjz2tybiDCnZc&^?-6pR6!VvQusty?UR(9DpYbq(rlsk??Fry>N=N=MzY5!($d#nYmhJr za3>_KI4qvPMZ4LWVhb#fzaAf3ZwDZl&(BgqQM`bBw)a@12KPuROaUumM%Fa$z-pn+ zgK|^oMkW_G{gFX^XSVWLg5K)+xtANuXtzAkKv^6~a{GS&_6h;VQ#Q3i4ECc`ta8*? zy9?-J~4#$ra*`B#Ip*f??lB z&QNy?Q|w{>j9(C|q*$1JPY?F!-MO@_P}QA5s;qz#)rv;%AS89#2MQpdS;cKZ?7eHu zfmXQdP|=KkIAu;zMUdig1P?uQb@z6!4oSKO)RFZW4`?Vmvw#Fu4{Ookjf-#+X9ilU zfaRa6>=)2q;#UckDlvrn#o02K>A!^|sBWp4;7`LhE6^Z*fG@@JQADiu3C5NAVQ6;mj4TTcO|-OQT51H}f?ZDfEPGT~lR1%$;C zGY6CX{94lbi6*CkLu9x%5d^km)fixc#OrO9)9(ttIzd>$KbtQN37jlu0{E=ya2>fl zJgFOhCGexYBwcvc@{nvpUqSc5xv%9zzEzffAIYB7O7zw030}vQT|f|t=|#FXI7b;( zPI*=NO$_mc&DEi@IsQ%G^o&gfc7E)_Bqtbpu*@TbWZ=#?_8;>2J!&++3@Y56TvCF) zCbi*;W8uk32+^@n-M#PoUGm4B^$+_oXBB-+q<4HWZw;pDa^vv^AjEdukmaDtCRJ#& zLwg{5#|+zoRk8szz^~^j7YPgBee@8?P8tLel0;`79s(E%l!Q zHqk0VT8$+M4BXcrmpBh`ki<5&!Zw5LQRT^ek#?^L+PjM_iL?D(`Ca1#8*De}0n2-+ z!ae@+4g-`)z!bUSx)vI^`1k1QAw`j$|M# z1t5Z4LoaAs_8V4hV0Uo54AKC$+bZFuM9QGO$9G+u7%$i^+Aw@GMhPauQ9s%HQ~x=X z!lh&z`GKr_pzK1#f0f$66@gesbr$T}9T#6iD@nI$i-NvF6`#XzR_~MZJ}R1&sW>1Q zqTbVy0YBCPHpkMidX}43HM;&(O1M1M$!S*Gz)y@y|YtW;>2EFyqU_->>MkTwTkq^FXiTI zYP}4tS+6tOH1vxP$1eZmd%7uM5ZzvvnI zRCoT@1FRBTp@reS1N{;kz1GuMX-zK7!L3^_(^AVqDnCiLe`nn@p_{-(beB9ArIKZ^ zh1MJg`>ReKPU8Xx4?13_$}M2uzGDm0)Tc8+fI0>tK@n||K(n`CFt#I2$6#gzYVU9; zxn$WO-Ki|v{Z7oWFxnN^|Hq|^$DV5`=8s-{D>rt(&4xJObM)9!QtJl#^EJ=p)2b#? z4?&azHdBXKcmm87jDN|psaXg_{^O!dnUwRyUnm;~cZ-b6P|~w3n6*7{kUMmy5OxIZK>NUM3fsA*S)4mUivYwCjEI z&YVyJG#>|^pigi1$0isWB%PqzvkhPCIQnb3^5~D_8by)sZD)hXF(DNSX-K4eq`VH5 z>J-5ECd~LCfjcYh`9Dvp^fP)cVYfy)!gyeXXpE6r_M}==7{A^vU-MEWl9&qZiMvB< z9gfp;jL|-IADg=WuJ&!J(CD2gOqescQHNbx_60tEHETuR-dTYrKwKGQg{67;)F_i@ zCOAWdoG;vViHNHJoI*vLZ1)~027tkcg_j9Z&=>vMu)qEJ%6VfZfAs~;jP*ZcZ0;Am z3Xh)=l1k%D7k5f1M6Iq!s*_}HuV=rRe5Ag#NUY<|%6C#us5gUdH#=?(DLzVRU)HzE zw>-(yYNNIhp(^2+tgzduhBunJk;t-PYFW6^%&%S8OleCG1T4~gWJV{}<2UK}=0?l( z`FejpzxNAMoDnHX>bU28mj+YYH;`4tJJE^(cA%VLyIDvn^NXmk2jL-PBGQ4n6;bq= z`Bvpgq5MaxWT@{FN*7f6cJpRSLlTE252rZn;;b(F^kOn-CZIJBv&qiad1*_yWmeqp zY7Q|yjho>|_yD(?wefChQB;a~>@={3wvRZ$5?Gu2*XRmEyc@S?$a$Y~Vx4RjlUOcU zS^*FCx&|nKv2w5Q9_)r0e)t6P8rrD?bOx@B!Dj?TxN+=1KQszV_4{*zS6!Ux%Kaaf z*txvgW0oZx;n#s+cMKwRNv_0kMa9^2%JsWWL;df>1?u1iht?5SZTr0H;y}MK0n=nI z#qF1-qez$tBUy%H`+9|1k+1Fz`1oR+yPj2}o~E_oNsV4K;c2R{>^O=Qat0dWbHCt4 z4{ck<*Cq)Q(>VWI&<(Yu%U1uN$p_MyFX(}6iD3iOl4PndqzyfjR6W_%&Kv(!abO?7 z3eWT>>}+gH;6(7j_Io3*p}%XGW0x)Ak9axF_7D`#KV=P=?eBZU?u#`|A1do2*-&<8 zTf+d-w}i*{!x1U#Xa*@FXU_p~BAQOr$BMt87>-mv1<`~TNi(uGGh+B>6@W^!Ll)Y? zp%P}11^aHa~?^3L|tBLYNjA@iJ!xZ?YY zm^fq{MSy3FjG&g<#N!~E$EB0Razg3UvVR_$D1T%~Sf^_X?T|B0{52lHE5w;}fsRbR zFRMINerWYyiIu`!J9;$HMtonfoTtwET1H;~&+;?5xQ{4*LkSi0SF*VMjtm;>NSs3=Iyxf z9coHE*!E?=k}D?qY$4=vfYKt4^ea2?YobHf*KkD3GmlGPEbf(D1KN1fUfr$NcB)z9 zPVOLv(m-!h>H=9GVkBL@c5&+*#vz{)(1bTpB#Q9#~2B z4OjP~1Y8W1AL_n8q0kiV!^W&)-0a5@5MBz2rS~5&Sbzj_aV^V6!>~rg#2xY3-Llug zhyK1+>HgIqA;6b3&tORmh436GUw`(Mj~lDBQzRT?9@y@3)@^)+uPeK71Rt3Aj?S#U(RFw{V`zPK#^R`egpw z!5fgt=Qfl4@s-TvD+^;T>S=9kp@nc}TIU{QX_dfZ7YamNBP0@zE~QvSWF+aa`@?Bd z6bL+cH?VHCagKa*DhWiZoKrxr3|D;QowtAV!IGntdpekQecDx~3`5+aTTnK-B79bJ z2m_s|9;bXcui5_8Kid*w`@11aVrB^}E$PKPsO}T{)Rd9RY zSpqtuopG4!s1iKm+cYu;Bt^CP##j6+I|l-DQ zL(R!9V{(!V}5^G=ckPYo9;PDJHw{ngglSm!s<>7UK0O zxAh;=%M?wRFClzD8_uyb8T^H|ZnGZ@&r>3$G{GOArpwimOSp|h?{~$7yEE6y;n|nW zWf8Plg$dXVex<9>0yWmSx7r^eaSTR7XlI$_9+A&rA2EiTzY>YRXD>K2EDc1%PG19p zb>^tk`fxbXJHmTQ&Zc4#-pC=QcW9iRKYnb#?c_ckGD)35kKa;?4Wp9v- z1oJ}JbA(2?d0%-R6nvQT`aGq?(#Zj7W9MJ(h_asx)s*w@Yb}t2133xRAh?Kbc0*~1 z9a5X_I~mi+gJiqTmZ=uDk;1f#9jYF)S{EVI~rHQum9fJ|J= zTd2v%Nq@JM?r)q-%|U{dCg~JbEb-_Oh%rqc&t0@t za)xilU{&0NvxbmaNXSVVKizKH;IVH@Qj_`e?3maRn<`5Ga2&~nntHhCq&_<@AuSel zo6vwNljw?Rw*l`Z^;0-!PJv(xOA%Ou+dUetM?G&b5xhl z?GlQc$ui;?9JdCMW6uV<+&Na54zP_BZV$r^h7);q9N!ME?rr%^nxFDo&X@g3m+=;D zcG+o9$=e1F^|1gG!~oYrC-dO{DpDx+#r#g7vj@;T;wsHijVIy;F;lTk;(QIReOjW& zkbpT4AnjilSPh9#2FC4UFbRM~dbgQK^E{<=p2NMLXhzFrg4r zGmp|jQ#JDAwGWD>9~`H^-7vygDY9_*FV$r1s+&eH9Zt7c4GV>mE}Z+=26Ggpv^9Eh zUSvKsA?HV=eybKqiYV{n3(zxv=WB-qbkPxlWI5loYG9$m+H(hv&abszht{*L^#H8EVX%v5z)Oiy9T`5b5>ez zo@E;L%serOeJ2&2un2OOfR7XjmbT!WEJ!LR#5d*{8M9QXWi~K$09Qii4mHE;H1r^$ z>2GW~Uj^8-@nRC`ctD}=^<9cRM?yOHjU}=Vk>J0{#jH$vYBRRY+p+ER!J=KN@j7Xc z&c>=nSzkr{EL1mp#kS8&mYsNfJojm}1RQUhR7cVy8byplY-;5ci6rt`M# z>!cX&7BhxBhA;K8dKVUIC9O%XDc#GZfwzU+u+TkK3a5U!oN;=K@6>A$eZ3G)sJ$W} zp>2>Vig@+F&zxZ9$>0x~ciY9Fce?7AW@XA)TcTEZ>(3wBNhf%e`upMppTPCAF+9uK zzQiK079Vl5z#Nhqa&3YigTQIhB?)$2JRX zlm@AzYKqiyp9~E0>ng`&eRTSWc2^*eEUvY5(y~Ulx6r)qZuGk;*FW_)(6Ogr{?p7? zAwow;DfnFzf0mV)c6EJXT)ineCU2+Q?9-f6)4R{wIO;E2aR!h9tWn`|r)L@_!b zIWM-*>rG6t;H=3?)iJN<<5p)oA}~~JIMLAxYEZ_4VWo!Um~`_$QcH50vFR=L!VzzB zcrx&*^`1_-|JsjpD{Ji63fxXEb=(~|)cXzw(l$e9sXAw~2R2)rJ$-{Z5rzr%1uRVO z`nzy`vU-@y*!X|6*Wb+{xUhEB#1SbggqP^5sNW)}g?V0j;P<;=%)HY6o`iBKf`?@Q zU5;Dedas&^oUm46XOF?175*d(`QppnOi20lDE4bI{!rLlA>sQm5;ibq$TX>Mw5)vm zw7y35s$2mkft9jb;BplfTAIQC*`vRXl^^?a*rk`I2n2_NT%C9o7zvMg+iDBRc|#G% zE+@jCkWK$!)cww;h+AQ>x;ZrjjN4#ejwdM)d(pioRng}?PIva{tuZ*P0ojS@511aa zZr%Y=YLoS!J+M`+jC&GI_y6omukSz6}Egbsl@ukYq zhFNN}8U2c|u!m)hLJkOBUa-yLn(=RlUY>T%aAQlV?&GjD*eF?MJvRZwQ(iZ%k`|tl zeB>JVvaD4$EE<84rZBskH)%2_0??6=bJq}9IPM?D>*k2|9FRf&Y_J2egQ#0z?)x*% zOjN9ncp|IfL@y;s@6dT&(^s_wP>EM+G7n8k$e_3Pczoo)mF~(3nG(oIOBESU>!1=t zpL#U*+n%=p?ha&}o_;&w#lH)eE`D-+xVd_(2KNLV@l>@D!xxYwpl5yxx4?N{6X2R} zmfowUq0HHkTFUBBAG*%274Hr_3f<33o*BVB#NrcnF4n!jdtDj?VKRY3T2dnO8Td%J zEZu!Wm&Qed6yj5l0t1`9RbiU058d^{v;2{~%Hv#A=mNX8~v~A2COdfu)2xFTK zhzz<%r^ZN509*b(YHIJ=L~_f-BM@G4InpwV`N=9$UrMwN9rHQn*znRz6KgSeQnzKM zqHk4%uv@KsYpW8Sa=~N(jr{}F)=&}u$HOq{^|;U;@@Rh|Oemj*VG`K}c_jJ(*@cbf zHNyGIDj=R3Dr=kV8;Gn&pnW)#1DUw0fr1@2qr5kpNYAvoJ) z?VxVkrb^|>s93d7_w0Ps^N$y>H5HtEBc6l~dv+G1s0y85)VWrmCkk7cC(R}n%&}Ez zHDUAl>cizjoci;*#Xz8P6&WJ>s-QYA-kE*t5bfi^Zx=r6=X$f01akR~*adrE(AdGv zxq#C5iDquygV*iju)KwbBG*u)dvJ`4DYBx8?5)KZl4EAxV~jvFwK$=vR0cXoc{u2d z)pV_`u_?c6D0*ny&Fp(%T4<1BVSA}SHj}`#B`^&;uMWbL`e>ViYpYr|y7WbsuWl^v zo#Yre=gtk?C7H@XC4!E=I8rxr^?{_m9~K#d3%gf65}2(b--M+P_@^2rDkT)vs$)@G z>|yti^=I)@11B>)9j3;SLg^+XZ6U@^|HBvJ)9nxuRq*wnVZv;-KP%P^{}*Z0<$pL=0zom)(B-^eRnR4p>-1y{{ibAwZ+{qnoA6$Yx*b4c_zadu&VF1GPL4{`lD96bS zWaHW8Z}8)PfA?|`|1)A!;IVz8380^EB&3LzCgG;KW!+pg!Yk}()4K3VF?gODY)a7f zs*Yco(4=PqvnpolTLRjkbJssQu1#r1b-p)4K?IQ$k-^(Xy*IRQmrwqL0Rq}*iI!og zO&|%yK%wg8d=uU;pHRQz<%eiGt?|%pa7PS(`QcSq4*AQFEX-n2Sk;Dfs9@D2VntA- z*=j~#K(jg-CC`!_yDikY1m9UmK2R1hVD&;P54|Mm%=MOvXG3giWR}?JHn0cQ*EX0D z#yD4is5nVg=hIa?7N)U}e-(hRsz*s`nm8nTY#Y?Pa51iDffY}m@ zfqm1^2eMDaX}ga}fF2+557v`?DmUGe=2F6#uv{(IEo zk>7D4udQv;==^0&uHiH_Tyb>EP2uSM8iZu~Pq~gNzTMPyP^^UXV+fDrPp{hNc8g-+$3}3SG89>t1L(hjnmET_I#f+jxH`70}{p1c0zi z9yr@3p=*Q<42oJhs10wz8-`40t!uZ!-dyPmMX||T?r17Uv`Ot^odH~YU!c@%p*MfG6n5}NV>%GMT@{*xBms>(JP40F>8F%e}j zJ(OYJ6iQge!gC^nPY|6oP>&LjY{7LD;!>eLeEzc_W-5Ndyp@t*S%ydRKYU7bBodRa zjpR86f}o1FQQ0*L*jDc~i>4e~EvVZvdm5VHx@cU-_b()7*hr$m_cbJe_=I4Ce^s3w zRG(^dnf<6-{Xhhxa5CYQakawXp3m)ysgn$1yb*}@>ClUQnmqo-_e^f0IlJ82gLfj! z4jYZsmoW=iwz+|hIRY@SP-<4vUncy&W@nX zv`|GJvG*rg+K3NN9jQ9QxZa;td51m=erF|0d{@Gd`d0t&-Hv);>Lg6u+I+zPX1`+- zAml7hTN9U1zxLmV9Q$tPeWaBxRl)3(2!SA&%*XiPs#p({NdxluPJbUu z;&{f_NA~Hv+I{yOd81f~23_(mEauml4Rly2MRieX&;}X5-pxk)I z5Lc?@7(h(I%u_zbO@WAJs7>4Q2s&)YZDFHX9U5X|bp24O|2N|ln}m9TWUbZq!ceKX zRJYVHK0j+RFtbPQ5j&i98FH%c?Q%!Lw(-75Qs4AhkaxMJy`pCcrPmZ647$I#1nqy@rzN-^DrqiK@~3<`rrd zEE(+k4C^Emg*MJemX<)vLcl&BBn1u>b-0Z2r&JzBt-9K~(6Anq0|V~mk#lE?k6v6P zMUdH%Z6BoTyEi@$G$LShwIvJGxvm)&)|U~V(GDYd6R{Nwn#&yf3DDCssH0yGL{hO0 zwy|KMMrXm;rvN*@Riel6hoP*=?APfEjAYfmfKwB@#MpVCPYh^FP(CV?G7vBqO-YMT;gPXq0lpj%NA<=X(T(U1L#$J?YKS?+`z*<4U-@MgiQBX^J7u74oIX1? zkjixT&uuJfGcSqWkWi_y5!oFXEP1%B`10eq^Bjc;Ju;*GF)|hOpEi|Dt z!^u-i+OpYG2%c?Iv$HNwSoa90Bx28#g=NWhwhs4W^I@f37=nLO8R`}y38z-1U_s*@2T_4v1GeQ2?QtWshm?=R z`SbHp;BfsRCawu3ggkOL^{p;nkDw#%E`2&4aX;y2$Wd>tzGy)EuNvVM;c2jmetiNm z;%h?c_Hd&@h^D=(;i*~RYHmiEVXJDewGbj$7NQy=erYjHimr^(eV~n(CTUggK3%0@ zL`j~O)Nv_J)hm~C7jURKmTGu0C95;K&XY!I$_Y@4Jfdy{j5r~O@GcR6!Uj&TXU!%P zs&FwU>%tdHP-cDM{lEBJ5Ia# zb=#OE-<1xwNS;{CjQ(e9rktVz4@t;e`^E^g8KFq4JT5L-Y8yF+Do=E$nuQW(FF1r6 zlc4>>H4kqP$Kx}`WvYLU$|Svm=fb;cs27D409f#WH(MMCoS}_8 zFfDNd;1HNU{%&o7)*nVZTNmVN98*6a@c<9vmN>_7jn1*2F#gGQ_Y|BA+*|89fyl-&T<=SZ_@vyrTwxBbV>S?(%}-)~_ZvX052J6) z^`gR%znAMc<*HK%-$s$-sU536QRy?WLZe8*NV5*Xf;7q_hjYVDqDfr(iY1E@@VuEK z@_Sya!^E%vhwsH%XP5tbkOUd_dqSm_2Y*>UFFFromKJxdf5# z)aV;6{xYKS{IjN1(7Y_8%Nk4)_Nh=SGHs7yCOv$J7HmnPAW5?PjA;$`@+@SXt=R!$ z*t?9jEbv+)&*dCvTXxRBM$`!pY)iM#%v%R#Jd%h&L36d-pR!A>oqsN&)3cqI$y8$& zJI`h0h2BHjMnbHSnjWU;#~-~7Ia4(veS0utMjRWGgFWC2a8L%v981KPZSVRUb|zCU zhtR%6EV+P$v(TwM#h!m>PMqcbPFfs9FfSs@A)lAo=s7a%YEXqSYL)r3C-3^W73wU6 zcxx#l-x6!9)~tQH`b4Ce{|M`v#oNH)!xm|4U}XkS+L&CB)5)m1kDzWi{8Bf3(`z|& z_^}jkPVD+{p4h^aA8*LKeeA?T!NU=|VYD9@NQ!XMDKDk)I_H*YA7(AfcIOW<@>ps| z33>`m8B%aD?NZJIJ;uDv@=3O5W1q4Kwcz@P*+00q)z-~=(19ypb6W^lk{(TgXrwF+ z7TGm^8&32MmJjJXnj_S%2q;0Gl$W%=d9*^V#g|Uk+SK_>guaIL4;)LI@1{x zZLFiE=lWe-?k^q*r1~ScJus7pEatoGF_|JQ;I(wSClE>31Ady`mgrlvU3n(gy-UM$ zxY4CPN^KC8?p}|27%C2C<;~<7&N^*nV|iXZYvhsy>Ewywkf$Xz=ceGe`aa88!~>fS z?5S&NsYg#i;HSqeE)M;kj2P>zH%4eBg4*C#2(17h`~Uv$?44!bZkS7eOb#OhW=JdJ zq+{1o#v_An>+cVM_un!#c=PV)t>e4{oWXY{0+cTeZvE7!|JfoP4Hr#% zB5>}e{XaQHl{;O9$#&vx>pO-&)zj{@4RwDsJJ2UACCyOJPJvJUf85qL1P-Zn47R!L znd~{aj=q1V@<%vH_25o*vD|b?Dv0t&lVl)?#I=8VrE895;zTso$RZ9%>bt9 ztUZD{tt^w$U$f;7(6SiAVI>cV(ovq}oZTLEu4GJ(`I7RI5oV2J@FBAJgg%(xe!xbI z0qusVmH#cc@N zEM;0+p1~q!6E*_quht$%vQ6qM#$gO?H(|@?R8E^V9n6)0ZBon_T#nbOuond$8Mu); zFS%9_Ik|15Ke`IFgMp#fq>o#XxUz}ki_3$rCf8*1*F}@F>m$KN?JhwGGBhb z1|jMXB4wH5TxL&FGITpjiY*zPg3H4AK!+20Cpt*}fw?S8-WaBn+RGgSZj@=nFuC}Z%te=SO3c)t7w6BpJYiU zBnuzWaZb9S%V&gI#9*G6hChbNtuzK;;Y4$f7_JN|H}r@BeZXgtHe0KIJ==W;iLM+@fyVLnqAriY(c&kTuhc3 zqH;2!JY%n$7c@CLa(ShG{r=czmbds;ov-*L?Q022qM|oF04SS5>sNb@kbEVhhRmCH zvD=SLBOR;>-Ek<_%{_{48;x@IcG%AeZ5Tfl;0P5^5v!ilTP(G6^J_I9bElgCGh$=+ zI*z<_HPB{7+yn;0lC|IuX`mGScFkoD|BaHSjO$w|KbGZ z{U$VvqBeLIQe+^CC1_ocH;^tMJBH#L^GJ_-4ONK<2=ewg7YJcj_Ih3Tj3Y0hl6Ixe zRS!^97W zD?pD3v0tD0@B_NCFtcZLad!P?jR{Xz11(y71M1NtnRx5Ttqt9wz)XLFJ!@<$rHe9e zXz@iV5xKs*K*1pMVOi=G62~;iGia*BA}1N6SZW|CbA=d3&M7%lY_9=7Kp$RKE*~Jz!#$zht1A2c zmc`{E^m$HrtPk5mSeRw8yW0Zxtp?MTd_|o+aE}QzJnVQ})v>Ivf)wNJQ-eNqVlK zUbcV$sC1hCjeUkG6z1Nx$=oP`qz`S5@0k~;Tn2jjmGM@7d~sJb!-3;&gkg$Gg5K#N z&kL&uFPcE)~#a`s7~nV7xwR^$X)=}J8_pKwZiw7 zQBL<*8o)dbvz`r>cMJ--4#)VmNhE~P`G|Kiu@ce%9X-1PUip02miKHSO-_d&Eij65 z48aKTY!Ql6`oIbrYoiMW0h-;hY$8NXS91eaXCSax>7um*`mZ#!2*JlGs@)Uj0P!a> zmX4RH#GI5fXf187(y~K@PZSAOJefh-8BYV;_acR8?)8ljgHv?6>}%z-)KEg=j%M6{ z`}@+`q06cdEMT8H$P19VwA%Qts+Dp_U_}-R{#{u9ccwSQ?_KuPM^8A^}$dO!pkPqV#VvKK^}v`^JCH@lp)dpA;Bqz>Whk& zF`g`lm@kK6{Ow!=4F1Mk)a^!Yo)CN9$C-M_KmD$bSl~sZ*1FXHtpKJDeJ+Hk*jlZ~ z{4#Y)7K}RBfRU-cmePPw78UYPjOU6R3|gn{^-8lnf3JX;GLqv3!%%3(GblWUyh z2Qqd=tM4pZ!nRO@+%hk08j5Tj)66GXHq?{}Lji`UP^TsdquS|_x{L!M5~Su3<~E%b zF!UZ~TcR2e;$DZdqn#!q(ZU%fR#4Ol%N{5*XQ1$C;di{Cc@M>_nv_`PoGfzFYk&be zvyS9C7VX%%{sFbwMX@lFPe0&b3HqWPPxR;}iU&ffn&k(COUA_}&w?$?4gSo-_61B)mhWM0Sh==`c zIAvpE?-l)`x}2I$eGyo*^ciTk7}Qhp3ZgqUa9y%;!kooOh?RutItC5jRmYsu{)Sl5 z+7v6QM_4{vat(i08;LsaaNA^5ofd6Q)8MV!L_wc6|O-oJ}BECU#41R$2b>67)NLAu& zFa>i$>a9k=-cK)_@@%gyJVwAq`gg!E@5v5?xp!E75M2~1iLxhSgV90zmiKT`oYURS zS@}iR2GO@pDu!8{BJ8?q3Hm=dn3WEgw+bh!z90Ed2&Hs?ComP{y}=k0029i+kdee! zEE!-aqL}_gqh~s@IW_@OihU^PTpi9zGmW=ePCP#MI-!xnih)6D$rKJQs{xEUzZ(yw zeJ2oiTeu)O!!+riLol&QP+(#240gf}$4iS)(_(SiIl;8d8prOEIt;cK0SK84Jw$P6 z9zo*lSY>o|JNa_-kuoZx)4Y_2Dwuxl_2(U>2w|hKjAZuu3X_=`kTi;&Y!<4mJ$52z zO!3YCG%Ex*`M}5_#J5);yuu#~-H{bBPKBKx@~maN!x4MG+DXUf;~gn1nJ%zw?{ddC zj6I;CxH0+BAi)Z#0kiEbc5+we2OHQe__2Hyb-=A`xh7G2(CJDCzi3WexGiVjh^s3& zM0*a?Y#O#qY^$0+_>k_+ZRM>!#Y0t{qSv=6&>$^4HkZ|^SkvGnS;-_q##VT`p=^nB zPQO|FDxT1vsO@ii1PmRzM8e2u>92{Lb)iO>8~1SUF7fQwVp3kvpNgh7jG!UWif6H_ zf}UqEdgD&dV3D?CB@QVRWdT-3o9^m1GN81u7Ay;EavM)=!TYdYdxzxox zH#e?63bd1`MiAZ(t03ti%Jvr_Z)T)a$+11YL~!AP|NTNb0@(1^BYQlI+y74q(@N36 zrKCGW(9F(MuMeXoP?}Iw$wBGY>LeP?!lj6r^Om>lVU(Zi9V7BNL}e@6{17fPO_Q+9 zRjp2VRiKjW;XX}JVJbUeB*;rK(a6oJ-EmW61lJPj?7&g!Nwcn zbysjOpX_}TMcF$M7?6X~AJPFgs7+?L_G2!ka1l)meVD9AO+bqS$vw`bzNnNLiVhm8 zWRcHuCG3Ek;qfD+J)!Eo@yLG;{ZF5poJofv>M|&-nlgWznZ<$GCJ9M!v>z2_`74*k ztkmwfrRp*T<#+NH#@|4Ou4qe`$3TIBN^&-qrF@P5oguW?qd+jOr41C}8alyd#B_eCilnz9`I@FQKHQ8VW`SVsc^6|K&!62j z6W0cL$WS5OY{kAGM^?qwD35#hKzk#UIoT}imO#I!JKZd4=keejTd8@kl>E1Dj2XH< zM_tu`Ma8R2ro0ItG8&@cM`)`$K-S&66GqU2ncoA7xfx5PVbLifN<*eUhNEMKYK_QYZoUIO((hIM@9mOQw~IruT0-4 zCSLpOx}UCB?TVaxA}JZGVeCocWJdBJMS5(IGsm2z(-<>B9|~`f$9vw8^d*}M5{>8D zG7#0Pd6|cozQ|uz3%JYRvi25P>KbwA0HfCl+Sg1W(i&7VrQ#-#Uon%Utgi$ zOaZaK8@_|nB5r7gm*I|B~6b>Vtwc##Psk;~Fs6 zq~+aM?u7Uez%cCR0PxQagf_m&_oN8%jvcoJm8N;@KI5TdIH(6bYr(=ebI2@d17z;Q zl`103M}GIiNAltcy!kejNNDMAMzRCIO*T<2&L6;>q+?xwMg0e8r@^|3i~Dy333>d? z0sLqz<^{%4VFlL{+k93c0j|g^Zr_HlF1YEaBuWp7nd|+}85TbRMzHGt>BsVJfD2Op zJT_20O{c|w6w2353RVyteH0snRVylP?_`4y?XeSF5Pba%J znyk#h5{L5*$VPgAljdG~IO`tcG_puWGdpiY)g;!WNgf4#n(Ew~)keFz4B8G#V?w-NCsJ(wbNZ+TL9gv2h#pQt4Ij*Q`w(Z|_(Hl7*@(LRtNGwoF^|{LK^#my9 zXW+L=QAMj*o`Yepy+qxU9AXT@4A+L~ZL+x;G`&XLZA%$Z||v zeh#tYg-E;;4t2{rP=p;xs?hCMsUL;Y5(3-9d(&3Q$(7FR^k@s7ikyDUlH<{})q)Z$!v;9$P^X-?P>T^xM z)6;XLO8>Dt1>mJv#Skfto+=g2zm7A;23B=wIf+iL$vu{#%GR;@jGKmYrhnZO%d~@n z_wdGU1H5}EZTGIS2}YIbqZfXM*D17F&c?yl1IMwsj&C6#s8$^()+}I*PcZ0@ zu7l+K-i0S%^c2||ZkD?o)s{(a_o~0~y@QXj4Bnu>z$BbcQ7WuAjQGN_=^-`&e%CVf zbhN(WoS+W;Sf{n9#1#|dl;`FC!ymyimUpGAb-OcmBEqa1m9REzvQQioG$0c$7TQk; zT`4+p89HZ}DqKT{k>Q^9KF6pRfU2i#9B-Zt0A@fx=tK19zReMyEPZ7>4&*ymaa5m^ z`*Y8Hq1Sp2g^vIY$eHCP9eAMpO1-z3niexP=9UXk)0%=+ch?U+f+}lN)o3Za$kgY} zt-PEMziojigQQbpT3g*4fbjU4JbU)qVyh=qEklCt*I49%3PL+G?r>gj4 z+Mu-PDbE@N4>n$~$7Ub7WPJC9_7y);Pv!#XS z7r?Cw?db**Rn?n?G&5ZG@F9o#^s1(l4vi1_sRJiYx0HiJ6QVO7vN0Rd$3Q)G&2ply zwh?SS?(0%tKoJLap{sgj37*We9(#aKrv`wdibo)rTS$v`FIr&iprmm=Oig&n*o62^ z8!vtGQS9-y?2)GwzdIu5<2!uXQyXeLJ413>)7m*!)--Ic52jtkPzP96o=IJ#g%V&g zKgfpZQtix8>C61vl`}hBwⅇ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 W7q}XqMK(qY>Wmt^ybVa@FNgHMJ)C6# literal 0 HcmV?d00001 diff --git a/MikroMaster/20260520/20260520220001-Config.rsc b/MikroMaster/20260520/20260520220001-Config.rsc new file mode 100644 index 0000000..1a1f868 --- /dev/null +++ b/MikroMaster/20260520/20260520220001-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-20 22:00:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \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\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260520/20260520220001-Diff-Config.rsc b/MikroMaster/history/20260520/20260520220001-Diff-Config.rsc new file mode 100644 index 0000000..9a76be7 --- /dev/null +++ b/MikroMaster/history/20260520/20260520220001-Diff-Config.rsc @@ -0,0 +1,18 @@ +2451c2451 +< "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +--- +> "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +2460c2460 +< add address=10.8.0.2/24 interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2/24 disabled=yes interface=WG network=10.8.0.0 +3225,3226c3225,3226 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 +3344c3344 +< add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0