From fc4ac96f3b815a1dd6ba8652ea0bd04df9b3610f Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 30 Apr 2026 20:20:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Apr 30 20:20:03. --- .../20260430/20260430202001-Binary.backup | Bin 0 -> 361573 bytes MikroNUC/20260430/20260430202001-Config.rsc | 4162 +++++++++++++++++ .../20260430/20260430202001-Diff-Config.rsc | 47 + 3 files changed, 4209 insertions(+) create mode 100644 MikroNUC/20260430/20260430202001-Binary.backup create mode 100644 MikroNUC/20260430/20260430202001-Config.rsc create mode 100644 MikroNUC/history/20260430/20260430202001-Diff-Config.rsc diff --git a/MikroNUC/20260430/20260430202001-Binary.backup b/MikroNUC/20260430/20260430202001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..eb62d7bb49d2c52e1ca32f318c96418df383cda6 GIT binary patch literal 361573 zcmV(fK>EM$sF8DJgarUzb6pe{fi@}7_VIT67tbmH00000000080001J$p;8o*FefA zi3D@u$^02BWs~+`Tf-U=aI-h0qxWxX61|wDk{mkkZvw_L%81dtPzO!&p5@7=S}|b1{jV9#lT(0W zsOb{8tqoS>vW;CvvAad~o0{LKAK1)}vIq|`7uiBv8FLQK6hvHX^-$LeV91Oy9J zhSmG)JskYdk``sD6zgczRBsLV2*V*16sTt7BMs5+qp}oQ(VFpE?yb?PcIyK5iIT|otZwaj%w_&3bM zMV{0{tGdC$Lqv@(F4E^DI#@bj*O287`B3l2bDO_@fVj4CKTu}OXWQDrKfbg=44`T| ze^Y&BaBOVe{sV-gM>xW+^k2%Ga%kWqGr5YPbiR5Xq@DArMJ7sT+9EL~1fa+z9jC&v zu$SzV2Q_UiJRrLoVJ*(?$YVVzSG+=kf1W27D}^rODdV!dq_m67k@ntwbkW(`2r#Ysr&aOf^{ep0JQJq+VDk#oA7T-9VTUZ2@r(LWz zNglar^|E_3f73qAWU~ArmO_%2Jc=P9cI9#F&V5O~obnr^ni1z+cO7r;GTD>sivsJG z%{6dEkY^`)8Tm^DIM%221%?2mx8@l-P0^SL^nVUF9h`#VHq`^0gjiscXNy9k514b$ zAr@0zJY=ek;Nn6Jkq|L%j>%UuY?a~6RuWYoa2WL{7sKEV@r#L$$mV(BTgSkB zBgFyN<_G#hTv`S^RP;^>7z}E6s+ugE9pQ!FCFJNbMWbn7-PgQ_UDizblz`SI&Y#b| z*>dTqwSNzf+IjxnI(nxxE#w!r1+y@HeEX03SBcAQ{JwZrDq6sG-j=f^cdIg)-zPNWG>P!^eGtZL?w-$67t>j9wVAuCyKn-e+<- z!BTV-@F_;)9p&-P)azXPnNP^UZ@Iq2UmutzyV{Y6mxy4yDGn6^m^^pPTX48@^jaDUC%?~_iWv+3@*F?u7{+4GD< z(m+FPDowxK1i%6aoJ)}YAx0`nciWVzUMkQbk?qOl&PcO1iMG;prOq%S*i(y`hnxY0 zpz!H~Br3r`E|D&LO$iqQWd}Z;FCrFXTxdzWBGpet!$3}X=Rqr<0$49!`Po7m0~*`m zOM7ms4w93~)+G9olEw!42b4Q9u(vP=hN)IP}iM}wy{~r z@tiq14lh{g}=N!O)1(dkd|@k0*sDT!7&T+ zK3TML@|^AB)Wrkn37SCkZDI8nCaqZu7~7OA_gHDbvU2~@Wb3_FoY4jE zjyLpdcp`OKQ9j@~HI&si0#UZ?=Cj)9s~R2UhmGUCJY!q2$)J=fZs_Wx$*q!dat;qs z$|8O}=`gxHdX^>L&#iKLf^dHz|L0?i5K#dre?y|I?T{XEh)+QlbQPWGeuS_`!*b!U zrA~VoymbJ3nKBf+VYR-| z?P7y^{v{OJC0^1k56P|7#hz?NhhXCDi^`xc@-=)keF?-!C%pZ0^X@Hp5Mr09;7n%8 z1F&~cPyOLVw6J*33yv7R#K#(NpV*mOD&GUKV*_c$ zNu4bG(lCSmt_S)42kH!F7hj-kVokdV*L`GV0_)SBK>L#=i zPRVc23(SI?k!rrz1%h1(?$>mmGEI8V#ecD6L!<9=gLJ7Rfn{ca&l7zTJ68V+)hM)< zG&{^(&nT$NnmFBNHz;*89ReEL5R`f&N3FRs8a$e6L3Z>5ZC@0z;LUAWo2rjjtJ5Tq zw?ivb4&obC@!!7Dus`2jvP{iPBBenmlKW>dbSg=)0NbD4F50&;OLCP~5xh7tzAR7wQlvn(d+qUS zIMcQwWCPGIH?#h<4*0iyy2e*ML^e{YkYfBi>MBWZ8S^A1qd!3qq_bKkU;aL^vsV9| zhGG#A4vI3Vb)F>tOPTNT*hgf_U(tW{I*!IMR%k333wwe z|00;-5YZmyTV=UtDcRI_0MS);Q1n*Wd%9wyez7SN*VuQ|XKs7`BoAu8KC1LBvhmJ& z5S)J%2BM8d;L=5dGKo59bxkI#G%4Lfn%(&D0Q~9pP8cWyz1lPkLIn@GZ;9z`GV2+pJ_k9$7|F zNi(bjR0cTg+zHq6CIL~kmEO9?RS(7`27(tqTeq9WJGaOvfxkCwJUNfg72UbT!uwBFO)b~m zZnQCZt{F}BMGg&cHAIO7nTPa-|J{LDpM#P!K2NYJ=TLnxkus=zJnD+iS&(0icLnAg z{60Cqqq2=C3Dy}Lhlf#VZfdp9c_xGD4<}lg{mLPBq`7}y9X_jQOdW%fJ69rW*E~JB z?~Xqq7FaHqG?SB<0cTXme}3CpL9>GJ_X*x0jN z`G!~uNG^yWPhg^Qi$isMw(~XAlTmP#t@1I8rysd=z5#O38FkC9(+LM&gF|<7b~qvU zov~0MQB~1=_~dXs#GmCag0Dnc;Y*%E_IN%G%qj>EM6j%N>T%veY=X4S$R38U9NTa@ zv-EB=w;IR*se3mP=DZRl{ZRJIbTu0ChZ~wh+w)P4HSxszPtIaYe_UiRdT2cQCR*skoUpZHrFdc)i&JfGqd-Dv6L=^wp)T4{)3!2UQVlnv-DCY1ZJ2|Ct1@6;jB9HXPb{~A4f{OEQv$8kI2A71rXF;F zK87&$TP$u0U66B-=6_MIm{$BP7P1J=bBJo0&Rv|_a7>I80ZCXvCkkG9-$R+>pOPIH z)W9g_VdRD9-g0nU$kH}xVQWEE}Lb3KcnB|1REG-hZfv%zg!f(ycY^YbpCjo=->Jt9 z2m%4pUtBz($Wq8jd4MR#ma6YTiq+)_`-Ne%tSiY?O3yG=F`QnlHZw<<$n$ErX!|kD5+CWy6iA^q`KV+-5%z$A z_e&SmeDi)pX5(3}BLP~ooQl5BHpbzA#6)QHKV|_ws=%9q@t%4DFNg!)cnyxVLL7!F z?e5<4+@frMAy()c24j_SH=qOaz)Hwd<#7wU#o7%;B|y*HS+K#DjX{`B*0J8QpBz9e zcl^`uNm-$3rrCH6)pE?^T5dJ%%{UNaFjsziH>}1-U7w<>#PaYK0h8TOZxD z-KfWPmDH;k@7Ipo{|WLO_;NX_L36ZMQ%G}R0WElvx^^^Y#N;@GU!MW7!PfA5i|MXX zTJeSi`3qY5h@P0wv!JeW)@J+NdsEHXR@{}YHKZ|j4fK+(mF-6QfrSMBS79%(g`}d~ z1@;2l5gMUv1tTgNH#N45alDL4V4;eU6PMk!)WNKZx>7iQqg-RrTguRwi%CpUbfIKQ z&glzDyB}PHTz9i2QDz==`I06%9+Jw?p+H`tP;atxu4!m%=hrPqpkqEx&0m2nyAMLA z3tJ-Vz5xQw1OB=-!nJOq@|k!0xxWD{pl#%^%2p?>LPv^4B@Fh-SohpkBpCAA&c;Le z!v``)*~N&P$649Y>J1K_=k-b zx|Mq)8^k}{Z=b|?MNq3cMyeN(A7}raIg9k}+6e$rlEXE$&JMjx7qaj=^96``gWBro zG&_t<>K0AZH>?u}pn``dvRQF%(}Ba4nFQCG)l3gfX2G}B;|?!mPai)wrMYv!IAzOz zl6q(W{}-M#n+K7#Gn1f$05^I+V6p#$lbwKR-rDfIqirKwd&ix+5kYA5b661Xk{*H` z!px)Lwega8g7f03u_kv@{t);Pcmmz`={ugn)C?Z1`0fmx91L0kYM!v z5C7@_Z=XZ3Bcm9YizTe+E4v%=rCqcKcoSF4PlF4t;U}LH<@=W7U}tf0$XhY`x_SM8 z4ncf6%1y}2AvumqPW0wCx3vv4YFWrG>sc;RyY*6QI94&yLzd=Y^z~tNZFmBR0)Zoj zgTgoqP)&#@LixJi9*!ih$^Q~2F}wJy`KFzN$mSN9RhB);skUyr)H*W}Su2}n4mh32 zNVJiEH{!s~nT5T`xfdVQ)vqQw(G7sx&lsP}@R%FrOB8%X=X#Mp=fKHWBC-C8pPezP z^2U`AaGdNGfh1qRrBXSWZo8YcR|V29Z{l=tZ^=z;gl&$&^f=Bs$PbwmBi-!+yQ6}y zJ;@Fp;kXnA#fPxBVK*I_rlM^xhHhdMIv`zcCOtIEk*XIF`H?~(7aQz1{k_ktfTbV* z+}K#T3dWR4=fq5y93ZpV+)8JPKy!`#AJFR}&*{^Hv&<9yZ6Ohv;ie~&T|Pe|;g@z} zFj`$j{*|0yWY%vpi(@Cq0>S66I`s!%#ykYv>3HQU3HX0K!sunof zaQ?hd!<>9Jnd4{!P>sP_vNFR2l4%)-Abgc6t9Rx+Trd1mG1Z0PUceF-mp1Tn_c$o@GtoC_k*@xK=QlSW*)Pq#dkUIYuj6%M5q6lyq%<6yECgRA@ zF3){tA9pG~_byQhIb2F4a-Vk3}AvFbAe7LFPSQbdOXlkY<28Z|fidgqjaF%EEasMvPG;O9u$ zvw1i{zu+~UUMK?OoHsp#S=*H;eAm^1U}Z4hWr!N@2DlyrBZ1NZ!>acWejn`V>Gob|>%~=&<%f z721pB2M7n4dY#wL6ay#BR`_x+(~6W=Iln@)RL8chBcyd|r{X;^{IKPX!OxPXodVp^ z0o%i=+5OoH&HQxks>K?hcY0&#hV9@K9{GD><`aK1zJuq3-!Fp)-5b}X_^C1o(B_fu z|3BdbkLaZDU|UCO4uW$*PfBEB9wHxrM3m)QEj)LkPA_p5MsPzH2Th|C z^06-+x2*m5c^^ehgn9o6eNqr3R&?()?w9KsMF!~7#z~+R+h@7rcPn0dxl7QY>pg-0 zFR-YuUR19(_0F@m5B*tHI*m-Okgy1Lw(X^VN24c~KYHP%ZuDd1gW|*8BCN#&P1)$Q zp-cPiPvc$x;{Jr#`;m}~i*;$kGxw%Q!~^WTF+C;k={#{x3_4CL%eNA`0-CwXA~H4( zT)qzKSelC0v%*is4lg8aLNbL7@_xv#C~%ta!{9B)s%$r8?I-rG#oOA`w2ztwf6kC15L)7tW{_iS)@QR64F6+x}bxCscHHV3;IuB4En5@BWs z1#Bmx8;sq#l~MY=^g-y+CzNna>FJqE#*p5KyxIAwl1QNAzhxHpQ4w(rbt6{Fo8Kro z*I7JBGP_Gi;4&e+7NgjVOLs;Pz2-rsJk6dmih(lheykySov2bLR!cb?Sb(M%8OM=DHoHSdNi(0PvOJOMXxuF^hD!#dmTl7z>dTtC$|3 zsPd1M!`Ib+-FPvf4Nhb7UaP^hY~WP^rHN$Sz1|P?yZe7{&~tT}Uu=xw@zq1}!H;XJ z%Qi35ck-|%NEegge#)>mu~3zGZ(I6K$xDz?_)K+Noa-R+YE(eC#8XIa{Cy8nq?Mke zuB((Bn66KG9xT}ilN}ZA>LHqf4jGJ;n4(RwaDAOP$+v;KL~A0FHOxn8qlEW3;V7`A(g_oXtOqlnIRcy;Y{DH}pg{%cxA? zmKDm}#tWIogUl;Br+$=R)u$I#*0@3F6X+*7D!ODig-hFE_wk#h9uW>h;!cE}t@CyI zc^5wdSHMXKu}^|Cv&dv2UStQaA)#s@B-X4MVJO@HegcYk!(;P(#)DAoz-N^&bC@F_P)16e@nR>?Oe0JiVM42Z5R-b-xCLy-t*bUjiNmdYH}8+cdeiLho9F_A5f z_I*pvmc;@;VQopqc&VKd@FA;ELAC%>fpM_;fI4R6ytwapL(P#^jxBTI81-b6Oa(t} z{kusr*l*29q@T~5+Dn zpQ51%$HWVr#(*p(n2McaSPmXig|CTl0RA&xBeznq$4MYYR`Sy`{plc$m?D_ZQ2OWmT1VS){>M*h&Tv4-R74S_~FYz zNuf)7ywLJ>dEb!UBJX0fZ#%ED+bg!hcKog!3YI+l!_x0f8S-1E9xQKw)9{tV>U*Pr z(7aecF3K{wk^a+Ar2_sq4L9i1IY!QgBojoyoXm8t_o11be6}3WREZ?DcrPoE=1qIR zS!$heGnOoTt)Ua9^1X^{NEt{=sNXd$$84<9&u6drL7itZqI*jH^)7czQB#h7xc z9pI+DjLjM_gFI~@ge(9sX#FyHpZBfi66bEChI#)9`@vzwSuJ85iyt4rNxXrND+&oh z1tu=2Ebls3fGPmqbe?L((VvSf+eiG7B5OIZlna0TC(mwH;%&8X)BHM?+E_jsD0zo`7nRRfd`FNi|^x zh_Ey0fuJAG!u@`vKZp$g7Oxx019w>%<+fC&__9N$I#&?vqqUP-b}?DLA@8qVA6c2H zC27Yrj_kkS>5!ZADal~!<#l$Kf5eiHitjx;2xNjRi;|=aU}_=3){QvIXFo9+H%G=j z@~RMDo?g~%%iKT8)VALQmwU>q2F8z{Z-Awj$iKP*Fn8;=w*$V;950L)(_JVCA+rl_ z^zye_iuwEI*)L<_y<9h{E7ltVU}M90yxWynC1NA|$h&tJmP zm(=9j3t`RL2STLjPv>?CO4bKGp3Z*cvTv$3(ILV%YCbY+|W> zJ-oF5?fiQoKMct0t}f_(u2FQS2+r`~a(1aNQBK3Bm+DdEw!dqzR68m5)Y6*7vNmTA zf($-Fl^<38JD83i&IDynTrIBCGL5re=zL;f-N#g}7ievwglYodg6+W7Y%}CI{K2rU zZ{0I1=uBZst)Oy^Xq*Ht@`xfo*Qvo*K78KSSe+SP%q~F^%%^Vb8H8!b>BRGyKhh1 z++r-YpHb-ilMiD4f(i2V1}R_yt+oCCT(1RaR~JoS%Nf2shzjgEu^LPzc_c9f5p0F^ z?tgq~fawIEz_T88E^0Hne8jz-dGyp+-6Yc(D)E8WACnn9tr`eP8|@@bnU4i!6?G)y z@u#sK79FWqWoU3^TgODRTH>1aEAAZ}_+{C?6r673ZbNZ5!B)UEC&SHPUqqgG&0~{6 z8D!1mz`ZQv3W79Yg<}@E)`8fOtBaPaVafMb^ga$ffhzHeaa^4 zY?{RZz?v>zi-Q{k#{$YS#wbAEjd04fW=SxLs@UBM&r0NEGqF@l0utU)03&`vaO061 zyp-g3!xR8U8@iNvcc9+Lkirz}1BV?s-xfrZg7fq2U1yOvb%XNSFGP5&K6PfPoRGqG zfFVbQ!yPs^41v-Mj$FC_vbPc5g4PxV0sie}DV3k29T7xW!LMS&Ew&LxH_;wLySN#z zL_&-a!|yTQ_A0b%!!e7BuqXzS_w}aLFVJ7EtA4bEy=}&5U{65bqfj)!XNTG2x>gNi z<5&2Gl1X2f#u#O*uSe|CQLOJta6xy4_gLc=r|Qh`dNG*QBmuT#L+lBuljEIi5No(t zKRFqM#@c0Ghl;8+XuKtVnzJT=hV=)^FIy#O#Mr(DP%R3B$g5Np@v9efvRwG!6JPaQ zx(F?R?m;{ zyJ4N5czTvn!GJQ#s|RlKgoLI9laCf?a3cnixQD1+0S=5Aj6OxZPFXDMVq$zVinmeQ zc!<%nHbMRCSkM>Ie6wETlYlE=CbDoTym3CW-!xgl<|h!;S&ZTfb!kA4=xF?==i$?7 zxg}TLo=^5A2YzXQQ3uorkZ*44|Ei9wh|S=p@8p99oq@RAd`!vUrLzAf#AX$8a)etu zU3N7d(=&@K_uC3#l= zNIr}ORHBY%4m@(uO@mQmUU#O>O_o*Bf&92PTA0MEn9}XC+grNRbbK-9okY-M&fZ&usCt= z4DW`oo@{UEKm_3TMjb>Y)&E6kdt+QzURjY=PgQY>zBj4Ooc zNd#O{nH(T))Vl^vqrs5YG0(UgAnso&|@NO&nNYsWAs+3GZ> zyBYwYVN}s4K16|C35CrOE$l{w8XuN&E5GV zX7Pd5WGQZSESApY6nLjK)*SBQQQ96TLSkP_j0yjGP`n3VLjiz#H+dgn!d431Ko>`% zr33zAP!vYnk8xFL^g{*4;Cl_AU!J+#l`{EK2;3E0es}dzX-`%CEi|X-?8Gzg1d~;!8H)nN{3JELRwED zy6m`hL>4qQCL6uub0SMUNFHd*KsISGl(5{R&lvi!!utZ4sVuyCC}?zTUs;Y}R3 zl;*h^&}klVEFJ5E#PAUvlA9?{GrGl*JvC4>Q% zjd+h%ffv2ZR((Tx#LkOkM{xCj9x+FqgM|raGhT!fJ)t91a`#bC7#G7PBi)qir_YL3 zd2&5Lt9}$t3qd6tpGuU8iiW|4*3s?|EThJQmB7>qoH)@V{zG^J)ZeRe$*mNAYhBS7XZ^g8I8<^tF!LH zB&{k09veV`&wz@|Pda*7f9p)lvC4|psy^|de5DJ&RB4VM%wPy#=>3RLy^Ewvim{KA z?>m1-jM^eLk4$p)MX-qvS_|Kh8qQ>yJj@kdN|Q?Nble4kQ5F;NlvYCG2sM%y;U2NY zTfmK0!q3OHDV?d50Bq{#RYD~)u0L#Jg!e6)=(>H|XO)krcu~{W3K(NKtm7=elXmt^)-{J{Qbho9p3!Zqj9zZWnSgM zPeS_5rU{{;@o=%!B;33xLA!O&yQYEbn7AZLaCEoMd!j=#QMoHbN<7ND?=eepzjU@{ zaaqkBxMz-Yqb@(+!s7*uqgxX`64}KNd>{)r+6~Y6M&rM7pOu|aa1!EyGwn=Kk6Boz zsGQAJ@EjQ%EBgy$?CZIU1SlW>Ysn93V>+-OE{BbH8+C*JKMNKCD_UEgu}(MU5*8~ z#LBk0OLe_oDbj0c>rpjeHR;i2-G(=!9RhIbi(*sOqq-p_Xn*(2H9|_ql==?(Vz(_VC!ZQ>8nzu<- zFeL_3-)b8cD;AE2;`ni})nNM!N7f3I*dd~Pdjei#ERwYV2#+0;w6ss!fk8b*QhJDF zNk)KKBFrfAerp+C@iJWD>s5t35RgbcZdjy( zKckuw=LJ_)YWJsy*D`e)tp8jrpj>ea_HY@14@M{13jr)+ntH24zOyMs!z|bWt8R`} z+(Af!Nk*IiaQ}U_CFTQmqXI?KE!(=~aRifk-T5fGz1neW%b`(_-D|Yca-7+3lS&wD z>?gM{KmVK(fERrMGWNnl* zU5QUoDQ#cU9f*<8$M(5^-F;@|IfxU7->67Mjet;4nY}t#_UNhEr<&0nZT0E5g{X_R zAiM5fj^$ztYy{N5p=I!186VJBViS%8-QJ$F&qb^L=CGsVjSuS2Ct`@La$n(wpG+-s z(3of5-0%n7IcCE#uwhx$pCW?hjl#XFp<~NKty}#hv;)P3b+?7|YZdQ{S#O#%dJ-ED zEy}s~zCB7Z2%<>X;>aUawUsX9mt|MM;jfIqT|O^b`ltw= zl!F6>XIaVAQuTYm9S|N?Zh2FKyV}-E()UY_kzd&M6wlNlE*AJ=Nv$4w7Fep3_*~H~ zv`Q2X&AH{6En{1wZ@%ds4Elia1w`Es`PO2ZLQ1!aE5HaCsZ%jtXz%&e`LO%?8BC>G zWdSTx?`b(X_PsiXTYe!tZvI+jsDth8-|;QolnE2<)$iK)?Z}TvsWG6e=R;ZkneJrG zGysAUzQ`yS-JcbF_AQ$>+nv(KM`VB;BD{B#Pp*P}v<@ zIFDP4$iv8*;(8^!l711y=*}5%)f|kG6E$OFN0)l7qD1TD1)NP~3v9 z8PzT#r{#0?)CU~A7p+1 z1a~CF$rI04^;v|y`xi=PR)CS_AU9iFO8>mFxa<|TCm{3C6?XKtg{kww3tah;1GZ*YQv2KDEeCp_WsF&5hxt}h)$LVd)>};fu zR~g#f2F#qX(vO6GQ(9HPuzvAAw3jv~`EI6t;9H8k-V|dkTQHR=UQYz8pR75qA!Ajr zjz)l=@g$t+E)=E%#rVWPTN5a%bQ~~pPMsmaI30j^*WwM>gXbH%rih0Y|7IvQYp^+ti(DLG=VJDjmV!D&wA<}(q zeWK_9B>zf{9g#XdwmOmk4N7kVT(G42vHGfZ6iXGD`Fa>l%D*x|9VD#Aut6!isx$j!!4)P zb?RLR2p(nS!`!?n?t^9fthA$cT1mApGV{+~QXM({kQ8nPufM$rxbVOgTs*yED9%;* z93j7mB*Fc`;+GjHt51U`5D}~X@cQJ$w^sM~;5Z&$rh<-?U6@|h3HNten~E*$$ng4p6qkkR3L`uh zF%k^8D9Uy~t@SUjL|W5c=HYhcN|CbjS$}LTIQNagO5Cdt0t6oESFumy^8Ury<)tJZ zW$>sI-*7yMV;7!gjlK%W)1^elD-~fKzM9^tj%T%Xu75hZnT(UYmV^8x4$FakaiZ@) z8AbpLP)^1EabCtf>us0}E;|vaLLw&MLiH!`@Aa-^D(cu~w<|Btx1i*3YFMK3VjqRC zg^)Z5J6)qq+gUyn!u{iAvcTu+sNJhAT=C;NUH*f(cgF9)zK8_3cD{Eq&zRtWAhn^~ z&#wW>+NV%aDYMR~WcilD2!p^83&TSiFS?bRtS#Ya^OViAA5|;hlQUtK8PVye&SWl*FI|Mb%bIEz#~94)cgYR^o~2 zo1^a?;((?A=p-Ae{z&F7(+eiht-6bop%=9du>K%fEnY@mJj;XKo&VY}E=nu^X9Dw1 zfis;miC(qvDT?CJqeo!**?~xB&iN>5BG!QJ1q%cZ1<_jK@o~JTzd0CPZ%e)-s`+it zuxpR+)d%~Q%?q{Da>EhV>zl%J0R$FBCy`OGYCyJ8z%X}}Y*L&Etf1Rc+j?Ex@>Lqp z`j8oXLAc6ydpEs6gfVy~!0Mmn1DMeg##pI9d!(%!z&J1>=4A<{I2_$Pf~I*uB)heN zqIm4dCCkB?W`v1_FXmYC&XJ%YYzDh#Yf4_K_Vw@qk(#y#qi9_@^&|{IAUgJ+ky`$@ z*xSWWvg`VGY2;>~jKF|lVk3x5+=JD9SfJ48-MNG+wVJJoJEjUKJ;a$o268J#qRLvH zemPDxH*}s;(t06VSwSsWRPq*;&%b9ZK*k!@|7k6wcQixl4ELenY{K!VY_}}gpv^98 ze$Yy@vW8N2`DUSny&oFK=N`p8W4i>_-#Yr`*u0pjYYG>CELh?!guPb{A$(X_q{;$e zqk@yvn0aN?&D@1nA=Am&yPKN55h?1|rt+1VzjY+NvUZ#G$`)tny>KR9m)V38--CEy z&YVXtnqj_t4*sma6nwR_K=7A<$j#YuI5V42#vA@b9XcN%loJWu&H!+JCJaecx1ItF zSRPbI_vC8IDLEiBDRquJ-LL)QMRSe*A+c0NrxWa0WobXXa%D&wRO-Iun!vp(qe(w^ z`|6o)8?Qg13Vkm&Shsd?80k40L4Ap}Q9fRDgn@O7p*~mcuQ}7+1+lP|V*iTau|`H> zkKWzVrbK&jz|uSM4~YupevstF{?VJS^L?P}P^#*oVfZuNrv?XG;d9AD`RHDbj)P87 zTms&JX}C&CFKo@gz=ESa{Kk_m9%qw_!8FLq=^m2hL5|&V*pB1lx)9yX!<#_ruM(@+ zq6;FboUoP4M4NCl_-EQtn^0B8xUepQ9cVE0-vxR3q96UnYst5MT*VsjUd{ZBC`6q0 zicBVXe^WnX#M}g$dzoQkH7QA!7;>-ksINvSQEA?`R=QwdY)&PsWbQ%eQ*e2UXhuG^ zcihJ@32RIGqBEy@3-fuUq>AKT$8TNdwe?hXg!qo|sIR@Bf0Ozdc~)U6f(}|`Zsr0n z|BGTc-EFn4y`G_?L%{+?cmuX2-9WME-Py<=z_0h3VFCxE?y5R_brA#mZOQKgSDL~+MD{JRPXx) z>l8Obb@|@w7<5)?A)4`(NJZC>7*M_QXruL~O&Zy0l<^l(vz~7ryyRmnF<&GJNnf5v z8&SjIj0$4?O%>XzsB-vP0k&P`1nCD6W!pU!R38lWIO zsA#rZhf09`_>2;5Axv?FD+Xc??-Yp2b)MaD;ZB^Vy$|QRn?3S7nr)E^CDOr4h2jiP zs9C|QYImWD0A%=*k5tM^0%yIsE~v9i0O&`i5X`OG0$dn|}Y*jn!*Td9(6l$-abK{|D z6MoHZ);gd$ejd)Rc&z|^58O^hLO%gzhxJcvtWey0YUCFuqGYpwIfmk5O_AMC|A%9E zX|F`GF1eb0iYo+&Q?O^2b-%I{u4{*rtW&IT!2;;zbFBH8?7rKTh|{IuZ5IPkcrmwq zky_cGS%X0r714pF+c%b<+Va*3!c0P{{;r~YXVp>{xVZ*hC5;9YoF{fqk$rv;0db2c zxZhqHuvNI2nw++Hj_mbJ61nEOyxkxv`d)ac*b!61j+nU-H*8-5G!*INuEwm2y39rA z2*4TNVH~nheLi-+7D7NRYx~bQ0MW3^-%|4+6Lo1y7zzT6jSw}c{(x@OJ^u)I4|)r~ zPm7#B6J(!sXC-Zk(vUpGb^yCIPd%rt(2$CG>*?+G*b)sgsvKN>CzW&Vo%gM^aBb|9 zw*^qAS}BLo|G1R?oPdWOtEP~cdu&ok5P>sU0(VmoRN~?*(~!~? zj_5oodfn6oidDBCh%d9xi8Q8xdnwjtY3y~m_pP6yV>TQi#Ta4QH$tFGN{s86PrL{A zaPzA=eoXm^lp`Isa4p}BXXj9JmWb#&)1}`)H ztb30W!O%#f;XQ@u&ngG@99UbETT8pw|oHLdzsq)oBz6ymz(yN}14cZuv zf0Ow787*$UXAT6QRvlkg23=IKT6F74V3KxVM_qqosz{?02`EhSC|(phw+;8tX1e3H zpE62r{R)MA|Ms*43YTis7Evn)zmt!_J7eIs&;l)Q8xj}4Sm;#VpKS6SSF^C81@jl4 zsp;PmbGiXPV~JnH_GZrcMS+u}N9D!juGA*WB|I~ZY^$>1s3H+ynvBtb#OG}#y8 zNfYEB7Fv6xKtL{NZ0<){oSXa#VTO$bV5WI$?uCgcJz*9jy~z8E6{v3ZItNkC$))2U zD82^l5NMz6P&0{f))nr#^0WPGYe#u;4h+RKM#O&gMdR9(VZD)b=lFrSa1J5(h=yK% zaYse(>Dhh>*KjGNFX5&y`!ELlCR|rf-MTyGff~$3^~Y?q0V(_ zR-+`PUCNK%*)7`|FY%kTO0YSlOCGY^eqcw+o$BUMIBsP02{5SJrBSk#RmGub--c+8 z7($U<9!;E{oDI_LF|tUt0RKM#z~P~FV#yOO;ZAo_uZw_J_ZOByJZ^gF1tec|yg=-( z>q@11CzVo+|8C%Ny4`b8j}wZ9o8DPRmS+&ly_ zHd~mRD@|Rb1w2t9Bo3?oU9gNZM>@l$bFee&7;R1VP#VCzH=m5$vNFmWUsr9kfEaxk zOb_IZlx=0FnaW}IY97ZE(}6b-J0!aZ`wR_`y^K;jy(f#fC1_o*fu%+7k11S52%x)C z!P1PA^oW^hA`1Y_-2A-c>C9h&v|=TQLSXod z#%YM@JBLr(g|k}0XNHeZ;#~0G9j(C8(+$QxGldr87g9LNa;T)x+3_S~CrIq&(-F8K zn{dW$0PB=AW(N1%+L`t(Zo^yDpTsUf{nyb9mWY#RG$%{(x zr){fE1ASguG7TQg^tu_F<&i$0VWwE2X$sQ5xFeEV+wEGer?>zirQBvDsS6Ogz!wx| z&YSQ*mwZt7157{>i!nJWE@NcIV z8|@TM?HAcJ;hYd@KD;J5Ui!MN_BB%c{W>v@QXP|u*Pqc{)hnflqrCYqi5+P2r3E5ta^xfp?xw1+jDJiHN^(LF$p<;_p&cz)Q1` z5af1_$M%PM=%`F*g0Xoz?Ru}!EnlJ%h`YbmkLMS2hO~@qc>();h_Yi!+Hoxuxe=$s zf{F(ScKat6&{pw=i%I&Ktt@QjZ#^z{x4enF;mm5S> zjX*vBTSr?)v5-S9RUF-#un|bhY8F}<)c~9?2=9JuVYIa3r<%T&FzS$dVHNfgEuU)G zko^t|uqLhQ2Or8a+P++B$>XX2Hcb?Mp$M}55*of9@tt_An!FVuLnqA$cmqI+IG;`l zmafV8;aGOMj8>1@jp+Zrh~P*KT3EsLo*?@ItnJDeLV&u^x*dZ3dvWQMV zy_z3bq1@4O<|!#B_Y1>>iDQ5dFz~Jg-{O%IkZ!OK^gyGuu=VjQaR^$=!{87|Cv>i{%80Hye?b%^B3i7F2PCU zQ0~ZW>cf*0lScIe9e5k@=4_*7ND7>BHbgC^lJm3A!5f_Fe==XOyEtHt7c6&hmM}#z zizU`(XE7-28Uqy#eHCV`SOP4nY)O$zYy(jKo+KxF%s5*v@?9}zq229qua!NeFH>*L8`j}r z=AL9$cwoyH5BvoNVJT}UUs3~07lQ8+Q9ASZ$RrYNNjwqg;`}I;pxKwWENR)h48tqV zP74j&SYbJY?z6;j`+xExhpz>A4?$~7V@{iTf1@*Nfzkx6K;PUs6bK26pCqz9?PT0s%#h$0QChcHVEqx+Z`lw=83 z^UZ|~ODef*VkbY3+_Yij?iG8eJ53Izw|1)VLb>UY)$Nfhn`9sA_ae{~Cas~WUMs~1 zFA^YzV%K^Xgu(jXSJ<&kGWp_jrqK4+9q#k=zF6tvjcN{Rj&{B0@DNWp8(n5#rD3BX zAtc&ZK9p_K!H>U4cXwsvRk&Ydlw`#E1|*!ygw=X2)kWPO7qF3iw~_WvewMV5wGSaI^abPXZvKp$)u;n zTV&~(kAQJ}vi(us?V=4_dy8#H6t^2Bm3!Lm>BE}|2$oYO1CneTMM}Lc#}70kos0rW z;egX=ZF5X#$yE7A=kP2>X59I2I*E-E2`AiZ(Et|-<~RxxtP}D$YiS+_QGp8sC^HBL zJ$JmiDA$Jwm&9Eeu~%A3Bv~js>BwbM4UF+=9LR?}uC(?pD4sFUyrANQn0voZI-_6W_58pRdJP;q>^6 zNR-Rwf79a2Zc?Ok`Smf>K8N=Jl2VTV-tC&Aj)Jy?#&2x;i*U_uhU*K$5=hNPo?4l) zZQfFrx3)+FULoF>Sb_#gJ>oz$7`NVw$!ZU4YlEN;_y6g#{jZ~0(KD=6(ucV~B@)#K~&|j4TGAS-A5_mIv~VENfu~n^3KfJ0|;6+`WAwsG`%M zWr&iazgLDiqlzWg6e`sPHTTZ3&FT9Y`65-o_4{f@!i{01)pBUk`Og)&q<%W0eNUY% zQfa<-B|BO_;<>GSvLdus8W*M(zX=h?2m8%+dxLI=-6A%zsy2I`PMA z;k#zKd!qK4g%?qYR(@lI^}eTfQ&2X;xtpw`T;Wm%wRER*{^NU}nPQwE#gFUO5lug>f*hn}-$A>jqamSy_3EMqwI4 zeGq5Ze#^^9L)t>;r@vqQjX6 zx--q>PhM(+?z0H%u`Q}O&2u0NB)qsfdI9d@E)pui=a(sC^?)0*wuED}#fAkQs;AgU z{+9p!+F#|krkVji&MR{>lSzt`X{_e#Pl?!^@3QJA4N;8nXCplWx5bEoGV1Xl6`VGD zIhwfn?%Wnkrqu4|DW&Nl!<|#q$QGo1+LI8eW~UXVR-QfDtM2R z;8Le!`hps4#>Di&PK^ojo`7$$R#Z84eY1mFxCf;x?A!q~`+_HrAP1DU{{&~x3OqNI zUGbJZ-X;&fS9*el61U)IGEaZZK)traDO^6?;J%4#u}Wupmx zf1XNU7otz?xHpB*`iyt^L5@@J2J{D~5s{RqJF&ZfV%BV5dv(_THd{>J)LsdKxqUIh(}z zy!@w}SI{3|oi)F)IG=~#u9%g>FPt3%6Us20A5t0H?i@!5{>_2f#vwL?IJQ|QYGA0I z;cB|KhIMkMnZ7<;dm=~drg620vMfUeX6NWu>+6S()w0N``dUf1q<0%0>kOuojVKGX zo%**f{Zh=batPftjWOx)w&1v=oDYd*hQ6s5uH_XTI0(q z|2AQQJ_XCkX76UWR3cxA$v8*g)-B`^LGa?zL%yHf6dqSo_IJ1>Y>X$9t1*eTXjoV{ zyJmit0@TJ)&EcgLFR}Q`kiPga2BRuQ9N0G=1Od&dqaS#Qywzj%0NOkJqC(($d-?OR zhp{u&+jc8~`(L|HKn1DKQce38(>VOuh_p#ay!_`YO3hnZr@*80b(x#PUc6|mN1dZpXcYA_PG5g#?1C2u)11B2cHy}$&=DY z2(Ly?i^^nR{Kia>eg6Jhc$9R23>W9__-x1{X@W5uyt@VY;}6PU$%$HSQh>WVuYkTG zGS=g#L`^jzh(756*H4j*^=~U)Zc7kBcG$78I#$a0KY{- zzkCxO?G0_Q#c|&|U3T|XfE74}gd_u2wPQeKDvcx(YuCq%K~h?JvM&~S<@@Z0|IxXX^q4RuZo zS%kQHNu!kga)N3#3t!PRy$o&ATNMOhRHW2G(dElKV>q!=$|FrC^A>ClPr3bR+k=mn z6+kr`7O*Rs3lobE+9!yV9T?64v=nhD3DO_!;>H!5Ae(0^yzLjP@db!k2h32Ug{IhnE{jtWX95~G2!`Ym^I)IJ$ckgTZT#pUg7*`{c{PT6Fm!06190B z6JC$f#GxhdEPg66c0K@R+5O8n>T2Dl!nUq!Hu7%QbpI;~J_zS)J)?jNx+ z0uCR4-W!%Htq4Kb9Z3uPRB-VLwB!)nS8A!fMTZPy+lFzV>!)cY3m|CwRk~Ko)Br_j zo#Bkq_d)emBTy!4S4_;L=RvWL+Y4W8l0LZU+AqZTE5XgNV15M`lJDhWDpJ}fPDS!6 zPe}~Sd9U{L?N~jLA2@+(8@WUOXDfFR4=&YVGf`{G|9nTx_p9;$(uXYvrfC*LP9c;mODjiOa0hE8Z zMUrmqxb#NIW`;SM3O{LyVUILmZ;XL--j-xB9fsC=4 z29)~8!0k|fcPdHkCYcrTT(A~_uWoc2t>fgSNxow+SetdEJp#J{{!89O3A@4#if~VJ zhK%)&Y#n)^F1t;Jmcn0Cddz7Vt7knjNkLyUk*`o`PKa{Pt`^(PS$kdE`?tC3I5mk!%;=b_TY}F;fgx8H3UPv!vNTrXY8^ zk|=5p(i?`pI-e;&w0!4mbO5>5L7q)iKVi0=@iW;#cFxo?%E*g}G5GL8+m4BtrVcKw zqV}^KvX&+nZWx7C`Cvwi5Hb7^xiKIy_!GP$A*gw>Czt3&;szw$e=WAH`vB;|t10^3 zO$gO_={hnZ6m;2FZB&PiXrm5EH(fKnuzPe+AuG?y06D9V;1Lj|KzS0!MWOB^HMUnQ!yNQ5M9EWJVq-@$vob% z6pg9bd61+I_<1*x0|(@p#7?1iUKrSvcz%$6-s+=ipB@urQ}r*H74aI|K`730*qY*! zN0KTtl(xMTI?nW&(+7uD-yk`vC&*(fTBk@jbnF1E2o22yU3AHgb$^d90ZYU$Njr#~ zN)OK1)OOUX5l~N!jxB6`tY>SZkJ(NH%sTP@;`WKD-ti2Ynt zLjAHV)u;iQ>~!e?zCI{-`Ji_ORnhUEL9ZV^SE&rwFP|8j4)JdRkrWyCn$6~HwBdQ! zo%F{RL>dq^pJc1`O0zVMaJ|6s7Iu^x1;#f{_`3abS8pCht6&gl&+*C+Y?YM(OPu(> zG$x>QLF*2w|A|@C$ODXv7OzfKGkjAeMJ8EKX5SdZ7xo?zZO8kMLd8Lu z`kOVsdm?@Q(7pQW5*OF*KItG>oxq{BGi6vd;oJG>K5;8%W^b*5YP4*VqH2j;Q4z)@ zlh{ySlA*wm6HA3bcn`KP!X8;c(7BY%=M#MTeNXqa3qZDa*$LwpsK4Ae+2;Lguj zBF;CtvF+Z@jwp8(nH8hjtY7w3V2VSd{n;;~8d?hBsw7dT);SybOGJjA>HJlg7B7t2 z{{V>lYU}|`?w~y-i5EJuo_S*Gnx4J)?J?ttR$4H@XzN5wo_MOh%QZ2|&qRqsQJrte0~SD$n4(W|0{%8G`s>~C=t6rU zSwi5%q_Fk;m&$^hfNopJDN6>Ue?F`0ckXwZLD1XnTloH+o=vhx4_z@z+Svd1YMWAK zS*wd}Z3W^)ORa!Zo} znim`$+1$*xHWM8chh12HW;)RK>yiS@{J@)-5AG{BQ5sQ5IBlm%YB0{qoRXco@E=8Q zSFb@wje`hx`)7HCu)=A_Oy$AF%z(`6n%j=Ob{<_fBoHhuyUcraRLq0k)5Rh43z>+ zm3M31F4={Liou&6sI93ct%M;RZ*^46443#oBHWe0KSpEMO-Go-Ze2}TRr2=Sh+$>>kqT?@hx0w6M5J8?ML647<}t5@4Kr-q zsoC1cN_AyG$k@uw#(e}tSns9%e^+lBeumnt#))=(n9T7&vWS1XpY7SueJ?dyXHWA@ zP=o&S8<NYZ}t*Whstfq~Gat+ju^$BNTZjqJbz% zFS(#-AyfOqSA@H&rR)el`{O@AC$+hz#Wf?WA1Q5fdOOP#vqjG2LfXOo!K|8j&WCmcRwz>%t6 zu7<4qOkWwQdPoH+9cD&mlvf<)C(U&xR{cS4ieUXmnnQbSpv<%j_2guOvFu<2xy~1n|ExZQj?2R%}yMbFmkiyW@!~VB2qqzc;+0gBU}V(!M;Mb;}OFtfN~Hkd7rSDJzX%| zrlXH23?e4^tOft{)UJD86Ml%1Kg&=H}n= z%AcX>aa5HQ^uewF>73jfNa<)uk&15yTQmt{mHmvv2f_(}L?9q=q4-$h>qWj7YD9{f ztm%hVQ@>4Hu+0Dm;3KW3D}jya8GQd^rPEw7*Pg1(yng^BkXSMV6KD8W>`U28VosA9 zx1~>KJWNyBz_`g&8db?q&d$d$^W~@UH1Lgj@O9!HzN(n2-f;_H-kduDm^FpKB5yz- zni#DF38p*>U zj&9$b;usZ9K?c5EB;Eo?k^$0WVY_LvX5^VqyJk_Lh%~`VP8R{zp%en3#HWln^hVk- z1{^#aL)pRd8HR%cCFS8S>?=f{3Yn*!>XZhgN_xo#?6=vWr`TvwFf>*G$j4SqNV?Mm z*E$+4W81^aNQhZ(fPdIH6OO-05pORMxh-1j<`ya$)W{k;a_(D2HQJ)&$N`paVm@nT`Bme^2mf%t1a+AWkT9or4Y}N7}i_*_ACB~ z=!^rOy;5+Os^HygMGXI+khyP?+kTW_+zC7!&ou@H~XC{ZFN-a5=2nNAfK+DsqB*=E7o!+Eu{RrDJwoV5ycUL?LU8j z6S5h0&Lvmr__6XcHMQSt-jp_}NXz}88r#c)xRpXcce&PK#?{_*Nim1xI0i%!cx@zd zR30zq=)8sTY04XD4sd-d#6Z|qC{s0~+?rTxx7(=(pbC4f!P{YmP13@3f9B9gpjzh# z0lZQ@gLBvd_4m|=ecdi z5NdT8T62$_7k$K%9AzbtZJZZr_Bki04`eZJc$nlKbyUwOo>?Be z3qgo5fCtVugV6i&UyJHmD~%r>cdMFda+5gz^tfJWrFaDxSd|-qK@721j`sPJHhuzC znY_Kr26bV;jX5aRa*IAVi&9K={(_T$TSMh~T$T&bEL8f?_xdvQw}-zN3n(Dw>Qxj- z!JmcnxpNskQfW+2#%u+vYK8GV0UphT@!v=F(!(It%(V+h$d6(e9HaR=FMMVopl3W{ypSOE7@u~g$>C1&QRaQcR;T4oGOq_rAoQ% zz}ebm+3wz|1Ehm(IO?^YX)p7)UE5O<9>#MMHEg+%kQB&dYxHW1=R|u)&lFJG1B9>n zvwIRAhO9&8m!3qur^qGmQWO4H1Fju{MO)=VQj)UwC5DKMn5K{X!F5w|DG|1z>sGnf zjLa5@)NJfjHoZv>edyn4tjjfqUn8Ooi_||Uen@@xUJyEo2~!#oIUlSRTmsf`*xaVB z2FJ}7siEpHUAvCoVDqcNEefslXHk-$P9qA(;5C3;^-v~cOEU_vC#HqgS-geEXd4fL zO}?62FhK(6t1EDO{$FsI1Y}z|H4K;IGjgy!8czO71D>32tT52`4YME1FV0S>njaEq z1kq2G%oTd)hfe+mCmQt@k0vf7&@$L_xIecJrE8ew(8>SAAo5}V+YhcBLn_B zJ`>(Aj#!st3Nq<^6mWgy;A>ZUoJ<%q;lTEIN)LZM=+UzvJC_s}OBV3lOcEFto;|dJ z;WqnReiDR-3R7!CngnbA8|kVoZ(4+ZZ<4}hI5We=-+h}7C74&6$6~^`5_dj6YT^s< z06dn_Xc8&OH?9kuwAyVmU3_hG4EDrmyo-gP>Qx<{S~3QkKlf2}3*Vb;YwS zr`ZJ#6F$WVYAmaqH;gt^@8Z;5CXm^JkXTq^ecpniw`_<(k>7K`C!_H9Xo^HD)M8H$ zr2^1phEokCvB_M#MDl!=p}>?HY%R&C3IBeAvbA_A(?Myd(a%w|rIgn>ZXpJjtPWh& z@#uNCcyp#)@<^h!2*0T|*!+_;v$T(;2wh=#Tx*>M9XEjUF;EIZrpzq~V2z=5PM$eA_ z%oI^UgBEsOK~TWT^KIuYIv3mkh9eTP2Hwc=ozDzwW9Gfctk>R7I$t^BA5iOs{4r=f z(@5aUc=jr^Z)XUUJtrg3D%L;Q3BdstKa?ggkQt`Rko0`~$JNtY|AN!lfRZ3(&)!S^ zWh|%Ib`>~3xHr3=9Cua!0VN#3dUdM2ZBs7zpsO6H(fQf@PAJf`Qu=VQh z3<>y^ytSZrO&ov^5fPVkjg9gi{I^5lAG7rkEf3g!TrE!#$JufSq8CgA=tQH?-@NY; z`m|EUL{}!JM$XBo&Xj)68y5}QYFR@2hJV@>;%i!c17D2)vW24iT6Z=ZYrwdZe^jp3 zp|02mr_gcrUvTSfh4)`~MDmv@>w60yw#|AJ7&qlwBk2vVbH>5%44;i~6xqDu56sJ8 z0ey!c2wN_91>xPes2ty!V|qYkH!iV;aD zqK??Fe%-`KcaxZZ55C>?iM34uYH&t>utDfNLS4a@gA7j7+>219z6shr&7_Q)GfiL- z3}oFSS4>nz57`V&q!MZai%#HsHw1e`4r=A3M$6gc-bA;dGKlFnd_+eaj0b35pYcK< z+TYypQT1fxXkhct)okF3!NUQx9sNr>uy+SoAP3}z!p9+^6d+nEsk<7{+-)SJaE0G0 zfrLtjm&X23PUm9H!FJK5VUnf-tNK7*F3eS2gFdC>Zf+h~y`GA3L(UFn7hswj6^OBi z8jIOow=zA>V@{y13 z+kr~-9)Q38^%42yRUn*7#|89hg*7%^1Zm#GV)nvu#uTH^IxJ`yGeRH)24=90{~{g%$6OAsf1{d4RQGc_=FZ`+ZAChqg{ zDdDTR)D&=fcX`;`ltou5h@~T3et0aNR{=E&wOP@^H&c)ik+ORfjq+Yw%0rogUY(@q z0pwg>9JjOYf4o+NU7c}IWaN>%-D=2)`RfA%o4bnyQ=m#Cp6ea8X|eK#rRPZ3?uP7x z;Xp-A=MNIO(NS@*e#+)hpr~a7C?pelo)*SF`vTCMNDg`-IW<#(F=syo^l7&XLiucp z{4^W1w<2~SOY2qIShtj z@&4tt$t=>NeGDq&Y1T;z8KX`|Pi6hV9H$7%FmupQ1@5WrI`{-Z|6h(#RWR>L4&R2% zDz`~wHjTmfqu|P#d>xAIu-2;NQ-bNZRVjI}kdm1+R-dKX%~Yf_^GyEhiQEmtpvxN04_sv`LzJ@R%$#YCoD<-!XUa%SW4w_+Z?CK|Q1 z?uq`ikGQ_9k^{vO9)yAY&FSjSwpjRVgba+`%9p;SgE7QOQ0l5IdjMD#Y@@XoLHZE`K%abN)fB}oY;c^VH zQOT{+z`nm-OrW9pp=UsvvtjS2x&1WgE(alv0}KVs(ws<80-gyoyZ5xT*eEm4Nu>ig zjKk}q8`gXnJ`!@jZ7vbMw2i(7$=^w@z_4C6?ZwX%+q7^@>~s|+8MdQD@l{m&Xg_Nn zInUI9F#U@%-B8-dA$(VUW7w`wRWl_9Pov_QfgHnfQYGbXP9IVeg&Zrl%QK9;xzE)7 z*J6?FXN-KdrNVusrX^x76;_nId<=LCBUrl5j)?UUlLPDgwUdxx^Mw-X=Ub|k0s`c$ ztx0D*fg=H-D8zk$U*2e3Vx5<|!MLRh4AAJ|q0|Doq3w}70W3-n1DJ}m$Gg0H{1ww6 z!D`G@PyPDc#IYAFALY-;&(L;sgT?=oAniz>t}n`pv4ol6#IUb5kg-P^J4z@DJtZ`G zV5MA7m!*OiGHP(tp5tP9f8@=gYtArste>f(3|f-{e9He#mu(QmVA#6OT~ySAt+e27 zGxvVSZ%hL=0!?@HtH6Zh>@!&*p(WcRP12J8R!vKGkQVk{410fFEi5||q34JDT|Deb zIPy1{be0=*#p|?|*0jmQ09E5!7Sk8^#91j@F`V&n4P%{8qpkXtn;>kttZf#$BTida zZ??%LCI(YbcR2B*;1H+w0JF$;h`!}hR@_;S?qp2S1=7|jB5g;GO1f`7>o&`^qqEtb z1g>PbwgJ4AlYa7b6mO1nZhf35AVX5-yBM9mH}ny}x*#e~q^Rdspwq$oW?xhEI>p;t za)~`}&2mH9G-QABbXZ6W^PHj9AE$9~a)WZ{mv{5h!UWNHE_9JP3?vsmL7OrH=e+92 z;sYiQTN-%FKyv*iQ0?;n<(>ErEYm!NH9sZY%iK(>Ep{6E11KF+i!qo-5jS3twfTXe zPWrDRd_6%1_#{cv-)1%u_`lW;g|c4CJheXGkA;0flagq#N%{ZkLQb5P8MA%fElh!u z<>*1A$XGM{hX&I@-LSU_RdO1$xmtLVQqq@8YTkf}RF4J5#F`EkYCoQaD?X5ru*W=@d)gDbN2g=SThIPJt0XZl3%OQW0rj`o$&PT;#R1 zuEN3`hqF!UxA|7n*-xU?fMU!_k1k#nXyJUOtVlMn zQ*d&J85y!M`I01h%S96vfKH zJZSxwtSH!U&Oe;!LN7DZUW0iBWWD;;tuIs-z`3xbYL}vCUafb1;?M0bm;!^7K&E@264B5iH-~OXf_!e_WBwxEN@-*Es8W>JuRmTE) z__Jyskvu>tmJ|15`)m_Ek1Buem(SLRWvPj|v64T1vvLe%cSWbh_N4s)NU}%xq@$Y# z*48+-VKkdQ%!aDMr|mI@-)WD#0jc@0Td58~+21;u0Q0-9Gig!FCZ8ecLkaJD2G%wbEmYmb8S6Ri=|kJXaS=vokytw~ z!*Mh}Eg+IW6blaoM}KAH3j8}$zp5u=4e#nVYv0#LZSRKD(nKqqhl!VlG2MqU^~<`I zs4X3Bwq{Ek5$^lN&n3pv`t6^|H(xP&+QqjX4mPXg0NOx|5Xs@#rL!?%_G5h5tXbho zTsAtu6EEFhQgxe&rQxnDSlfFves!_Vp@7%|&+m*D))h>@a+=T9RCYT?04X{KGFu+` zN_eyD7^McSAx`AmVLQKTibl)Q%VY*Wuy-gWQ7U4tfed;~Qu#)j!pAs(E5UhqU(GlP zz=bAB(ZoDMudPw4MYyWAT9^X+AGjq-dIaXn#4u|#rFhh`$x`5Jz3`XCB5Y*-;|@`T z7oVK7tm79vcD##v77S*4Omkcqm6*6qs&{3f{M&?PQEiwoxx+Arj>WHH{mZkg(}SPm ziM@33ciET%s)K4KBCv#WU)Eft^K}Me_DdfC&!^?@WAlJBBi}*2M4+5v6_UObd&SU- zZ=fU)1nOU31O56s*fSimft9v&8jtkh1s4X&_Ro;*NCyp4VLl{cK+SVAAT7CkOho%y z8ug}}4WJC6Lq;&r`m#0VX6>O9NEz%aHQ(%-2D}{pt5K=!Dl$m{y39eLqxZQ9_YUHp ztPokj3}0zg*T{zxbcalF*RD+C&F>62o9z~nS-_2TFF4{omK4iYc10DGZpv`X=IEha zzq)VVR3<9PVK*@!pq)5Jj_tRI#;THI&Oj7%LJzX^xMMR6#vq{@0t!pC2)4`9DwjFE zIZ5$!`m3VAjCrpdDZ#ZV^3^YCdjLNb@WbTDKn^OtQ(aHu{i1qoJU(@YWZ$RE9!4lSzbbXb)D02V$bw8dyF=s^|v4Q_K62egA&fd%CsR*Z*& zbk^a)1a(eM zlu%*|I#Q+ZBC)0-06y#{oyI^oIG<=ez)8LF=u-fKoy0eG;e7k=g){X{eQ=raGq6Wa zkj_xKmn67)hgWejX>+Z;Nap)wqFb-5n+{{V%hE+=X;#<3CgP!}E;;=oG z0AhwLGHAo=b_fXe#vZzv>9!u}s7>@R8v`(CyT@f2XyvyYx(t`1YyPZL^oqzGXwn6x= zind2kp)9T}-18+kR}G!?0jfympK#B%CpJn3f$)LNv{|3i(zxy|9AdHYBa6a`NcE(h z%OccwMTloc8S%mnb#l6TX?8qP#mQuAIJ>4;m(_!nfXdwQ_e->*rlINDU245(4HObZ z-%D0+ww1$3=XtRY<)AN>ykL3Lh4lxZXZhKbkCGzjK(_D1$BIat>P3fr;8Fs0j9Y}J zrv{p^^y>Z!wS@GdL1#{0#IH6;g$Gx9rtR=DO3`L0M*K^=fMNTWmI2veiNbi3ly%b8Mk_uKPMlCO=Z`$l>0 zg3*QV)ilAog%=FY&^q)73iM1W+HS2gEL(h^BSdrH6 zszVh6Sei7*YRdSB=^3W)A#wY0pC-$wGuw#|9?d;*D7zE#=W-B-7@??~ZaC4pPeKp( zATq5V!m$G&IL9FpPTAD69sxl^36EoXrXs?L*p0=2yh#xUjY@kX2q3vXCj_ZB7L335 zLAyP>%@r(obHAdYN=xp{x|Z?^{@JjY?C5Gi)?`&lz0$j=n82ixfHSDHMf@$)_d;PV zZ&iz5uwmxo?rdzUR*Q8@qb3`W?xO zA#U8C1MFo#SK6VQ?~x)!&19eftSO*sM~LQ#-yUo=mJz8_ZMS?-Ii76~H?w5HoMUsG z#f;25(x^^RbqCfmc8|O)D$qrm(iTQB7T}z0mh5pYuxlyT$b@>i0eYu&5St`w{&BD# zMApIh0HFfR2&zks%Q8kJb{T}E5;K<~sovz>U=!>NZ!5r56KDmW_KWzcse4Nz%!98E z#@;uTAs&?q^|{-6+9;3D%L2y9Fqeh3K}50%Tg_>;ItgRRTS9)1>Jl!#TwRTfS!_aG zmh`o`Dw&?GHu7+IB|?5$Z~ecyPG0N`tl`eH@#J&X?cwfsZ@kNw}%KdQbdAVE!=F%(2?A^tr>J-az@TP~TiddE9cdM!QILrQ{V=-(JxlNa$(U0WD$3D@&{5om+*dg`H*ubC`>U z4=zo|AL4R97Aq_^8hr;@g_g+@xt4ckCb<9xj)JEz0DPC^)XTj5om)sw@>}D z;cIS4P=Mxf9x0)MUX(qmCv2)Pk2Q>eTzN(M&`WInjtVl@F3gjkkFCtIn?V!iXjoVJUM5*w=;G!uy~f2h z9Th@sU-{0`boN?Wv&x@-##=CJ-)OHOQVnR050~!s8I77RnERH(Sz6HvY@c3{;;V%Q z4OwBNLbYhtAXqI@()o5y3FmE*ftdO*%G^!1V=!tJrf5Jcf5P95mhIGg_sHbJlDO

0OsN1*dY-m3u^|arwA5T`S`$kD8Kzi*%*N~`)=6}O-g** zX;O(?H4<$MjZ;rpf!FK~)MZ}}?+fy*@)ZR&M%uZwHDR^COKs>oY2mO|@rP&*lJA{V zmq`za+R%d`ZjFlEJx!D56t1ZgGC}d$jF_Z6KHt;S5K!}qRuFwldFTUg(0(uGn_f8* z;V3k(sU2d#wM@&p?5q3%Viob?!SSUn>SwSp73py<-I!J0S)qScM$6?aLOqMwqcHRN zhlDj7-MEKr*B&AX!k}6;vF1`ksu0xhia{3GeVaM4ZIkLxzd`#AEH9H4b|6I7qxi>t z6yYTzNS~JMSMC1uw?%gpGm0g-Cwe_cjpvem%>YG_Xu#wwl25o_3oSl*PV|bXJ^a=F z3AjSoMYfflY82S(Tlm>8+%wMNa@b{v6KolP%*zylQ@>}_bez2daRR>B-kW*}fqqpq zl^32;)Ki-X7!x7t)$W;NjR~v9?YCN;&0> zF14IIaA(o4J%f%6M8A;$%%~X83UqztXU%N)kQCNckrF(05vLy_2^Y9ofa&fNc1I@0 z-Q@||)EL0Y!{?R`DPZPj9Kr2u0v-0Z<0EQ*@atTGhe&rwozR4ATe*%&5^?fJO8tam_37+gE zwmmL}u=MW<#$CDFgy8SH=Sf^|(Lv9100Kb$zZu!J2;eP^!=^vIb{5!If1nzI2eRlx z;cEe6oF83x!;B4Y+}{kWyqgoPfeB`ezvm-iG-^dR#EIBJYzHu>3BE-rw{bKLs=%*7zThII%FRk|{9E6G+6QyQn6A4X;n zq|)KIkfG8=UcKaE&n5PKyRy+kZMjc9)|3~xkYhz^7onuzG#e_t!#uS!HFT zWbz8T?uXA}Xp_*sFkN_RGA|~~;_rXCx~JMe|4E+&M(?{t?Nb#sRGRW(*zN6;mR;97 zZm?qv7c8>N4OG{Nh?G3O==IYYc#toV%fT<%jARD$#op#PyipNpdw~%YY5cR5^5Mdj zqhE^rQ{LSI-$Ns*w938H>|*+pUK7%AW7+6dlvMeM!VDDhJKhLWDbj`rxSj9dw!k&P zvG+uiPS1qNheO0x^^-XEh0@p>a#q7anTnU-j$%BKlWyb#s@2v2U_Qm@>7p0#U`$^m zKZ)F%=`P4tokYv>OIL~7YhjI$fP#qzEm6;!0@e87)_@j&K4i;%k913 zHgrFfo9*F;uircKq+uO(LP6X{u`+i`(U|72fh3FK=k8pY=1sJo@Bz%7cM ztoau9Fp#)%6~6Va7wJ=pw$F!Ob^G2x^WRQ}^Ot=g$y}{Gm|b<8Wb?bNYB=U*3aav| zrnU*WgRTYD^=`4MO&-=7BI0B$3-Nk4O)qBt8~HaCUc`UOJK2EX&BLUlhOaNfr)5tK za2{7&6kFHZmn{yUw=%b>;M6JFi_)NQ1@T8o2Ls^%dr%K)EK-P$l&b;bFN$k00MNx? zH`>Zs`?*&oD`E8z)_LtsuwG7#8kK5XAnpH2zGr~iFS_Qec=Kmn*y)gkX$r11A8{u8 zauK{yVFvRdV&Zj|T7P-nAC(tsRlo~&2-L7`jILH$yU8985d={-L_N*)cXxm6i zb=m-+2Adj_wMdjJ%I(6=dMD;99nxp)b&3r~wYiHrkEVpIEE)i7Zf-BS7s=f%^#SYEt)y;jjT;T|4Sx1!;rXv@~EE)w1Z|48N8`fCe!;B8sX z5^j%fXw~ICSey5kvazJi1=JUJACEVZKuV6RqeA@A60inR=V8bHGn+{U#(ByjfpilD z+;t08oL$St$_eg&zoej0ytSK`S(0Rgr^QNW>se z^_kKCc0fOmmD>_I;ok!J7q8}0eeL(DTG0>fC@W88?A7cB0LyQQxGfjf@7#F(z#Cb2!P zzVv!V>OQg%SaK`+n|DxVip08x{cc|ALHGxN@RI?;VE{8QKMWg&oV+zmw;*H4o;j^P zrw3-7M|7Xd6J{HNjc??dNT|Apad?~7Vr$Hz)O-XQMhws zH%l)Vi*O-%+9Z*C+CLjuL4E1&`;7WiU2Zd8(S+D_+*mg@#@;&_$Vam>=u-PbdE^ z;dSASxWDQeOMlW2p9#nJTchB8Qq?Pezpy5Q_F;B>6nw0}@&8WYI5TOWs2b7eF3R;A zl#xy-qQ$x2iAYj-XRF!A0VhE7AQ&AfWDNsT^^Lg;A#H4Sw;6YQvT5*#r(R ztrclJHbQ!oFlc@R7G|(2Q|ivs;sAPD_TS%{x|-%Wm;6cXSFuVEjy7g!cAA>9poaN$ zF>2^+})iK2QUOM zc!?Xs;12v|`A=$D0B9V%Q$N<#)t7t!zfOSkkxdV0dVabOZQoy$?zySGE3Ukn^t+6& zYsQbBVzNh*)vCy&GG2^q>6Maz- zl~~|eK*PPjPb{QEhGBDLiCR&!a5*XHdT9I|r@LWevna-&5rkl|rv{ps9`DPCzQ|A( zroYWzW0Yl{Rg$^mg#z{N;@`@jSY-l(IwU;THB&wDE7NUnN_>O_#at;(OBBklYJ)8m zLa3cDCVkAZfW`d@wH@e`3eq+yizs_mNbQ6Kix=KVzG8d{bY7Krfwlx{Q5A;-D6`y< zVZ&ydKuVv=c&$3%=C_P@m{i&jWBj8zAFYnIT+-}e^cOeKu5d@9 z3RI~XO0vkQlXY~3wI`{y(0O5C1=lN3wWE^q?IN!{Iku2)z|BRNDhJ@al;s>)QuS36yZsJf$m0}rI8 zxL^Svv$D4XHd6KK!^#J7DQv>X`{e5_K!B!3hgn_$6~DXIZf&(n1p%dg2a#4FtMpB~ z1DStbXOQw{jNxuT4*(U>niT>@aU6!?-&iU}Tu|20yC(F~S{H2a(fHNDc){9fU#>$7 zxB|I;?w2>{1xg%-cwseV34{0fiQsRjeBEK1Qy7^aAteT4`EQ>#4%FX<551OlKg&~@ zi6xA2(Qow(ZyE+9JD*_sO+-=;VsU31^h<+ZHtg6K)r{T9!H5O>o!}YD@9hqqq{=bUrA=T)cn)Ffe+(` zFVLaJ=coN6#ot`DwFASrSpjTfSmO8(GaO~Xcm0S?^Uc*r?W*$?%p8Z_3^|69vv=~C zh4%9#SH+>nelxa!iY=v}*d{@39&}ilgKodAYbqBh*#!up*$UPKu;2?+6&L*496wPb zki?n23udV`OA_X||LkUeGqAk}4=#*a85@+6UPiWmI8r{?rKZ&_alq9J@Z9ONH-PY3 zJBWxpBzIzatVy&JItKB*G!PD!D?x>oDe)}KrPs)`DIkZsmDqs$%+?L9FxhZ{?scl_ zG%4dgCpGNxL^Q^*ei&q?6PtuDLBO?|KCL+S^*bAK#J5=-LOeqDZ%n{ve2OK&Ccd%i z?~TZQn_HKDLpp(fl$&n@&2_gFkBQ$o7e`}A|D2pej^~!C#eTRK@G@58By{_U=Q@T$ zO03lx+}6a^MN&!;gs<%Z0%+z)l51jlG`8_*<+5yuI&+!daF1aY$xMz<SiX-@PiURbz+f3+kBxKExg4elG9KMcK%UUxBBdLvwuW8*Ie?7udHjb8fv2XH zj2l-8y`~pRbrd_=4NygTNE+=NOiNIiS>69Ef5DzEZ3jLH2JK434{qNZguSZ;`rB@( z79k)aQvoe5jYMrpZ2=%AY%%_}gwgyu0%)J!lBsJP8`RjlkBfxK?AN8k>Q_uedk&_c z=XBPu?cNSJ*x1$YEvtqHV&*-7Ste;}W%giz;ZlNT6Iky_6@yQR(1Y5>5-YiNk?>)@ z#C$ym?8SWXFke0x!sc)S^yL#fHDWZkN!xfh+$_c3rH)wP^zEy&tsFXC$yNkiLhWIz z#Q&?_QP4?cQ>lS=KV8i=t{7fpzO+e~!yqTzsI#J>iYk7=rY~dr7pVs<&GQsm@r)c1 zS9R9CGG*$$7orTN(qYCF#N7+|an8Lhs*;xlLGM(kN9_6*;Y4&2#dHvn>5_3ZrC+1V z{>F^eGh&(Ue0u1Vj|j|JP#Fqis71rVY^9_56u+7usH$^;sF;|^HxKbpxf1=A3}Cda z&}qQDiT2Ad0F*V$q}gKQapW6(Dr`C+rp9Bs$T?IaN>NN518zJSu0FRp{9?-(a0zEF zda6GSU_khuh{R$s6|O9?86zBFZFK^NIbs1pb$ct}YC4$1fpe`He3)8kBds>q#&3x* zUR*zyd^$m7Peg;G)jGbQ?^-CnB%8^5!%!trE9Zm#h($NI?{RMbnf&T?`6K5dT(?nV zARhL3b|dC`?V^FA_JKW5xRuP77JjGRLi6?2Vg3E|MB+kQ{o8Ji`t zlVid|x;}x${@o~r`{KVLFe_km37sCnvHHf*>YT<@ZX1t8WiM%plez z=G`JP8dFt-(-4!q$vrU3oUnw2;nPc-jgDI-^fY-Jm}E?>H3_5U3 zQY_ZlT|~FyWvULGtVS;SMLE6AIWyJc91)5{;{@ZRf5S1PfmBv}U6BW}D4T~(mOM2!SrZQ~apNFA!Xn z>g58AKI*tx@|bnla}(1*7PD@NLiQCuWPG0vy*Tn@)yIFbqZ_(xZYeTC?yhS1VR%4?#sa?E}1t;|^VSud-!MAhd*p{ zj5vmFIMhcX#8GVfKg?0HXeEE!{h~~ZK_Cy)yjc;eBP3XA4YOB-13f^j1IA$wQ)K8l z&CA%egM%hS{s|3^Tp#i|uNRK^6x`p?2{UU*2fhg&^a)QBxDlL`8!E`z%fzRNMlS z$eb_O(0#(8QbVkvt}dOAZ2j_JA29Am!o~VSgBPc~vC;r#6?9EN$`YeW8EanhEAE1< zF~zKciJQV8AOf$ulP>BTWO5IT;xOjEXpe|5t60LHiqQrt&?A)&$5?nk546}yIPx2iQ}J(?Y;=|kT(6j8Wg9$ z@xErlgm`}**1K;(o`@s+79v*J<#M06poG)%RKHC9V#CCo`PB@=W66>FQU#c+&4o%K zyr5!&%*`t-gFsir^c#Dvg03q{DoHkW|C>tiipNpmMzy8l{9Dhk1dGO@4TU<)0~_>s zpwkyiSD`&aP(7UjVQGwqE+D`vO>#&2-m)}*H}3h(_L5#8K-q>PZ4-Wqv(r*9`f zMvuKcT>M`P(2a4(ouN&;%kIH&%ERX+Iz;tDwB=*YJoQm>q*lrCPqof{q%#QD8RSBF z{Cs-vbR4|$hmBa9QfjKeduG3ii3ZkW%KIhG7gpgP%2Iyxyrf;c4$%?E6En3>{e_D= z-btiNKSP>#`k;G)C1!z2eKOLCC>;t8aHo|jwA4F$qpFoK%o8+u@@$7YPNxCM&zWlN z?D8~42v#kwrdEVszku(XxC=)hBlY|#C+_l#9;^;G0`&;r^es-v1~9p~JmJBfS} zMY$kYm8*e@-I@2olxL;iNqa=x*{0xENVbFrtqT=A^MtD3ySE5p>mjG?m)nC$T09Lb!om^A;F5&T4}zZL8a8(*Swy8vYLT|s8ct`zuC?SzScgF4 z(dL)U-_w4jVJs^QND?WF$EYOA4}$QLEaBb72E*2`7x6&I%mbsmA$osHJ5@@T{lLfm zYoBtoo+Se%B&tKzra~r-61PT_8sE%XjBy21>HpJw z4UXGCgy)`L>WKO<>V@+VYMx38qGV^1u8#V3u2E5wE44!OxNcF8x*@zL1Wv`G`4V1d zqAJK;7|}V$Er0d@fY z{pLEMv}~~+i-qQYYFcY>j2nmgthe<-QfUqk@#0x6TVao&t{sI#(LzrZWH~C1Z{3oz z^H9idLI}4}t4yWyHrUQdO3Tv>X@yc$_Z)1a>WNGXyJ%v>Y(BXg8wLvKGhvEuU; zj~Dkp&2AUdtSL@o5Q6hUt@abT^m2tHoy1;{cnjA$L|EkG?*TT-1X!7yS+qfZ?H+vb z&9;a=;30_9FkiNRLv2-Guj8?R3VnVj6|js7_J&>6+A|X<#p5(7v_JBtYnM zfRJ?o+DH%0-&)?pXMzNU%2ZH?$ z2pCi*;$oRZCZ2K~RqD<$v;xzN)^A2k({+2ud%)!m2uwraS@E`ChMK!mcku=Mb(t;q z<-`~=?PReD=2F4?z$^M!uP?(|)nO6RsAWPtQ5_L zsS=paqD1W{b4vZAo-h=%^={np#Deai92XH!!=M6ahuTZ=dW$|QjQcPc=tFaCFt)uJ zkz@k05WH_DWr7B`-4$6*D@FmQy}Mzbe_9U%hMwcN6GN@U?_&!%c{5DLkG}`<%2I}g zIGe;C@;CsC+l6HU72sw#Ak6Ll0cB5hWg=u_H*&`EPqTjbP$a~(gxjNncbY4bed40+ zPGBx?OsUH-7s@KA0GO!z-<;eATQ2?Q*h~v=??}6-SwyJUik3C;_KO!Ha{^xRKR2+K zAY1#nl>bVvl|2{qyd7o9z$n#C-QFhw7TVG0<7aZ{{O9dI z1e&0L>6a@+2ZyrB2F)8^w`TZ4+HWLGwWq~&RL|`_e?^d?-$@|4>XOM6eL%P0QbVLn zwM-)b(L|1_VL(07;w39wXCWN<>#Yk2xNH%h`A#K7_~IwS@E-d;|EZ~EYyjP1T7MR@ z?Ek(=;ktYvxT#EXcklFN1pK0OS3kbUsL16a3$|sD#Q+Tfiy<7E41w@V+K&auARYjf zYKkO^yg(CRU#F*B{gigTPo86r|82+WW<@X;a<-ZJx@k?*SJ+Pi7MH4E74z=ICUwR1 z(}<%zx};k$Yv3genbOR4(OX5$Kzm^>sr=BTO|D zNQJ0B>)XU21k+EcHg7i+orpvs_08Vmux}yOC-pW%$)8B_?(3QGFW0!#q%BFHmXq^V z@!w=cl-S3Ap-84ai$L}WC;9htB{2dcyiG7vE89U;p7EhJuwZ(G1~J$YCv@d-?kgg~ zvYgCP(iz?7C9wQk<(&tQ**;!EF44o62~uYV~Ng z(nlzz&NK=@C5u&ESLfx*fu;m)Z^zaXe?Lvr@x{wHcFmH0+%2dcOf0N_}^cHVVM5fDLVqw zGFn_{C;|Xr+H)6R2TH*-Nr5FAQAn8x$DM>#AwS|%;Ij`|ejj+gcsA`tI{q^0@E8|$ z+$f-C^k=1A>{_G=+y*qG6$by33{~#}L4y~TJzNY-m|j9GdErcOzd*YC;xR39PYNWz zqm&9gI3CZi>E8*qZbRrDtn!(E5`$9Z;>RA#I9|O~O@%xteg$1p?54kv7APw~zqJ+v zma&VSV6{(^=GgS+k89`>%0BDNov6`RMY-|KC|vIoh&MgEI^jOmUzA#Vre;d@Ko6rg zXWG78Rv}R<>dzZEQIo;ExY8#w#0){5BLA2Tt+`l=Ps{q}wfAT}fZ#U)EX$CQib%?NE*F43=m#48vi`?BkV0f->;*7vQ97K>tGR zd{VVHmc|}~XR>_zq8!RV-MWL)TVW+rQH&70%pwXhB#>3yxY3%_&l7uesFY%@K(cjE zocZC9Ns?D1;z?@ka0)na)caskV$h+rpGyJzL&h^za~SCJ*lUR9AX+lS831Tklv`5`F95<9{QEY4lp$) z!Ptv0u$Fs)SsZm}Mnb6QWS}LT+_s0sIgCbeg&f}2p!A2AfcfHW@vr(?y8#i}0V!*y zAs)EPi2b9_dVuQJFMeIdJ+nO8D0s|8!IE+o3R(+QMB06%Ai*SaI_fGfnGUV#$rtJW zl%!-q87<}cIncFb&3xlsQ`X)8KY^9PX4s85%9%Ksqnt00uXrZ(?CFy3(}B8s>;My! zB@0mL>u4a@+1w(Z_rMXz)Clapt6gbpVbhokbn&|{?#*>2?6iQpkFl9r{x^jwmdOn_ z1HK1cPoHPsJ*SQp4G$BtyuJwd=jhVQPC3F&tPS2PuH>N$4QOGs6gTYtyiz1=1D}K5u3|=Zp_@3M{e00&u=XP$EuXwnmc~CuQ0=loXm2Ly zyf+P8#V^1-Q792Ae9A1HXC+EsXII!lLdfk>7;sLPUM`>#c?PbxD|HG0qo)E*OG&Y7 z@z5&P@ZOb##&no)xK){JAW$UPXa{hTTNsu!iYFCMfF$A)R5#v$B;1utrW32c%lD!G z`Ud&d*4m^4YSam=19*ldY4Yr0U~rI84T4PS^sg%`u)8ajeYfgV09aJ`Tj>&tePX69 zlhrULCVp{W=HV7x!?D?CiZsGrvW#axdL$>hO|eyi-(A88J}_;R9mj*vc_ln2pz>5uMHIgRsvH!{?1|U zsOa8za)o+^@Ge=~(7(c;8J*?0GwxVkjnM&|{CECYGvp5e4nqaB_YnqGIL0$KgjCoB zpLUY`v99Ysp(@n_5?Hjq_$kd&+rc-rT)BiyGaPG$GsyO@?e?g)o0P7wZ4F%l*~y)< znZxHD_fjdnZ)*QcokPZOTQA5i{c@hon^;-!o2Ch<@3MSKzRNNMh`kH5 z2ovDTp0$Sj&p6XLv164xv2#9BBh*(}$xP`f3XI~=owf((KYR)Xv;C@r2t!jtb zhT)MvKuy{?|I3xV-5>wZd;OWa70m@17%3pXHp>=86QzcW4J~O;f)EpEt9q@~fjqTw z1Zd%cXdxK%GV=_$WT)+@rny@h{4qd1Ha~|icr;A~d+G&bxjCO*Af^#4S*3C-c;;-p7uA2DT(oN6yb5)*`> zbaP`h##(r#fPtb*DA61PT`i7~e)LJUfZch>uQivmR*I^5EEb`a;GCAU42g_#gP}Fd z2R=n!fu+ge+Fcq1n9bY?AoFRysmLka+?Nb2Z;SwB-t75Qr3!T6D9jwvIdigR(Q&tf zh}3r?!+6QmDV`IZMo60@nXUphTxI<|%pYMe*1s#erM3A+l|btmJLoRST6;uSq*Wp) zeYyO5Pw!Xd53Zb8f=Cmq)MV>wvqo=jHkgS%O7RCuz~DNCPQIwrr~ndS_9Js-$ua3r zTPBm0MwqBKT<&W@X<|awLFPYh?p>zm0I7p~UB`>^6e!s(^hcEs0>iE*b?;g#Th++> zkZKyShQGAjBoT1-z`09$&$601+a>V-4x;K^V3e+SgMLI`yrL4NqDK6>IaVl6yMOsY zYx-*bO4ozRS7;+;X73fQTQsM|&2%Z^&zz6SoUMv^*bYJ6nfH#@X8Ef$8caHk_{Q%N ziU4H2;pI}P z5}TLmwgXr$1V6f`$$GET6~J#0f@_8Wah{*+_X!5!uM4Bu#a?*22`4pZFaGdAA80HhXx3ZHZCq&T#GD*W*IXi$%GIf%a^x>Crtl2i>Yg2M6kSr z(mNK`uG}efen~CHUT`WLm~D`K24}Xc)qQ%!Tliwt8v=CK$z(7=2TarO4%D+*FbWUm7I#XK=CW-*iz57BD(LLIO_D@_zv`qvpx z@xKcpinJ(DhYd^qyQSM0{rHq z@OKLpmf4wam%R4wpymclC2A<)G88)wzhgNBfPZkunPcr&Y%m zI@A9`=x|a|JbkK3n!1rz{*jXMw`^d(FD9JkUj3*C0olKuaE3C59yX;8qNA}TwzriGnK0xi|Pu9n7^!IgC z8}=vVm%g(h)dd%rx!n)umI>7YR!$f1F3RQ9U&DDZw_Zqyq@7mjeA7Xu^gU_Mt8RS7?l{aWT*rk$96LTdVJ`+k}3&5Jni5%)ly{q{{f zDh64ALJOP%3rhgxZEI=1Z%KZWit62nu~U;5AwoupYBQx_1@sI`vQ`p(m_oIAK#!4q zM*>(_7n{Xj=wZ^ORD^iOl~h{r*pH*ZylUu&qUXbbEK9Q9Gz3i^(~m3xv^z*Ff^?pF zKC}uOEp;xUK|XW+Ed{zg_KqVJyV0z4{h+9y}o!Q|(?J z%MD)olwkqa#of6Etmw*HSgV9$FH>}?a^ZB@Zp+0?85dRbTRhUdwWVOXNSD8N4b`CX zm05QyU0tF@kvc}vLS@^b5vtbg3DNwdi<*lpZBp-4!+8er4Y(a_wPp2RF0RjL9s=jL zM&4HnhRUiyMb#jfJiMKdo~s&DUW%x+E;%84B@Ia|*EzCaYhL46oTezGWY`^f#=0pt zf=igWIumSGJPC3Un&ozp_pk9<)JNX!j!&EX*luWx4VwWC8 z8}CxaQ54o*oJk@E@vXJSOF>WNWiG%0vhAIU$$4F(*QdSQcXQq>QQy5(ck@_Clqs2oc}x?`o5ZEj4K)MO`WG zP~xvW(xF^e))I!ON~`&m+9Ox z1qb#{G{{ker}wrBxUp@MnzqNF4c><|C@FmzFCdT%0i0mI{A!*VZGIBV6u^{~)V|Wo zI>K5*g6HqX94izHN0{ujCc30PE2nCcm5vH8zV2|If%@(@O5? znQ)DLc)enm5hRdF<~x3^hW=X#dj2)AvDow!kaN!tu-=B3KPs5?NR=S>v$voDI^gZp z>98BAwgM;N;2dZ`FkYIla7`kk`H2e+IF_)=X?4Fomr^MbkQ!W?QU2&g|IA_$7}+Io<;y& znTv-K;l-h-?3$86gkP<0JOYewhkOjlyNLJNFTr}Kmj{*@iQ3nNn&<1!5-A=$j*{g` zQ#JzSd$RFZzzEWH(p1Xsd}K;<>e2cfPcf>`yURSCD&Vi4U1bR~EuUUfiSK!yUDF2x z4Z$fDkdA{tFFk3AMrjUlcm+yz;0Yt1t{zO_D`sUmy3~){+W~{VEpcH0f-|c2--?7z zf;zqKyQG)H1hFB^Uea~+hdF_{1*mk57wB?<9LFbo9t?u;-mksCR8$gWqh{$);j}&n zMr4TY0}>7VNKAK02pc{$?QSK=x!;n2=NautwnEK4HP#y9kV&>1G9HcE6zDA8>&E33 zU+q~dUP-e0iYkB?K>mZK!_ng zYF5{=K*s1S2fiS2H7E{7j??W}_HhYBBjH(+Z&TLVjPLqhtun0nQz0|wUr^D)F>;ez zJogFdt^yCp$eute-Vm!Py~OdCXri<~3g^mBQnxev>0m;5Ag0>DFg86bo3;gm(=nU)5vp(H` z)IBu)*71!`Njr7*11Pup;}(tX5H$@ZU1-_;whFNn+%u3s@xrt)cs8@RTMy<85S8-5 z{0s4#@=eZ;U&lnnew9~ClSWR1?wVcf34wFveNSZpXN_IV@sK3Jh}*>38Vou1wB~Tz zT4FAN*>4D=jekOy#Td+JcC4QwX^-IZSr;0n1w|%!v5E*=MXG*CQ{`)d=^ft1F?1Lt z*3jnNE*QnvZS=xKW$BLh=uN!067jp5@E2X1lh<}7$v^DRz)>#e*+LuMH!whjYlS%4 zIYjWIXFW3jnue@4A@-S1PIwJDMt$*=Z(nNrgdn063z{ zhqRIk!D!U(f4<<;t21i*-$TIS95@OtCOf17DksWo<_t%Ld+qh?lymD;e7*xEslMHl10DD(Wf>N!nz30G0>Trv4FiV z{Yk#Js1_hE*Sp~p-W8^KD`Ujs;-WY!`vc?KVC;t67WgfJ_!>rjky8Tnv%k&j2_f7o zkR>IMd%no0a_cw9vq0JBtaxNOu57c*h@MfO7L>8SOeVPt`rGB!o+NN%?pyc-Qg94( zRdH$Lv<%ag#wtM-w8DNKHxx?D;reUM{HQBTs%wBL1O#92G8bDQHlTpnZqF zSBDc?-{vIr8?k#zh2lV~_=YR>X`aP<1iDi0OLQ}Pxd><~km)zndR|VP2y}`*bc8NZ z>FOOx7WIY_mCW7gt55L>E}NR~pcnaPNeX~oqRV*TNn-dLv9Zm<@Mz@oKEZLL@)#`T zLU_!``;e68Mfc~h){^!`w*IO2z?Orsr**&;_4&8Ag?72c?#HJftbtAX@!A9nz8G&C zf#v!JVb7Gkjtzby{U#-cn#WeXh>}`j;3(U)PPr*SO0G4Z6Y~V%Ew%2{8bF7n9tJ&> zH97|1g@XO_H7gGC*g$3aLCSd&Hct}Qdpc@q_8m}`brd=%@}7zZJa@@3Y|foYt(wT$ zwiK`%uE)-66uZ6!^8Qhwt&^*up!M=Z{p|$gE3z=4`_@UncxMC%D;6NcB3Y8l5HQ;s7a)XikcaLxM=wPgezP6U6F@>n511iehp>n-pl=wi4nwGvqPI zEpxp?oiii&f7P>&c zvgj6c177PKSV4QKWszVTWVOij;If3EaHW?cfgXM0^OQ0IB*)Y>a>UVV(c*hJU~%05U%h=OZ$HrjEJ zM>aTFapq~6OV1Ld7J7NTC1}zpj8v&d$!RSugfVTKAduWiisgcywr>&v1}1KihpC0z zqyplG1HcSOqk^P|dHATcv$cj3n{O4c)L(xk=3~#Uh`tNIl3Ql}7qr=qtK0oaOcMz- zd&7i~`Rt&?Y&Df#tRe4_a>koRupTth8oRZI-M3~kM_!|3;IS#)*B*&a8z6*x4l&wl z1;|eJhmy;CMdkgevqss$1iMCjZx=+%51zoTXrJ? zHyOnYdX8J4Dt*4?YwX}}PA$*gztDnb3C#+3?dN&bj#7J*^hIKye}`MFj~U0S>T`WcF0msjt09Vx;`LQ1o<1FSM#UpeHQY+^UH6qo#}B zdRsy6xFC?HymP;1Nr8a)LL=H+;-vEHU1_7SYG(UM z>2H2+voyRR+3mxw{!thoXpP>{RmG*!^pGbOy}nIf;OF=G7qFmNR=;4w942+#J##SD zL>rH0d$xgNw9Om2&BU4)+r5egy4sajG?*nmP^#%Ai#1PoiHLRga+Li)o}52?;P!R+ zAf-4d9y>F!pVZBk^Lqi#KOt{ZA_ z03YG}T4&R^ZjKEQPkiFhLQH)003VS_Fa`fXB3>+$eXz(#{cKNmjHvY>A%o4sxNEE&G}fwYhahrcl+Y= zO8!NB!9$V!GM{c|S(o-hQAXro4&Q4~cQIB(`}yFS)lF)rpu)D&N<)YKXAnWu2!J__ z*;kFCCU9wRsvhg4hig+U@!0(v&RO!?VGT`wRgblKy0aUcm^d8nYCE#rj zsfP2pF@f!3YbgL{Z=tDdODz&)Sw~+6h#+37UhPi{3D3G=Iv}K5VC3bx?c)!7iE*;( zCen$@aD~vNyKt`jA)QhNX=$puO4;}ZGjl-rcSS$Wez%hcbGU zUHFyr6)LMgJMLaG?FzR^|8+xFOqsi?%{<5#-NzImL1nSyCW4mUCH1E=uiBP0K?)Nj z*sP3n;qOUbyB3F8^25_;OMZ8bSYr&nBOH{dPR&&kVk_u;=dKEuGoFBX79HH694cKi;dKJDC0;tO z>?+nnEdBqRJ24@VVymN6w;9kvlmFq5OO$&_8mjH(z7r^JTv2;EvuxlDeNF-RHGY#> zy=#*BH69~5drnwKZIk}N=5l(fsv1Qj=nt|1x>7H$=)q&+ix0C^Cc#ZLT4!+u%IH8% z#45%XYmKxLTN(6?R*qM?(e|U^i_jRi_SlrBB@0E>Q2?*YUt2R=S`mw*bv0s6+RH|Q zVV&i){GV!DpXw}pOOn@hl3>(sk4r3MYwlWLfg3?edAe%n)l0$f15=^FWnJWQ4k3^C;QJc#iTj<&nkR(|-UrLP>X3<*L3~nZrBB)1_m}k%`cy4m#z4 zsy7z2Yue|f_(3{7>;cBOJmT8yP~**_{|35jcxe?a$+5?}jCFPTI^*^jz8b@~s5hVK zew;lb*_bf3sZzhn(>S@k?Fsd$c=u;z$1BjvN1T}QI4eJQli!xP!`@ZiGv*7Vadp)) zMq+MBpm@iKH~U4ZJ3RUSFkqL60#iirJ^X;szp=3*O(CJDTd0AUM}3VqCFb$2BYv>R zT)Im7DWB7bQTin*^ZDftW8yrEm=6cS#P6aQ16d69o~YGO$zSz9zi12q8Ubp=1>4au zYZ2ikaSWS+2~V>)z~-PB^(dsuX$G1oSQ!xn&?CS9QR$u4OVn4q`2quKzT$fhWC7A#)2;j2tE%;grl|;4ThC_SAxgzi-w$ND+2PXS zY&*(@CJf@a6L?}=EU+J$Hx27K$X{he!>l~;018H1NXw+-#{Z7=2R@mp)l_5^&S_|$ z#Cnen6z;OaIdU%Juw%wXR~g8rC55ny@jv90haT4)NK#2~eF$Wq6{BbcW@YWK$F{IUG4{^;f^6A4%m$l z1}4MgVqvsJza9^vpRW_A0V5w?wIWMU?FH$6a6Q_t2qv5j*+x0-z&>N-{0eWl3em%{ z%V>F4=+7hM!Pr_XB;E{Z#31;t)lUhRp(*zCSd&_*xD=5ujQPl8Yeyt?%W@j~FbE;3 za;dAbQUZFiFaI9CkgFZ{CbKJ)D0ysb28oWyS&Gi#F?|66xKms+_~MKpmc{T@G*Nqb zFT$cIl3-e)`;kVYYSHN$BE@G|H7y&Y_AjxogI#|0-O}7+{xTDk3)&%?`DZh2eRil0 zv;EDL0t$k-npDA>m77zckQ5~LnLYjV?ET$iARDhtjiu)IBw3>LKj;l(UlZqb+SgJd zOSXE{MVSaCd!xL4u#EN~yIHq3FNQfUf=a(u`uEr%j#af{)@k^0hYE=@wLu@YXeJF; z(bVHwniMI_n1!?bP_1F*Q^EsAcKW=DOX49B{n;h#OjqpKwj51P(W z=pMLf9qTi_sbWTsg_e2oky2iEG-MyecgSzlL?40PC1fDnR1%e8zunanbq4nXncFgY9R1H*Qh(-qfx*?c^hs@l6v`SkEKq=c z(#aP!O~;P6__GSSfdA%3o;VY=AvAE`6F#EOtDK>yNAT%QZ+<5Sq2Pks||=Fm_^dP7_!Z5ZSgY z@7Re813~p;akb1Y*&dvBu3>DyUi+aRrmdSas@?3zyz@1rVrjad?|;XY`vSqN5OG{-7&}w2r#(L4?mBCVG4A)Fi?o(|lzx?~* zAB2K2=Z0*lvvSpiBIvdW00sXA-F0njC_XzG=UgR`028~4<2#c>=hsfIxfKA$tuZ7n zt_+IYBhx+Ng>^-UdhIp9FMF!<$3}4*wsNVY2@E5f<~>PvyFL&g#=5Jcb;4oCW}+qQ zj0N%*W|G$mTH~iJjbcD{(I~Y(a#wZtbqy>%f~cFGtSI&}Jp+(S7wcqwPJQO7{qr%L>WNK-Fp7>^gsaIH6|X z6meW!;Uk(4lbcNvUoTbnInpc zB98E$?0>)A=w2Y`wKqiv7WBnk1uj`CFX zMYP1SQsF7-o0jp@P8iauY>Q?}J%|ecA=7?63fpL9Q?A#3DB5Z8z>RCKc9Df2Y1EfP z_BcEkfUUQc2lpO-D}v`|=F&+XXPxiyCD>*iSMRQ&VUzw5;QyO5;WsJPW4sZ}jjdBp zw(_Y`2;7jvj&(U2Btz-mX@N>vUpof@qaFPTX9CUH*y5SO#QM|_+Dq#EF=i_DG6K_7IE#|xjYd^B&m}L;)L-3(J(*W;Ly5W zQ|0Hw4jBhj63|dBB6LXe8(})ZjjWEKwbGSV9XLgQqk@=S?19QCVzV)b-{6@A2mJ6kNlnF?(_bP}D;Sr7S+Y0G#RNc9(kqeC#EuIY=+X}hVm$LM zTK#8u1*wcWi=0kC>jv!yjBI-4oKD1VclCQRbYIk>JSk?MZ_peqM=8XuZy$_R4 zDKF`qz=gm(bUpyK$Ri~Hu2dIpRm{;ii1`O(5^Q8~gZ|pZymLmUFbuXR+-BG19@C0{ zCo!zv!}yYNiX@6-!(bFrsWp)3#wBlsRiq{K?U%e<)X{lRwa(Z&VlR{^jw+I@rUWbg0IO5(D2t)CciH#L!+y40WqTsp=Pz%gy|;#8HYFzAF)!8qf?y&tA-|1U zPb+II2{ELU3J`dr|A{G+Rh6Slsrp4sa|I7&%#PB57$p4U9^eMUVdj8Cqh! z7S9+L>n(OC7U-8~#|}}YNa|q35dA00mfAabkdC@)NBVk8sXF8By%-m+ zzPu_U8Gt3y+BGXAaib_=U^nlTLLDYzLz>SZEja$fi8mV2fxVz6 z9+)2tXkX_iN81rml8)+n=KBWtWIl9P;FtS6Qs&YY;qf(6+%~zg@wZIE{yyF`N9HWp z^epM)@!l?@SI}2^W|qqr923kew3nrM)NLK#IapPDuR1g;HQJ4Jerb;PX3kaHX`CO4 zzCcQ7z)ZC7fYg$LQ_;t)2*ls#92b~BlzDt_XS?33`0HKKI-Ub`YHMN3=n}j{m2Acm zd#d{CNK{7SFqc^P3MqXH!s2}NeG%5VTBeXy(S*z2>Kz0a$iz?VQr|)(6(~qcWCem4 zj-VZ5aZ{YCGGcgODXiV{1X#3}f=yQ%nXJ&1P~=~#((lu$Czl9kEQ(W2p_8{4^^Yta zIZhFhC69=Lt=Z=XgqBc^9B27(Vz)~I9-?kO9LncL8dLmqh|hdqiLV;OZN~EqEp{{V zS%FI=XMXeEQ6Ch!{M?^F20dUNq^gGY6G|p?wF^dPg<1EC4NT5yV?rZ>*!@_yQL?Ee{ zjd@b%!eNDMhLz^Y-fp$fCEbO;};mcH{2pm4KQBb zJ9|_Hfl}WKrRJy>(c~U!%2KzVyoLi+q9j;@vHH#1{gBL@*)LB5gtty^rn|78iD(km z&28D}rgqWTMCNP-6v$i#|78N1aUyyW{UZ6k{BRPd5NCubqd2vytCwAE7={ zi6Jz~3C^MVq&e%KUgs*DFRv0SlNb^zqsgg!6@CSB3eqv3<{rY}u*P+{R&nY+Vb=&; zzxr;ybCF3Cj~XrL_n94|e5IW{`5&>`bfQ+Bpd>%%QagqQAtsVWZy zV7ugK>hb12AFLC*-7pRi(po-*XU}eAnDY4$?L~(fiO!Rl-8UaH~$Ce(xe1Q`kC2&;hItm6-MXc&-xR`D(!pIKU$rQLu-8VPsn!&1TAPh`QB<-jCSoIVa|sqrKvHTPrf zH;gVE1J>Qgqtq;@{QA~#v)SynXM=()Bc3Z7;cqEucm*nTpkaV_U|e-sXSu$$pVb-} z@Uj>4Kiap12xK%hmMWC4$I!D5L?2=fh2qR8g^F4ihqTuZ)RQzHZD5~G|BS`Bk^cxDL)u=>_r@6BSZpS>{m0is z)ObMVdJ_;`J7#j`)1N@)0`R?izWCz2IS2}S^LDbm1xk*ClQHra@0|nT!~R*FLIoAoDcmZ# zW}O_4J8R^fId3-M1TA$Bwwi}Jtn9VPq3h~5rZQ>Y8I2T%y@m?wWJ=53=qwy#Gdn9A zi`E?RUvA#T6@Yo-c?4qW?3M6uK}x$yN#40%4N*Y{I}WA{M=MS9BbrK~ zMMu(as`Vh$G%kqJ(zmK4meJxF0PMQp(F}|TOwsY3b>0T!OG%%{0s~O~NjPTcwgjdH zSIl@BMGmVBe@?|UadjQzO)oS;D<*>#>birbtY&v$j&!cPaGW1@c_Lz-)bL$Pf!?;p z9Wq{DsgvOKiwXip;2){?8KS^f)FzH?LR&IxQ(SFEoF5Ey8^9tN=ZmjY9re=}$L{fs z|1yoZP*)F`WBpscbFQKVQ9xWOwwCjAr>Xo4$vf;L26mZOO7}gNUm`G0WLhIM=vYt? zn4AxiZr1Ys=tBJKv`Iigpp-)6ST0e|nx8yiarl60UQ|&Hy8{iqPH77x$KFnjTfAh3 zIc2IYg?Ky9np9}U-9QfEbHY0;amWI)@?Cs7HvV-T0KDkrX-z4k;gzrI@y4<_WeZDv z@bxI~KjW{zoM@@@?m-hwlm`C7O)tEw{>Xfqy3+fq*4Eh|QoeLuLbtKiBC8%n!)~7R zD5PI%2(T=)Phi;5h5tF|WEp{h4XBRNaaxpgsl(t2b{Nko0 zR}we#+Ae*`X0t#AkM0hD;!-5PoT}&Fx&t*cZQ^+m<&4!cHt-d2_=26=5w7;g>4|Gx z_c;}epu@(f7mzH#v8t3Bq~W;x3xqnnq%9=~sAsSawbpH`UzA@C4!qORQ0NrIa$SiQ zrx-ChvAKOZqbE(|BQFmjbz#pm`tgq2EI2TI1d=YFtfl62N&aI0_(bAzI)O%<<@DyV zzow1pv`zOY#aXtifs~uMR~oNr9}3;?TFIb~BEdhnCNAn0c})8>+Xq&i>KxcG&6z5Fa z_kq{c&4Lu28(lx*+_(qoYoF^{AKT3a?OQj}YfP~#sB1CyhBx%H+>S0``zp-1o`KN^IDIM>ZR%T2xRL@tj9uy4a_k$D-sYM^8uJ?aYNU=)Fmx%+It7x zi+og?w^HhQwJY$cM@gXi8|T-KT`Jip{=lRO^^#sMnhC)hY|1k~Zi zeq1m7@1plf80{BabDh2@1dV<1zR@|b3Q=_0{@_>z$uXOLtt{S#C40i}wclrZJ{JzX z1MHk_3hFkJ%#EgnexS!8YYV;xyo-%KDRtu%p=!XT-UJIP=PFL^TV3+;bN0FL`YOPh z;MX4{%n8sQ^UW7cI;VqingSIjiASnz%~VQz?=qa`3^uo!TS`@B3!}NL6>8}L2+Hz6 zw3@RYm!+IO#9>pX`jO! z?TqdKNkUL`MG{x?#IrurA^dA&4wSUjgf?QOV}=bgsSoPAv|3$n$YRCL_EZ;9yJ=ZF z&eyHuE7$E3P_gSy9vC>RC*4jY9c$6!3D`xZ(q&S^*ybIEP{}NN361Bg^9voDe!AJp z#9VqSd>7FI>_llo0dtOWT;76_W5?L5n5P1s9-Gx!O7+Fq<+>@;gBoY_|J6(zuUR}* zREXXeZ+*AI@w*{-uP3nFmI3){W;dydxcrbaWC_LtI!i4JNOQ*fif?HcqNxNvL|KHY z``PDxV62HrL?XMdfO{QV8qs+!BG+m>8ylvG*LL(eVTmVI^3{*(H#x`R;p=Ogt4DET z`%4Gc179Y_3RI;eJ_$yIzTZFLvI9K!pHJY)pq4DR{}TN-UoDRu?$3Ar@akj}?>p}+-@)UK4A7|4hmLneBa ziQwE~1jZRBOwM?xc&=?Y$wNe*UI$Ev36pqS^e4GaJjbfG5B6HlkC%Mm{Oj9SKep`sDlE6mn-o@H&&-{6Wa2 zIL4`5!}EQZ0}ZXkdGt28)1$DBKA`|32|G>>&1=RfQOK7w)c+|^{Sc;V8s4g%N??5G zk&_5EfUFa-81l}nDKV*?g63Ez44H%iE&vng)%IWNi+~TRpy@ZGI?O1F%T&(QMop&K zL+AgL?t1wv#H@5aBIDz{7<!V>IP$i2iKnnod9dZ~Tq31v15{yQ&ifHN8zt=9!Cf)4b z=PeKog&Rgh+$CXq*z>a|4Mn7!g8~$^-Nj#PN(12xCOX+S{IG*X4qm!#7d;Fgt;}V&rGOba$^GZy-1AyK|hbo2&!>3QW{&S#e>a3Kk)Bll9VXXgn9@`0k z)xF3wZkWH^65kq8NhS0#v%#=nLIG_s_KVfNgD8;3N81hLXw0B|;W|y%sQ2W4D zNUP>+N>9sxu;kFHeubTBZ`bj5f=33*+T2_NFpekSRlharoe~@rYc1pb+@q`Bi?$|# z*4T!O6{}WIQ73oY30cLO8jd^SYl(X_k63}f&NjZFd!xfyUf^@W!UjkuC^rZvMEy{+ zyC$U80o?kqkg5{KYt&3EA1TYSgV4^`jI{`4_ zwxC2EkqCJ{%1`f9TeWXFem7h!LfgfL@^em)j+cjs7U?B&yW>$J1V`31J|*Cp!_^pu zdB&C-<=m<`-r#SdG_EigkRPcNf;x!C+~5h*Y@nm14=1lbkP!t-&$?Z+aBqS(r%Dt- zWN}J|((zmX)QGd+4CObNfZ%%~iWGZNb(`N$Ns>DLQrs>pKK#xt#(zhCKYJg?GM5@c zY!V@*)fQCbObS#8I7T9uUhb+jfM$C7B>BwNtbt5iT z$INn`Isa-M#q=|TBrg@8>rB@|?{t-L;Zimlhf_ft!6(MW%9O<=%OCCI{VB-# z-9)7nl+g<#6hvwn7N7^X4W{q;0;sg3fzS~+OPgUj5^GFBUYTgmqF=BG|K_IC_fLrY zqnPz;nLMWk?UkTU!V4L@aIdrCJrFe-Wcj7B2+c8#ggtqnEwm){I7C=xtlrs#COWoE0L>2BxN1g1x@k!&k3WR35gQwAdv#7EjLIxu+i2Yj z;4;}e`*vd$1Bf5s46MwIrdEAGRV{p)8SL}F+X2Vb>-+F^2t(B!knrc=s!!{^*mpy@rlVWVjO4Q~U$br$Ra z+C?HE_(Ss|XkL$HVasG?4Fol}UeYR?Ud>(gektG)n~@gKL14Z&-^3LN-NFZU$oBN{ zEh~?Jcq>!qNUO`~HPAWq!#skzcuIF3YaxFJMeov5#%ptRH2$&mzvWJs1 z6auKx95aNZJh+Ck)e2K8D#0aEqO06A$+pqyw|$G#sj@F-v6(e8kS*hDp6EW}nlCA< zt>Zyq8xmaHpPE`jVHeX!4ZGQgm;c1}GUjR}aR74u1!-QCf|wq1&UoHXt&=y54)Zwe zNN7s*hTOH%{2sb^Tcyv-U6Ijz!y$)2(YO~nh-PWlzg>0YX#BCPNFOcg!aTc$JHq@i z*;%Ak2tj+9&B*kxKIDhht~^mf@@#OL`Jd4XOA=`s(C_EoU{e1nVarqxM6IMmWg%k9nWci&+>Bh4F7;Z3Cw z%;-hq)vlj@uHtc6y{jD6)1zNOId%`e&3n#waS8=Dt;TecIl_*GX=`?=ns{yb34 zRroOrui|pdn}6N7u{iBwrJV{z8DQHpwC*AMwaSLCc&oY2SO0&pnOF{=!=>|vd6}x| z{QJ#b<{;Sy$Y5TN9DO*hFgPuW6iI}JttXv-%a`TTH-z+H*hP>^$2rqAlBhykwR)Cn zkS=`xDr-+{L(z%Kx9@URZ^|CgMA~@nuX9@Q>TvXT z;^lzD=`We%#?|k6KV*^oW`_0tt4+3l!T8gVwhTUo8G#>I?j4C&9uIZ!LLPfZ4;hx} zc62v*!zk_KPh^^54mJ>)V(aV%3XC8EPo=uc+c(s)5cZa9;oB?iT=RW3Bz|ebqO-?e z$DQ+;_Xu9W)vVyUVCXyf^J=GN3hrqFRkwU|UM z%5uX;hRy7pV-SnF3)XMncF(k=+#vRPbZwIO2%-zUFS8(SL9gQ(gd5{Hdkxvz z>B|=`Q3Bf1o3}z$PQ&BZyp0Jf$e;ITArlaPuv9RlvA=mY(%b8p*t9;y6cuXx+`KeVcJuoVgZRG3$Lotpm7$arrO$#^gzgDZYU8SSeV$@1Z*Zi<^HWdWq1#4>6K2}+T-P~yFN+SxtS zJa;9ENS5kmbw#&zI?KY{4V0HZ8^JM4Ko!;&Yl(_!(*Fo#DjgpZ_Ff((W4yg2p?S>= zT-{s)Oc}b?Dx1{kc6|_w2sr*Ia!+41Sn2(xfJ>Wx`p?Tq;$pG27+u-i4{ECiTH&KR zQBEI2D0JZr5|9Uw-tCw_)COKlG2_DCKhBX@7X`LclpEQv5v@-BCtE zwcx8j-ds9*ts^jHctskiO~%f#Q&>{0p%=qf&XzU%Ny}uk*>1Mun_R&b54qZv3FVgZ zRs>?H%2#ey+(@}+H9hmA+J)p49Gh5ORngS^uz7H*o5awWxy&0Pn#mqfTU70x{YLUa z2*P|(E8k1H5s|S9$7%MWxyp_{iHrE`pWFeOnjm;=PEG(=270vQAEct(l8L{3y*=!? z62)41s-mmXya;@|0jZ_p)#^D@741jfg^JouiU@+?bR3g4OZCF&FRD+H{%G&0b6|2( z=WN8-DcIe|hi6RC{@c{I%pXe8p+HNa-Q|wZ{xB-&V#BMSHUOUD^2B|cVQ?*LPww_Szi>;{J1f)M8Z}$|^`j z93Ct6MgsaWxk#*;hs>A^o}cj#L*#A;JQjyv3%4ew8bVT{7H0(Dx3xP)*M!h#?nK^@ z6yAwBHQr;u-cD9zC|&s$kSaw z4O_`hPAA!(v6jP=R)j!!SZ|Z9)qp&HEY3~(J5ooNBsbU6+UdgUk~(1st=9)La(L~* zUBxuW;!LlhTT43GpFws$ovEf(PL7gD3%_x|&cj6s002EoxPDH+BEnUAjmNsr-54RmMAk?9#e^1` z&~A;+vhV1=>-U@{gY8CeTs#$cnNjEQ>(WMjHgM|-cBKPjUJ(Pz6pqYvwtn~g4~h{G z+nRZm$gTzH(ZOiK*^guiE;Meoid{D@(BFkLiyh)y_-gd0&E}OAG6pOSHt@`^uwQ|% z?HYhRU?Mu9UAWnwMzmG+CJXlK(mpP_9a9Bzgo@dy&9M%Fn(mUG)z+(BHpiGLOFpxh zzBLP9M)Z6x#CMP~JwE>7j5qfkWJQ2-vxmsL_7`SiMQJw-S^8sz4GPvXiwd3!m4zT$ zA$V6z*h+(@k<>N_8bMXLG*3N!z$z_Rg3_Nw@<|4RoC3_8G<;oMtE}|QaP1OpnPJq-Ho-`rs)?H%$hpm1=E`qBoD&& zbm*uS0w>^-&op**atrRTcmVJw2UTbKd$azb>Ph*-VEwt<*Q!VX(_yrgiv5e5e}ZKm zm7SNlvS~_Ai?#?xFt-O(mAYV~;QFC=|0=Y7^eXnyA1OLU@QCE zmyvAdinN5jXKQ3Vs0SUW!}MFVn;@cKbM5obub zudKEOC#&6XTyc(}JIwNJxzM0QA>gRRh|qwlws8;Troc0z>%*V zp_*JG;VNQ3|GhSms=e6}Oo%H4@)UOD;|~{2G6p$sG-@q1PVEqJI=v>PuBE@->N##@ z)#RytzbOzmdtI}>r;`Y{aNmd?tpTT?W~B)PegpNrfs&%LcXeJYXXkdP@1z;xQ#+NAE(eUL`qFpp66w&$}2icPY} z_IjElUZF1}PjbKB<40q$fSjPKX`y79oLPo11k6s>xxq_DgK46CrHH-fy1~iT)eECsopp)9Edvkl^&M*$p<2tn7 zNo+~R|GE{3Ts>3qOtOq>>RT)YD=?WcvJ+gN0-*IfVi~=40HWIp*2>j5>0=XCpDj6~ z>%ONlppz#lO4i4FUR*8z4?vbS+~^?k;3E#*Sb}Ps8(vJj9Ql=^cR4f);mh4P+mrrPFp6@X`1kT{71+-1KmmW_#*QZAzCY zZdOmC&tNM)#J&hlBV_kBQLqN9AA~#hb(F~4iAS{ZDb>ce>Lm=gm66Xaz7lH^<9jH= zEEr&o>o2hL?|qJHVPAfSdB^Aq!yp)KU&=zh1ejP7b+imI6^oGh{n_-!r6`zmGxQ&U zL?_Ox>P4y^kM>1xsVLFhU=hC3!K6wq0rc|sJ^!a|^I`~J(KEsWovBz-lh4*awq07z z*%`UYEb#N6T;GgYaMh`mNO635T6g(Qguo7L_{>u{`-^QJG9wbn8g|WRSLrw%1zV(t zVYf0q=4aX0#4_5n7mwHR$$B#l$3xqSl`i~iDk{<{i>qrm3h~q1rG^V;oPdO!(NZ^r z1_VY7ZKhg19UYww+2t%LWV`#$Plp|r79y_&Y-DiVQxLHN*|*r4J5LS!KO9*Fz1s=g z0<=|1GEc~hb<7ahIQwe`3$kXel+n8j%fMrvkL2|xmlLB+^eg)_C<7&2R1}ndX1)R& z1V_UHZ407+z;1bBd`Xw#|5gwbu%k39~r=GAlTtGiveWemRkA5*tiv7 zyT-O&(H6ei>W|-VcT4Lk6_gV(Gr+6Ele58iUlcX{zFO}yZ*%>185OIQWCaBeCX^PF z_Zpm6%P_4~EXZ_0|6g_HJ7lnbv_i=Elfqd8dy<86gKX%V2d>pHamCzuR~tHpQAsdUDB} zQ3j1uQHw7Zn4z4N?-1O~9T?tk^{vFfN|X`;h`WM;jUzV4j>m56QB`26leiBgWZQZk z*+ON&*K9)u0@q6g=f)Hs3wbgDVobY(4IK!B!-QGtv;nIMKtV{- z{#x=fs4Z<8c;81LoTxjOjM1;o&($pPCvBv36Tgl+}lfz zJnZ6avCA~+A-QKQJ7iHDge^-_JTT}iW>O;OgE}7zYVug> z^>URs`Ds!fXIR`72ajW%sxdCuJ!kUVh{wSfm{Yf-3B@!kRr!a0S~8S*uc1+X8Eun< zN9OyIEw%nE;`qE9snl~(u1;MS$Y-oq$&=!037oV1KS6 z2cS@Pd9wgO*HFX;UYycu&tdxCV_GbBH`(wo24_7i7ruFU_8k>OPA;n+kqY#$Bo-1c zbn*h6+JbH`(9%e9Z1+ZA6y+Q6;0LwS&EIMeO+skRoob`ZpKhrLR8TTiw_uSG0Id}^)I zU1BfF#CqtI2Y4BnGUzNVT^cFcjQ& z5{#f9WA)X^SOO|fAM&Hze5OjujAR zP%~SIX^pKv6eM;aR38hg!W5YWnVh}5q>VL!&&3da?2Lc(r;@9vFeds8 z(;?dpg3y5l`YaGc0E`gLKX!{}sMMTYExy2qKf;Pe->6aHJ)yav3Hu%_El5JCH{>oz zrIGT~Uj7j5IT42_e6vqh9zQ?a?MOXC^0KG0+=E?PKVtMBLc`Y$~i*+`< zjN=e0p39=u{GY&OR53ruCXFfko~Ec)sg zxesPB0&Q9kLs-jgy4K>;pv+Ml@QdXrw87myX@Dphc`_n`J`*Bx953@kL2$mFaNh#r zM~!ryyE16RcnQBGO9Z{1%+zg5<^kyy z0GHA-Y>j>4#V48|kJ0I$SlMucf=lIuVu(V>LbByrLSA7aAuNlD6{PcI0R+2OiuLU$KC``O=p~#kSjGa+ttl){`Kby6Cr47EBzWsmiXq zPAXR-Kgh#9D;r`-zkSd5Lh?ED5J@Zc>2fF?0HKns{( z77XUiPY7TkdCK`oeL05eQ5(03KN%FA^MEe`5Sbad^kCsV_GpDkLOX$J} zCt;L~BCwr)TW8rW0{#T8#?J`mofr4TH}7o+2&S7CY!Cx7S63bhPvCZ@lnPZ6B&Iq# z$pws2?y-dp^|#SG1R#y|NQRC-#s8~7=DScl?FF#Hll|Pbb&`jaGY0W&XNacT$7c(j zteKDdI~wtpeXLYf!9tY}D-+98uLP?`l`HMX?^|;Eu98P8vT zX6`Ps(-*yDs+KmSkae=!*NWfZp6AE4%+5vp^<-Hy?%&YxIVAywZRD(0Ia>XdQEoNo zHQ|TStg;wHI)yD7aPm&sqqs7N(A74I^z7bs@ydwz0MjPGZP74=8p{M#&B-V|{~Pjw zZAbaL^E4Oyw}2on1C;s^L!*@kSe?14IZB5}>-)f0ipi?x)Aktvrvfg)w#@+lKLEf@ zD(TjjhIYa5Z^)0q7Pq#6n#C1?M1;AHoyyXyfjZnr{U~xDb#Fq%R;9;p;gbtMa<@#e z5iF?-y(|M?VMt={1817ZfZ8H#SnFhcTXvHfJlR?cYh`zSRI0l3o4Q%w+^lQ)iusM2 zkm#QUF>K|B`u z`}V{GS5sM-0drNvRNK3TyGdS>uN-Qupt92=qC@eZ3qF8jj&dII=Ifx($B^@CIa1OE zwHj?3q5(nY^jYknlt^Kn66ydf)B1(OStY&q|j-EFvHXr|u88?$@B> zA0|`R5V|+S@4#4XcY~DMyO14l{fd~#jw$A0RWyj%>Z*O; zQ>_05vAlw!TTg>_5?Jx`-fmTni3Nbf*S8ZO!>@0??cg%E7QJXEH4A@2CcJz&Vxa|> z>F)8_1xIXk0A>IBYUaMfHMwHS%c$vT)@n0K>_;*jBeL96fe@gP{mJCG;6AXGWEhd& z4W=pk_-(X_wU#=xf21#X*@Bopld646_Q$|<-W)oq59~{-AAim%k`V&i z3@HG>n&y^2=Y8%BPYMj7{t=jVJPlQhRcwxuw_lFXX@6y>IPh`GoO^%IRq`L&kWAUG zDI=EHtPHw~+w+?hv84m+s@cQNxQa$#S<8bspcP>mbY+@wXXOGnsdmTrh_v1bYxt=o zTZhq(e5AoToFQ^a2`X9LV4Ci$;bVzNvNhPkltfG>^OCO(OrI0d2GPA^0pN%g<%4y6 zUkuQYr23$_p$ue4K3POrW($Z37)os|Y}uC=PmL$j3QEoq zm;B>XSwU*Bt~qwH@3AJISTud0j%toMAcF8l(?lSgse_5_v1lZbQWzPMAq z&}Ntcw&HW@FQR9N)w>B*`RdsJtFDHQaY~g6ILWT)=#j#NT7ABigla0>#tzqM^gYWd z!ClNoCUCar@dLHh#1b@cMe7k_4v?-(mm>_p@^`?5ugL!pNOvT2S@%G`C z3JO#DQEI}&9>!mUC+kqSp0uLJmq<=q8UMP{$VCQP4( zR;+Icy@T^36niOlNJIwqU`UrLgrrjb$OO(sQLN4#I0SKKpQ&~AL@)R6>m`XeFkZ1x z7sJ6)Y*|@17326Fxxzdo!6NE?c;I)+2`4$Am;>-J&+wKytl_h98tTb4Z%^v#Mx6S6 zbySEPq9SSV7f}@(%^_1vLr`*Ee*nNieq+r41h%1;kWI*f)C*EyIp8F-zTKd^5GP(< zqn-}SvMS=KyC^zk)NS-drn{H#0rDmN*91`YQCx`9E#pvp!l|J%#xt~@`K&u097?GJ zd@f~eZ*;-{>G?&4O26BOpcfoNnzr#tA00T62gx6o@v5dK0qf(z>{Cnx$JjB|E8SX^ z6c|#?TAia`QI4(-H|1}UF=Txe5c|o=O5cVvJ&iZEfMQV`-6NcR%rOlIShYHG_6F>_V%Ihr&%iUEzez&|2=K~`dx_sVGR_fLI+vrvzLm#tnab{wm3Y8FYI&&c1e{d7(hvJ{O z-%Foo1x6>j-Nd|0=2R~{V0zvv7s5LJo%$P@C)~mgDX#AdJ53T7xdvOmgPP$Nk{DWn9QiU=TPpiw=s zRJRwNw?(qX_gg{nh*S*ncP{X(4r4H3qh(t)6}Hfi?;u38{OQ-a#9=k*tID)?oEw8Y zq&FW{;(iEZzDfA6UDyq35-(?9g=}orODPTir`lENZ8?)nMU^M;Yq>*h8q%FJ7_z)uh>`_|(PaCE}j-Y(90aRrM>Fc^tP-r@73 z4Pb4vK~>%!K5E**TFY5siEg>nYp{;;ijJu$Oy)hsSgL??*EX)W8L#FIaG&YGY|U)? z-vKF7r>-CNj_0+GUAcxyw&=G!#M>x5vaHtNYtSarRYD66bO2z{Wf`Qvp)9LY;%#@u z85cEuz<$qLy{YSU`JpCZ^mS!4H$1wM)avq}ss7t^H|94Nh=~jsg*QjP*2+N zU8XM0k(;{b3ID|ma5igh0O)XPiz-njJQd@JnF|zcn~*u*Uo3X^iDLMMsLF-m1iKT{ z=Edm0x4nM91vTguAa>q`z*?W87Q5Sg`_XB-WPgDy@xV?fHrtsjibC}l6+!hK)VV&d z%AM+@Z;8qzfS2lVz_yC?wP}r!AqhA#HdB8SdJ+O-?2@{)U8L>G<~39DX{CTe+SF3s z=orFcRIs7Y{?UGR|E$j1UeT5=CO*|@tz=InxY`s2n@tGW#Tv%7D`PYdc%lN~as8QM zgs$7xmpmwC4tbA+v_jbz)$7&^IEHmicot@j`N)0_cg|?oYuu=x&Ax^{%w{%!290Ly zR)YCxvlmI6iK-)kRjhYI*+xI@r2ejtBqxS}P8BLo-tb-gw@LMXKsEt+O7ky=c=k3sV`Epi+x`j<498Npff5ZpZp`=Z{hy8F(-8wa_>ik4&+H%T!q}3q z%x6CmYAE?Swx%0IE3H(eS{1psA=&8-sTAV_`Ir1w{u)DUDWINc*?6K>$AdLkiR!tx ziU9z&P3$7w!{{B6h|s4gAx9FP2)6Mh%OW$FQtr08$gpULwu&fGB`?qY5>g8iFO3Zm zIjJ3PH(mln4!OOysuH%xm^WQcaktB@WkJAb!O#2Q$YSQS89PiU6`dr0>9T@f9NeI| zN2Ds#j%lsWRAj=$Q_t4H((4F*x!_$vZm>GoU=;V2i>`W@6_hM z);EuKuECM8Wc+@mawk9F3ukMyQ+R0ijA0Wr z@=@+q1vZY#pj2XxU-0J$!$dH!Sp)e0Rme|EcZgKs>M(by(Y-+*X;&*Kz>-I;;?%6aOZi5jnYp5%P()E2))pa( z+N{Tj^vYb#eFe6WO>4;y!N$6q3HZl5YK>BX4{kCcr^BOWD^)k45l^z@SBbVR z3nInmfzaR?$3PaBI0iPBs+XSN`6Fz?GQBI}5w&524h4e=KkSPGD+43T^fxDAcQAnu zcaEF|dFWcTIG`CnA<-cW%#^`}JSpPorHRPp-G_8jK+O=0zYe`#Ygq$Kxv#V;aFwt8 zNdi@}k>DkS*2nef7f?|;Z$twrw_!RALvMDZpjeHUX1lk;lPAD&IKOD1+t#Q~30bSj z!SZ2!hEvhC%vG=hmkw$XH?e|q6tlXlbb;7kL$YNcq#C&6-k9ESiZDGWJb1b4zSVhB zWX8n(s1jC9`^4+-Cp1yaId7iTT4+4Rt3Oqv`Ukw+-nM6o&k{D4>cbC<|M6uUELQ%Nks5y~3XMCJ+M@T9QCA8r789O+LU)^t~XPx28rWo+dtd*_$M3T;UI#&;j_r&sY}>t%Pc>x z)@9Lrsy5@0D4Y(vV*U+CV*m;C<$ur2?xaID$WQKQ7@PB%+eg@yvrYBT77L9Lz-{}z z&&VfKx{z{fBxf#CCRvxW7@$Ks2v0&;bP~Ri&Ft00i0}vH6+4o%fPf3emw#r{#rp&A z)=$mgqM0cVwYzhYOkf9MMXWkJ9?p6iL0Qh13aGZU=jR)?hGGj-ur)>Jw5Km;E}60n zoGC5$GM0NvM#V>lW*<-$U9nAL(-D$7*eEvp;!;=@Rru82KDhgf`f0brj#Mg`yE(SD?DNYBty^+xh4L70m(pTQl08ACU#Mb5QQIlju^`d8#=souRA+`}>b*8w)YQ!h&u;3v6HcqOG!O?vxH|=SS?9cG#OfmHdaQSB zj6N2vbMB1cC{b>y(G1;&zJcz#&gw0Ie5>V0u7nT>i$eU)+lX?G%foDIbwA4JrY5II z+fQD&8y&-aRHW0^;Z@Vn{Ewy0S}(lVS=D>L|;eZ$|!~B>n!Bk`18==!(rMwu-XzNf(x`S=~NTfH$d>eVh}SgrdOmMe>;qdf+% zQ=+aZghupCxk2Y&mzxeqKp-UMYOu?qOM%TbEMi+_<=|Li9gk>eCSzkc?V9rWYAzWp z56E#rCIp_YC8=!`{K>TaoNb`XqqGQX>lknDX=DflDOgE%G~R0C$|aN1z9Hj}#Yjrs z95226!$mtNIx-D%nVv3g)CjM`_LkHZ&W~SfnHgoZUEbTY5r@d3% zS7O>yQ=ox_!sFc@?2EcfzOJ-ho+@FFtc1|zYa)DKxF&bUo@eST8^_{6L>q5)Gyj*- znvfqnNRpc$`WW`}aJDY-H8i7y@ZA{?16fzDA2G8e-l_o7++L-tc%BT>$BnclFrON$ zlyu9<&ouwFS&@l-Pa28?d+fm*;LW6>Pon($or?U8^lWZ4FemMY%N12)|FcU3=X0b; zEJPMc(wW%`?vI;)`Caqj5Zb5DO$FLUGEVc2A}yU>^^;9t%*mlDv@_)1>nsOxg79zz z;h+p(iVn>*1GQ~_>%ni(4^NiO)c*-&{f|tJ5c-Yv@NV(w@fi!)*k|P z)@1H$Tg5}2G-J%Q?HLHHJ8hMIjpPd`mg2y(Q=O+j;pc0x!R-ln{0C0Y4cZwIjCBo2 zM=}7qK*L`FF40`V0sC%w7V!GhLW733rWOC=4ESD$_kV2{n^uJRm*qTyN z_R!2DEcbC;$!yQ(FnS>{LoJFqBu~!7q}>kpdI+Th*>v&jrM@X3mnB;>;hWl5xcY1k z<)te8=`HRp2Hs0}FU@nkyifZ&8CYgMGJ0t8o-nCifffRuM-{>YLBoUEQUhrou0&`b z_MpWf$xJ#Y^uBN}31Dn8fr4ns5D{5ysm$6ZU3@pDJ(aRF8m>72MeaflUsjq4k zp$@a_@5u|t{@O=-wD#N=pll02C{#7AnI!(i6{2Tv*DJGc~C%3$rKH9 z-m3Qq$4)2Je^}QuLl$`WE}pQSdw0RwYsD!lubwp7xaKMwQip8{A_e7Wj!k1i7R^b7 zpJEMkHj<~bJH2z|@EHYa*5=5wUE2f^W{UTN8pA6iS%965X2KQaI`dnXRP1REjGcoo z0Ovkf@y+DpyP+Xdbf=zCT_pLYklwrNcI3W)zh(k5rX19t zouB}W_jdYg=TsOe&uVN$&vK7XiRe0bqM75&&syE!KZMoO0h;&^quxC*hp`Kg23Fi} zaeuzA*9fLv)biFD83Nw(Tx)Q+y5`NZXr2+Ki*?%9N&}Z0OB+h46_UZQxA$p{gJJVz z9P&g{^+IkPYq)ZnJO=JqpBqKw#(sM=nYs>Pz_7!3#pLP? zZIs!cN`U9nNMuwC-(@JjyOyzkY<38!pVm3mqKUN{4Cb}#jh*N(a+b%k^Gzaxd=NDX?D)9IEZl6{%e3L4_kpc^{8FR5OjRX7BsScTOCvnN|`cvf9D z3m!1MXo~~KSW2r^1j`?yCY*Qa^ULO3dK?Ve^Ja7o>qBhxDbu6-vf`x3}^Iy*;=&Z@Jx{)0V0F*qJQ} z8l&W(%JKCLe>Yve2tln0-;A0ISrAdZ4T?rafK>eesE6#;cAM+1GJds}rjhui?jkGC zV)T9|1s#s7AhzYqVAr)sLI1bo$G6xjc-sDO;Q*vW3`e#4YuVJVD1>WybPnf?)oK%x zL+GEcX##??TM)Kxqf2TyShVo47iQ_Wl+VWQ&Twro-_F{75Tn56(nO3+0_>zun6Q>Z zsq$lG&FjTTUkHM>Cn-cO5Rg1xjJks9gZv{!Ih}~N46>y;<6ptgZilJR1n5L#5i!>c zXnwZ;!OCE=P)dZBnF2KHu{jC~Z zNXVfVT469BLKAP=JIPPu^z(o?@B>>YouX+Pv{XFvLM?#ENT{@#8vZ=)f|qsvp4W*8 zgTl4`tbiGTR1!wwSD5z91K14Yl~BaZ5L{Say^<$O)46c+q9k;>p_;LlZkpgO?TohRv_HLfDuCU)7-k4hr|X=lVXVfE$wy(%%06AsS#c*_#sP{ zZ_(43LTNrJpPtV96>%LtZDE4ks4#g<Wu;VmrE<{^}Nug8bzt% zPC86t7|%17H7#i4@t5cU!Q9lXmxA_sj~b%}m0g_&nCpR}X#kO$5Bxjr&^2b`)JHlx0NFUUj1|Z;`XR}eFX-9sN}54E$o$BWWgeHx0+7R*JUMDZx^WW;GFr0C zm>}l{JVzgSx%~Az608p?iUs@BO_H(q!e}N#-#BC}$ zG~Ht~-mRQ6`dNyl;sfo#;-OE75m{YLscU-mb&qCo8bKXKewNStw`1E9prD{c)b8+u zc*$i@a$9c~lUt0o0<-|1ImN)mNH*+0o=rkZy`{ZQSWbF1-M}bPP;ljEaBf-uXxhw4 z8vt9)S!Kz^WD3kphMwjh@*=kv_l?v(@t1^h0$rvB>LE4gn{1wP2tJCUzeG?jqcV&4 zGiKC`4@Op70o`(}P9?+|Zd1OrI|4&7bN&zFgun z_Y%iAm9ehO7t^G(mK-;rFjBLIGGZk^g`MIt)a{9eG@lhD+G>`9+0{-X97zM8)7=L_q z`_A6`;m57TIwbx=K|Fw(MfeUG3pH@e&}ugyTD$iM$G~aoEQa%QS0VRM`EJ8dCtC^n zyQcxuqSU+%BwGtEVVw2SJ*4__Tm6eS0`n}|P0?2J=1P`^ia*)B=PzNH^}Kehd(eEw zs~tA*r@RDJ^0-=6!n9cC_%-V3s67!w|x(d`LsMW6FMahV01H)y&>glj{{6!yH}m)KO}Ek=lrHcfmOaC|N)~ zA=O--dnKD&SYq8=8X?@h_GB-<24OWJ)x}JwXB_jG*N@0@#an6u0y;>%Q?6?O#)#LH zm}wg$tD}Th`UgH=dMkk-_j`c}PNSx-%xu#om%p(>(eTuG!Qd$~abn3s&!MlvrPUCK zRdMwW&L4peU~$RZ=HxkCva4A5JiD@yhM+1KE zPe5QjB$t_Qs*pTj&G1&a2eD}zIC&LxSm(neVHRvs!|2pF^jT7sCyM2O7weUx_H+`! z`W>$2V%G-gT1n~s!|PY5*ZK8Q@pcNjwO4LvPd_M)f7p@ zAM#oI)bThY+WheOmiyAHrEQD^aFZJKsnz}(6p;UnHi6MeusYkjFcQTSjS0Uv$Bu(@ zLYIXxtxu9WL-CSciK8Q=BHmGbinAeDRLAA(2qk!KO3lEb>56Kpceu1c z-0+~*ipBe(qb~|M?xc{v>j}D=T!yUDd*IE~H5ScpbA)zLqNmBhqAFbTO+BEP&ACGF z0Hu3RSQy-`^=uC36hzg!Db~9{6TcSNq$RDm4Ygm{5a|zk*7@9NkdB7bnLtdxR%Wwu zLc5&m;;6wXfb(zK=;?L(6>hnqHt7!q}K*#K{Rco4A+zXYq`3b`_ zA!R<%a2h1_sfj%!(n3dD$4P5)#E7#vkJ1uP)QFmcZ(c z_3Iz+&H%8aTpCq0NMp|7F6WWjPtj9+2Py^^C8f@MpB6`2G2>(6Vl8VOvh&hY+3kxgQSQt zsKkDyan!3B2EZ0-6H~~qXc^Lu@j+DwJ-P!z4VG~ZHo?0Q#W!3zV2Z#@Wx-x28AJ$` zxGj}kYAo8`>%l;4a>T2d!PwOa}O4hwdu$#whWX)TEH%gC7|3_W!YNDXCI!F*MF}Cu$_tjh2fA?`WC&(yK=1^B7^bIDW@c7F&F9#*Wn<#v z7uoh~EPOBJuBmw8d$H)tNs5;rQ5nykF$pgkhoY}1YXl!D?5+GoroDcQfF(R{JUvPD z8Kb$?j7&UOc0fe|88Fq$@SbV6Qi^N%_6>HWNNP>Zg!gr3jVW@&mF*o=%=c+8U~ily z+(~okr-!RY!L2h|hBz`6u$h4>cpC#ld**cR&YY#s)& zijh1KiB9<=m3#lb)5V?W%NH(g-sS>uwUWc|UJh%S^nb8qPwb9XIagH@+FD<}=%l)~ zUoOH*TdU-siUu6}R-UB4dU)Op7%C_(%u`!}E3*BdzQ?dLIK#~V#2vdGR3peE17TvV zaY-4jhWK7ZgG+%y0XMtB#T2(9dsw?^qK!jPXMC_00+X2Tv+GVkNp_QWuYK`wyrZl9 zA~Y9fD*=#G%1Exe|3?=w8EQ%iI;#~r6zIh?!}^s(w%HV@%i6--x<=q)Qn5Q;_$XsqC!M}tm>R#&A^YrMS<^VVEvf<<+TfnkH!|Huf`x%^$EZUEH>HRj;_PArvf%nir8^c9kZK?_uD`OIT z`Z&S})jS8#cORzIXU^gQ>w1HZ39G0KoU1l+E)ce`F#O!9_402Lemn~!!~2!04!q#< zn9F(Y?;?Ayf6BJ7GW%+^YvmFIH{Ps#Ou#5tJY`8gp?9V|D~^GF4+kd_i$Y#Q(%sZb zK^pss7jNz))DvI%RgM>Z09RWO^ipAmR=1}L*DA&hfMFCq=!Dh9>}DqARd#y^_V~ys(cB-7X=@Gp4a`H&I+R-Ov=a=m#KE! zEBG2id45RlfL%&<6r)BgUBctXdgH@qyM1BMI7A-yw{|XPWlQ5o8V37RSQ~yaz3yz% zy+Sh4=ZK?CKqCnQ>G2-r0u#Ev)1l*IbA9v9eD7UnzN&X}?hX`y_WQ{^r+s?;d;t=f zNN@~m-7woCNL&cnW#@mRdO!8Wn@|ec9arrI`*iMQwFc^z{uCM;%H(S)8!Q~&cNY zE%N97sez-VvwwF_h!ivE>Sqn7Cc^u z(X0avy|IC&t3H^bu8;XtruM+sX*A#vn(YOp@=r-lYRudYykQWD2AKIPOYvzS4(O3a zsZR*5GwLy{lDC+$`Fvm;ZhoDD@4Xj1P_$R9b3v8o8VY$l-{&28QR(^fe^aw!4Y{0K zyg8jLVO$ zj~O?{-e*O9vb#TS^^<@pY!(Cb#8sc_J1h;~Q!2L$a-pdN&zo6{^lYVy3Ggp{_aoqi zzoKNV;baj72@9!GKs~V9@AU#sIel$V>(BYUj-WJp1J1=X?!U?ZwTK{yWa>jv{WCU| z0@2n;fcoUIAA?-({~;*b(ec;m3k6I!?$KN*Nn&X|w|nHqKL@`Y__PJ=?OF$ zJf#lWZQD9_Jj8wp-6& z`bQm(rS06XQrALh+nv^*_nToR*)p`#7m5~`w{ZqB`F}+3!U&`%59c((r&@W$fd-sE zSz>{Z2~se2%kQHP*Nvf`Wvck# zcxf8E8IOy(U%K&3)fyRSbvn$24jxG(Z@CR*OEb<%U9sr~d~MlVBk=l_ijGJ`gM=!4 zSZ$ZiyB>+gJ`+)$@;TNHxRYCzrT$veCA$+OLNn!q(PwziDn(djHDR<`>B^MA?oCye zje57ZF?4$mRmSqX-jbjkTZC8}_n|j^ph|@PM&ui*eIy)fhNfb*U0YB~*I1w+VFMyd z-oeARN!ijxnZ@?aV+xg}*^lwM`ov(9^R1hctIM@hNWiap+V2PR2w$SH*blc2C)6fJ z)HRb#CeMDUtje{_>D0ExWPa-G9$DMJu*`CJH*)`CfaIWY2gL{(@tqbV%qcM zaGaksEq>k}b0FV@hUj{o5TSrn4n$oVGx(UeX2$>7&sUwv(gdMsP=%C|&DWNut?w=R z7cl)bNnKYvqZmfH%H<>cPc+VD%*0{(sg+B#8Rj|J8aBo7Alz!O zs|OiH0z*v$Kx-5!%df&)wHrO5cFCs6D-K zby1-X)|toPLR^L)(EZrkR{1e+!1<_pgBe-Is0_9z+df4I(=VX0B%bpEr> z(tT$P2FzD=hzu6guz!gey3zHZh{>hH@K4-wV85{i0L|>>l-sXs`)<&{##52j*%U~> z!>sckV$9-fsSm_>#h|X^1W-tRq=kh|pRK*>@Qy1!HMk;e0Zfw_2S?$}T3scYp)OIN zQG$sKKNehsFx_;aP^-5a3McAR4uGO1CbyY4-;etzi{xKKGG1K)fNVzx?7n&*vz&~= zA&m2zK})NH)i`Z_xt4gjx8iVV6mW}bug`H#bPK12ymS$wwsucC9amGv(C`gCTg>@4 z^FsuN^ii@)BQ**9nm2PcYBO){<(?w7^5aWdt;v_+iB25Cv^F_jV1vW9A8FZLd~hrI z*=)%oxg~iD);14UtcJK{zfhLaA^+Lg;@<%f1|;5~EYn8d~df~N&++(1|A3>-KrU>fgr+|LS zPD=7|qL>HojoF|Bx8y~d%ITeuV6yb7wJhQ_Nxqo}DP9scg$mmDhX5cI%Yiww%U%Np zA}tl{j_jO;J!gkt)AN8@XQF*}4rnF}eGyIK`ruyyws6t~q|-m%Y#z2u0Ev*lT0LFKNVZQ#=l zZC>9Wg%L&*-yX}GE9TFmnk8it6c8c;A!cqjtZ>jF8-9tfFD*hp<<8=ctKRbdmGK%9 z17B97{q*+Ef{`~!f;I}~61lKz3wIsQkCxp;l)v9Xf+IiQ5h`uff~0i9#fV=2@N}lk zTr)Ofa2d0BCBTgpP4dD%&g%X|P>M6|p;r+f!i$y}O@2>ee01 z`w=9-|M#U=AKm^1_Xoe!Ylx8Pe>GI4(WrUssQIL~&;i7a^Ojr%2X!kTwTO%rVu(I0 z#0$GH$xq@buVu6aes7y&H;yJp1=UAU)7V z>4}(-y7c)XJx8m8$e;eGx*1j>Ju|Iijqg`-V$!ugcgcOLsNcL!44Pm1*200U6S#vu z>d{gghf*?M+&l6m12$K^oaQP5pYS;t4p$^BNv#*lu6~S`Qch%` zhOMFUD89DL%-sTUXad|eqmgkeu0IXF%sCUz+3U~F1QlH+^2baMV+4*lS~0rd$UqmM z=q)fK%T+V<5u>O@8u3bun^7xZ?R%C=D?G9-6EKwN;StOulV2?6EB1s;xdwrV)svR^ ze`%dM9+GU{LUg-RN0il|`4yBfTsx^y7`U z!3-#yyrX;pV&UddmP*tFs3pE#{xNp}mQuXGGF+Uhd3EY+Q*pr&^b)(AN3f7(1s1uD zRL^KFA-{JI*E=5YFmG3ND?;N3q(m)Bp*2Jy_czycc*?h*(M2}?HgEVKCsp71)tNY3 zw#}Fa_Z+^3-Sm6=R3Q(CJzs2-vX6tf!=>zm+AMW~P4^JD0qJEUb6vpIW~H`3DlW8z zIjgZRN4~RGxh}@8EFCa$jDRA{e8j*`g#zbxuX5lTtRJb=BFWX4Bm6yLi1fXox&jU^ zegCpwVLLnYYFJ9Y)wm+N5#^CT$ZerS53wQSIK*F^?cMwbBCb6_*U5R6eKq;e{ai2x|(w@Em^6O$~Wgh}Pb zczdrNnxkEWPU{;#9U>}En^jPp5_jw8M9bzYW=r(@w$qRJx3r4KE}r$fXG{-!leezO zQ+v~Us{tH=N|~{G z6oAKK161hAzpuO=Q7~|+5etGtfuzJprOOuj>jKgapEwJ}kEYC78~{Pwe$0pOU9EJo zr2Ds){t^b{nT%mr{GfjYpzeRebxJ(Bi}ZZv6qgXA&%sxK^>cC{zg*i^7ZvN5sj(H?IWLf2I6rG9QbI8Jn)XUCrXO|l z#?jq#8StF>yDu`(oLPvsNCEKMcvGB>HC^>%XaM*ILEsg$DN(9U@9nRrReA^)^jtJE zooo5OFKctPoQ@B)?b6dWzU#l`N~|M5(DzZ>3)8jh8$lPsCD*mJYc#`y$CZt@;k-INcZLjk#TG`at22xYm ztfBxR=aQ}V8#{DPH2~h5a8e^W%V(4&M?$g&hje*^SLz+KT0xdGOj&sb6C16EM8H8X znP)szzM%Y&CXZ@5p*vE3yU~yCVE2h#`{oWf31S zW%ze*yciqJlR62b3Q*y}tioA(NskXF3(;DS7M=kRzgv3Z|1PwIlo)2&B^t|fov}Cv z=!_@cy`0@s!Z05i-ppQk6g#IaYgf@hB()*&reXctplk_Z)KV>+LDh^tb~^y~Mr|OE z5Q`bT8}5vHC03rJBIH~pp!g`G)SCT>PR_-feN(;WuI51`;XHVgsl9Tm0N%S`TEEjs>+!xJ_>d{B zl`p{X%GydGg{_Z*BJ?bVYud=l;B2BZuX%ygc&ei{_S+scQ(y zsv|oJNR+6#M`g%Q@TKw%hfr`|O9w@b4U>bz^LJ-F~L zx&+4NbNegq6*Z{2YKeh|>(%}@Fr)o7^$=cZA!t4Bku#J!Wr+Vz$Y$lV`%prUrY;U)< zq@NMCufnX_J-MNrqQz5xpXUoLJK`eZ7>`@rdDQ#8^R-HB^ksTj5-CRqtTlWa06UkH z^U+VoFwQc1&nh&Z^zh077d8*p0y`Ohtem8;Cap+bL9WYsJaJqR~+KWII`O7BQLELwEo>NjrV1zF2 zsVp3tCmlpNl3UYEIUN*n8v5HFR-;+dKy#G+W}+8rp)|< zyYfmqAH>rv?)Oz!4@IZrncwPHGo$& z2SNZJN60+L7%h`MPyd8IAPZqQFzMWCRp+TS=^W>0%~x6)!yv}BX@2zl-XzB9ks$Yi zR?PtaKLEgNic_T%M*0~zl`KJsM31Nbe^S!v3w&#^EvM8|M(p2pNV=mE$FPvLz(2l^ ze#9LHHha#~hdWl9zDS#W9XZCj3f(0Q{?ZtThSJrH(ftv%oiSEIz*$t-(Y>Rn6oyup zgfgtL$5wKzW$RJ|ptU*QFR4SbE zA?PuSSoY%$*VX1B>EsAh?0p3>5nktx^10zAQPtNdy$~foX}83}2YYXI7aGEDMe#8i zbZuuY0LdX@Y!AmQOHAF*6-j6#lxG>(bC{50$7F#KB<`CG6HZ?-IAjYm+B?C!=>wXJ zjuv5W2%{Rq3$N!#LRbA`CH?gcpCdg>n>T}VBxL%s&!I@druQd?)7Z?8U0O8E{3x^W z_yXaguq8FlTLDBgBefB*PLCWTtO^X6E92nL|DE{{qU&SuDiHo!{#POKr%x6o{*3*? z=i>ei`Bl;-ZLPi0Xd06*K4t*W*{01hp|5=mB{)SapovGS_`cYS;KI=333DQ^M3*Jc zhB;d3z`MvX-v(=0oe>Z^q7?khB6Vz3pA+faHgk%niNvfO_BdauPHgun7CAIy zG<;C3isxq{`XHLb;xC!Kmqz--(89w&rLkK_8kQ?Hoy0W{2%<9 zJ|A@AO|^jXWA6vP1?DBGRgc&MnJ3&Zzf`}A<7SygZ}&eEo)%RW_Twiw%TAmo}Qs~jsEBPUruhf|n^i8KH%h?>$SD;pZ3;-g`% z^7^YdIRyrST2OE_jCl5LX`zbIh(m#8->iM@?B2k<0|(x2zA~PutxVA`oow4V%hrRT zd3&Y5dG|zrty6!7626tY*#EGT{4!w0BaeY#8_G`u6s?#;en9$2+$t(qH=!aO{^aU4 z4Lg85ZpZ2;pm!`J5zPT6^WcR6u?uO&>EhXZhi`rIbbDa)5E3GF7# zW1Vv9&Lm=~BRiZHZ%R?nNj`&D=FZFyu%zR$9w8it^BInDMCDoJJ8&34faDJ$_MSJ+ z3(jo6G*?M!qy!p&@{;pQ6go7aZ~Dy|^XHAcYL80$BlD>8SQqhcc~dS8HhRomA1sU| zu$x^acvGd|h1_Ahh%EUPA-ffOSqZw+C7s z;nZK$$R;C8M|CJAYBmCJo~JdVUS2h#*b>VImx_7Z;<1J-|K=$zugBy97|7INCuy9) zD!-}T1vOfA1)a|U+xmg4kVEd5VtcXu=s_Vsfc8+(sPT)9kDDfqhUc((RkzbYRf@Vf zo7nMqThTm>n-vT7fLIGh?Pj~#pHG$}GhOcSK?03h+-OIz7=CaS)XZHM6xaT59R?9Q zOR{t3C=^{4hA`*p|qmaMzmg_J~^PaO`i=oGi z9XI#3fS@Hc8UzI`NPYQ$Kmj;fh7s{ja1B-!j`~0ObGE;F)SO>6p)HSZkIcA#AS5T$ zAh8iZntVw8m>0q#M^1yeD~(d#QuM zRR0MFnCL11tOIg)3jT#au$Nn!wSjphl{93}Cm8CWkROuL2DG}vdhrR3>tZXG=uB`p zGWvxQL>ZxmsL7<*D?@g94G%Fll;7PH9i-_11HsxME9ru!m_}n&BXv|v{+lWt^0pxO8YV5T*4#vHD-+8_SH5R) zXeMTnRw~=X)Uzzll)T)9t_kIVb-MmG`2u6F9(?7uQ3g|)=Z9bT$%1H-FHE$f1To-! zjH7IweXk4E&%|PBa*n=8Er99u(p%`J0S}*fGLTH9t zflFC!}M6ZvEP-3``d8PxwQ(cC*8ZR0d~Np6^cT}POJQbb7v zt&$^ktR1cKTWF;MriHpTAg^0U}3@ft*T&=sxYD$8_eMVbQN3D8+%gjWwJ(Yk7l%1}D5uqI~)I?F_CH!=fl zjr=ju!>82mjm2kpi>XI~$cLn;eZuM!*JTs(#eS3{sZ244&e^%GZk{~do?O0_lInCASaKZ%X9&*9vQGR(u8gYtCMs%C0=EssyS;NiE2 z5HGS1XXj2cH_La75Sld~;;)Sb=0O>{x(FR~bVG4zFtSyUedBRkw)BX%wvzoF5-Qry z69Bu1KM1K+g25nWEnXxg^j!wZL>fB9ZGkVXZ&@Flri7ZcOfhPF{08#VNx~c)~KaYSl9l{TS=$X3Iva33Y|_82ehC3ztD_!w(qE6ypgbEvFc%*Q^Q+eQe(5X zS@5(uXVFBq9aAmFZ$wG+RjF+jV#dM&9(R&mvr`aX>XN;aJrIr}^p4iaKLA)nzP8*_ zKhlt#KKQBh7{0kf_Rz;KbPYxxZitEhm(=l97uvWgzijR(!(M7~_R1R8Vny$p@`E;F zgDP^3iU3+RZUvk2A*;_UvvyoeWTkJRw3@41qI|$VLr|aBxq?HHP_hZ9Z0_&|??zDx z?-^vIkhnqbs|D5zn+-p&ViFeX66w`O;k)y5mnxifx2J_3v|Ix-r!8YxAmF&mQ|8@~soN zcr&1Er+atYX~7_99ToW?N~=WSL{5&YB>M z?2DKDDGhqe!0cmGwhg!l1-^#}t?i!i`Qe6b!r()zEM1570-K>hA_SeW1I@R`UbSi1 z>jLl;Xl!uV%Fs>NpW7!3p1sP<5C&_?H-rL{f}jg5s8XNUo-sn2HX1Tz?h*QZvkv|! z%+vsbx;+IyeOe42%hx+>2X#DiW4v^srBo&h$*3yYpaca-X_7X7_z|(;9m>m&0{JuH z{@s#d0p!g~&vk2~u>v->iZYV~R`*pW6(SVnG0IC?rkuB(5XAt^qQt8L(!)tRK6imK z{9~!H-*d$1Q6cUPLW!f;5SnLj*Pz~2NrI^qi^R~Z)`g!q%73$P4A4-prUXdJ&H%+? zuBdGdRs^=3fFS%v2Komz$j2gi@O7F5e7=$QHE8yk64ll+rJoM`o7he$#s=tY2%Yds{HL_x~v%r^x1tzlkAqo3KB=-9=DNK`|B!c z22H4~a2i`Drmg>?#?=dh;#0nXq!WdclE}IoT|veEp{0 zc68I0Z+?LhvzO;@<5IKo9B!(!-tvJUuns`vxNthv$tH?LV81Wo0smW{mpF|XZkvgqDAfNrkmeJE0Amey zj?0>U=pXPZJnADM4W?K3gmRo@uh#EL_S!!GCAOG)jk4X_ye=I%u;_}fGGa@xmsGso z<-(qAvY%PzWOKx0{x&cq$mCow=IAH?)7BCfHruwG2Z63{fDB%qzLM`C5abKezG{06 zcJTOfRi!^sp5TgMT@8#%trk{S0{QzP?K6UdmUnON7OQW{=QtIw>9D!@w3-@U|46X=&&xQSBi1I&^>VWjZ*YB#E~O zQU>o;ew~JInR;u2zw(%(f%Z2Nfb}z{P&f>igS4$(A@b~9fsnfPmBf+eV^=&ylyn4q zmx?3t4KB#G`e3eUY@P6SIz$-jZ7dY=(T7)prUGnKN(#Ua#X0Kb>)P_T4Z146jwLJ; zGmgd9jRl{`xIOXN4a`W2htatoycoS#UXP4TM~gRI#)6ihQjxQ6zTv3XVWZv4t^I9E zSZ_5uvsSKLByF0TY~(>^tVl^q#JSk?zUX-(a+XB-vFpkXJfmhjB=PU0`844ysNRl7 zge0aD z*Wd=j4(z$~LgNFz7Oan{tAsKGY2-&nxP*_OmDDr(E~CMrTlwr4e0kS^D)$Q-KNu!w zi5{XPcw{}=N`2SL?PDI?@hOR&*8cE~8nkxTB4w^`OpKf$DtMG*yf0vvX!QQQeaaDu z;@ulRlTIRYMr&>F{Nx-23PDX^6@1F(T|829L>py2mzT;QioL0LI#-9+{}^F_c}LBb zBadu)Dcq3TTLlUq!`TXGw#y!6H_5q;Dy;$pKOp%6A;VY{&<%v46W0Q8CO7W5o}5C^ zI>#g%MauVFy!OudG%rjpUD;B&!}eEq)E6e8w*sfvm;V%sVAC!ync7SEj1EXD`Ag7hgRGZ$lcTv#uLfZux;+L=}gs2ASw)+--7zml{ zn80Y`F>{fh{BTswdEy)O&Ic;jyGSyZ1c9Lo_U$lO0|Fg^70cgqaKiwrJ11a>Vf#um zc|%yoUgYofZIN2y&LdeBYQgH5Ue4BjwGxzC0h)??YC#qU?(LGoMIR|Av-5>wG(GRx zm|jlrc)U?f<3MPnK&gTvb5$h9RClzMN?#7N22!-_Ahaw;+AxWSNg^uA(c*^p^>BcU zr_ZA7?Ywzyc7!=c7m8e7gb;k=f<2cWNONz0H^1PY)0~EnWXVI8sh^>ql);Qh7@(31 zb9Di;%d|{WC@7g?b$>x==#SY3x8KaiNQ7zMZN&bv3QYI(Rh;ZLH6HFotG4Bx*%3#8 z7{c&4X(2~2@l-yHi!Kjp&&F3kzCtkO{_`u076&K}`o+ro`j5oFFp z=Ea$9=7IRFg+(?iY4N_W-Sg-)yO+%*m$EE+NxhNgN?s*)A(i3NoPJC-FX({122%9x zxE7{<=B4IH&yL~!a zK&+4Wtd27B=PhKEdi1tFQk6~Q!G~DWa}XE(tAi_MU?@UPZRCO7Uov#?3}keP^rNi8 z1diPLo&K+TFqn10(rZBSObnSvSIP*yp3tsihNd4QgKdTj{(WEFL^VA-CuJ2z&JQETq_PJd((+@*Nr3 z7@g`VX92s|7B00b_ z=;ZMK`pHYioL(FcxG!QV0Y1-VeEpk2WoN5t(WGEZfBTW=TPoplIywh%T{I-XoiI;Q z`Z7tHu%*rX^v2Z#Er>A?Ug|8g zbKJ;@5-9YO;f@D1jUDQ1T^l5~@OnYA8TL%hecT^nJ3eS@IN;In?{93h4Fn*M^0=Cp z`Jl9s9^jxk#vf4r_=~8*!dGPVU%Nm~o2Yjq3jrI?syCJ=0qb290OFe|Zu@eR726)a zBcqNh_jKVbCU(Bv7v?T$OM7}4p(qy|23j&ME-q;M4vWEzMPwRqp#jgf<(A_Q?X2RG zZ$6rc-9mPo1ll%rCxs#=XY0d0vUOyEPR|9J@wzw=gM4vmLn^Pvh#l-_w)CiK9(bfE zve5?Of8JmHWo-0=I}*f4;0YZ@rduK%prISP7d^7|bNoRKkD0m_xjoIVP4sVENzi%D zH`3KGEE!dEgwWcI1V~<*3$j5NFH)?vE3kyj!M4<^`$HKZ1BwsMNHkeSpj5Cqe%xaI2$T|1-8=K(93Gib$rPy_c3CnBb8VyF@R#}#|u zZ@%$4{ZbqANLEK~T_T}m5ADVsufqt5)~-1!l~gG+E;K3D^fzC9t9_y#um_Unyo$i- z{hdYHRr8;hEf6JQf{v~HMi=3;O5KbT`tWFFmu!V-_IcK6fc+^w^?1X9^ z+$4N*r@$`uDHV8zm8L2A3zs`WtQb?y;3LB3{~#1XIN$lGH~s9dkF6#Iti=vvIF$|- zzG6a;Wz5S6suF>U5)zfLC^`Py4GI3lN(HEf_``44w%h3=x zE3OT@Kq29WQh3{LxKs_RA8PhRVcNyvm-->IF2jqXz`h>!A@i~Ba0&b5$u3Pfv@_oYtMolE6 z&=QRc2TEg#n`HFKi9l)7%^-}ahu7lPpz6KN6)a*lu0;`IroW-@YMZ`D)-nMdAy)3g zD447&bP20(jVmXF?U}-sLx0_X6=_w(Nc~w$HY6N2_{xnTm>B?@DR+Un2{ENv#OwqM&ap|FMz<;_WU6H zYdbURtZwe~EP7!B85>Ayp@#fQlkz%M_|Ny#M&M`xoX*P88PYwMH|aN!fkR=yL@#@} zKAiM%uLfHKPqt8UScxD-vZ4(&ZHjtYArb=5d_brz7b>XW zY5EtBtrkrk28;K@EO3q+=f-}mCaRLyHjFBkr^)yrG3Vz<{37^Siu-BImvlFl?$%R( zeD2RP6rQoj*)&U{RoOS8+NQ}ig^QxgN~W3O%0S}sj2nmua+CSh8LtV&=Br{6NndW} z2%G#bQXvWYhdIw#1HJT#8A11OlO|vt46>zdFjtVhL@r-{=!mc&S>vfSw&MT63UIhG z|E$N^B3-%>qi_Ren90c|YqI&L_kFQN+i8FZz>t)!94An!FD)PF$pfK9gLQo5JdLWd z@oYkrJAskaa6F~rmtKQ1fM#4efhaD2K3%Hl3j1T}D6BpKL&|tBY(@E>+xcv^R?7Ir z4d+i#NqVUQTYR>gq(#-agVWuOnt!fR2t*ko_wEb6-i@SQ_C-J+oFloK$roQIp_yl^ z;NJyXM~;UIuT&B}A{MBC9(1!ULkWW^?l(?Nr}tE)#^aH_j`;Z2bKdi-H^DSq=K2gM zP?8%gi2Of(J@<}E*FFZ{jzInZ{EE%m`OFQ!5qD^|ln^vTo?=4ju~bL!+SG$ZT|@#1 z*r~q{!?qku%TsC-6S*vJ?YU}4V$QPst-2oLf;6ulplJQV;%a~0bR^t0gmWZPJ>YD7>3L(m} zOMB|1`y2*gr!6<3W?XkFu<*Ly*o#i(|HtIFG9H>&Y>w}eZMw(#F&f6ZA4GJ;U>v2R zQ}&9ZmUsOzOle~3VV!D;NiI;bvKc)2lVrzl2mYC}v?JgSI0+2mK1(F*t>Xd@yDQCm zR=W?Hrn6aO{t`9>iMOC{70!qE$h%A22;8R6KeKpwv1z%|aj} zJg+(Ha0{5dmOzBiyfh{|N1r5WsK;7qzts*TuBqu;j3d^Dll8nrx5+b`sW)dQEN^n1 zncUpNS^S_F5=LK=CE5dTSwz9y#qZ*&xxb2`&B!&w@)#BQCQlY(tJ{Vf;Rd?vjIMyq zl)Ectw!+^7BV*h=O>Q#NIHgQEU8vwg2EicxslEkaWcXoH>L;>tQgNYOvGeXUxi)s6 zW|~(ZTgAl9`|Sfy9p3jV=FpPrp7rly!sd_lNOsw}%L7(s9i}{?4Yk4#1Q!+ifV<0s zN2Cde+^;L80%Umd@ecSCxm(F_CyFDaw!u@gO`csin*TYi;gjecCz$HNJ^+#^aTOEP zK@f_O$0n9H+WL~{A+(@Zr)V?iI3dzevndN!z!d4@?HIQZJ)1&Kk6nWOg-A#F{T_qC^@ zy*Le_Ti*R?$}_Ia6hq)2lH!6H;~7bR7L$lr1fYxa=0)KY8l{_rlCrXmp586Ty@FE# zZ={ko=Mb3kEocD=VRsr@NXL7olMOFFIK@_vyIe%IK(merD~L7pvt~E!3^N zSY+>slpiLdcERo&b`VHYvUZrue+q-gqw5?6a5rf{Jd#9ynKZBB)^`=&xinU(TUlSDh$&Ki=4aSmwxxdQyNW-yb zH_qQvAO!wIexg?)#i^{wiaPn=IZ)9FQ&Is1avgT^|GK2NqH~y=&4tTPN{PW?<7I?H zU?sXE-J9*)2%t*IhWxRP%xRJ8UgD*(1|>ABN9wk7%GTQ zsS%+Voz4LS61SY87ZK3{P+P{6nM9U@va)&vaM#1JRMx;ID@6bSnruA$gzm7QBudbSl@aV)mO9{M!V&Q4+= zAT(roh$LBP6McxO3hbEH5{59<6$`w&O`*G82~;e#%j!4?Yq!e53jA(sMPEjmnSx2c zcHC0<;luOPd;=8+$kw_;8hRt%j8sU%+ox%8fNgL6~yGA9D~SE7ne`=1%fH_A*GgI&dD zgb)1{h_b>!8#{>}iF`sW11pt(j&mChbR(C`4Zl8Lupy-$1l@23D9k^&iezB1{%-9g z9bx;LkJ?Oo}>M6N}JM1-6UnSeN4-m%x1|=1%>qF)npM@%YA}xqPwd>!di!CS5ajWzxKf*^9NYfM5(eK>_b=pGfsli=4 zIo;GGVZo&1V!M%ZTu}@WCE{#p zdR>mJRSi<`wqvW%rQmQL7VkLCpdj18*Cv~z+}s{ghE}id`y?Kq<9B*0jgV}?cV}Ok zSD+H?c$tPPL6m7nO0WeDnu&yPdS(8t+3r;A0U|FF_U5>WbL!=ESI8 z3XbF==%QQUNe^%Jx%ih@EcY^eBe*QK2UaXrg-fLW<&PLE2d^Bo~nyxxv7S2KG7d93)$;`LEUs_ zoy|-ZqCGwFy{9rCSL%m&R=b>D%SV>O*0#585|w49U9Fq3upXNVka>;K%fxf36P=8q zWyVPdD&eza4vGF}PVWd7xA3Nbs=b*NYm`gWW-ZHaL*fJ3XcKOOa-T1aL~cvl(Rhvm zZ5a)XjYt}oO?|yz_&{R0@?vEXi~#y_EhLH!NJF@p%Rj+SW2!Q za_Gobquz9jPhU*l68;O(wl!W?>prjo!wlaGe>V#>ENAQsHw6tF*7R-*mL{1x@t}g# z2X}QZpNb!0L6&pk1Rq8uj$=I#YBwHdNQYJ)gt5L3?-$O~xO+ zJS9 zERw48Mpjz7Wap-}I&P2zswIbg3RNhGriWWEj1|y=eNEqxFK=O~1AL%Ma?P+Pf(}|y zu@h9t^W(~_^wjGp3CS<*N%O>+c}=X@vJor5mu7efPHi6W1YWqUZW~5@Aupq_ogAPr z+3*o~eg5v}j$hV4yL`zP4YbUlZw4CT@&@tp`Q%;$<)fQRI*sd%jbfG zf4P42gxEY~mb!L=7QeDtxFq_;{_}eeNqVBWGmoT2v4*eueh>*7ld_3&1HW!&`S;2_ zBim9_rEqHHI>3LzJ{P1MiDoxDBAuw37qLA2%xdcdOkEbBb|^>>p17oSkKq0!HVhX3 z&0SJtRb;e6oa<{xmSmjWuG@;a66yG_vjm3yrup0-g*~#Vv4?R<29_Sap}l5ph!AQF z*^WV*h02AJ%O~4fvX@V5hZ6dp-dl#_JEP{55iWNe>P|1aM}aW3n#{<-+-PlKjhXhw zG4I+$v?20x^q7wlIXvK(`X!jDXLkZ#`F@GVd2e|m8cF5VqFER_##5BKzI)u8N^$%h zRZtj3PNFMAA^0`M!&X578>mpG08;wdJO~9rs5PS?{vbjW&(aw8stAC$Wm!yt z_B`X5>Yx5wiuDIO!Y0_Y8VjI`bw!TSXGgXFUUZ4{wog87cYrxF8%d`PIgaoBf2{*a zqrr9@Yq?DD$C!^=2G|^(EF@n2ccK<50bOD#P@`u;y^JmFtBnvrD2{(6>ptZ5u?_4x z<=M*L#f405tf@?Y!G8(K0?r<`22jOcr7a@pZj6$=HAuA4pYLFJ6H_N`v~Jp4VH&hJG#kBw)ZMhh8E^Li77X+K*a zH%|5O8~{|=8U6!`s&iDtEc1w^7t^=fV zx(?gT#rP>d%d>eL%d^`mtAYeYWq7xhcacMCh|kczh)tSYVyp0p8uwOwu3EH+z4K+t z6e_9aP}-E}d#Z?1`E}sciu^R;;>#9@td|&dUmV^{uM4|68uecN1$#p!cb(bzdtGOr zbE{YL!5;S3W_7dpTc7J=+; zM4$6D(tZ2@``~rb4_m>0UQn_guZeGX%<&%T3N%4@&R1$4fCZJ} zX)^S4cT>&0@P{d_znevF#PyxVuk17$p9nd5211i`O?naCv5sI2UUtR|DkcLX&;Ayw zs5&Dtzm}RI9`5utBgEd1J*TT8CPAp+=T>)eBs(`KvGaCL(BWFWR z)GrowOHC^jF!#7B$u6VBo<{ojhWGXMrHtN&QlYDs*!n5@MU7M0KOX}r~T)y@y?(uhx64P60U+&7Vs zYBOhcf>)OWU-Uo%Mh*7&yuFP-_(#~SXIegy!=a1|#PJ_5^h1h051G#QJO(C0rH6Ts z;Q#gDz@GIj>j>>m@SmwfoVL!XlT0%&`j!D363$M7%vm2%D>PFojx)pF6cZvr{_x!n zrG&R7#d`%`iFPEfX*NZWyLv~36Xy!Tkgk$r=z(G*CB#hmdOAiA57sO~L{=Je6Y+j~ zpf-1tay5>uAHWKTdv^JiM)19eA&)ULYJtHXT^szEXVnM+bA}brF~_K#5}Vvk6h;s^ z5ZMLkG{vep$FUq$J;&Eg;bw0+3#K5w^+=SPZZhY!M1mb&N+)1|Sf6vRODP%DgE=+F8`vFcCb$Q#W->a< zrvkF_R|U#lS40`H|C=!M189M|ay&3iT#qZaMi$gvyR)gzCpyM|tzvx+Ie1j7YaMsh zTG`J5c@KQaOT#o8@W4s`c@x?x}PlVvf9Fp^h{Bo4S+HA3TA($@tdGbJ(O>$ z#^`bhftV}T&Fmg1pc)Sn&DI-v!#u0;e)U*hDZ7e3cEF+a%9QXFL>Fc_5#3p|(}K#3%j*M%4icTjmy-;q^H-5hK2I|(5e}RmG&`{kMrr4C zCLnEvH+*Ak(+e%2GK1Xup}^%O+CJzbS~IQ}r@elInT^uYuQ(KZ3+<_0Re+S2xctgE z%=S|XAp+L%VNzboicTl@mq4=BzP{>-R8-B#(dlzfN=!*4h10V@U?>^y5EIeokE{n> z)~X1Jpuuveh-Cc(&O+6jO6iTX2~RIB4PfjR5v1V$_|vE)2jOgseWh3CB;zKYRYHT) zt_{q2v~pCsCd7eW$1*qoGQe_L7TvL3Mo zmdVV{*+Iz1%e(6L%pNgC0JYiKDzOEx1+`zChmi>Rg4+5tEoh{-dcDjMf(Eie zW_Y1s07Dn6Sba{7u=xCFSt^1ao#o7@b(9-uhJ(_YIAwhUjj0qTq%tDgA6UGmT;cbex}u56$4036~isPdt;(X$LaX7_3Hu1e~dvf&e@;r{Y^&8w~|A3>o|j{ zqyFp*U#74hQ!)x^DVyupM6CZhkX07D$^2Kiw}$;7HCW|ANR?}(3?pIKJx?axEXn2S zNv^YOyc^u}#&g$R_0z6??ZDIu{&Ie^^+}H1a|AT}X{7Ew)sS1mWjC0!7=o+)+#tl@*T=f?Z&9vdzDS$npBlqyY9Jo|#UIGC z8JcygHWc8-L})+)Y4x+yMqYKk3;PtXBUx=?4@?mTeC6Fd0P{{xL@Ddr3-NRX({Cop z2m+?saeoJ>j_6--&3dY9S$2MfmC_>emBT6dO5JgMBs3qD2?=jvRMHqS`5aD%>ZB7M z${%7}pq&c$G)@0|9-0*h7rJ>D%{YX*a^FlLlw-ST(f*GTF@PLk$w6Hb1(P?KJ+-aF zpP`^F9azndAW%bs*CjISz2D2GOC*d#vO(t;iOnqJg4A}@gb5K=I(nfXJHKm#>KG`G z!SH@BD>^F|+_$x9iq4Y+`QAhHcEWGZ!>a@4d%dt?RA}%1c9kFc*Qp>yg;i*Wb zw7y7f)MK-qKRyPp-~C6!Uyz{_ZlEpXCh{-i9}N9={_@WZ#Rne7V%|3rSH>FVL<3C} zDv7^b-`2R1q!?yz8k~1Jq*R*27^309{|pi)52f4-ccvZw5MyUBK?H1>B+c$ z_n-}VR^^&*?sKi!qli?8Ra_k|)TufI#(|{Iq1`u6P-!5Q8s_A^QNm3Qyq^D(_V;0@ z9fzidVJ3w^9$!ew&)--gWUXo01>~T#yVPtTckFDo1fN6g_6eohvv8XZ4s_L?f)&JI zV$t8>Q+0I?#zLA=n=$obVvSzpCMxfn7t=t52oE_4E(179occKL&e%n!vvBkegeLeC zlR_?4M%eK*1QkIbXQ1Ubf3_5N4+R$SgY*@F_??RS8yEQ~+^V;kyqL+7*DjKoKL3!hG1O)|ohDMLa z8JO1Tz{QS>#fMTU(1%+qzkeQo?vhH`pav%G4#xdx*nV>VE2CavIM6`{?ay9bHA{f00b+i@)w@`KYU<&S8d_Ji*(o5I&-?ltNgZNvqa^?fO3t{n`~V zLdm56QJm}0p=tM;Vi{%pYarVfCm)X=z_YS=AJT2|r!Jx=TjLU)FiA#dQ=z zYk>hrb!fe7Ilx{~#g(5-GjA{}79)mGgvc0eP~iReJ)H2r?i~cciMPdrofWh0%aQhr zq%WzhCdlDWH*Nw|+E;P0t`{Cbh`taj*3srR82oJ;fY?B(i~xaw(~@PT0J8|SMLVpj z{!NGm^p#^v+QhK{>a`<}evhqX-2|1gU%5IHUk{3ZNzqXNa@n(o+J^PItT+>r#+o-e zFYDJgInQXGMJL;)>ICJHsIItPVx-(8!whh%CEJ6^ASK>nhFRTyT*J1wlFNtnqr-#E zy$vqkNEj=Kux>^`NQtznuu-td(wsQs|TchgTk+@U~4DN+Z5`_RHQb3U04*j3Pzigb8{4{cilW5{R_0ZPw6CIeNOo?R@k<$?>`GZ|igQCE;dEuU=l-eH)&2L8vU=X*7F>VEVstgzfxlBQQ;~fD3DG zRKBQqf$OcK7HHM-0SdeIK2sB92nWnU?HGAHJ7m|$>F`ZP2Z~V)6`+zsmKcBH4H(~0 zTq|qtnHP*hwraS}P@y#Xu-`tXi=Sm!T3^v=XP0uG{*^%7zn^XWb^TUCd#IZ;t5RFt`v|EB1+FmzSU=O9kmLdb4kIyA31GJ z7O>5v8}KmwY%XNI_d#?%Q>+@>1|3^>;)hujB%I$NEz3i-??`%ueXjEmaZQ=}uDJrm zYC{^7tUr*pM;oSFtHb;#EuFvfHsI}BD#c>K8d_Y$COlBPmBqj>;ZD8tzr5KIkMy~F zhvqfK8z*{#`6GNFBCRgGwCQNr-E`-V)e-D^R(G%C%zN@@S1OruG?WQF@fQ?&!-HfL z8L8?n1By*x?K_eAyJ>i(<(SEmb$?;pdy{uQQ^0|Hx`!|WkOY&@i#0{maxJ-OK9+sX zz^b+X$&U=Ij#_X(MX!uKct7;@)oMEf@W}F(Yrc@_Pq@2XRE_TI;IJ%pxh3t?M-C?> zZC{$vn2MvkWr2HBTu9}__lBYmyZY{v7C0w@ya^vtW}`}y@}o#rfHHc6*K$jxW*>Sg zgpdEwK^qoY+El9oJF)MGrT=aNqiLd)kJsdP`|rn4N37VB-umA{b#zUZzDQ(s;wWlW z@NX|#^;vf$=kw9s_3%0k5(|Se@U2%(=>co3iXSozELgy+IyyErJ=}&mpM&&ln;p21 zJS98WjlWlg+^Rp;gAhOIdom>Exh?jt=C*fH%RJ{C^AfniUY)6WJq(ZPW*WhPV#T#7 z%Z+B)IB|5?&%^0~;7g*}@< zV-aQZ+a&@NqPuJ+acWy%?u^m>A6RPVWSXWl+dCq3cPT+U#@m)aDF`L|-q+^g7VOSx zCPf?Ah7{wf7WzPP4%+HSKuC>+4&(Ao&vS7nT?W#{F7I&v*xjxjeA2PS z`5)Bn)07MSg$@xB-HZ&nQ<6HQZA*A1Xm)IqAZog=!jnbOMPEWBv>W1jpb)WR9UgvN znZ=9Dj_=jPzRt+RFAexEQ$k4`ShS?HEv+gkck~a*Ewf5>FQ1I&nBrV)sFdfL%r6W6qhEis(6k zyD<}0ndd3Xyo9fclqpIqHC9xu;v`W!q1hpY00^1al1rYKds4iI&$cK~-2V}eI})?gYqWS$^Y%lNUp)|sJD@Le#cl2#FPe$ZlU>Oa^9)u6(+)>gpGf_X`1u_gDl^T;oDf|~_i+0FcizFG)*&x?vT_rO1_2Xnf5v{A?v^C#yF2TS&gC=Hd&J=#{&9=9@!OJ~x zYc;TwyUO}X4gc-fv`3rkW8QS}jqxQyuwne{*9k37S-typ5~*_N2dTQ8OC$e>gAH`c zE6D?}|3mINPsrTWDa*f&7W6B5yjt!ISE9oF*^9bk~ zyC^WcN}w>#n-GSFT`Ih?B#64m|n@mhpzRP-La1^TjtwZ(bkZ^UmwMkn_8 z6~QVn#P$`17?bTbBB-qm}YxJEM4(e-%e7D1|l>A>(N5NKTK2%``he5@?1dxQx+U(|-1 zDDS6rxM)DhAKpy6jx|cF_c0(<-Mg4_fC~@GnNhve3Hu^&Go~;>*jQ!NJMLuC{f)kf zqnAS~odTkb_%fyu0GpAn$m6zOSB@xF(jT!1=4rSFhkHt)j5Y6PETmL1M-L)Ffy~+k zg^-;7?$Ygyrj&yZM`TPV_uzU~u0a;%cd5XFrPj6(>zqqc7QBQ9LtIqb5IX*gpZ@-l zd$M-|1^ZOTqQx`ouKvDwGGYT9^&in zR)A5>g8a81bq;?fT004Jae4waJsflGb)*L9y#!HU7p+UH;E4ixj8e<^9HS32FA3wz zf%$2nPgZHRlwZ~N1!@(k6%gE9R85zfUX<7aew%Ly<&CX@23o_ zrRmvtT-9v2%c_Du*sh-W+)~B@5>D$_pJ2*E>=|?Ie&j|(OOnM-Pt2hE2@ErVj)E4G zc7l?mCxYG+RM4A+;DF&nS=n>!siMm!vs-3IL;PlR_eD+)$JD2Z%K19@9PAy-TX@-6 z06d%^rCYe25E5Eo$5aCx`SKPf4ntYJNSV>?dZzZ7?=R^G?nkKvU9%_+{u+v~FJ)<& zapE$Ra>RSRjN!DcJ9c4!E`GkDFG>tQ?0MBc0%CYZ3oY%JZ?I%5Sp+w4;ET z4^N-0p!Q!+>Vt4UE;?6nk$C^sf<8Lj?y>aG=Hs_&?*i*KJ5q98Y6Y~*Zx4W=P{l!I z0Am^!fJlrq7)YLi>NA%?+O-O@Ex)%^7P#-h$9zlX8y6nUcRnSAU2H6W2Z>b}w2ky# z?PcgR!4G(m|IR!a0Rvg6OQQq?)f|eOC|b*w%sx>u1Ts{*l7PbJoE=dzZp0h%lUsXi zhcDz=p0Qv9E_J11+n}Xs5K`XqIk_Yw4T7>q()+AY9^@4Vq>`(x2RzBwezi6nKo+HP zH?4+$)^GeJ8Jy{Tss1JQDKvWRtw4sNvR%RpqR|WMREs(a7JvU)iSNxex^-7OBqRI9 zxFG()2@%ghXrovqj7Wa#*2Ua0vw29=v2!c)n}jBgQ;SsP#KVhP&gM5F2lLZNXL!vO zsYB1Kn)U*>f6GJ_wWVG$^{JBP9}zKI74+ii7o=cxsjblAw2WY*56|5~;Kr+1Q3Wn4zISs-NGt3g8%~Cs+%9KxX0DpBVeY?~3(LFm-5TmI zkNUPFp4rd=#`m(+1KG-UtuUm~s9>$u7vH)J<~$;hAHY(FjUV;$9cMYUEQY+`sNIh% z4fYn6Pc>(;*|GS6T(ZJ1)Au__*&01{K&pH*KWUYS z<%tkJP#O~ymbJubgzArIqfMB*M-2AYCCyc(igCFuGqlq~0q&lcz2Sj4&-CJl-+^@0 z$wlcw3+9<6c=Z_^=8;%Gv$PM6jg~(`!e6)4(R6vv7CWzFe)VFFknJ}|=ULM#e^ZVM zxVD-H^yw7dzl2_Cg5snTSbX96>FFO5VV4MeG39v7jIph&*C!X87pbSeed&k;-G@RSCx*nb4LaWic;>_hO z28g4dRTC0;hFaBSw5?yTVUIP7E2z6>nx9V9egs){ikKENAu;Vsklnf$TeHO%98+J| zaiC*+gG-T}8%IaR^x;6M4p*t8VCR7o>+(ULq!@VLL=iN7W_|!(kJHmu6LLpcU<8RO zX7NgVXLq0CvKn50WH4LsvE5r?fcnAucFYPr_JP-la3EMsIeM*tS{|2)nh@9z?K6aB zVP*iCpD!x;(dR0bn0A{z7B~!2eoV2brII@lro(Z>gcZXH#Cxcju@6CEZ`g|Tp|fs4 zN4q?<ocPRb z_4rP0{K%tllDKXOB0#&Xbjz!+M<0OdoHV&Q5wzN<_zvukZAG_&=F1#%8I%M+r}b8J zvf#ih43k8{LD~l9V>cY-3nCFCVS;K+Na%M;%iLZj&xIWYy(o z*=qaqVco%!M0DLTHO@yB#MRxu&EISR0@gk>MYAMasj7BqG&VHL7lK#c^`F5ywF4usqJNc0@% z**-q^^7KtZ>joX)iV$P4UB|kYcf(vkt+_EGjK>NY!u0f6Q1r<(x)YDAvn=XzA4D3w zB+PqM_(;|!IQ4)u#iDlFf`2tD_R)g2)1vFMMo7hZm+}g{<}1$TJg(^D@UyG|h`NVq z!MKvygsMDrnOZ1$Y0&`>h5%fCI^^s=nu{<_S3FzxRiVYXlp^(;YfQ;bfLCcnx z3g}g8lC0P^YrQIxbJp2opP7nEJK;OOPRzlS`mE4Va$+O)&trEr2L~3;(f@=iO&8#c zQtuHut;ubQE+>Uiy?18Zy^b?{*d&UBYz|dwMyp_TQj(QoBMnd0f#bL>`yuKZv}`m@ zet}Ef&)+7Kqf`X@6IeTP8IF)jmCi?Hl%25)6|8h-WoWeFl8+Y*t%lfhIzUD0iN;}V z_g<_7O}@AW{>0-x4XxRpE)+BktABML8guZ+@o?NvcXgVzuH!lNn^%Cffl@hNVCENU zK3C*3{rA?G)d{O0fUi2`l~a zn9oEy@>U`+TLI=pf3P_Vw0&B4!^wWs>Q$e?R5^F!xrd^4kQHjR{z?~2^y?&nV+Roh zySzp?n`DkNz#%QnL_c9%TdNC^Yqe!d!1z*+3+?Y^wBc<6TOn0cvz-%I2<?u!SmOVDgvkBU3&I9@hRe> z`!teMw;mtcQt)}KdeJM^p*Bu-!`f>M9G}wYn)`#^mJ-d1y)twxRK*84VM_)gCnqaz zyuN$2qR+Zb{F`%~hotv(vZmaIhn)fTUCS4_sN2u1UKuHbb{aHZ2AiXSc;~L*9qFiN zOhlZubP+v$l{9|3&nX~U7~!nSic80v_NEv*uQ0SxBy^5=%Etnbp7ZgGg&0|Nl@M7# zjh;}&&hc}#sB+e@Z;W17Er9Gw)G#1*xuErfLd>HiVA{RC(2URw6xgs*W-Gc=lJ*q9 zw9cpcSn=>9bU3wOj(B*V0>v+}5cOH^HT=%mSu(_p z9@%lRUcFL98(7xbk+X4+sN87Bsw4iv?sauTqnq)^3z9x=xI^gs7;2NkY$%js&gP+y zcJs#}2(7pCC**e%b=i#S59&1)-4$7Xnh-wMN+qn+<)o*$DNtBy1lVM+cXQ-!bU}3J z(HMA?-k>!;oT?q}(@}Wn^&`Cl4RDb5G+W;Z9B85ALIU@L69YgSC6S6pBS;;7#|0|* zX^FeMlcX_0R4($~`d;7|~vD z1o2+1#8v>v$PW_@qvH_rj+2H{GJ4VZ77Ixcak1%IJ2$U~Mb%Z=o%L)WhR0F**_+mV z!yG#=qp#0taA?W(z}^oDWXn24e@LmQjBP6W2xKPqXR_oKkfO}_nU3YlU4b-QIfXrd z!GrGA_~7F-)EjE+(u4s}sw!x$9`4~&EiTHhY*3WlY3TEcoIIuI_M*(lo^|%51T$Z| z#~_Oe4e<35Y%OP1mwy077%&D5m`XGfA>}2p+=QADHZH5ww18zMBpDj$6eJ z-|xDUCn0p~=Jfkg9UL)|WMXagw!}Ag0hQHY7+OH21*WoRleUI3kT~#xC;W4~t}5^% z3bBe72ZDzRS<^c;;X{*`6f9`q)pTap`AW1v->X&$zy*nv`z^Z~kXyc?UqO`Z4Da!3 zgV*AetKcKX8pyk}KeA|mr7!WNhO%d-?kkHaoJ%}~p>okYc4!Ijz#^4$fo0f$dw}JT zTLmM$Pd#oAyZv;mIQucz;oF&EX93HnQ=?biPx;1~vTJIPwGrPvg_7Gh;^aPCUBS9$ z9zUvbgEs+8&sfJIOz}k0qh+VH%kf#FSFudK;r?Y{l%=sOv|Fu6%eqmZp)sk^9{6&1 zMGobb2BEL8;Mt9$PP&0+g)!@1D+9SQ9VvM+sbnm+P=W`4My4=yPEy&?LTXhSpIN*UpGeGywe18 zoH1`p+ZktCnkl*$zkGKcV2XB(qv2>jfwT>V{1f4jAx5>5{xFp~!}SaOwF4K_kP91h zCauAjUTi(8#ZS>Y|2Qvy)$z5m`ED@W%Nt)%`dtV?k4`Rwl})XHIdPN15+szGxe4t} zEBJh@5a`h@{wK~$sqxGkvJ-+EWDX9xqH8aAaPN=#c|GwCv39G8h8A|)wdCN7z2Vo8 zb34aF-Sa@E5B}be58*w>hra?d7GU13{-;Q~$=SwO?=JAQS6cL6tHtrvVm3c*Jpej} z$}C}17mKogd|7`z{#3by*xkB4w47EpqUReeqM1$M3>i=W<7~6ebnjsm*~ndn>937} zaEuN6lI&~~LRyIwnB0!}v~5l=Uw^d_&-rXL)D-XIk6Ahgu_Fze0XDNL@1&|?y9Ou|N z-)e!)R$#&*`}G~wj(@uOW?V{W2MY2#0_fgF#Z>sy!ou&`ZvAL8zYxHP^UW{baER!A zy(QjgP`LGMN`#8%2Jbu&Y7`s5h9BnHHp+19s=v%ZON)Do2(eSu&RQ~0ujO^*jC^o* zX{^%~6%tFE!%Nts$sl2F$secgy7LuN_^`Sz4sPBlrdGe+7;wdLo>u*E7{}|?Md=k? z12l|{x*ygTRYA$^yT6G9mDhbiDEO%AzPX{#dfWtL)hpanD_@15L9BliRUxT>teX;mzk(aj8 zJ~~2*ZbDCFVvnI3*eP-%gcX$Rw75V3L7M!UrC=n-O<<*+!=z3-4%o)T#J&U<1K=}B z#p=1AkT=-LyQ~9tEi=gS$Xv{P8XC?tLM@g0{lcD$c!ZR^nzyt4??Tc@qFCF{cKE}o zdORP?jG5Q~Ds^e$Fz;?^Py$+69;4+Yo3Dm!QtWn25^5pC0%Zs0;&KPcUP0HMbdC@6 zB1gE7a@E;TYAPVOssQx0#{RKb1}2!=O$S|CrrS){Jd9(R=2QHPc+COTAD=G6!62 zVrym%;|MylFp(DC=(hNtSbH0<#;#t|Lqi7dbr_uZ8jlPNPeKf4!(&F|q4`3v-?N&k zU&enq=H^LikeR_xk8As~Zvd1&mdWg$(l%jM`dAdb`@+0O78v63*;f>E)l1~3Q9m8P zmadVwh5qD14+n9Q8hdl7JXH3e@+^GBg~ml~>5dIA4Qb>jdMz%L6Z-ed5;v>8E8K$p zt%x40&E&7*=~v{-l@gT#x9QmZxHZY$-uXo;y!cqT`89sL=UoB8!*&jIZDs6qcPtl zbN~(!y$f+%@@#gnILF@v>DBo%(b3&5{c#)t zFF7JRs4xyQ`gQKxU0-Yac>GhN_c}OnzS{US?Xa3@(k(;oMSc2w+?;p)U|@gUP+LlO zsXS|!n6yV==JP>sWy8vLp0h!5QrP$b@Z?QrkfekxC;KJ};wwFZs3g&Y%5wVsxf!VC z_kPq*5pfuqA40i((0*nbOKZ+{PO7iOk0q@s?iFc@wT1YIkw@&qQw15`%fK=yi)?d@=D1nj3;CPByF;|y) zChZSQZH2u>zv<_=G@;1~4;Y~|vxo0VJd%=iM6w_V1_`$Cej#YNH_;}d^uuELO^CGs zqt$Si3?IPLb%BD{At2zuxU0Mw1Jb_6SKeMTtm;wdzQf<3>p#Z?1Lgj=4vN&8`}Z&) z*=A9Sl-z*70nsh#G-jATMyr$=le`P`?b!6>_a;g+mNOJvR~bK3DR(}dzbF$$r{jH{ zoE<**!<*bLQm=-5i~oN_ z@1zfW=Rk28+jXKlpvz-7GMX<8I#5lTE@b9ky2}Sd{N2ei+h|5KFL)^x~{=wDyNPSj>5d1|kQMN=$Ac-G)M|cyq0k$Is zMi6(<1{MjBvlP`9Ign!_om61fc%dL+bXa(LK18w@-If%`KDMAEoN^_7jbg>Qfha%H z(@xx;=WjWzx=H??2}OkAV*W8xnt~}-l%{-Yeq zhcn&>()Xfq3j9h=EdWS#LK8Uao>E|%x_OPU`1An@1@n4V! zqrWNTd;>-o8tH<`Fc#d`(&rVEr&tv+D0l4tMt^ottx!0jEzx7 zmk|s;FU3W2@KR0G2a;v^ikNQzhG_u2bW+qPk)?gJwix7u52duXN(c6Ztz zQ%6axO7n;Xd8=6Q`(!G8w1EP)rxrPhLqom*Dkd7g4iLU;YR&M98MPmB_eqj8Lx)F! z@XuS!vP~j6zqmj(%7LXEu3Kg&pm03v+L4_a7*`ygSfM>8&U+9MxZ_t`pMEqH#^WAQ z1%IJvAzr?ImN*c;f7+biQP-8fouVk;R?s@T#<@JT`KwU_e0g zaR!ntP{4YogzLh`%o6|6s9tg-E{JYBJkQg2Gw8*DVnvMZqv2-nXC=L1MuoUEM5Fvc zah&St^-wIBYUJ+0ZNT~279|v6|7olBN`ZYa!LfCg3zr=X)o`*Z@~V-o#%A}XQ33#u z2YZxwomb!R23C|;ZTT4wdhz}el4uz5+v!sl^t|kq z;vmY5=K?;yxj6t?gE-^6f3mnwJ%fYmum1fts zUp9WDU29Tg<7CcKhp|LWNn?G+7Y{O!wR7x7)KInn%ib)=g5(c;o^AS@JTq2=C$Xkf z`3lB2I4D~scw-nOdn^X2{jrd;1hU^QWdo=+MCOj6h>1Yx}pgW1e^+T{4XsnzRjbPZ`` z=plEq-9}^{`Nnt}($m_e6I6-shU`p-OV2fFr*b6Vw~6febd+e=XzHzV4?ZSt-;b4Y z!MPr(@o^1`9;FEs*QPHBW%THT7-krrAMxs=ThO5~R z{`bHFwDv1K^`YAxrzj5rw_~CLG0*_7fzK1f(dEP<3gIP14qCQN43`cP=LgJw?#->k zUA2d{baMw8Y$N+Og&oGTA;NF>?+cWBok-a}KJ0YXy=DxPbNO=BHW|`)( z-x7fTM389Tms2=_JB}mM+MSRpIj-lISthY|-SUZn?2+RG>RG744~{NVBSQ@~oQttN zddVGhg_S7j+GM@#@4w1QH2TLIQmLd1E}rvFK4N=un5jp4tFYz$@q41J5a(2If7+lU ztv-MqhoY3x;9V%LT}LblKHMx$XHnN7S*v%iR?s^;BRAg`mW) zps^V30|;-J?6gVnzFK#~N0=kYY-Qh=DACE#-JZCJ$DULJgD2Y(oD@y%dNhQJ26}a^ zl+>1++aYM_(YY1!plO38vp=BubZ&+Uf(K_N9Yb9;92V&99Xr@N3eg~xif#1_4;e$N zf&?Kl$Hm;rRL?6<_KJBmv5IeiVs-~)R5m}YW~qa1r9@d7{?=;bS;XX(*`U|UQVEu+ zJgAelH`Ds>`Bs4W+attVT%$=aHxSG+2#lG<&s*92{!1SCX}x2P58EKD-9?EGB-Wjd zbYFilC|dA_pe7;ZVK66_n2?whU3*gahe^mWIlrUh08{vbDH$K8>t|s}!W~b7K-0H` zq#0ir>Jx4~LLO1X+M`g)GTICbI`Pay-uilj~~&En&LpX@bm@?PL!t3hIp}lS7ZGaZrk>P#A(LKP=(+W&Y3=S}fvs3M$^s33PXN@xN(zw<- z%PZ~a{OHwC4LQDwT7*F=ODOD^m0SQ(t!rycNW3VX+91*PqQDvr)W-bnOnpJdZwuGW zr1qCb`CZ(5C5O6w6h5I{z?> zHg1%`R5>G?mDIAdnK{cOsN)sCSY?8e7OxrRmXND!CDXivp<-eV$q~_qNyYyk#liRL zz7}}JDMciloNC`Xk|Ntbrz~YPc~rjhq6gI?5JAPoxx~(=oBu^S6ZOLb}t_5 zobjo90z7v%Oti|`AFCcAuOBJtVg+cn3D+r{`ZK+;g3!C1msIjqh0}UNIE<{sdPWT zUijK$wF26q1`gzg_fE5HBf(8NhDR76XaCA>Xajx1%SoZJ$R zhzn|0Gvr&m@o#7ALGZT!5lI+~EF$)hV)k}iM9gwASi?PhukeQTh<=8TX_+NEosBJY z#fXD{(t8MmaJ9s@Rg;^kHKuKc74c-jo&nJ`%ly!{OwpgQ9haUAYA$DbA;T5ER_=Ty zFc%d1PFacvI3aJw<1PN7i&}WZ%sk0uc67uZX8>~vgb6ntiP!;T1A zS*iRIN^w!|W>xGN|7AfDmZW@PNeTn9w8wo5D@K_ySOqX#X|jr&EhejB4=*CvpHYCa zwq12dKz5eDWjU3x;@^O5mDC4Kd;RvwDIu0~#rt~w4$nMdtXjHK^ZGtDbLmRH97)?D z^0kyl2WLOj^3!Z~ss=cegsdn3YBWU`j#Z=LL=$G_I4z$L9UI?VEM1J9E>|_ru3^3vJ*Gz+zkq@g?n1|ItRDW^uuzUfF{qMzR z0g2@Lrp`$_qX>4w_yozUS;@6D>O6`NIb>+3Xws3`@E@QPWJwj|-Tk{36m}ncaQIRV(MtJx6&=f->G^tjmcv^K$v~whqmn8%=yYR{$%P7 z>oVMqFSPl8VUsp{8<=AZ(F!#?Hqedi;N>-aO-C~9Hsxg-C;5%iHjXY%+7l=EgvSRy zVhHZPKaBV8WMSR+L>v{7MZx(M|1P2}1S^y<_b7?;+|3XjCcMgf-I-%@GbA2eHkhR5 zLWHl#CCD&f$PI$JdV|T5xMr7sArA9+2gh0fMtb z%%^%!%|B1tNM4nNI{^!9s@s&%sUsjrd*lKwYt?PPFEgqzZg5=pt(XZrI^{Cf0>_nG z+i#AKL%{*rVm4G_*gwNJ?iNCE6qe{dK`?sSI>c1tuzz8q_3|@r%C&q;C6SnlJE{VA zveJwv_HmuM0p!5dFL@M0dI^+ZuyM27Tmt`42b9^RcN#vYaJ9OO-|1EtYk;3WH*pUQ zP07Qo7!c)+`-O!;u0D>uFkDmYOdl9!UM?Pt@JPxUsh!GvtP9;Kha23wrX}X|8$Qf} zEx$EvzaWMgDk2V`um9;Q773KkyN-UAw3)G=oec!-gy9Y5O*12gJ#4&8zHG?F)cOE` zoRx;R2?V%WCWbZ!HWYT>%gaR*!CLv0P;Z}vDK1dqT1UPsjCf~g##2%i2bNZHJTsN$ zh`pq|VC0-E!knJoNwI)^a-zk#ddY~k@nw+=1l{X;JiD+}BB32$uq=O+#bQ)kKH*nC zBrSP|5;($=#J7hD=Ry2An$9y#*5-B0dl10+XS^|TcvzhB?CC_|k)il@f6}(bq*R)D z>{c$!8ALF;NKmV%%yLqWD}Gr*k3$(aN{S7sQ>vE z3eJ3IBQKky{v>;2vKb!_;Z?@(vybGKzu^^U5~dXXj!bEp?%}@~P1Q;+bhm>v6qO8o zQv-u^ZJj~J5!~zjZh8r6X}lnnT$W9WBx)~Ki6FZI=6f?OWAy?2#*?uKNLD5~5c12< z-}ZtpWRc&k4z?W52y&AR`Ff8uyo@ehw+ya-XT}OtT6fLqQ(_%mCJ}agqn~(>^My$_ z;>)d?VwYO_HH+8E6`1R70bSTSfbAI!%8F8QO>USoi4lgfIQfhMkpzM{?4}1_-MiS} z%R2MujOVQe(Cqe1-2f*zw)a{OOe*httE7)X-zn85yDn!(zwF6n06#p??M(Bt2+Vow z{X_-^SlVHF*d{C01+EN;SeAT_|IAM2IW-@?PcvJozhYt#`D22AlU$A=V5;OX)%y4y zq3a>-a#^P`@qN+bE&Wgp{~=KETr=U!1dSFi@NVv|CJ`!(q>8Lu<14udt%?)Jhr!K} z^bO84m+C%TD-aD)8N&}eiX?@!KnqQKqp$p!I=Z-ytFa?#SCld2)IFM0IE4)0STgyP zN$~AIO*~9=YZi5#O18WDsPxKPv>2keG;>C6?O7pYw4!T2ZM-+FAhtlMairQS+Jtdz z`r}nA-oD%;-JkE$f|Ics(YBGGrecMizc1)B5$gopC*XrOO$X*YW@KNteYwHRY=%35 z?gJtzWA8lz>RE2mSWgL`!bizWQC7HIrE|Ur*KVVvdxxNYNY&}}C+@Flb3iSVx6P`c z1hTKYxfAiHXjs$GxsS9^620z7mOA`#Lv?ApLdmGy>GM@=@qq2~%a~W&oyEp<;i?yI z2+on^1_ALAJj?)dw)(ibzx-bWMgW@dz!CY=)klX2c&p%9ai~GM*(6l4z&w8I2%PC( z=<|RL!|B8|1nspr&>3M3(qXU!GqNcvU3dY$k2HYd>)&i0z8H>m&#mKvTiOph-<6S9 zZ8Si``n4lUGgsdqw$LcS{E&BNe4K(HPc14VU)O8LY2~{*f5AqghGe=38x{Kf+>6-*% zEfao8h@8Gf%xV!Q!bgEhDD**&HHB1vOsN8kX)E^*@$@&`7k@c)F9NS3YP2e*lr|`i3D+@>KYhqxzUFg z?rezr+R%BysXI?#+2}ydvJMtWV6^&W{L#CtWIUalASXy47tGS#tDyoXtMPrK8flWp z%Q*s$NZvvYp+&MIqGbErWJ5ZZeMau2q4rr+q(lm>BBX~O2(otTEZObBaOqQER>g|u znbBgdvV=nB#$kPFpDJ@CHBEdT-+QKFCnR+aEpeZer_CvOI5U-M-z^t`qmgM+ANbD) zV*&olfV*5;_g?gXw{QIV&wx@sR!us1x&#gx0oRSzdB_Gt(A>sa)GlDUI}9CB z`A4GoQUp-E8_Ca)^)Wr{Dqf*s34gU8tmk|5`t^c-jLKy=2+iU!}S-!HUs z#e_e+n~bs%V^IC$r6LcWF9zR}$Vb~Xnt*F>!nwsMz`Pg9+A@0%n?j|t) zh$ZSqfN#RCsH3FqQkfbK|JlRAEW zS125>ykayg8B)@R8K6<{Z+Mu_Np^Fo^SB}3UB>lvMVk$_WL7gj+;-V8Yfs`TIY5DO zhV3gfAg*sC9TsTP4{~g34+k3!5c0Nk+bwPRMK?T7o1kFRzz1ZkSl-e1#?SKN5oofU z?lkMko7Q*TK$ap3y9{@{amgAQ8%_#|2E4HuuUYf%b&(vj{0IOp$^`=X={(P1)GE`h#v$*xli{&pr}Mq6P%dN=xtt=vT4~G0AMt7 zM(Kw+VGPuNigzC7MCDNeOG*s_KWeSqZ4;8;&tz8-wBq*+|FvF-YYhCvILCNjP9s>| z`X%l31*^53wk}ZdlXx;8PElZ*1z9|3&81b@tAkd&`a%V&#b53G~0934tRUt`+wuE|4Qhz5)_Y2@Zr#5UZ7p_6{PZP| z$yCw?GHPE-43k(ZZpkoia90jH9Y-8C33YU;L9ev7{({e2k^U092}EbrY=SS)Hb;z3 z*%DF6N3EN{L(3@iAujkYpHm3a+7I;Yw73Hf$3?pE_|{L})zf5y#d!E6CE_iW9qKR$ zF^ZGR^^~y!veku$ArdpyYDF?u4=Alqo2h9phiwZczG*>)oQlPO@D_qLE5>bP`iw%5 zMUb~q-6D7$y-p(Jr0mSztm`dhQhhb+QVf|?-{fKG8p8R62njG!)Z6&!% zMAby4mCq@U1C1Hw5l(!Z9VcY6sa1)H>*5<4N((6634Jedlzz+n$o#^E>2d`b4#0y9 zc*65(wqP;p#h7tl$=VjkwfaS7S8+GRLESw^_kQyU8a~CdB zD+r>YcAt|mjGxCN?`;A^tX76`yVv*4Kq(@!SK&Fyj>g_MxT7T7pLI`z*6WpaJRYW~ zPE2*x!AJOfGr(DWqOMPn%v5G8DN|+~H4W$t7`+Nrf;#LvC|?6<_VA@ z+11@?efYIp_}KPSKIHRTb~oxAS^WV)I|o8YMJgX61Epy-F|INl`xh9fN+>wA`$wQU zvNF(VyiDLPNJ;wLAQY)BRbXvQ`Kl-aWg$vLl^K zHL4ur_6R9Jz>4`Jbgd>NsSMF@hgbXth^jQ_HLP!WUXPFY3mw*o@3uTt)36e(jA&@V z%4zGGwnF+A@`dn{FN4-r9Z^Qxm2kvV4{a@(#5JOog@aF2Vhd zM{R$O3nVNMgAKngGAZ>F2hkW&-r9-})R4 z&8nV_&=E`@ph(F-iywIQbEm1}|3n9#9g-Ix&haHUSxNQ0wk$J9&^p~e@AlnA$@IMY zg=5Nta+u`I0SP1ZGR-;ZvJ$vCC~R~=h`0q;kt|(Yy-8c6?kV?cm|P())HYR|9a7c) zfV*2u1`ju+guXPd%&9b_=O7jV>_j<((GO^`ODgPTW zf$pJTJTUR0$z0VfwgIeuqLSV$Jubbyt; zR8%oSr?i3i9+Yyn!u$+SvDFXTkoeK>rU2$(o|;OCEQzg3R^*_nbfmBp3JD0 zd_S`{2zy>`EF`WJ9ItV|!vUJ~!Vad3Um#e1SXSwH%qF}B!^<%t2#WXISVKAjLltvi zkV%fMCL=!rY2YxLvPYd6DC(R}upov(% z5yv!Hj1gMD$P>KhP*jEd>}d4Ht^c!dyRhk5N@VpP)dEsSsqA12or*+%)<^qz5Wm=@ zeM$*u)gwzfIK{c+XL$=9FyB|nnhyU$AohyvOpTa)l_x(Qd`2(z_g&^V(LkgYJb0{s ziF2VPeWLZDZ9dizUzZE0*@Y{mpdJ{OBqKv1+|iNQWU_-zJ=>6ee`~M%w?@$J zw8_}}qx4Rju)q=f`o=XlPWpydTJx_z~ z;h>G>M(FTBV|qg|Hz{TdznjK}`#uuo;D&$6_+Z7qnBzHQW{R9d>K|UpE4bUiQ+0}s zKP&vILAv`qyme$CgM=17k5EgvySqaTP~h+XqV+hJ+FQ~D_DN-~kwOV43%qOXc+C*b zv$O?n-effBa23NAx+|Yn5=pd~Hkdng%u2jwengkYXb`J$wp0djn7u@;0>mK; z1EsqI!AxcE&T=qz_D4@tt{w-sUFSM!X1ZzIkG?Kr!vZA}@)z%G#?E}%3anmr=4yDx zcRBpVUrNZ!uQ(%-m!?fCcf2~|rAIkWq!pNA0+}C1^8m5cjRKcA;T|bjzR#AW{W}zC z=qnQ}$fX8z3};Sq5W=;lbyIS)hOSVQa8MBr^4KTYaFLv1atISUn+==drHlgZe=^aj zClv#_B^Oq(Vk9`I8UXZYbS*J)^ z&;x}7Gi2$q+0VM3CZv3Zo3*U;B^3(Y@->2djz(#elqLqtgR3A-0=5w=92rRYmf=+? zi26Rkqeu}gS^Lgl86}auAobv0bt0*~dQ%FgJ#{PslV0f5!^e zIVqC}LAobl_RhE7+85Gcd1Y^%$4E*Z$uCf>)$OyIxm4bx-5&a_x%u}m2>maN`7!mG zK(w0Tp}a;_JF#=$nmOlYX!2bN;k9)ygAegm-Qjsnyl~sz7cHP$-+O!1hyeHh|4Jd$ z2z79^gDdJr5g~~6({dKb)Ry;RryND~_ij!D`xGraknj#8RjzPhEHAX|mzIWWVSUOo z={L{=Kek+7Y9|n%XmWq@L+GpS_xjm^^wsfvcx6BN`NhF6=is7D0oM8CkxN-CIHSe# zU63F@xIDx0T)}jRs#tF4vjq*4MBr3z+*`Uc3%za3rh#Z|wPyR&kIhW2n4winXz9;# z{YU^(+_g$|310h=`Ep3z61tIuogYMA?0+y%YBn3aqfazf^>Pp@cG{X4g2~-W6&d;d zIR7chEXS|6YgoXgkenUaF%DM-L(+}YQJU|Ce^zatbb9Vc!|&ev(9JeVh3E#f=zupl z&3(%j@&6I*VhTMSQI0fN*K=9;q1!x6Fm0`m5QDf3;Z!_xjU_>e6geahrU%#H4j#UL z!7GXKi~dE)2c70Nb|#Sv=S6>`VmI+8Bs=GKA2+nHZiDY*5vGLs`StPDsK|kapH+;f zzV0MP=Q9H?neq}&uh*tZ^GLPJh+?k`mCYx z+j_k*rTQ5r1iYcS_lPCqt5hn0fig54O`~d~)=&gLz)?v#xNbHU-2d_SKAEAW*Zeqj z(VUSm_xn*QGNuiFm4VfKoe4S2yEJyK4foKEZ9cjSVJj36$lhWV5L@t|yCUuF2`2MX zDbuD5KpEN{>TrG$`w0#_IEKL=*tvTj47$+a+7aVLqd{l!#$=vm6_Xm^_x+) z)myMVPV}~#dyl;AUVu#;y4V2!KLEg9Fj~Aman6N70zXu$H|YNEMv0tYis`uz7Cg*~ z_xQ%8)SAoV6J)io2&K*Z7ZbZM8#*Xm4!8fVH9iRW781+B0vOL+v04lXKL`_)Gaz}b z!Hafy)}jSRoX+?~n1rs*ga@wuwztn-uclpg;c|GJ9aL>kW7S+}Nq%RqorGTuJOZ)! z?Jm$BOdZq=k&Wizp3 z-8*k_>6f`!B)6~_AO(H~rn1I3{TGCKI+jy=se4wY4RcvU6Bq+dusDrS&P(b0xYe6# z^0qc~ByrJl_XPTdC75;>?UKY;GCObfpj5EqjuBkwn$v&B9=x2^T=H>XUHZpKs+GJ^ zXx~3Af2v1&4oeSUZH*s0h%v#v;DMF;Z>g4|Xonaasi?B%TeX_?=19rx<~L-lqNGpC zl$%ulZcq>T;X5D|WtN-ri#uaN*7%R+Qj_niq8qP2B{!eytQQNau`8BF)3KX52!0x} zFJ*5f#*(zUdX}NB=Iz+JMuvg|1o;JYuWrMMWdkVao*)PFTxI2Ty5y+=s)^x{$M1rI znEl=l;MB{=MbM)w;4_ulp%OjkRvjHd%INZX2%-=%G=m?M6e^{U=e~Guo~U}$NGY{p zIg0>@)LtRbfsNX%8UMC^$cY#FlJR=FbSVZqaM0^%P}AG_ zH(D588O||5dbigrLF^+M+~d*GIRinzVldjd!^ZT2B&|H`qr{q651~b5zSLS`HV^rb znUu{K*Qu%8pSJiR+y7s8C*LknAb~(N><6)kAbT&JMaji37BMxUqc6!8=tXFH=Jq)PzkrG4rY|E+q{ z&$OYKHTOoo05XKya1=3H0A8aR%u8KVVxI#8uH0x=cN;rQBVt#wl6@I0mg=-ARBBjA z{Tnz>^)U~+nr=pjf`0j@fa_FDK+C%2FWKqI;3g9S^i{t7f1Kf5&8q(t?y%Ucos}FK zZmY-^?!F9X zu-43n0u#>zFzP!)hw1+Q&s0w?_lq+s|MII~=D8p5dyq}+Ogw}>kXGW0&y94B28WNt zW7yuxqpoSVm{QYzH&>TWb+pswpOWCCT1~B%I~)6j zR@+60qjF)AqFC&%I{nW!8;7STu*>VO>EH5x#!^Xmi5F;~ByIiKJbN@Sj^^^|uk2{> z*!MEWv6$Aifs|a*%!Dd?pdSN1Jfg1RvORL#YcMkhAD)9AMW@{Ze%2(#|2zJrx=aHH zE0_Hf4-caAf9etywGX%A7Zs8Nd)JV zFdO!-XO{zw1M$^eq}WN^Y1`}a7rYpI&7A!)1-VUj zW>;oAG-=sMIU0dcI!(Y9`rXZkDsgY=z?{VL7n__5<0|(0;P8&31}sk25 z#xi#lc+e%$i9+O#=z+rxO99Ok8v4$>eNHT03H@mbZ~?DEJih0~{W#U=tZJrRLG)na z*FD~bIJ=PSPGfs_Pcpe-{}&|Mn>{s?Sdx`Q3ZIj{srV&_30AQOT)NsxfR@!I$VQzc z6{UzOUD(}zzx=#fvPil`N?E`h0_3?{1tYQ?x&WA-E$&aGQ$Tw{?tS`TXte}=7+poV!*kuP(8gjtVYm>wE9y_@+%cm{42iwWC14&SH_9Gi@|Gbl`E7^|!`HK`so z@$oLu@OTCd-Tm*Y4uE3=;CR@()RudOob<)JNxs1$!Uc+v)PDDEX<6@Tvm3tJPBTVv z*YBJKJ6lR@@BA(WZbFbcs~@&rKpJwKs*{4;+ty&DS2&iuQp$z%U(TJR*RTgXs?Ns? z)`x18(q1Rg@47xa3 z!~T`lG=SLLY1v@r_wx_H0tSu)OF<~#{^m+(gv$@2e8Ob!d`{);{v&LVJ)83;(i4#1 zaKS6$qCvB&)8v8Iyro0j0d0Zj-e0GoPSHkSzxeoMq+p<00eA6i7^rd?*ITjdaRjKS z(G*)l$A#AZ_IA%*E@g85J>5UpZCXVdpB*hYBSM)_Br3hB!CFU{v!=q!a%@B+2s&#u z%=%>Qa|u(DlFd5%vDD(qhyP3S5*% zbB9tLpGkh5qnn7j9pj#38#2pkp)PIS+@ihwJalueRgY2Dbl48g+hRh<28W(tCLy|X zV7!^K#6Ra(!aujeAI3csOH9^D(Xm*jPKElJMOo9wp&DhfA!%G32PcZcCbAL><#M^5 zF2r*~4x;Nuk(#DS4lHB`Yfwy~Bq-L+SeqLdFvw%xyCDvGtIOW9*^6wyZlTZRg?iZ; znJt7=Yp2k=JS@+4V$aSt#cBRjm)U`fyoE1=IX-p)xdy9AV(*=VZYi`r3-M=81SaU% zf1n}Wzgm!ktlQGWUGZbbGRUqHkkqSBX!ZIM>E_!B7R|m>P6RE6!ozDL(f@|KD-ki{ z#*D6s;~&*YC-i#2gwe=(Ve8$S(u-KLAkU4`5Sf@4CHgj8N41a-Fq5y`cvln$!7Kd+ z1L=RxFDXYkcy$->?$W!g_P(8W)!7T9pWmy-wgzZ{v4KACl&lV_tSZY7=w`@YAg(y# zQ0AcdnQIR|k!-qj*a!Hv*i90;h5qSM;e^esCczE>&y=UxtA%H!0^G}TuS{2bcLfv9 z_8Ex?IBjKTQz;qT7ELy=W_X`{3YnqhLTson(B}x5-mGJOm+RynQpBQFrtE^$-g2#m zV`X3~jC&k6O-&4tL!*B1<$MAIqZzQ%EUx&sG!~uPpz5M4gU4iOVlBc0%F`Wgq!%pMxNEpE^Do-;Kf&>|sjwZGio5Bs=J8N`B=IoSFf)mN z+r#odRgH4nV0wHwPzZ)MedPB2J{E9?XZ}>&@KB+M-6p}>Dy0GL>&?!_3r4{^Q&-oM zkcIS-_&!a;k&0?0#Rf}-(Z2v8+L58HOoIlBRQpD*mP@>sa92*=1|l=HocOld3iC^L zui@(WU@`8GdxWIm105sH*{Q&@&o^;%mgp2jF!(pBEtR*E!^USTzC|V5>>hY74H)j! zN>pXZD;gBm?24(E$BBM$b1bkma~KdJA1UX;4`$ADyqob3zLRvFu1>!7#>oW~YfM1qe| zWNRfV8Y%`A3ETcOq$mYr96v|XMwvqq0`PT7ZOBQ1@hT=9>V_ZXYDYhre^4ikl&s&) zRVb1}DZo=<&BjxAS2zY}XX9 zDQEsJIQXS_pmA^Q8;_fVl;vE+x7+zh(2;pKjQu+Swfixvy$HoE02wwOx#0<|jN_dC zMoRpabHa5S?F3yp^-_r5Ww%YGB-{cvmcs=Nz&*Duw0zSOcb1P#Yj~HN%5baG%>gcz zUb(^cm`+`9$g5!pXdbP;wbEx1D6B-wmlwjz&qQZ{j&9vL2z!{>w&Db;jG1S z9qr0UBOVnADRk&U9VX*QescJKF{AX;c+3~)U_^Inzh4hV($F&L#zWhKnZZN7H@AqVF!XXNxwFQE2igAy`jxjeBM^^12758F!H2 z)^ZCyjxW#&+kJgb7(V{Vdvz=8?pcy-9$-6;l^juk5B2%3^ps3tCQg}?VRPn0m!5`} zMgmWAwP;szXxo0E4oJbhez0Qnh0@d0yn z*l)mOZ%H&=6;!VY_KNs+4j-LjC)@R6D%3b$$CKf4l?c)RTi6C)$8(%yS(Osd zpkag2gV_%A+24m*4Le3iok->(n`f3o)5Ku|JG!O-TD`naOG$mA0`~L#lkiIUX-GK!roR* zo@HQX!dQjUkD>_(%hDTB4TB?yuklbKinn*07y>WFVVE`tr75_(N+v+5_+B4SvIE7E zLI^py-TJ$}`&aWp@fRR46%>S)B*luF@Bl*1Ye#ZjFm+oKli-|xqccrtqIqQvGVH&zK@ zk&WWfNCx@EAjo4+hjM}CDBHiv-=y7j2e*z1enJngdu=DzCR;@(H9G1sAP~n!I8Ish znb`Lu{9g76G;ZiKkO?f!(>99&j9%CU8=Rxs-ayYjBEA}nOh|Kd&)2aNI8Z;@DsQ%x zginuIUN=p2{@m@x=WRTF0J+%&I$c-`iIO04jvFWE zK4hx!isw5es-vS2YgLd(Yh*N9T$5*k(GMEKbVhJh9H-&jsCcr+1gMLKo346~Q!~{O zO|;8spUI3a%ZGjk+^>)J88FbZ-D;NR>E7%{0?sC3*=By~_J#)b$^~yXj_NdF5N;p7 zd^8&m{%E=C_|Zz9mE=AtI@=}*(*ywym#Hr-eJRI$a0QP^Ft$|z)w!8WqDwPLkz2t= zw333n_q<7_Cv_w|zTtY1ZvD@Hp~NpiT{V5e1kn@ajtc?PQl2$O742JU{1-4iRSJw0 zYttFz%udpI;+By*q{G_*jKoj!{tMFh(KetmW8*zD_}PSx-TtsjRgXiDMX@TF3H|?e?hjHJce$o&K)cH!F<4^Eytijd|S`^`-5>t50J_UTH zTpB7FsqLy-qP#XdBVB+^D-*V*3Vp&wh#UW78BZ%=y~LW>pLR-kw^`YZgkOegowkAN1Pqtajw4nyamdaLJ~h$ z4NZ8I2#wgQUP9D2!+(h%I33nJE4z&h93<`P9r_2?^nH8>RrG%C5!Dg~f_}zMloMaO zgw^>QF|GE3dk@c{E~@6J51+E?KLa3_65ykwk4eT$?ucc1>$4+ex5i5%lELj9sf+Ef zw;w4TqD_!APs6^suzarn0c`NC%Dm<1pPDVWrPWu<+rCEy38%+F!#jo*am6|&x#iUm ztUlMmRWi_G9+v=JBYOwcNKHXjU|ozZg6%S#i>ZokUs?gS#>)FQ(jK1sXWfGa#utUkze^*gP-STg%{;xCCg(Ll&2&32@}Jh39MWSBR^B zD&`BSsk;j10klBgPRKy%{}if{fmgCM_$=Zcx3wr<&nOipe*s)#QdaFbdjWzsL%xjO za40LpeOKa;j=9q)CQ8Z?!Q1)(|6)N}=T%lx?U$?yw3aW!%U zmnZv*%sR+qp2!;5hWqo0wu(u9a;}W{V|zY?N>}Zy@4;1#bxa6?14+;J(cCvk7>uRqb-z~1 zGM1dFDe&|W2sI@tIC4%j+=bKl>Ag^9M|Efd7U-O9P0Bm?EE94M4G)uf7IdPUEgvMyX4wNX zdurlRo^#Pk$W$_G9>p310J6Bq$B?&i^^MVGEw}!6im6^XYx2je8W$WAcHj?|4y=_@ zIsJsqm+B8$dnOM|JsXxIHy|)I**gYffTZa_eC)TA^2$N0?Cnz7;ykP9RtJpBu;WWG z*hBkS(Jmk%r{XXl9i0^s6&EW^}w55W@1g_``gqC&QKwfW8dYExE$V7eP~#;cTt|TO*Ku!L3(0DVR1iO-Apo8qtu=25ox! zZX|pg%CR1@dhnjec!$wD*XPw&ggMJX4jCz$ye%VV$*uwT*@Uq-?d@AY60L2w&cQRb z(Xtl$2vM#Hw$iDkx6w2OmWZ@g(lUr_@HEDIQp4wRJ}^A3-3@}YZskjhf}5c{^8=19 z1A>SaE-p2uM@pFq)oN&b&U$S3_c2a2+&aj4YU3Mze{8biVGaX^#FAK^mP3gdrevo9 z@8E7IFuUK;@qNk(O9vb=G+S}v&}BmuIy1_BN@O2E61(y7zG*%1Aym=4pCefr9(*yI zX3ar#_ahBjcIcTsJBn)6*`3r#i4I>f{wmX|y1%UuwEn!3p1{*GdV^UAk(JLnCwyNt zu`SX4JJsE?z;5<86R@^vc$oGtthUm@{5!3gPAKs(VW4=rJ7FAzsC~RlcY+mSAMJM?=TMoSyUdtVHW89INj?2lQM1I`H(f3ds?B$nYP}`9re?@(fV~`e=9tLZv`6gT5+*>{`aLz8Bzl^*k zcH1#AqhoPm>rmq;;?^Tl{=C1(X&vBVQX|-a+#x9@W*Q<9X{RiAV$hiJe!+`*GJ#6{ z^ncXe^P-9KnWQK!qXC>g4vLtIq~BIYvl&t=*S4cCpx)0=3D1^a`C=OHM?ds&s)hh&8n^iRmoYIBM zJ{`{RW?TDlNm^a@hfH07posH|!?b9QU^axiA$b{$`|k=?UU=;XXJ}rGw%j~6k}0m) zE%e`XE{pfhKZNTYJ6GRzdtbUoCaG)S+us;*+!px z9vo2{TE`(E2q*-F-Ap7zPTS1dx#sVe1%}phjL$E_M^(4H;~=C=OU68YItgR;EFth3 z4nVw@0TtJm>O;_`X?u`hWH}SVIF^j%rrcTI4ytajxozwcmpU1Pxb08=nXCVA ziqW&5Imn-TukUJsR>!eba?M)dE`A+-_py@#B)cv7gYNWUuE4j5 zx^DWZ0#?@+HPuhCj?CV2*kkU}l0?g9L{JYyx(sRH1)C6;Y&KJBm%wf8&r|81(ki?> z5bIO+xuIBS{;us^{2M(KPGi%Lknvkv$u8piv-+pDA!lG8NaI z8KwQcvtSGET+H>Odjyqq)CL5FgGR5dI7**zC>Y5DGej7&?wvkM`E)g&t zGA%VvuMM7}?6C4~6pl0b{PE|>D&jE7^tnYE+~AG4uQ$skd}fE=$p2VhlFI+@2hEwn z=|c4e;%^tYHmeVzdufq>w=`G*lA89$UtLP^J63~>DUC~oNIwoDx zAE!1^WpR9Azbe7yeG^N%0{15!xOY9s>TAv{3Pop|)AuU+Ly-IW7<1OZ5JS?%=s+{; zcY}g9X>YB?`-cs?0stvI8An<#yJA*w984 z9`!EWs0G@r?|Hmb(WBUamTetv_vIXH2Ph1@5PwtPC~ji7mP z;_U@#8~EiThziv}0?|H16veSiGlSiLo7afom(243Pxd0h0;&{PsIk4M%c5EApMbOk zN$t?7X2%SpCZ-%|weg13-As>LF>37xX`b*pO^J>hU#U#nu?-5r3vDyfli(U^MBZ$_ zCUk+$Pm_(E0%?6;W=-jJNiay+lk1}r7nK}A>4-0!?j<7@EuYq+Jt>=C0F&|0js znCPgU{Yo_w9>K423_SVe0002ss#W8gc)NwFG{~03CrCA8guCWeu<>uYk(C*AhJBaju)5=)Q1z2zzjpq+Z&us0zT?-;tpkH>dQ zs(EZ>*~*ER0l*#tUZnJ8p(lL%pn|$JKaRxgzKq#j4)1@L-+~*D zs=h=CA}MRg)qo^o2%Iuw6>eW1RVdy6du`gzCAeS3nDzc8GRzjjKbaRF4=i@!lcUqd za;T6@aFyxb48p2W*2e}a5FPv>BFHkVXs^fI?$kzz9S z2@B$)c=LTCD=P>oq6O|iAgqV0jJw+I+!ARj#2!uLWR^^whd(cy>j%~l#gBIzF^eZ4 zJW3i6)Hh0A3?PgSjjW@jN$W5ASIKm*g<=yB+5J%TITQCEP#tv=>&&A@XAW zWg^+lv_n$iE%9;jW#}+zh|P1+W!H47q1fp3UmY_QfMuKdFZ>6VvjiUP^zDPChtqeq zfHT8R9L)v%+nMQ}@B+*lOHzsTa2EAV$i7d}CMVv3$Y+kYRk>MCbps?J4S4ScL$Oaw z$u3rKK9l@-?<9$g`VbGr+#MbupAfFO@g&&YK(-Hl14E@3>!(NYn`Ss7?8n! z8}zMyU)h!bonO7Mq4AMkP_UJ4>04uRx) zUUoW9@v@k7T?+JxhdqlMtxaf3CepJbljbTI&DHb2B16j-C<&c6(uiZ>-*)GUSUtVd zzMMPspJ1hxKdCraycaBI>=RJFhya1M%6gU_YS@_qG>waMLa=zk0IgcP#~Xhz@7SJu z3vXE?Vr23^uN_V#eckD;o!y<%m(RE3l*GA3R_xw)_^3Hyrqd&ON**1ZS{;bc3kRWh zq*v~Vk7w;ym>r9Jx}X>HqD=3GN|%r>=C}Ii!~By3Cr$xWti&7>AJ`6v16a47`mBd) z*R^-^CV^rNshU^XzDo~9_v7hL(c*Fv4iDLxy_Qfx{@ex0(`(DA@aH2L#Kw_oqtGg8 zo`^1+7Vzya3*jI76#{9_4sp^)kWAux$+Q+;RDlxqapn+6vK`9s35-jWB~(Oy^JIhE z?VH5rDTAZ|nM@HNTM=Haw#0u;WTHg5h@oyX7#8`A=1h)x@PU7f$S)FAkNIDy*ujsI zUN6!R#fd8GVLe)vKabNP!q!CGqQ(P<@O9hXZ<0N z_}pEGplyOX#Kiq>HkmgI85r$fXiBnpGO%Ft{g>@OVD3E45(E0pECtt{>qk@*&+*kR zCmO-yTgIpoEtPiuUJb)H&n?pn(sCq~_j<^rADi-*25?m35Km}G3D(rMo$s53=^u9pV_Hjh+l5OoK*LPHJm3CL z{~9({SaC^jlZH%etZYcs@xi7@dqrvtqkRh`C2qO&rW1I8G?me`yQ-sJ!_ZA*fUqWj zP7z>VR}K;-Q>f_J)viId!rKvZEn6B0>M8^Aaxa;BFb{)WXw^mweP#2-n5c7?AIeDN|I8_Hv za4Vq=xH&bT5V%4MpRu+?C?RTUcaR{G9V+($!EcK#ESpEbLB8&NrJ1PvGnX?A{mjD$ zGsas&Ft!FM4c=@BeJ{hi#2p;~z)p*V&*$`@4(;0nD7H8^YKw!rBtLoD;a~u_?!RQW zM1AukFpcT&euZ4=`E8;HhBY85@bbVeMI{Ujx=};I4;L&W9qH1 zM=x8m2tZ!=4x3lebATD=D0{o+OuTZ*rpvT8bymH*0q(GdCMfqEg(D#e7k>f4x2U6a z3WC9xE7J&wF@|iZ@11(A6;g8zd5ayI5E!vG93}J|&~`m1d$ zuS&l`#qtDA(`zNr=ulk!UOg_utWWLT`r}F~=nl|VU0pYpF3aVb+wFQTPkvj4{k-Av zFTO=O!kZ+a`v8#HycIN~+b{$rKalMa9Lx_vp-Gy2pYmq^RBEkhd!)X8g7)Idl+9Lt zltm|Syb+FM4-x`F+2D;xNx1*%GL*EFwAYkBH>J?me)@@(v)q@9z2QzLO za2)6rf#$@~zLkPo9_T;pBU+8|Lp(TWLVb@bLbYHE9KH@76~_|_!VKKFA!L>(a>|us zfXa1qbpZoBUz_n8zV4tbboYHmy#E(QD=&7 zWM6IUos(?JUR-8}I+&{bkwoF{W{?$~7~&YP=)!{ZQ}i8GTWXO~F!To~;Vh7hu_EeY z2kfoLZ7>z+7@QiDZrzLm<8bGeBOu08BDNI=>` z=xc3JbKGq*!tKQfbWGmsJx)Jj0~wgw9Ycoq{NR&HP5`-n#6 zU$AaR=*HTebJzu|`#LV_-ojXn{+RFp^P;JaKd|r?FNCZGBhGNQl&Js(8j1OZtRu2# zzJ_tJvq`5?4$Zlof*V##-h|(i!TJk^UKQ$JAt$UL>^qEv4e1Z~OfJCo<_Z%G%u4mS z=%Lf`O{kH{_uuw-iQyU1N{Zq`Rgd(W12+_49fQa{QP7~yo`e#APQ_AK%F_b%D*mCN z2wH3NsAasVBL$Kcxxel{cBNS!Ll zICc=gBqC2*id2qGsh~7_m{01Ua6(eBU2s${Tz&vxA=suHEp0|hfH_vXsY2LE z^|sDVFy;Yg;U*qp%K{5ZNn{`EfG{bJe!(^S?#H8pfC`A3u=6FF;>v}knCeqpKK8}P z0lOt+4BHBW`LIGLeocJX6W@7pZ>E3%zjmq;5aj&ih9j!`j1%C?&6)n=SlTzrSW?4C zyl=gAhd;|nW|rFKuxAneoE{U&jSLe~b|yDpW0j&k;&;TcP3{pt*OJUxqOZxWjQ-#|(N5=W z%NJrv-b5~SGHgMQ@_P(yIBYMD>x;Ej4hX=uS4#lul+Y8Dov6*oMMK9Sg>B;DdW4G_ zKmw)*jKXs);1wD;NaGv96-W^jXZvUH?US1))E9)vM=lH5Y%ly^u{7LNgbcL%c`y2S zrs>4ue+=!38=3_%5wXMPB~BaqK?nWvUf2_yCYf}D>xXgXOSI@YCg;&zX|US?xNPdj zNH-eLoS6@G$88g4074l0_%fpmaOBxUWT(ZajdWO_g8a{Y>=QF7GZt$rxmSf|W-ET@ zj1ysDsiz8J=VKf^+3G8Ng6ZEuxR=}N5b$n=8PSB~H(3{v!afFW41m}>lZcM(WLE_+ zAK7^&y0V)^1|55+icY{aQOCW$pS{pmZ{bwPp$9(Un3VE;0F=-!4_QT0nxDZ6G<$@%a2IZaR~A_4UHVTXPp^%k&NV zh6%g$ge;~qPH+iHQjB|PBI_ou*^_=7pGi=jrQ_)6HVYp6HjETARUJ#3riabm(whS_ zI1LKTztG67WE|9$vDpdRSaFbX+enl#8x&!kWNUv^?vrh^t~vu_hnxTX5yTUxKpOtw zbR4-MG7TKvX_XA%AtF2{jgVjehng+vLwpJ9XQ5JHE!K>f%-k?d8XiJTtj(P_za<)E zduWf67s}-q!;uQ5DjJAGojosGWZhc&E@LOW><%|bQ~#+|e9;&}jC%*#?GYxAE3ROF zo+uYr*L;6lR zxfjoVd%1RA#6@9KNRSx!F5@a?s-p2E;2srX^`NM1k&2}w$<~?x=g#g7K_-#G$d-uI z49CtHLrm|J;np(FiSzB?quc*pIG1hkmeEM*RZBmW>Ph{08_cRD(s%|uXNo$3bW;ruBR z^A(>^xQCzr`_Ra%=X$&ZLuh2&uqx6V5-;<;a_LKcIp={xlS}T)*NTO_4PvgT-F92Ik)#-hP1*+& z#=H?~%iT$(_t~-sCl&+*rwyZqUoq=G@6Si&n?kAdIzqbLsM`p4m|`Q+q=astpJVWT z$nQEEfx0!BTgI^=s@?=4KLDrY=L?!IF)6nZ=;)W~KD*9K4Q#f5)l6VUHf^Lk34o?V zbgpQvyKv*WtqFLp=YJ5ub8+ra7BNR;6leXqEM^e=;Td8xX+jJZ*!cF4g?&tT6bZX| zDd_7npVtEchX$8-uH_*$)3_=7f?d@G2OYfXM^6i5863P$dF{_Bn^YZ5Xa7#*<>r(dz&Uh-}I<4BR#i{qAwl4kc<3 zieLcjvI^4S7K0CVO<6*{Et+WW?6!FgUhyQ92nilQJ=ba_=oOeXl+n&=CRqKH8-NXb z9H5bPHEQZq`vjXp^s{0giOJk{lK<{3{~d*_1XX^;a34IOEn`3gKYd z1+5q1<_bE=S)-T;dOZW5AgF+!uODBtPnhg@PVs&vNaQeM@hsv>NkPB#t!OJ4{m}Nu zxdextkudOx6hcI822!{6+YRF+expKLa}2k{NUT{33v!Rz#Y9Fbzisg&K|6U|T7})c z#T9K|6y-=?=W4t*mikWbZ1s~P>yUc5EG}j0HKm{ToUsa2W(+OnOsJB*C>e$vl!@?L z)~$$l3;_lS<0_!H5}~tLDSYha*A2*mO>4Uj9K>f6;Y!wYLR-H(iBt5qtD;{ZX8J-w zleK`B$F%g&+bs9gQACDlCW6>^HPWDXG`ApFZxSz85q36zvB(OPZ>tnKaNj^JPZ`eY zDtDK`5`rUlpG?Yp*xyeAyuu}9OGkfvfTw8YhdB9J$odwemjFc)pRlguHWqIQZN>AC zz$cr>#*Ks(iH%erfK$Wz?Le6ghxY}3j6j?9KxClF zR~aCKP+lKBPxgTo{;_m5g3t4hh=iyBz~fE{Q6c@o18D{4u>r;7Ce{=M8>r%EVVF6v zgu77eCKXUJG~Pu>3vh0Wxool5^Hs1PZf^1`c3RZV`GIT8BURk_j^)ykc_()@kGsU} zM6uKCv>>44Roccoyf%6AaKXO42zbU{o>0>nl81;=VHIrszzmWmOIKA0q8M|1R3=E& zS!xrSu>l&A%@eCD7u_`9p(O!1;)Y9dS7pLUtl2^crce^akzX@=xH^NW>?`d#O^-y8 zem{sxd}HQHq2T=7Jj@;?(egCOg47rW^!E=&t%1LDJh*>)kIHgM9(NP8!8dN0c>Zzi zIR4$QDim+6)!3ho5JdJl@7)eDbTL0M2IigS;xSWSN{Oi@02M<#*c z%4ro_>{9Mtjf$3V!GTS%_l8I!g#rKx?o7^VI?>(JE4t8yFP7*OGkcQKqT8~JjQ31E zD9BPt578Chx^qKv*hAAwcl*1b1!}@E(v16~g`2dEjw}(TEjC_7k$+ighU$2^jbbd`^ zKiIoLe0aCKz$w&&^pkFquqFVMj=X^zQ$wm@vDN$|ct`*;<0j&^#(K$q8Ko?gWGbz1 z0;W5VUk6Fit$9$If&B5%IG&0b zch~87RP5!o=9%C`s1LFyPe7Ro1HZH=<;B_QR|Ae+a0!rQyAMTjc<}c=LVjrrb}QJxZ;g)7X>Hs76t;t}$255=oJ z)nq`VV~wh+8+wqc#!E)hl)|S#&0$`A&b2_Q5zvq0F7xPhXO@u;LH#+tLmxqc0}5-u z%N@|65na}`-i=oB-IZbw`MNq&Xgzdyh(ASAC)r9?gcbWyv>02dIi6r6e&E63AzF%` zAdgDJOI^3v4o;Dh2z9z=UFP8e*n48sbUiosHT(iNfIV@1TFPkiT^Ou4-Y&|Ry`_n@ z`nbM}~Hqxd0O%e=B6iq6sJPvBq)tiXwmm?mTzUPfA_73$aHV z5tyS#k)mW6lQ>~W+o->vC$X|W`D&m#TTZ!PYXMLc6PD$gXxtvBwXJa<+YFf|6d89~ zgbrFsqf8I=(|RfzhKceymGmZpjvQq!;Kd*Us>Z;>^!RA=6?;>gAJ@fooslhb)<%%; zRC(|Pn_EzdT5i%2ZKOxw3KskkI~1FcVV7Ty%^0rLd=R8oYV z;p+YZpE!fnk#5Q9IJ!hlTt2n>6DF~vXOZ_UV`v7R+a(~Id8lOz4u<-`6t5y<6Lj!Q zG(qCzm%&++^S30;d=f6wWd&;Rqd~lLS2v$F+%@C-KkDU4`UVQNo|v%IO)^$!JL7yF zu*bx=(J1r!*endeSXo(BgAmQ98UrkXYCV4g%D#~M3O~4W8iX1SM1>Ck^aRnvaRShe z+9r&JN<||r^bshm2Q{$YuPbwJ!mt<oyzB22qUnbUxNC{Vw(mO#uz@A(~lobWUi8VcvEHhjlL7YG|Inn0VY%qlM|o(FF#^76Ez{+c~6G*J;Jajh{S6ZuuqnxZv&l&bUb8 z?!mcT2DbI_zj!kfT4`#W8uy3?Z5u_n*Rxa=Q|p|5*a(1_G0f-+B?fNS-)PSnjlL@N zbfVAPzQ(&H+~T8)`~z|CqYO3647zg15DvWqf?BjD0MQ*>61H0FW`FPJ^9y8&^d zKK-*quD(6|5GH7JE|aoT?};Lu1}Q!f;n(5bO1bEZ67bI~(WpmoyD?6q9U5*+2L;)( zFw_{!O+6soUI}W%RHKRNCTcNh)WdPVuWuMMmzW914O26HB|E$TIcC+dUnp?`ikhNKF9+Ymlv&p5=;l*pjD8+*iKwdSvqccd0cn4OCJ^1lemd<5H zqp~mV5n4|t@UL6s?*&yTB zUv4ZdmjZ@gZ|sU4ACa4B+5+ME_PR2Gs;FS@SK+x}-L;%>3IOpEsZbX>m0eqi=NvAa z0A9YioitY|8G^OGyZ$>*khaQ=@o7@n}+v zyhwHrAkPF}gBePgeVDa9vZny}ii}!XCkdr(rKbad>Ub2l^k<(~nHxq3uK<9?m!PA3 z$*%%K(UC#1^N%+)UjJXaFlv9|;E_sJX^0Dmkq~@$@#)DvJ0R;Co&{}=q4m_6$AYO} zx80#bEf=`7X7p8B$_)V6!{XY?RBvVo`?C#bIx61eY zA_W@jj5$k&#cG4CmGAzUZzaqsgs-xUBmo=K9C`A`B6-Vx zAIzK}94mrG*{3}8EC0&er(+|npz5XEppWbBP|7se-n4BPSg6#pY4717G>^d+;uA7h z4($+}u=o6EYhZiePt#)$-dst8-e{DM~k zcRvhLKjBI=Y-{aZ!k{^_3$VCvCgC9+Uh8vKBRr9j*S`2Zh0T4OjzF^_8C{koA&eS= zk#R-u9>T%px2Aa|-32bg(%MkV0BBPVKc7RBzUbzmFzI7$Oyk(Ljv+Vnt0TyB^>Y+! zVq>0iljMM)NqR5Jn)mBcxv$Al^zd!Q9a8ldIq$jB{6ls>>D|!~Gl@tkkr-kx#*Ws_ z53mE<*-%9Q5x=w@nyOV`I7QWD~FlETF zdlkt^g6NlaUw}YN$`%qSnwOT#*BHm=wT2rCQqsT@w#6m=t3JV@%GqVOa!qAzg<7Q5 z{HOf1RYudBZI?M0U?mOeP7|ZAPt8C$@=vI9mfuf5X2E=rdC-xT-KEu6gjo&7} zC5La-KUQjjp+w6qYzk`28~6claqPbL^u>`eW0Ut3Fj7q*emN9BAIs{naf$Fdf$~$I zEeKwo%^YIH%ptm?JZegYTrf>M^2_n+I#JmcLBxE}Qm{!yKlim<<->1V+&gJaWsB9- z{Lv>xDw#I6E$Q=YRJ<-?G4JI!{3bl93wzgnjx^}|1XIhP0W0=I(zTUT$8X_{Gp!g6#F>8nw6lA<}zbMY~%L7(*e-^ zF?y=ev3NFLVTvP_=#!7M(#TJz*YGPiIJ*r%JFQ&|r~q?%JA8A{JP@L~_xpS$_+RHH zEi(Ewl_$bB`^?V|jQqN<)FagJi$PFmRoJTWqZ+&w&_DxF^L^9+m?{KnH;n8}sI z9ToKJg0##c#XN38Z_K@Cuj~^#g*c{8)H*mt9GAaKXy2(>%l@J_3Jo?6N2lhJ3ROBoXs%9uC4$uTeN~r zj1>RfGpJ5s*v9WY5>%d}7a1VU7(&{<0IrLgX*s?f(}EORo_Yh&HE7SN(<4is3ZNi zmSB66Ne7}CWDP!ps@2eD0n7A0`PufIW5ihjdEo^9AUA=ap|geHZ;)NuV_B%(yF^iX zNpEc}bj|P=ewelZdn>E~(8+!Ju5k+`7fIRHm%yJoj!7M0_KQa{aY|I6b__*(-BR!^bHW;*VEi80Zy}Y{gSFZ-ib&MouX@F+*}L18auK~} zA;p=bqKVQpl?8Efm)yh}Uv5HNa)ijowiA+clft?=5};drbE-0&mi^m*W(B$MxlBrU zWsExv(eoJAoyP0fkkin-`9bNGUXgKZwplA?kU_6C)!iE}SbQRyK1EI+eJ0hS8JxNY zlWV8e_}RF(2_!>Xj@N9PFc7Z+Sr!y>0dNMw45lV2kpaSClm{^&P(CDm*&iyR>|fvo z8N8YjN<6cc(wr4LY6=44d}!JfvO=q|2g}52O`D>N&ME++(mrc&U|I>)k!#znFij^l zz;2c&KXM8bYQ*6F)8=~#s@>A#gv_ln>QXs{EhN$Hx+UTz5rCs+cc(aj$zMkE+$dAV z7o(K*h3LweHPq!)j^UeIr#<1JG=_{Yk_hjw(Flc;-U0LNb{8*%$;=e& zdJP*wGmHS+Q+T|ai%FJSB`yP*#PIpTt;}gt(j_C2CsQ9fRyh*LbHkjEgHCMJ&A1qC zFu$>Vq6QXvjFMi)75WB~FEM46MwFKf2_@amIo0HRku_k8nCU=Sv;3j$PuZW7vNp1; zt6eFT5(q-_?&Arm^2Uy593tu@VzYd6CX z=iO7UwE+n8aj00fAEi}1hySI2X2y%)F>3Qv(0TztQIj0u2z}yu_feWZ^Rd#J+BCwU zWg_z5#%*^NIq@Ya1e$iBj38qi21IbIKeQ=7Sec3A!iinsnttQ@LHh3+j+q%*KM_nS zxk|)4A>C$lQ*fJ8)C1umr{m_HTjvnS#xAjT8p}cwAUE-!y=T>=EgdQXDo+tDQ>|E9 zCb!fHe`?O)xi=Tz&AC5&oE?+K-|OLp7)JJvJtZyV2$y>}_1vUG8Q^UKj02}zJEw*}ze@41Wg20HSZ zp_1`DG)lO@FOlAGRdG%u=Ho$2nRFuLoxgcH4FPNG78$M;RSr~Isjg<5GQqucy5n8W zZJwNF4rh^zTrzc^4|EolD27{}=TmK4*JTKT3fKiK&T;Q-5CnTy- zkEdcTT<~P921;Fk-44Sh4bt+RZ6$l6U(UBB|*DIQ4M z554o*Ku)QuTw8*xH8z|9Cyjdp`F=jqEp4l11grV@cBOk!)EH)e-;kLdiqqbZILHlO>jI6?4*$|Eq5#W?;C^-8Op49!B=1|4;gam zS3^l*JSWP10TsIvhnHC1I+$-bFX^8Fbfs596VbDSeTlO;e?lB83*?#{Hin~Nzcb9s z#BFJw&K0JN%30hTPNTKMS+0-ff)yOQL)mWc5}EJE?)l!KS^DuRFm7{0f3^CDl4o73 z(jyHv2c~iy!>|wmt58M^?AwCNi%3~HG|Dpl)(pEJP$Q+z6Smtb zVg?8EykR~L8;soA1^ktq-Y}f7K=U`W8SG3_m4yQRIMQ_(6TeHgF$kWaEfps`<4A-gj#QA#Ai00&Z;wSf9-(;hvP0pS#&nqCnAu7}G<3Mn{K{!Z;U3s`dd za4JuCjQ)wY-+ z6GJ5`Uso)LFw@vpZI+{X6~`r7X?LJa-^9*xQus(Bi{O8^C~6$U<%JGfh>!#H#!Ykq z-C_D<-6lZxluLM?)G$>Vi@eeT#!r*iSm~ZKHVd)da7%szc17W8*BUwsT{tBzJK3)b zRFp#&>&{udgs&EVfCzOAePq5qTkbE&IC zzuHR#qc6bPF{ht5dgKKK;h2>30$}Q8rfg6|?j%=IAHp6)rmz%_WlmiGQiHisI3}$t? zgbH1doNhVmmx7gtBIe|V@6J8HYo z@E1R#rn;~}bfOa-UDe$=_+LhQXB?S#d z+#wG>NteMt8PCb^ok@5){yd_;|8PwsblgYbJ-Lfo=CpF76}%KehJzIc3tbp>Cj{32 zBQXpOH-@E5b7svBa{p+v#KaM84S4d@rs$2={Tjm`;Vf_(^xK1{WLSUF3MSHe!C z`Io1rgef1gUuUvm&a-;DuVC*`&AR*0k~$HM6bkJ%ECuHWG4d;n_VDN@#Q+KC82^GZ zZL$D4juec`N(yI)XY`cPxh( zO6pQ(%#~2&HHkv6VZNGgW^3KGPc3q;LC#-H3f>k{Hg}_ZX zSC`p%WXEIXJNv(>nC5{e{VtSD)d@+TRS`etD&V)P^U9a4S|8BuoL}pmNMj;sL-%kbX}sUqrYe!f`E~}f%ORbdhE_EahOgXmgromyP%NYMVAMSw91z??BS0~y zDpku_9&7kYD^Bk29J})e904s^j8-0a#=ksOexx6guvEfuf5VyWh{vau_CxUyu4*hW?#3ax~nT>qQEwde(*ntN^lZJr#v4#4KSLu+#}E;D*Lldk)1 z|6a51mafL(VFiEDLqiro8H#{kd*1mC`?%We>bI7F93z2@9PAg~^2+lONvWh#tP!q@ z{q#B*;KaHdYtwE*ZjevaYXg~^`*zx*Do`bmPnsKa*lT{4E7JXn{e2=8Y>P?b%{aD| ze?=RaZVj@-`fm5GR^d`vjvpn#l*tb~;^*lJL9Fp}l{d--UJ`7H?CM!8eTYOuLsJn; z=*cO~&PFCI(nE3^@r4+_3?2Urjh1O%QCAd!^$E5g^Hs+Q&ux==C1=Z3dYh3uXH4gQ z^xje~rG4oPUFBE)%ROCa+tKmS+yO$%v>Lesz&w}!SjxzjA2r((r2 zw}+818_Ft<^VPy*K|n&x3ETlUiO3iWVfH=dT7811uTJHKx(|tEz)!*UsG47Qeh({~ z2sVilMpJ0)n4W=xTdj~dri$rAAg`2hySIEA1h}%^y5fE*$pX0A;{JK}!7AC4fxNB` zcJbOzqunXaxd_E|OzrG9bSrtUekHt74Decm5kY}+g!$xy893bx=P!9`2&bW-c**2R z%T*^_WhzqO%DlcC>_%66JpZ!hc3!I3eOmYs+j_{fkA*}JPm0_(gGR|e$e3ARv)CO5 z`YAeXlt#=@)|tP((-^6WdSo2^G=I)m%9}c@>My`9quQ&K=jcnNa+aMjI2A97C)m(h z5w+JGGPDWZqf;5fU-$R%`~~j~7jnhM_;trY7&+Kvb$gPGwXvJpm0||_~_{Ll;`gBwg z26M`e@D($i;D1$?Lj$Rs!xZ{v?6X+=(I@CWv7^EY`ryg1IZ~p;%S&1ZJW7`HqUPk{ z1j|u#DG}Hz012Iu1Hu;^9E`Z6HZnUs(kpRK3F^jlGKilG5yqHj%ym&a%IdbbQ>UVy z#IsI!Q0kh!Vl1d5A6uljGwC<}jgn&R(?giN8g-bGxce*rNW43-#&&}Uu~0kTADUm)m6hEy|kxBW!u45HgI%`n0RJK}vx({VwH$NA#2r&=Vh;a>wP ziJP6&ob;$|6RkYgy~@obBuEBxUSI9zQXH>|{yRWjz64DpvwjOcV6cx;5||7qBg}t> z(Zpo|aDU4kUm{p<)D#?@BBbl9|Bzanq)rrBBk_Af$~3>J@Ofr2Y4x2D zVZ~n7#aHiE^C;g7?}BpExToSlIDleMsEV%K zUzIj>msHU?6<9e>Px&Yhiy@934!@>Hw>S(iVc}*m$dd3Be3PC1|GE2EyxxJp1p0zn z$NdpsCFDzIc|;n6>16+i--bU2_o56$ZHj&WCRcpA; zLVJhWv~S`wW8R($-mhOnhf`n~VM}Iz`2T;d=@*+DZ_P^{_n)JF!3P76$hZJ*xpHCc zDi;Fc>4p3Ee|4iKxb?%uFwiUxL6F1<09+Fx!nh5y%}z6SdIqNSXLzk(I6!A*`6Rb7 zTEFGI=)#9PPY!@3pwFF4hy1Tha*=B^FUTI;xHOove-W*d`|r?<6=G*0!xZ8^a<2`g zr@9$1kp$n$;+r(kNMYwv7D zn?>gpeL`JS6`6lrWn?cUrFVG6jD(y4Fp#7?r`Z+P+w$4J~y`RoYj$JJQL$=$;DhZIUe{= zIU`tB?CDf2qA<_Cvn5Dg{%K_$B3$2ZW%rV!^1~o8wVAIW9NN)6f!mqX^IumKI^k_} ztk3#ZFPknT+~)IFN5bOPC>wZ`-oAu8SRhX55+b=|#jeZR(rciwcz&B|HUEg0-)mQ3 znRFdggIBU>AL`2vbMI$wR8=`$H-c0#`^Ic;^S1kj#2*D#{Mu7XgHU)RHbdC$sJO-Ml9c_og)?0~}&GgoT`V z8SVdwSTNuV7O&*?KIi+Hblb!#-S`NZ@A~tMn8|jre4)Kf$BMnqE~wjh1;#p80niru z$ZQ{$4QGd~sht`@q^!!p-B;GwOy?LCG}wuLxV<1gjBm7%7TGssFf1soC_C41z1nbM z*ywguMYPV!tgu>M`+2vuz)pl_`{K!3ngO<|4jR#pUU=0|abu(@np%=uAKx}M+s(!{ zY8&o`S*o}C@l;{frEq5}1_952xS_{M&XrhX$wbt|RRbbttDcKYcaQVi;T5MW%1XWVZGLi901i}m@zgb_4h?i5?aH7v~>9wVMD@8 zskxoXkFB(kZ(m7G*zp$YUgOM&)L8@Clsw8ZssJttgMeYmrP9^h)YS-YFw(onZ6t#% z%Bm1REghEm^dpSl`@kqUWTeafg&Z~=Yr$7ORtJs@ej;q{*yZ?;Mk8U}I#B;VEPAaK z1H=A79zIiq%-Q-_4Q;~mPg3lNSXFY#`Z4=smQxeFfcarxYbuS^66B^9g@Q>%JMbki zRcN=XnEyR>u+N*vtYw&LDtLCJrIr{_M>Nkx(9asU)K_pJ;{H}ieE22eoyq20NgEP8 z2#k%+M0wU6dS68_9Fjq4=}&h=mh3}+S;Q=$XV`+vCS=voW0oLbUE$0$jU|7)(K2Xs zjlG*7)FZTG1ACdr^KqBgJqj=^R>n``X$c%M5e{RwV+qel9wd&)uX}K0zKu7&Zhu|( z0+t}vYu?Bff8WNH>GL}x%N;vAHo)1-I!|?yG8n}!xfkmb_S9J5jB8KV&bpqPZ5kwA zdMo$3>TmGEwMtNxm8N|j>3+6oTfia zChab9jYDSVj#nWq3ER)dlp7r{C2&OSSFooX$3f$UH8Oyob8uDq7N3Sgq)}m!4zhdd zddL^P8|+`eHiV@j!gY&^nS)9-<;O;};>nO;o%HgS%1^=WB3J?&;v!rJVoe%6n83k> z8*ck^%vm@{h0d?$`_kfh?=hfr={@ev6<}nqc9dS%nr#As{|n8(;~zaJfc3TQp+=Y} zwbS@s?mFz(Pezr`%M&7L+)Z+hT|~vf4*-}4jafqp9`)j%)j+uCX;BVuH>mi(+8K;n zz4tMTbf0yFz}~}9ovEaRa_FRYxVhzU6=KH7>?Z03|5PU1Dv~F9h9I0Uv z?4tylebppQL@@@sES3}2@wU-&Ds6>fVH<=rVqOA2&b0slHlcAZvN811WB0AsT6pk$ zzJ}#T*X^Gr5=P7AxJ{;cq##JgMoX1L5dbV!PY~s3$D(_=rh84wWip02se{aHLegD= zT5tqpPegMm~?{yPPIT;OnYqOCZF zF=v@$v(|}-#~;hDZva*}1Qc9Y;8lTJ1D(XJ}3(BaRay z%+sONRFlM~Q{w>72sKYvf>^BectB&B+ih~W*xFw{NTXi@&;cI~oK2lkl||;*S_#&i z>ksYzz#u_43+Hom2SNSz`Xx;|{~m#g4Zzo`+A!58+Zh!^ibuxB30$Q74(}rRLVW;?C0S? zo3V{`?_#GJ`Cs%zDIGPqznSEyi-VRKiWyPT%YC803a3T2at+B1x_1;cp^pAdDAG5G z5s+G{ogu^Q(}?$1HedZkhd0SOvLg}^q%~5MLJ(nM2_%0SB`jZ8m|jGU?Mt-S;&&uZ zm0}VgBRf)Dw;f+hSO8O*ZD-xv{ZG}0d$Qe0{v#PVCiJ{vY$o9B0LhrgciuTzjBznD z?r-}7Qo3hNKqp%3jhQyw*EN_RPbrb}{sl4y?_)=*`WbFs$ap2CDL{%LsQiGW^H7nz ziKk4J4QnkkVB}&*zNTe8K;3e%`SR`Ehkdmv69w8IPJ#F`2XN9+_hh>0ZmCBI%*T5Z zln=@RLV0?6iquR3Z@+;f`Hd8Hz zGo?Sc|XOA@uqdS{xRpP(EaOo}+vWjm<_taakz+|K7&p6nv6;_1ND9 zz${l#Z{Q>#v3MGkWOG=M{>-qE+VD}?r9_50#diIrPj?t&g$dFXmyZChSm=@?24IaQ zdSC|l?Q=U^@gTAFg)tmnw42y96jkB7C195fhgEU$*WveZH7T3?n8!%?&Efg_kTj88 zCHD7V!1U$do`v|P$GNkByjDa;uuY<@WyH~2?1PzntuMKL_`J=-#{ z_n90p0NVU}^O7ORV&=a#2i%_Gp)s@@Zcpw&rEf%aQJm?xMx)ZLydrED;gri>8e0J; zG^~(OIWIgQIBN&Q7BP=;)*z-lU*#6^?g=?^F^1R19y`+%ztmWqCeq7sGlAtR{)=Ej zTCW@>7k?e?5i>gV@|ffgflC>GmA3cILz#Yq<&D{IkmM+}W9~B_*M%Nw^z{a12C`+g zglq_>(i5z7N2HBPgi8pCnHYD}wxJA8_R@r1fyxrayM&?p=B;+G`2`!g|M9+z7j0cz z^rtS64{q#|Rm=*4gP76VEW#uSTkef?N)gau&LzBTUuSNI?m9gO0kI)hyv5eHd)n;0 z#4oUt)W>E6GGin1o%ay2ACJ}=XDB}CbN`!FY*q-?zWT3edXL0a_GUna?Ra67gEIU* z&>I6AeA@bG<}s4%eL(svBnPXUoF6e}VM==mKTW?H0ydku9Gerk#%-lAzJ zPCiZOYKtx0t1xW+l4ruSBCR!%_UYmt$)ol6pnoliUTk_2o6gk^%o%Lx=;x4G*S*t9 zcJ=um=~1M+_91C9O5-xXlD_k!8EHi9ztrne3?3_~=j^@x%f5@v-yX*82F2f5(YlfX z@1wLey6!-;*I}I!0!0TGf52GpU;Um!AG6Pp>#oaC8XqWY-zhB@)znL_8Nnhp_}@)l3Fs z@+Xc1iVoL`X!UQ*!(TFSwo_mZmed!^KR5zxLSbC%DUnkVZ zRxMXAqkal*P8TMjI!eIqw>rcH+ekPc(8!M#6p3OZEt4}e6#OEoRGi}S>CHBkkaJH< zz9CCsM*H|kg7x`~lEMxTIy-8JeQkDdH10$|nO9JIdh!7d((Xwuri1zM~bfGzJ` zx?>$#!jm}CCLYQ^jHPfzpPGHsk(l#rzW;w#T?0PK`Ou5R$Z!jm;ESPpo~=oaIg8!X z??~TWPLg=JS>ZsM;o5B`Md0cpe|tGjtgrEy>U95e+i5{dJW(X<;Vb`dx z+cAg6aR;ycwTuEFT5`H-^#Y_zQ^P~441ceCi!*SN(X6ktr%c22NgDV|tWFh)DJjrA z7uHR8a$nrYi-o1c#ld$}%6m$eSy`hUi@pE#9NR)#S-e7`l9BdtDt2D^9`&{c8)>&o z(TjLx2CZxL(h9gn zfQ-$w^#Atu35%knUPgatwyY#^Gn}v6i{jF9vz_9Y(kZVPz&I)9UyAZ zZ`b)S;`~#eDGe8cXFwi$OQn@Xz5|tnyOhWLMkDDRfUSjsTfycQ{!&4omDsCuH|y_) z<1{-_)UGBuNjBqC>q_%-Eewac|9oX%F%W+|b+`Y218D z#EHtarPo3W%dN}DBW-!>-+1;aaxzX;;Bhj5P!ix4NzdAbG0{Ik~gkwlfP9BuBG9G1aYx z=h>W^WpGszSVRKLzHfAufuD{2C-^c+i`)gy$j?OjX5*Zlv;82|ttz|CjmlBbB$`m6 z$1diYI~i?%OUrFV6s>vxL*30|T#P?5W%(gS_0#Qu{0Yo3%jfa}>_OIsfUMoCFG+Za zP17qhaZQ+ANX!IKJzUFRlh$fnUudZ0$QWWb-P5Jfs{t@A zLYS`&-OkjJyl8iLMquBgK#@jUSr`TNn*&7H8hz}vlMpaKkBDh zF<^~zY}xt7b*tWIccTuRKi0LvjEDjbowA?ONP{9B2NpW(C+%0lQM0OC6IRRe*QC{B zTmCkunM(|=EwiChlx?FzFSc1=5|>^|aRpi^s-(eVJM~M3pZYJ9GXX_|;|T{``Y+%$ zrVaBLif>nqdug|c8Oko|QO8c-PHtnY+!>nHkf+YmO={xh8}quGn_lWdFwW8MDD#M` z6<_Xl7X5Jvp;HQy=^~%2!=!&MwA_&JIc0kQRVA!G+CNc~}n4A=S@8%(a*U(`r1lU^kPVMAosJM}kg4IJt}ddf_4o<9-8W zNHMM-B>9*B%C^)4f7hHJP(j!*4xTljtZ3>4aQmTAp_A3lD_h8;04ZzLf?gDSoSDOU zDb6ikH#95+jwM|D>Mf@202|)}jpnkw!IL`K^oO9gu7H1(RF>FAI66rB`odBsOzCsA z4*TjgXV})9Q^x3 zU8{ra@a6dxN|(iUIhy92e5qAI0;NPJhe@FBDSeYqA*H7N%gpmjYwyoXes55D{}MzM z^;zS4nK*~8l=I#N+x+~(l}6}%2f~atB`4G-?rGOe+N@5>ANazL3MmLdW5o%3^Qsdz z%YC31527g>o8np-X3rahD}?xoiGP!JoGdshG31ew!H1qxZ~q(RQZB1&7X^9>lB8cEu4q{p zXk5o~*txbTF|R@2&?^_(*Rxh9q2VSjA0iJ8Inr=T!Im5*zfl%M^`o6(Q-ZS9AhlNr zd=xVTpu-?Z;XX&zp;t!*y|HW5tH5FQv~fjAh1l^U4#A@EqHDfT^*_cW(~Vfz4nBp( zUGQF8|0h9ver}V@DTS$_6B?>>IPEJpNRr8Wolly>g@))kMT-aH6F}r?t_0;D4z#su zwBCXo0;q2#MFsTgmn(kfVp2R2`ij?1qkXVgu`~e<~Yn|aGki)>q`4_qxD$HHcoBAybo(JfjDNnGPW!FU|ou2LU zB7(6@!2XkfMXm!`*>lEK?0O#H0n5>pko$=&a^TmCprE2fXh22Y$0CsLqLGc?d3z8Q zcR> z8%^pZc)6NL^aNmovg}#D#y2beEJo!cacZ5DQ@qDCB=o%qDt|$hL0i_;%`cfjwW#=w z6NWmV98C!9e|GqPScS>Yd2%ZUR!z%vPGBEB!?lprtojQ+_hi8%#j2CSnXmp_UlJG zeL`_kp3c zH#SdHY)6%7RX6I;r}*_^;n5p^{)O`=xYeaV(5gx|IQ79^Qj}i0l0Fp~hECQPALQy3 zc43oWvm@}4_PVeSlYkf0LB2%aia2fpF6c%ys`VIfG$68*O5%dyQzCm@y>X${>%Od!L81t z-tceFl@M2O;wj<|2r!YT&6wL%CXX0IJ{1YLhxZC+IrwC?JCJ}`(-U|X1x+Yd`(IjB!8W-1vM1=ejW4|-A!<74wFKG8%6x+zL!TV^{r1UZkwbWnehtG#B;$GUr zXo$?5a(f8(ewH$(`)CHAxHjK0eI59*Fa&KD+`#W&wk`qN(jU?g^{S(kKCo8_%oGb@8tR zm^sEymtsL^IJ<)W>Z}l^s;ITqMXx# z&)i>qN;~=1{E>smGk=mG=1IoG3jOev%#vRV+7E9__5~8Fc!1W&zl^}3(vS(&`5@*=`B}>;L;SClJE8TIICwDtGreA~GXUgZ6 zB;I%L6{QqER9k#11rkxXsL0Dt06a_ubeIVujuS?Qf%q@onKzb|!uU9U5{u^LH7t4CyJmLy&1hupB zRH&pL?tXP7bCY(QgJ@D1mn81)_8}G0j}2Q$0QPEdfs+S6K3x}mkNV>ew>k%TIByv; zKAhx{N^*P?_7yK_EgYGAme^xH&qpU_F1xz$ZU+#ovPuJY(`{pc<@TFbrUTi&h;t>ZoXC23fb#y*=7tfinn+RRwvC<^CE|v}$ zP0KtKXW?3rZ#j`2>ZLPXzl(rhxw|?f%%8~|8Aq-5YRhITu2@&QLaV*of5qHs3ZmU% zAVx3-DuOD=)?v--MS6&`QCX+@s~DK9%>m+CeksRr3PTaeX2;*?I8Pwr8>mruRJXv92Pbs$mi1UDdX^2Y2h6ObZNTjIid>j z&kO0WXFC$_NhN#hTDcLhQcF&pcQ~B?KYFq7RZVioZnH%M>0cv1WB~80g5;)Y=>+Vx zI^*@TV#!6W!wgqGqSe7Aj~Ip-ghipUp&{$+Gwu&@P$Ouwe@PWG9_n}3w_l?VE_=uG z!)@uJoBV~4(uv*yQnXj0&@SInu+3X;Z?sBi3go~osu3Uy^Cv`aF}nY`lOSD#uTv*7 z@74^Jp{%VilrV-B1utLKumaOyP#ytkljjAj4WA{LOMUqC6T6x6Ka3=n+^!iasQD{LFGBJY~+tQz}G@5qJ+Q(=q(Fg%`ojdwc+Z%p0Co3$# z6=dcgiWAiIKDjl3Ew7bR-&76JVC@dR+ca`K z;30V}SGo}x{&`<~8xzX!8>&Od8a{K&LdMlC1#?e^>liSMFrHsTt1jSlx2`#N0l zQHPsUd02j&<>7vhZ}P@K7`CUKj-w;V~wh3 zH?51=hzbg~7dA5Zc?BEdjN=Q9jqB$n$sIYC3+eVcU8=N7i~=yz%fu-XMz z!n4DVrl+&%M`IrjF=3X1i!jCM%_2|4+9=4CmLn*yW&9p|8Dma$m-z|g%?J$LUb@Gh zDAeR0!9LH=o(@+4X~e(^j;4f7kP}~r&|y6+UToZ&wI%h=JxHIk~ zejc=EY*jNXI$Gu3QEX7HnWupvxO<$IJayb58R4E(hg{7a_H;K40kZpsBb+b;h=8i# z;YMvFVKqLW(hbiwE@S9P;<|j33*9sGd2b}W_6z1C02~B-##~uy+^cm?*XoWxRB}zjWgvSwYcu!II;3%`K z8>u40_V{1PcAVN6c17z3=q+>y4s9k7F3{=e%1Q8{sOdsZWZlbNPcphnqF8h3be>4v z2lGa$Qjg0kz%rsPe2{FT1cB z$dK-shn|7Ufqfh16G>8wsoir7`k@6&!6evd9WMp8NH3}HSbHwl4o`{0rnPbj27^Ra zX$BmX`LmE7ds)SJwvq+$_xHqxK75gi-;D?2Kow=F1)*v!>mGNR5)Dm;ZK8v3kcp|) zl?*$G8c0-p&p2Nl-QmHm?g$zIRotkzDU1;6LX8zeq4ym>wOu!?YtY{5Ow@70#X5xY zOVVw#97Q^ciCB&zGxp=~XMO{x(UK_NFvJ7-&76(|(A)t3KLEft>m!7~N5~jS62Jy@ znxOKz!qm2QCIWebhm(5jyQ((W@9*nPoIjb|Enm#Rmn)TyZQ(p*N0?)p@R~+TEIYdb zVk)u^c;;;rxC8X!j-rsfOGWVVh};P|#BBi^Cg1(L0Cn&`8Fgt}Lz#F(AT4Z+_lYa7PT*v%Cz)gDe46%2j;Fxk1`xPY=5G*%qmzhf~`vOcMx zH%i9h4WLt#(sKV9%`pY=ht5-3GK&}Snn;hQKHF&TG4Q3KaGV4iZwK2~hxz+h;y^Bf zsJGO>$l~4$%%ArUd^(4yPyp4t9k)yqecip;vuM}(A18H-<+^N>=%$aUnMU{ps`PIh z`+;ghjAzxJ`@!%1m=(2>o>gN~*V0YlG9bXoElRJ>V!WtEA6Q0Lt`EL*(Gw#2j*4C|rPM2gA0C=ZWdszRAHCb6ND@^Ph zkR&l!4g^Xd)8%6Cs%}U;4NkcdwE!Mxj~sWjxe;uNb_dp%-UXJZ*6YwC|K+C`K@tY3 zfm^)J>B7DiS0R7v^Qe*eRPe_^sR6f30T)DPAl;t72PxEjFWkRYMN#v5Cj&o$2^cpv zNJ*|`z?rfHgld8W_L~WMI&nThT9#nDeI)h9V6?n+9-<8N%swC4bRrK`@2}*z^&NG2 zAUg=<;98`Qv>bA1OuF+Ey#KulyqR@9v<2tm|w(5{ZA^!sL0l5B*b>>nKP@3S87@FKfCa z;eL4aU6$MY$j3b*RV~0D-gvTXJ$a%AYlCrUXx2YV81L77 zXYZU~!u4#t-_o31BOoUVDT>{%lg;K`Uf@z8BiHMYr%kkv=+l4Om5#^)!#PT-EjZ9@ zP&*6Jxb%564x^hM9^gb=n@@XU6)CR*E$N&3EG)aC{R=pOo1XMtjjr?BS4k;4w zR^5aPdg{+%lh9hzL9=kR>HXCx{9|jCIBlwIOueGtvf;D}lme##+L7sa%pX+?9Qp0` z7dVo_A3@)w>{%#OE#UWk#GPs}0-&D;KDN5_&tdMYqaBavX0i%%{0sVf41`(eNJKq^ zp`mY+!vxd-9E|T5iRRx|n)f@&=_H5u^h4n8z|X3TzAA^0*f&%=_{%&|WCoHVeng-j z?(>x{!V{tYuzye#?8ExcFbWJM9TnCl0H6rfm;KDoQ$}&EbLe`biaY?AlH3hQ`A3Z7 zB?do1uF{l;#SBtzSKVYBGK6`re$$U@?-I5A2{-N#S*XElIz zKeo_=Bbv9fW3@duYVsTx`52Ds_&8m9^%1~QCmbx}K0-bDoK@lpU@}PW3m7f})q*D; zrs&%|c;vGL{d|so8CgDBL!2l=_`@4$ou>Y2NH}|E!z?DKxoliXqTYA--98loW3f-A z_F`Z=(e*^SBz06m)5s+ys}GBO_ZH8UDh1)ww>Kza4H$;8?t3hx#oh$Gok)TA^~H_< z_tlwaS<+|gh?iGSw9sJpz%90IpmrAN@kb+QIXqWe2|XN?<46k*tl*X?$af`^$VUyr z-U?^eA5dJA7y(pXa7F|4iYNviS; zPlOXQj}*fpf_9g3d$e6Q&H0po?;;#9&HGsT?TeW6AXGJqHE__h+E7(UsoV;LH@VpC zNJYjQF|{rOJA6%|BrT@}2GVPeftakTv_oKZUN4rMjA!wTnuvdPN#{hB(~KHr-((md*%UpdzXXV4{c zveBMlW)CzE3A?M;DlgP*yzBy^5kFW8kHMN+10CuC;F86&`b;M}-edamR4>5u8BMDv z$S7;P^~4-aznTD0H8j$i9_CzvE}QMjxC9OB?#!uGzdQ;RiGvQvW#T#GGB9@vH)MyK zc`>TxpOt#KxY(-xSWeKkbM!4O45T()%+^wj$VDxMq^h6(@y%{Z`{iOy!UvI+( zmJ`=LT5*2zOV%|M{`_7s8Av@kyYl4aSko-~sqM&6Kx}5xUl)c%hkwTbaE7fBer*Dy^m3DW>Xi2@1T$ zu_mdCs+!oY7cF`&{?Y|3U`%_ZDaj~d5Gd&PV?!(h*;DQ&B9-;4xVOeqZbAW;TW>|` z_zvc9cbs&p9+t$9Z<36^O7evCLjrhV&USTK3neR>v=75;J9R)(w<%xO0cDX<=!Fa# zCGLEN0xTu7N~)W=`u7Tu<8cXrH};cS1~0f7SS z+z%m&hwZX=k|qb3jQBRp^_QBm|eECEj;Mt0;XuH+tau9ZkV`xA0yZ`?Jn zxl9qs*l*?ZTNQ71f?4~^og}`TyPG~KWvrL&W`f}v!R0>$y?+rwm&LDJIG%oHYTLn0PNEfxDuINt8)!&+b~ zzjA=}eLLK|fFa)jlx9+BHq-NQP%JeJ1;HTvS4=b z?5!I5&AOCA8D%`t?tMvbaWK8KA$Zadxs*^`y!2K;-UNe|B|1Jib%V%g0HzXniDsxK zH_&9&rdXryoS`49Mlp5J6?bf9@;Y%XT#w^<1~jW69mchmly_nbdF9)jU<(ZJiLBYT z=E3oGgLnaujNI5FQezThNV=x>Lwk@qn}>d^5z9xH0$@^YU$p0fr0bt6!3HXr+Siv* z-kb(H_9eUf=>IF-bKn*;YhU3bs*jVpkZ|aL@xb~LL~AZgFT>2)7}t`cl8R$ika1V` zA!1I*ZXD`@icQ?SF{4zDJCSA5H@m9sL6OFz8ggvL zUjCpUDU5A)wfHewvwnGPtSo23=x4wBS>0=btfBs^U^I|rR5hf+a0KG+DC9W&%b3K= zQMtIM2Fp39t|mORfY5MfdSJ0*=?s;H4=Al(6d#LVb4$X$>7;faB0f#IgR^4%O@g)(38n6Ch~l`vGovo`ca|9N;mD!5QA_5hL8q<< z5S0y~r(rKNU{Lvul>`q6gUcojU}y#{Hg$e+@mIxZq|!>#P2~*85B5mxtbc zIb1md%$P%lH+N^cixurv_7NmYa>cGIV@>1EH1sjQ$!^&UAkiqCUQ$#;KNbO~%~ca4 z(i?CB=a?(jK!0gK!=X?nU1zWlLbZJqEmjgPbsD zS@kI$jmT-U$szEzY^0^kw+?pLEOkLvh)+(|LfRluFjN@u^Xspksk&d}ZsC-A!hUGa zDV@CX9qLzaY$8wH7KOU+4hqD4$+yx#3C3~eVKg=bA6e)UbN~DaacoC5a0R%d*(bru zUWr|@A>fthJQXci3kSn!u(BxkQlUP*uhoWS426<}c?W`_v0=wp07D=IKdp*HC7Tbk^m5Bkdllg@^IA@X7Xe zw!b{hZq3AvCjCdE!DxXfGU-;MEU8y$Rr^AufL4HrE|<82|Nm;L%tVW&Z)w8?{j~9w zWd7NM0V9GQaY2lb9AT(B{##??X%I+?2cYfxoWU+6sY&C33FS54b2>>!PVv7$G>;et z*bOqhROt4+gj5fgh1|^*VI4l%vg~XZ+-wmReTG>JyM^V+qA?7H*t4EWJleF^l)Gav zpd}*v^12xw)&lYJ5B1=1Hy}uXyR)XB-)H?be-lXUxi@H4=Iu2t$Iwax0BfGAoE`ki zeMS4>E~z?mc2+JgxTIH2q~q4Sz9yt%5G&(Vo%@dxF>7_WpzZq5GaRtq@!0+KeHi#R zHM)=Nxpa-QMM6u6d7{*MhnuVnuWVc8Kr1ND+P;#(1@P-^ZWmXPjkJ-|KH1Un6?)Bz zMR3`S6?fHNJK(tweHd*M5(TrLsTRwr4=MGJ12>9k0DmS@7zYK@+heylMTEe zteQCRIj25jFjb`f9cpNS@9$nhY*8d0Nltvl;BvF6bs00~>5B(Ji7Wcn*21?k`Dzti zg?77LP_sqPFs>py3t;ZuG3VKxt&$3Totn#rLbnpj-0tj!m_*+9?ul%_iVuKq^EC7J z*xV`GQ=9y@5jJaC7jSd_w{ztd(IfYr-5_XH*FpH8R#cq@xcLR-4JvdIP+I$<`7JLT zi6ite-6qKkVlmi!V%S|2CQq$2Mk|6?ok^SDN1{n zBh_p8B^vD3#_0`Q0Uj1`6jfMDyRAG%Ldn63x%z5SoKg*#h$IXGN&hF zdXxrJchgzB^l&cIiA9dM*>TSA61wq`JSJ3x4LxN0D5&kiCxFXRv>ohPA`mET%c-Ke z_$c8Zf%oA)T5FF(8#Ze>^9kB`wlE^45`C)%No~C+E!gpQnqyr~ax?J*yzgTm9mw<~qrO}exox%iT#<*1X?o78EP8smxS43?1b=9G3YiZT6VYH0IF8nUj47QmpThd*t z+scs*o%BEda0Wy;gL2?l1OjCfEYl06S<-DrOl4H+{PECTR=@!uE0@UwppZj0X*Jqq`>-C z<3MW7oX%=C*qOdNX{znH+vj3A=DZE4wX?m+2NhuAKC*Fn4Sc92t|CIw{7wTn{NE8b z>I+8zbeF8s9(B8V>4C!n*$buK@JkTpL^?mspcvH`C>}tP7Bd>H_+1KRD%7SMHP{yt zzb5n*>$p>I%a(yQda<+B%e#-4{f&aM+QJzy5P$d%|0%ybB_fzbg3B6Au8`r~@`m<0 z|Fut3CAb3(3mC7gd}g^xfS;w)-O~E>x&&5(iEiaMA0>8soCqg$jv%5dVrz3lf#|3Y zLwZl;b~L^A543%`JeOVP4YLvW9FM;u{isH}`;u;kl29WBeZX|5bpBMK61K><;z*ap z9OS)!y0>O7g`ux2x>-Hx?1a>bJFW>rAlH>)&kJy{!s1V9L@Cs-JYXVDCq#zrJ18S zlTW#$A!BsBqP_MtRPPy=dVWsq`KWJMeb9!(y_-soH zOF`v4z;o7c%KoDy=*>~xcX*+>*HxQARaJV^23oy_A)bE;ITm&a2#F%@iz8z4PJ|+F zm7%?I^FBor?V6nU^NK8IfZOT2RM^bm;nTP-_KVu4tcWGJY|E-H*t@Q&5JDg9vV6nT zTh!uwhSd)9(|R#UGI%4Mc;umGHz+_}xNfpkn5MoWxo61KO#}B$hpn^97{)#*PBKN< z!zjO`tYcY)Cu52SvcwF1B~FYY?qJ4h%d%qzxxRyc#}gm*7vFV;rl86bA9s*bOBrBs zp&ra;yP}{%@NpOj=AAZVN2(WJbqwDQTGavkPYTi{nzay-C3q_dQZAeps85<@lCo3ZU)^!K-Bo$wWx8-z4+?wO5PO%DveS!$QDGJCZUP`nP!38M1wd2}8PCJmIt zj0X4A1ATZRRj;_vADnzP`W{Q@dNL(fOgJ@XJgW%}cGy1JLZ;TV_`pyz6Kh3)#8_8grNht z5j^~Z`ud7<5i%#ZS^oB%sh-`J@DwVRINChjb(K$&twMsZumXW;u$vQ)-BU+=w+ctn zmvmTmop4NTtD4CcrO&?IW!T%lM((Xfvctb^L9|Z?3|m4*#=zST}*TrZ)48T-|AlN3vx#e2im*4PKnP- z>bae3Eb*MLi~G7e*{RGmS*j1vyQ#?nad(eF!hw{}8ssUQG!10A+=Hgh4wYehj)w-b zQ!oiMwGxBJD)P`GR;h4l%cAGV^E|mQl;smAwm}AxNg`>yf3wahcw7f7if`}kIjvR9 zktLlbvIl7r=WeG?JipE4e%(FE!RkBCGT?cR${vikX1FnxxO1o)_G5f?X^oT#CpP1G0nWLzuso>>_AAJ>24 zz4NwmA7=<2+hH8Qhe{jZ#52nAZHVYLy|NL#A*Rpp_P1J z=iEs33C%4U`$YACzG&)&Ex%aJersy-JAK~YLGrG>tc~TG>_CdoFrHDHn!!4ruv8*4 z0@`n|`ED!Q54c2ENTYe4z|)6lEi6LbfRr7!!w4$ugR|IB1M(OpGU`2Xniu;p=&hJ{ z2f3qc2gUT7KEa70=>+zuyYk)&G?>L_X~@`b>1=fTX(pR$PKM(sCb;jRM%$ZRW5)CNF>sxxq5jh5>-#yA11ll@55Yck77=q zZuz@~zhbX+Jwk^2U0i#I0QL&!zO`~F#WsRF~RB=(RCXPZ#!4tV<0`4bO~CV-qZoMQxsj{PqL@ldXS2rfp>q+ z5(n^#J*_Fu1%6LP%cR9)r4}D+7gE9i0ayfdR$Wn9d`f&e{z zQ~x!Ve}J{(N?_aQJ@snZFUx0&Q`vZk>}=eUDZk<~;asnC90*{lq2R)Y&Lzj?=Tgzk zE=q3H?mX3~{d0-SZS2^bam8@XXRsWnjSWAg(k?mWlwg+zo(kkg`X-b1F+5j$tsEEM zGOr$m(diox=pzbGynH|FGRz$w`HS*~K$Sra(Lh@$<@F5k`+jM#ma?YfqBQJESY|2m zjO;dVwK_{oOB{T~3j{mJ*Ov;AbkMRp-8gEww!P;gZKhRCL)HME zp2D=-Y|J7@3AIh`3|FukDuiuMdP@p*Ylh)U%LK+sRrwN{961fq%&yHkL(WJ(p~_bK z0lovAC*BUEq^pW0b&Q;J_xE`cwv4+kJ%32@yE)NX{@=t6*i>``G?ArK)6b}HJ!*5X zI5x zs>$jiFitUrvQ&yLJtb!F4Ur&i<7ZY8ktbndpMhU#mWKBVA1^{lj;hJw;yfgHtjwwT z+yi7B2O`uDW~dSF0ju}8WEG~4y`6|tLVqZ zwqci|?4{R#dFlFLMq>kR#@LE=V6$!awAHfe3P^Ji53>hxvvpvY`fE08a}c`&y9HXR z1a!i1Dht#K3nT&C!LgPD?%11%_o_&@RKXcEsRs5n<{rc7IgFr)x-QRXWc#yCPAT-V zwB+|LY!UY()q=6Mn6b%y=Fp^Y9YT2UHGyB>@7lxwc<~&m&JpJl%P(0wm)Qx_^lJISeUuk6?%@ zG1mE>WnHSnIU%oT&>bBubZF!q?5b#yVPQA=1TXNAj4m8g|Md`=XoTgV-tx1BNAws1 zKel=Go?Ws}c*bLeG&G`?iW!X8+@ITHtZ>J?qG+>ASIG)LSlfs#7yjAS0&oH=ff&WuE7VlCQcK})vdsLbwZ1nl{Iq{JOSzRe zIi&e=Au4U>STE&36!4y+9)EHPh(22?!F@Che6~TKb)B*HDUmwtnKSx@i?N!%tXK7| z#L|Q?T1=2|IjTfFn3AoK>@Pqf*fXE$wEgKDEKRv0sc-KR;C|H zFvz63DPP=sX77t|6rGrHhUC0|doR74aNOa(xjjrIGVD;C3&5?Ux=+G%dg}4z_b)%h z?YXWIfQez~>KQ+Eq)nf)bXb*pZEiO7=^OU)%<~ufh}<{2;9T zPFR_aN8nLZi~^A7bU8;@s~7=Xbnf>-Ej}V!aSCq(JX9YEz0O|{z&mA zqyKs>rRu`huc^DtEIX_L;;cB z4-8V8OSZ<6p;ag6HEB8>bjXmiQnKA2hDN!Sl-+hrhq}vL^6`s~5EvhRuwrT5TA;P> z7db;K_e``&PnYsCn_&RlIN+jlEI|1!ag5E>;d0^7-7q?8*k>`#j!D#Q*oVnKG89JcrE2)TKNGA53TZNbt;SgqdFw{;apm$~E`TMBwuU`Q`azZa&ck!T zN_X67&__}##T5qs^~iSYLLshM7rvZ~)v*eyJ(Mmv*Ssfj z^$CTj&uL&uMhl^w3gLi;CR@#33Nx}Y)(!ZV&}FiC^polN?AvCDwW{%pBJ@XL9*yJ~ zn^7(b9&K1qeNtzE*^5g=TYH|VZ-eX9uDx{DH~JEhm;K+aAcIiNrAa`gB9R;9a9~ix z_SVRGLiGwgF%RS6$Td4mNiZ_Bq7f6#C>?kJTt=~9fnEf?vu}o}oyzaQG$x~p?uILF zCOz)!*{<@dhdnYS8-4BwFoNu$dDk#Q!aA>7gJ<9nx0kgFM5tGhU5e#~Lbi{173V9F zgP!2o$+6~BZnQl&og>exNPVf*JHfCuqGh$KzsQ+yheNwDkvZ=qdcm_DIR1oe_f`JeQ!{SpmLQnTS{=MF@9r)rqf*C1Let7nr>24?|I z>G0Dwlmbl%O(Thp>9n^zLT!*9Y*8*kJCGYb4XC(f=ko|hi;RuAXA@x{+9a0dNEKu@ zU@gB+<^Dk(C#|RSpjaY!c$mPk9O@nOP)gCzyXqgF8UcETZ7k_Ul!HB-5=8?%8j`*` zTUXCYyY!|nHdhPp)hwdC1SOQr>MkOeOU@+{j?&J>&jr$nuv-wzl6{@@Y>rPRh?UHo z6^v<^>P5ut7QSc1UxF=s6M6l1ui7w;NNTi1E)KfeplR&noOsSLJrrPa_Bou*L`}Q9 zHQlSqa(-@1Ua&fHXd%6_S64kE>VCLKnqr{rC&luM8t%^lJIeO06*7yC>nmYZ?jb8z zdL^DGE{dkaZjpq=L>x0>w$Z;+wY(b;pZ-K1AcCF?K23HljWTob*CnD@RngtQ4n;aj zT!FpUz~(QKVWxI+XhB2O6l>`HQgJDxMM3aa*QPgkdx0L@u#u7(PXkYxoHSdc!Jd%I zp+M0BV$gAm-rDlWDAxrwV$el2>)&MmaQ7GMe*I(%s$iep@*szJ>c&BNq1v4zBfR&z zhh47pDc-PjLT`C2@CbXd#T-Du;Tj(UuR`j?Ch#cnt4Q>aJ^at&W76x&B-WV9G*w;@ zdjHgxlqb)2fPgNW2{e=w9u_$jD6eL@iDbJ%JLon^hZ({7?lt0LWJcWqR4ld;uI!+= zGJZMXZ&)Bi{is2eyDca_$+70CxKi_x7qI zr#}xy?|Gj%Uz9P{fczm~DF2v1&=bfAj?!nnT5*or0V-j6G+Rf^26@6(@b7VzU=BbG z56_w=Pn@(N7ZA?24*w2;&8*CRop~H zed6|4_xXB7NRw9qXAsh&dhA*}{|2;DV|9&TRGzT6%t)FfRA`Nk$}Ws=&B%;aZf1XL zx3+;umFeAzp5d!)GcDL(FV|N5>;b}M;J@VTQJ#k(5$Tm28t7qIp}otK_aq?4+f@C} zbtwP8w#K#8r&HNUfKt)K2bZ>m)+Qq(CclffCnYi&B2vXd0S3kw7NdSbV+{@zv5~|! zkaRwzEB;Z?7&m@NEj7`g^R^ao(*Q1~Oz5{&WybDF3r4FN>z&h_&V$;FS`(KT>D1>P z7VfFxOxu_CIKk(aSO@vm4y*ULGW$r#M{a3_VC7+F@R~ zUoh1YEyPSGQ;^?P%U{@+E$ao@7y?sve1wl|3ldOLAG?tq=wU|drA&m zL)luW6sfY3L+i>Iob3EK^p$pMaS9g?!?UB)g55AL0zs^!XVnSYR#!JQ-D}TcYO}3i z8#=gWveUq3V=&aR#tBR|^k1|hUD8?H88PDi$dsRC?T7WoM(lX=bLyWXOHo+T=boK27q?4)aCQFN z#OK&+n`9mv+-w#fhRBw6Je(7r;g-2a&LVxzG^5#~x`@y!shsoZhwuAk-L592(AuYa z^|;C`#ETqJPa0CG=tBi&DH(*wv0dzuEIKR%4J)(tT)k*%UPjf}h}W-3C-L*u79FlT znSy41o3Ba6oESx!Z@6C%iF-vk11^H`S!H`MbFx@UfnZhRPGq9qf7y0rf7-8C+|U|z ztcJVw8E=Jaj38S}?Ziy2M&?XTdGx^kCJ1{y) z=jc;RLkm|Ls;|l4R{%??Ur7yRJ-v*n1BVXhAFoKqLlm!%3y#7l7QIm-+tW{W=SelQ-nPh;!LDFnzmhk zMX(AJqPvT@v8S!Z19{Wka)HD{O7aurXt4@NAgyIqD&S}HIG?%?6Y5HWSfWl2 z71YuDl{#L}OF9eJyK$q1eoHI@`XFvWZh+=bgoC-^RCt9^0epeOuj(<>{m2m~Cxg(V z`KEw;uA!}Gw7X!ujPRLn+PwW*l#%w@XfEyinQw%4cpC{A?LRyU{;%`Q<5} zj)hMZ+QtL)Yu6sEOciKzOv6>?R#?maGvC^e1lWebQ;*C6PRoglS~_oj?@!z}Yk~mc zK}7v=e1ZUXf_Q}6h-UU%m=Xd^6ab1<4C9N0l$je7^XC4_-9~YZREYQJ zLSC@Sa6c5W*Kqml)JGHEB@Sq8G1sOBK-GaGuN79|X=y*Oho3Qp0(qlHTqnpck1R8> znnv3k0cvkcQ)dyiG1p|#Pn#65#H-v2!^4knr9B+mIcJ~&^<79gUt1A+6aS97zPap{v@ zE&iWu7)McM@56Rr=aP=?5rGF)Ey8C4NeWXTC+9UNOAVI;g|D_FdYk;zei$F(R;5!= zL|b1qaAm|1od|`AQXXWm#og|hCEAYHqBbAe00Y`mE-T`?B9{Rg&?$0?VAh%tedMVv z9_v5*Ra5;t(1GkqH+sXY{5J?x&K4?b!3~z1-u?=73PYla4Tiz`u5|EV5?^)S^BO052RiKULh( zHmApjk>ngoq*_9yQ6rDM;Axz0YcUbDByfx=Tfn=_;vHylD=S|{gdA9iew!G}+qZY# z;554(+EQ}y1GQp*l-PuUFtKX0c0jGdXMv`E1w%l4o@FGVR+d0e$Y`A3$)uB-^_?ND zCVowFZ@-%}H^ejVg+u%<6}Y<{gp4_zpt1@O>)VNhfRhmdB<{Uk(bu!?-?T%8b)O~4 z6H2ENIR|KLuwI`R?LtTG-D!`(J(J}D1msBJ2nD#>3t11c?mC-?b0q4_htYjzQMiBI z47{ulPdLE1g^?gIP&i53EHx@`+XV!0wvCso${h#(-Wj?WXYf|2eLMa}5b8Ko(sLJ~ z!QmyYEGPDv^dY`K47-mp0NJ{Gxrp@6!+BQ)HRZO}#_yKR0Qes39HCTtE=1(XF2@rq zNhgVqr39^+#i(VK&Uo>W=1xL`vJCO0QFL#pswBoH7P$`^qsa&lh#QBS4|YSG%Ct5I zM$`3&j>RRg;Nk{;A$&3+mC+o}#xb%Ft06azr+q5;+*BGKMZv63c4DI zP5_H3O#4Il&+QsSNW_}?MGY3wa>@O8oDa?+~*_6y$O6`O}?&22=$86W;jxg}4jt0Qlxc?RX>MqT{Gsj_Mg_5vg3 z9zsj|qeRz|H7A_pzpU-j_dEL%3c;tDn%9c8Qk05As=JilYqj<8*f#F*dd0)v;_7A- zZ}kHqJBE8Z6k>GhoIUZ6qe?osom9Keu9^P0j%9=HIX%I>aioVh)#7j(lC`?6FN)0O z=}y5`gyuj{dF-t@E#b|Wyxo&L8>PrU#;Rl1@mzHsazOj{vA2v@5qy^nj7yw17c34L z_1!Lgz^c-hTO}Cvs(pzWQAw`5O8bOEAJE#?a8wVzi)O(6cUhzyKBA&+TnSMGKxp+~ z7{!udY|n#FxmKSvEA*=*&p*kFIw#QgVg!%cI(Y5v9q7{YT%UIk0-wXFP&tZ>wu{7; z>S8@e%q#xBhrH2oj#zj;dCxKIEbzZVoY52)DsmqRbU~I(#A~>bco!8keorkM0=6m>LAw4s^C2voo`XZna|f#SUF5A;=9~`Z;p133we%247xj#%2eg+hc%u{nz_&eKn-ZuLL?rWIfi<48D1lXO7w4ez{_%hfdPdG_&@d#%BBxSfY5P$kGn$j)gEqzkn1C(u_>t; z!e)zz1;(TdomoXCQW| z*rYR3n&C`?Y4bI=;Rs^^o#JpSWC?m#8Pvu5H9~Tp|4Ts8paQG@2HqiDX&V`1NKq9KmHOG#Im2)V({Re$Wjl z9Fd?Anc2B;QgZ@E9bTqQrgQ&`)d?Nub=+2C;_I57gIORu|L4>9>%Z{ie)7}HqorgK ztHV^YwFLpcNXfu}a?d9Z;LCsm1lzZg{y!~5Og^44NS_>?^U;F`{`j#1`Zj0D%tCU0`WFlMqCYr;g!F=^moOpBEbNxO>Y7#Gk#-r zT}fZd(>c5Sy3ST@1R~+b^(E!^T$Bmk)~+EsfH4BMY#ibfr>KW9XwKT!D*N2QIAuSo zL(Iqw5C^cXD3kFh=JTHnC7~uvYo7&675m8%ppJZg$!O}?NswxuOcD79`Dm1&4#C~b z0)IK@GvQY@p0n>L{-KCP8kMo9ARK{E()gee_M8<%D$?H_rMd3RItzrDC<6zhOINSZDv2v02RPPdLL=R3hz*m^9r=&P5} zcCd%rY8|K!sW&76$bI?|vcs26s9wUUT+WyjrOetNZ*kcBR1qXLqO_XB zjfEv1tS!|reN+=pb=yJ~$%S`@_TZBtbRG+p-l$~_CL@3(!evpcCzXz{!>w?_V0i?5 z&Lyq-30+{oFU$=Z(imNe5j^NAIW0CbxRW8+ptk9cXE{8tOLF2w3ev}yLK zPhytccR-{xEiFsrfa4}BP-73aG3>rM4EQ3rTIMO|tzParr6%7ZnT~)N$Y)Jujdk$0 zk;wF@`>SIkiU$KiTYlSrwiQQ)^@(nrRKzKa1u0O%0!Pbs$+;oIe~i5bYST0#=Jvv? z>MBL8fgZ0*q%yyvV}d?}lvIfBs@*APfQ3*)K!JYSeHPG1i^RK<8QiFwk2%&hpK;}H znnXc*oDb`01rDv4J#0(*F`>yQNOY$qy6oIDZ4={5Jc;@eApm52Y$>k6Y z!4m>u1u168>zPW3@2CRTcr;24S>MS7ivk2huxnXNF)Q zB{KiN3#-7f`ES;e=M`MGI!f17M6U>;m8{!SP@?RI;WC`{fT?#BQz$Yq(*Ca01cR`Z zfK9L~9MOi~C8*aEgX%~cb_|VO+Q+P}l_3LRJ2Z6t%NY=!^P4%&S@Apc62WT&eqhx> zn{@SudxUNj77e+iCe0;ctMP^xaCy04Fbp}h@`a*_BxD~@OCQnRa-n+d8*02RJ%I-Y zNz&$;IYeHl8rTb4II#ul>eh={ydx};Ui$squH{FjWiM;zimpX+?A~M?)n?c{fKFvY zTz2ao>pl+Okh|AGRe%CG8_9V+h zG2#K3?Cw37)3uzB2G^?TgKsXnQ>;ouRzykA77}Y76ku#v6LAd*z_&NDh|<+tUc1QC zvUR+He3ZU_>5H<}UqWup)bc#elbI{*W2V;aov4}!P2f6lPQhmQv?ZQnEs*rmBg}5e z>~+!2PG*pKV5zb)z)Q?=J%kC}#@(8A%T|EdkC5btwT-!e0P^886yLQqh@~zZPpDx; zf7}*O8?L}tZ*ZXI58hbq^Ez9_evUgld$#0VMf_pHI2OonGM{g^-zD$YU%tCAxgu>Z z@3my-p>vXM1{%ix%Fbh3s!8-%7jvNYza1D*zmr?v^6fuhPIPAeXYVjkQ`v5jE!qD5crqy{`3j?YQ-`KfF=A=!{QJ+F$t`dkFy|ALd~xdXE0p}DjuoGz*wdSSu! zm?S09N#EcpYW`xaJP~}#{m!lZ0$V-p(wDmnKQ9G$L`#Ovp$C!G}!3 zEszA5@YqvlbM+-|;Me6sH0SNNFP?&JVs^ssEk2>`-$-A3O-HxvAib`Z%#QYk&dwJ` z%Kzxymg-tyHeXFcDZGX<2PK#qK8*>q2H*Mmuh3<|#-sXLK$xGbPO!P$U|PI=?uo3I0-+z}N94YTTrZlE!kLs}l^Jic8p#U$@BMZ|LAm|>IN(5P z$Ei>ep(G2)4_A&}y*GYd+BrLD8Hv*NqXQ(p{{UX$I}8aqH1HgOA_h}SU0PX*SZwQL z`sEL%Qf)TY{m_e^`x9RSPY}vZ?a)leaKZYA-V02&v{lqnm7jlx`o@M7eVd05(^%E% zW#{v;!+`IdSuUObpt(req9OAB#BXpG3f_`B+d<5^0P3~0%`N}O-@-oee7>0r#vUS5 z4{NpFT+f_tEw9NndokXTk80|H`x3JP)@RC#(LG=@3BGfO;i$Q8oMfz(jFpD zij{;A^Ah2iCj8RUKnjovqtvkdEzqf;hDkg5npnv$Y!^GxNP+*%ocgfU3q+i4^(lKzqP&&t_T!ocEJ8BDARv*^U)+R zJ4^9+%T`XWWm?XB|0?ttHxGrG_!)A@GqWq#0G0U7s^E{fk#(r%SFIyp1Xpx;(v{{% zip0`kH!`w^CstB6)BH1>efOP|>!N>fPbkwVOfK-l zcrqImKuTiyF$y#bX(z8~c0{`*e=lX~ag?V}FMIR40WubxBHe+N>y&PWvA>TBsuf6| zu=ohy@FAYEWz)_K&Jep1OG}A^@MLd+U>jC}O79yTGV1K3^QqsxF`ZrX?BC@TtFoBA z2M=;!?7YmK(g%r+@USvs^Ahz8o!Y*iGn25geqjz;HU|htU3i9cBYqk;*S6-FQ(Dw4 zVJ(F*E0sYCYGthvI{Ii)ahPfqqOej|;GW`342oe__v4Fgyf{-};;bJikwuMJWSHJ#0VPRvAoi)eBDxJZ)VQZ(w_ zpN?Zf_{MK9mkggY2xt)T=$$JD1wcWkuQYSM4w?taOb6sWc`JphMJGD`JES#Pw$z$N z2rsdG!k#RWzP3-TxptOeK9dAN2z{ye>-w6O8Ah_zJnWCSq2HIkgR&jE<4*414%gdI zNL3zRCgmv&bu(2^ZHa)4eLsGIuIHrH-uVUl;LrmiWd%q|_-n|&shNKb0S)YQ>@0;# zl_9<#8E{3*rwk>0CG%>jvW*ozCG=bQ4f#Mas1g&06vXjgf9=Wh={jhRve$HV($7z= z$Ab#Go-t@E+4#kVRR93|#Y)`#@|>EY=vL#csN}Vy$2V|V3G%ps|5HTuzV^RQ@qv<4Awc1gyz9-KI3BjbrJ*@kU37NrTkONxP% zaBYhGfyJ9&rqeA#0!u{OEc@~}D4^?D<@wtFZ^g`8QiFNdPg6uPI|5%DM4of4dn?Pm zqQwA6LQG7mjn^!ME=#N4;x_J zFn#fQkpl{FGq6o&ZUR;5E9I<2k|)-1L5O*(?Sq%x?)S2`#h?ZBb7#j$!X) zmKAUic46Sh=#@zgm8Tq%PRGRWYyg1*Ixo7t-#%GJT#YiUH-v;^I>a$ieYXKhI&305 zKz6_S?aI2nf>h*HUIQQ;kpjSuV}6;5GM|!`&pn_GgOY5HH~z<$SzpjoERNiHc%+*? zc!?88GA9ck?=xw>X*-VF2_nR?e1*p{i9ao`0Zoswuh=|zD-E9NmC^@$8}FsZCmX0F zIEuJW^5oZwV7N2ELF^g^f$)&~frh!RXP)7{cDJ=L_a6+iZpYr>xR?s9j7F4xHVXNOlk*Mc4wf|T@ zBsTI1O(#zJn836+Y%>q(#M1aUh{iVpYdCrU`YETZcYv~hW&P#Dv62cZD(aEpTI9^i zysL!O7|q_9;=g-vz~kEVK|m=KVsnIANJdy5rasyX@42558n;Oc=O{gkC{vZc8pyhE?sGTt!Fi?$wl$pqoD-N4 zE2!%rSF~~0^Ma(jg}@lQYOF}3{@BjckOL-p2R6}a4&uw~csVLlFg&KK+u;pB-YnJX zA9U0OT${anRbsn!>1z1M?re}c8H3Npgc4kTW?p|YObKaYBfa&!dRwp{G5u77Dm1oK zHSx3)A9Xq7*x%lOj5-0;o(zF~{l!T+jfgboMqje}&X&r!+z(Xixc~}#qzgHyAyu=n z29h(H<`u`X@)klxub+(RR-P&1-Z3v{5!ZmG~#YI7EidXio&V5LLJf(_K~mHGi}@f2OakEZxhVAXKoWQAV7(4a}j` z11588!`r!wyCevFSLwaHzUqdsqh;NLRo64VS;d*J<>jb&#N>JvgTT5i_$$2rh6kzh z&4l1;H_{;uO``h^Yum7vV%@siivjA~agh6o>K{I>KY1Zk%s9$oqoGR?cvQrKpE77n z)Tq(1s{Fd1@IuHFecR$euR!t!a7pa0^W>ixzr=C?Fr<&y@;eKJzPR=Gb zwmfr$VAPu@->V-jaTrfb&@G2PZ^fDX?h`tU5l(IRJ@Bi)mH_o}M*|-kOg;hzH&Z65 zY%Xy9!I|W95{7iW*+8ptE6wD=ko!SN8YXH?JAw=iYZw-XwIbOs?O+b^C?&e9PYgAY zCaV4d=n_5*M6m!Im`zaj_3}t0&xC(R^c|YhA zpywL0dufBetLDQAawh8EebfCL;$R(%7HJwWGS$D@3aJZf$>Q_P$BP#JptB)W#o(@@ViRxwOXj>b1HN{=B{Pj(S3>vv%?HtpX>T!+78eGvTVuYddrG#Jpy+%M zvy;<)O$3#N;5~FbMU~pcO<2N@sXb&6Nh%`oRr_Sr0u?-KqMs#_>sDK24%jQQ?Z&Cw zNmhL&isKzlEfDh+R{6v7Ca${*&NSb*zy`H-*EoL~WCc#wPmNS{%oA?L-3 z97Ty!IxcEG^R?!EsDz%#R`FaohjhZN{|$BSk0t*H8zgbC&mLInPi}3zPhcYOptBYs zl5Bar86Z6{v8SOas7*guL1)Sz7oMC3Iv0%A7>$ zaeRF%5&_8}ZTLiDp&&PSnhoao{8rLxYiQgC`X%pFeO^CppbGjAqx z>jBy>gv+>$cTM!bes~9rOg?nXVl9KGBl zgs;?B->I4H1<9v*5t<-T+csjdO&cjQIc>&hd=8P+{kSC2;B(i1S-@5XuA+S_6Yg4K z#CA}@7-P%?;D2Uo(jt}Xo{Vk%nRorT*8m{LR?#-8EMjR&oS}G#M-{PuBEf19ws_y6 z#3b+8HgW)PS24UvY9rWEv`6f;X?qy~Q~1W?dh;{#$vb%@c|d@ec2tmPxqwyK7vrdz zQOF2%Qa9Y%XKLML;9MHS3`&OAx;w+cID4Afzh($cq0z3TEUpSx9K%? zNU$*cbb8p1i!$6)+6fpe&~kSJ&#@W7W;CK*eq>Uh#1up*cNsJps{J3ty6NmsXEcQo zY!&x$v_nVv2C_CZhB&JCk)k2s+@4K#SEcXS74jdAs3=mXu3&H^Y0Hs5)6U~W9&%Z* z{B}>B1gzPXd|y!fkh9_GUrtbKryaQWJ7hx5*;z4EV2-G|0>#v~T%i;3enPx-R_FHR zBH6W{H5g_I%(%Ys$rBs*PGz&#Ed^^(G2KjG?i*X=Y+fX`)TB|w#d*#Bt5f_;#R;JF z>C@7u#*Eoc`Vn@uhNY2LE@i<&vA$jP==Kppk)dwLH2D)g6^A?`RRKLXPzQ#JApAWu zd$myEOEi@g+UHte0NjF`1$q$VKye(3zF*H`iWeuEU;~O{`$LICY19=fpB@6%!vmYy~N+ zXIv|D({%Mbe8y+a#Slg+=hhbHUpW?I}X{_`ipF(W>_c6T<@1SSQgm?o* zlOVUt(0~bcxs9vC5o*0B?0luBfeyiC3&eLa&|IR3AubM5 zLycAfG=kt;Nj8Z?68W*$7|l5QA7F%Wha+1`LGILD%tgEp`G~VEb^Y^N4%=>GZI~z6 z{4mxf;sdN0`25i?pDU5Pd|RlDu^4>lVGqP3P&NvfZzRF*6&%_s{)C_rp)*uoGX@K; zOSAj~i(xA#=f?nl8Qs2nv-Z9TCxSRfLME^U0PoVJJ<{3mm$y9xwLZl%GE3qlf^`D+IB1nK?av0IYlowt^Ijm43sJ&rlzd&oUytF~xzPd} zWFW}@f;<>N38pOOX>^6UF|j9hri?_Bt1e|RZWE~`vH1u-+-g-T(WhXL7wEw=SZmT> zXw{8+f7*^1z4T{v8hFo8&_D)wK;`4UV-+exp@InnbtphkT!n2Td>1^gz4nXSDg>?7#CK4OoZQM~l9 z|Hb|27ZuO_`MyT_K$_DHG_DCtOiV6tr0r7-pQ`Ht5MpzhPRW8kdm&r}|9+U}o_H4; zkGu<|&YMjmddv`r{=rWjFl5F>A0EvFVQtv68!{ljv(q|r{?flf;_JgCDAR&+S+$~Q zjFR(HYJ3E~MCsVR(wiV3k(V-W$~J7>;#nwz9Nu=_?09?VzoFLoH?(Lad=$p&d$w?i zxNIw=$4ST48{-DF1aMK$ zN31%@=jny|@cilV5wlw8>;FLv z<0i}}+N~PnuA7vDEp%^uN&-egDBi;O1XsrFc0u^P8M5kO&Frsc1(ag7;sDcTqao0Q zP6N@u(Mv7q<|1Kldj~<`jRo6fizjx_i}=taKR>ZB$`JDQ^Y8|A72dLK%UT=YOeqn2 zDb3xMibqC%``{@)PPT;K6}h?+(M17|Cj{r-_QtU-+2ZX((JlHD0fyiqOXiP?r9{z* zaP0}t5uUqd%Mf@rpPQ?CyzoJin^lYnhvk69WsI(Z%4%{8dX&0Ak{!7|63uh|qwaz0 zh!I8-NAHa>pBEX#fYx1?9l4CYF>%!!k?qDBO?X3^DE>eSvggPbyW&(CXPd(GN9+$K zO$_z>s@a?yXr?!r6wJujZ9WX}>A{e?B+S_#50l_Imh=^p+#Gs>lDy2XCzleqv)roe zH5+D+n^=@YOgRe6ml6f|b~Yflum-q3*M_~D`&?;jl!UtQ^f;J=G7^`&QkhPA_Lf4C zC_BQa2QwU%R>GZqL-gIS*Ov0t1}Cuv;?m!loHofUl1(IjjHC_dYhkQYRm zx98-b80byng{B1qeGNF7cJgVjk5)U@TtNr{(vtXr%WhJRZqxtS5X>P(Gt9U`?kjav zgsbDGk5*JK#-2sC;8`vUvZ-+{oPMiUj!d}T>HJR1TeoAW+oid-&uHbZ|AKKq&Sza> zHdBov2$PHBP-;xEZ_1;W8-);QrEpd{qYSFng> z#WW5-VvJMF-wz;fd>jsaGf7>Go-^*4-U1zf&)L6;Vp}6D^)!Tyl zA_QClsvmjDrHB8nr}1s1*3@n;msV|NpX2GUqVj?`j z+0W=$Bb6puQE*HL5tS{DF;)WXL$FHM{iDC4$C?-5GS>LVjb=#Ag31;hW=Xy|1#?;83%@%v`R_VOn_wu65 zLVifH*A~CI;MYYW29L0LtTj7d+Bamo>F6yZ*bd!s6ZKSHc*(;s8l?06WW3h5++V4N zIIpwWY2?d~OL5lE0L=mQh2dE*(9?0ewknJ)i-QoYT8ksgfu5px>V`1lJ}u6d`cCI5 zFz!m$u^L`mAx2Cf1Oz=8Dic_>bk9C)?W02PIV66>b*Hmkt8H``oiSZV3 z=K(fTC4q_SfncMY!yXL&^2B%+#~AxSfjdN&zs^z2|L@d7!HJA8Lqs-YHmse&og|~D_tQG3BNC= z3mXh;KR~v!+Hin916BOr+hC$|#t|~Kaj8*6V9%@;J}~6@JIV%j+0ypWP9H5LX9wSf zj{OO(1u<_RwJoZ$%vQ?NRmyyIlU+u90JPzZOh$fZ{Y z9ADmm*4{`oMjsnnx{qGCZcb?x(I^f@ya_hI!cn4YA!SgmEY-1-$JXLBA7*XSYxk7v zwltPA0h+79Arta%$HeNsTHZ~K8hIgLZ+N-+25I|_GzZKqa-A!L5ezx0&?K(BktXaM9+a7+<($P%{9OC_2^%c0WmyBhbpdEIs-QDauzMiW^WR@YxSsnTv$t2UgbQ zasF=oYXs8-EH`*tOegtKYOiGop+_twA`ub%RHgYE#6ntDkg4N-L`bbuo0+TpgrGvjy)jG zo*=45eTH7@c~&vbB#o|s4~(`f8MM-jr}I%~ew>@c><~pqJLX5=D5EJBwCG2L&VZJ} z;nWdNci*r9&SRHeIL0%u6r`X@EU?Y3ABSjq?gV~f3Z55(L|&IsAS8nP4a@rEWRON%UgE&@}mo7H-Ouf%G0vF2Qhx zo>xv7e(<2UxX%bCwkIpc#8)DcR}S4nzZ(QC#sRyEtNHNZIvOl z>GW*fbwhFoZ(u&m0i&6`t}Ns~@ABe~_ykoEkA^}S#&Qg2$-wIAi`C!}?6~r|>9YfG zzLQ0l5~8RZswE+l;&*B!E9Ao3$Po8^vuE4>rH5@5Xz zccVgO=~1vAcZY#Zj#fYyXfFQOSm4+xp36iMRAB#Pm5;SjAxfp-NWMS~-br=~BBIuF zlkemQyzbE?Kl*v9VAV`i{;6re_{!ay=R`-wN*SH!lFn%&L2Mv&kl%O*zzL!qMzbe| zKgHF0rr(jt$DfXDf8Z--J!CCh^&Fa}SA zB^=#DSec$8VjPnC19SgWyn%yOLuv_~{= z7;Vg*_>2bvi3xV#dDNzSZlwYG!kfc6 zCKpY$r`ex|_Z0<>vjiV_RvH&fO@#9*|F z^}=2qc)0p*+wNbL$(Vmm=jS@JeJlZFP&^H6BqqDkMR`3!-|fo63i5mp#h662yRXG> zfq0k6D&06`&m8tK)uI7OD>Ta5EN#~Bd8Iq1D^7*CkC!5a-htnhe~R*8NMdB1eF(>U zaZY8JY}dO4cfkrzf$Jet95cij7|^=v*(uEY95tFv%`DTEVx^g)4Gd*0fJKh=hm~jQ zKC8do{I)Il8nvTk@=XoVet3Ar2*s6Nj zDo+SHOqHpH;U^af4v0#_E!CO{t?9*U&|04q*lr(nf7Z6NBYD!@-X)sjSaz+%LRAw7 zXD!2gweJMft8=F_V=*)CzZS78Z3tDRtM1{V82T-5U2SaUUkZl>)|Ode!QcWl-3Ali z(t=~z=HCZLBWkb_YLs6d?JVc%F0pa;`(wD&$$2W(E!0`WpWTPZb4;)Mh5&Voe_6uGB;f;Fg>hSOA4e4&CT7 z&Tv0pTCu`w*IGLBJ4Gwh6_u6V>~wJ`H@FQxgGYCfc1DoJBo={Q zoM(`ZQo|!4Ta;#giZ>hJAOXk@uPW zjT~DlEOsBT^+DRKGaWO+%^Ak|jfZJ&WIU6$BM_%WyT zp)y+H*}m$*#Yn~XOB?iaDrpXVaF+~xg0ZWoPpUzKY?JgP1WzoZk>18&wE-NV>GMr3 zzD>xbJfDDs;zN`_Giar$%f>=yvicyBP?w8nyZ>aKmg(j~~Dj_>=@tF0TrR)s|oP;x(STJ?}A*UzzHAMqotWWsk_D^au zuTOa2-;B)95VWE~l}ke5nOQ5bb+a0!ig0)fn}I!3PR*5`vH&JFmCA*kPKneYS-OQb zr7la-ln~M`YG(^yzTZ369)Ul=Txw^LdI2Xg+n(y-b2dRLs{c&}N7XuvOuN{B{eT!vM2a$* zc91OE{2g?@_n;RqtUP!-J=_h$xv58l7=KTwW3Yv^84kk|AVmH3HumvDAnUQes#!I? z;DkzdNrccts93#g+ovKsOhsoh!NFi79Y}WkY-NX?EnaLL#9DA8xB-q0H%Jl%ou+5SRW*^I*ilwzqCYoW{*pUi$QvzI9=ZrK;qbGB1TAzoD1c07I&#q2d%I+bjRrZ z?G0+*hzyu~)~;gQI}|3}yw&)~F>H6J^QGx|v0BkD-_HHsxL!NgZ_M+oOCV(;J{4e5 ziY(fbx_I7cfw&pxV0fr*bH;xa-eXEG7r}ipMtjgQb7GViKDkKPuHX5wNw4C3%*7M2 z;N;bi?KhSqbJe5g?2}7#A2wo|yj8ON__Q!SoMxr?=a*SQCRhB+R$k1%lX^H`+}iF$ z8idZ&yPFsn4SN_MSKg`Z6jF0Rb5wC=*mOb)`qWCMP0Xi+sBLZL)L8o6tC?pYgNy-&G0yTQYU0BXO%zO z<3owxa5foET6d;D$zL8bW$=DI_+|L&&D-?_p# zS2;_6@?zsrY>RIQoOoew3bP{G9?>0lwL6MtFiYkwvc}3YsYoELn8hlwZ8CGc9`U;U zRR_98O-QndB0Y4!RH=%YjT+^RWwri=Df4b*C}6%5SM?vJWVGH5Vioa z&X4D6YuZMTY{?Q082>Hug%^tav5J+`A#PaB#{AunnC|V81Nb)k_QLClxVN!zTTd(; zg}Zpkm~%GVTI79zoFUZ&{2G&D`b&Rfa7_pHa+kKg-!A z?ZdSLIbj0oBE<9{p_6*~C)F3Eb0kq@@E|4y{_c zEQwQV0MTYn{3CEF3z0`ruQ>w1L$j| zi$g03bi$D=)H@oo5S1T6>^4A;7}_3bI_XswJf;a@#bt4n1qc5BstzbnaR=4;eW(IR z(GTd7sQIIsg%h&C3VPLB1NvRA-tD-#bvEW<93{V}3tm+h80$3KWTfpdG|W>Ay5O+#t#88w!y z>CQ%EUTR%^xWnS&^AKf~E1tLND7WNG5k*N$rc()6+H$a(D|BA60Fl_8?4iIKD$fdJ zRCB<1#mB2`^JComGKb=1zL>lPaUpk=3o@KI#5f*|&E!Z%UGk`t%qHd2wUi_m(MaxS zk0*7m>6DdX7R8SW<)+fV058iQhP&JSAvOI=ZjKje%Id(FTz1l^jPcmz_}p(NY$Edo zWL!BJ;dR2B{WvEXTm&EM4<4h$=zw8(%jm)bW16a8Nt54qO94K?m4DJ9;pz1Xhv&U{ zQq&#$vFUlm!EO8Rr_eCA@H)r;kF61r%Dw^bErZ8oN7PJlR zz7XTiAjx@(f!GHwC|9{!qzdXb)V${>`)jxe0bBx&p&Jp7+F#EmJ-{c|!Q44Y{=SqM zae18S_iV45s${d53&WdzYQ*9q0EY*@8x0usHIxksDNyz!MaX&k>_JVyyVYrs@f00~ zgpT+DAzEjbW8r7mTkC}XqCYa%7Mw&{)Vsh!-_GDdRVHsEgLDH87ef z@XI`96cP%R;d|z0mp_(Cb~(fwbD@+RX^P@u4oCgb@@`|GE=cLI?&yk2l=8jom@eQ9 zEGWu@qWn7|U_u_cUVf8bgq=gltRN*(ehBlV5Zqf{o$sObVCkSc&>z~<7h+jLAR5i2 z)o?AsDfUiny`*bz=S&PII7==$fNYvAf;z42#3bvp9zjVB_Uz&~GR-#5vm34rydh;S zJ9#3dZ78UR6c#HXS$J(d4dg@2a$zH91Y^_v8H{ziUqLNCBQ-j^i~ z#qJ(wJ0&XZm*XG!bXhzPJK#k*8SJ>c9zsSUHV|&A73v6YmML@bz{GKuM z3BE32Z0oNu$g3&5=FA>|iuj$_C+D+dIc;}T0wh+T$AIbCyt4$Bt}DpO;!njTAU~j? zf-g~t*oLpzF4{n9m*QJK#Q0kg%onZ&lI$k5-Gt43AA<}=)_jau2pstr1x^3c&AgW1 zYl)>DT|*_kF}IL9xSU*uOLYzYt=1EM;^MWPgyQaG2CmMgnd|udb-<$5{@V5x3I)2bQR4l{rr=Q`-sr ze$gh6;L+zZPrX8wb!1vLip|FIRs=$(umRF|u-5@Dn&lJuIvt@vBn90(JhNumD+=mZ z^+4)Tp+C`Qi8@jp)fdo~+I$Rk37-}ZFVNCh%skJHDGx0 zwud&v7!N}Twl~>VY)=7oi^ru`xtlM5AIAshS>yuF!i_$i^V@CSRki<@z|6Kc(Q^L8 zoW`nYZ!>zTPKD8PoX)>jKqxEUVfJTQF+>JbSk>psw70SME$Yo&qSTyc~S8l@{h1NRgFkSc;oy`^lS2Pr;mViq;CsmEaOMWOsqVMEuad|3m} zlKccb*X{XM2FX*|mHa8kWC@aNpSEzVB=d8-AVP^HAWW$)Tcj3}wi17SsIu`j{!Z7^ zSa}TUfN3E-Va*_SW@QGWo^t9f}efqZTlfsdgb*R-$4aMH-GhEUwKESCm!>l5* z0Kbr~P{VMcQ^RwqFpLS!@!1Fv)P1YcwM`;ZqOJG^$p~y(?t0F*txkX&16*7N_)h?7 zc4}!Tx9OO#v7j8cCh$Y0%DDJ%QiD)V@5=V_t?v+U&4wok{#^JkFqAi#7D9ARE zCqxNU)7wN$L-sGpH4B>u&K=M=OwhPJ>yOwQbxrjx`CNg_m?#X|B~UJ8h7=vFWP`U= zkEkh8SKQ=W!vd-p(ElmUQ;N{kB<#{9^NlZ{mCE=~AXE2y9#e_@bmh zW4$F-`mJ3p**UK8E*{Yn(Xy0i;h>msH#`JZu9I7@&#>L!GnF(YknAbu3Zdmuc-mTo z{XF{1(5)mpgbk(z$+E@$`h1)|-bjEa!qUc4wjY6(f^{ z>e=}l;E#|dc_jg`6I*c*@-!x=F;vcLrxRWM*GQ)6I##r%%?y zWHiGoCc!%`T>Uo3gufnu#52^kSO{C|-yIV{(80gK>xSPlbDvsuRCVdX(^0CKMDMpB7fZ(|0&XGAz5^?9BMGnWLFTG z2$$=W@{b7$T!6UiWUO7rHjnoNV$8<=X}JGXEF6&~7SnO8SCx_SI)vrTp=yMx_vYfD zVLPl4D5wrTvinLqplP|-g%!agg9JTPc1?_h7-ZH6%(6~9xhLUq);mNb{b1>yjtH&H zfqYNcVkp9;xnD0QohYaB7T7&7+)QkdMz%UZNr)26OU;h^Wv#SKWYW}#k74d8AgG&~ zkFngF+n*_`qRFM=)bji{XHG~q%Me%4f~Ijm`9{a*)z7N3)whC9iMtg;05)r;kbEkm z6%czZS?u1@MDB7XE?4D{^t~d^vt4}#Nplx6l&J`r z{(cUVs|bAq> zlS1Yi$R4qD#G%Jbq^zEh$RRrPb4+5wu~({1J}YaYASV7?Nfo$n6HfnRKYqY3P+C9U zE^GRoZy8bB=l2rQAid#(%V+Fs;7NXNjTOf(?5=vE= zY#*{;m$zFrIjHRnbIA8_v7qTGNh(pznO!%V@&+ZSRsKPAePB%dN^3~0bv2BWWfcp7 z^7VJ?3TWO1`y>4I9z+jbp*)(Z#ka<`-~^wm5RGeIJAZ1#JX}a`&0IQ4Io?sQ8nP|K z@d*6o!-crPzf%w;f?)u3bJ#n19)|$P09H5Lip4SK?jJb_#QsL|pA8zV@Ya~6*twWt zYd8M2=Q)Z}s>0I>;-@ey0E%_LN{W=#C@*!{@>-s_jN)6ak3SfpZ|uF=e+pMz*laH< zmcFE4uK$kLBna2FwD>to!^YfGM@f6A+xu5? zEQ;q~J1h@BO+6YY!+iM zyOp=Gfu*wP8B};nkDBU2gFWZE;X@SeAa}zR5d!0&GC959z9n4xP41d;;>gIzgx!^k zESF2ZVyOG=V6~{4PfN$OhHh@-fu0K6b#U&a5l2=ZmExlLn1f(8oY?{oc;ezUOk&q) zn3h90&kD;D1i|Y@GRWv7(j6#`s!zEmzNH>xFH0S+)}O!NK3m4&uUEDku8TBstpW9B z{+hbQ?$;=+xz}B3YX;ILNyPNEu?B)06uUO`0Y#hPzyEZSQ0 z5Y~dZRRivCUq!g&nP>>AuLJ-6MHLKY0PniJb;lCyeMr#b{2`_( z#sSyG`0uZ6^UXstxg>3SCnUx<$~E6Sh+;YF!{Kt{jP0_~0V{o?G5f7C+iBhNaE*i=p3;@bUrG^3#C>nR?QdHDdVrT$*FNWame#Aq_Wmk;Wl< zpyu%4#WinJ$zqt8Lb#4kFT&C3s-yiH@v9W4z_WAMftXOl?6f2*4z;)HFru(@`wO^c zwc8MctJ*#GTFYdvL8HGMtp4uzp% z%fh#;CP+y)Zvk#xX9+rL1?hhFdAskV?yQdG1T?tbI=@)9=uDyNy z*B`MK@>;WUdw|SpbH8>H831Gd9oD!ErWvKF)-Xag6kKqh z;}YDh-h?pVSoNN!KjUdPHojF*Ui_B2F;c)NdjnE?X@5yS3h`E)Fa^GwHqaK8XdPra zF8*czpYk&pgL`sVG|4-eXx1(mMsSEK8Dh}0eInemGwn*}cYFnRQSmmz13*iaBy^OH zLtJ?d{9`#*x;^3ip)F5MVZT^z$SCmNXX^WN78qTk1J~x{F7s7G@UQn+_RU@EcOtSq zjbE$__-eQE*Y{(P!hg+ z$(OCpqEa$b;y10-rue@_h;eoR2{i02j#D*|is)Y@1?8l+zMGHM``CXf$zih!gX(hErYys|$?a&<3x$+v01#?D-mlcY(N>|mpsk;F7F(5)G zX#z>>)*6@ivVmJTD4XoOid;+R{MLF-RiVSmq&t>Z%T@*6@T~(kS?t>?MP2-SUB4K#Wt#ok%J;@lE`HdNGAj196pGwWOOzj4M8Q^A$i{GbJ z3}59?AUhC$k$!Ny9HHEoeWL)WTe*vhRYgE^2oe^g zo|$L55ZnY+9EoSbEF`oI|Xhe5$G(t)ZyEw!h$Z%Xn{ zy=6+=U4v0$0!2boQ+an)We6r53^?&f; z`&5YSmb=)wz@#+^cs##)rW^=J{Q&8@bXtQ}uvSx%RjB?_2U5l_rB?`U9xGLFU{XR) z!t4DDSP>&m4%eq<$6_`-DFAOOoOb5Q5QkcTkM;g8&IO0dFz}7~`?nQ$6R}fsIrHA= z)fSGJFi_tU-qUb zKd0oX|4uY$HLRrORYz)%f`we(kN+jhruOvCyU8UpmQQJ%VsPb8!{ZOoON&1a-5FNx zW!Fk+1h~LktZ?n&1JxnF{6?2K9)7&t)L2($Vr=ix1P=_l5>ywmVut{^e=`-_{V4PbZSo6@B!4og zT_{%$ec9=TMZj+GcM+}P z4i`$6T;7#U{Jp7S-_~xQp{ASL#`1~eD#`3uHkK+t=9Z8N0gi%e zaimUkm2{j|Ak~FaJ^C}}U)3?KQ)V`|tgx}W zXPGqr

  • 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�HHe}d!iXDelauh|;#9Ep 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 literal 0 HcmV?d00001 diff --git a/MikroNUC/20260430/20260430202001-Config.rsc b/MikroNUC/20260430/20260430202001-Config.rsc new file mode 100644 index 0000000..fb6513a --- /dev/null +++ b/MikroNUC/20260430/20260430202001-Config.rsc @@ -0,0 +1,4162 @@ +# 2026-04-30 20:20:01 by RouterOS 7.22.1 +# system id = NmJcEM+8XAP +# +/caps-man channel +add band=2ghz-g/n extension-channel=disabled frequency=2422 name=2G-3 \ + reselect-interval=20m save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXX frequency=5660 name=5G-5660 \ + save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXXXXXX frequency=5160,5200,5280 \ + name=5G-5160-5280 reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5180 name=5G-36 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5200 name=5G-40 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5220 name=5G-44 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5240 name=5G-48 \ + reselect-interval=30m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2442 name=2G-7 \ + reselect-interval=20m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2462 name=2G-11 \ + reselect-interval=20m save-selected=yes +/interface bridge +add name=Bridge-DOC +add name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] disable-running-check=no name=ether2 +/interface veth +add address=172.18.20.6/30 container-mac-address=00:00:00:00:00:00 dhcp=no \ + gateway=172.18.20.5 gateway6="" name=docker-xray-vless-veth +add address=10.10.10.10/24 container-mac-address=5C:26:FE:05:6F:12 dhcp=no \ + gateway=10.10.10.1 gateway6="" mac-address=5C:26:FE:05:6F:11 name=veth1 +/caps-man datapath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=xs-DataPath +add bridge=Bridge-LAN client-to-client-forwarding=yes local-forwarding=yes \ + name=DataPath +/caps-man security +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=xs-Sec +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=WPA2 +/caps-man configuration +add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ + ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ + 0,1,2,3 +add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ + installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ + ssid=vados5g tx-chains=0,1,2,3 +add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ + XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ + datapath=DataPath datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ + rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ + XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ + .skip-dfs-channels=yes country=belarus datapath=DataPath \ + datapath.client-to-client-forwarding=yes .local-forwarding=yes \ + hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ + vados5g +/disk +add slot=tmpfs tmpfs-max-size=715827882 type=tmpfs +/interface list +add include=dynamic,static name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroMIC +/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=P1505n 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 +/ip pool +add name=dhcp ranges=10.30.30.150-10.30.30.200 +/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=test owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#:local ScriptName [ :jobname ];\r\ + \n:local expSrc;\r\ + \n:local FileName;\r\ + \n:local FilePath;\r\ + \n:local DirPath \"tmpfs/\";\r\ + \n:global WaitForFile;\r\ + \n:global IfThenElse;\r\ + \n\r\ + \n:foreach Script in=([ /system/script find where name~\"Amster-GlobalConf\ + *\" ]) do={\r\ + \n:local ScriptVal [ /system/script/get \$Script ];\r\ + \n\r\ + \n:local expName [ (\$ScriptVal->\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix \"\";\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\r\ + \n \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/303/124c37a2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 19:50:03 30.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global ExitError;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$0 (\"Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 15]}\r\ + \n :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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n \$LogPrint warning \$0 (\"This system has low free flash space but \ + \" . \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint info \$0 (\"There are \" . \$CertCount . \" Certificates \ + with CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :global LogPrint;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {:set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :global LogPrint;\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint info \$0 (\"Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Creating disk of type tmpfs failed: \" .\ + \_\$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint debug \$0 (\"... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Making directory '\" . \$Path . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={:set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]};\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={:set Path [ :pick \$Path 1 [ :len\ + \_\$Path ] ]};\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={:set Path [ :\ + pick \$Path 0 ([ :len \$Path ] - 1) ]};\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint error \$0 (\"No valid RouterOS version: \" . \$Required);\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"No symbol available for name '\" . \$Name \ + . \"'!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\r\ + \n \r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\r\ + \n \r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Setup Global Environment for scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") output=user as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ + \n }\r\ + \n } else={\$LogPrint debug \$ScriptName (\"Already handled update \" .\ + \_\$UpdateID . \".\")}\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=mod/AM-TG-Notifications owner=\ + mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "#!rsc by Vados\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false\r\ + \n:local scriptVersion \"26.02.12\"\r\ + \n\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\nhttps://github.com/beeyev/Mikrotik-RouterOS-auto\ + matic-backup-and-update\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \$PublicIpAddress\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n\\\ + n\" . \$mailBodyCopyright);\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [:tonum [\$GetPubIp]];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress\";\r\ + \n}\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system scheduler +add comment="Setup Global Environment for scripts" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260430/20260430202001-Diff-Config.rsc b/MikroNUC/history/20260430/20260430202001-Diff-Config.rsc new file mode 100644 index 0000000..91d4085 --- /dev/null +++ b/MikroNUC/history/20260430/20260430202001-Diff-Config.rsc @@ -0,0 +1,47 @@ +817c817 +< \n:global CommitId \"main/303/124c37a2\";\r\ +--- +> \n:global CommitId \"main/293/c17fc8f9\";\r\ +820c820 +< r: root, in 19:50:03 30.04.2026.\";\r\ +--- +> r: root, in 16:15:02 30.04.2026.\";\r\ +1353,1354c1353,1355 +< {:set PubIpAddr [:pick \$PubIpAddr 0 15]}\r\ +< \n :return \$PubIpAddr;\r\ +--- +> {:set PubIpAddr [ :pick \$PubIpAddr 0 15]}\r\ +> \n :local Return [:put [ \$PubIpAddr ]];\r\ +> \n :return \$Return;\r\ +3162d3162 +< \n:global DevInfoIncludeIP;\r\ +3650,3657d3649 +< \n## IP address detection\r\ +< \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ +< \n :global GetPubIp;\r\ +< \n :local PublicIpAddress [ \$GetPubIp ];\r\ +< \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ +< : \$PublicIpAddress\");\r\ +< \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ +< \n} \r\ +3665a3658,3667 +> \n## IP address detection\r\ +> \n :global DevInfoIncludeIP;\r\ +> \n :if ([\$DevInfoIncludeIP] = true) do={\r\ +> \n :global GetPubIp;\r\ +> \n :local PublicIpAddress [\$GetPubIp];\r\ +> \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP addre\ +> ss: \" . \$PublicIpAddress . \".\");\r\ +> \n :log info (\"\$SMP Public IP address detected: \" . \$PublicIpAddres\ +> s);\r\ +> \n } \r\ +3851a3854,3855 +> \n# /system/script/environment remove [find name=\"buGlobalVarTar\ +> getOsVersion\"];\r\ +3858a3863,3864 +> \n# #/system/script/environment remove [find name=\"OldMode\"];\ +> \r\ +3984c3990 +< \n :local PublicIpAddress [:tonum [\$GetPubIp]];\r\ +--- +> \n :local PublicIpAddress [ \$GetPubIp ];\r\ -- 2.52.0