@ixo/ui 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +53 -53
- package/dist/{UsersSolid-CU7U_J3x.js → UsersSolid-BAHkDzh8.js} +51 -47
- package/dist/UsersSolid-BAHkDzh8.js.map +1 -0
- package/dist/{UsersSolid-C29C53eo.cjs → UsersSolid-C5FpNZ_K.cjs} +5 -1
- package/dist/UsersSolid-C5FpNZ_K.cjs.map +1 -0
- package/dist/components/AccordionTable/index.d.ts.map +1 -1
- package/dist/components/DropDown/index.d.ts.map +1 -1
- package/dist/components/Table/components/Tr.d.ts +1 -1
- package/dist/components/Table/components/Tr.d.ts.map +1 -1
- package/dist/components/Table/index.d.ts +1 -1
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Table/types.d.ts +4 -1
- package/dist/components/Table/types.d.ts.map +1 -1
- package/dist/components/TableList/index.d.ts.map +1 -1
- package/dist/{components-DXWFikYD.js → components-CmANQWf-.js} +126 -140
- package/dist/components-CmANQWf-.js.map +1 -0
- package/dist/{components-C2SQgRSz.cjs → components-D-S05IGO.cjs} +124 -138
- package/dist/components-D-S05IGO.cjs.map +1 -0
- package/dist/constants/mantineTheme.d.ts +6 -6
- package/dist/export/components.cjs +1 -1
- package/dist/export/components.mjs +1 -1
- package/dist/export/icons/index.cjs +1 -1
- package/dist/export/icons/index.mjs +48 -48
- package/dist/{index-C0M9EAJA.cjs → index-BNv7Wt6j.cjs} +2 -2
- package/dist/{index-C0M9EAJA.cjs.map → index-BNv7Wt6j.cjs.map} +1 -1
- package/dist/{index-DZyjcXlR.js → index-BO0bmguj.js} +2 -2
- package/dist/{index-DZyjcXlR.js.map → index-BO0bmguj.js.map} +1 -1
- package/dist/{index-DlkMWtvk.cjs → index-BOPdrL0z.cjs} +3 -3
- package/dist/{index-DlkMWtvk.cjs.map → index-BOPdrL0z.cjs.map} +1 -1
- package/dist/{index-DEJUkGPI.js → index-BcS9nv9y.js} +3 -3
- package/dist/{index-DEJUkGPI.js.map → index-BcS9nv9y.js.map} +1 -1
- package/dist/{index-NnvW31qR.js → index-Bl4vCmPD.js} +2 -2
- package/dist/{index-NnvW31qR.js.map → index-Bl4vCmPD.js.map} +1 -1
- package/dist/{index-CH_RGOrj.cjs → index-Bp3jax94.cjs} +2 -2
- package/dist/{index-CH_RGOrj.cjs.map → index-Bp3jax94.cjs.map} +1 -1
- package/dist/{index-Cj0ojt2H.cjs → index-Bzvm895X.cjs} +2 -2
- package/dist/{index-Cj0ojt2H.cjs.map → index-Bzvm895X.cjs.map} +1 -1
- package/dist/{index-CGE72zCr.cjs → index-C81_pkCa.cjs} +2 -2
- package/dist/{index-CGE72zCr.cjs.map → index-C81_pkCa.cjs.map} +1 -1
- package/dist/{index-C0_y2x26.cjs → index-CF8hUSL4.cjs} +2 -2
- package/dist/{index-C0_y2x26.cjs.map → index-CF8hUSL4.cjs.map} +1 -1
- package/dist/{index-CAdlSthO.js → index-COFYd2Cs.js} +2 -2
- package/dist/{index-CAdlSthO.js.map → index-COFYd2Cs.js.map} +1 -1
- package/dist/{index-Bs0LG269.js → index-CUsPvPQY.js} +2 -2
- package/dist/{index-Bs0LG269.js.map → index-CUsPvPQY.js.map} +1 -1
- package/dist/{index-7zomOTPG.js → index-Cdx2iFWc.js} +2 -2
- package/dist/{index-7zomOTPG.js.map → index-Cdx2iFWc.js.map} +1 -1
- package/dist/{index-BxL26n-_.cjs → index-D5-ydt83.cjs} +2 -2
- package/dist/{index-BxL26n-_.cjs.map → index-D5-ydt83.cjs.map} +1 -1
- package/dist/{index-BFBqYWEa.js → index-D8rBCYAR.js} +3 -3
- package/dist/{index-BFBqYWEa.js.map → index-D8rBCYAR.js.map} +1 -1
- package/dist/{index-DDO_4uZt.cjs → index-DGVkbm1G.cjs} +2 -2
- package/dist/{index-DDO_4uZt.cjs.map → index-DGVkbm1G.cjs.map} +1 -1
- package/dist/{index-Dk7hov8r.cjs → index-Dn7Yp1ku.cjs} +3 -3
- package/dist/{index-Dk7hov8r.cjs.map → index-Dn7Yp1ku.cjs.map} +1 -1
- package/dist/{index-CGRAANQ8.js → index-PVwto1-Y.js} +2 -2
- package/dist/{index-CGRAANQ8.js.map → index-PVwto1-Y.js.map} +1 -1
- package/dist/{index-D05G6loY.js → index-SQJMSt4m.js} +3 -3
- package/dist/{index-D05G6loY.js.map → index-SQJMSt4m.js.map} +1 -1
- package/dist/{index-DBQqIQa5.js → index-UKyxkTI5.js} +2 -2
- package/dist/{index-DBQqIQa5.js.map → index-UKyxkTI5.js.map} +1 -1
- package/dist/{index-BzlvAIua.cjs → index-znoKlTv8.cjs} +3 -3
- package/dist/{index-BzlvAIua.cjs.map → index-znoKlTv8.cjs.map} +1 -1
- package/dist/utils/colors.d.ts +1 -0
- package/dist/utils/colors.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/UsersSolid-C29C53eo.cjs.map +0 -1
- package/dist/UsersSolid-CU7U_J3x.js.map +0 -1
- package/dist/components-C2SQgRSz.cjs.map +0 -1
- package/dist/components-DXWFikYD.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components-DXWFikYD.js","sources":["../src/components/SlideUpArea/index.tsx","../src/components/Typography/hooks/useFormatting.ts","../src/components/Typography/components/TBuilder/index.tsx","../src/components/Typography/components/H1/index.tsx","../src/components/Typography/components/H2/index.tsx","../src/components/Typography/components/H3/index.tsx","../src/components/Typography/components/H4/index.tsx","../src/components/Typography/components/H5/index.tsx","../src/components/Typography/components/H6/index.tsx","../src/components/Typography/components/Paragraph/index.tsx","../src/components/Typography/components/Text/index.tsx","../src/components/Typography/components/Strong/index.tsx","../src/components/Typography/components/I/index.tsx","../src/components/Typography/index.tsx","../src/hooks/useToggle.ts","../src/components/Accordion/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Spacer/index.tsx","../src/components/Table/components/TBody.tsx","../src/components/Tag/index.tsx","../src/components/Table/components/Td.tsx","../src/components/Table/components/Th.tsx","../src/components/Table/components/THead.tsx","../src/utils/dom.ts","../src/components/Table/components/Tr.tsx","../src/components/Table/index.tsx","../src/components/AccordionTable/index.tsx","../src/components/ActionCard/index.tsx","../src/components/Loader/index.tsx","../src/constants/common-sizs.ts","../src/components/Card/index.tsx","../src/components/ExpandableButton/index.tsx","../src/components/ActionSheet/components/NavMenu/index.tsx","../src/components/ModalSheet/components/Handler/index.tsx","../src/hooks/useEscapeKey.ts","../src/components/ModalSheet/index.tsx","../src/components/ActionSheet/index.tsx","../src/components/IconButton/index.tsx","../src/components/RoundedButton/index.tsx","../src/components/SearchInput/index.tsx","../src/components/ActionSheetCompanion/index.tsx","../src/assets/images/bg-activity-card.jpg","../src/components/ActivityCard/index.tsx","../src/components/StyleDOMApplier/index.tsx","../src/components/HtmlRender/index.tsx","../src/components/Base/Flex.tsx","../src/components/MoreMenu/components/Item/index.tsx","../src/components/MoreMenu/index.tsx","../src/components/AIResponse/index.tsx","../src/components/AIInputBar/index.tsx","../src/components/AIChatToolbar/index.tsx","../src/components/Avatar/index.tsx","../src/components/AppShellNavigation/components/AsideResizable.tsx","../src/components/AppShellNavigation/components/NavigationItemSkeleton.tsx","../src/components/AppShellNavigation/components/RoomItem.tsx","../src/components/AppShellNavigation/components/RoomCategory.tsx","../src/components/AppShellNavigation/components/MenuItem.tsx","../src/components/AppShellNavigation/components/SelectedIndicator.tsx","../src/components/AppShellNavigation/components/SpaceItem.tsx","../src/utils/formatters.ts","../src/components/AppShellNavigation/components/MobileBurger.tsx","../src/components/AppShellNavigation/index.tsx","../src/components/AvatarInfo/index.tsx","../src/components/Button/index.tsx","../src/components/ButtonBasic/index.tsx","../src/components/ButtonReadOnly/index.tsx","../src/components/ButtonSubtle/index.tsx","../src/components/CardAction/index.tsx","../src/components/CardEntity/index.tsx","../src/components/CardHeader/components/ContentSide/index.tsx","../src/components/CardHeader/index.tsx","../src/components/OracleMessage/index.tsx","../src/components/UserMessage/index.tsx","../src/components/CardHero/index.tsx","../src/components/CardSelector/utils.ts","../src/components/CardSelector/index.tsx","../src/components/CardOutput/index.tsx","../src/components/CardUserFollowUp/index.tsx","../src/components/Chart/index.tsx","../src/components/CheckboxGroup/index.tsx","../src/components/InputWrapper/components/HelpTextWrapper/index.tsx","../src/components/InputWrapper/index.tsx","../src/components/ComboBox/index.tsx","../src/components/DomainToolbar/index.tsx","../src/components/DropDown/index.tsx","../src/components/DomainToolbarTypes/index.tsx","../src/components/CommandPaletteItem/index.tsx","../src/components/ActionIcon/index.tsx","../src/components/FloatingInput/index.tsx","../src/components/EcosystemCard/index.tsx","../src/components/EntityList/index.tsx","../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/relativeTime.js","../src/components/ImageIcon/index.tsx","../src/components/Event/components/Value/index.tsx","../src/components/Event/index.tsx","../src/components/FeaturedCard/index.tsx","../src/components/FeedbackMessage/index.tsx","../src/components/FilterDropDown/index.tsx","../src/components/FilterTags/index.tsx","../src/components/HorizontalCardSlider/components/NavButton/index.tsx","../src/components/HorizontalCardSlider/index.tsx","../src/components/GroupActivity/index.tsx","../src/components/GroupSelector/index.tsx","../src/components/SodaCard/components/Stack/index.tsx","../src/components/SodaCard/components/ActionButton/components/Content/index.tsx","../src/components/SodaCard/components/ActionButton/index.tsx","../src/components/SodaCard/index.tsx","../src/components/HandlerSodaCard/utils.ts","../src/utils/events.ts","../src/components/HandlerSodaCard/index.tsx","../src/components/ImpactCreditState/Chart.tsx","../src/components/Tooltip/index.tsx","../src/components/ImpactCreditState/AssetInfo.tsx","../src/components/ImpactCreditState/Tooltip.tsx","../src/components/ImpactCreditState/FullState.tsx","../src/components/ImpactCreditState/index.tsx","../src/components/Scrollbars/index.tsx","../src/components/Layout/components/Column/index.tsx","../src/components/Layout/components/HeaderButton/index.tsx","../src/components/Layout/components/SearchBar/index.tsx","../src/components/Layout/components/Header/index.tsx","../src/components/Layout/index.tsx","../src/components/Modal/index.tsx","../src/components/ModalSearch/components/Suggestions/index.tsx","../src/components/ModalSearch/components/QuickActions/index.tsx","../src/components/ModalSearch/index.tsx","../src/components/OracleProtocolsSelection/components/Protocol/index.tsx","../src/components/OracleProtocolsSelection/index.tsx","../src/components/OracleReply/components/TagButton/index.tsx","../src/components/OracleReply/index.tsx","../src/components/PageTitle/index.tsx","../src/components/PlanCard/index.tsx","../src/components/Post/utils.ts","../src/components/Post/components/InteractionButton/index.tsx","../src/components/Post/index.tsx","../src/components/ProfileCard/index.tsx","../src/components/ProfileMenu/index.tsx","../src/components/ProposalCard/components/RemainingTime/index.tsx","../src/components/ProposalCard/index.tsx","../src/components/ServiceOffering/components/ColumnText/index.tsx","../src/components/ServiceOffering/index.tsx","../src/components/Select/index.tsx","../src/components/SomeComponent/index.tsx","../src/components/Switch/index.tsx","../src/components/SwitchText/index.tsx","../src/components/TableList/Cell.tsx","../src/components/TableList/CellContent.tsx","../src/components/TableList/IconRow.tsx","../src/components/TableList/ImageContent.tsx","../src/components/TableList/DualImageContent.tsx","../src/components/TableList/index.tsx","../src/components/TabSelector/components/IconStatus/index.tsx","../src/components/TabSelector/index.tsx","../src/components/TabNavigation/index.tsx","../src/components/TextInput/index.tsx","../src/components/UiProvider/index.tsx","../src/components/FloatingModal/index.tsx","../src/components/NavigationBar/NavigationItem.tsx","../src/components/NavigationBar/DynamicNav.tsx","../src/components/NavigationBar/UserNav.tsx","../src/components/NavigationBar/DomainSelector.tsx","../src/components/NavigationBar/DomainModal.tsx","../src/components/NavigationBar/MoreModal.tsx","../src/components/NavigationBar/SpaceSelector.tsx","../src/components/NavigationBar/WorkspaceModal.tsx","../src/components/NavigationBar/UserModal/UserModalItem.tsx","../src/components/NavigationBar/UserModal/UserModal.tsx","../src/components/NavigationBar/NavigationBar.tsx"],"sourcesContent":["import { ReactElement } from \"react\";\n\nimport { Props } from \"./types\";\n\nexport function SlideUpArea({ children, isVisible }: Props): ReactElement {\n return (\n <div\n className={isVisible ? \"is-visible\" : undefined}\n css={{\n position: \"relative\",\n display: \"grid\",\n gridTemplateRows: \"0fr\",\n transition: \"grid-template-rows 0.5s ease-out\",\n \"&.is-visible\": {\n gridTemplateRows: \"1fr\"\n }\n }}\n >\n <div\n css={({ transition }) => ({\n overflow: \"hidden\",\n transition: transition.duration\n })}\n >\n {children}\n </div>\n </div>\n );\n}\n","import { useTheme } from \"@emotion/react\";\n\nimport { ElementColor, getElementColor } from \"../../../utils/colors\";\n\nimport { Align, FontSize, Tag } from \"../types\";\n\ntype Config = {\n color?: ElementColor;\n align?: Align;\n underline?: boolean;\n size?: FontSize;\n noLineHeight?: boolean;\n bold?: boolean;\n semiBold?: boolean;\n};\n\nexport function useFormatting({ align, underline, color = \"text\", size = \"regular\", noLineHeight, bold, semiBold }: Config, tag: Tag): Record<string, string | number | undefined> {\n const theme = useTheme();\n const textColor = getElementColor(theme, color);\n\n const margins = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(tag) ? { marginTop: theme.spacing * 2, marginBottom: theme.spacing } : { margin: 0 };\n\n return {\n color: textColor,\n fontFamily: theme.font.main,\n fontSize: theme.fontSize[size],\n textAlign: align,\n lineHeight: noLineHeight ? \"1.0em\" : \"1.5em\",\n textDecoration: underline ? \"underline\" : undefined,\n fontWeight: bold ? \"bold\" : semiBold ? 500 : undefined,\n ...margins\n };\n}\n","import { ReactElement } from \"react\";\nimport { jsx } from \"@emotion/react\";\n\nimport { useFormatting } from \"../../hooks/useFormatting\";\n\nimport { PropsTBuilder } from \"../../types\";\n\nexport function TBuilder({ props, tag, extraStyles = {} }: PropsTBuilder): ReactElement {\n const { className, children, ...formatting } = props;\n const styles = useFormatting(formatting, tag);\n\n const css = { ...styles, ...extraStyles };\n\n return jsx(tag, { css, className }, children);\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H1(props: PropsH): ReactElement {\n return <TBuilder tag=\"h1\" props={{ ...props, size: \"h1\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H2(props: PropsH): ReactElement {\n return <TBuilder tag=\"h2\" props={{ ...props, size: \"h2\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H3(props: PropsH): ReactElement {\n return <TBuilder tag=\"h3\" props={{ ...props, size: \"h3\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H4(props: PropsH): ReactElement {\n return <TBuilder tag=\"h4\" props={{ ...props, size: \"h4\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H5(props: PropsH): ReactElement {\n return <TBuilder tag=\"h5\" props={{ ...props, size: \"h5\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsH } from \"../../types\";\n\nexport function H6(props: PropsH): ReactElement {\n return <TBuilder tag=\"h6\" props={{ ...props, size: \"h6\" }} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsParagraph } from \"../../types\";\n\nexport function Paragraph(props: PropsParagraph): ReactElement {\n return <TBuilder tag=\"p\" props={props} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsText } from \"../../types\";\n\nexport function Text(props: PropsText): ReactElement {\n return <TBuilder tag=\"span\" props={props} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsModifier } from \"../../types\";\n\nexport function Strong(props: PropsModifier): ReactElement {\n return <TBuilder tag=\"strong\" props={props} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { TBuilder } from \"../TBuilder\";\n\nimport { PropsModifier } from \"../../types\";\n\nexport function I(props: PropsModifier): ReactElement {\n return <TBuilder tag=\"i\" props={props} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { H1 } from \"./components/H1\";\nimport { H2 } from \"./components/H2\";\nimport { H3 } from \"./components/H3\";\nimport { H4 } from \"./components/H4\";\nimport { H5 } from \"./components/H5\";\nimport { H6 } from \"./components/H6\";\nimport { Paragraph } from \"./components/Paragraph\";\nimport { Text } from \"./components/Text\";\nimport { Strong } from \"./components/Strong\";\nimport { I } from \"./components/I\";\n\nexport function Typography(): ReactElement {\n return <></>;\n}\n\nTypography.H1 = H1;\nTypography.H2 = H2;\nTypography.H3 = H3;\nTypography.H4 = H4;\nTypography.H5 = H5;\nTypography.H6 = H6;\nTypography.Paragraph = Paragraph;\nTypography.Strong = Strong;\nTypography.I = I;\nTypography.Text = Text;\n","import { useCallback, useState } from \"react\";\n\ninterface ToggleReturn {\n value: boolean;\n on: () => void;\n off: () => void;\n toggle: () => void;\n set: (value: boolean) => void;\n}\n\nexport function useToggle(initialValue: boolean): ToggleReturn {\n const [value, setValue] = useState(initialValue);\n\n const on = useCallback(() => setValue(true), []);\n const off = useCallback(() => setValue(false), []);\n const toggle = useCallback(() => setValue((state) => !state), []);\n\n return { value, on, off, toggle, set: setValue };\n}\n","import { ReactElement } from \"react\";\nimport { isString } from \"radash\";\n\nimport { SlideUpArea } from \"../SlideUpArea\";\nimport { Typography } from \"../Typography\";\nimport { AngleDownSolid } from \"../../icons\";\n\nimport { Props } from \"./types\";\nimport { useToggle } from \"../../hooks/useToggle\";\n\nexport function Accordion({ title, children, startOpened = false }: Props): ReactElement {\n const { value: isVisible, toggle: toggleVisibility } = useToggle(startOpened);\n\n return (\n <div css={{ width: \"100%\" }}>\n <div\n role=\"button\"\n tabIndex={0}\n css={{\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }}\n onClick={toggleVisibility}\n >\n <div>{isString(title) ? <Typography.Text color=\"secondary\">{title}</Typography.Text> : title}</div>\n <AngleDownSolid\n color={isVisible ? \"primary\" : \"secondary\"}\n size={16}\n css={({ transition }) => ({\n transition: transition.duration,\n ...(isVisible && { transform: \"rotate(180deg)\" })\n })}\n />\n </div>\n <SlideUpArea isVisible={isVisible}>{children}</SlideUpArea>\n </div>\n );\n}\n","import { ReactElement, useCallback, ChangeEvent } from \"react\";\n\nimport { Typography } from \"../../components/Typography\";\nimport { CheckSolid, Close } from \"../../icons\";\n\nimport { Props } from \"./types\";\n\nconst ICON_AREA_SIZE = 22;\nconst ICON_SIZE = 16;\n\nexport function Checkbox({ checked, disabled, label, name, type = \"checkbox\", onChange }: Props): ReactElement {\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(!checked, event, name);\n }\n },\n [onChange, checked, name]\n );\n\n return (\n <label\n css={({ spacing }) => ({\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: spacing\n })}\n >\n <div\n css={({ colors, radius }) => ({\n display: \"block\",\n position: \"relative\",\n cursor: \"pointer\",\n boxSizing: \"border-box\",\n width: 24,\n height: 24,\n borderRadius: radius.small,\n borderWidth: 1,\n borderColor: type === \"checkbox\" ? colors.focus : \"transparent\",\n borderStyle: \"solid\",\n \"&, & input:checked:disabled ~ span\": disabled ? { cursor: \"not-allowed\" } : {}\n })}\n >\n <input\n type=\"checkbox\"\n css={{\n position: \"absolute\",\n opacity: 0,\n width: 0,\n height: 0,\n \"&:checked ~ span.chkbox\": {\n opacity: 1\n },\n \"&:checked ~ span.chklist svg.checked\": {\n display: \"block\"\n },\n \"&:checked ~ span.chklist svg.unchecked\": {\n display: \"none\"\n }\n }}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n />\n {type === \"checkbox\" ? (\n <span\n className=\"chkbox\"\n css={({ radius, colors, transition }) => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: ICON_AREA_SIZE,\n height: ICON_AREA_SIZE,\n borderRadius: `calc(${radius.small}px - 2px)`,\n backgroundColor: colors.focus,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n opacity: 0,\n transition: transition.duration,\n ...(disabled ? { backgroundColor: colors.focusTransparent50 } : {})\n })}\n >\n <CheckSolid size={ICON_SIZE} />\n </span>\n ) : (\n <span\n className=\"chklist\"\n css={{\n width: ICON_AREA_SIZE,\n height: ICON_AREA_SIZE,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"& .checked\": { display: \"none\" }\n }}\n >\n <CheckSolid size={ICON_SIZE} color=\"primary\" className=\"checked\" />\n <Close size={ICON_SIZE} color=\"secondary\" className=\"unchecked\" />\n </span>\n )}\n </div>\n\n {label ? (\n <Typography.Text\n color={checked === false ? \"secondary\" : \"text\"}\n css={({ text }) => ({\n ...(disabled ? { cursor: \"not-allowed\", color: text.secondary } : {})\n })}\n className=\"label\"\n >\n {label}\n </Typography.Text>\n ) : null}\n </label>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Props } from \"./types\";\n\nexport function Spacer({\n children,\n vertical,\n reverse,\n className,\n distance = 1,\n wrap,\n shrink = false,\n fullWidth = false,\n paddingLeftFactor = 0,\n paddingRightFactor = 0,\n alignItems = \"center\",\n justifyContent = \"center\"\n}: Props): ReactElement {\n return (\n <div\n css={({ spacing }) => ({\n display: shrink ? \"inline-flex\" : \"flex\",\n width: fullWidth ? \"100%\" : undefined,\n gap: spacing * distance,\n paddingLeft: paddingLeftFactor ? spacing * paddingLeftFactor : undefined,\n paddingRight: paddingRightFactor ? spacing * paddingRightFactor : undefined,\n flexDirection: vertical ? (reverse ? \"column-reverse\" : \"column\") : reverse ? \"row-reverse\" : \"row\",\n flexWrap: wrap ? \"wrap\" : undefined,\n justifyContent,\n alignItems\n })}\n className={className}\n >\n {children}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { PropsTBody } from \"../types\";\n\nexport function TBody({ children }: PropsTBody): ReactElement {\n return <tbody>{children}</tbody>;\n}\n","import { ReactElement } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Typography } from \"../Typography\";\nimport { TAG_SMALL_HEIGHT } from \"../../utils/constants\";\n\nimport { Props } from \"./types\";\nimport { getElementColor } from \"../../utils/colors\";\n\nexport function Tag({\n value,\n icon: Icon,\n small,\n className,\n disabled = false,\n textColor = \"primary\",\n borderColor = undefined,\n bgBlur,\n bgTransparent,\n bgColor = \"focusTransparent20\",\n onClick\n}: Props): ReactElement {\n const theme = useTheme();\n let colorBg = bgTransparent ? undefined : getElementColor(theme, bgColor);\n\n return (\n <span\n onClick={!disabled ? onClick : undefined}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n aria-disabled={disabled}\n css={({ font, radius, spacing, neutral }) => {\n if (bgBlur) {\n colorBg = neutral.transparent10;\n }\n\n const size = small ? TAG_SMALL_HEIGHT : 28;\n\n return {\n cursor: disabled ? \"not-allowed\" : onClick ? \"pointer\" : undefined,\n opacity: disabled ? 0.5 : 1,\n border: \"none\",\n fontFamily: font.main,\n height: size,\n boxSizing: \"border-box\",\n paddingLeft: small ? spacing / 2 : spacing,\n paddingRight: small ? spacing / 2 : spacing,\n borderRadius: radius.medium,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: colorBg,\n backdropFilter: bgBlur ? \"blur(10px)\" : undefined,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: borderColor ? getElementColor(theme, borderColor) : \"transparent\"\n };\n }}\n className={className}\n >\n {Icon ? (\n <span\n css={({ spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n marginRight: spacing / 2\n })}\n >\n <Icon color={textColor} size={small ? 12 : 14} />\n </span>\n ) : null}\n <Typography.Text color={textColor} size={small ? \"xs\" : \"s\"} css={{ whiteSpace: \"nowrap\" }}>\n {value}\n </Typography.Text>\n </span>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Tag } from \"../../Tag\";\n\nimport { PropsTd } from \"../types\";\n\nexport function Td({ children, value, description, icon: Icon, iconNoColor, image, tag, align }: PropsTd): ReactElement {\n return (\n <td\n css={({ glass, spacing, radius: { small } }) => ({\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n backgroundColor: glass.base,\n padding: spacing,\n \"&:first-of-type\": {\n borderTopLeftRadius: small,\n borderBottomLeftRadius: small\n },\n \"&:last-child\": {\n borderTopRightRadius: small,\n borderBottomRightRadius: small\n }\n })}\n >\n {children ? (\n children\n ) : (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n \"&.align-right\": {\n justifyContent: \"flex-end\"\n }\n })}\n className={align === \"right\" ? \"align-right\" : undefined}\n >\n {Icon ? (\n <div\n css={({ radius }) => ({\n width: radius.roundButtons,\n height: radius.roundButtons,\n borderRadius: radius.small / 2,\n backgroundColor: \"var(--mantine-color-neutralColor-5)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n })}\n >\n <Icon color={iconNoColor ? undefined : \"overPicture\"} size={24} />\n </div>\n ) : null}\n\n {image ? (\n <img\n src={image}\n draggable={false}\n css={({ radius }) => ({\n width: radius.roundButtons,\n height: radius.roundButtons,\n borderRadius: radius.small / 2,\n objectFit: \"cover\"\n })}\n />\n ) : null}\n {description || value ? (\n <div\n css={({ font }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n fontFamily: font.main,\n \"&.align-right > span\": {\n textAlign: \"right\"\n }\n })}\n className={align === \"right\" ? \"align-right\" : undefined}\n >\n <span\n css={({ fontSize }) => ({\n color: \"var(--mantine-color-neutralColor-8)\",\n\n fontSize: fontSize.regular\n })}\n >\n {value}\n </span>\n <span\n css={({ fontSize }) => ({\n color: \"var(--mantine-color-neutralColor-8)\",\n\n fontSize: fontSize.xs,\n opacity: 0.7\n })}\n >\n {description}\n </span>\n </div>\n ) : null}\n {tag ? (\n <span css={({ spacing }) => ({ marginLeft: spacing })}>\n <Tag value={tag} bgColor=\"primary\" textColor=\"overPicture\" />\n </span>\n ) : null}\n </div>\n )}\n </td>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { PropsTh } from \"../types\";\n\nexport function Th({ children, align = \"center\", shrink, expand }: PropsTh): ReactElement {\n const width = shrink ? \"0%\" : expand ? \"100%\" : undefined;\n return (\n <th\n css={(theme) => ({\n color: \"var(--mantine-color-neutralColor-8)\",\n\n fontFamily: theme.font.main,\n fontSize: theme.fontSize.s,\n textAlign: align,\n paddingLeft: theme.spacing,\n paddingRight: theme.spacing,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n width,\n background: \"transparent\"\n })}\n >\n {children}\n </th>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { PropsTHead } from \"../types\";\n\nexport function THead({ children }: PropsTHead): ReactElement {\n return <thead>{children}</thead>;\n}\n","import { MouseEvent } from \"react\";\n\nexport function isValidClick(e: MouseEvent<HTMLElement>, target: HTMLElement | null): boolean {\n let toCheck = e.target as HTMLElement | null;\n while (toCheck && target !== toCheck) {\n if (toCheck.onclick || toCheck.tagName === \"LABEL\") {\n return false;\n }\n\n toCheck = toCheck?.parentElement;\n }\n\n return true;\n}\n","import { ReactElement, MouseEvent, useRef } from \"react\";\n\nimport { isValidClick } from \"../../../utils/dom\";\n\nimport { PropsTr } from \"../types\";\n\nexport function Tr({ children, selected, onClick }: PropsTr): ReactElement {\n const wrapperRef = useRef<HTMLTableRowElement>(null);\n\n const handleClick = (e: MouseEvent<HTMLTableRowElement>): void => {\n if (!onClick) {\n return;\n }\n\n if (isValidClick(e, wrapperRef.current)) {\n onClick(e);\n }\n };\n\n return (\n <tr\n ref={wrapperRef}\n onClick={handleClick}\n role={onClick ? \"button\" : undefined}\n css={() => {\n return {\n cursor: onClick ? \"pointer\" : undefined,\n \"& > td\": {\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: \"transparent\",\n backgroundColor: selected ? \"var(--mantine-color-neutralColor-5)\" : \"var(--mantine-color-neutralColor-3)\",\n color: \"var(--mantine-color-neutralColor-8)\"\n },\n \"&:hover > td\": {\n backgroundColor: onClick ? \"var(--mantine-color-neutralColor-1)\" : undefined\n }\n };\n }}\n >\n {children}\n </tr>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { PropsTable } from \"./types\";\n\nimport { TBody } from \"./components/TBody\";\nimport { Td } from \"./components/Td\";\nimport { Th } from \"./components/Th\";\nimport { THead } from \"./components/THead\";\nimport { Tr } from \"./components/Tr\";\n\nexport function Table({ children }: PropsTable): ReactElement {\n return (\n <div\n css={{\n width: \"100%\",\n overflowX: \"auto\"\n }}\n >\n <table\n css={(theme) => ({\n width: \"100%\",\n borderCollapse: \"separate\",\n borderSpacing: `0 ${theme.spacing * 2}px`,\n background: \"neutral.1\"\n })}\n >\n {children}\n </table>\n </div>\n );\n}\n\nTable.THead = THead;\nTable.Th = Th;\nTable.TBody = TBody;\nTable.Tr = Tr;\nTable.Td = Td;\n","import { Checkbox } from \"../Checkbox\";\nimport { Spacer } from \"../Spacer\";\nimport { Table } from \"../Table\";\nimport { Typography } from \"../Typography\";\nimport { Accordion, Box, Image } from \"@mantine/core\";\nimport { ReactElement, ReactNode, useState } from \"react\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { cx } from \"@emotion/css\";\nimport { toggle } from \"radash\";\n\ntype SelectableItem = string | number | undefined;\n\ntype Props = {\n onSelectItem?: (item: SelectableItem) => void;\n onSelectItems?: (items: Array<SelectableItem>) => void;\n onOpenStatusChange?: (item: SelectableItem) => void;\n selectAll?: (checked?: boolean) => void;\n selectedAll?: boolean;\n defaultOpenedItem?: string;\n hideSelectColumn?: boolean;\n selectedItems?: Array<SelectableItem>;\n items: Array<{\n id: string;\n image?: string;\n icon?: IconCmp;\n title: string;\n subtitle?: string;\n rightTitle?: string;\n rightSubtitle?: string;\n footer?: ReactNode;\n subitems: {\n columns: Array<{\n title: string;\n key: string;\n expand?: boolean;\n shrink?: boolean;\n }>;\n data: Array<{\n id: number | string;\n boordered?: boolean;\n data: Record<\n string,\n {\n value: string;\n description?: string;\n image?: string;\n icon?: IconCmp;\n }\n >;\n }>;\n };\n }>;\n};\n\nconst TRANSITION_DURATION = 250;\n\nexport function AccordionTable({\n items,\n onSelectItem,\n onSelectItems,\n selectAll,\n selectedAll,\n onOpenStatusChange,\n defaultOpenedItem,\n selectedItems,\n hideSelectColumn\n}: Props): ReactElement {\n const [opened, setOpened] = useState<string | null>();\n const [rendered, setRendered] = useState<Array<string | null>>([]);\n\n const removeHidden = (): void => {\n window.setTimeout(() => {\n setRendered((prev) => prev.filter((item) => item !== opened));\n }, TRANSITION_DURATION);\n };\n\n const handleChange = (itemKey: string | null): void => {\n setOpened(itemKey);\n onOpenStatusChange?.(itemKey ?? undefined);\n setRendered((prev) => {\n removeHidden();\n return [...prev, itemKey];\n });\n };\n\n const handleSelectItems = (item: SelectableItem): void => {\n const newSelectedItems = toggle(selectedItems ?? [], item);\n onSelectItems?.(newSelectedItems);\n onSelectItem?.(item);\n };\n\n const showSelectColumn = !!(onSelectItems || onSelectItem) && !hideSelectColumn;\n\n return (\n <Accordion\n unstyled\n multiple={false}\n defaultValue={defaultOpenedItem}\n chevron={false}\n transitionDuration={TRANSITION_DURATION}\n css={({ spacing }) => ({\n marginTop: spacing * 2.5,\n \"& > div\": {\n marginBottom: spacing * 2,\n \"&:last-child\": {\n marginBottom: 0\n }\n }\n })}\n value={opened}\n onChange={handleChange}\n >\n {items.map((item) => (\n <Accordion.Item\n key={item.id}\n value={item.id.toString()}\n css={({ spacing, colors, bg }) => ({\n backgroundColor: bg.card,\n padding: spacing * 2,\n borderRadius: spacing * 2,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&.expanded, &.bordered\": {\n borderColor: colors.focus\n },\n \"& .subtitle\": {\n opacity: 0.0,\n height: 0,\n transition: \"all 250ms\"\n },\n \"&:hover .subtitle\": {\n opacity: 1.0,\n height: 18\n },\n \"& .textValue\": {\n lineHeight: \"1.0em\"\n }\n })}\n className={cx({\n expanded: rendered.includes(item.id)\n })}\n >\n <Accordion.Control\n css={{\n width: \"100%\",\n border: \"none\",\n borderRadius: 8,\n backgroundColor: \"transparent\"\n }}\n >\n <Box\n css={({ spacing, radius, bg }) => ({\n height: 54,\n padding: spacing,\n backgroundColor: bg.cell,\n borderRadius: radius.small,\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n \"&:hover\": {\n cursor: \"pointer\"\n }\n })}\n >\n <Spacer>\n {item.image && (\n <Image\n src={item.image}\n draggable={false}\n alt=\"Asset icon\"\n css={({ spacing }) => ({\n borderRadius: \"50%\",\n width: spacing * 4,\n height: spacing * 4\n })}\n />\n )}\n {item.icon && (\n <Box\n css={({ spacing }) => ({\n width: spacing * 4,\n height: spacing * 4,\n borderRadius: spacing / 2,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: \"rgba(0, 210, 255, 0.1)\"\n })}\n >\n <item.icon color=\"primary\" size={20} />\n </Box>\n )}\n <Spacer vertical distance={0} alignItems=\"start\">\n <Typography.Text>{item.title}</Typography.Text>\n {item.subtitle && (\n <Typography.Text color=\"secondary\" size=\"xs\" className=\"subtitle\">\n {item.subtitle}\n </Typography.Text>\n )}\n </Spacer>\n </Spacer>\n <Spacer vertical alignItems=\"end\">\n {item.rightTitle && <Typography.Text className=\"textValue\">{item.rightTitle}</Typography.Text>}\n {item.rightSubtitle && (\n <Typography.Text className=\"textValue subtitle\" color=\"secondary\" size=\"xs\">\n {item.rightSubtitle}\n </Typography.Text>\n )}\n </Spacer>\n </Box>\n </Accordion.Control>\n <Accordion.Panel>\n {item.subitems.data.length < 1 ? (\n <Box css={({ spacing }) => ({ padding: spacing * 2 })}>\n <Typography.Paragraph align=\"center\">No data</Typography.Paragraph>\n </Box>\n ) : (\n <Table>\n <Table.THead>\n <Table.Tr>\n {item.subitems.columns.map((column, index) => (\n <Table.Th key={column.title} align={index === 0 ? \"left\" : \"right\"} expand={column.expand} shrink={column.shrink}>\n {column.title}\n </Table.Th>\n ))}\n {showSelectColumn && (\n <Table.Th align=\"right\" shrink>\n <div\n css={{\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n gap: 8\n }}\n >\n {selectedAll && selectAll ? \"Deselect\" : \"Select\"}\n {selectAll && <Checkbox checked={selectedAll} onChange={(checked) => selectAll(checked)} />}\n </div>\n </Table.Th>\n )}\n </Table.Tr>\n </Table.THead>\n <Table.TBody>\n {item.subitems.data.map((row) => (\n <Table.Tr key={row.id} selected={selectedItems?.includes(row.id)} onClick={onSelectItems ? (): void => handleSelectItems(row.id) : undefined}>\n {item.subitems.columns.map((column, index) => (\n <Table.Td\n key={column.title}\n value={row.data[column.key].value}\n description={row.data[column.key].description}\n image={row.data[column.key].image}\n icon={row.data[column.key].icon}\n align={index === 0 ? \"left\" : \"right\"}\n />\n ))}\n {showSelectColumn && (\n <Table.Td>\n <div\n css={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }}\n >\n <Checkbox checked={selectedItems?.includes(row.id)} onChange={() => handleSelectItems(row.id)} />\n </div>\n </Table.Td>\n )}\n </Table.Tr>\n ))}\n </Table.TBody>\n </Table>\n )}\n {item.footer}\n </Accordion.Panel>\n </Accordion.Item>\n ))}\n </Accordion>\n );\n}\n","import { lazy, ReactElement, Suspense, useCallback, useState, useEffect } from \"react\";\n\nimport { SlideUpArea } from \"../../components/SlideUpArea\";\nimport { useToggle } from \"../../hooks/useToggle\";\n\nimport { Props } from \"./types\";\n\nconst Header = lazy(() => import(\"./components/Header\"));\nconst Footer = lazy(() => import(\"./components/Footer\"));\n\nexport function ActionCard({ header, content, footer, useHoverMode = false }: Props): ReactElement {\n const hasContent = !!content || !!footer;\n\n const initialVisibility = footer?.startHidden !== true;\n const { value: isVisible, toggle: toggleVisibility, set: setIsVisible } = useToggle(initialVisibility);\n const [isHovering, setIsHovering] = useState(false);\n\n // Handle hover state changes if in hover mode\n useEffect(() => {\n if (useHoverMode && isHovering !== isVisible) {\n setIsVisible(isHovering);\n }\n }, [useHoverMode, isHovering, isVisible, setIsVisible]);\n\n const handleHeaderClick = useCallback(() => {\n // Only allow click toggle when not in hover mode\n if (!useHoverMode) {\n toggleVisibility();\n }\n }, [toggleVisibility, useHoverMode]);\n\n const handleMouseEnter = useCallback(() => {\n if (useHoverMode) {\n setIsHovering(true);\n }\n }, [useHoverMode]);\n\n const handleMouseLeave = useCallback(() => {\n if (useHoverMode) {\n setIsHovering(false);\n }\n }, [useHoverMode]);\n\n return (\n <div\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n css={({ layout, bg, radius }) => ({\n width: layout.cardWidth,\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.medium,\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\"\n })}\n >\n <Suspense>\n <Header\n title={header?.title}\n moreMenu={header?.moreMenu}\n icon={header?.icon}\n user={header?.user}\n onClose={header?.onClose}\n onHeaderClick={hasContent && !useHoverMode ? handleHeaderClick : undefined}\n action={header?.action}\n />\n </Suspense>\n\n {hasContent && (\n <SlideUpArea isVisible={isVisible}>\n <>\n {content ? (\n <div\n css={({ spacing, bg, radius }) => ({\n overflow: \"hidden\",\n backgroundColor: bg.card,\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2,\n paddingBottom: spacing * 2,\n borderBottomLeftRadius: radius.medium,\n borderBottomRightRadius: radius.medium\n })}\n >\n {content}\n </div>\n ) : null}\n\n {footer ? (\n <Suspense>\n <Footer actions={footer.actions} loadingMessage={footer.loadingMessage} feedbackMessage={footer.feedbackMessage} />\n </Suspense>\n ) : null}\n </>\n </SlideUpArea>\n )}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\nimport { keyframes } from \"@emotion/react\";\n\nimport { Loading } from \"../../icons\";\n\nimport { Props } from \"./types\";\n\nconst rotate = keyframes`\n 100% {\n transform:rotate(360deg);\n }\n`;\n\nexport function Loader({ size, color = \"primary\" }: Props): ReactElement {\n return <Loading size={size} color={color} css={{ animation: `${rotate} 1s linear infinite` }} />;\n}\n","export const CARD_WIDTH = 350;\nexport const CARD_HEADER_HEIGHT = 158;\n","import { ReactElement, lazy, Suspense, useCallback, useRef, MouseEvent } from \"react\";\n\nimport { Loader } from \"../Loader\";\n\nimport { CARD_HEADER_HEIGHT } from \"../../constants/common-sizs\";\n\nimport { Props } from \"./types\";\nimport { isValidClick } from \"../../utils/dom\";\nimport { Box } from \"@mantine/core\";\nimport { cx } from \"@emotion/css\";\n\nconst Header = lazy(() => import(\"./components/Header\"));\n\nexport type { Props };\n\nexport function Card({ children, className, contentClassName, roundedBottom, noPadding = false, fullWidth = false, header, wrapperSx, onClick }: Props): ReactElement {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const handleOnClick = useCallback(\n (e: MouseEvent<HTMLElement>) => {\n if (onClick && isValidClick(e, wrapperRef.current)) {\n onClick();\n }\n },\n [onClick]\n );\n\n return (\n <Box\n ref={wrapperRef}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick ? handleOnClick : undefined}\n className={className}\n css={({ radius }) => ({\n width: fullWidth ? \"100%\" : undefined,\n cursor: onClick ? \"pointer\" : undefined,\n height: header ? \"400px\" : undefined,\n display: header ? \"flex\" : undefined,\n flexDirection: header ? \"column\" : undefined,\n overflow: header ? \"hidden\" : undefined,\n ...(roundedBottom\n ? { borderRadius: radius.medium }\n : {\n borderTopLeftRadius: radius.medium,\n borderTopRightRadius: radius.medium\n })\n })}\n sx={wrapperSx}\n >\n {header ? (\n <Suspense\n fallback={\n <div\n css={({ radius, bg }) => ({\n height: CARD_HEADER_HEIGHT,\n flexShrink: 0,\n borderTopLeftRadius: radius.medium,\n borderTopRightRadius: radius.medium,\n backgroundColor: header.bgColor ?? bg.card,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n })}\n >\n <Loader />\n </div>\n }\n >\n <Header\n title={header.title}\n titleMaxLength={header.titleMaxLength}\n tagsList={header.tagsList}\n tag={header.tag}\n bgImage={header.bgImage}\n bgColor={header.bgColor}\n className={cx(header.className, \"card-header\")}\n floatingElement={header.floatingElement}\n />\n </Suspense>\n ) : null}\n\n <div\n className={cx(contentClassName, \"card-content\")}\n css={({ spacing, bg, radius }) => ({\n padding: noPadding ? undefined : spacing * 3,\n backgroundColor: bg.card,\n flex: header ? 1 : undefined,\n overflowY: header ? \"auto\" : undefined,\n // Hide scrollbar while keeping scroll functionality\n scrollbarWidth: header ? \"none\" : undefined, // Firefox\n msOverflowStyle: header ? \"none\" : undefined, // IE and Edge\n \"&::-webkit-scrollbar\": header\n ? {\n display: \"none\" // Chrome, Safari, Opera\n }\n : undefined,\n ...(!header\n ? {\n borderTopLeftRadius: radius.medium,\n borderTopRightRadius: radius.medium\n }\n : {}),\n ...(roundedBottom\n ? {\n borderBottomLeftRadius: radius.medium,\n borderBottomRightRadius: radius.medium\n }\n : {})\n })}\n >\n {children}\n </div>\n </Box>\n );\n}\n","import { MouseEventHandler, ReactElement } from \"react\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\n\nexport type Props = {\n icon: IconCmp;\n label: string;\n badge?: string | number;\n disabled?: boolean;\n active?: boolean;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n};\n\nexport function ExpandableButton({ icon: Icon, label, badge, disabled, active, onClick }: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={active ? \"active\" : undefined}\n css={({ radius, bg, colors, spacing, buttonHeight, transition }) => ({\n position: \"relative\",\n display: \"inline-flex\",\n gap: 0,\n alignItems: \"center\",\n padding: `${spacing * 1.5}px 0`,\n height: buttonHeight.big,\n minWidth: buttonHeight.big,\n backgroundColor: bg.card,\n borderRadius: radius.roundButtons,\n cursor: \"pointer\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n transition: transition.duration,\n \"&:disabled\": {\n cursor: \"not-allowed\"\n },\n \"&:hover, &.active\": {\n \"&:not([disabled])\": {\n borderColor: colors.focus,\n backgroundColor: colors.focusTransparent20\n },\n gap: spacing,\n paddingLeft: spacing * 2.5 - 11,\n paddingRight: spacing * 2.5,\n \"& .button-slide\": {\n gridTemplateColumns: \"1fr\"\n },\n \"& .badge-pin\": {\n opacity: 0\n }\n }\n })}\n >\n <div\n css={({ buttonHeight }) => ({\n height: buttonHeight.big,\n width: buttonHeight.big,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0\n })}\n >\n <Icon color={disabled ? \"secondary\" : \"focusSecondary\"} size={24} />\n </div>\n <div\n className=\"button-slide\"\n css={({ transition }) => ({\n display: \"grid\",\n gridTemplateColumns: \"0fr\",\n transition: `grid-template-columns ${transition.duration} ease-in-out`,\n whiteSpace: \"nowrap\"\n })}\n >\n <div\n css={({ spacing }) => ({\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing\n })}\n >\n <Typography.Text color={disabled ? \"secondary\" : \"text\"}>{label}</Typography.Text>\n {!!badge && <Tag value={badge} />}\n </div>\n </div>\n {!!badge && (\n <span\n className=\"badge-pin\"\n css={({ colors, transition }) => ({\n position: \"absolute\",\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: colors.focus,\n transition: transition.duration,\n top: 0,\n right: 0,\n opacity: 1.0\n })}\n />\n )}\n </button>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { ExpandableButton } from \"../../../ExpandableButton\";\nimport type { Props as PropsExpandableButton } from \"../../../ExpandableButton\";\n\nexport type Props = {\n active: string;\n onClick: (id: string) => void;\n items: Array<{ id: string } & Omit<PropsExpandableButton, \"onClick\" | \"active\">>;\n};\n\nexport const HEIGHT = 70;\n\nexport function NavMenu({ items, active, onClick }: Props): ReactElement {\n return (\n <ul\n css={({ spacing, bg }) => ({\n padding: 0,\n margin: 0,\n listStyle: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n height: HEIGHT,\n backgroundColor: bg.cardHighlight,\n width: \"100%\",\n \"& li:first-of-type\": {\n marginLeft: spacing * 3\n },\n \"& li:last-of-type\": {\n marginRight: spacing * 3\n }\n })}\n >\n {items.map((item) => (\n <li key={item.label}>\n <ExpandableButton icon={item.icon} label={item.label} active={active === item.id} disabled={item.disabled} badge={item.badge} onClick={() => onClick(item.id)} />\n </li>\n ))}\n </ul>\n );\n}\n","import { ReactElement, useCallback, useState, MouseEvent } from \"react\";\n\nexport type Props = {\n onMouseDown: (e: MouseEvent<HTMLButtonElement>) => void;\n onMouseUp: (e: MouseEvent<HTMLButtonElement>) => void;\n};\n\nexport function Handler({ onMouseDown, onMouseUp }: Props): ReactElement {\n const [isDragging, setIsDragging] = useState(false);\n\n const handleOnMouseDown = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n onMouseDown(e);\n },\n [onMouseDown]\n );\n\n const handleOnMouseUp = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n onMouseUp(e);\n },\n [onMouseUp]\n );\n\n const handleOnDragStart = useCallback(() => false, []);\n\n return (\n <button\n className=\"handler\"\n css={({ spacing }) => ({\n border: \"none\",\n background: \"none\",\n position: \"absolute\",\n top: 0,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n cursor: isDragging ? \"grabbing\" : \"grab\",\n width: \"50%\",\n display: \"flex\",\n justifyContent: \"center\",\n paddingTop: spacing * 2.5,\n paddingBottom: spacing * 2.5\n })}\n onMouseDown={handleOnMouseDown}\n onMouseUp={handleOnMouseUp}\n onDragStart={handleOnDragStart}\n >\n <span\n css={({ bg, transition }) => ({\n pointerEvents: \"none\",\n height: 4,\n background: bg.card,\n width: 80,\n display: \"block\",\n borderRadius: 2,\n opacity: 0.5,\n transitionDuration: transition.duration\n })}\n />\n </button>\n );\n}\n","import { useCallback, useEffect } from \"react\";\n\nconst KEY_NAME_ESC = \"Escape\";\nconst KEY_EVENT_TYPE = \"keyup\";\n\nexport function useEscapeKey(handleClose: () => void, enabled = true): void {\n const handleEscKey = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === KEY_NAME_ESC && enabled) {\n handleClose();\n }\n },\n [handleClose, enabled]\n );\n\n useEffect(() => {\n document.addEventListener(KEY_EVENT_TYPE, handleEscKey, false);\n\n return (): void => {\n document.removeEventListener(KEY_EVENT_TYPE, handleEscKey, false);\n };\n }, [handleEscKey]);\n}\n","import { ReactNode, MouseEvent as ReactMouseEvent, useCallback, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Handler } from \"./components/Handler\";\nimport { useEscapeKey } from \"../../hooks/useEscapeKey\";\n\ntype Props = {\n isOpen: boolean;\n children: ReactNode;\n hideHandler?: boolean;\n zIndex?: number;\n onRequestHide: VoidFunction;\n onRequestShow: VoidFunction;\n};\n\nexport function ModalSheet({ isOpen, children, hideHandler, zIndex, onRequestHide, onRequestShow }: Props): ReactNode {\n const {\n layout: { headerHeight },\n spacing\n } = useTheme();\n const wrapperDomRef = useRef<HTMLDivElement>(null);\n const handleOnMouseMoveRef = useRef<(e: MouseEvent) => void>();\n const directionRef = useRef<\"up\" | \"down\">(\"down\");\n const handlerDomtRef = useRef<HTMLElement>();\n const wasCheckedForStartOpen = useRef(false);\n const shiftY = useRef(0);\n\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => setIsMounted(true), []);\n\n useEscapeKey(onRequestHide, isOpen);\n\n const GAP = spacing * 2.5;\n\n useEffect(\n function setStatus() {\n const { current: card } = wrapperDomRef;\n if (!card) {\n return;\n }\n\n card.style.transition = \"all 0.5s\";\n card.style.transform = \"translate(-50%, 0vh)\";\n card.style.top = isOpen ? `${headerHeight}px` : `${window.innerHeight - GAP}px`;\n },\n [isOpen, headerHeight, GAP]\n );\n\n const removeMouseMoveListener = useCallback(() => {\n if (handleOnMouseMoveRef.current) {\n document.removeEventListener(\"mousemove\", handleOnMouseMoveRef.current);\n }\n }, []);\n\n handleOnMouseMoveRef.current = useCallback(\n (e: MouseEvent) => {\n const { current: card } = wrapperDomRef;\n if (!card || !handlerDomtRef.current) {\n return;\n }\n\n const handlerHeight = handlerDomtRef.current.getBoundingClientRect().height;\n const diff = headerHeight - handlerHeight + shiftY.current;\n const newTop = e.pageY - diff;\n const currTop = parseInt(card.style.top ? card.style.top : \"0px\", 10);\n\n card.style.top = `${newTop}px`;\n directionRef.current = currTop > newTop ? \"up\" : \"down\";\n\n if (newTop < headerHeight) {\n card.style.top = `${headerHeight}px`;\n removeMouseMoveListener();\n onRequestShow();\n } else if (newTop > window.innerHeight - 100) {\n card.style.top = `${window.innerHeight - GAP}px`;\n removeMouseMoveListener();\n onRequestHide();\n }\n },\n [removeMouseMoveListener, onRequestShow, onRequestHide, headerHeight, GAP]\n );\n\n const handleOnMouseDown = useCallback((e: ReactMouseEvent<HTMLButtonElement, MouseEvent>) => {\n handlerDomtRef.current = e.currentTarget;\n\n shiftY.current = e.clientY - e.currentTarget.getBoundingClientRect().top;\n\n if (wrapperDomRef.current) {\n wrapperDomRef.current.style.transition = \"\";\n }\n\n if (handleOnMouseMoveRef.current) {\n document.addEventListener(\"mousemove\", handleOnMouseMoveRef.current);\n }\n }, []);\n\n const handleOnMouseUp = useCallback(() => {\n removeMouseMoveListener();\n\n if (directionRef.current === \"up\") {\n onRequestShow();\n\n if (wrapperDomRef.current) {\n wrapperDomRef.current.style.transition = \"all 0.5s\";\n wrapperDomRef.current.style.top = `${headerHeight}px`;\n }\n } else {\n onRequestHide();\n }\n }, [removeMouseMoveListener, onRequestShow, onRequestHide, headerHeight]);\n\n useEffect(\n function autoOpen() {\n if (!wasCheckedForStartOpen.current && isMounted && isOpen) {\n wasCheckedForStartOpen.current = true;\n const { current: card } = wrapperDomRef;\n if (card) {\n card.style.transform = \"translate(-50%, 0vh)\";\n card.style.top = `${headerHeight}px`;\n }\n }\n },\n [isOpen, isMounted, headerHeight]\n );\n\n if (!isMounted) {\n return null;\n }\n\n return createPortal(\n <div\n css={({ spacing, layout }) => ({\n zIndex,\n position: \"fixed\",\n top: layout.headerHeight,\n marginTop: spacing * 2.5,\n left: \"50%\",\n width: \"100%\",\n maxWidth: `calc(100% - (${layout.columnWidth}px * 2))`,\n [`@media(min-width: ${layout.canvasWidth + layout.columnWidth * 2}px)`]: {\n maxWidth: layout.canvasWidth\n },\n height: `calc(100% - ${layout.headerHeight}px - ${GAP}px)`,\n transform: \"translate(-50%, 100vh)\",\n\n \"&:hover\": {\n \"& button.handler span\": {\n opacity: 1.0,\n width: 120,\n marginTop: GAP / 2,\n marginBottom: GAP / 2\n }\n }\n })}\n ref={wrapperDomRef}\n >\n {children}\n {!hideHandler && <Handler onMouseDown={handleOnMouseDown} onMouseUp={handleOnMouseUp} />}\n </div>,\n document.body\n );\n}\n","import { ReactNode, useEffect, useRef, lazy, Suspense } from \"react\";\n\nimport { css } from \"@emotion/css\";\n\nimport { Card } from \"../Card\";\n\nimport { Props } from \"./types\";\nimport { NavMenu, HEIGHT as NAV_MENU_HEIGHT } from \"./components/NavMenu\";\nimport { ModalSheet } from \"../ModalSheet\";\n\nconst Badge = lazy(() => import(\"./components/Badge\"));\n\nexport function ActionSheet({ children, isOpen, header, navMenu = undefined, onRequestHide, onRequestShow }: Props): ReactNode {\n const shadowScrollRef = useRef<HTMLDivElement>(null);\n const wrapperContentAreaRef = useRef<HTMLDivElement>(null);\n const spyScrollRef = useRef<HTMLDivElement>(null);\n const intersection = useRef<IntersectionObserver>();\n\n useEffect(\n function watchScroll() {\n if (!isOpen) {\n intersection.current?.disconnect();\n intersection.current = undefined;\n return;\n }\n\n intersection.current = new IntersectionObserver(\n (entries) => {\n if (shadowScrollRef.current) {\n shadowScrollRef.current.style.opacity = `${1 - entries[0].intersectionRatio}`;\n }\n },\n {\n root: wrapperContentAreaRef.current,\n threshold: [1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1]\n }\n );\n\n if (spyScrollRef.current) {\n intersection.current.observe(spyScrollRef.current);\n }\n\n return (): void => {\n intersection.current?.disconnect();\n };\n },\n [isOpen]\n );\n\n return (\n <ModalSheet isOpen={isOpen} onRequestHide={onRequestHide} onRequestShow={onRequestShow}>\n <Card\n noPadding\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\"\n }}\n contentClassName={css({ overflow: \"auto\", height: \"100%\" })}\n header={{\n title: header?.title,\n titleMaxLength: 55,\n bgColor: header?.bgColor,\n tagsList: header?.tagsList,\n tag: header?.tag,\n bgImage: header?.bgImage,\n floatingElement: (\n <>\n {header?.badge && (\n <Suspense>\n <Badge label={header?.badge.label} icon={header?.badge.icon} />\n </Suspense>\n )}\n </>\n )\n }}\n >\n {navMenu !== undefined && <NavMenu active={navMenu.active} onClick={navMenu.onClick} items={navMenu.items} />}\n <div\n ref={wrapperContentAreaRef}\n css={{\n position: \"relative\",\n height: navMenu !== undefined ? `calc(100% - ${NAV_MENU_HEIGHT}px)` : \"100%\",\n overflow: \"auto\",\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n },\n msOverflowStyle: \"none\",\n scrollbarWidth: \"none\"\n }}\n >\n <div\n ref={shadowScrollRef}\n css={{\n width: \"100%\",\n height: 5,\n opacity: 0,\n zIndex: 1,\n position: \"fixed\",\n boxShadow: \"inset 0 5px 5px -5px rgba(0,0,0,0.2)\"\n }}\n />\n <div\n css={({ spacing }) => ({\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2\n })}\n >\n {children}\n <span\n ref={spyScrollRef}\n css={{\n width: 100,\n height: 30,\n backgroundColor: \"transparent\",\n opacity: 0,\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0\n }}\n />\n </div>\n </div>\n </Card>\n </ModalSheet>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { DEFAULT_ICON_SIZE } from \"../../utils/constants\";\n\nimport { Props } from \"./types\";\n\nexport function IconButton({\n icon: Icon,\n onClick,\n active,\n colorDefault = \"primary\",\n colorActive = \"focusSecondary\",\n size = DEFAULT_ICON_SIZE,\n disabled,\n className\n}: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n className={className}\n css={({ transition }) => ({\n border: \"none\",\n background: \"none\",\n boxSizing: \"content-box\",\n padding: 0,\n width: size,\n height: size,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : undefined,\n \"&:not([disabled]):hover\": {\n opacity: 0.5,\n transition: transition.duration\n }\n })}\n >\n <Icon size={size} color={active ? colorActive : colorDefault} />\n </button>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Props } from \"./types\";\n\nexport function RoundedButton({ icon: Icon, label, type = \"button\", disabled, active, sm, secondary, className, onClick }: Props): ReactElement {\n return (\n <button\n disabled={disabled}\n type={type}\n onClick={onClick}\n className={className}\n css={({ colors, neutral, radius, buttonHeight, bg, text }) => ({\n cursor: \"pointer\",\n border: \"none\",\n backgroundColor: active ? colors.focus : secondary ? bg.cardHighlight : colors.focusTransparent10,\n borderRadius: radius.roundButtons,\n width: sm ? radius.roundButtons : buttonHeight.big,\n height: sm ? radius.roundButtons : buttonHeight.big,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&:disabled\": {\n cursor: \"not-allowed\",\n backgroundColor: secondary ? bg.cardHighlight : colors.focusTransparent50,\n \"svg path\": { fill: neutral.whiteFull }\n },\n \"&:focus,&:not([disabled]):hover\": {\n backgroundColor: secondary ? text.secondary : colors.focusHover,\n \"svg path\": { fill: neutral.whiteFull }\n }\n })}\n >\n <span css={{ fontSize: 0, clip: \"rect(0,0,0,0)\" }}>{label}</span>\n <Icon color={active ? \"overPicture\" : secondary ? \"secondary\" : \"primary\"} />\n </button>\n );\n}\n","import { ForwardedRef, ReactElement, FormEvent, forwardRef, useCallback, KeyboardEvent, ChangeEventHandler } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { RoundedButton } from \"../RoundedButton\";\nimport { PlusSolid, SearchSolid } from \"../../icons\";\n\nexport type ActionProps = {\n onClick: () => void;\n disabled?: boolean;\n icon?: IconCmp;\n label?: string;\n};\n\nexport type Props = {\n placeholder?: string;\n maxHeight?: number;\n value?: string;\n disabled?: boolean;\n className?: string;\n onSubmit?: (value: string) => void;\n onChange?: ChangeEventHandler<HTMLTextAreaElement>;\n primaryAction?: ActionProps;\n secondaryAction?: ActionProps;\n};\n\nexport const SearchInput = forwardRef(function SearchInput(\n { placeholder, maxHeight, value, disabled, primaryAction, secondaryAction, className, onChange, onSubmit }: Props,\n ref: ForwardedRef<HTMLTextAreaElement>\n): ReactElement {\n const theme = useTheme();\n\n const onInput = useCallback((event: FormEvent<HTMLTextAreaElement>) => {\n const parentNode = event.currentTarget.parentNode as HTMLElement;\n parentNode.dataset.replicatedValue = event.currentTarget.value;\n }, []);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (event.code === \"Enter\" && !event.nativeEvent.shiftKey) {\n if (onSubmit) {\n onSubmit(event.currentTarget.value);\n event.preventDefault();\n return;\n }\n }\n },\n [onSubmit]\n );\n\n return (\n <div\n className={className}\n css={({ bg, spacing, colors }) => ({\n backgroundColor: bg.card,\n borderRadius: spacing * 7.5,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus,\n padding: spacing * 2,\n paddingLeft: secondaryAction ? undefined : spacing * 4,\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n boxSizing: \"border-box\"\n })}\n >\n {secondaryAction ? (\n <RoundedButton\n type=\"button\"\n label={secondaryAction.label ?? \"\"}\n icon={secondaryAction.icon ?? PlusSolid}\n onClick={secondaryAction.onClick}\n sm\n secondary\n disabled={secondaryAction.disabled}\n css={{ alignSelf: \"center\" }}\n />\n ) : null}\n\n <div\n css={{\n display: \"grid\",\n flex: 1,\n \"&::after\": {\n content: 'attr(data-replicated-value) \" \"',\n whiteSpace: \"pre-wrap\",\n visibility: \"hidden\"\n },\n \"&::after,& > textarea\": {\n padding: 0,\n margin: 0,\n fontFamily: theme.font.main,\n fontSize: theme.fontSize.regular,\n lineHeight: `${theme.fontSize.regular * 1.5}px`,\n overflowX: \"hidden\" as const,\n resize: \"none\" as const,\n wordWrap: \"break-word\" as const,\n gridArea: \"1 / 1 / 2 / 2\"\n }\n }}\n style={{ maxHeight }}\n >\n <textarea\n style={{ maxHeight }}\n ref={ref}\n onInput={onInput}\n onKeyDown={onKeyDown}\n onChange={onChange}\n rows={1}\n placeholder={placeholder}\n css={({ font, fontSize, text, bg }) => ({\n border: \"none\",\n resize: \"none\",\n color: text.main,\n backgroundColor: \"transparent\",\n \"&::placeholder\": {\n fontFamily: font.main,\n color: text.secondary,\n fontSize: fontSize.regular\n },\n \"&:focus\": { outline: \"none\" },\n \"&:disabled\": { backgroundColor: bg.card, cursor: \"not-allowed\" }\n })}\n value={value}\n disabled={disabled}\n />\n </div>\n {primaryAction ? (\n <RoundedButton\n type=\"button\"\n label={primaryAction.label ?? \"\"}\n icon={primaryAction?.icon ?? SearchSolid}\n onClick={primaryAction.onClick}\n css={{ alignSelf: \"center\" }}\n disabled={primaryAction?.disabled}\n />\n ) : null}\n </div>\n );\n});\n","import { ChangeEventHandler, PropsWithChildren, ReactElement } from \"react\";\n\nimport { IconButton } from \"../IconButton\";\nimport { ModalSheet } from \"../ModalSheet\";\nimport { SearchInput } from \"../SearchInput\";\nimport { Typography } from \"../Typography\";\nimport { ArrowUpSolid, Assistant, PlusSolid } from \"../../icons\";\n\nexport type Props = PropsWithChildren<{\n title: string;\n isOpen: boolean;\n onRequestHide: VoidFunction;\n onRequestShow: VoidFunction;\n zIndex?: number;\n searchInput: {\n primaryOnClick: VoidFunction;\n secondaryOnClick: VoidFunction;\n onChange: ChangeEventHandler<HTMLTextAreaElement>;\n onSubmit: VoidFunction;\n value: string;\n placeholder?: string;\n disabled?: boolean;\n };\n}>;\n\nexport function ActionSheetCompanion({\n title,\n isOpen,\n zIndex = 2,\n searchInput: { primaryOnClick, secondaryOnClick, onChange, onSubmit, value, placeholder, disabled = false },\n onRequestShow,\n onRequestHide,\n children\n}: Props): ReactElement {\n return (\n <ModalSheet hideHandler isOpen={isOpen} onRequestShow={onRequestShow} onRequestHide={onRequestHide} zIndex={zIndex}>\n <div\n css={({ colors, radius, bg }) => ({\n borderColor: colors.focus,\n boxShadow: `0px 0px 10px 2px ${colors.focusTransparent50}`,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderTopLeftRadius: radius.medium,\n borderTopRightRadius: radius.medium,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n backgroundColor: bg.card\n })}\n >\n <div\n css={({ spacing, bg, transition }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingTop: spacing * 2,\n paddingBottom: spacing * 2,\n gap: spacing,\n borderBottomWidth: 1,\n borderBottomStyle: \"solid\",\n borderBottomColor: bg.main,\n \"& button\": {\n transition: transition.duration\n },\n \"&:hover button\": {\n transform: \"scale(1.1)\"\n }\n })}\n >\n <IconButton\n icon={Assistant}\n size={40}\n onClick={onRequestHide}\n css={({ radius, colors }) => ({\n backgroundColor: colors.focusTransparent10,\n borderRadius: radius.roundButtons\n })}\n />\n <Typography.H5 css={{ margin: 0 }}>{title}</Typography.H5>\n </div>\n <div\n css={({ spacing }) => ({\n flex: 1,\n paddingLeft: spacing * 3,\n paddingRight: spacing * 3,\n overflowY: \"auto\",\n paddingTop: spacing * 3,\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n },\n msOverflowStyle: \"none\",\n scrollbarWidth: \"none\"\n })}\n >\n {children}\n </div>\n <SearchInput\n css={({ spacing }) => ({\n marginBottom: spacing * 2.75,\n marginLeft: spacing * 3,\n marginRight: spacing * 3\n })}\n primaryAction={{\n icon: ArrowUpSolid,\n onClick: primaryOnClick,\n disabled: disabled\n }}\n secondaryAction={{ icon: PlusSolid, onClick: secondaryOnClick }}\n value={value}\n disabled={disabled}\n placeholder={placeholder}\n onChange={onChange}\n onSubmit={onSubmit}\n />\n </div>\n </ModalSheet>\n );\n}\n","export default \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUEBAUEAwUFBAUGBgUGCA4JCAcHCBEMDQoOFBEVFBMRExMWGB8bFhceFxMTGyUcHiAhIyMjFRomKSYiKR8iIyL/2wBDAQYGBggHCBAJCRAiFhMWIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiL/wgARCAQ4B4ADAREAAhEBAxEB/8QAHAAAAgIDAQEAAAAAAAAAAAAAAAECBQMEBgcI/8QAGwEBAAMBAQEBAAAAAAAAAAAAAAECAwQFBgf/2gAMAwEAAhADEAAAAPkzp4J2qABGtkBO1QAAAiQAmAAAUSEYmUw5gAAEMAgDmFEgSAAAGhJAAkhDABDQwASWJAACWQDBDQ5AAEAAAAAAkBCKQaGKQESIlMAJECVAGElBzEkJIAAAAAAOYAAAAAAAAAABoZJARSJARJAAkocnMAAAAABBzAAkyQAIEoIMAkBBoAABBMkGgFJRMpgAUSpACgwCRACQABBBBkUyRFICGkEgSEUkAJAQSQAAAIpUHJRKGISYVtKYcwAKJjEymHMAQEkwBWSRMAAAEYs0KE7VBRJIQRKAchIhoSQAAaEloBJAAAAAAaGNCSJQIYISUkGgGhhIAIIYAAAABIgEUsaHKIDGhiiUEiBIgAOYY5gAAAUSAADmAAAAAAAAAAAaJCQJYpMBREgASSTmAAAAAAgBJokQS0AwABDAYgGAAAAAhDEMBRKkBAkDiGRSwiCZQBICAIUWkrFIMQDECIrAQJKJcwkkABAlQJABExEkgEItKYcwAKCiZWggSIASAAAgokHImFEolMNDQCSgiUCWgkolzAAAAIYCSAgS0AgSAAwRJCSAA0AkxS0MaEA5EEADEAwEMAkQQkzmGiKVAlJDASUAQSRDGOYBzAAAKJAABzAAAAAAAAAADQDAASICUwhwAFJyAAAAIOQgCDFJjIjAAAQokHMSIRLmGMAAAEMBAIYgiQEKZAJoiCSIAgpkkBAkCiSIAAEpEgIkVgIEgUS5hRKAExgDkAARMEgEayEpgASXMECQAQUSgAAABhYoBJEpqAACWQAgGJIECTGgEIEsarAAEkEADQAADABJQkyQ0AAIAAAAAAByUGA5NAQiQlJoBDIpUAAGSmAcwAAokAAAcwAAAAAAAAAAyasUiQEADmGIcFIS5gAAACSEMACDkAAhkRjAQAIkAhoclExGAhjAAIgBIQggpkJoiACS4hJJAAADiIxLkkqAMSUIIEgBRIBGJQJcwAAQAkEYsiFbNCTKYaEmU1YolBIgCABgABIFEymENAA0ACSDQJRGJnNYxYlJDmAUASWgAcgUEloAAAAAGACASZIBDEAAADAAEAwEMlMICKXCUwAJKAIIBkpgAAHMKJAAAHMAAAAAAAAAASRJEUgDCQhhIFUScgACBJjiHIEAAAgACQIcgCMSCACQAIaABJQASABAIUS5hgIAAAABhBCmQAAcQCShwAElJiEAJEEkABJQoADJWjHWzQwO47PH4Li9wgTEpgQJAQJAAAAAAACCmWhoaGJIAgABgCIrEFEuYlNXICJSHJRIgAclBJaAAAAABiShoEtAIYgAAABgElByIIBjmGRSQRKYYCFEgCACUwwAAAAAAHMAAAAAAAAAASRJEUhJEUhKYJKACWgkQJAxoQAAEkJKJISUMlMA0JIAQQJERSDGIYTDABQExGMiMlMKJQgSIAAY0JKGAgFEkgAAIAhwAIpSQUCQKJAABEYlyyzW+05e39P53170Pnflf539Hr8ekA9H7vA804PomgAAAAAAAIEiBIABQEymqJISZIJECSgwEkGhJikJIaCQAAAAAggAAAAAAwIpSWhjQCAAAAABgAAAktEpgAgkhKTQCEkgAICUwwAAAAAAHMAAAAAAAAADGSVAIpBociQAQcwAMAABABJAOUYkGOYAAIA5hJaGJKCCSIuNML+2XEY9sSSHIAAAAGiMWERSDJTCgkg0Ey0IIJIAAJKGIAABRKhJEUpIKBJkYkAAASUb18ez34Oy9X5v07r8X5R+c/SLe2PK83oh2/b4vC8PuAAAAABAAQDCZEEAACQNASQSAAUGEgIJKEloaHJBByBDFAHIFAAAAAHJQBkUiREkAgAAAAk4AAAAJIiUwJaASSDmASVAEMAHJoAABzCiQAABzAAAAAADQJQDJIEJIMEOQEgIOYAAAGAAA0AktDkoEmAANDQARWaABJACDRKYxxdzBAHMAkgCT6V6ny/e9XkfPXg/exWIhJaHIAUBJMMAEEShoJkiElJQAAQBQSUCQQAKJAAAAilRMU5755rZ6ee/V9Pm/V/vfnvxb81+odN3eTyHm+2SBiAAAAgSUGOQgBIIAAkgGgBKHMAAEEmKQaJIcgQAAAEEOQAQUiAAAADBKShoEMQAABIgwEMBDAQ5NAloCMTKYAIxIAAAEphoBJAAAAAHMAAADAQAAAMBocx3G/Dw3P3uYYSAAaGIAABgADQ5KAAxzAJLQDQAAAkQAJZAIYkkQ5AANAAkh1nb499rx+a+b9GJAAIEgIEhDEkABQJCRBCKUkAIIIkkChFIAokAAASUBs2ysL5d52+Hx/L6+jTbPbPp+rzPaPe+FM9PF/M+u838X6pJaAJAAAxAEQlpTWcxCJUShyaAEpDAkhJQABKYACJiSQ5NCBINAISWgFEgSBQAGAgABJSWiSEAAADCSgwABAAASkDQAACBKggABjmGCGAkgAAAOYAABoYCSAIAAkgSAhhMOQAANDEADAAGhyUAcgAAkhAADBACRAOREJJIgkgCS0AAAxAACBIAAAEkBFINDQJikAAACMSCSggAAokkoRT6B2eP59xeyi415a+m2vXQS0RSAbNstia60Xt9+Ow25em6vN0Jt6h3/Pdzv4/gfm/ZeUfPfaEwwk0AwAAAcwG9vz+s/Q+B5J879Boc/SSaJIBAkESQkoBjmAAFEhKYEMQxJQxoikGhgJIRgDkCgAAkpLRIEIAAAAAGAAIASIZKYQkyQAAARiUAASk0AIYAAkgAOYBgAIYxoikAikAkgBIA5q5AAMaAYgAcwwFByBQcgAGgAAAYIYTDAAABDECQUHJBASCABoSQYhoEiASUloaASUmSoJKSAACiQBCSoKRWUACTkmuGt0e3en8vwfN6fG8vrKBIFEuY7v0PA5Hj9j0/2fk+m7/F5Ti9q+24dOunOcvqY4tJHm/i/VuYaGOYUSwmAIABJRO1rj2ntePxPiezrZ7CGhyBDAUHJDGAgAIJMphoAABJQwEAQJSQAAkoIIAABJY0AgAYgABjkoAxCCTJIAAAABCiXMMilQZKYAAaAAASQcw0AwSIASAgAExGNDQkiXMA5gAIOUkIBgOYAAAAAAaAaAEgIEoCUwwQwAAEAAMQACRAJKgAAwkoCRAAACUNAACS0ACSkgCgJBARSCgoliElQBJSWgIp27461Nclq/S3035lyPP6utM6ee/tHrfF+U8H1HN8nqhire+386px7PMfF+vcwDRKYCMTJAAABFKS0KJcwxzAAoAwFJgNCSAADBDAAAAABDAAAAABJUEAAAxyaERiQAGICUmhJUHJAAxoAACKQaAIkmBKCDmGAAOYcFIgJQ5hjQAAJAEADASJSaElQY5gkQAlJAMBDBDkQRKYBJABDGhgEkA4EgaAAS0AAAAAAAAACASQAAYoEiIcklQAHJAEAAAABMUgCiUMBEYlQEklASoKSiQSQ3b42mnP9Ee/8BwPP6+7tya+PXyeHf0PR51Lj2atdcNb2WnPa68XHcXuame3KcHsuQSQ5ggAAAASjEpIKEphoByBQAAclByYgAAJIAAAHMETEBgAAAAAAACIxLEMcwDARGJAAAJTDEMikAUJzAIEtGa+fq3sfMeY+V9FX4dUphJaElDGgAAGEwAKJcxJACRCS0CQQhoBpAQ5gCJRKYJADQxgAAOYAAaAAElokhDk0AAkBDEB6V0cHmvP3gwk0CVAAAAAAAAAAQJECQAQAAAZLV9I9L5vhOH3K3HrQQAAABKEkIxLARFKgokkRIIRGLCEm434+97PH19+esy68s1qMevsezxtyc3E8hzeojpujzdOmvJ8fsBji3N8XquQTmoEAAAACSiYpAGhocgBQByAghyBQByBjQAAAOYIJIAAAAAAAkg0ISQUGSmAAABJjAAZKYBJQAKEpNAAAbGmXtHt/IeQ+P8AVVfP1sJhiSiSLXXmqsukACUwggkuYaGAAAAkQkgwEMcw5hQIORIAcCYYwEBKYAAAGhoEuYAAaGAAACAcgIOYaCTgkoBgJKgAAAAhgAgAASIYCBIWG3L9Y/Q/mfz15P2/A+b77kIUS5A0RiQSQSUb98K7PpEJIKJaIRZiFE9d0cPHc3oXfRw+4et8pWdHNwHn/QalNrrfhttOTmub1Ol14O37/B8a8j7HtOzxeb5fToOf0IxIOY5zi9UkEkAwQSIEgAghLAoTtUFAHIEMIEkMBQByISmAAAAGgkokGgkoCQAAAAQksQDABoSWhDAQJjEiJTDIpAAISmAAAAHKMSQQ5giQcwAAACJSQCiXMSQAAiaIpAIpYACGOYsLZ6kXxxIEgIOYBjENDkAAANDQJlNQAS0ABJjVExiXMBKYUSDmGAhoCKWAwQJEJLIwE318No5TPoAGAAAAAgGZr54a6RrLkIBJIOYUBKASc1qe/wDo/MfO3l/WggO17PH+ofQ+Y+a+D6Hzrg+g73p8zz/l9S534u89LwN7bn66/L49wfRYKaZrU6vr8fjuH2/qX2PiPBOH6Tmeb0eu6vIpse3muX0whFpzXFW9Hy+jKYEMACQAAAAACiWgGEwDABAloQJjAHJjQAAAAAAAAAAAACGAhJAhKYAEloAAAAQolzDIxJIgDmGBGJCUwAAkqDmGRiZTAAAAAOYBRMpqJYAiSAikECQmq7Oj7fKpeXv1Mt3MX1s6yLadbOQOYAAYDmGAAAASVcmhgADmElocgBxCmQEMARIAACJ6l0cHl3P3pIiQIExGAkgoJKSCgAORACRACUkIjEgDEAAAoCUJMUxrJMqAEuw6/J+k/S+V8H5fa8x8r6jcvjc78fr3q/J8hXt53m9PWz2hE7t8eo6/I4jz/ehFuj6PPpcuu+34cdLc5h6N51cFDyehhppBZoouX0ZIAEkQ5AAAAABAGEwDAAAAABCSDGgAAAAAAAAAAAAAAASUAxoAAAEloAAAECUAQJSQAIYCAUSCGSmAYgAYhoJAASQJAAEAJEAkgI3dsPrj6j8v+c/D+54jzfdBJBzDk0BICIxyaAAAAAmq5hgOYAHJocwCgxhJwJgECSCHICAADmGCAEgCERiwIaRCSon0rq8nzTk9YAcwktDBAlCiQcwkqAAAkQolEVkRiVEkgjE+h9nj7OnN5j530e3ph779D8DwPD7tFz9/V9Xl8Vx+x1/Z4/qPd894n5f1tdj1RTOazh2fZ43A8PvWG3L9aer8t8vcPv8AJ+d7IdR1+T555f00kElEgiUwQAAJAxAEJTAAAAAAAISQBjQAAAAAAAAAAAAAAAISSEpgAAAAAAAAElQJADQwAAAQRMQGSmAYTBAkQASTAAonPbPFF5ISQESQkpICECWglZ9HJpY9GKt2hBByBzASABzAAAA0NCWnNAY5CHMCWhoBocgQxgADQAMSHJJIJLQAAAACSEYkEAkhGJYBIggHIAAHEQWaCSrKBIgABRMUpMYlJQoKLRTY6c/pHpfO696czzenjrbd0wxVvu6Y9P0+XwXn++zFW07Rhrf0D0Pn/O/N+inMQi07V1s9Wix15rLXl4HzPo2OYIASYAgAEiGIAGAAAAAAAiMS5EJTAAAA0ACSAAAAAAAAAACSIYAAAAAACGAhJAAkgAAAAAQAMYTDEAQJKJcwokGjJasItJCACSElJEAktEkJKQ0uYJAQaHJDGgHIAAAaGhJlMNDHMSQSQxoJSQwQkgxoBhMCWgQksEEyRAEnBJBDABQSQQkqJAEJIAAKAlDkAEEABEoQAAJRGJSUehdHn+dc3pWunNVZdM7V+ive+D7Hu8L5/wDE+8qM+hQ16a2OvN2vb4nnfnfRqJx1tO1VE9h2+LyfH7GrTXHW6EkA7b0PA8/8v6XQy6XMMEMAAAAAAAAAAAAAABzCFEgwHMKJBoACRAEloSQAAAAAAAAAAAAAABDASWhRJJAEJTAAAAAAAAAA5gAAGRiQAHMAEgQJEAAAgGSQAIdgEJTDAiSBDkAAANDBDkxoJSQ5hoBjmA9c6/H8l5PXAkQcwwAcwJcwQBoAASQAFJwUHJQBJAEKJAIxJKMS5giUEiAmIJACAEwRIIjEgAJKhFaMTGJD0Tu8WuvW+6vP6Xfz+B4vcK2w1vX574629J9L5rgOD6DBXTFW6hOa2OnPu3x5jl9SESJROa4a6dl3eHx/D7evTTQz6WNAAAAAAAIYAAAAAAAOYUSDkoOYAGIAAAgAJIADQkgAAAAAADQkgAACAYAIUSSAAkgAAAAABJaAtOjjhFq/DpJABAkAECZEAxgCABJaASWiSAAFJyIOYZaWy3Tna6yGgkAADQDQ5MaJTEpgGhzAMEAwHMA0SkScQSaGAAAAACSIAABRKSSQVEgSSISUlxCSgSgEEShRKmRBCUxGJByUBKIpIRiUlnadPm8Rzen7v7fxWhabLTn4Lm9mk5e+NZ3NcMdba+eva9ni8xzenU49iiQcxhrfvfQ+f4DzvoVFpTWEWnNcVb2evLu6c/M8nrI0MulghgAAAAIAGAAAAAAAAAAOYAABjQ5QiQIAkgAAAAAAAAAOYAAUSAAEUtAMAAikETQAAAAAAAA5j1v2/j6+m/mnjfVEwBAkBAkDABgAIBJQDGiSAAkgGSmADPNMyNGNGNDkABJAA5honMNDmAcmgGNBJoBocgkhzDHMAxQByaAQwECQaA3NcNbPXFW6SEYlAORBJAEEBMSMSkgCShwikGhAAJCMSEYsjLNccW3L4W+3N0fX5mnM+m+h890tY8N4Ppfae353o78/EZ93j/nfQ3+/n8Vxe1gppFOWa4K6dT1+TR8/fXZdMUyRGLSmMUW7r0Pn+B836NCidHPoBgCGAkiGJIhgAAAAOYBRLmFEgAADCYAAYARS0AAAokAAAAAAABoJAAKJaCSiUmdq+o+1835V4f00kAAJICGAAAAAAAABmvnCLQrZzBAkAAEgROa44uwQAJKJISWiSAAAJEmhgAABKYEM9H6fM845vTBoCUmiUw5gRJDkwQxzAMcwDQyUw5hjQAAAA5hiiSYAgSIOW9rzfW/sfBeOcvueO+Z9VGJBAlQBJQJQokACMEkIxPda8vMV0q6bgomKWhAAyw15vqL2/gfGuH6Pzbzvou86PPnpz6C1t08HH8nsdB1eZ7x6PynjnF9Hx3H7P0F6vx/NRt5z530PQbeb5/wfQY621665rUhExi3ad3hcPwe+QxxYJTEYnp+vyabDvq8euU1jFtDLpEMAAclAAAAaCQESTAKJcwAAAAAAAMQAAAkAEAACRCiQAAAAAHMAQJACiQAEmUxCJkhDAQJ3r4addVEgAAAAAADmABRLmAAAIEpIBJBkld/fm7ru8PzPyvpwYIAGNAIJlzDiHJDACSCUkBFLQEphocmholMBKYY0A5hzEhoJMaGiUwwAAmGSQSBoAElDAQzYtl7D6Xy/BcvsclyeqAJJBSUSCFEpKGIEqEYlCSQSQBJ7LXk56m1ZTVyBRNlty/Q/s/DeQef9NwPB79hpz+uex8jxvP61Nz9sInq+vx5Z68Jxe5Ka5756+evUdXlYK6UHP6GOLKJnNcMX7Ht8TmOT1tOm+OtklozWpgrp2/f4HB+d9EAOYrsepjQAA5hRIAAEgaAAAAAAABiAYISZIEiGIBAlAAAAAAolJBoBDAcwACRAAokABDAAASRDAAAAAAAAAcwAAwEAANDBIADRKa5bV1qag0AxJESQEUhK0EHMMYiUw0AwmCAOTQyU1cmiUwxoByESmJIcxJAOTQEphzBCUwDQ5SRmvnhpogABAloSWCBMQEkgkgolACElRMYkCZIICMShJUSAIjEiQQCOt34eu6/J6jXi8x5Pa7Dr8r2vq8Tw3L2NrHeiieV5PUq8e1oQzHFvRvS+Z4Xh97WptCLTVRGLdl3eHxHB76iYRMpiMSHW9vjcvyetp575JqiMTX5dQAxoAkQAAAABzAAAAAAAkQAlDQEkA0JLmHAFMxiQBAAAKJDb2wctPHcghjmAAgkuYAFEuYSSAAAAAA0EgIAAJIAAA5gAYARiXMAASQACQAJKpKAAN2+TNGmskKXbb8PFYdxJoAAmiU1AJSAQAMlMCJTEpholMCWhoJTmGi+05qOm7HMOYlBzDmAcHMOYkjc0w+qPT+O+dOL6Tl+X1AQxJQAACiQQBExkCiygACElRKkomMSTKgCSghCJATGCSEYsTAJNppz7uvP0fZ5ZMXV8OZ5+/wBe9T5DgeD3/OvP+iUTjiwZrU7zu8Ll+b0tHPevy6ZzWK0Ynr+zxeW5PX1q6xiQkiKUnsu7wuG876Hc0x16aY4nYvnT8/cBCUwAAAAAAAOQgAAAAElxCS5gAAJICSAQwIpclATEAAQROS1PZvpvl7izwP5n6fDnoDCYAAAAAAAiUAAAgS0A5gCAEiCSAADmAAGIYhiAYwQAkACSoAktAAERyclEuYAhKY9J6PP825/QkhzDQ5hhJwAlKYaJIlMNDkIaJScxNVyaO715OIp0ESTEpiSAlMNEpCAkjJave9nicVzetqZ7CRDkokQkqCSAJKCCSCiUJKFEgTMagExFE7Vs+q24uJ5/SExh3O/n44nhef0lEgHs/ofN+V8ft69d8Zmvl6p6vy/n3D72pXXc15+m14fRO753wbw/udeuskZr59T1eVxnF7fpfpfMeb+b9LirdgAk9t3eFxHD7uOtklJkqk9Z2+Ny/H6+tXXq9/P5Dm9LLal3rychx+uxzDQAACiQBzAAAAAAAAAADCYIlgIYIcnEAARSwkokQCTGJBzHS+l5UU875vqIBghJAAUS5gAAABRIAEUtDAlMIAAIEgUSAOYAABllrzVmXSABICU1QokSACBCSxzDgESUiSHACU0AICUw0TmEOUkASISmspiSHJEkOYaHJolMSQ5ic1ZKYaJTDRKYaHJolMMESkIiljGgJzX13t8Dy3l9muy6kKJCKQBRKFExBLIxKElCiQSQjEqEUhGLdjtwRTxfP6MQiSXufo/Lcbn3cryetZ9HD7D63yfivl/WwltqVWfSqz1PV5HKcfsYa3it6H3/AD3u/pfJ/OPk/baOe/P8/okHMb+vPoZdHT9XlUfP312fVGJCUwoTmOr7fG47g9yEWlMQi0kOYrMOsHMAAAAAolzAOUaywmAAASWgABochIAACGKASQEUgJAQyKQBCiSRBzAMaBCSkgG9fHSptGJCUwgASSAAAA0EiAEgAgSUSAOYAAAAAFEymGA0NEUiQCSsUh1O/Fy2HaDk5ggSIOYUS5hjHMNDJTUGb+3N7V7HyPi/kfW6OXQ0SmJIJSQ5hjmJIy2p6Trxea5ds0OYlNZSaJTElSWSazmGgJTANDmAAS0IZkmvq3b4HmPL7Whl0oBRMUqJQJUERiRKElQExiQQEYlRZEUkIpjEwi0ImxvloU2wxZzG/ph696Xy/qvT5Pyz5f2sjJfPVz29L6fKoleJ4PcxReEWnNck1zXz7Hr8bgPO+hJTRYa8vXdvi+feZ9L2vf4XDef9AQilonMI7Pu8TjeH28FdAQEkJNZh1g5gAAAACJJW/bxenev5Pjvzv0GOl3MAAAAAAMlMCBKBIOYcQgS0IIAkhJARTFIkBAAASQIkRSSIRTlmmGugA5gAASoAAOYUS5hiABk5rjrYkQSXMAAAAAABIABDECQaECXMNCiXMEgBQcmhgMcxJBMMaGOY3def1v1fl/JfL+n1c92holJolNZTANEphyyTWSrlJEprKYkhzE5iU19C6PLvpp5Pj6ZAk0SmGCM1s5GvXRJBoSYxIJKgkgomIolJRGLRiUBFJExSGzbLu+zxeE4/a0cuiKVEhFMYmEWhFrvTnqabepd/geY8XuWW3LfdXn6GXRr10yzGS2fPcvpb9+e/24ON4/ZaIxZzEpi734MUX7jr8jyvzPppI2L54q2tNeTHF6Xn7nIQJaOq7PK9w7/nPmbxPuMVbOTmMdboZWYdYOYAAAAAAsurl7b1fN858H24Vs5gAaEliHMES5A0ElBiAY5gAAAIJIEEMilAADACSGgAQkpKSoASaAAAUSGa1HMYa3AGIIkMlqdV2+TyHB7IA0EgAAAAATJUBIhhMTmIRKi0lYpcmgCRACRAHMMBkphqg5MlNWExJDAcw0SmGiUxKYZKYESmJInas1ZTE5iUxKayRO1ZTGWaZbUyTWEWEMcwxzE0e7dnzPZRHy3zfSYK6AokIxKBKFEpMYJMYlJUTGJimMTFKiQilo7Hs8f6h7Pk/mLj+r4Lg96KSEYsEUxiej15aLPpid92eRzGXX3PpeBe0jl6dfC8fs3mnL0evF5nwe/6F3/PcBwe/CLY62lMQi2Sa9l3eJw3n+/Ya82hl0NGSaxT2Xd4fC+d9DltTHWwZLVx1t6F6XztzE+Sef8AQhNGW9MFNIRbYtlRcvog5gAAAAABRJIgDmABoSQABLmHB2qwAUS0EgIEgAgSAgCShigkoAGNDGgACCRIIIlDmAAABRIA5gAYgFEgCGA5gGZJriiwAAAySEAxI3NcfbPf+I8n8j6ug4vTaIpcwAORBzCS4KTiHJzEkNAOTQyVoaGNClJDRKYlMMnNXMNDJTE5rOa5LVnNZIlNZ2iSJzWUxOa5JpkmspiUxJEpgQktE5j07p8Tppy8N5vexxcAUTEUTFKiUlQimMSomEWSYxKIRaMTFMYsghnvn1nV5XG8fs61NQSVD1nbg8jw9GEWnNe26fNxxPY9vj23Rw+LeV9dtTltWprVuoto57YK39c9b5Dxzxvs8cW2r5aueyN7TC76ODk+P2JqpITV2L533R5/L8nq61NmiUwEIt3fofP8L5/vpOSaXXVwfTHq/I+LcXveY+Z9F2nd4Xm/k/UgDmAAAAAAAAAAGAgACc1SzQ5gAAAAgBIFEuYAASSCHBJEJLmGOICKZIAIpiliAyzXFFgAABRLmAAAYCAIJIADmAZc68tLl1SmAjEgEkMRs2prVs07WuHqvufIeceR9RTcvcDk5hQcgaEkgwlJUJzUkxoCUwxzDCYaGSmrJTEkWGvPpU2kiUxKaymMk1lMZJrKa5bUkic1nMZLUnNck1nNck1nNZzWUxJG9bPaKaurmJIBCSHfX4uBz7cUXSe5nn55ejpuiMWRCLQi0YmMTBZRMItGJimMSomKURi0YlEYlJtr89hMUdNu26vKturzuuvyeeY+naq+WcH0MYnJNe06PN8/4vZhFvQu3weO5/UinVz2z2z1abY629A9H57heD3scWZKa4q3nNev7fF43h9yEWjExictq3e/F6/6Hzni/m/S02HfJWUxa9HH9H+r8d4pw/RcH5/u9v6HgeZeP9YIEuYaBIIYwmBIgGACEMSQAiHJoEolMKJcwAAAAAMQAABBTOzbLVps0KAOSg5RiWgASUAAAAAAAAAAAxAACiQAHMAAB1nb5OzfPivP9oGSQ0I6bbm5jHpBzLQkqJEStAADGjLalt1cVLyd6iZTDRKYBoBkpiU17X0fDLRxvm+4iUxJDmJTG1fH07q8nyzk9mSJTXJMStXJNZzXJNJzGSaZLVyTWc0y2rOa5JpltXJNMk1nNXMSQwHMAAEEloimMWhExiRMUxiYpUTCLQiYRaKYRaEWhEwi0ItGJSYxKTGJRjrdCiYLRieg34tem2TTHtuvx6CnXxvD7MIveb8HP83o9F0ef7J0eN89ef8AUNHoHd4Pn/B79hty6GXTKYyzn0G3FYac/EcXtQicFdc9s5TGOtu17vC4Tz/occWUM988dbku17/B4bzvoEnLNNzXnhFpIhFrrfgq8uzmOL1mNAMQCS0BKYSUSiABJUiTAQxxBIGgBKAUHIHIggAaGBFIACSgSRDAQolDQJaCUYkAAADavlq01AAAABiAAAUSABZ681bn0ECQBKYCMSxoYkSACIEiKwiUwSAAISmL/t836Q+h/Pvl75f9L0sd5TEpgAlMEHMSmJzX3f3fh8do8Q8L7eFZnNXKSJWrNASmuS0SVyWrOazmuW1JzXJauWaZJrltTLamWaZJpmtTLamWaZLVnNQkhzDO1vwSi3FV7FJRIhRMUxi0YmKYxMItFKiYxOOLQi3R6cdVTops+qMWhExi2KLQi0Iskh3vT4/tfT4fznw/Uc1h6PpG3neZc/qRies24+Qx7vSvQ+dro1ps+uzth1/R56x18y5vY0899PPeMT2fZ49Bh3V2fSonHFstqKHu/r/GeGeT9jgrpjradoyzTFW/V9flc9z+hd7cfKcnqiJzEU7Fs+g6PN5Di9qc1sduX6b9j47n89/D/P8Ao6Ll9Lte/wAHkuP2ef5PTmq0JICUNAMcwBIqAIpJkAEA5hgA0CRAlABsaZ997njcH4nr6uWwADGiKQAElJBxCCZICEmSIwEghzAKJAACx156/LoQ0JIAG5fHTpsAAAKJBzAAAMAEBJEkRS5OIAAAIpcwwCRAl6d0ed5lz+jOa7WmOplsE7VY0MJAEprJG3riGKlyUkSms5iU1kjZ0y9E9DwOF4/Z16azms1clq5bUyTTNamW1MtqZbUzznmtnltTNama2eWaTtXLNM00xxYk4i0tlMqo0SURiUmMWUILQrMVoxMU99PF28U8Jj0dSm3u+vi8dXq8tw9iETuK9Oz4DPtxxeEWhEh6f1+F7Vv43zVxfU8vh6MzMjsuzx/VrcXN65crTs4nl9isy6e17vE9Z28buLcHDU9Tzzj9ryvi9uUx3HX4vAcPvQWmholNZI+gfZ+J8d836nlOT1McXyTSUwonvu/wOS5vV+vvX+H+PvH+5rMOyUxji3Zd3h8bw+4olG/tzfTfsfF00X8A8j7Bm9pzevdvz3zR4H6ExoAEkRNCSpSiCSHAkQikSAATEkEgAACUxGJANrXH0r2/G838X2NPHcABiAAEAkgJlFYpSXICIZGCSF33cN728nD+J7LEAokHMAwEAAAAAAAJUHMAATmIxIICSJIQ5EAAIgMciQA0SJTXFF5IaAnaJKgzNam1alfXbr9uGhpvp00lNZzDmJTGe2bmFEymJTXqezyfrns+W+Uuf6LluP1pzGS1MtqZrUyzTLbPName2ea2exfPYtlmtnmtTPbPNbPLanqeXPdUeN9N4LOYnNWhRIJMYmEWjE7itXXaEWjFscWjE+lzwdVWPBnp6me0VsVbYovCLM2Yinz6cUaY4tGJjEpPW68XEc/p71srK+Omv0HT5v0B0fPeY26/PuT26Hm9DIOYxxPb9vhee+b9HCLa9Nej38+COe5/SaIJkCOx7PH7Xo87hOP1+L5PYITmuGt+g6fPyK81zenntnq02lMEEdn3eHxHB77Q5iRlvnYac1Dy+j3HoeB1enJ9A+p8X8E/I/tLJTBEEyAKDk0ASIKZaCACUABJoAAAGhJcwokAclAHIiGJIAgAABMU5FMcWjEuTk4hxCTBKict6SmMGejmAUSEphDJqocscWAAAAAShoAAAABgCJoQGW1cNbhJAIYpOU5rkmuGt5ACAcgaJTDQx2jetlvIo6bSmGjJaskSmJzWdq+7ev8AHZEeF+V9cyc12b5X/V51Nh2qJlauWaZ70z2yyWrmtnba8nZ6cHLuhzXPfPYtls3y6JhpaZqY7LKtjS/AdVAcxJEpgghRMU44t1mDtuXfy3qrz86wiYRfHWcNdILYq3xReEWhFsdbQi2OLQi2Gt5pspy5bH0IxaKdu2WjTe915aPPptteXseny7G2PtWfJ8tZfQ4cunnsuuz05rTTjpMO+sx6nLWpr6L3/PcDxe5rU2UHLJNck07Ps8fheH3Nam0KzktWaEdv3+DwHnfRxiYpyTWSMcW6jq8miw9DUptCLZJokwi1pvx6me/q/p/Le+93ylftyfDnxv7i5iUQBYAAAAAAAAAAAMJgAAAcAikAAgSkhikkiFEgAACS6wEUqZaJRAJMUoBRIA5hBEhKYQDQCSAAAACBINDRfb8lBh2ADGCJIUztXx1M9hNzrzU+XQ0AkoY7QztPT8H0zt8Lwbwft8NbymAaAaHKSAcw5AEkOayJWrkmrRktWSLrp4Ms1qMOxmS1Mk1nas5rktTLNctqZrZ9Pry06di+fr2vj+p82/kHdycnbXYvltXx6SuXq3l+tx/o+Rynbxkkno+LsrOjl1NcmgGKEFknHFrHK19z68Z0RqLwicdb4q2w10xV0wxfHFscWxVvii8Itji7R6dfy7uI4DL1fMsPVZu2xrKdOzfK0nOtX9V7fA855fYgndmnL83pYq22b5Rrbevz0HN6WKtoLWV+boN+HjOT18cXvujzdOm+ln0dN0+ZQc/oaGfRgpoDmJI3dMOg6PN4zi9y+24dCm+hn0Qi0IntO/wuK4PenNVAkyy25KvHs9a9H5n3n0Pk8XR51JN/jf439tUioskgAAAAAAAAAAABzAAAOBIAZGAkFAAJADQJQAJIOsBGZZv64V+W4KJROawiyTlmmKtwclAAcwFhrz1+XQAAGSa44syw0563PoYJQxoQANF7rz0uW8UtBJRIMiMBiHMOUkXXV5/R9Pn8L5vvRiXJoaHIJIAHMOTQ0SmAyTV2ias5rOYlMSms5ic1yWrkmmW1JzXJNbzbjnNa+Ndi2XWbclPMbF8+q28/vo5+H3Yr1274bdsd6c+487vqOrgrejnEou+Tsr9+bLS2Wt9zHpou7zITMSJBONOOLY1oxbGtCJw007Pmm4yv5Z06aFdsUWxV0w1vhrfHF8s094eVXTPgGH0ejn0evaed1NuTwiPU7G3LRTbuL8HMztR49tJj3KtoJ9c38bkc+ymrp6Pfj2Yj508/6pJ9C7fB894fehFoROa1FEwifQfR+e4Tg97Qy6IxZzGxbLHF+27vC4Xz/fxxeETltTHF8dbXnR5+KL1OHYk5bUhFt7Tn7vv8LiuH3PsP2fgo9Xi87eIxb42+N/biTrV2AAAAAAAAAwkoAAOYAAAAYxAAAKCSQAkwkAAoJLrAIZGZSZTChGJABKgFjrhoZ7RiXMJLQGS1cdbiAAABRIA5gBICJIBJaNi1NetwaGRSJEJIZ7UtLZ01NnMSQxCJzANDmGA5hlppzdXrycFz+m5hokgJzWcxKazmMlqTmoZJrO1ZzXLNct6bV8BM5r7j1/P41vKa+hs3y29MNu+O5rhu68+1bHsMabs0p+zgtcb9j5X0PM+l8/GYnEuJUxFEj075r9FcPN/ovz7X0zUxGYxWpjmqljmYSgQTjThX6Xk2scN/PezLTjXFXTDW+CumOumKt9aNNtSwraspvz1emCwjamLXTm9C08vzino0/P34KaiIp1409w38SWnN89ed9fYM5o57HsE9n1ePwPD72OLBkmrR1vX5NfTooOfv16aht3xwV02rY9P0+ZxHF7kYsju/Q8D2bs+d+cfH+4vunzeG8/6CSGiUwS9S9L5j2fv+Z1s+jo+nyeevWpabanx98b+1uTQDCQAQBDAAAJABACYYAIYgAYwAiloSZICIRISmuSa4Y0AACNQkAilQlMRiQAJTEK2ACRAkDQAlDRu6Y6WewMQGWa4a3z3zjEqJQxoiJKSJCSskApkFCKQ2bZ2ls6au0kMAQ5SVACQSQxyEOUpqDROYaJTEpic1yTWdq+++l8l4dw/TY4vOaZJrmvnntT0nq8XjKduCL7N8tvTDZ0y3NMN3Xn39eaw05t/Tm2Zy6Tl12Iae3N0fn+x6d81+leZfSfmelty72HZhvhG1UrZc3o5a6Yb51fT5ymsZhELVhNYTWFohNYWrjmMVow2YE404Yvji+GL4K6a1db7DXFW3HTva1mprvU129hefwd96GN7mcZaY95HFw1fRoseygy7MFNdWmu7phc68VVj2emdXheKeb9b3XT5XnHD7vX9fj8rzer1evDx/P6OOLyRY7cnoPb4Pl/m/T6WfQzLbPPbPVz27zu8HguH35I1KbZbUuduL3H0flvF+D6TUptznL6c5rKYCy15fefV+Ru9vP6vfy+ctahja0nGyiPjD4/8AagBgASaEA4AAEkAwEADN/bGvx2BiAAGAAMQhiS0EEkEAwkCgolE5jHEiVAJTEYkkoloSSAOY2L561NWCGIlMJKgCiQcwokHMMmqpOARSxCSxzVwBSIb+mFdn0iJScwEkNDkElQcg9N6fO8y5vRlMCJSaNjTLufR8HjuH2dTLdzF1phU01yTWU1ZktTLakpjJNclqZrUzWzz3z2b5Z7Z5757euG7rhva829rz2GnLZactlPPuVrsVtnztmrfZz02sttrLbHaims63UwQ6Hg+i1tOap6/IhNQUxFBKVb5q6aG/FGUZiE1x2rhtWS2htz47RjMUzhWwRfUrt1vF18bst8N+Q1nWrpdUtbX5K61uVp297bzeajs14tW032FPQr+b5fh7Vhm9A38vzDL0+P5PasL8/bacHpt+D5o4/qL/AG4eN4va9M6vF835fYgmc17bu8Hn+b0qbHu1M9mdH2+VXY9cKX6fp8zh+H24xbFFglMYq37fv8Hg/O+hYGW2bLffi+wPZ/PtLfip5mgjfYmlhOPUY9Pwf8n+yMAHMMQgAcGACkgGAgAC16Oar5+kAQAAwAAAjEgBIgABmvTFS5IhGJUSScwoMlNcdbEyhjRGJZGJBzCiZTCAlMWfVyem+t4Pj/z/ANTGJBRIA5jLNc9s9SmrkQkiKQYhJcw0SQokACKXMOQSQ0CXMNATmoAkuYkhyaHMdX3+P9Yex+ffLXlfdcf5/uSRvaY6lb5JhzGSazmuS1clqZbU6q/PUXqTXe1w9c6PC5S23RX5cuuFbvXevz7tufdnG+5ejey1zVvu49Oammzn0Zaa4rZZI0cNrPr3sO6MxvYdu1n1OLYb88JruZdlV1eTU9Xk6O/Bq6csZritkpiMhMJpC0WXN3c76Hj47RjtWExgvXXmdVbSr0bGPT1nH1+Z9eOeYsKkns8J1YnjtNObp1X84UNOq9vx+rU4vE3rcZyev2XV4/Mc/p02PaFvOHe7+dxtd+c5/Sp8O4MVL7mmHRdXlxi3Lcfr4K6Y63vOrzvpH2fhM1Lea83teReZ9Qk/Tvr/AA3yz4v32GujRuXxtteTk+P10nPbNJlNfd/U+Q9T9D5irvnzzXQjffnHrKRb0v8ABPyn7I5SREBjEIIMJAxAIYhgAAAyIDEAEpjLemHPQARIiCSCAByUMtqYq3jEiQcwokQQJRid3THTz2JEEAkkAC+6vPoub0EZLV2dMtPHYNq+WpnsGxfLBXRgCGWOvPX5dCCQbF8sNNIpaOm34+Y5+0AYTDkE0IY5hocxJDkAIkhykgmJInatlvyaGPSJnNJSlNZI3dMMMXz2zz2zJZbZ22mGO9M987Dfl96v4dD0ZehcrFavEep5ezEWeG9jh02XN2ZqaqaqYigRC1J1vC1MlNWBONJRYVlGmG+EotZc3p56bXPH7Vhh37eXZr356jr8ei7vBqOryMGmAQmuO1VMbWXTUdfn4rUx2jX0zsubt5rs49SNY02wRKlZZblVxGdth0eZ73pKdTQRO2rpTNRj29Jbi4/n9XTpthrpji2Cmt30eflrHJcnsOY1M981s+w7PErc+rBXSl5+/Tz6LPfj7ns8b3Hs+as4r4ry/QeQ+d9MwNams0Y4t13Z43EcHvCUZZok+2+l8p7R3/M850cujGlHG+ZXq2F9j0Ypp8H/ACn7MoSkIQwJIJKAmIwAAACUwAKJAEAhgAjNpT2f6P53xb5r6NRKiUJKgSIAAbF8sNdIxKiZTEIsAAGW2eGuhEEyiasItOawiwXndxUXB3OYY5iMSG1plrU1mrjiwlQCUwic1jFnMESAASEBKYIIUS5IY0EmiUwRPWdHDyuHY5iSAcwJUHaJoaHMMlNXJk5rOaymJTE5rmtT0Hq8jguf1Os24Ok25OAx9DPfPZ0x29MdzbnsNua1347zXg9P4Y2qaY7NvLYRGYQIjNcVs5RMZrJMoskSidjPpw3xy11x2zhNM1Ngw3wy11lFtjPpacldMF8Lvi9u94fes+f09e/PQ93gc76Pztdv5pMI19MsdqRmNfTKddK/fms+XuqerkyZ60XRlnz16bk6qXfDXW6nm15u9+MvsVtW06anPo6/Xz6CvTq116vbzfO+H6DstfN2b5VdN+C4vd1abYa3y2p23b4XGcXudJ1eVy3J7Hc9PkVs31a6/QHb8x8+cX0/oXR5Hk3n/SaGXTgrcTji2ec8s1tNeTmeX1GOUYn2/wBP5T2Xv+Wrb51VnOx0Z5pfzh0uHTCc/Pq9vyf8r+tIlMADARKYUElzCiQYhiGhyAAAAAEKJBGW9FEyRhrcBINEUgQcwRKPQfY8bg/K9bFS4RiQJCZRWKyAQSKnKMS0XOmGMqc+jJNYROe+eKt4xMpiMTKYjEhv6Y6lNIpjEgEgAJEABzDmAIIcgIdHtzc9l0BKYBoaHJjmJIiehb8PK12q6bNDlJEphonNZ2ic1lMSmuSa5JrO1c1s8tqZ755757N8t3XnsN+az6OO324by/F1HNp0XL1bmW2K2KmMF8ozGO1JVvodHLY8/Vpbc+ammemmK2cZqpjJW+St5RbHbPNTQJRZTEVQaclbiXEtM40nW+auttyet0fn/SbmPZS9nic16XzVT1eRGa5qbaW3LjtXJW9nzd9X08PN9/m7GXRbYb1PRzVlp1a7Za3sIpoV1oo3p69F9OFXG3NY+gom1tz8xz+lnmnR7efS59fOcvqQiWdT0+Vx/J7PQdHm1WXXV49ntfpfJ+X8nv02PZfdXm9Ffk4Th9zVrpgrpircMk1xRfsezxeJ4fdxVvntnkmntfo/Mes93zVXpnqy5OOm4nHZmvT5Tt10pVvOad3zR8v+pzmEIYwEBKYtenl2dKc/w9wNCSwQ5AASRBLAQhjFExHIggGIBJYggAAxCSCGACgJIRkQcxKUYnJNcVbZbUx1vGJcwDk0OUKzKYjE2GvPX5dAZLVaMcXaBOSaY4vlmm9bOspsJESmAtb41VNgIAHT7cvNZdISmAlMNDQ5CJSEES5iUxKaslMOYmic1lavYdnk7N8eQ4/XlNctqZr0zWz2dMs989zTDd157Dfls9+T1vDl22NzzdcZpitnJbXvjOJrt+fT1w38ejNW2npnlpfDplhtRTWz5uzW1wnEwtEqtvLacXy10wXxcTjtRIyReUS0kTKDTOLAlcldXFstdb3i97pfN+l3MuzmvR+Z5n0vma7o87HNSYz576e3Nt5dEZVHTx0XRlp12yUupd5xbcp2ctW0hTWunWzZ8Vh6OKutVl1Ya6bsUsteXpbYVWfTzmfTY6cvMYelrU2vOjz+Z5fV0s+ic1xVvcb8PQ7cOhj18fy+puaYV2PU5QrMItd78JE81zensWz2tMfd/Q+W9N6/Aod+XFGtEvhjTHFtmJ7+vPkrr51OuLPp+U/mP1RhMAxoJMAAAAAAAAAAaASWiKQZKa463AkoMlMRiUSmFExSQAGIDJauGt2NCSDRGLCL3s4aDi77Dbn0ct0mU1jFiEYm57OTa1y5/g7nMES5jJamvnruaY6mewTtWFbZ752e3LTYdokrBKUs054K6KZcVcgutOely6AAkwQATmJTVjmGOYY0MEBO0SmrJTGSabl8tWuk7V9U9H5zbvj5b5/0UprmtTPpls3y2tMd3bD0bo8az15qXV3/ADOv5dRGjtyqYjMY7U1b57FNcVq4bU170xzGWGtZNnmprG1dnPSo6ebcy1mb2WgrOtyQhDROtozDTmpcJRaUTgvnmpeUTJYiSU63ZsZ9PSed9J0nnfSa+mHI+r8hQ9/g698YzGznvVdXDKNKLr4NzHossOil6uWyx067y/oknT24uG6+SstbnqdVLj2YovcX5e5nkxU08px9v0TXzOtnj+euT6bQy6e07PG1I02lVnt0WvHwufdkRezj5f5/0e5phqZ7YK6SmLK2AnoenzOA8/6ANu2X0b6nx3b9Pkc50cuWmlDa2jXbTjS6itxOHQRXSrfkK9ffW4/g75T9maJTAAAAAAAAAAAAAACAYCGElBROS9cdLOYnMY62cwokMtqYKaMQ5gSoOYjFgEMBJIIEhGAZr0xVuoZ70wUv1Hbw57RyPD3xiWiUwyETltXHWzmFEonMSmFVG1hAkHEADmGIAAnNVEgDJTXv+nz+C5+9zEprJCWlNbDfmxUvq56ymJS274701qq62V8Om05uPz65TGW1Mk1yTTNamfTLa0y29MN/fmtejj6Hp8ztcse149ssTitlgvnU9PLsZ6wtTNW2OVZtliRhtAmExb4a1etc1bbkUrtaQS1dyttilskS1NnPbYpfV0xjaufO+trlOttim2K2WSt81L4r1z56yTCa5K2QxplEiZRbLTW15fV6nzPqd3Hu5b0/laDv8DQ34sN8tHbm1dcVE69rYb02aW6Pg9LBelXrlxFujXXw0022condmvA83tYq3tLc2NNBzejBPU9Plc1z+pbbcVLh39/v5PpO/keGc30PU25vJPP+ljFlE4a3cxp5dHT78Hf9vg+Reb9Rhi+9bH6e9L5C9383m+jk141wV00b1s6uVjp6GefraRt0042bdRbm53Svxr8f+1SmAAAAAAAAAAAQwAJEAy2pirfLekazGJJRiQY0RSwJTXHW7EBGJBzCict6KJxVu0OTRGJSWiNZJnY1x18dnaCEYnJaiTjraUxCLAGe+eGlwCUxsWz1qaocwEkZLQ5rizupkS0Zr54q3YTDFWUOYnMKJcwDQ5SVcnMNAOWzpl9MfQ/nXA83seReL9eoTtXNamWa4YtmtRE5rktXJNclqZ7Z5757GmW7rz2O/Lb9PF2mnm+j8c2eWuprzQtQNHTLHesYlWppaU1bQph1tOLSidG8b1Zoda7lbbTLJDRvGarcrBMbVLuVrzdWStmnJW+5j0iVLHNckX1NeTNS+rrzxmmzn0Si2zl1Si2vpyzi8VVMCZxdxbfw7tvLs3sO7oOD6Ck7fD5D1vj9Dfi1dcrTl7ue9Dyte9J00rbpVvT16Nc6SueeHFOu4inE4eqk9Ffi57LtqcuvVpta68eW1dSuuOLaOfRfb+fsM+zvyeR8P0erGmWaVuXX652/PeLeb9RtXxyFjfn5Ll9fuOrx/oXv+XsL81B0cuOJ6Ln7OZ1y4t0EthXoZ5+yx0lFoWyqtMOVtf5L+P8A2dzDAAAAGgAJEAACSiZTWMWESkgJTEK2z6Z4M9ABzCiXMKJaEkEZLVhWwBCJYolAEiE7Vx1u0JIA0RW2L5a+WpY4iMTmvSETjraUwk7emMYnDW+OtglMKJt9uWoy6VEs2NMsdb2OvPrV01c9GIcg6Tfi53DscgUEmSCYZs644M9VCdqhKYcmhoRmtTsvR8Smw7abl7pTE5rKYkjNfPb2x1stZzXLas5pva8/vnd8v5rn6fSzjQbxt9HL6jnx9fhRlV0cmlpXYiKnWlthtpaUjLGncz0qejl3aWxJ0bN+lue1tKa7EVzxGwpkRZY7Trezy0z56KYYRKms40iqSEBKumemuenRmp0bWXTnptlrvmpsldLfixzSww79jPpw3xacNsdXXkhNcN8MF8MV8Lfk9jqPM+pq+ny+N9j4zT25Mdq698dPXLXtGznrXXhFzhvkhyvRldYb6Ua0EzxePpald8FNLLXlmZbZXF+fj+b1rfTlgd5fg8w5fc53n9G334aPn9DQy6dam1ltyb9+e3vzcNxe77b6Hy/rPZ87jtnTa500b78R0eWvE3tzkb4otZ2w63Tg6zk9LW146TTGhtamz6/l/wCS/XnMMECXMA0JLQSIAJUEloJNEUgwJTCiUECWW9Og9Lg57zPQx1soloACShKXZej53N83VX8+6iUZZrircJTEInJauW1NXLYMt6Y63jE5r0wUvv64aGW4lQy2pjrZJBQDLauKthIjPfPFW6S0bWmOCmmOLuYyTXYtnq01DoduTncOtyAJIciCMtqYq3lMZb0+iPovh/A/C+x0sd3MMY5ju9+HhsO2UwAOYnNZzXJNZTEprOYnNZzXJauS1MtqWu/J9I9fzHnVunsJ5qTWPRMcrCkaG/JimYy1L0zRMSu1y2qX53TRxpqzFvGGvZqxpkiIzOWIzq47Us877mWt/wA+6msZrp68+St5wlEwtDidXTOE13M9UjHaJRGWt0ZIvjtWdZjMV2/Nd8fq2nN6txx+puZdm7h3VXX5Vb0eaIz06IzTYz6ZRbW05dLbiwac97w+9ecXuVvR5vEe18PhvjGYnW9F18Npz9XN70rdab2drrNqNNeLcbO1Rn144tv6c+SaVufTFZRNrbmv9+Gzw3855/YwU2rJc3yerrV11s9rHblhE9b0eZRc3o/QXo/J3fR5erMaF60Mb60zmprztOrWrpmmljfm7dz3uW6vzU2mHMTvgjTUrt8xfJ/rYA0bG2XQepwUXm92rjs0AgCJBAAwkIYgSoMlMIRsa5+ze543jPh+zgy0USIASgGgmVBRIOYjEpMkIUSFz1clJydm/thoY7hKY2dM9TLUN7bCvw6EkCEpjNfPXpq0IZGLbF8sFdAaN3XDDW+GuigTIZJpCLAhoYwR0m/FzuPaQR6P0+f5zz985iSM2meKtwkq5hjlNUk0BlvXYvlhpeUxOazms5rKYyTXJauW1O06ODl6dG7tz2G3L1W/neluLq8stbXCv1xjMMK6YJV+ueGLxX5+d7OcdxlvUtVTrG2OKumktsI6POl7jfcpfHaimNHbnxySJwnFwy1tjtno60scdtHXENvLbHfPPTSt35rLn6MkTjtGemjiZwcWJhwlF9/Dv6Hz/o7fl9Zxel7PDp+zxkRmm/h6G3l2OGpry4NOffw9C+4Pepu3xOV9P5XHbLJXXX0xRpaYUnRjSTro13UW1qaWU4705Ubp77PHzeeq0vzUdOu8nKwznk2+THp6DXk8i4PoafDunNcFdLjfhuNOTrZ5/WunxVpy6OuOlGvHR0h07Kor0dHS3B3nBFuunk7fLQTGaaF8ubu5anWHzP8AKfrLQDRa93H719N4vinhepzflemIIEgYgFEztWMTKY298dPn3BzCSoSlGAZLVnMYq2nNVEwizRFKiWIYIcoVs5gMt6YqXDHW4ZbUw1vmtTBTSUwIlKFZByUAjEztEayEU5JrjrZzDle78dDz9gkRKYZktSEWxxdoSZq9F1cHO8vegJIAAAlJATmrQScxOYaGiUxKTmGTmma9PSPV+a9N6/D+dvE+61Mtsk1nNZzWdq971eTytOzHE7Gme7rz2XRyXm/F67nwX1cq3o43XWU0pda7uWtZrWUTiTzdtskW1bLBniQgppntTrsIz0v0XPvV9HI0ZazC2bTr3z2s99e+ehrloaZ6t46Xj6FalbpXLDFZkrbfy11tcMtZ1dMt7LfJS+zTUQGrpls566O3Pv49GC+eStslbTi1jz+lf8H0F1x+1VdXlUnb4jicGnPt49lhh6EJrpbcOtry3XH7dzxezRd3hc96HzsZrjmkbUhNOe6uSM10Glxnar1pX2igp2aFej0fPn3a1wZ9tLvyebY+pmmtRh3VOPZ0m3D6bp53jHN7lXl0+qdvgei38+w05Na+KloTbjY6NeNL1loza5rG1W3n8dXaTz9pSrITXn9sNqmvI2vU11gn5p+U/WGgEZb12t8dXHaFZAAaABkUsaLj0OP6E97yPm75n3dPDcRIgmSJTCiXMTmIVmMTFIMAHMNEIuQsujmxROjh0KJyXphpfZ0z1std3fn0sOhDJTARiZTGOtnMKJ2NM8Vb462aIxIZLVhEqJ3NcNTPfYvllmupTZQjEzmqSk7+nOpaGXS0NDmNm+Wvnq5ECU5r1fpeNzvD6etnqxolMOYlMdf6PjVGHXVc3bKaymJTDR1vo+N7z6XyfmWfqb+byfy/qMVLztXJNZzXLbPLeue+ezfLc257Po5Oy38z1vmw2Jw09M4TWRU6RqTaptfbiKe86dei6c1Za+SttiaNWwq7Lk2lOevpmlEspgidfTHPWdimuOa6elKTekqaad6XmSKUaF4zxNrmUxsZ6Vm+HRcfbGayicNqZImMxq6ZRTlhOLZ89dPbDcx2y10w3zyVtGWfPe/4ff6jzPpqDv8ABpezxJ10YJ2surdx7dLbi1NeS05vT6Lz/o+c9H5zm/Q+ax3zlWYzGG+dZvzad41a77NXQ8/VyW1Num1jTRacnFTfl8+6C1Hz99Rj3V2PVntn3e/m+q6ed1N+PX05oTXFalPeOYnTBGmzWd+2dHGuFOaad5StrQ0uHK60janMR0aNdu1tx5on4x+T/YSTBDkAAIJMBoSQEymsYnPpnb93JS+f2wrZzCSQCdqhGspLQ5QrIOYSQUTubYaWO7EMjEhGJZsa5amOzAJicxKYw00IbWuMUxicNNJIRGJyWripfa1x189ZWrjrfYvlr01Cc1ZCJSck1hE5r0yI06bNGxfLBTTYvlKYxVuokA2tcfpX6L4TwDxvrqPk9AhIlNd3TDVrr7N7HzHF4d3Ief7EprKYlMOa9D2+b616XzPjvlfVamW95OdHGkpic1zWz29MZWja0x3Nuey35fSNfI9O5qU3X5+lZt0tWTpp2tpywza3ynnNJUt6KVtrb1W/Sb3OvS4aOFd0cc631tM9vLWr3597PTPS+G9Na9MFqSTkrfSvnV3tmNmkpOtaGXeTHJK7VNd7LbBfHBau3npo7YzraM1E6989ul9/Dp0tcMldNvPSFq4pjT1yijXvUmtlz9faeR9XYc/o0Pf4GrrykIzG5l158+jPTfS248F+ez5vUueT2ea9H5mt6fMDHNMdqaOvPpTpnU2YaMuL1vmN63Nhy2qqdVJG0prLDt6ete2ty2bPDfDQ35Yw2qac3e3GzrrxpZzn0M4c4vsxF1DoM77FsZxKNOZ5rXKpr0YU9Uy1zja9nzZ8r+quYYoOQExIjCUmIlMOYkjHFpTDJ2rhpchKYilykqkpOS1MVLsUAlMY4tOaid7o567l6SRBJcxvbYaOG+/0YVvN0ymJTXBnrO1djTLvvQ4qKJ5jzfQxUu5jJasK2jEpOSaEsdL7euGnluGS1YRKiclq462y2pirey35tWmmtltO1VEksk0naNfPQlmtQQRMYndvlpU1cw0Z754a6NEphgiUmiVqyRKYlMNE5hzE5rktVzE0WV8rfTn56nROa7OmXbdPl81Xq39+az34/Vp8rqHDmi2raKffHJTQi1ZbWsu3c7aVp0lt2GvfHrOe3T8+uSc9DfmnW2lrnlqhMbVNMtLzi9X0ceWt9mmgiq3y2s72OOuO1KnamjeNmK6k2dNrNjitSzw3wXoQ2KatGHTHRtNhnbUvnY5bYL0xzTbz2wXps56Zq6V2uNZrQOg5t9TTLEvt1nWvTPS21Ta+4fdiV3T5WOaZ6bZK6Z6dGzn1Ti2OabuPdvY9sotznofOauvJlprONITnivljtmprr2pCaTRKL198pm3W0otgvjJOC2Wjrhmrrv47UG+FNpnoxpr126RlztmvTTsaOiow3znFnEuLcnthy7ppMu6z05N1Wpp0W+nL8tfJ/rZJghyAAZKYESmEkFByaEnNemGl1EztWU1xVvnvTDS4BY9HNgpphpfHW2a9MdLQi0rVjWzRta5amW0YlQJKJSd7bn0cOhEYnY0zw0v1fqebTcvTp8+wYaXJKJRKYyWrrZagFt08mRFLzdiSGa2eOt5zXHFti+WvTWw156/PocMk1ikLbfkntkqXqObsAL7TmrotqU1JM6bfh5vHtkrKYcmic1cmiUw0SmJ2qyUw5jJNZzWU12L5ytGW1NvTDc0w39+a86eH1unl3Tnrdc8cxKL183z2wp22CbYiEaa1dbC2PU82l7nTDpjjtXNW8ERmGjHM7VJcTob4WPP062mUk5KWktW7c+/j05YmE0rd8ITQrpBbbqotZta5btLpGtelPpGtG+wpniK61+mwb+dqzfm2Ka7FbSi2amlXtjoaRu0tGmvPbZU15gtbTz6y6Mqtkrmre35+m/5unFfIIzXLTWUWzU3z02wXxyRp03m/T69+fnfQ+d3ce3FfHBfnhNcV8XExmGJGG+InBfGFoDR1wr7038enntKZUVsxmTvxGzBVto126yjPDBphBGWL5K3qr04O95pcWkgraxvjqL/KXyX66TLVcmCGSmCRAHMStFn2cmjzdGvlqQcpWrltTFS8UgAIkRiZTASmN7q58eV9THUMdbhY9XLp4b5701Mtc989TLZmzrkjWy1UTYb4RK/n6GiUtjTOETq5bEMl6QrbY0y3bZVOHWTG3pjpY9GS1HLHW0pjHW2xfPXppmvSFbOY3t+ac1rufrsteety6JzXNpn9V/R/nvlOHseaeJ9NWY9TQDHMOYY0BO1fSfW+einzzyvelMNEphl/rzRKems7RJWVoy2pOYy3z3L5d7v5vE07N7bnsd+XotuH1yvkztnC+WK1K2dLGrWW5q+s4tpxpiT1eVegxvd5Wqurh2c74rUBrYZpr2WuOunpipjHF6+b6VrWNa3mOlBtSsm06bWClrWLPHXW0xU1aNPTLPS+K9ITGKY0LxozanvoVvuTjs1jVX2pz63mvjtnkrcMtb47V5fS/OW2om2WaETjra6nFzFJXbNamS1Nu2N8xxza/wAo6Tj7Y2rCaA0zrecXnW+zn15qa5K6XnF7td0edQ93g7FN51vC2eOc8V8sF8JRbDfOM12M98Vs6vo5MMzOFdMUFphGuzEbzK6qx10usumU547Z6l89S9LLLbJBRbhN8dONvQaUwnNzrytOuz05e0pn8R/L/r8pgGNDmGkJ2pFMkJOW+fvv0vieT+d3cp5HotEphRIA5gJ2jFS4je3w1MdscWnMbnTz+5e95HgvzfuYM9JIhFpTCMtqYM9c+meGl4xO9vz6PP0TtAjDTSc1xVvubY6uOsItO1clqa2ezQokGZb5qJhEpMa2cxO1c988NLwi85rirZiiXMe3fR/GblsvDvnvssNNFE7GmWOLdJ6HlaGPTVcnbCJaJTG5pjp02CSGhylMdn6HjQTyfD6skSmJTEphzElZzDmJTHf9Hn8Tn15bUz3zzXz2NMu234Nrfk2NOb17Hz9PbnrrXz1KWpfPCvjTTtrOKXOG3SZRnhpa4SROswtXAml00U1lbGzyvGu1HrHE178ieSy75TFlpy3zHmq9cK30a7Ya3vtOPsOjyO8yxz1rGNtutdbTPby2xWz1b15vopyzs6SuGWaU9eravzSLilN+tLXDqw3xyVvp3jj775JjmJ16WlLuM80TUtOJttVZdaNq2c5psXysL8/UMKq17uldicbfHp3stYzRIjMZa3yV0lFtjPpZs59V9w+/pbcPPd/z0osE4ukYNOfDfKKutpjr6Z5K3SdG+WxTUpfVXtqxniWBJOvfHFamKZxWygWOXRzE2q9M7S2EI0pKdVBh6F2pv78NdXXwXyf0YMVZ0OffUx1hE5LVBJaMlq4q2lKw6+bT59sOegiUpTXHFpIz6Ux1tltSETgz0lIEZ75463y6Z6+WrQJjEymLHq5qzk6oVnNpTDnoSaI1mUxji05iESoklkmuDPRoJSmJzXHW0YtmvnCtiXS9nn8tw+m0RiXMZrUwU0zWzlLBW85hG3bPd6eXBTSv5+mMTltWUxipaUxt6Y6ee4Bu68/S6c3H8/oBKYaHMSRK0TVCcw5ic1cxKYnMbGmW7tz6uW2aaKWe+expls6Zbm3P0fRwdNrwemYcdB081jj0VGtbrOtNa+PTJwVN+qwW2O2O1Mds0jFalZrSuteExrS56vdc25erxiOHd4zp20GXbiWmiESSzWpY35+r14Kqu2KNLmlOdnaop0er7eJbX5OUdNxbl3Md8mW1/t58innSqvGONaS2lox2rYbMMtZ6nntKJnFqPWvGO3ia9/a387rI5eBnso8+qcxfW5+sjHkraU1OjBF3MbM55b0tdeP03mQmvIdOO7S2G1bbDouq1nCM1UslbSi2St9jPphbOw5/SveH3dbXl57v+dUxhvlmprpbcjTmz1qOrhxWpEu+XtjNcldFNcVqJGrrhFEZjPTXT0zzVnDau9nrlprTbc2nLQjThcPY6q3HtXxijbhx3N63h/D9rOY298dnbLLMYqaVvH10vF1xhOYAlua46OG5Lf6OfVx1cxCtpWhigCTGJaJ2iFZSQaJ2iUxO1EnDno0Y62jFmgMl6462yTWEThz0Dp+/gqMtq3l6oxKiclq462DZ0zjDXz0lLNfPXz1De359XLXFW4KJaN/o59LHdy2L5auW0prlmuGt97bnDBTRGOt5IJhJkiKWCGBltTttuTh8eySJ2qyUxJVylMSmspicxltn3/qeB9Ba+F4Fl7fD8PtZr09f7PC8yz9Lf35rXfj7G/D6hhwaNr6V64rUodLzz03FNucegwvaY6qa4NM9HXDVmeS6J6fPGqnarr087HX0Dmv3Pt4bebW7+cx9CupvvTnYac27VK0V9dtzTm7a/ncvPTztO2sx69XLbpN/P2rZdNv5mvXayrGnWfMeH6Gtz6e/6vF9F38bpYrlnKqtpxO9r+Mde1bfNdZNitkiuvPEX6eYp3Tq7i3Bxkdu9GfI5d+Gumac93TD0jXy+Sjo5nD0rnTkpM+zavl1e3nej54WeW/l3bhWU31V9m2VrOPS0pb0TnPHaIzXay3kCZRadZtOb1Og4PoYzWi7vA0duIRr3z170mgV2KaJEZY7Z6mmGWL45rnppr3pJM6ztZ76umGWt8tdOf1y52b0ufXkrpb257PTkxS5fl9bjOb162m3O6erO9ct67F6wpfBW9jtTe3pX8fVU82tZz30OboQolzFt18tbzdCSI2dc8GejmMlq4aXIJOS9FE4c9M2mc5jDS8prYdnN7P7Xl+HfPe1rYa5L11sdQSct6RiSGOt4xMpiMTednHScfXircNrXHUx3naue+WKt41sktGOtpTEItubYaeO2S0ZLU189N7fn2d8vZ/ofn/CPk/qcVdFDJauOtpTGa+evnqGe+fQ9PBzXL6MkTmMt89fPVyAGjoNuWnptBMkWuuFbTWSHMdpry89F9RbJauSa9/6fz/uWvi+DY+7y/J6expnYb8uxpla9HH3lvO9N5uan6Oan0tv5aU+1LOixzmzznYzuprCY09ckVOka1lPbW9plxb0Kxruxn6FnzcpHX5pj7Fdl0our81hbKx15Oa5vTRR59eSabu3P0+3D0uvm61b8hzete68epLotuHp3JxmPpeaed9LpU2UTe78OWaqtvX+jw+6086r1pTbZ3OdcEr3n6Ea8vNt95xGUuKx5tT0sddOt282mz6Oaw9HBXTLNNzTDttPO5iOqjw7nLYtlCLXu3D0F+XpWHJXu66aq2hG13bkV8+sc13jvNTW0wlFnFnNXEwmMsX2M+jp/M+ms+f0NDfh0N/OjNYWzRGaaunNr6c2C+TIzGWukJq0yiyRjtnkrfJXWuvTlLXsIriWr5nfitNj2+d83tlqZ5z5rk9XhOD6OdotermvvR5I1nDW2TTLXpbPK87+fc0rWY2ofN7uf87qhWzllvSMTZb89dhvn0zy6U6nv4+O8v0cNL7GmaidrSlbz7qGa9McX3dcdel97r567i6cdbuYvO/i53zPRRs6ZQrZzGrlsje259HDoyWqomESJnauKl1BmS9M96aWO7QEYmMTvbYRThpeMTGLSmoXXdwU3D344sQz6ZzmurlshjmNrTJzGKl9i1MEX3defSy3BRITmrk0TtWaOj25udz6JzVzE5iUxltSc1y2pn0y2tcoxOa+e5rhv7c1jvy9zPB6Pjw8/rOecqa97Ktahv3HPTarMJo4tq6ZUu+aTXRvszjV2vqRtRU7Mdb39ubvMuTkd71lengeX29XHotL4bevLyfN6d7tw02XZpZdATmu3pj6V0+Pzs6ek7eHyGHreec3tejdfhdRfi1a38Y8/wCprMeuMSontOnyqXPoqc+qcx2vT5PrV/N6vTz9XTKURnrfBM8L0z2PPpWaZVE601N+Gx9RE7V7/XyfPeb19PPonNWjLavoXR4/EY+jW59ee2cU9HpxUVenvdPOtNeLgc/UUN6+GCL7c5YpnZnLrGO5ry56W3Kp3y2KaYyExs01x2ok9H5/vXfH7OvpzUvb4k66YrY4r4Y5pC1HFozSFqyiQSMNqZIvlroked6bU1dqPPs7HXzdqs+fcnt8dzetuaYZZpt3x2rY+U+V9p0XpcOpjpV828pqxFz3cu3vz6WG1j14StXLpG/rPLeN6Fby6uYaMdbOYlaJzXFS+Gl5TEYtKYyXpr5a9J3cerlpS83Rt7Y4aXx0tOYRjrfZ2ywZaSmLbr5tLHSu5ekIxJK06eau5+jFS2xrnrY6xTkmuKt4xOS1YwyWrr567u2GvTSy35q3n6Udb18HI8foOYkjZ0z08tghFsk0Ewic989fPUlta44M9JzGSa2V8q2uiiUZJrji0kWOmUUatbytEkOYlMSms5idqzmMlqTmuW9Mlq575bWuW5tz2G3NZbcncT5/ovNjzW1sN8duM9+lrTLTew68d8dPXn1bKLSd2I5e+1TOl+5+Jp6c4jeV3mfYOKrm/LV7vTHl60x41zfTc9z+hCY9Z6/n/KeX3vbOn57StTxjh+oUS5jsd/N1FsciJuZ59vTDqrcfc05+Fvv4Z5312lj0QiZI7Pq8rmse7Tps0TmspepdPi+3aeNhvz47RzVt+L12u9OHmKd1nnd1rx9O/UptnmnUW5os/P8Ak9vatlq113tOe424unvyee83s4KaovduKqp0ZrU9P6PE4qnbR4d7mAzzTXrpltTbth3e/mc+1srYb2nPMtYpszTLE7mfQWy5zfHUWseT1Oz873r6Mqjs8TS148lbSWjNGlIUwkiHE47UyV0pbuRb3lYSPPOT26CvTmtl0u/BJTkeX16zPpp8ezV6Oyl4eqMS7RkmrmActvbLc3w2taX3fz4YmczadNdaKiNDk6KPzuml493LJeuLO8K2yXpr5a7O2Wtjrub4xrOOttfPRocmiMTs7ZamG4WHTzaHN0QrbJesay5jJauDPSd63HTzVHL0aeO+S1d7fDQw6MtqRradqauWyTt64aOHQ5bOmWvnoDAlNc988FNIRbf259HLecxipcA2dMsNbqJaJ2rua4qtiGrW9vpjuzHO5bkxKYlMOYz2pGJJjJas5iz6eP1X0fC8w4fa1Mdsl6ZbV9W6fH4Wememdjvy2G3N2teL1Dijm+zi119tlsUvaZaSide+dfpTU0poLldqvRRtrZho13x49ehet1GVy54nkPP9FZac3V7+VnmPMPO+n0Mt1DJMZb09H7fn+Yy78tZyU0vOvyq+nRxPF7Nlpzdxv5lVXe714Sl+Uy9Dleb067DqhFnMM7Xp8jlsPQ166bN8s1qOY9G6/A9T6/n73k9Ci0jlenPEmujXBXVp77PDy126FOipz64Vnut/K4/m9Sky6yJcxu6c/e9Xi02fXzOHoa9ddm2V9vw19N9/Tn7W3F5th60YtjizBE5ic12b5d1v5XF4+jhjSc12LZ4otnnOw15ZnQViytlz966FdbRT0bzvd6atKLt8OjvnlmtFGsYnYmm1NbSc9tGammJfnJcVh6tG0rMummw7tSNcNdO16fJ5TDv1abJOW1OT5/ajFpTXc2y3Nss+tJ2hRO/tXa2xwkImdoxxXY2rd9VaXGNrSu9a2Ln05DyezHCu5eiMTO0bN62O+U9KSlV8fRo5XwZ6NDmNnXPTw3y3pjrbZ2y18dAxUuEpidq462kjLeM+uepjrrY6wrZJaJTGKt2iEW2NMlE5LU1stp2rjrba1x1s9trXHXy12NMtTLYNnTJmGt8Vb5rZ570stcKrLowZ6bGmWGmjBEphjQSaNu1NaLSmJTF1fDSW14nJaMlqdH6Hl/SvR4nznl62Hn6O705vPm9ltyz0rYbcu/rzdfHJ6Nzc/MdfNt4dVjSLejJW+vphX2U+1NS0a8zROnfnAptA1670s6a9dPRJ823YcNT0PNeT6HHE9J0efz2Pf1PR5fN8/pW7LRptVU2vdOXqduHladevXToejzfdKeb489Lgub1+w6fL6/bzJzl5H5v1VJj3Z4ihy68lqtAhncdPlcpj3KzvPQ8C2tzcbz+t7p2fJX1J5KndhbdLWnE9OXMV7N+2OlTosNOXo4x88y9TqdOLjsPRnS3aa+Z5ny+5p59GKt7HblxVv6N2eDwfN7EYnXrrii+xOcE9j0eXdX5/O+X2NWmpIictqI2747d8eu18/jcfScxhrdkpiSsIts2y3tMe1nlttOSitOkKmvWMeprnkS4RmtfeimmWaKY3cezzad+Uz7ZzGpntX59OGL6tNoRbPbOsy68NL7d8bzbi5DT6Cw6ufPplhtGKErN7Vu6TGYjRCs7NkrM9mvlbJpXdm1LnngiN29tybV3FtqWpYdWWxa1rdXVnXrno4Xzy2rNXNVYaTppS8e9Px9EKyolQjEymIRa16+Wm4eyVoULLp541toYbb2+GzplVcvXp47yRCLbOmOOt9fPRyULLq5dDn6c989bPXJNYplMRrM5rZdPLW8/ViraUmiMSGe+eCmjRktWEWaGdB6Hmdp6PjeceL9Jgz0SbLTC9vnymXRKYnNZErVnNXMZJrsaZ72/NGJy2rta4bWuW3phZb8lnryeo8/Hf4W0NKaVltnO1WkLRo686TRX1Jc3fTKilp19NXHQm9fXTPalbTo6G/JdZxwVPR5/H0K+um5ajRhrbst/N5Pn9PtNvL5bLtpM+u534u+tx+NcvvYKaWO3L653fNcbz+pZac+Guk4jjOL2OY5vSvtePSptU06es7vGsdebj+H2sNL9j0eZzOPdt7c/0t3/JXmVvJei3p9eCsm3hfJ9P6dpwUtp7TOnO9XJSW16OeXmc+69tz7U5+gcnV4Bt0UfL6FjOfSbef5vxfQZpzw10nNe16/H663J5jh7Fbn09Xv53a6+f49xfRZJp6F0+RoTPK8/owi2jn0okjYvlJG1bPtenyuJ5/TwV1zWzz2znNcdbQi2SauY3r8/W6cfSW5t6/JXS5uvXu2z6Bl0+c5K2aIzGK1NJbjL6bERWV1zK6kaWenNYVrRU7LvXiInPOe9bLbiPDu79JyTMpjHVsWiUNCsVeVdTC2njeZOWa8T0zs+mLK+m1M55aNaOb7FpwIVa8zxxUcul9tTm+Tbd3yzXZtaqa3vRSOGvL8mtn3c1ntXY59qjkvV8HVQYbauWmzrTDnbBS6id7bKs5ujY0z1stA29M8uudVydcK2Eg0bOmUYnDW8K2tuvjquXsaNjTLWz12dMsGeqOk6uHnubsx1v0Pp+X6p6PheR+R9FT8fcAKJaNjTLFW7PQfZ+c936vH+WfG+w0ufcmem6eChw64kpiUxKa3XXwWXRzc/xejKYyWrs6ZbOmO1rjtaZdRpx6u+PUX8/t8K2mcaGmdrjpsKY7U0b0w2pq2hS5ieq9pWvs07IHKZepo59GzEX+/nwR6jjy5M+v53n155aVldtuaWNsNbLox3zoufvhE7F8gttOf1/byvCuf3dTLe125Ol6PN7DTzuDx9TstPO854PoeT5fUDpt/Pq8umujf6L9j4Tp55vmTzvtqzn6+u34KLPo1V/R/R+d6Dbg76vNZMfA+X6bgeL3MUXw1vuTn9Gd/zGDs83DLla9erTo6ueTiJ6arn7a3HqaPRerxKbn9HqUZL8/j3P7HtHd8x6JPJ4RT1+W5fU6Dbk9I28vw3h+limavq3Z4HnXP62vXTDGmKt0Mz2ynMW+nN0OvDyGPoymNi2WCukYtCJSc9s9m2OWabd8c9bYMujetkkYFq2nRS59PcdfjdFfl6Ck+Neb9R02/n3+vJZ7cdjbLJfGNNbG+XOc3p56dHE59FLl1UmXZz2fV1f2PE5nLM7xjq1YSM1pyyjFcdY1atapK6tW5os9bWl751dSJ0Incs1a1xTXlfOtgqw52wYaqCLPsx6Duw3LRd2c9VgpbNMyZ7k57xg4OrheHr5Lg7ss0xVvGshjrfpvS8/l/M9Ahn1z3NctfHbWpcNbPVk5pltXHW2KLNNl08mlh0Y622NMtbLWUw5bWuOpjt1fr+N7d6Pz3gXi/V0nF3elex85V59HDeT7uzrlZ9PLUcfbvXxxWWfRyVHL2kOk6OPnsesROYlas0TtX1b1vne534fA/L+lDNfPb1x2tcdzTDb1w9dy5eK6+e5nDv+XPZptZY76unLqa8+nfOK0bRz99N2M+ctv1GMdvw9/h3qc9Jh6Fzbnrq7bSOlv51irQN6KvXUY9W5bKl5fTrK63OnLyXL6nT7+fzPP37WmPWdvi4ovTc3o463r6b3W3H6F1eNozNbj19bv5fAcHvcFx+1CtkX23Hq01qqdHofq/N2d+bznzfpNemvUbcGhTWmz6tjTLtOvxvofo+c8Hw93zvg+grsunDXSEWRsXz+kvQ+V3e/xa2bUFeuopv1NuTzTl9uNZ0c+i8147rTl5nn9GspvCLbumF50ef0N+Th+X2NHPoxVvltTXppOY2LZ+j9Xi+c83sWGvN6V2eFxHP6nOc3pYq3y2pJHRbcW9bDk8fSzzlFbYtlii+tTWMTa7caicMXr8urVz2RFOWaWOvN0G/m7unP6Hbk+a/B/QeM5fXAg5AoZr5/Snv/AJ780fP/AKJirdRKAD1r7f5Kct/W+5a6hOQmCBGSWRCmZE5nNMRicMUwm1Nt6yaNRJNoI1Yyo8aU/LfX59bHWLbqz1c1Jx7WXTnv9WPQXnlOK+hhet5t9/pys+vmKX9D6cKu0UPJthxvxnmejVcvTsXz1MdoxYM189i9YVQW2prTc3Tta5RidfLWdqzmsYkljraQoEtvXHTx32dctfPS26eTTz1xUvd9/H6r7PzfBeb6fEeP79t18fWdHFwPnevY2yr66bF8880xRbDF3Kc1uOjjrst5zDRYdHNt7Ya+euW1L7bl1r13Nufe159/Tm3rc96w9O4JkjBplGNOY6+S9wvz+zfy2075c3PVYRSpbW7Gkp1iKGOm7c+e2ZW3YuPx3D6DSprWZdW5bLQz6Nemma1Li+HM8/f2O/n8jj3Z7Z9D1eXv6Yde5uQp2WLPXaclz+j3nV492x4Dk9jhOL28cWQJt9OXFW9Vn0d92+JRV6KnHtUL3XlImhy6tnTL3f1vi7Ck/Ovlfa6me2rntr11hWyJzXPen0p6XyW16HiUM68bz+r2NuHk8+6py69LPbWpr6T3/O+b8H0OOLwi0kKW7bHvO3wvPeH393Tnt9uPmOT1sVb4a36Lfg6Tfg0tKfQd/G8rr3+T8P0OxfOaua2cIt0OvHvWz4fm9aMTKa5JjPbKaNWmurTfBW+OL55zxxac1s9eS634M9svQujyeK8z6X578b7gkAKCiWhJAAQkgon3D7/5XctMERhIxohCExFEYbtrbEppzyyQUzgmdOtMEN+1tqzZHLHLIiuiFSmBFfk53j01efQMloRbduPa9VOJ87WswvrY6pO91c8jserDDvlW5X6/o5qvHfzrwPYoeLtjEkN7o59HDoUTmvnr5auYz3zwU0lMOYjFrDr5oVnXw1nNdHDolMTmuOtxFt18uRXDlpCZsOvDpunn4HyfRxUuhgB1/peVy/B6IZLU3ejDFnfFS+S1Z2r0WvJR03zXpnvnn0y2b5drpzc/rTd257TXj3r8/qXBN/jOhvyyNHbmqrzbY7UW+VdXqoZ13YpoRrOa6VdoU2pG13bl5/Hv6LXz+htyXs8vBYe3pWroU31ebv5zLq3r5aFNsk12ZzrMumw159iIrK7bmmHUacfo/R43lnP7dLl2dh0eXdacd/pxchn31eXT5z5n0utnqkkLjXmCjx6+77/C9I38rwfzfrIxbqN+BnNZdnddnj+5d3yvgHB9Zw/B7mGmne68fFU6qrHqjEgGxfL6V9L5O39HwOIr26Ndr1j5hxe/FOKt9+2XSbefxPL6+CujCY939L5Hjcu/ksPS1a67VsqrDswRprU1yTX0jv8AntrTnpc+qsz6dPPfe15tPPo0894pzWz6nbguNeTmM+vFF5IrcuvBW+CmuGt5zXJNYpmjc0577o84h1XT5XYUfIXzf6hr10UiJaAjExSASQkoYEYn2H7v5HRxnXztCE5TtG7pGrVnlkvGxpSvhs3W9rQW37Wc32ZZldOBEymdmzNMZESiMda8dXGp5dMON5o6TfPlOTcrM9K33fz9LvPC+XtpY622+VnvlZXzxTHR1V+tdDGbTXK5VoOHs4/k6qTl6qTDclZ7Y0PF2BjraQgLfq5Ne1vpz3vD80PL/nvd0OffHS7mI1lyIX3ZxUvN1W/Vy13P0Ya3nNd7XDQy6IwlKUwjNbOUw0be+P0f7Hynzz5f0ujz9O7tz+k+j4XFc3pauexMbOmWzpjt647WmO1pj0bntL8vY87reXau344zWq359rPVzTmNLuZ5F12DOqr0X+ddTSlFXqpM+u1nDMr0WnDW13lbPXi6mPaefiorafO/H9Xp026bq82704uWx9HYpfNpz+xdPgeGcf09tOHUac3A5d3oevm+Zc/s+m9nz2Gt4XpvK9JGPUUp8m+b9v12nFwnL6uln0XGnLsWpQY9me+WxbPWpq5dLvwTtTNNPYvS+VoqdXmPmfUcfyenji2xfO/tlxvN6EIsoOQjLav0T6vx116Xg8Xn6HYTy+Z8nt1OfTGL6tNfQOnxvN+P3c00lMalNsk1jE+j9vgcJzexo5dGOL6me2W1M003teb0zu8DiOX1qnPq3tOfZvjJGjn0OQQi3Ta8N1tw8Ny+vpU6Mdba1NpzWUwoSmCG5phfdHm6lN+g24PU+vwfmb5/9I4zj9rHWygWkrCmVEggGgBNrvx+oej835P5n1HY/ReHY7ZqzLatbhoEatvekr1d67WtdnSNqbVuEadLbO1d282l7bF9LmYjWK6LKW1ZaxRo0rXraU5zLDRysVspiFZwY6TtCOg6qdr0V43KKfmvp4aKliJ1627Pu5a+WhjO9pTq+vmuVOfz01MdeP8AM9HluDvx0v1nreZx/i+tEEqEpjb2x2enHFhppYbxiclqxicdLW3Ty1PP1EAyXrCk7WuXTdXDTc3ZVZ7tG1rjcbc2hlt2e/JwXL37OuMYnZ2ywZ6NHR+h5f1/hwfOfdHJ8/oai21pjt64bmmHoM8PL7u656d/w9G9WdLbj0dubTvnTaVVmhM1cdG6z21KSvTbqcw6cWXRhi91px8vXs2oXNuTbjPzrn9vp+jzrTfzvW+GvM7PF+T6bAnu+zw/Y+SvgG3oVOPZ1/V43UObwng+t0899zXDqteC8tzbc00K3Vq0WHdznN6W1vyzq4rg9zHFoVlJt9eS0vhy3P6LmGhk5r03Rw6yfUe3wux6vG8N8363k+P1dHLpx1sk462xxeESJaJTHR78Vnry+udvz972+Py069HXPzjH1uf5vRrsum715Ly/NwPJ7MUhgppltTuOvxdCm/L83pwTgppuaYxTira134/U+753yLzfqNHPo39Oa734ehvhytOvf05q/Lp3dMM0Os38zhuX2a3Po3bZ32nLyWHoTmskXfR5+7fnqsezot/P9V7fnPDfG+525tR59HmfmfSOEUghJAAaAlL0z1Pl/rn0fkfjDyfuLf3efWhjrMpjY2z29Y0MrTMVWfakrVud5laafmb2lK6k57xO9bW2spteXtuSxw1pmCN2VrXOCaOY5jLGtxtm0jrbTx+UZTcreabK0VUOf49d7Smhz662eufXLDnf0H0uDjeHrqeXp3+nnt+jn67r5YTWli8sL0XD3c1w91dy9KiQy6UsN+at5uoIRM0QiyiZTDmFCw0yr89YRYM9s8Vb5bUxRec1ZOauYDJNUTmJ2pO0NFx1cmKV31efp5bhs6ZbeuFxtx+o80ec93P0eUeu+V37MUqOrz6/XGsvWzrHKb1tq01b1qqdPS5x5jfv2ojnqdmac7a/LUYehY359rTmqs+vr9fKrcezjOb1+q6fM6CMKm8cXzezzfJ6dpfm0mlrpy1WPXtGim814+a5/Rcu17vD9D18vaV8i4fo96K9Ntw+N+d9L01seMw7sMaRiVBDTa68nWb+dwPH7SGSmHMd70eby9Oj1/0/lea5fW4bm9Otz6dDLoyK+1en8t4Z5P1+tTVQJSHMICcx9Kev8X0Xo/O09emqy6+Fw9PneT1IRb1fu+d805Pbp8O5ohFsk12L5eld3z/mvB9AGpnvjTJGa1MtqWV+f0Xr8XyDzvp81s8FdIRbYtlhjTqenytCnRiTmtn3PV4+GLcnz+lnvmQ2bYzmuvXWK3e9Xi9X0eVxXD7fz34X6Ju7c9bzdcYKZUSAgSIYkoISmNnTLoerzOZ4/W9A+p+c2NKaeN7bqy3d6VHPbZ1M1Kxta03tJUxoVjbWE6NK7tmrNc1psJ0ZcWtntPQxSoTqWmyTY1psRHL3nn88a+K2WltasbFbamM0fJvtWp3HblxnHtX5XKoVtcbZVed9XHbufU8/meLorsNsNNN/ow6Lq5e66uHms9t6aZKR5n5Pt0nJ16WG9/3cDrah5Oy06uWq5eoSQst+eq5unY1zw53y2rZXzp8t2i46+Sp5erJNc1881q4luy6uHiuLvs9MdCuiNjTOU1t9McJrp2dctjTK415sNq7muG7rz2mvLtM/WvK7ej59ZxNL1+bjmavo4qjWttnWCsVuRv0Zsuiqm3KU9C+tx85l35b54s9rLXkvr8dDn19tfg5fPr868/6IiYpy3z1qabKNat9eLzVlMdDpy01drW2OhGlfTfsevx+h14+Vw9KxZY8d9m+fmfD7uvXTr9+DlcO7Sz2ikgBKx05u46PL854/bE22vLVZdJLrOjzbPbj9K7fB8Y8n7Ciz6fpT2vhvnHx/tann7e87fE894PfwU1ESmJzUEQi6hOa/Sfr/ABlx6nzm1W3mXP7FLz9+rXXJE9PpxcBzexp5b5LVjCK3T9PmWl+bkOb1dTPfDW+S1cFdLTXjwxfp9+C505OD5fY1abYq3nNcNbpIZJrOY3tObdvh2vV5Wa2Gjn1YKbWO3FvX59iYrZtauf5q+a/UMNdAjEgCMk19d9T5bx/yvqknrOry6XHrrcukk0MCEW7/AOo+ayXps60UpXjPers3tGxaNWKzm2pSuOY2ws3tL1lM8pihlmb62qhry3bzfmlM6ZcxXYOn56cB0WoYz2zEinzpoYaqtsWds946Toz5Dz+i20yraX0ufeMTYb4ZNaeh9fLy2OmSGtF7rTG56uSyxnmJtp5a2ylFy78XwepT8nZKY29coROnjte9fHV5bmc6ee2e+etls0ZLVyXphpfb1x1cdkSmLHp5tPDZzDHMTtE5rmvna9HJLSuSotDtXa1xuejj3mWPTPd05+ijH0LzO7puXfW0wperz9XSnI9NOm5tK3blhXWwjHi3o1M6yz2JrvRHH07dSm15px5KrDXn0ceu624KGnTwnnfQame2Wa2dsqam+9pha2y53HsCSJzXuN/O4vHv9B04aDSu1S+3tyb2nPezz7ERQ49vknnfS1+fQ4dLtx60XvNeTz7i9pBCUxmtTuunyeB5PYSclqRSz0Dr8bs+zxOM5Pa864PdwV02b5aWW+KtwilRLmJzW1347HXn5vk9PDTRRKHL6W9n4XoPU+cr8ezyDg+n2LZUHN6XqHb8/wCf83r0+HconDW4Wu/H6D2eFyeHo89zemoYouHQdHn0PP3575932+Jo5dHKc/paOXQEFoVtFO5pzkTii+xbLLame2e3fHIidqbmnPvac/adHkfOHzX6bXZdSAAAAJTBAPSfR+d5Xm9Pnuf0AYhRKPcvvfk8kztazv1ppWtFbHCurnqxSxmZJ04jZmK+rFFVZ1d9NatamY2IXs6UiIoySz2m7m2VOKU0WcR1fLXjOm1ZNeZjLTpXPWdaltels1q3m1a7m2160imp5OnPpS06MLLSlvpWe2VHjah4uvJVX477Fq9v6fk7dWuX9st6KcR53qeXeV7eOLQpaV6937fjWWuPnfh+11PVw8ty9xDTw3jE7O+OHLRRIZr5qJROYvu3gpeXslMTtW56OTQz1630fH+jufm8T9CnG8vp5759rOFf0c11PNZVr2PJt1/D2SnPQ35Kbp5pxXUtWaKrSlNdoZ9V25uBelGutfTfQz6ZzTfnKFbbOmHSacFNn3a9b7tufm+X1ec5vQ1q6Wl+epz6QudeS3vjyuHcTF5ryVdN+y38/XRt2z4fj9i205+87/nuY5/U7nfyKvHv8W8r6rDW6iWjNajNeumCmgAE7V7Po8zjOb1EZLV9n9P5fyPg+h9v9L5XqJx+aPL+xqefs16axiRPQ35+az6gUJTGa1PbvY+P9Q6fH+SvC/QtDHpSVCKZI+m/f/Peq9DwfNOP3eC4ff16a22vNf68fD8vr6GXRCLZ7Zs2r4+l93z3nPH7upnvd78VhOXKc/pbt8avLqzWp3vZ4tFh2UmfXXY9TmIxOxbPWrrkmoZZpltTJNJTGzbLZvjZ68nZ9fjeB/Ofo1Nj2gAAAA0NICASYwlIEKJD3r9C+VxQmiRktORFjEYtLZzNWuKIxQq4acJTCMM0wSsJlxNimrhBGFG7MpFra9unRlM6GmdvjFBtfh9KV1M8URiqhE3F6VGd+s0c5zTW4bQra87OdVil5t52r0nXlyvD0aXLvjpe43wqc9dvTPpvR86o4+qsw6O59LyuvpnLn08I8r6Csx32ujH3D3fC6TG/zt5npyK3l6sGeiidrfH1v3fD8j8D3YVna0yyXrrZaSmOo2xprV1s9ZTXJauxplOY6n0PI+g+XLxP0c6DHs2dMbu+GralrOHrXldvWce8Zim7PM0tM6jfnStZrXTrrhtSVNdCY38tOfjp4/L1Le/NWV3utuGy05N/G/n2Hs9TrwbDPl+b1OX5/Rur8tBj27t8FFuk05dGt9q+XZdHl8Th6tXnv0t+Tkc+30/s8Hzvk9q6tjw3L63ddni72mHVa8F7R5Bn63N8np0HH6SGbdsbnXn5bm9GEWEOBJo7Dq8rkeX1HLJam9rz5rU+jPW+K8P8z6vdvjvzl475P1uOthO7NNCugCJSyzTc159vTGq5+3DXRBBJxxbNan099B+cdB1eT4R5n2WrTbSpv6T2eFwfP63U68HP495M+hTzeLcntdd1eVu35+ey7fYfQ+b7W/F8y+Z9np5b6me+e+c1fQO3xKnPo5rn9HRz3jFslqKJy2oQhFp2rlmmW1Nq+NlrydR0+V5B4X3HOc3puYIlDQSAGNARSQAkDEKJAPZ/vPkMdLYc53Nm7c7IjmMkN+847NtO/EbURrVrVInNqeY1xysJvtmnFZQxInLMjbm1+aU2gZZdJhlS3vymkwV1oz1YrNGlFdpNmtpZTG1KHl2nE7swZ2hEWPZjS+f0VmPRc9fJScvVtbZW22FuryPF112PRb64dJpzdzvxcXl1+d+f62x04lFbx9eS1NrSlXzdLLLp5cczjzvlmqRireSJ2rbbc+9tz6WWuvayhmvTY0z29cN/fmyWrs6Y7emN+z2sp9o8P1cs4aO/LgvjSdPIrU1JaN60Vr01OtIyRNdG0st8UqTPpSdiadF0+R7bw15nt4eNy9Tn2voU+d4fw/VU2HbZ6c11tx1XL6G0jlM+twz3z7jt8bavj0EYeL+d9Tba8sJWEV6fp82GmHX256Zffx24jD0/e+v5vz+O3598X7PFWzOv6PO3Eef8vqwixJxAlS6/p8rluf0mi/6eDDL0z0vm7fLTwHyPsCEVq/HphFlE44tJBMSQyU1lMOShCLKJ9E9D57rujzfCfG+1Sdq2X1X9H+Z6No8d876mty6t7THt+vx/NPP+ix1uSzM9WuyifavX+Npc+niuX2MMaU/N3BirdyzWzD0r0PnNet+P5vV08+iMThrfb0xUJTGa2Ybd8bDXl6rp8nyPxPtea5fVcwQSQaCQAxoCMSAEgAFEgj2n7r5Kw0vl0l1ivrnOY0qxlkzevbAiZiiLGbbV75ZWaIRXRNKbdfhbQ1rx01Zt2nFDPLLKzTa1rX2trzOzEdLjlqL0OsUM1UJTXTiuwjqa35a2dTzzp1tYw0qW1cr6mOvYejxUPHvpY661LuVv3cvXUnjsdM16c/xdfTdHNxvB6HY9/mdR28PdRh5R5/rcDwephrfa0y1MtRM5rs6ZYq2Dd0x1M9ct6TmHMZLVlNd+2e1pTRTm0z39ubLeu5rz3mvNr2rszn6p5Xo+geb11HV5ejvy6GuNbvhrWpMwU2rta8tn35orGm2taKPHt0400c+jqOjzVWecx7+v6/F9IedTXjisPW2aXosO/n8uvTz33rYuJoOfu2bZ3d8ucy6cts+i6OCop07Fs9DHp9A7fEub8tbTfzbi96934u87fC6y/B84+H9/vzToe3yanHq5bh9fHW05jfvj0mvLwvL6kIkS0RTJHe9fk8Tz+ls6Y7N8vX/R+X9f08v5b837PiuH2cVb44vircCEUghkpiSHMdb2eR6z6HzfgHjfb6ue21fHZnOpx7ERTZ35/rf6T8v8o5/b4zl9iET2XT5fLc/pUOHdhppFOOt8tqXvR5/oPb4XlvnfTYa31c9kZZrii85rGJy2p2vb41jfl47l9eEWwVvKYUTkmu/rzbV8dq2N90ef5H4n2tBy+k0KZIAE5rGLWO3LYX5+f5/RaFEoAkAAAKJjE+/foXyOtSMGdtKkilp001aTklVUWuk7dm1N8Eo1javbckyczklv1pOI0lqy0xQpnaRgmdyJ2Irq2neiMkRpzOaI6nHPGcjveCNZWUNOaCNgo4zVFXza7EtHDTJeNu9LzTPjPO7cqImKLWumNVTboOvls7Z2N+euppkmmGmnUdHH0+ecs54mnTxvl+1z0Xs+7DWztUcPXmtTZ0yx1nBTSc1y3pktXbvnO1di1O/7fN895vQv9cNfbHZ0xsNebbvj1vF2es+J6q04arq8/FbPS0zrtc5TSm0jCtEcTzlO3Spvqyr67bquWHK4eje6cdBn19Frw4Jn2KPLza8Vdl2+V4+vxnF7GzamSa7U1oserUz2374idCmtrtzbM0qKdE0dPv53c9Xj+V8H0ZE3W/F6f1+FivTp78XgHl/ZU/J6NRn0wiYVsonbvnbTTLfn5bD0FEpIIZ7b6vy3lXH7Xtfr/IuY4Xl9b1/o8T5i8T7yux6sdbY4tGtiTROapMIsoSmPSvS+crqb6VdfUO75/wAJ8b7TXpqjoOrzui38/wA+876HHFlC/wB+H6r+i/NvBeD6muy6dWm3o/d4HmHn/SaOXRhrpsXyx1tsXy6rq8ux15eJ4fcrsumMWzWznNRMIloSbLXl7Xr8bHF6DLrhFnMbV8dy2Vxvw44nybxvtKfm7gAHMKJDtuzx+M5PW7/v8DqOjzvFvI+xUS0EgAAAAjEqJ9Z+x+Trcdrbr55yy3iV6uzd0nYTmmc022CVpyosc647MkROWpNlMkxa0pjhV3tXzLmdgyQ1ZTNmI3YjNFdK1tysWNaW2Nau9+a6GvEayjRb0UF86SK62OmLK0qzhrOOl+o7+Or59a3n2v8AbHWtG3fPJNbHSmpFqnn3qeXomi62wwVna1x76eS7inNb053i9LuNr8fXTzrzO3DS+OJy3pipfJenc9PFxeHVtbZTVJbWuIWnRzZNctzTn6SlfXfE9foea1V1efV9HFJXVvnvZb8l3efSbLPK1VNuh59923L5ffuqMe4rbRjXWptltnO2appYX5tKu2S2fpHR4W9S9tjfwDi+o0a6QideL9/3eBsw804foMGeuea6ddeu6fN1a67mvNZ35+w7fD8b8f7LRpt6r6XzXpe3j8Lz+v5Px+/6r3eB5Zwe9u468bz+hji0UiRDO26/I3L4cPyexoZdIEpo9S9L5vg+b1vov2vhcKaCnR5n5n03GcPtYq3jE4q3USGS1PSPS+e7bp8vwXxvs9fPVzHtXrfI1dejyrzPpYxbHWwTmvo3oeB6Z3eD83eF95irpGJjE9j1+V9Ae18N45yfQUPN6Vrpy3/R5/H8nr1+PVBZQaJzHo3pfOcty+pQc/oY62lMOYyK5LUx1vii85qomz25Oq6PN2L44TJNa/Po1a6cF5n0tZj1gDCYAFEg5hkYkABzAAAACiYxIei/U/MXfdhJbY2puarO0u07szvVXOVbXCclGpEZaTuxbNW2lrTex009s3dsUbkNzK5DPnrzHU53sxpumutaXEZxIzRG7WrNiK5YXWNa6b8t1Toq2eYmgrzN6aSmlld0EW1srWe2XSaZ1cVy0tRZ613L07G2XsF6eaXrlrXk/O9LDS2zrlgy0z2ruXz6/bi9E6PM17KC9/N+D2Yc2uhTXWi3Y9nDyXJ2SmJ2rO1dnXLLemW1LK+PVWpy21btl7B4/p+ieX30vb5Fb0cdbvywtnky15nr5cFmO2ednV16aWdvQ+VkV8s16a/Pq3YjnqderF7DXmyXy0c+jcil3pyU2XX6Lr5PD5+hq0v535n0igF3vw+jdvh9lGHjuXra+PW4ZK2lplba8z1w5Ll9T0Dp8an5/QuOnzrrbiKaeJ+R9fUYdkpiztjvWz5rDtwU0UmCJF90cFBz98IskgE5r6n6PznmnD71jvy+mdvh9J0+V8/eD95rU0y3ppY9GKt1EhlvT2/2Pj+46PM+XfB+/wBTLdJaASUAolzDGiEWjFoJBRPonb4frfr/ACXjfn/S61NvQ/Q+d5rm9Pneb0tDLoSZTAbV8PTfR+c4Pi9ury68FdMs0Cc1lNcVdIRYM1s0ETktTf15rzp87zbyPrK3DraAcwAAokMlqdN2+VTc/doY9MYkAcwAKJaHKMSEUkPX/t/lLTopsXW2luhpnu5xTZzoUmktFHz66ud6yk2mmcLxScPXZdGdl28/Qdtdu0yrXBEXVKmcZa632VrbHXpubbJDYhUdOGhtWr3rXb56V5yIxljSsJnouaM2duP7JpNoUUDZrTmdKQiuAs4iqztvXz3CppNVjrsVVPJ0TtDtGHLS86uTUw30sttHLRQnMY62yWr2fd5XTb8l5Sua1OBy7uU5fQ15ZrU1cdt/XDUpp0W/LW3nr9cObN6+W1WfWvK9H1nyfUreryqLt8mdbVPVySia3XGts57RcTyVU7a1NKKvTKtsEzZTjz+HpVGe9nfDTm+1WZ78v0Bz8NHd4m9PBXT0m/leb4evzfL6XQ68Mc96rPX07s8TnM+vlsO+kx7Pon0/j/Gub3uZ5PT6Lbjo8uq+15KDPr9O9H5rzbz/AKL2ru+e67bzq62fknm/T8Dx+1qU2UJTHbbcXJY9Vdn0A5hjR3vX5Xn/AB+vGLIEBOY9W9D57y3h96xvj13f4j5+vzXh9y66uD6V9r4T5Z+e/Rq/HoSZISc1s5zXVz2jEpIAkgAAhiiYiSBAPRO7wu89P5vy7zvpcNb+q+n8x57xe7S83fKY1qahmtmHpnpfNcjzerV49etTVzGW1dzTnw101c9oxMpic1yTWz24yzjeH3tLHox52AHMOCkokQyw35vsv6j8j8Y876vw3w/uYVsAAAOYBRIAkqHuv3vyd7vW6ivK4TQ5TgI5TS8fVrZXzXrE6f0uKj5N9vSOj7MNaYxzWn5tZ2M2NKdBvnWw1obV7X1r1atwmxmcqOv4N+jwi65r614rd6cv3ZV+sK0ZIi2yjcys625fqrzu7ciKuY3K115qlK6a1qMsLCk89S+xSa7LS3vlrIr8d5lz0c9DxdmnlrtWz0stdq9Oj6OPY6OfpL82FNvWnQZzFXmNo07MFNNWl9amuhXbT0ja0yuKPXPK7/SvN7XOVX1cXK+h5ML4k00tM8+enHdNLmlErRN7Gk1mue1GPMV7qDn9Owtz02HdtzWpjWxtlVZ9HR9Xnez083n9K6lo5fLutoy8q4voajDssbYUXN3StFttx7aOdw7sVbZr039OfptOSmpvR4dhLrerzOn6PO6HTk5y1/R44vJeT3vNPN+iu9Obn8eyESF/tx0uPVrV1SQaGj03u8PzDg92KVEsEeg9nk3PRwee8vr9V0efO+Pm/k/T4a3yWr0PTwczyelCJz2z9R7vC8o8/wChUAExSAAAAAKJBEUgDRkmvaej4fR9HnblufguD3tm+Xp/o/OeYef9HoY9OOLCcNbymNi2Xdd/hVmXTQ4d+OLbOmXs3r/IY0+L+N9jr56o3dMN/Tm5bj9ik5vRcxGJIADmAAADJNeh6/NqsevQx6YxIAAAAAARSQ+k/wBF+T5XztanKtB5/XubZa+d9PDbY0ySZ2rt611s73XbzqaPSl12YY8dN1GPelZher5teh68aXG9ltS33h2tVVzsrWzTNla7RuRGvaew5L9JxbWMY9J5/VjmeC9rho+mmdG9nW35tJVnnuqtB0RliOZ1rijMitdNcMrurUlgiIRNpSMOlNPK9RnrtWrsK2tK5tcI1maLGc6W16fHpv782a1KvPf0/Hn1tcaeb8tO05rI6Bj6F5/b13le50fH1VXV5tH2+ZraZ0XVyZGeppSp1xtebo4/oZbUx0tjppqZ9GOt67XL06PLoZ6OGr6Ohj16mPRSZdLLfTnsNOez34abLtr89/Rez53geL3+Z4/UUT3vX4/G8vqUnN2iRHS9Pn1OXVbzTlseux25u67/AAue5fTqMunuuryeg6fO53D0O86PJ2ppynP6PEcfscTyeqkwi0YkLvTmqc99eum7bPQpqEpj0fs8fzbi9lRKSgNi+XsPq/Lel9Hk7evJ89+T9n555v0MIsF3pz0eXQktAIlIQolJAEMQxQSUMSVAAlMb+3N9f/Q/m1LGvzd4n3PX9vh8jx+3t3x9J7/nvOuH3q7Lq16aMSYk5jpOnzLzfgose7Rrv676nyt90cG7jr43xe/q57czyetynD7UUyQAADmAAABRLmGBGJAAAAAABJUA736PwNbKdbHXd6McdLa2emxrls7ZV/J0uYsunDc3phhktXPpWw1yqcNMGWmtnpua0jNct4ttsur68qS0b+k9IVUxKzUiLxbXmYGSWtEbcRdZu54NOi4Ojo+DspuvDnO/mpOvKv2pY5RZ42p968n1RX3rnrTnr1JjdrFlWNQrNK4JjVlGixpOaI37Vp6Wr62tZzq8tGdNbLma6ZZi1thWrdY58lYtoppyu+Pu6Xz/AFOy5tNfXkzU1puvzqbq46np54TXayvZ46U/Rzxy35rVUdGfV5Vr5jnY6d7OOUz792/PgTqV27/fyOMx9PneP09SunSa8Wjnve9Pm205cRz+tfa8NpGHn3D79Hj2Tmvr3p/K+Y+Z9NQ4dsU7Ns+n6PO53HtwV0xVv6H2eLddXn8lz+nzPL6O7ph3nb4met923Ny3N6dRh3YaX5PD0FExiYRIn0Pq8rgeb0teutnbGqz3cxKY7jp83hOX1CF9ryi3O49UpjtO/wAPJpn6t1+D87eF93X5dKiwhJaEkEM3NMLrbi5nl9QIxIAAIEoACAASDPbPse7xdaNOU4fYkjsvQ8HTz31Kbej+h89z2PbzvN6WKL463RKYUSi/6PPtN+PPbLp9uG9rp4T5v0/NcXqwizmAAAYAIAAUSAAkkHMAAAAAAISSHX+14spjY1pXcvRadvJipMKX0sNguu/kUS703Nsq7l6K/m33+nnw53yWhG/0Y6OOjLnt57Xs57XWKXOsrJxAtK1ckTt2YZne0jLM4VMk2zxO2n0Lz79fwaymMtbbOWu3lrob5CNXXPn+zn53ppo6UrdKwmm7lNRrTUtFbec9Y3IrrK1ibFXNE1VbQznWzva2y07zq56RibfflxVno8bd15/d2XH09dwd9b1+dUdXm56a12/JobY1u/PlrFXvlOtslL2uGmG2fGbuipTiOiZxNZTpzKGeuKHNY92GmmpTXo9uTWmKHl9C105pTSJirf07r+fqY2mr5N5f1eZXLanV6cdVN+Z5vQy1aee+7amvNe26vJ5Xm9TcvitMoVvy/H6s5j3T1vjZ3z5zm9Suy2804PoO86fK4/Lu1M99emmOtklnpPV5PnHL6uCuhBEpiUx2HV5XGcfriNm1NeL4a3v9+PYnPb15oU24zj9bFW6SAIIAJEdf3eP6d2eJ4J432WKLyQAACEkAAAAAZNUlGJD6A9z4LYvTw7yPsscXuduHoerzNSmtLh36tNoxIRWhE44tr011c9sNdFAkAAAAASRGJSQAABAAwAAABAkQyKSHW+z41Zy9WW1M2mdl181Rw9mS1ei9Tz6vk6NnSmCtt3bGt4+qVo1s9JWrktXc3x1stMt63fXzWHbz5dKTSqWpObWy0ppGnhr0XZhU5zfdmOvWZ1ja0b2tYm1MwM9VhE9zy27jy+ig7sNTWmtdv4zdcm9nzbZ87yiROtaaXfON8tO0c5145oik1x15jXmsDfRrRMMdtul9mq9peVI6fl67fKd6sWvP01HX51L18W7jrq689fvz6umNbvzYJbOd9LbG35urT15RSvy34/pjUtPUZ1otKchh6utTTTy36jXipa7bsU5zD0LO+FXnvpZ73O3Fv6Yczyellmtppz9V1+P0c83n3J7VRz92zMdf6Xz1ZTq9Mzw8O5fcr+XuwV0rK6931eTxfP6WNa415b7Tkr6b0efV6t6XzF7rx9g5vH+P6HyrzfpIVt6P3eH23oeDlV8B8P7nTy6FEuY7Ho87jOb0sdbgEprOY7vr8ngOL1yQmc1jE9Z1eXUZdXZbcfl3B7kItGJSQQQSQAMk1cxireMSSIOQKGS1cdbEgAA9L9D5zmuf0eZ5/SUJCADe152ivy6pTXLNHLZtlZbcga9ddamuGumtTTFW6SAAAADAaIpBiEOJQAAAAwQkgAKJBEpgEKJuO3h2tsdzow0ufox0s5jY1zuOvlxGrjpsbZ6XN0bu+Ohz7KJ29sbHtwzXpTef12HXz33o8WtS1ZxdOrhsQgkhvbZWvThoywZaXPRjoyy2r0PRg7VxW0sNqZIjEjdKez0Tnv1fNffznT1phtEJrt521Na7+NomlrG7le75NKPs57Ln22s7b+GuStrDDow2ptZ6QmNbTLJDFakZz0NsKzo57DHWi7ODYzvo65Ypra4bU3TyxmkoU++O1Vb46dHwen13le75x7/yEM58/wDQ5o012rZ8Lj6WOl8NdNeuiR01+fo7cnj3F9BZXw2Jrp5602XVY68utTa7vydDrxaUX6nTi4Dm9enw7KHl9Cw6OX6Z9L47hJ25zm9Tjub06/n69Guu/bHftSkpv0XV5+tFqjn7es6/I7Hfz564XjHiOb1fMPM+lxUuHU9fme4+n8nvTj8v+H+gaOXQRIjrunzeO5fUjFkNE7ROa+q93geT+f8AQhZdHJ696vynC83r9/p5/LYejua8nkXkfWauW0UqDkoJMUgQAAJKDkAEMtqfXv1H5T8mfNfqGhl0pIhyIet+n8xyHN6nJ8vppIOYBRKCAAwEAAACGACEliAC/wBuLamnL4d6SAAAKJaEkAAGhJAADJasK2iAwEm37OHc3wctPDYNjXKw6cc189Dn33OjnruTrIjY2zv/AFOCg8rvxVvf+hxbm2VbhpZdeGSa8/53fhyts6562Wlp1c+jlrnmutS8716f0+DBWVZedXNynmd9l18+3tn0/VVQo2dlM5VdVO+n1fivKFvzb8t380pjVvG1Sbnmvp60qtonEblGratrjO3len6MrHKde0ZYbedooqujHGizxmv1z1b0xTBERmu1SdHXPouTSr2yyVnezvpaZYrZ7tLZaadf5vqcV6PjcHptyUdnt2fHdc/T4P34xw6KDHs3pzxJsb4+gbeZ47xe/as+Zw797Tn0M+jrery6bHptteXv54eJz9C9nl8Z8v6rHW0pi315r3t8yh5u+zpbk8O3NbPYvlZbctTzd3qfd4tn0cOnnrVU2pMev07q8O125ucx7PGvM+ppuftx1s5d11eXzOfVq100suiMS0B3HT5nBcnrA0Zr06bu8im5u/p9eLjuX08cW6Lu8v609T4Lz/To1ef0efjXq86fMPh/daefQolDmCAlEYmMS5CGAokmAAGWe3JW49aEESSABAAAMilQEgIEoYwRJEUoEiASQAgSYjPNHMa9dAAAAgktBIFEgAAABmvn9U+v8Z5Rz+p5P5v0aGAk9Z6/jVnL1Yq2kZtM1E2fZyuJ2+jn0efor+Xonatl28vsHveX5D4Pp4s7OUK2uu/ky6ZV3J05bJXzw53z7Zxie29Pg8/8b1MOV7Po5770Oaq49rz0uOg4+mwtTUTadeHcbu54uvxHu4TJaJWtM2kbyemynpOe2xEat4tMbUPVlkgRMkZqTuUUfTk4b1Ixo1bMisJjezYJat6a8xd4W1bRW6Z6NjUucbzRT3jBplb5Rlisota42hbK15+mt1x1Zz4/W2OL0rX03KtTZ5vl36VL03N2wi1908HRa8dRl1czz9+xbPLWdKumW1NXLfo+nzu16fJ8W8f6/tujyqWnRR83dpZ77V8us6/M5Lk9PWrqGa+frPqfNdZ1eL2mOfyl5f3nufofM1V3A8Xs87zd/v3p/I2mvJ4J5n1vOcvp12PTGLA0d71+PwfJ7GGtwJKJZ3PX5PB8frg0dX6HjfX3o/GeC09bzzyfp/QOvyvJeP2tamvRdvl+u93z3U7cPz55n1vG+X72tTWMTFNxfCemfdd3ieZeb9Fr00hW4hoSQAJTBAAQSASQaAikGNAJINARSAJKAY0ACGRSAADEKAkABzAAAAAAAKJAAAADJNfXfR+f4jDv5Xk9NDAjE3Pdw7OuOlzdEr1tuzj1stZWjJemlzdErRjpedqSmLXt5MxRcPZO0XPfw7utNDHXBjeVoJje2x163kZdc7/v46nm3lFtXDXRw16Tu48W+WHO9z1YYZWe1J6xU42taua5N73q597al9eNqrHd3PJa95ddPamhrSt1pOJrdY3aRZZTqXqlde0ad6bdJ1bJRXbo09KxRp2rs1b+cZ6Xq9st3NlrPM9GdnSLPG9Rtl0eDUtGhM9vx3ptsubm/B17egtyqmtZTfZ6eOOO/IcvpYq3yVaVdrrXj06bakXvb81Hn012XTvac9xpz9Npw2OvL12vm+dc3s1XP3UXP3UmPW5jUpre68vP4dmS1fWPR+d4nD0fTu/w+Mz6/Wun53zbk+g4vk9bVrrlh6x6HzXpu3i+J+f9X5J5v0lxphRY9YBntn3W/n+ccfrgCmXAR6D1+T57yeughY9HL6n6vzHH8vq0PH6Ndl0RW3LY+qej8/u9PBwHD7nH8Htaue0ItGJQzb0w9w9f5Pw3x/rdSm8ay0MAIpCSABCSktEkAAAABFIBJCGISUlDEADEMQAAolzAKJaCRACQKJBzAAAAQSQAAAABkUg0BGJSbTq4yWa+dhvjXc+956HDsaUpOHr1cN3MOYtezlxUnVy2w53nMdD6nm57VvunDkfO7sVL1/PvOYcwFr1c2pnp0HZx4JkvW97eey6MdOsKs6OOu7vXuuinFYtGlsdLbOueHC9l14usTtD1jJZ3GVrOjfxm0rGneKvejhs0nR0pYZzsUjl+qmWK45WGar1ooSMRuUi1zYEbtZ5/fLHNa+0b9GaltPTLYiOy5L4ZZaW6Dk24Xqz070pLKauu/EcXzen1G/FQ5dO/OPL83pep9fi8Fh6XX7+dwHJ6/b9XlcLyevkK/Pbsuryspk05/XacVatyEdPjPl/U3evJoV1vr8srV1q6wpe725KOnTzXP3SmPQ+7w+P5/SrsenNNeu7PJ9H7PA7ynPx2Xp/M3jfb4aaRSDiNvXG205s1Z5Lm9KMSpSQySOt6fOz3zrovy3H6rQTNhfDDE61NQtduX1Dv8Kopp5n530WvTXHW0ItFIEHMSmIxaMSoIYCABgSQkqRASICSIpCSIpCSIpBJIEkAwQkgAADFAEnavj6N2eN5fwe+DmAAAAAAABigkgAAAAAJKHAmGRSoJNr1cbls646eG/Q+r5tfydG/0YUfB3tG/wBGGvnfPpngz0CFbXfo8M5z3tc6Dg79THZo2tctfPR2jb1xte3k189M967utNjbLWyvWc2+90Y5tMuk3w67syta24rau1EZpvY8802mdQWkTVo2THvX0TG1Dtn6Lw3xXrrWtbYxzvVTUvWyyal67mOm1FeX6s6HWu/SJxNxjberSatZpGGa7VVbrW5wnnd6Z6xc4207UyRGa2e5nZwt+Po893tRNbPOenvw01lM134p5vw+9d78WZXm+f0d62VPh17WmN/py9Jpy+b8nr2OmGCmttryXF+e4vy+d8Pu9d0efx3H6nMc3odLvw8zz9wWGmHSb8XN4d1pry19N7S/Pbb8fFcfsbmmE5r6R2+F03V5NjSfIvO+m5nD0YYdNPntrV0JZrU+jfc+DyRp86+J9rW5dMIkADNalhfCpy64xMYmUwjtOvy+T5vQinNantvqfL4deen5+/ybyvpsFdYRZQjEoBkYlJBAADEAEkAJABEkBFIAAkQyCQAAAAYCAUS5gABQEuYyTXFW4A5hRIOYAAAABRIAAAAAAAAAgiYgCbPq5Lnt4qXh7rDq5ZTGxrlocvVr53lMbm+GKl9fPWc129sdnbIN3p5qDy/TBGa9MVL7GuV76HBOzQ5t9Dn3suvmtermw1mUTiraEKfi7J3rn0zneNi9N/q573q596LWO+XS65WeduG1pURbAXtqa0LXSvYYTnid/O1J0Y72c1mtc9GraL3nvr3rz3RnOIii2zjWtGleuxSNeUkVulbSkXOE0V1ReO+56xiNDbK+576fJ6Hjd+qSJzHNc3d1F+T0Xfx6u9quyl5+6WmZlrGLkxqxaox6tTLew056Tn7eg6fPt9eTk+T1nNdTPbanPfq47l9ILnfiudeXkuT1ej24uex68tq7V8fQPR8B56cnh6Fzry33RwU+Hd6h2/OqseH+R9lq13wZb8vz94OYZktTpu3yur14/KvK+kxVvEAHK005bBXlsO8SoFoIdt2eVx/L6XsXpfPY9+Pl+T1LTXlnE8D53vuLUWXTFJBJUGRSjot+LncO0AYAIBjQAJIgGAJAAEBFIAAACiQAABzAAAECSiQAABzAKJBzAEEkABDAAAAAAACMSCAE3Xdwa+WiL/0/O0+bfUx2xVvua47G2Ua2ruboANnXKx6+XLelL5/fktXa1z0OfcNzfDPrnX8vSwl3ns+RU0voc+2tjtr5aZr01stZ3rta5b22TmtdhvKYtu3jZZ9XPv617Pow63KtvW3F9NKo5+WtE2tqdjS1yrjmlxjbm+itdpXezml2jseXa657UHTy810UucmhaupbPSmcyvWctue6M7PK2vNatpaMZsyXbcW3EZdfMaTzFehRPo/T5HlvF7uPLTTz19a7PBnty8Hy+xdac2rXXHavprm4yN+F5vTyzS005+ynmxb8lpbDybzfqKjLo3rZdNtwedef72Kt8s1s9uXTprO1d22Ndl03uvL2Xf4WllvWc/fz9Ompw7Os6/I+lejweCp1/Pfm/V1+XR2nV5XFcnrYq3CUw0OUlei34eW5fTibF8+t6fN3bU4Hj9fstuDk8e3Qy6AAmGd11+XyWPZ7V6fzPn3J63DcPtJKgkxiYxIIEqARSoCQAAAHMAokAAABzAADEADJTUTCJIJIA5gFEg5gGIBRIAAADmAAgBJRIAAAAAAAAAxAAgSCADqPS8uk5OzofS8+u5d5TGnhvK0X3fwU/H2a2Wsprt7ZaeG3Ter5lfhsJqeLsCc1lMWHVy6eG+5pnqZ6wrN76nnV3H1bnRho8vRubY1vN0462Zm0p3Hp+Zy/J19BvhsWpTrWvZy7Mxr0vz/D2OY3tcbzr5/R+zkt4re8+nn3XlBGtetrVs6R0PPaF6bOdtS8Obeq/Pe9fcPb5t9D81wfo8VFvTYpXSRv52qNI281uxoG3X0xdLzUtKM9J4XHt8zp26eW9zpz1dNup25NOl+e5+zQz2zXp6V2eFQV6et6PM4bi9vd25K+nRgi+1OVTh27dsen6/KtVdmt+tjLhK7czj30GHXf35yJ4Tk9f030Pn+fp0/RXX8z59bfieX1qLm9Dc15d++PAef9B0G/D6Z0+P3vT5HneHq+I+R9dgpok9x0+VwPH7FrrzZpily6QkiUx1G3Dx/N6YSmLHXlv9uTnsuzvunyPLPN+jUSBaHDuezyudy6fXfV+U6mc/mLwvu8FNUAkxiYwEqAASBRIADQkgAAAAAAAA5gAAAkj0Dv8K/24vHvK+rUSDmAACBIgSAAUS5hRIAAOYYgiUAAAAAAAAAAA0JIIYCiUAG70c+e9LTs489q0XB35LU2dctfPXBnoGW9MdL23dxRrOOttHm6Ellh08zmujz9DmLLo567n6L31POruPq2tsSJyTFdzdFn0c9Lx9jmJzG/182tjrtbZXPdw6uelpvlx/j+rbdPN3Po+dzXn9/OYb7Gudx28fU+lxGOnYdPF22M8bu5a1uynHrOXWj6cum5tK/SuvacFp7Lz9+A9Tz+t4N+S7ubntK1cWtK1sK1sa1qrRjWvK00pjueLbFWfJK99TW2M5vm7sk1yzHT9HBgN6Kc/wA3o81h2bdsu76/L6TfzeYx79G9Y003ZpSZdfUa+f6lv43luHt8Fyevji8K2sNeb0O3ncbl30mXX6L3fP8AI8vrdz2+Lz2PdUZ76lN+a5vRjW3svq/JcTz+raa8npvV4lxGfl3nfTeM+d9LCLRidq2XV7+fwnH7AA0EmXe3HZTnx3N6SSDRnvn9Je/8H59we75H5n0pEkJWrua4e2+n83wePX7n6fyfzb4P33M8nqIz3zwU0hFlBRKAACQAokAEOQAAKJByEAolggkAAAKJaJTARiUkGgkAAAAAACiQBzBEgTCiQAAAAAAAAAAAAQkyQktAIUSAbm+F/wCj52lhtq47Y63uOzjy3ih8/tJBt65Yq2surkx0tXcvXudGGrjtmvnv9HPU8nZOa7nRhGJu/Q4oZ2reXojE6WHQoAEpjZ1yxVvktXoPR87DFtTDar4+sAyWrs65be+GKlxO1amS9Op9Xzq+l9yHbeh5/SRF/hal6caHWe+4dNa9MdpjCr2yrbVssrbuck58f01zxW3xcZfTpZ57Ck7sR0fH1clTfjbW5eNcNbSzsFNj1dN0cPJ8npY627Po4bHfh43k9XBW6tG2z9J6/ExaY6WXZVpeHXSxp0nT5/J8vp0nL3Xd8efy6et6vN5vl9Cry6VDc0xy2p2/Z5GW2Opl011Oi0249FbenOUT6H2+DGJ8v8v6bz7g96Uur7PIq8umzhyHN6OCt2Ahgel9njefcvqaWeySASmOg348VbUGHYDl3fX5Vh08XbdnjRw6PGvN+l5/l9KKdm+P1j9F+d/OPkfY8h5/tRSQJAQAkAKJABDkAAAkQzLamKt0ABAkAACiQaASQAAByEECQAAAokAAAAAAAAAAAAAAAQokAcwwEloCMSEU9D6PnbGmOpltpc+9n1c+rlfWy1AlJEU3ff5+rjto8/TGJlMbOuOOlsNNHLb3w9n+r8HBSfN/E9KSujzdFVy9U7RjrLlJDmGZLV6P0/OhaKri69pWp5+mMSDLrq5KnHotOnmVq6+OrledXJY9fNZ65a1L9F38Fojr2VNe2Sa7tZsKM9badqUHRju5zWTHW4TCaUukV0s6u+ztufW65OnxrP0OPvf0bo8rjs+ynw6rS3PV49V5bLlcOzdtnU5dMpi125c806fp4fbufp+YG9Rxd3pHo/PdVtwY7VzQnDt8NPlrk+o0cOlQ3NMbTTn5bj9Oxvlbzny2XX2/X5dQt6F1+J5V530iTmtn6l3/ADuzrz7V88eG3jHkfXU+PYQ29cfq33Pz/jo6vMPL+m4Dh9pRJIggTJXruvy+O4/WSUEHJo6vr8zn+fu6jfg4rk9UPQPR8H0j0vnqrl9Dx/yvqKbHrSUSR2vo+FyXD7Gll0RiQAAAAZEYAOYYoEmOYUMlo+k/o/zf5v8Anf0bXpooloAkAEEkAAAAAAHMAQSQcwAESgAAAAAAAAAAAAAAIxLmAUSEpgAAEKJiskdp7fiRpavw30OfosOnmruXpBRKLHq5kbWuVh0Y8t5PpsserlcTX8/QDlktTrPd8m+tnx3ndunjroc3Tt7ZamWufTPDnpOa722Ohjt3ft+PWZaamOtF5/fKXXep5nPcfWQ18tc2metlrkvXr/R86mz0x56bu2Otne37ePourl47g9DZtS+2w9S7vN3ZrG9cMaTtTdyVm1bDNoWpj0z2KJVnZyuXwt8rYcejwPP067PXdZyvHTdfncR5/rzznod+LncuvWz2sdMMWetlrz5rVxzXu+vy/Vebbw/ppWcPcpr0F+WrnS66ODHF++jj8aw93juD2YVt6F3eH5/w+5XY9IbVstWuvQdPn61b9Frycxh3dP0ed1/b4/Z7eZ0dK+Y8/reGeL9pq02jBjtFr0cfR68fH8fq1+XQolyUADcvj2nT53n/AB+vGJACUkehdvjee8Xswi0Yllx0cXUb8PL8vpVGfQGGukYkOw6ODlMevFXTHWwB0e/FzmHaAAEYlyEMAAcxnvn7d7HyHkXmfTVPP2SmMdboBzAABAEkAAABoBJcwAKJAAAAAAAAAAAAAABDABBEoJMBQBE5gASVBJaEnoPR8zBTTVx2u+7hpeHtnau1rno4bkCV138EKzU8Xak73Rza2O2W9MGembSlpvz03L19P6/lVHD159M6ji7gzaZ46XtOrmrebfqe/hrq3lermmtjtXcvT0Ho8HP+d3h1PdxUWG+rjq5Bb+hxdX6HBy/nduSYv+jl5rj7dy1NSLW/ZyYyxRXRbp+zh7i1Lro5Ol570HVlKG1WmaGnemfK2aJ3K0sOTt8Lp3c/eJ3z1Mt9GLeg93k+38tfnXbfjPM9n0f0PCo8O7meft375U2PV6B6Phc/j162e2hnv2ff5FnOG7OOOmvnnF7PTbcF7vw22vLpY9fJ491jbGNbb9s6PHs08erHMdF0cGWca6vRsXy1I06jXgsteXuZ4uLno4nz/f8AL/M+jrcemESBJjR1nR5vJc3p4ovbac1Rl0iQD0zu8TicO/sejzfNvP8AfQDL3o4dmacvy+kAnuuvyOq6vN8j836TWpr697XyPqXR5PlPn/R+ReZ9HCs7F8/qj6D8++cvI+y5ri9VAAAAAJPqPf8AP+X8HvgCGOYy2p737Hx/jHm/S03P3BGJYDmAACBIFEg0JIABIgAAAAAAAAAAAAAAAAAIYhRIAhgIkEwJaElQAIpYy99Dza7l6s+mcYnHFxFl082hz9HQ9vFpROOlsGeunjtY9PNqY7YqX3t8NLDZjmLjv4sOd898qfh7wJWXTzVvN0bO2Vnvho465ts97fCs5OnR5+ljmJzXJNcVb2G3PK9cOemCL9r7Xk9TnfyTy/RwZaZb07T1fL4vyvUz6Z2fXy9v6vlYs78vx9t9rhpStunn6Ho5e9Y3Fa19oyTWE0tefW259qy9eR6ebja78fxerrRfYtlW49N3rzdP2eXtM+I4PYr8t9Km0Yt1vRwctj2bN8vWrcXldevCt1/Z5M1dPi9HT6MN2K9HHP57z+v6J1eNXrW2vJKLVWHZ5jw+/mmtvbCqjRzHYdHncDx+zZa8voHZ4mFb2Hfw+E5/U8V8v6vnOX0IRaKWgGExc68tnOXI8/o7l8dDPcSBDNfP0Ds8bz/j9nDXTHWySyU19u9X5XxbzPp+w6POr66WWvN6H0+ZxHL63m3D7Qdd3eN0G/F5z5v0Onlsk5Jr1Pb5PN8np6ueyShoYAAAAAAAA5hkYlJEAwAAAAAAAAAAAAAAAAAAAAAAAAAAABCiQAEAwAcwAKJcowBgJIBZdPJlvWdq6mO1h081dzdMkRiZWi47uGNZ2dYruXbUx3w0uDQ5NG5tladvFipan4e7a2y1MN2hGbSmKlwz6Z9B6XnVnJ06mG87V08drHp5tLDeUxhpeUwFj1c2zrlT8XbZdHNXc/SoXHTyVeHTK0XfZxTtXXppm0z7b0fMnbLjPO9S71w1Lup7eHvJw6atdPo5+o4unbw247v8/io6NDLo6nTgxTHJV6eZ4/R0q30s9pGzfG0tjz/N257V1a6enen87o579Zvw+pcXZ5v18nI59XLcfqaMqLk9Ha1xpuPvhWd3XDqOjzuj6/Ov4w5V0705WynDZej3Gvm0OXZl0yqOft6Lp8yw25uovw9BWvnHJ7Xg3j/ZYKaEEJLR0HX51Ph2Y637Pp8ziuT1XMem93ieXef7vbeh4nKcnq6WO/W9PndT3eRjpr5V5X0qSAdF0cHV9Pm+a+f717tx+/en83SZ7eA+V9VrU1ikAZGJjEg5NCIxLAAAAAAAAAAABCSQlMAAADmFEgAAAAAAAAydqxiYxIAANAlAAAAAAAIUSCAAABgADkQiADECUCRG7thY9XJXcvWgGhhK57+DXy11cdrLq5q/m31cdwBzE7Vy2p1Hq+ZS8XXq5ba2OoA5ENnbLVx1cus9ryNXDTQ5ejSx3hW0YsIByC36eQ1pgz1r+Xp3+jm0OfpC76+Kn5uqw2ww1v0nb59328lfF+S8n1uv7vOraaXfdxWW3NCVrS1PLsN+PvOLc25bVTW1z4PZ0MZcPXquq05yNSl6PDqyzW615eS5PS7fu8asy6eU4/W0qX7zp8vlq9JMdz0+dp47a1L7sRz8b6sX2Yz858r6SMPQezzuA5PQsr47unP7N7HyFdXbkcPS2bZauXTvXwzzW5149usbfTxb2V67Lr8q8/3/AD7zvoCJEEgnMe1ep815TxezkqtZpx3N6KS0OXpXp/PcRx+to49PRa8lHTfUptirdJDctl3PX5PD8vqZLU67fz7C+XmPB72GlksgABRIAAIBgAAAAAAAAAAAgSQcwAADmAIlAAAAAAAAGzfL6l+k/MfH/L+r8x8z6gAAAaASWIBoBJBCiQAEMQDAAAcowYCGElEoaElJ6X0fLqOXsjWQzXphpfNfMlZdXLGJx0vlvWq4+sEMANvfG06+PXy0quPsJSmN/fDQ590bGmeDPS/9Pz8ec0nB3gAWXVy13N1beuMItjibLr5dbLXS5uho3t8dDDec1yXr1HbwT0yro17P0PO878X2pGphtFM7V6n1PJ7/ANPyM/P1+oW5eR0p5d5Ptc9TbFW3sHt/M9dry9ZzbV23PR7V4jLtjNNLHeNLX/Tw0FOim5O/b15+87PHw57cTy+prVv2/R5vG8vqVmW/N8fpKJ6Ps87u9eDr+rxvI+D6LgPN9+FbCOq6eHmOfs6Lfis9+W/05N/s8y0x15jPsjpl3m3mdTfk5qNs2vP4n5H2XI+b7eCmmGujQwHMECVpry3+nNxnL6aSCiUAk9j1+Tp59HN4dsYkmREkenen87yPH6ulXT1T0fnfOfP9/msO+NUVkAAKJAO26/J4jk9ZgAAAAAAAAADQkgAAAAAAAAAAAAAAAAAbF8voz3vz7yLzPquI4fcAAAAaAABIhJUSgABDAAAByAggASRDECUMaAimx6ObBTQGjc2x0sdpTFv28WKl9Hn6MdbTtEKzt7Y6eG8pjf6OfQ5+jofT8zXy0p+LuIEpIBBDZ2zyXpb9vHQed6GHPRoAAcnMbvRh6J73ief+H7OHLTJMW2/NRc3Xgz0y3pu65V2G/ae14lNydlXyddlrhGVpfLmOTu7r1PH07rnfn9G7uHqfP6vnzPpoeD0Nel77p4lLvvT8XrtePsp5p102ocn0Y6qPNuH2+y6PO6+/J55n3VHN233TwcXzen3GnFbacvFZ9lby93H8fqa9NbXp43MVfP19Ntwepdfi+aY+nQ8vo0XP3SV3tMN++NLj2NFlvy+4e18P3s8W7z9/MXczXp8l836b2v0vmvKOT2fLfE+sjE2N8dOt4xIkEdVtx223HwXJ60YlJBJUSHY9PnTvjxvJ6sU9Dry0OXTkvT6x97888u5/YqMOz230fmVpj8m/OfpOjj0uIimKQUSAAhiGACGADmFEgAAAA5hRIACSIYAAAAAAAAAAAAAA0OUIsoSmAAGhJBoSQUSgAQwABDAAHMKJAAAAAEmIySACKdnTISTBDY1zw53cxb9vFGJqOLtAGAhkrRYdPNvb89Xydc5rqY7WnVy1fJ1ASlMRiel9by6jh7K/m6t7fn08d82meKl2iMTt7Y9J6nn1HH01/P09H6/mVPB113J1buuNlvhScnXFPU+v49D5/o6+OtlvhUc3VYb8+rnr6X7nzsLxedHP03Nt4X4f0WPo59iiux3gnqe7zMF45/g9PJanofq/Pep7+d0mvNjvWUU4XPt5TLsnfG7nKmy6PPfP93Wrr0fb5dnbC+tg75cF5vv5tMNdbnuL0wsdcK3Lo7fq8q76/M6C3Po57Ukb8Zx+xe78Fipc9PnXG/Fb2wr8OrmsPQ9S38354836qvx6+a5fQwZ6o2b54osoBKYv+jg6/o87zbg93XrqgCAlF3vxdv0+X5lw+9CLRies34Ofp0fU3t/E+f06ddPkfk/V+r+n8xvaYeIeJ9pgpdljvy1+PTirdRIAkoYggSBoYANCSAOYYCgkuYUSABGJ7Lp8/j+fvAAYhkprCLAAAAAAAAAAJIhgAAgSAAkxg5EEMAHIggASUCWhoAAAElDEMaASYp2NMxEkRTktVVm57+CMTNNNxdiAYjJasK2DoPT8zWx1qOLulMIkgkomU12tct/q57Tp5eQ8f2HEote3j7/1fL8x8H3JzGtlrsa5W3dxbsRW10+l/c8rwHz+3n/M7tHDaVolMdt7/hXGteS83ureTp0cOgmLbr4+p9jyb30OHLy9PGeN63DeT7GOtgZGJQQs+rk0sejDncmbjq4e26/L6D0PJ9H14LDo5OY5fS8+x7uZ5fS6fThuNcdi2fA4+lWc/Xs3xtduXstOCgp08ly+pXYdLLzXnoMeqMTOa+gd/g7k17nbh008Dj6HR68fT7cGOLeWed9D5/530Epr3vqfPUPJ6FjnrZTTznm9LZmkpqpjbmt9fnhauwcPzelCLKCSCTJHUdPndhvweZ8XtadNQit33Z4/rPd4XLYd/inm/R463SQQoM29cfrL6X81+XfA/QKHj9IAQEUsQDEEGA5hgIZKa+oet8vynJ6vM8nqKJcwRKABJaAAAALDXm999f435y8P7sAAAAAAAAAAElBBhJoAAAElQBhIGhJIISUIYDQwAAAAAAEkAinY0zEMSQyWpc93BCtqji7kMaIxLlvb8+lhvY9XLv8ARzUPn+jCtmBtbY2nRhR8XYG1tjf+l5vN+V6pAlhpedqzmMNL7m2O1pTP0c9J53oNGS1drpx1sNb7s4aHi78dbdF6nmdr7Hm+4a83z9z9fI+F62PPSw6+f2X6b5ypx24Xwfa4Hx/Xt+/iqOHtw1uQsejmr+fpnNb7u4KHi7+s7/J5fh9TDW8kbV8lW3Y93k9d2+X6v2+Jnz3+fOH36rLpxZ7ejej4PLYd1x1efQ4d1Dx+js3zvNOXrO3yNHDr5HHv0s99m2UKadDry8Ry+p2/d4lpbLs+nyugvz69Z8B8X7Tu/T8G305vAfnvu7fo4fc/Z+P+evA+61c9pzE5j0Dbh909P5Xha7+e8H0HJZdelnsk5bUx1tCLI2LUtNOfu+3xq/Ds844/ZaPZ/Q+eXT59Ph28Px+zmtnTY9uCmgEElABKY2L569NMdboaAiljEAonoejh57n7WBKYAACU19g9r4/juP2OP4fZUSgS0IEgDQAAoEmNCSAAAAgBKCBIgSYoAAAAOYEtAACiSTQAJMYkENDEAAADAAAAABJBCTa9XJmvWs5ukBF138BCr5OzHWxBysOjnr+fcSCh0nq+VW8vXXcvSwN7fDRw3Y5gOj9Ty67n6avi7GIDa2xhWwbO2Vt28Wjy9NTx9l53cNPydm5thpYbuY3Nsdzp59Lm6Nzqw9E97xuK8T0969Ol9Xh6br5+A+e9nzjxfZiRiVCKwIcFKc19n+q+Y8j+b+hr+bp2NM7Xq5KTi7pTAOYZua4en9nje49/z+hthytp5fPuvrYUWPZ5/wAPtXG3JR4dmxbOvz6d/Tn9M9DwNvfkrsundvhrVv3OnDntnW560vJ6nmnB73BcXs4a26Hu8zPbPm+H1bDbm9M9T5vyjx/qsVLxSDPRu3xq2t6XPpsLZ31sq/fD6K9L5j56876Xdx22LZVtdKrHs9E9L5vnsPQrefurEXFqcTzelpZ7iO49Lwva/T+Y+afA+90cegFEoYgSgFEgxzVJZEBiJojEgDCYYgHKSERiVEuTQkkEADkQQwEMAEABIgSIACGAAAAAAAASmAAAAElQSRAAAloQxAAAADAAAQ5EEmKdi+Tlv78+hh0OYue7gjW1Tx9qg5AQRs7Za2Ou/wBPNb9nFzXl+sIBmW9MNL9P6fm815no2XXy2XXyUfn+iqtfPWdqwrZJEB1fqeVrxbn/ADfScxsaZ62euW1LHfnrOfp7H2/E1+PqwQsd8KTHq9N93xLrfPmvO7vIvm/otTLWz7OT2D3PF8X+d9/Ux2QAADMt6YqXs+jlqubsRbdPHWc/V3Hp+PxPm+uG1pkTEodt1eX7b7HyZbN6Z1WfVd6cvB8vq87TqyWzaNXPe/tzb2/LnUwtO638unWwc3ZwXJ7Hl/l/SV2PUxochDAAQJAAcwQALvp4voX3fjPFvL+l9E6PN8J8j6qSOj15aHPo7nr8nk8O+mw7VEoIEmd16fge2en8t8zfPfoFfj0qJJAxAACiUA5ggBIHAAAkQBhIQCiXJojEgDCQgBIhgAAIIlAAAOSCCGAAAAIYAAAOQCGAhJIAgShoAAAGIAAAAYAAAAAJKTlvnJEpgO093xKHz+6r5OyFbW3VyVfL1AhJaIp6X1PJrOTr0OfpAFEg5hk5jrPa8fnPM9LPNa/DfHW+7vz6eG6SI3N8bLr5NbDav5+hROzrlhpf0L3PF57n6c+mV1fn47zPW3+jntfS4e29HzOX8T2fMvB9+d64c7xid/p5vSfb8fzDwPc1ctRLQAAgEkiQQkyVByRc9PF7D2eX4T5XvpKOz6/M9M7/AA93p4ux6/HzTWpjbk+f0LirDvzWERhreds9mc/PuD3PLfK+nqMOzJNccXBo2tMer9HxqLj9Gq5+y7056PLpAHMAABu68+Wa6lNvTPU+c8x8r6SEWjEgAJJAAAACc1lMYq3SQUCXZdfkcbyeuolyjBhJQYIABIhgRSxosdMK/PdDHMKJQ5KAIAGAASmAAAAIpUGOTQCAUSAAAIYDEOSg5gGRiQSRDAQwEAAAxAAAADAQwAAAQwElGW9CATtF33+fipeo4+1gNAZ9c4xODPTe357vu8/mfL9cAyWpa9PNS8fYAX/pefu9GPJ+L6wWG+GS1a7DeMW6P0PPpeTqvfQ4NPn3xxNby9W/vz6OPRmvnk0p7T9H4PmHjer0np+XcdmFvpj554XtcL4vtYaaKDAQxzEYmKSAMcwolSENKiQQAOYUSwRKYAASRDNvTH0Hq8u16vOvOjh7Do8/TmvKcvp48OnzTi9vmeT1IxLmMlq4aaMSJzF72eb9me/+deAcf0Xi/g/Z2d8arPoQCGIkCO47vH27Z+fcHuAkESAAAAAAAACEkAAAilxIhzAIACAAAAAlAZ7UwVuwQxyIIUgIADAckNDAAABRKJTAAAIIlAEiAAwkoBFLGhAAAAwABAABJhBAADAAAACRAEADIpSQzWoAXHdwEK7m6lE463BzEpr6z9J4GHO/lXz3vdN6nk62W1DwehddnFT8nYxQDe3wwUv0Xp+XzHlevltXZ0y0MOgRta5TtGnjt2Hs+Pz3m+hnmujnrt65bGudVyddlvzeie74ejMVOHX23reXxnhe3wXh+zhrZwind6MJzXQ5ulAACGZLVRn0z1MNxKQkgBACTEAwQJQAA0NM7Us+jkqOXuJhiiUNCS0XXVwepep894p4P2EUtEpjavj1fo+NScvoU/L3JKARKRCIwJIAASQsdMCJr6ahFIM6Pr82U15vj9MEMSUAAAkoISRcdHFZaYcrx+ogAAAcgUS5hRIIY0BFIJINAMBzDEEAckSQhgIUSDmGAEUkCSgwECRDECWhJEMAEORAAAABAAAAAAAAwAJAQBAACSkkCZz2yQ5Xfd5+Otqnk7d/bDQw6AJhln18kItr469D6Xl8t5PsEFJjQJDc2wsurj08eis5evNemzpno47bOmTNemll18m/thUcfZjpeES5i97uHa1z7H1PKrK69f3cXD+L7Pn/AIfta2ejHMIZ6V9D4PQ74eK/L/S462JKABktX1P1vneGw9P1D2/G8U+V+ox1sxJBDgSQwACQCQkgABYbc3rPsfLeLeD9kolzCEkGgJonauKt2IkNWUwkqGS1bvXmoMetnofq/ObE1818n6SEWRKYAAAAaBKABned/iROG4PaSQQAAgCAMimcxddHDaXw5Dk9UggAAJSUCQKAMAEAJiloSbrXmpcuhjQAkENACRDIpAAAGCGACS0ACAAAAGAAAAACGElAAAAAAAGAAASBQZFLQCSkqJcwGa2bladfGGjz9GKmggS0ErHfmq+fqUT1Pq+RV8nXWc3VIUpTBASiw6eWx6eah8/0et93yKby+zWy208drPq5dDDfqe7zq+1qTzvQtOrkyzGCLb2+HTev5vTelwafH0c15PqefeJ7eKtrjt4qji7AYCNzbANPHeMSkhIiAEpic1w1uxoSUCQnNZzWFbxAQwABJUGhySQjEsAGhHRdXnc/zegjLNcUXaABoBgEmhRLmPS/W+Z2Jp5d5H1GOLNLmoAAAEkQiXICCHIGIDJNUmFZQDAQkpLRKYUSgGCAAGEgIIYCAASAhJSQYkSQDIpaRVJkgHKMElggAEtAAAAAACABiGAAAAAAAktCAAAAAYAAgHIAUSgFEgSAADNajmLnt4MNNK3l6yYvu7hp+TrxUuomIond3w6n1fH4zxPdJkAtenkq+bqvu3hpeTs6j1vHpuH0NPHb3f6f5zwb5j6TZvlp47kxYdHNed3BzHl+rtXzwUvdd/DddfNeer5+/NeQ8T2eA8T2cVbzQgHMCGAJCMEmREAMlqox1s4KZCSIgkESiLrs4PXvT+e8I8H6/oO3zuk6eDzvyfoEkAQomcwiEWAg5BJVAlzHWdnl8lx+oF1rzUmPU5SQgACQEQCE7VCESJCaBAASuOjiuduXj+H10KJQAMaElhMe1e38bV06PKfG+qQSYQQJiNIhJBonMNEIs0IAAciAACBIAARSANDQDIpBoSdm+XYdvj8Xw+1GLKAAgABgAAAAAgAAABgAAAhgACABgABIgAAAAAmIkgAAAAjNalv28Ma20Ofox1uAW/XyVPJ1KJCz6ea37uGl4e2v5+oHMCQCU17H2fH1M9aXg7dTHXf6Oet5uqcxGJ6P0vMvO/z6bzPSdo0aaWvXy9p7nmZInz/5/wBrmfN78VL463aElJnNbHbmr8egElRICECWiz15qzLp9H9nxrrbDx7wPoYpcQplxAAkiAlMZr0189ex9Hxut6vP8k8X6eKVEuYCc19Z9n5ikx6vO/J+hAAAAJTmoABEkwokmGEAAkE5rCLEAJAiaJTVRIJLmOq7PL6fXk8u8731EoSWhJaGRSEkdN2+VqU1pOXvBhIFACZUGIBlppzkTVU3Y0EgAghgAkoSWhJAACSBAMilpEI63t8f62934D4s+b/TtHHoAEAAADAAAAABAADAAAAAAEMAAAAAkQAAJEASUJJAkAAAABDPpndd3ARNJxdxACQTmN7fCt5umy6uW67fP5XyfZuOzjr+fo2tca7n6RIiz6+S89Dg5bx/X2tMsVbYaaQibvs4d7o57fs4uP8AI9nYtTr/AHPH7Dp5Oc4/Q888P2qPi7ZIQxCiUOY39+f0P2PF5Dk77TXLivH9dVlTLQAAQSdvbDLelfz9QhwUnAkQQJimSElE1ZTEYlAOU5r7X9B8dzGPZ594/wBHq5bg0XvRwUXP3g5NDQBICBIPRvT+f89833sdbkwAm36OHu+zx/LPL+lEgDiA6/0PH9q9H5/5t8H7TDW7SIBCSxAAxIEgANAAxggASUADQAAJQDHMSQAQiWAEUgwQ5ETEBgNCAEghykjPbLBXWMBIgAAGAAAAAAAgAAGAAAAIYAAAAAAAAAAkoSSBIAAAAAaAu+/z8t61fH2bu+FVydZAAcxKYxxfr/Z8PnPL9UlGJwZaEtnXLFS07R3nueHxfj+vcdPPQcXZmvXrvU87070uDyLzO7tPV8eg4u3Qx6PT/e8XjPN9Hyz5b6fHW0wIgEECSQjLaufTLsPY8rp98PH/AJv6KMWQ0ACgllBzAKJBzBEu1WkQokQJAAcwoATJBzDR6p7Xy/K8vpcj53sxrYmGgJIckAAAAA0dl3+PyHF6+OlnMATLiCSiVJwUiDRd9XB6J3+J5N5H0+OLNKQkkCTEA0ACSAAAADQAMAEZJrCJYCAJEHKSLfo4vYPW+V8K8L7bHWwkQEUscxfdXnUnN6EKyCGAAIAAAHIFAS0IAAAGAAACAAABiGAAAAAAAAIBgAhiGRSkgAECQAAAAABDovT8vHW2vTXDnpqYbZbUScdLAFr28e/0c3N+X6rkja0y2dcpGpnped/n6WHRWcnXZ9fHpc/RlvTrvY8vpPZ8vX5bzpeqw6KTz+72D1fPuT5q+f8Abs9cuX8300i87uKi4e5QIkkhyjATktSSMVdGgHMACGRiQJESoA5hjkIEgohzKQQEgISQAJTEYlRKOw7/ACtHPXnuT0GgEkAAAJEAcw5EAAmCJcwCSIUTaa8tbn0qDCRACRBROa+fd+r89xvne5o5dDQAJIAAAAAAADEXuvJSZdTmABQAGOY3tef0D0vA8y8j6eEWBoCKWbmuH2t9V+SfKfg/onFef7oKDkBAAQAADABDEAAADAAABAAAAxAMAAAAAAAAQwABJSVACQAAAAAAAAAQ6D0vMqePt9U+g8TS59fM/E9mcwiNZDLenUet5HK+R7EIsAOYYHQ+l5mS9dTl6tLO8pbm+Fn28vZ+t5eO0UPnd9J5vfzXnegom37+KUqni681qaeHQkdj6/k8d5PrRrJMqG1rj7R9H895H4nt1HD233ZwU/N14aaA5CGADmBIhJUAUSGxfPBTQlKYUQTJBQEiABJAAciEUtHpnq+BUZdHFef67QCTKY6Hu8uo5u7Tx3AABzEpgEMAAIASSWgiUCHIhZ689Zn0KBE2vTxfVv0/5l81+D9/yXn+0DBCSASRFIADEAAADBDAaEADAcwJjEoBjRFITmLTfjrMeuMTGJlMAAAQBAAAAAAAADEAAAAAAMQAADAAAAABJAEMBAlQJABAkAAAAAAAAAELz0PPqOLtnasYmNbCGAS6X1PJrebrrOTrsejmr8Om+7eCi4u7NfO07OTf6ubnfK9S87+Cw6Oem5OvrfX83e6uet8n0vPvG9jVy1senmaK/n6CJECUACShwBGxpn6T9B4Pnnh+1X83S5AQAHMJJBjtVkYlJBigjf0w0abkHMMEJYiASWhyjEsBAAAMJggAJOxpl9ifT/mvzr5n1fnnj/SMAAaJTBIAAASQIgiXaAUSDmAyzTBXQhKYJZ754aXjEuQAABca8lRl1JIAAAAAAAACGADGgElDGgASUloaElDHMAAAQAEADEAwEAAMQwABAAAAAAwIpYgAAGAgBKAACCS5ggSaBKAAAAAAAAADLagb2+Fdz9DFKR0PoefjiJTWg8/02gLXo56/LW46eW29DgsN8+P8b1tvbnsuvn6L0eDJLOnj/L9TjfE9dAkQJAQJaEMDa1xtN8Of4u9qiYxLmIxLCWSawiVEuYSSAOTQhRIACSIASoOTQgAud+Oow62KSiWgShoSUkRJAOSiUA5i36uGu5+vXpowABodoEtAAAAAKDkokQ5lQcwJUAUpIEgBAmCBKQkJJACQAAAAADQkgAABACTQDAaElAJLQEkEgAAAgBIAIIYgBICAAAEiAAAASAAAIaUCBIMQgAAgTIgBJEA5hDBKAAAAAAABiAAGiUxO0QrKAlLb2wuu3goPP9LDS9h0c+hz9G3rl0HXxb/o8OCtljrsdWFn08+ly9PMeZ6Pqfv+N5t4/qcv4/rIjFmgHMKJIlzCFEkiGfTOdq6uOzBCShgbGmXsv0vz3nXm+hy/kesAAG9rz6We6iQAAQAAAAktCiZzUAcwksUABJBoBzDAjEiUAANCS5evev8AK+V+Z9HrZ7OQgSIEiAASoAAgBKg5AoEmOYUAcgAgSAgBIAYgAAAAAAABQlMNEVgAg5CGAhEkCWhDkAABAAACSgwEAwEMAIpYIYAJIhCWBoSQYIZFJAAJECQACgDk0KJBoUyAAAAAAAABACQKJlNXKU1UTu74YaXSbru8/Uw3rubqjEgG3vj3H0HgXPocurjrr8+/L+P6vP8AB2+2/W/N7VXh3y/0Ghz9KiQAAAAAAAAAABDARnvT0T3/AAuR8z0KLg9BgAHT9Xncxy+jEBjABAAwEESTCiZzUGOYEpBEoC025arHraEmUwwmIxZQAGIaASbPfkrseqMTKauSGKJjEuYYEUg4hyACBJoUlWXJzCShoYAAAADQkxiZzVJAAAAAAAJEQAAAAAAAEMYANAACABJYDQkuYAgAAARSkgEkACASWgSCFBhJDAAAACAASUBLmAACBIAAAAAAgSIEgCMSone6OfXy0s+rlrebqULbt5NrXDLamnhvr00uejnN8bHr5+09rzKPl6NPi6vPvnPf08dmjLane+94cM78H4nt4q2YCGJIiSBKAlaIVlRJIAaGIQJBolMRiUkGgBKgTABkmLXTnp8uoQAACSDGhDGgHJzCiVAFMymqiVEhKasSSBJDHMKJCMSAOYBgABBCS0Akg5gJTAAAAAAoAANJMAAACShwaLfblqMuoABoASgGgEkAAAAAAAAAAAaABJBoAAAGACABJBoSQIEmhJAFByAAAAAAIAAASACBIAAAAAAAIEgIEgAACNbKRAL3v8+s5urHW21pnsaZXXfwW3Vz3vTzczx9ll2cln2ctlram8r0eA8P1dPO8pVvN0qJSWOYUIxZoJBGJABDBKRKXW+h5XIed6wgiSZFQaRAlAgCLEmqkiRBEgTAgCJy2pircAEgAOYaAAAAABghJAlJCiSREJLQJBEpq5mFZAAcwxBEoYjbvlqU1aASdrXH1/2fkPLfL+nqebtYxDmAIEgIElAmXAmABQcklDGEQAEgAQxpSAaUgAaUhJAAAAAAAABoAASQAAAAAAIOSAIEgIEgAgSAAVZdoAAAAIASIASUSTDAAAAAACBIGIIEgAgSCMSokADuvoPnlCz7ObUy3vt8NCit5ty9bHqysto5/wA30OJ8P1dfPRzCiUkRktXY0po8+6ASclq5bU189FFiYAAEiokgkiHIAECzQCAAAASRACQJhoEpBEuYUSTBE2OmOCLatNJTDQAJIAAIEtCJCABoBJtdeasz6IxLk5qyMSokAlMIUSAOShuXy1KaRSxJ3def6A9/4bxLyPrqHi9JzDQJJgBIgFEg0EkMACCmQAgTDAAAAAENIIYIBJYgAAAAAAAAABgIAGgAEoAAAAAAAAAAAAAAAAAAASIAAQ0iAAAAAAAAgSAAUSgJSQoKJAA6X1fKrOTq3t8Mt8+p9ryNq1rrt5tTm6eL8T1+O8j04xMpr0Pped0vXyec+D7sYklua42/Rzc3w9+zrnmtTRx36P0/L9X9/wAbxP5P6Wvw6dm+dv1cnP8AF3gAKJAAJhwJgSJEEAJEEMJEBIgSSEAIIkCYASQy2rGEUyQkgAAANCTGLSmqSCQ0tDBCS0Akg5gFEgAAAAAAkiBLRGJcpTVJcQDk0ElEuQgAjEs39Oevy6HMMJEFMtCiUNDkAAAAQJECRBDCQAAAAAAAAAAAAA0JIECTQkgAAAAAAAAAAAACiXMAAAAIAS0AAAAAAAAAAAAAEYlRIBKYJgI1sAB//8QASBAAAgIBAwIEBAQFAQYEBQEJAgMBBBEABRITIQYUIjEQICMyFTAzQSRAQlFhUBY0Q1JgcSVEgZEHU2JwobFUciY1RWNkgpD/2gAIAQEAAQwB/wDtXjWNY1jWPnx//wBIcfyMf69H+vY/6F99cCjvIz8uxeGLO+w0kkAL/wBHj/raPzcf66tZNaILjke57Hf2fp+fRK48KeHo3GZa77L/AITqlQPpDgriPL2SD5PDvig9iU1XS6i//tbtdH8S3RFTnC9eJ9g/2e3MK3XF35mPyMf6LTslSupsL+/xJ4pd4hJMGHTV4T3tVGJW37dy8UVV0z6RcjvO69oz1b2VlTZa183pkcTjP7ajwruU0wscAhf/ANrYmRnIziWMNp8mmRl+V4X2Ze5vnrfZ4h8M1K21HYr+iZ9/9NxOgYQfbOpsML3Kfh4eqIv77Wr3Dwm7Q2ivszo8vXFTMdYuH2wy7dUhGWFH/wBgt1/BPwah+Fdbzv8Aq2z7y3anc1d9bx4qfuiOjiAX/paEMsvBSR5M3HbLO02+hdXwZvG6bVa8K0UVFCNrZdpLedxisLgVrcqM7duLassFs7XaDbd0U+3UiwFC9t7PFZXb1aFVr95d7airgzmI7DQbtkiuqKJ3Y3xZgIetrPz+E/k51n4Y+Gf/ALfM8PArwmG6zbDn8KO13NykopINunoZWcSnhIM+ZD2Vng1JcWXb1jcLMvuMljFV2vg5Ssj1tO3P3G500FC9TtjVb1AVC8zreTdue5xNkK1YLSqtmRiuPVb4euq26pMXa60zT3dG5dUE+mbd0q9yx5fhH59dfNkRo/C7B2aLnbhZXwZj/oOP9Ux/o+P9N6h8OHKePw8FeI6O0VnovTw14l3NW7b22xWHCvljuUZ9l7ZtcE+G7lE6rU33HdOqsmHU2F1Culs2JhkbV0nGUpE5d5y0/owvBBXo16DBueq2h8pq2WVUwIdQmBMT7+aMZHhMhKqT7h4UH56GcDzo99fNTo9SeDmSwsz/ANbR/wBOMrOUoGMUYrEZOfTGdLAZsgDZ4i/atmRtCUcBYyx4XrbZ0zawn6duVeksD2lfRZs+7QrdIfdMimzfroodUMgD9ygCNaB6QDIk3icjrrH0uH9IYOYEByzyKaC4ZuJZbb3JtiOEfTT8Y/8Au9ZqWKZQNpJqKzu9u7tlai6eSvDFfb9u2hGekdnxJSpL38WAn6B7vQ2q8qaCuY+I9+Hc2ACf0aNOzfmVpiZUPkdo5dLjauWbtiwyOufLXPkOIiM8w4xGfRQovvn9P0JZdr7YHR22ObmPkmyczMzM5/1+P5lYczxqp4RfZ2ybQx6bSOg2RnUf9Db7Q2Wrsm2t2uz1bf8AoKwkzgY1X8IXX1upA6t020nktw4L+b2qeO7VzkOY+J92/wBo90BdFUnG3ointrxuVw5Fd8pc/gGkSNxuXLx+YsK4B0uqvn2jVbalKSFndS6KF2rO8vijtgQituHh23twZMRkO8YBuSCSjj3nkVDaQ6HnN0mVVdw3grIwisHQqZ/vnE+2f3n/AD/0VH5yT4MidU/F7K21TW7YuP67iL8itS8zXsM6qg/Kj/W8fHGsfzFNkLtARe1Le6B0QKXiOvE95d7dTNP2/mupWkLhjkMAPlxPy7t4es7PTqWLBqINU9quX1mdVJGGx+C3zshv6vTcpdTY4JVYwfadYex0y5vU05gTak1rFerO4P3JSaoxpaq+yBzs4fftPs33yyxMkfhrcw2rcJ68ejf96RYr9Gtag9THKZPGNbfQTVq+f3WML3Hc27i/LZ4hn2nX/wCsYx++pL1Z/f8A6Yz/AKHTpWL9mEU1E1rFmlpLaMif5UfyeNY/lsaxrZRpTvNeN1z5TxCO3Bv1iNlmZpfnQ44jHKdT39/zUM6VhbJjlG++MdsveGzrIURP/f5PDuz/AIxuQqmcAHg3awq8ehnXirZA2jceKf09UPC9ncNhsbktyRVqnm5frJssOVbpO0sCwuhRLzFXeho7AVAxGWVfGbq+zkt4z5hzocUkXLJB049X3KSy9ZgEh6zcnZVSqpMMu8zl/UzMlsu00D2VLOkDC8Q1FVd7cqtMcO3EiLIs2iisUFuO49qm57ozcXcmRI69/wB8Rnt299DHvyzj3nvn/ouP9MEeRY0G0sJXLE6ciUzifjtG72tj3IblA+LrVlly22w+cs/0t257FPgtVNVGfxX8zGsfmY1j+U2DeJ2fcRdjMD4424q/3ly8U7l+JPhv7aS6zxmugz41djtO3caLx8uyh4YV4fgrm7OXMXd3UDXjTUMDXyAHcMYOXuN7JM+5QRCscZzUo2LlqEpCZNz07UqatQvq4mc8u2sZn+0VN1uVEdJFowBjJefqnW07f+IPknTwRvG6eebC0Rwq45+nj3DZbTEdSAnDFEpkiXYsTifbU/49vb/v/wBbVZiHDM62SzR/CBySx14hNBbm7yv6f+h41j58fy27bBToeGaV5FyGP/nfCl/a6F1zN4XLB8S71tm5gI0KnSPVdbiZyrwXKtuIVOF24zztjdt1sbjPrbyXRonfvhXV9297EezikZPloSkftnGtiXYsbmJrWDBPxLt1MnClUNdZb5i0ZHHHWPXEQUaEsT++inGQ7Zq1mXba0JjJbrbVTrDtVQvQMHjnjI1ziDHtOtu3fbI2KIk163hq23ylWOEame/traaIP52rc4qf9UGo1wMmMj+dHbQXXAOIOcGcnPf/AKCzOPf+f8hZ8j5von5fw94eq26D7W5kaxPd4qAaNrCArgbQ+rGMCByBFETC0WTrN51DlUvtNseqwZnO3bc2/cha4wO4bimujyO2emvHvOe0HMTPozAD3nERnUTicx31Md+MRme2w7Xj/wDqMzMn31PHMz6tZnsX7dc4j37ZmZ/z/eO2tvpnuFuFB2Hd7oM4VKcYqf8AVBGRY5TM/wDQ+P8ARaTPD8eFrUXVtLdtVttt3VmdVBsHHfQhJFgYzPhjZLb9t6O4+qpeqV3omkjgdrdtsdt1/wAu3BMLl1JixygmN59ojgHf06p1SuP6So5Fesq26r+H0O5zP/rrMz/mZn9/2ge2ZzoshP78tqrLrVi3K5GV27LLdo2unJz6Y4+0z3/xP7Z1j1ftqfTE+2hGWFAj72zjaNvikqf4mf8A7L7Vsm0WfCFq7btcLn5mP5DHzY1j4ft/NbJd3qhtto9sCfKxsNqUjZtSCVbXttQ92IK1nkO47/bREoq2QkA3OyFqHrORbG52PxQbpFzdfssuWysP++fRmO8TEcpgYjUcdg2/A/8A8xZPI5gZyWJ9Xtr/APTtjMx2mZGcF77bRPcb0K9h3i+NqwKKvpqjMD+2s6zrHqiP3xiCjtE62xQUahblYjOnNN7TYcyRYz7f9OIqG77Izp9U0Tg4x/oO30XbnuCqlXHV3jaLOx7mdK9A9b/Q8ax8Max8Max8mP8ARcd9bp4btbTtta281SERM+2qyqe/7IqlVpdKxfBO014pr3Ajq0tsDedrZdvsIEEaEGQV5niyOP8AXBaEeU6WkpzAjyliDV+oE6wMdi99mqrQtm6Wf0rNs32GGyeR9/btrPp1mPfGImcf2z79tPn8H2WEDP8AFe841M47e2sSMYntrvMx/f3YOIjU95xrb6ZX7oJicRu9wbFiFV+1b3/7x+//AE3HvrwxdrU7PK1EcfEt2vaumVaI4f6AlrK7hak5Blq0+7YJ1tpNb/OY/kMaxoazCjIjM6IJGe8fJj+cx8Mf201LEFhwEEgBsOBWMkVizZaIqssZMbFdTt+7KfaTDVv3B9/c7jtqAkBttVF68uOcjDd28zthEpML2/Ztr23c0edcgcblVWG+ORW7r2zwfXmmJWc9TbfDVataPng48Z0UUxGV4jVCsd7cVoR21vdwC4Va3+6jPpOIjMljt/yxHKO/t3gu/wB/7zn22OqLXnZsf7tdtncuMczUZjMY7z7cojEScwOPaM++u0e8a99M/wDCdlhf/m/+hgiJOM63WrtS9grFUbytfPESU+mJn8+GSPtqSmfyyPnxzj+cjatq/wBipv8AnP8AxH+fxrHy4+NcINwxOtr26vW21QisZ14yoJrWAYmOOsax/JeF6+02N1Id+b00biFcNyeNEpKt+TRqzcuLSPvS8K7fWqwLVdQ/FWyL22xBo/TQ2UWAaOM39yt+Md3rL6alsitf8H7up5qA9BStb9vDX2uNcHt2zb6xopJ8ya8kXCPQNOol7RUjOqexps0BNoYTuliNtvuRtry6KHyFjqT71PFqgphDQnm3xY6LRMXrd93fulnk6c6QP4LsEtmP40iz6p7wU9ozjE99B6Zj2mf+bUByOBD1a3UooUE7av7s9p/tmc+r7p/xqP76j1TGS1Pq951s1QTcdqz/ALtftnevMez31OIjEZ13j+8f9C8pn3n8irZbTf1q5cTmczMz/PU1Q6yAFOI8QbPV21Kprvhs/wCo41jWPzFnwKJ1t/jEq9MVODlO87szdbPM/b5cfyfhqztlTd+pvaOtWvmhu4POmHBHyULRUrynj7q8aUZREt5QfiDfJ3ex6YwrVOLMPhtIT6i03vEVfqbqyR1uVm3aQrzRDxRUfYGeisiEzIxFXGNOQzb6EVgxDn+KL7KY14bxCS5TOdR2LvGhOe8Z1z/vrZKXm7vJ3+77tfK/fN2OIf8A1e2p17xjtrMxEhr951sixVDtwsD9JrCsPY1k+oiz93fWNZn3zqfbEYxPZWO0yIyZCIx6t1KKFBW3K9/h/wDnX/v/ANWDMjOY0bmM+8pn/Tsax83TL+2uOsaxrGsfymPyMfl+HmbcndxPeQ51tsRsu8b/AG4bHQR4e2bZ+G4Mtj1tWNuDdfENhWyiPQ8LBc2y9dqMSEao3Nt3KvCYwM+J0VajOikubdj8Q1tr2CwjpcrGz1Q+ruVuPo2rRWnMYZzy9/8Avx1H+ZnEz7RqO+n42nYl1fawc/tGeBTEz27R/wDjUT79omZ7RMZidAEmYgMZneDipVrbYrX7F3xr/wDMf++J7/dOo7n+0akuUyXtOxpACdff+k95vsm05yUf41+3aIwXf/vP74/1NaCPR1yD9v8AXqqYsW1KJoqi2iK1xqQaLh+Ow7ftt8L34nd8sXzR/KY+FPZ71+u11SubF4+bHyY1jSAgmjE6o+H6MbaAkoSne6q6m5tUr7fkx8MaxrGsax+bj+UoX3bbcGzWx1PxK7ZsvmGFypJpUdvlsWT/ABAN1ZaFNSw36W/LoVLS/wAKsTqls97dctXGQ2fY0UqmbKOdnxFbETDb6+IVPbvmeUhjGcRMzM6mfbEzhKes4QzxKnsnR31gWTE03rs3NzOwftaf5h5s4wOoj+/29479+XeBnWcjrY0gDG3mx9Kw4rFhjWTkv8TOvf398ZL/ADPtM+2pyA4nQBLDEA7zu8jTqJ25U6/fRJaqBJgEIz3z++v/AMwlJvZC1jJn/qIdy14Z2xN60CmnAR4s2iptzOFdsM0z7v8AoePDKf8AY78Y/Ekw3+X2nxRe2fb31KnDpz6imZ+GNY+ONY+UZxOkeJ7qKfQA+z2k9kmc99Y+ONY+GPkxrGsfDH5tVMPtqURwA+Idor7RYSurah/yeHfD5b9ZMOp01+I/Dp7DZAep1FfJtHgj8Q2gLTn9MtwpM26+2s77qlR960KKi5Y2xXbUsml48GpptcPMQLpbJtlaxZsJqHle4oCreYpT4eNb02QmQ5QJKOy43ifHaN34AmhYbCKh72xdCzcJgEhjiYZSXeYz7RnU+840lBWGCtMERv8ADl+vXlxr9HeJxq3P4VsCquf4n/Ov8RPafbOoz3mNRHLA5iNdyLH77pP4ftNbbh+8fsmca/x+/wD+n7x++veYiNF3/bGtmUKQduL49DmE9pHM5MZ79tbpvlndUV0v4RH7zr/93M62jcJ2vcl2hDn/AKlE4nVXcjr/AGzq1uR2PuLUzmf9Kt2htSrgkFfzue2P2+bHyx/IY1j5YjWNY1j441jWPgI8ixqp4NN9CHS3BW601rJqL3+fHzY/Jnv7/JsO/N2K0TFjzDf9/dvtoTYELD5Nm8arpbQFayopPeaFuzVne38IVte42Nq3ELVOcOBZ7nu/mNzIlrqJSnwvfwUeRTefXWwEMkBKuEVVth0Ed20iwiuNdEJnqnxxE9q6Cs2lpCMzvThAl0UforkR5TPcu2P35Zjl2iMeE3ITvUdfGt4vpRtTiIx1s1Qbu683dq+5Wy3C+15RmM9tf27Tqc576hmVdOBADzELLtHLYqwOu9d0fRvWSuXWvP3n9u2v+2px3/t/T+2p9vfMLWTnCpfed4YKFq25P2z/AI9tR/comYx/7Zxn313jEFE/nYn/AFCrUfdd06q5Yf8AqFIdrnZrs3SbF/8Akqyes4Q0zwXIbd1uccrKei2R/LAeTBgpxHibY9u2kKs7de8z+VEa46xrGsaxrHwxrGsfIM4LOqfi461HokHKbTys2TaXvrGsaxrGsfHH5GPjj8qnQs7g6V00m02ASmEDIkS+B2nsrAg2lKfBO1pf1bDuB68RhVXsDusIxrrHwkOU8E1HWIMlLIhsr6LuAsFmiDgoC5ROgfsseDCXI/8AiO1hFDbn7k37zKS5c/umO5d+0fvnQ+8Z9OgbIzP7QTnf1zOrB/hvh4Ex2fnX/rGo7/tnVFS23lLcUQvfqNKrIeTL1fdP+bP/AIdsC0fa4f7/ANM57ZjHw/8AXWJ78e+sf1ftsqvLV7G5Mjs0iM5Ivefu7a/bU/8Atr9p1j2jOijvjGPzaCPMWRDW9eFj2yitx4wcYKf9PBpqLkoyCf5QlkH3RMf6fXb0mQWmeM3nQ6OIy9vVZJT+XHxxrGo1jWPhjWNeFK1SxvPG9x4+M6lGtbR5IViWNY1jWNY1jWNAomTgBmZZXYr9QCHWNY1jWPhjWNY1jWNY+ONY1j8lSpacCMZkPCl46/U4aegkMkGRiflx8ds3a1tFmXUT4GZNt2pKcm3bfCYczDen+VO0oE22rUfUCjtzbfIxXJKi6G3W2fhJnAXd0tXu1lxHqrRbbS9q+PClYuwLK1EmYt0D29aTNi5ZnOqVQrt1SA99+shNgatb/dxPgWcROoLH7ZiJiffUZz3jOhmIXPbJbVVm9uSwZP09zt+f3Iz/AKN08OVqGyLsw/Lv317R3zoJ4evGRM/fPvtdPzu4rWX6e63Jv7i139Gf+/H3nt7T/bX751Pq7++tj238T3IFF+n4h2JNbw6I1vQBdmdtZ1P7zPvMz+8zr/Oo/ee2v8/m039B0HHvuPiJ9+oKWs5CU5KZ/wBaVw6wdbPTbw6pdHPT+cJ4nE63fdg3IK8AgVfyvCf9KjWPjjWNRGsaHIzkZxJERzkymZxrGsaxrGsaxrwtQSG2xZkIlu4bZXvUThgRyavgwh1jWNY1jWNY1jWNY1j4Y1jWPhjWNY+THw8PdP8AGUdX2ideJmLZvDZV7fPslCvuO49G5Zisu4pabrVpPqLqvOrbU9f3714hLfag9ZUA7bNsO+72Lo3ujWrjQ2xkwPhnw9Uti9loobHiLalU7h+U/TgvpcFc81LN3YrPVAOmzc/D7V7UjcIf1j9pmNbVEbds1ncT/VKZLlOp44HEd5GI/fOhGPbOvf7s4nEiMxPdP/h/h5rfZ2n2nMEQNsmP+Pac595xqe3vrHo/yj/w/YGu/wCN3zrPHsE5iMzmde/edfvmZzrMzOf38MuOmx1z2Vvfi9u6V+gpfTCZ75/f29sagddAv27xMTEY17DjtqugrFgFLj1f9MkBBjmMx+agOZ41tvhTzVCHEcRrcqnlbJh/omNY1jUR8I1jWNY1jWNY1EaxrGuOsa4646xrHw2LfF063lrOeN7xNXCoQ1Z5sL1FMzrGsaxrGsaxrGuOsaxrGuOsaxrGsaxrGsfKtkrKCHtM+Ir0o6XWni05YWZ1jWPjQ8FMu+Gy3LzQD8VrJpwIRmb/AIUu0Nq866Q4+Hdg/G2tGW9ONi8PmjeneagCr+cXU3hsbVwSi2R+bdyPlNTdLNICGuyRiN3tDQs1i7jt9pVRpk5PVi/ubtwJcvnOvOv6Yj1DxWUdq2Ch7luFVVmfKLeAJOMFOvfEaRVbZORSElOO+MTnlPHjntTrFdvKSHvvj4K70FfpT3jXH0ZjvoO5d51ynHt2zHbIaromzaWlfvvliDuihX6MSUZIJiNf/r/aNQPp5ft398+rHfV+fw/Yq1KP1Mz76/q1+8+2qFfr2BDVTwnRirEPiSPxNsy9styK/b99bKMVq9rcD/6BgogSiRzP8xe3N+4wiLGPhAzPtqRkff52IamB6qyD4oPgyJ1V8TMr0oUJdrtqbDpKf56Izp1OxWASeowj5oj4xGsaxqI1jUDrjrjqI1jXHXHXHVQlquqN4c1bm6va3FjaaeknjrjrjrjrjrjrjrZJ2uKNuNyj6pDHKce3HXHXhujQuXTHc2cY3SuhG6PXTPmnjrjrGsaxrGsaxrGsax+Yvc7iqc1l2GCjY9mLer/lxaKtXavk7zq8nB68K26NS2+dxgcXdzrldqiTnN23bhRtVl+5z9Clve+TbLoAfJdvxPULZlVKtXGjMZaRwPbnBcfTjRtN5RznOj8LXh2jzvDIanXh1Y1UWtzdHZzjNhFMzyVXN/LjpgSueJRia72ILKmSEl904n4bSEbftdjcmfe0uZSU6MucxnGpnvgMxETHbtEFPfRSOJiB1s38LWtbgeimSmTnUxiMFGJn7+/v3z++Zxjtra1Is7mhVsuKt62HbV26Q1DDG5Wyvbg5/wC0fvqB1/8ArTfNawJxGq3jCn5GCdJQzfd1LdLRv9ggZIsR77r/AAlOrQD/AFBZLgGdQJIv9L2NtVW5KK8PJHiBlJu4mW3RhPzbpvdveF1QuSMx8c/kR8AXJziNHt7RXykZwUYn8qO+ts2J+4/pj23HZG0PvHUxj5kH03geM68S+JVbzRrIUrh8Y+ERrHwxqI1jWNY1EaiNRGsagdQOuOuOuOuOuOuOuOuGuGuGuOuOuOuOuOuOsa46xrGuOsa46xrGsaxrGsax8cfDGsa4/NW26+VM7lRTeltaqtjcwHcndJF+sgHtKi2Dr0NtrBs3W3jK1v3E5ele4iTEHiWFwjA6adT8IUsALzWhtUg2jpRWzc/2zqf7OdGInzHvOuEyyAjvO8TFKhU2tX3e2q9yULYGIkWMJrJM59QDOC9tGk1KHljjtWwW9zHmkfp+IGjFhdBE/R49U8dokhzHKMRqfu1PeM5zogiJyBZiBIyjHvvMxUpVdvD37ds51/n31H/poM+/Ytds6gpCfTOkzNTw+1zP1tfv/bUe2O2grmecROiEw+7tqBLpyWezogMQLOcbIgWXJc79Ky+bNk2l7/8AQUpmK4t5Dj8jH5VVyFA+Ho6s/LH8tthANsZP2v7ltrNm4Dwzax1i46j8kffXhbeEVEEt3bXibeEW18E6n3/IxrGsaj4RGojWNRGsaxqI1EagdQOoDUDqB1A64646464a4a2PbU25M3xnW+7amoSzRGI4646464646464646464646464646xrGqWxW7yuahwF2g+i3hYHE41jWNY1jWPhjWNeG9pDcbRE/upuy0Gp6c1giN42/8ADtyYj9tbRa2VGwWwvp53PhU8Q3qW1topKOjiSn214c2aT53LSZNdmtfvbt5YwlZDtr3OaMEMza2B1SgNhjF62nw1G47bETEBrcvBTUJk6rOekUiJxA0Ty2o1E4aEjOPhsFcTuHZf+jaedu415fd7lrjJdojOoGc4/c+RFMn757RrZt2Gt4Te3p8NMdLWkZfczMY5R6h7TEzHYsSyZxx0XDtMTM6x6B9teH60N3KXN/RuPK9uDGz3k/D+4ijr+XPhxkdR7T+0+mInXbH/ANSElZtrWHct7cE3RrK/R1H9/u1WXBtxrYvDdeKIssRyLxR4cSqr10RjVoOgpS9TOdNjyOwKV/xhGTPAx3/0FY8i1/s7YnbPNwH0mr4HMfzPvrHzU6h3XStZAOv3+cbTAqsQM/S/ko/kdl8Lr3Xw7e3E7q0zoSkZ7a8wzGOU6znUfkxoGkHtOiZJ+8/Nj4KVLDgY1/src8n1uPZiZWciXvjURrGojWNRGojXHUDqB1A6gdQOoHUBqA1w0K5L2jOpQQfcMxrhrhrhqnabRZyVq7cdeZEt9uGunrp64a4a464646464646462PZ12hl9iMha2Ok+sUAkVm1PTaQz78dbDbSe2LCCGC8VWUuYpa5gj4646p1Jt3VIieOt+8P/hAqIW8xmNY1j4Y14T3BNVzEvLjplpKlyZtCB8QXwv7qbFfYpJvaK1DJHaqOpvlVkJBlCg3cboVkY5/7KtBBy1wC0PDO2t2E1oWBs2jb62y0DPcgGXTv/QbZYCzG266ywXUaZk+JLl2mc7l1UValewMiXhrcFHQhGYg2NGB7zGtift/n7xmS+r4v3Ktb3AYqYnRTy0JcRKMROrEfh3hxKPZ/wAB+7vONREZ99DyP0xnQpOXwrHqDYIubcmnDOmretqna7/RYXpL7pxOdZnj/gcjmf2KPaPbXvOdN/8ADfC4L9rG2sWjc0scOQXuVNlTqw1fS3AwO60lREB+3/0xEzE9/TH/AONnEa1a1fPRzJTMl74zmSnUdu/tpDOm7PvrZPEdbyAA8+M774gVcGKtXvq6/q3GEP27bV85uC1f07nZ8zuJkP2eE/D0APnrwer/AEFR8S1/tRZjZvIQUdFx8ymf5nb1rZaAWzgd7p1qzsVWcx/mxKRLIzif5WDIRkYKYH5I+RayawQWMkdylYoWJTbUSm68OjthbwMb3nylzo+ed5TPQ+UFyXtGiCR94+Ma2aQjck9X7eS+hmZjhvMrncnSr7dRGsaiNRGojURqI1A6gdQOoHUBqA1AaheunraKKwqCyRydqst6SEo0auDCjXDXDXDXDXT1w1w1w1w1CpKcRGZKhYEOUqLHDXHXDXHXHWwXVhWlDJgStbimsgiIxmXF1Wkc6xrvHtqe/vrGsaGZA4IJwVu5Zu4804mamNY1jWPhHvrc9kt7dSS57IIcTqnaZRuLsJ/Us353XdofuU+knxT3Imbaw4GjuZ2t0WW5c7ELtjQqlPTgJ3BF6xYm85U9OzJfiIt3JU8MrA+oPeLVobNqWgkEw6w+163ER6S41H6JmJsWnUduiDMptSc6gDMSkRmYxrZqMXdzAD/S3e353cWs/ojGe/sfDnPCZ4yPpidZ+njEa5TMY1salgx15sfS2TxQNWu7zkSWt+3b8Wu9WB4gXqnlEYiePTjEzmY4jGDiYKf7TrbKkXdwQr2jebkXdyOR7L75ziNFYkpmR9A5n/1jjPv20RaiMzER77tipTrUQ176n/3GJmO+dZxHbOocYfaWkHI13POe+dUo8jsrbM/q+Ftg887zluP4c8CHbtH+pCch3GcflCch7aJpH7z83GZGZiO3yFERPac/zIrM4KQGZj8iBmdSuY/Nq2WUra7CJwzdd1s7xfO3dLk35Y+Ee+vB+31HrYTogj8XbZVQgWpiBL4RGgLjOY1+K2ulw6hcSKSnM6xrGojURqI1EagdVqjLDIBQyRf7M2xVy9OTrkpkgyMFAagNQGhXJTiI7htFkg5cNEgllg4xMBrb9wFKoU72s7mqFT0p5FI5mZnXDXDXT109cNcNcNcNSGtmQOTZMerGffW6oFd8oDXDXDXDXDXHUxM6464646kdcdcdcdcdSGkVTsvFSoyW5bM/bICXSMx8Madbe9Yg1pEIBzOBzjW4bX5FwLhoPkVyZcRjurabLbXQ6RCxNcfDjBc/pvZsTz3He+paPlLunAcSxGt1gD3ZgLL0bttY7dZBYPF2ukWJ9M6GydekytHCR2usMRN2z+hcuFccbD++Z/vqGsWBAJTA6TH4Z4aJn/HKJn/vrHw5T0+P7TATMQvlrc8UNur7cE+uZmA9vTM9tRiJ799cJ5aLAmMd4193IiL1U48lsFi4X63+feO0D/n9sa498YxPfvONTOZ/trY0Cy2Vh/6Np82LTGnPq98z7a7Z9tRHec9pjP3e8YzPbVz6QLrxqpWK3cWkPeptU71u0KDI0FCCkipEQK7DBIcRGS/6DzOJj9v5CPfW52alp6yo1vLh+RlXlscZ63wqblYpV7KUFEB88a2WkNy2C514h8OJoUQYos6OMFP8jHxj4VL7qk5ScjNrcX3P1mSXwx8YjWNRGsaiNDGm7NcrUQtuThEDoR14VUHSYz+vtjW/rHz8THvAaENQGtoVE3vVoRjjrd0x6S/fp66eunqrtQuTzYUxqxU8u7hnOuGuGuGuGuGuGuGpDVOx5Y5z9p7ouA9GZlxE9smfvw1w1IakNdP+2pUUe4zrhrhrjrjrjrjrjqAzql4dT0YK3kiq7RToXosdxDxW+s62uKjZZGNdMpjMROE7fZsLI0pMgkJicTpCQPn1C4623cC215sFYM0kj84LA+/dtxsVX1HH0+th+6XynH1Bizt9uOfJLNx3azcMOTJwxZhiTiY1JHJxOm2mM5SUzyp1CtvgI9MWW9YvL1IKUMUaiwwZGTOTxnUiUhy/p22oV7cVIHW+PGzeMEzHQE5CcjOv3762uwmta52FwYXGrfbI0L4CcjJz+2tiQJ2ysvj6NtxWrrGt92F/QJSQFEx2nX9GJjQd59u+ILtE41WQdu0tQT9TfnjL100fo/fMCEeva6I7nua6sthS7lYal56gODH3LM5kZ+2O/bGMatfwGwprx+tqfT27wQY/qnX9OP3/AHxqivLSaf2MKWMIy9/CmwtuodZj0aRWTttIK9eIgHN4R6NHJz9pYP8A0qO35aPLdN3mefP5O3Gf7/CJHplEj6vyDit5JXTI/M/Lj0ZzHxutQ6xyqJ6K/wAq9tVvblVztr4D+fRulUbBjPfcPENi+qAaczEzmf5OPljWNRGsaxqI1S22zeLjWVJ6t7dYos4WVyEwOhHTt2uWdvXUczKYDUBra7x0Gf3Cd+Xw9AFl7TtOljPeF6FeoXpPJLYMdLvhIdyxNpvXn/HDXDXDVe3KlcZjTzl7eU6VTJmmUpGO2gqp8rmffhrhrhrhrhrhqQ1w1w109cNSGtuqgtEMmMmxIOCRYMTFlHSsGGuOuGpDUjqR1x0uYBolOlMFqoMJ9O4nxoNGO5PSazkWDIlx1sG6bemkuq9UdW9ulXZogFqiYd/F2zNa9bEyhVl6tzXg71WnFnFM5OEbNW20I8z9SwxaUNn8Vguq16xtvdQEgTbsssP5NZ1Jt3DuMAmCA6sWm3TX1p1tfhVB0xZZzJb94e8ixc1/WO4Y2urFAP1vBdVPkTfiJb4zqona4diOrOv21tOKGzWr5fqHnvOhx7l7e+OOcxiFTnGfWOC9tYmZ1a/gNlTUjAvksNiILjov/ePTz7TgYmf3nOp4kIwPbX9862kYp7fY3I40REUkfvrHaZzGgmRLkOoE28pxrtxzPuXv21tNTzm4ABfp7nam5uDGR9o++cZj+nOdTiI9OZGI/vPatUdbdC0DJFd2C5t2xSTF6o0mX7y0JHJUUJ2rblVgmNOOM/5ZY5TxX3iV4HuMEf8Aq8Tic6mczn56VgKtmGMSDomclM+3wj5ALjM+mJ/lGPY2BhrDOPyUqN7gUqOR7ltdraLk1r6um787bxQe4IG3OEeKa211dyANlZzV80fDHwx8I+MRqNLUbM8BktcdRGvCNyuuqazIRZ4suV3ilKigzgNCGhDQhoV6FWhVrbNuBw82+17bwSMEuMahWq1SWniNFshCjljR1+mUxrhrhrp66eunoV99bZXCRjMa3VAAGY9zHvOuGuGuGuGuGuOuGuGuGuGuGpDVJ8dLgc4ltgFBmSjTvqNIp1Ia4a4akdQkjLARMyaiWWDGYmY0m7YrRhLJiKe8MRfh9nLdbtejcbstEeMcNccTo5IvumZ1WsnUeDU45TZnc90FluYHT9t25VcHMLAOvMJEJDUJs3TOYg2FVpOuulSIyVCst9vjYPpqtpQm8QoZ1EWZT5jNWJFeyb/XOgIWC4HvO6101AfjkdhhuaTDnJbbvNrazma5dtz3mzukx5guwMgIP0xOlLlrgWHct9aCoRRTPonWP7aHOYxoh4ljOdeqcR31sVDzN7k+MV9wtMuX3WdSEmJHH28pgMR7CXGeXbIclBz4jMQPtHtquk7VgEgPq35wBKaFefpcfVETGdTMyUcfcVyU4iPX4fpxbueW7Yb4U21qOAq4luNSaV9tee8hH4d4fk/+P++vaPbXfOY13xOdR7Yz28HWqyL7PMzAzuF+oVNieYtLY9jTtKeWMvZxlvqjVt5wcwMci7/dEZI1FJx1ZGB/0oBkzEY01cqaQTMTP5eO3yxMRPfv+b5c/Kdftw+WeHSHGeelEIsiWDyGcSU47R/Ioadd4NSUizct0t7vcmzfbLHflR+THyR8I1sL9mX4YKLPS6zeMuPh9vwiNRGojXh/dq22peNheZeUNssMR4xA6HMaiM6ENCGgXoFaBOhVqFapWPLjxmPTZsdfERHpENbfhbozptpfl/eNWPW2ZjXHSkCUTnUhidcdcNIrwQZ0NliD9E6fbY/7p1jXHXHXHXDXDXDXDXDXDXHUhqR1x1x1w1Ia4akNSOtncqtaKWxrenqsWBlOJ1I62ygN63wYXEb9WK11qhLlHHVDZ6xbTEsAZOgFJV10XgkxdCycXRHAfglnynW4emvSOsK7LQ9O50ofUBklMmlVejukjuIZGNwbXZY8nPAIJiy5BJDPSZKyOBnjwks41WrS90B7ao08tM3elFy0d63yKcDY8PVA2SWxPrBYy4YOcDvdHbK1NE0G82Y762cBrrfuDdMOWMIinM0fDV3cKXmEjHAwJRGBR3iOE+rQ9vvjSUk1gQGOV/htewhVV+sUl31nUFIjMRpKxNogU8ddHk+VAWpnl2me20j5DbXbk2PWwuTJKSnlx4xifvxiM40suMScEUM27cGbfeF4e/8AtnR8rz4n1Y573vskXbW82hs7gUK/RiM+2vu9u0D29s59+0RqpVm08RDtqt4NQlEEbOT9o2QaJk94j1Zb27e1u1zGFrD0STOpPTzMrUaFRyGZ1WiGlKY7x/LhTedQrArKU/zgjJTiPlj8kDEUsGVwRfJjWJ/ksfOu0a6ba8CHH83fkbAvY9uLZmEVz5VLlh4jS/Dds63UhRYfXJByJxifgnbLb9vdcUmZrfJHxiNRGojURqI1A6gdCGhXoVaFOhToE6BOgToVahWoTqF6hehHGuRTHvOsaxrv+2sTrjOkbb1AzMzqxWOp9pTx1jWNY1x1jQr5TpgDx1x1x1x1w1w1IamqfHONcNcdSGuGpHUjog1Ts1V7dwZxgk1pt2+mnV7ZDpo6nKCgZJR8llIkQyZZnvNTZ22qjXiURFfdyXt/Q6eTPa7KapuIcRw1WfYTUg7rZFFzcm2uxfYe5PNQBJTh/VYPVbnVChNt0DGp8PI6eM99wrspMNPIoDw4iq6/MWsa3mtVNIBUAevuVgRVFRE5Xor1kkdGXH0/C22IuNayyPOL+xUbNUsJACYmfMdIO5bpMISmiqe2tr8WFt21+W6POXtlzzYXvEBK8d+cLLkI41STCbYIifq7lZm7uBSH2tYX2Y46A4GfUPLQjM5KI7K29kplzO2nqkcwPqGnSO9cBChnlvtpcuGpWn+GxH3FGiUyI5cZ4wPKJ/bUYic41AyUFPwq/wDh2wttT+t95d5xqYwPtoR7e+j7Tx7akJgYmY1tzzrXFHHfSj6qQOYkdMmWTwCZ1acRT5deI1IMKChPfXRUhvfmUithmIDmCBIpien2n+XC/YXROqLJhP8AKgyQEojH5I4gozGYOYJhSEcR1+3xnHL0+3yT8JjH769/hmeOP2pKFtkBOcR4g2ihR2xB1nwbfnWEsaIRMZsoKrZNJyMl+THw4zxzicfy+yMSvcVk+PTFmtFfqQwOnv1hb75kr2+AWXLrmkGFCo+aI1Ea2fZLW9WCVU4ZYkkvNZ/cI6WvkURqp4UE60E5kwd3azo2emXfVLw8xyoNkwEWdkOsPKJ5CNfQo0KdCnVWl1YmZnEFU6ft3gapTqKmP6tQiI/zqQWuO4aHofuGvQB5lfpli59lRqGB/wDK1zVw7L7i2sA91xMhZRyySI4eaoyOYXpd+rx7enRFUs/cevJUS9j1+E1y+1ul7SoQmJnnpuyFmZA+x7VZH2DOip2A+5c6iSXMxMaIs/t8MaxrGuOhjBxnRMHhoh7zrjrjqR1IakdEOiHVJ/k7gtxnV+4d/bmEhc9PjpM9FwniJ1O4vHq9LADtkp88PmPa7cB4HSV3OtsakkLDmTLcYs29x6Uxk3IZWdK2xg3fh6tpCAydl15jqKqxcensVkE2sH21LAEcyUY3142bZSGgE5ZELzyaf4XW6XLnbBqMN8wBkU6nHH/O2bs3bLHNXeLfixrqH0UwvW2hCgbff7WmLPuOSOdcJ4cu2MaFcjOJ0Ixttfmzva5zT2s5n/eJmB9s8oKOeT9Wu3L+0bbW6tjlOOnU25XAWvCCO7tVa3XIJWMSql/s/RtW2frtLJYzE67eZCCHiNgNu/2dmJ6XROOHcfbtxx+/sHtqpVK3cUkPffbAtuwhH6Ix7z+0Rme0aHuec41ESRYiO8ZmYiczrwv4c4QN67HqsPgBxzgdMsGlY8uIscTDKVc40PoKTGZmUkbGHxKZ1STP6pzmfz8fyXvrpFjOPl/b8kB5zPeI/LBHOsxvMI/KtJqJppFZkVv4CciWY0yyxsYMs/Fj5atQTAx8WAI8eBwfzNes6aVAgQZ8iYXLhh5SK5xmce3wPeDPw8rbOirh/LxOPbUXn8OHULjJSU99Y+TGjquWoWMWQhEaAJOcDGZNJqLiwZEojURqpasUzk6rSWWJIpku8iOlRxOJ1S3qqysPUPgdx67+6IgO4R7aYMEsonXR76FGf20FM/3jGhpjH3FoOKo9PsRZ7RrPbX9PvruP7985/fvnvqSmdcu+oZqDn9tcp76Av2nRcZ9vZZCM99EUyXonU8v+bUHMf1ToL7gjjEzqNztCeMxqN1YqI6waXuaWx6hmNc6jY/o0e21X/tpuxR/wS03aLKv25aJDQ+8Jj4Y1jUhqFxnvriMj7akdcdSOpHVcU+WPnEcjDv21K9ZaKyWJzAeXLjyxOIVJFER7u2piWKg5jF/bRrCBLmZ1VrrpL67Z9f4nXIOxd3OczcJerIsd1WNI2zMlFNpEAiOZfWgAERz1D211amFkpjBXWcePKdTEmWlIHa0dZkZtMkmGRHOSkNcdSOuGq9aLIQhUzLN1cEcKiJ+jOjTIDnIzrGgDlpaA21EPsxEurpO/c5PL02LHVuczHXYZMuPIePf+8HU4tBYGLCp7BfrhDWo9FO2m0iJQcTqO+vF1uGuFYTHEAickU4gePCZOZzNlshwkp45jMcu4hA5mZiJ1jMT742/+B2x94/vmZ5Z/f3iIDOu0ZxOpn0RjGB+7MZ5eGPDWeF2+PYjgBnGo/iD+vGBe6PV1B5TMgUTHeNITHKCXxly60y/vHb2jEaOYEJkpxH+gLxzjOrlnZy8LpBC8XC++caj8prjdx56x8YGZzj5okYWUSOS+TlMxETPbQzET6ozHw40/wnPIvN/HjOInU/BNZtjn0hzqO2iLkZFjHy+3v8OU8Zj9v5XcLe3P2uiqlUlVn+TiNRGty8RTuGzIpdCB1jWw3lbbu6rDw5B4n3eru1lRVA1EagdCOhDQr0CtLXpH02CUaRYBwRgvUYkQTEdtJph/V3nhAz7Y+Ez7dtMzw7Yz3gf8zOBzOufqxr3nU9vbUzOZ1mZ+ERmNHxgY46//AF+HKOfbQlxzqPVEzy1jtoCxOiOSPOpbyV6pnkDeC/8AJWcrxx0Fhw94YWA3SwER/VCt2Gf1hxqLNaxHfGmbdVfHowOnbIUfolnTqT0feGv+8fCe8a4a4a6eiDXlsp5Z7imTPEajbxx3nu6p0p/w63yrdKAxrvyiR93uc4x6s969YjkW2izF/lZMuExxoVSXZEj46r11pzIDGd5rohMs9mMt5qqWAcSXa8vRmAKCY661tQUFjhEd9VawUq3nLUd7FsnmZNxMpQTXguI9VzaBr1+fL6h/qTOtiVWt7lPVWOt9q1hvhCxgNTx2jb5L/wA0Yxx58o0Ucp7RrjOh98cc6CoO3UgsvDk5rzs2JJs8isZoUgrrx1TgeBZzLaXhW1Zo9SSENUkht25OTuGB1RtpqbqtvD0FvFKacuFwzDLLBukyqRAVvcbO07MsGOIrthp2m59yGPXE8ciwoJhSEcRXPH1xjPeO0T2PtEgOONesdm2CE+ot6sLl41q/+7iXGJxM5jK/aZEhiYj3mNcJica8NeGPsu3x1JR7e2rmelALiJlrVJ+l6cyYl+jPCFVsvElj1YXX6BnwjLBHiERqRmY7TjW82WueFVOZ/Mx/KyMhjlrlOg4d+eflx2+faL231ttthcr9VzMSc4+ERmflx2/K2zbz3Tck1FGAFuNItu3F1UzE51xnhyx20pRNLAe/GZLER39pxOhKRzxmY+ERnPxpxXm2EXZOEHx6hdPPCZksZnP8nt+y3t0Q9tJEsD8vwnuG2bbuht3iv1lbk5Fjc3tqL6aPyMfGI+GNRGojUDqB0I6ANAvS0TOlV5/tpNMi9onSdpn3b6YTXWj7B1yiY9tZ1n051M8oMQ+6MkJQHv2mIyPKc8DKZnXJslgo1iOlx9WjWQRgCmdK5BgZ7nMgrPL3hsY7RMxyKT7Y0RlEY75ifbOj5YifaMf3nvM8PfvOfTme2hnvOdZiP21H951mNTPbUF8Pb21mYjUFPtnXVmJ/vrqZn21Fkwn6RSOlbu5f3+vSt2UcfVjjqa9S3GcDOnbHE/onjTdusK/omYmMTifhEaOPVrnMBx1XjuXwt/paNBwHKY7UuGShg6gRZyMwE4Y1hKLnMQDLUMAx7Yr2wRyKY5TRvN63TXHKbdKwzJkUTqztZkhWOES/amLWJZEoKkYu4H2mrRUoPM2f07RvvGbpGeEx30DCUyCHtNvdX2hwWoLB5mM6TyTYWWZDVQeEsu3eUjZ53TKwYnpoQLJgMyPYYGQ5Qa4KTwGc9FG0LhjY5222GteTGHMnt4BCjs2FxwYw+r1oLvzI3857kjxSlFMV2FnDrt8rV5lgxiJWHMtdQZHoo7BtSFIE9ysx9C/dZcuMa3vKonjMjMxJF7ivPCfTBDx0M8YjpzOR+iXqGOXaYmY7apx+GbSdw+z+PKJPORAMz3zxjvPGZ1ISJcBnlHhzwxw43NwDT3dOIgY9SJJmXt+x1sSDLIkWiMNaUYk5CkFdfK13ldhhv6ddOIBOFhBlMlrcbsU60zjkdh5UYkuXO1+VQYlNwCshzXurqz7pFSX01flR/Ox+RHecRqYkSwUYnXGOJZnE6WwlMgwnBEUkUyXedf8A6a9tRMxOYnvExyyeZ+QLbV021h49L4AMmcDHuYSDCGff485kBH9tLAmtEAjJXqFjbbh1rgcHfKjbrVmo6whJmn5dt37cNpr2E0Xytf5WPnj4xradldujOKtbrsTtsn1+2PhEaiNRGoHUDoF50CtAvS16o00N2cfp/UTtqw+71aWKwjEREaku+iPHt7l29WcQBizHE+8QWJ7ZlxuF0wM6Fxr5RHbSnQK4lk+sCX37+my7plxEMx1mRU5yPdtgnRHHtoLHeDEPUUmQ5bHauwOln2CYkS5AWY6gyE8ynkqzMlAcc663vJTymO/t20UwUdtCPJWvaZgpjQl+37wWfv8AaC79vaex6jGu3KNFnP8AjOZ0OMzr9/8AHxKe2hcQ/bMxqtuj4OBKcwvdlGfBkcdGircHtxnT9jmO6C7NrOTMwQTrGuOo9M66uiLnOpLkjjMdwIIR05iI0zqU+wfaf1RgBGeZ1DASkh1O3n5Pq628JVag5H0zhgTETplOwZ8AkpGxSekPqZ41dv6k9Z+elctE1n28V1rpLoNUsY1ADFiOt9nTBlsxT3GQnvrpTjMx2oUW37YgrtrepseY4mslo8Ok6zUZVkI6O6+HzqcOjMtl2yW1CJGgo1xXsyclEHetq5SLCdDGU6rbVkQX21dnJqVWCehYUSw5TPrWs2T6I7xPJnUfBHGORdszqUQAQoPUzbdtmw6U9uG+7iNlooqximEci7Rqx6R4SMdTgQRBaEvplMn6oGJCS5YmSnExEzjbqf4jeBcDxDd7nnLkir9D+8amYxgIkYSs88RiZnYPDAIxavhlhnxjUiNkp9cxq0yAj/lA1y85l8wBBYhHJI+65m2wQskUjRcP4kIDMguDgs40UwIyU6t2uic2bI/V2zZ4sH5m3kg+bH8l+/f4d4j5Ix/V80RmJ+OO2dft+RxIYiZjt8IjM/H+nGPiNirG0GmUZs6R0Oi7rdTqzMlOZnM6IpMpIpzOpjHwoUG37EKQMkW47W7bWcHjIliY99BMCcTMQWpnJTOMaAZM4EYzLQ4MmOMj8EVm2SIUhJT8CGQnBe+lhLWiEYzdqqrdMUt6h/JEzE5j3a5j2yxxkZ/LV3S5Tp2K1ZxAn+XAJMoEYyT6rqpwNhRrLUa8M74rayMXx6PEe/p3IRCtHbURqI1EaEdCOgXrw5WSdo5dETO91kjaHoRETXpsdOFjM6p7ICo52fVI+3EYxHtnvrqLlnae5n9TpwMzpnEo9XaJtDBcfvlzonjwjIJuRkRXHKes17uSx4xa6ABiO7CQXDqVijSEA5RxE/U6xKIVujsNwjZPUiZDpx0+awLUTNY1RnlEkTa5iAY0CobKyjA6ZBE6eIFERZJa+mxfZDAOYWvInxnl9HEyfIomZ92zHD05nS2cFzMxOgjqBrPSZP8AywqYj1TnUTPvHsbMFEd51HLlkI7SXbl+08i76jMe/ecxETj35f3nsH2dtfvrP99c+WvbQFxLOiLlOdLeavsOY0neGh2ZEFCr9a1HEsaftKHxlfp1Y2t6czjIyOPftrGuMx3jOgaXGcxpuOHpmdeZzX4HGZnOYmNMtEa+PHvDgBIw3tLXyeRCOIU4ke+Y0gYgNWVrYvB+3pgOIxiN4AMhP9e3LrEc+ZLGrwL86cKzK3hwcUDEjERM8h5YintjrQEB+kdoXXo8q4siXeIzSW1+8SVPc7FA81yxrY92bf3Epua3S+qnVIuWTa0iMj9WYiSKIjTBHa6HSz/FbXb+suu/lKfEb6zXwNaNbBskblyJs8V7t4ZXXpm2rnS6wVk8miXmFVzs2hQvJO3a0va6H4bRnOo7nqJlY82j61R9Tl0+eozzLlGuGSiSCeFTbm37UJqLKT3HabO1tELQafMbRs0KH/e+ccTj1agZGYgvTqpXbasitAybNi8Oq2wIc/12ms4hn3l7DxAx6iW0oocoVI6LJcuRSbcOIyg1n0uPTxJjONsUtzz68YgNtrdbkthagcs9sau2AQmTOfTRonuL5tXh7TMLXMz7fzWZmMT8f21ESRRAxmfb4cvRI/EYj+qcfCe0/FchEz1Bko+Pf2+T9/mnt8y+PP6mePw6Z9GGY9Gtn3V2z3Qso+7e98dvVsn2PumZn4iUjORnEkUlOSnM6AyXOQKRnX7T8RzntrlPeM/nyMx7x8oDyYMTOI8SbPR2gqkbfd8z80aXWNn2xpiiXPf5K6Ds2FpV9+4bc/a7p1bcRDdUrM07ybARBFv+/M362trFCv4RqNRqNRGojQjoQ0AaUnSFkE+jPKttLGTB2pmBStaQwoYiJmZ135aKe0wJRoRk8sAeGoZIu59USUbge2FgOYX0YZHv1HcxIl9L6VQWCZNDjMTbLhz7YgmCUunjJEz+CxgupWKVnzkuIFWCapnBkUL+jSlol607j/SwY4eZSXIoGea3MWDB9tGbLBSYz3FpywOkRZsQ15CWk8UIMx/UiyIV84mWKXLJmTZxHzQrKRGPTj6eZL0iRynmuPR1IPjJTx1wKczE+nl6/wCrAxkvWWJVLS5QERIxJCciQZ1BlGfadd+8RoCkpmZxAxx/qxr3nXeDiNTjHq1HtPbtPf3+MTiNSfbWc9/bSdwdXnsfIUb0pnZ0cdMp1bo8hxmxszFZlfrg4ascH7DmTn+xq5Z1NYsZ0Qd9cJgoOI1J5bLDjM/cczOkwUGM+0TYhUe+puRJcZnvYvysZxpzSez7uWpiY7ROpSRLI9IqweDYBM0R1K5N6YdSTY9NErDSjqdUl8iA558javBlOE7X1l+YfPRS2wUBCKuAUb2cokjLSTHJdYc6qprVU+cIJy2StP5FPI6QTWHrjPEnTL2Z/r8O3PIQxVnsPnUPQR/8K/J2L0+XiSIuHh/bcdivtKTbJcpOIgYweO0tNsRymNRB55qzppcJ4coLXOcTPLvse7ntN/rY5g/cB3Z0bhaXwpXbLLdpjW/equU+o4wNCi3cLoKSElrbdip7TyKsOTM8DnT39o4xyYjqk+BiO1q+DOQjMitPVA4sSfpbuCyrGIdi5RMRBlE6o1pZYOCLArrCpYRrECMmXaJrFudzqszFbsI8F9tXHemFgWY/mSKCxgcfAePfnGixynjOY1Hae35A8fVzz8n7fKOYGSjGoPiBDiPhjtn9onExOinkUz8e2P8APwIVwkJA8nqO06mclM4x8IWRCUiMzHIuHHM8dZ7Y+RcgJfUHlHxnvpVdz+XQUbPkj4RPomMd+mULg8en5F8OX1ImR+eZmfec/mKHJxrw3ttYtthhhBz4rpIq2/o4jU/CNAUgcEE4lrmPbLHGRnEa4axqNRHwiNQOoHQjoB0AaUrOqG1sf7Rga9FNWIwPI+We+uXISx6NerM5nUBHvHfT0QyYDPCDCISI+Y0iu3oyLOMAgetMxziNNSyvMwAzMBJ9fg5hYcJrb6CnVlS+Kmc50lizskVo9PvxIzC9ebHizmEc5S8g9bBDWCkpHOqaxKzAt7RMYsGtecCPIPqtxMyUMmDzoGSsBxgtOLC576kYJIEuJ5RDjVwgJzFd/HjjsNfHGS7kxOZn19hrwK+PKcRXV2zGogf6ZxrormfeNTUVMdiiJ8hP9DYjRbe2VxwnJBScs/UBTolMj2WWvLTicxOuE/uPeImY7xjUqntOgqSce8aGpMDPrHUKKJxEalZ/210TzjE6kOOomZnGO2f8d88omCjEoQEnGSjRMJZfRzpG8sD9ccxDad0MTxzY2T96xabWagpExKNYLl29hD6/f2xGP8NXP9HeBXOcn6RFcK9TZjiw2H3iMQa5rhh/YvLNYmWD6o6IweOfqqbfkclMYtUQWkmDGZOeq4RJnaayqCupYwR2nNssKTnSa3UGYwUtFSNvXE2phj7lk7JR1p7MCUiQizno0MEQ5jMRRqwzJ244outJ7+MQMCyo1QBJAWMFPMTZxP7zgfs1VrEsQYySGtcsnbka9X9KnWDZqfVtSM2b9o7FthvwelVZIBnOIeyAHh0g1Y4dMYXIlGxjtJ7J/Eynq2BX5g+hOQ8sPoEI5nSoHbvCkPbeL4M4U6n+7CUxnW07Ba3c4mchXoUK+2ohVUIjTGwvMlMYNjmnHHHHipYQEGJtUgEI4DrckIXAFMgOmPMo5Fmde2eUcTUvk/jH0h242xYkscgSXmJyP2vjn6P6McRxHtZeEegJ+oTjgOMiHLUfyWfTjHzT6pmfgwgLjwDj8kfD9p+H7fIM8ZzHx/b4ft8xRI+n4ROPkx2z8CSwFCwgmA+E9vgDTACECmBiI4TPLv8ADtx/yiuT5KBmI0xYApRCzkWB6czn1fCPhS3Kzt8t8oyQ17/FSpZyxIx8Kdjyd5bjVDNNb1GGWOMfLcp1EbXTfXuQ1/5EIPjnGpjH5IFxnVTfbNNfFLJiLd5ls5JhZn5MaD7tGUTHbWNRGsaxpCpa0Qj3reEq3lY60zLN32qdtudP3HavC7LtSHmcBFqgdK2SWe9esTTgQGZmhscLiDte/YBwOI13nTJYHZkEwfOKIc9KeITBifT5DES5pCa8wuDkMdEpbpzWKxBAMkmz0GsWwsmm+AHMSuQJl9VhnSj9OJibJAyeSjaTvpJwS0sYxJDADk7KlxADEToTrJ6jBIcvgcc+cckcmdpn0zXMXwsZzqQFNghs5wBrlEzDMFxGT4rGTNabDhw7toduXBeqZnUJWPbjrsMftjMfCZwPfXKMZ1Gv+2o+6Yzr++o/z78u/pnUOYPsU6844YmZOcRuZcImdefx9yRnUXK5T60DGobQb29tTQrt+x+p25wDhcwUGli4wQahpLP7eyMPOZKcaN0iX6YzHXTPuqM8UTmeONShIjJROhqdaJKJ7CqBn27QEx9hdpWU5z7d1z/aa+5vT7+sVXa1weLIjNnZoLJ1i02u1B4YM6YPIcZ0ISETETGjwIT1dcufvEagHML1xOjqlx5zOTXVNr/UuRgwrVzmM8tIsI/TWerLQFBQRRoRFYQ1ghn8MW1ebGSNWxJAuUlMzesTTsmFZfDTz9Rwfv0yj+uI1nIYj0zXrHPImFxTbtHaYI4wFXgpg9QJ6m6XTsLEcYj6jBJkxGqyF+VF1kI6LOdhnTSMlqrURtFfr2Zjr7juLr9qfT2DuWRxkxKsogaPqbxgImS5MHMZguw5nSw6XcoidKYUZWkJ1dYOz0ZpKnNtKWWGQKhkj2bwjw4v3P3jisOIDgWmIR30UyyRJ2AU20R8l8MJpI5GsiKNRZSYSUMjjudlbndNfGZmAh+AScxJQYyfeQogdh05j6az+mKkDjScIVxjRl7zOrdglhhc+p0ytY5IuT4aBDn1T/JY+WSkp76/b5AHkWNFtTxr9WVlwIeJY/I/fWw16Fi2Q7k3pruAsLRwmchHxOYI5kR4x8JnMRGPhiOHv6mvN5wTO8/ARGVnMngv2176Yo0lxaMjOjtuZVXXM5lXxmBxOJ1+3w9vf4xmRxEfIoOoyB5QOp7TPxFBmszCMiI5EpzHxEpAoKPd72Wnm505P4Wq9Fe1VW17MstfkAphgRABEPwD31tX4PPhU5fw8zZ49YuPt8u6bJWobHQtqvA52sax8I+WNR8MaiNRGojVU+hZWzSN/onWg5bAzuLj3zc4iqOYr7oe01gq3FTzik/eLhPKOAVKSaYYSPcmRHvPbkJz740R2PMiAREQ42q5tiMwixJBDIgVxgK5GYSU6BksRLzxixMQcchIQI66VYXPOAYtYlYQck/p2NwAnGYarO8mZZCGaS9fRY3pkLAGw7PSHiDx8u1cdXqRdSC+BriI1Y6KumyC5kxqHw5khx1QWL1F1D4RKvVirzIPw5r/AFMnGlbUoe5zJSsQWHpiIgHizONTOZxnBFJmOR954icQZ6IoX/2mcZnR9ozPuRzHCNA5hsMYHS2MyXMPWow4SWY1zlg+jMQfDl3KZ11AGYjOucZjRTP9Exn/ALxGmHInHH3mMzyKdBx7yOpJjG5gsCm29Ksw3E198fmRb6tBudd/ZysaAKrf0WxEjX4LkZ76KtIxPbWGYntqGxEZOMT14x6S46i1IxhkctZSfvHDXRLE9I4KJWX/ABB0SOQdpxoa5ccxpVkq0RAFobqbA8bERGrG0CUc606sINR/ViY12L9onULGJzjRx9OcZ11CUgsjMkl/UV9uJvU4JpEoszT6ZP8AqR2dSsPd/wDStaRxDiGSZufScXMPonvESGa6yPVu51plh/e5YQ2YVhsClhnCCzBBUFZcrE97Vc2RHuKlpCQko7wSeDsEE9SK49TixoxFLb+pZiWzA68iu1Ynpzz0uqjZazG/c6TteIdw6aew3titUXqCYGQg11OYwPUI7Ezx450XJRxmCFpsIymSKZlHNjBFAhyLmBSqO8pgdlpeYfGb237Tc3q1JDEyO1bJV2lP0h5ukyKYjGjsCuPqaMfTLHzOLNnrYlnYRl/9Mas2iqL4CQ9VxM5jDI4zHUz3DsBMj0AMFpbC6XrDGttWMpMenxBNQUyRB7t5ftqxZ45Djmev9Xl6pOWQHJbY4Q10BPoMij5Fq5zodrYS+UDpqZXOJ/Oz8sxI+8Y+Kj4HE6f4tF/hsKHQCNNLkczqIzOI7/mYnGf2+GY4z/f+n37x2nU95zqttzLNN9gZGA02oxVdTij6esaEpjONPsNtM5vOSP4JFEpdLjmGT/j5P/TXVLqQUY+TOPhIRCRPmMz8XrWEL6TeegaQCQxPbv8AJBeiYxH5Gz7crcbTFvtBWH+qY+O0eJvwrw9f27yoMn4wwojGde/5QhJe2ugUftrGsfDHxxqI1Ea3Sjt9anVOha6zYHQhoB1tdllK11FjyldBu5uGzfHiAcZVEKxAvZwDAlxLJwmJDmWukbDwRcVYhH1COY02yC1C8zLVmKzqMMjGjauU8FiZid9aoWC9Vrs2JsQziWkpFlvoy7gLjqqXCuEycRHWCQTICxxOpm2FAOgK6dOUdLC4UY0YJXLi7nt3EcCU22Qzpz25pTYKChSOQK21jD52OMaCkhf9GikVL7YiAfBrzo2cRz7aZyNHLOBSRLrjxHMdV/8A8vuoObBM88yxFmCOIAXgERyZONSfTCWf0HmS9c5FzCIunghiJavjmMwbWdWBg+5l0pnq6i4LO3tEyr2GcmFf0TOc66hrdwktBC4LjBevl9Tjn1dH6/I5zrpZn1TmEr6YzGuIxHtohEvu1Ix+2v8A01EzE9tLvNRjic6VvI/bYDQtqv8AtPjLKsNjBREw/biH9L24z7FExPeYzrmQx6ZnK7TI+7vENS2cF2maxfcktTkf1R9U448tKuMR3GcwNmtdjg6I5WdnmMnWnMGs1/qRMajvrET2LRJCT7Z1xKCnGJhgCjMpTE6bcfz9MTAlWNzzjl2XHAONqTlFR812TC5xp9KU2cRMHo6lsDAZX62Jair139n1XrC4JMXHG1crEmVkYzpSjtO41xmdMpOr1CFneZJZzwAcTW211rsRlAndrbUPRpRzPcTt2jmM/T2S1G1Wj6o51ulwtyshUrr9duo5Vhi2a6RZ9I6BR2HRBFguAxOP3CArQLIKerUrrqCNl4SbaPht+4WfOb1ONJUuuuFVwgF88zMxnRyRB3idPIEz1J9TnWYNpTyI465lkWjMwkPLVxMyiH0KfnnsIi1a2dPQyqJkpJgQYdHipTldQoCJidtq5kpkZ4+w4j2zPwZUBpcpmY1uK1o7RExBwk1DgymGQvIELPlqlEFrZtw2wNtaN1fI9zYB2T6ft8sf5+SSzj4RHKe2prnA5xrHw/bHxzOe/f4xOJ13+CykDiYnGin3jOYjRY5Tx9vmn/EfD9tdsf56Jd8RmO3H/Pbh7er4QZQMxBTjUsPhATPp1P8AjQzxKJjRlJnJF7x8M5LM6xme0aKIgvTOY0MxBd4zGo9p1++iCQKYn3+E4z29rVJFfbqzgtCx3xj37+37TGhMlcuM67cI7d/iPYonVG5UVcc29TFwfn4+eBmddIv7a8PbQN1/1PbdPD1UaBmuMS8IBkxGsfCNY+GwI2tvX/FSkdOEIezpZ6cRqB0AaBeqtQ3sgFjmdu2cKcCxuDMrQgzj/T/RGDgZX1gDi/ibIbLAmROB0sIr3PqNkzZSO5Mc2fRRUM3Gk2xK7FZbOFVR+ul1Ui7jIhq2o45yEkaduCfqtE+EmjI9bqelQ+cmARMDoDlSmLyzqIYESU2JPLG2mIFnI5VW82LA8vyKJ2uHO6lo8zNKjVYGQ9Xb9tG5q+/SktecCIweRKGLbGYLt08fp4ic+nLO2pIRbMlJaH755T6HtFY5CYkklYOZkYjTnCDSFnrmeZYlszAFChWKWF2IIkuMdtNWR2IJjI0Uz1g4kQasr6JwwSmWBckg+pGWcltiBIJ4ktENx6tTJzXx7iqeMGRDyIQEyFnHEkUKd2CZ135TjWce+ucY7zppniJVjjEyIyRzGlM5mcxMzoGCeYidNbC+0fcP2wR95iMznUdtLuPV9rJ0ref/AJ4RqPK3Q9M92bYxXdc8xIPVPLtrHAcz31Jx74xoCYJZAsx50WRxaMTrogUfSLRxI9iHQq5HnljSbTq8955iLql8cHEcrW0Gv1V55RiRPBxqSiJ7azGokdcYn9tWqbC78pkfLcYjimZj8Kjl3nAjt9cZ7d9P3DAcQ5RBFDE9bvOjIWDHTTAaZz5xymZLZFCNUp/q3JJOpkKxyzb9jXVV1LXqZu90hgkjEqFs9OFzmZljiurKYXAymydFhM45b12S8T6kie07qujbd5wYcG07htjVWGD01zuTlvvuNHHp8Mx2jM7R4d80sXW4mIRtlWqyXY5tYz0xOJxMycT08xAxOI5Fq1aFCpkcyJQ08dymCAs/aWqlUOmLnkRasmx9sgKSg9usmgSmVfRvbpBKhS+0nM9812CFDbOa4O0AiHaIiI7RqZ4xMzrzTLFjpomIi1eGpHqGdM3LkUuPiQSzk3IjGm8gOOURn5BnGvMFEYzoiz+Zt4QdmILV7attR4aU4WwT7ERDZx80DM5x8O3H/IlIzEjOpmSmZn3+OPjMSM4nQxHfM4+NJ4V7HJyoaNpBIbHLjrPbHwEyEZgSxGhkwSUxHo0AJmqwiOYd8P30WOftMDx9MlH2x3nRHJzHLX/bWJ4/40vmH1QnGoEmF6YzOpnlOfiHHPrziP3+ArDpHLOUTntjSE9ZvDmIaqVWXbIpTjmQyByM+/7fCByMzmPjYpvqcPMLINRZmKJV+A4+SIJocRH5RjkWkbK91eWAEyLUyo5EvmjVDY7F8JJI51bpMqNkGRifkiNbNT83cFem+GK0VJ4/fXv/AIPdLhrcvFJW63SAeEGXI5nWPjEaiNRqI0I6ENLXrbtrZcPtGArVEUFcQiMycEMkExOrBqlMCXfXT6tkOwxpsAtRkZRMyC7sAKy4Lv8ASi1BCwvMWRup482FC7Nf+JSNF3IzNkn5cRjnZrWaxz1s6XXTND1vKCJCVAUNaWq8U8r6zCxZRVHiSH+mbDXAArTiK+2PsMEnDECqmtKZCZ5BLRUmZAfSuzNnPTHAsUPo6kcia1qvqBjpqax+OXo0dIWZkjkpUjpTBDM6MjJwxniJTMDAhgyVH0jlpjMgE2mSRN9DVlFogWcESLrKxZPJCQE0zaRRpsrYlY8sybEWkxiCGa0sM+qr1LmqxrykSwNpdiGwuSk4EWHICUj1OcszArCGApkpLmzjpK1y7lzzocl+/oGOMzEQOojEf30GSnmfaZgi/wCxzAjHKM6nieWcZmEuXP01RiWgcj2LXCOjxCNeha9cl9v6jEZ/r769tHP757Z11BzmZjjFge5LnGqu8Mrxix3jNXcV4iYg3UjRHq9QzEwPp9lTxPMzoxGZzE65zEe+NLf24lOddOGBkJxDBMMQM6b2XmPelubFzwP1RPlb447QdrbTV3j1RITjH7YjM6jWZzosyUwOpcSx9cam1Atj1Thrq9qOiQyuaVVHKfX1JhCA/wCGEa3aqBmB14y7bNvfWyxzemFneEInhX9R0rvXrcmHk93scrkLxEQSlJZxOJsaiwAPH08IZVa95R/UyMDw99cZ0hRyXoiZmh4au3O5hCV0PD1Oh6ijqtIoxjU5nXGclMznXqKY74h14IL3DgVn3YMcwbc6ih4BximDbj+pywm9cWUcRgojzKs/WgmSViBn0emB/iGLEgIzRTFfrd31yz31+3f4X72JlS+8KYunRFmO7LIvmWvnmuCXzEgD1betDOTJD6l0K6mdXiHV+fE4z+3wxn4Y+TjOM/tpZyssxpm4uYvhJTiZzPf4Y7ax8YKRzidRGf3x8Y0WOU8YxHwz2+GPhPR8qPHl1vlx8I9+/s0h5SKuXS+ONCMkWBjMnzgsMzn4NQaRWRx2QknugAxmSKBlcz6dSMxGZjtEyPcZmNY0eeXccfBCoaRRLBDUjMft2hZEBFEZjROMlCBT6dRoSkJyM4kRJh4GJIpiRnExidduH+dTI9MYgfU6y5/HrMI/iRDKgGBxOlx9QeUTMM9LjiBkNYjj79/iicM1tG/0aewEk4+puThdaMh9vkrNWpky5UNGPu14d8ThtNcgJfLW9blG43DbjHzbbbmq+DjTvFslUkIj1WHS5sloRJhwI++57Pc2dq13l8J+EaiNSoxiJMZiBHQjoA0tetq2WW4Y/wBIehCxWuIjU9R7uBFERd4w0Y5QBptiK45CPJ4X3R1Q9q1DzDmQ93IzRXQJdNp+ammSnw26XAt0f5nb1xWj6YUXyI8p4GNSyr6sjI6t+ZcjqunmnrHXLuHFiAG+bHWSzKtkl8QQ5AVbPXVxlk8pCBAIgIjHOc4nETmevIGWdHExM5n6S19FXKC5aYQgMe/IViBx1XxykyP0FgNdgDjyxoF9KJnOZsMmeOIApPqEnn2hoJSapiJyzyQQJYmeQJUhUkY8jul6gGMCErgKnRJg64LQglKL6tRfKmaxzDFps1Dzy4hYh9pvL9hCVABS3lrpnNnkDe/SEiKUM+rVXISyDLlqQj7uERPEjHjPo0K1jMsYXrg/bj7TYGHTMjnUuPy/NeNGbCx3wB2oH0dsmkZxKO2g5QMerlqPt9tPVJh2nGlLEAjtHLUTznvHpJq4LjnvD4lv0w5FY4zIi2eMD0YVIqmTJri7CeC1TsyZTJTxmtuxR6XRyBiE2I5VygSbXIZ+pGJ4SfbRDPD3jQnx0E9pgZnUHI+/eOmDgyPbRp4l7aIpCPT71t2MPS6OQlXr3R5JniVioSS+oOuP9tcNdHMdpxry+c57xNIeQ8Y4zO0yX2s9Ybd0S5QyIliAPuwpLVh001x0EZ059qzJdbmK6S64W5KxkwGqTIYytEwTdonpSc9jtbSdKBaDfXWowdnFn06sVibJLUqcB4fuPkZWjpaR4SXnnbdymtttWkP8OkRnlMaz6ZnOv1O89tQbDaP9Ilk+0TiNzumo4UrRWIPnE8Rgg5RnnxKvXOzaFXGYBrUqCKtafSeep2GOc0WtLljkUbRzUJSX1a1VVSMjHrmfViZjX799TEzPvq2/oImY+5K+lHXsYHVm5DHRJHHEoS949IPTRrV2GboiJnc7i0elfCTGSstImFiPnz2x+3zSWYiMfDvj/EjMREzqRiAiYnM/D9vj+0dviPbPbPyyMx7x8CnM+2o99MsQdYFQsY+YBT5VksIobMTHvpVslVzVABI6mc4xGNSI9GC5evXbj/lErE/qhyjw34cPfrEgE41ulQtr3E1D2NjCayTZOS1AyX2xnUCbIjjktR6S7xr9/hJTIxEz2g5gJH9o7FmNHZY1ULOcj8JKSGIme0TMRMRPbRrNR8WDIlqFlKiP+nSjfQetwegyMmETD7zqO8957fAC4TnEa4B0OXP1/AFkeeAyWoKYmNFMkWSnM6ipYKpNmEMmv8eqePfWc/PE/PGuU/AZkSiY97d+zfYJ3HE0tp2Z27dfomA648ZmNRGhjW6bv+JVayoTC9AGgDSkyRYiMzteywqIbajvYcSxjhiAaR5HHfVlZHXOVSIStBdLFmcQ8AsLJop9TgNFAFobMyu8FeqSJVMWK9Sx5gp4cjbflwGh4w9iFXTtdKPo6VXtMb6Skpbub2qJTSgRBJPHjkuKdmkyibJzIorIrRwWMak8/bOND9I/3wHeZlXtDmzd/aROSJ/UGRkYZDR4vzExyjjK4wtfPqeqYkZWBMmenEzIz5qZ4xOoSHQiGzPNZhiAznUAoZmBiMgbrDiiOwLpyrlIl39+3fUxCxwMRpx1jKIsTznoHd/q4r6XQgSACI53BQ8vTOWbj5mkYcfqJZyTAz2YRKk4UuJIgX9XnGQ0CDBxFy9P1ReZcgiEpkDI5LMyTPMj2jjnif1fabnDgC14geEZP7mNIUiRrjMqj6QzOjXEu5jx1yIi4F3iPvDAYiGn1GAfvEc+JT21ERxLUWRI+inuzqWTu9OMDM0zK9H9uEdTOO7kizPWKIgalYeMSXfFdQTHp0FxH7dtMtgr/OotY4sg4jUbpML+qPMYaiwHJBxlmQidZ7Rrln/vyL++pfPCBjQO49p7xIrZ9vaeAhMcg1DwAeQDiU7mDPRZjs7bQZHOqWmDKfS0e8YmNdtY1w4lolCX3a6AjrpDOjqLKMT7RUAQ4x7QqA9tEEGOCjsNFQnmeRa8oiGQULHlkY9oiNSztmPbqeqY1z9tE4eHviGOXMRxmS0AyxkMLsERGO2rVpimnxwSyWTyCJHCCoqLMnE6ChJXJWvMyzjTrdFRDhswefbQo5hIoOZiht5V+JtKZnOsxM/Jbs1pd9ec6O2RPhn3zFbzFj3gQUXAejW+yHeQQS0z1WLrHbI2GBHpShchjLZREflwOZ1j4/trM4x+2oD6MlmNY7Z+AxmcaYPA5GCgvgTJIBicfJTAWWwEyEYsrFVkwWcGIzECUTGZ0bTYIwZTMFERPpnOsY99TEccxqNQOYnSK8vkoiRHWP7an4Zz8UQuRb1ILOsTjP7aCemeSDOs627cm7YHVrP4nZe27a5TMkxyWIbIOCQNCTsOha8cpz++gKVzkJmCnP7z3j37xrl6OMezjFh5EICPjRhbHQp7ZWnc0Ir3jCo3qq+Ee+mMNpybCki1BlASOfToj5LjkRSWq4VyU7zDCE/hGM9/b4OOsylXBKZB6tva0ciMzoTs7eTOkZL+QN3uhtB7aDyimCgKqxksiD+GNbrRp04q+StxY+ONY/NiNRGhIhzxmY1EagdCOhDQBqrVOw2AUOS27aV04gjiCfyF4yuD72VNaPBUiQrlyM88STksXBeXDEDtz2VPU2dV2OXXg2cNefZDcVc8W9RJ/XUJvBViFnY609SGsoskSUvqOvMeogt+tiKllgq6AEuPwNPODIp0AKSPFYxEE4sjgewkwZ5HBTPSD1ZnRmeIiAidQKRAvTAwvMYAPsSggcREyZjvyz+3LOOPsw2GUDA8dBPKJ95mEwGZ9zEC4RLJ5EIZCZxxniHVicesBYNkjwMQFfoyRc5KZWRnB5xBCOCg4zohWGJWsOfKT/SHhqwb2D0wHGl0kRUgZgeUAtSZIEjMqpHZgnkZLYtZiz63JkqJmJ6murJsjjMQDCEFzBzMkL1iohk2c2PustclDiKBq4nNv7zYL1zXTPAram1DEuoRaE4tUfpR3jl0vb1EBivk71RVEuMmcYme2ZKZ0EZ9UjgoiMY1bsElWBHkZVmGKWTxQJElFiGKMZ0e6VhKYku/4iRFJy8gKbRFLOZFyiyxkj1CMtCJ8IaZ4Ww0rzwmWSdo2pESxrzZSmFlEYXuHA8++nQSfr1CmF1d0gxgD7lAwXqGcaPM5iO2on9p12/fvoCxOoL1TOhslHbUSBf4k0zj099Kc+t3CdKvqtDwtDjT9r7c6pZiRlZ4bHHQyONTOc41if3+HqzrvOv++uWs699fvqcQXeM67ciIo1JZDJekWND1CLdN4v4ig9KQuoMskpMrVlosNmYzFx0KZzOYZNgomYDPDrWWQqJkY07C5FNcRJpWk1lSs8xHm1P4yhfUivs5Scy2IhakKRGFDEan21M57ROu/T4j2kRkfcpn4XH9NfAZwZLYXD0wQdBrfTKPovqshcorJ9H4e5fETjVPbWsYw7IYXa6fR6QgaQYgnKEq9fH5Ee/fWP7fJEaCqRjmB0a5CcT8naS/w0BA5gS5Rx7Z/Jx/fUDqajOHLjOEV+u/p8oHUjg5jRFJY5fHojFLq9SOYff39rMp68+WgoX/AI19OS7ZH4RGfbVcFssCLj4AccHnCSmYxjWZxj9qaVvtrB7Oku2IjaYIs6kaicTrlMHyH0y1jbMyxsyZLSwkm0Pt+BSEjHEcTmeUTOmN6zuRRAxeCoDRigZmE959sajv6dWVAp/FR8x0B8WiRRz0w+o0j4wOo7T7Z1PrOZEcfDpF0ucd40qRFoyweQFjlOIxAFwOCjE6RWKwXbT6ZI1iccv2tWQtOgxSCo1iOP8AlP3xrwsmnO08iEJPxYmuFo+hjVmi2otJsxx/JiO+vD+xfirePtrf9k/CncM51+/y7RXq2d1SrcHdGtuiqid0eG3MJlX4x8I1EaRxGwsmRkPENzbbvlp21XCRHQBoF6o0GW3QC41TrV6EdMO7bV0Ky5iS+olYhP0zhcgLpaIhOAmydcmxjqkN8uWGLzpzLVQeWeUO/h56nVF8lcOKIpUI8OqsrkdV59AeUWTGiZsBOzFZXDLRcWp2monH0+RQXbjjtLyI+AxMax6szMTosTJSGOXU4RGZ5EtA5k4nsxgyfDOIGSm9gByiI4zOdBLYM8h6TdwGM+qXWlIgZbMDLNyp9Ix62l75WAOPqnVTclW2QEZy0ukkmF7Bu9ZkYz6i36uJBE5mR8Q1SA+pmJVutNzlCFnsy9X68ALImBIZxjvo0KYzkQ9xSMHJaFfDM/uTcP6cL01oB/8AvEZyrtEDquJAMAZZkzMXTzjprm2o5acqmdMvQKlyGGwTWDuMS1RYtX2LvQKwIRuM6txEkPCDWtHEzqkRCH4k+ec9HVKJC5IiyYVy6ozwnGpZwiIZ7zy/v2mS5xj7R/edSPKc8piLm7CE4R31a3NreS/cJLI+8578IPl3dDZmJZnlnBDzjMUraq9vqSueF66tlrkpcQuWxPtGNAfvI65/vOiLgPeMFStCI8Tn020EhkEruFSwbGwIDrl+2uxR6JzrHq1E++s98Z0M5zmMaie2gMhn311szGY16Z9saXbdXnIz2G1WuRxePE37UY+quXIfUB4OJjUFHfWInvrH9tSEx317+8a/vrHb/OS4zP7+ucREY12ie+pwsZ4xyl4QcTwjlpNUejnjEsTXiGwIFkbvqsyJ+gIPqdymB10lFExEyBopQ4GR31XpQa2QM8mV6koj9pIdtGWzLJjitCkRPSCB1JTx9PfQzyHTmQshj3lcNXE9T1EAkA+suU//AKEUAEyXs5gk1hv1WcwigEBklTEKj/mfZWn9QsaneIH6j/Qk95cc+qZhSUsWcPeRdBduqtEAlsT+TEyPtPwmc/APu14Z/DPJN8/929dOLpdH7fhJZiPkx21jUQOJ5fDGljDAkZkQ1PHjGPfXv76rzAtjlq3ve2n4ZGsusMWGTk5x8MYPB5j4QM8Zn9oGZ9tCyRWQx7aUEGyIKeMT2KfgLeCWQuMfATkCgg+4y5ny/fWS4Y/bVauVp8LCRiSHiUxPwGNGEgMYKJj5P30ZEWOWiwX2DiJGRxmJ1E4nOv3+ExgvT30xLICGmGBAyXOQnExGZ7e88hyPePkj314VXVHcEnZiIV4v8n5n+F44x6pxjU+8/AOHSPlnnE41W3R1cOIFMatXDsTk51MyXvPyBY41Gp6YT80a2nenbWfJE9903d25t5unv+Ufh7h4XDdfMrnWNRGojQjoR1se0filvpcuOr+1zt10kyUFqhtzLjeIfbXqpp1pWvtCcmwnKiOE3kE0OrXmGlaq178RxkjTZC3aKBOVi2wMSakZYTb/APEhBcV6i8RGRvHqKp81P6hp5y0LFk4rdDpwjZBZkrfHKkLrxxQMDrlGJ/fUE7qROB4SMs4/0xEYnOfSUcj9MxGnvXXEpaeBtbosOHlPqHN66oJhiQyFtkrTLVQOjCzNjK8Qq3alKpGsMuay1/4P1CtfXubvLOjFfkMbrzBVdh2BaXU7656rWyQzkM97W+OsI6faIQ3jYgyCTG24H2SNK+AEBD9wzGsTH99UKU2hM5eKxS9Ka0wFrFimRtVy63LXW6QGTpjiu+hglMFqOJ94xOmKNpRxLjHD0RE99EMDGf3tcfLF6sSkawV/rdTmk+lekgjGrNlNuqJdSRf5tauBDxsExBbpcYasL06fKUIAjI2qmxYtAAB0pvLWlc4gspEl1ICInn04IY59yHt2mJ1icTj3td0TEN4SzdCahZIdHVtLG7W8zVxyrhL3cRXnVbZZLlNg+EV61ATHJjJsOjaaQMMSl2xDziUF6XrJHUXIFn9tcp0jqEciucStnAomYzojIik50tkpkSCYLVK0DB6DftsJbTsdi1O5z5fhxLroggUDOvwiLnEuLozoZFoclFE6x7f3mJz6ZjHKJmcazP8AjWf7/CGftPfUxEznSrrq5+kpkYtVbkcbAQJv2kojnXLlBQay4nExrvjOddXA5nQtgo7xriJfbOpCYHt7yHtMzOpz/T21mTzwznpnEeqfUNgY99MHqjmGTAMDgmAVBiNaFmUnxwbaCWDPEYgw2hEffmTXWWpMrHPEBgRwMYjMZ7zrlH99ftmdBPJeZjGj7H2ZEQVaGM58pwCgXnjnk4mM+kGljwXAzOdbpYLlCFe40Z5cm5KBDBAAxCgl/lFGTCjQX4s2OFgujroXNzt5AIhSK1HZTgrZdd9i+uxMA/utG1Eq0JdSGB+GL/a6jX4SU/bYrzotpsD9vA9HTev71HGpiY94+Azic6/z8RLETGPhGgsmEYidGcnOZ+MaKeU5+PUKVwGfTrqT0en2x6Ol2zz+SRGFjMFktTy45/bWJiNTMlOS7zr9tV+lhnVOR1+/wHjxLlnPw/b/ADrEcZ799duPt374nX9PvoZ4zmNREEJkRYLX/bUYz6vYFkyZ4RrEr5CUd5KZxnWM+2gkc5OJ0RSfv7h9+JLjEVaRbL1pt/xmv2+GZ0bTZ9xfBLSS4WB9znHYebWffEZ0YSsuJe4hJHAx72ajqb5VZDgyta6eYMiiDex84zM6n37/AAEeX7xGiGIGJgon4oBRdTrskPkcST4dBchqjutarsdyo2iDX/NHy4+MaAOWvKnjPGdSExrkfDhynhqI0MaEdCGqNhtN3UQXEqtd+7W5Ip1ABR2+YQOdMsNZRM8eutaMdplpqiJZxvqVY/4pIr2Wqcfp0F9I2ZVSr8zrIUVp3Pmc2yS13SAdTt1vpjWWzmqpSGuEc55Hn950R+qOMa5jE8ZnvGInGYyRCP6uI1aZ5ZHPlkm7oCVDDVFGkX0vkzazipjEFXcrnEr2tdhrmTUEeRVLdpuLLICFlVX0g9p3Tdl0F+2SLc3qsNZXaYaJpmUyczM5nR8xnB5jXfGdZ+CKjrOemOtkEwTcniHEdu47cy01nCS3MnvSVsRML+8UGL41KYxNCo+4DZSWIzMFrad4Wrbp6+efnl2AYRVymtO51VFI1UZYNrlXOXMlTi3Rm2VZ8/3Ol4kp2pgSLgZAct6nUjgRKNuIj1X61h8jCOPSTt0rKLDXERbbZScOr2A713kq+wK8RA+Vu0y5MHqKeYeT5FPJj2WAlDRDjqt1L9iScWAifT21yxr39p1b3BVU4Fhas77LVNWtUDHUKJnHbW01b3Z4zAqIlV0OfSUBsdur2GUEc6J5zPOZ7i8y5zAxoN4sdSSV6dBdrbsmEu+m6/TOq3DO8NAYUBL5YAeswuHaDwDeMFzjzMkHTL7AZg841V7mXtpKeugPNBHKaSgBnEMz/EcOHLpEq3wKFXDGdDbwwulAAIbwmZiJnI5g4+gYzqe33+nXpjMRrqRDYGZzqSx3jvMT/ftrOhKMY/q7x7+9e21H2Fob1a3HCwPGW7V251TzDFEHZgSOhEZjE6kCGfTGY+2NMbjGI1BBOZmcaCI4+jGJWRuMJPjBpgmB9T0wl8NmY17RHfUDEd4jUamcamcRnX/fRYn04zMrnnAj6YMjXE4jlEzjv7jFaJnIyWi5AEZZGJYyX8B9gEfujUlAx6pxo+nyk0q5kTCYfd0DqzbqUVAwynITZvPk6qs6TsyVF19xdy0+9AZqpElh+FwlwGZS9UbZWQc2X4WN3xKAfw+zryfUTP3LmNDKJ/4hjoQP/hPAtDYsIn1hrzam9nLjU06jv0zlct2x6h5DEMCYmPf4D/n42ASBD0Dk4+CRVIH1OXOYxONduGMd9DESUcu0TEZnHt8vbh7erE/2+TlPHGe0FgJHtjmbBASnt0p/tqYxrMcMY7/DGox++lL6jIHMRqfunSWSlwnEROiLI/ELVP8AAyrzX/iuk1NbkQ4XMY+MRH7l8I9++kOmvZFqvd7Se4mF76jv20wRHAxHq+FZaiOeufEGQMF9OcxrHxVMdORMIxMeqYjvHCce2lt4JYHAZ1M50JSMxx93OY9sm4pI401TKjogpwaElbtCvlEE0Ok4gzE69PSzn1Rj99RjvnWZ44/bURM69/lWMG0RKeMeI9nqbNZQuldC2P5WNRGth27zloR0OyVOjw4a8QbeNK4QjqI0Md9fgFGPC8XJf9cR0AaWnW2bSy2/BhIrWtSK/FA8NXtzWmYAPvHcq1fklAkRMvrCvKrKilgudVd5sREyitfuWhKyuRRRFirhOr1uNcZtNt86iuC/w9HW6hjkvaMR7TiPedSfo5TnBtZ0oKA1a6Ko4tOI05vSswETyBK5YfD2iydhDOuKuY3LpGMteK+Xm1+V4QmOcMG8AuvK6aqdHpiJ1jIQv7nXpJz6ZbX3Rfmm2bnImWrjLTyY0szM6p2QrMKWphwx0rNmuNKuQnv8vO8J2E9LV60kdkq1VR6qNOvYqPa+0Kpt3Ent1RKuElU3OH7K6XgAwi8yvtLxiZjRMYYcZKZg+2vcsfu8LO1CC+pxOpRsPqFZgR6VOolNU7f3LuXH7ggF1lTrbUUlEMof/GjfjbAe25AzctXG2283HJTy1su92lvBBnBKfvNKbR1XM46ohAUxjmJ6amZ4yE41Z21JtJpJzpYpqvZLRMpTcs2KvRjEtfFivdXJ+rVNc2Wsaxk6SoUxMDGv2xrj6Y1ZsRRrSwu87iInW8zWGCVVsMrEbIVBht9bzt8QmPTud4dvUNVGJhG5eXvC1A8Q3SoviNmt3UyOIj3iZOY4jA+6jmfpxPq8yXWjv3rWfN0wr3oxNytNd8JbHoKZiSjVXynk2zYz1c9+2id2GILMbYysn6zmZKpbGymDH3aU9EpXHIrdlhsInxoulNWC5T1uqyRgoidQlsN4Y0iHItREzxaFu0toxageAvRLSCDGCIMDkYzPqDPHvqHRnB51BQUTjvEF6o4xOuUlPfOhkhPM9xGfee06TcYiYkD7L3JFiONoIyza1ujnWZpiH14wYzqZLp5xqCmRn06OsJr/AHjUVnLzwZ2hTPRme0AXOZnWNZ7/AOY5d865+8R3k4mf0i1mcRiYmcmX6ft1MdvcyNhdgiMzB8OOcyqT+1nvqYLnMf08Bn4X39OB+lJafa6YcXxyLy92xwiuH0j22pXaBXmS9rd4VVAEVFjEEkLaZizmZVQmvUOXHkdy34ab1r2yIaV11zdG8rzeACzoqzVXCzFgf1kktQSP3hWoTWP2468qePoMOAms6fuUDdeQb7qBg6TU3EO8BjU0Cf8A70iMn4eL3S0cHs1sP+HnRViVBdYSGfkcKAQkkMmWzMzOZ99Y0KspI+UaxqI1K5H3j4T6pzOsaNcrnBalhTx7/AWSKyGMYJJgsSKO2pGR941UCCbGdP2SiHhsLcPDrOiIZONY0AhMHznHyenpz/zcZ4QX7CHOcRj4fv20RSZTM++rG5HZoJrGI8ZKTn1T8PefbSlEXULplIa4zxksThLBBnI1wUTygZnHoieMT20Mer21mJHGO+uMxETMdtByJRCAxJfvqCnqc493cpbMsjiWp5LTA84kECk7QfsO51dnHYF+V72SD14jUjPKY/ePf+2jjEz+86z/AH00xMsgHCPga5XMRMxOnUEr2JFuHZd8BHkURGnINDZBkYL5domjG4jO7CZVm8OufSz0/h+HWvIec6B+W+Phraq277t5e7Ziuu4kK956lHzCNRqNbFuEUbIlOv8AaGmKOXP1bxf8/cI9RGhjUEcjx5TxANLXrZ9tN7oYUYSZT5cszxWKsQXliEggTC5ztp5hZs0wOHJGGMbbKysj4xycqvW4cihj4Jt2tEYlRgvp56hZjsMYHUz/AO0sEQzM9mPAWCE5yZcByxsBJX1NXwQffqq8xi2merNpi7BhTAGalsDRF9r0Db3TjzTWMpU3qD02OkGaDbW2jE0BgAQrb6ERdOJnct+9oo+knWDackwpIs/BG22rFU3pXJKpVqLNssNtP4POlFKhWt12yTL+5vvmEvnT7iW7YpXTnzGdRqHH0+HKeLL3PZ01Onx1sdJVgCk+873tcIDmEdqm1WrH1YCQS1SkzFy+YWdU7hWrPl1q4q9bLbKLo4JrICqs4rz09Xm06odVUn5yw9j3ExpSR51nW1EcbkmVq6s7s0W7o0gXKoo7vboF9Bk8du8UVrMQFn6TPuTlZcofV80meeBJuKrF9EIF2Jbwke+qQFJGwp+L2ihUmc6LzO6mUxnVUWUHSm1H0bAzQzX+6nWCNr25tjCy1a63KHuHIobmwTYrwYbU0ZRKLBD0rNdVFrRcojmTKIkjCJjMyXp1BlBTBTGqr5W2CZnhVtL3Sv5a1MdV6ZXYNdiOnrl/fXLE6keTuK9FkGSMxiadtqzGBbwGrvBosTn1xd26LhC1Q6bWJb5APvZTd5WG814HcGguVp9IC5xOggmSM3+cMIYTOrVH6swz0GNwFkARJclWwaBcvTMdLkQxOCmuUQXfRSwe8ah8iULIZxLoiZ/eOrETxmMahucdoKOt/bE6TdNRfTKRKvvkyIhYGJkYpXP0DgSbTJXeR9ORzqY1jGvfUhGpHv20UxnEzoZASLvqCGYmI7axAxnGoxx1kRL/ADMRGZj3/ftrsf8AnUBwzn2EuWe2NRq401omFDJMTQuQfMj0M7apmSasjt3aQtAZYRaoOqttPjosEkbPXhsO441b8Rqq2ySlMt1e3Z1weNhha82CxDyyumbbNYxZBnHWNDzwUADPjWpusT6B9IeWo+7Tcwt3Z/wgANRu1j+suUc02vtaamGmyifuLS9yePYy5iu3LY/h2YP8Qkh6bY4GxFV8/UXwl+0sAZNEw0JzHaY+IBJziMaxozRNIAFWHaPp8B4Z5V5EXDJe27Wq9xyuguFCcRBzETmNMaTBCCxpPDrj1vsu9Arc+SgumayCcFGNRGpKZiImdR2nViydoxlmNCUjPbRXGyHDnOJ7/CPfVqstVRRwsxP4SQymBgPWtRNaKw+41dJhgzsfwWB+XaQjEjqJwMxjQnI5xrHbOOwxku841zYK5iDnjx9GdZnGM9pGR7FGlyOYhklw5G5Qq/pIpKe/vyyED20I8u0anOPhWJoPjy8z1O4MZDAyS1k04EO5Tnl6vh+2vadKtRwOHc51nvmPiAiczmeMOAVsws+Y/GNGzmIRxiNc/pSJTOoKYGY/ZFdtlvTrrJh4kZ7+7rLbXCGzn4e/5H41d/BPwzq/wmNY+EZj27axqI+ERoZxrqF/fXvoR0IaBelq1tW0laPm30pOV119FZcNblZAlIFJ856DCQEcQrzYdaO90OREPlkp26VEGD2moXnshEkvoJB0mC4IszzmBHRT3yXaGHCvumI0bCEDMo9J3YIIkD4i+wAq64HDGofG6GQNXMHXAJ4eX4Ro3rhxpczVd9YOq8TJZMa51Tq4I0Xq6/ptqZ4KQF+uhIqhJVQXTpY7QN5M3udhRSyC2ibG3sePpNdVlmyKUjyZcqOo2JTYHidSaH4ZYixBeb8tuNShziWAj99VrtldVldc5BiTX944+MaTiXBBe29bhVsVwrVQHW2X21Xx09XXAx6KxM5t3zdCH+Eqs+n0mzjIlhKT2ih1qkg5m3ot2aMRaAeNxT9uqMe1/VsWGEbSJhTJTPx8Oea/FOVMBI9xex24uN0YZnWdVPETaSEggMa2vxBU3EeJT0nGoSH1RnTOQJwke6o4BEYx8GtBK5Nk4G3YZeuAtWJ1tMDXEoIfXvJqYM596hK3GvNNv372cqIayc9NjCPissxB8q7TWBzghJJD3jUl+J7VyHPXYuBYMMZEweIzGdF0+iHGZkzsESgiSzoOSLAQXp0UBu1eQ/8ANMre/SiZ0OOeCnEMOOoBJiQlhTPEi96FCzdrGQfpzMjOtl3QlO6Ngvp70X9IBiVuYJRISUa6iSMi4FAHbURiFYJGCcHpMTwZ32mvi3Ml5iTXERMRI2QAx98U7qr5wt84bJWK7SGD56XuPMxjjpdwWQuCj1RKykvTjXSjlynOpqxjEdtDT4+0zxCpyxmNHViHxy+5KWqKcHxFO7mgxWc8hh9G53/TN1Jyx5LwweeJmCjE8tSesx8OMcs4+HvGoGI9tY17azoimCwIZ13/AH17xnWcRmfZ25Wm2TiuwFhYtMcrFqycSuBFw8Ey2a222mOFrJhIW90obVmA+o7ct2ZdBExckAYyVsKAzI1hTygn816fUYyyyFxJArY7Mx3xoNoFAqN1nomlJvPioZmRRWpd7M9Zz7zXen7F51E/GtdJXpZ6gcATHOe4SgwHqBPIVWOtHTf6tdIgjmkpkU3JCdGqveGeQ4N+2OUzAjJjNdo/cs40sIlkQc8YYIiyYAuQjHIsR7yPGZiffjHDOe4BMxM6mfhx9Oc/Ah4++lNlJ8hxmZkpzOtqpt3F8U1FEa3OkW33mVznJarmC3QTA5iU5KZjt8OUzERM9sZjMR20b2MCBMpmADmyBjtpq+k4gzE62vyvm/47PSsyuLRTXzAz6p/vPbhjHq4+nOomcTGe1Wp5gGnyGBOB6hdPPGO86bErKVQfIcTMf4gZn20xhNxmI1j05+ETgZjGdRMx7TMaLpx9sTPwrPmrZFsAB6MuZyWMaszVlKvKgYmJSBZCZiZmSnJTmT2pa/Dq9wGyvnGOXq9oxmc51EScwMack6xypwYPRDx/7ajjxnMd4nETHwgYODLMD8SlfSDhEwevf20YEs+JxMFQv2drt9eofTaRSZyRd5+AlITkZx8aQIO8kbpkuvZFI22jVMjR82NY1EaiNRHwiNRGhHQL0C9AvW17X1p6rowo+mVUOHpFG6+btkhqQ4OlEOXUrjjVhNby5kxxcqjOtUDjqFC1frHGgEVh6e0coz21LSxMxPEWW0AuCI/S0XbgIPDEJs2kWAhYlPC1t4ESV1nwUg9CCEZEp0+y1S4F8DNePo2unZ5gDq6fqsrtmVSRbbVlX02a2gKzSYDWnwWpe11IIsYvyNZAFYZ9G7unnTFYRIIogFekJY1buJQUS0cr3C2uNxlu38lQ+y2y2WPYTDSXFwzOr+/rftPRAfVHctbBtCZrdZvcvEyq66+I/UmPhEZ7a2rZWX2TJz0w3Oqqla6Sm9XSdxJFBtcQXOkhHknW5s8G7VRqsTN3cnxwfus7kaqNMYgKCV7a9tEfruS0cyvlEn4jsrhEBnJOLJTrPx8PgJ3552/Lat4i22BPqRn4xmJ7a2HxFaUwK74l6x4tjkudTqSgAkjn02r9V+1EyQ5ztsudezXxBu3Me7BGYOy9zsTxKA2NYxaZYafGNxle415uI5ZCQg+s76mpGXEw1hiCfI1PL8Q14dcmLpdY5At4poXPmlDyTPvP7xYKvIqhAlnMj6CjGonOQWeYrW4qszAyLNxSq1Xi6iJGCiIzx7wtpKZyCcFJ57z7r3R6q0pUXBeeftoBngR8oxSeG50RrHM9ayELJvP0SZcp9MaEx4zEB378IP8AZrimeEnMxz7aEp4zP7KYQwOJxpbR3BUKafG0xrkn02yWQ3cv6hHP4jyiJ6chpe5j1sdQ8L3ETiP4niUW5IfS6D1F5kRnqxyDc44ZcGmTD0Zrlz04zWQQUyM85ge7JynfLtVsdNuYr+JadzIbjX6R+SW9fOg8WQ1LlT9Rc6lgj2mcagon2mPh7Z+P7a7TGsajUgMzmffGPbV9xwrpJiZYvarTTyQiuB2FM97JSzTLQUlz5Gg1s3Xb9uJ8eg1Svwe5xmGrAdV9sQH+92a2trr7T52Ql/I9yu7fRjNMUNdZ3y4ZFx6a9O3Cw8ODrBFEHMTB59R3YBfSpj0w9/jHyIeSS9PtLBj115kdAhlmOa0zEroP6fVYcL1zqGycL5MjcZUeOgIQxrGL6tQ8wq+TIwc9yNB9mLGJZtSDHKzkNP2uwiOURzD4SExqBzONEPEpjS184L1RGvadNbLiyXw8qzy/Wx6EPOufJZSJNabmSbCyXxxOM/toA5JYXL4iM1jA2hBQU5KZ+C2SpkHGMxPrkv3icnk++hWJCZc4jU8cfvkIki4xq5tjqQhLoxqO65+2PgHHnHPPEbMoSxS4jgHKZ4jpgsr8kn20kIa4QI4CIPo9QI4lrtjUTMTE6YBmPUnHxyHQx35/DOo1OMzjOlyvpnyieZERzkpmZ1DM0iV0RmePaPbULKQIojt8UH0nizhB6n1FM4x8R7TqyYG3kBGWqtcrdtaAIYKygqtpiDkZLW2vTU3JDrKesrerla/u7rFGt5ZGo+RayYfFYyRTEjMxMYmPhGqteXs4xqPCDvI9bVitNdsjOsaiNQOvCSKZebm+vkNgAi23o/pgGgDQBrads80zkfZfVUgCGMaT03p4g4+Ft9VFxcQHHQVhm71URGgpi5P8V3OJEBGBjGsz/wCrHRxw0oESvqAxiJ7hYJ31J4wD007U+g+IG89r4I/VTYa5HVmK3SSlD7GPLnAwuKqDz0/XboMCt1+rEjtz69vcCndPUS9v6t9i1nMKnw/LaouWwinZ6Q1qxHzGHbolSqRMN8RYN5NPk0pnR2l4X0VQOq29l0IA++gtNawrQphoPLqOMojHx5aCe+qG4XV0WTXDkqy2xeI2TyLVLZ7F0l8YwG67Me12hWRwyG1ERTUyghksU+bCLr7ViVs5TPvqpUbZP0AUhuTUX6qa23V+Ro8P27S/p4iK9WjXr9EGwNz8YQF3ylEQ6u427O332JixDJdcY6cmUzqZz8mwFt8PZ+Je1jh5lnR/TjQjrhrjrwzSiXMss7CqZ5w77dRPPsXvuiLB1ONfEx5yqhYKYklS2zXJEOR9HSKoOqMNTPVSOGT9Z+Is3K7JZ0qhhFTyidu4iAyi0BVrJwKxIPIugmjOAnGsY1tDoJJ073KFbhVOncJR9pI55TOhOeWe/ISiNA3jHb32y7XrozYbJ63SmNN0wPcGSMiOBxOcxoDwEjwidbeMjuULawUxa4DZYCZ5LqX5QceXjhq4oN4oRaR+sSyhsgPeR4Cuc9zweZX30C4ODnqRGhjOOU+nqREFA54xY98DGksLly5cZAh3VHqxFw/SZCYznrFxxMzMKww+OeOrExLI6BTIRLJjMaXcOD99RbyueUnEddoEBpby0nfAYsRvq5xO3Ltrk9vscxes05FqjDWBcwuJzGkNZRZ1FNMRoeLv+HdXz0TqFkOasTpteueeAcdFtv8A8my4ZCvZTUMQdzdP4zE/0FrzW7jHqrhOoubn/wDsoaCzuJe9UNA21j1pCNevH7aiMR7501wIXJtLAt3lXS5VVy4n+J7czIioVas7m2znk+wk+nb9chaY6JfaGcG52mdu5G3Xp6fEILW3P2pKVnYVZJrAjlJB6dYxPGI7iMF7TPIBjpTJjPCfhAyXtGhqPP7VHOh26x+4cdfhrf3NMa/DSx+qnX4XYn7eE6DZTGOVlghECpH+71WGTHWyj2OIXctKHj6uP0LU+uJSwhYr0tjmFfmpnNBZhlcbIc1+g5khLg8Z0soD2KcQwo9Si4yxFa/2YPQsWKTabPqx2e8rExJY+GNQky+0CnUbfaL2rs0Gy3J+5Yhr8Gf/AM6dTtV3p8YkSE9utqjJoPEwPS/qhmPhEd9WBBbJBLOYaGJLsOZ+GV9KIiJgp/zqRwMTmPjA5/fGsh08Ynnwnlj9yHHbvyQljWYUMlL7DWelhTOo49MokczjHx9sTE9ygijmXf4SMj7/AAYYkAQI4kWSIEMY1kOlOOMlqQIYiZiYjSTAOfUXz+HRmEQ3I40XS6AceXV+EM/tGByuVxAhPUKCCZGcx8M84AYiMsWdZhraMc9stJqPM3oF0GP9Xwnp9EcRPU+OJ+SBkpiI7y+q6o3hZUaz+O2bg7ar4Wq3Hq2HHZtMczHP4RrbWwmwJTofE1b8I4f17k2HWSmNbaCC3OvFzsjxTX2tNpX4QQzEDpZGK5ASmAFegXoQ1te1nbPkXpUwhTVlVSJ5GMD6RbJJbf5XF19vUHM9sB9uGvLlr0jiBjGiKJGeWo+pEZjT7YxZFC+7NzHCOFbEnT5pVBlMG0usyu0uj/DV7YLHocTIAlrDDzBdLW5xaFP8U/0bY5o1ShE6Sq5RuuM09YnSVgSJM5AKsKkZezhKtx6pxUr8X6lDDk5N3Sjct6AZ4p4sNzmPbLGlJEseZxGtyXWrwtKe7oPGtufZSDWpCTSRw98zARE7ls1ighbXRiPL0/wfq9efOHWcoAJqyEV7O/pIc/ilG23aNCrcrWiNmrN9RVQVVV0ppbm6k0CEpkalpm6bzDGxnTfSuBSqJ1vTdvVt3Rpx9alTbetClEeqwjcNoiaS8wNKEogalOI87Tup847v0D3ncl3WjCECoaCItXlJNkKHd6oUdyYhT+uPy+H3bemyz8SXziySytMlI8VrHlOtv2dlqPTGrewMQvlqUT1OOO9KpFWgFeIjIwOIiPbet2iinopn+I2OxuJJjkrrI3Da07ivMelokvbSKraRMqSkrTyTTg50utWiRWb5iwx7KfWqKaLFqp3iknHGBrLm9QkTgOsXVs3C6mZOdgf5bqcZw0AUJiRFDazYtW/415iLDHdtpMkwJWmDAp4OKBNX3xCyxMY9WZ7mbTAOWIgf2mS7VeN7b5ptOCOyBi7BBx00IkFiuYmYkIAhKZ58v89xeQ8uEcdR6oIsxGtn3QKeMBMlvFKBGLFXj0TWaTkSxkJnvATqRmMz21ElHp764sjn6cQMSc4H7pZB4g9RYMGxIzxkuO71pcjEXCCRzqZEVRjHKGZxy9uY8p9xHETM4nt6oHE/bDf8YmJ5cf6tI6iiyDZUSd9mVcLq4coa1O3MMptGCfRZViMwyCIXgRyKwOU7nCBHCSAqm+JcfTP0l1Q5QPKM/FkWYz05AtCViFTLBHmEsLPLtBBMn9+vaNbhe61mQsIaKJWIZNJSwAZHbn0rGpqLbyghakvKGLuFNgMkm2Eh03DJRLENmCYolxFUXTMoZBQVY6r+TcrguDCiPeZVx/UjMLpNZ3AOrCtkuTHLHT0rav8A57IHUVUJ+1XKeoI/bIjqWFPtEzriU/drpxpdXn3xgREVR9OMz1jie5jqbUj/AMUded//ALo5G02ftgDiLIz+ovvlHtHo1NGI9S5wQAwJz2KZFVoOLOxsQysJx7gqYEC76gYcH0++lkchKnr6imbKmSkgdMANaisscWMnkpMdqwhAbiOeMaa/oxHX5hqX12+ze7AbH6ViI0Z3V957wG6sDs0YnUlSvR6lRzOhXAZmahTE1KB/b1R1+CrMJlT8aZtFkZ9EQzRJYucMAh0JEE5GcTx+GNSExHfURo0JjbxZDct1HtOY1H/58yvyRqlUSynadUbJ1/uIuRTM6TZ6SDDphMiUuqmsEQRjgSjqx6J9+2pKSiI1+2q5LA5lw8xZJZjnr9v84x7/AABygV2TlnbRvYxQAZZHQlIxMR7Y76mJjtMTHwmfREY1Xp9au5ksEdQBSJFEZHWNTE+8/HI9MuUTJ/CSyMR8m30ptugR1e8OOqo5kE6YHEpj40ENsbglVb9bxCV6d6aG6sg7Pwj4RGsaxqI0E8dQ4se+vfQjoR0IaENLVn21CuMd9UKVazt4cQjRfw9XimMkk+KZCcecRtk9Fo22TpCq9UOKojly7+qcaOZjHHTCiZAQmdMd0J55zIU0G+W2G/WDy6EGSEm1nWXNZi59LnzZeYwrOMuajpdHjq9Q6SqfKx/EWtxTaMU3DOFLt0qbyhHJ4Xw3FK/eZDaao2mtFhY1d5bhXWIAEupWau2bbHWGIfu27vudwGVq26qF29CmuFQmmPOSkDgovVWbZalMsEpu+U4ommRyfkLM1Is9IujCr+z7Q8GLjp/h7l7QO4ZHpWHzb8MxZvuFk07m3hSaqzVkmPuusKWtrJIKcO3EE1pfmLnhgau0dSY+qY8Sn4U7BIsCQadvdoafKA6WmOVvDKqQCFsvUh2xQ+StBIbrc3C5KiCOpFZCH7NFrzEgW7boy86BI4JetpofiW4CiWQuN0p+R3FqOpDND76obU25PoGZ1b2N1UckM6IeM/Dw/birfKfK+Z1ZPnbaXDhqr+pGdbGIeRHjq5A+XPPtt9SLG8csegRiZKdNu1aZDDmYLcWqLcnSo5INk8QVq+3Cl04ncPEvTv8AXqFqtbo+JaEj7N8vGwvFkmWQroel0c82PJpcKws4Bs7haVufC8Xag2ii11qln126wI3JdoMdBm5V/I5hgzq1MHZb9uIng2QSXLW2XWbduAzMenedsWoGPD16OR5DxDELVjJM9MZ7zjtoXF05X/TtNK1cNZKPGt52VjWjZTjlcWpZQKOfIfTGYxrZ9qm+7jn03PC49KZVOnDKmkE6SchHUCfVs26AXKncnKdwpsrP6DZ9BBIBOIzoAbC2PzGpZJHku85mc99RPt/cSgeWY5a5+mce1ayyrYFq59VlQbjU87Tj6h9o99Z7agZjuXp1xIhguM6k5YyMxxHqjM+qOeut/wDT3h5nGDmcQ39w9wtnMwUYKa2920z9Tia03tu3CPqYUydsj/hHGPw7oGRjWFhvQ593k4TDS33K6wgGzM19wszH1UwWlnzHMjI67TPadSOsa4euS/e5LujxQrqaCtEx0X13K0e1Sr17efq8giwXSsR0Xnt1quzmgBOPJxMdNtJ0TW25ArLPUBjdoqWIGTUGi8NgtxSnOvK2TTCrKhcH4Yqew0VjpW2zH/DUOoolxwRTgKYj7RGYrJH+mdRXT/8ALjXl0fuEa8miZ9pjQUlTqVIV7ccuQbfZ2dFVePsEFqRYOedfOvp59aZjUDVP/nDUUoL9Fw64XFD+5DD8x9YeOk5iMqPMAcFPqxnAF76Hv6S7w2ivOR7aWII/TjUz1Pu9+4F/bRjDO8Tibi2jEdQ+YrLgcFHvuG6u3GF9bGs6Y6OmEiRdQLhLmJgpLXWTYL6scSGtxZE5mVruSJ9ik1WduG0HWpzHMWvSUh6o0NmYZkomBVZNvaQlov22myIlySRNjZ3GgRqMU0I8P7kQc/LFh1Ztdkg4JEjKTnJTnVaqVlwhEiOnqlLyDMTowkDxOJkB5HETONW6413cQaLYjSXFXOSXPq+CbLa/PonI6QsnliY5RMd/jjUDJlED3kYgX8XDMaeyWukijGonAz7T8EPSuq0GJgj0P3Rn2arplHePg1jHTzZOdR2nX762zcE0gsw6uLp5lxmImca26r5l8Dq/4RZWow0h1y8rLlSAT8MfIAjIFJFifh4etBWvLNnt4h3qk/a+CZiSeXJhfD31f26dr8qxdkDMzJpybCki+ONVKZ2T4hGZtbU2sOTGY1x1A6iNCOhHQhoR1T2e3cTLEKyEJkDkTjE7b0V2hJ8ZC1Vr7k8PKDxBjV1qvlq08JZtzD4Gt56rU/LiXqKZmeGJmJnWADlgvVYt9EP2iU8Y4TDCbqzYUhBAzlqvaEinITAPtVjrtjmcWa9i1+GzJYFlGgIATbailr6jmRwk+NdRjQxD4k1WbptsS0OXUhdmwzrSsma3IWxcjqVoRLPPorKEs62+g8SWz04IlVUDCFBB7iaPwszhCzm40jeWcYrbdatpYxCpkZS2E9XgXToqXavrXZZIgTq+17o6ACLCm724tqCir0J85ZtUH9d0kPXZKel1C6cTM9tCuZ1K5jW2C+dyTFX9Xd9/amsVOwvi9hcimfhWrWemVlSeS1ee3YEqZnoRRqbMwjRHW0vb3nuA+ZCejuhu2/6tFfChu9yu+x/ABKlZ+Gy0C3HcBSLelrcqxVNxakzg5X92vDHDyc/826iE7cyT1Z/VnHw8PPuJ3T/w9YsduIvHcX+bjDlHxnW2b8VSMZ7WN/K0PAe0bXXUFOIjubRngfCYEt5XeL+Nf+kTJ/vrrF/fUsmffVO86lYFtc5E9p3mp4hqzWt8YsXElt1fypDmruSLh1lioQNFdNu2iwZqWWqVasJWQ3Hkl+0t89tjKLTjqNY9RkJ5jXXxJzIiclgQn35w+ZRCTjMIjz+xnUKYl/h2gq9u4rs/b4u2ipTSltaOOti2rbbezGy1MS1nELBQE5HwtaWVOVZjm5oKQUtKBHc6U17bDKZIBd0pPiMFGzbrO3Wc/wBFrxOjys9HPN7ObCKfdDIE/VGRFkAeqTw3vbSqPP8AiWc6rDWXpn09P0/fjkyecY1/7amZLWe3bX+InGsZPAd9bfdPb7cMCdblTW1HnqPdIKIyx2jQ59PUL08x5e8iJQuZ+lz1BTC/YdTOMSOeXBhCXpmNAs8TgxGea4GP3kSyUYmJ0ZoWP04yat3tVXE2D5a/2nvweeQzqPFdvjmUrnU+KXdv4dOp8T3C+0FBJb3uDfvfMCFqzNn0PbzncblYFJRYMnRvF0WqrDANsbzvAbNtnWdiXJ/+INuP1q6p0j/4g1S/XrMDS/G+0H7k0dD4k2VvfzStBvu1l2i6nX4ntf8A+2I1+M7XE/76nXnqnlpf1fpT4s2UP/NZ03xXsaqnW83zl3/xCoj+jXaem/8AxFn/AINPTP8A4g7iX6aUDp3jLeHf+Y4a84P/ACzqLUT+2uvGlsHjkh1NjOYiMRz/AO06gp/YNQyf+XXU/uJa+lP7415RLPbhOj2z/lnGoqWlT9M51Iuj9dInqAXy9PNRALDnvg9Apo40IzjvrlERj30aeXcdRPGcFqMTGC9pWSyyM5gw5hPbMOrcPUHcIX6eU+xly/xHxrxYz9GJx5USiDOYWQtRSLlxbpTUXY5CAdWzZOuyQKusJDdDzjGvxJbJ+rnDX0p4zXGVlG6Wkcccun52vcLjbWspd4boWu9N0qO9st2l94cgmJ/eNc/oyHEdCBT7RqdSMcInPfGpoojaPMdeOr8MRCeUH6lRNggW0uCriVJtGCGdUF++IHlpwcGYkZHUdpzHvmZnOe/TKZntOUM6LxPEToy5sIpiI+Nmr5cE9+5ZI8dtCPI4GPchJDTA4jOo/vjOpmJH27pqm9LTDGCx/TraXeXYLJ9r3iuLO29OcaMDv3GdLjmI9Wti2ONzZI+2t62j8OsEGvbSVE4+I+9rb3VMdYJHWMzqxTfUMRsrJcrOQntprH9ESPPDUe/fW6N29s1/wxJK1/31HyR768K2kVr4nYjI+J9wqWVfQxovu1jQjoR0IaENQGtn31NLbRS0JzYZ5m412Ma26idtsdvpmfQDy9Nc8vJKsLjqxg+XSTxXEaGcBlhRkuWT4RyMiV1FrlkQb+DhwxPUiSZ05Qg4ggvqeiFWY4tYtLNslXP6oU6qwkj6hHt7ps2llYAQkxGQ741ZG05pwvlIKU668VEzui4rbnsWwBfIXLiKnpLFc7b94sqSUjycm4h1QLU9cNzuGEKCF9GT6lusM7TywMsdtj82+8rrzQxHa0xzqtPgm/HCd1dO0+Q7dKtYKtZBwfcx9aw643cf940Vur+AhWWr+J0v7o0lUSGmqjQmdd8MSUidm0604mPOTPW0i09zWNeQhi7Dto2ixXtQHNBsvuTT59KvvVuGyFGgyTr+Vc7w3MOcMDvG/FeQFZEdOvM6z8NqqOvbgCKpcWblWbT3BqHzlgT31tO5sq/p51uO/Nsq4Z7GfKfhsSbb90ANvb0nbql9fc3BbPm6J0M62FLHbongOYCutMkyI9e9b5ZZZOvzkVttNIOBMOQktctctctKsGhosUUifh/xGneU+Tv48xaVY2iyTl5YjcGLRXl1d/8AD7hStZXatsAtViim5ViHQLt5R5iF3KuJW7BT6RgdK4FJxwk9YkCIcROqDS228sp5dTdB8huA26cyC7e4vu4Ky0ma8wccuJSMAEEBFJxGkWSqsgkM0W5uuL4EwuVV/wCKbbNeeJWOl1LII44M8L5DMd+c4xogIQ7hiZmY7YxP/B+3VawaHi1c4m+sN62/z9aI68FpbJLAHHKKnh4G1oMlav0yo2OJhlYjzP0TjRTP76gp46IhI844jtW5lSbg45o3OhCx83UnnV7/ANtBEHJEU8JkhgInMZ+kGMjynrdpgPu63b1TJTyiYzOZ0CfRyPOpNYDxjlMSwfXjsJen7sxrJTjtnXL/ANR/9Max+2JyS5WuPTGa6woB1HhzanlVy2O79pqhTqHdtYifEW8lvG6Gz/g/Jn4KKAcEz3i14n20PDvTROWHOSn5pNXCcpmJSacT6GSSVT9zY0Q8v30IzGsFriWvV/fXr/aR1HUj9onUGX7r11Zz9k6hn/72up/fOvf9xnUL/wARGm2en6QGcg8z9++gb3/z1P76kVsHB68uQe05GJxrj+46Yme5r92V+Qcl54kvXDM9o0vb2HGT9ECivWDJYyW4zETChjRuYwsmczNe2awwz1qjEHLaeQlLVbmnpWI+pcolSZ6u8OYtkDwVATOk22LL75xxCyPOMBIW31SwU8wq7qFtUCsvVZGr384iJidsoWUT0ClRL2a7SSwkwLdOo2FFPNRakZie8Y1ljgj+2Z+Jr4TjMTqLTRqTXifpSpfk4bDctrN6FgGRrcbpbhdN5xEFpRB1YlgchbBCfqiYnGvUX951AQRxAzog4GQ++sEztHfWPh76GeM50JtXWKI7L1y+l93q15l8URR36HUOf3+G3UiuWBWqMl0LfhtkdYeBbruBXGyRz3n31Qs+VtAz99938t4kJMRHUTicxq3fs3zE7jiaWpMyWIEUyNZHmLIK5iGmr6TjXmJ+ONUF1TfMXjIF479tcZxnE4jSmyE9tE8mR3n4QOvw2zFHzUpLoCOhHQDoF6BUz7RM6qUGNscCGR0tIgoVpmOGeJFEd9DBwM98S22ChzkZJ7PMOlkLnLQE08v6ipzXfDDfygN0SF3oZwFiytiibxlLOkh/O2kohazmqdUa5deWKf8Ai8rtZGRQRBFRvFTH7zaJXl4PlDxtWaI9eQToQWC3B1CJ1TbVoUc7io+puO3x/wCXQYJRRijvCCRl2rA2HU5XYMEzeN4ulLW846nSRHSbMFynv30laTruJreJkoxWJkBQOliJtATLiO5baNWZOs3r1tP2ysrYE2xtQVjQzidIfiNFzJEs4Fw2Hb6d2sZHHN+60sbrwQqRHc61OhS6LapDc26PObYVavXGLP1bTwA5M5uyuhR/DduyyaGyDtrpNo837xvbrpkAfTTPybcNll9Y0ZKH7iuwq+0LmevGti3YdtJnKvDtWiI3mcjx+O1qtuvgG3yUP3Whbo3iC/8Aq6CNbE1tbaUK6evEW6RU26ACZ6rWSZyRTmY4yXrmYifjnWdLaSmQa5wXhvxIvd0RR3HHXubZ5Q+kQCdWxTuWu5zhUpD/AHfE9fZXjZqO24z9W4prqgAAmeZtIbSbwmJCSTPWgey9SU8sly51oXf2QqvIjbIcTKDnGhEzjhHfRAQ4zqByv0/fEen9+VS0ynaW9X3borqLTdp9gew24k86QMDVYRxHJNFiSI7CymWTHMuPtHpxzjMTI59Otq3M9vtQwPt3fblxEX6EZqwuPNi6B+jVYJ1QJf2+KiWTR4zHKO3ecaE4x645CMJ7SRlBQpJTP1ddARgShsTrbdxKm0hYElV3HalwuLVOeVSSznXKeXbERPaIjMFruX6QeniIpz3lxGvpcVLyct/cpk9FIxPq9euePt5xrP8AbOeQ+kfVxz+2dekS7+rQAA/fPKa6gUPXf+oEETeqRSR7VSljeRTEh4333gH4bVL8nPzjUHGDLOo6a47TEa8wmP315pX7amyH7RrzA6l0/wBMahx/8mpdEfcrUOT/AGKNLYue0M1BZj0mM6gj/wC+hP1eoNNagvsHGlwPTn1FEz3+6M6OsX3K76g8zhkaiZGO05gS/wDTUHMa7HrjqBjH+TTk+a+xrqIPMumR1MJTP0xgdPvYx040Z8ymfhH99SwiCBn7R5yXpzyU6WnmfQ9DAv1iTZj1WaU07XBuZWYAPKOWZEJMoEe8zBLKRntPOXyPsJxk7GUxg6W6wZyq8MSVkpqQXSr+iL0gkYHmspuD01/WFmrNJF4cvwB3NtfT7/cr4qJYoaLBmS+AhBBPq9cxIzgoxPCeEl+y5kFnMRExJcjyczOmcOpPSzwgThclGeMR2xoKTSHMBOPLMCZ7ToZlfKP2ewT9Ks9LQ4ku84gv+WC5D/3+CKy21HtN0AZ32M25dQoHhQs+TvLfKhbFt8WbjXQArjbbx0bQuV2LePET92KCfoi5T8samvR/AhZDS878IHOoqs45gZxCDITmB7Y1jXHTtyN+0V6MpVAcdRGoHUDoR1+OWy2Idsnj0BjQjpS+U9tceOtnJbaQZRiXGJ5z2kuWB6E65YDlMYjqcu5/pqrgVwjzMlYkRHm2RFSbY9MfVhaNzS5j+uqWTeYhUjKlkDxsQVNcec6hX3Aj+FrYnXRXWpckPI7LnAdQJNzPM293K6ELfGpOF4lRzztNO300NOTe5TadiRPsfmRviqLbWr0rcYgPJgzrxxOgossE53i+G4NBdLnC1bLYaOcat7UyrA8tbptxbY8FmwD+Dbj3VlIMsqxqAkpxHvaQ+rPRfBDqB1NVwohsgXTTt1h9N1lY5VEaiCGM4nCt4cG0HR4DIbY7ba+2dVLODdw3N925DCLvZtOtt52Dkys7pXDalU6KJFvkvwlNPygSV2yus90INZiswtWrbE1LDTrXdgahXLGmBwLHybY6yncVHRz191K0zcmlfiYfrw50PxVfmscPFo0oph0uHVn4bIu43dFxt04fvnnY3Vg7kfN8a2Cg6zuC2AqDVYlEIJ0OlKN/wvcSBb5cEzqdeGb21UbTT3mvLhumpl1xoDpq+GdZ0tpKODCZgvDviZO8VfIbljr2qhKiKTmGKdzZ0LikrHiRVXbfeSQlGt/ri5AXU8Zg2lPGSnJGIm+MTwSJ9Eyz6o266dG4pvq1vlVabHmFByTgPLyXUmGrbITnEFo2Sw5KYxocTHv3oUdtjYRJvTnW1MVaGztrJ+nIyhz69meEywingw8Q3crEDw6hFCjCSKWjJa45VJcu8e+hKP3jWybjCYlFmedXcap0AJI+tFfd3KT0wdMS9jXz1PVOkmAnHVDkBBy5SARg0lyKVZIP8R7zMwc/3MzzwKZztG6nQmQbHOtuO0rCPNUPqV5qkQRKmQUgSVv4sGcNOS5GqYTBFACMwQlo8TGWEUa5dvfjHcu3GcxHozHfX/bPw/t/XC1TIyZTqqniEPeUZIytM5FMQe31ScfSCZgt53ROw7LyDHUe87Dza0uR/nud3xGePXEf2jMuiZ+3UH/311Dme0zonTBd9ca5p5dSRYDJAsx3grWf6YwtiS7HyHVYIlpcixHtOlkUF2mdRYMY48sl1gzj0loS9PoPvDJicFoS/tqQW37vuJJq9u8Zgo/tIljtOo/xqC1x5/bpYYKCOMjcgSkprekS+0hZHrmP76xosyERMdtvq020rBWX9NpR3nXHA8oLuPqnHvKWlDIifS0pGzWkXaJXl7Ei5fKBrmwsKiZ0vbWT+s4BhtSn1csacyudtUPNcDnzdXzOehHAN4oycLxzi46uARJ1gHVq5QaYjHTIaB0K/GXhI6l6mML6QNQ/YNrsSRgTUaZ4ZaTJio9TdW9ku0cTYTPFvDqT04mBSvqtEM41uVCKLuENFmhmRLI9pKZMpIu864lwz34zOcdtR76mw2KEIyPRrwPVHOqZ7OHhv6nHrr3ipXtM61YHLtMFjzkIwMAXCSx6dY7f51Oc9/fQbjw2llPor1A8ziI90kW238tWDJafVcZ4iPhESU4j3fWOocBZWQFPvOPb4cZj31j4BESccpwMx6p494RjqRy9lhtA+FuXIevYL6xwE+nGkqlhwMar+FrLqvV6c4tUzqukDjv0DhcHIzwgdQOhHQhqA0IapbXZu58uvlqkRbZf+urM1tpi5YKw0Okl0qSgQ+0AZzsGvjMw1oI+8oGD5NWcNOF6B9WFBPPSzg3zwiI1cu9TkmeHXSxtKIVaBfIXLfbYf6Q3DtHU+pXDkNBfITFwzKN22565Ftfi9tzyVeVXK38RButwxzVYR/XifSMIQuh5rrCZ1LD7e5h9GGzvKMVIYzgEbbVPow9kdat16tCGz05l3WZuSQrmyepRoGFzptjBU0wKca3ut1qRQIczsg1byCxEiY++nRXtQiKaZWYeHbBJ58J0S20rQzjB7ncsbha61qMHQ2h9zPTHTduJ+yprMEV6f1KxtQJzAUXUF7Y+LC5O2zdtvd4e8uaMWK1ma7JmIidXr20fgQhWCJekmw6CRE8w2yszyltC+tN6/QDge2rht1T7Ig4a09W+50ooWlVGdQ/DfT8pOMctwJY0GyzGLpRNksa8O1dssxY/FGcZswA2GQqchrbrbqe4KfWjLd3t2L24sfcHg3QHIzmNG8j+6dZ+GzV7lncBDbp4vdUuWd68q71WreyWaW4DVOMs26kezc1SvlreYU+5Wq1LMxO+0fw7cSr9aHaz8K7BVYWZjzHf9zr7pufWp1uguflAyWcEE4Lw74nVuVfyG7THVu0gQDQt/Y97q1dyXBPPaEGdV1d/Dyu50ipMMWTESJiJwTg5RlTLg856aWFHWngUkG3zG7bE6iX65RxOYntp/SgA6XPSU9QDj1ZxMRMzMxqTbCoicwCXGtomE4LdFhuNBW5IH12yCXF05khZxiccucdM+hLcejM50M5n1Tr09XAzJD1ohI8J1tVpd6n+H3jHW50zpPmDHB+aMQgAL0rlTAMpiBnPMp456w9aExECQybCz/zApi+UdUPTB844gGNEeJiGAOdt3o6TyGQgkW6WYi9tDOaTbMuOTn1FMwOc+rkICMjiWTOfUftiPeSiZ/tEFgRx2zGvV78c6jM4jGdAGI6hT6gXIfWtFljHG4+UznVGidh0LHPNXQ26kREX0N83J29bgTMTwIJCcFGPzadNlt8LUOSLwNdipz7crNY67SA4xIsICjvplrzLo+gGoGuf9UrIAdWyYQJxEzBZ9pIpMpIu86SzhBemJ1ADwzJxoeEftnUPn2x2DiXvGSdPSH9uo0IEBkWwXwE5/fQWSGcH30blDAdMuWluz7aW2C7TptYZjMdtSMj2ONRkJ/wJQXtqAhS4MiHJth0REYjXGRnGrVWDHtpgx0uPGepIeiMROZMiXAT9sxEfaWdSGuOuBRGcToZ/zrbWmdnhIyY2KkSGYACJllS8jJSeitEElCsQPqccemTl/wCp9nT0i02vMyosaMiLuUa2y6DQ8va7za2/g2TkOCwelMzw55jclNfEtDhFe1JhHTaLFsWi0PrkVm5t3bC+oJGllfbb6uZh0mW9mfU9asOUczM+rWNQNIdnnlnzU6zPt+3bHaPhjSxmYIomNTbbwxynAWJETHiM6n31mcYz2Vw5T1M6MuZSU++NVYqSp/nJPlAyX2xnWNR79vcs8p5e+q/Th49fPTn8LCk9iTdFu/uNjcnw22fI/gg4W8DIeUbnejcLnWFIqip0fOK83noHswbpauN2H/c8aSyUs5DjX766x8ePKce+ojW2TA2hkvajfqzQCYMIjxK1T9zOU+xWnHTCtJfRgdCOhHUBraJoDSfFwR54jlOPbZNwbWKVJVLNBtwFam1ZHJuIpGYCI4jEdOILM6NxwzOeEWEiYzLRJmrOFUI6gsnTHrqqSwICNG0mC6DieKDKwtk3B4LTtzJKZsHDDYKE3FxxgFt3eEtaEqjXVCoALhAqdJprlEeUibG8tKyanGxZAl15O0n08TTptXuVMwLoi8BmvSN8DEie4gtC2VoldtTIubf174yxbdzq1dpUtI/WsWSsO6jPubbhu2oiEws9s5ScF7ysuK8/tesPfgdvmJeaTvncsWrAA6pQ50G3JIOnTOi3cq5JGAgTEA74xvdhTN1zW763PcXXHj11wstm3I3WY6hiEbzuSkVJlTIJj3S1knPvE6XGdL2Gw7bJthMcW+Hwp7LFmzM89o6TnmraMLGv4hr1WupdD6W0bdbo7kLlqgw3O2zZt6Z5J2Tp09wvQ9tVbWRT3d1KfSUxN3frFsMGycEfKczrlrPw26zNO+p4jBTvW4Fud+bBrhfzbON8r0TtcHL5t2kbp1zmYs7Ud3xHuUNfOAJzKj/JZ463Lcit7gx5REE1ssLJTnWfybyKC6VQqTyY/YKlC0Vmb9noF4e8QJ3Jf4buBx1Lu2uOmyLZj1LjWNAOcyNq7S85tyX2k5fdv1yg0ppwEW2i/iwY4msOoWOURNG+NK+hqRkdeIaQptxaR+jBdu/eFuNU5AsT1OUnJzOZYU9pntI/bifTsd0KVk0PKDq7pT/Dr51ijKyiBmefeAyeQjQ4k+84gV8eRceQ/bPJE5iJnvAZ1XKYsCPLjo0/jm2cJx+ITlPMGBEHJF/2kLTFLIJzB0dznr112mfS306le6E7TIsUuVtbEfv0UzylbuKo6UkHKYjRgKAZmCF1G5YqWBOrnixNPd8HUkFXXVW12yuyBgyV9MIZEiWtvQuxfBb2cV71ToV7gjQI2KmZgs417fdMQUATOwhnVegZerAyPVGvPPIOYZEwpn3nb6THOgURlleuCVylM68Vb75p3kqhfw3gp9FV8/P8NeL3U27rM0eOPy414QcpO8L62Ncw6MyUxjxK5Tt5eSfsm2DF4ckcqkYZyWzpmamZkp9WobI8enMjJMzMdUInXk8jkO+pXAz30fT4jwicxoRkvaNYxpAwlfWP7iIXj9TtLEkqe+mmkqi+A4ZrPPsXvjjOJ0K1kuOBeoWkvsWk2Mx276yMx2104L21w6ee3fnku+ox+0aT0zjBe8qxMwcatVf3j3M2gBKmfTjS49Wru3QmglsGM6kffXWYahURTIKojHruF0wZuQrV06gcR27cjaPl2l671WSbzUPbjHKYLtqst0CTq/u1pOOTZOTxoZmfTPeBLiWcao7idlEV345Xq8V7MwH2aIiCFfUgtMueXfBVGmcL3RFquKW55N2lXA8ZxBvqW8Rko3AKLIEmD6k7Gduf4FkM08DUUraMiUxrjMftqcTjEa6RRESQzEPqsSoJLEhP+PiM8f2ide2o9++j4854fbBEETETMRBTAyP7ULzdus9ZGOUmUsk/6u8z/nRL4xHtrGmKNR4YMjONcZj3jWNY+IkQ54lMfCPhjWNUl1jOfNmQRHoZPCewXnQGIOcEUmWS1EaEdCGqqhmwuGfZvtPbk0FTTgIOA1t21NvH27LrUVbeqAVEcm9QsQM6e2QLoqmObGEjFhkfTt38nWkRnXX65SuWDmSusYcAv0ObJgsbIR0GCtHNsxHENwG1ObC2GrztaaZM6sQu9YCzbjgPLT486deuFXpm+0R9UDYWKXJ7wh4SQXRTWrinjg9w6Sm9Kk+WJobaHW4W29PTUpRQZz5EtgKs8R2+uUxUrYon1U8m7vZ8hCVurK65z+KXoilX4mqAVsbfOs+tt26bUhQdQSgre/8ALkNflABetHY/hZPqO5i4hZmD29tUCb56DkVvJZ5CZjR7taNfAnHxCwa3i0Z9d/cXbjbl9nHNTZBkTrdNx8/YExDhGdRqjtsuUkmwQDcGptNfyx2CObFNj9oRyfzVuVimjcJ/CCMV7Dt5rsRuNtHOp4g3GUSt9WyaLVh52HSxk5LafEVvaKr01+PEzkzkp98/LQaCbqmMHkHiXcK24W1nUV0x+Xwy3cU32HtIczsMbavsNvd1bbLFGkl22myLe+eJJ3JCB6cg29YVatc66YSPROYzjRRjSV9Vwhq54NCtss2Or9VkYKfnzoDICghnE+G/Eit2QNHcpjzN6kRl9eMu2e6xVhiLU8tbjs1dbLJvdIT0JWyRgRmeM4nUd/aNbXMbvsLqBz9dnAVSEhxbMY99SP04nUhMBBfsOZjGdHJqLpyWYXP43sPEv98j1vgSH1OEklKigeUjPvI4jvMe/YI5Y4+85UcjHaeUjPEpzFK8yjaFqpwW70Fbxt34nRj1yOB5aMClUt0PKY4xPbmXfE6W2ePqzK5L0+jOqjqMbYcsg5vW7zrtjqOmSOLLpUI8+ymn26X6o70hwwjdVy4X7Qzp9fbXDZTiQLExiTGMd3FBeXzJTMhmK9Za55u5lNlS+HSXODeZzA5jULMvV7zR2Xgnq256KqzgbPR28OmjxXvgUK00KU/VH1F303C4jhOpnP5q2yssjOJne7kp6cvZxYcnOZ0MqYU844aisqUMPqxkDIPtmdVyrtdHmh46tujt01BESw5nMlOYbDIw+M68tnMgUSPHGlMJRcg7TXDruyye1h3Js/8ALmdLdgeLI5Ayv6eap5BjS6/NBs5j8BKR9tc+r7+6oZ1PpZ5cizxPINW/B4PsQEFiOLe2rNOUzmPUK2EEd4nA+ruH3LdBxwZ7yESPAu8W6mJ9tWEhGJVnURqGEQ8Znt0DOY46np0/bBtuesAbLeZY1DpFMAIjE7bdBndocpvBwusj9oIhicTOoEZApmcFGOE9/Vt1isgzm2nqw77YmJjjBlmPVOkEvdKhgfZ81IFTCNgwR8Zn0RMfBAyUx0inrRu71vw0O1d6Xyl6A6QbndUu/wCoQdGz87bmRRLojZp0t0rcjOfMP2xtG0PWXzTZIZcULzC9RYbe8vWaQwvdKnkrkphsNjSV15rNJpzDdY1OuoqNu6c1/rakcr5Sfccf1aSmXvBY++57aza7s13TEnEyM5j3/wA6VWSVBridAs0Zk0uTCkpVPTmGjMcrNk7dgmsxyVMQyOUdt6ftrlVfw5PTLVCqNy3CjcCYIeJkOc/Dpzw5ftGtuir59f4hz8tZhPmmeVz0Yj4RGhou8n5nhPRENCGgDXQMBiSGYhCjsOFcaDYKkVRFvc1qhSxBUcQlojGTnTrsQchyxoiq1Pql2IzGysghs9QI8s9qXcjV0uCI6GORJP0CR8NW2LrJ6hfab02C/jWFKau8Vab/AC6/TW3Ya1hbGpcPKlZXVYLZXzO/uw2lg0ZKLFxdeIUVQyKSt5BClsZrc3NdeLrsgzp1gbSIlCvmO5Va6OgSNVvL3zZFgzWG08IfAbYcRO57qMJmEmxVt9hthsm8yM69t1R8NrnIMdZY9pMackcKOaZP5Rx5zj31Wttp2RfXLix7zsPNrZ5H8dm8nG5h+JfoWunNtvQ/S2ZNZ+5gF4+Cb0KG86K05UMSU4iO6djZBr84XR0O5OpW07fd7I8vO6b5IrIoHdFN2RLaqrhMnYfDh7jPXszwr+It3gS8ht5Euq1xuZJtOTPOthuUKdsz3NHWXZJZ2mEkeK/lp8PNq636figduh6J2vjj4TQeG3jbIfo/DZ07myXHtXONeG6zW7vLun1I31Pl6D7VS50yobW/dAtMSQ6TMdSM6ohtBeH45wvle4Q8+n9oM4HBR7v8U3bFDyps9Bzmc/kgZLOCCZgvDPiZe6oihuePMbjROZCvC+6ee47ZKmf7zuKuqo2FxDR2PMUgQQDqkYp6joOOdOy3atzW6IkZ8SUgXYi4nuhnJpwTOWi5R6Z7w4lEK+kMjpkLFYdOZmROOEwUZ1Qvv26whsDHDeqAC+LaJ/hXqwHUjMra+WLAJzx9h9owsvVLJ4zOMx76qE/BjXVB6F5wPDA62reHbddz9y972pRBF+jP8K2es3ArjXOen6RjS2EueS+2l9OTyRSMRifftERlkwOonMdsDrMdy7RqDyPOPuHA8JaUzCLba7YKqcqZ+N17Ucd0qLboKG3PzFW5AaLw9c90yt0f7PblH/l86jw7cxMnwXoNqp1e9i6uBDcaNP8A3CtzYJ2d0fl5yWt23VWwbZ0ld7TXG9xMaUkWdZ+UMc45e29I2EPD1cqBR5v4bXsN3d4KagZG5SdQtGiwPFnxzrPw46jOp4SrsM81r5lj20JSP/biJRyDUJOfYdKUQz92NHXCDkefEj6nCAnuLS6SYXH3dSZDjPeNC+RSS+MYUZq9Y+3RCxHJXYyCQnExoEkyJ4xnWNBOJ0k2J4uV2J3VeJWGd9LPq+hmgYSS4l7LfyDEToxxnj7RJrnI9xJ0WuM4iDU6Q9J6VXXcTIxOCu0SQye2ulGNITiOUxOntgYkU9tMyJYPE6mNCHOcaxpDTS6DD3tKG1UhitYjSKEvoueLBjURKpieIlqfgtP8KTZCZiu7osicd7dGnd26HoOIfR25TLA+bJkKdsxGfJEMhUbQamx1HAGj2iugBeVwWEuerIcbClgW3VjIDUSS1G3OJxmhqpmIvbcGArTGqW9DJvC7Wght7HXsp69TmmfwqxAGWI1HadEUl76r1TsyXDGnyqSjoRMRrbqkXnwk2iuGq4HMaY9jVLWc+nTIXgennOomRLMe7DNp8mFMzkJRAwPr013VEI4iPyEtUVRIWZb8caxrGojtpCFsWyTPiUU2SOeM6rpXFkYt84U0F9cujmVwGgXoWN8v0Oc9Ju3vrcOsuR105j3jQBom2dwha+PLW07SNQeo/u1k/wCezD4h75JpNcvkuRGXrUmRMI5HbvdYxie8UXrGsPATGOn1rktHOmXao2xnqnJmDWTKQMY1doQNTqutciWDH0GyJTCYVUvIQsfoHW2xMWghlgJg10LW1WmzAocddPkQcDcmLjQJq9OqlND1kZuEGTskw5Ey8OnuVPp3lJfIq1Y3aT2/yApHG3U48i6s0oWWa6H+VE4E3z9c/Vy1nSh6jgCSgY3KmFG5KVPB45/bS+lCmdaD57ZbqVSbNyt19FPqmYjHybT4fLdKxth6whgcGkGc62nwqzc9vmz1eEXtsja3ql5iyN13Wm80TtlXy81ad3dmjuFls9INnBzH3St/Sq3k76E1hVCNRtFGhbY+23Kn7vW3fmIviiqzaZafLHFyL4bLto7ruYVjb043fb/w3dG1oZDIbsaA8MxuMWxlvyB3OM9tb5t1ClTqHStdZnw6hcIHlPH4bDR3Kyi0W2O6cbdTVtuzq8240t8U+WTuXTonyXDjDlAFMagsa80yBxynBHn4Z+WrUZZPisZmbW0Wao5cohiYx8gkQFBBOC8MeJg3VA0b5YtElyd4GQnjG+0oLFpfqUxfFkiMTEEvypyHMNSUkWJnW1HG67G/b2TlpQwxlZnOIPgRcMjoVxJeo4HXb2/bHH30sQKAlkmAbS5V2ozbGH6BpyN46lj0z0y6hQqJ0qQFRlPciKWHnAxo/wBWeXfW27o3bybKeESwiIuczmWyyOn1R14fvEsmodEHW3nbfINB1X1VlnC/WERyKfec6JeF845dMik40BEBch7TPp94xMCUyRz31z784/U6k6icxwxqCnjMZ11PeJzMQZRH3EOotO49rB65OPsZHOlHALmJ76RXMz7Rqzbr+Hdu6jO9m7cbftm95ZP8vw/4nPZEmrpwwN33I913A7LYiJ+b8Lky5MKIn8LVHuzQU1gshj2TtSmLKRkY15AI/pzrowHsI64857xOGIOJ7ROJAv3idUsi7M/a9otOTlUY4pn+ko05FchjoFMSFVjJmAxOiWa5wYzGgOQLMapdG88AsFw1dQFK4wKruYrDmcc5xD0ip0is4MVXeNAq8hGOc8OOe0ZXGY91nmOB6FhLLBaU6Dj1aNWPUPeOEceQziQZy7F7pcaz7dp5L3BXBnpdY2+VO7xq0f0umMYEo1OnqFXHgyD0syUeR9576UuSZEZiNU3ghvSL7b9Xou5CPoQgzSwxmOLIXFUTWz1lMlOZ9wRLf05yVWo5gyOCgE7aEFPmWfTVaopymtynR3DDHrkdE5kpZyfE680Ucs6O8U1pXHbQ2GCUTBTpVxyW8wOc1nquJ5DHEy3K1RhqrYZhW51njPUHB1r0PoEseJL8qDK6ObVlrddhrMVDtrkuoxRqORYMiUTMe0/AYzOtp2k7ZemO+57GynHrHGjVIljW17Ee5LYQGMasK6DSDTzX0gBUdpkZAeMTyxrpTxzjWPhjUqKAgp9pCYiJnWNY0qmo9uN8vGDxrGsareU8s7zEH1ojW0VofYgZ0nw6mKXeO+90grvnjrjqB1sMUPPf+Kfo2el5xnlv0kXTOwkrUy0N0tIuvEqyuEbLQH8PZFlOq9RVdXFI4005Ge3sMYmCMvqWbArfANmQWLK4qzBxMKrybPMOZg3xW5QELCTs7hEJwM5mxcIJ5AUQikwrDCXWrrLRbQ2PWVhnJyWjz8zBcEWHilrKwR02WmTR49OIWlPVEiJ0L1bcLJXC5zFPbbD09cBHgwWblueFLET8gCyJZt4tLb7cyhxlkU2Ktvd5K69vTTVVc3ol0yI4v7pBMOpY7S23T/CJQKc2EIZZcKkjyMhkDkS96dQLK3ybwVPws323VpWYhqjdqVaFpFup1GiBHOAGZkB5MgfbW5UI294Lh4O0tZMMQCMy3ZNw260hPOINuw2K1kIukKlW7F3Y58rXsz5e1abcfLXnJHtm1/iK7BdcFRU8urZIYp09IrkbxvK+cSmqR1AQ0fDy+T2bpG1ExW+IG09pwbSIR4x8VmYHBLmYJ3U6k9bly5lx45nHyR3nW5bFY27bKttpjK/gMapUdpnwmxrpjzcjHKdeE6qldJ6bZc963XbKDSVZrdRllsvcRY0UTHxjvOI1umy3dnhE3lwHyjrwUysNoutiD8SMrfhDIORkn/qTj5QMlHBrmYLw54hDeanl7MwN9BRJtpWR7bpTDb1GPH6ndsdIe2ulHRI+cZoXho3wekp14grQi4Nur/u9mAGRgQxqTkoiNftjRJIBHnGNSRRHD2FFskNAl9tX8bltqt0q9nsYZnyj0l04hfqzzq07F05TXX2u+HbtQObV+npEbRXj1Xtufthr68DpbcMy0epGSXOc41s+5rNU0L/qq7rtLNus4L1LNRODl3lueMRmMxI9sTHeCxBRH2dPpqnqREzy/aM6HGYluZ1JRM/bjX75z2GYxj3KJxHbtqJ0MZjtOZCPflPYBI2QOO4nW2ejNuzrcdxdudwnvLM/yk2f++vNj+2Z11jKM8MaCxGfU0Y15gI/vOoshj7C1WvQic9KJ11oItcomO4RpakcS5jMaGkrPoLGmbbmZ6WNHt7x/o10zSWZiY1Fks+rBRIV3e30ymsxPqj2zmcl7rYExxYPpJI5yssiaJXUjlEaFRFPpjOiCY1x0JQwOBdi9Sp1Ws/sWpTBDyDRrmO8aW2fadKauFevPNdgHhwfq9QkO+OzFcZ1K9SGuGuONOYhqlClfTOBkiwPuovNVSW6PWymxQsnMYUmXTMQQjpSDaWAHOgQmpHNhczduRmuQjtHWaQyHKZhwdLjiJGazBu1OJzhjY4snGdFnPf4U9vZcS41Y1jVU2LsDKpwUmd/MMLDbb2Q7ukUsXYNJiQ99I3QLaxBxwBbTu6HImnYOOW7+HYuIWcCKDuUbFF8rsrkJ0r3jXhjcVbe8GNjOvE++Vt1MYREDpzctzGgvOXEwBzGmFJlMl7/AAVjnGdHG0/7L9s+eL3+Fc4S8DkYKHshrSMY4/CI1tGx2t6eSqcRJNSaTMD98axrGvTwjt6hjW1v8vYEtf7Tpihj+vcrfm3lOoHQhr8PeNWHyuelA6rVzeyAUMkW2bCNaYZawRkYgM5jsJ5xjTnGDOU9gt2lZER4zp9bqkDuqHAGpalnWEOPWWg1wJmQTuveYuD05Lm2iuIUuRKYWlQbioR1VuwiR8v3Kx4hjrQCdXd1Wh7wr4aMN4V8gRRNu0dra1cYAFAh50ZLj/D+TFSksMeCV02cy8qRwFqkmKYs2wT8xPW68mXIyoebuqt2RscYqJVaot/guJWGTs26/wAA/lLGE1pMOclZZRLakCgCi2phqZBKKRO7W8u0cthkpo2HJlwKKU7vt1CnRrHUtdV2z1KVtzQvP6Otz2ydmtJlbxZNDaov7LYt2YHq7ayNs3hbXd17iSW7g5lUZFMTtA+HPeS3BdtqggQmIgYHdKUXre4cbNi7YvsgXvktb7tnkAr8rcPnWw0AOzLrpwuvcSe9Xv8AwpHFNXabVCgdKCVLqG30qG23UQ2YajZ332MMBMhvUDqnMGOPkrs6TwZEROt53Q91tw41Av5s6sp3RuyJfY5lR+Eahp8OOeyVk1sCIzM0Fbd5WvVXHSf4ivFc3ZkyXKPDNepa3Lhdxx8XUKVNq/KYiZ+Nm7ZucPNONvyRqNKeSpyE40y81kYI5nRFn5Jj4Jcys4WpKRPYd6Rv6BF3ov7jS89TJE/7xNRi3mp3ECciK8sBxfVYeIgCCInav/FdjbQf3NtcpVx6fFnhudrA2/iHHnvZU/xM5279LZ0juO7oTaZ6PGOzUdtUg6npL7ZznWybp5K7h/qr7pQ/D73H/wAsKmCfV4yK/ClhP1AmY57xdTX29kMKOTWBLiLM5a9jmjzLqzBcTzxjTWEQBziNIMyZwX77bui3K/Dd3/R3LbW7ccrZ3Ua+M+2Zge3fsPeBgeOjAlR3xnAgMT/XICUQUHyOJgO0SOYIYL98d+2IxqJ4jM6E59ojsPpicTjQBkR9GkCqnUm3enijdt1buluWH2X/ACoqj3wTNSLcfcCRgUZ9bGOkFz/w6oxrpPL+uB10xD73zqXVx9yItebRH2jOvPD/AMsaC1Eqku2vOR/bQOg/Y8aFrY+w86G1Ezh6xPTKtF/tlRFsx5ykxOGA1ChDpTGp6TO0xwKVSOhjQCZxjPYerWLkHaRbAski76yLigIiB0xPTOYzE6NvUXEFHdIAYSPHJpaaff7ZJbhiR7T08H/bRt5TpbMaRZhg8GdxvUOMc19w6XfRI0xEhOC1C8zpqOmcj2nXHE6rM6ViCL2uVj6kSoeUBQWvHmJyTLMhBKAeAxJTmNGgwGJMZjW32F1bUMcuGDulyL1uWCPEaLlVplpEXUuI7w9Q5G7bO0ccwEZWo2lgBktWbCuksKy+nONTXOAgpjt5l6a6ohUBN0Wb0kbSvW5YqA2Dags+05jW33Qp2ebVQ0T8V2ihQYjphu+2bqHTsLmSueGHL8xFbpkDEOrFhyyDQWSEe06ezOMM5fBXHqj1PsuyibReUiYVqIzplVtcQlo8dc5xjOhDmWIxltdiJHqhI6YrplEcoLWPhEaqXH0jkqzSWUXF/hrUkrk4nCVIEwoYPp8Rie2sagdQOg7agyx76gdCGhDX4g/yPlZP6O3bS++XojiujRr7ajAREkxkyv0d5fz6EY46mchxmc6eXnJ6XPiCuigTz3G0Q4BtZXIpckI4vGQYy0qV9AuUA++lzhNwREy76kPFJQod26z+LV9RZ2+lZk1FIHb2wqPRe5ocEJp33MO3Y6BWGxCPLqkSXSzDx5jyVZshYsFColKKKMkHJZkCa0FVzOIlZRUawJaILv7kW2WHLX0Sjb1uBgNGC6e5eYq0jlBKxcrsHDmGstD3KM+19CUOgazeqDoRVq7e7y5c933GNz3AnwuFDV36zU2l1FXHpTOs6lhFPqKZ0rcrVfYCRIlCtrsDdt1K9oQ6fiqlVroCUxAn++liyk1TnoyFq15hsnAQuNr2izuruCOw/wCzoi+yN+5AQCtqq/US3ra3ok3dnr2nLFSay7PUQvZoNSLe7n4fvH5wRs2dqj8c3S2Vq10dbIKR24OnjXjAFenj9xfd8fDzaat4UW4R9HxU6i/eiLbMdH5i3G/OxDUPl5L4XG1G9HySSVpFcnFAhEzO07e3bXedshgN9t7XGyiyqf8AGGWZnQNJc5GZiXPNs5MpKfzvCm3I3DdOFn7fF2x0qFQHVvQXwrWW07AOQUiew70rfacF9tvxHtkOrFZAfUwyNvrEMx3guYkR1LVmuxbE5470EtSvcqn6TltUf1ImNQszWTIiZFTOExIek7VxtksvYRyOCYHHQxHqnONVirb3tM7eOeqzc5LaI21tbDVWSrl6NPvNfPrKdEeZ1wL+3fP/AL4yMzPsBxjj7agomY1tm7LNHkdxjqVdz2123REo4nW4A1QwZ9zCBmYDPEpn7/SOvTPH2HR4lAcAiNQHeO2YgC4DiO8RiIz9+eRT27pA+/DSwCft0KlbfX8zuE4Hd92bulmSLsr+WqqcfcF8RZTE2c7BZkZWHZY41PUnOOMa6Rl97pnUVg6cniNfSicch1Bq/q4TrKy+1IzpUp6f6OilQz9MOMuh/SiCHkKoHjPMTHVYeozEP0QkHcTzoTdHtGouMjs2M6JVexHceMzQYrumYOJDh7jidlZRh0+eieF96/WCe65jQR3105xnXDQhOMxoc4x+yVT7xPYSjjie+jXicxr20J41UsxMcD76u7d/xUfbZOZQAcI1Ma4Z0Bkosh7kMloakzGWeka5rNEqiZ0xZdeBgsTZWwHlDc8x7FnVy865w6xZ0iqyxy6Q8tNUSi4n78dUQKwgq7PdlJ8PlchOUvZXKZUUjM9576jQ2zPpC2chvW+Iu0E10VwDVG6VJ3KIyN2pn+JTjoyEwURjR7G4Nom6fpHW3M/CxGw5C2rob7ClM4RPKH1dxpI80cFq/wCG3RZMqA9RLFmo5AxmC0KZJBMyOMaxqI76NpsxzKZ+LnMdwhhycaiZiJjXDAQWY1EaxrGqtRlyyCUDyZdoP2+0SLIcWRGojXEeEYieQhoF99WISfDy4SOoHGlrJhwKxki27wxxw3ce2pMEI4IGIhZjISbIwUz1FH0p9XXY44hgfSa6TKFV4gIIvQvmyRb1w6JdRmGfileYGY5QUtM0fWWxikIs2b59JOYtoQioSyBY2NstUgrMC5Mlo7XCOrUqgIDaLzRNsrh0iLbR8YLWIk8HOISDaVWbCFAQbba5SxNvPQkPrSOtvuTXOAI+QK3nkrgvvq+iW1ANaiIrlF1y/wA/p8dv6tGz5kzLym87g27Zl8NiYnhO3ZgS6qGQuwBEPKL9hdi2TEphI279i3UQtv6eq3SmyvzE4VvQ0A3DG1FJV9CMkUQMZmzetTRXRfGAS6UsgwnE2twdbnLjktIQ2y8VoGTZuNy3ZGnWu14Fe4eHqwAmx1YQG83o25SqO2WIlbHMcckwyItt2wrbwFsylXRVs71rd/GKtXYq7fm8Ejq003PI2ERFtm32txcY0x5FS32xRCViU6v7m26eWFnUz3+ACRnAhGSZUdWtQm2BJPf9qrbZ5by1qH/NGm78bfDKtr6IcdAqS9tdKR99eEq6TaZHGTsJVb/hTPjO+1V0tzclLOYzrPy4+fZdsnc7wpjW5eDkJoExBzJODgyR+CLLKzYNJyJW9wsXZzZabJ+NC+7bboWK5YPad0RvVDrLxnfttKpelkfpWT6liSIuMkQEOFHITsD08GULTcr3GmdS2VY4LRwIhHEskBysoMY7wMFn1RGv/TOowOJmc6p2CrbgBwXDW7Y3Ch+J0fSTJLEDy5QRnKhGftn2zM94mSn30RdSc4EdREl9sakuXeczoZxHqjOhmY/fE7VvPlR6Do6qH7SFiu120l1F9ThEgweWoQJ/onnUqIYkTDvMyLfWuM4mcRjQhmMce66pmMyQ4jpKR7z1ZrobaPisZxyrbWrnMibNy3Nu4v5GU8fmESL7YmfhUpuuuhdcJM7+z29tx5tUh+cVhpD29AxIROZkjkroB7kMa8/En6BnTVPnBk2NV0hxmDIp0qp655jnTQr5nCzjUYAsr5ZVckYmCjUkco9LoLSHMFBAeJifsn1lOlQtZ5KC1BwHt6tRYjjGNS83HmYzqff0xOhcQaGyJxhwxOopoZOVFq7V6bJ4DMCtWS7xpgcZxI8ZCNM6fGOA4mO2lhyntpjOPoCdQc6BsT2LRJzGR9piM9tKmYnSbUr7TMTp1UXjJp0xHE/bGhGQnkGpVJT/AI9AfbGSMyPuU64sViZ5DqwENVDh9z5HE51KYhPvElMY7TpNhlfPSKR0ZSZZKczgenHvyrshDgaBd9xAnhDwPOuPfvpqhBvFZ84JJhESYSOsaq7cdyGSog1Kiie+tuh4nIdMjU/ZgBfVl/GEzQ/DiTYYwi8lt8LBkQwtdLb2Aaog41O37dA4izMFSQoYryl/I6WJssM09QrPlLHVa2orV6ntLs8KxpHeNhnbBBqHC+tVNISfXV1NVNrbY+wc6tUjrFgxmNY0oum0S4wWuJW7WFhEFKTiWRMd41jUD37+2IzOPavXOw8VKjJuQdd5qZGDqvZVsC1BSDAqfitSzeu2o63HBTrb9uduDZCsPIunxKYnQhoA1wxrbdgs7h6sdNNXb6u1r41xjqutTPaY0bZJUwBRMyZLXETorkJDOIk37iKq+e/PqACAMSECC0t970Y53f4kZ9EnKEBCM0wk9MW+vVjqtMlo3Eo3AyMiUjcrw7g0YlUQwduBQwyyca6sRIDXaQxdbWIaq68cisqK7uy0ilaTeokuNZe9mIVtdQlPgtG03syydWFAtAVFrhj002eYhLBkD27ZvJqkzmDO0slVihbCjW2bYFZBPlBeb3NNu2+813Fc1bbKb+orjyZUsxUi2a5hO22FVr6m2F9Ve7XQv3yclIqDrtivKYOelqnVK7cWgJiCu1Co3W12TElqjYmpdU8YiZ3C+zcbzLDYiC0tRuaK1DJGO1bnQvrEBMHbmXHw7New7hZsXrNoQGw0jGjVG5dBRthcRsFogY1cZr2q7LHh5VWmwHMpbomnRWhoCb0VT3GrzuevW+0xqXzAPahcuU2MKgZiUnOe+uXxrWDq2VvTOD3beLO9XvM3Jjnc2ezU2utdb+l8sa2v8P3XYA2zgCLXRxZIInOtj2Bb63Udre9iGsnqL+3a3WEbiuKhYZuu6IRs/K0qfMOZyL31PyxrGsfGNbJ4Ybuq5PlwDetgbtLMH3HZ9zPbLotDW5eMxfQJSV8SafM5Kfjtu2N3GxCkDktz8MWtuT1GD6CjE/HZ92fs98Xonsoqu/bLyTORu1TVZiu0eRNYIokVLCAV6T67FnIvb+ObF1l/74cdKZjInqfsx3+Ajlc4+77SmGROkNJXKYnGtm3EqVkon1Jv0U0bMnxltLnIQYxiYKO+I7699APvONNkSLIRAiZz6ZiMameee2ZxIxMFHaffvnVa46tIGg5Ex3Cjuscd0Vwczw66Y50GDbUa7VV/IxNZ+YPkZHxOYfPEPphobDeHAIxKqFu3PYGTHk6tLvcdBm3coCsXphFe9fO43v2D59l32Nor21+VW7UzmdeFt1TtW59SxHo8V+Ja251xr0+4/mttMAIKE8ZhdixHKeUiEVhyBrGNV1oWyDmzqw1DnyYgRmDX44/pgKI55aw50PEM9KGZQIhM9RYlpgf8oBGhVBjENmcRWWP2SeoXH/NOulH9ynQLrwici2WCmS9kaWpqmchENELmlntGjQz+oYmfLFj7Z0KjH9pjS7JwPA45iVVTu6D4G6s0P1Y5a6Ux7TqPfvqYGZ9OuXAcR8IjQB6u/aCLpHIgXIRTDR9PYiCVlidLn040tnCe064LtD6uxWKflo+3lopgi9XsS8FEx3iVyZzjtPBrZge5TX6EYUcFBPqEL5DMRqQ99SM++pjtpYhMzzmYicz2z2xqqMcOmU5noLB8jYkhHHA/TqzbubghS2RkRpjC82GQGkLSTgCsuTNtviqa8rAZTLmkLHES1i5cnKzYxqnl5ZmPLDGvMHBZHtHmj6kNgvqV0zuNUuTVgW3vQLyG2xoCrczS6fqFJUd4l2BlMTZsIqs2zDJFbCAXy1daAWL/AA9BWVRRLkWwX0bO4htqiS8TXU3bZGgOI16jbTumgZImpJDSWyMEOYnIzieJTku+saiNWdwot2BNVdTja0vkE8xzGimTKSKczjUGXHGe0Rqu1iCyopGY7z30Mao7bZvHxrqmdUPD1alxZbnrNZY9JdPsLD7xMMws2wxsBGJZNX0D05iTeYJ4y9mCmsuK3WEo6tmS6EK6YZbEhiAjLUcatcyYEFq25FWDiCmT2CSlBScTpgMEm9dZkK1z/EKMZUFjcQa4SlIDrctwG4S+lJyNIXQyTWnqRVrNuXISocm1TEXyXOYKK/I3w0sFT2915nBOMoqgmydW2kibbVFfcDCoRmKrLpsC5zJzVsv/AFwbDUX3mFpVjqcqgbyp3UKIIE7ruXnd6c+B9Feoh9K043wplaCs1XAdmACmvrXFBiZ1Z2hL946NISELfhViVch0+uSSmCidV1m2ytaZ9d2s6pcYmz+qoCawQCMlt66dK1ZXvKz5bbtNjdbEhUHVnbG7RcDzgQYnYo391A6uNv0kWTt9l1m1PUtWXWndR5SRa2kKe2t6VyQdLIVXpwuJ6lG5creHOf4Y7qP8+bLhPZPqo+LIrUenPvee3cbhmIyU7Hvf4Kx8zWB2jPmwixj4Z1n43K25jsVV1rPkvDobUXmPxWcTa6fmmdD9L4x76Glt3+ynmhfMXUFxdE62PdkRShZlAzvm7pZWlK55apUQ2+U+fT697kFXmIr2CcifmiNeH9hLdXd+wb14PXVqS2sUzpgcDmPhHadeGfE6tvRKLUejxP4gDdTEUR9POs/J4X3ZW1bjzf8AZ4g8TUX7WaaxcyOclM/J4f392yXuX3I3Wine9tG7txQReWFdqVO6caCSgpH3jbbzNqvgwe8brVUhvmUhDaksWcjzDgIlieRQJakucx7DrnP/APty7QMxEaWyQOOM6228p65pbhjoXqTaFsku7GfqKZ9tRHKYgff/AOvlElGY7j9/GICJmMwIYbwj1EUTBzB/djBd/efaPeYz20i45MZWciavE18I4s6Tonf6zIy/ba5T+M0c9trXr8emI+hTrL03dLlrsxs4KF11dayWBu3TuNyXYP5mFtlElLIwh5TR8vJDAlQESz1IwKlDPoXMyKZ/5QHWAIOEwRaFX7QnUVy/Zel7c8/6NJ2dxdiIY0OyqV3faWOiTtCB9dvlrz3h9f8AVM6je9hD7QmdRv8AtA/+V0Xibbf+HWCNI8S0QYctSE6PxVtsrwNUMx4h21n6lWNIsbRdfxwxejRtUNkRuHEroVC+y6qdfgHMZmDAtL2Fg54t7F4ZB0f08neELY914nTNjvIzyVOmIYv7xmPhGoLt8BKY7anGM8uWg7T7dh7z/iDkO2lP5RxZ6ht7ZBx1K3eJElTpmZLOtvslVsQyMTN+CN0P9MS9Pmq0HyjqLVEnIn20QzGRz2kdLjBd4zqUH0+WO2O+ksYVkTCPVbQVoANeorqX62xy0/colfSrhALfxHHA+UQZCWRmYlRR1OTJmZ23dqKdramwrkT7nCwfQxA3c2qqzgiLRgSy4nGJ0DpWGF9iiObcFOJenoNkeYnqdxsF0fXrZd5ZDzS4erLkwSCjAKcusLRZEYmzcrAxSxcYi23WsI/XCYihebt1qHo++y47Vg2t+6I1W3NSNodVKsszxqI1jURoc8MftAa4Y0uk0q8vgfpP2UK+0qteZWRDjVOi+4zhWURlQ8JLrxDd0PMySqqxCuIrB1j1fTxMk5IjHI8i1y2IFQD6DXkR6BTEstro/rtxrcGi+z+mUqWG4LSHXkRTPVdPV/8ALgxjJgzAuW522c5iqHcmRYOAtxjWyw6tTLzccdbneny8wkoB7bVSzHF7HQ1m2JPb+shpS8NrMNgY41T1Ebpaqq4JZxhHWkzapnA6z2dCxHpKQQ+B5LzGpJqOUCRDqo4695c2WGITeQjemtUfUCrcrxdNl5MtXTuMt1U1qlcF6ubtZ6pItFEaZujWbU/rCMR8Ma2141dxS1kZFm/143yLNYMLt+K6k1PR3Kxat3VGMRPS2vb/ADTHT5gUHeou/DV7k98Mm9tB7XSp3BsAU3lVZ2dFrzBMu+Hd3nbTLj31vO4FfdJF21WVBvjmHMN13ikmimrQHlrd9y26+msqjU6bHHtdCrXCKhm+iqpO3u6qZCKm2y1h033GQm/M+edEnz1nXKdUtxft7iZWmILaD27z5FvMMlLuHXPo56fysZeZtgdQmlUz8o++j2RQeFIv+bjnnE6XaMP31s2xN3aiyyTuGp3sEU+huPLquLk05icxA8tSg4jONTHyDOvCO9Io81v7a37xFVmgYIPkTj5MmfjnWfmzrM/N4Z8SM2Wzwbkqm+bcq5VHcKGGIKOm2eYZCQnpSyTjltTkHTijcP6W47cdNrAbA4geK+oQwUY/v74ksx3kuMjyjHqmPaBnIrIgnEcZGk1e9beFW6QxZtVGV7BIdHEzD+mezMY7/bof/bXq4zoS4WBMZgdEfNxHnJHHeMaxM6nGNZjEd51/65j/AB21j++lLJhYH3bCttTys4J1yy206TaX5QxmdV9lt2l80qkofVZXORYOJ/OVt/8AzFymKkB/QA6AAzjMnK6xf0jx0pCpwJzA657bWn6jOerO/begvoIktD4p6voWrhL92uzM87QrCd3YOeJsMgPcL5zwJhaLqCUwzlmrcFGeVZZ6aqSrzYhgREyWfedIoWH98cRGiIlgjIpFALjIjjUPWH7jGvPqiMTnTLyM5GDnXnOlTh/lo4p8TGscSE6V4otwRcGnr/ai+qpBkEcafjFkJ+vJZDxdzGOIicl4ipPKQt0tT+A2h9IwMs2OmyM1jgtT4cL/ADGi2NwswPq0dPpSYnHcMZ764z7xOupoWK6P2/UGe+f2qiyRJgzHFldFsJ9hZZ240fcPYl8dHXbCYMhnhWPpswX27ia244rgCiIz6vby8yqWY9EDiC7a5tfVhQ/b5WR7snUkCpElR2r2uYkrjmHTNdphI67Y9tPBXTE0z8IGZ9o1MlHbPwqPaYwiMlrcUOTYxYzJTTdFSLEhPRiZEsx7lMmUkXvPp7AWYjQzIlkZxO1Xm9aVvnmnrWNocBNgJ0vd69u0A9EcXkcDOBCDrXdrqSxY13DDbFFtVsg0dAvOjVxn++saFsDUNXTHOqja40bC3J5NAczq3tBU6CHkwCjUMZFeVwU8KtS3eOFV1myaHg2EQLt2ZpYV6NaRrrFQvcTxDHYfqE4odOdMAYmeviNLR1WclTkAcPHhKy42LcVXw4wyxA+YvebuBz0+3aPdY48+mTPLQS28sMXIUJyyBKreaSeDynpXLJosYqHIitqJrS+yJtssuuUY9O1yFoVrPSYwziLtVIDYZUsASaBnFsIE4jW4bk2XQjqclsZNhB8KwjHk68bQD4tj5jb18mjqjtqiqjMxq14eU9xdu1pXGycKHMPeBEsujxJe1VdxVF0g6SelabdEEnICbTkvViSORV4cj64HOzPqqRdi2oDLaZVG7ImxHJfifyY3ah1FRzCzRZ4jee4o6Ktz8mNr/wAOkpUJd++tg3Lbh2UAMwA95clu6NOr2XJFjGZxs1V+47mtCh6s2VGi0xTIwV3bH7ZWrOYYTqWEXvOm2F7RsALSIy9KH2WfRWTJ8PbUpQFuV9YLB5Du/Cz5MCrO3HbooqTZ4krfPEBXS6FT0VBWxsFIARR8fDmxxvl40m8UxdrxVvuRBwcfJGv9oC/2X/CugGPljVjbtvjwYq2uz/Fap1H3rEJqLJjEMs1Kx1Ba1drf/Ec7xWSroCuM62+Q8wPU9r1Xax2Ay+nixx6s8fb4Y+AskfadE8i95/k/DniRm0N6LvqU9421D60XaGGVzk5P9+pBccT76pPVvtHydkoi1aRNex0jVIaIcT76mJHIjgtF29tDEz++I5c4xEQOls6c8oLE17a97rLr3ZELlms2s802h4OlUwU8Y5x7d/fUT7TOg/f+wrhmZGfUSsTnGNd4j2xr/wB9fv8AvrvqO/adJqk05/s3c00hlVL1Ma4mnJMKZKfyq2OsPL22rpTtaPL44eNxrxZDp8epP5websfdPRGvREffvJLrIVJsZEadvXb+GT6R3HnZjzDSIG2Fv6oVVyUptDW5RZkWaK2ffpfTFKic2BH3ekq58DkZkDaP2EUaqtqilnnVnzZZCW+gI4qpOser7FhRVVT1ZIZkrD2l2wsWMj936J88/TEzo3lIjGOMiDT78SmBQQTk5GI6PUochtjgIhZxMNUepI+ZYjQOzHAs4RC2EKzjtLOm+YH7VXZIsFmYF/0z6ZRmvuTlnnE6r+KH5FchzGN6UU8WhKy6tM60T6D0vbalnMpxyfs0DmByEs2xwTPozqarAjJDOJGQHvGhn9uXYJ6Ze+QXcyXA/ULqKLH6RcZtULK4495HgQn3jXZocf34TmRKNeTYQyCuUwVTiGWdtcoVGInjo/TPKe8T7/4AuOOA+u2omp6vDE8M6dVYkBIwmB46o2oqHPNQsCOnkmGGdTHfSiJTIMJwTiG3TyUTLZazodLnPTxqsiHt4yUBqR9UxpVVzTgVrIiHZHgsW2Y4LOktcydd8SpS6NlHCw84YFKEKa2s/iG13BrjKmQw9eRok0CJI87MUY6awTEqmsvLJinpLUJExJHLUIRedLSR0w/CUMbwBpDP4IyZnpMA9M2y0gyE0lmBIJ7xqXGUYmZnW30Llxv8Kgi1tvg0FTDNxZnSjqUAFdUACGukiiI7abciC4T2ll9xPYIplkBYYa2cYzAMGM5iZZL+aI4GQwNhVRRlYHEddtmwJuEgQx02CQn0gVsS4lEt4apVT3R8w8i47htK6KJbznUkvpz0/oNXt5syqRGY3PitZDMELVICu9BXJym2+nchvDKdbSoG7ooH9lquI27cbOEC5XAVwFg+BQgT3PcoVVgVRaWSLbFFIzO013v5mmIxR3RYUIl08dW90ituwiwpaoRa3eJ8isQnbfr7s8twSJBvVpQVFVtsf67k2gEUWpnQY5xz+3cl1lPGKTZavQHKzghnBP3J9goJx8iobfY3Y3yqYzPvPwhkxqmrzd1aiLjHiGhV22ytFU5Mkru0UBfRzUBnJnJFOSkyLHIpnVTZXv23z+IlG97TWpJqG1xSe02WiLV7HV/hniV2rgrUjYjeqm21hqMKOe676i1tAVEI4FM6o7tY2+vZVXxx+O2VLl210tvgpa4DW4wb9/yk/Zo8HwuA/wDEfl8PbHX3ZVptq1CA3SpswbEs6DzKyFRjIyIzOtuRboV2bjUeKzvuCNqKLVZo3iL4AcjPbV1d+olXnAatczn4KKIcMn3HxFuu1XNopp26v03fygjmdUNgs3Q5KXMxUbd8Ovlbwkq1+iqwiL22llRR6pj7SRaNI4DESXDxFQ5xgdxYBByiYkWY9Jcft9JY9+DPaI7TqYnt/Vr+mJmR0MwJZmS1V3NF+tFTdNX9ufRbEl6kFI8/eNcY0tXM8a2TYAZVFzZzrf8AZlprwxfsQ8C1/nXfv27qSbC9IzOmQikObJ5O3ujbPoH6atZ/LGcTpG8W6y+CnGIvssefJhTM/nE8FRPHEas71OeFf1kqwvzGbjcmxzXHiczoRUmPr+sjsmcYjABpfGc884GJ9/aOYB7Ryll97QAZmIhYsefEYkixXo++HPJrbPrsM4rAzOeNeMCBCiYl08tMCrYf2d0xlFKjYWYPixonRLpNQCI2CIjyPU1/6TqjUXYW3mfCcd5jVe21E/SnGpzMcrCIwA9OepXOcznnMlHcfRwNUZ1xkvUC9LEyXEMGcHXZBRwzhCnDPI5xoWNWfv2pb6ymueOOSPFEl2trE484h8/wzeOqyBcnDjgtXtur2lRERwl9CwkJEVcoMXj9wzGgYIF6h7iQiX3elNzMYL1w6vXsRPHvp21Yj6JdjUwG+uO7zNeZSc8ePI8TM6bWkPeYyVIwRzOYjQQOfXnEek8jqu0ntnqx1CYs6ryGRxLmteIiwpmE1hZM8zgNU6ddvU67unp7VnXBQLgZtVRRC+LRZrGkH0XQWMw1C56kiEzCqtE9pIy5zYqqqpGCJfpW+vXMSqLGDbaYm/DUv56FEWEPs9eJFLJlEr6ITAiTrOFxmRtMCxwvRM6W9Mycwxgwu+9ViGgffzQ3tqExIVNCG2EwE552atiGORW76SdlITwXJCNouypwGlWHomcR6KTWWhOFrM2I2h1mnx49MaOxbbXiDYoWsNgKGBDAac0efCZwUuBbYz6SZcMXSJzw1l918rCfR1TzKEzxXyahUQUzrLZuHgdMivT2/qWvTrces01yxnV0NhXIVMEwAqZi9NxM50+3av8AJAAuNUN98hBL6Wrm9Tupipv0lVzr+WOXZhlDcVij0zre31imfRGW7f8ARAwmGiliKm4qMlSxdu/BbkVmmPQ0xhNZJnOSUsnOEA+59F1C9CLH02fhD3XTTWw2X0Cp7aDQIgmrelD1kz6ovcZWCb7aptizRUck/H4p0GkaBw02kbZZM+qWTJcj9Wl7Ja3ThYXXBCdwYkmgNdXT+TaULfNnq2/L6qo8zdUmS463zap2fcprdSDjVIIbcWBM6cI2KL5HA2oll111NQaLzLoVarLbJBUd7WwI2/a695zuqNNlcNhfZCz0R2FRbxvP8ZBPDdW/gPRRTbwXt21LbeXuFE+SvErkh4hXDwHo+IGbcdwPwkeK/l27cbO2WetSPibWE1pMZOS1NR8VIsyk/L/EKW0/7IG83/8AiXyqn6kDykY3jY69LY6llLuU+GqdSdngjASno7WavKsiOfiDd7G4PIH4jUz8bu7XdxUhdx5MD+Qz+Qj9SNeHCV+Bq6eNeLuh+FevHUp7m7brUsRPZg1d1RLqXoeQyPYvetacixDVnMH/AA3iNPMOK9xs1mJaS2DMFxz6v2jI/wCNZnsOO3eMe2f/AFzETx1Q3l9TK5wxHl9u3KOVJvln2tttUz+qmYgD4lrafEcVq8JcGos/j7+jEcVM8KVTqn20zZWQ4s4Wo4oU4yxnWOxvTCHp1ohQFMlOSnM4/nmWnXixHpUTQUPFHuKpKOR+kIeRDCURrosh3SkZ5lEgciXaQVPHmfpCHLEPbRnJlMzqAKQkseldcbHCETOm2gQuUU/ZShWrr2NAB2p6jZ4qbcAFwur2jbUKuOxZbw1Z4A0hHSWgJ/UHmPOYL0zjQXHh7MLUPcZ/dMz5l4emS70LavMj50IlVqrt1m3MbaeAOm4I48s6roMJ+qyB1YOsFYSXHM0XVc+MzAaNrBYXTjnr8UOSxMdpeJrjhMCRvJS8HHpW1TI76xzmemfKCcChkJEonhK0i0D5arbnK2CMMmITujTLiUw0K1xF1vFRjEjWTj1xPK5U29swRYjT9lghnyromPwy2IdlFOuFiuX2nqvZ7zJ5ieYnH1hgoZt8TklasVDA8EOJlDBnP3Rd+olfBZDHS9MzroFERiJwqJUYjKfWXVPLjGYkPLAg5OClsGE55Do2kcRE/DGlUGtCWYwBrqJYGCJuktSXoYMymy3iZCiZFQFPtMzi2ny8KYK5AZIOj+/UF7BV0+Xo25Srddw2XcCE5Q/kucEdk2EZMnkXlWMrdZQ/QiYgoyOdchVRXaUcDNW0+60F+phzfwxamkUaBkuFcQbuM+GXXDDPUjVLwdSSf8W4mkoVbepi6aAXE2JjgzlEwVyF2CH05t2xOUlAyQPfZcRCC+GigjfE3TKRsulf7zKhbHMgXDxhUQ5YjziTLmh7umvsW6jX5namGPZaLc1sm7WISJ7IawAGZCipJXJzYjR+UNz+u6RKu1PmZEEGSz2pEWDdENms66GZBCRALLFAKmQcHr8QL0iqDx1ZaZ9ZnGdtg7NSAgJDW4rUu7ACydA1VW2XJUODEOZMgPGLNVu2jWt5VOrO72r8iNo4KE3qlW7xqifEUhum5jUdZOEOqxG6nWrHzipspPgyKYzf3X8NreUWqAdZGn5BBoMvNaHj/VGdONe3bTTArjOhuo0hu/8AhpkafhCWdHq8C6dPZisbPYvS0BElMVAnIzENabj5NOSIQIy4gMzOzeHQ3Km1rLQLPa9sq+QuLtMJLqr6B8w3PrGPW4hIhGNVlvvuVX5lw3LZ/IoFCY6qw3ENgUBbQwHhWGN6Se6buuelue9yu01W0NJdPZjqu3hc7uc9Dfyo/izPwqP4f5fDO50NtZZLcUdXTignHIRgdFuNo9uGkTi8r8Y8O258O/inp6HwPaLIbOG4lEeWnabEbLG5ejy+h+6Ma3W/DQrITDQDbt7bTIe89PcfE9SaPNAGh72k1pGc5KfyUIOwyAXEyVvZblJcHYSQD/IiWNbdv9vbhmEMxF/eLF8svPlqffQMNRwa54lVI91nh05l9qo6oci9ZAQkys4TWXqRu9bdVdDeo4OvbWytPVTEHX49tYx37axj4Y1nUdtVN4uVOynTw/GK7f8AeqKTkdw2n/8AYmxrbvElCgyZTVONXPHQeWIKquM3d0Y9kzymZIpOclOf9Ba7n9NQ8VplVc+TR6hCDtwYwh4xpbSS6DCcFDHWbHXkvW5gQ8i/UN4u6a2NiePwq9RyirhxgHWREOhW7Kq1+ZQRRnRQMlLLnYX2TdHtxXnSiwsig4iSKS0lnSbB8YLTGdRpHiI0p4DTYqVDJxMiWY7TnM/3lNIiGDbPAI6FNozGnX2M/SX2ZBSPImY105FXNoskaodYyhQctJueX5cCPkdRo1fMSM8KIzctgozxq516Fslc+URaUz9QemQCXHmJdQYjzIYksyK3QWBPsPCW8TmQIGOWc9OczWuTXLJFOqu/shJcy6gVvJ7ljpGUabXIOc12xhF96Q4M917oDsiYBOjCg8eRJxqdrqMAoS8h0naDVHocJQym8InqJFmj22TjIoNZN2mysMh6h/DGzMQ0OEWax1zkcFOuUvHkxswdhVYqI8bvJpUV5GPMjOpozHL1xqAz7a6GJ9U40uQ4ksFwRnLOkXr7YkomdKA1o6+PS+uo1CxbeZsQaeMlGNNex0DDDmYDHOOf22QrlBNqzxDlHSHjmCn4KsMhXSzPBQGbMCMzqrsm4vnCqxzqh4Q3Ku4HseCJHwrt6+bLjWvOqNSogUoSCxJ9jqwEEISo2RJfVyBvia/Ng9yDrjIkzs8lBbmTybTujiAjnEE+WKKZIo01xdPqewVOjz5rKepZs+XY7rcY1QIPJR0s8LDyLBVpFhtlO3MYT0kb6SbBqW92JKA4bgbF8y0HQ6DWc5PVVaLMP6piDF3OjUaANBZVd1sWEHW5cUWjoVFknj1HIbUETmxEslPWSI2gGeD2MacvZnX45YLbgqRMCHRX0UWF2s2Rsid/rWw6g7h5M7IsoAS1ht0uveWK0GDdTpGaegLz2xiBvw16zJXm6lzclTFTkVXaAbcsMVHCWr5qm3cZ0FWz6ltpcyOCoOHbouFiFFQkdsVaFglra9jTf2O0+TIXp2qzfqscv1JsVCrQth913YU45dQQxdetSsXJPyyyPUblYDaj2/09DFhdOPvhFqmy34ZRa66cbbXqPtcb75SqpuUbVdfNEAaPGzTibD4Ysn73bsRhpD8BGSLAxmdgUut4eaYNT1bzuOygnaDliKXhV87jxcQHW3feVpUzbto9NPXhvZ6+7vcNp3TFyOL2CHeJXI+/y+HNmo7lVvMvP6WjjBlj5Y1ndY8PT+p+HfCbDprwmWH0uofDhynhraK1i1uyApCJO3nzRb0+L0R5g3xTVShu38G73vhbu8C6QKCfyY1sV4KG5qe0eQ+JvE9TcNt6FYZzPv8Ay3gSa8KfE463jS2mOiAcZZ1Fn/8ASUxMfvnVLdbNDsosrhu2XvV6qj2bU8Yyvi0DSQ9pznhrjrHbU/CZx++pbEalszrMz+/+hvYoZ41s40JkPtMxpa+XqOcB5yBrGpYYjXUKRiJmZhSVOoywjEThXVfwVpz4BXQR9qlQIdV/2rexLRslPEnvZYbLGlkpssmsKZxw+AxnS0MbMwuMzpbJUcHGq1Ju4GbA4gChXVPiC5Y1hgDcsPqHPlybDbElyfuK+PTTygQesZmSCTkt2YdcUn6lftJoPXeC0zdmtojWmfQvkWSCYiapWH8vR1oIEtZMDMqJ1V9KYnlpViRGCsrnEr6gxNZmdciUWLa+YwsWDyqHnRqIjw0oEn1DqmuTaA6RubKtrmJaqbkm0U9RnGQ9oGfumoEHyAp6cddXL3wdriE8CxpT39LInPELTwkYLPGNwDnxJs6m8ovX/SNtPS5EGREqdkyyA6nZtvu4mQ7u8I0hPl1SDU+GEy6CXbwb/CzLUyU3xkh8HWDz0rSC0Phfc6/OShLY/wBld0DDFq7/AOy28GXevr/Znd4/8qWGeGt49vKnilsW7VWQYVCy3w1vDWTM1j1HhDeJ/wDLajwRu/8A8sI0PgXceUcyVr/YN5T2coBR4GXLcPuar+C9rBmGsYchs+y1H8ZqxOksqB1Dq1VBDNwgx9PbVq0XYp7zYvGQx1gmQgpfSEpwMWI+jC+Y84Z5VMxwmV+dPPDphIukohpwXHS4QFmGmfUmZqvtck1zjXTgr5nXIunG0DKfrTOiSsYmsHuqmTGiTojW+XAQiEiZL0s3OWalc/J2M2HiKJmU0wvTemoRSI9ddVbuBzzZa6hzKsJgnjC+KxxMnLDyZa23cPJKsLEo6bTSuvglSbds8lEwd6QLTbJlBLEp6L7UtoVqi2c4bWfXETashEmFJZ9tHS5U0NCJjVgmOaunMrI5mA5xOc1kA9vE3QvSr7aCn1QkCGlcYoOtATLGW/OsGpt9aepvdu6ZEu0mVAe6wypVSVdet03Je6WQlCOgG0V5XScsYFmrQWKCDSByK/C6XBszZVwmN9XKtwOJ9lbpYVtTaIzHQp7jZodTyjSXqZzOZ1Y3lNjwwih0ph3MuPHM4jvqlU695SnF0Q8QWzZd8v5rzKQ2Zx7GzceYQqvVdbZwrrJhbZQFe3hFRIt3LcK34nQhG2LHq1ay6uwAouGd68QhBwnZ+SVyWZzPw2jY2WdosXwsCEbLsK7COs6PTvXh5QVCajTg4nMfJtmxXtypPfUj0FGJx8zPEFovDUbZxjo/DGuGuOtoo3CU+/TbC9Qdm/uUGPJtnxPvFu/0K16r0G6n5c/LE6kvnzqAKYzETj5ti8KN3msTurCw3naG7PdlDu/zotMrllRSMutMfOWFMzqCmPaddWf311NLtsTOVMMdRu7/AOsoZqdzE/uQGpvLn2TjXm4/5NTZmfaIjUsKf3/0hXT79XOgqziTnuJHJ/8AbUaJRDjMaB4FVCutMS17IQEpXPqSEQPVb9vLv1X6Y0mnyLUIVNPqdX6nGcZx20wVxAdM+U065PLARnVtJVjxOYnSKpO7+wC4QXKlHiCcUq/5Rl8B2VGgcQtg/wCpjSa0jL7s6zqslz2/w4ERVriYbMX09QSgDOehPb27TqjuTqJzKCxpjpYyS0L2REZmcW2PdQTAFDEEYHTRNXs9VvMyLo7rTxySixqLkEnFjvJILEHMyafLKJEmLhzBEqeUa2zc2tHpDidUT4c1Wywxbnk0+Mab0e89CYNLIS0+uPFfUmTng3sCFNXnn6pIuphMwJdYQmUv+x5EKphAzI1LLoPlmcOs2AuRMujTLLWgP95uGMcO8CncXSI8JxPnrC/oyE6ZYtsrxzIR0ndGgYjiZKN4nnxGJKS3uIbGeWlbuZsKI76PdWd8Tgj3M3BE12FMjuPVyM8uoN6XW5HONNucS/UjpzbbKzgW9SbF7i6Te2cV7PmVnLfVqw2Ik5E44haMUgY46qfNWmqLjI6t2jm8Qwz1WH3JRAhONLuTIytoSw04cmwtzJ0h5VawLevnoDY9jCsFERFJjYn7RkOdeT4FzHb6wlAemB0aYEO+ruJecqzzv3Y2+pHKcveREpVp7BIrK7xtLlEgFpIVKgqRyZpzrVduJIgK1xbWA0AcRVCEL802IJTpqts/w/JYeTbNeGQsuHh866rsxbESC7sMGmDsN6Vd6ZS6QLTRqxQHitw2aXkuiTmuNNm9fs3y+sfIOBYicZ0tdjoQ0e4PnkfUko5I2Y7FLzAvTo6K9rp8bVMyst2IvLDaOwoZOOeyQjdAKvq/ZXV6HkLRE25efbUJWLMsnVSJKwOIzPh2EeTmCxz8UmsDKFzrZvEU7fXYqe42LIXNxg7ElCrkVxuMikREjVSqdy2tCsc902x203irWJGT1trqqOrNtJGVu1Yu+tveP3xqvtl1tWeoDBqg1CLyU+GZmW1Ru7TcNeY6thbtmhKNtb1Xbra3LbEHSPIhM5+NetuAbdNgFu8n4c3dBUBSw4Et93aurbzAWCRPPkyZ+ShuO409ushT5+Xmcz8kfC1u+2M8HrpqRi38KqJcyBjVfwgxleDKYjW4bSdN3A4xqp4P6vSrqtZZumylse9rVSfJs3Lw7uJoK7bmTNocCmP5NcRLI5e1Pb9vHYBiAVIXIEbbYX9vy+HPFsbPUJD1cw33eT3ncCeY8Y/nNo24t23RVRZwE77tBbJuZVTYLP5XjOsfOIwuObPcLbgYRieJz8Fx6sz2G7a8wyIX9sfwKP8A/ISEFMmyfpkX/EZGiOTLJT3jQRmdR1vJkqP0yHjPwoXjpvE1+997bz5fZmF6Vx6nFC+obLBBMLVPJpGCxg2qgnNYbT5M+DBABCQZy+B2AKkKoVEHxmY9tJeyvMyk5Gc50OhqWJoTYNfJNaut7wiGdoqENri2JhdhP/h2Qx0QMlllc4nqC/8A+hq56JkuyvOtuTzcv/5d6B49MV4gHEqY4lOEWfXJqj6ja7WwRLTMaoOmvazxktfibju9UimdBZlwrZA8WAzphPmzzDQpW1cpnhB+VCzEoIuDmrk+3p00/q9lzBTIOZ9Znq6oSUQmZ1wD1F3EGL5nEBPoYxiogDjvHVASlkSWq5DJ8BgoWvKjKepyJz4hYRBc5Q6F2vqkQ668LcUjnNqUQnPI+rFlT18V55SyBglxMyKwBSOEHPWmwK0lxLJVb8w2P6m2CCLPUaUyKHwTuCmnANfIhKYCWxUeXmTb3GLpm6qMcoiUCRdb6ZtKodojhJH0gGYF58mCMxZWQhMMIrDLQSRnaCYhF5TlmdqJkUQu6hq32MzWpMmm0SZAwoHIglEz0lCoqqDicSjcArGPR54/FBtV+3pm3c8hBM7k1t5DUt/EZI2K5OaIhE62lFu5W6Tinp7zt4VqQ8504I6hc5gYHbGvQ0lT9NKDbBT/AEORTJ0LptMicNqtLK5snjtTG0bsO6UFp28s7KthAKYHWulx+5u52dwzWFQzLFGopgxmNNLzhgKEwOoI67fTOCFyUbWiwK82rtc4Lrn6R29aC6Bl1Rjc/EVVbISwAsI3Hdi3a6mKvAAsbruI7I2xaBLFmJDPqiY+AxJTiIzNOy3bL4OgcMjfHddjc4m1dOyWTnOtn2oNzmz1LQI+ArIvtiZ1CCksYnPkbKRhsCQ6a1jmybjIz2LwqW5I6pTgd18KtSoAAw1S21Gyvgt87qujtNbbFvot5XbO8bju7IDM62Dw30ldV/699Es4bUDOT9wdV23w5FeG/wAc/cbLkkpriMPjV3bc37WOzV45LMn0rBpZkGMsmz7ymdTPyVPELKnh2xtoJHHxAJMsRpWy2WL5CBYbXJJ8TjGt2TtYUahba0idCyL2jWMa2xsKtDM6qWV2KwGso1vR137kKzVLYPeF7RuS2bQAyjct2SzfguDGY3fxXTPaDUicm8+bCn+Ui/ZhPThx8Pf/AERLmV3QxJyBusNsNljzkz/kwjM68K+D6j9oCxaX1D8Y7Kjatx4V+w/KVeaywY6NEcmWS+IBJZn+kiz2j2qgKQmw6O1YkPuZvEXB/SVMlH6TUNhIvZ7ajVcog++q97bg2Nq2LzYsTEsnjqF47tLjHmOP6I8dBBuZEdyPrhT9CogyBwlGa49GPOuiZ4n2jcrEf1DgrBRES1S511kF9yJjQqQyOxHGvLjn0tDVFtdG2PU6tDWn909sfCtZFIMg1Cen3BHa1qS851QhDLUDaZK11HiDGp6303EXOR5Tx27oG+QtTMBKC5lxGZhZnK/rjJBsLFeaAWT9PxMrbhAfJFnTQmP+wysaZzymGq3M3THWOeot4hb5WVamtJukkj9N5PqcBgz1+JdasuOl6k2gVTkCQJa+mUcQRxhoArKxVJQn6pDCB9PAl2ecDMS/PMsxhq2sJXE4+kI157xPKWVeojm0yzD5SECJaN/KZGBySCMEzyOYiFg0Y49ibIZIXzBkmWOtj0YLi70ESyGZVIgEj05zKTaE4Ptqy4zb1WCUsBeeRDMDpiFxAsT3YqzMUSW4eRG+Ku3nBKGZWxSdug+qRPbYbfZ1QgQIVpWsDfyJk7mcBAqWS1XtxwnkMYb5Fz6Hm18Z0qIGuPI569RLnVpAoHi2wSkQIKGJpKqcFEJfXh/O6QJ4eWFsK4KaXU1uLRfx6Ij02sF1taiTMrs2/KqPol/EBHM2rsGbjPb0rqwfRhggCiMyQJ62nePJI+rM8943wrgF31XUzcrUBLREptOWBJlkyE8hj30Ej1I6meMHTDi1LWQbLxbhQEWmtWrhTdpjZKwEsPsQkjlqpxU/lYkl6ubky0haJgenRe2vaEkDzPhYeNk+HaKzyqdfpl0WHetpqhaWZg2z5TZpo8eIlkjn99Ua+316rh3hbVWaaEW3uSduVrs2G2GZefOdV3FXeDV/ca37vfh+4sCvFgBU8wA4MfgXTwHT5Z8MFUrkR3FwUVKlS3vBMAIgNwXXigzqQPGwP8QfGO3h38UTtcmBqFMDO/3GdfceGt33F9mQrubzCsgrNkEqjJ0NoXsbR6H1ry2FVGawvAL9zdLiL0x5jkx9xtkuTi5T8Y1b8Q9XZ6lZFcUuY03NJjSkj+XntMeFePCZ3P47IoW7isT9kIUuvAhEcfE1IGboCq+Oe87S3Zr8V7BCReGH7Ivb7X4tES21IFZZKvsE+M6Ruj1DgGFGvCtu3yYY1uqDtw2xO2NVKYBm6WQNn09Ecz8m2Lqt3JIbi2VVbKEfibV0DliGeD7q9t80QdjDgUx/0QM41s/ji5tVHy4xBxu+8P3e1LrE5L5SMi+6ZnS6/UQxnMY+EaeUlWDgEAmsnrs7/ZZf12enstICsOq32NksOSLUtMggSKZH4RONKkikeoXBdt9cW4o8uMzMzmZzoYkiiI95Lyq5AP1q2LaOh0Y6loxiekrPTWgj95gY4oH7myWolZmIjymLorTZkeA6XYWEfoxMtsww8ioB0q3IT9ukre1TSZwnUjWP9pGfIco+k0Z0ym9f3LmY76pba23Va1cwOuj0Qy8eWhNH/wAuc1rFtQSVU+3O0HedU2Lc/wBc9EnE04nizqR1Sjt31Ymi2kEhyCyOOcZ9nXMulaPUlO4DXYBAJDp703hJi+WisU1bXEKAxs7dciANTccat6WNHgfIJuVxjiZQyMmbYfXnjDLrGNExViZUy16tQE1UwUHlgGM+rvlbjAJiSwVZnKv6xHM1oU6GifpcxkoImRGFuVCvpkUMl4qIi99LtFH1Vz2bbNze8cxVMefnMyA2mNsnxgo0LzDlw/UFxSnJBkDPookJbieqB8JQwl6UsLAdHjiS2pC5mWN6steKDgVZAIOuKBWcSY3LAiBV6mZUXK3YBfaS6R0FsBpHyFtdGzSMqy+u8YAubShgJm0gRcAlIVK/l24WXVu02zYX0S6iFriqseU+iaQecLqpJc374dLp1nT5htxks4gXIUWkjBlZGeFG/Xr+Z82thlt27eWuHLOUqG0mT5mwoM7le1UfNkSOzEHIEYCWBZPAgxE6dTsIDk1JiJLIQg5GeO3JMGjYOtLU3rA2LrGLVCRgOnP1RmdFuY1bYnSQAaMn33x25FIzE4nVeIhmDPpFauWb9UFwsIGqDtu8Nu8xAEG07patlVUYZ1ZU4kPm70oG3RRuKxsUQ6Ezuo2Xl+Kr8wUbJe80lPQITs1zq2mJdGDXVcwZlaymNX9ys3U102cQOsaR4don4eXcbZwd7bRp2PpuFqDq7ajw9169zLqO6sRZGRnVpdWyrlZuTw/FKNLzakVYcA37C0MSDShaLJ1mc14zUqtv3ASqPXX8MKCwCBaXmJqCpY/VkdeI/ECbyvLKT65nS00p2lrGPKLnxVx6wdX7PE8bOJ1/wT57+00K3hircTb528axjWdVrEobBD7q8YWArwGdNt2N0ugKeRuvTY84Y3JOXcpjWdVUHatLQr71eDmpuNTebCtbdvb9t2eU9H07jujLTzYc+ozkp7/MhnSaJRp/jgm7P5cV4Y0+ZzP/AETn8lQcz/xcagpAaq+AjBGUCOZmzMVU+WXPqoQkKz22Vc4c7qn/AGj4kCZqr6XKX4BP3+syYRz6p+KVeXAe38RFaQb5ceLn0rw7NYKGIBhPsy5xFiB1ZX0jiOpDPhGs/CpXiyZxLRXr2LV/c3WrUMn0aGjYasmivIgixGYXBRNcbCpjrWQDTX1uPqyRzYUEdgzomY9HllZGC7lNQChfDtmnMaVaD8OYllflrqVgZkkFpggTJJPMNdco7PHloxWxcTHeFGFV/JgC4K4JYqenknOufVDmpfNYw6qwkTwIGHCJFkTIr6ogf0/TRuoCrEMVx0v+MaS66g6e2lI9Snb465ivqA+M6OyIoctM6niFT6oZ1TFQN+ofpc1U2f4Y4wFqZP04DSenbOZUfrdW51cexjUhjcpORhgfUn0jMdQUHPeCDqqJS5rKnqnzkpmZmCgueIUMyw2GbRxAL0pFp7ChMZ15COf8U0FkI01rUKh73r4NAeiMrIGRfqQqBjqshfoVw+rjyzp5yMiZksCBJ65zXpJMFSB3d08wngC5g19VwBxWXVmSY1KQUCzb1SXwcchorfla7UtETOpUtIaPmGDopWhBHaKNfii91v8Al19QEXdkZWNc2YiUPGvtuOS0uOHpaqa4atUvJ8oujDtMrmmfqRI6UmhGzzLPqW2U/qgFdnVKqixXliXH0VQfF2VxjQXDPavM7o0XLrXIi+JGvqIVbVKrFpb/AC+mw25ZNogUxFattlXnaAXk+fNXylS+GrjkwxfkwJJTJwsfT222pX3F65uP4y+jbK0yltc9REbQ5cQncuevDyVJq9OQXz8S3QWAV+fAU7/X2nKi42lufLrRu9pXvVzzqHNcRzujuvub2ceOh8SWF7UNRQLDW3s57JaUuh1m/iS7O7pduyYJW72NuZucHtaJBG6bxt1vaVIr0YU5m7EzZVUukMRmZ1yn2zqvURtdJG4m9LnWLbLDzZM4nM6SllhsLUMke2bSo70p3MujpFEkLihWWIWnmnbqPN0wMb1NfcvDXnIsyBHPqn5VoNn2RM6o0PM7kiu4+iO+7cra9xJCLEPH5YjkURGt22OxtFesdgwKPDXkI3T/AMVj6O+eW/EmeS/R+GdU3vrWRdVkhY9xvcTWlJH8Ka7BOg6onJ7xe3m9sFZ16BiuXiL/APhr8N6EZMsz+Rn+bz/JVlQ6ytZFxjxRsFLZk1Zp2eqX+hxGZxGjKADpj8K0RVreYP71AVh+NXuoEgBDIL+DajUpBrI9ABJ+3tLYAeKtLAmsgA+4gkDkS99VFQsPMO9hImuJnvNJa12p6lnpk50scRTOdZ+H0vLxiS6uo7ziNEolsgDjuxMYiYwgIKsH/OevPf8AIpY6ndLTQhS856MJDnfbPKzc5rGK6+AAhz+8ROvLQATDHq5QkGHEKkuVba7HCSixWjVG8tKoXZGuydysrbIurJWAFPUdJHU7WHIZVWtaGwaqAPV/TMp8M2ZPmiRibG0mh31A7KQXX504kp3KmfQF5oNbKrR8oxYcusvcnJV0GBEwo29IzE/TU8tY2qY6eX0Gur3umWeBU1y+WqtaqtAbJegS1eNIWua/1XLzAxYEuIVkkLYE+ZNWCGLjhAlZrFEgC5CYc2EqIAWA6260lSOtbYRasRLK3OpXni69LV8DjifPjMx7wdzKghUcdCl9ycjpVA6XLzLxVKJqQ0pxGBB0ixhHEL84IP61hcaqtYm8EuiIXdWuxybX9MBZYow4nDNHHmliMSMWekfV6FjI6WXk4ImhBQvcupQNAxBHtxiBzJq6zRZcVuZfSyMkE9wDmy1JFSjKz6k7a/mMwyCm1brbfSzdHBK3I9yJp3q5GkqnlQm0NnpsseI3XaSa5FpezU7FTqDaktfgoV7gyUdQbxdWxJ01npsOtoiLZwhclI5xOts9VjGQjSrDXusApPXMoOOcccaGs20pfQOXNISWyRKJEvNGToIoji7eZlkeTX5ZW4Vk3KQ2tqAiE5VD4kOfTvOqGHCnDMKdZt9CqOWRudzzBgvyopPbdxrbV5Zgsb1dx3Lr0LD0O6o0N3ftz4YgtLuDZZG6btK3I3pdFd3O2Nk0x2mNbjfr3U1xr0xQXwr3bFUTFDSEbdud9OmitUALNum6jaJFoODbqKaqFQkM52ItzG3lW4DjZukG4rbcSR1rbNr81dapR9PlnSEE9nGJgdKrkbgCYmNCinsO5IYlnmmKpobzF3qs+fr7d/BX3Tndd0fvF+FKkjXbGxUyh4kBbO+kjdFs3RUtrWCWVlsoiYV8F/drwpTrFRIyESZufhz8VvyNCVgV1RItsUc5L5ViRnAhEyV47fWhd6Wc86mfk2PefwfzE+WB2jLmZFrjONJX1XgvMDrw0AbVv9mpF9UCO02dy3JlNdyXU/EPhydoASg+YF7/AOqxojI/uKZ/0TKkUZ9ObGqiOs31dgsu6ze32TPlkYj9VrjcXJpSU/CORh9Qp6Zsz2HsOomY7xpBr6ubESY1kQ5skXpS1pW3wIdhcyKy4APv+MsIliE+2kjBtESnEIWpFrDWcYst8m8lpEY1F2egayWBTGkVSbHM54KBvHK6AwEOUBAMgyTMLyq9RiVj1NVriuZecEjFzZlUNWkVhJyc5Kc6ApgtRki7akijtMzpFpqGQSznXmzaWQOQJF26QCCiKWM3q9WdwsBxP8cU5IwwJ5UG1iV9Iuk24+88p88MGhe2sfXlqVkBPqvi2S3DMMrzPVhZTAxbalUgqvMiYbgYtAW4kVtM7n8G3VQbBKZGIU5wiFLzM8Qai6dpci6cxPYjlBcDsVmZg7RBJ2oNULOD1cXaCqviI8Wy6l9OwK5KluS+uRLLgL9vi2BvCRg20OK4I5mDnhSkZTHPQMYpMw3lCmJJlWGBzNtbmI87C/oPMoCRWXMFJO2xfMuprcVMRd4feNJDLKWt5iK1HxdIzw4pg12ilmSF0+aAm/TGw23UJTBNc9akObQSUTx6K4ZZXE8W1WxCHrbAAwSjnJr5wXl+ZxK/XG5burZasqUUNtv3J1pJ9eIJlLpRVcTXmtu4V7Q9N1ouep1s165Uawqwka9vsUd35y9pBNmy7ZrZeUH6F5nm4WK7IiK9uDz5Ia9eiOvNPiBCDK77e0vExNUarUn7zaYwzENVKdyheGZIq03gqDaGOoZsJ6hU1QKidVgWyyAOZ01qRYcNlVRsmslmE4MSGdqlKus5s+sFc0273TlRquvW0yEo5Pyi5kyW/SbDQ5AB8Iili6KiaMp3ugjbmqCpcGwPwXaXFLo+Xgm729b2JkKsVz1fHbooU/JEc2FsJRwaykSa5j2SbjkzrVXOauRURAdFB7z0bNYkK3Rm6eVCsFHy6H7S2vUB7Wr0vZqZdPG4q0q7tRbc5r15MW3d/tgFNAjFbbrAOpF0F8NyfS2gMWjnW772e69GCGBHZrrae5rsJT1Z3rdWbtuTLLY4z8gzjVXdX1Rwk5jVCN4s0rl+k2RAykymSnM/LQszSvKsBETO+btO87odolwv5n7ql3hyrQGsIt14R2nb92VYXdfwNO1bMpzQuWJ4b5V/C7/ACW1WweJPwv0nGQ8Q+JfxbAh2ChNWdyT+I8vK7r5L8Td+Fc/KfkB+HfgbOfV/Ef8Ao6R4FOe+pLM99RGZxHu7+FrwiPvQMREtP7TOTOSL399MrtSIy0JGEpHj1X9l3JDzGFHyXr2+Clk5sAHvZZADFdP2himnkX6pHJnJT7qPptgsZ1aeNh0mK4D4rTn1MngEvhfatHGM98/vmZ9/htlhW3V2zbQo9Be61n1wIgY8Zk7MzMsaTMDP2lEjOCjGmAsVBIM5FmcY1ETjP7RIdH9+pSsxVtgwgg4uWBsWjaAQEZ+COu4PpTM6ZNhx5bzIhXYqchiR51i3ADI4CY0re4DA2TVpe9VGL6aHCIvT5eV3EkD3fhNe/uR9E5HTdigepg5ma1ZTBsdRnAz6hQtqoGJi85HSlndi9xLerIrhQ5aryv1FRxbUYDDbMhETNvrCsVzOJqFG7cbccBN7GF0s/SsUmApJvgeLVki6axxnbq75NRSOdbnWIGyfHlLweC8V4BodTp8RcPZd4kATAyQTYddbApAy0YcnyK08WKteXcUJ5Ro2dXtIH1KakjVw3pipVhPVYCwGCt1JQj6pnEUkStoNumca3MEHuMzXieA1CpSggKCJ65N8T1PUNbF9sOZMardQp6R+vW7b0G3ySdun66Nn8xVl77a4PlM1yGVQWqPqbwYPJbqtdm0hDWgvQJg38COAgTelbeiRdJTjSfJZYLaN2VfHobj09Mvbb6ZleNbiKU7hPlD5LC0iwtSKlHk+NqAr4V3s8tqla8u9dcj+hW3Stud86V1wzU3nZlTLLdN4mi1SZUcK3xxmaiVXwUb4JXlVVkxZq2YN47l/tNZFTKSoIKtCrZiUqOwV1RMm4bECtZ7XaXXi0xBxXaMAeMxMWZqDVVFWGdWCftPh7DUqJczn3+AQMl6/alRt2ik6iznTAMWkLc84Qc/0zq9RmkwRkwPXRZwguBcW7LcRtgXWrwik1E1aVdDWtHdd8cu0VevHAK3ifcEP6hnDtWdxdak+pxxrZNrnc3MX3Eds2arti8VfSfiHxXFUCq0p/iLFltlsm85MtbDug7S2w1iucMLmwi+eLe409qJEE1dT4JVLnAuO07h4fdQ3NFTmDD3nwvZ2ZAMfMTGvD1yhR3KW7qjrptsBt1zEjwX8u82drfToRtaem1SiYXpGZjePDyqWwU7e1yyH70qgulSOi4idJTPvPwz/AKJEZ9tTEx7xj/VbT0lVQlKeJ6oqEAO0z7fVYfMz9zjifQH2ajto7TLCVzbPktjZaWZ9tCXEonViyVg+RwMTGiXO3VRmcdauMAMvd3G2E+hhMg5+MRJTgYzPEK/6mDYRkc5KdVOh14m1ylR8eoXT+2NLAagdR0RLCJll/wC8lkasYHBN9Z5PvOhcCwLiuJKTIu5TmfhGkbL1dibf6oRqurrWAXM8dbvtYbZbFQPBurexMqbWi4TVyFaibyjJQAnXZWnjRKS1ttpS7MLv4dq/aOtfMUAC9Me15ZawylqekATyidMKuFVXRM5Ztl+zHOYdEhR3QSrNbUH1jvBQ2v0mCQ/gSLPOzACYK2YJ3P8AhCh2rW1qs2A6AOiTpxt9kIXZHq1N3WDRlo9R1hc2rUzWkxOkyPwc8xjTJ6nCIiJiyKmADA4HLaanRgG6UhKsQ8CFuzzVA/V925Vq1hU5xGra+DxVU4as0bHLBxiOIqPizOo4iY8TkYWuGn1AfwK1UTTE4esxdFnqukggoKlQsMk5xyXWrKQJmUrk/N2zesymWjElZWyB6AL2boEDvp+u1RgmA2pIHqzC8AcoknVKuKcMts4p33e+kMI2v6STKTRBSERqDKP3nCN0aim2uOJFVliCmVljWxg2xuomCusO/rmNylkAAgSLC6cMITFET30xgy2SUPAdjtldTFLyq2afcUjfpMQBleaZO3JRVQiu3dF2V7iyLvKWbkpUVa7kAIghvOp0eiOrJgDSBDTIY6NpJnaeUN6/8JKIWGaNWZsrlxygEpqVnn1OQhV3ma9nhtg9RrPE7/xPNtcACmWd82jog5A072wU/wAR4DcAQVs57j120l8E3rC2rSKgIYRt23N2IHTZxbPa9tPdnIVd4I4+vjGqP4vtmzOOpjy57ZbVuSgtrnnX2KuNUCYAZ3DZKb90BXLog/eW1pClhRou7zbtpmvLp8t4f6Z3+DeUFvobfL3HWP6mquzW7dbrqX9LbPCEJvEG6YYIrrbAgUIVyDePEoWzHyVkq+mNNhkRlJFn4DvaA8KztvlA62tu8t+Ip8/y8tunk/xJv4by8r8Y1uW927u3VqVgREPhE4nQ3Gw8G9QpPcN+u7qABbbyjoHxzxnC9s2v/ZNlpr/435fDe209x3Ppbg3pruqWm+9aC5q8LdPb9sK1f9CfEu9M2Vq305S0WtlrTMvfP+jeFJpRvQfiXHpeNj26bSfw/hn/AFVS5c2AH3ttj0oX9nIKtCV8Yl+hjPaPcV8ck3tBsky7/EVkcTxGZ+FJcep7fs5FctZOdWG8y4h+nn41apWSKBkR11ITEir7vhI1/IwUGXmNKWNVXWdHqmTstzPv1RSqBT96uko4O1HKPMi+1HmI4V28OqXTzwrjUmg8nHMP+ETjUWD6XHlPHOlLbZZge+osdLCV5ezsLo8yyZnc3ApS1VH5XnVJy130lbHmq7O2/jwWKquVHe7FOzuZs25UqrxEz7ahxDjERGl3m13i1WAlbF3OJ8JVcXvd+lErZmBoNqG6SRlk09w/hShJZda2lb0OnnwtfhL1EBFMQEV2xeSmbWoskzaHpYhZSFdi1gFiSglwDghqzFcNrGncPXM6uXjmx07RToztVGgbCnAPY1JBJxrrS55DGee0tcFUifx47go45SA/S6bfJ8199AXVHhGYMa7NwkI6kaRSXTsfW5czuKr9RNbKl2+ZJW4BFYQ5ShiasGITTqpAVdWOVcLCBsnVZOVI6/l2yv8AiXCna5O1cOZncvEVm/ahsfTChSjcnO6rxXo70L20qUJXPwTwl4Q39OyKhtsGvMkraB41bL12ui4Nwrpqzwgps3/KP2SuQWy6lzZrNKkuw/EBpFh1c8oYQE5yK21Dt1qqEW7k2qGzh0XIcmN7K9VinZRDJGQaXlJSUB1h2eyQDAPGKFa9XVNNhMutqvpOg7CJkB8ru94rIU5rprbOo60JAY4+JJirbit1OoMWelYFlQZXq443WJNnLku05K5FbCEV32PuV+sMHHiTfH0ydSrJhC53mo3ZAptoj1bpUPNLmh1ujQ2ra90BtlK2ijbX7dT3Vs2kS9Fqm9WxdVFnjW3Zu7pfXO5E8/8AaG9JDJtKdbjvNjcW8mekSLlOcagSKYgYmZ2zaCnaOgSYr2o2xKl+Yt2RJZbXt1hIzt7WlNKqrZ6s1Ljy6TdzX1DCxBBV8V+IU3kKq0Z9OfjWlcWldf8AS8Tt29u5AW1REK+OfhnW2WF1NyQ9yuqHiLdVbtukvQnpB8ipwcZ0jdNnb4chMgAs8TbPU22khla11T+MaUvkWNO8HeX8Phe6uSu7L5WKx1jm1CXoVsyC3ZSEVt7vjuO6tcqJFfw6RYzEamMf6JnHtqZmfef9WVHlKktn9VIwP1j7wZyZyRe+qDehZF2Ixud0btnqCvh8irDEicLLEAEsZAj72jiIGur7Tnoo6UffqugrDOITETPYpjQLzHI5wEWlxWYrpfCI0CCP2jRLkPfVKrEB5l/6Z24utBTsApkCDJWmeUScKj+5yWZzPv8AJAD0efOOWoKeGP2FSG1AKIJcc5f9NEdKubxVHCt8M6zomEc5Kc6r2WVzklzjWVuDtmHCbKzZx6SJRQgXZiYs3mWoRzgY0y9YsmHUOSnqlIijcQJTPImqS4M9UJ3KgtdmQYAfifnq3qYJM2kZ3COJDz0/bOUNGOAkha0D9VrJ0dhsWJV1vTV8uujEiSyA2mqtxgpJnQiawnK4a6vbVESFnM6iTbJiCiNnlLNhoT21b3J667amkXkXttlBt6OmbUXkwnqFm/3Lj0ejqmJqWPGOGnXxXVPM4s0czZlhnGhpLJhc7EaqTVcpMM9RVgLzRLhHI17N1R69gunq74mTtjZHbPqt3GzuO+D5k1z0K9eHScSwQlTZQ6JiILV1bYd1GI6MNKqW3hADI2BmIOM+ytyqqY+ZphMc5j7e2s62ENsY9n4qZhFa3V6rUX+q9Ner5m70YYC9Wa81bJqkoLQxMnzdBFFK55WyEvDrJTTpWa34htUdNlFdFXVtOF/U3cEbxZ8xR7T5Uq6a01OoTrPiC0zai29oRwqbjYqKJSinpW9/uMGBTlMMeplI+tzK2s+mwS99bruc7paF3RBXw2fbjthZsgWNXbr79iW2T5H8FWWpEhUwhipCztrF5cV7pNJG5pVUtsbUs+JGxbzW9aqu8107a5DqK2HtC9vbZZ+KNNazs7SezknokNnb7kE6ojpBE7ud+xYZ1n852vYJs8yuu8vFW/WWApq7eWtzKUUUWdxldhe8775mJr0WMilnURnVLY7N0fohM6u7a6kci0ZjWxL2s3u/GTMQZx6pcPt+bwlb2ypcee7hBDaMGW2moeK8/LtVF+6bgupW/U3WpY2/cWVLZZZ8I14d2It8u9EWQuLHh20jfPIK+ocBdm2vYrl0OnX8SJ8N+Y260jrnuO62NwbMtOen8EREtGJ9tn2CgzZlmwYIt+qLp7q5SpyP8t0yxnE4/wCgqVfzD+/Zbjm5bwuOzy78B+zSqLm1yeI/SYcY4B9vxn4Kjy1SXF96R4gTz9iKSKZn31H+NCERHNvsbJP/ALfBMZPWwUKz2CNkoEN02dUXy4T/AA9+512dNXZVSrBNAOcC2yA1nmpTIZ8O3GP7/KPfX4d0EJfZOIUUTZjmf06zrHMeARxXUroch5OsdM/ko0Zu9SBasJntOqtkFzMWFQ0OjziZR6hWPNggRQEZ6TvRMTpd2Ll4C3MzIIvprtJEcmVbV2xO3ihzzdS2223azGzH2Vt0JAGaHhA1d2u+eAY4TonJKFs6fKb+2y/cM1uOrqZqhx6RQSLNV1rrOnpxWsJc+ZQBYdTrlfhqHZDeHdMYJL45rdYlqYd6QeL2mbqqoBb4oNXBV2ED6T+c9B7z1bqOvPke3TuRaoVulgSHku5QNll3F9dQ7cItL1arKh0y4xgipbVXYUmmCE7DauzrmxdZ9bdvEtrc/pjPSrsAw/UGRnZeFnanVoeUPfRsKcwCWXI8DiRnv1nXVjyYTDtPiw7mKhXqhtteztll7bYrZ0ykeXGeNyidLpwwwKdREzOI91eaoNB4iQFQhZ7kB3Y+ijao3LfmLR+jd8GIr7RzCclfTCbBDGoaYjMCUxCrV2NoQpskqkjYaiKYuh/XA/PVkJEcLpDQBJs83TGwf+zdaWg9RzA7nsVItoI8fUsLlbZifjXrssuFahkp3UUVH9Gg1nHVHy/n0+ez5ffS20t0L8FEoq62FO0t6/4u4g0ipNy/0Knq1b8L+R2djbJYd8FJY4uKxkp2vwuaLyz3OQgYsrobtaDbFTZm9t9zcNyWu0z12d1HaqEKvzJbhe3F+4WTa8/ijHUjOvDj634SELIYLxW6u8uK8EW8I2tO00ZoMkrfzxb2+PDhI8tPn/m2+luMIPcaQHAWXssvJrzk2ee2/wD2X8p5X+P+HhhvHdgza8sAxbqsPcaTV2Y8QPqbVuVa0lDV7luV9m57i607HP4xOJ1W8R3KtXorZMC9xOZJnOZ/lR+7SfwUPCcZJUm3HVLj7f8AQLv4KiKI/VoO8gY2ZHMnI2bZTGFx++NS8wR0RKePyc0+U48Z61VPXdj+iw6bdmBCMBYuIjboqrXHP4AEKCGN97ViLLYOAgPkEsTqjdbJwtUzndt1lyF0K868sdVsw4PrMZxyIz6tLrsaphhjGgSZjMiMzE6H31ZcDmRK1QuNbNXR/wCaGM2FyLzGwzIWranVQBa5Evgu1R/BpSaJ80qsx8/SGS1KwFJcimGrCWNEB93qKu8lH76iNO2qzR2tN0vSCyS/MO9DG1HIPBj2Vtj2VybxwKkgZYY4Q1SaCWSBOiQYDqihs1fq1ZmXHgO2pmxTKBLmBbKNncbc1AscITnaA47rPUmpuUWuQi4CJ1Ja6wECpGxs0jU3Qgc+cKZKN5cCGQS7m2WLQpGOmA2wjbqzK/Uy9V2tRSCoLqQga1O8ThWLA6yk8uqGCq2CRAWIMWhuEReXzB30lbJWVXNr5aS6y1xUBNZ/V1SrEAkERxrt3ZK+uO0kJtbaZauEd1pHqZgWTx7xauNuMg3TmalhtSwLUFxNdy9HXaJTluYLvqtbbTd1ETgtlqPsNbKVLPUpdCzKBnhFhkV5TBT00eWLbbEvzL9umtF5c3oKUNsVqm7dbbYyqxvbba1qujBqpbkFQxMkraKLtY836RhXba3axa8PQ5RhI3NvVYoFdl0cn7Cx21efT0gCnuZeUGnuM/wtjc9o/DHoqC5c7dvURT8pdIiTVpzcJts7Q6jcb7txRLyENbnvNUNugJZHPcKKWGxtFwMX0mcscCyazWUiwZEqLPwjZTbYrHDDB74OwQmUfBNZ1iZhCjP4EulG1LNbS83UsHWtA1P37pvtvcxgXl6UqY9sLSMmf4DcVbUq4PQE5bt/Wp1IUSCq2l2apgwXNp1k4sNAhi14i30asHUrKIXueb2ybSki+OcaVfckcAcxraa17ebkrpzHO2DE3Grf+p81YQK0uHThfiSvtNd6Y2VvUj5Y1T8SPpeHn7YK4xM9/kijaip5noM6Dtuv0Njq7l146O4bpa3R8NutlhwEz7RolkPvHyX91Rc2ijUTRWhnCZ/bUxj5Hr22NlrmhzJv/mrHmcRqj4HZa23rSURN2pNO0ai99dQsYz2/6C5TbtyR6c3qH/8ATGmIBFNbOeXaAuBwXvqy+LD5OAEPhjUab/C1ejH6gfw9WWF9+sf20AwoebY7kcmUyWpScKg5GeGllwZBTGdbhcC46DWkVfAP4Clyn9dUf8Uszp7yyWS5O+GCGP3j4IvOrIYpc+n31T2R9zbXW1SPBFUHKaROEJqVomJe7skim06WnPBNh4v7x2jQ+V/CyznzPw2jdz2ppksYLT3S5pHOv37amZmcz76pJl7YEIzO5bbdqrWL4PjNcFd7DMa/EeNckqDAbdRXO2MuWjyiwCRZ/DnJCNNRbadnzIQaLja7IJZ65puzMj9GxYiwbRU8fXc2520sTLGjp9ptjEE4mRVt+V2cvUA2P9qA3LbFot8ue3WVXDDziuJ3JTUaJdEJ0T/OOPoiQCVfztuDtxzUdYOMTEBwS1gPnsrFgeswxtxAglVdVVo0Igh2pCQql1DXJNqn0xQJHxQFDZk87AfxW9eJrO6zKg+jWrbk6pSfXXMcBUN3y6KQT1blJ1F/SsjxMMcoz7WooPs1BoBxintNP8J5FMct8QKbkwHtqrZ3CpsMCAD5be7x23hAqWoQQw0mwR9D6yF0K7Vv5N0l60UKj2dFusRauC3phCrjgazikeKYnBemdLtW6CeissDt23xe25g+dEZq7FZYM1mnIzbrq3UHE2FUTdQegxhgTqrRv0a024rLYraKVMHrN93pv3k+VqmiqPPW+0S3OyL1OrjqnSu7VcF1itlVjxFZVuKXAAcW7gPiG8ANqwJbtXotBVKpdNh9HclQexBATqfC18NzCmYDDH+Gb6PM5EZHYUX6e2WLNE1aV4SA6rDdZw9+17USq66lv+JnYw2y2TXMVZTb/DJ2UyXExc2yAuVqsbaiKtqpF7cVsTcDqoXXRVE64Jgwu+al/mVfQh3izy1uW0IyVq22282vLkeflj31Kd02Dg/6lbRnLDkjnJaiqv8ACis+YDq/J4X23bNw81+KP6UsWoL5BBcleJg2gBq/g/v8m1WV09zTYcrqhvm4L3LdWWEqhQfHavDN/dak2aq4le+7luNDaI2W0oAEnsJULJhSvXhTaV37P1ft8Q+HaMbUbFAKz2zbdkPYLrdwfxuF79vgqMnGtl8N7e7YVsaAme71wq7i1S5zH5SWbDHgwxYH/ivzAXE4nW3eOvK7dCWq5FuFubtxji/6FP6CIH+vQR25ToikvefimqTkMaMjiNX9wXbrIWtALmmuI5PZ9ixm1ZIme1hvWbM/06rlNcof201hNZJn76K206wII8r1nUZme2qSYI5a39NjJt2CMvtayFx7YP4vuHYWsTx8EiBMiDnEX0V0MGKruqK7LVAQLMoGqiXt7zgHM8yfBforPdzwAdl/DOgGWHAj3lqjQ0ltjiY45xy9njX85xrGXQeKq1z6LIcFmx5h5M4CGlgTD4hGS2pytrugxxQR+JvFR73wiB4AU5+AnMds+m0G2ltCTrGXm9J4S0erMwDFImxxrkcrrSFSty3KeaXVB3YeptzJPVcHVri56OT3u021bjrVQrMpWyogwpQJRW3azTZLOtki3tRVJZBs8xte4GxXWFYCol9OycVTwTaUeYY87Zg1vTCJZ15h/Am0szxIBqpG71aMzJrrCjpWHRFeGbqTHMr7YE6UqoFqTtPeq07bOd2yw0GKh2+ydmUAk+rxbVfieQMc8XKiT5y/W22lV7onaCWL/wBoWDyFfZfEdx2Ww8lRMssD5CEBXGJOXqT0z5iANJc5Ge8SXfEzqtsNi5th20kPEgID4nExK4OG/RnVfwOxm0eZl2GFSf5gkisiNVciP7oCa1kTqGl49axSP8LXYFwTNhvizcWNWfOBOL6GzjBiR7vKLCupcmyE79U3aASTp28Ogy5upLqn5hlfehposVN5p/X66t+hYWV+XHjav7JFKtYBo+SZuteoi1VgALb9w2K4T9o5sU+WE8jbnnXtuq2gepkw27vt69aF7WzDPO2Zg4l7MVrLKzgYudX933J0juP6I5zOZ90Ifa5QkSPVDw6PFbt05glm7S0A2yvH0HRbrbRwpiOd23yuhFbcKThO3uO82dyebHFxjPz0qFq5zKokma3jf7m89MbhRjR1HrTDDUcB8ih5tEc41vuxK2hFQ02YdMxMfLGvD20bW3w1bs7pEi04jnPH2sbbtweHkWU3ud7bNiu7qZRVVM6reHnFv4bdaLpHV3U/Be4toMnzCfFPiGN9tgYK4D8Nq3l22N5pnvuXiu3fVwYXpNklM/EZxOkb7dr1uip5itrZackU5n/oPP5kfksOWHJTqunr2BDOIscBcQKLkuPfvq15fIeV5Y1mYjHwAZM4GPe2fABrB7H9CrC/66m1stpNgfb0eMkRz6GM6hf4+Wq1ibIGj9S02WYSvQ4rrz76IpM5Ip7gsCQZE3iXxJRhjmMx8M6SsnNgAju+eC4p1vaLEKMIgYNb2w55mIQEAaormJLyzUojycO6g5EpAoIe0sYTWSbCki+NarL8kU8EttiIdKoPAc6C1A0zVKgmc/CrS8zXe3qrDURJT6YzoBJhcQjJVK4GTlPkwb5O0ixCoWfVuWXvdizJc6aLIthiilOnboqyxSrx+q7ZsVS6gqCwDLr3pFJF6Kex2raxMZWA1GLrPaNlXVja7W4jk0BJIPxFUCUQlTZZRtt3B9gkLAtIQxFvl0h51qs33ZLALZfp7aXCvIE1lizud55LmJXe3KpU3wLFIWCve94XuzUNSnpmjfa9tal9PptubbYa9l+sfCH7a6wNbBgxt2g+hblNiMHaTCHcIYJ6xPHP7LWbT4rGSKIdHJfrjV+ouvVQyu8mi1zHY6hSWq1RloiFS5ORCSZAfvfQzbaFIEl6y24d1LnTLE0alD8LgBJcX6niOqqnwYcTrz9W9vOKRDTm/Qn8YSnb19V++FYHeWeZ4A47ZeXEgYfXkZGcFGJ64RVlcqjlPwDr1+Lg5hqhvrlXSbZSFwrZRQovVcrMr2to8NotbF5jrt6yVsq7hHmpt+Us+I7C4bWplMpX4kotVzu7cBPWituN4YgvLyHh3bB/hrN6Bss8K2woushIkEn+I7ImtX2/i6nsG4XnSkQkdFte37dtXO7PUtq3QSpB+F05TZUjc7XStXWilVfYEVYhtdY8/FW9Xq5spkSoAj1n5a21WLSSYoCkWLlZyJaiMziNbdvd7YF2FJARmSzMzOgLiUTrcvFU3vDytv8ALrjUd51t/h61uKCYge1hBV2kBx31seynvT2rW4Fa2PZyfeBt/vS8XqoJv8duxx+Tatps7s8l1A5Te8R2vwWdoahQ6zrbNrs7ra6VMeReDdyTtNp9K36C8d3KUW1MonHmmvNxybCkiz8c6z8uf5bH8xif9M/fUz0E8I+/5qkdIDslpA9RxMZ9rGS1pHOq95iQkBOYBzpcX9h+QSkTgo92MlrJMvfbkoFDG2jlWkLgjIin6bnS5kz7R8rLDGiMMLMajvOI12oVoEYzZYwK1UkdicurLarHQY4UuWsgIxko4lI/NTthW6nNAN0hAll1ieKbNqXziI4K15ePJ9bqjn4JsoHbXJNHJ+qp2AYXleXJLTRYFi5we5JtV2JtuKJOtulvzde4EiorD4bLra19Q22WtnLDmdWN6Va2ZVVlcYbt999aDIIk0x5K8cvRAqKpRrEzjcfYVpoxtnMhr8k0N/vBSdWppCIpVmW29S1b6Ebbt9wr5Np3JVFnxDtu3SmL5C+wO8r3c09B/wBBDdrImw0I07bmorZXYEBu1AvWibYTCtVaaF1eiKw5bqP8WTIrjXihuX4ihy3PhLg2+4lgvqtzF95bi9C284t39tmqpbIMSjb9vCwls2GynTKZVKxosGCrFWy6jf6hTMHVFLdsdFr6hM2Iexrn6de22i1pVTINJaSbAtD7g8UPN5suIB8WLLibM91wDX1PtmMMpHb21dyhX4BtDa11LaBQAuneh2hba9D6jtk2mtuVQ7dp3Vs7ptFmmfUisYL2ml5+99TE68Q7dWopSVc8/CO063DxMV/Yq+3zWUERMxOY97V6zekZtONk0N0tUJny7jEX7jZqVNvZ0JbSi/RrbjasWaEjNJdfdL9mW5TG01hX15vVmHFKmkLbQ3onV9WhvbftqyC/Mq227um3bWw1JzW3Szun4ZVgWc9bR4cN+1yd/tLC8tZLb9tXBk7xIqhUCvYiHO2TxId61FN7IgfFCwRvLVrb1PmjXh/xWradqbXNEHq7YixaYyIxqtD6bEXejPT3/e53y7DyQCfkjWz+KX7VWJSxEou25t2TaXulJ2HgpQ8j3LaL2wuALcdMhtOWHAGHAmwjnJTn5K1ZtuyCa4SbFv3TwbfIJEQbZsMt2WPdOWRTfKId0j6R0938MdG1OUa3LxSO47AqmdUYsGclOZn/AFhQc2QOtq8LUU0A8wvqM8WbOra7sdD7P9KGv0qUWjmNSWZmZ9/gajXjmMx8FlxLOM67mztq2XGAQHs36NcVR91UUmyYfJRFmkysAkeMfNXTNh4rHVpnXeKEfZZMQCEL9vhHfVmsVaQ5EM/EEsYJEAzMapKFSytP+0myObDO7c5nM6z8QUmaZHLcO1XaKniZrhkGXNpEI8Y4zqvXjhLn9lWHy8v7B8AquZWY8B+loYkpxHuazUfFgyJRO1fgmMN/EBC1s6RsCUAaaBkrrs7BWZtj9uey0+Vva0pOfVM6St74IVQRR8ImfaJ1tlOStj1VGWrtqrW8o/qEVzaa6fFe8sW13l9bdsP4LcMoGGp3ldPbLJNv2Ma3TxRauBCav8PXC6LKPlXKHKLM070+VsEIUd5VN+W23qNZuOvs5sv5KNremzQhoyJ6/glky6seS4r2twYcWlfQu7ZO37t9ApZq7fFd7q1ALp3N5g+E1UQuds3RKhcF9PUFN+s6iZXVyYW6RCfU6hmVxdaKYtEyixVcltLgT4Q4F8FKJrQtFuK6aGzVtqCJdSUi0/y0G9d58waeVYUyZWdy2tbWUQmtUee32/NNpQaW37rJbIcgXmYn31GdbetyuVlVgUFU8XWfLGi6kXwHh1TqPNq+i3xHRsU3q65yYfHcNp8hQp2Outnw2imq/uQIsPhAbpZfXf5EbfWRt3inpLeG5IizFJSLlAPIzCbj9i35Tkmp4u1vKd3tWhLcUF1Gov1dulVyrPDaK96dtD8TKF7cy0immXbV0mV5ncbdk23GeToQ3p0zDaALG5JJRTyzkXEBZCcSbSMsnOZz82dVqNq4BlWSbBteILFjYk7YYBCvnRtW5VKSt2UqYTu+82t6sw26eZ+WrUTt+w194qXBi/u1+3uV7zF/PUOhaUhbmIYKnb+qfBo7d0CF+47xd3NaguO5j+VUVs8+G7R2mlG5f6cs+BwWqHjarFAIsgXV8Q71O8XepjAf6UZ8u0fb8I99PsssceqWfjUHpidgtV45NJzPtM5Ywin3icakyn3nWe+ntBnHprgPimqb1sMMY0H8HQ5/8Zf8NW6s/q/Jn4g9igMAOYGqibD4CPZ7Bezt2qsZLTkp/IryMOiWfbuH4bZrqdXCVrsWJef9gSk7DhWqMnZqsqWDS8cHSDbppWfOmyHw0xAgE54aWZKYJh727bbr+q+cn++q6l1xBu5FJas3mNIxEp6a+PVHn9u4lWO5M0YKE0rrKZM6U6u2aLNrrLrV5C1raNjm9WbYJi4Fu5tmoNZUQA/x26Va9dwAC9i2YqDItGQoXf8AG1ZFZgUfUW7vdecJFEHK6bW8RUBE15Sbvshen7JYBK3JmGpXSftlmrYuKwm14hQpIJrOOYp7nLBrIoXKs6d1DrCHVQZ2bNmmKOa+FdIddrDrPUQ3FKS5CHLPrKprrFCmoEkW7oq3l3lkR0qez0vJt6z+DPoVdvkHSEWNyUq8SxwCK+y7aRWzsQQTVfa21tC2zn9SdwG40ItxEBV8SVU7d5by3FY2dq3Wsf8A+1Xl3okfKFMr3fphVrLhj+sNhoZ4nMa/76ryapXZJfNVi3yPKfTEMLjxz2r+INwrY6dgtbdum339pc7fGLa+7s7mVouIryqruNFVOU9CyD9Y1mZ99VEg60ANLgvclVUXzCgyWJ+Ag9KF2AZgdnuPftQS/qjPnVz5dpQczcv0wgl2uDCYi9vFE0WA8qPmtr2DIVv4mzuO72r1qSsMnHhreaS6BA/GfEtxLrZyj2mfhSpWNwf0ai5YyYkZmJ9/k2TY7O+3CRU45q7xe8N+doLheZmZmZn59l8O3N8h00+Oj3vcEbUzaTL6Pw2zZbu7y2KCepoxJZyJxglBzaIz21tXhPbEVsmHVl2yUz8ZTRh3Cv4upnU3kANwsHYuW6eH6q70Aad+2aqe2NYCxArA8XFEf63n/UEpN7OKozM9pxoYkiiI97XogK4asfRQCI9/niZj21TT17EZ+0p85dKZ7Ke7rNkv2bYJqwAoHUe/fVzy3IPKcsfGYkfeMa9/bXCUJisv9ewcdlL+zSGKXz6q+fwhRyOYGdREzOI9yGQnBRiYnE50+wVlvUZjlV25Ddt65vwdux1igV9kjHLSKLiDmsZ1Yg+pPUzy1TFBWwi2Uim1WQzcpVtck1ZhKzkSjBRGe0arJXT+pZ/Vc43HMnM6iMzjV6iyg0AbIzOqtVlsyFMZmImTx+9DaU1GJduM8Bdbt3hlFRQpr7HtPFyjIYZO8b3tey3WdH+Kublvl3dWZstniFuApjHTApbvDT2kKeB4q3Kwk1sW2YONyd12NPiRr8SkBcugGFkVuj3JObNsbMyUqACqPTCGC30Htm7siiTXyk9bbvtR22crKoFNxxKiWhkWueuutB9WIsuLzi7HL6TJ2i0rd+rt8IOdrYdjeHouGodX7UbZYB1U/r093XvJCi76Q3TbZCpLNoNjKnXemsdfuK1RyaMT7XUp4r8qcysVbft6pi2yWu2XxJFbkkEiI3BVu1GxYTWKCu7RboPBVleCdTjbW9PcVTJ3JUpawUzn8a1Oxb5+WUTNfvqfEN+8hFJrY6YWKaWRtV5CSCNq2zaN0ScR5xe6eGxuC69ta+Cauy2dsy+8uBXXo2Lb5XXURkjw5ceoiGNI8LWGbdFw2rFNmrtW2JnpN67rG9hapCwFzD9sdc3OqdsRHlf3Xadoebq5de4rxk227pWPpqrUtjfucMUKz1vyulvDhhfTizSv7chbLCTUBsI57zn4pe2uzmgyA859/jHf21tFRdneEItzwXuzx2DxA38BdKxc03NJjC5H8217ezdNxXVT73PxDwdcOtVtdjOTOSKcl8Nm3+5sZtmnMa6ktt9R3fV+5sB+F549DqeE9xl5tXZ3Ekas+JaAIJXkxfadZN7pNhTM+HvFUbciUvHkG8+L4uVpUiOIsPmcz8IjOhptIOUDOCCRnE/l5/lLW01keHal5d0GP+eRmI7x/wBACcj3GZidUhgBOwftWjLDsM7wlEWgsNY2Bn5eM8c47fDHlqEBH6r56CIQP3fJ3j3+ETxKJjT7B2W82+9MBWBWWx6VV2NU8+Y9f40Vgy0AsnA+IK9KhCwoP6sAyVtgw7E952Gyxk5LSVk5ogHvZdC1RXT9u0opWWsi++VRHEbEwPcfCu7bXT2lw3FiR701TtxYSYwDKzlpFrFzC9CRAXIJmCzJl37lRowhYtb3fuOw3VwL7MY0mE1bX8WqWLdXYoBbITCyIinJTM6AJMuMe/lX12CMZ5VaXl19SOJPBfJwCpfVa0q+3Zbuljqu3Df7V4emr6KJ9+/wz8tWVzDFNjuYSByM/EmVPw6IHq+a27xU3bttlQEbTX092uq/CGyRTvte7KKd9Pl2SS7/AJlChlti34QfYbmJ6bK+3Cvq+dapb3CCLDQlsTrZPEZ7dBBYywfEC1X5rWqdzzJ8tr2FIi+ob7XCv5fmDJhgra31QJFpdXNjpOLpEoGDUdK7IhAeLEeVSp9EXa2m40rjiVQi5N2J84yZCA+NHdre2w6KjOGs9/gP3xn2/wBpDp8F7XHBFDxa9N2WWxk17TvyN98Qr84BQO4blX2LxU5qkM6T99uPfYOrzWraNiOys43Fjayts2/aOjZqFIttM3fb9mZIbciGu3Le9weJL5dBEloJ762jc2bazqh77neK7el5z6t28S3N4qV0WpHh4X2KnvXnPO2ehpg8XGAzyh9OxVFZWEmuKtKxdORqpNkvqPrTh6jDVPbLd8GHUQbB8P7Ae/W2pFwK1t7g2HxLBWQF4+Jt5TvO8eZrJ6QyUz7/ADRGZxHvSqDT3ap+NJYur4nubcjdUu8OF0jsWnW3S2ywmM17/A/Dhr8NK3WbCuPiTaaSPBNdoIUD/DdrZE+G78bnATYmfVPH2+GdZ+KZiGRnW2W9pXsQ+pUa3M1nebKfs/lNj8LnuteW8+AbxtR7VeJJ9/5ClK4uK6/6fia9sp+HAVT6Ut/6AEZIoGPe3PCF1l6s/RSCI+SBmfaPiNpg1SRn6eqaes/1fZ1ObWWj+0ikzkp9/ihnScJ4zrcrw37EMFIK+KEk9wgOmEsp7f7qbCNhHM91MlTRMcZayWtIyxnUTIz20RkXvPwroKy8VB912i2halLfv/3Kvxj9fUagsaiycDiJ1JTPvpRWtzBdbqZEx4lMT8KwBUX5h8ZPY1+Zf5my4c3znda0DJqDVigH4j07LJELccHkoWyxdak+3z6ActbdQfZsDwH0nt4LbwLto1VNsrzNx8L1d8TMMZVtq4rqkpIpkpmZqWVpUwWLg5OclPxS5YJaJr5FouPOeGeNKohqHlZlkFOQLUXEbmE/iJCkjSQwM+8SBR7xMaUHVcAZgdW0eVtMV1BZqtadTeLqzCWyp4ospmzNlSrRV/E+2RbRbKs5du1u9a+lVilajh4h2GldLnHM7G4bHao3ejjqat1fKDC3KauzQ3B+22xsVS4sILviaIu3x6SN12otuNZjMlXTilUAIvD0RurrMZ0lw3TDJhkRTkjqtXWB5hMK2Tc7NC3ioQiTdw2uKFqvar8rm2+GYv1fNebCK57a+XsBCjOPLthkCwCHW5VF0rXTS7qwG3PZtzLgDHRDZE/7LFuZ2hhkRM+0TOh2ILO2g2g42vr7ZuGwLVuXUAdMZe3+BRuCU1VbLT6FZ1B6AUFvxBQoKbQtEXmd23+xu7Fy0Vr14NQh9z+J7x4wp1UcZRiJL31t1fzVoV6v+Ewq7TLRPJOjDJj4QZDnjMxpLOi8GRETrxL4qZ4i8qJIBIeBjgtlJjV1xHxru6mqDba1WdbN4mubFWsorAuRVbclxMSwgOZkpzPvrpl/b5EIbZcKkBJs/DWo3VdO+M1z8QbTU8P3aTKDerrxJ4m/HVVl+XFQ/Dw14PRvO1Nt2rJrjw/t9Crvtldm2vnbt7WPjLm9Cpo3rIstuipJxUfudu1WBLnGayEvyInXWPGM9pnP5btpanZk7hJrlX5Ea8O+KA2unKXBkd+3X8VvS3GP5HP5ef5rP8vVAGWQFpcQuqUm2YIPmv40hgIN5+1aOTGWG+xlLDkp9/jVtsqScr4695+QAlVMVj+raZHZS/0/i6q1C1m0cD8ihlFeFhH8RbOIwhU+j5K8rh49eJlbeHVLp54JZ0mieInRWJKzLRiAIWFObdmeRWuhK1mtpG7TAp/hiyWZeaHHKOXtZhAuxVIiDWce2hBU1SLqT1qyBXHXs/Y9xPbJnqnYlDhnW67izoVzAOADulgOqIH2jYbR0/MSxPHbdm6UZYRETzrbeqCvMEB3Hxaxs8aAdMTYbjk2FJF8ufhnQ++tlubYnZLIXA5PsTEtmY+CmkpgkOre5tuRMMEI+X3nWH0n9+am7P45uULQFdHzIUd72HearxBpLm74XVZ6dkeb4/DKr9tSjhWrOshvNR718Dkdt3Ck+Gv3qDmy/bE7wsJ2ZZTaOo5RkJhORDb/AMGIyM5vD1n8VDJnpdCyySgFFnE/20i2+rOFmQwPiiy/k9JIrMQUFTrMuMXaltTa5846/Dk6rbXSVtK7UmbUGGz26sp25Fgzr1aQeHeuhNdT9prWk7eaXXhToLW2hs7TgOdkvGyK28dYA8wjxB4mdvF/qq5qUxptOTYUkWqO5MplkJ1d3Vlz75zrOqlma7xMfe74ufbo9AtMPmUz8uyeJz2fabtSECeto30tv3kLlkPM6v2xv7k58LhQ7xRqUXqCjci1Gz+FbG8bRavKcoAo7Jbsp64IIk1vC22t2GPTHPcdks165WhUXltp8OI3HYrl1t8Es8FBRLf8biHMZ3H8M8XNt7Wr077vLt83UrdkIAvCmy1d42yydzmbrnhJ6drfuAuV0NgTszUXvxppAe0P26vbYW6JNytn8V3NkW1VQQJNq0y3bbYbP1PhsO2fiV4Fav8AgyuFAyUfrsq6TiH8vP5PKeOMzj/XM/zefgdRiqq3HEcNREzOI1anpgFYNWfopBA/OgVk3DzkRn37app69iIn7XN/Ud+/yE0zGIMpmNCqjO0ScsLzeqioI5Y39KWEKyef6zENUMEwJiFpY0TkBzGhAjzxjPy09uQ+jLysjBvbWbVKeRQ34NQ1ExDgkJ0OOUZ7xdahzomorpBjSK3kK0Pspnnuu5hfXWBaBVrbUJZLGvetenV1XEW76TUkVlYsB0gyett2ddnoE9C1zeRt+0R9d8Rq/wCJATUENrDiT3tsNk3mRlqunqMiNP8ABzlbHF3txaHA8fkdSYj31nOqq6pqf5lpAfwqeV4O81z5aoBtc7BbK0Ree1E4nMe5tbadyYUmxiDV98Y0qy1C2AosD4f329X3Ksn8QlFYN32R15y9zsKJlzZrXlUxsdsyr7Wttc7tfdHVCUiNmtP5bfZOgwK1C9t66D5cnTPD9WlvX1xsM29R7ZVtWGgywvSr1S2+WW32FuDZ73IUn01DulC6x52GqHG1+FbZdC2YJYq5sdi8+S2pKggNgYWwj526IC/YRLaEN2pzHx5OzU2arCwQlqNrZUrnbU4VHuXiChTtosPaNw1bre8RW/IVIUlNxM1rjUlMTP8AI1L1pCjQh5gra37jtXg5nNI9L8fvoSyuFg4UG9IP/wCG7azHR1+oURMRM4W40nzUUiWy7xO0bn5uUg+bL/M22umIGdj8Uu2Si5CQEtP3O1YFgG4+nn5vD25xt18GzrcfF9YqBgnPK03qOKf+jc/6DJTMYme0e/fWaUiL665GK/rcx7PYzkzkp99S2v5CA6X1/mSHQpf/AFWjyfD8gRkygR7y2maIBLR4qfYlruXtFjcH2lAtx8hFhBEwJTEar2mVpPpTj5K6JsOgA93t6S/Lr9qlcbLpAmivRRxKY9/g6w18xLjkp498F21a2ygrY0PTZ5WEbU6x9gzhCIoP52xiZbdXuFHotdKEpqsepzAxxqbXZtKk1h6a23BMRnJFxp7crnaIV6ueKPosDb4lUmw2HJsKSLqTPv8AFDemyJ07xXZbtcVJOeDT5H/Jbaa131E+Mr8a7ps16rUHaEwB/HbfE25bWmVV3z0Xf/EEHUBDyQi/bdz8P32I6gRUsOE7i3/htpoBNx9RYWX+bI9zbTdRJk1K7hVtG0Dt8sudcG0vCIXqvWncJxFWxSvprMiWbduE7ojdBr7VC1QFDxAd82+YAGV9mt7ltkQa4G3btsrVH+ctorDa8WU/wmE1ktKzZ3O3cx5h7D1mdAw1zkCkZzme/wAVhznSdme5fIQmYs1DrlMFGPhd2q5tyK7baZAPyK9ZllkAoZIrNRtU+DhkSWXE4nVzxW+ztIU/YCLM6z+bE41zn+/zWQ2qPDtckGc7j/JWqVilK4tKlf8A0vHftGrU9FC64+756NcER7/KKyP2jRBIe/wqp8xZEP2sujmRR9v/AH+IY5xy9r7qzjDyielHx2+fLz5o4zrdbrG4AyyfwpoGzaBZnARerDUtEoGCyIEpicRM/Da4pdRnn5LB4lpcPZtfyNVRyWG1Crczm5zmEVysQ2VyMRo3KKqsBVxZojJhZOcysyhkfvrYt+nY1G1yQLW5Xpv3WOkYHVdDbu0As44CG104rL6YHz3FiViMkQ0kP8QQsJXtq+GmNNpybSki+bP8pn502nV/0GmGtn8aX9pBodnhR8cOS1UPSMo/24iw6SePEKviJNxtJfm0LTe3rbqxNotMDHbvFtCqctOtPO54/eFovIKCF2vEG5W3SbLTIkiIy5HMlOojPtqVkMd4+SNUMdeOWtlirG1L4cdeMehN8+hjU++rW427qkLtPNgfkeG9zXtW7LsODmPibeF7vuJPUPEf9KNrGzHVMj+TP5f7fCP+hqQRBE849Cfq2Dc3vDDljCKfeQIYiSiY+SNeFqNe7cBVk4AfFNCvR3A1Vjgxn31UVK6kn/W96PJ9EVfV1mp+HYwXmvkio6a0v4T0lLlrYCNCQBls90mUmckU5JBCDwJg8gtsU60Z119Nes599LexQGKzmBRWOxJQGNe2tu6NNBWrIcpe9luyTGfdbouokA2B4yAyZwMTjVqtNV3CSEtGdWaKhBcxY0ii+wa4WophCaOxXcXQlh3vK4aRiTW0aJmwS6MTFgBRHVvvgIs+JSDIbYHCGOY9km4yMvipMs9tMrkv7o+eNSsoHMjOBCS9tEgxjvH8sAyZYjTqDkLg2BMRnWdZmfefm27p+dX1vs8UhtIVq/4aUSX7/Is+E9tJ3l618ROYizaJxeqc/wAjSYhV5J3Fy2veYht9x01dKv8ALtm1P3N/SrjyLctpdtrum8cF+bGqFFl+0CUxk922WztDYCyP+m5/1eIzqxPRrhXH3dPRrCmPu0+2ywtQMnt8ibZp+ycadaNs5Kc6rpmxZFcae2PVP9BTJFMzqPm803y/Q5z0lKkVwEfrW3Qcipf6WoWUhJQM8YqumtL4XPS0hcOsAuSgIeqEvMIKCiNVEQ5mWdl2ONoDYLAAGJYnHOMaIyOfWUz8aAVT6vnCIdVNnbcSTQKIWNy3TproVp4rOhNt/Vu2Ckrx0VLSTChY2/E3HI7Yrhp1htlsm85M/l8M+Vjcled/S8XFt83C/Dv059/mH7o1f3fbXeFq9NNbFvbyALISz7fENza31l+QXxkvu/lajIVZAi9vEXiCruO2IUhUCX7/AJETj21LCL3n5s/EB5sEc41u23Rtd/y8PW/47FsB7seI7Rv3hw9pmMzmJ7T/ACHh7fZ2S51oCC1v++lvVzqyED+ft24N224FhH37xvtnemwdvH8vcvRbRWCKyU/mZ/6BphHKXH9ifq2Dc32YcsYRT8yWoCs4Wqkm/Cmro1JMvutH6uHyYnHyVlx3az9NxyivJF+uA8ixodoPy0sx2myxKDQM/Ti02K8og56WqdM7hHCzAdFHEpidbfs5bjQcxHLq22QkPKrjEf8AbV3riYRZnuuygdvakq8E6s6FQyCCCipaFfIIrA2ZqVVcbFkeEI/3jhUjmBqim2X7tZECueJvcdtTw01rHnJuOTLVk6hV0xXAob8q3kv20byP3n8mJmNdQp/f8iI1ISPvH52fn/Brn4b53pT5f4CsiGZEZmPmz8c/CJ14f36dqZn3jxD4indpjtxGZ7/ysDM6mMf9XR3nVn6KArx7t+igUx7/AAsPqHSSCEyLhUZDJCMzHyVETYtCuNWXCOZH7JnlMzPyLukuiyvAjjSKaGba552YBoBLDgR9xAIzH/AtLfOLDgKATPE86reIaC/C7qzUcrDC5HM6q1W3GcE4kpiYmYnQzj20NN8wM8JgWXZqVoRVKRkpkikinM1qrrj4VXCTY0TW0gbnntbIE2xxWU7Yi0SLNeFrhW2JVXMoAOWrbqKK3TtTGbXiR0D06ARXBjDayTaZGX8hAzOpCY9/y9thc3lw/wCzxbW2dFCt+GsEm/vrbdvO9YFa4yW7+HLG1jHXDGpjE/NETPtqYmPyvx+3+DRt/P6HwqbnYpVbKEFEL/MzrP5NGiy/YhSB5HuuwWtpx5oOP5nhHY6+5dQrHt4r2mvttvFee35ojJlAhEzJgSykTGRL+cUonMgQjMu8Mbiip5hiC4SMjPf/AKApBHInM+xP1Hk5nsZczkp9/ijcHV6rUrn0fGzQbVroczHGqHlqUnP32T/o/I2ihLzjvAnuYDUmKqz5aOy1qQUZzIaGu5lc2jGV6EpH7Zx8Ku1McjrswCpnntxM6orWG1WZ23z8h/DbndVa6C0IFcUyNdmIB0omptzLst5gZlU2haexzy1e3GhTzHV6s2t/e6JCvEIXB98l3kiz8sRpFcGw2WNFf5SaTHUn2RkOnrwrRrX93Wm2fFfjDbKm3X+nTOCGfyhLjPbRNI/efhse5Ttt0Hj7+IPE57xjniNFOS+UQmdeEtsqXrnC6cBHiilWpboxdQuQfysd9SMx7/PEZ1xmPl2XdC2q+FgIiZ8SeKC3zhEhAR+Xt28WNuz5c5HV3cG3T5uKSn83b7p7duCbSoGT3G8zctwdbfjqfzmwvVX3VJvj0X90oxszTJoENkoKwcj7f69Hee2rEdJK64fdcQdMAQf3fKMciiNW6h02wDcZ1WArLwApmQtu4zP9vf31t51gtRNwJNbpEnHK4wNZaDW2XskS+KK0kXJsSKvMShcv9jIpMpIveq/y1kW8BPTm9ZxsmIjUFMRiJ7Y1QqJsGXmHwqD2uQbJj6qcqWREFYDJDnE88z2iGWTQNfkfS2lIBzBnHA0Nvq4s3nD1LniWsgpCgHU1b3O1cL6rZx+QqMzrddqpVdmqORZFjalArThAIyW57G/bezwkZnt+Sp5qLITiXWmO/UKZn82O2s/KEZKI1sHhf8TSRZxrd6bNpsmuJxLHEyfXOfku34t1aqoQtX5ce+q3hW1Z2c7wfpmPEpj5dvlQ2wl8ZDxU3amMRO0xiPm2KhF/cVJLXiLwdXobVL0FpkcTmPkz/oMfzMTjUuOYxnt/r9FcZNzPsrxzY20/7WNJzJI5zNYqsJb5kSk/lIiL7pz8K6/K1Mz+o5nUZ/iuAMeItPgDREHEIFyH4KSxxcVBJEQkBYKMSoCYyBH3sXpuoUD+MV3ul7pMtJ2zq7Q271QjUDJlxH3ehldvTaPEtj2Qt0bj9t08JUqVMDU8TIduN16Uq96jxomEXZDA1+r13McCForLJ/TroOxNPajvx68Ge8efozK1j0AYRmeWlJF+UJY11in3nts24RSuLdrxL4g/GWcyiI0Xv/PBPEs62fxQ/awmEzGt13U9wsG1k5L8nOs6zrOs6zqJ0rxFdTthUltwki5Tn5s/Pt10qVkWhPfdPF9rcqfRbMYMuRZ/nOBQHLE8fydvqecuAmNbl4LintZPg8yUcTmPyFbRccjqrQcgQkBYKMT/ANG2PprXVX72Z6awrh7Kqm37IzpqCVOCjHwWsmsgFxkjWSmSBxgvjTSJFLW/pX354wJ5n4pEDeMNniFwErskNY+a6d11JkmguJMMnMyXclIJcdIOzrToLCk/paSomoKAPvggP+xfUe3vkjrOt7Q3gUEo4Y+xx6zDkXMqphIJyx1sLO7tjrJWkWxt1CYhpS437y52QREV1eCNzXTb9bvHjncKVrj5aI1CevZ4R21uu0ltZgJlE/D30O1WSpzYgJ6Uxj5cfGDkfbUsmf8AQM/JtWw2d2bwqjyLc9qdtlglWIwf8xRZWVY5XUy5U+/5IBJliNJ8NW21uqIdrCCQyQP3/k2bpYbtSaB8fL/k1rBVniwPuu+Lrdyj5c/tmczn5o1X49cOftt51J2pUokIV4k6E7y6av2f9G1/+LZbqSkimZ14V3CpTvrO6EGvxXeqXd1ayiHBWhKQKCGcSRSRTJTmfgtZNZAB7+gET/8AJIpMpmfnrJ6PEyHk602EASAnLaO32NwMhqhzl4QtsjGq9hlV0MTODV07L2HbdwmpTbJg5BxysostsQ/dINrnjLFRLHjXQO60dvZPlglp2d6tXCLvwCffvrOq90kT6ZnVncDf7zOhbIlyj3fZZY/ULPwj30O+PHappRP0pnM/IhfUZjVDwc27tJ2wxwu1+g4h+G2IrWLPC67pLbEC0oCcj+XjWPitLGwcqAij+SjtOvD3iQ9kf1FRnW+bwe73Tez7vkiMzpG1WHr5gE4cgklg4/mLlCxQYAWl8C+NIxCwMn7U/EdBe3B6o1vdkLW4tYv2+eImfb+ej4DfsAvgLCgSKSnM/wDR1yYCAQHtqDkfbUlM/MlMoWIx+vbdBTCl/paqWYrEckoWfBzKc7aoUgUWffWYhcjId6yOODIeRuZNTOf96xy9u814fTMCFsp06ohD+TpNqoreYKPKLLFTYfTB2NHdDa3LlapGL/it9h5mkIiXPbYPk45KdUmrTaE3DyC20G2TNQ8Q/MSfTZnVfxNYrUSQs54WXy5klP8AJ17j6sNhDJCPhn+XT+rGdeF30A2PBkqC8TNQzcmzXxw/lzabZywyKfjGuqf/ADTqZz+RQ3Bm3k6VCBf9XzMkUzPuMciiI1aqHTZANxn5KK6JId5xhCdVICJWW/pvcQgRFP1/jRoWNxf0qoczMJWciXvtdsKd4WmmHaR/E2Xtsr9FTcFbc424hj7VgrT5Yf3KXKJ6gOHqTNzcSAzHuVL7G7rZ7fiAgPHbEZjbd1Ki1zLnrPd9x887P7fmV0FYeKw9902xm12JS7HP8jjOsY/lzRWja1tGxm1/Ixpd9yw4iU4NknOZ/wDsuRSU5Kc/LXTLm8f2khKOf/lzKTOSL30haTBsuZIzpFhtY5JJkE1tlt3aJ3AgeinbQHBhBSNwjAeAcYIKdU6HolxW07RzGP3ORo0P1pHn+K2X5CgvpQ9TYZMukpLYdwoo2hinrGWbrZFj56ftn80GSsuQ+7nsfOWFM/kKHkWtk8LHulJzg9tyqRXaQ/Mqq5yzNSyIf9J8O+GUbrtdmy1sDp4Qt5iPt/ref+lYiZ9vhW6MPibETK2yEuKVRgFrlrIEPfGP4VE6eyCwC/0vkQmXNGO8D0uivp8zhKLlgEdOJ4aHb8TJkAhpu5UKuYkztHZ3y0+OCcIUHqPvrwptkXXwvMRPi3aY2y105mJlhyMzETrMz7/m5/KWXEtbf4jsUKxrQcwNy3Ng5Kfm2/fLW20bVZHHh/MsQgdvU0LHJ/56Lz66yBTCEZmZnM/kZ/1rP+oY1j+cOuxahYYTAap3CpmRCIlqZzMz8KFSLlngR8RZEVCJFeebGK8sjpzPrZakqsIEAga9YrDOITEav7JZ29oAyIKR2V3DkwoHVfZ1/wBZSw42yUpg5gVCdyqB8Y5NLcL12qkCBIoF1hzy5OYRT8BnE62veSoTyCcTum9M3BnNpSUkXKfzMfm51n8oRkzgR99x25+12uhbGIP/AEfP+i2KYoqV3RYWyf8ASc/68DSs9JNh0io4iGFAzkdISdhwqXHqKm0LZIOMG2r5WYVVZBmim7auL5WLLEMsb4cjKUL07a69ZmGWYLVatXgeSFEUlNh08eY6XUTVX1LroCLHiavW9G2pzNrdLdw+T3FOlWjUyDH7rN11rHVOZ+XOs/mR76v7lXtbbVQqsKz/AJg2G2csKSn+b9/5FtZyBXLlkEfIlfUPGqng6xZ27zER2u1ZqvIJ/wDsDi15cRmp6xTxn+JBC9AmmQzwnqT56mlgyFeS0G71GoMAocn1ZJdyYBQOedl5OOX2I5gqwf8AVKxTtzTnty0SKVGM3XRyseI5H0UFwsXPbYPk45KflACYcCEZJ9V1YuL1kE/JAzOuiX9v9IpU3bhcXWqjybYQdayxLex/ytG6dBxMWAHMzmf5Btl1iAhzCOPkrs6bInVHxoNbZ+gUZPcbfmrBH+bjtnHb/rNPmrsysSI9GMgciXvTdYURRXORjqLE4hYdQ63VEJOAiTq7VHU6tgomU7YpQyU8Vi/dNtpZ4l1jt+IrL8ijCQIiMsmUlPw2+nNp4hHvvOwN2sBlsY1Pv8a1gq1gGj77ruzd1f1H++kpOw2FqHkdmo2o6VPGRPW3IhzxCdbr4aKjt63ljFkOB/BCuvYBfKB1um3jt1npC8Hf6IDCUcGspEiKTKSKczH5MRntGpiRnBRifzs/nZ+XlP5022lRGrMx0v8ArP8A/8QARRAAAQMBBgQDBAkEAgECBQUAAQACESEDEBIxQVEgIjJhQlJxBBMwQCMzUGBigZGhsUNywdFTcKJjkhQ0VLLwRHOCoPH/2gAIAQEADT8B/wD6V9n4nf8AdDjACtOkoJoQPA+v/V1q6MTtE5mOR9s2Tg4Ky8PdFEIq3ys2nmF72YxLtP8Aq4ahbuM/DamfaRNZKYzPAFNEzlEvMD/oP/8AUY8vtfZbD7MeYACiYVnGKmSicT0wxiZkU3+m+icZFm3Jqten3QmmyDBgtXDmnusibBsf9uPdAsb254Rkm5g8bDIKOpTBLsIyQEl7jEBMeOc9JKsBBwGVHUxsD9ETyuBqUzfVOdnHyB/7M2ve7EHgLId+LdCyxWbmtzdstgvaRDrBmcJjYaG8oQyZZf5XkYafmo6oyQ5plARLVq45fIbf9pv6XEUNxdUq3pZuaK+qmtnEUUQSP4WQOyf4nCp9AnCsZuWhREKaRqjlYN/yhkxmX/cREgPEL2c8m6tus5wpBtHNyRaJc8zCZWd1MnZq8/gaj+iI1pC1lDrtHZBZOtz/AIR1K7Zfdkfci1bNu2cvsIo5IfOWbw5wOys6NOpTzEuZWz7oOnmHV6p2UCGrKF4bPxPXkZSe5R1ameEFEcpnpQ01em5Mb/m7VH7swj8Cwbih5gu9PvCCg3L47snOb8P2pstwOm5nU5W7IIjReG0ywFWhl1c/VDwDJT0MGq8Nl4Wet1oMJdsnVyyWzV/SsfOUOlgyaFut90Pv6fC0Jpgg6fa+LnheCfnWuBhWrYhzejh1W5Tqi6w8LjU3YgKnILEGNcOmN/VeEMGvdeCBT80VnmnaNR+stdG+iOqe2XPKH7LRuis+lmtoUPq/whborRDNH78enA0EK1cXOP2Z4rb7P1W0LQXWpjA09SOfvKQshCfl/tYoE6He6ZAhFGlr7R/gI1m46A5LVxOasa2todlY0smL+L9Uclr9+I55WKn3Ct+pnz2H6Ok1TXdfa5lcQ0RshheXR6iFM4fInlPXZM6vedLQulz2iA5EzDfCtyv8qavBzTyrP660HjcpWKSd0GVCnVHJaqwq78R2+9LxLZ1H3xnDjikqyjl3CdIwvbMjujSqyLlGa0JMrxE6JvW/V5Wa/dHILISuy9pbX/02rUrwrtwZudsFYZfiO/3pFB97P6RGVzOotGV8422Lj0ndOFGzEL8KAiIXlC0RyC/r2g1Wi0QWyGas/qmHxuTqyjVbaLK7JE0Ctq+0P2/D/wBMMmGzl9wHfWOwp5q95VmJ9+5tP0Qbz2lm2MSA6ggZ51aVMI/wivaRX/02on9UBVHKbtQVm92wVjy2bf8AKGhRW12s3DlsWnVycZcT9/7Uw2U0TymR91bfRpqLrAD31sWxCcMbW2fm7qypOq8LoiUdrv4R3W4yVnSyafE5PNTtedBf7WMVofK3a4Jy7ra7NzjoFYDBZj/P3ehH7BaZDhonZuca/dPZwhHQKzoGv0Q0KeOcMMUTG4rQvVg7C5mXvE+gs9GIPgJwWkp2id1ei9n5W93bojmohcdLvZRjdOvZPP6C8rREXe1iXfhb9yCOcfA7fNtEU+cD49z9kyi0ElPzHymDlrqg7kJ2+E8wtSU/RMM1WHA2Eek6FPOJ1o6gT2wbZ+h7I0Kb9daaQsP0dnsN1rBuAR0QoF7aKfhZdvd3yuJgLrtjudrt1td3QXswxO7nQJ5y2u1+5wBGUo/PEp4rX7gtFChkPmcJp3RecDdhwsMrZNyF1nWWDJWDJsmxGNWfK1gQzICbSgqVajHamchsmtjlpedLrHneVkzsFpF/lKGXZezdPd2iJxEoZXC51Z1CNF12393Bp/2cBl3R+paKL2Z5HNsp5Rkjyve7SFZ0ANF2T8u6sKtB8Tk503a9kULvavpLQ7DQKdV/K/lHSMkdU4wrIYrbu4rKEN7hd2Xsokd3aJ5k3H76PdHvH5NVm6BaMydwWViX2X43bfO2XU4D4pKLepNP2Y3KRK9p6wzVONIyYhaS601Kw80OlYoNo5NOqsOqNSh0qc9lutE50VXsgxvc3IrFQdk7JrcrtF5kF7M2RPm0TzKG1+yO6NEzntT+K46kXnID7TOpUfcif/ltfmLXzDJH4x+de4AuOieyTGnBZipVp0u4bUSwQrMxRPyaEww5uyB5nxQJtlz+0vHSeyHjGqB6TqjOFrNChaY3WgzTCbOwjxndO1vOl/tXPa+l2va/dGlE4e9tvXQI5HZBH9rxRWHQDq5PMm72dsNwiLtVZ6H7v2bA3k17/cpwkBNMfNvHMwpnS0cNkIaRqvaX8rZqmZK2fNpaQpPu5NXK0EOA1Ts7PUKyZheQes7qIT3QvZhh9XLYi7ZRynui2AN1Zc9oUdNgtCv5Wy8xR/ZezDG5WjkM7zc4xAXs/V3ctj9w4xQNvtEfUBuR9fkyg2YQ+GTmrVsuHzLRAKcZ+eAmGppgg3s6WaBZBmyw8nqtkyriBksObU/QaXfV2A77omZQu3hHZbFe2czuzbnLZE8xlHwzK1XtXO/+3RfwjrvwFWXLZ/3FE5/Jkp4+0MpaY+4gWGMSPy0codkSiOZrPgdl3HzJWyHwSMJVq79SVhxNbOaa6A/dWdXkbI+I5oaFWAl0lWw52s1VoJwgyR63PML2YYR3OpQ3QQyUaopvM87NCnCzsEdFqtKZ3irz2XS0bBaoob3brVWFcO9+hWnyATMvtuebDnCnlxZ/BsmYeXX7kd/gPOaAo7ZA/MYvhROMproa/dWbg4SrPy7Jn1jgMggYtLaYxJhgBMz7I9Vc1aMpjGit6lnrc/6Ow9dTdrdCC2XthwN7N1uAoJyWqCjS72vkZ/brdmaIVui6xEnv2Rz73HgKeY+7Ryn4zhRD7aBkOThHoj8wOOC5rLytWhWYVjQudkVbDC60c3llYzJGqdmvaCC4uFU5pA7HdWbcITemuStHL2CziDqdbxWl2ye5ezj3Yu1uJWatHQvZh7tqAu1uN1t9Laf44CURVHK6xGGz/uP3BOu3zNgzA2BFPhPEtxCJ4AEfn35Fwz+Xa6XN3RyZ8DDyTwRygmJTTyn5c+AGiiS5ys3RibkU5nKSFim0Yrflsm6+qa+cbaShR0omgKGyAgKJjWL7EYbP+4p1SmiUEaSFvcfo7Ad9U6qyou6FLt1ZtwWf9xU1W92qKLoLgqutY8oRMAduBpQGSyARVmMdr/cftAjkM5H7MnmC04/ZWYGQNPsNpmFZ1J+3WZvYj1PQfhZuj9THiKs8rOYopoLsUvdpFxdJticgvd4MFxomtx2395ueEVrKtBIqgakr2Rsep1R3ohSlwW6KaMdp68Gxv9rOBn9ut5QvImisBjcnGT9w3GMM1+TeyGGek7/OSsOXxDqt/sFvhTsx8ju74dnmuwWYud0UvtO2VzBys1cU48tm6garLqJcneGaqfrNSh4VoANV3v8AZW4ynuxLvw2PKD5nImZRrNxyC1lbr2ZvvHlWjqKNlrdoVunuhezDAP8APA9BRiN3tf0jv7dEcgPsPf7BAxS8wPgWhBcI+xPZsrM6/MFRMIfLnMFDID4swGqKOagbmCCEzMi+0dEp/E/Iod0OUJ2QCGhT90x+E2aw0ttZVq6AHCUThs68rGqeqdEUG4hOyZdjoXbKzEFw1ucIqvavpH/26cG6ciYhWA58PietCtLt0FsvbTidvgTXAlEbouotULrJuCz/ALijmv5vYnmpKnl9FMuPZDlYNgj9Ww/Ye3zRNT9pnMfBcYAGqHhddhOW6xHBO3w8VVCxfJOrNwPyIMhRQA5oniGRTcp47UZA5XMMhOIxYNAmnkec1sjlYzVDpZsn1IbRY/qzsvIzRNESdAuy9oE1PQ24Zna5vM89l0sGwF2koqc0F7K2ROrtE52KUMl2WoWyOazeUzlZ6BDReULVdkEdE0Y7T+43jda3Rhb63e0fRs9NUw0HmP2pl8iM/nm1MDL5eyOJqdt8EZAo6Dh9fglbIafAGRR+GMrjX5Byd5eBmQJRMJzcX0dYR0UTDqJ7aNHhKAR3WOASnNmWoZq1gk6qxy/E7ZOOdz8xvd7bRvZvDKP8qPe23rsic7tkUM5XovaPo7L01WxR1v3u9lb7x3fsnmb2oXNEu9U8wvZBgxbwrMQAPuKfkhZhrmzMnf4OLq0i/wBobhfTT4Lj8x2+JaZOvmLiK8AFOI7LT4JzuPxz4dkBWdEBWtL25kC4ClE5uHnWKQmgHCFaGYQTGwDlKdUTqgn0dGy8TjkArOjANe67oUWUomvovZhgYL9ij4VsF7OMbv8ACtHSm9KCOq0Wsq0dhXsowD/a/lGslWZjFutUUV7Scdp6acViMR/wiUeRrv5Tc+9w07/a2H6PDv3+Bofg4jjByjTinK+ByzNfh+0sx2fcfIBD7AO97MhecxceALZDgHyLrhxgop4hoGq2Nz3QeXNO8LU8zhCd5mq0NPwq1+rwoPBwfhXhrkhqmNDRhCY3C30TxMBWpwgd08Tbu/wsUeiDoBvf9FZf54NlobvaOe09NFkSt7hutVpCH0dl6olDRBCq/m5vM89lMN9Ltl6ardORdL40CeU0R6m5pj1Te+pz+4EHkflxka/KMENxGY+E8wAgJj45eMZ7LBzevyQ2F86ppkkfA0+bFx4ey73xCiBf3TN06hgJop3QdIfqmCXKJTeooZO3X4lZiPVf0R33Tsyjm05IeEZJwiuicYXs7YPd2vDoFY87yeyc6g7IXvpJTtVaHC1eyjCY1dquyGS2R6zFVo5MML22jezRduh2vcOUlWwwNYysyn5u2TfEtxoEDSNdymDFP2WTFU0xT57Fhzrxa3bfJsMtI0URPzdceLMqacT8iE4zHxB8MfLEUdsgKkXASmHO57epNmFNFEonlVABomjTdW0g+i3CGZuOpVjV/fsphrfKEGTiU1KIrdYiLMbvRqtJ1QooRTjSNF7TzPd2Xa4o5ld01Ee7sPXdZkp6GqGUIGvdeRWr8TuwVkMFmOwu73BEwo2ovD+FHVHVZYSf0K6XCU0zaHf5hhgv+y3ZOnp+ftDUltf1+MR9OJ+HYmHv2+xD8vqN043bhFWehQoDKcK3N6WauQ6WqzyT/Edbzm1AUBU0w6JplzvMbvLKZk0oChaIWKArES/u65nS6U4ypz0RyThNs8eBi6WDshQi/SV5oTyvZhhbGp3X8rdCtbhd7T9HZ+mpW6ORubqE7JYskRMG45yjUN20Q5YOS6pJRzO/zDzJb8s4QfhaDb5AlOHMPgOMVTDm0yPib/MSo3U3v6mA0PwWiTjKYYN5GQWhRy+Y3+V1Teom5pyKtM2hf5TqTohpophrAhon59lZZUTqXnKFaDnd5OyI5IORvObTqn0mZVnRk6uTquceAhP6G+TuV7Xn2bwMqZRyGgWhAT/o7L/aKoCF7uim46p5Xszfds/yVrcBtdov6bCtU+jfTdanL1T8qoATIREN9PtHv8OzIGEmpn4WdpHTHHZiBAvIrTLiZOK01dw6kcFnaY/eRzfYDsnEZ3HRbG8iJaUbggKgoGJ3+bN/Zd12+J3vdmFuirT9roW0KaQjmSn5Jv1g2Ttr7QfRs8o3R14SabKwpO51N3Y3v+qs9u5Q5rR3ZDoacsKP/jc8DpWZ5qoZja6y7oLRbIeFRqcrn/R2N2q3CGut2bLMoDJN5o3W/kCy5tU05KOc7oLf7C8R+I0YRwDiOR4Rlw4sopHAb2DEfS4nLjPy1k36e0J6z8tZ5uuamCriM/gArbi7/C1+EODvd3X4V3+O1NHKEzROFEc0TomeNW3VIyCYZF39Nh1T0ckwSRcBysUc2Fe0jlHlapy4PBZ7dynFWvNaf4CP7J9Q0rCWzEwmGvfuoyCcaAK3qST0Bawm1KJoFsjmic08wF7MMLe51KNEb82WZuJ1T+syj1TqjmNAnnqOl+UDX7BNbopHxLQfRu2+StTGJ5oFZOjEzLjPD4izNTSUPk7AS87fEww2kwU50tbt81vxNojkE79kNU5E3wj8r2u3+EfFsm5QgcgjqogJ26OiaKwnbG5mnmKG2QuCiFsjq1WZoHeIompAoLtUdkRy2Z8PqnZlWWX4iiZAmqJlMbEQn5A6XRzHVWH1Yd43J6ipG125CIhyywuC0Ct+Sx7DUr/K1KOuwU0WbLM/5RyCs8u5UcsaK01zXlRpiTdbjQAK28xn3Y/38MGrVo37RFw0uCPwrQgupeUOBtzjACZmOKw+scPDxe0CHj5YZlb/ABDrw7IZqaBbQv5TtETqomV2UaLI90ara7st1OSOXGfjbtXf4Boipz3Tc1stSiEO9zP3TelmyOSmqrhm8Zu2TKMG/dHx7J+UBGidkP8AjVpU7hHNWVG/iO6eat2TRJWtc1sn1d+FN+ttNgrCjQP5uzLm6o5LbdT0o5ymiXkaAZqz5LIdroh1dU/ZeGzPhuNSdgmjkbv6rRwyctH7eiHimoTZA73BOMWNmdBupxNa7X5s/CHxDlxb3l0i1nIXR9Fh373ngOgWxuGhWyOi2NzRJjbheYqsP0n4TtwhHxO4vaBFo0a/MHIIiYcL37Ian4AHKCiOYC7yhC7KVum63HqUIdRKJ00XqggK6oaNTt9E7Nqa5NHM1aBDNeZDNDMLtdrKOR4ChwBH4PdduKZqt0EcyoyWyIy4Rlspotjmjmo5Z1Wbyp5bg3lpQIiGgInNFWvWdhsscoTicmatzKbm0o/Vgaeqf1O2X9Z/e45UXlTcwjRoCiso5QvahNp+FuyOSzlOOiP6NWydU9gieVT+oQFAdFr3lNEtigUzCzQ03KnlCHzY4z8CPlO15MT3uGUo8Av7cR+UJzVrZ4n/AIT8S0MBMzg3WTsUFMbhAHxOy/fg9c011a0R3W62Ccmp3gQzBCJzhao1CnJdlk1HNDNBZShSCnIfuvRRKB1W12yml+q3Wt2l+nHtduOIILa85XaXapq8UmFFC7Qq0oxuwRTcgdV+6/c+qCfrsmj6PF4junZoGJeJU1hOyiq3crQ0VsP/AGhTWUT0pozctN1qQiohwXsvQ13jcnH9EM0TXsEfE7O4npmiFbS1/wBIaAKaN1RdWiORFMPZYKNTbmZN8yAoh1fNRfp8LSPhOvCPEeobcLcyBktvhtEnCJji3R4e3ypRzHAMiEfE4/G8y3uyBKbond0Kil3hTaUGad4kN0cyNU5CgU5wn67KJDZzu7rReJsIIulP02uBkFdytSjpcOD1Q1XovS4fFG1xXdbocG6OQGqmAn7XDNHWM0E481Ml/Tb/ALUrwtGqApZjT1Xhw5BEVwJwlqZmT/Cb0gZAJ2S0bujqpzGq8Ld0ekbI51yR/T0Qy7JoBLohePEaqaJ1TByXinwhWGXc7pwQ8ZWp1N25NPVP5S7e7Y5Jxph2Tncp7IDEwP1UQXHw3a3OygJtfnAK9/n3ZO34X9Q3W3A1s1ThzNjpW3Datwu9OBompuYasdqnGcI04rafe2P/AB/Kn4jjCI0Tqgp2SajsvKtBcT4dE0xRN8Sbq5PNY0RPIVFGitVMulauTdk0VhWeWLVE88odPdOzZshqdFNCENkDQIipC3Od3f4oR+AFv8Huu68t5WyhDRDRanKV/CGUo6LJjUdUDIRzec15giJ9Uc65pus9XomUa1T0wmdTRosjKZSMi4p1ICj9FoJyXdGp7I+HZa0uOTgclaUG7lbVtn+XsnHILSyTaAC7Kuq8IhM5zRAxKGpyKb+dUBhEqzzenGvbvfFTsjMOQEgb/Pb/AAozU0PBteLpyQEXjIb37G6zMtbt8Y6ngYJJ2QvBlPzN7597ZR0fBbmQMuCFPF7TV1k3wfIsMrypohqaKRqic1q453TnuissKc+qHUZovCwaowXBuibU+iGjhktphOEEFGgpRZEg5o5gJ/hlOq5uyphCb+6lRrneFmvKUdEbhqU5NylaLVDdfwoRRu73DW8drzr8Pa7ZDTgxUJWULxBaQtCrMa6LR4WvZHIQnilFFBhyQoWDMpuTYoE2pCdWqzpkjWHHRVo3pCiZ2Q/ZP1CiHO0Hoggc0c0BqM0Faj6Jh8A3RPNaOWrzmip0WYYgOnL1RqGzn/8Akoc1oRr2TqyFlOi0cwp56RlIR13KN0LINOQR8pzC/fuPnm+OK/JbX2Ocm616TwREm8DkG/EMuInp1HA5supkdk7McO/wGWZfifrGnB7X/UOnzVoPpG7cERCb02QQpCO6fQk6JomlF4X5rbujWiiCBoh/UIVrospKaalp6k9stg1QodyokF2yLoNU7mk5hFtYKfuj4RpwbKFqSt1mtCdVOYWkI5BRlcFo1DNHVaTef2ui4cJ3XZd1u1bIX9797u678PrdqigMzqjkJ1VocJ9FpWiiWluinqmpQMkpzbjmXaKP1UVedE7qcnGjZzT6ENqQhXmQTUdXlA1Kdt4Qj9TZeY7o/wBNN0Cask1sxoE6gasinD6MEZI1cYTK4Sc07IB1F5dERVzh/CF+qdqh4jp2UczuKOU/DHx91PxWiTF053nS4ZC8I8e3AOC2nFZDwcRELfhewhrG0DTv800cYbyVU8s7cX8I5nZHpA1QyDUafmj4U08sIV92mVxE0VnR4OqnqVkE4/mFZtzephpC0A1QoHL9kdAjvd/C2vB2WyOQWy0JC3GicaFeqphqm0hq0xjJO2CbnTRWmsLaUDkh2uOyC3QzW92gvN+y3+Bt8PYKK1U6r1yQpKaIIcgdNUc5U1RyRW4WdVZtklqjlLtF5k49aNoXEPRdQI6IZd153aeiKyndN6k7xLL1WcndN6RlJTTMSpimatBKOVUOlgzQuC1W66QCJqgZ7TotflHZt24xeMkfhxGEpwxCDN7s7nUJi4dLd+GbhTgau3D2vjkpndGbk7coGLxe8S2dQnOxYorwsE8Q+AEOIoBCiOfxNXLVy2lPzwpg5SV4qqzdyxmUOXCj3ThXmQOmcp3dP8HdRkBqo+kCwzCZRr4qhqdVnhOSbojqpiUPDqh+6IhNpzHO7vdoAoWUIVNaoCQGoaxkhQzmpmTRaFWdZQNRutI0XlctLgtLxpugMjdvxhC/f4HZDS7tw6qfEuzUTnCbSt0wQEc2rzKapuqOWGiFC1uvqs4JWc3HQLdy3dedNEMlk4FCsOFF/CZ1OUDARomdX4pR08qocQzKmQ01w8HiKPihAQRGamROSnF2T9/mz8Sebb4OYB4hSt9oJCO5QOVx4QJ5kU3M3NyHAdAhwDMpggSche3M73TlupyOnFCJ4cJETcU48QRGaKNArRuJvpwnKRnw/wArQJpyWpGiaOpHpAKZ4N1lgboswHeJTUhETZt3TT1LcOQggoeBuZUVxoII5KPREQhlRO6UPDuu+qctzdqBstbphBPqHIijozThzKfyQpITd1nRHNbXfym5leZNRRHULnZoab3NWt+y0Rz7Kd1um7XbFdkOHutwtxdstxwFBea86rfQIZECicYnshT1R2REidU3xNGanNyOYaFvf4Ruhn3QUVJTureVio3dRzE6BDTcoZHQFOK1kI5uW15oEfCfEhnZbqfq26eqBiPKhmDopkzoPji8rX4x4Gnq1PF4Bc/Ui6FPTfCCsjmjmb8o4BkiggZvGSNw0NwpdEtKOfD3U9N4qYQRuBg2mHln1+WCaMIxbKxZjOLgsWxTXg0apzTtRsoqpnPqUQWTVPpC83dCtdO6H1ZagJhysqyjmYqvCBqgKC7UC7Wuq3CiAmmkI5ytAt1pGicU3NGsLL0WiGa1lNyhNoArPdGsjdFARgQNJK8QRNztFGmiOaLszkUcwE7pWZCFCStI1QWkIaI3DMrMndb3HKqbwDNbDj2Qu3W3w9kV+I3fpdnKK9VEwvCLsOm6ia6rYFeF2gR63HNyNCT4VlhAzXl4mmGNVQQTReYlEQ55ThV40WYIP7lDyu/b5OcuAai5vbgJzdkgeoao67XNEC/a4JonmPHh5Y34NnXGmEJ5QzBR3u0IRzu1URA4HkYitHcB1NxzFwoPS4N+jDRmeJs+8fPVc9uF0ajge7EbPumkAM34LSzxWn4Dt8mduIr+EOotQEEmiaIFmFaN5i45JtQ2aJnVunHqO66g9OqMJ/lOEhxzCHS4aI5vGq1CG12wRqQjvstYW60F25U5rdboI5wgE4wjuhoim6LUnVEZzmtyFoAFNAmdLlOS70TPEmmQ5Yaei3dqgaYtkfFK7qF5e6K7XnRNzRHNVaQtGgUKmjkETEuOSNJKbQJqOYTswPibrb4wyWs3ChnRHdNIwwVOR0CzcHJmqd1OXic1ChYRktlvcc1ve/ZDOdVirTL0WckVK0Dd+6FcO6iQ1g604Yf7flN/i7uQQpfMYdVqtMVwGta3nN2ymAd73Gr9k2gdvfpCHU4lMzrfrdrhCw1LxrfGdwOR1ROQu2F2va4Go3uG6N4aBDP54JrN1s3E2D8PfjJ53pruR7tfgBwkJrYfSODU7LxHVHsnD1JWbu6dlaIioGidoBRO6mrN0Cqa2J1RyotfRDU3blBOoHIUTk3P0UXaI7LYo7IZG4CVGSGZCHTRRWVGc3BRA7Io6rZOGZ0XZeYaqyyTzVpzTj0JmTCiOklf3UKZQKz1Oq0PCEM3FGonS7ZOTcwCtG7LbgOadRzSj0kIdVfib/C2WpRWyP7LcptXHdYeqaptGmFZHrPiTT9duj/U0XmTqlo4DkE45T03hEcuEoZO2Wqj9U4crd1NWsTxON+Y9EPjYeWOAcWl7aydVrwDx8Iuddve6lwRz4D5kL3bcQogKo5cHonm/UcLspXZDe/w3etw4HkHERUfJkx7rXiiZQ1WrlFXJlO7kTFUaEjRDNo1WgcKNREF7RMqIaRRWvSCmGZYM1sy86TVA1u1Nx1WkIur3W67VheIbdkwVnUq1bJjS8LWE2paj4V3us99Uw02IRGyH7pu9wuGyikI51Taw5MXiMVCz5inmM8k2rnbp+UZI6oIrusyVZnmZGab1sUZKKJp3WQ7LWVOZ2vI1KGhRRFRGSdktCFuEcxEqJxDgHFtdt8ALdaVWsLPCFnOpWRBW63Rzni1u8zl5kNVmURXdCsalMyYOorq5s1p5Qj4W5BOGTPDsqHk1u/vX4HSvTjPwxdMqfy4TmNvgYaRqb9I4drt+DQb39rv4QEXRSLjmUHQLGNOAXtMhPMm8oaFaRwd0dNrw2WwMzwBvNJzKt+m2Pg+T2mnH4nlN03XTDTKbkN00/VNzQGqnqA0QdXBonCGvywqJLtENbjre6lFMNGac390zQ5rqabTM+ib5li58JTDAxZp2if3Ru78AE1TmRLkOhnmVnFBsiM3KzEmtzTAG6Zm8ouzOytTyBijl7o6OWiHijJRNDqqnBFSiZmIlWhI5lNQCnmGsHhREHum6BC/MgJ3iRzhdzmEDzRojoFNV/CA6JoiKFRykI5zugJqh+6GQuGTUEckNDqnN6m1/JMMxOYR/ULY3BQtr9LtlutuE6oZorcLJH9rjw7rNeqOiNZWpKA6ijdqdFGVl/tO/wDcUfEdlGRRoHsotQayVGTjQI094V2XotsV3ov2W7K8UVkRW/wxdvdv8TZFMyv34e9w0KJvxT77srXU8BF7DIlOMm8dVb404nHrOl79TpcEdTdmIKf4nFNMUU5fDJidlaWeIubp8bfgLZz4BUkpuYC1kZJ2saptQCE6jmhTJ9EyhLtQnGXE68LjknqQRC66oHqGS0s3bKZxoNgFozKzdOZX/HqvA0bo3FsQUOqsyi2G911PJarMcrd0wcxiqY3C2BmrR1KLa+1bLm7JuZKZo7deNtmmNlwcP2T3S2yjK93n0UQHaLdqBlFuhQ6IU59kYiiaYDUbgtBurTr3aU6hxNop5lFeyIgsnNWpz8q/hap5zhN5RorToct7vDdCGTFshovCJyXl0ATTEoVkJ7aJ3iKGYXZMC3QRu3Wi2W62ngNbhnwhaoZrveOKeUp+WF1FH6BO/psXY9Kf0Phd14johk1WXW9xqV6XdnIbii3aarYhbzC87TVfiXZaU4fF24G6fAaIFzk7LgPgvAp34Su95usciBwMFY0uGq8qKN29xu/e4I6XPrAWsqK3C6cxfGV5E0Vo8tNnteUOKK4M1PLO18x7yKcGEnEUx5DXb8MZcG17cysgdkM7QuU81pFF5maK0cGsGadUjZA59kREIXFFZ1X41lITRnE0REDCayjuU4Uqn5JuQK1ejqb2ZlN6GJ9Th0TBAhMdV+4v2TXFxdveKm0KtaNYH1/NWlMIyCZTFoiP/wCT1NGeX1TsybwemJU9JC8pyW+iNQVojR0BMzkaqagX6DdDTZWtHA/yrSoT6ghPdI2KaKtigVuYaJyK0Onqn6kLIKIyQX9N/wDhM1vdkgialEp6YKyj/Tac/wAlC03UQR3WzkBBByWx1WxUzRAgAI6oLcKdDmpotlrK2W/wBf2TteN1BC3c7Jeso5CyyWjiJTanEmePRT0sMBMIlz0TLHgUQGKQcU3+Y5LZpovRbLZzqLsVs5eR61xNleezyXZDhB5nzmLvFKlBoBW9zBAhTVaA3i5rQ2gu24HanI3zVycYATb8nHa46o0W63T8xvwdlZ5UuHAaCFlXRHhw8sb8GijPhaIkarRFbNQTBA+FixYfkBmd0BSET0jVOOTUKRoVaZmMkzxFauK3QR1Tf4ROZ0UaZqKP2Vk7C/urOuIHq7KIa1uvqrN9QTQJ7ajYqz6rU6oZv3KHgKZmxOyCGi/pQn7G60ERwzVWXiRopBLRkoh7dijkrQcxHgVrXEcz6omLP8CJqTwNbUHZYqi9nVLpDl5XcIWbUOpBN6CrEVGiGQ2RoY1WdCrIVHmC3Gi/YrxA6JvS3ZZqxGfnCYOedLopCOe6s61udkTogJxBAVgrYGUMt5QHNTVGrUDzLUg5lDpesXTOQUHNOK1uzRULRZo3dvkW5TqttENDqhk0aLVrf8p55rGz8KP/AJBOdQMEwm1xP1T2yEc7vIMl5GZcP7hHxs/ytwhkdV+4u3GaOTmr0WpQyNwU5IcXe57tUwxdteELm5InVN1C7KaXb3FWQkialaTcELmiKC867XRrvcPC8SETkEBzknMoai51pg90DzXacW9403v8RN+xQBE+qOfEXc725gIOOBzsyPkx+6FQ0dk6lEx0khHQFWepGa1FxTeolH91ZnXMp3U4OyTtSUwHG5rs04SzDQo1I1hNyx5r2lod6Ij6oeIq08KmWWLE3JicnUICB5TKOrigURW45LTgZniWpT/ERUJnSzUqeialThDjnCeAXVom5jbiDeoarF1b8JoNwtRtcMysUBqbVeKuadkrETCFLVv8IeA6oVIGinFi1WHlrT0Vtlh8JuDeck6oZoxmE09Up/1rRcEU7NouamCWlB8YBndvOSOqZ0kre4lN+rtPN2Td02rU7OuaFAtypphKIyKFJWwR6eyac1HSV5gtpu7/ABHbBa0zu/C2n6o+BgXme6F/dkpzIoiYqMlhiGsGS3lA5HXutTq74GoOqObF+xTc4qvxUBQ0WrFsV3C/ULzM4Qmia3RF263COp4m6XkSAbxvcc03Te4p4kJv73awrTXVOopqE49R0RpN79r5/Lh0XhIK73TPvNQim58DfC7VHgjN+atDALjAVmYJaZFzHS6z8yflZbcWwCHAVHDho52QWIxwN/dMbPoseMn/AAm5vhEdaxTK0u1IUQmnnGSbTE3JO8Kf1CEXcoOYTKWgfqjXPJObAOi8Ly3NRzA6J5iHJmTMVzRU7ndBWI5mnJOMxw2fUdk3PsnujEnatTBL3OCww0N8Vw6jGSss3NGaBqHFZPtXeBOIb/8AFOK1ew8WHlU8vDZiidQQt1qN0BXVHlPu9U0c+P8AwvZ+ZlmfEnZu2RZL3TVWv1cjRMbiIJi+0yLvCUMjuEUbt1aCDZxorQYrN3ZfygnZEqIc5DIhdymUtWhdkaIIDXVDUIlR+iFQSmD/AN6F263K7LuiaBfhXnGaNcDim+Lco5Svw7rdHRbtK7mUdX6Xel/9y/uuC2mFOuaHeiA/pvXqU7R2y7rJwzEqcnKOl2iOU5FTSk//AOcHovxGF/eF/cv7lsKlee0C7BbELfRaOC1C2Q1W620K30K0doUBFBf6L+1ficAv71sHreFPBvwam48G92srsm0qjkeEnPgAqd0Uf2uORuIp2uJjO7xbXxBjVTnK1Fw/dR+iLSA1y2umvwComHCOBmWISrR2Ixw4YuLxjWHmwZXOzHANUKQ3RZ2ryP2ThV40Cjp0Q2u0TjzeiJqAaoCtm7whOOhrKmrDuj0M3W25TjGJ+QKa3mmqHWNlIhA9eUrqLAm5PFMKOpR1TBzuaZBuA5xonnIJ6xR7qNE+rSRmrcw20eU+gczJyqHunrTTOGaKZhRknO55GSKtj1brNzwf1QJltoaOTM48Sees6Jvj4i3lpKxUHDHPKGid+y3LqoJw5jGvZZj0TjDicmIu6t04VszSQvZj9H6Im4Gg0UdWasW1JFS1MHLAzRFSVoo0u6rF8fsm8q8RWkZXOEGE0fqieauYVt4/KVqigYR0TeqV2TaJuSYOdnm73Or6ILsu60Q1R0TF5hmvI4InSrUM8OqBqW6rujkODYrYcDTyvCmcdnv6J+jqEKc4xtXmBhDzNX4VqzIqKY2qYw6hEn+4IgaLIOecP8rZtSt7Vy/9Nq3JXrduVuV6r+5d12K9Ed8lu1bhBOWg3Q01C7ryxVd1uQuwRypdst7v0KGrXXfiC/AV3HGXRg4CZ95qohFO8R0XUXjMLtcLoylAU4NSbrPpG1x4N1ZiQ0+JNzO3Fobx8FzuVWfKS3L5LVeFoT283qn6NQod7tUUfCFn2CGbynu65zTPLki6tpCFKpuZ1lOyxaK0bJw7ICc4Xs/Ly6rWMyv5RHW5YsIdooqWFYPpMW6JgOVs3PZY8PdZWdmKFHJ4Ks+kbIOhlmVvwYeRz9U36203TX8z9ZTG4sVlWE20m3Ov5KyowxEi4+Iph6hxObGEIu6dr4VnUp6tKeixUcU1ZRum5t1Cfy5aIvo89MIDDZEZPTRhhYedjlbc1FGSfNToniBRThcCrXmYoyUSJ8VxKsvEdER9IO6jnDt0aGUM0NEENFbUrohVlp2U0eEDBR4Domr+tZjTvfpK1KA00QHooQzQ2TdlHi0XrC7iVpC/hHzBdl34TnVEzizAWqB6xQFdjmtXtQ8DkdlpBQ863K7Mv9b/AFXe7a/sV+q/RdxN34V2W9+9+4WiCYIF3ilbFbhTUtQpOoWw1QzaVGi/G2UfE3JNyAzuGhuOrjATdQu13mbdEXvEGNQmjeOEpuYCyhG52TtryJ9LspvtWYW4vCd07MXFEJ9JcMuIZDe8FHgtWY/o3dKOZPxghc3qcAgOojJamUc3E1NxWUuT8yck8+FYRhOqc6kIDC2zjTdaSmc20KdUHS12yxVMZrCOVoVrZxXZPdh5kDEhDeM1sMgmCSVMYoonZuQloxhNdKZFHOUzhmnBioo5tr7PMxRNO3SEWxjfk0ouxEk0UYXd1hEt3N8TilMPUDM3xe9sQ5Yua87K05nLLEU52BrgeAbKOnf0Tnj6QZhWZ5HDNNGHG/RBvJom1sSm5p4jmW6DsXdWQ95ZVmmybWN1MYVrLulB1CplbqZnsrQRzDJOzCKJWsXMH0bkKELVelwWqOl2Tm7p/U3yFd1pqnZtBuiu6iq1ldzmtIpCitV3Xk0W0LeF6L+1GnLRE6PNVriOJOzoiOVu5XZfhqu7V+IL1X96/uQ8UFdgvI0VXei/Ebvwji9OD+271u9LtxQrvxnNq/i7bg3OS7ZFdsl3CHZdl3W+JHcyvxZ/qvK5DxNuJnFrftdP1d89KLqvjJDJ+6K2N4EptYcnGaX2jZQRWVwushJunNQqmpi6JvKNzhIxbXPyO94swLTFq75BmUap7phDMofotYKARUbrMJjlpTRMdhrVNHMUBTuU1mFonO4Ggmiyl5yTW4Q7SU90x3UQCgsi4ZQrLrxHVB0+6OqY7mJOYRZVjf4WLEmGap4lmDKbseJ9pwtqCEcybjljyVueUKxHPa2aaaRurCrqJg6d+B2qYanijrQNXb3tNSRRFMdkFM4SacLciF38acatKtz9WBk5WjVi+rGittO6Aqi39O6ylTVvZWvOwtXdHQIaboLM4jRWA5Z8TUXRN/muB6kwzRWY+mZvdp2Rykqekob3NK2T6PZurT9u1wqBGaJqFFYcjl6I5zd2zREkLyI6IaboFdzktSiIEHNWgo3yjdO6TEwoxYtk2jG8YKcyBZxxnLmXZaN+B6cW54N+DxM0K1G1/dbv/wBLcruvK5eRDVaFAVg53z1DJbFeVy8wCnNytBC9LrIcEZhE4oRdBs4/dNM1TthcNBqjcEd0NuK1/e7a7FIpre5EXtMpgilzG4QXaC5uQ2TzGJ2QTTEjgjNu92/EfHFOIZzohncKytRKAoNAooRmE7IpuZzlDIuHUrPOzdnKtJLoTtRkFZS4W/mWUgVVho6hcvBhyKoWjdDUoDEQrY0d/hMOhondTRc0cg8ydkd7ianZZC073PNbLgHiiiaek7J1GhOaIM0TDi9/MUUxurSr7Q/wm2XvGP8AC31R6mt8R4SeXCgeabnhOMxeci1Gs732rzzNFQE/J2V3bibUEKIDj41aHqd4VYtw4ozasUi0mkI1syd1MWgdunN0KwzU3WQx2JI/UID90Ko5FajsgmFWnNM5Fd04coI/hBshh1R02R0m7xDdWlcPlKtILYy7qEM1GSyDdl6L0R0Cf12btk7auFbL9kalHNoQPTFAFNX7I0c1RoVp3X8L916aLQnVHJw0X9OzKcMtV4j/AIX9WP4+QHD/AHL+7g7r1Xpd6rS7b4H8ryoalako3i4a+a45OCmkIoLc6r8KiATqn+Y5LWDRFtRGEhaOYvOOB3SZyv0bveRBN2ko0ngOaGQN4NL7PpYR1JhkGKphnA7Ip7pwNyCahx4qs0jhZnwWBnGBzH14h+vDZeI6o/uhmF4kRVNOIBwQGSbV2IZ9l/TavFOQVpQsLehRzWjfEnDpyTH885JnQ9qlONHTRN2TaOtdE6A22yhRLrTX0Cbuczcf2T24pabrLpFxWeE3HIqx6je7XVBvPuSm9ELunjnfqrXr1gKyra2zVkDOnFPLCJ5gbu6/DfoUMyLrJ0vnJHkDWhDIm8t5KSnPJYzYcIyIUQHHxon6K2GnYqzGE2g8fdF0sejS0Ld1vKdSc8KIhNNJ2XtDcTeymjY0URVdhcW8zjmrSfck+bRVERNVAE7LTuopG6BiNb7Wjk/nsXypWq1XlOcIaooIfmrSj2FPy/B6pwl7NkN6FESWeZOzZsu2ULeM15QhmZWgXfwon9VqCF4LN2q17rxPIoAiIs27ndPMk/Ib78PdbXd12WGhv1nRbheU378et294TByNjqu2ub0u39V/9pv2zK26U3RxMlHMtbKNAXtiFPUBKDdGlqzBxSrTQmq/UL1j+UdRVDdEqJlpQR4XOxYboURCJohrxPdPvIqimeF2ScZgXFETB+DKw/ujwBHI8YQoWlGoZusqJuTiEf3XgOhWUIijt1iiBqszESQvDhGqaBFpGaDMbmxkdlGFsbomQ4onncxq9FjgWSHgyoieVniQq9icJsx5V4Rommt2gGqbo64N+knU3MMhRQQhVMFZU1AOad0HZMbDYREGU4ZbJuwX9Zmg9UXdOHJWpnC3wDVYAfaJ8JuhSgOWqBobmGgTvDEcWcynPw1KdlCc3rb4jsrQw9pyagOoXtdJbusIGHiGoWTXnxJ/1NqBl2T4DJHSntzOeIoOgN/ys8OhR2rhCGUqw+ksv9XEc2JAUhad05MMgoctuBujqRCijgpib/RZupkv6TtiphyjTVNFGauKGTQFOUaIZSETzBua83ZN1BTutmhWrNWJ2prKFMB2TT6yEdF6I+JbBaVyRy7ry7LMWf8AlO/ZGv8AaFZCXPPiKFGN2HxivKhds1bFRnncbnCKrbgP7J2Y2v7o59uDe8+G/RNNzeI5lN1K/DQBHa7yoiLh0E/wpqPKhkSVuyiPgdQpvibp6omjjUEJ3jZ/peZl8/tdtwNufqb4pG9+H6PDvxTWE20HuRpHdBuEel4OSiMLVi58OcL2dmI+9dBu78MoNUqzMtHDFJufsj4dkUETEHVGjSEw8mJWmhCsq2ZHKj0vw6qzqFa1dI1CdTZWjOu0yK6sQNCsHg8PZOPMRurJnLIzCLsIxbqedwVmMIg1lN8NwoHAdQWpuFQrPNr83KydGGarDzjvcP3VmIjDCaANkfCUb9t14h2Qs/pn21f0TuWWnMq1oHZ4U4c7vVZ2hbxsMwUREDiaPDsmPkk7qzEOcyis5Nk+18SPl+G9v0zSOkqzZis6xJWVlaHVWTpsrU6jZAjCxjetWP1zTmVOZzUQ4AUXdM65Oa9pGNtwWiCdrsrbkdt6rMHstIRyFwyO6Ar2WqFZXs4p+MLKTpcTUkVUwT2WHE8isFO5i5xiEAQ3FmUaQNEMgdl3y9ERWzOTvRZS5ZU8JTzDn7BAcz84KOVKLzbr8Kij9Fi2oPyuzJ0av6tqrHbUrDy41rh+L3UZrEtwhkVuEFuFtrdrPB4Vo5boZ3b8O3HoUcxe8ZDS5uQW2pu8Dv8ACPUNjdZVJRzPB4S7xDZHK6NNEW1xaFHPb9EOm0GS81mneJog/mvKm5g8ByKORB4O9+idmioiolGt5F3fjOccUUwjjmq/Ddq5Hxbre4UIanGWmEypCfvkF2qmNGHROMwBRqacnDNOHhKA9CU2jRmmjMmFamXfhRAP5p7MTSyqLvoiUNdZVkYbZJ7cTynDoarN2Flkcworc6nLmgagrBy4d7tpTTIREUQKa0Ni+1fAdCDZYzuuq2GLILDDiNVZ/uUD/wDLaNCOatd9EeJrpIQbBpxBnOOye6vqmtx2tnMSmdawjkG95Ka2SPgjVDoefEgfobXKCq+8c4qMVnTNOs5GLJC6x5rNMNTvcUVsmHQ0Xsgp+IImNkw6IoInJZOqhsmlAfSsCmIQpXNCsLZTULZA8h0CAEFF1GDQrFQahaWkczVPTqPyQMZI0gHReIbIZNhNqMSmYBoUTmc1rOZQ6nauT+sjT5HabvwpuQ3u8zUMnC7zDNb35lCgv/i5unH5kdVvfobv4vK/YJ+bdrgZxRVRFoNxupp6IoZDe4iglO02QyTMz5u6YYwalbG6eUIUezzeqnmgZKIdGSjFhmIha2g/yvMMitAbmUHZDUXDoG/AXT73tcKRc8wgJpe00s97tymnIp2wi5rIte5ugnG/JA58HiwZqeTFtwTGLgKK88pui7rNOyU5QgASdkatLs1FcOSjladCsw7DErwuVnoPGm912OScOedCmGodkCm8uIKxdLnO1C87NVZiWN0US8v/AIWPnjJHVyGRCcZJKDsMTczIp5kng1WLl9Fqg7lRVp0jUqxP5q1fRz1adYGyb/5Kz8PdHVxuLaIu5RxYhiRZzBt7zAN7W85YdFYczwUTVuKvovZ2Y3YjdhrO6miCy9fhDIhRDHu8Smj269yvZz4tUx0Cz1VlX3gFYTBytcM1nHZe0jEAN0aTCb3UcwKI5luu3iCtxiHY7J1AmCg2UoeE6rZHPllelU76xm6tc/wlRADU2hK1otDGampubWUTlssX5rQMU5If1WUKI6LZq3Y5HcqmbkD0sqv+W1R02TxROqSfgUmL25lMz+DvdstrjpcMoR6kMrjd5bheNUdVobtlqLu3CP0Wp4Qhl/q6y8JzKI1vBiUNQhm3svwNqpqXrQypqBVHwRCaOZ2g9U2aAxKdm6E8dELyWgomiYnO9okyVFZ3uiZdkgrPpujmm/cqauuaIprwTVvwAOURnd4sOanlm+Zwp4kXtoMIR/a4DJTnojmXlDlyTBBc5qNTjNF0wiJDjmpjC0qx8MSrNvPaO1Rbib37KzdQDVeJifnITBUOdmrfpJUASzVMMB8cytKgPEE/msVfaJU9W9zjEnRR1tujkjJObDe3C3Q5oGFXCFPMwZqy1TTV85QmGQX5uViMWJublaNxe6tDzL2ZvLu9b3nVM8QU/VcVo3nG140vww8TmvarUNfHlWGTWao5wfh+nCNQmiGWnmQqT5giIeEelPEOOYW5VjzWSZ4e6NCt79806tk46OQJoN0FoCF2C/lPEZJyiie3nZ23T62do1NymspxqFMJt4zepzOSJyWZOoXfVOrnVDuv7kfxLdwyucORicfiOqnaDj1udmhu6/te2pCO12odwHNy3ROa8wR8VxWhu3u2W9wy73C8iaaXnUp2Z7p37KzEkEqas2u2R/RDqLFo9+SygBNORNSiiZnVC5ubRmop2QqAdUfAf8KxnCBQ+hU81kf8IaHjsxJDqIIZmKrXiKN7T0cEfR4crp4YWLlVloVCfk43nwp886bRp3Xk0WYpkgROgKtK4iF/zOzQboV2TQA9uieZmE0TXVBsSBCG5VpQNbkmDnnQqyZIwmsJ2ROa8M5lMOH3kZLHPveydkEDBVkzEA7xdr7IYW4W5q06H+VdkTCLZluicYC9ooMLk5+H3krNhGqOqsWYubVWPNasd4zshmG5AJxwk7K0ZRzXTA2RNBwdkfMtuK3yjTgr63P+ustAFg5KUWw4bduJkGacUcsrTibkQrMUJ8acNV4XdkKwSgendM0Oq9qbiDhvqoznNNyudUIJpkFWXLbAZzuvG4LSMk7stxVZJ4kQZWxRVp/4FO6LRuoW3a7P8kd0RLXTktt03wrSENQFK/cr9gtl5hqtivAzzlHIbfK912C7ldl2Xoj5m3nZd+DY3bi7fW52RngGRv2v0K0dxtHMd7m0d/tMzqgJ5rtm6LZHRRqm5oX2Qkyb7PJoTRFBCamjZZBzm6qzb1TOPgCA1uKPG05FHS9rZMlNMHg3ulRwHxXHZbbLe7ZO8WyA1KZQhqbJE5KYJ1hA/mQoiyw1/VeIMbojQuKtW4XSndTdEwxgaNViq7Yp5rqSpls6qzq9zEKlNHMDqm0NvoE1vWE4ySgedyGRCe0OkJvU/QJ452rDyHcojEIVpk9yaaxqnGQCj+ya7EKKyaS0bQp1T25bXWdXB/iXTRW+cDmAVmPpnSpoTwtMwUG4YZxsowk0HCdlGN28hMOEKNUc2jgYIbiMwPjNMghWX/kmDkO6y5k0wIqE3WM0znsD/hWRhy0x5L9llVO0uthhtGq1OJjxqETR0URyThAC0Qym4ZFPOSyY/wAhVpWztRkQhlsVNVKPh2XZHqbsjTJat3Wm60KOi8yP/wCSm5A5vKHQzYfLbupd2W7l+Fq9bu69UO67FevCBU73b8B0W6GyGqOSHF/HD2uNCnLRgzWwRR3Q8JWgCGTYoQigI5RC7JrYeZ6jcclZmRaRUocrmwgIGHe45gqyMtTwGw/RDmG67i4iva6arSb3iRd3ThI7qJpwERLSnun3h0TXEm01KPwdlq8rV127lniCbn3R8BCmGt2/JObzOw9JTah7f8oNjl1WGCAaFAQxo0TqPbEK05hhMlO7Jr5mKpplzSYBTj0AonkJUJ5VqMwJXtBhow5rN9nkrWsMOV2EHEs34snqIDArXO/urU8roVlQQEdrjUB4o5eVq1cclYNzlWcOrr2TjQMzTnyH2ozVoJDxonNLzXPtdHBOqwjpynjxUMf5vDeeTMlFWQnm1VoZoajeb+/xwJjdExhvYZBCsupqHVCwxsiOUqxdPKKL2gYbVuzkU3MpuqG5QFcRWysGTZOerOkgLdd7omN7569kNU7I5litRy2gyITXRHZfiTtAtU3Mz1I+EFTQRmjrlC30C8S7/wCF4bPVyHQzb5f8S2XZblbBDcr0X9q7LULcrcLdd7+67LZbKNFp8QrbZN14mijlNL2CAhe0S30Q3RpfZ5BMGYR6m7q0y7I5Ib63WmWJPdzNdkQnTIiUatGsIaXN014BlN7BDbijpwPMAJul+t4bzTqbjoF5EMmi6ZlRU7JuqiZ3TtSmCJATnSY1WoOis/ENV4WQhyh4GqLY50BTEVqU+jXvzT6mN1Kbltd1EqMm6BezOhoerXwt0QfV2kIGrd0fAFYDC27FzRsoGe9xVjkIqgu6OQCsKGNVakcpTM3MzRzlP/qHJOb6wgPoQxE5uTG4j6IcByAWzwrVmJ3bjY6cfA3JOE/kmnP4xTBWULhqF+I8Df3URaWeyeOU7I5x/KeYczT1XtOmx3VmczktQhuu9xzCYZEJvLbNH8oZKaBbLugtVFEUNRqn52TsvyWbrPxNWQx5hbORyQEQh4lotZoFsMl5dAhro30Wg4xtcdAj8h+Gq7p3dOEcu6BqCYW7UE7UBbEXbXFDh2Xfg1+Fq3g3uNQtUEcouOcXjML10u3COUi5gk4jFz82o5BA05qKYNaLR2ynbRCYgR+qsxBEoEQCz9ZRytWmkp/jai2BWIPADkU80a1WefC6gCYYKaaOCb5szcBKHB5nLzuuP7J+hC0YjSNlmcWqPMCckyr37J4hz36IHpaKt/NPPOWjNTAcNUBLrI0Kf1NOQQq925RbENyTTCPVZ+UoqZ96w59k7IFahWvS1NrUqzMvZKy5hKtD1aSmmrUfCETOG60MSVZmJFzDMFO2udkAjkWqyMljqucmCGg6J2bzomOj3m/dWVSGLBQEVaUe2Vzmw7CNOGzMhRhoFb5cfUbZwQMTe4wE4FmNu/r8Uao5FBPFSjwb8HjZ5gnj/wBp2VmYGkjZPdNauC0LNCvZhFqPO1OH6Kbp/VBEQU/le3dqt2zZEGIRplK7XNzlHTOE3IgI6oZhadkDm1f/AFNnT9QtMGf6Ju4TzLsQ1Te2aOoAW5X/ABszQyYNUMm/At2YcTtLnCJ2QMl5+Mci6puI6nGYQ8oW5N3ZHdHdbgL8Iv8ARfsu69F2HB3WzluPgb8O6PA1Po4Fd+CNLxstwLrIQIC2GaJjmOaadG1TGRiY2qOhEQu+qmYW6sWyJpiUULFioUcnvycrM4nN3Pon5MdkfRObLwaQdkKEI6IpudxzvYea23uGoR14O1/m0Xl0Cj9EfEoo7RDq7pxhsKM906cUj/KOhbkE88rWioRHLX+UdwnDJuixTNpomjDydtU1sc+aAyLZTjkmGM0wSIrJXcrFGJh6UzIxVWfiOaxVLhUJpByTPERmU49I1Cs6ss/MrFuJrHHqPZOdkEAJDt7gnGAm5p1AExnK0eZDdA1A1TGdW5QbLHedbm63YKsrgTxBdPSrQ9LqgNTjJWiNaBWjcPNoiZ4j9VVAcinl4QenF/i4Ir2k8tpPQEw0J3+AMyhnPBpCZxOEFP4XdbFE01Vo3le89KNM6LxN3C9obLPwlAeDVHQpozR1KbmRqpkSrarXDwOTekjI3zktRCOVUcoTcwtwhkLtCChpasX4aL+4r+2Vs2i0GrkOlo0+a2JqsU915RUr8V34RC73+vB6L0uOS9F6IobtojuF2WxW7fg9+DutkLhun1EJtFvxDZCkIdQajmEVuLnZFOoUBDqfpfujqUPE3JWIhsK3MA6yvDhdACiXYTl3QZ1t19Ucjvc4ybrTK0OY+ADBcn/0xnf/AMbV2Q6iU4wU4wPTddJGwRypUo9LtytJKZV9c0a4oyCFXBuiwSwNpVNyCFROyd19zomnnszop5XExRZJgxEzBVpmXZ/kiKo5wn1Lm1MKKPe1OBo3dO6MeRiqsz0jJPfLYHAx1VEGVGSJmA1WDMYLlbvwxqraoDc2q1dztKdcDVZvJ07IZmFHMXhe0fVPcMlZCWOb0uKDiMV7mlpkTQqPBup5Z24mGGz0jj8l46BunCDa4emmimh+A7VO+Sf1N2TquATqDHRNIaG6q2pBzs3bqzyjxd06n5rREofst4Tdd00fQWh17FA5bruop3X8qanZAyiTVRReuV2t295ys1oNvm9mr8RWwu3haxd2bK7Zrd5XYobo+ZT0DO7dxhfhX4jd2C7laGV2K7p2T7tlqUbu6KFwu3m5udV/N5yKKG2t0xNzNFstQnHJEZG7UHfh0HZRQnZEwHIIoi4KKyJhFuKzJ2WGp0CeM5kAp+nhC3GvA4zi1ud0PnputhIANRca4V2X/G1N21RrilN/RMGYCb1E0xJh62qI9U6rfwrFyiNEKB/dPq2z1cEKFjM1GhU0ikIxrksrZzj/AAmmGz1FHzZKx5YmhXViGicYNleK5ppigQ6xlK930M3VTZl5wiFurV/1WrU6y5C45FY6hCppmE5tGDwlRXFvc0c2LVHZbKvK7JMdBCt24gGuqLvahJeHaKdArPpBVnlizK1LfD2TOkJtXEDLga2ZKs3RiGvFM+84yRLJuPhag7nsjQQrLa6Vg5T3+af1MT6hw8PYraFOasx9Dab9k2hnS7MuC3W5W0rsmfVWztexU5nIpua/hboVKOkXHXh1Oi1tUfhysOijmj4+zVu5DQLzuWuGimh2CObB/tbNR3K7GV2Whld1uUPzK/Fmuy/Ehtd6oeAlbFfhu3agbpoDd3XZHPstivxLcI37rutitBcMjdmQvXNbjNO73Tmm0dc7IkZ3HNpR6RcE01dKHhu3Nx2CP6pp9CVuQncsO6l5tCtMJkFOFHZwUxtaR+a6hIyWvu13Fw2E3BHWKL/jYjoM0d07IuVn5V5Zqj3yRpUZlGaSm/Vk6/mjTC1yshiInXZHQGkpmUlWxDaZEboZvjVTm3IhP5uQymDk/EieaiqGh6tDOAHL1TsmE0TTHLkrIS6StO6dngKwk9NEPrPwon6tiszRuy1WHM73DJDVWTcbi48DzEoM5z3ROEWgRNShlKa6CNVaZt2CitraZyseEezjVMsq7TspxPdd7S3C+eCPCYTTB4ierisB+ZUxhNzOTDqVaOxe8frwWolmLI3zVM63R8u/rs3ZI57s7FDRA4gdVYtqP+Rag6rxBabqPCgNFlCikJvRb6t9U/ptWZFDULzBZwEeA3eRq8rfjdiu/wAca3RTYFaALyNWzbgLtymCBAu/YXDxFfiR7LZOPhFV3uaKTrecnsW12oKNwXmu3K3R0Q0KC3FxzW67rtcERW7ZbXBOpU3MyGy3KApTNMNX+ZObNNLtV4XSsXSBkFkSStXPqtXgQmZBx6kKyiaBNGEjIhMrZIJ1BZ6FMZrk4bJwlzRkoioWsq0/dNzduEa/SioQ8RFEfKIRWXPqhk/dMMPedV0lwTTRoFSgJwJxo0LRg8ITW0b3Tj0nwplXkOzU56r8NV0tpmsm4lqe6dWG6JvU1ymWhuiOZTqXNbiJDk/OdUzJrjROdNE1pxAaIunGiZXdPFI7Kzbhd3O/A2zJH4uytHYcSiQ64nq2WPC07qyecI0QElPzswqmz9mnJAVnRWnW1NHj1VMeDVYeb14ohOMk3EwLSKTwYqM4nGqNP7kc1ZO960DVMOQ4LAYWA6fNarwo9TDk5CrrG5mR2TRzM86bqV3X8rZdl/Fzs7J+RU/VPyP5o+IVCleqZUrQoHNy2FAvw/YA/QLV63KynUrZBfyhk24KPpC7ILxWmpXhbughqvMUCtrygp5lFA4oaXahyOoEoahbLZyK7Lyo5p2moW+yGrV3TdU7UUQ8K7XbrzC7e4Z1m4oplCStNlohteMyV4hktGNWyOaeJGLVT+ymYTWywlNNCn5kpv7XWb490pnA0aJs8+qcTWyFAnVxvWjRktE+jl/AU5rMGEK5VR6WBHnNckBLhFSpEYqmUOizaP5TiPd9kOXcqJxO3RyLFkHbd0zOd0HSNws/djJvqtAawhXCRmmmWu7Iuh2FDR9FsrRsgN0U54apzcOKdUwcuJYoBVka2ZzKw4H+iJPvGnIX2oktboER4rwYxRRWWh1Rq0rcrYJuTFZ1FplKY0+7g6qc9VP5NQraWzQrVs2mLNpTTGJuyLcOFakocT2QxE0FzXYhZ6TwTlNb3uwgzqi/B1Vm+yYJbaHVatGqwchLU6pPwjkEd/k9rxkQt2jNd0KgtKHT7QP8o9L2VCng9b/KaheZkt/hf/up2fPKOpXf7C0aNUPBomiY0CaVOaJT+m81c46IZnzI9Ld02jWbodLRcNN7hoUTkE7xahBFd0f1QbmtiarQ6ICc0aFE5o0BJTf0XnYt25ofqFuLt2rcLy6ryuKZnubm54gneVbFbXdkdCj2Q8QQoJCmrIR2GSaJi7dHJ2qmoQUwnZtjJOqE2gnRTVTAY41WpvOiPZHcKfzRz0CAkKtdETUrJukqlEPC0p3SzYph5mxJR6cVfVN8+Sth4TWFFHOFUKY35K2q048k0cmI/wCFMwaJ3hcK4lm0KYLYq5O63NahlbBEGGikd0w9XdPOcJmUCqJ6C3JF0vApKd4H6ICcU0TSR73FRCsN3T2aUhWVWtLlYuwfQ5k7ouo52ZTnYRWqe6CwZhWRpPSrDMkp+SAAM1qmCTCL8ZEVlP8A0KsBGDVRmAjRj7VskJ9W7FRhyu2TvrMTagK2dDi7MINxvc0rxTcxs0TXQDxWDJZXjLvym8GQyaLyzdilodksUODclYuxOc/+qFZthrWfDaUdXfL90M7znZvq0r9WH/S81mZ+zRm868DtbhkEzw7r+F4neZaN3Q6GooGeACbgtXHILzO0R/QI7oanNbkoeFba3N0Ta5rULyuR1YUcrQIrzBba3GowmVvujso6s6J3mQ/ZHNFWgpW4UhTEnRBdjc3LlXcL81EQXI/jC/uF/e7+5f3hf3LYypijE38lu5MMZZrZuimBhOSHiYn6wjTm2WHCXzRYc5oqUThOGYqp5mhOpDl20Wrd0wao1wNTDie3UKYEpjSD+FN8e6headVurYROGqd/UJTpodFikM0Ta4Q3Io5Suye7C5xyVkMIdoshCjMp+boRbg946keibm+c012ysD1DNyAjADSVaisjJP6gNU/RynIK1MuorRuF0ai6xd1La5zoL3aKxENcmGMJNStmhF0kz0JrvpopVWQ5yP3QEPPmvs/DOaOSHDZDmrHH5uL2USTigp7vzJXs4r3+c07rQ8fZd+HsV+ILtReq9fsrstANVtwE9a8bloN14WXT0XkVplwbrV50XndmV5nZobp2d7RPKtxQrY3GhRuZ5fChnBqUaFbarzDMI+IJuhzK3UQJK0aUPBqUdHKOlEUaKraaqendEyShk5T+izoU8aIHNZSfEn6lWZ1Tkaei1CGi0atWDNTSEFljUjC5omUNAqQ5ugWU7rD4jCnF2KYZFm2sp1WshE66fmieTVN309UwUrkFGJrURzAUTf3uIgOUSAE+oaKlPaA9zRAVoJxbLVD6wk0lThwzVHz6IULtERhylNn3RjNd0OonJWZBYAKFAz2RTXUbKdm0aInoxVRMstZ5U8z7vVME2NOv1US8jRGuHa/UXORdzEZwp5C/O60MCUPLdH0ZGhTdrmHE/RObheXK1+stDkJXtJknOVacz37k8E8zx0pu6dtwv+sIGXHq6P34CMrrYYrTDkGoVBGYKNXHX5U2UlyxU4vCsgPnbTUoCcTfndGoiL9SmiArQf8AtCbmvAzgzyvGSO63ctSP8IZMGX53uFe1wPXcRBi8UxI5goHMbJh5SaE3bjIoj9FOaDpDtSgjpoVEuFwUcp3RMyE0ZCsr+FOYXZM0QHO12Szoic5XgJQFQdb3dQlTEbJy1acoRHUSnN6tlvMJuTgdUDIMrDVuyAz2QdnH7KIwCis68x6k5vWcgrMEhxTDId5lMtGy8ODQodIGiIxCqykVU4Q4Jrod+JNocScM14W5hqM4CwrZbLYKog5qxZik0lM6qoxBdQSm5hrqICYeE5shm5U0EyrSG0FaIGE1sQEFjzORHoraoEQmn6Z8UC93DHBWLOUOVsPdt3au99kZhwTzJi6xs8fNrwDIo5lxuburVvLFVjxAbItw4LPVESwtPQrXme9yBidQiZOI8FqYaIqVZmHDbitj18Ppc5v0oOnBC8RbosAa8wqEyntj5XafsVuTgjmXfK2gn0RExxPEsbwDM3DoG5TtQh9Ww6+qflwHpddtqtzmivG7/CHU4ruv7QnZUX4TdsU7peNL3iAT4Uaus9AvMNEaYihknDMboIUnZTVHO4HlCAhrt/VfsUTSEPDshQkZLzDVE1pks8RTRWklN3GaNfyWRC09E0qPrIWpbqnZ0TNSUMiEMlu6iFQRqjUSm5g5LY5FZkbKdRkrXxtTs2FBsENopyOSZ+hHdOp+XossIX9PDomnGwuKdQuLaORMPlYYiYlO5iBosMuM1Cs2TjAqmZMjJWreV7TRqY7C5zXZo9DW6IaG6Op5WUA0Tu61hDwESrDpEVcm8vutghr3REhwVnkQKn1W0Icz+ymMeiFLOmitK8o5vzuImyKAJs8eRKaMIPa5hkK2ye4QCgaOGt8c07qFnCAUrDLcasxSF7PyhPMBWjMjkF7RJLnZBWTqWrdeL2cz75macZLjrxF2fbglAK0dCLQ7lXgU0u9U7xlEnEyNeInneBksUWbjqFhn7lDKfgM0Ot4p6lNq4ptGheFu9wyHBNXIeN2txR6nbKZ97sE391u4r8IX4ioHS6i/uWy7JgmHiq/CVsVuLmbrsVviRWZW4yXZbIdWylGKPzTeoaFE1boEaOJNCs6o6PU/mvKKXZTutW50WQWhXcdSH6hPrAGaHdO8KZqpnuttlZiKlRXWiiAiiIJTRW0IWGaURbVoTnAl6GZG3qnGj4Qpg0KtKgnRN+rAqPROqIph7KYxTQJrQcQXfN6jlOKn5qy5X2mUt7Ju+qtmwG2eTUR9E6YVp1AUXhjT1R6CKJuZCfqV3CORTDUaFHwBObywU1mEh4xT3WgF2jirGhcwRPqrccjS6o7qx6XBqtDixYclZM5wfEeybZe7s4pBVtVkphgoCaC72dmFgiL3Hm7InleFHQpRZiwyrQQxz9E/MKIqrQpnM+2bkOyYPrTmVZv+vuDuSyw0I4MQxeiwc/Hanms9uAXOPLCZR2M32jsITWYm2mhVk84baM07PjCLMJd909U0QTPUVoFnaFRDCTqhkOCeZq8u3BadI8qtNtEBBa5OKImRwtbPNrcGhsBZm46ZlebCGrZ1p/pZ9RQ7lfhcU7V2YX9y/Et9UB1DT1RGqceUbKzzEdSBqyf4RylayETR40ThRx0TMj3R6S3wrF0wj+oKpVWfm1QMhOzxaIaTVAwZTaTusk3qrmvFiWboyRzhD9ENG1RqXv0RiYOablNJTHaChQo0OyqndUBHxgZrxu3TDV2HRb790NW5EqgpWSn0gZAJjjzHT0Thoed6d4m5/msVXg5DZYvo2xA/VObDS1/QbiaAHJObMDTsn9YdrCmimP8A4fIppxe5JomulnskUKJ2yVoAbMA1B7p3g2TWw/mzKmcUZpxh+Kn6L3mbdVkwA9J7puoTzV2yYwizeBme6c6aKxo2uicZiZQbgLwKkKQ73/lTYDmsEUQjlKb40x04xmb3ZezlOMwMhc7IBQY9VZ1PtA2QEnclAcrAeO0dBedEB1DiKtxIDTkoU04GVDm6J5kk32fNLBkpo4Zlf8n2s4xOytBzfYupud0BHMoDlF78lutXIoXDoG607lNE4867Kc75qNIv2FV+M1K/Rbwjo0LSyaapuboW7lsDJX4yGhd7YJuTg9eUWgqvwFNzJC0BEKOlxUSWzn6IeEjJeOkBO6YTdHDJA8zSh0EFE1CFeb+F/wDlUX6ZBEZn+UDQRmj1AldWIIjrCn6sBTQjxJlKLRBPUSGipKI637qYIfQFRAaKfmnZB4zCccj4VGcIZYfGtdSndGLNHoZEqeZh0CfUsmaIUZZ7IQBBp6rCHFyijGmrj/pDlY1p6SmOpZO61PMSi3wtkYlm+aBi8WsFWjMQc4dRF2eJ6tOnWFr2Rzs2ioQzCywjZFuF7W1lWDfp3u3XfNA5vTOhisqODVP0zTsvaKYCOZi2Kc8tNgDzBOGL+3tdZNhxB6r39QGqAwy09abmE9s2g2RdixxVN66J31EXRMuTzmnDIaL2g4mP8idn7QgYs2jVDwleJoRccIO3B3TGy+Ux0HiOQCsxGF+nFbMw8+iJucYkos64oVZuo/RO+1+/2I/I7C5tXFCjQrTPsF3vC24G1JWQGwUU7cDcrjrC31XnzJT/ABnO4eIrW1fQrxvOStMy7RRRoKmARwhbTRAxhQ0dQrXZTmahRHYprqQM0BWRVTWU2jq0TFMtaShzYHeJB3TqU3+nrCxZO0QbKeOmdFaJ8GE0T7s76rF0hOMIipe3JPMtI3UZRIKbyl0IVNdEOoAUYEzLaEM+yyTIgsTKEakKKOmV+HZeD8XZWQltaoQW0qjVzQaleXRieespsYGjVWokOnO4CbQRIhYeazlP6XOGad1M8hQGLHNEx/LrKmQ4Qc06uN1ASj/UIpCn6V519E40ecwjm/ZMGIicwu4Vk3lBEgpgBs8GQVpRxIXbIp9CpANs2rQntk4dL8YPvP8ACwDFGtxb9POhQyIR1KLonRDIWVcTl0jlq5P8AdUL3eN/bsmQxjRr3Vi2kaBWdHOiqdLg1mZKsgrOsQjpx2bed05o8Vm6YKIiBxWJl1t5rhk1e/wNdrHonCbPCagd7mrFz4c4U8mPP4OPk8sfc8XFOq9N/co3OylfyhlHAU3M7lPyCKGiOgv3K8xz4LRsNDxVeERkjkxDJouOY2vlNPSdU40aNL2Vpmjq5PFW5rXFRatLpCcdDCcOY50RqZCb4okFMEtaR1LLkzQMmc0/TJWdH2c1Tm4ufNRHMJW6actEci1y/CmlbHRdVBULP0QEMM1CLZw908dAKIwmtU3bVPbJfMlpRNXdk8k2UeJNbIDdk8UhWwiFiwjCapgq8bpwDjAXS5+jewTwXCXVKbQOhZujNQSysmF5ijyvLcit0xpOO0Vs76WmQWYcE9uEzqd0RX3uhQtObb1TKWbzqpiNU4A/kneNuis7SPdbjdNbzPFDCLuayw5BWLAG2ThSE40ddH0mJe2jlMyRwMzcBkhQzc5uLlKOsJxzVo76Sw7qxfyTm1bWlU4zAFwE4tFFT5kKOejqbn2RYPVEzx+0fo69xiqtgCC0p212GjYmqc8lrdhxMs/p+5WsBePcp7fpmk5H7u2c47Seu6z6RuU41KbfZUY1aDa+IoIuthT8IQyG5VoJppw+XQXahuamlx6W7IrU7LcoiMR04bMxgJqU4xKImWq2yaDVHxOUVtAnU9PzQ1FV3KciOcbJgksec0Opmo9E6jmBsFqLZmzNQgatmFlaOdUKMtiiOrYrDNaSmmHJu5qQj4GNhR0+XshkdSjut01ucxKfzCi33VmK2jE003KIDmTqo8KiTzUK2jL1VkaN7JnMGymVkiYTa+7UTAEGSjnITsyDUoZu3utc5CcIKs+ZzDsrQSBZ5BPNDobtkw4i7Dp3TT0RRWsOs3NOSxVlERnUlYpNrqt8kOmayFinHqnT9IiPo7Zs1KtXAn/SnC9hCD4NKgLBJVi2slMEVdNVjhzNgmMkWjhmdlNE9wBKta11UVUGXqwd5c1ilrEehzdEDGHzd7pjEjZy3AnmXOKsgfzRzJvL599di58OcKeTFw+z5U4GZElNu0ZxYZTXkNduFaPgcs4l7TZ4Q12bU4yfsePFuo5sH2sVZ/uVa5nyi8abrQXjO6z/AHKOfYJvTwNEy5avvxVbFIuPS245vWYZup6LPRTSUOgb8G1250Wh0Hoj4QiOZraXA8wOyEF1m1HJpuH7ojQKJM0DvROzXu5dBwuBT+UtLf4THVa+i3QbIfNE2mIZnus27R3UxTRWhzVkeXCE+oO6IkY3QrM9cpwPXWEO2SaOaNkMoyTacxTOpqeMWf7Jzcm6+qthheHJ4kFucoUM5/kvwZJhlrJTOlgyTWF0u1WKfe63TzEbIHlJ2Vm2g8yfItMdWwhT3OgVr03GlFiDvfToUACHNzaU91bRo51ZHmjqKezVWubDoVZOh1KJrYODKUPGdAm5bBNMiqdU4t0cwCmECN1bN5hhqm/1mqBjDzVWQhzcVZVQxW7wRYD1Vm36MhNMrytuOStOb39pSiFphcxh5kXVL8mp3MDPKU1gLfafMhVz+DEMXovdiY347N0lm6iAOLDERWVa+DiLZIT24n4Rkg0Gzs27o9Ldvu/a0Z2G6bl3KNzK14XiCimZ9yndV3e7+UekzlwjIHVB3UBVTnuv44p6b2/WWjtfRNzJ/wArW01PCaFbaFZJx3qrFuEQE0Q1PHLaOH8qJjf0TulyFXANqVZ6bfmmtqW1Kwxg8ydov3CdURWiOTgakJ1A13gTqNeVaGkbpnUQE/eqdlAz7LIxurTK0c3I9kyhfh6k2vMJlOklrdArN0Ns20Keet2gTCZGgU81ocvyTPLkmieZbbq0q1sUTeo+a60bAE9N+HkwpoIsW7ImMT6BNPU3I3NzsnGhVi/E9toaeinE12HlTbObRuUJ9S5g/hTVx6k4yW7rDFFi6ppCBlBgbDLvZW4+qOB2cFFwxFNz7JjcDfe1on5WmoQby4d1ZzgfumOo/UlWJjC0oDEA/wASe2AMNHndMP1YzA2RA+jfpwhnJh3U0nj93ySJqi44R24n5SrKmfABJcVNHLDMg5dlYmA8aqeVmjeC0bMoH7tMq49lk0dky5pguQ/fitKM/wBoZdyjfoN1oOA6pnU5NyAT9Tk0IeMfBeJgZlM0Q0TGyxsdXCxuLnMTcR+YW2oU5nRNNCspCJoTmFMsLdFaAjKZTquZkrQQxw2QdBAyxJ56RomRLUGfVs1RPM0ad0TVsVCb5QhXEEPrNlPMyKIHkjNDmLgNUwyHZwp5+6tGUpIUYi7QdlhoT/KyDJq5aWbV3RPJZDVM6uy1VlkyNFs1WQ5bOKuWUp7cXIZi/wALiEXcyxctZogKg3bK1PVhlHrwnJAk2Voc2psP96x+Y9EYJsnZ/kmtoeA6BYfpMVK3YhjjZRrvcByRqnO5ZQyvK6sEq1ykdKI0yC9nd9C3YJxmBlwDqTRWE8fTDb4Bd9bOnHYZ2rdE4yXFY599f4rTsvaX+6ssZ5imc1oy1FHK1M04j8v7v85U/cK15n+iNADsnVu1HDOaFXFDlaOya6r7/C1ARA4Sh1v3K8LP8o9TrrOpuF8ZC635bIk5FWJw0y/JNzM3zR6GyB6U4pu19v0kFHJ2i0cMim7ld0c2kUK8jxOCUUBTRPqcToVDZwf3T8zaadlmCcnJ/VgT+UuQ/fuieoO0VqPpVa9E6JxkaYT2TRLm48laOqzYrDIcAg4yIXWS6g/NAc1s7pHoiam4CAm5FWwh863RCwHrTTBKJnCqe7MrxYc008gtQrMkgCin6tyYa2HZRzNBqsURKEcuJWR6W5lZsqh0+qDJazH+yshA9E7TZMbJ3W0IaEK3r7PaqeZ8XtEnCJuxczNITTRDQJ2QCf43ZBQJ9pDcvzRZyveaEeif1gDJZm1dmjqeJokl6Y4h3GXcx7LDz8drPN68P/Jhoi/6MB9QUBE8Xsw57VudpxEn3tmRQD45FAmn7i5n0QoBc/w7C4LZvA+r1aUbf4W3HI3DRRk261y7BTyjcp3U7/F5utM7rLMTVMEgHVM/dNyTcm3TT0vc2KongK8IXkbmj3qhy4Q6s+i7hNMe61KFIOSOmhTaSrRuIYCoTH4my2qsxTCmAQeynrblCZ02e6NCW5hWXJ7st03TK2Yw5jshzxqrRnO546Vnhj+FaDIGZWEzZsqShkxqtupZOk5m/wB2PeT5lF+KcaDBy2WRTMynzjs/LdZmPcxUjunO6AdEw8gu9oZWuimfd7lQXtZ5l7OzpjqKf0ndWrcIxVVZssoVlzEuXu6syQ1OSY3lEZhF3NaMFYVmQLNj8qq1dNE/IzRez9ZlWnI5pzQE+7wp78L8QyVjVzZzlOdyt2Css7c6ptr9IQalPysTqvZhmTRnZWjPpHP1Kcanjtm0cNQjUk3e8wCw19eFjeRNfGLcLDz8NmZLU7w8DXRmo6hqE3Js0FwqUwJnQ3gtB1bJp+HJrHwGiAU8z9xX1PpcOCzzk3WYgkeJWf7lZuKFGi5uU6o3MyHBZ1K/gLwjyjgsxAgXbojNOzAKFXFWabkOApuYWqmjn5pusZo+FuVzTOEJginB42nK7UhE0JFUOizd1fkgJ90c2qaNcM01tWMbCtBAL2rDyzWmyLqjQhZc3NB3WZazIoGjdUBMTIKxA/jTWA4HapsyXeJa22ZKcOf3mvZOE2eBeWE1eJzjM3DNswpoOysyJtJqFin32qdUA3FM8BNV3WUrRqGgCHmVs3CzH4UDiZhrCs8iArQfSOc6k7qxHJAVmJkeIpxo7zLDAdFVYN+vYM/VA1LnVCsPo3WtlmV048KJkpmRTBALaQn9XNmmmVaj3YwG5okwntkYUy15LTxQmtk2jk0w9s9ScZwNy+BZDE6NFZZAXHJxHCTEq2bUDTjHSTT9LnnmsNk3Mo6qcVDkmCBwbcOwKP3aOZ2TcjvdHNO/AUzq9VaVcmZpv7rQcQyUy47lf/cUU3Ju/Acryv6jt0w1B8ScekaI9LpyumMGqCOp4G9Tyhm/V1zjOM5i+yEw41K7I6BRyNjMryDNMGGCh4yYTMvarNsIsj37uaU3pEJ+Re6E2RE67oHnEaJx+k7qzmWvFURMGoPZaxyouw435BWNTiOfovEw7po5+6ArOT4XkxcwXtDs21d+aCjNtx0C1anCXCIwlNECUBNNETCeJMCCFZWf0vvnZnsrJ8zuuymttuged2YcmQIs8gjyu2i7za36PFFaDD9KvaOazw9MJ3/E7JY+uzpKxcrnjmTWYRAVq/XpaFo9uRVmT+YVjR1q0ZpnnyTjAFm7JMo54GaayPdt1CxSHOVoPBxtzgX2wrjbUI3M8dzULrNuLnTHlhfNKKK4eFgkpnKXRWlwqt3ZSsy9hR1P3ld1Hjb0+qbVyKd1QhkOEIpw5HRNUypdutBxMEC+1H/tT+t+3ZM0JqjuhxPbAxaIf+Sb0sF0xg1veRhtZyuLSDh2TDIXtIxgtKsWYcT6yiZdaP8A9XWWTwvFZmoK19nJ/hE8jcOathha61RbmAmmW7k9lnlmhR2DT80JJsbEQU1pn8JTOb+4bJvL9HqmGj9SO4TT+TkGYWkmhCbXFOSNHvJon0wg1CjkkUcUxuOxwZu/NCjpqrY4rFrSJKA+lBoWJ4LfyTTKd4dkdArStFZN+ll37q1dPv3mMIRlj7c6+imPcT1LP0QqcRiitDkdBfY+NuZQTRAxFOzAKfB58ys2MjVYC5rWDVPaRZeqDZZTVe0/05rCfk9wVoMR9zn+ae+W7wmuxY46VnOitHHnW8zxu1TjMJjwQXChQbEN4TunGU8wArRsjC5HSeF5gAK1Zka0TzJKJjHFFbChBTTLrbf7ZKcJMq0rH2WXYWtRvNRN5TM/VHmcopG6fUQeMplGpvUdzwOE8pm9tSdrm9A3Kf0Dbhnoi4eE6onIaXN/8kMm7Xs6jfsVP5QrdsDWQv5VkIsbOJm5okgcB6YMKzcRaNjlThOHQlPbhqKoGbP2ZnUUBGFuv5ovn33iCmMfZYfd42ipO8L+hgycO6Leeyw5DdSAWuoicdk8hNOI8qe3J+pTde+qeKOGhQpZYDGFCC2z1jdOdD7I6BWVbPlzVsNDEHuqONow5JvS+KINGIeZWVMTDBonTAf0q1qWtyi+yGJsnqVrSSoxn3Zmie2WHg9pbOBubbneMr2V30bgrQZouJxYtFY8zVpAR6XOFQm6O1Q626/ks67J3VbGpPw7OrsIyVkc4r8BhxNemiBxNf8AVlOG0UVp0vIoUNdPVWIhvwwfom/Z4TRFNUKNH2WMuBogXsy9UypR4AK977MSZN1tl2arTo/38B+Y3WpVhQd/hMHP+IpvS0aJxgJuYWH6LDlKOYubUI63eGz2RKmqgdStG4Sm/W2k9V1kJLSapjpxDNWAkOwQXf7Tc32iZQ2xzT6415AEKEBPA+kGU7J7ga1onPnLlDU/l8seqZDnNs4IKaPpCysTog2LNpbuoJdhbSOye2Q7DLgE/lDXtWbHOo0qyijK42+q/wDqHA/orA1tSJCa76MNpiTacuqIjGBorNuGyx6hFskWPSE1v0tlaZNKIi5pg7Jw6YyQMobqIFm7P8llVPbJw6Xk8ztkMnm9xgYTVWHMXk9Sfu2i0s8011P7VqcwFNG6DhiYCHC1uIlyccLzsjx2Q8SBgjUX2QlyaYIRKc0dS/zssAwRoFY9DYTBp97imZ+qzd8FtXJn8LQJmoF2Hmnfites7BM/c3EU7XDg7BYqt7JlGi4ahd7p5iETyTmUKEXeEbXvbi5Tc1uIopwxS0ymflPcoP63ZLt0tQyYMgqyU10h0VVl0HZWmZIUQbPw5ZprsQxvrGy/AuptoBWdkxsDnwvCfXF72XFytGcrbIYhh7q18+StIikA9wUB12viWIl3vcvyT6ubMgbKr7RuQ/JPdGAJ5kgjNE1Q5a7rwiyyTm85WMD37in5JzQ5oYU5kkDw32Yl0aC5sN2/VTW3ZUq1bIHlQzsyrWzOCarsmgyDpC9VZuBGzlZtpZMFPzQcKkwAPRP6m5hOfpsjZ9Dclio1WvSTrwbt4XO5pWAA4SnGSTxvOatmzRHM32oghyc6XIWMMgVBTG0nVNcfp9+6O5WiOf2JbOh1hqz7kdrmdPqmV/NMEwdeLe+3/hGrzxhRCZ0jcosxvxHIcBKc3mhNMhHO4odR3KDeXuVKIRKf0k63DUIp3QzZPEhRkDCtOg3vFMOq8ueFAbUaj/QavKz4D+h2x4J/JW3K/H4W9lM//D2lfVMkEO6WlWEUc7P0CLZ7eiYcIsrbVAUdZ5EqOR01Yrahsg2rVaWcPbajoKMkt2WpXdWbgDYuPV3TBzOfmSiMnCcKcZwjS+3bhd6cDRUWlZKdzFjKSUzoZmER0toCrbqYFhxMnIo5PtafosOC0A6Uf6VlyjhsBSNVZWeJqBgHdWgluIZoeULuFZCXEDJWbZOJezWhBA1WGPX4DzJkZhNFX2NAj4nGeB7gPdaoBsOaKlOBwhwr2j4ODmBzlTT5bf5DFzKmHAKj7glNz9Vm/wBeNxm5tXJtGBHgByKiIbeV7PQfiKcmnVOM04XGAgrQV7DishyhxiL/AAMKnpKs28uimHOAyTDylMGJ3opqTkgyA8Z/kvJm9y83id+aOpThTtwOHKZyu7oN+jwjM90FYWR917pnUe6dlFzjEnRNPU3IpuTmlW7cOK1FW+ia4YzjoQvfCbGzPMU+IjwImGllV4sWUJqsKPtGNVtWycdQvafrWt8KMj3j8/VOTzDTurXll+SNMba13Q692phzw6KYqFEyrMwTKxQ2yuibSzwdKfk0GXFeG0cznKZIHtLxV6sm0e9szsrIQPdCJUao5gXEpoqLymOBgqwGQ1UYZZ1fmhDveOFVb54xknZlphHidQNCc4B2PRZkPIMqx/m8UAYrEwz3jeVyZRwscnLHNmwnJM6Wk/LWzsIaHcw+FmFp9zSalDJ3AzL1TK/mjwOEGRw+0Z9gmfueC0Et4faKf2hWeu54dYU0lA5FTNF4BuU7rBGV08zdLozcL56ITelvmW1zm5yrajpTshjqU4VY0odNm1ZY3dSOp+ERyG9pmqJk4RxNrsUKT4k7nLbShB9U9pDm45I2VkecPnG4rDiwMqIVmORhZyp8utbOeVo0TTBWKjRlC0amCSLpkt3VlZ4cPnXtNrPuWGHJros2NFPSVaGbRmVAploQ5T4ineENEgL2M0faSiwdVC09kMmyjqeEKK8XtGT56U1uHC9WjpwjROYHOMRBVho7VDNwRZPvFiw+80Vh02R1WHkndMtTgZ2UYQ0aBMo3sFZugMJ5kGfQ4d1h5Q3dPM4X6K0Mm8lME/K7fdq0yuKb1eq6nce4ubVydRnYcLcpunpi6yq5WtGDYJ2ROqZU3DhY6tn23TTFmyKReRNb4qJ1ud0E5KxbBLfErGoY/wAaY4AWM1Potk3qIM4l5cynCr3Zhbm4oj4Yb9HAzN+H6PDvcPqhe7U3WohyxczrSrQiS1luzphHrti6ZUTLvEg4teA7qCFpOL3fX+ajraxMP0FEREs1TnyzHqvE6zHKNEeb3ZdmFGKGP6U584XHJeNoThX3XWVWbG11TWctlZUwnurVxcRkmGJB+StepoNCiOR57p2i95AZqihqFBpaK0cXQNFaVkq0diLJpPGCnD742TeadXJlfzRunrnjtv4TfgFM53ndDIKzo1HO5wg8BXj7lRMuQuAgTc/qZtcMmFWAmzbhnEVZCXSbpq3ZR07/AJLR+qOZPAEPkw4YgmjnpHAfA7JZO8pWOXl2RVi7Fix4mu9EWCSwS39Fau5TZN5l/bSVPKnOwgWjoDygzFhs3y0NQssQLciE20kvtH/4Vi6Pd2GbqLDHvXu6UNzduPge0txWZ3HwToFsbmiKa/LF30g0j5O0ZjbOo+7Gb/VdT/g6plAOENrwNowblGr/APV7j1HRDxN1Qzuw8uHdTRWgmNQoph3VmJqbm9T/ADX7K0EBrk45BWZo91AvGTr6BAdAPM78l/yu6kdT9hfhMK1/5UxxdgbRDpsgJB9Vbj6RrRhLCvZpLHO5scp/I9umFYMLQ7RHymFufgxW+wbhsw7wj4LdPswCBiM/deyr+abzFFHLhdqUNRda0HosU+8m7FnpHD5rrHlsx5nIoGrd0cm3vEO7pomt3gB3T09uIVRW7Sh1u3utDDTGajmBGR7J8e7rACHnWgP+Av8Ald1FHU/Yx+DNVh5o4vX5JrudgOYTnclmfCPln5I/eXqd6p3M+6yEN4zqgIb6I8eeFWuf4WqyoLhqhTFc4xiKaYxDW5lSVZ0ZZk1RqF3vDeXDugcymOxC1fv2XpUqxbA971H8l/yvqUdTxTX4LDzWimqAr8sCmip+TJhYQcdnlW8ZlHX5EiCCth8dmSGUfL2DMOKzFX9z9zbKqbzFHid0OnK+2y7N1WvwLP8AdW//AItvdmEaltzBPOYusiJ2hN6jubsII9E40tdk8RUZJwioRyspTxtRq0GbvyC/5bSrijvdHOT9n+e9ucafFOYQ0/6GzcjV1463boZnh19EwZfwjwWhmYrczpsvMivZ+r8bladJucKPuiamL3ao9UIo6BNoQdE5sDGFbZ2jhl6KIxuFfyRMlubluM0dT87NURz4Tc7II/JTMX+0tw2lPlzoj8RiI+MdAhmD86Vn9wbISm1KPBadXBbCWq1/+1a/AtKNJ23TOqN0zpG1zOo8AE11VlytGp9EHRiKsmRTxFeZE0tNF+jV5LNfhz+AxsifEdvhWMYpNa3FR8ZhlDbjjVN1+xG7pnxD8eydIDslaukx86HVTmZTmp+4GbvVEYjxFRNDc3PsEKAXbBE0CA5e/A2pKdSzbsEU3wuyTjMC8b6rFHvYVm3F7uc+5WgGino0XmLeYHsjU+9/0t3ZLYUHwrUc7B4Ucl3+H3+VCbw2DcOJubvX4jBPFNVg5+NxTc/+gLMT+aZX80VHJG/wLTNBHNyGRv2F/soqWiMZWg2TDGAmpRQQTtkEAcNm4SPzTpwx4l5soTPCzRdsz+a3PxWGVH2Ad075F2Y+M0z89v8ACcYTc/g7x9z83eqb1evAcghmOCzz7lEV7cBNStCoiUU/qd5Amfvd/wAe6CKdon6MzC1YzMnuUwQGMbVN8DDK8rEc1CJThNLxr9nj5nCeUOivxB8pZOxN5az6/CaVr8CVhU/c4ZeqKGYRyFw1COt5VjT+9yPG/wCrZ/lO+temiSghkUazGZQPKNU6uFeRiHiR8LOIXniYgboPMpofkGCXQMh8pGSd8+9ge0djwhuScfsj1+57M/X4NsP/AGtVnQd+9zmxzaXA87rvMj0M3Tsz5Rtda0kHREUeBErUuXcf4TT1OFUfE6t4zCOQ+Me6Pydq3C+NR834sSn5gCBiM/GtbMsOMTQ/e8oqJpwgckbpnSPMVa59htwRKCHgciZDQsMA6BFBsiKpgjEQgMnn/CH9V4/wn6uQ+K4wht9gl8OsYyG//WGp2VjRg8xRuaOUbm78JTTVxchm7c9l5R4UdMPKFqEPCypXmHV+qOZKOp+ZshJQ4mdRAy+yrLRA/wDSeoCmgRR+semZcJzMLSyGbvVOERhkwjm+1K2ZytXlZ/u5y7fNPEFHi9pEPkfNOcQ6xw9PyDswDn/0g7I73OEcwv3TjGIbJ1Xn/CGsVK7p4kYKrZeVgX7ry2f+1aChzK7n7KJhYQ6hn7m2wksbmz1+9DMuyBzucYEppgp3U7/SzANQ31TqPdhyX/piSt7V0Bf+jX91+IyV/wAj1toghp8nYiHPHi+Z3J+zbVuJmIdQ34ooh/0DPU8Qu7p/hDP3bENyn+IFNE1dAanHoZduvLqvMV34jou/2daGGhWZwn5ZzS3nbOfyNm3C3EchxAQCj/0CK1cgnDmPZT1FO8IFAj4QV5nIeRHbNbm8p3A0youdkENDcU+9xiTot2fYgyIKOZ+Ht9oNdiFNfvp//8QAKhABAAICAgICAgIDAQEBAQEAAQARITFBURBhIHEwgZGhQLHB0VDw4fH/2gAIAQEAAT8QPi/4Nk48B+LPm3518R8DLJfg+Fy/wEJX+GfAJUPF/GvjUqVK/wAmofkr8tfCvG5Ur5AqVKlSvIPFnmpUMR+NSvFSv/gMrw/Eh8g/Pz4CEqV8GHwv/Evy/hqB+A/IEqVj8x/nHyr/AAa8nxNfC5cvxf46+L8TzX5+Pxkr43L+D8j4h+U81KhD5n4z5VK/FUqV5rweD5n5Q8L+M8H5D/BqB4Pgf4RKlea8nyP8OvyPyr858X8h8AlfnJcP8E/AfCvFSvmeb8n+EeK8vg+T5PhX/wAKvyh4Iw/Cea8VD4HwPJ+II/gI/gr4E4/CeH8p5CHg8PxqVKlSvifhMPhX+UPiGfxH4jwzj8T8x+A/wA8ng+Z86+FeCPyPAPFxfxXLj8wv4n46/Nx/gFqguIqAl+Dxi7o8r/jHg81KlSvgHzHwPFf4BLh+U/CEPFeCHyI+CH+YfI+JKlfHj8R8BA+R4r5jzhlEqV8TfivNPxr4H+W+U2hD2rCmW3YI+rPD0vNisf4PLAModP8AjHg/AfA+Af5Z+M/AfEh+Bh/8wln4kgQPkSvN+Xyw3rWigTmOG1KfJD5hLkp+B4ryPkfEj8mH+AJQjT2MDPmHfkzWZkCxbCe0Fx2C1c/YQegfaEZb3Xin8x8T50fiv5nk/wAJ8B+I/EanPnEPN/A8n5D8Z+Hj5h8q+IeD4nwr514PJFmQJSRcw7an9sJXk+LcX202wcmIUzxUpgfjrxXipUz+F/MzmqN2hCEZG1mZv+APqWJsNz+Zz/L+sY27kB0eoflPhXyNSvgfJ8nipUMwPjXxr538TwfhPB8w8Gc+Q/IfiPnX4TwSvgLm29fhv5X8KgV4DyErxX48/GvNeSD5CIqA7emF1z01tX4nxP8AEfxDL8IXI2ywDhDMNjCDcK1aGc83GDa7dEywJq4bolXh6Zt591pcZTYfXS7GJ04uwDMYdTQkrV9sJf46gQJRmnxfg/CNPhcM/Cong8JKj8T5PmpXwuPgPwV5Phfi5fgPBj5GPFy5cvweD85K/wAM/AHgJXzDwsHwHwp8hK+FSpXgPFy/NSpUqPmvnXg81+FJX4Xvqw81e7bsIThFDpGEryeHDVD2MPjwPWQ6FdWU7YWXYsoFWFQqtdvEH3HFPvGWNKoit6/lKIPLT1JDnFqrmMC6uetbHjrxUCUynxUqVKlSvJd6x0yAwleD4VKlealSvjcIeTxqDK+B8K+N/Ih8a83L+VfMH4KleTyfmqH4Q/IPFSpXwrzd4+BKly5U1L/FVwPNSvCpXwqV8L8HxqDL81Nea+T5uV8TyoU5bL4v68sq3MxrjUqUg5YRfNwglSQekp2soCrLiPNTTxOdvmqhZB/nsvtjdahoGNKhyV1d/wDZHwCiwtuupexXtITcYEv3NQLnD+yw8EHyfgp+kFOmYvFKQh4PB5qX4JXyqHySB8b+VfhPFfC/FeT5VKlfjPgH4zxUqB+SvhUD/DEJUrzXyPxVK8VKlSpUqV8SVElfkD8deH8rNvYbPpZTEXRKwKDcFxJUnKKxda3d+PcW6NCwdp5glGL20s9x6ntsiIrZJz8r/wAgBC9mA+2WUNWLWAgRVQ3h9kT3Vbrf24ltg94A4zD86/BD5XL8n+bXmvASq/Bfk8VA/Hfg8HxP8kIHwPhUqB+EPkErxXlJXioH+WfgqVK/waifjLWjKwTEmKTuAhUcML4WWXyWJerFVZc5DupdDZdjfHUP6qRohmWyU49yxFQNq2U9HMRnRyrz66gEcwXZMtRC7aacjzUdVqpgzTgzU/7lB3rbl7uGnhdQPJ+Y8n4CH4z/AAqPwklPxPzVXNZZJKIGyPkHh8B+MPjn5H5j5H4Q/IR0WxO9eTwH+blZVRCRgNhjFG0jD8j8L+T4fDFLdYqjbcYpt2LY4NuFnkHCUMXv9JcBhcc4Jaq1Uub9EemJi/1Sj7vQHLzPu+SRiv8AoBFiHj3K/WdLT/rBDIY3P99mBbH6XNRZ5dC7ziMWwPq6h/gEPB8D4nhh5PkeHyH47+R86/IPkbvDD6NoGezUJcPDA8MWUVuiqPL8DwfmHxPxHwD515ryfiqV4CBXir8KleFPw3B814D418C6wGKKytzLvqPmvB8UleKVAmV2yAMGPmpg0/Ay1KLUO4ffgbo3oCA5330lP8tpa3vmLhRm4K4CvUpVsfcfg0HV4CQabK514ezHenHoI/n75lDiZ3gCOPQlqajhOzm4v1L/ALA/ggjV/j7Hsl0v3tai9timK7llQC4D4XLl/gryEPDDyfE8MPB+Aj+aoPwqV5PwEPkH4LVVyvyH4DwfB834PIY+UvKG2OIcPSjZ4PIeT8QPxh8CpUIkCVAgTnyRleMSvNeRXAzfpDPVLfTPk/DXgxKKoiWquV+CvLAvsl803ANW1k7h84VzL9SiDjlMxE1n47nwW0qjhiNKzdLs1BvRmcDfa0xqE0KXl1zUGfaHqVi/bEU2BQCJ7gi8AFg9wJ81t9HvG+OLU23ERTYWrBxq0FwuSNsrAIpERhb/AKieovCVRo6amNxbV93L20xIGKlo4cnBwMBKDsAXc6OTKSoSvzV4DyfGvgw8H+LfyM/lSafI+Bv418T5nwD8V+XIbYyx62KLQfJ3DVSyncou6hVq2/gIw/ASvkESpXwrySoH4D4TVh7y38KlfFISiMWgJ+UqVK/JU18OqDPqYabJjrdfVGUpwJlLgqIDykcEJ8x36XSQurAzh/7hcWCPKZ+0TizaG4TKiw/sTar2ygO2Xnr6HP8Ari9btF/uAIb1qc+4SZecKeadvNO2OYFucQx8Opgr/wBYMAakzm/SPF5C1LHRCiEUbOH6gxSRPZggqnGh0w/ww/Fww8H+MHl8n+GfBPNy4sPB8wvwfE/LwsMcfCEqoC+T5HxCHk+R8KleQ+FQJSU+NeCKlSpUqBKlSpUrykqUw+BKxm0p8qhL+NfjflQdEFQQhu60L+h4A3Af7teJRsfxKrIuv38F1BuuoJqBzcJHKzG7Gw32mMjZRkGP4ldaehy7lVBXA2K6YArVMDeu31DKKzaDKwagf9nPy8//APiTO0IHPP1EdVclYCAxYOe5XvWHCb0ZVQdQBFTgLzBiaqOOow/zePJ/llv534n4GPg8nxPkHushXBZ+N8pdkpOwuXbD4nxPifGvgHkPIfA+dSpXmpUCV868PxpiRQCkNC4PNfiPxY8V8WJ3FjN26DHzgjRldp5Kn0ruWiVMwO/UuqEEYzFRjSza91Kppxg0WXt0j2y93/5e6gUMgsOF+pT6VTO5zcCAVghx3P06Dr3KqWzDszJYH2C/6WYEtGw2xV6B0c39wJIqjhZjgcuKWVuS2lcT34FNv+oOoHpFtY9qL/ccIealSvFfKpX5eGH/ANE/HRK8Hyr4kBJhyOjr4n5yVK8VA/AeQ8h5qV5POfASvgSvjUqVKiSpUqV4V8ElEqHxrxUrwfOvwPljJao9D14I592JChCUkPITRA7vFfxMlUxKqqx/ZAazjpAMYE6IuzQV2rOZeBb+10S7hYU7936jFbPffQ9E3NBvC22WwVrpcicXOQKmV3cKj5OeV+pQFkqLDj/6NP0RarbL/UKCCjg4qVpQo46I4VCujzNIZ6tYfs7A2v1CHWsBmBxqCbPEWH/pK8V/gH4alSpXmvJ5r/4AfM/OfM8nyPkHxPJA+AwfmeTweCHjMJUqM1wWTDWOb+ASvISpXgJSUSvFQPjXxryZUqV8RWPzV8XyypSRukKQoQkP3QDzUVNr5uf6Sk93IMpUqEzD7l7IYaQdNOtQNmmOSo2pYgEJ3sNnl/6ywSkbb/RjcDLcTXr3Bspu3JSnqTSDleJW5a/8lQVKPrDtZeiP3u17YotH74swXAdtlRGQMuLce5jgftZHhJxo39RejiqSWH1/5Y+iOXp2ELap3nH+Xfg8Hi/hX46/LX4D8J+PfgzMeq9EWpR2Q+R5PNfK/F+D4nkxLhvM92iHiCWYHSeCB8qh5PAeKh8agpy14ryHioEqBK8leSvBipUrwT51K+FSpXm5uV4ryfCvNfC4WB2zWXV7BCgr0RvioAE2jdqxSv1ReFSobrXXAw11Ml2RP2X1Fr7TOHkwTK6GGozaAUdI2Ea1z05uZfXr6mJ1dX/SXkKPviuoWBho5wxuao5NhAp9HqCgredSvwKDfD+0DHFXURWPp5lgNQOS8cRBbt6pRUCltUrTNEfY8MvJrwx7Y/R1Ra39liaaebYBMLUxnnwfiuX/AIR8QmpX+fX+NSkGMWEF4hz+M/CQ+NeDMDxUEVJWlTlK0y8EPmEIECV4JXyqVKlQIHgEDz6+VSpXgPAbHYT0R8MRJUAjFMrxUqV4qVKJUSV8dypXyqMs6F8CUBa6IMYS7CqagFDawJ62z+tMwYLRuvZH2JamnljVqWr1lCEXEK8sQk39Ujn3EWOdiMvR54D7NfGlcHNgWoNeANwghtAaFywDfE1Et/YwagKA6JFKhWjjTMNPVDNfvGabSgycBFygUjsJsUuCbtGWObqIorbVJmHJeDr7lgAcwFyHtvGfuNXkmG2Ifrj8dfOvB5qVKlSvwn4K/MfI+ABrcP6Y/g64p0L/ADEKpTav4Q8MABgUq/v40+TwfgDxcvyHipUcqsiQ8U+Tyea8VKh5JUDxXxqVA8lfEECawkEQAsJa2Q7qNhHbwqVKlealeKlSvgkqPuFqwGUlDN9gPD89FxED4pMX9a4D9HILFIzzgGJK/DRczYNkbWeoWziO5qShUfY8e2ZXN1XAbSFuAi49rtYbkqBjuG7G1ytvIoxHwMJ6h4IKHgHnmf3GdeWqMZlpGjKd54ZZ8d0cRqyhokVSobw3/siMhUJtYrZSjcpj9IjrUsQXqnRUpe4cOUF/kQY2exqJS6mIXiet7A+2K6WE6OAha+9EwIWeXJwQ/Kf5VfI/IeL/AAoqRIHg+GYLEIKMEpw+om8K3/LPIcihXiHvi0DX5R+IfGpUIeCBA8UyofCpUqVKlQIEx4plS0PBTKlSpXmpUqEQFyMBxVQ0nCi0HzUSpXiiJAlSpUT8AVBEb1xYtt4/bjxXnKCeMOWyCEVsXxPw46FpziWVaXYXMZyXH1QcpFrJLSENdmBo+zuPudrB4JIMZc2SJYKrNJMZTmALLSgPMbOzA47vdHEsQ0egtBFzc0y0v3PezlOFjtbO+SGQAxfJEKaWlC8wJ5ALaa6RsK5XTEqoAqxsldd7XiKI88SPBEHKcsoVMcCvojNlQe1i/cVOVofqNfzAwqWGCmCqr6Nxy5+xdfnP8A+NEqVKlfkzf+QQ/wAgPnaWkhAUOrfjx+I8hiV4D4UeQ8Er4VCBKgeKlSpUDyVKleAlxdoo+IUQJUqV5ZXipXmpXionxVKiSjwqVKiSj5LYTeY8Lipzq6kIeojqHTB5FdmgTI/PB9qgZhudR7klroEU7sDqyxBV6NFs0Ro25OI5KlrmGIGbyDcUG9QUMpMH6CGX7hXWLOuZUeJ2FhQNGtuVOdObYrk4acwiquZ/uEoMEF8v0yigpDasGDGG/wD2ogt2JfsJdhnXCMHNm67gyBs0e4DEj7jLZdAoYK5g7+vHRqWQKJCFmkYLyRY9CkqAta6p+B5PzB+U+dSvwVBcE2SiV8Dy/KpX4q+Vflv4n5CDG8+S5YkiGoh2fDpSq4NRVKeDT8B+KqhAlQleAuVAhFQitXdBFCjxAgSpUDwqEqEEakgIUJy8m4qg0CUSpUrwr4gqVKleEleKlSvFeFRPLK+D8EmvixmfhjPpgSd6xi/olhJTVTyy0Y9/O5Vifs29lxmXAuGMWwZuACxvBL+8z1fcSDKqR1FQbM7Z+05AsKpiyAo6k8MarjBxC+WV3c15sLmbZ5eg4CG6PQYQMJc8pu5TgouHUygKjp/qNGgLZLyxx1rucEt4OlierzEfqdViiHWOBwwYSJafWFgAkwONjBkXgPb1LX9QXL4/UpUcwQc2ULPVx5wMtuyUC3YYGLLOj2r/AIFfhPJ8DwfM81D4EAIzb6uXPtVIAdQ8H5T5B+C/kfA+Z4P8E+BHpWgIhCHgJUryeKgSoHwIECV4u4322KcKRKLKtlfAPAgJUCBGJIKwJQ8kX0vasrwqV5alpUqV8JXgkqVK+dRJozLUV3D892hv8DsbSu2UKGXQ2bE+KsNLbgcLKUG6dHpjrOrfYo9Nm0RvVYFtvLO7Vk7Ll4Z4OoYDELoijiv4Av1Ho0uuZkJRZYaKc/qIJabfNsFkFRkhKGIFlsaCAFZjuy05ImyH+411BEXJxIiCaQxTz+o5RDTJKhFua1Qcdw12Q4cyrUXNoYQyYDcPGjMcL/QS1sulm0zgZ4K2ShLsuyGWC0hpxcRT/eKzHYTAtmyF4rDkd0EXWhfKC0wmyA+ea0k/YwDGRWFagCkr7j8B8D/BqVDwfhI+CVK85iAWwyzuY/mqV8T8D8z/AAmAdEFXOXt+AeePwn4g823PKoQh4PFpXwHg8BcqBAgQJUqVAgQPAipUqB5B4KlQ82o4jmE7mnZ/lKZXipUqV4VElSvDFealSpUSJVpXxWPBS6iAlx0q/jx/9+OLi9JaMBogLbORZGlpNfO6hRXMqGDmWetTVI2TWoftYBGtgexDPINZxHwDEPbHK/guRmPQatD3C752wMFS1Iu5uPLOYuiL8RgOUx4lVZoDNS/uMdLUaowq2myBYkBN3hS1gcbEIRzNGUL5iQsW7IQm+p40TfbEOjghWiCuA7h2kL1yEyC74Ibmcm2gclRJQD5uFIjDkZQqlbOff8ahpstMOyHrCSmPSMEq1hAFlFwVEAAflMx8B+M/wTxcv5Hgh8lBa1vAWvk/IfK/zkPyURYr33eB8T51A8HhzOVRuGuZTsleAgQ8BK+BAhgrggdlkA1KlSoEqBCBKlvgeI8JFfAVKlRiHELjmrcr1KfkCpXhUqJKlSpXhUrxTxUrxXwu7EnaEWqTbCeCKU20ckc4uzL7QpCKAAesqPfzniF/7LA9sIAQOkviaQRbM0azL/7ZhOQo5eH9CIIXnMFDuHuVqgQO6jK2AMQoZ7Al4HiYSNoN7w0S7d2d1HilRn1KaXA319wTmweDAsnAmVKH2TGhgmnk4JvZTtV2hGas7cJm0Nmg5gql+yHEsdYyqZJiWNwXNOnn5D/kyr3lbublKe5zORgwOfSFXOWLuqiXNA0GRfymqcUseGSU7wfiIeMfA814z86j8iEPhUTw2QRSFTs/IeT4gsos5qz858CcfM8HyPB4qB8Dwe4h2FCRm79ojOLYDzUCBK8VAggQIQWghaEBCCShstjAoy/hYQeURY9AtjFI9MT6/AV8A+NipUfISJKlSonio9hVASg+N2cx/L6RifCowniz69gIkyDlaMoj8YKgUfbAyrC0R3GwqOM5RUr+lT6QIFaJgjmGzmfxMNhBLSW5gPpERgVan+hyxP8Ai+oFbdcDZOo4zLy7hYrmJL1w6o9QYtg54OyNdRstmQyp2sZwOCVg6ZJTfUdy8aVQsNgbwFFg4xhuMgbeq9kAvX045bhX2fTcBKABbCjyxdJ0A5fqDILOvCCZmlbXqWskrvmwS1bTlbV+CeWUpph5LhnmqWUFK8CIy7FJgtZD2SgJ+kKT+wufB+N3FJZHtgAeWDyHwCVK+Nea/CfkPifE/Azwf9xmvdT26ehxcPlcNDINxq9cfgn4iHxC4KYIifE/ASvJ8CBjxvxcPAQIECEJR4CBAgQQgIEIPFJYEBpGp7nMrfCviSQSSirZc0EuXS1ZU9mB+L5sJ8Ang+JJUrwCHSYtwAclSrfPxUryxg+7aHacSxeVCqjuUJu0RY3F9P2cKixbIbJgk1HGC5BPUEYc0KSpDXJeYCB8TDpCewm3LkmMfRGRyxEVCkaRgWUPutBRG3avMZtnt0sJEFy6OIu1tYruWm7Qq4Em866mGuUuRyv2ktR9QM1sxIKH9owtpUMMxCBHC2mUaU0yt4qZ+U9vINoqfKQdl0lg3KgWG65dUFL7zcKyXo2RzMVhol08uvPiHe5iNsObi8u+SRmEobCKF3GI6lXeSKvWmX1LHYiHg/xr8HyqH/wa/BUPzjMM3RVnzPlTdmCodpSW6iuvwuvAebgSvgHglQ8kCEIQIHgPAg8QIIQQQSOE0wkkgk8kgIdEOHxcfQwMUQnalbKfFafO5l+AMMVKleE5VWJLWwqi11XyVKh7fcTg7YnhayqAloM0syDK+vtVYSuzj2iRMpCfSOqkTTV7JxTsRW8k5h0wxQLWuqMXtfWRM5PYvX0gmpp/LPt3wvaVz3KvhOmEu9RngjmeTRA1ZZtjRHjBqBchx7TbBkwJxFJXbANQFoFZFLiN0FjUawFmTe4Ztkp1mY4x08ptjLLQ5pSYpTbFTFAPdIhTo0ZzFu+0OyUsUkXAKOJp0lWDkl42X6ZpaF4pjD1gJmdkDGzvNClgKGG3QIvN35q/HXkh+Q/DUqVA838H4lQoUvyg+FfA+CUsE8QeEcFmAKfAPKCVYLT2fBjTmBMzyr8nx15GEqB5PAQlQPgQIHhFRlgi2tkIqoQzKgQPAEDwkHiniEHgkkHgq210V5JiMWV4QfEIbbK/04nuU19eU5p3qChZa2L8TsvmMMVKiSpXhJUrw6mw4KYTjhymYJ7l0TFBC/BlLB0/6iQ49HK8iI9t9OqNZFlnd6BeEA082Z3RfUQERl7fsqJNIEi/dyWJarKt7gbIlxWWU7Uqc23VNuzODBpuH1R2OVt+oii1WYqAEDBUAYqCxcz0qGMPtmku6dQSIpsTkgMzFt5kstrazyyoctIupey6NUkQNaSxsQFP3CPhmcSv85EeRWOT+PhgCBRZa2z2mC22AJzloivBJY/LGEmCRMQULUCVdC4bn/wPFealSvFeK+FSpXipUqVKlQPFeNH46/Ae1TCubb34vwMsly/Fy4f/AASblBbtqr8iY7bfPgF3L8HyMLjayn12qK4wPAQ814CC1QhXRLq4lhISoQlQKlT9lMR/ba7qqIEqCiBfgICHgkkHwonmBJJB+Kx2H4lfNYX4ssK8GaleCeF2LJUSJ4qZNAJFDOXMsy/+jmd1E26SszFtP9ZpI3UVKcECPfC2uHAPFj4eAg6CI35PFi0qMd8UCuYs1jI54P0RtI4ThmD9VJpl6DYxtTYIPdGBBiqgIiH+0Dw+0EwcYaCIgFVC5l1K7lSpWBjNRwEwaYz9QCsrX2x6gLV3NTcYat+5gRH0ZzLo9zNoCN245aDLkrUU3dEX5bAuQbR/SXxHKxmy6yLHjUyX1whC0LbYxmEOoZTIkID1MJj0ezRGvb6Q8B8yH4CXK8Hxo8EIfhqUSvw4leafB+Gx+gDDXKfhEi00c/iEhaavyiTTFXf+LWrUXcSA3UAWNRPiX4EDweTw6LG3pmQdz1GbYHgIECVCChBA+AHhEHmtnyRUkkk8FVqwIyC6fFV8L4yXyGVx8aI/AlXPS7PDHzGGWK8CBowadsW0pQ1JFuLNL6YkGlaGpfVMTdeCdbLvK26YIIl5qI3Nv9a5IbtsZWmHf4dVdYlJ+6BdQLdm/wBQgH2crcFCAlmvAnosxpiiBN9R61NEYhUJiGN3zA+8vUYQbRWV3UmYKtQ8VG+7pnjzXcAWzJXIxZyb/MeAOXRA9PauY2wC1rkymG5wqNEt9VR+8EUp1a+sQOadB3MgH0OqlUV5Tgg2ib2XxUxhV/Nj40Nzvl/My9Y/uYNEsZs1D3HhYWUlhG1NAWqrU6WKswT8L7wYEPOWDkMIeD4B5Pxn4TzXEM0+Uszw+DzbLPi/mB0ij4jHoDqqBERHgr4llOQhNZ/MCtAr/iqis+TfqX4uCpi91UU7W2DwX4PkEyE2U+KlQIEICGTaqgTZp7ELCkp8g8M81PwgPYIUp08BP77TxvLx64mGkxEww6xL+D8BfE/BarX7BhhpgKjF8oZgyy65ISw+DI+AF6AvRcHWkyUj4GWKhAmMa+rgGItazK+QvdRsy1tLN68ZXotV6JUuX1O44ILFkIseB/A1CLFofQBGHNrJ9BJFZPZTKh+49HWc6LlG4aA/SUefYyXlQPohnMyBr6hH5PtOB80pYeUjFaM4g5PIYgKsc+0Vjho2GZko2HkhsKltnqWAbTq+JYtcKwuYgCjLe4IAAo9r9xhL6tA0Sr97eSbi1yNfUZSJIaLgljKqtzHY4OXUwu8qE2ZLedT+iLQrWnmBdA1iyL7rXjG4oWp2x9DVeki/1CK6zdHoMETXL0A2wsVevocAQeFreL7fAvxPJ+Q+Z8SNeJUi7x26/M+FfAF0L8SVK81qnOglW9e/kKafw18qlfIEwNJFVV+B+cPGm1IoP34DwEHg8F2ENaoBYBQpp8Kqbrar4Qatjd88QgeAlTZzF8hAgTaJlMcUe8q4qVuKdJK8BFn5VV7riD3DycEEu2Yep7nCEEknwtli4pOCVp+9Ro0kfXwZYWqmx2M0ZQRVF2xljI52n1ApU+LKZG2Gxi2IK6/Cy+CoFAbWiG3oj3OKMfMMoLI+8OZr6Igd+JjCM0QtK8aj0P2OBjy+dHA4lyXQVj1UpSCsf7DGMGqsqER0Yz9BDrxi0IP1Cr/6sttKXMoSwLIYTWvrxyxAcB/QQQUXcs1CAdyCmIcWK89l3iWtYEYl2L0IHrKT2y5WED0R2DKiouF7cmpn8i0dygqzcVpgiO28GWYnudZghlwFb6kzWjtaPRcUFFHtcq1hCrytioDrDBV/czyVqA9ln7//AAJmm1YulDBfEpBYxDKUsWUIosfqjL7bf1FM04X2nNHBO9kllwigOD514r415qVKlSpUD5nwJb8q/E22iK+vJ4Pi5c7ifkOI73BD4VozRk/xKh8DY5bZTt+J4PGhIPaMCn5kJXghSBUSwSAzGGFAHAQgQIHgSobEoX5FhU8ySHgYEpINx6qtEaqsIF8uW4mIEWFel94iltKPPNDDlYAIdNB4XMftDhPDcATxVjUUYJzYW/EkgivmYoiwytQAIBIftAER8DDCiAZVjDD4jSMMMtLLLomso6uYkrwEd1XQTEylZ0RAuKXT1YRatQNrKfuFTSPg7333S+C/Bje5CqhXznKwgNsXw3xM4Ui8NQKD6GxXA8Tt9h/FA1mTTg4IyBwKhOPKtDwLmPRIOYiUWuol3BtgKxJlsN3u5k9ikS1ijZQ9iMfoSrlbQuYm3PIwiaEy2qYNBeQCMAEXbkDCluuAwY+4eTHsil1oN9jNGlbHGot7MRQE7at7lgv1ZrplPi1Z9sosEdCNfsx8Clv3AHsBhO4ixQVNhqUY2wAaaDBCDLKpf9zmob269yrcz481e1hwSGUAQ6rQPF/458wlfMfhf4qlQ/EfAIqmw8jF/DXwoBZxDTi9/t+Ambz7Lh1Xd+cnJeVfkPJLaAI2S0MxCHioeDyHmpUJVwQIQQnsMiiV/dsqEBcDwHgHirGsVM3lQLD/AE42k+v74y9eMNUyv2hDEhm6Q9J9I0NQjxWQ7Kja9Q8f1n1j6Rz1H08aVFzWI9dKmc6b5n0RS0FmdB9kfAyyy+CwAZWYnHaGiCCpgrHtNfMOxjI0sNoTp6ohHQUkyxutLW9Rfa6IAbVIBzcWLoVR3bKvsgjREXZLhjVAB9jLLYWDTuZR3SmMGiwQHpEXNqqFtYmrEDb5XtlPM4FQbHjSiWSOX7Opxqd+htg2xFNWGLItQOrJY748pLEAcKwIylEMBi4ZB9cXh/MfpGJ6I93ycit+pRijFpQir+sN4Z+2INMoZuXCgUDREIENLt5hG0bJiCWEpMiGYgHIgtrCcrpWWrbZKHX3FlWPo3U4H9iOKJkEYKUoYb6gyaAMYsWK3s2bTiVYwAIP8Zspp+2pkovMeGwt8XhELI5blcr7YGfim69bYblWV3fH6K/Gfjr5nk8VKlfNKsdRVVdv4Sbt6/Wf9K+IN1cyit+TqFVl134PieCOhUbHo+Qb52Hf78DTLb66+oZbl/G4eSVrhex/DsPiRAQmPHjV3YeD4Hk8VAh4DwEEqECBBDwCTxXaIy1DY+s7eUwtfg680xQh79R1ZmOndx5fUZUuvskogG7zs2PvBJUisUEAsEIuhwLVVuMMMsMvgvrH1jCfEMPItNEaACABkcZfiFEpYa/zBXI2JKwL+aUwiM2NPhmbVISzywrHqVgQqoLgbq2UIZQ6iAryklAXUKkE/fDU1Wab5giXilHrLbzAPqVtRVRRM1NRHAi7lAmiI5ReWQW0QE4eJel5X5ERRn5aQFsFKXi7qaPm/YmRE1ci7hSgvrEuCooqtaFs9woMSuA5IWW7dwC2h4a4GGJcvk9sDm1soHJKSso25Y5uoKIYTdxbIQo43S0lHpL7WbIwW1C82w5ENCcvslqEcrGmAhat2BcoW6hF3EdBxCxmzoDLKTNH0cEBewjJfMovQrh5QKG4LuB3kOgjrSwHMyIDVXQYI+40+jlhGIdv5IBNWzBCMDd2rf8AnMSo5sul5l/oh/jV+A+RT4p/FT5rw+EAORuI6yvzEqw7CUMooAt0eFT8Aa2Q9L5/GeK8VA+FHgEtPReiXD8Csxz8rEvFJo4fIfAMeDwQGVCKzMDxylonLRsPMgQgeAQgINLC5UECB4BNI5bmoh4Gb+142RlVs3RLH5Q8kU5NBKLxaTxAwloQykJPEw+LCwyQYYRihan18GGGGWX0j6Rh8OnJhl9RK50DlliWXfhZfFuXegWx6Z8CnwK+juI5JaHj6lVVBO2KgrBpGxIlb/auZ+lZSyHi6rVRE60OWesBK1rT9QYlpqtqBKyekLWoLPkPwS2dB1Ii3XhRtcE7tGgTfRqh/T6jQmWnMJl7yothx4YAl+QP5EPqjIe2WAMJ0m0SjFGFcKJ0rLpDskCnVcAOqXTVwlBGm9J0QCg22wSYu2kRQZMWWEvaySF13UREG7D1Ud1VGXcC/wAjyuWkvKAx4gETqbVjlhJANUweiIE1UDGdF7Q9O/t2n9ssU6gKYI6m1WsqrGVxu7CNNrdPcJhqa5Lo6oDWBGwJ82/QiHhM18QceDAvR/MyKtBVjusVLWCObzSwIH+GQPwnxNQx8KlR2gSCqMy18Aux/IZX43AA6+B5PkkW30HJ9fL3vc9VxXir5ub1caJscHivhXk/CNRe6RGJIX9Hg8EYH4VMCBCVBAqECCB4Vp9El0vRpuvq8QIHwjd9VRD+oOZUHjxFMKMdW+D1xJZ4PTPXHVzayIaRLnrjakHqSugQlm3hoHjSPnERgjlqN4+Fhll9PBHg+Zqi4+G+AaMqHFKGIv4aPClzbJW2Y+yEmcv8uWZISahUsuWOLhcoTSm2DmpVOr35YOpnILjXrYP4ob4kubRCslK1BouMTBAHIEWefoyj23df/U0FLicIeI3q5Ik6i5R/ao3Z29RrGlq9c2v43GqLUvLEO95KYJOMq9iMpa3dsMFylMrZdzqAZHcWWKQlMXk9ZYU4LrqVjUabI/sKkLqXFmlLdGI6vOAN1AObgPbcIoW3O7i3DUn1F2kWoDzLI2H/AHNzOdcDAXBP5Q1UfQHv+pjKMTiGlQxdsOFQNKMWj056jeIXJTcHZAU9x+T8jWbawDYOyPRpdRbjlliCqe18sUNCWsFBUCTgZiLn+2XvFMyK3EPx1KlSvNSvhcFeQRgfNfEfBK8MGX5XyfK2q48A9jEpT4ILsG/J4Dg8sGEQOhy4+FTKVFpLaq2vwEPF/GvAJXwuKjmR011sRgQK8H4AOZmyn2w8HkQarLVlbidQcjCENpoOmwgeCCEDytfn284r+Cplx6+FzO7jQLHgejAPInpYK0DmOZyxzIhV5WI+O/VEFQ3GGHxMcAQlsNI+I+W0ERJQbi1QKVKJ6JfXNUSuCaSmJWVZXKxH3JyNFwiUavDNvsNMENVCfBSlem5QtT2OjrxzRpDYmhjuLyyxF5KSO7MMxurWULLJ2NQjlaim+yEWA1DjggRaZqXBNTp0XoWUjluENb0cu/4juFGRJJTnff7jhBeFsCPyAsA3Lw3Siyn2kPlbg+Bghy5pqFLXcu4jkVnIi31K0CgrG/YcxG7ZlUWct4PXLKlv9vEBGUXq6i0+tVr+ZWBKHJGMXK0w0aNsywmNsjzIGCkuVxMklHX0QHRa1UJi325IvcM33L7ahrEVQ+UR2FVL0l5IASo3OA6JYtlEDe9v1DBBy1kh/wCy2gUr1vLGgYbyfAQPFfgv4XD4EKNx1PFfhuXL/ATBqzBePg+TwkKhyXVyyCK23Tq5Uswrnfj71M7PrfgUbHzSEDQOOJarZc5va4WQQWXe3DH5VDVABVEpF4bZ9MJf4lNt1opj5Hgh5JXg81CEPAS1ERcq/ixQ1BcLrwEcb40CeyCBAgQIHkGfN+pIa5dqyWPgYQytS7/44Y4pLkOSZk5h3Kku8lHHj9fixr8VZz1AQNopcWeJjFcwHJ7jurhmCL9a5XAHvMvoTeYZuMRg5uNLYECYri8mocV4yHmTqKcuhE28y0pRgMA8Hw28jAq0GAySAycY/CmteN8bmB6Z0QvyN2IPVHgYybXZMTBYO6eCCSaAGYysRtyj8wcBCc5OwsVMrUnMEVGT9xg4BkxQaObmkKZ/1XLDUPaV06e4xaV4R2MEZFD2jcDG1IcCtm5Vz63l3X8RAfiFyvEVy5Xoa3mFmYA3gptg8wObh/seIIRutOxf+sZKEtqOA9S0JLu2r/cySFvG45oELVfR+4sIQrkegit0aJGabsj0O4R+dY1czqggN13DL8ljdQ1mU6sxLCoibWJiRzPSEE1z6IsNkI5r/Y3FQrTwiZajIRjMrB2Zf085bYtCHfKL4XtjAqq08EUlgHddkdluVe3CZsxbAZL/ANSmx0vSZ7gDeQnMPhcvw/Knwr41K/HmOUVKlSvGPv4qJSj8ETcuUjHFtV8VuMJc2SotPcEM7RzVeKd/CvJGYdsQlFgPffkktJLCBL8FTL6pcrnvzq6LRFus/AlxfMoVy6v6+LYI49oQUnYcPlsmwk3XhfieAlfAPlUPFQJUd3gwH6hcuCthAQIEFNum4D6Sog9iqAZYnDuGnzN7vylZLZKrV5fCw+2McDEDMw4vgraECBQQi7EhnojICzEVhdrDMD6IaYSEIExdOSFt3NlnZeEm2ygqMMyxT7EquCmhLSsM2fTHdSoxweriuoYDdITbcp0N+4ZWXTL5a+yZjXpHCJ7IZ3fsCZ4p940aR4khSOx/bkPBm2VtIsCKmVqPk4ear5QVUnqnEhG4YBd1aYhhZKIQ+gKQBNWkYvFW9RuXaXVXN4sLYgUDXsSgh7q7h6O4QwpY12BZItqF2crAZ7BC7OcYm21RSPgquFo+jgcyl6nBMFwYiPSp42oV9LfhJNzaOjDbFFB0FGIUEFTJ+jLND9Es2yrOl4+4rYxEGB6lXBhyqC0Rr23yivcoLt4ICk9aV+4QX2E4/iD7YyGoQWqopgCtOglaME/ZyxbNmasKyrUgoVr0SwhdwMJmAU8op/8Ax1WaqaBKrQgW18mY8YCjcE4T+alrAtSL9keJyYALr2FzU924E7IAQgCiUz8z085leSX8rmfFeCHwD8LC63KjQSZ0Igc58Vi/wIJjXQVQQSYPJ6N0t+WOUMmviqo6XXiz+m8tI2/ghOhjSUvAwjO1cuhtjuKahEAI00fFEFEvwAF0X4s/AHwqVKh4PNBflqSD8B4JXgJUCiBAgeACL5daeaKhGsLn17jKQUrH5mCnIXbiY8FYzzjkWeZsKVuAB1MBa3GBGzX1BQPNqHn5G5xhKO8YKvEuBFqzAqvoh6EHfLHWqL3MzZCDGTacq7g1dt+opTeAEmYR7I4he0y7KUxUMr2iH2J1Eag6SNUg4GMxXbBhYvUeF50Y5ozzA6/Twljd+i4ibD78WQjDFpXC57FQUWZt59I20ZIAYAsKXFGyoVPwCVUP7cJxK2fJ7BzE+VtF2MMAN7Snb++yoS3YcsvvhDZRP2rKRGAQf3y7YFHKJk+oKFXCWMNQ4ZS6Dm07jWTLuFlpAwwR3A5O/wC2KeW07xf6cil0MJWg9S6/F9foifL6MowKeo5dXwBg8jBp8zc/HcXPsmb7NOUXH2Y+vqJDXZpyysNl6YuceVlfazOUop0wTqSnBcSyoYuXjubC23FLkMi3j3MGcVGIjX6FAcRBt1UwAARXAkuWAYQ2xDpazFi//wCuxinAxBVglVxcrynA3IyQpRbRattP0SjUNQXpdfR+1QjeCNM6ETmvuTy+K+dxgLFHyqH4KJR4qV4xxVKRTFxabvY54v40u2fXwW3BXgh1aHsxJGhfCVHxUBdPnFe/gpRRnnyRQpoQQDxpa8Viy7V+/CU7AuWFlm9UZiLAibGJYIppqzxyAUSnxe5eKNfUPfjuri5llRRbo/Gfgrvf2hEpRMkIeDweCceBItUSfoZYKvpvIQgQIECEBA8FQ8N/jSWzgGKhIHfRGgh0G4VjU5mZ7p3Ll06iVJjYgaLdSzg0BzgZSjIuS5Ehy4qb5mAmhBkmmDI1fpESDJZuiOLewd03ISvwGeYTBsRqZWi0rcVYWdzNMNeIKyUgalD2VBiezIjaU34gHC4gl1zLcMnmNFtYQXhA2sIXFyh2Bi3Bvfm/hzFk0OkjrZPCIwIngQhKlsNQRufAGvNy4EUIxUYrAOOh747jqIqSmV9AYRSVCVcIeJRBbqWeqhwRyOY8L9sB6CupgOtpSJ4ucn5wwBpjwz6uxlmQOCEJybUty9ETNRtv588ZGsxnRHqLeJwpVy2AF9f4jiwNUN+ok4c5x7icojB/iPnvnpXRBtwTMWvcvFb1eVYXvyMa8xzThIRF2u88dxOvHMKXbKbGLegg1iwXR6mcclOuUOlXI09wr1taCEp2LjuO2zf/AKESzgtbpU2khzBzShjLm0uqkaC6liVVQeYOH0sOX0Q10X+2gHRwEYlEUvDermPCXs099ShGQBkPNQBUiUHOGyND4qlhXubZlvuLC68l8xTcjldI8Qfgrx+8IkRLycl1KmSW+D5Abtr4W/DPhV2r+A96jD4CnxtcyufmEAtdEcM2B8FxxpmXwurJEiJKrV8C1VvgKrFGA3AyJGYo7pzKgCNvh2aIJWzVOzzW/aBbUqTVpps+Ck1kqjxSObvK4jFai/v5FvQR2W7+XsPH5LVV2w8B4PFfAEISoECCBAgjccZwJVt6gkPlHSaEXkZ6ZXCFBb77mUvGA90EuOccSgYtqc1LE0mYAsbbm45VJg6qIgLz1S44/ZlMVOwquViFRsJZmfY0o5EA0nJp/wBiAbO5bioVaqf+wLDQfo8wMS2wXUcDjJ0hesOTMzWB4hGG8maTifUW4Ai5qGRTx6mXM+8cILyuYO7cS7qFCiVNHMaU8uYxgYbmi4jSDacRBbyhWag2wM2zBu4kWx0w/nvjRS7dRZSz0MabXSABw5qMsNtImNC+wRkiazaQg0vOkdcm7LFVC1CEuofXiPmrinUZPcWIrwnzhGJX9sSwQha804IXHQcQj3SW1dwLucHcSne5dYhgA2OYWW154uYvCHiMr81Hrt9mZx0vm2OWerYhFBgDLcxdDvA8vuKGi579DMKx5PAbY1KagKq2mAHCGukxAZsw0gQbQ3PB/aNXkUbRlQZYU+kwt5uIuBm6neq3mDZwcZ1mJXIrLTqcN5XGAOr0X4x5kwBG5YwraMqQwe97GUmVwa6OgRGwbDErEgA2vtKJTAbr6mbpzq+zNGX1DssQLVGyZY4bh9hNDQckzrqsQpaBbyvoJjSEi1HEPjLps+/uNBaZpMNsoJtfyAhG61jL9+vkHgf4KqlWvj2w5eSZ3Kqdd/K0WFLbfKw8VqKoHRrwealtVx4anxtPPlKDmavxZoXfl/qzuBXilEAVVrLP0qKVJtYKNjkj8tpYFsRI7PGF75BSf7GmIBFDqCVFbqYRAC3TiLZdQOYylVrmE34Yk0uA2+CV2ql+HfBQqi3tj7OYQxyh5+JtUSxOJvxulrH4ihdpj8T4HgIECHgIHggeA8JWbQFqyvMhSUh4tbeSGq88K8F3wws8SJZSbYQi3vohRelMSgQGxUs2ILVJYZaCh6EV/nDixMBo2QW3esGpbxwqpxMWSoO4qoBYW3cAzMFjZlxfNa8sTwxwGU1vrVxxKSwt2qXYcsDSxSAuFziNmGSKWE9gwQjUCuyQOVZFN6w1d2yxN4+iYMicrBMbdcMYlKzkNyx20K9kAIc6gV29CaglWXayi9kAH/JuVwH6eITt+gIVtfIi1sji1c5ODmXpHmoUiVUWluJWnNS7tmVF36jZzy8yzlnYYse7+soSvyR7VV7jLXLDTUC12KqoEwFWI2xOChRCGIXZKdCNd0danOTANtSOW4i2YVeWUCFbjQGJRKtApn6jyvCWlKA4LswjWONKFWB4HNajCN5zgpVRyu4+iZW+WUVGtpVjMl2FlFhFsWXVjo2TbMshywGVgsuu79/+0dV4OWxfNvsK8Rl7GcCxuXtmxhjFcG+xL5bx2oh5qcnlekuausixTUe8JYnJ1EL0BzkXcIuXZWsRY+G05miKnQeWUDHnWMwVGbnh/aWJVtxLltFzR/EwcZGTDj385iFwdIO4p0LS4empcQVirvOL9S1W/G0Lol5BA+gHbLZq1g2cVeiozHna2aWJdQYri4NoAfszocunqgvN08IJ8HHgJX+BSfgSEU0IalSnLiOkTQRFU+BhKpD4IhRBXBefAtLGuTyjWAANU+B8LQS1weVXlxBSxNwPLBarH4HjHsOabfKSXdPF2rwBQPlFXLMQFaNeLgFmUJE7Eyr4WKhSqrPAFi0mvfkKu8BAVbe/kfCvjR3FllwPBKhUIA9C4MKvywCEDyMwa1ZSDKgQgcCU1q1lVFqXECFliDw1CCZwwg8w+XFowo0rByjLBmryn0bjmYiKUle8wUip52dQ8HQLwOYGTqlGZUQHdohpFEpyXEOoFiYzyw9R2y8yuS1Q0p91AXGvTHZC1AVCBJXMzQ5YQ3LbjS25D19xxL25RkildWwKL4Y73KKeGVqDAmPVkT6YDfZGqNNYqJw1dFz6jcTDVqHMKyPpksvQFbImFpO1RW1lajFQzn9XicdrQticca+0rp2Ms9OIXiVTIOHUpPTuFaM0u4a1YcLuZoA6j11cspTwi1CjFk244mqqXLKssDspAUuiHBB5TcfEGQMQC+kEfmB4qWTJNVC+iYBT+4xWvaJz5XkxBy37mIVRQc4I/U52+IRrEX7QKF2XghrQxlLCtPLhjtloEdMvldixc/qNmAZ1A+43PW4n1cxE48+huQig3i+x3mZcAu4npCEFuly9ECi05GqO8Y4LwrZMBRo8PuRpgdfZ63UXJar1n1KoNXgXohlZsto+4JhVa1JBIXFEqF6gpSRGcdTIXJ0zdEWBZ7P3F8tgZ4x3CVjibZ1ABiXWWEW4kyLl3A2JwJWiBL2+kh9zXscZHEW2HA4CDKcluMeofnEXFncIYTe8eiWdLQuAowg6HuAGOSmvXpE8fZRUvKNyhigAqxwVFtVxIr3L81l9o0o7mbTAs4eZYW13fcuDQWr1LIv1r+03ceAGCOKTNhbfB/kYrVo+3wyWM6TiAkguTyS2qiQUiaSZgTEQFBs7+GPYr9nivFF28nEYRV23XgImOKd5jjIVtTJXXgSqPtGNpteYr9WrxAHbXgyXfTy4y7aeCAUsHTCIAXAceCy9bCD3Fg2DZbA9+FoS0aPg4VoaBrPwVsATMgzPR215xT5AU6krkRdcpB+vgSi/MDb4EfK4tQot8HioHggQISoRlxMbW8zik2PE2YQRID7wEZuVvYWWMsFpCB4A8KVqN4LfHaMRke5Uo67JFn0jnorsDc2L6ZpVsfdZWWH4xYbWm4pctGNvuo8egqKae49EL67CnNoOKh3UNDkEGNE2KgfUIazjWs9TGiFPFHdQKgTDUnGIPZQKELxWuADBmCvvbEICchlg0njhYL3g0CUeIDhchCmKqahWz1LYUvrdKZ7pSpFhNgFFS2FLXYQEsCvZFqUrwI1qLYTuCDKUIWDZ4mxrx7uoPQgOK2u0ZKJzAAoHsmlwFBCraJmiReBnawYKCO2spAsjQWaPgGRiynCA1p0QVJjF9ox1b36TEt6Jia4GhmN/QgAYOUYilLknaFU23GwMOyEXNGohXKZRL9ouZP8AwnF6jlKlDlR7gnwfed9R2RRQNPpJpxvdFDJYojIperQ/SBjW2vL3F5W8DgOiHZUm/wC1wBeHLH2oXUguwQ6qAWB3yCLlAiruWmN7i8Agsjg+4qMqv2nWttcW3nVzBZd03UqOlTvLY3jiWdpoNbim9q7TwS6MSUzy1Gyg3aWulX/ZjIo0u/eciFAW7K5jukrWRBiysvtLgVyOnF0PuPkAbWAG1hWDj688XUcVJ6iBV4/84dn/AHnawv8Acuo6EDISo6Xv1Bwxw82gmtKzfMDs5M1owZUoAaYSvcBrZxwGltka3WKRulP+pY/xQpD4K1cPNjg7gCEAVRFDEEyMxBTTk4951wNflV8KleKaH35GhMZgXDDLUIejwxhRMrt38KXm08AKLng8FWtz4FGzw5kKd+KlF734a4Z+LiPqWtymWHAw8mWx9eFKWjGEbryLVZ4HSlA4HuLeAoFd+GuJXZn+ql6nGurCBTeQoq9QsLogU2eacsI2OrXyotldvnka7Ff1AhEVcPHoxzAqNFuPkdjkBmmrh8K8hcRQqipIQJUPB5zMcs8Yw7K+AgQIQAtK2IeEQQZtkBBjlgwqDW+lMvFikoEW2aSa4TENkPEy6wJjQQW9v9QHNSo09wrG0v8AxG9l5eHtj4r5Sg7ajaDoSE7xedjvByVw65AWDKBVbxD2WG3x9wGm5rYhqlbRkM1loDPsuF2joXdGWoVcBmHS+4HReEQTTTYEyHK8rMgmX/p+4PBI5RcwmNUhlDbQcGCG0Dm7ymStBBqbC4oNDaw2XgjQXMtzG07XGAQnM5pkY8Dh0limQ4jlEhKIVxG3MzhHrrfqZwr9Eo8XQx12jcFKPcJ1ZG2Vr9cRCXAqkqJVImaIeEIsBV5iLYtzGwcHDKHsOSE55OUy/GyRrDqGJDBC0WF8dnuC6DTYY4McwOR4qUWurEUErb8spdsqmc4OSU/LF0xXC1jZuW6poTLr5gm/bBbY+eoDjSB5aDffUJautmW3q5kFakcelylRsdiWXGyv4PaIvEdr77Zd61UBk0QDh1bKI2IIWrNMzPKgbaVQRAa88VMy/wD/AOJ7gWgra6TMFCG+sj7gq+HdOA+4Att0unEoXnwu2wizVykVEPIf+wN5cELS93DEEBbHWURIB2sLab9H3FVOIFER2ARahI2amKjk9MpC8KPIcq9RVOaGQvDDWbRNZh+hMZF9MfgKx2e31KZnkwplYbek1V6iIMMDnDKhKOjLBp9EY1cm2kuQrgWW7zxCFAlW8u/rwfmuHhBK8ECXBWhUxTyEetAQy1XEvFBS65+QEQEDZHRm0HcoX7O4lLyxhBhLoq144g0w7HMrqJtuGmMekIGKweNblOSmORGqU9wFUTHT7pprw3Py9J35JZnW8FcSsnwjSiXq/JVarK+vgC4lXGQULGmrIQDmYQMLhdRakqYXL9Q8ObRh9kvI66qt85RdqpTWfgQ+AJZt9B7ePBEBWLe53u+Jdu6oHioEqA5920B5KZaBAgSoIKgQ+AdxS0afUqdjK3GD/cBysKCz7sM3eifB6hO590mVqrdspqwXMG3UEctcvBLUzSm7+40uwVLjsoZ2d+pTXy0NoOAqSjtcy++67qk0uQ/mpTUQoQT+oI3EAlrEVh1IXVQK4faHjozbcOoQZ5isn3AZNZThROuNLBcJQwmmqe+5Sydm5xTioK2Wzu0/0HhMK91iMFq86xEbCZB1EFGeEizt78DFi6vAp5iGgo9yhqfoJjwsbgfROUGatYB0QFIF/lLTMMoq5S7pKxmLQdlMTAXfGGQRipYKAFYIYa2sR6yNYzL+CmxMLjdM9DQQZB7oS/cjAkZcMcZ1HURzI0wBm1ceN8sqQqVGl5JhDJihSDR3EJGZItZ9k1y71Y4BW4ytFhG4g0/YIJpE1GbVqxW5XwsNCVW5Io7ZMVHwBXMx0IJ5tHEJN8GMbIVO7ByDdiLQrSOEIUY8VxH1DeIBMos/cnDRENvrZgzTCbmYbMUgeAe4FgOudvuHlgDCYWQUo4tFATkjE816I/Jt80DtmIHgu33K5RTTD/1ERltSvcGUiKxXUb0Fpbtjt6pQ333LE23I3Xqe76apzlqMWsTAGjG/pDJhha1mO1hQGt5hNLS04U5T3AuGptYaWj6lzdoF61/A/iJVn5tvp1EuwXsBHuFNxDCqe5eDdrO9DLVsiGwFLUHrdasZplr2sAHRik66bSDrRWM/YxyhVPAF49rMEwCvK4HwYqlhCRONecfGpR8RAhz4qVKjlMumHireG4g1CqQDtGKYKdBKrzzmMPGS6Y2+KlWN4X5ABFWmAWaZVDoRpIl03bBpwJrW+jxRduud1uIH3zDC57FhkyHIo0eTYaTMO8jELcHlTFQlSq0EsItq8sSoKWCkEGuYQ4Mwng5fgmgxApmYT2HQOGAuPhRZlR7Et8ngJUDXG1MWD2xxYsFL8kNqW+agQlNOoqswlQ8BKgSpUUwiC1ExhAQgIEPI323Pd8bR5Vq1j5GEZN2H7Yf9G8RjtjCLxL0ika2j1GvAQaJY1LM1dkPFRgxqgGIrXOBwb6qO69af3gs4VuMVxUfgBRTJ7I6u68JgbqLGCCJ1K9OyFGxenqalx1oimCOZq9nVhERY0G0mMQZdwvs4gUaGT/qKgc0liDQC13FSQfohQ4viLxDpGWAyvZB3F9sr9yNSqE6pYR6wyX19QrqYyVQwegQsS1AXTRKmrfcDChNw/fdwgAxWHMLdk0Gb6hsuLkdfdyvUiwhHvxKE5zTEytmlAxKf3YXcLpFyCFwI5XcU96IPUstsWKK48CIFMuoAQAwAuosbTHEZSumZHNJezA7J+FDvB+2Zx2OW4i+0sRXWFmKKPBoYk+qPoKdXKradhMbNzxGxK8RXWXMfXnrmKoodkwQLRZFyA80oXggzeGGLruMwmNQIkaX1opGA0Q59gNXl6jd0tGsfABYgIOcAyWCai1zLOAYgiqWWMRQo7b9GO1FSw3Pu5VGBSUehBxXZWNpgaDdtQAB8vQyyUCxU6l3yukGy/wBQVWqs4bhoN2oY7WNwHVdJN8vlcey578m7xo6ipN9nNOnogbpxiCVCp2dExiWtD+8yrJqzAbjXRU2rrljd8JYW2ZNcKyzrho/MtCbCjnhISt2i0rxEc8ARaZzEu5agr72ZxHcB3CLyQAAAFBAjcW4jtVUHcqN59pVsLYXbgHtik1BKTBVa7sYfA3cXYrqdMYsG4+VBws+CVNYUeHoEyXqNFGVLXPg83XVjvznks6mehp1EbbiH2OnEWx4JrcpZcSQVwHxXxYpgx4VaW1OGvtHLqhMgItQD3ZvL+zxCEHs3BwzZGNlcnFxlMWuIjyhJsGbcQX40E+iZdwPG4jPYVXgkmXKNKzDBcBQT3BkPADuvBZaOwXJNW+/hWmcWUAy7dxwBuY4YtQXe3imr8LEDTdOmOADq5KP0nK+CB8DyQ8VAhAeAhAlRGghvXUAmnL4C1cRjCKghAEaLlmogU0HbbLHl7JbHxv1Bi5PX0IX1C1wfaI3OqczwsQeTZSfayshqjiudMVGJEC72xhp0uopKbBzcIosTKevuDPf2r7EV1pYBb6mKt7fLAFG0p/ckff61a5Y/Km6krBhWt9riwUriiumXsYS2YQm7aWi4t5DF7l6kANEts04rhMC8lcEqedfUpw9sWLLV6i7XAs664ZZWog4GODEoMy4VPDdR1aNYFfU5+yjFSj4yy4dggsssxmsybGocMXeUQ6j1hyRUBmJEJgwEFMzO4QysP5lADTg5PuMAU06MPd3f3NM1noxUODwSCI2cbcShodkU+rZ2uJyAXglvhvRiZAk3LTMwqMWOAQRK/TA827xHRqkZgpcncd4B8uGWHqDBGL6zOejoi3lckNJ2Q+05L9xObxfAjZyk1ReFiM73ij6nL9YkbgzzN0VYIvMtYGJadKwoRFlQA6PcGK+x6xiBbobRXiivC0jwa4zPuZ8Wu924mf1ggOBesO+YFYIpyqgnLgHcS/CysSuqhXpbHeWCQIw95c/co1FzdgIQmhbZyXB9DULR1Kzycf8AcAT/ACovcbXL0qENcM5adDiInb+E9sq5kuv8j1K+AsKaCW5wiS6WAWTaHtq3pYlAdlhGxx+oa2ml5d/sFjb5Bg+glLVUjEPLAlduy11FZyILYU4JVW5U/swokFQEC4SigWxIz023RKyjIWaFhFqNGt0CYJFGYvxUdEezRDZk4K4zfwIrxClKK7V81868JoAsJrOGpBdb8EVQvwS1lTJ9Epq+JXbnnqovQXa6jl2lr8LSoE1lYp0xZi7fNuvWiW8wQ1QVAZbZg8LsBROSMolLcwvdeGJQUGBzb5W8swAtxWHdRbgxQFzBG+A1pRWI1cAJrN3XhDSSq43E30JjiOqA+vFYu5l8BrlfEAiXPgjb7UwftghcGUWQSJRgm0KViMErFtKCd78YiujtiTcGYpsf2Q901dXi+vjWE2JDNe/i9BA6BlBhQUkqBUqHgRlZEdGipUCBK8AtacK7xJgEaiJw8Iz3x4BA8ifhlfKZUOTRBloMm2IDzBghDOh51UpYqPLf1FEHLAJ9SilC3/IRHUJVi3u4sXUyYkY2DjSH9anPLluVgLnejC6oYJdDsgyK40n1ZabZ4OeCLUWhy31HOFpO3tmwLuF96jhmeilVdKqVj1KoIqu5ILOcg8EuBQUqFhbcWQnbcN6h0lsyj+EJory6RY9Ysdj2xAhne6qGaa5FQRSsN5rqMEdu4iSdqdB9RaojqjsgEZXXT7iYAt2w+ptjgqi2AJoMq+oK236Za0BHIhbcWxFGTSsVLUqXTDCoIUOuWGQZS3CFdB2RqhDubjEAN4vEYiMrGqdwkTaGmDGvsvFQvCGjHlg2wo77me2bA1KyM6HUs9SIZfWSuBfYcpDAzYscI2UJywLbNmBPj0RFxkmBsJxEZC+JhcBFKiR43ITEgcrzKkCd8JZRNiFYenyS/P3iKVPaFBQMCayxqB+4kBwWIxGrj09MazNoOCY+Ohgroak6TUIfQQOLehxcTOSGmExyIC5lpp9YlfIiwWtxq3dNYMUBmvq9bTFVS8STXAOBc/UUsHNVCwjVIy2/vlYUuP8A0QRGCVOEHXcDoAUXoERN4QOPtiarDZZ+2a8XrRwD+rl2E3YIPsl23qpych3cDiNGrfLEcFLWlrAvqotXZyhN8Ucyj8HQUceiHNlQ/TCo4hpwTWaCkMABhuLiIpr3l8sf0Qmluah8BtuLgqIhDC4D6IudnheBOahK8nghcA02+SyrleFSpU4N4XKhuYhDrcdnwsD3GiljDHgoMApDkmpQbz4pZgl5I2zcI+RCBwwJbwbqN1HhxXi/DEgqunwCueWY9U2s+fiPMXQbYaGdY5PXkaRZxGyUL+aombr3per8BUGhTDHlBqyFsEPodUECW4lDopxAxUaFMMavSq4hG2t/quVMGXWByQZrgFrHKsJEpISgEd8nh1ARy7gJOy8+g8VBV2qd38AW5FjCPUNBFi7I6ZgJs18AC4LJTK7glBYK8V5b+AOlLp/UYBgX5iA3GoZgQIeFdpUFmVGXO5Vwh7cDtZST/mGAgQeM2O2kKevAvhV4go3hOZvGd6CN4ONGxJg/BBqCDT7aECpaOkvTkqtVkP8AtAK1acy8RsaUdfsXL4cVFpeouZZDTOANn5DBhSBNZiA548d2bIZpZTLAZuJoOhZGuaIBGvQCW7eu4VEbLYvUthc8wDnE9MlVYLKn65H+0Ibdwqz0qUAiqva9wXUeDtgfc1PJxKVI0s7hwqZBywZHrQjqG+OxHVx0UWwR55Y/ywGOuRY2p22/gJderJKCAc0LVylOoYq0J3B1FXf0zUVwXRmVHTG6dLP+4HNKYZCDEilFkKdxbE5S2x9KSyhtlvGBsQaR4+ohXR4NsSKSX2dSjRQd4iBU7Ex9whtNjIyjWtCsVCdy0Au5j4WVUojLaDS8swxRlHEzIpu7WI6umwcoqtAl0t7Jk0O/D0VOrXJBqa8mZYWC7qmfo8jDAVEJIQwMK2BuVlS8MCxD3cqFfTSJZhioEboYUfEfcQFc6Erq0aPEu21l5wWGo14jDIKOCCXiN2MxCGNtblKROBwxIHVXiN9bhBcAOZN+xEd6tcZTKNQsn7RSlVHMYNw27aLArVtZDuciNqt10xCoA5lsVYCNlD9xamtgJ0AtB2gXKlKRBDPpGBYnIXLhxqO4sY2Wa8JUOP8A2ltQaL09ypNOyFaOplIpYrlxVkxr7diLQOw2xK5Rx2hbSkFjgTHvWrzCpyx7vDApFHgPBBxXZrF7XuVG+9inBLcVgxNovcCmZM818LDs248BK8oFU3MSDsc+K74HjGsulhh15aoBnllSoohQrnuV4YLmxzx8KgosGRfMqZehiqIwClkaEso5O/FeaxKcClBhOblLRLLI6xM2k+mZbahCjSjXPuURdVaaO78VzueuKihR0ANU9wj1ax2NQO4319pz4fRFV0QkCabP6JbNFNJpjlVKj73SeII6x3iNLarIVFM4LtlbTXh57hHUVibAdwLaMrGG5B0ngwmUT7fA7qW5w8wHxltcq8+CUVeFRaSNJhcQNS6tdHfnR6tC6DmJAt6eoqZlK+K5QqqdHyGmyalqlll8V4qEPBlgQhAgTCCeEDRLGFguq0JjdurilKUa8JCMPNdGFktgpyYAnfGrx9xxFEf/AM+oASN3sCDiOlN11DVA0dlR0nSHo1FJVZ5foh+7h0X2hm4FKzcuCFGAdPMW2BCNH3THqyWDdTT0JySlKyJ1q+oI5hySgI1ftnWZ3GV5osB5vmPYHasw6QBbrgWe4tsTZsYHKqjnUdM2KxZbnAZItUYotKIldiHssIrm5kTVXKdqLG4agDYrTUat+VgaW+zQzDLW7dTQgSO5sFti6IgWqrCiQYNr2yBAulV6mJoTXVbqWcdHA1slmcVVGyZ3LIBljbqnqJD7jBFg5Htb3EXUQvDR3GWCg1npl/B2NUferMyDFBG0+wyjthwpG48uB1hXFbkggx4RuKLnWYLoyVizBYLcYnHp0ZKiQtBrvbUxS669OoiHGgaqGWuXvmYacVgsAvBzmlzGcQAuJ6C/pHxigiNPcxbkIMCWKOo03K0VFot3DC7cykP2lUHeQJIvFpS5nNZbVe8WFLAVM6Rl9mWIIbgDDgmqxYVPYOJblCUGIoNqCjhHFzAkXXnBaH1GmsyLAK5ysGUEuQN2LMGgmIHNsZ47mQpmFeEs6QIPFwaKgXMkFg5gImabHS+4C9ETJXtlYrN0scEo2JQGG8yjOzIvsqDpyurpxTzMPiRkLuMAkxbA8xPepcjQaF5lcoXAmiCUcIPPbA1WkTVpPojLay7QUXuLrqVXlzhIb/YaHcfczqnTl4hufQkXWMDqHg+NQIeGMKzMFJUqWUKz3ObaaJcB0+meWZPgeKFIC1cEYFXEwhJUFCUf34DOfFb1yeBEkCDRAmQFfZ4r6KXghgp0X6YqlJRoWuekAuWiXC88O5d3FtBRBrQi8K2VqPgqZ/8A77xYqNOZUrxV4sMUqy6x6rRqKP3sLNe6XSS0FptUV0TZiDTttGo1bdkiplp1qX4Cby3ABgPY7+FHdIL53FhDvKvxUSWJQy63tfADYo8CniiYhHR4JNmrA6nwQqrrwqZX5u5dxRxRP1sBAZ9r9W7GX56eAMwp3Z7Ldp9V4DwZnTAKiPAmXNkCAQIHghCVAgQ8GSGitU2q4pslz8A3m6gSig8LkcG7U9CBFMStZwwdIwxo/wDYXlbfwCPc509n3BHVKs0Dv3AI1TRaszLoWqtpzBBQ0cd6jFKfbt5uE5hHG8xXVS5T7MW4Dex5hse5BmWJbBkdfqELzQTEBtQItaYcoql0+0yQCsNOpMPcWs4LmohcBqGrt7g1wB/WENQYfb1KxU7pSw5Kh74gKGWrGGgQPHm0K9zdaXPotmJUByl7sVXC631vWHqNCC3+4RYp7vIwQ5zTpLbI8IQgoO+B7lxWS3JqZQHGVri3JtPHX3HNsOul1Aq2/b2lC3icD1MqdU9ekVTTnZ9R8hcqsKYgilaerjm3chuGMsMOgl7nHRBlFp9hLBZnEibHDGlIyGm2LFN3j3GFpLpwwCp1/eEzQOC6YZBqqHMO0bOTb1Nj00qigrFKzUWsPjGY2Bo6qlHnPxGE8rsjRbdMpgUaYg22zBb+kZmIQANrOmGoP3R13SZlHpme32lqBtiyRe4HFlhQFbFobpi3su9lgrFreCNpTlCsdpDdvEUsr2Oai1lmIOBrTYaOiG2MLLEA4zDk/qPeviuP1LcdYqT0RnE1ZvNYYbOEBt+/qLAr+an/AJEKxXKt5CV1tDQGJsTa21iuy75MeyY7vUOpE2JiIleVDTcIr72CTPEGHgTJE+Ga3USpWhZkOhF8mJmA7q1a98LSyxPQiJdoxEdkX/WAlfb9+a8ViBKgGiohZSzXklzLkmMATzUAAWQBfrRQe34D1FjQRlzRA3l3qMQWi2UYJmsbJcy5dKfUqVKwCrjw7gEZZ6dRDEgorYWiOZV1j9pDu4tqLWWXjFVFwBo2HhFJEpmTdyupjCJRcLtX0gQrmADQhwwLxrfRCs1dksFbTfBLiwwikvEy2vDLmrqUb5QKgPqVeKap7RlhC9eCxu4A2KzyS01CJwSu16Qjh3GsjBUAdM1KLZxeLtJ4f7eFhEN9U6iT3Lg6I5BFdCyL0ULib64EcMqjCUuMUK/Z8CNvB1CZu4/usSeqhZxH0jj34PBDwHgJdCOUJlUZWYqvA8BGxY54Ih5BuDweBAIIEyg07y8kQExJ8Lz/AFlwS7ohQmUuopRWR9yiXeP7MVFXa1a7Yc7YWoqJBqwrK7mb6+QBgrzKaa9MLNTbjHVsT4qjhOoTMQdv3cfFr9uEJVOdrCMcJHLMcZiLc9M4yEAVQsPP1MUh7Bi5c09sbF0cartB3aPH3ULDBxUFO2xhuSrJxjiDkTJNtkNMIE6tG4KIOVeYOaTEQdLWIVbN0pTVaoGRNWxmb54RiQuwxsZXT3RaNhQ4g6haRzUjtWpSmXiDc7Dkt2huhFqOAV5n1jcnBdl9R9n6bDOCVXpp8kdyZYz9RMW9QS/cPFTsb0M3eGi1n1QCJGKwfSy0DxaIjkN/WQgC2H9xUJQ8xb3Voe6YkvBXFPP8IoYL5t4jUQR+0E5BeSrIZ7UcofcfPZKNgiNANtLKlMjxEXgZmPYtxjEyBePUNofcHsmd93IdwBR7csFa9dwEJQvNKxH2OZiFlwRwrkEffDFyWOouoRctDLqnq6lHidYW873BZWe45s2StSW1DzbHqO2JIBkv1DLb+sQrqMGkFQqP2EvsoTSQA9s4M0uYZNfDxQTgOVe8Sw04CwB4lxFndY7fc5G52b6fUqTWx/tKl3QY6B1UxMeIozG1kosLDAJba5hmk/aKeK7GVQTVtCXkCg15YaiWnYtVUtURh7gG2PyheMlcRQTr2PoxIavx7iGu2DlSjd7lf34mN9bQuuC4A3cWouiCdI5bfJK+LCsKV4R2+Kg+4XbS77IC6ZY8UAUxCIFKxDzfJMdwjKyNaHMqFmo3yLzvWAWH+qEVVpWPIEGEeTMirS5VzWqd4yR21FUW6llhVQLZTNgtrPgDqbXENAbB3CuZXIMi7rk8NwiWMvkrmT345lS345wrKiJsSrw7dZOS4iiN0tembvNS1DyC0I6NzTFYli3A2v7ZfABtPJGMbItpeYEIl14XaWdMBqi4oQhVkSsKnREboX4deKUvUOhVjW/csW8Z4wuwRnXKZIFW6PCIHVY1+4zjoY8EIkLDgdNBdSoeGIAxcq4HjxXgPCzGtSFF6athK8BAhAgQJTObuCGUSUnkXrklkbz5BAAVbMYJgMvaY01sqlJ3cXvTMjrBmg6S8T7tk5WBytsqnctobCASMRBj7cSvo6h4uCPiDC9soiXTpJTbdhKh2C/uNoBWrBGLjaZ7gKh++pyJPulEaQx3KIDHARL1gN6d0n0MWNa1KfqVlPVcq5Kh+6cf5ZkI52h+iPOGr27ZhGUdMU7Q7MPVoX+qK7IDYoLkiLm4tdRarPJSrjwhAVILfP0iRc+teMECMLLwv1FCjl0r0QTJhhZjyCHXEYC9Dmalh3COfDTMavb4NrdR+DEy2XgilBaBUJdRIo6GUnoC7FDuLYICMXqouHieE5I47KW/Zh2ZcNTE/Cu0KOAb7YlKNsXome3u4QSH6Fe5okq1B9xuCAKvVqTnCrbzDMIEwtyiUZQziMvJbqvpmcluO1QYcMSrDRUu+Qygq1IxSjdAJFG7bpwwbd+sfqbYlmXCo7xpn0w+qZvnEobQAqEg4IsOz3CYRMb/AMleSzfYLleotXnu+IULnCuGBA2uwhtzg00ww0IUGoG96w2hcxTZ4aISLyELCUnE4bvMe3EYCgRTJxEgKhZuVjS8XiHSFepgVUctQ5YYupYMxBp5Ev0xtsCpvFxxfNghFpxyhKrkLgcw4AJVQCD20o5gj1JUUl3GAlcjaw6rWUGoxS7fSeoaC5q6cxWF8nMc61qku/U0a+gX31xNgfDn1pBYBZqW+8yhLiMUGavgjiME58JKVhwNrC9L0q2ct5jTxxbNuPsndvuyH+jglzb6mP7JIVRh6TxR4P3Eu/AgPFpQvHhUy9oiFbZXhU3FdgLwFHgJYuVYeFhSnJWY1NOd6fE76HDAoxMsb4GJKBRL0xuym1lMLsXiZnNyu+gfUatXhmi6fu9+QO3hlmhceCohUbiwAoO5RR26ijsIFEKw+DVsVmi8+UALE45jQ3Cs7hnpB9QVqXRmHa30c8MdF2CrlcnhUXEa8jOve4lRbB1GYgXCwQTMl3XHhFwMickYEUIHMZ0R6NGBnbgEdhRuVcEn7JfC1oIURYTY+LyYpdwnktY35Bqwsj1nqVKhHKEBldjH+Yc+DweAgeRCBDwCCKqCGGoiNJUPulmy+oHxki6dFkU2i3IKHRwXHZQKMIeyYdA6WSsxncLmLEqzABDhlLKY7EKLwdeg9sV3A1FOOYA90Ja9E5zffv1CipHAR/gI5tUu4jK42e4a7ijyhIkWRs/cXY8hRDMB0Nncv9Jcv1x259qEWimXAPFRVtZjJ7lKCXHr3LaBtCGWjavMGYAC1YIw2V3CRQF5iQdFbgAS8Mmrz0QjVfuyldYVVWIxqDS0wdlbtIZVVGCVgAGYr3jujGV48ruHuVR1ycKRm66GXEslyGL6GIGmLxCKkNfRGFusaFitRaV1OIP+8VgdQRsUFlTHAL7EghWXKHIjr2OTK9nU5SCapd0Kj2RwAhK30bCaHLylR3Y0c6gVaRXbLrMK/wCVMSJ157RLUq6gqC012EtL1leB6gHAAr/iCB/lhJSkwB1ZC+o0zR2CVgl1toiQLRRsgKVtUeFmLtAqnkiuUq2zl+oAkhpzKnzWOR9RLlQLfX85a4AtGHZI77VVX6Jd7qC4gZoHKlwagSmSZFmFjMlBsuyBTsGOtR5g7y0HMt3lbRQQ1GeROVmVl9+WsL5hO9eyK3gMbsJa6xU7TWBADoZQpEWTW2Bl/cYwNDorGUC6YcC5SJskfQirZhADW57E6Lgc43ouWxIXK4PuCUEbe5YULhYpXEGu5UashGvURKdMCChDIHcQt99pZAHbGDbuXA+2VgRtVafcVDepVsKe9o8K3mUYDn2DL+1ALF8y0vukk5xHmMuM8RoAyp1/BFv+izRJ43i6tOMDLKiHJ/6SvdW5Wz/7LVSfv+HEedrcIUEenwDPgZYAKCvA5EuUwqLZR1X3FdFJsZ+4/wAJUIla5HBAE7thlSvNTjFlv1NWVuseKhFQ1VshaWxdpmNmhUa0REu3gYlOVwr4aBkbmzKbI/LohACoqfdg2MuATYlaidSq3B3tkW/hUtCioDrqLsJ9nm2BBZZmvUqVRwlGEK3i77I5DNsutS8XMTQUshfXlOcmnJeCBxKLb4i26qCdZlQJj8gqZMZqaE5iNlVBuDTFmnUsRYSNYzahxbYLQgaABrvqGB5mkftiJJRKsZRod6NeO7lS1U9QrLXVQJFybSVLSuIqrZUPBDMjp8F3DFg51CBA8BDweAtgnwE3pcyvpuq8osNowHrR131Xh9MZrEEg6mqz1L3LOU/c6/dtKF51aWVQ5GlLHq4NyMKqvRUZL6Gq6EoLRxD2RigvhsLFwD6jjH9I1Gs6ii9IBubLCv09wXhsUVaCMoiHe0jACVUdr0RdRZc2EfC+xEbI3T6BzoiTsW6qa+hq+mpZJa3/ALMbQAvFPtFZO/iXx78uv7I6xghzRlXUQmgQirxoj9y9wRdyuK5Co9LLgirclQKSmHvMEiLZFoLICpoiswt7DoY+6qIr7qUIpF4L9GDgbMoThZWMVYheh3culKWnt6jzSBfBBDZMTWq1gzTzObvshKFWNTOfIvZD8YBibge6yuBGXL1s/clRReHGLUHCQlIoa1KBCI4L0Uh6D+mETBDlABXFLD+44je1NVNcIAdepijxVjtLbb4uF0xrXMg39JbhAY8XK2mG1p9MozHPVoaYRgJzjruFpLH39y1tI1GVaSiYiRWlC4Mh4YKHTXNfbElOwbqYRXL8ERKxaIEqWyYHMFkHYGeGHGrGFZXcaXdFeOFjlBYSpyTjrGC1055jBx1foW4sls3/AO4Q1ysR26OVvECVbRasCDiXMJ24WcQWQ2sIwErqFqmuQuDTavEtzElSRVpD6KnAmiAablrzBt84K4gC3uJwG4VsIcRxSG4iai4qL6q6EcBiMINRoCYNR0IRnsjSDlIGGHKQpdzZQxJQDpdS5e0onEVzdoTZfdSrWZTpew1EAwLCvNZcR2tdTAIChzENQGXM/qe4GdPa6h2rghfoTCDFM6aQJXdUHnVDrUQP7xxP/oms3f8A8Zldu1BP8WQ1SOsfwIvknb/3FR3osmrfVEMtbpgy5v7WMqfpg8vDKgRUELNVf1EaqsqyvDH7YLuW+vBVm6iVTGrtfAKNKWZj6c/qSLbDm5KmZUuO33AuOaoGStFtLkhlmQCMQldpC7deQgWFcsHqJVS5CNbBraohhzkIKW4MoDszRCFd2YZb7hBZoq5UCkMuu5aLRcY+/gcjMDTBMFXb4QharQ1HRRBWTUsBl6maEt/CMVwNDW/FzAbaLRGz3IYgWCEW/oQV4ZXLOan3CNHGFcxlzs8Rx7WggqPYTE027gmUHJMMI2byg8YAo3b35YgBkvcFf1cAMw8JsSonIv54r4X4qrzViWLVbTbLFwPFP97/AOCVAeZbhaQSxy6I4YIIJqL5iwU5CET0uPKgUvsxLPFb/Npz6IggYotI7i63VxaRmDKZ4ukjQYAAYke74YUDlqFpTsuEG6NEq0GuRfpM62cNP6jhoGAHEaraAWsN1dHuC/tAFsqxEtY19SlauFF1FQ48cuO5Y161b9mPwiJR7bjIiqu613AFTuNqOklnp1Z1M3/mY/RL84MN/ojPjtgvuD4coLOcPuhnmRyrDSpQ8Jleq1vpIQ6hqBveeLiDIOBXrKOw8X+k4YiAQkqGxmsDFcTAX/YxBJmzZjy+2BXKvCfoi485GkcwqsL5XkVNld4+o400xEgD2udRHeK28KAuEWxl/p0xxjpjycFs4lsNGqzHpD0ioFQsTG5gh9gBsQtM2/AlEI79VF8Ivgf+r7mLiWv8EpvnJd8lEZrs3kXFwJDGS+ypmOO1QLqDUTRQpOpVIeE1T9wF2lZtEfIr/wCURvWFv5ezC2qwAy9EUqQYbWHMMTsRW7c/UTKRSdRRFUWghK3PF7JRWds0EpRVidGMqRqxodsd0ghV0pBTumAQjnl/SVi8f5GgIuVQShBepnp8gmpVwBq4v6QsCp0pfpiQJNHL1LbHYBBHUSsqdwTWP3MmMbglyBa9T6iKaDTDX89y5rT+cS38HBlg8hcs7XRBEEtfUZIDJKFhBE/tEnc9ykzlS8ksWZtDcHrDigiN3jmKPjkQMArdQVtpziBYcOZma5WUtxrr9LgAmilCuvcPUgyxCd6OUiGxCXqH3ULwmKBfrqJbKo1uafsL4x4lVcxGNq7rCx+mOEoRnu1BLrVeH2DcIMyuBvGIzxHbCbLX8Vdh1L/ekyb5piperQ5VlPQtwvXdf8mOJVgEGPAVMf7xO+iNz7IAK76Zh4vYH21MMRQzrocBUqaGaei/UAWxkQYr4u+WGrJwOfGFLgFSxbpGO6hrc+wwEpVdMWrpruNyTUeI0HqGEUDFghNwTwkVlb4IkZlZrbg9eKlVwJs2dQs7JY5jP7qUZz4OoUFwQZ+ngaetKXEDLoNvqXcnhAgUYC+ax4dyxbq6hdKs5I3YGriN2cdomwNjTIzbcsrvS4tApyDMRtFheYqBVDRCPZPYG46b6jk7hFcAmQXsafBV93BQSPr0RbrhcvfYy2758YjsvlnqV2UGpWUyfAFMz97gU+zCzCiVvB3AP7YfQRQraNxRAiQ4h2dU17ZVMB0L8VKgSoECLB4dHKwswipctq7IWvwB4FWIOVaA/EwGAs5IOOOBgB2wm2L0ekMq5r6PbF295eG9xU7NG/3incMMUWQPdSFglot4JhHaru2ZMfZQ4vNnD2lulkouvAQyMhHAeqiPYL9diaXGzAN5m8fXmPi0VNNMv2tGlciyV9SiRmUz2EPwt6HrBLRdv7IzTCG4lBTnBwRayakps4sMQWhwReO+TCxscyz+ItPqMUkMIpYWmf0uETFaJUC7tynEPggdaepaoDQldhAlVsI1G9EZsyWYgW90DyA9DsjRHKMr4Lg3BQpS2iARsg9EPBReCins1xDJl3qfpiEEMCQOlXWINLblLvPgX+8sE+0B9QawiD3BKhkjPjlbomL/AGp2Zls+VatzMIItdBmVZQDqiV/L+TNxlgq1uDSIrVNpEXuzWo+koj7CcIN0kuODpljBwTxxEY2TyRIZRlCGLwUVtnMGUN9ryfcU4zUVCx1d2NX1L9XEy7Rm3VvnuMOs7JXLMRlWwc5tmYD9XdjcuXEVwr7RGTIiZ/mCKCA4R7vmWoYHJUan826/piN7ZGr2VKZtmaVaQNK47pl3bAGm4XuBpzcqVxWwZZZTI1LuAnoEsw0NIbX/ACbbnFyo5uZknctETLskrUi4ZWsSixxLCxgC3RKlRKIggzXqiHZMCNBWBlJNjRG1NQDJBKEQuAFsfzbkyCZPGlhoQGzZw+qQva2UKuUCKFu7dvalYMxEr29wqnsdewjGwoEo+oA/6LSOGCVmytuvUFlZ3yVxArHB8Q0+L7YLkcWAfEbzbn/TKOGqWT6SuAXDyvA5jH6MWRLZr7CNR31r+41eo6P/ALOLJBLv944yRWqNEv8Aw01cUMqwEYVSUwb1bDiA5KNtsWs+GmNuq5hEVRU9EQpFKqvcBRk/YgsrIngBQbbVwBlFUOvCqnES6KoywabIakqC6l3hEXgEdl6q2xgRcIzLOByxqqqcsaq3L+EOSbqoICNhHXLnAD1GoBfDaocEuEq8OLlmZcn1LiihMZoYqP5mq43N7bhLFaLcDuYKaiozZHr2K8MIc8g+yWMMrgJh1DdHohTNYSkjtiNq7ZidIwZW5gZZZrcw5p0lVtrRNYvS3RLaqWCm0blRA0Xq2o+0HQuoFRCVon/Ly0Rg2MP14BYC2LDrYUwQulYOBTH1tqu2Hi+JVVngIXWQW+UkP0ISrOFleSECEDlHkA83l8BT1RCVn+5JtruEF4M2LArzL808i31e4I4wbQuQYxa5g5/1jlRtnou6gkIHESVC5zST6JAqOXeYyHzrALyxKMTVerBqc3bLIadAyPWoL59gymCzmGlGwUnuXbmPUdtljuuYuhdzABLr14Mt9VCt2CZfeY61RAJGzax1pLargZ2YKI+pj5E3GCWsBqHSgyDdDJmbA8QXgVGVC2HoyngxWOhg0MKiIar9TCWPAW9mug7ZHcSK6LlB0Yp4fshHEcH9CD82wYGLhHNC6JT6S3MFT99wgVlRAUiaSM2cjDZBt3ARhrAbgccU5d9wPQu/ATJm2HSnMNTFcd/uW5R7WK4iydVhTElMyuPtg/MusCCsZurf0uUJ1KqLtQOy08MDoaHDKyGmwu69RMssEMGvupiV+2NcY4X7uA8Mq5HuOO56Epgp2g7qZNq151Ffn9mXVBayzCJvBy/Uuvu536ZTVvrtDsuXLSAYDjtg9M2N3ClQq1bUXYzocEKCsK5ebi7DV47itolhr6idA3qR2j4NapamUbEaRgl3EFgPli0zvyjiXWLERwR8ddF+ozNE1YbzNtLRo8u2oX9S6UBarldAWeFPGPcLH96JXiGE4W+eRC5XP1czBJ9YTez6ZnqApW58ppD2A8RySlK6bhRQxGRpRyUR2zNJAiM437QCFJMw0L7UYvWgB+3bF8yboImfEgtiVcVUWQWw8D6WIWpZhBFxpVA/o1KzeYDr7m9eU90rgxnd8f7ZiuT5HmouWLxpCVL3byQZauwhgcYI2ZgwZyu/ULvchupZUOeQifA/vlq+YTGfsqZtnkmhLxZIjbd3C4bkqUdgtq2Kgj2ILX9sPRBoeodIEGHqVbEM3OpCmGkpjImW7HweM2rwuD6uKBQpfbPipZ51WEgEFC3XgjVpBZK0GSpXDMPZLGo6t8Pf0iwgL74qEFpwg3B9+QBK2bdxyxgna+yocrtQNIEXrq7i57gXOZWkg64ekG+Pi9koPvhhJq7wsySFlOFevFTWHOb082qram0wtxyYC71MAD7nvPSvxUPAdo6+o5ArocSxtVbq5WLNSpUv4atCz7R04KujiVCKllDKi+RAANqQvbHMpuwnT4Ese9qnUPHWqb8BKgSoGZNXlilkUiUjBAghHdDuvKcVrCFl0THE0olWr9W8ed9UdjdpgXF7AaErSMC93pDdlY6JKJxZnlUjiiSVKGFe4KqCF+M8w1CsAu5p4lVvAssfbUXdh+wkMqVgmT1D2QVoMtuiD2vKbKfcNs3zrIKYWXLFWEItCjEuHYEetsvpCEytkEFYSMHCY76B16I3+bewfRLkW+W4EKBFbZDAg0JzcDADHFClGiJUGpZJTL1A3wzSGi3wI6Y+8SDiqyAes8xgQ7oVuopzVlhQbGwInd9VeBUWJVGtSFU54XLiCthza7YDmZwKsVKe1i5S/BMv81+LiaWy5bq4IqQXimX9lhcIZ23pYXE19oytn3D1G6RRSi/U1IKQz7PU/ipmIr+pDwzR9zE8gbh8w0Sik/kQXx5bk4SWby5xPGyEu+KgTYMldG4E1nBriYy1/CpbFQUtXLlRbsqtR77V2iyoq5lGHtLViAuLTBQGUd+64jQHUWc00PJniNO14DiEVto3BzB/jK2NnvgYJQD2XuZF057IggIwTB+/uVLVS0Gw9xHixWpm3arpO6IGpWLWjHZMxDwo2OSXYBrCv4jkH04P/sFT0RORg1aXGYKDRamNFPAKm+cQ/qOVMCvzzlrYVOS4tCq1ij0kMOuNAhW8lmDC8NbOuyZg+O+/uGCgAc767lo+1kSZ7bypI3GAxwVV6UAFq4wS/TBwQpve5f8AY7f8L/7CMf8AcZ/Gqf8AIZhBfVv+THW9mFU3Fn0gMpiX40DSMddSyf1VREFC2u305hkXNIyBZVVjZ9ruLwo3auo/JiUOkkO+i3aHBXcvkRS423NxwHcKHZecQjj6Ev3sTJXw1TP1P6mHE/6hB/uyXGZ6IG0vrMKfcKfVS9O8F/gjweuUCP6JbRFX1CmUO/fx/DKD+Rh9koybXgx1aYdiMr6hr9kuIN2XUCQqnbDMDLKGlqJM5i/olN3f2h9gTMlZvQlxvWv/AKuMxx2pB0QGVmK8AhJGIQMHGrYEtg7A8KCT+yJdrrBcexMsDklSmFxfaeymbYqNA0rQNw64BoNMJmOaNsqdKhajsSlRxF4IjK8DkQYkZFC3memMUK8YJdXXe9wcKVtTMSzBBxn6Tc3FzDD40KOZ1buBmOtCCl/xKSX8mc6w4rxUEaRqLjINfqdVLP0ajxFA7AJGBPDYxphtQKYZtFAt08KlVK7quKleC+NzmbuB5ItVQExTJbqnTCECDm7KVMzKuVKi1gQIJrhGZ76k5X2MFSF6gymwq/DX7Ai4ZdHlMEG7Xf0R1I+0e5V2FV1c7QHIVJiDJmEZIDgdBpHSlEAQimxEhrAaqEugTesPU0f7ZfZLwebdb+ko5u3IkjbkNq6MvBLhoVs9EqzNggVwMPha6BfNxv8AVpEEstLyALx3HIMTUaAvMb4dZcH3D9TY9HNok4Ie1YLaJU0SRnZl1oXO+5ecSai+INeNwe9afa4eXsCD6hXNSBE+yUcUeWYFoXFw4cy8jCF3u4hA2hVRRiFSrVPcXPH/AEEdkuI19GPwhMe7Cw9uaRO5uWskFsu4PMIwDy0jBVhKfBFF+owxDyJ6yMJLVFfWwlObNoJbaS2TdXIdIsv8vWP7dcB9XMZxb5PTMnLfauDDCF5K/aNc9iKu2BBKUGIMyDdT3EF+Yk5MbCrrbcJaVLmK/KDDnMHAvMHAxiUOkfdKFLqCq34WJDLJRCVFkOhkWGAq6KZDlmNt9eIAqxWi/W5Tc+ArWMwJ2LqqldL1FczRids5jcvZhvmCugPcJnNUxzDpqOtPrgzh7Bj1fTBcVXuV3B2o49XKjUWEf9EXbjG5T1xgOHUI1FNbsSelwNZfubXcY3UZFeCNOkTFUmVOII3NZzfpEp3rCDHkP2gkxC6wlldMke4ACLhGCdnhUpI9vk7MEbH9G+B7kxU/pj8iaakLGGnROPSG7sWN+lMHgpgRVy+h7xpfBM5pqWfqxplVs0pmO09UCCqeFgi3oiq/KX99MdASLUnAVVTK2cDPfax3Aq4C/ZBijc3/APDTL/M1u53FrJ53/TDuZuhqv3thOqhL5+6hy7GWr2W7l/hAbQ9ko2AFGKPrsg15WgCuk2jLsJmDD0T+iYwt1/1l36rLhpiK+P7Igy82MmwdzRthfchKfWBgnJ6EBLzxkPRnIZvpVcBaj17ddia6H/5SOgpQSLgKGGXy7M7SL/ZZP+pL+ZjuTYUKbCUBf+sDXgE6Sp0Eic6N2eSIf3JYjjyqU7mqhcOO41hmST7w3U+ZZ9kwoX7ILL/D/mJwYzsjpIdhGK6EslqvMqMWAV6YDuAmWVch34QBYunqULbQahQGYTgdRxEbSF4Ym9K2EXR6LNOoTjNIoEF/vIUpbhxHNVGiiYxmWeCtFeI8hTUHgnOx6RWPgPoWxNlJ13MgqxNxngkgDES7hYJARG0HCVNwcHY55Mvsx2P0i89CMeAlwMvIqvLKlQW2SZNSvCthUkIQ4lVlDglscMqVKvaY1ouVXNeHAgQIIHhJPARWTHCmX4E8kqoRsSM7u/NzguEgCp84GvaLQgFYw9wCJkNwgTAbYVtPBKQXJDj7hMiXO1+o6y+YNA6YLwFSUzz9RHVFXCHVSuUFcGnt2ylAw3or9ysFXTeCSIqKoxqHIDQVCgtyoq09oyUricoVMWWdYjkFSYIrI1iGWaXSVAIpxKzVxQuLYFMTcLDw9YFyderCVTP2xziaM7QpIbwB1bBZ28W1iD0um4TLGYNe42cjjqICXU4AmIWt9E9TEo7aJdylrDYfX9RQoYxB7lG315pcW6EPd2MuGG6sKJBR2TOkokhiUR0Hwz2lGZPcdS1n9+oyAK0t3NHZZelmW49QYoozesQyLBC0jv6irklF3CVS1fAFxEI6Cvn+z1FD17TC3Nx+K7w7HufQjgnKwddW9Sqj59LcjOQl1bCdBhUCObMSH/2DMwUGe8KIe5DkgFgQxwO8xTBjIVt7mRwKIsXUaUqOjohbOA1XMyJMrRF+gYWD2IsgFMX9IjKk1cM79ROiV2gM3EODlpGSV6QaO4cGKvZH492IaQefGqWB8CpavNRg3IZ3+jLe4qVK4PcSBWKG6pmeEQV52seGNxVxtLp6iAp3pGOoRzKm8uULuFjNq8EdwGGv8o0tZgTL0zXGChKA2RJmLZhDen7imaAxWWNZ6ln0ip+4yLMFUdVbROwQ4VLrpW6PqKw1DJ/TAxUYdVhmydnCWwFehiyxA3MqWAFjamIduklcF7iDJzZ9TDq8AUynm7Wv3YFp48m40nYKwPOuWxUpS8zARfgGf5icwTMx0QGgZqqaBoCIWONZ+5TqsVv+FiNofUjQGObRCvUUuolYdOE/mhGCgy9jKv8AoaIpS/ZGbQ8C2nNdKjBremnZFYnsX/UEXo5xY5mXVKSGiovcyul2EY5e24GKrgxLzlClPPjSNy2ZLYx8YSyGTWuKxNolRGmnqpgdGeFjaXH7oCIVspCO+SmqvcNI7LYh3qqoBmjgs3CjpWjNMA8qlkd2mP7jgVWsoTfyaFlCCrZdfdYxEC9VbYxgtAbVwKiLt4mPYDwQC0tSmMldLw4fPdnds4lATmEUlbEqVKg6YZaqgOYO05sLL/DApVAUSqghrJk8feEXllLDdshK5dVUzlwwUbHUE3uP0RUuGu5tMRulcruEAHtQ4fuBHDjHrumFqNg/XxaUnmvwpKhCoHOhAMQlHL4C1QkvZc3q1piWPtdqwIGIELQQtJ+2EJi0/MUFw3Mi5F0jxAKjckQwNrSMB4zA9vuLXSqu/wAkI7V22gRaH9scBbLd5gDkaPV9wZWmEwvK2Ip/UISbKANlsY9h7B6IR0CGqwOTM8fu4PGijbY8HcVbyUV29hc5MaDhxMmAL2i6ZWNQKQ+5hxEVxvpnUvqbE6cwa+HVl5lkg9FQ0UNv/WThgf2IqRjZZfcaVlBlhHyggqEG8qtwpjhFe9RESmi7LuoEWU6g+pvZWi1TUOq8qMDwzkj81oo2eNQs4iVwxofuwroNUMXhZbocU5DBytDUcjUYGAXVrKRl7RoIrWHDrSUyYwlTjX4qT0rYCDxukmri3k3e6svQcCH1pCXmBqyAWgl8NvwRqXlirSm9RCj4VCY3r/vB16aiwvMPmgXmcXBfIgs04Pcy5SLgyzqWZbiMGypQb0K4tL5PcqFUOLYJegwPDvMtuMNV3tKYqla26gM02GVlO2oZzV0dgOJVMMkgkpUrnIyZVpId0isyF2e4nxcUl02FFkbP70tbIUNpdQvOFYdQes5fUpcuXS2deB1U4gpswiKLQripRdaHBKFrq4sQSgQ3XExsqq/cGildIcjCBb5FsGJ9y6gJnO3kxxLhQlxQeo5LinfcooWoosXuNSW0uFVPQNZ0etzXx5BAQBfYF2f7lDP5LF9tzlGGy03xXELGkLsucVyHtP2LrKjRVrq3Lj6hAyYZDF/UpzaF3IcNEvmLxzqNgKr4H8RgleOehXnMmK90iMDezo19az+H3GO5w+sa/N6vNIVWmqYtNe+VUe2ywnvqxkVkcbJIQI6Ml+oLYpCbG+uC9yoD9kTz+6HaIW7crqRdq+wYkzR9Uy1xfS0UP1LlhX9lGXT13USnryEaK9kmvjLCT3WnqLnxjQduZ1HUGl/+7SNztoefRjlfFicQNCJ4GKSHRwQc6QZs2Kno5oY97vTOUKJLgD9VJQBR4yl9F4ozBA1RTRfY8QMesIT+EXnD+cWXNvu5COYfcKXTgMPVy1uaLxAyjLtb6wirHdO0rxRZSiNh3CJCWyBuugKi9wo1SZPqKzUM7Ik1QaSKaS+VzBapYXuoSK3QLH7Iz84AoJUqE9KR03UBHZFFRs0WiMlkUOalHELrRt1KJje7JimW9rEBqylcxzaHDhcEskrK0AGEFEvpLelMkz6NRLQyapRKEgLzBiBawkNSFWtMt7SFPN12qRVZSiLLzGooz+yktdlqCECBDAc4iQJDcFtIfIEdaxVBWhvQElGSYNTRT/1FjzJqFjYeag4j0sFkYQABbOs62Zb5mO1E/wDsQQxiUr0mJMhFmsDcG6xNPME1JUwbCpaGa7OW4qLCuY9rswBGpmZqFI3rW3Bpc5mK5Yja5ACn9sJrvnHoYJO2zy5VLVIVYl9pjDvP78JpcuI4QmDWrG7i+u/rMN0QgFkvUeg3iasr6jg8EbJdJUaI8h+TGIGu15YsXUdI3Gc8nHTtj4Ptye2D6akZdVWWB+BZWs0sVSOPaRHwGcFnXqobOtJu5TK1rTIRiq9YzrzLmfkH0OZytY7ijwvlGtgCVX8ijQwh7ddvtlOrQSh7rxsJhD08FdIwtTrQ6wkAOwoEZUWnRJiXJB6DBESLMdPvqGoIysFJQ6go7eWNoBgvb4hM3ue38ShyCVfvHznD/wAyrTGs5pB6VQi+Oue/pEic7MNxItToUYGmbvuP1BGE4drYOS9HqDs3S6gEVVy59QwsMy9wzZNWI98RK5gfSCSqwb9pUtBTjMEHcoLnLiG8Q2M8o8BJiqXgWRyqcJk57g+FWVyyjfSZpjXcb0O4ZVpJz7QaZyuymoRoXCOELNzHEFr9+lNPEbmUII4yxFZhNDhWoIo1VXECrkR7BrqUzFWa+7ZnBoAYcvDKEugzf+IJOcVhVI5t3pLweolpTFVWSKNbPLmzhI/tEyVO4cGMHh/7IzsFzCp5iwtaRpyy3KevB8jDrpVI9HQ3VgoOW/FfDtu0UZ6PFiXAg/8A7uWlcpow/jx+3+pQ4kvWJBkXphby/rHYD6KiLgH0wypH7IUcfYIo3R7CIGMgKFuSCZ4PcL/bqVoF4hD9VEuJh4m+iOQCjJphtaDl3KnEVQiwox37foi4195/UAzPGdPo4nvWyi7MYchL+Cps0n13FNL9glEVuS0kxmcSP2ibgO+DTk/iN7Yx3H2cQ9luz+zqFUSU7K/7AlmuP+kyS+/YBZ9WwpdTTrsgCOt1DoZdMQVDxSqI0VbXgnNuGy4JUsqc/cP2sSD2imhSALMTemsqJUAfJS1Qo2YDwceAcInPom9bC8QZciJpasYMyMMEFvqUmQTpjatVYtIF9lzI0MtcJUoikaJKElS0EBF/0iShQseRlvXUELkWZ7JcuUzcqkEQv1MHkdYhpSZIXiDl0aITaALcRr+lmvsm5L8NrklQIRYEtBt6RAzI4lYYPXBgmbZVHSB4g8lqPiPQYzmCiVP+TFUhqg37QORgqWAXW4Q+gvaguECzQdvuNDVwYi+4yMIN3fcqoHcsSkh5I9DFG3/2uxBnkHkZ0N6qI2vaLNSqA0lKdR+tHnkHlxRi0f8Aggu1dwLdU6lIgF7Kdcu4wteI56mVb0cBuMD8jN9iLXfeYAcSvZmIOOabtyTdGbMfTxUScfheWA2tC89PFPeYpg8VEx7CaTcMEGvl1xJXXRfOeIWblrm8ssl03gh6bMyC4XsgDpFh9gAmuyEnatzBcsUvzXeMlTGZebdqzaalqL2StPakoIsGYn7spJck5bbgiKAZjSJSqvIWKPmJcI6BW1Yh9xYV3UbiwghrLrCkYlHrqJdPq6F93Dw9RVDiSKvAoGSumL8B6T1mUtxcZcSjtCmwY8hYDrfdwIatyrxCX/VgHuBchNH8I7tJuHHuWM0H7CCS1F9B2man+hURFLkDG9cUT2TOYhSgLZQrvdudqDAzcVbtl6AWDW/pBe2KwUuczD3E9t4XQhPGi37hmAkOEIAL+yJoKNVDemwK2Z2q7lNWIqafaNfcQJN0sXSybZbRKzBpLUexfMRPnG59Mu0ExoUEMs8ASxGVLqgZPVwNi5rDX7gcLOWDU7nDFqOPp6i3f8qvW7JSHQ2QD1KFqnaR2FAbK/lmFKI3U/7jqMKoeHJYt5hvYv7+o+LVuP6pzN/7Xi/t9RPU1Y5ckSVrRG60f+yp9hf1/AZbxcv4DCOIcTHh9Ed+/wBEEcFhGkiv/kc2T6MU1nHmv9NR20/cfwfoxkwnUjclPow0VIeqjL/Hi1sEXEoJaI/kRrJZzphGqGDtN5EyOGXHEQm6EZExZOJuVq0OYieUZ1+oNV7ysx0v5RIOFNcMrX4TqIVkNVLSGqMQWgOE5HshS9egkrZjl0SFzaoJf4/J7lUQO2oEJqPkeSdTFgqMer79w6Z4kbw5Cud6PqPRGGwIrDSIX+zmOqFtaX7leKg4WAKWiPh1KCiq2FLA2MHKYtLLppAaiEYwPdQY49m2H2czgyznbxL/AD2qNYKjYRxTWYZqOFdbqqd58ABcNLV1AjYQlEUFJKh4cGwfUZjpcoBYTGWCAxHkXREcsWRvbTRGRZXglQQ6aqQKgRoVNGDJW+iEEEPeQK9vaHh3eZUhfxjtfnnIFsDFBzdWPeUcA9GGAmoC836lFuhfCNdyYgKrqXa4wao3veOa+o5VmRBctGWGvjrHUWjW/wCkIgzZ1I7bY2VgQ1EBg7WikE5uHOnFMCUVqwP2y2aLWFfTDQG16XhmVH4VBPIO0uojZcKC0O25VGAKF80MrbjUt6bKho2IteMhM49XBQmapQE4fIs19xFhOj0phYCuhm1czwwiWmpal144Q5tWWBYKtU1KQqVauC7cUVZhRUQvRtxWkYYb6WoDtZyzC9uOq4fgCiNCLVl51hKphuJh6HC5ZXrx1EXBnJf2aCER07NlQwmytMExi8KU3lISRZfvfHjUrceBgYwtYOZwR8iHtraKRhBz19FnM2yv9UIS6vzGG+8IH2w0BBvRJYgWFXxwRMshY/qZcwtFTZ3mLS2rpbDEYDG0J3KcdAODybiPYAGwgJr7xEa7eZRXELfPvKMrLqnaghqnCYNfUM1boRES1L4BiZw8C6rgsuiGgbHZedQi3eqhVh1PHsiL2jijkjbhFbVR0a3Zz+4V2TVMNdXLhHUzDtcrCJZtjtlNg0oW8MHXdX7hQplW4Km40tPJCdeW+U8Qxjozg8dxDf8AZahrTd4iIArCHADuZfwMxfu5S5aGNrtEODEqtF/UpEUsuioOKnLEo6lAHTfec2ylRsscFvoRAWjgHS+oIcRrhualDw4FVTS+pZ07oWmeK6g8Fz94D3EYvtfsRECKuV8nzr4J4ZvAGRCSv3LZdhHdM6P4wqULxtiULjCCFJ5isvRUxXuXGUVRsMOWYWlesNwtQgwluEJssGAvI7KYbsr0soQky26YJjXATkXphgH0MV7SKy3iVRyO/UxAjGdt0LaRIueCZvi+yKiGhrczNRsNuoZV3MEmVUu5c0dCbjjfog6gpvq9wb6rmvpl2JxhJWpZtt/qg3yC6EMh1N17LqFJCt6X6juoKiXxyzmUKuD/AMhUnS2LgXB2f6WDAhdUgp91P1kuInw4b/8ASU9Au8B+yGligN4CAFVsC3oZIgprVjHoVWszK3QNq+FgihKKxzNC5Ca8UClGK4tzENL+7l/xZTVe4CdhHUUV2AxUQEz3GFzNb2hHIShrDXAxqHYBBe62ZTaN6dBfBCHbVKCDJlqKMI5uWB8AsUUEhBcGG5ELSBVcHCmUgBwZZ2vuBsQmQ5hBQ2sq7DsjiCFAtaUw/Gk9cc4mR/O2EpMeFzBSOtCASjyI0hAHNh9oxE4EbGV2vCjlPUQQ6nkSdY4WfZ0QPGqNgtZ7qLRMtU21cViKysj6gHD1vBCS1AmzgTJt608ShjBfUmgmLPY74EE/YETtlA1oAApLbV7cntZU+pU0dYm7iiIF7uCO2jiEPaxbgwLHxTasiG0piS07iKrblJ2CVncRcNEwEHd2My9wAoBF3fWw4UmahFhllxErjKQtsJxRgbxDz3cB6YheJtlABF8qxjlLMlRx4bXx7OkRYuJSHUfmYB/YvBCMOvirsIW+K5jYUuNusPQYe0iV3RuSXMzOGLuLR2tDwKSmDZXwGM5AQaURU6M3khV6l8xuXyUkfC8yUrH8iSjqEsnwGuMrgOo0JjPsPBZflw7bOBgkGvHS86oZBR6Qt+iWoOT7h0o6uAqrEr1fjlOIpCyVtfZ0xGvtVXAwOtM8cYjt3b7O4XT7SMDJD6C/ULMbDOF6ZVg6w2nG5C3TKUDFebxCGNPA9o+ZvNxzEs18ogeqZXcgFbzMjn2wTtAo+iWUE5FyYDLlsCm+opM5tt4yVDh+h4T0k0kKIvtmczWSolkVVWVexO4MEGAhdnjMqd3QVe2WoHjAEAzJUWOfeGicPJmJsq5D1Eetx/vKmTLOK1uGH0Ram2doY4ZAEMRkZ9QckMGosrURQA2fY7liFX6i4YUscnd83KRJZ+z36hsLtrlpILQIuv8AauI2y22h9QhPHV0djCdDSb1Szi6PMGyEcP4iMIixtAStb1tlGy6RjsLDpiIuuiqlgSHStkafNK0AZT6i3H55S+KKj0GvZFMx45s5CgAUU13HXmHFQiwRzXGVXtYb+0qXKS9M0SdQrJRim0Olv0zVQ+5sSmyhxL3LU9ijgWgOf3DYcxiWUWDbl/yHSDMbwkIcXJi3FlhUdBrGfT4mKqoOmKKKIBwYEuvbKw0sPCT0VgZGoJgVqGsdxi06qLiWICKy8MWK16aq4DqxtV9oOmCWYCLXu4Pqoh8d5UsC7/zXmERkq/8AgTmLSXO2bmUYS/cPW0r319nEX5WYbhdj4EseiAcTFZW9wthQwmBDoAW21MJ9a41gkEbT6mSmaFbjhgz5BKP6RGOcsjRHIJ9P7RqkXolrqsy1ezE31eatwiZKq7qiRADn2sUSKSqoSoEJAEr5lWXJGjEpQOin7FTPLSiphRlfm1VCyWqeVuA1etcz4AblBcDmASVTri9+mrpfhvjj3jy7/qJ91iO9FdSP+mmxCJhUBiphYrFFlwGxSR47SPHO4lxtGkIVcMO4cQduYkx98P8AcuGy8b1Lgh0EHfRcwllqi6oxkpG/p+oZxyZbPbBpTp5psjYSMq7cqHoqghCEUrirQh52IR/SIWr4SdEU6DPDg7QsvJfuLUFAKEIVYkEObjtzZcG6gyy7dUhMB3Mw8WUmqIjEA3RMWuz0koVAm+IzIvNFiGFJ4BilqcQMCNEIPVKhbba8Cz0BPnBT+D0qM/uoBO4USRVma7uNPtQULFq/9aLAZHdkneYrCbSS6RDKkEXTFMGCkXwmO5wBcHgfIxmYHHUM+faQsxp5oUoVpirMbVY2bg4lnMfqTytscovhYvkhcu09qzrIoO5dRHip+r6/cz4nsJBMuaz0cc3LYTBhBAZ+/GqLj0KsK1HQ0il6uuJZ+JTB3hUD6rbljtQEctVDbmWEDe2a6uBj3QXggFRaLptENf2ZahHNXp9Eg2FM6H0w2Je5i4ABXUsIurxoI2usEmzxAKWIaS/YbhphO55qCfTsOUQXdo2bieDn+iMWyseefaHHgoTDQqoMdrCNRQ46XqVJ/ENue/ct/Arpff8AcbSzdc12pbv69m5YDoVWCGNq3/8A0zKdk7YkwpzWEGzuCraOH0xVpaOdnsRMZit8vbK2h2BovtgoB6C19JymFoBhKR6Zb5nDs/cBuu/+QwyrNSxLKK5dYH3f1X4D8jyUkBwMVlRs8KlA9lSQ00fWsJuZkhics7rluAKadsQiD62KJ6JdsQgEicVFSKTPk+vB2mX1LpEj0csH/soefj/1lVOOBpgQu17mtQrExwKXVizaRWfuMepWBWq9Ru8x2oYHPhmdC+8CFkeSWt1P+5Z2nBh4EmsYaJLikaQEjyzLlazP2n8aLqB6xZ7mpKnL3dx2DkncJXZaSQSaSMMgUGkllK2nMEw3SGL4nJFTU10HHcivXkX/ACMJgQEPbqAXGWKeQlfFcOEWBWw572cR1T8KbisdrWMcIhsaspTH+HWwM2RAKgdMGgYz7YPwdIYYx/NRcJe9e4FxKshtckTC5kJW5WnC8wAUtsndQ7g0OyDZ7icse6xTL30qkgYQqlcMRqouKYNaJgEI1AloJaRCoSV8VAQUKCq5UECEEBJXJZbHkCHDKdfQY+S3yuaJjSI/UUOK2ykaCdZyQ8bazMBazuBB+1ubj66dl3GtHf7UdRsFoLy5xL4/E8QzhlzXaA37moh6qLRqGWfRFGSazuhXUuWpKNu+prNqksG1YzhwvauL4mv4LhXVyp/MpaLx/UIG/TRbeI6y4DH7qO7oTOnOI6doryuUMDBcJvTL9bEA7iUo3VYZja0PtYgpjcMMtofUquVi6K4DWgblwoSqr/VZ6BSWAdLOpT/Gz2NxtkTBRRD3oFO4YAaD1G8cGjDXIzIQ4uCElyrSRFH14S0X3nZ5sFH2wegb6DbKkTy7gBo88l2R5bVWLly/BAdlL5Bgfx8AV+BCX3/eGTwU6h2l/J5oEMtj/eWzEFMUMv7jUnUVoxgNkQFW6XgE8kDxcuaYrN1g4YbX6/D2ikspuBj1Btf8Ww/+xbh6jwf6IK2e5mqwLbgcRgxab3o4hCNXlv0qXGiXK8nKizDGEdDKZmlCzgnFSmRSyzW1tnYyd1+kMicLRv8AfMIVMwxv6gpMMgLHqRjE2meGwZQE1FcfcZRa2PHJAZy5FehKLOU2MGN3RhU5nSDFgzIEEYB/eo6FEVPTqALi36IrPF9OqIZcosrsUj82LBxRyMxOibT98xjG2vBd3CuzcKVGXJAMb4XKoLAB24lL6KBt4gYddt/ZUXDXVWu1QaYvQ3oXIiPe1X6YQNseJUvy9bFs7crM7bTNS9a+F80+CV8CFnBpJfmrWWKUVZZHbXAhACq8zKdmgigXP/UmDx+fZAb503qZbXEl8ANxeATI6YbVDljHAMB6mKrajLf+HZ9Qz/pHgwAdrl+oYY5aqXGVyoBXEJYRB3gX3OKOXXOkLHNAxp1GGoU6OncorQ0vEYBbmFUpSNIomRKtHGZfKcwqAbxLuDaXGtcB7JYrIhH+G4Ci6tkagpW9+EMDApB3MD8YIFqwHAcksb6YFPDKtmig39oFS3u1BrDXRmnCBrqFp7ICJqZS8ykj6asHn9w2Z54CP9pWL6uofSt3GahoCkf+wE/JVLZhhFS7TLHrtGtkbND9wAAOddQlxYWoGTBP7EezwbnSksmvCzvMqCFE1t6VKgORQD3UytFPTGrAoX2wseLOzMIugyJEXLawUZhjJeSGGzicdFstj1B6FdwBTsCET7C5Je+bye+VHzvgCi6hmAoA0wICK71cBUWdVs4d7fs6X4QusePJrnr38CXV4Ckc3LC3RDadidvUDKagRsGuLRECoWHNepjEw27blvx04HVTPpS0OHEAfeF4D2yjVzNtfqItzQHsqMqroPpjy17dr+4ccYLh94ltCmgap+5fUbbRNvHYkS7YUg9KMhaKmkqA23GynFQ/YpS7LrFPBLag7FpbN7hxBly6vhNq1Gt8S8VZ6kG2EOjLYr6hdLVGg5kU7qP5WDB8JkCRo6iRNJ1f4Q9GVUs6IP1BLlKA5gsQPe3BU3V00X6QY8l20I8YqfgnITbzuAA5B0scjN8KLi+GPmB3TLzTPSXg+X/+Ny8xqKTgD5IYNv5Uly4hjriIoTfNYXEry4kfoTdIZnW9xb5vpcUrOyGc0lwnaoJ5EtvAIEDy+FCraKRifV4FLuDosAs2+UOPDOMaSyhur4uVlguz+01H5a1cS8aBdnAt6XCAZ4C2h6hz69oyCXgRRFl9kfNrBp9Q51KUtkGxGQBsyMF+aTjkjbSZO4s7rM/tLyrHB5uU3Y3Rj+EBdQVqMeiu14EV87aaQ3cVWkMH45CH3ENMsF1prcuxoaOFPcU6hTq1f3HUZvdtUCllatx7CHklDT37ZVX4A5YOWpQlb9oi0mCxeETIkXOz09QROGC5O2C7JVD9DORH2zCDNDgBBvkMIyK2qL7uUzhIQxfcsgr6IBmenH9IWc/XvcbwVhasKRb4vz925jtrMq1xm/Og7VwRiaKHkYQwssMqKMEAgwclxUXLMNsfQzyWmOYfb2Qm0g8TzbXH2B4dMJGE0hNE8sV1f8BCXgXy1mKU5tI6Yr++m64SMLU21MImOK22XhHdFuW8zGsX9pLqXwZfXDlSpa32zI7/AFTHplLhcYosOGDpAsGBCophhgZOW3h7mOOv2Quq0MjHpTUdR4q7SZOyMsKVHJ3G62oGDpaV9EydNgWQIoiPXi+ncFoH3DXoxUsiiCNw8qltsjjLhhjhlA9eC7/UzoLCpfcBtz2GHhuKa0DL/Y3OkSxvqBjeS3UePqV0jKVL66jtU24CrYMca+gWLrBA3aSI27Yc7tgMEoF5LbvkypZVwY7Tlq1XLz5oK0MqZWf8x6lQg6BsSKlM2WxqZCbNnXhUdzGvs+5UIRJiUp0QJUqEkks0vEY3ZHa/Ur2iZrlkdPUELIrb14EY8leRxcNW6E2QxWI2w1C666IjauJxAXSKaDcFSl4QKpZnkHP2w+V5yB7qDdblsMdhFUd2JuXPtouaa19ke5ZQ3Q/XBFvtbL/KNq3dyIZGrFYt4Yiwxx3Ef3YyI5QMUb4a1ggeIvJd4qC4YAVifXUFyN3FeIMCixAaDU8HthtmqQKoOkOGodRX6oOJKz1sp/bxMyStVuYfgBFxklqyxBTNi+Fvcre1FcPuA0AthCGIS2ClNFtBNY5qH0p9hJSAO9XsQ1uxjawPLG8j0JZSRtQySlwOghwQx2zIVLzyvd4IXhMYVgjCGw35FlHEFVIDPPwIFUUtmQRFw+FxVK6G4JTAiXSpqpeJkZsFb5uFjVGmgsPNBCyJBQy63EavlcEIMCCHPgIDZDmLSR8JHYtsSkYALiwmFpZfVOS4IcyRwXyQBDMl4e4BCnSCtj3Ppas1CbG96dRYfVt0qohKhoctSgkVdskzVLQxF0ORZTGIuxrQrqXfBcU9MtRGUXfDEbcsrAyHNyhHCXh9y97L1BAjq47SMBLgy9tpWuGY5CFwqzuOOQvxyEuhX/4ixZYexiHOImCt1JUpQ1y8MPFFEyFYirpLIVZ0pOqjk5B4SYl3cgWIZDixGMxlFgSlf7Jo5j7HioMUtCC0Vcfi1iHCsCjBMApVqi5SkzaksQ4Q0bqfs7lhsUu17YsppfXo/CL4qHZ3j7i+P9Z815H4MCZmMupFGM0jdVL9S4of2inGSXS9pNx6CXt+BV6FyJop6JBRf7kaafBYSHuPKH2QYtJCPgg6IYMVA8kpW2FxC+rQVcsWqOGSN+7PUVsKa/UHjebhjDg5IOHfFf8AsXPgni3cE+FqK2kNQUpBlxCxqBzFAPmHMoGC2LAA0jbqXrqifzMiziKGgI53dbA7EdVDfy6hrwKRZ67jDxvDpw3Fb2tsArs6y24s3i0axtwrA+4bfFtm0HRnaYzzErRn8RIU2VucpBkMtzerl8NkSr8204ZSYvffsepYa6G19Eha6XMnpZmJwHV4pbntC1ZRlt8ktX1dcvtFeDSEt7i8PhACUNlSgIoho3HtdsRezaqihVFrSzshSIDdcLxULsryKjFQS4lT16EDGg2QgilW4e3wLQlg20e578XJrSGnSuGZhGeF3luu5coS7PqUnwDrlZeonKxJ0fc16gYJ75YwuU9XTK93ZpZ7ixOSqb9V1AmKRxZ0QDvFDLNVcJhJox9l6j+24VU9RU7suvsCPrwTIVeYl9wgvr6gLxmTNHhg/wDlO07Y0P2S+hh3SQG/qe4EMtZN9kcMPQUqmUqDyUJYViVMt04rVEoQ21x+kL7A7Iiy4rRlGA1XoZk4Jf8A3g8QnLGHmFPTg6SJtZy84S3nMuFrGkn7Ss+q0rnqcQtiJois8StMb7XEdiN7llVG0/yjLCwjsQ8p9Ls2iFUVv/zpkOyOCvWOomViX6/cA8fk0OxmCsTz2JY4dHg6ly5cJCnDtKGG0trY/wBxWIvwxA2sAhpRZVX5sYnbRZcHiiAo1cGyyMHQicnta8JkFuA1N6RZcCYZWiCaueUXL8HgTtsa0t4osAca/gx7LXgIwxR3rGVKHP7cEddm1Ut+kstJ6RfMRoZge/YhXrVT/aYfycatJZyb5/v6jfyCvQmxoku0QoTZ3LeXIT/sSEVQKbga6RjRwhWypXJgkVpEZU9wd6gtRmF5LDjDevEeCLjMREoq1ItnCxXJC0efz3EdM52QSRFwCphBu5Q2SulqLRGVwzUA39eTFIEYLxVaBgu92iuoYcWvuDw2uT/cLpoged0yxRZobPYy4V2Gr9LPQXsFwe4q5jQN+7lbQXv+gRgJIWOAmkw3Of8Awj+k+gdHm/lXm5f4Ayp+ype1Z6ugoGOyIZHqVcX5U7hVBvcoDUVWKLKAXxCvd0xA1GmMrWdgwx3BnFMtLULrBOerYzUv9ca2jT4l952gQ7yBhKi9d7jqpyHKVNV0S+E1uWIWp/Y/TBVVjyQSX8m4sML1Ke/3G1BvGxNv8UCVk5IzES8ngYLNQoNC7v3BhW2gJ7wG/qKLuMVlhgLKhriW/wDtWIGoe2wvbE5t4FEQF3bfEBJ7ZO8QUTSNvTEEmqm5kNxfCXVrxGvUwWC2Votw/cqYtUrH6g6pNMz3GKsrBjEy4xzxVcy5fdd4UxI4RRv4nEnt6T0+Mvuh9SjwtfWmNHFQuRtTuL1eyJAhXAhg3RS9Spa2RxMCiHddEygKoa8DPrYrEwtP+4g4SQCIeWbeH1faIRzgiKti+VrvvRx8fB3KMHrxxlVwdcIK6tkQK3l1tTuV4pUtZd0SVmE5xBhzrifVEyniL0eMfcbNVDKsOiFbprN8Zsjd0Yna2AwuccoLtllwx0hMosHMH1LJc0WFDK6L+UYEFxYQwvoLCOyXMji6YRS9DQXZq9F5vMrFrV1XoJTT33Zr1ESFZTy7IstxHLHqgW0kQ4GVSRjJhuwuUb5juooSAqCkOI2OluKJGpNwY30944TKZ4866aik84RItVP7v/ioQ0CUuz3EmUp1eBtaatg9xni3FusBWoKf7JJrBiGkL7lJrcZRvfUGJ9Gj2VEMpKbUi9ERE8DFcUyFjTEPJgqMRjcHyUcQXmK4+A8QVuHWJoWsWApcI2Cw99o+iEEswOTASvq6bMuWmSKcm79Igy/Cil1Kjf7cxE35BdRDwZtyWmOSH+qdkR6ZywpWXbS+vUsmH4rzmNTm8D95ehAfZ5i5rsK5S9xQeq4WkYUGOjJlFlpZaOiLSBzN2UerN/UO6IgMyWIu/VL0VdlEpAH/AHPBqtsMi2Q3EJ8IKyuotzY4SK3DDz6hSlIGivGYhoWuyypscKQDmpKZn2xQWSyG44laxXn7iMGXYzSDJd3CsBMmrLFC+4KOlZyCYTa1pqLYDF2Kh7MHdOXjELYKy+3tZQBUbOP0QCK5U7Xt0T/Q6cQeo/ugGpHwPgflCvplpLr70n63MYCT22wxaTxKruGzBiVfz8w7XtVK8E7eKUwSi9XmAth9ozIftKMbmwlkln7I9cNU5ihdkuUTKe/ib6k6ajGpfSYyE8DC77oM9DtKuK9qHfuv0hPW1uIiFSrmipzOZQ5YgnUTnCvrrjsVr+4TcY4WEB0ZLKmBuojCvbsirBRJkS/vRjGAKwXZwzLFM5KjhDE1P7nBpsQ8LkI3N1mNLBNmUbRL5WALK3cNqsFTVOoxHuo6S082gllta+ZMmIjNruNHx5T7GWADBU+ofKoOHtLbjThJW4Ce9ye4FAovNSt7BRT5piJ07VwOC4bROS4uUBCVHvwpLdRVlDhaKnUbUuu5KiqiNlGZ5IvcqiYUuVRDqgFTTsm7ELO98QgPFYEgoKSiMe9kQLIg0vD9RaSjPDfwkHSOpaJ4gipTRsmz1j0ZgnPvZmoZ/qVDmu3B/UTMh1D+YN6gpcs1EHjRM69MpxDkn7w8zWVD/TBo2Tdq8fymLNKrWGFg15Gn/uh0GgTKj8NyUHCEELUjQFw26lOEUpABVe76gvMWCVxuugQa0Jv1iGvrKURLF0ZjHLGisxKSwgldldRg9UoA/idTglfVDUIJUnLA5sgFZdkrPcJQDxKX9caBG4tKkyXFW1uDHDUHLYUKuUHIJh7BmdgqEW3mKNbXIiy99VrojvVcYQIIE3aaVdSTLYxcucrkzdIPdBSxXLCg30y8unuz+pHaleqjNQKJcKSqgEDS8EI8nKlkM40FFKF+FkIF2w+KnEMJqSZ++5i4oAR1gwMGL49PvmDuVywyMcjEq5yri+G68Hkg+MsR8t62mkBBeoZUAqyBdgq/+x6lHM8fTTLGLBKpjn7icaEzkqAKdiZe4VylB+4ZShVZZhlGk6uLaIjrczgIsULNQnZFgwLzUTeaNnfPEZkkxivJGJLVmUbYvu3eNGan3lrKpcIU1NjYwEUj1GwXdNQdiC0vuA5iayGMZXbPaFElVnpjcV9YZKuF4YIAAw0/RhOhOHFxHOQGopQMBS79wupYnkr2katr1LSMApLwNHNspV9o8PS4BAqOLfoiqkKMuEYCBVGngd0mOYLR/m9RadcdD5HwPD+OzUvCyym/rYCUv3QhAermjZO70R6EMVg6r9k64pMLSYV10oDLLWyZT8IWSh0cgwTJ9dQKGnWMWoG+46LHsYMM7Q+RfkRx55TuX7b1MQxsP0MApyZpmMrFLxG9EYriBs0wX3tuSdFNxaKGfRBYt2MVYQpvmCDke+UUjEtky/cRcwSiuixTZOEzCyHc8wmBo5n1CJiycjDto2vMaQ4ggQn6wmSNNtSolVuCmMll3aGp5uFkHWVk6iWcl8Mouz8EB3le5ZaZjW0CFWwtgbfViRd/zSsB1Zf0lRVw6FFxBJ11F8D+IaEn07iuI2KwxghJKUeDOTApyvojA45aBCp1Zo8BK4h3cHUCH5oNMc8Lab8JBKRqBcsUBuLwvP2sPFYIlXxLL7Hx26DQFsIM7H/uVY9g0RRlmc4qX5fpBDgY3V3cquyciX+VgXgLzl9PUQYSXZVeiCYQbxe7h1QA85yMF0zj8BwXGJflcnohr3Cnr3HeqNtQXn7zGKweh7hqwuikAyhABtlBmiWX2GunOJZ/KEZOEoBQYizPbIFw+or1Kpq0Yc+otSK0XPRXcZzmbcv1BrH7QcJMAlK76BO7uEtPU0L1NRk9BAQu/BFgHRAPYtmO96X83hoiKAlp6WtIXAqxIVXhQu43cYkpiHEaDJ4xgMyvGT7SblgluM0GgYHjfBwa8E2UuSm5ZPUpbFLoUtUIbBao6YpdaXEAtrIVjjQl0EHmUt+kKz+A+FGwRu2VEsIOwZW2dlhae3HMCUxkuML8VSoeCDHloyXolzSkPZyvDZOw9JBpRgbPg35v6HIwbnbLlFJGxPRPVKK0VSDMgq4dpv8ATT1rItyFt7o6YoWqleDrPMFxbilkJzAXwv1BRpwwAQfVSmNuQPlXRAdEXNmMxaSDlHrW54B5hDnFQBXM7Q6FVmsDMC1hYHcrNqU9JozhF09xSjn0/hEf37ftA43zcfX6lj8BUP4YxYOysUWZbkGR6IyoEqKyYv7hTQKW+F9MRQh5yWvVe53IHgRwkXa1/KYB1wMfZFEz/e67McUNyPgfjaYRbS68OUGiBdW1XUGX+S5U/in71ZR/LEH1YL/uOVt6c2YKeYYp+ogsuK7g9W5hEplEOS/5jNn22H4EUkuVYvglw8+A1bMisO3dVDmiwkyh7FJWbDLm/wBPucxpziMWF3mEgi82Irj4rmHudBNFWWqMTFhMlu4LSnIIuFynMO7cQHZLIrG6hsqkE01UMbjheEhRFxVBYI22eyKVoWVjSVByjIhZiHlGLls9MerBd37cwtec8kdMH8c0lsiVicsRWrHNmKmVf5P9RyqQvtwjr/ZlSFY1QuFmqLg4VUVQ2JUhA+UqvZ2QBzHlp6gsVGOpzUB1bYVnjjEVD7FW68lRmX4Le+0MKT/TrSq++KBbtQ1c2K9Ks0UDBq3NPYYdVCuN6ZuJw26TiAq0LPEFigJrw/c9Y4I+iUpUo9QQjHzG7iRXeDLFFO0y1sR9JL/otwZdnDSikA2Ev2uz0RY7Kp80xVLOSRxZbzMzka5vC9TBppvH85rEwyAo6gSh4PDXOJrMllibuiZ2R9cxjULYWw4qUOu6uLPqWfyby3BDLUdwbvoma6uDvel04xLWP/VAxfs1Tl49OIfJdopVMX1B6SD5Ubu5Q7eVROm1DYRJksugD+ofCW2QuSkeagr03DZe9VEYU3B2+iIrIiYAFy0u9UStSA0E0+mO9OA2gu9mvMLUgEanA3wU58GPyVoJZFyWxhBhfI2NMZNujgPDoArkMK298McZgCNfon7lrEQYEYd3RjAFhwF1FJXRC6rcKoKl/YxHLFVAkBMEpYyNb3XzjGrK5jbxcHgK6XkjF2sFQBKQEdXJKj8N42Ai8dM7iBcuBzTK1URdnjaGy0x8OF5jsBEZUvaxeF8iDYsieMmoPxysBrucLNo0g4qJK8yr8pgaDbnIS2PDFYuqa6GVo6Xb2ItniijljHRwIs4vdQNaO9XKS3pqUbeBgHE6/wCnSTBi1bcHgrxAKz/Cpo64UYRiVGsqHDKSA9NsOI8VjNV/8gvc+wp9dRRp9oeWk3ML2KIW4N461g8AGFFcVbVnlCt5BbD+pmVaYrdOpZRtqT17IPHxDa/RhjVdzaUPcA25jBT6hsRwLf2lUsGtO57gyENUVHpC4beZf+jD3iM6+3RHt9qL9u2XZOF+CeiGGybF7mVe65wDz5yD8K+MlCi/4uCNGtZeJepYUp/qAYtaV/3Fsz0l+iVZonFFVAs72buARQ6bASpm0vqOoHmmNz6iolTK/eZcpL9S/XqSU8K0QJRRSETi7K8HqtBFNGuRqYKSyGFK204EuGd1iLNuGM0BD9w7lCBirXuN3e7ZUthIG8jBA/7ERW+zBF4okqSCnmOF0akH8Zj3tQ2ZJWDXpA3uwR9BspxLZpaAzC4UumHhI7zF0usTQbs1EChruB9pR0kiLzKJYjUtdVGKrLDo7Im7L2r6jkuwcMrVVhZS6Gsylafwp/jGau5uD1dzfttAIvy+9du5WsI5brFyurOhidaIjQjW9wyf+2fuLETUuY61uK7ZdttgcvqZN9jObSOP3BYU5L7oKKa3TnjP7Y8Q4mtAvgkEekqhENAaSU802Q8ED1jZkQIiKqxxROSrVth1hUWdIrFz+UrqWZyXxk+8LA/cboktitJhYAVSGDdzfPVzZ9bN/eUE4WLxBTDJQKbSumEzKWFNldMA8vWL6pc/iYSeZg09D+6Ud33DDfqNSKDF6YjhUhYr5x+484IIo4ftCgHtJR9VxLRO2gJ3FM4XSZHrrun7g2jpY+q4+Oj1EThhnPbHMarBeiCE2DYCJHavAnub46Ln8RX1RwuIYMFFEAhIbsZjVTZboEc2qDsTmZnApk5RlkIfV2qU4DrdZZnaXO7uK2cA5WEbsJh/W1qqAlb912BKzu4eaYZFUWaRU+leggXHFGTmO2PHrIdnjuXcB7lTam+CghrFqrKXYhtzWI4pWqGi2X5LgxSVhDI6zrZxOc5ct18a9Bkfs1Bod+L2YJ1zguGq8LcsfRfy3Gvh0/C6Vtb8hUZwlkeHwoN65qVrhYXbFXFy4MGOgtbckdpX8uLGEheP6+yYDieY69MT4Nijf3RuH5ykYZcxEuPcNxDb6ppcyX2MsyrVzWcowGSXH/ZHHxgOfb7gq4G0YgoN7WEcmiGj9yj7/QEnqEm6ew9wABfm+XllMgJm3cRoWIWMzLe1fQIV6auQe6j1GGN6YZTYjYX6mOWo5S8TCrkTD7uOEV7HRG2Jh4hZRsiWFeWcoQx77kJnWN0fywyv+u/giP3hydE6dXSHwDxv4V4vyfjpTbX+qIJLOCl+4cd3OaBw9nf8Jat+7/4Qdy+zSYN2vtxeAmXKwj9zMtvpzN/h1L+ZXmfZxc7YqjOaH6aMR/7TOfw+pMq7w8R1udkY1bhVCq86XFBb0bId07VS6o4zZh1Fn94Sq2RRhQBhWTUKIVjJwjzoYyxD36jlFQh0nohSnI8yaajCVfLuAR0C4wl/JgJoFmIRkULhl/Wt4SdEolMHS/eFLQKzuORDUKqqYDguB2ra0jrMZh8o3ZzcrCuCtVTCR3pKSLSg3cNmf64d9h0BKiYaVlDpEfrPY+KoevtOoxBZmDDh1W1CLMbEVRGVDJpC+5em8rCnmAdWJuGcnf6j8/VnvcugEXwCLCAEyWRShcnhd+FinSDXkiy7yqNB4JE8ouIMLvNTCVYSC/WBD+7JckCgCMtbAI4eCIt8AaGOWEgGPsYNYSKS+69yiXvrjCXWqgYihq+oKZoZNSiWmx/rH2SwsRKqOqmD3brY1Bd3R+TdMUFLptpDBbzaoe5dmD2OdCC8AQB2PMO6YQR3wy8ql9gY+f5GfUTaJN15hiLVI6jYpmFVsoZu6QWkfni8WMsjAJWWmX3KqVDyfxBHBcdpHj1ERPGxl6SPi45GVNUSnEbwxEVbHxZ9hHVv/wC4o1+VjLTginNLW8eYRl7nLEcy3baj8ewla9tEbFDrdFfcI2Wg8j2jIMc6R0ibWbIhZ1y/7w/t8QjMEqXvFMvCTP8A6DsSyFtDdl4gW026XLl+SCO4KU9RUX4m6LPXLr7hmEMocow7nZIbU3ZidAcsNTdqbS4yol5OoxfwoY2lJKmlt57qfN5assv4jItz8Ug51jn+5K54P93NfcmrHvEaosEunZ6gu1UqWNDoYWJia04EpX0i1H2mNCLOXH7gsdADlg5L8ZBnAS4qeYJU1RY/lKOxlZ9qJtyX/KVKDZnUDpg7KmWELBs7Bu3Cy6MAIx1EEzXuMtalDLatkMTEpe9931P0MhtAHAwAPfZKzHeX/CIoth5f+xymU6cwYidPOyBAtuagRhrP/ssBfwegSvJ8lII5DeQiBj4Ynwv4Hydy3Q3NH7OaZXxA0THCh1O5zh9sRrVsYShoECy+BkW+uZV9Ed+kqfYTLi8UEs0lpFCy3yLE+6t1D6IjJpUD6+SuquQY/mF6M5yxOxHRlhcNb3TEFLzOjzPFrcqBhqwiEDozIqnVBj6hxjds2rGlkCEDZ9ZoMoWUumD5A5EZT1kKRNw3+kUrT9hFO3ljRUTC0oZ+e1JjDjPELqt9MUqCQPTC2mPusDCAU01/lNPe1REHT0blUpnTE1jkoZg0EDo7gcAYty/bEcSlF1AkVUpde5oHK8sdxIN76epUfzMtGioiykYLA7bg9mB2ekLK6QWEMSWR6MlrHnVy8VBAiEWJhIxIz2Hue48kDQ27PqXS1VCvbUM063us4I/2/RcPhfCWewy1WpfghOSOceKBtMK4IECKU1rXMZM+6dvshllqNWDi4xuuA2HjI4Kn2cxmMbgV1C0zW9MShieiRNa+iVhmJRATE9FSsHUQOdHH6wGqzQuB7PVQjpIFx4YhvzfdrPNfqUZ2btqZZqhVT28EvEZvJcb06BU9ri4pQmy6fqBBtNae4CvkIbWWq8xfLA1TUFquvURSrbj6r6xFYtEGQmJQWVpEkKdgpGVHQWVUVppYKU4qVN7LI05lMjMVi3DFFxLfab4FxyhuPN0VX0SlyiKtTgSpwEFasatOGOqONv5JpKKe8HaCB4kKLq6tghvgFbgVBSK8QRgkbMoPcUyMyYepr2OGULZVzM0OO6cwgQKrGnk9TpZVxVhaq8OdqDe2xNO2MPFmA2DKknVTn5LUqNfKLGD53jdkrt3kqXMvVyDutjaRnceHPNl8WGjFcboRc0tpH7NjwRRslx+0IFSsXxcv53L+NRImFx349k7B8O0hjqsXwjkA5ORMJmk4kJFbrN37l7RscUbO4Y5B2IfTOJ2XjVZXqM1YC5VKQALZ7IiKv0te7hHHrC9YZCYF8EHUyWSwuz/eMqDa2zbCLQHKaf1LWzRFtRddlcza0H7EFRMf1dEzjWDi2sdhBAbPek+4BUWHB/ucSEF2qShDXwH1F+JasXk+NQjPULifvpv29xocTt+R8DIa8eWNjmbS2PhhfOxBhZ1xwK6my6VEE7ds/Yw4XGDefcPTR3GD+4BQvugnL0cY/kjlHdNljSlvksJJhioIcdlWJV6mrF+jiFEH1tSZWNDJksYvQqtle2zTcHp3lYhXp9McFW3b+6jyi9DURzLkGIJuA6vERs9S2WUXAvDKVsKUcxy7kcioroUZyyjzq5RX1PVi2WZ63FabNRvkYynDGy4PeMNl6MQrcHuLYELbFtPTkStL65MKXuccFpLlLqCQwm7l4c/nvUGajdUkCQIojiGdDNG0D4uqZRY2lxkwYuekNlgWyloopZtglghnNuoBGaAFqGpys+EfcvbQW6In5tiQU6ylsdR4StY3A/UaSlWpeOOAzTVzSngVl3l51Q5ag00gr/Ci8IcXmujMLTkcVO6mbuIAM57mwbtAHm5f8kxqTyDnuuWhzA82yW/VIWtQpx91GvQ+p+pXnhqhpnNW8mQpDZAYFhw1Z1v3BP8ANgCJsDSlRqzrKiFEAViinqY43tcDA+4RaKPNRB2cZu44shPoLJxurJSVwvuejmGKqsK3BB/SlZ1e2LNAuiaDuNmXJgoZp0DZJVq0CrrbLDmMzZ06eSEntGjoJKOkEEgjvxBt6xPGgWVH1BZUm6rpjY7outHQiUj0JiYjJV/pE801VRHKAMu0HChTNnRH7ZYhdDfMd4oiTf1NFtLUU4gwKg0BmkTkcESPQ00nIlx7ybRwxNA6FG628KJcJcjUVGH0MMNBT4g2yN4kFw2w9xtzSm1h4KNWXRK8oAOWalMzW/MbHIuWkCYGHtg9kj0VqpAEO3RMssYjxLUtoiy4MztQuQEJhEi7H4DCWB8zkeH4XA41iFXpbH8qRgAi+dyc/AQluESVduYjLljeYt4R9B9RYuFpQUdkLjphPg/C/wADfk8JUR1JcYmRtjs9xljNXN0RsQ2lpIsUTQwTphYfSGk4saLSWQNFG0v9R3AFQYgIanIEoffuOBYNg1DGSXTkO5e/cnh9QVVKB59XYj7lQzS+5skPp37JUo5vBpO2pRg5oFpGnj0zD7HnLxNX+mVu2m1/9mSkcnMsd3i6tIfNvGt/cBoAwcn3B+I+eWjDpBSOkPlX+fDG2/8ATMX3Ys0Rjzv24Vy66rgUS9vBhNfbP4hilwWQuB3ENn3soU3aYmIFRzENuX9QyPRTSvFoMH0E7uZkx7YdAnOz9ECo1sOkJpGXUlggFEiMQYme/wDEBHMKk7GyoabtMxbs6QSOl75FWxTWOuUbQWcyt3xN7MtKDkHDEBb4Y7dAzAQyCyEX20uKdypAbiDPXMZ9Du8V9RIHyCJwBr1MtdxnalDTHDzAGPQZhboWDMU6Tc9InixlBSEFUH1gG3RdbJojKuH6hyl0rChU2u8enRwnLGVYBxG6JVjAqw8K5TkcIlwbPU2hCoQMBcepF1tr9RqoKHOXMeqiff0+LojQOyLKwEMD7jEPyxOy47S42x+wlqrUXtsIRrRogfUtZC3C7sCWqctYf5md96IkL3codQJwomc9MW8JrhgaCKDIGU9wQEbLxnlK2C+rHIO2oU2xmYhQwFlHLFVjGiYB1LtQVLsyQ+TkqUjiH9gHYd1ByLAQEpaOMubjWg2jtbmDFpsDAZX+/wCoeVWxfZHD3FzAvdOLZmJVvu3VLL4UVyd9RjYIOf8AbNfE0ccAh4N5c0xTDFx0C1HeCDaNWlvI3ZkeohMjtpT/AFMgWskV87p3sVBxpffoxBkifbyQHYkCan2nLM4aUJfTYWjoebhs7rRUcBlPE+kCi0u8RM7hHHAnOt0/UWdWi1ifU2coTGYHRR3uaZp3hplmKect178L8WxGtu8AAAbNFtXHcECeDtFi9e0uoijITm4xkRzkcpB1K7mqCFpQPN7BlFkQC24uAl62y9YTPa05Q7mWrd8/MRxqzsI3JQ6Q+Hy8c7aF2R/CyuV8H8W679L8kS9B+p9S4/BkxIIeIfSj0bQd/wCTC4NOzRqHybgXguCjONntz8Llw8P4F8Lly4+SUL9XGX+U2t3z2lvPFkF0kXEHb2fTyS6Jo0zKbS3NIlb6UleT3Ec84NepgthYFYGcBbXk1HISmLxK9A/Z/cRQcArMIjQ80RuxPPlcgzl83qEhr7Mfsl04GLOwZGMijWEzZwXyDC+48wSx8t5D9xit4eTEaE2sPkPjcuDB8X+ZNU26Gg99sV51jnfR0eGRWFbdP6rjS/er7uGIopHiIs+139JcQqs5j7e5t7eDRCGnYzOXLCqOB14qy+vUbZF+99sbG33QHQQEOUiNQ4qxej2B7iFxtZpFFQXgGHcaUoT4O2DVBgRhzRiwZqWcYPIQkCXQW6gtC62wMCGZHV3piIsOc08VNytXSXSIzKxm67Mksw+7f8lDEPLEUymMDQGgYNDFZ8oh2YcKIFYigWYu7Nm5Bu1rocyHbbG+7ZhVsnWRxBWdOXThx/2qUXw83ZPozhDZAtJKpFaSgsLayOCKek2Mcg6BsvpleQWpiJs6p7g1vsEqMo0AqZYtYJtUqqisNjBh2Qc2gjJFfs4/9xb1U7i3zNyhDRCyAxFcJ+huBGa5F6I0TiDZLaIs1rFtN9WuzF8ibFhWMgHXuOFuUAX0mLe6Q+ix5loS5CiLxQXKs3GJvi0hwexTK+2UHS6Cv5uG2iMi4hibwbkSxRGksNEPyWuCbR+X7Y/psCp6heUH0s4uBxjI4B+4LWd9JuCVgIEM80SsYoUoeHuWjEqxjyG4rVmtJPUsRKAW+DH3wun7TI6XS/3S6z9VOfswLSHeNUTPYdNh1Hd9IwKM5YpSJspEZRovt9yhNc5e9Eubyps/ZK3EWAI1uL0g54i2xHpnTTV0QogX+BlP+h1JeiPaywoQ4j7luMQ+DhPFClZ1MxmPym4qAq3uMrwhhri6j1c0InbKmZ1p5+o9rarbYSQ9BbL8DjOcdxKGlygHRHGFXHnAcW9x1GS9Ryh3K9CZrXq4S0dYocQ8YrWinqDjURGsucYkkKgyovKeGPm7L01y3rL0F+Hm+k3aX4IpvRR8gP8A5efpHc3QA/xS4FIK3oh8xnH3QYXr39ZAC4TIpHQsscvgeb+L31oOZr5wiJS/C5cvxf4DwLC/tFkvFUd2jkU3sExR3rfcg1hwKim8GbELKxcX9EmjFYlogV6H94iQi0rpY3mOi6sQzK9HOdJYfdc5/iJ/8MFr+Z/1scDniL/CCDq2el/7CvYq7hdA9TX7TtXFqk+K/wAE/NjDLGx7MEHdYmh9ynIZnAepmUAPuWNLszcssHoZhebfhDrzTxMO0PcZcf532x2gLDtxBnEO0ceiEjjNEhCKrgc4UVbWbfW+NhbC3ARgSlOBhVFiRbrf8phErvs/RKgN8lgMa+Jqz/sIZKQ2AmNcXepVdKDmbTMhxUJCYyOZePooRBnxfbjza/0fxBMYGFr9iHTOxj7DmErVsQDeBF1fbA9QxZsldVG+UjmIbS4QKO7pBAEZ1ZfolYEeR9R24XswWPuh5Xyka4Ni0QPcR2+cqyJK1Z/8IL47i0HBsjIEAHDZTRGC8ymEG9BtsbdQm4uQsWCFcuoIOmIVAmQw+otSgorT91A3FNmMaOev/IhKJMRQfYQiH0qwepS4Wih1HIALN94GQLyYSOUsZlMjaiLHOOLMSm9Con7jNRaSNm7mW1hNf9gxAEvNItZWCXT6g8t3db3ZS3coQKfX/s4Oot49xBeAwXZu5sByWKO4G9ad2AGGXthTn9EOttTNbgxLZA53zbKnPsOJfCczPGpBC9Yh+2yrVd0JgzlyCW91nEpQa1ZC+UB1BLu2cnEK50Rf9nBE9aGdSHEVOOfqGmgxi4TBQ564ED+llxCwGGbVH8pgmyu4M7gPOPsPIQNGj/pHmWk6t3rCETFlukIvuRcEWsqFa3cVPwhX98y9jpTtIt486bwsFxgDkT1BKCZinuX52WUCPwgr/QQKLzYcoOZZ5OdCucwkVw/RLqjrqY3FsquDIhFWjuOX421vK9SzeNaHZ7gXJ9arLeF3IdRcsJMXAC1lsI3+lhuEtxMvttgcoMPrqXUO1TleaYtxzdcuDHdXgOQdwrBjjyRl6oAFsMysFBl+TwQgnI8zp14Oj3UeDzfBfdeCGsdQzmMczQ8H1LKwXVcAkZU4pfK4+NoGAVSHn2t4o7Xi/FSpX4xg1FjCVp2iekRGeri3n+qZ4o7JeF1J/AlqrfBlf7ip2wVDFaAd4qorN/ykcD/QTHZe5lvwOwJqszVYjvJlf/CDlQrdcu1YK5zdMQNS28vogEtIFslkds5jgjueqzTDgGOV17S+9F9i/wDJogfuc4kUpa6txksMAzcuDEUvYgj0RKUhGiu6YEw28WTzUtVH6MZk1o8aJT/kIA9dBDNJqBu3TtMLJHd6EG1pjWlrHq5hStrpE0VDRaE/TXAv3C9Sg5AXAGdLpgH46b/ZF03A9p+5nBm7UP1Pt/mM9MohEQVX6huyHXEDeDqKy486Utcpc0MWrZG1XmMSlLAKyi1FL8XK2zlFFqHY8w4NSpLeeE9TABUtg57WLx9ZogwHVbOSYjdSC8Tb+lEnc3M016yD7fwCNfLsQun72C1AYqVhebN4MyvzP/ViI39mB62SlteMyZeqOQkvemRas4MfnCY/1mv8ZRApQxWvcyaZ0KL2bJdQVBN2PNz309WBHwwt4N5mFbageKuIFEirLHVwZuoHP1fH1Hh3cBdhiarGzg9iRbciCaU4g856A5cTFCQoGz0sdPrFIj6JiWLlueYVFSBwwj1DVz1bKFfYjkcMXtJrC6vGcjBWAIBbB9XLble0ZZ7VsjtvA7QVzQGGPRzKJwgvzNXXEAuuA4S+tlUVOB5iLVRGrTZHZfUxqAfSJmXqaKEQU3vmLXwyvTC9ytXi+ols6IP8MCCHgg6gA9SlUJs+pT1UBUUlQ/fRQ9MEWXll2lIjj/TzZD9YhwNlJKiyeIZQmktr+/BUmKuRW1j6vw4pMz9qxLKi1j1QQNEVDVzlEdZzIMd5vImG5W8R5jhkVjQ5kYexDad2rmI631rxnVVbYMtqMOJk0bhQgK3SejGPkhzevmiOtjXwIEUQhrvXXioJguoo4guOx7HBKJBJzEaPXdpfwF3LlyuIxfJLgxj7aSvm9x8JLtF0OY8nkZfn2SxRChcqM38QowGHoksjfcTPqOjZmLx4ol4P5eVI9V3+MPjX4T5V8yI42Jh4spUlkWRHM4GholzJidssslsfLyZb2en/AESnuP3OKqXv1xE9r/URkhrjlO4nme3ixixLS3UGtTwT26RqXcbsJbXP1KXnuY+hyxfbeZ/pZbbRnJAbbWxylYdloKgzxfDMYMgTDlKtojmlmzdLW4GInZfoYy9q4KJ94AWLrbuJDuHJ/pkvbN44YyNxujhKh8YEFucxwR4Gy1h9QAqZ00ywi5WYWMHVsHp7gNkNYYz1E7sMeZ+opaJnX1AYCxJT3UUb2Q5nqoMMQFt7RRGgim/Uyfo5Q9s1Gc6dvcUxTLIVM0OYcz3Daa65lPtlTlKFxlMh5yMuZYo5NB6mEuF991LNdYBcmyANSobZyZYKA3VlJikFFa7zBdEqdhyRiC+hdlR1ARzf7YSS0sAikXTpfpgM0Uv7lDIMq8LdAQiwMgkpzXLMq5XSnuM/yTpnHWOu/e8kH6NDH6EEr23iU4ipglTVOvSX76kCWYKjENAQsR5uLBtmcH16If2ru7s8zMxglPCIXOeJXey4ZeWPYu59GZkjqSHUvVBuMP1FLjpbbKdrCyXaEL+1ZmojuvjbSJ5lVm0U4oDueSBeJRs24gaIjilXLrQORiNpIJRFirRDAvmXGY1qGNrbOX1GzPtOpPlFF4p7htl9TOjxxX0cwg3eqv2Ux813oXREZPbv9y4IOzgC1jaNbJsgzWJbUnLzYRbNQVvoKkezxj/W9RDaCNqyAssq+ZrpZstQWKBqoC0CrwRfHll0O6jeT5EYfSUT2a3cXopXyQj2KWTiXHsxYMI6dAMakWWgfHqnDL5Y+CP4TpVP24iqsvwEEII8aKmHm0YQWLVjVewcS7WsxAqGUyutsdHLW5kRHOIvxr5X8ynYy9SZ1us5i1CUI6vyeUq3XSE0rOmHk/DfyqV4DzfxepT1gFxYsAhf5D8AhgihyeD4ahkcv3e2KCWX11LKy4KVoSB5IXHllIiXUZF29QyqRrrOGL7y8HiARbRXo/cZRg0zeBiIJI/c/qKu9axH3UtY2DYPQmteMa+4RIq+qD6gw7TtIVfqEsn1ebBREkW5pHVkU1dsbeI/92jX7g9zqqRFnQK4qD3Btr1HjeSpQLriwRXuPO/Yi7CMPXpg1a5Bs7i10HiVVhs1iMLLHj2EzDOAaT3EBk8ZzHBvYWG9n2Z++IYScrWkjiOXahBKEUmWIhZoNMMCDiAU2dTFlowVR1C/IdOcU+0FRPTLYgwrX0xaPxMDsgoIcr37iFscd16lNNNtB9JAzf0FzK13gO05r3ArouBSgwQzqWvUMf4qtTjWbpogyjBFaXkxBVUDVfuJHZJ8o8/tTMiRkYs2/UOCWL0MbrqNbDLku4qFlNqbKFr9TNYQGvVweoVXPMmXshbp0PUwMsrAB1HZ/Qa9WoGRI8aruWKKUQJxbCZN5OTPfUOrldZm4zzHgJ0P60QFvYtuE4i1rSuQ8sLCdW9PAzEc4MIrYUyMBLQEiOCACxY1GkPA76xX0OLQUSssuvY3cSwUbh39SrdcbnsihNWDk6eI9rWRUl6JRhDGUmriHi5ZyRKKZcryseublkrEN1RNxAshHu3R1NtL6VxUG8uSkEQQ4zZBjFZR4MEyHXIBMeBKk0ES8aJqAbwYFsfLgusQLP1Jygx0PpCVT6lR3BwRGM6LKKzP/wCpYmFqwLD1GG6lyyMXOaXpJqPCBAewlpV3So7m7vqiYn3zHvglPC9ZbF8E+1ypl0MJx63CpbfsGWQZfh1G48/PMIBayxV3ITrQz2eOdCLZikjNM4kXpEWDqGNYGTDnGCbm46u0J28zLb6PE9+suLD434Hxcv5WjZKRPW6iqV/Jfwtl/wCGo6rbSTM99Vr+CvyUh3CWfVIR+Hk8sJ5eYb9saNaxYQXR9ATqZ1ALOBf5IxIyMcqVV3PaCjL8pcULusDMeHsZDNb+YiMSPORSwqPLcAjdu59Ilpa2X+iNs7vAWAop7SGbm1jZMuz+uXV/pBiyFJ6GGiHNuTTWF+Ozborshnh2sJH9LZ2wnAmgbs4+oK2JgtkLW6cvSVdpigw6e39waMUU8WIucWtJFgao6SVljWaAcQRQN8FWS1UpGVepRQc7WTgFSB8j3GB6gWV6XFbV4Ql9LhrsabSO3DLYDBhpXX8yorDbC6FeohTTJ0e4AptKaYyZ1gq6Jje4itji7ipTW4FmHJbayp9wgz2cxHmJYOatkJyLiFtcx2/mwLDFZDbNi3V0PzOgYiUgDqkNvFXX/BLvEwc7cwHOMOX/APiA8kDYP3LiIbmk0xvzVkrmKerG/HkhtdugvkHpBepcbxh/CUbqZPbVbZQNRjwZu4WZwqXhgLcciNXKAbZLRzUDKLNpr37lSp5QUdfcYZTcf14EPyq5ctQQjubAuGvcogMhX+4atzYZlxD/AHtl+zCMeOJ8QOPUOuHVMALhJvdjG7x6QRcF9lQGxpaa+M8wJobwr/cNWNCUgblApQXz9oi2YtBvhgkKrkldqCd4Ha4HnPUDaZABobdQL8mgt9ESv6zGOkx01q6CHvlQQpJan2mDmvUGUGxNMHinuvcWWQXyXXY6im1mgO/FpdNQ5Nf/AOCisNgpcJPykkRsOCtdIXoZnKukqNH6hZbjhh9yvwcCt7TGHLGvE2bd4hmsYnP7S4ntZdj8Bm+BguS4D5bVF83LmN5l6+RMOqIwbugAQjSInth5IqrKYRU6BhpuvqNgZQY+oYQHmKz7FzFzcZahNwrF809d3yZQJ2HTxMXArachGV4f8Bfz187lzj8Fw+B/h2Ln8B9csPkYfClxmC3UoTuLP08ZvqNGIlOe5jqOi9IlACrR4IpOxs5RubWb9ojggwjqcTATqVLQU7VyhxL2l2wgVSgIToRxbPRAlLVwobJQcPzt9sb0e8Cf0y1/zAvQ0NErLpiuh9fHKpT88jMwEDVFqg4Ebzh6m15ts/plibjhphd/YElBREYsENo6X6iEcHHKMAN9KyHYrpML/cV1tLQ6fsl0RTutEADazz/Ez3Qu1RbCHTKUJfBddSh6Wh3/ACjV1XbaECEliY+lnHFgdHkVaK0nJGTAr5CJwPEAP/8AET+twtqmCnogVcWNVW2BOWpZ+yCtzukV4JqwkehrbS6nqUNLEOTgSYFHwSDm5RW4W8H0RRYYZcd3KJQ5SKR9QmVoVmTeri8gr2PpLTjkXv0MLB77vDk/pSLHCRWhwckKyd13cuRCZTMswuDF/LMo1qNXWbZeX6tWOyV0ioRfvsxMKMYFHA1F8CoCnshYxWIPsMe6Y7y7QJzNhNNxTg0pMHudLoFjmHIrLKFjx6IB3uFYibMsw0oYNwJcS6yuftH/AC+9KPMNvT1B01Nzwt5R6tKvIBohJhDhj7I4AHQJQzaFFp9TTEs1GYFoqIYalq7jGiOyLGkIbmcB2aZUpUcFzRmdhlHqjoIiBEaSOABSF/ibWQtHjDceef1PQgYG6CMHcG+mBkuv3BJnUdS5iolExbiYxgOjkTFl59xcuG8BzAhCAAaoQfIgypBp0EXNNW5T2Q2Kq23cRKKCGqenFbyQXzSzxmIlt8b3GsNmZfzojwQzvdVfT3C2+VPdG7WOQanJDr7lywkvwLcpX4FnY1G8sw502+L+BA0YrgTqK28GmpLnCWVcPvFW6wC8twlcQ0GKYIgkF7Woc27H9Qo34iK4PG20RRbw+SLtTEjcsrWDy3H5nyqB/nX+M/wlw+D4IpGhlcBKW7qs8jCWQ1AJYQB5eoSdRUKhna0g4PJExoRwVxBN04Q4+0uV3RweCNgnYce2ZDzS5y0NWZBhlBZQagDGHo+vHaLdqwZfmgutOIXizTAIFSNWBHxEWHFz+sGyqM4T+uJYL2qX+RgO4phSP9IZqbML/wC7iDe0H/pKlJuoqyxkf0TMDdPEuK2w3f3OJf6j6Zf/AJw6V6QgtgZBK5WDT+8syYAKFO5mcqmCdQYX6IwPpl0Q0DiSts7p2PqXEyh9W++I+dOb3jpZxLAQQLP7cy5Sljn9/cSGlgNpA7DQorkuXGvNoqsFCtm3+o6KJhqOxgMEfmyx6lVgx3PcYyeuLD2Y7AVHr67ibJ27h1j3UI4EMJ0NinomHW5a4jYRiqZEFDxTXYuwLb2+pizppV5g2pN2gH/YutXhcD7mcD/70SPUEINB6eSKA9bIA7bMqvvCeph/G3P00ZGOPSFpYAZ/dgEMQrk8sZG2AY7N+oN2IF/iOYKmJz/IXD+8hgKOFSoobMIvL3HxpA0Mm72l2oO2dMaghm0hjrWPr3CR4bGrMUW+3KBkETNBc7qOMB7dJhlv3xYBK6qiXGWipKav1iBcZ2O2DqVThXTUU96TLtSWgxILZ9w212VAcQi8VR162xrOVmO7oQKqyXix84kRbNvqEzcqxj05XhmNrlWUrpLtsvan7lm8clnEwgLAXWAellyISgrcrKWxWIdU93fSzEFUIPsiqEstktPH2jgjmViCmoWWK9sWfHFRp3mMtq4e6jy6auJTb1h30kVgvkn9EhDJwzcHuHWo+F8DLI+xICZ5pesImTR1fuJvXLJ5L3ugzCWibZYsI/NAIWnMSbODftl5w9j6XcsIvyGXixZcuD4uXLh/hL/NcvwHI9Pgu4ye6Cj/AIF/lqHhfghBazYXkuXwqArr/tLTVXfUTcqO5O4wbgeTbvcdcAbWiONfJtgMWuBha01Pimual5d/UPd2VXm6hYbbA+gRpTV9o2loZuOdk9gQGFMLWZWWlyiLNIZbf1E0F5zgRql4crMRGhTsSqvZdyvvqXxahlf3G7wXdR/LE8gd7+oqYo3luH7YenpdQIpexBlJ4go2/mHmxulmOwl2JKbbC0FEWX6ekjmoNmfvaHHsQl17nHuh/NIQ++ABSTNtBv2jj9IRs+oU11YgZ4phgxixhzBl0AgrHaPFEV9VcIVaC75OOZWiz9KehGsjhIp2Q/IKsv3CkOkOC5zYAdMwFFHIbxYxsO7GyPcC7AAoT3C3J3NS+q62u4LpLh6Xu4sqcR+kTVLoyvIxMmGSwLcV3FhEaLp07qIILGJK+Js8WnQSgqMDgeoIGKA7333AA5jYCBXCY1Q4ydQF3RC0vdLVQN1twn7IaArhHpyY1E28VC2Npqv7lM46Ojm3MpeBNsGtMK3X+XJeIANYCptNcyrdEsFDTVSpPVdBIeRlYgbA1BP8J/S2s7EICwDiotwFuOMvDHh6bI6GvLSsHEz4xVtE3j6lNJHLDFMGtoiRuR0mEiwwAgoRxAciEKe7AVHtAP0ZSWaLf9odz1KbSP3GQyKfM2LliaB6RBrp9HOI9XHNhlECx9umuoZAtCVZh2nIOpnvYdeI8ypT2URRBdxMhaLg2FGI7S4c3tx2Ya4uBtNpcCJuDoYA8rLfQip8OzRjiFbQLGjuM7yOO7CRa32p7iYKZAE9yqqqswzlsccEn758TulvFmjyLIy+6A9CdD7oHUG0kw3kfkhpg2FmITBbZgjTEdy5cuXlHRjjQLGji2CWrE19PjFu2Vs9Xu/puIsu+z0eAfsXFjLi/C5f4j/4SRsldidWvwS5fg/ymEYQANiNs7gZ9P6hL1xwjglW1Bf9QlPJAvp4Izo9dv8AqKaq9RcdtROSCvRdg0xJdlddQqacPUA4rF2Pf2y1e781g5vBESqRZIDvKlS6/XEdPTvReZ1No2PqZ6lIGx/wmgAzxPq5Xeyto+hYTtUo4R1L1xtBcfM/YyPEJ2sFJFfDMUAcQEl4LiZAXZyTIaym+oveGkmCjelHcP8ADhMpnEXySPChimVK/hq6Uy/UYf3CKe2iEBhVmaeyannad3tuIrEUC1tlhT4NP8oPGoCbTnEDQUq2VOIEU1HpHFQljMHk/wCwnQ5mdO4KOppC66IDaNbD/rUNW0C2OlIhENdr7qAVoA4GNhAuYepwWYQbRxSjCoebjshV2pG+JALHTEu/Rr9yGKy17Y2oWVxE4sx0GwWYvuC30Zrw3HqRVL6CHcQ+o0GNmdS7xYAdLHOj0KEwcZ6B+x7mKFZfbZDNZS3g/wDnqOc3q/ZMhhXeHQcEF5Saz9sb0zYTxKmeNB2eoyj7HidUsLHHuzJGlNVKObcWXq0lZVy9i5bActzbHXUUhUm4D0xMEfcYLm59EOj2g6WCzAf+y7HaquFBOBWp65novTEWObDqOmNf95gzK2WzbcaFG1d3TQk14r36loWZaD7meR/jfxczKgeVEDplR494REcKNfREsHaMjN7SHtg08XDZ6uV5wFrE0MMn9Lr7jKJoJ+wiLzHclM/3mcXdBcIq5Rpo9zC3Sd65aYuzFNCc0EA5Yya+zbEFDjh4CXDwS1Gdl6Ygbpi15ItRFq8xfgEGy46Go0OAeqX8Xxt5HhvEI0FhOQoXEbWAVM0tTp9qj2HPE3GIwaSZ/wCeej+B0dRh+2/lfkZf+GMv5H+Jf+Bj4MIzIQHVnMZmGHIlBK4Xkv8AkNW9YwfS2tgMAlm2KsgQrfg59SAQiGKgxqFsRWRIMMe3jUW+KXVNfSRAbS1gpAobcwD2Dr80Qf7R+iX3ENii1JVcsdxcMy1/9hPsj6FpkHXE2IgW/wB9QdldACW1I4YDXXydwtdTKzargaV3OKl47iOIucG0IItlqaGNEBvRBsYtSYCiriPacWoP7gNEa/1pGYu0SJTolr9lwoojjBhpstAqcbn/AKYSOqIqYfsQ1xTDX9ohVUGAEOIlN0jJ7PUaA8OQrdQ3VUXKOlhW4OFpDUCU4ebhe5cv4CZPcEi0oFdXnDHNMvurnaUsRF9LgvYxuSW+9HcWazagzOvRbHZjvlXoY2xsrZMV6hlpml4JZo1pg16tmIMa5Kc08zFxJGUnPRKREbSHH7jAXfqU8Ok6I8iHO0PInAQjhxjDASinQU/vgh/VFHI8xpm6rEOGVtBpor+JR2JoYV7j7rlyHB6gRfvpIlnzVQ9MAOLQhkt87VijkyMQ0jLzHLJcQoi45ej7iOUx1JDueyrXphLz+YDDUFms5x/UA6Gt8uYRjhc5aPs0iBn9MQgBYgqbpYVh42PQxK/DaLWtsrlrMwxSWMiN1Fkkx6LxUaXOL9zUd3TwwulXUET5wgZBaIq3H3Ur/va4L4Yk0NV1MrTsEi2Cli7cQ6d9Xm+4Ddg0NC5ixexlMt7YrX7MIWRbPcxbTfAwRxtKrcuOkStYFOHrvgIS5t1EUkF8MSBlVBcdOISsswHLiqhQQYlUHpCXmWj4kS6YJKxwMHkszREuYKihvqKf456aFo+1ly/cuX+Q/KeT5LoWYdvsfhD8J5PjX+CfiPByAU+CfOS/XMw3YTiOD1hPb34yCcRsQuwzXUYHQlxheG4TKBhCWWgldK/TcBmszj5eg/p8XBhFCaCObYmP9iO3L/R9ENHD1FG6CXVd1ArRlg47W/8AZmRK9BG//to/U3FN5kH93iuyMqO5lwY1inHN7FyEI1A26IUdO1guH2W7sfZBYuuyol5g9f3xFEJY3+kWrpQd04y3PcLnY1TzdDk+405EeB8VKmLp6PqDAQvDm2xTTtA9BIZXmMPakKVHM6JmERewZAnWPCriyCHxFrNGnZBjN1/YCPFmBAFndxW643fQzecQZA82VXy8yqIxVCK+3MstO3MPENGpoamZvUpm2wFg5GG3VQ0IFWspTUMBrXXS9RGukNoH3LHQEEETtvYSzs6hT0MEAR5AOrRzZ0lQt/RHzBGf1DmNtb6JOP3GvjtZEeqZeyaxdw91Kdar6665uUgov/7MIGEVW5UGoIalPlUzYxx4Hk6gTc88Uh7+PWEzbTFiQAKWDkhs00W6lvgKBkcQCONTn1hfA5xGwwyV5goFoL8hZamkNRqdQyPaWNv1CJ7B6Dj1K28ya4+pgjcq9epae1aA4/cPtAFGU3D2Su7gTJVxawCocrDk4hhF3z6M1CTfRUeSdS+8HtDCt5+GPIm9R1XcTcBHSi4l/wAYds5YESF7lcVsul6jWbwUNY4qMJQQvIgt0vuK9CZFtzZlRu9JbaBZh6BqJP4lj7YSCa5l8EZsdotXytPKuC/L1CVIaG1eB8WWjLBLFrVfNcmEj4RC4pWo5TXI/wAyYZuXonngqPwCbl/e6tIeEIuBxG8I9ZimQlghwkq6v0HL4X4uXLfxn+KR+CsrjBIefk+Ff4l/4d/iO+3mY+PH7GOJpq76fCsFVwTCDy211LloYDQeWkk2g0eA0Oan9BLRIK1xISwYR/2LcPmzuLaiL5vX/wAZdqu3xlbKaTtfgRd3X+4pW3y8ERTsOZ9EPA2L/aHegBQPUS5a7qlPrqzHbweAJH7DEGNjTBaLNvj2WFchwjb+ktNTy+vt4mS3AKD77jnZHLA9qDWi8MOSUvgvQ1btcRXGlIH9o2ADFUpkBAnosBe5zRjpAvdxZWEjy07I8x9MpAdHctuDhwGVErk4uL6MK10CEbSJi3K02yIIRHR7g0wbt7Eg9loQK+7m9IvsMO3RTI9EWY28KHVdRN0Q9jkOIzw+pQvLLSUCKD/qUFPU8F9sXjO29s4IGs8TFL6IwwBndIzsHFsq5+0tmr+2uxglUTVjorqXcprib4QyihLcgcidxK3N/nNMX3I1RLuBF6scRzy3bRcCAiJsHKMr6HpeCw/sPO3BHenUBk8dManoxRXKurucRwJbLq7iXik+4Wx32vfNFwv7XIG4WQhRKvb6m74SNXr9k6zcwgF/YbE4uAReEW/d4jUaqZVswusIgqnoqC4XIEYjXrJe03GZAGViBOZvmAD8oCDsHMlPthTfZA5qGKqg+xIb3g3Y3hZQA6y3pKuwI+IhUnVwL7jinixhGvAXqOVGgG4jPTdsdSb8bzZykqXnJQ3zLba0QeoHWYQLq5fhf3mPmjBRVN5ZlFqpNEDLl+FwishnWEB8J8W4PgXGwZmnRQ+yHlyn0+AgCuWGZVOODMM5pa9WZRhEFTn2xohUzdDwEHuajLMv8p+SvwjB5KmI5H4H5783L/zianfdckEIW8GS721sIjCOJFkXCTuufg2b7hJnyWopt7hEutV9dEuOy4W3RCsbGpfVLn/QjqvUMb3fbLjMKuD2NReIZeY7l9zEtgjCMAhQcHp4lnVVBly/HpUY5rvwBY2bZfHqzhcAiKsDO2dqKyrj/QdEvN8yz4ZCFBLIYUbElKlzm0Lpo5RUO4BsOyCVMvVZ7i2NpIwdcMnFI4T9hjfLmPe7PYMpqVXX936lvRxeft2hXmlbAQBYlQ0uIyxWgnFcDBobmxv5Y/b+mh83xiL6Jdh0km1hlCP1CnZkQo3iONNQcH7R6ii5mzEu/wBBdLVoWACpb6gcI4IRAbV2D6ljxxwwaVDdxr7re7zB1wlDLVS5sVVjo9MVMYxod+4i0+IgFopjCS4sBzSygVMHXsRwsCjgxk2QqhriGxBFeh1DWs5SnqL15tbOlHEYM7FxULX7OyD1TfwBxat2i0M7Zvw1AEhWWiP26rL9gwnQtRWxVoEAbaQlOaQQWmrDXFyzgdQDTqFf7Wxfr6SzVXNk+5TVLhqG5VISXDgJsa3RI9KIqOmmOxdTUNcy2CcN4ol/cVsxVvR4IGL6LAxHY4dheWHMsWN39S7V6gsxdG+8yMtwA03cX/RT4ri4aH9LCNWw9X1EPQQICvHMVzwroDtH70tqR/aoD0P3Tg9RhnRGyeRKaS3tr2S82t19k+REeNGGi2Ebptg8L8jHpL9tEuEG1WPgTt/MdV0q8Cdy08nLqDEIsrrh+8yP427ujwzYicy+xl0mAPZ4uX+M+VeRavcr8ty/nfi//l3HqdD1hAjOM4EFOPAe+3wXKkp1cqPs+3kituq8VsS4ng5iiFrReSInaWy4k2SG7D9mG84GjR5Ihm9wk1+uUdMCmt1yIlf+xUy7yadT9eFYBR29+DweAqguNxRlNDqoFQ1f+A5ZQcZDn2wf10b36ib+DrWaazg9wXl5GLaEZaTsYtWnnoeyC0HLV7MHdpR0+4Mug9oRIbcf95LLcc86eoH+ALVwYXh9rJdEWuh8lFE2iWrtjXAuebuh5m4hCEz9ZxFRyUR04YOOcE4cBiiSks09RbOtVRZ3MQ0qXHupjmYxtffMEeTvr6mDGlaLYx+oDkmWZyr7WLnm75ePphfQ2/0tR4UorN++paqEzXWAiWVZF3f0x9RdFzYV6Q4Im8b/AOtj4JCwFWRe6+nqCnaVXCsl9Wo1a+nvj7iuxBeuWr8PZIKhLacD9xgCZ0jw+CIqtBBu3sUy17ZbrL2SqENaVfRYly7g1JjGznYcMfPQWAHLH/H41IH+tCRWuItYwaX5zDTR7KF/2gXMT3Gd35Zn4U2y3jQAW7nhl7fe88x9oWu/Lwq83nmhSy0eqUSFvPDK8AFxWCAJYcuYN5JEcB7rlaq0zBIJ6MotI3ZeJD6JcuIexE5rAWm4aWqqFi5exLly5fkjTYqaso/EmfveBOz4JVZXUrXengYR8SvUCUjbNzrQhE8mbr82MMMXRocBHy1g+Kvr6VasfwXL/AeK8VrerIL+GU/4/eT/AAD53Ll/5J+FmvOYaE9PAikV4exW2Ou2gdEBebNRmWmycX8Blv7I4qUza+kBKhJBcCMtWuzyeNrPb7YbHH6PMPGTczZBuuTohhFVaLpaMaJ/tHv633PUuGgiyoNeNmd0MEFRUFLqBG5Hne/DBK9gx2S61+S0nELul4FeiEtIG8FuGo2FMmke6ilcJ3cZIwC4/hdTayEulWtraMQfhBmT7lwqi80ex5hbArUyOg5ebOoPPs6zXUrUqB2ILoOxxM/jG2qeS5QIK1SzMSFGaaXq0StLMSna9ykDMWEzDm4vbhiYzewLq2EeJbxS9pTwUVk9PUMsSfRJ7u/Jbo2xDnetWguLKOxfu7lCxUrpk/umk2v/AJM+uKzQdjmKwdBQlu/QxH7mDKeGgDXt/wASyKLhTZKXZ4qwRJyrCJKlqLoyyIqNvZliO4mtfV9p7mNJD0MHyvfaOjoj+4JLebwlc9c2EBrF9y+Lh4jdK8R++qr24l/X9XDsgcq1ia5NkKGUEm3i5aeM1fT9R7+OWo/cz+Q64+zBucP2poQQwcY8PocykCgeftUIijgS8BL63fB3NjPKSRMHecUkY273kt7ZnwghoHodtSoqC2MYSmlWoMcYySvaodrAgaKoUvbB6ztxkZaTestwNkJOyU4s6OJZYRhDN2/ntYsvwNWRR9Kaj2FmMQ9gKjQjn50b8Om2WNVe72D8rLRMHDO4bS6LZbCXMLayf3gyK+p7QSpQeuCbuZkHD4V4I7V2ytdqiL4Gu6q+Ij88/G/FI8sAX3zxxuGXUdt9Jfk/KHxv/Nvzcvzb+FU2Fv6Edkx9KPCj2y1ktrMTFg06YSdQNR4UbIFaC1jrwGes4IQhxPR3FuCWhbBlxbOXtidWsLf2ph8GcBXbmF0QDqhGNhHDmFZTZ7EhOwaXg6ebHAfpfio2dGKpWbBvakc0p5voif2+efARhX8EcBAOmevv7gwN1i04halx80zreGYnG6ClsEjpVXLBltVRC5lvdFy3Fy2x9tc2/nLd8th1pi7UstozKXshfzR5jXlo+oIMaBz/APkcWVY+D3B4G8sQjQrJmyFSJB/2YAAZrl0MwZuIpouXuYBcqFdw+5w0gsuWaYi7RQvgzBK6bRRy/UHUiOBOBAERsi8stPEsW8ycG+Xt2X7dy3UsUZHEYiAn/wDnZBsW1hX9wxwasWxu5yzBJPRM1H7RmNaMezl4cWn2G4MysKr+mARYf519y2IgdSw2WuKw1KlhG/8ALC5j0UD8M1/EreZ7QXl5j1WD/cXixstlww7P1cpgxWRoyBFsVyKDtFFjBeSOiSANmoh40VxA2uAqVvvkjr5SDuRCIrcjIX9WU/sg1hNmYxluoPKCxYMY3+5mvK8kFpdMoGjiExirT2RRdAKjswXEgqsBaePBPKnr0eQ7uIDWMpxGcGGvZWBpipXwbJzYkVaNP56EdrbJ8VyyCBVNmtWRrrVDKy4ppgZFyr/X41sRKrX2y5LlHZuBSt+e4QHFreZSvUD4vxtuc1VlPOr4ZuL8C3/gEIO3OiXtYTN32an1RzADNL8GZ0sfkdZmIVBI/ivbKrbvGfkRieG44xLe+BPK/A/kvxf+fcv5HipXi5fkh4wHH6HgS4AtMZBPBBsisUMQIyiXt6V2wM95Af0EahsrOCUrgPQDxvsWIuFUtb9EGJQtevywQt6Jht3nL1EpQf8A8CEdgr/82WZW1vwMIeuPBr34sV7mK2eqiqepgosgDHy3psJTt/4efbAYdc+fb78ig32wDtiBUUnEtsJfTdRDsQAYHNyhtAjwircfhoQE9uCckxDD7YoPUJsr4ByWcgwu7QxFykMHuhKSeawcrUNa8Hl7WyGrGqkM/wBx70t3F0kYQgQbbk3gPYx6GpR1GujKjztYyonCsL+wyXGaVqzL+SJJuUKWMsRMnR/cy6viLKpz+owbAW7sC0MMiW8EF/u8wLkLizdpzs5p3LxhUgF4jcQ3uioCvsRmR36UJqN9bBmixyiz6hsUMa2cBzBZBSlv1cKPlqQfdTBUNPUxxL2xj/fHUBWwVB1rZSm73H+JXEbLUbTiIhtSCpU4iBsbMu8IsG5bhLTlYJQSDG9zXWl9ZDQca4D1mJT8UsiIne8kGmM0JhqJ9L3k9CB6xNaBojrad2jEdZlillNp6JTdx40WrbNy3jIXy5Sr+cbuIg4amNy67gwxSsqbWOsVLZwQ5LBt/wBxvIGu9kChGQprlruZXY60KRIzSyIkMrBlw8v5PA3Ql1YqHRfcq2bhjiD8RbFKziK5s+Ohbi/AAjG+/SCXlC0vUBoEdWAKfqkHQ0twL9bS8HJ5cGEKcYE+uOi7i+HuiBa5tRIW0sYwh+U8W+L/APqj4vhg+HDCXHU2ksuO0y6HLC8mVXX2lK8JhsA28QwFB34Ee1oIVc2I5nG8Aeo4JpgLUDWSVfbojWJRwGgly4QiI0xKKTNLnOfBYs3Muqjjrs+iWwGtYeyleSeSUCbSbJfgv5eGwu19r/wlncGmvcsKcNfoRdzjSB9eBkR+o9x6FdicMy4AUtfgML6hPrthYOF/Zsvdwpjhdj4IzcUwF+t6SPBaFtIJSygLWHQNQ/VYWoHA/wBJcmBzQOJuXEqJW4LbF9nJBWBL/u9MM06jSWiSqNJXxgioQqWwWUygfT9bXohlHbq6PuCCKVhPIHmFMCRC29dYhe/5RVAy1wI5pxBMX78LfokKw5AeHN9D1LRaYDvN/qPqOpKPUXr5FdZC6s8RDHtVwBqQFrDxRWzvj1LCFlV1yxuWC0dRjX3W6HMLA6gl0taqjpiZRCsluYH2ZSEgxWUOFe5k4Wpr0YTObsHr/ULSQmPHxBF92ItN+HQxvymyS8BAZ7uZemEzpU2/plWiQdB8RUtyGH7krtlCquiQavK3UlM6Kel7Y6lUQQUrluj1StbMclzGF0F0tAO4VzDL7WRqM7JX42Tg6lMhHgW3juW1XaaIfpNt7qI38RM8FkqEHCkaYxgq4AlQdd/7CNvCuehGKvF2DMELzhWsbsPSeLKFtUu8de9oK1RQ6XH4fR6XCDGrMfmimYpVboJWu7Tjo2Rd5vCziJau17WWfFwfgp5Hwv8AzASvzhBuIlfOv8n3L/EC0Je6++g6g3LlwcQhBM60e4LIc88vU5ydwnjUFsl5DQ+DxK0bbLlfvPRRL+ZnECI9My/oRilOC4PhcuMszDweAgFrBCf7Yf8AsChl+j0gSO2ovqMeFoVRFeRVVni0+BZdRufshnUfldEDnwNA8f8A53W/If0XEmypdaWcY+C1RmVrtTplZ+nHf1Al3P2ua2wua9Il81P0OHEw6MHTUJ0AcFdJCFy3xnb5+o3vw2mkWJdHtPZ7l9D7nY5h86lwvSBzEK0sqHg3Cb3UcfaBy20ygOY2OgCUtjnbGRaotW3JIYbYqNHlE5jZKrSLcwNzd6WIdHEy62CDPXMHC6pq/c3FCd2ecVGy6q0p3FpRf9cQuKUA3uqQZe6jYHeGCE0Ijewmd7eWK5My+AC8rlP1c33CcRjQfqVHbUxFMrLRjMn6YpoBQ5eaRFQDjKVBGSWdGHOXxuRMgS9vWNUw1+3LLLh9GqnwOl6ZV37BE2qJYktPK7KILYO3xA/Q0qq8YlaPjrgjmOkmxN9JYjZ1nrUUCOFreEtadvp7R6DR5DsYu2lW2DwiPknc3ZbDMUg0WZR4ZXlQy4RLuNnIOiOgA5cFl/Bg5jx+6STEqBFIrHbxuriXgvHvwqb8ag5Y5ijYhD7VjUb42H6j1JWl1cRqXv4cywzLCtoWssWk77ywvYlts9XKzNh9seEJ2iXlSzpf/se+gRRM9eFzWcqfN+zzXyuov5rlv43yJuUpzGYXkYQmp7wNnjLR6MAQcvAQGVj+y3GItP8AxJYaPDnpL5ZYF838PdQXolZLwRy9xE7zeQNg7gpV50j35Jm9IwPBd8Sz9t2cO4tEVdsGCCwUyPhe4VNSd3FzGxXbrgihJNQ6iBkSJTvY7XRDtgWi0PLkVQt0vgSapoDmMADhplqu/krvA4Skqy237gwVy/uLEx6EdwriDlleDigGXDhx3OLZZ7sNwGgeZUKqUXY0QKQ9y29EOsaLP2JqC0UTaPcEEQNWjzLLtTWl7JB8rXWGHC97IFt3Q1EIRpNIKeQtqhDCRiJmDKcEAgQMYeyBHMkl7KipPjYt7Bl3+3Yg76CrsqrSK3ZFHOYtF212PE3DTAtEr9sw2p55/wAxZF1bbDXcLi+zyQvFqjI7lIaiREO/UDpH+HFMQ0rVyGEQwJ5Y9zZKRwEXEN7D6qVIGbIDqPgKZbDEu/ywl+/MOLmrGdHEq12DoSoEPkfZVVK9IwoAxPCoCYwlb9GVBQGEIERvq4Bu/UJDuwYLwCDdyWUtea5WWqDyRm19rLQZcHxcvCG5bZSWdPVy/BZcvwcTIePdQJlfhQEv4AxdT7+5KqIkZquj6ExlSZ/Swu1Ux4Nw44k4s7/CT79ek/8AnEY7lcr/ALrhCHD/AET5Ev5XLi/kD8h5Y7EdY8qrRdPXv4DwQBWDReVDzX9s8EcPLcVWTY7CgmirFG7d+CcfmIRxD1xrvDK0FepzCtq7fBBol3cvwdJKLhMHW/USkYWnv/6z9ZJ0dfPTD8sOSM1rO/QQtYY2sJjKEdsu4eoMhPCcvaB2vYuGFxSKYT3FdXUxS0NsrVNDN/dP+QZLGNY4IhktVTqUw/BvfMxSW/WxNKtliAinXLikfXIHn+4r/nTCe+YMmxprKJ21uX1LHJEOU6Yqt12FPUPlwBdUkoacYwi9uYVAgahtnEaKtjdWKqIda8sewxAVlhG6qoHYqRQq7DGfA0ZvYcSmsBjVEqFSsIfWRruDIQ2kPruCa7qls8A+4GdenugUUgSOVcs92tkwd90J3TKVS+NCvbKJCdg9ssG1HIYX7cyA0c5jgJrdRxkMDEo+wPrwAFWAcJ1FVXZhAq8rL0w1pUsYZ6II24g9zX7gDsqB9qAoHEGfGlxPbcPgTfn6hbREAJQ0MoEmU3W8sIH4ch5lrCWklPCTsjpXTkpxh3CgVGKbaz1F+GDiXqDfHUOGEbqbz2IlfmFwfUds1hKA3ATIy5lKb1gtYZdJSeNS/FfZy1AR+61JajGGOxarZfm/IX1zKq3gILcts0cRYxuC24ARTjCOEi4sItgA75cyBydE9UuC74gQT0JAs8PeCrZfxqJqFqQx8Pm/N/jPwH+cPgsz8K8nm4S/F/kv8Z8bly/GnRWoFlsZnbSiMyamvKjND5/bx+AREg7laxzXogI6/wCgaImoOOoguQaKC/crXhMEaRb+b4LUy9wFALXBOJvf7YJnnsf5nxzmZnVu4CuIqYBawGCrQRK4NiRzGxuNQKA1GJSQX0IEX/EfbFQBMwXLoglS5O8YiiYG0JQnlTUGvJUcMRAWuiGFeFqX+53HKi2hYxja1CT5DZhly+w2asG4aJmoIMtUnfoqbn6Ic2yEU9UdY/5nG7M7+vHktVUJtipOta/W5k9cG/Bp31oyvj0UOGUS58UqXS8VNZplKMeoowA2ijUG4LeozruBSWXADBZBcKOwO5H6ARGJ6vX1BS6AN6H9jqD3XBRvzh5lnrE0o5Olwbzwwx17IORaAn2e02WQi/tIJVS2wQGYEE8EvAWJ1Odepvf1GiWKw+88jtOT3Cu9fJeE9xuJhq2NxeDJPPcJ4QYoTw9suXBcwa90cxU6IzHoz/Qg9MNmhc7mZOgLPtEYI4CMJJDpyUwemZcxaEBOKMT7I53ObzC6uBT4D3ZlIN9hdA5Ye9Kwh3UMfaZY1QyyPB1m/wAtmt2yqq1XwXAldZ8ReGXkgVCXU0xaVWvLL8BVBVifjjRD623dl2RHy22Vg+L+GOzMXByzT1Wym5tptfDKBulLI7v3/duYbl0EMXECJ7fEF4R2xu1KBO3ZOdow+/AhlefDKiL1x6jPA/F/wFeT5snkf4FeQuDlAfmfjD4XL+L4o+BE8V8b/Fl8nl18k/bSqbmVwKDzHMNoeVqV4u9j6PgeC9f9WPLRnM9nEgUXAbvqHgYCxMATw+xKyPGGrArUtXYF/VAuCkpeMPbKzW2VSjh8E7AtYbsNfF6ibZA9zYaalwereosfTyUE5QXAuFOD2TDZuoQxyFBNLjVjwN6KJSRVUsyuVYEN8Of2YlsF0VFiSRmLrDHPuqcktRPbAW1EdHEPIYo+xwHswtZAZN2Ec4/0scrxDZT2y6lK9vg+J8KQA1ItcjvvyCvDJvWH9Ln0avEeFAsWM5RD2pgGmoIy7Mt98RKzmql+37wrCs6179S44l//APwQb2g2XsjsmZB94RQ9tEE0kdt6rRlgO4KkiilQ+2NTaHPB4IzZgN9acwi4cRfYGMqqmP8AqFb/AFe3HgajPgvvUUpdr4Zc3LNOYW3ERj5WO8hRr7ICnz372QLspsnZH1fSwmZjb3Ko2gw6iu0x7d56SHnpnD7rcZVVWLLHaJbITcx/2rq2rY6cvWwtgEKYdUdy6nfcD2QojWllEsaXVwMyWeOBHrN1GS8BpRqyJDkPdnLHVSsvxcuXGpFTgIuibHz2/Xn11U269UpcBVBcYuEJ9rUqeKmWGYC9gBWIGOkS0RZcsaZeX4S9bzLu6w2pCDBuH4LDxcvzf4AzG6NAsZPsDk/Db80gWA/S8w9HiIn+E3Lly4fOvNSpXxv4n5b/AAEra0QtAN+7iE+Q+6L83NzRx4INRQRRd+BH37oI0zWccvBEFtbfJDXJJ4GEeQrW155m2Xo5Yp2GnjvjouSB0rgCyD/lFKIS8Kklrc+Kza1krHemKInM90uJIisl2AR24ojXTwItQUePBMy/e9sqWDY2RN6AFoy6tjZybsmF7VRW+XQ4HMcqxwYlrVDR7GvWDinJaDVUSc/dG/OyWymGBPKGwKF8l3rlpeDnMuojgLMuEvNx0wLPKhOaFA6iE4AbeVyxxmGyGrUeF7MEUVV9w4qfExL01dbhUDvCaTbg7KuCt7zFLkF1sPKBknUfHRYx8Gxj0UVOP+VLIxujnFQf2pdPCpLcukWk5l/1RuUWUOkqI0RasbgDgo3GZrulUYfFrapXgw6krjn9Ua5ygs8Go7DpUxDuJVWqXiPgYuWP1EoTFdr6guEEVigH3DU3A4D6h8jSo2aqXX8A3LhBgXKwo8ovGwyv3Zp641zY9TpgWcrbZEzn3aZ+0+CAJg0xUxBGxpumC0a99oW+MHVTmbXFjkjOoQbN9VLM+We31HKqlqwFhRdoiSvDv/pbVi+2UKq8x02t5RziIQF+1i1gRw7sZq2oHR23LOzzX2S+rrWhxibFcmhAC015v4XKIFW/S46ti+DyZleKlxBcSSgLklfMipmQdRWvnQ/Bcv434IpMvyvxcuX4X8qlSvJ86lfC/irxXwJcuHzqVK8U5uOkl+e/Z8NTz+8bEG5crRHPtbfgbKXzWGLY/DA9mtFKy8I/yPkJn40dngh4t5fyGLWmN/lMPJFy/Y7xJSEq7BKdqzTYx+6oMQgKQYXfd9ENtVakfQ+AordxgRUFV8sxotoN8y4PJJMbQQ5ju4hNG9ri+ZcA0HUzVoYB1h81pDH6KBdwOQFuP1kLHnVZXSz/APbhebY/r5TMj/kz++VtlIa8XLlnhfgikeD9PM1qq+KUlAGRAI+ibZdMtfJYBasRaUguw6hhw21BHH+fpo0MwQD2h2g8wT0dwGcBjmKWmX6eF1Aq1HKgaiXaqRa0WF3oQyCbzA0hDEMMhgcec+iKqYtpCV5VuWNEWKKdwU1qRbN6jWuvuFkGXYf4JkXvJTozLFeQvr5uqa4yEBiYNli8Mv1EFqo7MJFAbbXsYYuKVzsZc9rBlzwzNOottjZUtiQelGC78KX8HLpy1cKhZSt/hjBtnWWBoOea4hQHc+WFx3q2sRlF/e4rkWBtTAi4tHWVS3aZkkOLqmG0rsZpygbuX2yPcagsDUylbdszbA4rj0uIYGMkgyVuYy+Ceg6J9Wx6AfnflfC4Qj8bbWLZbHwPkMvyea+FSvFSvFy/x1D4X+E+d+Fr8r/wnweBRDIxzjwbC1UQs+Rfu5Rdmv29fPFg3BbKCtZONdd6I9LgqP1nwGoa3KCujweEMNVRmr4+7ohDVYSYivsMKXNacHjOuq2uD4DMzpmN/dDUel++r4C2jbDayANj4YY0OSNNAi2vkwS0QMSl0h9cxPNp5fbHqgCl30TCSsa7kQOZHPiNYlUrPqU63yC/0nE7TMCDJW5W/GI8oI/97Lj5jEKQVRUIzHRYdT5t57/9PgENCjVc3FLYoJQyMQ7+PawscyPdMM5Bv/ZFa1VFGNheu0uR4hM2OiF99ESA3Wz2Rg7+FAUl11mWPG2XVfaKsY5duZkvuPfOK6fB9RTuWsL7LYlwQKOiKStvXphW1ywS816xEQhHU4zCuZ4oW+2Z+wruw5YdPrVHPL+rgwVvLGArVoZcPFPm5fi/Iy/Fy5hKRXxqkv5gQW7lZYheLFgIlsBww7o8lMwh+Sst5jv8w6LN0SzWKcbHpk3lu1S3m5fjQBLX07Avdt+MzPzr438r/PcHxiWf5FfMg/G3Ut8V4PzH4nwQYNQjQ8RgXTmAMXJ3O+X74EZ+0vwkrDd1J1XzQDFwvfr+2OfDd7YfElwiFdBF0GtStPD6gj6hUQJQ0B34TM/xbH4VXXcx1ei2iGfMhqsLqZXoqshY2bIGjSK6IMIOXJDh3sclq4F2ERApqXfSwG6pVDf/AMIRr0cxBlGped9eH/1KAm+9Xr/1Ml5hcs5+ojG7TasTUot+Gs6VKN7oJdL+K/jb5t207C8x91bHwnm8LmgSYLAIwqSIz6gjuDkyQ4F3MR6wKXt4SupdEK94iHHKoYOFS086stwT3amLxmNC/OYWBT+MiUdXJJnuAfUh2mCV3KjfVvruyHEzUWdzPacSmKRSr4I9JHcwQsiZhjuuT8NoJAEXhewpnoJmH5bgjsvVX87+S6MXMqLbD4ZHZMw8B8ZhH8Ywyx3EQ0y6fJ+A8Hk/Aw8H5yY+Vy34nh/KfiPA/EqAtcE4Jwo5XE51f5HR4Jfky2Y9RTw4TVrfRzKZh+zcfwRVVVr5RQWXJHShA3dvfkgPZO3/ACQiv3/h4BKAvHTCiVoSyHQwWg1CLQpVOXCEgt1T1FFqJxO5V9jz/wB4r1LKlPUYT9LQ58L5KQtgiC7xFn6T5fktNZCQmpCnn2syTWcvfHohrBn8jgmvbOvrgmzjy2/C/ApFV8V8cQ/GNS7L+Fy5d5Xdtot+cIJmorssRtO06+IU68Y8pojPOhgEY3OdF/cRM5+uXWNr/njtJ2tr4V1F4Q8nhj9LI7ceU9iipS0s7sdB4tlstlsth4yzHf2Ja5ACXLZf+QZ/LXlwWJFoGglzMHwv8B5cfgbh+Y84lwmZn8x+I/Gvyu5BQeeBHvSVeXgmQNbhKQ2k35GbRaFUz1/fngpqZbZwdsNaJsXDqoRAhllb4gQctPGcou3ogxaNnXZF1JtWUw6W4Q4eot1BrUUrVyv4oOEzOldgxEUkpBrz9/TqO0LaMB0EPkAIHDLjx1a0S/docgj9YcuBKpZxbp0vTBxPWuUIddylcr65liUZ4/xB4L9Q6mTeWHL/AOEaCVq38FqNy/sJXzFiFpY7QVl6cIlL4Dzfz4/CJK1mvjyngM0pFlova/G4WHH/AFhq2vJq/ggx7difQxIXKr5UxE8Hi6l+blwq8WueYuK8ZWW8BfxJa/BG4vL+GvK3sKErfJsfmfGvFQPwX4vxZLgngh4r5cfJZ4v8IeDyfhfyH47h8UQBa4J6rae2iBglX/A8BQasFUfAmfVeo6WnljLVfPQMrBo4pXp/7FOyrZp4GDGcQN5R9FwkcOX9v7mqs+15YEfN2AwReVrEwPgwcFpIx9A0w0umoxaJOvw5oPUUv12PUuSIUKuELY8jne6Kv215bYM3NimbSbSi1/RBTQTL6oNmh2Iv0aIg2bVv4kvXH/WD1Ireoy/gwZ1cJVdzy2ko9XCfHcsVX4A/KfQwY50qLl5fNy4ruDqZPiMtL8YwUrOi2MautbwDXgLY/UyoUfa4gsIwfwHxI1ExhhWyjwX8nyeCEQEGu0e65oGjy/A+Z8U+Cpayo/a5flUPgNRi3xcPNfGv/l38Lh5PBT8H7PBOWLvY8Edu138DwdVAGnmOHYkbLb96hYsVkddEPIyQaOYR8OS8iduCKB/+0P3KYRidFwN4t1bSB7vkYXwqjVuV9RUAow/Xx2r5lhya55BmAXnGUSxiGzks5JxUta9Nn2JckK9yez3DGzgOV9sqUBJRVvRzUItXvjjgIJW8Uv8A+Kb6MLuEEtulX18twZf3MX529x3CxIivB8SItEKtA80+D435GL8V8Ag9OfXSJUIG7rYsHv5D4XLlnLllyhjwmtHB3Rm9fjYeT5aAi+R8xiy5f4zw+CV8jyfhZUr/AOC/kYfB8Ev5kCAFrP4F/K6I+m3/AJ+CFWXLOX3YGvjp1W28DcD1wFKKNP8AsfalcPKTZE8FdMuJ6ukMwf8Ab0S7c51wnEthanMIcEEYHL9RSnuWKTAlRgTcwNMUtkWIszY9JM2LGt/cTEu1XKzUfWR0hbDNOIkVcby/TxAKwVa1zlLX6xtW7EQpnLnTt4JR+ytzm7AT2wPgP5NKTVn4EPk3FM39Rt5tCKWjJ20E05UuT5aVc2pUv4EqYhXhS6DCtsIf6QJVDpdeD8YyLTfwPi9zREyVpx5WX5HxZ4JsqRiUH5kd+D8b0WoC1YhYaHSQ/LcuWTHwPB8SNGVQEZgEsxibH+SfjfB+d/GfPfsHgiU9/vngi7u3L8XDTg1hL88HPbmpV+jx2f8A9P8AqOpa0y/fg+NwvLHwvKDnBL2Rdf8At1aBKxLGzXhNUXpmWPHplWo5qEEYt8vAi9WZ5mCHtbvyLHiHbsqJ3WQ9lhwJDng++5Ytcy+P5ifbitn2x7Ipyss+bhEZcRUz+h7834v4jyKBWuFHMIRpuVj+u02fw2RLFAqd8GINRcxUBwRZPhfPAx+SpGAu6w/xrKiaEnyvwOh5vxxBDgedVxfwjEnT6aYlSeV8H5D7uMtMHgqM0Q+Feb+A+a+R4PgPgXiNh1NQAWNuBp47+d/5J/g3+IiQJhy4IW5K9/AlDoIR714uXL8KLtVHybG1hlzMXizZC5NA0++P4JalVrlYD67apbCRbg4lwBZC7fA4cLxs9RfmvX/niwKlqzPyd02ojjuhoPoiVotg4ZaFg5ZW4s6RGwEJa7IOdCFNwChUCLhxYs5fUr4nSXwapA7C2ov1DSuAdH6I7bvn8B8iGYy08fYcYImgRgYC6gWT5EvEuEmhyRW+xfA/C5x8U6RTt+RiUiiWjUkbqLweFx1o69vkSj5i6QmhYp6M+NMpNfUFnUod/EhG6oMmX/WKQ4fJBfM+V+R+R4PlX4B8a81K8VD414qJpLfcXz/gH57/AAH4bi/kI6n/AEknAhOLuHt6I0/nMs0bLMHtH4DWSK267fC14ZfQ4/8AY608RLLwrolwuV2ngnK1qI6cGxgC2mF8RLoHE59MBocBEpPNAyFtRFStoZ9hTC0ZkccYzu+CDEOV68I7iGxYlX0ozGlDFPBcxznOKx9FIj+WLNh7UX8zLcPjcvwkIstQZgXgogY41KlEdph4NPki+CX5uc/BhK+N+SvCjAEVKaS7AFY+bg+Lly/mBQxvWPNFXMPgMs7V+N+K9RAz9MuSw7eb8PxPyWy5cYeEBkmiuPNfEPCLKrgM4xisOGMPgEC462lSHbg4fifG5fi/hUr43L/Bcv4V4PnX5b/wuId8w964hIMF15kVthcpe/DaH0HLGlvpOPhiHyD+AhBK6FVns8XCVDQOsj4xcpSkVsq+hihlMMUAv/czRDR78rCY9dKArODRZ+yIazoF5WESxthqUC4sV/s0RYf3eP8A9BD8sVoB3/6w/wDXuvboijdxTS/bH178uZsghTSj18Su9+AtURMwMokZXwF4JuE2bFg+DT8Uhrw+R+ZK/BUMPIW1As5f1tJA/ISvhXwryrowztjDcoqsHHi34HkhkWP2tbguV4D/AAm6uiAWd7Mr5HgjboBGOUBAQzqL8n1Xv6uGi5w0fdxVhxV+a/hfxrxcuXLly/hXm/8ABvzUX/CDws5Rjfl6iF2q2O3fPCztvwvSdYlJEyOtWV8gdbz/APYu+OXlfA8EbjH6faXkZY8vQxTuD+CXvmjfcc62wjSoHdlRa1B2HDUF9VK1g9wmTKGq/tZUFFFKF+5ew9WP33L3bWwpL0JmwjC6IIsLVUW+FVpUAW0lyy/NFCX1szv1jw/RdALzWCUxBHYeCXBly4P4S/iiu9j4HyfmWSPivBUNcFgfCqCK1zyEfsE+QfkPkz55OdT4vxmACMF0EyShBqB+BlCtHB+W5cvw+b8X8T4BTJPWSCF6qsPw18K81+CpUqV+KpUPxHhZcGXL/wAQ8KljtnPOXN0ZvVYfGm3vfuWP/wD2jnwtk+Tu5IotkfaixwnFQFUZYF1dEWyKHE0Za+/qXhrr/wCJLrZtwsoLZguwmTt6N/qyUWjMzAyhuhyCZ+tmDXQuaromusecfRxHT/2wlguX2w8TPpIX878kYoQLcNIQvtqv8ty5cvzQ2nfwmXL8LlkfmR+WT5V61wYIZDLmxk1UPifjz5fgUEhEoGj4JMkKqKIry/gSvUJpyHTHK/5B8HwMuX4r/wCNcHxmX4uXL/znHtLYu1KiNQ2Be/gRlu6eftBzt/8AXktRZa/r+BQsEz0Qpqek9ziPXILBQwoes8BAqAkF9IEonFtqaw6/6vuMUQGiTAKYFD+OU6vUvfxDBp66ISADVGWfC6lw+NT1QXFte29kuHm/gMRXyHi/i+DyeSXE/NaHjt8SMPgfNU2RSVD5bWHwH8l/Ef8AN4/DcMecwj/8i/F+a89/C5f4D/GINNjmW5r38LgMYOX0IZqnUyL7Wl+LqTSL9XhwZKVDEwzFKG4BhPrz1evuC00l9evvuXlXwcD2xMFkZ/rkJ/5Gur42v30j5mtKrDaE1IRe0syz4EYQi+bhVaEtKfb4vyeaD7lf8+bKzr5HJ67YHuPzIeScPzIn5X8De0NQ/wBawh+QlfA8ng8H/wAIZSX8K/wj5sPxL8Dxf4mHxv8Aw183lPDBS2qWMpfKbohRXJJAm3dX/CG3gKP+2L8HKqUNqg35ku176RnZ0QA6HUqyssu+6gsE0xfp9P72l7Gq7WBbkjHJ+blOQRRa/KQP4aNlG1SOyOpavkx+vtYtr+A/wRu3xChpvm/gHyPB8B13TYCO8i+D4PlfwIeDB4PJB+B+AZcP82/C5f4q8n5BjB+GPhcPyFeGH+NfjZY3MQEQ3qy4LjObW/BU25i63y4uhFCgJyCFQpaf5jPt0lUJ81loyts+TaNTotyHdnCw7ZrQO33Fi/ldv7YrTt2+DEq2BXjH3bLGRh5vxcIR82C0QlnxPmMjbyfPOIIQYh0DFOTJLl+b+AeK+B4fJ4ryeL8XCX4MfEleFy/wEphj8Z4PxEI2vibiar4glfA/xAlfAZfi/FwfC5cuY8r8T/Ar/OuX51jMkUl8dQVq/Amk1yi2En73B+4Qj1BjPUWflMCeH2g3fUgXZFJU4hVZnjSdq8KAa9QwEsucgKPXREIHi9D9RPwWxqIU/RODwngZePlZLPwOoZU/aP5n+EZLSspr8B+AfB5vyfAHSHk+R4vyHi5PyoypT1j4sHdlZQkh2waaVDwfiPwn4z/II/8Axbln+YnxuR85SnWagftf/wBCPdfsugfbA159Uf8ArwnErW+VfyNy8CFjb9XCFFPdrKj96xFrI1e7QJ1QZmL3/lQGVF8ulZQIbUS6NPx1JEC1RK/HfyPxHw7/AAGcHYhbBzFRG8m4QPwEWX8b+LlIoRAUv3LB78EPD8CL8L8Gb0dleg88S2CjwwKVOMuXdw/EPixme34j/wCEfHH/ANm5cH8CpHLWMutMTmVnUcX2iUW8Nj9EojrFD2LLcKKzcgJaD+2Uzp2X9wc+Ox0+4gZdpbCEzprRKb4WQUjzU3XEHVVBgqXHtIoOZudvAJy8IJgLEFQ8anfbojH0BbWf4VQ+B+VqP3TIxKTrRtXyvxfwoYipVdBH7B2ik815v4nxD+Qa8Ll48DUOyK/M+V4rirdve4w+J5PyXLl/5NeL/wDrPwPn/8QANREAAgIBAwMCBQMEAgIDAQEAAQIDEQAEEiEQEzEgIgUwMkBBFCNQQlFgYRUzcHEkQ1I0cv/aAAgBAgEBCAD/AM/j7Ef+QB/jg/8ACQ/y8f8Ag8fIH+RD/Ja+/wBpHUdNNo2mBb+IH8MP4Uf5qqljQlgeIW2g0ile47RRSjbk8fbcr6NLreypQ/aj/wAHD5USb3C5NEEqvl1/GxvsYNmo1IlAVdDMhj2EtHEN2ah97k5JpikQkNHovw+Zl3D5o/8AEHjkMxY2flaDTLJbNqdNEUJH8bWK5XwZWPnNIiyShXEYA9zVuNL3pVVP8kH38vb2jb9lX8JpdWYMn13cXav8WiM7bVlhaJqbUTQvpwq6eDvMRk0RicrkD9l7aGSJtQXdgsiHP0ke0AatpA1D5+0/+TDplEO/rFC8v0uhQ03qR2RtyyytKbZI3e9ulgeZ6X9K4nqOdHlk98qRSVt0/tSmR1JsTTlHbZ86CPe1Z/x0R9mTx7GI/wADH8eP4cfyW41XXRzosZRtXMJZLX0jzi6bT83HC8rbU0+hMIDEaYAk5IZnbbgREWnSTarMm8sM7zDwsLynj50T7GvD8XbZQlcubP8A5RaN1AYgE+EUbwGOngChCPh0cfJeeKNR2dLqR3N0hcKu4vqACQoIJo7zVYvPA7KQjdLLqXfj/LR9+P8AFnjZPqed5ECHSQBIwF1MCCQOx1McDALqJ1I2rDG8vtA7UHKvM7H3XYrLFVkMTy+DMkA2xGTm8J/nx8sfORdxrE+HrQuaLttX+DyKoXj+BRSxrF+HMRZmhaJtrfd6W+6DmqcahhHFpou1Ee4Z+09RTyyye5tm8bsTTqoDy91pzsjfTMBY5HDXxkOnFb5ZtUXG1b6H5Q+2H8UPnRNta8XXR0C2ol7jX8iOLeCf8Fr7yBgrgner+4a+RXel+a0TqLPpr0y6cxizkWmllFpp9OsK7WRI9MNqNI5PLuu+1l1DTgIAqaUW0jPKbbSSCJqaeeMxlVq/dkMKovckn1DTNz0FZfOD7EdR8sdB/jSIXNAgg0flD+KrpEBu5loN88OwHzkO1gcm1MZQ16NHAJWtgYh7c1sCxncuR6Uum7pCDLIqtMsBDLHFqEgi2n9Qlb5HkDmyRt8qjTNSl00o2puO7dikKBWrQK/H9ydNEAvdkn1BlPS+g/3/AAA/lR/BKLNYuiYreSRFOqNtvGYsbP8AFl12/wAfpNQIm5DQE3mvdWArEeT6Fi0bvL220ulj09u02sVSwSK1BmaR2c2QSBkcLu20M66cdtKJ8+cjndBQdi5508XdNtqZ+4aWr4xdDKy3joUNHp4/zeAgPyCSoKa8gua/hK+9khVY9w+90kqJe7V6mKVKXIkcm0RhGoc6idpBQihMj7c1GnEagqCR40m9nvH1UYOSvvc3XOA4TXGRoZGCieVY17KgHzkTAEYyO8gddc6tJ7R00sKtcj/40PnFCvn5o4xdTIooM5bz/gQ++7L7N+aTQqybpDqRGuyIM492BWq8SQobR5WfloIGkehNOqDtx4xB8DAc/wBZ/wDyx55OcXeX+c7rAZZJ6QQmZ9o1UwNRp/lBYnz/AIFXor+FQxBKOJA8gtcVSTxpYTHH+853KQZ4ircG797PeX4yGMyNQlkWFe1Gc5PQDDxmmjVF7zyyNI5Zjxxh6njAN3GSsNNH2l/x4fKH8fHEhQE/z+nM6oSg0MhG99Lp4+4dmo1BB9v6l927O+3c35M5dtx8cYBfGCtKnDGzQrpxhNeYITM9Zqpt7bEBrrWVV9NMohQzu7lyWPn/AByKBn8SQMnn+ARC5oOm3/FZdK0absGRrHqE2YwSFdmAJOoLlo04VhWKt4sZNgPGyeaHg6aNVBmaSUsxvL4yx5y+jn9NDtzzx0ojOTnk9NPCZnC5q5g7bVwffj+cGaCRF8/EJUbx6B94rFTYZixs/PH31YImIwqR/BsjJ5UEmg7yH2tpHWOS27jysxigjSZxQdWQsDtYAiWIGbaojji4LMsaWkzh4NxiQySBV1UgrYo8HDgF5z00cYZi7TSmVyxGf7wkgVl5wOjVpoNv+DoATzqo4BBx6wCfHzg5GFifllr+87Sdrd/ExLbZZT2rrFBUP9pEBzkgUOdvyYIu44XEhjQUNdp1UB1RijBhZ1LBFEb6R7xYJNRIWZjDCpVF5NZDEjHahZOFyebssVSKXa+7C8b+4tqkA25qNQZDQQfp4bwm+cJw4vHQCzQ1LCGMQref+8GefJ5zRwhmMjzymaQscP8Ag24n5EUjRtuU/Zj5cCB3AOs00cSWv8nXzFNHE1SEe/UTdzgfcQlRduQWNeiCXtOGwauCrzV6kS8LkIk3WkcL6hLk1BkZQXjidx7WYkBcZGhj2K+teqF3g4wMc3ZpIt72dRKZXvP94eg/t00ahbmZmLsWJN+a6HD4wCzQ1REMYgX/AC8Ejwzs3n+Nr17Dldayvva+VpygY7o1imc5HAi2FaDvSkRaGJ0JVrkVtyawpsyCZEQHNOgFzPLKZCScA6jnG/YhCYxw9AeiqSaGrIjVYF6/+xycJs3miQC5mkcuxYjof5RIWbHhZf56NQzAF1CsQOsKIw93qH2yRMwsfMjFnGYIdo1SKj8fKrK+VX20UpjNhZ5XYgQJHCt4NSXpDNtWiI9PJMbyDTLEozWyi+2uFeqIXNZDpql90s3clLmWTexbBnIzxn4zRoATKXcuxY/6zz1NgYq2QBqiIkEC5sZeSeeiIWND+RXk5o4kSEy5MFn03cZ/P+DiAFb+4WSgMPPyK9CmsGqNcu5c2fTX26LuYDJ4ljqusMIey00AQBl9CaRCoLTRGJipRC5oMpU0Y4WfnII4lsRzoEehDw4OAozsW02oApC2o2q0mM5YnB0RC52q+hkUbs8ZIexAE9AvBzxg5Oag9mFYcHi/Sc0ahA0zOxck4MlnaQUemnl7T7vkD+KBrNNr2h8ajXvMOSb/AIqWQSVX3o/h6yuoFnOwi8NImxq+1r1RS7LBmm7gAHoi1Me0b9RGzgy5GxU4kRke3QRohGLKyghTGuwNkrqyjbvasRC7BRq3AIiVCB0sXmgKhyMP7YLNpYxJLZnkMrluvN4G9u0XxmijDPvaaQyOWJ9KqWbaNWwQCFT0H++n/v5tfyEcbSGl/kEEew7vsoY97Vn6KP6RMmxq+Wos1jx7RfygMrKyuldayvSDWCdDy0jl2LfPrK9FfKSNnPtIINHoZHK7ToYwiGTNxKsW3mqxImeyJl2NQIpQcVlEeQDtRmYk3d15wYMVyMLv+ZD2YNovrAitIFbWwRR1s85J+zAEwYev/qvzmkTtq0xcljZPorD83QwCaQKZtJp3jYxOKPQfxquym1+0KFfP8dE+w3n69QLyV95v7KutZAByccEqC1dK610Ck+GjK+a+RWVlfORCxrBozWSRlDR+RHIY7r3O2RaNQLeRArELBA0nOd1YiRFJO78GKEyAkRPJyqSRGEAm7yKMyOFzVyWQgVtpvAcBwYCKzTIZZAG1EnekJybRokZI6Ka5xjmmh7sgU6mXuyFvSec0kAlflwrxlVPB9I+dpJzC+7NR8RRoyqMbPQfJr+PTbuG59u47fWpo5q9Us4AH2m0/aj7qsrKwcYST5yvTWINqCtxJ2llo5WVlZWV0rKysr52k+vKzW/XXyIYw5oyKFYgRsUYMHlR4qXT6YynlxtQRxpAsYs6mAAbgDxSqXg8ywE8jIP2ojJh5s4ayhgAzz58jFHZ05bpJK7cHPOeMrjE/Z05bpdeB1vNASoZi+qXaVQnm+gGdo4QRxngZGhdgo/wofPKkefmRLuNZFokCC9XB2nI9Q+/rK6gYOlZWVlZWVlZWVlZXojcVRO0c4etZXSsrKysrKysrKysrpXqVipsfq3rHYt6VjUkKeioWNB9GVUnNPArgs0GnMTG6AasmLbzcWpeMUDqH2lTBKsZJaacyVfeeqxFLuBjxK42BhRzziRNIaWss+MijMjhRrHt9gyuMXzlnLGRpvcKNY437FBI5HQDi85ysm/ZgWLLz89NNHvesbYvtGrhQKHXNGAitMfux/CggAj7mWZpa3YATlEesqy+ekT7TeJ8RCoBmpm7jX9+0ToLPpA9FdKwDKysrKysrKysrF84RlZWVlZWVlYPAojKysohSVZcrKysrKysrpWVlfMErgUI4993ImxiuaRlW7mlWxQRVs5qdUD7FOsQeGYFi2bgaGM5kPJ0prjppFCqZS7knEjaS6YFeDG7IeD56aUCGJpi5s3hN4f8AQI6EjNJ+2rTE35z/AET56GsgCu4VjAjkXqJTLIXwZXSCTttedyFvdmqm3j2gEnNT+0iwj7KvvVKgHd/F6JkV/frjGW9nqkmMlA9b+UiFjWNpHC3hFfKGabRGQbjqNEYxY9SHawOTSoy0vQdBldKysroBlYBlZWVgGbcrKysrKys25tys25WbcrKysrKysrKysrK6V1rK9VZWV6Ujk27liClve8YrcsaKI6keamqRqJNY5j7QUYJIxHWd6O9/TbZrJzsRYRkcxjBGO5c2VB5xkZVFwaVpBuzVsLEa1vOEfnocKgeKJOasiNFhHHQYvQGjwhMenLHoMWJm8EMvkA1eOK4GiQF9zSuZGLH+Ur5xSk3/AGcbooO77vRFRILLLyzT1uND5K5pXVo9p1UqrFsB+RWVgHUDAMrrWAdKwDKwDAMrKysrKysAoXnkXlZWVlZWVm3KysrKysrKysrBESLLRleldayulZWQRg2x4PBniCNxiFQB1WYqKyic0mnr3u6ySvRGndyRj6QotkQRiIBn0yt9CQEmmeF089NGgLF2di7Fs8nKvgAHDZNm8ilHYvGcsbLf7HGHzh2+RXGaNLk3GVzLITh0coF5RGDOM4xELuANW437B0hQM1ZYhFCRFnQnJRsULhOMOzpwuAE+P4GNdxrP+LXbWSR7GI+5rK9UMRlND1iVlQoPvx6IoVdbOAkZ3nqsu8HyRiuVwuW+QiFjWfouKx0KmsrAOgGVgGVgGAYBlYBgGVgGAZtwLmzNuVm3Kys25tzblZWVlZWVlZWVnCi8D2aLLRysIJAIcUtGsrAtmsKqVtcr0adhRXAM1Dhm4VSxoOhXgom41iaK8dVU7DFD2xWPqALGNKW5wE5M1IqkU6ghEN5KdxOyd6ULhN4poHHHZhC9R5wDBbcYEO7bjQr2wh1EAjYYeg45w9G/Z01ZpmVJQWqzY1BBclcAsdNIBGrTEknKvyOMjfa2WswsblQbRPJuckaeLuyBc1MnckJzS6fYN7fwMT7TeH4kn15K+9r+50KI8oD/ABPTwxgFPtx6ASDY+1sgUPkKpY0HRkNNkAXcdz7dx2+lUJwqR6NJQcXTb81Vbz0A6gdAMAwDAMAwDAMC4FwLgXJXKmhG5Bzbm3Nubc25tzbm3NuVm3NuVlZWVlYV3DAn925OV6KzxjEnzXqeMhTlYjFDebg7DcSEe0hmZ2pni7pGFaOSAiTdL7R7seXc1hnZ+SjlTw8rRx4WOBSQT008W981D9xyejVfFcXl8Vl8VmlVbMhTUK6+/UzCSgDzznFYRQ4OaeISOq5qpBJIawyWbGCjhOAZqgI0WIdLroHK+I2IRnOQDswl80unv3sos/xQ+SrFfHQetXK+GkZvPpANX6SAPuQpPj1DoAThQj5I9CMUO4O5c+odBmmAWPcJ1Dxlj0AxTWfqXqsJJ6gYMAwDAMRLwIubKwLgXAuBctQcAvAMlgLciPTsDbbc25tzbm3NuVlZWVkpoZdYvuUHKysrKysrKysrKysrKysrFQsax4iov0M7MKKrZrGh24FvjF07E1iIsN2jkgnI9xN5qPdJWSxbfGw5vKIUyBP/ALGllMhsnA7KCOi1FBeHnoB0s1WUp8T1EgiBJAy8HGUbw8HPNkxftQNJn+84rpWc+cJvNGgLF2lkLsWPnoM/30m9oEeQxmRwgKCWSgF24gI/wAeiz9lM6ObT5FrsrqkrICB8jQwrI1GaGNkJVhR9Y+UPTFO0fiTUO/nK9YGAYFysAw8R4LxRajAuBcC5LarjHnNGSwIzbm3KybU7GoQuJFsV6KysrCuPFuGDT35CUM25twrm3NuVlZWVlZWVlZWbQMP0nYxbYA2bcWJjhXI41N2rbcS99hyETgBpXwbozzJKbpWBHJJYm8eVjZMURkNZI272IVK+SxOUavII+44GahtxIwMR4zTOiNbSsruSrUTmkS2LmVi7lix/ANjPxi5V5GhdgBrHFiNfPAgiEz7MljEblR+bw+Mqsk/Z04Tp4xc/HSBLYsWJYknRRBVLtDGPwP8Ad/yydujv9HFdQRR+Se3sFemuL6ysjNafKeIoBfz9NqDEbybXF1oE31HzR8oDKysAxIiwvGjK5WAYPycC4FxVsURpxgXAuBcAwoGFF9KwOQRdsZeXl5Lp97WIkEa1jzqmJqVbGncSULy/RWVlZWVlYVyViDQDEZWVlZWVlZWLwcIrFUnHUjg7c2sQNtEi2K7zwFIFBkTIlAPBK1bB6srI5ZseQubLOZCL2onBkiDC0kPaTtiP2xWH90Zs9IP24y5a8H+/PjwM5HPR/wBuIJhNNwc4vAcNEcZpqjjaYkk89BwbwAtlCsOaWLuyAHUSd2QnBn4zx4AyOJ5DSvpzHAQIojI1BYiaCoOgGD+XB+RE4RrPQehTX2jOzefkqpY0HQp8seiEKXAbUKqkV6x1roOoHRULeKwYBujAG2lo7cC4FwLipipgTJpO3wNNMXNHJphGLxfiql6xJt4vN+b835vwPhfNdM9nPh8zsaKHjN+bsDYGzdl5eX6KyeI3YWNmObc25tzblZWV0s4xsVhqgM25WG8BrE5NZZui8hIoUznFQtwI03HllUNw5Xd7a7vIP7K8uSxspMyCskmLisDVeKpY1mpYABAegwis5OaWLc9tK5dy2UWBbLoVgNG8W1F4BiKXYLmrYColrmsuzwFJzRoCSpaCIisnj7blcH7Gnvrz56D+2aB1BYE1VGOFYxSrYXPHjK5wfxSjcaxlKMVP2A+b2zs3+o7dorEIDWx8/ZIxU2HkLnnqPWPUPSOg6DIWUIKarNDoMAwDInCii1MxOAYowDAuBcC4qYEwDKyeDuciCHtckvmst0NRwP3Mg9q1m7JJSDwHzdm7JpyprDAko5h0yR+Ly83YGwNgbA2bsDZuzdgOX0rKys24RlZMhZKEaFVo1jcC8K4Fxn2ttyvNEAnjaPGRqAeVayVw0DYL57hyNpq8C3kcRZqyKPkku5kbDElFcVQTRmjQJxWadQoMpYljeJpiwvCCtggV5HHlELEVNUMewEnoDQrEQMQDsttoPPGacdqMyljZvKoUaxTXIgmMb7s/VRVeAHUzZq5Q8lCs84OkUXcORaeNPKIFPATKrOfwOAMLAX9wsEjIZB91fQC+PSPkqwCkeqj8kfYLIVQp86QRhTXpRCxrB8PeskiKGj0WJiL6DqMHSsAwDAMAwDAMC4ExUxUwJgXAOhfN+GTC+F8Y3gVR0vLGWM3DJddsNCCdZ/OXl5eXl4z1iO15uy8DZuwNgbFnW6wNl5fWsrJEfuAhiFFmKZJTQrKwlVYAiMFt2ArZArP95YHjfjWRZSMeSGTxky7fEI80gc3unfjYMMrkVkKCi2WG4Zk91Cf2gRjE1ChQC7bmJIArNp8ZCuxtgncyycOx8YpA8gXziaZiu8yIR4jiMjbRqnF7Fr8ko3nALwUMAuz0j/YgL55OVgGNxxm0gXmncowPRRtFmsN1wFAw8DC27z9uupkWMxj7VWKggekdRjEEkj0Gr4+TfFZpI1kkAbWwRpEa9aruIGSRmNip+SOlGr+40LKsnupic17qz8dA7AVg9FdAMAwDiyUKkggYi2cpE4PbHkUi+U2N4CYFyuk+p7fAXU7sacDDqLzvE4HdvB7uDcwoBHHko2bJL5Mc7HhoJQKAg1QNY+knvFXUQ+P1WqHkfEZl8v8AEZCbEfxVapk+IQN5XUwt4ID4oroMvLwHCeMVDeA5eBsDYDl4RlZLF3FK5DCsL01ZtwoMe9vtihKneTMPC0AOMuvJOJ7lIwIx4yfgBcAN8Fu0tYGU3uw1WRy7c3qBuENLcjSsp8ZtNX0C15AEC2b7cROEgYDzZzSxbmvGbnOGFNsGnDNjGzWcbwMPggsK5H4zwMijMjhRrHBfYoGDB5vACTgs5poO37mRfyeDhBJrP94DZx2/H8H22q/nKu75ax2hb5UqRogA6KxU2HndxR6NIWAHV1AqvSzqUCj0IFLe/qZrj7f3ANYNRJVYSTleisMTqLIwC8KFTRAysWxlXgGIKONEWNiNNq4cQ0wrC4GNqFw6knw1v5Vays/OcNgFZWBQMC4UwoM2jHXFsY6scVQB7htwoDjaONuSdBAReH4ejk7H0EieNmoTE108eR/FiPrj+Iwviyo3joDgfC5rAxvA2A4GwNkxk7g25WFATeUMrElVwSsT77xyXO1RpmvCn4wqcKHGXjANuGY4ecVQgvG5PJXKysrEQOu0TuOEXGQjoq3ioIV3uiGZ7Z33PZ8WcrDDRCjT6dkPJ/uM1XCgYq3yRVWTK1Vlj8qBlZB+1GZTZvPxQw+MGabT7fcyqThGUBnBwKMZgB0H8DHW4XKYxETjecHynkZ63UeoBPqBUKR6bPjoCB56Vp/09+jacPSOJ5L24xsk+uzVfbO6FAF+fXorBjzhloVkJCnlypUKAMAwDAuKmKmKmBckiKHEYA2ZNS343EjoBiVfPBOAWazbxeeBg5wAVlAdCaOJZJvqAa5IvD7eMvGWxioFFYI9rcNHubFgAa8aGI8FtBC2SfDj/QYJ4vEetnjPMXxVT9cWqil+noMDYGzfitnfp6xpAosnVn8RTBxiQU+4nEjVB7ZpQLVIl2IMc+05I5bjI2JHO7LoDGa8GAVhbisVLObAy7g3nEKtZDIDRLVEuMOLwi8o4MWMRJvZnLtZe4kCBgKxNKSvMCLC5DpIiveLXnGc77SSUxILlcyNgHOMbJpeOeh/sEjLttXVuu7YoNeOVwDNtZptPs9zBT5xOec/Nn/1tF3nHnCbN4CMexwP4AqV87ji7ed3y9HNCkRDSEFjWAemvlRR9xqyWPttt6bTV9ERnNLRJrKIwEjxgHWIIX/carO2yfP2SRM4segeuFlAIMrKzkr0HywMAwDAMAxVxVxUxY8VM4Xy+qUcLJK7+dpGVgHOAVRPCkE2RdVuAA2xgcWQ14rqxtn2tzgDP4MZzaoXFUE3hHml2+MvAN2VzWMMonDlYBhHUAHCo852wRmysMCMPdJ8Oif6ZPhzqfYs2o0/GRfFSOHi1sL4DYsZeIeM2gm8mPA6abhsEik0J91WtlaUKiq2BAOcb3CscK3lHSto3K3Gbb4HbN5tAwjjCMBIOGU1QB5xbVha2LZnXf7sdaNDgeFBvikgFlnZmJMAFF2LNe/NxLXnfQfU8ttuxBZzeK2JEqgFzNKXYkoOLBP4HgEYDXgezzwci/ZiMhq+cVbwc8EqQaGn04T3Mi35Y/0gDbwODigYSPzu/tngWXfZ8vRuiSW+teJ3uP5Q/hRhBBo5tFG8VyhsEkmz6AawEX7uqzMqGMdFBY0GUqSD13WK6KCxoPG0ZpvSsbMCR6UmKCvtRkGm3izNpdg3LXQDAMAwDAMC4qYqYi5JK6S4+rJ8OXbkgcYq35XnjGUpdkjIljKWWjVqJeMsaVlfIELDce2hkrI4RHdmIEFSoUGllRi2AhhRCMD7ZIAAWztfgHjFBBwmmz/YK/nCteCMHK4bweDi1lUMb0qMMSnzPoIipYP8OkUblSafTnIfioPEkc8cnIBwNh5GCPFG3Au17xlYvuCFJ+TRFnAwOBwW246+0gAFTZMqAAkOrjhqBoAbcKBjeEUeQu5qBGbcRSxvJyxORsQtkxh1tTp2wAQC8lW+cijZ2oS+QqyIVF4qlvANnc9Wc2BRtEcX9OamW/aqi8k4FZtK84DwbAFXhJyCMTOBmpl7jUMv+yKfAigEfOKt54XFFcnaTl0duC2FZd8AqRgxm2jkIPJ+4vpyPQK/PpAvrXF/JogWeg9IxZYRpyhyPthTuJJ84SWNnCOml0pnahq9EYADlHFNG8Js3igsaDrR6JG0hpehBU0cVS5AyeFY6C+lmZzbD0pKyAgfZj0AWaDIycNgzTyqE2NNMgj2LgGAYBgGBcVMAKqSIgWWzwosvqfwh/uazY4XlE9u7EDL4EDEXkcZF3Jp+CW7aRpTQdwnkSC9rySFGBztq4LL2Qq+0Md20kCQHAAr2WcpYxCAvPaDHcsgZfc24V70oGhHe7l03NQY7Dlb1wuPAoeCqWCc4qiF/GDaMNHxRJwLjecrAM21lYy2KxRtFY8Sv9Uvw2NuVfSTwciH4jLHw0OvikwNfgHAwPGNGt0I7vkQU+5aBxYApvO2zMSqR1ydQbFZMSTkLsp4Fk2YvpxiwFqwvy4o8eeMSMkG9lLQIpTYkKisRiykBfaLZnJN9K7KVkEp+g6tgQBkMQK7maJGU7VQILIUs1ZM4iXYo5OAlRuZPN4PJvbzZWIuaWSBo6tz2IqG7yMAI4MaM7UIoRH4RLOD/Xk3g4zknPGEnyOV5y6XF9osgX7mqz93Z9CgsaB6BqWuoA/PoQqPq+afUm2/d02Nt3dNLqeze7VasSqES76gkGwSSbOBivj0DLPzyCPSos5PEqePSMSBm8PGV9CIXYKHQoaORtsYNkkgbgYMHUDAMAxVxUxI8VQBjzqvCuWc+4DOKxR+SWr2nZuWsSNo13FzIVyPaQGyZlI2sI1w0RtyjuvHG4VglYOFxuW248IPI7bgVhRWIOKAg24VWjcexBQcF2C4YmZ8kYIKXsM4s2Lwhd21ghWwN6jg7fbjGhxIIxRalYWCqnOPJZQBWHd+M4Kk4L/BwdavAmVXGS6OKUZN8MdOUTUz6c0YPiaPwyGNzamgMSTbgnGK2bgQVwJS7R4GOQVIwQ7zg05AsLCoFnzwMKnzgQHnKUXm4gXm7bZFsw5WENyWc1tQu18oRzuRI0G/GtzkSbBuxzvORA7dpVK5E5LP7f8ApXGNm8oecLFso+Vc1xm45BKUPKlXG8yuXYkpGfJijMjVkaKnAVbOAFeMJIxaA5AJPNc3l35J28nuE3l37QRgH5Nfn7piD4xdv5ar4wGvHrXbzfyB4vA1AjpWA0bxjuN+plQICMBwmz0CsQSNxqul+hCoPu9CRs/0+keKzYwXd6U237vWST5+XGLORgIgrWouwN1GA0bBYsbNZt6jBgGAYBgGKuIuImMyxiy8zyYFAzbRF8fgufBjkoFsRjuJx5UDWsjdsYkiyDKFWq0wxGJJBdWVaRYq5O2iK3rdgY5IUkA2tsSQeMIvFGAncbJQNuwzR3eGbyAktYZiWvDM+En891xg1DjyNYP6l1kYY22qjYcLIh898ZuH4JAOCQeMbUhTh1AJwyAiyHXBKuBrwgDKyqNiWZgppUDj3y/DEb/rMeo0xsQfFfxLHOkgtQVrln9nAJyNx+S48AuW4UAAYHDeCb4zbjOE4xJQxw+azjxjEnFjFc8L5kN+WBUEAowq4o75eQ7jWGNlGUeQfJrIkKizIxf2qi7V5mcljaREjJGoVklUKh27BkgXcdoiHAEUJd9uamUH2ICcjgaTkhAooKl5QUcC/LF9xxGsclj56Ac1jC8f2DIuBeecQEebPQfZXx6jzz0dlNV1HyFNGx8pgV46D1GJ1UMeh6B2UEAAVfXisiiMl0yqFBFCr6jpFM8V7eqJuvpDJ2nDF3LE+p40VAR66wRMReEV6B6VajkeuZFrJ9Q0vn0Vi+cdgR0A6ViJuNZtjXjHjA5AVU+oR4qVjz1wlFjzwMTa3K9pxjWpAY7QKJpvqVVbxIgeirRb8jhaMFss7bCqqHcWoNlc2Tuagb5Iy6GBuLzduW15vAa5LSRp4OpJ8GVjznJOUcGAWeKPjqfF9Dlf3MSHz+ljPAOgWyB+jvwdNMB7THqk5wauaP6hrY2NssqPyDGHXJbiWgsYYZ2pR43SjjBLITWHU9vgmQnCwPkOoyw4ybQxSeH0s+nO5YPiZHtkimSRbVGo3jMG5xbJ9u3bm5FHAmF7Q0iKMQswvHR/JjQ7rw/2xpOaG9R4LHzjnkg7TnkYiHkl2LnI6U8yHjOSC2Io2Wz23ARQBZllZzQGFSgpmqrwXl4q7eSrEcLK4gTYqIzmhFpgvLBScQE4OLAH+24XNhGDxWUA1AmxeI1mjQHOOC7XijAMONY+4JJ8+iNN5rD8NkC3jLtNfJ0CRNe/VKiyEJ1Ygmx0JsV0oVkkzym26BVKknALx42Q02NO7IEPUha611FkcdUXc1egRMVLALYJwdFNGxJI0jFm6OsYQFfkBGIsdF85CQUUiet5r0vEFW+lZXpHUdAMAwDAMiO1rwoCbG2+AYlfknagx3LYqE+KK4Fi2FiiowClkHg8uKaqOwJ4xd7ck21g2qe0Mt8YQSQMLKPIY4rfghjZsWBWO5A4Boe4zovAbUG+GLMeWiK+QK5wBVwWQSFUvgAOJzwFQGzjIigHGRSBTq11gUIfcm6uNjHNpxQPziICOQaFBt3ghURayTTxSNRm+FRVaNoJo+UZp0+szbmvFnDHLTDGSaXtH8mAE2tSr4Eg/rDr/SstHkzLfLwLNZLaWWI7o4fiRHtlhmVx7Rxm8kViEXmwM3Dx7TkbEjk3XHcUDGLH6eyKwRjGZQOGAvgKT7SIwOS6X4VB5zZRwILorHR3MVX6iqiiceQymh2SSNoKx2MMl+DanCxJ5jtiApsHbi1Au5khaU7jHGqClCgZt/t/64GWwwtQvCTnu/ILDgA8cuQvhpb4MdYFA5zdhNcEt6Y4i5xfhbst5LC0Zo/ZEEeekL7GBwamEMZslbcxOAWaFfLo+evFZXGDDkWkaSMv0eBkQOeisR4lmeU7n6RCMqxf09w3Y630KgLu9EiItbVkZQQPRfFfIgiWQkHB0SYKgX0B2Ar5aoTnaIyugyuoGVgGOigcAYq4q4iWCMd1T2g2G90SbjZpS1HeFF5u3+3AnJTI94faaIPNWbbYvFMaHC3+VPGKAjVlLu3ZuANZuB8HCQMMygcGdzgBduWiKtWIm41ibVesdVZzYSPHbapAU/tkCJz4XbuO3EoDiNVA3ZSNeIibbxfd9P6crdAP+Wm5rAqsu4MXIs1xedz2UA4A4kfebwE3ikjwGPSgRy+kjl8v8MPmMxzxcFNQUNiHWg/WCPIFDjNoJ5eBD4MciCwJ18OKP0Ld1kmmSXyYJ9MdyQfEgfbKjq/0+MsjwsrAZYIxGL/UIkGHKoc0M2XyA1i8Vgc/0EjYNz5wL7OODwG9o54/ModhQVKG07QvtEkTAkHYcVGkPO0YoEfuCRiMb2EJdt8gHGBa4KgA8XeFhlk8H6jWEhReJJuNH3CxistmrC9KHQOQKwNa8naQMNecHo0jhWFuXk2tF8TdWk49I9BN9FW8OncC8rpfFdbN9QaznohKsCCfxgw1fHqPo7TckcVnFdQ7AUMLtW04cU0bDEsbI6XZzz4IAPGKQDzgwYylTR6GskhREDDqOiuUuuK9A4ORSxhyz/ZjqATgjbNHAoG5qSW1MqBW6jB0gVCDbAWaAwLiripipXl5QbVRAWXdl857SbBQKefqWx3VTGkCjcA5rcX2tQJvwePzWFqGeOnH4agOTMoFIrSOCRR/IjRuM/TtdrsZOM339QHNKAxWgfHESFvLiIeUHAIBA8AuSXVWIFlCAtKKKm4n3qRnYAPAV15AaQreAKHxxdAMxUFcALpyAKyrzacjReQ1AmldNqgYyFfMcZfnD5oXQrPOPpon8yfDP/we/pjymuR+GV+OL3GgEPjHVGFN+lZOU7rKfehDeDJS1kmnilwxajSm10/xFX9slgj2hSRlYQcs5FKh4Icc5vX8d1sWMA7jx0a7ybjjIzV4Z6NIFCrZY1WFjIDgcxm83km8im2EhgwblZmDMSAuIiKAX5ZrCrRrFofUTlVy1HCDlZweAybxiIEOE4WoUOgwIqiyEFWdygZfPDWD6VNYNQ4FYzFvmfDkV5QCryNK0bagAOa9IUnxnFYGK8gkk2etdSCPIA/PTTSrE9vPEUbm+iuyggYNyoSMRYzGSepq8K8Xg5OM5bzlGuibl94AZzxhN9Vr89FVdpLZFH3G25DC0z7FIKkg9AOOskLxVuExERj9IBcUPQq2cj+Hu6bskjKGjXpGQaFpV3ZPpmhNH06GESNypjY7c7iwkqTqkUHa7WfQMAwDAMAxVxEy1QWS7yYFINNErhic3bEOIxJABtOWhuuRtb6QzbSWwG+QbvCM5o0t/wBS0Lx5kXy0xY2BGWaiYljFlHJvaiI3tZ0SMWBOV4DPuFFAqqTigXbOfcApYRCgr2tmSJXGcLxiAhicVXU3khWtpLhRkTIVsEooJwKF8s6huHZqrGoYTfm7xgF9qgqMTkmha+3HjYctGy3zuO629ztm18Zh+POKB4ys2HwDCfDT/DUl5jAn0jZFqkl8AgnlxYxGIFZtGPDzY3lDTRlW8xctmp0CONwHf0pzT65X4Icecs9ABi0BZCBjxs4ohWXJWYDjc5xN1WXkXwE05Y3I8fPtJoAYVVeCHAONE7tjChWViKfwIq+oUPpVTgoZuHGCgDgQAck8Zu9uFyc8DncKwvWcN5ZyeFC9VG3CBlrWcXjcCwn+/XR6geraavpFIY2sSfEpXWsJs9KysHQEjwBfUY1E8YPSe12xXpo9B55kYXSdaxVLGg4YGm6PCyAExRGVtoLMBs6UQMBI8Y130ijDkgkEYEYgkY0jMoU9ASpsAFjQII4OcV0JFAY8jv8AV0LAqAMQci34YjK49ERpsBRtr5rJA8hI9ETKpth5yOeN4wjaydZOB6dJN2mzvwr7hNJva8AJNBkrnB0rAM2EeQuKuKmImM6xisAZyWYBI1sQk7SceEk3imNBtx5dgByyScDK3iKPaSTeCiaz2rwCb4I8UHlRcM5PhizGztFXlDZuVaPhm3nbiAknC5I9oULyOWO7C+/jIkAvFoGsZ3VrP6g3hYs3CCgTg5N4NzGy5ogm0kxAsYobg5IzcoSiHI+uZrogOfGWqmwWY8Db/cQkrWBF3UVVReLDfOI5Fh2qzh85E+047lj0I2jFjci8MZC8xXRK+8m2RAORPEAKE/w4HlEmki4kjmVh7dwXFYXjLeMObO0HxvaM0UlsYqhvM/w9G5RZptOaeHUrIPbu/vuzu1nexdRn6oDP1IYViyEcALv8qtWAVY3tJA8+xjwq3ZVIufc6buAyC8pbvAx8ChgHNYPZwNqhTi0vJQVzm4HCMJrynHk4VryXW8JLYBxYwEAYi2c/1hI8ZtB4x+PAcqtkHcSfRXov1k2OnNYVIF4QAAR6q6L6SpHnGN4MkmDRhB6VWPtksQRkWqaNCnQ4VXZfShWQlAffptPF2jNLrYhp5AYpHZ2LNgUnwAz8AWp6liRRDkArgNHHmd12t0LEijZqujKyGmwISpbohkgYOCxYljg6qazauy+qqzeASMJJNnO21bvR3Wy7+cMs9BYN4zs/mOLeLzbWAYox3DYq4qYiY0m3hYowfqjC0bjYBqJceAns4K0zkkqWa8sDyqBDa7/znjyqKDeEfkvOo4VndxZC15PvXGqqbtr28UALtOwobQgGwz7a4DsFrARsrC7biVZW+rNznklUjW8acNwfHOAljZVHA9pYR+QwbglORiwhWsMtNg3AWzNS7cMoK1g2lQMdwwoBVCHPI9vaBJLHcfbihn4Lm2OKxC0QoA3A1tN9taDC9tjLNjO3Xuaowl4ZV2WN3trEcge0zS/i5WN40DnysDPhgHKE6AFvbsliNOlNlZtrAowQjdeNEDyFLp53FvBiZjTSaF090cWuZDtlRhJypsZzl5vsYshHjuk53CMXUOM77HDIWxWINjvN+BI5GUT5CZsFXmzBGbxFYHkttBUWcRARZq8MYOFQvJRb9xPObeOC3FADKIHoAC0M3Zs3HB42re0UAm/k+R7vkjoBeV6LNV0CewtldFFnHUKxAxnLAA9dKoaQAzoqSEKCACOjyM4AZgB4qsIFXgwLeRQmUkCsPphCENuysrFOw2c0uq7EfOonfUSXkkbIaaKJpW2qbxGKG1JP5H+93FZK4c2Oum2sdj6qNEek6DHdnNtgYgV0LWvORiMg7+gq+ejFGRQseidxYKyQE11EzBNmKgKFutZNEiVs6AZXQfMAwEjwBgGAYq4i4q0MZ/7UYzuxHC8khXHCuG+ozKGxlB4JAPlTfiru+DgUDgF1Az9TzhLP5WIUcIQ8De2Kq3eXJePXLM8gZaAqqzbV2ioovGFYZC3GFhZClqNZbbSMJUptwy7xWB1UFcBPFLuNg1t+qNUU7sMjb8slqxpAhC4xUrQcJ+NgVeUsmxRvAFArJN5raAUJYo4cZzHJZobsDKTSzEeAOeAxrgEnIkDG8EgsjFV3UhhERmxPGbq4wNm7ms3YtC6FAk4yKwrFo+x5NKLtSSOCtDkkf25xheFeKwwDzhDLiSi+ZIopuGk0ckB3RQ6/+mUMHFqQ2AVljoNtZwOlYB0/GCyOOaoBaPCIfJW1B3FmkNYBtUjNi5+cAOAnzh878SyDhdV4wsWwYBXOcXZJB8Yi3zlE4RfBK0KVV4xRz7ivFYfHrrAMr0AXkekd1sSRlDR6gAnJEVGpdvF/JrAt4dHIF3ZDD3H24VokYzFvPTsqId+J55mMe/8Abz2X0AJyBEdwHcbXIQiss1WaaNZHCvqABIQMBwMQbDs8vuZI3Klx0YqRxZu8eTuNZnWIEdo4OeMnREelxGpgS7bmLYODh9x4ztnbu6IQGBY1fCttN5FA0xybStHlcXkkgc30A4yGt2AuEHb+IoO2CZYGjAJ9A9IzS6ZChd9Vp0CB09MSgnmQKGpeo6AYBijnHIIxVxUxUwAKLJDOLxEs2XNjlioFnZYGGAf0jtvm7ze0XuBNeATjzKMMzHwR+cEQA3G+KC2BR2bseU1txFIG7DxHyTYxghAxY9xOKhN4qtuBxowxvGioEhfcawQm+NigkZsAPFcGo4X2kkhhiSuooGRiKwvu4xUtN2IjNgVd2SEHkKAV4EbKKG3L4oDgVkY28HlronaLyTlcrYbITdZUVgC1hwMFFYiAC2FKeLzmrw2enlSMDbQAd2BsvLoYwDiwj7hkqKFJbaPOXXkHjCMrCK8EYyK2CIDACMfTxyiiYJ9PykOvVvbJ7WFqVOWRl4GBwcdaF1lKPPNYLc8xkjy8tNjyELZj+nB/fAM4GE7ecLg4ZOONzNgUXyRRyMXhIOEgnjALOcAYrY1k4F4z2qt53ebwGiTgUsbPyASOhN9E84vd7adj4rt3iuhN4OtHKwAUb6RqHUrhquulZVcFi21zKZGtiRlUaOBTV4FJ8K5VSvSJQzUW4ODFl2IQuIxQ2Hbeb6WarpBAZm2Ky7TXRQcZSgHpGOxbyefpKkYDR6VhFHh43A3lXK8irzkcegZpo6i3Jqf+kb65w9FK7TYNZDrnQVk+paXyST1GLJSFPUM0+r7alTPq+4KHoHQejtLtwYBgGAYFwBUQuyAMoZaCiyWZmBxzxsYI4FDa7rWFSi4FN2QgUVm2hS1xz7RyX1A/Bcty23CI6rAQt4TYxTQ5UFsSI0d4hRjeCMc4roFpkS+WHDYZecLmqzdgbEesBVeVDG7xjZyj0RScvmsl2jjCgYgKYGBrDa8Yjqg5Dc2FJJrIr3Ywe+Ku8VSrEYV3CsPsGc4zULMTs2Gi9neVJo+LyxkQo3gAN1ZX2laJwsF8O0lcAOq8B1Pk+Ol4hJ8A1lnAaxvO5VIcXgip8emNEwXyhtDTXgI/NHKGVlYUwEjH0sUo5Onn0/McXxEH2yKUYWKGdvmsMZHgFl8hgTgf8AV+aC+d6nwYSeQh2mitEkmUMMWQjyZObG8k3hN5WbTn5rG4OJ45Eu0VhJOKoXkk2bxbHgL/AHArwxoYJBdYwd2vAgQZ7QKxIyDZ/wCPTP8AjSfDfDZ18NpZl8lSPOKaPoBoEdBkerdBQdy5s9BjHcb672K7ehkOzZns2+kqoUEDCWqzlEYSSbOc1mn7dNv6Lto30rpQrpxXVSVNgAEEnoK/KIXNLRS1JYnKvEK3bMxbE81giiaHcetnGkZ/OI5RgwdzIxYgXjKVNEKWNCWF4m2vBqNgovM8mHBireEADrGqG9/WQoa2RzKsZU/KrB1AxUvOw1YVIwE1WAYBgGKuKuIv9yyqMFyPyqhTjpukrEGzg7nQEArf1MTXChtvIdQLMk7NwK/GKnFkISLBs84oJ+hDuOdvm8Ioe3+xYsACTuAUUVkN5HF+WkezhYnLwk9RiqWxE4zZQvA+B9vlLOWbwr3ADgWvG8A5/bJAlbsGxuFVl27cUOoyNwPO7msNk8fmsR93iyDigGxhIiHB84BeeMVQQSRwc3EYD+Go+GD7TwXPnA5N5v3YBt5Bo84QKsD3Hg8GsD3itRxDjvsY7VmYkZd84QPx+KPZBHH0/WOfHJ5OwlScA/GEZWFTd4AD4m00cnltJNAd0cfxDnbKkitypYg2AwI58nEju8KsMYm/duAQMFchTe9CvQsT0GAWei2OcDiiSoVsA/GGUgUV2k4FFXjE+CAT4FjyFGNIqXu3M5te2Ls8XRC359imxJqrO1DLCfKmD8Ksn9A1Goj+v9VDJw50Wnl5SX4fMnIII84vQZKqKRs6RLGVO4rRrOK6KATyQL49FZxtyj0rpuNVgal25uZwFJiIwissVXoFZEm9qxhRyNzGwbGax1WaHsbCYpY49xIrqAPzgyKQxOHWaQyOWODnjHAXgdIEQn3uFB9uV1jI2kEjmgUYYkm1SuE3gYjw8jObYY6PC3MUZmfbjrsYrlLtwVgrLNV0A9Si2AMsYSvkjoBgzSRrRYnVMDmqRaDCsUYEF7cC4qYqY7CMWeS3MMB8sYmdgW7fv3K62KzeBxjAEbGbaoAYzsfA58izgTmgqLdZG7Nzl477RuzctbcACLQLYv04zhRtIBF2JRhe8JxGA8rTHiQVj+0YgBwutcKCfeARt3ZZON0sooqOzntXwbrgDmseTYOXkL+byCQs1MHCGslNtiSeQUcHgkV42Kp3YrBhxI/b4Dvu6A85W/L4ogkc4v8Acg17iXBOMAcbjGIrEYnjO4byj5w0a6Jtrm8L4pFcOlYg91N9A4vNzVeAG6wc+e0p8bXrA1miabyYyOQRXkrxztAGEArQIyTTJKKZ9DLEd0UeveP2ypNFNyAF3VhUA4kxU4Zo28mRDdF1qheAYa/AT8laHDUMAUfUE/OKiDkgrd44XyuAgC83novAxmo8tv4rtAm2JVTWFbGLQ9uTamvaHDyfUrbBaK6n6lbT/kQ6Z/H6dh/1mCQ/V+ifykcWrXDpBN/2v8I59jfDJ18Np2QHf1AyRYlRTGSSbOVixWhbKwC8aNl84eTZrHRkNMZGNdEkIUqGiZFDEDChXzoY1dxu4MhiM6gOQAMRVIO7qK24VIF4q7jXVmLGzkurMkQjJJbz0jjJs9Npq8idVa2N1eAkYo5ywR0IIF9EsqQuBju3ZLuLEthLIlZphE0wuSD2vuZfdQKm6wYwo9XcMfb0ZNvGNAqwh+oFmskiaNtremHZfvatx29O023d6IkDWcdQrEAYMGaV12lSdPmocN7VAxVwX4xUxFx5BGMCjfm8Gt12u1YkkIplTatCNnckZSwteO+/6RybIGBCTWJGSCcWj4SM2SSGr2N7sJo0CwGc+SwHnA5c+z6BWMxy+gQnFArFG0WHkvGk3LWXgOBzVZfGAhEvHqRLCREnDtBJMc1msDbrGEKDWSyBcdixs5eQXvyY2+JKy8Yrq3gH3ch9p2hRvu+Fu5mAAXB0QbjWALtzbxwtYaY1j2OSrWbwcreFUAvCSOTZvAxvmJ9psghsNE83l1lc0DwcR8ZlfgggcPX5HJ4zf/YMSeFrxiXhWybaIqeCXwSqcAUisMYPuAjsZsJF5soYI8k0yyD3TfCgCWjJ1On+uPUq/ijgOA3gNYGOBsUGrwhmAyiOcsnjObzkjASeOnK4W3eCK6KMBo4WvwHqhga2O0qqnH1ADbcknLCj3QB7XkQ2CUc89BkGlkl8J2dL5b4k5+lfiUoPu3x6nw8Ooh5Ca6VfKanuj2CcHhpNNBL5n+GOgtCCOCOiIXNZVYzxmIKMbZQ26cqrgtqnR6UOoDUMklZwAYtpcb9UsTSfssjIaYA4WJFEcG8mnaYglGKGw2ulK7cNnoPOanTRpEGHQlSgUIjOwUNHsYq3REftswwGgRisVuq4vALOB3VSBXF5ZqsKleChHhi7yIEwknzdisVS3WBpFf8Ab5ViGjRnalN3z0BIxNValXvqihiblRUal6jGfcAM3e2iCarERnNLRGSTPLQb5PdO2ulZWDAMAwYBimsDnoFxVxUxUx3EYyNWc7zEpUklXAvFCD3D3M3EjBFwOxHNCrKj8BAXxVXgYseKPIJpB7SasYGwkWML/nCp84RXOPbNQVQoAyStwXCuEViVWbXUdEd6246EeeqcsL8Agxv/AElCuSvXgI2CPYpwOAPcHsGnPPo092cmYlzfQagbQMVt30q5B4QgtbObN9AL4CgRis1QLgVpkKpy9KbwsSthmJ4w2jEZW3LNYy0QCaGHbQwuaxbRgCQDjR/2Hnlm5BVj4OJZFEms5fyL2YGOBlNnO4PALjzndNVgexncAwPXKja3OdpcMe2zlOBncNVglzvjG1FYs1rYd0YZL8OSQFgYtVp8i1UTmmCWLG3AuUelmq6DCxOX0AwAEc/+vHQA+AaA5AAPAu7Mk4TgyzBqpmKkgRhfLPExY0ujc4NKEALRRPKaRYYNNzLLrHk4F4D102taP2vKEPuJhZPesM4lGyQxsvuSLV/gvBDqRzN8PljalMEg8xoC1NIqqxCqu40CpU0dg23iISCQT028X0ZSvmKUxNuBJY2dJH3VKnUxCJqXIGRHt2IJJGWSKyrFgY87uoVkTe1ZJH22K5oO1vPc1JQSkxmyc4rK4vASBWafT90Fi4XcdoFnJQUJQUTgBOO5fzXF9AaBGAkeDsHjIJTC+7GbcxOTGEoO2rFTYJLGyYUWHePzyKwAsaEkbRHa+EV0BFYD0ADAnqxQqKzzjKVNFHaM8EljZ6KSvI6RhS1MwUMdvoHSsAwDoB0AwDAuKmKmKuO+3wgZXNmIILWO/LBnLbccBXJJcqeCSx52nAi+Csb3gKxnbkUZWybJFm6GALy2eDR28E54z/8AzYkO0b1s4CMlt32hUYJkj0eC14hphhCrbAcnGbsgUWLxEuR0AxI65ZwB4WUqtYDSlsjUVuPdBNKoWuHW+R9KcuefRp/N5J9R9MbF+CSU4YZV+FRlbNwPlaQYzlsKmsobc4+pq3WQWobcRrFY6r5JxyvFWR7SDfCo6rYJWxhGKxU2N2CXjLvFHBOKw849cnGN+Aw8ZzV4zG6y8BOKxA6FyM7oPkP/AHDoTnsrAEPOdqM8Y2mH9MbbT7rH4PjJtNDL9R0UsXMA1bIanjlice0KTlekdL6BiMvEX85/vCVOOWUY7TnwIHbgxwov1xiJSdss6ILD6uT8NMzCiGrnH1YRdkN31HohmaI8GRR74lieYblSGTywMDscGq2GiXZl3JHOHxhGeGl+HRPysuglj5BGDGjIwLZrGXaayOMOCcujk0xlNmsOmkEfcyGZojayyNIbbB0o1fRIyyM3VVMDBnY2b6I5RtwB5vAba2VFYE5xWICx2ifRNCLI5XolX7l1BjQoqhidodXiuNokDsFIft7lGAkc46sw39bXZXW8GGsQoFNsxY2cDXEUysCEgsOsTbHDYeTfVcmKs1iNDIwXHTYxU5EwVrMjBjY610VS3AquoGQQ9xqz9PBezJoDE1YBgGAZEj7bQr7sVcVcUZJIIxmx5DZYFTuyMPsJYvSU7TFTS0zEk0MRK5UQkg3sCigu/bzSyDdgrjOasAecP5zcx+kLzhC7tpI2cZ3ebBfcbIkA8JIpNlmvJOT1vFOB7HLln8CHjcQgItRGALG4kEm7yKMscZbBAMVeVQICB31L7RLqGQ0GnZvJPo05Xm3rcaAwLgXKzTJXuxgCCuEbeRE4Jy9vkUByKwZurgupvhrUkZ2zldEsrzItHCcDG7wHFesR128uoUYxBHQNQrI7VqMlWQElA4BG4VhUg0BQGUfpwC7OD/e4c0JMRicU2MObzWLyaxzfgFjizEHBLxyWP4D1yO5/+iwIytxNMi1TS/Do3NxImpQ7WR5APcGwnOc92BTgH99q57cJvALyuLHdo5JKGwxvyctx5ah54qhE6KLxlHkf6wC/Cj28noFJ8DTSnwmhmODQP+f+PbP+Ol/CfCz5kVEi+hpZz4WeZPJ7U/kq6cPCChtGQMLG8g04Iy/7TaaObzLpngbmaYy+cq8ELt4GknOJ8NnPn/jJMbQakLtDaOdfJChKOVgFnJgqttTFDHgYTGUABJOFaF9Qt5a7azYbrGWsgjd29k88j+1lraRlV18cg7m9xwqR0dlIAAcgEZa7ehUgWcidVvdhiITf0bt7BXQPWWhWgQykqcvdQx0MRKtpJUjJLMv56HZsFdaOV1AvjGRkNN1RimMSxJ6DBmicI3P6IGfuZq3DvkQG7kBiluFxbArFS8VcAx5BGMRSzbnF1yE2/wDZ3qWlFmyVUg8H2eI0O3cYyzckjdwbG7bnty75ylAsUrDkcjGO7wErkgLe7CyiqaRU8MxJvFFmsk2qKwNWRk1eFgxx0FWNo23hRh5SPAQvGPKKpUmI4ML7zkfJtpSQDaKWOCwBsoLdsymwZ5t/AiXc1GZdrda6wbeQXILGkF5HAKtjCjD2lOaxBtGG8JrnCBXuV9vDGqG2wboUMusG4tZPtNsAWbNsZO3HAWxivuPuJDLwwAG1k88CsYsQMU1zgAZaxwbxlFAAEAEG83nmhzZyJ1K7S/isKlTWKT4BGAnxlMLwc8ZYPB3kHAQ4sEEZYAzd/cML6c1gbAbxRgocgPXJFEWp3C6Eo8H2MfaVI9AKYNmMFHgMK6Xt4NAcgN/cxBrsRm6jLOgpiyNye0GNqUMbWTTHCleREzchdM/nIvhpPLjSRRjgFRwLf8bGPkRDFiGCh4v+/eUYZ1PgOcDA+eMMAuwoYeSAwo7NuDgZ9WVuFFvhyE2E0cCeQsSYsqMaBYKLwSIfDqx+kmdcGp28OUgnx9FAM/Q6Z/DfCl/pf4ZOvhoZE+pWKmxtOVlYVIwDGhjEG4YKwZ317RU6ad4SSjsWJJin7aFcUmWMqAApG84WJHSFkU27liecIroksarxxjyu6hTgJArAMNjg4TxWQ6bejNgRiCRgGFT+a6WtG+haxWDro9N3mx9AhU7HTaesKsXG2YknpXSsAysrAMU1glbPOKMVcC4q4qYFySYxtg/ce2ZSTePP/wDk9x/IX+yAHygIssqbxWEsPG17vCMojwdxGI280PYtgb1AxmJ+lM2VZySNycYlUpVFnCvuoG08OVPgITi+1DlULwMuw2siVWNIWyP3ryhikJRWFHpC5VsYJROE941m0rHw+5R+2jWl5PMXY5eQpvbJk2NWDIdMXFl9JQsMtdNOxBNSG2OQ+c1F0KgJ3DG8k4SRjf7dwWwosgBx5ERNuJJXIXYRgQG8OKxVqICvYyE/jE0ziSzLRY4DRpY2KmjIgZS2Ei+FT8tgc1tyMEgE7O4eJVANAceIowQWbbHJwHG01iGvcI5N/BcE8EggYA1F8LWbN3l4CBm7jEYqbw+8WDl4AR5okXm7cc3j878Dk+d39hKTm6/KsSON9YAnkFNxvCpoZ2rGMpGc4Gy83cVi1igEVm2vDRK3nlTa7VIopGB4eJG8rBH5G1SKPbjwbFzeudwYIlGCJM7SZ2UzYoylwqT4ZZR4YP8Akqg8hIGwaUf0bNQmLMf61YHkBuuwYABg6HNQrbbyJtjXjyJtpMac0KGrIzuwy8MNPtawr5Ppg/uRJZUO3BO18qwcZJoYZMn0UhQKn6KW6ySB4zTOxY2YNO0rVk0ZjcrjoVNFFDNR1EKxNQAyORoja9EleO9sKGU0SKOV0rApY0FAV6eZy7kkcDpDNGkbK2L5ySPYekkjyHcw6aedYgQdxogZoNP3Wzsaea0Rv2CydK9CqpUk4M+HOBYzTwtBuZ52tj0GSRdmipJY2R0GVkGnMh4l0TILzbgGAYBgXFXAuUq/Uq4QdpCozwoe4kTO29hOvIZ5d1YBuugWarSINyTZBGAEndjIx8WQazYpbn8iiATWNwMZ78UxN413gJIoICvJSNnY7oRIJKaZjuwIThU1eINzUSyxNjTD+lHZo2vcarLOBTm3IrDYiRRnerGz0iVh7gA8oyOMKLzsuX5kLIAcnlDH230gTc2TAqxtPOD/AKxURNnJvq6Qk2QJd287kasSdWWmV41+lyymwp8XOWu8LnO4cLk4kpQ2ElB5VGUix/UaBZrtVo8g1RxpGGF+Th4GCS12mtyViLVnL7iWQvAo0rcRndHwoJNiWPkuQ+28ikA9rAxr7skayTkbUeVYA4riRcNpYziuKs85ZOX0rnhG2HHUEblVSTWC+LsXhC/0gmulMbxVOWuA84WRRwZm5J/UsMGqas/Vtg1b533PkSOWoMxUBVJqlyaVYlLFfiR/qX4jEfK62E4NVF+BKh8d7O8uWwF4dTHh1SjyfiEI8H4kn4PxJr4b4hMfHdzfm/N2bsvLwE5fQop8mBT47Tr4p/6gg/ChvyB0GEYOMrBhWxRl05XlRFQ3GRi3UHIO9/SIx5LER4KIsPIExdQp4AnTBIl2SwvkiNuDLoEPIl0cqi1ZSPO72bcWNm8HCBV5WHSxDT7+tAJYjuWleeNEekj81kqbWrBYyyTebGN5C+xw2OdzE9KyeARKpxrJrFBY1jKYmKnB/fLFZFA0iswIH4+HSdvkokELGRZr1Ep2gWc02mj2bn1ekVBuWsiiMjUJtG8I5rHjZPKOVx5JdoJ6TGM/R6RmmBaJlWFGhhIkbzgGBcC4q4FwLk2l7pBxVoVkkgjFlU3++QzuhoBd7WzCzSiqFgsLOIlZtW97KCrWDv3myteJFKoaRiDhDnx7m8lvxg3D3YteAhse2NduFz/TZYHCo24xpcMnGI+03jFDe/C69uhiYiisdM5U8MxPSC91itg3NbElVmbdQVqA2tNOGsLfWEEtxKCGxTmnmFUZNQoFKzWekNk8TBg3IwHNPd3hdm9uTzbW2hpWPGXl5eXiyFTYim3cqriRbwGgd1WbwAA2aLCg9HwtG8qrGR/tNRk9h3BpCwzuHFAIJxJDGbUTlxWRtvUjNtsEw0tg7jVYVIHT+nEcqbDgSLuUHFa+CI4V4aWPYeALPBOAmsJBN5FJt4Mqf1DF5JJJFZ7Rm/8Atvy8CcWSVHGFhzh488nL6lSoxFEQtlBQXngZq9R3n49F9EIDAl9XEFLBjZ9RYDyjg+EB8msrK685Zy8By8vreX6B1K40YYY8BGGMk4mjZvKwxRC8bVDwrSsxsw6hgPeoHlBtkXJIe37hK6sOCci1TKfcQkw3L3pITTRyJJyJIo2Fu+ghdaWLSPAGCS6SVfJUjg28i5Z6um01gncR9vDGnb3CCTtOGzVTd576RlQwLSAhuc5bAgYgBl2kjAGbKyugNYGdI66WNvQSyCIJndY9NFpu6TkYjEdprNQHFYc0koiezqNSjJsQGjjyM/kYWJFGOPe23GXaxXrWQLGT+5WUcGRuVxpWbzWAYExVxVxRgGAYXCi8Z7JLVYskreJCWJGImxQMQkNWLJuvDHuU4gKeQ3IyyeCpvLoXh2g2KJGUFsYiWLwqCKzt57a9sjN4JahxZxQpBJINXgxQCaMsW0bhhQBei5HJhJIvFKjkzR2/EgjVeIfctD3O1FgUXYscaLzk8xPtX0Rbt3tm3BuRmnlCijKSSTl9It1+2RWBs4uQpSAl2MQLY7WbwUTz1B6KxU2IZ93IjdZFwqSazYL2ZGw/EwX8ODGawod1ZZ8lQHjoVR5AJ4BBGVY4HjEcobEgLAMrsW5KCkJKQlbLMReDjya/EMuw5LH/AFBVG/djg3k3EYvAw/I2YFU5sA5xHK+XjHkE5ZvDnn6aAXCVql3/ANyR+d1eLyx4y84BxVUeUUKN7AEndgO0Xmun2LsHyL9YjFUeBm4DN4zfm7N2bsvNwyx1GDrt6D1EYcoDHlC477jhwD84ZCRtKFyeIpd5okBhjwhG5dFF4ELGh7ozWCQy1lF3tIp7Ox5HaMWv6jgWCDk+kjnGajRSQZXWNkVGDdFQMDhBBo7DW7IyVUnCdxtn27jsCuFsAWKxNBMy2DpJVwEpYyaQN7Vxavlr8DpFp1eNnLalmiERgftvuyV97ls0WoER5l1USRduJmv0jO1D2N2V0C3g0zkXnabk5WAYFwuSu3AMAwLgGAYI13b8UYowDKzUbgaESMuLVnfXNZsrgOxC5Ga4DJ+QQSKUnacUi83GqwBlurP5DKLAJA8P424QUwMCtYKsHAQ4skswrP0/95NPtFhwB4wuSK6AXkisnBrDGwW8EZIvAMAIwPgv8PJZpWct5aQKNqovb4DWbzY7msk0oq1ddp9ERYN7Zt273ZpK3ZLzGd/SG74m3XyM06c3i7l9rasndzeHImAByUgsSOt4rlTYgnDchWDiw7kEV2yrZKvGFzhALYG2E5FJsPMygW2cbbxXrC243g5GIqgAZGwa0wcEq24n2ltQ44xGHlqtbwYpyB+KLWqkBNQarHZn92IwHkrd0yGztyyDhJ8GGQr5aL8gxEjhSgaixvkE0MNfm885XHoVTVmNeNzEmQ2UGTyiJSxdy7Fj0HzWfDOowzg4JMErE8Gajlo3OK9Z38WVWwYLwHLwMMGDpWVXQYPQoNcn+2MubcayKyMUBUigMaC0LxPcayNzdFkDCsaPtvTDTu59qaNz9b6aIm2URr4LpgdSaxgqCyJYTwSCF9mzctF/h6MbyT4WRyraKROTLt3e2FN7Bc1mmWGqUlTYYljZza1XhN4MMriLZmkCmQbpF1P6gbNRqo/pzUuruSuxtu7pXQ9F1W2Ex4q7zQAOllpnbexboAWNY8RjNOavjAMKkZXRQCeaF8QVuFhpu9Q1DDedtZFGXNAaaJfa80BjOds1eBcC4q4q4FwLjOkYtmAdKE2oEQ2CIO7FsI2qGxFL+B7T7SspY0wIXlAqeAA67sUj8kEAkBOcskii9ckMW88XR4HOByScdgbGKDWMwTLDjIUrk6iQlsha1IMl3yM2h629hRwWQxtj34xIfyRsJIyQFCVEZUDkn84kmw4XHOIW3WojUteNKA3DMwUgOwo5JewVDe7JyC5zTojDmUKGIXImIbiYsW5xWIwyE9YA1+1lZnpuwbAESLtpZWY+3NQNp6owVgTPIHIr0qSDY02p35uDjl3Kg4RVZMgUbgDRtjtZ+S3u4jqVCuHg1j7aFIm4HKrCzAYjkGxKA6hxMQW4ahxm1tu7oDfni+A4C8RuHXa06bOc7pAoKVYE558DeFxmOKy3yGsUC1eUno0WU/XGWtjZNDLAHB/uegznBeKtckKR7nZ2Y3kaXhpFzUyNO3BUr5+ZDC0rUP8AjuOJYjGaKyshzvbzWAQtxgjkj5FsDeMSTZyJtuBBVldgwSYKOMaxv9ViMcDYGwHpV5XQZdmsAroReOuGPjgkkVlVwGizZnbZReK394JmPGcHy8yrwZNQQaWzIbybziTMnh3ZuTpp9w2tLpUvcFmij4C6xCeVYMLAsY0gx9HFPyJdBJEbVyxPIW8CQLBZOWfHQdI1NEg66XbtxZyAQTlmqyPZZ3u242ayAQlW7gUnxWDzjXfOQ7Nw3sYFBZJJWkNnpEwRgTqJhM1iPbu9xiDn25E5jaxeCZ6roBmioNzqNNMZScmBEaq24kVgXFXFXAuOr2NmaiBJRbNqKXtxxKoNsSdxIWNdtYj/AIVTTGhzYO2jgJPkGqsXRwvt8gXeUA2MBWCxRwMCOB7VJDPxeWGGFu2TjyFjZB9mR+MdbasCCNDbLusmKMVuKV5UqWOSt4GSOfBjfuqQQWhBuR9xvAcQXnZvAsYsFWUD2tOm/biQlGOamXtv7U7jWcTVFBRk1ZIoM15eX0hfY95O+89L9EG67UuwezDKa3Ym0reSzc47lsv5AyVYwo26VEay0GoBPApxw5I87Q3DSTLW0SuH9wVdxrEkVWFTpR3AHFcr433d7jlZp2CEqZV2Ntw8eV54wcnFWrOeOUH+oydwGOvdSjeywbOLKygjIdSbCtI5XkKVY5sTyPbYsqEByNnU+3aknKlCpoldo3ZEgZqMkaisNjnPHmi3AjgPnNwTnCS2RIcVaGa7VbiUXQkURnxAoSK+WM+GsA5va27NewaQ1+oVh702XavDIDed1hQUubp/04PgxBTy22uBiJebcRaF4fdjIVOGq6A3g6AkYD0rKwdDYy8FHCDhXI1s4GDkrhTASeMWD8s2oVOEgm3mjPCWNjaAaaJWosruWNkDFJbjFbabyCXeKbUw9tuM3su3Dqip9sciObBRWwu6mm1EEDi3b4etb0lDL7SRm0jKvO0wFmXTvGoJNfgDoproMarNBmUEAMQKyGZoWsFyW3Z56MlYBjoyGmAzaRlZXUEjxgHSsrIFiP1ilb2rqHrGYsbIGBcVcVM0rTMWEgGSyrELZ5mmNmPYtkxRhhvYBWBQRRBbBCBOQdq4EAJK3nAHtog3jEeMIB8vJ5GREsaLkAbcJNUFjIw0F5NEe3kcZJOBzhYSHhWKr7nkJWkMygXhmZzQe7IMTqL3LIVPH6hs3m7xnvEejk0u88XgyKIbLKSDbZLDdtLyKreyCI3uM7mMcSOXbcUl2iizEnL9MLAOCdU4aq9MH5xizvgh2Jw84VdqSyK7WvbarwisRdzVh0sdFQ4o+gdbwMQbGl1O43lq4tQCRtMkasN2bNprKNYOcjIkTaW2haysri8IoXgs8YSynbg/fiwe5qLgr7cIPnoovwbU1lkcGOUocmiEq71qheFSRuwXVYGOK/HJPHETx7OXlLteCViKxWJ8d9D7XMLeU8Ywzt4ERRz3FFUXJ4wKx5yOEKOUzX6rtrsVeTklKBRPzBisVNj9bLVYzE4pjfz2E2khXZPEbo59zmhxubA4YU/Z/I7dYvAxecZsvAf7mP8AIrAvQdLy8GEEcgG+tf2wc5WDjpV57UyY2MIxXKigjdxMnFPgYr42ggkituQuqjmYirAdsjddQhVm0+y9zBf6ciB8qNUQ1Mp3LjzLGKKyx7LyXTpMOW0jRSAtqGBchRiyNqCsbaqLttQyJIjGxasrpuURbcrCoK3gr8xx9xgonh7RrASORiQoYi58HGZnNtGdnvEsplbcYWCuC2pKEcZDGHaiy0SOgQ1eAYgF8sovgDoBgTAuKuBcC54F4da5bhnLG2CM3iPT2LwCWX24AY2yy67gGsncHFEhCTeEBRjhSBjcrisoGb1VKVwPwX8KJeGrI1WuN4Q8AiTG7YXmabaKVnLeVcr4LlvIU7N2bjgYjGazfojqzclbzthAJ5krcaAs5Hpr+pZAr0WHckJEnsi4igv3NPKU9ody5s5C6rdyEFjXpircL1O3iunaYJv6wCTkpo0JkJyZ2CGkjMgLZGeeRfFajaGNK203ja0laxjfyQxU2NLqt5ziRbwcc5qF3AnC+9NphIW2CExPZ1Cf1Y1sbY2OC5U1tYKAKDCqMcjJV6iEXvDpQ3Yz2AM8DFPO45EXohQ5ArIpyrUZ4Q3vDncaG7jhWK8hNt8ijg80Abyx5zdYvBQrcshU+0To3DiOM8KdMw8dl8GnY4IUTyHQfSgaTNVqV0yUHcuxZsv0rV86hIBFa9INK8wsSxNE21vRfTaRgsYQpGJGTisVzaG5AjOKhXKGc4x2igGvpuwGsoHKwDoMIBGcAUFOA5XUDblXjymI2VIYWK6t/tkOLFeFcjJU8SoJUsUMEQZc2GM3h6RxjYWMMgQ8sndNMNHXOPpAxFLoqN5HAN9k8ZuuyxWiDm5lFLu7ntybQJLyjaCVQTgtTjMW5MMDS3UxjJ/bzTxCX2mWHYceRmUKckCUNuAkGwzM5trXZQySUuAPQyRiIMOlYBlYFwDIowwNjTOReLHTUxQXwFxUwDisVQfAGKMpI7OanVF/aiDESziqsfGRM72CiBBQkjLGs4QVgHFZYA3Z5wHjKschKN41E1hRdm7NxS1xUU1nZ5NHa9HCQCaVQorLRTtyQ+45eKLNZIoU5eLtAO6J1XyeoxYhQJZaJGBEABaSER02NNVVGjSMHPZG7eUdZLwKqliBMrAgSytI1t0iQOeZowjUDAoj3elfOTIiqCOm41XWBHKmoV7SU2sbxm4jxed5vGFr9QyGFpOBJpHQWSPQCQbGk1e/PrFhxfllo1ldvjLvIj3EKEhmFEGiaC888ZVYoBq4mV1KYsXv2NtN+1KCk4TuON9XME5jumJ845YVu0jk2pnj2HcqkL7gThXi8JLYpKmweMAPnN3Njdg8VgJrN+AnN7VlseMRqFZHGScmmTSx5NM0rlm+XpdYIV2tqZ+8271nTgmyNMmCJQKwhV4zYuVlHCpyji9ABhUHNmUcDVjNSEhCStmsGbLO7D0BwH0lQwymhNhXDCwB0IvCOMUlcIxEIOKQprJ4qNiNTV5JW21JJNlYd44hhNEMIFHmN0+kEDGcqM/UsCbfVkqaWeQHFndTeRTiQXhIA3FJkbwFViHB+o5NoSxJV42Q0wYjxirZzS6ZUTe7wRTJcckRU1kOjUqC08PacrkzptCoSpAoC87LVeV0rDEQA2FCMrAMj06NEXNZWVkfb2ncBmkQeS3xMiTaJAHQPgXAuSCURntC65CcELBE0aU+qmKuuySZ3NtGoPkmxtWKMldwIlJxnobFjEh5KxUbz/3fN4HUnGBo7g5qw0h21iruGSMDVRxk4wLNixrnk87l3e0bC5JaZASuO6bSMVS5oEUaKIGBvo8hcAYhAFMATgFmslj2eFUsaCI39Ig5syboQBjuXNmKLuDIyix3gfuuBiXtOx5ggAd23MSOqsQbD7r9241XpGSw7FvqoxI12DKyCICOw8m0AvK5ka8II6jHiKefQM0ZGwgLext0n1ekEqbGi1YkFFxfIlVESxy3tG3i8jdFaxOpVtwloeLJ46FCALsjjElKnhzvUSKzEm8C0OUjd7UPpWAvNhJrJoHgI3K9HmyvOQShxsaaDYcZC4vLrKy6sDbQ5vBX9VjoKwYMGKMUEmsLpp03Gedpn3N9pvGd0ZvwPm7NwwgNgrKwjKzjKysvODldawZWV0HW+gwqbwoUNrHIHwjKysKYEo4B5wjByKLRkeAhbEhZ8SNYRZfUCvb3HY1kiduiIZe4mS2Gxr6RQ71vKrISyv7QRKKMsrIcSdkN5DqEcY9M29HVJ25lhaM85D5yeD9Tpti/DtIdFGVeeW2sLq5FFCRy5s9IQN3LA0bbzlZCwRwxlcO1jAMCKF3O8bJYNYBgGUKxRmmNCj/xdy7segNoC4FwVu25WEqgs6nX7xtjVCxwpV5HGrLQ08MgslJAtrhVgaXaa5CqoyubwUTntPGUi8Y8i3m4BbDncm4BWKZsAAOKhHgp5ymBxHLc4ACckPbagWJN45QpwpINiaPYcSJmF5IiquQqreWTtkMFAb6lUo2S1usWm3FlZRQUWoYM7OaMynbZyCIj3F1aQe2JAseD2EBRpS5LGfTGP0RmmvJ5e4fW4laME9Bgc1WRoWNYoaO61b29DRqrE5rEUKDh6tIzeeowYkhXw2odhRJ9FdEdkbcuj1YkXJEDLx2iGKsyBLDM1cGL92PaWjJXNL2gDepKb/bAO6/ucBoyx8Zp59jUZY9jYFIO7ISGTge0bi7LuJxnZm5Bo47EgXGzE0Ipr/bkliKWMK1lZyOMZSuUAMoHnAdvGAjoDQwMcHGKMUrEm99VqWnez9qFxg+BFPlUrxtY4BXncozeM3jLwNm4Z7Tmz+wVhnH5HUZWEXh611FjoBlYyVyI5L4PpK4BhF4sC4XC8ZbNxjQsBeQ7VBBnYGgIHVDZlQH3ieQtwUjZzQeQKu1QLzsNV4e7GvMkayxgoqopIkuvEM/aJwatQxISpRStpAVO0xvEfcmqZBQnmLVhyPaGG7U9st7MAxoHiALGViKxU3GseFoz7nj2GsroBiMVzugoQSwK7c2UMrAuBcXjAxwDAuBc7Sb9+TTpCLaeeTUNiIA3MO3ecAo2ETsjdjh5CKQMAVcBvII5OblXzf5wOLIDMLwAEnGCtzjkVtEQN1hYMayNRks5WSgwDKGLuOCYjXOWCLEyH6iMlUKaVtqKrZI+44stDCcBzcTivUdmJ9/GSe+MscW4yC0kpfEiLCyIAeWRIFBOezYQ3haSWZVQAwuZWOam7AD2YPc3nrpyATeoIsevfJ2qPSRo2rZHGXNCCDYCWmlKqbY3iuV8PIzefl110ESOxLauFBHuHSN2jbcul1KyrYnjDKcYktz5BuOSQVU91vV1dTztZgWxGrkSSl/IokUK5ODtzJtHd9nbKSlDw87P5LXlHLwCxeKeKwHIpgw2NLG0Y9tBhywrwT+c4xgCooLgU1gGeTiKfwoGbVhXfJqtU07fKHzYtxGGFWNsKHg2cC/32DLXPacpcAAHQ4MHUKMrrqRMU/ZQHbbYOlZWV1B6Vjpkc1+1gvN+o3hyRb5xPaccqAQqRWLyWMqaIXIb2bWeBycR2j8E3imsin5FtUe45DN2zmog3HuKYyDWNpUC1lZCOym5lkSfDGRYWXRHyrIymjWCIlC+VlYBWNIz/VlZI7PQOAkcZsoXgGVlYqXmziwBgGbRWKmKmBD+QtYaAsz/ABIfTCqNI1u6EHaoGxhuESx8qibbZwPIzabFCM84Qv4ZyGslRW7A34BNWRuN8gM548nkDatrE7NYO3msiauD+mjZt2Hm8khZ3vNlXukbaoCGjHeI1MDkrAnh3LL0Siw3S1+MUEnHdgNpRyhsSTs+IrMaBVrG54Y2Y1NKUUKrOzmzDAW5IGxQC5VCWErFmJMKMx4j1e1drT6kyYegBJobCCA08QQcekYZrj29FQnNhGacUhIDFAWzUrtbD6qyvVpYBIeW0kbAgSLtaukcjRm1kneT6usMrRPuWCZZUDDURHduyRraySCPbpmUKUMqFTtw0BwrFTYAvp4yJismTe9O4jE+MLNtroCThO7AL8XeDjyDWQanaNpeAMpMW6hRCA/TsI4NkHnk4BixEjnaqYiM5oeyAWdTqWnb1gE+MiiaU0s2lkhFt80sc3AY86L5GpBNBkkJxQawRLjKKwADwG/vg6AVg6DjLygc25uIxTY6jAD0JwdKwHocaMNiuV4YG+tdAb6EZsFYwrFk2Csdi5s0oXIyo5yZNy2pTnGQA0DGQMo4sO7nGiYHnTB14J0ys2ED6cGmju8MSH252IxwB4ozD2UBCRSk6NSPdJAUF5Dts7odDuXc2o0fa5FYh2teUZX47TC8GAYF/vQvhEvCm04lXm1QFXCtHAFVdz7KxVxRlZqtdFpxRk1EupPui0484sYVrIQMxrsbzWLBTc0SxDUAu3FAXjLAPIKkk4SLz2j24sYBtt4FbWIPGOttRYUaxmIUUWZzZZKG0InPJnAO0I4c8tVipVZgcjlMZsFWrdkTBWsyvuOb227Okab2rHXYawZE21rx33dApY0I4ZFYFZeEOPKz+Yk3tWDTG8ZaU4AKUYzpF7M1sao3ETOp9hY5fVHKGw77vDwlEDeoZFseOs2e+sjRIlFsqyKSIiQ1B2MVtjvZ9dZXUZBow67m1Gl7QsaWftNjayNQSrtuN9dPpzKaE2hKCwRXXTztA1hZFlWxLGQwUuwC0q8HexczxWG9prD46AWM8Gmjcr4002xqMkaRsSbIBGEdAMYg+Cxy7wAgUTiSsngSxTCpG0pq0IkQ3gc8khzxgkaqCxSSZ2o4/racKtmfUNMfkabVCFSOmgnWJju1mrR02J82SeRVvFjnm5ISFeDEqKbDlGa8QucCdKzbgXAMroQ99KvAAMBGWMsYUB5G4jyCD4611vBz5usBvDhF5bJ4jlEmAdRQw7svKxlxlxVB8mzxlZHwtFolB5ra3GxiDQhFe5RGo4Li8o4GB4Mj9s53mBsGY3uwEyILjmolSJ1B2tsD+A0m/CtLh06g781mmfUxBUZDDpgjpCXNB4yjbSL8gIxs5WKMZvODFBHINk2QMDNVYFxPGDnAMm1EUC2+o+JSzWsSQ8jci8EYqFFLYJ+TujtuFEzmTYUUE3l4+5m43fk6rlRishA2LRvO6AceQHxHuHODk8/1cbDZsISLxEF0WBDUFY3Z4bjEWlrFg4x5QHoJGrqzZHbKQYRucDDpwXz9NG/0yRFDyiksAJFKtRVSxoRAISHWPdbZ2tlPisjvx7guO7ObIyJBFxg9/mWQRpRXUHfuJmhf3PqJDM3EU3bsEmzfqkEnbG7SiKjvl27jt9ARO1YjamyhKoIpYlNooTNU1NtB9QGaXTKw3O2mjkU7HWjXQZp9ShTa2q1Ksuxby/Ro5lSw0s8aIcY2fRpdUYWouBKgrthX2spIJGQyGFsmQKd+blbyDXJJvLOX+MVtp4ilDjY8sZjaieTgF8D/AHgscigBgWjWEc0eqSsowayQcH9WhHu/VRYNYf6W1Ej+TtRdzzTNKfuhFIUswNabc/Srd4saL4AysC5xhkQeX1KLh1jN9He1Rwtqjnb1TYdLqTi6Cb+qXROwAVPhswaz+inX6XXVxpapNrKstqpl8n4oAaJ+KJ+R8YCnI/jOmbymsgk8KwPj0jD0rGj/ACsc9e1/OVksYkUqY6UbcBo1hysZMRMMWBcWycoeCVXLC5I3HG4jIHXdbT6eV5FdJZgprJV3rwylTRxJSopRbty6FDgnbI5O4aZGIOM+2rUean3/AJVtt45Lm8UYrgAHCMC5WBcW6rAmbMWLI2BkMeKMeRIltpvixcldOqvMSXih49wjkJNRxsrl2V6J3lO4OIF2JRV4yxywCBgAUUBarnnzP+5SiCAreWn04YSboKQNudwhaxdzWRHdHAjeQdy4CyHlXW+d4s3aqO5hm2nkzHtlm6VkDBHBInUGigjjO7JZJJbyKOzkiErvLR9vkShdgbNOUZSjTMNu0RKC3MuoCCg7o/A/bi4IQNypBXjJyS5y83YkpQ2Iilne1Wa9JMpjs36RhiAiwGsScrkY3i2aRUA3ubY4BeGJsPoGaWRWj2HcsKk5I1nreX6ry/VpNV2va0iiRbwja3JBrdkDKY9jTwlbsChuNZycAIvCP7KSDkbCdNryRlTtLD8ZWDOawGnBBNsTjDocsdaxFLeGVYFt5naRrbqPUBeR6KVxYkiZDR+cmkA5ZY0XwAMoYSR4JmYGi5QfuJJE5oO2zG1oHCq+ol5BMimmSavMisU3gs5yLSzPyU0ajkqAooWMJGb8ONHG3k6aB8/QQFsl+EwubB+Cpzi/C9RHzEB8SjPKa+VTUo+Jpi66IrZWQOLB6AZTbukzJYQiR4jkc6v4BwMCaxhYyNSvnLHjKzaAbwR/3qsrHPSRQVsVioT4LuOMOaeQkbTOhu8MTbbwEqbxiWNkmuAMHB4gZ34wlZVIKoQtLE29aZtMrY0DLiRY8e05twEBduViC8jSziMjllGDxjSBF3PJ8UDErATLqHG+GMRE57AgKIxI9jy7BTNG17gsQdCoZNqbI1TaKzhhY3WaG2+cdiKA8gMS1HgrYJZhSk5Cx3ZJLTUrEupICisgXnNRq2R6A1SMo3yL7jTuDRxgpIxhIXFGRr5Y1BkBUg3BzIMkVlrf7RKQ8xTd7FbFtgCuqYF+LOQG2tnBViMZDGLzeTjt2IxSI8h4C14jRUG0vwS2T6onhQrNZHWKMMCTKmxyvq747detkHZvpGjOaEbOqbBPqA60LzSld3LeCGlrdx6FcjDIT9npNUYva00ayLuUlrwGsjddQuwyJsasIwgjgHADl3itt5yNxOu13QqSH2EeMBxcCbvBSs8egYkRY42pSEbY3kLGyT8qGtwsEbRXxKtov5yiV/IUDNxGNP8A2GqXdWNqQ4KxrqBGKkfVOeFijaRqEsZiNFGkHCo6Bbkk1SM3tTTyS8mOFIvG6VjjOBxh1Bulad8AkbERlNteKcs3gIw8DLyujIrCi/w2FiWH/HsvKiPULJWPrJ4eHi+IXyU1UbYHVvHnoRuGNAPKpPInDxzRvyM8dC6jk7s8+ggHjBHeNGv47eAUKwoPqJTnFUg3hQSJhJArCuRxbzWFOcWFsjgBNFYqqnDeAoANZLGW8bpPIiEpFtS4VztLWGBcMFYE4sKCuGQnjDMsQt5vivkQtHNqLMkcYAJMenNbsTTRqoJMSKwJKE+AlNzIhkI2rQsBVCWSpHBEjBELGGdXGFSpwlQLMtVmzb5Z1dTcQO7N4RiMoD3nfuNh7DZCxyfTl23LwEoPSD3Dc2447GjkpcCmFXzOEBGzFYqbD6l38ojTEnD0DkZEO49GdFUClV0XeCSTZ3E+YoLAYyrGeSmw0A4MgrHAD22o1IdSBkcxQEDrCHJ9rggkH0kx9r1aaFZASZUjEftWBm8RwuilxO4ER3E9FYjJHlVRuJvohAYXqZY2Sl+0AvIdCzi8QSaU0Zo1cdyMjnI5SgoGtQl4ykZ+DXBxsI6A0cinSUbJZYXjOGrysRNxyGJY1BM8SyJeMtHqqFjjbIRby6ppOBeX8sHE1ciChJKzmz84kAWZteAdsSahQ37sk0srUQkcQuR9S7CheR7TZZQTzgdE8HWysKxFeZqAEWmwGSX3yJK7nbEDsFM4jc5Gka84P9S7vxTYijbyVo1iufGA5WUcrBg6jNRo0n+qT4So5iWCRB755Wje002rliY3HqonN4GU+CCRhBIx9MPKpJLHwyakHhgQRwAD5wHN3NYehFDFIYXgQDwVAx7StoQ2Sdt3m3EFHGhDYEJasEQT6dgo5VijvogCs8m8U4TdUW3CjGjI+EqhzeNm4gkYHzknkso8y6+OJ81Ov1LmkRHcljFGa3ARsynE0ylbH7cC7jsU1I1I5JAoLhlcvSoqiwvI8DlyCAQeJNrmmiCD2hWFZLD3TYjUonvMXFg7VbGko2rMWNlVLGgFojHjps2BF4WUjGdrvEe1BxtUFJouS27CxJsmPuG81DLdL104u8RdzBclQLRGQC3AJ0ocFjLvRdpiiaU0pgjjFssgVdywsZGLP3FoHCyXeSOFKhtSUNbfTFIyeGJY2c2NW70bE7V+pPNZLEgTgFkRdjoxcVrJifZ6HlZxR+4j855Val4hO6PUtA9qRHqF3RkEeY5GVrwbNSLySMqaNfnBxnPjOR0BrIdU6cYEhm+iSCSPypo5HOpADKysCAyQt7C2jbccPZiFmTWsRSEk+fvn1EurJAaVYxtiWIkbmExYduIRPv2FwVYqUiNbmE0arjuXNlUYqWyOATV25NQsS9uGKJY07sqK+oO95NWqDZDp6cbjqSqtQikUH3dxgfauqlGLqJWNAaqVeDFqi3DRLuX37CPC4Lvm/wCwwMMGCul9A1mseFWHL6OMC1mgkgW2M8v9Omn1aAjIviRBqUa2AmsDRyDJIuOApX6F1H4ZHDCwCMjBBN9DzgocA7rysUV0IxioNYAcINcPYGLZywPBPGByMZ2AFEUazdQoGrC5xhPO0kqikntAcg15yTXQIDcvxN6uJg2oIaUQ+UxdMXQNmm05UMuRRwoASKVKijQecKnhmclGJxdrqNzQD6EjjAWhZyV2VLB3VwPPAQE8mSuAzrd5368byxNhwBeTbbFbljY5W88G4/fglYjbgkjV6Em2zhS32qsP5M0ypwH2FQRi1+dyRrk4Td7OgU1eRwWm4lGSjjszG2VSxoQ6YFbKRbFK4JI24k7lChGHmITDEBGFDFI0oRlJEtptUwNLE+5iWnK37fTppFS7Y2TWGViu30dj2X1MJCb87R2b+g85qZ7AQQa0x8H9QqISZHLsSfkxxs5oSaSSMWfsQch1rxihNrHl8nFYqbEROo4ySJozTAtG1hNQkw2zS6dk9y1lZXSusWqkj8fqo2+sajTYurhAoHUxL7sn1TOcJLefsh86WYv7EiMcJtwsusJIjkMT7ghknfuZM6K5bJu6QHfpp98iGISzqo7UWl09+93okyTzahpBgOROVUsGcsbMUmxt2O+9i2RSqIyhBKmxZJyHSMRbjtQZuP4ezlADlHU+BMnjGUc1HLwSd5I3BZRgN4fQyhhWS6CNjYlefSi2jmVqEkujikO5X0DR8qjaqI0Br9QhG+X4ij+U1MTfSurVTRXVRMazvpXCOHF5VcBDJvIIds39Lwg+c4y8v8Z54NV4asAyuMHjGysQ4OLttTDECWf4rpzag/FtQ5qOXvytvZYYdpbHRCBiwkPtUN2zYiDtHSrAR7isYU8Io8ZKHIpo0DqKnBL8xx0KP+1d0FpirgP9gbwsuKwdt2MyrVho/JFgbsLE+4rIOTlbqOBwWtmC8EdkltpZ44/bkRXdeChQGxEa8dhzul5c4YSE352T294jhUgX2jJksJjpjLtY7kSNn8dwhdmU4TJB3IhkSIx96yCJiEXdGC5OskIroos0NMgQDG3FPaNPsa2n1G0bEvNPEHBJeOmIBQj0wRK45bg+gdD3e113tW3NxqukCszjbOWaQ7t4jC3qNT3fB+SM0coje2n1Cdsqp+yv0fDq7ZrWuFTnepwg5DqZIfAeCbnG0rjwUIzblZXW8LjC5yz/AAc0ka+2K8V2XxHHu9zfrAsZjTC7EUYo45YbKw9yTak86ovZiiiVV7kqyMp70ksrytbGdimzLwYovEhZ/GRuY23COFtQd+RRpCaDMqtyViDb2fVxjjEnRTefrVvKDDdGCVN5+oTyEYnkRuWFsVUnNrLyokIHuuxxZy+iOGx4lkXa0kLIPY3kkDUNVMe2+CEE8vFFu5bTxMDR0bbbA0rj24dNLu2hl1MKjP1+ph4yP41MwrB8YcD3J8XSPjG+MRJ9X/LaV6AHxXSnjP8AlNIM/wCR0xz9fpz4fXaUrtJ1+lrD8R0mf8po8HxXSec/5vTjJPi4Ublf4zqCtodVrpk3CSKc0sqaMqedPAvgQ6VFJ2bRHKQISNxfCnea8/TLycQLwuN3CpVVE0aUykiP3nXe72q5PvLzKq0sAH1t7d2HHZAvcxmFcma/BkFUL3Gymy+XKgZHs22zuTYDsCoVSrILJck3hiBRSGst28sCwYkVzREhitcQ7lvCxVjmolciidQCAC0vdoCCEKlZKhRaDdtQm7XCnwTEJsxXK+LwyqYqzcarBzkcZLUdQ5vbghtN2JGzmlhiES3kqlgwCWj1k+qK+1Sb6aeLi8REQWZI0lU060fRFEzLYPqae4661m3KzTRPRdQXkksalzW0/LBy/kbT69Noe6m9tTpzC1etJWj8PKz+cDEZvzdiysv0jWP+TqgfJnXO9hlOFz/ERdvnemkNby0hboMaJl8pMrIIlmlEC9pIYwo7khbnuyyStI25hChh35sNX0cIANujg7nOauLteLzT6RpeT3VUbEaZimHUKnEaysG3Y8hZrN5eQhybUaoHiQqjn9vleDHOtbWkm3nhJ3XzJyLQEstqkt+1ugObsvJYkPuM43U8bxxqouMSY6l1GzYAOWldDWbQVtu2WHcSMAm3miRhWRwxNFQjgjQnBp0J3ZJo47N/pYn/AHAkOnRztk0CMCc/40VZX4Va4/w5VUHF+HpiaFYyRIdFs5B0gjivI9MCMGnjBBMWmGyklh7RGyJDQswqxKlzDEpBghURA5FFAGLFoBe5XtWVkeISMWShGKUzquMBJV6uYpeJISeNMCEAaKPusSFIAoBVPAjJa8dmBx7ZbEdKN59jGgYjQxQxUhXKSHYJEKNRZU2Yhj85I7Pm0+cRZNu4ScncU05YXgRU8HT2bNAijPNsoJJKWQXkAt81G8KNkrkQjdFPGQA80olktnChqXI0LtQdNngDIGRPqlkklFnEhkK0y0DtREI4wHihqZHQcE9Yu4q2FIlUFeIwWaVrPojeRUNE+kY8qGKh0hiLmsGkjHBn0uzDpkjjJPY2lWjl0hcEl12mvs0AvlFUKFEwAc0PTptaqJsfUz95uPvIIu6+3NRD2Wr7UDK9aKEG911UqsWF9IgC1nW6kTMAg/8AiR5CgYl3Zx9bs5drIyNbOCKXslMddp6aXVdv2nUEyUWjK7qjk1LLUaSFUUM8jvIbbHVVAIxplMQTAjEWElZPF3iXihinvjhjdvamlbfzKoEVYjshtVdZcRiDtfwuAHoCGGWMqxRVF27c7QW1LLf/AFo2ohNYndKe9FYDlBQyig9gRqJfc1VgahZVVPI9h8OCBeMA4AyOIljcibk9va3KAYu7urBE6NZCE02MzO249sseZdOCpGRBtm1XT22VQE7slQFNuRKqMachSMlEYBbPK52mBIwREKFR4WXiOUtCwZJJlDjCUf3Yu/exyTTGZSHGhMT3gTuCsf2rQT3EAamSKA78+H6szOQHHOOlcYqFsKIeAQ4u40PIxY0Q7sdd8hwytJ7AyFfLHukBQWjbgPtjD5LGfqyILQILpF57m9tqM7KhbGBHnAL8ITG3K60jJtQ0mQx78OKhbwImus/TSKN2EknlEiiUNJsSdB20QRA25jQbl7skvtVEEAtt4Km5mMQrHndl2nqkjsNo3vE1Y0zN5v0JPtTb6FUk1iaCQi8eIoaM6xBRsCk5WaNwrgllN2KG0K0oDLtYyLGwwyRx22SNuN/aDUSbdv8ACq7IbVnZzbfZqMRYoEF6yJAA64PQYeyod2cubPRELc4zXwNKixL35IGjmlJnl7cfOSwyBBK+DNIyh+WJLBhqWDOdqxAcyd/bxGgeVqzvLpRsSOVWFxHWyg8DXzDG1TAAv3oG8rFp5Pp/SrfESFUFSimJ6QzBLBl1CCL2wMtm4JVHtM7tuK5pyDa4YWBNRFqppSTGdnw19SwPfcWMLbFyGVTwd34wceRTYsW1iceFmfcAGHJQlvcZPYCXsMlYlVwUUNYt8Em19qmIPyQlY6gkHCxU8pflX2qhLJ7huwEkcuEbIkVV2qTiueQzRXIGXZ3JAQQ7SEYiLEu3LZiQBplslooKNZ31WTtk+ax2RGvFTcxOSNLZzYRGCxXfbDSI0dh0VkUsAm/zTXQCp4xAPI1WjGozT6ePTJ7SS5vDIy+0mwMUi+VeNTuAIazjnethuKKQ0rW8s5cVkLsre2pHDHArFbwB2ADNGi0ca2ORoiinRVclckkZz7sRihsbGlO53AViB0IXjbp4z2/awCjdkTOW5lX3mkUFQsjAHiPUvZK4iF2oQxIFOMA3mbVSK1ZJO8n1X6H1RKAKzFjZ9Nxdn0aBA0gt3fdmrTeFyWPYchI2DbKVLHarVkerdRQhJlT3UUezrJVY8Fj6Igpb3FAXpDoOMZaNfyo+zBxNYpUB59QZeg9DOzeUg3xl+gydiYgV0sHebnUT91qEMaovdkeRpG3MZnZdp6A1kTO31TaiNTUJYk2VBY0GYadNi6cfqE7Z1T1+0kcDP52wL5UxuwUaoIklZHqEQY+pDmxFrCuJ3GUlymnkw6AkWj6WZPNEZDAzpedkRrcivCMUyMtrunHJil3YX447xvH2vdrwc7x3bR3VIox8DFEncJLrfIkhG04IJSbAChe26QKqlc3KnGX3GrCMKA5Ivu4D7htKKoNAq27nbeFFPtKxhBw17MjRUFgop8leeALOUR5Zih3Yuod8C3yxV7LCJCfe9hATgZZaYFZHmDBxzwWCEkF33jI5LHLOZTx3bUFVsknGkN0pa6OM7XYEgY8iVcZgRQ5qwGNEY0bAXhUgXkKH6ske2wLt+p5dppWLzNlVkQF0XZ5V4jUpGbhO9TuXb4V4e77h3BuphA95IhRqKxMRwMlkZhtOAZHp4yKL6fYQcEgQFVTU80SwIrGmRLAEzAECOVozYRDI2JAiJuxZbGamdaKqTgCbL9CVYvUbKFeqSJFjsZXSCUxtYGvjPJl1DTtSyl95D30RS7BRFpAbORPsj90+qLYzE+qN9rXh1kVbg7bjf+JRpvbNTJESFiQM5CjUEadOwmiSNY2klnmMrX1GMkRiXYAkXLPIz+ekMXYUYIdh7eCVNOnbybUmR7zUJsahgy7wZp4RKSCODk2qff7RppX92JBOn0w98f8AYZEHkzKBm8/SAGPJiWjeGIlg2MVU2WQMbXusnDsElW8/6jzDsPKtIE4xW3D2qb6SRsWsMe0u5pxYEse0tTIsZLBm8txKWK+2NX2e8xiuWJiHKyU+F6HKnjALwK4Y7hVZ48qtDGdEHu7pr2DvEktBCyfUQYX3YLu8PuGVfkUzEGKHtnLC+a2gkpsB3L2u4wcSTJIp22WakjQxoTkU6Tk1YrdgdD7V4YbsKFfIQEYY7NLHGy/UGprAIANrJbYr1zjAu1jaqC8a5H4lYKfZZqsVQ6b2YSbaWOG1AfUKyr7YaVNzSyoq0WkLMWxNQ+4E6k3Ic/VELtENshppdz27slipJkKkAzkptyycBOIgiXeXlZjeWcVSxoRaaj70UIvG8sScc8EBvPoGLGzeEgJem1EYjPHQdQLNZPAYhzo9u43rNm/29Y2ZTauxY2ekQe7V9/avDqh2tuMfkX6L/iYlDsFOq06RICv8GBZrHYKNi5plGmi7zRIZ5KzXF1ITrJppI0DsiF8MoQbUjRpG2h0KMVOaWIIvekV2lcyZplSKQ7ppS7k5fT9vt8DBZNAxFG2s8Aq8DaZMOu59v66VxtRU7Y3z6jVlx+2kM03ODThRTCNGNLEGjOML8QAou18W75O38tLDEbwBX5Cx7TYdQw4iPFBW55U3jiRZAQ6hlxZnra0qMyZAHKU0bDnYXYEWhLA5FIDZKrZs6hJGO2OM7Gp1jCmxWBP7l1Qc94SfRIJKwlQQuds7dqyIGQgQlkG1yoYZfb5Ngran3+GgAkD5MpYUCFZMAIGRinNDUJRsl2YlIxYoEbTeJ2lbcjSNurAFJsNeN7hWFiM055wSklqIbmthdQcIKnO8xaz+oNja/JsMUD2JZIytKju1LkslgLivGqbWZh2jtScrxm+03HUBbtRksquOOiSuniSTv0A6FDRkVFRaElJsyBebLGEWxvI4jIaCRMWAxESJsKAY7hQCZpe621JS6DaYmUG2cqWO3og5yIbIwV1IUqC0wKsR6lBJoTGS6e66X108/avGNm8o4i7mC5CixMUwxM97p4F2blP8qMLE+f4P2Qw9NJB3X51M/dfgn9PHQkleQ2/QF3X3PJfAwEqbELpvuTTQCVyzSyNqZNqzSLp12L1MhKhTkSh3CmKNIZabUTfp3KRjVkoVYZBpWkG5levZBLErAEfqook2JDrFN96Wa03oXZjZRypxSzHgs44MeodDwNS0n0pLIUw6oqaaOeM4+7IIoYxUbbAawjfyqMQawN+G3Dxljby7JYOKxMmzGhWM2v4popFPCRkNYyN0ZjiFZRuWbTllpll7ZCFZLNAW/kgE8B6ai/8AZVA8lnWMHIHDpuySRUIXCOMaitYg7R24A4bg3Rze1KckB3Ar+KJkpfc57p3HuHZtyI0OZFOHIzfB7hKVGxtaL8igIxuolk20CGAKsFaT3FIiCSZFj3ctIoBURhS1EIzAhdpHB020WxoU0mLM6txIxR7KSuLA7PvrJ1C1XRJFCbc1dWOkgjCjaGKmwzMxsxRO5FGJGejI0pBWN9KyruYaaPDNGV3Z3XlNqxUcY+pRV3HUanu+NO5DcTS7zx6Aci1bIKAkkkBYEkmz6Yn7bhsnl7jeozKYQnTTqpiODTQKDep/ZbNNrFC7H1OqQrsSMqW98uwN7PkDtdo3/hxXaTZYk4BZoTVpohCIFABkZ3LsWOPA8YBeGJa3y6orv9meOkUbSuEXVSBR2I0rSx7mZyxJMT7GBzUTLK+4dI4b5czhOIb5vCScGQKsEe6VNcZZKZ12ndNJM8lLhUrwXRFUEbjVYAavAU2Zppu09meUSNuF5eRNNIlKVmc+5ElisCJ9QT7meMfUqK53Yjdy4iz9tdzDa3OBabG3cFdw20VVII9wR+5wZARWLDsJJEoMe5AoHOJMrEqqnct5qJECkHRzBkrEK3bVfhoQ/B2rGLINCyyh/IFZKz7rUg4koc0sjEghIlbZ7w4exinjC9raylQNwdiR7whPkklCM0/J2lvcSubAWrDvAJCOUNiOXcOC4F5Jw1hXBFBol4yKTYQuE0CYpIy/uZ49po9pVkCnYENpAVIIztqtgAgLRMJuy601Y5jC+22hi5JvotXzDE7m0ZWBpliY5NAYjnbarwwMFswsu0AT6plYqBqnHBk1LyCjmlh7l3e0FRLIsJNPIz+c00oisljZJ9ZaVI66ou5guPpSrhRJpQqblyBlUndKwZyV9MzxlRtRCx4eAhSY9UECqVu+l/wgGEEfyuolQoqLmijCKdQ/unksyuD7FwcYZmlUGaSUyGzittN5PqDM1sOcK/o4bzTqFBmk1aHiRuoBY0Nqw/Uzs5swCPdcj7bO0ZGi6Ve5IzSaiTCy6YUvvf3lZVjU7Sxbk9FwaZNguGPuSbTNAqVTaZaNQ6Nn5LQvENsEGo2+yTU6p432q0ryeZYzGAcLxqg26Wdnu7SbDp1YEE63YwQlkQb2q+WQgjDHvFBG2L7pAe8MUVeRFgSpWRl8lmblPiQnYcaGeaJuNO+5C8scyN4u/HkYcSTucr/rC6p9TGzWba8GoyM1Bbio5PKvFfNSz+7ajbkALsSy3gcjBOaopKymwjXZzUKRhDqmDHcFrWGUOKaSUCTGVfOS3d5Oq7Qyxta7ckcXS+yQW+/27RFGwYMQsaNkjxv7QrIgCYRErbw8AY7iYVc+2eRWACxwoyDDDGWIG3mgqPGuLC5kG5tSA21ZYVdQxbUdt9uTahnJrQ0XIOpWI2ekend/EWmUAsYkscGZFBCs5Y2egnURbOkOzeN82zd7PRNMzLtPQGsEzXZfUs67c7TecEMYh3H06WJXJ3SqquQuiHbhs6nUGJBbuWYsf4bQbN/u+IlKH8tFGZHCrq5RxChK6eHb0UEmgse3l3kLnqsbNZXNHGOZnttVNbaibedq3fXT6dpia7giFJ56bYu1fSGJdMnelZn1D2TKsSbY4wkZ3SjUCSQCSUrvOyEQGFi/QGsGpcJtwMQbEaSztwuoEf7aChIDNr5wqhI92QSgSAyFVBD5qHDEYAT4WZl8DVOjBshlWXktOysO8ZRIvEsO5wWL7qGIlHjeNhbO0BOHG8E2pZktSkqvFawwoq7o17UgKhokRgwCgDNWiOwCxMCADuF0bvjG2qMB3LaiO6LqfIxV3C2V2NnH2NwzuU3KTKZU2pGyxCkUBrJd6G0YtXy9BuIKC530GSlZFxodoPRHZfHC+xg5VSwWYOaYU37eFxp2obEkUsGUoQTCqSmy8oiyaYFRZlAa0mcs2LIyjgalnYbtRKUAGDUoU2s5iDDakcEg3BGRHNNyCBI0qmx+rfJdU7isY3zgBPiKPbFWdhV9zjTROtpGAie36STmomAUqt9Y63C9WyFht9UDBHDHUyiRhXoQ0cR1bnNZGqrY9CJZwQR2UEujKUVsIlnVzCWQkdO22Efwl/y8Q/TQlzCAv7jO5dixzRv233nXapNQwK9Yp3jBCxoZGCjVOABCjkRR9sZp4DM20EUaxI7G5hqVEZToBkend/DxMnnRaVVHfll1Y1cgR5AFYpGXEYrCxY2b9AQbN3QE1WJFFJEGzc0w2RvOsY2Q3l5eM5Y2YdQ8RtbjlXhWeFjjIQgkyTUtJVjUyORiam17cv6QryiNMnBieP8ApnkEQvE1I4OOWJ4CrV45dpKxUV2vA9ORkkLHlDS8kyogNxwRlxLjxMkgkUakFyMQcYdpwR0bwAnLIxwwva5AXcX14U7FkXuD91Y6UKioGvAxQ5IDd4dmzFNHkzoDxvI8XkRFcFlvbgjDMRjxlGrFU3bJKUPMYQkMqhVbcGiEnjZsUbXlsm4pSh4kmP4eRSh3K203kku/LzTop9xlkMhs9FlZBSxUWFs6hlBfV03sWdK5hEZJ3F4SlZBMCVQzrIbqHSny67apZHVAS2o1W7hMAvItGzi8m0zxeYBGb3tV8erTMoBuVgXJX0A5Cpc1k4ZWo9dPCHBZv0p3Uo89syalYv22n1TzHnpGAWogBAFGuiWOQgfbbT/gejg7z8yudTNSzML2DI9JJIhkEjj6V9MQ/TwmUwrtUzMzFjZwEjwqADc7uX6wAFqxE7ENpLp0nCu+u1fdbtpp9OLC5MBCxRcNV6lBODRLGoklKmcb2m1G8bFgiR1YtXogg710eDkE6rxIYN4LRIu5gpB7bcRagSP+6NWkTbccqtsYqRbcyRuLNI3BUNyMil2p7onD8hkkVdqujKvujllEZV9Kt8MVWjSlVpGUyBiDMm33qkiRKMRkktwAV9ucMCMY7aGSzGLy0rSjaqgJ9L2PqjcUMMZPIeh4BMi5I+83iR2LzaavJIinnAMUSRm8jG5rYRruLtpviqyy9k6xAjUA7DgITtBMUaglcA2kgbAxvBEu7lJ3ll2NMhVuscZdqGoqM7UyPbu90m3isgCEHcse96XsRds10RGbxBpKtiG2sQrxhvMkywr7pZ3lNm+kRF4fcoKyj9ra2pWNVG31DN8XZ2+uGOUDuI7F2s9yPsbeuhemrC1EsuokSN+5k0plct6AaxPiEiJWSSFzZ+xHoXzi9oRDHrca/wABm/8AiwCIaRxpR3WcrPKSK5rDMyx9oejfF2duaaHvPRnlOplCrPqohB2F6IgiG99TP3m3ehGo5otdIxEY1+q3MYY1gaBvfJLttRkcDyKWXEhdxa4po5PIrm1zQwoib5JVJcmXVatJowi9Eng7G0w6aSb6GiVVO6NC7BRLG0LlDii8MJhQsqNFLxJJppIzRTQysu7I4lY02lkjRtpcPENyFjK1Lvlh9uaaZzd33VtGjUCwkpZjmrVpIrUqJIQXj1CJuORN3iHDwvKSxdWkSs2k1UiK4KZEuz2E6ly2xCSCS00i+cSFphcoYXTEgHh3LnEsYEYi8lsHEkKGxpwfqJRwCQJGClcTaY2LR7b53KjWvfBPvWcKtZG6OtZBpYItQc1EaSc5Lpw1FYn2grJ3l21kE6+G5Lb8jDBqKqInLGaIPbpsa6xkKmmjPZjssrtbnokbP9NZtj7YIico1iSckbQqljQTSuTzTDhQVKmmJRwM1Wp7VgO5c23UGsTUugoRPJISRKGDkN6owCwDalY1rb6k1GyPYSfQIZAm/GWSNAwkmaTyFJwoR6HlVkCjaThHoYRdsEfNRdxrF0MYFNPD2nK9Nx/wOzqZizTS9xujwpDCG6I21gcnmEz7hlHBkv8A8eLtBB2It5wf6RRGN7s5Y2TE4XeciYIwbNVqFnIIxD+jg3GIf/YZpiCb6UyjpDqniQopN5DoTIm/INMsisTpNOpuaRmOpcyNPOJvGKIP0x6Xmk1QhBDTzd1y2A1hJJs5ooO61DUwMy+w6dI+Zf1+1O2mliTtl5JkiVv2xChj35FqpIzah49RyJVlchH2GA2JJ3k4yKTtxc6VYg5dJFdFJSDfIpxU7a024RIVRXPgsilcT2r7CXZgZNS77htWVDbmV59UajWk4VZNorKDgBXQriVeRJbczayZZ9i6xfB6RB0QHJy49mCNmUsHjUICMVgIwSF7rhsmcNSgGjxbLQxQWShsCpTPFvFFoHU0Yo3js5GuxuG3kgZJAX8QxyRPzNqCGxXSakx1V1CHbIB2s/TMec/SP5zTwsFz9CL5MERO0R6YId5lEZQ1GAV3Ac2rEblBx6A4l1yeFllMhs+orLBzhYk2cEY7e/06SJHBtlUPWawRADZ6NM4jkDHUyiV7HWHTM43ZqZGRNuGRiNpzQwrsLkqsykFIYtlsekYs4kaIAuayMRyFR8pWg7FH1KaN4utjYW+om7rlv8Ff9qPb0UVySxPWLTNJGXAOarVJMiqukjAuZ4lOplLNPL3XvpAxhPdySRpGLNjaiRoxGegBPjRQBmMjySHUyljK4QdRk2paVQDkKqzANq4YoiO2mokQFV0kBmfmaT9Q2xZ5t/tXpeIpdgodGjbay1fLiPuUkgSGT2TTd1y2Rozml0hj09q5eLTRGOFjfRXIyXsvFa3kW3cNzRxlwEX9mK5JgmqUMsSSRuDmoJ4GQSmEEkT8ESDUJ5EsauuKwZAXWU0EALHjNwV6wyts2zPNv3RqmlAAediw5QwhmYntNlMhx3DLzkUlHP1SXkjrKOXaloNvVaKuy+AW/AgJAwqVNFAwb2FYkk7RaBw1YkRJwNuTaYv2VIY6rigmpjbjDqFjPK6lHs4ffIaE543gCfyU3J7TFuG12hZDSPu3cpIyteGdv6e9JRyORkNhpZFQMuIjyXUWmFc9wF9qttL5NOqKam1TycZfriid+VmnMgroYXUWfQgs1k+nWIAqR6RkEC9oMzVfDRRiMERaV5MXRkSbGDpCO22pnV1CL002rMXGPrvbSs99QaxNbKi0HcsbP+Fj0D5Mjl2JMEXdcLk+wOVQeedT2OO1gYgV0RS7BRq3CKIFf9mIJml+HNOhbOztJLSSFz6oHdJAU1c28CFFqFbxmLmykaMhY9WjZPOXkMTSuEWdgijTQicRkKJZBI5YI8YQqcMA7PcxWKmw7s7bm66fTGX3GXVKo7cN4s4EZTL6QwdxS2AE+FUsaGnhDFkZYZYmoaiZ3an00E17lOojUhG1Ejx0UbUyOuzE0rlbMLCNiGikd63UdxDSrHEgDO6ulZNONOnAgm1I3SoqaZAuWyLUsYCKAqAFic8PtMibhyU/IlTY1ZRq8VS3gK/jJYyq3jOz+Y492KLNYWZVCq8fdN5EjI9Cf4c0km9QdibTKOQyzs2+8ac7LBUjg91RHtJ6BXT3ZFqmv3PKEUgxRLwMKurkF9SQ3t76kWdkczWP0ybQMbSFSRgBkj2gQOfPYSIe5H3KSsZbfiyRqxGamTtLSlsv0xaR5FsOhQ0RziTPANuE3imjkurVlNDIdC0i3ksZjajmng7xOabTsW3NrgoA9MEDSnibVMFMZvIYWlNKY7TtZqJO3GLZyxs31vL/AJOv40t2k2Dpfo0gESmcwLvcu8khkcuYNY8S7RNMZD6VYqbEkhkYs2iijjiMskEYdixnmMr36bySd5AA2AEmhY0cW1ZHSCIxYmnMkRkESGRtoYbTXS/Rp51iu4IFYGWXUakymhnYHZ7nVJoxCUOQtID7I3ZH3LqRIjCTFd5qdpHjCmSOTUSSG2fWRPFtOl1DoCch7E5DKNMt0XVYOQj943iLM5DO6gElpKWwII4lUski6ggbE1KyNWdlD5rac20LxXB8dp7oMtkRiaHbyIody8+EoIzRv70BZef0ikig2wmlYq14mp2iseVycV5IsL+KSVWBGSzog2iFA1O00Vcpp4w7bn10SoorAax9QrA0DWPKz+YZ2THlqirOqkkxBZnOadCLLRpR/ckEiLeRNIq2Zi4UbYlAXbIrfhZXSN7KTxuSRryN/qGRTx7AG1EokctkYaMiTJ5u7VdRkOtCoFbUTd1i2IpdqDxvDzizOooM5bz1RC7bVDPpeC7mRixETkbs2y6b3ZLrA6HCxPn+XRbNZFpY41o6+BYyGX70fNSHtxd4kkmz0eNk+rEbabzl2oatttQrKe1GIxpljZiJNRo3gALerTwmaQINXJ3pBDHqHVF7KDoBeT6cw1fRIXcErmiiWJDqJGlYXO9kmzZwHokcRiLHIXCNZY7mJBUjNPAtd2WeczHqkEjIXGKCxoMjIaYHTdnO2+kjEgg0TMvdcaiFwDksjFsiSWUEL0UnNFpjvt5ZlRrd9SjRlwJY5Y6RtYqqGM+uZidi6jegjdJe1IQizKV4De+xPu30LlI7bb0TjESyHDSlDjakgcJOfDFy6BhJF7t2TKgG7IpFZAuIzFaLGNxz2VUkiVyCLUh+DbISxeaZrIs4MhjYAviSgkEkxnjNcDfolhCKDgyBA7UZpWU7MXWk/XCA6XG3dJsSJK4GDuCMq0RaqZbZfepe8CWLGrjK4JCvhnLGz6ryOJ5ASr6kmPZ8hIJY1EommMvn0DEiWOESrO7ubYwSABiZQIayWd5BTfKjEPZJb+ORqN4mvjZbbWakTNx/FO5bjqDks7zVvwZpV2AznTjcxld3LsWN1hdj5ByaVHrbgyLTvKrMuJ/8XT7sj/Yi7npvqk8iKVXTQmeTbk0gmbJJDI1n16ZkVwXmXTyxdwz6gzHI4mlbassLRMVaBYCh3iRlBUYjlGDCedp23NkMSwqH1Oo1skhKhCNw3apoy/7el1LQE1M8TIAozSaMMA7y61yuxI9PPqB79kOnQoiQRcyS68tLtVRp3I4lJZsbQyUCqQyaZ1d310KMMEkTgkRFbvEWJyTkjFFAeN99kUrL7XmKyVnb7dUCxe1nQOKMEYDFsedCtj9UJW94mjLBsDCRvbOst2k/C0RK48ZEWSpDLqOfYHNVi6pwKKyiRBk+n3+5J4FjqqyzkKB3AMyorUmDAsioHGmO5AXCGioSJ79vtF3vSMEZJqHLUbMyLs+ISjxl9I42kNKRRr0xRb7xZmguPCb9cMDSAnGnkRTEekULSWQVKmiibmAzsRw8K8CGes11lwTEqhA2FVlUq0wpiP8ACB/BxQvK21CKxVLGhqjs2wrqD2kEI9YJGaOHvScsf1M5Jml7rk5JOZFClavnVdix2epUr5AvNhhQQJO4/wCtMidFvfV4IXIsAEmgylTRBo3k0zTNubS6COSHuNqtR3TtVVJOQaCUruXUo6sd+QCMuBJLEjybYWUqSpAs0NPAmmG+WaZpWtgLNZqdM2nIDZBA8xIUKSazT6NYQHdmnnJWOHRLClmb4l202tNrJJuMTVBYQMfWsYtmDVyisXWyBi2D4saxGaaHmbUCXk6aaMIwbTaxjHvYSGWpUiojaVtiVZEMdKsoN7xFK29leebteIZklUqJY27fs7jopTIxbUZ0WhsqGAU8WojlIUyBJVNNA4OdtYjUs7IqhV6JEz+Mj1LEhRviDCFotOi85NpFY8aaDtkllhdzQGherKaO/ISKJcWYBCRFPa5LqkiJuHXoWolDtJXWrtkxhLEt47lvPRHZDa+jTRB5Qrzt2JPYzFjZ9WnhMz7cctpTSMxY2ekM7RAgbtz7mJFEnR6kuCGl18YOPKXbcdNrE27Xl10aqQjtuN9AMGnci8Za+/eFVjDD10R/gCsV5XNGgRWmbTC2MzxQicO7+na1X1P7GnCCY9mMRD0UR5wGjeTTtM25tIgjUzukbFGbK66GNHlAfWyKkNBXKNuE0rTNubIYmlcIuqnCJ2I9FHC5PcTasnGqhm1ARoPijqZKDwuqBzisVNiyxzQ6MRU7y6I6liwEaQSVLLEyDfjMWPKIXNA6aaFguaXRGJd2bFBGS6mPTWZNT8RlnFIel+nTFDaO6lTR6F4ezQj16rGoZZkmoxxuqMThcI3Mwik9wjiC/W5VGIyDWFRtkn/dooe3BlR7bAV35xIfftZbVTX61fzDMWYkagHuEnBiTMnVfONrdtLGmu/DpOHUiNpRH9bap3JKRQNt9wRE4x5EFganUTHjCcU5pp+2Deqn7j7sk1G9duaeFZPLCmIDxOn1RwvJ9LwvH9UcLycrBB3LtKglIOolVyNpJPqAvEj7bju6iVVIMbyM5tuv6UiPfk6L22Gad0EfJPPHW+sZF8q/A26tlaQlftNLoBIm9tXpjA1fYQld43amSMxEf4CqljtGrIULAmoPaQQjqFJ8dBqHERi6aSESyc9ze7ahmYuxY9YJBG4Y6zVDUMGHSCEzOEDsjG8eRnYsY5DGwYO5kYscVipsNIzecghMzhBqdK2nfYSRpIqF4DgJxdVIooFyfMfd1QEeMpU1006Lpk70vw/dIpmeGMaUkjVaZHkttSNrlBFA8t7dFpJJHsKFYXj6iDSLR1Xxd3sRFiTZ0mqjhRg7tZ6xSoiMrY1XxptKsiMWIKHBPHqQe80bCjhRh5Rd7Bcmi7TlMSRozax/EJB9Q+IxOSzQOtUEHfX9yXSuh4lRUUDI5WjNhV/UAbp4O2bWOolAwahYidrMWNlo2VQx00pB25NNFyrJpFajj6d7IHaa6OphWF9qrAxQuBAva34ATg0YZLSKFobbFRnu1HbHEmoSOTmfWPLmg+gsNWtxbmOaWLuvWGCIqVWQUx6BiPCNtYNks4cUsdtEta52FoYpzEKxZXU2pN9Nh9CKXNAQkSBHnhTT7XXU6kSih0g0qsoLaaGKGVgZpIRqcmltiFbUSSLtJB+QDncbCfltAVjEnyRmk1qJHsfW6kTtx/hmnRHkCvqo445CsfXRKEDTNphuZpndy7Fj10+peC9pNn0IhigCDUuOI06y6d4lDN6I0MMYRdW4FQp6IDGHBkkKlzsik7bhsbUEy9xVdiP1M2o7ZUOMddOIAVWr5nEQb9rLrFRDGTmmgVB3pp5mmcs2h1JhkBzVawxICh10hJGL8MmkF5pfhqwi3l1EOnT3an40x9sLOzm2o/IXzmklQQrt1LAuSMjlaNgw1GuecU3o85+5C2J8RYrslj1DSEFLidyHWBKC4WnDEhZt/LTRCVbQxODyBD2rwb39oXTyNdUcSV4zwmp7inI33IA0kcXJeKGMITirBIm1UVVbgRkCjuAtsk1kX0ZPrC1LGzljZzTatofGo1rTebyCUxteP8RXbSu1n0waoRrRi1RV9zyyCRywnjSMgLFpw4swaRm9xZUVu3mp0pSyItMHTcdCm5yAz9uc7Zpd7Zo4klj3ST6HYWI0yxm9+meFGPci1fbFZJI0jlz00MAkNt2IZBtEybGI+0s1X3d5f88+ndIxIcAJNDVHYqwLqP2kEI9UCxs1SHNJD3ZKM0v1S+lpGcU2LHpTpr6aSMFi7mRlUzNJBJGNzpC8gJXFRm8ejSaOOVN51M0MqGsGSQvEafF85qHjdrjAvIIF0sfdl1mqE9Vo44y295Y0lDTJGZ5x21h0KKoaQ6qDTrbaz4pSftSyvK1vmlh7jhcOj0zEwrKmxq+QHYYTeQpCyt3OkHZpu5mnWAwEscBrCzytZeJk+pJXQELptU+4KzapeNtsVCrTg28YUk7XiJ4H6RVayhgjYsBPHI1kaaWqOo08pO4w6XaQzTwcAounJTtuYBtpIq5UAbD7ZtXFEKxNVJqG2LMuxyv2UMrj2iKMLGNzayRTWd1TCXO44jshtYZ+2xYyPvctkGrESbTJqZHsH1aCdYzTGeGP3ZM+9if8uLEiiPPKnS13k0/vdpndy7Fjhkh7O31xL2oM1D2dvqHRVLHaH0jRBUafUGR92TayWZQrrIyggZBqHhvZ108JmcIuol7a9hNNAszbSwokYMkmkl5cLzRfRwiGxD8MklF5Dpxo33zyzR6lDkcDyKzDT/D5pl3DS/DUq3klg0q86r4zvUiNnZmtjIT108xjYNh+KRUWWV9zX9lpWVZAW1D/ALZD9YdY8eJ8RQA3FrIXJK1YwhR5MaVZOljAsvCAaO1lbaGMjUqESnksWCDe0iotvL8UQLSSaqWT6rxXK8i+qLuyPQOwvJoGjNHHhZACfkRxNIaWWF4jTI1HJPiAKEAm8v5oNZuPqcQ9gbflD5DxNHW7oP8AFAL4GpPaRYBOe1GIh6UjZvDIU85poTNIFzUSiyw6oQG51csMhHa66Cobnb4nqmYCM9NPEJXCnVQCF9oCk+M0Ig5MzgFztkg/SxK2acw2TNFAZtxXGkQxhRjOzm2ikbcMkp9OO9q9T3m4hhbUaYI0Pw+FBksscCe/UfGDW2B5Gc7m9V/IHyxl+uOZ4/oTXt/9i/FLvdH8QiHlNTGaZTqYVsP/AMjCwyb4iB7VfXTvhJY2cAvChHp0lb+Zd9gL8R+kbjjyu4Ab5GjmWNudZOr0F/ii7N5/xbRoATK0P7khld2LsWJVl84Ogz4eqpA0g+IBXiWQnNKhjhLZPNEIu0MJ0/Yr0jTS9vuZFGZG2hWRbkLsXYsYWVXBbUPHJIWjGXeJM6KVWCBpiQp4zRrHp4jPJNM88hZpoHhreil22jUacwNtLPAYQq5FppJCKjj02iFnW9ogs2j0TFg5kligG6TVfG2a1heR5Db9YoWk4EunePz6yjAXioW8PA6Cz9qq7jWSaWSNbOXlk+rSbe4N2s7fb9KOVxNe6ismnL+fsIiquC8jKzEr6Bmn0xmNDUaVofPzRkEBmbaNRpWh6j+OH8mBeTntRiESntRiMZLqHlUK2DoMg1bw/TPqnlNtBEZpAgmlFkgmzfr/AFEnb7eQxlV2jVShiI0wIxFjsSFO50hQSOFMqCNyoBrNHAJWt9S41FsskLxVuLFvPTSJC193T/DXnG4bGhqONvh3dYNLJLBAA0uq+OM3thkleVtz+n4Vwrbdex/TqJm9S+cm1EbQ7RoHRZQW1kqGA7m8/a6dwjgnWaqNo6X5ANYXJ9V9VFmsniETUOmj0YlG5tVo1Rdy/YaXUrFYbVaoS0F+dp52hfcJ9UZhX27ybwB/hY6aRACZWi/ckMjyOXYseo6RSRLGyt00sXbhLHUNzt9FGr9GnjHMjyuYo7KLuNYnwdu1vJmeNTEBO4TtjNNpmnJ2sKNHS6IaiM1qpBGv6dM1RmsCVJoxEUMEojBB004X2htJp46llUD+l3SAmSfU/G2Y1DJI8htxk76cxqI/THMyeHnZ/PyASMLsfkAYVI+dfr/SS7N/UKT4+Zo9Wsa7W1erV02oT9qBeEeof5QBeaj9tBCJT24xGOk0unaFVRYnYEj0aaEzShRqJVXwTZv0JqikJi6RaeNoGcohdgqqiCxmpSU/uvC21rw6pCRLkjbmJyCB522oRRrFJGLpJWo5NqRBGIomJJswwvM21JAysVb4eRbDNFpJ3VkOj00cPCaqbTRipdV8Xdhtidmc232AUnChHy9GFMoDawL2zeaTTGY1k+g2JuUij6gLyq+V+sft7Osc7xqVX5gOX8mCAzNQn0bRLfzNDChQs2vgRAGX5oBJoEFTR+7GIhc0G+Hyqu7CK/kR8/RoLMrRe9zK7tvYsesOskijMa9Z9K8KK7aZexAXyd/6fkfDtJuG4/EVSACBHnkdAjYsMjIXGAlfGab4e8id13e4CwXSuU7h1c6y0iaYsr0NPoX1G4vpvh8cK+7UfFIIBmo+MTS2ED/ks1+kDI4g138lIWdC4z4YikM2a9FaFZCflA1hkLec0WoER5n1advYhNn0hSc0ES7ST8RiVDx9qMoj1gXlH06ScQtZ1GqRk2J8uDWPCKE+paY23QfLikMb7slkMjFj95oXVJQWrad7SkFjX88BZrJx20WFdTE2nURnrfRRuNZqdM2nba2adGmkCnVS0emjaFXuaUqXJSBImVjJ1g0xJ3OdQ0KmYsxc7jBL2nD5I/cctgYgUKzSwRyk7/0FPYKLyqTTNK1le86iPPh2mCggsmngYvJP8bjXiPUa+ec+75EQBOanTRLDxpdCZzWar4b2k3qfkxTPEbWbUyTcv80Gsv0qLOQaSJI976qPsco8jP56yz9xVX5YxPh+5N2MKPp0xQON2uaIqNvq0MIlfloYZUO1hRr+eGdxiK/wDRxjmVoBvZp5JJWlYs0BgCN3PReFy3nIE/Tw2ZX3tkCI7hXlVVchekcTymkdGQ0YkZ2AV5hMvvnmMzljHo9+nM2KhY0JYXiba/w/QJKpklh0unntcbQEzmNVZYVCy9gtudoYYg+1KXaDL8Qk1SLcTszG3+UrVneY+fh2pRbD6qeGKDsxMfkj7VTRyHXrs2Pq9X3fsAcXXyBNmE2fm6WcwtePrxsKoxs/eUav5Wmh7rhcfQRbDtYUfkJo5XXcCpU0f8Nn9irp11JCKIVh0jy/TLA8RpsRGdtqujIxVuukiUkyPrproL1hVWcB9UkSSERafUvASUd2kazFAyftrqZlP7ceRRtJGQtMjZ75W50s0mk9jiR2HLywodqtpJNT/wBkraHS8Gb4nJL7UijOp0exYon0+lZZkhE0u0a7Q/pq6r8PlMfcFV6aPUOR4Lk/KH219RkGiaUbs1OlaHz9xCyK1yfJRSxrE+GOy3ksRjNH7MzMYxH8qGUxtuEnxMslAmz64q3iwfG34js7p2/4bAfqncsWNnQTBoWiX4i4CKhxWKmwzFjZ6RxtIwUexUxmLGz6tNF2qY6mURKYl02lk1BpJ0EblchmeFtyRbJnLTaXQyPUka6S6aSaIlbkPxLR6a1hm+Jzz8YcBzTa5oDxqfiDz+VkKmxNqHm+vBi/EyIe3hNn0QpvasGg06bY31un7EhXpo44pHqVwAxA+eqM119kM0+rRUKPq9SstBfQBeR6GSQWJIjGaP28sLxGm66Zgr2d8bDdmvlWSQlfWBf3w6DUyAUCSfP+G6shKhXA5HgsT6ooTEoA1UoYiNM084hJvJX05gUIBeXSkHTwVTmaQ6bzRbxCksBBx9PDG+6VdKZz+xpvhCLzJPqY9JQM3xogbYJZ5Jjb5pJEjlDPqpUkkLJ8yJ9jXi/FkCi9ROZnLH7JJWjvb9zF9WAMUXt/E2Uvx9uzM3n0dxsJv5EMxiuv8uJLEkqCxoanTPp22t6NImmZGM2niRQZ3lmZVJPWDTPOaR1KEqdHMsT22nTvO0ksepg09sdRM077jEhiO9Qmq1jBsbTItPq/1buu3TaacxAjUfE9auoNL8yCEzOEGr0h01Xg9YU5X25SMRBh9iMTVOooM5bz/wCFB0Zi3J9EERlasLqRux2LkschSJlYvkUzxG0h0Ms435D8OQe4ax3QbVj0cbx0sXwjgWx0WjHJ1+p1RKwzwSo37nw+WPsKB8V1KySey/mo5Q2JZ3lNv641s5DpNNEi974jpRA5A9KRO4JX5o+80ekikS2lUK5A+4H+Oj7sC+mn7Qe5ZSpclI4zI21SAP2I53De1eg6QQmVwufp+0NuRO5QKw0aISxl+KQQChqPi083CpyedDt02mMuamVNVphKHcqaBN/OHyUbacg+KKqAPrNWZ2LH0w6poVKj7lkQRhh8+PUSRilJvoP4Mf4kPuHgkRA7ZptSdOSQTZvpodKNTJsMgGnYxRSwnTpsL6ktF2hp9M07bVn+GyxEAJ8GmK20HweMcyJp44x7Zdfp0O1ddrtVEoIlnklNv0U0c0fxFYkKPq/iCyLtRjfzKPzb+QOoFmsmhaE038lXzB0HzHiCqG/yhJWm2xyuAGIGRRNKwVf0sgl7Rl03YIjhi0b6NO6UMmsQqX+HaeI+/TQQKN0QM0nGBY9Ou59T8bReIZtdPMfdFqHjYOuo1cuo+v0X6Ly/QPQM1OrjliVF+0HoLFvP3Y9A+ayMtbvRGm41ifD1K86iExNR/wDAAXUmMLixBf8Auji0h+ka7SRt7V+IpKfZExSQgHUzFiHi0+pkyL4c35dNJpRcuo+OH6YJZ5Jmt/SiM52rNp5ITT+gC87RGV98PkxxmRtodCjFT9rDKYjY+wZ2bz6IX2m8TWQkBm1c/dcn/wAAw/qNWSgdSjFTpZJkJEfcRTSacSou8QfDKbuSR6aCAWJ/iumh8aj41PLYRmZjbDpodJ33rNZ8PSOPeh6wTGFw41mtOpIvIomlYIk8DwNtfPh0AmkCl9LppVZUnTY3SFO44TNZpBpmAHyK+7VipsEkmz8ogjg/wN/OMrFNnQfIH+Vf/8QAMxEAAgEDAwEGBgICAwEBAQAAAAExEBEhAiBBMDJAUFFhgSJgcZGhsRJwA8Hh8PHRM6D/2gAIAQIBCT8A/wD4r3Zf3Wtqx/V/PjPArKjo5/rJ36fArNeIOkCx/Qtv++fjCt4ZNJx7DorisORGq79P7cearoTRXsOxmxZJGX6C/iM57g/it/Zjq7dDWK5qngURwL2RIsUwLuE/2msOqwzIrMY8CsqyT5GF/cSscEmn6nNIM6h0gwjL8/lt5fyQv+fA331QK9jT+IHgVlTCFbSQQjP+jCMaflxZXRcfMT666boh21akO7He4rUzq8vKnI809kR/XP46767vfjbCNKIdHR4NN3B2hfFVZM6uXskgX0/oHN/DXxFv9+HwzVVyYHcQr1Q88urpCkhC+fY+Q/T379PAs04Hd2HijvRXVXshTV42dlfNK67+YlgQsUgdhkEUjZ2n+Oh2V/aq/wDvpRVz5IgzemFX32yQo6Hac/0wvfy+QFdGEx3tyO9t3ae/sqN/t/QLv8quitBqxV0QqRxv7Wr9dCFHy87fOyo4FRxIsI00V2KsLdGnodrV+vki1/H/APr8vC57pa/qR01TgwZTFZCv6mD3YsDqsEI7Wrf9XSaunZ0nPyhPzDJHeZ43siiyhWtRHBLy90LfGnoe/wA4v5h9hCvnkgWB3JJRCHunVlkbuJ3xp/Zz87Ow77P++vhax4c5H8Q/cdnSSFueFnfGk538Zf1ovFle3Bp/i/kjyvfj6d4UdZeBvBD2vL2LBn19fQdxXEYRHG+XO+Ze+FH1Je1fL6tb5Kee+rC2yhmTCIo8+QrU5IW6FtVnSFk538fv5EXiM90eeqrd5WfA3gkgeBDuclrW97n0W+dWyCaTq38R3WdPiDt8irPd5FZ+BvPS5JYx3Fgh04o81hboIJW2Od8IVku6q158bgjoq1vlDkyvBeBWZA7HxCtRSO7p7b51fqj2zqjfAt/PzRz45nwCXseUQjJ9+B05FejOR2Wmq2QsbUckacb5eXt03OacR9flrjpLwReAe+xXfeGcUdmPBzamRCo8+VeKcUdqzxv4wvrvVrfrc7EKnGX4gvp4ouuupHR5z4+8UWKzRZHny2815MIhbXT6vfOre7kLPyI+5q/fdWOox38Tduoq+9eKL6UcDo6KsLfxvhHO7kjTsWRZVZ1Z8EfxWjwmH4JfNX3Z58HXcONjFZUWSd01l73geN06qMjZxH12sl1jgnwPT8VrX71Hj9vcj5CcVwtnHApPsK1ZfThUhVdYVMbfq9rPpSdWF8yLwJZ673PwJ9fkhV5pL3/V75eFvjTk53cHJ2dOPlhW6KzXnpKPEl3ySdr242S6QtsKquKkI5HjbLIRI7Id7bJ1Ze6FTmPGZ47j2ueirLx9ZfhzsOmGc7HVXdOZOTjpS9/0W+N880hfIav3t96jua8ZW2NsEV43QtvNOSFWaKk6v1ukfyfG6aK/h8c73bqz4Otq3wqL32cUe2Xv9qS6PNHSFhblcmnPe1jwtd/561vT6evh6z3zmjzVbEPDJ2OipxRRSaTz6Kq2wqLbLwvBY7tz3tWt+ejx4k7LrqjGPJqNQzUa8moyIRpMCGau5vLqoJ2xVVnajgnb2nHodrV+tkLd2dnJCxunwld5cdJ31fjY68Vd9yyudrxsXeXvXcV3FCFRjL0RgfTjdxSOjO6SFtlwj3FV36cvC3TtnwVr+NsLnqcdJdLt71Hf1nuyrnv62RRiMDpkQ+kqOq6ypLHsV3SXJI5q8Umi3Rp2z0efD5/ff4I8AdmR3p7Io7Xo4ooI3rrq5gzRD6Lo7Ej7jNM6hiis1ghVgVJpLjbPSl9OPkGH4a7Id11I3LYsCyOrxSRCwPu2aIe5nBO9k043RSaSO7dFhEs4M0lnuQqLNHkdFYhRXkn5F0/F50vfjoO6dFVWotvI7vnc+/rY79dnJgkwO5AiCSaKwz2GMyu7quSdz2ZfRZFY2y6TRE8E81kV6LFe09k7YqvDlfukViiumKyW9+FrHVnYh3FkZA8nNYohYJHjbBArskWSWZJoiR9dWY70xufVeaYMIYpFu5J25pB2dP72LZNOPAV3fnpPO1RvV9qvvjw/Cpk5ODJpJFRU4oxwK+xV4o6QIWxGmjHR7EPeqOiHtneh7nSFV5MEEbEZsW9SDLpCpArdDHgSt39Ye1zud293Oziivbe8+BLoYNVJYrDoySSTke5EUQ+ohU1GqmkwMYjUah7FXDoh7oGY2qrpFFmsKqoidiklzTL6C8GXTjYrbZ2OqtR4XcoW2avPRWy38bZ3/wDvcmcD35p96YIEPaqK+6KLZwMeKqnGxUWTSYNRp2q47GRWHVD2Oj2rZm9YpI6wYSIM0mip2n0lReCt3ajjusKkPY7urzx1Hsdznqu2zi/gKODLYvqhYIpDHFIo2TtzuYyB3pJJmipkiiFggXQQxXH996HiiHij26jO9Wq70dI3vJPCMvy2RtQsdF7tSS56y6j63FJq8d1d2+ppnvS6EdBXMIVxCzVdFVZAtkkUxsQr/QWCBxSR2Qx9CNiHTDqxDEMRhjwY3YH0fuTTgkY/fZIumhbo6D62i2hc9203RzVzSHR/FxsWO4e1HYnepFtUdZ9BYI7hxSODLZFFaq25oxmESZFamTAhbXVWIY8CETudFXCqqTWDD6OCDHQd6OmWMWKZ3YFtezk46EEeFdroxulV5pG1UdqKKQuih1VEK27Va25XpwcdJ36U0VHh0WBYGPO9VRIrEI0mRUuiBYphDosbEIWKMyLFHRZqrVijzR4rgRhiuh9HDMoe5CFYYrEjzsRgz0kT0n3d9yVrbnniiTTq81VyD6jzXO97lZ0imHvearYseAycGaMUDwOrpBmi3PJI6RsVHSSGOkDsZohVZhbXsgiqEcjoh2Yugx3oh9Vj3T0H4A9jvTja7oVHHVm2Nio734oiaPOxW2OyY8bHd7HR2fG5Z5EYvtex371AhTSVTkWxUVHV0kVXekEMyRRVcjvSB2pikkMgiqpGx4rkVF3RiM9bLFsW17lsWO5rc79RDtteaRTFXZDq7Id7bMnFVRWHV3VMitRbFdblbZBJz04RHcHfasECvVnG3JjbhHFJo9jHRjGSTR1ZBxTLHsY9qJoqLbgztknqu6FZ9XHXXRfXt6k9Sytt1302jfzR2rzSdr2Od63LD6HME7J6CneroVl05tf03w6I5HgwZdcUYqzSd0kCxuW9b0RSDFYo8EVWzIhCt0JpBpv01kd0K3SiizsW9dHBFWf5Ua0WZpe9VfQis7XmkbnbHWedqqqOxqztdZe17XV22Kws9xXVijHWNyGTs56ruOr2MWdzpnrPpzRiM7ooh3EO+9C6Odi3ozR0yaTU0a0/cRpHYV16bnes8dOd/FVvWxZFjVsdeDnc7Lcp5qpq6SOaT1Fbq8Cwc108TtggY8VxucHHQe1bHSdj2Iex1eehxsW3msbWQQLeznbNEMQ6Oi3qsbZ2xtVx2QrWkaYkJfc1tGlavUxTSahCa2vOx1W1xTkh7NGLTV7J3qNiwqq4sb1mqzR4ZAl/HjerbHl9OKxsV7cbeR4IW6SSfIea4RkVVRXVGOk1gz18UWBC6KMog524rxRUQprHR47irodhXQ89TjoOqFkR+BWaHkV6rHmanqYrGTU0xsyPPkKzNNvVGULas0mjHenBHQexWbqskkqqxueHsghbpFknbf02YHdbVFVTjpfTuEiEZsKxFHYdXRYI6r6DzTBNFc46S6UCo6vdxTFHSdr2qjHuVzDMow+q9lh2FcdNVr0wZpqsxHxavIwvJbcojzX+x3VHRZFdGlmB3VWcdB20yPFFdbnGyKTV4RFHdV4qtivRWfNXnYs9JZ56kdzkyOKLByOuaS6Y38bHsc0noOnI7ci7g8EbIot7F01RxvVUIezSavZmmw+4K4rKjRliVzA6Ky6Lt6GmzHZiuzRYySIwZW52tsjoOKq+52tVnFIIZzR2M15rO6eB00+9ONivtbf17i89PkRzSNs0wzNiKMmjELFETvVIIFsdx26M9JjvsYp6T2Kq2vqu5irMof8AFjHWwlV7MiLo1X+g2N0WehpYho1IsM0Ns0iMMV0PFFVWZGxM0sVhod0aSdjutizuWaocCz0VuV9k7FnYsivWeiulqxVWe6SKMXWdFfZNIo6KjpBCGWpkjnpSRV042RuVHkeR0eR7Hes7Z6M9F2ohiEPoKix5mSzLr8jvRWHszRiv9TH03tDVFTG92QriSHRjMiEaTBqMitvedmnPnVSabvzFjYrrbpzR4W92sQt09B37vFOyjJGxQIdkOiOKOrHZEbs2ohUZOxWpgXrgfSW7irMmV0XSRbHGyDFZIPv08VzufURhk000RjehbHTSaDBqHcVuoqPJkwyDKJosCEPCEKmB1d9rkzbco2abt1e1Dq8oU7nsex567tSR3dFVYIFasCHumjwPahZGPoIWDBBwRVx1I3/ak0nZNeBQK+3kgd909wdZMiFsbJJohMZrNSNS+6GiDUjUrFzSIx01RiuY6Ub8OqoxiorGVRC2PNXkwvMd0K4rbONjnfxSB7Ie+HVb3Zj6Dq8EURAhyKkbnsd7jGSjVFZ6byjgnc7bFV7sD3TVwOaIV6TSKMdVmqotqMroY66yyXSF0HvQu94ohkbFajwYMoYrisO9zTTjbA8+WxXXTh0eaRWEO62LZAzjZHXmiMbJrFVmjuImnAx0eyN6oqqkdRjvfqzTBPmcE0wTtnctkUWHtYxkbUSLJkzvnikkvxGTGr90gea4YrMwxXFauVsWXV5qqQRRCpCq7quq1hYQr0hmmy3zsQo6Sza21zVk0mjtVUZyPcxj6tv415FR46U7/uOrs987sKqHnYsEUY9sUdEIytkUdMUe7NPsT3VbH3lXvNHSaK6ox1ZA6oZlEUeyKw6dgdrUjcqK+xdJfARXVnoscmWTVXFRj2MZFM1c0edyHRWpmrx5UeOKIyx3ZK2xRCtudqZvR26k/vYxGFSd3FMjuRWKTsmkCEKjp9iehPlshdfVmum5hmdr2vuz2q4rbIL1yKmazu4Gc7p43QTtRA/Tmdj2K5K3e9Hax9yaZMUe5iyQW2vdxSaSKi2PNIOCGczcc9eTCRz1HkZP7GTTSSM997wLGzOyRZpI6vFJIHnYqqmXsgdmT3DSOzM0XfFGxE9GHRmVSRXQjVjasMjfBz0F13uVYpBNFSaozVCnYhYM3FR2J6qsK3+z8UdFe3WgmqtsldKf3SVRStis1tcEqnAunFO1RkiHejo7i2y6PruisMYs7H3+asmkMdHV5EMyLFFdEUgdHnZpz50dOR3q80dyVSBr/ijt3BYJrAsDotqqzijosDzsfQjY7H3IHdukjpPTjbh+Y6W/j1p/ezgeUKd6wQyDjYtiq9zMCHsdZ6Nr9Vd7WOoxXvsQseZkdjULNFmiuYaMPZwKjpxtYs+dFa2x56K3PZFIphHO6KZFgdXT6dCeN3NHI7okdhl6PuTttfRW6f3sc1dHXC6cVjZ9ydz7ir9NdVXFbqx1HR5Io9rHT8Doieg56rzsmqxs7XrTFx3HA6LBloUiwPFYGQKBSPYxxR7XVbHRjwRRjggtc/HVexYtTI+pJG+eaTR05FulHuSLGzOyax4Q+8R3GSd+GhWdHkeUPOx2NV6Pbb+Fve9Vsdltmrxsed2XRO4xbM7Yo6sVqzR3IP8A2suvl73qx1jzGR1o3R5EIV2Kz2Pe+hNMEiiiyiaZsKzvR4ZDI2ZrzSKqkju96II7tkdh3NIx9B90nquw72ohC2LbpkeDkQzVekEV5HRDvtkXSWaRsWXRjxucE0giqo8MWUOaMVFGxZ42KmEPA4G2RWNzzvWPOqtV/Sr6/ArbPdVkhEOuGOvAs9GCB7F0I7urUVH3CSerPTU9LV/K/wCKQIfxUUkoV10HVx0Mro5GQQPI73FgWDkmrEKqq6wP4R4JohV/FVsRgwMjar9VemyRX7mx73Ydrjmj3MfSgQxC2ZrHSXcHTV4a6u9XSBlrCrA7XHeiFcwRVHHQ0z+KOy25ZjT5URxSCKe1VVz0PuLKHJxbbHSfA6OjsLoKyXQ8o/3RXdXjy6rsO6pO132QQzNhY/IsEozfdAr6X0mL3HdGDNxVZhEdBTTkz1tNh4EahXYrD6ED7rHcVu00kmmR2RlMyKxqsO73vGMdJmESLJBAhY3Miq2qnFMUykPI8Kr3OyModrc7HlisxZpPReCSNvlWTLH0IJ2cdB32wz2LZqrpit9N0MmrJ6GTSaDSh0jvWoY8C2umhs02Gka0f5D/ACn+Sx/lZ/kGmaEf4maWjSIdjUPpYe3jp5ezVZLbNHenA7ojdx0dLxzxR2Qvcd2ewsoeRCJFmuaSZQ6TR7HJ5dF3uaiDgeR5JpAr0yIwmX6kb3xerkdui7Dz3KDIsDHJCFumk9afLqLuDFVGDUXY0kK47IYhjMIe100iEOx/kHc02o9sUlmUPY+q972M1EmNq2J301dkK78x3uSY/ZySOeB4MWqiaZHRjppHVUQssx5U5HSbmPrV1hUdORXFZv8AA7tjsqLZxvWbW3/er+LYvh71FJpIrb8auCTPUy/PqwT18UQjUZY7swqsw/URhCMI1C2voYY7l1TP0GOsmGLuC6CGMVxVeei7C9x3tT8Ds3SBDiqnoK9OTC2KzoiavY9qs6unmLA7MdrHO523+Xvff7V0/F0P/O7xs7SJII2/cjZlija8mF1n3FXZqz+FTL8jC9K4Fd0yZ1DtpFgY+5OwrisZuMdEY2LpK9FVC+GsC2wK6OdiHYd/ofCjJlGV6CuLPkZdGQhbeei6PYs1wK1tjtTmjsaiKcCsv0ZsKxyR0o2eX53M4/NcJeAz5UZ2uhleQ7PyFWBGEO7MLwDGlHuzCF/9JphC+ipA/qfc9kY00y6ZQ7DHW1/QfURhiuQzNjTY1Do7emx7Y6XFVe+1YMCksOPI049TVcURR2Y7iJLMWBmEQqIQiRVdGK4qQIzVE71gdHVHFHgQroX0H0HasbHm19/BA56i7usiGYfmZXQZoTNH5FYy/A1ZCu/I4JVMsh1jlmNP7I4RChCsqOzoqLNJMUQ7bHk46KsxJmmaNmqDTc02NVjWnR3ojTjzFsexdLWi+o0pJ+5quK5pyP1YjCoiSH5DimEPB77OBZVYpI811CuxDz50ezkZDFisMcIYsbkPAuit8VeNunK/JHUd793kmseR8L/Blenhv3ozCFajMNUjl+ZHC8zHkqRvwhXY7smiuIdFnqK5Hl6iyqIWSUaaPIxmm5oP8bNLQ2jUajWjWjWjWjWavwxt+xpbNF/c0JGq30Nbd6vPkzNhY9PMeZG7mRWNSJEQcmX57OB2EMcQK7GQO+yaO1EMVkKOjO1iLXGQOrkQrPa7b1mL7naxIrd8dkPe9zHc0iF4XlbEabsnlkfs9lTVnyq77MIdrcmF5s+5O1DorrarPesU1YHnzEIySPPkI0nBNHAr3HhDtsXuRRZ8jTYVFkgYp5OJY7C+o7CoreRzSDsigYtjsIeSVRZMEVeWMyO1NRq9tknBBFXe9EQqYRYzyLPqffZG9Y3/AG2OjOR3fdVjfwR35999kOsEI7b/AAQj2WxYqrpnw6TT/JmdRp+Lyq70WRbMjIrh9F3QjNyaMR7E7JFgVhXol/EglC+EggwLJinI7Cu2KRW0jppEIf09KZIqsioyEPI6TRURJJzTnI/XIti6PJwM9qTR4sPGxUe1bVvVxXRwO/dXjwVj7qrtmL7uY2QQew5IUI52al/GjsK37MtmXyL+K5Y8U0rJot9BtGtDx+xUVyaO48UVJFvZqsahjkZBNFIvbZik1irHHAsVd2PFIPoMWODtGHA83HlsV0PAugx2HTFEL6kCrhmrHGzA77HZk1X0H9trge3DJ3TuljGvW/lVjsvM1Y3QQPPyVpvbexxVW0/shSQoPZedHhbHZC969pyzTnzIX5MI1X+iojQaUhCTMM1CphiuaSzELNXTNX8NFkwzI6LFWI4IpzTIpoxCpptWav4ULHNHgVmT+h32O3+1t5FRUUiM0djirgwKqoqriR4Fjzosbb3Ferzsgtf06izSdjFHRWflRWSpPIscEbO0Zezt6o9D4tT/ABTBqvtdqYEXRqVUf4zRYYh2YqZW5jijEMRLosEbHjYxXPsO48MeKseBjFcYoOUSjgxSNkUViNiMCMswh38hnI9iEKxnzOfxsexVi179dk8X6PAkhZ+XpcUVtKisOn3Jr7U1Z2drZ8K9ZLs0oWTVnyFZU1ovf1GajVdioqRR3pNH8NNA7EDFVi9zVnar0WRk1j9UdHYdHgwPArDFlmnH13K9Hd1wNEVWUOmURVVYs0kQts0ZFY2uz6y2ZHj5c7T/ABSFJCg7WqR3q8Iwqq6MaURwTs4q7Ct6ivfmmNIrLzY7+b4M002Q6sY7MWUaaZRhmB425RBi/NIOBwMz67JIHmuNkDxSCHTAsfujHSBXEOjtZlrMiqHYd6cCs+DktqHa48eexZFZ7GLArIWBmohGEhmKK/QfQUblmiux0ggjpdr5P4rLkhVVrmNP7HdbYU+rO06q1XZCt687MfswuB+xHlTVd1na4pa7ENJjuL+KQr0VXhGU65JJVHTFcDrKp70k4ojFsCJFFEMiknNFVfEzDo8Du0LAjOxbZFRUe7TgnprD2OR3rG9CaaHn5dUS6Qo+pLIVYWxU7er8EKPVmq7e3OrypBFFfU4Rlszq/VFnbLpz5kowjnk1XYrDY5HkcURh+phjIHs+4h4IpccbIo6YuXbYxWHgV2O7/QtjtSKK1I2IY8iMH3MisjLZj0MCtajtSzZm4hCwRR5rkwjXugjarbHWd2SDFxeEz4vGk7Wr8LeopGn9jOyo2O1ifOr+KizwqTyzPoY0+SIJ2PFfi1GrPkPFc+dh3dVh8CtqNAxYQsPkcGk1OiucCk4F9iCfQnbI6LCEP4fUwvPpOKsUC+wsL7mSRXSqrXFajpl+YqKv4pFZHin5P+B3vsjo8bn8PkY3SjJZfMHa1R9DisIVtjk5IX7Jc0dMI0/SqpCMaTJl7nnyrhKWfDoR992NRhnJwMVr8mod/SmDkQhNCwOyMf7HZHFFejvSKKjwhXPsYVVYmirPqMdERVwSLMUR2ug6PAsCqhxVQPD6rsyNzHfZCIHfE8jeB42afluFlkcfQhUgjdOrCP8Ar6KuzHmdlD+J/hDv69F4Ph0IxpRqs1tdFdGUOxwQZ0mU+UQx3sLAzgeDPqM05FR5IEvWqxsxp8yfOn/lXlcCP/NqpCNOKMwIsIQsbX9az6Un1o7tbHcV2x43QST0F8XRWdjvcnv1v42+Q+1qyxSYvR42r4iFJEIUV9kK255Yvi4X+x55dOKKqtTmB/DpFa1VkQ/i8trzyYfmKmqxrwZ0+RijH9RYXkPArtCyh3IMWgdmMxcRa/IrEjwuP/pGxbIIJqqp+nkMw6Omb+RZDHAhWoqq9HmitSBWS5JQsE7mOCd8E71nasGqM71ufxdd5+R4UUfxOqts7TknVFfZUWKq1O1qPb1HfU5e3mjNVrHZX5MaUYS4p2qrc/5I1eykVkPA7o1DPh1Cyah3RJLmjsO/qSc8l80xZ8cif1ODs+ZPnTitv+BY2wh1WCFRDuPFUmPPkIYiGaR5P+oeKsZlCFb2o7UV103tyyC1/TatrsKVI8VW3TfqT+b9BZ+Rpe5xRWsQv2fVkbXhbOzpIJ49NnFHZGq4zCUmNGkxpW2aPA7oVhGrLG3eXssnSBuw/oMVEP1IGxY9TTdCwf8AByP+Q444ErCrNGKi9yKuaMefMQ7Du2I0iteTVf6IdmO47W/Ingd3TN+K4sOmFWaPJlGF0EK1Fjq6ZmjzXK/RC2K21/Ljulv4n6k6ssZC3ye/1P8A101Wa42LZ7sV0vyK1xZ86avaju9mNK5FZefLoqu1q4ZJwYXmP3NN15kDMiwOYwO30GZf3MLy5FI8+g75HP4HwccmUx7I3Wt/sY/5WF6sY/iiirgzcw2ORu1J+5hkjyIwqL8H2Ec/fpKqy9rgykYfO5Ziso7XzNLnfxH1IWaPBG92vA/hRG5xXt6vwZ1OWOOhpvcxpX5MaVCpq9q6c+dZHlmFazvyab+r/wDgxZM6SfIbFg05Qx48jV/FMd35sfImZIOORDMVnikMiqpyS6ZYr+fpTOxZfr+qMg5+5hiFTUK5JM0Ys9DFqLAo2q9quR7s3osUWX40rnPhftsU15OP2S8unPQhYRCn67HNVFIUerO0426vi8qK4qY0r8kKFVYVVYkeWYRbAzNtmk48jS2lx/s+Fjp9zVg1I9x44dx2fnXJNIuO/oSOzUVVzTYV+ZNNkyKuwvtR3Wx1cUdma488Cx6CuiT8GEuori6PG55/7gVhYJtbqT4g7MjwuFscV4/ZCzV002rxTtav0dpx0Hh0xo0dGCF/2xhKFWR42u/kh4IIORZriwrIV2zVhcISsLIrGULA73M/94QmvqZZpfqZXAhCuiLfY+5lEEF0izR+KOiuq5LW5FZDvWCKvAiDBLpA7WH0Xa3RdjjG7Tc+1Fli+b+J+p9X0YWWdlfogUdDt6p9EQqK9Ft1WMaVFZpBmva4HTmnFJFZGWT5DshJujgy2Iaw75YrMw5TGsfc1WMpPnz9DsmUKxklizY+xDo8QO7FawrUVx3xt5EKzY80VGSSckisWvuduu7p7IdGv4jvYV3vXgD+SHanEfUhfs1WtuWK9rX+iZfRhR9R/G59FsgX8WSiawp9WMg12Smiw6yL4nCNV2K6FhxWWZ1Cz+EarvyMLocxsv8AyLtpmqOCXRlr+TH9jKIo80djVa3Bc03Fa+9YQhWaFKFgTM+fmL7GFtVhXorCuKwhxTjoLA/i9B7GKBr16LwR3V9xgafl8hcfs9/rvikKSFG1XsK2zsaPyzk4Od2Tt6vwtjo8Ks8Id2xN3Y8M1XSosKjMIZpvfZpu3+K39KYaWLHIqO9h2MmGx39RWtyZuJ3ov4pDujVhyK/rSGKfMnkciEO5FXkfsKyL4/JqsYsSLO/gXqYZlsQ7dDBIvWt8ju0JWH8I+7OenHya7Id1s4j6kL97edva1/ohbFO3t6/wiNP5e2CBXsKzM+Rqvqc0fxUd1V/F5EKF515HIx5HYVvUd+lqStN+a8CW7DFdDTsIRkmiH8RkVbK3mZuQZUiuK2DLI0kehhIe5We5QZxYVh3HIsGnFGTwK4rJCvwOKK6FdEusIVvm+HXifqfV73ZUhZZLj6bXR/HTs6cs7WrC9EKRRRbdUSPKhelVaqsqac8Cg1WsOyMmlfyRglju6v40um7Pis8UmuXRyPHqakarP7j/AO+o/wDQhYHYbTMK4hoaQxx+aswu5uR50jHm1vzRmbnIrjw98Md/nFWWn9nGa6fi8986v0cdHGlZb8ziB4Q5pztjkdqu9PTPmYR7I+FIhUyWRgd3t0/E+e6artvGzJcnyHliFdCG2QfkatBJgkdHtXVVFl927Xc1Pyx7/UmX0oWFt022KML6k81dh3FsfxMuO1qabNc1yP8Aj9JIRiwjVYVvUd34E7GRUd2PODDFc1W6UE0firv8rxp/ZCyci2q7Rps3xSdX6NOfOnb2rFOzpwvVkiuhWVXJxRfQlnJyO4vi5osMfxMV24NOPU1C9x3e1dBUXd10YLX3PuSuhWXz59WS8unG1jOSFhdB4O1q/COzposCxR2uO9qdlSOyUIVr7XZC92axrEC9x3e7tWwdvoP2pqTfHd3e/dHerwR3GGLC7grLu6tb5NjSQs79N24rOr8Lowjt6/wqMhjxRpWp2rkKfV08jTnzFe5ouK3oQasit6ju6J353vwhY7hBH9De5Muum2rkWN0L/q2qaarNcU7GifViw4prsko2rDJ5oiUJXa5FbS+Re7Hf0FZDu++wJLOLeVXdd157w79RXFa/zdGk4zth7OSdX66OG4HEjwqQtmNI7JYRArWNX8Re5kd35I+FdB2t0oVFdpYRp/jqfHXW9XYreCrxqPkGeSXl9F4RxRXRA7PjYraVkw3C8lRXOa6rHY8xX0rNqXsf8ju/NiuzVjpcfmjuukx37ryParW6jzugtfoKzX9ARpIX7HkWeOhOqjsh3VVevY0z6vyo6KzIP8f8bcnA7eRq/in+TQ9frBYdtPoO76jIY7rwBX8BVr+EPK6K+T/q/qcT9RCpJOzsod9jsh3VJO059EdlUfsSZYsMwn5GX5L/AGz4V+S+po+FDyO7o73rHhzsu9K68Ajpq3Rj5P8Ab601fx1OGav5alL39nT+X0FfU4X+x31PtOsmqw0ZfkjX/HT5I03fmOyq6uq3P4tVXZEdwUd0WBWS3Lv2rwl/J8L99Htavwjs6aab3VF8XNEK74R/+j/HpR2Wou0zSx3NNkabId6K6FZdbTdrnujnvcd5d+tz87Oz4IUerO1q/C3K4sGdVNausig13NOFyPJC6vI58BefLub/AKe7GmPV1dvKjscl7L8/Qsn5Lgu9X4JLNisiTVa09wd+jOqN6jwrn+lIFZUf1Z2VtgdtPlyzDEvq2av5P0wj4V6UQu9ab2jeu9as+XcH/SCw6K96uyHfU+SXIklTN/Idh3foKx8T9DT/ABTNTexXQrL5zd7/ADRqtpQ7qkskd9Tk0/y1P8GlJcs/yfaRXfrg1W+hq+4rmokfc9Nmu8vw1Tuef6C/xZ83g06dPufF9Ef47mi7Zp/lr/R/kz5If8UMeRWXmO+5ZFb5FV+4vdP9BNv3o7eYrs05Y7tiHd+hhDu9jutnArWosirOmrtc1X+YI+dP/8QANhEAAgEEAQMDAgYBBQACAwEBAQIDAAQREgUQEyEgIjEUMAYjMkBBUFEVJEJgYTNwNENxUnL/2gAIAQMBAQgA9I/aH/qeazWf+yj1j9iPtD90P/p8f24/+gh/0Qf/AEfn94P+hjoPtD7w/oh0z9gf3Q/rB/0cfvg6nx6eS5qOwcR/tR+zP/XR/wBjd1jUu1rfwXRKx8/zDwsIIYb+7gbuNZz9+IP6OV4MX0olX/6jPrHW6n7ERkqyuWnDb/bz+2H7UdLiETxNGeO4w2jGR+d4+Vpe8kNndXDaGxh7MQWoORWa4aAZGcdH5+zjl7R/+pR9ggEYKRpGNU+1z/KSWihY+J5e6M6pIPj98PvCsinjV/lbeNfiuWmkt7VniF1JK47Uee2NmW0tWeX+jH/YLb6juHuf2J9PKcUl+uDx3Araydxh++H3ZpkhQyPaXkd3GWj46yvIuQeSTkL4WcYerO5FzCJavYTdwFI7u1uk48QQ2sctvMGP+szrOS/FJAYyx+5nruP3Y/8AoHPqx6M1npn+hHReSdrzsDpc31va47sMyTIHj9U0KTIY3tbWK2TSKWeOIgPyd9DZxbSDkYnsi0/HPFa25MNrLcwZMvKI08v5NxZTQAbWlms0MZl+9cSFEJpb6UnaraTdc/1o/wCu46Z/ZZ6Z+zj9hn7w9AjTbboK5vjp55xNFw1m9pb6SejFHwDh+RvyFKXF3DapvNd83HduyA8nugUQi0t4+6TPczShoZoBLKiTdtUYEfSowO0t5Darl/vTR7ril4wBqhjCDA/+wx96O4ikYojMFGTI5ERZI7/kWmeYR/iKe8yiW9hc3Dst5yvGM1r2raKzkklEYg48sA8hDBNl7Kb7U+VyzC9mvGKWlrx0UJ3P/Wx/9DQzxTgmOGwht5mnXmbqWe4Zm4i7na1aNV4y7v4W73F8dJDmSS7uoLQbu31fI+Ht7OCFT29NTkhGzmr28htB70s5789y7jgATQKMf1g/rJH0XNS86VkIFrN3kDekf9CtpZWkIb+hdwi7GX8SQRvrVpdx3UYeP90K5HH0rrXEWx4+Jprm/nNzdKYFsvqYc3Nja2ttmKMS9ttKn5GSRzDaG2h49PqLm35WKZ9SMHLIFOfF5yT7/T2tjxYhPdlwf4Hzil/qx/RD7cybqRUvCSNIdbODsoF9I6zXHadV/YD+xz6M1npms/uLyMyQlQ9lPG2jcBayQQe/7Wesd1BK2qUPRkem1v0uX1FXPI21qwWW/wCVe5l2SSW45MiWWKCFU9kMbiLV7awhsGecvLNyhKRW0UFomkfNWb3cQMXGcbOk/clB1ASr29knk+ltbDj47NMIB8joc5oL4x/Vj0j+pwPSPtj1D7Y6SzJCNnRw67L+9zWeueufsD7GazVyX7fstSxj8/eMSE5oAD7gqZDJGyCw4m5jmG9DrzF+1nF7Ga8YdyuD5CS6QpLU/JrDN2yKuyLa3kkisDfhkknueNku7vvK3ESdztwQQmIahX3PiSZLSItIkM3KP3JgiCPSrhpWdi3ETvJbZk85CryV27OLS2sOPW0XA+Kx0J/x8Dxn9oPsj/pY+wPUzajNPyiK2tQziUZHSWLuAVHGI11H9WsUvcyfuZrP3M/teW483kWFa15BVKVwFq8G29SxQZ70lzy0EVsbhOT5a45LEFvZ8TI6I09xhyLZYIUhXVSqsxzcXkNvEZHhhl5B+/OCB+nOBU9jDM5dooxCPHI3gtE1TjLD6ZN5Ngnmn5i3R9DHKsi7DIoV5P8AdD+lH7Eeu5BMZAuY3WdhJwiSLAN/3Oaz9nNZ9efvD7FteyyXHbPrx0H7Tl7aecKIuH4y6tZC8lTyRKuss8D3LmBOOsIrXzV1drbQGQ8byRu5HDlQ3zyzQxW+rRcRdSINraLsxALn2kllyKUE+6ridLaJpHsLV7iQ3srMmdKnQlTURWKJopOJieOABzQBxXJ3rxYt4P8ApQ/eikkR8hfUPWRmnsomOSiBBgf1Oaz6s/sQAP3wr6qHu9muW5mWGYRW6cYbh+7dNHG/5ZZ0DBTNbrOus8FtFDlYr6/jtYSzWVjJO/1Nz8CkBA9zHAySMjBB8bHzytzQAC+AGwBWB5FCBCawAK/wavrtbOEu3FWbpm4n/wClD98qKuceof1uf6QfsB6JUuTNlamvYLdgsmaZwoyeVv1nuCLK0DxSCSrC8SeIsVC65iji08nA81d3K20e72cD3kv1dworAFAfxRY/AXDCuSuHnkFlBa2yW0QjRTk5pfFCs+KXzimYICxtUbkrg3Lj97ms/az/AEY/6ZcXUyzlR6M/Yz+wz0FZrPTNZ/bDqOt+ljJMFmPNW4Yww8jf3AtgZuO4uIgs54+Ax9smxiNuYBZwLBH2kGG80TqCSSeVnJMY1XJBHg9PIOAoDDIv7xbKAvXF2RgjMsrAtWKAoHIJoHODQrkZHu5hYxQxLCgjXOP3w/ph+4nu0h8tBdJMMr9gfuJphCmxhl7gP38/sM1n0ZrPTNZrPTPpB/pM1acolzKYxkCp3uONnM5t3mvpO9Uk8lhMY7dUmmUPLGdqZsCpJlGCYpkk8ICx8jlLmSVlsore1WOMKuB81jBoA/FAZr481AP9SvDKc4GaAz5rIJyPABrOEOR4Gav7tbSAyHibRoYu5KPFHP8A1s1z1rNMuE4C0mhjxJ/QPGsilWiiSJdU/d5rNZ+9ms1mmuUU4KOGGRms9Aaz9sH74rI6ZqOVJRlHdUGWgggTMkXK20lzblIltobWFFu7+4mtIGNJaSRTCNpJpoJDE9ncN9IJJJORubhiyd2W6k0k4xGiujGLuZba3Mj8TbP5mkYDIJXNE4PjwRkD4rmLlo4xBFZ2qWsKxKcHzQ/wQgJzQFeTXxUZPI3peh0H/RHJCnFjNdNdkP6ywX5+8Yw3yFA+2iBc4/d/Uy/Vdv7+az+wzWaz6M9bhyqEhmM5LvwU77tEQeuaz68+rPS6d1AxatIYgZeg9d5ci2haQ3HKXMzbHgOTkuAYpJoxLGyEKnGxtM/1EHMQlQ97Bx1uIo4or68lEsz4UbG7upYUMkrPcAtInH231kKyXM8AeLQf6fPGSiR8M59x4+wW2XNTN/qV7pSLj2hRgnA8U42Br/FFwqlm41Dd3D3rgeawAMgf+/8AlfpBwPb8cvdMiCCKxtVtIFiWhknJGD/0UKB8eueBJ07cgAAwP3t3KYoi44fkri6kIk/bZ/Y56ZrNZrPXNZrNZrNZ9Waz6HTYYqfhJdyYuNsBaqc+vP2R0HqvEkcLrbq6xgP6L22FzA0Rfgb0NiuH4s2Slnq6MBj0nnurfjJNbbj4baCRhDNdQwn3pGqEyVFMl5cGd4eDgD7sF1Hg+R4ZB80Erlrv6eHVOOs1tYQlAf8AGhQ8HNYB93TmJGk1s4oo1gjWNVUD4yaAAGKX/JGS+aZggLHjFN5O1646j/sw9RUMMFIUT9P9bn19xaDVms1ms9M/Zz9gGs/Yz6B6+QWZowIbmS8s7dDV5fzuF2ivjZWitdc5cRTxJLE0KFQk3BmdnJa+sJp5zjkrhjizhtbZbdAiitqP/gHyaJxUOeQvWnKD+SoIHmsUPJBpnCqWPEobiWS+f+QKx0Bx8fC0FwAK5mZ3C2cUECwxCNaFKMUP/f3g+5n7TzqlJcK9D1j1Z/sJpDFGXEMhkQMet3LNGR2/Vn7+fTnpLdRxHDZ9WfRms1O5VCQjSTjutxU7zQAv1zWemazWazQP3c9Af2A6XNslymjtY20Ualrya5upghfjlh2nTj+9MGWa55G2sRpXI8tLcyHThLViDcyDz4oPnyAAKA/zNKIkL1ecoWswY7K0FtbCFbWDsRiOif8AGQfFeCaAwa5iZmVbRIIVgjVFH+QPFZwKHzigQxyHcIpZuKVrmZ716EqPkKoxjpJKkSl2/fD7I6D1Do3gVdyM8wSocw3GixnI/wCjm9Il0+7npn7Mtr3GJoDAwKzWeuazWfQwyKfho2ckQRLCmq1npms1ms1ms9c+jPXP2c1PIY42ccfeSXO2/W+vWt8Klhfm5LI/ouebkSVlis7pbuESrLKkK7PFKsqB1mu44jqeQurgqjz2MzTwh2ufMRAZZUiRY+S47fadF4sPMluI4VRQAcfNL8eZplhUvJDztpK4jAwRmrUC/vmnof4oUPnFHHwSdcmvCjNcapvLuS8LfqAHT+KHgElK5eVpWSzihjWFAoIyMVaWCWzFxX/9v7T6uEx+sf0Q6D1kZq449ZTVtx6xUBgfsR+5trcwBtv3mBnPrzWfv59Oaz6c1ms1ms9M1ms9GbAzTctMSSlrOJow4zWfVnoPRms/YGB6L2y+pwRY2IttmPovOGuDKWh424jgIs1niWVMGa4W3gKQTtcS3KNUlrFKwZ0ncytGbaCSJ2MnaTOTPMsETSHh4WYNdSSBmwK85rBx5/ECSm3BSBWuZVROVuTbWuiWFuLSAR0BX+RQxijGQ+5CksK5m4aKDtR2VsttAsSg9Bmv5oVI6xIZG4mNpma9kX/2v/FzWM0MHJH3cj+wmnjgXaSh/XzG47y6fez6LmbtIWpeelLZNtL3UDfbdiFJFvcGR9Rnpnpms+gmtqzWazWaz0zWaz6GGRin4uUMRHbQiCMIKzWazWaz0zWaz1zWaz0z1z6M9R1nuY4AC6OHUMvRLeJJDKPxDdOZFgFuhW4jEQhTbepbmKHAe2k7qbFX2crTRzG4zXIubu4SyVFC41BOBR/8b4OHiDClhi/4wJ9bfmQ60Ol7K8du7x8Je3dxt3/gVbf72/aam/xQx5x0yPG2f4rlpe/IlkkSqgChfjoOgb5NKfGfu3sxijLCG7mDgOhyP3Y9I++8SSDD/tFkVvj+uniEqkUPw+d/MEQiXA9WfVms1ms1ms1ms1muSdgqirJsSMqZrNZrNZrNZp5VQZaKdJP05rNZrNZrNZrNA1ms9c1mgaBoegHrLKI1LE85FnxBOsy7KD6QaBoVcWqXAGw0gjq65p84t7aV5Yld7y+jgGp+ke7jBu7Xj4Lc5juLtIGVGuobbIlmtrxLwsqgYq6uBbwtIeItyqmeRk3GKK5ogj4IH8MCWzXJXAtbZmTjrX6S2C1Y8zNcXOhHxXz8MNvbUaAfHI3ZtbdnXjLUWlssZxQ8DyP81/GKGB4rlr42kBK2sskd0JZF8r5xQz8AAD4/8o/eu4O8mtQWDBwWUYGP7cdZd9D24t9Bv63GVIrjONezZy37TcCgf6bPoz0zWazRNZpgGGCqqgwuazWazWazWav5TJMVMS6DuJFJugas1ms1ms1ms1ms0DWaBrPQGs0DWaz1z05nb6Y4DVwakQefXeXDwICttI8kSs9xEs8TRtbWMlvc7tf8gtqni22llN1cX/IzOwROJvmkGkmvu2eVIL9cCz5FFftEYIzXIf7y6S1CgKAKUNk5ViaZjWAPgZBIMh+s5AR9ILaJCXX/ANrGPgefjPmp/wDe8gsVDGKwG8scDwfjwP4wAABiueUSmOFbTiGSQSzADGK+aLUJl/kEE5oeTmp5hBG0jf8AWVdWzj7A9Ez6Lmrvn3SYonHXf1EQf+kzWazRPQ1ms1ms1ms0TWazW1bVtW1ZrPS+s5GcyRw207e0qNRgZrNZrNZrNbVtWazWa2oGgazWaBoHpms9ZIw4KkcLbhs1EgQYGaz0zT3jgNIAejyLGpZrfmY5ZRHXJ8i9qVWO/wCTW6hUIA8kG0loq9lcXPHQXJDSDjoO6si31tJcKAlnYpag6izhLEmeRYIi5tbuW3/OZDkV8ZNTXMcADSbeM1oCc1dTi2gaRuHgKwmVx4oN7sFjgUFGaAPkiecQQtK/DQEQmVyFPtav/aLedaGPis1ZD6y+kuTgfFfxX8Cr6ftRl6FzPKdzxN5LISjiuXczyR2af3Y9JUkgj9xbWcdtsUosB8gg/HqSVHzr0mTdSKn/AA8JZi9WVsIIwo/ek4qK6hmJEfXPXNZ6E1ms1ms0WratqzWa2ratqlyyECLKg52ratq2ratq2qYnc0jHHnatqkk94DQSEr5DVms1mtqBrNZrNA0D1HoB9AprSFn3N1c9gDFtP3ohJXMxTSIvbsbOURvtNLLOFiXiuKMQ7rx8NM0mzojBApCFcmo4khB1Xl4zLqRQrmJDK6WiQwqihRLOkONo3DjYTwpMMOvxg1ybG8uUs1iXUa0ihRQBxliD5oeKUN8nlj9RJHZqoAGoBycqMa+BjFLn+b95Ibdnijv5oUfHHWotbdYum3S7gE8ZSjx93G2g4uy+nGHLBRk8Z/uZpLtvVn+pkWQldPVj+l5VJnhIh4ZLlIsT+q2tFgJK9cD7TyBBkpyETNqFII9I9Jq/5hLU61Ycwl0cAHPTPomTeMpXH2MsMm8nQnoTWemaJrNZoms1mi1FqLUWratq2ratq2rat63retq2reg1Bq2ratqzQNbVmg1A1mgaBoGs0D6BWazQboPRNc22/alumkSL8m2uHOElurmZrnFrDZgxl7ZMhQGqJLn6tnajBcPcbEcdc57NDwK3AUseOU3E0l4w81PaCZleooliXVXYZFRzJI5AvuWitW0rh4m0a5k27a5pWwcUvgUuR4pHJGGLKoOeJU3E8l43nzijT4+KGcUVDDzKBc8gsSihR+c01wi/KMj/AAWAbFQktknmJykPaS2hEESxr/XD9oJgZDH9nI+1PFK5Up6cftuSVmhIWC3nEoAtc6DP2W+K5mzlMvcXhrGUTd1l8D0Z9GazWaz0Joms0TRNZotWaLUWrei1Fq2ratq2ret6up2DaC2lbOp2retq2ratqDVtW1Bq2ratqD0DWalv0jbUW90kw9oNZrNA0DWemazXKXjwgIiyyIdhx12biHZhVwkzSHUdJLGOR9zkKK5jkx4gitpLW0t+4rchDCisbfmEnl0WfkpluiY4ObdGxPNeqqBkiuophlAc9OZmZYRDHbRLBEsdA4FbBfJLADNIFUYXFXlizchpUUIjQII8HOCMggICFxS7+QQfJrmZykHbW1hW1twgTmLUtpQYN0yxrBzU8ywQs7cPE4hM71/5VzIUTNSSSXbFjZXUtrMENq5mdnoLioj9XyDyFmCDJ/oZH1Ff6ic1FJuuftj72cVn1XNylumzD1tbo8olP9Hc3jwuQtMoI8i3jBzQGPtvErfKxhfjrnpms1LKEUknnI9qimEgyM0TWaJrNE0TW1FqLUWotRai1F6L1vTSBfJWdW+N63repVEnmowEreu5Xcret63oNW1Bq2ratqnmYtouWQbJFLuoYBqcaSsDYg9wtQatqll0QsIJ3L6ODQNA0DWa5eBmIlBBPxxVs8MPveRY1LNDMkoyk9wIU2MnOKpOI7qZ8zVeXrXsnsi4ouEqK1WL2qQoHmyjDSySpeRvBMxMsvio0dETvcZA2WekGtMpYg1AfrL5paHRviiTTap7iZlEZkqPkJFuHmXjb43URNIfHnAzTYbxSH5NfAxUQ+s5EvXII81q6RjK5RuPR0gUPRIBo1yxM8kdoqAKMDOPAPnxU8e6YqSGa1cioraRz3pLKDtQqp5C5Frbs9cbb9i2CnmOU7p7MVY/oJU2FCwfOphTQY++Tj7V67pGSvHTyOSG9OP2xUMMH9qUUnJ9BPod1RSzQzpMuyVfGUIO3Bv2x3PRmmkC/KuGrPQ1yoY2za+zSuKDCBc5oms0TRNZomiaLUWotRai9F6L0ZK7lKvdOzSxgeVSTKg1vW9b1vXcret63oPRkA+RcLQeg1b0HoNU2Ucmg5bwIV0QLQNYB+QcVmg1EBhgxRRxeVBoGgaz1t7qOSTUAipohMmhELwRN2ljM8IWe8skhgJhgnMBaoJogmlW2ptylqBIw0NvbmGPQxQxQe1JYUkXDQWsdzcZAQVuiEAg1yV0YICRxtv9PAqk5x4Qvr7g2SRWPdmgoBzXLSOQtsl3xbrIOxxdkbVTsntGCM7ElTsTlRV/cm2gd64q2NtbjPjGKS3CjDYFHYfCrRbAJPFk3M0l03gUKwD4rGa7Kv8AM6BpEhUCrw/V3qwDmOS7amCORvGR+xz6c/vGQP8AP2WjDfKRKnx0HXYA49Kkkef3DOq4B+wWAoSA/dmiWZCjQQLCpA9ZNcvLI02h4ieRJ+3WemadQ3g/6bBttSqFGBms0TRNFqLUWqa4WIZJvz/KzBxkF6L0XppAPJMxPkd0Gt6SXT5eYMMKGwMVvW9b1vW9b1vQeg9A7PilUHxSHUlaD1vQeg9BqBAoNW1BqDUGoNQatqV6kuFiQu1rfrOxWgemait4o2LK76qTUF4JQSWkCjYycjDHH3KlnbkwFjvrdIYwiziNV1rjspbBjZ3ZnUlu6vxRhSaYTVyE5P8AtorW0W3QIFAoxRuwY1KTeX4WlIFCtqFajbagXAJewzdTvdsoBagKJJ+NxilJYE1+nCrdkXV+lsB/ivJND/NBhjNePAoDArmJmSIQx2sAhiEa/HihnFZ/wcfFZwKs/wAwtMbq4W2haVvqvo7fdnnMrEhmR/2Q/fj9gOuozn9lZxTRKRL9jEndz1mtY5mVm+xy921vEWHHcjOZgskZyP21zZR3H67exit/0VnpmiazWazRNE13wcVtRarhs3ABJXFQthmFF6L0XpiHIFRIAtXoCPkb1vW9QW5lXYzAxOVO9bVvW9b0Hreg9B8HNd8j4Vq3oPQeg9CShIKD1vQag1BqDUGovinvJHOUE5kYLPZxIkjGMGu4o8F7uKM4ZXBGRNM6Y0ngE4FShRCUa1h77sCWisoaJhuo/baWMaAlo3RshQqBSKhtkTAF1dLbIWNtF2h3p0kSQZVEC5wGUHWr64FtA0lcZF2YwxKBhg/x45OCaeLWK0ikhhCyRhgtcvMViEKWkK28AjSNP+ZUg+RjLZDnAzWSvkzzLBGztwsDCNriQYUEtf3TWcBmFpcG4gSQjwMAYyaBBzVt/vL95yKB280+f4GM5r+M1eyEII1jUIoUc3elpFgS+umZiW/nCKoHz/VEZofYHSbvbL2/R5z1IbYEfYQzd5tvTt7sdbWOWOPWb7UNykxIX7A9d7ZrcqVNnwsdu+1KMD9wTWaJrNZrNT3kcJw0N2k2ddqZq0wRRei9XCbnZd5filOtGSjJRkoy1HfgDzcTd09c1BdmJdamlMr7GKCST4a2dPlLeJod+mazWazW1B6D0Hreg9B6Q7eSVzUchx5D0HoPQeg1bVIC6FQCTQYBhmCVWXK7VKNWZnjUNIVjjbsRhWnJlIcW9xPqS91cyy5Bj7pwtv2S6LHNbQJGmFt7dYFIWGFLdTrJfTysdLK/OSs1ohvJjcvyRL3OjWDGO5AQV4q/zc3KWwTA8U2fgDx5Y5LjHtbK1kCrfN1eNOVXKElSKy2vkgD4XZSS3/8AOTJubhLNVVRhKz/FOAw1JZI8CvOcBR4weUuja25YcdbC2t1QnOMV/OKGT8k1cXUVsheS35SK5vhV1crbRGRprsAs7zMC1KmBklh8f2w6EZGKAwMegdbmFpo9VAwMeplLfbP2UhSPJT7LusalmimWUEj7120iwsY+MkldGMn2c1sOhPUno8qJ+rNE1dgx3BdrbzJuN6Z6L0XppKaWjLSKZiRVzEYQDRc1BC876q/4anSLengKNghK0rSilaUI81wNlEVGfxHZRRpsHTya0rStK1rBrHXNZrag9ROPgmRQKRsCg9B6D0GruAfKuD8A0YI3OT9Mq4KW6MmSQ9bA0gVf0vGJBgyKYImKRyyN8Q2iK3cYPDbqBUtwkK7NdXDRx5SCWWSHLwCXt4lmie2cireJ7uYqIEWNQgubCO4IY2thHbsWDRliDUkgjQueKjZy1wwoEU2MZKNsM17Rk1y132odUtIVhhWIhwhCHUE5plyMU+sjaVtU8qwRmQ8NEz7XUgbwTQAAJYyBRk8zO0SCQR8reKdqsLn6mBZac/W8hr0+awMYPjNH/NfiKCV0RlhjkD7C85CS6bLSEF/KLv5bAwVKsNcD+qdgiljFIJEDj7efSQSPH3BOpl7XpFDfY5qVWZCFGQMGs/sJI1kQo0ECwghftH7p6Gr+Kd7hjUWwQBuhNE0TV/ayTOGWBTHGEJamINE4ovTPTPTy081NLRlq3uu0Tm6ujPgUq1xLLFOC1xyEIt6uyJJCwC1b2ySAksmDita0qzsVkTYx301q5CXfIz3X69a1rWtaKVpWta0VrWsVjpmg1B6D0HoPSvSShHDENvIWCtTSEEAQy7Ctqy0gL07syqajLKvv+sGauZzIpVEJh99BnmjGFtwyjfCOMN3UDBTuBVxciJC9Xd1hAqW0C20WBFyNx3g1PIwQlbC4uZJSJAfFcnIZXS0SNAihRNykcMhSkcSAOM7DwfP6ZpljRi1lte3RmdAtAUVBIJmkZELDvYj7jKAvkci31Vwtoka4XWg2xyAcnFOux0N7ZLdQmOhwl2H1oleMssVxFqYLfLZxX6flhn5Hjybq6FuhJueYnl+Lq9eYBSZD/CAGgE190jbscLGxwfu5rP2muI1ftn91jozBRk/cFMjFwR6M1sP2I+w9urSiUj7ts05kG3plkCLkvz8CvrUFwsy7L0e4RH0PoPXNE0TRNE0WovTPTSU0tNNTS081PLRYmsE0ENCOglBKRcUZHIwcVigH/jRqEbE4qy4DvJs1/YS8f+nGfJwKxWta1rUcW5qaJAMDWta1rStKK01rJjaiOooGg9K9RunbIMexwolilgwXyG+VYKMVuxBKupwRXczjO4qUK50jig1HkWiZ8w6KdFuroxjA+ouAc1YzLOA7ck7BQKWSNCCvHwMzd+QUtnAr9wcncurCNUlki9yxzDtdxuOBldrlxVzxTySl0giEUYQEuGzRkXBNXcpliMx4+3W1twGhiX9dOhYeGYDwZb9A/aWCUMAWubpbaIyNxMDBTO+T+kLLGTrRbWiCRiiwXA6XOb2/WAfpGQDk0zEVGcjag6kkC/hSaFlJp23JCp4GWUrkFjIzjFDyfATQe39u1rG0glP7V4w5BPUek5I8ICqgNWOq5x7vQOgOemKwM5q8kaOIsvGXk8s2GHrkcIhY286zxiRfWPRsM4/ccxHK9uwj7YzXCQPDAA/RoUZw56ZrPUmiaeXVggjlEiB1LVJJqCaa+nc5SK83BDSXjt+j6tx+trimnppqLk1bWpnyS9oY/hLRz8Cxx8i1xTxQxD3ILTHk9qJ8lp4CMqtxF8DvW2nhLmwjXzFf2hbZzf8AElNhDzPHhcCSTjbzwx4jin+D+G7J/wBEH4btkQq1x+EpCSY5fw5fp8ScVex/qQyQkgyOGHTFYrFFaUAMCXmQLRFa0Vor0zStStUUxjYOLm5e6XIDUzZGKQEAimA8bTT5XQESFfdAwA2KOHHhQ7P4SEK+1XyEYetlrjFIBYuyBSXjj+sk3po5Rr2xS5zV3ZLcLUdg3c0a+YyFbWO1jkXwwrcBtazRkDDIZjfyaJp9TdABQWoodcL5xXI3PajwNmxiop5IW3RrluSdIhEoAzXkREiPfugrGS3g4Oc0DlqurgW8LStw0DJD3ZGYeBROB5YYXFFgoyTgAkctyfezDHI5/Sqo3zUWoG5PkamRVRRUS4/YZ/ZfFd1c49IznqD6nbUekD1PNrIsf2raW4llYtQpkDDBjtkjOV6RwiNmYdI3Zs7emOF1lZz6JjIEJjGceei2eLgz/uCM0bKEttSqF8DPTPTNJcxOxRSaZwoyUlSQZUmialRH/VkKMAtUp2UihmHwzscMaA8U65Ug7mhk0ttIflbMD5jKRDw7lhgb4HjBK5OWjGQW2Ga2Oc00jN8mTJpZsUJyPjdsnMMgHgyGM/FvJHGfLyF3/LZZP4WZl81FzVzGNFXn+QR9Sv4imgA78HP2049wl46YeZuB4+581c/hBCPybn8M30HxJZ3EX66xWKKZpYhnyUUg0VoitaIq37PabdXpZKSXAIoy1vTh4sbklDghseS90NaiYKnuR0AwBcp5qGcliW+oEra0tnGDmlIQVJK12+gjwgAUPQag1B6mnaFu43HQsdp5BSTBjis074qSZ72QwwzzJZw6x29uY4dF8nC1tSXWyF2vOTglBCOjIcMBmuGTLFqZyMAEtnCrbxBthggHVy2MDODV9/u7lLQAADFeQSWyT8gYY5b4weV5XfMULyqKVsHJXZ/gBlqSVsEFFLHFZx/RSAlTiNJO4BSZxRH2ooUizrkdSwHz6SrFgR6AoBJFMCR46ZufqcegMPIodJriOHG580i6qB6Qc9MDOf20EMySsz/fz0z0JomrfjjDN3Dmr6JpY8LYwSRuzvmi1M1FqaSnlqSQVK2QRSSBhinRmXAt7JG+TGEJFeBTHAqUHTwSyrTMcVv51rJJo5HkEnJwGJoGlUspqbRUGvx5FDxRYFvbG4QE0gEgLHXxUMmpyXmMj7BroPENorkRR09+WjxUN7dIcrF+IbyIA1bfiRCPzkv7G7GDPwdhcj2XX4SkUZhuuKu7X/5CCPmj5GK0xRSu2aZK+mzHtSxlzgCxAHmWNojTXO8YQA4p5mfy1vEWG8jSq0pNGTJCiBMDNKdX9qQDcsTEXkqK3VH3BOBUsrTNokUATGJJgiFqivm7vbZM64q9MsUarVjPKEYUm19MAUYg60p1HnYU2cZp7lryYwxxwpBHhLfF5MZmjLbDFxzcaS4W7le8t1eC5t5Z7crTQybaVFAhhCzW1ql3csVt4kt0xTH2kVGhVAGcZ9p8HzSefeZp0hiMr8RA4jM8jKGPk4f5Yg0HBGa5XlTJmKJ5ATrTaqNaVCR4CkfrMx01O7NhCoCrimVj8WaqcyP9vP7VWDZxqKffxr6M+cegdbyCZ5QVjBC+azj0g59Y63E4gTc204uIhIK2GdekkqxjLbADJGCMhlB+aJx1uTKIz2U21G4AHx+ylukibUg/bvY5H1K2qPHCFk9WemazWaJ6ZomiaLUWpmpnp5MU84FSXAppyxwqW0jeXjjSP4MqsK2IosCMkncMqDZ1IUYIGc6MSS0rHBCgx608TJ4SLZPbRKR52EygVsxfw7sBigfjL7gZrX/JcJQI1yUPnyWUeQCfkkiiRilcUK8jwCxUYpXYDWhcsD4FxsSaXkJoj+Vbfia6h8SW34jt5R+c9jx3IDarv8Iq3mC54K9tyaZSpwaC1IPJruMF1q2UZNGrzBStHUbGAoSQ4G+XYu7pQDD5CMGoRmPypDIdmSVoySVuwPkXa6Fg07P7REUi8Upp0WRSphsY0bYlcrgS6yRsBMQQsEMBW2HaETkqC3liQ0hULlu5NyDFFit444wiXzsXEEUcaado6KseoPETMx7VtaCKIR1I5QUImB7st5NI5FslnarBEFWUjOGRf+TrhiGojYndvzR4GRgG6P112LddsHWnfHwfA2CuGG55PlTKDFFLJgeI1AG7Y7vk5ZFGHldj7e0Aua7efkmkTutoIIRcYH27tHePCWMcqJiT7R/djofsZwM0pDDIrY5GKeNZFKsqhRgVgdMUQCMEg4wvV7WN5lmPR2CKWKOHUMOoQBi3R3CKWaCdJ12T0yXEcbBG9M1okrbH7WfWepq/5JbXxVjyguTqc9CaJotRai1NJTS00lSSUI0lhJpLLP64hEowGfJppMfpf2+6kdZMaqrkGpXlWQgJK0YIEcwRcujIc4ndVOgMsgizU1w0wGFmKkOH2Iy9vIioTWGU7KZEKneK4YkLXf8AksMH4dgw8Km0dYwSrI//ABpXJ8MrefB9r5oYHijgEU+c1nJqMjJNfJzXigcmgPOTI3gZS6kT9PH/AIiu1cRtB+I7eR+3LLZ2HIr4vfwiQc29xYXNsSH1orSkqc0Z6dt6aTeHQxyIIu2XElr4CkeK3IODsQNqaUEg0SHBAjjckgeY293dypqNQRkFih1IclPYZCkQZlcV3RnAuJ0hTB4xYQmRfoomGsN8VfWSPkos4rL8g+KtZcZQXVzHBGWa0ACtJLbyhzqJJET9RGE0jB1FCYuTI11eagSVxdoYwZJHOoq3GTsA6vlaZfcAC7A60FGQTfXJs4GeuMtfp4suD/NKp+WmdMbG/wCSafMaySFfhfL5o+/AUSCP9JiLjuU2IfcGjwm7LIrUfioYe6SiTXRUdtP3AGOngn0HP8eknHUHzih9gMrEgdCcDoKx5z1MM5uRIKl7xdQgAUYFIoQarQOel1drAuTaXouCRQINOpZSAowMUzBFJMLhlz0lnjhAL9EYMMipHEaFzZ3Mk+zP6CARgxxJEuqD0y20crBm/bswUZMU8cwzHRrlLGWVxJHxvHypL3ZaJomiaLUWp5KvpMsFqOTUkBpvOAIywzIrf8RkDNbxl/Ej+7QSFHHn6lQcVLKGA1huyhAQzSTPus6whfb2jjdIo+4DW7IdGMhYjYqNchCYiKztGVCRCTBDKc+3vFV0MeDhV0bP5b7MCTKRrhYpNEJKKZFrPacihER5ILfIeXBAobZypcAb0d380Aw8kMoBwX/yn6fHwcUT/JEm9E4GTDJo+1SP3GzUF5Lb/otPxPcRYWW35iwvho15+G7S6G0d7+Hrq2yQ0ZX5Ioow9wjncLkyY1wDd5i7bgkU05cUHVVAZpM+BbeGzVkiiPNXsUTp5cprhQSHpjk4a3YhKhfZMkkDBqe9jjcFZ5mlbuNYkmcFZbRJiGN5bJAVahEZZAqQxBVC0SFBJQm+m3N/aqFMycNDImWPIXzRMEjtuRlWQCV7hp31RpRHGZDYQNdym4lPhaKhzokpGmtEgqMB8AhZrtYE3ktL+K6zpCDyF2XOhyDRYMMi4mjhjJe+5F7g4qWQAZIGRliCoxXg+R+WoBGd/CvqPBMu/toJtJmiplbVZJBGO1CDgeaz+5CgHI6khRkg56aDbbqxP8UDkZ6yByPb1AHz6MZ9IoHPqk219nQSIXMfS7tu/jFpZmEl2AA6soYYKqFGBTIrjDegkAedR8/fDA/HoY4UkWV085O3pJqS5RPmOVXGR1mlWFC7QTrOuwq4i70Zjq0tTBktRNHqTRNM1M9O9STVNIG+QjH4TRP0sxPiiWDUxyMKELZZd9X2qSRZW0WIRqRU2yEpUAYHdSzE0vzmlK4xSkKaMS6F6CjG1Bio1O6eTXcZVKgsWJZgxXyHZpDu0bBFLhZUVCBBHvnYXQjyoCnXyvcKboZA5BYRSHLAN7sUg2PugM7ghAWVtWV3Ga85KqjFiWKhP5OSfHuVgKbH8qfFHJ+R46A6ijKDQYNhqtOburQ4Fn+KbebxPPxlhyS7re/haeDLRTLcwoVkQlmJp4tskG3fGaZcVgg7Vvltj8mkXDA19UYh4e7LeCJZHOoRdBkgg+SsqghakuCuVVBNKAGEUbuEAiV8K2qRtlZb8xkxxxQKSZZkgjwQJUbA7c808z/T1HrbpgXcgmbtGACFMVf4eQSI7FjqbBVhg/NGb+WolCJrWWPspYkjyQSuNHiXcb1oM4q/shcINTE9uxgSzgS3jVEluFHtW7uktYizXdzLce53kwua8P5IVGU4KFiMEqFwoRsYOhHlWw4wDCBgkJgbskminVm+VRP8H9yilc5ptv8AiuceaIyMHqPQ23jX0DoOhwTiigZg3TP8URkYpBqMdfPVGcuwaiMilGBjoXVSAdFzt0AHokV2Hs6gYqSaOLG/pIOc0JFLFPTJvj2egdQAvx6M+uVsLXJTyPcMDwM8rbIw6soYYKIsYwua3FZrNZrNZotRamamenepZcU0jStqojSP5MhfzW2wOPdkkiIHyHjG2tOo1AqOB2TBhTu00TRmidvDfprGqghGViO4SW8DUkGtCMg5AGa8EgUV8+MD5OOmSaIAUUvcZdQIJvihBggtLBknC24Ca0ttCflFQH2i3iY5LcfAw8f6Q/8AwfhbgoNE4y5jf3SW8y/As2AIOjfyoYjy1u4wai415QcJxjhTSWsikqGt5fijay5wXiKeKR2Y4oMPigS6kNZ2UTOC0s7wsexZ/imaPxcLccbyaYN9+Ev5tbixuLVikmGzgImZMMVBGKlQj9KqT5KoF8uME0YypwQwWu6xFYabzRRkFJ7FLUHklPiBEjHiW4KkYLPcMe3axLEMpG4kIYpPGxOt5c6e2G0jESbGO6jkJAyowV8oC1XM4fKrawLbgyzTTm4lISzgWOMBJbkKSKgiLnarffYl7/vic1bNJ2gZPqWOxa6vVghMh4uzdc3EzKD4q75KK1yqSXLzPs8kmpIoEufc5B8J2giedWU4RIV+BnPw7gJsSwTyIMzvV15IUY1FNq3lVRc+P2ePOeuOo9vjpGrLnbqemT6mAYYPTJz0GfSKQhhnoRn0Z846LKjMUHQHPRo0YgnJ2x185qe4WEAmN3Z2By22PTcWkVxjuAY6yyiPGauYfqISgjiCKB6oJ5XlZH9eaM6g4oHPXPqdcirnhoZ22a0skt1wvTNZrNN8VGpBrNE1ms1PKI0LFr+5c7CzvDMp3lvHZiI0uO4tSzhaKmTyxIUeAWJpw4GHMieAUUEEqAfmlLJ+klh4MZaMHKkxeRNIJcKdVWmLOuoAOvhUYikHyREPAqRQDWRkitdTglcDIILeAIpZPkW+PDCFF8V4UZIINE60zALklhjND/3JPwMAkV/ml/ydyP0pdzIcKOVukySvPSBQT/rWv6l5WydsSLc8RN4o8PZXH6G4O5iXWKW1mhGHS4eB6syt05Z5bkoxFC8tScHtWjZams7VFLhOM+pBdUtlQ4pYmU+xoJHJzgwmrHn7u2Hut+WseSXty334VR8yW11ZT2rlZJEyAKVCgIDAKPfvtREjGjAyrsVjdvFODnFIVHtqRxqRQJ/iIFRTPIwwYIlceYEOAV7imsYbJnuEGFS2gWBCaudpFOtlEFbJGiEIJpXExjjhCxDZp53nbRLOzjt49ixwMFHWdgyRFixAODggAVI/c8CSJWId7SJuQn77ySpCuXvuXeTKQvKBmpSFGKxnBrUY8KQXwCwNIhzvQLGPLBSp0q5AjTIOW8VAwgTFSuDklPJxUQ2JqDtsD+zB9KqFGB6HfUZoX6FsUrbDP2B8VfSSIBpas7Rgv1QFVwegGCT0ydqigSFSqdGZgwAwc18VHKkgylJbxpIZB1BbPnoMHqcA5PWR9ELUPI6mdFYKxbBA6sgYFTDCkCCNOkMk7TMr/YaRFIVuj+RV0JRcMDbbdsbemC5aSTBzWaz6M9SeuaJomiauV7kbJXblT2mI/TqWdWbJ7ay6ghc+c00oHzlXrM2+oJcMWAZlOVwIz7T5G7EZamVAQoAK6qSQGyc7+aKhQRQQAZAQMDUeTSISMKQQ9Mg3onY1HFIfNCLYeYwqDIjuBJmiSxxTF3GQQqsAzMIzTMVBNOMDNO7DUUjyMSAjsGOYmTUmty6kLJ28+e4inFbjIpyR+nyPmSQq3tZSW2MenkqXkkbNW3JXVvHlbT8V3anWWLn7K5Os8UXHzeII7HtxlS9gUUkYmAJK3IUbSfWAjCLyJQayZtZPk2z4PZeGQj82WzDp7UsXIysF89mAqR8ra3a6XF7+GY3Hctbyzlt3/N/XQiUHNSA6Gg+qEUkuy0zBDgN4/VGrD4jAydlYt8FWBwYYGLVE7a5ZpVQGUPcsw1jt5xHUkzg4KzFkyDO2uUnuyV0RZ5UGgkmkkYJUMEdggLJfJqTIUkuMMUtwMkqVkU4SNUAAnCRqWkXRh3DITyMvajnvYbJNFur2W4JZzI0hxWcnBXI+UR8+CIz4qOHuNgxIgBKnTHh1jPuaRBthVUyn3pa6+ROHFZLeCsWFxSoT70jiJ+fRJKEFfXDNRTCQZH3cekEH46SpupFfTS4EdRLquKJAGT6B68jOOuDms+aPkYoDAxU14sUixmo7lHkaMCs0yg/MMEcC6x9JWmDqEHoAoRLqVIodMdA5LlfRBJI+27RK5BPj0Fctn7F7cvbqCg8jPWazaSUuOpjUnNAY+0zhfnvqazWazWeuazRNW80rsQ5amenYVdBXApFODqPensmk0GAC2mR2y1BSnvoEvhw4RVyig/ISLI8S7R5oHwGOrv5Dr/k+7zTYAxRBZsssfdJ2gTXIogNRjcnA7Cf8mZY08JOGTNPLqM0+zR7VG7JGCDJJjNRLs4JKjugmaMDy2xUb1Jtt7pGZvbQMseMvJJnFEFT7zdb4DHtjwEtzrtWXRtSiRg6jOW1rtESbN2iT7oU0BFaqBkuqt8lP4FKSpyLblri1wVtvxUh9tylxYXQyk/HJOuGvOCZPMOjA4c7MNqErouVg5GdcbLcW051Z+Pk/XA2yD859dd6tuTmtcFY7+w5Idue//C7LmS1lt5YSRKo2oKG8M8EZY41cE4lVU/QJSckRyKF8bhjlJAzDIW49pBGgJFEHfUSRtpTtsvtJ7Y93fDTCgroN2WVS2UEbzZarL6eL3G5cy4dY/I7z21zEyBh3V/l5UgQkB2PmnZ58obi4e5JgSTkEto+zavKWY1vk7B2YjyoxgVFAQoFCJR7k+MsDtkRq6NGMqAjYYSRS6gtIDIa/jwHYUTXZBO1KhEmFjMqOcoX8qT6LpCRQwuQ1gjBfPpPoCgZ6EgULhCcUD0x5z1wMYHQjIrxQNOoZSCo/mjS5x59S/wDtYFec0Jl8ZGc1526lFJyaVEzuBQz/ACwDAgooRQoJ6YwMDOB5UkjzTAkYFGvikcOMjoM48wXMkszIepz/AB/7TIsmMjOT6GGRip7aYxKkX3s1n1lgKMq1zHIPENUt72eNw1QOWQE5rPTNZrkJLgMO3EXMY3LUWpnp5KmnCiju5DMbpVfUBTjNHI9p3Zh4yQcGNHI8LlvbSgK/g7DLCBkNXBPgBZSPZWhQ+9lEjB6kjyMIFTOGIjbNIjj9UhRCASynwO5IvmvqQBhiyP5ox+fZkgZcsockrnY7Suq+Vj7pPgoSSCQaIUKEZ0BbAY+fechhiRCjA0Z3IySyP4JWINitpDHiom1yaVA5DglY5PBJycZ18ncYqR3wCgLKNmjfZmNJIrZAkl08BCMBmABOQMrVvyt3AcrbfinzidTx/JplZuAmgy0bwgMS2vaXZmmQ+ahknRgU/wBVjmGkxtInGYZUaPw0dsXfNWvIXVofKXXHcsusl/8AhmSH322rI+JHkVWwNwaUpWoz4kiePzRQ/NB5R86AnFAs4CqFYHSkBQ+6PTU4B3ckkAODTwlhtLHmV/EQDlhUcK2zAGS3W6ULQhRUK1eWBnRGilhmiOJLGJo4VD74NXN5KzMkBk0j1Mkmyg02T+gA+MqCxKxqUWlZcZLSZJwnsXc7iNs0XaVThV+ME5JasigM0Tiizv8AAZmOii3kLYoLqvmIKynHoZc12FJzSqB9y9YrH4IUKGFuSU89AMdSwHzXnNMoYEEAKMDrnqpDDIJI+OlzE0qYS2mWVPGOjRqxBIpgjOAad5RKoXqudaD+dSfApECA4GcecjPSQI/5bFljHmlGox1fbHt6M77gJip5u0m1XNwltGZHRg6hh5z0LYIHWC6inyIzbAzib0krGcn0M2BmpuXhik0MMwkXI9Jq85eK2bU2l4lyuy9c0TXLXRt4iwN5cJ76e1N/EGq24ZlcM8a6ris9c0TRNE0zUz1JJUs5J1VtU8sX2BZZnj0AoDuOAHjwpNA+cBsnICaAasqxg6hUAG5RkPgl8HNJK7nIffat3+KZFGNkViMRrCFHuMyquV7ryEqHTUAMzunuVJHlIBMGfNKmDsHLMwAZjjVYlOjF0UzH3aYOKikZD7diRTn2imKfARHBLBCDUmVOGw7sBRYv4CRsUOUC0mWFKuucBdaQljuxDnxUhCgZOrncRuCMJIj48aAx4QaInjZPGUU/88gU5I8nP8Usik5Iu1Huj478Sz2o1uWaw5hMC64ma1GGKsowtuwR8mWNGOw7rgVBenGjiBJk2jnSWLAW5wkeRxXPzwntu30HKrg8jwMsGWUwsRigFyaANbHOKYksQO4yjBDZbIBxhghDN50j/kSKrajtlsMTOEH5BlKg72sYIZ6SSWVcqYHeM1FcxQxg1EcnagwqaRAPdJfr/wDqlmeT9ckgximyaCt5JOzEUSzn2pDhsFYMOctEiKVKAu2QsL5yBAW+cNEGKoAo2cyZ818DyMisGSgXZsBYpEOFIfUg5JJUuW+F9eR8dc+rYZx0kjDjBSyRTmlGBgVmgepUH5Jx6EyB7umOmeg7vdOeo6ZHQ/HiJWxs/XNMwUZMehGU6RTpKWCzSrChdlVSe4KDAnAIDeDmo8Y8VNKYwCAwNGRVYKaSFFcuKNMoYYJZUGWBDDIoZz0VWDEmKCOLOnRUYOzGnPtOsXuQE5OfRMMrU1vP3HSuOhaKEKaz1uI3kXCH4q74+YzmSPjLNrdfd6eQtRcRlaThpi2GtoREgWmKopYxzCTI6k0TQlRiQpamemepJKlnMhwskixgICzSvqZUG2Ck6gUAzHZkG+QqlmUFmZlUoFlXcAtKgNNKhFRHzmkjycrI/Z8VG8zA4IP/ACQhRgdw5wcnuFHbKnyB213p9FAwqKD7y7uNGwEGoWMRZappNsZc5G1IkbJgC3wKyAh2Qg1sM5olRmgckhSzJ5oybnLEFMPWGL+NAf0QDGQSgA2oBnXBRUGWYP8AwomXfajI4QsHkc4yZ8DFOgONE2pclcVLGStRIFUV4zSnc00kecUJcv7ZSMgNlAuA8rEavaTkvtVh+JHX2Tz2dtdje2ubF0b80RNJ4qVGCVFKEqFvBVRM6fq+niuV2Sa0KNmpZDGBpYfiSWL2TvZWfJLvBfcZJbtiTtH5XtGvpsjx9GfNNaMCMLZSH4Nk6HJaFf1MHEfxlcA13F8B1LHApJpEU5FyThJJ70iP8q2nCYdku8DBN1LrhXYt5Yu4+M5BNH80ZIkZmApwZPCkCQkUsLLjCOF+RjGRJmTyE8Dytx/ABfGQCEHksdsEZJwWUsaZsCj5GRFE2M1s8aklS5GrLb918UQIVCr68DOfUDSrgk9PGaDgkgKxJIPQdR1YZ9IYH4pRgYojIqOArIXPpZpO4AoYH4ltVkcP0UYzkM25HTJzUwdl9lxcSCQRR2jm4jIkjRY1CrRYL8lkjyScMPA8DoFAJIKAsGogEYKW8cb7r0CAEkFQTk0kiyLslGRQ4To6w3aNGVRUARaOQPHR13GKDv3NeryKmNioNKAowKM8YfQ9eylYx68es1qOhAIwYoUizrc3YgIFBsjNE0xq1tDAxJd6d6kmCjJlmMtTSNj2ylwRTJ43oDzmi2xypYBRWoKVI4ddV9zqCxSIDFF4tDjU48dwIfEaP8kKinFNJ/8A5Q9pqQHOU7zGUU7kvuO4HGJFYgArEWLedVLE1g9wmhEmnvR1wFOkYOBl5GwBbsPK4z7aIVBqN1J9yEt8eQchEJBpnONWycUQnwipltq7TK+QWdWJqONl9x3cyCgcNlw+q4VdF99EorbBF1UU65fKlyx0K5LDHdbLIQNwGoKACKDnGiAPtSodip092QyZbLiGH+cQoCKWdBTXAT4W9dSJFj5+QJiUy21wC0U28eRW2ADQkJGQZH+A16dAgiuyntZ0gm/R2kiI3W8ijXZLXnoZh27m64KOYd20nia3ykwIYeMqPjTPx2SjU9ujkhvpFX4+mRvFPYx5o2SDIoW4jINNGGGD9Og+TEi/G6jyDMMZHeJJFGSmmBXxKy48BN2DEKAPDOdioDCMeEu3XwFmLqAHkzlQntNd0hwXxs2SWFbgnzih4r4pQ8mSqwDUqwnESYpxsTLL2/qG2dpxAAisxjcCL7ZbArPowM56F/frWcHHRjgZqN9lBNJGFJI63JKxEiB2eMFmUkg9EiRCSqEn5zmgTnBNFsGpphEMnNDoBjrMXBXWsj4rNOO4uFAq4tzNLioIkgjqKVJF2SaZYULuAP4dA4wygD4OSPGvu2MKMi4brd7qvcSxlklizJ1jjSNdUoopbboqasdanacMva6HIHjpGsySuzy8hFEcH8m7ALdTaxmXu00rCRUHTNWdxNNt3emQKz90ms0yq3zmi1M1F6d6mnC/MkjSHByJBpRTJ8BmQ4ooUzSKWBKg+dkSIqCWwCCAZUUhBqHGa0ywdfknPacJXsX4aZsg0jOp2YxJ5y8j4xX5WDmMsMKsURVsnJzmt841d3chajYMDSw6eQEbXLhMpmsIGBC7K+wFuIvdRid2D0QnkMSBgjIYZV5HYanwyZoa42KAFTgbByTGz/8ALul29rYA1rAxQ1+WAiBOR5AFFBnFMA0ZUAnFMjKNngX5Yn25LRgN7ioAGC0mPaREQuS5Ebho99gTWH8muyMhqeIUUGPHbYnFFMt5aMkAUm6HNZx7ljvGRdWRFY7rJs2QFYg4Ptz5icqc0rkMWpL+QAikeKTIqazYjKWt1d2XujtuZtr5O1d3f4eyN7QxtE2s0bRgeGbJJAVh85IFEybV7m81kA5Ic5ovWM+aHzim1DZOV2LMWLLku48gMEyuuEiG1D81xnZv4CArgsUAoKMYqMEjtiVQjChu6g0FVaY5FFs4UHOmqqhHyCKdv4CPGuaWRU9wjmUuJJHnXY4mnGgEMLHbakfDkN6znFZ/z1JprkKcVHIHGR18gVE7MuWDZOPsg0WxQuUzippu0m9BsgGlULnHTusZtKb48QCTT82vzAPIrIFTu6RlkQ7RgyA5rAzmrmVo4yyWxYxg9CMitQV1MaRw+1XlQOI2HRAwJzqMYEcfaTVbRp2U99RgUfGWq2keWPZ6dNkKrGmiBaIyKX2rhq7q76GpAxQhFzgZdN1K1NcrAMGC8WatgTrUELQqQayc1N+mr4gzt3fw/K5yKgu0nZlX7JNclyDwuETjb95mKSem5d0TKW7OyZf05rNS7FCFs45I2OWanenkqafWnmG/uyxBCoPINRqWyoUqc0J8k7KrocUirIAoTzlXSM6U6qVHcjV/ITQYwyyeNaadidAV92xbBJK93Wo4V/WJXUnQLgye0DBOUMi5FNLgDJJ8YMR1K0kMqrgkMuocgqpNNsF9yQTOoJMEpUg9h1Zdp5FDhVQrUkUbtkpAuxNJFp5ppMPoJZEWi7a1EMHFNkNR1b5SM/DCNNajt1ZdqJ2Viq5wAwxH4pSM7UGMoIUy6YDnf5os+2An8mtS5zWhkPtSDYAsEwaGuStRFAMAAEHDIwINLBtkgREfLp/B0z4CrsaIZHNAL8GIsHAQOf01jbyhX3ZKsfNbYOChzklWGKimkjOQbsuRklH8iDkrq0OUTkLHkhpPefh2VPfbDuRvrIkgOaKI3kan4DQspzR93yB8kgeKy4UtWZGwBkA+TrEpKyAE5WOPZDhIQ0mtSH3+SNcAF2AppGxsNjIda0cnNJGcjbRVppCFyqMXFSnU+MFaUMo85J+CQBSBjjSSED3FCgXIJLNilheRyijjxrqJMOoQSHtrhfsEBvmgMdH+KON22sc4PULj0ZFZolsjFZpyUbahnPmgAPicFkIAXZQgjXC+a2yuVosM4osB8mMFgxqVyqkhfjo0W7qWpkDgho10GOmq7Z6TziBN2U7DIpiKRw5OfTGqrnVcr+pWDZwQCMUKzQOR5jmjLGNXRXGGyAKAVsN6DXKyMW1bhtu62ucDyOj77jBGauOMimOWtbRIBhVAX4z1eANKsnrvuNW5INWPHLbZP2c9BdMZNazRNE0WotU0rlxGnebJR5Z9fAcg5zGpB3BCkFwihfdWvkkgLrmtTICw0GRtIykaqvtGaijf4rGpwu4GRStLnNFTJilHnNMNm8H9RWtQT47oAxRYZGHRy2yjAOo7QJGIOPUA72sS5OBGAK0qe2EgpLNs++SPKa1BGY0wyup+AQauZxF4DRu3vqHck0jsM7CcaklcN5DRvL+kx+0AuoQbGXTXzsjU3mMUAVxlVZTkxyBPlFWZ9gI1A8FFVs1khSo7QdRsh84IDYOHII1oRFT709p8yntrXeLjxHqxy+RsSS7r8RsHIasVqKmCAZZ4wwICoqgKGQPkHTA1YY/Sc5Sl9g2C3ePEmokGU1+KZWz7Q4JONmoN/kHHylwAMFwjHIt+VurN/YnJWHIjS4vPw04HctpBNC2j5bGaFxhclLlXGGMcb/oaIqvhogMFiSfC7F8he2w+VnUeC4DDYMTgAQFKZPHtCsRg9sAEUoAHjIz5DqcmgQRkxnZMmTw3jsbNtWFppC+FCrquKAU+WNx4wu+clo4u4wAa0ZV2VJLe1jxTTy3ZwFSUnep71XTQfWvX14HyvIRH5W5ib4BB+KYZGKHjx1K5IPV7dWOaRAowOqjUY69tQ2/QRjfehvv6QzFiDigFzihWQaUBRgdJ98roOjBsjHoyc46DOawKyc0QGGCSVIUdDnHh5Ag9wIfDBVC5xkCnViMKiBPh84yO/OtxoBWOmBSRInxUsayoUaKJYkCKTikcONlLhVLGC4juE2jubXfyscEcIzSkYyKZtaViSQekzyrr2+sKyrnuT2skk4kHqPozWepNO4FfVJnFBwa1XO1ZomiaZqZ6nAemPb9oZsIWoYLAFSFXAYlcgKQxxXaZV2rPgZGAxdc5bIjhUHYhv5LyYYAbqDqV8HFMwGe4YzmljZwVXsMGAkUNsdJlGVB3RHbCtESDWxkYpHBaKEClY1UYGBSanyvj4rHSSeOL5vpgHUD6neTtqbXCnRLORmzVzJHERnAIqaExSEKYyCKWyldPzBGAzFYI5JZCiSWs8GS8itnemMbnxqE8gzKyBakQIuadMxBzIsRHmNAT4GMUVEhxQbIotj4wScjWRiAqWf8AntKR5umjwQi5J8rZqVyVgUArTQIuMm0VKcFfmFyfbUTMWKs7dtQWTLJk/T6nYPHlcVcDAqJNwNnhChhShVJFFS3kBCDuA8g8PjYflsMeG9q5UdwBwpLgDIVv8hjSSLrqcsudrLlLi2Hsi5ixvx27m4/DfjuWk9vJCdZUjRhqTE8ZwmSgyZZ/ghWjPmkAxlAhaQozIuwwI5Q3gkgeVRfkLROAcFsDND/06k60YzsFDlkrP80IQxyHLBQKLtnFRqp94yAPJ1Y+3Yg1BazXDAIY4bZNZTeu66Roja709ywHgSTyp26tOFwO7ciKUfBEw+Syf8+zBJ+j6eVPKLdzx+HS9jb5BB6N1haRgd+krSAjUEEZHnOejEgHAJx59Ga87VkegKM5orltqCIhLASigc1g7ZodBRz/ABI+i5pfipYxKhUouDQ6NDN9RuO5HJJgA56kn+KOceJYhNGUeCIRIEAo+BmomZsk9Lh5FH5cZYj3AYrPWUHbZVPjJ3FSRburUBiiikEGKJIl1Q1FLHcoSJ5lt4i9RP3EDVlt8Uc/wc/xgZz0JAr49MjFULC0uGmJz0P2M0TXK3TRjVViLea4m4dwUfNM2KN3LvkM1O9STU8pc6xuw12qR9x+WhKRnWMZjw0bITrWsSLldyBuEG2SBCFGCfAwGwpBJkOuxd312p4dTgJErKTSRl21qGIMdiiGWShbNvkvmJ9ULPKSxih7zDWWxbURpDbrEuAoqeFpAArbwxsZbBlZDVsrPMWM8zo+qwQSiRmeeIJL2qkh3nC0saIchMGvgZpBHdsS1xMkbaVLJNM2hgjjhfMk8sjLs0dv9QwEVvapAuqa1yNlGsTOgsppU7gjUAHLw/BVzJHkgO0yAVIf+NBRrSxhxUY1zWBjA18VGhBAECASYMkaPhauJO3HgRQNMSKNsTGQbaRl9hiIYmkBySZUA95+nXSpAFJCwOSCwUAgGpxP3AIwPFLD5JNwshbAVyrYqVgUykYEnwAQ2K7UYJWmlj12qUjXK93IzWEGaMeoyBsnwJQThlYMCFRzsNdyx8ozo+Spxk1a8nPaENHBz1peL27u4/D0NwDJazWd3ZjV2aTt7UJGZTl7VWShaTR/pEMgxkRuG2IUCthnFDbzkyeCA3+Y8nHjLHwhl/gNK7e1WDldaiZv0t8/BDliKMaHz013PmGHce2N7dSxcXkpXEMdtJKC5WYxvkSu0n5i2PEdwGSaDsWo/KaPutiYow/SRN/BmnX5Eyn9ayL/AMRcfw79k/CyPH+hb1h+oXaH5E+5ASh1jMjMwcAAYFZppcOFrNE0sgPxmlwowM0kiuMqsajPRowzBisquxUUGB+Lpyq+NiF3EBJXzmmZwRr1921BwWK0z6DJrGRilUKMCorQRymQBQowtfAqSQDCithnWpY2ZMKNScURmmPisEHNCgwJx0fVXBYfFFRprUIUIAtAK7lqnMqxNUUzbrhX9uSGBGaPxSHI6Yx8RIyDDdEkDgkRXkj3bQnoWCgkwzJMm6em7EpTEMe2g36fUR9zt+i5lKa4hcvGGJonpylq0o2VDKPA462MKZbNM1FUB2pnqR6lPcyoLsY6aIgkqq4OTLrnCsMv7pYwqgqczDFRp287sQowrHxRkVUyXcZArVv5k8KBSfztFGoXZ1hJPiCzyMsmh2VEuQg0Zo8kkwWncIZ4oVQYULWKe5jRtTNJKJdVMwmcxSW1osI8RWzRzMwxRFGFNtqEX5xar6RzLoLC4dZNHnvYo1ICNLIgjiubMQx9xjGIlEwM0kmWNnDNMAjQwrGuq4rFcgqmBgePQrAAZ7CGbyZ7CaHzTIQuAqkjc5OKAZwNYhklqIr4phQIhPmRxL5XJkBILSO4zb9ogxpJHhApulPc9sUks2AFRSdV1AHkopGVuYQ6FUlha3OUjY6goFx8a5FKxCZdQGXNXFuhyaFqyDdVdx5RZsqd0eNaNqp8uYo1TB0aPLC4Pt9vkIGUSqynKxx+QOw4zRZxkhJjjRjMATjuAHB7mSMmX5q15Ca2OYrT8VOVCXKrxnI//BccXJBksGjJxTr5oriiA1NEv8GMA5Dlc6lSiE0GVgQAFQZoEBayqtRCqMgHz4AD0Iwmco5bNAeKJ/guUcYCxy4wVtXbZhPCyRL3BdTyLpVtw7SR9w2nHJCdkFq7k96K2nUgqk8K5B6SzonyweeltcfJtQR40eH5EkT+CYFPwyMnyV/kJO6fEd6p8MCD5HR3CDNZpVkEpY0m+TtOCUIFujpk0hJXJqOIISRJsEOluZFT81JFcZUmlUAkg+aihEQIDKGFLaRg5oYHQ/FW87vIQegVg5YvIsal2STdQy9JHQyKpoqSQaZA2M5GcUTgeNEZsnPnFYGc0rBvIcNglAqROZKVQowAuCTRYKMkY6XCxNGe6MOqlJJFjUswxj29MZFS2p2Bjx4wejsygYhdnXLdTSRaFjWmH2BUEg1LKkS7OCCPENvFb7FKzj7Atk7m9ZrPQ4Pzms9CaIBrtrXxRamenkp5aeQucLO4X8tSoYAVImDX/A7dzAyzMZcYZVU+0E7EK587M/5dEyHJo7ZxRUlgaaMq2SQ58sLdsbAxS40MUKo2lW8+CY3Mvbc4BLAsY5ijEGC5K5oTKq7GKQSDImEokyO9bTSeRjFTW0JkEpimR/0jrLkIxFtG+4c3tqrrtQikUFxxlnkbv3YhnDzi6mAe4RRJiJY0kkVKgQBcKBWOnK9sxANYxKkChMVipOKEkjOZ7NoM7vD4OWBVNUQarjp80qlgXaykEcpZ55d7jKBHTyLSIBjvHGq5cJrMgdlZZQa1EEvmJyykpGSfNKJC7ZSBQxIcrLGSqFrc7VHcDxu2QMrEh1KyRqPKi4lSNzhQGFXEIT3rCFEoy8aYOe3KAFpbZwC0iwtgqRZoG2XsBWyTbMwNSWxAw+CuVG7qBkPtgH8sk0IhnYtBX0zVHZl8U9sUfRooZUPiz/ENxbEI4uuK5LybribqFd4jNhir90Y8NNiiRjIwCa0Gc1gU2CMUqKPggGviicCiSD7Tk4zkEZGa0QKGeNMPlGLMhLSTxhSiW/GzXRBqysBBuDFGHUFrhpMaxw3UaRqWk5q3B8NyzTFljkkWMZYyyz+Ejt1TzWKx1mtg/lYy48ASq3taWMp7l2DeGMRX4SR4z7Y7pCPcJUPw7kKSI2YrliQoyQwIyNjtimcAgEDoG846Kwb4ljEq6kAKMC5cRsHFtL3VyamVnQhVBAANBQDms4ODSQohJDvopaopO4garzuafl24Yx4kAwKGc5rbzisD5q4uO0QojLajcnAqEhx3DkA0WAqONY84z5x0IJINFQfldz81PEJ4ylIuihagFwHbusoYYZQFGAt073BiPnHg5wMEhAWMMyzgPHStt0IbIwRk56FipC9VEm7Fq8DyUdXGyzQJOuGRQg1XoyBhhukzOEJjiLlAX9WazWazRPQmiaZ6aSnkp5Kllz4EhSSJcMSVDNJtjIjVQNgCxULSRCRclFCLkbjPgyOfIJU+KAbDFpW8jEcujHJheXzQQvhRjuR7Ik7hgja/UPmrlmTy/wCaQHMMMrgBY7YxqSQ2gLtHiWXxZwN28SJGqDAmTZCBDbTFwrHwKmY3TspsEMdziMHoTirq+Ce2O0leZSWksxJKHMnmQQ1d3Eit2Iksjbp3p7p5Zcu0LFTq1lGXnyIUwKArHTlD+WALXJiXOOpwavbVIlMiBFmG8bjBpf8A0KCApmj0UAfTNI1W9vHDVw/wtQl4pQjttjtxhhEArLCGk7tX0RxkWc0rYjpagWYFi+AfeCpGHea3eUeIZSj9soSfDPEJF1YJjwDZKzbNgL8uwyEqaJ42IqEucARrqPJRsgkYyVqKFQNhpTKM4qSMMTRUx+aWGNxkHjz4w1pgkBrWZVyO3OGFN3l8ETzL5pLtjgPJGWHtVCfkL58Wd/dWozH/AKrbXQxevwsUy72N1aXUBxKXVfFK2a81gjpij8UACK1oCjGrHJC4+M+cV3VUagSTL+mCMSHL2ycdCMluQgjOVnv5n/8AhunvpEG9nY3NwdZIOItgBtFZRRtuhQHKUluWO8oGPXJErjyEJ9smwj9pJUZA96rQT+RTArQY/IS5cfKXSN8jorg0WwM0rbDNSSaECsZqKIRDAoToX0qSJZBgxosYwOuRnHR3Cuq9M0WE6lUUYGOkkYkUqSPbiiMLhWkZSFobZpyANjBdrKcA+G6OG1OrW4lcOzagbMjRzYlWVzGhcFBLqx85ogEEVG6Ke2Omr75646DP8yBywwiqowtGPEwkIPzRkUMFPWZO5GUpRgAdT5FWyOiatNKIYy5hlEqBxVwjSRlVto2jTB6ZrPR3VBlgQRkHoTV1cCFNj/qc+O5VtciZAwzRNFqv5VDqGidu2NnenenenZnOqq6RAigR+hnUO2IwGZsJHHkEkOoAADMKeQt7WEnnK5Ytk79tzqu5JWlQOcBpI42w7vKwFQTjYIXi7S4V7sLECUvZApYXE5nORaQnAWkhWNcIts5zvccY2cLHbiL2VCuqAUOmtOvip7SPu1BHFbYWpr+ONtBFdF8qwuWaQpK0KRukcYUD4ublIUObdmgYSSjkkycTTzTsHI46Ts92S1sYbiMMYbNIvChcVjryazkL2oNxENyaL1vW1c1cjAhCFkYOFYSeGMfbIJMDze5Qknc1Mkjq/unTAOEgfIahKSSHgKzRgn6qMgGs1kGrxQHEkdpKJUzSIMAUyLjFMpNPEGODdW8rSey0maXGYwwJzjFMmWzV1pJDstvsUDPPZ7jZ43a3kIKyKUDswdm8bJjencoQKY4zr2ySCTb/ABmaNQMU6mBshPIBXsrnIlJRc1AMA7kRg4qS0Qija4YBUiQ5DPaHJFaa/CLk1kxKMpK5OUtueuIV1ubiXjJRusyW7HMZAoAZoCA1iCiYaJT/AI7OPjDgUqa9BH78OnHKVybe07PmhPb+AVigYZWM58ABtstdw3UjlVic4CtnIyWYr8uxL4UdCwHyZ4xTXcYr6xa+rWhdoaa6OPaWZ/1BE/nRP4y0de0+VZv8/PkYodI5WT4SUSDFRRCP4FZoyKPn6iKmvIx8fXJS3MWdqFzE1AtvWazRJxUJZl2eiQPJoBw5JAApWySOpbFYfbNBxjNI2fNSyIi+6GFF8qdtgQDms9PnIKlVOgpWDdI1ZSxJjDEEgPv0DqTgVKjvjShMDIY+id3uHboY6w4bJUq4DCgNcsY3WdQ6X0EkygRo3/HoN9znrkegsAMmOVJRlOs0QlGDGgjQIOhrkYjLGQBdyC3+nPHxGKIA3TMIjpE2HIQtThWbYtJTyUz07lzqHkCqRHsNvbjdd1VHzgsVGAJJAynZQJAMynJ9qIiN5ZwGyiphAwkhkb3khVBEdtJs+KucrLmnaNlAqFRCQHa5MgIjkikEeGUMdgbXj5JcNJFEsa6q7BFJqyaaUl2KZq7jiZgjKhiTFWt33G1Ikl7+tJPG5IWS8UZCyxSTMJKgs322luLJJvNXkItbcgTM2AI7BHd1czzLCmxDRTMzzSNLMA5MEyhXXjbJrdcvcyGGIuLKUzRbH08is/tMduriJQ8jairvktG1WLlG2w6zjXariUzSEldTVpa901MqhiI1yPfEBJIS9MSgDSPLMRsBGswDtJNbqvbX+SEykUXj6yQDcwu8hDCWIQp+UiPbTAyRMS+8cgGpLHPjEaRqxw3+A5MMvcW3dCmRE5DMz4csCAlGFTjY+3C1eWspk7gtpMHykiSqCHA+WDA4FFVPuoNGcUxCjJEZXJXsKyHOGtX1dXDUFZnOTHjONGxWSB5wpOQYv4ojXNSMrU8ROBTxkAqN2Jw6mJsAvZsxyrwzRLllYP8ABodMODTGQZNIZG+WRi2KU+KjhLDeMOze12Q5OFunjwQbpCm06RW8zbxiKeMFUN00QxIs63EeqJvGCaWXb9D3kUfhpOUtx4p70D9JuHY15Pk4H85A+NzQyaHismsvXvrOPnYV4rBxWCOhBoGvmgDQmcCmnc1uTXwMkOv8HFAChpQGfjLJ8CeUULqRflbx/wCVvI/5WVH/AEsoYYbbpmg4NEmllkMxU1gn4rsN3QwuIUlGHVQowJYO44aioikDE5YHQfFKgBJr+anWRhiOJVwdaBB+KeGV38+aSFEYstFQSDWaBB8igPJNT3fakVAZFBCms0CPgZ6ENsNegXBJ9F/eC3TJtuZ3fVo32Gety6JExe0VVQ4rPUms1ms0wBowrXxRai1M9M9SS4oy7fAieQ0fy4xhGVQVCRAeT3I0+C+DlpGKgauQcKm+jZCyAprRdWXUhCMGojEq+8dmNt6DdsE1FDP+tXt55vL2y2+fffSGMArFcdshSkgmYlbW0j7hZ53Ma5Cy/ldwwutwuTbiUZEn1MYcoXaO4uFx3Q0nboRul0FjmtrgybJFbJESy3LLbMXVp7qJlkkRthmsVd26yxlWhtiJQtIjWCs5jnFzORJaLAS3em3jnMdcfZLAmaxV9c/TR7Cyn78Qemq85FLfwbbl0lbUo2R05OIPGC1smsKirrOpqAAytteBdDh5SIAlKqtk1BGX8rZxOsADSJNDI2LWwllcu01u8TeWknnOtNcSRFSUmbzq9rFLBtHMblAu0zMYytSXiNAEW2ysS0Rsm0l3Ck8Wy2N1IHSNkBAOXlz7UA8CmhXberyeKIlKgvBbph7SSRxs7DJwb28MWFRL24h8vCwkQMJkD+xru0MfvSCRfLqrhjimaMssNCMKuBgDFEfNMpbGNPNTQpKupjY2z9qRPNAUWB8DZQStBBGpwImA8dmjAqnKmL+Ga0UAgm3UDCS27RklipNGWY+xknSGLUBomYmnljBwI3Vq8H4MZrXFCL3Fj/ODIzK24F13PEsd3LGMoJopF1kE7qdlnu5D4aG/ni+G5a4I0fv6tshu7k/DTStWJDXakNaCtBWgrStQK1FFCa0oKB8Zb+NpBXePw2UPyUH/ABGRQOaxWK0FBQKx0ZQaTwaYbDFKhzk4pYvJyIjWrp8GTIrOPBSTWiiMMjTx4wRS3EifENwgcs31sQqOZJBlUUIMCadYlyYZBIm1RuGGQ7aqSLeYyrkk1LEsw1bpJCkuN5nWIZCnIrPTNFgoJJJaPaOCMRoFBGT0mgleRWUU2cHEMvcB6RRpENEIyOl5avOVK6DIJrkLrsIWpeTuIWBlA+oCSD0uzBgB05qFpI/DuLl0WO3XVAOtvcC62R1VUGq5rPTNXV2sAy1tyccxwNq2otRai1M9F6efyQGlDDImfJGXdWk/Je4RF7aiE4BVYj5JY9vBZgiZwZWzqpADA1ENgUC6J4MVu3hy8gU4WW48FRFOEXagPqGyILYIuGLwxLpVqylDQWAuWN3cxSjQSzqiDV2iaIaWkaqgp7mJG1IlQtpVw7QxFkWOS7gBqKyw5Z3ghiuE1ESBt6IA800oFCQGrvQxEMEuJ1EbxrqMdLiaE/ks7W1iSRNdSXTaFr6BYD2rNY7osrWFrJGv5wFYq/nEEeTZSiWEMsnxV/8A/knOPcCtrnQZrkEjKAvZ9vsr25EDCrrjGL7xmwl+ZPZKdS0eM44zs6BAkYrsrSxgVPapMur3Nk8Le4q+5zA8arl5DBARpPM7KGiuECvkRRwuMqIMgAJlmowASGRWPYuBILuYgKq25MU2gnnZZHBj2eMFuSjaO4yf4xVlchkEQaEyAZvbQygMgtbiQ6mCMIoUTRll9rRllqaFrSUOECTqHr3BvOdV9oNAAVj/ADj+TnC5a5gE6VazMjdmV5QozRwc6aNikLge8qC1AZyDugIp5EzWjk0VwCSiTOfetjEwCqOHgYeTwkOcUOEi81/oluDmhx1snw1tAsezRQxys0zpErBpTYWcl7MI1k/CyY/Lk/DF0v6H4C+UUeHvAaPH3Kjz/pz0vGzfNCBS/bpOGuqHCSsAAn4Yu2+U/Csn/JfwvBj3R/hyxX57gru1vWSemazWaz1xWKIomsUAemKzQNEUKYH5CyZ8Evk4CKFodX0/nOfFAHotEEVg/wAlTWDilyPIS8kT5iuomPlSP409+9FwPkYoMdiKzQuZDPp1yS+C+IculvI7ps8nxkwvuuaPkYIAAxW6gCpk7iFKRQihRnpbXJmZ6XAGaZgoJKssyB1okfFAEGpblInVCpP88pD3lKBobucrHJEVtIRuT4rkeSkgYKnF8i1wMMDmppViXY219HcfozgZqKdJQSkiBx5ijh3KqOlok6g930muSGHVypE9wGiX4rNFqZqZ6Z6L0lw8JbGcDyfecK0gU9uOO1jkXJMnaj1RCdMudstjQHAozYpZHPsEsR1yqvGoDgXUj5FDUyAU6KVxVu9vGo2LRQLlew0w3oxQyMY6MYtwZC7R4YlQsvmkhjRiJyEjmXAklE1RKkkpJFqBJvU0IlQoY0mRUENLBL9UZGqQ4FTSkGoZTWFkXDRQpGMKBV/oIDvkXMmImWKBe6/HQCLaaVHH1BeOw4wwnuSAVjpeSJHFl7ORZIgVYeK5GwEhzVnxWrbPGmo6X7RrGO5YvG8IMZFEVyrosJWliVBseN49WiEjxW0anYBaC0FrWpIFlUq99xxiOG7WpEbRp3HCLDOijtrIWlUotvKIzq8OQPMu6gGgQ4DVdKLuI4smFzGYnhtEhJ1+nQ4yzlWCia3WddZBYRwPvVzF9LKJB3NIjLSZfBGgzmldWbwAD5r4ep4VkQo1u7WkpikK1JGFy6y390WylpcC4Q0z6D3KBRUZpFZVxV7aCUZFnc5PakwKclQAFViSK/NbOBDggsIfPjUg4Dze7VQkjnYiNvGV93xhRmgtA4rP80kgkY1PI92SkchWc6Uz9x8Dh+OFlD59GKFSqWQgQcLdtOA6DAx6sZ+NSKVKxWKx189c+gYomg1ZrFYpT1ZP5A8eQslBqMuPguzUIj/IQCnQZ8Ek/NK5bwY1YZyKeEEeAzRnUqqSD2tGV+UZ1PtW7lR8tLcpORtHdRN8KwPwAkTUAOqSbjNGBDJ3aEj90oZ4+7GVq1g7Ca9JFcoQkRVl8ZrKrRcqpJR9lDVlU81mvHxQ8UQGGKZY5JQemp36diEzGShGg6XU5jFXsDXD6vxll2BQ+KvYDPGVFjZSQuXcjIwYoEiB0oIisWE83ajL1E/cQP1zV08ypmEHxWwzijUsYf5SBUPii1GcE4pmpmp2ppKaUU758AR7YCBtSQFWQA004ABDvvk1IExtUgwoWlUpggpucD3opiOgOWJCrD7SVLbLFbAjLxtFHJhS7OVerq7YsBHbXJUlma87sRBTIkGbSOLXdAm7nfUVI8iuoRXUsVFSMVQlbW77rFHqO5kaYoaYZqeDJpAqvrV684YqvHXRNuWeze6mmJN4RDN3H/Lt4y6wYuZfqpry9lmGlcdxyxDdwPRd9oRHu2ZjaIds1ydk1xgi1VUjCADpdmIR/m2ksbLrHTGuScSTvrYW4u5AphjCLgHYD2ihQrFYp41kUq3Icd2fFSdyJs1FcxRLmhMwHeq9iZXEtWUkrZZreSO5TakmAQtQUYwJS9tdd0h9lBVmRPcVdWzgsQ3knzU8CzoY2s2EbtBLBGkeQszFpVCzXiSALHGp1GSds6qGx7r2z76VZXROYJDIeyYqjOFxXGZ7zEfPgMhz7WMwyAZZgBXeZiVN1bLKAVtrtx7JFXFarjyMnJrIX9ezM+KVJNtnEX8KqsfjQn51rVvJoLQDMPDu7fpnleQ9mJyqp2xI3c9tfh3ju4/1EnrFY9YShqK3FbitxW4retzW1BhW4oMOozRrGaK0D1x0z0K/yCteBQy1KuKBo/4oIAcg6qPLpr5FByynCOxxRYKMkFXGa0EWazomGeLxsqIGPns+TjBqGd4T7YLuObx6JFdnUr0ZypFAgjI3AbWpAGYCgoVcLHvqNyyFtSTg5p7yJTihcxtTKHwagjK+56YkDIX42IPSa4eORUCWaLOZhcxd6MoLeMxRhDdQdwUls7PvIihR6hNP9TrWehbFfVJnFGZAQDms1tSQBZTINqJotRai1HbXSmamapZNa22qIIDk3Eiy5ywbUdrbA2rfcZZDk4DoXIJAwdCYRH7mt42kGDJDg5qCDY912kEzjdIsOdVtWUh6CF8h7de2xlCOlwngwmByUkgJUszZ31S1gS3y7NysSnC2vJJMSKt5TLnNR28aOXGaLhRk28sU35iFqW5iZyge6RHCEmiyscU1oO5vVwkjvhrW0SOP3QwJCuEismklMs0k4uyxkhJiwR3IIEDyWvMh31aJ9xn0XaRtEe5Y9oQjtVzO/Y9nGgrcDtjpfGMR/mWHaMeYzXJXCpGUohZMunDgGHNKKAq7jdyMWwZY1DjpisU8SyKVbkeOMNEGJ81aRiSNiy3KXELZ42bV9CkSjICMyRmmTuqMXdsJ4yF46VnXtHL9zWniDjFJGI11DAg1cTTtMTV5E8ZS5H61SWIRqBukfHwMdqlRgAE2AfWj8Uyn+OQt/cZEgdZpBIZuMR22MEccI0MyOynRH1wGjmXAD+PkgAqKRExst7aLN5SC9P8A8ci3KhiHdZXj2WJAuFdVLkgpkHCBayF80W92DWaH808oB0FzNljDEqLbrgXMo/UeNs2vphGsMKQxiNPvk5+BGxrtGtK0AFCPIrBFEZrWivUZrY1mgaz0IoejFfFE/wCMHFfHyDWaXAOac+aQ+K2ycU3tGQcfIHnzWSy+O6qj3NOv/FJHVcAl2+dWxXbIHkIScARSr5DElqBxUd9MgqPlB8Ol9E/gRb6++V9ELVaXJmBywDDBQBRqK2XbFAYzR+KWJDMXqctocAxdo7RWshG1WyFEAbddtegJ6DGPFNabTiWiwQEl9byH2RpogXoSFGTFMs4LRj489AwNZ6OSF9oJx5nzqcFUKZNunsBbNTShFJLco5OUtrtZ02HeUtrRai1M1M9F6Z63Z21R287VbW7ze43bRRxhSp3crTnTxXlx7l7KqCUOz+0IzncyDV8K8TRoAIjD3BTXZ1K01m8asStp3TiMxpDgIM65G8jv26mt0jhxXHbBhi5mUSEBIpbsYIiFq+6312DH7bKIFTkDtzK1QFCmUNK7wbGX/VhnwksdzEcWyogOtzfpGdR3pEYOICsyiQ3Mdw8o0S2kWTxcW/fXFQ203cU1KI9CsjXkqI0Jt7OV0/PEMTOpaBC0ilpv/wAg7SgEALZKREM8nNPGwEdsXaJTJV3EkkRV7KOOOPEdOgYYKQKnxjpfNEseJIpoYrfdE5CNo2dr6d5X3bj0WOMy1x8ndQkgdJ42kjZVsbd4VOwoVjq6K4KtyvFGH3oheJxpDBHLIrpLIrMXWxuO8daKMw1jUSJCdY09nuugbO5EwUhlyIDKS280xjYGsgnAVIi5NSwq6lTZO1tK1u9ojhAHjDEZruIZO3WBRGB492mT2SXO13C0EndisJxMMULZCSzSCVGCjGo8kxFyajjXFSRvg6FNDsyISCUuLASJsIZl8wXKRgIAqAE4rVnJBUAe1cn4Ax8k5/j2/BOBk0759itKH/KhihSIYFzc6jIAe6mwOKs4+PhwyOHGR9y7u0toy7j8Trv5trhJ0DqUDCu2EGa94FEqw84GKAx8U4zWxo7VihXxS9DQc0JKDA0RQNDrnJxQGtfNMuaHg0G81gA5rOflXratwfFEUwC+RkUEY/CRAjJwIxUXxTxK/wAoqr4WaPU5CzsBijFJJ5JtHA8FSpwaRA9R3M0BxUV9HIMOgAHjNF5mnwBWB80AemakYAgULWPOaaAEg0KwM5qTfHsRQg1GanM4Ze0WA+c0fikxj21PuUPbQXbMFkt7ZIAQnSZC6FRZ25t0KmbfQ6JdNEpEuamjEq6nFdlM5r4rNckC0RAtLy3SAK3HfLMBEquXotTNTNRenb3Ntk4qOaSF8pFaHYyz3DuwIRUGgDNK4fanBGWIBfApUJOVXXCipESPAjkm+RGCXWo7HujYHYjIAeWOrIlSVLrE8hUzQvBJmnPelEZjtDsUcoYJSkSWb3D5aC2WFNFEWJyDyOqjFQuUXIhbuyhmSUQhES5ucSCEXSzLGQ8bqi5PHxERNtaWyIpZL+1W3wy29uLpxiCERqFGKc4puRVH1P1k8kg0uY5jgzji5mi7xu76O5hC1xtuLu2/Nme3hwjXHGR3Huq24eKJtiiBRgaisdLyATwmM8fbiCMqPTfdnTEqQQyQaJewRw/liRGB2qzs9ItahiEYwAKHQUB6baSdpGEnKT3EQURchxZiXcCQ28lWypsSI7hoXYRWtlKD3GtYmhyhkfQZqe1eaJg/GXBdO0xXB8SQpKMN29QAojUeQGJznk4DPGJUspjcRdykJYDV8L7ychchpNsLX6hrKQPlrhQYy1QyfRTZAxLhkCrTW0crBhdcYmjvFZw9wFZJBJEhNCaUYDHuAHCO0zLi5ghlU9wSz2ftkjnSQbIsm7FDdTNFFstncSuDlQCMUAD5BdY/JuL9F9tdtpvbSKsYxV3cKFO0sxc1+HuJ7MYnl51JPaR+HknWJjJ9s1+JYne2yqvGY/PARPHaKG7ZHw22MMsiYxWnzkD+V3NByaGf5oms0PAzWc+oAH4BIrwfQD0ORW2aKhqxj5zRo/FBq1HzW/8AAEZPkumvmkcKPOxxkSMudWRAvgZpgB5BXYYqWPQ5W3l3XzSqG2pLfcYZ4XSlncGgiOuRbSzqcIORIOskLK3uUGgwNDI+e6pJAguUkcgD/wBzihTLtXzRpM6jYqrEElQSGq4tkuF1YIAulZAHRZA2azSSLIMrmtgazWerKrfNZ6ZrNXLzAfln3r7msYiclFCDAJpmpnqeQhTi4MC6mEvSbStqghFv4q4EzkKJ5TGeyi7q4kMjtIdgZGlGHUIVoyMwXKKXOA8LKxyIi2Vq1ieOMlomMWWEFuBq4u9YUJjtO5M5lq3XJLvcXgIysbySzAqjPESZ5nUyFls7F5cio0NrH+ZJH3LgGL6JzLmaLinz7haQxJl4tCgK3cczAGJ4FdcMvHQg5owqUKVDAIwaliDqRVhZfToQQMUaur3SRlR7eWaUkR5jJdLWCWWL/ccjeIU7KcbbJOxDW8KwJolxZCVtgiBRgAem7jaSFlXibeSENv6b/TAzEqRQjD3yTzESWfGsJDJJaQyQR6yd5AcUhzU0nbQtUXMzNICYzkevFOgcanluK7IJEZeElWuFRcSpaXsq4iAnEihjsM0cD5ulNpcd5Y9y+wBz8BvcRQcEkUcDzSBJBuHH0F3kH2RllhZZR3ArD4GADTnX5GsihjqCNhc2q3CYNjdPZymCUNk60jqH7dNqDsdF/l4gT7VXBw1zFcmcBbe0SBNVNtEHJqSJBnc8dMpMlvHfRg6XAIcZEbHPj6jAABuLiRvaLaV87pAiAmjIi+KuL8u2Eucp5f8ADnDm5k+olYYHiHLk7AY+7JEsgwRw1oH3EaBBgEOvx3WzgkA/JBHwBWBWMfGa26KM0xz0BrFZ6g4rOaFA1miCvwGz1x/Iz/NEBqwR0zQ6RnzQNFAWyXXHiofC4oqD87EEAedqlRifbD84Oq+adWgbIE5JACFh+qpWx4b6VWXKupVsVBC0gyJY3DamG5ltz4S8SeIhbZSEBajElsHlWzl7qbGpHlEihazQrVzPsM0GIbUHP8SyCNC5tbjvrtRAIwf/ACnnkEwQUiLGMLKN/wAswwrAmiyAlCBarKG91XExhTYK2yg9O4NtazUxfX2RFtBuT0JozDbWmememeu6GOKZlUULMaZZY9RhWnRBl57w5K0BBD76ZhIvlgqnDMMAYK4IB7WSNY1kDZQW85y9WXcjfU3EMkuVEFnL3W7lu8nkSC3xu7WSgR7C5ldZMN9JJN5qUS2igo4uGfL2HH7Ns8UKRDCSQpKuGSFIxhS690RVoM08SyDUxxiNdR1u+5p7LYOIl7l88iRZS03MIMhIAyZ+VAB7Uln34GmRJPpLUA2hF3cbPf8AJiPMcXGWSuO88UKRrqmKvoJZQNLdXWIB/Tc7dptOIMp236C6jMxiHS+a2GBPzM6R2wQcciPKqPNdJbFUqZTqcSlhIdrHcxjd4w6lTFwcUcm9IuB6x0dFcFW5fieyCywuYHOWAV/HHydtggSDszGUXiNLrEZ4kvICq8XOSOyYysSlUTU+4QJIpbeJpGY7NGS2Rc2sVyrgcZeNp2GglydKigCMXGMmnTI7YzjxV0kOQ0pgQnerywSePI46+dD2JIl7SZOg290kauNXk7gXCnI+CcKCSMfOD+mimDqTltgktskq4lPHzRe6A3N0mDInKwnwx5CA0/KxKcU19PPkKbaeUfnTGK0XI4njZOWn3eKFIUCJigPS+dTjjZuQe8Il6X3KwWTBXtbqO6jEkfXFAUK2o4oZBpnxRANZIoZ6YFYr+MVjqDisA/GKx0Ffx0Bz0x1A1orSg5rAaitBaPihQNF8VmiARStqayaMurYrIkGKHR5DuFEsZYeEdkp7k/Aju2AIZrvK4pp2K4GtZIGAJFK6nEcpyzW/b9y2/JyQnWQclCSBRwaVQowJrhYcbQiQA9yrqYwjYRS7jNRwojFlqMvk75ogEYKIsYwoDiQsaihEZJ9CySmUqeuazWaJqaZ0I1N5GDipZWKZjR209xemkptdt6M3+TID8O9ZJIFW9sM7yTH+KlkwmKZnl99TJHHgrq7+WWXQ5rYvmjG5GwRMsEqCYggI2ElGQ8kLE1Jdu6ECHvRsKWeXvGNjEkxD1NPKhIC8llKgkeNHIit28SNc3DPKJFCzSr3jAv5YrFSMUQsLaUyrlsU/cLjS7gllwI1GBg9Z74xuVWN90DVLeyCRljtL5rxWVYLJ/cJLm4gs0aBPr3WMQLc28tiFYm7nnREpbCW2ZWa3tkt49E6Xly1ugK2VyZ4tzHyEjXPZPofwpqwuJ5ZWV+mig7deQngR1El3N9ZPtHwyEoSTEjYJK5r6aMnNKgHTHpubpIBs9vykE5wgOaHVlDjVua4fse5VdY0KtZTBfaI5MpkhzcDagoUZF6htbkTqpjU7qU3A2MhA8efmgc/EjOpYJfRSwSi5D3X5InjEi6AvIHZwoRBGuAn6Bi+49LrXaNVA1EIjO2nLwKAsi8ddfUAxyyIX9jKB8UsmW1KKENOiuMMMH4LKAEHb8aHtiiADtWozmu0PkFVJowR5rWJfIlQu2RPcIg82lnNy9xgWdpFZwiKL7fLcIb6QSJxtitlCIx6hkDFYNaCjgVhaAFEUVNYNAV4rArWsVih4rIYVjHQegGgcVmgax0I6BgaIxR6A180Kdhihn5KN/FOwzikzthlAUYDS6HzLKM5UzE/GrfJIoKCa+nU4pLUBs0YEIprdGXBmgaI4IiD+FktpEplZMqTkLVtyRTCyRyLIMrgH5onAq6uiW0WK6dGw6Shhmrm/MTai3l7qBqgR9maQBgTnNd0ZxQPTNCVSxUBwcgZrNSXMiziMZrNZqbvbjQmuSmaNfanEO8XcaylYMUO1FqHbMg7w+KkH807qzllt41kV94rdEXxNIVPtRMEO8py+pHZUeVTI3aVkHhctINaSHYkVJH20w5lK+DDLG2BDJBGWCSRWyCbNSS6HAtYmQMXubuNPYY2W3h8teOfNLOgVlUwzRwAVJJNHbgG2sJAomEUE/eDmWRYlLMrBgGE8zRFQMdIbVLcswmikkcNGzKoyWbClqtLk3AJMjqilme6hdSZByaMpEdqkN/mRoIEgXVLu8NsQBcieS6Kn6f6G2YiQM0g+sisjcktbRIUQKaxWKdFYYaLTX2BFzn0nwKtL4TSlKHRjU9zN9SVAY4rlLp2n7b2lm0hbsW0QhQLSEGh0PgZqC5SYkDFY6mudV+4pMOe+mkH6BQ6inRZFKtzfDG1bZUyg2qxnkuJRnCxnuESncLVzbyzRFDxcokjML2xdgSVQKSeiTK5OoRSdqltllUhrcfTTNayxxIi61uS3ie5ht8O9vy8LnWhKqIXqzvob4HtyRZXCALIMVf2bRt9RFY34uUpJViOtY2JwG/kFc4JEgd/bqfktnBEYVgK8YxTA5zRGTWKY4Plzn4dlRSaEU/JTiGOwsIrGERx/tNxW9b1tW4rYUcNQrFMDXxWRXg1is1gGtSOmax1xWOnxQOaz0xRB6A58EpWOmSK26AihQcE4LOEppAtM5k9tLCf5EaDzUTF8gyJqai8r5XGPFSzaNis1OFZDtjs+RDCjLTwLICDPavEc00bIpDQXD2wqCdJlytSfBpZexcCQ8hdC8lEiwxYTBezic5MaBBgdJc6nCk7Uvx0nQyIVEKGNdTWaeVg2qJKsgDDNZrNe7Y0TV/GZF8DlZBD2qtYiuWbamejIcZotTEk4EFiQ2ZmkSMHKS5IxLM6uSbueJvapQld6Qj5cHPw0TSHKBgpxWGOe28EhyzJZzMpc2li7J7tC0mDbxCG4KM0kSzV9Q7syiW6jOBJDc5YLLmIprVzHDBrHUzvEatx9ZDmRECKFECXAnYvIiuuGs5xMhxLdRRtobS5llkIa9mmiAKW9z9WjI9xO0EmI5iLmH22gZYgr4ujPT2scjFmd2hlaGoraK2UsthOHdlGa5K7GBFHbSpZr+fdXoluAxkkku8vJJycdsqpVlfJcDIHWaPdCtWFoLZSPVioXtEuWROhoxLttU0ixoWM5M/uPDQaQBjzMssUYKcFczSMwYdYoI4s6egipYFkGGjsoozlVXFDqCOksKTIUfmeIktH8WdwYJQSLtHjEiQzNNqyRJklxe4tLoTJFOqvmuYF2xXtcWJ+xia+b6aAmO0d0nCD58Vydj34tksrk3ERNNKjL2xycbJKC0aGZwixRuEC1FAkSEKUDLioo1Vm1nRFXZ7qyaM/U21pdrcYYJJsKLf4GCSaR1kPjLMSKDsuVJUv5JViK8DOSuxxTIPkn3fLuQTUncupuxb8XxkdhFov7YYFE15NBTWB/ORW9B6zW1ZFYWtP8asKyKHTWgKAoqCPWMis0BRFEEUrZFa0VoisUV6A0V/mjIwrBNYUeaEgNSAnFQprkmUOxwFbHtMEQTyGkVBkxxsTs+aEyk4oRxu5qKQwOVd2dgDFjIwbi3My4H+mkqAXikgJNRcj7h3EljmHse2Vj5gjxnIqTbQ623cCfmUTikuI5iQoQZzTOEGTHOkoJWOXcZrPQmpI1k+fp2EoYCNhKXoSAkis0WotT+aKKKLUz0z1u5TSo43lOEgiitlJMszFPbcb9oCmJK6lpu8dajaNM5YozZTUZxSRsQCFt5dcII/b2y9iUQGooC0eCsrMuoDywYQQId+69yV1yI4TGuxvJmAOtvZiSHcoz5MYs7UyqavdHXSoFzJpJaTIfylYkA4tJZJFzJEZZpJY6tLbsIRUlmHfagKwKEaqPD26SXXtvoTAjOnGO63GgHxTslwrRx21sIVwbm8SA60eUYALDJLyEzBGg7yXOI2MZctc2ti9yxKXUS2kKBbcgsxfjTi7IRPjryKyGP2cYrhGyPULa2+qLgdLZJ02709wsQJa/v1ucQx2NqzSKtIuBTxK4w0MCRjCjoPs5odOfu5beEdvg7+4kn7TjpPBHcRmOTl+KkspcHi7xopApjRUT2nAI1uIIJAVfjtVY20sMkUq+zdEYIZI9wQ1tapAMRtlVOSSMCpBcWFwJ2WzAuPqkltlnHugso4R7VTArdaAxWcHAdDnaipANXli6N34bS6juT+bu8bkqjlgCyAfpobDNJkSNsX8Gi65OSck4xgVK6eNndx8mSW8k7FtxXFxWEWB9sfb1x8KCKGBRJrGaArHTPTxRBoVmgemg/jBFA0KGufeq/wA0aA6YrFYr46Dqy480r1r0x0IrXo3zSnAo+RSj+Sz4pHBrapCNsqs6KuS8ayfIGOjQ4yQqlyKlh7gqCbA0YOCCaW7Jfpcf7l9FktZIqJKkZt+TTGsiOrjZaaUBwlA1miaSNE/T0ijSPJWioJzQfLEUTWazTyBBmkl2zkmia2bY5Z6aTxW9Fs0ah45v1TSTJDHrFE6FS7lt0OhuGm/W8ithVyPmgdgaKt7aT584QQgCCWRpMVPA5fcJBsQshhXQKhaO3GTkgZV2WeQJJdwKoV4w/s2q+tu8u6924hTQ2p7bVa3sVvBrUsyyBRHZQjJ7o2FxgzIXjKi0iaOPDQW8cMjEVNuIzpalyp3pmCgkwQRGQzJLCJVKtbWUcH6ZZY4U2eDtBXaK25G4VNWsLP6iR5Z44UiXVLy/SEe1pGvCzJBA87CMW0axoFW6nSJffc8Qk7dxbLjktvhR0YhRkiZXQvHx909wW29JpLHW47vR5Qtd0GuakYuFpY95FA4yVpYssooCh6M1n1cpffSRbC35ycSDeF91B6T28c66SW1jBbf/AB9by0jvITE9/YyWc5R+Luw8XaNsnbj1Co6nL8pDIXFwlncLKndpCzHy6CQFSWK9PLZAuoRNbkVYf7eb6aeML5NIiBywHzgEACkUoMUSF8sq6/BGT4Kg1f8AG909xIuQaJ1S67Ych0M7L4kEynDKAGT25AyaLgHNSXKIcASyzfE80duNn1nv30HG8bHZR4X1F1X5q6u4rVN5LLlLe8JEX3dq2oBz8FWAoFcVihnpk0D0HTGKFYoDFCsA0U/xsRStnqKGemcUOhFZ6GsY+FavBrFY6Hz0byOgNA0V2pRgYGTk02x8VGwDYIbx4RyVywkVjgZp7jTwVlU/Fw0Z8gXTAYo77bg3U/6aEsye6hdTnyZGOxpANvJm8krHezKcpb3gkOpnEhA0lu8HAhuQ9ZqQboVoMsEfuEynB6Zot48AnHmSQIMlJA65Eg2FbsrNgNkUzMTqu+Rmmenets1aWU1z5QQxWn6Li9LeC8rMhCtI0aAEXGgye6WGAMKoK6t+sozfrEjsfn5wKNv+UFqCN48yFr13ysYiYgmW3jkUMzQuI4S4icOoYRIGnfZIkiXCwyFnMzTXChNllRphue2Y8EPO7A5s5YYtAJ7ZLhNWSaLfsi8ieWIolnAYUw3ZjMnc6TzCFC5glEyBxVzF3YytW9uIVx0eRY1LNLe2k0TdyyBNyCsNpDCSUuZzBGXH+qxBRmCXFxs7wyPJI41ldy8fDXLzw5e5ihkA7qoMUF6yxLKhRoYO0Dm3vkllaNaHoNXfft7juATZiDm9vppJSsdneSxyBJLyOOSIs9rD9UwRIY9RQ6DoOmaDZ6muQ5sWz6JxvLC8yp5KxF3Hirfgpu4N4k0XHW+v0tE2ay52O4fQqcjryPHx30OjPby2UxU2lwrxmVYY2aTLye5eykcY4671dD3Bmh+rPRmw3n9QBSaJZMA8nZieMEWl1LcxhRoHIYqcjJHinb+KiDAYZEAyCAFrIbBVfip7WKbIdrS6sTm2j5dM6zK9vOmgMC4ABgGTRt4ttme8t7cGvq7m58QRceXlAFjYpap49fJcWb11YAYFc/YS3kIEXA8LPbS96b7Y6JGjHFFo0+N3amJI8jYCjgfFAUFrWtaHTNec1mjg0MCgwrcVsKK/42I+QQfihQr59AGfktigc0aIoGvNYrHoNCgaBNMSPgYFZpjsc0JGx7Qdl8qUQ+TOc+x2kP6kQt5ogVqQM1GndFdhSMEQLgpTYgc4nhLAFWtCw2WRDGc0NdMgN7smK/OurWd0sUm7IwknLrJOsS5aOUSLspwRg7KMCs0TSIwbo+re0jCjAzRRc5otUgDfJ8CmNRQSTtrHBx0MBDTy3eQe3K/kESOJHCg2nsGki4GXNtGIe6Niq4pAP5UrjzFAZDgQgCZhRVg57jtjVqSzcrgWlq0Wd7kxkamSQRpmlKtDk9/CqVluUhxmeZ2TuRwOJIdpJII9CiSxqhrxI2omdgwWrS1KwYaW4lilSMT6xSKy3cgihZ6i5No7bdk5mRCO7BcLKMiV1SMs9tKk0YZJHWNSzXLSToGt5rkQ4WkvBdBo0aOeCAhm7LzBRbwRwLrHV7JJdjdfKv4tYJb6QMxslWHtq3GXMbFYrKBLOEK15ZG6wQi6qB0xWOtubUXLdvlmuwyiC17naXudTRuJ/rO2Z12QirmGSCVqtYZZZAxup2uc6cWhaISMB6ia5Tk2gOkdtzM8coWaJ9lz0IyK5TiZXl7sXEcXJAxkkAoLWKx05qykuYwY7DjLlp1Z0XAx1FcrxaX0eRbO9jMVkFy0kQkjdVIDVe2q30JFWE7yr2CI5EB1K5GAq6g1oK1+WDxh1O15aPCfqILS5S5j3VDgYonXJIx+mjg+DsSxAZwU2KMCuVzkeBWPNTWsUhwz8Hanyo4adSe3/pV2fk8KD/8ALFxttB5VS879qGzsktUwP3JeMNgP+rNbkCsk1g1igKyK3FbE/GD/ACdBWyVvHQkjppY/4R1Qklp0K4G658jTPkrH/AhU/AtHxkC1c0tlJ/BtZ1+WDL+oMD0xWOmKFHpjNfFDoRQ8eemKx0DUzeKDis0QFGKBxW7HwFjJ+YgSfOoNSKdcLFKioyskO4yYW0fBVg4yKeIO2WJCLkRSCRc19LH5q6tQilkI/wAhSfiOUoat5I2/TLEJBUSCNdQTTwszkjNE1miaOM5ovW+aaYA4piwQPTZoB3bVY+K0Ae6lmjtwFiuLkliYzJEoGZZkeMRq8eQDGhaInMpDOWEqYQUBlSS7NnJgjSRiXA7akxqyxM0lPP3SMpDcId1S+KuFdrgNODTWcbvuZe2oCNOiBlp54ScOoilwTLFHNEdGtZGgAD28gQLG8DGTtmGwRkDIlii3Kqg6ZFX8RngZFPGSmHFPbXVwBGba2trQjN5c6KBVtOol7Cw3P1LNG1q0gnaMclBIXEkfH25jYu1zKUjOtlxskrmSS0tp4Mu6LdXZZllmkR9SbhGIdbJQIFxitRU9sk66vdLOEAgiDaDf0otss5CgUPQ3xSXsjXelYyKktUeru6FvIY0jspJnLQQrhACWApZ0JxQPoIrmLOXvCZYbSW6lXMCarjrisVj04FYHq5fiRdjuR2U7W0hjZT3EGquAwQX8UyzG4hsb1ZwCu2zdsZ/xkL5rYNg0pPyXVWGTcxvYTmWG3uUlQSpG/wDIyD4o17cgUy7xlWRNUC0hyDnIFDNYPmgRQrI/iSRUGTEZb99YbO2jt01T7LHAq45i2gbV4LmOddkB+8XJrzQArIFEmsmgpb4aMqMlQGFJbH5J7MfgjRhkPETSEBtCAooyoPgzE+KAFZAouKElE5r4+BKw+BO/xSXcyfA5KYfJvI5P1s1k3wYxjKdqWiH+KLUemOoB8kAg1nHz1IrFEVjoWo9FXNeajc5w1FgPkKp80KnjA99WzAr4EqltaIDDBVQg1A93lqIBGDeQRouyiM5BV1I8sw0bKw3kijLR3KSDIaTFRy7CtqKEyB+ku22Q7YGabZQrGsAt5CgthRxzIoe42htYz27qd7hVx+Y8hWWSNQT3YoO42yJKmup7rCYORPlyXIRoy1BDmkQZ2MqKnhbOBZEJkKFWMaJbpIDsjvE2iQykuEa8RDEc2lmDHsyIIXAbvOZMVfyYQ1Z2Czx7ssNxExEVrJmIbwQOoZaWeaEtHSvbJCS6RIB7UUvfZq+EmyFb/b6ZtePkEgcI6TGzBgsROY/zyniryFllbfi4pEtwJAqg5q+wkXshcSRhhDcpcsVoRqvxFEb+6YvLNDAvvubgv7RcSyFiy28UxAVeO4pYhvKZI48Bh1u7loSqraymaFXPpFiRcdygKHoNRXEn1uhqeeOBdnnjhml7zcfxpgk3OtX4cRHS3aXugrbbaDboD0aMN8rAq/AHTH2cevluIW7BkjsbqSCXsSoEC0VDeKuYX42XvR203dj3CNkUpBwxTz8swHitdPJePcYNxbycdIZIYJklQPEJVI84z4oj5AejIY/BWUEYrwegxisCiSKmuViWouNluz3LiKFYlCqv2rnPbOLkS91g/wCF+5lhQ+4OmK8CtzWP8mJ8ZoQlfL9kucosCjyXcIuajkEgyGVP5Kkt7EgYL53VfFPKWolRSgmhF4yyxrXtFMwIwOuegNeKPmiKWZwMEzZraLSkhWX9DQMpxWCKz6Ax/nwf0kY+emM0V9SmtqV6DVKu/mstjQKfFNhhgqTE9BV22oGppu2uaVhjNNOi/Ml6Me1rgtkMpZTmnlLjLZAO1bADWnZAfYHkxWWPmjPJGcUt9IPkXwPz9QmcEsGFCIDzRTu+1YuMY4Mwura0wsU85dgFmvRnSnupnYilmkZWARgMkl/bgQMEB2dcKKfaQDUA5KlchxHG6Sq2pB2oytk62GWYGjKZQVjghnt3FXjAQ0IWuIlNZZsxKYxBGN4SHQEXwTBBt5+ypjaO3LkuYvzBVxpDEgjsoMvvLarbsTJE+dTrYtM6kzYp0DqVaHj4YQQlxPHZqFpfihRjBq6k7EJccdPLNszvJBO/YZFCjUBFXOLnkFjcxVYXM5JVbhXUlp4Ctq2RFFNMmU4/i5IZQ7gVPaJOwZh0xV28KKO7CyugZfSqXJu8mh6OSvntmCJZz3ZuAJHuo08G5uoZ5VgexiY3QMarWKZAw826W0jExhcVipVJQheMtLmKbaTqP2LNirzm4bdtTMLblk2jsrqSBjbXKHxmprVJTllL8bNgxOr4IzgjI2XNRnJJpSK/kgMCwwLiwltH79rZ3sNypAUNrWxqSXRc1yHIyPIyJxl7IkujI+wr/wArwKkmSMeYzPdnENpxkdv7jisfbIyKm4q2mbZ4LZIVwn30hOMs0bMuUjjjjXNbPKfYkCqcmpNhjUkDxWjt8i1jFNrGM1l5qOqe1Sir5fGT4XZRRZnGOiDoxOaz4zRFZFa/46Ch1FI7RHKi5c/rZgT7YYg6++WCNh7TE4+cCsVihIf5IU/GCOpFYrHpya2NZz80r1mnAYUsrDxTSspzTyu58ndv1KoxQGAcsBnNeETy0Y+V0I+RCoFS64xQBekHvxTiJjkmHwWoqhGA0TA+IbCaVfFnYWiLmWWZIgEWeZdtD3VRwaku5A+pxJO2tdxhmNAXQBaPyaWBWQZRzj3aZGx7gEOpVI0AZvpn/UjQOn5hljk2wqyPbkgw7SS5iS8w2rYkliOYrb8vSREWNdVkkEaFm7wkjY1HeDtbNFdGefDy2iupxDEgj7dXMXamKUvG91QsiRKqaARgDVfrktQY6sUlCFpOt/IU1xNL2omerO4MwOau3KQswblmgZUFqIJZO8lxcx2y7PFyM9w5jSe3eSftvyCi0gCQQW7zs+7ST9poTx8LvA5j4xJ1Vu70HW5to5wA8SCNQq0JkL6ejvz/AFWvQeiUe0tVjfTS3BVrhledzNDP+Uztw9hHCO8AKxWKhtY4CSnrH2cfYm/SauMrO4fjSTeL27rjor2LSRGuOOk7dwjBvIntopIyjfncS2pt7hJUDrtj214asD5oYOTQrGaveKhuPfXfvbLxPbX9vcD2umwq84t9i8TxPZ4cx316g7oi5mMoMIb26OEtuGjU7zKAowM/vu2luMlYmkO0jSge1eyAe5J3E13pSGGQ8ozqpikLUiBBgFwG1ppWjzukTOd5JHLt20OsI1VIGY7STZQ4EKsRmnjbHtCgjyYENGGMDJEKEZDw4/SR/jWlBFZ/ztW5oPQaiwoNWaJrOa+PIEz/AAUZZGwFhj/5TR25OQ1t8lOzJ80Rj5Bwazn9WDR6EVisVjp/Hp2rJrFIoPyygeaTLeGCnamjUnNFVDGv1r57Q+aBIyTgkHAUk00TZwMswoK1QWd0SMRcahYrOJRah1hNwRrJTXvalKi8ullKMJZZpCRTZZ/zXJ+KDfKqiiRQKOUc6xSM53eZyj7gRrqCUQO2KQH+ZI20ywvJNMKlsSNnhhkOVr6AHJcQiNR27lCHwLJpDESdHnjFZMS4aNluQYStlHFlxLaXE0OzwF4YgwSci37skvJa+EsbF7lzI0Jn7rK9Nt/xEctzMxFiZzGe9QruIG0q4v8AtziEJJHISoiiSJdUZ1QZa95R4ZNEubxnlV1kguE91v2cnZrh4bNGmq3vTJO0jrDNeSkzXJls5ezBZcWjJtPdxtHFiHjllER7np5G3lmI1iUqgBpbaMSGQdRfDvadVvEaYwgXSd3tdGwAc8bZaM8rX/Dx3IOI+LmlnVagiWJAij0Y9M86QKXe25W2uG1QfsSuavOGgum2ay4mG1/QowKeNJFKvconHe6ra6iuBmMqk6FXm42eybu2dnyKTDSQNQOfFbZoVmsdLjirafy44qeP/wCE2HJVPw17IcvFw9y40az4yOFcUqKgwP6CKEL73fuS+EJjtgBToJFwXEcSlKhR2QLUPbBKp0mCo4kMcJJ3knn1yqpnGkUUSoaxUigtgqoXxTpuutImq4p4yX2BGRggACnmA+Ms9ZpayacFfnRqBplxQrFDIonNYIoHoTSzuoxSRxTNgPGRkpFdSINSt5t4ZjbOM19LC2dVsnHwYJE/UYmxmihAycYoijRC4yOmKxR9AOKDZpBij8eFZtsHX3eV6SIPmmIxSwvMQEHFXOASOHtoV2lge2iXRWuLncII5JATTzq0W7lO6MGbRZSXaXI1DOWHlifmoyo8hncO1QuFUgPKC2aQNIpVgj5DKZAYwtENsBUhePGOy7NmpbcQLgQxzykkSR3BIEb6OTCYkRB2w1kM5PcI2jJhKw6RwNLhlc3mkXdVIbm4Akq9SQw6KUlRGJe8leEIYAQAkNsukSilu4zP2QLwG4MJur+SGbAa8S2bFW90s5ZFtTJGO3PNcRwY3+mRpRNWYXmq2kFveOlXc08aZhltGu4k77GG5IhSLiLaNsqKZgoyeVmeWcioAouSZ5OXWWI9qw44u31E4GK5K8e2KhIJ9o1ZlkBoei/upIWARCSoz6DQ+jN1jqIYw/cARdtul/JHHA3csBElsO2ITcNLpxvG/SAkgesdDXL2j3MBROM4qdLgSOv7MDr+KBIZlJ/D0DO5NCORKUg1ecZBd+XMV/aeBFycLHDJMreQHFBqzQ6AE0sRNLEKAA/o4Y3b3S0UDfLya+1fpSXDtQRQc07PHIQO5omzxRFm7kkkhY6RmNWHaSOJYxhRCgcvWOhOKaVU+RToHGtNIIRpTSM4yQCR4UsRqBCxoxORX05r49r4BFCI02B4LYWskDNBgfnIzgV8dD0DYOR/Plf8EoP4Gyismg7gUs0i0LoZwTcITtSzx65KtBITlLSCUeJONVPn/TQfC/6azZNJYySfofjrlRmjYXOM19Bcn4+iuMULOdfn6S5JyBZXAoWN1X+nXlHj7v4peHuj8x8czNo0XEQblX7HHwSaNHcW67PDLyQcYF3dOcMZ7x5AO5sZYATODoEpXMCGjct+mnJ8tS6BgxcwySZRwNz21sDrlnTGUCxuTkkO7aL+keYsICW7ZJChI3kIwltoPcsDFtmChBhblJH/AExLK7ki77+2sUUCrhjDEVkaV454piVVI1AxSXTLK6NDqiG4oBmwRcTPEmytbJdaym4hXcpUdsAgd+KtLaM7ILAq7uLa0NqGZuTu8zBjaTRXTbm5eZpZO3wrh4BT2aNMJjLbpN+oLgYEVlJHdmWtFzmviri4CRFk4y3VUMlG+VZ+yJriOAbSXd2Z5iHsplglV5bl++C44/iQ2ZJlXAwKv7zEnbq9vpmcoljyE0MgDwvsuaHW5vI4pNWU5GfVHYKLkydc1uKDVyN1CGW3lKw28BU8XbIhMiih9orQWh6gKLqDj18nzws5e0nG8it9HuPVNaxzDDw2scIwlFQfntCu3T2scgw54iD/AIrxrL+lbJx8i1NLbgfIjUf1Egk/4NdDOgRAtYo0sit8PEwYyNDGZW7jyuSe2gXx24o4xGuAZXEutbDOOiFznaeTXxUDb+GqadY/A1Y+5hGNqEBby5iUrrSIFXAxWKlZFX3GA4zGCyj3/PkPFk5CR6jFNEpzUeA3uA0byRRH+M9QcVmkwMhgz5OCVpSATnNKoIrJ/jbHtZj/AAEcqchpHDZLzSOK7rAYpLqQYwLmRQYy887oA0d/IpwByj5wG5Vtqj5SRmIpuSlOcPfySDMYvjJkEXZklxUt2QcBrmUggS3LmTLxTd0N3JWGSQJ2XDBBNKwImlYyGpZ7gqEoTHBVkKsrBlkKABid/kQsaVjESFsLYSlaltwieb1h3G1bKhVOhyRQdVBYsFLhjFDDIuag9khVpyZT2lXvRplhcoHIN22CHNvNLAO4YJhKgYRtMZTmcXGdFtreKD43XJFSSQdwxtAAq6CbklhcoTcSXLeI+VUexQSk+0VlamfYz21rHDIdKujiM5QRmdhLxMX+4bW+42WRsxW1s1rb6xwGQx5kqaYQoXNvP3gT0vYppcCK1toLX2p4AzU1/apJlJBI6GW8lliuF2A1nYvLx0FtcPvQXFAdJzbPLqb2B4JmJtoXuJQFgTVQKHW5gtpJl3AwPVDZzrd7sOlzOIlLGTnX29ljyazrkLy0txOAqXveidbi05iFGEaxPuM0P2UhIU4nuJ2uGc2ZZoVL+nk+De4n70XGcf8ARx4P7y/uxZwGU8de/WRFz+02FA+tmLnRDbRlQtY6SEgYFpAYly//AOS9SuVGqIv/AARUCDApzgVunc2pG2HSeDbzUOEyFcPjMiQg5do1LEqsaKgwtIzEkGliYSFjsBTxrJ4bAFNRK74V5HUeWmGmRGSZMllDDBKFKIGMqufmiteeuazWxoH+CREwzTYz7Semc/JIz7Rg9CTXkUKBK0z4AwrYPnfUnD6a+C6kYGwAKgahcDbApJSrbU5Uvlg2D4LeNaV8HNMxYDK5YGkLnAr+a3BAatwzEsrqT+ZGBKGDpESpNEspIDFNFFRXPYcFJOUE0etKSr1DC5fZZAI1Ja3hkuSYl5Tj/pEUmFvaMJcDOTLMseAElnUbSIYHwwupI3Axq8iarE4igGUtIrb80xyLIMrGBbBmlKpMnkxNJcNFVpOpHaF48gLIYrG4uF8Q2gtoi00VtDJchFRlYe2iQoyZEW5jwr8RGwANrZJAMLdXBhAxTSKvyZ1AzQvoJT26RVRcLPezySmOBL+S0mP1E1014QIrcXcz9uZLK1tAZHvL5r0lIoUMcncqzi+rm3MNjBG/cXHWW3hjczMI4rhA4jtkT9IGPRNx/cuBJ6HcKMmTmbeNtTFOsq7LYyXRlYTGRR8g5rkojJEQP0e1rbuKGkSzSUEvUVpNLBIrQWFzMyxtBHooH3MfYNjbl96Ax/SSxJKhR4oUhXRP2bnAq4mu72Zu1wl3M+0UvoFCXvMURECDA6O4XxSLjybhzI3ZjkV4owIo95DgRSR7GNelwpK+MeMVbghfJkJ8RiAt5kbWNc122uMszxkH3i0ix5+jipYVJIQRSr8NLKnyJzjJkOzGk+OksJcgiOFjJ7pw4X2yI2NqiUYBqcEAMBKuBlwM+2PHwbkQK35P81qS1NGRQHjNY80TjoGAUisg/BwDil9x9uStEn+cnGK8Vj25Icj4zWf4HzRP+RknCnx46BiKkdmOW+aNBwE1pWwpBIXWnbY5rxRlbGA0m/mhCxQsKALeBnGKCoQK3BchN9QFN7IkpDRyMrkAg6kVlQMgXExbNO741e1u2tXLLJNNeyhpDpAvhYI3IkA1Y04YqdSlw47b9rsMFFuOxIY6TyCstztJHiK1slhO9XcMcsZEm8ERRaM0ayaVm3iZ2SGWSWQkJhVq4muJWzbzyyQIsgt4I4l9lTRLKhRlmjs4zHBC5kQM3RN8tvyjlpRlppQgjJVQRpbtiIbXciLMzRK7Wy7PxtsqKJBPMIYy7Xl9LO67IxLbLacdbSRbVBaRwDCY9EHFBZmd441jUInpC3ZvM+jmZWjtmKxxRsmTwk5iV82dz9QpNXqOZztahxEA7ICKn4yGQ5bkVjt5BoiPLGNeLtnRfeiAUOtwZFjJjSV1h3lXn0MmKjcMM/sB6B9kf0Y+wwzU3Dv3S8Vhx62i4A9KoF+Hn0cJ0NQACQ7XE3aXxbw9pcmZ2du1HHGI11URKpyOhGakCrnWGCRhmVVAGAxCjJUGdt2l/JfcW6E/mM8yr8Zmb4IkVSxtjI6Zp4HaktyowXts0xjU+0POtC7GcMs0ZrxUs4R8V3C5xGUlpljBwcRU66Vkn51pdgfB+KWPCbMENH5xXtxWaDEGt0AwcktspfJz0+PIrP8AgHHQk9QSDmic/NMxPznHx0+KAzToFr/+ZGMU7AZVQMmmBUkENGIytYFBS3ihqUNEBM4AEQ86YJRljxgmO1TXLGH5UG3VlAqW0Og1+mkAwqQyRvXtzqSgyGqO4ic4VXUkqLuZCO2LaLSPBL7j2R2hlT8xEhtEoMCMickrlYYYLaTLTslzdDTkYFg9yBzsGEN81oe1L9I6oDAeQh0LVBKs0YdXuYkOGq2to4mZ0rNT8ncJKQltf98FTiSWQF7vjVeM1CHib2JZXE4VpDZws4dp7dJ10eeZLaPYycrLK5BaPMnjiuOlQiV1FM8wmCjrLtodOM7+W7nqt7uaS5KHNA5rFXNuJkKlvw+c4W3sorGIlrQRdoGEqDQFTyiGMyNc80VwFu7Fbm5DrZccsS4pIwB0HomiEiFSnBzCTVok0XFD1D+mx+8xWPSOsj6LmraOQZaViqAsYFM795rtnMipHBD21x6A0gkO+Xl/Skap8dJZBMTXdLjuVo853EUARcVA2w6GgOk8piAI+RUFsoT3fURr7aaSJv1O0R/RhjQQmgB81lfgMc+Kx4oZIxQbUYOit5UFkOK8yDAk2HgrGTRGre7oKxscBSPKnIGQ23gjoMZ8tgH25oLscVr49B1wOpoLt8Yx8kpgAO4Y5A9416joxDUa+afbGGD6BoyImRlBVRqd5l8g1KktsoJUSSnWjDKh7jpIdtUjnWQe15Ze74S5wpaSeeKQZjKbJhmhzIFikt8RVLbknQxmO3jCHuy3LFUixBBh7aJ2U90KpY1PLJbt2o45bcHeaa/VXLQRSrLMS6oZJiI4bCWaTu1FCI4xHUnHQ9pkXj00t1Wv9IjM5la7UJcKWS0MUJWC1in7bB7SyuI5tmWxVbgy1gCtR81LcSXchgWG1jiQIABUkqRLs15yLCPeCa4MsnckFuThVs4zDKuyAY9Lzon6p7sJEXTjrl7hCz+kkKCTY36XbELywm7Q7fEibsDu9MVcRxyJpJDGsaBE6XLxBNZbVbYXRQLxR+r79IuBQHUdcVrQH7MfubiQxRM44jkp7uVlk/oR0JwMlFLtu1TsbiTsrI4hjzVmFILdY7hJHKK7hKWIudnd1jXZlYOAVq4kLntI6rGgQzu8iZWGIIgFAdAJO4c4okAZKyiRSyxzHJFFZ2oWnj3fSovl9tzrFDbgN+Y0sUXgmYscqZGUe6SRX6FwT46DxWGYYGWFF8jDIcHFSL7skp/I+DQxjoVXJ1jIVsl8bHDAjG2B0YY8VmoygOWYZHtOT1HzgMpX5BXODgkZOwzmlOCDTkEkivnxR8UK3ITQqQDkggdG/SMtCw+I4lYatMgixhJe6NC1vLjDh9Bmmu5GTWrcKFxJFpE+yqoPzfr7MhrZEVCylDg0JUichlKuuQLVAhULxw1PctiYiUdBKYyGtIZ0cvLJFFEGlqztwmZDNbzzyFlgtyLkLLcWCTCjB2nMEXHPMUIlIyKtbWSFiXHSa1inwXtrb6AM7wzpOmyW0s7zuHNsDOJqv2/L1SJb0hEGuKnnWFdjLOqRsweae/hIIuX/AIhtnuSzR2NmtnD3JbYRTHuJdxyvHiKFXEYD9HPiuUkeScq/E3EqFlFpIJIg49LsqqS1mlvpvBigOuK5CxN3rhF0ULWRUsnbjL1fyvdwpLX1kVsgZeP5F5Ze3InxQ9eP2Y/cDoaRFT9PTFY/oPfNN0upu0ni3h7SeQO/JkxxLGML0OqN7Ejx5NEA+DKj6YjnmMahRHGtvGWaGMzsXbwOojCsWFSkqpYSO88eRBEJ12f6UbBgaluAntBX/lNHKVJB+mklfd5LVgB2o4hvo6oFGA6gijhRSqp8h4VcYJgCfLKitSQq48GJh0d2fy2TQIUYpgMZrBIrXxkUAaA8ZosWGDTAj5FFSBRUr4KSaNsNSwLej5rH8nNeT8OuhK0FJGQejHfyQvjw+AMUFXLClxqQfINaZPtggIGlLaqsgYXAJYAW0kZ9qiruFHFPa/TvmS3RZvdVsvZyzNdt2g6okwly35U52R547UBFmu4pEGLVrgxZCQyFldp2dEJR5YkKPKHRvK34kfWNC+GS3ElpE6AGACWHCy28b4ZvrMwlxYTvPkvWKkt3Mvcri0ZQ3S2NwZG7jorqVaKJIl1S4uYokYFbuVLbeOzitA3cmh5KOaQxo/JXAyD9JeLLoPp4bGP8zuGQMatrC4uJNV4zixZA1fwo8WrWVr2EwfQwzVzxkU5y8kVrAwiZECjA9N3ALiFojYWn0sZU+lLN0u2m6clNLHOKfkL+Rl7fGSfVxZPKcM879yLi+JlgfuTTiURHtWplMeZR9hvqvqRj04/6GPUG2HhVAFEgDJhzPIZjOxP5aogRQo+KSZJCQssrZ0jtVbT30MGsVLII0LNbRliZpHzdPqEQIuokTdSKgiMS6npJNj2oIC/mbHjFAAdJwZ5MRy2ekeQjbDWGOJY8tSkMMiN3ZiG1FFhnFEPvU8PcTAgiKJqcVipRFG2WUxICFd4pcEyCADwEY/pbZRiiNMMFGTii5FMxwKXUZVguScHZ3o+KH80z5AFaanB/iihUA1io42JBFzCVYklf8UGIPjBPjoMjzWKQD4Yg4yShUZOVzg7AZ0fOK8isAeDHsxKVbW3nIa6CHVdQJAwvPau6xO6PuDKVTYfluwDyRJINXurIwnKrbTn4tCzxEO1vKjF3S7fUmrm376GSuw+E7tpeCL8uobgSqWUXEjwF1EzTflzXkckBEg+pmlUF1xuNVu4z7RE5Zc1As5kJkKR3l5lVGOjlgPbdXdvCussboyBkM6CrO8FypIEybFaS/ikl7a3UcolkkfjuKjeISO/D27YK29hFBgrgVyt/9GFId2uHDvY2D3agyQW8cK6piuTtGugqJGuiBfVihHazz7AdJZBEhc2/KpNC0ptOV78vaar6KWVQI7ZGSFVf02UU6OxlllWMebfkA8wW54x52kdZQoHxisVj9kP2JOKDA/H7bP762ikDs71duXIgT2wx1DGR72o+aEQjYrDFCIxgUy7DFQW4hXANZ+rlxU7FiIY7Vh5QdMUSFGSGef8ASiKgwJ+5riNNtRsad2uW0jVY4I6Aa4OT7E9tGJ3YbKiqMDoaN03cIqZ+2haoJ2kzlLolgKlukT4EqSHaaaHI3jtrdJY8skaR/pilEhIpElaQ7XMKJjDK6HBDlaW3YqXAZ39gWQgYBJPyBr5r5oH2GiaYAgEaj+FwPB41oFb38hDBKuanTV9Y2Ur8npnHiirr7WK6im9w9pbNewjBA2BpQPOdABlH/wDYocrs9tEkrHVAEk1BRTTWis+wkgSQYa5Comtcc4KYpXieTAIzUcbBMPyFqYW3SC2d7TzFMwXRrQoY8LYySGR0kmj0k7lW8bMuzkywOFiEP5ndN3cL2yqPLcToMR2kyDeR7JpQZVR50TtPByUqLrQvmgAWWygeNnZ57y4jmZQl5ciEO23tyZpLW5mwxvYBbMYxbysnday5CaIMBFxq3EZmqz46KABq5zuLBsnEvdgKjVccjDASrXvMOcJHPK0rne242XIaWKJUUKuOn0Ehu+90u+72W7Np3u0O96LOxiikMqdCMijaR6FBb8bFbvuBOmcU17cm97aj08ndSwxgxWkjyQqz83m5vBHHxXHpdSsKiiEaBB1x9kfuueExt/yvw2s43LfuMfuB6ZZBGhY2sZwZXAM823QkAZLSbeEjjCDA6NIq4Bq7kPiJMLbReLeHQZbA6zzrCBkRmU5foGm72DUsjTt2owEgTAETSvmSQvINYvpzFGTHGG1G0xnEyhOhGaMC7bVqKd44F8tAZMyP5ZD2rKIsxaQCp4yYiI1ZyjJVshQHJYD5MKtnP0qOpWpEKZAECOD22Rl/UjlFIVG1zRlBBrHnFCTMZWtcfIAPmnQq+C8jMfdlk8kSu6laZqgkZATR6Ea+SG1NO5JwxJ86gAYBPyRTjFbGkTcLqkYjl9xt+5/8sshgACxwF3EpqTYISsRYoC16SZApazkdqtVlhmOYbxZXCipYY5B7wruxmjSKOWcK0lgbfMsbbxj6ihEeQj3IuJreTR45o51KJdyTWkeqx965ckcZbH3Ghbl4ys1pGI48B7eKRss1ikMT6cXZLOWkP+nTLOZUt1uTGwluby/tG7ZuY7meBcQyDujuWkVnKrIP9GtsECz4uG2yQi6jFFgBk3d5veBh9fJIRHD/AKjdwPi4u5JLufau13VAribBgwlkA6Cpw5iYJw6TpGwl9OKvYmmhZF4y0e2jIf0SKSpAntrhHOOIupZpNX6k1JJqM0eSnJDm15bv7pKY5JLgpFxNmbS2EbdO6oOCp/pMZoAD+2l/3EwjEzFvylRAihRV2u6aCzt2hU7dZIEkILO4jUsbVCczOg7sncNTzCFdipyM08mDqv0zmQP0Jp51X5SQP8XVwSe1GlsbZDIkeWXdwhkNBQBgegu2+vQqM5ppJUlIrURe+RIGkO81YrFLGqjAmt0mGGxJE3lkjnTysilzHUVqsW2BaxRg4MQzvF9UG/WexJTo6n3RoXOAYiCQRj+QfFAALk7EDFY9opXAzt8+KALfHdcKY6BGpQ9s6hiDg5piaGXwKmIC4Gfiv/8ApBn2iOyZ1Lm2jdCTEHRHJkllKYIkiEqebZl11CCYTUwJBx9HMQAdAfnFXe4xTQy6CRHmMcQeoJhMm9MQF1S4tlmU6TSTpmGad5njENW1w9p7ZBcd6R+7BZKmClzZxz+WtuLiXO8UEiTDSRN1K1a23YBBxV/Oy4jFtbJbpqg6SW8cpBe42WJjHbxyvE7VBwwMf50vHymQMl69wijspBfJcB6vrQqkko482yKubzllQ6wSwSlu5LZo8ziOHjeK7J7kwFE4q65eGBsNZ8hFcjKX73IA7EYbUberk45XKaWyMkSq+Kx1xV3KsCbmydJI906396bfCqOUj7JeRigjN3HFxkl7i5jsONhs0wlCpiQhImuJXkZm4W5e4tld+mP2Oeu65x+3x/WXc/aTxEotostAhxu1SXUcb6GND+puo6SnvzCITNswiVVCjAo4NM5J1SOMJ1mOFpm3bLJMY8hbS27Y3ae4JBNQkzKGagDn1MQKN4zsUjUiD2rDBod2nmkjdQnouLnsYyPIqe3ZvMYm0OJXbRSwx3E90lsYoz2fpXlXeo1yQFmHdYqhidTrWNRsMj5o+WwCCpwRpnyMZp1TI1kIJ8V85IOAuaRs4ViGYk1g51ZiQ+QzljXzmkBl9tR2+hywh8e+Nlb9N2hWTNR3CEeUy2QSiwNioIu0upmuCj61uoOKt7kT5xRIAyWaC5UpVyxSHWIXLpCqC74ma3g+pFjKZYwSYkY5aVIu62txfzSEGt45AGY3DAaq/JSiHAEQtYBMlvIHQEdJpkhQs9gXuE7k1T79s9u1EmDvV+9wrARS3HYh7kqcrO90q9ZJkiGXv+bDL242iM8CtNb3iQKdILB72QmK0sYrRNU6TAlTi4BWZhJxewm3HHyXTyt3ax6jBdG87lD1XdzalxbywRJEmifTXJve715uPMOa1jlUQy8ZbS3EBt2s7UWsQiHUjIqfgbaaXdoIViUKo/at8U/1r3xqHOg2HqH9ePuRf7mYyG5X6g9tVBgiAP8AGaWFXfuH0aS93NXM3ZTNQRC3iLNBbytL3m6O5kJRLaDsLr6GXIq5tlQF6tLfH5ztMJl9kUe2GNSTpGwVqaVEOGFMMioI2jXDVfTMW1SJvaBHbWskUhZujQz9/YSTpF+pZHZxiRwiljDIsyBxRNCYTSal1lh8xx3EcgyHvYlbWpJmUZW5SR12EZjmOjgCJcsFinywuokQAjwDg5ceCfCioWUONidSQpjbAp10JUo4QeBLqaH80jFGBp3924C+0uzefiIO/imdbdvZphMxgEr5ihWIYEqq4wSYVOtRYIyJYFmXVr6VBhKWaIsFJgQv3Kl7qzqEuBIU9gikmiKSpYmMflS2TSPmpYZo3Ia4vbqe3CNaXUsLCKrfke25jkurTLCW3SxuO+JXvuOctvE8qxJ2KmjgMBKpFJcqFWzu3ixHMJY8ZpJFcZS5QXt1oqPDERCOkk8cX680HuTcFWuYEmjKPacfHC29SSJEpZ35WDQ6AxzfmS7YJ28yQnPEcWLgCR4YUiXVKx0IzUlhFKctdrb2ygNaskkKsnqnLiNinGSXD7d71TcYJrnvBR46Y6G7gMvZqOa3uJ2iNtaR2wIQuB8rIrfHWC2eOVnbcCgc+iJrk3DB/uu2ik1Lz8u57dldC5iEgoRrnNY+yP7nAt4tVgi7a9ElaWUrQFOuykVbwmFNSKBFGof9xKZS578ugxWadjIdEVAgwBKhYqKkXZSKtLdoQQafN3NgSn/9awwggdcqx6S2qSuGYDFTXojk0qWdkYAXM5H5SKBbp21t4TF4OKJm+ooVirq1M3kQRdtAvQAAYFXUmi1BKisSVuHk8RfQ5fuPdzP3RHHA0pX8w3DiUR1LaxyAhikluMGEwoC6LMLgEGKBI/NSxd2cYuFmACMCm2Gl1Q4piGPgZZssQMZpXwc0c59xKgHWERkEsY3XCiFYLcZnWHOC8luJH3rLQlmkilWQeHzg4kdkjJqGyge2Mr8XIWQgip1gnmKmwijAL00yK4QxTO0rK1NEzzui7fTxFKtYTGCzEZHkJFMzPVxcCGbYm9V5d44Lg25GkV7FIpIuLm2uCEN7PJLGVFn2kidzY36QA5u7i3vYdEs+LjMJFG3ksFaarWWWJ2nruW0hF4f9Vi1zScvCSAeRu4jNo7fiAg+yO/uwC8knJtcr2ktPqxOA90zQylZZTFCRJCJGMp2ttRlGteEkK5mt7ZIECJj1LJacgSlIgRQq0Z274i9PK3U0BXtxvI0G1cO12zN3+mOl/A9xbtEnGWjWsGjVjpd8pFA5jrjLWKeYzqsEauXFc5eyRkRpbXU9tKhqe8u+9iNc46SnCmrm9uHlZhxU7T26uw+1JHfG+yvqddlIqXgpg5EVhai2hEY/YY/tE/Nk26Mc+0KoHWS4WNwhxVtavE7M13ITiFJGFvEFW3h7SY6TqJgYqjjWNQq0LeNZDIKxRwKu5iF7aRoLeMKIoy5odYbZYmJFSsyqStrLJID3Hgjc7NczCJPESdhdmgh0yzdMU7BFLGN1kXZWzg4jMoizJCXni98EPaTWndY12a4Mlx5QJJPIHlUY6FAfNQmdJcPipdwp0WWUITI4M0mIoXa0Yq8zxSxMKtVAyRcQrOwAa2DEdv6STOCC0TUQUYhCMZJOAM1jK0UXfMKQ6ayO10Rlbf8AWNWW8KRKo+ojC5rKSrUcTI5xVzDuuB/pbEVGkltNgRxEy7sgid91eJXGCQv8vfrG5Uq6sMq5Qp+Z9XO8RnVLqIoHMk6qKkiKS9xLpTeurIvExg7FrGZBmhYNPGQDxc1tjCOsNuDI/HBstbkScd+hZlgud5ReLbs0kMV/BeIO/EE0ASW3jljMZjsIlBDizgBBE9uk6FGhsrUu0LAADFTTRQY3uuXIbWEWhSM3EsJbBD2FhLJLo9nxkNsPAWgPVc3UMPtksrBLYlxSXUTtovokbRC1cdyD3TMHUg0BQHU1f30n1RjjjJ1GYrq5NyUa75OG18NJy6G178TW8t//ALiPjLGSBmkkxWK5Di0u/m24JI3DNHGF6sMipeHtZX3aKMRrqBQ/Z4/fj+ljQIuonl7UZaoNimzmrbvYPdrUHozBVLG0QuxnaP8AOlMlT3wibWu9sAFjjCD1TojxkPaxBMyucztilUIuoeR1cKOqyK+daxUsixIWaH3E3EvYMgLGGMxoFLJIZAwoTnvdumUMCCkaxrqvWe5EXtEVqzN3J8U1uTKHAHSe57TqlEhRkswQZa5nZQroZ4JVJNtDHGuUuZ4CurLbSalktoI5cho7SKNi4kv4lbUTo0qgpcRwqDQiyuRGJHYkLspzUEBuXwTPDanWGXe4YuVgWVT2ghLEvPAyCkkXt1BOIycRzBwagl7qbUCM4p3VBli0R99W04klKtHEkedZphEASzBVLVCI55WeSK5NoCrXM5dCzWnJmGHtu0DZ3q0lzCyy2EaCHAS0XuFWDKwyOw5l3A6MYpcxm54uMx4jht2mmVlvuRlR2I7kM8AKwcPEyAy/6XMjEIZp7SLBHK3TSFhDzUcmuSVtbgyPJyVug2Vb+4u5cQzWgSQC4uWgSJgkrXc0QZuHs0uWMrqlY9M/JQwPo0cgkXIJwMmexgvyHoLgYDrkEVa8W8UoY/Aq85qK2fQ286zoHWuQvxZgVyPIxxx6R8G0rbZHovr6O0UF7TiojMLlQKvb2K0TaSSYiQXQ4qDvTORFCkY1XHXFYoejFYofu8/sdhQ/rFXvPuemPRdEysIBO2iBEijEaBRNaLIdqghEQ9LKGBUxxiJQq3ssjyCOOaQqoUQQiJMeqOBIyStZAGT5upCxjRp5BLT3AjlEZlcRqXKnYZ6Y9FzbvNjWacriKK3thCMmhOe92+skEpnV1xVwkRUd2WNZUKtZtFIrQgwxw5QRIwKwyRW8cYwqWEsc263dtHIQDKbiAFGe5fGVjZrrwZIFh8GaWGJSkYnGoQQRNJg1dST5CywG3UnuPbvGCSt06fpaUvkmCTbK1NbNGwNfVQsuHh/LVpqs7wS+Dc3ej4QPvLvUsSTw4jkYxy5ReUcAgvEJQN5IxIhQy8UrHYQW8QXFPFDc/MZ1Z0kuYJInWSoLGS4buyX11JAxijsr1JBpJyE5t4sR8JeS3LNvRGRUNi0bgkgEYMVvHDnS6sorgZaCzEhdHS3nlRVS6eSxgQDkLgPqIbi4ZkBtbdre4lKm8htLibSrJLQzMHvr4iXa2MW6mae1sZbqMhLzi3hjGOB2Nv7h0x1Iq74+dpmZLOAwxBDOYrhXtxYWRtQc9TV7wvflMi2VqLaIRiWRYkLvBcw3mRTW0TnLJGqDA6zTJChd2jt+VGwggSCMRobqEOY6EtpyeY6tOHa3mBCIFGB/Uj70r6KTV5zdzPKSn4d5GW6jKS/sAP3TTdyXsKqgDA6JIj51p12GK8IuTaLtmZoh3ZDIbhpFXMcF0kxIHqnlEMZc20fajMslshcmZ+hOKgnE2cdHlRCA1XcjSMIIxEGxCoAAwMVjo8somCip42kQqqLogB2FTzkHtRW8AhHV7iNJBGaJAGSjrIMri679F4r6Qxma9RW7SG3mjYgRRKFqV4oiC3QgfJv7odoiO2heRCqR2rwuEpxIr5kitJHJRbbi40GZHtSkpmSSDvwjuy2rjFCMMAtRBVBr8rO6kMAGTvhozG8VqsiFTFx4/wCdxZfzF2DFKUFvdArpVq8pfSriGSOYvUuu51hFypyguXkUB7SEFWwy9h8q6RzqIxFaWqAA6givFXUsbERGbjcBu39TcIxrhJo3Q4HW2uzNIydL2doIt1s7eKVTMZeEUNmC7lkt5SLhLixAKtaXFnFtoDavciSK+aHfMLJ+dgMLZECoX/MHf42ZZB4MKuMNHEqDC4rHTHXFT3cEBCyQcakdwZ+ooCsVjpNfWs7taNZ2SWoOvozU1zLcXbWj2UMUCFYkvIHYosdjIb3uVaWMNsS0Y+1O96LtQn9dIm6kVcfhq5WUiPheL+hjwfu4/exxhfJ6EVDbpDnTpdNuRALg6oIkjQIoUYBoIo+MVDE6Z26S3CRMFNP/ALm41qT8+XtgejFY6PCjsGa4mEMe1RIYlqKMRrqPXcKxQhIWnjk7Yt4BCKklWJSzRTLKuyztciQdsxqxDGnQOpUwQLAuq1NK0xZLa3skjAZnzodbRZVjxLdWyzgbW8U6ykvV9fmMmNIrCMOZHMttasWjlmknIZ95iBFFxypAGLNdIhJaBQiVHykRJR5LmK8ieKGDip5AS728yH3yZHtBaVAFqNNmOjIYxktM+djFaiS2BJvWlJrAKkGxleDJHIXOYhHUFpcLIAwsWtkJhfj5zmmhmtFO9nJa4Im48bOWBgjb5AxU4STaEW9pgYk7a5zT8TbuSams5LaciKy5ERkwy2V29wG3zQAHxcytHEWSzeaSLM3QvDLI0LcnCsVwVhY+/chwwOyP22DJ2Lq+IZrTj4YU9tzbm3ncvwNs6LlgOk88cC7OCGGR6Lq7FuBT2UPIaz0AAMD1XnIR2rBDHYW80oukHS5vYrYgOjq6hllk0QsJOUubo7NDyE68f3K4Jl7DAX80guDElrcS28qkWzFkBP8AdYofbx/SSzJEuzjyM0xCgk2o22na2HdkMx9ZANXc3ajOADbQACCERJiordY2Zgfjxa9/B73UEH4+K3Ermd7dD5kepo5HxpRlQHFEgDJVgwypGRioIFgTRbi8kSYotrB2hs5bFS3aZ1NuV19oq4MgjJihndIS9wjB1DAkDybiZ7nKQwwrEuFJwM1a3K3KkrVxcJAoLlgBmrq/efMcccNvbgPLeXrTNgWvGvMcrb2EUHkPaFpyaj45FnM1GxhbILcdEUVAeBBNOq20/i3tWg8C6glLqyX3Gx9/RJLYwFoHfIbNHAAZJJA5ZzBcI8fae7t4xAjxWFv9Wmr3VnLZkSC0u4jORcdqKWQSiQlUJFnNJlhKZLu8bMV5xs0YZxbmazkUPDfRSqSEne7Xa2tBJIzO/SWeOHG4FScbDHmUtBcuhvIZ7+4nQrVly7xjWW+v1uVVIpbuGFAzvzcCvqJeaVSVVJr28kNf6a4m1e9s0hkKVacbdXsaJVz+H2iiJjW5dCEl4eQPbA1HJb3DlRHGqDx0lhjmXWQADwOmQPnkbl4bVpYuPQ39sDcRRrGoRceq/vFs4DKbcRcsu8qIEUKvS84+O6IZu2I4dI4Vl7iqOZsEhYNHbcFcsBUNukKaJynCSSSGWGx4GUSB5ok0XHQnFNeRK2pVwwyB++hu3knaI+sMD+2x6h++HqKBvBq8cuRAtycKIEklMBVE9Oy5x1B79wWqAd6QzH0Ag9CMjFQQJCuq3bs5ECPKiuq+i8dkiJWzDSS5LRh1KmGFYU0WpZFiQu1tCzsZpL6WeIDtHZo8mF44i4l49WCeUnjdyi0yhhhgAoq9uzMTGkFysK6hmknj/KhmRyUpVCjAdwgyRcQzKWNzd94615waige49sNrxkUJ2dcY8Vj03QkGsiRuHXI6LHcfUEtccKZZ3KmKS0QrPNbyOgKCFygItbueD8tprpnx2Yt5EVhyHELMe5BxxNqGWZPqb5iRvP3NWMkUXtMlziLuRyFGkXc8G+SUvbVFjVWsiDCAOk1qk2CwGB0b9JwnCiUs9xPwKFR2riwa1AeaG0N5FiKHioIVVZbzkokkHZlubqQdyoLO6nw8lhxtpH5oLTDxXJWAu8CuOsxbQ9sW3HiGQub+7ktyNI22QMYriKYkR3F1DbjMsF1DOMxT3kMBxJfX4tQuJg19aApx1pJBGwkVQPj0kgDJmuRcQP8AS8bbSyo6XMMEcC6x18UKHKqbkwDjZpfqlar+Kdrn2geBkDpisDrMCVOJ4ZTM2/GJIkCiQegfsOV5/wCjl7S8VyK38O4+/eCQwt2+JtroXSt+yx/XswUEm0Gxad7Yd12mPUsB89DboZRL0u5jFH4CaItuqqEUKOs0fcQrVnbG3Ug9JpRChcorgYpIlRQokjEiFDHGI0CCiARgrGq/FTTCJC5t7lZ02AH1cmTisVrRt0JyQoHxIIbMmWkcMMirh2uX7Ed5rGe0jSNJ8wXLpH7LU7JuZrmOHG95dRohFDNLFLct7bbiEX3TBQowLq2eVwVRcDrLDI7qy0m2Pdd3UkboIwQwo2stkw+mSZWJFB1PxI/bQvVtN34hJU0Ec6aSS8HAwAjPCXaJ21nt5FdzJ3zZP+Ra8pBMhJt5jM5ZZ7ZLhdWaROOLLFYX31SkNKWuZC1NZSTqN40WNQoS4jeQxjkbVZU3a2tLsMrpc8u8LFKjv4dAz9+PUsnH3Ul1Fu73sSTCAm+k+r7IJA+Ty7RTlJp7yC//ACQ00NmVKXEwuX3Ntxc1zEHSw4mKzBxz8hUqtcHM/eKBfiuQuPp4S9QcrOZQXhOUB6FFb5ljEiFDaWLQsWe80iu5A3AWyNi4W649Lpt6e2ikQI4AAwK7i1nrLKkSl3a7VoGli4+9m5ESwy8ZxhtGLN0v+WkglZE5W7urq0jaOygvDxgAtLcpGrSw2FvBIZEVl+wRXZTOaAxQ+1HfLJctb/a5ngZLqfuxcNxxsYdT+wA9WPRisVj9zj9vO7IhKWsjyR5freMXIhW4OqLCiIEUKOs9sk+NgMeh3EkxkNrGcGR+sVxHKSq+iRxLIXa0QnMz+icSGMiOINoN5Y+4hWlgCxdtmQZ+nitu6GKNSNc/UEM2cHFsZWTMuKwD8s8glC1cTlz2YYIVhTRbuASocW1uJWKt9BFgE/6nCjai5vGnPtiheY4W34cfMyoka4XP2D8VdxSGY5tgQgBqWJZFKm246O2bZfR8CgYblPE/AR7963uOPNtt3I5rqGANGb+ZGeSohx7ouZrRovZBa3Uto2lwlzE4ypa7N1qG7UWZC99AmC2RU1tFcDLPxQhkUGeEpKxihuLzCJBcXty8/botfwTdyaeSWT9c11G7lo2hkZglW3CXGu547iFgUmZIljGqVfcdHdDDWXFx2v6QKu7ZZ4yht/w925djGmox6b7i/qZdxd8aJYO3DaQG2gEZsLiW4UmS6v8AsyaC75SGNjHS3Nw4M1WHJJLqrXXIvDN2xzkpjhVjHB9RYqstlai3jIrm72e0nCQWfOLLojcg9ypXscjDeTRgW11xC3JDm3t0t4liTpzF8bWPKxctdRuGe2l7iA/axWKx1Hp1Gc/axWP2OP6HH7kehLhHkMYokAZNqO4zTtbfmu0x9U7SKmYx8ebubtREiGL9MXpWJUJK00lyLjHS7lKrogjVmEKxzxyEqjzJGQGpnVPn0XV7JFJ2xbwzxyAHpFPHMMpTZxgWkcsaES5qec3cnaisbM25Ym+lkVdEilkgZIHdYIG7jS3b5ZUjilnbC2vHs7nuxRJEuEq4m0UmheTDEhhfZc/Y0BoDFXMlwjoIulz9QGXs1dNdC6UR0RkYKxxwJhYp0k/TLbxysrPyPGwGJpEi42dMkrJAkrPNLJC6/wC2na5jUCWG4aNu4Ry0k0OElS9niWMvZXFumkbcna+XXj761CCJL3mkYNFHY8ki5WZ+TVbjuwRciRMTcTuCwkd7hbgaSWXF3VzkB+Ng42MTyWkonhWQevH2ri1hc9x7iVJbo9teJtpMOWtpRfCMdtSQTJCkq6veWQuIwi28PYiWOr/iPq5hLUFhBCQVx6uasWuYsLDxV3K4VrWLtxgUP+mY/oQoByD8U/1Oey9x7EWFI0CKFFCOYTbeuVxLPVqmF2+wzBRkrchyziC3Eaa1DZxwsWVo1Ygmp7ZJ8b9Z5hChdreLuN3nuZ2gTYKcjPSKCOEEJtkZEV3MZsGXkEj8VNM12mkMUElrJkS3CRMqNcX8ULam4v3z7USe5fC23DsrAyqiouqiMDrPFupFDjnyAYU1X9lfI7wsEsIj3gydbvibe5zl/wANuzjFzxt9CoVlIjOHXaQkJBJP3NB/qd00mkY5RhQminiMohjtEVpbhZrBU1RJ41uD2IoDNIFhtvw3N3dprfjra3yY8CnjRxhgMDA6SOFFTcxDE2rW12kwytQXcU7FU+xPcRwKXe2u4rhdo3XZSKt+BEc25VcCsD7mKIzQQUPTA16b1g/7KC5inz2/+rE4GatR3ZGnMA7shmPpaVV+UcN8VczCGItVvCcBTjq4OpxZxTRg93reEyEQrx1uNjL1uZjDGXFpOZ02JZR81em4AHZQkINkm+qlZauFnwBDLOIdQwpIpFlZzSIqDCyIpU0mROe1aW/ZXFSusFyXV7ydzkwxPK2Et+Hydp0jSMap6cVj9pqKx6prWGf/AOSfhIWz2ZfwyoUdub8Oz+AknFTLsHTi7yQK8Un4eu84qz/DQxtJBwllCKRVQYWs4pZFb49F/ntnA0LMZPw9tg4FQ2sUJLJ9jl7R7mLCcRYyWynuVj+pSJI86dcf9TvXJAiWb8uIRJGgRQoV1bIHU1esWlCmwdhIVAq7kDyhaghlMncNAXHfz6TcxCTtVLII0LEq7ERhFCLqJlZkIW2jkjjCyUBingjkYM01wsIBYeau2kuJezHDClvHqtvdR3AJR2CqWNvOJ12CJOJmY1LdRRg5eS5vviz72QFuroYKiNHmOkdtwwxmaOJIl1TrJME+YrhX+PWHUnAZwvyk6N8ftXYKMmG+hmYqmKwKAA+PTyHcEDdvhvqe6dh6JIwwwZeHhdtjbWqwjAoejPpx6rhJHiKxW6OkQWT033IJZrs9hyUd4uU+6avLxLSIyPx/Jx3oOv7bHox/0knHmrcd2RpzCO7KZTUNukTMy+ia1SX5htVj+J5RBEXqGInApQFGB6B0+mi7ndqWUMxc2kRUGR6Mig6n6iMP2zU0hjjLiGQyRhiau5zEmEtw1uQhjmSXOqoqjC9Lt51x2Z+RSBtD7JiZZEvTEhWKGKaQlY7bhv5nihSJdU9PJE5GbIfnExr8epvirSyuEui7Xyu0ZC2ccglBCfH7W7jMkRUcRxU8E+7j46j0kA0I1X49OKx0dtFLVZXRuY9z05bl/o/avFcwbpijg5FD7Q9PKcc12BpxfGG0BLdB9y9sku4jG9hxkdnkr+2gt+0zN9zH93j1XbkgRLL+VGIkjjEahR6ZYpmkVk6Xcvcl0Fonjb0bD46DpcyEYjSGMSyah21GabkfdihAkriU/Txl+4aurpbcDZSCMi6vzbTANaxmVvqHq07JUmJ4JTOJBcQmTBFzbl/cVuJ2zFG2T5ZVaYduC24X+Z440iGqVbpcCRjL6ZIFf5jgVPj14oqDQjUfYJxSuD8fdA9f+p24n7HUuqkA/YxWOmK5fiTdHK8TxLWzl3UftSwFA59Y/wCzmrb82RpjCO7IZT0giuFmZnMqKcH0XMwhiL1BEznBUajA6vaB5hL0luJEnWMO4jUsxdz5q2eIDtJKuy4r6eTzHUa6qBVxcR267OpBGaK5o3cIyKhtfqJDLMoCjAmnSBd3iKOgZORU4Ui8mh2WQXU8k3lreGd2zHbcSn6pURUXVP2BYCg4P2+RMggYx8Q0xmxQq/vRapsbHmBO+hU5HoHQsBQINY+yOKiFx36HSezjndXf7mKA+zeXiWqbvY8tHdsVH2+ev5opBHHwN9LOCsg+6zBRlkYONl/cD0SyrEuzRc/aSSdsBgwyP7QfbvHOBEkvsjESIoRQo6y2iSyB26wXaTuyLdP35tBbJj3+vFX9z7tBY7Ss0zpBGjl1pp4kkCGiobwaueTSN+0iLifUvexiXsiytni2d7oK0exnvFg1Ec128pzVvYyz/EHExR+XKeMBVx6SamnZCoX7Ml0kcqxGuTkZQAOPkYSslD7RXPysSr8VytkblMCw4yRJe5KowOg6lwK5q6lQgJwc8ssXv/anxQYH1k4rYH08nYm7j0HHcW8Ehlk+3fcXDefrs7CO1XVPu3MAuIjGbaAW8YjH3B9wejmoXmtWVEVpMRLbIVjAP998DJtz3HadrWUXDNKOmOrHAJq2uFuF2Wrh1gjZ1tIthWMVeLM0eIoQwQB53lVlEfWe5CjVFgErdoKoQYFxD3oylRR9tAg1BOTmry5lhA7a8gGTB7jj3SQwrCuAVgRjLV/MZCCFlnlHbituImfzJBYww/H2JSQKtLuZ58NcXnaGatr/ALjakHP2ZYElGGitUi/T9gdR0PmgB6WOBmr/AJaVZu3Fxtwt6vvihWMYXra2Rt5Hc/aJwKl5xUnMVI2wz6b8SmFhFwiXSlu96uXu2toSy29/dRTqJYzsufRj+6IzQhQHP9+KvZDgRJcHRVt44oliXVZ1uC69r0YpUVfip5PqJsCCPRKmd0jLJEzOgLdJJUjGXRlcZErqikskRhb2QQiFNRJeaXAhouFGTDOky7Je3rRnRPqZlwa+uCQ7s8ZnJaHvBNY1lml02cZBxHYxWzt+bGqIuE+0VzXZUfF9bs48WsErS9yRB49Y9WPSPuMuVxV5wxlk3TjeOFquPXjrisVisVisURT8LA8/eKrqMerHrv7NbqMobbg9JQ7ouox+8DqTr9q+ufpoWkq15+d5gHQ7Ln7EvK2sT6MjK4yv/Tbc7s1w9qC7GZpLlY/mKdZBlaeRY1LMjrIuy9buVlAjSwg+S3WVmVCUtXlePMtxbJOMPGixLgSzq57jWsJGZJKllWOQbZVloaRL4mWO6y6MQM6xxTyAu0Usdp+iIXlzkiLjI4xl5vy7jaiVlnBjMphi2NjffUk9TyEQk7ZBz6cjqUDfIjAofbH7PNY9F5yiWx1NjfpdDI/cXcc8keIB8fZdwoyZfxFbRyaVbzrMmy9R+wW0jSYzj7NzbrPGUa1/DcUMu9KMDFD1XG3bOsscm7dz8PiUWaiX/pgqcfpt0ChRgXsZWQOePRt2boyhhgqoUYHSSRY0Lt+Y70ihRgeq4l7uUFtEZWErXF1HbjLwOXTYzQpMurSh4IwsNxdxgGOTvKuVihYA+0cddXPmSLjIYfNDGKxU9mJagsRHTRBhgw20cP6KPxR40GbuUowPRNJ21zRvpzsy2U/dTPS/mnhj2hiYsgLenHqzWerypGQH+2PsX3GvLIJI+PsWt8luoonAqblIIW1aGdZRlfSf2VtdRXKlo+t6jNGQpsbtJStcLbvBbKj+skD5/ftYQM25VQowP7bH7ezUvmZsUUBoKB6pZhKxY2kJUGR6uIDMBgVElwJ2L5xWCWDC4n2yiwR/UfGcfMzxXAYVHcTSJrGbnsA9+flHY4jit3uc1Bw4+ZYoY4RhKuo3kjKpaxPHGFf7YqaPdcUeMYscW8AiXA+/jrNbRz436YrHQeodB9ybOhxc4E7938PxyJAN/wBmPQkaRjCdSK7SfNAAfYurNLoKG/7cqhRgEhQSba5S4Usnou3uVcCG5mdsQJBCrMAOtxdR24y6OHXYXsLTR6rMwhRUia3mnAUW8IgTUSyCYaNm2tAVCTnylt9KAc3EsIcjs2Fq0Xkj1Y9U8whjLtZ3guQSKNDpj0FhQIP7dZpzcFD6R9kdTUlhE7bGOMIMD/6WVQowPRPMIkzQRgdKjUIoUVM8qsojFTQJMMPNfxW7dupb6RgVa0RHOzPdypL7n5M5OFF3d/AsYIBmaCWJlxHeRv3iTxtuVXLY9Q6j0PGHGDDBHCMJ65GwKlu5mdglhcmUefTLcxRMFcftB90fY5bl57abSOBzJGGP2x9wf9CH7HH2h6sfswOpIHS47pQiKIOEAeSQRrswJP8AuJLeMrl3HonmESE13u4dqkRdsg3DsNai42eU5qDioIvLv4XxcuZJtai2inMZjQMMkAD7uPtOuwqXjizkraWvZGPVd8bHdSLI37mOaYzsjeofZmsoZmDOoAGB6R0x+6x/1DNZ6j9vjok8buUWrq1FwACBgY6XlybePYR5uAJZUl78m4jtgsvdM9ysC7NByMcoJLcxFnCzcpK3hGd3/VHZysNmsrW3lYq0UMcQwnRhkVdWLO2VtbFkOzIuB9kdcj7uKx9pmCqWNrdx3SF4/wBkOufTjpj7WaxWPtZ+2Og+7DcGSRkP2h/d5/onjWDaWJCSoJqWVYkLsLqMxd0Jcd/LzTXSXTduiqWzbBb+eT9NxPKx1cLGvxhpTgQcVI/mSKyhiHiS2SRSpgtY4P0+jWgPuGrSylhnaRv3CRrGML+yHTHrzj9jHNHKSE9E0mik1P8AiLSUqLK6FxGGH/VB9rFY/eD0/wC3EhajKT/8TyXK/qFncuPc9i8flnAaMMRBEVBR5YFp7kGk705wkHFfzLFDHEMJn0u6oNjDcRzDKegsBQmWgf2Q/azzrAhdopVlQOv2h9u6tluVCkDHQ9R6QPVHCkedfRPHupFTcFcGUhOOtfp4wn3cjOP+kD+ixWPsyi3tfeY2DrsLqOFwDII3ZSXm7ZbWpbwsmkbyySHDQ2E8vxDxUaeZFVUGF6Xlz2lzVpfs76MOs8ImjKGysRbA9JZViXZ4LhJ12Sr6YxoSEuZUILWz7r0mk7UZerG7a6Uk/wBG6LIpV1UKMD7JOPJUhhkfZHpxWPuYrHp1FD1D1i2jWYzD/tA+3//EADgRAAIBAwIDBgQHAAMBAQADAQABEQIhMRBBIFFhEiIwMnGBQJGhsQNQYMHR4fBCcPEzIxNSYqD/2gAIAQMBCT8A/wD+Kp8Kmp39v+6HCQ7oyyqVwuHEf9XLBErlj853KpqdvYUlMLSl231mcY/6vULp4eWOU/zBaZ58ituuebMkKb4/6DmOsR7R+buGVS1+WOEtPLe/PkKZcCiSuCrtPf05Ch087Fbd+bgodNP/APpz/wBuU2x19fTWqJHKfGpTFCKkpwKZ2O5KdlmDtVOrpA+zTOG5fzG6/wBhRJLhfAY/7MV9V2lEQZbnj/A3h+hV2UUSqMVPBW0m7zcqlc3+xKo2bRXL5GMCn1H7f9x1JtZWilwVNdm75JchKnqV9pCjcUtD7TXyWmcjikUU71P9jvVc3/3FVJlk9lYW0FcvCHDTxzM4g8x3Pw+W7FEfPRXL1bJZLU7U/wAlo/TSssv9EOedoi/5GpHb4xw2oRVHa2exW4XJ2fQpiqNtiqWvnou1Vu9kPt1vd/sWfIs3uKFv1FNb+g+1+I92Z02/TNUJ58GlvtfqKl/Is341ab8NNWnSqGyhOj8N/NidNFrcymOzgqbncfuzu/hbvd+hZGVsUuEMcvd8i75/9AODH5v9Mx0JzacxtPjrxnEopiGrz9uHzPB+K5PNTpTiJ99Epg/FijLW/oOKN5/Yrj8PcgwVWXMt+FtTz9RWG1DduRdzBdbsvW8vkhzz6/r18Dhq6f5at5mduUfl7hrBQZeiXd3ew+0ihqepU5Wf4HFvpyMaOwu6vLT+70uUX+4vRF6qsIvXVkYy6/XfP9Bw1e26jn8di83j0Ku69pnR2e3MpdNKeM+jbF3seulPZgQ4b5ZZZPmOY57i0+RsK7wuSMnIp719smdGX/Er+i5/qlzHjr9RVd4aKm6vXB6nm2Qu0JId9i9bwuWmfoPRn/yofzenvw52XNn/ANK/ouX6pWf1Y3EqMRG82nSqG9XDWWS73FEczDHL56WRj/itLLXGw7vzPkhWRtxLuU+Vc+v/AEw8RCjM/oCqKnb1QnVUtkUR2nETf5lLUvE7CsWRsY/c2F/+VH1Zg30emcJdS9dV2b8W96n0FCWP06x/kShpw0/0rS1/WlXaTlq+T8NdrdvEfyJPE+5ndchRo4Hp5nl8kWS4vJ+Hjq9bxo9M7Lmy9dd3/H6eU/kSlChfl7/JHI4QlfdDh/cabm3qLLhQVf8A6VKfT1K7J7aOKRxA5ReMep56r+w/QzpjTz12/s2124P/AJ/h46v9ETF/Afxe/wAZicRtGZ/KrswvhG0t4Usz4WxU16DlowxzgbpdNx9p8ivsJbIu0b+VbyVd6bspl89Loqhsu3uf/P8AD+rM8NjGKfTnpjVaeeuy/dm36QUr4/YX6BdmXb+Jupuk4bs9/Uzw7ik8z0ah8y/as23MCu7tlSTHk8tNqfXmS+jxqtPPVZGcvg+ema89EYVtVpaDBjFPp+sVH6h53izgq5y8xyQ2pSdt2yZfz6FV4wKHFmPuojs1b8kPvVZ6IVkuJd2iy9TOrFBsf8rU+iEZeiyXMHmr+24rLR/rRTGwongxD2mXsuk/G/8Anr41TT9TP5arUYko/wDzX1KbxZbIplWiVHqK/JFUU8i7eDG/ApSQoqrtBmPqOY3ZkwfLR96t/QwhZ4cI3tT6aO+rhfmbiSrtL9ERmI39fT4ipqbPxm0nt8cpgi264FLYoqXDSmqXF9zfTDH3tlzLOZ7PTqU9noOBqd2+Qu1U7R9J+Qn2s1TsYWtkO+nkosuG+mF3aR8Wa89EKyto251cP9P1OqXN/wBFU2Rv8W4aHNT4Wobm4nab83uODvVI80qfX/wUtFMJblUyI2R5q3PsYMDuYTuLc81VkO/3ej0ba5DseauyMI34djNeOiX6EcL8x8u/zv8AT4RW8WrtKOUQ+XxNUJm3xzyYetPee5KWfUzK/sVxw2Uum+4sCcznaDGajCFpfRHl/DsvXTYYrrArc9L0/h2XruZHjh/5XfobcK8ff8wSa6/Cv8wfd+HcJu7Kpp9Zv4Dgc/FJwO3g7YZZIXzQobWB954FdCuZqNhOFpseau/Ax2Qruy9WZy/UVn9NPczpl2XqZy/Uzw+Z2Q5dVnwL4FzH535tvUzv4NUz+iFHgYQ4a/I1/QobMNFUpr0PM8Cl7IfYtJVL26kQsFXlexSqabpe3PTCu+JHl/Du/XbSmG9Fr5fw7v120Vzfg87dv5Kpjgzq7L9NPHjKyN/zq87ChfFLiS7NLh3v7a4KWk8MUtlqtxttbbwKLIUwf8diqIZuUq5hIpdT/Ef01cTrseatzws2R5q7sU8Ctpinur93w1tDxo/M5fov0C/id/Ccxwb/AJBUm18Rb6x4E4tHPrwVdmnmX6818PTcUt+yFEilFMfiLAm6qZuK7WGNKN1uO4xZuJxMTtr/AMrv0FZG47FMxrhXqNtcaM3cv0WmDBjTJX25VvVmd/Xg3KZ6l6ndmxvZei/MHCWev5Zkzxtufsp/nx34l2Z49yLKF+e/awrlLTiehe1xxU9/uZ0fci2lfc5C7vPppgw7L00cNGNM02L1Ga39C/AoZsYdl6cFtV3fw7v14HpkphnmrsjCX6DTtvt8HVEO/X42lpp58RSKPyFjn4FS14dmypz6mVZ6J7Q5svXV5yucaVX3L83u2LzYsUscxtsK3Qa9+Q5181bg24nLq+hgdjI5Fp5q3CNkVcGCySPNXfS2lUIc0s9NPL+HZeu5j8jx+Qp+3gK6x+SRCjOXPLVfDJxz+DY+DI/FcJFT+cm+uMcH04lZaZbkdh6U2+pU21tt6QTCWB93NsyJdkRhmHpiLChPR4PLRZevDsYKZb57IV1nivT+Hb3Hdop9h3SMmXp/ycv0XCpQoVJnf1M7epl3fqx91Z6/kb7v6NV/BcJD0nN4zBnw+XwufEfFh6bcWBcdMSpWrmrqK5bnIs+o4dW5VdHLJVJaRCiij6vR3emXZGcvRX0ej71b+gplfYyxiFGnojLu/fS75mNdjdwvRaZ1Qur9tPLRd+uw77vkP9EqPiXn4fDHLblt+C4Q5XCvBZQ44k9ceJtpt8CofAobNi0aOV0LIWXothRAyU6TzVfRGNFLWnlo+/Dkgxikd1wXFY8tF3wOw9PNW4Rha3nXfHobH/1/Ev6J/piqXPgvuxjrrt4Tmfh0Lw074ez12Xgb8Djw18BZDmmRd3royrRSOIMQY5mEd5Cl/MeNMLBd7LmeerP8DnTJ7epmu+tUMqllzzV2NkKG86MemFc81bkdhTVgUNlnr5aLL130xwZqcfybCmLsd3n84iN55eA7eCl2NufEtau0/D2/MHc21dlhctci4nHCuDPxLnSmVzFK6jwXp6GF82Yjb9xW39S7FEjybjhDwpkwsIwoMPOuFd6Z4b00WQp30zpfT1q9NN9PTXLsvVmcv11zo4SLKIU89Hd6Ygdv0BV2evG4+ESU+FhG3j5glraVD+Cca4aMR4GB+GhX8d+ChXN9VGl2PJ8iyeilvAoqHLFKLJZ0sy7Y4g2M1cT71Vkf5mdW5Vy8DxkzX9h6YHfbkVm55Pws+r131UpO4sXnkY2RtvozP5Xsb/HZieLG2jh/B4ZLnd3fxcz/AMTPFccx4eBW1fgPA/iN9aoHZ8h3MaM9x3QpHfS5eqrBkdm8GTH2en/K79DYTcZHbRmEK1ONdhSI3MZqFYwtFNOiXqXhR7nmqu/fisjy6WjXHxDv+V1Qltz+PbleNOHMq0zaONj1z/OPjXwIQyqz8DPGvAyXZh6qyMFNuer1yVC7yHCeRuNzLx0WlKkcFTMRJ/yx6aVQmbGNPKvKubM5Y5m44GXLPkbF6q7+wx30evlou/UQ8abjwWtwxo/iFf4bbwnL4c+I5T+ngbChPn4jv8Rk+XArrwVLZh6wkWa43CLrRlykpKLH4Z+GUXKJZ+EuyUDgrKj8QfaKymSgQvgNinu051eTArStM6N/sf6ddzAooWBxz1cNFWDfPoWSwuH/AOay+fRHk/D+5gsZMsYyy3FA5Z5512NjzV3eqMaeVZfPVCiBfkj8ZT4ad5vso8JRRtz4Fq/NrTHFXKeFy4VL4Kvb2S+Jpvx1JtauVxotPCirRaMdx34t9MaMqKmMaKMlLRAvkVR6i7XoUNeHni3HkfotHpsY2FYWlqFnqY4VY81X0Wi1cUrzP9kK+Euo/V9Rw19dE6UuY/oKNPQRjcVzI40wr1aewjcwO2756PXy/kqfam/ibufCduHfRxqu5xuJcfH1SnP3t6QvhqrKY99NnPqKJi3g50uxRovEzwvgd0ZFBW4Lopgj3El6FU+pSKPBd9Fo5HbRGdNyyWuB4030czlmx5afqxD0cFUU7sskeWmy/dnlRTKW5OR3f+gpcilIUUL6mB3Y5a0RlFoPPXd+mxsXWrtu+fAp5FnqzC/L8fBrTPCuHzdTP5ApSypiRy/ibIUi1zopixuLJNtxzJlmS5yN9LDuZ1XgOxcQ4O8LsiTKoKZQvAVjHPkKUuQ7C4McDvrcZeCLjRZkQbFvw93zFZFV6s9ELoWQ06dmOYzpnYvVVk2EZGYWB25rTy03q/gyZNvuKGPu7vnwWgsh3Zto4FFFP1fh5/NFbTHh5p12N+DfTCPTid3xNr0cSuT+GUtih+J5pyORRq4RVjIpfIfto7sdmLSwrizcwOR3FI5N9GMzpjxG0OUKCH6FRQ+JXFE2MMV9MG2lMwUwWWmGZPfRl2xzU8juyyGW/DX1KIS0ffqz0MLc3sOHpalY6mdl+55qtH3eT0VufIU9TKHLeDzO70c8jYcU/fVWL/sLR3euNy21vzF48Gru8tI7O86443Gjgc6OJ4cIphTbquJQuLK+IwOdbwKPAwO2llyLIY7iLQd4wKRRBkdjJhF0Iciwy0ZEKxZ8zbJlCkR7mC5jRWMIWr8CpoUo+p3fQUotohaLgsuBaWWjkV0XZjTKHL4F3KcGYMPBkdmPuLPX0PKsIxstHZFUdR5HdZH6QZWZPJRjq9LjhFqVhfyZHpgdx/1Ax6YH6v8AK3HwmdXfOjhoct8an4uHjCiOntxvhwhR66Wkct+3iqFwMUQyqUI8xTZiwY0V9HI7mBX2N9M6ZMsqhGB2FZDgdiRwKUKT30hLRemq4rFU08hdkyd5FkY4FwMeq0ceg4RhCsLJ3qi9X+wIeB5zG3QUJF7TYwXEOEi1KFA/c35aKBDipXQ5/ErzGyMId2O+3qVTGthW2FdCu7i/szzMljL+g7m3xTnXPwm3hKFs+Fw2K/E44akp58TM8OfhXZDmOFR493pYeC8lkVmB40ejmTGizqxj4UxGSqzKtHAypI/ESHLRQ37FD+QhXQo0agqQhC0QrihlSG7chSiJfzGUtdTC1wWRj76IUIVhwhyhYLaY3LI+pTEYkeMjmpmXkeCmVzLwKazJ/urLGxU/5LSTbECuOEsHt1PPV9EbF6vt6jl8GWbmxdJX9S+z0wjGm2R2+Mc/Hu64VdYFbgWXBTCWHzFbhWOBZ0cTuX4qYS+EVxeJsOEZQrLWyLaXRSbbmw5kWimWWWmxAjO2t9MmS3qOReFkZUVYFMn4SZ+EkWPxRpopKbDiChNH4akpgY7CsOxgszvLqK/Uq9ikeny0Q7iLltGMY8baLcuKan9PUd3lj7vM9tHd/JDvo76OyshRSty70ftzH5foLuU+VfuOyLLnuLV64Klcs3cy+FWLLHxz8PPA5fCrFtVKerlaK74FxPgU8Dhs31wzC1pilY8FpN8E9qbco48X9VD39fgdykyzEl2XMHMtpGRzGeQ/YsXuWHJHvqkYGWkcavV3PkVZMPTJuLArj0bYzcd2JGRmw7FcHePw4PxIZedxXEKGVQLtC7JXKEONKvYUD9hQIWivOTJcejvpY9xxGi9y9TNx2RTOiueZ/QvUyzHC2W79dGnSIbgwz/5rL5mVhDnprkzpZbMuP+eg46MdkMc6xBcUfHJQnnf4VXemac8ChaqVvxb8SxvwUxDt1XMV1wvwKZngahpLqonHAvhvtEdOvA4jSyHBLkskP0Y5Yr76ZQpbyIyZEkO2TBYwNyWFOltHYVhX5mcihH0FYunsKFyFI7i9iyLt7jHA7juORzotUWK/mU/Iqh9RJrmjAoa0ZdFmVWKb6OV1FDHKFGqLlJVBkycixuYHPQuZYoGUnz/gvVuzCMY0eRSuhyF3V9RxSvM+XQsuZ7mwjJZrcZ/upaBlctfM/ssuJC9uJeM/EUmfFtJgdtVfTPhuPAphLfi2Hbhrhrd/EMyyqVxzHTmZ4sGGOOUF2OP5Nh2wZRcZnRXNzGtmh5+Y3pSK4yzHEDY+7sO+NL6YPYY2vUdy7/YVmSXSYpYhTrsY1ZkzrW/Qo9x3H2kKC4oKpRTJV7CHA+1SLvD7SFAuC4mWGMZVIraIcLZfyJQttHMvcfd3gUrkKI2Pb+DIxwt3/A7IVjA8aZGhQi8jkVlkrTZU4368KujzfsPP23+Fqvy8LfwVrVBtbVY0yr6Lu7vgdzOm/BuOF4EPnop9DCN9Vq5gbsojbheeJ/AVGR48TI5Y5N+RaxdvIoWD3EX0UGRCsKZ57DRYciFBdtwYHEFUvRwXY0MvwK4pgQ5MopUjjR90SLwWMFxY0Z89Lsvo7aYHBdDiovSXQ8DHA5HCHBk7yRCqF2lxLRRoh2Z3UU+476PsQOepjg7z+SHblr8ti3IVizHorIsmf+jty4s7HmY7G2DH5Bnjjs7eDHa4sPXbRXa4XOlLfpo7vRXfA4XC7CidXZ6O454qJ7W/FV2XOm/Mzxu2mEJp9eFzHC7GWMj2KboTLP7n2KRRArPTOLjNxFWlmxz9B90c8jLwVXLDiTJDHf8AYfeGXFo9FApKh3KrjFcXZHdGOYsG44Wm456CNjOisMpljguy5VEchdqkqh8hQzYYhilFvUUDvzQppH2ain3WrLlhlY5FHUfaZgUpCsKw8FV2TUWj3HL0Z7dSyQ4HZF+QpUfId5H3eY7fXTHIY9HpcXvyLdXpg5fX4NeC/BeeJd3fRtNaMVuemBwZeihLW3BubaK+NdxaOVpl6XW5biVozq44Kr8viFMy/ZcD4MFkXktGSyLDmdhe5tpdlJcVxQXY45rT/MZDNhWeR2KT6GTbVm2RG3IwJyI+ZnAmy3PRpa7iguxZw9Pcuum5TGloNxXM6IZVdmwoFJVBT2kOHy1yMsOUWZRgUMVh+xTfgfC+FGOC5ZLAh5PNp7lz26lNxcSsWLszyLIccxfP4NcCjTfhUMeiyKOFTx4m/A40URuYQ5RjRStHo54KZqQofAoWmdEoeiTU34qppeEMUxwZ+k845lNnvy4KY+DXH8hjxpiBWMIcMbSYrDsO3UvyHoiWx5yKf4EY5jGYFFy7Lsu0WkyWmw5HEbaLAo0d2Kf20lxpZGVuZ2H3i6FKnRXFcco3GK+mRJIci9B8GNMaMUjgWl+CzLjKYHKFD4H4C0sirgqnTYZvkXAyzHOrhlXeHcz/ALBnmfUf9+M+JQ/EYp4VYyZ0vfVSxaqWKJ1uWnBl6u2jn1Ek+mqh6OJHMaPTOjh8+Kqb8Ht6GNj/AI28PLFdceb/AC28DIoX78GR3Hccaqw4TLaK8iuWp6jkViwzL3HLRhmEY0pLtiuJiFohYKZexKW5Mc9FqjIs6d1CHpb9haNXMssO47GNHCWjwYEYNyHBYc8GDArcLFGjFo5RTFXMq7SFA+BaZMijmbly/wC2mEIuKUz5chYEPguLIzGrM6X5meoofTc+3jT4subGOCm8549tFOu2mNc6LgWOLcZtwWHLQuN2TueXY31xvouKp22243DQ5b8NKJjrxZZlGRmwi6RZMxq8F3yKmlpcw9ixgelo3H9C5ZD9xty8CFwORxIx6UyyllWijS2mw9Mkt/fTctA5eiuzImZHc9i3+z6DLFQ3f6DkftwM2LGNaoFPUZkdjbgvpVK5FMVFXaXIUDGIejLGeY76VW5CsZGVG+jHoipJDyZ5vXBYzp3uper6i7qLQK7Pw2UslFXG/DzrjhVtM8Sm/gK2j4FbXOj1eillHd58K0wzC1whyhItqha0zLv0XBVN7ehVCt6qOXr8C9FfjyMdjA1ew4Wit0HYU/Yzos6M3GL/AHMwbFxfMWBbGULierud1esinRZFP3uOxLS+QrdSmV0HYV+YpFEmDKQoY8fYtwqSOZcVz/zRWGPIsb8CiTI9bl0Y+uilfUZY2GXZbTJkZT2XzKpRS1opWiyODcY9GLhuyyMF09KjbW4hFWBdldMjne+4o6o/ssl8yoSZQ0MYpHHEo1xvpjwccOdMvOr43HA7DvTwLXc21xtqpfE8bc9XjVQtMYFZbItIreGpaGnEXX28XLKnJla1bxHA7kp7iFndiuOIJbHME/wY0eiyb/TVwNlQ7mxT6zsY3ergqlGTaRf2KNMRcV9acYJ0foWWUKy3FohStcaS0WfBsZZaBwx3Y7DlrRWPYVkb3NtzzctMaIpsZMjvuYN9LJDksI20wK70wX5FVim5WUsRSWkqHZcN2OSJWl3o8a41tpLqEkln/wBLb+pkUD7KF2quZVKqwkrCaJJKUxtF9GLR8KtwLPgLOmxlcFV+WqngxxvItarv66O5VD5jutXwO2rlaK6Lsbnfjc8CsuB24smd9XfgaUvLwjL4MoocmXqr6+5akxzMH8aOeZlD1YhwxW66b9Beh8iUXYrvCFHCrW2yRD0w9VcY4Qy7O7zKpqRV3nsM8orauByKHzLroMhMd0bcKlmUPvCmSzRVcWMsqiB41zpd67aK57iszDZ/Y5ksiGuZdau/XgvAoFIpKmmUzzKofIptwrRjLC0y+DAo1pgTEVekDsVL3yL3eSrtJzEC7u6lSN07co4FCGMSaFwMsPhdtMbaIUabmdHxLgcrV25GEYervtozYZcV1wZMviwOEY4YV78FxQ+FzOrhaWnwm8zG08/CXE/cbkePoblUs837aXF7mNFpVcqlsQsjuOHA7oavJ8y3Ucpa4FL56WaHwZFC+rHDRdDcZQxwjDZZfwY4HvYcrWrIrc9Fwemudh3Li1p0sthZyXMMecaOTYV99MbisQOWOftApWw8ZFnGjzv/ACOP30Vxa40dyrsnepO5Ud9dBQ+FargXBN+RT2l6lXZFLe7Hbqfhy1hvBZ/Yhwtxw3sjZn4faQyyLvhszPJltFoywy4oeqsb+Ar41cPiXE7aq7M6KHrvqxDi/wBNG16Gw5WwpWitwO3A7aqZ1dttXK0wuJSxQ/hLdPQSvo5fItAoem44W+iklF/Q3wO6LtFN2WSFHUvKNz26F5FwKy0cJDtvwXYoGUytxRHIcxsK2EM24aZ/YUWxw43Q/bVRUZHkd0eplluo8jMIcaPewym47GfpJYxo50WTG38F7ZGOxsLOdM6XQhlWkjZUUy+Zc2EfiNet0fhK+9J+J2ujKGW8LOnuSyy6FcepWqqht+iKKju0ldSpJZRDFYcvwVPUcowYHwXLcSmeDPgLOrjiUyY1m+mTKNtFMbEqL67a44nbcUaV9I0d3wOJ34Ul6CmDfX7zHE4XFT3eF2uZ4buBwbDsiU9Mj+QsaIf8DuKXGlPQlUmSmw0oN3DXQRUOxl8VUNmWXqFDRVZ/6xTKzz0dzuyvmKfQpfZ5bQY5FIuHG8GeFxuy02MmC4sCsheYqXRCnm9xtNZLy9X8tca02X1HjI9HgvcyOWj/AHUx1MaU5MsyMUnlYxFxX1ixTBf7ix7MfsxTBar5WKV+JS/mKHyKY0UHaKn8v6KvoP6CPuPTu9WVz6CVafzKFT6opQlYZUuyX9B+6MId/wDfPgeiYhMRUMZcsxX8JjJExXGY4FD4HbidtMabjt4LmTYwtHpVGmdI7O3PW7H3YL6MdiqNfLt4LngZtw0XxpkbdPXnor8OS4o2GLgwQPf2Gi/UpbeloFfYplHMt0LIWnl0cNjwJrl1F3RzAmyl4549RyWfMd2Uk2WihpYF6F00OWxSKOLG94HfS7FGmXphZZeNh+qM8hXKe6WJteR7f+6Uvs8xLsspJjIpTzfApFYzIrijmhzuW5Ctvo5gUyOyJjlosabDzgwbl5PLphaXYjIyxTMnyf8AI/Z/yJfuVNFYpXThc61aVqeRZ8n+zJojldMaqXyZS0uUSOPRlXa9SmOuUX9GWXMf8D7Jf/bMQ9HxIXiPRcVioYiw541bR6VW5at22KoWIHfTfRw+Gvu6K7zptwMUzvyHd8WPAUcGPg3cuzzMsZHGjHnIxfwKUjcqnoKzyuRf+BRBZiFCgUubeg5q0WwsaMlfuLoPH2KhXZTk8rfBVO1jGwu1a0YKr4hlM2hIV3nRSKNbPWqEuY5tngd2bib5iKZTFDLVfcUNXFC5aZKcHsZ5Gwoi+S7yhwoHJfn00yKXUYIjaDYV2XRuKx7/AMivuufUcdNVo41xsLS4y7HAxaWkbkp0bggskORcVX0/Y7y6DmnqNn4ifRjXyK8iklFTJ+Yh+CyrRCgfjK3DjR6MV2MfEo0xqsFm+HA86baVQltqscLiBXWqhPA2o5cStwURHBTZChcT8BNxpgULfS+iHcyX56fQWCq2CYFLEO244KpPbRd5b5KYbeVox3EOGOZ2KbuRX4cJ61Q2PvDlIfeiOo32qsF389VM2vgUa5nVxDMaWYzOmeBHszOfUdhuMsc0i/8AdzccQYLOIFZ5/cfmeSqU0VdmMChtGGblmOI5HmQoWmdMf6xcwX4s7GVorilrcgbyY2GJtH8yKB2FHUbKhjFdFCj0FFPSw4p2Pd8iuCpMpn3Pwmfhv5H4b+TKH8meY/Cf0KHI0j8RfIqYm/yVcDks9HqraK2qtzL1RgUMcQOeDc21Vk9XbRjsf8tMmFrlmVq9HOmVq541KTFCXgKZ1TktUKWh3ZdjwLAy4rlkOY0yLIs7DuX2LPYphpFJRYU0s/Cd2PTG86Y28BOOgn2YU+wu9U7JrB9Rb/cu+BT0FGjhjnVTewoXLV3ZlF55lKnhUpl6dmKIw+fqLAmU2W4oHI4h/MZjn1FgyKRTIhW+paljlJDtpVbkXQ/Y3MPRwx2HFWu45ZktUtLoQ4XoYRaNP6LGeejgyPR2HFNO/MtSs7GFZC7zz4C3lv8AK3OiEW0Y5FEFWmauBQZKbRk31qhl9NxYN+LNOitp5uBQ+By9FnRXYpgUTwKXwrwnbfRwy7LF/wDbi+R5dMvBCZnqJXHbkXFFO8jgeeZGRSmUw2U2WNKZTyO60UsUVaK319eB3KoGVd1Mc0vYhDsiy6QXqfCpQoWlURzHMaqUKI21di6V50zxKUzy7PkOKljqKW/oeSMdRWf++uBLs7F4L35EQKE7ONN9MGDcvto7LP8AZVF86O+mVgyh96mZ0w9HD5iUFJSPvHm0/stA7nl57yVWjAo5MsRpE/TSxZboxuxQkWQrLHr+Y4LrTIra3Q5RgcDnRlnwOyzqrc9MjuIyZ0YzY8z1UPWmUx3Y4HMaOXxru8DHnHA+KruzMdeGnDmSzf1Nsi9TB9Sy5aLP0HYpwOYFCRTKY56CsK3XJgSc7bihchfIUFxYFEaZfC7m+jGT2jfOjUUuSqKUpS+x/LKO8KOFwhytPcxvqp9MyKL3nM6ZZ8imNVK5JwOXwqUzy7PkKWXXIUNK60wXqXtJbfRw6Snu8+o4LisNpzgyokUlMlMMcC1UVGcPr1KbEDhjvzLPXc8wymIwx3Z3uvIURvzFIp/Yfvr/AOlv2EL1ZdfYiNkYeX0FCX5e9FwOHouBaLVlJZ9TOi4Mj0ntLTzC0d+Kr20cJjmNXPHnVv8A/kkzrS2uejvxqWLGxakwXjGjjlpYXuK1i7KrM3cClc5LL6j7yxPUuxQVH+RTDW5jmK2NWY0qlCsYY5LsUZFc8tv7FvkeBNVbsdmMbpoyxOn8Nb8zyvFtM6Sl0U3FD30cIcp76rVTOwrFozI/YUwvqKPTVw2jfZbcSlF6PsL+x2Uz1HDX+QvX+CqOu5er7ihnlZcjpBGmUYZh4LNCh8h30QoZ7dTAxXHM78keXmOV+5Zsd1iR+3UbuO/+yK/MVkKzvJZMyKBX5DHpjmKKef7CwXWPUU/uO7z4zKH2eerL/kzgc640gZnSzGWeuNM8G4h44sb8GNMis1fgcSOZMivnbHAuBpNIw3Yy+FPppedje8Csy8FkS5wW5GdHJZDwOwiuKcC737EyPuj+RelaLe75mBytZjoKU9zLMTpZMcpkkxwKy3FZ4MuY5dSqZ2JTp6ZZhYgWOmNFL4Xkc8W+IyeU7zZhP0gvPh0wtimU82kUUv6Cs7Pr6EOjnyHGx+LI5WwhzyMosKTAhXQoqVx95abFxw9VMnkZVK0ukU3G1splGFaFcompxMYQpj6jmn9zKE3RzGo5Cj90K6H6TaRityH8zPLcTppj56Y+r0XeeOgm6d4LKbT8AxStX+VZWigUNauGMpuPgd0Z48m2uNdtHK41xLRcVUzm+uXvo7isbYGMstKofqPf5liqRepVDY57IrrcwsyZ3K/YqyVNJFUn/ou0h25GDBkRSYHM6Zet4L+hfkuQpvaTM3KO7e6tBgqibPquNwy07cTae0DskeXZrYcqLFUvmPTYXdb8HB5Xh8jDyeV7CmBtQ9tGKz/zKppfAhXZ5Kh2HZjnTCPbXH2/p6b62q0f/wCe+i2yeWMjhi7L5lyiUJ9CiEVXeYOXuWX0LmWeVfV6Lx6FOjkX5QrGNMoWiHOi7o9HBnRxUZ0yxRorb8Ffd5aLTYUa02e+ihCs9Mk4+uinXOufCd+ZZDHArsd5wI9TAs46GfqN/uKzKoRdP6iwJXFkbho9epDb3HD2FNLFGiFfj94PNF9M6UzA3L2+4lKKElT9WO/2LziRQtMbqYHL4swTHXXOqk3+xTKe3IWdJ7cmdJhYWy8JSjy/Y/8ATGS83kfm2FZ5a2gePuizX20yxzyFHIY+99mLvUlmjLGTffSqPeB/UysGVgq9ZHnRT7mdLzpiPYV+ou0uZU02UT1QmhibKLsf+9DPM8iyKEvAns3mce2uWOz8F/lDjVj1QiI0elUDkuuDcei0y9MbaoduWjbngXd5+Ap5jMmeC2rmD5GBy0WLt8/4Hg+eT6kxBcpQu8y8igql2+TKbcybCtsU3Qpavca5/wCY8Ct//UUaXgWjUblUfThWOZuUyqclMMdmoiWymWUJMaYojlZ3KO06voKFqrtwKHj5CtMdfXiVvSIfLVX1o7X8F1T9i8YYtF4Dgq4boXc+xn7G+PUvzE7Y56YZTdl4FOqTYoe6OgzG45LE2FgZnA+9vJhiwR2jfRnyPLp7ctMr5CTkoQl8j6aWpQoS8SqGOfzFaKxnRaLVC0fz4MDlcanV224srgps9+DG+tVzbWezvGlynsoWcPV957EqljxgyK4xXHd7FCgyNy9xy0UzIovpf+ym02KfN8hX3i5Td2L9CyMGGUzOryO3qPSmINijBS+0thd7fkIpmSm9UJdCHW/9YbVPUslz++8jl8CsYFfipjl1jgbmVC2jSmEt+hT7zxJr14vKZniUpimnb+GWH3d9KbcxX2Zmn/fRj/o302Mm55XgutkYHct6jtk2HBctUvqZ3R5f3LHp7mR4yo033GZMH9LXJg9+n5+vGumOVpdCsxW9R6qYZTGi4Z7U+0auJHOtMvhdtabmXqra/IVtLLkJPqNQIcwXHA3ZDj1LWwWFjBLfM8w5qFLHbrjoQkykr7W8HMwh90UoUQ4Hcx6Y6H2kX+Z5aYFfkO5ZT7QbqBSnzlz7lNylLe2l29zzPCyU42MrHLJnoPgeRzL4/O/XgQ4HLvfYyxwtxylwKOJC41KZ5Xh/szb6ouhd1/Mcz9B5yiqaasE9noZ+ool/5lXaTU+mi71OB9+lf5jmqMGBXELsoYzC08yyj36F2MwtzAoWzJg+Y9Mo+Qy9T+SM7v4t/leBjHwPPAyrAnPMm3yHOlMaZM6vGrmBRwuEh25G3gvu8j+i73Zdke5feR2R8hZ/2Bf70M6O8+44aMbMpyhWFDaM/UU1DSe5ZjPQXepHZ8hNdnnooZVbY3HZxK9NVBV1aHkcqNK79ByXq5FFymExJO6+RevCghRzv7iVpu/9lmZMcHO/oJpTaeXHV38xP1jWqeQy7bE7ZlW0Qo8e0scqNVKZh4ZhjeZHCWR3q+ZmlymOR3ZdMpg+gjDexUuy7/PbRcPy0tUvqWqQsr6meheC4846Dut2YMI/s9j/AHqK+72Rep5fw7+Ex0+OfDTEaZQ8Cs7aO6HYcNaOVos8CidVE+Aoa1xxPsoQrjvM/IVhQkZMlmkOw79CWmL5FbnkVQIQ2uiwZWihisb7iciT/EdynvJ5f7DtA4b3KpHd6ZJ986uZMCHCK7xboLtO8CmRQhp1ciKWvbRQKRxPA7F4Fj/Rx1Wlv58GBw1492YeqlFMcP8AlzMr6imBSlh7+hTHZN9hWNxa3kVngUGdENvSxsKUWa3FDW+zHG9txe6GVHyHYZ3R35lk/m/UV+N6OEVXXwC0X5ahaKB6LR3EK49FpTJYfszJVHA4HZG/gPHPL0UvhULmXq5sQ5f2NxX5GTIouZ30Q7sewvcpmCygvf8A2dELA4Rcwth2ewrUl+1N/fR3WqvouJwjC2ZT3ZFEikVxQpZSnS8MbsZPvHDhjlvLYsfWLPjU3zO0YFFhwkOZNimWt34qlih6YXCofBnZlqqRxOfUqbaXomVKevI8lWGJqNcaLqWqWB9n8SnPVFnq8jlo3HY9tFKKpXJlPZqGmiVGLlTv1H9xoohc2PtV8+Rnd+BVEaZRbp4zkWi8R/kzFpjRQVaKxhiFBdlmtLlPaQoXGt3ec9I4VwqR9p8tiyKu69zzc9hy9x3Ku8WeuC4mXfQelUPVWZuVQlsyLiyJqpfIlvbkWn/XLVOX6SUynllEuq0jwi7eCmBmEKEYQ7PkKansju1Ip7ae0tlMdNU0qRtr9x91brR2Y4HjjUVPf7kx05nmi/CrTiNozorMUJFUUpfO5Sk39vA8zMPgvOTL4sop7KXDatYYrbonuu6W5kzsVRXS79UOXO+w2oLyYQ86eanPVGHlci5gVjBkslkw8ab6KUTT6YPxmj8d/I/FqZT87iv9EXe7+KXgocFX0JYmUFCRSmUKShFkVP5FaGmMZTIo+Kei1plvRa40UCzor8DiNY/deDUr7brRSxwuSyJUou1kqlMUKf8AMcbDfyMExsZ0smPDhmDmJM36HlMilM20UwLBsx4HL3Jc/QcxngyxQ05RRA+96ilMohJFNv8AZFFKHDRdvJVDLP6yOElzmSuBy6eQkm56ii3B+37meKO3x02mOvrrSrZFK9dhQ9HxKSlpL4Lzr6ltvToVQ1mBWd5Fem87NDu89Bw1pgdmKGSmzy7ox9jBcv8AtpcslwLgwWp3f8C8Ooc/DpvgYhaLjYxik/DJRVOi49vhlwKNbMVxRsMuuF8ERVqpfQfZXJZF2Uvmyyd5HMfK5tui6WdpKbLdCuKZHfYWmBXLUlEMRS/sIy8dCuXiBW/15xq7IcNlcrYeGKXvBZCjsrPMTfpt10fdj6jn0M6UtzhxJkVxRVViM6LTFL/yKoKppX1fIXZjMCbqz1F3vsNKccES93gUTxO0z1mI4+btG2znRlKdDWd59B7RZaZG+1K/vjXwdq/uSuhjRd15RVM/6BFumly4pRf8N5XIc08t0Wk/91Vi/F/ZankKF4mZPL8ExFkKEX4PoMvpcQ/FdhGWMt68b+AfBngYhaba4HoxC0eil9BwuSyRf5m5vhsUpcjApelMyORdNMm+xeNLrqZQpT+g4HclRuXfPXbBVK+UozNkVMl03mTcyUw9MMVmL5cCmByi7MCM8xLElXeeyvCKJojJTKqHjR44FP1MPimJ9o4ovz+yF62x6MYus8j8RP8ADWy4MrXJiHN5l/DO44rW4r/cujlBf8NjmkzsZ+hYsSJHvSWqWU9PlpZIczwMULmzvVc341KbFHwFkU20suZd63Y4WliyFLMiF8Eu0OByWFwX8Z8LHcemdHwuGttNhlx30ULqd77Fp5DhlmuY4jcc9RwtEZY7wOdXku0eorlizHpgwhY2FBTK2FDZshIfdWxgsN1OSqZcr04KO1c2RlONFPQ/Ds16GY54k3ElMx0jmXqtfmd1t7FTqcC8rTHFWxMbTxWgwtHfgmJxFo5zxKYMVT7QbYuSsqefQcupcH3+KzJ7+gvR7ovQ8VaKzL/hvcdtWY1tUt0U9unmslftvpeTzFVkXqeyKeyh9p9fyC7PZF2f0Y0ux++mT21u9LLSz1XwNyxlFpHJS/h8aOOBjuKR40pieZXfkilL6sc9qzIFKFA2YJjI1N20Iu/p7jlv5Id2NI26FVz5lUluu40KS7ErYkqh9ByyY9S7HfIkm7TyEb7lVp+Yu7toylNr7ivq7inH1HMZFCHCEo67+g1DVl15MhN5GJT9yq+Eth9lrFiqZziZZTNTf+kUemYJzacxxKVymL89Vd8FNpieuuTOsN1PK5GeYl2VZwxWXhOEiq/wauLRSiru8mVSK2LjlchxUtnnwKL88H4zXrc/FXyX8FacdIIS6C/InLLLnwWRtnXPIzpnmXei4HwX0U+M7Dj1HZaJMpieRWNCkTELV3+DpciVK9blbbXKxTG8/wBjSd/Qqs3n+BXwtp6lXIu+hMD0yueBZ0u1uLB7TooMQKUx5vBgt1HdmxdSUd0cH8v0KCvsp7DU/sWpWyGnz5wU9pvmKGZFEbmFBTd5/s8yKk6hxIyHUheZiljhrKWCGlknVW2HEXgUVfbqNtuGp/fSFO7LNricW+fTj8+quK+kw7WyY6n4sqpRbYct+HkUJfD+UwXWih81k/8A0p+pNL5Oxj8s+Wt2OdbrXP2L83pnjuxxwMYtHbxc/sY1ZhlRgpkRYr+h+J9CtDT9yn6opKGUMofyKH8j8Nn4bPw/qimPdDSK4vGGfiNx7FM+p+Gkl9S3oX2sKy3RZPcanrGBWiGylQWLlDS5GBmTCFC5GfoZM/6TcXaH7CFD3KoS2E4Qu9GRQhyXNsEpPbSmSV0HCvZG/wAyqaivzEXLQKWiIxcyZWsdm/rcV9LsUN/YXSRwNqjbqJu1jMiylbWlNKPryHEDlPhUx9OOq0zHXipntFqUV9pYxHwr46e09xQ91xqRRw0pij0K2VjH+VWfAyqEY2Rn7Hu9Kbc9VHBkUyXfJHyMcLFx3XgrV6YMaO5vqsjiNLv7Elx+xU/TcmRwVWxJVLsMvi/IZkXUe5vhCkfoUylsM9RzzLRr5vsPIrjEZ2MikYrbitV9Y0adIpTMseDLWRWW/Mpdh9lfsUzFi/tzKIWxRHXnr7GJHE5Mih6bChrSqFuZel6/mJpLHOS3ZsluOKUtjK/4+nB5vT9xWYrcNUVPac8fNuea5cFNtPw0+QlbJS1Tz+Fb7UmY4mpeZHLefjVP9iiHHxvuxa5MnlX1Ms93wZ4O8yqF0LIqtqo0duGwjOt14doMeEx6zOjsPvGTJcbjgUscQMb7Qi6Kr5GMV1nrpZwO/wBiffTyjuXFffoZeBWFkd0xykzA8DKpkwx90u6SL4W5bs2U2Fm1uRU569L25DnV+5sI+v29dGMaYhYyLPIThcsk9m6Z82eUWH9SnLvyKYfBVbMdS6YuGq1vpw1DFYeuUV9n9yqK1iTNRTCUfT4WhTz/ACVSmKF8LV2aaXFhy6d+LbPBkye4sGd2bcCvopHP2LIstjvPYVxFTsVSJFL4HAtEK+j1crwELhx4mdULO4762Qr67XEO+55fkOVkVoFZL3HDn5FMQONL6LIriwZKVHMUlNnuQQ+hkcId8Idyu5Gbt76OV+/U/DTe8Cib6YYu21kUPX2FNPIcJmdtJ6lEt7sUT9DCMLYUKYZTCq2FHC5Tn3nn6ChLib7H0ji8tIoaf9iqai0c+pnSmS9XIp73PiyWYnHP9FV9lPI5b341nVzV9jLwZeT3eivwKWP218uyHbkZZcpj1I9ior+hUMkuhD0uhwPiXDnW68d8TnRGNVd765HJj7iiRTkUNmUKfR4ZlCwbjHgdx3RVDHI8O5VJZaLtId3g+Y/RCu3I+1PUqjd3HMaVLRzOsO8R+5TFSHecRhepsXfp9CqGU3Rg2I7OILDURjn66Lu8GYsTHXnx4vaMcnPXhqcGBd164RTfdMrhuHG6t4G5V3P0o7vTGwzPB5Sy4PIvqd2lfXS4o4VOl9LlL1ZWxzqpWtn4K8PPGoM8K1dhFp9zKb9uiE4dub9xROBnuWejhfQUJMU1HIeOo+9z5il8/wDchqxb7FWNx9pPAxRTzz6yXq2/pChrM7imcTkU9nYpvye3XRRI5Hk/EhPYqljicbwOyzfPBTCnIsaOEe5dN4noK7FNUxEcTLwLD46YJ6xkzwYZhauzG21icfMqtM9fzZS0hKEpt9vyX20ws6OXvrlafIxr7n+RTbg8uuDvPpghFTHYXuOXy0pZEC0UcC4Xor6VC1fB8im3DZ6YFpjTP34FK1RexT/fV9CqXAp/2Rylgqh+jzyHdDSL30kq7MZGUwufMujPM7zE1j5tkdogtJXKeBYwKGn8yzW4n2st4kV1pVM6qYKppMHlWB4WCrvcpuOIzOY20U+g5gslcwrZyU2nYfe3Zcd5XSxmL8DshShRPFgiHy4qojVTAuzlTko77t/Yof5uo/JPKvrpl4MvJ5acCjVd5l3q4ZepmTHBl6oc9BxGl2OXyQo5LctpVL4UKUOw9XJfjZeOLbixwbcC02wZ0uO+/JDKZFGlmWXMd19iiRdBNpq5PaRkUv6iSWxV7CllMNjkwx9pN3FZCdP3FMYKYq5PJTjWuKYwV9pTpj+/4FKFCKknHuV9qrediuakUu25+F03G739PUbqdRN3YUwhzJV2bjlu/Ein5bTxuJHLbnidnpV2VGYy+RTaJdiU1nqO45Z5jPg//P8AR++uFgyzGjmC9X2FD4cvHQ8q1c6qWOem3Bf7Dli9zPPSmFrjhWdJhDE2WHLfDgyzOttN9FwPhw99cDsb63m4/wDdBQkVROw4eik83IUodnI8f6wiuyFMMy0VNUqfbkXW3P5GxTFS2KYTRVD6bwVQl9SzkdxDtsO9P7PgedjDGKIGpP6KYjDHks/mZWkSz8S6R5fuKFo1KZtxuaqdp+612FHZKYedPvA5aV+JuPWRwVJ01TZ7NCttb9OuzwtMvPoYRl65fF5afqZeeiFCXDannpkzo+7uyyRan76OwuDCa02Fkuz5FMIuJCiBWFd6MuuhfVcDHrbRcCh6LRltHIrscUiin7lXsLRCl/eNPMtHLHn5lqhzfBZrI7lW2ClIomnce2BdprYu1lWH2Uh9qr6FlS0LtdR9p/ZDTbFbZfvJTLb0lbMsqUV5KpG1U7+jYu96kRvJT3eejwTSx9p/6x+FOEuiFCWrt9cY9NPMZ4XPAoTLvqO55Z5bc54rdcihtXLwrjws9OXqYX5PObxmCeztP5vmo8tP1eueB6Zf208zzwKZMctV3dMbswY2R8y9XNmRW4FfXu0lPuK+tpxIo0Y5gcoq03sfIWiX76W0eNH89IjrxYFo5LCl9C75fyf+egh6ZMisOEimef8A6J30UmF88YjBl3Kkovf+SpTVjkWaF3V/lBVDY1f6Gd2XjfmOdKZHEjhTj0K/v8iJ2HO44e94KZd7zyTu0PPM3LvRjmlbbFENqbiQo9By3aN7FMQo4MxYnNp43DZlubcVL7czJDt8uJLstx1EqGrIbqzjfYzq/wBOeWnJl/Ra5Y+BY0y/sYWNFpdlXrw5ZeosWX34qbc9bt4R3q2fLivSXQsDyIcxsU20QjbWHoi+m+jg31yLVXLL7DjqOahTpVMF6dK51ns9LuRQ97wKdGky1XMuvb2I5Wj6lMJ/chUrCZVaZjRyWoNxzOimc+nApgV4Ke9tKiRxU+RXawhynm/7FTusFPm3Yk2Vpxm8jalWvy+wu8uurHpnjTa5LnsOXF+JTsUxwKWyzTiOpQ008PF9yF2ue0WFfd8FbTTZn4d/oPLwZ39TL0yZfFhZN/t4L0yxd1fVijp4NNzvVsvUUynwqZ0cMsxSKJMlqizWzMoTHdC4EVWHotG+Jnm5fv0RttsM6e4xChPccn/o7ixq5Mo8zK5e60Vy9Suli5Z8ouiXVy2fMqa6cvccv/fMrl8DgS6aZJjac6Jx056UxS9XAmp3fIqVNKx1RTLJVLy/uL34MyYMf6I9vAq7n9Yjjd3/AJChD7nr9I1plyil09mZgfc+zHMcKMfDz2ptmI+2P0HinBsXjRcL7pl4M5Y86+7HPFhD7u7/AGFbZab6PWqdHZZFeoczq7DF3eZsb6qxenkPSlsouWq5l9EI35iHC6DEZN8ingmItCMmN5x7iu9/4Qr8D1dx3YrmNzOlUDx9TnKKlGGtyn+Rzf3+Rdu/oKfrY+RTEbtZ9OpNW3oU4+RS02VKByh2Wfnf1Gk9lrUlpT3NmYY5Y4RepbDmp/8AH+BWd0iq6woPL9RQuFFMzsjDXHmLExtKjjqtZtenDUu1yKLuVPOBZ0fA5niXc28emaUb6L9CZedF3Vq54PKsGKc6+70d9XOnlpPfojyrC/fh20RTMnmYpqZed9PLq+JQyn3eByxXFDKRHep+qHYpKYYrGFjRJi1jS9t9hr0NzzYg+W2mNtZws89yrvav6bivgd2K2kqdxuUsl29Hiz6lEQimWzvJ+o8ZKmoeSnuc8j2gpzy2KrsfeR+JnbYpml5cE2eOuBOeRMkqN/Upsim0C7NT3WB91FXanafl6DcuGKW/mXl4+3yKoe3oY47x6owtKbRnhcL0n2FFTRMdefC4bHwJtrkVOzmHzKVL30cSVNp7HSLZ5y+CtqHgz4bfZlekfz4Dszb9C4XEs6OZM1fY9EZ34Vd8GajJjfq+DfRSUwK5l4L11F6nwYQ5RkXe6C7LY5HCKbI21yXWmRKRX3gpKhlWBRlav5FV/qO5/ZtzO71e4onfdm07D9Rl0R2dEMwVexDa1WByIS7K23HEildC1CHFOCpz9hpqnCSuUdlvmyhVFPZWILp/RjTb2KGlsh52jne/Nj7LWGYFY708yhWxbTvVK70aUnzj7DvDcChdMia3ku+fgVRI22/tpUm+HYShf6Hx13WEt310pim5d8kKbwd2pWa2Y7vlrlDlrhpl/pxQ3xbG+PQxTZCMvjwe3of+LSmU9+B8Hshw39ByVW5aU++ihcCmp4Q5fLZaVY21pbkY4RencwYZ3ugvYqh8jIpHEjuLGbimzdxFl8jvVc3gc7itbIkrR6sWM9Rbi9izQo0ZAriiR6fL3F1UEy39Clv2FCeLuxVbCj9hbvJSuxleulVuWrT6D7CV+g+1TTzyUpqm0QKntNYPlsVKPdEVJIXd9J+pTZ5fJldnP1Lt8iyK5Xqxdrk3+w7Eynjbjd9aultarUzHO/N6KTD0Uyd2qqPqNunaeHfkVSsrG/XTcU01I/8Am+eJFC/UuFjj3z6GXZGwrmeLApjIu8+NZ18lJalYE7+BVEF6n9BzU8vSn31q7q20wYYrIu25UbFUdF/Ih2HFXMxzErZZVdciu1TuUyU97nJR2mhQlshZQ0WMl525Dt/rFMMuvrpcTjdM9izpUTsZ20wVX3kuK9Ni6Rix3aXsd1LFrsd9MLV2pmLXvzeigVxw03HK2StNXtNhzcrVskPmfhw0Vw94MLEmFYq/llPdm0lUUiw444aqzOxsVXa9xzPtw1Q2bDshY2ZSpFwOEhtOkwipdrkXi6Kl2FMc77P86qaW0Gafyv34HMa7G/2MKy8LLuzLx6cCxq86ZeTyrPDT3eejgcxpep/Qy8vV3erlHl/YTikyTcRaeCpdRZ5/QaTe/wCwpQr/AOyXY9sFF+RQ03JN8cupdrKj6imnkSehZodj0FeClKcsvSsMp7VLyWQ8W5lSV/cr7XIrvjFiuakXa++tMz9Cqz55Lpc+RT2XwKI0U/sUQ6p/3uWKXVQfhNdrlcqhvM5K4fLZkzOf4LTGf7F2q36wW6aIULwKkmxz/fgPp0+Y5b3fFT3PriZkc3v6lSlDTpmf6Fnw13Pp1n8wU0jlvP5Xl8Czrvn0Mu2q0qnXfTy0/c8tOfAV1p56/ByZf+ku3l6qwrrTfVRzfMXeRkybD7umS8jl8hwkUw3u8/0VOd5HFPMqks0PvQUxH3E6f9uxproWjl12ZUrYG09x5KsXyOGth3n5++C75fuJqpwZZljTe/MlTGMGeuRKNmLSqKmXa35iFHoT0z9yrtVc9vQp7MaqXshQ9abpboah7ci7WRTy/wDTvJLe0Ct9BX5lHaVQo1duJS2NqV4Cbb5G9+nrrljlM2K+z6F3MT05ivN+rKmkp+pU4b/V+/2PReDl2Rep/cyPPgeSnHVmXpVGj0emCkvU8640yWgxp5dxaLGm9tMD7VRZGOYpfNlTS0WckpLqVCd1Fl9SptdS6w1sJqelilt9CzawuXUyZY2/lBa2f5MU4tuVSpEpW7LtGRd539imKepVMwsFUrkPBVC3kUQ/nq4nSXGEVNPk+SKlCztIppW/InM8rDLlLZaljSpxJdJSWoXNFU9OpPZ98jku1wKVw3aLw7PDFCXHfl6lMNcmKEtXDRsoRS1XKl353KInLU/sVdml7ftAoRlm3A/yCmEv0QtN8+hl/Ypnid9fLR9zGF4OXn0F3E4XV8GRyjDMabGXjohSZKZbxo7rRSjB5VllMIqhjlrItMLmWpHC+rKYXMu/AeMrmuCOx9SKaWtt/UozaV9B91cv4N9ymUJ9nmuZT6yWqLPLeCqKV6oplWuNIXaRRMrPIqSPxOz+45jfX09uXA+83sO/Uqmlu5VhuOcDmpEN84LcodiqFG/U7z5vVxGlTeynZDSs3feNi0oqmCqCpMqgUyKJhwzdzC8CqalyE3RaFVmRQuCnmvkpKm+1M3E8LsxhPr4Kbqkz8KpfwOYsJrnP6C3+x7enHlaZeDLybcLng89f0RsbmFxWPJT9XwLRXeuN2KEiLIVymG8jyO+ikv0EVRHBVCWeumSI30XaVTvOxsMUwKJ2FKO7/vuVJ0q5T2c2v8+RVKcOBw1kadH10fbb57CipH4T7VOOpV2eiMId0NqOWR93baFygouipJsaZT2TLKbTHX1GUxTzE+jK+1UvZe5Upd3bHQomX8rl5jMDhSOVpsJQ3qjdQNNxChRYlqN+vLoOKabdfcqalQ45FMpc+Nwi8GIyhzaNYXZzKbKYpqu2VPtu/tyQl24uymG/CXiJyvCY5b/RuRQ+DfPoZf24duHy0fcy+B44fJR9WZq+i4XDMjiRyiy3KYpWNF3NtFD1p7vMy8vlrsLAmKEhSx+yFC8JN8tdxt+vFFVI4qWzwJpvG/yY839ByvccPeRzS8Q1f1HK9Bi7hC6lWdFJNU2lWg7qpWRpuBRUrIqSXWCqb82pXoWW/Us6+T29Dz9cCVVTFC1Wm5VKXE0k0k7dZsRTDno/UctFPZKZjN+fIq7xW0+Ww7sS29XPIfdm8FUbp8uRV2m7tjhRNtyly4U9Sf76lXZe5U1VEONzC1yOV8Kr/prK13x6HouNS9MuyMLPrwrOi7unmqsjy03fVjmB50fDTnApTy+urnWqXpVbccyUt9rdbF29yxW+yxSyyQo1Xdfh0ym79FrETfRd2396qEhil04KO90/opqjNl+2T8PtL0hIs/8AYKJXW8DX0Y0qp9JXuUpzkopdOROpxeCq/XNxNPnbYmr2Pw526lKTfTBdPE59yHHLJTC3bTXoiaqtvUUT8FTLRipw3/BSLu9qekQxClDiBzCgqjZlKlWnjyhQv1etHer7G9tau7y48U/c38HzOy6GdxXYsaLHDnYpnVRp/wCae7F2m/oZq0sS2XQoXC7L4PJQ6UlDnd8Fm+Q0kt0rjbp3ebehTKjDsVQ9pZV2Wr+hVPyKFTs/UtXm3Icvp6FDnPWC9LRS6m+eBpUzhFCWinhY9NvBcIcrRyk5S+GX/wCe3wbmLP8ATGNvQxheFl34ap4PV+hjbVSKB8C7qIFM6VSnhctFbRdq0XxpeRlMsc9BQvyKlP1R3JUO1iqY5jX8Cah5StArS8W3GqqVz6lUPFihP1uKF4OTyzbRQ34OTL/K0lPL9L5q+xl2Nh44XCHKWmKfuO3LTycL72nmqu+iMDhjl6qWsG+j9TCNjYUFXd2Wjuthd0cJZKvkIfshQvFej+Hql+Dkbjrz4kL4FxUOX8NhFmv1L6IwrLTfiRsZy/XwF3jy0/Vnmq0dx30UwKJ08zwUturLHMCjVCljzsiiBNyP2QoXFibnl8BQr3nPJRoml8Ooj6/B7FMaqWxQ18C4aHLfwDbb3fw9Tc/o3NRl246oSytcU/V+Dmo8lH1euUK+ibnlp5Y9zLx0WnMr7q2Kogr7MDnqZKSr2Qo0dtvy997V58Vw0OW/+hvYxha1WHfiy/8AN/twvGlMp76eevHRDutKcvOmNXdF1sbDsYZMJ7Dba2H7CHLFC+NyNtReeeqafX4XNPw+CU+viOBzG/jOEOV8c/0Dmo3tw5XB/wATFP3PbwLpZFnArvTL4L1FMt3ZkqmSntdBwlsWFC5s7z+ngUzL+XhZq0cJ7jlLfxFq5fHV2U9xzfP5I4HLx4iFHjOJHj43MCfat+gcYRtZeCrs30cMyKU88Dmp2MLL5vRxJsLSntFq+Q4qbieXRaJSfewrckWQpfXwsfbSz8JCj4VSLhrb7X08SnGXxZJjrx5KpVX6AX6AzUZf2EO2/EtPLSZFLFD1ca+arHRc9Fo5RkrmdFPNlPaaz0KlR0Ny7FC8RaZ/IHD+Cz49TcfGu/hbCs/BrU/o/wBF6G+PQeuByuDzVCiPrwKWKHpg8qwubPM9KffkYLIeDbmWXN7eiHL+SLJ74O8xWFGiiNXf8uUt/FVdl+G/hcvwsMqbjwMnm3M/o7f7aUyuQoTwuLCPNX9F4DilZf7CileVa4KZEyy5lPaq6/wOEXfXiWr4lZa0yzPwDicfCOGhy3xP4lyk44aJMr8opU/o/fHp4Pkp+rPNVpVEPR93bR25Dhbst+Gvr10p7TpITRUp2gsVSyr5CjRwxy/Gdn8Ipi6+LXxKjhXgtqHNv1spR5nnojyU/V8OGOCq5anShw3A8lEFV+QrGfF2Fj8ho7kZ+DX/AEwuHJ56svktVKedFIsEX25epdc+ZCp+pgmBy/oWQpn4BR4OKeOqG/yrCv8A9KZHL0XojzPhuxLtc9kXQ/ZFPZXXJ3n8a4njbt/M/FURSsPn8BSm1/0g7rRxGqLUrYVlj+RtvS0cxSKEOSy6lUwUxw5/Jdv0dS1G/P8AVFM1MUPTCMChLA+zT9WVNvb+ygq+RS36/wAC9kWX1EYF8HVKfxKj8tcxZ8VLaW//AEF+LbkrlVVXsW9WVlUJFXZpf1KPdi7TEIfsKOJ2HP5dhGH8M2oc2+BUTxeV/wDQSj20U8h9lch2W5ZDKYXUuxQvA3HM6O3Bvqpgpj8kUox+d+Z2/Wn/2Q==\"","import { ReactElement } from \"react\";\nimport DEFAULT_IMAGE from \"../../assets/images/bg-activity-card.jpg\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\nimport { CARD_WIDTH } from \"../../constants/common-sizs\";\n\nexport function ActivityCard({ title, subtitle, background, tagsHeader, tagsFooter, onClick }: Props): ReactElement {\n const WrapperTag = onClick ? \"button\" : \"div\";\n return (\n <WrapperTag\n css={({ radius, spacing, transition }) => ({\n borderRadius: radius.medium,\n padding: spacing * 2,\n boxSizing: \"border-box\",\n border: \"none\",\n width: \"100%\",\n minWidth: CARD_WIDTH,\n height: 200,\n background: `url(${background ? background : ((DEFAULT_IMAGE as any).src ?? DEFAULT_IMAGE)}) , linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.4))`,\n backgroundBlendMode: \"overlay\",\n backgroundSize: \"100%\",\n backgroundPosition: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n cursor: onClick ? \"pointer\" : \"default\",\n transition: transition.duration,\n \"&:hover\": {\n backgroundSize: \"110%\"\n }\n })}\n onClick={onClick}\n >\n {tagsHeader ? (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: spacing\n })}\n >\n {tagsHeader.map((tag) => (\n <Tag key={tag.value} value={tag.value} icon={tag.icon} textColor=\"overPicture\" bgBlur />\n ))}\n </div>\n ) : null}\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing\n })}\n >\n <Typography.H5\n color=\"overPicture\"\n css={{\n margin: 0,\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: \"2\",\n lineClamp: \"2\",\n WebkitBoxOrient: \"vertical\"\n }}\n >\n {title}\n </Typography.H5>\n {subtitle !== undefined && (\n <Typography.Text\n color=\"overPicture\"\n size=\"s\"\n css={{\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: \"1\",\n lineClamp: \"1\",\n WebkitBoxOrient: \"vertical\"\n }}\n >\n {subtitle}\n </Typography.Text>\n )}\n {tagsFooter ? (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: spacing,\n overflow: \"auto\",\n msOverflowStyle: \"none\",\n scrollbarWidth: \"none\",\n \"::-webkit-scrollbar\": {\n display: \"none\"\n }\n })}\n >\n {tagsFooter.map((tag) => (\n <Tag key={tag.value} value={tag.value} icon={tag.icon} textColor=\"overPicture\" bgBlur />\n ))}\n </div>\n ) : null}\n </div>\n </WrapperTag>\n );\n}\n","import { ReactElement, ReactNode } from \"react\";\n\ntype Props = {\n children: ReactNode;\n className?: string;\n};\n\nexport function StyleDOMApplier({ children, className }: Props): ReactElement {\n return (\n <div\n css={({ text, font, fontSize, spacing, bg }) => ({\n color: text.main,\n fontFamily: font.main,\n fontSize: fontSize.regular,\n marginTop: spacing,\n marginBottom: spacing,\n fontWeight: \"normal\",\n \"h1,h2,h3,h4,h5,h6\": {\n marginTop: spacing * 2,\n marginBottom: spacing\n },\n h1: { fontSize: \"1.6rem\" },\n h2: { fontSize: \"1.5rem\" },\n h3: { fontSize: \"1.4rem\" },\n h4: { fontSize: \"1.3rem\" },\n h5: { fontSize: \"1.2rem\" },\n h6: { fontSize: \"1.1rem\" },\n p: { fontSize: \"1rem\", marginTop: spacing, marginBottom: spacing },\n \"b,strong\": {\n fontWeight: \"bold\"\n },\n i: {\n fontStyle: \"italic\",\n color: text.secondary\n },\n \"ol,ul\": {\n padding: 0,\n margin: 0,\n marginTop: spacing * 2,\n marginBottom: spacing * 2,\n paddingLeft: spacing * 4\n },\n \"ol > li,ul > li\": {\n padding: 0,\n margin: 0\n },\n table: {\n borderCollapse: \"collapse\",\n \"td,th\": {\n border: \"solid 1px red\",\n borderColor: text.secondary,\n padding: spacing\n },\n th: {\n fontWeight: \"bold\",\n backgroundColor: bg.cardHighlight\n }\n }\n })}\n className={className}\n >\n {children}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\nimport DOMPurify from \"dompurify\";\n\nimport { StyleDOMApplier } from \"../StyleDOMApplier\";\n\nimport { Props } from \"./types\";\n\nexport function HtmlRender({ content, className }: Props): ReactElement {\n const safeHTML = DOMPurify.sanitize(content, { FORBID_ATTR: [\"style\"] });\n return (\n <StyleDOMApplier>\n <div className={className} dangerouslySetInnerHTML={{ __html: safeHTML }} />\n </StyleDOMApplier>\n );\n}\n","import { ReactElement, forwardRef } from \"react\";\n\nexport const Flex = forwardRef<\n HTMLDivElement,\n {\n direction?: \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\n align?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\";\n justify?: \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\n gap?: number | string;\n m?: number | string;\n mt?: number | string;\n mb?: number | string;\n ml?: number | string;\n mr?: number | string;\n mx?: number | string;\n my?: number | string;\n p?: number | string;\n pt?: number | string;\n pb?: number | string;\n pl?: number | string;\n pr?: number | string;\n px?: number | string;\n py?: number | string;\n bg?: string;\n radius?: number | string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n direction = \"row\",\n align = \"stretch\",\n justify = \"flex-start\",\n gap = 0,\n m = 0,\n mt = 0,\n mb = 0,\n ml = 0,\n mr = 0,\n mx = 0,\n my = 0,\n p = 0,\n pt = 0,\n pb = 0,\n pl = 0,\n pr = 0,\n px = 0,\n py = 0,\n bg,\n radius = 0,\n children,\n ...props\n },\n ref\n ): ReactElement => {\n // Check if any individual padding properties are set (non-zero)\n const hasIndividualPadding = pt !== 0 || pb !== 0 || pl !== 0 || pr !== 0 || px !== 0 || py !== 0;\n // Check if any individual margin properties are set (non-zero)\n const hasIndividualMargin = mt !== 0 || mb !== 0 || ml !== 0 || mr !== 0 || mx !== 0 || my !== 0;\n\n const style: React.CSSProperties = {\n display: \"flex\",\n flexDirection: direction,\n alignItems: align,\n justifyContent: justify,\n gap,\n backgroundColor: bg,\n borderRadius: radius,\n ...props.style\n };\n\n // Only use shorthand if individual properties are not set\n if (hasIndividualMargin) {\n if (mt !== 0 || my !== 0) style.marginTop = mt || my;\n if (mb !== 0 || my !== 0) style.marginBottom = mb || my;\n if (ml !== 0 || mx !== 0) style.marginLeft = ml || mx;\n if (mr !== 0 || mx !== 0) style.marginRight = mr || mx;\n } else if (m !== 0) {\n style.margin = m;\n }\n\n // Only use shorthand if individual properties are not set\n if (hasIndividualPadding) {\n if (pt !== 0 || py !== 0) style.paddingTop = pt || py;\n if (pb !== 0 || py !== 0) style.paddingBottom = pb || py;\n if (pl !== 0 || px !== 0) style.paddingLeft = pl || px;\n if (pr !== 0 || px !== 0) style.paddingRight = pr || px;\n } else if (p !== 0) {\n style.padding = p;\n }\n\n return (\n <div ref={ref} {...props} style={style}>\n {children}\n </div>\n );\n }\n);\n\nFlex.displayName = \"Flex\";\n","import { ReactElement } from \"react\";\n\nimport { Typography } from \"../../../Typography\";\n\nimport { Props } from \"./types\";\nimport { Flex } from \"../../../Base/Flex\";\n\nexport function Item({ icon, label, disabled, active, onClick }: Props): ReactElement {\n const IconComponent = icon;\n\n return (\n <button\n css={() => ({\n width: \"100%\",\n borderRadius: 4,\n padding: \"4px 12px\",\n background: \"var(--mantine-color-neutralColor-5)\",\n border: \"none\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n textAlign: \"left\",\n \"&:hover\": {\n backgroundColor: disabled ? undefined : \"var(--mantine-color-neutralColor-6)\"\n }\n })}\n disabled={disabled}\n onClick={onClick}\n >\n <Flex align=\"center\" gap={8}>\n {IconComponent && <IconComponent size={16} color=\"overPicture\" />}\n <Typography.Text\n css={({ fontSize }) => ({\n fontSize: fontSize.xs,\n color: disabled ? \"var(--mantine-color-neutralColor-8)\" : active ? \"var(--mantine-color-neutralColor-8)\" : \"var(--mantine-color-neutralColor-8)\"\n })}\n >\n {label}\n </Typography.Text>\n </Flex>\n </button>\n );\n}\n","import { ReactElement, useState } from \"react\";\n\nimport { EllipsisVSolid } from \"../../icons\";\n\nimport { Item } from \"./components/Item\";\nimport { Props, PropsItem } from \"./types\";\nimport { Popover, Text } from \"@mantine/core\";\n\nexport type { PropsItem };\n\nexport function MoreMenu({ items, controlColor = \"primary\" }: Props): ReactElement {\n const [opened, setOpened] = useState(false);\n\n return (\n <Popover\n opened={opened}\n onChange={setOpened}\n closeOnClickOutside\n styles={{\n dropdown: {\n background: \"var(--mantine-color-neutralColor-4)\",\n border: \"none\",\n padding: \"12px 4px\",\n marginLeft: 10\n }\n }}\n trapFocus\n width={200}\n position=\"right-start\"\n shadow=\"md\"\n >\n <Popover.Target>\n <button\n css={{\n background: \"none\",\n border: \"none\",\n padding: 0,\n cursor: \"pointer\",\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }}\n onClick={() => setOpened((o) => !o)}\n >\n <EllipsisVSolid size={20} color={controlColor} />\n </button>\n </Popover.Target>\n <Popover.Dropdown>\n <Text ml={12} mb={10} fz={12} c=\"neutralColor.8\">\n Page\n </Text>\n {items.map((item) => (\n <Item\n key={item.label}\n icon={item.icon}\n label={item.label}\n disabled={item.disabled}\n active={item.active}\n onClick={() => {\n item.onClick();\n setOpened(false);\n }}\n />\n ))}\n </Popover.Dropdown>\n </Popover>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { HtmlRender } from \"../HtmlRender\";\nimport { MoreMenu } from \"../MoreMenu\";\nimport { PropsItem as PropsItemMoreMenu } from \"../MoreMenu/types\";\nimport { Spacer } from \"../Spacer\";\nimport { Tag } from \"../Tag\";\nimport { Assistant } from \"../../icons\";\n\ntype Props = {\n content: string;\n agentName: string;\n menu?: Array<PropsItemMoreMenu>;\n};\n\nexport function AIResponse({ content, agentName, menu }: Props): ReactElement {\n return (\n <div\n css={({ radius, bg, spacing }) => ({\n borderRadius: radius.medium,\n backgroundColor: bg.card,\n padding: spacing * 2,\n width: 400,\n boxSizing: \"border-box\"\n })}\n >\n <Spacer justifyContent=\"space-between\" distance={2}>\n <Tag value={agentName} icon={Assistant} bgColor=\"selected\" />\n {menu ? (\n <MoreMenu\n controlColor=\"secondary\"\n items={[\n { label: \"Item 1\", onClick: () => undefined },\n { label: \"Item 2\", onClick: () => undefined }\n ]}\n />\n ) : null}\n </Spacer>\n {content ? <HtmlRender content={content} /> : null}\n </div>\n );\n}\n","import { ChangeEventHandler, ReactElement } from \"react\";\n\nimport { RoundedButton } from \"../RoundedButton\";\nimport { Spacer } from \"../Spacer\";\nimport { Assistant } from \"../../icons\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n placeholder?: string;\n icon?: IconCmp;\n disabledInput?: boolean;\n disabledButton?: boolean;\n valueInput?: string;\n inInputChange?: ChangeEventHandler<HTMLInputElement>;\n onButtonClick?: () => void;\n};\n\nexport function AIInputBar({ placeholder, icon, disabledInput, disabledButton, valueInput, inInputChange, onButtonClick }: Props): ReactElement {\n return (\n <div\n css={({ bg, radius, spacing }) => ({\n backgroundColor: bg.card,\n borderRadius: radius.medium * 5,\n padding: spacing * 4\n })}\n >\n <Spacer distance={1.25}>\n <input\n type=\"text\"\n placeholder={placeholder}\n disabled={disabledInput}\n value={valueInput}\n onChange={inInputChange}\n css={({ font, fontSize, text, colors, transition }) => ({\n flex: 1,\n fontFamily: font.main,\n fontSize: fontSize.regular,\n color: text.main,\n border: \"none\",\n outline: \"none\",\n borderBottomWidth: 1,\n borderBottomStyle: \"solid\",\n borderBottomColor: colors.focusTransparent50,\n transition: transition.duration,\n \"&::placeholder\": {\n color: text.secondary\n },\n \"&:focus\": {\n borderBottomColor: colors.focus\n },\n \"&:disabled\": {\n cursor: \"not-allowed\",\n backgroundColor: \"transparent\"\n }\n })}\n />\n <RoundedButton icon={icon ?? Assistant} label=\"Ask\" active disabled={disabledButton} onClick={onButtonClick} />\n </Spacer>\n </div>\n );\n}\n","import { Badge, Center, Text } from \"@mantine/core\";\nimport { ArrowLeftSolid, Canvas, Close, HistorySolid, PlusSolid } from \"../../icons\";\nimport { Flex } from \"../Base/Flex\";\nimport { CanvasMode } from \"../../types/canvas\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\ntype Props = {\n onClose: () => void;\n onHistoryClick?: () => void;\n onPlusClick?: () => void;\n onHistoryClose?: () => void;\n onCanvasCycle?: () => void;\n isHistoryOpened?: boolean;\n canvasMode?: CanvasMode;\n oracleModel?: string;\n sessionTitle?: string;\n};\n\nexport function AIChatToolbar({ onClose, onHistoryClick, onPlusClick, onHistoryClose, onCanvasCycle, isHistoryOpened, canvasMode = \"hidden\", oracleModel, sessionTitle }: Props) {\n const isMobile = useMediaQuery(\"(max-width: 48em)\"); // 'sm' breakpoint: 48em (768px)\n // Determine canvas icon color based on mode\n const canvasActive = canvasMode !== \"hidden\";\n\n return (\n <Flex bg=\"neutralColor.4\" py={16} justify=\"space-between\" align=\"center\">\n <Flex gap={6} align=\"center\">\n {sessionTitle && (\n <Text c=\"neutralColor.8\" fz={14}>\n {sessionTitle}\n </Text>\n )}\n {oracleModel && (\n <Badge fw={300} size=\"sm\" fz={12} c=\"neutralColor.8\" bg=\"neutralColor.3\" tt=\"initial\">\n {oracleModel}\n </Badge>\n )}\n </Flex>\n <Flex gap={6} align=\"center\" justify=\"flex-end\">\n {isHistoryOpened ? (\n <Center\n sx={{\n cursor: \"pointer\",\n borderRadius: 8,\n transition: \"background 0.15s\",\n background: \"var(--mantine-color-neutralColor-5)\",\n \"&:hover\": {\n background: \"var(--mantine-color-neutralColor-6)\"\n }\n }}\n p={4}\n onClick={onHistoryClose}\n >\n <ArrowLeftSolid size={18} color=\"secondary\" />\n </Center>\n ) : (\n <>\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} onClick={onPlusClick}>\n <PlusSolid size={18} color=\"secondary\" />\n </Center>\n <Center\n sx={{\n cursor: \"pointer\",\n borderRadius: 24\n }}\n onClick={onCanvasCycle}\n >\n <Canvas size={18} color={canvasActive ? \"primary\" : \"secondary\"} />\n </Center>\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} onClick={onHistoryClick}>\n <HistorySolid size={18} color=\"secondary\" />\n </Center>\n {!isMobile && (\n <Center\n sx={{\n cursor: \"pointer\",\n borderRadius: 8,\n transition: \"background 0.15s\",\n background: \"var(--mantine-color-neutralColor-5)\",\n \"&:hover\": {\n background: \"var(--mantine-color-neutralColor-6)\"\n }\n }}\n p={4}\n onClick={onClose}\n >\n <Close size={18} color=\"secondary\" />\n </Center>\n )}\n </>\n )}\n </Flex>\n </Flex>\n );\n}\n","import { ReactElement, useEffect, useRef } from \"react\";\nimport { CSSObject } from \"@emotion/react\";\n\nimport { User } from \"../../icons\";\n\nimport { Props } from \"./types\";\n\nexport function Avatar({ src, rounded = true, size = 62, did }: Props): ReactElement {\n const css: CSSObject = {\n width: size,\n height: size,\n borderRadius: rounded ? \"100%\" : undefined,\n objectFit: \"cover\"\n };\n\n const jazzRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // Only run on client side\n if (typeof window === \"undefined\") return;\n\n if (!src && did && jazzRef.current) {\n // Use dynamic import\n const loadJazzicon = async (): Promise<void> => {\n try {\n // Dynamically import jazzicon only on client-side\n const jazzicon = (await import(\"jazzicon\")).default;\n\n // Ensure ref is still available when async import completes\n if (jazzRef.current) {\n // Remove previous child if any\n jazzRef.current.innerHTML = \"\";\n // Use a deterministic seed from the value string\n const seed = Array.from(did).reduce((acc, char) => acc + char.charCodeAt(0), 0);\n const icon = jazzicon(size, seed);\n jazzRef.current.appendChild(icon);\n }\n } catch (error) {\n console.error(\"Failed to load jazzicon:\", error);\n }\n };\n\n loadJazzicon();\n }\n }, [src, did, size]);\n\n if (src) {\n return <img css={css} src={src} draggable={false} />;\n }\n\n if (did) {\n return <div css={css} ref={jazzRef} />;\n }\n\n return <User css={({ text }) => ({ ...css, backgroundColor: text.secondary })} />;\n}\n","import { AppShell, Box } from \"@mantine/core\";\nimport { useResizeObserver } from \"@mantine/hooks\";\nimport { PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport { useUITheme } from \"../../../hooks/useUITheme\";\n\nconst MIN_WIDTH = 200;\nconst MAX_WIDTH = 700;\n\ntype Props = PropsWithChildren<{\n asideCollapsed?: boolean;\n asideMaximized?: boolean;\n onAsideToggle?: () => void;\n width?: number;\n navbarWidth?: number;\n onWidthChange?: (width: number) => void;\n onMaxExpand?: () => void;\n}>;\nexport default function AsideResizable({ children, navbarWidth, asideMaximized, asideCollapsed = false, onAsideToggle, width = 450, onWidthChange, onMaxExpand }: Props) {\n const [isResizing, setIsResizing] = useState(false);\n const [ref] = useResizeObserver();\n const isShowingRef = useRef(false);\n const hasFiredMaxExpand = useRef(false);\n const theme = useUITheme();\n\n // Reset width when aside is shown again\n useEffect(() => {\n if (!asideCollapsed && width <= MIN_WIDTH) {\n isShowingRef.current = true;\n onWidthChange?.(width); // Reset to default width when showing\n // Reset the flag after a short delay\n setTimeout(() => {\n isShowingRef.current = false;\n }, 200);\n }\n }, [asideCollapsed]);\n\n function clearListeners() {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n }\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n } else {\n clearListeners();\n }\n\n return () => clearListeners();\n }, [isResizing]);\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizing) return;\n const newWidth = window.innerWidth - e.clientX;\n const maxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH); // Leave 600px for main content, but cap at 700px\n const constrainedWidth = Math.min(Math.max(newWidth, MIN_WIDTH), maxWidth);\n onWidthChange?.(constrainedWidth);\n };\n\n // Auto-collapse when width reaches minimum (but not when programmatically showing)\n useEffect(() => {\n if (width === MIN_WIDTH && !asideCollapsed && onAsideToggle && !isShowingRef.current) {\n clearListeners();\n onAsideToggle();\n }\n }, [width, asideCollapsed, onAsideToggle]);\n\n // Auto-expand when width reaches maximum\n useEffect(() => {\n const maxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH);\n if (width >= maxWidth && onMaxExpand && !hasFiredMaxExpand.current) {\n hasFiredMaxExpand.current = true;\n clearListeners();\n onMaxExpand();\n // Let the client decide what to do - don't automatically change width\n } else if (width < maxWidth) {\n // Reset the flag when width goes below max\n hasFiredMaxExpand.current = false;\n }\n }, [width, onMaxExpand]);\n\n // Adjust width when window is resized\n useEffect(() => {\n const handleWindowResize = () => {\n const newMaxWidth = Math.min(window.innerWidth - 600, MAX_WIDTH);\n const newMinWidth = MIN_WIDTH;\n\n // If current width exceeds new max width, constrain it\n if (width > newMaxWidth) {\n onWidthChange?.(newMaxWidth);\n }\n // If current width is below new min width, set to min\n else if (width < newMinWidth) {\n onWidthChange?.(newMinWidth);\n }\n };\n\n window.addEventListener(\"resize\", handleWindowResize);\n return () => window.removeEventListener(\"resize\", handleWindowResize);\n }, [width, onWidthChange]);\n\n const handleMouseUp = () => setIsResizing(false);\n\n const handleMouseDown = (e: React.MouseEvent) => {\n e.preventDefault();\n setIsResizing(true);\n };\n\n if (asideCollapsed) return null;\n\n return (\n <AppShell.Aside\n w={asideMaximized ? \"100%\" : width}\n miw={200}\n maw={asideMaximized ? `calc(100% - ${navbarWidth}px)` : MAX_WIDTH}\n ref={ref}\n sx={{\n overflowY: \"auto\",\n overflowX: \"hidden\",\n scrollbarWidth: \"none\",\n msOverflowStyle: \"none\",\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n }\n }}\n >\n {/* Resize handle */}\n {!asideMaximized && (\n <Box\n w={4}\n top={0}\n left={0}\n h=\"100%\"\n pos=\"absolute\"\n bg={isResizing ? theme.colors.focus : \"transparent\"}\n sx={{\n zIndex: 1,\n cursor: \"col-resize\",\n transition: \"background-color 0.2s ease\"\n }}\n onMouseDown={handleMouseDown}\n />\n )}\n\n {children}\n </AppShell.Aside>\n );\n}\n","import { Skeleton } from \"@mantine/core\";\nimport { Flex } from \"../../Base/Flex\";\n\nexport default function NavigationItemSkeleton() {\n return (\n <Flex\n align=\"center\"\n gap={8}\n pl={12}\n pr={12}\n py={6}\n style={{\n borderRadius: 8,\n backgroundColor: \"var(--mantine-color-neutralColor-5)\"\n }}\n >\n <Flex align=\"center\" gap={4} style={{ flex: 1 }}>\n <Skeleton\n height=\"15px\"\n radius=\"xl\"\n sx={{\n \"::before\": { opacity: 0 },\n \"::after\": { opacity: 1 }\n }}\n style={{ opacity: 0.2 }}\n />\n </Flex>\n <Skeleton\n height={16}\n width={16}\n radius={4}\n sx={{\n \"::before\": { opacity: 0 },\n \"::after\": { opacity: 1 }\n }}\n style={{ opacity: 0.3 }}\n />\n </Flex>\n );\n}\n","import { useHover } from \"@mantine/hooks\";\nimport { Flex } from \"../../Base/Flex\";\nimport { Text } from \"@mantine/core\";\nimport { IconCmp } from \"../../../types/IconCmp\";\n\nexport type IRoom = {\n id: string;\n name: string;\n icon: IconCmp;\n onClick: (id: string) => void;\n isActive: boolean;\n};\nexport default function RoomItem({ room }: { room: IRoom }) {\n const { hovered, ref } = useHover();\n\n return (\n <Flex\n ref={ref}\n align=\"center\"\n gap={8}\n px={12}\n py={4}\n ml={16}\n style={{\n cursor: \"pointer\",\n borderRadius: 6,\n backgroundColor: room.isActive || hovered ? \"var(--mantine-color-neutralColor-5)\" : \"transparent\",\n transform: hovered ? \"translateX(2px)\" : \"translateX(0px)\",\n transition: \"all 0.15s ease\"\n }}\n onClick={() => room.onClick(room.id)}\n >\n <room.icon size={16} color=\"secondary\" />\n <Text fz={13} c=\"neutralColor.8\">\n {room.name}\n </Text>\n </Flex>\n );\n}\n","import { Stack, Center, Text } from \"@mantine/core\";\nimport { useHover } from \"@mantine/hooks\";\nimport { AngleLeftSolid } from \"../../../icons\";\nimport { Flex } from \"../../Base/Flex\";\nimport { useToggle } from \"../../../hooks/useToggle\";\nimport RoomItem, { IRoom } from \"./RoomItem\";\n\nexport type IRoomCategory = {\n id: string;\n name: string;\n rooms: IRoom[];\n};\n\nexport default function RoomCategory({ category }: { category: IRoomCategory }) {\n const { hovered, ref } = useHover();\n const { value, toggle } = useToggle(false);\n\n return (\n <Stack gap={2}>\n <Flex\n ref={ref}\n align=\"center\"\n justify=\"space-between\"\n px={12}\n py={4}\n style={{\n cursor: \"pointer\",\n borderRadius: 6,\n backgroundColor: hovered ? \"var(--mantine-color-neutralColor-6)\" : \"transparent\",\n transition: \"all 0.15s ease\"\n }}\n onClick={toggle}\n >\n <Text fz={12} c=\"neutralColor.7\">\n {category.name}\n </Text>\n <Center\n sx={{\n transform: value ? \"rotate(-90deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\"\n }}\n >\n <AngleLeftSolid size={12} color=\"secondary\" />\n </Center>\n </Flex>\n {!value && (\n <Stack gap={1}>\n {category.rooms.map((room) => (\n <RoomItem key={room.id} room={room} />\n ))}\n </Stack>\n )}\n </Stack>\n );\n}\n","import { Stack, Badge, Center, Text, Image } from \"@mantine/core\";\nimport { useHover } from \"@mantine/hooks\";\nimport { AngleLeftSolid } from \"../../../icons\";\nimport { MoreMenu } from \"../../MoreMenu\";\nimport { Flex } from \"../../Base/Flex\";\nimport { useToggle } from \"../../../hooks/useToggle\";\nimport { IconCmp } from \"../../../types/IconCmp\";\nimport { useEffect, useMemo, useRef } from \"react\";\n\nexport type IMenuItem = {\n icon: IconCmp | string;\n name: string;\n id: string;\n badgeCount?: number;\n disabled?: boolean;\n isActive?: boolean;\n children?: IMenuItem[];\n isChild?: boolean;\n actions?: {\n label: string;\n onClick: () => void;\n icon: IconCmp;\n disabled?: boolean;\n }[];\n};\n\n// Helper function to recursively check if any descendant is active\nfunction hasActiveDescendant(children?: IMenuItem[]): boolean {\n if (!children || children.length === 0) return false;\n return children.some((child) => child.isActive === true || hasActiveDescendant(child.children));\n}\n\nexport default function MenuItem({ item, onMenuItemClick, depth = 0 }: { item: IMenuItem; onMenuItemClick: (item: IMenuItem) => void; depth?: number }) {\n const { hovered, ref } = useHover();\n const hasChildren = item.children && item.children.length > 0;\n\n const hasActiveChild = useMemo(() => hasActiveDescendant(item.children), [item.children]);\n\n const initialExpanded = item?.isActive === true || hasActiveChild;\n const { value: isExpanded, toggle, set: setIsExpanded } = useToggle(initialExpanded);\n\n const prevHasActiveChildRef = useRef(hasActiveChild);\n const manuallyToggledRef = useRef(false);\n\n useEffect(() => {\n if (item?.isActive !== undefined) {\n setIsExpanded(item.isActive);\n manuallyToggledRef.current = false;\n }\n }, [item?.isActive, setIsExpanded]);\n\n useEffect(() => {\n if (hasActiveChild && !prevHasActiveChildRef.current) {\n if (!manuallyToggledRef.current || isExpanded) {\n setIsExpanded(true);\n }\n }\n prevHasActiveChildRef.current = hasActiveChild;\n }, [hasActiveChild, isExpanded, setIsExpanded]);\n\n const handleItemClick = () => {\n if (!!item?.disabled) return;\n onMenuItemClick(item);\n };\n\n const handleToggleClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n manuallyToggledRef.current = true; // Mark that user manually toggled\n toggle();\n };\n\n // Only show active styling if item is active AND has no active children\n const shouldShowActiveStyle = item.isActive === true && !hasActiveChild;\n\n const renderIcon = () => {\n if (hasChildren && hovered) {\n return (\n <Center\n onClick={handleToggleClick}\n p={4}\n sx={{\n cursor: \"pointer\",\n borderRadius: 4,\n transform: isExpanded ? \"rotate(-90deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n \"&:hover\": {\n backgroundColor: \"neutralColor.5\"\n }\n }}\n >\n <AngleLeftSolid size={12} color=\"secondary\" />\n </Center>\n );\n } else {\n if (typeof item.icon === \"string\") {\n return <Image w={20} h={20} src={item.icon} radius=\"50%\" />;\n } else {\n return <item.icon size={20} color={shouldShowActiveStyle ? \"overPicture\" : \"secondary\"} />;\n }\n }\n };\n\n return (\n <Stack gap={1}>\n <Flex\n ref={ref}\n align=\"center\"\n gap={8}\n justify=\"space-between\"\n pl={12 + depth * 16}\n pr={12}\n py={6}\n style={{\n cursor: \"pointer\",\n borderRadius: 8,\n backgroundColor: shouldShowActiveStyle ? \"var(--mantine-color-neutralColor-6)\" : hovered ? \"var(--mantine-color-neutralColor-6)\" : \"transparent\",\n transform: hovered ? \"translateX(4px)\" : \"translateX(0px)\",\n transition: \"all 0.2s ease\"\n }}\n onClick={handleItemClick}\n >\n <Flex align=\"center\" gap={8}>\n {renderIcon()}\n <Text fz={14} fw={500} c={item.isActive ? \"neutralColor.8\" : \"neutralColor.7\"} style={{ flex: 1 }}>\n {item.name}\n </Text>\n {item.badgeCount ? (\n <Badge size=\"xs\" variant=\"filled\" ml={4} style={{ minWidth: \"16px\", height: \"15px\", padding: \"0 4px\", fontSize: \"8px\" }}>\n {item.badgeCount}\n </Badge>\n ) : null}\n </Flex>\n <Flex>\n {item?.actions && item.actions.length > 0 && (\n <Center\n sx={{\n cursor: \"pointer\",\n borderRadius: 4,\n transition: \"transform 0.2s ease\",\n \"&:hover\": {\n background: \"var(--mantine-color-neutralColor-5)\"\n }\n }}\n >\n <MoreMenu items={item.actions} controlColor=\"secondary\" />\n </Center>\n )}\n </Flex>\n </Flex>\n {hasChildren && isExpanded && (\n <Stack gap={1}>{item.children?.map((childItem) => <MenuItem key={childItem.id} item={childItem} onMenuItemClick={onMenuItemClick} depth={depth + 1} />)}</Stack>\n )}\n </Stack>\n );\n}\n","export default function SelectedIndicator() {\n return (\n <div\n style={{\n position: \"absolute\",\n left: -8,\n width: 4,\n height: 30,\n backgroundColor: \"var(--mantine-color-neutralColor-8)\",\n borderRadius: 4\n }}\n />\n );\n}\n","import { useHover } from \"@mantine/hooks\";\nimport { ReactElement } from \"react\";\nimport { Center, Tooltip } from \"@mantine/core\";\nimport { Image } from \"@mantine/core\";\nimport SelectedIndicator from \"./SelectedIndicator\";\n\nexport type ISpaceItem = {\n id: string;\n name: string;\n selectedSpace?: string;\n icon: string | ReactElement;\n onClick: (id: string) => void;\n};\n\nexport default function SpaceItem({ icon, id, name, selectedSpace, onClick }: ISpaceItem) {\n const { hovered, ref } = useHover();\n const isSelected = selectedSpace === id;\n\n return (\n <Center\n ref={ref}\n sx={{\n cursor: \"pointer\",\n borderRadius: 24\n }}\n pos=\"relative\"\n bg={hovered ? \"neutralColor.6\" : \"neutralColor.5\"}\n mih={40}\n w={40}\n onClick={() => onClick(id)}\n >\n <Tooltip label={name} ml={5} fz={12} position=\"right\" withArrow>\n {typeof icon === \"string\" ? <Image radius={24} src={icon} w={32} h={32} /> : icon}\n </Tooltip>\n {isSelected && <SelectedIndicator />}\n </Center>\n );\n}\n","export function cutText(text: string, length?: number, ending = \"…\"): string {\n if (!length || text.length <= length) {\n return text;\n }\n\n const words = text.split(\" \");\n const endingSize = ending.length;\n let result = \"\";\n\n for (const word of words) {\n const newValue = result + word + \" \";\n if (newValue.length + endingSize - 1 > length) {\n break;\n }\n result = newValue;\n }\n\n return result.trim() + ending;\n}\n\nexport function carbonToUSD(carbon: number): string {\n return (carbon * 0.03).toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 6\n });\n}\n","import { Burger, CloseButton, Group, Image } from \"@mantine/core\"\nimport { ReactElement } from \"react\";\n\ntype Props = {\n onClick: () => void;\n isOpened: boolean;\n avatarIcon?: {\n icon: string | ReactElement | null;\n onClick: () => void;\n isSelected?: boolean;\n };\n}\nexport default function MobileBurger({ avatarIcon, isOpened, onClick }: Props) {\n if (isOpened) {\n return <CloseButton hiddenFrom=\"sm\" pos=\"absolute\" w={28} sx={{ borderRadius: 8, zIndex: 100 }} h={28} onClick={onClick} right={12} top={12} bg=\"neutralColor.4\" />\n }\n\n return <Group hiddenFrom=\"sm\" pos=\"absolute\" left={12} top={12} onClick={onClick} p={8} py={4} wrap=\"nowrap\" w=\"fit-content\" gap={6} sx={{ borderRadius: 8, zIndex: 100 }} bg=\"neutralColor.4\">\n {avatarIcon && (\n typeof avatarIcon.icon === \"string\" ? (\n <Image radius={18} src={avatarIcon.icon} w={18} h={18} />\n ) : (\n avatarIcon.icon\n )\n )}\n <Burger lineSize={2} pr={0} size=\"xs\" />\n </Group>\n}\n","import { AppShell, Box, Center, Divider, Image, Overlay, ScrollArea, Space, Stack, Text, Tooltip } from \"@mantine/core\";\nimport { useDisclosure, useMediaQuery } from \"@mantine/hooks\";\nimport { PropsWithChildren, ReactElement, useCallback, useEffect, useRef, useState } from \"react\";\nimport { useLocalStorage } from \"../../hooks/useLocalStorage\";\nimport { Assistant, MinusCircleSolid, PlusSolid, SettingsBarSolid } from \"../../icons\";\nimport { Flex } from \"../Base/Flex\";\nimport { CanvasMode } from \"../../types/canvas\";\nimport AsideResizable from \"./components/AsideResizable\";\nimport NavigationItemSkeleton from \"./components/NavigationItemSkeleton\";\nimport RoomCategory, { IRoomCategory } from \"./components/RoomCategory\";\nimport MenuItem, { IMenuItem } from \"./components/MenuItem\";\nimport SpaceItem, { ISpaceItem } from \"./components/SpaceItem\";\nimport SelectedIndicator from \"./components/SelectedIndicator\";\nimport { cutText } from \"../../utils/formatters\";\nimport MobileBurger from \"./components/MobileBurger\";\n\ntype Props = {\n onSettingsIconClick: () => void;\n pageItem: {\n pageTitle: string;\n };\n selectedSpace?: string;\n companyIcon: {\n icon: string | ReactElement;\n onClick: () => void;\n isSelected?: boolean;\n };\n temporarySpace?: ISpaceItem;\n onMenuItemClick: (item: IMenuItem) => void;\n spaces: ISpaceItem[];\n right?: ReactElement;\n asideCollapsed?: boolean;\n asideMaximized?: boolean;\n onAsideToggle?: () => void;\n onMaxExpand?: () => void;\n avatarIcon?: {\n icon: string | ReactElement | null;\n onClick: () => void;\n isSelected?: boolean;\n };\n menuItems?: IMenuItem[];\n // responsible for placing navigation divider by index of menu items\n separator?: number;\n footerContent?: ReactElement;\n roomCategories?: IRoomCategory[];\n onAddSpaceClick?: () => void;\n onMinusSpaceClick?: () => void;\n isAiBtnVisible?: boolean;\n isAiOpened?: boolean;\n onAiOpen?: () => void;\n loading?: boolean;\n aiNavbarContent?: ReactElement;\n // Canvas split view props\n canvasContent?: ReactElement;\n canvasMode?: CanvasMode;\n splitRatio?: number;\n onSplitRatioChange?: (ratio: number) => void;\n};\n\n// Minimum widths for split view sections\nconst CANVAS_MIN_WIDTH = 350;\nconst CONTENT_MIN_WIDTH = 350;\n\nexport function AppShellNavigation({\n spaces,\n pageItem,\n selectedSpace,\n temporarySpace,\n menuItems,\n companyIcon,\n onAddSpaceClick,\n onMinusSpaceClick,\n avatarIcon,\n onMenuItemClick,\n onSettingsIconClick,\n footerContent,\n roomCategories,\n right,\n asideCollapsed = true,\n asideMaximized = false,\n onAsideToggle,\n onMaxExpand,\n onAiOpen,\n isAiOpened,\n isAiBtnVisible,\n loading,\n children,\n separator,\n aiNavbarContent,\n canvasContent,\n canvasMode = \"hidden\",\n splitRatio = 0.4,\n onSplitRatioChange\n}: PropsWithChildren<Props>): ReactElement {\n const [asideWidth, setAsideWidth] = useState(450);\n const isMobile = useMediaQuery(\"(max-width: 48em)\"); // 'sm' breakpoint: 48em (768px)\n const [mobileOpened, { toggle: toggleMobile }] = useDisclosure();\n const [desktopOpened, { toggle: toggleDesktop }] = useDisclosure(true);\n\n // Split view resize state\n const [isSplitResizing, setIsSplitResizing] = useState(false);\n const isSplitResizingRef = useRef(false);\n const mainContainerRef = useRef<HTMLDivElement>(null);\n\n // Check if right panel (aside) is open - this overrides canvas visibility\n const isRightPanelOpen = !asideCollapsed && !!right;\n\n // Determine visibility of canvas and content sections\n const shouldShowCanvas = canvasMode !== \"hidden\" && !isRightPanelOpen;\n const shouldShowContent = ((canvasMode === \"hidden\" || canvasMode === \"split\") && !isRightPanelOpen) || isRightPanelOpen;\n\n // Calculate widths based on mode\n const getCanvasWidth = () => {\n if (!shouldShowCanvas) return \"0%\";\n if (canvasMode === \"full\") return \"100%\";\n return `${splitRatio * 100}%`;\n };\n\n const getContentWidth = () => {\n if (!shouldShowContent) return \"0%\";\n if (canvasMode === \"hidden\" || isRightPanelOpen) return \"100%\";\n if (canvasMode === \"full\") return \"0%\";\n return `${(1 - splitRatio) * 100}%`;\n };\n\n // Split divider resize handlers\n const handleSplitMouseMove = useCallback(\n (e: MouseEvent) => {\n if (!isSplitResizingRef.current || !mainContainerRef.current) return;\n\n const containerRect = mainContainerRef.current.getBoundingClientRect();\n const containerWidth = containerRect.width;\n const relativeX = e.clientX - containerRect.left;\n\n // Calculate ratio with min width constraints\n const minRatio = CANVAS_MIN_WIDTH / containerWidth;\n const maxRatio = 1 - CONTENT_MIN_WIDTH / containerWidth;\n const newRatio = Math.min(Math.max(relativeX / containerWidth, minRatio), maxRatio);\n\n onSplitRatioChange?.(newRatio);\n },\n [onSplitRatioChange]\n );\n\n const isTitleOverflowing = (pageItem?.pageTitle?.length || 0) > 21;\n\n const handleSplitMouseUp = useCallback(() => {\n setIsSplitResizing(false);\n isSplitResizingRef.current = false;\n }, []);\n\n const handleSplitMouseDown = (e: React.MouseEvent) => {\n e.preventDefault();\n setIsSplitResizing(true);\n isSplitResizingRef.current = true;\n };\n\n // Attach global listeners for split resize\n useEffect(() => {\n if (isSplitResizing) {\n document.addEventListener(\"mousemove\", handleSplitMouseMove);\n document.addEventListener(\"mouseup\", handleSplitMouseUp);\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n } else {\n document.removeEventListener(\"mousemove\", handleSplitMouseMove);\n document.removeEventListener(\"mouseup\", handleSplitMouseUp);\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n }\n\n return () => {\n document.removeEventListener(\"mousemove\", handleSplitMouseMove);\n document.removeEventListener(\"mouseup\", handleSplitMouseUp);\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n };\n }, [isSplitResizing, handleSplitMouseMove, handleSplitMouseUp]);\n\n // Separate width states for AI open and closed modes - persisted to localStorage\n const [navbarWidthAiOpen, setNavbarWidthAiOpen] = useLocalStorage(\"navbar-width-ai-open\", 450);\n const [navbarWidthAiClosed, setNavbarWidthAiClosed] = useLocalStorage(\"navbar-width-ai-closed\", 300);\n\n // Current navbar width based on AI state\n const navbarWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;\n\n const [isNavbarResizing, setIsNavbarResizing] = useState(false);\n const isNavbarResizingRef = useRef(false);\n\n function clearNavbarListeners() {\n document.removeEventListener(\"mousemove\", handleNavbarMouseMove);\n document.removeEventListener(\"mouseup\", handleNavbarMouseUp);\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n }\n\n const handleNavbarMouseMove = useCallback(\n (e: MouseEvent) => {\n if (!isNavbarResizingRef.current) return;\n const minWidth = isAiOpened ? 450 : 300;\n const maxWidth = 700; // Leave space for main content + right aside\n const newWidth = Math.min(Math.max(e.clientX, minWidth), maxWidth);\n // Update the width for the current AI state\n if (isAiOpened) {\n setNavbarWidthAiOpen(newWidth);\n } else {\n setNavbarWidthAiClosed(newWidth);\n }\n },\n [isAiOpened]\n );\n\n const handleNavbarMouseUp = useCallback(() => {\n setIsNavbarResizing(false);\n isNavbarResizingRef.current = false;\n }, []);\n\n const handleNavbarMouseDown = (e: React.MouseEvent) => {\n e.preventDefault();\n setIsNavbarResizing(true);\n isNavbarResizingRef.current = true;\n };\n\n // Attach global listeners while resizing\n useEffect(() => {\n if (isNavbarResizing) {\n document.addEventListener(\"mousemove\", handleNavbarMouseMove);\n document.addEventListener(\"mouseup\", handleNavbarMouseUp);\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n } else {\n clearNavbarListeners();\n }\n\n return () => clearNavbarListeners();\n }, [isNavbarResizing, handleNavbarMouseMove, handleNavbarMouseUp]);\n\n // Constrain navbar width on window resize\n useEffect(() => {\n const handleWindowResize = () => {\n const maxWidth = 700;\n const minWidth = isAiOpened ? 450 : 300;\n const currentWidth = isAiOpened ? navbarWidthAiOpen : navbarWidthAiClosed;\n const setter = isAiOpened ? setNavbarWidthAiOpen : setNavbarWidthAiClosed;\n\n if (currentWidth > maxWidth) {\n setter(maxWidth);\n } else if (currentWidth < minWidth) {\n setter(minWidth);\n }\n };\n\n window.addEventListener(\"resize\", handleWindowResize);\n return () => window.removeEventListener(\"resize\", handleWindowResize);\n }, [navbarWidthAiOpen, navbarWidthAiClosed, isAiOpened]);\n\n return (\n <AppShell\n withBorder={false}\n styles={{\n navbar: {\n background: \"var(--mantine-color-neutralColor-4)\",\n transition: isNavbarResizing ? \"none\" : \"width 0.3s ease\"\n },\n aside: {\n background: \"var(--mantine-color-neutralColor-2)\",\n borderLeft: \"1px solid var(--mantine-color-neutralColor-6)\"\n }\n }}\n bg=\"neutralColor.2\"\n navbar={{\n width: navbarWidth,\n breakpoint: \"sm\",\n collapsed: { mobile: !mobileOpened, desktop: !desktopOpened }\n }}\n aside={{\n width: asideCollapsed ? 0 : asideWidth,\n breakpoint: \"sm\"\n }}\n >\n <AppShell.Navbar>\n <Box sx={{ position: \"relative\", height: \"100%\" }}>\n {/* Resize handle on the right edge of the navbar */}\n <Box\n w={4}\n top={0}\n right={0}\n h=\"100%\"\n pos=\"absolute\"\n bg={isNavbarResizing ? \"accent.5\" : \"transparent\"}\n sx={{\n zIndex: 2,\n cursor: \"col-resize\",\n transition: \"background-color 0.2s ease\"\n }}\n onMouseDown={handleNavbarMouseDown}\n />\n\n <Flex style={{ height: \"100%\" }}>\n <Stack p={8} w={56} visibleFrom=\"sm\" justify=\"space-between\" h=\"100%\" bg=\"neutralColor.2\">\n <Stack align=\"center\" style={{ flex: 1 }} gap={8}>\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} pos=\"relative\" h={40} w={40} onClick={companyIcon.onClick}>\n {typeof companyIcon.icon === \"string\" ? <Image radius={24} src={companyIcon.icon} w={32} h={32} /> : companyIcon.icon}\n {companyIcon.isSelected && <SelectedIndicator />}\n </Center>\n {avatarIcon && (\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} pos=\"relative\" bg=\"neutralColor.5\" h={40} w={40} onClick={avatarIcon.onClick}>\n <Tooltip label=\"Home\" position=\"right\" withArrow ml={5} fz={12}>\n {typeof avatarIcon.icon === \"string\" ? <Image radius={24} src={avatarIcon.icon} w={32} h={32} /> : avatarIcon.icon}\n </Tooltip>\n {avatarIcon.isSelected && <SelectedIndicator />}\n </Center>\n )}\n <Divider w={40} mx={10} color=\"neutralColor.5\" />\n {temporarySpace && !spaces?.some((space) => space.id === temporarySpace.id) && (\n <>\n <SpaceItem\n selectedSpace={selectedSpace}\n key={temporarySpace.id}\n icon={temporarySpace.icon}\n name={temporarySpace.name}\n id={temporarySpace.id}\n onClick={temporarySpace.onClick}\n />\n <Divider w={40} mx={10} color=\"neutralColor.5\" />\n </>\n )}\n <ScrollArea\n scrollbarSize={0}\n style={{\n flex: 1,\n maxHeight: \"calc(100vh - 360px)\"\n }}\n viewportProps={{\n style: {\n paddingLeft: 8,\n paddingRight: 8\n }\n }}\n >\n <Stack align=\"center\" gap={8}>\n {spaces.map(({ icon, id, name, onClick }) => (\n <SpaceItem selectedSpace={selectedSpace} key={id} icon={icon} name={name} id={id} onClick={onClick} />\n ))}\n </Stack>\n </ScrollArea>\n </Stack>\n {onAddSpaceClick && (\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} bg=\"neutralColor.5\" h={40} w={40} onClick={onAddSpaceClick}>\n <PlusSolid color=\"secondary\" />\n </Center>\n )}\n {onMinusSpaceClick && (\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} bg=\"neutralColor.5\" h={40} w={40} onClick={onMinusSpaceClick}>\n <MinusCircleSolid color=\"secondary\" />\n </Center>\n )}\n\n <Stack align=\"center\" gap={8}>\n <Divider w={40} mx={10} color=\"neutralColor.5\" />\n <Center sx={{ cursor: \"pointer\", borderRadius: 24 }} bg=\"neutralColor.5\" h={40} w={40} onClick={onSettingsIconClick}>\n <SettingsBarSolid size={22} color=\"secondary\" />\n </Center>\n </Stack>\n </Stack>\n\n {isAiOpened && !isMobile && aiNavbarContent}\n\n {!isAiOpened && (\n <Stack justify=\"space-between\" w=\"100%\" pt={16} pb={10} px={12}>\n <Stack gap={5}>\n <Flex mb={24} style={{ width: \"100%\" }} justify=\"space-between\" align=\"center\">\n <Flex align=\"center\" gap=\"10px\">\n <Tooltip label={pageItem.pageTitle || \"Unknown\"} disabled={!isTitleOverflowing} position=\"bottom\" withArrow>\n <Text lh={1} c=\"neutralColor.8\">\n {cutText(pageItem.pageTitle, 19) || \"Unknown\"}\n </Text>\n </Tooltip>\n </Flex>\n {isAiBtnVisible && !isAiOpened && !isMobile && (\n <Center\n sx={{\n cursor: \"pointer\",\n borderRadius: 8,\n transition: \"background 0.15s\",\n background: \"var(--mantine-color-neutralColor-5)\",\n \"&:hover\": {\n background: \"var(--mantine-color-neutralColor-6)\"\n }\n }}\n p={4}\n onClick={onAiOpen}\n >\n <Assistant size={18} color=\"primary\" />\n </Center>\n )}\n\n {/* TODO: DECIDE on collapse */}\n {/* <Center sx={{ cursor: \"pointer\" }} onClick={toggleNavbar}>\n <PanelLeftSolid size={22} color=\"secondary\" />\n </Center> */}\n </Flex>\n {loading ? (\n <Stack gap={5}>\n {Array.from({ length: 6 }).map((_, idx) => (\n <NavigationItemSkeleton key={idx} />\n ))}\n </Stack>\n ) : (\n menuItems?.map((item, index) => {\n if (index === separator) {\n return (\n <>\n <Space h={16} />\n <MenuItem onMenuItemClick={onMenuItemClick} key={item.id} item={item} />\n </>\n );\n }\n return <MenuItem onMenuItemClick={onMenuItemClick} key={item.id} item={item} />;\n })\n )}\n {roomCategories && roomCategories.length > 0 && (\n <Stack gap={8} mt={16}>\n {roomCategories.map((category) => (\n <RoomCategory key={category.id} category={category} />\n ))}\n </Stack>\n )}\n </Stack>\n <Stack gap={5}>{footerContent}</Stack>\n </Stack>\n )}\n </Flex>\n </Box>\n </AppShell.Navbar>\n <AppShell.Main\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100vh\",\n overflow: \"hidden\",\n position: \"relative\"\n }}\n >\n {/* Mobile navbar overlay */}\n {mobileOpened && <Overlay hiddenFrom=\"sm\" color=\"var(--mantine-color-neutralColor-0)\" backgroundOpacity={0.6} blur={2} onClick={toggleMobile} zIndex={99} />}\n\n {/* Main container for split view */}\n <Flex\n ref={mainContainerRef}\n style={{\n flex: 1,\n height: isMobile ? \"calc(100% - 60px)\" : \"100%\",\n overflow: \"hidden\",\n position: \"relative\",\n minHeight: 0,\n marginTop: isMobile && isAiOpened ? \"calc(-100vh + 60px)\" : 0,\n transition: isMobile ? \"margin-top 0.5s ease\" : \"none\"\n }}\n >\n {/* RL - Canvas Section - ALWAYS RENDERED for AG-UI hooks */}\n <Box\n bg=\"neutralColor.5\"\n style={{\n width: getCanvasWidth(),\n minWidth: shouldShowCanvas && canvasMode === \"split\" ? CANVAS_MIN_WIDTH : undefined,\n display: shouldShowCanvas ? \"flex\" : \"none\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n height: \"100%\",\n transition: isSplitResizing ? \"none\" : \"width 0.3s ease, opacity 0.2s ease\",\n opacity: shouldShowCanvas ? 1 : 0,\n borderLeft: \"1px solid var(--mantine-color-neutralColor-6)\"\n }}\n >\n {canvasContent}\n </Box>\n\n {/* Resizable Divider - only visible in split mode */}\n {canvasMode === \"split\" && !isRightPanelOpen && (\n <Box\n w={4}\n h=\"100%\"\n bg={isSplitResizing ? \"accent.5\" : \"transparent\"}\n sx={{\n cursor: \"col-resize\",\n flexShrink: 0,\n transition: \"background-color 0.2s ease\"\n }}\n onMouseDown={handleSplitMouseDown}\n />\n )}\n\n {/* RR - Main Content Section - ALWAYS RENDERED for state preservation */}\n <Box\n style={{\n width: getContentWidth(),\n minWidth: shouldShowContent && canvasMode === \"split\" ? CONTENT_MIN_WIDTH : undefined,\n display: shouldShowContent ? \"flex\" : \"none\",\n flexDirection: \"column\",\n overflow: \"auto\",\n height: \"100%\",\n transition: isSplitResizing ? \"none\" : \"width 0.3s ease, opacity 0.2s ease\",\n opacity: shouldShowContent ? 1 : 0\n }}\n >\n <MobileBurger isOpened={mobileOpened} onClick={toggleMobile} avatarIcon={avatarIcon} />\n {children}\n </Box>\n </Flex>\n {/* Mobile footer - Assistant */}\n {isMobile && isAiBtnVisible && (\n <Box\n bg=\"neutralColor.3\"\n pos=\"relative\"\n h={isAiOpened ? \"100%\" : 60}\n sx={{\n transition: \"height 0.8s ease\"\n }}\n >\n <Box onClick={onAiOpen} pos=\"absolute\" left=\"50%\" top={18} sx={{ zIndex: 3, transform: \"translateX(-50%)\" }}>\n <Assistant />\n </Box>\n {isAiOpened && aiNavbarContent}\n </Box>\n )}\n </AppShell.Main>\n <AsideResizable\n navbarWidth={navbarWidth}\n asideCollapsed={asideCollapsed}\n asideMaximized={asideMaximized}\n onAsideToggle={onAsideToggle}\n onMaxExpand={onMaxExpand}\n width={asideWidth}\n onWidthChange={setAsideWidth}\n >\n {right}\n </AsideResizable>\n </AppShell>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Avatar } from \"../Avatar\";\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\n\ntype Props = {\n src?: string;\n title: string;\n description: string;\n onClick?: () => void;\n};\n\nexport function AvatarInfo({ src, title, description, onClick }: Props): ReactElement {\n const content = (\n <Spacer>\n <Avatar size={40} src={src} />\n <Spacer vertical shrink alignItems=\"start\" justifyContent=\"space-between\" distance={0}>\n <Typography.Text size=\"regular\" color=\"text\">\n {title}\n </Typography.Text>\n <Typography.Text size=\"xs\" color=\"secondary\">\n {description}\n </Typography.Text>\n </Spacer>\n </Spacer>\n );\n\n if (onClick) {\n return (\n <button\n onClick={onClick}\n css={({ transition }) => ({\n border: \"none\",\n background: \"none\",\n transitionDuration: transition.duration,\n width: \"100%\",\n display: \"flex\",\n \"&:hover\": { opacity: 0.5 }\n })}\n >\n {content}\n </button>\n );\n }\n\n return content;\n}\n","import { ReactElement } from \"react\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\n\nexport function Button({ value, icon: Icon, disabled, outline, secondary, iconSecondary, bordered, lg, block, align = \"center\", badge, onClick }: Props): ReactElement {\n const color = disabled ? \"secondary\" : \"text\";\n const iconColor = iconSecondary ? \"secondary\" : color;\n\n return (\n <button\n css={({ radius, buttonHeight, colors, text, bg, spacing }) => {\n let width: number | string = \"auto\";\n const height = lg ? buttonHeight.big : buttonHeight.small;\n\n if (!value) {\n width = height;\n } else if (block) {\n width = \"100%\";\n }\n\n return {\n backgroundColor: colors.focusTransparent20,\n boxSizing: \"border-box\",\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: colors.focus,\n borderRadius: radius.roundButtons,\n width,\n height,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: align,\n gap: spacing,\n ...(value ? { paddingLeft: spacing * 2, paddingRight: spacing * 2 } : {}),\n ...(outline\n ? {\n background: \"transparent\",\n borderColor: colors.focus\n }\n : {}),\n ...(secondary\n ? {\n background: bg.card,\n ...(bordered ? {} : { borderColor: \"transparent\" })\n }\n : {}),\n \"&:disabled\": {\n backgroundColor: bg.card,\n borderColor: \"transparent\",\n color: text.secondary,\n cursor: \"not-allowed\"\n },\n \"&:focus:not([disabled]),&:active:not([disabled])\": {\n outline: \"none\",\n borderColor: colors.focusTransparent50\n }\n };\n }}\n onClick={onClick}\n disabled={disabled}\n >\n {Icon ? <Icon color={iconColor} size={20} /> : null}\n {badge ? <Tag value={badge} small /> : null}\n {value ? <Typography.Text color={color}>{value}</Typography.Text> : null}\n </button>\n );\n}\n","import { ReactElement } from \"react\";\nimport { ElementColor } from \"../../utils/colors\";\n\nimport { Props } from \"./types\";\n\nexport function ButtonBasic({\n children,\n icon: Icon,\n disabled = false,\n accent = false,\n iconPosition = \"left\",\n size = \"medium\",\n block = false,\n type = \"button\",\n onClick\n}: Props): ReactElement {\n // Figma design system color values\n const getTextColor = () => {\n if (disabled) return \"rgba(255, 255, 255, 0.3)\";\n return \"#FFFFFF\";\n };\n\n const getIconColor = (): ElementColor => {\n if (disabled) return \"secondary\";\n if (accent) return \"text\"; // Use text color for accent state (will be white on colored background)\n return \"secondary\"; // Default icon color (maps to theme.text.secondary)\n };\n\n const getIconSize = () => {\n return size === \"small\" ? 16 : 20;\n };\n\n return (\n <button\n type={type}\n css={({ spacing }) => {\n let width: number | string = \"auto\";\n\n // Figma sizing: Small=Yes uses smaller padding and font, Small=No uses larger\n const isSmall = size === \"small\";\n const paddingVertical = 8;\n const paddingHorizontal = isSmall ? 12 : 16;\n const fontSize = isSmall ? 12 : 16;\n const lineHeight = isSmall ? 1.2 : 1.5;\n const letterSpacing = \"0.01em\";\n\n if (block) {\n width = \"100%\";\n }\n\n // Base styles matching Figma exactly\n const baseStyles = {\n fontSize,\n fontWeight: 400,\n lineHeight,\n letterSpacing,\n backgroundColor: \"rgba(255, 255, 255, 0.06)\", // Default from Figma\n color: getTextColor(),\n boxSizing: \"border-box\" as const,\n borderStyle: \"solid\" as const,\n borderWidth: 1,\n borderColor: \"transparent\",\n borderRadius: 32, // Exact value from Figma\n width,\n height: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: spacing,\n padding: `${paddingVertical}px ${paddingHorizontal}px`,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n transition: \"all 0.2s ease-in-out\"\n };\n\n // State-specific styles matching Figma\n const interactionStyles = disabled\n ? {\n // Disabled state - no opacity change, just different colors\n }\n : {\n \"&:hover\": {\n backgroundColor: \"rgba(255, 255, 255, 0.08)\" // Hover from Figma\n },\n \"&:active\": {\n backgroundColor: \"rgba(0, 210, 255, 0.2)\", // Active from Figma\n borderColor: \"rgba(255, 255, 255, 0.5)\" // Active border\n },\n \"&:focus\": {\n outline: \"none\",\n backgroundColor: \"rgba(0, 210, 255, 0.2)\", // Focus same as active\n borderColor: \"rgba(255, 255, 255, 0.5)\"\n }\n };\n\n // Accent state overrides\n const accentStyles = accent\n ? {\n backgroundColor: \"rgba(0, 210, 255, 0.2)\",\n borderColor: \"rgba(255, 255, 255, 0.5)\",\n \"&:hover\": {\n backgroundColor: \"rgba(0, 210, 255, 0.3)\"\n },\n \"&:active\": {\n backgroundColor: \"rgba(0, 210, 255, 0.4)\"\n },\n \"&:focus\": {\n backgroundColor: \"rgba(0, 210, 255, 0.4)\"\n }\n }\n : {};\n\n return {\n ...baseStyles,\n ...interactionStyles,\n ...accentStyles\n };\n }}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n >\n {Icon && iconPosition === \"left\" ? <Icon color={getIconColor()} size={getIconSize()} /> : null}\n {children ? <span style={{ color: getTextColor() }}>{children}</span> : null}\n {Icon && iconPosition === \"right\" ? <Icon color={getIconColor()} size={getIconSize()} /> : null}\n </button>\n );\n}\n","import { ReactElement } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\nimport { getElementColor } from \"../../utils/colors\";\n\nexport function ButtonReadOnly({ text, icon: Icon, iconColor = \"primary\", textColor = \"text\", bgColor = \"primary\", align = \"left\", block }: Props): ReactElement {\n const theme = useTheme();\n\n return (\n <div\n css={({ spacing, radius }) => ({\n display: block ? \"flex\" : \"inline-flex\",\n alignItems: \"center\",\n justifyContent: align,\n gap: spacing,\n backgroundColor: getElementColor(theme, bgColor),\n borderRadius: radius.roundButtons,\n paddingTop: spacing * 1.5,\n paddingBottom: spacing * 1.5,\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2,\n height: 20\n })}\n >\n {Icon ? <Icon color={iconColor} size={20} /> : null}\n <Typography.Text color={textColor}>{text}</Typography.Text>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\n\nexport function ButtonSubtle({ state = \"default\", type = \"iconLeft\", disabled = false, icon: Icon, value, onClick, className }: Props): ReactElement {\n const getStateStyles = (state: string, disabled: boolean) => {\n if (disabled) {\n return {\n backgroundColor: \"rgba(255, 255, 255, 0.06)\",\n color: \"rgba(255, 255, 255, 0.3)\",\n cursor: \"not-allowed\"\n };\n }\n\n switch (state) {\n case \"default\":\n return {\n backgroundColor: \"transparent\",\n color: \"rgba(255, 255, 255, 0.3)\",\n \"&:hover\": {\n backgroundColor: \"rgba(255, 255, 255, 0.08)\",\n color: \"#FFFFFF\"\n }\n };\n case \"hover\":\n return {\n backgroundColor: \"rgba(255, 255, 255, 0.08)\",\n color: \"#FFFFFF\"\n };\n case \"accent\":\n return {\n backgroundColor: \"rgba(255, 255, 255, 0.06)\",\n color: \"rgba(255, 255, 255, 0.5)\"\n };\n case \"active\":\n return {\n backgroundColor: \"rgba(255, 255, 255, 0.08)\",\n color: \"#FFFFFF\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#FFFFFF\"\n };\n default:\n return {\n backgroundColor: \"transparent\",\n color: \"rgba(255, 255, 255, 0.3)\"\n };\n }\n };\n\n const isIconOnly = type === \"iconOnly\" || !value;\n\n return (\n <button\n css={() => {\n const stateStyles = getStateStyles(state, disabled);\n\n return {\n boxSizing: \"border-box\",\n borderRadius: \"8px\",\n border: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"4px\",\n padding: isIconOnly ? \"2px\" : \"2px 8px\",\n width: isIconOnly ? \"28px\" : \"auto\",\n height: isIconOnly ? \"28px\" : \"auto\",\n fontSize: \"16px\",\n fontWeight: 400,\n lineHeight: \"1.5em\",\n letterSpacing: \"0.01em\",\n outline: \"none\",\n transition: \"all 0.2s ease-in-out\",\n ...stateStyles,\n \"& svg\": {\n opacity: disabled ? 0.3 : state === \"hover\" || state === \"active\" ? 1 : 0.5,\n transition: \"opacity 0.2s ease-in-out\"\n },\n \"&:hover svg\": {\n opacity: disabled ? 0.3 : 1\n },\n \"&:focus\": {\n outline: \"none\"\n },\n \"&:disabled\": {\n backgroundColor: \"rgba(255, 255, 255, 0.06)\",\n color: \"rgba(255, 255, 255, 0.3)\",\n cursor: \"not-allowed\"\n }\n };\n }}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n className={className}\n >\n {type === \"iconLeft\" && Icon && <Icon color={disabled ? \"textSecondary\" : undefined} size={20} />}\n {value && <Typography.Text css={{ color: \"inherit\", fontSize: \"inherit\" }}>{value}</Typography.Text>}\n {type === \"iconRight\" && Icon && <Icon color={disabled ? \"textSecondary\" : undefined} size={20} />}\n {type === \"iconOnly\" && Icon && <Icon color={disabled ? \"textSecondary\" : undefined} size={20} />}\n </button>\n );\n}\n","import { ReactElement, ReactNode } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { IconButton } from \"../IconButton\";\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\nimport { Close } from \"../../icons\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ElementColor, getElementColor } from \"../../utils/colors\";\n\ntype Props = {\n title: string;\n icon: IconCmp;\n children: ReactNode;\n width?: number;\n bgColor?: ElementColor;\n bgFooterColor?: ElementColor;\n onRequestClose: () => void;\n footer?: ReactNode;\n};\n\nexport function CardAction({ title, children, icon: Icon, width, bgColor, bgFooterColor, onRequestClose, footer }: Props): ReactElement {\n const theme = useTheme();\n const bgColorHex = bgColor ? getElementColor(theme, bgColor) : undefined;\n const bgFooterColorHex = bgFooterColor ? getElementColor(theme, bgFooterColor) : undefined;\n return (\n <div\n css={({ colors, radius, bg }) => ({\n borderColor: colors.focus,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: radius.medium,\n backgroundColor: bgColorHex || bg.cardHighlight,\n display: \"inline-flex\",\n flexDirection: \"column\",\n width\n })}\n >\n <Spacer vertical css={({ spacing }) => ({ padding: spacing * 2 })}>\n <Spacer justifyContent=\"space-between\" fullWidth>\n <Spacer justifyContent=\"center\">\n <Icon color=\"primary\" size={16} />\n <Typography.Text color=\"primary\">{title}</Typography.Text>\n </Spacer>\n <IconButton icon={Close} colorDefault=\"secondary\" size={20} onClick={onRequestClose} />\n </Spacer>\n <div css={{ width: \"100%\" }}>{children}</div>\n </Spacer>\n {footer && (\n <div\n css={({ radius, bg }) => ({\n backgroundColor: bgFooterColorHex || bg.cardHighlight,\n width: \"100%\",\n position: \"relative\",\n borderBottomLeftRadius: radius.medium,\n borderBottomRightRadius: radius.medium,\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n height: radius.medium,\n backgroundColor: bgColorHex || bg.cardHighlight,\n borderBottomLeftRadius: radius.medium,\n borderBottomRightRadius: radius.medium\n }\n })}\n >\n <div\n css={({ spacing, radius }) => ({\n padding: spacing * 2,\n paddingTop: spacing * 2 + radius.medium\n })}\n >\n {footer}\n </div>\n </div>\n )}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\n\nexport function CardEntity({ title, description, iconUrl }: Props): ReactElement {\n return (\n <div\n css={({ bg, radius, spacing }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: spacing,\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.small,\n padding: spacing,\n width: \"100%\",\n boxSizing: \"border-box\"\n })}\n >\n <Spacer vertical distance={0}>\n <Typography.Text size=\"regular\">{title}</Typography.Text>\n {description ? (\n <Typography.Text color=\"secondary\" size=\"xs\">\n {description}\n </Typography.Text>\n ) : null}\n </Spacer>\n {iconUrl ? <img src={iconUrl} draggable={false} width={32} height={32} /> : null}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Spacer } from \"../../../Spacer\";\nimport { Typography } from \"../../../Typography\";\nimport { ElementColor } from \"../../../../utils/colors\";\n\nexport type Props = {\n side: \"left\" | \"right\";\n content: {\n image?: string;\n title?: string;\n subtitle?: string;\n subtitleColor?: ElementColor;\n };\n};\n\nexport function ContentSide({ side, content }: Props): ReactElement {\n return (\n <Spacer reverse={side === \"right\"}>\n {content.image && <img src={content.image} css={{ width: 40, height: 40 }} draggable={false} />}\n <Spacer vertical distance={0} alignItems={side === \"left\" ? \"start\" : \"end\"}>\n {content.title && <Typography.Text>{content.title}</Typography.Text>}\n {content.subtitle && (\n <Typography.Text color={content.subtitleColor} size=\"xs\">\n {content.subtitle}\n </Typography.Text>\n )}\n </Spacer>\n </Spacer>\n );\n}\n","import { ReactNode } from \"react\";\nimport { useTheme } from \"@emotion/react\";\nimport { css } from \"@emotion/css\";\n\nimport { Card } from \"../Card\";\nimport { Spacer } from \"../Spacer\";\n\nimport { ContentSide, Props as PropsContentSide } from \"./components/ContentSide\";\n\ntype Props = {\n left?: Omit<PropsContentSide[\"content\"], \"side\">;\n right?: Omit<PropsContentSide[\"content\"], \"side\">;\n};\n\nexport function CardHeader({ left, right }: Props): ReactNode {\n const { spacing } = useTheme();\n\n if (!left && !right) {\n return null;\n }\n\n return (\n <Card roundedBottom noPadding contentClassName={css({ padding: spacing * 2 })}>\n <Spacer justifyContent=\"space-between\">\n {left ? <ContentSide side=\"left\" content={left} /> : <span />}\n {right ? <ContentSide side=\"right\" content={right} /> : <span />}\n </Spacer>\n </Card>\n );\n}\n","import { Badge, Box, Text } from \"@mantine/core\";\nimport Markdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\n\nexport interface OracleMessageProps {\n oracleName?: string;\n message?: string;\n}\n\nexport function OracleMessage({ oracleName, message }: OracleMessageProps): JSX.Element | null {\n return (\n <Box mb={32}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <Text fz={12} c=\"accent.5\">\n {oracleName || \"Oracle\"}\n </Text>\n <Badge tt=\"capitalize\" c=\"accent.5\" size=\"md\" bg=\"accent.0\">\n Oracle\n </Badge>\n </div>\n <Box mt={12} mb={4} sx={{ borderRadius: 16 }}>\n <Markdown\n remarkPlugins={[remarkGfm]}\n components={{\n a: ({ children, href }) => (\n <a href={href} style={{ color: \"var(--mantine-color-accent-5)\", textDecoration: \"underline\" }}>\n {children}\n </a>\n ),\n ul: ({ children, ...props }) => (\n <ul\n {...props}\n style={{\n margin: \"12px 0\",\n paddingLeft: 20,\n listStyleType: \"none\"\n }}\n >\n {children}\n </ul>\n ),\n ol: ({ children, ...props }) => (\n <ol\n {...props}\n style={{\n margin: \"12px 0\",\n paddingLeft: 20,\n listStyleType: \"decimal\"\n }}\n >\n {children}\n </ol>\n ),\n li: ({ children, ...props }) => (\n <li\n {...props}\n style={{\n marginBottom: 8,\n lineHeight: 1.6,\n paddingLeft: 4\n }}\n >\n {children}\n </li>\n ),\n h3: ({ children, ...props }) => (\n <h3\n {...props}\n style={{\n marginTop: 16,\n marginBottom: 12,\n fontSize: \"1.1em\",\n fontWeight: 600,\n color: \"var(--mantine-color-neutralColor-6)\"\n }}\n >\n {children}\n </h3>\n ),\n h4: ({ children, ...props }) => (\n <h4\n {...props}\n style={{\n marginTop: 12,\n marginBottom: 8,\n fontSize: \"1em\",\n fontWeight: 500,\n color: \"var(--mantine-color-neutralColor-6)\"\n }}\n >\n {children}\n </h4>\n ),\n p: ({ children, ...props }) => (\n <p\n {...props}\n style={{\n margin: \"8px 0\",\n lineHeight: 1.6,\n color: \"var(--mantine-color-neutralColor-8)\"\n }}\n >\n {children}\n </p>\n ),\n table: ({ children, ...props }) => (\n <div style={{ overflowX: \"auto\", margin: \"16px 0\" }}>\n <table\n {...props}\n style={{\n width: \"100%\",\n borderCollapse: \"collapse\",\n borderSpacing: 0\n }}\n >\n {children}\n </table>\n </div>\n ),\n thead: ({ children, ...props }) => <thead {...props}>{children}</thead>,\n tbody: ({ children, ...props }) => <tbody {...props}>{children}</tbody>,\n tr: ({ children, ...props }) => <tr {...props}>{children}</tr>,\n th: ({ children, ...props }) => (\n <th\n {...props}\n style={{\n border: \"1px solid var(--mantine-color-neutralColor-7)\",\n padding: \"8px 12px\",\n fontWeight: 600,\n textAlign: \"left\",\n backgroundColor: \"var(--mantine-color-neutralColor-5)\"\n }}\n >\n {children}\n </th>\n ),\n td: ({ children, ...props }) => (\n <td\n {...props}\n style={{\n border: \"1px solid var(--mantine-color-neutralColor-7)\",\n padding: \"8px 12px\",\n textAlign: \"left\"\n }}\n >\n {children}\n </td>\n )\n }}\n >\n {message}\n </Markdown>\n </Box>\n </Box>\n );\n}\n","import { Box, Text } from \"@mantine/core\";\nimport { ReactElement } from \"react\";\n\nexport interface UserMessageProps {\n message: string;\n sender: string;\n}\n\nexport function UserMessage({ message, sender }: UserMessageProps): ReactElement {\n return (\n <Box w=\"fit-content\" bg=\"neutralColor.6\" sx={{ borderRadius: 16 }} py={12} px={16} mb={32}>\n <Text c=\"neutralColor.8\" fz={12}>\n {sender}\n </Text>\n <Text c=\"neutralColor.8\" key={message} mt={10} sx={{ wordBreak: \"break-all\" }}>\n {message}\n </Text>\n </Box>\n );\n}\n","import { FunctionComponent, ReactElement, useCallback, MouseEvent, useRef } from \"react\";\n\nimport { IconButton } from \"../IconButton\";\nimport { Spacer } from \"../Spacer\";\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { CARD_WIDTH } from \"../../constants/common-sizs\";\nimport { isValidClick } from \"../../utils/dom\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n onClick?: () => void;\n pictogram: FunctionComponent<{ size?: number }>;\n cornerIcon?: {\n icon: IconCmp;\n onClick: () => void;\n };\n title: string;\n description: string;\n tag?: string | number;\n active?: boolean;\n};\n\nexport function CardHero({ title, description, tag, pictogram: Pictogram, active, onClick, cornerIcon }: Props): ReactElement {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const handleOnClick = useCallback(\n (e: MouseEvent<HTMLElement>) => {\n if (onClick && isValidClick(e, wrapperRef.current)) {\n onClick();\n }\n },\n [onClick]\n );\n\n return (\n <div\n ref={wrapperRef}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick ? handleOnClick : undefined}\n className={active ? \"active\" : undefined}\n css={({ spacing, colors, transition }) => ({\n padding: spacing * 2,\n borderRadius: 24,\n background: `linear-gradient(135deg, ${colors.focus}0A, ${colors.focusSecondary}05)`,\n border: `1px solid ${colors.focus}20`,\n backdropFilter: \"blur(40px)\",\n boxShadow: \"0px 0px 50px 0px rgba(0, 0, 0, 0.1)\",\n width: \"100%\",\n minWidth: CARD_WIDTH,\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing * 1.5,\n transition: transition.duration,\n cursor: onClick ? \"pointer\" : undefined,\n \"&.active\": {\n background: `linear-gradient(135deg, ${colors.focus}15, ${colors.focusSecondary}08)`,\n borderColor: `${colors.focus}40`\n },\n \"&:hover\": {\n background: `linear-gradient(135deg, ${colors.focus}12, ${colors.focusSecondary}06)`,\n borderColor: `${colors.focus}30`,\n boxShadow: \"0px 0px 60px 0px rgba(0, 0, 0, 0.15)\"\n }\n })}\n >\n <div\n css={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\"\n }}\n >\n <div\n css={({ colors }) => ({\n width: 80,\n height: 80,\n borderRadius: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: `linear-gradient(135deg, ${colors.focus}15, ${colors.focusSecondary}08)`,\n border: `1px solid ${colors.focus}20`,\n backdropFilter: \"blur(20px)\"\n })}\n >\n <Pictogram />\n </div>\n {cornerIcon && <IconButton icon={cornerIcon.icon} onClick={cornerIcon.onClick} />}\n </div>\n <Typography.Text color=\"overPicture\" size=\"h5\">\n {title}\n </Typography.Text>\n <Spacer distance={1.5} justifyContent=\"start\">\n <Typography.Text color=\"overPicture\">{description}</Typography.Text>\n {!!tag && <Tag bgBlur textColor=\"overPicture\" value={tag} />}\n </Spacer>\n </div>\n );\n}\n","export const CARD_WIDTH = 220;\n","import { ReactElement } from \"react\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\nimport { CARD_WIDTH } from \"./utils\";\n\nexport function CardSelector({ header, title, bordered, isHighlighted, isActive, tags, fixedWidth, onClick }: Props): ReactElement {\n const WrapperTag = onClick ? \"button\" : \"div\";\n return (\n <WrapperTag\n css={({ bg, radius, spacing, colors }) => ({\n width: fixedWidth ? CARD_WIDTH : \"100%\",\n height: 120,\n boxSizing: \"border-box\",\n backgroundColor: isActive ? colors.focusTransparent10 : isHighlighted ? bg.cardHighlight : bg.card,\n borderRadius: radius.small,\n padding: spacing * 1.5,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: bordered ? colors.focus : \"transparent\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n gap: spacing,\n cursor: onClick ? \"pointer\" : \"default\"\n })}\n onClick={onClick}\n >\n <Typography.Text color=\"secondary\" size=\"s\">\n {header}\n </Typography.Text>\n <Typography.H6 css={{ margin: 0 }}>{title}</Typography.H6>\n {tags ? (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n gap: spacing / 2,\n overflow: \"auto\",\n maxWidth: \"100%\",\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n }\n })}\n >\n {tags.map((tag, index) => (\n <Tag\n key={`${tag.value}_${index}`}\n value={tag.value}\n icon={tag.icon}\n className={tag.className}\n textColor={tag.textColor}\n bgColor={tag.bgColor}\n small={tag.small}\n bgBlur={tag.bgBlur}\n bgTransparent={tag.bgTransparent}\n disabled={tag.disabled}\n onClick={tag.onClick}\n />\n ))}\n </div>\n ) : null}\n </WrapperTag>\n );\n}\n","import { ReactElement } from \"react\";\nimport Markdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { StyleDOMApplier } from \"../StyleDOMApplier\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n title: string;\n content: string;\n className?: string;\n controls?: Array<{ label: string; icon: IconCmp; onClick: () => void }>;\n};\n\nconst CARD_OUTPUT_CONTROLS_CLASSNAME = \"card-output-controls\";\n\nexport function CardOutput({ title, content, className, controls = [] }: Props): ReactElement {\n return (\n <div\n className={className}\n css={({ colors, radius, bg, spacing, transition }) => ({\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: \"transparent\",\n borderRadius: radius.medium,\n padding: spacing * 2.5,\n backgroundColor: bg.card,\n transitionDuration: transition.duration,\n position: \"relative\",\n \"&:hover\": {\n borderColor: colors.focus,\n [`& > ul.${CARD_OUTPUT_CONTROLS_CLASSNAME}`]: {\n opacity: 1.0\n }\n }\n })}\n >\n <Typography.H5 css={{ margin: 0 }}>{title}</Typography.H5>\n <StyleDOMApplier css={({ spacing }) => ({ marginTop: spacing * 2.5 })}>\n <Markdown remarkPlugins={[remarkGfm]}>{content.trim()}</Markdown>\n </StyleDOMApplier>\n\n {controls.length > 0 && (\n <ul\n className={CARD_OUTPUT_CONTROLS_CLASSNAME}\n css={({ spacing, radius, colors, bg, transition }) => ({\n listStyle: \"none\",\n display: \"inline-flex\",\n padding: spacing,\n gap: spacing,\n borderRadius: radius.big,\n borderColor: colors.focus,\n borderStyle: \"solid\",\n borderWidth: 1,\n backgroundColor: bg.card,\n transitionDuration: transition.duration,\n opacity: 0,\n position: \"absolute\",\n zIndex: 1,\n bottom: spacing * 5 * -1,\n right: spacing * 2.5\n })}\n >\n {controls.map((control) => (\n <li key={control.label}>\n <Tag value={control.label} icon={control.icon} textColor=\"focusSecondary\" onClick={control.onClick} />\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n","import { ReactElement, PropsWithChildren } from \"react\";\n\nimport { Avatar } from \"../Avatar\";\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\nimport { MoreMenu, PropsItem } from \"../MoreMenu\";\n\ntype Props = {\n avatar: string;\n name: string;\n selected: boolean;\n menu?: PropsItem[];\n} & PropsWithChildren;\n\nexport function CardUserFollowUp({ avatar, name, menu, selected = false, children }: Props): ReactElement {\n return (\n <div\n className={selected ? \"selected\" : undefined}\n css={({ radius, bg, colors, spacing }) => ({\n borderRadius: radius.medium,\n backgroundColor: bg.componentPanel,\n display: \"inline-flex\",\n padding: spacing * 2,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&.selected\": {\n borderColor: colors.focus\n }\n })}\n >\n <Spacer vertical fullWidth>\n <Spacer justifyContent=\"space-between\" fullWidth>\n <div\n css={({ spacing, bg }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n backgroundColor: bg.cardHighlight,\n paddingLeft: spacing,\n paddingRight: spacing,\n paddingTop: spacing / 4,\n paddingBottom: spacing / 4,\n borderRadius: 20\n })}\n >\n <Avatar size={20} src={avatar} />\n <Typography.Text size=\"s\" color=\"secondary\">\n {name}\n </Typography.Text>\n </div>\n {menu && <MoreMenu items={menu} controlColor=\"secondary\" />}\n </Spacer>\n {children}\n </Spacer>\n </div>\n );\n}\n","import { ReactElement, lazy, Suspense } from \"react\";\n\nimport { Props } from \"./components/LazyChart\";\n\nconst LazyChart = lazy(() => import(\"./components/LazyChart\"));\n\nexport function Chart({ options }: Props): ReactElement {\n return (\n <Suspense fallback={<div style={{ width: options.chart?.width, height: options.chart?.height }} />}>\n <LazyChart options={options} />\n </Suspense>\n );\n}\n","import { ChangeEvent, ReactElement, useCallback } from \"react\";\n\nimport { toggle } from \"radash\";\n\nimport { Checkbox } from \"../Checkbox\";\n\nimport { Props } from \"./types\";\n\nexport function CheckboxGroup({ items, vertical, disabled, selected, type = \"checkbox\", onChange }: Props): ReactElement {\n const handleOnChange = useCallback(\n (_: boolean, event: ChangeEvent<HTMLInputElement>, name?: string) => {\n onChange(toggle(selected, name ?? \"\"), event);\n },\n [onChange, selected]\n );\n\n return (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: vertical ? \"column\" : \"row\",\n gap: spacing * (vertical ? 1 : 2)\n })}\n >\n {items.map((item) => (\n <Checkbox\n key={item.name}\n label={item.label}\n name={item.name}\n checked={selected.includes(item.name)}\n disabled={disabled !== undefined ? disabled : item.disabled}\n type={type}\n onChange={handleOnChange}\n />\n ))}\n </div>\n );\n}\n","import { ReactNode } from \"react\";\n\nimport { Typography } from \"../../../../components/Typography\";\n\nimport { Props } from \"./types\";\n\nexport function HelpTextWrapper({ children, helpText, color, block }: Props): ReactNode {\n if (!helpText) {\n return children;\n }\n\n return (\n <div\n css={{\n display: \"inline-flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n width: block ? \"100%\" : undefined\n }}\n >\n <div\n css={({ spacing }) => ({\n marginRight: 20,\n display: \"flex\",\n gap: spacing * 1.25\n })}\n >\n <Typography.Text size=\"xs\" color=\"secondary\">\n {helpText.text}\n </Typography.Text>\n {helpText.extra ? (\n <Typography.Text size=\"xs\" color={color}>\n {helpText.extra}\n </Typography.Text>\n ) : null}\n </div>\n {children}\n </div>\n );\n}\n","import { ReactElement, useId } from \"react\";\nimport { css } from \"@emotion/css\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Props } from \"./types\";\nimport { HelpTextWrapper } from \"./components/HelpTextWrapper\";\nimport { ElementColor } from \"../../utils/colors\";\n\nconst ICON_VALID =\n \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkgMC44NzVDNC41MDA0OSAwLjg3NSAwLjg3NSA0LjUwMDQ5IDAuODc1IDlDMC44NzUgMTMuNDk5NSA0LjUwMDQ5IDE3LjEyNSA5IDE3LjEyNUMxMy40OTk1IDE3LjEyNSAxNy4xMjUgMTMuNDk5NSAxNy4xMjUgOUMxNy4xMjUgOC4xMjU5OCAxNy4wMDc4IDcuMjU0MzkgMTYuNjk1MyA2LjQ0MTQxTDE1LjY3OTcgNy40Mzc1QzE1LjgwNDIgNy45Mzc5OSAxNS44NzUgOC40Mzg0OCAxNS44NzUgOUMxNS44NzUgMTIuODEzNSAxMi44MTM1IDE1Ljg3NSA5IDE1Ljg3NUM1LjE4NjUyIDE1Ljg3NSAyLjEyNSAxMi44MTM1IDIuMTI1IDlDMi4xMjUgNS4xODY1MiA1LjE4NjUyIDIuMTI1IDkgMi4xMjVDMTAuODc1IDIuMTI1IDEyLjU1OTYgMi44NzIwNyAxMy43NDYxIDQuMDU4NTlMMTQuNjI1IDMuMTc5NjlDMTMuMTg3IDEuNzQxNyAxMS4xODc1IDAuODc1IDkgMC44NzVaTTE2LjA1MDggMy41NTA3OEw5IDEwLjYwMTZMNi4zMjQyMiA3LjkyNTc4TDUuNDI1NzggOC44MjQyMkw4LjU1MDc4IDExLjk0OTJMOSAxMi4zNzg5TDkuNDQ5MjIgMTEuOTQ5MkwxNi45NDkyIDQuNDQ5MjJMMTYuMDUwOCAzLjU1MDc4WiIgZmlsbD0iIzVBQjk0NiIvPgo8L3N2Zz4K\";\nconst ICON_INVALID =\n \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggMC41QzMuODY0MjYgMC41IDAuNSAzLjg2NDI2IDAuNSA4QzAuNSAxMi4xMzU3IDMuODY0MjYgMTUuNSA4IDE1LjVDMTIuMTM1NyAxNS41IDE1LjUgMTIuMTM1NyAxNS41IDhDMTUuNSAzLjg2NDI2IDEyLjEzNTcgMC41IDggMC41Wk04IDEuNzVDMTEuNDU5NSAxLjc1IDE0LjI1IDQuNTQwNTMgMTQuMjUgOEMxNC4yNSAxMS40NTk1IDExLjQ1OTUgMTQuMjUgOCAxNC4yNUM0LjU0MDUzIDE0LjI1IDEuNzUgMTEuNDU5NSAxLjc1IDhDMS43NSA0LjU0MDUzIDQuNTQwNTMgMS43NSA4IDEuNzVaTTcuMzc1IDQuMjVWOS4yNUg4LjYyNVY0LjI1SDcuMzc1Wk03LjM3NSAxMC41VjExLjc1SDguNjI1VjEwLjVINy4zNzVaIiBmaWxsPSIjRTIyMjNCIi8+Cjwvc3ZnPgo=\";\nconst ICON_ARROW =\n \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iOCIgdmlld0JveD0iMCAwIDE0IDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xLjEwOTM4IDAuMzkwNjI1TDAuMzkwNjI1IDEuMTA5MzhMNi42NDA2MiA3LjM1OTM4TDcgNy43MDMxMkw3LjM1OTM4IDcuMzU5MzhMMTMuNjA5NCAxLjEwOTM4TDEyLjg5MDYgMC4zOTA2MjVMNyA2LjI4MTI1TDEuMTA5MzggMC4zOTA2MjVaIiBmaWxsPSIjQTFBMUExIi8+Cjwvc3ZnPgo=\";\n\nexport type InputWrapperProps<E extends HTMLElement = HTMLInputElement> = Omit<Props<E>, \"render\" | \"showArrow\">;\n\nexport function InputWrapper({ label, disabled, block, isValid, helpText, showArrow, prepend, append, render }: Props): ReactElement {\n const id = useId();\n const theme = useTheme();\n let iconStatus = undefined;\n let mainColorName: ElementColor = \"primary\";\n let mainColorHex = theme.colors.focus;\n\n if (isValid === true) {\n mainColorName = \"success\";\n mainColorHex = theme.semantic.success;\n iconStatus = ICON_VALID;\n } else if (isValid === false) {\n mainColorName = \"error\";\n mainColorHex = theme.semantic.error;\n iconStatus = ICON_INVALID;\n }\n\n const className = css({\n width: \"100%\",\n boxSizing: \"border-box\",\n appearance: \"none\",\n border: \"none\",\n fontFamily: theme.font.main,\n color: theme.text.main,\n fontSize: theme.fontSize.regular,\n paddingLeft: theme.spacing * (prepend ? 0 : 2),\n paddingRight: theme.spacing * (append ? 0 : 2) + (isValid !== undefined ? 20 : 0),\n paddingTop: theme.spacing * 1.5,\n paddingBottom: theme.spacing * 1.5,\n backgroundColor: \"transparent\",\n \"&:disabled\": {\n borderColor: theme.text.secondary,\n cursor: \"not-allowed\"\n },\n \"&:focus\": {\n outline: \"none\"\n },\n \"&::placeholder\": {\n color: theme.text.secondary,\n fontFamily: theme.font.main,\n fontSize: theme.fontSize.regular\n }\n });\n\n return (\n <HelpTextWrapper helpText={helpText} color={mainColorName} block={block}>\n <div\n css={({ spacing, buttonHeight }) => ({\n boxSizing: \"border-box\",\n borderColor: mainColorHex,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: theme.radius.roundButtons,\n position: \"relative\",\n width: block ? \"100%\" : 300,\n height: buttonHeight.big,\n display: \"flex\",\n justifyContent: \"space-between\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: spacing / 2\n })}\n >\n <div\n css={({ buttonHeight }) => ({\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n height: buttonHeight.big\n })}\n >\n {label ? (\n <label\n css={({ font, bg, text, spacing, fontSize }) => ({\n position: \"absolute\",\n zIndex: 1,\n height: 14,\n top: -7 - spacing / 2,\n left: 20,\n fontFamily: font.main,\n color: disabled ? text.secondary : mainColorHex,\n backgroundColor: bg.main,\n padding: spacing / 2,\n fontSize: fontSize.xs\n })}\n htmlFor={id}\n >\n {label}\n </label>\n ) : null}\n\n {prepend ? (\n <div\n css={({ spacing }) => ({\n paddingRight: spacing,\n paddingLeft: spacing * 2\n })}\n >\n {prepend}\n </div>\n ) : null}\n\n <div\n css={({ spacing }) => ({\n width: \"100%\",\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n ...(showArrow || iconStatus\n ? {\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: `right ${append ? 0 : spacing * 2}px top 50%`\n }\n : {}),\n ...(showArrow\n ? {\n backgroundImage: `url(${ICON_ARROW})`\n }\n : {}),\n ...(iconStatus\n ? {\n backgroundImage: `url(${iconStatus})`,\n ...(showArrow && !disabled\n ? {\n \"&:hover\": { backgroundImage: `url(${ICON_ARROW})` }\n }\n : {})\n }\n : {})\n })}\n >\n {render({ id, className })}\n </div>\n {append ? (\n <div\n css={({ spacing }) => ({\n paddingLeft: spacing,\n paddingRight: spacing * 2\n })}\n >\n {append}\n </div>\n ) : null}\n </div>\n </div>\n </HelpTextWrapper>\n );\n}\n","import { ReactElement, useState, useMemo } from \"react\";\nimport { useCombobox } from \"downshift\";\n\nimport { InputWrapper } from \"../InputWrapper\";\nimport { Typography } from \"../Typography\";\n\nimport { InputWrapperProps } from \"../InputWrapper\";\nimport { cx, css } from \"@emotion/css\";\nimport { useTheme } from \"@emotion/react\";\n\ntype Option = {\n label: string;\n value: string;\n disabled?: boolean;\n meta?: Record<string, unknown>;\n};\nexport type Props = {\n value?: string;\n placeholder?: string;\n defaultValue?: string;\n block?: boolean;\n options: Array<Option>;\n onChange?: (value: Option) => void;\n customFilter?: (value: Option) => boolean;\n customItemRenderer?: (\n item: Option,\n params: {\n isHighlighted: boolean;\n highlightedIndex: number;\n index: number;\n }\n ) => ReactElement;\n} & Omit<InputWrapperProps<HTMLSelectElement>, \"onChange\" | \"onFocus\" | \"onBlur\" | \"showArrow\" | \"isValid\">;\n\nexport function ComboBox({ label, placeholder, options, value, block, disabled, helpText, append, onChange, customFilter, customItemRenderer }: Props): ReactElement {\n const selectedItem = useMemo(\n () =>\n options.find((o) => o.value === value) ?? {\n label: \"\",\n value: \"\"\n },\n [options, value]\n );\n\n const [inputFilter, setInputFilter] = useState(selectedItem.label);\n const { spacing, bg, colors, radius } = useTheme();\n\n const filteredOptions = customFilter\n ? options.filter((option) => customFilter(option))\n : options.filter((option) => option.label.toLowerCase().includes(inputFilter.toLowerCase()));\n\n const { isOpen, getMenuProps, getInputProps, highlightedIndex, getItemProps } = useCombobox({\n items: filteredOptions,\n inputValue: inputFilter,\n selectedItem,\n isItemDisabled: (item) => item.disabled ?? false,\n itemToString: (item) => (item ? item.label : \"\"),\n onInputValueChange: ({ inputValue }) => {\n setInputFilter(inputValue);\n },\n onSelectedItemChange({ selectedItem }) {\n if (onChange) {\n onChange(selectedItem as Option);\n }\n }\n });\n\n return (\n <InputWrapper\n helpText={helpText}\n append={append}\n disabled={disabled}\n label={label}\n showArrow\n block={block}\n render={({ className }) => (\n <div css={{ width: \"100%\", opacity: disabled ? 0.3 : 1 }}>\n <input\n {...getInputProps({\n className: cx(className, css({ paddingRight: spacing * 5 })),\n placeholder,\n disabled\n })}\n />\n <ul\n {...getMenuProps({\n className: css({\n position: \"absolute\",\n maxHeight: 150,\n overflowY: \"scroll\",\n width: `calc(100% - ${spacing * 4}px)`,\n backgroundColor: bg.card,\n padding: 0,\n marginTop: 1,\n marginLeft: spacing * 1.5,\n borderColor: colors.focus,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: radius.small\n })\n })}\n style={{\n display: isOpen && filteredOptions.length > 0 ? undefined : \"none\"\n }}\n >\n {isOpen &&\n filteredOptions.map((item, index) => (\n <li key={`${item}${index}`} {...getItemProps({ item, index })}>\n {customItemRenderer ? (\n customItemRenderer(item, {\n highlightedIndex,\n index,\n isHighlighted: highlightedIndex === index\n })\n ) : (\n <div\n css={{\n listStyle: \"none\",\n padding: spacing,\n cursor: \"default\"\n }}\n style={{\n backgroundColor: highlightedIndex === index ? colors.focusTransparent20 : undefined,\n cursor: item.disabled ? \"not-allowed\" : undefined\n }}\n >\n <Typography.Text color={item.disabled ? \"text-disabled\" : \"text\"}>{item.label}</Typography.Text>\n </div>\n )}\n </li>\n ))}\n </ul>\n </div>\n )}\n />\n );\n}\n","import { ReactElement, ReactNode, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Popover } from \"react-tiny-popover\";\n\nimport { Typography } from \"../../components/Typography\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\nconst BUTTON_SIZE = 20;\nconst WRAPPER_SIZE = 46;\n\nexport type Props = {\n onClick: (id: string) => void;\n active?: string;\n items: {\n id: string;\n tooltip: string;\n icon: IconCmp;\n }[];\n};\n\nfunction Tooltip({ tooltip }: { tooltip: string }): ReactElement {\n return (\n <Typography.Text\n color=\"focusSecondary\"\n size=\"xs\"\n css={({ bg, colors, spacing }) => ({\n backgroundColor: bg.card,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 28,\n borderRadius: 14,\n paddingLeft: spacing,\n paddingRight: spacing,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus\n })}\n >\n {tooltip}\n </Typography.Text>\n );\n}\n\nexport function DomainToolbar({ items, active, onClick }: Props): ReactNode {\n const [visibleTooltip, setVisibleTooltip] = useState(\"\");\n\n if (items.length === 0) {\n return null;\n }\n\n return createPortal(\n <ul\n css={({ spacing, bg, colors }) => ({\n display: \"inline-flex\",\n listStyle: \"none\",\n gap: spacing,\n backgroundColor: bg.card,\n padding: spacing * 2,\n borderRadius: 50,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus,\n position: \"fixed\",\n zIndex: 2,\n bottom: spacing * 4,\n left: \"50%\",\n transform: \"translate(-50%, 0)\"\n })}\n >\n {items.map((item) => (\n <li\n key={item.id}\n css={({ colors }) => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n backgroundColor: colors.focusTransparent10,\n borderRadius: WRAPPER_SIZE / 2\n })}\n >\n <Popover isOpen={visibleTooltip === item.id} padding={21} reposition={false} containerStyle={{ zIndex: \"3\" }} content={<Tooltip tooltip={item.tooltip} />}>\n <button\n type=\"button\"\n css={({ colors }) => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n borderRadius: WRAPPER_SIZE / 2,\n border: \"none\",\n backgroundColor: colors.focusTransparent10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&:hover\": {\n \"& > svg path\": {\n fill: colors.focus\n }\n },\n \"&.active\": {\n backgroundColor: colors.focusTransparent20,\n borderColor: colors.focus\n }\n })}\n className={active === item.id ? \"active\" : undefined}\n onClick={() => onClick(item.id)}\n onMouseEnter={() => setVisibleTooltip(item.id)}\n onMouseLeave={() => setVisibleTooltip(\"\")}\n >\n <item.icon size={BUTTON_SIZE} color={active === item.id ? \"primary\" : \"focusSecondary\"} />\n </button>\n </Popover>\n </li>\n ))}\n </ul>,\n document.body\n );\n}\n","import { useSelect } from \"downshift\";\nimport { ReactElement } from \"react\";\n\nimport { Typography } from \"../Typography\";\nimport { cx } from \"@emotion/css\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Item = { label: string; value: string; disabled?: boolean };\n\ntype Props = {\n items: Item[];\n icon?: IconCmp;\n width?: number;\n placeholder?: string;\n disabled?: boolean;\n value?: string;\n onChange?: (value: Item) => void;\n};\n\nexport function DropDown({ items, width = 162, placeholder = \"Select\", icon: Icon, disabled, value, onChange }: Props): ReactElement {\n const { isOpen, selectedItem, getToggleButtonProps, getMenuProps, highlightedIndex, getItemProps } = useSelect({\n items,\n selectedItem: items.find((item) => item.value === value) ?? null,\n itemToString(item: Item | null): string {\n return item ? item.label : \"\";\n },\n onSelectedItemChange({ selectedItem }) {\n if (onChange) {\n onChange(selectedItem as Item);\n }\n }\n });\n\n return (\n <div\n className={cx({ open: isOpen })}\n style={{ width }}\n css={({ colors, bg }) => ({\n position: \"relative\",\n display: \"inline-flex\",\n flexDirection: \"column\",\n \"&.open > div\": {\n backgroundColor: bg.card,\n borderColor: colors.focus,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderBottomColor: bg.card,\n boxSizing: \"border-box\"\n },\n \"&.open > ul\": {\n backgroundColor: bg.card,\n display: \"inline-flex\"\n }\n })}\n >\n <div\n className={cx(disabled && \"disabled\")}\n css={({ colors, radius, spacing }) => ({\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n backgroundColor: colors.focusTransparent10,\n borderRadius: radius.medium,\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2,\n paddingTop: spacing * 1,\n paddingBottom: spacing * 1,\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: spacing / 2,\n cursor: \"default\",\n \"&.disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5\n }\n })}\n {...getToggleButtonProps({ disabled })}\n >\n {Icon && <Icon color=\"primary\" size={16} />}\n <Typography.Text\n color=\"primary\"\n size=\"s\"\n css={{\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n }}\n >\n {selectedItem ? selectedItem.label : placeholder}\n </Typography.Text>\n </div>\n <ul\n {...getMenuProps()}\n css={({ bg, colors, radius, spacing }) => ({\n backgroundColor: colors.focusTransparent10,\n listStyle: \"none\",\n padding: 0,\n margin: 0,\n borderRadius: radius.medium,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus,\n borderTopRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopColor: bg.card,\n display: \"none\",\n flexDirection: \"column\",\n gap: spacing,\n position: \"absolute\",\n top: \"100%\",\n left: 0,\n right: 0,\n cursor: \"default\"\n })}\n >\n {items.map((item, index) => {\n const itemProps = item.disabled ? {} : getItemProps({ item, index });\n return (\n <li\n className={cx(highlightedIndex === index && \"highlighted\", selectedItem === item && \"selected\", item.disabled && \"disabled\")}\n key={item.value}\n style={{ cursor: item.disabled ? \"not-allowed\" : undefined }}\n css={({ colors, spacing, transition, text, radius }) => ({\n transition: transition.duration,\n paddingTop: spacing / 2,\n paddingBottom: spacing / 2,\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n \"&.highlighted:not(.disabled)\": {\n backgroundColor: colors.focusTransparent20\n },\n \"&.selected span\": {\n color: colors.focus\n },\n \"&.disabled span\": {\n color: text.secondary\n },\n \"&:last-of-type\": {\n borderBottomLeftRadius: radius.medium,\n borderBottomRightRadius: radius.medium\n }\n })}\n {...itemProps}\n >\n <Typography.Text>{item.label}</Typography.Text>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n","import { ReactElement, ReactNode, useMemo, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Popover } from \"react-tiny-popover\";\nimport { Typography } from \"../Typography\";\nimport {\n Globe,\n Assets,\n Claims,\n Groups,\n Dashboard,\n HistorySolid,\n Accounts,\n UserCircleSolid,\n ImpactCredits,\n CommentDotsSolid,\n Share,\n GoTo,\n ImpactCertificates,\n PiePiece,\n Proposals,\n LinkedResources,\n CommentAltSolid\n} from \"../../icons\";\n\nconst BUTTON_SIZE = 20;\nconst WRAPPER_SIZE = 46;\n// Define all possible toolbar items\nconst TOOLBAR_ITEMS = [\n {\n id: \"overview\",\n tooltip: \"Overview\",\n icon: Globe\n },\n {\n id: \"performance\",\n tooltip: \"Performance\",\n icon: Dashboard\n },\n {\n id: \"groups\",\n tooltip: \"Groups\",\n icon: Groups\n },\n {\n id: \"members\",\n tooltip: \"Members\",\n icon: UserCircleSolid\n },\n {\n id: \"assets\",\n tooltip: \"Assets\",\n icon: Assets\n },\n {\n id: \"tasks\",\n tooltip: \"Tasks\",\n icon: Claims\n },\n {\n id: \"accounts\",\n tooltip: \"Accounts\",\n icon: Accounts\n },\n {\n id: \"activity\",\n tooltip: \"Activity\",\n icon: HistorySolid\n },\n {\n id: \"resources\",\n tooltip: \"Resources\",\n icon: LinkedResources\n },\n {\n id: \"proposals\",\n tooltip: \"Proposals\",\n icon: Proposals\n },\n {\n id: \"credits\",\n tooltip: \"Credits\",\n icon: ImpactCredits\n },\n {\n id: \"funding\",\n tooltip: \"Funding\",\n icon: GoTo\n },\n {\n id: \"payments\",\n tooltip: \"Payments\",\n icon: Share\n },\n {\n id: \"distribution\",\n tooltip: \"Distribution\",\n icon: PiePiece\n },\n {\n id: \"form\",\n tooltip: \"Form\",\n icon: ImpactCertificates\n },\n {\n id: \"posts\",\n tooltip: \"Posts\",\n icon: CommentDotsSolid\n },\n {\n id: \"connect\",\n tooltip: \"Connect\",\n icon: CommentAltSolid\n }\n] as const;\n\n// Define available domain types and their configurations\nexport type DomainType = \"Collection\" | \"SingleAsset\" | \"Group\" | \"Organisation\" | \"Project\" | \"Request\" | \"Task\" | \"Oracle\" | \"ShowAll\";\nconst DOMAIN_CONFIGS: Record<DomainType, string[]> = {\n Collection: [\"overview\", \"performance\", \"assets\", \"accounts\", \"activity\", \"resources\", \"posts\"],\n SingleAsset: [\"overview\", \"performance\", \"accounts\", \"activity\", \"resources\", \"credits\", \"posts\"],\n Group: [\"overview\", \"members\", \"accounts\", \"activity\", \"resources\", \"proposals\", \"posts\"],\n Organisation: [\"overview\", \"groups\", \"members\", \"accounts\", \"activity\", \"resources\", \"posts\"],\n Project: [\"overview\", \"performance\", \"tasks\", \"accounts\", \"activity\", \"resources\", \"posts\"],\n Request: [\"overview\", \"performance\", \"tasks\", \"accounts\", \"activity\", \"resources\", \"posts\"],\n Task: [\"overview\", \"activity\", \"resources\", \"form\", \"funding\", \"payments\", \"posts\"],\n Oracle: [\"overview\", \"resources\"],\n ShowAll: [\n \"overview\",\n \"performance\",\n \"groups\",\n \"members\",\n \"assets\",\n \"tasks\",\n \"accounts\",\n \"activity\",\n \"resources\",\n \"proposals\",\n \"credits\",\n \"form\",\n \"funding\",\n \"payments\",\n \"distribution\",\n \"posts\"\n ]\n};\nexport type Props = {\n onClick: (id: string) => void;\n active?: string;\n domainType: DomainType;\n ConnectActive?: boolean;\n};\n\nfunction Tooltip({ tooltip }: { tooltip: string }): ReactElement {\n return (\n <Typography.Text\n color=\"focusSecondary\"\n size=\"xs\"\n css={({ bg, colors, spacing }) => ({\n backgroundColor: bg.card,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 28,\n borderRadius: 14,\n paddingLeft: spacing,\n paddingRight: spacing,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus\n })}\n >\n {tooltip}\n </Typography.Text>\n );\n}\n\nexport function DomainToolbarTypes({ domainType, active, onClick, ConnectActive }: Props): ReactNode {\n const [visibleTooltip, setVisibleTooltip] = useState(\"\");\n const [isConnectMode, setIsConnectMode] = useState(false);\n const [isExiting, setIsExiting] = useState(false);\n const [showRegularItems, setShowRegularItems] = useState(true);\n const [isContainerHovered, setIsContainerHovered] = useState(false);\n\n // Filter items based on domain configuration\n const items = useMemo(() => {\n const domainItems = TOOLBAR_ITEMS.filter((item) => DOMAIN_CONFIGS[domainType].includes(item.id));\n\n // Add connect item if ConnectActive is true\n if (ConnectActive) {\n const connectItem = TOOLBAR_ITEMS.find((item) => item.id === \"connect\");\n if (connectItem && !domainItems.some((item) => item.id === \"connect\")) {\n domainItems.push(connectItem);\n }\n }\n\n return domainItems;\n }, [domainType, ConnectActive]);\n\n const handleItemClick = (id: string): void => {\n if (id === \"connect\") {\n if (isConnectMode && active === \"connect\") {\n // Exit connect mode\n setIsConnectMode(false);\n setIsExiting(false);\n setShowRegularItems(true);\n } else {\n // Enter connect mode\n setIsConnectMode(true);\n setIsExiting(false);\n setShowRegularItems(false);\n }\n } else {\n setIsConnectMode(false);\n setIsExiting(false);\n setShowRegularItems(true);\n }\n onClick(id);\n };\n\n if (items.length === 0) {\n return null;\n }\n\n const isInChatMode = isConnectMode && active === \"connect\" && !isExiting;\n const shouldShowConnectButton = isInChatMode && isContainerHovered;\n\n // Calculate the natural width of the regular toolbar for smooth animation\n const naturalToolbarWidth = items.length * WRAPPER_SIZE + (items.length - 1) * 8 + 32;\n const connectOnlyWidth = WRAPPER_SIZE + 32;\n\n return createPortal(\n <div\n css={({ spacing, bg, colors }) => ({\n display: \"inline-flex\",\n backgroundColor: isInChatMode && !isContainerHovered ? \"transparent\" : bg.card,\n padding: spacing * 2,\n borderRadius: 39,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: isInChatMode && !isContainerHovered ? \"transparent\" : colors.focus,\n position: \"fixed\",\n zIndex: 2,\n bottom: spacing * 4,\n left: \"50%\",\n width: isInChatMode ? `${connectOnlyWidth}px !important` : `${naturalToolbarWidth}px !important`,\n transform: \"translate(-50%, 0)\",\n transition: \"all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1), background-color 0.3s ease, border-color 0.3s ease\",\n minHeight: `${WRAPPER_SIZE + 32}px !important`,\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: spacing,\n overflow: \"hidden\"\n })}\n onMouseEnter={() => setIsContainerHovered(true)}\n onMouseLeave={() => setIsContainerHovered(false)}\n >\n {/* Regular toolbar items */}\n {!isInChatMode && showRegularItems && (\n <ul\n css={({ spacing }) => ({\n display: \"inline-flex\",\n listStyle: \"none\",\n gap: spacing,\n margin: 0,\n padding: 0,\n opacity: 1,\n transform: \"translateX(0)\",\n transition: \"none\"\n })}\n >\n {items.map((item) => (\n <li\n key={item.id}\n css={({ colors }) => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n backgroundColor: colors.focusTransparent10,\n borderRadius: WRAPPER_SIZE / 2\n })}\n >\n <Popover\n isOpen={visibleTooltip === item.id && !isInChatMode}\n padding={21}\n reposition={false}\n containerStyle={{ zIndex: \"3\" }}\n content={<Tooltip tooltip={item.tooltip} />}\n >\n <button\n type=\"button\"\n css={({ colors }) => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n borderRadius: WRAPPER_SIZE / 2,\n border: \"none\",\n backgroundColor: colors.focusTransparent10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&:hover\": {\n \"& > svg path\": {\n fill: colors.focus\n }\n },\n \"&.active\": {\n backgroundColor: colors.focusTransparent20,\n borderColor: colors.focus\n }\n })}\n className={active === item.id ? \"active\" : undefined}\n onClick={() => handleItemClick(item.id)}\n onMouseEnter={() => setVisibleTooltip(item.id)}\n onMouseLeave={() => setVisibleTooltip(\"\")}\n >\n <item.icon size={BUTTON_SIZE} color={active === item.id ? \"primary\" : \"focusSecondary\"} />\n </button>\n </Popover>\n </li>\n ))}\n </ul>\n )}\n\n {/* Connect icon only in chat mode and when container is hovered */}\n {isInChatMode && (\n <div\n css={() => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n opacity: shouldShowConnectButton ? 1 : 0,\n transform: shouldShowConnectButton ? \"scale(1)\" : \"scale(0.8)\",\n transition: \"opacity 0.3s ease, transform 0.3s ease\",\n pointerEvents: shouldShowConnectButton ? \"auto\" : \"none\"\n })}\n >\n <div\n css={({ colors }) => ({\n width: WRAPPER_SIZE,\n height: WRAPPER_SIZE,\n backgroundColor: colors.focusTransparent20,\n borderRadius: WRAPPER_SIZE / 2,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\"\n })}\n onClick={() => handleItemClick(\"connect\")}\n >\n <CommentAltSolid size={BUTTON_SIZE} color=\"primary\" />\n </div>\n </div>\n )}\n </div>,\n document.body\n );\n}\n","import { Badge, Stack, Text } from \"@mantine/core\";\nimport { useHover } from \"@mantine/hooks\";\nimport { Flex } from \"../Base/Flex\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { useUITheme } from \"../../hooks/useUITheme\";\nimport { ReactNode } from \"react\";\n\nexport const CommandItem = ({\n name,\n description,\n Icon,\n points,\n onCommandClick,\n isSelected = false\n}: {\n name: string;\n description: string;\n Icon: IconCmp;\n points: number;\n onCommandClick?: (name: string) => void;\n isSelected?: boolean;\n}): ReactNode => {\n const { hovered, ref } = useHover();\n const theme = useUITheme();\n\n return (\n <Flex\n ref={ref}\n onClick={onCommandClick ? (): void => onCommandClick(name) : undefined}\n radius={12}\n px={12}\n py={8}\n align=\"center\"\n bg={isSelected || hovered ? \"var(--mantine-color-neutralColor-2)\" : \"var(--mantine-color-neutralColor-5)\"}\n gap={14}\n style={{\n cursor: \"pointer\",\n outline: \"none\",\n transition: \"all 0.2s ease\",\n transform: hovered || isSelected ? \"translateY(-1px)\" : \"translateY(0)\",\n boxShadow: hovered || isSelected ? \"0 4px 12px rgba(0, 0, 0, 0.15)\" : \"none\"\n }}\n >\n <Icon size={26} color=\"secondary\" />\n <Stack gap={0}>\n <Flex align=\"center\" gap={6}>\n <Text c=\"neutralColor.8\">{name}</Text>\n <Badge size=\"sm\" fw={300} c={theme.colors.focus} bg=\"accent.7\">\n {points > 0 ? `${points} AMP's` : \"Free\"}\n </Badge>\n </Flex>\n <Text fz={12} c=\"neutralColor.7\">\n {description}\n </Text>\n </Stack>\n </Flex>\n );\n};\n","import { IconCmp } from \"../../types/IconCmp\";\nimport { ReactNode } from \"react\";\n\nexport const ActionIcon = ({ Icon, onClick, active }: { Icon: IconCmp; onClick?: () => void; active?: boolean }): ReactNode => {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n css={() => ({\n width: 32,\n height: 32,\n border: \"none\",\n backgroundColor: \"transparent\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\"\n })}\n >\n <Icon size={20} color={active ? \"primary\" : \"secondary\"} />\n </button>\n );\n};\n","import { ReactNode, useRef, useEffect, useState } from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport { ArrowUpSolid, Command, EllipsisVSolid, MicrophoneSolid, PlusSolid } from \"../../icons\";\nimport { Box, Stack, Text } from \"@mantine/core\";\nimport { useUITheme } from \"../../hooks/useUITheme\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { Flex } from \"../Base/Flex\";\nimport { CommandItem } from \"../CommandPaletteItem\";\nimport { ActionIcon } from \"../ActionIcon\";\n\nconst WRAPPER_SIZE = 46;\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nexport type Props = {\n value: string;\n onChange: (value: string) => void;\n paletteCommands?: {\n name: string;\n description: string;\n Icon: IconCmp;\n points: number;\n }[];\n oracleModel: string;\n onCommandClick?: (command: string) => void;\n onSend: () => void;\n disabled?: boolean;\n placeholder?: string;\n className?: string;\n};\n\nexport function FloatingInput({\n value,\n onChange,\n onSend,\n disabled = false,\n placeholder = \"Type your message...\",\n oracleModel = \"Companion\",\n onCommandClick,\n paletteCommands,\n className\n}: Props): ReactNode {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const theme = useUITheme();\n const [isCommandsVisible, setCommandsVisible] = useState(false);\n const [selectedCommandIndex, setSelectedCommandIndex] = useState(-1);\n const [commandSelected, setCommandSelected] = useState(false);\n\n const isTypingCommand = value.startsWith(\"/\");\n const commandQuery = isTypingCommand ? value.slice(1).toLowerCase() : \"\";\n\n useEffect(() => {\n if (isTypingCommand && commandQuery.length === 0) {\n setCommandSelected(false);\n }\n }, [isTypingCommand, commandQuery]);\n\n const filteredCommands =\n paletteCommands?.filter((command) => command.name.toLowerCase().includes(commandQuery) || command.description.toLowerCase().includes(commandQuery)) || [];\n\n const shouldShowCommands = ((isTypingCommand && (filteredCommands.length > 0 || commandQuery.length > 0)) || isCommandsVisible) && !commandSelected;\n\n const commandsToShow = isTypingCommand ? filteredCommands : paletteCommands || [];\n\n useEffect(() => {\n setSelectedCommandIndex(-1);\n }, [commandsToShow.length]);\n\n const handleCommandSelect = (commandName: string): void => {\n if (isTypingCommand && onCommandClick) {\n const newValue = value.replace(/^\\/.*$/, `${commandName} `);\n onChange(newValue);\n onCommandClick(newValue);\n if (textareaRef.current) {\n textareaRef.current.focus();\n }\n } else {\n if (onCommandClick) {\n onCommandClick(commandName);\n onChange(commandName);\n }\n }\n setCommandsVisible(false);\n setSelectedCommandIndex(-1);\n setCommandSelected(true);\n };\n\n useEffect(() => {\n const textarea = textareaRef.current;\n if (textarea) {\n const computedStyle = window.getComputedStyle(textarea);\n const font = computedStyle.font;\n const paddingLeft = parseInt(computedStyle.paddingLeft) || 0;\n const paddingRight = parseInt(computedStyle.paddingRight) || 0;\n const availableWidth = textarea.clientWidth - paddingLeft - paddingRight;\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n ctx!.font = font;\n const avgCharWidth = ctx!.measureText(\"a\").width;\n const singleLineCharCapacity = Math.floor(availableWidth / avgCharWidth);\n\n const isLikelyMultiLine = value.length > singleLineCharCapacity;\n\n const lineHeight = parseInt(computedStyle.lineHeight) || 32;\n const maxHeight = 80;\n\n const setHeight = (height: number): void => {\n textarea.style.setProperty(\"height\", `${height}px`, \"important\");\n };\n\n if (!value || value.trim().length === 0) {\n setHeight(lineHeight);\n textarea.style.overflow = \"hidden\";\n return;\n }\n\n const hasLineBreaks = value.includes(\"\\n\");\n\n if (!hasLineBreaks && !isLikelyMultiLine) {\n setHeight(lineHeight);\n textarea.style.overflow = \"hidden\";\n return;\n }\n\n textarea.style.height = \"auto\";\n const scrollHeight = textarea.scrollHeight;\n\n if (scrollHeight <= maxHeight) {\n setHeight(Math.max(scrollHeight, lineHeight));\n textarea.style.overflow = \"hidden\";\n } else {\n setHeight(maxHeight);\n textarea.style.overflow = \"auto\";\n }\n }\n }, [value]);\n\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>): void => {\n onChange(e.target.value);\n };\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLTextAreaElement>): void => {\n if (e.key === \"Enter\" && !e.shiftKey && value.trim()) {\n e.preventDefault(); // Prevent new line\n onSend();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>): void => {\n if (!isTypingCommand || !shouldShowCommands || commandsToShow.length === 0) {\n return;\n }\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n setSelectedCommandIndex((prev) => (prev < commandsToShow.length - 1 ? prev + 1 : 0));\n break;\n case \"ArrowUp\":\n e.preventDefault();\n setSelectedCommandIndex((prev) => (prev > 0 ? prev - 1 : commandsToShow.length - 1));\n break;\n case \"Enter\":\n if (selectedCommandIndex >= 0 && selectedCommandIndex < commandsToShow.length) {\n e.preventDefault();\n const selectedCommand = commandsToShow[selectedCommandIndex];\n handleCommandSelect(selectedCommand.name);\n setCommandsVisible(false);\n setSelectedCommandIndex(-1);\n setCommandSelected(true);\n }\n break;\n case \"Escape\":\n setSelectedCommandIndex(-1);\n break;\n }\n };\n\n return (\n <div\n className={className}\n css={() => ({\n backgroundColor: \"transparent\",\n borderRadius: 20,\n outline: `1px solid ${theme.colors.focus}`,\n paddingTop: 16,\n position: \"relative\",\n animation: `${fadeIn} 0.3s ease-out`,\n transition: \"background-color 0.2s ease\",\n backdropFilter: \"blur(16px)\"\n })}\n >\n <Flex\n m={0}\n p={0}\n align=\"center\"\n style={{\n position: \"relative\",\n lineHeight: 0,\n fontSize: 0,\n flex: 1\n }}\n >\n <textarea\n placeholder={disabled ? \"Please wait...\" : placeholder}\n value={value}\n disabled={disabled}\n onChange={handleInputChange}\n onKeyPress={handleKeyPress}\n onKeyDown={handleKeyDown}\n ref={textareaRef}\n css={({ spacing, text }) => ({\n width: \"calc(100% - 4px)\",\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n color: \"white\",\n fontSize: 16,\n lineHeight: \"26px\",\n minHeight: 42,\n height: 42,\n resize: \"none\",\n padding: `0 ${spacing * 2}px`,\n\n boxSizing: \"border-box\",\n scrollbarWidth: \"none\",\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n },\n \"&::placeholder\": {\n color: text.secondary\n }\n })}\n />\n </Flex>\n <Flex justify=\"space-between\" pt={0} px={16} pb={8} align=\"center\">\n <Flex align=\"center\" gap={8}>\n <ActionIcon Icon={PlusSolid} />\n <ActionIcon Icon={MicrophoneSolid} />\n <ActionIcon\n active={isCommandsVisible}\n onClick={() => {\n setCommandsVisible(!isCommandsVisible);\n setCommandSelected(false);\n }}\n Icon={Command}\n />\n </Flex>\n\n <button\n type=\"button\"\n onClick={onSend}\n disabled={!value.trim()}\n css={({ neutral }) => ({\n width: 40,\n height: 40,\n borderRadius: WRAPPER_SIZE / 2,\n border: \"none\",\n backgroundColor: value.trim() ? neutral.transparent30 : neutral.transparent10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: value.trim() ? \"pointer\" : \"default\",\n transition: \"background-color 0.2s ease\"\n })}\n >\n <ArrowUpSolid size={20} color={value.trim() ? \"overPicture\" : \"secondary\"} />\n </button>\n </Flex>\n <Box\n p={16}\n bg=\"neutralColor.2\"\n w={340}\n pos=\"absolute\"\n left=\"50%\"\n bottom=\"calc(100% + 10px)\"\n sx={{\n borderRadius: 24,\n transform: \"translateX(-50%)\",\n opacity: shouldShowCommands ? 1 : 0,\n visibility: shouldShowCommands ? \"visible\" : \"hidden\",\n pointerEvents: shouldShowCommands ? \"auto\" : \"none\",\n transition: \"opacity 0.2s ease, visibility 0.2s ease\"\n }}\n >\n {filteredCommands.length !== 0 && (\n <>\n <Flex mb={20} align=\"center\" justify=\"space-between\">\n <Text fz={12} c=\"neutralColor.8\">\n Commands\n </Text>\n <EllipsisVSolid color=\"secondary\" />\n </Flex>\n\n <Text fz={12} c={theme.colors.focus}>\n {oracleModel}\n </Text>\n <Stack mt={8} gap={8}>\n {commandsToShow.map(({ name, description, Icon, points }, index) => (\n <CommandItem\n key={name}\n name={name}\n description={description}\n Icon={Icon}\n points={points}\n onCommandClick={handleCommandSelect}\n isSelected={selectedCommandIndex === index}\n />\n ))}\n </Stack>\n </>\n )}\n {isTypingCommand && filteredCommands.length === 0 && commandQuery.length > 0 && (\n <Flex radius={12} px={12} py={8} align=\"center\" bg={theme.colors.whiteTransparent10} style={{ height: 60 }} gap={10}>\n <Text c={theme.neutral.transparent50} fz={14}>\n Command not found: /{commandQuery}\n </Text>\n </Flex>\n )}\n </Box>\n </div>\n );\n}\n","import { FC } from \"react\";\nimport { Typography } from \"../Typography\";\nimport { Loader } from \"../Loader\";\nimport DEFAULT_BG from \"../../assets/images/bg-activity-card.jpg\";\n\nexport type EcosystemCardProps = {\n title?: string;\n subtitle?: string;\n domains: number;\n missions: number;\n oracles: number;\n assets: number;\n background?: string;\n isLoading?: boolean;\n unsplashCreds?: {\n html?: string;\n first_name?: string;\n portfolio_url?: string;\n };\n};\n\nexport const EcosystemCard: FC<EcosystemCardProps> = ({\n title = \"Ecosystem Name\",\n subtitle = \"Short Ecosystem Subtitle\",\n domains,\n missions,\n oracles,\n assets,\n background,\n isLoading = false,\n unsplashCreds\n}) => {\n const stats = [\n { label: \"Domains\", value: domains.toLocaleString() },\n { label: \"Missions\", value: missions.toLocaleString() },\n { label: \"Oracles\", value: oracles.toLocaleString() },\n { label: \"Assets\", value: assets }\n ];\n\n return (\n <div\n style={{\n borderRadius: 16,\n padding: 32,\n background: isLoading\n ? \"rgba(0,0,0,0.1)\"\n : `linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), url(${(background || (DEFAULT_BG as any).src) ?? DEFAULT_BG}) center/cover no-repeat`,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 40,\n position: \"relative\",\n overflow: \"hidden\",\n minWidth: 420,\n minHeight: 265\n }}\n >\n {isLoading ? (\n <Loader size={40} color=\"primary\" />\n ) : (\n <>\n <style>{`\n @media (max-width: 500px) {\n .eco-stats-grid {\n display: grid !important;\n grid-template-columns: 1fr 1fr !important;\n gap: 12px !important;\n width: 100% !important;\n }\n }\n `}</style>\n <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: 13, padding: \"20px 0\", width: \"100%\" }}>\n <Typography.Text bold noLineHeight color=\"selected\" size=\"h1\">\n {title}\n </Typography.Text>\n <Typography.Text color=\"selected\" size=\"h5\">\n {subtitle}\n </Typography.Text>\n </div>\n <div\n className=\"eco-stats-grid\"\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"stretch\",\n alignItems: \"stretch\",\n gap: 17,\n width: \"100%\"\n }}\n >\n {stats.map((stat) => (\n <div\n key={stat.label}\n style={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 8,\n minHeight: 85,\n background: \"rgba(255,255,255,0.05)\",\n backdropFilter: \"blur(30px)\",\n WebkitBackdropFilter: \"blur(30px)\",\n color: \"#fff\",\n fontWeight: 700,\n fontSize: 20,\n boxShadow: \"0 4px 24px 0 rgba(0,0,0,0.04)\"\n }}\n >\n <Typography.Text semiBold color=\"selected\" size=\"regular\">\n {stat.label}\n </Typography.Text>\n <Typography.Text color=\"selected\" size=\"h5\">\n {stat.value}\n </Typography.Text>\n </div>\n ))}\n </div>\n\n {/* Unsplash Attribution */}\n {unsplashCreds && (\n <div\n style={{\n position: \"absolute\",\n top: 8,\n right: 8,\n fontSize: 10,\n color: \"rgba(255, 255, 255, 0.7)\",\n background: \"rgba(0, 0, 0, 0.3)\",\n padding: \"4px 8px\",\n borderRadius: 4,\n backdropFilter: \"blur(10px)\",\n WebkitBackdropFilter: \"blur(10px)\",\n zIndex: 10\n }}\n >\n <span>\n Photo by{\" \"}\n <a\n href={unsplashCreds.html || unsplashCreds.portfolio_url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ color: \"rgba(255, 255, 255, 0.9)\", textDecoration: \"underline\" }}\n >\n {unsplashCreds.first_name}\n </a>{\" \"}\n on Unsplash\n </span>\n </div>\n )}\n </>\n )}\n </div>\n );\n};\n\nexport default EcosystemCard;\n","import { ReactElement } from \"react\";\n\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\n\nexport function EntityList({ items }: Props): ReactElement {\n return (\n <ul\n css={({ spacing }) => ({\n padding: 0,\n margin: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing * 1.5,\n listStyle: \"none\"\n })}\n >\n {items.map((item) => (\n <li key={item.title}>\n <button\n onClick={item.onClick}\n disabled={item.disabled}\n css={({ radius, colors, transition }) => ({\n borderRadius: radius.medium,\n backgroundColor: item.selected ? colors.focus : \"transparent\",\n border: \"none\",\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n padding: 1,\n cursor: \"pointer\",\n boxSizing: \"border-box\",\n transition: transition.duration,\n \"&:disabled\": {\n opacity: 0.5,\n cursor: \"not-allowed\"\n },\n \"&:hover:not([disabled])\": {\n backgroundColor: colors.focus\n }\n })}\n >\n <div\n css={({ radius, bg }) => ({\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n backgroundColor: bg.card,\n borderRadius: radius.medium\n })}\n >\n <div\n css={({ bg, radius, colors }) => ({\n backgroundColor: item.selected ? colors.focusTransparent10 : bg.cardHighlight,\n borderTopLeftRadius: radius.medium,\n borderBottomLeftRadius: radius.medium,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 46\n })}\n >\n <item.icon color=\"primary\" size={28} />\n </div>\n <div\n css={({ bg, radius }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n flexGrow: 1,\n alignItems: \"center\",\n backgroundColor: bg.card,\n borderBottomRightRadius: radius.medium,\n borderTopRightRadius: radius.medium\n })}\n >\n <div\n css={({ spacing, bg, radius }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n flex: 1,\n padding: spacing,\n margin: spacing * 1.5,\n justifyContent: \"space-between\",\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.medium\n })}\n >\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing\n })}\n >\n {item.image ? <img src={item.image} width={32} height={32} css={{ borderRadius: 32, objectFit: \"cover\" }} /> : null}\n\n <div\n css={() => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"start\"\n })}\n >\n <Typography.Text color=\"text\" size=\"regular\">\n {item.title}\n </Typography.Text>\n {item.description ? (\n <Typography.Text color=\"secondary\" size=\"xs\">\n {item.description}\n </Typography.Text>\n ) : null}\n </div>\n </div>\n <div\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"end\"\n }}\n >\n <Typography.Text color=\"text\" size=\"regular\">\n {item.value}\n </Typography.Text>\n {item.info ? (\n <Typography.Text color=\"secondary\" size=\"xs\">\n {item.info}\n </Typography.Text>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </button>\n </li>\n ))}\n </ul>\n );\n}\n","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c<m;c+=1){var y=h[c];y.d&&(f=d?t(e).diff(i,y.d,!0):i.diff(e,y.d,!0));var p=(r.rounding||Math.round)(Math.abs(f));if(s=f>0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","import { ReactElement } from \"react\";\n\nimport { isString } from \"radash\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ElementColor } from \"../../utils/colors\";\n\nimport { Blank } from \"../../icons/crypto\";\n\ntype Props = {\n source?: string | IconCmp | undefined;\n fallback?: string | IconCmp | undefined;\n size?: number;\n iconColor?: ElementColor | undefined;\n};\n\nexport function ImageIcon({ source: Source, fallback: Fallback, size = 32, iconColor = \"primary\" }: Props): ReactElement {\n if (!Source) {\n if (Fallback) {\n return <ImageIcon source={Fallback} size={size} />;\n }\n return <Blank size={size} />;\n }\n\n return isString(Source) ? (\n <img src={Source} draggable={false} width={size} height={size} css={{ borderRadius: size, objectFit: \"cover\" }} />\n ) : (\n <Source size={size} color={iconColor} />\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\nimport { ImageIcon } from \"../../../ImageIcon\";\nimport { Typography } from \"../../../Typography\";\nimport { Spacer } from \"../../../Spacer\";\n\ntype Props = {\n label: string;\n value: string;\n icon?: string | IconCmp | undefined;\n};\n\nexport function Value({ icon, label, value }: Props): ReactElement {\n return (\n <div\n css={({ radius, bg, spacing }) => ({\n borderRadius: radius.small,\n backgroundColor: bg.cardHighlight,\n padding: spacing * 2,\n flex: 1,\n display: \"flex\",\n gap: spacing,\n alignItems: \"center\"\n })}\n >\n <div>\n <ImageIcon source={icon} size={32} iconColor=\"primary\" />\n </div>\n <Spacer vertical distance={0} alignItems=\"start\">\n <Typography.Text color=\"text\" size=\"s\">\n {label}\n </Typography.Text>\n <Typography.Text color=\"secondary\" size=\"xs\">\n {value}\n </Typography.Text>\n </Spacer>\n </div>\n );\n}\n","import { ReactElement, Fragment } from \"react\";\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\n\ndayjs.extend(relativeTime);\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { Spacer } from \"../Spacer\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ArrowCircleRightSolid } from \"../../icons\";\n\nimport { Value } from \"./components/Value\";\n\ntype Row = {\n label: string;\n value: string;\n icon?: string | IconCmp | undefined;\n};\n\ntype Props = {\n tagIcon: IconCmp;\n tagText: string;\n date: Date | number;\n rows: Array<Row | [Row, Row]>;\n};\n\nexport function Event({ tagIcon, tagText, date, rows }: Props): ReactElement {\n return (\n <div\n css={({ radius, spacing, bg }) => ({\n borderRadius: radius.medium,\n padding: spacing * 2,\n backgroundColor: bg.card,\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing * 2,\n maxWidth: 416,\n boxSizing: \"border-box\"\n })}\n >\n <Spacer justifyContent=\"space-between\" css={({ spacing }) => ({ marginBottom: spacing * 0.5 })}>\n <Tag icon={tagIcon} value={tagText} bgColor=\"selected\" />\n <Typography.Text color=\"secondary\" size=\"s\">\n {dayjs(date).fromNow()}\n </Typography.Text>\n </Spacer>\n\n {rows.map((row, index) => (\n <Fragment key={index}>\n {Array.isArray(row) ? (\n <Spacer distance={2} css={{ position: \"relative\" }}>\n <Value label={row[0].label} value={row[0].value} icon={row[0].icon} />\n <Value label={row[1].label} value={row[1].value} icon={row[1].icon} />\n <div\n css={({ bg }) => ({\n position: \"absolute\",\n height: 32,\n width: 32,\n borderRadius: 32,\n backgroundColor: bg.card,\n top: \"calc(50% - 16px)\",\n left: \"calc(50% - 16px)\"\n })}\n >\n <ArrowCircleRightSolid color=\"primary\" size={32} />\n </div>\n </Spacer>\n ) : (\n <Value label={row.label} value={row.value} icon={row.icon} />\n )}\n </Fragment>\n ))}\n </div>\n );\n}\n","import { ReactElement, useState, useRef, useLayoutEffect } from \"react\";\nimport DEFAULT_IMAGE from \"../../assets/images/bg-activity-card.jpg\";\n\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\n\nimport { Props, TopLeftTagIcon } from \"./types\";\nimport { CARD_WIDTH } from \"../../constants/common-sizs\";\nimport { Daos, Projects, Assets, Oracles, Investments, Protocols, Groups, ImpactCertificates, ImpactCredits, Star } from \"../../icons\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\nexport function FeaturedCard({ name = \"Name\", brand = \"Brand\", description = \"A short description of the domain.\", background, topLeftTag, onClick }: Props): ReactElement {\n const WrapperTag = onClick ? \"button\" : \"div\";\n const [isHovered, setIsHovered] = useState(false);\n const [descHeight, setDescHeight] = useState(0);\n const descRef = useRef<HTMLDivElement>(null);\n const measureRef = useRef<HTMLDivElement>(null);\n\n // Assign name to title, brand to subtitle for backward compatibility\n const title = name;\n const subtitle = brand;\n\n // Define default tag mapping\n const defaultTagMap: Record<TopLeftTagIcon, string> = {\n Daos: \"Organisation\",\n Projects: \"Project\",\n Assets: \"Collection\",\n Oracles: \"Oracle\",\n Investments: \"Investment\",\n Protocols: \"Protocol\",\n Groups: \"Group\",\n ImpactCertificates: \"Request\",\n ImpactCredits: \"Impact Credits\"\n };\n\n // Use provided topLeftTag or default to a Project tag\n const displayTag = topLeftTag || {\n icon: \"Projects\" as TopLeftTagIcon,\n text: defaultTagMap[\"Projects\"]\n };\n\n const iconMap: Record<TopLeftTagIcon, IconCmp> = {\n Daos,\n Projects,\n Assets,\n Oracles,\n Investments,\n Protocols,\n Groups,\n ImpactCertificates,\n ImpactCredits\n };\n\n const CurrentTopLeftIcon: IconCmp | undefined = iconMap[displayTag.icon];\n\n // Only measure the description height when hovered\n useLayoutEffect(() => {\n if (isHovered && measureRef.current) {\n setDescHeight(measureRef.current.offsetHeight);\n } else if (!isHovered) {\n setDescHeight(0);\n }\n }, [isHovered, description, name, brand]);\n\n return (\n <WrapperTag\n css={({ radius, transition }) => ({\n borderRadius: radius.medium,\n padding: 24,\n boxSizing: \"border-box\",\n border: \"none\",\n width: \"100%\",\n minWidth: CARD_WIDTH,\n height: 300,\n background: `url(${background ? background : ((DEFAULT_IMAGE as any).src ?? DEFAULT_IMAGE)}) , linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.4))`,\n backgroundBlendMode: \"overlay\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"100%\",\n backgroundPosition: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n cursor: onClick ? \"pointer\" : \"default\",\n transition: transition.duration,\n position: \"relative\",\n overflow: \"hidden\",\n \"&:hover\": {\n backgroundSize: \"110%\"\n }\n })}\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {/* Top tags container */}\n <div\n css={{\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: 24,\n alignItems: \"flex-start\",\n width: \"100%\",\n position: \"relative\",\n zIndex: 2\n }}\n >\n <div>\n <Tag value={displayTag.text} icon={CurrentTopLeftIcon} textColor=\"overPicture\" bgBlur />\n </div>\n <div>\n <Tag value=\"Featured\" icon={Star} textColor=\"overPicture\" bgBlur />\n </div>\n </div>\n\n {/* Content group: title, subtitle */}\n <div\n css={({ transition }) => ({\n position: \"absolute\",\n left: 24,\n right: 24,\n bottom: 24,\n transition: `transform ${transition.duration}`,\n transform: isHovered ? `translateY(-${descHeight + 24}px)` : \"translateY(0)\",\n zIndex: 1,\n display: \"flex\",\n flexDirection: \"column\"\n })}\n >\n <Typography.H5\n color=\"overPicture\"\n css={{\n margin: 0,\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: \"2\",\n lineClamp: \"2\",\n WebkitBoxOrient: \"vertical\"\n }}\n >\n {title}\n </Typography.H5>\n {subtitle !== undefined && (\n <Typography.Text\n color=\"overPicture\"\n size=\"s\"\n css={{\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: 1,\n lineClamp: 1,\n WebkitBoxOrient: \"vertical\",\n marginBottom: 0\n }}\n >\n {subtitle}\n </Typography.Text>\n )}\n </div>\n {/* Description: absolutely positioned at the bottom, only opacity animated */}\n <div\n ref={descRef}\n css={({ transition }) => ({\n position: \"absolute\",\n left: 24,\n right: 24,\n bottom: 24,\n opacity: isHovered ? 1 : 0,\n transition: `opacity ${transition.duration} ease-in-out`,\n willChange: \"opacity\",\n pointerEvents: \"none\",\n zIndex: 2\n })}\n >\n <Typography.Text\n color=\"overPicture\"\n size=\"s\"\n css={{\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: 3,\n lineClamp: 3,\n WebkitBoxOrient: \"vertical\",\n marginBottom: 0\n }}\n >\n {description}\n </Typography.Text>\n </div>\n {/* Hidden off-screen element for measuring description height */}\n <div\n ref={measureRef}\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n pointerEvents: \"none\",\n height: \"auto\",\n width: \"100%\",\n zIndex: -1,\n left: 24,\n right: 24,\n bottom: 24\n }}\n >\n <Typography.Text\n color=\"overPicture\"\n size=\"s\"\n css={{\n textAlign: \"left\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: 3,\n lineClamp: 3,\n WebkitBoxOrient: \"vertical\",\n marginBottom: 0\n }}\n >\n {description}\n </Typography.Text>\n </div>\n </WrapperTag>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ElementColor } from \"../../utils/colors\";\n\nexport type Props = {\n icon?: IconCmp;\n iconColor?: ElementColor;\n textColor?: ElementColor;\n className?: string;\n text: string;\n};\n\nexport function FeedbackMessage({ text, icon: Icon, className, iconColor = \"primary\", textColor = \"secondary\" }: Props): ReactElement {\n return (\n <Spacer alignItems=\"center\" justifyContent=\"center\" className={className}>\n {Icon ? <Icon size={20} color={iconColor} /> : null}\n\n <Typography.Text color={textColor}>{text}</Typography.Text>\n </Spacer>\n );\n}\n","import { ReactElement, useState } from \"react\";\nimport { cx } from \"@emotion/css\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Typography } from \"../Typography\";\nimport { Tag } from \"../Tag\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\nexport type FilterItem = {\n id: string;\n label: string;\n count?: number;\n icon?: IconCmp;\n};\n\nexport type FilterDropDownProps = {\n items: FilterItem[];\n selectedItem?: FilterItem;\n onChange?: (item: FilterItem) => void;\n className?: string;\n};\n\nexport const FilterDropDown = ({ items, selectedItem, onChange, className }: FilterDropDownProps): ReactElement => {\n const [isOpen, setIsOpen] = useState(false);\n const theme = useTheme();\n\n const handleSelectItem = (item: FilterItem) => {\n onChange?.(item);\n setIsOpen(false);\n };\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n\n return (\n <div\n className={cx(\"filter-dropdown\", { open: isOpen }, className)}\n css={{\n position: \"relative\",\n display: \"inline-flex\",\n flexDirection: \"column\"\n }}\n >\n {/* Selected Item / Trigger */}\n <div\n onClick={toggleDropdown}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n toggleDropdown();\n }\n }}\n css={({ colors, radius, spacing }) => ({\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: spacing,\n padding: `${spacing}px ${spacing * 2}px`,\n borderRadius: radius.big,\n backgroundColor: theme.bg.card,\n cursor: \"pointer\",\n boxShadow: isOpen ? `0 0 0 1px ${colors.focus}` : \"none\",\n \"&:hover\": {\n boxShadow: `0 0 0 1px ${colors.focus}`\n },\n \"&:focus\": {\n outline: `2px solid ${colors.focus}`,\n outlineOffset: \"2px\"\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"none\" // Remove outline for mouse focus, keep for keyboard\n }\n })}\n >\n {selectedItem?.icon && <selectedItem.icon size={16} color=\"primary\" />}\n <Typography.Text color=\"text\">{selectedItem?.label || \"All\"}</Typography.Text>\n {selectedItem?.count !== undefined && <Tag value={selectedItem.count} small bgColor=\"focusTransparent20\" textColor=\"primary\" />}\n </div>\n\n {/* Dropdown Menu */}\n {isOpen && (\n <div\n css={({ colors, radius, spacing }) => ({\n position: \"absolute\",\n top: \"100%\",\n left: 0,\n zIndex: 10,\n marginTop: spacing,\n backgroundColor: theme.bg.card,\n borderRadius: radius.medium,\n padding: `${spacing}px 0`,\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: \"100%\",\n width: \"max-content\",\n border: `1px solid ${colors.focus}`\n })}\n >\n {items.map((item) => (\n <div\n key={item.id}\n onClick={() => handleSelectItem(item)}\n role=\"menuitem\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n handleSelectItem(item);\n }\n }}\n css={({ colors, spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing,\n padding: `${spacing * 0.75}px ${spacing * 2}px`,\n cursor: \"pointer\",\n whiteSpace: \"nowrap\",\n backgroundColor: selectedItem?.id === item.id ? colors.focusTransparent10 : \"transparent\",\n \"&:hover\": {\n backgroundColor: colors.focusTransparent20\n },\n \"&:focus\": {\n outline: `2px solid ${colors.focus}`,\n outlineOffset: \"-2px\"\n },\n \"&:focus:not(:focus-visible)\": {\n outline: \"none\"\n }\n })}\n >\n {item.icon && <item.icon size={16} color=\"primary\" />}\n <Typography.Text color={selectedItem?.id === item.id ? \"text\" : \"focusSecondary\"}>{item.label}</Typography.Text>\n {item.count !== undefined && <Tag value={item.count} small bgColor=\"focusTransparent20\" textColor=\"primary\" />}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n","import { ReactElement } from \"react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Tag } from \"../Tag\";\n\nimport { Props } from \"./types\";\n\nexport function FilterTags({ items, tagsConfig, selectedIds, onClick }: Props): ReactElement {\n return (\n <Spacer>\n {items.map((item) => {\n const isSelected = selectedIds.includes(item.id);\n return (\n <button\n key={item.id}\n css={({ radius, colors }) => ({\n padding: 0,\n background: \"none\",\n border: \"none\",\n borderRadius: radius.medium,\n cursor: item.disabled ? \"not-allowed\" : \"pointer\",\n opacity: item.disabled ? 0.5 : undefined,\n \"&:not([disabled]):hover > span\": {\n backgroundColor: colors.focusTransparent10\n }\n })}\n disabled={item.disabled}\n onClick={() => onClick(item.id, !isSelected)}\n >\n <Tag\n textColor={tagsConfig?.textColor}\n small={tagsConfig?.small}\n bgColor={isSelected ? \"selected\" : undefined}\n bgTransparent={tagsConfig?.bgTransparent}\n value={item.value}\n icon={item.icon}\n className={item.className}\n />\n </button>\n );\n })}\n </Spacer>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Props } from \"./types\";\n\nexport function NavButton({ icon: Icon, onClick, disabled }: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n disabled={disabled}\n css={({ radius, bg, spacing }) => ({\n borderRadius: radius.small,\n backgroundColor: bg.card,\n border: \"none\",\n paddingLeft: spacing * 0.75,\n paddingRight: spacing * 0.75,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"&:disabled\": {\n opacity: 0.5,\n cursor: \"not-allowed\"\n },\n \"&:hover:not([disabled])\": {\n opacity: 0.75,\n cursor: \"pointer\"\n }\n })}\n >\n <Icon\n css={({ text }) => ({\n \"& path\": { fill: text.secondary },\n height: 20,\n width: 20\n })}\n />\n </button>\n );\n}\n","import { ReactElement, Fragment, useCallback, useState } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { AngleLeftSolid, AngleRightSolid } from \"../../icons\";\n\nimport { NavButton } from \"./components/NavButton\";\n\nimport { Props } from \"./types\";\n\nexport function HorizontalCardSlider({ items, itemWidth, amount }: Props): ReactElement {\n const { spacing } = useTheme();\n const [offset, setOffset] = useState(0);\n const goToPrev = useCallback(() => setOffset((state) => state - 1), []);\n const goToNext = useCallback(() => setOffset((state) => state + 1), []);\n\n const gap = spacing * 1.5;\n const sliderWidth = itemWidth * amount + gap * (amount - 1);\n const totalWidth = items.length * itemWidth + gap * (items.length - 1);\n const translate = offset * (itemWidth + gap);\n\n return (\n <div css={{ display: \"flex\", gap }}>\n <NavButton onClick={goToPrev} icon={AngleLeftSolid} disabled={offset === 0} />\n <div css={{ overflow: \"hidden\", width: sliderWidth }}>\n <div\n css={({ spacing, transition }) => ({\n transform: `translateX(-${translate}px)`,\n transition: transition.duration,\n display: \"flex\",\n gap: spacing * 1.5,\n flexWrap: \"nowrap\",\n width: totalWidth,\n \"& > button\": {\n flexBasis: 220,\n flexShrink: 0\n }\n })}\n >\n {items.map((item, index) => (\n <Fragment key={index}>{item}</Fragment>\n ))}\n </div>\n </div>\n <NavButton onClick={goToNext} icon={AngleRightSolid} disabled={offset >= items.length - amount} />\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { ActivityCard } from \"../ActivityCard\";\nimport { HorizontalCardSlider } from \"../HorizontalCardSlider\";\nimport { CARD_WIDTH } from \"../../constants/common-sizs\";\n\nimport { Props } from \"./types\";\n\nexport function GroupActivity({ amount, items }: Props): ReactElement {\n return (\n <HorizontalCardSlider\n itemWidth={CARD_WIDTH}\n amount={amount}\n items={items.map((item) => (\n <ActivityCard title={item.title} background={item.background} tagsHeader={item.tagsHeader} tagsFooter={item.tagsFooter} onClick={item.onClick} key={item.title} />\n ))}\n />\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { CardSelector } from \"../CardSelector\";\nimport { HorizontalCardSlider } from \"../HorizontalCardSlider\";\nimport { CARD_WIDTH } from \"../CardSelector/utils\";\n\nimport { Props } from \"./types\";\n\nexport function GroupSelector({ amount, items }: Props): ReactElement {\n return (\n <HorizontalCardSlider\n itemWidth={CARD_WIDTH}\n amount={amount}\n items={items.map((item) => (\n <CardSelector\n title={item.title}\n header={item.header}\n isHighlighted={item.isHighlighted}\n bordered={item.bordered}\n tags={item.tags}\n onClick={item.onClick}\n key={item.title}\n />\n ))}\n />\n );\n}\n","import { ReactNode, PropsWithChildren } from \"react\";\n\ntype Props = { deep: number } & PropsWithChildren;\n\nconst OFFSET = 6;\n\nexport function Stack({ deep, children }: Props): ReactNode {\n if (deep < 1) {\n return children;\n }\n\n return (\n <div css={{ position: \"relative\" }} style={{ left: OFFSET * (deep - 1), top: OFFSET * (deep - 1) }}>\n <div\n css={({ radius, bg }) => ({\n position: \"relative\",\n borderRadius: radius.medium,\n backgroundColor: bg.card\n })}\n style={{\n zIndex: deep,\n left: OFFSET * (-deep + 1),\n top: OFFSET * (-deep + 1)\n }}\n >\n {children}\n </div>\n {[...Array(deep).keys()].map((index) => (\n <span\n key={index}\n css={({ radius, bg }) => ({\n boxShadow: \"0px 0px 20px 0px rgba(0, 0, 0, 0.1)\",\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n borderRadius: radius.medium,\n backgroundColor: bg.card\n })}\n style={{ left: OFFSET * -index, top: OFFSET * -index, zIndex: index }}\n />\n ))}\n </div>\n );\n}\n","import { ReactNode } from \"react\";\n\nimport { ImageIcon } from \"../../../../../ImageIcon\";\nimport { IconCmp } from \"../../../../../../types/IconCmp\";\n\nexport type Props = {\n content?: {\n title?: string;\n description?: string;\n icon?: IconCmp | string;\n };\n side: \"left\" | \"right\";\n};\n\nexport function Content({ side, content }: Props): ReactNode {\n return (\n <div>\n {((): ReactNode => {\n if (content?.icon) {\n return <ImageIcon source={content.icon} size={32} iconColor=\"secondary\" />;\n }\n\n if (content?.title || content?.description) {\n return (\n <div\n css={({ font }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: side === \"left\" ? \"flex-start\" : \"flex-end\",\n fontFamily: font.main\n })}\n >\n {content.title ? (\n <span\n css={({ text, fontSize }) => ({\n color: text.main,\n fontSize: fontSize.s,\n textAlign: \"left\"\n })}\n >\n {content.title}\n </span>\n ) : null}\n\n {content.description ? (\n <span\n css={({ text, fontSize }) => ({\n color: text.secondary,\n fontSize: fontSize.xs\n })}\n >\n {content.description}\n </span>\n ) : null}\n </div>\n );\n }\n })()}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Content, Props as PropsContent } from \"./components/Content\";\n\nexport type Props = {\n onClick?: () => void;\n left?: PropsContent[\"content\"];\n right?: PropsContent[\"content\"];\n};\n\nexport function ActionButton({ onClick, left, right }: Props): ReactElement {\n const Wrapper = onClick ? \"button\" : \"div\";\n return (\n <div\n css={({ spacing }) => ({\n padding: spacing * 2,\n display: \"flex\"\n })}\n >\n <Wrapper\n css={({ bg, radius, spacing }) => ({\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.small,\n boxSizing: \"border-box\",\n flex: 1,\n border: \"none\",\n display: \"flex\",\n justifyContent: \"space-between\",\n padding: spacing,\n cursor: onClick ? \"pointer\" : undefined,\n alignItems: \"center\"\n })}\n onClick={onClick}\n >\n <Content side=\"left\" content={left} />\n <Content side=\"right\" content={right} />\n </Wrapper>\n </div>\n );\n}\n","import { ReactElement, lazy, Suspense, forwardRef, ForwardedRef, useImperativeHandle, useRef, useState, MouseEvent, useCallback, useEffect } from \"react\";\nimport { cx } from \"@emotion/css\";\n\nimport { UnlMapInstance } from \"../../hooks/useUnlMap\";\nimport { isValidClick } from \"../../utils/dom\";\n\nconst MainAction = lazy(() => import(\"./components/MainAction\"));\nconst Header = lazy(() => import(\"./components/Header\"));\nconst Content = lazy(() => import(\"./components/Content\"));\nconst Map = lazy(() => import(\"./components/Map\"));\nconst CustomContent = lazy(() => import(\"./components/CustomContent\"));\nconst Assets = lazy(() => import(\"./components/Assets\"));\nconst Actions = lazy(() => import(\"./components/Actions\"));\n\nimport { PropsRef as PropsMapRef } from \"../Map\";\n\nexport type MapApiRef = PropsMapRef;\n\nimport { Props as PropsAssets } from \"./components/Assets\";\nimport { Props as PropsHeader } from \"./components/Header\";\nimport { Props as PropsContent } from \"./components/Content\";\nimport { Props as PropsCustomContent } from \"./components/CustomContent\";\nimport { Props as PropsMainAction } from \"./components/MainAction\";\nimport { Props as PropsMap } from \"./components/Map\";\nimport { Stack } from \"./components/Stack\";\nimport { ActionButton, Props as PropsActionButtons } from \"./components/ActionButton\";\n\nimport { Props as PropsCardActionButton } from \"../CardActionButton\";\n\nconst HOVER_BORDER_WIDTH = 1;\n\nexport type Props = {\n onClick?: (e: MouseEvent<HTMLDivElement>) => void;\n expanded?: boolean;\n numSelected?: number;\n mainAction?: PropsMainAction;\n header?: Omit<PropsHeader, \"badge\">;\n content?: PropsContent;\n map?: PropsMap;\n customContent?: Omit<PropsCustomContent, \"position\">;\n customFooter?: Omit<PropsCustomContent, \"position\">;\n assets?: PropsAssets;\n actions?: PropsActionButtons & { items?: Array<PropsCardActionButton> };\n};\n\nexport function SodaCardCmp(\n { numSelected = 0, expanded = true, mainAction, header, content, map, customContent, customFooter, actions, assets, onClick }: Props,\n ref: ForwardedRef<PropsMapRef>\n): ReactElement {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const observerRef = useRef<ResizeObserver>();\n const [contentHeight, setContentHeight] = useState(0);\n\n useEffect(function observeContent() {\n observerRef.current = new ResizeObserver(([entry]) => {\n setContentHeight(entry.contentRect.height);\n });\n\n if (contentRef.current) {\n observerRef.current.observe(contentRef.current);\n }\n\n return (): void => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n const handleCardClick = useCallback(\n (e: MouseEvent<HTMLDivElement>) => {\n if (!onClick) {\n return;\n }\n\n if (isValidClick(e, wrapperRef.current)) {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const mapRef = useRef<PropsMapRef>(null);\n\n useImperativeHandle(ref, () => {\n return {\n mapInstance: (): UnlMapInstance => mapRef.current!.mapInstance()\n };\n }, []);\n\n const stackedItems = numSelected < 3 ? numSelected : 3;\n const stackOffset = stackedItems > 1 ? (stackedItems - 1) * 6 * -1 : 0;\n\n return (\n <div\n ref={wrapperRef}\n css={({ colors, radius, bg, layout, spacing }) => ({\n width: layout.cardWidth,\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.medium,\n display: \"flex\",\n overflow: \"hidden\",\n flexDirection: \"column\",\n ...(onClick ? { cursor: \"pointer\" } : {}),\n ...(!header && !mainAction && !actions ? { paddingTop: spacing * 2 } : {}),\n ...(expanded === true\n ? {\n \"& .soda-card-actions-expanded\": {\n \"& .soda-card-actions\": { gridTemplateRows: \"1fr\" }\n }\n }\n : {}),\n \"&:hover\": {\n \"& .soda-card-content\": {\n borderColor: colors.focus\n },\n \"& div:not(.soda-card-actions-controlled) .soda-card-actions\": {\n gridTemplateRows: \"1fr\"\n }\n }\n })}\n onClick={handleCardClick}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n <div css={{ position: \"relative\" }} style={contentHeight === 0 ? undefined : { height: contentHeight + HOVER_BORDER_WIDTH * 2 }}>\n <div\n ref={contentRef}\n className=\"soda-card-content\"\n css={({ radius, bg, transition }) => ({\n width: \"100%\",\n borderRadius: radius.medium,\n backgroundColor: stackedItems > 1 ? undefined : bg.card,\n borderWidth: HOVER_BORDER_WIDTH,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n boxSizing: \"border-box\",\n transition: transition.duration\n })}\n style={{\n left: stackOffset,\n top: stackOffset,\n position: contentHeight === 0 ? undefined : \"absolute\"\n }}\n >\n <div\n css={({ spacing }) => ({\n marginBottom: actions?.items ? undefined : spacing * 2\n })}\n >\n <Stack deep={stackedItems}>\n {mainAction ? (\n <Suspense>\n <MainAction title={mainAction.title} description={mainAction.description} onClick={mainAction.onClick} icon={mainAction.icon} />\n </Suspense>\n ) : null}\n\n {header ? (\n <Suspense>\n <Header title={header?.title} icon={header?.icon} badge={numSelected > 1 ? numSelected : undefined} controls={header?.controls} onClick={header?.onClick} />\n </Suspense>\n ) : null}\n\n {content ? (\n <Suspense>\n <Content image={content?.image} imageFit={content?.imageFit} description={content?.description} info={content?.info} />\n </Suspense>\n ) : null}\n\n {map ? (\n <Suspense>\n <Map apiKey={map.apiKey} vpmId={map.vpmId} lat={map.lat} lng={map.lng} zoom={map.zoom} ref={mapRef} />\n </Suspense>\n ) : null}\n\n {customContent ? (\n <Suspense>\n <CustomContent position=\"top\" content={customContent.content} />\n </Suspense>\n ) : null}\n\n {assets ? (\n <Suspense>\n <Assets items={assets.items} summary={assets.summary} />\n </Suspense>\n ) : null}\n\n {actions?.left || actions?.right ? <ActionButton onClick={onClick || actions.items ? actions.onClick : undefined} left={actions.left} right={actions.right} /> : null}\n </Stack>\n </div>\n </div>\n </div>\n <div\n className={cx({\n \"soda-card-actions-controlled\": expanded !== undefined,\n \"soda-card-actions-expanded\": expanded === true\n })}\n >\n {actions?.items ? (\n <Suspense>\n <Actions items={actions.items} />\n </Suspense>\n ) : null}\n\n {customFooter ? (\n <Suspense>\n <CustomContent position=\"bottom\" content={customFooter.content} />\n </Suspense>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport const SodaCard = forwardRef(SodaCardCmp);\n","import { Overview } from \"../../types/documents\";\n\nexport function buildOverviewResponse(entityId: string): Overview {\n return {\n origin: {\n type: \"ImpactsX\",\n id: \"https://app.impacts.exchange\"\n },\n target: {\n type: \"ImpactsX\",\n id: \"https://app.impacts.exchange\",\n component: \"Canvas\"\n },\n domain: {\n type: \"Asset\",\n id: entityId\n }\n };\n}\n","import { EventEmitter } from \"./event-emitter\";\n\nexport function emitEvent(data: unknown): void {\n EventEmitter.getInstance().emit(data);\n}\n","import { ReactElement, useEffect, useCallback, useState } from \"react\";\nimport { get } from \"radash\";\n\nimport { SodaCard } from \"../SodaCard\";\nimport { Props as PropsCardActionButton } from \"../CardActionButton\";\nimport { Expand } from \"../../icons\";\nimport { Overview } from \"../../types/documents\";\nimport { buildOverviewResponse } from \"./utils\";\nimport { emitEvent } from \"../../utils/events\";\n\ntype Props = {\n document: string;\n onIxoEvent?: (document: Overview) => void;\n};\n\nexport function HandlerSodaCard({ document, onIxoEvent }: Props): ReactElement {\n const [actionsItems, setActionsItems] = useState<Array<PropsCardActionButton>>([]);\n\n const callOverview = useCallback(\n (entityId: string): void => {\n const response = buildOverviewResponse(entityId);\n emitEvent(response);\n\n if (onIxoEvent) {\n onIxoEvent(response);\n }\n },\n [onIxoEvent]\n );\n\n useEffect(\n function parseDocument() {\n if (!document) {\n setActionsItems([]);\n return;\n }\n\n let json;\n try {\n json = JSON.parse(document);\n } catch (e: unknown) {\n console.log(e);\n }\n\n if (!json) {\n setActionsItems([]);\n return;\n }\n\n const data = get<Array<{ id: string }>>(json, \"iidDocument.linkedResource\");\n\n const actions: Array<PropsCardActionButton> = [];\n\n const overview = (data ?? []).find((item) => item.id === \"{id}#page\");\n if (overview) {\n const entityId = get<string>(json, \"entity.id\");\n actions.push({\n title: \"Overview\",\n icon: Expand,\n onClick: (): void => {\n callOverview(entityId);\n }\n });\n }\n\n setActionsItems(actions);\n },\n [document, callOverview]\n );\n\n return <SodaCard actions={{ items: actionsItems }} />;\n}\n","import { ReactElement, memo } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Chart as ChartComponent } from \"../Chart\";\nimport { getElementColor } from \"../../utils/colors\";\n\ntype Props = {\n retired: number;\n inMyAccount: number;\n toHarvest: number;\n other: number;\n};\n\nexport const Chart = memo(function Chart({ retired, inMyAccount, toHarvest, other }: Props): ReactElement {\n const theme = useTheme();\n\n return (\n <div\n css={{\n width: 32,\n height: 32,\n overflow: \"hidden\"\n }}\n >\n <ChartComponent\n options={{\n colors: [getElementColor(theme, \"success\"), getElementColor(theme, \"primary\"), getElementColor(theme, \"focusSecondary\"), getElementColor(theme, \"textSecondary\")],\n plotOptions: {\n pie: {\n expandOnClick: false,\n donut: {\n size: \"50%\"\n }\n }\n },\n series: [retired, inMyAccount, toHarvest, other],\n chart: {\n type: \"donut\",\n width: 38,\n height: 38,\n parentHeightOffset: 0,\n toolbar: { show: false }\n },\n dataLabels: { enabled: false },\n tooltip: { enabled: false },\n grid: {\n padding: {\n left: -6,\n top: -6\n }\n },\n legend: { show: false },\n stroke: {\n width: 1,\n show: true,\n curve: \"smooth\"\n }\n }}\n />\n </div>\n );\n});\n","import { ReactNode, useState, useCallback } from \"react\";\nimport { isString } from \"radash\";\n\nimport { Popover } from \"react-tiny-popover\";\n\nimport { Typography } from \"../Typography\";\n\nimport { Props } from \"./types\";\n\nexport function Tooltip({ children, content, className, classNameWrapper, positions }: Props): ReactNode {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n if (!content) {\n return children;\n }\n\n return (\n <Popover\n isOpen={isOpen}\n reposition\n positions={positions}\n padding={8}\n content={\n isString(content) ? (\n <div\n role=\"tooltip\"\n css={({ bg, spacing, radius }) => ({\n backgroundColor: bg.card,\n padding: spacing,\n borderRadius: radius.small,\n filter: \"drop-shadow(rgba(0, 0, 0, 0.2) 0 2px 10px)\"\n })}\n className={className}\n >\n <Typography.Text size=\"s\" color=\"secondary\">\n {content}\n </Typography.Text>\n </div>\n ) : (\n content\n )\n }\n >\n <span onMouseEnter={handleOpen} onMouseLeave={handleClose} onFocus={handleOpen} onBlur={handleClose} className={classNameWrapper}>\n {children}\n </span>\n </Popover>\n );\n}\n","import { ReactElement } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\nimport { ElementColor, getElementColor } from \"../../utils/colors\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\nfunction Info({\n align,\n title,\n titleColor,\n subtitle,\n subtitleColor\n}: {\n title: string;\n titleColor?: ElementColor;\n subtitle?: string;\n subtitleColor?: ElementColor;\n align: \"start\" | \"end\";\n}): ReactElement {\n return (\n <Spacer vertical distance={0} alignItems={align}>\n <Typography.Text color={titleColor}>{title}</Typography.Text>\n {subtitle !== undefined && (\n <Typography.Text color={subtitleColor} size=\"xs\">\n {subtitle}\n </Typography.Text>\n )}\n </Spacer>\n );\n}\n\nexport type Props = {\n leftTitle: string;\n leftTitleColor?: ElementColor;\n leftSubtitle?: string;\n leftSubtitleColor?: ElementColor;\n rightTitle: string;\n rightTitleColor?: ElementColor;\n rightSubtitle?: string;\n rightSubtitleColor?: ElementColor;\n icon?: {\n bg: ElementColor;\n icon: IconCmp;\n };\n};\n\nexport function AssetInfo({\n leftTitle,\n leftTitleColor = \"text\",\n leftSubtitle,\n leftSubtitleColor = \"focusSecondary\",\n rightTitle,\n rightTitleColor = \"text\",\n rightSubtitle,\n rightSubtitleColor = \"focusSecondary\",\n icon\n}: Props): ReactElement {\n const theme = useTheme();\n return (\n <Spacer\n css={({ radius, bg, spacing }) => ({\n width: 318,\n borderRadius: radius.small,\n backgroundColor: bg.cardHighlight,\n padding: spacing\n })}\n justifyContent=\"space-between\"\n >\n <Spacer>\n {icon && (\n <div\n css={({ radius }) => ({\n width: 32,\n height: 32,\n borderRadius: radius.small / 2,\n backgroundColor: getElementColor(theme, icon.bg),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n })}\n >\n <icon.icon color=\"overPicture\" />\n </div>\n )}\n <Info align=\"start\" title={leftTitle} subtitle={leftSubtitle} titleColor={leftTitleColor} subtitleColor={leftSubtitleColor} />\n </Spacer>\n <Info align=\"end\" title={rightTitle} subtitle={rightSubtitle} titleColor={rightTitleColor} subtitleColor={rightSubtitleColor} />\n </Spacer>\n );\n}\n","import { PropsWithChildren, ReactNode } from \"react\";\n\nimport { Tooltip as TooltipComponent } from \"../Tooltip\";\nimport { Accounts, LeafSolid, ArrowDownSolid, Globe } from \"../../icons\";\n\nimport { AssetInfo } from \"./AssetInfo\";\nimport { carbonToUSD } from \"../../utils/formatters\";\n\ntype Props = {\n retired: number;\n inMyAccount: number;\n toHarvest: number;\n other: number;\n} & PropsWithChildren;\n\nconst SHARED_ASSET_PROPS = {\n leftTitleColor: \"text\" as const,\n rightTitleColor: \"text\" as const,\n rightSubtitleColor: \"focusSecondary\" as const\n};\n\nexport function Tooltip({ children, retired, inMyAccount, toHarvest, other }: Props): ReactNode {\n const total = retired + inMyAccount + toHarvest + other;\n const getPercentage = (value: number): string =>\n ((value / total) * 100).toLocaleString(undefined, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }) + \"%\";\n\n return (\n <TooltipComponent\n positions={[\"top\", \"bottom\", \"left\", \"right\"]}\n content={\n <ul\n css={({ spacing, colors, radius, bg }) => ({\n margin: 0,\n backgroundColor: bg.card,\n listStyle: \"none\",\n padding: spacing * 2,\n display: \"inline-flex\",\n flexDirection: \"column\",\n gap: spacing / 2,\n boxSizing: \"border-box\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: colors.focus,\n borderRadius: radius.medium\n })}\n >\n {retired > 0 && (\n <li>\n <AssetInfo\n {...SHARED_ASSET_PROPS}\n leftTitle=\"Retired\"\n leftSubtitle={getPercentage(retired)}\n rightTitle={`${retired} CARBON`}\n rightSubtitle={`${retired} kgCO2`}\n icon={{\n bg: \"success\",\n icon: LeafSolid\n }}\n />\n </li>\n )}\n {inMyAccount > 0 && (\n <li>\n <AssetInfo\n {...SHARED_ASSET_PROPS}\n leftTitle=\"In my Account\"\n leftSubtitle={getPercentage(inMyAccount)}\n rightTitle={`${inMyAccount} CARBON`}\n rightSubtitle={`$${carbonToUSD(inMyAccount * 0.03)}`}\n icon={{\n bg: \"primary\",\n icon: Accounts\n }}\n />\n </li>\n )}\n {toHarvest > 0 && (\n <li>\n <AssetInfo\n {...SHARED_ASSET_PROPS}\n leftTitle=\"To Harvest\"\n leftSubtitle={`${getPercentage(toHarvest)}`}\n rightTitle={`${toHarvest} CARBON`}\n rightSubtitle={`$${carbonToUSD(toHarvest * 0.03)}`}\n icon={{\n bg: \"focusSecondary\",\n icon: ArrowDownSolid\n }}\n />\n </li>\n )}\n {other > 0 && (\n <li>\n <AssetInfo\n {...SHARED_ASSET_PROPS}\n leftTitle=\"Other\"\n leftSubtitle={`${getPercentage(other)}`}\n rightTitle={`${other} CARBON`}\n rightSubtitle={`$${carbonToUSD(other * 0.03)}`}\n icon={{\n bg: \"textSecondary\",\n icon: Globe\n }}\n />\n </li>\n )}\n </ul>\n }\n >\n {children}\n </TooltipComponent>\n );\n}\n","import { ReactElement } from \"react\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ElementColor, getElementColor } from \"../../utils/colors\";\nimport { useTheme } from \"@emotion/react\";\n\ntype Props = {\n icon: IconCmp;\n color: ElementColor;\n};\n\nexport function FullState({ icon: Icon, color }: Props): ReactElement {\n const theme = useTheme();\n const bgColor = getElementColor(theme, color);\n return (\n <div\n css={({ radius }) => ({\n backgroundColor: bgColor,\n width: 32,\n height: 32,\n borderRadius: radius.small / 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n })}\n >\n <Icon />\n </div>\n );\n}\n","import { ReactElement, ReactNode } from \"react\";\n\nimport { Chart } from \"./Chart\";\nimport { Tooltip } from \"./Tooltip\";\nimport { FullState } from \"./FullState\";\nimport { Accounts, ArrowDownSolid, Globe, LeafSolid } from \"../../icons\";\n\ntype Props = {\n retired: number;\n inMyAccount: number;\n toHarvest: number;\n other: number;\n};\n\nexport function ImpactCreditState({ retired, inMyAccount, toHarvest, other }: Props): ReactElement {\n const onlyOneActive = [retired, inMyAccount, toHarvest, other].filter((value) => value > 0).length === 1;\n\n return (\n <Tooltip retired={retired} inMyAccount={inMyAccount} toHarvest={toHarvest} other={other}>\n {((): ReactNode => {\n if (onlyOneActive) {\n if (retired > 0) {\n return <FullState icon={LeafSolid} color=\"success\" />;\n } else if (inMyAccount > 0) {\n return <FullState icon={Accounts} color=\"primary\" />;\n } else if (toHarvest > 0) {\n return <FullState icon={ArrowDownSolid} color=\"focusSecondary\" />;\n } else if (other > 0) {\n return <FullState icon={Globe} color=\"textSecondary\" />;\n }\n }\n\n return <Chart retired={retired} inMyAccount={inMyAccount} toHarvest={toHarvest} other={other} />;\n })()}\n </Tooltip>\n );\n}\n","import { PropsWithChildren, ReactElement } from \"react\";\n\ntype Props = PropsWithChildren;\n\nexport function Scrollbars({ children }: Props): ReactElement {\n return (\n <div\n css={{\n height: \"100%\",\n width: \"100%\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n \"&::-webkit-scrollbar\": {\n display: \"none\",\n background: \"transparent\"\n },\n msOverflowStyle: \"none\",\n scrollbarWidth: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\"\n }}\n >\n {children}\n </div>\n );\n}\n","import { ReactElement, PropsWithChildren } from \"react\";\nimport { Scrollbars } from \"../../../Scrollbars\";\n\nexport function Column({ children }: PropsWithChildren): ReactElement {\n return (\n <div\n css={({ layout, bg, spacing }) => ({\n width: layout.columnWidth,\n overflow: \"auto\",\n backgroundColor: bg.column,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"flex-start\",\n gap: spacing * 2.5\n })}\n >\n <Scrollbars>\n <div\n css={({ spacing }) => ({\n marginTop: spacing * 2.5,\n marginBottom: spacing * 2.5\n })}\n >\n {children}\n </div>\n </Scrollbars>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\nexport type Props = {\n active?: boolean;\n disabled?: boolean;\n icon: IconCmp;\n onClick: () => void;\n};\n\nexport function HeaderButton({ active, disabled, icon: Icon, onClick }: Props): ReactElement {\n return (\n <button\n className={active ? \"active\" : undefined}\n css={({ layout, colors }) => ({\n padding: 0,\n width: \"100%\",\n height: layout.headerHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n background: \"none\",\n border: \"none\",\n \"&:disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5\n },\n \"&.active, &:hover:not([disabled])\": {\n backgroundColor: colors.focusTransparent10,\n \"& svg > path, & svg > circle\": { fill: colors.focus },\n \"& svg > g > rect\": { stroke: colors.focus }\n }\n })}\n onClick={onClick}\n disabled={disabled}\n >\n <Icon color=\"focusSecondary\" />\n </button>\n );\n}\n","import { ReactElement, useRef /* , useState */ } from \"react\";\nimport { isFunction } from \"radash\";\n\nimport { IconButton } from \"../../../IconButton\";\nimport { Spacer } from \"../../../Spacer\";\nimport { Typography } from \"../../../Typography\";\nimport { ArrowLeftSolid, SearchSolid /*Close,*/ } from \"../../../../icons\";\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\nfunction IconBox({ icon: Icon }: { icon: IconCmp }): ReactElement {\n return (\n <div\n css={({ colors, radius }) => ({\n backgroundColor: colors.focusTransparent10,\n borderRadius: radius.small / 2,\n width: 40,\n height: 40,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n })}\n >\n <Icon color=\"primary\" size={24} />\n </div>\n );\n}\n\nexport type Props = {\n breadCrumbLinkCmp?: any;\n title?: string;\n subTitle?: string;\n breadcrumb?: Array<{ label: string; href?: string }>;\n pageIcon?: IconCmp;\n onBack?: VoidFunction | string;\n extraButtons?: Array<{\n icon: IconCmp;\n onClick: VoidFunction;\n }>;\n};\n\nexport function SearchBar({ title, subTitle, breadcrumb, pageIcon, breadCrumbLinkCmp: Link, extraButtons, onBack }: Props): ReactElement {\n // const [isSearching, setIsSearching] = useState(false)\n const isSearching = false;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n // TODO: Hidding search bar for now\n // const toggleSearching = (): void => {\n // const newState = !isSearching\n // setIsSearching(newState)\n // if (newState) {\n // setTimeout(() => {\n // inputRef.current?.focus()\n // }, 50)\n // }\n // }\n\n return (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing * 2.5,\n flexGrow: 1,\n paddingLeft: spacing * 2.5,\n paddingRight: spacing * 2.5\n })}\n >\n <div css={{ flexGrow: 1 }}>\n {isSearching ? (\n <Spacer>\n <IconBox icon={SearchSolid} />\n <input\n ref={inputRef}\n type=\"text\"\n placeholder=\"Search\"\n css={({ font, text, fontSize }) => ({\n outline: \"none\",\n width: \"100%\",\n border: \"none\",\n \"&::placeholder\": {\n fontFamily: font.main,\n color: text.secondary,\n fontSize: fontSize.regular\n }\n })}\n />\n </Spacer>\n ) : (\n <Spacer justifyContent=\"start\" alignItems=\"center\">\n <div>\n {onBack ? (\n <>\n {isFunction(onBack) ? (\n <IconBox icon={() => <IconButton icon={ArrowLeftSolid} onClick={onBack} />} />\n ) : (\n <>\n {Link ? (\n <Link href={onBack}>\n <IconBox icon={ArrowLeftSolid} />\n </Link>\n ) : null}\n </>\n )}\n </>\n ) : pageIcon ? (\n <IconBox icon={pageIcon} />\n ) : null}\n </div>\n <Spacer vertical distance={0} alignItems=\"start\">\n {title && <Typography.H1 css={{ margin: 0, fontSize: 16 }}>{title}</Typography.H1>}\n {breadcrumb && Link ? (\n <ul\n css={({ spacing }) => ({\n listStyle: \"none\",\n padding: 0,\n margin: 0,\n display: \"flex\",\n gap: spacing\n })}\n >\n {breadcrumb.map((item) => (\n <li\n key={item.label}\n css={({ spacing }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing\n })}\n >\n {item.href ? (\n <Link\n href={item.href}\n css={({ colors, fontSize }) => ({\n color: colors.focusTransparent50,\n textDecoration: \"none\",\n fontSize: fontSize.xs,\n lineHeight: \"1.5em\"\n })}\n >\n {item.label}\n </Link>\n ) : (\n <Typography.Text color=\"primary\" size=\"xs\">\n {item.label}\n </Typography.Text>\n )}\n </li>\n ))}\n </ul>\n ) : (\n <>\n {subTitle && (\n <Typography.Text size=\"xs\" color=\"focusSecondary\">\n {subTitle}\n </Typography.Text>\n )}\n </>\n )}\n </Spacer>\n </Spacer>\n )}\n </div>\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n gap: spacing * 1.5,\n alignItems: \"center\"\n })}\n >\n {/* TODO: Hidding search bar for now */}\n {/* <IconButton\n icon={isSearching ? Close : SearchSolid}\n onClick={toggleSearching}\n size={24}\n css={({ colors, radius }) => ({\n width: 40,\n height: 24,\n borderRadius: radius.small / 2,\n \"&:hover\": {\n backgroundColor: colors.focusTransparent10,\n opacity: \"1.0 !important\"\n }\n })}\n /> */}\n {extraButtons?.map((button, index) => <IconBox key={index} icon={() => <IconButton icon={button.icon} onClick={button.onClick} />} />)}\n </div>\n </div>\n );\n}\n","import { ReactElement, ReactNode, useState } from \"react\";\nimport { isString } from \"radash\";\n\nimport { HeaderButton } from \"../HeaderButton\";\nimport { SearchBar } from \"../SearchBar\";\nimport { Tooltip } from \"../../../Tooltip\";\nimport { Typography } from \"../../../Typography\";\n\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\nimport { Props as SearchBarProps } from \"../SearchBar\";\n\nexport type Logo = string | ReactNode;\nexport type MenuItem = {\n id: string;\n disabled?: boolean;\n tooltip?: string;\n icon: IconCmp;\n};\nexport type OnMenuItemClick = (id: string) => void;\n\ntype Props = {\n logo?: Logo;\n menuItems: Array<MenuItem>;\n menuItemActive?: string;\n onMenuItemClick: OnMenuItemClick;\n searchBar?: SearchBarProps;\n};\n\nexport function Header({ logo, menuItems, menuItemActive, searchBar, onMenuItemClick }: Props): ReactElement {\n const [tooltip, setTooltip] = useState(\"\");\n const removeTooltip = (): void => setTooltip(\"\");\n\n const setTooltipValue = (item: MenuItem): void => {\n if (!item.disabled && item.tooltip) {\n setTooltip(item.tooltip);\n }\n };\n\n return (\n <header\n css={({ bg, layout }) => ({\n backgroundColor: bg.navbar,\n width: \"100%\",\n height: layout.headerHeight,\n minHeight: layout.headerHeight,\n display: \"flex\",\n margin: \"0 auto\"\n })}\n >\n <div\n css={({ layout, bg }) => ({\n width: layout.columnWidth,\n height: layout.headerHeight,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: bg.cardHighlight\n })}\n >\n {logo ? (\n <>\n {isString(logo) ? (\n <img\n src={logo}\n alt=\"Logo\"\n css={({ spacing }) => ({\n maxHeight: `calc(100% - ${spacing * 2}px)`,\n maxWidth: `calc(100% - ${spacing * 2}px)`\n })}\n draggable={false}\n />\n ) : (\n logo\n )}\n </>\n ) : null}\n </div>\n\n <div\n css={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n flex: 1\n }}\n >\n <div\n css={{\n flex: 1,\n display: \"flex\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n position: \"relative\"\n }}\n >\n <SearchBar {...searchBar} />\n {tooltip !== \"\" && (\n <div\n className=\"menu-tooltip\"\n css={({ bg }) => ({\n display: \"block\",\n position: \"absolute\",\n backgroundColor: bg.card,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n })}\n >\n <div\n css={({ colors }) => ({\n background: colors.focusTransparent10,\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\"\n })}\n >\n <Typography.Text color=\"primary\" css={{ paddingLeft: \"5%\" }}>\n {tooltip}\n </Typography.Text>\n </div>\n </div>\n )}\n </div>\n </div>\n\n <div\n css={({ layout, bg }) => ({\n display: \"flex\",\n width: layout.columnWidth,\n backgroundColor: bg.cardHighlight\n })}\n >\n {menuItems.map((item) => (\n <div key={item.id} onMouseEnter={() => setTooltipValue(item)} onMouseLeave={removeTooltip} css={{ flexGrow: 1 }}>\n <Tooltip content={item.tooltip} positions={[\"bottom\"]}>\n <HeaderButton icon={item.icon} disabled={item.disabled} active={item.id === menuItemActive} onClick={() => onMenuItemClick(item.id)} />\n </Tooltip>\n </div>\n ))}\n </div>\n </header>\n );\n}\n","import { ReactElement, ReactNode } from \"react\";\n\nimport { Column } from \"./components/Column\";\nimport { Header } from \"./components/Header\";\n\nimport type { Logo, MenuItem, OnMenuItemClick } from \"./components/Header\";\nimport { Scrollbars } from \"../Scrollbars\";\nimport { Props as SearchBarProps } from \"./components/SearchBar\";\n\ntype Props = {\n children: ReactNode;\n logo?: Logo;\n left: ReactNode;\n right: ReactNode;\n menuItems: Array<MenuItem>;\n menuItemActive: string;\n onMenuItemClick: OnMenuItemClick;\n searchBar?: SearchBarProps;\n};\n\nexport function Layout({ children, left, right, logo, menuItems, menuItemActive, searchBar, onMenuItemClick }: Props): ReactElement {\n return (\n <div\n css={{\n height: \"100vh\",\n maxHeight: \"100vh\",\n width: \"100vw\",\n display: \"flex\",\n margin: \"0 auto\",\n flexDirection: \"column\"\n }}\n >\n <Header logo={logo} menuItems={menuItems} menuItemActive={menuItemActive} onMenuItemClick={onMenuItemClick} searchBar={searchBar} />\n\n <section\n css={{\n display: \"flex\",\n flex: 1,\n justifyContent: \"center\",\n overflow: \"hidden\"\n }}\n >\n <Column>{left}</Column>\n <div\n id=\"central-canvas\"\n css={({ spacing, bg }) => ({\n flex: 1,\n overflow: \"auto\",\n boxSizing: \"border-box\",\n backgroundColor: bg.main,\n paddingLeft: spacing * 2.5,\n paddingRight: spacing * 2.5\n })}\n >\n <Scrollbars>\n <div\n css={({ spacing, layout }) => ({\n width: \"100%\",\n maxWidth: layout.canvasWidth,\n marginTop: spacing * 2.5,\n marginLeft: \"auto\",\n marginRight: \"auto\",\n marginBottom: 0,\n flexGrow: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\"\n })}\n >\n {children}\n </div>\n </Scrollbars>\n </div>\n\n <Column>{right}</Column>\n </section>\n </div>\n );\n}\n","import { ReactNode } from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport { createPortal } from \"react-dom\";\n\nimport { useEscapeKey } from \"../../hooks/useEscapeKey\";\n\nconst show = keyframes`\n 100% {\n opacity: 1;\n transform: none;\n }\n`;\n\nexport function Modal({ children, isVisible, zIndex, onRequestClose }: { children: ReactNode; isVisible: boolean; zIndex?: number; onRequestClose: () => void }): ReactNode {\n useEscapeKey(onRequestClose, isVisible);\n\n if (!isVisible) {\n return null;\n }\n\n return createPortal(\n <div\n css={{\n position: \"fixed\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"rgba(62, 87, 93, 0.6)\",\n backdropFilter: \"blur(4px)\",\n opacity: 0,\n animation: `${show} 300ms 50ms ease-out forwards`,\n zIndex\n }}\n >\n <div css={{ position: \"fixed\", top: 0, left: 0, bottom: 0, right: 0 }} onClick={onRequestClose} />\n <div\n css={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\"\n }}\n >\n {children}\n </div>\n </div>,\n document.body\n );\n}\n","import { ReactNode } from \"react\";\n\nexport type SuggestionItem = { text: string; onClick: () => void };\n\ntype Props = {\n suggestions: Array<SuggestionItem>;\n};\n\nexport function Suggestions({ suggestions }: Props): ReactNode {\n if (suggestions.length < 1) {\n return null;\n }\n\n return (\n <div\n css={({ spacing }) => ({\n marginTop: spacing * 2,\n display: \"grid\",\n gridTemplateColumns: \"auto auto auto\",\n gap: spacing * 2\n })}\n >\n {suggestions.map(({ text, onClick }) => (\n <button\n type=\"button\"\n onClick={onClick}\n key={text}\n css={({ bg, font, fontSize, spacing, neutral, radius }) => ({\n border: \"none\",\n cursor: \"pointer\",\n color: bg.card,\n fontFamily: font.main,\n fontSize: fontSize.s,\n padding: spacing * 1.5,\n backgroundColor: neutral.transparent10,\n borderRadius: radius.medium,\n transition: \"0.3s\",\n \"&:hover\": {\n backgroundColor: neutral.transparent30\n }\n })}\n >\n {text}\n </button>\n ))}\n </div>\n );\n}\n","import { ReactNode } from \"react\";\nimport { SuggestionItem } from \"../Suggestions\";\nimport { IconCmp } from \"../../../../types/IconCmp\";\nimport { Typography } from \"../../../Typography\";\n\nexport type QuickActionItem = SuggestionItem & { icon: IconCmp };\n\ntype Props = {\n items: Array<QuickActionItem>;\n};\n\nexport function QuickActions({ items }: Props): ReactNode {\n return (\n <div\n css={({ spacing }) => ({\n display: \"grid\",\n gridTemplateColumns: \"auto auto auto\",\n gap: spacing * 3\n })}\n >\n {items.map((item) => (\n <button\n key={item.text}\n onClick={item.onClick}\n css={({ spacing, radius, colors }) => ({\n border: \"none\",\n background: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: spacing * 1.5,\n padding: spacing * 2.75,\n borderRadius: radius.medium,\n backgroundColor: colors.whiteTransparent10,\n transition: \"0.3s\",\n \"&:hover\": {\n backgroundColor: colors.whiteTransparent30,\n cursor: \"pointer\"\n }\n })}\n >\n <item.icon color=\"overPicture\" size={40} />\n <Typography.Text\n color=\"overPicture\"\n size=\"h6\"\n css={{\n display: \"block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n width: 95\n }}\n >\n {item.text}\n </Typography.Text>\n </button>\n ))}\n </div>\n );\n}\n","import { ReactNode, ChangeEventHandler, useEffect, useRef, useCallback } from \"react\";\n\nimport { ActionProps } from \"../SearchInput\";\nimport { Modal } from \"../Modal\";\nimport { SearchInput } from \"../SearchInput\";\nimport { Typography } from \"../Typography\";\nimport { ArrowLeftSolid, ArrowRightSolid, ArrowCircleRightSolid } from \"../../icons\";\nimport { useToggle } from \"../../hooks/useToggle\";\n\nimport { Suggestions, SuggestionItem } from \"./components/Suggestions\";\nimport { QuickActions, QuickActionItem } from \"./components/QuickActions\";\n\ntype Props = {\n isVisible: boolean;\n placeholder?: string;\n maxHeight?: number;\n onRequestClose: () => void;\n secondaryAction?: ActionProps;\n onChange?: ChangeEventHandler<HTMLTextAreaElement>;\n onSubmit?: (value: string) => void;\n onPrimaryClick: () => void;\n disabledPrimary?: boolean;\n suggestions?: Array<SuggestionItem>;\n quickActions?: Array<QuickActionItem>;\n zIndex?: number;\n};\n\nexport function ModalSearch({\n isVisible,\n disabledPrimary,\n secondaryAction,\n placeholder,\n maxHeight,\n suggestions = [],\n quickActions = [],\n zIndex,\n onChange,\n onSubmit,\n onPrimaryClick,\n onRequestClose\n}: Props): ReactNode {\n const { off: hideQuickActions, toggle: toggleQuickActions, value: quickActionsIsVisible } = useToggle(false);\n\n const handleRequestClose = useCallback(() => {\n onRequestClose();\n hideQuickActions();\n }, [onRequestClose, hideQuickActions]);\n\n const inputRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (isVisible) {\n inputRef.current?.focus();\n }\n }, [isVisible]);\n\n return (\n <Modal isVisible={isVisible} zIndex={zIndex} onRequestClose={handleRequestClose}>\n <div css={{ width: 480 }}>\n {!quickActionsIsVisible ? (\n <>\n <SearchInput\n ref={inputRef}\n onSubmit={onSubmit}\n placeholder={placeholder}\n maxHeight={maxHeight}\n primaryAction={{\n icon: ArrowCircleRightSolid,\n onClick: onPrimaryClick,\n disabled: disabledPrimary\n }}\n secondaryAction={secondaryAction}\n onChange={onChange}\n css={{ width: 480 }}\n />\n <Suggestions suggestions={suggestions} />\n </>\n ) : (\n <QuickActions items={quickActions} />\n )}\n\n {quickActions.length > 0 && (\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: spacing * 4\n })}\n >\n <button\n css={({ spacing }) => ({\n border: \"none\",\n background: \"none\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n gap: spacing\n })}\n onClick={toggleQuickActions}\n >\n {quickActionsIsVisible && <ArrowLeftSolid color=\"overPicture\" size={20} />}\n <Typography.Text color=\"overPicture\" size=\"h6\">\n {quickActionsIsVisible ? \"Talk to Me\" : \"Quick Actions\"}\n </Typography.Text>\n {!quickActionsIsVisible && <ArrowRightSolid color=\"overPicture\" size={20} />}\n </button>\n </div>\n )}\n </div>\n </Modal>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Protocols } from \"../../../../icons\";\n\nimport { ImageIcon } from \"../../../ImageIcon\";\nimport { Typography } from \"../../../Typography\";\n\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\nexport type Props = {\n icon: IconCmp | string;\n name: string;\n category: string;\n selected?: boolean;\n onClick: () => void;\n};\n\nexport function Protocol({ icon, name, category, selected, onClick }: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n css={({ radius, bg, colors }) => ({\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: radius.medium,\n width: 300,\n backgroundColor: bg.main,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: selected ? colors.focus : \"transparent\"\n })}\n >\n <div\n css={({ spacing, bg, radius }) => ({\n padding: spacing,\n backgroundColor: bg.cardHighlight,\n alignSelf: \"stretch\",\n alignContent: \"center\",\n borderTopLeftRadius: radius.medium,\n borderBottomLeftRadius: radius.medium\n })}\n >\n <Protocols color=\"primary\" size={28} />\n </div>\n <div\n css={({ bg, spacing, radius }) => ({\n display: \"flex\",\n padding: spacing,\n gap: spacing,\n margin: spacing * 1.5,\n backgroundColor: bg.cardHighlight,\n borderRadius: radius.small,\n alignItems: \"center\",\n flexGrow: 1,\n justifyContent: \"space-between\"\n })}\n >\n <div>\n <Typography.Paragraph size=\"regular\">{name}</Typography.Paragraph>\n <Typography.Paragraph color=\"focusSecondary\" size=\"xs\">\n {category}\n </Typography.Paragraph>\n </div>\n <ImageIcon source={icon} size={32} iconColor=\"secondary\" />\n </div>\n </button>\n );\n}\n","import { ReactNode } from \"react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\n\nimport { Protocol } from \"./components/Protocol\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n items: Array<{\n icon: IconCmp | string;\n name: string;\n category: string;\n selected?: boolean;\n onClick: () => void;\n }>;\n};\n\nexport function OracleProtocolsSelection({ items }: Props): ReactNode {\n if (!items || items.length < 1) {\n return null;\n }\n\n return (\n <>\n <Spacer\n wrap\n distance={3}\n css={({ spacing }) => ({\n marginTop: spacing * 3,\n marginBottom: spacing * 3\n })}\n >\n {items.map((protocol) => (\n <Protocol key={protocol.name} name={protocol.name} category={protocol.category} selected={protocol.selected} onClick={protocol.onClick} icon={protocol.icon} />\n ))}\n </Spacer>\n\n {items.find((item) => item.selected) ? <Typography.Text color=\"focusSecondary\">Protocol Selected</Typography.Text> : null}\n </>\n );\n}\n","import { MouseEventHandler, ReactElement } from \"react\";\n\nimport { Tag } from \"../../../Tag\";\nimport { IconCmp } from \"../../../../types/IconCmp\";\n\ntype Props = {\n value: string;\n icon: IconCmp;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n};\n\nexport function TagButton({ value, icon, onClick }: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n css={({ radius, colors }) => ({\n border: \"none\",\n background: \"none\",\n margin: 0,\n padding: 0,\n borderRadius: radius.medium,\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: colors.focusTransparent10\n }\n })}\n >\n <Tag value={value} icon={icon} textColor=\"focusSecondary\" />\n </button>\n );\n}\n","import { MouseEventHandler, ReactElement, PropsWithChildren } from \"react\";\n\nimport { Spacer } from \"../Spacer\";\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { Assistant, Play, CheckCircle, Events } from \"../../icons\";\n\nimport { TagButton } from \"./components/TagButton\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n tagTitle: string;\n title: string;\n status?: \"complete\" | \"incomplete\";\n reactions?: Array<{\n icon: IconCmp;\n value: string;\n onClick: MouseEventHandler<HTMLButtonElement>;\n }>;\n} & PropsWithChildren;\n\nexport function OracleReply({ children, tagTitle, title, reactions, status }: Props): ReactElement {\n return (\n <div\n css={({ radius, bg, spacing }) => ({\n width: \"100%\",\n borderRadius: radius.medium,\n backgroundColor: bg.card,\n padding: spacing * 2,\n \"&:hover .reactions\": {\n opacity: 1.0\n }\n })}\n >\n <Spacer justifyContent=\"space-between\">\n <Tag value={tagTitle} icon={Play} bgColor=\"selected\" />\n <Spacer>\n {status ? <>{status === \"complete\" ? <Tag icon={CheckCircle} value=\"Complete\" textColor=\"success\" /> : <Tag icon={Events} value=\"Incomplete\" />}</> : null}\n <Assistant color=\"primary\" size={20} />\n </Spacer>\n </Spacer>\n\n <Typography.H6>{title}</Typography.H6>\n\n {children}\n\n {reactions && reactions.length > 0 ? (\n <Spacer\n justifyContent=\"start\"\n css={({ transition, spacing }) => ({\n opacity: 0.0,\n transition: transition.duration,\n marginTop: spacing\n })}\n className=\"reactions\"\n >\n {reactions.map((reaction) => (\n <TagButton key={reaction.value} value={reaction.value} icon={reaction.icon} onClick={reaction.onClick} />\n ))}\n </Spacer>\n ) : null}\n </div>\n );\n}\n","import { Card } from \"../Card\";\nimport { IconButton } from \"../IconButton\";\nimport { Spacer } from \"../Spacer\";\nimport { Typography } from \"../Typography\";\nimport { ArrowLeftSolid } from \"../../icons\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ReactElement } from \"react\";\nimport { ElementColor } from \"../../utils/colors\";\nimport { useUITheme } from \"../../hooks/useUITheme\";\n\ntype Props = {\n title: string;\n subtitle: string;\n icon?: IconCmp;\n iconColor?: ElementColor;\n onBack?: () => void;\n right?: {\n title: string;\n subtitle: string;\n imageIcon?: string;\n };\n};\n\nexport function PageTitle({ title, subtitle, icon: Icon, onBack, iconColor = \"primary\", right }: Props): ReactElement {\n const theme = useUITheme();\n return (\n <Card roundedBottom fullWidth css={({ spacing }) => ({ padding: spacing * 2 })}>\n <Spacer justifyContent=\"space-between\">\n <Spacer justifyContent=\"start\">\n {Icon && (\n <div\n css={({ radius, colors }) => ({\n borderRadius: radius.small / 2,\n width: theme.spacing * 5,\n height: theme.spacing * 5,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: colors.focusTransparent10\n })}\n >\n {onBack ? <IconButton icon={ArrowLeftSolid} size={theme.spacing * 3} onClick={onBack} /> : <>{Icon && <Icon color={iconColor} size={theme.spacing * 3} />}</>}\n </div>\n )}\n <Spacer vertical alignItems=\"start\" distance={0}>\n <Typography.Text size=\"regular\">{title}</Typography.Text>\n <Typography.Text size=\"xs\" color=\"focusSecondary\">\n {subtitle}\n </Typography.Text>\n </Spacer>\n </Spacer>\n {right && (\n <Spacer>\n <Spacer vertical distance={0} justifyContent=\"end\" alignItems=\"end\">\n <Typography.Text size=\"regular\">{right.title}</Typography.Text>\n <Typography.Text size=\"xs\">{right.subtitle}</Typography.Text>\n </Spacer>\n {right.imageIcon && <img src={right.imageIcon} alt={right.title} width={theme.spacing * 5} height={theme.spacing * 5} css={{ borderRadius: theme.spacing * 4 }} />}\n </Spacer>\n )}\n </Spacer>\n </Card>\n );\n}\n","import { ReactElement } from \"react\";\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { Props, Feature } from \"./types\";\n\nexport function PlanCard({ headerImage, title, subtitle, features, tagText, tagVariant = \"gray\", className }: Props): ReactElement {\n return (\n <div\n className={className}\n css={({ radius, spacing, colors }) => ({\n width: \"322px\",\n background: \"#F9F9F9\", // From Figma fill_88E55S\n borderRadius: radius.medium,\n border: tagVariant === \"blue\" ? `1px solid ${colors.focus}` : \"none\", // From Figma stroke_URH9DW\n overflow: \"hidden\",\n position: \"relative\",\n padding: `${spacing * 3}px ${spacing * 2.5}px`,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: spacing\n })}\n >\n {/* Tag in the top right corner */}\n <div\n css={{\n position: \"absolute\",\n top: \"16px\",\n right: \"16px\"\n }}\n >\n <Tag value={tagText} bgColor={tagVariant === \"blue\" ? \"primary\" : \"secondary\"} textColor={tagVariant === \"blue\" ? \"overPicture\" : \"textSecondary\"} />\n </div>\n\n {/* Header Image */}\n <div\n css={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginBottom: \"8px\"\n }}\n >\n {headerImage}\n </div>\n\n {/* Title */}\n <Typography.H4 color=\"focusSecondary\" align=\"center\">\n {title}\n </Typography.H4>\n\n {/* Subtitle */}\n <Typography.Text size=\"s\" align=\"center\" color=\"text\">\n {subtitle}\n </Typography.Text>\n\n {/* Divider */}\n <div\n css={{\n width: \"100%\",\n height: \"1px\",\n background: \"#FFFFFF\", // From Figma stroke_K78JLU\n margin: \"8px 0\"\n }}\n />\n\n {/* Features List */}\n <div\n css={{\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"10px\"\n }}\n >\n {features.map((feature: Feature, index: number) => (\n <FeatureItem key={index} feature={feature} />\n ))}\n </div>\n </div>\n );\n}\n\nfunction FeatureItem({ feature }: { feature: Feature }): ReactElement {\n const { icon: Icon, text, special } = feature;\n\n return (\n <div\n css={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\"\n }}\n >\n <div\n css={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }}\n >\n {/* Special features use the focus color (#00D2FF), normal ones are black */}\n <Icon size={16} color={special ? \"primary\" : \"text\"} />\n </div>\n <Typography.Text color=\"text\" size=\"s\" bold={special}>\n {text}\n </Typography.Text>\n </div>\n );\n}\n","import dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\n\ndayjs.extend(relativeTime);\n\nexport function humanizeNumber(value: number): string {\n if (value < 1000) {\n return `${value}`;\n } else if (value < 1000000) {\n return `${(value / 1000).toFixed(1).replace(\".0\", \"\")}k`;\n }\n return `${(value / 1000000).toFixed(1).replace(\".0\", \"\")}m`;\n}\n\nexport function humanizeTimestamp(timestamp: number): string {\n return dayjs(timestamp).fromNow();\n}\n","import { ReactElement } from \"react\";\n\nimport { Tag } from \"../../../Tag\";\n\nimport { Props } from \"./types\";\nimport { humanizeNumber } from \"../../utils\";\n\nexport function InteractionButton({ icon, active, total, onClick }: Props): ReactElement {\n return (\n <button\n onClick={onClick}\n css={{\n padding: 0,\n background: \"none\",\n border: \"none\",\n cursor: onClick ? \"pointer\" : undefined\n }}\n >\n <Tag\n value={humanizeNumber(total)}\n textColor={active ? \"primary\" : \"secondary\"}\n icon={icon}\n css={({ transition, colors }) => ({\n transition: transition.duration,\n \"&:hover\": {\n backgroundColor: colors.focusTransparent10\n }\n })}\n />\n </button>\n );\n}\n","import { ReactElement, useState } from \"react\";\n\nimport { HtmlRender } from \"../HtmlRender\";\nimport { Typography } from \"../Typography\";\nimport { ThumbsUpSolid, CommentsSolid } from \"../../icons\";\n\nimport { Props } from \"./types\";\nimport { InteractionButton } from \"./components/InteractionButton\";\nimport { humanizeTimestamp } from \"./utils\";\n\nconst POST_HEADER_HEIGHT = 32;\n\nexport function Post({ title, content, author, timestamp, likes, comments, selected, onClick }: Props): ReactElement {\n const [isHovered, setIsHovered] = useState(false);\n const showInteractions = isHovered || selected;\n\n return (\n <div\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n css={({ spacing, colors, radius, transition }) => ({\n display: \"flex\",\n gap: spacing * 2,\n padding: spacing * 2,\n maxWidth: 600,\n borderWidth: 1,\n borderColor: \"transparent\",\n borderStyle: \"solid\",\n borderRadius: radius.medium,\n transition: transition.duration,\n cursor: \"pointer\",\n \"&:hover, &[data-selected='true']\": {\n borderColor: colors.focus\n }\n })}\n data-selected={selected}\n >\n {author?.image ? (\n <img\n src={author?.image}\n draggable={false}\n css={({ radius }) => ({\n width: POST_HEADER_HEIGHT,\n height: radius.roundButtons,\n borderRadius: radius.roundButtons,\n objectFit: \"cover\"\n })}\n />\n ) : null}\n\n <div>\n <div\n css={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: spacing * 2,\n height: POST_HEADER_HEIGHT\n })}\n >\n <Typography.H4\n css={({ fontSize }) => ({\n margin: 0,\n fontSize: fontSize.regular\n })}\n >\n {title}\n </Typography.H4>\n\n {author?.name ? (\n <Typography.Text color=\"secondary\" size=\"s\">\n {author.name}\n </Typography.Text>\n ) : null}\n\n {timestamp ? (\n <Typography.Text color=\"secondary\" size=\"s\" css={{ \"&::first-letter\": { textTransform: \"capitalize\" } }}>\n {humanizeTimestamp(timestamp)}\n </Typography.Text>\n ) : null}\n </div>\n </div>\n\n <HtmlRender content={content} />\n\n {likes || comments ? (\n <div\n css={({ spacing, transition }) => ({\n display: \"flex\",\n gap: spacing,\n marginTop: spacing * 2,\n marginBottom: spacing,\n opacity: showInteractions ? 1 : 0,\n transition: transition.duration,\n pointerEvents: showInteractions ? \"auto\" : \"none\"\n })}\n >\n {likes ? <InteractionButton icon={ThumbsUpSolid} total={likes.total} active={likes.active} onClick={likes.onClick} /> : null}\n\n {comments ? <InteractionButton icon={CommentsSolid} total={comments.total} active={comments.active} onClick={comments.onClick} /> : null}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import { ReactElement, useCallback, useState, useEffect } from \"react\";\nimport { Avatar } from \"../Avatar\";\nimport { Typography } from \"../Typography\";\nimport { CopySolid } from \"../../icons\";\nimport { Tooltip } from \"../Tooltip\";\n\nimport { Props } from \"./types\";\n\n// Helper function to truncate the middle of a string\nfunction truncateMiddle(text: string, startChars = 13, endChars = 5): string {\n if (text.length <= startChars + endChars) {\n return text;\n }\n return `${text.substring(0, startChars)}...${text.substring(text.length - endChars)}`;\n}\n\nexport function ProfileCard({ name, did, image, className }: Props): ReactElement {\n const [isHovered, setIsHovered] = useState(false);\n const [showCopyTooltip, setShowCopyTooltip] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const handleCopyDid = useCallback(() => {\n navigator.clipboard.writeText(did);\n setShowCopyTooltip(true);\n }, [did]);\n\n // Automatically hide the tooltip after 2 seconds\n useEffect(() => {\n if (showCopyTooltip) {\n const timer = setTimeout(() => {\n setShowCopyTooltip(false);\n }, 2000);\n\n return (): void => clearTimeout(timer);\n }\n }, [showCopyTooltip]);\n\n const truncatedDid = truncateMiddle(did);\n\n return (\n <div\n className={className}\n css={({ bg, radius, spacing }) => ({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: spacing * 4,\n backgroundColor: bg.card,\n padding: spacing * 4,\n borderRadius: radius.medium,\n boxSizing: \"border-box\",\n width: \"100%\"\n })}\n >\n <Avatar src={image} did={did} size={100} />\n\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: spacing\n })}\n >\n <Typography.Text\n css={({ text, font }) => ({\n fontFamily: font.main,\n fontSize: \"32px\",\n color: name ? text.main : text.secondary,\n margin: 0,\n lineHeight: 1.2\n })}\n >\n {name || \"Not Set\"}\n </Typography.Text>\n\n <Tooltip content={showCopyTooltip ? \"DID copied to clipboard\" : undefined}>\n <div\n onClick={handleCopyDid}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n css={({ colors, radius }) => ({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n padding: \"2px 8px\",\n borderRadius: radius.small,\n backgroundColor: isHovered ? colors.focusTransparent10 : undefined,\n cursor: \"pointer\",\n gap: 4\n })}\n >\n <Typography.Text\n size=\"s\"\n css={({ text, colors }) => ({\n color: isHovered ? colors.focusSecondary : text.secondary,\n margin: 0\n })}\n >\n {truncatedDid}\n </Typography.Text>\n\n <CopySolid size={14} color={isHovered ? \"primary\" : \"secondary\"} />\n </div>\n </Tooltip>\n </div>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\nimport { PopoverPosition } from \"react-tiny-popover\";\n\nimport { Avatar } from \"../Avatar\";\nimport { MoreMenu } from \"../MoreMenu\";\nimport { Spacer } from \"../Spacer\";\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { Props as PropsItem } from \"../MoreMenu/components/Item/types\";\n\ntype Props = {\n label: string;\n avatar?: string;\n tag?: string | number;\n menuItems?: Array<PropsItem>;\n menuPosition?: PopoverPosition | PopoverPosition[] | undefined;\n};\n\nexport function ProfileMenu({ label, avatar, tag, menuItems, menuPosition }: Props): ReactElement {\n return (\n <div\n css={({ spacing, radius, bg }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n width: 300,\n height: 72,\n paddingLeft: spacing * 2,\n paddingRight: spacing * 2,\n borderRadius: radius.medium,\n backgroundColor: bg.card\n })}\n >\n <Spacer distance={0.5}>\n {avatar && <Avatar size={40} src={avatar} />}\n <Typography.Text>{label}</Typography.Text>\n {tag !== undefined ? <Tag value={tag} small textColor=\"secondary\" bgColor=\"selected\" /> : null}\n </Spacer>\n {menuItems && <MoreMenu controlColor=\"secondary\" items={menuItems} positions={menuPosition} />}\n </div>\n );\n}\n","import { ReactNode, useEffect, useState } from \"react\";\n\nimport dayjs from \"dayjs\";\n\nimport { Hourglass } from \"../../../../icons\";\nimport { Tag } from \"../../../Tag\";\n\ntype Props = {\n dateString: string;\n};\n\ntype Reference = \"future\" | \"preset\" | \"past\";\ntype RemainingTime = { reference: Reference; timeRef: string };\n\nfunction getRemainingTime(timeStr: string): RemainingTime {\n let reference: Reference = \"future\";\n const target = dayjs(timeStr);\n const now = dayjs();\n\n const days = Math.abs(target.diff(now, \"day\"));\n let hours = Math.abs(target.diff(now, \"hour\"));\n let minutes = Math.abs(target.diff(now, \"minute\"));\n\n if (days === 0 && hours === 0 && minutes === 0) {\n return { reference: \"preset\", timeRef: \"Now\" };\n }\n\n const second = target.diff(now, \"second\");\n if (second < 0) {\n reference = \"past\";\n }\n\n if (hours >= 24) {\n hours = hours % 24;\n }\n\n if (minutes >= 60) {\n minutes = minutes % 60;\n }\n\n let ret = \"\";\n\n if (days > 0) {\n ret += `${days}d `;\n }\n\n if (hours > 0) {\n ret += `${hours}h `;\n }\n\n if (minutes > 0) {\n ret += `${minutes}min`;\n }\n\n return { reference, timeRef: ret };\n}\n\nexport function RemainingTime({ dateString }: Props): ReactNode {\n const [remainingTime, setRemainingTime] = useState<RemainingTime | null>(null);\n\n useEffect(\n function calculateTime() {\n setRemainingTime(getRemainingTime(dateString));\n\n const intervalId = setInterval(() => {\n setRemainingTime(getRemainingTime(dateString));\n }, 1000);\n\n return (): void => clearInterval(intervalId);\n },\n [dateString]\n );\n\n if (!remainingTime) {\n return null;\n }\n\n const value = remainingTime.timeRef + (remainingTime.reference === \"past\" ? \" ago\" : \"\");\n\n const color = remainingTime.reference === \"past\" ? \"error\" : remainingTime.reference === \"preset\" ? \"success\" : \"primary\";\n\n return <Tag value={value} bgColor={color} icon={Hourglass} />;\n}\n","import { ReactElement } from \"react\";\n\nimport { RemainingTime } from \"./components/RemainingTime\";\n\nimport { Button } from \"../Button\";\nimport { Chart } from \"../Chart\";\nimport { Tag } from \"../Tag\";\nimport { Typography } from \"../Typography\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\ntype Props = {\n title: string;\n id: string;\n endingTime: Date;\n active?: boolean;\n selected?: boolean;\n chartSeries: Array<number>;\n chartLabels: Array<string>;\n chartSummary?: {\n value: number;\n description: string;\n };\n button: {\n value: string;\n icon?: IconCmp;\n disabled?: boolean;\n onClick: () => void;\n };\n};\n\nexport function ProposalCard({ id, endingTime, title, button, active, selected, chartSeries, chartLabels, chartSummary }: Props): ReactElement {\n const timeString = endingTime.toISOString();\n\n return (\n <div\n css={({ radius, bg, spacing, colors }) => ({\n borderRadius: radius.small,\n backgroundColor: selected ? colors.focusTransparent10 : bg.cardHighlight,\n padding: spacing * 3,\n gap: spacing * 3,\n maxWidth: 517,\n minHeight: 202,\n boxSizing: \"border-box\",\n display: \"flex\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: active ? colors.focus : \"transparent\"\n })}\n >\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n flex: 1,\n gap: spacing * 2\n })}\n >\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n gap: spacing,\n justifyContent: \"space-between\"\n })}\n >\n <Tag value={id} />\n <RemainingTime dateString={timeString} />\n </div>\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n gap: spacing * 2\n })}\n >\n <div\n css={{\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\"\n }}\n >\n <Typography.Text size=\"regular\">{title}</Typography.Text>\n </div>\n <div>\n <Button value={button.value} icon={button.icon} onClick={button.onClick} disabled={button.disabled} secondary />\n </div>\n </div>\n </div>\n <div\n css={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }}\n >\n <Chart\n options={{\n chart: { type: \"donut\", width: 154, height: 154 },\n series: chartSeries,\n labels: chartLabels,\n legend: { show: false },\n dataLabels: { enabled: false },\n plotOptions: {\n pie: {\n donut: {\n size: \"80%\"\n }\n }\n }\n }}\n />\n {chartSummary && (\n <div\n css={{\n position: \"absolute\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\"\n }}\n >\n <Typography.Text size=\"h5\">{chartSummary.value}%</Typography.Text>\n <Typography.Text size=\"xs\" color=\"secondary\">\n {chartSummary.description}\n </Typography.Text>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Typography } from \"../../../Typography\";\n\ntype Props = {\n title: string;\n subtitle: string;\n align?: \"left\" | \"right\";\n};\n\nexport function ColumnText({ title, subtitle, align = \"left\" }: Props): ReactElement {\n return (\n <div\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: align === \"left\" ? \"flex-start\" : \"flex-end\"\n }}\n >\n <Typography.Text>{title}</Typography.Text>\n <Typography.Text color=\"secondary\" size=\"xs\">\n {subtitle}\n </Typography.Text>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { ImageIcon } from \"../ImageIcon\";\nimport { Act } from \"../../icons\";\n\nimport { ColumnText } from \"./components/ColumnText\";\n\ntype Props = {\n icon: string | IconCmp;\n leftText: string;\n leftDescription: string;\n centerText: string;\n centerDescription: string;\n rightText: string;\n rightDescription: string;\n onClick?: () => void;\n};\n\nexport function ServiceOffering({ icon, leftText, leftDescription, centerText, centerDescription, rightText, rightDescription, onClick }: Props): ReactElement {\n return (\n <div\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick}\n css={({ spacing, bg, radius, colors }) => ({\n cursor: onClick ? \"pointer\" : undefined,\n display: \"flex\",\n width: \"100%\",\n gap: spacing * 1.5,\n backgroundColor: bg.card,\n borderRadius: radius.medium,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n \"&:hover, &:focus\": {\n borderColor: colors.focus,\n outline: \"none\"\n },\n \"&:focus > div:first-of-type\": {\n backgroundColor: colors.focusTransparent10\n }\n })}\n >\n <div\n css={({ bg, radius, spacing }) => ({\n backgroundColor: bg.cardHighlight,\n borderTopLeftRadius: radius.medium,\n borderBottomLeftRadius: radius.medium,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: spacing\n })}\n >\n <Act color=\"primary\" size={28} />\n </div>\n <div\n css={({ bg, spacing, radius }) => ({\n backgroundColor: bg.cardHighlight,\n padding: spacing,\n borderRadius: radius.small,\n marginTop: spacing * 1.5,\n marginBottom: spacing * 1.5,\n marginLeft: spacing * 2,\n marginRight: spacing * 2,\n flexGrow: 1,\n display: \"flex\",\n justifyContent: \"space-between\"\n })}\n >\n <div\n css={({ spacing }) => ({\n display: \"flex\",\n gap: spacing,\n alignItems: \"center\"\n })}\n >\n <ImageIcon size={32} source={icon} />\n <ColumnText title={leftText} subtitle={leftDescription} />\n </div>\n <ColumnText title={centerText} subtitle={centerDescription} />\n <ColumnText title={rightText} subtitle={rightDescription} align=\"right\" />\n </div>\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { InputWrapper } from \"../InputWrapper\";\n\nimport { Props } from \"./types\";\n\nexport function Select({ label, disabled, block, value, isValid, helpText, options, defaultValue, append, placeholder, onChange, onFocus, onBlur }: Props): ReactElement {\n return (\n <InputWrapper\n label={label}\n disabled={disabled}\n block={block}\n isValid={isValid}\n helpText={helpText}\n append={append}\n showArrow\n render={({ id, className }) => (\n <select id={id} className={className} disabled={disabled} value={value} defaultValue={defaultValue} onChange={onChange} onFocus={onFocus} onBlur={onBlur}>\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((option) => (\n <option key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))}\n </select>\n )}\n />\n );\n}\n","import { ReactElement, useState, useCallback } from \"react\";\n\nimport { Typography } from \"../Typography\";\nimport { useEventSubscribe, Data } from \"../../hooks/useEventSubscribe\";\n\nexport function SomeComponent(): ReactElement {\n const [receivedData, setReceivedData] = useState<Array<Data[\"payload\"]>>([]);\n\n // A good practice for this case, is memoize the callback, to avoid unsubscribe and subscribe on every render\n // Similar to this usage https://reactnavigation.org/docs/use-focus-effect/\n const onRecieveData = useCallback((data: Data): void => {\n setReceivedData((state) => [...state, data.payload]);\n }, []);\n\n useEventSubscribe(onRecieveData);\n\n return (\n <div\n css={({ spacing, colors }) => ({\n marginTop: spacing * 2,\n padding: spacing * 2,\n borderColor: colors.focus,\n borderWidth: 1,\n boxSizing: \"border-box\",\n overflow: \"auto\"\n })}\n >\n {receivedData.length > 0 ? (\n <>\n <Typography.H5>Payloads ({receivedData.length})</Typography.H5>\n <pre>{JSON.stringify(receivedData, null, 2)}</pre>\n </>\n ) : (\n <p>Target Component</p>\n )}\n </div>\n );\n}\n","import { ReactElement, useCallback } from \"react\";\n\nimport { Props } from \"./types\";\n\nexport function Switch({ checked, disabled, onChange }: Props): ReactElement {\n const handleChange = useCallback(() => {\n if (onChange) {\n onChange(!checked);\n }\n }, [onChange, checked]);\n\n return (\n <label\n css={({ colors }) => ({\n position: \"relative\",\n display: \"inline-block\",\n width: 48,\n height: 24,\n borderRadius: 34,\n \"&,& input:checked:disabled ~ span\": disabled\n ? {\n cursor: \"not-allowed\",\n backgroundColor: colors.focusTransparent50\n }\n : {}\n })}\n >\n <input\n type=\"checkbox\"\n css={({ colors }) => ({\n opacity: 0,\n width: 0,\n height: 0,\n \"&:checked + span\": {\n backgroundColor: colors.focus\n },\n \"&:checked + span:before\": {\n transform: \"translateX(26px)\"\n },\n \"&:focus + span\": {\n boxShadow: `0 0 1px ${colors.focus}`\n }\n })}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n />\n <span\n css={({ text, transition, neutral }) => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: text.secondary,\n transition: transition.duration,\n borderRadius: 34,\n \"&:before\": {\n position: \"absolute\",\n content: '\"\"',\n height: 24,\n width: 24,\n left: 0,\n bottom: 0,\n backgroundColor: neutral.lightGray,\n transition: transition.duration,\n borderRadius: \"50%\"\n }\n })}\n />\n </label>\n );\n}\n","import { ReactElement, useEffect, useRef, useState } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nimport { Props } from \"./types\";\n\nexport function SwitchText({ optionOne, optionTwo, activeOption, onOptionClick, className, disabled = false }: Props): ReactElement {\n const theme = useTheme();\n const option1Ref = useRef<HTMLDivElement>(null);\n const option2Ref = useRef<HTMLDivElement>(null);\n const [maxWidth, setMaxWidth] = useState(0);\n\n // Calculate the max width based on the longer text option\n useEffect(() => {\n if (option1Ref.current && option2Ref.current) {\n const width1 = option1Ref.current.getBoundingClientRect().width;\n const width2 = option2Ref.current.getBoundingClientRect().width;\n const calculatedMaxWidth = Math.max(width1, width2);\n setMaxWidth(calculatedMaxWidth + 16); // Add padding\n }\n }, [optionOne, optionTwo]);\n\n return (\n <div\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n css={{\n position: \"relative\",\n display: \"flex\",\n background: theme.bg.cell,\n borderRadius: theme.radius.medium,\n padding: 2,\n width: \"fit-content\",\n opacity: disabled ? 0.5 : 1,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n border: `1px solid ${theme.bg.componentPanel}`\n }}\n className={className}\n >\n {/* Active background that moves */}\n <div\n css={{\n position: \"absolute\",\n top: 2,\n left: 2,\n bottom: 2,\n width: maxWidth > 0 ? maxWidth : \"80px\", // Default width until measured\n background: \"rgba(0, 210, 255, 0.2)\",\n borderRadius: theme.radius.big,\n zIndex: 0,\n transform: `translateX(${activeOption === 1 ? 0 : maxWidth}px)`,\n transition: \"transform 0.3s ease-in-out\"\n }}\n />\n\n {/* Option One */}\n <div\n ref={option1Ref}\n role=\"tab\"\n tabIndex={0}\n aria-selected={activeOption === 1}\n onClick={() => !disabled && onOptionClick(1)}\n css={{\n position: \"relative\",\n zIndex: 1,\n padding: \"2px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: maxWidth > 0 ? maxWidth : \"auto\",\n height: 28,\n boxSizing: \"border-box\"\n }}\n >\n <span\n css={{\n fontFamily: theme.font.main,\n fontSize: theme.fontSize.s,\n whiteSpace: \"nowrap\",\n color: activeOption === 1 ? theme.text.main : theme.colors.focusSecondary\n }}\n >\n {optionOne}\n </span>\n </div>\n\n {/* Option Two */}\n <div\n ref={option2Ref}\n role=\"tab\"\n tabIndex={0}\n aria-selected={activeOption === 2}\n onClick={() => !disabled && onOptionClick(2)}\n css={{\n position: \"relative\",\n zIndex: 1,\n padding: \"2px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: maxWidth > 0 ? maxWidth : \"auto\",\n height: 28,\n boxSizing: \"border-box\"\n }}\n >\n <span\n css={{\n fontFamily: theme.font.main,\n fontSize: theme.fontSize.s,\n whiteSpace: \"nowrap\",\n color: activeOption === 2 ? theme.text.main : theme.colors.focusSecondary\n }}\n >\n {optionTwo}\n </span>\n </div>\n </div>\n );\n}\n","import { cx } from \"@emotion/css\";\nimport { ReactElement, PropsWithChildren } from \"react\";\n\ntype Props = PropsWithChildren<{\n withImage?: boolean;\n withDualImage?: boolean;\n isFirstColumn?: boolean;\n isLastColumn?: boolean;\n compact?: boolean;\n shrink?: boolean;\n}>;\n\nexport function Cell({ children, withImage, withDualImage, isFirstColumn, isLastColumn, compact, shrink }: Props): ReactElement {\n return (\n <td\n className={cx({\n \"with-image\": withImage,\n \"with-dual-image\": withDualImage,\n \"first-column\": isFirstColumn,\n \"last-column\": isLastColumn,\n compact,\n shrink\n })}\n css={({ spacing }) => ({\n paddingLeft: 0,\n paddingRight: 0,\n borderTop: \"1px solid var(--mantine-color-neutralColor-6)\",\n borderBottom: \"1px solid var(--mantine-color-neutralColor-6)\",\n paddingTop: spacing * 1.5,\n paddingBottom: spacing * 1.5,\n \"&.compact\": {\n paddingTop: 0,\n paddingBottom: 0\n },\n \"&:last-child\": {\n borderRight: \"1px solid var(--mantine-color-neutralColor-6)\",\n paddingRight: spacing * 2,\n \"&.compact\": {\n paddingRight: 0\n },\n \"&,& > div\": {\n borderTopRightRadius: spacing * 2,\n borderBottomRightRadius: spacing * 2\n },\n \"&.compact,&.compact > div\": {\n borderTopRightRadius: spacing,\n borderBottomRightRadius: spacing\n }\n },\n \"&.with-image\": {\n width: spacing * 5\n },\n \"&.with-dual-image\": {\n width: spacing * 7\n },\n \"&.first-column\": {\n borderTopLeftRadius: spacing * 2,\n borderBottomLeftRadius: spacing * 2,\n paddingLeft: spacing * 2,\n \"&.compact\": {\n paddingLeft: 0,\n \"&,& > div\": {\n borderTopLeftRadius: spacing,\n borderBottomLeftRadius: spacing\n }\n }\n },\n \"&.shrink\": {\n width: \"0%\"\n }\n })}\n >\n {children}\n </td>\n );\n}\n","import { cx } from \"@emotion/css\";\nimport { ReactElement, PropsWithChildren } from \"react\";\n\ntype Props = PropsWithChildren<{\n withImage?: boolean;\n withDualImage?: boolean;\n isFirstColumn?: boolean;\n isLastColumn?: boolean;\n emulateCheckboxArea?: boolean;\n verticalAlign?: boolean;\n lastColumnAlign?: \"left\" | \"right\";\n}>;\n\nexport function CellContent({\n children,\n withImage,\n withDualImage,\n isFirstColumn,\n isLastColumn,\n emulateCheckboxArea,\n verticalAlign,\n lastColumnAlign = \"right\"\n}: Props): ReactElement {\n return (\n <div\n className={cx(\"cell-content\", {\n \"with-image\": withImage,\n \"with-dual-image\": withDualImage,\n \"is-first-column\": isFirstColumn,\n \"is-last-column\": isLastColumn,\n \"emulate-checkbox-area\": emulateCheckboxArea,\n \"vertical-align\": verticalAlign\n })}\n css={({ spacing }) => ({\n background: \"var(--mantine-color-neutralColor-6)\",\n height: 54,\n padding: spacing,\n display: \"flex\",\n flexDirection: \"row\",\n boxSizing: \"border-box\",\n justifyContent: \"start\",\n \"&.with-image\": {\n paddingLeft: 8,\n paddingRight: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 40\n },\n \"&.with-dual-image\": {\n paddingLeft: 8,\n paddingRight: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 56\n },\n \"&.is-first-column\": {\n borderTopLeftRadius: spacing * 2,\n borderBottomLeftRadius: spacing * 2\n },\n \"&.is-last-column\": {\n justifyContent: isLastColumn && lastColumnAlign === \"left\" ? \"start\" : \"end\"\n },\n \"&.emulate-checkbox-area\": {\n paddingRight: 48\n },\n \"&.vertical-align\": {\n alignItems: \"center\"\n }\n })}\n >\n {children}\n </div>\n );\n}\n","import { IconCmp } from \"../../types/IconCmp\";\nimport { ReactElement } from \"react\";\n\ntype Props = {\n icon: IconCmp | false;\n};\n\nexport default function IconRowCmp({ icon: Icon }: Props): ReactElement {\n return (\n <div\n css={({ spacing }) => ({\n borderTopLeftRadius: spacing * 2,\n borderBottomLeftRadius: spacing * 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 46\n })}\n >\n {Icon && (\n <div>\n <Icon size={28} color=\"primary\" />\n </div>\n )}\n </div>\n );\n}\n","import { PropsWithChildren, ReactElement } from \"react\";\n\nexport function ImageContent({ children }: PropsWithChildren): ReactElement {\n return (\n <div\n css={({ radius, colors }) => ({\n width: 32,\n height: 32,\n borderRadius: radius.small / 2,\n background: colors.focusTransparent10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n })}\n >\n {children}\n </div>\n );\n}\n","import { ReactElement } from \"react\";\n\ntype Props = {\n primaryImage: string;\n secondaryImage: string;\n altText?: string;\n};\n\nexport function DualImageContent({ primaryImage, secondaryImage, altText = \"Item icons\" }: Props): ReactElement {\n return (\n <div\n css={() => ({\n width: 56,\n height: 32,\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\"\n })}\n >\n {/* Primary image (in front) */}\n <div\n css={() => ({\n position: \"absolute\",\n left: 0,\n width: 32,\n height: 32,\n zIndex: 2\n })}\n >\n <img\n src={primaryImage}\n width={32}\n height={32}\n draggable={false}\n alt={`Primary ${altText}`}\n css={{\n borderRadius: \"50%\",\n border: \"1px solid white\",\n boxSizing: \"border-box\"\n }}\n />\n </div>\n\n {/* Secondary image (behind) */}\n <div\n css={() => ({\n position: \"absolute\",\n left: 16,\n width: 32,\n height: 32,\n zIndex: 1\n })}\n >\n <img\n src={secondaryImage}\n width={32}\n height={32}\n draggable={false}\n alt={`Secondary ${altText}`}\n css={{\n borderRadius: \"50%\",\n border: \"1px solid white\",\n boxSizing: \"border-box\"\n }}\n />\n </div>\n </div>\n );\n}\n","import { ReactElement, ReactNode, useMemo, useState } from \"react\";\nimport { Typography } from \"../Typography\";\nimport { ArrowDownSolid, ArrowUpSolid } from \"../../icons\";\nimport { Loader } from \"../Loader\";\nimport { cx } from \"@emotion/css\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Cell } from \"./Cell\";\nimport { CellContent } from \"./CellContent\";\nimport IconRowCmp from \"./IconRow\";\nimport { ImageContent } from \"./ImageContent\";\nimport { DualImageContent } from \"./DualImageContent\";\nimport { Tag } from \"../Tag\";\n\ntype Sort = {\n direction: \"ASC\" | \"DESC\";\n field: string;\n};\n\ntype Key = string | number;\n\ntype Column<T> = {\n field: string;\n title?: string;\n subtitle?: string;\n tag?: string;\n sortable?: boolean;\n render?: (row: T) => ReactNode;\n};\n\ntype DualImage = {\n primary: string;\n secondary: string;\n};\n\n// Add type guard function\nconst isDualImage = (obj: unknown): obj is DualImage => {\n return typeof obj === \"object\" && obj !== null && \"primary\" in obj && \"secondary\" in obj;\n};\n\ntype RowWithId = {\n id: Key;\n [key: string]: ReactNode | IconCmp | DualImage;\n};\n\ntype Props<T extends RowWithId> = {\n columns: Column<T>[];\n IconRow: IconCmp | false;\n rowImageColumn?: string;\n data?: T[];\n selectedKeys?: Array<Key>;\n compact?: boolean;\n showCheckboxes?: boolean;\n keyExtractor?: (item: T) => Key;\n onRowClick?: (id: Key, row: T) => void;\n onChangeSelectedKeys?: (items: Array<Key>) => void;\n dualImageMode?: boolean;\n lastColumnAlign?: \"left\" | \"right\";\n};\n\nexport function TableList<T extends RowWithId>({\n columns,\n IconRow,\n rowImageColumn,\n data,\n selectedKeys = [],\n compact,\n showCheckboxes,\n keyExtractor = (item): string | number => item.id,\n onRowClick,\n onChangeSelectedKeys,\n dualImageMode = false,\n lastColumnAlign = \"right\"\n}: Props<T>): ReactElement {\n const [sort, setSort] = useState<Sort | undefined>(undefined);\n\n const sortedData = useMemo(() => {\n if (!sort || !Array.isArray(data)) {\n return data;\n }\n return data?.sort((a, b) => {\n const aValue = a[sort.field as keyof T];\n const bValue = b[sort.field as keyof T];\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return sort.direction === \"ASC\" ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);\n }\n\n if (typeof aValue === \"number\" && typeof bValue === \"number\") {\n return sort.direction === \"ASC\" ? aValue - bValue : bValue - aValue;\n }\n\n return 0;\n });\n }, [data, sort]);\n\n const handleToggleAll = (value: boolean): void => {\n if (value) {\n onChangeSelectedKeys?.(data?.map(keyExtractor) as Key[]);\n } else {\n onChangeSelectedKeys?.([]);\n }\n };\n\n return (\n <div\n css={{\n width: \"100%\",\n overflowX: \"auto\"\n }}\n >\n <table\n css={({ spacing }) => ({\n width: \"100%\",\n marginTop: 20,\n borderCollapse: \"separate\",\n borderSpacing: `0 ${spacing}px`\n })}\n >\n <thead>\n <tr>\n {IconRow !== false && (\n <th\n css={({ spacing }) => ({\n width: spacing * 5.75 + spacing * 2,\n padding: 0\n })}\n />\n )}\n {rowImageColumn && (\n <th\n css={({ spacing }) => ({\n width: dualImageMode ? spacing * 7 : spacing * 5,\n padding: 0\n })}\n />\n )}\n {columns.map((column, index) => {\n const isFirstContentColumn = index === 0;\n const isLastColumn = index === columns.length - 1;\n\n return (\n <th\n key={column.field}\n className={cx({\n compact: compact,\n first: isFirstContentColumn,\n last: isLastColumn,\n \"emulate-checkbox-area\": !showCheckboxes && isLastColumn\n })}\n css={({ spacing }) => ({\n padding: spacing,\n height: 38,\n textAlign: \"left\",\n \"&.first\": {\n paddingLeft: rowImageColumn ? spacing : spacing * 3,\n \"&.compact\": {\n paddingLeft: spacing\n }\n },\n \"&.last\": {\n textAlign: lastColumnAlign,\n paddingRight: spacing * 2,\n \"&.emulate-checkbox-area\": {\n paddingRight: 64\n }\n },\n \"&.compact\": {\n paddingRight: spacing,\n \"&.emulate-checkbox-area\": {\n paddingRight: 48\n }\n }\n })}\n >\n {column.sortable ? (\n <>\n {((): ReactNode => {\n const isSorted = sort?.field === column.field;\n const color = isSorted ? \"primary\" : \"focusSecondary\";\n return (\n <button\n css={({ spacing }) => ({\n border: \"none\",\n background: \"none\",\n display: \"inline-flex\",\n gap: spacing / 2,\n alignItems: \"center\",\n padding: 0,\n margin: 0,\n width: \"100%\",\n justifyContent: \"inherit\",\n textAlign: \"inherit\",\n \"&:hover\": {\n opacity: 0.8\n }\n })}\n onClick={() =>\n setSort({\n field: column.field,\n direction: sort?.direction === \"ASC\" ? \"DESC\" : \"ASC\"\n })\n }\n >\n {column.title !== undefined && (\n <Typography.Text color={color} size=\"s\" semiBold>\n {column.title}\n </Typography.Text>\n )}\n <div\n css={({ spacing }) => ({\n width: spacing * 2,\n height: spacing * 2\n })}\n >\n {isSorted && sort?.direction === \"ASC\" && <ArrowUpSolid color={color} size={16} />}\n {isSorted && sort?.direction === \"DESC\" && <ArrowDownSolid color={color} size={16} />}\n </div>\n </button>\n );\n })()}\n </>\n ) : (\n <Typography.Text color=\"focusSecondary\" size=\"s\" semiBold>\n {column.title}\n </Typography.Text>\n )}\n </th>\n );\n })}\n {showCheckboxes && (\n <th\n className={cx({ compact: compact })}\n css={({ spacing }) => ({\n width: 0,\n paddingRight: spacing * 2,\n \"&.compact\": {\n paddingRight: spacing / 2\n }\n })}\n >\n {onChangeSelectedKeys && <Checkbox checked={selectedKeys.length === data?.length} onChange={handleToggleAll} />}\n </th>\n )}\n </tr>\n </thead>\n <tbody>\n {!Array.isArray(sortedData) ? (\n <tr>\n <td\n css={({ spacing }) => ({\n textAlign: \"center\",\n padding: spacing * 2.5\n })}\n colSpan={columns.length}\n >\n <Loader />\n </td>\n </tr>\n ) : (\n <>\n {sortedData.map((row) => {\n const key = keyExtractor(row);\n const isRowSelected = selectedKeys.includes(key);\n\n return (\n <tr\n key={key}\n onClick={() => onRowClick?.(key, row)}\n className={cx({\n selected: isRowSelected,\n clickable: !!onRowClick\n })}\n css={() => ({\n \"& > td\": {\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: \"transparent\",\n backgroundColor: isRowSelected ? \"var(--mantine-color-neutralColor-5)\" : \"var(--mantine-color-neutralColor-3)\",\n color: \"var(--mantine-color-neutralColor-8)\"\n },\n \"& .subtitle\": {\n opacity: 0.0,\n height: 0,\n transition: \"opacity 0.2s ease, height 0.2s ease\"\n },\n \"&:hover .subtitle\": {\n opacity: 1.0,\n height: 18\n },\n \"&:hover .tag-container\": {\n opacity: 1.0\n },\n \"&.selected\": {\n td: {\n borderTopColor: \"var(--mantine-color-accent-5)\",\n borderBottomColor: \"var(--mantine-color-accent-5)\",\n \"&:first-of-type\": {\n borderLeftColor: \"var(--mantine-color-accent-5)\"\n },\n \"&:last-of-type\": {\n borderRightColor: \"var(--mantine-color-accent-5)\"\n }\n }\n },\n \"&.clickable\": {\n cursor: \"pointer\",\n transition: \"background-color 0.2s ease\",\n \"&:hover\": {\n td: {\n backgroundColor: \"var(--mantine-color-neutralColor-1)\"\n }\n }\n }\n })}\n >\n {IconRow !== false && (\n <td\n css={({ spacing }) => ({\n background: isRowSelected ? \"var(--mantine-color-neutralColor-5)\" : \"var(--mantine-color-neutralColor-3)\",\n borderTopLeftRadius: spacing * 2,\n borderBottomLeftRadius: spacing * 2,\n borderTop: \"1px solid var(--mantine-color-neutralColor-6)\",\n borderBottom: \"1px solid var(--mantine-color-neutralColor-6)\",\n borderLeft: \"1px solid var(--mantine-color-neutralColor-6)\",\n position: \"relative\",\n width: spacing * 5.75 + spacing * 2\n })}\n >\n <IconRowCmp icon={IconRow} />\n </td>\n )}\n {((): ReactNode => {\n if (!rowImageColumn) {\n return null;\n }\n\n const image = row[rowImageColumn as keyof T];\n const isFirstColumn = IconRow === false;\n const cellProps = {\n compact,\n withImage: !dualImageMode,\n withDualImage: dualImageMode,\n shrink: true,\n isFirstColumn\n };\n\n switch (typeof image) {\n case \"string\":\n return (\n <Cell {...cellProps}>\n <CellContent withImage={!dualImageMode} withDualImage={dualImageMode} isFirstColumn verticalAlign>\n <ImageContent>\n <img src={image} width={32} height={32} draggable={false} alt=\"Item icon\" css={{ borderRadius: 32 }} />\n </ImageContent>\n </CellContent>\n </Cell>\n );\n case \"function\": {\n const Icon = image as IconCmp;\n return (\n <Cell {...cellProps} withImage={false} withDualImage={false}>\n <CellContent isFirstColumn verticalAlign>\n <ImageContent>\n <Icon color=\"primary\" size={24} />\n </ImageContent>\n </CellContent>\n </Cell>\n );\n }\n case \"object\": {\n // Handle dual image objects\n if (dualImageMode && isDualImage(image)) {\n return (\n <Cell {...cellProps}>\n <CellContent withDualImage isFirstColumn verticalAlign>\n <DualImageContent primaryImage={image.primary} secondaryImage={image.secondary} />\n </CellContent>\n </Cell>\n );\n }\n return (\n <Cell {...cellProps}>\n <CellContent isFirstColumn />\n </Cell>\n );\n }\n default:\n return (\n <Cell {...cellProps}>\n <CellContent isFirstColumn />\n </Cell>\n );\n }\n })()}\n {columns.map((column, index) => {\n const isFirstColumn = index === 0 && !rowImageColumn;\n const isLastColumn = index === columns.length - 1;\n const tag = row[column.tag as keyof T] as string;\n const subtitle = row[column.subtitle as keyof T] as ReactNode;\n\n return (\n <Cell key={column.field} compact={compact} isFirstColumn={isFirstColumn} isLastColumn={isLastColumn}>\n <CellContent\n isFirstColumn={isFirstColumn}\n isLastColumn={isLastColumn}\n emulateCheckboxArea={isLastColumn && !showCheckboxes}\n lastColumnAlign={isLastColumn ? lastColumnAlign : undefined}\n >\n {column.render ? (\n column.render(row)\n ) : (\n <>\n <div\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\"\n }}\n >\n <Typography.Text size=\"regular\">{row[column.field as keyof T] as ReactNode}</Typography.Text>\n {subtitle && (\n <Typography.Text size=\"xs\" color=\"focusSecondary\" className=\"subtitle\">\n {subtitle}\n </Typography.Text>\n )}\n </div>\n {tag !== undefined && (\n <div\n css={({ spacing, transition }) => ({\n paddingLeft: spacing,\n opacity: 0.0,\n transition: transition.duration\n })}\n className=\"tag-container\"\n >\n <Tag value={tag} small />\n </div>\n )}\n </>\n )}\n </CellContent>\n </Cell>\n );\n })}\n {showCheckboxes && (\n <Cell compact={compact}>\n <CellContent>\n <Checkbox checked={isRowSelected} onChange={() => onRowClick?.(key, row)} />\n </CellContent>\n </Cell>\n )}\n </tr>\n );\n })}\n </>\n )}\n </tbody>\n </table>\n </div>\n );\n}\n","import { ReactNode } from \"react\";\n\nimport { ClaimsW, Close, Info } from \"../../../../icons\";\n\nexport type Status = \"success\" | \"error\" | \"warning\";\n\ntype Props = {\n status?: Status;\n};\n\nexport function IconStatus({ status }: Props): ReactNode {\n if (!status) {\n return null;\n }\n\n return (\n <span\n css={({ radius, spacing, semantic }) => ({\n width: 28,\n height: 20,\n marginLeft: spacing / 2,\n borderRadius: radius.medium,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: status === \"success\" ? semantic.successTransparent : status === \"error\" ? semantic.errorTransparent : semantic.warningTransparent\n })}\n >\n {((): ReactNode => {\n switch (status) {\n case \"success\":\n return <ClaimsW color=\"success\" size={12} />;\n case \"error\":\n return <Close color=\"error\" size={12} />;\n case \"warning\":\n return <Info color=\"warning\" size={12} />;\n }\n })()}\n </span>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { Tag } from \"../Tag\";\n\nimport { IconStatus, Status } from \"./components/IconStatus\";\n\nexport type Props = {\n label: string;\n active?: boolean;\n badge?: string | number;\n status?: Status;\n disabled?: boolean;\n onClick?: () => void;\n};\n\nexport function TabSelector({ label, active, badge, status, onClick, disabled }: Props): ReactElement {\n return (\n <li css={{ listStyle: \"none\" }}>\n <button\n css={({ neutral }) => ({\n background: \"none\",\n border: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:disabled > span\": {\n cursor: \"not-allowed\",\n color: neutral.lightGray\n }\n })}\n onClick={onClick}\n disabled={disabled}\n >\n <span\n css={({ font, spacing, colors }) => ({\n fontFamily: font.main,\n fontSize: 20,\n color: colors.focusSecondary,\n \"&:hover\": {\n color: colors.focus,\n cursor: \"pointer\"\n },\n ...(active\n ? {\n color: colors.focus,\n textDecoration: \"underline\",\n textUnderlineOffset: `calc(${spacing}px / 2)`\n }\n : {})\n })}\n >\n {label}\n </span>\n\n {badge ? <Tag value={badge} css={({ spacing }) => ({ marginLeft: spacing / 2 })} /> : null}\n\n <IconStatus status={status} />\n </button>\n </li>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { TabSelector, Props as PropsTabSelector } from \"../TabSelector\";\n\nexport type Props<T = string> = {\n items: Array<{ id: T } & Omit<PropsTabSelector, \"active\" | \"onClick\">>;\n onChange: (id: T) => void;\n active?: string;\n};\n\nexport function TabNavigation<T = string>({ items, active, onChange }: Props<T>): ReactElement {\n return (\n <ul\n css={({ spacing }) => ({\n display: \"flex\",\n gap: spacing * 2,\n margin: 0,\n padding: 0\n })}\n >\n {items.map((item) => (\n <TabSelector\n key={String(item.id)}\n label={item.label}\n active={active === item.id}\n badge={item.badge}\n status={item.status}\n disabled={item.disabled}\n onClick={() => onChange(item.id)}\n />\n ))}\n </ul>\n );\n}\n","import { ReactElement } from \"react\";\n\nimport { InputWrapper } from \"../InputWrapper\";\n\nimport { Props } from \"./types\";\n\nexport function TextInput({ type = \"text\", label, placeholder, disabled, block, value, isValid, helpText, prepend, append, onChange, onFocus, onBlur }: Props): ReactElement {\n return (\n <InputWrapper\n label={label}\n disabled={disabled}\n block={block}\n isValid={isValid}\n helpText={helpText}\n prepend={prepend}\n append={append}\n render={({ id, className }) => (\n <input id={id} className={className} type={type} placeholder={placeholder} disabled={disabled} value={value} onChange={onChange} onFocus={onFocus} onBlur={onBlur} />\n )}\n />\n );\n}\n","import { ReactElement, PropsWithChildren } from \"react\";\nimport { ThemeProvider } from \"@emotion/react\";\nimport { assign } from \"radash\";\n\nimport { light, dark } from \"../../constants/themes\";\nimport { UITheme } from \"../../types/UITheme\";\n\ntype PartialDeep<T> = {\n [P in keyof T]?: PartialDeep<T[P]>;\n};\n\nexport function UiProvider({\n children,\n customlightTheme,\n customDarkTheme\n}: PropsWithChildren & {\n customlightTheme?: PartialDeep<UITheme>;\n customDarkTheme?: PartialDeep<UITheme>;\n}): ReactElement {\n const isDark = typeof window !== \"undefined\" && window.localStorage.getItem(\"uiTheme\") === \"dark\";\n\n const theme = isDark ? assign(dark, customDarkTheme as UITheme) : assign(light, customlightTheme as UITheme);\n\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n","import { ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\nimport { AngleDownSolid, ArrowLeftSolid, HistorySolid, PlusSolid } from \"../../icons\";\n\nexport interface FloatingModalProps {\n children: ReactNode;\n title?: ReactNode;\n isOpen: boolean;\n initialPosition?: { x: number; y: number };\n initialSize?: { width: number; height: number };\n targetAreaRef?: React.RefObject<HTMLElement>;\n onSnapToTarget?: (isSnapped: boolean, snappedPos?: { x: number; y: number }) => void;\n onResizeEnd?: (width: number, height: number) => void;\n onDragPosition?: (x: number, y: number) => void;\n onFold?: (isFolded: boolean) => void;\n activeTab?: \"chat\" | \"sessions\";\n sessionsContent: ReactNode;\n onPlusClick?: () => void;\n isSnapped?: boolean;\n folded?: boolean;\n}\n\nexport function FloatingModal({\n children,\n title,\n isOpen,\n initialPosition = { x: 20, y: 20 },\n initialSize = { width: 400, height: 600 },\n targetAreaRef,\n activeTab = \"chat\",\n isSnapped = false,\n folded,\n sessionsContent,\n onSnapToTarget,\n onPlusClick,\n onDragPosition,\n onFold,\n onResizeEnd\n}: FloatingModalProps): JSX.Element | null {\n const [position, setPosition] = useState(initialPosition);\n const [isDragging, setIsDragging] = useState(false);\n const [dragOffset, setDragOffset] = useState({ x: 0, y: 0 });\n const [isHoveringTarget, setIsHoveringTarget] = useState(false);\n const [isFolded, setIsFolded] = useState(folded);\n const [isResizing, setIsResizing] = useState(false);\n const [resizeDirection, setResizeDirection] = useState<string>(\"\");\n const [size, setSize] = useState(initialSize);\n const [currentTab, setCurrentTab] = useState<\"chat\" | \"sessions\">(activeTab);\n const modalRef = useRef<HTMLDivElement>(null);\n const [windowSize, setWindowSize] = useState({ width: window.innerWidth, height: window.innerHeight });\n\n // Check if modal is hovering over target area\n const checkTargetHover = useCallback(() => {\n if (!targetAreaRef?.current || !modalRef.current) return false;\n\n const modalRect = modalRef.current.getBoundingClientRect();\n const targetRect = targetAreaRef.current.getBoundingClientRect();\n\n return modalRect.left < targetRect.right && modalRect.right > targetRect.left && modalRect.top < targetRect.bottom && modalRect.bottom > targetRect.top;\n }, [targetAreaRef]);\n\n // Snap modal to target area\n const snapToTargetArea = useCallback(() => {\n if (!targetAreaRef?.current) return;\n\n const targetRect = targetAreaRef.current.getBoundingClientRect();\n const modalWidth = 400;\n const modalHeight = window.innerHeight - 48;\n\n const snappedPosition = {\n x: targetRect.left + (targetRect.width - modalWidth) / 2,\n y: targetRect.top + (targetRect.height - modalHeight) / 2\n };\n\n setPosition(snappedPosition);\n onSnapToTarget?.(true, snappedPosition);\n }, [targetAreaRef, onSnapToTarget]);\n\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n if (e.target instanceof HTMLElement && e.target.closest(\"[data-header]\")) {\n e.preventDefault();\n setIsDragging(true);\n const rect = modalRef.current?.getBoundingClientRect();\n if (rect) {\n setDragOffset({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n });\n }\n }\n }, []);\n\n const handleResizeStart = useCallback((e: React.MouseEvent, direction: string) => {\n e.stopPropagation();\n e.preventDefault();\n setIsResizing(true);\n setResizeDirection(direction);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (isDragging && modalRef.current) {\n const x = e.clientX - dragOffset.x;\n const y = e.clientY - dragOffset.y;\n\n // Keep modal within viewport bounds\n const maxX = window.innerWidth - modalRef.current.offsetWidth;\n const maxY = window.innerHeight - modalRef.current.offsetHeight;\n\n const newPosition = {\n x: Math.max(0, Math.min(x, maxX)),\n y: Math.max(0, Math.min(y, maxY))\n };\n\n setPosition(newPosition);\n\n // Check if hovering over target area\n const hovering = checkTargetHover();\n if (hovering !== isHoveringTarget) {\n setIsHoveringTarget(hovering);\n }\n }\n\n if (isResizing && modalRef.current) {\n const rect = modalRef.current.getBoundingClientRect();\n const minWidth = 300;\n const minHeight = 200;\n const maxWidth = window.innerWidth - 40;\n const maxHeight = window.innerHeight - 40;\n\n let newWidth = size.width;\n let newHeight = size.height;\n\n if (resizeDirection.includes(\"e\")) {\n newWidth = Math.max(minWidth, Math.min(maxWidth, e.clientX - rect.left));\n }\n if (resizeDirection.includes(\"w\")) {\n const newLeft = e.clientX;\n newWidth = Math.max(minWidth, Math.min(maxWidth, rect.right - newLeft));\n if (newWidth !== size.width) {\n setPosition((prev) => ({ ...prev, x: newLeft }));\n }\n }\n if (resizeDirection.includes(\"s\")) {\n newHeight = Math.max(minHeight, Math.min(maxHeight, e.clientY - rect.top));\n }\n if (resizeDirection.includes(\"n\")) {\n const newTop = e.clientY;\n newHeight = Math.max(minHeight, Math.min(maxHeight, rect.bottom - newTop));\n if (newHeight !== size.height) {\n setPosition((prev) => ({ ...prev, y: newTop }));\n }\n }\n\n setSize({ width: newWidth, height: newHeight });\n }\n },\n [isDragging, dragOffset, checkTargetHover, isHoveringTarget, isResizing, resizeDirection, size]\n );\n\n const handleMouseUp = useCallback(() => {\n const wasSnapping = isDragging && isHoveringTarget;\n\n if (wasSnapping) {\n snapToTargetArea();\n } else if (!isHoveringTarget) {\n onSnapToTarget?.(false);\n }\n\n setIsDragging(false);\n setIsResizing(false);\n setResizeDirection(\"\");\n\n // Only call onDragPosition if we're not snapping\n if (onDragPosition && !wasSnapping) {\n onDragPosition(position.x, position.y);\n }\n\n if (onResizeEnd) {\n onResizeEnd(size.width, size.height);\n }\n }, [isDragging, position, size, onResizeEnd, onDragPosition, onSnapToTarget, isHoveringTarget, snapToTargetArea]);\n\n const handleOnFoldClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsFolded((prev) => {\n if (onFold) {\n onFold(!prev);\n }\n return !prev;\n });\n },\n [onFold]\n );\n\n useEffect(() => {\n if (isDragging || isResizing) {\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n }\n return (): void => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [isDragging, isResizing, handleMouseMove, handleMouseUp]);\n\n // Reset snap state when modal is closed\n useEffect(() => {\n if (!isOpen) {\n onSnapToTarget?.(false);\n }\n }, [isOpen, onSnapToTarget]);\n\n const debouncedResizeTimeoutRef = useRef<ReturnType<typeof setTimeout>>();\n\n const handleWindowResize = useCallback(() => {\n const newWindowSize = { width: window.innerWidth, height: window.innerHeight };\n\n if (!modalRef.current) {\n setWindowSize(newWindowSize);\n return;\n }\n\n const modalWidth = isSnapped ? 400 : size.width;\n const modalHeight = isFolded ? modalRef.current.offsetHeight : isSnapped ? window.innerHeight - 48 : size.height;\n\n const relativeX = position.x / (windowSize.width - modalWidth);\n const relativeY = position.y / (windowSize.height - modalHeight);\n\n let newX = relativeX * (newWindowSize.width - modalWidth);\n let newY = relativeY * (newWindowSize.height - modalHeight);\n\n const maxX = newWindowSize.width - modalWidth;\n const maxY = newWindowSize.height - modalHeight;\n\n newX = Math.max(0, Math.min(newX, maxX));\n newY = Math.max(0, Math.min(newY, maxY));\n\n if (isSnapped && targetAreaRef?.current) {\n const targetRect = targetAreaRef.current.getBoundingClientRect();\n const snappedPosition = {\n x: targetRect.left + (targetRect.width - modalWidth) / 2,\n y: targetRect.top + (targetRect.height - modalHeight) / 2\n };\n setPosition(snappedPosition);\n onDragPosition?.(snappedPosition.x, snappedPosition.y);\n } else {\n setPosition({ x: newX, y: newY });\n onDragPosition?.(newX, newY);\n }\n\n setWindowSize(newWindowSize);\n }, [position, size, windowSize, isSnapped, isFolded, targetAreaRef, onDragPosition]);\n\n const debouncedWindowResize = useCallback(() => {\n if (debouncedResizeTimeoutRef.current) {\n clearTimeout(debouncedResizeTimeoutRef.current);\n }\n\n debouncedResizeTimeoutRef.current = setTimeout(() => {\n handleWindowResize();\n }, 150);\n }, [handleWindowResize]);\n\n useEffect(() => {\n window.addEventListener(\"resize\", debouncedWindowResize);\n return (): void => {\n window.removeEventListener(\"resize\", debouncedWindowResize);\n if (debouncedResizeTimeoutRef.current) {\n clearTimeout(debouncedResizeTimeoutRef.current);\n }\n };\n }, [debouncedWindowResize]);\n\n if (!isOpen) return null;\n\n return (\n <div\n ref={modalRef}\n css={({ bg }) => ({\n position: \"fixed\",\n width: isSnapped ? 400 : size.width,\n height: isFolded ? \"auto\" : isSnapped ? \"calc(100vh - 48px)\" : size.height,\n color: \"#fff\",\n padding: 16,\n zIndex: isSnapped ? 10 : 1,\n background: bg.glassmorphics,\n borderRadius: 16,\n boxShadow: \"var(--mantine-shadow-xl)\",\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: \"column\",\n backdropFilter: \"blur(2px)\",\n WebkitBackdropFilter: \"blur(2px)\",\n left: position.x,\n top: position.y,\n cursor: isDragging ? \"grabbing\" : \"default\",\n userSelect: isDragging || isResizing ? \"none\" : \"auto\"\n })}\n onMouseDown={handleMouseDown}\n >\n <div\n css={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8\n }}\n >\n <div\n css={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 16,\n justifyContent: \"center\",\n height: 44,\n padding: 0,\n margin: 0,\n borderRadius: \"100%\"\n }}\n >\n <div css={{ cursor: \"pointer\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }} onClick={onPlusClick}>\n <PlusSolid size={18} color=\"secondary\" />\n </div>\n\n {currentTab === \"chat\" && (\n <div onClick={() => setCurrentTab(\"sessions\")} css={{ cursor: \"pointer\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }}>\n <HistorySolid color=\"secondary\" size={18} />\n </div>\n )}\n {currentTab === \"sessions\" && (\n <div onClick={() => setCurrentTab(\"chat\")} css={{ cursor: \"pointer\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }}>\n <ArrowLeftSolid color=\"secondary\" size={18} />\n </div>\n )}\n </div>\n <div\n data-header\n css={{\n paddingLeft: 0,\n flexGrow: 1,\n cursor: \"move\",\n userSelect: \"none\",\n padding: \"10px 12px 10px 0\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n borderRadius: 24\n }}\n >\n <h2\n css={{\n margin: 0,\n fontSize: 16,\n fontWeight: 400\n }}\n >\n {currentTab === \"sessions\" ? \"Sessions\" : title}\n </h2>\n <div\n css={{\n cursor: \"pointer\",\n transition: \"transform 0.3s ease-in-out\",\n transform: isFolded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }}\n onClick={handleOnFoldClick}\n >\n <AngleDownSolid size={18} color=\"secondary\" />\n </div>\n </div>\n </div>\n <div\n css={{\n flex: 1,\n fontSize: 16,\n overflowY: \"auto\",\n padding: 16,\n paddingBottom: 116,\n scrollbarWidth: \"none\",\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n }\n }}\n >\n {currentTab === \"chat\" ? children : sessionsContent}\n </div>\n\n {/* Resize handles - only show when not snapped and not folded */}\n {!isSnapped && !isFolded && (\n <>\n {/* Right resize handle */}\n <div\n css={{\n position: \"absolute\",\n right: 0,\n top: 0,\n width: 8,\n height: \"100%\",\n cursor: \"ew-resize\",\n zIndex: 2\n }}\n onMouseDown={(e) => handleResizeStart(e, \"e\")}\n />\n {/* Bottom resize handle */}\n <div\n css={{\n position: \"absolute\",\n bottom: 0,\n left: 0,\n width: \"100%\",\n height: 8,\n cursor: \"ns-resize\",\n zIndex: 2\n }}\n onMouseDown={(e) => handleResizeStart(e, \"s\")}\n />\n {/* Bottom-right corner resize handle */}\n <div\n css={{\n position: \"absolute\",\n bottom: 0,\n right: 0,\n width: 12,\n height: 12,\n cursor: \"nwse-resize\",\n zIndex: 3\n }}\n onMouseDown={(e) => handleResizeStart(e, \"se\")}\n />\n </>\n )}\n </div>\n );\n}\n","import React, { ReactElement, useState } from \"react\";\nimport { Box, Image, Text, Badge, Center } from \"@mantine/core\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { Flex } from \"../Base/Flex\";\n\nexport interface NavigationItemProps {\n /** The icon component to display */\n Icon?: IconCmp;\n /** Image URL to display instead of icon */\n image?: string;\n /** Whether to use image instead of icon */\n useImage?: boolean;\n /** Label text displayed below the icon/image */\n label: string;\n /** Whether the item is in active state */\n isActive?: boolean;\n /** Whether the item is in hover state */\n isHovered?: boolean;\n /** Whether to show notification badge */\n showNotification?: boolean;\n /** Notification count/text */\n notificationContent?: string | number;\n /** Whether to show modal on hover */\n showModal?: boolean;\n /** Modal content to display */\n modalContent?: React.ReactNode;\n /** Modal position */\n modalPosition?: { x: number; y: number };\n /** Click handler */\n onClick?: () => void;\n /** Hover handlers */\n onHover?: (event: React.MouseEvent<HTMLDivElement>) => void;\n onLeave?: () => void;\n /** Custom styles */\n className?: string;\n /** Additional props for the container */\n containerProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\nexport function NavigationItem({\n Icon,\n image,\n useImage = false,\n label,\n isActive = false,\n isHovered = false,\n showNotification = false,\n notificationContent = \"1\",\n showModal = false,\n modalContent,\n modalPosition,\n onClick,\n onHover,\n onLeave,\n className,\n containerProps\n}: NavigationItemProps): ReactElement {\n const [internalHover, setInternalHover] = useState(false);\n\n const actualHover = isHovered || internalHover;\n\n const handleMouseEnter = (e: React.MouseEvent<HTMLDivElement>): void => {\n setInternalHover(true);\n e.stopPropagation();\n onHover?.(e);\n };\n\n const handleMouseLeave = (e: React.MouseEvent<HTMLDivElement>): void => {\n setInternalHover(false);\n e.stopPropagation();\n onLeave?.();\n };\n\n const renderIconOrImage = (): React.ReactNode => {\n if (useImage && image) {\n return (\n <Image\n src={image}\n alt={label}\n w={actualHover ? 32 : 28}\n h={actualHover ? 32 : 28}\n radius={4}\n style={{\n objectFit: \"cover\",\n transition: \"all 0.2s ease-in-out\"\n }}\n onError={(e) => {\n const target = e.target as HTMLImageElement;\n target.style.display = \"none\";\n const nextElement = target.nextElementSibling as HTMLDivElement;\n if (nextElement) {\n nextElement.style.display = \"flex\";\n }\n }}\n />\n );\n } else if (useImage && !image) {\n return (\n <Flex\n align=\"center\"\n justify=\"center\"\n style={{\n background: \"linear-gradient(135deg, #2BFFBF 0%, #1BA897 100%)\",\n transition: \"all 0.2s ease-in-out\",\n borderRadius: 4,\n width: actualHover ? 32 : 28,\n height: actualHover ? 32 : 28\n }}\n >\n <Text fz=\"xs\" fw={600} c=\"white\">\n {label.charAt(0).toUpperCase()}\n </Text>\n </Flex>\n );\n } else if (Icon) {\n const iconScale = actualHover ? 1.14 : 1;\n return (\n <Center\n style={{\n transform: `scale(${iconScale})`,\n transition: \"transform 0.2s ease-in-out\"\n }}\n >\n <Icon size={28} />\n </Center>\n );\n }\n return null;\n };\n\n return (\n <>\n <Flex\n direction=\"column\"\n align=\"center\"\n style={{\n width: 72,\n position: \"relative\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease-in-out\",\n ...containerProps?.style\n }}\n className={className}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={onClick}\n {...containerProps}\n >\n <Center\n w={52}\n h={52}\n pos=\"relative\"\n style={{\n borderRadius: \"8px\",\n transition: \"all 0.2s ease-in-out\",\n background: isActive ? \"rgba(255, 255, 255, 0.06)\" : actualHover ? \"rgba(255, 255, 255, 0.04)\" : \"transparent\"\n }}\n >\n <Center\n style={{\n color: isActive ? \"#FFFFFF\" : \"rgba(255, 255, 255, 0.5)\",\n transition: \"color 0.2s ease-in-out\"\n }}\n >\n {renderIconOrImage()}\n {/* Hidden fallback for image errors */}\n {useImage && image && (\n <Center\n style={{\n background: \"linear-gradient(135deg, #2BFFBF 0%, #1BA897 100%)\",\n display: \"none\",\n transition: \"all 0.2s ease-in-out\",\n borderRadius: 4,\n width: actualHover ? 32 : 28,\n height: actualHover ? 32 : 28\n }}\n >\n <Text fz=\"xs\" fw={600} c=\"white\">\n {label.charAt(0).toUpperCase()}\n </Text>\n </Center>\n )}\n </Center>\n\n {/* Notification badge */}\n {showNotification && (\n <Badge\n pos=\"absolute\"\n style={{\n bottom: \"-2px\",\n right: \"-2px\",\n minWidth: \"16px\",\n height: \"16px\",\n background: \"#FFFFFF\",\n borderRadius: \"9px\",\n fontSize: \"9px\",\n fontWeight: \"600\",\n color: \"#101111\",\n zIndex: 2,\n padding: \"0 3px\"\n }}\n >\n {notificationContent}\n </Badge>\n )}\n </Center>\n\n {/* Label */}\n <Text\n fz=\"xs\"\n fw={500}\n c={isActive ? \"#FFFFFF\" : \"rgba(255, 255, 255, 0.5)\"}\n mt={4}\n w=\"100%\"\n ta=\"center\"\n style={{\n lineHeight: \"1.5em\",\n letterSpacing: \"1%\",\n transition: \"color 0.2s ease-in-out\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n }}\n >\n {label}\n </Text>\n </Flex>\n\n {/* Modal on hover */}\n {showModal && actualHover && modalContent && modalPosition && (\n <Box\n pos=\"absolute\"\n style={{\n left: modalPosition.x,\n top: modalPosition.y,\n zIndex: 1000,\n pointerEvents: \"none\"\n }}\n >\n {modalContent}\n </Box>\n )}\n </>\n );\n}\n","import { useState, useRef, useEffect, useCallback, useMemo, ReactElement } from \"react\";\nimport { NavigationItem } from \"./NavigationItem\";\nimport { TachometerAltSolid, UsersSolid, UserCircleSolid, UserCogSolid, EllipsisHSolid } from \"../../icons\";\nimport { IconCmp } from \"../../types/IconCmp\";\n\nexport interface Domain {\n id: string;\n name: string;\n type: string;\n image?: string;\n notification?: boolean;\n}\n\nexport interface NavItem {\n id: string;\n label: string;\n Icon: IconCmp;\n isActive?: boolean;\n notification?: boolean;\n}\n\nexport interface DynamicNavProps {\n currentDomain: Domain;\n navigationItems?: NavItem[];\n onNavigate?: (item: NavItem) => void;\n onDomainChange?: (domain: Domain) => void;\n onItemHover?: (itemId: string, event: React.MouseEvent) => void;\n onItemLeave?: () => void;\n onMoreItemsChange?: (moreItems: NavItem[]) => void;\n}\n\n// Default navigation items if none provided\nconst defaultNavItems: NavItem[] = [\n { id: \"overview\", label: \"Overview\", Icon: TachometerAltSolid, isActive: true },\n { id: \"accounts\", label: \"Accounts\", Icon: UserCogSolid },\n { id: \"members\", label: \"Members\", Icon: UsersSolid },\n { id: \"tasks\", label: \"Tasks\", Icon: UserCircleSolid }\n];\nexport function DynamicNav({ currentDomain, navigationItems = [], onNavigate, onDomainChange, onItemHover, onItemLeave, onMoreItemsChange }: DynamicNavProps): ReactElement {\n const containerRef = useRef<HTMLDivElement>(null);\n const [maxVisibleItems, setMaxVisibleItems] = useState<number>(4);\n const resizeTimeoutRef = useRef<number | null>(null);\n const lastCalculatedHeightRef = useRef<number>(0);\n const calculationCountRef = useRef<number>(0);\n const isCalculatingRef = useRef<boolean>(false);\n\n // Memoize navItems to prevent infinite loops when switching between empty and default\n const navItems = useMemo(() => {\n return navigationItems.length > 0 ? navigationItems : defaultNavItems;\n }, [navigationItems]);\n\n // Cleanup on unmount\n useEffect(() => {\n return (): void => {\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n }\n isCalculatingRef.current = false;\n calculationCountRef.current = 0;\n };\n }, []);\n\n // Memoize the calculation function to prevent unnecessary re-creation\n const calculateVisibleItems = useCallback(() => {\n // Prevent infinite loops and concurrent calculations\n if (isCalculatingRef.current) return;\n if (calculationCountRef.current > 10) {\n console.warn(\"NavigationBar: Too many calculations, stopping to prevent infinite loop\");\n return;\n }\n\n if (!containerRef.current) return;\n\n // Get the NavigationBar container (grandparent) instead of the flex container\n const flexContainer = containerRef.current.parentElement; // DynamicNav wrapper\n if (!flexContainer) return;\n\n const navigationBarContainer = flexContainer.parentElement; // NavigationBar\n if (!navigationBarContainer) return;\n\n isCalculatingRef.current = true;\n calculationCountRef.current += 1;\n\n try {\n // Get the total NavigationBar height\n const totalHeight = navigationBarContainer.offsetHeight;\n\n // Calculate UserNav height (2 NavigationItems + padding + gaps)\n // NavigationItem actual height breakdown:\n // - Frame: 52px (width: 52px, height: 52px)\n // - Gap to label: 4px (marginTop in labelStyle)\n // - Label: ~18px (12px fontSize × 1.5 lineHeight)\n // Total per item: 74px\n const navigationItemHeight = 74;\n const itemGap = 16;\n const sectionPadding = 32; // 16px top + 16px bottom\n const userNavHeight = sectionPadding + navigationItemHeight * 2 + itemGap; // 196px\n\n // Reserve 24px minimum gap between DynamicNav and UserNav\n const minGap = 24;\n\n // Calculate max height DynamicNav can use\n const maxDynamicNavHeight = totalHeight - userNavHeight - minGap;\n\n if (maxDynamicNavHeight <= 0) {\n console.warn(\"NavigationBar: Insufficient height for layout. Total:\", totalHeight, \"UserNav:\", userNavHeight, \"Gap:\", minGap);\n return;\n }\n\n // Validation: warn if UserNav would exceed container\n if (userNavHeight > totalHeight * 0.8) {\n console.warn(\"NavigationBar: UserNav height seems too large relative to container. UserNav:\", userNavHeight, \"Total:\", totalHeight);\n }\n\n // Prevent calculations if height hasn't changed significantly\n if (Math.abs(maxDynamicNavHeight - lastCalculatedHeightRef.current) < 5) {\n return;\n }\n\n lastCalculatedHeightRef.current = maxDynamicNavHeight;\n\n // Reset calculation count on successful height change\n calculationCountRef.current = 0;\n\n // DynamicNav fixed components height\n const domainItemHeight = navigationItemHeight; // 74px\n const dividerHeight = 1;\n const dynamicNavPadding = 32; // 16px top + 16px bottom\n\n // Calculate fixed content height (domain + divider + padding)\n const fixedHeight = dynamicNavPadding + domainItemHeight + itemGap + dividerHeight + itemGap; // 123px\n\n // Available space for navigation items within DynamicNav\n const availableForNavItems = maxDynamicNavHeight - fixedHeight;\n\n // Calculate how many nav items can fit\n const itemWithGapHeight = navigationItemHeight + itemGap; // 90px\n const maxPossibleItems = Math.floor(Math.max(0, availableForNavItems) / itemWithGapHeight);\n\n // Determine visible items - use the current navItems length at calculation time\n const currentNavItemsLength = navItems.length;\n let visibleItems = Math.min(maxPossibleItems, currentNavItemsLength);\n\n // Reserve space for More button if needed\n if (currentNavItemsLength > maxPossibleItems && maxPossibleItems > 0) {\n visibleItems = Math.max(1, maxPossibleItems - 1);\n }\n\n const newMaxVisibleItems = Math.max(1, visibleItems);\n\n // Only update state if value actually changed\n setMaxVisibleItems((prev) => (prev !== newMaxVisibleItems ? newMaxVisibleItems : prev));\n } catch (error) {\n console.error(\"NavigationBar calculation error:\", error);\n } finally {\n isCalculatingRef.current = false;\n }\n }, [navigationItems.length]); // Use original navigationItems.length, not derived navItems.length\n\n // Debounced resize handler\n const debouncedCalculateVisibleItems = useCallback(() => {\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n }\n\n resizeTimeoutRef.current = window.setTimeout(() => {\n calculateVisibleItems();\n }, 100); // 100ms debounce\n }, [calculateVisibleItems]);\n\n // Calculate how many items can fit in available space\n useEffect(() => {\n // Initial calculation\n calculateVisibleItems();\n\n // Use ResizeObserver to watch for container size changes\n let resizeObserver: ResizeObserver | null = null;\n\n try {\n resizeObserver = new ResizeObserver(debouncedCalculateVisibleItems);\n\n // Watch the NavigationBar container that determines total available space\n const flexContainer = containerRef.current?.parentElement;\n const navigationBarContainer = flexContainer?.parentElement;\n\n if (navigationBarContainer) {\n resizeObserver.observe(navigationBarContainer);\n }\n } catch (error) {\n // Fallback for environments without ResizeObserver\n console.warn(\"ResizeObserver not available:\", error);\n }\n\n return (): void => {\n if (resizeTimeoutRef.current) {\n clearTimeout(resizeTimeoutRef.current);\n }\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateVisibleItems, debouncedCalculateVisibleItems]);\n\n // Dynamic item management based on available space\n const visibleItems = useMemo(() => navItems.slice(0, maxVisibleItems), [navItems, maxVisibleItems]);\n const hasMoreItems = useMemo(() => navItems.length > maxVisibleItems, [navItems.length, maxVisibleItems]);\n const moreItems = useMemo(() => navItems.slice(maxVisibleItems), [navItems, maxVisibleItems]);\n\n // Report more items to parent component whenever they change\n // Use a stable callback to prevent infinite re-renders\n const stableOnMoreItemsChange = useCallback(\n (items: NavItem[]) => {\n onMoreItemsChange?.(items);\n },\n [onMoreItemsChange]\n );\n\n useEffect(() => {\n stableOnMoreItemsChange(moreItems);\n }, [moreItems, stableOnMoreItemsChange]);\n\n const handleItemHover = useCallback(\n (itemId: string, event: React.MouseEvent) => {\n onItemHover?.(itemId, event);\n },\n [onItemHover]\n );\n\n const handleItemLeave = useCallback(() => {\n onItemLeave?.();\n }, [onItemLeave]);\n\n // Container styles with glass morphism\n const containerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"16px\",\n padding: \"16px 8px\",\n background: \"linear-gradient(135deg, #1D1709 0%, #09061B 100%)\",\n backdropFilter: \"blur(40px)\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n borderRadius: \"24px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n flex: \"none\", // Don't grow, snap to content\n alignSelf: \"flex-start\" // Stick to top of flex container\n };\n\n const contentStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n alignItems: \"center\",\n width: \"100%\"\n };\n\n const dividerStyle: React.CSSProperties = {\n width: \"100%\",\n height: \"1px\",\n background: \"rgba(255, 255, 255, 0.06)\"\n };\n\n return (\n <div ref={containerRef} style={containerStyle} data-dynamic-nav>\n <div style={contentStyle}>\n {/* Domain Item */}\n <NavigationItem\n useImage={true}\n image={currentDomain.image}\n label={currentDomain.name}\n isActive={true}\n showNotification={currentDomain.notification}\n onHover={(e: React.MouseEvent<HTMLDivElement>) => handleItemHover(\"domain\", e)}\n onLeave={handleItemLeave}\n onClick={() => onDomainChange?.(currentDomain)}\n />\n\n {/* Divider */}\n <div style={dividerStyle} />\n\n {/* Navigation Items */}\n {visibleItems.map((item) => (\n <NavigationItem\n key={item.id}\n Icon={item.Icon}\n label={item.label}\n isActive={item.isActive}\n showNotification={item.notification}\n onHover={(e: React.MouseEvent<HTMLDivElement>) => handleItemHover(item.id, e)}\n onLeave={handleItemLeave}\n onClick={() => onNavigate?.(item)}\n />\n ))}\n\n {/* More Button */}\n {hasMoreItems && (\n <NavigationItem\n Icon={EllipsisHSolid}\n label=\"More\"\n isActive={false}\n onHover={(e: React.MouseEvent<HTMLDivElement>) => handleItemHover(\"more\", e)}\n onLeave={handleItemLeave}\n onClick={() => {}}\n />\n )}\n </div>\n </div>\n );\n}\n","import React, { ReactElement, useCallback } from \"react\";\nimport { NavigationItem } from \"./NavigationItem\";\nimport { UserCircleSolid } from \"../../icons\";\n\nexport interface Workspace {\n id: string;\n name: string;\n type: \"basic\" | \"private\" | \"domain\";\n image?: string;\n notification?: number;\n isActive?: boolean;\n}\n\nexport interface User {\n name: string;\n avatar?: string;\n}\n\nexport interface UserNavProps {\n workspaces?: Workspace[];\n user?: User;\n onWorkspaceChange?: (workspace: Workspace) => void;\n onItemHover?: (itemId: string, event: React.MouseEvent) => void;\n onItemLeave?: () => void;\n}\n\nexport function UserNav({ workspaces, user, onWorkspaceChange, onItemHover, onItemLeave }: UserNavProps): ReactElement | null {\n const handleItemHover = useCallback(\n (itemId: string, event: React.MouseEvent) => {\n onItemHover?.(itemId, event);\n },\n [onItemHover]\n );\n\n const handleItemLeave = useCallback(() => {\n onItemLeave?.();\n }, [onItemLeave]);\n\n // Get active workspace\n const activeWorkspace = workspaces?.find((w) => w.isActive);\n\n // Container styles with glass morphism\n const containerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"16px\",\n padding: \"16px 8px\",\n background: \"linear-gradient(135deg, #1D1709 0%, #09061B 100%)\",\n backdropFilter: \"blur(40px)\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n borderRadius: \"24px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n flex: \"none\" // Fixed size, don't flex\n };\n\n const contentStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n alignItems: \"center\",\n width: \"100%\"\n };\n\n if (!workspaces && !user) return null;\n\n return (\n <div style={containerStyle} data-user-nav>\n <div style={contentStyle}>\n {/* Workspace Selector */}\n {activeWorkspace && workspaces && workspaces?.length > 0 && (\n <NavigationItem\n useImage={activeWorkspace.type === \"domain\" || activeWorkspace.type === \"basic\"}\n image={activeWorkspace.image}\n Icon={activeWorkspace.type === \"private\" ? UserCircleSolid : undefined}\n label={activeWorkspace.name}\n isActive={true} // Active workspace is always highlighted\n showNotification={activeWorkspace.notification !== undefined && activeWorkspace.notification > 0}\n notificationContent={activeWorkspace.notification}\n onHover={(e: React.MouseEvent<HTMLDivElement>) => handleItemHover(\"workspaces\", e)}\n onLeave={handleItemLeave}\n onClick={() => onWorkspaceChange?.(activeWorkspace)}\n />\n )}\n\n {/* User Profile */}\n {user && (\n <NavigationItem\n useImage={true}\n image={user.avatar}\n label={user.name}\n isActive={false}\n onHover={(e: React.MouseEvent<HTMLDivElement>) => handleItemHover(\"user\", e)}\n onLeave={handleItemLeave}\n onClick={() => {}}\n />\n )}\n </div>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport { useTheme } from \"@emotion/react\";\n\nexport interface Domain {\n id: string;\n name: string;\n type: \"collection\" | \"asset\" | \"organization\" | \"project\";\n subtitle?: string;\n image?: string;\n useImage?: boolean;\n notification?: number;\n isActive?: boolean;\n status?: string;\n}\n\nexport interface DomainSelectorProps {\n domain: Domain;\n onClick?: (domain: Domain) => void;\n className?: string;\n}\n\nexport function DomainSelector({ domain, onClick, className }: DomainSelectorProps) {\n const [isHovered, setIsHovered] = useState(false);\n const theme = useTheme();\n\n const getSubtitle = () => {\n if (domain.subtitle) return domain.subtitle;\n switch (domain.type) {\n case \"collection\":\n return \"Asset Collection\";\n case \"asset\":\n return \"Single Asset\";\n case \"organization\":\n return \"Organization\";\n case \"project\":\n return \"Project\";\n default:\n return domain.type;\n }\n };\n\n const getSubtitleColor = () => {\n return domain.type === \"organization\" ? \"#388B9D\" : \"rgba(255, 255, 255, 0.5)\";\n };\n\n // Base container styles\n const containerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: domain.isActive ? \"15px\" : \"16px\", // Reduce padding by 1px when border is present\n borderRadius: \"16px\",\n cursor: \"pointer\",\n position: \"relative\",\n border: domain.isActive ? \"1px solid rgba(255, 255, 255, 0.3)\" : \"none\",\n width: \"100%\",\n background: getBackgroundColor(),\n transition: \"background-color 0.2s ease\"\n };\n\n function getBackgroundColor() {\n if (isHovered) return \"rgba(255, 255, 255, 0.08)\";\n return \"rgba(255, 255, 255, 0.06)\";\n }\n\n // Image/Icon container styles\n const imageContainerStyle: React.CSSProperties = {\n width: \"46px\",\n height: \"46px\",\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n flexShrink: 0\n };\n\n const imageStyle: React.CSSProperties = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n borderRadius: \"8px\"\n };\n\n const fallbackIconStyle: React.CSSProperties = {\n ...imageContainerStyle,\n background: \"#FFFFFF\",\n color: \"#101111\",\n fontFamily: theme.font.main,\n fontWeight: \"600\",\n fontSize: `${theme.fontSize.xs}px`\n };\n\n // Text content styles\n const textContentStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n flex: 1,\n textAlign: \"left\"\n };\n\n const titleStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.regular}px`,\n lineHeight: \"1.5em\",\n color: \"#FFFFFF\",\n margin: 0\n };\n\n const subtitleStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.xs}px`,\n lineHeight: \"1.2em\",\n color: getSubtitleColor(),\n margin: 0\n };\n\n // Status label styles (right side)\n const statusLabelStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.xs}px`,\n lineHeight: \"1.2em\",\n color: domain.isActive ? \"#FFFFFF\" : \"rgba(255, 255, 255, 0.5)\",\n position: \"absolute\",\n right: \"16px\",\n top: \"50%\",\n transform: \"translateY(-50%)\"\n };\n\n // Notification badge styles\n const notificationStyle: React.CSSProperties = {\n position: \"absolute\",\n top: \"16px\",\n right: \"16px\",\n minWidth: \"16px\",\n height: \"16px\",\n background: \"#FFFFFF\",\n borderRadius: \"9px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"2px 3px\",\n fontFamily: theme.font.main,\n fontWeight: \"600\",\n fontSize: \"9px\",\n color: \"#101111\",\n zIndex: 1\n };\n\n const handleClick = () => {\n onClick?.(domain);\n };\n\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n\n const renderImageOrIcon = () => {\n // If image is provided, try to show it\n if (domain.image && domain.useImage !== false) {\n return (\n <div style={imageContainerStyle}>\n <img\n src={domain.image}\n alt={domain.name}\n style={imageStyle}\n onError={(e) => {\n // Fallback to initials on image error\n const target = e.target as HTMLImageElement;\n const parent = target.parentElement;\n if (parent) {\n parent.innerHTML = `<div style=\"width: 100%; height: 100%; background: #FFFFFF; color: #101111; display: flex; align-items: center; justify-content: center; font-family: ${theme.font.main}; font-weight: 600; font-size: ${theme.fontSize.xs}px; border-radius: 8px;\">${domain.name.charAt(0)}</div>`;\n }\n }}\n />\n </div>\n );\n }\n\n // Fallback to initials\n return <div style={fallbackIconStyle}>{domain.name.charAt(0)}</div>;\n };\n\n const buttonContent = (\n <>\n {renderImageOrIcon()}\n\n <div style={textContentStyle}>\n <div style={titleStyle}>{domain.name}</div>\n <div style={subtitleStyle}>{getSubtitle()}</div>\n </div>\n\n {(domain.status || domain.isActive) && !domain.notification && <div style={statusLabelStyle}>{domain.isActive ? \"Active\" : domain.status}</div>}\n\n {domain.notification && domain.notification > 0 && <div style={notificationStyle}>{domain.notification}</div>}\n </>\n );\n\n return (\n <button className={className} style={containerStyle} onClick={handleClick} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {buttonContent}\n </button>\n );\n}\n","import React, { useState, useMemo, useRef, ReactElement } from \"react\";\nimport { SearchSolid, EllipsisVSolid, Close, ArrowLeftSolid, Star, HistorySolid } from \"../../icons\";\nimport { DomainSelector, Domain as DomainSelectorDomain } from \"./DomainSelector\";\nimport { Domain } from \"./DynamicNav\";\nimport { Typography } from \"../Typography\";\nimport { ButtonSubtle } from \"../ButtonSubtle\";\nimport { Flex } from \"../Base/Flex\";\n\ntype NavigationMode = \"domains\" | \"bookmarks\" | \"history\";\n\nexport interface DomainModalProps {\n position: { x: number; y: number; maxHeight?: number; useBottomPositioning?: boolean };\n onClose: () => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n currentDomain: Domain;\n onDomainChange?: (domain: Domain) => void;\n onInputFocus?: () => void;\n onInputBlur?: () => void;\n ecosystemName?: string;\n ecosystemImage?: string;\n onEcosystemClick?: () => void;\n}\n\nexport function DomainModal({\n position,\n onMouseEnter,\n onMouseLeave,\n onDomainChange,\n onInputFocus,\n onInputBlur,\n ecosystemName = \"PathGen\",\n ecosystemImage,\n onEcosystemClick\n}: DomainModalProps): ReactElement {\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [searchModeHeight, setSearchModeHeight] = useState<number | null>(null);\n const [isMoreModalOpen, setIsMoreModalOpen] = useState(false);\n const [navigationMode, setNavigationMode] = useState<NavigationMode>(\"domains\");\n const [isEcosystemHovered, setIsEcosystemHovered] = useState(false);\n const modalRef = useRef<HTMLDivElement>(null);\n\n // Convert Domain to DomainSelectorDomain\n const convertToDomainSelector = (domain: Domain, status?: string, isActive?: boolean): DomainSelectorDomain => ({\n id: domain.id,\n name: domain.name,\n type: domain.type as DomainSelectorDomain[\"type\"],\n image: domain.image,\n useImage: !!domain.image,\n notification: domain.notification ? 1 : undefined,\n isActive,\n status\n });\n\n // Mock domains data (using existing Domain interface)\n const mockDomainsBase: Domain[] = [\n {\n id: \"1\",\n name: \"Climate Action Hub\",\n type: \"organization\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n },\n {\n id: \"2\",\n name: \"Renewable Energy Collection\",\n type: \"collection\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n },\n {\n id: \"3\",\n name: \"Carbon Credits Project\",\n type: \"project\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n },\n {\n id: \"4\",\n name: \"Ocean Conservation\",\n type: \"organization\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n },\n {\n id: \"5\",\n name: \"Solar Panel Asset\",\n type: \"asset\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n },\n {\n id: \"6\",\n name: \"Biodiversity Initiative\",\n type: \"project\",\n image: \"/placeholder-domain.jpg\",\n notification: false\n }\n ];\n\n // Convert to DomainSelector format\n const mockDomains: DomainSelectorDomain[] = [\n convertToDomainSelector(mockDomainsBase[0], \"Active\", true),\n convertToDomainSelector(mockDomainsBase[1], \"Viewed Recently\"),\n convertToDomainSelector(mockDomainsBase[2], \"Open\"),\n convertToDomainSelector(mockDomainsBase[3], \"Viewed Recently\"),\n convertToDomainSelector(mockDomainsBase[4], \"Open\"),\n convertToDomainSelector(mockDomainsBase[5], \"Viewed Recently\")\n ];\n\n // Mock bookmarked domains\n const mockBookmarkedDomains: DomainSelectorDomain[] = [convertToDomainSelector(mockDomainsBase[0], \"Bookmarked\"), convertToDomainSelector(mockDomainsBase[3], \"Bookmarked\")];\n\n // Mock history domains\n const mockHistoryDomains: DomainSelectorDomain[] = [\n convertToDomainSelector(mockDomainsBase[1], \"2 hours ago\"),\n convertToDomainSelector(mockDomainsBase[2], \"1 day ago\"),\n convertToDomainSelector(mockDomainsBase[4], \"3 days ago\")\n ];\n\n // Get current domain list based on navigation mode\n const getCurrentDomains = () => {\n switch (navigationMode) {\n case \"bookmarks\":\n return mockBookmarkedDomains;\n case \"history\":\n return mockHistoryDomains;\n default:\n return mockDomains;\n }\n };\n\n // Filter domains based on search query\n const filteredDomains = useMemo(() => {\n const currentDomains = getCurrentDomains();\n\n if (!searchQuery.trim()) {\n return currentDomains;\n }\n\n return currentDomains.filter(\n (domain) =>\n domain.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n domain.type.toLowerCase().includes(searchQuery.toLowerCase()) ||\n (domain.status && domain.status.toLowerCase().includes(searchQuery.toLowerCase()))\n );\n }, [searchQuery, navigationMode]);\n\n const modalStyle: React.CSSProperties = {\n position: \"fixed\",\n left: `${position.x}px`,\n ...(position.useBottomPositioning ? { bottom: `${window.innerHeight - position.y}px` } : { top: `${position.y}px` }),\n width: \"400px\",\n maxHeight: `${position.maxHeight || 400}px`,\n ...(isSearchActive && searchModeHeight ? { height: `${searchModeHeight}px` } : {}),\n background: \"#101111\",\n borderRadius: \"24px\",\n backdropFilter: \"blur(40px)\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n zIndex: 1000,\n color: \"#FFFFFF\",\n overflow: \"hidden\"\n };\n\n const headerStyle: React.CSSProperties = {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"0 16px\",\n height: \"44px\"\n };\n\n const ecosystemButtonStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n background: \"transparent\",\n border: \"none\",\n padding: \"16px\",\n cursor: onEcosystemClick ? \"pointer\" : \"default\",\n borderRadius: \"16px\",\n transition: \"background-color 0.2s ease\",\n width: \"100%\",\n textAlign: \"left\",\n ...(isEcosystemHovered && onEcosystemClick\n ? {\n backgroundColor: \"rgba(255, 255, 255, 0.05)\"\n }\n : {})\n };\n\n const ecosystemTextContainerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"2px\",\n textAlign: \"left\"\n };\n\n const domainFrameStyle: React.CSSProperties = {\n width: \"52px\",\n height: \"52px\",\n background: \"#5418AD\",\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\"\n };\n\n const headerLeftStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\"\n };\n\n const searchBarStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n padding: \"2px 8px\",\n border: \"1px solid rgba(255, 255, 255, 0.3)\",\n borderRadius: \"8px\",\n background: \"transparent\",\n height: \"44px\",\n position: \"relative\",\n cursor: \"text\"\n };\n\n const searchInputStyle: React.CSSProperties = {\n flex: \"1\",\n background: \"transparent\",\n border: \"none\",\n outline: \"none\",\n color: \"rgba(255, 255, 255, 0.7)\",\n fontSize: \"16px\",\n fontWeight: \"400\",\n padding: \"0\"\n };\n\n const domainsContainerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n overflowY: \"auto\",\n ...(isSearchActive && searchModeHeight\n ? {\n flexShrink: 0\n }\n : {\n maxHeight: \"calc(100vh - 200px)\"\n }),\n scrollbarWidth: \"thin\",\n scrollbarColor: \"rgba(255, 255, 255, 0.3) transparent\"\n };\n\n const handleDomainClick = (domain: DomainSelectorDomain) => {\n // Convert back to DynamicNav Domain interface for callback\n const convertedDomain: Domain = {\n id: domain.id,\n name: domain.name,\n type: domain.type,\n image: domain.image,\n notification: !!domain.notification\n };\n onDomainChange?.(convertedDomain);\n };\n\n const handleSearchButtonClick = () => {\n if (modalRef.current) {\n const currentHeight = modalRef.current.offsetHeight;\n setSearchModeHeight(currentHeight);\n }\n setIsSearchActive(true);\n };\n\n const handleSearchClose = () => {\n setIsSearchActive(false);\n setSearchQuery(\"\");\n setSearchModeHeight(null);\n };\n\n const handleSearchInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value);\n };\n\n const handleInputFocus = () => {\n setIsInputFocused(true);\n onInputFocus?.();\n };\n\n const handleInputBlur = () => {\n setIsInputFocused(false);\n onInputBlur?.();\n };\n\n const handleSearchContainerClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n const input = e.currentTarget.querySelector(\"input\");\n if (input) {\n input.focus();\n }\n };\n\n const handleMoreButtonClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsMoreModalOpen(!isMoreModalOpen);\n };\n\n const handleMoreModalClose = () => {\n setIsMoreModalOpen(false);\n };\n\n const handleMoreAction = (action: string) => {\n console.log(\"More action clicked:\", action);\n setIsMoreModalOpen(false);\n };\n\n const handleBookmarkClick = () => {\n if (modalRef.current) {\n const currentHeight = modalRef.current.offsetHeight;\n setSearchModeHeight(currentHeight);\n }\n setNavigationMode(\"bookmarks\");\n };\n\n const handleHistoryClick = () => {\n if (modalRef.current) {\n const currentHeight = modalRef.current.offsetHeight;\n setSearchModeHeight(currentHeight);\n }\n setNavigationMode(\"history\");\n };\n\n const handleBackClick = () => {\n setNavigationMode(\"domains\");\n setSearchModeHeight(null);\n };\n\n const handleEcosystemClick = () => {\n if (onEcosystemClick) {\n onEcosystemClick();\n }\n };\n\n const handleEcosystemMouseEnter = () => {\n setIsEcosystemHovered(true);\n };\n\n const handleEcosystemMouseLeave = () => {\n setIsEcosystemHovered(false);\n };\n\n const getTitle = () => {\n switch (navigationMode) {\n case \"bookmarks\":\n return \"Bookmarks\";\n case \"history\":\n return \"History\";\n default:\n return ecosystemName;\n }\n };\n\n const getMoreActions = () => {\n switch (navigationMode) {\n case \"bookmarks\":\n return [\"Clear All\", \"Export Bookmarks\", \"Settings\"];\n case \"history\":\n return [\"Clear History\", \"Export History\", \"Settings\"];\n default:\n return [\"Create Domain\", \"Import Domains\", \"Settings\"];\n }\n };\n\n // More modal styles\n const moreModalStyle: React.CSSProperties = {\n position: \"fixed\",\n top: modalRef.current ? modalRef.current.getBoundingClientRect().top : position.useBottomPositioning ? window.innerHeight - position.y : position.y,\n left: position.x + 400 + 8,\n background: \"#101111\",\n borderRadius: \"12px\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n padding: \"8px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n zIndex: 1001,\n minWidth: \"140px\",\n backdropFilter: \"blur(40px)\"\n };\n\n const moreActionButtonStyle: React.CSSProperties = {\n background: \"transparent\",\n border: \"none\",\n padding: \"8px 12px\",\n borderRadius: \"8px\",\n color: \"rgba(255, 255, 255, 0.7)\",\n fontSize: \"14px\",\n fontWeight: \"400\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease-in-out\"\n };\n\n const moreActionButtonHoverStyle: React.CSSProperties = {\n ...moreActionButtonStyle,\n backgroundColor: \"rgba(255, 255, 255, 0.08)\",\n color: \"#FFFFFF\"\n };\n\n return (\n <>\n <div ref={modalRef} style={modalStyle} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onClick={(e) => e.stopPropagation()}>\n {/* Header - Different states based on navigation mode and search */}\n {isSearchActive ? (\n // Search Bar Header\n <div style={searchBarStyle} onClick={handleSearchContainerClick}>\n {!isInputFocused && !searchQuery && (\n <span\n style={{\n color: \"rgba(255, 255, 255, 0.3)\",\n fontSize: \"16px\",\n position: \"absolute\",\n left: \"12px\",\n pointerEvents: \"none\",\n userSelect: \"none\"\n }}\n >\n Search\n </span>\n )}\n <input\n type=\"text\"\n value={searchQuery}\n onChange={handleSearchInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n style={{\n ...searchInputStyle,\n paddingLeft: !isInputFocused && !searchQuery ? \"60px\" : \"4px\"\n }}\n placeholder=\"\"\n autoFocus\n />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={Close} onClick={handleSearchClose} />\n </div>\n ) : navigationMode === \"domains\" ? (\n // Default Domain Mode - Ecosystem + Header\n <>\n {/* Ecosystem Button - Top Section */}\n <button\n style={ecosystemButtonStyle}\n onClick={handleEcosystemClick}\n onMouseEnter={handleEcosystemMouseEnter}\n onMouseLeave={handleEcosystemMouseLeave}\n disabled={!onEcosystemClick}\n >\n <div style={domainFrameStyle}>\n {ecosystemImage ? (\n <img\n src={ecosystemImage}\n alt={ecosystemName}\n style={{\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n borderRadius: \"8px\"\n }}\n onError={(e) => {\n // Fallback to emoji on image error\n const target = e.target as HTMLImageElement;\n const parent = target.parentElement;\n if (parent) {\n parent.innerHTML = `<div style=\"color: #FFFFFF; font-size: 24px;\">🌟</div>`;\n }\n }}\n />\n ) : (\n <div style={{ color: \"#FFFFFF\", fontSize: \"24px\" }}>🌟</div>\n )}\n </div>\n <div style={ecosystemTextContainerStyle}>\n <Typography.Text size=\"regular\" color=\"overPicture\">\n {getTitle()}\n </Typography.Text>\n <Typography.Text size=\"xs\" color=\"textSecondary\">\n Ecosystem\n </Typography.Text>\n </div>\n </button>\n\n {/* Action Buttons Header - Below Ecosystem */}\n <div style={headerStyle}>\n <div style={headerLeftStyle}>\n <Typography.Text size=\"xs\" color=\"overPicture\">\n Domains\n </Typography.Text>\n </div>\n <Flex gap={8}>\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={SearchSolid} onClick={handleSearchButtonClick} />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={Star} onClick={handleBookmarkClick} />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={HistorySolid} onClick={handleHistoryClick} />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={EllipsisVSolid} onClick={handleMoreButtonClick} />\n </Flex>\n </div>\n </>\n ) : (\n // Bookmarks/History Header\n <div style={headerStyle}>\n <div style={headerLeftStyle}>\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={ArrowLeftSolid} onClick={handleBackClick} />\n <Typography.Text size=\"regular\" color=\"overPicture\">\n {getTitle()}\n </Typography.Text>\n </div>\n <Flex gap={8}>\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={EllipsisVSolid} onClick={handleMoreButtonClick} />\n </Flex>\n </div>\n )}\n\n {/* Domains using DomainSelector component */}\n <div style={domainsContainerStyle}>\n {filteredDomains.map((domain) => (\n <DomainSelector key={domain.id} domain={domain} onClick={handleDomainClick} />\n ))}\n {filteredDomains.length === 0 && searchQuery.trim() && (\n <div\n style={{\n padding: \"20px\",\n textAlign: \"center\",\n color: \"rgba(255, 255, 255, 0.5)\",\n fontSize: \"14px\"\n }}\n >\n No domains found matching "{searchQuery}"\n </div>\n )}\n {filteredDomains.length === 0 && !searchQuery.trim() && navigationMode === \"bookmarks\" && (\n <div\n style={{\n padding: \"20px\",\n textAlign: \"center\",\n color: \"rgba(255, 255, 255, 0.5)\",\n fontSize: \"14px\"\n }}\n >\n No bookmarked domains yet\n </div>\n )}\n {filteredDomains.length === 0 && !searchQuery.trim() && navigationMode === \"history\" && (\n <div\n style={{\n padding: \"20px\",\n textAlign: \"center\",\n color: \"rgba(255, 255, 255, 0.5)\",\n fontSize: \"14px\"\n }}\n >\n No domain history yet\n </div>\n )}\n </div>\n </div>\n\n {/* More Modal Overlay - Outside main modal to avoid clipping */}\n {isMoreModalOpen && (\n <>\n {/* Backdrop to close modal */}\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n background: \"transparent\"\n }}\n onClick={handleMoreModalClose}\n />\n\n {/* More Modal */}\n <div style={moreModalStyle}>\n {getMoreActions().map((action) => (\n <button\n key={action}\n style={moreActionButtonStyle}\n onMouseEnter={(e) => {\n Object.assign(e.currentTarget.style, moreActionButtonHoverStyle);\n }}\n onMouseLeave={(e) => {\n Object.assign(e.currentTarget.style, moreActionButtonStyle);\n }}\n onClick={() => handleMoreAction(action)}\n >\n {action}\n </button>\n ))}\n </div>\n </>\n )}\n </>\n );\n}\n","import React, { ReactElement, useState } from \"react\";\nimport { Typography } from \"../Typography\";\nimport { useTheme } from \"@emotion/react\";\nimport { IconCmp } from \"../../types/IconCmp\";\nimport { DynamicNavProps } from \"./DynamicNav\";\n\ninterface NavItem {\n id: string;\n label: string;\n Icon: IconCmp;\n isActive?: boolean;\n notification?: boolean;\n}\n\n// NavigationActionSelector component similar to SpaceSelector\ninterface NavigationActionSelectorProps {\n action: NavItem;\n onClick?: (action: NavItem) => void;\n}\n\nfunction NavigationActionSelector({ action, onClick }: NavigationActionSelectorProps): ReactElement {\n const [isHovered, setIsHovered] = useState(false);\n const theme = useTheme();\n\n const containerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: \"16px\",\n borderRadius: \"16px\",\n cursor: \"pointer\",\n position: \"relative\",\n width: \"100%\",\n background: isHovered ? \"rgba(255, 255, 255, 0.08)\" : \"rgba(255, 255, 255, 0.06)\",\n transition: \"background-color 0.2s ease\",\n border: \"none\"\n };\n\n const iconContainerStyle: React.CSSProperties = {\n width: \"46px\",\n height: \"46px\",\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: \"rgba(255, 255, 255, 0.06)\",\n flexShrink: 0\n };\n\n const textContentStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n flex: 1,\n textAlign: \"left\"\n };\n\n const titleStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.regular}px`,\n lineHeight: \"1.5em\",\n color: \"#FFFFFF\",\n margin: 0\n };\n\n const descriptionStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.xs}px`,\n lineHeight: \"1.2em\",\n color: \"rgba(255, 255, 255, 0.5)\",\n margin: 0\n };\n\n const handleClick = (): void => {\n onClick?.(action);\n };\n\n const handleMouseEnter = (): void => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = (): void => {\n setIsHovered(false);\n };\n\n const IconComponent = action.Icon;\n\n return (\n <button style={containerStyle} onClick={handleClick} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n <div style={iconContainerStyle}>\n <IconComponent />\n </div>\n\n <div style={textContentStyle}>\n <div style={titleStyle}>{action.label}</div>\n <div style={descriptionStyle}>{action.label}</div>\n </div>\n </button>\n );\n}\n\nexport interface MoreModalProps {\n position: { x: number; y: number; maxHeight?: number; useBottomPositioning?: boolean };\n onClose: () => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n items: NavItem[];\n onItemClick: DynamicNavProps[\"onNavigate\"];\n}\n\nexport function MoreModal({ onItemClick, position, onMouseEnter, onMouseLeave, items }: MoreModalProps): ReactElement {\n const modalStyle: React.CSSProperties = {\n position: \"fixed\",\n left: `${position.x}px`,\n ...(position.useBottomPositioning ? { bottom: `${window.innerHeight - position.y}px` } : { top: `${position.y}px` }),\n width: \"400px\",\n maxHeight: `${position.maxHeight || 400}px`,\n background: \"#101111\",\n borderRadius: \"24px\",\n backdropFilter: \"blur(40px)\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n zIndex: 1000,\n color: \"#FFFFFF\",\n overflow: \"hidden\"\n };\n\n const headerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"0 16px\"\n };\n\n const navigationActionsContainerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n flex: \"1\", // Take remaining height after header\n overflowY: \"auto\", // Enable vertical scrolling\n minHeight: \"0\", // Allow flex child to shrink below content size\n // Custom scrollbar styling\n scrollbarWidth: \"thin\",\n scrollbarColor: \"rgba(255, 255, 255, 0.3) transparent\"\n };\n\n return (\n <div style={modalStyle} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n {/* Header */}\n <div style={headerStyle}>\n <Typography.Text size=\"xs\" color=\"overPicture\">\n More\n </Typography.Text>\n </div>\n\n {/* Navigation Actions */}\n <div style={navigationActionsContainerStyle}>\n {onItemClick && items.map((action) => <NavigationActionSelector key={action.id} action={action} onClick={() => onItemClick(action)} />)}\n </div>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport { useTheme } from \"@emotion/react\";\nimport { UserCircleSolid } from \"../../icons\";\n\nexport interface Space {\n id: string;\n name: string;\n type: \"domain\" | \"basic\" | \"private\";\n subtitle?: string;\n image?: string;\n useImage?: boolean;\n notification?: number;\n isActive?: boolean;\n}\n\nexport interface SpaceSelectorProps {\n space: Space;\n onClick?: (space: Space) => void;\n className?: string;\n}\n\nexport function SpaceSelector({ space, onClick, className }: SpaceSelectorProps) {\n const [isHovered, setIsHovered] = useState(false);\n const theme = useTheme();\n\n const getSubtitle = () => {\n if (space.subtitle) return space.subtitle;\n switch (space.type) {\n case \"domain\":\n return \"Domain Space\";\n case \"basic\":\n return \"Basic Space\";\n case \"private\":\n return \"Private Space\";\n default:\n return space.type;\n }\n };\n\n const getSubtitleColor = () => {\n return space.type === \"domain\" ? \"#388B9D\" : \"rgba(255, 255, 255, 0.5)\";\n };\n\n // Base container styles\n const containerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: space.isActive ? \"15px\" : \"16px\", // Reduce padding by 1px when border is present\n borderRadius: \"16px\",\n cursor: \"pointer\",\n position: \"relative\",\n border: space.isActive ? \"1px solid rgba(255, 255, 255, 0.3)\" : \"none\",\n width: \"100%\",\n background: getBackgroundColor(),\n transition: \"background-color 0.2s ease\"\n };\n\n function getBackgroundColor() {\n if (isHovered) return \"rgba(255, 255, 255, 0.08)\";\n return \"rgba(255, 255, 255, 0.06)\";\n }\n\n // Image/Icon container styles\n const imageContainerStyle: React.CSSProperties = {\n width: \"46px\",\n height: \"46px\",\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n flexShrink: 0\n };\n\n const imageStyle: React.CSSProperties = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n borderRadius: \"8px\"\n };\n\n const iconContainerStyle: React.CSSProperties = {\n ...imageContainerStyle,\n background: \"rgba(255, 255, 255, 0.06)\"\n };\n\n const fallbackIconStyle: React.CSSProperties = {\n ...imageContainerStyle,\n background: \"#FFFFFF\",\n color: \"#101111\",\n fontFamily: theme.font.main,\n fontWeight: \"600\",\n fontSize: `${theme.fontSize.xs}px`\n };\n\n // Text content styles\n const textContentStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n flex: 1,\n textAlign: \"left\"\n };\n\n const titleStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.regular}px`,\n lineHeight: \"1.5em\",\n color: \"#FFFFFF\",\n margin: 0\n };\n\n const subtitleStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.xs}px`,\n lineHeight: \"1.2em\",\n color: getSubtitleColor(),\n margin: 0\n };\n\n // Active label styles\n const activeLabelStyle: React.CSSProperties = {\n fontFamily: theme.font.main,\n fontWeight: \"400\",\n fontSize: `${theme.fontSize.xs}px`,\n lineHeight: \"1.2em\",\n color: \"rgba(255, 255, 255, 0.5)\",\n position: \"absolute\",\n right: \"16px\",\n top: \"50%\",\n transform: \"translateY(-50%)\"\n };\n\n // Notification badge styles\n const notificationStyle: React.CSSProperties = {\n position: \"absolute\",\n top: \"16px\",\n right: \"16px\",\n minWidth: \"16px\",\n height: \"16px\",\n background: \"#FFFFFF\",\n borderRadius: \"9px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"2px 3px\",\n fontFamily: theme.font.main,\n fontWeight: \"600\",\n fontSize: \"9px\", // 9px is not in theme, keeping hardcoded as it's specific to notification badges\n color: \"#101111\",\n zIndex: 1\n };\n\n const handleClick = () => {\n onClick?.(space);\n };\n\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n\n const renderImageOrIcon = () => {\n // If useImage is explicitly false, show icon\n if (space.useImage === false || space.type === \"private\") {\n return (\n <div style={iconContainerStyle}>\n <UserCircleSolid size={28} color=\"textSecondary\" />\n </div>\n );\n }\n\n // If image is provided, try to show it\n if (space.image) {\n return (\n <div style={imageContainerStyle}>\n <img\n src={space.image}\n alt={space.name}\n style={imageStyle}\n onError={(e) => {\n // Fallback to initials on image error\n const target = e.target as HTMLImageElement;\n const parent = target.parentElement;\n if (parent) {\n parent.innerHTML = `<div style=\"width: 100%; height: 100%; background: #FFFFFF; color: #101111; display: flex; align-items: center; justify-content: center; font-family: ${theme.font.main}; font-weight: 600; font-size: ${theme.fontSize.xs}px; border-radius: 8px;\">${space.name.charAt(0)}</div>`;\n }\n }}\n />\n </div>\n );\n }\n\n // Fallback to initials\n return <div style={fallbackIconStyle}>{space.name.charAt(0)}</div>;\n };\n\n const buttonContent = (\n <>\n {renderImageOrIcon()}\n\n <div style={textContentStyle}>\n <div style={titleStyle}>{space.name}</div>\n <div style={subtitleStyle}>{getSubtitle()}</div>\n </div>\n\n {space.isActive && !space.notification && <div style={activeLabelStyle}>Active</div>}\n\n {space.notification && space.notification > 0 && <div style={notificationStyle}>{space.notification}</div>}\n </>\n );\n\n return (\n <button className={className} style={containerStyle} onClick={handleClick} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {buttonContent}\n </button>\n );\n}\n","import React, { useState, useMemo, useRef, ReactElement } from \"react\";\nimport { SearchSolid, PlusSolid, EllipsisVSolid, Close } from \"../../icons\";\nimport { SpaceSelector, Space } from \"./SpaceSelector\";\nimport { Typography } from \"../Typography\";\nimport { ButtonSubtle } from \"../ButtonSubtle\";\n\nexport interface Workspace {\n id: string;\n name: string;\n type: \"basic\" | \"private\" | \"domain\";\n image?: string;\n notification?: number;\n isActive?: boolean;\n}\n\nexport interface WorkspaceModalProps {\n position: { x: number; y: number; maxHeight?: number; useBottomPositioning?: boolean };\n onClose: () => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n workspaces?: Workspace[];\n onWorkspaceChange?: (workspace: Workspace) => void;\n onInputFocus?: () => void;\n onInputBlur?: () => void;\n}\nconst mockSpaces: Space[] = [\n {\n id: \"1\",\n name: \"Renewable Energy Project\",\n type: \"basic\",\n image: \"/placeholder-space.jpg\",\n useImage: true,\n notification: 2\n },\n {\n id: \"2\",\n name: \"Private Development Space\",\n type: \"private\",\n subtitle: \"User Domain\",\n notification: 2\n },\n {\n id: \"3\",\n name: \"Climate Action Hub\",\n type: \"domain\",\n image: \"/placeholder-space.jpg\",\n useImage: true,\n isActive: true\n },\n {\n id: \"4\",\n name: \"Ocean Conservation\",\n type: \"basic\",\n image: \"/placeholder-space.jpg\",\n useImage: true,\n notification: 2\n },\n {\n id: \"5\",\n name: \"Carbon Credits Exchange\",\n type: \"domain\",\n image: \"/placeholder-space.jpg\",\n useImage: true,\n notification: 2\n }\n];\n\nexport function WorkspaceModal({ position, onMouseEnter, onMouseLeave, onWorkspaceChange, onInputFocus, onInputBlur }: WorkspaceModalProps): ReactElement {\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [searchModeHeight, setSearchModeHeight] = useState<number | null>(null);\n const [isMoreModalOpen, setIsMoreModalOpen] = useState(false);\n const modalRef = useRef<HTMLDivElement>(null);\n\n // Mock workspaces based on Figma design - converting to Space format\n\n // Filter spaces based on search query\n const filteredSpaces = useMemo(() => {\n if (!searchQuery.trim()) {\n return mockSpaces;\n }\n\n return mockSpaces.filter(\n (space) =>\n space.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n (space.subtitle && space.subtitle.toLowerCase().includes(searchQuery.toLowerCase())) ||\n space.type.toLowerCase().includes(searchQuery.toLowerCase())\n );\n }, [searchQuery]);\n\n const modalStyle: React.CSSProperties = {\n position: \"fixed\",\n left: `${position.x}px`,\n ...(position.useBottomPositioning ? { bottom: `${window.innerHeight - position.y}px` } : { top: `${position.y}px` }),\n width: \"400px\",\n maxHeight: `${position.maxHeight || 400}px`,\n ...(isSearchActive && searchModeHeight ? { height: `${searchModeHeight}px` } : {}), // Fixed height during search\n background: \"#101111\",\n borderRadius: \"24px\",\n backdropFilter: \"blur(40px)\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n zIndex: 1000,\n color: \"#FFFFFF\",\n overflow: \"hidden\" // Prevent overflow from modal container\n };\n\n const headerStyle: React.CSSProperties = {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"0 16px\",\n height: \"44px\" // Match search bar height exactly\n };\n\n const headerLeftStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\"\n };\n\n const actionsStyle: React.CSSProperties = {\n display: \"flex\",\n gap: \"8px\"\n };\n\n // Search bar styles\n const searchBarStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n padding: \"2px 8px\",\n border: \"1px solid rgba(255, 255, 255, 0.3)\",\n borderRadius: \"8px\",\n background: \"transparent\",\n height: \"44px\", // Same height as the normal header buttons\n position: \"relative\", // For absolute positioned placeholder\n cursor: \"text\"\n };\n\n const searchInputStyle: React.CSSProperties = {\n flex: \"1\",\n background: \"transparent\",\n border: \"none\",\n outline: \"none\",\n color: \"rgba(255, 255, 255, 0.7)\",\n fontSize: \"16px\",\n fontWeight: \"400\",\n padding: \"0\"\n };\n\n const spacesContainerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n overflowY: \"auto\",\n // When modal has fixed height (search mode), don't stretch - just natural content height\n // When modal is flexible (normal mode), allow stretching with maxHeight constraint\n ...(isSearchActive && searchModeHeight\n ? {\n // Search mode with fixed height: natural content size\n flexShrink: 0\n }\n : {\n // Normal mode: allow stretching with reasonable constraint\n maxHeight: \"calc(100vh - 200px)\"\n }),\n // Custom scrollbar styling\n scrollbarWidth: \"thin\",\n scrollbarColor: \"rgba(255, 255, 255, 0.3) transparent\"\n };\n\n const handleSpaceClick = (space: Space): void => {\n // Convert Space back to Workspace for compatibility\n const workspace: Workspace = {\n id: space.id,\n name: space.name,\n type: space.type,\n image: space.image,\n notification: space.notification,\n isActive: space.isActive\n };\n onWorkspaceChange?.(workspace);\n };\n\n const handleSearchButtonClick = (): void => {\n // Capture current height before entering search mode\n if (modalRef.current) {\n const currentHeight = modalRef.current.offsetHeight;\n setSearchModeHeight(currentHeight);\n }\n setIsSearchActive(true);\n };\n\n const handleSearchClose = (): void => {\n setIsSearchActive(false);\n setSearchQuery(\"\");\n // Clear fixed height when exiting search\n setSearchModeHeight(null);\n };\n\n const handleSearchInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n setSearchQuery(e.target.value);\n };\n\n const handleInputFocus = (): void => {\n setIsInputFocused(true);\n onInputFocus?.();\n };\n\n const handleInputBlur = (): void => {\n setIsInputFocused(false);\n onInputBlur?.();\n };\n\n const handleSearchContainerClick = (e: React.MouseEvent): void => {\n // Prevent event bubbling that might close the modal\n e.stopPropagation();\n // Focus the input when clicking anywhere in the search container\n const input = e.currentTarget.querySelector(\"input\");\n if (input) {\n input.focus();\n }\n };\n\n const handleMoreButtonClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n setIsMoreModalOpen(!isMoreModalOpen);\n };\n\n const handleMoreModalClose = (): void => {\n setIsMoreModalOpen(false);\n };\n\n const handleMoreAction = (action: string): void => {\n console.log(\"More action clicked:\", action);\n setIsMoreModalOpen(false);\n };\n\n // More modal styles\n const moreModalStyle: React.CSSProperties = {\n position: \"fixed\",\n // Position next to the ellipsis button - align with top of main modal\n top: modalRef.current ? modalRef.current.getBoundingClientRect().top : position.useBottomPositioning ? window.innerHeight - position.y : position.y,\n left: position.x + 400 + 8, // Main modal width (400px) + small gap\n background: \"#101111\",\n borderRadius: \"12px\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\",\n padding: \"8px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n zIndex: 1001,\n minWidth: \"120px\",\n backdropFilter: \"blur(40px)\"\n };\n\n const moreActionButtonStyle: React.CSSProperties = {\n background: \"transparent\",\n border: \"none\",\n padding: \"8px 12px\",\n borderRadius: \"8px\",\n color: \"rgba(255, 255, 255, 0.7)\",\n fontSize: \"14px\",\n fontWeight: \"400\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease-in-out\"\n };\n\n const moreActionButtonHoverStyle: React.CSSProperties = {\n ...moreActionButtonStyle,\n backgroundColor: \"rgba(255, 255, 255, 0.08)\",\n color: \"#FFFFFF\"\n };\n\n return (\n <>\n <div\n ref={modalRef}\n style={modalStyle}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={(e) => e.stopPropagation()} // Prevent clicks from bubbling up\n >\n {/* Header - Normal or Search Mode */}\n {isSearchActive ? (\n // Search Bar Header\n <div style={searchBarStyle} onClick={handleSearchContainerClick}>\n {!isInputFocused && !searchQuery && (\n <span\n style={{\n color: \"rgba(255, 255, 255, 0.3)\",\n fontSize: \"16px\",\n position: \"absolute\",\n left: \"12px\",\n pointerEvents: \"none\",\n userSelect: \"none\"\n }}\n >\n Search\n </span>\n )}\n <input\n type=\"text\"\n value={searchQuery}\n onChange={handleSearchInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n style={{\n ...searchInputStyle,\n paddingLeft: !isInputFocused && !searchQuery ? \"60px\" : \"4px\"\n }}\n placeholder=\"\"\n autoFocus\n />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={Close} onClick={handleSearchClose} />\n </div>\n ) : (\n // Normal Header\n <div style={headerStyle}>\n <div style={headerLeftStyle}>\n <Typography.Text size=\"xs\" color=\"overPicture\">\n Spaces\n </Typography.Text>\n </div>\n <div style={actionsStyle}>\n <ButtonSubtle type=\"iconLeft\" state=\"default\" icon={PlusSolid} value=\"Create\" />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={SearchSolid} onClick={handleSearchButtonClick} />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={EllipsisVSolid} onClick={handleMoreButtonClick} />\n </div>\n </div>\n )}\n\n {/* Spaces using SpaceSelector component */}\n <div style={spacesContainerStyle}>\n {filteredSpaces.map((space) => (\n <SpaceSelector key={space.id} space={space} onClick={handleSpaceClick} />\n ))}\n {filteredSpaces.length === 0 && searchQuery.trim() && (\n <div\n style={{\n padding: \"20px\",\n textAlign: \"center\",\n color: \"rgba(255, 255, 255, 0.5)\",\n fontSize: \"14px\"\n }}\n >\n No spaces found matching "{searchQuery}"\n </div>\n )}\n </div>\n </div>\n\n {/* More Modal Overlay - Outside main modal to avoid clipping */}\n {isMoreModalOpen && (\n <>\n {/* Backdrop to close modal */}\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n background: \"transparent\"\n }}\n onClick={handleMoreModalClose}\n />\n\n {/* More Modal */}\n <div style={moreModalStyle}>\n {[\"Action 1\", \"Action 2\", \"Action 3\"].map((action) => (\n <button\n key={action}\n style={moreActionButtonStyle}\n onMouseEnter={(e) => {\n Object.assign(e.currentTarget.style, moreActionButtonHoverStyle);\n }}\n onMouseLeave={(e) => {\n Object.assign(e.currentTarget.style, moreActionButtonStyle);\n }}\n onClick={() => handleMoreAction(action)}\n >\n {action}\n </button>\n ))}\n </div>\n </>\n )}\n </>\n );\n}\n","import { ReactElement } from \"react\";\nimport { IconCmp } from \"../../../types/IconCmp\";\nimport { Center } from \"@mantine/core\";\nimport { Flex } from \"../../Base/Flex\";\nimport { Typography } from \"../../Typography\";\nimport { useHover } from \"@mantine/hooks\";\nimport { useUITheme } from \"../../../hooks/useUITheme\";\n\ntype Props = {\n onClick: () => void;\n name: string;\n Icon: IconCmp;\n};\nexport default function UserModalItem({ Icon, name, onClick }: Props): ReactElement {\n const { hovered, ref } = useHover<HTMLDivElement>();\n const theme = useUITheme();\n\n return (\n <Flex\n ref={ref}\n align=\"center\"\n gap={12}\n px={16}\n py={16}\n radius={12}\n style={{\n background: hovered ? theme.colors.whiteTransparent10 : theme.bg.navbarModal,\n cursor: \"pointer\"\n }}\n onClick={onClick}\n >\n <Center w={46} h={46} sx={{ borderRadius: 8, background: theme.bg.navbarModal }}>\n <Icon />\n </Center>\n <Typography.Text color=\"overPicture\">{name}</Typography.Text>\n </Flex>\n );\n}\n","import { useRef, ReactElement } from \"react\";\nimport { Box, Stack } from \"@mantine/core\";\nimport { PlusSolid, EllipsisVSolid } from \"../../../icons\";\nimport { Typography } from \"../../Typography\";\nimport { ButtonSubtle } from \"../../ButtonSubtle\";\nimport { Flex } from \"../../Base/Flex\";\nimport { IconCmp } from \"../../../types/IconCmp\";\nimport UserModalItem from \"./UserModalItem\";\n\nexport type UserModalProps = {\n position: { x: number; y: number; maxHeight?: number; useBottomPositioning?: boolean };\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n items?: {\n id: string;\n Icon: IconCmp;\n name: string;\n subtitle?: string;\n onClick: (id: string) => void;\n }[];\n};\n\nexport function UserModal({ position, items = [], onMouseEnter, onMouseLeave }: UserModalProps): ReactElement {\n const modalRef = useRef<HTMLDivElement>(null);\n\n return (\n <Box\n ref={modalRef}\n w={400}\n pos=\"fixed\"\n mah={`${position.maxHeight || 400}px`}\n bg=\"#101111\"\n bottom={`${window.innerHeight - position.y}px`}\n sx={{\n left: `${position.x}px`,\n borderRadius: \"24px\",\n border: \"1px solid rgba(255, 255, 255, 0.1)\"\n }}\n p={16}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <Flex direction=\"column\" gap={12}>\n <Flex justify=\"space-between\" align=\"center\" px={16} style={{ height: 44 }}>\n <Flex align=\"center\" gap={8}>\n <Typography.Text size=\"xs\" color=\"overPicture\">\n Profile\n </Typography.Text>\n </Flex>\n <Flex gap={8}>\n <ButtonSubtle type=\"iconLeft\" state=\"default\" icon={PlusSolid} value=\"Create\" />\n <ButtonSubtle type=\"iconOnly\" state=\"default\" icon={EllipsisVSolid} />\n </Flex>\n </Flex>\n <Stack>\n {items.map(({ Icon, id, name, onClick }) => (\n <UserModalItem key={id} Icon={Icon} name={name} onClick={() => onClick(id)} />\n ))}\n </Stack>\n </Flex>\n </Box>\n );\n}\n","import React, { useState, useRef, useCallback, ReactElement } from \"react\";\nimport { DynamicNav, DynamicNavProps, NavItem } from \"./DynamicNav\";\nimport { User, UserNav, Workspace } from \"./UserNav\";\nimport { DomainModal } from \"./DomainModal\";\nimport { MoreModal } from \"./MoreModal\";\nimport { WorkspaceModal } from \"./WorkspaceModal\";\nimport { UserModal, UserModalProps } from \"./UserModal/UserModal\";\n\nexport interface NavigationBarProps {\n currentDomain: DynamicNavProps[\"currentDomain\"];\n navigationItems?: NavItem[];\n workspaces?: Workspace[];\n userModalItems: UserModalProps[\"items\"];\n user?: User;\n onNavigate?: (item: NavItem) => void;\n onDomainChange?: DynamicNavProps[\"onDomainChange\"];\n onWorkspaceChange?: (workspace: Workspace) => void;\n ecosystemName?: string;\n ecosystemImage?: string;\n onEcosystemClick?: () => void;\n}\n\nexport function NavigationBar({\n currentDomain,\n navigationItems,\n workspaces,\n user,\n onNavigate,\n onDomainChange,\n onWorkspaceChange,\n userModalItems,\n ecosystemName,\n ecosystemImage,\n onEcosystemClick\n}: NavigationBarProps): ReactElement {\n const [hoveredItem, setHoveredItem] = useState<string | null>(null);\n const [modalPosition, setModalPosition] = useState({ x: 0, y: 0, maxHeight: 400, useBottomPositioning: false });\n const [moreItems, setMoreItems] = useState<import(\"./DynamicNav\").NavItem[]>([]);\n\n // Timeout refs for debouncing\n const hoverEnterTimeoutRef = useRef<number | null>(null);\n const hoverLeaveTimeoutRef = useRef<number | null>(null);\n const modalLeaveTimeoutRef = useRef<number | null>(null);\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const clearAllTimeouts = useCallback(() => {\n if (hoverEnterTimeoutRef.current) {\n clearTimeout(hoverEnterTimeoutRef.current);\n hoverEnterTimeoutRef.current = null;\n }\n if (hoverLeaveTimeoutRef.current) {\n clearTimeout(hoverLeaveTimeoutRef.current);\n hoverLeaveTimeoutRef.current = null;\n }\n if (modalLeaveTimeoutRef.current) {\n clearTimeout(modalLeaveTimeoutRef.current);\n modalLeaveTimeoutRef.current = null;\n }\n }, []);\n\n const showModal = useCallback(\n (itemId: string, position: { x: number; y: number; maxHeight: number; useBottomPositioning: boolean }) => {\n clearAllTimeouts();\n setModalPosition(position);\n setHoveredItem(itemId);\n },\n [clearAllTimeouts]\n );\n\n const hideModal = useCallback(() => {\n clearAllTimeouts();\n setHoveredItem(null);\n }, [clearAllTimeouts]);\n\n const handleItemHover = useCallback(\n (itemId: string, event: React.MouseEvent) => {\n // Prevent rapid re-triggering of the same item\n if (hoveredItem === itemId) {\n return;\n }\n\n // Safety check for currentTarget\n if (!event.currentTarget) {\n console.warn(\"NavigationBar: event.currentTarget is null, skipping hover\");\n return;\n }\n\n const rect = event.currentTarget.getBoundingClientRect();\n const navBarRect = event.currentTarget.closest(\"[data-navigation-bar]\")?.getBoundingClientRect();\n\n let yPosition = rect.top;\n let xPosition = 88; // Default fallback\n let maxHeight = 400; // Default max height\n\n if (navBarRect) {\n // Calculate x position to be exactly on the right edge of NavigationBar\n xPosition = navBarRect.right;\n\n if (itemId === \"domain\") {\n yPosition = navBarRect.top;\n maxHeight = navBarRect.height;\n } else if (itemId === \"more\") {\n const dynamicNav = event.currentTarget?.closest(\"[data-dynamic-nav]\");\n if (dynamicNav) {\n const dynamicRect = dynamicNav.getBoundingClientRect();\n\n // Get the actual DynamicNav component height\n const dynamicNavHeight = dynamicRect.height;\n\n // Use actual more items count, but fallback to calculation if empty\n let moreItemsCount = moreItems.length;\n\n if (moreItemsCount === 0) {\n // Fallback calculation when moreItems hasn't been populated yet\n const totalNavItems = navigationItems?.length || 0;\n const maxVisibleInMain = Math.floor((dynamicNavHeight - 123) / 90); // 123px fixed content, 90px per item\n moreItemsCount = Math.max(0, totalNavItems - maxVisibleInMain);\n }\n\n // Estimate modal content height\n // Modal padding: 32px, Header: ~60px, Each action: ~72px, Gap between sections: ~12px\n const estimatedModalHeight = Math.min(400, 32 + 60 + moreItemsCount * 72 + 12);\n\n // Calculate positioning based on modal size vs available space\n if (estimatedModalHeight <= dynamicNavHeight) {\n // Modal fits in DynamicNav - position so modal bottom aligns with DynamicNav bottom\n maxHeight = dynamicNavHeight;\n yPosition = dynamicRect.bottom - estimatedModalHeight; // Top of modal\n } else if (estimatedModalHeight <= navBarRect.height) {\n // Modal is bigger than DynamicNav but fits in NavigationBar - top align with NavigationBar\n maxHeight = navBarRect.height;\n yPosition = navBarRect.top;\n } else {\n // Modal is bigger than NavigationBar - top align and make scrollable\n maxHeight = navBarRect.height;\n yPosition = navBarRect.top;\n }\n }\n } else if (itemId === \"workspaces\") {\n // Position modal so its bottom aligns with NavigationBar bottom\n maxHeight = navBarRect.height;\n // For workspace modal, we'll use bottom positioning instead of top\n yPosition = navBarRect.bottom;\n } else if (itemId === \"user\") {\n // Position modal so its bottom aligns with NavigationBar bottom\n maxHeight = navBarRect.height;\n // For workspace modal, we'll use bottom positioning instead of top\n yPosition = navBarRect.bottom;\n }\n } else {\n // Fallback for Storybook or environments where NavigationBar positioning fails\n xPosition = rect.right + 8; // Position to the right of the hovered item\n yPosition = rect.top;\n maxHeight = Math.min(400, window.innerHeight - rect.top - 20);\n }\n\n clearAllTimeouts();\n\n // Add debouncing for hover enter to prevent rapid flickering\n hoverEnterTimeoutRef.current = window.setTimeout(() => {\n // Determine positioning strategy\n let useBottomPositioning = false;\n if (itemId === \"workspaces\") {\n useBottomPositioning = true;\n } else if (itemId === \"more\") {\n // More modal always uses top positioning since we calculate exact Y coordinate\n useBottomPositioning = false;\n } else if (itemId === \"user\") {\n // More modal always uses top positioning since we calculate exact Y coordinate\n useBottomPositioning = true;\n }\n\n showModal(itemId, {\n x: xPosition,\n y: yPosition,\n maxHeight,\n useBottomPositioning\n });\n }, 100); // 100ms delay before showing modal\n },\n [hoveredItem, showModal, clearAllTimeouts]\n );\n\n const handleItemLeave = useCallback(() => {\n // Clear enter timeout if still pending\n if (hoverEnterTimeoutRef.current) {\n clearTimeout(hoverEnterTimeoutRef.current);\n hoverEnterTimeoutRef.current = null;\n }\n\n // Set a delay before closing to allow moving to modal\n hoverLeaveTimeoutRef.current = window.setTimeout(() => {\n hideModal();\n }, 200); // Increased to 200ms for better UX\n }, [hideModal]);\n\n const handleModalEnter = useCallback(() => {\n // Clear the leave timeout when entering modal\n clearAllTimeouts();\n }, [clearAllTimeouts]);\n\n const handleModalLeave = useCallback(() => {\n // Don't close modal immediately if input is focused\n if (isInputFocused) {\n return;\n }\n\n // Add debouncing like handleItemLeave to prevent rapid flickering\n modalLeaveTimeoutRef.current = window.setTimeout(() => {\n // Double-check input focus state before closing\n if (!isInputFocused) {\n hideModal();\n }\n }, 200); // Same delay as item leave\n }, [hideModal, isInputFocused]);\n\n const handleModalInputFocus = useCallback(() => {\n setIsInputFocused(true);\n // Clear any pending modal close timeouts when input gets focus\n if (modalLeaveTimeoutRef.current) {\n clearTimeout(modalLeaveTimeoutRef.current);\n modalLeaveTimeoutRef.current = null;\n }\n }, []);\n\n const handleModalInputBlur = useCallback(() => {\n setIsInputFocused(false);\n }, []);\n\n const handleMoreItemsChange = useCallback((items: NavItem[]) => {\n setMoreItems(items);\n }, []);\n\n // Get more items for MoreModal - memoize to prevent unnecessary re-calculations\n const getMoreItems = useCallback(() => {\n return moreItems;\n }, [moreItems]);\n\n // Main container with 100% height\n const containerStyle: React.CSSProperties = {\n width: \"88px\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n boxSizing: \"border-box\"\n };\n\n return (\n <>\n <div style={containerStyle} data-navigation-bar>\n {/* Dynamic Navigation Section - natural size with maxHeight constraint */}\n <div style={{ flexShrink: 0 }}>\n <DynamicNav\n currentDomain={currentDomain}\n navigationItems={navigationItems}\n onNavigate={onNavigate}\n onDomainChange={onDomainChange}\n onItemHover={handleItemHover}\n onItemLeave={handleItemLeave}\n onMoreItemsChange={handleMoreItemsChange}\n />\n </div>\n\n {/* Spacer - grows to fill remaining space and creates gap */}\n <div style={{ flex: \"1\", minHeight: \"24px\" }} />\n\n {/* User Navigation Section - sticks to bottom */}\n <div style={{ flexShrink: 0 }}>\n <UserNav workspaces={workspaces} user={user} onWorkspaceChange={onWorkspaceChange} onItemHover={handleItemHover} onItemLeave={handleItemLeave} />\n </div>\n </div>\n\n {/* Modals */}\n {hoveredItem === \"domain\" && (\n <DomainModal\n position={modalPosition}\n onClose={handleModalLeave}\n onMouseEnter={handleModalEnter}\n onMouseLeave={handleModalLeave}\n currentDomain={currentDomain}\n onDomainChange={onDomainChange}\n onInputFocus={() => setIsInputFocused(true)}\n onInputBlur={() => setIsInputFocused(false)}\n ecosystemName={ecosystemName}\n ecosystemImage={ecosystemImage}\n onEcosystemClick={onEcosystemClick}\n />\n )}\n\n {hoveredItem === \"more\" && (\n <MoreModal\n position={modalPosition}\n onClose={handleModalLeave}\n onItemClick={onNavigate}\n onMouseEnter={handleModalEnter}\n onMouseLeave={handleModalLeave}\n items={getMoreItems()}\n />\n )}\n\n {hoveredItem === \"workspaces\" && (\n <WorkspaceModal\n position={modalPosition}\n onClose={handleModalLeave}\n onMouseEnter={handleModalEnter}\n onMouseLeave={handleModalLeave}\n workspaces={workspaces}\n onWorkspaceChange={onWorkspaceChange}\n onInputFocus={handleModalInputFocus}\n onInputBlur={handleModalInputBlur}\n />\n )}\n {hoveredItem === \"user\" && user && <UserModal items={userModalItems} position={modalPosition} onMouseEnter={handleModalEnter} onMouseLeave={handleModalLeave} />}\n </>\n );\n}\n"],"names":["css","jsx","toggle","Accordion","Header","CARD_WIDTH","spacing","NAV_MENU_HEIGHT","SearchInput","Text","Badge","Stack","Tooltip","state","disabled","Chart","selectedItem","BUTTON_SIZE","WRAPPER_SIZE","Popover","Assets","DEFAULT_BG","this","r","e","t","o","n","i","d","Fragment","Content","document","ChartComponent","TooltipComponent","Info","visibleItems"],"mappings":"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","x_google_ignoreList":[91]}
|