From e0369bd700764e919db8d97ea7520b8db52c93e1 Mon Sep 17 00:00:00 2001 From: "M. Jordan Scholzen" Date: Thu, 28 Nov 2024 05:13:11 -0800 Subject: [PATCH 1/3] Use Correct Negative Flux Function in HeatLoop --- SystemHeat/SystemHeat/HeatLoop.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SystemHeat/SystemHeat/HeatLoop.cs b/SystemHeat/SystemHeat/HeatLoop.cs index dcf17d5..da45f40 100644 --- a/SystemHeat/SystemHeat/HeatLoop.cs +++ b/SystemHeat/SystemHeat/HeatLoop.cs @@ -196,7 +196,7 @@ protected float CalculatePositiveFlux() return currentPosFlux; } /// - /// Calculates the total positive flux of the loop + /// Calculates the total negative flux of the loop /// protected float CalculateNegativeFlux() { @@ -220,7 +220,7 @@ void SimulateIteration(float simTimeStep) // Calculate the loop net flux float currentNetFlux = CalculateNetFlux(); PositiveFlux = CalculatePositiveFlux(); - NegativeFlux = CalculatePositiveFlux(); + NegativeFlux = CalculateNegativeFlux(); float absFlux = Mathf.Abs(currentNetFlux); AllocateFlux(PositiveFlux); From d9f07d015f1125229f749f20b973b289fbe048c5 Mon Sep 17 00:00:00 2001 From: ChrisAdderley Date: Tue, 3 Dec 2024 13:22:51 -0800 Subject: [PATCH 2/3] Updates and fixes --- GameData/SystemHeat/Plugin/SystemHeat.dll | Bin 210944 -> 211456 bytes .../SystemHeat/Versioning/SystemHeat.version | 2 +- .../ModuleSystemHeatAsteroidHarvester.cs | 7 ++- .../ModuleSystemHeatBaseConverterAdapter.cs | 7 ++- .../Modules/ModuleSystemHeatCometHarvester.cs | 7 ++- .../Modules/ModuleSystemHeatConverter.cs | 27 ++++++---- .../Modules/ModuleSystemHeatFissionReactor.cs | 51 ++++++++++++++---- .../Modules/ModuleSystemHeatHarvester.cs | 7 ++- SystemHeat/SystemHeat/SystemHeat.cs | 1 + changelog.txt | 7 +++ readme.txt | 2 +- 11 files changed, 92 insertions(+), 26 deletions(-) diff --git a/GameData/SystemHeat/Plugin/SystemHeat.dll b/GameData/SystemHeat/Plugin/SystemHeat.dll index eb7b84e746fd174866df767b51b1c55b71dd8057..7db02c033330d942d7fb4679d9b141e4dcc0fd95 100644 GIT binary patch delta 75339 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 delta 74440 zcmce<2Y4Js(my;iyIM)BV6P<4?W@lHjkGuE%e|jFx^i)+>S65e8SBIJH z{4T%q>-@7%sm-1}dcETO?Nn;3^VFe=GB}_pITF}4@0=T#7T!EBpe!W7s({ircuq}m zerG_*$Ma!x0T4A>qi9tJhNm|oV>Q5o#c66>9V+fo2dbmRdunajPH>>V+4$F#EamFs zROO|oRYkQI4GE0dwx>2Fr(&I^1nZh&^&M-G=nDO)DWUe^iW08tT(|A!@Vjck7*z=_ zKd@sgZXM&cZOuPgQ%7v;-Rmf|d3}1;pD61@&Po_Ps3`G{4e2!hBAUrevtirQy|Ywx zxOgElS{){WMM+#wD4JG03?+0Ru1hvP*&cT$=3PE8nQeN;%g?$D=!a8ZlZU2 zALN@-PPtdmb=#5Uda&Xkw`K<-(G}{VnjHh4b)5%^2l~}lY)r@hn!;}s|LWJTVpBR^ z2_Sz5=iekoRvjBW1bETXua9`KsC zgqW=_SB1D*ADKK4jIHx=xl$jDYptTRv_#vtBB|TB)N9db`vpiC7viFroAQ-IOZDee z=vYx2@LxPMsN93Q&aB%n0#yQ571U&M4wBJue4L_L47Gj_f{?KsS8D|>b($ZtFCguE zfVpuoQfSE7vTz6#;?Ti;#uF>ex&(-vRQ@zTX7-%eviuxSi0y;>h@FG_sF#W#28~uP z6HN{E>gA%kzD^w7a7FE4*hXGjr|pIa$}Vk&@>UH9sA+r{2}(Jn#!ZyAn8VHD zh@s;nw-DK_1l4b&RqDG$awzUM3fs}Rg|mWBj%4RRkw+?BZv2a897~2AA)3o0{ngA=8+ZZ{o2J4Mwf$~kt_k~(JC8w`8v=$PT+h$BFRJDe-Pouj&y5mu1pKJnuyDx=Tn zv(&h_W_15N(y=+H5Bk9a;+4?@DjuZg<#_ft7kLoydU>(1%lez0zWdhsAqiKkL)T-O@7A z4voDvz8jB-cgIyOv44TSb8;^#4l0qL@i?LX z2(Af-bXGHPrqj0LD|e6o(=q<7si$_|m#( zh$sT0;v6lKV?2jPMR{*@y<&a>9(oZl`t#!X@#U4z1LaEk9>DPIkxz~J>`rhUJ>U{+MF+YCrlGvQxr`m z)7*RV)vf6gz*wjr8HM)@_0_7UDvL$UrK%z zy*$Fnw^$u)DzA%;)Az}Ln*i3qXlMN$@#6I1h}6^>o7LyVVKZyhd&Sln@q!&7Nvr{d z7SP`nFV1)daC>H}IzoIib5-bNVDPvxDj=v3B-IbcTy&SL6EN>~dURo86>7B7$?O%STIJvKq36qj~XCgefF< zw(+u2nk`e8B4_;bE_EKlpRve0?Tota^6v49xv)**~Y8lvUz3d z_-*&k`%o==A6n3?ow({%xHRk+Ft4qGD|%ntwZ}+xg81tmO9y;Fn);9lPelz3@A=FF zW36Z1tSGAfkyx`}iTbg)e?dj)6C(e!cx%B-b>g;~g^vfu!6$|rOEv361{7P> zU0J_fm*|>V%8{y~Oc9&++e7_HY~OEY_P{8GrV2zmWaB{0miedX-SnxC9FwVmVTEB?b_n$HbJ~X2AN0;S4avNhIc@Wc&Z2yer z&&b1_2URNqUMyS_DD_YPRf zz*_Y$V*A;{$A1oH=ILaGhuN@5Kt#K=xEjSQYn=jZEdU*2duS^F98C#=7P$+V zJKG3~8SAT>2&W?qKzDXLKjkrq9qaCLo=0UVKcN+7igVVN4WQO8Qj4^hkp&_Y@)0tm z>Kka&tRKXS>+2^X3&Q(IFp{N*Kv@i@PoycAnfdH@p+h&+sv)s>Lk+HTj;h>CQiCAhz!)3!v_?MXUc4G#epR?zW|KND+)LErjA@NYg-UsIu%Q=EQKwK_-Ka*(cS;5l z&|_jrs--W#bn?#(a=e!_r(g@|M&%6!&b*;#DjzQn0@JCIXzBEEMMi~ao;M*`UiLUl zXtAEgwj78Vc~FJZblv3fmGltw-Ay;$3If&KU6J{i^&oanQj4>!zV#XE{hp43+%R?ys9_>w`_sNl+k1;M#jSpP&-9f2zQjZV)MZRt2id< zFV*VnQkr!e_1AoH@4-z>)3i&P0ueZ*1%`NiqEQ@rND)%UA5xq2OtM6uigu%jre`(A z!l7|k8THHon%s>!c*-&0iFac(NypazpK1EvD0*GD>awRu6rygsK#`|1-$EyiopCH; z$-1b2ikue6UG6PBirhojjG6b}kCtjsJb36zZycPwx%z)M4vrMhZ=NT|LJX^uH&@1X zKjhVlXU!4nd>Zzmku{3e&coi_Fg+gj2DE#_9>HkXTi)I@#vKZp(b4V!+-JAkH!&1c zb;o=rwzrqTI^S%snD26+!DJU4XfVk{Weg^SHZ%+-efQWyj!t837;+C8Y4C+qNA`fC z!G(v8jb3@;hQlfcdL78>1)IsB07Q=Jy~P)Ym7`KQhmTYjh)IVJOmc_DWFk}cFHw$W zVfN#jbij!rbn4%ORG)#G2lnL!W3S>WaZX}RGnHL4pKJXUG#r(IJBQoVyXPODrNnzA z5lu%>d(Aqch69}vkvO6N&%ZmOB9>B)3~R_bD6Dz-h^kV;>8NcgtZ~}uyCYVpGsU7K zoBn@_V}eIf95e7J8OQV=xR7kbA8YI)@DNAUslSN(kLn-cP?^FEnG4bJ7e`f$ilBlH zAIphBI-3L5&Cmgwth1TJk?b}jjZREDx?)foM7D6t6fbAX6fdVZ_UOK4=}M-^h1875 zMci|AO$L^t6BqmS(W5dVlFHO@u!~rPnyA~@?>T$di}y(7jfBpU4;yC&ufnkDWA?Ck z>zE2TR7+FNpbncpo-*p_v1A|1-B9^>$)H2>s_@jCF;ZhdN7PYU?cp=x4OTP78#}C2 zywRh4Udg-FpH~Yv-uQRCe6{$k@dg&plsV%3EflamvL&ig?9oSjwx!66Kd4ZjAD5mA z@kd3XsTX@4#2*fg$V*fRGcgLhu1`$H^)HDYouTIJQh&cx=3fEwn!!`yXwgjXExU3$2*kCU2opil=_v zH!L58K+cBcV@Nt1mJI!`x6t~GCsuMN@4wox-1B(auv~ZiB(+3bef&U7pr6O}WAWYb z)uAZrV#GxG35O+1k&GtFaMdhI#}ehZD)9z1KRuWGaI*C(Jld$FRpO=YLi{z2UW7^g z0V`2;O2-tWcy+crSyV%}?sekKk`F+`tB6r&$q>)t_S-PJotPKth7=c`SeNvmn)M`9 zm6}ESX3fO4$2Ett%uJcj=}hv9RNpEHZ*_}FCnd25_wY%l^r9st-ewCcAx-Zq_CC44 zS}Be?d7#=)Tz>MXP!%+0Rg1Sz9_}WKPnkQk22eyd>9S`&`@|4uoKmmWin~r}$s>ka z`s1Px5Wk*se8GDVK(ls03vGIxIP26U8IW&It?b(mI;V)52Qtq&q5j{&!mk{FZhTC!K!p z^eoE!`%tVxRRU&^KY(e~cC$Kj(=d-lSZ5sYTgw_K8qVxp$8iNUhZapdMK`%9_q2py zXN@3Y<(d112cm9D!`y&XDV{!a+FBitT3uH*x>cxs5FU&MBIt-a@K`#$;m-<6z`91T zqkGQAUF2*O##vX@{HDb|Okd`my{9*Q`Cl*NO%UtOxn?gcnYu?{tZ$Kq-(7|EnZ!G! z7rEUvb)?h#HH)CMjLQ*##I8ukCLR*|o?9n3cD;;g8@pZxK*bH`w&qgp$!LQjPgIod zgcazEpxT1mlCA*9)Hzx%_AV!jQZ*p<5p@MkP$sr+5cUQWgT<+$F2{w4cSV`_qbO3F z#D}6jNnlvh8nUh-NEc_tmt&g`2X$x%9-HsOkg|s3qL07@H7m}JWH)N@QGT38fu~%1 zEzXJLG{zjHW?=#sWZO;PtPwWKv-DB8H(mT*ucEB3=m2r@c?Fxu+>OxyV>^F2w(D^| zDqI{^B4KMRQt5@~Me?|CAI@KRek31-OJw)LbMXKPmCa=-Z!)1I`~%h5*F3%(*BACE- z2z9Ej#i!>FQ2#CpwjPrlk2<+7qj8DSF#*rmJ%QK2SudoGNkpJo)J-r)9Io`xS9aUW zXwRAU^ya|-@LyUH%ejonEX04%35mYpOjgu0QxiW>wWQ84y>pYFiPd&BHcgMS>$2gJ z;h4V>x7t%9yabQ<$~CTggnB`ndY@QvL0JR~$3cT}Iq?xiIXKF3(gnkTyZ?e&>T^Q9 zFczfTVpE@TbnY=14py_ox(lmtJ?X;Pav%NWQBL1;wrFTc(c4u1vIk^OTQnY>T$1!} z(RlnN%C|+6{0>Fs=Zrg^wCs3-{L$&sP%C=UH1>dWr76fwZ5VlU(hB_2c>IAH2i~4I zN_?;@gO?rq_tXs13wb$dS3m3b!;{pA+=g8mTpIR*%mt7SOZI@DegbV@9){cr75Z1= zML@3tTJ~jz@vw)1?jj!O%x^g}89!&%ECjnUX~xDl8TDg{BX%wj->E-{dw<`r1=|Zj z&3wzHNc@UiO1u%pwT~rf$i6Z*PRvt*(GMn8*bC`%akZK)MqfN+$S0hYB&{FkO3EjF-Z%hcvplJLt_6wm zm?sLe=fi)+LqiJU0%cG1RD=&xAQV~vds>?HF6xj#R1?$;jHft|X?=(X_<=I<&DEu2 z6zMr&bT3Jxn})pBbh-c#?$7-lmo5$V1iz+JKg1U6ZI|f96f5aCvqwzXM_FHq&n~G@ zzY;t5jjvXnM)$61J3FYPswiqWhOfI~PFt2_w8XYuq&Gay(f!LG}~ygI0FhR|q&J)j!7CDDk0kuaL|I`bxD zmc|&P@gStct3m5fio!T;4C`UNq|;;1z0f3SyfeAER)qoPzqcQhhz!O<8fC?6n=d z&!`lsyVz%x{nM#VzT8UG##q?Ykme9*E6547Wrtcf>OY~Ki-Wn5pxlSV$(g|NoaL;D zw&GA60grfp|4Omy%96Iy>#X1+(NKd@N}Q(byZo3Z-^WVmql^XJ!0Zj2f?#lch!stl>#WD zsukS3{w#jEsys}EG3kAx=IV+nA}TJ36f~~HXp}0nxDW$tA=oXyng-T0udXR|{^Ce+<0!bAvMGGXja9E%)YI1n+BU@uG*!5sI=!l+6lK0L{{p2K zL__*+<)62xPWp8fN8Qf6=Gxv1NrSG3!?|-Y{o08*m458CO}O56?bO=u!5Y3Q1_98_ zLAVYabqMBZ7Md!EeNgo9;_GVqZ$-KCV09GdL^r{C>Qi9x##CIaX_T5S_PMTh-x)}H zCtT7!7-hsnMP{^SQl443m<5wCWY0z_hGS6_+zwF8fq?N)hh|K15wBg>P@OKxJ| z8H*WnAZb0E!4Dt`ErWd6uIF?89F>_TH~V&sw*27A;TE{!h7Ia*;>jD@eMu45;V`kjiy+*QEY|CnUq7hy`VGv`c)GWXamX!8)X=DX~79?G8c`Xz|uvq{ES(=DX7l_ z1TrW}`+TIXW@t>`gP>1*pS*su4_r#?dHkkAvkzLPFO<+uA2hH0jM>Z|tUH?}e^euU zHA7<(`o#BOpMsXUP`%lOF2%lOnacwFJz{uiszr8=fq870x=^1qZNMY=PGu3!r;0Ms zcFQE5;$mzH1BWT@)weW^xB|*DKc1Q%fK$tP0k|?P11Z#7YiZ@5;%N6Z7iQy8Y8IjW zfwWhGM0pXoW??Z=h7#z`(@`hNiJDYOjPFQV+G(zpoX>}aExYI0G>h7u!xNt84+U3( zq^PALH7g%b%_56jZtMk}ItSu3t3s%^O^p@+k-3nUC>E=4FV1#y3hVZ&J|)D(9623k zdd9JG*BK0MyS-8+doJyjC<1{p79j|=SxkI>+sgkV))kVq6CZ2Jc$82lhu?~G@0i7n zL`xv4dUgf*(8aj>$@Pw zAJu}z97FCUvl6aA*s2RUk*B7uaI`=`DPOBoS!(}OnO=2Lgqm9q5VkFEO;Ak~oQFy& zPHbLXBC3XG?Y$b}LTqd|up#%TeBLbHt;%~~-m)#0q;Bi@Rr1w}lHi7wNmg&I(sJ<( zIv~N${PLCr_Pvq3b=DQl32qC}{xmH?Rnz#mC>xNI#GZu$vpdpK zy-M-%wzyg+df!!{E*6bYk>IOU6bZxh(fr6 ziCoaw2RPc_rlZ){`Xnm6=dcV=y!JqEQ)Qod;PAVZu{TjwkstWj84qy>t7^OiVU;Mk zyIO4%qwa31?SXBtNH33Vp|MPyaQBcTm4W3yDz$f{_qa!xv(z6#>|hc0XRC47EPCQ; zk!JNp5_2gm!1oBR-37dV5AX??-Yuv4$=Vt#kS;EYR~HrO`%MNPG@(`!ginq$^e$yTwZ7u13YEFJ_KP!Lucj)IkA${JCW!YpGI1Zm7i zVl@(Czxyge`y*lLB6(lmrG(7R@|~#-t_HrLO$Fo@T9Fry7y-8e^Z6qSPVpvycrlH1gY znGnEOhM|gx%kE!T%9DZhC_id!z%?AQ4#dqk$i8E>S{y74SsO*=10(wxcPD89@1!q`dcr;XR~}W-5n17+A&#Du`K?O=NT(^T~FiRk`|DNN5}eB6h4y7f>$L6y;!|GXrxlaglGx zN_|fNz&ITASnW!FMG=R2G(hq_Q%UkLksJXMy#~z?4wJ@7?70ZP9w;8U!H>rFu?~nivSaSfO`pmEd@`qPY5v8 z2WXlPz%(DAodDP&@UmPoALl2N(|wTbL^8t%_!|K*r}pyX?g79oA7BIlFwOQT))HWj z4{$dD=6V1nUZ|Mg0|u)={jv6Fu3eB}BR2uS29Vc&G*r|%54n}>0vt4p$Fa(DQE`?M z$!dpR3KfSs2nk06UretJ9s_z9UJ#B14l5Vq^NZ#aDgI{GLa(d_TAZRSm3c72L)fZ` zmsX@07PugE?5mi~;^D_DR7<@1_#lJ=m{D|+9iIC{X|nc(=Nnr($y{oUqT|PRlAY9E zbYa=#PW0tqRY@nA7Cd`rb0=90QqN57BvYZ(luojdSSJ}qRliO$2T4k1fRxhQN$oF5 zso{}&w55|;oakCQCqs9^>ihDDzXxm~*baihaS~zmluohZfU))UGl`4N9r$oz#-;TT~?(u8Zmk=*j3HmDj~|vS#O@ zRKC3zwj_*b9@~fCi%-ov?NEP<{I(JlZ|4> zAF2iuMpHHbLx0YIzZlZ`7Az2`I*(%TQ@S|psiBdRQE8siU_l$NL+Lf*?x%)LpnO3C z-aW)ipZZ3wo)$nL$UH2But5VpJft5?C|aEjDJP@g*`ns@;^Zmdnt;>CTREDAP#F2> z$vBnZ%z=4H3_a_c!6w1t2C|IPh>Ve%MX*i!?*M7lPsddzm+NOx`b@ekfqoJskle|H za`Kf!sow>%3WLU3V*AshlK(D$IBS!BHkh^Lg}n8hE)Daneu{n$;6R`2mep2}og2~x z9`mr6hOs1Up(XJ~Js{TkxNK?*SX*&#+X&ABr_rE@_GdPPDF=?e1T0&8^333Y7vPa) z$1$QHE#Zaq3jqpj(l2r`%i8qci}BCas27VB&sLOP;==PdN1hVOZUgzH;;d(@2em>0 zJXV%>EF)cD_~kpyLQY?t*;$)-YDBq@}! z6-35OYzLXB^9XfakErtrbpxA-1Zfb ziCY=oP1@TS+)bZM&CW(s5Gy)sE73$7Y$CvRGwu|2Gi(YaydZ*Qfp)M9C15y7ba=9# zfN?ttFzx`DX0nde1y`bD;aE~P630XyV)A%(It4h5x3HC+|aNCb=6$y;`yxxSJja8haFerf$o}n$xiTx?54?t-OMH6fA$k7BR zU<9sjK8A)X%~}sU`*6@6;L>sefQq#)gcE?Qa{=qNt$F2DRb4N}y*gTbKpgt&Q1wA^ z#jAbr8JK%tt*L$pdc#qz66_N`Oi6U3NJxi;pi=_&i1_ELOOScNYopco#EGx1<#eUU zdA&S19z}>#UK=3hzMjn9PWm^eikDtLOubsnc;hlPDn5B*YR;p8*PCZA6+2$X_;9Gd9~V&@(=dWI}=BITGwVE7*HDHKxh zpQitT;7*4oJ{?a2022p1)czFZe3~daz=^;pI1T(Pz{wuq&q;DH3$_0b(#G?+C><|I zF!+YrUnKA!2`szs>8?=S%X*13Q(0+6N$>=?0D`CLDo28DBJ5x;-9&hq!QHCO%(>6( zfM64O#<3nI*NDx*gP@qVagy&{IaQ=TM{gK6|ID2t;3WQ8Zp zrR8R(a|p3hu>?tK2(SUMF#|=q0YVCF%>;O(8y)!Ie?p#(92(GPs|aD-31uUc>`=@> z`}n=N>&$gDFgo@zig^X_nr?`|yZy7PmdSL}y91X@0aGcCemKfScr!@Rv3ZWIA15ZZ|IcL>9q&~pN#`Y8%O-4ea0_6v8OB)5E2KF0 z*kXQ5#Yo(%Am<}mt}zs9EFrKcf|LP*Ackmo;fi48 zfHjFL->+S93B>8ZyafEwPGS9Z2&Odbub96X@y4!lyeX=8#!B7-+F7$L&xgVDF{}^dZN@Cb= z_yozr=3^pRoE3^>NqT_)EXI6TjrT8?eKe!GO@bp; z(OEw}?=WEG-t`tS?4ug(+g9;u{azYA_BC-}nRx7@AvuRrt62bS@2ppk7F8ct#kVl1 zov*}NvyQ;k*}0N?K`sezG$lUHp0dF0o~id*V2Cam@%W9L`olvwN4(rOWDayVIeUJn z+Ly;x{wJT7JLHpoD|8;q<%ju>p-Rc5g{1S!3q${lS6-Y?^bx23#Tzd>2lYy_%H>W0 zHw)&k*i<9s)4~A`UmTfAvO3M5FsDu&O;G)>WLXr>B=E@L3@7m22u=SCxWo5{Q6(_e z@q|36O!o9_5fHsA2@8gA#xXVOQ6V@7iuDPp{|yZE&vDT#ti%M{V#XI#9NhB)5)CIi z2_O33-z?V zlcmWHpDp@61LYWkx{n9JLgL!-ubRIPIu z&Cs(_(6b3zk~kMP^GSe%r=JMR;vq<`>uVhd7J~^Eqyw>3P?p}&LP?gXV=5(CkdA4T zgdoXa#}wKAz2$7~dx)U_Kss&IHso9l+Af6QTAf-Tz;z|+J+t6bYm_btaLXfU0$Kmd* zE>U%PeW0=3sXShfP1Q-WkZ%dTO$(3#bMopMl4&Z@%Rmo&VkwQBpqfRMHnLNhjF6cA zx9TJnZ{z?hBO~-{%m=v*G>dG^ttQdQrjtw@BCf1vk+HHjpi`naE0qg|MpzccB~Z&~ z7F!iFH}U`gaT}b3q|PU5B|gbzOfpFkIAlZgLuY(hTj?@U_ir_|tgdK4F7Et3B)S?|z5=I|Lq!`rWdD+=f zqZkOIgtd%Urbux*+y_Pw50`Y2q{>Vr;iCERedQ@vguK17b8xPWx%MF>dms*cM`mM` z;W}eVhfhw9hR-sl;UZ7)M?vl8j3I4sc5JSf&;b&o6d>orlIKBz;@vOH)E~t^zN|?S zrnEI*$qq14X)E4Qpx3a1O0+=19zMxZ91P^jL{=bMCPLT-!#9~idKuw!@#a-I5<$HJ zSG_MTQY%E2wL7XpR-WAOhXmr9uNu_fi=mny zmgu0%A|*S5LAl3VDMjsqAjQ_`=kOL6eLZAO6&{MSI%c8)u@g9pZrSB$oPd(+qB(js zu#xQ6%j;q}dJU(SU0zq3>%eQ*tvji?4cM|=Y^D@_Q`>||rxd#`7RiZT5XmXK0Nacy zXlW!T252cm#p-YRq;eGJw)ZDl!qMVLyaq41Wk(`ckp`gSoOZaRkTF19_06zN13-lc zrx^Q_IFud11|=H5BvR7!a#3C++;K#@iT5HCuS1r)PQvJeVBMfPGM%b-ii$9jDod{w zEq{;BBA-}jSZ7&HRj4C^xVjf^; zo^9DTKd$67hzZ~3N65tlDAt6tg4;!pS@vyB@=`#ZsMdUv2Jx3cVBCgIn7E8k<{tr+ zQLo-a5?#*FzhywLU^W)rI5RoEc;ZTeT6BdEbOT%S7hm23iR>yOGb>i47j!K{$7MjT zW9Xa===B8EEV>zRu<^tV1dzvrZ= z(-OZlq8{batUF1V;;fW7;>jOMl2p1e9Lg$2kHu=5l*iK_73e*XfjJML!r6+?P62OkiX**`=5QrbW&K5|-`N~jRcx&v2d;>SN6z(s#1)E|qJG&H&Tlf<{D zh&78ls5D5DLmvlsh)=G7WVt>PS@A&>q~+^VD893K8Bc)qQH-Omz+sGU@Er||J_eU! z#8kJ;CkpaY5qhGBu|VN<-*LFrOK%&=(Z}P-n1BoQLEceL(SCg%beW?*cdhzymJe0Wslc9iP@X;O9jViaa!YAP7MSg&6I*;;Ek} z6h1`d1QQR_&3Z`m`ek&8((Sck-Y?Z|a&szar;-o<(r+kbr%e>Pm+`tf+9ViQ+gp`I zX?g$!azI>w5AnB%ysirMAu+IPK!~~!K5??Bt8$)9;+aF&P^rwzstoXzJ12+Gk|O4( zSnDSd_jmPoSf8IzEA^gPORj182L4)EolcB548Fq=BBk#c6i%YgJ|qtK)i1YOg*$%j z%MQUOU|JQ@1oUcIE_K79pp&F_2`qCOX$l@vA#ey)CRKJLZ)NhFkR|EQ-&^(9-&Mus zYTw@JwF{MsVZTa8=9Akm6iLEGl34#eb^yRjm+ ztkN#}EPzd2D^#`%JuKr@g{#+**TSbAd)AeY#%Uqa=Sa79QvW_8$Icw3dwnO++Ma9I zXliMaI#rsUe3|`Hq$$ToG=;V8O$D_{U zqjqONtw~M=qr?+{Y3=+k4)s4 zGyBh5xCfXp6;C^3gkX!PF|qbjEAgR9#~zYDCi#9;vSWdSN7LbS9xtFgMHQhx^IyBG z{6el+xBBkM;Pm>Ux{dzoCR6p5@NV_R_zmrJtC$3LtCR$Hs}qA8j>B%`zFs5hiy&W8 zF57B4rtiGUhAO6Ot7}-mmFFM^j7e zx3blmrPQIN3iqVojvkGrsDEC(tVq@OK`LL#0Rh&}umtua1vYr$Utb19(|dStM(v93 zK^v%8*9a@`I1F0tMLBAH@^LV0Ea7Fg#<1RoEF6``5OHHlw<8FZY8DY02(vCQm<#eo6qQ+HVs;x ze*>n*N=WF4Lj}=VB^}Shd~xi92r$}9P>o{D0E@zW_$YCVtR=O7B(E#fhibVBJdD-2 z&;+m#=7IPy!8p8`4bQcegw3;#(eMhEg;m=ie?iU>R8K$>9pZ%bHFUuuP@JY^##(w> zhl{ly7dg||fRy6mD36>x05X!YVKGtWI1s1=JPyP|u_zS-da$^65hiWTN~D*g7DC$J zJ8LyjGEhhCiIid!(dAP;7mc5LFsAy&Eaa5x;t~AA)i#BJveC|O#@XyUx`wr}x z1cgRvHwUGm3xxGY?D_fXxb;NrxE;J^cYs?$k>hxP^-Y#0D`x)wJsGYPOJ?$QVMp8| zV{iNOe6_O1>z>7Z;-icDaQ`fhl3kM$qt@^3h61%tU1slzTOEtG5eg|T#fh|1eG?_i zlt@{WHbST)m+A-G7Zs?-=TiQLYZdb-yS`8zq`kPmy{J%~wg+*@@HW$(8cML7n^Lo3 z!qms_hyt>VI3`>U7yE-ke4q4%vp?^pRu1r*pa41z$QGa<&x*Q~0ezX>)LWf7Fjc^!i~4)T1ub z;spx^@DX2vIRrQZDrwR(VA;bSRHXJx8eo$6BgnP(Ln-+pCH-d@o*{s_4&pg$yx4<@ zC!S?!M+!QIpf98{8+dswo_L4l5F7d>341Iv0NuJx&@<}}LKLoZYOUFc9jLlp> z9gA29YaT!?D4+QbvdM2dI`yY)X6*rK(1yK0PLgw%#RQ*NL7%ireiYP+vj!BVyr`~l zO%3}eRCUATLM_q=Y!H^cr^XLPI}owfd>-own`2-T%{eB8F&JZg3hFot`-)-=wj_r1 zG&t^&t?5_Ft8lz-<&Yfin7)Ov$`tjWzeSQwRdCj8sFxb0G z2oDJC+{=_41D^(n7vu(vy=BoPXs&Ujy|M%o9BMNevCuT%skaOS&VZ&M1HriZQY`Xn zlqrVU^)pk9qewO-zDD86Hh#Gd--E@boh*Y?WFWQI79c_FknFs9T7u}^GbZI7ui%MhO?*d9XgaW& zsziUL35$v9&#fST+kt_LCLNdp`DYd#82Si|X+av;l3>h;(xy)6=|nw+!04eki)-)b zqgJY0?63N$)ydZ(j%NoO6!TFj0F|$wh&&l%I8LjjMsOOBeIvMoN)6yzwlRUa5S4)s zaN!y?undWj#4-9|ihX8O&6!!WmTOIgN;=u}u*_ly;2Y!=OgB3IM9jL>PP)r19e=Xl ziK^wf1feZ~*X>`UY9-f?5A8JOcf17@r(sAKe=vHGOxzy_XkdcHu_#GgGz&Ego+?P_8BN`p3MbA7^F@H+o^iJeM!($em47DHYJ$Px% zi+_8%RDTqOXx1B$T%HUvjswe1(ha1Y7X4^X1tVsZTT7>HHX{N0X5;zuB zwg9|ISSfMXvYw>o(GpmM?`A>)Wi~W-Ir&XKz6#b6^9OKd<%gZKNY#PFtB@0~Xq*7{ zhKZUaUIT!~7HmkKU@t3!soVrOj#=J}o3#@cbHRGJ?<%C4Hf84;1`_;(t7$Z+do;6m zN%M?HGhmlAU#_3#6oxqqe}AGcULxyWs`R=v$&fF+`bmrv?J?!*w6-|v279P5!yE9b zIvY@GCgJFWb;+FpIzvPgGERbS3NVce=qDqEU-*>zMr}uPivn?q{ikwuG{1)pL(Vhz z27k%V^;IdSgg70`3*B6p1b1^v@SLDd^)!f&D27bfXBV_~5>#g6q=k$;xXD?N3sQn` zCnsZNA3+|TY?eIyo47l+d#e3>g<6p$Uy)++S&GRP6x>+dtrrd}a73gY2PXn4H%cjG zNAvmHzeZkux0&;vWS3N` zwQ-NvpVE1C@A#+Mt1Hz$DJ#$q$|&6NN1Of^s_8*9Rpn`-O#6-ovy>BR*os{e>eZTQ zLZAe-x@O)(Nosg^0LC`O+jwlCH;3Q0$M%DFPDRDe#?Va}(9ap# znF0NRq35NbT#XMIdVL1;1FV#yxJNR;JDK>c4CqG;{W%3?O}x+0l1-j|xXzz2v_1p+ zXM*CRt+=^WPNL3#A+SZtGfqR-Gk%8){155aI^74LqS63f7IZ+Y0fpMnAnG$SvIB`V zp-}r-ggjd!Jy!JU5f*dOu_U0kdrl4HJ~)Q)2{PzdE2I&eBDlBUllV^x&2F6kmkA_v*!A|)wFqG<+P~%94J5W6_b%gb9LRR20pw^pls>{SilOJ=W!8r2&3?xC6^J%9GHt7 z$m#ZwTKFW7XG~6CT&z0)BaEn4%%VfnOqGRjGAQwWiaB~Wct^-JkjY#DI^$1NyH|0+ zmxYq&qI&hx1ab_KGBkfZaSm!HSFVO>q7*UDqSU%N!T zHYIl>I92S--Qagqu`JzJFC5lzD#oqFin!BJ1kNwBCPHoo&!ip6BOyM}NZ-gL6h7a< zyl6r|y=WtXIjno)D>8o|NxAVl}X)tnry-h znB>e*ITVbs8$aj4NRz$|&J#uBd}=cXoM~%mth~4ntPnv-Rw%z4FJV9 z>C4Qi_V{=F{JMo|b2ewN!|VxmlcQ|OQk1J8ygjjA%}xGC{PE%QM>MeUn?J&0U%%G3 zk}B{4Zz$JX29)`kvZ0X6kw zj!47s(K{MQF*8A3uyYWEjdeC-p@t4i_cBihIbNQ=020;53(Sk#l`MX?uh7+!B-d>? zaJ;z`#W%8Y8;79zX~gIG5U+)WWzFei9UUYiq6bB?Y3X7@r{FXPUEYjiS7_1^3%MShCrw;1Wm$daELu>KPx?aCfV`0+5_qf zAjN-9>q`pP6wLXkTv2anYWQF|=pwznrbbK0$$xr0`2d{D&Np8NVI>9p9AfyA#zoS`jb{5Zd=zuy-$6s`j(n%D8{n%^&NLck zDc}8vGgXy}G&n80d~eTdRIAnR?M;npzcm{mp%ad|)B7VJhW}d@&I;v`8DM9H604>? ztx&>yc`KA(H1Y~%UK7I4J5%N9SPRQskqn1+y&~zLeouYxVq6eD^XjEk>OSM6KQM0043&&5OTj1&w~WeFeQN zGZsr!sdcd&-_lw12(Y51Gg`Q#uli!P9z;+ZZUZ`XL)5|QPxj6s zs-Evj6o51(L)HEp2!faBQLkJqIb!h{%Z&KeIzwqsWRzQ50vWZkwWtkbqaaGdugS}X zW{S(00~Abc(ii^qN{W9vzO^qKs+J|EU}*6&;**@#znBxPZOA&YrV<2okaEp-DhN2@ zLbZJ)ph=0+SkQr^5sq9~N8`BAa(q$=P9*ff{VXpFsu7ME` zDj}tijnapHsh*7(&`JAL4h@hc4jx$hmSJj5_E@wPDfv}A)Mo0AheW76r8>KGxY{>4 zkz++!Wo)8{5QcB1vdyEw&2vQNY9|A5^ALd(ofyo=;#Bg0;y`gw{_Av`JCjh*sZbF58RqSO%E;-h z8>JS5|BscjGG&##7|b5-16hP(UmCAQ zH?Bg{@tNzed8M1oGv9EN`Pim!p%^%e#0|-GHl=f9Iwav3F5(GlQqXgniUbX(NkjPQ zA$!pTwRGBY*qig}jYUk^#>~P54Ehez>SWno#8;wfyP@pICaR@PnT)(S6J_-tNLD=9 z-%P;CAu7+Ez+q^mSJnvRP2VV|_dq$_xg37U0Z)9GWSp~Nw;S0BRr`a!q8Tq0*EiD( z`jgQzoy~>qewn2{3jClD*DUD+#S&Do)2VpG$x{A;M&=PmO8;M0hEJLpYRy}5RPot(fn>d%KC-jP+LnsOC2Wj3nF zV}`GaXs|I(gL$pnLsQocV*^ULA?8Xh`Ufz@DG6G|%(CZCR!i08_S(tn*y20M?&`74 z9pF>G@P>EVw@=2|$2;xUCaZ(g8!kV?e@D9;POt^DwUPpVqz#0b!yH zNX+r+J-Y;P(#*`GYIyYl(9!5M*mI!mOC8~OJVD}X=3WeDDDV4432G6Jcg_$FVq8kw z?P`ArfCR}TC6jwx26RUA;ExE|i;;YF-g_f*<2^cD0-9HerjTj)$~4B)lELGIEMO#G zCGufL>hOAC;NMllL>;jSovfp3nwwCaw3BsIAM;KRnmmLxd<^Kh`REmJEERV+x#Z@S zY)eg93_WA^O-)b^Hu5~@bUabbu0IYvm;a0%6_cW2bdu~+ZL1TqKP8ns<+$or>a%` z2I9f79ci3SFRBFGIL|(Hs;VdZQUZj>gPkfC{cY7QZTN{hudlQnuaYpGEDQQbQU!}vV44_UW&^cY6)dg@lj(NcYBL! z;F>bVlQdJ-uOsE9+0*p|k$Mj(OR*F!|1^t)<5miq^;BqTI~6~zlEQ7x#Id5Knf)^z zCvBhtdGQ-9E(g~J$eV2iP7mL+w-QJOE@oh)rRf-K<91TxYMCp-xZ_u`igRj!~bp zUz(wo7QTp5aTtzT*nIg|`-d5711M@{s$(Ycx~l4~f)Yixe-SiZ<1CbFev%xA#6Ewf z+JDX-u(L!R@n&X0my+bc??$@o@nM*7t;5aPGmtVz+%k)<+r-d`0VQL__x=Q(`zF0;YbP+p)-Y6N3n< zS#*;j+)y828g=X;GT&q`ACE{Fdx_g#9+bH?WI~yCRg(nMiEP=Y89Z1*_xD&Zv{6Ej zNQcG=s#zm&)9>T{VUb+US!{dh9Cbt=k{n8y{RAsmhT!+wm(EekOO`_c2!Rk-&~Iar zCXD;+=aH#arh$&NhU2uNMu3oUKOoMUtz9!$jV756E}552Dll9>fWC06>n6Z3Sk%ee`^_ zf0B5{at!PcP{r6z=o2x)B3}oR->3=7IVA$Q8+#;ne(lgDzKMuH%y-!`Y%I9A9|i*- z{-y=BS|*OO$qzu$PlGLmaDFnLk!5_#!NJd-mhBj%6w?8pLUY?woVo3GLg8Z&3O+OL z;DC|2UeroxVc=A^6c#4RR{K9yi<0QyI zr1=SqT-00VW4OJYdaKhDj7L%FaJ&X_d#uE@kMoHr`aO_eN zV1b($YgurT|G)%M zrxEi?mw!9Dp+l=Y<3#kAx|h~~m_H_*m}vLeORev>5CA9K)|42;aOQ$Dxp2F6FATGD zISoOW5Hxg7xdkhRaD#}M0;U0hQityn3qTL(S?SO{B=jZ^%7)V{p|7MvTO{-^3>`*e z&nz0Ur%14RvRfQx+400w39U*&?SJisSM+Cj04`~UBy07cGbuCG6S5xcL78@zgeE=c z9HN~qq33u|rkx|9S9wt8J68)a<9qEZ7OQ<~p7pTIX+Gt_kNn^!qm#*YU~jy(^c<9& zpeE7i!xKUMfAHL~1u6cbpoK(NsFYq@eIAIqPQvJOA(}o97vlv06>MJ8b{=InUIZZ9 z_#>{yOSotjv9@*~slQAY+QGz>4}0K5o^2#w0Te&f99x!$kj-OZ{0ZPL{6=ikbr70( z=nxe15J`gBG4-I=s0ZN^HeM$#nl+t7I87n}NqdUdJe5!oBW%D?$4!w*$tq&XZ_+7$&7e$LWWHwWsToC)p_;d4Ldhh} ztkW`R=Mi*yIuyeQtt9ybkL)x~}7zU?Q=W(|8I2{matgzcX! z%A@fb)Prz008KJQM0S+Uh_sOo@fzP_Z zXV6g@UU1!$$}kr*fJ3%@7_d1-v4{Z|rT}{}V0#L%m;vvm0DCha>rAhdB@BqSr65Zg zGKT?^XgFR*0L`MC{JLZtQ>;v7X(fOpI1LrXFP@gu;CTkp#+mlk73!iS)y7O9OPXJ& z8knzVLa7?&sIxL?sV?R@=}^aW9ZNon{sQJ-iNN=MLiX9r2B+er{|uN%62wO#Bt?oq zJtv)@lAismdaMcRYC-dN_9OeM12>TZ%-cXG<5wlV5-rZaZ5~jwr~zRXJEzK|@fYZa z=dx+D9MUeR4xOS|ll@H@B*(b{4B%Sn=g>7^b9l-9X#H$0&>XpM*QG} zwcLJsC3Zi02}j4?cE(g>mrK$*LUJ5JSq}lQ0E0JazeJ%3J5V-$suyYFYh09$ZzLFE zy9WR%pVENezUr3a@98;m-7GKJhpbZjsb|?|tisQ%sP_G<)TWl@kU0JKxxu&tL$wSS zJCNuKRg%Sj3$}Hggwe4_5ZCv{C9$7fzgitwXCRY#!gf_usqqicX#RceVf(A`KKlV)9K=zv_!xZbIqM?)R+M?Wy?K9iqC{om zbQe(Bk(`T)a}_gTKfb>@zGUuJ9C;u$Xk`iFjBUn!?cQtDnR!tXHHJ%KwY_?c8jr68 zT8AD&a2b@2>EGdDIo5Ah?$ zLH%QJBW86lEzL4KW)El?zrI|xvTCsLGcpE@$C1Z-lx6Q1FfXp6=mIE>e!_X6Bh+O1 zd34P(!MaO@komBR&UTV+c%WmZy=|?!=l;J(RroXNTIv%$AckBwb0v=vCjtsG(U%>dqUb{|>PdecUMd=T-`WpA^(R=zYKFmDu zkoE1Pn+p)^U5=A>{g*6O#vZOJy#eb#YssAHxX;G(DfSEN)FEZCWCez;oPv&w&Zzu? zXV{eTy4`2JIwd)0KF*Rf(Y2kg`He@+D^`v~3?5PzHeNI-r2Lhy&+)abi6HfSZRYDb zhEHg00EezPU2kE?v5m3eVdYtPm|4oPcwu3dGBB5}d-C-iOrJx_fR>96nlwup2T({^ zx%9@dh048IFZT~CC+ROQ4l8G`dwFq4Ssy$mzg^KW7Yr#M#Yxbo8jhG3QmP?nNU6%Y zaco$*80^Bz{w;KUY6V@7K#^f(bv0e*V96(}Y_pp;sIevgTuF=;XC0FtR_dXuu#z{H zt}hOu>jjvmhm{-J=z2S+Ps4s{Sh1Mq3`|$wR${}5!`G8<92-*J!ZoZsZr`*)tsHaE zjFqGRB zm2Wic5ml_d1nL@3pf_gRma|43mPJLDqIED6X}M@pSUG;?(e|Q))S5|aT5lX%ugvbd z@6+T%qAbRs@{u+zNa=mE>3T2nhLp4azslYPu8MN&<6qD0 z*%z*RZ|)mV*@B9K2nq-a$_5k=P*7A*6cD_SSCms)+OQKyQ%jE~T2_!&ntGBnuT+v` zT2`7?dNhOVW?5>-%u4IO)|&D5zVHA2zkfd;f2{Abo_Vh8nVCH^dvEXi%~l5dz{UAs{QK*unh343DOkNL^q64IbA_#gX_dX2 zpVic_@+fv3X%s1sOrhSSa$nEm+VO-911P0CPUkY=!xdDgQ$e4`;$v94 zy%w@vV#)=9KP`hTJ~RN}vKY%#?t=|5z|!H*H0WmH=fh7%TrViY+o?7@VX;8b zgzE*BNP$dFCKGgFde%WX-SO*%BE$l&{fUAgk9}7Pt{1Gw=K>0uT9^jnugy`Ji9@d! zyory>Rx!ObtPH$#%PHnng~xYJsnE47`8KwOD9?dd%;Cmpw{(z zfe^342ke`KISVo0F{W@U(GF;5>Vnm~h`sO|(`Omi3p~UjJmH|G{hg&yp`T-sggv=> zlZa#bGn0J5!hvr=w7{GcsxVyS;$hnYhk4X`iQ$~{I`%goZ@rFYpI~2v7{|U-VKh#; z0$-PkHMn7!Wsol(VDiqsuHc4+;z34F9PWHEUOd5+XuDpJ1rx+7m3YH)v61Pkc$_9N zO}r@(VJlWqC8mq_x%$t!`nejtGJqG!Vhn#y3Q_@3zv2hkdFnQ2KpZMQ-E!8CC^`SuDSQGflA_QC;t2QSgD zlPKp~!joyF6-g2AiU`J8T+9&>!}LfhWj!epncf&fbXJUDn(spNi87N^ zLUC7$&RLSABO1>%TauYpFwKz+Oiy6JWiVHA(cLX{p5(^9M)oa`@Mrh1lu5Y9E`x_9 zpL=pXBKff|p37V$DYko@k4iy0Z!97f+bu+m)R}3)9WsDx`c+|ot^G|#1MKo7dr;5q z1_8hLlIr|OU!M|#XU6|MMJZ{*F`8*L83io%rksu5+ZFti#vAKdzw;r-basbw%0;$^ zdpF_L?o(lLSab^KS>|Ih%CIyy(NBilOotyHr|gu68f1XkJxJ>(lJ4^#ir&9REs_oJ zuWU+rZroK2)^6C8A^{&4XQTVFkv5*oMI7u(nJ#yu{vDk{eJwGQ{bP4ZH%=nGRz~_1 zr%W+Xp0~KlS6E9XZEtYS#rs{CutC%^Ia*pRJ{$ib5PJ?=BR3(nf->7N{x4Uyr;R^oWHvTw)dNuKX zFM>-@EA}X(e%`JAc5^*Ls{TuJQd_GUu zCk>rw#`bR<@gTO}rI_qL$CJ*UM7oa^g3Z$Hs=n^>DE9GB4n3~|nz9g9&j9Mm?}I62 z$w<=oQc2H^X&6_H_m`;Bdq=OL4~?g966KM4G-3H`vabpmypr$E!joMVV_hF~S#qay z%OuMGPnk5wpK9F2<(y&t59=|Gzx*Pq@hrD9WH5#~epKPu8q7M28$Apaf0-zps&pGo z`fe~a!or$2b_G^HiFKAtVWH?r%e#=yz(6s;lU@FadVs@xD^@R{)9?ly%Hz4uqh^Ov z(@?{uS>%K&v4V1$Iu9^!PO^2J?rfy^YWc(Qk$+0{=Xemm-0wo z`ZJRQ-oFb~8O3U3b>pJ1<3t!>!(__&{6LD223(T{n9R)z;EBsfqVy-rDZN(`>F3=@ z{|+R5ns)~=tUkOx-|?sP_J-dd6rC!57*0hWm_kY4ab;_U(u#5`q?DIgpJv_43;hwU z@<-O6Ceo<5IY^D%peWSa%izN5>DsaB=y;#_=Yj9~{7<{UDFi-%laiGoRA^Su=-GN-iFk{2*j1sc$SP zux{y1Ilu2mDXV%b1c_M$qp*Ky_b2@b`|StWxK{iio>d=B_Jj=5|MVvP)wKot@uTZu zTyzO|q!M6feTI)<3t8LvIChYaT}@ae9%rZ0KJIH5(h!GP!9QDr)L}V+1<|1cca7zA zsG2|FQ?#F)a0UnPF&jnEg?v)=Nc`7Wn#*MDr2*b9rJ`T*`2zEQ=|#4Kwb=I?oYqST zKinx<@}QEbe1qYfi^-^rsd?7rXTLEuZX-yYxuikmq-mL?rpZ5JFRw?_{QY0{5&!ev z0Z#;dsOhV4jAcko{0}yWQxq7+VHKJ~{dfT5R)&?f8`$IKUbk%-R=eNA4Sr6hb<+oD z(EyRG^LY#=;Pl~fhs!xO^cHUGA13+B5L0GEeP$}@^s%HCOvh)#uqiS;T=lLloeB+9ubJ27&kdWQT_T*+XDxX&K&a}tl-H3Jup2oh8kLDCVe|I z5>w_5AbYhR>GV?4&1}z0B|Bv_>4wo%LLctr6G~Wzdd!)Lg6kRc?BbPdk83_jR<8PZ44DbcSu9s3^`%RDGqt4}_Fb7``7bQ~dA1H7&y<@w2ev zAsA>f%t>sLeBgn>^RS4;UU!H6X**R`&}lwu6zixGN@-wiVl8DgrqKjd@~~&|L~O`h zgeg;af=W2$1g79IvbdP$BbIeC>!QJrVb+b=k7I)#3ZZiknjmWXKee{Yun2cn1}KYf zz?|+e8~%r;t0OAI=kYRja&h8SVTI#X8g?h^HBtqFy(sA=PMYh}(lQPoJ%?c~+IR|xCnb1-j3+}fOm^9ZO%X25sB>I)qXxJfK&23tIfP}N zL>VUF_~F^bK>qVoUP+yQd0}S{{iK@KFM{f1wl4{c@C@Qo&=6n$%P>)Ips39T?HB3jkU(Ui3 zXjg`fPAK)G`~{Q~iZH!%`~j}MBEU}pBUA?Dh2SSsIBc4eoQ5Bvr)gBdRHIQ_C-QC3 zXnk5Hj=>I%PW#Ud5YVR4A0z3K&}o(Mbo?RoS?qxS)|%c=i^gAH%+%^&U_B2Ps z$NSd?$gobM_5GJ1y~$J`&@W5iC9+dYYD4vKNu!E}ASZt8qc-Uwwky?i*hFp8L#9U5 zCOs6Z#BI{U8m6_TCq1LBMmVNXlcy43gligw1%(?-5FDzuJ}ziQfC(H-YLi@`SoJ|@ zLHR!eT;Mq4VQ?Ls1|D!pqduL9On9Xhn+7jWc`?8PLNxLpbPRppGpU7ofTf$7)3w3n zF%i^B-Jn=YR5v)-owDEt4UWg~)?r=4Ow6g&8O#vWgFU9=?q=BxVH!Cn)fp^+ubQE) zOe-dtWedbaE(gP=LKUms_$B7@P-nNR&_P^lD%P? zhW=Qg56oe5ntEY{KCnRZ_2^O85VKgsDLYc?4F0fDOMWxOEc?SYjjrWoiU8Q9k;vCW z036h4MD8mAHaM*k1_xbB^$F*`A?*kVgwi{-Hy{|UsRW%v4h3|Ete%_`1}cbMV4;SW zas`AyyGDh*%yJ0i^rEb_uyXv-06T2bXg&6=E52Sp^}UNj)D>zpn!|LH$q8eU%y@Ub zI!evyz~Kvp<~~GDxRI=w)UAj&wJerqR6a zMAh_dEU1S^#%GFd(54dh{-c0yun8}zldms+6R-!E@M<^FH>KXD9+0HbU*o-pBF@op z{KPs#57?m5r#*;{XcW%Ac8$(NpAP5&0dzSFLn+yDzM*HG=-IOlzk9e`OI+QZ0uu%dQ0UfkwP@LbPDgjevd-i8o$|N{2tu@MoQf>wGH%KO*q$5=`b@ zNdnwRRWscvZWvxK0u|c9B*3jSN_9eoxD}89mUN=SKut}AO-yQ26CrGf>ciKbp>Ho! zE#3G+@)=6LT6ldd(HxE5WxB@Xgpcxgy9~;SZBnrMMDWaHguMwwAxyWc-=+Czq!M99 z7Uet)YV}FOh;CQENh7s-yzb9FwfZ)u+tn|@`$+1L;5+yd;fjjjp7IsaQ+RiTstCm% z4uB0zYVQX?E#A1HAr4?)JCl?9I{;GfJ`0T@jl}@i##9Sb{QyY7+a$N=U;sR!l4+X% zF$JCfWOSMy^Y=x1R&|0SSinGdNuyCruW7UF6FLa!aS7@Kji@pRc8wu)f?I$uI&;RV^h}O`!O&JnbQq4g7f6F4sfef^d{gnf z53XnwjAM}koA5>)O$FYVKx)&7rYQxlps2p*MtYl4pmq{bJ$%tiwxuYLRZe&qK8h-k z98k(s52p)`K`K;NkgpaRaXF_#-ei@IjrTUC;qe9}RrNi?q|hCEsvjeSmNNft01u05h|M+soiPS`Jn*+#%HcG5ugvgN@Hro&K$$D@3x)#%LR zV@Mk`qCVwA%VNNPhj}^WLp9C`5j8s>eCmkW;A-boIUj=Si7 znIdS>h(@LePH9BDog%oR5sgz3)U2dZ)Nv{T_f=e`0{xQf3`Hapb^a>R=7#^(cqWBkoo(q)1NR1lfh$d*XooSjz zPOPvLUest6(>aasYoO@6rBMs+l1c$@*Wpj}xRxN1bZGG!9@Xh{3Aa!6rPdtU*? z8d2{n;MBjUn8TuFM7pg4d|p#&3({mL&}eLeFHC{nJ5(RV#Z>685yiz+NY{w=fm0P| z-^p3wY#=!cb`d$je=^Y)rds%7VzzB69A{Dwztf;_x4Io2nx}zf50Sbjt%Q|(iPSx5 zB`n!bbXd@&Rl=?VL~Y`$&O}OZi;A?Psf1#UXaQBia*b#KRYHqKI|tH+v2Uu|?Zn}( zgc>F%^y)^m4(|Jp*I^oc~8yxybbU4!8wh# zF@67@LQZwIXM=o1C7SKoP|TzrnrFkQqvTUh(P!TYuOj~o0kgs9ee$V;Uj@YPwe~#*bG2rFD-J~XYJ~m&R=no!3-jO{XRYPkPBq9U z)t1uQu7-qDMC$IN8rI*TDqA&dV_FMezHA1av){_oi8K%67rDwDVW zdq^%!xJGdO)PuK1w776WnAB$1Lpak~h|BoURu6eh%3Aow{gmx-xN%;s@I=^Yq`WV= ziU7y3Q??~w>L98&Z4XIZQ>qQ|b&)Kwpi{Pch3+ zz(AE0)5DYN49g%*b1s`~mX|?}N*EUf(sG!1hXkyEbt+-A3#1hg@)b4hFy!`4!*4wm zGS!nhlPLltF~w0I8&R@7ky`Y4syPsoNZ!n;vcpqXw+zY zzdvjn;U-hP>9UdmfiHp2x0H1)&aVL}h>7Oc4JnMN-n72_7`zNgOzLdE47nQ7-tuKA z)QA?|%kaHMeMS(S`i^R-1sl`m?^UW9qgVr9hItoN+*X`!+YGf#^>EVN7PtlWYV>JT zwrwkzexRK7AX(CF+aO(|U&aVL!qjMV3PW!@v}m*sOW6)rG%B)$2EGQFKdPlH^2kD&zPIT`&Xoe%~ zQ?Di}&CsqPUH5E;8yZnOH-pblRK;NvU1My9aE<61V>2XaMAsObAx|Z~#@Gx?nAVym z+M=yH;h;uyY)ZgR_+BHr?72$;%g^%0(Qe`jW(8s8}LwgSuL}H16!a)BhRt< zfp5aXUue6-q7WnhEeQCJN)v_=?PaRxOMq`dyGH+T6bHTy$FK46uO2A!TS5MntA~Mj zdGH+w(5M)*9)e98t#*_Lz6&AO)tp79X@Q3!R-+cjtiU6%L?gPacoeRvWV(zC{V14z zqwU)GWalVE{>I0@HuxTw%uzVVPW9a9C=}kHtWN$Qbrj-$C#r>wuGLt~=sQ#(y${tI z&Ge`a`~a?K6yf+SeZIc<15Yp_OY&Ne2s!ggrCL;C~U;TqoWrE!{-SM2!})Z!ybLfSjvHqcwWZ zoNm4e6Er$&zKS$Oqv@UM47XsGMhiQc1r2%_MbI zed&Syg4{%aMs!BuE}}Ft;G*>F$U~)^Ju@9aR-ug3kiyGL)ZU@YAaAjk z$q8N<7rr7Xf;J?|4Du6SYZQjQ0I?xb^@X9&CW3pbRm4px4-69bo_qw0m70%E*Mr3d zg|QaWF@l4|HO<*K+Jcmb*RZIiqoOR(No3uj4nybr3JnocG#?cjBIYnTxy%sJy^q?o zo_Gy8M2u!qS5t_X(MM6M7%~zcqY_s%=h3X;L3TkGovC`-?Q|8z_}UI6UKL$MJrjl3 z=%B7*1rvqWc%*eqZGsvTD)9B|TngF7_n7K|j&Y&lYmKPcVZsut<{XHngo#YNQbOCsjhqw|CN^Libs~IZbznCU+g~LL z=kB5f3G1(g3|vUvg(ZQUweSH3O?UCNMw{?-vb%^)RDGBG4hZTlN;N9N5$bVgRdluz zHL?$PW!Q-xB6$E;$fMRnl&fU=!g36K(}@(^wft!DMXXkxeBK)_=>0I%3yObK#kgEU+67{Fi|8d2#OLpOcV(UQUO!FX=ubT z{0`9!jqFToRKoM$i1NTbVi%(tG|?g!`$8?Hpota*Olr_X3wfB@CyJS9k7!GuIHC~^TdcT} zt2Ty0FIH3xS94OZ#fka2^Pz@PK*iw?oDkJQAzqY0pGNOaBs!wea*U5S5sjYRP$khF*MG8zEK>1o z89777sT3SWRDGLzIf9bKe0*;r7Gt6a9wgRjB-`o?gT!8qn(=bRAaPowO#B2iNZe3~ zLw%6&!=R?d)DK$dIam>qDw;f8b_S)0bj?XS&lE9!0%dgq?YmRN6HK*0dw~?OO(P1@ zRN;m}MupO0ELHT-h>me-B37e+PZE$W=BmVzkS>&^j7}IWe9^f^b(#`QnPQ08rqNvN z?+|fRCEh^|5vR26Xa_Y!3q7@=Lxg)NHAZdd5P{!xztgk~v0S6=4tz>S#40%G)NX2N zmPlbz_xZ!b9BeNY<3I9P;4qPbtAS{1`msR#nrVf)9rY2l-w`5w3OSu{8kbICyd5`mln9=|$3Ke8h1OA`a;91Z z&31uUrxDF|f!M>O&hHp;O7qoVl#CS#v+fo;RunQh@r&_hd90{VeI^RTLa|UI3erN+ zh=j+#dJ{!(p*W~IxiN*peeT`H6p3pZQDch4%6a5-!UX(8KVB@XR&)M@JKbW@`VVdl z2jT?Lu2B&-bfVbypz52&)J}xQKX{7K>mk+I#1x~^>r8nXd3#bZ6&ii-L3I00$Dd4f zs*eYFqIiKByOzPEz z8Dbk#Jt$AdpTc5JYxpJ}<7NtZ5f!5zerJgp8ubpi5Hw5d&}d)(Ofg4fKC0%d$0Oz( zL3h(|J0AQwqCi_)bP%5-8t<$$qMI7+SH}MsG)GLUQH$9>{z_1l=unA^!ANtG&xw&T z$Tm-SGpW}Ms_z@8YSD##i}6$9^`L6eLnBuaX8VVT*T_?MGw4Av=uRohDceK$74wi7 zre!@Xq~N>sm`)0wFGguTN$(N7;7-mhk`(;#eWg4iCTKbTA$bKqa-VOZsM37>q%g&{ z@IL1vQL8y^Qm5cWVy8ws@KK6K@5`x(4>aEcQdqDe&N8VZQ*&R=8u6W$a~t#ut`XNX zIw|!FR-EF7hP^~e@MFT~F&gg05T#2AUM!+DYLiofYws(xP9$i)OerI{?ml0=7^(T* z*9{M@7n7OPragXN&c_u|rDZ({ql52vE)kDvz9I=<6(LsKQ_Pb4idiDoYdNj(6~9G7 zKu0RRYX(l|dLL+-N-v_=IJF^Vn;6M-SsW#Gvy%EaC{s^V9lVNOd@kRU z^!TKP)a_!ZkGlD9gDFi_^bFrF{2C^17lwwt+lBiyY8q`p8pRE0<;I*3r4&*L#=4W; zmA(I6@6G?;y=uz6^%~V?jc*w7FX3-fw^sF50@W7GquaYdLASEMgsQ%GsJnKhOpkFR zbCSuvG>Qh`Z&Z9Dd;+~%++`xYH6T5VwmsaR^y6a6c`@XFwl5ngy*2x;sx@|N@O@1T zRH`ay;~^eYO(z>=`rlLHx=~Ypm~uDg%~aZ!O1OVp$|J)cID>e?gI-D7>R$WE2oAKL zu*VX7H-@sRBdDf~=3bJm_7bmzan5#5znk-J@KXE@FdoD45^$`cWQXvVJ}z!3-GOoO zh1BOQhg>>g|5FW zosoPSKE$GpZ|0;+Nm$R--FTEp8dN5g$sX2B%vG5)O{$ci88b_=ictJQx>fW>t&*>m ztU!AVe(JP}3cRpm6}c&^CA-+-zYYtcmL}mSqzap$@8Q_QLi~cOO^gcI#Cf(z>D;v( z)^zy6JsR7!H2VXo09GmqUr0sbt0-S65;KNj(em?SuZkk^!mvx2{>0czl0&?j_ls1_ z-CQMSdw|Xbr^rorMtWydtgeD9ZjzrWDu;Y|P~lKap$4Tx=e&49IdgUSIE~lD7TMrG zO1DLRF`-CTCYDac&!VtCL7A?bp^ac>qQ7XCH)k!==oYd~#huW_ zs4*j#kNQSe%jx(?gr82fi#P|4minNJpf8Co5cK4Zi<}%CB)iCEeM4Bgqdr#mSH0qe!z z6BeOO1G!$fOk5;8xk(FHmvW^sqIOih?4n0&@B6rSflw$-v zQhr8$N6C9h-oyiG)#s)(;jG2y?v`!1aSQh9L;MalwfKPtxxbov~;a`Lf>wXxn4v=-YV6kHM+_EA;pz63+E0PDzw^ zbb1AgrsvNR^~FaS10LG5jtv;yyK0>0hfjYpB#0WOSf?DDW(5dm`!2 z?q>}SY_w!7lAjJR8BYj$J;Dh=uO7IDCFAvloBZb{2hTOun>>g&d6=%T+QqC91x5#s zfn;2u&-FZpjcdebgq!7}foAMLGJb{i8ZMsM#xvqz=%c9HP)~?K_(Fjb;x(?)BXzsM zDSmL@ZL~_X3aru)3_q(U?qmhnB>E64&7;zPs0}ngn$1ZrkJH>c}}-w zI=grjr{;|G#6VBedi{|AZ<9m5lKqfas(&iN-(=%*TBY}6gH1kIPDBg-=Tcs~1 zt}!LylCg?(>`Q_vUG(XbfDJLFK7?O{YVR3t*r(qYpX72z8ZkUoacR~6*gw-HN9>P! z4``?V6`YYSr;l|xp^xw{b~&TZFbBzJ^re%hxx{e$E2ZLBw3T$IE?(~Kg`ncM~ zpCdZER$>v|T`RbkGq{&CxPSTjG>qmdsbf@;YnAjL)D1lIHnC{rRbj)T%UzRrhBv4S zQ~I`Ku4}cRrR0>N3Ts`j>aXD%c1mUVKAc2(?ZmaN3l-eVDt^}+I-PcHg`;5|uD|OS zP5sW*#V{=DXIHCXHNNYhiTk}A3kq?I(a#CMy^#K2cs%MUGNO{)NYmWbaL?9YXQu1c zV9I#6<(yKb|HkjEVL7K)=@0ayh`%_P^aqaq-i^2{s`S@!5mf0D*wNia_Q;g8hAqm(66KO`(l@_W9Or8|U1G zITK7h4So7-ciV(9dB$xQM`lkxC^`(=`vtl?3_qoGac>cyj)`_}l{(6)9Q)+WZdnF@ z|5*1d!_Wzd?n;(n_=FUMnF#K@YY2w(wkG#rUP5ggGHo0(?!2>bhdzDc#W8M#JMX1V zNVHT=Nc7B1s}vV#^f<-dbKJyMY1as&N2|2OgLGp|sK?jry`*+kk#@!;d0gY9o1Aox z`*Df;bd&Xjq@KMD@i0sIG93<1a1hz`{{3cn*!3}eNngl76>gL#HeAZNj zmlkKcRmtl!NRtM<=po~_(ZZceaF>+NdJ}xq`#mU=x@CRl@jJeK_Z%wi9NZ;3y13~0 zAg-hRR+Ai?*zR!@PWXN6QE8whR3<$e@gv%c(00gvqa~wF=TmH!7Z~a?glDA`&loIux3N+mJ$50L5Q|Sx>wgGT2)z1GadDFudj?}8=)`i$n5~{+n(aRM8*Cgc zd>@H+FFq3Q_$9wYFLRj`J>K8!!{dZcK_w3~ABB%B>8Lj=vQXUy4a7X_2c@I-#GJUJ zu+^Xz4Iurqv_`>9{j#1gM{@5Yxq?`(IFhS8iXUFK8;;`jpY8ZF_cR@e@+Xt_iWnWG z$LJ{CA^%e^86CRWcnV1SyC=*s(mx8`F)z?x_Vk4X`U`mcDw8~OubLflx!+u|)G%Sd zZ|0?j!Pp=r1_$kyIZM~qRc~oFtmx!sp_E`tnN&UKsySbdn;d4b={}4|LOmUkYH{dH zI9f+x4?co-6fa0^HzaY>(^(xj$oR4|9i5G~N-35`OAdFY06Ug|3phQn#Zt^E6>3Vu zpYI44g;r)5uK5CqjxH6f`wTr?e>10ZpVN6P(xo*8dPtX^NEMKT!MX=#V6eW2O2L}M z>8*xO@LSaGyw6VJZL7JuM0sN2EBYiJ--Vo#F6qj0tw-V6ly4P}qXzG(h1PsIr`JTQ zLq{=w!eH>PvYs#u$Cq)GNe_%$i1v82)47OruD+J5ujT5?bURBdupEmPu!gl#*Kev> zUc=2=&P`d)-B=^hnfV$nXF024)%}ux)7mO+=Y7;;y!U&*Z=UEKKqaB9N2l#t+7%mQo^Ex9P8#T_$rl&Yr!%f`4P29jutkRX^>T&Ai zxD{Rke_ItVo#-ZdtoE`hMv8iyF>%N`uT4BS+oZ%H+r4&iKU(GU;U9S|(7lp~!K8aW z@fbAW`P!#mc07T+f$5)A;Js~QuZ&w>v;Ym>4&8Ur$1p-7!oKw=lim)xYCa=*;3;&K zZWneV(RjSyci=EuLw|uL-JVWEy_+OyN&Cz>Pi&6@!7_ewebwK@tn1BxV7;N_+)10FUwT z9#bPgy68K^r&*^&ndN3(8|yfakv^w*M9=YvHtY6B;iIeiKg;L(?9+dmGvDWH^eR@d zPq!qm!DpZD<-A6pOWcSuPSGHV%Uf6 z$`n32>Qk_e7FDp07FDZ`8e!E98x-VoMz1To+dQa3{dT-Rd z`T*1xeJ9j|`mU&L`W}9EymQd0cNDmRw_g-^!`0v@d~fL=sG(r%6a^8`wNn&+=MDNI z41~$3X)ql%n;iIqr;nkI=k#*c>9847=D{bZkHD9m9Iy<|_b$U~&O|w3H7xAo6whL1 zPO%Znqnp@nV!M^?R<=9X?qFL;3T+@H+Q2T6ZD-rTwu5av%wl>O+fKHfY&Wsp#C8YU z9c&97m#L#N%XJrE^vDaSB_nk*X^l+YM%E^Is{%8kH_9|b2RW%#-ij%QIHjFaIyeRN zT&SMBA#B^(PGP&0wG307(KT#4(cTx`$o4_jcGeC|pBvMm-wE-3!SF07*n7iPNa&|C zT!6}vA((_?fGM;3rLgTldrQAkw#(3-5nYZs=Z&o46ep&9*{_l9CbZv*-N@w}5iDLz$6^cCt3HwzAqylpboL%^Yl}v0cV?IonRQ7qi{O z_C~f_**?T}2ii;GFR-n1q0&NGl{EfS=E6N=+sXD~wwu`A$aX8+9jwBY^4n3*#XC^1 z#SX)^;P-jF758i;)!CJ=ZWNl(? zW$j=EPwJ)6l!7tDd;ofOE;Db1>HVFku?bCPg{o{txRua>8l5OCTVZOV9rd|H2kObh zGE|%z)+W|g)(%!-eMFwS!f7Z-u}l;e8S=CE3vqO}3+bGueUmx%e_v zY%XgPYb$EMK^>^(!KJ>`#2QxNw-vwh5N*dlSUqbQ>d%AQ{U{UoAAt8lgg<#h(0Y+mEOj+%$4%8XZWvoutCe~KebMft+DSA6NMReiHSRJfotWMS@)>hUI z)U87yO3m%_FK?Ya4- zY?o2L5Qd-$=jU+pzH&s*0TEp7NS{6m)>SR@#_)jZqdlYTZ!8Y{a zHuj;ccGM;DO`Ouyhl&=_?2RVd*_Ui*U$RSM$*y5N$lA^dag-jyn!;MjDwO_QP=DIk z&bFOx2ip#|TiI@9TO@G)1j>Ifk&b}QQ*Y6t*3jQc5Y?HLQ)S2UT@E zt6)Lx4sJ^-X^5&BWT&vUXR&t}X=yfTSvE~d4ckt(8`*AR`ykuxtR0*pawvb}2-@}_ zYdb6C@%c{({=v#vOId4J8(9yswzEP$=PV!%8ADoHNP2J_X*(;7XD@3CYbk3DYa{Ey ziIj)l%nl9HKM_UBYYt5E+h`Csy+{0|2G z1NBi8l@=eq0QKqaq|K8^KPn?#pzxo4T?wMtF{B6CZ`i3Rttn*d^QnkYxr(m-k%!!mXWry_aS>{Ds8*B?=sZ)9Z#eB`_n@cwyu;%?dpvw3T1j~GHDyP z&a;T@w9JjD{{CA~e=Vot{xAKmw%r}4t7ED6z5PhvC?$O$|6izIC+tDJ8bGzgc`Q)y zPhv$2sz{=w$CF7Lc|6ocRQ00jRXsA8?BJYtP`@;j)^wu${{HWw9vMv4`}=>0sb$8MLcee?ZN}p9pfNq?w$QH2ljuSxq)7`VAhN9B!i3<@&T!BWYaC#F-}s5KyQz=qAychs zx#@Y+E2cb`{VpH47+j-V7rJh9J?`q~Hq5Qn?L)U4ZZ7U&?%Uk|<8Ji`^oaC`^~mxV z?eVO~haNpVU-10YbCr3$d8K8Y$}zu73%`87rb8fYV(@p zecC(9r_iUw=P{pGefIji?Q_iMq|aYI2H%;!kNQ64d))UYUpYsIKXBlKS}w(+R!DLU z;6Fj4{kvX3PbuB~r}s<1Co2ByzaQ{n9QxOgcNU*)(>KgMD|(9ZhV^GfBGSpTVukXc zezkZ|-yja@jbg6Bh*vS4u+-4O{~M7bL!2b^^6fL}fA@?lRWeC*jx)|;K+VV(*b&3L;R?TzLR*lljq{pvA6ZZS`g z-#1TCVO$Oc6qrEUPtg*CckZ6 zCWrb?;Q#%7z0c}L`!19F`<~VJ_qEFnz8CeY_f&l$b`RV$*e1Q{vB#~4^r_f$FK>0(k~!N8*X6RWk5n%3N?+yv;=Yk0_e}amTIjLot6!wA21Xh(|dNW?)AO1_gsn6nS|G=Y#nXE|9&PrWR=}dYR}%&HClH`G?ezya=~0ACFFy8r+H diff --git a/GameData/SystemHeat/Versioning/SystemHeat.version b/GameData/SystemHeat/Versioning/SystemHeat.version index 2c75212..a241106 100644 --- a/GameData/SystemHeat/Versioning/SystemHeat.version +++ b/GameData/SystemHeat/Versioning/SystemHeat.version @@ -6,7 +6,7 @@ { "MAJOR":0, "MINOR":8, - "PATCH":0, + "PATCH":1, "BUILD":0 }, "KSP_VERSION": diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatAsteroidHarvester.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatAsteroidHarvester.cs index 1a7c239..ea1a8c2 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatAsteroidHarvester.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatAsteroidHarvester.cs @@ -104,7 +104,12 @@ protected void GenerateHeatFlight() { if (base.ModuleIsActive()) { - heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower, true); + float fluxScale = 1f; + if (base.lastTimeFactor == 0d) + { + fluxScale = 0f; + } + heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower * fluxScale, true); } else { diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatBaseConverterAdapter.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatBaseConverterAdapter.cs index e51b4c7..8e9e23a 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatBaseConverterAdapter.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatBaseConverterAdapter.cs @@ -111,7 +111,12 @@ void GenerateHeatFlight() { if (converterModule.ModuleIsActive()) { - heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower, true); + float fluxScale = 1f; + if (converterModule.lastTimeFactor == 0d) + { + fluxScale = 0f; + } + heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower * fluxScale, true); } else { diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatCometHarvester.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatCometHarvester.cs index 69eb0cf..6e20202 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatCometHarvester.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatCometHarvester.cs @@ -91,7 +91,12 @@ protected void GenerateHeatEditor() { if (base.IsActivated) { - heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower, true); + float fluxScale = 1f; + if (base.lastTimeFactor == 0d) + { + fluxScale = 0f; + } + heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower * fluxScale, true); } else { diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatConverter.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatConverter.cs index cb7f3cc..e7f77fd 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatConverter.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatConverter.cs @@ -27,7 +27,7 @@ public class ModuleSystemHeatConverter : ModuleResourceConverter // Map system outlet temperature (K) to heat generation (kW) [KSPField(isPersistant = false)] - public float systemPower =0f; + public float systemPower = 0f; // @@ -65,7 +65,7 @@ public override string GetInfo() return info; else return info.Substring(0, pos) + Localizer.Format("#LOC_SystemHeat_ModuleSystemHeatConverter_PartInfoAdd", - Utils.ToSI(systemPower,"F0"), + Utils.ToSI(systemPower, "F0"), systemOutletTemperature.ToString("F0"), shutdownTemperature.ToString("F0") ) + info.Substring(pos); @@ -131,14 +131,19 @@ protected void GenerateHeatEditor() protected void GenerateHeatFlight() { - if (base.ModuleIsActive()) - { - heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower, true); - } - else + if (base.ModuleIsActive()) + { + float fluxScale = 1f; + if (base.lastTimeFactor == 0d) { - heatModule.AddFlux(moduleID, 0f, 0f, false); + fluxScale = 0f; } + heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower * fluxScale, true); + } + else + { + heatModule.AddFlux(moduleID, 0f, 0f, false); + } } protected void UpdateSystemHeatFlight() { @@ -153,9 +158,9 @@ protected void UpdateSystemHeatFlight() 3.0f, ScreenMessageStyle.UPPER_CENTER)); ToggleResourceConverterAction(new KSPActionParam(0, KSPActionType.Activate)); - - Utils.Log("[ModuleSystemHeatConverter]: Overheated, shutdown fired", LogType.Modules); - + + Utils.Log("[ModuleSystemHeatConverter]: Overheated, shutdown fired", LogType.Modules); + } base._recipe = ModuleUtils.RecalculateRatios(systemEfficiency.Evaluate(heatModule.currentLoopTemperature), inputs, outputs, inputList, outputList, base._recipe); } diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatFissionReactor.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatFissionReactor.cs index 629bab0..ba4d2ef 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatFissionReactor.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatFissionReactor.cs @@ -95,6 +95,13 @@ public class ModuleSystemHeatFissionReactor : PartModule, IContractObjectiveModu [KSPField(isPersistant = true)] public float CurrentElectricalGeneration = 0f; + /// + /// Amount of power that could generated by reactor + /// + [KSPField(isPersistant = true)] + public float MaxElectricalGeneration = 0f; + + // Reactor Status string [KSPField(isPersistant = false, guiActive = true, guiName = "#LOC_SystemHeat_ModuleSystemHeatFissionReactor_Field_GeneratorStatus", groupName = "fissionreactor", groupDisplayName = "#LOC_SystemHeat_ModuleSystemHeatFissionReactor_UIGroup_Title")] public string GeneratorStatus; @@ -663,6 +670,7 @@ public virtual void FixedUpdate() if (GeneratesElectricity) { CurrentElectricalGeneration = ElectricalGeneration.Evaluate(CurrentThrottle); + MaxElectricalGeneration = CurrentElectricalGeneration; } } @@ -695,6 +703,7 @@ public virtual void FixedUpdate() else { CurrentElectricalGeneration = 0f; + MaxElectricalGeneration = 0f; } } } @@ -783,21 +792,34 @@ private void HandleCore() } } + private double[] ecDeltas = new double[60]; protected virtual float CalculateGoalThrottle(float timeStep) { - double shipEC = 0d; - double shipMaxEC = 0d; - // Determine need for power - part.GetConnectedResourceTotals(PartResourceLibrary.ElectricityHashcode, out shipEC, out shipMaxEC, true); - float maxGeneration = ElectricalGeneration.Evaluate(100f) * CoreIntegrity / 100f; + // Determine need for power this frame + part.GetConnectedResourceTotals(PartResourceLibrary.ElectricityHashcode, out double shipEC, out double shipMaxEC, true); + double[] ecDeltas2 = new double[10]; + for (int i = 1; i < ecDeltas2.Length; i++) + { + ecDeltas2[i] = ecDeltas[i - 1]; + } + ecDeltas = ecDeltas2; + ecDeltas[0] = shipMaxEC - shipEC; + + double weightedAvgNeed = 0d; + for (int i = 0; i < ecDeltas.Length; i++) + { + weightedAvgNeed += ecDeltas[i]; + } + weightedAvgNeed /= (double)ecDeltas.Length; + + float maxGeneration = ElectricalGeneration.Evaluate(100f) * CoreIntegrity / 100f * timeStep; float minGeneration = ElectricalGeneration.Evaluate(MinimumThrottle) * timeStep; - float idealGeneration = Mathf.Min(maxGeneration * timeStep, (float)(shipMaxEC - shipEC)); + float idealGeneration = Mathf.Min(maxGeneration, (float)weightedAvgNeed * 1.05f); float powerToGenerate = Mathf.Max(minGeneration, idealGeneration); - return (powerToGenerate / timeStep) / maxGeneration * 100f; + return (powerToGenerate / maxGeneration) * 100f; } - public virtual string GetContractObjectiveType() { return "Generator"; @@ -814,7 +836,9 @@ private void HandleResourceActivities(float timeStep) { if (!ManualControl) + { CurrentReactorThrottle = CalculateGoalThrottle(timeStep); + } fuelCheckPassed = true; burnRate = 0d; @@ -858,7 +882,7 @@ private void HandleResourceActivities(float timeStep) } } if (ratio.ResourceName == FuelName) - { + { burnRate = fuelThrottle * ratio.Ratio; } } @@ -876,10 +900,19 @@ private void HandleResourceActivities(float timeStep) if (HighLogic.LoadedSceneIsEditor) { CurrentElectricalGeneration = ElectricalGeneration.Evaluate(CurrentReactorThrottle); + MaxElectricalGeneration = CurrentElectricalGeneration; } if (fuelCheckPassed) { CurrentElectricalGeneration = ElectricalGeneration.Evaluate(CurrentThrottle); + if (ManualControl) + { + MaxElectricalGeneration = CurrentElectricalGeneration; + } + else + { + MaxElectricalGeneration = ElectricalGeneration.Evaluate(100f) * CoreIntegrity / 100f; + } this.part.RequestResource(PartResourceLibrary.ElectricityHashcode, -CurrentElectricalGeneration * timeStep, ResourceFlowMode.ALL_VESSEL); } } diff --git a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatHarvester.cs b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatHarvester.cs index 049b285..6399d81 100644 --- a/SystemHeat/SystemHeat/Modules/ModuleSystemHeatHarvester.cs +++ b/SystemHeat/SystemHeat/Modules/ModuleSystemHeatHarvester.cs @@ -118,7 +118,12 @@ protected void GenerateHeatFlight() { if (base.ModuleIsActive()) { - heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower, true); + float fluxScale = 1f; + if (base.lastTimeFactor == 0d) + { + fluxScale = 0f; + } + heatModule.AddFlux(moduleID, systemOutletTemperature, systemPower * fluxScale, true); } else { diff --git a/SystemHeat/SystemHeat/SystemHeat.cs b/SystemHeat/SystemHeat/SystemHeat.cs index 0d6ee95..0597bbf 100644 --- a/SystemHeat/SystemHeat/SystemHeat.cs +++ b/SystemHeat/SystemHeat/SystemHeat.cs @@ -165,6 +165,7 @@ public static void Load() settingsNode.TryGetValue("SimulationRateEditor", ref SimulationRateEditor); settingsNode.TryGetValue("AbsFluxThreshold", ref AbsFluxThreshold); + settingsNode.TryGetValue("HeatLoopDecayCoefficient", ref HeatLoopDecayCoefficient); settingsNode.TryGetValue("UIScrollSensitivity", ref UISrollSensitivity); diff --git a/changelog.txt b/changelog.txt index 4474052..f7528bd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,10 @@ +v0.8.1 +------ +- Fixed an issue which would cause the heat loop animation in the overlay not to play if there was a loop with only negative fluxes (#125) +- Behavior of things based on stock Converter code (converters, drills, harvesters) should now be more consistent +- Tweaked reporting of Fission Reactor power generation (related to DBS bug) +- Added configurable HeatLoopDecayCoefficient to Settings.cfg + v0.8.0 ------ - Updates to zn-ch localization diff --git a/readme.txt b/readme.txt index 3d66de5..6cc4273 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ ================ -SystemHeat 0.8.0 +SystemHeat 0.8.1 ================ A mod for Kerbal Space Program, intended to provide a better experience for heat management, particularly geared towards resource extraction, high energy engines, and nuclear reactors. From 1bada27db83d85c21a0e314ff1d3286843ff00c6 Mon Sep 17 00:00:00 2001 From: ChrisAdderley Date: Tue, 3 Dec 2024 13:25:39 -0800 Subject: [PATCH 3/3] fix --- GameData/SystemHeat/Plugin/SystemHeat.dll | Bin 211456 -> 211456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/GameData/SystemHeat/Plugin/SystemHeat.dll b/GameData/SystemHeat/Plugin/SystemHeat.dll index 7db02c033330d942d7fb4679d9b141e4dcc0fd95..fe2e728e1adeb33fc9ff1a5ba7789690cd6348f0 100644 GIT binary patch delta 103 zcmZqp!qf1DXF><#lZ~Czc^TcC75Ul~`53n=@-h8BE3nunppE@SgKy^!3kyy5^49G- zcbH}b={za(PiFuECLoq!WMH`C!_06;kC`DT*d;K$Hva-yo_$mihS*ge2m)_`Ivs671$=37qH@9mDB9?DrVBIJ=?bH z++ms#q|;I6pUwaTOh7Ed$iQ&NhneAy9y3EwuuJgH{oa;;o<4VI+q=bTrDVvr?H}}* G1-Jp1H6>R7