From 2513ffa097d5164497c15acbeb2970890064b191 Mon Sep 17 00:00:00 2001 From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de> Date: Thu, 12 Nov 2020 20:46:52 +0100 Subject: [PATCH] UML Update, Code cleanup --- UML.dia | Bin 18318 -> 18610 bytes .../ardublock/simulator/arduino/Arduino.java | 4 +-- .../ardublock/simulator/arduino/Pin.java | 5 +--- .../simcode/comm/CodeConnectString.java | 16 +++++----- .../simcode/datatypes/SimTypeBool.java | 2 +- .../ardublock/simulator/view/GUI.java | 2 +- .../ardublock/simulator/view/modules/RGB.java | 28 ++++++++++-------- 7 files changed, 27 insertions(+), 30 deletions(-) diff --git a/UML.dia b/UML.dia index 20e248cdf51ce1c929e198ec0f74347722e5031b..d1802d5c058c4756d807f1ece9e04a4b328a7d20 100644 GIT binary patch literal 18610 zcmaI81z23mvapR?@DSWxf&>}d-3cBXf;$9vhv4q+!QCwog1fuByA1LV*=PUve$Uza z&ikzHMXk|Z-PKjq)ewcjfxSH--koGveOnSsJkve%LP#j0tt<xMu0#Y6jaYJ~NKz_Y z{Qe-%+-Png4INVzfEPLrEl8D#byvFvBRMb&DHtu_kMihh(f0}Z5>79RuSov&rRa5w z|FtP4-BTv)OQL+I7e(OR;m3@~OFKaO<KqnD>-{N@+fA1D%iSxs$-ryPtG5a{yU8uV z)R&veN?q-wos(C$=f}G>Z>%`^+Wg^np9Xdf5<6bJ2MlA|8nD{EZuY$Sxq+9Eza>+Y zE6a6c2W$En_Ke&BveuKJms94gRfKx*5p-(k)VEm2%U^CDe`S7noXO(*_|oRq{+K+6 z!dJ9gYZF&`T_X{<HtSty^7`w7fygrrGm8Iq7m#Ii8+$o*5+^<DA$QZMt5w@#Zp@gf z^ZX!hbDfpgIe8d3mUXkt*fJ~O8i%2_aQ%Y-Xh}H)yAjrZ=Luwz!SB^67IwXpX<&C= zsBD((+zs^_F{%w)YNHM#r^`xh8@`fEl}S<^GRQo&HUUUcI)%)vsD`!PM<*C{Y}~y@ z%NWaA>pfhyH(DJvtBC?CoR?wM${ym^YVBM-FM{*>>YuLVBl(`c0)`l<4!(7I0_eGc z_wp+qPg^!7pWMB@+=nKrp6cp1^zjQQ*_MKXOI-nSCU`*$Jr=VblQ)Mob7`56TSuvU z$ve_femC8}$RFY{OQT-Xo)0HCONuwI7Y^}sWI0U+iii1DpO3<VV|8D$9F!|gZ<8AN zGc&TDP4`BxGmstt%$<+vA@i){c;3&4RA(FS-94giAx{kNw_{dz@3s!L1{I((ajEH_ zBue|DwhjzyMn`vczOn?irx?1iNp`XtmC;am6wD~lp^4b>M0a3R7df+d#w8AvA`vo; zitSiuWy(#ag?-kM$)cpp;Qtj^-Yar@Ex0Og;EU05`}N>RU5qkhalS>aw)Dupy_y<> zGK8!^m>;0gYcKv4AXAuTJ^X%B^CgDsHoslIGqBoREEP*WxVMLO_R5Lnf+S4_H`ygQ zz{Vt3=9QXYt#?>X-b{zH|LZ&Ff$Q2I*8obwokJA9C;QkauQWFHY7aY3;aT~VHM!V@ z<CJE_h77s_s!i%}nAsK4?9HwXtuHBx&V{)g*tGHi306Qz-BT_#K-x%4^N3jOmybeQ zwh*;;6qg-OwOijx@%n5+FL=^+%RLKVo$K^3C^HgA`S_db&gz>-zCt>NC6*ITJl!@( znAC;=iH6hD25qKDX-;@Hho`k~*Uk$G88n<fO`j(&;%P*%o5-Kukv2Pev%jMofIZ5@ z$~)Q~_~puPbx5#ven_MJ5j{zgtKE(3t5;@fj}u^U`|wbIBzKC@uvO&jG|Dn%zj^Fx zxyW_&R6iAqePDZ2_{CwhQimHDy=)jK?}U>ef3;x6ToX3@<>7}$$zq+^1KQdmIjeNo z%JEun!1FUq<HPoptj@BIN#64_dLAuR`OCMfN+#)JWhWEf7WUUhhs#g&wV&-@WchF! zpO~GV9W!45C%bvi>aX2YfWqk2JVg6F{L2fb<FQLftmCoco=*)E6~_(|t;}~jT~_DR z{`VVM1apc<N<DoE6%QlZFPlX(+Y#<&QL0dCSC%7A8nQ@k+QsfoHLeCnKwYo>;Y82J zD~+!iU));q?M*CVR88W_p03lI9k@DOjZ5|1S;opXajp4J&hKf9+LI$L_xgU1?q<^O z+-<X-)f|+uS62UiSxS2K-&^PGJL4pZ%jF+?U?WIyy_m_ze@VsoV$Uhr*+Lu4fgb7b z6nU-BM?f!S;C^0sw=mN9!0~K-L$|KXF=NItQzjF7Nwgrln5HCqdGMjb|190_Y`bwy zHnwzCYwxSI_p@beW;r32bpRfxV_rF2biHQcn9Ig<?@4<Vvda7p8h_ZwCcON19P>jY zoguWvJpa1`*M(~?`Wohx$jLCrwS~Rl{YI8s?>)1NgXF!qdi#{_7b^nG+w^*q-S0ql zo|cXWtqa3z?dh3U_T_1SPTP!5SA|p7yXBE*E49)wV3T`mr_s~}SDpn`RmAVv!f5Tn z3<8+8&oPunZfa{}r)YN}?!Vec>?&JK8GX;5H*E~o?0P%AVD~nMmdEzB5^r%b^NmmF z{LEYrUBB!Vh)=To#U{}K4v3VV>oSSBiywO?X-|Pq;eP>k4*|K((OUCuVmr%8%wQ{| zUwoVFk}brealwJnmoY6-gtr7eSUq808QR1pHr^^F{yClUD<DE*<S#-z8A)#`rVL|s zKSvSoqg}(fLGk(#-oOP>KFoVvRVy)wPP-!D{O6&678uxGTIZ1@E6=v==xPzbBSc7Y zHs)QkHesZJ3VN-$OwZV4EP=@;q21a3=IRk-s!+#K8zUpPiwvm@DWeg3$^s)>N*i5E z*)X#|6NvQFOZRyBq3NGo*t~?&=X{NteOs-^DdXb%WY=hqfFK`~G)lyx>az__4k$rC zJuKO)Rc9{*q|edR5*Qvd6#1YplO{{KfM^~=69B@nh-P~_X;U`NnG%B%Lv@#%N#7yl z>nAUSu#2ZeM~+WX$>PIH9M4mJVa3kqk6B8QZe8P0{In7kR55kbmzyI-IzFG6eVKft zd2L2Bv6Nsa$YM>z2d+|&vWVCYMo!3SI-hO<k1GsW-b9s2HlvKM@?5lPl^$ODJ5HT# z&lkr}$4lnME{?Yok0lY)Gw*qae(QEV4tT3rOn6NOdJ;z2>;uLMcP^dssd(g(^D!r^ z*;P`S+B__Cs@S7tDk%>pr9K+eGNGsDT#8~0_{Mg#w5G^V9gOr+GZvyy=8m3O>hIoJ zYU%K|w;I-je!Mk~zw0IH3@krlZEazg!;ABczVPR7#c^k4<X<I8Tl&;uEVuf5ur_6h zOmhZ~X70Gh>g&<Lb))Oz((YB3q!m{Nj`7vf5@~()>kBN)Ug7DLmq{Te=P9|Bo08Ed z8?)jK`g-;{Tu@UipNZNZy;x(a#-hy1Gm6a(#5G@gQO>MdXLY(sVZ~Xd>c~tU%uJ<R zUs)0~)PAN^Q=4tp_9O|@oJW1fL((4XZTRkMo<}VIgA^tsL;16rnF0GdqM8B2+CY>r z{?=VC?|AF8e^QpZoh<`J561wUg33|jog&E=iOfWz3oAZG<}{Hu>-X<(@9>s)<K)?0 z?c6gWZttW&&X&!1TfclT{+=;-S|)zC`<f`nS7-!~8tojQ+Dg>@UC}u@wN|*|QAc#7 zd;jaV<>dQ`yaOp`7DQm}Qx`Ol1!x;?CAY*)Fj+C|$!UwnGq}DXM2_s#Hc<a#gJq`( z7`CKVQhQ+enddl;r|gT`iL#(q;rMo8)shKXvzfM51D)sXm(tb35+GB`nNwqv@SWtJ zNvYj+EG_b6gPUrfdntLT=t^s(b`^gQq+7epY*XWGQ@ypYw4HX=wz&w>dfd-5K~Ep9 z;Ik!KhP_)D@I1wh9Hza{vmw0x^dF_k7fbKusDf<w5r62%SF2v1vXvhWLupRB%I*hE zKcLv5**zr*P`vit$kxxf2p!tbz?w&uyOl4S2r9Kt5)Xh6JATu$CU6JIvTrz*&8e&q zmyUauO!fEi;IRZVfoS4RG37J5)%(Ld4dj50q(HLJ8%}(<cCpS9U<z>h$oj~xcHiKr zSXly@Kpa=7Ja}|#H9le1!h?|1tsPk9iq~e%<99yE?oIi2{c%ZJT??_m+3bRZ(R%U| z6valgtpvw1Hq7eB-H1-F<++6|NxL01FnFJp_{3ASpfUt_|A3$G%RXheK<dpjfLAdK zrTK;jIL*H{GAk}97@K<NhvQJ|-peh$Hndk#u6P?!^L*8EdQypUOB^`meyOlPo3yIb z)p(lROv3D}yD#Wvr1vtrkPchJ)P;FFJ6ilm?-kY2d-jpO#_;mU{^!#WiuXbJHh|7b zik%A>EqhX%zRhML<G5NX{^ByZ;>Oc*b6krwyTtwq3~uafYj*+8-JPv@yw2SLFN!TS zZub>3#b4=o2Cc$d=v(lo($Wv+#;kTQE5~J#ZMcwZS_b;AB!kP<0IriugF4<7wM=(w zkKVQ<TK!)HXs?#eC<j!cxU_&rCUMtg-xPc$0`N}QD}kTR#-d(cqOPMZWn(BgP?5K% zeIs)|*(UX6g4GFM3SMR~jPrqvwJr6T`W!Y!4sH&h6Ow7?NRd&D{3^wigMA6w`Ps@U zLHWgZ|6hWe#CGQao9n>QcT6CKN-TJ8RF8~{HE;&V%PcG^M>E3I$0SKOWlHE+lqP)k zj8XQv4QEYdO`U?A7bIDZVLjX0_UWAjY8T1S$*LqvBumKg*%0nb+3R}tCVIzl$8k3@ z3NlKIoiR&^1@H+G<x~ppOaB=G?(m*A_zRS`?QQdF@DeX}+WAH9=kKZd&|auXCekv= zQ@;d!+3t!pg>B!!Ga5%u+l&(>QpWV$e9m`V@|xVEMP;6xSl0>?k|HB$NT{%UI2={g z+dkLAMeD2fq`>gfYwI!!JBYNdmn<?{d#`xFm|880+$z@>)w&<J;+&yFU^XMXchD-c z$;zd0wu+DpGtHV^2+oF7Y$hNJX^yKf<&*lCsJ@3%fhf+PA-E#5lTtKs9xApYGh=4N zGga`UHcbQIo@O|;Rp8G4FuLj9<!ei<hFk~FaJcBd>R=hQ?|*eX;%Xgsy#-{(d7e!J zPS5<#Xc}|iOIa6UoD7W2N!x?B`0TB5JPZK=4#E)*LfdBw62b}|;)Y9rf4JzK;jxWl zcH59(3r(M4bnb&`YF5Gn(Cy+lhRTd!jX)At5;rxf)&%IZYNbQ+pogxHu3ymTTA-#~ zmxY)bL{fGMKpgE&8hDJ{a9vJ)spGk63y-wUH+kb1|C=chwD-CGQ0|WjkwNx(+vG2x z1X>D?SLu7}P7-qyLL7@>azY{!f9qFbSkQzfCGuF96@S&|(M8I~$Sm?q@>Jw%9-!1# z3~#4+7GU15k`6uWpc!22q??uPTe%haGXKEK=*1mTNUdE*n?r}7{dqrBNDZSUcl<+O z1+|0dACZoPTKt@>ig#s{<MWHBxmxi6IdHCK`^A-nQSIGB_Kgr<aYwQ#al3iUQLA=; zpO-0S;&HcUv9P{_5huD^U;T}&24xy~#?~-Hw^M6rZd->sPe}%$-bjI%i$1jlV?7F8 z8R0Bu(&FCyrr0;U@hq5ZHWS^s4~MgzHb-kTDM_v|W9&`4r$Z^g_;05l_u9sWS5k^g zhp!dl78ZZ)UkzN#XZEkik5<GTxFqbwKja#?-aZuRb|PekH<_%`shz2ytN{&0_#Ofm zvDAASuI%+73l-gnh0$Cx?Kv1Vr71Nun13tvFkyOOANVSQ=5P&bRlSpK$}|l1lVwwb z6(!%9(S;Uwd9Spnz4wc9Q%<Q6bkM2@Wf<x-Rf>8AT~fXYAi=DXDYrI3=KUw$73*fI zm12d-V%y4gzS5|Mq1e^7J#Cd=Kb_Ar-k)b!wnS|quNo=Iab<r#HM<{w^E(>{>N>Aa z&iGX+*Bs5zQM&zaaROI&+`kK}P>PdxN2LQNKGj)f73=_+X%4o6QE^C^g|^dR?AKcs zx(iTUmB8OqFqd<r2DO*IM{%!{Bzw%Ty>|Cxdd6IHY)2D(8Aj|zv~PL1`VHS>grMCS zCJ7-6(Jl(%d6-kVMen^ybP<L4IH8`t7D>a$;>zS2&BHF4$)4VQ#O(NTV4sLdWTAN% z%Rg1}Bx}c3NqD65+w}A|FLoBAjc23G@T^7EijhgZn`I3vh&srzN$Xl(6?T?&FaurK z?zW32Yia`5&zoN}Bj8;@=BG|l-#65&5ZAtrthsX1t*-7&C2$G;Zna$E&*%O7O>vou z{kbXp{khzuxhC$Cd5r_e5~Y%*jgqCU@yA5!P!1FEKI#%5$&<WTG1Ul`<UQ#y7jWa? zzdPQ2cT^1DTVP$2Hh=ydV>Nlef*gH%0(MaB|E(x@{2k097Ud;b(w^KG>6gLS%RGI@ z)$et$fXtBTibOm@;+0-m0N0ub{MMyJoJ4<cdmsTm>GRdy8vdr4C_es3GiAC(_dgdA z7Biw;FZCrO*Q#v0hA?u*`@_q8?gqMx)xk&WTur05*`hIpN*=Ilob+p)L710Ehx4c% zK5%cKz^z%<70o8`FO#bspfHp{l8zGw&Wj(D-J$_a!-R&pXObI<U<hv0tHkI1d4qYW zo=(`FR>&Ja-k1gm4U_F!r9bkYQY_jvpu|+f1?n*4jL<z}oVbU$iL_5ye6iis7-=e3 zWr-%8rqt@kewN^zHrJ3AY^%%fkwEH^aEZY}4#%Kep0Q^sH>P4=kSN80<7Y<hO|`pQ z9JbjtYBny#cBQ<O*-q(ai7_D^6UqF}^Zsu^lxU_Ik=aAX@#XXij8Mv}>Z`vhO!@G| z(J-yoa}f%W+f~NMJlCl|5I+ehb3xb!n`3+?G?JPNSZelZwcLaFlrsZmV(!aw!_P+n z84vE(4>@h(!z}Q*wbo7Vrt1*Ap4;5nfYAJ|N1-)KZy3n#M<|F=&iylLeU9>e!F9}Q zw6*R&8jJlPS(GS@57d1t1)o|kZ{I&*zMs|QFO*n^_mNnS>3R<q)77a5-*&xdzP_cf z&!hu4l}Bt#?OTcXAT3M_7o_+|%4FxLVOQ+Lwk!j_)=LjS@4_Qdf!*x)=WM>$)-g8S zn)sa;A&wUXAhhCHbg8@eTi`vtcprsN{G9<!<*dP)CCzZFZhyq)<)uT@opH&T$73&q zt=&S}?pV&(q>39l(>E833z8SNItp}ig`<K9Ba(v&k$7=I&P^~r5+`o;8MeV%nYr5Y zi6e8nP?*>`**)45@|UoN^y2Ycv}Z0Z7oM!KNpGE^gKevq7%&Miaxio-6i%>?_N*#6 zKPW+{1-Ke`Ke!s*AYvfU!F;bx^0soP?e0qo{aO4%&CS7fbw~mhN<4bzUNcX|GBujS zd&GD~gRLL>``?)^F+&do9ww|4PeLRBpJKO$TOO?MRO08b!h-9k$jX}Q&{c=BPbUxU zpl7zsz04f%-Rh3ww3aP&496tW=VZ<uC3_z4te&|ku9z7wA7Eftv~%1lNz=LG&{o6f zK}uR_o+!7)s~%GO)9C-`XbNq*Z`><^m7{#G({597Xm`WzJBRHPJ$HOKG4ftH3`J(I zE`??m1EqyKCWU72#SVLAr+il(%rHb>07<IylWRAU%(5)9S(mH?XWvp)`?zJL$KV)e z!v>7@<iy2!WG##i8MJu_%Nv{Pv}<V#%?c0RXBHOhS!e1j1<5sLWE!!V1=-u4TA<y> z*m3Zy6;5aTU}6?lsSi3odB=>wygcJntK+b;Y?5c~P(#amJsrV-(Gs_cTfeeDi+anN zmxn_zvTrIT&cc;CF%ceV?C>8E*9kI67OY)weQCE?`Z7sLay`ujRTApuaKf{vw#cyw zpxOcSjfbAn(ziOcL4N(lee;c#cD=bTVDC2Xithp^;K2U?^1Eg*dgCKVt^cMMo(rld zPm8{57~(=fiwY6{#k~@uritN%a}M|r0`CUZPERXZgn!MoCQSlT8Pu4(BkA5P=>@%g z$np@R?#3|sFq|vLoVqgD?gLruqblU%R51cs5=3$Jp@dVa6Ymj>NIxKrdQy<`+y2<E zE^KpG($@=O#t@@vSG<Oj`@joo0W#4js(c*G+Go&a>&JK9X$I8tc_DjG$?d>#qc z=u6@q!9o9cSQ?bS1^D&xMUSpFDqDA9oiXIZk{n(XV|_XaJZH6OHm%D^za4EezN%bJ z&u-0Y8rdYYtK6z~;(KD%OI8e(&mh4w;*~~!*Np!DI<up3(&eW!CoK%JNl}>4KG03U zPQj*Jjiy}nwGXJXtF-lJ3}hU<ZWeRN+><@oiEM3Tj|ghkeUU^9S|keS7KsTbh#g6w z@HUhDA}xIK?!&ydG>ylH2ZrWdIqMpdS<AY)DM9GNPn#cG#nZhr<%?z#2iK2BHj^WW zSnxIqEyzh$NXOPxtY6%9o}6%xuTD{E_gVgnD{0{@T_SQ@)#0M!<j>6ch7tqkE>c1I zM_WZ?8z~AZf!qXczC&9@<rFqX19yJ<#UjL>KpXn-&e9!YiXPAxksKI@+d6=qm^2!w z0wU;J#bML>IS6NyOGrk?5>p6D`Nc!gz$>EXg9KG`vFk@)wYy&}vvhAOuZL9H+BAE` z%iVERd$=P@>g$eFJU)_InCqKWhbECSCG3p9oSZa~w@VHgDpfnDFMOE)f5tT{ss@g> z^AAt0>Jq{^%%q?X2>BYz7S@oDQ($#s*t%-X+OHku-bIEwyP|w+>#41bCZ|)o&9&)Q ze5H;ixfOtKArUm<4-Tme>NN{-RQ7jqwMT|rIy;<39UnC^JzuH`?&X7)S!@zZ+4<eh z;z%C0*$=b(aY19xlUuSx0eLh5BNH&W@nk8RvOlV9xjh~gQ0WQuBMRjJOd4g>rvWV$ zO_2gVp&*oRRDaMop_UGd;&n_fn3t+fFre#I4K2seq-jvJ{97=qMBm`0JFr;db`*=` zsbPQ9K5OAdZ}0=MwIVXT@}U0Qk6S5>tsQOS5}IBHJ7uf9rNTSZaSj))lz7p_s_mp+ z1L~zh{;F41$DKOtR$<u_Ct<EhbVtS9xnPdH_6y%2q5SO2iXpx3$yqC&N$+K$j^jy2 z?a|X+SUu623WjWnxckNOyt~uk!fswz8!acN`z8C8WXg(hUfEOKYN(~vZf)VlkA$%( ziTeA<xZL8GxrwLNdrSuRhrbSOuXjlmPi2C?O_M|co!H8KJJ78aA*mGMnX=ewiTOpr z9gJ_`C$yhvMWIK8x+4W0A>kJmj0r+RdTDg^A^oVj0zplhK{KR3FYgj{AGX#0LOes4 zhO7>!U%jcUmqs@rMz(-7CunxPTgT%UbkiQ;B8!?C8f()a<>#4NGuxC{tBzvI@5()f zKT4ZZMM{=Lq<Ce5l+#3{ZjvNvm}!`Q?3K$5<oD-ClEuY(QJjXr?lEI@5Mc*D#K)61 zv44OuR!{iifW3gllScVVT&qgs72~L4rkmw++~%xmlB(Wq#aL|1%)4UE6acrsJDrx< zB>iOhUirOp1v1GR>56$stP0p9>F1E}rHr2v49tGCE1{MxAK-N9Es5M)>R)JPwKaDX z?5-T>C|5{V4vAMLgHx=_<GLOT9fSSU_Z3j;7{m7*1i#>1Vg=Pz4-IgjQij8}luVwP zH>TXzhjCjve3UfZBiT|o#YI?wZ_`ck?4<d9WtsZQJc5E&A#xqM|6zhIS52fcL<g;% z)J^n{;K(jahdqnJ-rEjXD-yeNS=b242XY+Gnzw3K@H;2=J`>5xGsc`C7w=z*psAVI zSb9b}2amEy_VLTQf6JI5>jr7NI9q}rZr=!6TYg*F;uTrf&b)MG%0(_I4DW(*B1dn5 zHT&}joZ?uF$$Yr8adGgxI@lc8Z|xU*cufD+qiwbITmIv#ZJbsCe^b?q7M#tgQ>%vO z>dea0Gksd*9F8`3loe|O!1dVGW3(piK__U>-D2MOm+Q}So{Eiy6}RG^VM{M=xxs5I zzD)VQBgmj2?UE(`_l4H*`0(U8zTNWkF{KFSnRsE4O^J5Z@=@G!vC0YOewCv}_T1g~ zCu2%@$)lio?GNXNaM3k=ONF<14=e!~)x&;NJ5*;2uLA^8pbIw>|0gD#WCrFMZRD?< zgFQNa4Tm$WwJ8bctEVO`>^!<lrK5AI9U&1#L7&Na$VP-zTWWo7P`4i}i1bGaVxq-n zoE|F(qfCg#Fq0bMh{;Cx;*%ixcM3)>7CY?bwAT0PQuC)4zOgvWI|ZrcoY&pLDk9*B zb}YSbP(l5O_@kdlqvx|0&g^C~%BBYJ$(%t&s8<8P$&&MskX~WyGi8ht_d3MkO~)~~ zMMBzgJYjTJ7Zq%JfkY&f#Oq0Fb?X%6m&PKZR1O^Ox)a@J;$~G@qhX282|1y4#&#hM zi6^|5N+ugc&hm5`)53)NvePYF85aY`J_B(KseB90*BlQ?X8J?zn_d9x(zfcx;uK|i zh1=HFmzxsqByD>4ddy6s)Ir9Zcbd1Uhmz9_#`WlS>b&Xn4E19%fsF5TF+1cbO=i41 zm3HbgQpO6<b7tLaD@3xtZe7aM1eUuP(KR##3C@tRVt;JVa5%0xG84aBD84ZJD3s(W z4~fQeyk^*PxBvI*3!gTkdTQ3>Q~YibEB{J+7Ve0=nb#pPO~C`r+nLmr(%V%BO(eOS ztJQd>Gc50^ph$p&+|u~XCP$t}x);lUc;|@Qw=CVM&nZ}09jWm>DrTFdrS>7*8**|h z2iPrK0Gb&Rih?8vMaBGl6gQgb-A+08y_vo4;@jvrFBx%noYWznTC>yviGnThDc17j zxYU?GOza+>`>l4yWLdEZ@t2h#c}vG#bUfOq9pL=H`SImw`k0pfwREUG8&Z0#Wz~&T zl1!32o&4lRf0)E*wL0z7cP0?{!{qj)y#0sV)YOu&&|K8xf*U^E)G`OzRiCFQdC|o6 zSvgPw6<Za*k6>77Kna$??!}yg79^!;cvQaJiq^IEAEQF`S!8XnOmb1=_6pB$PC6O% zATN=RBj|gVqi&P^EL)YbIyxyGi@zL*?T>YX8#9zNlsv7;9}9KCJItVah1}?^mZd5| zl*HvMD}%k5Y{4ROEK$B9&T3VEw*|Bx3bW$c9g@XbGAY9vyT9nY&L+KZ8}~o7JKeU5 zb3G8ZiR2z`^O6ZIz1C)aq;HnWI&#ikyyK4fT`{pKh#xY)RR7+-N3xRn!xtqn5lZHs zt9h)B@34xhNb<<`zbzJJ3c`Zt^OK}za^zhz5pszydCT*<^uH$bLLI_tsQM0QEY*h% zIYmI^NAl7@9uQeN{{YH?f4eJ(SY8oDp*KBL^_o#t{sy@+lH76=juY6;;)_d7=78GF zqnyu7(LNZDsUc?WLMV}w{~gAT+|V-8<@fP62_W@T#7HUc79Mx4$joc=vB*vsF`^KG z^a*qhqVtLSV8B4Y!*Bp6eHfbwHFqY9EbJF!;wRIM(-<t;M$l=z#&Ajw{7Jf5QEFF9 zUzeLnTkR{6MC!s%B}-N_u^F;3-f|(v@Nh)!(bNtk`wjpXa-HIBrx2wq<wzvuh@B#3 z!bM7$**7b!$!yQa9|5->Y;e42Y4gshUp17BjRwO!)4tMf42^f_C3&w_G^7>!YJ+Td zoROA}NnO@GJI*{#Qvr>i&)$+$15_GOlWy^|d3A&ZH`L|gX1r2IpZ|Xm@8N9T9RUV# z%EpNOwJPa}iQX(#V(J&x8f$e&n}9rFd@42D!N65E)!1(GNz>Xu;l1q8dyUNTh*SBY z2)ef@%DuQemk<&CfvIF4F>lRNxRWBe8M#?q9M`#%Vw%8V6&rSO;C1}OJE(bQI=<?{ z;qG`$ee54OszPGbI{i0KUuQENE)mlNg1O#S_CH9Sm@xuA@1t@d3g^&{NG_cybC`1+ zQW1H@#m@m1GDTLX<%L+_AoS~EM-!+z*o*=q6Yw*|V?z7|Pz>mi>wz<X!MFzbYP2G& zBANHli+qgq&l14N^2=YNI(GXwC&4cj<52G@-|xnuj9uz{pt7U#B=%s$g#tu`^mI8A z!5wYCQ{qAl+H>-{j=&87R8H%!w<!r9Em=}?eCM6Y<g=#aa2*CkNinDw60|YpU(B%j zXoN5VsNp`N<`RnthWMdElOX&pz^_N$0i=-%3i{cbqsQxbn0&f-yUnz@WFx3PCv4m6 zg>M3=?2X&`O883rtma>zKT_1e&_eBY|2@xmI5kKpW@;5VfC_COZWz)Zy&b-d7(<eS z5<@~N3`0XIEE4qA${~mZA&7H=>x)NV5S61zN;4OVT;X+^aLcKoiG@!RC}UsAJj!7v zS%e;AzQVQnFIhtP4k?(P+(7xllDdRcb8rQ%w`VlO4sZj7;31L!5wB^)`^&R-eDQI| zK;-NX*^as#E;rI=z2Eh^?MRZ(gL=85Z2@)j<9=Lj0t9RWKJH*P?1nwr1n1&dX|*zN zc0n`&9A9wXu;j4hXvVSR@Q)ux1mFYG$&mn0MpYX%^mwO3qCLmH2my;Jk){DbYKhmA zu{J!s)0yXWM2K~a`4@H4%x!ULmQX?B-M=2CB{rd2{5x@?z`OsMC|tPCvU><gU0Z5Z zfphJZzCKS|BI5IBf%PMVZ+fD~>eXMNRj;Fq%g3DDyUfhsk=5&5Lmm-72T^yir{KKN z#oom(h_a5io;Hm5R+1yF1C1cpykNT;RjYqg9SM|neL5$gr%zFb76vx%sk}x8L^{_m zW8YhQ$I1HGtiAuu5B?j-_=Rn1Pf5V$-;hv|P!X^Jt)78jpW<Ctl#l+zsMhXv`XGZ= z$KC}~$1aRf2)CFv91a3;5pOZA4RJ9|5a9&rL^f6|7UslLtFH0T=N6C|`{5fwDY3n@ zyG3mshNz%&{avIHIjmS1)8dT%*TvRnS%CQ&!MhL1jLES|0-bBdQxAxzc>jj&2ip&) zcy~WN*E@i_9dk*$0%7y@26G5?aQk@Hko##Q2pUk=vc_T{V6Ks_Wp!Y#M~I;xVIC<# z6BpzoAH%+;^TZ}M@^%;Y23=o&qt0T?go5;jnkpm>&s>x9(vk(7d+;vC{iz2});8Gc zzkynUS^~D(gmMbGzQVoU-T{CW|AqNMQ`uGobyWZtbrtb52PvElGs_!rHgGnV%y2d^ zGy&`Z>~HH20e5z2tA+2nHN{E{$|EX08p9hA5)&PYpF%H@d5m5O5I)eZvF)uqQl>?( zc2MO{>gu6R!0WA@g?jK1CD^Y08$P8zrM7EtU+Qj!{Z3mg9g@*tFEoShoV3ek9;wSF zh}s2h{Xbo3oqe6%6=$8@ALAVFJdHep9O)d`)OD6kfA7gqfF6Sg8kD5xWWn2algd@B zM%|_^gmh@soY9k5Ui)>u&g_k@w#UxIGE~dGl()bo53YJ$V_8;Tu;71$9~0s!*Bh#> zAq1%lq05c+=}z<&jAPXQDn00G`|8rP(f=IpX*WdWecI3>s+;9Y&BMDKXMsidc`C4W zVN5wDKK&~N+32_!5IL#D`!Vr3sd~}5sRC?*ppF(~z6qxMUf*Iy#4v#9ms>VO4y2J* z2_-0hORX>;G*c6!`c~cu0B>Pi7p<w&_P6=c`Y8>`Wu6KwN%?#eAJ%rD4d8#FhfttO z6DJCM^i_wbhWcB8U$1TuKUPF>(!otT_>8xGI7HeZ4$7q|G;lC(e;BVkC>{>0q};Ks zN4cI+;S7N6OIz=<ICO{>voxsw4sCYr!&)NmML>q{Kmp6Pc-_QTnAeUtc499hM%#u) z&hdcr204cy3OYV|x*!5PGQ8Z|z=2;yfhVk|`dQCJ8%c-Dja;vZ4pNt@g&x{5>tfiI zZY1b2l>~9?py^Z?ec5d6sbl@jTgN00;|cE{0rp><9dMM|mv*3?+gJ)g)FIR%Kp;az zvitfthxk-h&Vu7qd-uM4h@RL&bjgBqu_8t61UH0&9F+(Jr{X08;SU}RPPPBjr^hEQ z<xiO(lmFAl+qi3M7O^Q_%tcI9yCwo5UK*wiWUK_z5I}=$6(H%XeRe`fp0+HzNEdhW z2qj$8nI^ZL{79E@4mY^wq070fk!FbPKXU$+q#Mg<Z56@3^kabadRHlxkDqrxRov4Z zG~#MeX08(u_7M-(jpn-XofVo7n!DPub_SE4a@KhZIXi%&Ga4@%@6W1f)c79hwe~E7 zvOeZ_k7CK&FuIog1i?RnT+~F=SJcF4&<`Q`D5x$3YW7(v^~oV}`-H?!C#fR*dGbk4 z#Ga4cAN_bv^tR1@9|>d@iemIamW!eWRBO7XVpeOU#_IF%L?uM~5@PF0;QWr<F(X(u zCUZ^25HwwU_a0d`v*A?FY}%}NN}(u6PB<fo3&|1pkoA8ApnNFH5n2Qz+-}@>GwLZ@ z;&?O7jR$@QY=!Krg*T0+p9*<d%5WC===UfTFE&qhjCPA!fc6mL!Kf5JyQ7%+XHg<Y zlI#g|h?9v6#|2SFyp3bo#Z{`9a3ew%IJdf~>AV5!NNJ^sF6s@@4m(e+R4jT~nzfIS z(s7iyP?=2TYEw)2Nwc>AJi;W*AB>;XURkeA*_x?iS;@^LCZqF7B!y#x$dM#*|3`3? zR~$u)^cksyRoRSVd`P7r;}*cNq-LorNaG|)6KScF#T6aG2GMo6M|;nB&zMUz5w$OV zEu19=T0&`8_Qbtr*@!w17Kwlh5s6@p5DXPT`VP{FlDOz>lxS}#o5L0=y0fJ1<XLj= zdCrzRIBT%I&Wz&b&!%SBseYdzl>2=om|RZII`?pfWx?N3YD4jZ@TB)!%@32JS}VSm zema%NS}JdrtoQ{hKuzt18{O2bG2hsOe7T30NJ+1AI)>;?XGO<G@0{(z&|k;FrA3oN zzMna9@{RxDwFn!?SBd@oPK(x9g}PfJHL$#E5jPW9I5}A2TasVr)(2|_sZ{e_3C{$u zG=DN1diiK@@yp30k_}6mA|Go`w-f?R4aF+WA_4PdH0qmOk82Ds8JBj?msyJ3m4JfY zv-shmw*Ec5*ua(c9i2HgXUgN2q)tZ@gLwI(AyZ!W%kR$ooUL+&TM5`j!&bMsx*47? z2XmE~ktKgtO>YQ0?grQ&x3LbhKlzxiU=!C=Y^3Pv@#NH9Ys-C0ps8iu>6;|Vgw+VJ zyYb6-H8|itK^!0O1RNu-r@(Thkewkad>HV)7mx<ifEY*jNd&8d%BBFL2RDWPACdS9 zy50|q(`S(&l#o<3HX?5|pU->*CNqQiHn4}+>C9SiSc`e@BBn$&Bfi-1U0ZO`UTv02 za%zEB>1rnkx53-EU1$T$5mw;BH%`}271VhZ)UDKcxn?UY)g^Ov1PvUkT?1!(h|9Ih zKgr+}Vi8SE=)mkdNs|Q8x(O@-ntuGO&exOt8S7Vw^ou_gFka_N9#M$2UoJT*F*&X| z7vk;Uei4P1IlV#5)V)t^Py13`=vP2P06QV{lvnRbavkv9xqe0YX{y%~fc`q4X6K4t zY)5wXP)aZd=Ye`pd@i`|-v#T70zm}D_qX8NGz8JTIfz5Z&C*xb3|U1~3#pU%#SIc- z$OVTWL>>y}s-^d>-~B`cbBUFSt5IlCX``W#-paQjM_Uzyz^YvbH7C^@*0Aig-$Kz8 znONw@q}2eW*5OIQBovf$mAHO#cGcSeRhcZf=qHRM^bbs8rZ=oB_|-ud(Q_~ayz?#J zl69H-{Pl>f*Sg6O;J<(vG@r-D!8(0G>|O_Bl01ov502_V13|3eUkhq5UpP24)E~H{ z#4t3HpfZ*<mQ_SRoDKp(Bg`kCwfpW_uvnzHeZBzBRG(HW8Nq;&Ftble!t9mcJJYQ} z5pK4e_0>A7K;&Y;D@AKf?ezAZBMxB;kpus}*Z6ZbQ1H(G6m|vWZvlST=^o%nyY{@N z4ypzQgtdZ>PhH`rTra`LO>oT5Shc{eGK)=iyirRIVQ3*}^cOg91>ax%#RA0wFf_`b zHhdfN%6ezYdh_rf_5(MF!vohKKTtmh(lqBo)HCUDgdE$9!+w~51mJ!4&1CA3Mm@hc zHQo<G^k9*te3;=saYzt?`M)5<#F-B}`v{{uw(5Vi&ZAd9V*X99-ttSe5wseV>bq(? zCst2=i#RDUYBG#-AXwL##&smfi2=DW`)TvAAk*=Gn~kUFkC9xy9rc&6pR0(gwT0KX zG*Tx^RjYEakPQ|ve_6wLHg=4NjW@n2|8L$vOX${R<=pol+t~k&e%gL>Zo>qzs_CU4 zjgX=OWi=~^C@xO45qjLR4&S{*_;ZOQh&NEkQOTq6k>1L;Zbn`O10TLb>dTDYG3kaH z(2X6;lU+}imynSYDr#xK3+IW}1O?9B)Qlwzt~1*8`p-n-zAlLmNr4G~=t2sF?&lvo zjGxgb+K2A%U_K@~e)E`Nfv`aFd;e$uXEO0WCCGO6f7a}If!4t~*6rO6><C%O^?rvi zmim2I!M*#6_LdPn#}4VWzO}XI>#G|V<jV;zI0F;$KeArk<&zZWah(<b69B`*hFisd zcVP!g(o1&YXF6H3M35Qc`v6q#5=qm~MOt8BrO*G}G3K=v{h3(=Cl_oDY;D_g+w`pt z;P(NU)SS3)&X6Q-*WEkF4kNV@ogN7hPgeKx<7IaDh&ni+>Fwg?t`5U_#uNBC(!WuS zP>paN0bJ(;TWg10vq1O;wsx#kEe|aNb&m7{{CorzniAq3=AIHX%|gD_!jSjI(Xn~p z9&sQG0^Ea$?)=0V+C#jBXuY-O3g<pjlWo-+(W9}cxd*aC`(mYWlI{wwAMYOl7L%Mk z3itRbzd;~e!Zrgfp@MLXF`q+BsDOGyf`<@IU`#DQEdUB-pdg?kM4!V#_Y+fy`$Ggk zkW2bQc<5tfANoMVf1t*4?{<~}cbgcL69pIh08Py+FVTmsx75nbfyi`Pes)AJLHvKP z9%c!A%;~rB8usq<J|}uI5r2J1i>Lx6$^}54)P0q{{|U;d)NT)6_XiS(ES3@@&|@T{ zC8K@h(4gj6`WpO`JsuJ#7jXg-JGVZJ@Hh2Whq1499mTz1Mn0#WKFop4LZ5f?28+;z zDPUCiN<6xWN<5SwwoQvKKkvM?Vb0)d+2EXZ@g-fo2Sv161<KxM=OE0YE0+WYUAJ!M z@*x{{Z@4S8U9w^E<R~U0eZFpwfQSD_Fo}^*19x>n^aT4Vm>dPUAprUVl;fb!2TFJ# z2E7W!49W}&Ig*KJ8dIN7IG!YwDeKc9wrKJg80df#y$*bP*92_ZPjBxUmrXKk0=mH@ z!&IQ2FP!Y%*6lH+n(SR6f{pziQJL5vsoTSXI@UQTh`DaofOlNOG^yo@!TN07;UQ-{ zLn0h-aOpj4U4w4KH|P=nKz;RjH*Z)xC5oBoe+gs-(=JI1v_V#Fow_c5S0E^Vv3NCb zx3RGal_5aLz7k=;ngBI|Jgvj>F*hbaCfIFp49=>G>1#Z*)E$o$UYRF$LAataU$KX} zbXB6jj{jirdGKJcpj2egAZ!APBra_hR^cT)m%@X{JDl)YQirn3?>iYeQakVImHDbe z@Jl^3)>eQ1@Ce8IJT^Aq@C0~({DM+LXvo{|7JWl}Bsl9|2K%=lQe*a8t+6(w91@5V z{GtjvdN5@r-J%X;s0%Q^;;=blA4^7mFh4N#=MXPqA7Y;XepHZ_=fs60h6Cw&xb=6! zU_A`Do{arGTi?6r!JCeotWL05;$zO+)KO%J>+DtzT6dla2qErWY*-xnp^TNP1pW`Y zk`{{ZDbqH&?~x@=2xAs+5;%)B8p`Ht{OJ5j0_S~70!t_!(Vnx-bIjqr73vl0w@u&5 zw|Ep|ddc%Anu<y1f&Ip9T2JJP2#uclYO1>LdA`>k8)iiWfO48GdKp*J$dPlN^T19Q zK`FFf+=~suqzlTcgeJ3N+N5n6JiTHVHspr*eKACCg4zCEcLa)U)l4&m&54syyg*TC zJ0kVe>1rw?;^##5#bw?kfHO*Ab88r(&mNZt(3<m;g>?ZWo6xdbcep`LVnv0>wo`Xq zVO=Bh2L{SviGYdCKnam*O%)-ky9HCJTK%8=9ZtWzpUDUoN;@@?zFx!bql^<}^9y+U zynsD}KSKU3;4ps{yt&F-sR7G|$>uZgX_52<4^5?)YM|ceC$u%J7hIyrQX=a5`K{}l zKry?b<u6{)_5u{I)OlEbB>oZNz^tIGw-AYc)@c=;-G2QpSOi)QR{zgt^v@XLG1912 zHAaaI21Zs$V+m-#lkC^w-@8nz$$jp!wyr06N1gCu(DTtA4#qr(dttwf44Ure^-0ln zFbeOvuQSV~nXO+dq^6$Vf5V9M-orCmYYN`x=%tRDPk||4ufKw!wZ$^Ix^$?5!9QMG z+sX0G?wg-Eu~)kTCDIiANu;T}b9Gl+wK^NT4IYIN663;69};kxlt@}?T?`=(^$RSg zX0mUps-QiR5;5N+P-`r&zWkHmSVKUx&4Q&SFI1i>auv38(xuiIgSEhdmuX>qexul0 zenR<I$_(R@r&38UK#}))sbooy|5pcho(Gp~(nxtGPfTl8x;E9+MTv&?uG8q`TfWTo zk=o%vi2H84{mtsQ`~5DJ@a2HbG`P@KqfJ3UV7whG9OOoyb<zBwaustyDGuN~F!ZDj zg9go<Y^7oHaFY+^H2kaz)}v5k!7B-CZTHGdGMJvr(s$J7zrc44E}vLTh{#)or1F%z z=$tS)(tEVL+2jLl2U;U^l!nb!Az*NzWndlbJ75RRu}fv_jE{eB5~^5FsH_+ySq)(4 zyea%@_N1<P#s>}u`vmg@Bi14<*5ZYBfX%m3mmR<l9osQqCwHVDKA91(-(r@mGh6Ae z6*+k_D-y1n?In`*kwRUnDqg@^a$MN@`*N&c=rVdU#hXEAKjf9VUvi5;Or~5A{=IIz z;)B2}=ttKpgGp|vb^lTioo|LH4g*@|gDH|mc35WPW%)qtXU#2;d;Zyff`&>;EFuu% zg9=UpAp{lhX3+j6h}3{$&16)fa}ZFNGsTVu-w<k2SYvSb4h1JK1mS><o-GS)GtTQ2 zxbOjH#og!BN=uX!$}e09E&w$|KNK}&0(8tkmBOpOFQY_-K)XhTAb}!f5q`V;W>=An z*9v75#ck4hCWU)RS4{3*3$#4{u;@7FHG-i<^_}RD=2b8nR4xpM<2gYY8`)fY5g1et zXq|Mij?%Iy1{`kF02J|{Nkg|d6n`tlz<<rdFNq-4RkqBEETAf=Z0ouf9Fr!{{N{U& za_dm%?%{QsndR(^#k*f~XlNYwM2pAPIPU8*S(o*(U|eu#cf$bY8`l>p{q4#4Pcw!% z?^I+nHQ-mQgUp!H9PQE~j9GMDC{HE1%?Pj7a_~;J(_SCnrAo5KnNm*3<fe$Qd^biP zA^%%ISZ{o(cw2t^_}iG2T3Mku-Dh^F&-t8STH9UGxtwm`r+!WE7$!gdt}un)a*=8w zz*@M;S6^p(J2qVYH`QYDb59aOqTXN0&;5oW-u;Hr1E8otoFJv}Tj))u5at27MWDk! zG!QwLFZxV@L3V{?tx%{#c;(&Y$_qgE<K=Tt-4kVNi`2U=n|~v6z*jpE2ueaCs5<MY zI(w|aKWE2Nv(ysAB0zl_(I>1Dg&p={;mHXV=oIXf9F-Uq==|=TZ<4)+s5ovjZu92o zjGy@nb@q&o+k7pVf_D?_EdQ}Cea#*H4x<h0x^>2?L;bo{<KXq?bu<ospZ(wP3<Fo! z@4O)JfW2?!zi;hef_)m9{h+CKF6!_SwCwX@>>-5d>+SCyml>1!r_S>AW|8>W`Lpv) zLv?jVp}t1896g=9TTt6O3ypq3e?=Bu*4#S-G(O~Boaq+QfN}gAsC1}wU>u;mcwjzv zC_Zxuy8>Mc9R@&z-*8a)Zjeyv7x3CpprD<co0uESTkQn{F-i;#4h#NfpFo213qkRm zLV%;t0l20~ouYii?agR4NY(`deZ({2+y%Op)^@{0yUyfO3XnK3{+avRr6Nc12*?_U z8VKJlt|nx}dl;BDK`Ug$bo!4CRqNr%aFCT@>tOf_V(x`qIGN|70_y_n<R;`M0_$&S z@x-<;G^iY?9B*0x^`1m<J!TFEick{m8p>BwX%`%d5Mc!iYV{DH%M6A5g7k0nAoL)- zM1XR1*VjC^)_m41HLI<lHKFd2>cH<u&I4#5K+1}elZ+Gct>%S%0$Jht;9h^MaIY-X zd-_(e&Jn+m$bdb<C**DP>qxcr#)_^pb@~?HR+vsuD@en1uC0;BNox3b`Tq+&mEDzo zUT-b1?;N%7tgVfFpH@!SP_Z87(+SS*(}|O5E84Zzwf6SY-|Bo&iKw`4v;L<euAk-k zcRn+$+o*h=sK)GYzt<cpplSB&d`5Ul%%tMU)9zV2v3Y;rn*G2I#qrNz(_zy=aa8yp z3HY3S2P=Z*NK>~o5XANM^|$r$W#J(S@9O&5^)?Lt)MH&;IQisedh2iIjovy{fN$w2 z(|KqwvQq(ZLr)i-((ipnrgMS)Or~?y#)sHX=b(Q0&!77y{a>GbC*w0Wv*Xjb&|+|e z&;fUkXA60swgImO^@Q{!YcFOG^H#gTJb~Qg7nqknt1B;jT=$yJ;NC}}p|cticf4H@ zTB(<+yj?2L-bXGI@0US|(k}oMlozKSx7RuOSFlT%e_?eClct!q_z*3x<Y*9qsYH4H zN0q-IK5Cu@UgLtEu|LiqM+oGhLXf`*f(wB&OXPs%fW3{vY%upCFj;2|J*|4NlVFJO zQsk;E8iB7R$W^?beXOiO0T`d>1CzHX#J|$jlM5kVcSi>rjRMoNYTIDu3uOki2)S_C zn5tXh6_w%g>ZCq4J~nS#LEh?1PzgixmlyixhhBiM37T{@UPGXrBJf+ndZ-mb<emB2 z&^(8Nok8DQJEk#W-s=R#bXM?cp<d$s3+^kcW^;j@_bT@@Nj+X$ye=r$&RduG*c_Vb zmij+&2vA`<Nc?(i!EjG-piBaUaD4sz{o-<Ca((^YzxIy{{KU!6UeEs1C$iUrgZzS5 za@G~$7v3XS%etZ{oJ;)j%vlGuMqu80r;L)G?Z08GYOAVe+Xj0E4zq@ZsH2t*32TBE zX7y2>%+{6z+16H!Iv<S#^q|3|!F{W7K&3whK0bc>+q8=RRAqPmzo*sW^J2CS)&@De z{J6ym_c4kLKh6i^f5<?0t4V>(N_6H+Ki}(kxamlIUjp=jLaSsu<L6}xht&ZkOQ;N3 zp`Z@Lb|yGaGS3g30i*r`)b477D97v=zhX=t1*i-DWL7kaQ16}M3^u!mOs;5OgYC`z zK;on9wX}fDJF;ZXTomm}iGTqpRej5z%ju`I=Fbo#y*A)gsD?{8Q#MpeVU|`B+_vD( z2<mqGL1;=Qv)!t);9#E>LCIrgGOeVvpbR~2Q@+3~YT*A1<~tHP9yvh5GJ2l4TJS%D zw7kUm`2t>AaAgQnOD9Jn?)%8JgKkgTEHcam%i^(|Dqln&M6fjvADdZ<b~tRkEo1=$ zr7ZPZCJBo;nIP(WO5C)FcoulvHy&{fh#qmT*$@@4+4e0Y-XfoK4lc_=$Bu%2pshSG zT&TB<TggySJqa{x$s5fGBIGCU#1MAQ%v(9(S6}#0&f1`z*YEDk;BS!rod$%4MF>r8 zHEo|S1&ea^1mqCL3D3qpU1X3DW-YQ%<PZ?h=&wEyz7RP10=@#iZyH9xw_V7$<{dRt zYzz*z?!J19H3}Xyosx#?i9XrJ(P5wjHGM{7u$6aKM7DrD_Nxe2cLyvY)c-*~!N(Il zJEEq=XWRO-4fBO6gC2wuxC%@|f1Rppzd%}u=R&NHZ!I#<KF@xDGtcfH4~2C6XTkCq z7++=6`R<teoQF500Pdz@=`N!Btm~sJv>pCO_n$$(JM;n;aR^K!JsUg6#O52@TgU5) zUU5IIOC`(Qhsh$|FIh4V7!$AmGumY9l_=<q+|PVE{4&x~f$<0nV@CW*<;=I=Kqt{P zSwmh7Z<8Icx&3&r<QCYR6XHk=ONl9n5h!=}t^9|Jk(B7hxmKW1;B8<RT%J??iUWUR z7|=t~s_l65Mbn~QW}(*zD@j|+$?m^T%(g|z7`f0U`j0s5AVK4gbCXZ!W`>i?wc4aN z^Mf8*Mq4&uf4jbyxLo=ZPL8c;)f($1DL)xM<P+sBxEG`siv)Nl_#d+btkWI3(-AA8 z%`p2}kXrQkp<>MDc4t!A(4!r!Q&y`THFW%bbj-%uJBtzVY4_f^*yi78QhB@527Bnv zIL#i+UaQ$_{Xqh)pS=yHpS_=51a#KV{<fm|Rxg0cw;Q$n=SFP<<D+e+pf68wYWEun ze*eB%7@5>enKX8Fs#VOy56BFuv-5KL1_bgn)uu(TECbzbZT=k}6`vVE*Wn#l>Ga}{ zdPotlvYI7CWEWfxy}j;_5X9ioU~p&>_x^AJaOC2D$~UJLu8ai2zd<DXIv$iYNG<;> z#%Tevp$0=tT3YHT=el5ApGQH%MT+|bY-vCikORJxTY8cNG(t8L*ztjBYtU7H{A!$+ z?3wFd+xXy-_;ST1OXUn®Cbd$>Duy})ZC{s-3I^+4;gQ>5t-9c{jt0H12S3v?^a zc2*wwEZaMhI^g2@6$T$3b);H5bTu@}&I-^MUo?T;#d>|dwxEABLTPOE-}&J+-Z-@v zij1qfia>J5zxI6ml^qV#SoZ$~gaLd0tLd(P-`2lVGB5KYpKox@-Ip`>Y4hA!&Uv5J zx-(H%wK+uP<|v;|)5SjF?8y_k`^njLG99n-oHAdQGtWN%`0H1}lOgxao8{`w(tG&k zCkHV-`IS1Tzea86=g^42SHYqR>cuYSXKTrXl_fiknOF}aUxX^M{|<#`VyE@jPHwVE z{ng$|U^+<U_Emp<vlyP#TB)^CYo*pot(96UwN`4a)LN;vQfsBwO0Csttu=1FmXC!r zfn2Pp9k1m>5l3D)P{C>~?^%o1vbGECFjB``YhC*Y*I%lY@cl3E`I$>2;VJvLo?N=G z0xCsPiljRiNuw4;()i(fb%!<5@2iqkHM=g+{HGJFU7EG-Unv9O={OoJ{zDq+vVmn~ zB3{{w0wag#N<=c&1N*m$<6Vs(!Zcg+9G|(^-gZ#k_BPil5$K&CQKPB$SofoPm<M~9 z&0oY+tJlt!n`c_}Xgf-7J=HG%JxM;L#h?Fu`49X5S4DF3=YRkIJYQ=2$1)B8>nbay literal 18318 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 diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java index 042542b..74ae334 100644 --- a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java +++ b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java @@ -135,8 +135,8 @@ public class Arduino { int[] array = { 3, 5, 6, 9, 10, 11 }; for (int i = 0; i < 6; i++) { if (_pin == array[i]) { - pins[_pin].setValue((int) (_value * (1024.0/256.0))); - //System.out.println(_value + " multi " + (int)(_value * (1024.0/256.0))); + pins[_pin].setValue((int) (_value * (1024.0 / 256.0))); + // System.out.println(_value + " multi " + (int)(_value * (1024.0/256.0))); return true; } } diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java b/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java index e7c9d26..302c656 100644 --- a/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java +++ b/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java @@ -28,10 +28,7 @@ public class Pin extends Observable { } public void setValue(int _value) { - if (_value > 1023) - //TODO: check by Lucas - //_value = 1023; - _value = _value%1024; + _value = _value % 1024; if (_value < 0) _value = 0; value = _value; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java index f6c7195..da73629 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java @@ -26,16 +26,14 @@ public class CodeConnectString extends SimCode { @Override public SimTypeString run(Arduino _arduino, SimCode functionHead) { - if(block1 != null && block2 != null) { - out = "" + block1.run(_arduino, functionHead).toString() + " " + block2.run(_arduino, functionHead).toString(); - } - else if(block1 == null && block2 != null) { + if (block1 != null && block2 != null) { + out = "" + block1.run(_arduino, functionHead).toString() + " " + + block2.run(_arduino, functionHead).toString(); + } else if (block1 == null && block2 != null) { out = "" + block2.run(_arduino, functionHead).toString(); - } - else if(block1 != null && block2 == null) { + } else if (block1 != null && block2 == null) { out = "" + block1.run(_arduino, functionHead).toString(); - } - else { + } else { out = ""; } return new SimTypeString(out); @@ -43,7 +41,7 @@ public class CodeConnectString extends SimCode { @Override public String toString() { - return out; + return out; } } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java index 890be2a..7c0fcc7 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java @@ -13,7 +13,7 @@ import tec.letsgoing.ardublock.simulator.simcode.SimCode; * */ public class SimTypeBool extends SimCode { - boolean value = false; + private boolean value = false; private SimCode followBlock; public SimTypeBool(boolean _value) { diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java index 1525cc8..332232d 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java +++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java @@ -58,7 +58,7 @@ public class GUI extends JFrame implements Runnable, ActionListener { */ public GUI(Simulator simu) { super("ArduBlock Simulator"); - + // Konstruktor der Module modules[0] = new RGB(new ImageIcon(getToolkit() .getImage(GUI.class.getResource("/tec/letsgoing/ardublock/simulator/img/PM31_RGB_LED.png")))); diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java index 08a6506..2ae27da 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java @@ -15,7 +15,6 @@ import javax.swing.JLabel; import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Pin; -import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; /** * Modul mit einer RGB LED @@ -45,13 +44,17 @@ public class RGB extends Modul { public void paintComponent(Graphics g) { Graphics2D ga = (Graphics2D) g; int transparancy = (int) (Math.max(redValue, Math.max(greenValue, blueValue)) * 0.9); - int tredValue=0,tgreenValue=0,tblueValue=0; - if (transparancy!=0) { - if(redValue>0)tredValue=map(redValue); - if(greenValue>0)tgreenValue=map(greenValue); - if(blueValue>0)tblueValue=map(blueValue); + int tredValue = 0, tgreenValue = 0, tblueValue = 0; + if (transparancy != 0) { + if (redValue > 0) + tredValue = map(redValue); + if (greenValue > 0) + tgreenValue = map(greenValue); + if (blueValue > 0) + tblueValue = map(blueValue); } - //System.out.println(tredValue+" "+ tgreenValue+" "+ tblueValue+" "+ transparancy); + // System.out.println(tredValue+" "+ tgreenValue+" "+ tblueValue+" "+ + // transparancy); ga.setPaint(new Color(tredValue, tgreenValue, tblueValue, transparancy)); ga.fillOval(0, 0, 73, 73); } @@ -71,13 +74,12 @@ public class RGB extends Modul { */ public void updateModul(Pin pin) { if (pin == pins.get(0)) - redValue = pin.getValue() / 4; + redValue = pin.getValue() / 4; if (pin == pins.get(1)) blueValue = pin.getValue() / 4; if (pin == pins.get(2)) greenValue = pin.getValue() / 4; - - + } /** @@ -99,11 +101,11 @@ public class RGB extends Modul { return true; } - public int map(int v) { - float vL=0,vH=255,tL=200,tH=255; + + private int map(int v) { + float vL = 0, vH = 255, tL = 200, tH = 255; return (int) (((v - vL) / (vH - vL)) * (tH - tL) + tL); } - /** * Funktion, welche die Positionen der Modulpins berechnet (in Pixeln für das -- GitLab