From 7f507c1a19cfae384ef1484b8c52d2fe7461d60d Mon Sep 17 00:00:00 2001 From: gabriellsh <40830821+gabriellsh@users.noreply.github.com> Date: Wed, 8 Feb 2023 18:59:26 -0300 Subject: [PATCH 01/19] [BREAK] [NEW] Custom roles upsell modal (#27707) Co-authored-by: Yash Rajpal <58601732+yash-rajpal@users.noreply.github.com> Co-authored-by: Rodrigo Nascimento <234261+rodrigok@users.noreply.github.com> --- .../meteor/client/components/GenericModal.tsx | 5 ++- .../permissions/CustomRoleUpsellModal.tsx | 36 ++++++++++++++++++ .../views/admin/permissions/EditRolePage.tsx | 4 +- .../permissions/PermissionsContextBar.tsx | 18 ++++++++- .../admin/permissions/PermissionsRouter.tsx | 9 ++++- .../PermissionsTable/PermissionsTable.tsx | 16 +++++--- .../PermissionsTable/RoleHeader.tsx | 19 ++------- .../views/admin/permissions/RoleForm.tsx | 13 ++++--- .../rocketchat-i18n/i18n/en.i18n.json | 5 +++ .../images/custom-role-upsell-modal.png | Bin 0 -> 229588 bytes apps/meteor/tests/e2e/administration.spec.ts | 13 +++++++ apps/meteor/tests/e2e/page-objects/admin.ts | 4 ++ 12 files changed, 110 insertions(+), 32 deletions(-) create mode 100644 apps/meteor/client/views/admin/permissions/CustomRoleUpsellModal.tsx create mode 100644 apps/meteor/public/images/custom-role-upsell-modal.png diff --git a/apps/meteor/client/components/GenericModal.tsx b/apps/meteor/client/components/GenericModal.tsx index b03f83f95a54..187d73444920 100644 --- a/apps/meteor/client/components/GenericModal.tsx +++ b/apps/meteor/client/components/GenericModal.tsx @@ -17,10 +17,11 @@ type GenericModalProps = RequiredModalProps & { title?: string | ReactElement; icon?: ComponentProps['name'] | ReactElement | null; confirmDisabled?: boolean; + tagline?: ReactNode; onCancel?: () => void; onClose?: () => void; onConfirm: () => void; -}; +} & Omit, 'title'>; const iconMap: Record['name']> = { danger: 'modal-warning', @@ -68,6 +69,7 @@ const GenericModal: FC = ({ onConfirm, dontAskAgain, confirmDisabled, + tagline, ...props }) => { const t = useTranslation(); @@ -77,6 +79,7 @@ const GenericModal: FC = ({ {renderIcon(icon, variant)} + {tagline && {tagline}} {title ?? t('Are_you_sure')} diff --git a/apps/meteor/client/views/admin/permissions/CustomRoleUpsellModal.tsx b/apps/meteor/client/views/admin/permissions/CustomRoleUpsellModal.tsx new file mode 100644 index 000000000000..c6b005c1293d --- /dev/null +++ b/apps/meteor/client/views/admin/permissions/CustomRoleUpsellModal.tsx @@ -0,0 +1,36 @@ +import { Modal, Box } from '@rocket.chat/fuselage'; +import { useTranslation } from '@rocket.chat/ui-contexts'; +import type { VFC } from 'react'; +import React from 'react'; + +import GenericModal from '../../../components/GenericModal'; + +type CustomRoleUpsellModalProps = { + onClose: () => void; +}; + +const CustomRoleUpsellModal: VFC = ({ onClose }) => { + const t = useTranslation(); + return ( + window.open('https://go.rocket.chat/i/ce-custom-roles')} + variant='warning' + icon={null} + > + + + {t('Custom_roles_upsell_add_custom_roles_workspace')} + +
+

{t('Custom_roles_upsell_add_custom_roles_workspace_description')}

+
+ ); +}; + +export default CustomRoleUpsellModal; diff --git a/apps/meteor/client/views/admin/permissions/EditRolePage.tsx b/apps/meteor/client/views/admin/permissions/EditRolePage.tsx index 21bb594cc848..3dd9fc586328 100644 --- a/apps/meteor/client/views/admin/permissions/EditRolePage.tsx +++ b/apps/meteor/client/views/admin/permissions/EditRolePage.tsx @@ -95,14 +95,14 @@ const EditRolePage = ({ role, isEnterprise }: { role?: IRole; isEnterprise: bool - + - {!role?.protected && role?._id && ( diff --git a/apps/meteor/client/views/admin/permissions/PermissionsContextBar.tsx b/apps/meteor/client/views/admin/permissions/PermissionsContextBar.tsx index a0a79c237972..cbede6b0df61 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsContextBar.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsContextBar.tsx @@ -1,9 +1,11 @@ import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; -import { useRouteParameter, useRoute, useTranslation } from '@rocket.chat/ui-contexts'; +import { useRouteParameter, useRoute, useTranslation, useSetModal } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; -import React from 'react'; +import React, { useEffect } from 'react'; import VerticalBar from '../../../components/VerticalBar'; +import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; +import CustomRoleUpsellModal from './CustomRoleUpsellModal'; import EditRolePageWithData from './EditRolePageWithData'; const PermissionsContextBar = (): ReactElement | null => { @@ -11,11 +13,23 @@ const PermissionsContextBar = (): ReactElement | null => { const _id = useRouteParameter('_id'); const context = useRouteParameter('context'); const router = useRoute('admin-permissions'); + const setModal = useSetModal(); + const { data } = useIsEnterprise(); + const isEnterprise = !!data?.isEnterprise; const handleCloseVerticalBar = useMutableCallback(() => { router.push({}); }); + useEffect(() => { + if (context !== 'new' || isEnterprise) { + return; + } + + setModal( setModal()} />); + handleCloseVerticalBar(); + }, [context, isEnterprise, handleCloseVerticalBar, setModal]); + return ( (context && ( diff --git a/apps/meteor/client/views/admin/permissions/PermissionsRouter.tsx b/apps/meteor/client/views/admin/permissions/PermissionsRouter.tsx index a746a4bf3452..31ab597df913 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsRouter.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsRouter.tsx @@ -2,6 +2,8 @@ import { useRouteParameter, usePermission } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import React from 'react'; +import PageSkeleton from '../../../components/PageSkeleton'; +import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; import PermissionsTable from './PermissionsTable'; import UsersInRole from './UsersInRole'; @@ -10,6 +12,11 @@ const PermissionsRouter = (): ReactElement => { const canViewPermission = usePermission('access-permissions'); const canViewSettingPermission = usePermission('access-setting-permissions'); const context = useRouteParameter('context'); + const { data, isLoading } = useIsEnterprise(); + + if (isLoading) { + ; + } if (!canViewPermission && !canViewSettingPermission) { return ; @@ -19,7 +26,7 @@ const PermissionsRouter = (): ReactElement => { return ; } - return ; + return ; }; export default PermissionsRouter; diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx index 63e04b8ace9d..d51c7f5cd2cf 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx @@ -1,19 +1,20 @@ -import { Margins, Icon, Tabs, Button, Pagination, Tile } from '@rocket.chat/fuselage'; +import { Margins, Tabs, Button, Pagination, Tile } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; -import { useRoute, usePermission, useMethod, useTranslation } from '@rocket.chat/ui-contexts'; +import { useRoute, usePermission, useMethod, useTranslation, useSetModal } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import React, { useState } from 'react'; import { GenericTable, GenericTableHeader, GenericTableHeaderCell, GenericTableBody } from '../../../../components/GenericTable'; import { usePagination } from '../../../../components/GenericTable/hooks/usePagination'; import Page from '../../../../components/Page'; +import CustomRoleUpsellModal from '../CustomRoleUpsellModal'; import PermissionsContextBar from '../PermissionsContextBar'; import { usePermissionsAndRoles } from '../hooks/usePermissionsAndRoles'; import PermissionRow from './PermissionRow'; import PermissionsTableFilter from './PermissionsTableFilter'; import RoleHeader from './RoleHeader'; -const PermissionsTable = (): ReactElement => { +const PermissionsTable = ({ isEnterprise }: { isEnterprise: boolean }): ReactElement => { const t = useTranslation(); const [filter, setFilter] = useState(''); const canViewPermission = usePermission('access-permissions'); @@ -21,6 +22,7 @@ const PermissionsTable = (): ReactElement => { const defaultType = canViewPermission ? 'permissions' : 'settings'; const [type, setType] = useState(defaultType); const router = useRoute('admin-permissions'); + const setModal = useSetModal(); const grantRole = useMethod('authorization:addPermissionToRole'); const removeRole = useMethod('authorization:removeRoleFromPermission'); @@ -43,6 +45,10 @@ const PermissionsTable = (): ReactElement => { }); const handleAdd = useMutableCallback(() => { + if (!isEnterprise) { + setModal( setModal()} />); + return; + } router.push({ context: 'new', }); @@ -52,8 +58,8 @@ const PermissionsTable = (): ReactElement => { - diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx index a0d488b11370..fc801bbd4c5d 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx @@ -1,6 +1,5 @@ import type { IRole } from '@rocket.chat/core-typings'; -import { css } from '@rocket.chat/css-in-js'; -import { Margins, Box, Icon } from '@rocket.chat/fuselage'; +import { Margins, Icon, Button } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { useRoute } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; @@ -26,24 +25,12 @@ const RoleHeader = ({ _id, name, description }: RoleHeaderProps): ReactElement = return ( - + ); }; diff --git a/apps/meteor/client/views/admin/permissions/RoleForm.tsx b/apps/meteor/client/views/admin/permissions/RoleForm.tsx index 4563f4585694..6fcae6b620b2 100644 --- a/apps/meteor/client/views/admin/permissions/RoleForm.tsx +++ b/apps/meteor/client/views/admin/permissions/RoleForm.tsx @@ -9,9 +9,10 @@ type RoleFormProps = { className?: string; editing?: boolean; isProtected?: boolean; + isDisabled?: boolean; }; -const RoleForm = ({ className, editing = false, isProtected = false }: RoleFormProps): ReactElement => { +const RoleForm = ({ className, editing = false, isProtected = false, isDisabled = false }: RoleFormProps): ReactElement => { const t = useTranslation(); const { register, @@ -32,14 +33,14 @@ const RoleForm = ({ className, editing = false, isProtected = false }: RoleFormP {t('Role')} - + {errors?.name && {t('error-the-field-is-required', { field: t('Role') })}} {t('Description')} - + {'Leave the description field blank if you dont want to show the role'} @@ -49,7 +50,9 @@ const RoleForm = ({ className, editing = false, isProtected = false }: RoleFormP + )} /> @@ -60,7 +63,7 @@ const RoleForm = ({ className, editing = false, isProtected = false }: RoleFormP } + render={({ field }): ReactElement => } /> diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index baf23096e17e..277f01212f17 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -1435,6 +1435,9 @@ "Custom_OAuth_has_been_removed": "Custom OAuth has been removed", "Custom_oauth_helper": "When setting up your OAuth Provider, you'll have to inform a Callback URL. Use
%s
.", "Custom_oauth_unique_name": "Custom OAuth unique name", + "Custom_roles": "Custom roles", + "Custom_roles_upsell_add_custom_roles_workspace": "Add custom roles to suit your workspace", + "Custom_roles_upsell_add_custom_roles_workspace_description": "Custom roles allow you to set permissions for the people in your workspace. Set all the roles you need to make sure people have a safe environment to work on.", "Custom_Script_Logged_In": "Custom Script for Logged In Users", "Custom_Script_Logged_In_Description": "Custom Script that will run ALWAYS and to ANY user that is logged in. e.g. (whenever you enter the chat and you are logged in)", "Custom_Script_Logged_Out": "Custom Script for Logged Out Users", @@ -1836,6 +1839,7 @@ "Enterprise": "Enterprise", "Enterprise_capabilities": "Enterprise capabilities", "Enterprise_Description": "Manually update your Enterprise license.", + "Enterprise_feature": "Enterprise feature", "Enterprise_License": "Enterprise License", "Enterprise_License_Description": "If your workspace is registered and license is provided by Rocket.Chat Cloud you don't need to manually update the license here.", "Entertainment": "Entertainment", @@ -4587,6 +4591,7 @@ "Take_rocket_chat_with_you_with_mobile_applications": "Take Rocket.Chat with you with mobile applications.", "Taken_at": "Taken at", "Talk_Time": "Talk Time", + "Talk_to_sales": "Talk to sales", "Talk_to_your_workspace_administrator_about_enabling_video_conferencing": "Talk to your workspace administrator about enabling video conferencing", "Target user not allowed to receive messages": "Target user not allowed to receive messages", "TargetRoom": "Target Room", diff --git a/apps/meteor/public/images/custom-role-upsell-modal.png b/apps/meteor/public/images/custom-role-upsell-modal.png new file mode 100644 index 0000000000000000000000000000000000000000..fb97846acdc048838b2ee9a681cb8dde25e16bc5 GIT binary patch literal 229588 zcmX`Sb5v&E`#+p*+jdQyY;(e$ZBMqFY`Z2-w%wg=H+iz%T~D9i`@5dA)>&trz0Ub( zuYKW#D^f*C8X18A0SpWbSyo0u4Gavb4-5>v4G!jOb?S z8rAjJBDjm1v=~^;G||b|3zVg(q9_LEL^h2ig1B?# ziF(sCesZ*$p^>qY(dW;q#?-0#Y@ZC;7%VsjS;Ss+1bzWE_?=W#7Vb%qo#@|a-n}kW zJd_~ta8&VTw$NAWju$G`Z&N2F1gZL&8kwo+?X2~`eqCKY84$irewe!3yuPg1k^{}+4 zpI$PoZXo@;cAn33`hadZs1+tl6tLjiIRA%Lv&8TE~<>vHpDwe;n_amHSE8MzRe;%uU} z=kdjHyJL5Zbz}O_+>iv0m!&qzFc~uWho&6c@T(g23lK#3I+p?^-{7IJEWWVb(!J7+_+mK>z;S1O|NP|)-F#)FujYOYNptpFSN7Hst%S4R#{$NP8V3+ z<*7?S43JI~P=jMk4YAo2$yT$&kr{BFm*}hd!%%Xl^d_YKz-o?KK;%5q!Osmv-Ok z^w{~34WtTj17rnwd5t9*_WhQQKRKErRCnfd?Hm{AoK;Sd0a2usOq*aRh+*htB+zS1 z+q}*eubA`(N(ldLIBAh%#B)#}l8_^hET|eyRma999IUzzN@8OFw!p0GWnlEz|K8h2 zF`$GZQzclou7E8rwUu3)W+I|k<;J%-J>>CcmH_U=#ElEH7wzcX*WanzHD7yRMFwq0 z(<>6i76i05`_4C7IwI8$N)3e++P28maA>7EyuIVDU48VT!;v%dYVf0;uXH62(p#ub zPUY_ZO;uI=lroVKE{QkZUtF zb`j}jcE4OW&TZ^?Op{tr~be4(k-_lR2NgJ@QIY zGN1yDAwG5Q`)HGbQe4O>flCLN2|SMa&St0bTP#1NiA7LK@WUcqG>f%t^Ue9143A73 zpa0FF*7E7;<3&1?sN3C4W=!-cMWklFnV{H-5O{h(ifTB!&=7 z6&YYY&)11=@d%}fUva?)Hc$MKXG2MFp-Yt3X zG1l%ncY)n+HSg5$GOR*3NW`#Re+2!lIMCvE+Oe>-IQe_6GTQKmF5X)^4!*`|fQ5Em z>Q(yIoi~ao^L-NwH?`k7xYEqZhhZc=r3M=p^}pm%;LB#$_)Jiu7!}#b=G2;KQj?RQ zmG@*lL^i|X1IUfg7hVVB!GL3)PBl}Z+KRH5JJRa_${8n&qHx4zb~%J^kV-g|sEOc@ z+(rjzw;k@tdFCP)AK*rm*v2yMNqY#jEF1AYZNK%>)l81IdF^+gN}y8MsUy`&qmsT| zVDC=DAu=Us<@>+3+mfzRd-Ap5WYhTHjR+S-ofIsbWC``5rzQgXB79%Eq=DJ7shVlZ zK#*(Va~6Z8+v6KM56vR40XA(&Qj!`)>YatTn@(!$-n4@efX${*tKZ=+`AJb#*;J6EKy)T#i}G%Jsy&g8c>i zcEqjBEJdw@I^SlLMcjMJoi>XokWBadduvrlNM7b9>1t#|l`!>Cmx$=iN8MS1SQJw> zf_anmR=8r!Iz&bTy`O&djVqW0mL35*8A&llMD^lNn?W=U1^<$uJ#^u-vT&l1&OJIc z#KYfqEvMd}Ak=@qdOt#n2q{LZ1$QkXy{W4B50HN>gWiPl@TwX`8m1P<<|<&4X;307 z73K4i9>4|}!7xUfmc8kl@e(Cgp|7Gc{vkLA|5R@sj@l1aj{$#2kxQ5Pko+{*>7C2S z&8A-8jzvW%5~ePP`L1yu9+sF>qz4Q1ez=?tf!p<7evX(BzG#^^}I?^dy@V3BI@@jk0A> z0ITSpQu`O-m`~MTjKi`rUxBmm)YbFO$Ja2S?H@C4_;rT0p-il|(Bw#cpH*8hDD?0X z!}o2#ci?!278?+j4H+33)4=xM2dg@^-yaF@?@z*~U_F5O?}y6F*3eHfZOwM}_8YIO z8uLe9ce=m^ksQU1`O3X#@Fd|dk{|7c6zBGzp%j9J*iSQ5G;TnD>1DwpT{&j*X@<6$ zTIVhXB}h5VSE3m%3W>>`a|Jg)B3PHkZ?TivwNxZbpIjw1iM#HwnQY_AMW3mDwOEzW zQ3$ySR^U}CO0qR6?^U2#pcHi<0|NsKQn(^#I6D2HV)+Dn@AzT*2G~IKzRD!gZ;|jb z04F9WE|J6C{fUB+&BH(e>VgMUvZTd zcC=hNo>UjNZxO*p?Hx7X6*tY(WRH%z7cZi+xy64BQ`^os?1`utTc)NgykLNJWHaf4 z7$(8$s_RbQ`>NZ}69b8T=voURg17zF6!-!*0_jSp3oFxx=kNy#_2 z{1eukM%B;z`6Bf4JsPAsXMI_zab~Uk5R*9ymQ7EXO`oT~YdckJwc9PP1yXO~a z41UK*zl@R~M)VEQxq6toPlN&41rka&Yzcc;=lOA?*93ByGVpz7`>ow@>t?$fHj^6n z7W5QwTQb;R4^F7)vGc#(6?C{;nvtCG?)la0DA9&mo?pf@E7)c`&~t}Da8ne`LZE4c8uKr zs&bBPaj>#=@A*1FiFFs&I-mRFa13ia6rN8rJ!A}IjTcckCC+aQKkRJFVNalZg!Ku9 z>2WR(vi1_gg=6v3bMVNLrPB2&F#|-k@S;@sh)W`&{Xhcfl0W;vla=Gw2Kw&2EnTgQCZY0 z8uHS`BK|S&3{;Oy&}Hsg?WyYE(#(-eIS5oA-Z$M+Y6i=OQpuUOAUg|Tq)b+jpsv(u z&&4z}*0mw-GD*quG>N1MIa?M3FfYyESW_eRIrTj1L{ zR%;es-HnZzY*3~#8!Q5em=6jW{0YJ666$l<{5c*;QP*x10$)sQ#e=WtScs)2_Sd^z zz|EIb8$f)RmNo2}Fv4ikr-mSbk=Gi#)!b?s@jHwT8Lpb&LwNd@VjA}=>!h1n^@~Nr zvyoBPiU>ISJwwu)!_$kqJ1f*=^VH%-@&YQ!odj?DJ8bnPn9=l8&pSN-O0qSKA;-E8 zrd8}Gb7E+JV$IAAi+%SW-AR_9?qZmRRHv$Ks^!?KI9M49EMY$2uA(DJHV|bW_ai$~ z;)^}gjd(`Fv=p^Kd63cW;M)_R_(k`F{!gVoi^uW$F@%PD7jL39-35l(gLlJyD)3p29>4wi4Mjtpx>0r?e@ZV2*w z^^#EaiOpO^A?O{GwhP=}=Se zjEZm)wWHK5Dwh!K#4ye!lMKrdalU2DKECc}+032QCCci}X}aIc`fLG%z(h7g_Q9eINhC#HBNrYAK!?V=dyIiQ`RkOeJQ; zU;x)tRdueJJ>sSf*kB4j7?1N#$daqH3UtFUXl!cZb%d`q7pG!on$%9OZsZgd(ZxMF zPBOjZ$>o((Cab+j_QGNfAXYB&ygj(gjgw)W-f*9wiQLenwHORqLdORPszNx#$B=%! zqS_hxpaJS;lW+j%)1#NsJp%Rf6sGz)0bkAC%t%d&`{8i@`(iB_JOm0O-z67Ik_?X$ zQC(D&YVb4 z^PCFxL{wCi3v|UAzEpTBtmp-otN@i9g{6DTnU>vo4yCBgHkwfZ5~Y3Cb9PUh4OK;wQq6-8gCz;v)k^){<;n^80s`$}viqNh|bJi7YBO-wyJ z)rY=*@3tQIMej#MDZs(?r)@c7D*cwb_D5}-=l>O=VXBa9LZ@6OC`>P_UgMzPi%gd; zlLYFgNw;x;kpdJ(MG-atj;WeLp3NF-E_WB~>BUSLfw#WG`-De89L=Vpa^E_;>*3Y! zl$b=VccpA_yRch07EcKP?&|D3mlQ`EYmN?!6aa@eQ~B-VC_VtI1iC(KiTH+bi_l!; zZIOd1_BgEL=vaUDtx2djjPQ^r{MqCu(i2qi`bE0ov`LhPI+D095u20)vx?A+l_Ddp z)d7uf^`*M0t89sPKCIoL27GN)bhvT!(P&TMfr&@jwO#zbc>m?!ta%5d&m}-`&|@qA zeRq2NNdJU(#CLp(%T9<$^Cyg}zdSOk2dOGq!H}QmZP~f}Jtwnj{U9OZR)($*0Iqo~nwmv@D?j9Z|^Ce4| zsKbbrOf4-C?Z8kh$PuBJ`)`hG&=`o$eV!VlbOqgTt~)pY!y25-WmtKR7MjX(PXiI- zAV;=eXCbBYgq%3=9WTI)g%ekEjRWy;;(mmxVkSJ86=hUkqMWLBMbc3!ed=z8>2K>e z!|)C+u{k1^$xz@g53Ha1@sFqz7XdAmC-K{73wd+epzG%SMCLlr`Q5@FQ9#B*Sib2; zQ%KsoYoW4M`eXq(XkQL@e7r3k>Hb`Fq9rZ0uGchKOu#Zi`<`qj8>kut< z?lS^DEO-Q1L^8xJJ?!^>h}%{}Q$+WJU)Xz{4InVVSE1GsQem27V~>RGn*IEjt(L;1 z;>VJUy+6im30*3$!4-xcJJCTen}HnUQnt($rzI&FtTtJ@2#TA#%2$LqNBt0>={0EI zEZp&K%+~e=1qlDsZ8+zxYhycW{r#buaNVD(Du8K%xTIb|fSWWP7__-kL^7w9-tjkW zWP&9#iK-g32b5_3AK%2APG{{tZ(4UN_V@LY&)ty-SHOB86u}8Xs>tikS{EwjD8m(A zjyByKv2IgckYX8QO8-PF&*P=k5`37wOT@ds+j&;GNM+3`T+&g0V8F5oMZpSXCjPe$GBYttkr;XK*g`3dQVi z)iiLZCLF6%4UYLU{L~Nqsea#I^3evBUn3p_i@9l05z}HyZxFg70*sdaZ6gv0?X__%fZk+ zot#8A`1#X{gEuH1zuht}>IqR*i#Rb8W5b&}QS-`9(8WyvSJ&N(Q{9a1G!4(QIIWRt ze0D;~9wOF&_C4OzXf|!iC9i0V=S4||%6Sg6>4tvx%zd2^xrM^~L$eWe= z>NZ0SmN^-?riyP+Gm~ET6rlbL2(h3bjquk506e~!sdgilx34yqd*VvnAYliW%@f>@ z17fB3DYdls-Oi}>i5BnGe6p6Owld-!f`yquKA8PdfH&`~k=+^ir}JO>Pd=rZj|>6W zs5gGu&=UQM^LR@APz1N3TbnEzmJwpDxmteVqL3P1kMh&i|3zJNQgb|~t;09x@Xnq0 z%`sSV;fsuKP^*_Ul%gi`%q`j!0Vqb~#fp_U;^qS?bkgR*DivL9vd9Gd_*kD_O`fAG z-^{RRa>zVj<_~(T1`4fKt6H#}%m1;MuXl8|N>?&6x~e5OxBq?oXX547olRll7j!K? z>l+6T^Akx^Pr*NkS6m3q+%e#o*%n?Ca^*NMnn_Rp#uxprde3uCRsZyC+o`g$jo;;$ zj?iHY8>ZJKLTmd0RhbH|rdg^VAa-9vHPLkbMmUw(2%KA<7BWFU;N3vD z;V*=UPQRZjhL(LoP5cUL>Vlym@=D$^mm(93k#n~A3O4s`;WU49CoD5<6Sqr{L@n_sLpaHsIn6pH7!r|@J{_|9-!9OhLhRoCiCwAD zFImgHMqUzmyZ{*JG(oLCPS@!38kw3d3==BgB9>>MSXf~7^QvOYunZ^sKril8tN?SY zHh+yv9Jo(tSzTbzg!>;+5w)AZ5-)NJ6FDOlzG_BMxCIFeUKmn}Su|1nu*%lK5nw4==@C(FTb-_m8` zFlNK(55=^vs?GkV>z@RZoT@SQcteR}=J}tSJ{FSyT1tyV1d%?rSQMI<)OQ=$OUzBO z-LzxqWT~WtV97>FdTU@WnkyRRK&ouY^vC@DEiYn4zX=m}>deGAbb1T6u&8^`rtwPA z^B&M#l`!}4A)ON=jLQCtO9v_r?`6TLkW@932zi^qGst=iZo!G3mniu~qQQ}to2@+ey>auOy%GY}cTwBAdMvK2f%k>#rW`8o62R7tTl|Sg94s(N3j)QH>$4yRcFMADz4!WZj$3JC5_K z5dZ!bSZZ+zu#lno$@%LWUI2ccM$-o6`g~T39t~s++2^& zhT=wrnbxrsVFe+YmSDu9_(w$X@LAT87ezC7 zo0WVB&cU-&*HR1HwYr*)NG1mS7$_(~!!%(wDQkaCZ5GR>0e3&Xq+QNJ^t``j@4lP% zK&Iz2jb}%P-0VV!V_y8s7XC?ydQF1EdMF z!5?<2sAey_U2|xo-zUviVHi5SY4FsYG%e&D0t;QglQ9O|O_DQ~_V+b-du7gQ!erO> z_9zq)c^nO%pz!uQN?2n1&T4ygVm87e$vzmQATh1q!6OpGg@>0a)0x3Lds`htc1`DE zC(Bf?-w?bO54-w3?Z7Zej9kEf`R#1^6;~mdRba|}R zh%$QIU2HcVqsc^;S*qvf=heDrEYX;D`Wq0VC1nsQqxkG`TiDf6h+)zG z8t8a|9` zC{F8?smz8k>aizMYhoWZdaeEg8kv$CHZ1eS_`Sq;S|Qu*uR=rIn?UFq3;n_M$-b5{<(F+rjlpD_ zR>~x)-IUa8Qkt_^+r(c$-p9k(ttgKs9{76Yd(7P7^OS6tDhqH8dhY=JbQ{dZ%J2;_ z0yl<7WPSG*AnUM@snwk-e*d|z_HZy3PTf~GZvni4yj z@h?kJK;Ef!>U%n7@_9?^8_1yUcZhX5l=@zEZ#Q;AEv@t=M?NLAvM4z}_Q`Py2;Yyq zoX+=~2%_YpnW53Bq9LBQRRx&MdKVnDz-f(sUO2iVt4iG;AzPk21iaUxp2Y7kdKi&4 zef0N!FA#pd69Sb5SjHJ}g=XmyH!!1q_)jDl?L%#l;zlF7+^5I@u1Aa+pEICz&Aoz? zc$dksv2#<bPHWAq_Sk8g4ENfY4a~`e<5iSoUU$dm5BCgv&TkOjh4~Bds8S- z;{f0(C={%4UH-@)-mMR3F)AHi@NT+MEgKe#$7WP1E^J*dPZ6fUZLF@=Eu+v8*7va_ zx#7~tbawhAnlG!~Jn%gIoBK_BU(I9io3-bCU8vSpt9JJNUEt#U9FTNY$S2ItBd=Af zck{y5|8ZMcdr|z(twF>il8`d|3qua161B>qac@o0O=FWULA{J*FQe}#wq;spiHih~ zFsZEHOM=4d8GAz|(fNs#MitTD>Nw2tzKd7YeeFLvGqYxThp55sj`MeuAlH_1Hq~3*0k_#x#%^GQC&la?afJ>RFP~=+K7Lu(PvZgg>CbX{{D43y=nQo z*H-7`47u`o`#Zimb@@x1U4ShXW;n`v&oF}Qy9&nDfMeTyU1dZLwjKZr2LD^CdH}Mc3#*ILGUJ89m*ffb1nDi%1ll2uqY3suy z`jYvR(;SfHt`JPr0?KD9$P%&3L3e+p!5B3JR()NF!Xb zA;AYLHR+-jmDfCo^lpq~-HD*^BA63Y?ciawfW|n0y3?csT&9+fkDZL>n&dtoL+jVF z&!dEoXUpmDNSgYedpnPIS-l`ab9`LukAvwxOydOu{Ga`3qq@4C=!HP4-+mCpW%tq5 z)*;cwu0Is2`?81%&-GyGm(X!Sz_FRf+b;E5Ci&N#Q)#g+3IC&8eb8)j)O~&sbQM&5 zxjS6wRTFMx>m{|&zR~~GZbJN!sK+1R+qMLcK(M%}U-PjVXd&+{ewg&TOYu-|{QF=i1ny-Z#Xug^d-MVG7syNaW0A#0L z{Cn&9`5}IG3OCO@-q~aY&-ShXasC`6M4Ei8DkHS@?rUi6$j-rG?OC7O$WPoMsLSXt|MvD;GoxTFeCsg&9ZMjZ&--%)$X(Q( ziJ3(QVyfCxSD(y~bAVwg?w&wOq%Jky#cz>fQ3UVpa3oDP2wfI&y1QFkylB22%po4m z0X1+F0{mfcMUOO5CzSjMci*x5oA~FuaFi?`RR1UI#~|M;=o59V%@_=hZ3s#{5Y+OD z?s49qR*6`=$r&_Dp?hFrBqug8Zb$@W2;?AUYLJV9-bUU12BD2}AT@Vv?T96%T2*(X zH;1QHMwL;@?U*DNoa?9#QB_p5cTUdXMJiMz{E8Ysy0i$`P^js7-g8;!I3U1* z=sQ*2TJ!q8x>NWIm2@`b*OR@rt*!0-?L;dxIXBy<`L^tb!4PhFQ|nVyCC&!u;|55{ zhx+$fHyNzI`WJ8~slH3)F$eu0`x=aKcyGEv$8L4Ik>W2$$QkPzVAgq3rmUd%I~C<7 z8+hx;l+Uu%kcI-PP~RfUMLQe5QPFE7|0)Ld!d zm_Avhkq=f|8^ijibv3XDONA@d9GX}#-%7XGgdD2$j04%$W1*q2er5YLI>$)dJa{^l zH2AM2X6}*T8XMFYtMGduH+P=Ol~KOCdyBQDg#FAG(iFb+Xi!^4v}m~R?_qKsC&Ph z?FjIY1$YLXzrLQmxkFq`=(-&?3(~e+22)2t>5-|DM6}7S8#;5A4|w2f7U5+SX!5 ziJD1{d9bA9fmXtcm|w%BlOC;E#zwfw1+S5o_q%HAl2~;0;NL%^VDvOv(M+i?t=sTs zTjgZWBk&2Mh{*6TZ5jGr`BD1qY>pJ+i9Re@du>&s%SgADDmJge)s&|1=lDOA{A0za z`=*8e4=A!v1{e-wmuC>UxO^MxKff?@Mq?s#nuM=jzeC*`VRK^Fz z_l8AsZRS&n{3#S@V;R^|)k)u7eK>Pyc>iimK+b?5a5!(nVAtf7go}hw9pDZ4QiVGeT>Ty%1lK)VPGR?=BCMfr5Sw+!_YdGncjN;?hSn&n(N0@_TkB6ZSQ3S6MmJyS|7r> zBn1j|fyCz$Zz%#vGCNwDXT!ujBA%I_5xx$GVOAHvUF1Kx_y6BKo2<qA!Z3WnR{eCGWgj29dCAK)VoGlmU3{k zUl^1|Jz1X0p5k&gB@~nYQ9L(Ug@dT}vTNK7#<)8id&XUZ$y6m`mlEg$JAo=Iq~Gbi zmZVwoteYLHvHAs)q7SFIDklmB0QQ9j3RR*J_V(%UY{jC)qscH`hCIataenV(mMug> zgg%Fl@?12l?BFvHnAZ)n>>X~Q`Oe|WbNL@O2rQwk%d+pzIA zL;pub=;&*6_}TqxX=yokCek&~xvhyV;mre#vAdb-0RZ<0uBWB%2V+0hxy)7`&Q|Qa z(k8dbT9EN?1Yr3DnemUQYMvdV}A6i}HW={^bwiGH(siV*SN_5k2yoIaC-|({Lf~jEf!z z_xQpyBPo`_pQ^|a6I7FcPx+Ifg3^bn=q%am#mS-~`~G2DaK4o}ZDHON`}jXo60a8T zQa@w9eIoZjH#Y?TE-E9EfeyKw7xA3L2`BgyIwQsa1^x0opRpK*$zwSVRYq*A_+Hxt zWtgf@4S9}Qbxx)5yG5F*uhRP<6<%vMb6Z7MPnmKapfX52xfIc)cELXMS;%c_$i|^X zzB?#W!X*X+BTMYg5SNkLW(z>zmVFfFK6KNk?n`HbM5{W~A4nVP=C%#au|FJZTYW6* zZw!>)ZovPdq(?OM-En|vU$3&S>c#bG~=%#wg}{F62V@#`U@<#@Qml0 zTUu=N$zI;X>U;=^c6@uuzC4l6{MQ!)To`_mz=H(mt{jc$0-3)IdmpgOR(mc*(Jw9*#}i;cM*?o6=cG zpZQi2;t6S7v;q)=HWql}hC0;V(!=8k4i&~o{gXoYprutBX5rXZjoWQRJ*8*Q_xFDy z6hVa%3F^Rl5-uxI_%ng;O*47#Ew99Dy{c%yZ3*?jcgG(8KM{2=UT8+Yl&%BoX5qyk zA#xh}GLv<6hJ5idT(%S_(_z|Si?Q*`lFi@xmRp#SmlhYVp!Hfh)DAr;haf4vU+**Z zfmS}YBHzLf0)5PDcYXu4;mTdOTO?UO28TFEw5oJs>47OqB<@C7KtSG9HqJ#BfcD5HSh!u!DO_Mr2I@W$1~7? z6M7p=KK#8X;AqubsK9T3`5)8EPm{!6(l+*BFw>RMGD1Rsazq%W;Tru;g2P|7X254B z1Pa^<#H)6aYdm@8<>-;S+wYQ#WHz|EW%Bq5e5h&C5SbX5CZqMO0laPyNZ_aV_6N9u z8HQvH8LO|bpASNy%1_TA14Wadp!e6E_eKz%A)%_f+CPB#ZcOa%F^_pcDRIZsYWQKK>E_*-mFEG)c3XFQa3K&>+3|2)XhbGG{yV?vDaro!< zUmuGk#SZphKwfTk^YQG=zAnrQmsW3kWPd0woP4LJ^dQcSt==n3T=u(-P8z-7g1cme zo0FG1yw`yB8|Y+shjUM?sbSx-cMbov=K1M!mnIMp9= zSD|l9MOAXX`dI(Ll*xjF@WOAOZGcKBh!RVv!_3PuM7aGVLyQpR-s0&=q>3}Gf0Cx| z!wth);oRh3Lw9CVqXPDxo6@7LYxy zBM(3S_A<*w#f9`1K4WXL-lgE)OnrRCmvfdK5RR}y$)ec8mHXZeH#x;udEkuW*hhsI zP*-dsvpjxFnG+dCJyFJa9sP9090iKWN znbojE_;BA)(ol`M@++40F+=pP(I*i7NIQe1_rD!pmB*ZMMV9Pyu4gl}XXOg0=d%Rp z`s%}upur+(8j@9Azjdeoiiai}{n-69iSz$N4LLmce4FuktVOQF8zg1w|KcQaO1`KE zRtudOc2iS6mM%DR<)EC^pI+svfj|BIX(}+dVJG6UOfp%8NUuiHqRV(g<$&t{=>y+> zshcL(Zew6_fwuo1z_U?SDa-k@!{qyl>VJD7Jw&Ov5~OmwBOt~l+Fj(ri~$eBL-3u6 zESBZ(%=xNW5fCvZsiR8!{^jyw%6g8OXfAIN@V`+8gs^F&`-3M-qIXc+*w^t4S`ycX zDbBLFYgi@;Zf(OXj?whI(oiO$jEr048SfCeyR$MWLx&7EH%n(o1b__*+$~5nc3-$w zLLDc^gpkWwbn0L&%2Um$^+v{<8)ieYAM}QL0i_KAwJ`Wg`QOHl_f)cxllFiF(QyXY zS^Vx1k_Tf7EA0(0%umG7Y^p`7JbQ=vWLm<+!-+bPr-t*WT_?Z(f)~Z!+!F;cQ4xl` z!uYwojK8QGs!Y92)(y|aGxS;#;;gl1&S}GSe6mh;UbveA2@2HbT#OtnEbWf)7sF4` z9MSqQnX6(k0tsIl?`Tbei%X*r@!TH|Ti^E~ZG8^(aCbc&U9O$aq?3tG@ePf+I8oCr zU;w?Gsq;HY=_E!j-2BxbeLp8*1z+~>(u-xuIJp&cLsFT#mzNU&!gTg7Axk`J%ilk| z26;PgTln%8pbt_Ksb$mOVA1sf*R?2Ll==n<=$R$_6VUmEaV!_^|mioABNx$(5 zexc7=b-kG#T`Cf>I9)LN-r(pA%1dRLHNVmKu|#OOWNyyA8IHgA|Jd?SqKrLJ2GXW4 zMO2yg?1QcCj-D95v^xUd!Zer~?8NQa5M+D$=@Fo`uF!M*Ik)qB8r44)Mi|8B7H}-h zX}^kn|A?v^3eD~BG#}c8ki2XH2}nTxu0(;oE=p6OR;Z4lUBPJ|GUYSB&?08#*BzHY z=d2vHNd*%plbxAc_=SWC2N5e!-=etPQO}{Ocz8KaUb#_Le_Q%A)i=v)Y2sGf9+ad? z>g;UMdMccg5Y3KwT+P?|UlC`=hh5YC<5G?0DJJ`w>=F^=q6)|MHD)5x?RpkYol?b> zL7rz+2yKf>(qeee~)_a+{<&Y2kuS|bTIAM>^ zQXh_SFldG8_rIL5HgGG$s)6#q-E8ePi>{H5j*qOjeSf`A1u8%q0hiECx%a%*4C^~6 zHwhf4x9aL&JrmJVLVQ^VI^LKlqxQLG2L?KrLFE{RNV0vQby`kdmCj|0Hp{E^cy93T z)yA8-IN&gShd1+~;SpDxEV@zTQh0jA_L+#}fDh77CO|~@=ThLuwD1PwFe<+T6Z6!< z@^YRE1RQ>D@FXo4*xa49YD`0p^nBNBvf+5LZHeXNVX*|@4-xWlPHV7wmL|rzZ_$69 zAdGjYAp&Xy(sAB#_%J5%C>oEgPkJ8gYrkpHieWvYq|`{Smq@qp$L9+O6mXxP$bku- zV7ztp$uI@_*lB!QfZ+65D`u6XEPxW50A4g?X|Yal6{}Eo@di&Gp13AO(%@FA-|#|V zB~V;`xqBmfWT8c5TBuSV2GzMQVd2z>vd?U?R3Z7nvkg1V!i=p#abrcgI%b=3OzQyb zKUj2h4LA=bahRv4X1^tW^oP8CabT?c6e{K96P04OH5AoD-RM_5OnuYe*;Ij{sgSy+ z?e|Hk*rTjy*|ojy8<;AMihXu%O0qlye;@H6*6$b`>V^qnojN;w*V--rhYp8R#0iC- zujBG_?j#6})Rc-a41c3niCs+S=g2f7y8WvxLq!SQiSrdpE1A7U6KfXhXbg0Ur&Avi{2|CjxrqEdJUo73 z7}?=&!L$Enw?1zgE_rKU1P<2G=`iU zVp*`Ds&*+6U+D^Y(_%Cp-I#R(a+%B;A=*_99@?wsD7k>4z+PkR#tkm==FjTS*L7wnps(9BN zvG43+jt=vj1+g&tT$pYE|Nikx$BzbAMW&*UPT{h_fZP0qP2qPRPUgNpvRpjuqtK#l zGS!$=@WTU$Z2xR+DQ4ESmyG+VGTO?hG?nbykC7(Idos`40VXCi^rW@p)pg}wtnN?l z|L$0O109*Bn3?8TG=FkpYVu0?gRHV^vUUBf6&I?k_je1VCzid-_nBm0^;N9G*%q2? zXj0z7%jY{`n{E!+x7z%3Q?Maa{Se{PL}49N^ibgH8ms(#@BguHb$+r@lAx6#4&h+x zpW}orwaNwUF5v0RgAyRu2Rjf)M5CJ9sm8HM))b?SH%zzhq~r6R+YGD_HM=`);2H?( z{C(ScaAvx4uOak={Wz|;UqQ|<2Nw39g$*-g};LDV3*a9P<7)oZuGl8*(}tkh6* z;11v?VkMldxIa648h9E2U2Oa}c2i011wo+p;^PKJTRDBD< zers3feYZuL;dm#y{}J=Fx4u;A?%Vd$jiv#q5)XB~bB>ZFt8|_MEonlnWPfbh$@}>k zEx_ldY{5AC=gev>je5f^21U%4$U>OB5&~I+5fCV%#|kw<3iEX+ti=;R3jzDX?Xg?% z-!tjKiyushQwUJ%Crm0xiE%5qw4|c2w=pHZ(~d`U&2x?CFO8%nHlu!z|F62x!^#B4 zMQQyPs!poCsxV%p>_yfUVk((EIHyFc%|w=TY|1RN+&y-&xNzw!95 zl=8jTeh?CD+R~tn?7{F!^YhQ1R}6_U;+iz!EMwX2E?FH=?5guH@^T-W@fD&FTVuT7 z!PWWQ8P?Gaifg@esaZkk6R|w~^nEzgYI<-DNlVjXGtUv`Jzp>vciq%6Y+gpVyOUr1 zc7@G^<{islG~Zu@hODElQvmzqyaT(;^*_~w#jst$9Y{Gd#`S=*+w1#-kbX`-E*jE( z^8iuTx?kUVq67Ak`6Lo-*q&Hf464EbErJjxccUcky%?>nV+Byvx;TWy!2YWlN11)eTY~Slq9H^g&X$H#( zcu=@Z4I)wa5Q^DP2EyA;j3~Wth^M|+S_&OERr+=+FJ^AT7@k1MHdYGmBBapxD-d}4?CENBD!f-ff=TLq77<4rE+cVxPbD)9A$s( zBg^on*AQV;C~k=Lc#2*sku+lsnJSzYpI)C^Il}v!x`S|}emN`F4X)2&&CpA$Q?3H2 zLhDv_hyJh~&oHO8D+Kx4l)uD9W{RqjwRf@q{?#h>L^dqvRE$ z$JX|c?7!>Q!1qFApfYC^?woR)Smn*KuL&keIAl(NjxL0}gH>}2@c7kHn&7z8A=X-B zSYK)AW@%BekXzWEsc~xOkp1$zw0nzLJcBvQ!*MxH(DHID9W`(E(O_oD6k&UPlM}PY zZ9X@M(iZyVh>(>v&M{1w%p+s2E*ST49VTuK(_f`DLnrHfokC z7B@gsweleNfoQfmlJ9FV;eY>JA72S{ZoAwG0NAmPd!8&Sb}~>I$=1S7F~qFs6AVGR zFv?uc{cmLNGKH*bHt$zF$%ad-W3PnrRIOX1jb0N24J4+%y>nM!vXgBN*1vDp_UUNo zP=7#rHr;6TT6+nt-pty>X9JIL7?Umghi8l0x`q9)9{tP5$E?*!-iOrEfvHAumAWg; z+Tk3WOyk?1)NTQw+{vjP1cz=cs_B~Vf{@n3^IJPm_l+E#XVD-Se^c6D2iZq%|GKA>U zL}?i<DNgcN)Ruanc0;~=?_NB{N&m&=4~QNjuB|IG)O{ON-WwDt`jGTcG z=?#K4of1AARv*KTa5v2ELK%*M8DW5;Z4 zG-+(xw#~-2efINy=P#^r%{Aw^xsbypiEJ5woQlcm+7m0^(A8l_I27ZSla)7O9pB*Y zHo5gFcGl0E03~l%zctoT{EF+DrP5uo2K&6we#xL9L^x)V7qF}GzQ-+4Q9(ETRXYC;nJ3fv4MeVGNmr zwZG@Q+73dE(k$RS|l}A!8=vJ57?y+)|53`+?w!22Ed{47U@&XUm5&a9*{7 z==7*uigfkcp?e#}z~o052EooN25#rGtSsQv;Yw%E7N34{#s>_cf^GP6p|PREBD2-7 zYN$HP;T;H?y!s=5kYYv`Gwt_2VkGqq-2%Np7Q2TrotyV@lyCd-WhDI6!6D1EKh$5PiYNbSYUQ`cxABpYY?Q0sb zXsUwfsfSX^bq>?p(Ev)ZZbJTxG?>|V|4D_mJ-PqGHA|rSs_Oh$F(N|2+E7z4kexv& zg{kUQc{gPUXYa)ZSu?+>zOmN7!@qG5ul!|#^S%Hl*I}l?9eG2q#q?ZmRqwJR+d@DV zurLW-0c;mNWb)^)6?V9ABe_A)n-qHo>hbu#TMC09Yu;jc+*Fix`N^Eu&bUwmdwl8q zpL2Wj^%?O~Ymu8@+tqGvo7>?MvvEr~goF>4%P4wbp9NPJF*%Ema$jAa0%s52>=to! z5PKtqgY%|Q%q{v|2Vlo!tqr;vtdr9H7n&5fK0?sXRpdRQD~-~Snl^o;aO7(3?Ia+w z$nny(h0gY})7sX{`f2dO$j^f+{+g+v(eQQfu;Z)DW_?R&y@i^?=b~#ZXf5KyX$Jmw z8__95JfHO>jB}h2-6P}iy2JnJGK&4ynVUT^iF>$r`uoQ^nzK3nbs^ZRdJ(;o?s*C@ z8Ah75E*)onl%yI?F{>WrxF*%Ud@2b0zS8r@Wn{Fmierz`0l6m=gt|^`MkK~~$Gpz@ zRP+z>YS!Pvrbl1fOTpi-;a|KrK=HJp7C1ncB-j*e1xs({}|ezWv+bk z#N5S%OC;BL-MX0}A__vnSY;4RNf`u7GIEZ5=Mb^)lfIGvX4X-sOGA>uEdNYm#)j|0ah z(5@oyOoIvsU*F*UBftiGI+~8BKSp3i~E3 zdG{j}t&WdMidD9BN`6Jn!OChZQG7m>8FG}Ia$K0bZwTd|NozNn7bU1oZO#_K`s!*7 zV0XY8A?d)Wrb1ks0S~Pg%`gnc5G+P{-%B29#UuBMTYmwkh!|3=l9zDEGO?mvm4XEsp8)FzXxh005Z*~5?W^6MNoZw zqgc6c*bVv${GO_gm7V=UGo^yT@|GJUk`jcDsS5*e{`@u7(-eS!VoE$%+nz=-QH&tx zC>%I6L#_#E>+)_&(m=8)t^=5m5U^}|%h&WF}QQ05{Hjyw2PR>{}4 zg2~hAp?FD1oSJ8VB?%3lfjLp=QRyKt#j!P`=?$>m`*oErwNJCY=uk)mgn#V_OnV%isbi9nj zt!2UEm6xidg(Ku?PuksvMg?#XX4O?GJ>p)ozfdUNq3t=OBtwE8&f@pDk@G#d60i`n zfpAvvrym~j#o9v2!|>(C!w^>9!rK{IRl1FymL8|+6zwDOQ-r%u^M}Z<+NK-UBr6EO zHgn-YFN$%kZ7|>LKsfTr-Qh&4c*9_JRX0mX2^i~c2g%*$VJo*GyIuvHz7}d-_e~4E zt{nxpxrzpgI&p68{GJF23Rf=#PA($-;PSG1bVynUK(RzPI%G_PFrKoB?+E zv#%!6dm-NNd*&PO)PZod_xU{xA()SRwC<|sTZ~tsHVYnX(3p^Cw#~gtTxG~Ume(2f z&gwQ>Kr*rVY^@q`(1rb8#2}mw4y_t43Fa^<$^N4JMj^;h#PA(QtdPEne&a=N$Lrk= zZ@_vRMp5?uzR+;2rB=>mb`h^1DteRvDU+gGK2+9)Z5nRM8meiR_q~~rasc!Ac%aLQ zanv9Yvu8|gyk$!Z_Tg{u%>sxnjEMhOt2SC|F_k=iRkCM45lrR0Oq5(aiBR*#C=>9s zXoaa!2I;ieYa655$L^$mARGjY$!)JeHW>5kLbMD^@9qrcr)6q`3|g3dtK+A7_A|-S z%NM%c@fFG|3w-*g_lBNue`PbArKFX*d|Hcpj@fmf9R!cKH?Wz1FbxB(b?xR|Fr(c1 zS01x6rBK;l*R@ifMdH7bjWRVbOv5$5;GK=f#z$IGsL6h=$}1k3Xe_R+@yh2yz^o|& zlWn|s>Vb~|1#^VuSBeVe77B+YQ@`zC9N(zB}*5Mz@Tg>=5hQ;YVAq8_69VC3cZuy+Q z3k|#c`sL9Ty}t=O)5O|Z^~;7-psg)^cNWC-_~g2_^oR0mYvu6$H-Z@L8X8qO_}&U3{)>OTV^O2mO@D!WJ3PhLG`GbtQQf@ zgaptE_Dar3Ut7IqpojXr20K>9GZu<*?FlEiZ`M_eYIe*skqV_p9xHhWH0hwFpp%SX zp0Sl}{ma87`r(j+YuPAUWKzm#s%U)^4Yl{{(?EN|G*p7B{C!V#_Xj4pY;H0=ket-7H8g7(r_mMeLF-+CN4P~wv9Wz}UD;T0cYURv3!rl>vaf=f z@R-(c04gIJCFyw2#OnSnILRfr@zEsFn3D2S=rz(Mlm=GST(mfkpX~EN3qO`amDl%@&<&-FfM>@#!kROd<_ zVIcuN4s%IH<>WX!6Vyciv>iz&vR7ilW_b8pMVe=Zxo3K+Yz6aezN4x>&pr)Xmx9 zV+XwSCsUOZrwa2LNl0n}fYi1H=s9ZTR|+5$28K~K_woW4jGpN|WrJyM>$gxtT?aFc zt^?S7@TzzFF5p@RYYcBC%8ZHW*APr?t^eE>E*0damyhEmffL`$LUK}ZqMImx*`C~0 zxRAN8;?^RXN-D?E-#RxV{vegZT{0CWJuafVYzAS*^!X?YoyBm8`qSvjjsv`wvc1<{ z`&iGCHvv0oOW|&&0hsES27ZDaOTp>(okY>wbe+AHLVhgM;92B$7h~HMp54CNUQ@5` z;$g5#i+SJIWXpjFp7w>m-)qlh#&W``e-f@GD_5VKiDT8d#fwUft_zg@l(X)pXwx?@ z{nAFQ-}C)H_cGZnX%%!>f?AL&PO1>WzskP&TpihW?CiS zvZ---A=WjBF-?FMa8M{L5i3Y2aVRWpxbF3DK(DsGcJb7d{F%T;Vbi0V4T15*=K0*_ zWF?~gZ%=(0j=pQ?YQ$!QPRWL_K)w@rP(7`FYuHp=N+xvYQuw-l_vYOB$+t)Il+oGk z0!_%>sajXZs%%cH38!A+pJRcKmRR(ihHFchc(!durOgruys+^)J73E-sSpiLUAP)D zc|9b{D$iq4yS?Xoqhm6j1Q;jJKKp}xSO*eT0P^=g2Xf5kw-D)=PxDSH8aS~-eyhgv zJBut3F5e4GmN)kX-X0_Q%!4ccqH8`2=xaa94_4;lhi{$j<926UCNI1 zEkD`Mm2&+02~Sru$vf#FT@XWBc%bI5py}k~<{7cGy_*Vsjzr z4d`+u68e#h{Pm-cIjJjaHPNS#4_6ep`B*h9Obyz@avWLT*YWqS7m9glP>51Qeq?ws zA8}ZcdadVLmNUR1<|c{Qwx;8uU4Xo{4;@@cy|T5Td}AYAgZT23^QP3Db(uQq1zb_sq^_-7=<6g<4)wGrV~OYApcZy zvRo^v*g_-C9diu?py$tRyW()sTV?3C3=W9A^S$^I+Y-|g<5=tuyUOi!;t7WOmDHG&Y zFpjdv)F@s%A7aoiu@T}vsm~Z%Tyj7*Oc9N1|_O z%y?P-^8#)mV%d--l)ZB;X0};Jr?iJFk~o!F-<#40hY*7NC5*4-kul(B(X>4Hh{gch zGbI!6OL!|)EFb9P%b;)Ogw`810Tkr%iAl2!;tm)LSu)Q7xpUgx$B%zb3N9fBm@#5# zA)ku~LGZAjr1X*&>y>dMo-tZoHJkNL-B2Egpv`rMu(f?92J!Y_o9~Tj>IkPz3TNvW zJ*=h@eDmD;^jysRUZTd+)ij(ZJ|cPM(wO708=``^Ip*!uNe26Op-R+F^gYg#v)Ko! zg`>hKe)J`iFkJ{jE6`b8GJ&x{(8ydNw)WqT$Evc=Cx7sG6kmNS#UE*0rOJ~;Z3$m@ z5y@210rH7|lzH=NDg$e{iT+zPhaiWvvgA?#dub7j9^IGOe5*v+y=W^N#HIcsBavS- z*YVzuhv>18&4wn^t?$^QH2#FK%{Aycdaq{HJYOB-`?XEzM%9y=;Mm6!@!pk!;;EMB z;$ZR*xSG2f7!Y`aP%6uClc~rP)vpw9Z_ynO^HW*VUGtr6i$v`Hd40Ujc4l+_Vt6_o zu8yk>a`DEgY*!dexaSflz}T;>4*X_#qYgO{i=q>Lpyl{cL7fvsRP;q|g~ zym8~Q$hcgi=c-N+o}%5ux4g>#_#pb6k~`Koj|QQ$3@9QXZFqPG?^rUjo0jmFMw~#i zxiUr!U4-jM7#@WP5<#?XqHD1tfGnNI*YJStw)LoVS|;JPcv*OXOVD%?a`) zRB2&E6+UJCH*yxjK6o2LpX}mU(<)aM8k-(tj*hXi>BxD;)}W@iXpY*$ZdgP9?E%l4 zzFx7#JGl3Y>45fc5~+`gh$a(U00#N-@p0E5MEIt!K0-vyH0c!8q|TZFx%GB+LU5~S zPkqN<^i?O^2(^SApLep2&FWPhl%RyCrQG_xPK?aXb1ZSt_K_eoImkUU=Mr_0>C%g| zj_0O6`0&_^KC_kd2*v~~eck^5rn|mm++6U%nrlNsu_BZRC-&Ie5aw(nRqc?^JbN~r zcI3CsW5h)HB`fyi1v>2pssO`*j!v6=iw}_fPBf%xGhWE2+DIMDZ5^L_o?Ci9$o0A|SwYx32RmU`@= zR<~a!?8$TFC+S3E=jKm_i(R9&CFS*Y*M2qBxM+u}51`@=%B%hSmzm)1D&qut{>vP(mS=5zMFDYmiv5!=Y8hm85e-G04m#Us|YI$iC3@c(8-2H}x0oslP%0#Hl^+hrSW z)6IZd-+48GyZj^c{U%=7m$z;`(uKCMa znmmSQj?1lGY(Dbg@1K^*i+~2LB~-?^m1?EqBD_9^J3x{F{)lY#G7L3F1Y;y8z&!nN z%%#N%&}fJ5S>|$AGaETMvvkrR-;w*g9CWkJI*-*~8$`hkeiUWf890%7G)Y zZ*MOBG%Nb^-vY5WEhwf*z;`?_z`)vsX52wMv8Mi74wliMn?{RnVZyofLuHLTIB*TR z+7yE@F5O-V5*g?H_avhg%PunWy6mgm)EK!Gcc>X zX;@|Vf3G{9%Z6V_>;eB>o1d5vb^0phhPujXfKn*ku_U{f_FERD7GLx zcklnEQSrx5R{ti@PhdGHW?$`+#q-z7M}eWjC~~rk7tcUryc~y*wC5PlR=TH2+P{4+ z3Ik3A`F|5pC6n{V!7^i2o9`@KHoWvQ>944i2gqvW9hsNxAfAmVo|4ab-E;6t2Reqn zTLut=H*nDjm?w#n#3=bIh$2J07L{6}E_cEvcZf`Df=M=qHwEdMmpC0) z&59&lK67I;AS;*)!{hDs91&N5NpZ)#(F*SS@A+FC&VKX{e`8mCH8E9{|=p@QUye zRlmBdl|jd@*9aO}`ZEOy)eRdOusp^QM7?}~IyHOSpLgu>+TI*G2c>oWTo#HLo0ET? z6MvI98s!S_Up{nLc(Ltrv7s>t412YG@w(^z&$PLxDyE0sPdCJjRlv-BYD=oZ>YxBg zv>na?j5Ppl?vfpW<=~P%TS}AC)2A{UWxB{?#{@o#=ILPb>we9yj)6Q~X(YvT?G_g4 z-b7SA1O5$|?O}x^Ei2HKg}jT+zO*mx{2PZ!lhml@o4XE*VKrUZ21W$dU;}JNAgd$` zGI(6NEvg#-k(PzxWRgG8)0mHyp#=7reEGaR;4m;Ua=NIQO@Ky126@}t3;T5NvA5Kw zcb)T+_B07C3qgTZCK?Q|!0u8!(3v|fL2;m+yer9uur+ixh5BA=pSgye zHJpZrL&WUqk&)`Tj(2x3S3QU7uBPQz8V0PUSe@UzIe!r86Vk+!wUTdHXnyqNpe=(i zcBi9f>UNsg>51EI)&!AtG`D!@b}}bPW&mnc_BTH|DLRw{rC2K8T08w?pIQhLVi$`d z>dl(k>RO@A9o+r<8cl|)Wvm#wc{Ja3eNP4p zjoS_TI@&pM9scnx1{+<;v-qf-<=K`W`QhMl_hkGD>OGa|*J@E;*)9)3;i*}MQ^sd< z*=Z!ETZr@s%!3Wz`db?_5@YErOLfc}4>Pg~M%xrV&zW;`$t$OBBWM4cq!WM5%?`4H z&sy66;kc7E_E{vXmag(!(pPATl;2k_kx@aqgkEck4kXtD|A}2-o44>?5$R-m0X(w= z-1{-glPEbVqOV|x;_#C^(!}4*o*+s4%9ogDAid(FrjqG{GsoO0hOy*#UQ;sD{tbaI zzn)w7Ug!TnA13T2?>{lhjPXdm{6vfMeGHh6AI#^$xr!JrE=oA__kUa_;&szj%I?o( zk323zHN6nUTF@hi%eL;HGfJH{_K*K0!Tw!oc}>Y!SHChUU_eyOlsS$#T)MuN>_@M8 zIoMO?Mw>`99oG^hsZMJe2ccQ=aOyTUl!pR}#)+JnstiiLp3w0$(^Okw*5KkTnePD` z2OpcA6unA};_X{odh6@iMNLhz%a>>n87lS^DxC}Owfs666f{>l3?2<3i9cX$zM1`0 z`_GLF76!rj;nwNl>ZOf%Meq?!+N^8~qk`^*0V#W)MX8i+&K0gx`-EAHVKg){tkT># z^EY1)+8g@w||MFXIN1*TxX~cIXRzCX08b5uXcOsm{u?`y2fF%Zhs&0 zPzkm9P$qiTR$}gXI#I_ECrL}SDW|6Rb0t#~e~zG)-}d-+7dA>g50Jw0ysB-H%uxO3 ziFGpmm)oXLOewJ;AQL(@|1TBJU2gbBc$C{GcGgt877VWds9>D2c$pdGyvOSm{V z%8R<%gI-o{<%}(I+2Kxf@-Du5<0pV$#zweyeb%waExI>vk~;R^Pi6&NH560xcimE8 zLovJNp6@m_tsnm~|7~+G;5gao=bgem4NB~*kGOfS8O?@RT81Ff(bbxHJ@}36F!f`) zc8oN-zQBUsEni*bzVg+w$ZQ!aU8zrIymwZlXl!0$;NyVRg?8~*XHp^RV4_HCOfo$7 zBwp-wH`0%Ay+%r%Aa$jzjr!7VX{0=~3;%Bwg$<0X24elc=L?gei(LQEDngBq6gH!7 z2n-r$I@?0GQlC{_?ppm@wwy1^T9NKDhpDk*y7rh1{F%%mWo!{Y{u{C{;yH)-0ESs3 z?uSyDQxUz@HCRS*2=h^8D}Dy0N%Wdy+rhqAx{ziR$u!npSl^zZy?yQzf>BeT8a|?y znF4l!)iA1gx$I{!c&34VbE=Mx;uTJxZpTuw5;FT3n@eN8|3Ecnj|y$>fvEBm5|nH z{CIfii=UjTQPf>Sqnw;`Y_Z1Rr%RGRMtXmj^3Byq*2++9s$O>S;FJ8mi6wm}OGu}u zIJ72_QcOo12kOSk;a7;8!7iwoof?KP%^51>U=l5-wGqs%=Ssyh?9?gjskL`LG;-@r zcvD#Cxj`xmlOd@Y=A=@^RuDr1iMyS49PDEzTvFEx*PnoHtTtlB+0=w|uB`$G#sJtN zGhba^1_kb;ZLpcBC@F~PHCE=BsV2}z4nghr@UExBHemU$>LJ z&QX+?cYAf>m3(Q2BETC=9YL&R0S9#_Jkr%kN^Vv5T5a)~1KmGzncEN+l^MbA^T5g{ zHb(~-JvlydvGBQd7=>ls^dOV>cqhyRSiWQBn>L(n?l|FqDJlYmyV>!f1n(3#H+Nyzr`U6c2lkfBC>ab- zK3@OteSJ_a^+}-=!wH_qa~v`mRTVu!~F=1 zp`ZRtg4^j^`$DZ8S40zr1n2g z3tbnZ1F%c&Acc;n{(_s~*sMjqUO1T!%I_GGmQ+h8r#1YIzmS6j1LU5~Hut2+o6J~P z8l=wg5uN7m^W)BXRZb8$F!&ijPCx2)mIdA9ELNc;soQ>aux(7lh>~g)PU4bI5p%Tu zM-gm00Z{ zSrvQ2iPzNBV~)J_VAh+sYJ50VY+CU(0P1Fl{d6_P{avHHC&V^(p#X1F9$yR1GE_JL z6#aQRKtB2er>tPH9}W*1LVzt~s()7*A9q?6c@Ty*nj2i(?>%x~j|p|7wvRNw@Vy}u z9u#Vvv!yWyE8w}Zq4%(8c_6oSS0I%W5G z--J0DhJXeOaPj2OBvlBNNW(;h)n2X1$#|-GZh8EHe3Gn!&OXG%Ejpu=!@F?kScXCG z0aGlIE7WlK3N}W1#@Pmo8B4!U)~Trh3a990CIgnt0nn)#Mj()#T3G-3?%vx70WWKt zStXXKNp=FC3B^=ZIs2H!b$VXYU4IpOU+mk_Ug*v;+}zw^Wn`3#gwVGfgqQj%aB;aX zdEx7-=p^8nb+No^fP;Umx$milPY|cdDF28(u#=G-0%xKy5fv|}XT+Mq3S+W(+<-)3 z6!+X^(H{-Inupb>^_fCBGqTZCdaEK=hX^D7ErA~6j}P~Yg6XRAwXzzQ^zewHV2K8g z(c&OQuZo2_oV&P`O0Se;OdP&SVue_LsrHA;z~zYe^z>DCmCF@mD7kPJaX?T6`0e43 zh_UyG9tHfy+?u+DIeDJ!dS%|QuEI_pQ*ONL;tR2QkIt_&b#i@Y>0&L8r7eYE zi6dwgZ%Cty4)pm*7Cy&c3{-TEb0gv3I8Y8UWOw3as>Kbet7M|t0oYj?umjrUax`{S z9dfgM1@P5T8(|S=k4Tp8_NknCkCjqTd+=86^7yquh}t`i12e*9R#^y*c-3>>)$g#Kt_6eTXv)cp1?Y6*tN;JdPpNn0!%oYo3+{|+vv~e1jC3KXa zl#`#`_BfLLjb5u8$@0P&W}TTt0jeZO>6PO%^x-QQW=rB!W}ruVo~Oq6HTQvNOwtUg z;`^GH1a%nuMciTS*8*g3Cqcx~)B(YJ6Y89X0_rxM-Fp!=p(fbPqWbMGZ%~^!^#x4_6;=jGTu(Hg$X-)imt1X!N_yKC#HBRrF zt5~8!+(jn%2;DXqK~@YbV_5zZOzAQ)a}=*dtB`>kOr~7jGx|8R)>7}aDgo-GjpTD{ z%F~a^q!eOmyZCttQIU%rxrb3QQ91tu844hmy#KipTOJOx2{FdXCq@`uc0xeBT5t0U z=Gt9plE`{R{*(YqK&S0LvnreY%iC7F57_lU%a=?E#gG^2uu3|W0?EqAU=!WzUb%D6 zZ1fyvTVATO(6ABjeNO?Jd*2Rdw!BZx#000-mx!=1bz_iQg`eIu$@@N##@XZ~w>dTz zVa5=xpr6NWR%+lAr=`mrqs94az{Py)%&??bQJm=}COB68z@HiZt9BTPu8tkz3PU5$ zQbpFNEj1Op=X?`Gibyv`s4lmQv5`!_AcCB)a+)2Sv~8I6?9PmXzH3V!9Z+e15%>Cj zZO^)8&GSqv&aNPfzpJ}Szx%FcLakz;)izi(*O@D{HPmfxY?q$r@as$(GGV2ll-pFG zasO3&=ETvGz`)Ijb(3)1nlV)??(_cc{t-^`+!)mR7_aE=j$GME8re|`=Ke)sy)&j% zSr~IwhDQe-i>Ae~Lf%2hD4A%KAX+yzKqq+jImmYBj59Ptt&S3Le4%lcdad}8ZAK_< zKIUxK0Cm+}Xg4#C_cv*LKgf;t)h$k`2&k5T(hr{9T{2S8zAL3B(etCgw7+{83Q`_< zmn*2{Lv`+EFM%<)As$9R}WmHcSpbJIV1tTZdQ~c>Jb?_(RAi3X8dX_<67yx9+ zk2}Ifo%?Yb+u|TxVnfZAzy4hNKR?;pR!>>rQGRy&eev<}HQGv1gILwB|D`Ag){w2s zj-Z?6*pfS&FHECY;>nf?d4Gg32D~EzweL;p#`o~>9Nik=T%b6FBk+za`qo5xw;xg( z`2@h857T*rrywWesJA{5I(RW7PVbQBaeh(TUykg-lJ_vVXEECDj9#o zjR{>U?#NKRNL0EauH=JfN#BmNbOoA?E+F8UWW90jY>LTd#&_nVs+<}llBh6nDWVG+ z5q4Y|q}eG&RK?+jUe%Hn$MKDVa+OD{;V56T>SnqHuISqUP2vd8CtL=@fN1I)BOY_nMx>4eobtGSnL zh--}36k}KNsA)$bZ~Y_VOY68gFBYri`{mLDVCY}Ke-5#ZNb#*efs{b8QhVIy`es> z+&Gp#ns^l!*qU*x1>Y&ow=f0H=#shwG#)XPd1}M{DVEN4-I$Ft#@)iBC}V7*Tm}AU zX2wv~xFlOzEe`3JXM_=GuqBsSZ??|4OOApRWvAA`PvK2Q5c1XjY#mgTkd?+wTst-1 z6!dI_>8RLYP49x^z2Pw5Y(r9-6by|OP3X?I(`W=93hI=^&?ojN9LcQ>ZSUm$M9-kHQeFU zQe}wckG;3M(_4xs+g2;3nf`U`PO7N z(YBtKmFxb2y&TVf^l#McARib0>$kU8UyyY2&pxAE7ps>1_4UD$?{?d*d4hN=B02=cw50+*Fb&gJL{8VeNNt=muWZR)1FZO*4~r>LuU0 zrBMd%2X5gKoTeyzJZPFV#&wva-F#S9jL@0PvpW~$#V9U_>HZM}EkHC~`HxU&rB#hh z*BA1Rwe%8XpV>)E&2q7sLN!{r@IUkz9IUz6mqg`aDB|piy-*^i(L|DB_`7}vqb^hp zjNm>>@f4SMR`QkA*|<6~X*$9Ag-Sod7fU?OI2isj_2f|up9x90MnI&H-iVxG#W*9S zM$*hLsX?VA2LHK`@K!*n7|~vYXzDsxiYc7ph2;OTDT6*4@fgD!GTAtKt zwEBLp;7O$w`c(k_u}SE;ar(v2IOG2djE)hUHC0rrpcRnLZPNHbpKf;lmZ2L`XpA~C z5|w(XpujSY?WZM$OYg<#i3h%TzqwYN#Qnj2_rzMJlrj-nAe>I4vTeJu4kbZz83vVj zEEd%-R9zx-2Q_eK>a?Q*zQ&mc;sS9Li7lFDB z{aGhf#8Pv4-^cUdCg)v*-j=_@3U(^~URVr_m{RynV&Bs?TTzZAFuhygq;=~uh z{XytpaY@t)E_dJ7d!vL3>?Ey#}kr|k?X1N2~JWrsiJ(OG2A@h%nt=7D$1H1+E8xi{OKF0vp>K~u<((W_s=qt-zcy~Y`a96p zaVo{ZNm9`@C#O@!%;!uoxH^V4A{ zUF<`YS}GF=+_q(T8t{ z6xc;Ex(>7IR#AITUL)FMchP>f@bF644Wu7h9CE6oKCdy#|;Q=dvoLZGLQt@5^ymlQB zy7E_^4e5E@YMzUeq8X+1>#;(7Mg3${Do?@`bn#>0;J1$FPh~mZ7`2HPnxyFI>i}ZA z0=@#*WXW!gLUg zoEw7M^00iuoOorK&Er{rh3m*h1vwISc@j;iSA1}J6qOt$^{YKd;*my zL|=m47`LEgatPKSoU5BKdOAZn1i}?gS?ub~O?$DYR*mcgOld z_CAwVispIIMC+)9fbtiA3sKu$Psq`z`*5KCA=`Nn6eegLhk&VCzfJVN+LRWfvJ`-H z<>6t`q#L+XZ#u{T6D4}>9iR#8*zfu?&j)J^S?DFg|6`wMPFV@JaXzS;e6zOqPty+q zz%pW=v_-pKdugxV=Js02l*NXEV`^dQrqZP-<4B2PbqsBNa^f?=L0W*Iyd08Z6znL) zm|dp0VJbvcB~bg5##l9Xbi{Uk1=EM-GKKRisF?6^>fH)lIcxap`WmO-Hl?xb-&qr0 zV{4-*e6(y+Pri(&nl3^hb_=lH#n*4+2h&yIDr53Bn5hk3bmcG7I$UDJN`|ePxHATS z_x|;eVe$qU^kFOF-11+=a?;lZkq~@12vj`^U@*GZ=dsff62_SU8b^`Ksih=c5$1f! zh3TEUG;ITBMwJBSV|*WkMGhcDcs=q(?WFZ(N_kW~xHzPgrFVA}YbncFiT1C2<@|Me zsX}_0Qu>$Fvf^X>ryRp}kyXW{do-u;D#lD*Nc^%ZX@e_6r#;)u<7XprnxD&VY(knU z(rvr?^%R;ekyVcq-t+JMj#n9d>v{XlP8oKWhfkyL8rEW?O#3lIgBr1~Zr%T(g1;iU z{d-|$2r!maWZPNofsK}}dc=)}O%xmlTn^i{2bgytHvO6Kr^^T=!v|PtpTXDPxSywa zpM$wOY;L_kJ1ku-=XuS%Fa^giJ5ecG%NtHgQmj~z23cn!{Q17Ge3G6g-P-4$>5hH* z(E77yKOpKg<8O!0c5^%QnEq%w)1t}&&VQ3>U5v-Z_9lfNk2TFTo04oY&wf2Va;&ed zaa=zH(X=RTt!d#EVxFSV*;;umC0Y~rwzIiuLTqyV+QOw{L`pW>l_cNur=7@(qw2f~ z8%?SedOc9*qcbhS#VSG>vHI6DaHo0v16C?*`D`>&TB%*oOBeq(suHb@+1yU-S$5`_ z`dNU|!}!orJD^PN`%2l{Vei?1cBAlu4C}>6_KA8MQ#V+G~IGP@S(gd{RCGW zzBQ+BTzX`s41kRhAXGOw2%$al;01n$C0!n?C*eWV4z9_3_t)nr$46{IZh?tqjpDG! z$TT^`p#}+y!faGzVcI`0vi+!yvx0N=gF!Ee@u}+YtFTj3^i_B0RW#*+PM;Xis$KMsbo!l*C;GC;(Q#c~fl5C7=GLlb{= zGhP_j$`pMG11x(&vtpx#lT&1BYU<=` zH^s{l7M9f#RQ2`CVO7!7bwN;MHRqJYf4zl#nou}zpA~avwGtH)+CQQN%K4QWq;b#V zzl47u?5F>mufO1wld^0|07=qLZc5qmPb`L7^H(1pTom0bPWJT5wMPm%Ysth;BCZG{ z^`ft-#9OnB9z~dAw|Q`~2}9}VEIc`jBI}KVYxcIH`ZR7Ce)tG!ij`xDIf;_4y3LdD z$<|yNMX6Sadq4E|(oMQ<>!jMvEdt#Qe*6`0$4mRg3pK`|kvll=ztaPe30rrh#S#A5 zQoY|C+418_&HoWcWae2IagWmp$0uB{LShErr_=7oPTJ-WHEoxq$Ws!XRPo`xzp6;X z)QWl{ffm%E59*apEA(z|@|ny8!-TI|H_tba85@ERI@jR^aw}%GwzjiA*8%^kYU1Pq zGdkr0Nr?S>t}DCkcl^hOA%oSh^TIJ!ays&6foA53Lykf$bVIva)dRSA$7p;k=XlyG zD6M(x)Cg>u&DI0Xy*goGUI)-=WFH_W(b&@AFjnKp^eUJ-CTanSiF8Kn#@?;(4L5Z@`h521X>K%hFHFTI;cO|=?fOfm+f=qdBd!gR{2k5^iEM0|Oq0eTQO z5Y50{PBkWY_d1}`QJDvaqK9dUP20L^Ogk**b}WAt>9?2I`28|N{TB;LlA%0~cB*gY z`-G>l-o<{R>CDDdpS6w83}np?XTg+_7-O&etz=E441C4c7_j`w+@j}^K~j{TX&17v zKA|x%Ap~pZH`*@yT9yqY?{(&);z#dy!->}H;*E$$gl)&_g_Bc=gU<)rZSnsf06sy%zLfm* zqjQPcOA0W&pO={n1lT_`1kwEb*|q}1J=!(Td2g?0pEqkg0V`mT7vGxn^7h5TgW~y` z5ZogIDyuy`5@u)io(m%{eg67n|s_%K987sJ0q2uJpc7iNcu(@Z&E{mmm z#j=Hco{EG8eX=^DtjB*WiYN_?FGw(HW$#y-EW9h}GmhII$_*7a>2Pm)eQ|GG>SaTK z%@{eXKk(VD1=zQ*aV%EyE}KjUvgMj=Q;@}DvP-6+hE$X?o|M&O{4cpL5$;8<(2eg? zL1InFu!{4KN`O@y8>;odbb-L}-`u44C4Y4K3FW}bA8_or?DGRQQAi&_xi2NYpa1P`P#|UHedWU`+@x~@a8Usu< zqpTvG#9|2Icq(M20fZJZKENs`!}pz_=Knw%oh`+b|x~XtnTJ|+^pkV3TYK!51$U3hsYr6MLd6~`VQ)#~^ ziCNjPDgVyJ{fvqTtDKmM>sBINbPdf3zd|_4GUE2c&(Ga2sYGW&lqkF_7eNVH5l{)R zim9OzUdM}vj~@BBSwJaxytJ%J0kZ0Y#$qc4+!)_~{{#Bo_ulp-7y{Ze0hSV243J<< zfIWS>;RD`dg-AY**kSK{@4LyhJn`EIus;eVGv(5RJ{?#c0g}fnkrNdu?1XJiySw|e zw6s8{88&{GjpKD-<9Sh}RpVJ!d;VN#3i&0O)#-L@JQ}+vHE&EtF=;0L_4##Z3m>z> z5Y7!kU2aKkZj<)UfmG}U$>%B4AcnH|m)#nCog{_cob*Wrqq7Dkx`w%O)_%I8qKsaD zH~}`!WL=IWQBrx_PkJfppHq^cqe>GwpPI5sFv&@yobbhoG+Ue;wVP9MeLO)eCe0@B zwna2{C9P!)$)%DKo}-)NI9`v8-f?TsS$W0v`6XZcF)b`?xN2B_U0w>5oD35%Zu{hT zEoB;MwF5Aj(Pg*B!h1AX*FQXQOt>WklFqXqy&WyBQ}MW;5*xf7j+JDexGX6j%J!yt zbb;g(r9~tVTaZOz8lpOtSb&JAWIYzjj|sB!_n~saP0Gj3uU-AtTY!mo%$&cp;8rA6 zO@3@V*-`Y;T6nO&4kaogM>2MJK>(3I&L_Teiti==@-s{2bZ%5ACvFeRfJx(`cfqC8 z#qEmojY@!392wPmV7icQiCA566h8dmBl_`=e?;Q|Wg|`(0P8FeQtYbuwn!@aKR0d3AeU5U2@e&Sg0|sUAr1thQ0UxFX)xqFI%fH5OEL9F~;qeU#3yW zS9xsL+>}T#KF-I|2}SAEg+Q=>(4+ae)6-32g-Qghcf{9$6PCz}!Aa^^$jF2n9fU55 z0vyNWmm`lLMf4g0C7zfNsmK&wo|6KO6ZYJ5vMW5QxE&zBh@>Eow4IF5DhaLWGk3o_ zy6))CB!X&5U_J}rNl=aBRZ;PLz;{3Bk6{5;n9ws?Kd+{X)hYB<T+J_QRa6{QX1o{nUmIG$`Q z6Q=hncol?lVxmkEZRPSL3C8_^DqNfD1ky`hPb#A|TlQZo7Y(%k{`EjL{R|~HEBcAv zDUe{AI}wo%i!S`~0f|_Hik@t1Lx8C$ZdxjvNm5KUmle|Cxg~9(_@1QOUS=2fj29h9 zA@93xG!C7D?_`yWE+#4gRxvgz;dOif0R^1vM9MvM^ zWXhG>2yXUdOlmcUL>s6f!NPrZD;z0buTXerq$67*C<^yFwakhIy+){sRuE$1j3QEv z3hk5{QfYZ6?}fN?8TobE`!#oOY84lW7XMX%yNXNi_Bx6F#`-$S^m z+kzEH7iU2REAQgDv8N~yfo?msLJY@La=*iNd=WyHr8rG4zs2s5gMxe)^~03Qb=A_V zq7q;gLs6{UYic-M7|YF6|P%@%n37@cpA8UBYx-gj#LL$%A z+-i`0YO;{uP;uF%35zApD6A5sMIc!j9F+w@AEQe=zxevvg%?SXrPnRpg5<9xzfPMK zn0tOTj#ov+aRL1-_ic>wgm^U4KG=^cnlfG~ivJ}EGD=7fJ-SZW*YV^$9q$;C3uKt< z$G;OG?VpFGDeb4E%J>!2v7)Cb;{(MIX$UUm2(QM%YheoO=A_Sz_htVs7de>h7K~0^ zBDnyTBTDJ{{BaLG^4>7fl-6JRX2Un-VqJweU?gH+X8^T{^iq<2c+;bLxNpe2zm9O z^!#-qXN7x|wWmXg^;g@=6!Nm7G>tEoUT@SQ9lJaF_Mak|ui|7-39yO?)q3E?0E7`% zQG^v1FpAg$am2(F@?eF=6f&=LVFZx{k_#@2>57pkcYQs$HA+`TwCU!J83Qf1;U-EO;2VW)hY=Sa?UydUOExc^Du)L~tQ*P^O$^R1jES7nTZ zS~o#c-a<^y)FUu z;FmTn2(6p9ZZs~7U7to0V6(Gbg0U9LW!FRiD==a}N8o!9RVm?yV+`c|$zT4oanJ11 zqlb^J8z$G4T8CjD?v|sh(n{MvC)?U!bG>I+E z31zBa@#TXst0*X}ToKYeAKAXRy>4#MPKKodX}BkO&{Owb4NjZ{tAtlY#mNHScfYUg znC8Zkp{dCe?nD!jU^<@b`fb~7vFnaFC;QXVq`EYzm;HrQBxs_c*TutS)Zf^)gt74~ z1M$1CO5?+A7sMW}T(2AM;%3R{Tqm2&Gr7I)NUm)|f-RfhmHFp)Yb=eM+K+?7<9Maz zBuD6|?P0{S0%h_>TfXTHNh*8)+fX9vViF~h<6QBr<39;^N60Ase$QHl0`LCS&)jO} zjl3MnZWnswb1hksaehA5@$Cv_WyF<~jg%6-QY;qGtTWF>|0_C za(0lh+AYCEEkubsWO^O)n@eT3@QrdgN?e;<M&N@Fe`$%W6tKX8%OMCUkXAO9*T#k+Wy&`Baz)294j2Og z^*PP=zV}^AfN@?Xz1HC(Y5uT^Bg#P=ZW$^;36 zzL`XA?;1&a$C-|!Js>4JjUa0$Stb))8$)cFe3Ft6_>C|nw&gfd*C48-rRi`s%MJHf@?m&mf9i5byp^6P{oqekFEUETO9`CiGuzoV{~ z2}~!9g+wxb+;R4emGG*lI9afjSAWo_L0?lVv8_gxBl?Tc$tg^BReY!^z)chziw~Kc z$|M&bm%lmDpT{Kf)+aQ&wX*D}9chD35it3NWfv^GHg?>$gt)E#E^r>{x+Tvao#AY< zvur^zm&WIaLh$;ME7%ch^<_wu$gWf_8g*=181@SBeHoRmM2wZT%XO5;_|mbZrDfXM z-nMOWF>96gaJX{ia&|A98Yq6+;>}YbjkMTj!iKWzbY-QoACq7%ji@=1XWd+HxLdRm z_eFl<)(z4yOiHZO$ZcF(Lh$=gAHF4!U~7w^p^8LXqPB_qgZ+*wkX-Tgq}M0E&7ka5 z1)07rGzza4-=Q>aaCL*cn5YEUIYf=)b++;LcYejX8p2|Ti7gOgCA|6VZ~0hYAAax= zeZN4K0mu(`M`*H;9`2P`fsuh@_wGHg+t$qc>J@(uB-hiY&h&d_WyM;Ml?b$xLWrvn z4_(}<1s`fQZPLqCO9^NiIxJhwqzJA3l0uAj!dlG3j;cn8>yR{@&k9Y&o#D4 zg;BZDN@6NGF9ZXTHq!!jQo$~q;zvJVeSt!Y}TIX&O+Aee~~!@VAu3BgRLSLWfE z7eV%k-2+NZ&_o&G$q3|^7RQdKe{}U$x5kQ!lLGoTw(`Q?IF_8_eRiP-8kyX8FREOG z3X?<4{gt07hBl=Wz^Euatnx5v_2U=C6W`HyC2994OkC*E@pRXbUHHY{c-1R^4-lk& zeR169E=w5i5_Op4H+{RyE&KRV-T5(3bQuo3%90gx%N^COHfblU=mJ@S)-Vt3YO8aQrEdY^{ZNB{~ zJY7#(`SKe%cM#-0pF1MX$bW#6RFkAx+Sa_!Y0s40Z}KCy zfn3cojXQ?eWcWKRC~0kYKOWq4CK&kD1&igDg#alS=H~7yO2>mXTlzS~mm{6x@^$MZ zhbJuz+2&MhCWRbXmK1E_I=CE_6Mk{(V!NO{v+WU9V5v~%EE^QX#9>}mr&$5b2W%xJ zgc?tIQNO2+psKPKO5xgfc`f%x9E}94n0Pz76&T;cfn9#B5?&P*#|>73Ac(!Q_8JUL zAA0I${|KMpNIF92XZ^T9f%x)eg`tYb_nErbub0Y935Jl5C*ZnK1c_?KL`GbsH;`o8 zj}M6Db?1R2yi&Kuwr9ajqmd?qabC6)S`DXsAxNT4r8<H3MQV7K3{9_%VI|-+RZ%(+jpQLC6re zK%#AHYpb-lIA0*_@^Lqm%Tl?n zP3~%&Q&gO9R08ZA0Ug(ISu|9P2Mng~z4vn;9G=0JS0J0DxRY&8HGjIvtT>6Ndl=j#OJy@Ul@!DpI<^ACKFs8M zdf?lT);ACWue-|ff(7u27JIyMPEc{48j@=vObIi9DrDSE?CMPV7 z8wB48lhv)UqT-~$L>DYGf)((X-&OehkB=1Ka&_3}?%PiW(H~_i-?q1_jUXuXb#kA_ zjWk_Knhm`i(e9Bf&^T$1fDi5kYp)b3KgU2^qN^()y_Ef(ol@ZX{J2zVOrwv_^Ov4i zF4M%vk8`LQ_uX-6%a%PUf+C8j#4;o97RRA|YUE+*p)d|We0}!$7j_#~UpH^wv@1G7 zu7=DGx%{W^{)~S3>p!5`*;yAdjO9kYo^VbN`99+^qc?S$-Yks8=x(Jc!DG@$2hr z)(VV?DQKbA)-ScXG&0hF_;(Fyb^Dcr6aRNuXpu@)`85R*!jW*B;3*&zG z39-cj52@n3#S5=07PefR2p1?-$t9>8vv<{ztxT^+2|-I2?{6jqTNAOFFnLtD5R?jB z@>rA7pYL>3>m+cP5X8^26nl>Iy6dWhS4G7%z=RhEuZQKS?@h&|YP_=K&LmmmesioG z$s~?Ml}eEJzN>4}mx=q~^+?41V%(9AnuNF45tJA@boLb3J>Jul45iP9=B8khEsN#q z<-Qq`tZU=tB}aV0)$w_%WrX`F?_+Gqt7L=5dau%(q=sf3MHvu6a{91&BO-5H^b#sX3xyY}}F z>@SqStE(%1@h8ad9QdAP6Sq=iy!b>Lp_IxLZ8A!HPl7TuBBxYJD25vbv11@U&qj|( z+zI(et@g9h{vCF5O(XAW7w6T*tql$3=XuS1ThI36$Mj@J(T&wa4p(t|LToZ2FSg3< z6n#^g%7OIL`zDdfV5x#!o(tDFt&XeWte_HL=K$61@%RBNEDW;j(uhFtsXHSESth^W zMwq${G6{yVMiF4Hjt~$ZmReta@zv0@91wpLF!(Pl+@PCub}^10|0J5nV5YCLygvUR zCtu`%u9NiPHxOh@%!LNTBv{_=;1&}P_(4J_lX}C2Q!ZOJC%%PYhr5;_%yxW|P<|tD z__V4xIa7^bq?>zAjTTUgy0ZIALC_1&Ncl8IUb8C$r3!!`G|EYVvT=fN?flzDqOt&5 z<9Jn6oD5tXuYn6*-;iF>XQd)KiY7tSA08w51^6CH<;VG?90_D!CzUlL>(Ti*$Hzna zLrrpAm}I`Eyplw^ML`{6GD(zp&eKpfANhkOA?}JLJFx zjMC=tpef0f;=sw1lY($S1!1%-2<7LTfTJna%s0Y@5k>|{!KI0eDh01s!jxQ>>Sb-E zEGKTi6-wjUqpebTaV)h|c#j1Y6OTs@WWs;HO-2F)TO{Kse`)$Q^4fWce3G-CBb1j&RI7{}21 z@~f}xzz+Q8kAD>9M?PqjFd$1(YTK?Z(;F+0CkB3)X{W(EOL>v@&2PU!Ju`5fHJ8Ro zky?L^3SyZH2Z2yZNiGR5&=5s&3aCw&swmR(6NO}P42O_k`*UTXCbWYG_R#+3h)dha z1)fw`jep%qO|jsTT~gr$gbBAolFDv?Cz_&*(0&FLO)4$HrLy+%HM2mJ3Xzh`l=-C4 zm?rC)0O(Gs=LM)(=Cc2knRiBeZrEOWhOrN%2{vPR_EVXcqXRK7Y zZ6&f!mc_CzWK_tnm(6D#MZ_pBsu$?Y}*({1P0=aGz~D6*2u z`^Q)wB@e9<{PJs|F z%Xh9XRL*Lx^kOT~$F$sIz$tj8wHNn+xdm7$bV`-!E-oqocE(XZ-lGA7B1kL<;cT^) z;)4%A^n>Ty-+9ZMKwDzVkXr1bSStI@-A|%`^hk%}OnyP5G>#i2AOqr$!Z@o;o=3z& zge1dsHX)E&Ejtjp%?MIRX^uqJP*UiSnmNV$?iA&kznlas)vsD7C`wRgs`+30Hn$1N zF_|P{U?sxII1@x9pP69+N!Aqv5MN%@+91*R`-lk}gclCf>L(vzQUXB0Va|7yWk%`R z^f3xvN&Cn zzXQXGik3KDBJVWX({^9wbDHG+I?8ZVB4FBx)>Jm)?X=DAfIEfb@H}|Bv0<&Mu#FWJ z5&ss7*n3U#TSH`1Ug!yyS&(xjALB`U8f9`dJo zM4R?FFg^( zz+eY=LrH{fZ8>ccj!9w(gJPQtBg%jG-Jf~0Yq_!_VuZ1V3NZ!7CBRVMn{U2B@4x?n z7Yr&KQsS#bgt>H-ZA(Im#K1a8Vtu7xmqI3eS}hm?-$SY9Pm)3d(nQJRC#zcu03mxK z_z;zZtgx?IHIgO5&6TgRGTgtNXp)r*5sv(d>!9eqyKQ?Pn`5L&OiJDCFPFS_pnwBHRguMM_BCJG&47+v^UWm)}a4W0?H!eVYJx`GOagkcT z*hzJ>;_&3%{A3wg6*ELfutuC5LPVgl5-zl}ZTxRr(GP%}`{?mwLs&h^WNBdI*)vOk z!Q$(xwb1Goy%tK!Vm^*z8&5ZUn2}WOO$jxWfAi*bZzYCyLB?JeN@}F}o!|a()(%|H zUDJ-utt}h->z(g?*WRZqh9J9t|AFnp;4aCbP2y)K@AfdFCQc_2R<+L0r}ux+M@~Bn*Eh z@~#EKs~E>?vRcPWrSj)c9HZ%Ekm=7_zPC~DM@o7@i3{azTbx-~Q^8en?NU(gLS{vJ z$k<&Yk4sA~Nq)g9>(;HCG}G;yxtd^T_ zAgCX4t!$wD+xY@jAoL(BO6B&dA;Um`0f-0oipf`&HKYvLCT9|rtV20n>Fp>HU&F{O zxsSgzj#wK?X`Fl)NYjXXA}RL<0;@#+wJBX?I|Dh(c`%HcXnNHRv z6`*oe$Qt|W;-V5@XC5s*>IDV{&R=}+q5TD+1uYN;Zv@Tcfg5qPZr-?I2Sg0E7yxnZ z{r7%BKW<`qVUXn5TR5L;sTgwA84i}8T8#luMIim{?d`GSfH5lh)sA80S4>cGdOmOe zjf4fAtjt&|LBK*&F6u&7v%Re#0cVaF#!g5%WH{Mn6wg;v34Qv zzx(ccwx7Cl_hZ`H-m>yP&Od(qguZFoffXXx*DnzVO}}yDy1j2}R?)pQv|lKZtl7dv z1^F$cSFP`nvLq@pDRJeolURD$zc!(`vszjTPvNhkYWRBfH?$m>Y2QBy8B zq}NWOmNb7Z6bDmu7i86)bF1p4nm-j>8YyV=M2Sg%6|NV5g8^mbk-r|Dv@Z@=%mR;W zV;Tfi9^*VNfGSnA;DOPkA0GCsHXIY3ii?Lhj+bs0j&Nw^EPmS`e*xcAG`Vm7(UO=M zktfC2*PyKqBh)L)5cPP%i^q~ARXVoFi6l?(hM_b*m5$L6nj|d?)?RJomn}tHFbFSL zd0jJP*V>}nE|u9vA`FA<=UrJ&VbW2~T;zEPu5s&kb?3+A@uM6&3c^G_9FyaJTHhq| zg@}|OM|SZ_j6fZJmd8t86r7J&L+4n#_~XT-aL?}D zdtm=0aBV*@3UiJbhVN~5b~dsWlQKw2cI0#6-n;KCf8XQpuOy$!vhw&<<@6;Pu6$e- zzNfH{ziwArNX4C~ZfCq&L=9d1r-P|2uW$IHSNoEv%-{&qLS6BZ?ht)luHFm!~s(g>86EsTCfOn8qD;$ zhkL;!nLIYFNy&M`(&8d*>mA#dl>iGd#78+iJhWuuoS8Jh4F(p16=xG^953hUoI`Xm z#C_X~fSiy?g#%B}CMt_YQA0!OFVv+)x!gZeMAXIiEiFR!pCwDxe6k$pYnv30OM-#a z!e1Kai*v7o=rW?r)n!L`&35B@OV?5)`oyqMBJSL;dX6|=Y3oO%Pv*vUV^@mw z{*?%mql|fSB}N2=9|v$jWW}&k4!dCTPzEzVSRp(KlTTbW@=lw%wf(n`(V8#0LuSKTTh{MGM7*>(NAjg3-8Ir)_6=&enF9$-v#u*TC z1Q-hi4V7G72Ba8}uGqLQg5h(J{c80!T}U(N5aV zo4N-l@3Bcb^)Ti(sr7Tchh?k@@VoRix5Wqs+Kyx ziB7{;ay@jA0urxC6tsfrJt0d-c4t&{&JutFA{pPI^h{GNV64q;kt!?b(xp}VC$YP` zX9ET=FD=ot%}q;`%+5lb=+l8A!tOtKXoD2j`+9bOJ`zM1o+W=9u9$-Zm_fL|`Qg5MYzaFGzTYOwVtoNT#H15vnTFFza-%ekrR_QF8$w{q$V-NI znD>%@7}MH-a^AX5^w9%Hg29au7GBoU%ZN%d-MEcX*;0CU(zg4&wlzHNxqn?OAYS-H zWqFQdCm}>eL0VuzE{Ae>+YXk&yLB zS+j(+?zDYrI<70!ud;Lilvp6ZO68ES&X;Xx8JOi;*(T3)>CpeNqGFJIPqF6!*Be{% z2U$-=mjALJO8dCy?mjBc4JrY44lt~q*e;BtI^zlU;}ERT-GLG0RHleuY5XQ zkp|`c=8u2mNjoOgO6J@Z(?RLo&jVhDf!Px_K7W|NNb)2IF)^V9u-jaS8^gjtAiLOl zOXj!dd>e-*=a7AU|Q%B2Tmja&3JX}}BXl(E7SY^R=(@)|)4$L#(-#_rg@=Gtd;KjXu zpB@;Hm*3N;8$aa zT-w|rh2Q-{m^9`I=jKS?yhe26YEl3di2s(l5+Xt;#ZaM7OZRy!DUmg@KLrdxE%vTWcnq_zFvjQ3AVLk!*8?rhRV34tI7TU;GV#r^z62pF5{N2)gDm^wzhSC|!66DLa zH0k$FiTmWR@2Bm2er@q~Dr2R;ZSs+BV%D~mO__UVST&r)IMN2$4oPCQS@q}lKbQY1 zDpFJe>>MB!mQETx@L>Xk0S~LTV6~X%!JRuFTk;EVu?ObtqzVHXTpZtj{{tW3K3yHA zTNv1umsk9GOv(_;1_T8AeuVQK z&+rbz(#7cT8>{kDv;1$_G1 z7uJdjo)=Ok1~@DTkOrrhV5_VWpseP)_Cb)XQPj4Q6&eS<$2gSA_oEQ3ic-R>w9SH? zCer!4ZBw)yPt&An<##9*w)yuH_EUK_ZA068Gpv0VBlOXxEn%K#N-zSFgAS#a2(_q@Zkp^`4t;StqvnKP$;Wpl_tyn-uJ$12{6PB zKwEL0fE>JWy>Gn!TD9()5SV~%Y;0Qd>PweaXgUb*zci6f2gQ>4dcLiqK~`$nO7+FU zMHqN_@b~0YVlwV_baoj!jkVIWsZ$iv!?numboU`9r6}2S=TfpyCG|Gx*~Lfst8D6VQmU})mqU~wFE%P+pC=GP`_2gZd8_V_%om=CEY1We+XQ9O;+Ay?r3*||zoJ<}S z?uz+3*i!fTEi=Z?KhC88q>;bdjq*sB+dE8Q208oPzY5+BAc4jue<06)WMp5+x=x|n zuDF2mm`SP9%ING>u`c9d89*QHWNR)7%nNeQjnIC!G?Vj-)C!F;PH_Gb$_wS_)_t#V z?3Cm4r7^IiGByxDVHI+DJZ#5uW2zXG=gM{FX-fS}iF5^^4C~1NfGYG^B^lG_S8;n- ze$`DHzFtfCvnvTf8Pd;Zz8O*?5> zn4j|j@Fl5*V<5l|4i3FV7yv6UUMK|Tw=D_J_|&^-YrM-|?uF^zZ8!b2@^HM7$!QDxOc{fTiRYA7eqiJm|-1 zZFz}BQykyRm6e)&^TdamB%ZfX@o=q^2`pQR<-{8m1r?blTpt%6>X&s!(-aj8>0BNF zH^_s7L3B)$Y+DdM9J!~$z6zw8>KHKyJeo9(ryxA#4Hmo6^>QpQO(l1R^BxmoZq5bi zffX1NV7O-V!yugx47s&o$Sub9&aM?IFPnaxm#l}PW7Cjmd!`H!U?oxut3!fla}%dH zNIv>ioJ0R!39#cs9LH-w<-p055HCX}`zqTwF|_qh8DXbse9{LNUxNH18bYZco}nRw z5%0^INZ~s&HM{+@;D^%$s?kVAI8*>YOK)0ei?9G zv_b1v+#kpBl4DT%x{Q5~vuk3dg&NY&sv{q3o7lI3@248^oTiObQ6%eXBPN2p5RR3$ z(|inRoyGC7WE@*4sZ)hB*)$>UU2090LRw$}@X#1XHiku5P*QJL?+O581k3by?tX0l zB%o-9B3$CA7G9%}Dojh~(wL&LJfTG&rXy0!9n1SO+2^&%aY_~X!2~7ZDQ)~Mnc@79@z4JtojxTViV_X(7h$FFdj0>Y~-fkeAyl$*)dmU1Y^o@a#(k zDSxfaHczT_Q=Urlx^~9`BDDKj_lo^bxDW0()l{;uV=rl-e4FJ&U6O<_B+!E(6r~f( z^trRfFw_}@*F2yqoeRkLTnxC1z%mxG6hT14wGjj~+#YwWRaeK8U%-kX0ziP_+&Vc; zeM)NK5BC<4U}L*}N|U2$VLQ}d&fTZ~3~DjrNN1`g4h=`*3`q1J)Cfk z)@Xy=#*Xugb7-qlk>A5qE`*B;{!LuaB~2*_Sv>dBbCvZC8MIrRIGhlEcgvMDN_WODijDc2NyL!{qGQCAxI+ zLXigN@CWh>S|&$Hew8P|SV&3F<%AMRxD?-u$ut#IijpV=6Gc^88SGTr3Q3W$prQqq zI~HZgD#ZfPo@df4ZH`|w+IyAd=qO1LI*4k>K~=PcfnCBXA45`@iSwnugC{15pPNW8 zgeX_8E=4FRFNSpF6D)3*&gMJl!eiWEKVBd^&Ye3uG(Bs00np3>(Sz zSzNUKy@1KdWx8n=N2o^%@lxZ9!^Nkhmh%HPY0KQ*+qd;FxIU0@Ctc(2s38e2*~g+s zs>`HH5D6abv(FOlLr9BKpM)tRG`XOiH9bj<0gWy*uhTns-S@c}(hKGsNH23t-G)B$ z(+CY4{Kyp5~7}H`L zuY$DjkWn4$kUG$ZMF-3LAnG8SgQVl2SC2{-A2wITRsc=XDZI zws0O_5OMZPMCMeDGwC}fKkNDk%dFyxy@pNB!JwDTv$M|)u*t27HeHHIuH2aBO82rD z-=i={k2k7y@r;9fTy}9Hk?Uvfdrm+WH_+nLpk3{s5R6*|6q66k5>r1{qfC6#<{t!B zn)ccgPeeWe7*dl9yFZv1Q8HH>{=?@J6L5B zEPUoGDz5vsXbN>Oc_nk|+@NZ693Z?F@Qb8$i68Z2KNyD(VzHW&nVA3r5>$Iq##kDHN zPxL+Plmgg*05OH<#H84iAP^*pg$)Pk%WG{Y^*MUA{p2>g8}xX~9KX<1r}r zv%#cj*$e@zn;|<0uJh*HIr9hNYoc@bA3Pm%!?E((8>$#zbA(OZ`;jF#sdAdFCPS(G zJgeUI@%90p&x2-8XqWWkq_T5L^|Q@?4g+N57hinYj@t~#%h0&z`2aE(8W=` z0i?e6Yrnc6nWS&WCd8Ap@L(4yP4cmcCerp3s}3f}jtf$4@th19o9UJF=KP8=O8s6{ zwIdK$>HC(JQzu`^v?=K-+mu7MtLzY*mV-~2RKK;#6@jcbn{m6E7H7nBQ$ptA=SbmM zQHBIdNyhXyXxdN8eR0eaV~fWYEdh3dFz%i9oRjx-;;X~Le7)(5)Dn}CVWcLP+rcXP zih?tJPQ$(gnnZ_bF&^B!dD}i;2sBR^A)liP|Epy$bzoWQ|#6X}d|&mdSSVaFq@D3!&86D7`+RZMot{AIzZ5KW4< z$@|I)Z6I9s_Xk#OUy^NwIVB=B4y4eMEF6okoya-9B+w#3&$3}%ua@r;4-eUpkPWyM~X{<&uCSi4tp zTF)dFOwQ$bj{Jx+SmTRHG}ic&hDjkvVB?f&48>nooy8-o*6Iq#(S8gt9H)|@#c zOd1zwGvi{#csA@eDm?<9(P??9(l{*3=Ht3H@EVuPi1JsoHTzt~`$|`$+d#7Ni)(eg|1z6nq%3D>%53Y;)7~ZtlKYv;am>l5TO_F&K;} zBS^h3TTNj3azh87mGS@4uso|k1&Zc@Lg(%NrLRM_Zi^)3bg$0 zsIbv6-@Zw&z5WKh@#b6Bfqe>)TsRNSk?Ys47Lyc!b5A{a%@QK_?yVFiJ8W__j5Hkw zswTyp(89Y*?$}*R$)IY@D83eU#reAY<8xA=Dc7sAyWCiSl!TR}+?;@|M7km^Rj(bm z4SXM=jp2L{N~ly4-T}K6j~umNEZA++dYoY-h zAq*N{uFNUAdgXFt^4y{xOn8Ba+}_?bBqKI!_RYB3&%U1r$I-vgRiv0aF1mJ_7TR5g z%u+9ZiPY!5Na`i?333bMS8lMXeI9ab_u16}`?O9QFN*hzv~1i+Lwqs$wb|>^jqPdr z%;z7_Z@t{7-@gIhIF9@RHcS`%;;qr!c*P6{*Uu*8S1z!Mn9G{HM?4>4-o_Y$PyESw zEw>2g$CRGq^W2^^og|LrGsqElQTxa6N;i4lS`eT_igJtS+7;;`JzmF18QOfu1&vzJ5{^LS^ zRcU-3R>?rhSkjC*CMQm%Abh{_YP?yu94@@Tlma;p53=9`q!>`dDtwQ40UET$(F z-Q5g%inARRHGwt1l)oW-wHnVN@D%1rXIhF9;=#D-?{FODyB5a-EkkgEFm5x*DqvB@ zJ54g2aSCbkU$sjlwZu3wjCG9p!gKW5&wk#X$3%@k8F>c4VvM!F7|*`@X=>3Nm|U>% zg$W~k0fDrVSYLl&2`{<8-QIQ!+Qi*w2fFS%hTCja7dL8DHjAGiyG4j^{ADv2$pH7BDjsZ5(=Rr(b2-j53)2x1`$ z%`5oa0tscu+U0osWKFT@sn~DJlp&&1ZLKP&^)OS!dFk&9aORN{*5r|WiOrdQJ2N|D z%V$hXjA&MN3X${U755$oOWVo|^4!BveQAigK2stF_yQs-vRNbkgqCBu5X#>!?Eaoe zonpu2S90p$@NGy(>l~n!b$4f)*8At^?)`o0X|cEbwjuSdU&-dlEjDvV39h1v$#Y7_ z@apnhrko$Ix;C&MvRrZ{U*g<(ZfeDx#OIEB!CFPyRuOvXoG*{%y!QH+-!$^mz0xKh zWd&cCrjXDATmC?pQ$~r* z4S&464q$(}ClNVU8tE~oOG&e`Y#D2T5v4Myyf)m-uPkTApGxJ^rsw7Ok`mXP#zlkd z6T881K2{A;PR`sBq`tckZ8ctdMuwT}3d;)Z3R0aAwMmgQlOziMzryp1pC3PGYJ{|( zHXUzUoDQ@E*a^eK=-_hVli`eWfNw4tnK326m4i3O@h&FBTdLOn%`ycD=be^-&9B<~SK$ll(dL~!x3{N()A z(8c1;HP5wCl3;j$Q%yR44&iw^=lq=-|2V0j_oxM=o+k!avl70vFy106(BM)dqX~f)Q-@iPOJwDVgK0#h>>?*ovZt3nu za0IOuuM(}iO+~a002@a5n~mKuz;{k=tjr-DKXVJ*s>N=&HhQ$i62v=OS%j+3KeUP? zebvKUk!Mv!?uOh9xgD}3>O?x0=|%x$MQm`xWl0nB$CHFA6UQo~ zgjlLoCQ|a*Qa?z?h+*SJ`rcN_q^ayF`+>}xnnMTqQqj_krUyGLQxol*;csiNLuY23 ztQq82SGcVQS30gjdqoc$4^=e&jXF+*$6Pg29j`gI#nGcBz)l#(?FTFeNm|Kp##L!~ zB3@lBtAp2Ri9tIIYTdZT5zcT9HTwK485~QWmRPrPlRYKM~l2C=P zY+Ktz!aUGEfcaUdW6@#I@AZA#Tw_2woiRid7A-3)D>gJdUz@aAv3gfSyLC9QEVQFG$6XZ`U77Xl_AM5$V^wRxWEZFZoFM={=WL9*KGi*)I_mL4#p-m z%iXzPRUp)U`*%KNW$rHI&s@}<-pgqL_oXJz@6&uTU3!ke!F|#`TW&}G{bZRc zcV4zXy`NlKzV6&ypj|TBx65;WUeS#eZo4VV%zyW{G%Z>03MyHbdfAZ2SuLV}^A-?% z#%kxsHm)mAU{@hO#vPwIw#B1GOMsm)1P9PZ2TXhm3v*_2cROA(oN)>eR&2V6aLqZg zY?zi91d7MaY35M@Bo!9I%V(D>)3A@Om6bJ1U||spUtJ)-a19GJCb1Bm5rh=ZpU?b; z@X=-ou=NMFZh(a(-2!jUJsQi0tH^ZuaU*CoM8mW`ju5k;No{z<6dR|!%1 zGJ`gmR8ddUS-Gc^Z#zFHj`qmSQ9d{T+RVfPFJ}0AFoo>UDA9sSgy6m*pUjTCzH^_n zC$|)QWEoUEP3#xX#4e!LVp0sS8lH0x&n)?I2QPl`Z2Jk}#Yp>oO8g!-#G_1%lvp2$ zu<<6JC9*5sQJnc2M1Qd?Os z2C{{TJ}s+tI)C*dEzEUkvRn6F)U=VRejo85N%?U&UVJmrlg?f8`bj`FVWlz~RdJr& zwe))mkVn!S@r4(jFUhKK-@zt_b~D$IVhdh#3nr5+`yxLGC6p=sz%Jgu4exW$dMQOzG```b9bu%K}inQkJ%~7SrRp)Xe&By7(rk$=N&C+_@cRCQt z)&y~&Blphh643`atKU~XebDM!n9(*0EzBORPeOBcZ98sbxHlciqJ^xOv`f{tpAK-( zT&J9TTAXII1lS3~!}0@$-6$r&*4EZ42{25wSeQwIi&eQ9AYL$$pGH;cQ2{L~b|{|% z)Z@SO+8dVKu^L&kGj@UY;!Cd<3u=&AXV1FlJnwz5O$whr5;%`P5M=nnF%wysM4oy2 z$x0&Y=B;;ZdqA9V9@aR+`G@TXEY$$3yOt6sRXgVCf-uc97^Lkef0t#X3!$9wJrMN` zJQF5`l(eka&r3cMW7_Uqn^nz@BBx7t2us6}hz1$&e3pX%glEI|l{P?I;sNhfx|A>*GqnEz;~O@^f!=QTjm&P z(SMO<6kjhb9GpX5CKRhluiW?e{KFN#>lW};X-eOVe`s{_>AcyjxqZj^0P`%4Hhn@F zqR0|oAicU}Q8a4v5s+Rfqh!C<)Un%BQ5KaH#V2N_I&|U5d0M#t4qccw#6!pD*jh37 z>U?R|jkkQRM81eGacO(O;qc)_Z(BptSVZ}Z>RsLBfdF$r!+;;#Q zc{1wa2Mjrtb0W{$SJ32ztSgDAyTa!xd~>Cn!*E*v+rRUB_LzyVB_ShYQv~fu>+Op< zq{{y;zQdIWYl_)6wt=G>Ly|*P8>v+$lDXrYbwW;4OCncKxJFdv<|Dn2v`k(rr0oVl z%C0A*-!f>nE}DJuwH>F057}vLThYErJJC_)`{;;9vW!MY3&nE}9l>1E;;}?K+MPf= zEHg-+I6-PjN1Q1@Y%u`_ZLyR9!$d3{aki+3bzHx_QxHlF5L91&<1Ksr(xnTL<9cX> z-MV$#9>doU6JQXWP)@2DCIKxm)&gUP_GcCsZJBrO+$mJ{B~TvT3nt8DSs=iqN##)@ z@AN$H6g^Ix?o_3MwkL5osXH5yPb`3NUiZnn?|BnJS9bW6Wl0|m>_|H&)bJvx(~13K z<>a68<5Ahga1MNbvW;+*%597Ds^T-JBq$eP5rL=uUq>bF(^fMK?>g$FLSqiXS;v=I zA9h^UZOb#lUB@g424B7rwKz%(GV9`bQWwv;;}mc(zrI2G#!ah1*8jrGBa>hQ|NPL$ zIp72Y&pAW3bF|7 zm+23@5Xq4fDIqZy1ir^1!(-B1(g<#9A8B^HF}hcZT;OPt~)PflLJP<#Ufh zepSsa4-1mya^J&w`JGWkc8&V3ZEglFU}$~SMNmvl5E;^+SI+#9qb8;s$nxB)UwVzc z;{ET9^4$`|9OuhzF2jHC-MjY-Q_GolW27GL=XKC*0Xc>;4Ed$4HrSV` z0}`wu2EIXvw1}vS(BhJ&DSM`mL&FPw68#R*9ER>gZ-H4oN#g8W=nZPh%HrWpls z`XEoXIGt!myAuclC`_2auOqQgHBAYF4ZpQu} z;2R9662>l^KWl|0kYtjuZ~3~? zg-1$^t@Za= z1)F|ujyl(_kbdiyI|rX$qna}MJpE69-uVlI`C>!=Ds1YAg-=dPlA}U`1cNphG`(P6 zgAIlj%_04G;T?)J7yUmu;!FCaIuK(pMx=y5O3c*}4SbKZwd1tBut>(Sk3t$j$H#ha zj}D5%kPf2)W{YUwX{g;o!w&N!ai4w1&j091u4%-Jbwm_!&u8!i#9^DjDuaU18KRa9QLep zgc8*TW@(1p+)(u%HYLhr+Jc~Dr)@g^@tC&csK*oCPLaQA&K(s8iJX{1l3S4Ha;`*j zW{J?|f+iRfSMW22KZ&n+|NH1upZ<)M%a)g`edw-vxe;hJz{Z1NriZDlnd|@Q7*SPE zdYmJ^Qh7GLo@<-TC(8y&+P7q_Y`@zGn1nUSAoS0Bn~I*hn5%;is!6bP{wm))HAXrQ zwrByg1lS3LK8)lt0;FkUl{3y3qX7ifZ9^yx1Y>gR);kfI#Ab_C&g7@2CM(Nlb4GSx zZ_gQm4H{(|6=A$lKJO;tj~C_0|L$j=v;^3;ZA;$@Tj$O$Tc`LB)5q7S2&N{n&`_0@ zk&;`v1q2g4e9dV(QBp=KkT?Oz5XJs%IJHVI18~VW1)I_{E5@tf9!RPg4Rb%qYYkFB{`A=PU z=b#NXH*5WZ;SXA2O~C$JIu*Y4Kz3a;V*$v&=|e`GJZ)gJMkc)~`+Y^9lGpfHl}9Vy49WRDkR7K^UqNBxesvs0;&-2OzZWZ9>C~=n0bACq1>87K#Xcw>YEZ-`ci=WZ6Wi;G0>+#@!72U(>dCs`-| zW%DKe&YEA2WDE5KEhkUPAuSx<6NLzB*8id^_#iv33bROFwEFDw_KI^kvw1mI=bwK* zZH}Bx=a&2ik1RuH>QD($8Gc$V=63Y;8!NZz$@7=(xT)&;^@xxrkG%@*tznSS8u1B} z#1xWf6OzMOUsvmo`z|8Rh_HT1hev8$C-gknT_i_Kd1qYR{w>%pf`HW6sfi3Pgyr1XvPn4r%cYJZ?w@5P4iBG_ckd zBPXznt5mm>?gaZmA>b>y0JX%AE7WNiaCxC#Sx%#Fo>_>b?U4(gTzh4HZc!kw+!=g= zFtu7tfrly)hfz5Z@x{+A_L&>vXa>kv`3WQ5KXQ}4>YUnhWJ*p4C;lyt4mpjkoEBD&n931X z>3O-KTeq>B%2svtNb*e*^yRVKjbRHj(5x*^*}i#qQ_=NhDL@iMYOEEgoBwj-P7@59 zS6iGev;^1*#ls-Ltn>O)6txlL5HNXw#i#Qv<20l?886^gF!JQr^Upm~q=C4zU&zMS~07Axg;l+TsF%fiSnp2Au(UC=nq1d?}OlvijZCXbBU$o?Nf zB3{MFV}4G`nm%f=CX~Lv4o&R)KQ$^n}-XB_iae}(ZO1j&W~5W-f?}hFn1@5e;z6H2#W*mHGDq% zjw9OKn>VRh<^B`VRY7#Yda7DRDoh;(CNJKThzNx7UD8-JUt8q0c)51?4b+SC)OoP!$S;$wv%Nza z<4ZU0+futMX#Mhco=ZGQB*$#uoZ#J=iZKx;^c}f?rF7$<9#vx{|L%43OOr)roX+%F zL|7g4iA}*K;BUzMULDq2D;}&YM11CwYUpr#({)07IGBVS`%q)!yQcmIs zjdg?*u5(03Nl-ysi^(WxW%bPa0nIQ(ZoGZ_PN7}KT3spN5FdXB0sH2?_QVslPW)RO z9a0UiD%mubukL$Jdn`47tdnu8$TWPHrkWDa0DJXLEK6>tmcr?L%k8B6RFRG`p^z{> zHbqWOu1HD8K@Mnfv}g&i6AI^_f?6B`Ad+Af_~5~Yjm9Pid=NtLwRLug^HXR|Awrw< zp9L+ft7g$GNh*%^hVoK^EJwI4EV#VVp*>6)Er}(xyK?sgU~wpkvYexP30!~g3(sZA zyT=)Is^$DWJ&v#Eg?`rTatm-B3Hq`;UdTv?$LWMG2_s2f@pt(tk-L_rOVj9d-Y*Fs zDto`_bCA&>Q=%>`_JV-r%8DI0bL1pvF3Al{gg3wQkG|RM4u3Z*34-Dt%x~p=a7CJ5 zFmb%$e1d6^U50eFW^K85Qe5MWo5D7h`_AsyGJ1bq`eYZL+c zs31wKs=ihAU6R0+_fn^!B6w##J3|UuUY7Kl@kC8kl)bo34`a=+v#;ngZ#gBls5-3$ z2^h!{HvYp{f#{4E798<~sEu~G(6Py(9iKdLM6x`2V=7(@7N=ENLrcS?%*@AV1h_X1 zG6O{UnFV6aFG+TBU2gm<6LCz^h3_&=co8IDL}E-Oo^vQ@o{1!lkrH0=c-Ur4cz<-! zWWVi1Y_{kkTDn`}jYIoe*0s}Tzz6bA_}_JLexB~W{U)t#tke6Se1^sakXJGqBgm_q z2_r+wfKv8@?_7{vU;gr&_B;G~-A?#6m)+|+K%s9K#D+XX|ivGf7%EOOI;W(2-*N;z9 zHXa2B&DY}Ope4XgEHt$k9Uz531g)(-hz59&P#jGS>hVihsFfFs3*&;_*WYR5lK#z2Y+Gx!gw_wE+`E&A0E`M4_t_|_x zNLA*|mF=QI4#>NtDV6E+1YZvFUg9>e!)be!V)gxy7NlDDkP1_-SW&rj1`c0fS1(#} zOnHqiPPD?-oxQO{D94qx=FFck0DH;8AcRq zKm`r7P%iubQYw98#QnR*MA~Nsp(ZM^kBBwNlb%$ag*Cj)FNs9sk=I*~&1TPh7lI1Q!`6uvx(b7ziwE zJf>!fj2B;gIm#yiatkJvw+!*c zIG$fzTr8Z-gS-L(_u@;hS|N~qdSM52YHG>|RB9CMQE0RTtnOT4VlFR8^|t> z)Cm7#NMm;-U1WM&<_qt6_CV&Hk1J9Y@hYD#GOhIU;wI)np{3;V$jRE}?FfHfa>0`> z9CC|^bionYo)T0f+8w9k1zDOemtLlc7h%rmG#yEeLG_>Q)+@nBpnYlw5!b?v% z&BS!k6^~;N6C$Fm{jS}(;2Ss53GIuCFGXEL>c9uh1;alq&uN;U3Y!($-wbP5*)iO! zk4kb$#VyI+f0!pizK$T`NwgmtV7k+FWV&ywGGodh*+>a(P<|ZcV=aCQm3dk*$t52i zw?U;7g3sv)KJP=30(n$r99cC_q~Be8+&%EIGZ__aPV(}hHQDrv@*9z}`K65O5ahXh3blVR zw!{A|h|a3beb7Ygb-Ay;hXD~S6{Ov7>F#X*3Oz=(DF*lKwgkjNFyiVr=Gl4L{!8C&A%N!@g0A- zhMg-QXSRrQPrmD#CD%Z-tq2FIl8nPWf&i0#z)lnSl_O%(&lG|1^1{8Aqzsqi$RD6n z_?yWsB;{nEnxceAlCti)#i%6Ca&?4-AJRw-H6^~QY+F)7ENxG^Shml=2uN(g=+fjP z6UFzXi~L0$SPTuy_X6k7QfGmGlkmG1%c2swSP#D-HN+LjFF3mIHi-fWKqJZYJE{5A zdHNc)7!CYhKw|^rlZ|W_eohj6Me?q4emXX?Yi^AonqN*Y@)4pmGU>Io6KN#Ep}l_J z^Uh4MDd4=`5NAc75tkzJ%bz$(@@sR~5aa`AE@LBv1t!NmFHME%q8@}Fd&%$^Pn;!s zd&N;5XFzmKgY+60l0#X7EQ|o*;q#oHBjlxqRT!t@@y|Ja4x1lN>rj_;1Y%7s|B2to z{FcQg0TI<{9@^=+qlfR8Et5fY~=rDNUJ(~H>7TEc7=Z>Wo*y8|<7lVwPJU^}JYoFA#wyo?Q&Dpx2Q&SjY z4$(0q*{)$HKg#*7#p8jN06U>zfvLr4z+}i~gjEjV8JJX|k#)=LUV+SdX8y_I8ptX( zOO$}n3V&byfm_UA;%5S^E}|k-xIwm|T__uEWV1!-TLOSDFqmt?f7zD#1A#VecO4fC zGe*A0{rx?2eS}5S34|oPViJtCPneh)l+sATs!H23T?ESo1QSn^Jc`>D@FC zhqY^P@=lV}@;7LG!zsVm;&IR3bMV8(<2|)&A zzC{DlwS7$chDKdfWJq5vNoaA3lD1jqeN4&Osv)7&#^n3%{w{6qY}17^XK9=Onf28l z_{xF=13-kaR#=hF$Y3D9+KA~fAg`{N@eZ42>}Di~P4>s@{n)~~VPN`{bw@HE+cX7P`rCcWBxR=g-oeJ9i47U_6;ZC6Is;;+=R^N>i05hjdY#T_{K8=qRsj2jB!GdB0NIqD=aQXUXKFcOWJgLw+Hg zQ)9{b0js-*+`Y>@o$FUfn?5%9@>?``^A>fP0E2(8*KfE;kUq+z&4+j5;yIJ=>PSxS zPb1immm|Ce4Wcz3pE<0m|5WuYRbKf!z(!HzN@( zr5yQ{)$SVemoJYdth$O`-@2(ukV=iZ<$+v_JV6eLF|w`_5^)#4~ixn+f`5~ ziee2ZE~_x#Rs}_7)4RYLaw9_9@e08^Cd_B7IbVJ_Adxx~NIz>yF!;{oFD z-~T-6O|x*HHOJm`Rc@Zhyz(7ljWIsSq!m9O<%53|uZfiRJKBwHrSn`MT;%Suw(yt?h05%t0LO8&adU-=lNO%kK9R_oZvvHVhB8x9G;oZ92QK zRQMGe7eIo2!`J^&>%1N&k&wr5FW7ioSeUmyzv?zqPctB^KKJa?wP~b3UEajSGls0r z$I_h#%f+2e-U5bYd<2YY39y4HH#w-`T53pMy!Gk@~^PT&9B=0(&eil?E9 z`{h%G|E_c#rVuSxl3-kD!Oi+Kl1Sq^iXZ{SQz@e$Aw?RUoL5l^+WKR zJO>$BT0E|339u6kxu`#>!0o}FAG?R+BEYbl=X{3rvt(2X_QfSN#@L}fKH)2D(d;-u zy?aNuwF(0o2zmHmny{K)Il_x5ePC5%usp`+)T9%o zF~`cWJ(n+6PlkI7^^hc%oLOjxNi@M)l{REj7AmSQ-G~U!P-B{9R);Cm2p^b_Qi)ZP)`Rg2?;iQEJ z<_P#s!+ZC>_dXw8V?VZOFe&zF3)djX4>Akpj{rXHrnJxulVBMiGJ6vXj23y=b<#MZ zt5(f>RF+F)*-%xcZBmtL$AVLhmH<1!K;O=p1)U_+nE@UKAfGVtqRe3g82c??4K0^{ z!4hC+&MZ_$nt?eZoYkK_yHuospocnd-h9XYF+jw?pFyfdUqz_F%VMU^@K&V+iU-+*R7GZJ2z0ks!1|mt4rOppn zQ}8=u3x!64jrVQZX~+v36%vc*cR$sVUkTWh5zgzKW~DBXTXIn!4k~`EVBl-sOO{!zw{rzoR%FFP?A7W|&& zH)CWS>4pw|)-KNzV^}Ss^zH3!dh^Dcv;#L2hA_l^K^B3v8XT0{c>wjA=ecVLiu?EP z*(li4(}$N=`1NcTz7HQ5EB36paL>rh(-E14{s}ocmE)bC+I{;y7o-X2;K&{tVh9Gs z1Q-Xisw22q#)ljZ8N9{l7#jg5$45%0Nj+LoL;JR(NIN;+)My8W(}b1)JHZHY=gBsM z1fgRmPGN$GiH&`3LHh~5wo>h>I?S0e?c`|6IEe2COsF=>;J5-q5BaN=} zXKBfhX2{p~g7ma$`?<5rL$$}E`hAp2c7)I6unFc#h7;rmC4rv7eIaOirTOy_A!E&^ zG9i>B&kDaQf-p+k$_qC6J-r^czq}B~AN#eD>4qV7I-k4Os(X(XqT;-~XY@VxHx~;U zX+uf};vonjs94~I?=lM($(=NFTCR>4lGV^wN7cMQ4hEw~c<;1^Nx&DW~i1*q?sPq1& zvd-*%i%L;i$(ty;KBj20t1a2JY;Nt`0-`?paf0N%s3JXgX*Z@7QcN^fxp7n#>G*j} zOm^)!J2~M@8>{7>{CPP><<1X#{xdU^^kAdMk4%t(!ta=GcSkvb$@Ur^yY0ONQ}j-z zJ?Y}ml73x5l4*)J45Isp$3bZ}D$_XfD+GfXS3lj_+@u?C-7w_WwvA{FQnJ_Ynek(f zrn-~%69frlqSe(^BMU9k+RB>!e)a0Lc7ggB0x~Yl7}Jed$hrt3#pF~@j)!kOV5&xL zXIUFW)>ZGPQwFoDa&*s;IJZoFEdh2gSZ(_;b;&B3E|)Gx-lt=94plN}I37}YixY*G z06XEZdN0SE0OOsZgK8w%$?Z;Xgn9GUZA%~l5S%ap;tyojGf%&(Q9T?e*MWT(%J+VTvey7oeSX$I5)Nvw8`a_warshB?ANDHw(DlHaS45Tegkl$j>re z(4}Kjg#aQlMhh|}viXBy8e^H4%` zL?s@NIjJBFDz2;a9Yd5xY)&lB(@6DPI!_9VK+G4IPv8)J`HVAfETTD9`<==Q><<@c z%l1D1uDXcyn)ZK7cv&qkO-nO@kts-al{hr#zRlmsjX6AKv(Gr07I6N%I@IxIjh#jh zW_X&Q5f$#c3Hiuc#7-;A-;WCSBQ?25$GpEQGcKHo`mmWvf#gzr4GoPKqAB^6)lMeX z94pU@Aiu0hqM45-I^9%9jYb?rZ4LwrxOeXk?QA)@XKrDZx~5K$VC!q^rd#aMz&ehf zvgKncwC);AnyvM9da$@?hT}8ldx!Lh^|yF5U{@Sgi_6TRi+=uue16ybSq(0~!JNwR zKoiqMl!0`pL(1yI9Nk04hXuw)5=Fg5bEF%mbr?oYg+g=nB=cY~zLm9X-IshhvYEND z{kX^^EglY90_+4M2yw?(Siq$9@++@dO_3Mg^DG?%nA|Yw*~!lP%fh63`O*a|kfM$i zvx^AQ>9yD2v=L{9X@c1h=q3&F4hxmM>UXwMVhuZ72-EE9eWToNBM@9i#JCnCLHpH1 z6SKxTQm1)+Ix07(B~_&{m6B*_8&fT@ke=&R#c{43WwVwt@s=Z} z@e6HXqblO{(W4eLOGK=Si8@YWf#{5DYtDH+lV5-#t@Qhzr^bL2^sjucD-Rl9g;`_# zEb`+SjUQz;x^&sLXAnP-D`zy_xUZI`-0)cnE8$B`o)WxDDzlqKX~2C2pC9?Uw+d90>aCy-VuS=2G% z6%$$%5rSCr7rib+ex-9yVS4G=-*grh9Z~X?D`qJ7MH7_)y*1-lCc58PkoX=}=Ir)$@2r zfaVwbu9dDp&Mq$-V(LM(Ih!+EWcMP&NGb$PKptt%ILy&Kdw}u zmYGzq3JoeuY?y#C(ZTHS##=Y(nWvwmVZaU&($|GbM!R@&2H}+g^&&4wvOT{;#ZK|t z@XO8cunDgmv-Of?FyP#q>9 z)h#$fxls$Y91oFR4}pTLX}C78 z6LuAdJ`i4r(g@P4U*Y2fWEj%aYJz1dNqomCHKaXbd|a?ph2#2-Jwr%rz;V5z%Z9jm z_CjHw=jxLSgrot6x1g_k+U4(bG+kVzn1Cs?GbIUDCdz?gGhv`fQ!u$J!qO`jh-7MN z!jfGRLj{?GJuIcl$4%d*6qE1;#(r_U3YX5*C;gR)#}o*uA~8|y=a5L=XEEkgkZeV? z&169+BW9L0m^(J0t$h_TD@jM%HPie6HnujbXkLsr8FO6T|o%tT5-MjZA-$|G_Q-5Bp?u47o4d;q4~orc%Oh9kCW3*btrnjG^9 zo3{U`-Z9+T#;&5fhNs)yanTwrM4R4Pg}GwKI;3}u2MH1?Z}vTHrn)E25=oV#%5l)A z;C{(kM@pD6E5SNJ!wZX2kX`J@t64v+Pmul=P5OUR$g)9zk%$P*<6hPH!{>AFi9N^B zH3!vgvQ-p>B~>&sb4q2j!-&EdP`m@>x|@<;$Y`D2oAfhtvsSxn&U{Wz&p4tDFKcZf-&u9$-J`Wio8`M%e5QB^dzQTl@*Ce~m$$bJ=_ zqkHMhUUB;5osG&6?XiF58cCjoT!QBp|G*SyOwKDRkL!*)(uHO$Zz#kj>N?pRNGmM^ z=@6hm8=}SYS=8I#HNW?y?+<3Y);((miFcwy-C~o&1qtZc=c=i?>oDDFeHEI&?Y(_7 z&h?7tvoJSDlja$nSy(X7>L@zl@de~>mZd>5%^7kD0R|)i1UVPh5iEN@_v|yJO=9@h zQN>(^__MP>w;yn+i5Cd(vdz2+FVBWJdVx;P^H8*jcvmoA>SWnp6)=dsCt z&1|sall}d&I}&SpIYRKO76*fk2H79fcBxG>FJUf%U&tKf_*iAX*o4?RjGR|dBAu3T z;CG;O=QLJA266~NV3Z(K{Uab8!NUw!? zM|?%5k1Cr*mZwx@@uNRXUvj58$Ur{o? zCF7JOv`ExPRP5>l1IMP=dDA(sZ|cXZsAYHxb+klReVsw$4^b$0eQ=y;e#>aHN%CKH z;&DqC|Ae|IzAB zjbQtmL&LkjZ#BDYQ}lqs=8UPgaK7)~HI0a)ecCtWOxR!p@+r7>_xqYya~w3}l&Ncp-d*gTH@>B z0AspcdsTF(&)x{y$5)mVy>Pi|LYH#Za2c)&QZ8sZ)>o%JEu+NgLrZ|2a0EeRcyzQ; z0CEbG9R@vwD6S*6I8q!4t0s=_t<(BdANo2oSz}V=9U)1ov33_U&#JV$;4Bju)S9jY zaA;2Dh*)cwaAF9r6vH$uor6Or-1GLcU7Ky&wy}A$ZQHhO z+s4MtcedSKn>M@Np6~Dd8_tUrMSmBGptH}3aIoOl>|bT z8VS|>5Vb8E!HI@I>7YfAqv!&oWgl)_oAH9LCjIr7c!Ei<3tK=i5`cRXe`+nHA2x?o z1u4Kg4$S>j>;ek?y)Lrv6~KLgyhF167kDuQL?KeE4)?|5+R;{aHJL^=%on7hY~=o1 zy}UpQcXj*x#Q7zU-F*BGHh(N(_u*|-kT2fPB#kn7O7k_uJfWLtOhEgt?WBx=qW4X< zIF`qiBuz{!$mHBFqDIt9y2<{stB3?ifv}s)Pp0*njMu`zW;$*i{rhTGt!L@?+g**= zM;#j(9#I<249>V??)9!937M5Nnj^X@vqBGI&In$?jKk0SBcI~5{M)2V<{0Wikq!8Z~>j5c;cG(3*TfYn%Tr_VEqe zx>3s6m>G}<4eobeMb$7**U)EfrcYzw;BC+`Hy}IMEIo6S)YiBqDc}FEE3AFX^E~|{ z^aOkAm4^;7HKq-G#$}GCmQUE%Bx>2Et+`4d#f z%5<*Fs01t{7h`Kvwbjeb$-k!}<3Tp7B^n%RMV$ZDIqL%ibfD(LSUGz6yqmsIYIRTV zrID>wVgL*ueMi9hg^9BsI-l@@=0Gk<%>_hPyM|2QU<1UQ74{Dhvx4=Bn%IuY2u63e zC_>GaQ72-LYXy$M>ek`#W2Jtvz0^zWG(dE#C{m!PFfNws2gjvMLHEctb&O-#!R#T# zC05`PAOWdvp^W3oq@tf`bs@-HZ-w*_vOVY#j$?mkh$K(;)ENF9Z((J2wabqZ!P0qs; zf){6D+JnLd*XoP`$E=5Y{%g4O`703lpn+`1tq)P=KpRoKv;;-##Yt=Jpd;*y5du^= z5afNP1VUx9>#j05^|H)&I{t*mFwM2RKwDCHM@cN?m$8a1c1R;w7F3I*44?_0iC}|m zW`+BV=w$JUovh=<_H8<|xWw%p+aOa3{>ZpK7(*w&E`x%jik~2jz(SN@7}hI#VZ`iY zG<3`)){=$y`<`GBUsT%QQkB{X3Z55_2@AZAWaziKzh>&5Q_@imbn8z+;_780i1^-+ zBN&2>*pq^X;w-iEL?c|o$QX)3p8(CPV6~wir;FeZigprK59^OPkPz-Fmj5JVzUw=i z=K6Z{oOzL68hvLJ-V<3Zsj+C|%LbB488o4q=D;Ng91v1+gJ_7&Kr6s$g8zpWMzH{q|Rc3eI?#R#e#KtU-XpK zKMCBI%E}d)6--$Heg@f#t%l`;caN%C{t2Fdy~*U8LTpufx`WAR(odGE;p_PDQPr{R zOt;@!CM``LhRBS1o#S`6EwtB0=dokEtf(~~J|o)Q6bJ4W1-uQr|Na03-F7=gLfDuR z4@Rgn4j0*~#!Y_pR?*~#Jqr}~B_kmplgt-rNPJuE2$N7lt>SQ+>qg)AnT0`Kn@6@< zJ=<+;H98ZFEBkDt@HFObZ2jU`jm@=yAvA-_&iji?=)KbS#Fw+_diaR@pdbPSOvQ4! z?DA{=T=WED90zF1jnh)zrcN}(+*yWD^0s#qEUaFHXIQ8XKr@gg$W`2_CtmSa;}6LN zdV+oLw9%~qjBnw99lMdROqS10wYe!7bqU?EZ4fp#GFo}Zp7HfN5Yz>JAhT_^-iOmb zComTX`9xI!mWWPP7S(x4a=2G~Ri^G?Q>UPhUiQ`&YFo=ll+^bl1m-B!L3?{h^3K3q z1=aJ_qv6&Sz2@8_Yf*>$_&wdlRoKYfV_BbM-9rfQ_RjuxQj$Zb{cHZ?f~o&TgC-eq z0|pcX7!C`<5FQeCn{qOC&P_s5UCrKG4b!sa(UDmefn*tU3_&jG#l_g+efLuz<@PhS zSPpf+VZk;ov;tq|kvbnIgrhg}A8uZ!8d*LOvLp$fS^mXrd|Xl+hst;Piw0lrs+8$< z^v=pLS{AdCkg>5wj;PSkm6fbza`wBDq$}Q9`fv~8J-&q#p}(J*sH^Q{de(6VT`h9P z(`YbJ&wSp=Uw_e5Gb$G&$v{50i4z&tIpmMqz;BnMyp^6BV${O3r3b;^*(6GgA!3G({Xzj7SS+(P(o4%hc7%>e$+m%_Q!#ufFN_2z(w;kGK}LmZjazB7sV>#GqAdZ04 zgYF)rgCZ}?EYed5A_Tq?KKeAtcpZI1-}3@pl8{d40Z7x4uc=#I_;Q_2N8K55El#+W zx+6|H$mRwi?H5!*_eZhb#bSn^Ekov`F#NYoLix%M7|t<=onAWz>NOI9ov6+0ttPw! z#d;x~QmNmw0&lMF;C#acdqE*uE&OY<8E7_6J!S(LHfj7} zf-`Z2Rk<+@N&no0F*7YmRY5vNE?f?s+@Ig26wNUAG%@JT&0wkL_2T54yoqQSCXUo#P(lbMw3uR=wrDm-d+6%?0r9LR zV=f`*UVy`|L^w(LV0DUO?Oz2vs>}apCEtTAR zO}-l*S+*kia6wULh=h9nxqj9qoxp}}IxWMPsgs>dTy)>EBfQJ! zK*!YUF)M%p0m-RWp_|90O^8E6XLIw<%mEZ1-V)Bm`lpYFT};0Bsyc3M-A|9nUK3)y zatkXb`+Q3Ej1$Bn?n^GgJgC)ws3St0oBlmfd(+S!i0h97u?#R8j{au=vNZKf;$)=1 zBzR)wP+2Yye~-}yAq3Q)2Zl~u&}-mwptF@d#$Q*g(b{sq{WlSI*rDb_oj@Seek?{V7;nuN4eXP5C%4tNqf zp+;xeAULhz67#90jlOZKlh?$_`?qm3{MWmSZ^jHEd^22I>O}=I>GxWC)HBOCLyTcC z;>NR~roMK0M+m1!RnDpTE(VD zJWg;VXVGdCweUj_3K54d_}6STVA+Q-ff23B6571#r6bD5(|q9i+pJ@amJ1@b5lRhT zf44WTBC)i&2-57x5{8xXG*4!?6WOg&O-s@N`Bao}cap_Je-yHLZfzQB!!bXbQ5w@Vg#EsNhq`?Kwwz7Evh$k*T6;7TWxdVv?p6D`lV#~f zv<+yllvaAR`0OhB+(L;eh#qUGmFvh17A;gB4-Q*LOjB0|ivhK)?536j}!c_%S$`D;dbM^2nn7A^P>yB?V+u{%7f^X=| z=?=eh+U$fVgUdLvOJ_ZCKYk9J!IImlzZ&FW!PB9)A|7iwy)PB=BO!Yd)t;+N2(e7DRuB}y2j?&ZUT-T23u3{%}pDPd@o3)?+%)3M}nMNF3^fYTEz z%u`yq6@NKdS%}61BP6^pv74WE!Z%;^HwQ&GS?Y4$N+(gI-?Nepk->{*ZaWKI zOx2P*`fSbe4@2Fy^l5!w5UMsk1e_$&m*!95TSO>Coimibn3|MlVEaBs(ujqsw#+h_ zQW|G>63VpAfA-F4JoZw^4Ch$vtoH#6MgMG*f|Xb(>#hHb;1tQr(%R_tiNTyTXoC0Z z9Z_9$`DclY8R_lgQyTlu$tGZzw~yyOiD5LpI#Hj&A%D3IyZNn%-E)DwXAd%4;_!EE z^LoBLiHv1NyG~oI+l|WHa^roFrvI+z(J~7C(T2`U&0QP0pv~*Vv7om5$=X?|$_? ziT8*wyr{<=R?2Q49D$jLIQ*1w{u47ti?M+m%qEK!xjC&{bYBeXvX)d|!6g*XP~u zF7F?gG)xZ)XZys7VRw;4(c=Cny#@Yut|G`wHo|54I&vTCVM(Rt*DS)QhEI_0I)`aW z%7N%Qs5n)${YPCr7n$GXTAe8cc z3w7aBn}^I;Q)m6*4N(_vZ0Tn zr<~FP0mq6{Y?=l0@5Xo-pU+#X&Fl8kpJ!=i+rGY=6GR){%-5o6quCVA3ln(9zP?=K z`tG;`<-u&T3*SDtH$m$jo2gjK)mVz=9oA+(>Bi0QKY7{NtWVvVu>y$`N+m?~!w2N! z2L!bvw46l1-vj4e0@qKsY{uX+t&%qk1ii!XxwW5EO9YTF>JPC? zaUBFN>bZN8e+`FxL%pIE>8*P6Q$p@k2EGm!Mkj(WmW>v-KkSE=s&|-rzZLLyL z#%KcM4{%h^P!lzu-Cu^!$>HK!8Yk$J5qRtKhj9A)_5XDqap)p~F6Uh;2l#|Qg&PK0 zk@kkWy%+n>?Q#J;*> zYN|B}PWQ=buEjusdR<_Ap(UrF9|e^g^6V#zsb+ zsB+jpy{3PP8_7QQZDQk+qaB*s@g&xT6yT~X**RfUW{f;J3RDk-$1tO~S{*A<`n?h( z4yEM7#9X69XjYR3T6AOC)*!6!^|{)DYZ^5;Wcieoodm4$ zhEbCq+*<_W1!^hl<3yi`qxv_`LhDVn()D-y{zG`}!UMulm`1$~EEN#~1fo4MP+c(*n149!tiV&RCE4|$v6Am{7j32g8& z>>b<=rUL{E;d8jy#t0{Izx5N$D=cc)>z9Suu6ZV@rMZ`za6O5Kggf`~eS?bnd05w^ zc-igpuHqe*0)3}25!64MvF9+rRSI-mTwF9BC3wyxnWU6Wp9mF7vbpBzd#H*V45}Sz zXDQPbGN6h-q(XJPuN9HfJt`4AM6p)vD=Dk2vY8e`auQA7Q8K zAC;D*v1;@GH#>?7tKXXDhZ8bHu-ftbZSI_kYw|6UWBWN4meSd>bYNPjD4dMVsLwq7 z)2j_6)bF{l%0`vU6qkad*ECd)BNSu7`x&eQ?T1#4Y^}~wPy12<6QEX2LPru(-fs`2 zw{kpS;N8Y3Xlb48#FH}mBGa1Xu4|aRgatz6=V@o=*RGc4$Z?@0I&fdp)jaw%SIb79 z`Fts?Dv0eZk<#q*DW`94b+|rlp1nR$0gpR z*0x+-Oim^H47YVMoXEd!M5lOTrml3FUQRg%AAP`s_t8h)G+f)nbDfptIe6^0qF&fq zT~BIB{M;?=j^nK?#w24PsyK`$x7h!zki#%oIx+y}1?}*XZ4BE6+5snjuda|7baOdO zf9%}I)PQmteJrCs$iq8+S>`PFQD9+%gsy!W&bH2@8d$d65tY~8y$PIS^f^r87yLwc z!MtTEW*<^R>Fcg8&PVQ*3tUn|E5!s87}Q0bwcq6@;|>fkglV!%EIZL^33*XYT%;G% zqDKFN<)B~kQTLWO928Ygn*mMbbk}9Ft&0$u-1I{^K97hwK$J%llu36cgRI@B60QV* zI6V5QEZv4l1^%B*vhwdnp1q+OQ0AiG+93#^)eG`vP+XH5e^PrV$JS8Im@!yRv>*6x zizGj5pBG(V-yiY~sLf)m8)4cr(%Q}CSF)S~_Bi@<3rvD5C+2V$@N*$*mL?b69@I0^ z$TDaP;K|qiuT7$WX$dROWk7vqQ9$Z_SFUy8kTdcLh6=zfI$O?*v=`YqhI_DTM}m($C( zbUviCBKXioR?N^9ep)KN!XvaHjGZCSb(|0SBRk6{oc~)7N#9`?ACDFA&M0u#W1Hgy z1Mz1Fp!MAwtx5PM*ouMqe!Mv|S!WqQ%6kixpL4g~H)Wc|!ZfFMYqouk`&;AbC@L)o zvr=f*?b|23?ETuRqx18V2Xo#WAAP|7XO_^Qu78i-olwePgU05~2jFy0m11W)%ag1! zxH>h2=|JW>E2rE!G(#%vE=a_~N&qpac#tkvk6Y%ii2c_#I(JQ*sv$Ea*m}>E|97@yLK?VaTO!{Lz6ZQ=WN=13wfd#9l$W8QYf5x}Y;8zNqwbbl0If_`6P3yV0%8LI zd8PUFmMM0Q9!r^{85|c#|2_cJS^iFime{zh-IJ9~hg8d(&q7~1z#aO$LiqE9kp6UHU}S&?i%O|;5e z$gpEIEYaNYKe2@4EfA|N7cLiTw?rDikCL1UD^82N_uYT3|1B*uI}aIly1PPPhax}o z8w!EB1!{YyS$oC=F8)_>m=>$jZ`4qv81cCWz0(#%%ZC-SPK(<01K&p?_3mzmw7BaN zUbAV{%d6xuFl1~X8a$1v7x*k=Yu%+u=`h75DD_^obbT6S2om+?Zo&4K8=|+Y3^7X} zgg8|du*~Yy@mW}q7EG}@-G9_Mpl`1Wlhf*jn)f%Co`y~FG6zQ5TPPs##XrmEFJ55G zbMe<%Ra96t*VGpHqv7h^QpUWj5RIi~P<3Ny){q&az3h#_`?FHjb!jd_FVgF6ORksX zOAeW+jXX8$qI2DLZo`k_zVq}49)Ptz2nXBQhwB6?HTomRB8>pl0++~BvKhNe@@}LfO8&(o@Bg$qrwl_3_)uIx?_&{7_uT3aMF@Z(Wa=DcBi!V z|2CUiXBD51JySzp>gelzeDtui@yjE$yR9 zXx(B`5MUxmXpPZ5t*ZX2PzCU2AO_=ncFvAFEx@*RKNB((%ORja*3qQp+B({>%Gr|y zpom@!tZgHk$34rzHqeS91NjKB%2;@_WU|rF4&If)HuNGnAtQSJ@hlL9t_~$b|0^=v zk;pXH)gjf+eSpubhr1S+QlH#wNx7)qv2nLzXdQbd%({m^N?&qZ1TZGv`u7S`%6ooE zTK}<7%j1??iM~_U)^`IUMOU|%K1hfwNc7=5@z!2Mz@lXK^n9R^RAgYu*x8D!VZ9Ou z3x)bDM1=>-UMc7>EM<-_xhL6wFhuuKAaZBq#W)dZCmI*;>QG>%bB*Ku(soYRb+=PM z6;L-ve^U4gexZVE#npZjkmH}m7KPq0c8Qs44LePklnC0|#hW|AfMFJURK#;Wxy8?G z630A{zzwzrgIM9Wvv*i~6U+HoPP)^I{i|h?ahzU^)V;R-D3pw3xzFy0sme3$;ttla zKM^@bv2ynG+Qbc;A#ujqE`#sk_Zk!%B+vTO;e{F`=t$1+1#~SRC1M+`3jos$;d=(F zt;HV>&!|i}um@*oG-}76ELFXXlZnuo5tX=}i8Emz@=>&s+`~6#FWSQ2g;-FWS@!Y&@J&dejnKf9s=sSCM zra!0?Ad94p%4$oa4;hkYhP89pu>Z-R7%*+KLO&8q9W&2eU2X7+cz7^T>5UZP4g9CQ zt#LAY$#^Z^aWa8X6~X}%YEb~DT=tu&Xec#_+==qGWhLWxeT;W*RLPV&>F2ln9_H~( zLdM5Ap(!e%&=PHOWjyyc6}{6^LfJq0P!pM(LjFs=OJPR9Rvs74+=2?ipZba@NpZ0W zIy)mAL=N_uG_D_o>9iN8QsFfD1}cPH3tm6wE|K=;1(oG`3eOW!T5((X?Cok)CH9mN zt&|OC_xz!@9kZ3Xhyu#4_N?km6n-s>NO6u3f6%7l0jl3f?{baP4s-tBdRS%RKfEp} zRrVO4VUJ794Q3)!2EJ5qu&g(9ZLT>+T=KsmWL~X^@ee?A^GktW2F5#7$K0^`us9?i z-!3#^H00=pdC`IiZ-JxOw{;Cdg)J7FhCij^-0xogQE%y*5+W88I>0c&+4s4hBzZma zbjnJ~Mfns&(6U>cC(a06D)}^j2WSFEHUqcqWbA-fD#WjteM|K!om`FBPuiNvMcD-$ z?fixnFmR~kXBAehq{XnJAbx7phbZDC@5T=?$5FXm-3 z3un5+>}TUK3TE9Oz_={*V~I)H0pfr^Q%y#A-F1cbvHnhvKJHsp!_+E|H*B@th^Fm0 zNyZ=Xo*ExdP>CEQ~69=Kq$Ul;XbpZ@C2g;ZSr2X{d;6ON*y-MEb) zO#@3iP-uRJyV;t>yNDMamdb~DSPx&5Kht~OV{#RkMJV7;`^*Q8t(JY`tJK!?t#L5vZ} z*K8X4l`}<~ksEo5bXP3a2$~0rwPT^b4|X10+wjBxWqn48PgVNdM-@4s-agXB3LZ=- zBfJ{el3c5ys_Ac!pWHNJ@~u_oQ>)zO?No_QtTo*+GGC-#WZQ!$}1MW z9K|Rf?9{E8q$DekVdLra!kV@g^E0XZ&nYzwk3^cuDD@w0%wISR-ei?vvF8^*x9q5+EcT}x_bj_@2tquNY9BIv`V`oEk36ypxc(r$`IM2bFr&pz zFew($QBed@5Ki!MN)D(Ye^yg32Zki5^$d_n6&{+H<()3PkjD8ol%;2E4j?EqAG=X{ zHAQ+@>G5KI$l?ZK+@goIhuTc$a9QKABylOXQLPGxUIz8Hl*hlNKW8(4(Rf0sZoIw+ z3)KsVc@NS%8(T;7hP!$<_Q?Po89|l=xXzUc@JN>Ehs| zO)@>gs#(PXd$JB)&Qu)c*_>FjMSxLo%!rpsbRt9EU&bc>V^#eKUpeu>{YaXb0+!d3 z#nvt*JD*g5W20EQ|Gb(lB=nkzJ4~N7boC&YqR%;0Gi^nYz=(x&yghOkBcSKE{6{V! z{BHamPcy#>43n7ev?AJwkaW2G{dEdj5U%YU)bz}y9!{8xcL7nh-b(MJ6pq4xSY3J^ib{xcMc^hDsPdl(E8eX1zY%6vMTKc>Qrl$r)$7HX6W+Qr zBxA)5{_}DGLCWXBh+LX7&REcYSbR6hl_A`^m1Xb^U{PuPsbVqPmR(fNQ@~po9N@UU z?)0|N?7|Z`T@!Y8V&bF7nu-S&5oF(3_1zKskDleO4h1^?rWim9`7asA%quhfip74Y zPmKPSvKR)|p_GKHB91RAtBWSW;o_2GM$ClC=Ss!gxeAkCGUP*+j@XHL4rZZ{a@gBq z{;2X05Ye`bB_D}ue;%4Cpg?S{S>=M*AeXT#>E2$6;PkbkEQD$@N`FTDhYVq58PwE( z1mTp!WxCqDf13^fuJb54da2OmUBl@sK$6Bz8M6*1!-NRiBK4lc#jRMjY4f@d^5_0b z#*TZJg=Ji=zxgDD#(GvyuT+?twu+5|cVzzj76Y1#Vd^(-3)c7iLtUGWC8zteaz)ekDWK?D12GIOfQ%g!)N;==em>0Ian$7c|c4-a+=$kA@0%nTcvxO6g!iQ!mMTI>Xbk zFt5?K*AiAOhkaZARDtBz$XUY?VyYi$#z)Gv^_$|siApL{RB_f@q5fGN3pfFu9)7*< z{yLC5h^o;%r3!eLI*p>LUvL6>1KkW+F}u;-3OW6K&g*926S8zgc($&!fHf;M%bmH( z+a-oX9Y#s2EUBX=wV?-cBw*1;2cY~AvIoSH6-*Yu^|kCZ5NY?o|%B z8{U0fftqFj;2m7#d*ut@DWIK&p{qC0uNn=jg+d%JR=vVytWjl{zm{kDC(Eap zN0R=p@hPgjYPGmMfVpf5+weW}fIk;2*PvFJ4oeID6+IDq+cjzYhm@_gC3nX9>*r6; z$Vuc{xTqiY$(AsM$8GJBaJc%!zh7T~YSlfYdiv*@>`x>}nw@Puc+s4XkykkN#$zu5 zjQ*m!Uk41uUw?7PxZ&gYuI&U#^n=B8pOKZ}gB|Z-$rPAYu4vchQak5AbCGbVH(qXr zihCE;S0Yg7JtyjEgCiTl9y4Z-`x4OQQ%|rmSb|c}OszJyZYn+BE^{=dVmNw){Xfe3 zUstDJbRPLg&x7v0-%c2O5DSRj_K8Y}KG%@vod)mkQ{Aq_u5zTZ#%6^{Nyi>+ci zq&I?WFHBfbPD?5>wNNg9jOl+G!;rD`J);u`?L#BLX-r<@?tzD5Q{%_R5O=ox zvBxMUR~`xNt}o_Cy0VI=7kuYs?beRM#Ox86KY6;^0rMf#3>$1NsO*j1#B+c)J+V#! z1l?~5ubDhO>uFrP;kfTrYcUDE2UrF_*Jq4-kyz#-rQiv`7^owWJrww5bCtQdsr=b>L%J>Y zj`9)IjMPq5PE9{kHa9uDF0^UsbUp8Mem*&!cSjc&72*4+EZV_C4sFa)VxLbc53DHU+IhG!MspNlj4`V7x+FfX^=})5kze zGsRzl0pw2SHrNVy+1l7qqmXRj?6iiS3DltHbugkAZ1g zXSyMNl^1+H%>O*sp~vD}o;Xi_71U{E490YF{c668EvB`(-G1`#W^XO1`7}qu95QwZ zMSnGFt=g8uI+}h0(FL~1LyO5aWugShPYEJu$z}6}f9Jzjr6Y&o-)qxNjt7e9pbxF+ zh79}5#UsO@;|>1(`fpR8o24;TuX5hf3;6p3Za~bpBrCGjqQgnrkGL{3vh7PB^RR#( z6`vYR^P~#k-u4H=eC>;FE)#|FkJ4RbV>g}oa+02_;QNg>#?e0qybv_RGL4=LXz$=u z4~sjv)C=-P&+;MSvJB5nNGagKz8JVn>C~s8yGUT&WW8I!Q_Vn> z0ZS9w0^zp6Kq_kJDwY3bN^57MVH5*pf8g%NQpK5Az~7MjZ$}d>VBcMXZv;huAXR>+ zsL(TVUqL)sZC1XlS&JtM4g2*wg?l#B7{yC3c#>Iz_%UsRj5^Aru?g|JJqzqgl8G*B z;!wi+<7eNclxleAP?^2Qf|Yd=n}?cyzNjP~f~cF7xA)3Q2uv(^rm~`ZvP%5>8S(Am z1^%T&XJtY>U~VO<-Nt0BT!e_gbvo(_jv+&VpEaxZXbh2QDuD{d6bcYp&CHEv}XduOJ$9EKVjBJqd zScAUncdv)&h-qX=tkBet>_lpSc+h>fq5b8n^V}(128Wr}gmj{t0aQK*{2$@*p(Kx@ z^`Nl#)A;igA3pMGdHPWi^0KFV|Jl5T1!1|(^kHsTeiSX@F5%Gq>+gpVc=6)!*0O6H z+2Bx$l^@WT3d9OH+g-N_yoZEJ89zJ#k7Z#Kkl5sN^kf>tAh6j{ehIP`IdayI2cuC* zig~RxVdx7Tmz}!TA`3Q9%^kxunMR?y1jF!eUAuWNWZTaLAVbX*q+Ri~NQ-FK~L>&My~-e23M&V#I=?7(eCa zzoSiv98^ORdnz1VCFrO@@ldtWm*8wvgkVx!D{Nr>py|KlY3XROoT?+ntk_M|_`i>> z6nGuMd~g5mU3^9aunM>0K>P^P))(;5b&M2H6!dGUD!bcxNK@85EEsH}7+OL-Ohcm1 z9M@*uv#!BakG9{YQIxp1a2s;roEt@-!aVGBWOI_Y88~$%@|*yg6x%pH3l;yDi9UNX z+iic2s)t0oBy2_hjgG0R858lxa@a0^bwciX7KdFZ=7jj71^2r|8kqBT*S)s4ZpKyN z+`DM>b(g>T@?$k8_40-8kG-7p|4wT$hN;ik&lQxZ7s&HE)Blb|TKxS;*FHchG$i=W zdT1#y!#;zBC^7GieF+JfeK`lZuStDf?Uo+~M@_&kZ1xhv3k8zZSI(`d_qwRI*=AKa}ubf1F+|oj$#E8I4`fS zrNp7x>#w%El{y^yO{5zcx<8M45YE`8HWKyTs+C$!=ZObj!GW#*#tRxDmWjAQEC^Mc z0vsYf=K4(^o7w5zoSUaj>)471h=L zMHYoMi+^j*Yy~npdL%$QLli+0k*B=d^jMQJANts0aaGQ~xs99Wn*mV`HsTwinnq~; zUog%OFgUjAp=brr#lb$#yRQw|=dbOfOVE(0mcjR_p&T4)CzBdgXP(nYvoq#YZ)$(n z&*$$v3r|-O;>bYzw!btdPFM2knl!qRb+%=!GRo zftmcRMjMBM&=n1;_{#3f=`Pc|JB$C*lb}Mu^Rm(c@)xp@={R%6_Jf;cp z(Ke;EJK8;dt0-mgVwYeC4)&oBShK=ZNpu*f(ux2PQP416+L zJ7F8Z?PgHKv?aGF3m*^i&nPF0;)rO{^LC$B-zUP zyO=Jr(}=iZR5}>Q`#b3@^irs#i*5|J;%Vz!g1;Ss?Ewf;@z(io&Oc9yn!c4q_r6z2 zh(BgO@B3S`4W*w3g+BI4h4}hr_b<72i#v9`#;j8ZkCJX~3SM~RYMuOqUJivs#~`n_ zv~J=zOhSS6tiU0Tmraq93CW7f(}ipN*Wlu_Dw*n)PnEW7;UkwZ{CWp_9rW?--+CLH zyDfb^DC<~#1DIGdYkeDBGFR z*4f{JcEK8QH$9bwFJ&KbEu+zx3JjR%ef*ExVG>WJRJ}-?y{i`0XqCr3S!nVqjfAVI zDLx64!Cn_O3>loH?ADkd&~{HupPK;|A8sOx@QSDVEipIXLeENYw{*YFr?CPKDlXhg z!IdGK;Y)v{m{6ndx_BPwtzH%e2{Q5F5AK2X7>_Ei>ngcJ({QISB|60CLQ5-Vwro1?q zo0m)X*pIGsb!ly^ua~W_YpJl^wf38gv;4M@Ve)~V`(zCn)NAn?h_O~jIRMur0uX#m zPeeAA2J6C*+83V#*q@%fHF9hN91`?Bue836c!xO)f;2FNwg+XIqb3^l@3`5!F6nYB2 z++Q4B+ZF|UC8(;}{{+^^+nNnK}l)WXPgptv@~QODH`dDC3NXUa#tGrJH!I9Uq8J6Jx__ z=dH{5W(dOa5cBo8yLj#Y_o;4Wx#MG9NDP^iGkQGsA_qS35er?5xR3k=(idp(0>2U^ zAWxQrB#u2!XBp|#r}VzzpoV6+61t!pf$pma&d^Hq74=mm9r8#(MT|=>3D5J0k`~p_ zy(dmH!HfOpLq0WhX+@^@A*f>N*pZhoK+Y5|>F5;k+Z@TSVL9xz5R#LN&EoYmH15`t z;K1gRBWO$E{3Ad? zL5Xiss@OBAZhQ1pm^$e;C=X|^p?1~fFq7xE1ESw4NE)EM_%*q81EUb!=xI)%7+E=5*1%E9|_l(y_Dl{}da(6CqZA>WL@nx5?uF z0=afQOsFFhhsFm*l)AsOW;~4tS4B#}d-*3twds|ML)hsf!GaFoe6bRhmo6Un-|QFX zD_a@#N}6ivw7qEUv^c)sZ2le>GD6e9A2JpnH99lO0)ngV@1k5rE4e}pmjE1^M1wG> zuncUk`CsDhv3i-5gAuEtF8TqDO@8;YptgtF05`%Vvx-*R>hALa6}kbTPJh>B&DDhc+_eUE#Ca&ZwiWBO$ulx@1)I zWaRYEe*58lG+nm^!>ep2NR4>zx3%!2ALlOQTz5)jvb&e3{x*1)387qjd}OQ}l3K%^ z?_p%jzFUL{JA^iOF}C-gK|2)T3xPXsRa`oGhPhnZ-fo$>ml;n4W@KC##IO#X+&OCX zrVZG_Qh z`1isopp+p=9~`kQp=$Ana4i?|(xTa7zofNOkZx-DSfOPk6B4WSIPrk(tA;zPIkMoV&YYt10Uldd*7KE_c|AE@rbRB z^%A~wpH_AU%mvj=b^$iKMGs#2SGw~60GjR5nDsH|PZ^Y(EC1BILrVIt`qPUA(mb|5 zSgp6(+}|H(hEYUY^FcdFq>j}QtUKCmZD>%*<)07Dxe6+54y)5~JUqmxE|q@UN>Cf9 zU#Y}DV(+Ztr6((@UoZOq7re+gB=~-Fx6zuK?_T4AtK2=bNs?NjZmKeDB(!y+&oZ-{ zPN<5>4%wGun;vE^#Y4vjO2b*LTFhDtHb(hN;+m!NBtmf++{zOUB_k~9e*X^LJj8Sk zYOceVL`x<=lc-9>b?mb8{~t@|935x(z5T|vZ8vCan~fW%vD4UgW7`wkjqNmSY}=k- z-g&;i_upA-)|z#nIrlkx@9Vlgii4p0g*D*A?<+kkca(P&oV5W)tBkSxuwD|x4g$ME zv#JMyfk@ieh+Hp~07UA8!yf{KH(a!=-S!~g4VzNmj0cStwaOzZs82KUo)3z776)ZH{s^{Eb$}xG7RMJ$19!Vk#>AZrVF9u zaGEI~*1Orbb(qUU!#h00tn!k4jWnD{BDaZ_1E~1qqYP7<7%)Ti3!~3QaWar~^YyUe zG@5iZ!#P*4uNP9XT#sT)9rco}oe3qURlD!ZR{OYTV+lyaQi}897WUMjB(OWmRTqAu8o@Fc%fJbVx@2h@yX2y-?MOpvd(Sj6J26}rvbP! zDCTcgd0(Qt2s1p;h&)!Bv&+@SW_KkPm*n8UP%;@mlOMy(q)7iMr6nFw{|MGn^~X6o z+k&+e&7Pd_q1xN;sV!e|I0Q{=nxfD#aXqL~|Kfc2+FeTVY;^1KO2#hwmd4UCObX!W z_8q}AL`1T=rjm~8a3&;_dQG9@Lq+OkX@RTTqUdOl4_lI&N^K9Q(NU`xZbUiFBGS)W z0EeCxaZM}IrWyxjS^okn_ciuMJ(eyIOEooKUNUoBKf9!fwzEq}qh<6F2rgiuXHbfaH_`IBhdhUDp@T25Z`ZQ7MOFhxkm zKO~UB9IQS7E#6HN87Mt0Egkx<|0`yesVtQ5Np`QQmB)uaO`^w!B5}5{g~e}f?$+pQ z!Mp}s^XJ3mil%lsa07n%uVdghdT$YZxM;chvs8jfL#bxRZKIYM;%-ytARPb#wn&mP z!Je&0ujOLRlTUYjg^5;eNE}hfSL@O)+B9XQV$DMH&|63stngTfvH=SHy)a~R`oNoTjH*CY)?6hX}WX;?L;Si0z?8(?nZ?wu&WJ> z^T1vRx>XbZ>L2TA$I}VCsZf;(*~RO%znuRQx1xGM&~GYP&?D+XR$mEDkJtYHf*8Ya z?JB`k74y|pex6jS%~tCOf^liL$)T%UEk0d!-mW7y)>+{fN@?t@p-#?o@b??d)SCD) zqK6Y8X9T&jGmJ^uL(O9SALPoP2-$lo{o~!y|9A_UTnbCF=)X0niJiydt##-JIH~X- zKz#)Vy-(_AZ~_V$n}?>b;_{FwO|0xo^UIU#G7w z7lzWei?;4ezM+mwk>qUO`wW_9OWq1w%XljCo)1fEC=%~fg^n%f&F@_~q@SVYiCV z+lS$wLw&o5&-ooXM3ARN(Qhn@w|{cg)f2Z_tvpZ5w#}pJ_{D>zNDSFvovWv?aco8N zztLES7s~%K6HT@yN1&gx%HU!lg18s_%3X#`u=t2{X*MWfqc!w=lDi{wsWpfC)fR2d zDt4)DTJmN_LStUEwteA_K$G^j8J`=ZHSkTdgb3!9TUJ_3`vD@=9xu6}fmX#&V0Bf% zRuin~|E$e;hx~;?O(0_d#%JVXA7FC!fs2Qcb)M8v&matxIB7BHx0v2(mfzs0#uD>DRuQ#-9uS zyal)qp3Pv$g>QI)odaR7;LN7ep*a^#i(klh24wu|LDkB#Y_zWm*Hlr@iInx@1WIBJj>6<`I3vp3_$Uswm(xng@S?7+ZhLVurZez%=Kgl9(TojisTv zr`7GtbQp*`N&;S2`Gm%m#nX{aXOvG<-GM6bf||175BYZqhF|NF^pI&`U;$*P2&8GJ zD))>gsrhRpc*T{+6D(`7x}Rw0@^oCYVA}ofq6QeGa?wMp`RM*VdCLcz!)LfAS}!Fw zH&j_!s4YxMZaBQRPWQ$tj|thsjFwFgBG2Q5Uz2x=diPg1RP9B^%m?5lm(IJ&O4}Y- zIWRz2)@6rby?gYhtB#U-G|g1(A*hkedr*G-otFaEH%d!w3J_qS&qFIk9c#11-vi7T z0|u%wEc|=lDz@7s)uzosf(;XRu&=+75UKds-ZD?TEK5 zYW#7~`;s`2kC&}ll7y`w!l9M0tY94H~FH2#p;%fZ^9n1s|16vS3t3W^N<& zkIJY;qnzUD%ld@I>%T|13=$I@p2ccD+yZxGXN9d=d*rIa2W3`fC;kWrpGjABNjSnBBeN>9)@LKYp_WaznYgtxY-|{-< zHt6^jG@WnI*wbgxB?q*I>xHY)F^%3w+`^vh_D;}2w0t=NPWQYqwVU72b8oXR&$qXr zDjmWr3lQ7)dh6f7n|`)a24Uy#)9!PYfmwmHE!#{U8yMRkx?BYY$7Z-D% z{xjF%$5BDW4UC z%%Vx=3HM?Lyb2wEwwK0fdxj_f7bp2ew*&w6j)$usnynN#eO18Ug5f&*|Me`}*1kvD z@gkFV<7=MMh{3QkC204jMI_+y{{3%WOQ%JU%ETj4+% zK2&MC6cGO@RUJjYsj?i)RBWD>Il5Qu&r;jb zZ~i5$1&U6peo4c>7SR+aw%y7q6u@E$RDzYH>qNp-D$HNszJeB zb9L0N5uI|f{q6TDP6Ody#ej>d-rrjv2VA*#BH3}z{S7wezs)y;C5 zppDE6vu?8$?33gCxqygaBbv+_bxu$iB*_BuPhC=#UgdK#8Lz*XOA|sgL-rc0?q$@& zY$j4^{e;GLwS&W2Lf3x{5)9EV3NCS~-kCsX6aF7PMNA5{s=CdiENp(=7zE`zv%-=} zjgZC-o)$)iSL5U5aT{u_JJIh$nJ$rgu+B(?_)AeAVAolhqZ`pT1e&;5O4`}IyM^+8eOVx7~V%nV=!jP z?a5L|`f|Ta&Z?PmAOiTOS!Ug6|;J1bG4XC*WhV#cHmI zAegMK2h0uqTHv>4MVW@2!B}M)>ocv~;v|1*4UIc5Gged)1w*abCWkOUd0i#9e8E_H zD8EpET84o%vYAKKg}(H5C9UXr`vIu^`n^>LPXNSMSy1 zx5JN4F~}fj(*;Rhzq)9LNc!0MZ7rLmu~2M@G@1`DIeWG!JVW@nv!8hg^&)lgpctzD zog30n{N_Iyb|HK;ob$iP+TB+hIaJA2m@F*IP-a?^(Z5^loBoXJAn(rjDHFf7RoMUD zMPBBNBs$moVg5S(^i%%iElXBSvH^HL-9<4Nhp zDNb8gEQiYDkHj5< zd$5gbZ3jMW=kE}x$i-XWq=wuUu6exag^i8s_UX@_6t0qy?m=YN*2jJG{(YD8(W+rN zn30HoXu`e6H&9PY^1SgVgZv`K@?lOV#fI{Zs>W(lmV zjxPQJOrz-%^?ig*&5~uYe|;;yNaYjXCm$RVlWi*c47WZ%XOPiUysn5tj^^}v7cuIQ zc>o&NOw36^<0#@CmqoEm+3M!Gs3xi%Kh*jY$Zz<`-$mcEc^x&2H1p)Tn)h4I91Mjn z-kj-b8o3p0n^-Y&>31^ujqGPQpN&oaPD@);mrukVVB9~o(8F^aNgmY1)>M$IoODo=W8%cxpp|rD=Ry< zVa|lF9PSIH|D{=YAj{*17nO84c*{g-C}tm!7!SG zyq_0Xq(4;(z%!2&sQ5--Y;ZSFVXE{SteU%#O8JiC#5G$_RORD7csD+C8^o2XDULq$ zsA&z*Osm{8J^is|Bjk6skXZbJJzELZRn-KuO=iM2lCiPqVQMqz8-V_}k`fxxNBqV7 zSqbl~ltt>lp8vrSmWEqPCDh#Z<$QZG$Moj4+~InL3GUSNq8a#XgNRN<9{L3CUH$G@ z??ac)ZE-VEm+5YSVtoq7M=BCX-W5Zddfbk?P#@2LH<4HQ{o72Nj?tFb5@`928+bv! zFq5ZKF#JkDHFGfs^}@=5K--yaZEc-cT1uPrc{JLjF74lr0$7UIj$T0Mn)Yl{=fm%# zHU6En4zCA~V%}@R)BG;teIcQ;u1!Yw-*cB@+yOvAz?P+f_z6W%R@b&DNc*qBrF%X{ zQ{Uno&b#le%dXVd<4}_{EOeaVPork52)0~}d9(}; zg{H5dGf>NBelkpT`{SAx2#laJsF%xu`5xRv;PMCddwA!cS!%I zW~>fR`xhBZyVUkU)geBuo9fPp@`g zQ}THS7uCW<)`@a#fUr!OWta${qW3s=k-a80@fl1Zo=nX9!S}mrDP*glOGmra{YdY; ze7f$At8G;k*M8)?jmB=$Oq$Yt>}iF#NvwgVEO!tuqyn^SfoCyQ%HM-d#=j8O%Xt|Y z1;a4+ZM?@^`lbZxaXPhA$@cbrlG>4#dddsnkT71QKt*=^lrUP*?@$ZI-@KCn`d#bszBpW{4#<~+H))Se1-kwS4hk{-p00HSl+Z@(7$hg@buQrVn^2!+(nL4 z()Jtc{y;bG1rkXhP@_A}Z{xk4L-IW(gZ5;6H@z?~;6VM)>+LeYd&Y@&?^I#na}SRK zm@Z6wp@72vZ}M{ppT1W)q$Ui?_otkKsy`W=Li9hcN$cBN-g0Es(rMP{=E|h^<1j%p#n9QUdBug6g>ir&I_K-p@|3NxX1A<9kP?mZu?wx?r_W`>79A^HEE4pPyA{JHM} zj(&bLA^i@yWSUZ`&aFdi1dX*ZIm9b_W}-DBD|P|%>JfKNU3CJ$()lPWAR)Gad3bO z3Oq45nqJwI#mMmq?h%2%bz_DtFVXWGzN7UhZJT)LlGk25r|qkhLPeal4%S2sxBYP( zD!!j;zj_$){8Sg9>(#xUgWjMiS~-buJ*5CrsaxdfbtiL|l<(%bc(V|f{l{FoFZj~`5M=~HsZxCm5xMzDT-`={9}Lh( z*ClTPOVi$A6mWMp;z2_ojSPn1j9_j&cmUexDcZUV{c$qrG~Mj@^Ev@k~khbXo5q zthyq`zu`<4u6@Wn>&8g1PTlP*ewZ@pqh;wiuwA<5Qh6)1mazr^HRJpm)|^?q{-hwU zF*pUNjpeIO5$X+84O_#R9d&oJH!Tv;1OIB9f}y%PMaL}v7O*w_;%H?=^Z9jF9 zYi(r(z$fuLSENmmIgY3D-Sbd3C@_UKktx_}=3O?iwV`ze4>Wrcs!3lc`66`~r5*Q?yJst))#NdUA65I60=n&?Mx9nMTxj9nzlcUc`Q0w+ zj%uCafSIpz=G;_lgen&=!~D2n+3hXW6(NPA@($3_?L;+e&;(gb8#7 z-n4;ee2_WBtR&@R?-0Eb@Ls^542zp8rlmv4G65|AGV$)IwA4CNugv(r8_$Q0KbLg^{z_UgdDcy^EJwF~D!+Xm7)`D}D@%@}(?!QXMNC``{(41#u0077k4g==By}h}f zKjju?=_uNiK<^$crP1_)^Nvs7!(6l!iY;-sJg&DmmRqfze^XKX1-ECnuT`V>qrjP) zW_a6fxiSS0qc$Z6?~SlyymibcIkdtA(!{JYk5OnM6R(g@@(Akw~(V6j`+O#q4a-4 zHIyFGVbqV#)YgAkz0DE`zw)6pX+YH|V_mX6Ly#HX+`}Y|OMib~tBc|+2N3Lm6`wqa z1BkjmW6=EWd87};^c1Ca42D6Yn8fc{RUDzd)23vOf%St-M!m2r5Ogdesi^ z|HmsU8Osblz*VE0L;JBQq@=98W*~sB|B?)icUO}QGchtEU6>hkp3Y)OPif)cz%SFP z=)cN&bUzSw?|Oe^Uqu27iHusQismk+Yh*hLl}N^ljuo;o?T|^2u1%!W42JAT;;D}G zB9RnL7x$ckr=UYQFvw}h1Rvg!;wo{rXQAtAzG_-02GqNU0K_?^ z5~SxV1QN0^{7+Q;Ov$VLub-s|`WwKiziyMd_8AqK!$Q)RPw+iW$@}N+tFza(M9Y`< z5pznvxD-g8RGWep{5Ye}cuW zqw~8ZmK%LSH5WJVZ##-JIU)Md*kfCl{?2?>&yaMUE>(n#VDS-&fntz}>m0x0Dumkj zUBR=(%83&Udnev;-n+w`yKK4n@Ld#+O)wn|s$|*F__Vrx`OiQ^QP~W4N611KodW^! z*oXeZayq9$QUjH|AN)4;v80o~pBC`2b`03Q`Zqm2J^#7Yv+%;+*>K!NK*c$>g26Rb zle-B<*K9Q$lQavVfjxVxT!+nbWMsmgl;IpZ{*K?_yBXBP3^j?5dqfZcgzUpbVM)R) zoXx1q4qUjH%++~<;qat<{m{Z)hP{^Xbwa#ePhnR)dNEFmlTDHH-yz4tR=eVeE38CQy zfHWcNr=}=hPTgat+pqVfYv13(Z|$tJdf?C#+vVEX2v9a?4Ys7lT$q6+29`RRzw&S-`(!%%0 zAG=khIi-$6@lot@VYjU8wyb9wd6ARI7Ba}scDhX?xXf{w-5>skTo2{XhD)yIbACar zi)%w2hFVsX>6NgDUrswRQIDtq!{7ch2#FuyqMV|VK?xYsjiU*_Ev{~D)l&CaSXvN& zYw6SjK+M71A;n$HAmke$Mc*%NBtoduSfO{Dhng>84pQR1ie@PdI7WaVEK1Alg#=2O z!PmWqo$m+Jqk3SX3F7YBZN^DB21Q`bm_j~hn$~xRJCRxMz-Y>%q|WBOVx9g@p`w`$ zS;U<|Mu_qEOt&(y+lz`@8Hvj`vo`ogL$vH}t1fUI!PMs0drSj3K_M9@bh+NUs<}Vh zTH!FVrgC5P`=jvE!B~?1sn8-zM?89@FFqxk|9p}Pc~#FnD+oqGgMyJtMiCm}sWTtw zx_i&aE@1|F`I->}R@L5-Xmv&-aKQSyh;bml%<^>JiT=jXHR#D>ED+@F6=CjaGxU1o z5IGVRucjd7hGI#cNrdt-_lmr1kdZP#z$z*!{os&| zU>iX_I4;Q9`!E-_m5Tsm&hzeyKIpf;Is{9Q$?63E`AXu+t%!31s)ZBR# zJByf%K--0Q7e>s$Efjkh3)kG)Cc_*DJ0FktMj~r|#~3?yV?mrh&U_iCRyFER$3Jiw z!bn1vl{0JIj%`h@(MnAfQ|+KheKiuZ6q@MDqIfksk0ax)rmC(St1A`-ZgI)!Sv8x%cU4|v&O73cmF=*e6DbI{SKbZA;}N%p z*ohlvu=^kQeCj5qleF*ipA}>`sCzB_Gr>d-#m7>wAShZON6Py7C9=6WcV1O^jP<>} zqlcEUF7C^IYd)-~!g(3k9(H*PdL#P~88u0Jxd(xa8V{E5XS%aLH`)R+YTvd`n!+D| z`G2`~IP%|uyWLYVxb`K<`^wpz{wYLDdR*~s(ig%=n_$I<*wvS6(--?*j4*k`@HJvz z>RmV;jJy;PCp7|CS|K%bwbU#awHcqHPg;88g6+TtAMiNcRTShdCS3VlX@?AUu({)o zJwPbjp10Lg5InOj!<<0U`pm908q1^Rkjc>+QYiFCRTEpE>??3Ft7|?vsj!rS`AAOu3+(6<{N>-(9J{v~vG2V* zs&FOCG>%Op88IP$jYg)46d!pZPrKuUh&s5Iy1+^#*)Fc7u^;$ zzil_brXS4#CEF$h2VO9;I*runkn2LfUUpnb*@4WY!GATnDE9DDZF=0<7m5Pq8R=e!%&JOH(* z=mr?txx*(#w>139k=A&h1}%6%LrxvgIQzG(AY<&bI(M$T-(LGZfW$=J8v-;EjL8o_ zr)5C?iD+h|A(Kt^e{?~$dD2sv?YLPRZqO?qsW`w3GT$JFF26||O z#p&$(?fc~(4#sOJqgUa#kAU}M5o;xi-RT|rkHEjv$_o<{P;Yl|E>aR}89p=_jJlTy z%e&|>jR!-dA1H5v<9jia6iNQ@-R_wLqdT?DH|nyt`k9PzCHZ%{xF&gr-9h@)W2%&& z+%VZ*t>8E@+;~)cQ_o!WSaRsNd8~*MdrB;xQ((nZW-^kVpy7YJ5=rx7Z8gA_|5lF5 z(jtZ}3O3XS+Va*%oZRfV5@ERkVpQI{R7DT(OEm(Lm`Mh~M zU(K}t_1~#dx+Yp^X^9T+U`%Akrtdntc-)R2tce<* zoMiSGo+ClEdhyWLzuTl`1kj4tJi5gVK$4L==-44c?in=n+0gb$)7V+CRk4D+d zXcqA=68tZ45+5=!PcY>R{eNSayXo=^rfUQMPfz6mhnOhSzl_n!a7O&V_ishTFN;{3 zArJ?d4!(vCsN<%TCN-QiJjwHoeED4{F>o*yxUf*|^upEErz1K4HKo9f4dPwGCGN0C zsllrySD_TlTg~M&*?QIHKb6%|x`KJ&#mAM%yr8;=f@NJ~vIU@wOQOFYP02sTpg%41 zSp5n}g(uY1TfZX4tqzY-17paiS+M@j%$EmVGt>4>k@^Y$ozf5sbRw+UO~v}7M6^p~ zH~NO$>3Ive+3vE8Y4~C)deZUh(-(sTGtjXf_pj>VD3kKO@TBDUKE;I=CXD7^ZHZd6 z;f#``a8akuw=Au;6pC)n&CT!J-cG zol+#<{Z6ub8fFVj${sJ;kf`zB9U2Gv8d*CODb!r+=3&GuUYxM>-D))!2TKJm|e8 z%br*?00Ex+*=AH@j7M>?D;R9y#?$>*$5XTgE0v@uvassMD0#AlF6}I`CL6L|*XlW+ zUtpegKJ&%s5m@Y2qBu$OI3%)%>Kw0@+4YoWJXsf(Xr98^jbIq8bSKbL;+wZBH2Bzx zp!CCFPVxWQUj3HcMv|42_4_@j#R}ER<0m`J>2Px8h965Z8Uo!zhVWg)!i7Z(@k@(R zI3Bvbt$>+aolof-oCnV<;*|q5WVLRzn0Zz7R`jrQA5u$)GQR}dL38hhmsE22gE%>o zl-Hg@8Uw>m0Ra5~3g%aXz)#uHqe|ZY5*&^C!$aNd- ziCr4Jx(sb!#tLN5r5;GpWV)ORq@Pqj!PgwWX2CVKqVwsv;@c|3icfj5omBVs9DQH@ zoF1@iX`lC>c6x=sP%ix8KMCeMrU4bC+42l%fK>-;?E1B~*JkFYf0!1&Y$bTlZvz}( z9Y1XqLce8jx=5~+o$9@FZT$73NP@k=vn8mcCwGF(s&Ah0_1JTTEsQVoJ zNmStg&7smYaiSK+8sbjpW%kkb))H$le(Lr=q6Z@~9&9D9**leVk8i877 z@)Tr((xYQ^(s7$8oxm@80iwXqEao!MDy!P@$BbT0J#C;Ir7WAm_sc6>Gwm!`V=S2j zy;;~!pX;9P)~;qV5<^FC7a9HZ!yiVbE=@Ed#$e*dU&7tNs%@ea_e4q#q={rS)$o^{ zAAxu{^Hbl{G^#S{M>SkttI-8r=SK!1X=AI_r{#p=xVRqfOfdf{(q5`_9i%fRGl@aj z1z~ftnnM>o{&f!1z;*ZB2w7VGr$PKcDKjDGGTvBKO29Ify96-A|I+g!pBWtxm@h#kRyRFli-*5$;dhn(&#gJv1q7Vum0={ zc(=O#SJ7^%@y%|5?K8c`ih&JB%du?^T1#j(>|fj(q7GFd{QCmmO%%-QR-N>|otj(9 z<%hR?ceA)>R%BnYOW-fL<;aa!YwS!wpwSr}cX^e(tRQ1+Z^zFkyBb9b4EOtAf$J*T z3;jAJR+5Eo7}hmgV2kTKl5nu5kQh70>hs;mNZDO+QueUez1-^^>;Wx-1f-%vk-Snkk09Ydu3<+gBsNa>$}< zcM5nx+68P^l)6@{+sbrN*z8|SRdabjV;t2o*^d0Ni|hb1@3J){0Mfj*b-wFy424|m z>;N&CI+t=rle7A)u7uHu8bV#ewq>vz-~Y6~b~gw1&|Q;T%asbA`3L&i{%_5Az zYPGsHjK8%_4h0Ah*sLB&`uA;G*|YLgVV4xEo> zoj*77&vn@BQ1ZCiYNPHO7~ph6`T0Bw8p;RMy>&Pi6bJtsN-7O!P_w+hX&=TQ%6t!g z-9>xf5s8XqNI`={NTrrq4;fCjbQ^f7 zqO%~CpdxasE@D43cq@eU9bEr9CA^n5!?a#GQTtvb(PYa`3P#i(y2v{qJt~i%7p6@C4N>JL_#9tvzLKRxqzqWLK5;U z`IErrAQse|<;E@0zuV?G)Ij6f0*=$IxQdWL`+4%S@j&biaw6=U)u0Wd| z$>y^n;YGRfjAENbER{I$c5f3vs}S&rpJ3$tGojn?-G#bEX4_eb_iWs|Oa`m~VzVa} zN?VTEt!16UB5(+sX62Q6Qc7UKWRj!H5DWg2EIB*TQE_3X_?|FpOm3KK)xXzz z$XQ~7f@a{A&k&VL1uhwR9Fi58W}JF_Jg(=Dg`ai2?_1JOr6l}os%zCOo#$hG6gUNX zjiF~)x}EmzJN%AmKhn2>%-+{N+X`f_W1v(PgD%Pa@c;c6_zsHL*yrgJ$g70!gaZEh z51`>sQLp0R+r}LdugN?{StYXBnhji91^|s(0Lv6Xv9vE|kcn=e7mcyAFS!ASGcrBB zc>z}h3cB5QXXh{wBXPIql-!gxi;(xImxa;EO0po8F$@{4@nDIti z=;O(@6=~`Jz9i@9SwZ1|>4h`oHE_d1troFhe<5)_4D95wE4)i+b5*SallOjJ6TERC zd`MRt8}kSkp{}!iQ>7WRbn4VU?7@R~+<3T-ZLo9T4J6dU3&Yzr%jSUNVveiXY%M*I zYoOq-!!bgerNNe;l4U3zxae_}ymhU5Y||u#-`pYU3U-EJ5WaPjUS_^$XX{zSb{+Ye zWN_lK0PD7 zx4SdCzgOs60u|!{-bQf5%iCVYdK{cY@U<@C$=(C5ug6Mle!#A`9^QS*Oa>>kL&WS& z*%Xh7hvjt-2@KKYOdaiGZ7sd#1vbP;>{7M<%CkT3dF5)E)~|zSwOA)=l&}3EZoqiZ zt;j6v`v6E0bhQ0$3rsb7MSB1;vCem|^PtT2S|+(E925BznT1BM`YsHToG3>O-gY{fx5J{(WC)e|(Z@nOAiE zwgpl!TjCW87MWQ1t?es0EaH2MqoCD)E09e9nV}c(<{@HVw`rtP0$K-mM?3s4Z8Sy* zB-lUC=mL_L{$2wM9f4R$*%**};iGCoHFUhU7BE&`s*K-eTSDFk15cyd+Pc^*7#%7Ts6bSQI& zxM(t%Xxt6wKW9djd(J)YjKWm8mDB#=1^={C^)wLfbRQmBCg-g~qwWHq{iDb;SMlaE zT3a@ACSArNhWOV{?mo?q!ZqiKYS7Vh{hK&L%L;9|OUugP%OX5=Ru1w96;-tf*^mgO z;s5e+zYDo*<<}+UYg*Ua-u@|A{9>zGv6soxI&ub|Klw06vZ%fsRrzinM1B9+U48E> z;T}YP-gV=Uo~}g0ag^c~c#US|D28O`!el2Wx}wY9B#R{7=g`uL8a@`E&SU$vjDht@ zjz({Ibzdfg@veVMT-++9HoliD#WvmkH>$mS5-G#?O|!BNesn{m@C{vd123=XOx`67 z{#T=}PYauIvKNd8|GwX&O|6Dv-)~J+acF0iR4Ij$_xS^KcRMQE(^%tYN~nM6&H#b@ z-4A!s4@{uR0KoQZ?slQJkymPm#Z-2NhU*8=t;6@W=#_+S2O|;~ULRg3VTXQk-aR1b zHJ=cy?&9(uZ?S)Ba$V+1NmFunSbH<5Rsz6AYttHk+(M3S}QYS5FT9}igm3iQNaR)a)+tRsMo z;~Kt6XY$eSgC#mZFT)Ar*wScN(XSvR(Zq%hRU%`+PFz$RmYQ1F6#u(z>prfl5xzp1 zC`b*yu=p*RS+mt2Q|0F|=8e|Rkw?`!b!>r!Zc=tZb6CResqe=L>{J`Z8|xZN$4tQ_ zk2YWFc8}fi##wE?u#%lhaJIk9h+SBt71r~3bzpT5>Ou=Wk4O{b`- zo~esI9`HifK_8kLP~UF1l&#~@Zv zb+rsFThW7|UyrEWRUS$jA^Q>W8cj%%v^@N;}y`l}{F)k@=e=qFC`^WQGYPNMTcP{7=6pb}6*;$_1?uL(jhgY3W78<_X9m*RLwIA@-_Sr$xCj9m)(tKPiv@6TXat~~wyKsAf z7LbQTKERW$C+V#?9tqBPFo}4s?KSOVqiQrU(#@gg4nj^4C-W+ru-9 zz_>cK+hkQFoD3GVnWxV^wVfBos!kmQS2SOLaC?Y#PuO8c?+@loXhTRjTrqY;i^?21 znrf%$LD_}&{NjTaun86SJh;C7^MjgbSNM$Egn+N8iX@NJu^Ak{3h9Of#tCkfDH3-E954+m1<|$d5cj$`WTwpGE<9^*w!DT&={I8#S&p9WT)6hVUZ3G% z*#exzf2z5O*GPObIykPDi97QUp|!94S2#KwT$t<>2haC)_U{$pm9fi=-_;*{bS<{m zVim*y{U?f>t1d<%IKbQ4Ig1GI8Ka2d^i+5wp^}skjmEYe7Q_f7V5}Qw8CENw=fH!l zLQ8xgMwaiy2JD1#Kr3jv=-pve^kHY<~F5NXk4W5#!gffc4=fv=`dw~xDyZ_!6@l-+*! zr9yD`QW=WklSppg3jEUedmU9{f6ie9yo$WjDfoZ1gZA6zBSO)b(dB0EfMlRo6++C5 zbVQSj4j$E1)N}P83sUIDbv;_>mdjma^&P&|25J1w5wt5jJ2UC2|82$Q ze}N^=-=OW5R>&Ug1EYhqNmALNCY!H9-z+t(kDof&iSmdy1*8ph5|DOZKG)bMlTgf8 zC8ae=lHp`ZrVc?BYRJ~NFGVzcy5GOW&{t#`Dh0>-X|v34{Epysd!%$jZlFP6^|GT9 z+xkVzdba0f!0(W-Cc}T9*&BaLwR}C&egDwg@O<2#M1AZ> z{^E6z`+8MetL>q=ed18y#0l{m{fm47{P+-;xGfdxYeX|)>}AY&vjt&h?39H^NhXdx zCsQmZRr1_Y8mF~o45up7Po*Xc%6=$n*#z`J*p4}r2OSxY&AQ61k2~RklRi}YIEZr=v*5lvg?yOR@5kI_OT7p(}9ax8_ZoS*q{?n zV#2B=BLieU>h<2EP?aRgRu}=p>Ils;ek@`{F=94>iX=o0lZDAnZg%6c== zoet$KHP+nkh-97N`Xg?v0-GAzYA%{Y z5?PZ;F=z^(8Z<}O$VA?C5v7*B;V!IeD(H~1_wp(9{8Mfb{kDaDW_ThVcyKZn-|i5( zuHR{pg4Wh1Eob`gNTSABXZxX?imH#@%2=Yfi`FIuS{ZY@BH{q2MBKYs9H8v^mztMW zb_jW^mvMpq*zzyu1oE47`F=?W7pDFJeSDawkZuT+%k&IIiHsmQ}})L zp4W|G_~v!4#B4CaCByaKIbhbNZD%62>Sn$7-tCX~DZB66dH^C6b)}Wt+Nll1biTfr zL*19ZT3FnzXTK~>iJl9GPu(PSO(BknWvzUCe29#qzYk^ZVd?_hs@u|u`nr8c_5Z9y zytXs)H=K;10zG|+W>oted=L@p2~*@Xsb&4B|LKym*1(xlGdt961w|jT_5nnPuuCYU znOOWM(R1k%-vZueKBdZ+r7(;@$Gxx1vHa!lWrnZN?<0<%dd$POGk{WcVdX!>CtBUW zQx$-;b!^DC^j@@<4Yi=#ZPyQq*E<@oynqLhPo%<%lA=G{!Swd?$Ma$U%$mw_*A{pn zW3&dVeQ!=dI}PQqmNI#wn;w9s7W&vlD*UwI1GEDIdcaUv?rVb%>!M}r>)xl*hgvWX zHlGb6MBbO$q$CMWgW5UAX=9z+=_9G~?-NHt*(Q*RIAz70VK6jXB`%aZX(t%*G^n&A zun#Yj!5NHSYU0f-bTLV@IR^eUYv)3%(=DH=HPEYIB1j`aomM4UjwL`FjN0yyckLY> zGO0_iKo_WFot3rN(iKH(c?t3la>=3K+HU`e_nMb1R07hhdz`wNd%h<=wh|zpFmSUd zs=+A&z9Qzzh6fA~q8uj?h%%UrhO!1{F$ zl6nbya|78_VF_Qv(6n6(^*oNqA7?1{b&~S74)OR1FV|a_ox{7?{_NtJ_3wS3&$2M% zwZ->r5oX#=mxFK14ugL$VK;QT(JW_jf&@vS{P8+STu0!f%G1hbzda4L)a|qY{>fv` zu%yYG-~waGK7SQK;|E1DN(Ig_B^n02j0R9jo-;5i2B{H&I(tFS$eXM%YfsdroS4@4 zBA|)7uyO-C8re#Vf_*85&}|8m zvyn^97Ys~;^X%+hCrNjVAgR*?L_98`y8Ms3^c?#_7c2;AvvkTn4YQTQNizQULhg1o zs;CRf#<;V_u$!tw=dXVE;P+Cxq-0j!Qn|-a4DLh0hpfAcFK#BO4h{e>OXip96v8jclhdIvTsg#ZH3x~Nr{T2C&nC?-eJ8)GB@>*ywu}G*t>kNl7Fm=exm_D ze?{8voVawLIUD+N+82d3i{L2;ex$L(}bnlU!bJGau3> zqznj+a6s*@BoNT8aq{BV8J&cA^FCky5xhW^%W6?d3d;=GPwC0&;t3HF<)4bWI!AoBugwBJhAnZwOB+X&CwBtJXRr#c$G(pW2JE77Jw3d8lMpf zAoV|wHw<|cXfrnb_?jc+r3-(6#;=s~K4#iIR((fIxW`=WLGGUq$+rz42tR(oXnh5h zmlP{OV%Izpfq>h;pC2l>&I`us0-jX-btI$BBgrMV6U!+Zt%t>s&%VzoGZHGqht7+g zhCpM+wiOrl1WV%ZJxG%K-Ro`R4lV8t@O7NC&wy*mie$&`55r$5M>`ew$Kv*la8YXQ=qGUvo@XX)aIa{!J58rZ zdN#j4QxuQGBWH{5C~*>HkW*ICWRj5*zqqp@6w$JL*{DbmBp-kb-LLwfY5q0?#;H~P zARZkQPPZLePY(3;|HCAmSQU(10>340_^{lrZ}BW#8>yvMrkNoJl_@~Qn<*>=^h~oK{0KWfbnzhp{}0wcDZlfM5Wn{*o$;ic#U+A^BD{poSEDK3 zQ@W%$jtH-_C&4?m3>ij;p4O;llynH;TyB$J`p63I_YVoK`!zHUEV9FXf3WQtaw2wc zmye>oi2Txg3w25Z%9hBZhg3tqj%Mq~fT7hIN4-u-*WcDmh>SI65ne`ZR-Lje8Tm@% zf;)cGQISN7CjAnM?3WQv2Ty>t(YaY$TZ4Dse;0N>hvtsYBeb5 z3*Z%saQns$B%ml|rXV!BW~w!8Bg6ezQNIgE=c-UZ?=?xSR&kW0zN@XaabDzVy7Z#SGRI9?j|N6J!LnPmh9Xkp+a-j1?ye1@!?}@ak0TN-Y zZUY8fUPzDHg0Jga+rnwDR`#|ii3`s>{ZuGqZ-b)4{_+pCxS}xjF4!OW{P0BHJ_u0c7fo*DwTawbuLljZdrRdKjtw2C3#~?pF7E4e zyKwC25qOd!SXA z^V~vG42?RYEUnhIyeNsUEb410>_JtgIi{5l-i$t?9XMiXbP(Cn_IC3?I6x$kCc)kj zW~mMYj8<}F7WrkSH4{x1C1*T0TVP(`fV)a`Vjiw=&uW*!%`6Sk!* z(jV^Ly$iE5Ge`*SLa|tcndv!b*SBF78L%@;)9~z>llZ$9#IMds!^;Cvu2d{RG0%i> zy@#ZpN3VE}TrrQ1Di?ocB*UIMdj`Jp#U6b9kKcgn*KWYcQ>UQM^CAL_2*GZzFPzjK zl5btKqC0qvRQhzc+k@}D_8JlhpNC07>VQ2Z(j8AAu|W}G^rwii48!3foPPUv{y;=e z{nB6ksz_ZVJuN|4EzF5jz~A`SUxW3HO|d#7l_5}c7oig9bSfRMo3~d5QKbkpN*PoS zsan-hM3&*Uq{ysa|JPE`{%`*EUku5vr!Jlo+b&=E$Vq@v-M{poOg7^1uz&~=BBOe} z0qE(E;=L99!x{}>G)aJ@cZ`T~*ld2_{4y&FOz42IsBW=GA0DFOhGu2jM2pz24?qb- z7`4$C=hxEP;mKGPl2+7iG@IC$Ps!_m1PCoqLSz?_VMmsipinFbd+z@IHPP4BkszB6 zqW&^GTF@m&MC!3N!8Z(SMEjfwE{gJ^RT_!#qDZf_vTF^T3@wfRtc`DnnGgOr$I32e z_yNOgyKyGOUG?mlxXWK9aAQ7g>FG`Js5_;)KlBseT z+=vEMMR@tKh_29vwFsp{!gs}>YaE2zf>$F9{D7fm)?MjyuJ;cL;W@<*%i!2Fz|BBf zCvcZUTHI2Q);M34QD1tAaejRLJGu-3vFewn9JQo+nR`nLNhRy_grPXf@9heQw@ENJ zI0a(ZaJ|co4f!-e&Iht6O2N{M88fEcY>_U z!3)nm4I5iK@ZPPPaP-&-@Cs#lUGQ8z-bbgbE1hSm7hjvrI<(tealPJt_nnCnU<4Aj zf94NNkDA< z#Xvht5?`dd^$-5xKQVN?h(Nn2R&;z$5MFxJ7>UPU`juZ3=W~hit5qB6ygJcED=xnE z<9A^`NTYnxK-aL}Z-BnSBmE6(RbV^2QBO*J8a}U_t`lSNJ~U*j!6KMPcnsv~-jeX5zhN>MHY$bjp0)8! zBDQB6Sw+B(lbztMCw+ffJ>wpm;cz1(z%nEvsiRUP%S0W*fcT=+Mo#IFtCIYpbV!O2 z%a9CR95XUrQ#xy=(H@CE;o<4w(`H;A%z(sdb

user avatar

, + '../../../hooks/useUserCard': { + useUserCard: () => ({ + open: () => '', + }), + }, + '../../../views/room/MessageList/contexts/MessageHighlightContext': { + useIsMessageHighlight: () => false, + }, + '../../../views/room/MessageList/contexts/SelectedMessagesContext': { + useIsSelecting: () => '', + useToggleSelect: () => '', + useIsSelectedMessage: () => '', + useCountSelected: () => '', + }, + '../IgnoredContent': () =>

message ignored

, + './room/RoomMessageContent': () => baseMessage.msg, + '../MessageHeader': () =>

message header

, + '../StatusIndicators': { MessageIndicators: () =>

message indicators

}, + '../ToolboxHolder': () =>

toolbox

, +}).default as typeof _RoomMessage; + +describe('Message', () => { + it('should show normal message', () => { + render(); + + expect(screen.getByText(baseMessage.msg)).to.exist; + }); + + it('should show ignored message', () => { + render(); + + expect(screen.getByText('message ignored')).to.exist; + }); + + it('should show ignored message', () => { + render( + , + ); + + expect(screen.getByText('message ignored')).to.exist; + }); +}); From e8d0ec5612365b2de932322066fd09fbe5d9a25f Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Wed, 8 Feb 2023 21:25:52 -0300 Subject: [PATCH 03/19] Chore: Added Enterprise Options to Login customization (#27855) Co-authored-by: Douglas Fabris <27704687+dougfabris@users.noreply.github.com> --- .../meteor/app/lib/server/startup/settings.ts | 44 +++++++++++++++++-- .../rocketchat-i18n/i18n/en.i18n.json | 10 +++++ .../src/RegisterSecretPageRouter.tsx | 17 +++---- .../src/RegisterTemplate.tsx | 16 +++++++ .../src/RegistrationPageRouter.tsx | 10 ++--- .../src/SecretRegisterInvalidForm.tsx | 6 ++- .../src/components/LoginPoweredBy.tsx | 26 +++++++---- .../src/components/RegisterTitle.tsx | 9 +++- .../src/template/HorizontalTemplate.tsx | 4 +- .../src/template/VerticalTemplate.tsx | 10 ++--- 10 files changed, 118 insertions(+), 34 deletions(-) create mode 100644 packages/web-ui-registration/src/RegisterTemplate.tsx diff --git a/apps/meteor/app/lib/server/startup/settings.ts b/apps/meteor/app/lib/server/startup/settings.ts index 4e45541acdce..c914d2805199 100644 --- a/apps/meteor/app/lib/server/startup/settings.ts +++ b/apps/meteor/app/lib/server/startup/settings.ts @@ -82,10 +82,6 @@ settingsRegistry.addGroup('Accounts', function () { type: 'int', public: true, }); - this.add('Accounts_ShowFormLogin', true, { - type: 'boolean', - public: true, - }); this.add('Accounts_EmailOrUsernamePlaceholder', '', { type: 'string', public: true, @@ -1573,6 +1569,46 @@ settingsRegistry.addGroup('Push', function () { }); settingsRegistry.addGroup('Layout', function () { + this.section('Login', function () { + this.add('Layout_Login_Hide_Logo', false, { + type: 'boolean', + public: true, + enterprise: true, + invalidValue: false, + }); + this.add('Layout_Login_Hide_Title', false, { + type: 'boolean', + public: true, + enterprise: true, + invalidValue: false, + }); + this.add('Layout_Login_Hide_Powered_By', false, { + type: 'boolean', + public: true, + enterprise: true, + invalidValue: false, + }); + this.add('Layout_Login_Template', 'horizontal-template', { + type: 'select', + values: [ + { + key: 'vertical-template', + i18nLabel: 'Layout_Login_Template_Vertical', + }, + { + key: 'horizontal-template', + i18nLabel: 'Layout_Login_Template_Horizontal', + }, + ], + public: true, + enterprise: true, + invalidValue: 'horizontal-template', + }); + this.add('Accounts_ShowFormLogin', true, { + type: 'boolean', + public: true, + }); + }); this.section('Content', function () { this.add('Layout_Home_Title', 'Home', { type: 'string', diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index 277f01212f17..bf23f8c9c317 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -2713,6 +2713,16 @@ "Last_Updated": "Last Updated", "Launched_successfully": "Launched successfully", "Layout": "Layout", + "Layout_Login_Hide_Logo": "Hide Logo", + "Layout_Login_Hide_Logo_Description": "Hide the logo on the login page.", + "Layout_Login_Hide_Title": "Hide Title", + "Layout_Login_Hide_Title_Description": "Hide the title on the login page.", + "Layout_Login_Hide_Powered_By": "Hide \"Powered by\"", + "Layout_Login_Hide_Powered_By_Description": "Hide the \"Powered by\" on the login page.", + "Layout_Login_Template": "Login Template", + "Layout_Login_Template_Description": "Customize the look of the login page.", + "Layout_Login_Template_Vertical": "Vertical", + "Layout_Login_Template_Horizontal": "Horizontal", "Layout_Description": "Customize the look of your workspace.", "Layout_Home_Body": "Home Body", "Layout_Home_Title": "Home Title", diff --git a/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx b/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx index 1830b34fc421..1235ad6a326e 100644 --- a/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx +++ b/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx @@ -4,10 +4,10 @@ import type { ReactElement } from 'react'; import type { DispatchLoginRouter } from './hooks/useLoginRouter'; import LoginRegisterForm from './RegisterForm'; import RegisterFormDisabled from './RegisterFormDisabled'; +import RegisterTemplate from './RegisterTemplate'; import SecretRegisterForm from './SecretRegisterForm'; import SecretRegisterInvalidForm from './SecretRegisterInvalidForm'; import FormSkeleton from './template/FormSkeleton'; -import HorizontalTemplate from './template/HorizontalTemplate'; export const RegisterSecretPageRouter = ({ setLoginRoute, @@ -16,7 +16,8 @@ export const RegisterSecretPageRouter = ({ setLoginRoute: DispatchLoginRouter; origin: 'register' | 'secret-register'; }): ReactElement => { - const registrationMode = useSetting('Accounts_RegistrationForm'); + const registrationMode = useSetting('Accounts_RegistrationForm'); + const isPublicRegistration = registrationMode === 'Public'; const isRegistrationAllowedForSecret = registrationMode === 'Secret URL'; const isRegistrationDisabled = registrationMode === 'Disabled' || (origin === 'register' && isRegistrationAllowedForSecret); @@ -27,17 +28,17 @@ export const RegisterSecretPageRouter = ({ if (isPublicRegistration) { return ( - + - + ); } if (isRegistrationDisabled) { return ( - + - + ); } @@ -46,9 +47,9 @@ export const RegisterSecretPageRouter = ({ } return ( - + - + ); }; diff --git a/packages/web-ui-registration/src/RegisterTemplate.tsx b/packages/web-ui-registration/src/RegisterTemplate.tsx new file mode 100644 index 000000000000..9afaac8816d5 --- /dev/null +++ b/packages/web-ui-registration/src/RegisterTemplate.tsx @@ -0,0 +1,16 @@ +import { useSetting } from '@rocket.chat/ui-contexts'; +import type { ReactElement } from 'react'; + +import HorizontalTemplate from './template/HorizontalTemplate'; +import VerticalTemplate from './template/VerticalTemplate'; + +const RegisterTemplate = ({ children }: { children: ReactElement }): ReactElement => { + const template = useSetting<'vertical-template' | 'horizontal-template'>('Layout_Login_Template'); + + if (template === 'vertical-template') { + return {children}; + } + return {children}; +}; + +export default RegisterTemplate; diff --git a/packages/web-ui-registration/src/RegistrationPageRouter.tsx b/packages/web-ui-registration/src/RegistrationPageRouter.tsx index c93a74e319f0..6ccfb5e0f602 100644 --- a/packages/web-ui-registration/src/RegistrationPageRouter.tsx +++ b/packages/web-ui-registration/src/RegistrationPageRouter.tsx @@ -3,8 +3,8 @@ import type { ReactElement } from 'react'; import { LoginForm } from './LoginForm'; import ResetPasswordForm from './ResetPasswordForm'; import { useLoginRouter } from './hooks/useLoginRouter'; -import HorizontalTemplate from './template/HorizontalTemplate'; import RegisterSecretPageRouter from './RegisterSecretPageRouter'; +import RegisterTemplate from './RegisterTemplate'; export const RegistrationPageRouter = ({ defaultRoute = 'login', @@ -15,17 +15,17 @@ export const RegistrationPageRouter = ({ if (route === 'login') { return ( - + - + ); } if (route === 'reset-password') { return ( - + - + ); } diff --git a/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx b/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx index 170e1b0667f1..60cfef030dc3 100644 --- a/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx +++ b/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx @@ -6,7 +6,11 @@ import VerticalTemplate from './template/VerticalTemplate'; const SecretRegisterInvalidForm = (): ReactElement => { const t = useTranslation(); - return {t('Invalid_secret_URL_message')}; + return ( + +

{t('Invalid_secret_URL_message')}

+
+ ); }; export default SecretRegisterInvalidForm; diff --git a/packages/web-ui-registration/src/components/LoginPoweredBy.tsx b/packages/web-ui-registration/src/components/LoginPoweredBy.tsx index 1c58dc7d192d..b8d25669cbd9 100644 --- a/packages/web-ui-registration/src/components/LoginPoweredBy.tsx +++ b/packages/web-ui-registration/src/components/LoginPoweredBy.tsx @@ -1,14 +1,24 @@ import { Link } from '@rocket.chat/layout'; +import { Box } from '@rocket.chat/fuselage'; import { Trans } from 'react-i18next'; import type { ReactElement } from 'react'; +import { useSetting } from '@rocket.chat/ui-contexts'; -export const LoginPoweredBy = (): ReactElement => ( - - Powered by - - Rocket.Chat - - -); +export const LoginPoweredBy = (): ReactElement | null => { + const hidePoweredBy = useSetting('Layout_Login_Hide_Powered_By'); + if (hidePoweredBy) { + return null; + } + return ( + + + {'Powered by '} + + Rocket.Chat + + + + ); +}; export default LoginPoweredBy; diff --git a/packages/web-ui-registration/src/components/RegisterTitle.tsx b/packages/web-ui-registration/src/components/RegisterTitle.tsx index 8684947a20ba..e00e010fd674 100644 --- a/packages/web-ui-registration/src/components/RegisterTitle.tsx +++ b/packages/web-ui-registration/src/components/RegisterTitle.tsx @@ -2,7 +2,12 @@ import { useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { Trans } from 'react-i18next'; -export const RegisterTitle = (): ReactElement => { - const siteName = String(useSetting('Site_Name')); +export const RegisterTitle = (): ReactElement | null => { + const siteName = useSetting('Site_Name'); + const hideTitle = useSetting('Layout_Login_Hide_Title'); + + if (hideTitle) { + return null; + } return Welcome to {siteName} workspace; }; diff --git a/packages/web-ui-registration/src/template/HorizontalTemplate.tsx b/packages/web-ui-registration/src/template/HorizontalTemplate.tsx index ecee2d3d8914..dc84fbe3ad43 100644 --- a/packages/web-ui-registration/src/template/HorizontalTemplate.tsx +++ b/packages/web-ui-registration/src/template/HorizontalTemplate.tsx @@ -8,6 +8,7 @@ import { } from '@rocket.chat/layout'; import type { ReactElement, ReactNode } from 'react'; import { Box } from '@rocket.chat/fuselage'; +import { useSetting } from '@rocket.chat/ui-contexts'; import LoginSwitchLanguageFooter from '../components/LoginSwitchLanguageFooter'; import LoginPoweredBy from '../components/LoginPoweredBy'; @@ -16,13 +17,14 @@ import { RegisterTitle } from '../components/RegisterTitle'; import { useAssetPath } from '../hooks/useAssetPath'; const HorizontalTemplate = ({ children }: { children: ReactNode }): ReactElement => { + const hideLogo = useSetting('Layout_Login_Hide_Logo'); const customLogo = useAssetPath('Assets_logo'); const customBackground = useAssetPath('Assets_background'); return ( : undefined} + logo={!hideLogo && customLogo ? : <>} > diff --git a/packages/web-ui-registration/src/template/VerticalTemplate.tsx b/packages/web-ui-registration/src/template/VerticalTemplate.tsx index d2057d3ab0cd..a909a8bbff16 100644 --- a/packages/web-ui-registration/src/template/VerticalTemplate.tsx +++ b/packages/web-ui-registration/src/template/VerticalTemplate.tsx @@ -1,6 +1,7 @@ import { VerticalWizardLayout, VerticalWizardLayoutTitle, VerticalWizardLayoutFooter } from '@rocket.chat/layout'; import type { ReactElement, ReactNode } from 'react'; import { Box } from '@rocket.chat/fuselage'; +import { useSetting } from '@rocket.chat/ui-contexts'; import LoginSwitchLanguageFooter from '../components/LoginSwitchLanguageFooter'; import LoginPoweredBy from '../components/LoginPoweredBy'; @@ -9,21 +10,20 @@ import { RegisterTitle } from '../components/RegisterTitle'; import { useAssetPath } from '../hooks/useAssetPath'; const VerticalTemplate = ({ children }: { children: ReactNode }): ReactElement => { + const hideLogo = useSetting('Layout_Login_Hide_Logo'); const customLogo = useAssetPath('Assets_logo'); const customBackground = useAssetPath('Assets_background'); return ( : undefined} + logo={!hideLogo && customLogo ? : <>} > - - - {children} - + + {children} From d475a600758ad3b33ae4712b7ec5d12c12fa9f8b Mon Sep 17 00:00:00 2001 From: Douglas Fabris Date: Thu, 9 Feb 2023 11:42:41 -0300 Subject: [PATCH 04/19] Chore: Refactor Composer Dropdown (#27931) Co-authored-by: Guilherme Gazzo --- .../client/discussionFromMessageBox.js | 39 -------- apps/meteor/app/discussion/client/index.js | 1 - .../client/actionButtons/messageBox.ts | 6 +- .../client/messageBox/createComposerAPI.ts | 1 - .../client/messageBox/messageBox.ts | 2 - .../client/messageBox/messageBoxActions.ts | 92 ------------------- apps/meteor/app/webdav/client/index.js | 1 - .../client/startup/messageBoxActions.js | 55 ----------- .../CreateDiscussion/CreateDiscussion.tsx | 2 +- .../AudioMessageRecorder.tsx | 4 +- .../body/composer/messageBox/MessageBox.tsx | 57 +++--------- .../messageBox/MessageBoxDropdown.tsx | 72 +++++++++++++++ .../actions/CreateDiscussionAction.tsx | 30 ++++++ .../messageBox/actions/FileUploadAction.tsx | 55 +++++++++++ .../actions/ShareLocationAction.tsx | 33 +++++++ .../messageBox/actions/VideoMessageAction.tsx | 52 +++++++++++ .../messageBox/actions/WebdavAction.tsx | 56 +++++++++++ .../rocketchat-i18n/i18n/en.i18n.json | 2 + .../page-objects/fragments/home-content.ts | 2 +- apps/meteor/tests/e2e/permissions.spec.ts | 12 +-- 20 files changed, 322 insertions(+), 252 deletions(-) delete mode 100644 apps/meteor/app/discussion/client/discussionFromMessageBox.js delete mode 100644 apps/meteor/app/ui-message/client/messageBox/messageBoxActions.ts delete mode 100644 apps/meteor/app/webdav/client/startup/messageBoxActions.js create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/MessageBoxDropdown.tsx create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/actions/CreateDiscussionAction.tsx create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/actions/FileUploadAction.tsx create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/actions/ShareLocationAction.tsx create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/actions/VideoMessageAction.tsx create mode 100644 apps/meteor/client/views/room/components/body/composer/messageBox/actions/WebdavAction.tsx diff --git a/apps/meteor/app/discussion/client/discussionFromMessageBox.js b/apps/meteor/app/discussion/client/discussionFromMessageBox.js deleted file mode 100644 index 56cf96c056f4..000000000000 --- a/apps/meteor/app/discussion/client/discussionFromMessageBox.js +++ /dev/null @@ -1,39 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { Tracker } from 'meteor/tracker'; -import { Session } from 'meteor/session'; -import { isRoomFederated } from '@rocket.chat/core-typings'; - -import { messageBox } from '../../ui-utils/client'; -import { settings } from '../../settings/client'; -import { hasPermission } from '../../authorization/client'; -import { imperativeModal } from '../../../client/lib/imperativeModal'; -import CreateDiscussion from '../../../client/components/CreateDiscussion/CreateDiscussion'; -import { Rooms } from '../../models/client'; - -Meteor.startup(function () { - Tracker.autorun(() => { - if (!settings.get('Discussion_enabled')) { - return messageBox.actions.remove('Create_new', /start-discussion/); - } - messageBox.actions.add('Create_new', 'Discussion', { - id: 'start-discussion', - icon: 'discussion', - condition: () => { - const room = Rooms.findOne(Session.get('openedRoom')); - if (!room) { - return false; - } - return (hasPermission('start-discussion') || hasPermission('start-discussion-other-user')) && !isRoomFederated(room); - }, - action(data) { - imperativeModal.open({ - component: CreateDiscussion, - props: { - defaultParentRoom: data.prid || data.rid, - onClose: imperativeModal.close, - }, - }); - }, - }); - }); -}); diff --git a/apps/meteor/app/discussion/client/index.js b/apps/meteor/app/discussion/client/index.js index 25f06f1a7bb4..f45e6458ae7a 100644 --- a/apps/meteor/app/discussion/client/index.js +++ b/apps/meteor/app/discussion/client/index.js @@ -1,5 +1,4 @@ // Other UI extensions import './lib/messageTypes/discussionMessage'; import './createDiscussionMessageAction'; -import './discussionFromMessageBox'; import './tabBar'; diff --git a/apps/meteor/app/ui-message/client/actionButtons/messageBox.ts b/apps/meteor/app/ui-message/client/actionButtons/messageBox.ts index eb47ecfcdf9b..2ad405bcf9c5 100644 --- a/apps/meteor/app/ui-message/client/actionButtons/messageBox.ts +++ b/apps/meteor/app/ui-message/client/actionButtons/messageBox.ts @@ -11,11 +11,9 @@ import { Utilities } from '../../../apps/lib/misc/Utilities'; const getIdForActionButton = ({ appId, actionId }: IUIActionButton): string => `${appId}/${actionId}`; -const APP_GROUP = 'Create_new'; - export const onAdded = (button: IUIActionButton): void => // eslint-disable-next-line no-void - void messageBox.actions.add(APP_GROUP, t(Utilities.getI18nKeyForApp(button.labelI18n, button.appId)) as TranslationKey, { + void messageBox.actions.add('Apps', t(Utilities.getI18nKeyForApp(button.labelI18n, button.appId)) as TranslationKey, { id: getIdForActionButton(button), // icon: button.icon || '', condition() { @@ -33,4 +31,4 @@ export const onAdded = (button: IUIActionButton): void => export const onRemoved = (button: IUIActionButton): void => // eslint-disable-next-line no-void - void messageBox.actions.remove(APP_GROUP, new RegExp(getIdForActionButton(button))); + void messageBox.actions.remove('Apps', new RegExp(getIdForActionButton(button))); diff --git a/apps/meteor/app/ui-message/client/messageBox/createComposerAPI.ts b/apps/meteor/app/ui-message/client/messageBox/createComposerAPI.ts index e1e0298f353f..33d93f40a661 100644 --- a/apps/meteor/app/ui-message/client/messageBox/createComposerAPI.ts +++ b/apps/meteor/app/ui-message/client/messageBox/createComposerAPI.ts @@ -5,7 +5,6 @@ import $ from 'jquery'; import { withDebouncing } from '../../../../lib/utils/highOrderFunctions'; import type { ComposerAPI } from '../../../../client/lib/chats/ChatAPI'; -import './messageBoxActions'; import type { FormattingButton } from './messageBoxFormatting'; import { formattingButtons } from './messageBoxFormatting'; diff --git a/apps/meteor/app/ui-message/client/messageBox/messageBox.ts b/apps/meteor/app/ui-message/client/messageBox/messageBox.ts index 6b22ca91a94d..703e83e3a67b 100644 --- a/apps/meteor/app/ui-message/client/messageBox/messageBox.ts +++ b/apps/meteor/app/ui-message/client/messageBox/messageBox.ts @@ -1,5 +1,3 @@ -import './messageBoxActions'; - const lastFocusedInput: HTMLTextAreaElement | undefined = undefined; export const refocusComposer = () => { diff --git a/apps/meteor/app/ui-message/client/messageBox/messageBoxActions.ts b/apps/meteor/app/ui-message/client/messageBox/messageBoxActions.ts deleted file mode 100644 index d9402f550239..000000000000 --- a/apps/meteor/app/ui-message/client/messageBox/messageBoxActions.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Tracker } from 'meteor/tracker'; -import { isRoomFederated } from '@rocket.chat/core-typings'; - -import { messageBox } from '../../../ui-utils/client'; -import { settings } from '../../../settings/client'; -import { imperativeModal } from '../../../../client/lib/imperativeModal'; -import ShareLocationModal from '../../../../client/views/room/ShareLocation/ShareLocationModal'; -import { Rooms } from '../../../models/client'; - -messageBox.actions.add('Create_new', 'Video_message', { - id: 'video-message', - icon: 'video', - condition: () => - navigator.mediaDevices && - window.MediaRecorder && - settings.get('FileUpload_Enabled') && - settings.get('Message_VideoRecorderEnabled') && - (!settings.get('FileUpload_MediaTypeBlackList') || !settings.get('FileUpload_MediaTypeBlackList').match(/video\/webm|video\/\*/i)) && - (!settings.get('FileUpload_MediaTypeWhiteList') || settings.get('FileUpload_MediaTypeWhiteList').match(/video\/webm|video\/\*/i)) && - window.MediaRecorder.isTypeSupported('video/webm; codecs=vp8,opus'), - action: ({ chat }) => { - if (!chat?.composer?.recordingVideo.get()) { - chat?.composer?.setRecordingVideo(true); - } - }, -}); - -messageBox.actions.add('Add_files_from', 'Computer', { - id: 'file-upload', - icon: 'computer', - condition: () => settings.get('FileUpload_Enabled'), - action({ event, chat }) { - event.preventDefault(); - const $input = $(document.createElement('input')); - $input.css('display', 'none'); - $input.attr({ - id: 'fileupload-input', - type: 'file', - multiple: 'multiple', - }); - - $(document.body).append($input); - - $input.one('change', async function (e) { - const { mime } = await import('../../../utils/lib/mimeTypes'); - const filesToUpload = Array.from(e.target.files ?? []).map((file) => { - Object.defineProperty(file, 'type', { - value: mime.lookup(file.name), - }); - return file; - }); - - chat?.flows.uploadFiles(filesToUpload); - $input.remove(); - }); - - $input.click(); - - // Simple hack for iOS aka codegueira - if (navigator.userAgent.match(/(iPad|iPhone|iPod)/g)) { - $input.click(); - } - }, -}); - -const canGetGeolocation = new ReactiveVar(false); - -messageBox.actions.add('Share', 'My_location', { - id: 'share-location', - icon: 'map-pin', - condition: () => { - const room = Rooms.findOne(Session.get('openedRoom')); - if (!room) { - return false; - } - return canGetGeolocation.get() && !isRoomFederated(room); - }, - async action({ rid, tmid }) { - imperativeModal.open({ component: ShareLocationModal, props: { rid, tmid, onClose: imperativeModal.close } }); - }, -}); - -Meteor.startup(() => { - Tracker.autorun(() => { - const isMapViewEnabled = settings.get('MapView_Enabled') === true; - const isGeolocationCurrentPositionSupported = Boolean(navigator.geolocation?.getCurrentPosition); - const googleMapsApiKey = settings.get('MapView_GMapsAPIKey'); - canGetGeolocation.set(isMapViewEnabled && isGeolocationCurrentPositionSupported && googleMapsApiKey && googleMapsApiKey.length); - }); -}); diff --git a/apps/meteor/app/webdav/client/index.js b/apps/meteor/app/webdav/client/index.js index 8aa0226584fd..5d110d20ce25 100644 --- a/apps/meteor/app/webdav/client/index.js +++ b/apps/meteor/app/webdav/client/index.js @@ -9,7 +9,6 @@ Meteor.startup(() => { return; } c.stop(); - import('./startup/messageBoxActions'); import('./startup/sync'); import('./actionButton'); }); diff --git a/apps/meteor/app/webdav/client/startup/messageBoxActions.js b/apps/meteor/app/webdav/client/startup/messageBoxActions.js deleted file mode 100644 index e17c1d340a99..000000000000 --- a/apps/meteor/app/webdav/client/startup/messageBoxActions.js +++ /dev/null @@ -1,55 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { Tracker } from 'meteor/tracker'; - -import { settings } from '../../../settings/client'; -import { messageBox } from '../../../ui-utils/client'; -import { WebdavAccounts } from '../../../models/client'; -import { imperativeModal } from '../../../../client/lib/imperativeModal'; -import { getWebdavServerName } from '../../../../client/lib/getWebdavServerName'; -import AddWebdavAccountModal from '../../../../client/views/room/webdav/AddWebdavAccountModal'; -import WebdavFilePickerModal from '../../../../client/views/room/webdav/WebdavFilePickerModal'; - -messageBox.actions.add('WebDAV', 'Add Server', { - id: 'add-webdav', - icon: 'plus', - condition: () => settings.get('Webdav_Integration_Enabled'), - action() { - imperativeModal.open({ - component: AddWebdavAccountModal, - props: { onClose: imperativeModal.close, onConfirm: imperativeModal.close }, - }); - }, -}); - -Meteor.startup(function () { - Tracker.autorun(() => { - const accounts = WebdavAccounts.find(); - - if (accounts.count() === 0) { - return messageBox.actions.remove('WebDAV', /webdav-upload-/gi); - } - - accounts.forEach((account) => { - const name = getWebdavServerName({ name: account.name, serverURL: account.serverURL, username: account.username }); - - messageBox.actions.add('WebDAV', name, { - id: `webdav-upload-${account._id.toLowerCase()}`, - icon: 'cloud-plus', - condition: () => settings.get('Webdav_Integration_Enabled'), - action({ chat }) { - imperativeModal.open({ - component: WebdavFilePickerModal, - props: { - onUpload: async (file, description) => - chat.uploads.send(file, { - description, - }), - onClose: imperativeModal.close, - account, - }, - }); - }, - }); - }); - }); -}); diff --git a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx index 26616fe6fd36..dd15e72da73a 100644 --- a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx +++ b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx @@ -21,7 +21,7 @@ type CreateDiscussionFormValues = { }; type CreateDiscussionProps = { - parentMessageId: IMessage['_id']; + parentMessageId?: IMessage['_id']; onClose: () => void; defaultParentRoom?: IRoom['_id']; nameSuggestion?: string; diff --git a/apps/meteor/client/views/composer/AudioMessageRecorder/AudioMessageRecorder.tsx b/apps/meteor/client/views/composer/AudioMessageRecorder/AudioMessageRecorder.tsx index 4727d32634b6..b508464b2a6d 100644 --- a/apps/meteor/client/views/composer/AudioMessageRecorder/AudioMessageRecorder.tsx +++ b/apps/meteor/client/views/composer/AudioMessageRecorder/AudioMessageRecorder.tsx @@ -15,10 +15,11 @@ const audioRecorder = new AudioRecorder(); type AudioMessageRecorderProps = { rid: IRoom['_id']; tmid?: IMessage['_id']; + isRecording?: boolean; chatContext?: ChatAPI; // TODO: remove this when the composer is migrated to React } & Omit, 'is'>; -const AudioMessageRecorder = ({ rid, chatContext, ...props }: AudioMessageRecorderProps): ReactElement | null => { +const AudioMessageRecorder = ({ rid, chatContext, isRecording, ...props }: AudioMessageRecorderProps): ReactElement | null => { const t = useTranslation(); const [state, setState] = useState<'idle' | 'loading' | 'recording'>('idle'); @@ -167,6 +168,7 @@ const AudioMessageRecorder = ({ rid, chatContext, ...props }: AudioMessageRecord if (state === 'idle') { return ( ): boolean => { const target = event.target as HTMLInputElement; @@ -108,7 +110,6 @@ const MessageBox = ({ onUploadFiles, onEscape, onTyping, - subscription, readOnly, tshow, }: MessageBoxProps): ReactElement => { @@ -255,7 +256,7 @@ const MessageBox = ({ subscribe: chat.composer?.editing.subscribe ?? emptySubscribe, }); - const isRecording = useSubscription({ + const isRecordingAudio = useSubscription({ getCurrentValue: chat.composer?.recording.get ?? getEmptyFalse, subscribe: chat.composer?.recording.subscribe ?? emptySubscribe, }); @@ -320,6 +321,10 @@ const MessageBox = ({ } }); + const isRecording = isRecordingAudio || isRecordingVideo; + + console.log(isRecordingVideo); + return ( <> {chat?.composer?.quotedMessages && } @@ -358,48 +363,10 @@ const MessageBox = ({ /> )} - - { - const groups = messageBox.actions.get(); - const config = { - popoverClass: 'message-box', - columns: [ - { - groups: Object.entries(groups).map(([name, group]) => { - const items = group.map((item) => ({ - icon: item.icon, - name: t(item.label), - type: 'messagebox-action', - id: item.id, - action: item.action, - })); - return { - title: t.has(name) && t(name), - items, - }; - }), - }, - ], - offsetVertical: 10, - direction: 'top-inverted', - currentTarget: event.currentTarget, - data: { - rid, - tmid, - prid: subscription?.prid, - messageBox: textareaRef.current, - chat, - }, - activeElement: event.currentTarget, - }; - - popover.open(config); - }} - icon='plus' - data-qa-id='menu-more-actions' - /> + + + + {!canSend && ( diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/MessageBoxDropdown.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/MessageBoxDropdown.tsx new file mode 100644 index 000000000000..ea8f50b97961 --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/MessageBoxDropdown.tsx @@ -0,0 +1,72 @@ +import type { IRoom } from '@rocket.chat/core-typings'; +import { Dropdown, IconButton, Option, OptionTitle, OptionIcon, OptionContent } from '@rocket.chat/fuselage'; +import { useTranslation, useUserRoom } from '@rocket.chat/ui-contexts'; +import type { ComponentProps } from 'react'; +import React, { useRef, Fragment } from 'react'; + +import { messageBox } from '../../../../../../../app/ui-utils/client'; +import type { ChatAPI } from '../../../../../../lib/chats/ChatAPI'; +import { useDropdownVisibility } from '../../../../../../sidebar/header/hooks/useDropdownVisibility'; +import CreateDiscussionAction from './actions/CreateDiscussionAction'; +import ShareLocationAction from './actions/ShareLocationAction'; +import WebdavAction from './actions/WebdavAction'; + +type MessageBoxDropdownProps = { + chatContext?: ChatAPI; + rid: IRoom['_id']; + isRecording?: boolean; + tmid?: string; +}; + +const MessageBoxDropdown = ({ chatContext, isRecording, rid, tmid }: MessageBoxDropdownProps) => { + const t = useTranslation(); + const reference = useRef(null); + const target = useRef(null); + + const room = useUserRoom(rid); + + const { isVisible, toggle } = useDropdownVisibility({ reference, target }); + + const groups = messageBox.actions.get(); + const messageBoxActions = Object.entries(groups).map(([name, group]) => { + const items = group.map((item) => ({ + icon: item.icon, + name: t(item.label), + type: 'messagebox-action', + id: item.id, + action: item.action, + })); + + return { + title: t.has(name) && t(name), + items, + }; + }); + + return ( + <> + toggle()} /> + {isVisible && ( + + {t('Create_new')} + {room && } + + {room && } + {messageBoxActions?.map((actionGroup, index) => ( + + {actionGroup.title} + {actionGroup.items.map((item) => ( + + ))} + + ))} + + )} + + ); +}; + +export default MessageBoxDropdown; diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/actions/CreateDiscussionAction.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/CreateDiscussionAction.tsx new file mode 100644 index 000000000000..714047f0eddb --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/CreateDiscussionAction.tsx @@ -0,0 +1,30 @@ +import type { IRoom } from '@rocket.chat/core-typings'; +import { isRoomFederated } from '@rocket.chat/core-typings'; +import { Option, OptionIcon, OptionContent } from '@rocket.chat/fuselage'; +import { useTranslation, useSetting, usePermission, useSetModal } from '@rocket.chat/ui-contexts'; +import React from 'react'; + +import CreateDiscussion from '../../../../../../../components/CreateDiscussion'; + +const CreateDiscussionAction = ({ room }: { room: IRoom }) => { + const setModal = useSetModal(); + const t = useTranslation(); + + const handleCreateDiscussion = () => + setModal( setModal(null)} defaultParentRoom={room?.prid || room?._id} />); + + const discussionEnabled = useSetting('Discussion_enabled') as boolean; + const canStartDiscussion = usePermission('start-discussion'); + const canSstartDiscussionOtherUser = usePermission('start-discussion-other-user'); + + const allowDiscussion = room && discussionEnabled && !isRoomFederated(room) && (canStartDiscussion || canSstartDiscussionOtherUser); + + return ( + + ); +}; + +export default CreateDiscussionAction; diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/actions/FileUploadAction.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/FileUploadAction.tsx new file mode 100644 index 000000000000..359287e0499c --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/FileUploadAction.tsx @@ -0,0 +1,55 @@ +import { MessageComposerAction } from '@rocket.chat/ui-composer'; +import { useTranslation, useSetting } from '@rocket.chat/ui-contexts'; +import type { ChangeEvent } from 'react'; +import React, { useRef } from 'react'; + +import type { ChatAPI } from '../../../../../../../lib/chats/ChatAPI'; +import { useChat } from '../../../../../contexts/ChatContext'; + +type FileUploadActionProps = { + isRecording: boolean; + chatContext?: ChatAPI; // TODO: remove this when the composer is migrated to React +}; + +const FileUploadAction = ({ chatContext, isRecording }: FileUploadActionProps) => { + const t = useTranslation(); + const fileUploadEnabled = useSetting('FileUpload_Enabled'); + const fileInputRef = useRef(null); + const chat = useChat() ?? chatContext; + + const handleUploadChange = async (e: ChangeEvent) => { + const { mime } = await import('../../../../../../../../app/utils/lib/mimeTypes'); + const filesToUpload = Array.from(e.target.files ?? []).map((file) => { + Object.defineProperty(file, 'type', { + value: mime.lookup(file.name), + }); + return file; + }); + + chat?.flows.uploadFiles(filesToUpload); + }; + + const handleUpload = () => { + fileInputRef.current?.click(); + + // Simple hack for iOS aka codegueira + if (navigator.userAgent.match(/(iPad|iPhone|iPod)/g)) { + fileInputRef.current?.click(); + } + }; + + return ( + <> + + + + ); +}; + +export default FileUploadAction; diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/actions/ShareLocationAction.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/ShareLocationAction.tsx new file mode 100644 index 000000000000..0867c1dcbc5a --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/ShareLocationAction.tsx @@ -0,0 +1,33 @@ +import type { IRoom } from '@rocket.chat/core-typings'; +import { isRoomFederated } from '@rocket.chat/core-typings'; +import { Option, OptionTitle, OptionIcon, OptionContent } from '@rocket.chat/fuselage'; +import { useSetting, useSetModal, useTranslation } from '@rocket.chat/ui-contexts'; +import React from 'react'; + +import ShareLocationModal from '../../../../../ShareLocation/ShareLocationModal'; + +const ShareLocationAction = ({ room, tmid }: { room: IRoom; tmid?: string }) => { + const t = useTranslation(); + const setModal = useSetModal(); + + const isMapViewEnabled = useSetting('MapView_Enabled') === true; + const isGeolocationCurrentPositionSupported = Boolean(navigator.geolocation?.getCurrentPosition); + const googleMapsApiKey = useSetting('MapView_GMapsAPIKey') as string; + const canGetGeolocation = isMapViewEnabled && isGeolocationCurrentPositionSupported && googleMapsApiKey && googleMapsApiKey.length; + + const handleShareLocation = () => setModal( setModal(null)} />); + + const allowGeolocation = room && canGetGeolocation && !isRoomFederated(room); + + return ( + <> + {t('Share')} + + + ); +}; + +export default ShareLocationAction; diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/actions/VideoMessageAction.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/VideoMessageAction.tsx new file mode 100644 index 000000000000..ebd3d6cc6005 --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/VideoMessageAction.tsx @@ -0,0 +1,52 @@ +import { MessageComposerAction } from '@rocket.chat/ui-composer'; +import { useTranslation, useSetting } from '@rocket.chat/ui-contexts'; +import React from 'react'; + +import type { ChatAPI } from '../../../../../../../lib/chats/ChatAPI'; +import { useChat } from '../../../../../contexts/ChatContext'; + +type VideoMessageActionProps = { + isRecording: boolean; + chatContext?: ChatAPI; // TODO: remove this when the composer is migrated to React +}; + +const VideoMessageAction = ({ chatContext, isRecording }: VideoMessageActionProps) => { + const t = useTranslation(); + const fileUploadEnabled = useSetting('FileUpload_Enabled'); + const messageVideoRecorderEnabled = useSetting('Message_VideoRecorderEnabled'); + const fileUploadMediaTypeBlackList = useSetting('FileUpload_MediaTypeBlackList') as string; + const fileUploadMediaTypeWhiteList = useSetting('FileUpload_MediaTypeWhiteList') as string; + + const chat = useChat() ?? chatContext; + + const handleOpenVideoMessage = () => { + if (!chat?.composer?.recordingVideo.get()) { + chat?.composer?.setRecordingVideo(true); + } + }; + + const enableVideoMessage = + navigator.mediaDevices && + window.MediaRecorder && + fileUploadEnabled && + messageVideoRecorderEnabled && + (!fileUploadMediaTypeBlackList || !fileUploadMediaTypeBlackList.match(/video\/webm|video\/\*/i)) && + (!fileUploadMediaTypeWhiteList || fileUploadMediaTypeWhiteList.match(/video\/webm|video\/\*/i)) && + window.MediaRecorder.isTypeSupported('video/webm; codecs=vp8,opus'); + + if (!enableVideoMessage) { + return null; + } + + return ( + + ); +}; + +export default VideoMessageAction; diff --git a/apps/meteor/client/views/room/components/body/composer/messageBox/actions/WebdavAction.tsx b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/WebdavAction.tsx new file mode 100644 index 000000000000..6b07cb26de4d --- /dev/null +++ b/apps/meteor/client/views/room/components/body/composer/messageBox/actions/WebdavAction.tsx @@ -0,0 +1,56 @@ +import type { IWebdavAccountIntegration } from '@rocket.chat/core-typings'; +import { Option, OptionIcon, OptionContent } from '@rocket.chat/fuselage'; +import { useTranslation, useSetting, useSetModal } from '@rocket.chat/ui-contexts'; +import React from 'react'; + +import { WebdavAccounts } from '../../../../../../../../app/models/client'; +import { useReactiveValue } from '../../../../../../../hooks/useReactiveValue'; +import type { ChatAPI } from '../../../../../../../lib/chats/ChatAPI'; +import { useChat } from '../../../../../contexts/ChatContext'; +import AddWebdavAccountModal from '../../../../../webdav/AddWebdavAccountModal'; +import WebdavFilePickerModal from '../../../../../webdav/WebdavFilePickerModal'; + +const getWebdavAccounts = (): IWebdavAccountIntegration[] => WebdavAccounts.find().fetch(); + +const WebdavAction = ({ chatContext }: { chatContext?: ChatAPI }) => { + const t = useTranslation(); + const setModal = useSetModal(); + const webDavAccounts = useReactiveValue(getWebdavAccounts); + + const webDavEnabled = useSetting('Webdav_Integration_Enabled'); + + const handleCreateWebDav = () => setModal( setModal(null)} onConfirm={() => setModal(null)} />); + + const chat = useChat() ?? chatContext; + + const handleUpload = async (file: File, description?: string) => + chat?.uploads.send(file, { + description, + }); + + const handleOpenWebdav = (account: IWebdavAccountIntegration) => + setModal( setModal(null)} />); + + return ( + <> + + {webDavEnabled && + webDavAccounts.length > 0 && + webDavAccounts.map((account) => ( + + ))} + + ); +}; + +export default WebdavAction; diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index bf23f8c9c317..870b6911f61d 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -284,6 +284,7 @@ "Add_Reaction": "Add Reaction", "Add_Role": "Add Role", "Add_Sender_To_ReplyTo": "Add Sender to Reply-To", + "Add_Server": "Add Server", "Add_URL": "Add URL", "Add_user": "Add user", "Add_User": "Add User", @@ -5328,6 +5329,7 @@ "WebDAV_Accounts": "WebDAV Accounts", "Webdav_add_new_account": "Add new WebDAV account", "Webdav_Integration_Enabled": "Webdav Integration Enabled", + "WebDAV_Integration_Not_Allowed": "WebDAV Integration Not Allowed", "Webdav_Password": "WebDAV Password", "Webdav_Server_URL": "WebDAV Server Access URL", "Webdav_Username": "WebDAV Username", diff --git a/apps/meteor/tests/e2e/page-objects/fragments/home-content.ts b/apps/meteor/tests/e2e/page-objects/fragments/home-content.ts index a419420152e1..15b779e514e6 100644 --- a/apps/meteor/tests/e2e/page-objects/fragments/home-content.ts +++ b/apps/meteor/tests/e2e/page-objects/fragments/home-content.ts @@ -99,7 +99,7 @@ export class HomeContent { } get btnVideoMessage(): Locator { - return this.page.locator('.rc-popover__content [data-id="video-message"]'); + return this.page.locator('[data-id="video-message"]'); } get btnRecordAudio(): Locator { diff --git a/apps/meteor/tests/e2e/permissions.spec.ts b/apps/meteor/tests/e2e/permissions.spec.ts index 6ca8e020bd1a..cbe02732de9b 100644 --- a/apps/meteor/tests/e2e/permissions.spec.ts +++ b/apps/meteor/tests/e2e/permissions.spec.ts @@ -117,10 +117,8 @@ test.describe.serial('permissions', () => { expect(statusCode).toBe(200); }); - test('expect option(upload file) not be visible', async () => { + test('expect option (upload file) not be visible', async () => { await poHomeChannel.sidenav.openChat(targetChannel); - await poHomeChannel.content.btnMenuMoreActions.click(); - await expect(poHomeChannel.content.btnOptionFileUpload).toBeHidden(); }); @@ -138,10 +136,8 @@ test.describe.serial('permissions', () => { expect(statusCode).toBe(200); }); - test('expect option(upload audio) not be visible', async () => { + test('expect option (upload audio) not be visible', async () => { await poHomeChannel.sidenav.openChat(targetChannel); - await poHomeChannel.content.btnMenuMoreActions.click(); - await expect(poHomeChannel.content.btnRecordAudio).toBeHidden(); }); @@ -159,10 +155,8 @@ test.describe.serial('permissions', () => { expect(statusCode).toBe(200); }); - test('expect option(upload video) not be visible', async () => { + test('expect option (upload video) not be visible', async () => { await poHomeChannel.sidenav.openChat(targetChannel); - await poHomeChannel.content.btnMenuMoreActions.click(); - await expect(poHomeChannel.content.btnVideoMessage).toBeHidden(); }); From 85e2af9d4328896b140d5f63ffff64944bfe0a13 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Thu, 9 Feb 2023 11:42:57 -0300 Subject: [PATCH 05/19] Chore: Aria busy indicators (#27978) --- apps/meteor/client/views/root/PageLoading.tsx | 2 +- apps/meteor/tests/e2e/config/global-setup.ts | 4 ++-- apps/meteor/tests/e2e/config/global.d.ts | 1 + apps/meteor/tests/e2e/utils/test.ts | 7 +++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/meteor/client/views/root/PageLoading.tsx b/apps/meteor/client/views/root/PageLoading.tsx index bd2b9e1a754a..cb95a546929d 100644 --- a/apps/meteor/client/views/root/PageLoading.tsx +++ b/apps/meteor/client/views/root/PageLoading.tsx @@ -2,7 +2,7 @@ import type { FC } from 'react'; import React from 'react'; const PageLoading: FC = () => ( -
+
diff --git a/apps/meteor/tests/e2e/config/global-setup.ts b/apps/meteor/tests/e2e/config/global-setup.ts index 42e2e3f62f54..064dea90ebaf 100644 --- a/apps/meteor/tests/e2e/config/global-setup.ts +++ b/apps/meteor/tests/e2e/config/global-setup.ts @@ -1,6 +1,6 @@ /* eslint no-await-in-loop: 0 */ -import { chromium } from '@playwright/test'; +import { chromium, expect } from '@playwright/test'; import * as constants from './constants'; import injectInitialData from '../fixtures/inject-initial-data'; @@ -32,7 +32,7 @@ export default async function (): Promise { await page.locator('[name=password]').type(constants.ADMIN_CREDENTIALS.password); await page.locator('role=button >> text="Login"').click(); - await page.waitForTimeout(1000); + await expect(page.locator('role=alert[name=loading]')).toHaveCount(0); await page.context().storageState({ path: `admin-session.json` }); diff --git a/apps/meteor/tests/e2e/config/global.d.ts b/apps/meteor/tests/e2e/config/global.d.ts index e29110bb7458..64ab771db667 100644 --- a/apps/meteor/tests/e2e/config/global.d.ts +++ b/apps/meteor/tests/e2e/config/global.d.ts @@ -2,5 +2,6 @@ declare namespace PlaywrightTest { interface Matchers { hasAttribute(a: string): Promise; toBeInvalid(): Promise; + toBeBusy(): Promise; } } diff --git a/apps/meteor/tests/e2e/utils/test.ts b/apps/meteor/tests/e2e/utils/test.ts index d0bcfa7b4540..8e0bc5062715 100644 --- a/apps/meteor/tests/e2e/utils/test.ts +++ b/apps/meteor/tests/e2e/utils/test.ts @@ -88,6 +88,13 @@ expect.extend({ pass, }; }, + async toBeBusy(received: Locator) { + const pass = await received.evaluate((node) => node.getAttribute('aria-busy') === 'true'); + return { + message: () => `expected ${received} to be busy`, + pass, + }; + }, async hasAttribute(received: Locator, attribute: string) { const pass = await received.evaluate((node, attribute) => node.hasAttribute(attribute), attribute); From 082c048abc67b5db3a0d8d06b6ce65d5b229dae3 Mon Sep 17 00:00:00 2001 From: Hugo Costa Date: Thu, 9 Feb 2023 14:01:22 -0300 Subject: [PATCH 06/19] [BREAK] Remove message view mode from User Preferences (#27867) Co-authored-by: Yash Rajpal <58601732+yash-rajpal@users.noreply.github.com> --- .../meteor/app/lib/server/startup/settings.ts | 20 --------------- .../preferences/AccountPreferencesPage.tsx | 1 - .../PreferencesMessagesSection.tsx | 25 ------------------- .../views/room/components/body/RoomBody.tsx | 11 +------- .../rocketchat-i18n/i18n/af.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ar.i18n.json | 9 ------- .../rocketchat-i18n/i18n/az.i18n.json | 8 ------ .../rocketchat-i18n/i18n/be-BY.i18n.json | 8 ------ .../rocketchat-i18n/i18n/bg.i18n.json | 8 ------ .../rocketchat-i18n/i18n/bs.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ca.i18n.json | 9 ------- .../rocketchat-i18n/i18n/cs.i18n.json | 9 ------- .../rocketchat-i18n/i18n/cy.i18n.json | 8 ------ .../rocketchat-i18n/i18n/da.i18n.json | 9 ------- .../rocketchat-i18n/i18n/de-AT.i18n.json | 8 ------ .../rocketchat-i18n/i18n/de-IN.i18n.json | 8 ------ .../rocketchat-i18n/i18n/de.i18n.json | 9 ------- .../rocketchat-i18n/i18n/el.i18n.json | 8 ------ .../rocketchat-i18n/i18n/en.i18n.json | 6 ----- .../rocketchat-i18n/i18n/eo.i18n.json | 8 ------ .../rocketchat-i18n/i18n/es.i18n.json | 9 ------- .../rocketchat-i18n/i18n/fa.i18n.json | 8 ------ .../rocketchat-i18n/i18n/fi.i18n.json | 7 +----- .../rocketchat-i18n/i18n/fr.i18n.json | 9 ------- .../rocketchat-i18n/i18n/he.i18n.json | 6 ----- .../rocketchat-i18n/i18n/hr.i18n.json | 8 ------ .../rocketchat-i18n/i18n/hu.i18n.json | 9 ------- .../rocketchat-i18n/i18n/id.i18n.json | 8 ------ .../rocketchat-i18n/i18n/it.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ja.i18n.json | 9 ------- .../rocketchat-i18n/i18n/ka-GE.i18n.json | 9 ------- .../rocketchat-i18n/i18n/km.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ko.i18n.json | 9 ------- .../rocketchat-i18n/i18n/ku.i18n.json | 8 ------ .../rocketchat-i18n/i18n/lo.i18n.json | 8 ------ .../rocketchat-i18n/i18n/lt.i18n.json | 8 ------ .../rocketchat-i18n/i18n/lv.i18n.json | 8 ------ .../rocketchat-i18n/i18n/mn.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ms-MY.i18n.json | 8 ------ .../rocketchat-i18n/i18n/nl.i18n.json | 9 ------- .../rocketchat-i18n/i18n/no.i18n.json | 8 ------ .../rocketchat-i18n/i18n/pl.i18n.json | 9 ------- .../rocketchat-i18n/i18n/pt-BR.i18n.json | 9 ------- .../rocketchat-i18n/i18n/pt.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ro.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ru.i18n.json | 9 ------- .../rocketchat-i18n/i18n/sk-SK.i18n.json | 8 ------ .../rocketchat-i18n/i18n/sl-SI.i18n.json | 8 ------ .../rocketchat-i18n/i18n/sq.i18n.json | 8 ------ .../rocketchat-i18n/i18n/sr.i18n.json | 8 ------ .../rocketchat-i18n/i18n/sv.i18n.json | 9 ------- .../rocketchat-i18n/i18n/ta-IN.i18n.json | 8 ------ .../rocketchat-i18n/i18n/th-TH.i18n.json | 8 ------ .../rocketchat-i18n/i18n/tr.i18n.json | 8 ------ .../rocketchat-i18n/i18n/ug.i18n.json | 5 ---- .../rocketchat-i18n/i18n/uk.i18n.json | 8 ------ .../rocketchat-i18n/i18n/vi-VN.i18n.json | 8 ------ .../rocketchat-i18n/i18n/zh-HK.i18n.json | 8 ------ .../rocketchat-i18n/i18n/zh-TW.i18n.json | 9 ------- .../rocketchat-i18n/i18n/zh.i18n.json | 9 ------- .../server/methods/saveUserPreferences.js | 1 - .../meteor/server/startup/migrations/index.ts | 1 + apps/meteor/server/startup/migrations/v285.ts | 10 ++++++++ apps/meteor/tests/data/user.js | 1 - .../tests/end-to-end/api/00-miscellaneous.js | 1 - .../v1/users/UsersSetPreferenceParamsPOST.ts | 5 ---- .../methods/saveUserPreferences.ts | 1 - 67 files changed, 13 insertions(+), 522 deletions(-) create mode 100644 apps/meteor/server/startup/migrations/v285.ts diff --git a/apps/meteor/app/lib/server/startup/settings.ts b/apps/meteor/app/lib/server/startup/settings.ts index c914d2805199..eb0f8c4e01dd 100644 --- a/apps/meteor/app/lib/server/startup/settings.ts +++ b/apps/meteor/app/lib/server/startup/settings.ts @@ -467,26 +467,6 @@ settingsRegistry.addGroup('Accounts', function () { public: true, i18nLabel: 'Enter_Behaviour', }); - - this.add('Accounts_Default_User_Preferences_messageViewMode', 0, { - type: 'select', - values: [ - { - key: 0, - i18nLabel: 'Normal', - }, - { - key: 1, - i18nLabel: 'Cozy', - }, - { - key: 2, - i18nLabel: 'Compact', - }, - ], - public: true, - i18nLabel: 'MessageBox_view_mode', - }); this.add('Accounts_Default_User_Preferences_emailNotificationMode', 'mentions', { type: 'select', values: [ diff --git a/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx b/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx index b4228b1f86b4..115b32ebc57b 100644 --- a/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx +++ b/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx @@ -31,7 +31,6 @@ type CurrentData = { pushNotifications: string; enableAutoAway: boolean; highlights: string; - messageViewMode: number; hideUsernames: boolean; hideRoles: boolean; displayAvatars: boolean; diff --git a/apps/meteor/client/views/account/preferences/PreferencesMessagesSection.tsx b/apps/meteor/client/views/account/preferences/PreferencesMessagesSection.tsx index 4d7358bba32b..a9b2996e3195 100644 --- a/apps/meteor/client/views/account/preferences/PreferencesMessagesSection.tsx +++ b/apps/meteor/client/views/account/preferences/PreferencesMessagesSection.tsx @@ -21,7 +21,6 @@ type Values = { displayAvatars: boolean; clockMode: 0 | 1 | 2; sendOnEnter: 'normal' | 'alternative' | 'desktop'; - messageViewMode: 0 | 1 | 2; }; const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSectionProps): ReactElement => { @@ -42,7 +41,6 @@ const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSecti hideFlexTab: useUserPreference('hideFlexTab'), clockMode: useUserPreference('clockMode') ?? 0, sendOnEnter: useUserPreference('sendOnEnter'), - messageViewMode: useUserPreference('messageViewMode'), displayAvatars: useUserPreference('displayAvatars'), }; @@ -62,7 +60,6 @@ const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSecti displayAvatars, clockMode, sendOnEnter, - messageViewMode, } = values as Values; const { @@ -79,7 +76,6 @@ const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSecti handleDisplayAvatars, handleClockMode, handleSendOnEnter, - handleMessageViewMode, } = handlers; const alsoSendThreadMessageToChannelOptions = useMemo( @@ -109,15 +105,6 @@ const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSecti [t], ); - const messageViewModeOptions = useMemo( - (): SelectOption[] => [ - [0 as any, t('Normal')], // TO DO: update SelectOption type to accept number as first item - [1, t('Cozy')], - [2, t('Compact')], - ], - [t], - ); - commitRef.current.messages = commit; // TODO: Weird behaviour when saving clock mode, and then changing it. @@ -275,18 +262,6 @@ const PreferencesMessagesSection = ({ onChange, commitRef, ...props }: FormSecti ), [handleSendOnEnter, sendOnEnter, sendOnEnterOptions, t], )} - {useMemo( - () => ( - - {t('View_mode')} - -

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%0ALA}K5Vp3lei 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 ~ZJBCw0EY!lb!JNC_{_lYgZ~cvVJ- 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 { }); }); + test.describe('Permissions', () => { + test.beforeEach(async ({ page }) => { + await page.goto('/admin/permissions'); + }); + + test('expect open upsell modal if not enterprise', async ({ page }) => { + test.skip(IS_EE); + await poAdmin.btnCreateRole.click(); + await page.waitForSelector('dialog[id="custom-roles"]'); + }); + }); + test.describe('Settings', () => { test.describe('General', () => { test.beforeEach(async ({ page }) => { diff --git a/apps/meteor/tests/e2e/page-objects/admin.ts b/apps/meteor/tests/e2e/page-objects/admin.ts index 9f207d6b4aa4..4f37d7a604d3 100644 --- a/apps/meteor/tests/e2e/page-objects/admin.ts +++ b/apps/meteor/tests/e2e/page-objects/admin.ts @@ -129,6 +129,10 @@ export class Admin { return this.page.locator('//label[@title="Assets_logo"]/following-sibling::span >> role=button[name="Delete"]'); } + get btnCreateRole(): Locator { + return this.page.locator('button[name="New role"]'); + } + get inputAssetsLogo(): Locator { return this.page.locator('//label[@title="Assets_logo"]/following-sibling::span >> input[type="file"]'); } From 6c003f6ac9855e6eeb11fd00bd43aef0515d98b6 Mon Sep 17 00:00:00 2001 From: Yash Rajpal <58601732+yash-rajpal@users.noreply.github.com> Date: Thu, 9 Feb 2023 04:50:19 +0530 Subject: [PATCH 02/19] [FIX] Ignored messages reactivity (#27279) Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com> Co-authored-by: Tasso Evangelista <2263066+tassoevan@users.noreply.github.com> --- .../message/variants/RoomMessage.tsx | 10 ++- .../views/room/MessageList/MessageList.tsx | 12 ++- .../views/room/MessageList/Message.spec.tsx | 85 +++++++++++++++++++ 3 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 apps/meteor/tests/unit/client/views/room/MessageList/Message.spec.tsx diff --git a/apps/meteor/client/components/message/variants/RoomMessage.tsx b/apps/meteor/client/components/message/variants/RoomMessage.tsx index 783479f7a1a4..a1fc68211bcf 100644 --- a/apps/meteor/client/components/message/variants/RoomMessage.tsx +++ b/apps/meteor/client/components/message/variants/RoomMessage.tsx @@ -22,18 +22,20 @@ import ToolboxHolder from '../ToolboxHolder'; import RoomMessageContent from './room/RoomMessageContent'; type RoomMessageProps = { - message: IMessage; + message: IMessage & { ignored?: boolean }; sequential: boolean; unread: boolean; mention: boolean; all: boolean; context?: MessageActionContext; + ignoredUser?: boolean; }; -const RoomMessage = ({ message, sequential, all, mention, unread, context }: RoomMessageProps): ReactElement => { +const RoomMessage = ({ message, sequential, all, mention, unread, context, ignoredUser }: RoomMessageProps): ReactElement => { const uid = useUserId(); const editing = useIsMessageHighlight(message._id); - const [ignored, toggleIgnoring] = useToggle((message as { ignored?: boolean }).ignored ?? false); + const [displayIgnoredMessage, toggleDisplayIgnoredMessage] = useToggle(false); + const ignored = (ignoredUser || message.ignored) && !displayIgnoredMessage; const { open: openUserCard } = useUserCard(); const selecting = useIsSelecting(); @@ -76,7 +78,7 @@ const RoomMessage = ({ message, sequential, all, mention, unread, context }: Roo {!sequential && } {ignored ? ( - + ) : ( )} diff --git a/apps/meteor/client/views/room/MessageList/MessageList.tsx b/apps/meteor/client/views/room/MessageList/MessageList.tsx index c85974065456..bfae34b0d7d2 100644 --- a/apps/meteor/client/views/room/MessageList/MessageList.tsx +++ b/apps/meteor/client/views/room/MessageList/MessageList.tsx @@ -47,6 +47,7 @@ export const MessageList = ({ rid }: MessageListProps): ReactElement => { const unread = Boolean(subscription?.tunread?.includes(message._id)); const mention = Boolean(subscription?.tunreadUser?.includes(message._id)); const all = Boolean(subscription?.tunreadGroup?.includes(message._id)); + const ignoredUser = Boolean(subscription?.ignored?.includes(message.u._id)); return ( @@ -56,7 +57,16 @@ export const MessageList = ({ rid }: MessageListProps): ReactElement => { )} - {visible && } + {visible && ( + + )} {isThreadMessage(message) && (