From 5fe5c5bd8c4bb06960b8bab92b16f44eef7a371a Mon Sep 17 00:00:00 2001 From: UO289659 Date: Mon, 12 Feb 2024 18:53:25 +0100 Subject: [PATCH] =?UTF-8?q?Apartado=205=20documentaci=C3=B3n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/05_DiagramaL1.png | Bin 0 -> 22616 bytes docs/images/05_DiagramaL2.png | Bin 0 -> 30228 bytes docs/images/05_DiagramaL3.png | Bin 0 -> 36270 bytes docs/src/05_building_block_view.adoc | 211 +++++---------------------- 4 files changed, 35 insertions(+), 176 deletions(-) create mode 100644 docs/images/05_DiagramaL1.png create mode 100644 docs/images/05_DiagramaL2.png create mode 100644 docs/images/05_DiagramaL3.png diff --git a/docs/images/05_DiagramaL1.png b/docs/images/05_DiagramaL1.png new file mode 100644 index 0000000000000000000000000000000000000000..bc87dc2db3870c50c03e300599c6d2b25257e580 GIT binary patch literal 22616 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 literal 0 HcmV?d00001 diff --git a/docs/images/05_DiagramaL2.png b/docs/images/05_DiagramaL2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b2776756ed8707be0b9291bba51cee707528e8 GIT binary patch literal 30228 zcmeFZWmHw&8$C)$Nef7Kw}5nqba^OgB~?N|N>U^w4lM#oC?O5fA>E;*bRR%E4lQ}t z@hyMv`~Pt7xS#GA_k%;-u=m<~?X{j~K6B1zhiPjn;ohXUiG+lNtD>v`K|(_5Kte)} z#6$;2ezM^NfxnQSLzLu@iu=Y7RO(B$}d!<02Vug&t6m%<&Kv@o1h3*v!TeHXcW$vr07`EUY{k#od z5x4KArqoPzU((JtE}O1d=!0TdT37lKOL!7_OyhccRZTfKIG&pH_Vv}CKF-_Owd475 zjdo>Tf1Qp=pOq)W&JuK2rM?53p)=c=boUxx4)aO4b~qM&REP2Rnp1cBAc7oO@H+%@ znDoW3A?ldmfSd__b`s)1Pz{YLAL0O}v*a5K!~p`B7hA`#Uv57_Tm}3ybn_!I(XXG4 z%m4ou`hPe_Qn2A{HHfZmmh`vH#!q!!?RBlKa!VBSJFrvu(r}}%_mkUUd^Q!ZWzS(7E!w=L#y(cQ|5-&Ckn&Q?+a{BW13YPP7 z(&FB78*kXQ;ks^oR~aibv@~JF4M41oQEhE)x@d|0(2LEcs{;F(nxO~Ymczrt%e2?0 zud}kU9-4>b4 zywSuD9%0^H`+W6KOe%2R|GL5F>gVb$8k*uwbvb$Yqh^nbQ}|gjH#_^#z;+lB>)~-q z3RSY0TYid^uMv+)4PD<`?s$#&LMrJ}zDyh(s!gmRIOG}84PHl28}LJ;qTZG?o~hDO z4m^4_e)q{R)2!ds#m}=Oy_S=1eCdl1(}l*>n&Zq&Ox>Y`jE6@7N1NknPEMb{rikkJ z{p>UE9nq35I^i22TdZ8T3Pi_^D=g$Pecdz=PQrQEC{hy@5iv4e>%MJt`DLM!$FxqD z$Gov{I#B*KUe8Np)WfQn7y`@fgpIpbnx0XU<+kFVAR1tM#5`^8-yJnDAAPzjzFTiu zNHV*wprD}a;!?H~^Oc%K#CEy#pHp?Am3Vv#~oc3z)b zvaU5`GPbL1%{3Tb9alH4uii?R^|84x*^x}-b35Jt>IF$>PdsaZ1gsqQlg4|NlR57a zpUb0hil*jO^7K6O>$7nqU-Z-Z%SC+u!7kC~KcF)&R#Q0^%zfa&_LF7z%=|Ciey(Lk zA9^EU6e5+NMxXbvrsqn`du8qy6KHjE6 zIq1#Hp9iZ)QX15%r5Gtc+A%&$6_wNffb#!!AKE9@j`|<7lrsnRD5^aKz!&G-i1Zibm5H%i$r0qc3XdfRR zUmel zDN-_e%>dZ`#R(SAVjQma+VCUoGUB`jBu{dknoeO6`*YsA>jwrHG}!aJo()P-R6`Dg z7|6L-FhTiuvG0Xm{7ANCVq;V0UHU)`i|PuvvDAFwf3@m=_yv8^uHLM>yl0}+@@UtR zX2Smh-nBnw{4DSNg8163$NcCK62^|Fz3u@0;;FHhcRbMtV(*F1j{_G(HFR2;b)hE~kFlc?WZN4UbOe}q_&~YP23i$?^xP?!&ObUI^ zCt^$1$fr2&Q!(G$+Z7t{-J`l`-{;7|B|qB^(9HgnE4+W%;t?nM08`reWmGC36WQU~ zki5qZi>IU~b+>e8D>OBoe6|_yFqqVAurEjiS2r9!8K9hz6nxT1Zus*1<<&`(!DJgU zdzS0oLdzL>(^8apv3`)o0`jR3BL%XPHa21BDotyc=bN9R=$Ej;TQ?^lA967cHo(o6CM zQKy$LH}2p~Icq})u37>y^y1PzVOW>58cuYPC@-<_2A%1mdU^4B8}L8Dy|2M09%aMe zSz5R%?V=e`Ejs2HaTlGOMt(48ayWBJn$NDVSL!-n3CVrX#5|DfQ0y*09=H_DC zYrRhAs=ga=4&5M)z0~1KI|E-c-7Lay{IWRM{sPYoUNJ82TGl~yUPHE!AyCFI`4Ffu zmt)%#yc<89!%-NG2pus*UdcD2FGPmvq=;ysIJpMvuz{&-{rvfkY4l5}xn^o{_wQY; zufcLHl}9^WSd!F2|6Xkv5?otOPAi_a(YJ~J}P|$kLD;n{R(rnw6`yG zj85&6zW%8t>1$XCf%b`5W2@X_F4%bN>4Q%v6+nHL<37H`-b+7xdf`wG4ZXcf3spV^ z3Q=jIl${PdY>ZV;DIbp{aoy!B^*q-0Co){{IbnQVxS`BFqI>M^7*4&k!=VB~G50QR zh|qPkaI}-%isxEd9+T6rZsWJnDQxP9Gb>*ye{- zApdS`wvbbvqA1)Zd4S1L)n>>nA;dA2>*5_aj|PcCeO|Arn*sOnH1T1jx5c@ybVM14 zLpMb5Ae7yVG3)lGlT371*9kHnrnY^X2lND4l4(NX{03diX+LT=<bA{}6RNU) zq*5Yf{xqUid;=GhHx~H9aTYlGE!GO`U-41g-E*myh(itYTHNZ{V+W8$dfPSe7BqsU zk>+GXDg*G*rL=2kHBA>#QDcT$D2c_*BzTukFHh#jr!ncTFvJ;Bm|LG{68UJ}N28GR zs_=7k7MIE)n+Zw9ba%`hTqq=HRQq~Czwe*Ru_&}9LXgmUf|;-SAiAr0l``F91|8mc zLck&FiI*~^@QHAgsvHIlba<)r_B2Wko1@-l>jwN1S)07Gf98$F)h;i)nmt0F_ zFOJFPaXs;nR1{56^lW@~AGX+aA`AQR;_$Z{+F#&Zo}V7%5}P4i@P2%{x9GJ1-To{eM=us+Mny6G zFmh_KK&)jVPN3N(chb(jr`ah{89+_dPNGLg6#&x+>c!y@VG&sgXXL8C??kTTH4*j# zKeVO4=c`z95(Jt`uNVf)9k@Y43#zMt%(~Q1SdM|q3<9C5{EZln6~20(9rPwU@otKz zZtTtRjo)y8s6P#Au+k6^kaBop(d51&i?b?oa|q-%FDPS^PzxkQ72e73jj>93+suA@ z1|#SGkPPLmh%SLlQlwD}U2mj!=1a~Ee8&8bRzr{_a>*9?;4?8#Ojv^^P}|9zj=RLo zWI?I8F3&C`6M}*4s?26VKt^R7b+aQ>qfn_4V>mqYM!vWWCD|68^E=`)=#Sal9lH6T zk^J3;lQh-Oq9W*-lkn5I4-VnU>n+b2zD7MpPs0|ae=bBJr@RyxXrPdqFK()e7(tHx z7=`4~-I`7u9X$a>%rQnSlS;9mBZ8+hq>TOFFwr&R<(x|CR&Aq>+uhf^*KpCXJn{G2 zWN6AsbVu#+e-)ze|F?x`+GbYG8jM^tsaDVZQ*iH&rCp8FlL~8tDGC+N(0H{(JL$;c z=^C!Y<*i_p9?8W1VC+OBZqe1KzC0LJUQIie38wR{aTRA1%`ElFNu^dI(%w&u5w(a* zthbbw(LK$5^Ol5sR}+$u5n;=`JZOa#MZ;+avr&6IqYes|Q)jFLt^$jkUbz8}5%@@0 zC+pCx$?-)&jc$LiS|%^vV!QM>pYP z6~^>Kk$ikc?dcW0A&L06=grz|q@1dV`C{I*e;3rQez-;YJQ7?JFaXnX>{aLxDlgBF zE2f|uA!>=7)|SHzs->?p(Oz5ow)*7N>pm)^&vItt>N(iLw-tKquguO;6%4V*%}$DG zmS=B7&+;^Fm0&Nae~kDw5xtb@g-iPEq>0dFfriOmBc z>RTw;Ng@>g_ipWz7`v3mPD)Tnh$<+COMiHAaB@oS&i8c+&TG$FDk>@Ujhp*(2L}gt zz5^5Szc;7h2JyK#b$$WwAk|YY$gHT)WzkCWk$+N*ua?M@VEVjB9lP$V{+28kZq;4 zLtpKlbut_e_xD$$6HnZ9wo$1wU)gRAr1#L!U8gsD_h*;EPj<=`nj=r#5aCb~hM$V4O z+ia6}2S@n6?S5trJ2oqmwk(Hh;&T1A2A?ysYpScic{1{;2SH$L(zk%xHy)dmN4YDC zx>D6dSC{GAJ3$@URMF?3is!2w-uE6LN-{r!eo&|O0ZK_PsMJ(hIaJ@Lp~WqfL*~!dZjIbp0TZf19(WKi-Ka9i&t)BBzE0_;`jiexh zsP<-nHyYa@=T@Nsng)HKFYsl5)#sXrj&xB_uyr(Q^alV3J8=8wVjkN zLU_(ozJtW#X6*Ltmue`5pen}9#|@m19oq-10|v?cJw35G>3&AfJ3W1ro$uWXmco#! z{0WM>n5--&68M`p#J*9?YH!!vpRe|hjz`b;y|LHLzW=c^Kt|)#I6RSxit$MfEYdD$ z;`L?nduv;xTxagjzeNYI0aIdQ>38c7qEuOeh?6Z|LZ1P)Nn&@p&!{6B_w1| zBbkJ-$w%2S5C9xOL+{SWVM&xdf&N#J(n%#|qzQQXR7EB1X0hSDZ{NP@-AB*SOpS}A z6gG?G_#lUqd@l%LqTrx&;9BukeBuT4e9$rVk%J z$Q-ohqAbB1vdLs7;AFWL@2ejf*9+8%zv=qqdMvFc>GKU#v`tj7>V6v>8Kc3UPX+A^o>7$4^!CWEjoEYC zhrGHjz0iylW>|ey=P=V4RC00=sm~MljKyO-y(a2tEj%Fk!m)0h#gwjVt6<8Cmu9CNLPx zYJE7nliQ%iY4H_;_Ec3>g$f!ppP^yjR)#?0N<+T?llR+;w8OUpjI%^Q)Rj70%cRBH z1Yv?hz~<|n;xGjBi;hD^mzS5fe?0wc(-)A{Y(>V^LRB?#US4(e2mRuRlxX>lq(5Dn zH(K&IDJUq2%&wSKRMgOYYvPd!=J!V#bt{27K0f-wYn_v34F=6E! zS8h9?YGIMFyt1M3ZS3H|HoAX@4tp#&o4S4pmq=`=+yK{9?ckk+Q4saV+y)k~)poiew z`6c`=JlBUZU)Nt>o%25){IJPD?g-Z8pUCQ0cvxUzpR0HhU-5Vd_Ot`cU@1o?r+#6~ zQde}Jz<@;N3k%&q`mf~Vf1Mkwd>wYcAs| zb;sJ3+lEbk4XQ#g5`uX^>hzTlNO2}4B=A4|&Q>HrN=$6x%cC3SoQ@z6%fEtG^zYjV z8I;o`d?wRKh9c%TBZAOJDjA@sH(qWrDEYwJu_ggMd9k0^q>I(*=Jew$`HPLboQnPP z#n-e?M@i}MhVu0|4ZpY-nJMa#??VjCIc*mSA8uq>Q%r)+4hWpo@i;z&c!}NwD7k!nc2{NS2OJ)fv|j4TKQX z5Vgf?fqi|od(Bf@TU&>BKiuZqyC*&E5^4GgeRtD*d6F^$2jkMm=buhU%$edYnywG&c~}-v zP(uDktwEbp^|gpx^atqwWAjgEB~6h2?=j@RAjz-V;McGHfA$bAtAK!x-{~U8`glqD z;r6rvg09>2Q2~HjS67#8+(+KTB*hh=kSJPd$3kb)-?H?tn#Z}#u+BB_V&M8B8iz_m z8y%N|X{j?Z9>`ov`tx_dJ~Aw~iFE!ZtZ?sMk3;n=3lX8Bgr8vD_hrKcu&gvcx$w)rOGo3DBcaY z55Kr=j;TC&kYqpcSr+UCDHT;!en+?e(<9b6eU!L5T^jG81d3wit#h!^`@ZZp7Q}{w z$IAWvG7m}};}Er^Jl+5Xp8XI^_}b?)07*B7hO zD@E0Fafpb75aGZrhtKT@fw=wh_j(c*LUijEL(|n!iJsg%kckqsm3KBq3s!8U&yx}Q zU3ElsbmH{0Cev|L-RI7}`^!CEmxxMcXZFkHN>UQp&)HqS9BJhIc2HZ5_Ytfhb~e!T zK8@42{*uIi{%Vv8vc!99SbLb)bR4tVp-_Dqi09ovddo1hxZ}R{;O9a5wK}`wjepnI zHH&mQIPes(D?1tJ8ba^MC{I^Bv9x!)r+vTnUVBRxDEN$48eG@oDja8x7;zU4*GG(c zW`V$LrX=VIHmVo-ieeY z)b%SjY_@>#zLMs>^T;QI@Wa2VZ&*nA!xoempva4~8<&{_x^tRzk zbJ_N%#Hz%zT&}q>cte4!0q^%>^B0nuanhz%)H`Vn#_oK_NoO~caSwaxowA~0NGEe6 z$kRRj{bPl9_`9a79CSY3BN>P4(+NXGI)ILQ=mpStag|meQnmdgB=dGCZ_-jzguX*8AwN=^ppg3c+vmfuw7K{(wLkWZ-qJ5;+2QeI#5ap%X`wog8 z*t$`CpLqeU*?pZpAbnlG{Nu;Q5l|%iOg(0^W3h3D+a5|iH?Ecivk;1<2lD7Y)CVji zFii04@sqjl6*QX!0Ww)F%lj*Rb#q$}?*k?0m{lvSp5t~d!IJZ5nS5l&w#%;$d*!*g zYfAjDIPP+EAw@6FmVMLE4oAhn>%H@VI5su^FRcF$TD@LCvfucgM}c+*_+&3Zyk$Ta z{YLH}0{A6%|C@&!2k#y0R7i0)+6^QBPnUVvO5v&(Kr9V!Cz1|FP5wU&^g)o$#=ISA zKsFGa+|D0VF#j1QVTOVUIxM-A~8=eP|CRu;O7I5q9=p+!_CuA_IAQi}EHmHsDTj zHAO9+{pY7MPInxh1G_|fR~Mz-20)_!nlH-!{#0>mkWkVtFRd*#5FFueL>;IFo!gW( zHQ$2L9Ej++@rM6Hy@eTnBpy!(0J!%R8a9)(^!x)I|Nq>9iNAh{8TZi8P-kVx|B`uN zUSVg1pmwqwFBU8or26l*Qx6YaQ!9&ebGsjmIQ{p^!XOa{DuKfPQ6U`nKhs()34rFU z+qYRT@Tl&Lo#OrX@@cubY}6(m>v6j$o2Pyc(nZWUc=gEaFrQG}RNH6X+EWLpgynAt zVyEQpUe(D0=F7Ga&Yk!3wN=MQc9&0g%~gB*pDzwSR}h3oAqxH#2iAqz`%kX84~`oxg!F@idBT zM3hMGDR7JZ$g+*g537~Ks=5VRX22452(BS z2=fcMt0VJkJy7v~qUC;Y(r11J0W1|$1S#(iWpmoUqtPh^K)(qfRg#Tk(jNswOmIbD zeuqO!CGignvH_ZSx605M@Qa5AF9uEm(b1`7)6vznDttn9C-o38am>8D0}tetM*<;R zX!&isP1lVV%dFCQ`d)VB7l%303HVZ{&Cd?Le!==hEF)&q;Mfq*d-jJ^eCWrKG?GS$ zOdczzPSMJSf$;I+4vv(*IQTId?&$j#_`sAw0)?+-N&Vu-r{e)XR`8kNdeNO-@w_sD z)1VjNW~g9fA0Ta)feqv>jiguiW=T_V;(bY$EOuG;V<%Af)Pf?eAYnR$3t#durk_h; z0|UX2mr8~KI~5>GDaJ#koxTt+T~>l>Qt?@nI~;b8osDhK8bs+b-*fkd3t;_GmXmu` zN_XLv{+n@MpL>Y@%vPPq;zq z9qPT)UzWicuL4YJ*8M4>5JST!KoWSe;KfeEXQ5EZzuDJu-uLP|&96!Fc3EgfE=nT2 zUessj;o%wUSMJ^s5(1H9%y%tK(tEjT+A-c^-q&CtZefd)UW3p;4PI*5wXEfTrc=qV z*|&o4e;R0IZB0I)`V{+*2mMHVPFtjCg>*?lwqOW^XfU->%_b4t6iTM;}mo37;Aa^x>eP%v-vrzi&^@0CYbfJ0EoTod4 z@{h>|dgXPEO1PSunsv)7G#4N#SZXZACMUB4uiUWgvbpb3LKO`ZAWLASvBZ{p$5WgD zD`~o_GkS5f`iihN3nUL9xl9wOmR>u@6PFm4D`pZ!;?9l7vuF&Hp;-|5o*fR|bbgIT z%_J!~I}sl9DS|V*25dUk@mx)l%i0Qu>9^cZH;{gtVP(EL(T7f^hK9+dpPXgRArHkmJt|H1otUC!bwlbyzM$Kz*(sK0{FaS&w7 zKZU1bWo1Py_Zyz5#d63J3DHTH}6a(y#m6@`a|(5b4Ja!N_be)#R~7Qvk?Wr zY7lE>AR<&uqyYpI9iM$V_)-4Wty>lmd~CqJ7C$(s9qH_Iww_aWE#Y;TYh`6cW=sI1 zGGXr!;XVRT*#Pk{MwL&q122@fKOjV{Dpr6cmUP(_Np5eCZ$V^aqddD~=n-@XHBq37 zm|_&wlNr^}a;I!!)ReP4#7jYVEj!EOr(_Vymc16hFkN8~sLu{43G9asNK24WFToux z@A_YV(VT}WcY&g#$TtkjnE@<+^(;8=^*--tZ-MmN^sB?1DgD>KFI&xci^HqgGV2I# zmv$tVE1;*?VOLdD-2FwfOt%9d4CTgjrU4iF+Iz4neO+r5aMZQmC4F^YD_5+(xdhrN8xUXM&H-&4<8`x#=dC0tM&Ok&=Xt*(10*W6GBWAP8rwR3k!)n7-4#tQ=9K_T9&LaqPL?4Jz_8bnlNhUFkI)DqsGyv_`&XpU%`izeP-(1zX3y zBZCi_2L9wo$q)NbN5a?m#{PbcjEs6A-^TeJrtTIIOh4KukV65p_;7cwK@9h~n~QP! z3h)<>)-I}C{z4hQ7A&}`=h4Qf%ieh*0+cl ze`VGV7>40ZKweF`q1ZyOoQd98@D7iRxH-wX#Th4}DNT@-s!^c-Jr(JnxH@9SEA7Ug z3RcrEToD+46&o)$6>osz-4?Lz|K8%QFOYlt_U)&XB478zliKY{8a|zu03FtJy0jFH z(wXuNjN{=UPnllzth;e#t9K@va~LQIC-Voabbd+AzxJ(`P67ZzDSrNSk z3_lD+*8+i08C^~e8QuhoAnWxa1Z6}>=Hf?R3s_iq_>Gm6gk;@KZU!ZL0wu+)m2D0z zy1Y}11(Ze!5E=3|ohY9hTmkH&L6;?RZvW0X^84G<38u;F_m(#=RP2xYS(rOw20>7o z1jfA5PmjL77uLeq_-Hx>2#x%6rV6qSzx=|&uM_z;gCtlO&p`4URp+z$E{`qrd>F6& zjWP0g{s++)pjDO2OJSxjAj!h<#$ z3H#_=w6ZSX)*j~Kf8O5y4Kb)uAz=3VYZNcQYNYU2J>$8<<#JTwF$GNZ9os56N=Ghzt+wMg=(M?gm3gHzBWK znZf}7*(-J}Ax5N1ZQh=5l-76cQ#%*Geg5KX{a@U|i`T zuSxcEF#r`~!)>b#p$Kd%NjSq4`usXU+)#C<{z#1R_Y!p%s*JU;@&_f!TKtYejJ~cr zyitx*$TdYK2Xia>DQbRukx^wF@PeC=xGsnKlC0CUvm;(nwusZ;0HeGVIQ|~UN0F7c z3li(TxR2$x7))AWWdDk$?Y)o#fAK6?=-p#ef=%H3)DhPwkOOTiCQ6_Qp*XFI;p&&6 z1hF?$BNK=jcQ?5|<04<~@v-4eTB)-H%Q^$WVO&LQQ0ZDxcUu6;!N-#AwUS^^;iZoG zlMlSPS5Pt=CWfome`V&>Z;@FdpelLGYrYfj*ObIe5{uE!+zj&9G9ZfH@HU=i=nr8W zQWrZCP=||mGZ4uE?Xw1NL3aW)U>sosMB4vA?E>wus3iXWT^3n_v96m|TH*C7;r-X$ z-O4H&8hS5$K^5Va5eXz}a^vra;_=(9a|@#ln(ZADVKX90I`k|1(fV^(0aY@E+6^fVPjW9lNajEARE9$~JNX-k6h=*eKLD@^P z1^O+X(!VCK0O;cts1Y_viI~WKa`_B>7+^$)d^lmUVQ)>mjc{6l!tA(x90FCPtwSU5 z)&}CT5<-qxGMWu&jsl*I#*2Nm)Nt~1s%}0j%IZZf=1&%#)|{WsTkYLq)&b1!Ma7r+ zATUWN=ZKSiiZ1h#l-H~<=Yx8_d%6r1g?uSQAEO(z5&Z&|<|@v9evSPyW5AEQK34P| zxMe7+V>+|)i7n6kw>as_kI>2@!g)Aa4Gj(7k#`dJ>q~~(p+pk`#|A1oP7DyqdmB#X z3Y>A|l)Y5ommAcPw5Z6GhaNOfu5KwF}4o9<|x#kkF47A?dr^Q(k*82`LLIxYDe|}`S9x{ zkV2pWdLZ#{x!HcCGf#R)>QH$n^eIq7IeHLfWN{n2hi(FW&zfa~;o#ZfdS+b2F6(pE zhd$=AHS`dX(J1o%sY*Lm(>m8!!10+FRXnDbzSs){WGj*lr0oD!>cdBWPX`?Wy?uvKs9__7L8R9SB zaWv}3dpy+iN>OYhC4NHo_g&ZfU;B}aK%qE5N<}0Z=bJBY#|}swKyN++gjnSP@-haI zW#GzWj1m408go--6XXUDO_rgKv@iK=faTg&ybL z&#Zu4oGwLw@k3$UqV=G{k6rIm?D-K%=troL65s>01S{a%?|erYm~^A8{q$PyKE|~{ zP)waHusQ0XqY{E3WL20)!^w_5f$n_suz>04&s~2C4BtHz`BnZG%kf%P!&xd`UR zm^M$@&hrB~0~X~;FLFfrBX!ZqGGRXgk6 zoctKoE=IqRlJcxmCGk=P{U`fQsPvDQM4V4KJCKxqPQ=p3J;HOOul#FPRm17UM0`OE z^VpU{CR8Nx0O0rC?mahxjPR$tM()Y8XxiU`ah3#SLioCG&YKcE#97_|ezPCJa1oKm zUE4OVp}yl^`?ND{32~8(oR*wHSWxP z+)$8xuqt_sEN7RN&}vQOGp^TA@*>93F?#x&iM>W5++@vh@mRq8{P8pnk*FnWgUFNEk$10w8qi(dGWL1&t7>JX1MUEFIG(O;GX`i{pf zuXpG{lilTL%UiG!mMGX2rTR&IgD4p~ka7h1y3s6lj?L2b|4GC$vS{U48G#rz%ahVV zZ;7?iBn+>%=dUy{wB9XnF-@KDDXA;BIRz72)~Qh~THf%Ge*(1YhXgn-on*~&`TrzQ zw8j!Xy6LYr2B|+pV;=HH13hO`ft$=H?5l`N`-Cu|97V`dHgIycc^yJ)*L?#@vdCn{ zhN^Ih{G7BAeWrgh56_zq#~x3v&&uYOW=&Ax2bQOwUDWf5Dlu!ORB5xmd&;uBnwJ#phw=|1wq@+05~Mch#QS|DH9^Ddqx ziYNK@Qxz&*FLjv*Ay5WZ{d)6o4md8yHiHP}7ueVpZy-0kbk4_a2)GPr z$|3{Q`vy||)YrmQbWkCls)h5#u&pm6PsY|k+;fUzO`kjh@N}#1W};z1S8scVJX7y; z1T6mUKj~{9X|IMAtJ87CO-H8$6^I-?Dt!i3tJVT;{ z{Ji!V>ZW24UW01f#4}zD0YqLD zb_1wV`pE{|)SBE4S*5Npkd*AKP-V&guyvrhaRPhi1 z;&-LTs?6^RVCHNcZb1+#k-zDNrc+4x$nbClO2m_Ry9nv*)0IT?vHn|YVtkJW=_YHO zGl69wv3!j17SeyuR1F7ue1RxzX2!%)V|y=$IP=H|jJ1sL!XgNShhGq#wWP--tnE#R zd$l2KB_6gZpn^&NHoR(hTWjlv;CUW+?!rQKU|cTb9*?0{R1;B#1N2-NxC45N8G&1P z+3z)hv^;w;s!}wK9=+l~H>fm?A|Wh)Wn{pRMet^c@bg2g%cVd%Q{yXZL-bPu0@>~@ zS$juE52AeEl)60B>14&kLV5!;D)ZPi`<4m}R_lpuQ!Bum*;S&W`UNz80xvm&qUFU+ zuviWaeDx{|f!lP1eYiVf=7D;?EerL<<#{$;rC~`81oXsZD?dCetQ&7Eut9^ppgc6Z z6}hgCX0=wrNA_DW!O5PjzlAJo4pkn_YdRlX~8A3p6V04bq+f%sBvK!3eE779!@3bw^dFU902FjSod5mp1v z_7^W+biSJk2=D|h;SteIm9~GF8wf2(AEd!}=IZfV1*bPya1am|3M2~fIRa>9P)z45 zAaZ07myVq?fD)!YU5pB<%UnoV{e4SL;-ByK)Pz~1@QRXzk~DC*Xl z)tltxyzOzX#4_LH9lUfK+C?hMgivP|L{&@w& zAoBJBEiKXxH-{b~;eBlHP!1~EG@pGH>O+htU7Kxz+ToHPE^##re%3WmxI?jT zb3Gnpvlafkrn<`J0rTSs%+ldGCAlTUOOo(j&XP4IZ8}gb0OGY{EG=l_hJhNNrrt+t zy!|$j>=pdMaWV@klF`pw$&|m%lQDuoIKAp{?QhI#gg~#3V-|q$vi8Bg+X;9vMDcJYH;=S%(6RNl1q3|h$V(s}fa;|t+GD;8ANu1+#hBJAuv50=C!-m&kDQxFHFvvc`>#aS1z80Lhjv%Ra=^5qlA-L^O z#y!7Ox;+|tH+DU*m_bF$1Ykws$#Tlq3nuObZ_lGoJ{X)5Z3kUUJH(xfk z=r*JjkDq*J>PYG&N5e>oJz#BoYatgZ=~Pe5%F1fz-WQeW4M%GP9=xKb%d4xDc3}v{ zN44~_nF$B@*9&I+&bQx@TX#$#t^uUHQLa+pRU?9_Q*n0yf6kbwk=;i$gx6h8WEJwniH6=Zw-Ee1ZO&={i_D&H(D(I|vMi@QcH1e#p>+u^9&$|HZY-P8~& z!&|nvT^K-FV!^@A&gY1QgSaZzKYFgB5RD;|@hy3)l``#~uV3$up#!m-z8}~h?0>0c ze9ny1QQYx z+LX83w|GJQN8?L7!j|FiYv-^yqUby>F>6$0DY?|dvvLp`Lq~jyL1zhwWA)2yTJsSkHc<`-_1~a#Jt1>`Q|9x;x zjFEX>v-$^sRDvRUk3#){r32C61l04Cey~=p5VB<@C*u1XSHQgW*Ie*BJ39l#gaPPD zz!voHpK_p~p_Mr;wif(yQv?zC|D$k=B!Hc&2Ks-Ux4Zs*8pE%J>I~@9{~e41Xx~!~ zuwNFWU!P#PKo}YS5FueqApWreYG=H$9pMhggd?2mf6DMWxrK$_$v2<&5_*H@4mw5s z=bf+vV=e+?q^?2!H5y7%5f5;mhKGkk1%<&h{C-6hoz;t<2ORByndzheY{maP+Fdtb zyIW}vK<%uYLVRfEx8bt#Tz>9b11%=H(5O1uf+IIH_r&V+S?!dWPoH5HX9%>D>Gm&!k82OocYA0&MHkMwn7IU7e~77 zT-0#uxy6?)wRtuGQhTE^3z!(JlkE>r$Ise-ruoiu8M=ACD-^kF__jkmCVR-z8Xhoo ztHM8sE0lucATy-9-Z#*Cr%{&Qb{?PKcJ~By;hpf?4S1XpZ8}Yx3ypWw&e z!%*yvTjRS$C13`c`r;Bwb*zpS*VA^-Yj34hXbZ9OCOG7AS{WE6ZK;^^V(^3Jf-y%G zv08J;fhF^$Yn<(T3d_%XhAyD{54c1Mbj5%3QbcNpt5^nxZ`5MvxJf6(`75J&fW8*{ zy?S1{N;{$-z3*x!({@*rX=+nA_$_DkG8 z13Qm6r>$hkPgj*RrKjbR8EN!}G%erQBp8&iVG=NJ89dwFw}HvV*3Z0ZuB2j?D`_5$ zjnhcV-t!7p$};HGJm@~eNjMRNKeqz?fCH;80pXGg()70JH(h0&s~V#|AsQimEpy=g z^FDD*mh!Dre=nqgNFhYZ-xGm6Xs0+vyHE*QUixc(ID#cGzi>^)Z?HUhEu+39Sr#6? z;}w1S@o7XpCr1rIn;X`F^+9ZQ+2xw*z&Za6WA*e(sM4M2bj|NK;mN}&wc7U!qt|Z` zd||8eR17|8Pu4A>>v}Qc?Ek~2=#D&;{^C)ZFXjy|c*{^))3}qQ$i%x_3>aGW36?pq z?9WW**3{9qh?d1a;-PQ~@FMmAo{}@&XFm+V2Mz=0peS(1`VSH`1Qt0}^eMu9E*uO~bW9P}cB9{h&wey687~&%$4&nUp;vQ>pC&m_&oBPM% z19I7@pY=*Etpe zOLA9%T%VzdQv9BNhvtYfss&E&zJ(Jd9G}cS0u_6?@Wj@B3=DDI+$T`mOT zFC#QIP^hV0UtPML1IvXm3#g*_5h~{TXhEW*wA+U63m}OjOuECWhrns$dWle;A+tb5 zMcDrjYcn&7L-idUi|awRp;5!m;K#rj(Ddl#FUQW}mQzu$e8TQIe?uvH1lex$){owu ziqD)VK2i-T*5;`=FqTk*5BX5_=iMK}K$~!qqCu1=o|X3Ki2*V2RQ{1coZAA3=fPK9 z5T@dvo95T~<9y{tprft5v(xMw8G==qs&Xhu1is3`*a%S5gA8!Lw&NH<0Q+2Dp6mmb zKUbaf_U&F^)L#z3posxZ1a_Nz%dhC0C;Y&Nnf43JFIBB6^_IY1QLT2IJrqU9rzt#< z4;Eu)zK1YZyZ~Crp-?qQ3zaJqc{e80>L3SAYxOUC_ux8V9QshnySN1RWwTHM$?tz_ za*+|x!n5AqyO2)fui6Jh^`8lb5|8OL)ng9f%TfXUz;MvbDSsrSKpBEhTign03XW=! zAB`rd?>v0zxTFC@*%id+Uw~tm8nmS(@NNRJy9a#V=6R8jyk{(STq=&G|xJhz! z>B(l3wO&N~U&!0^r{rx8j>35Te?}nsb6%|}`1sU^?}D<#&6`L<7|<_ljBg+Ph)3oa zoI}|LxhIQdFSYV;;ei7^AWzlJWK-1oYc1a)cfIVURx%Lwd`a_9Bnu31C(wMk!P9 zAE0NDv4G}@vGkaSR?!;T?48e1l|{@b8OXpQfogez)H~{YM?em=n6f!fdQ%C0yiuxn z5=>+Mz{LsbUZ2bR+v`KGyZkxe{}#yb>&>FNQ9uc)h?_3A)uO%#L3Yih$^3EyMzn?= z@bwNyE13w!qYz>b;E`91rYVY!P~As(w`W-tBPo~xpI=iCnre;6JCUSbs+M{jc>rb8 zfbmwYE~EEFH)C|J2v~zgOXL7e7PCrul=Lrzgz4+uk$|8DgRPeR#?*Wr)2vzyu z=z)c=EIZFHykqWaFvKOQSV=YkQ{ms>7Hs>ulqM&|&S&Q)TB$@Hfxe4LMYGl(QweGN zZh!A;fRRB<`M1eoom;LCgVZO6)ZA%Izsb7utbk;aOe?6);x&hn#9s$odw-)}FeUXZ zC-YN5wPM&5Vg$ha$(HwXysm-3R>u_%wI8pt4`dedPTV^35mvA^NfxX?fSSLcGvZ{v zCJa6`>d+yWvp__P{aCmg5N26k%_SFuhI)9&3ywo`O7%o=u zU!4GQv8+T$WA9f%xhum;9h4uaSulR>ADG@D@w_i-B;&`#$v73F$tw{_0!M7I*UA+g zS3)6Y`>Ra860qO@ulj!X>nrUejk#n$QE3eFahZ3HSWO{(lwk{se_xn}`p$mI|FsH) z2n;&kT)$<+Ki*_!p1;U7f0oHzzw2Rp@aC18-sLMb0-^@1#jzKeTv>fqcHoO8|C*;{ z%3Dis(0XpkiRhFeDF7ypg(KMs99)I>_8u8DB?XTi`M|nc$%s>zF?}DZv*%&d16<#h zoTA}G_s`Uz)zX_15_#fEgw*QgROf3&SC)0`)D(8;r*(N#F#mu~^6LfcU|3`<+ll1E7Gq?7 zNip5>+LN9$<9_MWJKaCj@-4gWzeL9^)0}zrTK<-v9W2t-UyGDhOg?oUG`Rrib{!oN zKM+v79h`L~qK1oLFY$Qa8XmAZU-wmp7yGhA+qArM*usI&GkSS_RyVGHv?B5m`oTz` zd)#zmK(eU>Z=g$IZ^~{#*nd7lJd$-UguFmUuBGo7h4lZq)SIm^5}2rF-o^Ew<~rHX8a#P*4Q)5AqIr}>&5rZSo(~&8V|}JmhH`h9FPZvZoLUSD*zX%_`XuS6 zYT<(=i|EC9PT@z}{O@{;*?W_BXy>Gc&U0vfF&l@tc zx(;_n8tj--WyyC39i)W%n`F<$S0-mm9?$*yE+}r@X?zb6WFI)%Hz#!rr zRrb$EC`E+)bxavwL?q_7ai_hEMXRI;-k19Geafwm_HRoTe8bzM4X83{^Idk$=It7( z44}WQ=dnA2_bP9tAid1!%%TE=F8vz*`(_jsZu|rPgXp6L=cP`KUu)8>k99eH#8I>{ zIeKjhGK_&94web{VHMHGaDM4h@l8pMvKwQ?*9*X?{nt^Eg&XrHPXp#q zC2)p7i9$Vvue?t~!zmyjpfG=;lcS^Uq`A%=Zgqy3|WH@w}FSg4npnh$IYp- z?iG1GQQ>Wf`}k|O_zRZiYi9|hLOQ`9F2LQrP@lQ=dVx`0$g87A4Q0yP5RX^gZVhDK zKi2eMTN3TwE()xOFh~{lTKYrkxE|GPV;^X8o8XlF`$*G-@JGmiEIk=>$4RUpVfasCr^vO%=M2?pbWv3?CB?TKaDZiVHx#U?x0C>pbU8qpRf+{L2CAvn~DzRp>>5# z*>~470)hfi&p)!?2%U%%aR-(__UtEP@A2kG8v34|#mJ-!xb`57g&dra(4Hu>{!%C> z^cDH+_BJM0UA@UB;sHb-Vvjg>|KwFDL5(~-iiqhur6$EA*+@|cItPNDrsn2W@hLwH z`dnOpn>;y_s(h@=42kjBUDMjygbY$Jr<(+B-@g4&0_1R+MYw8zuYwS_*L04kJ~ht+ zhpBV6l}B$|zn-5zd8c7B^5J2kp^eS;?VF&P#jDRiS&tNrQeY&sM|@eLQc@YP=1zX& zG4nDsw6p`soZL}(zb+2g`xvlf?ES?pv?skQ-J;ZGy-H_g3ljqQ&WlrBETR%C&raIq zHCvn{k2~bSZSBWUn~;!T8Gfiju}fBW9dz{P%2d?z5Mg;l>;v#-uX@&DdG5Awxe9>^ zWr*%Uwg?3*I^v`G-(AM0WRZRSq}TZvADl3?-Tjj{&RuLJKYnUIWBSCL^5xB1o3N|< zkch^*B1}F<7r)y#zE=_um|CybL~c%BxiwdDS3W*ml5ahy;{M&Uz%&1`7;`U5xFg@1 zIYx8qXk1+;?G;#wJG!nD|H#nT_@z?^Y@nA+9E2@s1A2h#N|exTw0;L6t<`6zP47qw zU1T5vXdeX$mdy5!9f={Qpzr#9!y4!af87tg9bON>u?{ipHM~^b`7?ft_3RW@m-}(o1L?<&FD*e*sE1F*_lq=$7OmTtsZtgme@=Pmu{Q#1=Ng|QnbWb46!xt{@)@jDjE4>Y|ohK2080fYW2EQgZahSy- z_KT5Z!T9}}8X4kt`7+eHtmRCuz6_#Obi&j!`?!N$@#?~iGG{wWd66DW>J}28F_qE+ z@RQ>S1f_rGsPs{^MD))+1QT5okjvy#66|InU7$2)kJ)iO>mkam?v87&Y)!((ag4!x z7t1kX~ro$nR86DTqcj1h2AQIrS037m*L`yU(_J^^(kG5 z8`Sb+@DqgoQcBy$Er6yAIa+@zhiUNG1J@$mPTi+5?O4OU9e?&V$vo?~QM7EeSwE0a zn~o%m^{G8zV^smDoH)es!EdNMJzhR)6GDFn#h2hL^bflK2uZtHe(L3K>nQx1=|2~X zww66RPcT6%xU_VYe>J?%xeny4=8NdZD-!MVIJ_7(`$P~}r7Yyb`u$qpE$ev~HD`W0A$j)D=; zH~u&_k|anOA5%}7Itg}D*-o%Qaf2h_ZLywVir&B#-)DDcGmw#e;rWvMg%O2uU-fke%nNf;FR zD$z5zR`l-`2q(`G?bV8!iA`(^_WHOwks#&cK$(8V@*0_Bff`DX6OM|Oz=b!~%rs_K zJIJ*2{&P~eo`6fU!XD88dRNXF3UkU{jo3KZd4@uMZ3f~YXE*mWbHk2Z>S5iwW(xY9 zbl;Ua^3)9u<_qPh1`Q_4;(Cs9fj<7n2`5hlyW9OjXEL9?xn4SlT<`6WcOwIlS*^aX zdU+<sJN;aG-9kC)zu7r>nG$7U}SH6kjNvbv?Bjb)OUn7P+u$Sx908*5IFYrKZRzmq=y z19-%+f~AsA98y1o7LpjyC1J)C#sx|Hsf9VUj0;r3VfOv286wL4e&hq||43^eNBR(S z-M$>0j#%jdYRcF1Dkp89m+)}77{?}+uhC02Ck5BXwCFmu&Iv7zYYtr6kTX z=r3S`bF>BL=O4#Ecv`HrtT~1(0`DO)yH2O+-Un&pi7u>Ynr%R*B*2yVBD4?j$q+ws zU^@>AY6T`SD6RS$&ts+^P`Qn zsM*^AiAN1U>gf=E{+8R?g+a63&ohwH+P!^0q5~k|NT2SqNVQp*nYpOX{r6ehU>$FQ zmTG-}AL5$qz^s2RNK=Drcp>+o;)#vO-hxM%^0v|lomF!a4R|Obp(G;IWcaHPB%)n^ zXq)>H!Q3xb!S~hBxB|d8WHF_IlR-jnBHE(E$y?+Eg%M!*)l0sn^JngbSJt!rezU$U zYQUAU7nH~Ix0TkqKDQt8Dd%g$YIiw8Ic6FV@%no!OzQ8dxP_@NLeNRkTO>ZVF0xWm2XGZ=Qgrkt|FyN`30SzkR%<`{hE=Q>Z+390$oh=!87_F+E9C5 znu_eoXEyI}%iKX-Sja5=*u3@S#Ytt{y0Efzn{V0fw^~i87H3n_zM;0%BoNa6DgLq| z*mW4BvyZ_op&;neK}Jp``w+dqHy?6X3a#A(&wpE+4`?R8Gm6b6NQJcsQL}x9{q_N}fYF`x&VyDs|F>{(*X`p|J*hb(khcpZdUP0aR&w|;g7FJ2TVK?YVqJnk z=v=vM$zdRRs#821pQ72*naER6uVuy}qP4P)sMyD!#8_jdHBB)QTfK7qUQS!5uWV(n zW_4^KJm_ZDA}{(>6SdVGc)417e(8+w+z2A~5jheWrrVcwu3k7oR{Q3O+xs;gYF_fO zqrX3EzknZ!50~SqCfjQt`$N3FjHnrnwuqyurj2`G?lEYJjb$*@Sz+bys68(?$$=$U zFnnl&N7To~&ONp~KNn745d%^E#oKS2&(ATPKz*wxRfal;ZWP%>3sibewXy3@<;y52 zj&U_eg-ThSsEBCpyCB{hf)`%~(a{KLw#H(H!`3({G3jIAK{KLyhvB6e1?3bsh<3uS z_lK^^aoE3Orcmp?+)c&ZgM- zuyBN93*O8Yw?LyVh5cPbZ^4#C?Kg z*Is@(#t9j-m6$FHyi)E{%Jkz_vnJTimYttpgU)F)Y(MeUqS|BeF7rPtHlo`S`V-Pg zG^6q%kRuDFr=CZIPoF?}Yl~1ZG|3(*Q`!dv8rr_=mP(R>W{U^ILmfqKj^phpX-5TI zi|4pUm|~!36!`>=sQy0A&;DT%q?@X5DN&Y?lm9g(mw6Foun0`O{NeC5%mfR*`~41a zj)#`vx(?Or`5$DW`o-Mot_JE;e0SMS$bWkivi9Z9+oU}Qoqmb=WQC)=47Aedui!|1 zF@&e-(|%tk@W~%K4##2cKYzy$h>r6<^%7HStW(4|5#b{+MaCzHJw(Wy3&;znd>l30 z0Fvi|3z>Px=jyFp2hd)k(DS^t){x0$sA13mxXxaS)LQrURO5orDGW;%Vz6SC?bSNd zz$h4p6T>}JE_nY_sY+FoaYqVj;Y`!REgI z9;+ahTbi|~6AWex3aCK=%fvOQ)^li2P-Q=B4`KRa=M;)3QmcgSs>v6VQpk>kF7JJoZB~TTLS=l>c+?HRCNb@#Y&kUpO9J zfLyKObVD^(1JRB)dR#q%e$p*k9yw5iQY&rF-y)x2R(`($vmSZRaBeEx()x~`uL?c@ znq_&NL<+&FXclwL>)esF=8Jden9Q(Q5J~u=l+u;kvzVKO1}|1k`g9h1Y@TrfqkJ~p zN2a>_LK4B>Dr7NhadRITIRQd9zR;dorgntZvsyqh-HiNSc1$JjH!f9)*@TUbMuuaqF!B;rnd^R zVh6UZj})PHcQKV`5{X2dZ&#gm1i|n=Tlh8Cu-qQ}UYBt3EWh4ed)X*>h>Y#%V85^$ za_(KRRUBh>XL%`a+sbV>9x(D%|Xa5j~c+hm)dQ`&X}${#CZ z?+28CZ3iIqht9#drU=%r~))uZX}&=hNVgzRwLA zK@C#$`Rc5mB3tCru7G^>k+4##^4_jB!Bb=`dO@#G(sFtcY)LM1cn#AWq1AA@0PNcU z^M6~Db<6nSj{d8>{X1j==iESGJ7hql#ofj4%iD|(_w#Cr4!7zOa+7AqbrFnd_ER6b zje`gydn78gLqvL++f!$`uUwI{tJc*OO(SccD3FpEuhc&7{9E$_pJ3Z=diBZc#=?8@ z&U|jV>QXN4@%pXvGYWw~&RP2AR zY^EB;kMB_Seth`C`I1ZR^p4AQ4HP7K9z8?t<~gO5dXvko=@>=IK`53o(c}w{ust)j z35FPKHrnHRbM$^8pX20l`ocUpQsw9FYEpC8T;HhiImSi^v`QHWC$l~kXs;Rlj_dc| zY80>K9efqh>(q8jI?UHhb=^o+FKc4IK$N2`WT(&-k?tm!?I5^MorB9*UN4{x@Zm1M z8uXLaeu#lHLoEeI{s_P}T3ew6`AfMcgCs$|-N(;%5S!ru1nfU0{SQ%66k!gURa>ew zxja6MY)2R73h-O@2RbO3GPQThB>{GO84)}t`SY*RxSp)Svkqj~_QFdBYFgX3K+SVpd$tfJc z1eS+kg;bB5Qk;x1UV;c+D|vxlFI4Q|0057I&NxE==@b%NV3UWz)SzTt1rgMT4!oX2 zFC9Ux{H-Z9cu%Zgr(kf>iRMnXWozFHF-j^qhXJd6jZBMYHX9n0gBR+C1K*NSP#Zvl zR@albP;8o0&K8f&A2@m~Bg2=A-s-`?7-MRpc=Z~4XWl*e6d2e2J2N4)x}6ZMVq$1I zMs$rfb?g!PaCfwTd^#7D3+T=$p(_GoCoCY??hHS;r?s#b&5ov4rI}n#p zTgWbAJfIR@H_2*d1g?jVburGef1o#GjBOHNvslS#Tnwvc?JLtPEEKl49FCB#OX5?oK4Ldt5;?pdUIKk-7x*}XRx zwGmBuetu+N#6A!=hs1K}?dI^TwbI$wLdU-vv_N>Lx5Yf8D+gf=W-=8({2$IvcenC1mx(z;UVBDIOxZof+(Z8^lu_>A z!FBvFsio}8MKlX@;2R{+*{1%gUdOIS5fS8W^b=P9_NA;BZiQRsU;IAy(qNJvqP&j^10M}LO z)7fry(4^sRajq~hyMH$bu&XhJ4Z=WzAv2^99=0oxK!qmGfLVH#RX>B?_|Splk0}@8 z7|b4!6!AX03<9BGt4eTq8KkJ@0@J>{kR-1zpraMol4ekz6!I6bljrFnqWWo}_wPG# z(o0g5mj?!E6(D*6@m&Oau&mVm{u7Zegox?^DZ$3i@_m`~y% zY6fxLaMKlm3X2U1P#%k+)e#gFtR-cu9Pa|_cij+%`ny&b*%W(z;=Gh+RfQNJ-KWvS zbx5N7Se$)o@E8BUG$Lfe{Er0vE3`aCt7xQ>zu@s3z(M#*hk^3t%Upv$@(p}UX-?N$ z80#Q4!Of={Xm*2N@#N7*)YBW<@r!Cm4#Lu{osC;d&vlq*-?srMe$Q8r4YaDi8n9 zx3#;NY5J7Y2ETaK&KfqC?JjCm6g}G-bXNG_VC@LlQszzWI!oUC8)x~IsqUa8z4Z<; z$Zfb<#cn~8I9rTMD*9|5e`|C<6qb&ay{lTgke%%69jnA%m+hk z#}LgEr2Chl{|4!>MnEJxHM4Nx4(|oN1d{Mg#5&tA109#fb9LNcuv?6n^Dn9JE6jdX zqKh&6X9AameWBdU?al1W%u=>!Y=Hwt(&k#vr>UZ9X`f7(f(d?15BeHxoW&3C7l0Q8 zFxbJ!l=on|OXZzC*Z!tykPv#;9Wt$sJT++;#Q06y*vgvjSu_|lwu9ttU4CZ~k^U2h zNksvZHWQS6j>-~;mY90x8fICiHm)T1jO>Th|DYyoGoEn*-4Q<(06U>>Fvs#>Ve79HknBeq!M{HwvVglZm<3fJscW; z;k`)Kya|0fjsWj6a*wM_%)uEkC#M6tr>9x6g;rP4{T-S5r;fBjl!u; zFa4DtB<++;Vm>d8*(|ADj3@d~?NXyeP;^wg>Gj|(>d#unQ^cUutUY2S7-(&D{W?@fdsaR)oM({rh`!;g8}cewZl8YKcfidc8R^Ey+H&tl9fiD&4T?P`T8_?F|a6;{sni_{*ZZ zbY_U-dd32GXQDa`Wa-na*9T?=Bu}L1-Wn0!l2z>Kt2OIydu(BsA$>%M$tb_GtEse2 z_MlH`pJao^@$i!eA0EDPg4f}uavE+!@3p;m%Z!T4J+Wa!nb287wGdxgOp7>|WKtb= zx(@4u_iQy-d2hsSoiM|8tnQ%Oo3abP-nh}$ddn*1xwwk5{*ec4uH?bd?wpS5Lc!B= zb>#6BB@{PUs+YY=nZCa$ZN1&CI?xrbV`;VDmM>ShVxsuzTmz4N5>wKxGVLV453bzo z4Z_EhD_4FvWJ?d%Txp-EYcZCW>Tg+P`&?Dk8SpW*;h?L)g(e06ngjhGg89`mPPCn! zRLHAt+R#yh?dXX`(GzUsp(-0E%3ZSgz`dIwbf*fjqZ?V*ag} zLiG6@i33GB(%*8mSGcuvY|b1-ZS$!FYcjV^1PBI&Vaw}Ka`ojW3s^Df#Md<^m*$m} z=9=Ytmf42aE}nX#*!4C43~O4QBh$qnk^p1v&3Px)9Xy~K#)t~J5iM%Z(!S2bdl>0~z?!lQ46KkYp_-CLtz6N^V|6eZzeaf=2^MInS469dJ R4R3PYWvFMWTczz1@qbAFSmpo# literal 0 HcmV?d00001 diff --git a/docs/images/05_DiagramaL3.png b/docs/images/05_DiagramaL3.png new file mode 100644 index 0000000000000000000000000000000000000000..687e9ccc23a27f74738aac33b78c60a632987aea GIT binary patch literal 36270 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%0DVCVInK--HX-i^w6c&+kO$v(>9l=Hl$($$ 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 ZdbdqVfb<%t4zHES{ym3wr|CNc{x8PcX8ZsE literal 0 HcmV?d00001 diff --git a/docs/src/05_building_block_view.adoc b/docs/src/05_building_block_view.adoc index df5c29c8..212561f0 100644 --- a/docs/src/05_building_block_view.adoc +++ b/docs/src/05_building_block_view.adoc @@ -6,207 +6,66 @@ ifndef::imagesdir[:imagesdir: ../images] == Building Block View [role="arc42help"] -**** -.Content -The building block view shows the static decomposition of the system into building blocks (modules, components, subsystems, classes, interfaces, packages, libraries, frameworks, layers, partitions, tiers, functions, macros, operations, data structures, ...) as well as their dependencies (relationships, associations, ...) - -This view is mandatory for every architecture documentation. -In analogy to a house this is the _floor plan_. - -.Motivation -Maintain an overview of your source code by making its structure understandable through -abstraction. - -This allows you to communicate with your stakeholder on an abstract level without disclosing implementation details. - -.Form -The building block view is a hierarchical collection of black boxes and white boxes -(see figure below) and their descriptions. - -image::05_building_blocks-EN.png["Hierarchy of building blocks"] - -*Level 1* is the white box description of the overall system together with black -box descriptions of all contained building blocks. - -*Level 2* zooms into some building blocks of level 1. -Thus it contains the white box description of selected building blocks of level 1, together with black box descriptions of their internal building blocks. - -*Level 3* zooms into selected building blocks of level 2, and so on. - - -.Further Information - -See https://docs.arc42.org/section-5/[Building Block View] in the arc42 documentation. - -**** === Whitebox Overall System [role="arc42help"] -**** -Here you describe the decomposition of the overall system using the following white box template. It contains - - * an overview diagram - * a motivation for the decomposition - * black box descriptions of the contained building blocks. For these we offer you alternatives: - - ** use _one_ table for a short and pragmatic overview of all contained building blocks and their interfaces - ** use a list of black box descriptions of the building blocks according to the black box template (see below). - Depending on your choice of tool this list could be sub-chapters (in text files), sub-pages (in a Wiki) or nested elements (in a modeling tool). - - * (optional:) important interfaces, that are not explained in the black box templates of a building block, but are very important for understanding the white box. -Since there are so many ways to specify interfaces why do not provide a specific template for them. - In the worst case you have to specify and describe syntax, semantics, protocols, error handling, - restrictions, versions, qualities, necessary compatibilities and many things more. -In the best case you will get away with examples or simple signatures. +==== Overview Diagram +image:05_DiagramaL1.png[Diagrama nivel 1] -**** +==== Motivation -_****_ +Se trata de un diagrama explicativo de la aplicación y sus componentes más importantes, así como la interacción entre ellos. +El principal actor, el usuario, interactúa con la aplicación la cual consulta la base de datos de Wikidata para recuperar preguntas y sus correspondientes respuestas. +Además, se utiliza la base de datos del proyecto para almacenar los resultados del usuario participante y para posibles inicios de sesión del mismo. +Esto nos advierte de una división clara del proyecto en frontend, con la interfaz de usuario, y backend, para la lógica de negocio y consultas a recursos externos. -Motivation:: -__ - -Contained Building Blocks:: -__ - -Important Interfaces:: -__ - -[role="arc42help"] -**** -Insert your explanations of black boxes from level 1: - -If you use tabular form you will only describe your black boxes with name and -responsibility according to the following schema: - -[cols="1,2" options="header"] +==== Contained Building Blocks +[options="header",cols="1,2"] |=== -| **Name** | **Responsibility** -| __ | __ -| __ | __ +|Nombre|Descripción +| Usuario |Actor principal, interatúa con la aplicación y proporciona sus datos. +| Aplicación |Se trata de nuestra aplicación, explicada en detalle más adelante. +| Wikidata |Es una base de datos de conocimiento editada en colaboración. +|Base de datos | Almacena la información necesaria para el correcto funcionamiento de la aplicación. |=== - - - -If you use a list of black box descriptions then you fill in a separate black box template for every important building block . -Its headline is the name of the black box. -**** - - -==== +==== Important Interfaces +Las interfaces más importantes son las encargadas de la interacción con el usuario, aunque irán cambiando a medida que el proyecto se desarrolle. [role="arc42help"] -**** -Here you describe -according the the following black box template: - -* Purpose/Responsibility -* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics. -* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, .... -* (Optional) directory/file location -* (Optional) Fulfilled requirements (if you need traceability to requirements). -* (Optional) Open issues/problems/risks - -**** - -__ - -__ - -_<(Optional) Quality/Performance Characteristics>_ - -_<(Optional) Directory/File Location>_ - -_<(Optional) Fulfilled Requirements>_ - -_<(optional) Open Issues/Problems/Risks>_ - - - - -==== - -__ - -==== - -__ - - -==== - -... - -==== - === Level 2 -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 1 as white boxes. - -You have to decide which building blocks of your system are important enough to justify such a detailed description. -Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks. -Leave out normal, simple, boring or standardized parts of your system -**** - -==== White Box __ - -[role="arc42help"] -**** -...describes the internal structure of _building block 1_. -**** - -__ - -==== White Box __ - - -__ +image:05_DiagramaL2.png[Diagrama nivel 1] -... +===== Building blocks -==== White Box __ - - -__ +[options="header",cols="1,2"] +|=== +|Nombre|Descripción +| Frontend |Interfaz de usuario. +| Backend |Lógica de negocio y manejo de datos. +|=== === Level 3 +image:05_DiagramaL3.png[Diagrama nivel 1] -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 2 as white boxes. - -When you need more detailed levels of your architecture please copy this -part of arc42 for additional levels. -**** - - -==== White Box <_building block x.1_> - -[role="arc42help"] -**** -Specifies the internal structure of _building block x.1_. -**** - - -__ - - -==== White Box <_building block x.2_> - -__ - +==== Contained Building Blocks +|=== +|Nombre|Descripción +| Log in |Permite al usuario registrarte o iniciar sesión. +| Interfaz con preguntas y posibles respuestas. |Pantalla donde se mostrarán las preguntas y respuestas. +|Estadísticas|Pantalla con las estadísticas de los usuarios. | Comprobación del registro o inicio de sesión. +|Manejo de los datos de inicio de sesión y registro de usuario. | Generación preguntas y respuestas.| Lógica para la correcta generación de preguntas y respuestas. +|Comprobación de respuesta.| Lógica para la correcta comprobación de la respuesta seleccionada por el usuario. +|Generación de estadísticas.|Lógica para la correcta generación de estadísticas sobre los resultados de los usuarios. +|=== -==== White Box <_building block y.1_> -__