From 15352ad9f9104778da740db41e8debffa2f7ce19 Mon Sep 17 00:00:00 2001 From: Sam Rose <11774595+sam-b-rose@users.noreply.github.com> Date: Thu, 14 Sep 2023 15:20:47 -0400 Subject: [PATCH] [Avatar] Remove customer prop and experiemntal values (#10283) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### WHY are these changes introduced? Fixes #9977 ### WHAT is this pull request doing? - [x] Remove `customer` boolean prop (make the default) - [x] Remove `-experimental` from `size` prop - [x] Update Avatar stories - [x] Update Avatar documentation examples - [x] Update `v12` migration guide - [x] Write migration for `Avatar` prop changes - [x] remove `customer` prop - [x] `size` prop mapping ### 🎩 checklist - [ ] Tested on [mobile](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md#cross-browser-testing) - [ ] Tested on [multiple browsers](https://help.shopify.com/en/manual/shopify-admin/supported-browsers) - [ ] Tested for [accessibility](https://github.com/Shopify/polaris/blob/main/documentation/Accessibility%20testing.md) - [ ] Updated the component's `README.md` with documentation changes - [ ] [Tophatted documentation](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting%20documentation.md) changes in the style guide --------- Co-authored-by: Sam Rose <11774595+samrose3@users.noreply.github.com> Co-authored-by: aveline --- .changeset/hot-apples-press.md | 14 ++++ .../guides/migrating-from-v11-to-v12.md | 16 +++++ .../transform.ts | 17 +++-- .../tests/transform.test.ts | 14 ++++ .../v12-react-avatar-component.input.tsx | 16 +++++ .../v12-react-avatar-component.output.tsx | 16 +++++ .../v12-react-avatar-component/transform.ts | 66 ++++++++++++++++++ polaris-migrator/src/utilities/jsx.ts | 18 +++-- .../ActionList/ActionList.stories.tsx | 2 +- .../AppProvider/AppProvider.stories.tsx | 4 +- .../src/components/Avatar/Avatar.scss | 40 +++++------ .../src/components/Avatar/Avatar.stories.tsx | 41 +++++------ .../src/components/Avatar/Avatar.tsx | 57 ++++++--------- .../components/Avatar/tests/Avatar.test.tsx | 21 +++--- .../components/Filters/Filters.stories.tsx | 14 ++-- .../LegacyFilters/LegacyFilters.stories.tsx | 16 ++--- .../OptionList/OptionList.stories.tsx | 4 +- .../components/Popover/Popover.stories.tsx | 4 +- .../ResourceItem/ResourceItem.stories.tsx | 45 ++---------- .../ResourceItem/tests/ResourceItem.test.tsx | 2 +- .../ResourceList/ResourceList.stories.tsx | 30 ++++---- .../src/components/TopBar/TopBar.stories.tsx | 2 +- .../TopBar/components/UserMenu/UserMenu.tsx | 2 +- .../components/images-and-icons/avatar.md | 11 +-- ...action-list-with-a-prefix-and-a-suffix.tsx | 2 +- .../pages/examples/app-provider-default.tsx | 2 +- .../pages/examples/app-provider-with-i18n.tsx | 2 +- .../pages/examples/avatar-default.tsx | 2 +- .../pages/examples/avatar-extra-small.tsx | 6 +- .../block-stack-with-inline-align.tsx | 8 +-- .../examples/button-plain-monochrome.tsx | 4 +- .../pages/examples/filters-disabled.tsx | 2 +- .../examples/filters-with-a-resource-list.tsx | 2 +- .../filters-with-children-content.tsx | 2 +- .../filters-with-query-field-disabled.tsx | 2 +- .../filters-with-query-field-hidden.tsx | 2 +- .../examples/filters-with-some-disabled.tsx | 2 +- .../index-table-with-disabled-rows.tsx | 13 +++- .../pages/examples/layout-annotated.tsx | 8 ++- .../examples/legacy-filters-disabled.tsx | 2 +- .../examples/legacy-filters-some-disabled.tsx | 2 +- .../legacy-filters-with-a-resource-list.tsx | 2 +- .../legacy-filters-with-children-content.tsx | 2 +- .../legacy-filters-with-help-text.tsx | 2 +- ...gacy-filters-with-query-field-disabled.tsx | 2 +- ...legacy-filters-with-query-field-hidden.tsx | 2 +- .../legacy-filters-without-clear-button.tsx | 2 +- .../popover-with-lazy-loaded-list.tsx | 2 +- .../examples/resource-item-with-media.tsx | 9 +-- .../resource-item-with-shortcut-actions.tsx | 9 +-- .../resource-item-with-vertical-alignment.tsx | 9 +-- .../pages/examples/resource-list-default.tsx | 2 +- ...ith-a-custom-empty-search-result-state.tsx | 2 +- ...resource-list-with-all-of-its-elements.tsx | 2 +- .../resource-list-with-alternate-tool.tsx | 2 +- .../resource-list-with-bulk-actions.tsx | 2 +- .../examples/resource-list-with-filtering.tsx | 2 +- ...source-list-with-item-shortcut-actions.tsx | 2 +- .../resource-list-with-loading-state.tsx | 2 +- .../resource-list-with-multiselect.tsx | 2 +- ...-with-persistent-item-shortcut-actions.tsx | 2 +- ...ist-with-selection-and-no-bulk-actions.tsx | 2 +- .../examples/resource-list-with-sorting.tsx | 2 +- .../resource-list-with-total-count.tsx | 2 +- .../components/images-and-icons/avatar.png | Bin 49107 -> 6289 bytes 65 files changed, 336 insertions(+), 266 deletions(-) create mode 100644 .changeset/hot-apples-press.md create mode 100644 polaris-migrator/src/migrations/v12-react-avatar-component/tests/transform.test.ts create mode 100644 polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.input.tsx create mode 100644 polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.output.tsx create mode 100644 polaris-migrator/src/migrations/v12-react-avatar-component/transform.ts diff --git a/.changeset/hot-apples-press.md b/.changeset/hot-apples-press.md new file mode 100644 index 00000000000..a9cd6754f93 --- /dev/null +++ b/.changeset/hot-apples-press.md @@ -0,0 +1,14 @@ +--- +'@shopify/polaris': major +--- + +Renamed `size` prop values for the Avatar component. See the following table for the new prop mappings. + +| Before | After | +| ------------------------- | ----------- | +| `size="extraSmall"` | `size="xs"` | +| `size="small"` | `size="sm"` | +| `size="medium"` | `size="md"` | +| `size="large"` | `size="lg"` | +| `size="xl-experimental"` | `size="xl"` | +| `size="2xl-experimental"` | `size="xl"` | diff --git a/documentation/guides/migrating-from-v11-to-v12.md b/documentation/guides/migrating-from-v11-to-v12.md index 21b2ede1d12..35f0ea06359 100644 --- a/documentation/guides/migrating-from-v11-to-v12.md +++ b/documentation/guides/migrating-from-v11-to-v12.md @@ -8,6 +8,22 @@ Polaris v12.0.0 ([full release notes](https://github.com/Shopify/polaris/release ## Quick migration guide +**Avatar** + +`npx @shopify/polaris-migrator v12-react-avatar-component ` + +- Remove the `customer` prop +- Replace the `size` prop with the new mapping below + +| Before | After | +| ------------------------- | ----------- | +| `size="extraSmall"` | `size="xs"` | +| `size="small"` | `size="sm"` | +| `size="medium"` | `size="md"` | +| `size="large"` | `size="lg"` | +| `size="xl-experimental"` | `size="xl"` | +| `size="2xl-experimental"` | `size="xl"` | + **Badge** `npx @shopify/polaris-migrator react-rename-component-prop --componentName="Badge" --from="status" --to="tone"` diff --git a/polaris-migrator/src/migrations/v11-react-update-page-breadcrumbs/transform.ts b/polaris-migrator/src/migrations/v11-react-update-page-breadcrumbs/transform.ts index 2459bc2e379..5593fe89e7c 100644 --- a/polaris-migrator/src/migrations/v11-react-update-page-breadcrumbs/transform.ts +++ b/polaris-migrator/src/migrations/v11-react-update-page-breadcrumbs/transform.ts @@ -1,4 +1,10 @@ -import type {API, FileInfo, Options} from 'jscodeshift'; +import type { + API, + FileInfo, + Options, + ArrayExpression, + ASTPath, +} from 'jscodeshift'; import {POLARIS_MIGRATOR_COMMENT} from '../../utilities/constants'; import { @@ -69,15 +75,12 @@ export default function transformer( return true; }) .find(j.ArrayExpression) - .replaceWith((nodePath) => { + .replaceWith((nodePath: ASTPath) => { const arrayOfBreadcrumbs = nodePath.node.elements; if (arrayOfBreadcrumbs.length === 0) { - removeJSXAttributes( - j, - nodePath.parentPath.parentPath.parentPath.parentPath, - 'breadcrumbs', - ); + const element = j(nodePath).closest(j.JSXElement).paths()[0]; + removeJSXAttributes(j, element, 'breadcrumbs'); return; } diff --git a/polaris-migrator/src/migrations/v12-react-avatar-component/tests/transform.test.ts b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/transform.test.ts new file mode 100644 index 00000000000..6f89565e37f --- /dev/null +++ b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/transform.test.ts @@ -0,0 +1,14 @@ +import {check} from '../../../utilities/check'; + +const transform = 'v12-react-avatar-component'; +const fixtures = ['v12-react-avatar-component']; + +for (const fixture of fixtures) { + check(__dirname, { + fixture, + transform, + options: { + relative: fixture.includes('relative') ? true : undefined, + }, + }); +} diff --git a/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.input.tsx b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.input.tsx new file mode 100644 index 00000000000..127b8ea2b2f --- /dev/null +++ b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.input.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import {Avatar} from '@shopify/polaris'; + +export function App() { + return ( + <> + + + + + + + + + ); +} diff --git a/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.output.tsx b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.output.tsx new file mode 100644 index 00000000000..123720922c3 --- /dev/null +++ b/polaris-migrator/src/migrations/v12-react-avatar-component/tests/v12-react-avatar-component.output.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import {Avatar} from '@shopify/polaris'; + +export function App() { + return ( + <> + + + + + + + + + ); +} diff --git a/polaris-migrator/src/migrations/v12-react-avatar-component/transform.ts b/polaris-migrator/src/migrations/v12-react-avatar-component/transform.ts new file mode 100644 index 00000000000..fe692d4805c --- /dev/null +++ b/polaris-migrator/src/migrations/v12-react-avatar-component/transform.ts @@ -0,0 +1,66 @@ +import type {API, FileInfo, Options} from 'jscodeshift'; + +import { + getImportSpecifierName, + hasImportDeclaration, + hasImportSpecifier, + normalizeImportSourcePaths, +} from '../../utilities/imports'; +import {removeJSXAttributes, replaceJSXAttributes} from '../../utilities/jsx'; + +export interface MigrationOptions extends Options { + relative?: boolean; +} + +export default function transformer( + file: FileInfo, + {jscodeshift: j}: API, + options: MigrationOptions, +) { + const source = j(file.source); + + if ( + !options.relative && + !hasImportDeclaration(j, source, '@shopify/polaris') + ) { + return file.source; + } + + const sourcePaths = normalizeImportSourcePaths(j, source, { + relative: options.relative, + from: 'Avatar', + to: 'Avatar', + }); + + if (!sourcePaths) return; + if ( + !hasImportSpecifier(j, source, 'Avatar', sourcePaths.from) && + !hasImportSpecifier(j, source, 'AvatarProps', sourcePaths.from) + ) { + return; + } + + const localElementName = + getImportSpecifierName(j, source, 'Avatar', sourcePaths.from) || 'Avatar'; + + // Find all JSX elements with the name 'Avatar' + source.findJSXElements(localElementName).forEach((element) => { + // Remove the 'customer' prop + removeJSXAttributes(j, element, 'customer'); + // Replace the 'size' prop value with the new size + replaceJSXAttributes(j, element, 'size', 'size', sizeMapping); + }); + + return source.toSource(); +} + +// Define the mapping of old sizes to new sizes +const sizeMapping = { + extraSmall: 'xs', + small: 'sm', + medium: 'md', + large: 'lg', + 'xl-experimental': 'xl', + // 2xl-experimental is not supported in the new Avatar component + '2xl-experimental': 'xl', +}; diff --git a/polaris-migrator/src/utilities/jsx.ts b/polaris-migrator/src/utilities/jsx.ts index a63ab4dc6e9..5b418b71993 100644 --- a/polaris-migrator/src/utilities/jsx.ts +++ b/polaris-migrator/src/utilities/jsx.ts @@ -39,7 +39,7 @@ export function removeJSXAttributes( element: ASTPath, attributeName: string, ) { - const jsxAttributes = element.value.attributes?.filter( + const jsxAttributes = element.value.openingElement?.attributes?.filter( (attr) => attr.type === 'JSXAttribute' && attr.name.name === attributeName, ); @@ -97,10 +97,18 @@ export function replaceJSXAttributes( j(attribute) .find(j.StringLiteral) .forEach((literal) => { - literal.node.value = - typeof newAttributeValue === 'string' - ? newAttributeValue - : newAttributeValue[literal.node.value]; + const isStringLiteral = typeof newAttributeValue === 'string'; + + if (isStringLiteral) { + literal.node.value = newAttributeValue; + return; + } + + const value = literal.node.value as string; + + if (value in newAttributeValue) { + literal.node.value = newAttributeValue[literal.node.value]; + } }); }); } diff --git a/polaris-react/src/components/ActionList/ActionList.stories.tsx b/polaris-react/src/components/ActionList/ActionList.stories.tsx index afee067d7c3..7aae78cb9e1 100644 --- a/polaris-react/src/components/ActionList/ActionList.stories.tsx +++ b/polaris-react/src/components/ActionList/ActionList.stories.tsx @@ -374,7 +374,7 @@ export function WithAPrefixAndASuffix() { }, { content: 'Or there', - prefix: , + prefix: , suffix: , }, ]} diff --git a/polaris-react/src/components/AppProvider/AppProvider.stories.tsx b/polaris-react/src/components/AppProvider/AppProvider.stories.tsx index 3c92d7c86f8..bb73c1f2c10 100644 --- a/polaris-react/src/components/AppProvider/AppProvider.stories.tsx +++ b/polaris-react/src/components/AppProvider/AppProvider.stories.tsx @@ -58,7 +58,7 @@ export function Default(_, context) { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( @@ -121,7 +121,7 @@ export function WithI18n(_, context) { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( diff --git a/polaris-react/src/components/Avatar/Avatar.scss b/polaris-react/src/components/Avatar/Avatar.scss index 87969a21d90..132235de340 100644 --- a/polaris-react/src/components/Avatar/Avatar.scss +++ b/polaris-react/src/components/Avatar/Avatar.scss @@ -2,18 +2,17 @@ .Avatar { // stylelint-disable -- Polaris component custom properties - --pc-avatar-extra-small-size: 20px; - --pc-avatar-small-size: 24px; - --pc-avatar-medium-size: 28px; - --pc-avatar-large-size: 32px; - --pc-avatar-xl-size-experimental: 40px; - --pc-avatar-2xl-size-experimental: 54px; + --pc-avatar-xs-size: 20px; + --pc-avatar-sm-size: 24px; + --pc-avatar-md-size: 28px; + --pc-avatar-lg-size: 32px; + --pc-avatar-xl-size: 40px; // stylelint-enable position: relative; display: block; overflow: hidden; // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - min-width: var(--pc-avatar-extra-small-size); + min-width: var(--pc-avatar-xs-size); max-width: 100%; background: var(--p-color-avatar-background-experimental); color: var(--p-color-avatar-color-experimental); @@ -48,48 +47,41 @@ visibility: hidden; } -.sizeExtraSmall { +.sizeXs { // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - width: var(--pc-avatar-extra-small-size); + width: var(--pc-avatar-xs-size); // stylelint-disable-next-line -- custom overrides border-radius: 4px; } -.sizeSmall { +.sizeSm { // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - width: var(--pc-avatar-small-size); + width: var(--pc-avatar-sm-size); // stylelint-disable-next-line -- custom overrides border-radius: 6px; } -.sizeMedium { +.sizeMd { // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - width: var(--pc-avatar-medium-size); + width: var(--pc-avatar-md-size); // stylelint-disable-next-line -- custom overrides border-radius: 6px; } -.sizeLarge { +.sizeLg { // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY - width: var(--pc-avatar-large-size); + width: var(--pc-avatar-lg-size); // stylelint-disable-next-line -- custom overrides border-radius: 8px; } -.sizeXl-experimental { +.sizeXl { // stylelint-disable-next-line -- custom overrides - width: var(--pc-avatar-xl-size-experimental); + width: var(--pc-avatar-xl-size); // stylelint-disable-next-line -- custom overrides border-radius: 8px; } -.size2xl-experimental { - // stylelint-disable-next-line -- custom overrides - width: var(--pc-avatar-2xl-size-experimental); - // stylelint-disable-next-line -- custom overrides - border-radius: 10px; -} - .styleOne { background: var(--p-color-avatar-style-one-background-experimental); color: var(--p-color-avatar-style-one-color-experimental); diff --git a/polaris-react/src/components/Avatar/Avatar.stories.tsx b/polaris-react/src/components/Avatar/Avatar.stories.tsx index 1b2529251bd..4dea0fe51a2 100644 --- a/polaris-react/src/components/Avatar/Avatar.stories.tsx +++ b/polaris-react/src/components/Avatar/Avatar.stories.tsx @@ -20,18 +20,13 @@ export default { component: Avatar, } as ComponentMeta; -const sizes: { - [S in NonNullable]: string; -} = { - '2xl-experimental': 'XXL', - 'xl-experimental': 'XL', - large: 'Large', - medium: 'Medium', - small: 'Small', - extraSmall: 'XS', -}; - -const sizeEntries = Object.entries(sizes) as Entries; +const sizes: NonNullable[] = [ + 'xl', + 'lg', + 'md', + 'sm', + 'xs', +]; type Style = typeof STYLE_CLASSES[number]; @@ -73,7 +68,7 @@ export function All() { Default - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ))} @@ -83,8 +78,8 @@ export function All() { With customer - {sizeEntries.map(([size]) => ( - + {sizes.map((size) => ( + ))} @@ -120,7 +115,7 @@ export function All() { - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ))} @@ -141,7 +136,7 @@ export function IconColorsSizes() { {styleInitialsDefaultEntries.map(([style, initials]) => ( - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ))} @@ -155,7 +150,7 @@ export function InitialsColorsSizes() { {styleInitialsDefaultEntries.map(([style, initials]) => ( - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ))} @@ -169,7 +164,7 @@ export function InitialsLong() { {styleInitialsLongEntries.map(([style, initialsLong]) => ( - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ))} @@ -194,13 +189,11 @@ export function ExtraSmallInContext() { items={[ { content: 'Chet Baker', - prefix: , + prefix: , }, { content: 'Farrah Fawcett', - prefix: ( - - ), + prefix: , }, ]} /> @@ -212,7 +205,7 @@ export function ExtraSmallInContext() { export function Image() { return ( - {sizeEntries.map(([size]) => ( + {sizes.map((size) => ( ; +type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; enum Status { Pending = 'PENDING', @@ -24,12 +18,11 @@ enum Status { export const STYLE_CLASSES = ['one', 'two', 'three', 'four', 'five'] as const; const avatarStrokeWidth: {[S in Size]: string} = { - extraSmall: '3', - small: '2.5', - medium: '2.5', - large: '2.5', - 'xl-experimental': '2', - '2xl-experimental': '1.5', + xs: '3', + sm: '2.5', + md: '2.5', + lg: '2.5', + xl: '2', }; /** @@ -62,8 +55,6 @@ export interface AvatarProps { name?: string; /** Initials of person to display */ initials?: string; - /** Whether the avatar is for a customer */ - customer?: boolean; /** URL of the avatar image which falls back to initials if the image fails to load */ source?: string; /** Callback fired when the image fails to load */ @@ -77,8 +68,7 @@ export function Avatar({ source, onError, initials, - customer, - size = 'medium', + size = 'md', accessibilityLabel, }: AvatarProps) { const i18n = useI18n(); @@ -122,9 +112,7 @@ export function Avatar({ styles.Avatar, size && styles[variationName('size', size)], hasImage && status === Status.Loaded && styles.imageHasLoaded, - !customer && - !source && - styles[variationName('style', styleClass(nameString))], + !source && styles[variationName('style', styleClass(nameString))], ); const textClassName = classNames( @@ -170,21 +158,20 @@ export function Avatar({ ); - const avatarBody = - customer || !initials ? ( - avatarPath - ) : ( - - {initials} - - ); + const avatarBody = !initials ? ( + avatarPath + ) : ( + + {initials} + + ); const svgMarkup = hasImage ? null : ( diff --git a/polaris-react/src/components/Avatar/tests/Avatar.test.tsx b/polaris-react/src/components/Avatar/tests/Avatar.test.tsx index f851def0a3b..a63027f1907 100644 --- a/polaris-react/src/components/Avatar/tests/Avatar.test.tsx +++ b/polaris-react/src/components/Avatar/tests/Avatar.test.tsx @@ -36,7 +36,7 @@ describe('', () => { const src = 'image/path/'; const avatar = mountWithApp(); expect(avatar).toContainReactComponent('span', { - className: 'Avatar sizeMedium', + className: 'Avatar sizeMd', }); expect(avatar).toContainReactComponent('span', { className: expect.not.stringContaining('styleOne'), @@ -46,21 +46,21 @@ describe('', () => { describe('customer', () => { it('renders an inline svg', () => { - const avatar = mountWithApp(); + const avatar = mountWithApp(); expect(avatar).toContainReactComponentTimes('svg', 1); }); it('does not render a customer Avatar if a source is provided', () => { const src = 'image/path/'; - const avatar = mountWithApp(); + const avatar = mountWithApp(); expect(avatar).not.toContainReactComponent('svg'); }); it('does not apply a style class', () => { const src = 'image/path/'; - const avatar = mountWithApp(); + const avatar = mountWithApp(); expect(avatar).toContainReactComponent('span', { - className: 'Avatar sizeMedium', + className: 'Avatar sizeMd', }); expect(avatar).toContainReactComponent('span', { className: expect.not.stringContaining('styleOne'), @@ -71,7 +71,7 @@ describe('', () => { describe('Initials', () => { it('renders initials if the Image onError prop is triggered and the Intials are provided', () => { const avatar = mountWithApp( - , + , ); expect(avatar).toContainReactComponent(Image); @@ -97,12 +97,7 @@ describe('', () => { it('gets invoked in the event of an error', () => { const spy = jest.fn(); const avatar = mountWithApp( - , + , ); avatar.find(Image)!.trigger('onError'); @@ -114,7 +109,7 @@ describe('', () => { it('re-renders the image if a the source prop is changed after an error', () => { const workingSrc = 'image/goodPath/'; const avatar = mountWithApp( - , + , ); avatar.find(Image)!.trigger('onError'); diff --git a/polaris-react/src/components/Filters/Filters.stories.tsx b/polaris-react/src/components/Filters/Filters.stories.tsx index 238e3627dfa..ecff159bcfa 100644 --- a/polaris-react/src/components/Filters/Filters.stories.tsx +++ b/polaris-react/src/components/Filters/Filters.stories.tsx @@ -184,7 +184,7 @@ export function WithAResourceList() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( , + media: , }, { value: 'avatar_small', label: 'Avatar small', - media: , + media: , }, ], }, diff --git a/polaris-react/src/components/Popover/Popover.stories.tsx b/polaris-react/src/components/Popover/Popover.stories.tsx index 18ea7bd96de..f70945d7a15 100644 --- a/polaris-react/src/components/Popover/Popover.stories.tsx +++ b/polaris-react/src/components/Popover/Popover.stories.tsx @@ -299,7 +299,7 @@ export function WithLazyLoadedList() { return ( } + media={} verticalAlignment="center" onClick={handleResourceListItemClick} > @@ -407,7 +407,7 @@ export function WithScrollableLazyLoadedList() { return ( } + media={} verticalAlignment="center" onClick={handleResourceListItemClick} > diff --git a/polaris-react/src/components/ResourceItem/ResourceItem.stories.tsx b/polaris-react/src/components/ResourceItem/ResourceItem.stories.tsx index 16ecccfb8b1..7f9cc8ad282 100644 --- a/polaris-react/src/components/ResourceItem/ResourceItem.stories.tsx +++ b/polaris-react/src/components/ResourceItem/ResourceItem.stories.tsx @@ -102,14 +102,7 @@ export function SelectableWithMedia() { - } + media={} accessibilityLabel={`View details for ${name}`} name={name} > @@ -149,14 +142,7 @@ export function WithMedia() { - } + media={} accessibilityLabel={`View details for ${name}`} name={name} > @@ -197,14 +183,7 @@ export function WithShortcutActions() { - } + media={} shortcutActions={[ {content: 'View latest order', url: latestOrderUrl}, ]} @@ -251,14 +230,7 @@ export function WithPersistedShortcutActions() { - } + media={} persistActions shortcutActions={shortcutActions} accessibilityLabel={`View details for ${name}`} @@ -301,14 +273,7 @@ export function WithVerticalAlignment() { verticalAlignment="center" id={id} url={url} - media={ - - } + media={} accessibilityLabel={`View details for ${name}`} name={name} > diff --git a/polaris-react/src/components/ResourceItem/tests/ResourceItem.test.tsx b/polaris-react/src/components/ResourceItem/tests/ResourceItem.test.tsx index 2c1140b74a7..7b285c5b881 100644 --- a/polaris-react/src/components/ResourceItem/tests/ResourceItem.test.tsx +++ b/polaris-react/src/components/ResourceItem/tests/ResourceItem.test.tsx @@ -559,7 +559,7 @@ describe('', () => { it('includes an if one is provided', () => { const wrapper = mountWithApp( - } /> + } /> , ); expect(wrapper).toContainReactComponent(Avatar); diff --git a/polaris-react/src/components/ResourceList/ResourceList.stories.tsx b/polaris-react/src/components/ResourceList/ResourceList.stories.tsx index 457390e2e37..a46f4245b8f 100644 --- a/polaris-react/src/components/ResourceList/ResourceList.stories.tsx +++ b/polaris-react/src/components/ResourceList/ResourceList.stories.tsx @@ -39,7 +39,7 @@ export function Default() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( @@ -819,7 +819,7 @@ export function WithACustomEmptySearchResultState() { function renderItem(item) { const {id, url, name, location} = item; - const media = ; + const media = ; return ( @@ -874,7 +874,7 @@ export function WithItemShortcutActions() { ]} renderItem={(item) => { const {id, url, name, location, latestOrderUrl} = item; - const media = ; + const media = ; const shortcutActions = latestOrderUrl ? [ { @@ -930,7 +930,7 @@ export function WithPersistentItemShortcutActions() { ]} renderItem={(item) => { const {id, url, name, location, latestOrderUrl} = item; - const media = ; + const media = ; const shortcutActions = latestOrderUrl ? [ { @@ -1050,7 +1050,7 @@ export function WithMultiselect() { function renderItem(item, _, index) { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; const shortcutActions = latestOrderUrl ? [{content: 'View latest order', url: latestOrderUrl}] : null; diff --git a/polaris-react/src/components/TopBar/TopBar.stories.tsx b/polaris-react/src/components/TopBar/TopBar.stories.tsx index fc192834e33..d6c4949fbbe 100644 --- a/polaris-react/src/components/TopBar/TopBar.stories.tsx +++ b/polaris-react/src/components/TopBar/TopBar.stories.tsx @@ -172,7 +172,7 @@ export function WithCustomActivator() { const customActivator = ( <> - + Xquenda Andreev diff --git a/polaris-react/src/components/TopBar/components/UserMenu/UserMenu.tsx b/polaris-react/src/components/TopBar/components/UserMenu/UserMenu.tsx index 22850eb096e..41cd869ffd3 100644 --- a/polaris-react/src/components/TopBar/components/UserMenu/UserMenu.tsx +++ b/polaris-react/src/components/TopBar/components/UserMenu/UserMenu.tsx @@ -72,7 +72,7 @@ export function UserMenu({ , + prefix: , suffix: , }, ]} diff --git a/polaris.shopify.com/pages/examples/app-provider-default.tsx b/polaris.shopify.com/pages/examples/app-provider-default.tsx index a3382b4fc31..128e6ee3291 100644 --- a/polaris.shopify.com/pages/examples/app-provider-default.tsx +++ b/polaris.shopify.com/pages/examples/app-provider-default.tsx @@ -49,7 +49,7 @@ function AppProviderExample() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( diff --git a/polaris.shopify.com/pages/examples/app-provider-with-i18n.tsx b/polaris.shopify.com/pages/examples/app-provider-with-i18n.tsx index e79fb8d425a..040927fa4d8 100644 --- a/polaris.shopify.com/pages/examples/app-provider-with-i18n.tsx +++ b/polaris.shopify.com/pages/examples/app-provider-with-i18n.tsx @@ -49,7 +49,7 @@ function AppProviderI18NExample() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( diff --git a/polaris.shopify.com/pages/examples/avatar-default.tsx b/polaris.shopify.com/pages/examples/avatar-default.tsx index 97eff02e80a..2925ad5467d 100644 --- a/polaris.shopify.com/pages/examples/avatar-default.tsx +++ b/polaris.shopify.com/pages/examples/avatar-default.tsx @@ -3,7 +3,7 @@ import React from 'react'; import {withPolarisExample} from '../../src/components/PolarisExampleWrapper'; function AvatarExample() { - return ; + return ; } export default withPolarisExample(AvatarExample); diff --git a/polaris.shopify.com/pages/examples/avatar-extra-small.tsx b/polaris.shopify.com/pages/examples/avatar-extra-small.tsx index 83a9faa5eb1..2e098a8533f 100644 --- a/polaris.shopify.com/pages/examples/avatar-extra-small.tsx +++ b/polaris.shopify.com/pages/examples/avatar-extra-small.tsx @@ -18,13 +18,11 @@ function ExtraSmallAvatarExample() { items={[ { content: 'Chet Baker', - prefix: , + prefix: , }, { content: 'Farrah Fawcett', - prefix: ( - - ), + prefix: , }, ]} /> diff --git a/polaris.shopify.com/pages/examples/block-stack-with-inline-align.tsx b/polaris.shopify.com/pages/examples/block-stack-with-inline-align.tsx index 50b7028e79c..fc92e8a2da2 100644 --- a/polaris.shopify.com/pages/examples/block-stack-with-inline-align.tsx +++ b/polaris.shopify.com/pages/examples/block-stack-with-inline-align.tsx @@ -1,11 +1,5 @@ import React from 'react'; -import { - BlockStack, - Page, - InlineStack, - Text, - Divider, -} from '@shopify/polaris'; +import {BlockStack, Page, InlineStack, Text, Divider} from '@shopify/polaris'; import {withPolarisExample} from '../../src/components/PolarisExampleWrapper'; diff --git a/polaris.shopify.com/pages/examples/button-plain-monochrome.tsx b/polaris.shopify.com/pages/examples/button-plain-monochrome.tsx index bb410bf7c62..7da88ebc453 100644 --- a/polaris.shopify.com/pages/examples/button-plain-monochrome.tsx +++ b/polaris.shopify.com/pages/examples/button-plain-monochrome.tsx @@ -6,9 +6,7 @@ function ButtonExample() { return (
Could not retrieve data.{' '} - +
); } diff --git a/polaris.shopify.com/pages/examples/filters-disabled.tsx b/polaris.shopify.com/pages/examples/filters-disabled.tsx index 4c24358ddc2..73cdc204fe6 100644 --- a/polaris.shopify.com/pages/examples/filters-disabled.tsx +++ b/polaris.shopify.com/pages/examples/filters-disabled.tsx @@ -101,7 +101,7 @@ function FiltersDisabledExample() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( !order.disabled) + const selectableOrders = orders.filter((order) => !order.disabled); const {selectedResources, allResourcesSelected, handleSelectionChange} = useIndexResourceState(selectableOrders); const rowMarkup = orders.map( ( - {id, order, date, customer, total, paymentStatus, fulfillmentStatus, disabled}, + { + id, + order, + date, + customer, + total, + paymentStatus, + fulfillmentStatus, + disabled, + }, index, ) => ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( } + media={} onClick={handleResourceListItemClick} > {name} diff --git a/polaris.shopify.com/pages/examples/resource-item-with-media.tsx b/polaris.shopify.com/pages/examples/resource-item-with-media.tsx index b20418811c1..2db82cc41b0 100644 --- a/polaris.shopify.com/pages/examples/resource-item-with-media.tsx +++ b/polaris.shopify.com/pages/examples/resource-item-with-media.tsx @@ -30,14 +30,7 @@ function ResourceItemExample() { - } + media={} accessibilityLabel={`View details for ${name}`} name={name} > diff --git a/polaris.shopify.com/pages/examples/resource-item-with-shortcut-actions.tsx b/polaris.shopify.com/pages/examples/resource-item-with-shortcut-actions.tsx index 3076c675f3f..fa2edd6598b 100644 --- a/polaris.shopify.com/pages/examples/resource-item-with-shortcut-actions.tsx +++ b/polaris.shopify.com/pages/examples/resource-item-with-shortcut-actions.tsx @@ -34,14 +34,7 @@ function ResourceItemExample() { - } + media={} shortcutActions={shortcutActions} accessibilityLabel={`View details for ${name}`} name={name} diff --git a/polaris.shopify.com/pages/examples/resource-item-with-vertical-alignment.tsx b/polaris.shopify.com/pages/examples/resource-item-with-vertical-alignment.tsx index ead0647f400..40b6fd360ca 100644 --- a/polaris.shopify.com/pages/examples/resource-item-with-vertical-alignment.tsx +++ b/polaris.shopify.com/pages/examples/resource-item-with-vertical-alignment.tsx @@ -31,14 +31,7 @@ function ResourceItemExample() { verticalAlignment="center" id={id} url={url} - media={ - - } + media={} accessibilityLabel={`View details for ${name}`} name={name} > diff --git a/polaris.shopify.com/pages/examples/resource-list-default.tsx b/polaris.shopify.com/pages/examples/resource-list-default.tsx index 3ec04488973..4784b634c04 100644 --- a/polaris.shopify.com/pages/examples/resource-list-default.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-default.tsx @@ -29,7 +29,7 @@ function ResourceListExample() { ]} renderItem={(item) => { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( diff --git a/polaris.shopify.com/pages/examples/resource-list-with-all-of-its-elements.tsx b/polaris.shopify.com/pages/examples/resource-list-with-all-of-its-elements.tsx index eae40ff42c7..ed12048c34a 100644 --- a/polaris.shopify.com/pages/examples/resource-list-with-all-of-its-elements.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-with-all-of-its-elements.tsx @@ -154,7 +154,7 @@ function ResourceListExample() { function renderItem(item: typeof items[number]) { const {id, url, name, location, latestOrderUrl} = item; - const media = ; + const media = ; const shortcutActions = latestOrderUrl ? [{content: 'View latest order', url: latestOrderUrl}] : undefined; diff --git a/polaris.shopify.com/pages/examples/resource-list-with-alternate-tool.tsx b/polaris.shopify.com/pages/examples/resource-list-with-alternate-tool.tsx index 01dbb04702a..a9f0d08fa5f 100644 --- a/polaris.shopify.com/pages/examples/resource-list-with-alternate-tool.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-with-alternate-tool.tsx @@ -43,7 +43,7 @@ function ResourceListWithAlternateToolExample() { function renderItem(item: typeof items[number]) { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( ; + const media = ; return ( diff --git a/polaris.shopify.com/pages/examples/resource-list-with-item-shortcut-actions.tsx b/polaris.shopify.com/pages/examples/resource-list-with-item-shortcut-actions.tsx index 161c10e8770..9b5598cc249 100644 --- a/polaris.shopify.com/pages/examples/resource-list-with-item-shortcut-actions.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-with-item-shortcut-actions.tsx @@ -31,7 +31,7 @@ function ResourceListExample() { ]} renderItem={(item) => { const {id, url, name, location, latestOrderUrl} = item; - const media = ; + const media = ; const shortcutActions = latestOrderUrl ? [ { diff --git a/polaris.shopify.com/pages/examples/resource-list-with-loading-state.tsx b/polaris.shopify.com/pages/examples/resource-list-with-loading-state.tsx index 751017717da..d7da961a76a 100644 --- a/polaris.shopify.com/pages/examples/resource-list-with-loading-state.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-with-loading-state.tsx @@ -78,7 +78,7 @@ function ResourceListWithLoadingExample() { location: string; }) { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( { const {id, url, name, location, latestOrderUrl} = item; - const media = ; + const media = ; const shortcutActions = latestOrderUrl ? [ { diff --git a/polaris.shopify.com/pages/examples/resource-list-with-selection-and-no-bulk-actions.tsx b/polaris.shopify.com/pages/examples/resource-list-with-selection-and-no-bulk-actions.tsx index f225efe3ec5..d7404789dc7 100644 --- a/polaris.shopify.com/pages/examples/resource-list-with-selection-and-no-bulk-actions.tsx +++ b/polaris.shopify.com/pages/examples/resource-list-with-selection-and-no-bulk-actions.tsx @@ -49,7 +49,7 @@ function ResourceListWithSelectionExample() { function renderItem(item: typeof items[number]) { const {id, url, name, location} = item; - const media = ; + const media = ; return ( ; + const media = ; return ( { const {id, url, name, location} = item; - const media = ; + const media = ; return ( AgwEgpLp()Pzt~K&b&iiUNv&7@G8!P(zh2y@p;x z3(`U0<@r6&%=-ttGw-M8!@c*;wdb5`W@mSHud^{m2AUM4%%pgDcof=NY9@GicYwG3 zU&MsB?Kj65-0hFVTg%E1508xIU*8?Pj4Z}ml(UW@tcieF@ek$8r13z+!OSO}c4TcWMJ%cD)b zeY`2vh^R1G3Ig@6u=#Y;8P56cwJW(SKjh0+79%F1le_#|X-Rq=-)qKDtHBXbUtbit zR2Jk4lU`pnY#$CE&l^Tt={G5aDChjV*T(sEO*Bw48nyvUX)hX*N&2oek^uAtO7@>F+LX;ls{Ie!vYCe11BE6Fp zYus;7!^;?JWc(JNVCnVW(FElL5nl^CBhkdW!o6zRR5X`fpJPAN`)!9k z_<7mm>A6q$$Oi>HZ$9<(SYNivEfr$T(m1VZPC@7e zyv!zyRxai6gFb`G+0riuq@;|+j=wNfs**&;ZO|f>s&&AGn}RL)-jp(J+Tz-ER+I;7 zIjk(QSck`ijTYhSfunyH+p)0Se@C&6L00jv?IPFoiZYMEk+*-v69@eAhx6L;z0ZBR zScVxmLMDTEnAQl&$aTJXS!NM0DT3y*ekDoIw~oJYRAs>JKZv~RPy={t$jX8$@4Ja< zbZzvp{K-QF_1J6+BPo`>UrcvOE-&Ms^Xu$%1>PRR%FuWn)j9yxbJ;pJ1XFnT|Z#&b;30dW`INW%^N?TwVl*Tu7@w! zqqj@K3*if5ToGI&7jfoW3gbMOhdn)Cisa2It9=TE0S%_19z;T*MvP1v({es7o{4f>#; zfL#%h2RNKNkl=&+3~jz2!zZ-aC;h!X&K*wy9HdLUSxSdW^Eciu0=WuGLM>Dlfv}%u zD!~u*FY2u_nZK{I3^>&MQF{ht@7W7d&Sb0(sldNmw+nCjGknRecTrClFeeJPVWTa! zhs=(CmFUqppB73p)Zp;8scR950(yQv@}aPq&^>%HVasrv>(i^D%r6gF=^FD9C7x*- zn|ptwzKnzl%C`YRyFpeH)p{UsX;RW#sx9Oc7kgcpaMZlv`v*^NHeWvxL`%3^^pj(< zFwqdlo=gXxNN{({4jcOtunvqgWz3sRzL=(#ycP~AG`x5nU{cB^mwWxhH6-j>*^A!R zs>0H30jHD_au-E0R+_r6oNbxX;Nr`qcegmh(7^tG;i$ddQBOt`uDc5#SB zLVQmblsVM%C&CtN4e)XrE-N<1`5Dr#0`ulZ8g*R6P{tZW@ALPog#K(@ zxBDLbT!nmYDlm}QhpEI0>2&B^9anV-kSf5aP>36tbx~@WEX?-O~^yt?h zBB1Ep^;N7 zEvVO(7sNJTTZOLK+}8w0zq9AW*qM?9gl%$ay?7^z z-^CWuy(|wawfXW`qr&Ci!ITy8gOwmg*z|x>DU9&5%>w%#fZh#G(zL2Q{mcGOzqzSkt_M#apdVG>!6t$4}O0 zv0(#B0SIZI_c+hLaZVyMAHBg4?`|Mu;b@ANuHXgQF(X?Kn66q@|1a@J5e(9R6bi~8 z6aiA-ub%kJeQS=}$b{I-GKqsw{493(HZ@?YnIYAHd)S5olDtc_=kJ;~m3K7C$>1n3 z%IHQtRMvklD{>GTJNxZNT;-iMS_sBp#1&YGZ74ciqB#Ym`_nq%fK4zn%;aF%z)@jk zwOb)dbN2J>BYzG{WlagQz*!M&*!T8O^z7^NSX6dN;|HB9Y$|r%L*DP>{7~{F!AIB6 z)^>W$=*|`L`EYTC4|7|E^>Z^;FobIN-7}p)0I!PdJ=#=jMY4VWysMsV2S|Vl$KtRu z6EmCM$y{2>L8fQ!lwD=b0ya$oLH2;J#kK@2;HOai`FVNn<1*dngkl#yOP1T>Jt
Y-DfI$a8k7hyMrPQ4|&gzHmP$s*}R8$7z?o5KU9t|4Zb`a-q7u7k^~5P4(^K*D(f zT2b_qlFkF?kW5a-uW&t;baMDx!^NQY^U^M_>%;bFIv%3xsC+U{r}ghIaX+S)WeRp3 zI%3tST_5N&%>3%tmX~bA;Qw^wm$bXniB$gn8t@N$0Jzh=@uac6H8h0-p@wi%_SfvH3j*>U`L9b7;F864t zz_c`Yrr%QS=w>_Ut5wX((Q&wr0=l;sZFROreG#|I0eD_#@nbxEUCK{JwkSzVqnxj$ zMVG)`@T{szImpji#MPi`eZC<-Xz!(TIOedwN`g|SDVSO1wCM)(^e4R(!cD4;hRZhI zE%OBMB#T-v+pF`F_ zv~zA_Ik>?1SgQVYLD}L{(65t4-D1P+0!u*IiNmvRC#;Wqi8sm^(F&@6&748(Q8_f2 zu8qWB=L`!E9{@`1s)8JLlU$)hw$`^v=IHuX`=fRRjVjnxy-o>gjB@=o@|g*2pN!}9 zlC@m)^o_8S!pnSbIU=(WVn3gT=7#M`$OnD{5MYOG*;0fMVg+_0#igcsi=~MQV^1me zpH}H!pj1|brea0DT9PSlF7}1b7vJfpZZqwBlP)EiMAUrwW-W*8yw>7g0d?D6#0tyO z_wZeg?Pdr9=DF$etFDQ;RhWY{+kxqEZPec?P4*jPnQp;N-{XdgUx zQhqBk$KA~f#V;elkXn+?jSur+_!`Vw3Hu^IXngY$dq38ORYzP#c?N}z>iuk_Q%Hz0 z9MqKGDbY^+a>w%hfX_~HBHCT0t}W^G>4)FbhahL`3aawW!zQ<59i-cUV2ykN;Ey;= z-x5CILhjUW=09u)mxJ2lW;zBJ2l7Mi&%f;5_)lkf&q+-!h5CQ5)`JQ= zBQCBSs_E?=1a#|ybt?4iihHk?!%2n3PUz2?$z3_N9{|qh!eg-&X5e?^B2GK-b)NgZhV!}lKBDVRrc^f98xzBDyQOtr} z2CSm^mJ;#im3xK;1!42<&u_rH%kMzSz&X-8Y2@so+jUqclIk?TKQeYuIoitbUC^@y z(Tf1S_aYj#X3}QaEK9jH9?Qgx9Pwse=B2k2UO-rXR#7G^Z3oL5MQV;32hQCfYyqP$5LG4h0Ez-k}! zVS7>OdfWVbcL->~Wr@#cp6iTy?69oG#O0XPUb`tY?a7<6z1WGZz8Y#O{Z|_JEL#uE z9v_$o@%SD;BQ|K?2i+&+Bk)4+jN9!YDdB44gHE#%mi2 zeAN*>1wGqz;H$Lc<`j}CNuRA_Zo!PXG}H0dMyUPn$~ATz3sD(l1*QM7l7tTprEc}E z0V#<4Lucc+sS~s!jC~s}7g_`)w>?sCvVn*rg4)j9kxNk0fR zdt&vHq3qzLM>!YU5bP{XB)eE+cr>YavGe_g$ZSASVujFjdJ8oB?C$96(QdzObKw^Y zVlHPBqE-d}#$EZ}*iT<3DjT!Qf-&5-S0|y%VqdQzXuk?{LibsiczfMm?K{CYh<0uC z_Qg|R3ce8#FS0Z>cx$-^mx05!G%IXPB%c#XV@hup%ARU$Iym$T-tGd{g-nK74TIVm zr{?GSr;9_t7wlaAKj(BA%HB=ld$7n)|C@AABk&F-NS7|YH#gqF#@vr6pTb1;8jO0r~A>rq<7l6hwz-$jYOA#S?j ztvrwh;*jMse1Uaerv0fnZ+>jKBkJP3nL*hMsS`C(YQ4;!6#;Kx7uA{YY5;oSo-?2Y z@ad=T?F(;{Re3c@)<}c=%a}jf_h^?x9MVzU`=+mnbnbs<wUSVctHGbtos z{*&H4y&qP?C#j^s*(W;0Tst9AJyMq7|HNbrWfQ4E!CW`5b=#bnrJjtHpcr?;CuI_; z6*j*uup!!O(C%M_?L}ebHlt1Yps_e(=+nfY%Pxbo#|%%VD3%h8#WWhvpI|#9(*sQt z6C_8>J?a7QAo1ma4dZ>p$HO9&TTbuCAT_?Dvg2PWNBYd*^z${Ln6Ap%+UT)j--W zR*HX40o;r7>>qcjV!(Xz6(}Faf^E3@Z0_^%O@rwyd`)q@jU)#hN^VL}?NMryJ*^3V zpV@41^Yz3q$IUg|KWBel^W;S+SaLS8egTdtr$NWQ_@kXn0fAJ zh{c@0in|pGC+#e>bj+-*c~H$3r$l$(wDAYFw0=uUHbR|=#Oq{Ioo|v*ENr*srs1@B zCB(!t%uzZ;8Y~MkWg7n|!he#Yn?$Y?gpRYl^!huY0m(8vGb!7A6Cp8NnWn9T)H@;+ zGf%Z2+0Hw)uC58pNoZW3*S{tHBnBQUr33ehY%gWOmqKpAHR`j`41H0?6TiNH-Kk!L zj3qDGy)tUF4@k{lLD$F6J?5N-J%K$l2s(-^5EXK)T8&z&Nrp4fsE&LAx5=qBovmhm z-Kn(@zADiSSvs08_`*p~{>x~9+=o;%-?Fg-psYqIHhArB%~a*}L*9b^wqUM(riIjp z6DU^_3)IEX$#37xSfN?`ZE;;X4#_`LeNG9==)8Cjm2QheUQGfqmEPE% zf{-K}AGbM39XDt~;{o;w%{86qLbPmsAmIY)f^q|Md(V6T4(Muf71G;bs?%T|Yi!A= z5i8`F3biyny5J+Y;M5?WK=KgJP`zaKlhPzxj8pBggCH^HQfW{AYk_>wYJvkgIw&{b0P!u#+&q|TM1e@ z_%(#u*{SUgZ^tOCptyB;=s;t8rV00fAH9C@HQQ&yG@H6)6E&ry5DmZEL_yTQGaEHo zSa}JDQ*-=$ak9;#Zl~{8QxJxzCRK??R7^*!C$a>Q9>{}YW$egiS8K?$QO~FVXx9kN@ji{=d1k*Z5^$d!##R+7@o#81S^! L4b)0i?85&CQ$;K# literal 49107 zcmeFYhgVbG6D}N@3Mi-vpwbjIfFOv{Arz%aZ_=eH(iB8O?7in6gU%`(~it<`SO?|`G573^3D%=^SerL(`8R-*(_##+}62Jtx( zm#X&dC%s$WI7MRIVtDI$Np@UN@=fSe@P`v#ll+mg_V8t)Nfh>ayIH*D*{fR9d$(DIXq%xB@WX^*31OGy;P|$xLl!{v!|9!Yr#`!K7S`tL8~*;U>D zKGgodY5t#X{-53a|9&$JC_z5ol(_I_*%fc?9yIy-ktebJjRR#e&!o^GUpUyNaA4xV z!kPTgfoKD{=#x+z)pTHiu@1b-+-G1;I=Ut9x@1XtQ5L*@{LUDA)2Cn&av+!hGFx0; z+U;+HiRoB2UJ43YKhP%CZp}EjurwX;*l<3^PqIF=Nuhh*bl?Xuqw$~()n;NPR&|pi z<6xYNYX=^;n9uz9dZ)@HNYtdiplVQYv%ef`5HQ(AS9()W($3tf|FQk z#@1K+N{z{w$8O{$9%Y)p%2Zz&m@Y}9e?n0DdzYwi@DuX$?=6Rc?3XvttgZ>ut)G7@ zo$NnW{G2aiOsB=Xt`*=+(Pspegnc$Xj+INt@~H}$J&a=~7COUpg2yYrg)AqCqhknVjt=JF+n zU>j>6L1YR|zoH9?A3or}{Am8sfr46KB1~xT6l+QmMAOdsX2#8<@^fV;*9hqAKB}2) zLJ)Lua?Yh*bPkHZfe|L4gbg2$JSnHeM!teVuEynDe&jfB|Hxa?vafY9i*D@s^E+bl z@~}HNC%Xb#fpB3Bt6-Ue_tw!GMrW_qvKfevz*L3w#VtPaF|#{ghbg_kuA^=&+5q(+ zRtF)@mzfCai+eBMx<{k`Y?@w)G3%lj0s+PCK32}S^U@-gPv>5i*(GC$Uq^WBa7jio z{ECHg_>Pt<=E7LhMPo>9XLxIN1@59p`I@POm!<{Hz;LZpvZW6*8|3O`T?owBVnkd* z;<^U1*)Y$n+D#fFtNeC>=OgVxT+V@TZ>E7FW)BmWbVshznPt5yl0( zEdSzwz~ZE7^dXy@n_{$ey8ezY+M3tp`9~9W)O_Q-s%YIiZ$@HaHR8dH+mUxv~hdx-n`>VFWt`9ko1wIej zi~MiYE*D#;eX7epejOKhRuCIvKHgtno}hfI~>J1?Uys32s6Ul)SZ zK%X@&)~)65i8Rd8@DUs=vEesViaC3gl%hd{*NI{z8V3xqFC^XY1Wn zDQ5#;Y0z}bOw)h9kS!1!uHr9){E>S%)_$h#4b_U3{EXX!*#_cbP-g=RV1m6c)#MyV zN2aWYhnS}JYlgs#QQIZNky8Ke1Q(<-Mw+JdSVe`W$6QB3-Vi5EXTquhSf6Pg2AI`$ zhou36>}zacV^>?Q;W2|ze?XpqpoMfa`X_=7;=zJ%sU&9rjX;Xhz%)$E%-cziRTRFF&%I2! zNK4w$X7GEWMV+9>9}l5ar>JEfLUD;2ew(&V)N*QThj~@ATk=g%waSCtFsH#|w4n)5 zen_HoaIgX#4#z#sxLo8PzFMG-L66GCm`|ywXK5HT&53FoD7`nEQsFn>rZ4peDs$B6 zI~x~g`ry$cI5rOacvQ}&J0HwGa4Y6G(!yfX*c~5w*xyUaF^U9J&KRa@#I_Xhht7dV zDX7Z&rsZ5U#D+GUWMOIh^CJb^9_i3`R{f}MTdI|VZo?i;yJ2S$?sh|!rt~IwR=b86 z-*|$??o})&80t9iQ{K%Yy!fUnP1*x6>J}I!4@O1STvv{*QKeZ)$hqRue$@7ak*OKR zP-*I5cd0<#=G7u$@)**R3A&xa`wHj{@_PoD$(rX}$GyI@Fx}*gbKK+cxByy{67N+< z1DQ=RS@# z7D>nB$?%PL_|SxJ(bl;Vx;T(<3^)-`Fu`OAAtl>v7k*at?fw*Sk!yr&+cLN-nLm{E z41Z|j`$6e9F?!PeI)c)Pr-b5g9{!th(bh&xgYwNC;Od8m?d2u)moJPda6p95g7Jx9 zdXD(J7MqoRn@%TBo}~Z#&E-K8y5n1Wkw=D=%Ti|JT94CX%54ay=%z#ux~t1#Mulj$ zN&i=Fn!fuza4)j{2st?peG^V8w^y-eGN=A}xZnir-as7^$3HsZLt_fk5Elk!N*Lnr zc`mKyP5SDIyDB`U-;(m6U63O-wq|S17?eoScKqaK+QW)pHIUmFGN|1!Q5unu8i#E! zQTmhleK8h7n#PtMv>hTizkar`|t_o0t~TMhq(%rQDFFAAzOnUtQ6`u0tT1}`xFak$PaN=bRLz}io!z}dbf zh|yo4UBGQ`(q(c0yWdjknZgFh~s2g zI9_!tM!jk~Ja|f9lAPsz^w3zh0j}LGbs>O7geBSN+9s;kdYBrL^pPSR zucLSxzF#oq&g&^)Eg~m9Bhg)CN{@h-u zorWHrT6-9xhW-A6aW79?#x9(8!2wtm6nsU}GC07sKj%UP1mwUxACzdeZhFuPAna%p z)v?&uFBr{u!othX!hcsV!jwvYAsa&Bwhr`69Xb9RVqlOU1A5ExSjX)o;3fn@t$|0& z9(XJn!Dz++Zp-7Qq~t}DuZ7NOg*@uTa0|%V(VB=b!`zSH*R~@d3k=ir`W7wpMb>Dj zk&%Lzst52ABHEv?IfS*)GcW+L7VqVVsIOGzGB9EJ!CDFGXlu8%+(v{B)IXbZ`TqU; zF_;cJ+(OiLyI?*zk!&8Gk)Nh0s11$=B?H8f3nU)6=6GFFYxVJhZXV$HEIxMS77IjM zEQJ-^pjnAM63$jM(uXDFqkxyNhq#(PiD(=}4bfu1w=!almpdYNEE>k2$;gSYj+=0Y zjELDdRctvH$nKjcRbOB22$2lk$xoNLP-PTJhb;nkh=aK51>-_!_RI!R2&v_;YH!TF z9ub{~Cl8Ha#1;~TwHuC%ci5at7QabV2r`A5B;gpKG)vPPg{2hA&$fE zr{(n{D#N4m^hA%&Lj@MziHlv*R+{gRZemX;JhJ8y-~~(60D}h>aLT$<&j9|CW3xE# z*4(;}edQ1_A;9wzZ2oViu3dy8HXf=HwjSIklgk z7ASnJFPC?ZqK-60&(p^^$=TIonAEGyM#y{Jg+x}Tg8 zs#}An_5>G_b*~t=D=_@4V0A6m`zN zfYkJcjPcie6zav`#lbO9zQ?%gNcYud`+HAb8iF0-a8VZ$5zm9p(Q~I8k2T4^-?)4N zkyeI;a4w`HLt4)G%VzKFM0ro%;kc*QNbI_(&jhSTn)tVhZn!(hxvFoV(1>Qm1hH8I zzB`y-kw226SxH>gHioy+E@U7t9&G1YobkT|K|j6-VS*!0dO_;Bigk4yj(5(3bYQK- z8c&+&YMOi*8+-1;1$1+B^KhNR=J7_u$HcCg?rtol$SK7_NShj6z$U*hKYp#J-8SOM zQC{*M4xb?J*Dl*wmOCJgig+(Xdo8`JSnG4$E#@wB^OY9()Unq&LPn8_OO93E@tV$% zgI*O=l;ALWU^=}a$MImX<>7a|u1AVeiir0?_isw~k^=U&?}(KL8SRk&xK>wNkCm?p zeiE07J(3?RsYgK202*R)c=Tv64Mi*Gb9CFvh49LAzRPj4WZUT(6U zTfNWf2{ivW#_4f`VDjYvx|8bly!VMR#{5{S(BWt;54tmr|MFs;`W4yIRNEqf2D|WiLB6 zAwkPy_3C*7N#gtE4xLV)U9!h_s)i^Xvbo_h-W$eTAZq8ZMpXVew{C7&RI}2?IXxlA z%EZRd$2H2nJ$Cc}q{4J2LgOFu(iP9c)S1qz2Oqi!sil4kSK)v2cru9rz0`<|(l-#V zYBsA`66)dF;bDb=h!55Ve6PLTM;@dN`m{S&aN)LW@A}2{yWUkiR@_bzXu5+EX0+W* z+bOY|)4VQbX`|oTGyGQ_m3Olfv_%_8Y7N1&E7ChZ^A}#i_<8Cm={392&y~f*y@Mnc z4|qP_7pZ+-mgkDXT_!fE;F;*h1@;fy+pq`VIC(Jj={OzM3GB(! zz19JdKJ}vGXx|F9D;r7g%!)z$IQ?_X4JycV5$849802bPI1rkUmxJGNr+9VW7u1yB z{-w3P*fwt15a6F@CRUUo@kPm=l_yv6Sjkawva|nXnho9$Y1U z)nod7NCua3uG%iSm#LwC&)%Tiis3kYb6wU$yvtV;i6rX<3zTKla4zo=nw zaztzsmqM2)g!3rC?{hDu*5$o2nEsN;NBF`Tq_DuVlxFrOYzPzG(Q4L>;7^z5ifp6= ze#~f%M8Ozr@lbswaLRZ+c)*bfPO6phx~q`t zb%N`|Gm6AL1j_qv?DSM*qwToSzaeJx{rBHb)}9j$StAzX+%57eSBbx?*IXmeDbH6+ zCm01TfEec*5RM=B)c?;=(>E6D_dRLVypQp2%o~n)Xy-lrhKZzv@=@=L)(47*ce(tR zRs=F({DxVji}`XzKK3$2o{Porn|8Ii_InBq)C3I!_Z0*CV5;xU*63j-!r$d$0>lnnwRzpZ zF@r?}nr$x|*zq|!TV$AiQF&)#OrCB!G}69bb9Oe@e|jLVpMw^g(#m+z$H=H}RC>ykf6xv1FJ*H>2ho7ZJ8Z4m$w&-Ujo@(OAP?yemv{7i2;jTa$H1n*J~ z1H$;!6TVev$gXzXYKqHHK|^QfYuAn%DkDow`Nn%s3vA4F-O{I@rhi+Aq_5}YdB>ru z7=gN~9+P%j;F+Y1^I7zyha;aN83s>00oyN32ZyT{=AEO#iprYe6;W`E$F6E`F^BPm z4BUc$3|$2QfR#B-947cARLc-sIxVP3?DqFpmJLr^)p;A!L_T6AUDFo68}cLMAV%@T zM(mNcX%|`eB6oAK)!~!3F~|oQyl}XJHukG|(1b?-wh+9&6me?q`*&^d<6#{p*SHs* zE5*voxH0t^L8N&^p!@#o@ON(0s|RbT=-`B-(Y_LzeGQM6E&2f?_hb7Db2CGov9yF+ zlofUA5rwpNuoo`CaVSZF*vn16;d|GnXk&k0d&&Ey+QE`9wF-yE9#UCyH;L&d$wD~K zjlVZ}sg}8{gly7kI;N+%Yxws0Am)kC7|Bvn!fsnjM5MvvQ^}XscgQOT-HHkvvzh({ zA%l@L1U_9ztw#Mv?&hEEoRO0*cw*xB}7aj7E}4t zInbUDBw0Eet$j@_vL!e7O+c_jQb(UnU|yq7^O^qk#pBODwE1{;J+zDL(|5&BBV?kF zNh(wxq)zQ0lE1e1Jm4phAUlqJ`&B~`DO^BCMesb2Pi*GnANC#+hjK8iFXr?82QmA> z(}OAsy_GNIpcvutsnQ8SUXvOcKajLV-;{`rd7Rd_RB{|69D$m*ekv`&n!`_u%tsv_ zt|%T}+(YK@Z`k=~gd`<@?fST;=$O{$sIipR3u8!g@TdKn0^DAFJ}NLv4w?g380(qg zFK5$3CK6Fcb}oFpq7D9EWpf=g;-JJK^v_#}9$syo*~_XZs2)===4u3EA9Vi)f@bz^ zDnz!e9|+jr+Vi0O`JCUJ1QhOf1JQE;hVzdn+xmfZw2_WZqw9m>yZTjv(+`RRm^$aA zy%n_eAbwzfL<5b+h)XnYWPbybraAg&>;eUWmq_^VA?*!^b--m1x~h7VzrP1>19M&+ zH`EYK?AlUMDBu9QffuaQ8Bb5o9QZR^7ke*lz1cgd3-^I4AGp}hrTec&U^jaMl(JWY z8cofY-o-%mNM6?YP(5z%0KVgb`X-j5p}JI6)+~N}D59Gt%UxuZoT_oWoLD4|u)}M* zQ&oJ&9sk6|o~?}^UU2|LS_5z}d}0Qy$**KH?rQ!GBZL=#Ep<{Mqs1WYJ4`*^r1(dB&FpI9cAKArvOVVD#}ZyYIkPm7 z?mZJaj=Nz;uyoJYwi1_!jk_gk_M^_i*}nxB9cU~J4uN`pyaaY$JuDs}^#RWt#?P`297vTjZ4IvyU%1wlM_hoU0f+F!YkP43yIF*EiHXbQhIMuJ$FrTme8H{>@LOY9dg?<9lY2L>P$z6@VYV3{BpBi%$W;xauV#MRdR2q9&b z20aKjRlj0ST==AN;G?dG8@_L2VDOw=ylH%_*Y*9oK4*KQcD@E9xCuXX<~BN&_l-r5 zB)`T)5?AI{Rf4(Nj>#&gLI#We*|XlpylSeGsCwC^Lq|dCuavJb`KTRE%+|#lqEtj= z&ItdzuiH=ac$qUs9HFdm4f?=Dj^+tKja?=AwP!n?Z|$UPx+bS=9SphTKD!$*i$iwA z=5@BLsEsM_Wi(6JnwTPI?p=#J zxpk^>08aSU_M?6qS&I*hA-dmPbtgdTU>JOD-yHiKE3w;+UpjqQ~zZgWna;o zFLz8`Td8{Nw|`U4xPI-{7{uwg2d!CxKYqerBK+_a8v3N#?u*7-#XeJlNv-{}49>w* z0bqh@6(8dqUDa#_ZkUlnZ*F?Ma;lSJQ_g)uOw8f{3StK64Q6btZ1s*`UL7Z{{28j0 zGn_^GWF);nt&ZSb9lNcU264=FST?vJ7VCSh0!Mi)Z@i3-UExG%yI1@ea$~OhGJXNe z4U~QF(IeagVj|8`^7u*xp~TVj$4?7ZQx$K5PYhVhF}!C$H@Ar#TYvu?HlXN|OG$I= z6jtuq;1`-Fz-<qE#uz3(3;*5M&ns$=0 zh)-_p{&nAgE}yw))XQtTW42tKbxb&FpRd zsR)^zz()N_6G$KYqJr^WE&efNAu%Kpe7(MFoY58s-kZ>hS{xQ0O)caRshR=u_!MUF29J z-h1HFbH;f4B%d!i`r5iko4UBSZhEDXmTFQmFYiMpjL_M#cG*VN**EN}i~^Qx2#Qdz zGzpK-7l1LNv$ln{{Vy*RBYj%%tEmca5X%`WpR4+2`J)+)Tq=<;%9);AK>cYy?>_B%AvC_4Mg{Nf-`(rpqglm(}(-j(mmE%P&QvkzYq#atE}8(&*Et^Rz8ij8AM2PPSWiS)2fYS^%T#15%cB z?-u=M7wRhs3->>_FCBG$QiQz5Ze&i---eXwQ`34|FX|PjIpOy??=s(-Mt{L&Gomq9 zv^|~cC7@2jk|?O^v-y>31|jN};2IXyg`sv6?Qh5!2rKM2`Lil+MPQ{Hs$qA$I_O&Y z?z*CS=^2C^vyGZ-9O#Ou#_&o{ibD%T6Hr*u_X*cxMl`|LMEN@j=^4B1hHuZ^)-C#u z_u=|JC~I&rr<|$Tde8o@-E`Yz(`B;{U}q3e;T|wfGiIO(Nz7xB9H0q7v-7*M=yro; z`@h6L(|&te7*>-%jbp6G2*BEuzmG86hyxUYr4K5E{5!VGKrs67fhlz0G=HcAlpigK zaME){o2A1%xmrZh)xIb%yFuY-K^@(sbhE}Wx4LFLD*UWKU02WOv>2l7W)7U`u?ru> z1o)%GC&3eWkIrOQ>H19k*=c>2^~y6UA9dSBG6e^@rjNWgey1?wCZa4bCUB)wS?pd8 zeYaajOKZ3wfscAM2aeV{q&Lw5^Zd}=o7QYk>mxHN+(%1;A3AkXRtx-}nwdF2oBnvP z#-fmB2_-ywmeDCMEnEbHvjlhE+3m7-$r!#?F(^w@2&}ww(1~R189VM*Pekd(<-iSF zKh}VyzCYV+_c3VYqiAd0)YR{pY=QNsOGB?{H+lN*@o=$QCZ`X3EUo^I3j#_1ErC+v zH;CCOpw~|?Q=k!vaDJ}#qlY$>MbmJ5&!L?9A}hg9FgOqSdC75J(FjJPe-crzHr5}_ zHiOB(y^H1Md`@eb#QdLfD_9%%RvXB+kH^bpKu&PaKFw&|FNSziil1riw~kb65N_8` zK>+8eDaxb^St;lMu4`D*rXI&8(0DFT-(r4tP-UGF`_Ed-eVxo$h|)Xno3?Cs5>x|9 zM&eXC(Ipc%WO{TI2CP_Or65>x;Q*#1?~1Q6m|ze{1g{<(?=Gm6hb_!5J! z^K82su;X^mg=IuhZxcN_aDUiGt0H+9yo_JX6S|_8(lo+RcdF*zu_*2yge{9B-mPkz z%^UN)dAa++O-#Z-B!_`Lo0Dr*JN~tFj|9(!M0LsQe|eie1g$uNXM5Sy$q1Y|12ba) zYG-#%>)^-TT%4yHX;InFI&tlVH|qGy>^L`J`NQt{Oq=Yc9pv-p&(7Sg&r;xx2RmqC z-b+nTyXKaG0^8C|=sl`IJBzoXZq}`(*H3>wTFRUZTo0S{JlBw=t%v*;E^VM@6R^M> zbY7s>#*^fl`{EG+<(4PxYip)PRN5hj?383qW;rw3Wn{6x(6^lf{>ofiH-3nNx2CCt zRuzJ=XoT>Mz?7ZQIu$!n_|={VDTu*TTY8E~q| ziV5b7p5~y;VeErlMEn!(=|afgX6Z|XPhlR3;E~TWOk*Cp58pT&bEs#-0rw9*%~Tji zOK2kR@U{UPUyvY{5W9}{VqT!EZ8Zyp0+VYG4O4yhL@5IGsy$Jwq&QI~DBkvGfP5*H zwZVHgj86`R|LDV_x;9#Si)X)Wh`Z^f#9!w>6K`2mDDIRcOlx9K&jK4bB^*L@4t7^g zb#yVwnBkW-c0vvxE!UR#489lPK5AU&^r1(5R(@>DMpfH|ZU1gg@0DM%phQ%)yxKIs zI%w1Rz9K<)>t)^U1+zFpv)Jy{C$$E+3V{mv}Sm83KVe}@trc=L{a-ho4*Xs zUpZzdQ3zrG(Pte8cf=IL&N#fYZ_SK3Y;;ChKYT_z%7;^`TeTVIYT7FdLFbnV8Ni=k zzGH4BcAZ8E#Kv1?mTrxLJF9p&6$s@*c*~9X!E>OiCStU{)vOSlXIXSX%qK z@Mh=-BZ384&M2g128X+2clkvSp=Jr9Df^WDb`NTG*EH&>T7l%caJcN z0W%b-Ik*Kko`+zje$_H7hk(c2=0XH#oQ{KKs8FcHl-JQD@%t0UCJuFtiyPRs8rMvbj#04*DZbklSOR=9yY&x+a@pLvj&&rp7A;{UEPZfPjluNYrN`yd9$e*UY z5XR61>J~i1PwE=T&-dN@8!PQcLas^)_UfSUL(3@69UFelt@9oka;>PNI6gv|k1nCF ztLdEMv!k^=x}nuK%?&?cLqt0FFYC z>MT4mng9R}N(&EdMBl`y*Jne@ygJ#HX+1Ku!1UgqwkLv@)A~FXaMd#l-;8<~wUq5c zb_PB!1z*)gMoRZg_RT;QD`_JKW2TvhQ;YNDK(AD8_{}8>B<7-WFj~+Qr zMzJ}U+dp#iCd9E>s;fT$^`Mc09P*HL9N`4?EMz>kMY&EZ*7`0J?EU2VC}#I`R6et* z#iWhZH%jd?W#Z4$r>aIbGzfp)8Bj~w8jw;KKo=Hz$KsSb)abes_SOFJy0h45Qc(gHl{K)6iO5ci-Y2AEEaRdOyE536mbMX2WTv7*B|VUF|i!L>uZ2D927w*-o(|=OJ5fVcZkU ztOvBAJU7c9JlLTPZMaAGkBoUyoodMmnpYvRKP*o{Dos5 zmS}-vhooHz_l`OKQi-Qw2-y=_4^@gZU!pGx&xL#jC;bVe#eimR@kaOQg)3`f_a$ec zKa?CLhCX!Dn*20^*qZm&u?d-m>R!09}VRIrX4c71z*?H1&Ka4v{4UoGi6Sr-gL>G5Vpz55k#Z>Z0(U zih_>!TRGy`yOqC0+tK|C$*3c80T*gnb$8GBR`=aOSugV^H$aqC?O zb0{3S%!vH@8N2(wxDaO(NK1A8NiBd%srg!#*o+Mq`4cly^OCVWC zhUcR|#7%=#N&dc}toBb})nmsFb&hujKY#vQdDk!W1Ty@u`AL>R+O+Opzwr!a2(YlR z%7vz(EKmD#&VhG=f*AcdfI7o>*=?`OGeS%r+J0VS!;(Qx^IT7gj(ZB9eL8vR7a20D z2S9||ApdTqQ^AhAtm?qjc8HJEUBe_@lTrm`*s$Y3%2UgZG$vOND%$F0DL)>4 zK0FNkUS<95*RQ~x8NIma!R~JR-=jCC1ujRablE$zJc$B?j?jmJ_BRh?Z^?0j+6-o2 zvB_a`nht$EGlljYaJu2N=1nrwiz-Sty{0ZmV7H7r~@V| zSG|v0jMo=jNxk<&8{(5e0-M$Yq-DQI19a;Xa3;c%R>AZ3O9vx^yKy5iMz1v}qla5o zJ6<@$qH|p5JFJNZu`4MSQ}%uJlkPAvl9DGf08#`P14U-C=D|G`=T~{|HhE_^Slj)nJMBLlqijoXK0lv`O$Bh`PkR-n zGxH)=PM!2B{MQL_TmDU;^!~7!FG#1kB{}bzrt5UCI6EO0&M!~`<1wU{_TMmGS|WbZ zQ9^2>uMj8KBEJwogc5*;9p72`(U`+)qzmUqXUjA+Zo_PE*f$@4(;=XvVCB2{n4OP$ z21e1XB!w=-Z>?P?A87xS51Gbe^unkVTiddkLBvRmAb&H|tgz$PVFO_uWa|OY`K}m- zxwj@a)8xJ2x@ih&5h&|4|B+I=E8Z)^XAX9(;~1EiupM?!ow~1R)0}GD!|*NgA z1LtMth_MPOc}PWNqW4tPc)fSq6Dgiox2urjbAs3?{2}{*t|}M6arpQ;Y~?zvBhmQeR)BJtP>uKTOWK6 zhSwYKHz&{%KmzRN)6()~En~DsZ2bH>tGMc|r-$wtH+KrLNzrNYY>_OyZ-!#Ht{*;B z$<4Zp7Qg55H-})REGAL?i;Y?8&`)2uszN=}|F8<11bELNB8g#kPxW(O#7<@funC%g z*vqoK1ZD&rpIOajCrv3kIJB;r7F$(~<|`$JxAvI4mL5T$bqf#FPc9f9Vq!ZeY0?GM z1e_%|LNsHv7Nfd7`#{-4m;p6!BiCQiccw5QN5BwUv$pg6wrX>K38jxp-P0FNK$V^I zB@?mIhA(RV{`nxi-uVR~$6aROTwo9IkSgng2VFr!41}KHGSNk;2`Ge$B^2J2lH!<| zA@4i?;JfQ{judp;KHD&_W-ceiesTh_YK%0mlPdGfMO3L8f2cnP3eNM`dU{lXB@-Kn zonz$K7)qbc+o*Yd^-tuxaQH*9UarT%*`Y6%x9OTj(PzWF8wLg^w=H?7#9)Tc79jO2 zsFCYI2;Oe+*uxDjy}DSY<~-LIwp0>BcM!x>$ocZ+OZ(2m9&8eo{TUvZeFBt!-CLK` zCyu_xI+?(!#K>QH3ukxXOh3j^t7fvNgJ#=HwpKcFyzdrbiVsYs+PzrEQ@MxWA@0ZoR;jS>b$-viw)>1uv4+~ z4Li+@idFoKElBw|RM1@6Ub>*#K$u-sX-v$y5`DNZupBVDR3|$AFqzNsN6$*x)3N6? zr6yoaT}(@K9YkgM37G1bG(b7gi#jVK^OWr6VN2N_F=j}s3Oe|dH&6h82>2vA?8_vh ztdJ@Sq+eBns8r$c9F4N@p9PbD=X-{qnd)mNj1bTHPVp-{W)olCq3orCFk zY}edaWDCo70i|?v=_Hi_Tx8+>V!w9|gyL?C3PKp!LX*O(>DEE)=fys;q*dL@#@=91 zGZRSnKO#s6==!d{6jzRg3#y=hn%B%z&ioi9VQY?A`)05S26pE`RZy!IXqcSa$b&hf zNWkm6aUs*KoyL`ln!j7s%{qWqMhY0ngLO-*9)}xNj*zyO?EB!9QZuCUGd>;tZUtve zz6jJh3WYrYPjGT;5M+1TkHQYSwA(~2j$|qyygEym7Ez5n8Pj@*XFaYY2h1Ybs`i;g zPEKHfH%{m|>Rm9_}E#%5`~|W1Dl0G1MDm0up7T&MSuTzH?P~GF0wndFk049>o~$-XhOWx5gbEl)Y9#OXQtuJEWs{LMj0V zzi6bjH6iK42gbzt#eQS?&85kQ9^o7Hn>){OLrSF?J0OFxUri5QC14MG=~a`n zP75Y>Y34oyukG+B_s{g#7@Iej75ya+(x26@YDp15O18#BU@{~AS8Mn%pxZf9tg@!L zE3jHWzdG#mBmH+DnEJMf-1RY|t|pjb(1xiw7VBfSU3t?)HX#O#k28@%?2d30zl|(;T{%R<2<9{4ZOJtpa{sTv*rz9`u&^+!RgpL8Va`=j*ANfsHWj&f9#h_% zpGv*zn6AjvMc&0&PW7w19k#8E6y!F?e*FC$6jG>#rBSe6F*mRGOllhh#wX}rO*E0i zZ(u4)gsInhw^}je^-Lf(sOM~4@SU4CsFgh#*!`@4b*qS);6Ba30gpAK!lxDnzsOEKR3BR|RBF_U|Gt z{D?g|SXz}JHb2;I`L-ZMT-Y|El!Sb0L+SM=m9&50&}}{3dK|d=^C*Q!BeGOS2a;z0 zjMk|zSnl*owc-6|L76k&To|K6nhG(@TBjbk$JAh zM?VaIb?}+89!GmE4XWb)xJ&up1^K~9p(%ng`cYV0I`D^uL)bLs@W8h*GS@wMX;?XMH}sf8KWW)fn`5>zkbAPY z*)Z?BVbklB^|;6HGB`jV#@VfO(yBUOo2~bk%&hTJ%DxO$>X7hTyNZV%I{}3p65iWK zSMDh;4oCwcYQ=~wk6pO8CU}5^zPP0M$Z=#k$m9TN3onj{&AF29wOvX!CUI(A4@0`A#Gf^3iQo{hSfe>5l;&^f`Nc^*;BosQil5cd zj&D3U)LScT8gRh0y2wW^%k@;414@Uz47&Fc#-PMz4-35KRuaAvIp{g^@aIyG&|nEK zi@&KTBL1*hFXWPTw+EhGU@^eoGaRjouXI!hDj=o}5rB z16+mnA{(2drVr*!Pyja_pS^@TwG^QwCM~{j+B>E&*Gr^oqp3@A=L>H;fE~}hjf4q+ zP2Fzbp9A-|1~_;G5e0+y=8j%s9np#7VT9$tLmQ}*W_gJ?_QL=N%P>c`qznz5TG{pK&D^h~A?+dIwff_-T z(t%lKcKDx^ia-G>TQu7psdyRvq~rx&hxByNHIZX@oXH3pl=;06+Co1bA6@+3FTACn z{w+V?IOg5d)yul4+vL09Y!_ZEWpUeM(5sfVhquxVp zTdBFJqgNxQ+!KGD`Vd8jlypF8j9^6b0YEvRTwGgcE3I5d?*tTf_q;n80oefko!q85 zL{x4FnbR)31=!X?*^I$4Fu6V|hdIp&} z9O?$b7ON~GN;CVc>ds-5C;|8~TJ*vPM@*FGyr@cS_6cX8BL`OD$WN-V*^y0(L5rp| zs`0_@>Y+28(QRt=^_!_{*_ zI`9hiYw*!*Uqt${AmD(Fy4y`=8W`&#DDQ44Pi0SLc5(R5CFP@zOqz~%1PUt0C_v23 zP(Hc!S<8{pvJ7C7BmIEX2`FwUFn+W&0$6-?d6kSla-?i0H$A%0h#)tZ4oYD!vO=iI z(hnUe)t*#D$R(bTmODZnQ|p)`zMttrzvEN$QH?`f=ijugl0naB&s5X3NznLfWFhB0 zt6riubuvcfL3Np2gZg5q8{i~c;cS{jjvYIeaRLxtFkm~=IK-LAA$F&=3}D2rs(i+G;xY#DdZxLN z4U^>hCU?Ya+6jR;7`*YoCx-C-`(v0g>DIXLp3eDahMce4=2=t>vMzsVp?BBM#Wffzel`yW7nl7L8@=VtFOiye6(Axs5Sn{xvwpBR|`|>woGzCjy0#ay^7=|1uC7-o~%D8 z8Rr~NJQ7Yx{{4mBtwyfy3E&Q|QhX?~*w;J1e1d-My^+fpyCAot3Vap>2|8Dis(=B~ z;<0?NRx9+$ZG=l7?lTc=xr~3LhqOe${_^Dx4X?@MriQqB9mRGVFo!R#){||OKFA{} z<0EV1#Q^EA%V$(j18|IZb&yEi6OgP@<5doQIDnfzwTzl(EcMFfBGr#!JAo$i1uKJ1UGMqecf;C@e4UwU8D)f&LcNZ_)2z|a&m>9uH zk^ddnUs9iWy1k4w_@J?7eYc*%h%}1^3kTwz4?0Ik%b?w0_0q80U?UdaRYyjZCO-P| zRU?pGXd~F##IYytY%$#!u!`o>@aQ@7SV6~|s~)nHMrCn;;EL%+CGpAJzr2-N5{lut_;WJz3*{3uPI~3z-XSP3~#H(ah}y zl@_wvC&}aJKSzoOns(FX4<>&M%FslB>ec=CJPj-$PB}x3$U$kzK2VnX-PZhNo$V}Q zI-dq5xX9D~D!P0^@Qi>!@>YNt?%6fXB+xF<%bZvU2%zObN0jvxT84;cLzqCZ;sZmm zqt{tpy4(0@TROrtkyigiic}1{J>KXYEg`LXlD+$hDl^nME$;Ggk($Av+*RW5QYGax z!Z=Q$@6FyoDcO8DpR)o2@19TAiMk!Cd9Zx4oTrDyf=-Ovq$}RCrIsLj2-e493(@TG zf`I}r-6HESFbyrkxJk{8p7K(P9?sK#;D7RlQ|tZ*jRH(dsi7Hw9@=8o6ny_9iy<=% zsnye>@^1PgxL-B)zxxeaZ^Xjk$)LB|47b%?5j?(P00Yw+SKjFPRXHxpk1dsV0KGIw zq>&xCK~Vo!NY{NDKSBE>&})8wX^uw3)pT;#NgVXr8JvL4;$GSD;XDg0=T$hxy;q~C zev&%d+h`jOLG6b=aJL5j|C)2I2Hgw*5Q@M%P(=I|`}mmw5Mxm0$*6H^f@{1D`K4ml zpgfzZzs6w`xg_MQrCQYXBw{N)`}uMNs4mZq0_WH*vK>_Yko8W~ZR|xoL2cNdz3uv5 zl{hb5rC5-JO=S(}UcO8qapnOYHEZMg_HA5RMm3dRz~fBj5i(5D_~bTjnCA@d5M8O% zgThqHx4O-+SR?k37=%U9jWcVyw`y-G%MBc}Y+l-B@(kev#FD9|!_478+~g9n?e|xG zYWqXQQxN@paC&@T1%Z74i)A?KZc};sEkgbX)0iGq$302}we<=VDubNv;~1{%4Dhdy zt9n;x8PdvY6qb9Icg72eZ0XVy1704Z;1Q(m((YiirH}f@*N;KN zu0RApECX*rnDVUMsa>i)PU0CFpfig=Z4{{S_qt|_>+RV_j%7LZhLLnqij=Sw$5_bs zsEo5%Di!qqc65YR$@=!4T3_G|#QXZ_{4cNRzFRd@qPD$UCXjq*GDLv|MEEqWRWP`k zH*9(BL!`Pr*qS&`T1}95GCc_nZe$Y>QSZqLvC*TDq^J;O=m6jX)z2iRxWCT0>jU>* zE+vKjEc|}|b(mBWw1;FNPCfhATaB7n%y5ybO>#W@z)3!}psKF)Cn~zIs~w;t>T`=K zupfYtegP!dV9HU?$!!lx(}AXBf{{40PtesATUr4?Y7%H55Tr#;C>f$N z;lmx%QXlkTd%WxWu0^HpmR%auFJHTnjV`hYs=5VwfZAAtNl~EN$LK7e9PRu5JqpNp z#qM?x(__^nb&(YySi<_PkJsVRqD`J+)E*R2?6yDhJVx*W4M4!RPjaXlgTTV+|FHL# z4^egB`|u112q=gQAuUJ@jdX{UbV-URAT3CDh@!M~$Iu}m-J#OmDIne8(9N^Q`}=wI z{0l$d+_&R7`|Q2WUa{A@)^&Eo9zfoLWMt0!)t>Q$q@-|KA&(tt5#VX3c`&@yDn=~BBgXaUpZoP@n`iWer#b2Tv%AE5e~+V_APp9$ zuQt3vk0q(w`MSC^Tp=_mkRF)jKmk(fWRYdS$CXC=ts#|*sVZEYDQdsW?>(h?ggI#gf zdG8=s-V>3B#}l~q87^xUTB?o2GRFtENYL1W{02?W{(ee7KmNN?l-Smn^S=jXP1|%# zP38Qg?0OaT6Le=Ef$#}!o})d`$p{4=$;=-qEI9JFC3Cwh&3by{0E-odc}0m|&BWt2 zbigfb>R7fw_E~~|T!kuptAIZ%Uq!@Spy3&+d*ZJT|IH2MG+7?)e0-OH-~E^b(2T0k zG#{uK-+@cc^w2uZttGS6UIBH?OXedw)O>xEc;V#YoB8y`Z|s1Ib&j@$n_u`v?zGVp z0-_gP`<*x57|n|jc(3z>33>60H=1W=Ib@Hox|x_!Bf;oKyo1PF?B!r_oX{9h{)-s^ zjk35f%P6pfq&y>$bElVNEfhzkl^vV^T&LnG{YWY{Q*h7kc2c)PVS?gPnb--D9C+}$ zktpn_6t$U~PliZvz%oJ84lqjn6FN-6A9Q@EV!yTHHKH25P<=liZ>p9j=1{wNGQe;- z<`L=3dxUgZP&JT@Ra3BJemsX@s;^wzjGcUif1#-V^{5@ohr@;Fh-NDa&}q!p*oA>0 zTkXl)yRdHDVu8pBk;Kdm4!Eqy1(wm*kNk5F0vMFkv{0#$a}t7z_U3W3;7svYWBnyV z6eB=K^&o~sBCv>-{e68MZEdEoRFmoJoDI3s_-xKH=j}L<=>>7Qwr~!Ss^z$5vk zwy@$~FNj=eHzFqpA~WT70ZhhVF~(L2mdYuq7elZ1B$vs<0B)N`NTYxNj-7R5EK90=xuQk3<5(rV!8p%phBW zo+g0K22}G?2<#{v6%C4j-mCWXI5!>8Ssn&D%s*``!7oEb+5z8>>v# zPuM;AHXlG71Y^?3M>GOL3gD~7FZGFk-Wdu3QHwb^fIR^{PM|r>*D#wYvGONeCMc7- z(MSA^e>sZ*LcYj@Id87`^hDh2tanv+@kk8B*xJ<+k$@!V;503WdoVeWJ(}lnBm@0O zn{?t`!henAX&N08k*43$!l_B%I3=O#v;+(rL~rlGg5=flfM`Jf-vfYm;p~x3K#;_6 zsXfsajeQpU@Sjc@29+1R*QW(bRRT*@(L>5)U% zuJKzXZI{@DM^WXN!P41GxliSSq!S<>AZve={ohaF|9(Q~yvS8)Z(ZE4OzTmRdlUp~ zS36-Ms5<-)ki8=v_CV`okRVh>({KHfHifJqJMz&ewxU|F{kgZk|a7!`253-$!TS z_E6D3eB=Kr9wWHsR>*kII3`wpm~wOIxT*N`>}iRe$5&3tuPmMjdDPhu96)1h|8`8% zh&Mf;kNV%n+i(V8|4~3Bv~;lAZNb-jtsTz*pZD69e@RA-FJ$umJ?DvG1tZ>0OY@jI z?IY6sc0kDyfbH=rhll}%;VD3uaoAZYINOYF3C}7nby5j_2vBc_Il@lY1b{i}m-IHv zQ8|ps>Pvc9&$t8D?|;>Z5owIn3ZTu?k=x~z^&oxpBcIwLAn08>uAdKpRfyVwuG!_~ z_^e?I>FHEq-^ZX)WH^|p^WzC%xIqQ~O}2f_91V+$8Gx1p1`r_#>LUe&JSy#+r+UpC z-t0KTBa_TpY+HXCK3o2AGKW!V$ZqS9>+ea3dfnM9Qv(bRs+=7?d3*}d1aR4%y3-3* zm6-Xz@_@1BG*j>?8RQz&-!G*8GohZeYEKkd(lzo?h^g;SLo^>wwtcvsjP+4iy8h3k zzPq;}e7tGXuKD($c!S7tRnsFe7xcr>Bma22cHT@(YRpHUk@ko2%UpMee>HpOEzwet zDnbF2L$*}@TiVEz0L$R<=Z|So2h^U%`b~6=gxcL77I>atu`WP$;3y2n#BP)p7!VM! zK@Zmga5VW85$~CI!GjUD&rwIN-$TIgu_KID9%rW_mQRncE%P}D*3poRqc?;bM8 zJ;n(7$Ul$T<<^6Dg6P8xjlwRP<0qk#}@x4e0%vRH@9w2@f3}$)Cvueab zM}hy^su6k6|KS54xYd*72iHS9x;QLt{p*H;ylC-C-QC#B?e>>$dT z9ZT=IQF7~KF=4Fn~*6vP^CA@YTxhG8f{*NZCULDyf0f^Vgo|JnBHZHS*u{*bdObX)f1S8B8e*O1v4hv{kgXe;3)lEA z;JGK2VtHM=@q;!XP!u36ptMaRT-)G0o4LSK?faPQlFIpvEG~lt^^jn~c-5DoDD+tG zerVMzk_yWZTE)k-b7Asa#$3`n-Oc;_(;zU|w?8BMV+gRGN1aJ|tMWf+i$Cgz62(_+ z2HPs>Wn=9F+JJ7_wyv(Fk7t#c1xC5FV$YMJ0JN==;X^Ti=@t69TLxud}tgJHIxuFIEWAp86pXH@Vv3ms6L%{^cqF-w{pe!+S83H#R zs-^Dw;V{s0Enh|(LQ-6+C?1~&qlsgnm94f5j-*UB?qqB5^pP2L0Jr>A2h2bXW@cs; zz@3+`S?0tU%WSvsmq$c55BiAIoH_R1Csq9L#=?Trvn$OfMH`k=`fT54HEX1Fcq3PN zPqCHxcs407RsqnD>1Vrf`J5}99J`j*?X=LvoAj==w?=?>VGS49nXg(#7hih@N)b** z#(>>Po892>2pFS8Qd}{st)H>1y4kv1;-ZrmNYfK%AFGqO(%$5H`QbP3uhmYxaqy?V z%6+b&0bT7QA^49-LoYsn0?n=?v=s}*Q4~EPqFhNebkvKq==qOL!1#!KqUh_Si26%Q zjm)xj0_zmS{R`)Q!ghdK1^g?3W9c)mDonCUKde8QUvK%&J8jC#7sPNS^`RG*VWY>s zWMOQs7@)KpZ2adq@6xBAa4ue3AO`@0y#Qg$A3}gQ1%YL;dnU+08^tRtfxb?xza2uNS5! zY^A&M&Pp!~qt4-o%pulR?Ox+`6dcDvbHUS*=Vb07gcZe|buX8x>!T(11|GQnN97%- zAaF&*T-=mzgC({f5kL=W(q&+&936PkCZkkOdH zv*r;MjaJqOgt2!18G3C4n7#n)mZHeRSf=Q`zed5!)W8qFTFSP9R-dz^h}A6ou=e8v z>z`>YWE4}Z((ey9ECrw`iSw~IJhKp(SIW#q{{Dp(&uA|WBU37mq`I)PZuTF-oQ8+} zbNteduW29_fZ+uZCXFM;3OKX?uF7l>mPBy(8RvI{Q<@Lr5w( zw>kOAe_(<(DQ45y?~r+Dx_kvlfTn^jF@j_1Q-(ny&g?G(rv>$G7o@brL>#WMKedsQ@q8<>+n z;B(t#kij9!g$L6sKMyT3qJCCfs?87m7Fq0-!ma};AynyA&TCY45nt~gm3>`C<=A3apa7t8F|q&Z^HBoy zkLW1&8etp5Vr{@wQm!@}4BJ$Zxky{>wUxK2hbL{)%R?|?ihb&x_;87AwThG+-Li>j z^(8Zp%geD5S3sIn5#g43@{tV8YwIKwV>b~17GT3nTWqbc(C`=<^BlAbMjE%D^{OWd zts+jo@PJ|px3X;LPT1O714R|4LQa&JDUb7clUk&95B5}^m!(oo{v+tJ4r2p}Cibd>cvdRLILEXN$(Zo#;Sm&u}F|n+Fcvbnab+{dOxdnerN{SUeCBa0HjqbAx4w3xxh#7C{rfx)t^G1f zMyS#dK2^4x1Bs+8RUt5TLv~INqW>+6V_+@UjkMKmBxen-CT33d%D>-8@;H;vf)>s1 z6c{M4A{cv8zwFrdvCT;4u!Zb}?`G%oisNP3Z6j499WrhWo33W>)MIn z`*4A5HYIfQkHz~eXm=#AOh3>zX*4D@CCpXH8-Xa|w24`9p|lk%Q|dxYStuJGxagWk zg*l%ZD6jbdTt5q1`e@BYFHf(GYb^poch>dA!!Ld=jmdZ~y53f>MA}MJqCGQnyEb-{ z|MB=5U|(HZ%ogwyKSBOzg6&p0cZu%+n)GbNAV=Z&s;}Ks`Tyg}2L1%~=l}7D|37l{|GzSzXr*!b`ACdQjujZTNB6I`WJo3IX2YdW=>@LD7C8$VRVg)}nCe1VZNkdGE)X>fA^ z*5VSumNUow&tJMbl$@l3Vfz>%6O%hH46lT=9tBdOC!_g|8wBH-;8t)==6AM9fmWHa zIx3R2_43=q?tt@+Ps+d+ogP@-tI2H71vIU^5#B8(?+uBcy4=IVf>=k(eA!H770@y> z*x#<9K9F7-rIYx?`gqd9?qS(<^(rIO0*9W`lq(=R%Ij3NH=2f&?i#Y(l=w8gTte|^AG z1!L1M%dE3}#sbKtQ|ciI4&Vnw0n-}yVSIT|AdFt9>T|&cKq;HOH+aci$!mZet1S(U znQQwgm6DhotXWJGX)IkD5V$%cCXk}6`;xm6aJgBIpdoh3N$uT@?P-k>mCATnq^IoKke$FR)agr~*^oJ1K|AReHJR81;x zouhqNJ3@f(a<(}&RQH=TW=%)&_K8{9Pc00!Cn1lGnGGgmUV;8dqRD&L?Aj2R3^9#H zpan*d0!TcdVX#CggCi!$O7(}4qxl^Go2l@+y6%AqZZxu^4?apj`5i#Vx9hFTiPRwO zijqrHeX(xKThai=c*&~#f`Z~ve>2)jF(8+0ThY=QDa<_*-Hq0kc$;C&lazezEg~@u zM2u0*^BB3-XDLa`m~6GZymvg=d9#?x!0Z?P@W}xqAiM5nc+%04_0*-iKDROZSQV~e zvtXQwhIoRCFrQ1(QkMI;Uwon&eyc4Gph>iCiaPA=2-?2Wd=Anm*W3JUqU1GzL0N3v6U4pFqen_=Xn?(236NBSw>5+T zxad5O*#J>E-^)jRdm19&7iA;S&ip`*&4ERMBDHKJt1pfL{yP^k&oTEkKZU&4_IW}S zQ>jxlZG-Z#2Xshu>5ha72-cf;yhRwcCp?ZGvZVX9ZRO6Jt`bI=eoIzKcU8=symw!g z4t4f|7@}sZ8~l(%mD2T3J$|+Tvh{PaG|mRMosx1}h)#!zjSt_3A;3kWXU(F1&Xi7f zk3H~M#Z;{u$6#bu#FOOGr!TV0bz|k$J+}fPDpS*OKT#cnB0<<(gO@xrkoQUPy z=@q@?vVg_BKkG9eS9 zO9cjerlg3f`XHKq$06kR=4*3^;MJY)bI2q-wFbgKyU4Vkt+nmUgZ}N)q)f;eAl_@e zq(~Je5l?j+ue=jb?)_R*r2PDqChWVc$zcWZV;MJ>-YJ!;J&=iSg=0Fe>UY`VFXZZi zF3b&F&;U>v+npxr-!(w<`wDCtt#_2mV?YajaD?=uRj^JQfwdQJmtenMeO2!O_i;a$ zl28YkpY(-FQNP%4p{laSXWfDIFT6qj%OoiE&Qe0WB0vJW36uhny&P>*KTRcu^$zc_ zEN}3>UDD+%dbzryCszu`>MVzfp)&4Cyect~U`8Snpm`qfTOa5yOT%*{%Is8u@y3CG z3ei`DGIiOrM+YJK>!`$3fGSx_%6fC%1cYqxPg>oKd<@1GEvYkFf1p?;B=7PJ*f zNZ`1{y*l>0f`!b}1yiC0bVfEu?|wdcuE$?fh_|x%;5H@Jw-3ytLcOyRjeZ%SEkqMz#e+-IHjZ= zQ>pF?eD`@K(&+4ZPe-H??Ua5)a8C{5tpZlpq3iur*o#eRDC7ixH}s3#zLjWWc~;5| zkDgJWuYm6e;H!=jh5>)yL=a2I_&XlKpCe)a%XyeWkK{k9>YwD?dCT1_b^>0?s*0{m z%}uLNKwK@1XEcfr0Fbi`!eta)2y*o%eJ%sH5Z^bVwD5Ze7qzS)71r zga1n|!%{c$5Zp#GlCe{{wAosJA9@W6g9`#N_m9Xy*4^^wool9ImkVtcwH;E@`x|dL z4C`Pmjb4ut3s>LRgqQa28=!mWz4b8TQW|SFzX$bw;vy<^t2j;&(N05N}?V$XdrOV}(@Unnzh?qR$-wnt+I3AL#DD4!a zZp8xR(;SBbm`8U2N425Qy>z^`XL{I#f4fK0!;Z}F^e80wscI)C1#P|QT>LPPBB5qf zYCX6Mi;3lgrYj>5MS$tr1`T5fFeD<5e1y(}IibBVXzk?O;q97KKku-nOGr+eqOhg9 zaja?r#P~mF5YSq8{rrSg{GB!yiS29amj>)= z&T%h`T^o4?)%TxP*%J0|-q0fQ!L_0v{4>8PUEUEW(k4DpNxSd&3RKZ@VougtfC2U! zzwAVsW8mOy4vl@{gj&bk+{+PHRO12PMage==kXi=mO@_f@csriD5ML)m9m@8TW7LO z4#ZR3xIoAal>redx$4V{cM$9N8&*S$>qP%dHx4C%EnMq3%4qTRUlbB`K(YnE<}fNr zkSkB*EnhAVnq{EXzbkKkaQpto6ta7GjmuaeZZPz2KOksA2O-MLI4JFGBLe9G6vGO1 z-u0Jxgr%56ui$D|e-93!bCoa#vt%)4++Cho3sc|fJ2>^l9xGt#lxl+Re9W5MP&HXF zR~)z!t55x`_>ctSKd<*n5H`dnPAWX=;kG48CG_}u`r^lwCGu;@b9_~knO~Y4fgYlT zcIjQY(fw|rQ%mB@>W60) z5TwAOR=bWC69xcE^Bkp(kCh};(rm8Xg+=$jQ=Olqyqi;diD}m_a!o?y$hacZy#Qqn zLzyt$<-er@D{@C75tMKYD>6-Ti=9@GcHdT&_P$ML7e%u22JJyCp9YkPz-z@1-i12 z49TPH%3UtBqjH9j*CR%P{bReoLDevUpyW3-XEzs_hA2_NY4SHa45uFP6!A?6pHsI@ zRwQNDXO(We*SLg3yyMGx6kVAAAWEA-K{~$^{n#C8l2rg439yZq>`0uvt$|py^we=- zeb1O3`LLsnfH2j6fG{OEnJ*nRnuNXO5)~#V>E!4vSV-&j5pi)}GPzx^wxbGrm(1UJ z;ry%Y)Um7!k7*n009>4oNJTw~%DSU)uc$}IYW zH|mZ%Hs;@FwbFJftbYGq`QAs#2`A%&7qcN1W$Il&3VBb4W>4FAdlkWGw4im@{V>r| zs?aRE)HHiiq@>0-+5ngVzqi1IVGBc7d_Sf2@?JmoLU1dE+lTub1MFthjdlq~&%@RgSzX8FGFu<09XW@@pBHXZ+l&!RxVC9$E!n8p7;i}ti!MYWhd}BNj zfTdd3%n|egV(hLjLGyd0Mol7+16ctOwd2rh2uOM>S3gPfM&|TP<%&$zTW0aes5n)- zwCx+6axJGORPzjMCNtt=9LGxqQ3~JIjYM^Qz*pZ|SaT8=ch-nh>63Un zC{4Dm<&)Q}p=i87sH!8&zba{^_WRq(Kg+ew`Stdd%xZ&oS zT8G#|lbSH3!T5?H%!x+)6QP9RqjfED%TJ@>z8>spbH~w4NtMyYm!0Co2K;vS%FP=I zHQ$1#i#BZMAy)?0xfkH-_wi%UgJBvGqCl3+%PCviD`2-MF1Qu33)7ozuU+nk-^ZUP z0i^Y~sM{kLe_|tSLmdm#P3%>YPqce(%I46pUrMZ2&N1)*L>c9`}4u0p~!0Snx!g z8;2!zd%W1`Beq~6-RXG({F5R)H}RY-#;jE>--u$E><;MHU;aA~pV_4mVmzDflX0NZ z5$cNOAT0nL3$s@_M(%`&2X*@XRpJRA%RIx!zx~krO^9ntoncXqLKuzs7jOoxyLyWRhB*mAM!Cgq}wC%X!CK`CNRCBT2W!$-`)O zGv(QE%6W%pDVM*+V@Whs-JI(*ACN#J%Epr1%>J57R#W+ICHD9P$wsmNNn5Dkk8|Y+ zdOK%kYF@D4^V+NSSD(I*A=!G2e^4*svZRa4j+a<-)p9}YQ$FG_+EgURZi5H3-lv%H zyuxYgAm?o8XFFG(7LHrqgwCrFQpXN+c$obK^7h2Hv#T}0;)!L@X>5k#aD%0HMCwTU zVqgF+?aVA1A`SIMuXd+>*^TrKvCAXbU2jHRsY2pkO_PLe^u(4O?7#C}T|S;{U>)rF zd$wv}ok-Zb#*SAz;kd5aiR_giN}^DwM|2HLwMpNL{a8XSOpN*Rn^U2< zf;pD|PUFp(BXWeF>ML@%qiAlrpb^y9a!6cKei zJ>6+RJK3+7N}JD9f$@~*sUO3cM*ixs`n)oy%HB*&=Pz3_%rErt^7BjmxA5I~iB>6@Tw#`Uak6vj= zAP@Md@XOVw>9Png#)5$F3+?UQ$u5%}+#8`d+wKI6=qdb{Vz`}hgI20Mb#o*GR?4QP zgC8c7g%T2C#IUgN8(8~)cAdHHP>rQom=$oT*T3h=Z^~${K)v!1Ggr5D#n>`!)2yRh z-*mL&$0?Afk?ibM4CVHJ`{`oKWTo#Jkp;DQ90_xY7~8%hPJ48vHp zfi~Hhev|j7u=IBB^wZFzX-8zri8LYi2|c;xg;WiZ9O){hFPP`{20c5-T1#NebY^ zG{ST5dL?${6%ieRIlXQ^ zFZ9FT-AePh+;7ru&Tf9l^K~p~ihreC1lO|jXPG8D-u&jDNE77O1|PDqS5~Uo;)gsW z#X&X{)8`J2Cow07!Z}%jcq=A6-xT_eCumH8C|j zjR*fGOCHJ>V_R`l(eEU>*}-dvnF^Z5(%gpA&vP?*Bg4k-O`V>eur$UKaTU3&&@4$|Fs zgVr*@Sd-}<0|I&YuNyV_{x{4>QrBmD70tt)l61FnK6H4(P?`mvKH;<*(27`+eU30! zA-6MKHP2gzAM{q-LrGn-WCk(B;)gdQ>zmFdrB5?Np{79B#*}8bGkDcKH_NZjMa6N& zrvBzcDnvZn)eD_F1Cz<(<#HBwxp7qUERDO}`KlC(6{c)WOAd6HAptm3{129yp1Vg1Ur{lSlk(~d*a(E(#=2xLq+u1v*H%Wc?e zGnK|81vSqcM|1)cDp{zNq5xDYwYSTL!gITFqK%b8#Op~u*en|j#;<(nrp0+4d^AbR zFRogQjO=N~Hd{LvE!7hHGNx^%N>OjxW6eDQ%dOknhx~T!sC?Tc{7Q0z73X4Pqq^X8M9`okxI=Vr(9&dNVk)r-P4Kb-I;f z!u8aio~gO=?jP0m18}iMVuq?YKqP|yF>G!_A#If2BBQT*2E_rI;GlgMF zj7KGAW+X+FJ^1G0rG{rI-u;-57AE4s12*S2p?HRcJ4&xlc+|?(fva(cj`_bw%O?x@ zUQw~`H|ShN;ic(Giwmz65%XYRD&c20e1D!0X_BXcHNNPW7zTT_*OEW1XPUF9xGFt} zPOkUeI@4o-TI`W&R<-pE9s;-JD|iEfpG+m!Yx31zV33%}nL7XB44yOW%s$-Qn^Yqt8rlM$zvcE`qj zro|&XZ4b9Rav;!2TTMx}+I0Pjpg+j!xiI5M0_#&wKH{9m3%F?GsI9s*^j7u2d^G_O zty6mU(!bUoF}BG{4Yo|TXG?tU`S4Tjc(hpjiK}U+p1M+w<0|+1fki}EMzf>jv2Ji` z>d13(ekf`jGd8xL)jNE`*ZPDnasr~*8Z3h?ZzBYM=@BStEhIXM<>}dL!=m*Lrpp~O z>oLQpgd<}$tO`hX?`S2yM@y($ju$PCq9@TAUw2GOyP6!|QBa@ZtR|w*Q3gc|elO6f|<{Q)s zpUxBrggT++qAr9_cSjYl{F06@s$1?9N&ZHnp z@xv63;B z*vJY)U(f=v_h}fAwO_gKN><-VKIa#RBV#`)gN(*^2!$!t*7h{??6~=Dl997u!K5q@ zLSV>HN{2dK5=CM*oWgG=^NlnHmX)K(VQxtuO8z*Egn(<3UB{k^kpKry`)QSoB4;NK zyh3ZAL1)Pmo>D(6pibN_USqVZuh&u@pPMa6d$a0|5oyH_T6zQZw4-mp-!k4q!*3fR z-6?_=%76uT{W*JoFZ?{Cg6d_tRyv=8H$_X4V5GSvEAI3*r&-CC(2Tdr_K!zVj_V@F zFYz6PKM{`ewaAg@u(N-aeSV3Pj|N@~T_=a)VzCHuRi6B*O-L=(`2l5?i{N> zrNaBSfOp;|AHlrTljQc63O%%styIRM*QCXcji|7<%wOz}AcV9zcCokee8=>n6rbI= z7BKb)Z9S(;T^p$B%(5K`6!2v9(*wJ0bV7U!JIKSJ#pRtE<#wqN;h3t`n`z-l4)4`o z=}U$!>+7T!lFmg24MO?pm9Cll!6APe%j`0nJ#3q}^224UE7i7&dE6dD%$^BAm1a?I z-Md(StzgCqSyxmFQ?gK9=|x6nAewm?3p>}#Z^Dfna#w<0XWrEF-(@V68Hz?HNkO*m z0Fhd5SJ-9l@hy~#B{UsdPfE)*FuOGgY96ef1(tcMn{Q8)lrv`FjI48dvlo;$5BEy? z#C&G`UR=ZTIbTjfoyb4!g5^Gr$cJgLpGF<(4q_@o+B_768Fx|>nv`pbaJL2%qd3rY zLZ^GsmjlfP-HN;(xUGfer8xc|ysd~oQP%yOif*~ymSB%)?E?{nCGwM_kIk!6Q7(f5 zLCI@MYEkl)XG!=Ac4A)aHm`g&IfavL>jd*#ew3+u+BjtMWOhekrJbdN^6wSXee8@6 zi69yrUBX_!nri%^d0SEDp=Vdb+=9CPjbfQ2E!!^!YQETC*jcG&=FxtP{1+U;1`cm* zSdFK2^F-wPvE#QZ97nIIaSt+9UP8?zfoOZVdcQlG%+2toU8M(jR{thg`I0krJ|w>N zrMD5BFea31Ft{t6m*4$NrPy?=Uh&6m^WvJZTnlyTd1Q{ui3_%z{s`f~%9m7Z?i$&|a*H#lyFwLMB0GTP0!CI0wHpcD%md6E?D~zuoI`u*tRi_3;$re9;E_@8yP+ zshpQPk9KTWoIdM!${9=!SUO*_>Be#dgUrpmC>zjNw=@`Us642n6Tb)x?fud#l_~Q4 zN88N1q{h)$eL@!7N!GsDN*MX;&%kEH9Ea73^d*P8?{*OOx1Ol}rd(0H%|E2a?+X}A z-<|d0PDu0IyONLKu!Qpoa;}69l6w;7+U-`)@~Rw|*{~|0;rus@A?FA@esB6feK*Jw z1eSR}?AH~Wa^6lQ5uRs>a*1wwwOD5{S{<61dNoq0y~N(?9SFL5&IZ{HDo{)>( z(gR_Zf6%x=xRY!1{`cqu_iEeSq$#i7i$8PkZreIv?yROjDw|o0`fJ86W^U}`_xI_; z97jTXYj6h=>PJ$#YIr6#PdLP2jSZFYCdGz?b=u{QXbF#j<$TMIceuZ};NI$%=Njqa z@Vm;=B*JbW;eu=^rK?HR=ZLODxG4mtV4=K{?xLNVh?VXsS~G9aINDGvG_W~Ov;My| z+FR=0>kz)KhfUbrwpG*I%643@R;}M8}0W5*}Z2R z-h13XUf|E28gvK}wE?5aHO;-UhRB-^jt9c)%}XIz?a(2XXehka@yY`q6e5xh=h z5gtf8eS>T;+0Mn6tMEMIZrL3vlwh}384F`f3PJ7nSW4V}c5ghs;ubhlc<(ZM$rjki z0g?J>uGg1evZiwgbmCr4nu-n{t{)HCcud ztyiXl%|T1gg^Bm-4(W!AG&tW3N+Uy++&o%rc^Gl%t1$R(hV!!Y*z_wh3w&=O{U9}^ z)E&46J}4e3+fS;N{hGE)j){t`_~I{*BbWDH^FnX~-#l@@nf3W8YXVa)u1*Tl862zR z`)4SCrKlFaG**)sAbX98(n7bSx`Yw`9Wz{}JAj%V?&AIOgvaqs4#spp3=F*VwYSAQ zcr(g<#aX@HOOPqI(lH|uEx7yj&w((1;5@i#!2W7uJzKKM^^@XM_hRqfHfbI03y4Dt zHk*=+?9jz#2=4bGPiQv7X7b?s&6EJKkOGRP0CeKxk^;0n-3RH*YP93ULpFSM;vP#$ z?jN*7PT@KM^157dVH9eBYKP1OqpuY#b~wk6maW@%EaZ~srvi9X4gr*h)7ufvFBi1z zoyr1r*g0Et9A>H~VJqZ$7RS1U^V&?L|2L_IL|LJ$rO3^ZIAHliAHFLzGrO#qeyIdJ z8Z%S#4=xj_H@Vus?G0G%I;vP!On z@OphvF7n;n)uP*m=IIOeQj2@~`oJ4ZENI~|c`RA`9=a`}2OnE&zvvLaPJiQ~u-3{S zdM-NIE_%D&64JDA<3lljt^w1#X!?D;Dqgaah>)DJL+_K=PWN49@g;yz|H=Dh*Y*}F z^Gn_&O+x~-Bj`5TUrEE1$(E1A0Yy|>o>(>S+CXFle^l%{MdQ`q^pe#l`1jicJsHVl zg_cKsK5LvWf0PTC8P0A!uSow*e0x!||Ly9P1%=_NuX*YA#=Y_v_3z8B$Z*J>ZT}XG zC6=lGO)cQ{RQ3x8xFxqO^>z)Pxdn?%-r8E}$OWs_sdgA@p|SasG0c6Y-rdCOx~zpm zDP$>)&9&`B)n+u#kC`ly6rW6$?9gelV|J-Kb+Gf$(;w>lXS!@e;kdK^HSB1y8y`Ht3VH^IVUG3cV zQBenL+Dg!aRv~ZTPMCH6zRk{c@_uJf{J|sXJef&ys>VUvAlbBZb9Da+ii>vgM& z_#ye>-4RQm@Ux0oT6cbQ8q;y`ZqCWTM&GqU4Gj@IQk#7=^Y>3vti39{2$dz)+n#=J zk^_I^MF^n=YTw#0&6!9wk zQm2K;6R+`=Pm{LT^4IpiUGig6I8U@sPhvhs;>QkNB=6iu%g-3ot-TJxe<7xlm8Q~s zrO^K|7$(o!vRtj(u#3lr4arpkkGxb+e9kxv+Z@@NGRQMN{f5P|-#ITt`HU{!n4!M+ z_BSYUb!@#=WO?)H^Bsv34SCM#TzQSGr9Y8bsNz=7Mqc7x{>I)GbNaSunQi};?s$XN zGc<&Xb`1K*BL#47CGft)m+{46z8Gjfr(-l`&^U{TGvLr~pp9GbF<3REfwn5$WrQS@ zI|ar1f3i-#AN`>nq=gRXC(cRhkM>mOTsZcaZ%@}>NCkpeA}tA{E2CSsJ=>`xT~J&X z8_v9b)!OidNU`UQw9u?3qRCV}kDH3-i$-9?t4a1;l@IM3LpeauB)`1(=ZiKr>h`vL zeftj-Se`wAN>rhq8{6HA=GPHDaQ32UbDR*ulLpgTo`!yO)lp5AzC`t){wE6$zMYKHbGzr;i((Y&Um2axtsO} z3-X7oSr|oczBZ$f_NNrLADagEf7aQlx)0Y+f7@pFE(GDhz@zQQiaLAzHN=5Lknb*j zN%GjR;iV(Z7o}T)Kx*T_5$~ZYH@cpMwIwbD5j=C;SnRlX=&u@ILPMwfpDW&#v=b^2X;UN6Lnkil+E0hXfG2iCh%+a^B)9!FqYzVmzZ z-T|UHGHqN$sOCA4bg_{_=Z9&b`%daH4f_9PT3J(Di)N+x?3>SwftTXlu~&I(($^NM z5Z>GzjJ{9l(jVY@7LWPVO!NtlP4Gk_0tU1nJI#^SppDH?fTw#mKZE9Gi(YYJk7*|> zeyiVls0QK9&Uj%&cqj^ijOiK}fFtexgAee{u@s1vl4EA`TAY``-7%HZloLca52GJh z@^=uPKo>F~nhXetRre!JBhfS$bgTTiRX6WCo;y|rCa)lUpHM?=r;R>>RE><*bLOX? zL<#iwNOTze7~WAq<|Blu#-N z?F$9ME>9CQgsQR3=pB#e3PQ)!249ls9A|_7i{ZxnFH}k`_Q}6vMaNrFSpfo1Y(!jr zRmB!d*h?-KjC_KA?AN&{|KeQZQTQl7Y_D!0-ecP))c`Nh%lfXCk*8wFAwAYhDl}db zCu+`T&Cl-S7FASbU46`{XHfH=EAHr6{SZ(k!R9nLoYWP7cPk9x9hxB{93c4@7gw_K z%wXq3O_mRSSTG`p!7%{aTtp3*viU2PnF@#>6u*Ld?;rIIr*wTxt7CugVQc&89vun8 zOBys@&fyYw+`bgBLSm9Y@Bmyf#|-n55EjHm3fuYX^*d^W{;IEu!PG0A2K7iG<71;U zk9O%*$JZol*6ygGcL=RYTU$#fGp2mldgz5#vB&^PAnwN&>q>M)Z#l81q}&}I-ZS=h zHIG;JsjR7#*4h3|N=km;jsF)N9haBoijGgQNg8+BXCpe5`iuIp_&ej%ta>mMPRN{^7V#TS7K0T=79OpD~ zu5V+;B8BJcwzxQ-OIg1vYVc7W(&Z^Xpch?j6i-2hJxK-M>)vAd@*pp(g@PyhvjNVN zTyi0$@fGn?lG`h~&iP|;SKguxcsf!stAWBI`wwjZu|8?o+ZUd45!A73(nInZ-#K66 zkq=M{K3d05&%cAe-ut0V?RGjppxbwkqIPi$oT3X zsou<~oBom8$6a5Wha=BQ^YF0RWBmg`FcUX;KDz37quVbPsQ>(fjFnNgn#WwyxIQt) z>G@mh-p7@#a8>==w?=JKy5NfzUKf!K5CZh|1NJ?}o6{6cOdQe(DrK9Z$i!Xki&3S3NVCh^j4(TDl#H`!R)=(nio zs&lf;mV^wl&pce|r31XkkwHiVsRkrcpP&K1(ZyMMv`d~Rs{3>M+A%*a3l76>+4)cK zxoIy;!N0OGm>ihx5kCW?Ia)NZX+g$3Y2t2f<_7TW^w}Fem#Isnvu=vgv%et;aFbM! z2eH}BZ`6>N6w3)I_&WE6{(Tw5EH3Pf|ymV!oxuZ8G2nXBMmzN9&7H>V} zDC$?1m`nddXe_rzW|ghCZr>-7ZPa{w1jz z?`dl^&Nu<4B!vm%8L9JA%bgC_y(-gaNVD43*c=$0*oV?Nw_Ni{$_ywuafBncbue0OP!6%om6p2Xo&4P=V!Aj0ilTuB z2e}!(xpJ|5aUh%S`5> za$B!BiM)~|4)cW16<%0yiu@009HxJnt-h|+AQq(j!l#dYO1 zp{wUewaQL%7r!Ut7UOQjl=t5%1&;CpPG516U%>9Vz2y;EfRE2nt6|Lsay z&D_zgtW3oKQIH3m9~Z7H@-c=q1pPE~Lr1%%PT$zKs=CurkZf{lBgbOcb2z70@fC<_Q66Ia4P zyWQ!oO9ij!pX1TfM?2kkzur%$YUgmFv&Gq!z3Hs47WW&e3Dv6w2xZ#Y@8pN8$gVUNo85hK>pdr+-SWmjxT}i3404V3gB2W!Fkp~u+hXG~QJa}R zZw$S}>hD%~4{C5^ITx1abFgfjsmI%J%+29DDCo>9UTa9Lj~(_QsJ)+n+~WmQVvoDa zBf57)MkTo7tV=O~+gY8*$Ob9Z`trhN6fxy+wm(T`w6mKDgQN<8PoJMqv-y_(E&Y{` znmh?Ys_2O^VULHuej=mIrWCNg;<0h`)8_iBs6Z;?p|;M-*k_NIS8h!sVl!V26p5+q zUf#`!IW?50iS%uR4%q-158^8CKnM57!U~DD;JFb<;d$aE`YwYdic(@Plykr7kYa;* z2Z0a5LdG1YxM|I_6lWDKSn^SYC&5D%y)sc*$So=4)wXDbc$GnGFBSl>0 z--OhMn1+K_1K0-uIK8FOfkwsK?M>)Doef#85$XWABKBb6hg8^GkZ=%HJgTU$>&B*$ z2?pdMlC;GE*XY;9FSSYC&}G=i;NujTqee4a*7543z0G6t!kNdU~k=0Tz)M$D( zc1;YHtcqS|C0MvluH^*DvMe3NRKE|p2fwT#r$6n$lh7N0<|k^pv{cAVs*p3Y2M0O% zDk9*Sf=-XGwgRb;{L7=$6B94wkO?BaXXxfKndv*wSQ5Dz9|U6_A1x@!-vkQ1YYdS_ zh9-`ACiuLFF{FqjYqvG3?M?5V5Mf5G_kdS)pvX4bC+#c7d=~eF2U|se_e-zkrm}$P z%ozmj<&Q9f7sS35;k~cx1UCA*!S86u1$`0!h6K_t#+jjiqW#kt{&VuX328J%D$S*UWzK4e z1x42{7H}nKD4a${68@p7+?*+os%q)130~r7$jz9tbk>!xoh#D0s6QvRvV1z}JNb1? zc)E#zZgVQw_c`l8jU5+ny6B3dpnAUo3GK5Vjul*Y+>PzoCAc9(#>li4!1VY@pyIR{ zNOp4nsT5pA+bZW(>DBUmGV3DR(IHTtMFx-fqdP&}qaQUp2_Eu(G2v^UQ-QCR8%hB{ z82y0&&7rRf!LtdVed(KUFH?ze*xz&aglq(W`=~mhzyMF-7FP1nuaO2~Qyf)wPN96h`QEUte_+0`fy$X?~ZPKkn0W6#)yiHRlp zQOX4MG~Wf9vS^sEq;+-zJf%S1F3E2H4q{-CZG2p=6QvIc*lWjrj&1PfJ3A`l zo&^dLl1;C^WXzpodn{H_C=J_LxjI`ORY}&Gq#>u^zXgxhi`EqT7`<|QW;fA{_7Tv7+yzV6Md^=c3b&z(oEAh3_kDt;CA-U&OPA8TMJh!M^k6`ZHWeK5+45(g zqZJ}7Bl&@et3bg~uGfx(_&f17_vSw!gtL} zqFZ%K*GdEH&yFOpm)%`Ai|ctB4~w799^hu^UBiSczp5=YDbNrO60^?hX)>Hj1R`&{ zTU5v|^de7g;*eB(3lUM_=iygVb!g^{YK5Uaw_-dew%0e?4+<|tr`DF2vZ4}&8jLA; zK(_Jf<>(0QoRpK&xr#YFZT5;}j}2pt;CjlzCx8gH8)Q(XqJ}E{b^;6~TY0|7Elx9u z#|mV`Odn~_Y>zgc9tdTIMK0^SAF(;JnRZ7T*;WaDxmA%6y)SuoGiy(`{v@W|-bN-p z^sRKry!zTnmnI)aGsC1hO*(~g5TFA-{`}<`gh^rWy*IL57h-mm>ny5uv>U;I-x>Be zX}S{RSMgv9D7nyWWnUX|zn)YYG0S<&HttEqnNK~C=pWhEHpL6qc@cWWFW{P%>;_NDR0_DUVXjn!fhXW}Sf1v08%17)HNMu@=EC8f15 z2WcO*+0311#8+@hoMSP_?k`z%Pya&+?Em4;+ZI%ZZ4I+ zV55OygPKGht--{-uT3hJ(lnD%T}r>CHqP-XD}vZ9t-7ojA6y9JdyBJpR(Tq@TOtXJ zfo??0tkQ~(f6t{I$??ozP|vO4 z=Cgm++1vsTnTwlY3qYz{aGZxG!NwpGTmUj4;-pu+c@Gav`b>Sul#5MC(H;_J%4P2x zL>NugK^EHb;XER=&VF$lU%aVw1FjpF+|)KOipZ_LD~#=D0BWeFP58q%iMC+~XH2N7 z3uy-$=q%pK(TTTF|I%!#;vgzrLlKOP;?y=l^8^&#-pL(wNqPQvt%CETJnKMYb>eW& ziaya}*`?Ts6n%yEffPpPX^y=$bTT1Bs6Fm%i!li=2X_HeT-OMr3THZ`Bb0an4JSi@ z!XKWm=J{aJc<-#1-(T5tG3;Gf+sMUrie|Fi{)?cs7Kg@Vxt(0+8YYb#cvGJ(GsclS z@CsN81uB<4R?)lT`Wfr4986S2@jVGp6;@HWA(P#o=EMSXH@wJISdeo8YFUd8LiP;Z zXI>qkh22ig&P21oqf1@uPZR!goHOw_7O2F($GL&yI>K|#LlHDR4+CL%K_Ky*S9x%b zvY6tQJrDpbphq&bx=O)DU@!za7;4yi32Y$PcwH}^8+Mro!X>s89AcO-LDRQ!RAd|WOWP)qU~x8a zCrlt?5<#QybaIqrM79{0{%VmhmrLTe1%m2UfHudnYdy#tA&ZxoA&W<`W4Mil%jPuu z$me?iet7W7BZ!+AugVXmIa$M;4A*4-_@7J;5}@&#aVbrbHe<&+^Y=i&KK3P>-$@Zb z5PYTbj4N`CLMOvjc3w-y%2R7#Y=&LrX*1tBuRH>VV=f@X`(A&d=)DUh!&G|lE=i%Y z*uV?WeIK{WX(m%YiQ`19W)s0wIaA?mn!p>|FihuHk?(>UQKxxlkvVN7#G5*HIIL+` zNN`oQ&JQJ~BpjtBv5(&|{uLL#t$BLZgSGCQmXb%_@10Y6#&v76H(iOA zc-d03d92Uc?1{+se8LDBT!^S0%_wFrL!M1^Bzlqj8I4n*f<{>i;c)66!C@c8zY|(?52uDnH%*bpCpeD7@wfpnKsQX1{Cxlu zw|p7T{co1+*L<4%m4#Iv43m!IqZ?^*~RZys(m>rkS$X9#( z*b3E7!U`1^8+m}|IgqW-YFUe$%vO=QMYk1|Dx|ZmHOm7$v57`gU?) znE8)NTR>knJMI%l=*({{2cGdj^l_l_lMg8?Tw18 zDd|ZvXCcXPGG~7b{3haF)7l!|`Aq1g57h=eVWYCUNrrAN<2A;?LRlpf5Z>nFQLj^M z?M&Ktad2!RO3w;W_%0G}@WbkzdsJlAG;2KfwUDE;Y8QLO%nw%MBM&Gf2Vc|L8}10A z}9B*FWkkPZtdIPvq_ z6_UZE6uf~pB~PWtPlosl%Pt~9&FV*D{?o4m@5p?x;7iGnq2GLS2T`Z0tl~b;m-?!z zUFKfcm3h7YhV$OZw5zc#NzxMjid(j)6B1PUufika$cEIW!cg-&|YqX^@KbLLAej!W5{Ue0*;9TH@&L!Uvps^P9edrBu3nu|@W43j!({K8k2je6v^`jl&CbpQTTOw>XsM6;p9;`E?s<5F zYj@7HFezKx4wa!{pK&6oOMq4IP5!QyS{zVnX??Y3>uFm-*9_(r{nt0N<%^&Xgm6{O zJ9sLzn)!*=i7ByRLc{z!tb~mueY&oY#GALtlGKPc<)5xB#dVz~&}qmgByGT=Kwa$S zO&njUmfMHvdtQ;A2Bxj)#=QOumF;KmpLawtnhC~jl$4A;{j(d2(CsR%3UV-+|FJ1( z#T>ObZ*K!>P5FjOK6{G0#>IY(OH)2$;;ArTdC7;2!SkbryXn67Ci0!wdILG&!t3i2$>03GOUh%j#ao| z9mj8PPcl4$onj&EZ8tFjCLHSbHNRYLq-XPTVcN*Z6ZU@E{PIJJ_a@2!Nc=fFuX{`e z9nupFM{TrtyT5?ikK|-qAh#-Vb---13_U)&BN%dbGJp#7_49}YmItZ6J z7&R^g6%Y+yM*RO$!H2SQeP9kRJ?)uG@-0mEstj3v+C=loKSd)mk6HMdSLx-#h~!-E z9Iq9<`5yp~|9{hKMPAthM#7S>9S{_8m`_aDtyOOAJ;uHP~?#2KgbC9uV zWCE46DPX<1a|kDgq2oHm=|ZPxn`W6GdlE5@v&1f&ZKl!IKG&2f%M@-8ZipOeYVudT zat$XKXb`{!^4!`JMeb}f#MOGL{N@w!_lel|x;n$go(hq zfzkc5IM;w;V*OhSEaO~P0BJT4$h}n$HfreR4xAJhzi$8(7PvP0$n{_oLij(9EU&zg zKm4ywHau2y-KbW)r7PFB+qw~TC_hKQb1TKP6ONU@uFl%7)0Gm6_pWkp@d*6WSni^& zoU8+qV%*Y?j@<1?!r_&8W~p9u{yh|O>1jnD8Ow1TW(qI$i?u;kwZaD zaS`~@np)Ov4jO>F$t^(_N#aAvwe}W53A~2Tw%=oqiB_xL$*?u;J@}vCty&wqftd9M z{7iDZjV0PU!qn*d}1$hAmjzqYA zD?bTWI5hfuEU6P%v(7_NB8K<*H|^73gTc4js{%ae^q2*P=^2NPS_*q9(OW?D(8c)8 z(z!PhHpUJ#vts2L>(&=AP!R|kDEOhh|Lw+^%)n~EaypfWfa(hZ_u0TE!QDM8PhZwj z7G!Q2w6=+ipdTlN+Bw+CZ*`_}zZP!@~Eo_^v8o1om2V3{pG zAW0##h()zd})ixKuEqb{eV|Z+RSfes;Os12%;;5>FXQenxzE>jSGUlU2{|xmv_;hR|W_ z2b>DTXL)1%JH-Uh3&w9M)!9=a3=!Z_FgavU1T+Sid|1FT6V)z*Z5?$WmTFU*jh(I7$4>-h{GabDRQUNZs3E6xj(N`~DX2 z=&{Ed(1WA1w_dF0PJ^F?_g!l^DnslnOMG?juU63o-FA0fy}}b_bJ)?WitX@>Aivozbt<>fQ zBnCu#;xE|Ap(rE67`B+l6KAM8d#l3+9%6jNIAMMss-5s}>m?wd8VWZoDLGgGe03Nt z)XN!f8^+FO3`)eu6Gd9s9G>c-crAU@P$~~)Gg<#DFe`uOK`1{MGV$~lLYQ9VR5W`< zWiU#u2X}y7;(7gpHX=U9f=g36=<5le4u>GszuT#EGtr;4IMTT&xI#5R&ds2MB}J=i z88IPCTevrCIe@Gbt7>Jz8AidNLUoQ3?44Wq9=wfgDyT@d)}8|1i|G*CrHUpca(Tbb zS|j#PiL-h8fzc=jw~o`f`N*f_tZ0C=P&@JMPzOBBVZ)@xm_ybQL zHwhgcFp#0#qLL}OoB~rcb9aZOIyX~tJMMrYvIzGKQWR#bRx7GxI>wgNi3*kr91SNWx70q7Hu4IiNYf`QX{{|OQH9&*8hHt= z1#w!BZEs6I&U>~!vh7Oj(*IOW-^s$aW{qcrp)RD9#BS8IUNN^tFx<}8I@)7Ka{%oY zNX^4mv~%AjPkUN^p7hb2QA0V*0ybp|uqkQaQ+1*|wGYQnme<)iV42)804`}qIuBkO>mCXxu5f$vS=68=BYU_$8#Kf==fWI;j%06!3M z8qf>Hfz)!YZqcU|cqYVO)9tOrOqMp91v6iqvT@e_RdM(|39BE||GIkQr62#?RBsGP z4<9*H?kLVY4H`2KbZYo-Q(5gB=Ss~Pynql{)%9Po+EX>m?UG>yUu)M*Yk(jWRWK<~ z<(oL>B%~_^vRj9&v?rNGWY3=FE8AhyZZwT?VlN7yY@A%8$}HV^n)vc;A~C0`qaaqb;_=rao`^$>m>XAGo^( zae4&$Fmj#2U%x33ZSWG~}R1ZW)>1-w0SgZz^jt7?q-j&~8*5>k z2yjk})`M0jmE?$mTkH}X1HG?GD)>9!w_MSu(Ku0^5K3s1_7->NAhQMDBjrKe0G`a7 zzZly!-vv~5v%h@#c%ih?1t@_G~t-=}jF9dCj1@2)Aw>-R#xtalyUQ+*3C}v0kqs6AapVJGpikPjB>H9c%&UoJe#%31G zqe(#dAQ4j^Y4?%qTolywGLzy>wIIh;21MRUZrG>d2~4Jqh20)ee)YVcc?GuIn^5Fv3~5+(Vk%|P9q|Q^Y26q z;G8L%rIkEsuH7^;f60{3(Wr<^q@gxo_h*sf3%nIPdp5ExaKrWd8a$R<>gF8T-Ab3= zdiBy{tZ)xx^k5}SfyC5s*)&8ZPugl+n`Bp<7+9E>zH*ZIcyILarz5SB%mMJA^#eIhdk@DQx&~Z2V!_|u0hdrDKrr>5(~{roPYyj=Vq`{f z9~(Lu!A&Np;oRV)3uQc4tS=Y79ZI%ns2A;|2rUBPwq61)c}0!@$)PPBc?B^ymh=`J zNe-3OiTcW42bKl7TKM5_)e)>q6&cZi0Qs;S(^X)%_&XR_>Hw&mL8t-Bam4Ls{sbl zap`fi9{ss*JKlZE(QY_6phQ+lJF zY#)IcCCB&2a3vX}9C!m$$-$n29O>E81K-vZ=z4GNw!FzN(?`x!P#FNaUO~hPSVcSkgMo@|W+xKI^!p71<)K?Bug*u}VHEA3smLROzL^m=Sy z*bQveXV~@nC`43m*B3-wvJ1o+6D_+yhzy4v3o%Do(b-hRh1n$R>HLx*ENn&G)r7R( z9oO_+aFBWB)3&XPELErEG^>=Gd*8p7`+M>tC&U?qdSn#TovG~pRWa1QT zu&2~I5C?F^coOhG&?q25rm4b1qR%D43-lax#^TaoKVI;g*4(?!=P%%-w}7A}^m2Z@ z9ihWBs+>^^;T6{zy~PZa?BFt)mqEdonm%o|B%B4rBRH^|_cTI!sFd^-h+yMc@+cT~f->eUPgO6lr_T*uf#i#Uj|c+id{>ovdN$1xzLxI-6-~x=#cjwFpk|G?2O6KonK^u02d{mW=<7Dg$*~c} zs&31NDP(XH@EdR-9;7rs#R>ZZr#n>ZvvU^fJ6XC*w?ik=e(670Gx3>Nu%6_=)+hu0 z{4H=x>M95YDfe?i+Hj> zMPUqE-*2rR;L4kK@)Go=x-A*_7w@1LCj!W+l}q#_`38c~m`~qg(aYK~fCX6BkR&-2 zmt+BE{~Ry({#f)|9l6`Iz8ZHn(5NTUpz1QP5>UE3%<81mE6}uevcV?qJ}_)8efNts zVS;M%Y3*7(gp!jS8YyV?s|6H!(Z6R>Fn*XUVy4#9u#jnX)M$Q zCG!6Pt*8I{z)7aCS`_Zbsx<>USHaI^Ni_-L9h0kUW|ab{-efX-`$qY;U=fXnNxB>(qQ@bJP)5dBr`2yLWtkDO=uGpxKBT~-Q^fS$sx`GNdw$# zwsyV`%=z9<60j_o<@L{g8_NgtV2u2VYX+Sg?pBVYyWblhU?Ly?=Rd4C=tEiEw>nB?yZhqM;w>Z1l6loJ?e)i})e&E{n=PHqhh zs&B$0Q8EHa8tVDXMv9x{RFEEh;EE{KlDlJU;aS6EocG5ro5|vS>?hW^XdA!dQ6X4G z-hx`~3!P>)bD77WAdbmZCRx7Hy{&fMP$&K#kz@)mD1!CKJDoVItA%}J1e4UFnz!0P z_#eKEi9X&suoza2hRWVon6u3J#3YVMLhwKTUY`urz}yXXn@O)}6D2WKLsVvjp{v59 zj1L>cpWsq-tN24a>TB6FD4C59;1steN?u-D9$mngk-pklO*T9C2N<0p-4>Lhf+;rI zltPMHl#Ip~6D~4AwgkwbDeWaMp@}oC$4H?IS9t@qCJ>fnS0R4MVbMS0*&9OOwjwu` z>-B#_h{or?u7^-PzjTVf|8=~1O!~in{?`Z)$p3l*_zwQp2>)Lr3=ytvrIDr>4&MJp P93-@12I?iMwqgGVXoLl)