From b2aca9a686fbd7981a6fc187957ea45158ef9df4 Mon Sep 17 00:00:00 2001 From: FL-OZ Date: Fri, 1 May 2020 03:37:21 -0500 Subject: [PATCH] Add microwave visualizer. Clean up microwave code. --- .../Components/Kitchen/MicrowaveVisualizer.cs | 50 +++++++++ .../Kitchen/KitchenMicrowaveComponent.cs | 56 +++++++-- .../Research/SharedLatheComponent.cs | 2 +- Content.Shared/Kitchen/SharedMicrowave.cs | 18 +++ Resources/Audio/machines/ding.ogg | Bin 0 -> 16007 bytes Resources/Prototypes/Entities/kitchen.yml | 10 +- Resources/Prototypes/Kitchen/meal_recipes.yml | 8 ++ .../Textures/Objects/Kitchen/microwave.dmi | Bin 2309 -> 2180 bytes .../Objects/Kitchen/microwave.rsi/meta.json | 106 +++++++++++++++++- .../microwave.rsi/mw_running_unlit.png | Bin 0 -> 2286 bytes .../Kitchen/microwave.rsi/mw_unlit.png | Bin 0 -> 1698 bytes 11 files changed, 238 insertions(+), 12 deletions(-) create mode 100644 Content.Client/GameObjects/Components/Kitchen/MicrowaveVisualizer.cs create mode 100644 Content.Shared/Kitchen/SharedMicrowave.cs create mode 100644 Resources/Audio/machines/ding.ogg create mode 100644 Resources/Textures/Objects/Kitchen/microwave.rsi/mw_running_unlit.png create mode 100644 Resources/Textures/Objects/Kitchen/microwave.rsi/mw_unlit.png diff --git a/Content.Client/GameObjects/Components/Kitchen/MicrowaveVisualizer.cs b/Content.Client/GameObjects/Components/Kitchen/MicrowaveVisualizer.cs new file mode 100644 index 0000000000..7cfcd07253 --- /dev/null +++ b/Content.Client/GameObjects/Components/Kitchen/MicrowaveVisualizer.cs @@ -0,0 +1,50 @@ +using Content.Shared.GameObjects.Components.Power; +using Content.Shared.Kitchen; +using Robust.Client.Animations; +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Client.GameObjects.Components.Kitchen +{ + public sealed class MicrowaveVisualizer : AppearanceVisualizer + { + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + var sprite = component.Owner.GetComponent(); + if (!component.TryGetData(PowerDeviceVisuals.VisualState, out MicrowaveVisualState state)) + { + state = MicrowaveVisualState.PoweredIdle; + } + switch (state) + { + case MicrowaveVisualState.PoweredIdle: + sprite.LayerSetState(MicrowaveVisualizerLayers.Base, "mw"); + sprite.LayerSetState(MicrowaveVisualizerLayers.BaseUnlit, "mw_unlit"); + break; + + case MicrowaveVisualState.Cooking: + sprite.LayerSetState(MicrowaveVisualizerLayers.Base, "mw"); + sprite.LayerSetState(MicrowaveVisualizerLayers.BaseUnlit, "mw_running_unlit"); + break; + + } + + var glowingPartsVisible = !(component.TryGetData(PowerDeviceVisuals.Powered, out bool powered) && !powered); + sprite.LayerSetVisible(MicrowaveVisualizerLayers.BaseUnlit, glowingPartsVisible); + + + } + + public enum MicrowaveVisualizerLayers + { + Base, + BaseUnlit + } + } + + +} diff --git a/Content.Server/GameObjects/Components/Kitchen/KitchenMicrowaveComponent.cs b/Content.Server/GameObjects/Components/Kitchen/KitchenMicrowaveComponent.cs index 8ccaa8c91a..93cf571478 100644 --- a/Content.Server/GameObjects/Components/Kitchen/KitchenMicrowaveComponent.cs +++ b/Content.Server/GameObjects/Components/Kitchen/KitchenMicrowaveComponent.cs @@ -8,6 +8,11 @@ using Robust.Shared.Serialization; using Robust.Shared.Interfaces.GameObjects; using Content.Shared.Prototypes.Kitchen; using Content.Shared.Kitchen; +using Robust.Shared.Timers; +using Robust.Server.GameObjects; +using Content.Shared.GameObjects.Components.Power; +using Robust.Server.GameObjects.EntitySystems; +using Content.Server.GameObjects.Components.Power; namespace Content.Server.GameObjects.Components.Kitchen { @@ -17,19 +22,28 @@ namespace Content.Server.GameObjects.Components.Kitchen { #pragma warning disable 649 + [Dependency] private readonly IEntitySystemManager _entitySystemManager; [Dependency] private readonly IEntityManager _entityManager; [Dependency] private readonly RecipeManager _recipeManager; #pragma warning restore 649 public override string Name => "Microwave"; + private int _cookTimeSeconds; + private string _badRecipeName; [ViewVariables] private SolutionComponent _contents; + private AppearanceComponent _appearance; + + private AudioSystem _audioSystem; + + private PowerDeviceComponent _powerDevice; public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); - + serializer.DataField(ref _badRecipeName, "failureResult", "FoodBadRecipe"); + serializer.DataField(ref _cookTimeSeconds, "cookTime", 5000); } public override void Initialize() @@ -46,23 +60,43 @@ namespace Content.Server.GameObjects.Components.Kitchen _contents = Owner.AddComponent(); } } + + _appearance = Owner.GetComponent(); + _powerDevice = Owner.GetComponent(); + _audioSystem = _entitySystemManager.GetEntitySystem(); } void IActivate.Activate(ActivateEventArgs eventArgs) { - if(_contents.ReagentList.Count > 0) + if (_contents.ReagentList.Count == 0 || !_powerDevice.Powered) { - foreach(var r in _recipeManager.Recipes) + return; + } + foreach(var r in _recipeManager.Recipes) + { + if(CanSatisfyRecipe(r)) { - if(CanSatisfyRecipe(r)) + SetAppearance(MicrowaveVisualState.Cooking); + Timer.Spawn(_cookTimeSeconds, () => { RemoveContents(r); - var resultPrototype = r.Result; - _entityManager.SpawnEntity(resultPrototype, Owner.Transform.GridPosition); - return; - } + _entityManager.SpawnEntity(r.Result, Owner.Transform.GridPosition); + + _audioSystem.Play("/Audio/machines/ding.ogg"); + SetAppearance(MicrowaveVisualState.PoweredIdle); + }); + return; } } + + SetAppearance(MicrowaveVisualState.Cooking); + Timer.Spawn(_cookTimeSeconds, () => + { + _contents.RemoveAllSolution(); + _entityManager.SpawnEntity(_badRecipeName, Owner.Transform.GridPosition); + _audioSystem.Play("/Audio/machines/ding.ogg"); + SetAppearance(MicrowaveVisualState.PoweredIdle); + }); } private bool CanSatisfyRecipe(FoodRecipePrototype recipe) @@ -91,6 +125,10 @@ namespace Content.Server.GameObjects.Components.Kitchen } } - + private void SetAppearance(MicrowaveVisualState state) + { + if (_appearance != null || Owner.TryGetComponent(out _appearance)) + _appearance.SetData(PowerDeviceVisuals.VisualState, state); + } } } diff --git a/Content.Shared/GameObjects/Components/Research/SharedLatheComponent.cs b/Content.Shared/GameObjects/Components/Research/SharedLatheComponent.cs index dabae088fb..6b290d551d 100644 --- a/Content.Shared/GameObjects/Components/Research/SharedLatheComponent.cs +++ b/Content.Shared/GameObjects/Components/Research/SharedLatheComponent.cs @@ -1,4 +1,4 @@ -// Only unused on .NET Core due to KeyValuePair.Deconstruct +// Only unused on .NET Core due to KeyValuePair.Deconstruct // ReSharper disable once RedundantUsingDirective using Robust.Shared.Utility; using System; diff --git a/Content.Shared/Kitchen/SharedMicrowave.cs b/Content.Shared/Kitchen/SharedMicrowave.cs new file mode 100644 index 0000000000..94ac50e1cc --- /dev/null +++ b/Content.Shared/Kitchen/SharedMicrowave.cs @@ -0,0 +1,18 @@ +using Robust.Shared.Serialization; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Shared.Kitchen +{ + + [Serializable, NetSerializable] + public enum MicrowaveVisualState + { + Off, + PoweredIdle, + Cooking + } + + +} diff --git a/Resources/Audio/machines/ding.ogg b/Resources/Audio/machines/ding.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ff1e3ebbc9990da3a7492abad96bf32ea5760941 GIT binary patch literal 16007 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 literal 0 HcmV?d00001 diff --git a/Resources/Prototypes/Entities/kitchen.yml b/Resources/Prototypes/Entities/kitchen.yml index 064550b61b..806ef99b7f 100644 --- a/Resources/Prototypes/Entities/kitchen.yml +++ b/Resources/Prototypes/Entities/kitchen.yml @@ -9,6 +9,9 @@ - type: Solution maxVol: 100 caps: 1 + - type: Appearance + visuals: + - type: MicrowaveVisualizer - type: Collidable shapes: @@ -19,7 +22,12 @@ - type: Sprite netsync: false sprite: Objects/Kitchen/microwave.rsi - state: mw0 + layers: + - state: mw0 + map: ["enum.MicrowaveVisualizerLayers.Base"] + - state: mw_unlit + shader: unshaded + map: ["enum.MicrowaveVisualizerLayers.BaseUnlit"] - type: PowerDevice - type: Icon sprite: Objects/Kitchen/microwave.rsi diff --git a/Resources/Prototypes/Kitchen/meal_recipes.yml b/Resources/Prototypes/Kitchen/meal_recipes.yml index a383a7fbce..f763dc616b 100644 --- a/Resources/Prototypes/Kitchen/meal_recipes.yml +++ b/Resources/Prototypes/Kitchen/meal_recipes.yml @@ -5,3 +5,11 @@ ingredients: chem.H2O: 15 chem.Nutriment: 5 + +- type: microwaveMealRecipe + id: RecipeFlashlight + name: Flashlight Recipe + result: FoodCheeseWedge + ingredients: + chem.H2O: 15 + chem.Glucose: 5 diff --git a/Resources/Textures/Objects/Kitchen/microwave.dmi b/Resources/Textures/Objects/Kitchen/microwave.dmi index 0b96c553c029dbf9425455259fdc59b88c2990ea..a3cb98f9c14d5fd5fe9bb2c191c860815381f929 100644 GIT binary patch delta 1839 zcmV+~2hjM15`+HubEQfX;Wb#zQ^upVvP9?!#0)W}WV&r00ZaNO2!e3C9^rw{4LXX@gF z=;4HAWl?c&O_9_p45y)EqMS;hn@XabO_LA-fl;ogTIJhu*U)y-%y!t)cih!<+thW} z&~@3uL*v?S*3WdywLH?maf@v+a&bD4KpbLYJ=Yx%mmw3;2M21j$m9S300DGTPE!Ct z=GbNc005Vh;sIcP5}_s^yBeUqDXBS$l^|gq6b%MM7@9!WVOWJ>Z#~)ZZ^<^U^CZN%?FKIKH7!U~eeI{^RZYe-xgk_mk<=5zA)Qbq=Kvl*ITF%IkIQnQ zaO(A&46ANx4?kQOJku7 z1OaAd-gPn%7$}JbU0#mJH{hM)i&Z^PRlgXW11&Q!J2&TKz%Vp}3HPI;FJcdDoKJSnzJYUw#kmSh(N{f4dbm1v46GK2;sjRMzLy3H3UZe8 zezs>e2pUjG?+mOej1vs2;MqqL3QGe~dQ=}EoMU*5jo+(mk5Uxnd8!ZWpC_yj41B78 zNNm*3*a?vcdz!d@(1s_h4-9g%M(YbLc+&a+Wwocoe`>My|NrhENXUi$05GAg zwzK1NJUs6YXqsSJrfJ!>O`B%ZjPeIRgN=}L?U!F4#QF!|j6pTFerFDZ284iD0$!<9 zy#I_A-TnXo(>Cj-X;QS&H0?OoY`f0FTekMFX^RHj{(#+WZ~d-KK`FX_zQ>pqpI5*) zAYGuq0yKXE3msUdMVn{_qTFWOu3NT6ZGhi}3dw}q9{{_cIqP@KfMCGo7}MhwDjERb z{Q*tD@mpq{T20Gr`lrC>HfVJ`0myADl!2f>0JgpL`!4wX0Y0x_P>)yOd|+U9&dmU| z>n2N(g==6iqugfP_PHH@s}GdMpr-x7*Y6q~4Km2Nqy=+grcyPQgNSeUC9K9)spxB{*pdCK|1H}&g1MT?%I7s^k dQl;uj{{e1D#C7Fdv`zp3002ovPDHLkV1j8id*uKC delta 1969 zcmV;i2Tu5e5rqC0004`ktJAHt*BaHUO<_gtgxw1xw22ny*Smy zHXd0Y0FwX!>HubEQfX;Wb#zSJ)^Oa`Z*8z1ZQLHu!%o!5P2SH+=;4Iw;)HyXE@r0> z>B(nhWl?c&P3Yl)=iq{o&MFe!)^MkxW1^f&p_@vgoK3E%T9X6;fl=k#ao5mx*}_BP z+HcFXJlD{5i)}G-aXOGd9AaZV*BuX+ArsLD2f)C<(#&?)(s$g|blcQ**3Wd(z;S?$ zq@n--00DGTPE!Ct=GbNc005Pf)&XFDVpjt+GbJ@Au@WS#gQ6jyR1F41xFU%dH97hD zDV0PkB+6Q_N|J*BqK&wKP*!mDa{)&m0E#1h-2(=cmH+?-Zb?KzRCt{2T8)3xL>Ml# zVb%;HgOo23_93HcN6V6`KtNrXFeU@#rrb?N1#JA-3VzIH3JChcuYcP2l3eb8k~B^D zL9(Bi=UBG&Y3_aU-X-hv@|H?lj&0k^fb9{$iw^-TsBfDXOu{|MwjCm7y{9ZMLy{UOwuGMN`T2+~VeSoqesrwHEuwRwj z2^fFyPyh$R{Hq}_UY4uX!>`rUBS*(4gmJ{mj;>CX!y`3#svXW zUIz5GIJf|hZ%hO-&LM*&e7ISh1WPP1B{Q&!09t* z+zc3oW>CO!T*$!LbLY-F0)iRv1uz~mAfgfGAp;_~fcM`2fC`vvn5Jf$=bhusi8)`u z{Jwqju7Ci10gRsuW?(LV%-8E51_sZ-=?hfA#RcQMsZp5cjfI6vd-s^We@|B*82wa#k?2*s*N%{c=&xzcPxSBU>Ib8rCDjk&&gcF;&fll4AE?*8$k)9e z6%^og+}4TSCUk)J!_1iY{yoOugZ-YI99}<|Tq&c^RrSW|O^O?IY8z z4(SlxRlo&!{=MD`xZ74lKy3YB1^6#ib^6wAAnts5`_>(Q_$~@?>Ic+vlWvC)s|)dQ zn+x##dn<&9fSCHh$_nsbeXXj;LBTiE-`>9E2vk*s0`-G7*0D|qqyWCbk6eJ~-&-w> zLlBUzegGNJ+iUB+yS=;mz23UshCNUX?g6-JLNLJ=CLl)0fal*^4UoVte})T4tREnB zw*1}qs@m><_14zbe)zH1)Ae;7G7vl;_FV_|AS8h9fj|bBf7iSuv|56HPgy@es@kK% z*4OT>-J{?AC1B?}cLBkeDhTcY(Z4&FAMo!f>j%ia1$)AS00qyddr-#~aWf#^1;hP& z%K8C{3Ph>SPxSAp>jQ{>6oRL)f}D>7h&_rE&QJ7z?^)Lm3jbdC_W}h9ym0k_qJN+e z@ShZr;Quq`i~fP9=^qe3vp;+Pz}|5GK#YIq{R7z8AcjWh`03E00sP`3q5tSuT=aPe z@6;dqCN?e8v~1fZeY0;y`UhhCJLiuYM58=aFra?`A8m5J*=(}^Ijwp12aHYI?3$)Y zKt|txv?KikG5%fXAK2Vryf%X){R0rQ>GMtO3y@9{Oa=6R#ug~BOpEkE4CVr+hWdBj zKY%x}=JJpM9O)l`n2c`{Q2@qH{h^QH`Yp3dtiEOTg(XPv??V3o-eCMDj`j~UAt>XU z_yiYl`iz$WVs}lNAPYP)<^mG@yU;&?JK8UQ4zH1M9O)kb0UcNbmk(rs5N8kEhv;w*xu$4`AYd z)gOKzz~|6EK(@YrptiO3hgwm8C{Uola3uQotdZ#7vlo!y-3kGPfb0b%`1h=l=-;zO zqJPg^K$3sYTmbX$PyWC*n0Lp&Yk&Urgc*mdA^3OAw!1XEWo!5Qc5VWgf48ZBx4V{Y z5gX&baee|k|88Tg3kv}L-L~@0fal*(ZR+1`-@oT5!1wP4_3sAt@5VpHKzwrqJPg`K;hpD|6ZWL{~P}TuqOgG$KJaP00000NkvXXu0mjf Dv~1n1 diff --git a/Resources/Textures/Objects/Kitchen/microwave.rsi/meta.json b/Resources/Textures/Objects/Kitchen/microwave.rsi/meta.json index b03b51e24c..e1c3ede466 100644 --- a/Resources/Textures/Objects/Kitchen/microwave.rsi/meta.json +++ b/Resources/Textures/Objects/Kitchen/microwave.rsi/meta.json @@ -1 +1,105 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "AGPL v3", "copyright": "Taken from https://github.com/discordia-space/CEV-Eris", "states": [{"name": "mw", "directions": 1, "delays": [[1.0]]}, {"name": "mw0", "directions": 1, "delays": [[1.0]]}, {"name": "mw1", "directions": 1, "delays": [[0.1, 0.1]]}, {"name": "mwb", "directions": 1, "delays": [[1.0]]}, {"name": "mwbloody", "directions": 1, "delays": [[1.0]]}, {"name": "mwbloody0", "directions": 1, "delays": [[1.0]]}, {"name": "mwbloody1", "directions": 1, "delays": [[0.1, 0.1]]}, {"name": "mwbloodyo", "directions": 1, "delays": [[0.1, 0.1]]}, {"name": "mwo", "directions": 1, "delays": [[0.1, 0.1]]}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "AGPL v3", + "copyright": "Taken from https://github.com/discordia-space/CEV-Eris", + "states": [ + { + "name": "mw", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mw_unlit", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mw0", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mw_running_unlit", + "directions": 1, + "delays": [ + [ + 1.0, + 1.0 + ] + ] + }, + { + "name": "mwb", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mwbloody", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mwbloody0", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "mwbloody1", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "mwbloodyo", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "mwo", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Kitchen/microwave.rsi/mw_running_unlit.png b/Resources/Textures/Objects/Kitchen/microwave.rsi/mw_running_unlit.png new file mode 100644 index 0000000000000000000000000000000000000000..d259712b6dd8404f1d1a7d801a5b32f96adc6785 GIT binary patch literal 2286 zcmb_e4Qvxt9KV4KHh~Z^IvMJDTNnt}`{>=Zy{y944pyMsT&o*`%Jn|lbM4)Ecca}h z8S?`JGDAcY1sCSxCqZ$M!4lX&VnF#&ln`79U!tf}KE%xsiJPxoTc#OEh)wR@yZ8R@ z|Ns4e|KEGBt18OoO~{^-4METZPpP{Syyt)i9+wH)wwC43gIAVTy2yZ_+b74L3~2qE zIS`cDA^WS%YVSgpS0ffqPy?bR7SVt;1QpJXX&hf8ns7i2%8C=YxMLRr%YqZBqP@6R zbBQ6jv|bl|^<{p(zJ_-Q$n1yU!Wau2L`0K=W0A08urVi+@XLaJd>BLEgo#<>M2g}8 z;c9OM>{4|RrY#K06O4L;oy5}Zi zfiEW#GEI%euxK=DiCQhH9>fTT1Na~@l0<<8YSbwv7ef^zFXh248oVxRrmQM(+#?rI zYfUEtkPf8~(b8@eBS{k=42y9ZMp*E8N(n=OPupp=dN>hW;4v{QMnuIlfGv@>)k3PN z8X@&MuG7>12mq+{debpR#1e_5Ll|bsGLS}+kP)p7f1M^`m7<~6>bzL848Y8bXQQz$ zUF1wv_p53+Rj7&-WS9h5!_%u|MNp&0jA08zH)o1Ygv3c4#VM3@_z4?JFsv1nk7jXv z$keL}vQ#(Rlm^xH<5t!RI>YRMUIfnMZfq&=tfcA@4x}naxS)t>N)Un51hOtQtm+^n zz-1ji?s2&)bXAhWV8W=JR}6bfTnyo07?iXS37}pt>ro7oQ+Uzib|Qcli!2MQNZaj# z1D8;nK+vctQ37h`Z4OkVc#^V94u-&~)Oxqd*T#zeeN2KpF^Zm5zO<#e$q2)O%C{bAPwZ*a?Q44n+vX&kpRD2+2X8lWixkY;62!X_~| zPjL>Be2b=zdB&UHrO+$4 zW&fJd-*71USQhr^Nk{X61D`*&zjNU9nf|Mjf6_+HZ2j1G>Dc~>lxubEth?oNgYqZh zUAsF6Cgq*GV$CgS9vyqKdUWgY^X)sX@~z))e0XrREwbil^Hnbu-|zclV)*0d`t!<5i{o`W{;L`g-z_w5flh*(A6aT} z`!rzs%A4TI5G#V1=L8JnULx_ZqK|p8S{JVk9gHFQennp`9D?0O6I4aUfm`w*H60(6 zgOcev$oAd<7BT|^`G#pjWMbrDw+yB~U3tq`h_`F&Q(x+-qIdH=#fC8$3`zsLB(jcS z27%(R49kKF0p($mlOasx@{FOzCC#EVk3<3rM$#7jyrL_mlMv!`PMgSSnpDD!AxRCh zgo=>HKt|`dw4e3H&KWg$kHiPD+9H`Vb8gn1VYKh~y3z@GS zs4%7pITkHjhbcFZuL6y>S)P*Q%ZwcpkJ$=2&i{ zf$NFPNkVzOR?$^*N>Rjc==&bAYytyTG$(NaNC;)n;mo%g;-2GrGy9sL{h|d5`^jlw zf+~(j@@N>ErW+s_xIqX5-$AgAhzlulY$pgj*Y@2R+qEoG2a@y_SqoK6F;dGSPRJ4T zk?F$FavVs!HiEQF{Ln3z%a-RBZ9ncLyctPVlaFWeJhdNmxgvc+mrT4%5#|Gu@zsvX-BY{Jc$|1i4xTLi*-AOlv?%@9uKhpK zr)i;Gl61J5u!dd)V-&M!QWWFA^&0Oj%&i$*4Z~tNpTg>4KF4{Ys53RC*-JMcs0qJQ zudTLrZ_x)2AFllP)^ndNeSPznrMu@Z^p8G2v3?o-aS6Qg>CusY>;B5``|IEQ+Wf7$ z_v-gwZpfqMFK)m1$?cziTDo)h&-dPW;SSz=WcS?(ZE*4YwGS`<9T#7b`r20QtE+qO F{{!9c75D%E literal 0 HcmV?d00001