From caf65c4d635da5186d7731ea0faccdcc62eef6a9 Mon Sep 17 00:00:00 2001 From: Matti <86204097+MattiYT@users.noreply.github.com> Date: Sun, 29 Jan 2023 12:49:12 +0000 Subject: [PATCH 1/7] Update index.ts Added iron man theme to the list. --- src/Themes/data/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Themes/data/index.ts b/src/Themes/data/index.ts index cef542782..ce97a891f 100644 --- a/src/Themes/data/index.ts +++ b/src/Themes/data/index.ts @@ -12,3 +12,4 @@ export { Theme as DiscordLike } from "./discord-like"; export { Theme as OneDark } from "./one-dark"; export { Theme as MutedGoldBlue } from "./muted-gold-blue"; export { Theme as Light } from "./light"; +export { Theme as IronMan } from "./iron-man"; From f8f8c8c517630b6aaee2dc085e6b83bd01c8d3f8 Mon Sep 17 00:00:00 2001 From: Matti <86204097+MattiYT@users.noreply.github.com> Date: Sun, 29 Jan 2023 12:51:46 +0000 Subject: [PATCH 2/7] Add files via upload --- src/Themes/data/iron-man/index.ts | 45 ++++++++++++++++++++++++ src/Themes/data/iron-man/screenshot.png | Bin 0 -> 65853 bytes 2 files changed, 45 insertions(+) create mode 100644 src/Themes/data/iron-man/index.ts create mode 100644 src/Themes/data/iron-man/screenshot.png diff --git a/src/Themes/data/iron-man/index.ts b/src/Themes/data/iron-man/index.ts new file mode 100644 index 000000000..7b2b36e7a --- /dev/null +++ b/src/Themes/data/iron-man/index.ts @@ -0,0 +1,45 @@ +import { IPredefinedTheme } from "../../Themes"; +import img1 from "./screenshot.png"; + +export const Theme: IPredefinedTheme = { + name: "Iron Man", + credit: "Matti#2942", + description: "Mark 42. Threw a little hot rod red in there.", + reference: "https://discord.com/channels/415207508303544321/921991895230611466/1069233364927787089", + screenshot: img1, + colors: { + "primarylight": "#FFFEFC", + "primary": "#FFA95E", + "primarydark": "#E8BC71", + "successlight": "#00FF00", + "success": "#0c0", + "successdark": "#090", + "errorlight": "#FF0B0B", + "error": "#FF0000", + "errordark": "#770000", + "secondarylight": "#FFC596", + "secondary": "#DA3F3F", + "secondarydark": "#6E1D1D", + "warninglight": "#ff0", + "warning": "#cc0", + "warningdark": "#990", + "infolight": "#FFFFFF", + "info": "#B6E9FF", + "infodark": "#5596CF", + "welllight": "#8A2121", + "well": "#350000", + "white": "#fff", + "black": "#000", + "hp": "#FF4E4E", + "money": "#C2F26F", + "hack": "#D5FFB2", + "combat": "#E39C5A", + "cha": "#CA4444", + "int": "#6495ed", + "rep": "#E39C5A", + "disabled": "#3C0C0C", + "backgroundprimary": "#2C0707", + "backgroundsecondary": "#551212", + "button": "#8A2121" + }, +}; diff --git a/src/Themes/data/iron-man/screenshot.png b/src/Themes/data/iron-man/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6be8482a55c0d4490a0b86761f2fc9216cd1f81b GIT binary patch literal 65853 zcmZ^~cRXBO^e!&J$V7`Fy67#Uk6s5+B8Z3{CF&puCVB~z5S<93k506NLG>+Ui*30vrgzUO%>w1w0CiEaER4Zm7e3^;G=MG za5eAX0#`79jD>)YTW-%)6mUxW>DPdN@N8ikFdUrk(S#ST@PU>%&z`<`OnsLWXitfY zOGZZa5DXTH8wJHaVE;r2^0W#M|U@viE8#bD^ zz!eG>U5LP&2h1--c~!*N^hH_Sqy^xt%x+xFuVgrUBv_eW+!lGpDe_Fr>&e}KCzJs% z9_Sj%87uPW%FDfe!EdL`gHY%8f5GplA>g4Q=Ai@ivlNyS(~uWcS5i_!80qU;=pc;D zV{oWraBza@D3c(N@_XQN9Gp@Jq?Q5_!-pHjOkW~EkU+sv0(ltE!V<>J94NyU!YY{l zP_E#SXf8W@0}FG3kWe*LvX7i-A40u?hkJ#Ge}0#|;}LBSAI=B|^{^CVg`T-ZK&Xp@ zd6{8Hd>J)%KZOEBtD)Q+K z^n-;|0$d{Bjla@CdhQwZ+%udOdB~C>q{rdjpao>#m445Gs8wEYUWH}wt?aBn^R5GD zs;PX8vrf3ZQk>)CFCMD32#r#ESeECLFa8$4<>kATl-5;Lt~51U{B>HqRpvdOwfI}$ zhu^|U!ojb(h0}|Jzj_Pj8YeRNPErz1b^=jF#jWBr=H7UQ>-W?>Ra7G}d{^Ou*B{xh zlQ^-7f>)_x(?!zQV!4Y#@$O!-p59vQxG zWtKkAt=9h>WmA@DQI_bEosAfb)*lU4@BOIVo@6o^uYZ`Jx|m|Pn`Y2eq&-(?I#aKM zE!4XzRJ$%T#n$WeCE9kUoA(ykjupYDtL$2eU4GZQV2dr5emG(4T}nDkzV(?`OU+SM63!cc9m%GP-X%8RFEF;FdOqd!Stn<` z3N9E##y_chGp*YuZaS?&ICSeg;8ccxHTSD#eC=1wQLjdmxBYJEZeMFR#^3rM7F~M* z*T{2&gk1cY?%i2RHpc|YGsWlx!3b^#%4>o_40rHuOR!TTZhrjy|M>AB=x@44il|Ab zJJ9M8Q8S7PPZXO0le%{Yk22UCL#Ut%3~D|P1~o9@AxZFV6KV-y<(ckvaW|trgqP;t zsbBl*!Pn}lbM?Tnl70*L1q=KV`gr`i4B^fLMKkh$Ceuhpbat`N|HFSckH@y7pTC49 z5gn>x%-kpO;bIfXnM`Y#l;}KtvP~#ou0aN!Y{Ee>iGVjEL)PTmGi6Gj;QG-de z-4jtEwlEIw=+%-*)fxR#dCp9_=W|m0%38qG@2qM(ji5RpxSJY~B%WXXURpOoZ}Y&l zQnMm?dWzEq<1O{=qoaY~5#O;V*@w4Vqy75>NEzWBWwV>U%rLiiqVC-OJY>mR2YVX& zC0uDu$XtpdY$^XEsDY8i=tzv+94%uQ?=L(s%)QllJdzNpJR(t0q^w@^47J{=JRF1 z#DB<%&T6~z;q`qq=(n2o#yT9hP34Y3c{q;YEFHU}d%5a6CbW(5H(v0$h3>#>++>F_ zZE+o!{|wak_ReC~v{NE#pl;Ssuxt>2Ze^>XDUy`-s<-{)`oCk-MiC7WP3G8hs0STY zdw^$}RL1itT}JC#@6`eB#q?RcOFrPfMhl+loTg)Z&=ie5CLr3vr45yv8ta5vEu#$K zi1yEC;D!L+ryu~2dlQeQMLdG#(;kTU7_(vZKpK>hnV47NDopo2LWs`RH)JZ%b`#al zM3*(~F=WUpk?lN?#>+O_M|ra@O!v41no(X%kJrWF4w=%=Cp|f75L2{>1E$PEmueyS zWQ3NT%l8{+4T2RRC2i{yHb+v`;E$j}B$A3jD^k18D37^GR4#>ui44%_qd6v4SeGTE zJyY5D0qKVdlG$Dq>mn*8tzf7hr5FUbw`?U+WB zyycBWq??kl`8Ca|qIo;PZL;6>2-H6A|UzU`?d znT*OlzB8pE4DVk|_%i@BdLjV7#aMRjWbAT}FdipW9BCyYyCFfDlr1{DiFycjC^FeIjLm-l)^9c#nH z>S9)e*Cx*C4I1op2t!D2wxMf(3nyF@Tlje7nR@zAJo-iB_OJWyfj`c^I!x4*Sq1p( z*Z5v4&_Pe#c>e34$qzYTF@0#J*zZ##XyWR;hQX&s7w6Dx^qV~7wSV5QoxG-zqF4P3 z^WUty@cKgE4s(>k93qj5dryk%{iDZ3s3~&F64pCL^-E*E%@ljj@GkWg8S6=yW5@%m z3ZBD?d6f|Vz z!nD}r9@&ZLrO}o2Ge0u>=&M07fa(++V82?;U+%9cFw+Uf<=}Wvs z$N_>po_+O~PrpfInB4_SUQqlYP==Zt(H-Di$#W8!gtVYKsXn)V zS&eC@(s{=bZmKkJ|2m1@zh$7{;_qYI@|+%IP9*G@fzPqv8I+ea1jcVF-j%V&nGwOC zE*^bRqr@izbLYLzd;?C5t>v43#n z;PFzOv$*qt{G5@V)PxMXkh#6Pj|?6-x!OJ!!j6XjwAVbH=e&p*ie4}>M;)bB{DJWac-Ir?q~N)-;(PcC%t|=O!aPZ zy`75Jl!0$vNQmlu@fp8GgcR|+X=?OGoEMDGduR|m6^_b9c$Y)!yu@d1B|=SEF44Wl zKS44L=5oHb{5>A{WBHRCv034i!-uzz^+C5;yB-VJyJt5mV}04-yl)C5g!@sPB@?qe zf@h|`s*=BQFV6Zb%#w5Fnc3GvkN$>wJgCUEbxSd}t0Na4dcl|H_$9I6QlO7rL!Hy9 z5N!18cia8R1p$q8EywGA|Gl`L{59KA3C*~M-Q{M@)73pgAzPcnWl!$;4J0Yq@tcbF z<+G5ZHt!bpm#%L^vtK1&exy!STA)C9Jlqha%z4{Tdz``p%3AgrBv_DYuo))%+{GE;qqEyhS#S`5UU!hm@>>6)zmhn zWzPu%nNW|F_(xwAvsUYsrlZ%XzLw)4G!gR2HE9@fA7hZvX9G9ZfeWK%FaTTV%PiOR<6=$F7Sk?s3 z4QaGtyZ0FLHv8!QHju3_&EMxtg{ixJGNnK1e=SCHQ0p)*D4kpM2=QA~KkZazXycIh zD{s%ntk0>BUc;(uZN10L@k8Cuk`LcEiZrkz9ZQKnzIST9(}jPpSE3H z&dZ~uLkkT(E)x*YqQ$wJLcQSEOaR&ax$wfp3 zy!G#cN5t8L%v^TAhji<8qrBSHIr9)AbvyTc6?hk#xFRfFQ#ysVx<^^slPZH8RATD21Mp!R^kX`T}aFB|F{m-@(rdX9fHgOr<^p!V`xOoEtjZ9 zRR&th+=|9eDsC$8|A^=;0N_69lO}=p;8?Vk9#?6}S_GdT5w2@`wJ2QyOLj$MLgcS~Z z@}bUSr4+8|>E7`Apy~%!#@E{#<1alJOiJsb^tGu>a`1zv zfvhUvNqWZ5C%!Z_!r`MiZ7vI85aBrAY+3y5U7EU>^1A@H%~g z5J1qYZFz0YQ*uPtHo)c~$ngBz%=used@0SQJ``ivQ&kr^9kJcYhrLuCenf=k?bDJw zY228rKK9$0QYXDFz00!8M%lQ#zzHvs^NgJe_`ARfP(G1K&xQ67uOk}ME6~i}pWy@2 zCvA+XW=sO+M?)V_=FJ=$5BjW0sL{zU=DLxvo}xHv^wO$sVws|D)_kIPG0g4P=wIK3 zyX9tlE~!5(COo=OO~RMo)@;q!hs4|k39LF>i4T9u>V(*1H3hHU22bBKO!w8(=hu=m+K zIq5UTy%Mz>bye0{kggsABP zMdD~EyhM8+E^n09H4b9#_oIZf2*5reW_H?P2f5z^|IQUbZ7nS1KWGAEP@qu`|dU#XAs7(RC*OOPCp_ti~o&F#zxmFFtes1$3$b; zm?ZH{ck5%0$PVNt<|AfW0%uPfxdMKOp+Ft?$HKy&m{23oBlQ?1P~06W%wGOOQyn!# zjz#r?@~;_Udy;9E$_^HX8pp&L1q5p|!jmVbJFcxG@F&jTs%5rd^|7P~JQRbwi%n&N z-164dvesaA!G8Eo)$0EG;wY*MsO!!9gG`hYNI1=k$ zE`cZDzQHVLy-Whp2v!16B!S~YdJ0q%Ge|>{I1)y85U>%qsb-!*4)+p^&0AYPrdOh> zS)+W*kibf)X7yo;Y3MHA-g{|wx=7~}GVgo$vGr{5Litvd*v@4y<2P7^vZ4iMUF0uK z-JjYY^OCQ5(iO6mgt%WNoQZH|1>CNDOO|$3%jGMz|EKqHRe~Dc!IzSo*zWR*Hd5{+ z!WOg4k|++9FM`Q={^`QRi{l-az5Q8el$r8{vEfUK=cQj-c6V2hi4bv8lI|6$+4E-J ztZG4%K>0=#r**c=(obYcS>xBAoNWAa3EpP5v#o35J9<`G1Riv3Wq%3s&IC7uF55Wx6wIu`F@Bu!mbB!1_%?bol$(RMkHSo{g6(|zO7t=Z#lr^HJ?_B8k zkM&O3@aWYG{YBD)ysClM9GKe)Gmf_dFET-nofF^Xj_0!6ULaTS8rJP?F|8HH-U0cO zq>@R}1r3X<>O_Xf7-^p%87B6a+vDT{c8g4dE8-M0|m#|@u=sq~z=uJk; zR_7WQHJrqM!M}~<)I+YYAV|m$tcW9@H$-&=X{Y-U3@pVu1dTyDd2A>;-&kC`uF8Py z?efP%@(v#BD^XrvU1c`iC%qLwViPO-E^lqHMvlFJY(tG;YVFa>mfQg<2h57neJ{PE z6n9X=k6L#~pS?1&bTlxslg9kk^C$G_=2Ibo#w-KTl0c`7#<1hLOhT zCyMSRwXd@pkA}M2i};&%8nxt3C#bf#NX*J^s5DBY4FZj$ZjbH3pc96^VSNGCuh1a6$Msm08t4L`p`1 zI9U-|7bPCeh9#H@eTd79ge7vUSEOdzR?s2Th`m$kYoPsn4F!5>SzsE3iC^uLJYq(( z7shqv(z2#?h&`4<7^5dZv7vjjZ~q(d3H<}KIRsq@BW01d6~<1iFJ(DBpNZeQ9ON&77_99!+Elkxc%)Ru4uJ&AqslL9(7hs z&(SLxh75#d55az-dMNTG^wqbrBlBvt|5xXkCk(!`OD*+Kmu-HdIw??kuO}{=Y8MX+M3R9Fk*EEGd4WR)=$IBa{$+XZyHiaZF z0l2yV_5%|&;%A^X{fdT^7P&2C#f3t}3?7Tp<@;Z6*^TGufH_f)Z&tbq`T8Yw+sy_+ zq7~+t1R(nh6TrU9wj=g-+g5Qopyg8#evKL45bY#Ke^ie9pBAhVVXS*4vzef+MDZAu zF6W)ZW>nK*MRb>&dw56A!tw!D!h){GJTXy2+t5N2j{|3>2VCh|T=?lD`vUM>JgH>N~NZjRYc4w!h8d^?7C4MaCdr(|J2q`h!i=Y14H8=I_MO>NRfys=YIG zq%WS2_^k8`Y|b~a(O}L$v3E$77V*$&v`P;w=|ak5YhC4NXR^YL2e^-+vWu!j)xc5< zN<={lDGE;3ectf#3v5UHys#p2Tvk)F?z~QV&ZTOQ$$7@*LMJldTxn6K`mgJv&g&mq z!xssQ85Rz2wtdVNt7(a!Olu7vHjc|)8BTt2)|&eDa$8exuwl4wS=1)_3bQ>^*DjNh zCDG?jKk4_;{4J3%-fT;>w7MmK5wc~hzEJ|7%6kqbme@_ zlPG${qv3zRDmr)FA1(^LK8?N#80u3yle^ezns@Xv6kDCzSh?Qaxk_vrwQiYQ+47iG z<4_+wiIUnm6Q|kkLl@7aCOEGyN3SQmcj8EKp7ZaNtBDm|NZIeW>Z_XB9h5>O2{hSF z{R({&zqj*i7p&H-)6zvRfnr9_Wd#iqZp4AJ&|i&INO=mqfPWOUzg?B%BtLmACP2A9UysDH3h5N^8xSL#M@{b{)jBqr0E)RFsJoX6fTJU?~sa7EYg`?rRz! z8S1*;dJNh4YSsB$pH~?KCHUl)rfr`7pt-sy1ixEncG9rbR64q1cD}AJTffD#^kcIK zf~+ot#m$tb=!{p*9TFvrE;@<8%dg-;l-K!h5oOni^Bv5L(3ouXwZ0&{e9DnNge;Vs z+2_00RL1c7_224iFDZ{$7$*cO%2{_UR%IGF_igK_PFBJFNtDlOXZ6gki_q`7s<{*G zH5;l~_wzKyhGm;MRAGkbs?kA}6gCV`W6Cm5tPVMrf_8k+Ls7H)q`T=;&?Q%|(|Odd zM`3i5%d(B3bxG!;b?@8)Sum6-1DSO3T?jQtTGe_zz>UMqrlOLy{Qe-Y$%5vz?MiLrJvyo*fGH2XT zoruI#+is!xob~iN*+xZsO0CPV;w#L|y6T9n=wb~Osygmf9BzQpPGr4T=eF5r|H&xl zaG(36%uau)_#czkPgIrpTcmJ5j4N^?pArG}?H+qH{fM*_kSGEFC_km* zl8ifj9@OFfzTa9zqt{pJI{62zVt!AF;aKisCZI!UeyO*J9d>Qff|{uF+Q059g0lpC z5rn%MhxIjCL|ui>4@K6ba8}Q?8*em_eM+@+W5XK%;N^L?@Uw5p)LP-o9QyO?W985m zp$6^6@}CTl&|K5+jzPr9DOL-!eRvf~yBolkmg{L20a?vc=J$ zOO%wV0TwS3qJp4@V)Uj_S}}{Vs-UgsySA?|b7aUB`*y;n@>XhouhXcVNsUoNcbXg_ zQgrH7X<*$hx8+EAf9-J83`KIaAN-j4_Ly3lMK48?wLwRw*?U-AxOBS+p#!GgpVRrS z=RSi+z&Z-8%OqC03vhl$MU_Tj@Yq$6o~-KaIWZGR|S~ zq;m=FG2>d7TpSpAN;w%UmhV{Ql2YqDkvBDOV}(H{@%`>(iMNjIyECv;p!)r^W7qor zddv?V7f)krUX27kx(t;6j!n?S)7lez2aHhSw&Q&vc!hibPC6!#9s`A)FQN$KH6ef+ z^@&FA)IojP2C?s6Lk@?b0~ltk0r@5!tVrnHyvU$6U*Q&)dFjJc*)uQmoHfe1@d@4~O zmUP0{>{B2q6PIh0EEe1~+CKX`&x3iV4tl$6Mndp-?TqxyrKThHe$1veJ7*aA;S1@~sQw=X8K|07!emr+EREZYVHGp_HLnP~k@K~R zdB5!C2mV=>V|!&^v?$yz*+S^jFW@S>3Dq9Js&>{i?0bHF7nwje)u#g_GCSULQ?tU{ zgl4O@N&|wdUf1mQM>|=%*_bt@t%|X@SW3AGA8i{1trXNn^0W$Qf(J&-;}SO7*oE@x zG@k`2Pc;DnD|;hSy~gJk8(fB^izan^_p3SP6c;S%ND;z7pyB7|fqglSdd$gc!~zQl z2{E2tph2r+Nc~q?r8J?m8ItFdoh1MOa4_lxAe5OEq9Y1G0wmvImcN6OQnUdPD7eBh zdbT;9Sa2}kz2{9NL!F0PUu#75y}3N_+qph)GJ*5v^redfX3B%bnR^S}OiJ?|WF zkbSM(6sQvTSEG+BDhIalBOK7tA!xNWCyEdwncwc?43Y&%y=(GPnDgQwZBAaV+GD9O zWF40#`HI-?x4R{Gdkz?0wwNcH)_58^T3c^P+4sCP)DdtLkQJ1LsUO+2NZIprT3-%@ zwog5THfa+eznoU(qAy9P5$q$V{oq2FFr2Lub}T2q$^o0Ag=VZXNX0!1rA0?oz?H35 zb)90f!wl7Ga4S^uOV{uGetj&S@*3&#q?MOGad3M*7Jc0}B`GDs{$0YqmA7OkH+yby zZ;sm_C2~j;#Ua-7{wgfR1@pKJrXI>F8P>XtRU)oM z%0E5o<*Z0$B`jCji3w`28C+)Et9w~1U#A`f<7a9{xxGKva}G3qMUQTYHddu;pI;F~ zKENSFt7P~@TD=(q_{J^p{~y;GXb5C*Ty>F}fH1x<+^5`u8UUo=f1!Ol7fA}rOZrU{ zkd&>aZf}MbLP&bq`Nc>g_f7%!>w^&UO2zg2PZII~@9LjlakD##|c?JE*y z3_J-QAc;jSagm5(sa|1_`<(gt-v4l@oT!C+ z$VPuwPIwi(T=Tnjdiwd}!C({U($}{6QPkohszD$9zflvU1IC?#;8e%Z`&^^n9y4p} za#ChHP4qu(syt$W`X^HqkPbCQnl3}oca}%)g0}Ab$F+d7u?zK<9@@`F|4xcrLPE8G zY?7WWf(_1^B8-(cXZuMm8H4*=#f1r`wWt&i16UM0_JoUMAiLzI4CiOdC;IkRa-_7j z5R#v1p+KUO8u2TCqWd$)jY29P4L>uazY_aO^fSxNH3q|m&C9T%`iIL#0LxMaiiC7B zVSl1HZ8!&w%$H&-6wgKAkZw0ymKy~hOGX2*vYFfpx&x&Kqm0dV19|`6i@(MI1s4Vb zgPXrni(2^G7>DtHfVf@*66G6&pE5fgM&scR-@tv7(*ih{Ev+_&Pyt7k0TE+MOTqke z5qb|RE1E*}Z0X_9db1&sN|UDdl)JF9w6sZ1W7(hLQY2fmGlRrKhAyjHa54|iEw_1G zk6EwP+ZT?3@*GBy3)I212W?7rSw>}g-#s-)_)MY_avg(?h-;5#pi=dlm6YfEf&9A% z3rxy8LPJOD?3-{?zS2e0GU2MF)%%MW;Cn zLK&G}(EmwsK(FF5mi(>FUG**0d9iNdDFHYR(5D@VYd@UxeSlT({dHrO1I1UUvSe=^(-=U2LWJWUqGIK}9%mcYq0vezljZyXnX zCX)Q!w4Yqc7d-OqTSlO4Zwy?A~EmtH?Zo~98R$r`Ze@%;QKp(l%AE3EaH?SvZ z(U&=c=lDzt@zF*KYc%CIOyIF2i@sB;?$n!kuJ6Q-Y+UTGv%(GB z`I8-Iyi*^#W4qU%va=LFtyYmy7w%6wGxBq;-mlKk4g$UA7IUL(2$bhnjatCaqUqY1 z)BHH&U|KJV4%c5-n#9w7wteZ&H!!v_`p{4$Np#uXNISc(_A^nvw6=-%@D~{=V-sVu zx})bJ*dr16(r5;|)XGLIzez_2eQ2lLd2aVWfZg8XNzEV;$ib+s*^f2b8Jjsab7N}dJyY0f6$^*0Z8{Ik2OsynHa4uH*tolq*-Ufk(+&4>p6i7rg7%lo z{cE+zm+>~0`Mi| z@@!AnE*#at?H}nFe!nQaFXu77)Q3(}HUY{s_HD{IG}3smja9Q=<3m&JKGmg6DY;Tj zCsEO*7eCV&O}y(GI`4Z-bGw=WL1LP#fe5mOtL7cgb0BHge<)R%pN(<%jCZ*`|Z=fyeo^!}96n7-e?uLJUD*{XT`ep>RMz+a@?3C>PB~6~v;8O%Lk6IY2+)rGR?FD2j z^~&hQYEGw6N^4j9=_P!}&!6HTa z_LZ_zgBg11*3KNr4xtExq%W@=#^_B_44ZLxZ1|kwP^=)o=k~+}!q1}O%ReX?_N8R9lMTjXmsd4K<&`N*noO2%WPYLjBpKyg+gx&x6t!wlT zaQZa96jclwi}#o|HCEG~2-4TSouKf6Z!Lp`<4U_U=485b+0n4O`cp~u5N|*fq&i~; zHxNI6;^uUfiMcZ~h7yspEpw*+MUm8_Yl{&cLvc&#q&Q&E@9-RzU7$s<;WipHjb|^x zvT5BZMI9S|GOPRT)4T^0!);Hw>vq|BU4GzQp6){K|@oJb}|Jhc&4!VL$pbCor zOyXTi^wcQ02op?})Kk->_U69QeI701)Ti@tRn2AcKIHGavCHfa8aKrsdWqtmSb!EQJW3VQ6(lnNA+J|9HBHw|R9rs!m1K{z1Ozbs!&zw*nL?ny5Vewnb# zxYSw6?Qxw4YWVy~q8dAEJ6>wyvu0J{f@x`?yD5Rbvx}!erGxB%DHLxAmk=9~kh+@& z^atr>-LJha=XGIoz)b#A#p|tvpa{9Ag~8=k09f?VDoLlaRfjOV9Il|^@|WN!1P_ol z&O#H!p``XK2eN(rw1{gvN6hHiYv;WRHaMTNzy)Dj=K0H;+Q(a&kAp8=0a=`atuh4)Z%LlrDMCezg5 zroYSw{{fi;e*q!l5FYd(Yyi2k`O zz(yDvje%~|Ds3CYKGrU z*80HpQ(8DoYD$9|sx3hSz*sJ*cTCJY5wFB#s@g}q5{GjQO$a(ce95@M5^RLeS`5or z=%q-*gOGSzw_mMuMFjy{Q-PBl+JoPowTR;3%+QTfXC6gm)ZHq9 z-c&f^bIOJxeLF`{`{#DdAFz3D}Ut#1Iz+V~Ii& zvnw3OG5F7-nun26f*=hOGk-uIVR|OL$we|E_E9NFuV|g$i`(TV%5tt?!3U8HD+}1N zwCaCdqf(IjA>!9W0+?1Kowqqb04uR)BeZ|B?DK$}(%^z=7l9YTRFqu`co#<_IJiM3 z679n7cI&5mxYE_`bj+_X>iy-U*~ZR+Qa8dF1*tKTvWct>lvB@e)WjN7|HiK z=!gW8EDUC))X1Sh>-QPBR>cFk=Y!NdM|==(HR(S+*x(uHfd#BojR2gcZ9X1I_H8ww zcG*kXT!v`*lOB!7RI(SyUrSic3$vs?eVW**4Vo*t^fKrrJR*RM^SEJrH2 zXXpN2AM!*>Reb!9*YfJJ>Z@hq$aYtZz>^k~;N~LBT5#^ZV8>zXE@J~eDd)XAM5$fX z-W$_w@N+|Y+=4et*&yNo4rG*nvWZd|6q)eKeX}tCNAgPvZW7-3HF%ij2+I1Y2^u7$ zmuYtXn#%?6Hhx>=!n5(rLOOyH5bxzB2Prt2QG#f)2v(uF@{4>9rE*(3Rh~)U4PeIK z#IKZH{t8HuU~oe*fGO|o(xL~!|5ys8@I`y34Dc{eXEe5A}4uXn+G zC)%vT!I;eUpEF!-868Q!sg3im zO>BUWjA|8!>j35JHns>?HwVC*nZA8PQ@77Y-e`|NfN^+7d1EIA=I5bK|E>hU?stF1 z;<}MK)w<8r_ULP9m2p@Nk!}*gO6@UuZLd0jr-|YH=l1v4vc(&{%$;@)>AF$;W|j6v zn}&G|CJQ~Y?1S@sdsO#$iEB+uIDdZqfY&PiGL$tPW&PmaRUOf$&yS+_g!6M^?KCk~ zDXv>Fd`=2oj4-qy_IaUEMu}b#V)Rsj8c|XU;SCuPugB9c=|~v_^i@D|R$AvG5rW5| zy0c;(1$$g$9nd{ZY?7PomZ90QJ^H@}D=5;u8U?_$?rW}SiZakvxqt7K!Nls-?z9Vsn~nwVjqjRSZ6)Wdvq90 z8@>F8-VgTn)YHrN=y@S5KVkuRpCj-=wjc%yjzgIcd*h%bR1F?}7aor8{qaG!gv-r) zCAngZpF$3%UYqc@IAv^n?B63ePMbd674R;M`iKMkE7(Y`k3>VqNEl&`C!Y;H5E|hoEFd~I$)@fCQQx>`G53%LaT;KXFvGlsGVfAH{bGRBCDk$ z0Oz_luhmE|T2uf*lp5jqRl279X-@^u>0l=iy{#0`p+ycg|J`WPq8B>3;r-GKU81wK zoBst}o99k>m^|4%KGJ_8QYq}Ov9;MQQaSvRW=fQSa8PHdsGYY>OmLiQQc*{kgqEFT zZM#n87^svGQboG%mX~|Py!p=HsRA}iSx(AD*FH5hHR%WOvPbq*Oq~pH1JzG$v zA=qM7*OOPt=_ygOJ2lR#=+<+mt4{yU;9u>KlF$^{WQ}0f?1_KO#3%oiDM{D9?$x+= z{>-7;ghjh9>ax$|w+j4Wq0(A+a z0%D%oWAr$m0`EWEAgDjBpM1wd*|E(OnLck~zUg4K_p_s;7npo2{|V}*%wVJ9j@l?S zjJT@!9iRRWFhUF9bt15z$BNy*!9$1*9{Q;~FM6pNMV9%`>qN+AKZ8$i8H7nDX%BEN zB*eh9B3NBJaB?Z)znCA6x8;{?a@`F;FBN_e!=;|{DEPk$9(zpCA-n{(Ve9fuhLlZV z^(){kB>RT+%ACpS!v97TE*Aq2jv;%XypRf1LRM=?Y;09`zF_>p+ertCuDrp7R^ve-iZw52IaC9) zy{JrJF({#i(MD==!0pqFgG~2rTvvsq#+p~(KDdMCq&`p$qJyJES`_#cd5Ogr$T%?0XrMpj9!v?H^Y` zivZ4*Gzp}vns$e7t#7(Qe*RG;uSl88oSMMm&F)GcqFE~)@kXWeVTEw zam^j$?}5b0RT3I>5#~Xf_G~M|3fbHZuL7|zSq0a#0R{3?vO_qPiCw+!x%u}#8eqS4^CXTM2 z*i2;*RX12*j>shAcL}w`WrqvFfA0+@o&*PGDiaw+D4T@j0nnnA$0a9KjjN3)`BU`F zceYb(RD0|XWx6l%D#wl|ex)?7j01PAF^$UUr#Wz?JRNb#(U0jW^-7?Im0rtw!P)o{ z@w2gvq`EsqJX53aVkz=aJPk^d16lylKZl^jNRsCgoKPlgZ#zHvbxwUBt3S{V$QX`jD3 z=M5Ye{;LNY*Qyyhz61{a?~(6YBOkCu{Lqw!smE-J0Yyl%oyZmicOPI$`+#v%D!{2vM{5A$Qwh@n~K~+k-1@H_C4xYjN#hn7lA}n_UvapND+(5qO$!a4kim|k=KF+5!L|4? z9YNdg2y(uor2gEpyL+df?FE`f3-h=HHjGTT0l9bI6M|;`kJ~G$({GBbi$UMoLc(C` z030>B5pGl&ITHYQU5)d<-@O^8@Yr})7)(Hh0;-pdZukqZ7~FS1&>{$#BJpQ#k^c8= z6!+p#iy~Npw_nmu_L;g2iM=OBQ8M4($DoXH>>goBJmqN#YjGdM>nn07m8G=? zBLJ-HwCPQQ+-Hk58HoPR$N88b{u?pk38w|})iZwi4Y26(1Fe*`Ei)_~z^K~K5Ywo+ z>%|PVlil<0OW0-FFZ<<95pcF zP+R}kQv`nfRH3Y`x#A0~i7}mikr6wYb<6J2qz{j@gffhQcE|wj!TR4(LeDmz>JX>guhFX~kn7~u%amU8O@Gv|MO zse)7GZ${LSzkq~zMqQW8)|A4=Z6xH!H{O;atg@eq73wEi7IKr1-iNCNt!UF1T?m8w z)RX(AM6m1ti#GWtur5y_kj;scIN;L#;tXekfz>I*q(xdgRH`s|-<-dz~wF#>BZ9>HWS2uX_ zN`|}Y{fGWCnC(b`IF^e9|G^dn?aTR!&jE92$R|Ji*)cg8>!eoGfA#3It$srHgjbF7 zu|T`Y!im+aNUd3wzo?y2jr&8ZrsfSAPY5%UAQd4H!lL!SlN`P?m&L_KeI4kM6Jp)kHzKV8*n~T0b<1 zkrSRpCbRNO&AaiD#QB|c6_!tTZShXYMVx0j@~4xvvlrgsZIS5G9NrjNTF>N*E$;$y6}X3e$E^Lrl0ap~Y6My}m;(qKu?cqV6(l^FeDSW|=^ooQr{X(7$+ zE>x+PJYHfu{$3+e_YzZCqm}>h1vi2<#l(<+J)Udd^@5RxzP9W`pI3XF%vKU)R}$kb z@3jX0Y;j)T?NUAyNQN{P7@aTWs%kigJKfD zcaT{N#tj#`y`hD@yVZ~5vb9q)@8)aHW?l``U8-q~Gs4Y1wa2GIp5>GIR!XW$ob%$Y zV62Lo`QE_Kx^}xi{OHO8Uy2wL$|t?iJKfZ{P%ADhndd!2_u!?Gh53ceagBL0=p$s0 zlm@tr_srO?mG2~GRS8d^)8Xa*@_EwT z5zlHrT-q9!Gw}7ay>hPcP)6$htqivc-Mx)@wZzG>J8XdwHss*mwx$bX#Bhnfwz_e? z&M5+YmBoJ+ijp0AP+!q*^^&Ga+#bb%qSD*Z__%ndo5BRWctIs#Z9;=*ex~sAy~@^< z5aO+6u=2vaVbXi~*DC`ECXpt_?TVky{JvO?P)h|^B9X!_S)o2h&Tuz~6YNdY?Zl95$fI!H^<+<)t&C+xiEs2#urL_BykG-ij84; zJ6XRx;qg-_%M32t=<5rYq%%Ew5x|Rd!B-yZjrin~3vND+%Yo?C5ATeu@Jp%_h4(5Y zbvgQM=289VQIa*YzMi5~7kt&;-{A8|iz!yt2x~fc`*w&Aa4?6_1xmk(t_V_^divb* z=jPiqD)*h|?W`%mL2)w)}x}YX>FMv({q-kMnco%T8-abkmhqY3`c25 zFPSeRyF*yW=^TSIMJNPc6q@TicTHWY8jPL`=R|(3A|y#7+;_)gmcGwdS#758-H<(J z<0(Lf0Jv~ZzVcyA=mK@UIdz9E-j29(wT+UYN($n7IG`B8?E9|s<>hyg%s;=SzxVK4 zTByx-$MAvoszQ8IX0AivqD1tAv_dp&$qh^( zN(JLFhK3ag9rfT{zaweYO6 zF|W~_$fgx44v1{c-XSIx+l8~pf!TS+70r2d2$^Xxy!hE?JQsTb7DkZD(s~P5Oa|^M zHb+}p*w`Jy;uGJ@j1rwVu5C#^c%6?Ieb8otd#{m!E zROObc+)Oe}3GtAs7$&*#)iMnXP|59b=w|07jTI?#54^Nev?#fRcm`liTJ&>BIKO+rOJ8plGw`ENQG-vCA><@HImO-Hh6DAX7FhuuJ!P zUpSE)XXXBo^W<9d`?g?s-TmT*k(Cugzs&P=Xq@|}8<_ik2QPE89eOX%=wqI1UupCy z!v`svRjS@41k*lx;@Cr-VNW8jjdeI#iVNuZ_M?`q`)_`xyJ|9b+oPo~Z|ir{j>GvV zZ@XSIp2xoW3Yt3kB_V{En05b%*z2Z{LM>ZOyp8v;s)ApVxQ&@T%UIF{ zJAof;JGZzg<1S1;i{fTQD%D#6XAtrYScJh7V?Il*lg#Y~wG`1a!rhgbR%UkY$AC0? zSJ|~wBjp-kX7$jW@Hy>)#)3`lD#m}kjlpq&)IT+G;($n9_mVo6#qi@TL1B0Yj7RJsKTm9;9b{r_- z25ZR!)9;Pa2YW)RWmO-aGq%%bNd?Xr!ZD!3?D%tQ_W1Q}?D8$QcQ!_}JK-u>C~$Ao zsS8rlKrolrUa|8qu8BSn1IG<~BP%c|EpDVIZ}AFyttx&C--eCPYO}Z>2}SYxFCkV`CrlLY&fH~Ll&^?}^ynHX;njp_lNcLrzz>YY7?^~4y*l^fH zAI;sG%>hSpB;HKI{ziZ7bWqZFdSHIDs7R|PEKDKhk!qTHm)S=Z1A0&)4@|p`6bi_5 z;w6M1?H}kX5w8NY>fV{3(_3hj7q`V3s}vQakH=^gZ<^K>mTjE4QqtKfBm z-ky%jxFk(s^X^<6R@e&Ew$8fY+{Z0-bff7^V5zjkNq8r@ftTreMB!UrguqSS^KBzf zoelU>iL7H3<0DqX&OT{~KwNpOwE*Y^W7|Imcz^h6=<90h{L0Jnk|KGk6BDIYh%U=L z4g4mF(~q2YNP02ksv=DwlJ9C8Mvhq1wR@?uI7lEkF4p~K;=E99to`oR1-mQZysnHx z*|ppR%(MjIdoyUcrLCOB(i(Na`S08`AFOuTLx&l zV$h?skARWqLAMw(2D}`}a3hw_AQ!7k4Mv`Y?^gr_5qneFvS>DT zeE%F-lcr{|nXGK%dSe=Us^6U?tVfc~A9#O`leVe^F|Y69Qxx;)goB67ms*`g9Kjs7 zsxcwSwDalUpoVRsJyq-|S5ac6`r=DRN6Cikf{Na3m~#WVEQ0{mO$E7G;*TL<(5cjp zP!vh|gKqK}Q6!aCto~+8FYoyUBVstglP98%5-cwgNXDHTov#qvind{k=#YKo>!#;R zLcnxF<{G OoQBaLJ&DAjbv6x@qiRH^KNj&xx@yzwkr47PaErKKgitnVkmWz2m& z{X^P%(j^{IxQdWIILz;ayAHz$^O94(3JdyK(m`lfvE%aka)P0oLh8fn@ZnN11Gjn! zNknXu;^XUDz&xhi9LTW_7fAp&zt5z$o*r5`m`(K+hcFi<8GaOdqRT?>fOqIaGPXxo zBV>|2se3;W7MLtrHd753l&goTT-RVzE96W&$5!81+DN7nl`rA0Vm`#Gv2&qMAK8^k zDhh8@%@LZa_H18fe?HPy5W5R7YoX}1$UXq>&SexLwjENMG9%1{5bO(@R$kfY3XxjG z9(AXdZup!EH#pr`%;=wEo?;@moreS+`yYGA&!^&7q20ZU4Qyv z>H2X%Z$!)-HiDTH&=r^!ZB-zBSW~DGa$wB+>a@D&?8xF|BB z$g0m{;di;vi-|j&pWW@Z2qr9V6x>*L&WWP5DQWV#koP&QMvB`F zhoY-y_iD7+0s^+%l#Wx${*rrF0NqUdQ=+%|JiuIOC zs-yl5aen!VyYjlq_?A1?>F_;!*_8*t#D}H7Qgm5Jra%5n3E47YapRu7afQXF6rso+ zc`~!@${aYOwjHoq)}VPajB5SY(F3^`+YJJEDWmVq2XJKI%pt2VVtaC&`s#qGoxTWo zqv>aSQ`6Jvo81q82U)AL9PO8=N~o&-0E{xR>N+qAstW)}BM)X=PUKRX86o7&srNNl zmb4{`X(hZS)_3o7)Icyk?!?86rXAt;m85YKk%lD`RucYxmbv}l{LB#P1=(k}njx|; zmG!=2F=M~dOCwzIKq3g}WfZ^bTM`Q56s6&GZJA5d*57XfXUE>j?{7dB7cSJr{5b2MO@RjqmdM; z*IPUU7*YKHfp<_E#gN9MYfLEh=;@}&g5=dw?ezp^eXq?`@%Z;$O}rN7b0rNwuDOy4 zYZ)wSdui$FJfasK=dF~Oq*{xXK>gTIZTK9bNT-HS@k%-~kgPT^xsDLu#0Ay$V9}YIAM4oz_LJLdblKQ(xIMU0& zE8uNIs#7vfbjj}Vo{&9|b=4=5NQ(*&IBD)SVOUN-bh?mCQn603_2TVJ?r&m~PnlaXTk13T&UW^X;0@x(&t)#`Nb^+?mn&6DGbhhJ{SYm8uv>aJJI`%ez{tw|TO zwpjfoKQ!DAPFHGCvPBP_)NKD`a&QW2+noSB!TB><`GP5_N8Mx1_5Q4PefWM7*2|{q z?KYOopEowK4dli;B1u!s17+2-SB?)_wjKLF4aouRKM<|vhdtu8LU zkD;0o_hIg@nZNP<#~`ny_3gKbBlfhnK2wKsPeJzIA?e=ZtzAX*$m#K820 z$3mNSCx3Z!bCr~=d(1q7o(s8a|79T3IxeG5zbRCv)}KN_Ja5f)C1`B_7UPaBn|Ib- zN@zH!ZxHtN|#vatDpA+?51O*4i^cB{7;eFP4 zw#Ng(Tgp~=(bu>J)pj>kjN;rDd_%mbY*so~P{JsU1h}ayhp~EFV%udN|6+_0{-TePPob3+w_LsMSDir zd;IY9?`}F=W#*YvFOJtYR%9zbz?-Iu)SwFMKb6Rj2kHQs#^?HPA2rIkJ@ z{k`H)X52-^4&)f1&{WsJi~Jy|`vCAQK$Nkx{~*|_il8?GxO5r1nwyIKePj0KJ0+^O znh@4!x8))gWqhXW1D78+YSaIfb3J)GP9CwE>|T|WRsEeDZN{mgA%QS&Ppf8YL!j*O z8coON>z>a$;x@xktah->dW13W*F@)|S%BHA7(hoeM#Bp=;^Se)bPTYO5gW(Z4lCoOgplC#KB_@E!;;*%Vtc6-TaCZ-R5S(+85AK))zP0NQKQdjAz70PwDPwSM+=$u zy4LCk7HHu&hA+MvdjhZSOq3A%wxi9~^$A2l`R+L4lluccGm|>qs0B;!9~^7BK3;y( zKj=@k_Q*xPyMBOrqA0qvDJj^rYf?CFZM&1L$LfC&Z7?iHW5ud8-9Npw!Hqyr!qFT{ zyexip3tG-Y*CgJi@%axDQ9>D%_DD& z50LH->2Y9>M+$7rJnNVf4V}zOM@)hns2_ zRH2MjK7#BD80X$%-2zbIR7RscH@@ltYd;EzcNNj=y&af35?1g?zOKm?$%x9UMa(xY zA1*n+otIUcj(k1SaFb0_cbute(I#i>wbAm2e%4i4%zXd1I`VEdVt2Nt!J>xYEBF;^ z`o4s-`>zy0daL2G7QAg;Id=$Y`K(e$Y8$>H=;60xOQW)>@FScHcFuh8o z%!4wBqP<)sj7RW-%grBJ$Jao~3oelx?X7olN{f1qcwE_^v%TXIU4$^186att9Gh8j z>h6$j<05>$`~I# zih|ft5--2_BaWja1+(nXwKYE_oE-{EyocH+8Bq!xyVilH$1ySqR{L=KJ(-n+Z(z`9 z;n|nz^O@{0k%M$`*DPqQI@!F*9&lKu-}V_hY)9(&cI;6oUa1vpk|<%_FN(v)Va6lcP(EI6^$B9g@ono@Q*thUDBWz+<|3Kz6KACh zZSV;fa#i#4Q0L1={Ch8nBOrF3dl_=~IS}m=m|*3SEEU!_Gf>!KFW^2}=nG6caW2n; zxzU+6K?YvyRQt?ZiNMyTM#u&3YEkB@r|MxW(!xe%v5Lhrnrfl_0!;h;S=2Lns|f z)w4F03j#fMVD*)YlV;{_26L(wW++CPO5kC{j8Iu#idn9y6bza-bxlA{b_L1_zeSu14;>AaS=^EvU!G=GWd!L0f!jxVAvevGO z#WL-M?u>>FJpJeCp*-OyHCT8eL7?WsDQCPf0hC%Y9Xswwc+ZfGbaX ziiX&i;RptC#NB_MU@t-hZxELZL2Z4e%^IfVd#TP{8)00}PGpd|h!idw6!4WE6Vf=5 zyT~|xdwkxaxz8gd;vKfm4?p=*^f{yjfR&uaS^hHr8(KBwdlE=_N>O9&kh*CofCv-D{3iZlQHU@G1DN2%lubFE+?Q8XMT!CdZz zH1fT{{w@hEOk!-ivpdAgbZCBt;%$IG!=L>5rd*!kj-n#;>K-O0F;I$2@vQsmLWCh0 zd5@8M1k*ne0>uNP4bQ2}Wj90ghk0zq!-*&^voG5S2VEt-L%2a$ys*U_cWLc z6l1~D6}6%QEmAsc*${fYBHIfRfsF3E_2+$7N0mZkFJ!gN&bA}E@4hdTWvGG((wA^W zgF&T-ZKg6bEzi_p10gOe-uGV%KtO`6{Dek>({5u%Pz8t(19*ztWFe zH$tMD*4!VZY#gr5oI1e*lKNO)pSEiRnk3Ip+REy_Iz8!gvm`TqV-3Wi6i`yKf-$GQ zbgU1!gmZaD5Y)u1S0si-@@%J|~ z(=UM!Q83GW(iW(jufpL7znQ{^!z8_%Ob}L9(h?U5tnnb0qDtfX_@DRbZc8YKxsyI} z=_c_MmMiFX$S&E{agSi%RUS&puh@itQ|?GF5Av2lrj|2*ZrnF~JJ5nm zHy;p=k7rBbRrXjHMB6_tQT6r5&pM}MWd%ij-sI`;>89lJqb_-)PC7N$+hTIJp>Dh9 zSk6r3QtSX%Hg&S^9Q1lRIdnw3zu9BO$2ff{@oQ+7u?Zo9E<6qlmz~BSy|y&=Cv|mc zHsw|!c8U@Sliap*lQn0wjucQ&#qHaXjPJdzVyjk&jFJ=6Lgb~-oLkf)9yu0GoqmNw^Ya{ zY zKza=_ZD;O_Iabd07#UM?c5ZZFJUzLyjkWz*P`co^fjmhCsHYjkoa@d`23ky>(T|t6 z`X7`m~I5Z6;Ga5$izguous6vIEI#jU*l;u zherCiSGCT{q%vl@;yo_(W`Zoy1`-hA4_n0fZ`R~XeAL@kXAwedXJ-~6yy3tF?2*i~weFWkhVyp>&tZ4Yi(j4HnBOXx;jeLXmmIIOZQ^*gz1wQK!dq?@>< zxCIR{uHzdFNX}y2xBiqBHgsX-%%4ZFzllyFadc_Ffuu^mP4__cid$8&kw$vyBSY2X zw{EqLHFIG?lv6-u@u9eVe=F>NG-H1-Q)(%bJs4-%Yg)kLuw0L|JB0Mur<4$8cT@0U zmrTTX2)>EH#@9bwkbAASntb_fMu{O@3@8V+uCS8Gy0O`X^%J!QKD>Hu|IOY6!VxaV zr&K}vE$j_3#xpJH%<{(;!`01grZY3DC1twvCWCt(_5r5GcPhA$^Kg3!aYVh#?>_Tj zZapqEcbWmZ?=6<8VzDB!dx5Xk4Thklt^B6dsYWSbT+c}3HUFNi5r-xL{%44uF09}4PdpTLI%Q7tX;u=WTh|6$|{VTql zWu=81vHf>+1r%jX*Ab%j6}ZLhgOeD<=+HYf|MmCUqUXG4s5<#2uMAb`P4A)093ti& z7+c(kzvx<4%KdzZ|uw+58(N?_`1<~kssn$>m)6Cg9Nc%*u zrf#$WhfseZVk~!Gcdq11MdA-zIAJ*!TMxuee}sqskW_Domd!ym`(JIIUycHQ3Bn03 zuHFVMP8RqoNi9hU_k_hkl`k7T3E25o&@SKe=bqq3^16m2^u$bp^BZJM9x>!!*1C&J zcv56g#Bcv_;P!TgcA~xYsYCg7@PW>S2$osB-Gnp#A9)}u;z;}RUO-mBZ)lKN&+eP9B^*2AgGUY!B1pSpCcVH`=ky_sdA_@#Y1k8z;Yh zn(sNkX~S+hPicZ_@GWaf71!aS^wh2gU0Arv-USTa5id%4c;7GfnmXC1|0_FmC`O!p zKl_a?b2>g98^<=Q$koL;?fT7}oz@^JQp&7NJ)f0|S`Ezm`To*bJqnP2kfz0-9D7xx zwJF+($*VWR`po=nllTU){i+ZKVOgbvmathi0;DV)osegqlaF1ziFth`{dO+f+;(Tr8x9sX%0a5f#%E- z{!yd_Jh@W01bQ{2&Af?HcrP+AEYHx_?7;@Tra0)6wn~8CN>>HXQgvnBRGOcC46ocTOCbbAp5ZTiJ9k%FSr;!%*D75=1U6uW7} zGMb9f>L5SF{pk3C-|S}n2l?gyu;oT_B8AB%UzQ3&K^q~1UgQYb;JBy--SIGvye47J z6LT)`r-`u+w|L-8G1z6pWOu(#mW6jf(gL5N&T{)+(M)dC-1pn>iVjuS$Wv#eZXi@t zT)nxF8_bV(-YMCn@46=wUm0{b{|ht{IT6r$*0n=nhS;tMUWCJS;2L`(V3U^g8n(~& zYDUR*Tnx$N&;b*4MRtFch^f{?=a0Q~SI2`n7WxWt;xvk#x22(J&$9xdTkbH8pT?G5 z$@2FY1X>Hz9bs%Llh1Ppyw@RBVU+)9aZEL=hmfTMe=8dRg&s3TCD+0GkI<8dut;EY zDw_Bf9%{zGePZ+L4RNxaMkpjm+Wl=EQA=KF9oK@zI+_S)Kbh-Uh0UD zk%{P+mHu#MRAr^FEvG$3_`=cf6E0SC{MSF~%|BS|#>-4((LmtCXJ-!VxTFyznPmT) z%FX1D4fqJ>Mh5x2fx** zXzVE_g1Cl^hOr&9oz}hSSb2MQl$rsp3foeonp{=)je`g58`@Ss?SgW?DgM%~`5~a? z6E?J#_Hp#@@u7Ph#2Xy|oR_6s70A|{C``t!`^Cz03U&7>mo)()2;SdTee9CO5cJtb z<`C+k?#B@|Z{NcXcIJGG$ZMRi>dTg4Vpx!+X)3oa8kqKs#nO#~)}dn~ zES`L2_`c5wBUL`f#q zvBY`Vv$uNVaA+DwTn;qu;D>H*AB?YB18=}#_SJ>$`NE!2ya04zD^adqnRReEjH_{j zG=i4IPw}W(!vTMIQGo)AB$FzEXcR~tf**wt zRyBNkD(famNhZs0;5dAa)RWRw3k!!^%RNDlKF^h=XWFF+++BQL_BpUE-TOwl10YWS z(mw0ptRpUN?k5UMZZr9{AQQ~Dm-TUrWOcV{T%pwV-6ZKy=z*{$F8|+%GfAS=J!%t- zW>xX?*8M&0awIFj3lL8Rb&<+}U|jL-$!m0E#xbYmLo4S+JS}9;wYy4gjaIq6*()WO z3~`K>Z=t8k!so>ZFd}7$Zi%7AqYFlkTy1mXdQ6Z?!GjaW%>f%vaKHp+r)1fBp{jt| zFiYhjj*@A8gH!+e0L&dH;YeZ3>VrEJdxbPwjg zd$emEoYb;b;TLi6i!IbNN_+tJF7CD=QQp`J^F9CXPXeon8zVHYq5C;hEy66J0{Tv@ z)?^_x8vY)37a5RO12rDD z)}Xg6ly_v*6uxdWuu2r783K^*8B%78SHra0>EmeessT@M9!&&&+y^*VcOEa)KfKC; zkHd$b__o4U=<4H7CD^~0EpsBoR)#R`SxsBL3{*fFn%(HPG49u&@Av%+8?)iwWfPe$ za|&oy8^U{Cvz4amYOhVH9w)nr)J{)FzG7d`o3v+V19v>qQx5nd>fHvN(>VSuWBfDs zp@G&il;bbtuv14#mWE7go}G__FU|EM=i-fPW^z|>AjSRbs@EB)HIgezfX1E&MSe}L!PyF5wQaqlO=fzLM@H*m-P z{rMp(?h~erQ7ZgCqDYW8z6TndDjJAWNy^gV3MldJBl`#2do(cf6A%AA{#pwk%qEh5 z8@divpj;$U;F=PI3r8fidFTvY;0^Y!Eb`kp+bzzItrmJ^jVO;xk9!_Pv@o|(gXjLp z8@pC)M;Eq)$EwtD7^{*X`?b8ieckTKOZqp6SJ4>55-`FYkr%4&L4T7l8fn4#Dses2mvqhc&hvzRA?j=|5L?cA@0er*AXt zrxY*iPrI8ZiYY9Jt&YkqM4A}ci7WoLOjH?Keo{ecqtldP0)vLE4Ctb{8QN{Rn36xp zA1d+xsX@R+PQ^J`0kQ&mgymr94sDRr6Q8zEC-Lz?J!{RmAdk4F zC3+69l|{|Z%lj!Id4nqscb$xDpjTzNK%^V6uh6Sa8HGf0Aw8bOr!Bvak6HO+Vfkiw z#oXumKYaK`L%7GwB194C+3d`5xsdXB^WS6>&CR_*zmr8{cnF?gg_~YN6d^SJFoU{E zU6ze&R-W>8s3qynS_?Rdup0+WEN)O^BQZInYX*Kt97pWeFuLUh?^;A>Z z1`qPhKz~xJhToMYb9y0^*jJF%6dOa5VSu)YJHE@Ji_YK6SM5WM&}o&#&;zaIP;Y_g zt{%X`l)Fp6c1__>_M%)V)ECmm>leTk@#GnKz)yB4{86;nvnwyG`QR#ipf~8*m$s!S z7ktpc*wI36!a8kLwOupBX{~lfQi_L^46XnOWDY;0)j&CkR#Z&dRjqx>k2;3eiOPVQ zdviYWN_Sc;^f2l>xx6ZY9}C_BQeI9xqw#{ClSHz_kZ&2aq5-mlj6|vA@ z30hU}zk^=?uBq^Hsa&U$BWEVGvZ#j=|IYR{WPeHQu?#vY#!OZ;yFv%$;;!;&-_g2i;k0R)BM*Vx{+C z(#newf0ES>fb^C?3rA+P-lh!oyfvM|c^-4U+VM7#rW&z2-1R;op2m=BrsB?E+aMvg z^ImFcx%9hGV{Lre*$U`E=tr>dVY$t*px=f;jpnIWgI(~8&#*^O@U8^Wk=AeD>(mJ5 zjxp1ubfSf=iM@{xFp6Y?9Yt-xp)X(C%M;a{q{RiDlq7&V+x%!_?Y|vZF1#{CV4;`@ zNX-E0Yg=N1_7N?moRgyxjptOgCNJ2oe*-D9!ydz^Hvl!`p|D#h<6r|9?uWE6#UlgP zfbl;FJ6+;_G8yQ3DRi$0VlEA$FjH#4;x?^G>mK{SK>aVX8=4e{WLrO)_tTm|8e`n@ z4GVIy*Bt$D0?6AhD9Xt8n|+D+8Nmm{S^;-BQW;S%z~X{32|lSByIqLtgMh)!)2FYZ z(2KNxoz2CZh0<(4WU|>yu6Sd)^LaRXK~te=vTK5UJ6*5tIJ0@yoJ@2C>%gdMdnYMgLPxR8FG+|v`+vYp9oNr-@#@~njM#;~i8E7G zeCE&Ae$L_Pz<3}>ZHgBWr-YW-WFl1Fr35|D5_%~C9}O!NwS5(=uBOB?HP*6CVCh8S z0}6l{*PsE?oA=mgQfKQa(ZHw9va6|}Q(;3)VAxV{rT`rqaKc$h9h4zr`t_@Kis8t^ zcS7y&UqK*1|Jw52nySe2v{`;%26|^SJtb@G5vh5z+G0H!nQSuCEps%zd1>FA@sis0BKi=w0QE&^c09PTd7K2W2wL8v zp6Keu9-OE!l0nW` z-mU<|bODy}u2na)eB4Lj_1Er?M)SeD`tN%75Mzly=21a&BlE*g>OJlKH&^z|%GZao zPFEvA+2dZYsmtsyS&J8H&1lfWJAd9)H!NpdpG#1ZPFlb7t^R&$6M{XDu1%Uybhmq2 z63P{w1dS7WhDZL899yE6H?h9hL@J6jt(_g|cNY-m1T(oPvI!+bExwhD&~{LQ82ec{ z!j~+u54&#G{@&ng_>;`X&KEpN)U`fc{fgWwZt!;U*jzCw`?%E9NNUy|!AGK#OARWS zS+A@FE-B%gL@=9T%5H-VuUKQa!tnPW_fsB0-faFbF zvJro|wWL&5xgyG??Mj>mYRasEnx`0&%SC7!l0vv^p|_kHr8o{!lFQ#;S{PUTT`Qv~ zB%@msu#gHTym20qnQS92{oAjjCjxZr7fmvcm-z(QoZdmkng8ieq*|-r)-Yl@NrEw6CW;9P5@6hEb z#)V{vtNrUHIJ&5J&y_BG5VtKz8bFtoWXwT#+8fkdCfoZy4{n<$;`gdYB7r2wXn7dvNH8MCel%SXOGV_<$>TnDhv( zQPL#Y>xmYl2L$aZH#e`2n%%-lNFbW2b@1Ohf1b%*yZjotGy}}#BD<0#C5yDSdHKa;53jam4axOJ^Sn3yuQ@={ar9hgCU)Fu*j#Ga%jL;1mW;8A)rP0crZ@q% zPeb#6={YE2+IU_aajCJ(duHu(FWB3rHGXHJ>=!{A&UYqYF+*>Cz*AoB&Dd^YItwR^ z%s6a3kDKrmFZiFASy$s7uXB!77Ac}sb!6n+W>3#o-LfEeQ$Pb|3Wm&6Pm2YvL))h9{uCM zPhQrgr&@XYH}Qvc3zq$tF-C9nQfWHGp1cWMv@<18>ueRBH@s_Ow%hKC^5ni59bgyS zw_W4AN9qfTQ7aI1l_+TCik>FdiFVEUhue-!@q+zNBL4Y~)}KVCOVrc^281F?Z&oI( z?Bn)oNt{?KZ3*8g4o5oVd&90G@=2UzIwblQxFB|g%y%xxaqdo`uuE%hC=Hjupr z4g5>?>Xj_DbyM`&sfD|Z=kmYY{~9&|9Emydzk{240idT9Q(#q{rKyUnYE*m;Tn1=c zal&m27Fg_x-z`K-G6MYbKcdy5z~a8uK+lcQf4z3{wph$9%oAkJA0cZJXy1$jJmG{U z#;OA@(NRiprA1kOATnx61ZUJ9uR^QDfSW#2x+TYB^c_O@V2hLx{K}>W9=_y^HCUj7 zT3M+SZW!57{1MJk8=j`yu}bASM9@PYX>&h%YB8anYC`PZ+c3Y~$ns(DMm+>)Vd_3+ z0Psd9&0o$`Zn+G^wDs|&0Vz|uL&dBcqYh{@4X?A@^g@MZ&lm>K82lX=Bl7y9YM=pH zI|{A*5)Fu_5D-*$8r!TJHC0(OkEiezASds7zjJ$CAYV3BYelsP1fTc)bieJhfGqXu zcYls1Fr#7F5yj>4$gHbb(JMFZ;~gV0f1`Y`|M9@>gNE3#zuqD$BdE|s&%ffg+mu2V z*yW>BE2FA#bW;v!@n)4EY0G-xvf#LKi@pw8b?{LawU_+IQ)W2#+?M8wRCg*?qb_i@ zbKd`Ee731_F#Coy$%d}WQs0=IvR~GC%4p?Av5Sm?sgEaCmI7u;l+V7FjpX_n^Fh95 zQk8B*wItu|wa0lD$bwdAWb{wF>LFMRDxW&7+`Hllmy(89X`G)KVO#Z)LNGlh$~hGq zptY@HfRV~0dUFIIYu}9cSyb^BbYT%-+Qd7LogK_blHe;~d)J^4SRbNg_}oP{Ms?=w z(_N&Ik>r8E{Z{TcQL0rtl%*V(I$pKkvfsv;7NrCx03(lO4C899AK~PB=nE}Q*!lnU)B)iTb;gl-g5M_l}F2TOeoFh3d~~C^AB)(nBnO0bSGb%WFYK2 zl5y*gq(d8EqP=yvkh!Ugm{owyohhWcJ20=uZx52=B+kh{=R|_OPo&~Lc^wEWC<|JL zM08{#G%B())L%!?V}|DLYe4&_Zjimfp-#V_ymviLG0|%$DEyHGewpiW?8#>obciTa z-U0!V?4N!zklp++&je#vUGR_;CuqZ=VlCKbkeEd|->Qmfd+RKQMW0qBa_Hwz*k?DB zb#f_TM2RSgsrcARFm7xP^RJVdUFu+ z?;qT45D#M-@TGF~hX7l=)ohb1u!sAK^&{1siF?c_TXMU^N;ZE^ax~A_uhz(`l54r6 zOZ8&m03Owu8^?`o4A+a)*e;}Wbvg6lFOgL@kN1M0S)i?S=d8#zKT$b$=4XV4=c#vd?)t1 z5z;}ZVqLX%1de=72o{%yZ;_4C#jg{u9~g1G*Oejv@uE<<-0%*-Kmg>hl`y#6!c=;` z>RZjj74SjE)UB!~Ke)GKXtWxZ?yH0Fm%8r}Av9qlFqbOd>uA{2oU&`U-!8P`Kw{|)_BsZ= zDg|~{JCF9nNkpkf^>9F@WDvMw8}+cvl#f5$mA)`0nzI)j%WNn%u-5Dd@--*71tyFA zKL*_u+4g26$?51?V-w)bYJNY}627QWM>;LsqKT~cM{{HNcJaFsB_5# zI^f`gX#?gE;%UEg;x50Hmcke6O)$?sCG1O+r6_^qzw<;tXG|))tRxB;tbu|A-Er@bs$?AQ0qd7k)2KmzCFg zlh*X7gVG*PXpT*fOHW?Rv*+_*JJT>aTn1P!6fy188Ou3>&cF0WUn>{Y+UWT0Ey3P%8L4+n?IS_}D;San z1Tw%0ant3wB(RpR?#mU_zm+^q!*e0Q0QD(r`E z9>~UvbbHZ2{T82eI*AfEX10MQ5DP8hc!P+ASI+^Qz;?AePB8A ziMXgpr%d<1l*1f-QIdOvi8yc`Uo#dInpUGGj$rizoIpb?`hyJGCqSWvCuN(cCnHPk zVWMZPZ%sCNGS~f%p=q(GbynH6mA1-uNEhuaM_DJbZ$$?dGO2?~iFEi-4Aao3g&45u zAqU%mK+Eda{P6;=hhslEO!*@5>Nv_x0F%tEVL&+Z`7H>W_@T4#l6=1N5rvfa>z2+u zAyzmcpDQ}9v`m~R8y};?{*IR*v5)c(cD_IyESXd)*|^714{&5*)6M~iPmmXgxO1H{ zYVKp{FPy|N6y?tXs@y_E@@GS{`=A(IFN%`Aq%+Ff%cY_hETk#5^GAoA-Fovn<-XWt zB{*SAP&nEY(pHfme%^J&uWNn=8~t%2&nhJtGu6a^Ue4ccb@8cO)UMeD4RK!MwSxz$ zVZpoF;c$1PK@5FzsR0ik<7HC;qKdd0p>m`D4%tLzp=kIY#Wir6-6EUtgKL1HvN*8( zpH@FBdaKm?2*l}j=eH6vnzWaJA^V1 z85!B~dmiui=l2=!?|;=T=jEL98qeqTxUTyJ_zFZ?-#dEY@?pU0l@3hV^6>_~#qWY+ z2MxxLc&`qp5aXrU&nl%~Y&QLpj%hRBz4bg3Yx_%DG+BLMCPRIgwE3YACmR_?_t)oM z#yhYjdmQXLo*q?}aUeILY3{y#j%2mfzpveb1JGruC88RvnY!t=2UuKF9?J&r7Rau5 z4P_W<0!xB^vEv?xkQ^aUIn^21>zmvbdmcIxo?iYl_%%K)y>JN&dPd(&cBs0n4y_Jf zJX#w7gN6*#wHJ;4@JS$NrzcBw!@&0Y%c=;c&Cgi3!i;r8ye!M3s2!=axH|my%*8DG zXn!QcwHWr9I?MnNLTq8wV-8^8a%x%?`L`X_oOr z1Tv;`AJU^6j^=Pa!q%DMm*xh5k}VbgM1CqIF0$Ov^ld7T&1A(3X8(Ylaj*R2FywOdI-)+)(Q(ZL>QXb+2e2W6Ob850Y%Ybv8vGG;An3W|0O>dtC)XI{>DrFn0a&m6n5!Krs& z-(sm?2>frlo9zQq&j?!4`M{|m84au-`Sf?EuH1v?tfjB@wV(MyVkj)EsLb!CSzBRg zlDQ>j2IG!dYsPu><3|ek-op!tZ}F-3XsE{&*4sa=smXmvf-EveP=D)laCDAGfC4VtG`;yniu9ReynJ+6U3YY8F}6?{&B)W$ahm+jFZs5V4z=%f zl1x-U&+c+ojCeg1MxZ@m%LpjyD$i)z=Tql2A9U9^JtCbrCa1S067phpVT{J$eUAGN z=NuV_d90-G8KfE(_x%K6u=0wpaWxk8wXX#AH3P4fE${DF2;&TVM=kYG#VOv*0`32U zc?h|SM)>gb!X}*D`HcK$Wh1D-N=` zr{}?)trg_h-KxeR#5~W(e*RXCe<^~S0QCWiHMPlPXz5puQ;bSk_MWSimFCzza7zh9 z_SA3!KxZ&q={Deee%JHqAwb#tSYaQ!>4gm6aAC2*?j_BzH%+DFL=9j@tS-TNc*v7g z07uo{0lUy?$lL^{l}UP$U{cdo)id%m-#q5v&Ub=%aoTYLlbf0X0^L6H=9KNW8d&NF zD2?#h>v^jpFefp;Kb4MI>ywLX<4z~63AS5S`1-Q$NCA{95tP4S4~W$eXIDM zi`tY}jGY%hh%`0*UMZ@0w3;NXT-U`i5dLEE*Qh`}-{zk$Qo|PYQ7^-T;kLfTDO{+< zs|6D1Gcd7tEnSm72-NYSY#cKv=l1kHBXb@jTQfG3O< z`7+TdmQ1Y!p%XgvMdCYOH_cSW)>4lAW5j0-!YI}!omLOXPPNG-AiK4IZ82}-%8$mz zT5YAe^cMDEJcR8ZCuzZuNX3X-g@}31r6a=^yl_G6DC6>du=$rfjY1&ooCqSrfJ znW_=8B@XJwoGcRuHo0clYueRxu#HE?i!!K1GDJw92>Qmuvty4#g8LrKzFVRxTACyZ z%z=1OZJQ4D;BDYV@H%BWRqRS1h(NhQro_HtuGJ9~t&>K?C4%t_fmprB>FCh*k_ds`Z5?E&L@LB<|K4Sw2W@XKJY$DZ@%Fo zRfRsv-)PIcZS8M=yEw8ZX)bK`_BAkbAr(O)NCC9zv)8k3@<@l;hT2eNOQD>t87(9T96+Pqo$MvIJLGy&E^bCZvIXo6Dz|Xj^ z|MKuxz-QcgYPL>hTpztj;Dr}XCa@{tt3p;K^hI!vO^`6}C9noN5k6f%P5eG{0{t7A z(0{zHPkp@J{}}H`rgbSfOgUAG(ls!|3#?yLbedqh*8IQ2a#?_HXM2meB2W#YZcuIZ zMI3pZVoFXq4|LphH{@`V9*%wQ6ui80hKiEAs2NTP1N9_V`TruRx`Y(MOJsIAG{cKp zonC)DU3mE(E_Xl*?b+>g6~PxlF|~6dC8BQ+V>;6T|0me4g;WwSQ%^Pi%~Cxs{%;#E zx)^Ny=b1aPds=Z^xv2-DNlQJ|k5Xd=JU>l1%v3MYk$SFm|FKobArPo~Kg}O);CmCy zMYf!U;0#5IMF4_M=X3$DA_E2UKd`HKH!eW7;#Y29n&4r%^~d5RmsO46LC=RH+(g~| zlOExnsBC-j^e^V>M_q|=B!CV07 kr88tA zwhOfWw&MWcfJP<<;lQOc_JCgI@567b8b6j{z=rA%IBZbZnbmzmdIM`L-qr7mIpacp$Nkggs% z!^_(dK%pNr1TfQgm7ya%Dq481Dfr_6^2C;9i2MG+aJjoiSR=@&nqyz?BUwMU)hvD8 zR4z5SZ}})k-}mS-cHrEUu5Wk*KHDaU3j^Ng=g3rmu8k^YW{}zve-y|mI?o6f!zS{AKT&Ycub zHkFM#WRgODsE#LCN5IM@deZL!w1(^CHywcy!reI-Ud`jEyp{j1UAV+ct*ftP?m-Y2 zph!$*`~Pa-1=iYxes^sYbNr-u*#6y6=+>XvOKzJ|d-6yf8yoD^ny?||M~h1xIcC`Y zsr%=EnG!6fg2d!JlBb+3ix`EHJ!%5(BIU_E7bic&`)Jr;pNR>P&Eb<^*)2an5m2Zh z#&Q^=3VdQ^aR#T~$ef`G)Wn{hhT|Vh>8qGR_6plJt?W(wpW>-h7AWqyn}DV>sR1m0pC4_c~jxemGGbRMsFKmFFs}d^kMhwhoh`& zF_7&w{UHvTg&|CB@Sj@p&hOq)S9}y!-;oE1bM&ic%kQvaxuJqcfqN852OaKefnbD%#iKW@?OLeaG^Hbku%-2- zou1Y*rRnSOc&q9YYoI|71#l9B&@2V>%1zO@u(gfW^Vj zfemiEI51`F{>$xsTafh*z+(UX3Bm^VRsd?;9Ql{0(lcpa*^$2bbD$9ZbPbjFT`a^9 zdpgq*6`ePt+S#e?6@?q8$K=7Q3*j4X?60T+K=7nKiEQdu9xnB2?-^EL4t#&}H|nQt z<^cz5EyNHGv$4l|a*VuWri|4OrSCSV!^1k99?l~7vi-n5@*ciSh7fNp`kt*8J8KK5 zn@6#HOyOY-GG^EZcNxpvaulERdlIJrYiNdwnoo>?MEsFVJ@S{vj{IA9v(|GB~`Et5e2!ViukaXDY&`Bpr zedyS5V`K~y@A*^> zTkER$kMRDd$-RLr_OQ0e@L4()ybZn&Q&jf=H8~w?B_v}zk#kpA$_*zvk-OFs!~JpP zt@t8?OWoxFRqS&s^ulWzr3Rytp{peFy4PrF!?2*E%kKe_)dt&Zi_NUJ7)X8F_Vq7n zCJ@Dpfh9FD9A*Qa@LK=!p0}F| z`hgzVulKWD*8*FvYufVVLPo^bSn+R(e($3?`&r?9>txGC6qz82eC9R}b$Y`EgxJAh z3`yodsvh)3@RZ6mI=OSUlWA4CCo`OoUi&#;vp@YDS)ZhhOZw4-hQn`*fxM8u@cCf; zmSc;OqcWd4Rseir!nz3N(|xIbeeD7l)ZY3a3*=q;| zuUNU?RTz0w{tQO2$9H>P{Fpoo&w2-`{%o(O{F_ov(O>>n^d5gpe4Z)p^bobk;%al# z@p%nRYULoAxwA)N>+VQGb6DSq>o~V3H1h@GiO{Eii8h%_8cwTbq)jbQj=-tW>a@uM^ zzyesHaH;`s8a{eRCfRO9RaNK+TJqlH1AOBKBPe%&*QqaYZ|K5;^~$FL+K*I99_BTM z?{)J#v4ie*HikfQi_*Iv%{{k3GOEW3pP8eos1G#+Y5&piSa!K@+G_YEh+)`fM??W_ z*B#P5$MhP-pTzKcTi3eSJZ*wCNt`v#X_*sXLiz=$h1$I0RqWB#U8Letn zKCOj>cjGPDeD@YA`IgiBO$#`~i88@T@rfg9F(r@c;K#yQxL;2_gKZ!y0q^hZ4CI3i zSViMnODyo>Vefs03Kk-d&M=VWM!ZhzL}KZ0FvOK1>_l-}1Od;z!ktaL=jcF$sOky~%EGaSM^nhBsuIwmAjf zT|T)MjZ0Mug?+?$S?`;Ha zHoUm3qjN^HAlfBa5f=g;oOvl?X9HAK0@Nj-d9{lwF1y9-GIKr0Z`@W(_7iMOX1sQf zX}(o~BEm6YOb~DFCH7EQX=PbH6A{;8B40x2?o?w+9v-fTOib`x2Zq}T`XA9U$9fL% zrkGu8nXySPL9@92+3T4>lAv~GS231x3~rDHsD@+GBj}LEGE7*<-b! zYLS>2-%vu)zwd!OkNK51Sy=Aub+H(H%%rF0O`j@+;wUo;L zEeIO3iQu>+SoZkKZhbr5k{QLMy@HVC3;}0g6GR;ncGZh32`>C__IgCypl>D-F?$+O z5nby8Sn)w z+rM&baQ8oasTQ`~mQ^&Dc?&&Q?K=eTH>uSLEDu}Lh~V51fv4pB0_x&1~6JGh2*ECroBGl;(sq8ELXxuF(GSnGXF7}+~fIW!s3u``L54}ovS$AzU6JqTB0BL6bGF52ik40%ozzMGtO5nSb8JY zrS3VXRQCv1%sp3dpEaQ#*T_z6=e}R<1-jzt|u(`owqV$t9uz*p#6fco+%y z1|S(-`hP%`Dj@0?YIb_a9?fNzS@g>3NvV^Ci7VAJb1*lObk0vdWP-PVfs}nwS40A>Uk6ewXA}mXMgp} zN3&OUuJv?uquM3BXakstWZs-h0bI>vcl^$N@&;(gwf>?HoQ^k+=;J^jMMmUfNJ*O76F$U znhJRbpcOqJH3G7vV7zWLcbkZq7alE(xB(LB!bWGm_Y=~?>oOt8?BXQp{l%n-OId@* z%~9(cM=E@jpuVA!(L$OxQ~a_KYVr7)DxO$S?hR5_FizlJ;U zQVqKx?;JLo?D5R0``98{DJ?!8CY_6Hi!Hk&JQ(_%BHK_vks|y(AnYg&eG8rK*Z^)U z3IRucS7P+xFL{4MDO5NUhaV_N>TmiDOiJF(MlnA=35Z<2Bmm18cjJLOxQC?P**+=_ zx7-Q6OhlX%Wr-C^Rp{qsq%)*~nSC<^n6PoL1zk8bOa>W*|u#;#6XI6 zzd1zoDFva5z3~fPHrnp1pw5R5@{MS>nLRN&VJ}643_AL3iB|;Rp#h!A7W+pWnMtki zmy+cug8cooHuY+WPV{2FNsj-nQ-opW$)60-XB6xW^;yP~ynAz9<@hau<5vQKM)uCz zKm|RI${{GSqB3&xH&2Dnb+cSx{`)5TmuyqZB>?9$PxRe1Z2N8LQ#Hz9RXhG6T$S-Q z)11sE6t<*{r=x?N=o?UPN!2w0qx^@kl!G@VJ%jYpb*Fp0hsgXQkdZBAspU^iNHF*d zIn6Bn9dr#Pw&X1T6Fk5LLVm!T^v)us3NFoIrs z&k@mj|EKC7gqHr%Sv@-cQt5;@$3AJ03fw^`k~Hxf!bs;gTme;SM7>^zo|dLV zlK)q0(A~4h`k1Ug;ev9e;AMGW+4?I}`vuwZB~K_zDRcAv`^?7n8bLh?6|V?o=L9h3 z7K*gN*12LvoLA~XIUj8ebHY*v2s4@;e(O=qVM2^SK^2QC))5@CBCGiPW9c}*vksvr35>PWVfW5t5mukn$6;|_Z)|JVJ6yZz3&8#97Q`r)EjJUcq2%MI{j2^4coKBJy;W5{#a=-K@tZHUm&XqGa<6BvP zY0ZN(p9J_%dhFgkKgUsH4A-2Xy`T$7n=w;KGjo?S9Dp)$@?;+ARN=2wmI^4FmJGH` z*gHJEQjWqX2k>6YaMfq_#T&I*wcGi*JcD{}jydb;CeFxsT)oAZkqw)MaEf#$08|*o*DMQ~l#%A7wwIWiZ9woZV+vz6-f3r7%e^4iE{;rx%;?b6! z5i-oyB{)Zez0mp(PA&5R;K{?FFYAiLlF;>nxc222YuA>U0s@g4J4oa(uPgUdO}W3` z?|ddHD=vp0YDaLR`ra5;&*t4+`^;rK&4H3{13%#MPV_IVqAybeaxxmDUo!d8dZ_J1 z;fIgkpD(8{p@ED?K5?nFr5zrB)`IlmPYuK3*ZcJZC-QtKQ9kE-i%stl@jpF9-KDE% zQYZk1UN?Iih_!wSV4iGfmu?BS&M7;*_;ZT<$0+WG}Vi%-a%roK%&h>iMqpQxdJ}t$B zz-k4us~B6auuB8;fwi0EsR*N~$8*fS1XKB-u*2opgQFuP_WCscNLaZ!wt|>sfjlSN zACcml;IUu7gjc=q zGN!?Efr|anq5dtr{N(#3URw^(dM?36k(_KG@}SNGRb}Sv3hg{!s)fxn0X-qaPVaT@ zbDL^XO(AO6uFd7dznsAwxHcDS1ps?T-(=1Jl`U4+CBV zY)pkyc#uifTHP%Nh*4!LV(;X0i{+<=jaLp6Jd{Jk?=R3$+zkcgT!IX~P?vUSCE%=v z5g5;6x5__RtbOF+DB`qQBRNq9*U!!TX)dLo1-izw27EQHmho~Q&3)2e0(A6?ut{9? zs(Zm4weF?4KG>d;<9r3gZlymvN_+*jfUAlrdFl2fb^c4?GvAx+aObd#cvMV!3?;v< zZ`2p-No)=fsdIwT}T?!cf9_Si$kGH6&3>HBje zLfn@hDypIrYuZ>9XvS;}abrq~nHr7|^|qde7f^BFl9s7-w#@AvCFvtSe4FPrR5Fn* z@cF0?{q89Z(HS>48$Nk1?5WTyDdph`-&4KDbrT`YvKCdWITlR*<)X1X2t_%HT98eU z@*L5`Hrr#%tir-fq_;mg+9>uBqVQUl82Ln~?_zsT-UT{^MUBPCNK3YaA)e|DA#icy zPsz^B%bkP#VIPI!FbI%7-owWA8&0^w5~Dr)=%Px9`Uzit5Po&~Dg)Fh6g~!c+t*w_ zkY|lS|Du-`YB6T2aYHLX^#OVx+CVJ;V2-NcP0^)H0^m*n_8gZ61jx`m9+Kd+jLdfF zy7mlRyV_-&bF<#*;BC@JQm^xxC2@fF0cv~*lcsfV#4lWD{c(@cm9Zl7a#1L;XVwtw znqfjj*wo=|D8QxS_2|z?)!`rn__Z>Fhme|l;N$F2Wn2-rq}9Y;B*xm2O^l|CNLt;- zJvczSnVhWuoPKc-n@u9-OppG_6ocVKph!B=9t13tz@b`EX$eLqcmchv>dJom3@gxV zlOkq$NbN*!Abof7q5k`)T?wCd`aC&-YT~l+g|uaXM-dTa`XnPqat^N$%uUS-6l*uG2N%XY za=)6rL{c12MWhKBX|_O8x@OI4G%W>MP5^J95lt+JB7fwu02l~^63mTTUHA?!v9r3P zWm^5&H$l5mgkToqdz%T})`supw6?|;irkh$^}%}V2S$>L`5!$$(VhRI?+}IZoBwPI zN&}4eSb%Q!oHM+`$}!K94K$XicB8$l-ye{^1ujbdi6d`urR?{79dskq2n^X4w=tZ`yGd~nb^jhpBQnpSoRLHgogXV(b*c-tEgl{;9kG0Qk!skO z_hNRQ`tKnr`+5!vv&IeW(`ixZuODJ>{kAukwJ?4lv@`SPV$I!6peC=(O18~t0v&aE z<68Lx(OSHjyahA$(lz`o2pBuRun@Gfki!4D|)mWuV>so3#(jJm7XWLb@ex4C_Z)` zBD`%&&#vt)dsT-Ap!u71{wqcx(E4;i|Ml63M##+u-rMv#qcxlbS zzAVbs>`^D)kw~h-{@Kvk#Rsg%h3g>=z2amt#O?@E1+v;(zvd9WyK*5Y7a{Xam>KpC zwfSfK5lJ3cWRo0~dEDh=!y6{=2iMzQ)#V1qE{2@Uy#n5pquWvm<#Z7YL;`8ReRrr1 zs9QexB9tq^w~H(xcD!Zk0P0)IPP2FN7XJa=+%4221y26vBn-F@NN9q3->6kFK&B$b zng%tessskX-nSil)cO2Ng8X}TZ26H4{Y$1DRDQwbO-I~-HR8B*;T|~?sCjY{99FjJ zxyai4SUJ&6NT^JCm}`M=+?|T!URjK8evl%+=DR#&t}R=v;XTF`(NSmMC_%A!J)=y?xk3L2%(Z*#54mTKte)l^DJ~2kOAe8aL+WuBStgPPpzdI~QUjoif+90?aNJHrUh!(sprN zz1Z7FToDi4%myQEcDPd!R%}qhZ`(NBu|?$&e~7HqFGjO;Ujrtg z4>BcBq_hb8NaupWW*^5#{b`H>lf(#_RE#bMjpQX;EYY5w#O|^GX%Kt3Uuvg_*7hbD zx-Rdt$t!_Scp;)+31;+}&v(gSb-Tmhg9G+e={Tc3`4hZRT#_6^7?0U3nnqn`;UvEa z4}ohcHEOl;A_NLIH7(gvm< z`=M^be4!}O=iVBl7}glA9-I2b-kF(0r4s4d;qc%LmxMeprlMe;HUjZ$*!x%WJ_!4H zgFHC*?S6JEEa<3^aEeKj_35MA(gLWve0coVL_dQuE3nBk0hJ7xyM-Nsx<^e*zN}+$ z2j>#%y&NJjw)h(C33^!5LVN;jg+t^rv1IrFk0o|d;>!rD7Z;(B@G(qsGVxA-cN?wppQkdUQlO1G0hqK};KLF-Qp8i$p4X}&y%Ew6W^aoiBZ+HYSYa8a zFQc+A_;^Qx$K<|arj5vTM=mp<#5G5xlGQF(d#0Tg-+P&TY>LLZG1@0VE9mikNm{e- zphQ#^pkR-!^X?M9G3k}?4tK%VL&&3{K8{r>Kn|&bqzDB!UjZ6ghXm-7dX{E+t&;In z?Th>vhF%cYx-LbmdjsvHK)d>XRwIF*2o*u1#5LI9(RcTzvYo*Z&!s41Bge`={39GJ zpzsLg%1Mp}SUHeRO>c~jNBLQcATOW=|LLH5#a{oLpixQH9nyee1qK~rD=H{V0oZfE zG)$0WnDl?!u&1abl<78?5OZcO6o3v()(#IA1+kKZl&_$~T9*t>U9lH-gFmW#`5#$Y zkw(hHNAPZPnGVvFY={72uKkOmFY}!@eQ)8;ul(UkjU$t6Xu^NUXhFl6ISBq|1mRL{ zIgmaMV2gXpG*JTYR!#JfnX~?fG=`3YtO@J|O0i?2JI%3e$##L{R#X=R;M@Sc+)?>| z1&^un;S@=5zUK_7*1pq>AZFD;d5X9?c*&+yIu)b;y^iWtl|buX>D|9-x&O088*LvH zD?a~ zuP}gTR*?#(-r;uah&@vigz0x$o_SIAnzDjkz1DPSr=)co8T9XF>%VP#XD!)sXW?0w z-aBN_Sh6=7oOAipzG(7D#@0xXD9|d>{}~-pTJar&H>&{8JkNie0ROI!seM|?NiHsY zCpU^0u6mv3NGP7SK}^LEFM~I7|znn`Hj# zU_tShp+xoTQsf>Z>)oAAeGRRPv!NG&ei#Mun)MkUC#p!?gTk&{iU73-K0Vhp^brtC|Z-z?GOfu%HkL|+A)y(v$Abv>4q^nfi1=?&Pv&!iAspPTb1}X!P_+x}EpO?_}J}v6UrAHxbA+qv!x<`IEo?{avM|gZtN#_bSKe8lQTNsG)^D?0bFYwhgt{Dp zEHo`Zp1_8KWVPNxsnL(~gYCLSw4Rur5|{I+y7LWfC1@-l-{wZXtaq;wLzA&2g7z93 z)MB%<@WkjJ=JQq%91KLb_sc%nxpDn4AI5CQV+zd&pY)BaLQH61)7r#jjVH9*>Smax zK?5}73$@F9fPFSY1gQjSL1M%?4s|-_=vCg7c#*ywjHRgAzu&B~kd0_ec=D zn$Pk1iH?Z54w^mhAn*5cc^$3&-nRwHlli&}z7Z_rG3XS-nz<0yW36bK zNoKTnnJ;s_Tf!(TX*caNI*p{K@5WFl~(0@$>pik>fp`jrs;jRR*YC8*Eg1 z15Jtme8&7)XB>H_`XY>Tu+cKa|HDCDd+S~Qs?TP5_>oYL-LkLVHHh+- z1Rvik6!S}kS3v~bC2+R_t!)B;sDRdp0rD{xTn@aAlx;xX_h!)}ee(=rH-%u>B$#^b z#sv`S@1sPzS><#xKV+OiUA{nth01Bf%n7aWXw^CJXfFZVuh8mz_@r2tk(!B9+(VEs z-{mS+rXEdefL6%J#`RML{C^T8No^A5mN}q6{-P68_7N~F3V777bA43clry|fqyYc% zPXr=NeZ9>B$!gidBsoAa;{e5K?ju**$@06Nh(&5$acXE9s6oKDdEQ6moDhglT>v;8vE2sO<^j9!fY4PMW#*C!?&M{a9LV*ZVyK(Y5=UmSXmK@NYJ)8&Rve#Mrfy0;}kk|)t zSlF92phz6?ho8qzV5~adjb}cUCK}5W<^amz(8UVyJh*stBm+_j<#=lZjaO97$V9Ap1Fh`^^8?oftS z)+w*tFu3!1BO(RW5nt-xHG*22$qIP@lhDucm0kjjBd>xzw$0wf-UeIM64?w);r#18HwAbP8C8yKfM>9{#SBC^ zG>)U%$oersq9Qo9?<}ta@K077zg=Vrcp;zn0t7{XF>nk8Z9M_N0A~fLjEoVebry51 zH2DPJG-||w2{1#e)@}UGyO$^H1s<^tirzx^>q5BzJdgg6z)qNzQVtLK!ZqHZFk<$y z@%4Y~5(I_* zp|)fO#?$QE^K{Xz6`c6&1GT*5lZxu`_%?qx^C|qO{1q2#u2l**_0G8qE;mVyRKf5a zt?O$54p*yii)@ko`J-$@&dh}AXnSnzzdNw|r!d=>|1{z`-o|}bLc#l^M2%`Ons+A* zaKvHqLw0W(X~(4v?i;+VJF8|+;-C+>^DfAw4s!$F?sSvExJ{GcFfunnqkSPa5HJ>N z+|A8jjf(Qj&PkJ{`=x|I_F@!ts~3?<8>byab_Wc`_q*7&k5~2U6tu;l6YP zLj?ijbneIO#-7FKE&BPl_#zl}TsLjIr6aTTHEO&MtC_1vlhq^TRN}Hih`ln-7mb&)q;=r zAug8t{6zXT?mF>0-uKJ7LRQX5a8U!B2XF7=AebHD#S;!Mkoc%zO*w`Myw+Y$I}Z@f zV}Et}2!4fDFmvoQjxZFf(KWn>mq={q^+fdb17W8^x~I!G`ew7gKDB3MhU=kV1*2`> zs)8+UIT6wO6(7s=`34Gj8WOEs!Z?xP*o#lz;EUUL2-c)0=y#GV+wYAhe(REtzNtXb zYjtV44!EqGLyO?e_LuZg!0P^~fYAf&aviZ8)O^`C1F&fLBSuoAJg`kvoe{YVNwEOU zBY|-qWe^!dze=9-$Z1R zagdMsxO=ymMppX4 z&+&bX(-B9J##>z?R$mLM>Wg20x>EWWx=i+)T=}9GTNjnx+|*~mi9pNYy2W12)Wp}` zTi0g_Tn`@{!+p-Pagw)wtWX8sZmLuw+yF`hd>ow)I*!4VZ5aLc63*_0aq_Jg+opT{ zf0mX#ZWce3+D2Zw@l3X0V8mF3&WS;keDLS*q_5^#O9Db^2kkbmFN{glk0ek`Id%UO z>lA%bqqM}5B7KjqQ}<8c#axayRLN=PP``u6^fxKJvh`+~+G`r@0^LIb2lPSQY)!Fq zWBiR5C&ERon7Efa@AZmUnKoHpl(Smax0jIS6r&)e0pRfG6@bphX|V8^4ul@i7=W9? z7*({u<9Z-o!s-+cc+yi4Go{56+Zn4YgzYw2LFyUMpT9k}YulzVZEQE;EA-pxu`a)> zS(Sdo`abh|{%B1TbdHPe74vyqbt5Ms$r*_A@Vq*-#Cq3Cnv#n?=4k>$$ zH4Tu-!qSB)(%A?1zcW2{YP7Uot#^SE>PoE_uvnUf&z6IPS7PMQhL)}nD>!%F!)`V zet*H_Zx`iC-20_&da5L@NQZYo`kAVsX5olg@p$RCryxI$OVaWP; z4T-96>c7Jc`6A&G(@~)1*VjkARLb0Ou@|3glr2%z|N8Wl9@H*Ij1u&+hy|Ou+6=Vi zl>-Z{z$+cK>F{dqI=D81F8AkchLDrZ!T)_TJ4@U9V zzXQ%t4<`;3kV{X*fiW1ZGEZy|fWrPGPzjzj&B=lhT)6FfsFR*QdJq}YqTMY%y9Us+ zXX0mfUue~U7jK%r_%CxB?{%Zu>-V*@gSc?EGv!9M*o%GGB0!BW+IZ0z9wQz_ zjK0bGzxCMX2dDzv%i&~)XjZ^f7%rrKTJh3{q4futq{gS1|A$C(cAT6yz)|VSB+4Ri zR-tlSpG6BXNzE%+Gx24<75lS=h8{1vjV9EvlKk^W6HtDm?t@^ay{&jv1B=`xxQ8v* zUhM~i_EbH^{}s=`dqGvjHIoTAessjv$Y?!%l_4t?mcIGg?^AG$I}fkGIl~TW;&l|NLSxc39iwGar|`=;v&!@jfnGH@Nt}<+pl9 zsp*6;xGcX`PWOui9(mB%^E#5cv;Zs#NowQG2CSBafDg_6nD9wmE$IeJTOK=cEeE;G zooKM04Y8^)7aaP0AGbwHT3hR6Y3O0;k*_%Yu)s01&9>!}tv2-p=A8QW6S4^_etYav zbCgAL$ypT)hGF(DhWinIaJ8nsZIyu`4^w({=l<+3S9%AUfKd#QDm98Z?R}IKb&M;w zuravTC#M#6zX+XHjAh>$77|^5TA`tqbZr4L0ELwaqYyoqeh!D>ZT2=Q z0TAO+u#QPIWO&y344WOqyXDX|QcC~;C3Bbo&C>Q?pwz{5Yk>m$mf@_B<)?Dy<~Oo$ zXZS$<1NRJ1y7pS6hYKSNr-zbw!G;}`6AU>@B9EZ^+L)$Wlti)66wsCV= z@cc&Bt=wWxW%k<8uoK~}l$yLGMUlaHNxtja9-JlX zL!h^XpW`h48I&OGOi=JkHKFmjuJ;CH5EW~-t%vgF$+r#%{Vk5as9_u2E-#2BOGI#n zIw@;bj{K=TmRP`VndT?7&Jfidl89L05txO#fDDQ~4H0WjMm)gs*7irXA7m5@i7H8f zs+fvu<@q1kAAY+AFtF{yuz~omkM9EF3U7C9+-<1fbBjLTRY|R|@X~=_swtN{-is}! zh)E7zA|a;g&&+~T>yeque4`^qciLSBH)6+6x24jMzBfC?amlGFAFE^s2HM9tNzwhL z`8NwYYxpW2kdtoxT9J(SyxoTH|54moxeW)k*lhHgZmgn9Cs8NJz5L|askWJF|F<$> z8a+gSZV>UFGZaz#>oR@!VO#vi1BQw&P*m+6e)V15jR5Dv!_h>9x`4`uEZCqfXC-}9Thj#{IWV9lClJ?c(8cBTVVAiD^GU-=Uv&5=33&I zZX=Z5QRMXw5rxj)vhBQbtg*{fp?_%`{76@6k)3U&TpgW}<4SqvqI+Vj*J@2Qkhfzu z-g3EvY-5VV7*8ekzay_pl(wBy$!k3Qw!%X-XrKk(e|F zR^t><1(gvW$qxWf*1n>f@8o9~H+T=*qIYRj0;w*Ftmv51i=r0)8@q=|X$>Y0MO+wz zEv`=Pb6UxSRiJ+m%)gxpxVsPvhZ(}mE|e(ruuwnhvdGbRqo zYdae8QL%*Yj;=D{*e3()*VE;Ko6#<#1Y~NP1^n-=Au5$5x-jWOL!IW4iW3tPib?PA=0cB%^`#DlQ1rI0$| zeCxGKk#FK%FWi$rO*`0)k7AtH`xTADf)%<6)@-mI(#qme5`wa_k&efRY7qDWy?U3j z;{n5;z9HBo&~Ach4%&tC`x8DQE*NGCjyOR=?3EP(R5<8|ZDrWE4gOYZzsnW8_JQh4 zGIxXx&x}-9T}u26OCSmTn6M+tn7 zHgv`!VAmFF!?kjAun&!?bO)kYvgb|_FDQ&bX&m*H>WT*j9@U?fOXr1nCA_fs6)Noc zB_jo~`~ABoQ`)bejfi3bTf&Oe6e-D}!1+(|z)UOGkN!1Re7`%{=K?C6G#3T0yIAaz zc@ezp`WASL4R$FOau|66wuN6faiA;N0QCbzqk$~7tF#~9mp@(qKklzJkr{StmkQ_4 z)*Mzh=2jQP)Vh&607mxZQo_(>qM>|*filL{FjM<*{)bZqPs^9U1K=1Ltef|PAr&OZ zk^_DmoMA1m5^*4HC5G>#`cA;SMZRtwCNhM!F{rh@O-+fai zEy;mAFEUS9C%7+^5>KoPk76P*H3TXBx5CyW*4p7i{1#+JsaEX&ue0xrYO3kl4ho@% zDqTeBT_AK34ks?Kqq99o4h=GGr1O+7^geFKwir?V< z-0OSSv)*6tudJ2i%$Ys2XJ+p`dtX{6mO`2#`sFMNt5ob0EomfS8$pmt)%hb^9RyMSa&J z_r|#k3ymjh2TMSuPXS2YipKMxlVTTyRiHO+>u0%rBb=&oRS3y^YuHgWOtxz|ln`*g z?r+l6i5v!=cUhv=G6%;z_dv^PiOuIF5$q1&&sGK(#BTs(3CAowAw1fUOM!A8@`M4T zF4rvQ2#?62OG%Y~173`qb!vt-hRfd>=|GBEaoz(--^U<|h`HAb;ii2-;$KDJ@sodH z-@FVX4>j7V|B)>2qDvqj9480t)8bg~{sQnIYA#a)6>n#fG=4QFwRK7BuldZ~Hwtz@J?)uO3&7JMK_GxX>J}6bpn*FL>grZ zfL6>R`ey-Jjt;4$ZXSPQ+_Zf7O$USWMnIy?*f{BW`JAWKLEKaCL(00#n@0zsAz%{3 zX_(7Exz+=G=>9cRox{qXj0G5$%p&S@#HJ6MZC#2XV2!rf8xMimq^OkW(a7C638GVa zo-kPrxJ8z2EG9`DNd-s}z1>(wQAg1QWe%} z8TNNN+(0@2(z_DiBiswzZrZ5GM_;H_+qwPdd zAF^HcfRX9MCrGW&fZW-PdGwDA>Z9?s-as<%+C&8ia^ay)cJ#3JL7~{n-}IeYMbM|w zd{NZPnnrWr1O*9FUUZ;fB5)sPb7^HOFwDOxtH2G9(5Zd%_pgo|=&u>mAi$2)`Ywg_ z0p*PVutx4ED3PPr0Hn376do0fBLAeOsR)#t{*7;q3?7_`lP_H`#@?dBq-GA3I$r&vpPhiv{FN51*f zYx*D^=1c-B-pW%&j~yJ&XJ?q#)Eo$q{PcU|-oShf_DMvgbbnnb7qWs1SYi*H|9LA6vJcqmNGUmP>N;-b zFlR&b9{71w(r$NNlw+W=7^T6Zktn^%d=zeQNu(qXE*|t`MheaL+MbypA#z?$5)kiQ`l`vnem<}mCNGwkk z6;ySsqyGa@QmsZlM*V`)qz%dp{xQc{*Hd#rBO1?7x(8Xffh4MAPzQJL%Ckk(T84mp z{qiJhus*)hW)Q`LHgHwIs2hG>IOp)n7uGp&=Lu(o;3M@&S*7l9kWSBseT`yIk~VoT zR2HOcRX2G^0aKyDj~9HVYz8~_JHp+*@Coaal(c^yyCs&V%zr$M=ocuKhx-2L9sk#q z6SP)!1(&Z>j*N(48h6A*QTrk&VE5%5TwUE0r#U5L2Go>6)|cn@^qqX9md$w+0mauS zC$%ZU?A?|q7lE`VMekGqsk8mXNsn3qMbrD8zIw(2iF~#FG6$5mf1eh?Rn?%e`-X^R{RY*0Pbn&d|LV^AKA*FnPvV< z1F38UKQz9)Mv^*Yrn7hl)a>qZ(W;V>&Ddauv;H>>Iq0Yxam;+Qv~lx#96$j9c1)&# z2&eUsF}eZGonP%imB~hyW#A@Zh>JBt$xb zQu!o!-2?tKuLA0PSOOg!k<16hD}Z8_p8C+03BbhMF9*%+tP+D`FM_@HN>r;DCXGHK zFP=H*FHx#bmNx)Mf;3atnaTf4s?9+oAkhAy<3KAD4Q9&Q`n64Q8z4_@IGQp*+|<@o z*_0urH*Hi`znAo}9ZIHp<`$VFZ2bUQa!MA9bk)28vcxy93m*Qfrhr?TIRY5&g0y4e zO?)7bLGIO;@-YB7vtKahGo{T>rdo=i`g>{|-=$=@`;o3fSMu5QGMDMxDl z`L@uTrLL6nHnQeT$VP@z%~03%JSv12JsVa-)YJ{GONxPgo#6?Ic+LiCdQzu4R+>I= z(m&`NzT(T*N4Snyc`w#^k7<+p#Dvm}Nm<{lZ{b9$&s4Q-@09F`$iZ8iJNt|6H--@n>5s3QmG_?iYSG}KjYtx96jbjvHJO>5GWY^MOO?I<` z{a1ZaBO3nQmpAN>zExPIaesLyAw0y0!)<8>h`uWTDzJ7kUN&FPMlmuYuA3ApV*KM7 z_>?i`#F75eVBeAyU41Phn{<-W@SX&wUN%=U%d)}OZZVoSypLF6Zq^1)2b$*XUrpkKZhfObO-H|n_@`UncZ_*7Ny5wG>Q&Z+x!TrdQ>O5O`LiOp%N&&sX z*MqN4I}2b}$LH7J4UO5@%OM{!wyw-3GQQe2*1;vYHT=%xx1ys*nsy%M5AvAnju`g2 zAnb3J7lA}niQ@Qb=^_O|>z=UakeV?GI5CUH0u7b|Ock+q_>FXSb0KGpx6IwzJNEX` zf1d#QMW4rQ@fvwW%!R>DN`OWggG!~2<#&fvfsQ)Qwx@~QwX zO-<37y@*#9zh4?heta>hrK91REx!6-ruEL_H=GqI&B4Zk?UwTH1fPBoHt*ftU74ui ze%6%BN4q%QcOEAQP*e|1sQojam?+)sf);up`RF8(Mmt(q6E(^;8BZ?Z`TI_u9H{5X z_>tx$c$ipIphg{{Yr+@=AakM}4%Syx71CQBn*?Aa8=s5Q&j%3TT#-U1KrwzyHN_Np zW$Vef_ICGV7m*4v>G;ivhfX{lO82CkSHi6O`EW++I;OENot?AFi?$^cYp~3IKjIUWGsbLC7XEkWlK_lLu?xV#NlUpS z*_H^=0*ozYog~Ms^VRrD`W0(J7J)NSfZ%kbj*1P z&!UL#49%wx|2BA;d2}Qr4a`2MskE7rFoT0MF}G?5iF*>L7EOZ0dtx!_acRcW_ZfdX z8xC^0v-}l#(LdW0DziUv2Fs@O z)kwolwmXnDwoRYy@8mp64u8roo-Kmsg3_~eIujw!C}AzsD0vzTlP6O0pY5ZU*sd;x zxrUe94BZoTgUcyXBF6!WuuuqH?HUe6Ib9iJYZvf?3W0DER>rg|XA$d=q;0iz9IrT^%;rA2V6q=#t#z5)F|woXOtpvIj6Iy2Wq`P2k5~gJCOLqi6&xh z@Uo{TRh56vPB}$Q zHy2`(3c`oKE>Jr^Ni=c3N3`%Sn$Ny4TF?9?o*NsejX|X`@=!C^r~6EZE6_C(9uhC9 zn5)k+X}tG^$x|1CWb66t8arpc?AC;NORJ0A=YlpHj-exEBz$*!@R7r=Za4PkXIPH4 z3`Shuqr6);VfprW@%+QeH|XH?(ZR@T=Su?D?KW3cF$o;GvpIw9M-9XUPu&enFaOXp zFJDc(M(n!p0ZO@g`)f@VF{O}Sh;Y3$eS3HI=vwK83OfTUuhz%ttp<%VaF&jJlrRr1 z$>HNYHglLZH~8kJfw)A>Yyb3|;hA#&@XO6R3AxvTCq@@!6-gDIHP+o~wUp3({!rtj zF8ilu!|?@^@|NeuA8Y+uR{d)7uEBT+dBlm^4PNIH?JM^1x2a3ST@(}gqB%Ok<)3@1jqQwS@NPi7) zoF2-y0XYX)}_8E1ttS4AaEnnY(EpUkfCYn=@znRX^|tl{Nfj#Ei>U^dAT zmY;M%0WPWMqY9IbSvfCA8~9Wlwww}Rf;3ybu_NaMOT@SJgH%#Q%DlY4c4u+Fjw!q% z)**^IQp++tC_kW|s;`LANGsgX&6N~1oHo62buC^@^B#l3&4W9Zp5~OBRYXl6!&+~i za98+S5fj1HudX9wNqgdzd+6NGK&lG*I4%eEdNA`)N>|2=5z@?-#jXE^kM?(t>qLY& zCM@Y3wQSklL$PBQ?`-jqoo3t8S>EijL^E*T`?-IVo6_LS^0a-KZ%r_%u=_a^k|C)7 z+H*&KWS-bG6XC0=Y(4t6iQ|}B=@n?Nm7TKBTZ{a_IQnknIHfPSUgrBy9e(I3`tS*A zDI}vtq8R`i8YE5vfSH<=+1b(ObzZGPd}WREw>@`i^HerKivD5`s=?`OCK10RGH`w5 z5N=$~X97=)a1WJ9Vl&lj;KMcy2eEKsKl2%%$B&Dfs~m#t?~fL!qZu^>Xk~r#dF5v_ zIM4`$7fTuxX`9EO0qQ919|+z`f*tsg6G>A`KfTLC{}BCw4|3bGOpt2CQh=)nLC1%v z(tVj6-geJYK=e5YHzacB7uq_DpLTQQs|T$8*va?8rvgz78`eXhmioPG-DrYr5&}_0 zdPFos@21?TL|&2lVne>ki>|9<$gYHP)n!L}-##!OCMs<)jlR~SrnbSH8e%>qgBF}e zQgIO&*qz}b3V_`>OJP@T4#BCYdG;0%%nL**3lgY5`b8{sL9ASS3I2ElV_at=bT6U^ z_mCJuV^^5$41zgw>HWq6-?jn@+J`v^#0#5vvCFm8bU}#!dP3w|30XG#J<&7Rc>iOW z4rKAgO#f)HM!iE1rwg2>!_rL*VIGYaWxbyF%SM&13Jxsi2i=rX+dMH#gvkRwZO5cYq53a*T5w$7mQCA}OQBA+=vK-?Np1zTEH3BT z=}Z#QT@r}%-<@0QAtv*o#rvuO8|R0moBLUk;3hFer( z6)D-S0CAI^hg$33A^G<|NLMf<;4Ujbaw_v#Ky)E8+Zq0uZQ9N7d-nFeR;Q-LmyV|n zK*Y`NXZxz1*5ckygFx2W7xll_|NPhrx}<7_Vl<S?bzjPL00uFz;Q~9kWxGK_6*zgMFU+!n47?DTW!M z@fQKXi?7Wifq@TnjY46rJ^?G(2gxl~(J#Dg=NkkPUoA zz*&8Z`KST2#!hzl{-TUHhT|6MZ{vcC%ExEme_FWu@0Ul~6fv~Y;`aE;Tfi8OUjU~3 zBty`&MVJYTeYdaI>WiTj^itDizVhv(KqWQ^34Ro-6Wj&U*(4GP%R|^K=?NfgJNm84 zYbQ_tJm}k1VE2w0PbC!iGjvVAs{fd-JU;JlKO%de4X&_}j$t1b*&J!Xo)&0AVW$DP zO1l!MI8G>LLG2%F)kUsZ)4ySI*48=dSP5hU3v19WCzr%^RIPY6^UE7zWk|N#~G~tc+_g|A<}f13?A-!TZ$S^}j@T zYX^uuN82m|kg}rj3(abD^0SFb81dZoZ!5YTwX~E=q|%dH)~ft z_WF}}6`zo^nt9;*{K7l~2DOie9&pkF74$4RU z$QfBYgAZI`IsFyQzPs-tyM7<@PEP0-4HNjKFwit(mARSZBqydHZ|Tnp)jYn`+msLL zbP06S-rwfDAqLKDc5KBnqU`EKOX-xN(lxaVYTW*me~2#)t|*~e3iBrHE1 z4;Jg_e0X6RF=VC>lc(#n_i9`tlQ|0Vc+o!?_=H0)BwgT65$*9!Zj(@tpW<05%aG`3 zp(s2>b&oA%`Q75hE^t3x5FqH(5L=f-*4RG%c+9(2y?OPr3FGa(H(5ma=1oT{SV<)3 zGY#ok+5h*`fXW`5xq0lHtbPUynVnE;N8oSj)Citcq>&;s1%2gFKCtJd6Hmv>TqH4v z=1Os*k2e8{_d&ncKKX_cy_n}W6!L|lh!w8Kdvu^re-^E`u4td`h_duw7DeItW|@Ne#_8S+?j)WA z*lLQX-yv*RRvCx#RrPdAL z7{(a{0|BvR3H_$Va1g@>^LwQa2m3C}llh}_a!$s;r%QQcZHmFFn|SR2LgH#kHZSv6 zG;GzP5`T7NZhih}?7tQ&_MoFgLj;fsf|xUzdmE6>_&fy9WkUpUph_K)#%mp!7_JF)nfkIY69W(e(+x@wCms zl0gY`n_(e|qt-Q9 zsQ=g1@E>VvpZglv4OrzI2bk=x*@TAQ5CX=u*jjsPCEI9>^!aV3yDqk1bM!pjn`fWQ zW3;H_JHvPw>S5K?Z~D|^Fft_KyjfuUD2Ttx2RZ)Pd5$47nvoDG|-Q}!1=PfUG zFcUYGF}<|P!nI66KhBAdFNxgM!!TrLi8w!E>x{C1gf#fyx zOB6Lg^yjIi`;i|G!qR@xA*gDPqAQcQbf<5`?y!Hq4P-jP8as5_Bijin+ z|25l~YWO0nq_4=$FNzrL=z^!M3v`mVOf8mJJYZ9H1&=t;g^Ning)^Zp%pL#Hm#9z{ zerbJ@LxGxDs)+s!ZF`BvOD2sBd*-Q4HcOs6k z=7ha~0}E^1Pxl_TmwpHHTteefyqpDdLO9nxk#Ps;8kQH^u*oOtSOO*IrT1k4oaDk& zk`T+wq^cxfa~$XvbnJ}O!-x*uE1a~ezVXHnN?LH!;KuOro$|I{u{}i3CsK{4AisTp zJG9y(T?QCrE-qAf<#rQyLVp~Y(ghpDlJ!*xus@NdpXq?(8{8Bv@KrPS8NxTNoVv67 zh>q~}^3OBzNlKVf--V?QVF}bB5!ABpjEMop@OtPqz8wzrUa8244&iL&yY60~BL&Uc zXkoW42Y+LiT zOn;&QHMbTQZmCTazhwXuTfXBAq4oy5JsOKo>iY+AOLyhH+2`Mmnsdl26?%;{Q|if= z#fNr;tH19fZu4K#h>VZ%kx0a*%t7y7t_*AUZ z-uT|mHP<_jO~bEEF#jGvL7AgYEMt^hEKknCO>dY(pUj}u%!7|^uPsh=tE6%bt?!@xVt&;dmtR-4 za0jirgrCRDC9_eFd2G5?s3UqZUM&`5$NFu$u+-Quv?7tye4Q)rBYLdI-!%9pJO{yx zz^S_{v(0hq{1g7+E(y>1A-H1vBVB0aVA^Pkl+WN==RM=( z5Kwu^lLX4J3`VsAo^5y{&3FSWp3hr7Gq5j(f{)s2e9RQq?K`Hv`M#mGjC&~b_K%J~ zUw3b2H*8OIMDow8x@>nx))pGM9xmR*2Yl<6MIc^1*z|5t`fBsWcd~=ldc5(j@A_2! z8#aTH8M;V@pn=^CMaswqN8L}3H0X8+vz-#9gT1@q%jwS;Ls7kn?3W$Cz9u%9&n)-M z^j*HYv-o0oyz$qLv~}gzt)ryz;t>tifO{*`{-bF~{pe9gpuc{hFS1pb|yjk9zTNSsc6qwn~;GjGoli_4& zRPb!B7?+r#rD4Zqcv8IdjDgW^Cp4DV0qTT>rJ z)qBd0e8zk!l>@P^-L>77?Shz|p2#rshPAR8D=Vus_x#SXXZyQVwUHK3P2fu0g`SvB zaV!Jj@kz6fg$aw<&Hu zola-**ND_eFdHa*W1-fWlEa!grY;)xVsZaVLzpd>ms>+j_EaAm6PaR-_o)k(eZJPU zUE>VDJJChlUJ#NUbzHFWPBVe8jG1U%dFCH%F*t8x;95MBAcNJ&-Yzi7?wu&;J6}^% zwS^|7qk7)gKW__TL?CW16inH!3FvOyQiL(L+=8cm@$1;ZBYfzX#<590Z2Gjp*N&g( z6FMiA?V86E-Q4CsWxKf*7u$aNls)^Tz#uGWZRF=E`S|)$e9>Mb9pB+1qV37W++uAS z1cJIMTRlW>PfS2x8+aXBnk~ySi^O+Mi8EJ!PDx&jd?B!*;#Y4 zm5Q@|E7PM4!^;E3G4zf#uW~duxhLQCk}>ZIE?*yfaJ0nA;5HtXUdm@E3lbNUjX@xY zEuXJzgqg#t`9de4GIj3`n@Z0`8HcdY+)yq06sYHzTZ`bk6E^Lw+Fp6H?1HbziC2mZ z0zy1l?lh{)lS{pM`d#2d-L+ly-E9el+F4%$+~-ey)qea4$VgZH+(<)(%uySZYGmh7 zgBT-xbNg-q!H9cZQA+rY$BvAqUo74mzt$dB%D|zt^Uo4E5D0zIThJ140}9GCy)`Fp z*!-yP)acy1Q=4iqBIc$1N%Nyc!p9BHfHWp*t-Q9tDk?-r!F#~!`1J7pkWlMSHIaiC zpD8>86QzV=km`=w5<-|JAFBHWh&DQEW&|Sf(7(Uy5Fb$maI=DllpX^$vlQ|r2P%=jy(g zG)K^1LWABs%yNX5vb|pf%TNS0gNA~{8No|g)!T77F6#2NbL&GonKD{ms`eL)1~Y5Y zKHAK!D_+q={(TTcjgnKpn2b)JHwcb=DiBvr%#b^f&oqztB}?Un$9ll4tDe7%zo;8BXQFp?oQ$T&XG9f`BJ zoYb`pYEn14PBdLGq6#?%$G-H`7?M48qq|h+>?JwvG`i6=P3FIoasql0NQsyVy?j3y zfuK5Wqz8dZPIn*fg-iF2wJR9RrRM8b)Dbl{#OWCoF}{8#n+8ZQW%`N4Cv>D@q)Wg3 ziuDmxtIIp*nGL8X{MDNLhohKt$F_3@zGAd8rG3#9v+I?41!pOWGn+I0u{}I2fAuE<=kvjMqujdm++^l&b>sgGQlnL-sFq)%E<5I{4<`a)OiUpD zco1M0b@g$5CH-Nb=X&PaQ1V+>?$PFm5&A);1Br6>aXHw(&z}KTcdU~Cu9p9?j{c8d ecfWYO{zr(9r|Z%TV;nek5k_at^(u9) Date: Mon, 30 Jan 2023 22:50:40 +0200 Subject: [PATCH 3/7] Update index.ts --- src/Themes/data/iron-man/index.ts | 66 +++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/Themes/data/iron-man/index.ts b/src/Themes/data/iron-man/index.ts index 7b2b36e7a..0c6224941 100644 --- a/src/Themes/data/iron-man/index.ts +++ b/src/Themes/data/iron-man/index.ts @@ -8,38 +8,38 @@ export const Theme: IPredefinedTheme = { reference: "https://discord.com/channels/415207508303544321/921991895230611466/1069233364927787089", screenshot: img1, colors: { - "primarylight": "#FFFEFC", - "primary": "#FFA95E", - "primarydark": "#E8BC71", - "successlight": "#00FF00", - "success": "#0c0", - "successdark": "#090", - "errorlight": "#FF0B0B", - "error": "#FF0000", - "errordark": "#770000", - "secondarylight": "#FFC596", - "secondary": "#DA3F3F", - "secondarydark": "#6E1D1D", - "warninglight": "#ff0", - "warning": "#cc0", - "warningdark": "#990", - "infolight": "#FFFFFF", - "info": "#B6E9FF", - "infodark": "#5596CF", - "welllight": "#8A2121", - "well": "#350000", - "white": "#fff", - "black": "#000", - "hp": "#FF4E4E", - "money": "#C2F26F", - "hack": "#D5FFB2", - "combat": "#E39C5A", - "cha": "#CA4444", - "int": "#6495ed", - "rep": "#E39C5A", - "disabled": "#3C0C0C", - "backgroundprimary": "#2C0707", - "backgroundsecondary": "#551212", - "button": "#8A2121" + primarylight: "#FFFEFC", + primary: "#FFA95E", + primarydark: "#E8BC71", + successlight: "#00FF00", + success: "#0c0", + successdark: "#090", + errorlight: "#FF0B0B", + error: "#FF0000", + errordark: "#770000", + secondarylight: "#FFC596", + secondary: "#DA3F3F", + secondarydark: "#6E1D1D", + warninglight: "#ff0", + warning: "#cc0", + warningdark: "#990", + infolight: "#FFFFFF", + info: "#B6E9FF", + infodark: "#5596CF", + welllight: "#8A2121", + well: "#350000", + white: "#fff", + black: "#000", + hp: "#FF4E4E", + money: "#C2F26F", + hack: "#D5FFB2", + combat: "#E39C5A", + cha: "#CA4444", + int: "#6495ed", + rep: "#E39C5A", + disabled: "#3C0C0C", + backgroundprimary: "#2C0707", + backgroundsecondary: "#551212", + button: "#8A2121", }, }; From a141431e0802bd301fedc82e211f38f2d975e476 Mon Sep 17 00:00:00 2001 From: "T.J. Eckman" Date: Mon, 30 Jan 2023 19:15:56 -0500 Subject: [PATCH 4/7] CORP: Move Sale after Export in Corp States --- src/Corporation/data/Constants.ts | 2 +- src/ScriptEditor/NetscriptDefinitions.d.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Corporation/data/Constants.ts b/src/Corporation/data/Constants.ts index ba7d1ecf9..edacf2405 100644 --- a/src/Corporation/data/Constants.ts +++ b/src/Corporation/data/Constants.ts @@ -15,7 +15,7 @@ import { IndustryType, EmployeePositions } from "./Enums"; // This structure + import * as corpConstants allows easier type definitions for individual properties. /** Names of all corporation game states */ -export const stateNames: CorpStateName[] = ["START", "PURCHASE", "PRODUCTION", "SALE", "EXPORT"], +export const stateNames: CorpStateName[] = ["START", "PURCHASE", "PRODUCTION", "EXPORT", "SALE"], // TODO: remove IndustryType and EmployeePositions enums and just use the typed strings. /** Names of all corporation employee positions */ employeePositions: CorpEmployeePosition[] = Object.values(EmployeePositions), diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 844776af8..04e6e9252 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -7604,7 +7604,7 @@ interface CorporationInfo { dividendTax: number; /** Your earnings as a shareholder per second this cycle */ dividendEarnings: number; - /** State of the corporation. Possible states are START, PURCHASE, PRODUCTION, SALE, EXPORT. */ + /** State of the corporation. Possible states are START, PURCHASE, PRODUCTION, EXPORT, SALE. */ state: string; /** Array of all division names */ divisions: string[]; @@ -7662,7 +7662,7 @@ interface CorpConstants { minEmployeeDecay: number; } /** @public */ -type CorpStateName = "START" | "PURCHASE" | "PRODUCTION" | "SALE" | "EXPORT"; +type CorpStateName = "START" | "PURCHASE" | "PRODUCTION" | "EXPORT" | "SALE"; /** @public */ type CorpMaterialName = From e8e107254db625820536701dc1f06abc0d10da9a Mon Sep 17 00:00:00 2001 From: omuretsu <84951833+Snarling@users.noreply.github.com> Date: Mon, 30 Jan 2023 19:45:24 -0500 Subject: [PATCH 5/7] Update build commands build:dev now works --- package.json | 4 ++-- tools/build.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a4b1eb0d6..58eca7cc0 100644 --- a/package.json +++ b/package.json @@ -105,8 +105,8 @@ "format:report-diff": "bash -c 'if [[ $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | wc -c) -ne 0 ]]; then prettier -c $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | xargs); fi'", "start": "http-server -p 8000", "start:dev": "webpack serve --progress --env devServer --mode development", - "build": "bash ./tools/build.sh", - "build:dev": "webpack --mode development", + "build": "bash ./tools/build.sh production", + "build:dev": "bash ./tools/build.sh development", "lint": "eslint --fix --ext js,jsx,ts,tsx --max-warnings 0 src", "lint:report": "eslint --ext js,jsx,ts,tsx --max-warnings 0 src", "lint:report-diff": "eslint --max-warnings 0 $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | xargs)", diff --git a/tools/build.sh b/tools/build.sh index e26c98f09..16104923f 100644 --- a/tools/build.sh +++ b/tools/build.sh @@ -1,7 +1,7 @@ #!/bin/bash # builds the game in the root folder -webpack --mode production +webpack --mode $1 # Clear out any files remaining from old builds and recreate folder rm -rf .app From 37f41c89bcabbefd241a46de314be3b3042041e5 Mon Sep 17 00:00:00 2001 From: Zelow79 <32428876+Zelow79@users.noreply.github.com> Date: Thu, 2 Feb 2023 10:09:38 -0500 Subject: [PATCH 6/7] MISC: Added features to DevMenu (#353) * More blade devmenu functions * Custom money field, set money to 0 option * Options for removing blade/gang/corp * Better dev menu responsiveness (dev menu rerenders after adding or removing blade/gang/corp) * Some general code style changes --- src/DevMenu/ui/Bladeburner.tsx | 95 ++++++++++++++-------- src/DevMenu/ui/General.tsx | 142 ++++++++++++++++++++------------- 2 files changed, 150 insertions(+), 87 deletions(-) diff --git a/src/DevMenu/ui/Bladeburner.tsx b/src/DevMenu/ui/Bladeburner.tsx index 95e446158..670db10aa 100644 --- a/src/DevMenu/ui/Bladeburner.tsx +++ b/src/DevMenu/ui/Bladeburner.tsx @@ -1,54 +1,52 @@ import React from "react"; - import Typography from "@mui/material/Typography"; import Accordion from "@mui/material/Accordion"; import AccordionSummary from "@mui/material/AccordionSummary"; import AccordionDetails from "@mui/material/AccordionDetails"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; - +import Button from "@mui/material/Button"; import { Adjuster } from "./Adjuster"; import { Player } from "@player"; +import { CityName } from "../../Enums"; const bigNumber = 1e27; export function Bladeburner(): React.ReactElement { + if (!Player.bladeburner) return <>; const bladeburner = Player.bladeburner; - if (bladeburner === null) return <>; - function modifyBladeburnerRank(modify: number): (x: number) => void { - return function (rank: number): void { - if (!bladeburner) return; - bladeburner.changeRank(Player, rank * modify); - }; - } - function resetBladeburnerRank(): void { - if (!bladeburner) return; + // Rank functions + const modifyBladeburnerRank = (modify: number) => (rank: number) => bladeburner.changeRank(Player, rank * modify); + const resetBladeburnerRank = () => { bladeburner.rank = 0; bladeburner.maxRank = 0; - } + }; + const addTonsBladeburnerRank = () => bladeburner.changeRank(Player, bigNumber); - function addTonsBladeburnerRank(): void { - if (!bladeburner) return; + // Skill point functions + const modifyBladeburnerSP = (modify: number) => (skillPoints: number) => { + bladeburner.skillPoints += skillPoints * modify; + }; + const resetBladeburnerSP = () => { + bladeburner.skillPoints = 0; + bladeburner.totalSkillPoints = 0; + }; + const addTonsBladeburnerSP = () => (bladeburner.skillPoints = bigNumber); - bladeburner.changeRank(Player, bigNumber); - } + // Cycles functions + const modifyBladeburnerCycles = (modify: number) => (cycles: number) => (bladeburner.storedCycles += cycles * modify); + const resetBladeburnerCycles = () => (bladeburner.storedCycles = 0); + const addTonsBladeburnerCycles = () => (bladeburner.storedCycles += bigNumber); - function modifyBladeburnerCycles(modify: number): (x: number) => void { - return function (cycles: number): void { - if (!bladeburner) return; - bladeburner.storedCycles += cycles * modify; - }; - } - - function resetBladeburnerCycles(): void { - if (!bladeburner) return; - bladeburner.storedCycles = 0; - } - - function addTonsBladeburnerCycles(): void { - if (!bladeburner) return; - bladeburner.storedCycles += bigNumber; - } + // Chaos functions + const wipeAllChaos = () => Object.values(CityName).forEach((city) => (bladeburner.cities[city].chaos = 0)); + const wipeActiveCityChaos = () => (bladeburner.cities[bladeburner.city].chaos = 0); + const addAllChaos = (modify: number) => (chaos: number) => { + Object.values(CityName).forEach((city) => (bladeburner.cities[city].chaos += chaos * modify)); + }; + const addTonsAllChaos = () => { + Object.values(CityName).forEach((city) => (bladeburner.cities[city].chaos += bigNumber)); + }; return ( @@ -75,7 +73,22 @@ export function Bladeburner(): React.ReactElement { - Cycles: + SP: + + + + + + + + Cycles: + + + Chaos: + + + + + + ); } diff --git a/src/DevMenu/ui/General.tsx b/src/DevMenu/ui/General.tsx index 8394287bd..79f29448b 100644 --- a/src/DevMenu/ui/General.tsx +++ b/src/DevMenu/ui/General.tsx @@ -1,10 +1,8 @@ import React, { useEffect, useState } from "react"; - import Accordion from "@mui/material/Accordion"; import AccordionSummary from "@mui/material/AccordionSummary"; import AccordionDetails from "@mui/material/AccordionDetails"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; - import Typography from "@mui/material/Typography"; import Button from "@mui/material/Button"; import { Money } from "../../ui/React/Money"; @@ -15,59 +13,68 @@ import { Bladeburner } from "../../Bladeburner/Bladeburner"; import { GangConstants } from "../../Gang/data/Constants"; import { FactionNames } from "../../Faction/data/FactionNames"; import { checkForMessagesToSend } from "../../Message/MessageHelpers"; +import { ThemeEvents } from "../../Themes/ui/Theme"; export function General(): React.ReactElement { const [error, setError] = useState(false); const [corporationName, setCorporationName] = useState(""); - const [gangFaction, setGangFaction] = useState(""); + const [gangFaction, setGangFaction] = useState("Slum Snakes"); + const [devMoney, setDevMoney] = useState(0); - function addMoney(n: number) { - return function () { - Player.gainMoney(n, "other"); - }; - } + // Money functions + const addCustomMoney = () => !Number.isNaN(devMoney) && Player.gainMoney(devMoney, "other"); + const addMoney = (n: number) => () => Player.gainMoney(n, "other"); + const setMoney = (n: number) => () => (Player.money = Number(n)); - function upgradeRam(): void { - Player.getHomeComputer().maxRam *= 2; - } + // Ram functions + const upgradeRam = () => (Player.getHomeComputer().maxRam *= 2); - function quickB1tFlum3(): void { - Router.toBitVerse(true, true); - } + // Node-clearing functions + const quickB1tFlum3 = () => Router.toBitVerse(true, true); + const b1tflum3 = () => Router.toBitVerse(true, false); + const quickHackW0r1dD43m0n = () => Router.toBitVerse(false, true); + const hackW0r1dD43m0n = () => Router.toBitVerse(false, false); - function b1tflum3(): void { - Router.toBitVerse(true, false); - } - - function quickHackW0r1dD43m0n(): void { - Router.toBitVerse(false, true); - } - - function hackW0r1dD43m0n(): void { - Router.toBitVerse(false, false); - } - - function createCorporation(): void { + // Corp functions + const createCorporation = () => { Player.startCorporation(corporationName); - } + // Rerender so the corp menu option will show up immediately on the devmenu page selection + ThemeEvents.emit(); + }; + const destroyCorporation = () => { + Player.corporation = null; + // Rerender so the corp menu option will be removed immediately on the devmenu page selection + ThemeEvents.emit(); + }; - function joinBladeburner(): void { + // Blade functions + const joinBladeburner = () => { Player.bladeburner = new Bladeburner(); - } + // Rerender so the blade menu option will show up immediately on the devmenu page selection + ThemeEvents.emit(); + }; + const leaveBladeburner = () => { + Player.bladeburner = null; + // Rerender so the blade menu option will be removed immediately on the devmenu page selection + ThemeEvents.emit(); + }; - function startGang(): void { + // Gang functions + const startGang = () => { const isHacking = gangFaction === FactionNames.NiteSec || gangFaction === FactionNames.TheBlackHand; Player.startGang(gangFaction, isHacking); - } - - function setGangFactionDropdown(event: SelectChangeEvent): void { - setGangFaction(event.target.value); - } - - function checkMessages(): void { - checkForMessagesToSend(); - } + // Rerender so the gang menu option will show up immediately on the devmenu page selection + ThemeEvents.emit(); + }; + const stopGang = () => { + Player.gang = null; + // Rerender so the gang menu option will be removed immediately on the devmenu page selection + ThemeEvents.emit(); + }; + const setGangFactionDropdown = (event: SelectChangeEvent) => setGangFaction(event.target.value); + // Misc functions + const checkMessages = () => checkForMessagesToSend(); useEffect(() => { if (error) throw new ReferenceError("Manually thrown error"); }, [error]); @@ -78,6 +85,14 @@ export function General(): React.ReactElement { General +
- Corporation Name: - setCorporationName(x.target.value)} /> - + Add Custom Money + setDevMoney(parseFloat(x.target.value))} /> +
- Gang Faction: - - + {Player.corporation ? ( + + ) : ( + <> + Corporation Name: + setCorporationName(x.target.value)} /> + + + )}
- + {Player.gang ? ( + + ) : ( + <> + Gang Faction: + + + + )} +
+ {Player.bladeburner ? ( + + ) : ( + + )}
- From 6459b1ab483cf66ae1e6e50518424311c6bbbd8b Mon Sep 17 00:00:00 2001 From: omuretsu <84951833+Snarling@users.noreply.github.com> Date: Sat, 4 Feb 2023 07:42:35 -0500 Subject: [PATCH 7/7] Change tests * Try to fix check for generated files to create a comment on a PR. * Check for generated files does not count as a failure. * Lint doesn't fail based on stuff in dist. Prettier and lint no longer use the "diff" version. * Removed some commands that weren't really used (specific version electron packager commands that require you to have already ran npm run electron to generate .package folder) --- .eslintignore | 28 +++----- .../workflows/check-for-generated-files.yml | 67 +++++++------------ .github/workflows/ci-pr.yml | 6 +- .prettierignore | 3 +- package.json | 7 -- 5 files changed, 37 insertions(+), 74 deletions(-) diff --git a/.eslintignore b/.eslintignore index 9f6599e8c..50b2e676b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,26 +1,16 @@ node_modules/ -.dist -.tmp .package .build -.cypress/ +.app -dist/ -input/ -assets/ -doc/ -markdown/ +dist +input +assets +doc +markdown +electron +tools +src/ThirdParty - -test/netscript/ - -electron/lib -electron/greenworks.js -src/ThirdParty/* -src/JSInterpreter.js -tools/engines-check/ - -editor.main.js -main.bundle.js webpack.config.js diff --git a/.github/workflows/check-for-generated-files.yml b/.github/workflows/check-for-generated-files.yml index eaac3904b..6d29c3ea8 100644 --- a/.github/workflows/check-for-generated-files.yml +++ b/.github/workflows/check-for-generated-files.yml @@ -35,51 +35,30 @@ jobs: - name: Warn when bundle files were changed id: warn-bundles-changed - if: steps.changed-bundle-files.outputs.any_changed == 'true' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - echo "One or more files in the bundle files were changed." >> warnings.txt + echo "Creating label (if it does not exist)" + LABEL="validation: bundle files modified" + gh --repo "${{ github.repository }}" \ + label create "$LABEL" --description "Modifications to this pull request are suggested" --color D93F0B || true - - name: Warn when documentation markdown files were changed - id: warn-markdown-changed - if: steps.changed-markdown-doc-files.outputs.any_changed == 'true' - run: | - echo "One or more files in the markdown documentation were changed." >> warnings.txt - - - name: Print Warnings - id: get-warnings - run: | - if [ -f warnings.txt ] - then - echo "::set-output name=has_warnings::true" + if [ "${{ steps.changed-bundle-files.outputs.any_changed }}" == "false" ]; then + echo "No forbidden files included, removing warning" + gh --repo "${{ github.repository }}" \ + pr edit "${{ github.event.number }}" --remove-label "$LABEL" || true else - echo "::set-output name=has_warnings::false" - touch warnings.txt + echo "Forbidden files included, generating warning" + + touch comment.txt + echo "## Generated build or documentation files were included. PRs should not normally contain any generated files." >> comment.txt + echo "" >> comment.txt + echo "Review the changes and ensure that including built files was necessary." >> comment.txt + + echo "Add pr label" + gh --repo "${{ github.repository }}" \ + pr edit "${{ github.event.number }}" --add-label "$LABEL" + echo "And comment on the pr" + gh --repo "${{ github.repository }}" \ + pr comment "${{ github.event.number }}" --body-file comment.txt fi - - - name: Get Comment Body - id: get-comment-body - if: steps.get-warnings.outputs.has_warnings == 'true' - run: | - cat warnings.txt > comment.txt - echo "" >> comment.txt - echo "Please do not commit files generated by webpack or generated markdown" >> comment.txt - echo "" >> comment.txt - echo "See [CONTRIBUTING.md](https://github.com/bitburner-official/bitburner-src/blob/dev/doc/CONTRIBUTING.md) for details." >> comment.txt - - body=$(cat comment.txt) - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - - echo ::set-output name=body::$body - - name: Add github comment on problem - if: steps.get-warnings.outputs.has_warnings == 'true' - uses: peter-evans/commit-comment@v1 - with: - body: ${{ steps.get-comment-body.outputs.body }} - - name: Flag as error - if: steps.get-warnings.outputs.has_warnings == 'true' - run: | - COMMIT_WARNINGS=$(cat warnings.txt) - echo "::warning:: $COMMIT_WARNINGS" - exit 1 diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml index e9a2c3b24..d109f0b0c 100644 --- a/.github/workflows/ci-pr.yml +++ b/.github/workflows/ci-pr.yml @@ -1,7 +1,7 @@ name: CI Pull Request on: - # Triggers the workflow on pull request events but only for the dev branch, checking only diffs + # Triggers the workflow on pull request events but only for the dev branch pull_request: branches: [dev] @@ -38,7 +38,7 @@ jobs: - name: Install npm dependencies run: npm ci - name: Run linter - run: npm run lint:report-diff + run: npm run lint:report prettier: name: Prettier runs-on: ubuntu-latest @@ -54,7 +54,7 @@ jobs: - name: Install npm dependencies run: npm ci - name: Run prettier check - run: npm run format:report-diff + run: npm run format:report test: name: Test runs-on: ubuntu-latest diff --git a/.prettierignore b/.prettierignore index 10997bab0..517c68449 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,10 +1,11 @@ node_modules package.json dist -doc/build/ +doc/build doc/source .build .package +.app editor.main.js main.bundle.js diff --git a/package.json b/package.json index 58eca7cc0..cc17903d1 100644 --- a/package.json +++ b/package.json @@ -102,14 +102,12 @@ "doc": "npx api-extractor run && npx api-documenter markdown && rm input/bitburner.api.json && rm -r input", "format": "prettier --write .", "format:report": "prettier -c .", - "format:report-diff": "bash -c 'if [[ $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | wc -c) -ne 0 ]]; then prettier -c $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | xargs); fi'", "start": "http-server -p 8000", "start:dev": "webpack serve --progress --env devServer --mode development", "build": "bash ./tools/build.sh production", "build:dev": "bash ./tools/build.sh development", "lint": "eslint --fix --ext js,jsx,ts,tsx --max-warnings 0 src", "lint:report": "eslint --ext js,jsx,ts,tsx --max-warnings 0 src", - "lint:report-diff": "eslint --max-warnings 0 $(git diff --name-only --diff-filter=ACMRTUXB origin/dev | grep -E \"(.js$|.jsx$|.ts$|.tsx$)\" | xargs)", "preinstall": "node ./tools/engines-check/engines-check.js", "postinstall": "cd electron && npm install", "test": "jest", @@ -117,11 +115,6 @@ "watch": "webpack --watch --mode production", "watch:dev": "webpack --watch --mode development", "electron": "bash ./tools/package-electron.sh", - "electron:packager": "electron-packager .package bitburner --platform all --arch x64,armv7l,arm64,mips64el --out .build --overwrite --icon .package/icon.png --no-prune", - "electron:packager-all": "electron-packager .package bitburner --platform all --arch x64,armv7l,arm64,mips64el --out .build --overwrite --icon .package/icon.png", - "electron:packager-win": "electron-packager .package bitburner --platform win32 --arch x64 --out .build --overwrite --icon .package/icon.png", - "electron:packager-mac": "electron-packager .package bitburner --platform darwin --arch x64 --out .build --overwrite --icon .package/icon.png", - "electron:packager-linux": "electron-packager .package bitburner --platform linux --arch x64 --out .build --overwrite --icon .package/icon.png", "allbuild": "npm run build && npm run electron && git add --all && git commit -m \"allbuild commit $(git rev-parse --short HEAD)\" && git push -u origin dev", "preversion": "npm install && npm run test", "version": "sh ./tools/build-release.sh && git add --all",