From cc9fc621694239afd9ab404067715a14962a2d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Mon, 31 Mar 2025 14:00:31 +0200 Subject: [PATCH 1/4] Grid redesign --- apps/website/pages/components/grid/code.tsx | 17 + apps/website/pages/components/grid/index.tsx | 24 +- .../pages/components/grid/specifications.tsx | 21 - apps/website/pages/components/grid/usage.tsx | 21 - .../components/flex/FlexPageLayout.tsx | 6 +- .../components/flex/code/FlexCodePage.tsx | 18 +- .../flex/overview/FlexOverviewPage.tsx | 2 +- .../components/grid/GridPageLayout.tsx | 18 +- .../components/grid/code/GridCodePage.tsx | 650 +++++++++--------- .../grid/overview/GridOverviewPage.tsx | 111 +++ .../components/grid/usage/GridUsagePage.tsx | 75 -- packages/lib/src/grid/types.ts | 52 +- 12 files changed, 517 insertions(+), 498 deletions(-) create mode 100644 apps/website/pages/components/grid/code.tsx delete mode 100644 apps/website/pages/components/grid/specifications.tsx delete mode 100644 apps/website/pages/components/grid/usage.tsx create mode 100644 apps/website/screens/components/grid/overview/GridOverviewPage.tsx delete mode 100644 apps/website/screens/components/grid/usage/GridUsagePage.tsx diff --git a/apps/website/pages/components/grid/code.tsx b/apps/website/pages/components/grid/code.tsx new file mode 100644 index 0000000000..5f61370cc9 --- /dev/null +++ b/apps/website/pages/components/grid/code.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import GridPageLayout from "screens/components/grid/GridPageLayout"; +import GridCodePage from "screens/components/grid/code/GridCodePage"; + +const Code = () => ( + <> +
+grid-auto-columns CSS property. See{" "}
- grid-auto-flow CSS property. See{" "}
- grid-auto-rows CSS property. See{" "}
- gap CSS property. See{" "}
- place-content CSS property. See{" "}
- place-items CSS property. See{" "}
- grid-template-areas CSS property. See{" "}
- grid-template-columns CSS property. See{" "}
- grid-template-rows CSS property. See{" "}
- grid-auto-columns CSS property. See{" "}
+ grid-auto-flow CSS property. See{" "}
+ grid-auto-rows CSS property. See{" "}
+
+ being Message an object with the following properties:
+
gap CSS property. See{" "}
+ place-content CSS property. See{" "}
+ place-items CSS property. See{" "}
+ grid-template-areas CSS property. See{" "}
+ grid-template-columns CSS property. See{" "}
+ grid-template-rows CSS property. See{" "}
+ grid-template-areas property.
- grid-column CSS property. See{" "}
- grid-row CSS property. See{" "}
- place-self CSS property. See{" "}
- grid-template-areas property.
+ grid-column CSS property. See{" "}
+ place-self CSS property. See{" "}
+ grid-row CSS property. See{" "}
+ DxcGrid.Item tag and
+ should be used when the decision to follow the Grid layout pattern is assumed only by the parent container.
+ Ensure that you use the grid items correctly within the grid container. The grid items should be direct
+ descendants of the grid container to ensure proper alignment and spacing.
+ templateColumns, templateRows, and templateAreas to create scalable
+ designs.
+ placeContent and{" "}
+ placeItems strategically to control content positioning within the grid container, ensuring a
+ well-structured and visually balanced layout.
+ grid-auto-flow property. This property lets you
- control how the auto-placement algorithm works, determining exactly how auto-placed items get flowed into the
- grid. Use the gap property to set the space between items and the placement properties{" "}
- placeContent and placeItems for more specific controls of how individual items stack
- or align within the grid.
- grid-template-areas property
- is used to establish cells within a grid and assign them names. grid-template-columns defines the
- line names and track sizing functions of the grid columns while grid-template-rows defines the
- line names and track sizing functions of the grid columns.
- DxcGrid.Item tag and should be used when the decision to follow the Grid layout pattern is
- assumed only by the parent container.
- DxcGrid.Item{" "}
- becomes very limited and therefore, you will have to wrap the children with DxcGrid.
- =(@@i%0%%u5fo^+dnfWf^}Ny9|@=J{l< zuc80VP|7dMeWoFf-W=k(8|!@XTaJ|T?svxWn9;A)H>xHnGAH}1D=K5zjG}_(DXG3o zR(Co3@7W3=#uz`>+K$OTv7by*693((8ml78Xf|^5*F<>W>cPDNe++bJ&~u6~;m4!- zS=EB;w?DKflmUDC>sWfJu*lDm!kVpsDF%&6+HanfU;Mx&vOcYYJ0MXA)lJiWU1l8q z>5jEj?b4wvCnVsV@ITc9URimn-=0)9I-llPyQ}r&uJbFCKkN_U+jz~U3y&LrPvrn? zesDh6HlYyeT=zp)Iw0573L+6U2A=|MZVj4;TY616S~{?$(xK~I($yjWef1xZ2A*lmYYVVVK;Ftn DiEj>I| Zx ziVUr%MWxz3VrmWoIg6X4T@^AsF ze;kY*xiTVEw&vOn`@F07DS0>QkWZRA)>;CUb}IU!nZJ0tB7po4tagy1{Nsc%IdlYr;SJ2 zH$-indwA9>`=4PZq5gLP`Eu$IVrOTyEcOu~BB _+JVWp z8IV&~a8HlSP5c{NKSgDJyDQ6O!U4$&FCJex|95vU2)-U k zssY(T_^*?y==%pQ5-sV(YtlmeSezVFk4D{#-ls)RkY>6%F%(F9jSdduvany#IvTaf z#IOG^cA=ev4~nsL#?+fV-9%#5Qn$8EV7F&Xb3Ca_jdojuf-hL#x_koN)d`tqmHY-3 zmZ8gcL;p$@BS*t#aj;aWDuYl6nD{VoA}%{qBO+qHu^bE{`g-MVbH%dF60j&V;ck2C zgKcneeR1rM>QP!D*XP7+@wb9mNZHTH@xKhG%y{t~7XO*`u)STjz^d+p#)`e8^3X z{W^nTI-pxaPOAFYoOOeXN0E`f=;frw*RE02)tWJF>d&R{cl&ItI5Pua^>N%c2LA+r zYDX!pk;erLE*STj-WdGF?w HJ4&k8#( zl>sSTQ*ZvV3f7Biv*Il@Ag@}-J4lMP2X&V#yek=rcVw)@JJ$$i4s~+ud|l$2I{D;d zy@C7^6Z=>VXYL@eF4)rO=&z^7MoMAVgtztd7dP9 _@Zos*jle**rY6lG$4mn!1 zOu_bBT}dAkhgM2JR^KEJEoFt@k2uN3nfvIQWQlr@Q9be9&6>4E2Vco^0({A@fA=sU zQteuwoXkSyyp%jL-p#~PA}o4WW4{kJ$MD5*k%_N4;!n$sKX*qMufAEVH`pLAJYi zkV{(}bbmxe`sOb$({9G(C93sCyHDBIT1pIs;;-gP-^8HSRs5>*FA8{@30C?bZM%6x zPS$F%?1x*YELQc!X@x^G(4qYyv4@4g<%2_uXtwU=hY8MB4?olEaP8h)+m;7TI-n;g zzOWJe6$lNa)7rT9aSv;H@i6uX&4-7_WpVfWKHI*#sep1RkkS=(3a{IIebAJZVM1!e zTE%ym`g)*No?k(kSA~nYT5Y7L7G8iIVO0mMM|S_^`3y?09vbv2x1NrN;mcg+)Tor# zxVd)sdCJt2-psI{xiEVj`nMou_8E`;aH_|Hc#{F1kl{K=!27Bz&BJFj;(LDe!AIEb zuBod@)k=oO{n%#F!;O`#zC~yyUGVc*JOt9cu>sZG`QE#)QZeh}tFV8|+eFD}{nqh` ztAnIv`@pEM_g}4FrFh7e8B}_VF$wHhnf;TJm1#F|(JzZ_k&l81_2kI@zvd>NUgz=P zgt^y$V<(+}{>`U*>QS@$VmYiOr*?QeuznA7W5VTpupxUEtixW4JytBtG}ad#F`|cu zI7^fz`ThnUz%HWCg{;Mj3SQX>kvE!H*U&Bdq>+WF≶1KtOu0e^zZ8+&hwV85GFN zj!aP1$K4p` SjiP&(Uac41tG2OMD z2_k-3LbnHZ*pge>rY*@wLLcmHtYK5}U0owaQsr+sQ I?5UXK> zP-X&I5Mj)Y3CArTRw*z4z`V`$gIJxCaB5p#s9nCwg|5z$yrV;zTC4DFoAa3_QJ!Gm za7otl4N4DyYFl(0_@u8Jk$^uAb<1(f8D^y8(chk~e_4qKDV-gaydJ%Xj!Xeqq*- &bQHb&vz?CnW|m zExVaTGg$)f_SHoG_!jVnk=QJ->$R8c_eSI3vtameYT8SmJhVJ*MH4EjSsDDP;&$bi z&wEFVtvk;0v2A$0;kesg@7C_OVXth55V-c?J7Qu)nG@tAb=kUmAJ-!hc@;bJ_n||V zpwGcNN`V$4hvf1Iv&c**=13Xnk)vE|dV2~{VyymXJI_5?kt0OBmW?1zSG}z9uc$?d zhlLrh^d4yU!M_P2@;RM^MMMzxM`n k4DFRdo$zl?-@Mm0^*ZMkm>q=q hsw8KM5%|oP~C?f zF*(=)L%&zSXDd%OlSTFZFJ>Vpr{2gEx3?b7Kei}zoh?ZZR04s{&K-`wFFj<*l>dKz i#o_ NJXYst>-sd~#%$#$+chBsZJ+uFSOtO--?)zTXb=|*mt*E~Zb-7Lm zoZ#T#;DX%0W6Z&E=miJIf!t$9fKS|zBoOd&-21+T9|s2~@BZHbj`Yk6z=sF?jCFN5 z%KC(sfH!}+-ZHqw!BHO1$#6K#!J#DqxpT`T=)fw$sKh!D31-ZSyz9v?=SxaI+@6ej zZDJBDp#^?;+P(32 wA1 hTwXm3{mx8%VVNh^^3w>FnrxOxBq|LeRnURxiQZ+5Y!U~X5 )e 5K>%S4Vs<$b>KHio
P_^+1k7Y |+Pp_opQ@US_g*ES*&ok9b% z$nJu6yFbmK?tGnVD)9?`xR7f7nxwhqN 1?Hg|U_9pzD`Q}Wt%ywr`O#Iq3>J;v!WC|s0M_WSl z6cILKliW)h@eM{@V2c(~D2!c-#0LDr#PVbhWjNt ~+c)q(HdsSbRu$o@2mvlP#E@#l-E^$JS 7y-kq!;z7~N&l2M6QyOm_kCP%PRBGzWf z;4+Esqnk-{&)0r#MhvpS@mT7J6;r j+e^G zWUB9m!z}{FQIfUtWgg(}c@#WY6DO0i!t@LF*!^Q2Ojz;r{A??M8-}^2S)yyKNG=)G zWN-THT(VJ(Y4 3HNDw^qN>INC;N7c6#GR|*^hv2Y1O;TPU^ zMs{<}-rRO#V1nTTyB6J CrEAjNE}_(5*QPfG7J-bAS(-6j4dqp@ zwYT`WxEa@0W$Ch`^@n9iEY6sK65C2ixG~^vfEm-=W=Pxm9ApU|xE*uQ_+d6F^kQ<8 zZ!xuYhH|l)98^CYdRokk2zsF~xtuF>p6qusJ~3|^^6;n)q2sti)&+=c=Y+KkB=xN7 zt9WiauG#FX;M&4^b>!h>pQi$F^g;b+6YB_)Qb)v-Am6$AX^7RDN>2NZAOF#qkg!bq zINnM(B5@rdk;=tsLQVUF JwZQWp8rynD}Ac2d8C858q!sgF|pIBTD$kL zgpKEZ0 yt>rEEX8q(@aovW!c(Dn|872%F}3r90J;XLR?CCl(6 zmTd{IW6$EOGOdvcue^^8FEnCa-@_=i +Egc0n*8rAOXE23-yXZ;!*Lbdx83sD9sT z+$IwmHm7{S12&&(G?pp_uyABfVh2xdcguQ1F|%hO5%~q*S1!xar>Ii}>SN<0_9O?h zK5C2E+_f-j&vIaNl`G!Z24$DvV~aX2ayQUS_%=Vrwq@VPXQ+2XE C6ymvYrQ>UF&I~@zn%=b-5qxBlgJ&`6=;-1xTg0$H=kkVjLB@!8PBEvsBWry_ zl8=8)G0dyLFw1f`gBHHCK8<3g`+vrK8llI;Nc_CRd+u|a06ecW&Z-suX+jM?9IOhP zwDejbs=|j!UZU_htunq^-)_nnaoW`itpQsZKOwlAbwN->aCYr(rgiUy7XG1#)I(Zg z7Ca?edU2T^PL*4@?4bhfSKk%Hro4YnNoI7p %m`g-PSxA|dedEVB6GNYJbDX-d52<`2Z0XXd)- zSdZ&lWTD8%Eu;wh!}q@(^&O2+b;cKd*8lBf-8oYH`i)z;YuL&{(8cr6WEi3#uJntO zRybZ=w>y{Oos5j{ZOcBpl8xG1N>Y_C{RB%GCs);_U-)|g0hxZHO7>!m8PZR^nvMM| zejLkO^`fzH#Ip&@q4y^XJxzqV{LaBPh3~~BP1jwi8|&~XPT=t&?NLYGSgBztyM&^; z>PgEQ 8U+w SaG6LB k=^A_ ze~X164ixeF txr}q`HQk${dlT~!4#jP<;fbIEXEU82ifY@wsJsdX3GolhLcPk7 zHeSoB(t{XpgS}gQ^+`^3eM=b@yCwt>DXfg*VSUxQDAZ)zD=53y@)*Q7g`!yMmo^-f zkWTP}?uJ#cqdvFNjH{`@zuO$k^BBn(@wKT6mYo7rO&f&$n-7d*2ZGCyx*p=dDM7 z)+JF~Mh^y7dWgc?>#WQB>yq$ePbP~_&>>Al$~+CCo+_`Lv&CsshBJRmf#8_q=!;0m zpK}0!(Wl z6qpAX*&xjjZ(afMsdCYMqj680i~#)k?ksLA*WdCm*iB;7R0 z{GpafaU4ZFkwP?{DlkSbeXH!vENJypT<8n(AjdxNip>m-@*GBnTYhvkf0&Gf=%@N? zRW!znFY3Q3K1Zp!QZ}-+wtJG-Y*R~A^pD0xF9meUT+!xN$MGE=wY+>|9A)_Gl?mJ8 z4@az4U4Y0Lo4q#!tx2NXSa9h3o*`W8dkU@$A6}^KuQQ!19KApJKo8zryW(|?nDiR& zsvKuyI&T4Muu$oCo)}9Jr;S`wgkSUVRRV%7fV-?!<^3TI!Ub1;6;%`brw0lM!xHgJ zLpvX+L&q)ft9rbF2#XRqzjMa|>>9{Z(4Qo3yQ^!irKIbkZ-=Pfz7xpRak=A|+pREF z=z;5E9;}hjVwzAeu64WxLbpI$pfhkqWq5^Xe 5E+KL z6bZJa@;?!NES2`HNc>?(^|V^Pa{AjLwYLZV&T3W4c1)&R>D*q=Eb>#V6-boRBvTmB z07_wt^(t%%XL-0*({8~v_FPx!k9w6bY%9o9$gFcVJhIyhx_$ZOr?#Z=__Oyq5)-(@ zXaXbi@m6Q_YApDsrK!x8(h9;X6or)t@TAo#Nt)@uu?h~WW4CVpcA0_N);d1&^sAey z8Z|{XjJUo N60msTiEz zOWxY(IweA5dnr{ru{X?RqEHBA$jW} yL+unp+lUD1Tf1doI^!@&TWg4`+?o@#&N9GjC%8i__76HTs_u?n@tg z)`(9ZI#O5fTjm_&i*e_6Md*DB+FI DU1d4go4w9pKdIpv!-8a6Ebc;xq@xhle~m92`&YLH;>@?cYA|^?( w&9hT)ph^4M`*5_h~4Ti3?{@2#<`khF7PW8ZuNCa5-z* z)IuW!05q0)$0xxkMi3wac*MQ%{+^{3TH|HW01!Mny8yA89ZFuBe^`A|o3%5G^u55X zxqfs1n|;E ZlPV8=-QWQG3 xsQ@oOVYV^4rR*sk$O7 zHg2_BdEl;MV*g{odL)x%w+6&ehAyW=YeLUm(R6;WaxsQ++l5`CXJtYg>|N30X>k`8 z3IGFgQ%&}ZuMSFApJ2k~2Ts+m+_uSgygKo^N^!(lOj*6*$scMZYWrH^n1_oUaLU+z z=PHM^dWGXQ7#M1XH)oNzLWH#*39JWCy}z1)W18n=IGahBZjDr#q;8dWUL?`3LF{W1 zv1lv{Qx51y-n{iIe@PIOy#A!4-1zlX`Z2G5uTJuDaM&yF$Ngd%)Vm uvZO@88$6mh@vD=^XUyZ^u8} zsP#j){TBIeAN!^Qi70cqc_j6&B`!g+iOpQItB--glTO|f?bVatY2lRd@8%Mhph(9g zmRc1`PbAe}aL=jqqD}f4vBMHti$LAZ-#4w3OCg6ZSDilSZIx&5%h=gyZg_M;=AGWJ zlMRYooQ|ymt3xph>|jljD8K$?v6ml<%GrS4f~g40F6Mt%IraVdQAE~340rfWtArG6 z5c3pBV!vzU;=}4GBQ CJG9d5RV^ J5k%8c~+f6B; 2NCzUzx zR$ZGIV0sQBjob3rfx6O!lc+ffyCu#W2(?Vzi@~|!jk$j(>EL$+3W6mMXRG?n_dJ-E z=yuj oAaS3AR_&3?C{b6C999h7UEz*(HmIrc(f<2Tg zbu * V2kE?^qK(JG7({BrY=FHS$55U-wIYor+3DdY&u553YoaZ&J{ zz`92<*)_EO?zxi9Aon&>{n;4zp3}eb9r!4qn{HD2j_;vWMX5y>-a)HBy4MRrwTCyC zn$@I6KqGVIpf|yiXuflm?rBvOT#5A%de(8L3iQ}LcrbT0*fa`y+^Uc!SMs 504b&H;@ePt%)YKS8TQ zg^!p-2imW*jtQ6M5k<)tpWycEFUw0jj^}ETulPQnF=+qfQv&()e)Xgb+SG;s`;_i4 zA{<~Q4D~fIrYA8C4<^gSB0LwDJL>z9I9PIHfFtGWOZoV`JXtw~D8G}5qmntuU+2P` zC;Jb4^Hj_p^RhmKJty8J6wg(J7r>JbtwQ8Yq-@@uuWKs+fl0kr)GyAe#5tV{t>_(x z+M+w=oSD-wuR95N_q+OmLsjljeE&Gwg0~g2<|HJN7&foarA)bKtr5a Zz|J7fc9L zzAi2ML{g)Ho;J*Sd!5={^`OEhMkszF&gAznsQ`vOQN1g6+2dyVUUB|)G0zkBYSVr^ z1-RV+ksT|#^_qif)L*j1B3V gm>^( zn8ZMMQWgeJsAO`fE$@ZTUXY)HGQ(3#oP}&_tQ0av>KZLfi+`(@ISY>2*4W^kgryS~ zU_4pnz%7zYWC}^A;6QU7n#mhe!OfTgc`WD!SKV4O9h%VGb0leeCm3_u?V#~90~Qn; zRB86z@r$|1U?qMfZ1#fb%TlqNunIfT?t*niD1Pdve6_VnZT^r4UYSR4GyR4v zD3y8+WWvX`oaOqr*eJoI)59Lw{1h`e&|Ct9AWGVO<2E~2!PHEKe~PkN+Ez0xGe&j) zB{vwN3<@x{F2)yayjFUJ-UgS$>-0}{awdyA4WqbIipPv8!KNz1Ci7gb=L{^Q=+-28 zk(kTY-i2LV$E}|y_zgfK+-yxsEf3oDeo?yd`T#|2!FR?aL^AiS@$8chrKu I4x?QzqNtY;d?01{{1|Nf4 )j}0x zn-8dAUp8?eE>SSSC}aj8wVcvao7q}kC^LW{8cfh#Jjj$dv= zSjLr#lZHcQH!HuS7dpfa+#5N{QAg;IdO>lV)VXh^FMd0`eCR>rX6+slAJjxOv7=8* zMpTzt45@Ys2sQOn4{+2xUtUu5a!y^Tgf;~%$^R_+P~9J$I^vtrl hwMAJ`{E<*GVSx1&gGtyU`k;w4_ z9KYvfyPveWC-?WfNa8Plh5re$+l&P{TBuAEMgPzhjY^{qoP%(X1fE}un$cKmbn@lr z;HZOuUX-L#TYgmnaur`#8TEGeB>*^C{|ii~nE-~||8HdNVJ>|z96)U>8NlMYc--O8 z6pFsOzXvm!d3kx{wkTdCPtbf%8kyX%Mz#%E%7beZBg<%S=> 7{A zX%RFFlfU1NJVk{#Xae4eFaVvL$cyGrmTdXy+pDAo3sJRwW29(qU?#au!UmEUq_sWj zM7U>a)+dmd+D2LI|Ez${`J*)PLwjT|XSc_74 uIjpOT5h=K@R)qH3cG{ES(2AWt6R{Mj<`UdNAUyA@~k?-|SaO4l@>S z8(L~~J@F*;U}~H41lk#xb?=1F?&h3?ut5<>vTGPXRL`~f^+;0@hmP(+>uaY%V0pz$ zmI(~x`g4&+xW+rrUUjG($yEc)Trx6CXo@Z21{g!8+>0%n`w|;Ji2^xhv(%AC3aI>y zCE17!rL {)D;fG!{_|C* N_TvhgIrd z=jDH%I;W8QwI&hT;Xx_}&_0G#5bbU&K?mHsuumGkf9_*ZH7V5I>wxR45@~Ty5Ly{? zQ6r!vl(oBHCVlSRUy=$jaL}1<%ox<>j~ zdfVEWL7_L3D4IMnv&D)n^;pRMzXV_wa6r6{D>MV8;JNx+RaYKFKZ|%x^@*> z0~;2@6(4WhIsEa^(FQ^w**3T_E@wkMxM^0*jwH>Xy=0{_DRZ78dw;&0c7iAneM=$7 zLxR<_fTL^XV&M%qyacZl)Zl@hnK-Sr)#O>d+NAT>PGyBq{Aufn;Y9Z9xIFKzb{uLN zBQnh$wnAn_s)AeCtll;BUPK?oVlC-&=U!(V7WFA~u}fF9dHYHj3flnFtxcMubf=+? z)Mo9G@tf_g*k4+-xo~m-p}v@oTWj 60ssaJ z%?w7H)Am?+SbpgCAkLq%;?h=3^(Y7u6_tWopAm#kEUyJ>=y{Ai(HwL>`}_P)ZmJ!4 zQ-vAtin`8T0HenEUbC1P;6<3nBkzzIKO-aSK(}B5W2bL fIvO zKpQvz j=b5QR2N_o?jFd3DzFyts1M#k%HMdRdX0 zBiC$JaoTQJhwR*Z#eh;DRLR2J=S~cpViw*X*xGgBZMC%}swwZ5Sy^Ual^a`^T@l~Z zI*Qy$jD%w1Oe16yqwiE7?77l)N0O=Y(QE28 bDCS1ZLeao$Xh1CgXgVrV%;%?vHlu$ z^vIr%{+z)O_foE>ChON{ -M>CNhWs+VL5HXftC)n?>E9`td zd(@#lY5UJ|I-#tcWjU*;R?q?)TWoWj#$0NS+r1)sS@|?3M*4$;ytzV%^GHFusdxnV z_y|a?Tt)u;CBoefg;%RqpSKt5WweM#-yc=+CVcdeq1)U#K5t=~oS8My!lGMD=9{JE z-b~Ul?~8JiqRN^Oumi%9hZ~l~&m;6*YJM=_CndIuk}i=9qOrpWk2U%fQ7*hKw ~W8pRziYD&uH8(RM^9rT?%=)YS7wdz%Xz znLG8dDTU=6Zr3K+S)q6#&bn#lUdJ#~fCe^FNn|WOUUBH)1FdJ;8s3kzG3z{(<6xVo z0~!ojFlP}(8bb4`HNlzG&l%A-(P9g2v)o!E_#Z}zZ?b&m9@tz@-_HF&TYmA(#t~+E zWE&TY0VI;8@MR}oE~zgEotSZtnF5C27-tes3%)%q{Xu~9tLx7ghv7UwO)l>d!T7`G zYr2=j7 hwA;O03VV7N z%>01JRPlxKQv-xw@fmQ%zeNcdmIHp|qWyYVMQ+X>iBvZd}-GTd;n#;%=>7xtwZn z_Y GH4v4$P@!)~4rkBP=$#2eb1!g# znK!ecEs|!uZI5@SbLE%jcQ@Fyn<6JW4)szniHzwS0%BFCwwSl0(S@fY8rwXCzm#A6 zJ%}f*$};~5Y@F^GTJMAlZJ65`@XWg#bKBG^oAN}$>JQ)88hO0mGmpmb&Cj`2W&srM ze=0UUXvAHg#|%ChpdC=NM|0SSbtOs({5S9@LdVr0fY`hNA`t!kMfWSs*bVcSHgx zzZzaT&+?~aRtI<)$2vUI6d`#jNw7z-bH$Outgwj7+I2QgJ6t92 zG#V%tUt3HTfb||p_cT$7u#i^Phz6z4K9(VHZVIGvQNvlYDM%8r3SI;=@I1MXK7kk) zZdQJ|j&0mbGJRf4VGFEl3FWAC_0P3QLaY;NO7C|JTv3BxE4dM+aJmV@XT5{&!r!*s zTjP|N0Q7Wtru1jdFGnH@8eB0*(OZ+uqur%`*yd4T@UCUf`(dT$BMA!%HyKelEiFV^ z6**SsZ?NaY7}^ZYrHuaLwI+haVqf)cB#P~&l@1i`&PXK6NWJ?bH+wO*@*v04(#w~v z|4w^*4PuedGF?p{FxVQSvkSf6W!z2f?#UjMrhQdRO~(8&KA*_bayv(JNbCiKRfO1F z1S)@&Em&bV1s%uBsP#f&bB0{5LuQ9z5`D^p0CD=NT^XZ%Ny>L=Gq}MO`4biP+bLY$ zC%=DrT)lL7^JBrqC0>X^Odoe;jBjNs*V|H; ?dpMoMFpWuOJ-Hj;B zhmpg2krm;CJWZ^bI%M(8=Y(4T|I@+5`07z@OwlWgVsT^acVi=vz<&P-gZ=hF4`G{o z5g9ru58>x+8b;kQF;~hYm2K|f^SiJAdtHU(MUMF&`%(8D>Z|Y5pt^lNWi2`Q)60L; zRtfZYJWV82e+EFfz1)+3(}@`p7PQ#W!Zr?+Blb~eS~8`+bxlnqRVkqFr(FB$%; Q=vBLD0u)lJ?QNRh$d~I!^YvemFNWJM3| Ye~)*h=PbWBX`W z;O;50;N6!_gy%Fnsnn*B%{#O|enzyzRpp%`Atm$~SL|2!3^irHn7G*ZuIg=vF#W#g z8E4QVeiAcjsfrDEUrRW)`u{^8qND_4T>$~T=Dz!Qxbk)VIbFHKCDZYX rKI5Zv>UnFqpL-tQ&E<6>s?x0BEt{T|Sgj zbW?fe1qQ@!9YEP^#f?-#kM`pU@ZQD*GXTflY1APqUlOg>^RU0VPfj`WF^gQCVM%8< z<)PQ*Sqm E#e7w+@^X6F=|(pM8~vW;uihDZ;NS zeUAhOuVXqp&{}T%HR$LyTT3Nn38gheOzvG5ORjJP!OC*hJOd%JOqCCYbd)$xxSg?Q zy@o{J^043UIj)7EWK}jlHz*2}*v$rtBDgH83BrW@WC!}sx=fz~AtR6n@G6N>Z;@A> zk56RTF;+M+tlk@PZgT&D&Xpn4ORlh dJr>6$YGFZloJZdb~lSkz{;w#FmCdtDQRXc_E~kreu{Ju2$I56RCF@7wDcOIHOz zd&48IY_eBknPA6^o&hVjCGeurca4`@Ljwhul%a$!`B~yH0tG%a4RTXUSDc+C!#e-G zD %lJpK9SsEZxozQkk)Z7tUNXQYGF%LX>HyrJP}@wo*tGb 4%OpoFWRn5Hk}s2+l0NC6nJsp>rX=N{mF0<7 z-3#U!&hoFV8%pB3dKBFbM%BEAOyrDy1O2BWp+-4*w`V>uuvZy55{gnAH2Z7fr*P=h zgj8n=Tq5drTS>VeRH|)sc{! D%@U4`AM;h@MItSUZZ7vP)$>nfSF|!*Z(DJ z?Z10gDQh2YI?r?KN!IAi)c=xjxGw|@)zr%}$JVk)$*6Kg>aI;7d0FN~n)4}P)gZ!M zIT=ZC06dtfwKg%h%Kp)WFAZFdRUqWq*;!Zjjjd&q>=a1ksp?|8we^VG!V`MP@WG)# z6iduYhS(QKlO~GTJ+6+6M~aNshBXv~mn7#@l|o2{#+^fw-5ea>0;+)4?pZM-e{?g- zahY MDVjiHHZGIvVp&DPA<*mP6O+1DIK)7%mR2Zf)K(DrvBK(nqjWeY;3e& z(js%ha*d8e+J@~)FkxXNm{-|@>vhO%YnH7{$-{?l|B@z-6{;Abg#<&7cHRS7gg)8T z2;UaTv49+d?UrxIeciItV* N#sQU;@TF@a*xST?-CX01k`m{mty8uk?&HVr7{gSFbI zu-)B~*6nq4H!)QBklMwW=;uyz``l0P;l$4k#ACI0))=URY(P+b9@@4NKKthR^oF`8 z0Cq+VYYaFYEFTtKyJn+G$A*8UV-6z7u4xWBsee}8p9OlW$!QJ-9yY*#yI=cFb*rn` z=GGunw$#Aw@E*YQ?P>{C7w77$O!BK`k6)=JuG4WFryK5dw#R<)Tx|jvPie2Km_K_G zv9O1(59Oo*;x7DUeTIps4Qt@dBf>EpiZ;O{UZsgFCANcJ=2@O%Gb~lUi!ZWUZ^s)> zZa>FklCrbpF9J~1{+&n0`4)@3VppD;s=r)HMhk1pM3IoQ=o+4EvK3dNP&RvG0tx%Q zW_1!BAV#1S&_&@59Vw+sF0ret?Pkpb!XmMEZAkQ<7fRGH%U6CYLqUTdh5VKbt>ta0 zf}Mu8wfY_3PD${JN&(nrqHFTn3p#i&g-JZys8HTh53{*Lv(;l5UpF%AKil!>mr;Uh z@p1(QbUD*%mn==FCt*6Jn?l`|H;ux`ODw4TDOo~fXGJV2F8a95ZC49GYOhIDTam|j zISV;hG7`3cNFN4m{9uOT*}W$dW;dQcoNbUcgq((2o(5N;owS9K+nmLs0bOl!gSkrU zfOrILrc~WDN xprizK+87&h7ZJhJA=G<`?X+SGAXSEx&{NVsr9V-ld#pK(--6 zof*HqU-gS` 1+pYPH52~j;GKbo0R^#^wBxY%T9XP$JSgK znqAmj9(kaFkG}D|)k0+OSt{wAOUxJ$nE?bpevR$Plrq~C_-N66L3z{`u=kSUv-s># zg<$Q`?0qbEswTnd%|v^7ZCzMxPh!3PF>d6hea>j!T`$dh>+73-H--u%mV$iWR$a=c z+jqn;bFh2ffs5ZhYTszwAw?55648LT-|<#U)xr48d17S_tDw2!5?_f?-nXwUzgJ#F z;}*;X0%Qz|w}K94Y{&ypJ*&rA#~goE|DX!ISC7*{D= Y+OWW9{|~VBKxll~^WbFM=#}gPDy=S#-PSdy;Yn4KPnrPAW2ux<83Q~I *MUt(Oq;fKl9Wk)GPs_a z=4sIhsO-^RWS*8vq86S>B@&5J%$b&ZP*O6Bu0zAeGYkT^Ll@M?6CON|6;fCT_nj&~ z$Z?bRpNE%zN^%0OO(lJGzzZ`WRT?oi&1UpzFxkZ~*8wQ&j~3FZnaAu)jtIK8zYz_9 zK4YFo0im)}zZ;N-6_9uJH`t6}yDghHq*M!|WahU{)?+JS3CiMsS4DXuYeF(OYOmJp zOU+-?M&-? 7Zt^{3EDy5u!&R_##?fL3$u0v0#sr~}KN=L&??Tn1(W zcfNf$#R-Qq+kS2&OaMB{R{UDCU#-(&j;EqMraI 4=SE=Z(_Sk1wE^)2-PwM@b-?QhO z=7`u`CM)&zw0?DUSSfJRqMwvm9!vaT@ZiYR!#fX-% d`uO*tdQQt@89r_; z)ElI7w@#jk3`lY+LPvU({Es64(b+F>EXu8GGLK(IA8dHqEyW4w&>HDA)u|)(5gzek z{SOJn9SEfgnz_a>DBJ`;g6~oQCU7YI$4t6^k4fz;1#BA{_WSUD6mi1Kcv@n3^^5y* zp)H!M^~CtC#Fv`1yoCl}%iMBmImP9Y((~74hyX1%;m&z{uG9Q}#S#(3A$NCC`TgoH zzE}q8;MIQu5(b c+q40cF&%+n|AhW z!0;DhgaiTgaE;b^FX6ko%d0+MAHa_UmH-)Dw;!m%`Dc3Tmzn#LI{_}TGfH5#$?i+a zyg5dk_LeV15!7x>a3y;;D-g44KXRbwNER`*x|ybKEC0R6JGp-~prq&X|H+M{eO^y= z|KawiZc8qWGplUO52``FmXLhY+g1teMe~ckdiLSS?uG_~Qy`g+83f<*UWMs$j@_U*?!&yTK!e)ufKubb-R zGLrVBbwA}e=gYbmuk<^=zYEZJmFO}X4<(y>XUxpc8u;@AU1s($01pBUkN@?CMuhIs zZ&C;#$uW6$KxbVTj=t@`AFqKMglNK&3a*5KO$Pr5b1eq40;negXqj!CT^K;L;K93) z{8H{J1N~<;Ku0CK{J+7Y;n^EckN~#XKKx~$N6xVq!WjXyHa{Z-jy0=5sLVmlV-UuF z(@B6RBlAVLek}quR-(~`Yo^4t@O^!g`j= 4TG^MAd+b3EIcd5gYP;wD2|e8Gdm# zDn;ggQ1%b1pJy(*+SQTEo4OAxK6PsYJxK)QbLBB0Pts1@DZGV-TLR?UpP-J;ZnP|B zb8~}32V_=lqhm38!=DFd#x{V5@B?=S37#-FtYMBb(3gBBQ LSpd@fli|&jsV0ABNd(6I0O@q%2Lm3RrxSmo zbCA=R<3igdk8VErE~&KQiVdySgPv;<9scdAPBV+UNaAq0CVDI5A7*yKb~bHi#7et* zvtUYdaFsb*e7Ni?4gBkX$6>kS yFQnJo(p^sdvhg}*~|Id~EYw2Y9LKDF^Y^f$e^-hm~h66N8 z%1RjR5^S*HK|c+IZAO%9$N#h^U6 zKn`~q4i m{=LlkujktTV!xoW5B